From f050a65077f49966a1abbcbe561c482cf0d502c4 Mon Sep 17 00:00:00 2001 From: porres Date: Sun, 10 Apr 2022 04:41:46 -0300 Subject: [PATCH 001/450] "-float" f;ag to [oscparse] so it parses float addresses [oscparse] always parses addresses as symbols, even if they lok like floats, which make it really hard to use [route]. This flag turns addresses that look like floats ito floats. closes https://github.com/pure-data/pure-data/issues/1299 --- src/x_misc.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/x_misc.c b/src/x_misc.c index 5601ce4f9..093af4218 100644 --- a/src/x_misc.c +++ b/src/x_misc.c @@ -10,6 +10,7 @@ #include #include #include +#include #ifdef _WIN32 #include #include @@ -289,7 +290,8 @@ static t_class *oscparse_class; typedef struct _oscparse { - t_object x_obj; + t_object x_obj; + t_int x_flag; } t_oscparse; #define ROUNDUPTO4(x) (((x) + 3) & (~3)) @@ -385,8 +387,20 @@ static void oscparse_list(t_oscparse *x, t_symbol *s, int argc, t_atom *argv) /* post("outc %d, typeonset %d, dataonset %d, nfield %d", outc, typeonset, dataonset, nfield); */ for (i = j = 0; i < typeonset-1 && argv[i].a_w.w_float != 0 && - j < outc; j++) - SETSYMBOL(outv+j, grabstring(argc, argv, &i, 1)); + j < outc; j++) + { + if(x->x_flag) + { + t_symbol *sym = grabstring(argc, argv, &i, 1); + t_float f = 0.0f; + char *str_end = NULL; + f = strtod(sym->s_name, &str_end); + if (f == 0 && sym->s_name == str_end) + SETSYMBOL(outv+j, sym); + else SETFLOAT(outv+j, f); + } + else SETSYMBOL(outv+j, grabstring(argc, argv, &i, 1)); + } for (i = typeonset, k = dataonset; i < typeonset + nfield; i++) { union @@ -467,6 +481,11 @@ static void oscparse_list(t_oscparse *x, t_symbol *s, int argc, t_atom *argv) static t_oscparse *oscparse_new(t_symbol *s, int argc, t_atom *argv) { t_oscparse *x = (t_oscparse *)pd_new(oscparse_class); + x->x_flag = 0; + if (argc && argv[0].a_w.w_symbol == gensym("-float")) + { + x->x_flag = 1; + } outlet_new(&x->x_obj, gensym("list")); return (x); } From c496b3ae48af4c3975711c75138452b5e353df50 Mon Sep 17 00:00:00 2001 From: porres Date: Sun, 10 Apr 2022 12:46:01 -0300 Subject: [PATCH 002/450] fixes issues and renames flag to -n according to the discussion from https://github.com/pure-data/pure-data/pull/1623 --- src/x_misc.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/x_misc.c b/src/x_misc.c index 093af4218..a632eff6e 100644 --- a/src/x_misc.c +++ b/src/x_misc.c @@ -290,8 +290,8 @@ static t_class *oscparse_class; typedef struct _oscparse { - t_object x_obj; - t_int x_flag; + t_object x_obj; + int x_flag; } t_oscparse; #define ROUNDUPTO4(x) (((x) + 3) & (~3)) @@ -392,12 +392,12 @@ static void oscparse_list(t_oscparse *x, t_symbol *s, int argc, t_atom *argv) if(x->x_flag) { t_symbol *sym = grabstring(argc, argv, &i, 1); - t_float f = 0.0f; - char *str_end = NULL; - f = strtod(sym->s_name, &str_end); - if (f == 0 && sym->s_name == str_end) - SETSYMBOL(outv+j, sym); - else SETFLOAT(outv+j, f); + t_float f = 0.0f; + char *str_end = NULL; + f = strtod(sym->s_name, &str_end); + if (f == 0 && sym->s_name == str_end) + SETSYMBOL(outv+j, sym); + else SETFLOAT(outv+j, f); } else SETSYMBOL(outv+j, grabstring(argc, argv, &i, 1)); } @@ -482,7 +482,7 @@ static t_oscparse *oscparse_new(t_symbol *s, int argc, t_atom *argv) { t_oscparse *x = (t_oscparse *)pd_new(oscparse_class); x->x_flag = 0; - if (argc && argv[0].a_w.w_symbol == gensym("-float")) + if (argc && argv[0].a_w.w_symbol == gensym("-n")) { x->x_flag = 1; } From d77c8bfe4ba5b4295b66db7cb9de818c3bb85291 Mon Sep 17 00:00:00 2001 From: porres Date: Thu, 14 Apr 2022 07:35:00 -0300 Subject: [PATCH 003/450] add outlet to oscparse to give us "split point" add outlet that gives the index in the output list that splits the address from the data, discussion in https://github.com/pure-data/pure-data/pull/1623#issuecomment-1097181342 --- src/x_misc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/x_misc.c b/src/x_misc.c index a632eff6e..191b0e700 100644 --- a/src/x_misc.c +++ b/src/x_misc.c @@ -291,6 +291,7 @@ static t_class *oscparse_class; typedef struct _oscparse { t_object x_obj; + t_outlet *x_address_n; int x_flag; } t_oscparse; @@ -386,6 +387,7 @@ static void oscparse_list(t_oscparse *x, t_symbol *s, int argc, t_atom *argv) dataonset = ROUNDUPTO4(i + 1); /* post("outc %d, typeonset %d, dataonset %d, nfield %d", outc, typeonset, dataonset, nfield); */ + int address_n; for (i = j = 0; i < typeonset-1 && argv[i].a_w.w_float != 0 && j < outc; j++) { @@ -400,6 +402,7 @@ static void oscparse_list(t_oscparse *x, t_symbol *s, int argc, t_atom *argv) else SETFLOAT(outv+j, f); } else SETSYMBOL(outv+j, grabstring(argc, argv, &i, 1)); + address_n = j + 1; } for (i = typeonset, k = dataonset; i < typeonset + nfield; i++) { @@ -472,6 +475,7 @@ static void oscparse_list(t_oscparse *x, t_symbol *s, int argc, t_atom *argv) (int)(argv[i].a_w.w_float), (int)(argv[i].a_w.w_float)); } } + outlet_float(x->x_address_n, address_n); outlet_list(x->x_obj.ob_outlet, 0, j, outv); return; tooshort: @@ -487,6 +491,7 @@ static t_oscparse *oscparse_new(t_symbol *s, int argc, t_atom *argv) x->x_flag = 1; } outlet_new(&x->x_obj, gensym("list")); + x->x_address_n = outlet_new((t_object *)x, &s_float); return (x); } From 5b4f707848389ac00fbf7c9e8f150f336447abfb Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Tue, 8 Jan 2019 11:46:53 +0000 Subject: [PATCH 004/450] emscripten behaves similarly to linux --- src/x_misc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/x_misc.c b/src/x_misc.c index 290833e5d..6329884d4 100644 --- a/src/x_misc.c +++ b/src/x_misc.c @@ -22,7 +22,7 @@ #if defined (__APPLE__) || defined (__FreeBSD__) #define CLOCKHZ CLK_TCK #endif -#if defined (__linux__) || defined (__CYGWIN__) || defined (ANDROID) +#if defined (__linux__) || defined (__CYGWIN__) || defined (ANDROID) || defined(__EMSCRIPTEN__) #define CLOCKHZ sysconf(_SC_CLK_TCK) #endif #if defined (__FreeBSD_kernel__) || defined(__GNU__) || defined(__OpenBSD__) \ From 5349c2b69482164c1b3d56a6272fbe65ddcda8d3 Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Wed, 11 Aug 2021 12:30:00 +0100 Subject: [PATCH 005/450] noise~ does not take any argument otherwise emscripten complains when function pointers are used at the wrong type --- src/d_osc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_osc.c b/src/d_osc.c index a24c2d0a8..dbe8a36ac 100644 --- a/src/d_osc.c +++ b/src/d_osc.c @@ -491,7 +491,7 @@ static void noise_float(t_noise *x, t_float f) static void noise_setup(void) { noise_class = class_new(gensym("noise~"), (t_newmethod)noise_new, 0, - sizeof(t_noise), 0, A_DEFFLOAT, 0); + sizeof(t_noise), 0, 0); class_addmethod(noise_class, (t_method)noise_dsp, gensym("dsp"), A_CANT, 0); class_addmethod(noise_class, (t_method)noise_float, From ef8653e3e171aaf67d7e964d80fb8405a41cfaaf Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Wed, 11 Aug 2021 12:32:00 +0100 Subject: [PATCH 006/450] samplerate~ does not take any argument otherwise emscripten complains when function pointers are used at the wrong type --- src/d_ugen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_ugen.c b/src/d_ugen.c index 6ddf25163..368c16e98 100644 --- a/src/d_ugen.c +++ b/src/d_ugen.c @@ -1453,7 +1453,7 @@ static void samplerate_tilde_bang(t_samplerate *x) outlet_float(x->x_obj.ob_outlet, canvas_getsr(x->x_canvas)); } -static void *samplerate_tilde_new(t_symbol *s) +static void *samplerate_tilde_new(void) { t_samplerate *x = (t_samplerate *)pd_new(samplerate_tilde_class); outlet_new(&x->x_obj, &s_float); From ef9d4a8c86f45af6b93c02d844d33c0a5bfb8465 Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Wed, 11 Aug 2021 12:33:23 +0100 Subject: [PATCH 007/450] bang_new2() should not take any argument otherwise emscripten complains when function pointers are used at the wrong type --- src/x_connective.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/x_connective.c b/src/x_connective.c index 6cf38b7d7..6c7a472e4 100644 --- a/src/x_connective.c +++ b/src/x_connective.c @@ -204,7 +204,7 @@ static void *bang_new(t_pd *dummy) return (x); } -static void *bang_new2(t_bang f) +static void *bang_new2(void) { return (bang_new(0)); } From 316afc4755fc8762a22311f38f04d79b2c911e7d Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Tue, 8 Jan 2019 11:54:27 +0000 Subject: [PATCH 008/450] explicitly forward bang methods otherwise emscripten complains about mismatching function pointer types --- src/x_connective.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/x_connective.c b/src/x_connective.c index 6c7a472e4..ee9e9fae6 100644 --- a/src/x_connective.c +++ b/src/x_connective.c @@ -214,16 +214,31 @@ static void bang_bang(t_bang *x) outlet_bang(x->x_obj.ob_outlet); } +static void bang_float(t_bang *x, t_float dummy) +{ + bang_bang(x); +} + +static void bang_symbol(t_bang *x, t_symbol *dummy) +{ + bang_bang(x); +} + +static void bang_gimme(t_bang *x, t_symbol *s, int argc, t_atom *argv) +{ + bang_bang(x); +} + void bang_setup(void) { bang_class = class_new(gensym("bang"), (t_newmethod)bang_new, 0, sizeof(t_bang), 0, 0); class_addcreator((t_newmethod)bang_new2, gensym("b"), 0); class_addbang(bang_class, bang_bang); - class_addfloat(bang_class, bang_bang); - class_addsymbol(bang_class, bang_bang); - class_addlist(bang_class, bang_bang); - class_addanything(bang_class, bang_bang); + class_addfloat(bang_class, bang_float); + class_addsymbol(bang_class, bang_symbol); + class_addlist(bang_class, bang_gimme); + class_addanything(bang_class, bang_gimme); } /* -------------------- send ------------------------------ */ From 57e6b727c999d8980e81a94273ab70c5786d1229 Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Tue, 8 Jan 2019 11:55:20 +0000 Subject: [PATCH 009/450] remove unused exceptfds in select() it is unsupported by emscripten --- src/s_inter.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/s_inter.c b/src/s_inter.c index 915afd599..ad3fabd6f 100644 --- a/src/s_inter.c +++ b/src/s_inter.c @@ -223,15 +223,14 @@ static int sys_domicrosleep(int microsec) timeout.tv_usec = 0; if (INTER->i_nfdpoll) { - fd_set readset, writeset, exceptset; + fd_set readset, writeset; FD_ZERO(&writeset); FD_ZERO(&readset); - FD_ZERO(&exceptset); for (fp = INTER->i_fdpoll, i = INTER->i_nfdpoll; i--; fp++) FD_SET(fp->fdp_fd, &readset); if(select(INTER->i_maxfd+1, - &readset, &writeset, &exceptset, &timeout) < 0) + &readset, &writeset, NULL, &timeout) < 0) perror("microsleep select"); INTER->i_fdschanged = 0; for (i = 0; i < INTER->i_nfdpoll && From 1d574b7b10a46d17fb6e174bfc5d87440426482f Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Tue, 8 Jan 2019 11:57:03 +0000 Subject: [PATCH 010/450] add typedefs for methods that return a pointer instead of void --- src/m_imp.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/m_imp.h b/src/m_imp.h index 5f746094c..68dbb14c3 100644 --- a/src/m_imp.h +++ b/src/m_imp.h @@ -27,6 +27,13 @@ typedef void (*t_symbolmethod)(t_pd *x, t_symbol *s); 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); +typedef void* (*t_bangmethodr)(t_pd *x); +typedef void* (*t_pointermethodr)(t_pd *x, t_gpointer *gp); +typedef void* (*t_floatmethodr)(t_pd *x, t_float f); +typedef void* (*t_symbolmethodr)(t_pd *x, t_symbol *s); +typedef void* (*t_listmethodr)(t_pd *x, t_symbol *s, int argc, t_atom *argv); +typedef void* (*t_anymethodr)(t_pd *x, t_symbol *s, int argc, t_atom *argv); + struct _class { t_symbol *c_name; /* name (mostly for error reporting) */ From 7c307303045594d8167c356c2d434e41fd2f1e0a Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Tue, 8 Jan 2019 12:00:35 +0000 Subject: [PATCH 011/450] deprivatize b/f/s/l constructors and redeclare in m_class.c --- src/m_class.c | 5 +++++ src/x_connective.c | 6 +++--- src/x_list.c | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/m_class.c b/src/m_class.c index 3c63603b6..adb036d4e 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -955,6 +955,11 @@ typedef t_pd *(*t_fun5)(t_int i1, t_int i2, t_int i3, t_int i4, t_int i5, typedef t_pd *(*t_fun6)(t_int i1, t_int i2, t_int i3, t_int i4, t_int i5, t_int i6, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); +void *bang_new(t_pd *dummy); +void *pdfloat_new(t_pd *dummy, t_float f); +void *pdsymbol_new(t_pd *dummy, t_symbol *s); +void *list_new(t_pd *dummy, t_symbol *s, int argc, t_atom *argv); + void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) { t_method *f; diff --git a/src/x_connective.c b/src/x_connective.c index ee9e9fae6..31ab0146c 100644 --- a/src/x_connective.c +++ b/src/x_connective.c @@ -74,7 +74,7 @@ typedef struct _pdfloat they're created by short-circuited messages to the "new" object which are handled specially in pd_typedmess(). */ -static void *pdfloat_new(t_pd *dummy, t_float f) +void *pdfloat_new(t_pd *dummy, t_float f) { t_pdfloat *x = (t_pdfloat *)pd_new(pdfloat_class); x->x_f = f; @@ -138,7 +138,7 @@ typedef struct _pdsymbol t_symbol *x_s; } t_pdsymbol; -static void *pdsymbol_new(t_pd *dummy, t_symbol *s) +void *pdsymbol_new(t_pd *dummy, t_symbol *s) { t_pdsymbol *x = (t_pdsymbol *)pd_new(pdsymbol_class); x->x_s = s; @@ -196,7 +196,7 @@ typedef struct _bang t_object x_obj; } t_bang; -static void *bang_new(t_pd *dummy) +void *bang_new(t_pd *dummy) { t_bang *x = (t_bang *)pd_new(bang_class); outlet_new(&x->x_obj, &s_bang); diff --git a/src/x_list.c b/src/x_list.c index 31b267e83..77226de2d 100644 --- a/src/x_list.c +++ b/src/x_list.c @@ -822,7 +822,7 @@ static void list_tosymbol_setup(void) /* ------------- list ------------------- */ -static void *list_new(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) +void *list_new(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) { if (!argc || argv[0].a_type != A_SYMBOL) pd_this->pd_newest = list_append_new(s, argc, argv); From e4521e131f6c8dfaa25f97dee55bc479c90474b3 Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Wed, 11 Aug 2021 13:46:49 +0100 Subject: [PATCH 012/450] Typecheck both int (probably pointer) and float args separately. Emscripten doesn't let you call function pointers with the wrong type. To avoid copy/paste errors, the dispatcher code is generated. Edit the generator instead of the generated files. The generated files are checked into the repository with this commit; they will hopefully change very rarely, and complicating the build system seems even worse. --- src/m_class.c | 59 ++++--------- src/m_class_dispatcher.c | 164 +++++++++++++++++++++++++++++++++++++ src/m_class_dispatcher_1.h | 43 ++++++++++ src/m_class_dispatcher_2.h | 58 +++++++++++++ 4 files changed, 283 insertions(+), 41 deletions(-) create mode 100644 src/m_class_dispatcher.c create mode 100644 src/m_class_dispatcher_1.h create mode 100644 src/m_class_dispatcher_2.h diff --git a/src/m_class.c b/src/m_class.c index adb036d4e..66202a6ac 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -937,23 +937,17 @@ t_pd *pd_newest(void) /* horribly, we need prototypes for each of the artificial function calls in typedmess(), to keep the compiler quiet. */ + /* Even more horribly, function pointers must be called at their + exact type in Emscripten, including return type, which makes the + number of cases explode. The required typedefs and dispatcher code + are generated by m_class_dispatcher.c, which see. */ + typedef t_pd *(*t_newgimme)(t_symbol *s, int argc, t_atom *argv); typedef void(*t_messgimme)(t_pd *x, t_symbol *s, int argc, t_atom *argv); +typedef void*(*t_messgimmer)(t_pd *x, t_symbol *s, int argc, t_atom *argv); -typedef t_pd *(*t_fun0)( - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun1)(t_int i1, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun2)(t_int i1, t_int i2, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun3)(t_int i1, t_int i2, t_int i3, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun4)(t_int i1, t_int i2, t_int i3, t_int i4, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun5)(t_int i1, t_int i2, t_int i3, t_int i4, t_int i5, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun6)(t_int i1, t_int i2, t_int i3, t_int i4, t_int i5, t_int i6, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); +/* this file is generated by m_class_dispatcher.c */ +#include "m_class_dispatcher_1.h" void *bang_new(t_pd *dummy); void *pdfloat_new(t_pd *dummy, t_float f); @@ -969,7 +963,8 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) int i; t_int ai[MAXPDARG+1], *ap = ai; t_floatarg ad[MAXPDARG+1], *dp = ad; - int narg = 0; + int niarg = 0; + int nfarg = 0; t_pd *bonzo; /* check for messages that are handled by fixed slots in the class @@ -1027,7 +1022,7 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) return; } if (argc > MAXPDARG) argc = MAXPDARG; - if (x != &pd_objectmaker) *(ap++) = (t_int)x, narg++; + if (x != &pd_objectmaker) *(ap++) = (t_int)x, niarg++; while ((wanttype = *wp++)) { switch (wanttype) @@ -1042,7 +1037,7 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) argc--; argv++; } - narg++; + niarg++; ap++; break; case A_FLOAT: @@ -1057,6 +1052,7 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) argc--; argv++; } + nfarg++; dp++; break; case A_SYMBOL: @@ -1078,36 +1074,17 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) argc--; argv++; } - narg++; + niarg++; ap++; break; default: goto badarg; } } - switch (narg) - { - case 0 : bonzo = (*(t_fun0)(m->me_fun)) - (ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 1 : bonzo = (*(t_fun1)(m->me_fun)) - (ai[0], ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 2 : bonzo = (*(t_fun2)(m->me_fun)) - (ai[0], ai[1], ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 3 : bonzo = (*(t_fun3)(m->me_fun)) - (ai[0], ai[1], ai[2], ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 4 : bonzo = (*(t_fun4)(m->me_fun)) - (ai[0], ai[1], ai[2], ai[3], - ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 5 : bonzo = (*(t_fun5)(m->me_fun)) - (ai[0], ai[1], ai[2], ai[3], ai[4], - ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 6 : bonzo = (*(t_fun6)(m->me_fun)) - (ai[0], ai[1], ai[2], ai[3], ai[4], ai[5], - ad[0], ad[1], ad[2], ad[3], ad[4]); break; - default: bonzo = 0; - } - if (x == &pd_objectmaker) - pd_this->pd_newest = bonzo; + +/* this file is generated by m_class_dispatcher.c */ +#include "m_class_dispatcher_2.h" + return; } (*c->c_anymethod)(x, s, argc, argv); diff --git a/src/m_class_dispatcher.c b/src/m_class_dispatcher.c new file mode 100644 index 000000000..f26bb5054 --- /dev/null +++ b/src/m_class_dispatcher.c @@ -0,0 +1,164 @@ +/* +This program generates the files +- m_class_dispatcher_1.h, containing typedefs +- m_class_dispatcher_2.h, containing the dispatcher + +Function pointers must be called at their exact type in Emscripten, +including return type, which makes the number of cases explode (42 +instead of 6). This is not checked at compile time, but wrong usage +crashes at runtime. The naming pattern is t_funMN for M t_int args +and N t_floatarg args returning t_pd *, with t_vfunMN for the void- +returning variants. The versions with a t_pd * are for pd_objectmaker, +which returns the new object from the method, c.f. pd_newest support. +For the same reason, bang_new() and similar can't be private in +Emscripten, because their return type is different (as pd_objectmaker +methods) vs regular bang methods, so they need special treatment in the +dispatcher: the dispatcher checks explicitly for pd_objectmaker and +calls the method at the correct type. +*/ + +#include +#include + +#define MAXMAXARGS 16 + +const char *warning = + "/* IMPORTANT: EDIT m_class_dispatcher.c INSTEAD OF THIS FILE */\n"; + +int main(int argc, char **argv) +{ + const char *rettype[2] = { "void ", "t_pd *" }; + int MAXARGS, ret, args, iargs, fargs, arg; + FILE *o; + if (argc != 2) + { + fprintf(stderr, "usage: %s maxargs\n", argv[0]); + return 1; + } + MAXARGS = atoi(argv[1]); + if (MAXARGS >= MAXMAXARGS) + { + fprintf(stderr, "error: too many arguments for today\n"); + return 1; + } + o = fopen("m_class_dispatcher_1.h", "w"); + if (! o) + { + return 1; + } + fprintf(o, warning); + for (ret = 0; ret < 2; ++ret) + { + for (args = 0; args <= MAXARGS; ++args) + { + for (iargs = 0; iargs <= args; ++iargs) + { + fargs = args - iargs; + fprintf(o, "typedef %s(*t_%sfun%d%d)(", + rettype[ret], ret ? "" : "v", iargs, fargs); + if (args) + { + for (arg = 0; arg < args; ++arg) + { + if (arg > 0) + { + fprintf(o, ", "); + } + if (arg < iargs) + { + fprintf(o, "t_int i%d", arg); + } + else + { + fprintf(o, "t_floatarg d%d", arg - iargs); + } + } + } + else + { + fprintf(o, "void"); + } + fprintf(o, ");\n"); + } + } + } + fclose(o); + o = fopen("m_class_dispatcher_2.h", "w"); + if (! o) + { + return 1; + } + fprintf(o, warning); + fprintf(o, + "if (x == &pd_objectmaker)\n" + "{\n" + " switch (niarg * %d + nfarg)\n" + " {\n", + MAXMAXARGS); + for (args = 0; args <= MAXARGS; ++args) + { + for (iargs = 0; iargs <= args; ++iargs) + { + fargs = args - iargs; + fprintf(o, " case 0x%02x : bonzo = (*(t_fun%d%d)(m->me_fun))(", + iargs * MAXMAXARGS + fargs, iargs, fargs); + for (arg = 0; arg < args; ++arg) + { + if (arg > 0) + { + fprintf(o, ", "); + } + if (arg < iargs) + { + fprintf(o, "ai[%d]", arg); + } + else + { + fprintf(o, "ad[%d]", arg - iargs); + } + } + fprintf(o, "); break;\n"); + } + } + fprintf(o, + " default : bonzo = 0;\n" + " }\n" + " pd_this->pd_newest = bonzo;\n" + "}\n" + "else\n" + "{\n" + " switch (niarg * %d + nfarg)\n" + " {\n", + MAXMAXARGS); + for (args = 0; args <= MAXARGS; ++args) + { + for (iargs = 0; iargs <= args; ++iargs) + { + fargs = args - iargs; + fprintf(o, " case 0x%02x : (*(t_vfun%d%d)(m->me_fun))(", + iargs * MAXMAXARGS + fargs, iargs, fargs); + for (arg = 0; arg < args; ++arg) + { + if (arg > 0) + { + fprintf(o, ", "); + } + if (arg < iargs) + { + fprintf(o, "ai[%d]", arg); + } + else + { + fprintf(o, "ad[%d]", arg - iargs); + } + } + fprintf(o, "); break;\n"); + } + } + fprintf(o, + " default : ;\n" + " }\n" + "}\n"); + fclose(o); + return 0; +} diff --git a/src/m_class_dispatcher_1.h b/src/m_class_dispatcher_1.h new file mode 100644 index 000000000..511ab9a1a --- /dev/null +++ b/src/m_class_dispatcher_1.h @@ -0,0 +1,43 @@ +/* IMPORTANT: EDIT m_class_dispatcher.c INSTEAD OF THIS FILE */ +typedef void (*t_vfun00)(void); +typedef void (*t_vfun01)(t_floatarg d0); +typedef void (*t_vfun10)(t_int i0); +typedef void (*t_vfun02)(t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun11)(t_int i0, t_floatarg d0); +typedef void (*t_vfun20)(t_int i0, t_int i1); +typedef void (*t_vfun03)(t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun12)(t_int i0, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun21)(t_int i0, t_int i1, t_floatarg d0); +typedef void (*t_vfun30)(t_int i0, t_int i1, t_int i2); +typedef void (*t_vfun04)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef void (*t_vfun13)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun22)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun31)(t_int i0, t_int i1, t_int i2, t_floatarg d0); +typedef void (*t_vfun40)(t_int i0, t_int i1, t_int i2, t_int i3); +typedef void (*t_vfun05)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef void (*t_vfun14)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef void (*t_vfun23)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun32)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun41)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0); +typedef void (*t_vfun50)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4); +typedef t_pd *(*t_fun00)(void); +typedef t_pd *(*t_fun01)(t_floatarg d0); +typedef t_pd *(*t_fun10)(t_int i0); +typedef t_pd *(*t_fun02)(t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun11)(t_int i0, t_floatarg d0); +typedef t_pd *(*t_fun20)(t_int i0, t_int i1); +typedef t_pd *(*t_fun03)(t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun12)(t_int i0, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun21)(t_int i0, t_int i1, t_floatarg d0); +typedef t_pd *(*t_fun30)(t_int i0, t_int i1, t_int i2); +typedef t_pd *(*t_fun04)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef t_pd *(*t_fun13)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun22)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun31)(t_int i0, t_int i1, t_int i2, t_floatarg d0); +typedef t_pd *(*t_fun40)(t_int i0, t_int i1, t_int i2, t_int i3); +typedef t_pd *(*t_fun05)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef t_pd *(*t_fun14)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef t_pd *(*t_fun23)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun32)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun41)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0); +typedef t_pd *(*t_fun50)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4); diff --git a/src/m_class_dispatcher_2.h b/src/m_class_dispatcher_2.h new file mode 100644 index 000000000..009a3cb53 --- /dev/null +++ b/src/m_class_dispatcher_2.h @@ -0,0 +1,58 @@ +/* IMPORTANT: EDIT m_class_dispatcher.c INSTEAD OF THIS FILE */ +if (x == &pd_objectmaker) +{ + switch (niarg * 16 + nfarg) + { + case 0x00 : bonzo = (*(t_fun00)(m->me_fun))(); break; + case 0x01 : bonzo = (*(t_fun01)(m->me_fun))(ad[0]); break; + case 0x10 : bonzo = (*(t_fun10)(m->me_fun))(ai[0]); break; + case 0x02 : bonzo = (*(t_fun02)(m->me_fun))(ad[0], ad[1]); break; + case 0x11 : bonzo = (*(t_fun11)(m->me_fun))(ai[0], ad[0]); break; + case 0x20 : bonzo = (*(t_fun20)(m->me_fun))(ai[0], ai[1]); break; + case 0x03 : bonzo = (*(t_fun03)(m->me_fun))(ad[0], ad[1], ad[2]); break; + case 0x12 : bonzo = (*(t_fun12)(m->me_fun))(ai[0], ad[0], ad[1]); break; + case 0x21 : bonzo = (*(t_fun21)(m->me_fun))(ai[0], ai[1], ad[0]); break; + case 0x30 : bonzo = (*(t_fun30)(m->me_fun))(ai[0], ai[1], ai[2]); break; + case 0x04 : bonzo = (*(t_fun04)(m->me_fun))(ad[0], ad[1], ad[2], ad[3]); break; + case 0x13 : bonzo = (*(t_fun13)(m->me_fun))(ai[0], ad[0], ad[1], ad[2]); break; + case 0x22 : bonzo = (*(t_fun22)(m->me_fun))(ai[0], ai[1], ad[0], ad[1]); break; + case 0x31 : bonzo = (*(t_fun31)(m->me_fun))(ai[0], ai[1], ai[2], ad[0]); break; + case 0x40 : bonzo = (*(t_fun40)(m->me_fun))(ai[0], ai[1], ai[2], ai[3]); break; + case 0x05 : bonzo = (*(t_fun05)(m->me_fun))(ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x14 : bonzo = (*(t_fun14)(m->me_fun))(ai[0], ad[0], ad[1], ad[2], ad[3]); break; + case 0x23 : bonzo = (*(t_fun23)(m->me_fun))(ai[0], ai[1], ad[0], ad[1], ad[2]); break; + case 0x32 : bonzo = (*(t_fun32)(m->me_fun))(ai[0], ai[1], ai[2], ad[0], ad[1]); break; + case 0x41 : bonzo = (*(t_fun41)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ad[0]); break; + case 0x50 : bonzo = (*(t_fun50)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4]); break; + default : bonzo = 0; + } + pd_this->pd_newest = bonzo; +} +else +{ + switch (niarg * 16 + nfarg) + { + case 0x00 : (*(t_vfun00)(m->me_fun))(); break; + case 0x01 : (*(t_vfun01)(m->me_fun))(ad[0]); break; + case 0x10 : (*(t_vfun10)(m->me_fun))(ai[0]); break; + case 0x02 : (*(t_vfun02)(m->me_fun))(ad[0], ad[1]); break; + case 0x11 : (*(t_vfun11)(m->me_fun))(ai[0], ad[0]); break; + case 0x20 : (*(t_vfun20)(m->me_fun))(ai[0], ai[1]); break; + case 0x03 : (*(t_vfun03)(m->me_fun))(ad[0], ad[1], ad[2]); break; + case 0x12 : (*(t_vfun12)(m->me_fun))(ai[0], ad[0], ad[1]); break; + case 0x21 : (*(t_vfun21)(m->me_fun))(ai[0], ai[1], ad[0]); break; + case 0x30 : (*(t_vfun30)(m->me_fun))(ai[0], ai[1], ai[2]); break; + case 0x04 : (*(t_vfun04)(m->me_fun))(ad[0], ad[1], ad[2], ad[3]); break; + case 0x13 : (*(t_vfun13)(m->me_fun))(ai[0], ad[0], ad[1], ad[2]); break; + case 0x22 : (*(t_vfun22)(m->me_fun))(ai[0], ai[1], ad[0], ad[1]); break; + case 0x31 : (*(t_vfun31)(m->me_fun))(ai[0], ai[1], ai[2], ad[0]); break; + case 0x40 : (*(t_vfun40)(m->me_fun))(ai[0], ai[1], ai[2], ai[3]); break; + case 0x05 : (*(t_vfun05)(m->me_fun))(ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x14 : (*(t_vfun14)(m->me_fun))(ai[0], ad[0], ad[1], ad[2], ad[3]); break; + case 0x23 : (*(t_vfun23)(m->me_fun))(ai[0], ai[1], ad[0], ad[1], ad[2]); break; + case 0x32 : (*(t_vfun32)(m->me_fun))(ai[0], ai[1], ai[2], ad[0], ad[1]); break; + case 0x41 : (*(t_vfun41)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ad[0]); break; + case 0x50 : (*(t_vfun50)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4]); break; + default : ; + } +} From 2c488bd65c0a88b70ee6ba0453e53cc9c9632eb5 Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Tue, 8 Jan 2019 12:10:35 +0000 Subject: [PATCH 013/450] objectmaker methods need to be cast to their real type for emscripten --- src/m_pd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/m_pd.c b/src/m_pd.c index f4651a55d..f1e7f744b 100644 --- a/src/m_pd.c +++ b/src/m_pd.c @@ -275,7 +275,10 @@ void pd_bang(t_pd *x) void pd_float(t_pd *x, t_float f) { - (*(*x)->c_floatmethod)(x, f); + if (x == &pd_objectmaker) + ((t_floatmethodr)(*(*x)->c_floatmethod))(x, f); + else + (*(*x)->c_floatmethod)(x, f); } void pd_pointer(t_pd *x, t_gpointer *gp) From 79f630e6800d1246e5185c9de1ee764b69a2acb2 Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Wed, 11 Aug 2021 13:55:38 +0100 Subject: [PATCH 014/450] can't call canvas_new at wrong function pointer type in emscripten --- src/m_class.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/m_class.c b/src/m_class.c index 66202a6ac..0c4f1c35f 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -1018,7 +1018,10 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) if (x == &pd_objectmaker) pd_this->pd_newest = (*((t_newgimme)(m->me_fun)))(s, argc, argv); - else (*((t_messgimme)(m->me_fun)))(x, s, argc, argv); + else if (((t_messgimmer)(m->me_fun)) == ((t_messgimmer)(canvas_new))) + (*((t_messgimmer)(m->me_fun)))(x, s, argc, argv); + else + (*((t_messgimme)(m->me_fun)))(x, s, argc, argv); return; } if (argc > MAXPDARG) argc = MAXPDARG; From 3e5bc684ba40adf23a8d224ba438b30e5b6c799b Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Tue, 8 Jan 2019 12:17:06 +0000 Subject: [PATCH 015/450] fix objectmaker methods function pointer type issues in emscripten --- src/m_class.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/src/m_class.c b/src/m_class.c index 0c4f1c35f..c9792fe3a 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -971,28 +971,47 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) structure. */ if (s == &s_float) { - if (!argc) (*c->c_floatmethod)(x, 0.); - else if (argv->a_type == A_FLOAT) - (*c->c_floatmethod)(x, argv->a_w.w_float); - else goto badarg; + if (x == &pd_objectmaker) + if (!argc) + pd_this->pd_newest = pdfloat_new(x, 0.); + else if (argv->a_type == A_FLOAT) + pd_this->pd_newest = pdfloat_new(x, argv->a_w.w_float); + else goto badarg; + else + if (!argc) (*c->c_floatmethod)(x, 0.); + else if (argv->a_type == A_FLOAT) + (*c->c_floatmethod)(x, argv->a_w.w_float); + else goto badarg; return; } if (s == &s_bang) { - (*c->c_bangmethod)(x); + if (x == &pd_objectmaker) + pd_this->pd_newest = bang_new(x); + else + (*c->c_bangmethod)(x); return; } if (s == &s_list) { - (*c->c_listmethod)(x, s, argc, argv); + if (x == &pd_objectmaker) + pd_this->pd_newest = list_new(x, s, argc, argv); + else + (*c->c_listmethod)(x, s, argc, argv); return; } if (s == &s_symbol) { if (argc && argv->a_type == A_SYMBOL) - (*c->c_symbolmethod)(x, argv->a_w.w_symbol); + if (x == &pd_objectmaker) + pd_this->pd_newest = pdsymbol_new(x, argv->a_w.w_symbol); + else + (*c->c_symbolmethod)(x, argv->a_w.w_symbol); else - (*c->c_symbolmethod)(x, &s_); + if (x == &pd_objectmaker) + pd_this->pd_newest = pdsymbol_new(x, &s_); + else + (*c->c_symbolmethod)(x, &s_); return; } /* pd_objectmaker doesn't require From fc3a15a4e133b9f0d57b7132758cf20ba7708a17 Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Fri, 9 Jun 2023 14:55:36 +0100 Subject: [PATCH 016/450] call free method using correct function pointer type (required by Emscripten) --- src/m_pd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/m_pd.c b/src/m_pd.c index f1e7f744b..7e3ff601d 100644 --- a/src/m_pd.c +++ b/src/m_pd.c @@ -25,10 +25,12 @@ t_pd *pd_new(t_class *c) return (x); } +typedef void (*t_freemethod)(t_pd *); + void pd_free(t_pd *x) { t_class *c = *x; - if (c->c_freemethod) (*(t_gotfn)(c->c_freemethod))(x); + if (c->c_freemethod) (*(t_freemethod)(c->c_freemethod))(x); if (c->c_patchable) { while (((t_object *)x)->ob_outlet) From 32f380a1128371265a3fa5dd2fdb318bfe8630e9 Mon Sep 17 00:00:00 2001 From: Claude Heiland-Allen Date: Fri, 9 Jun 2023 15:48:39 +0100 Subject: [PATCH 017/450] ensure the class dispatched files are included in dist tarballs --- src/Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Makefile.am b/src/Makefile.am index da62435e2..80dd7b8d6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -204,6 +204,7 @@ pkginclude_HEADERS = m_pd.h m_imp.h g_canvas.h g_undo.h g_all_guis.h s_stuff.h \ include_HEADERS = m_pd.h noinst_HEADERS = s_audio_alsa.h s_audio_paring.h s_utf8.h m_private_utils.h noinst_HEADERS += z_hooks.h z_ringbuffer.h x_libpdreceive.h +noinst_HEADERS += m_class_dispatcher_1.h m_class_dispatcher_2.h if LIBPD libpdinclude_HEADERS += m_pd.h z_libpd.h @@ -215,7 +216,8 @@ endif # we want these in the dist tarball EXTRA_DIST = CHANGELOG.txt notes.txt pd.rc \ makefile.gnu makefile.mac makefile.mingw makefile.msvc \ - d_soundfile.h s_audio_audiounit.c s_audio_esd.c + d_soundfile.h s_audio_audiounit.c s_audio_esd.c \ + m_class_dispatcher.c # add WISH define if it's set WISH=@WISH@ From 4f58a8488da63af88df676660277f7683211bbcd Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Wed, 28 Jun 2023 11:20:29 +0200 Subject: [PATCH 018/450] "set" message with no arguments unsets receive~, throw~ and table DSP objects --- src/d_array.c | 9 +++++++++ src/d_global.c | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/d_array.c b/src/d_array.c index f3bba6782..87df29d8e 100644 --- a/src/d_array.c +++ b/src/d_array.c @@ -76,6 +76,15 @@ static void arrayvec_testvec(t_arrayvec *v) static void arrayvec_set(t_arrayvec *v, int argc, t_atom *argv) { int i; + if (!argc) /* unset */ + { + for (i = 0; i < v->v_n; i++) + { + gpointer_unset(&v->v_vec[i].d_gp); + v->v_vec[i].d_symbol = &s_; + } + return; + } for (i = 0; i < v->v_n && i < argc; i++) { gpointer_unset(&v->v_vec[i].d_gp); /* reset the pointer */ diff --git a/src/d_global.c b/src/d_global.c index 2f06e13b7..eb7980b97 100644 --- a/src/d_global.c +++ b/src/d_global.c @@ -225,7 +225,7 @@ static void sigreceive_setup(void) A_DEFSYM, A_DEFFLOAT, 0); class_setdspflags(sigreceive_class, CLASS_MULTICHANNEL); class_addmethod(sigreceive_class, (t_method)sigreceive_set, gensym("set"), - A_SYMBOL, 0); + A_DEFSYM, 0); class_addmethod(sigreceive_class, (t_method)sigreceive_dsp, gensym("dsp"), A_CANT, 0); class_sethelpsymbol(sigreceive_class, gensym("send-receive-tilde")); @@ -392,7 +392,7 @@ static void sigthrow_setup(void) sigthrow_class = class_new(gensym("throw~"), (t_newmethod)sigthrow_new, 0, sizeof(t_sigthrow), CLASS_MULTICHANNEL, A_DEFSYM, 0); class_addmethod(sigthrow_class, (t_method)sigthrow_set, gensym("set"), - A_SYMBOL, 0); + A_DEFSYM, 0); CLASS_MAINSIGNALIN(sigthrow_class, t_sigthrow, x_f); class_addmethod(sigthrow_class, (t_method)sigthrow_dsp, gensym("dsp"), A_CANT, 0); From f74ea97599e2a6fc132ad6b41cfc9e0235235fc4 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Wed, 28 Jun 2023 12:00:27 +0200 Subject: [PATCH 019/450] tabread4~: make onset inlet signal rate --- src/d_array.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/d_array.c b/src/d_array.c index f3bba6782..681ef5b7f 100644 --- a/src/d_array.c +++ b/src/d_array.c @@ -471,24 +471,23 @@ typedef struct _tabread4_tilde t_object x_obj; t_arrayvec x_v; t_float x_f; - t_float x_onset; } t_tabread4_tilde; static void *tabread4_tilde_new(t_symbol *s, int argc, t_atom *argv) { t_tabread4_tilde *x = (t_tabread4_tilde *)pd_new(tabread4_tilde_class); arrayvec_init(&x->x_v, x, argc, argv); + signalinlet_new(&x->x_obj, 0); outlet_new(&x->x_obj, gensym("signal")); - floatinlet_new(&x->x_obj, &x->x_onset); - x->x_f = x->x_onset = 0; + x->x_f = 0; return (x); } static t_int *tabread4_tilde_perform(t_int *w) { t_dsparray *d = (t_dsparray *)(w[1]); - double onset = *(t_float *)(w[2]); - t_sample *in = (t_sample *)(w[3]); + t_sample *in = (t_sample *)(w[2]); + t_sample *onset = (t_sample *)(w[3]); t_sample *out = (t_sample *)(w[4]); int n = (int)(w[5]); int maxindex, i; @@ -505,7 +504,7 @@ static t_int *tabread4_tilde_perform(t_int *w) for (i = 0; i < n; i++) { - double findex = *in++ + onset; + double findex = (double)*in++ + (double)*onset++; int index = findex; t_sample frac, a, b, c, d, cminusb; if (index < 1) @@ -542,13 +541,14 @@ static void tabread4_tilde_set(t_tabread4_tilde *x, t_symbol *s, static void tabread4_tilde_dsp(t_tabread4_tilde *x, t_signal **sp) { - int i; - signal_setmultiout(&sp[1], x->x_v.v_n); + int i, length = sp[0]->s_length; + signal_setmultiout(&sp[2], x->x_v.v_n); arrayvec_testvec(&x->x_v); for (i = 0; i < x->x_v.v_n; i++) - dsp_add(tabread4_tilde_perform, 5, &x->x_v.v_vec[i], &x->x_onset, - sp[0]->s_vec + (i%(sp[0]->s_nchans)) * sp[0]->s_length, - sp[1]->s_vec + i * sp[0]->s_length, (t_int)sp[0]->s_length); + dsp_add(tabread4_tilde_perform, 5, &x->x_v.v_vec[i], + sp[0]->s_vec + (i % sp[0]->s_nchans) * length, + sp[1]->s_vec + (i % sp[1]->s_nchans) * length, + sp[2]->s_vec + i * length, (t_int)length); } From f40d63d3bcb6566c63765ff3b51db56e6579fff0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=AD=90caitp=E2=AD=90?= Date: Sun, 8 Oct 2023 00:17:34 -0400 Subject: [PATCH 020/450] docs: fix uanother typo in drawtext-help.pd --- doc/5.reference/drawtext-help.pd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/5.reference/drawtext-help.pd b/doc/5.reference/drawtext-help.pd index 620aca7c9..5fab5e7c5 100644 --- a/doc/5.reference/drawtext-help.pd +++ b/doc/5.reference/drawtext-help.pd @@ -21,7 +21,7 @@ #X text 39 42 - Optional flags:, f 54; #X text 53 63 - "-n": make invisible initially \; - "-v [const or field name]": assign a variable to make this visible/invisible., f 57; #X text 28 114 Arguments:; -#X text 550 264 This [sruct] object below defines the fields for this template. You can see them by right-clicking on the object in the "drawtext-data" window and selecting "properties."; +#X text 550 264 This [struct] object below defines the fields for this template. You can see them by right-clicking on the object in the "drawtext-data" window and selecting "properties."; #X text 104 238 <-- inlet sets visibility (1: visible \, 0: invisible); #X obj 762 221 drawtext -n boom 0 -45 0 boom=; #X obj 762 190 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; From 2c6b7070ed79f9af690c8a2efea0fe198ee0ac7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 2 Nov 2023 14:55:46 +0100 Subject: [PATCH 021/450] properly export some symbols used in extra/ however, we really should wrap these into access functions https://github.com/pure-data/pure-data/issues/2122 --- src/m_pd.h | 2 +- src/s_stuff.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/m_pd.h b/src/m_pd.h index c658fa555..d8c6c44e4 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -12,7 +12,6 @@ extern "C" { #define PD_MINOR_VERSION 54 #define PD_BUGFIX_VERSION 1 #define PD_TEST_VERSION "" -extern int pd_compatibilitylevel; /* e.g., 43 for pd 0.43 compatibility */ /* 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 */ @@ -903,6 +902,7 @@ static inline int PD_BIGORSMALL(t_float f) /* exponent outside (-512,512) */ /* get version number at run time */ EXTERN void sys_getversion(int *major, int *minor, int *bugfix); +EXTERN int pd_compatibilitylevel; /* e.g., 43 for pd 0.43 compatibility */ /* get floatsize at run time */ EXTERN unsigned int sys_getfloatsize(void); diff --git a/src/s_stuff.h b/src/s_stuff.h index 0708d453c..36faa5ee1 100644 --- a/src/s_stuff.h +++ b/src/s_stuff.h @@ -38,7 +38,7 @@ extern t_symbol *sys_flags; /* s_main.c */ extern int sys_debuglevel; extern int sys_verbose; -extern int sys_noloadbang; +EXTERN int sys_noloadbang; EXTERN int sys_havegui(void); extern const char *sys_guicmd; @@ -249,7 +249,7 @@ void dummy_listdevs(void); /* 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_midiapi; extern int sys_nmidiin; extern int sys_nmidiout; extern int sys_midiindevlist[]; @@ -346,7 +346,7 @@ void sys_setalarm(int microsec); #endif void sys_set_priority(int higher); -extern int sys_hipriority; /* real-time flag, true if priority boosted */ +EXTERN int sys_hipriority; /* real-time flag, true if priority boosted */ /* s_print.c */ From f213ffafbb5345bbcf1d20df1d2c437f529a5b64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 2 Nov 2023 16:33:51 +0100 Subject: [PATCH 022/450] export glob_watchdog() as well but use *void*" in the argument signature (same as the other glob_* callbacks) --- src/m_glob.c | 2 +- src/m_imp.h | 1 + src/m_sched.c | 2 +- src/s_inter.c | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/m_glob.c b/src/m_glob.c index 0eaf69a28..fe99ca960 100644 --- a/src/m_glob.c +++ b/src/m_glob.c @@ -35,7 +35,7 @@ void glob_start_startup_dialog(t_pd *dummy, t_floatarg flongform); void glob_startup_dialog(t_pd *dummy, t_symbol *s, int argc, t_atom *argv); void glob_ping(t_pd *dummy); void glob_plugindispatch(t_pd *dummy, t_symbol *s, int argc, t_atom *argv); -void glob_watchdog(t_pd *dummy); +void glob_watchdog(void *dummy); void glob_loadpreferences(t_pd *dummy, t_symbol *s); void glob_savepreferences(t_pd *dummy, t_symbol *s); void glob_forgetpreferences(t_pd *dummy); diff --git a/src/m_imp.h b/src/m_imp.h index 5f746094c..44b30d72d 100644 --- a/src/m_imp.h +++ b/src/m_imp.h @@ -102,6 +102,7 @@ EXTERN t_pd *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); /* glob_exit(0); */ EXTERN void glob_exit(void *dummy, t_float status); +EXTERN void glob_watchdog(void *dummy); /* glob_exit(0); */ EXTERN void open_via_helppath(const char *name, const char *dir); #define __m_imp_h_ diff --git a/src/m_sched.c b/src/m_sched.c index b62751b98..717561170 100644 --- a/src/m_sched.c +++ b/src/m_sched.c @@ -198,7 +198,7 @@ void sys_log_error(int type) static int sched_lastinclip, sched_lastoutclip, sched_lastindb, sched_lastoutdb; -void glob_watchdog(t_pd *dummy); +void glob_watchdog(void *dummy); static float sched_fastforward; diff --git a/src/s_inter.c b/src/s_inter.c index adf82f8a5..0e433fb9e 100644 --- a/src/s_inter.c +++ b/src/s_inter.c @@ -1106,7 +1106,7 @@ void sys_gui_preferences(void) static int sys_watchfd = -1; -void glob_watchdog(t_pd *dummy) +void glob_watchdog(void *dummy) { if (sys_watchfd < 0) return; From 06b2e0c46aa4eed5de19c7a9a77b5be39bb90cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 2 Nov 2023 16:37:18 +0100 Subject: [PATCH 023/450] export all namelist_* functions it doesn't really make sense to only export the namelist_append_files() it's probably just as well to remove all of them from the public interface, but then, a linked list of strings is a somewhat useful thing --- src/s_stuff.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/s_stuff.h b/src/s_stuff.h index 36faa5ee1..65fb0b64a 100644 --- a/src/s_stuff.h +++ b/src/s_stuff.h @@ -16,10 +16,11 @@ typedef struct _namelist /* element in a linked list of stored strings */ char *nl_string; /* the string */ } t_namelist; -t_namelist *namelist_append(t_namelist *listwas, const char *s, int allowdup); +EXTERN t_namelist *namelist_append(t_namelist *listwas, const char *s, int allowdup); EXTERN t_namelist *namelist_append_files(t_namelist *listwas, const char *s); -void namelist_free(t_namelist *listwas); -const char *namelist_get(const t_namelist *namelist, int n); +EXTERN void namelist_free(t_namelist *listwas); +EXTERN const char *namelist_get(const t_namelist *namelist, int n); + void sys_setextrapath(const char *p); extern int sys_usestdpath; int sys_open_absolute(const char *name, const char* ext, From 7a59ac2d59901ae05b96531e7ef8363d839a9797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 2 Nov 2023 16:47:21 +0100 Subject: [PATCH 024/450] Remove EXTERN specifier from function definitions (as opposed to declarations) the public interface (including EXTERN) should (only) live in the header-files. the only exception is error(), which we no longer expose in the headers but still export. this also declares mayer_dofft() (in src/d_fft_fftsg.c) as "static", as it really is an implementation detail. the public API is mayer_fft() resp mayer_ifft() --- src/d_fft_fftsg.c | 12 ++++++------ src/d_fft_fftw.c | 10 +++++----- src/g_canvas.c | 2 +- src/m_class.c | 6 +++--- src/m_pd.c | 6 +++--- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/d_fft_fftsg.c b/src/d_fft_fftsg.c index 534175759..0d2d3797c 100644 --- a/src/d_fft_fftsg.c +++ b/src/d_fft_fftsg.c @@ -109,12 +109,12 @@ void mayer_term( void) } /* -------- public routines -------- */ -EXTERN void mayer_fht(t_sample *fz, int n) +void mayer_fht(t_sample *fz, int n) { post("FHT: not yet implemented"); } -EXTERN void mayer_dofft(t_sample *fz1, t_sample *fz2, int n, int sgn) +static void mayer_dofft(t_sample *fz1, t_sample *fz2, int n, int sgn) { FFTFLT *buf, *fp3; int i; @@ -137,17 +137,17 @@ EXTERN void mayer_dofft(t_sample *fz1, t_sample *fz2, int n, int sgn) } } -EXTERN void mayer_fft(int n, t_sample *fz1, t_sample *fz2) +void mayer_fft(int n, t_sample *fz1, t_sample *fz2) { mayer_dofft(fz1, fz2, n, -1); } -EXTERN void mayer_ifft(int n, t_sample *fz1, t_sample *fz2) +void mayer_ifft(int n, t_sample *fz1, t_sample *fz2) { mayer_dofft(fz1, fz2, n, 1); } -EXTERN void mayer_realfft(int n, t_sample *fz) +void mayer_realfft(int n, t_sample *fz) { FFTFLT *buf, *fp3; int i, nover2 = n/2; @@ -165,7 +165,7 @@ EXTERN void mayer_realfft(int n, t_sample *fz) *fp1 = fp3[0], *fp2 = fp3[1]; } -EXTERN void mayer_realifft(int n, t_sample *fz) +void mayer_realifft(int n, t_sample *fz) { FFTFLT *buf, *fp3; int i, nover2 = n/2; diff --git a/src/d_fft_fftw.c b/src/d_fft_fftw.c index 10d1ce403..e356d49c9 100644 --- a/src/d_fft_fftw.c +++ b/src/d_fft_fftw.c @@ -167,7 +167,7 @@ void mayer_term(void) } -EXTERN void mayer_fht(t_sample *fz, int n) +void mayer_fht(t_sample *fz, int n) { post("FHT: not yet implemented"); } @@ -189,12 +189,12 @@ static void mayer_do_cfft(int n, t_sample *fz1, t_sample *fz2, int fwd) fz1[i] = fz[i*2], fz2[i] = fz[i*2+1]; } -EXTERN void mayer_fft(int n, t_sample *fz1, t_sample *fz2) +void mayer_fft(int n, t_sample *fz1, t_sample *fz2) { mayer_do_cfft(n, fz1, fz2, 1); } -EXTERN void mayer_ifft(int n, t_sample *fz1, t_sample *fz2) +void mayer_ifft(int n, t_sample *fz1, t_sample *fz2) { mayer_do_cfft(n, fz1, fz2, 0); } @@ -205,7 +205,7 @@ EXTERN void mayer_ifft(int n, t_sample *fz1, t_sample *fz2) but it's probably the mayer_fft that should be corrected... */ -EXTERN void mayer_realfft(int n, t_sample *fz) +void mayer_realfft(int n, t_sample *fz) { int i; rfftw_info *p = rfftw_getplan(n, 1); @@ -221,7 +221,7 @@ EXTERN void mayer_realfft(int n, t_sample *fz) fz[i] = -p->out[i]; } -EXTERN void mayer_realifft(int n, t_sample *fz) +void mayer_realifft(int n, t_sample *fz) { int i; rfftw_info *p = rfftw_getplan(n, 0); diff --git a/src/g_canvas.c b/src/g_canvas.c index a948ed38e..0a06d2b12 100644 --- a/src/g_canvas.c +++ b/src/g_canvas.c @@ -2172,7 +2172,7 @@ void g_canvas_freepdinstance(void) freebytes(THISGUI, sizeof(*THISGUI)); } -EXTERN int pd_getdspstate(void) +int pd_getdspstate(void) { return (THISGUI->i_dspstate); } diff --git a/src/m_class.c b/src/m_class.c index 9e98c1fa2..5ea4b1341 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -142,7 +142,7 @@ static void class_addmethodtolist(t_class *c, t_methodentry **methodlist, } #ifdef PDINSTANCE -EXTERN void pd_setinstance(t_pdinstance *x) +void pd_setinstance(t_pdinstance *x) { pd_this = x; } @@ -157,7 +157,7 @@ static void pdinstance_renumber(void) extern void text_template_init(void); extern void garray_init(void); -EXTERN t_pdinstance *pdinstance_new(void) +t_pdinstance *pdinstance_new(void) { t_pdinstance *x = (t_pdinstance *)getbytes(sizeof(t_pdinstance)); t_class *c; @@ -193,7 +193,7 @@ EXTERN t_pdinstance *pdinstance_new(void) return (x); } -EXTERN void pdinstance_free(t_pdinstance *x) +void pdinstance_free(t_pdinstance *x) { t_symbol *s; t_canvas *canvas; diff --git a/src/m_pd.c b/src/m_pd.c index f4651a55d..03799e1f8 100644 --- a/src/m_pd.c +++ b/src/m_pd.c @@ -322,7 +322,7 @@ void pd_init(void) pd_init_systems(); } -EXTERN void pd_init_systems(void) { +void pd_init_systems(void) { mess_init(); sys_lock(); obj_init(); @@ -332,12 +332,12 @@ EXTERN void pd_init_systems(void) { sys_unlock(); } -EXTERN void pd_term_systems(void) { +void pd_term_systems(void) { sys_lock(); sys_unlock(); } -EXTERN t_canvas *pd_getcanvaslist(void) +t_canvas *pd_getcanvaslist(void) { return (pd_this->pd_canvaslist); } From c073243a9b6a6a81fba738353dcedffca3f8629b Mon Sep 17 00:00:00 2001 From: porres Date: Thu, 2 Nov 2023 14:21:46 -0300 Subject: [PATCH 025/450] document [notein] handling of 'note off' messages when receiving a 'note off' message (I mean a proper one, with release velocity), [notein] outputs a message with '0' velocity. closes https://github.com/pure-data/pddp/issues/170 --- doc/5.reference/midi-help.pd | 205 ++++++++++++++++++----------------- 1 file changed, 104 insertions(+), 101 deletions(-) diff --git a/doc/5.reference/midi-help.pd b/doc/5.reference/midi-help.pd index f7881ed79..df9d0d7e8 100644 --- a/doc/5.reference/midi-help.pd +++ b/doc/5.reference/midi-help.pd @@ -1,16 +1,16 @@ -#N canvas 207 23 1070 714 12; -#X obj 529 248 noteout; -#X obj 675 338 pgmout; -#X obj 560 338 bendout; +#N canvas 207 23 1071 715 12; +#X obj 529 228 noteout; +#X obj 675 312 pgmout; +#X obj 560 312 bendout; #X floatatom 26 447 5 0 0 0 - - - 0; #X text 31 379 pitch bend, f 5; -#X obj 675 257 ctlout; -#X obj 779 338 touchout; -#X obj 895 338 polytouchout; -#X obj 69 559 midiin; -#X obj 411 557 sysexin; -#X obj 794 631 midiout; -#X obj 241 567 midirealtimein; +#X obj 675 237 ctlout; +#X obj 779 312 touchout; +#X obj 895 312 polytouchout; +#X obj 69 553 midiin; +#X obj 411 551 sysexin; +#X obj 794 641 midiout; +#X obj 241 561 midirealtimein; #X obj 241 419 touchin; #X obj 340 399 polytouchin; #X obj 26 167 notein; @@ -24,7 +24,7 @@ #X text 372 473 aftertouch value; #X floatatom 261 330 0 0 0 0 - - - 0; #X text 289 331 value; -#X text 76 166 (omni); +#X text 22 147 (omni); #X obj 166 192 notein 1; #X text 157 157 (channel 1); #X text 324 158 (all controllers \, omni); @@ -32,48 +32,42 @@ #X text 22 325 value; #X obj 65 298 ctlin 4; #X floatatom 111 324 0 0 0 0 - - - 0; -#X text 507 192 note; -#X text 886 272 touch; -#X text 931 281 note; +#X text 507 172 note; +#X text 886 246 touch; +#X text 931 255 note; #X text 121 297 (controller 4); -#X text 707 178 value; -#X text 740 231 channel; -#X obj 848 230 ctlout 7; -#X text 24 614 raw MIDI byte by byte (except real-time messages), f 27; -#X text 236 621 real-time messages; -#X text 32 516 These three below are always omni \, don't take arguments and output the port number on the right outlet:; -#X text 725 205 controller #; +#X text 707 158 value; +#X text 740 211 channel; +#X obj 848 210 ctlout 7; +#X text 24 608 raw MIDI byte by byte (except real-time messages), f 27; +#X text 236 615 real-time messages; +#X text 32 510 These three below are always omni \, don't take arguments and output the port number on the right outlet:; +#X text 725 185 controller #; #X text 327 217 controller #; #X text 61 241 note; #X text 159 243 note; #X text 200 243 velocity; #X text 409 450 note; #X obj 26 419 bendin, f 7; -#X text 81 418 *; -#X text 615 337 *; -#X text 612 217 channel; -#X text 548 191 velocity; -#X text 391 608 system exclusive messages only \, byte by byte, f 16; -#X text 886 288 value; +#X text 612 197 channel; +#X text 548 171 velocity; +#X text 393 607 system exclusive messages only \, byte by byte, f 16; +#X text 886 262 value; #X text 339 185 channel/port; #X text 165 171 (port 1); #X text 139 326 channel/port; #X obj 261 300 ctlin 7 17; #X text 339 294 (controller 7 \, channel 1/port 2), f 17; #X text 15 8 MIDI INPUTS: Inputs are omni by default \, an optional argument sets the channel/port and removes the rightmost outlet (which outputs this information). For [ctlin] \, a first optional argument sets controller number and suppresses its corresponding outlet \, and a second argument sets the channel and also suppresses its corresponding outlet., f 70; -#X text 549 71 MIDI OUTPUTS: Outputs are set to channel 1 / port 1 by default \, but they also take a channel/port argument (where channels from 17 represent port 2 \, from 33 port 3 and so on). The [ctlout] object takes control and channel/port arguments. Inlets are not suppressed by arguments and change the parameters., f 67; -#X text 808 163 (controller 7 \, channel/port 1), f 15; -#X obj 959 230 ctlout 3 38; +#X text 550 55 MIDI OUTPUTS: Outputs are set to channel 1 / port 1 by default \, but they also take a channel/port argument (where channels from 17 represent port 2 \, from 33 port 3 and so on). The [ctlout] object takes control and channel/port arguments. Inlets are not suppressed by arguments and change the parameters., f 67; +#X text 808 143 (controller 7 \, channel/port 1), f 15; +#X obj 959 210 ctlout 3 38; #X text 15 89 Port number is encoded as the channel number. Channels 1 to 16 are for port 1 \, channels 17 to 32 is the same as channels 1 to 16 for port 2 \, channels 33 to 48 represents channels 1 to 16 in port 3 \, and so on..., f 70; -#X text 184 418 **; -#X text 724 337 **; -#X text 539 437 ** Program change values in [pgmin] and [pgmout] are indexed from 1 \, which means that the possible values are from 1 to 128 (not 0 to 127)!, f 70; -#X text 539 387 * Known bug: [bendin] and [bendout] are inconsistent ([bendin] outputs values from 0 to 16383 and [bendout] takes values from -8192 to 8191) - this won't change., f 70; #X text 839 682 updated for Pd version 0.48-2; -#X text 938 163 (controller 3 \, channel 6/port 3), f 17; +#X text 938 143 (controller 3 \, channel 6/port 3), f 17; #X floatatom 26 241 4 0 127 0 - - - 0; -#X floatatom 588 217 0 1 64 0 - - - 0; -#X floatatom 560 312 5 0 0 0 - - - 0; +#X floatatom 588 197 0 1 64 0 - - - 0; +#X floatatom 560 286 5 0 0 0 - - - 0; #X floatatom 45 218 4 0 127 0 - - - 0; #X floatatom 166 221 4 0 127 0 - - - 0; #X floatatom 280 246 4 0 127 0 - - - 0; @@ -82,23 +76,23 @@ #X floatatom 340 471 4 0 127 0 - - - 0; #X floatatom 127 447 4 0 127 0 - - - 0; #X floatatom 241 447 4 0 127 0 - - - 0; -#X floatatom 69 588 4 0 127 0 - - - 0; -#X floatatom 241 596 4 0 127 0 - - - 0; -#X floatatom 108 588 4 0 127 0 - - - 0; -#X floatatom 411 586 4 0 127 0 - - - 0; +#X floatatom 69 582 4 0 127 0 - - - 0; +#X floatatom 241 590 4 0 127 0 - - - 0; +#X floatatom 108 582 4 0 127 0 - - - 0; +#X floatatom 411 580 4 0 127 0 - - - 0; #X floatatom 457 586 4 0 127 0 - - - 0; -#X floatatom 336 596 4 0 127 0 - - - 0; -#X floatatom 959 203 4 0 127 0 - - - 0; -#X floatatom 848 203 4 0 127 0 - - - 0; -#X floatatom 694 204 4 0 127 0 - - - 0; -#X floatatom 675 177 4 0 127 0 - - - 0; -#X floatatom 552 217 4 0 127 0 - - - 0; -#X floatatom 514 217 4 0 127 0 - - - 0; -#X floatatom 675 312 4 0 127 0 - - - 0; -#X floatatom 779 312 4 0 127 0 - - - 0; -#X floatatom 895 312 4 0 127 0 - - - 0; -#X floatatom 935 312 4 0 127 0 - - - 0; -#X floatatom 714 230 0 1 64 0 - - - 0; +#X floatatom 336 590 4 0 127 0 - - - 0; +#X floatatom 959 183 4 0 127 0 - - - 0; +#X floatatom 848 183 4 0 127 0 - - - 0; +#X floatatom 694 184 4 0 127 0 - - - 0; +#X floatatom 675 157 4 0 127 0 - - - 0; +#X floatatom 552 197 4 0 127 0 - - - 0; +#X floatatom 514 197 4 0 127 0 - - - 0; +#X floatatom 675 286 4 0 127 0 - - - 0; +#X floatatom 779 286 4 0 127 0 - - - 0; +#X floatatom 895 286 4 0 127 0 - - - 0; +#X floatatom 935 286 4 0 127 0 - - - 0; +#X floatatom 714 210 0 1 64 0 - - - 0; #X floatatom 312 184 0 1 64 0 - - - 0; #X floatatom 219 220 0 1 64 0 - - - 0; #X floatatom 65 193 0 1 64 0 - - - 0; @@ -342,53 +336,62 @@ #X restore 856 9 pd reference; #X text 954 10 <= click; #X obj 529 4 cnv 1 1 35 empty empty empty 8 12 0 13 #000000 #000000 0; -#X floatatom 794 571 5 0 0 0 - - - 0; -#X text 563 564 In order to use MIDI Input or output objects \, be sure to set MIDI devices in:, f 29; -#X text 593 615 Preferences --> MIDI; -#X msg 794 542 144 \, 68 \, 120; -#X msg 812 599 128 68 0; -#X text 893 542 note on as a stream of raw MIDI., f 19; -#X text 881 592 note off as a MIDI packet list, f 18; -#X text 37 647 (sysex supported); -#X text 540 478 Raw MIDI output is provided by [midiout]. It deals with a stream of floats or MIDI packet lists. It doesn't take arguments and the 2nd inlet sets port number. You can use [midiout] to send raw real-time and sysex messages as well., f 70; -#X connect 8 0 83 0; -#X connect 8 1 85 0; -#X connect 9 0 86 0; -#X connect 9 1 87 0; -#X connect 11 0 84 0; -#X connect 11 1 88 0; -#X connect 12 0 82 0; -#X connect 12 1 104 0; -#X connect 13 0 80 0; -#X connect 13 1 79 0; -#X connect 13 2 105 0; -#X connect 14 0 72 0; -#X connect 14 1 75 0; -#X connect 14 2 102 0; -#X connect 17 0 77 0; -#X connect 17 1 78 0; -#X connect 17 2 100 0; -#X connect 26 0 76 0; -#X connect 26 1 101 0; +#X floatatom 794 591 4 0 0 0 - - - 0; +#X text 563 573 In order to use MIDI Input or output objects \, be sure to set MIDI devices in:, f 29; +#X text 593 624 Preferences --> MIDI; +#X msg 794 562 144 \, 68 \, 120; +#X text 891 556 note on as a stream of raw MIDI., f 19; +#X text 919 592 note off as a MIDI packet list, f 18; +#X text 37 641 (sysex supported); +#X text 540 498 Raw MIDI output is provided by [midiout]. It deals with a stream of floats or MIDI packet lists. It doesn't take arguments and the 2nd inlet sets port number. You can use [midiout] to send raw real-time and sysex messages as well., f 70; +#X text 75 166 *; +#X text 81 418 **; +#X text 184 418 ***; +#X text 585 229 *; +#X text 615 311 **; +#X text 724 311 ***; +#X text 539 407 ** Known bug: [bendin] and [bendout] are inconsistent ([bendin] outputs values from 0 to 16383 and [bendout] takes values from -8192 to 8191) - this won't change., f 70; +#X text 539 457 *** Program change values in [pgmin] and [pgmout] are indexed from 1 \, which means that the possible values are from 1 to 128 (not 0 to 127)!, f 70; +#X text 539 346 * Release velocity is not supported \, [noteout] only sends Note On velocities and for [notein] a release velocity becomes 0 (commonly interpreted as a "note off"). Tru "note off" messages are still supported via [midiin] and [midiout]., f 70; +#X msg 838 599 128 68 100; +#X connect 8 0 77 0; +#X connect 8 1 79 0; +#X connect 9 0 80 0; +#X connect 9 1 81 0; +#X connect 11 0 78 0; +#X connect 11 1 82 0; +#X connect 12 0 76 0; +#X connect 12 1 98 0; +#X connect 13 0 74 0; +#X connect 13 1 73 0; +#X connect 13 2 99 0; +#X connect 14 0 66 0; +#X connect 14 1 69 0; +#X connect 14 2 96 0; +#X connect 17 0 71 0; +#X connect 17 1 72 0; +#X connect 17 2 94 0; +#X connect 26 0 70 0; +#X connect 26 1 95 0; #X connect 31 0 29 0; #X connect 31 1 32 0; #X connect 49 0 3 0; -#X connect 49 1 103 0; -#X connect 59 0 23 0; -#X connect 73 0 0 2; -#X connect 74 0 2 0; -#X connect 89 0 64 0; -#X connect 90 0 39 0; -#X connect 91 0 5 1; -#X connect 92 0 5 0; -#X connect 93 0 0 1; -#X connect 94 0 0 0; -#X connect 95 0 1 0; -#X connect 96 0 6 0; -#X connect 97 0 7 0; -#X connect 98 0 7 1; -#X connect 99 0 5 2; -#X connect 107 0 81 0; -#X connect 119 0 10 0; -#X connect 122 0 119 0; -#X connect 123 0 10 0; +#X connect 49 1 97 0; +#X connect 57 0 23 0; +#X connect 67 0 0 2; +#X connect 68 0 2 0; +#X connect 83 0 62 0; +#X connect 84 0 39 0; +#X connect 85 0 5 1; +#X connect 86 0 5 0; +#X connect 87 0 0 1; +#X connect 88 0 0 0; +#X connect 89 0 1 0; +#X connect 90 0 6 0; +#X connect 91 0 7 0; +#X connect 92 0 7 1; +#X connect 93 0 5 2; +#X connect 101 0 75 0; +#X connect 113 0 10 0; +#X connect 116 0 113 0; +#X connect 130 0 10 0; From 743e145d0a55b06a07e44bdd6a988b624bc622e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 3 Nov 2023 09:31:22 +0100 Subject: [PATCH 026/450] Fix glob_watchdog() declaration in pd~ --- extra/pd~/pdsched.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extra/pd~/pdsched.c b/extra/pd~/pdsched.c index 07225819c..90fd4ae8a 100644 --- a/extra/pd~/pdsched.c +++ b/extra/pd~/pdsched.c @@ -22,7 +22,7 @@ outputs audio and messages. */ #include "binarymsg.c" #if PD_WATCHDOG -void glob_watchdog(t_pd *dummy); +void glob_watchdog(void *dummy); static void pollwatchdog( void) { From 75455f307df22383da18baed94e8eb591a58cac0 Mon Sep 17 00:00:00 2001 From: porres Date: Tue, 7 Nov 2023 02:35:27 -0300 Subject: [PATCH 027/450] improve pd~ added example to run as -nogui and other minor details and improvements --- extra/pd~/pd~-help.pd | 127 ++++++++++++++++++------------------ extra/pd~/pd~-subprocess.pd | 92 +++++++++++++------------- 2 files changed, 108 insertions(+), 111 deletions(-) diff --git a/extra/pd~/pd~-help.pd b/extra/pd~/pd~-help.pd index 3b15f5b2a..a5cee31a9 100644 --- a/extra/pd~/pd~-help.pd +++ b/extra/pd~/pd~-help.pd @@ -1,31 +1,25 @@ -#N canvas 444 23 630 704 12; -#X msg 80 269 foo bar baz; -#X obj 228 354 osc~ 440; -#X obj 145 488 env~ 8192; -#X floatatom 145 537 5 0 0 0 - - - 0; -#X msg 34 230 pd~ stop; -#X obj 145 513 i; -#X obj 229 489 env~ 8192; -#X floatatom 229 539 5 0 0 0 - - - 0; -#X obj 229 515 i; -#X obj 162 389 *~; -#X obj 228 390 *~; -#X obj 63 517 print x; -#X msg 17 204 pd~ start pd~-subprocess.pd; +#N canvas 312 23 761 691 12; +#X msg 160 344 foo bar baz; +#X obj 257 431 osc~ 440; +#X obj 174 562 env~ 8192; +#X floatatom 174 601 8 0 0 0 - - - 0; +#X msg 68 304 pd~ stop; +#X obj 257 563 env~ 8192; +#X floatatom 257 601 8 0 0 0 - - - 0; +#X obj 191 466 *~; +#X obj 257 467 *~; +#X obj 92 591 print x; #X obj 37 13 pd~; -#X text 173 250 Any message besides "pd~" is sent to the sub-process. For instance \, the message below sends "bar baz" to any object in the sub-process named "foo" \, such as a "receive" object., f 59; -#X text 117 308 Audio signals appear in adc~ objects in the sub-process. The sub-process doesn't open real audio devices., f 56; -#X text 307 347 Creation args:, f 41; -#X text 307 415 -fifo sets round-trip delay in blocks; -#X text 307 431 -pddir sets Pd directory \, e.g. \,, f 41; -#X text 342 447 .../Pd-0.42.app/Contents/Resources, f 36; -#X text 307 463 -scheddir sets scheduler dir \, e.g. \,, f 41; -#X text 342 479 .../.../Resources/extra/pd~, f 36; -#X text 307 398 -sr sets sample rate, f 41; -#X text 34 626 ATTENTION: DSP must be running in this process for the sub-process to run. This is because its clock is slaved to audio I/O it gets from us!, f 81; -#X msg 390 548 \; pd dsp \$1; -#X obj 4 43 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 542 12 <= click; +#X text 383 424 Creation args:, f 41; +#X text 383 492 -fifo sets round-trip delay in blocks; +#X text 383 508 -pddir sets Pd directory \, e.g. \,, f 41; +#X text 418 524 .../Pd-0.42.app/Contents/Resources, f 36; +#X text 383 540 -scheddir sets scheduler dir \, e.g. \,, f 41; +#X text 418 556 .../.../Resources/extra/pd~, f 36; +#X text 383 475 -sr sets sample rate, f 41; +#X msg 594 215 \; pd dsp \$1; +#X obj 4 43 cnv 1 750 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 672 12 <= click; #N canvas 555 116 719 472 reference 0; #X obj 6 35 cnv 5 700 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0; #X obj 6 209 cnv 2 700 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; @@ -41,51 +35,56 @@ #X text 60 73 pd~ start -; #X text 221 73 start a new sub-process. This message takes startup flags and needs a pd file to open., f 67; #X text 144 105 pd~ stop - stops the pd sub-process., f 78; -#X text 158 153 signal - signal input if there's a corresponding adc~ input., f 76; #X text 144 122 anything -; #X text 221 122 messages besides "pd~" are sent to corresponding objects in the sub-process with the same name as the first element in the message., f 67; #X obj 6 180 cnv 1 700 1 empty empty n: 8 12 0 13 #9f9f9f #000000 0; -#X text 158 186 signal - signal input if there's a corresponding adc~ input., f 76; -#X text 158 270 signal - signal output if there's a corresponding dac~ output., f 63; #X text 94 216 total number of 'n' signal outlets is given as a creation argument., f 69; #X text 94 44 total number of 'n' signal inlets is given as a creation argument., f 67; -#X text 143 241 anything - messages from the sub-process sent via "stdout" objects., f 67; #X text 102 383 -fifo : sets number of blocks for round-trip (default 5)., f 74; #X text 102 365 -sr : sets sample rate of subprocess (default pd's current)., f 74; #X text 102 401 -pddir : sets Pd's directory (needed if different than default)., f 74; #X text 102 419 -scheddir : sets scheduler's directory (also needed if different)., f 74; #X text 77 5 - run a pd sub-process (for multiprocessing).; -#X restore 448 13 pd reference; -#X obj 4 667 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 40 677 see also:; -#X obj 116 678 stdout; -#X text 307 364 -ninsig sets input audio channels, f 41; -#X text 307 381 -noutsig sets output channels, f 41; -#X text 223 194 Sending a new "start" message will stop the sub-process (if there's one) and start a new process by opening a patch. The "stop" message only stops the sub-process., f 55; -#X text 13 112 Messages with "pd~" selector control the sub-process. "pd~ start" takes as arguments any startup flags you wish to send the sub-process. For example \, specify "-nogui" to stop the sub-process's GUI from appearing. You don't have to specify the number of channels in and out \, since that's set by creation arguments below. Audio config arguments arguments (-audiobuf \, -audiodev \, etc.) are ignored., f 85; -#X obj 263 391 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 13 51 The [pd~] object starts and manages a Pd sub-process that can communicate with the super-process (this one) via audio channels and/or Pd messages. In this way you can take advantage of multi-core CPUs \, and/or use Pd features from within Max (if you're using the Max version of [pd~])., f 85; -#X obj 63 426 pd~ -ninsig 2 -noutsig 2 -fifo 20, f 24; -#X text 34 590 The first outlet reports messages the sub-process sends us via "stdout" objects. Any other outlets are signals corresponding to [dac~] objects in the sub-process., f 81; -#X obj 197 390 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 409 676 Updated for Pd version 0.42; +#X text 158 153 signal - signal input if there's a corresponding [adc~] input., f 76; +#X text 158 186 signal - signal input if there's a corresponding [adc~] input., f 76; +#X text 143 241 anything - messages from the sub-process sent via [stdout] objects., f 67; +#X text 158 270 signal - signal output if there's a corresponding [dac~] output., f 64; +#X restore 578 13 pd reference; +#X text 39 657 see also:; +#X obj 115 658 stdout; +#X text 383 441 -ninsig sets input audio channels, f 41; +#X text 383 458 -noutsig sets output channels, f 41; +#X obj 292 468 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 17 53 The [pd~] object starts and manages a Pd sub-process that can communicate with the super-process (this one) via audio channels and/or Pd messages. In this way you can take advantage of multi-core CPUs \, and/or use Pd features from within Max (if you're using the Max version of [pd~])., f 99; +#X obj 92 500 pd~ -ninsig 2 -noutsig 2 -fifo 20, f 24; +#X obj 226 467 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 548 656 Updated for Pd version 0.42; #X text 72 12 - run a pd sub-process (for multiprocessing); -#X text 422 516 DSP on/off; -#X obj 390 514 ../../doc/5.reference/set-dsp-tgl; -#X connect 0 0 37 0; -#X connect 1 0 9 0; -#X connect 1 0 10 0; -#X connect 2 0 5 0; -#X connect 4 0 37 0; -#X connect 5 0 3 0; -#X connect 6 0 8 0; -#X connect 8 0 7 0; -#X connect 9 0 37 0; -#X connect 10 0 37 1; -#X connect 12 0 37 0; -#X connect 35 0 10 1; -#X connect 37 0 11 0; -#X connect 37 1 2 0; -#X connect 37 2 6 0; -#X connect 39 0 9 1; -#X connect 43 0 24 0; +#X text 626 183 DSP on/off; +#X obj 594 181 ../../doc/5.reference/set-dsp-tgl; +#X msg 141 304 pd~ start -nogui pd~-subprocess.pd; +#X msg 41 270 pd~ start pd~-subprocess.pd; +#X text 17 104 Messages with the "pd~" selector control the sub-process. "pd~ start" takes a pd file name to open and it can be preceeded by any startup flags you wish to send the sub-process. For example \, specify "-nogui" to stop the sub-process's GUI from appearing. You don't have to specify the number of channels in and out \, since that's set by creation arguments below. Audio config arguments arguments (-audiobuf \, -audiodev \, etc.) are ignored., f 99; +#X text 251 262 Sending a new "start" message stops the sub-process (if there's one) and starts a new one. The "stop" message only stops the sub-process., f 68; +#X text 390 303 (re)starts without the GUI; +#X obj 3 647 cnv 1 750 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 337 585 The first outlet reports messages the sub-process sends us via [stdout] objects. Any other outlets are signals corresponding to [dac~] objects in the sub-process., f 55; +#X text 260 332 Any message besides "pd~" is sent to the sub-process. For instance \, the message below sends "bar baz" to any object in the sub-process named "foo" \, such as a [receive] object., f 62; +#X text 176 383 Audio signals appear in [adc~] objects in the sub-process. Note that [pd~] cannot The sub-process doesn't open real audio devices., f 74; +#X text 60 193 ATTENTION: DSP must be running in this process for the sub-process to start and run. This is because its clock is slaved to audio I/O it gets from us!, f 71; +#X connect 0 0 28 0; +#X connect 1 0 7 0; +#X connect 1 0 8 0; +#X connect 2 0 3 0; +#X connect 4 0 28 0; +#X connect 5 0 6 0; +#X connect 7 0 28 0; +#X connect 8 0 28 1; +#X connect 26 0 8 1; +#X connect 28 0 9 0; +#X connect 28 1 2 0; +#X connect 28 2 5 0; +#X connect 29 0 7 1; +#X connect 33 0 18 0; +#X connect 34 0 28 0; +#X connect 35 0 28 0; diff --git a/extra/pd~/pd~-subprocess.pd b/extra/pd~/pd~-subprocess.pd index 8ce714bd7..bed7fed82 100644 --- a/extra/pd~/pd~-subprocess.pd +++ b/extra/pd~/pd~-subprocess.pd @@ -1,47 +1,45 @@ -#N canvas 566 38 587 595 12; -#X obj 85 409 r foo; -#X obj 85 437 print foo; -#X obj 227 450 stdout; -#X msg 211 367 a b c; -#X obj 109 203 env~ 8192; -#X floatatom 109 252 5 0 0 0 - - - 0; -#X obj 109 228 i; -#X obj 284 187 osc~ 440; -#X obj 284 221 *~; -#X obj 358 188 osc~ 440; -#X obj 358 222 *~; -#X msg 237 419 bang; -#X obj 366 368 loadbang; -#X obj 183 203 env~ 8192; -#X floatatom 183 252 5 0 0 0 - - - 0; -#X obj 183 228 i; -#X msg 227 391 4; -#X text 62 500 We turn DSP on at load for convenience - control objects in this patch will still work without it (unlike in the super-process \, where DSP must be on for time to move forward in the sub-process.); -#X obj 333 256 dac~; -#X obj 151 172 adc~, f 5; -#X msg 366 421 \; pd dsp \$1; -#X text 389 396 DSP on/off; -#X obj 319 222 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 45 20 This is a test patch to demonstrate the [pd~] object. It's intended as the patch to run in the sub-process. The sub-process (which is a separate instance of Pd) can be called from a Max or Pd super-process., f 70; -#X text 46 75 Audio inlets and outlets on the Pd~ object (in the super-process) talk to [adc~] and [dac~] objects here - so \, for instance \, the first [adc~] here is the first inlet of the pd~ object \, and the first channel of [dac~] goes to the second outlet of [pd~] (because the first one is for messages \, as shown further below.), f 70; -#X text 41 293 Any message sent to a stdout object in this sub-process (below) appears on the first message outlet of the [pd~] object in the super-process. The super-process can send messages to any [receive] object in this sub-process., f 71; -#X obj 393 223 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X obj 366 395 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X connect 0 0 1 0; -#X connect 3 0 2 0; -#X connect 4 0 6 0; -#X connect 6 0 5 0; -#X connect 7 0 8 0; -#X connect 8 0 18 0; -#X connect 9 0 10 0; -#X connect 10 0 18 1; -#X connect 11 0 2 0; -#X connect 12 0 27 0; -#X connect 13 0 15 0; -#X connect 15 0 14 0; -#X connect 16 0 2 0; -#X connect 19 0 4 0; -#X connect 19 1 13 0; -#X connect 22 0 8 1; -#X connect 26 0 10 1; -#X connect 27 0 20 0; +#N canvas 566 38 629 615 12; +#X obj 89 457 print foo; +#X obj 314 479 stdout; +#X msg 314 410 a b c; +#X obj 127 228 env~ 8192; +#X floatatom 127 267 8 0 0 0 - - - 0; +#X obj 350 162 osc~ 440; +#X msg 261 415 bang; +#X obj 442 401 loadbang; +#X obj 201 228 env~ 8192; +#X floatatom 201 267 8 0 0 0 - - - 0; +#X msg 330 447 4; +#X obj 350 278 dac~; +#X obj 169 187 adc~, f 5; +#X msg 442 462 \; pd dsp \$1; +#X text 465 433 DSP on/off; +#X obj 393 209 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 36 17 This is a test patch to demonstrate the [pd~] object. It's intended as the patch to run in the sub-process. The sub-process (which is a separate instance of Pd) can be called from a Max or Pd super-process., f 78; +#X obj 419 209 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X obj 442 432 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X obj 419 174 loadbang; +#X obj 350 243 *~; +#X obj 384 244 *~; +#X text 36 73 Audio inlets and outlets on the [pd~] object (in the super-process) talk to [adc~] and [dac~] objects here - so \, for instance \, the left [adc~] output here corresponds to the first inlet of the [pd~] object \, and the first channel of [dac~] goes to the second outlet of [pd~] (because the first one is for messages \, as shown further below.), f 78; +#X obj 89 427 receive foo; +#X text 26 319 Any message sent to a [stdout] object in this sub-process (below) appears on the first message outlet of the [pd~] object in the super-process. The super-process can send messages to any named objects such as the [receive] object named as 'foo' in this sub-process below ., f 82; +#X text 34 528 DSP must be on here and in the super-process in order for audio to run. Control objects in this patch will still work with DSP off in the sub-process \, but even so the DSP must still be on in the super-process for time to move forward in the sub-process., f 79; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 5 0 20 0; +#X connect 5 0 21 0; +#X connect 6 0 1 0; +#X connect 7 0 18 0; +#X connect 8 0 9 0; +#X connect 10 0 1 0; +#X connect 12 0 3 0; +#X connect 12 1 8 0; +#X connect 15 0 20 1; +#X connect 17 0 21 1; +#X connect 18 0 13 0; +#X connect 19 0 17 0; +#X connect 19 0 15 0; +#X connect 20 0 11 0; +#X connect 21 0 11 1; +#X connect 23 0 0 0; From 7e4cab47c2fbf102a8fb0cbfeed28b067772ac4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 7 Nov 2023 16:43:14 +0100 Subject: [PATCH 028/450] Update translatable-strings (fixing typo) "non-existant" -> "non-existent" --- po/az.po | 4 ++-- po/bg.po | 4 ++-- po/de.po | 8 ++++---- po/el.po | 4 ++-- po/en.po | 8 ++++---- po/en_ca.po | 8 ++++---- po/es.po | 8 ++++---- po/eu.po | 4 ++-- po/fr.po | 8 ++++---- po/gu.po | 4 ++-- po/he.po | 9 +++++---- po/hi.po | 4 ++-- po/hu.po | 4 ++-- po/id.po | 4 ++-- po/it.po | 8 ++++---- po/ja.po | 4 ++-- po/ko.po | 4 ++-- po/nl.po | 4 ++-- po/pa.po | 4 ++-- po/pl.po | 4 ++-- po/pt_br.po | 8 ++++---- po/pt_pt.po | 4 ++-- po/ru.po | 4 ++-- po/sq.po | 4 ++-- po/sv.po | 4 ++-- po/template.pot | 6 +++--- po/uk.po | 4 ++-- po/vi.po | 4 ++-- po/zh_tw.po | 4 ++-- 29 files changed, 76 insertions(+), 75 deletions(-) diff --git a/po/az.po b/po/az.po index 0aa90ffb4..348392b9a 100644 --- a/po/az.po +++ b/po/az.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-06-26 22:30+0200\n" +"POT-Creation-Date: 2023-11-07 16:37+0100\n" "PO-Revision-Date: 2004-03-12 22:22+0200\n" "Last-Translator: Metin Amiroff \n" "Language-Team: Azerbaijani \n" @@ -1132,7 +1132,7 @@ msgstr "" msgid "Cancelling download of '%s': No installation directory given." msgstr "" -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "" #, tcl-format diff --git a/po/bg.po b/po/bg.po index ef3b35c3d..821776166 100644 --- a/po/bg.po +++ b/po/bg.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-06-26 22:30+0200\n" +"POT-Creation-Date: 2023-11-07 16:37+0100\n" "PO-Revision-Date: 2022-10-30 07:04+0000\n" "Last-Translator: Max Neupert \n" "Language-Team: Bulgarian \n" -"Language-Team: German \n" +"Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1098,7 +1098,7 @@ msgid "Cancelling download of '%s': No installation directory given." msgstr "" "Abbruch des Downloads von '%s': Kein Installationsverzeichnis angegeben." -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "Die Installation in ein nicht-existierendes Verzeichnis schlug fehl" #, tcl-format diff --git a/po/el.po b/po/el.po index accfb9416..4948a7a75 100644 --- a/po/el.po +++ b/po/el.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-06-26 22:30+0200\n" +"POT-Creation-Date: 2023-11-07 16:37+0100\n" "PO-Revision-Date: 2009-09-13 01:51+0200\n" "Last-Translator: Γεώργιος Κερατζάκης \n" "Language-Team: Greek \n" -"Language-Team: English \n" +"Language-Team: English \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1074,7 +1074,7 @@ msgstr "Install %1$s to %2$s?" msgid "Cancelling download of '%s': No installation directory given." msgstr "Cancelling download of '%s': No installation directory given." -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "Installing to non-existant directory failed" #, tcl-format diff --git a/po/en_ca.po b/po/en_ca.po index 270a28a24..d225e5980 100644 --- a/po/en_ca.po +++ b/po/en_ca.po @@ -7,11 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-06-26 22:30+0200\n" +"POT-Creation-Date: 2023-11-07 16:37+0100\n" "PO-Revision-Date: 2023-06-27 06:05+0000\n" "Last-Translator: umläute \n" -"Language-Team: English (Canada) \n" +"Language-Team: English (Canada) \n" "Language: en_ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1075,7 +1075,7 @@ msgstr "Install %1$s to %2$s?" msgid "Cancelling download of '%s': No installation directory given." msgstr "Cancelling download of '%s': No installation directory given." -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "Installing to non-existent directory failed" #, tcl-format diff --git a/po/es.po b/po/es.po index a51574dd3..413f1d40a 100644 --- a/po/es.po +++ b/po/es.po @@ -12,11 +12,11 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.53.0\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-06-26 22:30+0200\n" +"POT-Creation-Date: 2023-11-07 16:37+0100\n" "PO-Revision-Date: 2023-06-28 06:21+0000\n" "Last-Translator: gallegonovato \n" -"Language-Team: Spanish \n" +"Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1095,7 +1095,7 @@ msgid "Cancelling download of '%s': No installation directory given." msgstr "" "Cancelando la descarga de %s: No fue dado el directorio de instalación ." -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "Falló la installación al directorio no existente" #, tcl-format diff --git a/po/eu.po b/po/eu.po index 65fd32601..149408002 100644 --- a/po/eu.po +++ b/po/eu.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-06-26 22:30+0200\n" +"POT-Creation-Date: 2023-11-07 16:37+0100\n" "PO-Revision-Date: 2022-10-30 07:04+0000\n" "Last-Translator: Max Neupert \n" "Language-Team: Basque \n" -"Language-Team: French \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1104,7 +1104,7 @@ msgstr "" "Annulation du téléchargement de '%s' : aucun répertoire d'installation n'a " "été indiqué." -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "L'installation a échoué : le répertoire n'existe pas" #, tcl-format diff --git a/po/gu.po b/po/gu.po index c180ad5dc..43971fa82 100644 --- a/po/gu.po +++ b/po/gu.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data-0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-06-26 22:30+0200\n" +"POT-Creation-Date: 2023-11-07 16:37+0100\n" "PO-Revision-Date: 2005-09-14 12:49+0530\n" "Last-Translator: Ankit Patel \n" "Language-Team: Gujarati \n" -"Language-Team: Hebrew \n" +"Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1074,7 +1074,8 @@ msgstr "להתקין את %1$s אל %2$s?" msgid "Cancelling download of '%s': No installation directory given." msgstr "ההורדה של ‚%s’ מבוטלת: לא סופקה תיקיית התקנה." -msgid "Installing to non-existant directory failed" +#, fuzzy +msgid "Installing to non-existent directory failed" msgstr "התקנה לתיקייה שאינה קיימת נכשלה" #, tcl-format diff --git a/po/hi.po b/po/hi.po index a984fceda..4d426746a 100644 --- a/po/hi.po +++ b/po/hi.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-06-26 22:30+0200\n" +"POT-Creation-Date: 2023-11-07 16:37+0100\n" "PO-Revision-Date: 2005-05-04 12:50+0530\n" "Last-Translator: Rajesh Ranjan \n" "Language-Team: Hindi \n" "Language-Team: Hungarian \n" "Language-Team: Indonesian \n" -"Language-Team: Italian \n" +"Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1095,7 +1095,7 @@ msgstr "" "Cancellazione del download di '%s': Nessuna cartella di installazione " "fornita." -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "Installazione su una cartella non esistente fallita" #, tcl-format diff --git a/po/ja.po b/po/ja.po index 7733f1488..872c198f1 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.53.0\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-06-26 22:30+0200\n" +"POT-Creation-Date: 2023-11-07 16:37+0100\n" "PO-Revision-Date: 2023-02-13 12:36+0000\n" "Last-Translator: umläute \n" "Language-Team: Japanese \n" "Language-Team: Korean \n" "Language-Team: Dutch \n" "Language-Team: Punjabi \n" "Language-Team: Polish \n" -"Language-Team: Portuguese (Brazil) \n" +"Language-Team: Portuguese (Brazil) \n" "Language: pt_br\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1081,7 +1081,7 @@ msgstr "Instalar %1$s em %2$s?" msgid "Cancelling download of '%s': No installation directory given." msgstr "Cancelando download de '%s': Nenhum diretório de instalação fornecido." -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "Falha ao instalar em um diretório não existente" #, tcl-format diff --git a/po/pt_pt.po b/po/pt_pt.po index 68be419a0..5947f44e0 100644 --- a/po/pt_pt.po +++ b/po/pt_pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-06-26 22:30+0200\n" +"POT-Creation-Date: 2023-11-07 16:37+0100\n" "PO-Revision-Date: 2023-02-13 12:36+0000\n" "Last-Translator: umläute \n" "Language-Team: Portuguese (Portugal) \n" "Language-Team: Russian \n" "Language-Team: Albanian \n" "Language-Team: Swedish \n" "Language-Team: LANGUAGE \n" @@ -1068,7 +1068,7 @@ msgstr "" msgid "Cancelling download of '%s': No installation directory given." msgstr "" -msgid "Installing to non-existant directory failed" +msgid "Installing to non-existent directory failed" msgstr "" #, tcl-format diff --git a/po/uk.po b/po/uk.po index e955de69d..c58295453 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.53.0\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-06-26 22:30+0200\n" +"POT-Creation-Date: 2023-11-07 16:37+0100\n" "PO-Revision-Date: 2023-02-13 12:36+0000\n" "Last-Translator: umläute \n" "Language-Team: Ukrainian \n" "Language-Team: Vietnamese \n" "Language-Team: Chinese (Traditional) Date: Wed, 15 Nov 2023 01:52:07 -0300 Subject: [PATCH 029/450] document that pd~ doesn't handle MIDI objects --- extra/pd~/pd~-help.pd | 121 ++++++++++++++++++++---------------- extra/pd~/pd~-subprocess.pd | 20 +++--- 2 files changed, 76 insertions(+), 65 deletions(-) diff --git a/extra/pd~/pd~-help.pd b/extra/pd~/pd~-help.pd index a5cee31a9..f03b9da08 100644 --- a/extra/pd~/pd~-help.pd +++ b/extra/pd~/pd~-help.pd @@ -1,23 +1,21 @@ -#N canvas 312 23 761 691 12; -#X msg 160 344 foo bar baz; -#X obj 257 431 osc~ 440; -#X obj 174 562 env~ 8192; -#X floatatom 174 601 8 0 0 0 - - - 0; -#X msg 68 304 pd~ stop; -#X obj 257 563 env~ 8192; -#X floatatom 257 601 8 0 0 0 - - - 0; -#X obj 191 466 *~; -#X obj 257 467 *~; -#X obj 92 591 print x; +#N canvas 368 23 760 715 12; +#X msg 107 368 foo bar baz; +#X obj 257 461 osc~ 440; +#X obj 174 592 env~ 8192; +#X floatatom 174 631 8 0 0 0 - - - 0; +#X msg 93 333 pd~ stop; +#X obj 257 592 env~ 8192; +#X floatatom 257 631 8 0 0 0 - - - 0; +#X obj 191 496 *~; +#X obj 257 496 *~; #X obj 37 13 pd~; -#X text 383 424 Creation args:, f 41; -#X text 383 492 -fifo sets round-trip delay in blocks; -#X text 383 508 -pddir sets Pd directory \, e.g. \,, f 41; -#X text 418 524 .../Pd-0.42.app/Contents/Resources, f 36; -#X text 383 540 -scheddir sets scheduler dir \, e.g. \,, f 41; -#X text 418 556 .../.../Resources/extra/pd~, f 36; -#X text 383 475 -sr sets sample rate, f 41; -#X msg 594 215 \; pd dsp \$1; +#X text 383 454 Creation args:, f 41; +#X text 383 522 -fifo sets round-trip delay in blocks; +#X text 383 538 -pddir sets Pd directory \, e.g. \,, f 41; +#X text 383 570 -scheddir sets scheduler dir \, e.g. \,, f 41; +#X text 418 586 .../.../Resources/extra/pd~, f 36; +#X text 383 505 -sr sets sample rate, f 41; +#X msg 624 216 \; pd dsp \$1; #X obj 4 43 cnv 1 750 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 672 12 <= click; #N canvas 555 116 719 472 reference 0; @@ -33,13 +31,10 @@ #X text 102 347 -noutsig : sets number of output audio channels (default 2)., f 74; #X obj 6 67 cnv 1 700 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 0; #X text 60 73 pd~ start -; -#X text 221 73 start a new sub-process. This message takes startup flags and needs a pd file to open., f 67; #X text 144 105 pd~ stop - stops the pd sub-process., f 78; #X text 144 122 anything -; #X text 221 122 messages besides "pd~" are sent to corresponding objects in the sub-process with the same name as the first element in the message., f 67; #X obj 6 180 cnv 1 700 1 empty empty n: 8 12 0 13 #9f9f9f #000000 0; -#X text 94 216 total number of 'n' signal outlets is given as a creation argument., f 69; -#X text 94 44 total number of 'n' signal inlets is given as a creation argument., f 67; #X text 102 383 -fifo : sets number of blocks for round-trip (default 5)., f 74; #X text 102 365 -sr : sets sample rate of subprocess (default pd's current)., f 74; #X text 102 401 -pddir : sets Pd's directory (needed if different than default)., f 74; @@ -49,42 +44,58 @@ #X text 158 186 signal - signal input if there's a corresponding [adc~] input., f 76; #X text 143 241 anything - messages from the sub-process sent via [stdout] objects., f 67; #X text 158 270 signal - signal output if there's a corresponding [dac~] output., f 64; +#X text 221 73 start a new sub-process. This message takes startup flags and needs a pd file to open., f 67; +#X text 94 44 total number of 'n' signal inlets as given by the -ninsig flag., f 67; +#X text 94 216 total number of 'n' signal outlets as given by the -noutsig flag., f 69; #X restore 578 13 pd reference; -#X text 39 657 see also:; -#X obj 115 658 stdout; -#X text 383 441 -ninsig sets input audio channels, f 41; -#X text 383 458 -noutsig sets output channels, f 41; -#X obj 292 468 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 17 53 The [pd~] object starts and manages a Pd sub-process that can communicate with the super-process (this one) via audio channels and/or Pd messages. In this way you can take advantage of multi-core CPUs \, and/or use Pd features from within Max (if you're using the Max version of [pd~])., f 99; -#X obj 92 500 pd~ -ninsig 2 -noutsig 2 -fifo 20, f 24; -#X obj 226 467 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 548 656 Updated for Pd version 0.42; +#X text 29 687 see also:; +#X obj 105 688 stdout; +#X text 383 471 -ninsig sets input audio channels, f 41; +#X text 383 488 -noutsig sets output channels, f 41; +#X obj 292 496 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 27 53 The [pd~] object starts and manages a Pd sub-process that can communicate with the super-process (this one) via audio channels and/or Pd messages. In this way you can take advantage of multi-core CPUs \, and/or use Pd features from within Max (if you're using the Max version of [pd~])., f 100; +#X obj 92 532 pd~ -ninsig 2 -noutsig 2 -fifo 20, f 24; +#X obj 226 496 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 543 686 Updated for Pd version 0.42; #X text 72 12 - run a pd sub-process (for multiprocessing); -#X text 626 183 DSP on/off; -#X obj 594 181 ../../doc/5.reference/set-dsp-tgl; -#X msg 141 304 pd~ start -nogui pd~-subprocess.pd; -#X msg 41 270 pd~ start pd~-subprocess.pd; -#X text 17 104 Messages with the "pd~" selector control the sub-process. "pd~ start" takes a pd file name to open and it can be preceeded by any startup flags you wish to send the sub-process. For example \, specify "-nogui" to stop the sub-process's GUI from appearing. You don't have to specify the number of channels in and out \, since that's set by creation arguments below. Audio config arguments arguments (-audiobuf \, -audiodev \, etc.) are ignored., f 99; -#X text 251 262 Sending a new "start" message stops the sub-process (if there's one) and starts a new one. The "stop" message only stops the sub-process., f 68; -#X text 390 303 (re)starts without the GUI; -#X obj 3 647 cnv 1 750 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 337 585 The first outlet reports messages the sub-process sends us via [stdout] objects. Any other outlets are signals corresponding to [dac~] objects in the sub-process., f 55; -#X text 260 332 Any message besides "pd~" is sent to the sub-process. For instance \, the message below sends "bar baz" to any object in the sub-process named "foo" \, such as a [receive] object., f 62; -#X text 176 383 Audio signals appear in [adc~] objects in the sub-process. Note that [pd~] cannot The sub-process doesn't open real audio devices., f 74; -#X text 60 193 ATTENTION: DSP must be running in this process for the sub-process to start and run. This is because its clock is slaved to audio I/O it gets from us!, f 71; -#X connect 0 0 28 0; +#X text 655 186 DSP on/off; +#X obj 624 182 ../../doc/5.reference/set-dsp-tgl; +#X msg 66 303 pd~ start -nogui pd~-subprocess.pd; +#X msg 31 267 pd~ start pd~-subprocess.pd; +#X text 317 304 (re)starts without the GUI; +#X obj 3 677 cnv 1 750 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 347 613 The first outlet reports messages the sub-process sends us via [stdout] objects. Any other outlets are signals corresponding to [dac~] objects in the sub-process., f 55; +#X text 418 554 .../Pd-0.54-0.app/Contents/Resources; +#X text 240 261 Sending a new "start" message stops the sub-process (if there's one) and starts a new one., f 52; +#X obj 92 611 print pd~; +#X msg 123 454 toggle \$1; +#X obj 123 417 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X text 200 357 Message besides "pd~" are sent to named objects (such as [receive]) in the sub-process. So "bar baz" is sent to any object named "foo" and an object named "toggle" gets the float to turn the audio output via a [dac~] object., f 77; +#X text 291 413 Audio input signals appear in [adc~] objects in the sub-process. The sub-process doesn't open real audio devices., f 64; +#X text 163 333 Stop the sub-process; +#X text 148 411 Turn audio output on/off, f 13; +#X text 38 187 ATTENTION: DSP must be running in this process for the sub-process to start and run. This is because its clock is slaved to audio I/O it gets from us! Also note that MIDI objects don't work in a sub-process \, so MIDI messages need to be sent in and out via regular messages., f 80; +#X text 27 104 Messages with the "pd~" selector control the sub-process. A "pd~ start" message takes a pd file name to open and can take startup flags before the file name. For example \, "-nogui" prevents the sub-process's GUI from appearing. Note that you don't have to specify the number of channels in and out \, since that's set by creation arguments. Aslo \, audio config flags (-audiobuf \, -audiodev \, etc.) are ignored., f 100; +#X text 270 439 v; +#X text 270 429 |; +#X text 270 420 |; +#X text 274 409 _; +#X text 280 409 _; +#X connect 0 0 26 0; #X connect 1 0 7 0; #X connect 1 0 8 0; #X connect 2 0 3 0; -#X connect 4 0 28 0; +#X connect 4 0 26 0; #X connect 5 0 6 0; -#X connect 7 0 28 0; -#X connect 8 0 28 1; -#X connect 26 0 8 1; -#X connect 28 0 9 0; -#X connect 28 1 2 0; -#X connect 28 2 5 0; -#X connect 29 0 7 1; -#X connect 33 0 18 0; -#X connect 34 0 28 0; -#X connect 35 0 28 0; +#X connect 7 0 26 0; +#X connect 8 0 26 1; +#X connect 24 0 8 1; +#X connect 26 0 39 0; +#X connect 26 1 2 0; +#X connect 26 2 5 0; +#X connect 27 0 7 1; +#X connect 31 0 16 0; +#X connect 32 0 26 0; +#X connect 33 0 26 0; +#X connect 40 0 26 0; +#X connect 41 0 40 0; diff --git a/extra/pd~/pd~-subprocess.pd b/extra/pd~/pd~-subprocess.pd index bed7fed82..1683cb21d 100644 --- a/extra/pd~/pd~-subprocess.pd +++ b/extra/pd~/pd~-subprocess.pd @@ -1,4 +1,4 @@ -#N canvas 566 38 629 615 12; +#N canvas 416 56 629 615 12; #X obj 89 457 print foo; #X obj 314 479 stdout; #X msg 314 410 a b c; @@ -18,28 +18,28 @@ #X text 36 17 This is a test patch to demonstrate the [pd~] object. It's intended as the patch to run in the sub-process. The sub-process (which is a separate instance of Pd) can be called from a Max or Pd super-process., f 78; #X obj 419 209 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; #X obj 442 432 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X obj 419 174 loadbang; #X obj 350 243 *~; #X obj 384 244 *~; #X text 36 73 Audio inlets and outlets on the [pd~] object (in the super-process) talk to [adc~] and [dac~] objects here - so \, for instance \, the left [adc~] output here corresponds to the first inlet of the [pd~] object \, and the first channel of [dac~] goes to the second outlet of [pd~] (because the first one is for messages \, as shown further below.), f 78; #X obj 89 427 receive foo; #X text 26 319 Any message sent to a [stdout] object in this sub-process (below) appears on the first message outlet of the [pd~] object in the super-process. The super-process can send messages to any named objects such as the [receive] object named as 'foo' in this sub-process below ., f 82; #X text 34 528 DSP must be on here and in the super-process in order for audio to run. Control objects in this patch will still work with DSP off in the sub-process \, but even so the DSP must still be on in the super-process for time to move forward in the sub-process., f 79; +#X obj 419 174 receive toggle; #X connect 2 0 1 0; #X connect 3 0 4 0; +#X connect 5 0 19 0; #X connect 5 0 20 0; -#X connect 5 0 21 0; #X connect 6 0 1 0; #X connect 7 0 18 0; #X connect 8 0 9 0; #X connect 10 0 1 0; #X connect 12 0 3 0; #X connect 12 1 8 0; -#X connect 15 0 20 1; -#X connect 17 0 21 1; +#X connect 15 0 19 1; +#X connect 17 0 20 1; #X connect 18 0 13 0; -#X connect 19 0 17 0; -#X connect 19 0 15 0; -#X connect 20 0 11 0; -#X connect 21 0 11 1; -#X connect 23 0 0 0; +#X connect 19 0 11 0; +#X connect 20 0 11 1; +#X connect 22 0 0 0; +#X connect 25 0 17 0; +#X connect 25 0 15 0; From 32593622859d7258300e8f8879650d5c94e282b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 20 Nov 2023 13:33:43 +0100 Subject: [PATCH 030/450] Update AppData metainfo - add developer entry ("msp et al.") - remove tags from description (all known renderers show them verbatim, which does not help) - add bugracker/vcs/translate URLs --- linux/org.puredata.pd-gui.metainfo.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/linux/org.puredata.pd-gui.metainfo.xml b/linux/org.puredata.pd-gui.metainfo.xml index 47c616ca4..e16a35962 100644 --- a/linux/org.puredata.pd-gui.metainfo.xml +++ b/linux/org.puredata.pd-gui.metainfo.xml @@ -2,6 +2,8 @@ org.puredata.pd-gui Pure Data (Pd) + Miller S. Puckette et al. + A real-time graphical programming environment for live interactive computer music FSFAP @@ -12,7 +14,7 @@ Pure Data (or just "Pd") is an open source visual programming language for multimedia. Pure Data is developed by Miller Puckette since 1996 and you can find it on his official website along with the official documentation and other related resources. This is the official "Pd" or "main distribution" and it is also known as "Pd Vanilla".

- Think of Pd as a Modular Synthesizer that is also a programming language. + Think of Pd as a "Modular Synthesizer" that is also a programming language.

Pd's audio and MIDI functions are built-in as well as networking (e.g. using Open Sound Control), but there are a number of external libraries that allow you to do graphics, interface hardware and much more... @@ -22,6 +24,9 @@ pd-gui https://puredata.info/ + https://bugs.puredata.info + https://github.com/pure-data/pure-data + https://hosted.weblate.org/projects/pure-data/pure-data/ org.puredata.pd-gui.desktop From 4b3669ef25b6bb5124b0acdb0d8cc27b9dfb5872 Mon Sep 17 00:00:00 2001 From: Lucas Cordiviola Date: Thu, 9 Nov 2023 18:11:41 -0300 Subject: [PATCH 031/450] NSIS: finer 'exact-match' search for running app Filter tasklist so that 'whateverpd.exe' does not match in a search for 'pd.exe'. Also provides a button to force installation if for whatever reason the detection gives a false-positive. Closes: #2128 --- msw/pd.nsi | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/msw/pd.nsi b/msw/pd.nsi index 2295bb7b3..f6dc4d219 100644 --- a/msw/pd.nsi +++ b/msw/pd.nsi @@ -1,7 +1,7 @@ ; ; ; https://stackoverflow.com/questions/36185539/can-i-get-nsis-to-make-a-single-installer-that-handles-local-deployment-and-syst -; ./build-nsi.sh -o "c:/tmp" G:/gitportable/nsis/pd-0.53.1 0.53.1 +; ./build-nsi.sh -o "c:/tmp" "G:/gitportable/nsis2/pd-0.54-1" 0.54-1xx ;#################################################### @@ -185,16 +185,18 @@ RequestExecutionLevel highest ; perhaps all this can be done with an nsis plugin but we just use nsis as it comes from package managers. ReadEnvStr $0 COMSPEC - nsExec::ExecToStack '"$0" /c tasklist | find /I "$PdProcess"' + nsExec::ExecToStack '"$0" /c tasklist | findstr /R /I /M /C:"\<$PdProcess\>"' Pop $1 Pop $2 ${If} $2 == "" goto good ${Else} IfSilent default - HideWindow - MessageBox MB_OK "Refusing to continue. Save your work and quit \ - any running ${PD_FOLDER} app before doing an (un)installation." + MessageBox MB_ICONEXCLAMATION|MB_YESNO "Refusing to continue. Save your work and quit \ + any running ${PD_FOLDER} app before doing an (un)installation.$\r$\n$\r$\n\ + We found the following app open:$\r$\n$\r$\n\ + $2 $\r$\n$\r$\n\ + Force installation anyway?" IDYES good IDNO default default: quit ${EndIf} @@ -672,4 +674,4 @@ Section Uninstall Call un.RefreshShellIcons SetAutoClose true ${EndIf} -SectionEnd \ No newline at end of file +SectionEnd From 0f8f8a81b7eb83f01acaf4ea964e3e8ca331a1c2 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Sat, 18 Nov 2023 18:00:40 +0100 Subject: [PATCH 032/450] switch~: bash phase if reblocked and switched on again ... to make sure we are in sync with inlet prolog and outlet epilog --- src/d_ugen.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/d_ugen.c b/src/d_ugen.c index 2751d2232..ee9e0e12f 100644 --- a/src/d_ugen.c +++ b/src/d_ugen.c @@ -255,7 +255,14 @@ static void *switch_new(t_floatarg fvecsize, t_floatarg foverlap, static void block_float(t_block *x, t_floatarg f) { if (x->x_switched) + { + int wason = x->x_switchon; x->x_switchon = (f != 0); + /* bash phase if switched on again to make sure + we are in sync with inlet prolog and outlet epilog! */ + if (!wason && x->x_reblock) + x->x_phase = THIS->u_phase & (x->x_period - 1); + } } static void block_bang(t_block *x) From 85d6418c7eb590332dfde72da6c55a1d988c0dbe Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Sat, 18 Nov 2023 18:01:01 +0100 Subject: [PATCH 033/450] ugen_done_graph: remove unnused 'phase' variable --- src/d_ugen.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/d_ugen.c b/src/d_ugen.c index ee9e0e12f..143bad915 100644 --- a/src/d_ugen.c +++ b/src/d_ugen.c @@ -1063,7 +1063,7 @@ void ugen_done_graph(t_dspcontext *dc) t_dspcontext *parent_context = dc->dc_parentcontext; t_float parent_srate; int parent_vecsize, parent_overlap; - int period, frequency, phase, calcsize; + int period, frequency, calcsize; t_float srate; int chainblockbegin; /* DSP chain onset before block prolog code */ int chainblockend; /* and after block epilog code */ @@ -1131,7 +1131,6 @@ void ugen_done_graph(t_dspcontext *dc) (parent_vecsize * realoverlap * upsample); frequency = (parent_vecsize * realoverlap * upsample)/ (calcsize * downsample); - phase = blk->x_phase; srate = parent_srate * realoverlap * upsample / downsample; if (period < 1) period = 1; if (frequency < 1) frequency = 1; @@ -1152,7 +1151,6 @@ void ugen_done_graph(t_dspcontext *dc) calcsize = parent_vecsize; downsample = upsample = 1; period = frequency = 1; - phase = 0; if (!parent_context) reblock = 1; switched = 0; } From 5b0e0a649bf5eebe41911fe01e2eac8bf35ada47 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Thu, 23 Nov 2023 13:20:38 +0100 Subject: [PATCH 034/450] make CLASS_MAINSIGNALIN type safe With C11/C++11 we can statically assert the size of the 'field' argument. Also, let's use 'offsetof', instead of the ugly NULL pointer cast hack, to get the member offset. --- src/m_pd.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/m_pd.h b/src/m_pd.h index c658fa555..93052c577 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -59,10 +59,17 @@ extern int pd_compatibilitylevel; /* e.g., 43 for pd 0.43 compatibility */ #define ATTRIBUTE_FORMAT_PRINTF(a, b) #endif -#if !defined(_SIZE_T) && !defined(_SIZE_T_) -#include /* just for size_t -- how lame! */ +#if __STDC_VERSION__ >= 201112L +#include +#define STATIC_ASSERT _Static_assert +#elif __cplusplus >= 201103L +#define STATIC_ASSERT static_assert +#else +#define STATIC_ASSERT(condition, message) /* no-op */ #endif +#include /* for size_t and offsetof */ + /* Microsoft Visual Studio is not C99, but since VS2015 has included most C99 headers: https://docs.microsoft.com/en-us/previous-versions/hh409293(v=vs.140)#c-runtime-library These definitions recreate stdint.h types, but only in pre-2015 Visual Studio: */ @@ -526,7 +533,8 @@ EXTERN int class_isdrawcommand(const t_class *c); EXTERN void class_set_extern_dir(t_symbol *s); EXTERN void class_domainsignalin(t_class *c, int onset); #define CLASS_MAINSIGNALIN(c, type, field) \ - class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0) + STATIC_ASSERT(sizeof(((type *)NULL)->field) == sizeof(t_float), "field must be t_float!"); \ + class_domainsignalin(c, offsetof(type, field)) /* prototype for functions to save Pd's to a binbuf */ typedef void (*t_savefn)(t_gobj *x, t_binbuf *b); From 78bdcea2af3429f3074b59f9ce2595214e8b2191 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 27 Nov 2023 13:20:19 +0100 Subject: [PATCH 035/450] Import deken v0.9.16 - PowerShell implementation for a fast and API-stable SHA256 hash on Windows - relax the sha256 check slightly (check whether the SHA256 as reported by the .sha256 file is "contained" in the calculated hash (as opposed to "equals") to work around interface quirks on Windows' "certUtil" - unify sha256 error handling for download-installation and file-installation - allow the user a one-time override of a sha256 failure --- tcl/pd_deken.tcl | 220 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 155 insertions(+), 65 deletions(-) diff --git a/tcl/pd_deken.tcl b/tcl/pd_deken.tcl index 8cca138be..3ec25c512 100644 --- a/tcl/pd_deken.tcl +++ b/tcl/pd_deken.tcl @@ -103,7 +103,7 @@ proc ::deken::versioncheck {version} { } ## put the current version of this package here: -if { [::deken::versioncheck 0.9.14] } { +if { [::deken::versioncheck 0.9.16] } { namespace eval ::deken:: { namespace export open_searchui @@ -515,6 +515,34 @@ proc ::deken::utilities::sha256_shasum {filename} { catch { set hash [lindex [exec shasum -a 256 $filename] 0] } return $hash } +proc ::deken::utilities::sha256_powershell {filename} { + set batscript [::deken::utilities::get_tmpfilename [::deken::utilities::get_tmpdir] ".bat" ] + set script { +@echo off +powershell -Command " & {Get-FileHash -Algorithm SHA256 -LiteralPath \"%1\" | Select-Object -ExpandProperty Hash}" + } + if {![catch {set fileId [open $batscript "w"]}]} { + puts $fileId $script + close $fileId + } + + if {![file exists $batscript]} { + ## still no script, give up + return "" + } + + if { [ catch { + set hash [exec "${batscript}" "${filename}"] + } stdout ] } { + # ouch, couldn't run powershell script + ::deken::utilities::verbose 1 "sha256.ps1 error: $stdout" + set hash "" + } + + catch { file delete "${batscript}" } + + return $hash +} proc ::deken::utilities::sha256_msw {filename} { set hash {} catch { set hash [join [exec certUtil -hashfile $filename SHA256 | findstr /v "hash"] ""] } @@ -532,11 +560,11 @@ proc ::deken::utilities::sha256_tcllib {filename} { proc ::deken::utilities::verify_sha256 {url pkgfile} { set msg [format [_ "Skipping SHA256 verification of '%s'." ] $url ] ::deken::statuspost $msg - return 1 + return -100 } -foreach impl {sha256sum shasum msw tcllib} { +foreach impl {sha256sum shasum powershell msw tcllib} { if { [::deken::utilities::sha256_${impl} $::argv0] ne "" } { set ::deken::utilities::sha256_implementation ::deken::utilities::sha256_${impl} proc ::deken::utilities::verify_sha256 {url pkgfile} { @@ -545,48 +573,77 @@ foreach impl {sha256sum shasum msw tcllib} { set retval 1 set isremote 1 - if { [ catch { - # check if $url really is a local file - if { [file normalize $url] eq $url } { - # $url is really an absolute filename - # use it, if it exists - set hashfile "${url}.sha256" - set isremote 0 - if { [file isfile $url ] && [file readable $url] } { } else { - set hashfile "" - } - } else { - # otherwise fetch it from the internet + set hashfile "" + + # check if $url really is a local file + if { [file normalize $url] eq $url } { + # $url is really an absolute filename + # use it, if it exists + set hashfile "${url}.sha256" + set isremote 0 + if { [file isfile ${hashfile} ] && [file readable ${hashfile}] } { } else { + set msg [format [_ "Unable to fetch reference SHA256 for '%s'." ] $url ] + ::deken::utilities::verbose 0 $msg + ::deken::statuspost $msg warn 0 + return -10 + } + } else { + # otherwise fetch it from the internet + if { [ catch { set hashfile [::deken::utilities::download_file ${url}.sha256 [::deken::utilities::get_tmpfilename [::deken::utilities::get_tmpdir] ".sha256" ] ] + } stdout ] } { + ::deken::utilities::verbose 0 "${stdout}" + # unable to download + set msg [format [_ "Unable to fetch reference SHA256 for '%s'." ] $url ] + ::deken::utilities::verbose 0 $msg + ::deken::statuspost $msg warn 0 + return -10 + } + } + if { "${hashfile}" eq "" } { + set retval -10 + } + + if { [ catch { + set fp [open $hashfile r] + set reference [string trim [string tolower [read $fp] ] ] + close $fp + if { $isremote } { + catch { file delete $hashfile } } - if { "$hashfile" eq "" } { - ::deken::utilities::verbose 0 [format [_ "Unable to fetch reference SHA256 for '%s'." ] $url ] + + # get hash of file + set hash [${::deken::utilities::sha256_implementation} $pkgfile ] + set hash [string trim [string tolower $hash ] ] + # check if hash is sane + if { [string length $hash] != 64 || ! [string is xdigit $hash] } { + ::deken::statuspost [format [_ "File checksum looks invalid: '%s'." ] $hash] warn 0 + } + # check if reference is sane + if { [string length $reference] != 64 || ! [string is xdigit $reference] } { + # this is more grave than the sanity check for the file hash + # (since for the file hash we depend on the user's machine being able to + # produce a proper SHA256 hash) + ::deken::statuspost [format [_ "Reference checksum looks invalid: '%s'." ] $reference] error 0 + } + + if { [string first ${reference} ${hash}] >= 0 } { set retval 1 } else { - set fp [open $hashfile r] - set reference [string trim [string tolower [read $fp] ] ] - close $fp - if { $isremote } { - catch { file delete $hashfile } - } - - set hash [string trim [string tolower [ ${::deken::utilities::sha256_implementation} $pkgfile ] ] ] - if { "${hash}" eq "${reference}" } { - set retval 1 - } else { - # SHA256 verification failed... - set retval 0 - } + # SHA256 verification failed... + set retval 0 } } stdout ] } { ::deken::utilities::verbose 0 "${stdout}" # unable to verify - ::deken::utilities::verbose 0 [format [_ "Unable to perform SHA256 verification for '%s'." ] $url ] - set retval 1 + set msg [format [_ "Unable to perform SHA256 verification for '%s'." ] $url ] + ::deken::utilities::verbose 0 $msg + ::deken::statuspost $msg warn 0 + set retval -20 } return ${retval} } -# it seems we found a working sha256 implementation, don't try to other ones... +# it seems we found a working sha256 implementation, don't try the other ones... break } } @@ -1231,6 +1288,52 @@ proc ::deken::versioncompare {a b} { return 0 } +proc ::deken::verify_sha256_gui {url pkgfile} { + ## verify that the SHA256 of the $pkgfile matches that from $url + ## in case of failure, this displays a dialog asking the user how to proceed + ## (if the preferences indicate we require checking) + ## returns + ## - 1 on success + ## - 0 on failure + ## - negative numbers indicate failures to be ignored + ## - one digit: user requested ignore + ## - -1 user requested ignore via prefs + ## - -2 user requested ignore via dialog + ## - two digits: unable to verify + ## - -10 reference could not be read + ## - -20 an exception occured while verifying + ## - three digits: + ## - -100 no sha256 verifier implemented + set err_msg [format [_ "SHA256 verification of '%s' failed!" ] $pkgfile ] + set err_title [_ "SHA256 verification failed" ] + set err_status [format [_ "Checksum mismatch for '%s'" ] $url] + + while 1 { + set hash_ok [::deken::utilities::verify_sha256 ${url} ${pkgfile}] + if { ${hash_ok} } { + return ${hash_ok} + } + ::deken::statuspost $err_status warn 0 + if { ! $::deken::verify_sha256 } { + return -1 + } + set result [tk_messageBox \ + -title ${err_title} \ + -message ${err_msg} \ + -icon error -type abortretryignore \ + -parent $::deken::winid] + switch -- ${result} { + abort { + return 0 + } + ignore { + return -2 + } + } + } + return 0 +} + proc ::deken::install_package_from_file {{pkgfile ""}} { set types {} lappend types [list [_ "Deken Packages" ] .dek] @@ -1248,23 +1351,9 @@ proc ::deken::install_package_from_file {{pkgfile ""}} { # perform checks and install it set pkgfile [file normalize $pkgfile] - if { "$::deken::verify_sha256" } { - if { ! [::deken::utilities::verify_sha256 ${pkgfile} ${pkgfile}] } { - ::deken::statuspost [format [_ "Checksum mismatch for '%s'" ] $pkgfile] warn 0 - set msg [format [_ "SHA256 verification of '%s' failed!" ] $pkgfile ] - - set result "retry" - while { "$result" eq "retry" } { - set result [tk_messageBox \ - -title [_ "SHA256 verification failed" ] \ - -message "${msg}" \ - -icon error -type abortretryignore \ - -parent $::deken::winid] - # we don't have a good strategy if the user selects 'retry' - # so we just display the dialog again... - } - if { "$result" eq "abort" } { return } - } + set result [::deken::verify_sha256_gui ${pkgfile} ${pkgfile}] + if { ! $result } { + return } ::deken::install_package ${pkgfile} "" "" 1 } @@ -2499,21 +2588,22 @@ proc ::deken::install_link {URL filename} { set msg [_ "Download completed! Verifying..." ] ::deken::progressstatus $msg ::deken::post "$msg" info - if { ! [::deken::utilities::verify_sha256 ${URL} $fullpkgfile] } { - ::deken::statuspost [format [_ "Checksum mismatch for '%s'" ] $filename] warn 0 - if { "$::deken::verify_sha256" } { - if { ! "$::deken::keep_package" } { - catch { file delete $fullpkgfile } - } - tk_messageBox \ - -title [_ "SHA256 verification failed" ] \ - -message [format [_ "SHA256 verification of '%s' failed!" ] $fullpkgfile ] \ - -icon error -type ok \ - -parent $::deken::winid - ::deken::progress 0 - return - } else { + + set result [::deken::verify_sha256_gui ${URL} ${fullpkgfile}] + if { ! $result } { + # verification failed + if { ! "$::deken::keep_package" } { + catch { file delete $fullpkgfile } + } + ::deken::progress 0 + return + } + if { $result < 0 } { + # verification failed, but we ignore it + if { $result > -10 } { ::deken::statuspost [_ "Ignoring checksum mismatch" ] info 0 + } elseif { $result > -100 } { + ::deken::statuspost [_ "Ignoring checksum errors" ] info 0 } } ::deken::install_package ${fullpkgfile} ${filename} ${installdir} ${::deken::keep_package} From b4c0edab580faedba22d6c594495e606ec4b52c7 Mon Sep 17 00:00:00 2001 From: Ben Wesch Date: Mon, 27 Nov 2023 18:51:03 +0100 Subject: [PATCH 036/450] fix range example and reference in [text search] help --- doc/5.reference/text-object-help.pd | 41 +++++++++++++++-------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/doc/5.reference/text-object-help.pd b/doc/5.reference/text-object-help.pd index 6617c5b27..0b8dc32a1 100644 --- a/doc/5.reference/text-object-help.pd +++ b/doc/5.reference/text-object-help.pd @@ -1,5 +1,5 @@ #N struct text-struct float x float y text z; -#N canvas 547 23 540 573 12; +#N canvas 547 37 540 573 12; #X obj 91 539 list; #X obj 28 12 text; #X text 14 539 see also:; @@ -408,7 +408,7 @@ #X restore 353 375 pd fromlist; #X text 99 374 convert from list; #X obj 241 398 text search; -#N canvas 339 23 916 694 search 0; +#N canvas 339 37 916 694 search 0; #X floatatom 46 316 5 0 0 0 - - - 0; #X text 340 259 find another text by name or pointer; #X text 218 288 arguments: name of the text object or "-s struct-name", f 55; @@ -448,26 +448,27 @@ #X obj 6 41 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X obj 29 10 text search; #X text 811 11 <= click; -#N canvas 726 130 570 392 reference 0; +#N canvas 726 130 570 398 reference 0; #X obj 9 47 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0; -#X obj 9 194 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 0; -#X obj 8 364 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0; -#X obj 9 136 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; -#X text 122 143 symbol - set array name., f 46; -#X text 116 163 pointer - pointer to the array if -s flag is used.; -#X text 76 265 -s : struct name and field name of main structure., f 66; +#X obj 9 203 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 0; +#X obj 8 373 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0; +#X obj 9 145 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; +#X text 122 152 symbol - set array name., f 46; +#X text 116 172 pointer - pointer to the array if -s flag is used.; +#X text 76 274 -s : struct name and field name of main structure., f 66; #X obj 35 14 text search; #X text 165 85 list - search key, f 40; #X obj 9 77 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; -#X text 107 303 1) symbol - array name if no flags are given (default: none)., f 61; -#X text 121 322 2) list -; -#X obj 9 235 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; -#X obj 9 261 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 0; -#X obj 9 293 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 0; +#X text 107 312 1) symbol - array name if no flags are given (default: none)., f 61; +#X text 121 331 2) list -; +#X obj 9 244 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; +#X obj 9 270 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 0; +#X obj 9 302 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 0; #X text 123 14 - search for a message.; -#X text 134 203 float - found message number or -1 if not found.; +#X text 134 212 float - found message number or -1 if not found.; #X text 190 323 search element number optionally preceded by ">" \, ">=" \, "<" \, "<=" \, or "near"., f 49; -#X text 53 104 range - set search range (indexed from 0); +#X text 53 104 range -; +#X text 214 104 onset and range of searched messages (onset starting from index 0), f 38; #X restore 717 11 pd reference; #X text 53 95 matches first message (number 0); #X text 117 10 - search for a message.; @@ -487,9 +488,9 @@ #X text 607 558 Here message 2 wins because its element 0 is nearer to 3 \, notwithstanding that its element 1 is farther from 1, f 40; #X text 225 359 here we ask to match both element 0 and 3 exactly. In element 3 we're testing symbols for equality., f 50; #X text 13 457 Match a message for which the search key is greater than the element zero of that message. The message getting closest to the key wins. You can also use the 'range' message to narrow the search., f 68; -#X msg 20 567 range 2 4; -#X text 22 517 narrow to elements 2 and 4, f 9; -#X text 163 545 this matches messages 1 and 3 \, and each is equally good \, so message 1 wins \, unless you narroe the range, f 43; +#X text 163 545 this matches messages 1 and 3 \, and each is equally good \, so message 1 wins \, unless you narrow the range, f 43; +#X text 22 517 narrow to messages 2 and 3, f 9; +#X msg 20 567 range 2 2; #X connect 4 0 0 0; #X connect 5 0 4 1; #X connect 6 0 4 0; @@ -515,7 +516,7 @@ #X connect 30 0 28 0; #X connect 31 0 28 0; #X connect 32 0 28 0; -#X connect 56 0 24 0; +#X connect 58 0 24 0; #X restore 353 398 pd search; #X text 50 421 sequencer/message-sender; #X obj 241 422 text sequence; From 5a80eb9addaf40cef8cdffdc924be9c4cddd175d Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 27 Nov 2023 16:08:34 -0300 Subject: [PATCH 037/450] Update text-object-help.pd improve a bit from the last commit/PR by ben wesch --- doc/5.reference/text-object-help.pd | 80 ++++++++++++++--------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/doc/5.reference/text-object-help.pd b/doc/5.reference/text-object-help.pd index 0b8dc32a1..fc6710f24 100644 --- a/doc/5.reference/text-object-help.pd +++ b/doc/5.reference/text-object-help.pd @@ -408,7 +408,7 @@ #X restore 353 375 pd fromlist; #X text 99 374 convert from list; #X obj 241 398 text search; -#N canvas 339 37 916 694 search 0; +#N canvas 401 23 916 714 search 0; #X floatatom 46 316 5 0 0 0 - - - 0; #X text 340 259 find another text by name or pointer; #X text 218 288 arguments: name of the text object or "-s struct-name", f 55; @@ -423,41 +423,40 @@ #X msg 64 203 4 5; #X msg 73 228 4 13; #X msg 54 173 7; -#X msg 83 365 7 cat; -#X msg 133 365 7 alligator; -#X floatatom 133 428 5 0 0 0 - - - 0; -#X msg 33 365 7 dog; -#X obj 133 400 text search text-search 0 3, f 33; +#X msg 73 365 7 cat; +#X msg 123 365 7 alligator; +#X floatatom 123 428 5 0 0 0 - - - 0; +#X msg 23 365 7 dog; +#X obj 123 400 text search text-search 0 3, f 33; #X floatatom 675 373 5 0 0 0 - - - 0; #X obj 675 332 text search text-search 1; #X msg 686 235 8 9; #X msg 675 206 8 9 alligator; #X msg 700 262 8; #X msg 709 292 symbol line; -#X floatatom 112 665 5 0 0 0 - - - 0; -#X obj 112 633 text search text-search > 0, f 33; -#X msg 112 516 2; -#X msg 132 553 4; -#X msg 146 598 10; -#X obj 528 621 text search text-search 2 near 0; -#X floatatom 528 659 5 0 0 0 - - - 0; -#X msg 528 472 3 3; -#X msg 543 512 3 2.5 1; -#X msg 556 568 3 3 1; +#X floatatom 112 685 5 0 0 0 - - - 0; +#X msg 112 536 2; +#X msg 128 573 4; +#X msg 143 613 10; +#X obj 528 641 text search text-search 2 near 0; +#X floatatom 528 679 5 0 0 0 - - - 0; +#X msg 528 488 3 3; +#X msg 543 532 3 2.5 1; +#X msg 556 588 3 3 1; #X text 440 109 click to open:; #X obj 6 41 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X obj 29 10 text search; #X text 811 11 <= click; -#N canvas 726 130 570 398 reference 0; +#N canvas 726 130 570 384 reference 0; #X obj 9 47 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0; #X obj 9 203 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 0; -#X obj 8 373 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0; +#X obj 8 363 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0; #X obj 9 145 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; #X text 122 152 symbol - set array name., f 46; #X text 116 172 pointer - pointer to the array if -s flag is used.; #X text 76 274 -s : struct name and field name of main structure., f 66; #X obj 35 14 text search; -#X text 165 85 list - search key, f 40; +#X text 136 85 list - search key, f 40; #X obj 9 77 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; #X text 107 312 1) symbol - array name if no flags are given (default: none)., f 61; #X text 121 331 2) list -; @@ -467,8 +466,8 @@ #X text 123 14 - search for a message.; #X text 134 212 float - found message number or -1 if not found.; #X text 190 323 search element number optionally preceded by ">" \, ">=" \, "<" \, "<=" \, or "near"., f 49; -#X text 53 104 range -; -#X text 214 104 onset and range of searched messages (onset starting from index 0), f 38; +#X text 24 104 range -; +#X text 185 104 onset and range of searched messages (onset indexed from 0), f 44; #X restore 717 11 pd reference; #X text 53 95 matches first message (number 0); #X text 117 10 - search for a message.; @@ -479,18 +478,19 @@ #X text 95 203 matches two elements of message number 2; #X text 107 227 fails on second element so no match; #X text 213 306 ... then optional element numbers (starting from 0) optionally preceded by ">". ">=" \, "<" \, "<=" \, or "near".; -#X text 145 509 messages 1 \, 2 \, and 3 match \, but 2 wins because its first element (4) is closest to the search key 2, f 51; -#X text 178 597 nobody's first element is greater than 10; +#X text 145 529 messages 1 \, 2 \, and 3 match \, but 2 wins because its first element (4) is closest to the search key 2, f 51; +#X text 175 612 nobody's first element is greater than 10; #X text 597 53 If the search pattern (the incoming list) has more elements than we have specified search elements \, extra search patterns match succeeding elements starting from the last one give as an argument. So for example if there are no arguments we look for matches to any number of elements starting from the beginning of the message in the text., f 42; #X text 531 407 Here we ask for element 2 to equal 3 and elements starting at 0 to be 'near' the following arguments., f 41; -#X text 562 472 element 2 is 3 and element 0 nearest 3; -#X text 605 500 here messages 0 and 2 tie over 2.4 (1 and 4 are equally far from it) so message 0 whose second element is closer to 1 wins., f 42; -#X text 607 558 Here message 2 wins because its element 0 is nearer to 3 \, notwithstanding that its element 1 is farther from 1, f 40; -#X text 225 359 here we ask to match both element 0 and 3 exactly. In element 3 we're testing symbols for equality., f 50; -#X text 13 457 Match a message for which the search key is greater than the element zero of that message. The message getting closest to the key wins. You can also use the 'range' message to narrow the search., f 68; -#X text 163 545 this matches messages 1 and 3 \, and each is equally good \, so message 1 wins \, unless you narrow the range, f 43; -#X text 22 517 narrow to messages 2 and 3, f 9; -#X msg 20 567 range 2 2; +#X text 562 488 element 2 is 3 and element 0 nearest 3; +#X text 605 516 here messages 0 and 2 tie over 2.4 (1 and 4 are equally far from it) so message 0 whose second element is closer to 1 wins., f 42; +#X text 607 578 Here message 2 wins because its element 0 is nearer to 3 \, notwithstanding that its element 1 is farther from 1, f 40; +#X text 215 359 here we ask to match both element 0 and 3 exactly. In element 3 we're testing symbols for equality., f 50; +#X obj 112 653 text search text-search > 0, f 33; +#X text 159 565 matches 1 & 3 \, both are equally good \, so 1 wins \, unless you narrow the range, f 48; +#X msg 20 587 range 2 3; +#X text 24 536 narrow between 2 and 4, f 7; +#X text 13 457 Match a message for which the search key is greater than the element zero of that message. The message getting closest to the key wins. You can also use the 'range' message to narrow the search \, wich takes an offset and number of messages., f 68; #X connect 4 0 0 0; #X connect 5 0 4 1; #X connect 6 0 4 0; @@ -508,15 +508,15 @@ #X connect 20 0 18 0; #X connect 21 0 18 0; #X connect 22 0 18 0; -#X connect 24 0 23 0; -#X connect 25 0 24 0; -#X connect 26 0 24 0; -#X connect 27 0 24 0; -#X connect 28 0 29 0; -#X connect 30 0 28 0; -#X connect 31 0 28 0; -#X connect 32 0 28 0; -#X connect 58 0 24 0; +#X connect 24 0 54 0; +#X connect 25 0 54 0; +#X connect 26 0 54 0; +#X connect 27 0 28 0; +#X connect 29 0 27 0; +#X connect 30 0 27 0; +#X connect 31 0 27 0; +#X connect 54 0 23 0; +#X connect 56 0 54 0; #X restore 353 398 pd search; #X text 50 421 sequencer/message-sender; #X obj 241 422 text sequence; From 93f6f90deda881f4338c79e3ef2f06359044c654 Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Wed, 29 Nov 2023 16:36:53 +0100 Subject: [PATCH 038/450] sigmund~ better block size error checking --- extra/sigmund~/sigmund~.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/extra/sigmund~/sigmund~.c b/extra/sigmund~/sigmund~.c index da046941e..e8e7b826e 100644 --- a/extra/sigmund~/sigmund~.c +++ b/extra/sigmund~/sigmund~.c @@ -1165,20 +1165,23 @@ static void sigmund_dsp(t_sigmund *x, t_signal **sp) { if (x->x_mode == MODE_STREAM) { - if (x->x_hop % sp[0]->s_n) - post("sigmund~: adjusting hop size to %d", - (x->x_hop = sp[0]->s_n * (x->x_hop / sp[0]->s_n))); - if (x->x_infill % sp[0]->s_n) { - if (x->x_inbuf) { - int i; - t_sample*inbuf = x->x_inbuf; - for(i=0; ix_npts; i++) - *inbuf++ = 0.; + if (x->x_npts % sp[0]->s_n) + pd_error(x, "sigmund~: npts %d must be multiple of block size %d", + x->x_npts, sp[0]->s_n); + else + { + if (x->x_hop % sp[0]->s_n) + post("sigmund~: adjusting hop size to %d", + (x->x_hop = sp[0]->s_n * (x->x_hop / sp[0]->s_n))); + if ((x->x_infill % sp[0]->s_n) || (x->x_infill > x->x_npts)) + { + if (x->x_inbuf) + memset(x->x_inbuf, 0, x->x_npts * sizeof(*x->x_inbuf)); + x->x_infill = 0; } - x->x_infill = 0; + x->x_sr = sp[0]->s_sr; + dsp_add(sigmund_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n); } - x->x_sr = sp[0]->s_sr; - dsp_add(sigmund_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n); } } @@ -1283,10 +1286,13 @@ static t_int *sigmund_perform(t_int *w) return (w+4); if (x->x_countdown > 0) x->x_countdown -= n; - else if (x->x_infill != x->x_npts) + else { int j; - t_float *fp = x->x_inbuf + x->x_infill; + t_float *fp; + if (x->x_infill + n > x->x_npts) + bug("sigmund_perform"), x->x_infill = 0; + fp = x->x_inbuf + x->x_infill; for (j = 0; j < n; j++) *fp++ = *in++; x->x_infill += n; From 6995b02985bfb1d9de59e6c1c71ea826565b098a Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Wed, 29 Nov 2023 16:39:39 +0100 Subject: [PATCH 039/450] add note for testing sub-pd with ascii input/output --- extra/pd~/notes.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/extra/pd~/notes.txt b/extra/pd~/notes.txt index 59129d5ab..97e57f79c 100644 --- a/extra/pd~/notes.txt +++ b/extra/pd~/notes.txt @@ -1,5 +1,8 @@ pd -schedlib `pwd`/pdsched +ascii, non-real-time: +pd -schedlib `pwd`/pdsched -extraflags a -nrt + dolist: pd~ to delay starting subproc until asked figure out about setting nchannels from command line From ef9a7999697b8ec8bfe4e378e244d30366fd9b71 Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 29 Nov 2023 23:47:21 -0300 Subject: [PATCH 040/450] document default flag values in [soundfiler] and letting it save files closes https://github.com/pure-data/pddp/issues/177 One big issue is that the example used a '/tmp/' directory to write to, but this directory doesn't exist, so noting got saved. I removed this temp file so now it gets saved on the docs folder. I also documented default flag values for writting I think it would best to also use [openpanel] and [savepanel] in the examples by the way. --- doc/5.reference/soundfiler-help.pd | 221 +++++++++++++++++------------ 1 file changed, 127 insertions(+), 94 deletions(-) diff --git a/doc/5.reference/soundfiler-help.pd b/doc/5.reference/soundfiler-help.pd index f1eeb0ff5..a3507fdcb 100644 --- a/doc/5.reference/soundfiler-help.pd +++ b/doc/5.reference/soundfiler-help.pd @@ -1,61 +1,25 @@ -#N canvas 322 46 863 579 12; +#N canvas 183 50 1039 619 12; #N canvas 0 22 450 300 (subpatch) 0; -#X array array1 13 float 2; -#X coords 0 1 13 -1 300 100 1 0 0; -#X restore 545 269 graph; -#N canvas 0 22 450 300 (subpatch) 0; -#X array array2 78003 float 2; -#X coords 0 1 78003 -1 300 100 1; -#X restore 545 387 graph; -#X obj 32 382 soundfiler; -#X msg 76 270 write -aiff /tmp/foo1 array2; -#X msg 25 141 read ../sound/bell.aiff array2; -#X msg 41 198 read -raw 128 2 2 b ../sound/bell.aiff array1 array2; -#X floatatom 32 411 7 0 0 0 - - - 0; -#X msg 33 169 read -resize ../sound/bell.aiff array2; -#X text 286 270 write a file; -#X text 408 326 write stereo; -#X obj 143 542 tabwrite~; -#X obj 217 542 tabread4~; -#X obj 290 542 tabplay~; -#X obj 414 542 writesf~; -#X obj 356 542 readsf~; -#X text 18 541 See also:; -#X text 245 141 read a file to zero or more arrays; -#X obj 30 15 soundfiler; -#X text 313 169 optionally resize; -#X text 419 198 override header; -#X text 314 224 ... read from an ascii file, f 28; -#X text 648 541 updated for Pd version 0.51; -#X msg 49 225 read -ascii -resize table.txt array1; -#X msg 85 325 write -next -bytes 4 /tmp/foo3 array1 array2; -#X text 33 444 Left outlet outputs the number of samples. Right outlet outputs info as a list: samplerate \, headersize \, num channels \, bytes per sample \, & endianness ("b" or "l"). If no array name is given \, no samples are read but the info is provided anyway., f 63; -#X msg 81 298 write -nframes 10000 /tmp/foo2.wav array2; -#X text 380 298 set type by file ext; -#X text 287 352 ... write to an ascii file; -#X msg 91 352 write /tmp/foo1.txt array2; -#X text 314 374 "-ascii" set via file ext; -#N canvas 791 194 575 345 Dealing_with_"\$0" 0; -#X obj 258 174 array define \$0-x; -#X obj 153 202 f \$0; -#X obj 153 263 soundfiler; -#X floatatom 153 289 7 0 0 0 - - - 0; -#X msg 153 231 read -resize ../sound/bell.aiff \$1-x; -#X obj 153 176 loadbang; -#X text 36 86 You can use "\$0" in an array name in [array define] and if you need to set the array name in a message you can load '\$0' in a float object and send it to it., f 70; -#X text 390 175 <- array with local name, f 13; -#X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send/receive names as well as array names. This is especially useful in abstractions so each copy has local names instead of global., f 70; -#X connect 1 0 4 0; -#X connect 2 0 3 0; -#X connect 4 0 2 0; -#X connect 5 0 1 0; -#X restore 385 410 pd Dealing_with_"\$0"; -#X text 234 401 open subpatch to see how to deal with '\$0', f 21; -#X obj 95 542 array; -#X listbox 99 411 16 0 0 0 - - - 0; -#X obj 8 46 cnv 1 850 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 774 11 <= click; -#N canvas 556 60 632 371 reference 0; +#X array sample 255944 float 2; +#X coords 0 1 255944 -1 250 100 1 0 0; +#X restore 278 275 graph; +#X obj 60 340 soundfiler; +#X floatatom 60 369 7 0 0 0 - - - 12; +#X text 101 262 write a file; +#X obj 163 580 tabwrite~; +#X obj 237 580 tabread4~; +#X obj 310 580 tabplay~; +#X obj 434 580 writesf~; +#X obj 376 580 readsf~; +#X text 38 579 See also:; +#X text 256 185 read a file to zero or more arrays, f 35; +#X obj 40 15 soundfiler; +#X text 806 579 updated for Pd version 0.51; +#X obj 115 580 array; +#X listbox 127 369 16 0 0 0 - - - 0; +#X obj 6 51 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 916 14 <= click; +#N canvas 540 87 632 371 reference 0; #X obj 8 52 cnv 5 610 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; #X obj 8 182 cnv 2 610 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; #X obj 8 301 cnv 2 610 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; @@ -64,46 +28,115 @@ #X obj 7 210 cnv 1 610 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; #X text 109 254 list -; #X text 102 219 float - number of samples (when reading a file)., f 58; -#X text 157 254 sample rate \, header size \, number of channels \, bytes per sample & endianness (when reading a file)., f 51; #X text 75 66 read -; #X text 174 66 sets a filename to open and optionally one or more arrays to load channels. Optional flags: -wave \, -aiff \, -caf \, -next \, -skip \, -maxsize \, -ascii \, -raw .; #X text 68 117 write -; -#X text 174 116 sets a filename to write and one or more arrays to specify channels. Optional flags: -wave \, -aiff \, -caf \, -next \, -big \, -little \, -skip \, -nframes \, -ascii \, -normalize \, -rate .., f 60; #X obj 30 15 soundfiler; -#X text 164 309 NONE; +#X text 234 309 NONE; #X text 112 15 - import/export soundfiles to/from arrays.; -#X restore 680 12 pd reference; -#X obj 8 524 cnv 1 850 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 551 132 Use 'read' messages to load files into arrays and 'write' messages to write arrays to a sound file. Open the subpatch below for more information on flags for reading and writing., f 39; -#N canvas 578 80 567 534 read-write-flags 0; -#X text 49 53 -skip ; -#X text 49 108 -raw ; -#X text 49 89 -maxsize ; -#X text 55 381 -skip ; -#X text 55 403 -nframes ; -#X text 55 447 -normalize; -#X text 55 425 -bytes <2 \, 3 \, or 4>; -#X text 55 467 -rate ; -#X text 49 219 -ascii - read a file containing ascii numbers; -#X text 55 359 -big \, -little (sample endianness); -#X text 54 340 -wave \, -aiff \, -caf \, -next \, -ascii; -#X text 55 495 The number of channels is limited to 64; -#X text 67 237 May be combined with -resize. Newlines in the file are ignored \, non-numeric fields are replaced by zero. If multiple arrays are specified \, the first elements of each array should come first in the file \, followed by all the second elements and so on (interleaved)., f 67; -#X text 49 35 -wave \, -aiff \, -caf \, -next; -#X text 49 71 -resize (resizes arrays to the size of the sound file); -#X text 9 17 Flags for 'read' messages:; -#X text 20 319 Flags for 'write' messages:; -#X text 67 126 you can leave soundfiler to figure out which of the known soundfile formats the file belongs to or override all header and type information using the "-raw" flag \, which causes all header and type information to be ignored. Endianness is "l" ("little") for Intel machines or "b" ("big") for older PPC Macintoshes. You can give "n" (natural) to take the byte order your machine prefers., f 67; -#X restore 674 216 pd read-write-flags; -#X text 30 61 The [soundfiler] object reads and writes floating point arrays to binary soundfiles which may contain uncompressed 2- or 3-byte integer ("pcm") or 4-byte floating point samples in wave \, aiff \, caf \, next \, or ascii text formats. The number of channels of the soundfile need not match the number of arrays given (extras are dropped and unsupplied channels are zeroed out)., f 114; -#X text 110 15 - import/export soundfiles to/from arrays; -#X connect 2 0 6 0; -#X connect 2 1 33 0; -#X connect 3 0 2 0; +#X text 174 116 sets a filename to write and one or more arrays to specify channels. Optional flags: -wave \, -aiff \, -caf \, -ascii \, -next \, -big \, -little \, -skip \, -nframes \, -normalize \, -rate .; +#X text 157 254 sample rate \, header size \, number of channels \, bytes per sample & endianness ('b' or 'l')., f 51; +#X restore 822 15 pd reference; +#X text 120 14 - import/export soundfiles to/from arrays; +#X msg 34 185 read ../sound/bell.aiff sample; +#X msg 60 220 read -resize ../sound/bell.aiff sample; +#X text 29 69 The [soundfiler] object loads files into arrays and also saves arrays into files. The soundfiles may contain uncompressed 2- or 3-byte integer ("pcm") or 4-byte floating point samples in wave \, aiff \, caf and next formats. Additionally \, [soundfiler] also deals with ascii text files., f 72; +#X text 340 212 optionally resize array to fit the whole file, f 23; +#X text 37 153 Basic read/write example:; +#N canvas 791 194 575 345 Dealing_with_"\$0" 0; +#X obj 273 171 array define \$0-x; +#X obj 153 202 f \$0; +#X obj 153 263 soundfiler; +#X floatatom 153 289 7 0 0 0 - - - 0; +#X msg 153 231 read -resize ../sound/bell.aiff \$1-x; +#X obj 153 176 loadbang; +#X text 405 172 <- array with local name, f 13; +#X text 36 33 '\$0' - the patch ID number used to force locality in Pd - is widely used in send/receive names as well as array names. This is especially useful in abstractions so each copy has local names instead of global., f 70; +#X text 36 86 Here we use "\$0" in an array name in [array define] and if you need to set the array name in a message you can load '\$0' in a float object and send it to it., f 70; +#X connect 1 0 4 0; +#X connect 2 0 3 0; #X connect 4 0 2 0; -#X connect 5 0 2 0; -#X connect 7 0 2 0; -#X connect 22 0 2 0; -#X connect 23 0 2 0; -#X connect 25 0 2 0; -#X connect 28 0 2 0; +#X connect 5 0 1 0; +#X restore 788 376 pd Dealing_with_"\$0"; +#X text 678 353 open subpatch to see how to deal with '\$0', f 28; +#X text 29 501 The 'write' message takes a filename to save to and one or more arrays (one for each channel)., f 72; +#X text 29 422 The 'read' message takes a file to load and one or more arrays to load into (in the case the file has more than one channel). The number of channels of the soundfile need not match the number of arrays given to read (extras channels are dropped and unsupplied channels are zeroed out in the extra arrays)., f 72; +#X text 577 243 Note that if no array name is given to read to \, no samples are read but you get the number of samples in the file on the left outlet and the info on the right outlet anyway., f 62; +#X text 577 300 Also note that the number of channels is limited to 64 for both reading and writting., f 62; +#N canvas 86 112 1234 585 read-write-flags 0; +#X text 27 83 -resize (resizes arrays to the size of the sound file), f 62; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array1 78003 float 2; +#X coords 0 1 78003 -1 325 120 1 0 0; +#X restore 538 441 graph; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array2 78003 float 2; +#X coords 0 1 78003 -1 325 120 1 0 0; +#X restore 877 441 graph; +#X obj 681 357 soundfiler; +#X text 27 23 Flags for 'read' message:, f 62; +#X text 27 347 Flags for 'write' message:, f 69; +#X text 27 101 -maxsize (maximum number of samples to resize to), f 62; +#X text 48 139 [soundfiler] can figure out which of the known soundfile formats the file belongs to or override all header and type information using the "-raw" flag \, which causes all header and type information to be ignored. Endianness is "l" ("little") for Intel machines or "b" ("big") for older PPC Macintoshes. You can give "n" (natural) to take the byte order your machine prefers., f 70; +#X text 27 231 -ascii (read a file containing ascii numbers), f 73; +#X text 48 251 This may only be combined with '-resize'. Newlines in the file are ignored \, non-numeric fields are replaced by zero. If multiple arrays are specified \, the first elements of each array should come first in the file \, followed by all the second elements and so on (interleaved)., f 70; +#X text 27 47 -wave \, -aiff \, -caf \, -next (soundfile format), f 62; +#X text 857 108 read a file overriding the header; +#X text 988 255 read from an ascii file; +#X listbox 748 385 17 0 0 0 - - - 0; +#X msg 664 133 read -resize -raw 128 2 2 b ../sound/bell.aiff array1 array2; +#X msg 735 278 read -ascii -resize table.txt array1 array2; +#X msg 726 255 read -ascii -resize table.txt array1; +#X text 903 313 write to an ascii file; +#X floatatom 681 385 6 0 0 0 - - - 0; +#X msg 694 189 write -nframes 10000 foo2.wav array1; +#X obj 645 72 openpanel; +#X obj 645 37 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X msg 645 100 read -resize \$1 array1; +#X msg 704 213 write -next -bytes 4 foo3 array1 array2; +#X text 959 189 write and set number of samples; +#X text 989 207 set file extenstion and write a stereo file, f 23; +#X obj 560 72 savepanel; +#X obj 560 37 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X text 677 38 choose file to save to or read from in your hard disk; +#X msg 676 157 read -maxsize 44100 -aiff ../sound/bell.aiff array1; +#X text 1044 157 set size and extension; +#X text 82 500 * note that arrays whose values exceed the -1 to 1 range are automatically normalized, f 42; +#X text 27 442 -bytes (bytes per sample: 2 \, 3 \, or 4 \, default: 2), f 69; +#X text 27 461 -rate (sample rate \, default Pd's running sample rate), f 69; +#X text 27 424 -nframes (maximum points to write \, default whole array), f 69; +#X text 27 405 -skip (number of points to skip in array \, default 0), f 69; +#X text 27 65 -skip (sample frames to skip in the file as an offset), f 62; +#X text 27 120 -raw (header size \, channels \, bytes per sample \, endianness), f 73; +#X text 27 367 -wave \, -aiff \, -caf \, -next \, -ascii (soundfile format \, default: 'wave'), f 69; +#X text 27 386 -big \, -little (sample endianness \, default 'little'), f 69; +#X text 27 480 -normalize * (normalize file to '1'), f 69; +#X msg 560 100 write \$1 array1 array2, f 9; +#X msg 745 314 write foo1.txt array1; +#X connect 3 0 18 0; +#X connect 3 1 13 0; +#X connect 14 0 3 0; +#X connect 15 0 3 0; +#X connect 16 0 3 0; +#X connect 19 0 3 0; +#X connect 20 0 22 0; +#X connect 21 0 20 0; +#X connect 22 0 3 0; +#X connect 23 0 3 0; +#X connect 26 0 41 0; +#X connect 27 0 26 0; +#X connect 29 0 3 0; +#X connect 41 0 3 0; +#X connect 42 0 3 0; +#X restore 756 497 pd read-write-flags & more examples; +#X f 19; +#X msg 89 289 write foo1 sample; +#X text 577 69 At loading or writting a file \, the left outlet outputs the number of samples and the right outlet sends information as a list \, namely: Sample Rate \, Header Size \, Number of Bhannels \, Bytes per Sample & Endianness ("b" for "big" or "l" for "little")., f 62; +#X text 577 149 When loading a file \, the left outlet sends the number of samples the file contains if the array is equal or greater in size. If you're loading a file into an array that is smaller \, the number or samples is clipped to the array size and you probably want to use the -resize flag to resize the array size to the file size., f 62; +#X text 577 413 Both 'read' and 'write' messages also take optional flags for configuration. In the basic example to the left we have the '-resize' flag in the read message that resizes the array to the file size. See more about flags and advanced examples in the subpatch below., f 62; +#X obj 6 562 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X connect 1 0 2 0; +#X connect 1 1 14 0; +#X connect 19 0 1 0; +#X connect 20 0 1 0; +#X connect 31 0 1 0; From 79bb9eb7e5bb2b0301f6632360859be5faba1267 Mon Sep 17 00:00:00 2001 From: porres Date: Thu, 30 Nov 2023 00:44:42 -0300 Subject: [PATCH 041/450] Update soundfiler-help.pd fixed a typo and other minor cosmetical changes --- doc/5.reference/soundfiler-help.pd | 70 ++++++++++++++++-------------- 1 file changed, 37 insertions(+), 33 deletions(-) diff --git a/doc/5.reference/soundfiler-help.pd b/doc/5.reference/soundfiler-help.pd index a3507fdcb..c3d8bdada 100644 --- a/doc/5.reference/soundfiler-help.pd +++ b/doc/5.reference/soundfiler-help.pd @@ -1,8 +1,8 @@ #N canvas 183 50 1039 619 12; #N canvas 0 22 450 300 (subpatch) 0; -#X array sample 255944 float 2; -#X coords 0 1 255944 -1 250 100 1 0 0; -#X restore 278 275 graph; +#X array sample 44100 float 2; +#X coords 0 1 44100 -1 250 100 1 0 0; +#X restore 269 273 graph; #X obj 60 340 soundfiler; #X floatatom 60 369 7 0 0 0 - - - 12; #X text 101 262 write a file; @@ -63,7 +63,7 @@ #X text 29 422 The 'read' message takes a file to load and one or more arrays to load into (in the case the file has more than one channel). The number of channels of the soundfile need not match the number of arrays given to read (extras channels are dropped and unsupplied channels are zeroed out in the extra arrays)., f 72; #X text 577 243 Note that if no array name is given to read to \, no samples are read but you get the number of samples in the file on the left outlet and the info on the right outlet anyway., f 62; #X text 577 300 Also note that the number of channels is limited to 64 for both reading and writting., f 62; -#N canvas 86 112 1234 585 read-write-flags 0; +#N canvas 101 118 1234 585 read-write-flags 1; #X text 27 83 -resize (resizes arrays to the size of the sound file), f 62; #N canvas 0 22 450 300 (subpatch) 0; #X array array1 78003 float 2; @@ -73,7 +73,7 @@ #X array array2 78003 float 2; #X coords 0 1 78003 -1 325 120 1 0 0; #X restore 877 441 graph; -#X obj 681 357 soundfiler; +#X obj 681 367 soundfiler; #X text 27 23 Flags for 'read' message:, f 62; #X text 27 347 Flags for 'write' message:, f 69; #X text 27 101 -maxsize (maximum number of samples to resize to), f 62; @@ -81,26 +81,22 @@ #X text 27 231 -ascii (read a file containing ascii numbers), f 73; #X text 48 251 This may only be combined with '-resize'. Newlines in the file are ignored \, non-numeric fields are replaced by zero. If multiple arrays are specified \, the first elements of each array should come first in the file \, followed by all the second elements and so on (interleaved)., f 70; #X text 27 47 -wave \, -aiff \, -caf \, -next (soundfile format), f 62; -#X text 857 108 read a file overriding the header; -#X text 988 255 read from an ascii file; -#X listbox 748 385 17 0 0 0 - - - 0; -#X msg 664 133 read -resize -raw 128 2 2 b ../sound/bell.aiff array1 array2; -#X msg 735 278 read -ascii -resize table.txt array1 array2; -#X msg 726 255 read -ascii -resize table.txt array1; -#X text 903 313 write to an ascii file; -#X floatatom 681 385 6 0 0 0 - - - 0; -#X msg 694 189 write -nframes 10000 foo2.wav array1; +#X text 1119 137 read a file overriding the header, f 11; +#X text 1002 261 read from an ascii file; +#X listbox 748 395 17 0 0 0 - - - 0; +#X msg 684 152 read -resize -raw 128 2 2 b ../sound/bell.aiff array1 array2; +#X msg 749 284 read -ascii -resize table.txt array1 array2; +#X text 922 321 write to an ascii file; +#X floatatom 681 395 6 0 0 0 - - - 0; +#X msg 709 199 write -nframes 10000 foo2.wav array1; #X obj 645 72 openpanel; #X obj 645 37 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; -#X msg 645 100 read -resize \$1 array1; -#X msg 704 213 write -next -bytes 4 foo3 array1 array2; -#X text 959 189 write and set number of samples; -#X text 989 207 set file extenstion and write a stereo file, f 23; +#X msg 719 226 write -next -bytes 4 foo3 array1 array2; +#X text 974 199 write and set number of samples; +#X text 1004 217 set file extenstion and write a stereo file, f 23; #X obj 560 72 savepanel; #X obj 560 37 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; #X text 677 38 choose file to save to or read from in your hard disk; -#X msg 676 157 read -maxsize 44100 -aiff ../sound/bell.aiff array1; -#X text 1044 157 set size and extension; #X text 82 500 * note that arrays whose values exceed the -1 to 1 range are automatically normalized, f 42; #X text 27 442 -bytes (bytes per sample: 2 \, 3 \, or 4 \, default: 2), f 69; #X text 27 461 -rate (sample rate \, default Pd's running sample rate), f 69; @@ -112,29 +108,37 @@ #X text 27 386 -big \, -little (sample endianness \, default 'little'), f 69; #X text 27 480 -normalize * (normalize file to '1'), f 69; #X msg 560 100 write \$1 array1 array2, f 9; -#X msg 745 314 write foo1.txt array1; -#X connect 3 0 18 0; +#X msg 764 322 write foo1.txt array1; +#X msg 645 100 read -resize \$1 array1 array2; +#X msg 666 127 read -maxsize 44100 -aiff ../sound/bell.aiff array1 array2; +#X text 905 103 set max size and extension; +#X msg 740 261 read -ascii -resize table.txt array1; +#X connect 3 0 17 0; #X connect 3 1 13 0; #X connect 14 0 3 0; #X connect 15 0 3 0; -#X connect 16 0 3 0; -#X connect 19 0 3 0; -#X connect 20 0 22 0; -#X connect 21 0 20 0; -#X connect 22 0 3 0; -#X connect 23 0 3 0; -#X connect 26 0 41 0; -#X connect 27 0 26 0; -#X connect 29 0 3 0; -#X connect 41 0 3 0; +#X connect 18 0 3 0; +#X connect 19 0 39 0; +#X connect 20 0 19 0; +#X connect 21 0 3 0; +#X connect 24 0 37 0; +#X connect 25 0 24 0; +#X connect 37 0 3 0; +#X connect 38 0 3 0; +#X connect 39 0 3 0; +#X connect 40 0 3 0; #X connect 42 0 3 0; #X restore 756 497 pd read-write-flags & more examples; #X f 19; #X msg 89 289 write foo1 sample; -#X text 577 69 At loading or writting a file \, the left outlet outputs the number of samples and the right outlet sends information as a list \, namely: Sample Rate \, Header Size \, Number of Bhannels \, Bytes per Sample & Endianness ("b" for "big" or "l" for "little")., f 62; #X text 577 149 When loading a file \, the left outlet sends the number of samples the file contains if the array is equal or greater in size. If you're loading a file into an array that is smaller \, the number or samples is clipped to the array size and you probably want to use the -resize flag to resize the array size to the file size., f 62; #X text 577 413 Both 'read' and 'write' messages also take optional flags for configuration. In the basic example to the left we have the '-resize' flag in the read message that resizes the array to the file size. See more about flags and advanced examples in the subpatch below., f 62; #X obj 6 562 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 503 580 openpanel; +#X obj 576 580 savepanel; +#X text 577 69 At loading or writting a file \, the left outlet outputs the number of samples and the right outlet sends information as a list \, namely: Sample Rate \, Header Size \, Number of Channels \, Bytes per Sample & Endianness ("b" for "big" or "l" for "little")., f 62; +#X text 126 389 info ; +#X text 44 389 # samples; #X connect 1 0 2 0; #X connect 1 1 14 0; #X connect 19 0 1 0; From 4dca787381b0503adaca867a1f1f07f07fe0b97c Mon Sep 17 00:00:00 2001 From: porres Date: Thu, 30 Nov 2023 00:47:10 -0300 Subject: [PATCH 042/450] Update soundfiler-help.pd closing subpatch --- doc/5.reference/soundfiler-help.pd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/5.reference/soundfiler-help.pd b/doc/5.reference/soundfiler-help.pd index c3d8bdada..71bbfea42 100644 --- a/doc/5.reference/soundfiler-help.pd +++ b/doc/5.reference/soundfiler-help.pd @@ -63,7 +63,7 @@ #X text 29 422 The 'read' message takes a file to load and one or more arrays to load into (in the case the file has more than one channel). The number of channels of the soundfile need not match the number of arrays given to read (extras channels are dropped and unsupplied channels are zeroed out in the extra arrays)., f 72; #X text 577 243 Note that if no array name is given to read to \, no samples are read but you get the number of samples in the file on the left outlet and the info on the right outlet anyway., f 62; #X text 577 300 Also note that the number of channels is limited to 64 for both reading and writting., f 62; -#N canvas 101 118 1234 585 read-write-flags 1; +#N canvas 101 118 1234 585 read-write-flags 0; #X text 27 83 -resize (resizes arrays to the size of the sound file), f 62; #N canvas 0 22 450 300 (subpatch) 0; #X array array1 78003 float 2; From 0d0f968f07a5c8d3ec0dc4de132b329f07e2bd62 Mon Sep 17 00:00:00 2001 From: Lucas Cordiviola Date: Thu, 7 Dec 2023 01:05:13 -0300 Subject: [PATCH 043/450] html: correct file extension for 'deken-like' naming under macOS. (#2156) --- doc/1.manual/x4.htm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/1.manual/x4.htm b/doc/1.manual/x4.htm index 56c1ff0f6..90f6a00e0 100644 --- a/doc/1.manual/x4.htm +++ b/doc/1.manual/x4.htm @@ -195,13 +195,13 @@

4.1.2.1. Compiled objects:

‘’ ‘’ 32 -my_lib.darwin-fat-32.dylib +my_lib.darwin-fat-32.so ‘’ ‘’ 64 -my_lib.darwin-fat-64.dylib +my_lib.darwin-fat-64.so ‘’ @@ -213,13 +213,13 @@

4.1.2.1. Compiled objects:

‘’ ‘’ 32 -my_lib.darwin-ppc-32.dylib +my_lib.darwin-ppc-32.so ‘’ ‘’ 64 -my_lib.darwin-ppc-64.dylib +my_lib.darwin-ppc-64.so ‘’ @@ -231,13 +231,13 @@

4.1.2.1. Compiled objects:

‘’ ‘’ 32 -my_lib.darwin-i386-32.dylib +my_lib.darwin-i386-32.so ‘’ ‘’ 64 -my_lib.darwin-i386-64.dylib +my_lib.darwin-i386-64.so ‘’ @@ -249,13 +249,13 @@

4.1.2.1. Compiled objects:

‘’ ‘’ 32 -my_lib.darwin-amd64-32.dylib +my_lib.darwin-amd64-32.so ‘’ ‘’ 64 -my_lib.darwin-amd64-64.dylib +my_lib.darwin-amd64-64.so ‘’ @@ -267,13 +267,13 @@

4.1.2.1. Compiled objects:

‘’ ‘’ 32 -my_lib.darwin-arm64-32.dylib +my_lib.darwin-arm64-32.so ‘’ ‘’ 64 -my_lib.darwin-arm64-64.dylib +my_lib.darwin-arm64-64.so Windows From fe5109b00b0caba39f33810d8a49aeee2cb3b4da Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Fri, 8 Dec 2023 22:13:40 +0100 Subject: [PATCH 044/450] fix out-of-bounds memory access in list_store_delete thanks to Timothy Schoen! --- src/x_list.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/x_list.c b/src/x_list.c index f0d84968d..581da237e 100644 --- a/src/x_list.c +++ b/src/x_list.c @@ -507,7 +507,7 @@ static void list_store_delete(t_list_store *x, t_floatarg f1, t_floatarg f2) } /* shift elements (after the deleted elements) to the left */ memmove(x->x_alist.l_vec + index, x->x_alist.l_vec + index + n, - (x->x_alist.l_n - index) * sizeof(*x->x_alist.l_vec)); + (x->x_alist.l_n - index - n) * sizeof(*x->x_alist.l_vec)); /* shrink memory */ if (!(x->x_alist.l_vec = (t_listelem *)resizebytes(x->x_alist.l_vec, (x->x_alist.l_n) * sizeof(*x->x_alist.l_vec), From 917c777092335e34c842d206e6d79358bb2c485e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 14 Dec 2023 22:03:05 +0100 Subject: [PATCH 045/450] Various minor improvements to [file] - Closes: https://github.com/pure-data/pure-data/issues/1665 - Closes: https://github.com/pure-data/pure-data/issues/2008 - Closes: https://github.com/pure-data/pure-data/issues/2080 --- src/x_file.c | 102 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 77 insertions(+), 25 deletions(-) diff --git a/src/x_file.c b/src/x_file.c index b014b7caa..6a0bb2e90 100644 --- a/src/x_file.c +++ b/src/x_file.c @@ -442,6 +442,25 @@ static int do_checkpathname(t_file_handle*x, const char*path) { return 0; } +t_canvas*do_getparentcanvas(t_file_handle*x, int parentlevel, int*effectivelevel) { + t_canvas *c = x->x_canvas; + int i, level = 0; + for (i = 0; i < parentlevel; i++) + { + while (!c->gl_env) /* back up to containing canvas or abstraction */ + c = c->gl_owner; + if (c->gl_owner) /* back up one more into an owner if any */ + { + c = c->gl_owner; + level++; + } + } + if(effectivelevel) + *effectivelevel = level; + return c; +} + + static int do_parse_creationmode(t_atom*ap) { const char*s; if(A_FLOAT==ap->a_type) @@ -588,6 +607,7 @@ static int file_handle_checkopen(t_file_handle*x, const char*cmd) { if(x->x_fd<0) { if(!cmd)cmd=(x->x_mode)?"write":"read"; pd_error(x, "'%s' without prior 'open'", cmd); + outlet_bang(x->x_infoout); return 0; } return 1; @@ -1152,13 +1172,16 @@ static void file_glob_symbol(t_file_handle*x, t_symbol*spattern) { /* ================ [file which] ====================== */ -static void file_which_symbol(t_file_handle*x, t_symbol*s) { +static void file_which_doit(t_file_handle*x, t_symbol*s, int depth) { + char pathname[MAXPDSTRING]; + t_canvas*c = do_getparentcanvas(x, depth, 0); + do_expandunbash(s->s_name, pathname, MAXPDSTRING); /* LATER we might output directories as well,... */ int isdir=0; t_atom outv[2]; char dirresult[MAXPDSTRING], *nameresult; - int fd = canvas_open(x->x_canvas, - s->s_name, "", + int fd = canvas_open(c, + pathname, "", dirresult, &nameresult, MAXPDSTRING, 1); if(fd>=0) { @@ -1173,12 +1196,47 @@ static void file_which_symbol(t_file_handle*x, t_symbol*s) { } } +static void file_which_list(t_file_handle*x, t_symbol*s, int argc, t_atom*argv) { + const char*msg = s?s->s_name:""; + int parentlevel = 0; + t_symbol*path; + + switch(argc) { + default: goto fail; + case 1: + switch(argv->a_type) { + case(A_SYMBOL): + path = atom_getsymbol(argv); + break; + default: goto fail; + } + break; + case 2: + if(A_SYMBOL == argv[0].a_type && A_FLOAT == argv[1].a_type) { + path = atom_getsymbol(argv+0); + parentlevel = (int)atom_getfloat(argv+1); + break; + } + goto fail; + } + + if(path) { + file_which_doit(x, path, parentlevel); + return; + } + + fail: + pd_error(x, "bad arguments for %s%smessage to object 'file which'", msg, *msg?" ":""); +} + + /* ================ [file patchpath] ====================== */ static void file_patchpath_list(t_file_handle*x, t_symbol*s, int argc, t_atom*argv) { - t_canvas *c = x->x_canvas; - const char*pathname = 0; - int i, parentlevel = 0, effectivelevel = 0; + const char*msg = s?s->s_name:""; + t_canvas *c; + const char*path = 0; + int parentlevel = 0, effectivelevel = 0; switch(argc) { default: goto fail; @@ -1186,7 +1244,7 @@ static void file_patchpath_list(t_file_handle*x, t_symbol*s, int argc, t_atom*ar case 1: switch(argv->a_type) { case(A_SYMBOL): - pathname = atom_getsymbol(argv)->s_name; + path = atom_getsymbol(argv)->s_name; break; case (A_FLOAT): parentlevel = (int)atom_getfloat(argv); @@ -1196,25 +1254,18 @@ static void file_patchpath_list(t_file_handle*x, t_symbol*s, int argc, t_atom*ar break; case 2: if(A_SYMBOL == argv[0].a_type && A_FLOAT == argv[1].a_type) { - pathname = atom_getsymbol(argv+0)->s_name; + path = atom_getsymbol(argv+0)->s_name; parentlevel = (int)atom_getfloat(argv+1); break; } goto fail; } - for (i = 0; i < parentlevel; i++) - { - while (!c->gl_env) /* back up to containing canvas or abstraction */ - c = c->gl_owner; - if (c->gl_owner) /* back up one more into an owner if any */ - { - c = c->gl_owner; - effectivelevel++; - } - } - if (pathname) + c = do_getparentcanvas(x, parentlevel, &effectivelevel); + if (path) { + char pathname[MAXPDSTRING-1]; + do_expandunbash(path, pathname, MAXPDSTRING-1); if(sys_isabsolutepath(pathname)) { s = gensym(pathname); @@ -1234,7 +1285,7 @@ static void file_patchpath_list(t_file_handle*x, t_symbol*s, int argc, t_atom*ar return; fail: - pd_error(x, "bad arguments for message to object 'file patchpath'"); + pd_error(x, "bad arguments for %s%smessage to object 'file patchpath'", msg, *msg?" ":""); } /* ================ [file mkdir] ====================== */ @@ -1327,7 +1378,6 @@ static int file_do_delete_recursive(const char*pathname) { static void file_delete_symbol(t_file_handle*x, t_symbol*path) { char pathname[MAXPDSTRING]; - do_expandunbash(path->s_name, pathname, MAXPDSTRING); if(sys_remove(pathname)) { @@ -1342,7 +1392,6 @@ static void file_delete_symbol(t_file_handle*x, t_symbol*path) { static void file_delete_recursive(t_file_handle*x, t_symbol*path) { char pathname[MAXPDSTRING]; - do_expandunbash(path->s_name, pathname, MAXPDSTRING); if(file_do_delete_recursive(pathname)) { @@ -1507,13 +1556,15 @@ static void file_cwd_bang(t_file_handle*x) { } } static void file_cwd_symbol(t_file_handle*x, t_symbol*path) { - if(!sys_chdir(path->s_name)) { + char pathname[MAXPDSTRING]; + do_expandunbash(path->s_name, pathname, MAXPDSTRING); + if(!sys_chdir(pathname)) { file_cwd_bang(x); } else { if(x->x_verbose) { char buf[MAXPDSTRING]; pd_error(x, "could not change the working directory to '%s': %s", - path->s_name, do_errmsg(buf, MAXPDSTRING)); + pathname, do_errmsg(buf, MAXPDSTRING)); } outlet_bang(x->x_infoout); } @@ -1868,7 +1919,8 @@ void x_file_setup(void) class_addlist(file_handle_class, file_handle_list); /* [file which] */ - file_which_class = file_class_new("file which", file_which_new, 0, file_which_symbol, VERBOSE); + file_which_class = file_class_new("file which", file_which_new, 0, 0, VERBOSE); + class_addlist(file_which_class, file_which_list); /* [file patchpath] */ file_patchpath_class = file_class_new("file patchpath", file_patchpath_new, 0, 0, VERBOSE); From 470a96dec7341c92be130f160f2d32ef1256a641 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 14 Dec 2023 22:27:30 +0100 Subject: [PATCH 046/450] remember last successfull dir for [savepenal] and [openpanel] Closes: https://github.com/pure-data/pure-data/issues/1018 later check the redundancy of ::pd::private::lastopendir vs ::fileopendir for now the assumption is: - ::pd::private::lastopendir is a private variable for the pdtk_openpanel proc - ::fileopendir is a global variable for whatever --- tcl/wheredoesthisgo.tcl | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/tcl/wheredoesthisgo.tcl b/tcl/wheredoesthisgo.tcl index 4c064f890..0940a94ca 100644 --- a/tcl/wheredoesthisgo.tcl +++ b/tcl/wheredoesthisgo.tcl @@ -1,6 +1,13 @@ package provide wheredoesthisgo 0.1 +namespace eval ::pd::private:: { + # these are some private variables for which there is + # no more specific namespace yet... + variable lastsavedir "" + variable lastopendir "" +} + # a place to temporarily store things until they find a home or go away proc open_file {filename} { @@ -30,12 +37,16 @@ proc open_file {filename} { # procs for panels (openpanel, savepanel) proc pdtk_openpanel {target localdir {mode 0}} { - if {! [file isdirectory $localdir]} { + if { $::pd::private::lastopendir == "" } { if { ! [file isdirectory $::fileopendir]} { set ::fileopendir $::env(HOME) } - set localdir $::fileopendir + set ::pd::private::lastopendir $::fileopendir } + if {! [file isdirectory $localdir]} { + set localdir $::pd::private::lastopendir + } + # 0: file, 1: directory, 2: multiple files switch $mode { 0 { set result [tk_getOpenFile -initialdir $localdir] } @@ -46,28 +57,36 @@ proc pdtk_openpanel {target localdir {mode 0}} { if {$result ne ""} { if { $mode == 2 } { # 'result' is a list - set ::fileopendir [file dirname [lindex $result 0]] + set ::pd::private::lastopendir [file dirname [lindex $result 0]] + set ::fileopendir $::pd::private::lastopendir set args {} foreach path $result { lappend args [enquote_path $path] } pdsend "$target callback [join $args]" } else { - set ::fileopendir [expr {$mode == 0 ? [file dirname $result] : $result}] + set ::pd::private::lastopendir [expr {$mode == 0 ? [file dirname $result] : $result}] + set ::fileopendir $::pd::private::lastopendir pdsend "$target callback [enquote_path $result]" } } } + proc pdtk_savepanel {target localdir} { - if {! [file isdirectory $localdir]} { + if { $::pd::private::lastsavedir == "" } { if { ! [file isdirectory $::filenewdir]} { set ::filenewdir $::env(HOME) } - set localdir $::filenewdir + set ::pd::private::lastsavedir $::filenewdir } + if {! [file isdirectory $localdir]} { + set localdir $::pd::private::lastsavedir + } + set filename [tk_getSaveFile -initialdir $localdir] if {$filename ne ""} { + set ::pd::private::lastsavedir [file dirname $filename] pdsend "$target callback [enquote_path $filename]" } } From ec0fb4db4629f04095701894e8124f144e9f330e Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Mon, 11 Dec 2023 02:05:51 +0100 Subject: [PATCH 047/450] Add pd_[v]snprintf() functions as a safe and cross-platform alternative to [v]snprintf() The functions are declared in 'm_private_utils.h' and defined in 's_print.c' For a detailed explanation, see the comment above pd_vsnprintf() in 's_printf.c'. --- extra/pd~/pd~.c | 40 ++++++++++++++---------- src/g_all_guis.c | 6 ++-- src/g_canvas.c | 12 ++++---- src/m_binbuf.c | 8 ++--- src/m_class.c | 2 +- src/m_obj.c | 5 +-- src/m_private_utils.h | 7 ----- src/s_audio_mmio.c | 4 +-- src/s_audio_pa.c | 8 ++--- src/s_file.c | 28 ++++++++--------- src/s_inter.c | 21 ++++++------- src/s_loader.c | 8 ++--- src/s_print.c | 72 +++++++++++++++++++++++++++++++++++++------ src/s_stuff.h | 4 +++ src/x_file.c | 9 +++--- src/x_gui.c | 3 +- 16 files changed, 147 insertions(+), 90 deletions(-) diff --git a/extra/pd~/pd~.c b/extra/pd~/pd~.c index 36a872442..e4a1bcced 100644 --- a/extra/pd~/pd~.c +++ b/extra/pd~/pd~.c @@ -34,7 +34,6 @@ typedef int socklen_t; #ifdef _MSC_VER #pragma warning (disable: 4305 4244) -#define snprintf _snprintf #define stat _stat #endif @@ -87,6 +86,13 @@ void critical_exit(int z); #include "s_stuff.h" static t_class *pd_tilde_class; #define PDERROR pd_error(x, +#else +#ifdef _MSC_VER +/* Sorry, MSP! */ +#define pd_snprintf _snprintf +#else +#define pd_snprintf snprintf +#endif #endif #if defined(__x86_64__) || defined(_M_X64) @@ -559,15 +565,15 @@ static void pd_tilde_dostart(t_pd_tilde *x, const char *pddir, sprintf(ninsigstr, "%d", ninsig); sprintf(noutsigstr, "%d", noutsig); sprintf(sampleratestr, "%f", (float)samplerate); - snprintf(tmpbuf, MAXPDSTRING, "%s/bin/pd" EXTENT, pddir); + pd_snprintf(tmpbuf, MAXPDSTRING, "%s/bin/pd" EXTENT, pddir); sys_bashfilename(tmpbuf, pdexecbuf); if (stat(pdexecbuf, &statbuf) < 0) { - snprintf(tmpbuf, MAXPDSTRING, "%s/../../../bin/pd" EXTENT, pddir); + pd_snprintf(tmpbuf, MAXPDSTRING, "%s/../../../bin/pd" EXTENT, pddir); sys_bashfilename(tmpbuf, pdexecbuf); if (stat(pdexecbuf, &statbuf) < 0) { - snprintf(tmpbuf, MAXPDSTRING, "%s/pd" EXTENT, pddir); + pd_snprintf(tmpbuf, MAXPDSTRING, "%s/pd" EXTENT, pddir); sys_bashfilename(tmpbuf, pdexecbuf); if (stat(pdexecbuf, &statbuf) < 0) { @@ -579,7 +585,7 @@ static void pd_tilde_dostart(t_pd_tilde *x, const char *pddir, /* check that the scheduler dynamic linkable exists w either suffix */ for(dllextent=get_dllextent(); *dllextent; dllextent++) { - snprintf(tmpbuf, MAXPDSTRING, "%s/pdsched%s", schedlibdir, *dllextent); + pd_snprintf(tmpbuf, MAXPDSTRING, "%s/pdsched%s", schedlibdir, *dllextent); sys_bashfilename(tmpbuf, schedbuf); if (stat(schedbuf, &statbuf) >= 0) goto gotone; @@ -589,33 +595,33 @@ static void pd_tilde_dostart(t_pd_tilde *x, const char *pddir, gotone: /* but the sub-process wants the scheduler name without the suffix */ - snprintf(tmpbuf, MAXPDSTRING, "%s/pdsched", schedlibdir); + pd_snprintf(tmpbuf, MAXPDSTRING, "%s/pdsched", schedlibdir); sys_bashfilename(tmpbuf, schedbuf); - /* was: snprintf(cmdbuf, MAXPDSTRING, + /* was: pd_snprintf(cmdbuf, MAXPDSTRING, "'%s' -schedlib '%s'/pdsched -path '%s' -inchannels %d -outchannels %d -r \ %g %s\n", pdexecbuf, schedlibdir, patchdir, ninsig, noutsig, samplerate, pdargs); */ - snprintf(cmdbuf, MAXPDSTRING, "%s", pdexecbuf); + pd_snprintf(cmdbuf, MAXPDSTRING, "%s", pdexecbuf); #ifdef _WIN32 /* _spawnv wants the command without quotes as in cmdbuf above; but in the argument vector paths must be quoted if they contain whitespace */ if (strchr(pdexecbuf, ' ') && *pdexecbuf != '"' && *pdexecbuf != '\'') { - if (snprintf(tmpbuf, MAXPDSTRING, "\"%s\"", pdexecbuf) >= 0) - snprintf(pdexecbuf, MAXPDSTRING, "%s", tmpbuf); + if (pd_snprintf(tmpbuf, MAXPDSTRING, "\"%s\"", pdexecbuf) >= 0) + pd_snprintf(pdexecbuf, MAXPDSTRING, "%s", tmpbuf); } if (strchr(schedbuf, ' ') && *schedbuf != '"' && *schedbuf != '\'') { - if (snprintf(tmpbuf, MAXPDSTRING, "\"%s\"", schedbuf) >= 0) - snprintf(schedbuf, MAXPDSTRING, "%s", tmpbuf); + if (pd_snprintf(tmpbuf, MAXPDSTRING, "\"%s\"", schedbuf) >= 0) + pd_snprintf(schedbuf, MAXPDSTRING, "%s", tmpbuf); } if (strchr(patchdir_c, ' ') && *patchdir_c != '"' && *patchdir_c != '\'') - snprintf(patchdir, MAXPDSTRING, "\"%s\"", patchdir_c); + pd_snprintf(patchdir, MAXPDSTRING, "\"%s\"", patchdir_c); else #endif /* _WIN32 */ - snprintf(patchdir, MAXPDSTRING, "%s", patchdir_c); + pd_snprintf(patchdir, MAXPDSTRING, "%s", patchdir_c); execargv[0] = pdexecbuf; execargv[1] = "-schedlib"; @@ -636,7 +642,7 @@ static void pd_tilde_dostart(t_pd_tilde *x, const char *pddir, { #ifdef PD if (argv[i].a_type == A_SYMBOL) - snprintf(tmpbuf, MAXPDSTRING, "%s", argv[i].a_w.w_symbol->s_name); + pd_snprintf(tmpbuf, MAXPDSTRING, "%s", argv[i].a_w.w_symbol->s_name); else if (argv[i].a_type == A_FLOAT) sprintf(tmpbuf, "%f", (float)argv[i].a_w.w_float); #endif @@ -657,8 +663,8 @@ static void pd_tilde_dostart(t_pd_tilde *x, const char *pddir, if (strchr(tmpbuf, ' ') && *tmpbuf != '"' && *tmpbuf != '\'') { char nutherbuf[MAXPDSTRING]; - snprintf(nutherbuf, MAXPDSTRING, "\"%s\"", tmpbuf); - snprintf(tmpbuf, MAXPDSTRING, "%s", nutherbuf); + pd_snprintf(nutherbuf, MAXPDSTRING, "\"%s\"", tmpbuf); + pd_snprintf(tmpbuf, MAXPDSTRING, "%s", nutherbuf); } #endif /* _WIN32 */ execargv[FIXEDARG+i] = malloc(strlen(tmpbuf) + 1); diff --git a/src/g_all_guis.c b/src/g_all_guis.c index 1de66d752..e915e2a71 100644 --- a/src/g_all_guis.c +++ b/src/g_all_guis.c @@ -311,9 +311,9 @@ static t_symbol* color2symbol(int col) { { /* compatibility with Pd<=0.47: saves colors as numbers with limited resolution */ int col2 = -1 - (((0xfc0000 & col) >> 6)|((0xfc00 & col) >> 4)|((0xfc & col) >> 2)); - snprintf(colname, MAXPDSTRING-1, "%d", col2); + pd_snprintf(colname, MAXPDSTRING-1, "%d", col2); } else { - snprintf(colname, MAXPDSTRING-1, "#%06x", col); + pd_snprintf(colname, MAXPDSTRING-1, "#%06x", col); } return gensym(colname); } @@ -822,7 +822,7 @@ int iemgui_dialog(t_iemgui *iemgui, t_symbol **srl, int argc, t_atom *argv) void iemgui_setdialogatoms(t_iemgui *iemgui, int argc, t_atom*argv) { -#define SETCOLOR(a, col) do {char color[MAXPDSTRING]; snprintf(color, MAXPDSTRING-1, "#%06x", 0xffffff & col); color[MAXPDSTRING-1] = 0; SETSYMBOL(a, gensym(color));} while(0) +#define SETCOLOR(a, col) do {char color[MAXPDSTRING]; pd_snprintf(color, MAXPDSTRING-1, "#%06x", 0xffffff & col); color[MAXPDSTRING-1] = 0; SETSYMBOL(a, gensym(color));} while(0) t_float zoom = iemgui->x_glist->gl_zoom; t_symbol *srl[3]; int for_undo = 1; diff --git a/src/g_canvas.c b/src/g_canvas.c index a948ed38e..4b5e1a2af 100644 --- a/src/g_canvas.c +++ b/src/g_canvas.c @@ -687,7 +687,7 @@ static void canvas_dosetbounds(t_canvas *x, int x1, int y1, int x2, int y2) t_symbol *canvas_makebindsym(t_symbol *s) { char buf[MAXPDSTRING]; - snprintf(buf, MAXPDSTRING-1, "pd-%s", s->s_name); + pd_snprintf(buf, MAXPDSTRING-1, "pd-%s", s->s_name); buf[MAXPDSTRING-1] = 0; return (gensym(buf)); } @@ -1669,7 +1669,7 @@ static void canvas_path(t_canvas *x, t_canvasenvironment *e, const char *path) /* check whether the given subdir is in one of the user search-paths */ for (nl=STUFF->st_searchpath; nl; nl=nl->nl_next) { - snprintf(strbuf, MAXPDSTRING-1, "%s/%s/", nl->nl_string, path); + pd_snprintf(strbuf, MAXPDSTRING-1, "%s/%s/", nl->nl_string, path); strbuf[MAXPDSTRING-1]=0; if (check_exists(strbuf)) { @@ -1681,7 +1681,7 @@ static void canvas_path(t_canvas *x, t_canvasenvironment *e, const char *path) /* check whether the given subdir is in one of the standard-paths */ for (nl=STUFF->st_staticpath; nl; nl=nl->nl_next) { - snprintf(strbuf, MAXPDSTRING-1, "%s/%s/", nl->nl_string, path); + pd_snprintf(strbuf, MAXPDSTRING-1, "%s/%s/", nl->nl_string, path); strbuf[MAXPDSTRING-1]=0; if (check_exists(strbuf)) { @@ -1715,7 +1715,7 @@ static void canvas_lib(t_canvas *x, t_canvasenvironment *e, const char *lib) /* check whether the given lib is located in one of the user search-paths */ for (nl=STUFF->st_searchpath; nl; nl=nl->nl_next) { - snprintf(strbuf, MAXPDSTRING-1, "%s/%s", nl->nl_string, lib); + pd_snprintf(strbuf, MAXPDSTRING-1, "%s/%s", nl->nl_string, lib); strbuf[MAXPDSTRING-1]=0; if (sys_load_lib(x, strbuf)) return; @@ -1747,7 +1747,7 @@ static void canvas_stdpath(t_canvasenvironment *e, const char *stdpath) /* check whether the given subdir is in one of the standard-paths */ for (nl=STUFF->st_staticpath; nl; nl=nl->nl_next) { - snprintf(strbuf, MAXPDSTRING-1, "%s/%s/", nl->nl_string, stdpath); + pd_snprintf(strbuf, MAXPDSTRING-1, "%s/%s/", nl->nl_string, stdpath); strbuf[MAXPDSTRING-1]=0; if (check_exists(strbuf)) { @@ -1778,7 +1778,7 @@ static void canvas_stdlib(t_canvasenvironment *e, const char *stdlib) /* check whether the given lib is located in one of the standard-paths */ for (nl=STUFF->st_staticpath; nl; nl=nl->nl_next) { - snprintf(strbuf, MAXPDSTRING-1, "%s/%s", nl->nl_string, stdlib); + pd_snprintf(strbuf, MAXPDSTRING-1, "%s/%s", nl->nl_string, stdlib); strbuf[MAXPDSTRING-1]=0; if (sys_load_lib(0, strbuf)) return; diff --git a/src/m_binbuf.c b/src/m_binbuf.c index e1e54c49b..e63744782 100644 --- a/src/m_binbuf.c +++ b/src/m_binbuf.c @@ -796,9 +796,9 @@ int binbuf_read(t_binbuf *b, const char *filename, const char *dirname, int crfl char namebuf[MAXPDSTRING]; if (*dirname) - snprintf(namebuf, MAXPDSTRING-1, "%s/%s", dirname, filename); + pd_snprintf(namebuf, MAXPDSTRING-1, "%s/%s", dirname, filename); else - snprintf(namebuf, MAXPDSTRING-1, "%s", filename); + pd_snprintf(namebuf, MAXPDSTRING-1, "%s", filename); namebuf[MAXPDSTRING-1] = 0; if ((fd = sys_open(namebuf, 0)) < 0) @@ -893,9 +893,9 @@ int binbuf_write(const t_binbuf *x, const char *filename, const char *dir, int c int indx; if (*dir) - snprintf(fbuf, MAXPDSTRING-1, "%s/%s", dir, filename); + pd_snprintf(fbuf, MAXPDSTRING-1, "%s/%s", dir, filename); else - snprintf(fbuf, MAXPDSTRING-1, "%s", filename); + pd_snprintf(fbuf, MAXPDSTRING-1, "%s", filename); fbuf[MAXPDSTRING-1] = 0; if (!strcmp(filename + strlen(filename) - 4, ".pat") || diff --git a/src/m_class.c b/src/m_class.c index 9e98c1fa2..6a1a3dda3 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -123,7 +123,7 @@ static void class_addmethodtolist(t_class *c, t_methodentry **methodlist, if (sel && (*methodlist)[i].me_name == sel) { char nbuf[80]; - snprintf(nbuf, 80, "%s_aliased", sel->s_name); + pd_snprintf(nbuf, 80, "%s_aliased", sel->s_name); nbuf[79] = 0; (*methodlist)[i].me_name = dogensym(nbuf, 0, pdinstance); if (c == pd_objectmaker) diff --git a/src/m_obj.c b/src/m_obj.c index d3259da06..bbfc16d71 100644 --- a/src/m_obj.c +++ b/src/m_obj.c @@ -8,6 +8,7 @@ behavior for "gobjs" appears at the end of this file. */ #include "m_pd.h" #include "m_imp.h" +#include "s_stuff.h" #include #include "m_private_utils.h" @@ -400,14 +401,14 @@ static void backtracer_printmsg(t_pd *who, t_symbol *s, { char msgbuf[104]; int nprint = (argc > NARGS ? NARGS : argc), nchar, i; - snprintf(msgbuf, 100, "%s: %s ", class_getname(*who), s->s_name); + pd_snprintf(msgbuf, 100, "%s: %s ", class_getname(*who), s->s_name); nchar = strlen(msgbuf); for (i = 0; i < nprint && nchar < 100; i++) if (nchar < 100) { char buf[100]; atom_string(&argv[i], buf, 100); - snprintf(msgbuf + nchar, 100-nchar, " %s", buf); + pd_snprintf(msgbuf + nchar, 100-nchar, " %s", buf); nchar = strlen(msgbuf); } if (argc > nprint && nchar < 100) diff --git a/src/m_private_utils.h b/src/m_private_utils.h index c9ace345e..589791f68 100644 --- a/src/m_private_utils.h +++ b/src/m_private_utils.h @@ -107,11 +107,4 @@ # endif #endif - -/* -------------------------MSVC compat defines --------------------- */ -#ifdef _MSC_VER -# define snprintf _snprintf -#endif - - #endif /* M_PRIVATE_UTILS_H */ diff --git a/src/s_audio_mmio.c b/src/s_audio_mmio.c index e30b76925..c61ae9449 100644 --- a/src/s_audio_mmio.c +++ b/src/s_audio_mmio.c @@ -784,7 +784,7 @@ void mmio_getdevs(char *indevlist, int *nindevs, wRtn = waveInGetDevCaps(i, (LPWAVEINCAPS) &wicap, sizeof(wicap)); if (!wRtn) u8_nativetoutf8(utf8device, MAXPDSTRING, wicap.szPname, -1); - _snprintf(indevlist + i * devdescsize, devdescsize, "%s", + pd_snprintf(indevlist + i * devdescsize, devdescsize, "%s", (wRtn ? "???" : utf8device)); indevlist[(i+1) * devdescsize - 1] = 0; } @@ -799,7 +799,7 @@ void mmio_getdevs(char *indevlist, int *nindevs, wRtn = waveOutGetDevCaps(i, (LPWAVEOUTCAPS) &wocap, sizeof(wocap)); if (!wRtn) u8_nativetoutf8(utf8device, MAXPDSTRING, wocap.szPname, -1); - _snprintf(outdevlist + i * devdescsize, devdescsize, "%s", + pd_snprintf(outdevlist + i * devdescsize, devdescsize, "%s", (wRtn ? "???" : utf8device)); outdevlist[(i+1) * devdescsize - 1] = 0; } diff --git a/src/s_audio_pa.c b/src/s_audio_pa.c index 7a3ec03f3..3424ae80f 100644 --- a/src/s_audio_pa.c +++ b/src/s_audio_pa.c @@ -709,10 +709,10 @@ static char*pdi2devname(const PaDeviceInfo*pdi, char*buf, size_t bufsize) { api = Pa_GetHostApiInfo(pdi->hostApi); if(api) - snprintf(utf8device, MAXPDSTRING, "%s: %s", + pd_snprintf(utf8device, MAXPDSTRING, "%s: %s", api->name, pdi->name); else - snprintf(utf8device, MAXPDSTRING, "%s", + pd_snprintf(utf8device, MAXPDSTRING, "%s", pdi->name); u8_nativetoutf8(buf, bufsize, utf8device, MAXPDSTRING); @@ -738,13 +738,13 @@ void pa_getdevs(char *indevlist, int *nindevs, if (pdi->maxInputChannels > 0 && nin < maxndev) { /* LATER figure out how to get API name correctly */ - snprintf(indevlist + nin * devdescsize, devdescsize, + pd_snprintf(indevlist + nin * devdescsize, devdescsize, "%s", devname); nin++; } if (pdi->maxOutputChannels > 0 && nout < maxndev) { - snprintf(outdevlist + nout * devdescsize, devdescsize, + pd_snprintf(outdevlist + nout * devdescsize, devdescsize, "%s", devname); nout++; } diff --git a/src/s_file.c b/src/s_file.c index d42cb2fc8..1dcc64674 100644 --- a/src/s_file.c +++ b/src/s_file.c @@ -141,9 +141,9 @@ static int preferences_getloadpath(char *dst, size_t size) char user_prefs[MAXPDSTRING]; char *homedir = getenv("HOME"); struct stat statbuf; - snprintf(embedded_prefs, MAXPDSTRING, "%s/../org.puredata.pd", + pd_snprintf(embedded_prefs, MAXPDSTRING, "%s/../org.puredata.pd", sys_libdir->s_name); - snprintf(user_prefs, MAXPDSTRING, + pd_snprintf(user_prefs, MAXPDSTRING, "%s/Library/Preferences/org.puredata.pd.plist", homedir); if (stat(user_prefs, &statbuf) == 0) { @@ -161,7 +161,7 @@ static int preferences_getloadpath(char *dst, size_t size) static void preferences_getsavepath(char *dst, size_t size) { char user_prefs[MAXPDSTRING]; - snprintf(user_prefs, MAXPDSTRING, + pd_snprintf(user_prefs, MAXPDSTRING, "%s/Library/Preferences/org.puredata.pd.plist", getenv("HOME")); strncpy(dst, user_prefs, size); } @@ -326,10 +326,10 @@ static int sys_getpreference(const char *key, char *value, int size) char path[MAXPDSTRING]; int embedded = preferences_getloadpath(path, MAXPDSTRING); if (embedded) - snprintf(cmdbuf, 256, "defaults read %s %s 2> /dev/null\n", + pd_snprintf(cmdbuf, 256, "defaults read %s %s 2> /dev/null\n", path, key); else - snprintf(cmdbuf, 256, "defaults read org.puredata.pd %s 2> /dev/null\n", + pd_snprintf(cmdbuf, 256, "defaults read org.puredata.pd %s 2> /dev/null\n", key); FILE *fp = popen(cmdbuf, "r"); while (nread < size) @@ -373,7 +373,7 @@ static void sys_putpreference(const char *key, const char *value) else { /* fallback to defaults command */ char cmdbuf[MAXPDSTRING]; - snprintf(cmdbuf, MAXPDSTRING, + pd_snprintf(cmdbuf, MAXPDSTRING, "defaults write org.puredata.pd %s \"%s\" 2> /dev/null\n", key, value); system(cmdbuf); } @@ -410,15 +410,15 @@ static void sys_initsavepreferences(void) { for (j = 0; j < maxnum[i]; j++) { - snprintf(buf, sizeof(buf), "%sdev%d", key[i], j + 1); - snprintf(devname, sizeof(devname), "%sdevname%d", key[i], j + 1); + pd_snprintf(buf, sizeof(buf), "%sdev%d", key[i], j + 1); + pd_snprintf(devname, sizeof(devname), "%sdevname%d", key[i], j + 1); if (!sys_deletepreference(buf) || !sys_deletepreference(devname)) break; } } for (i = 0; ; i++) { - snprintf(buf, sizeof(buf), "path%d", i + 1); + pd_snprintf(buf, sizeof(buf), "path%d", i + 1); if (!sys_deletepreference(buf)) break; } @@ -515,9 +515,9 @@ static void sys_initloadpreferences(void) char default_prefs_file[MAXPDSTRING]; struct stat statbuf; - snprintf(default_prefs_file, MAXPDSTRING, "%s/default.pdsettings", + pd_snprintf(default_prefs_file, MAXPDSTRING, "%s/default.pdsettings", sys_libdir->s_name); - snprintf(user_prefs_file, MAXPDSTRING, "%s/.pdsettings", + pd_snprintf(user_prefs_file, MAXPDSTRING, "%s/.pdsettings", (homedir ? homedir : ".")); if (stat(user_prefs_file, &statbuf) == 0) strncpy(filenamebuf, user_prefs_file, MAXPDSTRING); @@ -546,7 +546,7 @@ static void sys_initsavepreferences(void) if (!homedir) return; - snprintf(filenamebuf, MAXPDSTRING, "%s/.pdsettings", homedir); + pd_snprintf(filenamebuf, MAXPDSTRING, "%s/.pdsettings", homedir); filenamebuf[MAXPDSTRING-1] = 0; sys_initsavepreferences_file(filenamebuf); } @@ -891,7 +891,7 @@ void glob_forgetpreferences(t_pd *dummy) char user_prefs_file[MAXPDSTRING]; /* user prefs file */ const char *homedir = getenv("HOME"); struct stat statbuf; - snprintf(user_prefs_file, MAXPDSTRING, "%s/.pdsettings", + pd_snprintf(user_prefs_file, MAXPDSTRING, "%s/.pdsettings", (homedir ? homedir : ".")); user_prefs_file[MAXPDSTRING-1] = 0; if (stat(user_prefs_file, &statbuf) != 0) { @@ -908,7 +908,7 @@ void glob_forgetpreferences(t_pd *dummy) if (!sys_getpreference("audioapi", cmdbuf, MAXPDSTRING)) post("no Pd settings to clear"), warn = 0; /* do it anyhow, why not... */ - snprintf(cmdbuf, MAXPDSTRING, + pd_snprintf(cmdbuf, MAXPDSTRING, "defaults delete org.puredata.pd 2> /dev/null\n"); if (system(cmdbuf) && warn) post("failed to erase Pd settings"); diff --git a/src/s_inter.c b/src/s_inter.c index adf82f8a5..9b1cc2631 100644 --- a/src/s_inter.c +++ b/src/s_inter.c @@ -820,7 +820,7 @@ void sys_vgui(const char *fmt, ...) sys_trytogetmoreguibuf(INTER->i_guisize + GUI_ALLOCCHUNK); } va_start(ap, fmt); - msglen = vsnprintf( + msglen = pd_vsnprintf( INTER->i_guibuf + INTER->i_guihead, INTER->i_guisize - INTER->i_guihead, fmt, ap); @@ -828,19 +828,18 @@ void sys_vgui(const char *fmt, ...) if(msglen < 0) { fprintf(stderr, - "Pd: buffer space wasn't sufficient for long GUI string\n"); + "sys_vgui: pd_snprintf() failed with error code %d\n", errno); return; } if (msglen >= INTER->i_guisize - INTER->i_guihead) { int msglen2, newsize = INTER->i_guisize - + 1 - + (msglen > GUI_ALLOCCHUNK ? msglen : GUI_ALLOCCHUNK); + + (msglen < GUI_ALLOCCHUNK ? GUI_ALLOCCHUNK : msglen + 1); sys_trytogetmoreguibuf(newsize); va_start(ap, fmt); - msglen2 = vsnprintf( + msglen2 = pd_vsnprintf( INTER->i_guibuf + INTER->i_guihead, INTER->i_guisize - INTER->i_guihead, fmt, ap); @@ -1240,7 +1239,7 @@ static void init_deken_arch(void) cpu_v--) { static char cpuname[CPUNAME_SIZE+1]; - snprintf(cpuname, CPUNAME_SIZE, "armv%d%c", cpu_v, endianness); + pd_snprintf(cpuname, CPUNAME_SIZE, "armv%d%c", cpu_v, endianness); deken_CPU[n++] = gensym(cpuname)->s_name; } } @@ -1265,7 +1264,7 @@ const char*sys_deken_specifier(char*buf, size_t bufsize, int float_agnostic, int if ((cpu>=0) && (((!deken_CPU) || (cpu >= (sizeof(deken_CPU)/sizeof(*deken_CPU))) || (!deken_CPU[cpu])))) return 0; - snprintf(buf, bufsize-1, + pd_snprintf(buf, bufsize-1, "%s-%s-%d", deken_OS, (cpu<0)?"fat":deken_CPU[cpu], (int)((float_agnostic?0:8) * sizeof(t_float))); buf[bufsize-1] = 0; @@ -1544,13 +1543,13 @@ static int sys_do_startgui(const char *libdir) #else /* NOT _WIN32 */ /* fprintf(stderr, "%s\n", libdir); */ - snprintf(wishbuf, sizeof(wishbuf), "%s/" PDBINDIR WISH, libdir); + pd_snprintf(wishbuf, sizeof(wishbuf), "%s/" PDBINDIR WISH, libdir); sys_bashfilename(wishbuf, wishbuf); - snprintf(scriptbuf, sizeof(scriptbuf), "%s/" PDGUIDIR "/pd-gui.tcl", libdir); + pd_snprintf(scriptbuf, sizeof(scriptbuf), "%s/" PDGUIDIR "/pd-gui.tcl", libdir); sys_bashfilename(scriptbuf, scriptbuf); - snprintf(cmdbuf, sizeof(cmdbuf), "%s \"%s\" %d", /* quote script path! */ + pd_snprintf(cmdbuf, sizeof(cmdbuf), "%s \"%s\" %d", /* quote script path! */ WISH, scriptbuf, portno); memset(&si, 0, sizeof(si)); @@ -1637,7 +1636,7 @@ void sys_setrealtime(const char *libdir) if (sys_hipriority == -1) sys_hipriority = 1; - snprintf(cmdbuf, MAXPDSTRING, "%s/bin/pd-watchdog", libdir); + pd_snprintf(cmdbuf, MAXPDSTRING, "%s/bin/pd-watchdog", libdir); cmdbuf[MAXPDSTRING-1] = 0; if (sys_hipriority) { diff --git a/src/s_loader.c b/src/s_loader.c index 0aef37259..4ed19a095 100644 --- a/src/s_loader.c +++ b/src/s_loader.c @@ -129,7 +129,7 @@ static char*add_deken_extension(const char*systemext, int float_agnostic, int cp return 0; ext[MAXPDSTRING-1] = 0; - if(snprintf(ext, MAXPDSTRING-1, ".%s%s", extbuf, systemext) > 0) + if(pd_snprintf(ext, MAXPDSTRING-1, ".%s%s", extbuf, systemext) > 0) add_dllextension(ext); else { @@ -535,7 +535,7 @@ int sys_run_scheduler(const char *externalschedlibname, for(dllextent=sys_get_dllextensions(); *dllextent; dllextent++) { struct stat statbuf; - snprintf(filename, sizeof(filename), "%s%s", externalschedlibname, + pd_snprintf(filename, sizeof(filename), "%s%s", externalschedlibname, *dllextent); sys_bashfilename(filename, filename); if(!stat(filename, &statbuf)) @@ -604,7 +604,7 @@ static t_pd *do_create_abstraction(t_symbol*s, int argc, t_atom *argv) int fd = -1; t_pd *was = s__X.s_thing; - snprintf(classslashclass, MAXPDSTRING, "%s/%s", objectname, objectname); + pd_snprintf(classslashclass, MAXPDSTRING, "%s/%s", objectname, objectname); if ((fd = canvas_open(canvas, objectname, ".pd", dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0 || (fd = canvas_open(canvas, objectname, ".pat", @@ -640,7 +640,7 @@ static int sys_do_load_abs(t_canvas *canvas, const char *objectname, but we have already tried all paths */ if (!path) return (0); - snprintf(classslashclass, MAXPDSTRING, "%s/%s", objectname, objectname); + pd_snprintf(classslashclass, MAXPDSTRING, "%s/%s", objectname, objectname); if ((fd = sys_trytoopenone(path, objectname, ".pd", dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0 || (fd = sys_trytoopenone(path, objectname, ".pat", diff --git a/src/s_print.c b/src/s_print.c index 214e307fe..a48c9fe81 100644 --- a/src/s_print.c +++ b/src/s_print.c @@ -14,6 +14,58 @@ t_printhook sys_printhook = NULL; int sys_printtostderr; +#ifdef _WIN32 + + /* NB: Unlike vsnprintf(), _vsnprintf() does *not* null-terminate + the output if the resulting string is too large to fit into the buffer. + Also, it just returns -1 instead of the required number of bytes. + Strictly speaking, the UCRT in Windows 10 actually contains a standard- + conforming vsnprintf() function that is not just an alias for _vsnprintf(). + However, MinGW traditionally links against the old msvcrt.dll runtime library. + Recent versions of MinGW seem to have their own (standard-conformating) + implementation of vsnprintf(), but to ensure portability we rather use our + own implementation for all Windows builds. */ +int pd_vsnprintf(char *buf, size_t size, const char *fmt, va_list argptr) +{ + int ret = _vsnprintf(buf, size, fmt, argptr); + if (ret < 0) + { + /* null-terminate the buffer and get the required number of bytes. */ + ret = _vscprintf(fmt, argptr); + buf[size - 1] = '\0'; + } + return ret; +} + +int pd_snprintf(char *buf, size_t size, const char *fmt, ...) +{ + int ret; + va_list ap; + va_start(ap, fmt); + ret = pd_vsnprintf(buf, size, fmt, ap); + va_end(ap); + return ret; +} + +#else + +int pd_vsnprintf(char *buf, size_t size, const char *fmt, va_list argptr) +{ + return vsnprintf(buf, size, fmt, argptr); +} + +int pd_snprintf(char *buf, size_t size, const char *fmt, ...) +{ + int ret; + va_list ap; + va_start(ap, fmt); + ret = vsnprintf(buf, size, fmt, ap); + va_end(ap); + return ret; +} + +#endif + /* escape characters for tcl/tk */ char* pdgui_strnescape(char *dst, size_t dstlen, const char *src, size_t srclen) { @@ -76,7 +128,7 @@ static void doerror(const void *object, const char *s) // what about sys_printhook_error ? if (STUFF->st_printhook) { - snprintf(upbuf, MAXPDSTRING-1, "error: %s", s); + pd_snprintf(upbuf, MAXPDSTRING-1, "error: %s", s); (*STUFF->st_printhook)(upbuf); } else if (sys_printtostderr) @@ -108,7 +160,7 @@ static void dologpost(const void *object, const int level, const char *s) // what about sys_printhook_verbose ? if (STUFF->st_printhook) { - snprintf(upbuf, MAXPDSTRING-1, "verbose(%d): %s", level, s); + pd_snprintf(upbuf, MAXPDSTRING-1, "verbose(%d): %s", level, s); (*STUFF->st_printhook)(upbuf); } else if (sys_printtostderr) @@ -135,7 +187,7 @@ void logpost(const void *object, int level, const char *fmt, ...) va_list ap; if (level > PD_DEBUG && !sys_verbose) return; va_start(ap, fmt); - vsnprintf(buf, MAXPDSTRING-1, fmt, ap); + pd_vsnprintf(buf, MAXPDSTRING-1, fmt, ap); va_end(ap); strcat(buf, "\n"); @@ -148,7 +200,7 @@ void startlogpost(const void *object, const int level, const char *fmt, ...) va_list ap; if (level > PD_DEBUG && !sys_verbose) return; va_start(ap, fmt); - vsnprintf(buf, MAXPDSTRING-1, fmt, ap); + pd_vsnprintf(buf, MAXPDSTRING-1, fmt, ap); va_end(ap); dologpost(object, level, buf); @@ -162,7 +214,7 @@ void post(const char *fmt, ...) t_int arg[8]; int i; va_start(ap, fmt); - vsnprintf(buf, MAXPDSTRING-1, fmt, ap); + pd_vsnprintf(buf, MAXPDSTRING-1, fmt, ap); va_end(ap); strcat(buf, "\n"); @@ -176,7 +228,7 @@ void startpost(const char *fmt, ...) t_int arg[8]; int i; va_start(ap, fmt); - vsnprintf(buf, MAXPDSTRING-1, fmt, ap); + pd_vsnprintf(buf, MAXPDSTRING-1, fmt, ap); va_end(ap); dopost(buf); @@ -229,7 +281,7 @@ EXTERN void error(const char *fmt, ...) int i; va_start(ap, fmt); - vsnprintf(buf, MAXPDSTRING-1, fmt, ap); + pd_vsnprintf(buf, MAXPDSTRING-1, fmt, ap); va_end(ap); strcat(buf, "\n"); @@ -246,7 +298,7 @@ void verbose(int level, const char *fmt, ...) if (level > sys_verbose) return; va_start(ap, fmt); - vsnprintf(buf, MAXPDSTRING-1, fmt, ap); + pd_vsnprintf(buf, MAXPDSTRING-1, fmt, ap); va_end(ap); strcat(buf, "\n"); @@ -272,7 +324,7 @@ void pd_error(const void *object, const char *fmt, ...) static int saidit = 0; va_start(ap, fmt); - vsnprintf(buf, MAXPDSTRING-1, fmt, ap); + pd_vsnprintf(buf, MAXPDSTRING-1, fmt, ap); va_end(ap); strcat(buf, "\n"); @@ -329,7 +381,7 @@ void bug(const char *fmt, ...) t_int arg[8]; int i; va_start(ap, fmt); - vsnprintf(buf, MAXPDSTRING-1, fmt, ap); + pd_vsnprintf(buf, MAXPDSTRING-1, fmt, ap); va_end(ap); pd_error(0, "consistency check failed: %s", buf); diff --git a/src/s_stuff.h b/src/s_stuff.h index 0708d453c..d7681be4f 100644 --- a/src/s_stuff.h +++ b/src/s_stuff.h @@ -423,3 +423,7 @@ struct _instancestuff * 'srclen' can be 0, in which case the 'src' string must be 0-terminated. */ EXTERN char*pdgui_strnescape(char* dst, size_t dstlen, const char*src, size_t srclen); + +/* safe cross-platform alternatives to snprintf and vsnprintf. */ +EXTERN int pd_snprintf(char *buf, size_t size, const char *fmt, ...); +EXTERN int pd_vsnprintf(char *buf, size_t size, const char *fmt, va_list argptr); diff --git a/src/x_file.c b/src/x_file.c index b014b7caa..d02c55137 100644 --- a/src/x_file.c +++ b/src/x_file.c @@ -7,6 +7,7 @@ #include "m_pd.h" #include "g_canvas.h" +#include "s_stuff.h" #include "s_utf8.h" #include "m_private_utils.h" @@ -312,7 +313,7 @@ static const char*do_errmsg(char*buffer, size_t bufsize) { s=buffer + strlen(buffer)-1; while(('\r' == *s || '\n' == *s) && s>buffer) *s--=0; - snprintf(errcode, sizeof(errcode), " [%ld]", err); + pd_snprintf(errcode, sizeof(errcode), " [%ld]", err); errcode[sizeof(errcode)-1] = 0; strcat(buffer, errcode); return buffer; @@ -1220,7 +1221,7 @@ static void file_patchpath_list(t_file_handle*x, t_symbol*s, int argc, t_atom*ar s = gensym(pathname); } else { char buf[MAXPDSTRING]; - snprintf(buf, MAXPDSTRING, "%s/%s", + pd_snprintf(buf, MAXPDSTRING, "%s/%s", canvas_getdir(c)->s_name, pathname); buf[MAXPDSTRING-1] = 0; s = gensym(buf); @@ -1381,7 +1382,7 @@ static int file_do_copy(const char*source, const char*destination, int mode) { filename=source; else filename++; - snprintf(destfile, MAXPDSTRING, "%s/%s", destination, filename); + pd_snprintf(destfile, MAXPDSTRING, "%s/%s", destination, filename); dst = sys_open(destfile, O_WRONLY | O_CREAT | O_TRUNC, mode); } } @@ -1424,7 +1425,7 @@ static int file_do_move(const char*source, const char*destination, int mode) { filename=source; else filename++; - snprintf(destfile, MAXPDSTRING, "%s/%s", destination, filename); + pd_snprintf(destfile, MAXPDSTRING, "%s/%s", destination, filename); result = sys_rename(source, destfile); olderrno = errno; } diff --git a/src/x_gui.c b/src/x_gui.c index adb6e22e7..ac0094fcd 100644 --- a/src/x_gui.c +++ b/src/x_gui.c @@ -7,6 +7,7 @@ away before the panel does... */ #include "m_pd.h" #include "g_canvas.h" +#include "s_stuff.h" #include #include #ifdef HAVE_UNISTD_H @@ -489,7 +490,7 @@ static void pdcontrol_dir(t_pdcontrol *x, t_symbol *s, t_floatarg f) if (*s->s_name) { char buf[MAXPDSTRING]; - snprintf(buf, MAXPDSTRING, "%s/%s", + pd_snprintf(buf, MAXPDSTRING, "%s/%s", canvas_getdir(c)->s_name, s->s_name); buf[MAXPDSTRING-1] = 0; outlet_symbol(x->x_outlet, gensym(buf)); From 9524f8d1f80235748d33d343c96b1ffffa55d0c9 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 2 Nov 2021 21:20:14 +0100 Subject: [PATCH 048/450] make openpanel/savepanel dialogs window modal --- src/x_gui.c | 10 ++++++---- tcl/wheredoesthisgo.tcl | 15 +++++++++------ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/x_gui.c b/src/x_gui.c index adb6e22e7..e55a88382 100644 --- a/src/x_gui.c +++ b/src/x_gui.c @@ -240,6 +240,7 @@ static t_class *openpanel_class; typedef struct _openpanel { t_object x_obj; + t_canvas *x_canvas; t_symbol *x_s; int x_mode; /* 0: file, 1: folder, 2: multiple files */ } t_openpanel; @@ -252,6 +253,7 @@ static void *openpanel_new(t_floatarg mode) x->x_mode = (mode < 0 || mode > 2) ? 0 : mode; sprintf(buf, "d%lx", (t_int)x); x->x_s = gensym(buf); + x->x_canvas = canvas_getcurrent(); pd_bind(&x->x_obj.ob_pd, x->x_s); outlet_new(&x->x_obj, &s_symbol); return (x); @@ -260,8 +262,8 @@ static void *openpanel_new(t_floatarg mode) static void openpanel_symbol(t_openpanel *x, t_symbol *s) { const char *path = (s && s->s_name) ? s->s_name : "\"\""; - pdgui_vmess("pdtk_openpanel", "ssi", - x->x_s->s_name, path, x->x_mode); + pdgui_vmess("pdtk_openpanel", "ssic", + x->x_s->s_name, path, x->x_mode, glist_getcanvas(x->x_canvas)); } static void openpanel_bang(t_openpanel *x) @@ -324,8 +326,8 @@ static void *savepanel_new(void) static void savepanel_symbol(t_savepanel *x, t_symbol *s) { const char *path = (s && s->s_name) ? s->s_name : "\"\""; - pdgui_vmess("pdtk_savepanel", "ss", - x->x_s->s_name, path); + pdgui_vmess("pdtk_savepanel", "ssc", + x->x_s->s_name, path, glist_getcanvas(x->x_canvas)); } static void savepanel_bang(t_savepanel *x) diff --git a/tcl/wheredoesthisgo.tcl b/tcl/wheredoesthisgo.tcl index 0940a94ca..8467fc738 100644 --- a/tcl/wheredoesthisgo.tcl +++ b/tcl/wheredoesthisgo.tcl @@ -36,7 +36,7 @@ proc open_file {filename} { # ------------------------------------------------------------------------------ # procs for panels (openpanel, savepanel) -proc pdtk_openpanel {target localdir {mode 0}} { +proc pdtk_openpanel {target localdir {mode 0} {parent .pdwindow}} { if { $::pd::private::lastopendir == "" } { if { ! [file isdirectory $::fileopendir]} { set ::fileopendir $::env(HOME) @@ -49,9 +49,12 @@ proc pdtk_openpanel {target localdir {mode 0}} { # 0: file, 1: directory, 2: multiple files switch $mode { - 0 { set result [tk_getOpenFile -initialdir $localdir] } - 1 { set result [tk_chooseDirectory -initialdir $localdir] } - 2 { set result [tk_getOpenFile -multiple 1 -initialdir $localdir] } + 0 { set result [tk_getOpenFile -initialdir $localdir \ + -parent $parent] } + 1 { set result [tk_chooseDirectory -initialdir $localdir \ + -parent $parent] } + 2 { set result [tk_getOpenFile -multiple 1 -initialdir $localdir \ + -parent $parent] } default { ::pdwindow::error "bad value for 'mode' argument" } } if {$result ne ""} { @@ -73,7 +76,7 @@ proc pdtk_openpanel {target localdir {mode 0}} { } -proc pdtk_savepanel {target localdir} { +proc pdtk_savepanel {target localdir {parent .pdwindow}} { if { $::pd::private::lastsavedir == "" } { if { ! [file isdirectory $::filenewdir]} { set ::filenewdir $::env(HOME) @@ -84,7 +87,7 @@ proc pdtk_savepanel {target localdir} { set localdir $::pd::private::lastsavedir } - set filename [tk_getSaveFile -initialdir $localdir] + set filename [tk_getSaveFile -initialdir $localdir -parent $parent] if {$filename ne ""} { set ::pd::private::lastsavedir [file dirname $filename] pdsend "$target callback [enquote_path $filename]" From f736e8c3b38909240b4b68e82496c6b80eb9e198 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 2 Nov 2021 21:32:56 +0100 Subject: [PATCH 049/450] make "save as" dialogs window modal --- tcl/pdtk_canvas.tcl | 3 ++- tcl/pdwindow.tcl | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tcl/pdtk_canvas.tcl b/tcl/pdtk_canvas.tcl index 803959265..587308b4e 100644 --- a/tcl/pdtk_canvas.tcl +++ b/tcl/pdtk_canvas.tcl @@ -172,7 +172,8 @@ proc pdtk_canvas_saveas {mytoplevel initialfile initialdir destroyflag} { if { ! [file isdirectory $initialdir]} {set initialdir $::filenewdir} set filename [tk_getSaveFile -initialdir $initialdir \ -initialfile [::pdtk_canvas::cleanname "$initialfile"] \ - -defaultextension .pd -filetypes $::filetypes] + -defaultextension .pd -filetypes $::filetypes \ + -parent $mytoplevel] if {$filename eq ""} return; # they clicked cancel set extension [file extension $filename] diff --git a/tcl/pdwindow.tcl b/tcl/pdwindow.tcl index 4635d08eb..da2c4cede 100644 --- a/tcl/pdwindow.tcl +++ b/tcl/pdwindow.tcl @@ -208,7 +208,7 @@ proc ::pdwindow::clear_console {} { # save the contents of the pdwindow::logbuffer to a file proc ::pdwindow::save_logbuffer_to_file {} { variable logbuffer - set filename [tk_getSaveFile -initialfile "pdwindow.txt" -defaultextension .txt] + set filename [tk_getSaveFile -initialfile "pdwindow.txt" -defaultextension .txt -parent .pdwindow] if {$filename eq ""} return; # they clicked cancel set f [open $filename w] puts $f "Pd $::PD_MAJOR_VERSION.$::PD_MINOR_VERSION-$::PD_BUGFIX_VERSION$::PD_TEST_VERSION on $::tcl_platform(os) $::tcl_platform(machine)" From 3b751bced1c1cc37d506be57c974aae38f5bee67 Mon Sep 17 00:00:00 2001 From: ssantos Date: Mon, 18 Dec 2023 15:35:07 +0000 Subject: [PATCH 050/450] Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (491 of 491 strings) Translation: pure-data/Interface Translate-URL: https://hosted.weblate.org/projects/pure-data/pure-data/pt_PT/ --- po/pt_pt.po | 344 ++++++++++++++++++++++------------------------------ 1 file changed, 142 insertions(+), 202 deletions(-) diff --git a/po/pt_pt.po b/po/pt_pt.po index 5947f44e0..131015779 100644 --- a/po/pt_pt.po +++ b/po/pt_pt.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: Pure Data 0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" "POT-Creation-Date: 2023-11-07 16:37+0100\n" -"PO-Revision-Date: 2023-02-13 12:36+0000\n" -"Last-Translator: umläute \n" +"PO-Revision-Date: 2023-12-19 16:08+0000\n" +"Last-Translator: ssantos \n" "Language-Team: Portuguese (Portugal) \n" "Language: pt_pt\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.16-dev\n" +"X-Generator: Weblate 5.3\n" "X-Poedit-Language: Portuguese\n" "X-Poedit-Country: PORTUGAL\n" @@ -33,13 +33,11 @@ msgstr "novo-apenas" msgid "new&old" msgstr "novo&velho" -#, fuzzy msgid "no scale" -msgstr "Escala" +msgstr "sem escala" -#, fuzzy msgid "scale" -msgstr "Escala" +msgstr "escala" #, tcl-format msgid "Discard changes to '%s'?" @@ -51,16 +49,14 @@ msgstr "Desfazer limpar" msgid "Undo connect" msgstr "Desfazer conectar" -#, fuzzy msgid "Undo cut" -msgstr "Anular" +msgstr "Desfazer cortar" msgid "Undo disconnect" msgstr "Desfazer desconectar" -#, fuzzy msgid "Undo duplicate" -msgstr "Duplicar" +msgstr "Desfazer duplicar" msgid "Undo motion" msgstr "Desfazer movimentar" @@ -77,16 +73,14 @@ msgstr "Refazer limpar" msgid "Redo connect" msgstr "Refazer conectar" -#, fuzzy msgid "Redo cut" -msgstr "Restaurar" +msgstr "Refazer cortar" msgid "Redo disconnect" msgstr "Refazer desconectar" -#, fuzzy msgid "Redo duplicate" -msgstr "Duplicar" +msgstr "Refazer duplicar" msgid "Redo motion" msgstr "Refazer movimentar" @@ -109,9 +103,8 @@ msgstr "impossível deletar ficheiro .pdsettings" msgid "failed to erase Pd settings" msgstr "falha ao apagar configurações do Pd" -#, fuzzy msgid "erased Pd settings" -msgstr "Gravar a configuração" +msgstr "configurações do Pd apagadas" msgid "no Pd settings to erase" msgstr "nenhuma configuração do Pd para apagar" @@ -126,7 +119,6 @@ msgstr "(re-gravar preferências para reinstanciá-las)" msgid "File" msgstr "Ficheiro" -#, fuzzy msgid "Edit" msgstr "Editar" @@ -208,13 +200,11 @@ msgstr "Aplicar" msgid "OK" msgstr "OK" -#, fuzzy msgid "no device" -msgstr "Dispositivo de entrada 3:" +msgstr "Nenhum dispositivo" -#, fuzzy msgid "(same as input device)..." -msgstr "(igual ao dispositivo de entrada) .............." +msgstr "(mesmo que o dispositivo de entrada)..." msgid "Channels:" msgstr "Canais:" @@ -225,16 +215,14 @@ msgstr "Dispositivo de entrada" msgid "Output Devices" msgstr "Dispositivo de saída" -#, fuzzy msgid "Use Multiple Devices" -msgstr "Usar vários dispositivos" +msgstr "Usar Múltiplos Dispositivos" msgid "audio system" -msgstr "" +msgstr "Sistema de áudio" -#, fuzzy msgid "Settings" -msgstr "Configuração MIDI" +msgstr "Configurações" msgid "Sample rate:" msgstr "Sample rate:" @@ -274,10 +262,10 @@ msgid "Scale" msgstr "Escala" msgid "X units per pixel:" -msgstr "Unidades de X por pixel" +msgstr "Unidades de X por pixel:" msgid "Y units per pixel:" -msgstr "Unidades de Y por pixel" +msgstr "Unidades de Y por pixel:" msgid "Appearance on parent patch" msgstr "Aparência no patch pai" @@ -291,9 +279,8 @@ msgstr "Esconder nome e variáveis do objecto" msgid "Range and size" msgstr "Registo e tamanho" -#, fuzzy msgid "X range: from" -msgstr "Faixa X, de" +msgstr "Registro de X: de" msgid "to" msgstr "a" @@ -301,13 +288,11 @@ msgstr "a" msgid "Margin:" msgstr "Margem:" -#, fuzzy msgid "Y range: from" -msgstr "Faixa Y, de" +msgstr "Registro de Y: de" -#, fuzzy msgid "Data Properties" -msgstr "Propriedades da tela" +msgstr "Propriedades da Estrutura de Dados" msgid "Send" msgstr "Enviar" @@ -323,9 +308,9 @@ msgstr "Encontrado '%1$s' em %2$s" msgid "Couldn't find '%1$s' in %2$s" msgstr "Não foi possível encontrar '%1$s' em %2$s" -#, fuzzy, tcl-format +#, tcl-format msgid "Search in %s for:" -msgstr "Procurar em" +msgstr "Procurar em %s por:" #, tcl-format msgid "Showed last '%1$s' in %2$s" @@ -366,9 +351,8 @@ msgstr "Apenas X" msgid "Y only" msgstr "Apenas Y" -#, fuzzy msgid "GUI Box Properties" -msgstr "Propriedades da atom box" +msgstr "Propriedades da Caixa de GUI" msgid "Messages" msgstr "Mensagens" @@ -380,7 +364,7 @@ msgid "Receive symbol:" msgstr "Símbolo para receber:" msgid "auto" -msgstr "" +msgstr "automático" msgid "Width:" msgstr "Largura:" @@ -397,7 +381,6 @@ msgstr "Superior:" msgid "Label" msgstr "Legenda" -#, fuzzy msgid "Left" msgstr "Esquerda" @@ -422,9 +405,8 @@ msgstr "Cor da legenda" msgid "Bang" msgstr "Bang" -#, fuzzy msgid "Flash Time (msec)" -msgstr "Delay (mseg):" +msgstr "Tempo de piscagem (ms)" msgid "Min:" msgstr "Mínimo:" @@ -447,9 +429,8 @@ msgstr "Number2" msgid "Width (digits):" msgstr "Largura (dígitos):" -#, fuzzy msgid "Height:" -msgstr "Direita" +msgstr "Altura:" msgid "Output Range" msgstr "Registo de Saída" @@ -500,13 +481,11 @@ msgstr "Saltar no clique" msgid "Steady on click" msgstr "Manter no clique" -#, fuzzy msgid "X offset:" -msgstr "Posição X" +msgstr "Deslocamento X:" -#, fuzzy msgid "Y offset:" -msgstr "Posição Y" +msgstr "Deslocamento Y:" msgid "Colors" msgstr "Cores" @@ -523,16 +502,14 @@ msgstr "Criar uma cor" msgid "Test label" msgstr "teste" -#, fuzzy msgid "Send a Pd message" -msgstr "Enviar mensagem..." +msgstr "Enviar uma mensagem" msgid "(use arrow keys for history)" msgstr "(use setas para histórico)" -#, fuzzy msgid "no input devices" -msgstr "Dispositivo de entrada" +msgstr "nenhum dispositivos de entrada" msgid "In Ports:" msgstr "Ports de entrada:" @@ -541,7 +518,7 @@ msgid "Out Ports:" msgstr "Ports de saída:" msgid "MIDI system" -msgstr "" +msgstr "Sistema MIDI" msgid "MIDI Settings" msgstr "Configuração MIDI" @@ -574,13 +551,11 @@ msgstr "Desativar" msgid "Externals Install Directory" msgstr "Diretório de Instalação de Externals" -#, fuzzy msgid "Clear" -msgstr "Limpar menu" +msgstr "Limpar" -#, fuzzy msgid "path preferences" -msgstr "Preferências" +msgstr "caminho de busca" msgid "Choose Pd documents directory:" msgstr "Escolher diretório dos documentos Pd:" @@ -595,49 +570,41 @@ msgstr "Adicionar um novo caminho" msgid "Edit existing path [%s]" msgstr "Editar caminho existente [%s]" -#, fuzzy msgid "Patch windows" -msgstr "Janela Pd" +msgstr "Janelas do Patch" -#, fuzzy msgid "Zoom New Windows" -msgstr "Janela superior" +msgstr "Ampliar Zoom em Novas Janelas" -#, fuzzy msgid "GUI settings" -msgstr "Gravar a configuração" +msgstr "Configurações de GUI" msgid "preference layout (reopen the preferences to see the effect)" -msgstr "" +msgstr "preferência de layout (reabra as preferências para ver o efeito)" msgid "use tabs" -msgstr "" +msgstr "usar guias" msgid "single page" -msgstr "" +msgstr "página única" msgid "Preferences" msgstr "Preferências" -#, fuzzy msgid "startup preferences" -msgstr "Preferências" +msgstr "inicialização" -#, fuzzy msgid "audio preferences" -msgstr "Preferências" +msgstr "áudio" -#, fuzzy msgid "MIDI preferences" -msgstr "Preferências" +msgstr "MIDI" -#, fuzzy msgid "deken preferences" -msgstr "Preferências" +msgstr "preferências do deken" -#, fuzzy msgid "misc preferences" -msgstr "Preferências" +msgstr "diversas" msgid "Add new library" msgstr "Adicionar nova biblioteca" @@ -646,40 +613,37 @@ msgid "Edit library" msgstr "Editar biblioteca" msgid "Settings below require a restart of Pd!" -msgstr "" +msgstr "As configurações abaixo requerem a reinicialização do Pd!" msgid "Pd libraries to load on startup" msgstr "Bibliotecas de Pd a serem carregadas na inicialização" -#, fuzzy msgid "GUI options" -msgstr "Gravar a configuração" +msgstr "opções de GUI" msgid "language" -msgstr "" +msgstr "idioma" msgid "Menu language" -msgstr "" +msgstr "Menu de idioma" msgid "float (32bit)" -msgstr "" +msgstr "float (32bit)" msgid "double (64bit) EXPERIMENTAL" -msgstr "" +msgstr "double (64bit) EXPERIMENTAL" msgid "double (64bit)" -msgstr "" +msgstr "double (64bit)" -#, fuzzy msgid "float size" -msgstr "Tamanho do bloco:" +msgstr "Tamanho do float" msgid "Numeric precision of Pd-core" -msgstr "" +msgstr "Precisão numérica do núcleo do Pd" -#, fuzzy msgid "Startup options" -msgstr "Flags de inicialização:" +msgstr "Opções de inicialização" msgid "Defeat real-time scheduling" msgstr "Anular agendamento em tempo real" @@ -687,16 +651,14 @@ msgstr "Anular agendamento em tempo real" msgid "Startup flags:" msgstr "Flags de inicialização:" -#, fuzzy msgid "Help Browser" -msgstr "Navegador" +msgstr "Navegador de Ajuda" msgid "Associated Files" msgstr "Ficheiros associados" -#, fuzzy msgid "Pd Files" -msgstr "Ficheiros Pd" +msgstr "Ficheiros de Pd" msgid "Max Patch Files" msgstr "Ficheiros Max-Patches" @@ -714,14 +676,13 @@ msgstr "Ficheiros Max-Texto (.mxt)" msgid "detected font: %s" msgstr "fonte detectada: %s" -#, fuzzy, tcl-format +#, tcl-format msgid "WARNING: font family '%1$s' not found, using default (%2$s)" -msgstr "AVISO: O tipo de letra '%s' não foi encontrado, usando o padrão (%s)" +msgstr "AVISO: família de fonte '%1$s' não encontrado, usando padrão (%2$s)" -#, fuzzy, tcl-format +#, tcl-format msgid "WARNING: font weight '%1$s' not found, using default (%2$s)" -msgstr "" -"AVISO: O formato de letra '%s' não foi encontrado, usando o padrão (%s)" +msgstr "AVISO: peso de fonte '%1$s' não encontrado, usando padrão (%2$s)" #, tcl-format msgid "using font: %1$s %2$s" @@ -752,11 +713,10 @@ msgid "Failed to find plugins in %s ...skipping!" msgstr "Falha ao encontrar plugin em %s …pulando!" msgid "Pd startup failure" -msgstr "" +msgstr "falha de inicialização do Pd" -#, fuzzy msgid "Failed to start Pd-core" -msgstr "Falha ao instalar '%s'!" +msgstr "Falha ao iniciar o núcleo do Pd" msgid "(Tcl) MISSING CLOSE-BRACE '}': " msgstr "(Tcl) MISSING CLOSE-BRACE '}': " @@ -787,9 +747,9 @@ msgstr "instalando pacote deken '%s'" msgid "ignoring '%s': doesn't look like a deken package" msgstr "ignorando '%s': não parece ser um pacote do deken" -#, fuzzy, tcl-format +#, tcl-format msgid "Installing '%s'" -msgstr "Rejeitar modificações em '%s'?" +msgstr "A instalar '%s'" #, tcl-format msgid "Successfully unzipped %1$s into %2$s." @@ -903,9 +863,9 @@ msgstr "" "Apenas mostrar a mais nova versão de uma biblioteca\n" "(tratar outras versões como arquiteturas estrangeiras)" -#, fuzzy, tcl-format +#, tcl-format msgid "Deken %s Preferences" -msgstr "Preferências" +msgstr "Preferências do Deken %s" #, tcl-format msgid "Platform re-detected: %s" @@ -914,17 +874,14 @@ msgstr "Plataforma re-detectada: %s" msgid "Deken Packages" msgstr "Pacotes do Deken" -#, fuzzy msgid "ZIP Files" -msgstr "Arquivos ZIP" +msgstr "Ficheiros ZIP" -#, fuzzy msgid "TAR Files" -msgstr "Arquivos TAR" +msgstr "Ficheiros TAR" -#, fuzzy msgid "All Files" -msgstr "todos os arquivos" +msgstr "Todos os Ficheiros" #, tcl-format msgid "Checksum mismatch for '%s'" @@ -996,9 +953,8 @@ msgstr "Processado %d pacotes selecionados para instalação." msgid "Show all" msgstr "Mostra todos" -#, fuzzy msgid "Search" -msgstr "Procurar em" +msgstr "Procurar" #, tcl-format msgid "Install (%d)" @@ -1052,9 +1008,8 @@ msgstr "Procurar em: " msgid "libraries" msgstr "bibliotecas" -#, fuzzy msgid "objects" -msgstr "Object" +msgstr "objetos" msgid "both" msgstr "ambos" @@ -1083,16 +1038,15 @@ msgstr "Enviador" msgid "Date" msgstr "Data" -#, fuzzy msgid "Search Results" -msgstr "Procurar em" +msgstr "Resultados de Busca" msgid "Log" msgstr "Log" -#, fuzzy, tcl-format +#, tcl-format msgid "Searching for \"%s\"..." -msgstr "Rejeitar modificações em '%s'?" +msgstr "À procura de \"%s\"..." #, tcl-format msgid "online? %s" @@ -1173,9 +1127,9 @@ msgstr "[deken] deken-plugin.tcl (busca de externals Pd) carregado de %s." msgid "[deken] Platform detected: %s" msgstr "[deken] platforma detectada: %s" -#, fuzzy, tcl-format +#, tcl-format msgid "Searching on %s..." -msgstr "Rejeitar modificações em '%s'?" +msgstr "À procura em %s..." #, tcl-format msgid "Searching on %1$s returned %2$d results" @@ -1188,13 +1142,12 @@ msgstr "Nenhum servidor encontrado para procurar..." msgid "Uploaded by %1$s @ %2$s" msgstr "Enviado por %1$s em %2$s" -#, fuzzy, tcl-format +#, tcl-format msgid "Searching for '%s' failed!" -msgstr "Rejeitar modificações em '%s'?" +msgstr "Procura por '%s' falhou!" -#, fuzzy msgid "Search failed" -msgstr "Procurar em" +msgstr "Procura falhou" msgid "Unable to perform search." msgstr "Incapaz de fazer procura." @@ -1205,9 +1158,8 @@ msgstr "Selecionar pacotes para instalação" msgid "Deselect package" msgstr "Desselecionar pacote" -#, fuzzy msgid "Open package webpage" -msgstr "Abrir recente" +msgstr "Abrir a página do pacote na web" msgid "Copy package URL" msgstr "Copiar URL do pacote" @@ -1284,126 +1236,125 @@ msgid "Couldn't create preferences \"%1$s\" in %2$s" msgstr "Não foi possível criar preferências \"%1$s\" em %2$s" msgid "Afrikaans" -msgstr "" +msgstr "Africâner" msgid "Arabic" -msgstr "" +msgstr "Árabe" msgid "Azerbaijani" -msgstr "" +msgstr "Azerbaijano" msgid "Belarusian" -msgstr "" +msgstr "Bielorrusso" msgid "Bulgarian" -msgstr "" +msgstr "Búlgaro" msgid "German" -msgstr "" +msgstr "Alemão" msgid "German (Austria)" -msgstr "" +msgstr "Alemão (Áustria)" msgid "Greek" -msgstr "" +msgstr "Grego" msgid "English" -msgstr "" +msgstr "Inglês" msgid "English (Canada)" -msgstr "" +msgstr "Inglês (Canadá)" msgid "English (UK)" -msgstr "" +msgstr "Inglês (Britânico)" msgid "English (USA)" -msgstr "" +msgstr "Inglês (EUA)" msgid "Spanish" -msgstr "" +msgstr "Espanhol" msgid "Basque" -msgstr "" +msgstr "Basco" msgid "Finnish" -msgstr "" +msgstr "Finlândia" msgid "French" -msgstr "" +msgstr "Francês" msgid "Gujarati" -msgstr "" +msgstr "Gujardo" msgid "Hebrew" -msgstr "" +msgstr "Hebraico" msgid "Hindi" -msgstr "" +msgstr "Híndi" msgid "Hungarian" -msgstr "" +msgstr "Húngaro" msgid "Armenian" -msgstr "" +msgstr "Arménio" msgid "Italian" -msgstr "" +msgstr "Italiano" msgid "Indonesian" -msgstr "" +msgstr "Indonésio" msgid "Japanese" -msgstr "" +msgstr "Japonês" msgid "Korean" -msgstr "" +msgstr "Coreano" msgid "Dutch" -msgstr "" +msgstr "Holandês" msgid "Panjabi" -msgstr "" +msgstr "Panjábi" msgid "Polish" -msgstr "" +msgstr "Polonês" msgid "Portuguese" -msgstr "" +msgstr "Português" msgid "Portuguese (Brazil)" -msgstr "" +msgstr "Português (Brasil)" msgid "Portuguese (Portugal)" -msgstr "" +msgstr "Português (Portugal)" msgid "Russian" -msgstr "" +msgstr "Russo" msgid "Albanian" -msgstr "" +msgstr "Albanês" msgid "Swedish" -msgstr "" +msgstr "Sueco" msgid "Turkish" -msgstr "" +msgstr "Turco" msgid "Ukrainian" -msgstr "" +msgstr "Ucraniano" msgid "Vietnamese" -msgstr "" +msgstr "Vietnamita" msgid "Chinese (Traditional)" -msgstr "" +msgstr "Chinês (Tradicional)" -#, fuzzy, tcl-format +#, tcl-format msgid "(default language: %s)" -msgstr "Platforma padrão: %s" +msgstr "(idioma padrão: %s)" -#, fuzzy msgid "(no translation)" -msgstr "traduções" +msgstr "(sem tradução)" #, tcl-format msgid "ignoring '%s': doesn't exist" @@ -1423,7 +1374,7 @@ msgid "Save As..." msgstr "Guardar como..." msgid "Print..." -msgstr "Imprimir" +msgstr "Imprimir…" msgid "Paste Replace" msgstr "Colar Substituir" @@ -1431,13 +1382,11 @@ msgstr "Colar Substituir" msgid "Duplicate" msgstr "Duplicar" -#, fuzzy msgid "Zoom In" -msgstr "Zoom" +msgstr "Ampliar Zoom" -#, fuzzy msgid "Zoom Out" -msgstr "Zoom" +msgstr "Reduzir Zoom" msgid "Tidy Up" msgstr "Arrumar" @@ -1463,9 +1412,8 @@ msgstr "Novo" msgid "Open" msgstr "Abrir" -#, fuzzy msgid "Message..." -msgstr "Mensagem" +msgstr "Mensagem..." msgid "Cut" msgstr "Cortar" @@ -1533,22 +1481,20 @@ msgstr "Zoom" msgid "Bring All to Front" msgstr "Trazer Todas para Frente" -#, fuzzy msgid "Next Window" -msgstr "Janela superior" +msgstr "Próxima Janela" -#, fuzzy msgid "Previous Window" -msgstr "Janela superior" +msgstr "Janela Anterior" msgid "Parent Window" msgstr "Janela superior" msgid "HTML Manual..." -msgstr "Manual HTML" +msgstr "Manual HTML…" msgid "Browser..." -msgstr "Navegador" +msgstr "Navegador…" msgid "List of objects..." msgstr "Lista de objetos..." @@ -1572,24 +1518,20 @@ msgstr "" "Deletar todas as preferências?\n" "(faz efeito quando o Pd é reiniciado)" -#, fuzzy msgid "removed GUI settings" -msgstr "Gravar a configuração" +msgstr "configurações de GUI removidas" msgid "no Pd-GUI settings to clear" msgstr "nenhuma configuração Pd-GUI para limpar" -#, fuzzy msgid "Edit Preferences..." -msgstr "Preferências..." +msgstr "Editar Preferências..." -#, fuzzy msgid "Save All Preferences" -msgstr "Preferências" +msgstr "Gravar Todas as Preferências" -#, fuzzy msgid "Save to..." -msgstr "Guardar como..." +msgstr "Gravar em..." msgid "Load from..." msgstr "Carregar de..." @@ -1597,9 +1539,8 @@ msgstr "Carregar de..." msgid "Forget All..." msgstr "Esquecer Todas..." -#, fuzzy msgid "Tabbed preferences" -msgstr "Preferências" +msgstr "Preferências em guias" msgid "Open Recent" msgstr "Abrir recente" @@ -1622,6 +1563,8 @@ msgid "" "Accepting will update the contents in the associated object. You still have " "to save the patch to make the changes persistent." msgstr "" +"Aceitar atualizará o conteúdo dos objetos associados. Ainda terá que gravar " +"o patch para que as mudanças sejam permanentes." #, tcl-format msgid "dropped %d lines from the Pd window" @@ -1631,9 +1574,8 @@ msgstr "descartadas %d linhas da janela de Pd" msgid "the Pd window filtered %d lines" msgstr "a janela do Pd filtrou %d linhas" -#, fuzzy msgid "Audio on" -msgstr "Configuração audio" +msgstr "Áudio ligado" msgid "Audio off" msgstr "Áudio desligado" @@ -1648,11 +1590,11 @@ msgid "Pd" msgstr "Pd" msgid "EXPERIMENTAL double (64bit) precision" -msgstr "" +msgstr "EXPERIMENTAL precisão double (64bit)" #, tcl-format msgid "%dbit-floats EXPERIMENTAL" -msgstr "" +msgstr "%dbit-floats EXPERIMENTAL" msgid "DSP" msgstr "DSP" @@ -1679,18 +1621,16 @@ msgid "all" msgstr "todos" msgid "y1" -msgstr "" +msgstr "y1" msgid "New..." msgstr "Novo..." -#, fuzzy msgid "Edit..." -msgstr "Editar" +msgstr "Editar..." -#, fuzzy msgid "Delete" -msgstr "Apagar array" +msgstr "Deletar" #, tcl-format msgid "ignoring '%s': doesn't look like a Pd file" From 1e866f2ff55d2fd048362add59d0b0140e9269b8 Mon Sep 17 00:00:00 2001 From: Charles Hughes Date: Sat, 30 Dec 2023 16:22:15 -0800 Subject: [PATCH 051/450] Update snapshot~-help.pd (#2163) The docs say "outlet" when I am certain it should say "inlet". Outlets do not receive or react to inputs. --- doc/5.reference/snapshot~-help.pd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/5.reference/snapshot~-help.pd b/doc/5.reference/snapshot~-help.pd index c55a7c4ce..46df149b2 100644 --- a/doc/5.reference/snapshot~-help.pd +++ b/doc/5.reference/snapshot~-help.pd @@ -29,7 +29,7 @@ #X obj 124 429 sig~; #X obj 10 414 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 113 286 <-- take one snapshot; -#X text 28 63 The [snapshot~] object takes a signal and converts it to a control value whenever it receives a bang in its left outlet. This object is particularly useful for monitoring outputs., f 81; +#X text 28 63 The [snapshot~] object takes a signal and converts it to a control value whenever it receives a bang in its left inlet. This object is particularly useful for monitoring outputs., f 81; #X text 27 122 In the example below \, a [snapshot~] object prints out the values of a low frequency cosine wave every time it is sent a bang message., f 83; #X obj 89 286 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X text 135 372 This output updates each time bang is clicked above; From b461f0df791c82f1117a1d47427e0a5aa1897085 Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 1 Jan 2024 20:15:45 -0300 Subject: [PATCH 052/450] let [soundfiler] save files again. (#2164) this is a follow up to https://github.com/pure-data/pure-data/pull/2148 taking into consideration this comment https://github.com/pure-data/pure-data/pull/2148#issuecomment-1836820049 --- doc/5.reference/soundfiler-help.pd | 115 +++++++++++++++++------------ 1 file changed, 68 insertions(+), 47 deletions(-) diff --git a/doc/5.reference/soundfiler-help.pd b/doc/5.reference/soundfiler-help.pd index 71bbfea42..0b7a3d881 100644 --- a/doc/5.reference/soundfiler-help.pd +++ b/doc/5.reference/soundfiler-help.pd @@ -5,14 +5,13 @@ #X restore 269 273 graph; #X obj 60 340 soundfiler; #X floatatom 60 369 7 0 0 0 - - - 12; -#X text 101 262 write a file; #X obj 163 580 tabwrite~; #X obj 237 580 tabread4~; #X obj 310 580 tabplay~; #X obj 434 580 writesf~; #X obj 376 580 readsf~; #X text 38 579 See also:; -#X text 256 185 read a file to zero or more arrays, f 35; +#X text 256 176 read a file to zero or more arrays, f 35; #X obj 40 15 soundfiler; #X text 806 579 updated for Pd version 0.51; #X obj 115 580 array; @@ -38,11 +37,11 @@ #X text 157 254 sample rate \, header size \, number of channels \, bytes per sample & endianness ('b' or 'l')., f 51; #X restore 822 15 pd reference; #X text 120 14 - import/export soundfiles to/from arrays; -#X msg 34 185 read ../sound/bell.aiff sample; -#X msg 60 220 read -resize ../sound/bell.aiff sample; +#X msg 34 176 read ../sound/bell.aiff sample; +#X msg 60 211 read -resize ../sound/bell.aiff sample; #X text 29 69 The [soundfiler] object loads files into arrays and also saves arrays into files. The soundfiles may contain uncompressed 2- or 3-byte integer ("pcm") or 4-byte floating point samples in wave \, aiff \, caf and next formats. Additionally \, [soundfiler] also deals with ascii text files., f 72; -#X text 340 212 optionally resize array to fit the whole file, f 23; -#X text 37 153 Basic read/write example:; +#X text 340 203 optionally resize array to fit the whole file, f 23; +#X text 37 144 Basic read/write example:; #N canvas 791 194 575 345 Dealing_with_"\$0" 0; #X obj 273 171 array define \$0-x; #X obj 153 202 f \$0; @@ -63,17 +62,17 @@ #X text 29 422 The 'read' message takes a file to load and one or more arrays to load into (in the case the file has more than one channel). The number of channels of the soundfile need not match the number of arrays given to read (extras channels are dropped and unsupplied channels are zeroed out in the extra arrays)., f 72; #X text 577 243 Note that if no array name is given to read to \, no samples are read but you get the number of samples in the file on the left outlet and the info on the right outlet anyway., f 62; #X text 577 300 Also note that the number of channels is limited to 64 for both reading and writting., f 62; -#N canvas 101 118 1234 585 read-write-flags 0; +#N canvas 85 86 1235 552 read-write-flags 0; #X text 27 83 -resize (resizes arrays to the size of the sound file), f 62; #N canvas 0 22 450 300 (subpatch) 0; #X array array1 78003 float 2; #X coords 0 1 78003 -1 325 120 1 0 0; -#X restore 538 441 graph; +#X restore 887 260 graph; #N canvas 0 22 450 300 (subpatch) 0; #X array array2 78003 float 2; #X coords 0 1 78003 -1 325 120 1 0 0; -#X restore 877 441 graph; -#X obj 681 367 soundfiler; +#X restore 887 404 graph; +#X obj 622 447 soundfiler; #X text 27 23 Flags for 'read' message:, f 62; #X text 27 347 Flags for 'write' message:, f 69; #X text 27 101 -maxsize (maximum number of samples to resize to), f 62; @@ -81,22 +80,16 @@ #X text 27 231 -ascii (read a file containing ascii numbers), f 73; #X text 48 251 This may only be combined with '-resize'. Newlines in the file are ignored \, non-numeric fields are replaced by zero. If multiple arrays are specified \, the first elements of each array should come first in the file \, followed by all the second elements and so on (interleaved)., f 70; #X text 27 47 -wave \, -aiff \, -caf \, -next (soundfile format), f 62; -#X text 1119 137 read a file overriding the header, f 11; -#X text 1002 261 read from an ascii file; -#X listbox 748 395 17 0 0 0 - - - 0; -#X msg 684 152 read -resize -raw 128 2 2 b ../sound/bell.aiff array1 array2; -#X msg 749 284 read -ascii -resize table.txt array1 array2; -#X text 922 321 write to an ascii file; -#X floatatom 681 395 6 0 0 0 - - - 0; -#X msg 709 199 write -nframes 10000 foo2.wav array1; -#X obj 645 72 openpanel; -#X obj 645 37 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; -#X msg 719 226 write -next -bytes 4 foo3 array1 array2; -#X text 974 199 write and set number of samples; -#X text 1004 217 set file extenstion and write a stereo file, f 23; -#X obj 560 72 savepanel; -#X obj 560 37 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; -#X text 677 38 choose file to save to or read from in your hard disk; +#X text 1056 131 read a file overriding the header, f 23; +#X text 904 169 read from an ascii file; +#X listbox 689 495 17 0 0 0 - - - 0; +#X msg 625 138 read -resize -raw 128 2 2 b ../sound/bell.aiff array1 array2; +#X msg 651 192 read -ascii -resize table.txt array1 array2; +#X floatatom 622 495 6 0 0 0 - - - 0; +#X obj 586 58 openpanel; +#X obj 586 23 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X obj 672 289 savepanel; +#X obj 672 254 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; #X text 82 500 * note that arrays whose values exceed the -1 to 1 range are automatically normalized, f 42; #X text 27 442 -bytes (bytes per sample: 2 \, 3 \, or 4 \, default: 2), f 69; #X text 27 461 -rate (sample rate \, default Pd's running sample rate), f 69; @@ -107,30 +100,52 @@ #X text 27 367 -wave \, -aiff \, -caf \, -next \, -ascii (soundfile format \, default: 'wave'), f 69; #X text 27 386 -big \, -little (sample endianness \, default 'little'), f 69; #X text 27 480 -normalize * (normalize file to '1'), f 69; -#X msg 560 100 write \$1 array1 array2, f 9; -#X msg 764 322 write foo1.txt array1; -#X msg 645 100 read -resize \$1 array1 array2; -#X msg 666 127 read -maxsize 44100 -aiff ../sound/bell.aiff array1 array2; -#X text 905 103 set max size and extension; -#X msg 740 261 read -ascii -resize table.txt array1; -#X connect 3 0 17 0; +#X msg 672 317 write \$1 array1 array2; +#X msg 586 86 read -resize \$1 array1 array2; +#X msg 607 113 read -maxsize 44100 -aiff ../sound/bell.aiff array1 array2; +#X text 846 89 set max size and extension; +#X msg 642 169 read -ascii -resize table.txt array1; +#N canvas 411 132 607 507 more-writting-examples 0; +#X msg 171 364 write foo1.txt array1; +#X obj 113 451 outlet; +#X text 223 191 write a mono file and set number of samples, f 22; +#X obj 144 202 savepanel; +#X obj 144 167 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X msg 144 237 write -nframes 10000 \$1 array1; +#X obj 113 78 savepanel; +#X obj 113 43 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X msg 113 113 write -next -bytes 4 \$1 array1 array2; +#X text 192 38 Write a stereo file with a 4 byte resolution and in the 'next' format (so when typing into the savepannel dialog you should not set the file extension), f 47; +#X obj 171 322 savepanel; +#X obj 171 287 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X text 251 304 write to an ascii file (set the file extension to '.txt'), f 31; +#X connect 0 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 5 0 1 0; +#X connect 6 0 8 0; +#X connect 7 0 6 0; +#X connect 8 0 1 0; +#X connect 10 0 0 0; +#X connect 11 0 10 0; +#X restore 681 383 pd more-writting-examples; +#X text 698 256 Write a stereo fie; +#X text 618 24 Choose file to save to or read from in your hard disk; +#X connect 3 0 16 0; #X connect 3 1 13 0; #X connect 14 0 3 0; #X connect 15 0 3 0; -#X connect 18 0 3 0; -#X connect 19 0 39 0; +#X connect 17 0 32 0; +#X connect 18 0 17 0; +#X connect 19 0 31 0; #X connect 20 0 19 0; -#X connect 21 0 3 0; -#X connect 24 0 37 0; -#X connect 25 0 24 0; -#X connect 37 0 3 0; -#X connect 38 0 3 0; -#X connect 39 0 3 0; -#X connect 40 0 3 0; -#X connect 42 0 3 0; +#X connect 31 0 3 0; +#X connect 32 0 3 0; +#X connect 33 0 3 0; +#X connect 35 0 3 0; +#X connect 36 0 3 0; #X restore 756 497 pd read-write-flags & more examples; #X f 19; -#X msg 89 289 write foo1 sample; #X text 577 149 When loading a file \, the left outlet sends the number of samples the file contains if the array is equal or greater in size. If you're loading a file into an array that is smaller \, the number or samples is clipped to the array size and you probably want to use the -resize flag to resize the array size to the file size., f 62; #X text 577 413 Both 'read' and 'write' messages also take optional flags for configuration. In the basic example to the left we have the '-resize' flag in the read message that resizes the array to the file size. See more about flags and advanced examples in the subpatch below., f 62; #X obj 6 562 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 0; @@ -139,8 +154,14 @@ #X text 577 69 At loading or writting a file \, the left outlet outputs the number of samples and the right outlet sends information as a list \, namely: Sample Rate \, Header Size \, Number of Channels \, Bytes per Sample & Endianness ("b" for "big" or "l" for "little")., f 62; #X text 126 389 info ; #X text 44 389 # samples; +#X obj 84 280 savepanel; +#X obj 84 248 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X msg 84 308 write \$1 sample; +#X text 112 249 write to a file; #X connect 1 0 2 0; -#X connect 1 1 14 0; +#X connect 1 1 13 0; +#X connect 18 0 1 0; #X connect 19 0 1 0; -#X connect 20 0 1 0; -#X connect 31 0 1 0; +#X connect 38 0 40 0; +#X connect 39 0 38 0; +#X connect 40 0 1 0; From 4ec57eaa2fa8fdc2a0930ec21b6bb41f559cc0c6 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 5 Jan 2024 12:59:54 -0300 Subject: [PATCH 053/450] Documentation (#2167) * let [soundfiler] save files again. this is a follow up to https://github.com/pure-data/pure-data/pull/2148 taking into consideration this comment https://github.com/pure-data/pure-data/pull/2148#issuecomment-1836820049 * better document [pd~] messages closes https://github.com/pure-data/pddp/issues/182 I improved the kind of messages you can send to [pd~] and I have also revised the documentation about pd-messaes and improved it considerably. --- doc/5.reference/pd-messages.pd | 349 +++++++++++++++------------ doc/5.reference/send-receive-help.pd | 210 ++++++++-------- extra/pd~/pd~-help.pd | 196 ++++++++------- extra/pd~/pd~-subprocess.pd | 85 +++---- 4 files changed, 455 insertions(+), 385 deletions(-) diff --git a/doc/5.reference/pd-messages.pd b/doc/5.reference/pd-messages.pd index 4246e522e..d182b877f 100644 --- a/doc/5.reference/pd-messages.pd +++ b/doc/5.reference/pd-messages.pd @@ -1,11 +1,10 @@ -#N canvas 240 42 1000 661 12; -#X msg 733 137 dsp \$1; -#X msg 577 149 \; pd dsp 0; -#X text 757 108 turn DSP engine on/off; -#X msg 577 107 \; pd dsp 1; +#N canvas 248 43 1000 661 12; +#X msg 733 127 dsp \$1; +#X msg 577 139 \; pd dsp 0; +#X text 757 98 turn DSP engine on/off; +#X msg 577 97 \; pd dsp 1; #X msg 56 309 \; pd compatibility 0.52; #X text 29 147 The 'compatibility' message takes a version number and sets the behavior of some objects back to that particular version. This can be useful in some cases if you want to guarantee that your patch will work in the same way as in the version you created it. This is because sometimes a new version of Pd may promote a change in the behavior of the object (usually to fix a bug) that can also break or change the result of a patch., f 62; -#X text 35 376 Objects that change their behavior according to the set compatibility have that information in their help file.; #X text 45 288 set compatibility to Pd 0.52; #X text 273 277 set to Pd 0.49; #X text 107 422 For example \, check the help file of:, f 18; @@ -22,69 +21,61 @@ #X obj 176 380 delay; #X floatatom 176 311 5 0 8000 0 - - - 0; #X text 79 311 milliseconds:; -#X text 63 380 sends a bang after the time amount, f 12; -#X text 399 415 tells pd to 'fast-forward' and render a given amount of time in ms, f 35; -#X msg 348 371 start 88200; #X obj 348 557 tabwrite~ fast-forward; -#X msg 176 268 6000; -#N canvas 0 22 450 278 (subpatch) 0; -#X array fast-forward 441000 float 2; -#X coords 0 1 441000 -1 250 120 1 0 0; -#X restore 411 209 graph; #X obj 371 463 noise~; #X obj 371 522 *~; -#X obj 389 493 osc~ 0.2; #X text 479 335 --- 10 sec ---; -#X text 82 22 Pd is mostly used to generate and process things in realtime \, nonetheless \, the "fast-forward" message allows you to 'render' an amount of audio faster than realtime (and as fast as your process can handle) - this is also called 'batch processing'. In this example we use it to record 6 seconds of amplitude modulation white noise into an array., f 76; -#X text 82 105 This is very useful if you want to process a pre recorded audio in a Pd patch or to generate an audio file with a generative (or automated) patch. You can also use [soundfiler] to export to a sound file or directly use [writesf~] instead. The 'fast-forward' message takes a time in milliseconds to fast forward to. Check the example, f 76; #X msg 62 240 \; pd dsp \$1; #X obj 62 205 set-dsp-tgl; #X text 93 209 <-- DSP on/off (make sure it is on); -#X text 216 266 <-- time amount to render (6 seconds), f 19; #X text 219 310 <-- set other lengths; #X text 376 422 <--; #X text 423 463 <-- white noise generator; #X text 76 448 stops the --> recording, f 13; -#X text 150 381 -->; -#X text 439 369 <-- start recording 2 seconds into the table, f 22; #X text 175 558 records to the array -->; #X text 406 522 <-- amplitude modulation; -#X connect 0 0 11 0; +#X text 82 22 Pd is mostly used to generate and process things in realtime \, nonetheless \, the "fast-forward" message allows you to 'render' an amount of audio faster than realtime (and as fast as your CPU can handle) - this is also called 'batch processing'. In this example we use it to record 6 seconds of amplitude modulated white noise into an array., f 76; +#X text 82 105 This is very useful if you want to process a pre recorded audio in a Pd patch or to generate an audio file with a generative (or automated) patch. You can also use [soundfiler] to export to a sound file or directly use [writesf~] instead. The 'fast-forward' message takes a time in milliseconds to fast forward to. Check the example below., f 76; +#X text 354 373 <-- start recording; +#X msg 176 268 5000; +#X text 216 266 <-- time amount to render (5 seconds), f 19; +#N canvas 0 22 450 278 (subpatch) 0; +#X array fast-forward 441000 float 2; +#X coords 0 1 441000 -1 250 120 1 0 0; +#X restore 411 209 graph; +#X text 399 415 tells pd to 'fast-forward' and render the given amount of time in ms, f 37; +#X obj 389 493 osc~ 0.25; +#X text 57 379 sends a bang --> after the given time amount, f 16; +#X connect 0 0 8 0; #X connect 1 0 0 0; #X connect 2 0 5 0; #X connect 2 1 3 0; -#X connect 2 2 10 0; +#X connect 2 2 8 0; #X connect 3 0 4 0; #X connect 5 0 1 0; #X connect 6 0 2 0; -#X connect 10 0 11 0; -#X connect 12 0 6 0; -#X connect 14 0 15 0; -#X connect 15 0 11 0; -#X connect 16 0 15 1; -#X connect 21 0 20 0; -#X restore 788 307 pd fast-forward; -#N canvas 446 153 828 532 other-messages 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 13 0 12 0; +#X connect 24 0 6 0; +#X connect 28 0 10 1; +#X restore 777 294 pd fast-forward; +#N canvas 469 143 828 532 other-messages 0; #X msg 472 154 \; pd quit; -#X obj 142 182 pdcontrol; -#X msg 142 154 dir; +#X obj 112 192 pdcontrol; +#X msg 112 164 dir; #X obj 471 119 s pd; #X msg 471 92 quit; #X msg 634 236 \; pd verifyquit; -#X text 37 74 The "open" message opens a Pd file and takes two symbols \, the first is the Pd filename and the second is the directory where it lives. You can use this to open desired patches from within a patch., f 53; -#X msg 142 212 \; pd open help-intro.pd \$1; -#X obj 76 411 pdcontrol; -#X msg 76 383 dir; -#X msg 76 441 \; pd menunew new-patch \$1; -#X text 458 31 And here are some more:, f 12; +#X obj 86 426 pdcontrol; +#X msg 86 398 dir; #X obj 567 18 cnv 15 170 100 empty empty empty 20 12 0 14 #f88c7c #404040 0; #X text 595 79 UNSAVED PATCHES WILL BE LOST!!!, f 16; #X obj 544 148 cnv 15 178 45 empty empty empty 20 12 0 14 #f88c7c #404040 0; -#X text 39 272 The "menunew" message generates a new empty Pd file (but doesn't save it to disk unless you save the file.) It takes two symbols \, the first is the Pd filename and the second is the directory where it will be saved. You can use this for dynamic patching (see next section on parent patch)., f 51; #X text 42 29 Here are some more messages Pd receives that may be useful., f 31; #X text 552 152 <-- You've been warned. Do it at your own risk!, f 23; -#X text 152 410 <-- get currently directory; -#X text 218 181 <-- get currently directory; +#X text 162 425 <-- get currently directory; +#X text 188 191 <-- get currently directory; #N canvas 0 22 450 278 (subpatch) 0; #X coords 0 1 100 -1 172 102 1; #X restore 566 17 graph; @@ -96,23 +87,28 @@ #X msg 445 450 \; pd perf \$1; #X obj 445 411 tgl 22 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; #X text 437 304 The 'perf 1' message turns "performance" mode on \, and 'perf 0' turns it off. In performance mode \, a "close this window?" message appears when you try to close an unmodified patch. Also \, a "really quit?" message appears when you try to quit Pd and no changes have been made to the patch., f 49; -#X text 562 419 Note that the "quit" message to Pd still mercilessly quits the Pd application \, even in this mode., f 31; -#X connect 1 0 7 0; +#X msg 112 222 \; pd open clone-abs-a.pd \$1; +#X text 37 74 The "open" message opens a Pd file and takes two symbols \, the first is the Pd filename and the second is the directory where it lives. You can use this to open desired patches from within a patch - a.k.a" dynamic patching" (see next section on parent patch)., f 53; +#X text 39 282 The "menunew" message generates a new empty Pd file (but doesn't save it to disk unless you save the file.) It takes two symbols \, the first is the Pd filename and the second is the directory where it will be saved. This is also another form of dynamic patching (see next section on parent patch)., f 51; +#X text 460 24 And here are some more messages:, f 12; +#X text 562 419 Note that even in this mode the "quit" message to Pd will still mercilessly quit the Pd application., f 29; +#X msg 86 456 \; pd menunew new-patch.pd \$1; +#X connect 1 0 22 0; #X connect 2 0 1 0; #X connect 4 0 3 0; -#X connect 8 0 10 0; -#X connect 9 0 8 0; -#X connect 25 0 24 0; -#X restore 790 358 pd other-messages; +#X connect 6 0 27 0; +#X connect 7 0 6 0; +#X connect 20 0 19 0; +#X restore 779 345 pd other-messages; #X text 22 627 see also:; #X obj 139 628 samplerate~; #X obj 97 628 send; #X obj 228 628 namecanvas; #X msg 387 628 message; #X obj 77 24 cnv 15 242 27 empty empty Messages\ you\ can\ send\ to\ Pd: 11 14 0 14 #e0e0e0 #404040 0; -#X obj 518 440 cnv 15 420 27 empty empty Messages\ you\ can\ send\ to\ Patch\ windows\ (canvases) 15 14 0 14 #e0e0e0 #404040 0; -#X obj 518 467 cnv 15 420 27 empty empty (aka\ Dynamic\ patching): 117 12 0 14 #e0e0e0 #404040 0; -#N canvas 565 169 771 410 Dynamic-Patching 0; +#X obj 524 426 cnv 15 420 27 empty empty Messages\ you\ can\ send\ to\ Patch\ windows\ (canvases) 15 14 0 14 #e0e0e0 #404040 0; +#X obj 524 453 cnv 15 420 27 empty empty (aka\ Dynamic\ patching): 117 12 0 14 #e0e0e0 #404040 0; +#N canvas 465 177 863 411 Dynamic-Patching 0; #N canvas 338 52 659 663 creating-boxes 0; #X obj 91 523 send pd-creating-boxes; #X text 19 22 The 'obj' message creates objects boxes. It needs to be followed by a pair of x/y coordinates and then the object name followed by creation arguments (if necessary)., f 60; @@ -135,53 +131,34 @@ #X connect 4 0 0 0; #X connect 5 0 0 0; #X connect 6 0 0 0; -#X restore 181 294 pd creating-boxes; -#N canvas 778 286 529 443 loadbang 0; -#X obj 94 331 s pd-loadbang-example; -#N canvas 376 356 304 192 loadbang-example 0; -#X restore 307 196 pd loadbang-example; -#X text 63 112 Creating a [loadbang] object itself via dynamic patching also doesn't make it fire. So you may also need to send a 'loadbang' message afterwards., f 58; -#X msg 114 263 loadbang; -#X msg 94 197 clear \, obj 100 100 bng \, obj 100 75 loadbang \, connect 1 0 0 0 \, vis 1, f 23; -#X text 184 264 fire loadbang; -#X msg 133 300 clear \, vis 0; -#X obj 341 327 s pd-loadbang; -#X msg 341 298 loadbang; -#X text 331 257 also work for subpatches., f 13; -#X text 63 42 A 'loadbang' message will make [loadbang] objects output a bang. This is useful because when you create abstractions that contain a loadbang object \, they don't get fired \, so you have to force fire after they get created ., f 58; -#X text 55 372 The 'loadbang' message will fire [loadbang] objects that are placed in the named canvas and also in subwindows of that canvas \, but not other loadbang objects elsewhere.; -#X connect 3 0 0 0; -#X connect 4 0 0 0; -#X connect 6 0 0 0; -#X connect 8 0 7 0; -#X restore 591 269 pd loadbang; -#X obj 240 171 namecanvas; +#X restore 283 353 pd creating-boxes; +#X obj 275 158 namecanvas; #N canvas 461 65 592 579 Data-Structures 0; #X msg 141 491 clear; #X msg 41 364 vis \$1; #X obj 41 334 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#N canvas 523 391 191 85 ds2 0; -#N canvas 50 470 557 157 template-toplevel 0; +#N canvas 523 391 231 124 ds2 0; +#N canvas 261 467 557 157 template-toplevel 0; #X obj 21 94 plot bazoo 700 3 10 20 20; #X obj 21 68 drawpolygon q 4 0 0 20 z z -5 10 20; #X obj 21 30 struct template-toplevel float x float y float z float q array bazoo template-element; -#X restore 11 11 pd template-toplevel; -#N canvas 199 231 600 239 template-element 0; +#X restore 32 29 pd template-toplevel; +#N canvas 280 487 477 161 template-element 0; #X obj 58 83 drawpolygon 10 2 5 0 0 -5 -5 0 0 5 5 0; #X obj 59 48 struct template-element float x float y float w; -#X restore 11 34 pd template-element; -#X restore 407 456 pd ds2; +#X restore 32 62 pd template-element; +#X restore 457 460 pd ds2; #X text 65 334 show/hide; #N canvas 361 282 477 221 ds 0; -#X obj 52 45 filledcurve 990 0 1 0 0 50 0 50 50 0 50; -#X obj 52 72 drawcurve 0 1 15 15 20 15 20 20 15 20 15 15; -#X obj 52 99 drawcurve 0 1 30 15 35 15 35 20 30 20 30 15; -#X obj 52 126 filledcurve 999 0 1 10 25 25 45 40 25 25 35 10 25; +#X obj 54 44 filledcurve 990 0 1 0 0 50 0 50 50 0 50; +#X obj 54 71 drawcurve 0 1 15 15 20 15 20 20 15 20 15 15; +#X obj 54 98 drawcurve 0 1 30 15 35 15 35 20 30 20 30 15; +#X obj 54 125 filledcurve 999 0 1 10 25 25 45 40 25 25 35 10 25; #X obj 54 17 struct ds float x float y symbol sym; -#X obj 52 153 drawsymbol sym 55 25 0; -#X restore 456 401 pd ds; +#X obj 54 152 drawsymbol sym 55 25 0; +#X restore 456 399 pd ds; #X msg 100 366 scalar ds 225 225 -hi_there!!; -#X text 317 362 add data structure scalar 'ds' (see [pd ds]) and 3 fields., f 30; +#X text 317 360 add data structure scalar 'ds' (see [pd ds]) and 3 fields., f 30; #X msg 117 407 read ds-text.txt; #X text 187 492 clean it up; #X msg 127 432 write ds-text-2.txt; @@ -189,12 +166,10 @@ #N canvas 164 235 514 421 \$0-DS-example 0; #X restore 337 312 pd \$0-DS-example; #X obj 102 526 s pd-\$0-DS-example; -#X text 66 242 Note you can also use "\$0" to give local names to subpatches. This is useful for abstractions in general. In this case we need to use [send] as "\$0" doesn't work in messages., f 61; -#X text 70 14 A 'vis 1' message shows the window while 'vis 0' hides it. The 'read' and 'write' messages can be used to import and export contents of a window (used for Data Structures). The 'clear' message clears the contentes of a window whatever they are (objects \, Data Structures \, arrays \, anything). A 'scalar' message adds a Data Structure scalar to the window., f 62; #X text 216 312 click to open =>; #X text 271 431 read/write from/to text (see [pd ds2]); -#X text 70 109 For more on Data Structures \, check section 4.data.structures in Pd's tutorial examples.; -#X obj 91 166 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X text 70 109 For more on Data Structures \, check section 4.data.structures in Pd's tutorial examples., f 61; +#X obj 102 166 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #N canvas 491 316 412 249 open 0; #X obj 58 49 inlet; #X obj 58 105 pdcontrol; @@ -203,8 +178,10 @@ #X connect 0 0 2 0; #X connect 1 0 3 0; #X connect 2 0 1 0; -#X restore 91 196 pd open; -#X text 115 165 <-- open first example of the 4.Data.Structure section; +#X restore 102 196 pd open; +#X text 126 165 <-- open first example of the 4.Data.Structure section; +#X text 66 242 Note you can also use "\$0" to give local names to subpatches. In this case we need to use [send] (as "\$0" doesn't work in messages)., f 61; +#X text 70 16 The 'read' and 'write' messages can be used to import and export contents of a window \, which is something used for Data Structures. A 'scalar' message adds a Data Structure scalar to the window. The 'clear' message clears the contentes of a window whatever they are (objects \, Data Structures \, arrays \, anything)., f 61; #X connect 0 0 13 0; #X connect 1 0 13 0; #X connect 2 0 1 0; @@ -212,8 +189,8 @@ #X connect 8 0 13 0; #X connect 10 0 13 0; #X connect 11 0 0 0; -#X connect 19 0 20 0; -#X restore 288 367 pd Data-Structures; +#X connect 17 0 18 0; +#X restore 611 67 pd Data-Structures; #N canvas 691 48 597 554 (dis)connecting-boxes 0; #X obj 79 482 send pd-connect-boxes; #N canvas 413 247 259 224 connect-boxes 0; @@ -235,82 +212,131 @@ #X connect 7 0 0 0; #X connect 8 0 0 0; #X connect 9 0 0 0; -#X restore 547 72 pd (dis)connecting-boxes; -#X text 595 223 loadbang handling:, f 9; -#N canvas 509 124 849 512 save 0; +#X restore 596 155 pd (dis)connecting-boxes; +#N canvas 407 108 849 512 save 0; #X msg 326 121 menusave; #X msg 367 171 menusaveas; #X msg 386 221 menuclose; -#X obj 76 206 pdcontrol; -#X msg 76 178 dir; -#X msg 76 236 \; pd menunew new-example \$1; -#X obj 367 437 s pd-new-example; -#X text 398 108 this will save and create the patch in the directory you created. It'll also rewrite if it's already saved., f 39; #X text 453 163 opens a dialog for you to choose where to save., f 24; -#X obj 96 379 s pd-new-example; #X msg 96 350 text 100 100 very nice; -#X msg 411 399 vis \$1; -#X obj 411 369 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 480 366 note 'vis 0' doesn't close the patch \, just hides it (and shows it too if it's opened)., f 31; -#X text 113 326 add something; +#X msg 426 394 vis \$1; +#X obj 426 364 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; #X obj 405 273 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; #X msg 405 303 dirty \$1; -#X text 466 214 Depending if changes were made with some dynamic patching messages \, it closes without saving., f 48; -#X text 55 120 So first let's send a message to Pd to create a new patch/canvas., f 32; -#X text 151 37 In this example we are sending messages to the main window of a different patch that we first create.; -#X text 478 267 Note that Pd won't ask you either to save changes in the same case as above. To make sure it asks \, you can use 'dirty 1'. Conversely \, 'dirty 0' makes Pd ignore changes you made and doesn't ask you to save when you close., f 47; -#X text 110 177 <-- go; -#X connect 0 0 6 0; -#X connect 1 0 6 0; -#X connect 2 0 6 0; -#X connect 3 0 5 0; -#X connect 4 0 3 0; -#X connect 10 0 9 0; -#X connect 11 0 6 0; -#X connect 12 0 11 0; -#X connect 15 0 16 0; -#X connect 16 0 6 0; -#X restore 661 338 pd save; -#X text 529 329 Other messages (saving a patch):, f 17; -#X text 92 347 clear \, vis \, read \, write \, scalar (Data Structures) and "\$0":, f 34; -#N canvas 527 328 801 383 abstractions 0; -#X text 46 29 You can create abstractions just like you would create any other object in Pd! All you need to do is have the name of the abstraction as the object name., f 48; -#X obj 102 162 send pd-abstractions; -#X msg 102 122 obj 150 220 help-intro; -#X text 269 121 <= click; -#X text 55 265 In this example we loaded another Pd file as an abstraction that resides on the same folder. In this case it's not an actual object (and used as such) \, but another patch used in Pd's documentation., f 48; -#X obj 512 214 send pd-help-intro.pd; -#X msg 512 182 vis \$1; -#X obj 512 154 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 427 41 You probably just want to use [namecanvas] to name an abstraction's window and send messages to it (please \, again \, refer to its help file). But you can also use the abstraction's file name to send it messages. In this case you need to end with ".pd" \, see below:, f 46; -#X text 458 266 This can be particularly important for handling "loadbangs" as the next example on the parent patch shows., f 40; -#X connect 2 0 1 0; +#X text 157 37 In this example we are sending messages to the main window of a different patch that we first create.; +#X obj 70 195 bng 19 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X obj 70 224 openpanel 1; +#X text 107 325 Now add something; +#X text 98 195 <-- choose a directory; +#X text 398 108 this will save and create the patch in the chosen directory. It'll also rewrite if it's already saved/created., f 40; +#X msg 70 254 \; pd menunew new-example.pd \$1; +#X obj 96 379 s pd-new-example.pd; +#X obj 367 437 s pd-new-example.pd; +#X text 478 267 Note that Pd won't ask you to save changes if they were made via dynamic patching. To make sure it asks you \, you can use the 'dirty 1' message. Conversely \, 'dirty 0' makes Pd ignore changes you made and doesn't ask you to save when you close the patch., f 47; +#X text 466 214 Closes the patch but asks you to save if changes were made (see considerations below)., f 48; +#X text 43 99 So first let's send a message to Pd to open a new patch/canvas in a directory of your choosing. Note that the file isn't saved or created yet in your hard drive., f 34; +#X connect 0 0 17 0; +#X connect 1 0 17 0; +#X connect 2 0 17 0; +#X connect 4 0 16 0; +#X connect 5 0 17 0; #X connect 6 0 5 0; -#X connect 7 0 6 0; -#X restore 578 172 pd abstractions; -#X text 31 217 Many of the menu entries in Pd end up making Pd send a message to a canvas name. For instance \, when you create an object or message box. See example below for creating 'boxes'., f 62; -#X text 586 127 handling abstractions:, f 13; -#X text 523 28 You can connect and disconnect boxes. See subpatch below:, f 30; -#X text 44 156 For reference \, please check the help file of -->, f 26; -#X obj 343 172 pdcontrol; -#X text 323 172 &; -#X text 31 21 You can communicate with a Pd window by sending messages to the name of the file (which communicates to the main window of a patch or abstraction). You can also communicate with a subpatch's window by sending messages to the subpatch's name. In both cases you need to precede the send name with 'pd-'. In the case of abstractions \, you also need to end with ".pd". Alternatively you can name a main window or a subpatch with [namecanvas] or use [pdcontrol]., f 65; -#X restore 695 569 pd Dynamic-Patching; +#X connect 7 0 8 0; +#X connect 8 0 17 0; +#X connect 10 0 11 0; +#X connect 11 0 15 0; +#X restore 714 339 pd save; +#X text 582 330 Other messages (saving a patch):, f 17; +#X text 572 111 You can connect and disconnect boxes. See subpatch below:, f 30; +#X text 79 143 For reference \, please check the help file of -->, f 26; +#X obj 378 159 pdcontrol; +#X text 358 159 &; +#X text 45 268 Many of the menu entries in Pd (for instance \, when you create an object or message box) end up causing Pd to send a message to a named canvas. We can abuse this and also use such messages to control a canvas from a patch. See example below for how to create 'boxes'., f 62; +#X text 596 210 handling abstractions and loadbangs:, f 22; +#N canvas 260 23 995 524 abstractions 0; +#X obj 119 173 send pd-abstractions; +#X obj 539 262 s pd-loadbang-example; +#N canvas 376 356 304 192 loadbang-example 0; +#X restore 782 211 pd loadbang-example; +#X msg 559 194 loadbang; +#X msg 539 118 clear \, obj 100 100 bng \, obj 100 75 loadbang \, connect 1 0 0 0 \, vis 1, f 23; +#X msg 578 231 clear \, vis 0; +#X msg 615 434 loadbang; +#X text 628 180 fire [loadbang] <-- objects, f 15; +#X obj 615 463 s pd-abstractions; +#X obj 802 436 loadbang; +#X obj 802 460 bng 19 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X msg 119 133 obj 150 225 rev3~ 100 90 3000 20; +#X msg 222 405 loadbang; +#X obj 222 445 send pd-rev3~.pd; +#X text 46 276 A 'loadbang' message will make [loadbang] objects output a bang. This is useful because when you create abstractions that contain a [loadbang] object (like [rev3~]) \, they don't get fired - so you have to force fire a 'loadbang' after they get created. One way to do this is to send the loadbang message to the abstraction file name.; +#X text 504 33 Note that creating a [loadbang] object itself via dynamic patching doesn't make it fire up either. So you probably want to send a 'loadbang' message afterwards.; +#X text 46 29 You can create abstractions just like you would create any other object in Pd. All you need to do is have the name of the abstraction as the object name followed by arguments if needed or desired. In this example we load [rev3~] \, an abstraction from the 'extra' library.; +#X text 518 318 The 'loadbang' message will fire [loadbang] objects that are placed in the canvas and also in subwindows of that canvas \, but not other loadbang objects elsewhere. Hence \, sending a loadbang message to this window will fire a loadbang in [rev3~] and in [pd loadbang-example] (as well as in this window of course)., f 57; +#X connect 3 0 1 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 8 0; +#X connect 9 0 10 0; +#X connect 11 0 0 0; +#X connect 12 0 13 0; +#X restore 629 257 pd abstractions \; and loadbangs; +#N canvas 550 46 607 633 vis 0; +#X msg 303 335 vis \$1; +#X obj 303 305 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 327 305 show/hide; +#X obj 170 526 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#N canvas 491 316 470 254 open 0; +#X obj 58 49 inlet; +#X obj 58 105 pdcontrol; +#X msg 58 78 dir; +#X msg 58 132 \; pd open 05.counter.pd \$1/../2.control.examples; +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X restore 170 576 pd open; +#X obj 210 345 rev1~; +#X obj 303 370 s pd-rev1~.pd; +#N canvas 164 235 514 421 subpatch 0; +#X restore 164 139 pd subpatch; +#X msg 288 131 vis \$1; +#X obj 288 101 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 312 101 show/hide; +#X obj 288 170 s pd-subpatch; +#X text 91 24 A 'vis 1' message shows the window while 'vis 0' hides it (so it does't get closed). In order to send messages to a subpatch name \, you need to precede its name with 'pd-'.; +#X msg 332 542 vis \$1; +#X obj 332 512 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 356 512 show/hide; +#X text 89 413 The thing is that an abstraction is a pd file that's loaded in another patch \, so nothing differs in respect to other pd files that are opened but not loaded as abstractions. Let's \, for instance \, open an arbitrary .pd file from Pd's control tutorial (05.counter.pd) and communicate with it.; +#X obj 332 581 s pd-05.counter.pd; +#X text 194 525 <-- first open file, f 11; +#X text 89 210 In the cases of abstractions and patch files you also need to precede the file name with 'pd-' \, but you also have to end it with the '.pd' extension (actually the extension is part of the window name \, so nothing is really different). Let's check this in practice with the [rev1~] abstraction., f 61; +#X connect 0 0 6 0; +#X connect 1 0 0 0; +#X connect 3 0 4 0; +#X connect 8 0 11 0; +#X connect 9 0 8 0; +#X connect 13 0 17 0; +#X connect 14 0 13 0; +#X restore 314 218 pd vis; +#X text 569 24 clear \, read \, write \, scalar (Data Structures) and "\$0":, f 34; +#X text 151 206 Let's start with the simple "vis" message:, f 21; +#X text 31 21 You can communicate with a Pd window by sending messages to the name of the pd file (which communicates to the main window of a patch or abstraction). You can also communicate with a subpatch's window. This will be shown shortly but note first that you can also name any window (main or subpatch) with [namecanvas] or \, alternatively \, use [pdcontrol] to send the same messages here documented., f 65; +#X restore 679 561 pd Dynamic-Patching; #X text 87 500 The set-tracing message is useful for debugging with the [trace] object. Check its help file., f 47; -#X text 601 519 Open subpatch for documentation on how to send messages to to a patch window:, f 38; #X obj 265 326 send pd; #X text 29 74 We can use both the [send] object or message boxes to send messages to Pd. Here are some messages that makes sense for you to send to Pd from within a patch. Conversely \, you can also send Pd these messages via Pd's command line., f 62; -#X obj 733 166 send pd; +#X obj 733 156 send pd; #X msg 265 299 compatibility 0.49; -#X text 555 34 The message "dsp 1" turns DSP on and "dsp 0" turns it off., f 32; -#X obj 733 109 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 595 24 The message "dsp 1" turns DSP on and "dsp 0" turns it off., f 32; +#X obj 733 99 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; #X obj 5 615 cnv 1 984 1 empty empty empty 8 12 0 13 #000000 #000000 0; #N canvas 0 22 450 278 (subpatch) 0; #X coords 0 1 100 -1 244 28 1; #X restore 76 24 graph; #N canvas 0 22 450 278 (subpatch) 0; #X coords 0 1 100 -1 421 54 1; -#X restore 517 441 graph; +#X restore 523 427 graph; #X text 780 627 updated for Pd version 0.54; #X obj 310 628 pdcontrol; #N canvas 543 122 589 553 dsp-start/stop 0; @@ -324,18 +350,21 @@ #X msg 223 284 \; pd dsp \$1; #X obj 223 249 set-dsp-tgl; #X text 254 253 <-- DSP on/off; -#X text 86 178 These messages are used in this helper abstraction below to set the toggle according to the DSP state. This abstraction is used in Pd's documentation. Open it to check it out.; -#X text 85 354 Note that the you get a bang from 'pd-dsp-started' not only when audio is turned on \, but whenever the DSP chain gets updated \, as in new audio connections and changes in settings such as a new sample rate. Check the help file of [samplerate~] that uses this feature to output the sample rate whenever it changes., f 63; #X text 255 467 see also:; #X obj 330 468 samplerate~; +#X text 86 178 These messages are used in the helper abstraction below to set the toggle according to the DSP state. This abstraction is used in Pd's documentation. Open it to check it out.; +#X text 85 354 Note that the you get a bang from 'pd-dsp-started' not only when audio is turned on \, but whenever the DSP chain gets updated \, as with new audio connections \, changes in settings such as a new sample rate or when the patch is saved. Check the help file of [samplerate~] that uses this feature to output the sample rate whenever it changes., f 63; #X connect 1 0 0 0; #X connect 2 0 5 0; #X connect 8 0 7 0; -#X restore 786 236 pd dsp-start/stop; -#X text 536 222 Pd sends you bangs when DSP is turned on or off and more \, see -->, f 34; -#X text 548 291 The "fast-forward" message to Pd allows batch processing. Open --> the subpatch for an example., f 33; -#X text 568 357 Here are some other useful --> messages you can send to Pd., f 30; -#X connect 0 0 29 0; -#X connect 13 0 12 0; -#X connect 30 0 27 0; -#X connect 32 0 0 0; +#X restore 778 234 pd dsp-start/stop; +#X text 537 278 The "fast-forward" message to Pd allows batch processing. Open --> the subpatch for an example., f 33; +#X text 557 344 Here are some other useful --> messages you can send to Pd., f 30; +#X text 585 507 Open the following subpatch for documentation on how to send messages to a patch window:, f 45; +#X obj 456 628 pd~; +#X text 35 376 Objects that change their behavior according to the set compatibility have that information in their help files.; +#X text 572 222 Pd sends you bangs when DSP is turned on or off \, see -->, f 28; +#X connect 0 0 27 0; +#X connect 12 0 11 0; +#X connect 28 0 25 0; +#X connect 30 0 0 0; diff --git a/doc/5.reference/send-receive-help.pd b/doc/5.reference/send-receive-help.pd index 5f71ebe87..f145a517c 100644 --- a/doc/5.reference/send-receive-help.pd +++ b/doc/5.reference/send-receive-help.pd @@ -1,67 +1,30 @@ -#N canvas 324 23 915 656 12; +#N canvas 335 23 886 675 12; #X obj 33 15 send; -#X obj 26 120 send help-send1; -#X obj 182 121 send help-send1; -#X obj 332 121 send help-send2; -#X obj 26 150 receive help-send1; -#X obj 182 150 receive help-send2; -#X obj 332 150 receive help-send2; -#X floatatom 26 95 5 0 0 0 - - - 0; -#X floatatom 182 98 5 0 0 0 - - - 0; -#X floatatom 332 97 5 0 0 0 - - - 0; -#X floatatom 26 174 5 0 0 0 - - - 0; -#X floatatom 182 176 5 0 0 0 - - - 0; -#X floatatom 332 174 5 0 0 0 - - - 0; +#X obj 123 174 send help-send1; +#X obj 298 175 send help-send1; +#X obj 123 214 receive help-send1; +#X obj 298 214 receive help-send2; +#X floatatom 123 149 5 0 0 0 - - - 0; +#X floatatom 298 152 5 0 0 0 - - - 0; +#X floatatom 124 285 5 0 0 0 - - - 0; +#X floatatom 123 238 5 0 0 0 - - - 0; +#X floatatom 298 240 5 0 0 0 - - - 0; +#X floatatom 298 319 5 0 0 0 - - - 0; #X obj 374 14 s; -#X msg 199 306 \; help-send1 34 \; help-send2 67; -#X obj 156 540 send; -#X msg 181 448 symbol help-send1; -#X msg 194 477 symbol help-send2; -#X floatatom 127 478 5 0 0 0 - - - 0; -#X symbolatom 181 509 12 0 0 0 - - - 0; -#X obj 599 197 value y; -#X obj 525 214 send y; -#X floatatom 525 186 5 0 0 0 - - - 0; -#X obj 599 166 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X floatatom 599 226 5 0 0 0 - - - 0; -#X text 29 620 see also:; +#X msg 255 428 symbol help-send1; +#X msg 268 457 symbol help-send2; +#X floatatom 173 436 5 0 0 0 - - - 0; +#X symbolatom 255 489 12 0 0 0 - - - 0; +#X text 29 640 see also:; #X text 72 14 - send messages without patch cords; #X text 406 13 - abbreviation; -#X obj 105 619 send~; -#X obj 482 395 list store 1 2 3; -#X obj 628 413 float 1.5; -#X obj 716 413 int 10; -#X msg 482 367 send x; -#X obj 804 340 receive x; -#X listbox 804 374 10 0 0 0 - - - 0; -#X msg 628 353 send x; -#X msg 716 352 send x; +#X obj 105 639 send~; #X obj 375 40 r; #X obj 32 41 receive; #X text 90 40 - receive messages without patch cords; #X text 407 39 - abbreviation; -#X obj 155 619 receive~; -#X floatatom 578 566 5 0 0 0 - x z 0; -#X obj 676 224 send array; -#X msg 676 178 0 -1 0 1 0 -1 0 1, f 9; -#X text 489 454 Note that GUIs have built in send and receive names you can set via properties (right click and check it)., f 40; -#X text 691 619 updated for Pd version 0.52; -#N canvas 0 22 450 278 (subpatch) 0; -#X array array 7 float 2; -#X coords 0 1.1 7 -1.1 100 50 1 0 0; -#X restore 773 186 graph; -#X msg 639 383 send y; -#X msg 726 383 send y; -#X floatatom 809 470 5 0 0 0 - - - 0; -#X obj 809 442 value y; -#X text 490 554 "receive x"; -#X text 676 517 "send x"; -#X text 625 560 send in GUIs can also send to value objects., f 22; -#X text 496 572 "send z"; -#X floatatom 824 570 5 0 0 0 - - - 0; -#X obj 824 541 value z; -#X text 499 87 Interaction with other objects (check their help files):; -#X msg 836 410 send x; +#X obj 155 639 receive~; +#X text 651 639 updated for Pd version 0.52; #N canvas 452 151 914 439 Dealing_with_"\$0" 0; #X obj 171 164 send \$0-x; #X obj 294 120 receive \$0-x; @@ -111,10 +74,9 @@ #X connect 25 0 18 0; #X connect 26 0 11 0; #X connect 27 0 7 0; -#X restore 335 570 pd Dealing_with_"\$0"; -#X msg 223 619 message; -#X obj 374 619 samplerate~; -#X obj 285 619 pd-messages; +#X restore 596 159 pd Dealing_with_"\$0"; +#X msg 223 639 message; +#X obj 285 639 pd-messages; #N canvas 725 70 573 568 reference 0; #X obj 8 53 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0; #X obj 8 86 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 0; @@ -144,40 +106,96 @@ #X text 106 511 1) symbol -; #X text 189 511 receive name symbol (default: empty symbol).; #X text 193 280 send symbol (if given \, 2nd inlet is suppressed \, default: empty symbol)., f 35; -#X restore 723 31 pd reference; -#X text 820 32 <= click; -#X obj 8 77 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X obj 8 607 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X obj 824 514 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 809 409 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X text 23 225 [send] sends messages to [receive] objects with the same name (set by the argument). They work across windows too. Also \, you can use message boxes to send messages if they start with a semicolon as shown below:; -#X text 499 110 The [value] object receives floats from [send] objects with the same name as its variable name. You can also use [send] to send messages to arrays with the same name., f 55; -#X text 479 262 The [receive] object can also get messages from [value] and the other objects below via their "send" messages. Note that [value] can also get these values from these objects (except [list store] because [value] can't deal with lists).; -#X obj 503 517 hsl 162 19 0 127 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; -#X text 7 570 Open subpatch to see how to deal with '\$0' ->; -#X text 22 378 If invoked without an argument \, [send] is assigned to an empty symbol and creates an inlet to let you set the target via "symbol" messages:, f 54; -#X connect 4 0 10 0; -#X connect 5 0 11 0; -#X connect 6 0 12 0; -#X connect 7 0 1 0; -#X connect 8 0 2 0; -#X connect 9 0 3 0; -#X connect 16 0 19 0; -#X connect 17 0 19 0; -#X connect 18 0 15 0; -#X connect 19 0 15 1; -#X connect 20 0 24 0; +#X restore 681 33 pd reference; +#X text 778 34 <= click; +#X obj 8 77 cnv 1 870 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 40 97 [send] sends messages to [receive] objects with the same name (set by the argument). They work across windows too., f 62; +#X text 34 367 If invoked without an argument \, [send] is assigned to an empty symbol and creates an inlet to let you set the target via a "symbol" message:, f 62; +#X obj 548 469 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 548 436 r pd-dsp-started; +#X obj 173 478 s; +#X obj 124 319 s help-send2; +#X obj 298 285 r help-send2; +#X obj 709 334 s pd; +#X msg 709 302 dsp \$1; +#X obj 709 273 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 694 468 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 694 435 r pd-dsp-stopped; +#X text 590 112 Open subpatch below to see how to deal with '\$0', f 27; +#N canvas 614 47 487 653 Interaction_with_other_objects 0; +#X msg 294 62 \; help-send1 34 \; help-send2 67; +#X obj 148 224 value y; +#X obj 74 241 send y; +#X floatatom 74 213 5 0 0 0 - - - 0; +#X obj 148 193 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X floatatom 148 253 5 0 0 0 - - - 0; +#X obj 31 422 list store 1 2 3; +#X obj 177 440 float 1.5; +#X obj 265 440 int 10; +#X msg 31 394 send x; +#X obj 353 367 receive x; +#X listbox 353 401 10 0 0 0 - - - 0; +#X msg 177 380 send x; +#X msg 265 379 send x; +#X floatatom 127 593 5 0 0 0 - x z 0; +#X obj 225 251 send array; +#X msg 225 205 0 -1 0 1 0 -1 0 1, f 9; +#X text 38 481 Note that GUIs have built in send and receive names you can set via properties (right click and check it)., f 40; +#N canvas 0 22 450 278 (subpatch) 0; +#X array array 7 float 2; +#X coords 0 1.1 7 -1.1 100 50 1 0 0; +#X restore 322 213 graph; +#X msg 188 410 send y; +#X msg 275 410 send y; +#X floatatom 358 497 5 0 0 0 - - - 0; +#X obj 358 469 value y; +#X text 39 581 "receive x"; +#X text 225 544 "send x"; +#X text 174 587 send in GUIs can also send to value objects., f 22; +#X text 45 599 "send z"; +#X floatatom 373 597 5 0 0 0 - - - 0; +#X obj 373 568 value z; +#X text 35 24 Interaction with other objects (check their help files):; +#X msg 385 437 send x; +#X obj 373 541 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 358 436 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X text 35 137 The [value] object receives floats from [send] objects with the same name as its variable name. You can also use [send] to send messages to arrays with the same name.; +#X text 28 289 The [receive] object can also get messages from [value] and the other objects below via their "send" messages. Note that [value] can also get these values from these objects (except [list store] because [value] can't deal with lists).; +#X obj 52 544 hsl 162 19 0 127 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X text 50 68 Message boxes also send messages if it starts with a semicolon:, f 32; +#X connect 1 0 5 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 9 0 6 0; +#X connect 10 0 11 0; +#X connect 12 0 7 0; +#X connect 13 0 8 0; +#X connect 16 0 15 0; +#X connect 19 0 7 0; +#X connect 20 0 8 0; #X connect 22 0 21 0; -#X connect 23 0 20 0; -#X connect 32 0 29 0; -#X connect 33 0 34 0; -#X connect 35 0 30 0; -#X connect 36 0 31 0; -#X connect 44 0 43 0; -#X connect 48 0 30 0; -#X connect 49 0 31 0; -#X connect 51 0 50 0; -#X connect 57 0 56 0; -#X connect 59 0 51 0; -#X connect 68 0 57 0; -#X connect 69 0 51 0; +#X connect 28 0 27 0; +#X connect 30 0 22 0; +#X connect 31 0 28 0; +#X connect 32 0 22 0; +#X restore 124 586 pd Interaction_with_other_objects; +#X text 48 533 The [send] and [receive] objects do interact with other objects in Pd. Open the subpatch below for details.; +#X obj 8 627 cnv 1 870 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 530 216 Note you can also use [send] and [receive] to communicate with Pd itself., f 43; +#X text 471 525 For reference \, check "pd-messages" in the "see also" section below \, where such messages to Pd are documented (you'll also find documentation on how to communicate to a named patch window or a patch file in there)., f 55; +#X text 541 290 A commonly used Pd messages is to turn DSP on and off!, f 21; +#X text 516 381 The [receive] objects below respond to change in the DSP status., f 45; +#X connect 3 0 8 0; +#X connect 4 0 9 0; +#X connect 5 0 1 0; +#X connect 6 0 2 0; +#X connect 7 0 37 0; +#X connect 12 0 15 0; +#X connect 13 0 15 0; +#X connect 14 0 36 0; +#X connect 15 0 36 1; +#X connect 35 0 34 0; +#X connect 38 0 10 0; +#X connect 40 0 39 0; +#X connect 41 0 40 0; +#X connect 43 0 42 0; diff --git a/extra/pd~/pd~-help.pd b/extra/pd~/pd~-help.pd index f03b9da08..714d05b06 100644 --- a/extra/pd~/pd~-help.pd +++ b/extra/pd~/pd~-help.pd @@ -1,101 +1,123 @@ -#N canvas 368 23 760 715 12; -#X msg 107 368 foo bar baz; -#X obj 257 461 osc~ 440; -#X obj 174 592 env~ 8192; -#X floatatom 174 631 8 0 0 0 - - - 0; -#X msg 93 333 pd~ stop; -#X obj 257 592 env~ 8192; -#X floatatom 257 631 8 0 0 0 - - - 0; -#X obj 191 496 *~; -#X obj 257 496 *~; -#X obj 37 13 pd~; -#X text 383 454 Creation args:, f 41; -#X text 383 522 -fifo sets round-trip delay in blocks; -#X text 383 538 -pddir sets Pd directory \, e.g. \,, f 41; -#X text 383 570 -scheddir sets scheduler dir \, e.g. \,, f 41; -#X text 418 586 .../.../Resources/extra/pd~, f 36; -#X text 383 505 -sr sets sample rate, f 41; -#X msg 624 216 \; pd dsp \$1; -#X obj 4 43 cnv 1 750 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 672 12 <= click; -#N canvas 555 116 719 472 reference 0; +#N canvas 352 23 762 717 12; +#X msg 113 380 foo bar baz; +#X obj 257 471 osc~ 440; +#X obj 174 618 env~ 8192; +#X floatatom 174 647 8 0 0 0 - - - 0; +#X msg 93 340 pd~ stop; +#X obj 257 618 env~ 8192; +#X floatatom 257 647 8 0 0 0 - - - 0; +#X obj 191 521 *~; +#X obj 257 521 *~; +#X obj 34 12 pd~; +#X msg 636 255 \; pd dsp \$1; +#X obj 4 41 cnv 1 750 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 672 11 <= click; +#N canvas 555 116 719 456 reference 0; #X obj 6 35 cnv 5 700 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0; -#X obj 6 209 cnv 2 700 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; -#X obj 6 297 cnv 2 700 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; -#X obj 5 445 cnv 5 700 5 empty empty empty 8 18 0 13 #202020 #000000 0; -#X obj 5 238 cnv 1 700 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 0; -#X obj 5 265 cnv 1 700 1 empty empty n: 8 12 0 13 #9f9f9f #000000 0; +#X obj 6 199 cnv 2 700 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; +#X obj 6 287 cnv 2 700 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; +#X obj 5 435 cnv 5 700 5 empty empty empty 8 18 0 13 #202020 #000000 0; +#X obj 5 228 cnv 1 700 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 0; +#X obj 5 255 cnv 1 700 1 empty empty n: 8 12 0 13 #9f9f9f #000000 0; #X obj 42 6 pd~; -#X obj 5 323 cnv 1 700 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 0; -#X text 102 329 -ninsig : sets number of input audio channels (default 2)., f 74; -#X text 102 347 -noutsig : sets number of output audio channels (default 2)., f 74; +#X obj 5 313 cnv 1 700 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 0; +#X text 102 319 -ninsig : sets number of input audio channels (default 2)., f 74; +#X text 102 337 -noutsig : sets number of output audio channels (default 2)., f 74; #X obj 6 67 cnv 1 700 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 0; #X text 60 73 pd~ start -; #X text 144 105 pd~ stop - stops the pd sub-process., f 78; #X text 144 122 anything -; -#X text 221 122 messages besides "pd~" are sent to corresponding objects in the sub-process with the same name as the first element in the message., f 67; -#X obj 6 180 cnv 1 700 1 empty empty n: 8 12 0 13 #9f9f9f #000000 0; -#X text 102 383 -fifo : sets number of blocks for round-trip (default 5)., f 74; -#X text 102 365 -sr : sets sample rate of subprocess (default pd's current)., f 74; -#X text 102 401 -pddir : sets Pd's directory (needed if different than default)., f 74; -#X text 102 419 -scheddir : sets scheduler's directory (also needed if different)., f 74; +#X obj 6 170 cnv 1 700 1 empty empty n: 8 12 0 13 #9f9f9f #000000 0; +#X text 102 373 -fifo : sets number of blocks for round-trip (default 5)., f 74; +#X text 102 391 -pddir : sets Pd's directory (needed if different than default)., f 74; +#X text 102 409 -scheddir : sets scheduler's directory (also needed if different)., f 74; #X text 77 5 - run a pd sub-process (for multiprocessing).; -#X text 158 153 signal - signal input if there's a corresponding [adc~] input., f 76; -#X text 158 186 signal - signal input if there's a corresponding [adc~] input., f 76; -#X text 143 241 anything - messages from the sub-process sent via [stdout] objects., f 67; -#X text 158 270 signal - signal output if there's a corresponding [dac~] output., f 64; +#X text 158 143 signal - signal input if there's a corresponding [adc~] input., f 76; +#X text 158 176 signal - signal input if there's a corresponding [adc~] input., f 76; +#X text 143 231 anything - messages from the sub-process sent via [stdout] objects., f 67; +#X text 158 260 signal - signal output if there's a corresponding [dac~] output., f 64; #X text 221 73 start a new sub-process. This message takes startup flags and needs a pd file to open., f 67; #X text 94 44 total number of 'n' signal inlets as given by the -ninsig flag., f 67; -#X text 94 216 total number of 'n' signal outlets as given by the -noutsig flag., f 69; -#X restore 578 13 pd reference; -#X text 29 687 see also:; -#X obj 105 688 stdout; -#X text 383 471 -ninsig sets input audio channels, f 41; -#X text 383 488 -noutsig sets output channels, f 41; -#X obj 292 496 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 27 53 The [pd~] object starts and manages a Pd sub-process that can communicate with the super-process (this one) via audio channels and/or Pd messages. In this way you can take advantage of multi-core CPUs \, and/or use Pd features from within Max (if you're using the Max version of [pd~])., f 100; -#X obj 92 532 pd~ -ninsig 2 -noutsig 2 -fifo 20, f 24; -#X obj 226 496 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 543 686 Updated for Pd version 0.42; -#X text 72 12 - run a pd sub-process (for multiprocessing); -#X text 655 186 DSP on/off; -#X obj 624 182 ../../doc/5.reference/set-dsp-tgl; -#X msg 66 303 pd~ start -nogui pd~-subprocess.pd; -#X msg 31 267 pd~ start pd~-subprocess.pd; -#X text 317 304 (re)starts without the GUI; -#X obj 3 677 cnv 1 750 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 94 206 total number of 'n' signal outlets as given by the -noutsig flag., f 69; +#X text 221 122 messages besides "pd~" are sent to the sub-process., f 67; +#X text 102 355 -sr : sets sample rate of subprocess (default Pd's current)., f 74; +#X restore 578 12 pd reference; +#X text 29 690 see also:; +#X obj 105 691 stdout; +#X obj 292 521 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X obj 226 521 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 543 689 Updated for Pd version 0.42; +#X text 69 11 - run a pd sub-process (for multiprocessing); +#X text 666 224 DSP on/off; +#X obj 636 221 ../../doc/5.reference/set-dsp-tgl; +#X msg 17 284 pd~ start pd~-subprocess.pd; +#X obj 3 680 cnv 1 750 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 347 613 The first outlet reports messages the sub-process sends us via [stdout] objects. Any other outlets are signals corresponding to [dac~] objects in the sub-process., f 55; -#X text 418 554 .../Pd-0.54-0.app/Contents/Resources; -#X text 240 261 Sending a new "start" message stops the sub-process (if there's one) and starts a new one., f 52; -#X obj 92 611 print pd~; -#X msg 123 454 toggle \$1; -#X obj 123 417 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; -#X text 200 357 Message besides "pd~" are sent to named objects (such as [receive]) in the sub-process. So "bar baz" is sent to any object named "foo" and an object named "toggle" gets the float to turn the audio output via a [dac~] object., f 77; -#X text 291 413 Audio input signals appear in [adc~] objects in the sub-process. The sub-process doesn't open real audio devices., f 64; -#X text 163 333 Stop the sub-process; -#X text 148 411 Turn audio output on/off, f 13; -#X text 38 187 ATTENTION: DSP must be running in this process for the sub-process to start and run. This is because its clock is slaved to audio I/O it gets from us! Also note that MIDI objects don't work in a sub-process \, so MIDI messages need to be sent in and out via regular messages., f 80; -#X text 27 104 Messages with the "pd~" selector control the sub-process. A "pd~ start" message takes a pd file name to open and can take startup flags before the file name. For example \, "-nogui" prevents the sub-process's GUI from appearing. Note that you don't have to specify the number of channels in and out \, since that's set by creation arguments. Aslo \, audio config flags (-audiobuf \, -audiodev \, etc.) are ignored., f 100; -#X text 270 439 v; -#X text 270 429 |; -#X text 270 420 |; -#X text 274 409 _; -#X text 280 409 _; -#X connect 0 0 26 0; +#X obj 92 631 print pd~; +#X obj 126 447 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X text 270 451 v; +#X text 270 442 |; +#X text 274 431 _; +#X text 280 431 _; +#X text 27 49 The [pd~] object starts and manages a Pd sub-process that can communicate with the super-process (this one) via audio channels and/or Pd messages. In this way you can take advantage of multi-core CPUs. The Max version of [pd~] \, on the other hand \, allows you to use Pd features from within Max., f 100; +#X text 157 340 Stops the sub-process; +#X msg 126 474 pd dsp \$1; +#X msg 332 533 pd-pd~-subprocess.pd vis \$1; +#X obj 333 507 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X msg 333 474 0; +#X msg 373 474 1; +#X text 359 506 hide/show window; +#X obj 162 691 ../../doc/5.reference/pd-messages; +#X text 549 475 You can communicate to the patch via its file name preceded by 'pd-'. Check the [pd-messages] file in the 'see also' section for more options., f 26; +#X text 403 474 * <-----------------; +#X text 291 437 Audio input signals appear in [adc~] objects in the sub-process., f 64; +#X obj 92 576 pd~ -ninsig 2 -noutsig 2 -fifo 20 -sr 44100, f 24; +#X text 271 582 <-- see [pd reference] for creation flag's descriptions.; +#X msg 126 404 0; +#X msg 166 404 1; +#X text 148 448 DSP On/Off; +#X text 206 377 Other messages are sent to the sub-process \, such as to [receive] objects (like 'foo' in this example) and also messages to 'pd' ("pd dsp 1" \, etc). You can also communicate to the patch file itself (see below *)., f 73; +#X text 579 311 For more about flags \, see:, f 21; +#N canvas 740 224 546 444 startup-flags 0; +#X obj 110 237 pdcontrol; +#X obj 110 177 pdcontrol; +#X msg 110 147 dir; +#X msg 110 206 browse \$1/../../doc/1.manual/x3.htm; +#X text 147 145 <-- Click to open Chapter 3 of Pd's Manual; +#X text 54 41 For a list of all startup flags you can use please refer to the Pd Manual \, Chapter 3 "Getting Pd to run". More specifically \, go to section 3.5 "Preferences and startup options". You can go to the manual via the "help" and "browser" menus or click the message below., f 63; +#X text 84 283 Note \, however \, that audio/midi flags are ignored as the sub-process doesn't open real audio and MIDI devices \, so please refer to 'general flags' only.; +#X text 83 339 The example in the parent patch used the '-nogui' flag to start without the GUI. Also the '-send' flag is used to send a pd message to start DSP right away.; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X restore 611 330 pd startup-flags; +#X msg 56 315 pd~ start -nogui -send pd dsp 1 pd~-subprocess.pd; +#X text 218 277 Sending a new "start" message stops the sub-process (if there's one) and starts a new one (DSP must be on).; +#X text 27 219 ATTENTION: DSP must be running in this process for the sub-process to start and run. This is because its clock is slaved to audio I/O it gets from us!, f 75; +#X text 27 98 Messages with the "pd~" selector control the sub-process. A "pd~ start" message takes a pd file name to open and optional startup flags before it. For example \, "-nogui" prevents the sub-process's GUI from appearing. Note that you shouldn't specify the number of channels in and out or sample rate via startup flags since that's set by [pd~]'s creation flags. The sub-process doesn't open real audio and MIDI devices \, so audio/midi config flags (-audiodev \, -midiindev \, etc.) are ignored. Messages without the "pd~" selector are sent to the sub-process (see examples/details below). Note that the sub-process cannot communicate with MIDI devices connected to Pd \, so MIDI messages need to be sent in and out via regular messages to the sub-process., f 100; +#X text 560 225 --------->; +#X text 407 316 (re)start with flags -->; +#X connect 0 0 43 0; #X connect 1 0 7 0; #X connect 1 0 8 0; #X connect 2 0 3 0; -#X connect 4 0 26 0; +#X connect 4 0 43 0; #X connect 5 0 6 0; -#X connect 7 0 26 0; -#X connect 8 0 26 1; -#X connect 24 0 8 1; -#X connect 26 0 39 0; -#X connect 26 1 2 0; -#X connect 26 2 5 0; -#X connect 27 0 7 1; -#X connect 31 0 16 0; -#X connect 32 0 26 0; -#X connect 33 0 26 0; -#X connect 40 0 26 0; -#X connect 41 0 40 0; +#X connect 7 0 43 0; +#X connect 8 0 43 1; +#X connect 16 0 8 1; +#X connect 17 0 7 1; +#X connect 21 0 10 0; +#X connect 22 0 43 0; +#X connect 26 0 33 0; +#X connect 33 0 43 0; +#X connect 34 0 43 0; +#X connect 35 0 34 0; +#X connect 36 0 35 0; +#X connect 37 0 35 0; +#X connect 43 0 25 0; +#X connect 43 1 2 0; +#X connect 43 2 5 0; +#X connect 45 0 26 0; +#X connect 46 0 26 0; +#X connect 51 0 43 0; diff --git a/extra/pd~/pd~-subprocess.pd b/extra/pd~/pd~-subprocess.pd index 1683cb21d..0f008dd76 100644 --- a/extra/pd~/pd~-subprocess.pd +++ b/extra/pd~/pd~-subprocess.pd @@ -1,45 +1,46 @@ -#N canvas 416 56 629 615 12; -#X obj 89 457 print foo; -#X obj 314 479 stdout; -#X msg 314 410 a b c; -#X obj 127 228 env~ 8192; -#X floatatom 127 267 8 0 0 0 - - - 0; -#X obj 350 162 osc~ 440; -#X msg 261 415 bang; -#X obj 442 401 loadbang; -#X obj 201 228 env~ 8192; -#X floatatom 201 267 8 0 0 0 - - - 0; -#X msg 330 447 4; -#X obj 350 278 dac~; -#X obj 169 187 adc~, f 5; -#X msg 442 462 \; pd dsp \$1; -#X text 465 433 DSP on/off; -#X obj 393 209 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 36 17 This is a test patch to demonstrate the [pd~] object. It's intended as the patch to run in the sub-process. The sub-process (which is a separate instance of Pd) can be called from a Max or Pd super-process., f 78; -#X obj 419 209 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X obj 442 432 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X obj 350 243 *~; -#X obj 384 244 *~; -#X text 36 73 Audio inlets and outlets on the [pd~] object (in the super-process) talk to [adc~] and [dac~] objects here - so \, for instance \, the left [adc~] output here corresponds to the first inlet of the [pd~] object \, and the first channel of [dac~] goes to the second outlet of [pd~] (because the first one is for messages \, as shown further below.), f 78; -#X obj 89 427 receive foo; -#X text 26 319 Any message sent to a [stdout] object in this sub-process (below) appears on the first message outlet of the [pd~] object in the super-process. The super-process can send messages to any named objects such as the [receive] object named as 'foo' in this sub-process below ., f 82; -#X text 34 528 DSP must be on here and in the super-process in order for audio to run. Control objects in this patch will still work with DSP off in the sub-process \, but even so the DSP must still be on in the super-process for time to move forward in the sub-process., f 79; -#X obj 419 174 receive toggle; +#N canvas 215 92 1016 541 12; +#X obj 393 245 print foo; +#X obj 352 488 stdout; +#X msg 301 453 a b c; +#X obj 54 249 env~ 8192; +#X floatatom 54 279 8 0 0 0 - - - 0; +#X obj 257 228 osc~ 440; +#X obj 128 249 env~ 8192; +#X floatatom 128 279 8 0 0 0 - - - 0; +#X obj 257 275 dac~; +#X obj 96 217 adc~, f 5; +#X obj 381 209 receive foo; +#X obj 757 167 print dsp-started; +#X obj 757 264 print dsp-stopped; +#X obj 757 235 bng 19 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X obj 757 138 bng 19 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X obj 352 453 bng 19 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X floatatom 380 453 5 0 0 0 - - - 0; +#X obj 757 109 r pd-dsp-started; +#X obj 757 206 r pd-dsp-stopped; +#X obj 669 408 ../../doc/5.reference/pd-messages; +#X msg 626 197 \; pd dsp 1; +#X obj 381 283 stdout; +#X obj 626 157 ../../doc/5.reference/set-dsp-tgl; +#X text 546 21 DSP must be on both in the sub and super-process in order for audio to run. Control objects in this patch will still work if DSP is off in the sub-process \, but even so the DSP must still be on in the super-process for time to move forward in the sub-process., f 61; +#X text 546 299 Messages sent to 'pd' in the super-process are also possible so you can start/stop the DSP engine in the sub-process and more. This example has [receive] objects that respond to changes in the DSP state from the super process. For reference to all messages you can send to Pd \, open the following documentation patch:, f 61; +#X text 546 447 Note that the above document also shows how to send messages to a Pure Data file \, which is also a possibility to send messages from the super-process to this canvas (such as 'vis 0' and 'vis 1' as shown in the example in the super-process)., f 61; +#X text 21 21 This is a test patch to demonstrate the [pd~] object. It's intended as the patch to run in the sub-process \, which is a separate instance of Pd that can be called from a Pd super-process (or also from a Max super-process if you have the Max version of [pd~])., f 68; +#X text 21 90 Audio inlets and outlets on the [pd~] object (in the super-process) talk to [adc~] and [dac~] objects here - so \, for instance \, the left [adc~] output below corresponds to the first inlet of the [pd~] object. Similarly \, the first channel of [dac~] goes to the second outlet of [pd~] (because the first one is for messages \, as explained below.), f 68; +#X text 21 328 The super-process can send messages to any named object (such as [receive] objects \, arrays \, GUIs with built-in receive names and [value] objects). In this way \, a 'bar baz' message is received by [receive foo] when the super-process sends 'foo bar baz'. On the other hand \, messages sent to [stdout] objects appear on the first outlet of the [pd~] object in the super-process (and you can have more than one [stdout] object)., f 68; #X connect 2 0 1 0; #X connect 3 0 4 0; -#X connect 5 0 19 0; -#X connect 5 0 20 0; -#X connect 6 0 1 0; -#X connect 7 0 18 0; -#X connect 8 0 9 0; -#X connect 10 0 1 0; -#X connect 12 0 3 0; -#X connect 12 1 8 0; -#X connect 15 0 19 1; -#X connect 17 0 20 1; +#X connect 5 0 8 0; +#X connect 5 0 8 1; +#X connect 6 0 7 0; +#X connect 9 0 3 0; +#X connect 9 1 6 0; +#X connect 10 0 0 0; +#X connect 10 0 21 0; +#X connect 13 0 12 0; +#X connect 14 0 11 0; +#X connect 15 0 1 0; +#X connect 16 0 1 0; +#X connect 17 0 14 0; #X connect 18 0 13 0; -#X connect 19 0 11 0; -#X connect 20 0 11 1; -#X connect 22 0 0 0; -#X connect 25 0 17 0; -#X connect 25 0 15 0; +#X connect 22 0 20 0; From 570be229473828253961a77db5b57c5d560cc7c9 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 5 Jan 2024 15:04:02 -0300 Subject: [PATCH 054/450] Update loadbang-help.pd better describe where pd-message is --- doc/5.reference/loadbang-help.pd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/5.reference/loadbang-help.pd b/doc/5.reference/loadbang-help.pd index 3a1e6b2a5..991e8c82f 100644 --- a/doc/5.reference/loadbang-help.pd +++ b/doc/5.reference/loadbang-help.pd @@ -24,7 +24,7 @@ #X obj 230 283 bng 19 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; #X text 40 54 The [loadbang] object outputs a "bang" message when the containing patch is opened as a document or included in another patch as an abstraction., f 66; #X text 40 105 [loadbang] objects within abstractions send their "bang" messages before [loadbang] objects in the calling patch. Otherwise \, the order in which the "bangs" are sent from two [loadbang] objects is undefined., f 66; -#X text 258 183 You can force a [loaddbang] to fire if you send a 'loadbang' message to the patch (see 'pd-messages')., f 35; #X text 85 15 - send a "bang" when loading the patch; +#X text 258 183 You can force a [loaddbang] to fire if you send a 'loadbang' message to the patch (see 'pd-messages' in the 'see also' section below)., f 35; #X connect 0 0 3 0; #X connect 3 0 1 0; From 5ef35619719fc56ad7982df788c0b00d7b070b66 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 5 Jan 2024 22:23:22 -0300 Subject: [PATCH 055/450] fix pd~ help by removing '-send' flag discussion in https://github.com/pure-data/pddp/issues/182#issuecomment-1879434988 --- extra/pd~/pd~-help.pd | 40 ++++++++++++++++++------------------- extra/pd~/pd~-subprocess.pd | 34 ++++++++++++++++--------------- 2 files changed, 38 insertions(+), 36 deletions(-) diff --git a/extra/pd~/pd~-help.pd b/extra/pd~/pd~-help.pd index 714d05b06..a5eb90fb1 100644 --- a/extra/pd~/pd~-help.pd +++ b/extra/pd~/pd~-help.pd @@ -1,4 +1,4 @@ -#N canvas 352 23 762 717 12; +#N canvas 320 23 763 717 12; #X msg 113 380 foo bar baz; #X obj 257 471 osc~ 440; #X obj 174 618 env~ 8192; @@ -67,7 +67,6 @@ #X msg 333 474 0; #X msg 373 474 1; #X text 359 506 hide/show window; -#X obj 162 691 ../../doc/5.reference/pd-messages; #X text 549 475 You can communicate to the patch via its file name preceded by 'pd-'. Check the [pd-messages] file in the 'see also' section for more options., f 26; #X text 403 474 * <-----------------; #X text 291 437 Audio input signals appear in [adc~] objects in the sub-process., f 64; @@ -77,8 +76,8 @@ #X msg 166 404 1; #X text 148 448 DSP On/Off; #X text 206 377 Other messages are sent to the sub-process \, such as to [receive] objects (like 'foo' in this example) and also messages to 'pd' ("pd dsp 1" \, etc). You can also communicate to the patch file itself (see below *)., f 73; -#X text 579 311 For more about flags \, see:, f 21; -#N canvas 740 224 546 444 startup-flags 0; +#X text 563 310 For more about flags \, see:, f 21; +#N canvas 740 224 542 377 startup-flags 0; #X obj 110 237 pdcontrol; #X obj 110 177 pdcontrol; #X msg 110 147 dir; @@ -86,38 +85,39 @@ #X text 147 145 <-- Click to open Chapter 3 of Pd's Manual; #X text 54 41 For a list of all startup flags you can use please refer to the Pd Manual \, Chapter 3 "Getting Pd to run". More specifically \, go to section 3.5 "Preferences and startup options". You can go to the manual via the "help" and "browser" menus or click the message below., f 63; #X text 84 283 Note \, however \, that audio/midi flags are ignored as the sub-process doesn't open real audio and MIDI devices \, so please refer to 'general flags' only.; -#X text 83 339 The example in the parent patch used the '-nogui' flag to start without the GUI. Also the '-send' flag is used to send a pd message to start DSP right away.; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 3 0 0 0; -#X restore 611 330 pd startup-flags; -#X msg 56 315 pd~ start -nogui -send pd dsp 1 pd~-subprocess.pd; +#X restore 595 329 pd startup-flags; #X text 218 277 Sending a new "start" message stops the sub-process (if there's one) and starts a new one (DSP must be on).; #X text 27 219 ATTENTION: DSP must be running in this process for the sub-process to start and run. This is because its clock is slaved to audio I/O it gets from us!, f 75; #X text 27 98 Messages with the "pd~" selector control the sub-process. A "pd~ start" message takes a pd file name to open and optional startup flags before it. For example \, "-nogui" prevents the sub-process's GUI from appearing. Note that you shouldn't specify the number of channels in and out or sample rate via startup flags since that's set by [pd~]'s creation flags. The sub-process doesn't open real audio and MIDI devices \, so audio/midi config flags (-audiodev \, -midiindev \, etc.) are ignored. Messages without the "pd~" selector are sent to the sub-process (see examples/details below). Note that the sub-process cannot communicate with MIDI devices connected to Pd \, so MIDI messages need to be sent in and out via regular messages to the sub-process., f 100; #X text 560 225 --------->; -#X text 407 316 (re)start with flags -->; -#X connect 0 0 43 0; +#X msg 63 315 pd~ start -nogui pd~-subprocess.pd; +#X text 313 315 (re)start with the -nogui flag -->; +#X text 350 334 (turn DSP on via a message); +#X obj 162 691 ../../doc/5.reference/pd-messages; +#X connect 0 0 42 0; #X connect 1 0 7 0; #X connect 1 0 8 0; #X connect 2 0 3 0; -#X connect 4 0 43 0; +#X connect 4 0 42 0; #X connect 5 0 6 0; -#X connect 7 0 43 0; -#X connect 8 0 43 1; +#X connect 7 0 42 0; +#X connect 8 0 42 1; #X connect 16 0 8 1; #X connect 17 0 7 1; #X connect 21 0 10 0; -#X connect 22 0 43 0; +#X connect 22 0 42 0; #X connect 26 0 33 0; -#X connect 33 0 43 0; -#X connect 34 0 43 0; +#X connect 33 0 42 0; +#X connect 34 0 42 0; #X connect 35 0 34 0; #X connect 36 0 35 0; #X connect 37 0 35 0; -#X connect 43 0 25 0; -#X connect 43 1 2 0; -#X connect 43 2 5 0; +#X connect 42 0 25 0; +#X connect 42 1 2 0; +#X connect 42 2 5 0; +#X connect 44 0 26 0; #X connect 45 0 26 0; -#X connect 46 0 26 0; -#X connect 51 0 43 0; +#X connect 54 0 42 0; diff --git a/extra/pd~/pd~-subprocess.pd b/extra/pd~/pd~-subprocess.pd index 0f008dd76..b6cfaf865 100644 --- a/extra/pd~/pd~-subprocess.pd +++ b/extra/pd~/pd~-subprocess.pd @@ -1,10 +1,9 @@ -#N canvas 215 92 1016 541 12; +#N canvas 182 92 1016 541 12; #X obj 393 245 print foo; #X obj 352 488 stdout; #X msg 301 453 a b c; #X obj 54 249 env~ 8192; #X floatatom 54 279 8 0 0 0 - - - 0; -#X obj 257 228 osc~ 440; #X obj 128 249 env~ 8192; #X floatatom 128 279 8 0 0 0 - - - 0; #X obj 257 275 dac~; @@ -18,7 +17,6 @@ #X floatatom 380 453 5 0 0 0 - - - 0; #X obj 757 109 r pd-dsp-started; #X obj 757 206 r pd-dsp-stopped; -#X obj 669 408 ../../doc/5.reference/pd-messages; #X msg 626 197 \; pd dsp 1; #X obj 381 283 stdout; #X obj 626 157 ../../doc/5.reference/set-dsp-tgl; @@ -28,19 +26,23 @@ #X text 21 21 This is a test patch to demonstrate the [pd~] object. It's intended as the patch to run in the sub-process \, which is a separate instance of Pd that can be called from a Pd super-process (or also from a Max super-process if you have the Max version of [pd~])., f 68; #X text 21 90 Audio inlets and outlets on the [pd~] object (in the super-process) talk to [adc~] and [dac~] objects here - so \, for instance \, the left [adc~] output below corresponds to the first inlet of the [pd~] object. Similarly \, the first channel of [dac~] goes to the second outlet of [pd~] (because the first one is for messages \, as explained below.), f 68; #X text 21 328 The super-process can send messages to any named object (such as [receive] objects \, arrays \, GUIs with built-in receive names and [value] objects). In this way \, a 'bar baz' message is received by [receive foo] when the super-process sends 'foo bar baz'. On the other hand \, messages sent to [stdout] objects appear on the first outlet of the [pd~] object in the super-process (and you can have more than one [stdout] object)., f 68; +#X obj 257 238 *~ 0.1; +#X obj 257 207 noise~; +#X obj 653 408 ../../doc/5.reference/pd-messages; #X connect 2 0 1 0; #X connect 3 0 4 0; -#X connect 5 0 8 0; -#X connect 5 0 8 1; -#X connect 6 0 7 0; -#X connect 9 0 3 0; -#X connect 9 1 6 0; -#X connect 10 0 0 0; -#X connect 10 0 21 0; -#X connect 13 0 12 0; -#X connect 14 0 11 0; +#X connect 5 0 6 0; +#X connect 8 0 3 0; +#X connect 8 1 5 0; +#X connect 9 0 0 0; +#X connect 9 0 19 0; +#X connect 12 0 11 0; +#X connect 13 0 10 0; +#X connect 14 0 1 0; #X connect 15 0 1 0; -#X connect 16 0 1 0; -#X connect 17 0 14 0; -#X connect 18 0 13 0; -#X connect 22 0 20 0; +#X connect 16 0 13 0; +#X connect 17 0 12 0; +#X connect 20 0 18 0; +#X connect 27 0 7 0; +#X connect 27 0 7 1; +#X connect 28 0 27 0; From 85fb9bab60c66b18739d3cb857accb922ab8f35f Mon Sep 17 00:00:00 2001 From: porres Date: Sat, 6 Jan 2024 16:13:41 -0300 Subject: [PATCH 056/450] properly document '-send' flag in [pd~] thanks to iohannes in https://github.com/pure-data/pddp/issues/182#issuecomment-1879778876 --- extra/pd~/pd~-help.pd | 77 ++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/extra/pd~/pd~-help.pd b/extra/pd~/pd~-help.pd index a5eb90fb1..2f9e3b64c 100644 --- a/extra/pd~/pd~-help.pd +++ b/extra/pd~/pd~-help.pd @@ -1,4 +1,4 @@ -#N canvas 320 23 763 717 12; +#N canvas 320 23 760 719 12; #X msg 113 380 foo bar baz; #X obj 257 471 osc~ 440; #X obj 174 618 env~ 8192; @@ -60,64 +60,65 @@ #X text 274 431 _; #X text 280 431 _; #X text 27 49 The [pd~] object starts and manages a Pd sub-process that can communicate with the super-process (this one) via audio channels and/or Pd messages. In this way you can take advantage of multi-core CPUs. The Max version of [pd~] \, on the other hand \, allows you to use Pd features from within Max., f 100; -#X text 157 340 Stops the sub-process; #X msg 126 474 pd dsp \$1; #X msg 332 533 pd-pd~-subprocess.pd vis \$1; #X obj 333 507 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; #X msg 333 474 0; #X msg 373 474 1; #X text 359 506 hide/show window; -#X text 549 475 You can communicate to the patch via its file name preceded by 'pd-'. Check the [pd-messages] file in the 'see also' section for more options., f 26; #X text 403 474 * <-----------------; -#X text 291 437 Audio input signals appear in [adc~] objects in the sub-process., f 64; #X obj 92 576 pd~ -ninsig 2 -noutsig 2 -fifo 20 -sr 44100, f 24; #X text 271 582 <-- see [pd reference] for creation flag's descriptions.; #X msg 126 404 0; #X msg 166 404 1; #X text 148 448 DSP On/Off; -#X text 206 377 Other messages are sent to the sub-process \, such as to [receive] objects (like 'foo' in this example) and also messages to 'pd' ("pd dsp 1" \, etc). You can also communicate to the patch file itself (see below *)., f 73; -#X text 563 310 For more about flags \, see:, f 21; -#N canvas 740 224 542 377 startup-flags 0; -#X obj 110 237 pdcontrol; -#X obj 110 177 pdcontrol; -#X msg 110 147 dir; -#X msg 110 206 browse \$1/../../doc/1.manual/x3.htm; -#X text 147 145 <-- Click to open Chapter 3 of Pd's Manual; -#X text 54 41 For a list of all startup flags you can use please refer to the Pd Manual \, Chapter 3 "Getting Pd to run". More specifically \, go to section 3.5 "Preferences and startup options". You can go to the manual via the "help" and "browser" menus or click the message below., f 63; -#X text 84 283 Note \, however \, that audio/midi flags are ignored as the sub-process doesn't open real audio and MIDI devices \, so please refer to 'general flags' only.; -#X connect 1 0 3 0; -#X connect 2 0 1 0; -#X connect 3 0 0 0; -#X restore 595 329 pd startup-flags; -#X text 218 277 Sending a new "start" message stops the sub-process (if there's one) and starts a new one (DSP must be on).; #X text 27 219 ATTENTION: DSP must be running in this process for the sub-process to start and run. This is because its clock is slaved to audio I/O it gets from us!, f 75; #X text 27 98 Messages with the "pd~" selector control the sub-process. A "pd~ start" message takes a pd file name to open and optional startup flags before it. For example \, "-nogui" prevents the sub-process's GUI from appearing. Note that you shouldn't specify the number of channels in and out or sample rate via startup flags since that's set by [pd~]'s creation flags. The sub-process doesn't open real audio and MIDI devices \, so audio/midi config flags (-audiodev \, -midiindev \, etc.) are ignored. Messages without the "pd~" selector are sent to the sub-process (see examples/details below). Note that the sub-process cannot communicate with MIDI devices connected to Pd \, so MIDI messages need to be sent in and out via regular messages to the sub-process., f 100; #X text 560 225 --------->; -#X msg 63 315 pd~ start -nogui pd~-subprocess.pd; -#X text 313 315 (re)start with the -nogui flag -->; -#X text 350 334 (turn DSP on via a message); #X obj 162 691 ../../doc/5.reference/pd-messages; -#X connect 0 0 42 0; +#X msg 46 315 pd~ start -nogui -send pd\ dsp\ 1 pd~-subprocess.pd; +#X text 411 316 (re)start with flags \, see -->; +#N canvas 707 185 554 486 more 0; +#X obj 106 224 pdcontrol; +#X obj 106 164 pdcontrol; +#X msg 106 134 dir; +#X msg 106 193 browse \$1/../../doc/1.manual/x3.htm; +#X text 143 132 <-- Click to open Chapter 3 of Pd's Manual; +#X text 50 28 For a list of all startup flags you can use please refer to the Pd Manual \, Chapter 3 "Getting Pd to run". More specifically \, go to section 3.5 "Preferences and startup options". You can go to the manual via the "help" and "browser" menus or click the message below., f 63; +#X text 42 266 Note \, however \, that audio/midi flags are ignored as the sub-process doesn't open real audio and MIDI devices \, so please refer to 'general flags' only., f 69; +#X text 42 320 In the example on the parent patch we used the '-nogui' flag to run Pd without the GUI and also the '-send' flag to send a message to pd to turn the DSP on. Note that unlike the way you'd use this flag in startup menu or command line you should not use quotes. Instead we have to escape spaces with backslashes., f 69; +#X text 42 404 By the way \, of course you can just use a [loadbang] in the subprocess to turn DSP on \, so these examples are mostly didactical \, not practical., f 69; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X restore 620 317 pd more about startup flags; +#X f 13; +#X text 218 277 sending a new "start" message stops the sub-process (if there's one) and starts a new one (DSP must be on).; +#X text 157 340 stops the sub-process; +#X text 206 377 other messages are sent to the sub-process \, such as to [receive] objects (like 'foo' in this example) and also messages to 'pd' ("pd dsp 1" \, etc). You can also communicate to the patch file itself (see below *)., f 73; +#X text 291 437 audio input signals appear in [adc~] objects in the sub-process., f 64; +#X text 549 475 you can communicate to the patch via its file name preceded by 'pd-'. Check the [pd-messages] file in the 'see also' section for more options/details., f 26; +#X connect 0 0 39 0; #X connect 1 0 7 0; #X connect 1 0 8 0; #X connect 2 0 3 0; -#X connect 4 0 42 0; +#X connect 4 0 39 0; #X connect 5 0 6 0; -#X connect 7 0 42 0; -#X connect 8 0 42 1; +#X connect 7 0 39 0; +#X connect 8 0 39 1; #X connect 16 0 8 1; #X connect 17 0 7 1; #X connect 21 0 10 0; -#X connect 22 0 42 0; -#X connect 26 0 33 0; -#X connect 33 0 42 0; -#X connect 34 0 42 0; +#X connect 22 0 39 0; +#X connect 26 0 32 0; +#X connect 32 0 39 0; +#X connect 33 0 39 0; +#X connect 34 0 33 0; #X connect 35 0 34 0; -#X connect 36 0 35 0; -#X connect 37 0 35 0; -#X connect 42 0 25 0; -#X connect 42 1 2 0; -#X connect 42 2 5 0; -#X connect 44 0 26 0; -#X connect 45 0 26 0; -#X connect 54 0 42 0; +#X connect 36 0 34 0; +#X connect 39 0 25 0; +#X connect 39 1 2 0; +#X connect 39 2 5 0; +#X connect 41 0 26 0; +#X connect 42 0 26 0; +#X connect 48 0 39 0; From c3497b77021cfedba790dbba393672e2056967bf Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Thu, 4 Jan 2024 02:36:26 +0100 Subject: [PATCH 057/450] fix 'pd_this' on Windows On Windows it is not possible to 'properly' export a thread local variable from a DLL. MinGW can do it, but the resulting symbol ('__emutls_v.pd_this') is not portable and certainly not understood by MSVC. The solution is to access 'pd_this' via a function call. For externals, 'pd_this' is now a macro for 'pd_getinstance()'. Internally, we directly use 'pd_this', but we don't try to export it. On other platforms, 'pd_this' is now properly marked as EXTERN. --- src/m_class.c | 5 +++++ src/m_pd.h | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/m_class.c b/src/m_class.c index 9e98c1fa2..c4658ec83 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -147,6 +147,11 @@ EXTERN void pd_setinstance(t_pdinstance *x) pd_this = x; } +t_pdinstance *pd_getinstance(void) +{ + return pd_this; +} + static void pdinstance_renumber(void) { int i; diff --git a/src/m_pd.h b/src/m_pd.h index c658fa555..34041b899 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -965,6 +965,7 @@ EXTERN t_pdinstance pd_maininstance; #ifdef PDINSTANCE EXTERN t_pdinstance *pdinstance_new(void); EXTERN void pd_setinstance(t_pdinstance *x); +EXTERN t_pdinstance *pd_getinstance(void); EXTERN void pdinstance_free(t_pdinstance *x); #endif /* PDINSTANCE */ @@ -979,7 +980,18 @@ EXTERN void pdinstance_free(t_pdinstance *x); #endif #ifdef PDINSTANCE -extern PERTHREAD t_pdinstance *pd_this; +#ifdef _WIN32 +/* Windows does not allow exporting thread-local variables from DLLs, +so externals need to get 'pd_this' with an (implicit) function call. +Internally, we may directly access 'pd_this', but we must not export it! */ +#ifdef PD_INTERNAL +extern PERTHREAD t_pdinstance *pd_this; /* not EXTERN! */ +#else +#define pd_this pd_getinstance() +#endif /* PD_INTERNAL */ +#else +EXTERN PERTHREAD t_pdinstance *pd_this; +#endif /* _WIN32 */ EXTERN t_pdinstance **pd_instances; EXTERN int pd_ninstances; #else From 84a675cdae19cf2c91a0d1fbca015b89e288adc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 9 Jan 2024 08:00:12 +0100 Subject: [PATCH 058/450] unqueue iemgui's on free use a common destructor callback for the iemguis to avoid code duplication. Closes: https://github.com/pure-data/pure-data/issues/2168 --- src/g_all_guis.c | 7 +++++++ src/g_all_guis.h | 3 +++ src/g_bang.c | 4 +--- src/g_mycanvas.c | 9 +-------- src/g_numbox.c | 4 +--- src/g_radio.c | 9 +-------- src/g_slider.c | 9 +-------- src/g_toggle.c | 9 +-------- src/g_vumeter.c | 9 +-------- 9 files changed, 17 insertions(+), 46 deletions(-) diff --git a/src/g_all_guis.c b/src/g_all_guis.c index 1de66d752..ca602e7a5 100644 --- a/src/g_all_guis.c +++ b/src/g_all_guis.c @@ -1024,6 +1024,13 @@ void iemgui_setdrawfunctions(t_iemgui *iemgui, t_iemgui_drawfunctions *w) SET_DRAW(iemgui, move); } +void iemgui_free(t_iemgui *iemgui) { + if(iemgui->x_fsf.x_rcv_able) + pd_unbind(&iemgui->x_obj.ob_pd, iemgui->x_rcv); + pdgui_stub_deleteforkey(iemgui); + sys_unqueuegui(iemgui); +} + t_iemgui *iemgui_new(t_class*cls) diff --git a/src/g_all_guis.h b/src/g_all_guis.h index 1225b298a..34d31473b 100644 --- a/src/g_all_guis.h +++ b/src/g_all_guis.h @@ -333,6 +333,9 @@ EXTERN void iemgui_setdrawfunctions(t_iemgui *iemgui, t_iemgui_drawfunctions *w) */ t_iemgui* iemgui_new(t_class*cls); +/* common destructor */ +void iemgui_free(t_iemgui *x); + /* these are deliberately not exported for now */ /* update the label (both internally and on the GUI) diff --git a/src/g_bang.c b/src/g_bang.c index 49d3e9863..7aef111b7 100644 --- a/src/g_bang.c +++ b/src/g_bang.c @@ -402,11 +402,9 @@ static void *bng_new(t_symbol *s, int argc, t_atom *argv) static void bng_free(t_bng *x) { - if(x->x_gui.x_fsf.x_rcv_able) - pd_unbind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); clock_free(x->x_clock_lck); clock_free(x->x_clock_hld); - pdgui_stub_deleteforkey(x); + iemgui_free(&x->x_gui); } void g_bang_setup(void) diff --git a/src/g_mycanvas.c b/src/g_mycanvas.c index 1775223ed..4166f8708 100644 --- a/src/g_mycanvas.c +++ b/src/g_mycanvas.c @@ -323,17 +323,10 @@ static void *my_canvas_new(t_symbol *s, int argc, t_atom *argv) return (x); } -static void my_canvas_free(t_my_canvas *x) -{ - if(x->x_gui.x_fsf.x_rcv_able) - pd_unbind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); - pdgui_stub_deleteforkey(x); -} - void g_mycanvas_setup(void) { my_canvas_class = class_new(gensym("cnv"), (t_newmethod)my_canvas_new, - (t_method)my_canvas_free, sizeof(t_my_canvas), CLASS_NOINLET, A_GIMME, 0); + (t_method)iemgui_free, sizeof(t_my_canvas), CLASS_NOINLET, A_GIMME, 0); class_addcreator((t_newmethod)my_canvas_new, gensym("my_canvas"), A_GIMME, 0); class_addmethod(my_canvas_class, (t_method)my_canvas_dialog, gensym("dialog"), A_GIMME, 0); diff --git a/src/g_numbox.c b/src/g_numbox.c index 11566cdbb..561530b83 100644 --- a/src/g_numbox.c +++ b/src/g_numbox.c @@ -739,10 +739,8 @@ static void *my_numbox_new(t_symbol *s, int argc, t_atom *argv) static void my_numbox_free(t_my_numbox *x) { - if(x->x_gui.x_fsf.x_rcv_able) - pd_unbind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); clock_free(x->x_clock_wait); - pdgui_stub_deleteforkey(x); + iemgui_free(&x->x_gui); } void g_numbox_setup(void) diff --git a/src/g_radio.c b/src/g_radio.c index c6c1f4fb3..bcc79cc2c 100644 --- a/src/g_radio.c +++ b/src/g_radio.c @@ -673,17 +673,10 @@ static void *dial_new(t_symbol *s, int argc, t_atom *argv) return (radio_donew(s, argc, argv, 1)); } -static void radio_free(t_radio *x) -{ - if(x->x_gui.x_fsf.x_rcv_able) - pd_unbind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); - pdgui_stub_deleteforkey(x); -} - void g_radio_setup(void) { radio_class = class_new(gensym("hradio"), (t_newmethod)radio_new, - (t_method)radio_free, sizeof(t_radio), 0, A_GIMME, 0); + (t_method)iemgui_free, sizeof(t_radio), 0, A_GIMME, 0); class_addcreator((t_newmethod)radio_new, gensym("vradio"), A_GIMME, 0); class_addcreator((t_newmethod)radio_new, gensym("rdb"), A_GIMME, 0); diff --git a/src/g_slider.c b/src/g_slider.c index 441b986f6..a2b92bb5d 100644 --- a/src/g_slider.c +++ b/src/g_slider.c @@ -752,17 +752,10 @@ static void *slider_new(t_symbol *s, int argc, t_atom *argv) return (x); } -static void slider_free(t_slider *x) -{ - if(x->x_gui.x_fsf.x_rcv_able) - pd_unbind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); - pdgui_stub_deleteforkey(x); -} - void g_slider_setup(void) { slider_class = class_new(gensym("hsl"), (t_newmethod)slider_new, - (t_method)slider_free, sizeof(t_slider), 0, A_GIMME, 0); + (t_method)iemgui_free, sizeof(t_slider), 0, A_GIMME, 0); class_addcreator((t_newmethod)slider_new, gensym("vsl"), A_GIMME, 0); class_addcreator((t_newmethod)slider_new, gensym("hslider"), A_GIMME, 0); class_addcreator((t_newmethod)slider_new, gensym("vslider"), A_GIMME, 0); diff --git a/src/g_toggle.c b/src/g_toggle.c index 04aa287a1..aaecaf892 100644 --- a/src/g_toggle.c +++ b/src/g_toggle.c @@ -353,17 +353,10 @@ static void *toggle_new(t_symbol *s, int argc, t_atom *argv) return (x); } -static void toggle_free(t_toggle *x) -{ - if(x->x_gui.x_fsf.x_rcv_able) - pd_unbind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); - pdgui_stub_deleteforkey(x); -} - void g_toggle_setup(void) { toggle_class = class_new(gensym("tgl"), (t_newmethod)toggle_new, - (t_method)toggle_free, sizeof(t_toggle), 0, A_GIMME, 0); + (t_method)iemgui_free, sizeof(t_toggle), 0, A_GIMME, 0); class_addcreator((t_newmethod)toggle_new, gensym("toggle"), A_GIMME, 0); class_addbang(toggle_class, toggle_bang); class_addfloat(toggle_class, toggle_float); diff --git a/src/g_vumeter.c b/src/g_vumeter.c index b495f5de7..6519eb486 100644 --- a/src/g_vumeter.c +++ b/src/g_vumeter.c @@ -557,17 +557,10 @@ static void *vu_new(t_symbol *s, int argc, t_atom *argv) return (x); } -static void vu_free(t_vu *x) -{ - if(x->x_gui.x_fsf.x_rcv_able) - pd_unbind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); - pdgui_stub_deleteforkey(x); -} - void g_vumeter_setup(void) { vu_class = class_new(gensym("vu"), (t_newmethod)vu_new, - (t_method)vu_free, sizeof(t_vu), 0, A_GIMME, 0); + (t_method)iemgui_free, sizeof(t_vu), 0, A_GIMME, 0); class_addbang(vu_class,vu_bang); class_addfloat(vu_class,vu_float); class_addmethod(vu_class, (t_method)vu_ft1, From 5a914a16f228e9a37f4e80892dd7831dc086b3dd Mon Sep 17 00:00:00 2001 From: aaaaalbert Date: Mon, 15 Jan 2024 22:56:06 +0100 Subject: [PATCH 059/450] Fix typos in German translation, de.po --- po/de.po | 86 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/po/de.po b/po/de.po index db3742b79..5325b0e63 100644 --- a/po/de.po +++ b/po/de.po @@ -53,7 +53,7 @@ msgid "Undo cut" msgstr "Rückgängig: Ausschneiden" msgid "Undo disconnect" -msgstr "Rückgängig: Verbindung Trennen" +msgstr "Rückgängig: Verbindung trennen" msgid "Undo duplicate" msgstr "Rückgängig: Duplizieren" @@ -77,7 +77,7 @@ msgid "Redo cut" msgstr "Wiederholen: Ausschneiden" msgid "Redo disconnect" -msgstr "Wiederholen: Verbindung Trennen" +msgstr "Wiederholen: Verbindung trennen" msgid "Redo duplicate" msgstr "Wiederholen: Duplizieren" @@ -92,13 +92,13 @@ msgid "Redo typing" msgstr "Wiederholen: Eingabe" msgid "no Pd settings to clear" -msgstr "Keine Pd Einstellungen zum Zurücksetzen" +msgstr "Keine Pd-Einstellungen zum Zurücksetzen" msgid "removed .pdsettings file" msgstr "Datei \".pdsettings\" entfernt" msgid "couldn't delete .pdsettings file" -msgstr "die Datei \".pdsettings\" konnte nicht gelöscht werden" +msgstr "Die Datei \".pdsettings\" konnte nicht gelöscht werden" msgid "failed to erase Pd settings" msgstr "Löschen der Pd-Einstellungen schlug fehl" @@ -115,7 +115,7 @@ msgstr "" "Start abgestürzt" msgid "(re-save preferences to reinstate them)" -msgstr "(speichern Sie die Einstellungen um sie wiederherzustellen)" +msgstr "(speichern Sie die Einstellungen, um sie wiederherzustellen)" msgid "File" msgstr "Datei" @@ -148,7 +148,7 @@ msgid "Paste" msgstr "Einfügen" msgid "Array Properties" -msgstr "Array Eigenschaften" +msgstr "Array-Eigenschaften" msgid "Array" msgstr "Array" @@ -259,22 +259,22 @@ msgstr "" "WARNUNG: pdtk_canvas_dialog hat unbekannte graphme-Einstellungen detektiert" msgid "Canvas Properties" -msgstr "Canvas Eigenschaften" +msgstr "Canvas-Eigenschaften" msgid "Scale" msgstr "Skalierung" msgid "X units per pixel:" -msgstr "X Einheiten pro Pixel:" +msgstr "X-Einheiten pro Pixel:" msgid "Y units per pixel:" -msgstr "Y Einheiten pro Pixel:" +msgstr "Y-Einheiten pro Pixel:" msgid "Appearance on parent patch" msgstr "Erscheinen auf dem übergeordneten Patch" msgid "Graph-On-Parent" -msgstr "Graph on Parent" +msgstr "Graph-on-Parent" msgid "Hide object name and arguments" msgstr "Objektname und Argumente verbergen" @@ -295,7 +295,7 @@ msgid "Y range: from" msgstr "Y-Spanne, von" msgid "Data Properties" -msgstr "Daten Eigenschaften" +msgstr "Daten-Eigenschaften" msgid "Send" msgstr "Abschicken" @@ -324,7 +324,7 @@ msgid "Showing '%1$d' out of %2$d items in %3$s" msgstr "Zeige %1$d von %2$d Ergebnissen für %3$s" msgid "Pd window" -msgstr "Pd Fenster" +msgstr "Pd-Fenster" msgid "Match whole word only" msgstr "Ganzes Wort abgleichen" @@ -355,7 +355,7 @@ msgid "Y only" msgstr "nur Y" msgid "GUI Box Properties" -msgstr "GUI Box Eigenschaften" +msgstr "GUI-Box-Eigenschaften" msgid "Messages" msgstr "Messages" @@ -421,7 +421,7 @@ msgid "Toggle" msgstr "Schalter" msgid "Non Zero Value" -msgstr "Nicht-Null Wert" +msgstr "Nicht-Null-Wert" msgid "Value:" msgstr "Wert:" @@ -525,10 +525,10 @@ msgid "MIDI system" msgstr "MIDI-System" msgid "MIDI Settings" -msgstr "MIDI Einstellungen" +msgstr "MIDI-Einstellungen" msgid "ALSA MIDI Settings" -msgstr "ALSA MIDI Einstellungen" +msgstr "ALSA-MIDI-Einstellungen" msgid "Pd search path for objects, help, audio, text and other files" msgstr "" @@ -607,7 +607,7 @@ msgid "MIDI preferences" msgstr "MIDI" msgid "deken preferences" -msgstr "Deken Einstellungen" +msgstr "Deken-Einstellungen" msgid "misc preferences" msgstr "sonstiges" @@ -622,7 +622,7 @@ msgid "Settings below require a restart of Pd!" msgstr "Die folgenden Einstellungen erfordern einen Neustart von Pd!" msgid "Pd libraries to load on startup" -msgstr "Pd-Bibliotheken die automatisch geladen werden" +msgstr "Pd-Bibliotheken, die automatisch geladen werden" msgid "GUI options" msgstr "GUI-Einstellungen" @@ -667,16 +667,16 @@ msgid "Pd Files" msgstr "Pd-Dateien" msgid "Max Patch Files" -msgstr "Max Patch Dateien" +msgstr "Max-Patch-Dateien" msgid "Max Text Files" -msgstr "Max Textdateien" +msgstr "Max-Textdateien" msgid "Max Patch Files (.pat)" -msgstr "Max Patch Dateien (.pat)" +msgstr "Max-Patch-Dateien (.pat)" msgid "Max Text Files (.mxt)" -msgstr "Max Textdateien (.mxt)" +msgstr "Max-Textdateien (.mxt)" #, tcl-format msgid "detected font: %s" @@ -757,7 +757,7 @@ msgstr "Installiere deken Paket '%s'" #, tcl-format msgid "ignoring '%s': doesn't look like a deken package" -msgstr "Ignoriere '%s': dies scheint kein deken Paket zu sein" +msgstr "Ignoriere '%s': dies scheint kein Deken-Paket zu sein" #, tcl-format msgid "Installing '%s'" @@ -884,13 +884,13 @@ msgid "Platform re-detected: %s" msgstr "Paketarchitektur korrigiert: %s" msgid "Deken Packages" -msgstr "Deken Pakete" +msgstr "Deken-Pakete" msgid "ZIP Files" -msgstr "ZIP Archive" +msgstr "ZIP-Archive" msgid "TAR Files" -msgstr "TAR Archive" +msgstr "TAR-Archive" msgid "All Files" msgstr "Alle Dateien" @@ -1033,7 +1033,7 @@ msgid "translations" msgstr "Übersetzungen" msgid "Only install externals uploaded by people you trust." -msgstr "Installieren Sie nur Externals deren Entwickler_innen Sie vertrauen." +msgstr "Installieren Sie nur Externals, deren Entwickler_innen Sie vertrauen." msgid "Disabling tabbed view: incompatible Tcl/Tk detected" msgstr "Deaktiviere Reiteransicht: inkompatible Tcl/Tk-version gefunden" @@ -1075,7 +1075,7 @@ msgid "Found %1$d usable packages (of %2$d packages in total)." msgstr "%1$d verwendbare Pakete gefunden (von insgesamt %2$d Paketen)." msgid "It appears that there are no matching packages for your architecture." -msgstr "Es scheint als gäbe es keine passenden Pakete für Ihre Architektur." +msgstr "Es scheint, als gäbe es keine passenden Pakete für Ihre Architektur." msgid "No matching externals found." msgstr "Keine passenden Externals gefunden." @@ -1137,7 +1137,7 @@ msgstr "Ignoriere Checksummen-Fehler" #, tcl-format msgid "[deken] deken-plugin.tcl (Pd externals search) loaded from %s." -msgstr "[deken] Pd Paketmanager vom Pfad %s geladen." +msgstr "[deken] Pd-Paketmanager vom Pfad %s geladen." #, tcl-format msgid "[deken] Platform detected: %s" @@ -1178,7 +1178,7 @@ msgid "Open package webpage" msgstr "Webseite des Pakets öffnen" msgid "Copy package URL" -msgstr "Paket URL kopieren" +msgstr "Paket-URL kopieren" msgid "Copy SHA256 checksum URL" msgstr "URL zur SHA256-Prüfsumme kopieren" @@ -1471,10 +1471,10 @@ msgid "Find Last Error" msgstr "Letzten Fehler finden" msgid "DSP On" -msgstr "DSP Ein" +msgstr "DSP ein" msgid "DSP Off" -msgstr "DSP Aus" +msgstr "DSP aus" msgid "Test Audio and MIDI..." msgstr "Audio und MIDI testen..." @@ -1507,10 +1507,10 @@ msgid "Parent Window" msgstr "Übergeordnetes Fenster" msgid "HTML Manual..." -msgstr "HTML Anleitung..." +msgstr "HTML-Anleitung..." msgid "Browser..." -msgstr "Patch Browser..." +msgstr "Patch-Browser..." msgid "List of objects..." msgstr "Liste aller Objekte..." @@ -1538,7 +1538,7 @@ msgid "removed GUI settings" msgstr "GUI-Einstellungen entfernt" msgid "no Pd-GUI settings to clear" -msgstr "Keine Pd-GUI Einstellungen zum Zurücksetzen" +msgstr "Keine Pd-GUI-Einstellungen zum Zurücksetzen" msgid "Edit Preferences..." msgstr "Einstellungen bearbeiten..." @@ -1616,7 +1616,7 @@ msgid "DSP" msgstr "DSP" msgid "Audio I/O error" -msgstr "Audio E/A-Fehler" +msgstr "Audio-E/A-Fehler" msgid "Log:" msgstr "Protokoll:" @@ -1665,7 +1665,7 @@ msgstr "überspringe '%s': kein Pd-File" #~ msgstr "Audioeinstellungen..." #~ msgid "MIDI..." -#~ msgstr "MIDI Einstellungen..." +#~ msgstr "MIDI-Einstellungen..." # iemgui #~ msgid "-------dimensions(digits)(pix):-------" @@ -1719,7 +1719,7 @@ msgstr "überspringe '%s': kein Pd-File" #~ msgstr "logarithmisch" #~ msgid "log-height:" -#~ msgstr "log Höhe:" +#~ msgstr "log-Höhe:" #~ msgid "max:" #~ msgstr "max:" @@ -1759,7 +1759,7 @@ msgstr "überspringe '%s': kein Pd-File" #, tcl-format #~ msgid "couldn't create \"externals\" directory in: %s\n" -#~ msgstr "konnte kein \"externals\" Verzeichnis in '%s' erstellen.\n" +#~ msgstr "konnte kein \"externals\"-Verzeichnis in '%s' erstellen.\n" #~ msgid "Intrrpt:" #~ msgstr "Interruptzeit:" @@ -1799,10 +1799,10 @@ msgstr "überspringe '%s': kein Pd-File" #~ msgstr "für:" #~ msgid "really quit?" -#~ msgstr "Wirklich Abbrechen?" +#~ msgstr "Wirklich abbrechen?" #~ msgid "Use multiple ALSA devices" -#~ msgstr "Mehrere ALSA Geräte verwenden" +#~ msgstr "Mehrere ALSA-Geräte verwenden" #~ msgid "Math" #~ msgstr "Mathe" @@ -1823,7 +1823,7 @@ msgstr "überspringe '%s': kein Pd-File" #~ msgstr "Eingabegerät 4:" #~ msgid "Toggle Console" -#~ msgstr "Konsole Ein/Aus" +#~ msgstr "Konsole ein/aus" #~ msgid "Font Properties" #~ msgstr "Zeichensatz-Einstellungen" @@ -1862,7 +1862,7 @@ msgstr "überspringe '%s': kein Pd-File" #~ msgid "WARNING: Font weight '%s' not found, using default (%s)" #~ msgstr "" -#~ "WARNUNG: Zeichensatz Schnitt '%s' nicht gefunden, Standard wird verwendet " +#~ "WARNUNG: Schriftstärke '%s' nicht gefunden, Standard wird verwendet " #~ "(%s)" #~ msgid "WARNING: Font family '%s' not found, using default (%s)" From d67ff2603ded7f84883a90bdd2389116e2f210d3 Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 22 Jan 2024 19:00:39 -0300 Subject: [PATCH 060/450] document using 'control' key to temprarily get out of edit mode closes https://github.com/pure-data/pddp/issues/183 --- doc/2.control.examples/01.PART1.hello.pd | 2 +- doc/2.control.examples/02.editing.pd | 60 ++++++++---------------- 2 files changed, 20 insertions(+), 42 deletions(-) diff --git a/doc/2.control.examples/01.PART1.hello.pd b/doc/2.control.examples/01.PART1.hello.pd index 11eaf7642..63a635d5c 100644 --- a/doc/2.control.examples/01.PART1.hello.pd +++ b/doc/2.control.examples/01.PART1.hello.pd @@ -10,9 +10,9 @@ #X text 215 83 <-- message box; #X text 24 217 Message boxes respond to mouse clicks by sending their contents to one or more destinations. The usual destination is the "outlet" at the lower left corner of the box. Click on the message box above and watch the terminal window Pd was started in. You should see the "hello world" message appear., f 63; #X text 24 484 To get help (for either GUIs \, message box or objects) \, right click it and select "Help". You should see a "help window" for the object., f 63; -#X text 24 16 There are four types of text (or 'box') objects in Pd: Message \, GUI \, Object \, and Comment. Comments are simple texts (like this one) that do nothing. Check below:, f 63; #X text 189 145 <-- bang button (another GUI); #X text 24 296 The number atom box is a GUI (graphical user interface) and responds to click and "dragging" up and down with the mouse \, which changes the contents and sends the result out its outlet. You can also type a number after clicking on the atom box \, hit "enter" to output the number or click anywhere else to cancel. You can right click on it for properties. A "bang" GUI sends "bang" messages when clicked on \, you can also right click it for properties., f 63; +#X text 24 16 There are four types of text (or 'box') objects in Pd: Message \, GUI \, Object \, and Comment. Comments are simple texts (like this one) that do nothing. Check the options below:, f 63; #X connect 0 0 1 0; #X connect 2 0 1 0; #X connect 4 0 1 0; diff --git a/doc/2.control.examples/02.editing.pd b/doc/2.control.examples/02.editing.pd index cc2dbadd0..1a0b8f8d4 100644 --- a/doc/2.control.examples/02.editing.pd +++ b/doc/2.control.examples/02.editing.pd @@ -1,43 +1,21 @@ -#N canvas 594 23 523 712 12; -#X msg 116 46 hello world; -#X obj 225 82 print; -#X floatatom 225 46 5 0 0 0 - - - 0; -#X text 115 25 message; -#X text 274 83 object; -#X text 44 122 When you first open a Pd document like this one \, your -cursor will be an arrow. Select "edit mode" in the Edit menu and the -cursor will change to the image of a hand. The patch is now in edit -mode. You can move any object by dragging it., f 63; -#X text 44 191 Select "Edit mode" again in the Edit menu and you're -back to the arrow cursor which acts on objects without moving them. -, f 63; -#X text 44 231 In Edit mode \, if you click on a message \, object -\, or comment \, you can then retype the text. For objects this will -create a new object and delete the old one. Pd will try to reconnect -the newly created object in the same way as the old one., f 63; -#X text 44 301 When you're done changing the contents of the box \, -click outside the box to deselect it. This tells Pd to incorporate -the new text., f 63; -#X text 44 356 You can create new objects by duplicating existing ones -using the "duplicate" menu item. You can also "cut" and "paste" them. -If you duplicate several connected objects the connections will be -replicated too., f 63; -#X text 44 422 Edit mode also lets you make and break connections between -objects. Put the "hand" cursor over a line connecting two objects: -it turns into an X. Clicking will select the connection \, which you -can delete with the delete key \, or "Cut" from the "Edit" menu. Hold -the cursor over an outlet and it becomes a circle (a patch point). -Drag to any box and release--you will be connected to the nearest inlet. -, f 63; -#X text 268 44 atom number box; -#X text 281 672 updated for Pd version 0.52-2; -#X text 44 531 The "put" menu creates new text items of any of the -four types. Note that there are other GUI boxes in this menu \, like -the list box than can hold one or more atoms. An atom in Pd is a message -item \, usually either a float or a symbol. The put menu also offers -a "symbol" atom box \, a GUI box analogous to the atom number box but -for showing and entering single text strings. Other GUIs like bang -\, toggle are also in this menu \, as well as arrays and graphs (which -we'll see later on)., f 63; +#N canvas 201 47 983 495 12; +#X msg 135 26 hello world; +#X obj 244 92 print; +#X floatatom 244 26 5 0 0 0 - - - 0; +#X text 74 24 message; +#X text 293 93 object; +#X text 46 413 In Edit mode \, if you click on a message \, object \, or comment \, you can then retype the text. For objects this will create a new object and delete the old one. Pd will try to reconnect the newly created object in the same way as the old one., f 63; +#X text 528 23 When you're done changing the contents of the box \, click outside the box to deselect it. This tells Pd to incorporate the new text.; +#X text 528 84 You can create new objects by duplicating existing ones using the "duplicate" menu item. You can also "cut" and "paste" them. If you duplicate several connected objects the connections will be replicated too.; +#X text 528 155 Edit mode also lets you make and break connections between objects. Put the "hand" cursor over a line connecting two objects: it turns into an X. Clicking will select the connection \, which you can delete with the delete key \, or "Cut" from the "Edit" menu. Hold the cursor over an outlet and it becomes a circle (a patch point). Drag to any box and release--you will be connected to the nearest inlet.; +#X text 287 25 atom number box; +#X text 528 276 The "put" menu creates new text items of any of the four types. Note that there are other GUI boxes in this menu \, like the list box than can hold one or more atoms. An atom in Pd is a message item \, usually either a float or a symbol. The put menu also offers a "symbol" atom box \, a GUI box analogous to the atom number box but for showing and entering single text strings. Other GUIs like bang \, toggle are also in this menu \, as well as arrays and graphs (which we'll see later on).; +#X obj 271 55 bng 19 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X text 298 54 bang button; +#X text 46 132 When you first open a Pd document like this one \, your cursor will be an arrow. This is also known as "run" mode and you can then click and interact with objects like messages \, number boxes and bang buttons. Select "edit mode" in the Edit menu to check it on and the cursor will change to the image of a hand. The patch is now in edit mode. You can move any object by clicking on it and dragging it. You can also select a set of objects and then move them all., f 63; +#X text 46 253 Select "Edit mode" again to uncheck it in the Edit menu and you're back in run mode with the arrow cursor which acts on objects without moving them., f 63; +#X text 46 305 Note that the Edit menu also shows you a keyboard shortcuts to alter into and out of "Edit mode". If you are predominantly editing a patch but would like to quickly get out of it just to click on a message or something \, you can just press and hold the control key (command in mac computers) and you'll note the arrow is back until you release the key so you can briefly do what you want., f 63; +#X text 728 441 updated for Pd version 0.54-1; #X connect 0 0 1 0; #X connect 2 0 1 0; +#X connect 11 0 1 0; From 07eddac1e5fb5391bc6ccb04c35068ba1defc5a5 Mon Sep 17 00:00:00 2001 From: Lucas Cordiviola Date: Tue, 23 Jan 2024 00:52:58 -0300 Subject: [PATCH 061/450] html: document using 'control' key to temporarily get out of edit mode (#2177) --- doc/1.manual/x2.htm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 226bc8ec0..09d020726 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -234,7 +234,10 @@

2.2.1. edit and run mode

moves boxes or makes and cuts connections; in run mode clicking on boxes sends them messages which they react to in different ways. In run mode, number and message boxes can be used as controls. Normally, when you are in a performance -you will stay in run mode; to change the patch you go to edit mode. +you will stay in run mode; to change the patch you go to edit mode. If you are +in edit mode and you need to briefly switch to run mode you can hold the +control key (command in mac computers) and you'll be able to use the mouse +as in run mode until you release the control key.

2.2.2. creating boxes

From 4952566ea92842b0d4861ad3aaf61711187d2171 Mon Sep 17 00:00:00 2001 From: porres Date: Tue, 23 Jan 2024 01:06:20 -0300 Subject: [PATCH 062/450] revise last commit by lucarda --- doc/1.manual/x2.htm | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 09d020726..925545e0d 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -227,17 +227,23 @@

2.1.4. patches and files

2.2. editing Pd patches

+

A patch can be in edit or run mode; this really only affects how mouse +clicks affect the patch. In run mode, the mouse your cursor is an arrow, and +when you first open a patch, it is in run mode. Select "edit mode" in the +Edit menu to check it on and the cursor will change to the image of a hand. +

2.2.1. edit and run mode

-

A patch can be in edit or run mode; this really only affects how mouse -clicks affect the patch. In edit mode, clicking and dragging selects and -moves boxes or makes and cuts connections; in run mode clicking on boxes sends -them messages which they react to in different ways. In run mode, number and -message boxes can be used as controls. Normally, when you are in a performance -you will stay in run mode; to change the patch you go to edit mode. If you are -in edit mode and you need to briefly switch to run mode you can hold the -control key (command in mac computers) and you'll be able to use the mouse -as in run mode until you release the control key. +

In edit mode, clicking and dragging selects and moves boxes or makes +and cuts connections; in run mode clicking on boxes sends them messages +which they react to in different ways. In run mode, number and message +boxes can be used as controls. Normally, when you are in a performance +you will stay in run mode. + +

If you are predominantly editing a patch but would like to quickly +go to run mode just to click on something like a message, you can just +press and hold the control key (command in mac computers) and you'll +note the shape of an arrow is back until you release the key.

2.2.2. creating boxes

From 164ae51503fc270251c512e310a430df9fc72931 Mon Sep 17 00:00:00 2001 From: Antoine Rousseau <_antoine_@metalu.net> Date: Sun, 28 Jan 2024 14:22:55 +0100 Subject: [PATCH 063/450] make canvas dirty after adding any type of object --- src/g_text.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/g_text.c b/src/g_text.c index 6c8ef69a7..07aa52292 100644 --- a/src/g_text.c +++ b/src/g_text.c @@ -98,6 +98,7 @@ void glist_text(t_glist *gl, t_symbol *s, int argc, t_atom *argv) canvas_undo_add(glist_getcanvas(gl), UNDO_CREATE, "create", (void *)canvas_undo_set_create(glist_getcanvas(gl))); canvas_startmotion(glist_getcanvas(gl)); + canvas_dirty(glist_getcanvas(gl), 1); } } @@ -155,6 +156,7 @@ static void canvas_objtext(t_glist *gl, int xpix, int ypix, int width, /* this is called if we've been created from the menu. */ glist_select(gl, &x->te_g); gobj_activate(&x->te_g, gl, 1); + canvas_dirty(gl, 1); } if (pd_class(&x->ob_pd) == vinlet_class) canvas_resortinlets(glist_getcanvas(gl)); @@ -554,6 +556,7 @@ void canvas_msg(t_glist *gl, t_symbol *s, int argc, t_atom *argv) else canvas_startmotion(glist_getcanvas(gl)); canvas_undo_add(glist_getcanvas(gl), UNDO_CREATE, "create", (void *)canvas_undo_set_create(glist_getcanvas(gl))); + canvas_dirty(glist_getcanvas(gl), 1); } } @@ -1216,6 +1219,7 @@ void canvas_atom(t_glist *gl, t_atomtype type, else canvas_startmotion(glist_getcanvas(gl)); canvas_undo_add(glist_getcanvas(gl), UNDO_CREATE, "create", (void *)canvas_undo_set_create(glist_getcanvas(gl))); + canvas_dirty(glist_getcanvas(gl), 1); } } From d90ee51e96a79c20f8ca101f9e05901fccd9c4b6 Mon Sep 17 00:00:00 2001 From: Antoine Rousseau <_antoine_@metalu.net> Date: Sun, 28 Jan 2024 11:44:03 +0100 Subject: [PATCH 064/450] correct which canvas Pd proposes to save when requested to quit --- src/g_editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/g_editor.c b/src/g_editor.c index 27188090e..0145eb7a2 100644 --- a/src/g_editor.c +++ b/src/g_editor.c @@ -3300,7 +3300,7 @@ void glob_verifyquit(void *dummy, t_floatarg f) canvas_vis(g2, 1); pdgui_vmess("pdtk_canvas_menuclose", "^m", - canvas_getrootfor(g), + canvas_getrootfor(g2), gensym(buf), 2, backmsg); return; } From 4b418b840d7fe4af56206a140ea9fec98c829df0 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 30 Jan 2024 17:10:14 +0100 Subject: [PATCH 065/450] fix possible out-of-range error in [midiout] --- src/s_midi_pm.c | 2 ++ src/x_midi.c | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/s_midi_pm.c b/src/s_midi_pm.c index 71b1e667e..b90d7e465 100644 --- a/src/s_midi_pm.c +++ b/src/s_midi_pm.c @@ -152,6 +152,8 @@ void sys_putmidibyte(int portno, int byte) fit into PortMidi buffers. */ static int mess[4]; static int nbytes = 0, sysex = 0, i; + if (portno < 0 || portno >= mac_nmidioutdev) + return; if (byte > MIDI_SYSEXEND) { /* realtime */ diff --git a/src/x_midi.c b/src/x_midi.c index e059c3cf7..e2bcc8dad 100644 --- a/src/x_midi.c +++ b/src/x_midi.c @@ -583,16 +583,17 @@ static void *midiout_new(t_floatarg portno) static void midiout_float(t_midiout *x, t_floatarg f) { - outmidi_byte(x->x_portno - 1, f); + int portno = x->x_portno >= 1 ? x->x_portno - 1 : 0; + outmidi_byte(portno, f); } static void midiout_list(t_midiout *x, t_symbol *s, int ac, t_atom *av) { - int i; + int i, portno = x->x_portno >= 1 ? x->x_portno - 1 : 0; for (i = 0; i < ac; ++i) { if(av[i].a_type == A_FLOAT) - outmidi_byte(x->x_portno - 1, av[i].a_w.w_float); + outmidi_byte(portno, av[i].a_w.w_float); } } From 0832577f496e74b6f18dd34287d8bb849a2027c4 Mon Sep 17 00:00:00 2001 From: porres Date: Tue, 30 Jan 2024 23:29:52 -0300 Subject: [PATCH 066/450] fix plot~ help closes https://github.com/pure-data/pddp/issues/184 --- doc/5.reference/plot-help.pd | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/5.reference/plot-help.pd b/doc/5.reference/plot-help.pd index 2853d9814..7fd59a894 100644 --- a/doc/5.reference/plot-help.pd +++ b/doc/5.reference/plot-help.pd @@ -3,8 +3,8 @@ #N struct array2-template float x float y; #N struct array3-template float y float w; #N canvas 596 38 519 318 12; -#N canvas 564 184 788 529 plot-template 0; -#X obj 558 392 struct plot-template float x float y array array1 array1-template array array2 array2-template array array3 array3-template, f 20; +#N canvas 443 180 818 527 plot-template 0; +#X obj 568 386 struct plot-template float x float y array array1 array1-template array array2 array2-template array array3 array3-template, f 20; #X text 27 51 Optional flags:; #X text 32 217 Arguments:; #X text 23 24 Creation arguments:; @@ -12,20 +12,20 @@ #X msg 74 360 0; #X text 129 380 (if no -v [field name] flag was given); #X text 48 235 - optional word "curve" to specify Bezier curve \; - array field name to plot \; - color (0=black \, 999=white \, 900=red \, 90=green \, 9=blue \, 555=grey \, etc.) \; - line width \; - relative x and y location \; - x spacing, f 49; -#X text 558 354 here's the [struct] for all this:, f 19; +#X text 568 348 here's the [struct] for all this:, f 19; #X text 57 438 This plots a red trace (500) of width 1 starting at point (10 \, 15). Horizontal spacing is 20 and the black diamonds come from the template of the array1 element itself - check [pd array1-template]., f 54; -#X obj 515 195 plot -c array3 9 1 100 50 35; -#X text 453 231 This draws the blue curved array. If a "w" variable is present in the template as for array3 (see [pd array3-template]) \, the line width argument is ignored and the "w" variable sets the width value for each element. The value of 'w' is drawn in [pd array3-template]., f 41; +#X obj 525 195 plot -c array3 9 1 100 50 35; +#X text 466 236 This draws the blue curved array. If a "w" variable is present in the template as for array3 (see [pd array3-template]) \, the line width argument is ignored and the "w" variable sets the width value for each element. The value of 'w' is drawn in [pd array3-template]., f 46; #X obj 74 407 plot array1 500 1 10 15 20; #X text 46 74 - "-c": sets to Bezier curve plot \; - "-n": make invisible initially \; - "-v [const or name]": set visibility of array \; - "-vs [const or name]": to set visibility of element scalars \; - "-e [const or name]": enable/disable editing \; - "-x [name]": use different field name for x \; - "-y [name]": use different field name for y \; - "-w [name]": use different field name for w, f 52; -#X obj 479 54 plot -n curve array2 90 4 150 -30; -#X obj 479 22 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; -#X text 505 22 <-- visibility; -#X text 430 86 The [plot] above plots a curved green spiral with: color 70 \, line width 3 \, location (100 \, 0). Open the [pd array2-template] subpatch to check the template for "array2". Since the template contains an "x" variable \, [plot] ignores the 'x spacing' argument and takes x from the data itself., f 48; +#X obj 489 22 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X text 515 22 <-- visibility; #X text 108 360 <-- inlet sets visibility (1: visible \, 0: invisible); +#X text 440 86 The [plot] above plots a curved green spiral with: color 90 \, line width 4 \, location (150 \, -30). Open the [pd array2-template] subpatch to check the template for "array2". Since the template contains an "x" variable \, [plot] ignores the 'x spacing' argument and takes x from the data itself., f 50; +#X obj 489 54 plot -n curve array2 90 4 150 -30; #X connect 4 0 12 0; #X connect 5 0 12 0; -#X connect 15 0 14 0; +#X connect 14 0 18 0; #X restore 266 139 pd plot-template; #N canvas 565 310 468 256 array1-template 0; #X obj 88 182 filledpolygon 0 0 0 -5 0 0 5 5 0 0 -5; From 80eabe090d2df6dd1030bca0cc773f5fc91cb7f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Sun, 4 Feb 2024 23:47:56 +0100 Subject: [PATCH 067/450] do not try to guess compat-CPUs for arm64 (only for arm32) Closes: https://github.com/pure-data/pure-data/issues/2190 --- src/s_inter.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/s_inter.c b/src/s_inter.c index 0e433fb9e..8e13e9ca4 100644 --- a/src/s_inter.c +++ b/src/s_inter.c @@ -1202,7 +1202,9 @@ static void init_deken_arch(void) #if defined(DEKEN_CPU) deken_CPU[0] = strip_quotes(deken_CPU[0], deken_CPU_noquotes, MAXPDSTRING); #else /* !DEKEN_CPU */ -# if defined __ARM_ARCH +# if defined(__aarch64__) + /* no special-casing for arm64 */ +# elif defined __ARM_ARCH /* ARM-specific: * if we are running ARMv7, we can also load ARMv6 externals */ From 7a924ada4f286a66d4297a9715db305116b03eac Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Fri, 9 Feb 2024 14:20:30 +0100 Subject: [PATCH 068/450] outlet~: fix reblocking bug with multichannel signals only increment read/write positions on last channel! --- src/g_io.c | 59 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/src/g_io.c b/src/g_io.c index 5eb2d9bbf..25c5b8da7 100644 --- a/src/g_io.c +++ b/src/g_io.c @@ -370,8 +370,8 @@ typedef struct _voutlet t_canvas *x_canvas; t_outlet *x_parentoutlet; int x_buflength; - int x_empty; /* next to read out of buffer in epilog code */ - int x_write; /* next to write in to buffer */ + int x_read; /* next to read out of buffer in epilog code */ + int x_write; /* next to write into buffer */ int x_hop; /* hopsize */ int x_updownmethod; /* parent's outlet signal, valid between the prolog and the dsp setup @@ -455,10 +455,8 @@ t_int *voutlet_perform(t_int *w) { t_voutlet *x = (t_voutlet *)(w[1]); t_sample *in = (t_sample *)(w[2]), *buf= (t_sample *)(w[3]); - int xwrite = x->x_write; - int hop = (int)(w[4]); - int n = (int)(w[5]); - t_sample *out = buf + xwrite, + int lastone = (int)(w[4]), n = (int)(w[5]), write = x->x_write; + t_sample *out = buf + write, *endbuf = buf + x->x_buflength; while (n--) { @@ -466,10 +464,12 @@ t_int *voutlet_perform(t_int *w) if (out == endbuf) out = buf; } - xwrite += x->x_hop; - if (xwrite >= x->x_buflength) - xwrite = 0; - x->x_write = xwrite; + if (lastone) /* only advance write position on last channel! */ + { + if ((write += x->x_hop) >= x->x_buflength) + write = 0; + x->x_write = write; + } return (w+6); } @@ -478,11 +478,12 @@ static t_int *voutlet_doepilog(t_int *w) { t_voutlet *x = (t_voutlet *)(w[1]); t_sample *in, *out = (t_sample *)(w[2]), *buf = (t_sample *)(w[3]); - int hop = (int)(w[4]), n = (int)(w[5]), empty = x->x_empty; - if (empty == x->x_buflength) - empty = 0; - x->x_empty = empty + hop; - in = buf + empty; + int lastone = (int)(w[4]), n = (int)(w[5]), read = x->x_read; + if (read == x->x_buflength) + read = 0; + if (lastone) /* only advance read position on last channel! */ + x->x_read = read + n; + in = buf + read; for (; n--; in++) *out++ = *in, *in = 0; return (w+6); @@ -496,11 +497,12 @@ static t_int *voutlet_doepilog_resample(t_int *w) t_voutlet *x = (t_voutlet *)(w[1]); t_sample *in, *out = ((t_resample *)(w[2]))->s_vec, *buf = (t_sample *)(w[3]); - int hop = (int)(w[4]), n = (int)(w[5]), empty = x->x_empty; - if (empty == x->x_buflength) - empty = 0; - x->x_empty = empty + hop; - in = buf + empty; + int lastone = (int)(w[4]), n = (int)(w[5]), read = x->x_read; + if (read == x->x_buflength) + read = 0; + if (lastone) /* only advance read position on last channel! */ + x->x_read = read + n; + in = buf + read; for (; n--; in++) *out++ = *in, *in = 0; return (w+6); @@ -583,9 +585,9 @@ static void voutlet_dsp(t_voutlet *x, t_signal **sp) dsp_add_copy(sp[0]->s_vec, (*x->x_parentsignal)->s_vec, sp[0]->s_length * sp[0]->s_nchans); else for (i = 0; i < x->x_nchans; i++) + /* NB: x_hop isn't set yet, so we cannot pass it directy! */ dsp_add(voutlet_perform, 5, x, sp[0]->s_vec + i * sp[0]->s_length, - x->x_rb[i].r_buf, (t_int)(i == x->x_nchans - 1 ? x->x_hop : 0), - (t_int)sp[0]->s_length); + x->x_rb[i].r_buf, (t_int)(i == x->x_nchans-1), (t_int)sp[0]->s_length); } } @@ -630,15 +632,15 @@ void voutlet_dspepilog(struct _voutlet *x, t_signal **parentsigs, else x->x_hop = period * re_parentvecsize; if (x->x_parentsignal) { - /* set epilog pointer and schedule it */ - x->x_empty = re_parentvecsize * epilogphase; + /* set epilog pointer and schedule it */ + x->x_read = re_parentvecsize * epilogphase; for (i = 0; i < x->x_nchans; i++) { - t_int hop = (i == x->x_nchans-1 ? re_parentvecsize : 0); if (upsample * downsample == 1) dsp_add(voutlet_doepilog, 5, x, (*x->x_parentsignal)->s_vec + i * parentvecsize, - x->x_rb[i].r_buf, hop, (t_int)parentvecsize); + x->x_rb[i].r_buf, (t_int)(i == x->x_nchans-1), + (t_int)parentvecsize); else { int method = (x->x_updownmethod < 0 ? @@ -647,8 +649,9 @@ void voutlet_dspepilog(struct _voutlet *x, t_signal **parentsigs, x->x_rb[i].r_updown.downsample=downsample; x->x_rb[i].r_updown.upsample=upsample; dsp_add(voutlet_doepilog_resample, 5, x, - &x->x_rb[i].r_updown, - x->x_rb[i].r_buf, hop, (t_int)re_parentvecsize); + &x->x_rb[i].r_updown, x->x_rb[i].r_buf, + (t_int)(i == x->x_nchans-1), + (t_int)re_parentvecsize); resampleto_dsp(&x->x_rb[i].r_updown, (*x->x_parentsignal)->s_vec + i * parentvecsize, re_parentvecsize, parentvecsize, method); From 81ad8a7a826215b0169b40f7a906071de761373f Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Fri, 9 Feb 2024 14:22:54 +0100 Subject: [PATCH 069/450] inlet~: rename 'fill' to 'read' to be consistent with outlet~ + add some comments to clarify that read/write positions are only advanced on the last channel --- src/g_io.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/g_io.c b/src/g_io.c index 25c5b8da7..50a364fac 100644 --- a/src/g_io.c +++ b/src/g_io.c @@ -64,8 +64,8 @@ typedef struct _vinlet t_canvas *x_canvas; t_inlet *x_inlet; int x_buflength; /* number of samples per channel in buffer */ - int x_fill; - int x_read; + int x_write; /* write position in reblocker */ + int x_read; /* read position in reblocker */ int x_hop; int x_updownmethod; /* if not reblocking, the next slot communicates the parent's @@ -147,13 +147,13 @@ t_int *vinlet_perform(t_int *w) t_vinlet *x = (t_vinlet *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_reblocker *rb = (t_reblocker *)(w[3]); - int hop = (int)(w[4]), n = (int)(w[5]), read = x->x_read; + int advance = (int)(w[4]), n = (int)(w[5]), read = x->x_read; t_sample *in = rb->r_buf + read; while (n--) *out++ = *in++; - if (hop) + if (advance) /* only on last channel */ { - if ((read += hop) == x->x_buflength) + if ((read += advance) == x->x_buflength) read = 0; x->x_read = read; } @@ -184,9 +184,12 @@ static void vinlet_dsp(t_vinlet *x, t_signal **sp) int i; signal_setmultiout(sp, x->x_nchans); for (i = 0; i < x->x_nchans; i++) + { + /* only advance read position on last channel! */ + int advance = (i == x->x_nchans-1) ? sp[0]->s_length : 0; dsp_add(vinlet_perform, 5, x, sp[0]->s_vec + i * sp[0]->s_length, - &x->x_rb[i], (t_int)(i == x->x_nchans-1 ? sp[0]->s_length : 0), - (t_int)(sp[0]->s_length)); + &x->x_rb[i], (t_int)advance, (t_int)(sp[0]->s_length)); + } x->x_read = 0; } } @@ -197,18 +200,18 @@ t_int *vinlet_doprolog(t_int *w) t_vinlet *x = (t_vinlet *)(w[1]); t_sample *in = (t_sample *)(w[2]), *out; t_sample *buf = (t_sample *)(w[3]); - int lastone = (int)(w[4]), n = (int)(w[5]), fill = x->x_fill; + int lastone = (int)(w[4]), n = (int)(w[5]), write = x->x_write; - if (fill == x->x_buflength) + if (write == x->x_buflength) { t_sample *f1 = buf, *f2 = buf + x->x_hop; int nshift = x->x_buflength - x->x_hop; while (nshift--) *f1++ = *f2++; - fill -= x->x_hop; + write -= x->x_hop; } - out = buf + fill; - if (lastone) - x->x_fill = fill + n; + out = buf + write; + if (lastone) /* only advance write position on last channel! */ + x->x_write = write + n; while (n--) *out++ = *in++; return (w+6); @@ -269,7 +272,7 @@ void vinlet_dspprolog(struct _vinlet *x, t_signal **parentsigs, { x->x_hop = period * re_parentvecsize; - x->x_fill = prologphase ? + x->x_write = prologphase ? x->x_buflength - (x->x_hop - prologphase * re_parentvecsize) : x->x_buflength; for (i = 0; i < x->x_nchans; i++) @@ -291,7 +294,7 @@ void vinlet_dspprolog(struct _vinlet *x, t_signal **parentsigs, re_parentvecsize, method); dsp_add(vinlet_doprolog, 5, x, x->x_rb[i].r_updown.s_vec, x->x_rb[i].r_buf, (t_int)(i == x->x_nchans-1), - (t_int)re_parentvecsize); + (t_int)re_parentvecsize); } } } From 2ffd8ef7af4f3e6af2d56e927e03ee5dfc3dfaed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 8 Feb 2024 16:42:28 +0100 Subject: [PATCH 070/450] Fix typo for ::pdwindow::font_size variable --- tcl/dialog_font.tcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tcl/dialog_font.tcl b/tcl/dialog_font.tcl index de49e3ad5..843603cc1 100644 --- a/tcl/dialog_font.tcl +++ b/tcl/dialog_font.tcl @@ -72,7 +72,7 @@ proc ::dialog_font::do_apply {mytoplevel myfontsize stretchval whichstretch} { } ::pd_guiprefs::write menu-fontsize "$myfontsize" - set ::pdwindow::font:size $myfontsize + set ::pdwindow::font_size $myfontsize } else { pdsend "$mytoplevel font $myfontsize $stretchval $whichstretch" From c863bbecce07ab7cd632eccace3e51e4e0f07357 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 13 Feb 2024 02:42:16 +0100 Subject: [PATCH 071/450] fix "channels" message for send~ and catch~ setting x_length to 1 does not work for block size 1; instead we keep track of the previous channel count. --- src/d_global.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/d_global.c b/src/d_global.c index 81873f4cc..31b7ed426 100644 --- a/src/d_global.c +++ b/src/d_global.c @@ -17,8 +17,9 @@ typedef struct _sigsend t_canvas *x_canvas; int x_length; int x_nchans; - t_sample *x_vec; + int x_prevnchans; t_float x_f; + t_sample *x_vec; } t_sigsend; static void *sigsend_new(t_symbol *s, t_floatarg fnchans) @@ -29,6 +30,7 @@ static void *sigsend_new(t_symbol *s, t_floatarg fnchans) x->x_sym = s; if ((x->x_nchans = fnchans) < 1) x->x_nchans = 1; + x->x_prevnchans = x->x_nchans; x->x_length = 1; x->x_vec = (t_sample *)getbytes(x->x_nchans * sizeof(t_sample)); x->x_f = 0; @@ -53,18 +55,19 @@ static t_int *sigsend_perform(t_int *w) static void sigsend_channels(t_sigsend *x, t_float fnchans) { x->x_nchans = fnchans >= 1 ? fnchans : 1; - x->x_length = 1; /* trigger update via sigsend_fixbuf */ + /* buffer will be resized in sigsend_fixbuf() */ canvas_update_dsp(); } static void sigsend_fixbuf(t_sigsend *x, int length) { - if (x->x_length != length) + if (x->x_length != length || x->x_nchans != x->x_prevnchans) { x->x_vec = (t_sample *)resizebytes(x->x_vec, - x->x_length * x->x_nchans * sizeof(t_sample), + x->x_length * x->x_prevnchans * sizeof(t_sample), length * x->x_nchans * sizeof(t_sample)); x->x_length = length; + x->x_prevnchans = x->x_nchans; } } @@ -239,6 +242,7 @@ typedef struct _sigcatch t_canvas *x_canvas; int x_length; int x_nchans; + int x_prevnchans; t_sample *x_vec; } t_sigcatch; @@ -252,6 +256,7 @@ static void *sigcatch_new(t_symbol *s, t_floatarg fnchans) x->x_length = 1; /* replaced later */ if ((x->x_nchans = fnchans) < 1) x->x_nchans = 1; + x->x_prevnchans = x->x_nchans; x->x_vec = (t_sample *)getbytes(x->x_length * sizeof(t_sample)); outlet_new(&x->x_obj, &s_signal); return (x); @@ -260,18 +265,19 @@ static void *sigcatch_new(t_symbol *s, t_floatarg fnchans) static void sigcatch_channels(t_sigcatch *x, t_float fnchans) { x->x_nchans = fnchans >= 1 ? fnchans : 1; - x->x_length = 1; /* trigger update via sigcatch_fixbuf */ + /* buffer will be resized in sigcatch_fixbuf() */ canvas_update_dsp(); } static void sigcatch_fixbuf(t_sigcatch *x, int length) { - if (x->x_length != length) + if (x->x_length != length || x->x_nchans != x->x_prevnchans) { x->x_vec = (t_sample *)resizebytes(x->x_vec, - x->x_length * x->x_nchans * sizeof(t_sample), + x->x_length * x->x_prevnchans * sizeof(t_sample), length * x->x_nchans * sizeof(t_sample)); x->x_length = length; + x->x_prevnchans = x->x_nchans; } } From 7648854a07859d5b8e83f81a930fa316100f55a6 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 16 Feb 2024 04:31:22 -0300 Subject: [PATCH 072/450] Update expr-help.pd fix typo --- doc/5.reference/expr-help.pd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/5.reference/expr-help.pd b/doc/5.reference/expr-help.pd index ef3e4a792..f3a68f5d2 100644 --- a/doc/5.reference/expr-help.pd +++ b/doc/5.reference/expr-help.pd @@ -948,12 +948,12 @@ #X connect 37 0 31 0; #X restore 819 633 pd difference-equations(Lorenz); #X obj 340 155 fexpr~ $x1[0] + $y1[-1]; -#X text 62 193 'n' index for '$x#' is from 0 to minus "vector size - 1".; -#X text 62 210 'n' index for '$x#' is from -1 to minus "vector size - 1".; +#X text 62 192 'n' index for '$x#' is from 0 to minus "vector size - 1"., f 58; #X text 23 63 Besides '$f#' \, '$i#' and '$s#' \, [fexpr~] takes '$x#' and '$y#' variables (and no '$v#' variables from [expr~]). Note that the first inlet of [fexpr~] needs to be of type '$x1' (cannot be '$f1' \, '$i1' or '$s1'). You can still send floats to this left inlet as floats sent to audio inlets are promoted to signals. The '$x#' and '$y#' types are input and output samples defined by 'n':, f 71; #X text 23 243 The vector (or 'block') size is defined by the [block~] or [switch~] objects. The default is 64 so it's from 0 to -63 for '$x#' and -1 to -63 for $y#. As such \, $x#[0] specifies the current sample input \, and $y#[-1] the last sample output., f 72; #X obj 917 234 set-dsp-tgl; #X text 948 238 DSP on/off; +#X text 62 210 'n' index for '$y#' is from -1 to minus "vector size - 1".; #X connect 4 0 9 0; #X connect 5 0 9 0; #X connect 6 0 5 0; @@ -977,7 +977,7 @@ #X connect 32 0 22 0; #X connect 40 0 29 0; #X connect 41 0 27 0; -#X connect 57 0 47 0; +#X connect 56 0 47 0; #X restore 212 555 pd [fexpr~] Examples; #X obj 335 608 >; #X text 102 522 (click on the subpatches to open them), f 13; From 253bf5136c7f01be4fb664a1ee4b555bfad3bbe9 Mon Sep 17 00:00:00 2001 From: porres Date: Sat, 17 Feb 2024 16:34:41 -0300 Subject: [PATCH 073/450] fix [vcf~] This help file used to say [lop~] couldn't take signals, which is not true anymore, so it got a full revision... minor revisions for [bp~] is here as well... --- doc/5.reference/bp~-help.pd | 20 ++++---- doc/5.reference/vcf~-help.pd | 92 ++++++++++++++++++------------------ 2 files changed, 57 insertions(+), 55 deletions(-) diff --git a/doc/5.reference/bp~-help.pd b/doc/5.reference/bp~-help.pd index 08e80d34a..9d7a64c6d 100644 --- a/doc/5.reference/bp~-help.pd +++ b/doc/5.reference/bp~-help.pd @@ -1,10 +1,9 @@ -#N canvas 562 45 480 601 12; +#N canvas 541 39 480 601 12; #X declare -stdpath ./; #X floatatom 89 249 7 0 0 0 - - - 0; #X msg 56 192 clear; -#X text 35 91 The left inlet is the incoming audio signal \, the middle control input sets center frequency and the right input sets "Q"., f 58; +#X text 25 91 The left inlet is the incoming audio signal \, the middle control input sets center frequency and the right input sets "Q"., f 63; #X floatatom 123 306 5 1 50 0 - - - 0; -#X text 35 53 bp~ passes a sinusoid at the center frequency at unit gain (approximately). Other frequencies are attenuated.; #X obj 56 379 output~; #X obj 31 160 noise~; #X obj 285 146 declare -stdpath ./; @@ -50,10 +49,11 @@ #X obj 92 222 hsl 169 18 200 2000 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; #X obj 126 279 hsl 169 18 1 20 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; #X text 137 339 <-- arguments: frequency and Q; -#X connect 0 0 8 1; -#X connect 1 0 8 0; -#X connect 3 0 8 2; -#X connect 6 0 8 0; -#X connect 8 0 5 0; -#X connect 30 0 0 0; -#X connect 31 0 3 0; +#X text 25 53 [bp~] passes a sinusoid at the center frequency at unit gain (approximately). Other frequencies are attenuated., f 63; +#X connect 0 0 7 1; +#X connect 1 0 7 0; +#X connect 3 0 7 2; +#X connect 5 0 7 0; +#X connect 7 0 4 0; +#X connect 29 0 0 0; +#X connect 30 0 3 0; diff --git a/doc/5.reference/vcf~-help.pd b/doc/5.reference/vcf~-help.pd index 0cfa223b5..62862a5da 100644 --- a/doc/5.reference/vcf~-help.pd +++ b/doc/5.reference/vcf~-help.pd @@ -1,32 +1,31 @@ -#N canvas 480 36 606 610 12; +#N canvas 430 69 660 593 12; #X declare -stdpath ./; -#X floatatom 215 240 8 0 0 0 - - - 0; -#X floatatom 259 337 5 0 0 0 - - - 0; +#X floatatom 193 224 8 0 0 0 - - - 0; +#X floatatom 237 321 5 0 0 0 - - - 0; #X obj 28 14 vcf~; -#X text 12 544 see also:; -#X obj 90 544 bp~; -#X obj 171 369 vcf~ 1, f 13; -#X text 384 544 updated for Pd version 0.46; -#X text 137 490 (band-pass); -#X text 267 491 (low-pass); -#X text 137 473 real output; -#X text 254 473 imaginary output; -#X obj 124 544 bob~; -#X obj 149 308 noise~; -#X text 69 308 test input; -#X text 303 336 Q; -#X text 274 369 optional argument initializes Q; -#X obj 134 413 output~; -#X obj 259 413 output~; -#X obj 165 544 lop~; -#X obj 205 544 hip~; -#X obj 418 440 declare -stdpath ./; -#X obj 25 576 biquad~; -#X obj 84 575 slop~, f 7; -#X obj 143 575 cpole~, f 7; -#X obj 205 575 fexpr~; -#X text 261 575 - unfriendly filters; -#X obj 7 43 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 12 524 see also:; +#X obj 90 524 bp~; +#X obj 149 353 vcf~ 1, f 13; +#X text 440 524 updated for Pd version 0.46; +#X text 115 474 (band-pass); +#X text 115 457 real output; +#X text 232 457 imaginary output; +#X obj 124 524 bob~; +#X obj 127 292 noise~; +#X text 47 292 test input; +#X text 281 320 Q; +#X text 252 353 optional argument initializes Q; +#X obj 112 397 output~; +#X obj 237 397 output~; +#X obj 165 524 lop~; +#X obj 205 524 hip~; +#X obj 494 205 declare -stdpath ./; +#X obj 25 556 biquad~; +#X obj 84 555 slop~, f 7; +#X obj 143 555 cpole~, f 7; +#X obj 205 555 fexpr~; +#X text 261 555 - unfriendly filters; +#X obj 7 44 cnv 1 640 1 empty empty empty 8 12 0 13 #000000 #000000 0; #N canvas 667 114 517 345 reference 0; #X obj 9 42 cnv 5 490 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0; #X obj 9 187 cnv 2 490 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; @@ -40,27 +39,30 @@ #X text 87 126 signal - resonant frequency in Hz.; #X obj 11 153 cnv 1 490 1 empty empty 3rd: 8 12 0 13 #7c7c7c #000000 0; #X obj 11 71 cnv 1 490 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; -#X text 94 160 float - set Q.; #X text 134 287 1) float - initial Q (default 0).; #X obj 11 242 cnv 1 490 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; #X obj 11 211 cnv 1 490 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; #X text 86 217 signal - real output (band-pass filtered signal).; -#X text 86 250 signal - imaginary output (band-pass filtered signal).; -#X restore 414 14 pd reference; -#X text 512 14 <= click; -#X obj 7 525 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 94 160 float - resonance Q.; +#X text 86 250 signal - imaginary output ("low-pass" filtered signal).; +#X restore 474 14 pd reference; +#X text 572 14 <= click; #X text 76 14 - voltage-controlled band/low-pass filter; -#X text 25 53 [vcf~] is a resonant band-pass and low-pass filter that takes either a control or an audio signal to set center frequency \, which may thus change continuously in time as in an analog voltage controlled filter (and unlike [bp~] and [lop~] that only take control values). The "Q" or filter sharpness is still only set by control messages. It is more expensive but more powerful than the [bp~] band-pass filter., f 78; -#X text 24 146 [vcf~] is implemented as a one-pole complex filter with outlets for the real and imaginary value. These may be used as band-pass and low-pass filter outputs \, or combined to allow other possibilities., f 78; -#X obj 218 213 hsl 169 18 200 2000 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; -#X text 283 240 <-- resonant frequency in Hz; -#X obj 262 308 hsl 169 18 1 20 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; -#X obj 215 271 sig~ 200; -#X connect 0 0 36 0; +#X obj 196 197 hsl 169 18 200 2000 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X text 261 224 <-- resonant frequency in Hz, f 15; +#X obj 240 292 hsl 169 18 1 20 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 193 255 sig~ 200; +#X text 242 523 - friendly filters; +#X obj 7 505 cnv 1 640 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 36 129 [vcf~] can take a signal to set the resonant frequency as in an analog voltage controlled filter ("vcf" for short). It is thus more expensive but more powerful than [bp~]. The resonance "Q" or filter sharpness is still only set by control messages., f 83; +#X text 371 395 Listen to how the white noise input is filtered. The higher the Q \, the more attenuation we have for frequencies besides the center frequency \, so the less wide the frequency band is., f 38; +#X text 36 59 [vcf~] is a one-pole complex filter with outlets for the real (left) and imaginary (right) parts \, which are \, respectively \, a band-pass and a low-pass filter (that can be combined to allow other possibilities). The maximum gain is constant at 0dB \, what makes the lowpass output more like a bandpass really \, and similar to [bp~]., f 83; +#X text 245 475 ("low-pass"); +#X connect 0 0 32 0; #X connect 1 0 5 2; -#X connect 5 0 16 0; -#X connect 5 1 17 0; -#X connect 12 0 5 0; -#X connect 33 0 0 0; -#X connect 35 0 1 0; -#X connect 36 0 5 1; +#X connect 5 0 15 0; +#X connect 5 1 16 0; +#X connect 11 0 5 0; +#X connect 29 0 0 0; +#X connect 31 0 1 0; +#X connect 32 0 5 1; From 4b0213373417ec5e92625c1a60eee4660ad99284 Mon Sep 17 00:00:00 2001 From: porres Date: Tue, 20 Feb 2024 01:40:17 -0300 Subject: [PATCH 074/450] mark hip~ as one-pole/one-zero hip~ was marked as one-pole only, but it is a one-pole/one-zero filter. also mentioned biquad is a 2-pole/2-zero --- doc/5.reference/binops-help.pd | 2 +- doc/5.reference/biquad~-help.pd | 16 ++++---- doc/5.reference/cpole~-help.pd | 14 +++---- doc/5.reference/czero_rev~-help.pd | 64 +++++++++++++++--------------- doc/5.reference/czero~-help.pd | 58 +++++++++++++-------------- doc/5.reference/help-intro.pd | 14 +++---- doc/5.reference/hip~-help.pd | 36 ++++++++--------- doc/5.reference/lop~-help.pd | 14 +++---- doc/5.reference/rpole~-help.pd | 38 +++++++++--------- 9 files changed, 128 insertions(+), 128 deletions(-) diff --git a/doc/5.reference/binops-help.pd b/doc/5.reference/binops-help.pd index 18b5db751..286e8df91 100644 --- a/doc/5.reference/binops-help.pd +++ b/doc/5.reference/binops-help.pd @@ -90,7 +90,7 @@ #X text 54 376 (etc.) - unary operators; #X text 359 343 (etc.) - other binary operators; #X text 293 376 (etc.) - trigonometric functions; -#X text 457 59 As in the signal versions \; - [log] takes a base value via an argument or the right inlet but defaults to "e". A 0 or negative left input gives -1000 as the result. - [pow] has protection against NaNs (they become 0) \, and it raises a number on the left inlet to a numeric power (given by the right inlet or argument)., f 48; +#X text 457 59 As in the signal versions \; - [log] takes a base value via an argument or the right inlet but defaults to "e". A 0 or negative left input gives -1000 as the result \; - [pow] has protection against NaNs (they become 0) \, and it raises a number on the left inlet to a numeric power (given by the right inlet or argument)., f 48; #X connect 3 0 30 0; #X connect 13 0 14 0; #X connect 14 0 17 0; diff --git a/doc/5.reference/biquad~-help.pd b/doc/5.reference/biquad~-help.pd index 385a9f481..d4cbcd1c6 100644 --- a/doc/5.reference/biquad~-help.pd +++ b/doc/5.reference/biquad~-help.pd @@ -1,4 +1,4 @@ -#N canvas 562 32 629 664 12; +#N canvas 501 37 629 664 12; #X obj 152 437 env~; #X floatatom 152 468 8 0 0 0 - - - 0; #X floatatom 53 306 5 0 0 0 - - - 0; @@ -28,8 +28,8 @@ #X text 123 158 signal - the filtered signal output.; #X text 112 198 1) list - initializes the 5 coefficients (fb1 fb2 ff1 ff2 ff3)., f 63; #X text 37 98 set - set the last two input samples., f 71; -#X text 101 15 - raw biquad 2nd order filter; #X text 135 79 list - list of filter coefficients (fb1 fb2 ff1 ff2 ff3).; +#X text 101 15 - biquad 2nd order (2-pole/2-zero) filter; #X restore 417 13 pd reference; #X text 515 13 <= click; #X text 54 561 see also:; @@ -48,17 +48,17 @@ #X obj 183 585 slop~, f 7; #X text 14 57 [biquad~] calculates the following difference equation:; #X obj 6 545 cnv 1 602 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 17 116 Where y[n] is the output sample \, y[n-1] is the last output sample and y[n-2] is the output previous to the last one. These samples are fedback \, hence you have the 'fb' (standing for 'feedback') coefficients., f 81; -#X text 17 165 x[n] is the input sample \, x[n-1] is the last input sample and x[n-2] is the input previous to the last one. Hence you have 'ff' (standing for 'feedforward') coefficients., f 81; #X text 227 432 this [biquad~] is a notch filter for fn = Pi/4 (= SR/8 = 5512.5Hz @44.1k), f 36; #X text 327 560 <-- user-friendly filters; #X text 242 585 <-- not friendly; #X text 14 621 raw filters -->; #X text 407 631 updated for Pd version 0.3; #X text 45 86 y[n] = fb1 * y[n-1] + fb2 * y[n-2] + ff1 * x[n] + ff2 * x[n-1] + ff3 * x[n-2], f 77; -#X text 83 13 - raw biquad 2nd order filter; -#X obj 472 236 set-dsp-tgl; -#X text 503 240 DSP on/off; +#X obj 471 236 set-dsp-tgl; +#X text 502 240 DSP on/off; +#X text 9 116 Where y[n] is the output sample \, y[n-1] is the last output sample and y[n-2] is the output previous to the last one. These samples are fedback \, hence these are marked as 'fb' (standing for 'feedback') coefficients., f 85; +#X text 9 165 x[n] is the input sample \, x[n-1] is the last input sample and x[n-2] is the input previous to the last one. Hence these are marked as 'ff' (standing for 'feedforward') coefficients., f 85; +#X text 81 13 - biquad 2nd order (2-pole/2-zero) filter; #X connect 0 0 1 0; #X connect 2 0 9 0; #X connect 3 0 4 0; @@ -68,4 +68,4 @@ #X connect 9 0 3 0; #X connect 9 0 6 0; #X connect 13 0 6 0; -#X connect 45 0 10 0; +#X connect 42 0 10 0; diff --git a/doc/5.reference/cpole~-help.pd b/doc/5.reference/cpole~-help.pd index f39813466..bc29bf886 100644 --- a/doc/5.reference/cpole~-help.pd +++ b/doc/5.reference/cpole~-help.pd @@ -1,4 +1,4 @@ -#N canvas 549 23 530 666 12; +#N canvas 457 23 530 666 12; #X declare -stdpath ./; #X obj 58 125 osc~ 100; #X msg 67 152 clear; @@ -13,12 +13,12 @@ #X msg 79 179 set 0.6 0.8; #X text 48 338 y[n] = x[n] + a[n] * y[n-1]; #N canvas 796 231 441 392 test 0; -#X obj 90 85 osc~; -#X floatatom 90 52 5 0 0 0 - - - 0; +#X obj 84 85 osc~; +#X floatatom 84 52 5 0 0 0 - - - 0; #X obj 146 304 env~ 16384; #X floatatom 146 328 5 0 0 0 - - - 0; -#X obj 90 112 *~; -#X msg 40 113 set 1; +#X obj 84 112 *~; +#X msg 34 113 set 1; #X floatatom 334 113 4 -1000 1000 0 - - - 0; #X text 138 14 Stuff to test it:; #X obj 215 123 cos~; @@ -26,7 +26,7 @@ #X obj 258 75 phasor~; #X floatatom 258 48 5 0 0 0 - - - 0; #X floatatom 146 52 5 0 0 0 - - - 0; -#X obj 177 113 tgl 17 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000 0 1; +#X obj 177 112 tgl 19 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000 0 1; #X obj 146 112 *~; #X obj 146 85 phasor~; #X floatatom 321 46 5 0 0 0 - - - 0; @@ -40,7 +40,7 @@ #X floatatom 233 328 5 0 0 0 - - - 0; #X obj 23 303 output~; #X obj 258 238 declare -stdpath ./; -#X obj 121 114 tgl 17 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000 0 1; +#X obj 115 112 tgl 19 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000 0 1; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 3 0; diff --git a/doc/5.reference/czero_rev~-help.pd b/doc/5.reference/czero_rev~-help.pd index d44e53114..1256957b4 100644 --- a/doc/5.reference/czero_rev~-help.pd +++ b/doc/5.reference/czero_rev~-help.pd @@ -1,41 +1,41 @@ -#N canvas 621 32 532 680 12; +#N canvas 533 32 532 680 12; #X declare -stdpath ./; #X obj 33 128 osc~ 100; #X msg 51 155 clear; -#N canvas 534 144 522 578 test 0; -#X obj 189 431 env~ 16384; -#X floatatom 189 455 5 0 0 0 - - - 0; -#X floatatom 359 168 4 -1000 1000 0 - - - 0; -#X obj 254 186 cos~; +#N canvas 534 144 523 562 test 0; +#X obj 189 441 env~ 16384; +#X floatatom 189 465 5 0 0 0 - - - 0; +#X floatatom 359 178 4 -1000 1000 0 - - - 0; +#X obj 254 196 cos~; #X floatatom 255 50 5 0 0 0 - - - 0; #X obj 255 73 phasor~; #X floatatom 302 17 5 0 0 0 - - - 0; #X obj 301 42 / 1000; -#X obj 295 169 -~ 0.25; -#X obj 295 191 cos~; -#X obj 359 197 / 1000; -#X obj 254 224 *~; -#X obj 295 225 *~; -#X obj 273 429 env~ 16384; -#X floatatom 273 453 5 0 0 0 - - - 0; -#X obj 136 191 phasor~; -#X floatatom 136 162 5 0 0 0 - - - 0; -#X text 61 83 Stuff to test it:; -#X obj 136 272 cpole~; -#X obj 295 269 *~ -1; -#X obj 64 488 env~ 16384; -#X floatatom 64 512 5 0 0 0 - - - 0; -#X obj 143 488 env~ 16384; -#X floatatom 143 512 5 0 0 0 - - - 0; -#X obj 143 304 cpole~; -#X obj 160 341 czero_rev~; -#X obj 205 370 czero_rev~; -#X msg 48 212 clear; +#X obj 295 179 -~ 0.25; +#X obj 295 201 cos~; +#X obj 359 207 / 1000; +#X obj 254 234 *~; +#X obj 295 235 *~; +#X obj 273 439 env~ 16384; +#X floatatom 273 463 5 0 0 0 - - - 0; +#X obj 136 201 phasor~; +#X floatatom 136 172 5 0 0 0 - - - 0; +#X text 61 93 Stuff to test it:; +#X obj 136 282 cpole~; +#X obj 295 279 *~ -1; +#X obj 64 498 env~ 16384; +#X floatatom 64 522 5 0 0 0 - - - 0; +#X obj 143 498 env~ 16384; +#X floatatom 143 522 5 0 0 0 - - - 0; +#X obj 143 314 cpole~; +#X obj 160 351 czero_rev~; +#X obj 205 380 czero_rev~; +#X msg 48 222 clear; #X obj 255 103 cos~; -#X obj 254 134 *~ 0.02; -#X obj 304 100 sig~ 1.1; -#X obj 368 420 output~; -#X obj 58 38 declare -stdpath ./; +#X obj 254 144 *~ 0.02; +#X obj 303 109 sig~ 1.1; +#X obj 368 430 output~; +#X obj 58 48 declare -stdpath ./; #X connect 0 0 1 0; #X connect 2 0 10 0; #X connect 3 0 11 0; @@ -85,9 +85,9 @@ #X obj 174 257 sig~; #X text 220 296 coefficient (real and imaginary part); #X msg 62 181 set 0.6 0.8; -#X text 57 374 where y[n] is the output \, x[n] the input \, and a[n] the filter coefficient (all complex numbers). The filter is always stable., f 64; +#X text 32 374 where y[n] is the output \, x[n] the input \, and a[n] the filter coefficient (all complex numbers). The filter is always stable., f 64; #X obj 16 12 czero_rev~; -#X text 57 414 The transfer function is H(Z) = -a + Z^-1.; +#X text 32 414 The transfer function is H(Z) = -a + Z^-1., f 64; #X obj 87 622 lop~; #X text 8 623 see also:; #X obj 170 555 rzero~; diff --git a/doc/5.reference/czero~-help.pd b/doc/5.reference/czero~-help.pd index bd04ac8d0..17a5e09d8 100644 --- a/doc/5.reference/czero~-help.pd +++ b/doc/5.reference/czero~-help.pd @@ -8,7 +8,6 @@ #X floatatom 414 112 4 -1000 1000 0 - - - 0; #X obj 294 112 cos~; #X floatatom 229 57 5 0 0 0 - - - 0; -#X obj 269 119 tgl 15 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000 0 1; #X obj 229 117 *~; #X obj 229 80 phasor~; #X floatatom 338 53 5 0 0 0 - - - 0; @@ -33,38 +32,39 @@ #X text 151 14 Stuff to test it:; #X obj 230 280 output~; #X obj 26 223 declare -stdpath ./; +#X obj 264 117 tgl 19 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000 0 1; #X connect 0 0 1 0; -#X connect 2 0 12 0; -#X connect 3 0 13 0; -#X connect 4 0 7 0; -#X connect 5 0 6 1; -#X connect 6 0 17 0; -#X connect 7 0 6 0; +#X connect 2 0 11 0; +#X connect 3 0 12 0; +#X connect 4 0 6 0; +#X connect 5 0 16 0; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 3 0; #X connect 8 0 9 0; -#X connect 9 0 3 0; #X connect 9 0 10 0; -#X connect 10 0 11 0; -#X connect 11 0 14 0; -#X connect 12 0 14 1; -#X connect 12 0 13 1; -#X connect 13 0 17 2; -#X connect 14 0 17 3; -#X connect 15 0 16 0; -#X connect 17 0 0 0; -#X connect 17 0 28 0; -#X connect 17 1 15 0; -#X connect 17 1 28 1; +#X connect 10 0 13 0; +#X connect 11 0 13 1; +#X connect 11 0 12 1; +#X connect 12 0 16 2; +#X connect 13 0 16 3; +#X connect 14 0 15 0; +#X connect 16 0 0 0; +#X connect 16 0 27 0; +#X connect 16 1 14 0; +#X connect 16 1 27 1; +#X connect 17 0 23 0; #X connect 18 0 24 0; -#X connect 19 0 25 0; -#X connect 20 0 22 0; +#X connect 19 0 21 0; +#X connect 19 0 18 0; #X connect 20 0 19 0; -#X connect 21 0 20 0; -#X connect 22 0 23 0; -#X connect 23 0 26 0; -#X connect 24 0 26 1; -#X connect 24 0 25 1; -#X connect 25 0 17 0; -#X connect 26 0 17 1; +#X connect 21 0 22 0; +#X connect 22 0 25 0; +#X connect 23 0 25 1; +#X connect 23 0 24 1; +#X connect 24 0 16 0; +#X connect 25 0 16 1; +#X connect 29 0 5 1; #X restore 396 562 pd test; #X obj 91 207 sig~; #X obj 123 231 sig~; @@ -74,7 +74,7 @@ #X obj 28 11 czero~; #X text 84 341 y[n] = x[n] - a[n] * x[n-1]; #X text 31 369 where y[n] is the output \, x[n] the input \, and a[n] the filter coefficient (all complex numbers). The filter is always stable., f 63; -#X text 32 415 The transfer function is H(Z) = 1 - aZ^-1.; +#X text 31 409 The transfer function is H(Z) = 1 - aZ^-1., f 63; #X obj 60 279 czero~ 0.9 0.4; #X text 195 255 <= filter coefficient (imaginary part); #X obj 92 613 lop~; diff --git a/doc/5.reference/help-intro.pd b/doc/5.reference/help-intro.pd index 478d28248..08d12dc53 100644 --- a/doc/5.reference/help-intro.pd +++ b/doc/5.reference/help-intro.pd @@ -88,9 +88,7 @@ #X obj 49 4673 print~; #X text 174 4673 - print out one or more "blocks"; #X obj 42 5850 rpole~; -#X text 173 5849 - raw real-valued one-pole filter; #X obj 42 5874 rzero~; -#X text 173 5873 - raw real-valued one-zero filter; #X obj 42 5898 rzero_rev~; #X obj 42 5923 cpole~; #X obj 99 5923 czero~; @@ -300,7 +298,6 @@ #X obj 48 4248 snake~ out; #X text 174 4220 - combine mono signals into multichannel signals; #X text 174 4247 - split multichannel signals into mono signals; -#X text 240 5922 - complex-valued variants; #X text 22 218 ----------------------------------- GUIs -----------------------------------, f 76; #X text 15 1087 ------------------------------ ARRAYS/TABLES -------------------------------, f 77; #X text 3 4187 --------------------------- GENERAL AUDIO TOOLS ----------------------------, f 77; @@ -440,12 +437,8 @@ #X text 173 5520 - non-interpolating table lookup for signals; #X text 173 5544 - 4-point-interpolating table lookup for signals; #X text 173 5699 - voltage-controlled band/low-pass filter; -#X text 173 5725 - one-pole high pass filter; -#X text 173 5749 - one-pole low pass filter; #X text 173 5774 - slew-limiting / low pass filter; #X text 173 5799 - 2-pole band-pass filter; -#X text 173 5823 - raw biquad 2nd order filter; -#X text 173 5897 - real one-zero "reverse" filter; #X text 173 6029 - writes a signal in a delay line; #X text 173 6053 - read a signal from a delay line (no interpolation); #X text 172 6079 - read from a delay line with 4-point interpolation; @@ -505,3 +498,10 @@ #X text 185 2074 - get path relative to the patch; #X text -3 4771 ------------------------------- SIGNAL MATH ---------------------------------, f 77; #X text 175 4849 - C-style expressions / filter expressions; +#X text 240 5922 - raw complex-valued variants; +#X text 173 5725 - 1-pole/1-zero high pass filter; +#X text 173 5749 - 1-pole low pass filter; +#X text 173 5823 - biquad 2nd order (2-pole/2-zero) filter; +#X text 173 5849 - raw real-valued 1-pole filter; +#X text 173 5873 - raw real-valued 1-zero filter; +#X text 173 5897 - raw real 1-zero "reverse" filter; diff --git a/doc/5.reference/hip~-help.pd b/doc/5.reference/hip~-help.pd index 8b549774f..b543fd6be 100644 --- a/doc/5.reference/hip~-help.pd +++ b/doc/5.reference/hip~-help.pd @@ -1,21 +1,20 @@ #N canvas 541 23 578 563 12; #X declare -stdpath ./; -#X floatatom 216 177 8 0 0 0 - - - 0; -#X msg 113 124 clear; +#X floatatom 196 177 8 0 0 0 - - - 0; +#X msg 93 124 clear; #X obj 25 15 hip~; -#X text 70 14 - one-pole high pass filter; #X text 352 502 updated for Pd version 0.44; #X msg 297 442 \; pd compatibility 0.43; -#X text 231 206 Creation argument initializes cutoff frequency.; +#X text 211 206 Creation argument initializes cutoff frequency.; #X text 40 344 COMPATIBILITY NOTE: in Pd versions before 0.44 \, the high-frequency output gain was incorrectly greater than one (usually only slightly so \, but noticeably if the cutoff frequency was more than 1/4 the Nyquist frequency). This problem was fixed INCORRECTLY in pd 0.44-0 though 0.44-2 \, and is now hopefully fixed since Pd 0.44-3. To get the old (0.43 and earlier) behavior \, set "compatibility" to 0.43 in Pd's command line or by a message:, f 67; #X text 24 503 see also:; #X obj 97 502 lop~; #X obj 136 502 bp~; #X obj 210 502 bob~; #X obj 170 502 vcf~; -#X obj 156 156 noise~; -#X obj 156 252 output~; -#X obj 156 204 hip~ 2000; +#X obj 136 156 noise~; +#X obj 136 252 output~; +#X obj 136 204 hip~ 2000; #X obj 323 268 declare -stdpath ./; #X obj 96 531 biquad~; #X obj 155 530 slop~, f 7; @@ -33,19 +32,20 @@ #X text 106 163 signal - filtered signal.; #X obj 9 71 cnv 1 450 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 0; #X obj 9 119 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; -#X text 113 126 float - rolloff frequency., f 36; #X text 104 203 1) float - rolloff frequency in Hz (default 0).; #X obj 36 12 hip~; -#X text 78 11 - one-pole high pass filter.; +#X text 113 126 float - cutoff frequency., f 36; +#X text 78 11 - 1-pole/1-zero high pass filter.; #X restore 395 15 pd reference; #X text 493 16 <= click; #X obj 8 491 cnv 1 560 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 39 56 [hip~] is a one-pole high pass filter with a specified cutoff frequency. Left (audio) inlet is the incoming audio signal. Right (control) inlet sets cutoff frequency., f 72; -#X text 162 124 <-- reinitialize internal state; -#X text 282 177 <-- set cutoff frequency; -#X obj 219 150 hsl 169 18 50 5000 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; -#X connect 0 0 15 1; -#X connect 1 0 15 0; -#X connect 13 0 15 0; -#X connect 15 0 14 0; -#X connect 29 0 0 0; +#X text 142 124 <-- reinitialize internal state; +#X text 262 177 <-- set cutoff frequency; +#X obj 199 150 hsl 169 18 50 5000 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X text 39 56 [hip~] is a one-pole/one-zero high pass filter with a specified cutoff frequency. The left inlet is the incoming audio signal to filter. The right inlet sets cutoff frequency (at control rate only)., f 72; +#X text 70 14 - 1-pole/1-zero high pass filter; +#X connect 0 0 14 1; +#X connect 1 0 14 0; +#X connect 12 0 14 0; +#X connect 14 0 13 0; +#X connect 27 0 0 0; diff --git a/doc/5.reference/lop~-help.pd b/doc/5.reference/lop~-help.pd index 93238298d..1c195ee43 100644 --- a/doc/5.reference/lop~-help.pd +++ b/doc/5.reference/lop~-help.pd @@ -2,7 +2,6 @@ #X declare -stdpath ./; #X floatatom 236 187 8 0 0 0 - - - 0; #X obj 26 13 lop~; -#X text 66 14 - one-pole low pass filter; #X msg 140 135 clear; #X text 14 346 see also:; #X obj 93 345 hip~; @@ -30,9 +29,9 @@ #X text 106 167 signal - filtered signal.; #X obj 11 123 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; #X text 104 207 1) float - rolloff frequency in Hz (default 0).; -#X text 86 15 - one-pole low pass filter.; #X obj 11 75 cnv 1 450 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; #X text 113 130 float or signal - rolloff frequency.; +#X text 86 15 - 1-pole low pass filter.; #X restore 385 13 pd reference; #X text 483 14 <= click; #X obj 7 328 cnv 1 560 1 empty empty empty 8 12 0 13 #000000 #000000 0; @@ -56,8 +55,9 @@ #X connect 5 0 3 1; #X connect 7 0 4 0; #X restore 416 280 pd signal-cutoff; -#X connect 0 0 11 1; -#X connect 3 0 11 0; -#X connect 9 0 11 0; -#X connect 11 0 10 0; -#X connect 25 0 0 0; +#X text 66 14 - 1-pole low pass filter; +#X connect 0 0 10 1; +#X connect 2 0 10 0; +#X connect 8 0 10 0; +#X connect 10 0 9 0; +#X connect 24 0 0 0; diff --git a/doc/5.reference/rpole~-help.pd b/doc/5.reference/rpole~-help.pd index a03827fe3..05f507b86 100644 --- a/doc/5.reference/rpole~-help.pd +++ b/doc/5.reference/rpole~-help.pd @@ -1,20 +1,19 @@ #N canvas 504 36 528 607 12; #X declare -stdpath ./; -#X floatatom 141 192 4 0 0 0 - - - 0; -#X obj 74 105 osc~ 100; -#X msg 90 137 clear; +#X floatatom 137 192 4 0 0 0 - - - 0; +#X obj 70 105 osc~ 100; +#X msg 86 135 clear; #X obj 21 10 rpole~; -#X msg 98 163 set 1; -#X text 37 335 The transfer function is H(Z) = 1/(1 - aZ^-1).; -#X text 38 297 where y[n] is the output \, x[n] the input \, and a[n] the filter coefficient. The filter is unstable if/when |a[n]|>1.; -#X obj 74 219 rpole~ 0.9; -#N canvas 969 234 313 353 test 0; +#X msg 94 163 set 1; +#X text 38 335 The transfer function is H(Z) = 1/(1 - aZ^-1)., f 61; +#X obj 70 219 rpole~ 0.9; +#N canvas 909 179 313 353 test 0; #X obj 76 78 osc~; #X floatatom 76 55 5 0 0 0 - - - 0; #X obj 76 282 env~ 16384; #X floatatom 76 306 5 0 0 0 - - - 0; #X obj 76 168 rpole~; -#X obj 104 107 tgl 15 0 empty empty empty 0 -6 0 8 #fcfcfc #000000 #000000 0 1; +#X obj 114 105 tgl 19 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000 0 1; #X obj 76 105 *~; #X msg 97 137 set 1; #X floatatom 151 118 4 -100 100 0 - - - 0; @@ -34,11 +33,6 @@ #X connect 9 0 4 1; #X restore 415 492 pd test; #X text 94 272 y[n] = x[n] + a[n] * y[n-1]; -#X text 146 106 <= signal to filter; -#X text 142 137 <= clear internal state to zero; -#X text 146 162 <= set internal state; -#X text 176 191 <= filter coefficient (may be a signal); -#X text 162 219 <= creation argument initializes filter coefficient; #X obj 87 540 lop~; #X text 8 541 see also:; #X obj 173 473 rzero~; @@ -98,8 +92,14 @@ #X text 30 48 [rpole~] filters an audio signal (left inlet) via a raw one-pole (recursive) real filter \, whose coefficient is controlled by a creation argument or by an audio signal (right inlet)., f 65; #X text 35 250 The action of [rpole~] is:; #X text 18 366 Pd also provides a suite of user-friendly filters. This and other raw filters are provided for situations which the user-friendly ones can't handle. See Chapter 8 of http://msp.ucsd.edu/techniques.htm for an introduction to the necessary theory (click) ->, f 69; -#X connect 0 0 7 1; -#X connect 1 0 7 0; -#X connect 2 0 7 0; -#X connect 4 0 7 0; -#X connect 34 0 35 0; +#X text 142 106 <- signal to filter; +#X text 131 135 <- clear internal state to zero; +#X text 142 162 <- set internal state; +#X text 172 191 <- filter coefficient (may be a signal); +#X text 151 219 <- creation argument initializes filter coefficient; +#X text 38 297 where y[n] is the output \, x[n] the input \, and a[n] the filter coefficient. The filter is unstable if/when |a[n]| > 1, f 61; +#X connect 0 0 6 1; +#X connect 1 0 6 0; +#X connect 2 0 6 0; +#X connect 4 0 6 0; +#X connect 28 0 29 0; From a93c45d122ddbf121f6a29579cdbb77fda6e21f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 20 Feb 2024 12:08:24 +0100 Subject: [PATCH 075/450] Handle non-existing parent for [openpanel]/[savepanel] Closes: https://github.com/pure-data/pure-data/issues/2195 --- tcl/wheredoesthisgo.tcl | 42 +++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/tcl/wheredoesthisgo.tcl b/tcl/wheredoesthisgo.tcl index 8467fc738..76e61b435 100644 --- a/tcl/wheredoesthisgo.tcl +++ b/tcl/wheredoesthisgo.tcl @@ -35,7 +35,6 @@ proc open_file {filename} { # ------------------------------------------------------------------------------ # procs for panels (openpanel, savepanel) - proc pdtk_openpanel {target localdir {mode 0} {parent .pdwindow}} { if { $::pd::private::lastopendir == "" } { if { ! [file isdirectory $::fileopendir]} { @@ -46,16 +45,29 @@ proc pdtk_openpanel {target localdir {mode 0} {parent .pdwindow}} { if {! [file isdirectory $localdir]} { set localdir $::pd::private::lastopendir } + if { ! [winfo exists parent] } { + set parent .pdwindow + } - # 0: file, 1: directory, 2: multiple files - switch $mode { - 0 { set result [tk_getOpenFile -initialdir $localdir \ - -parent $parent] } - 1 { set result [tk_chooseDirectory -initialdir $localdir \ - -parent $parent] } - 2 { set result [tk_getOpenFile -multiple 1 -initialdir $localdir \ - -parent $parent] } - default { ::pdwindow::error "bad value for 'mode' argument" } + set result "" + if { [winfo exists parent] } { + # 0: file, 1: directory, 2: multiple files + switch $mode { + 0 { set result [tk_getOpenFile -initialdir $localdir \ + -parent $parent] } + 1 { set result [tk_chooseDirectory -initialdir $localdir \ + -parent $parent] } + 2 { set result [tk_getOpenFile -multiple 1 -initialdir $localdir \ + -parent $parent] } + default { ::pdwindow::error "bad value for 'mode' argument" } + } + } else { + switch $mode { + 0 { set result [tk_getOpenFile -initialdir $localdir] } + 1 { set result [tk_chooseDirectory -initialdir $localdir] } + 2 { set result [tk_getOpenFile -multiple 1 -initialdir $localdir] } + default { ::pdwindow::error "bad value for 'mode' argument" } + } } if {$result ne ""} { if { $mode == 2 } { @@ -86,8 +98,14 @@ proc pdtk_savepanel {target localdir {parent .pdwindow}} { if {! [file isdirectory $localdir]} { set localdir $::pd::private::lastsavedir } - - set filename [tk_getSaveFile -initialdir $localdir -parent $parent] + if { ! [winfo exists parent] } { + set parent .pdwindow + } + if { [winfo exists parent] } { + set filename [tk_getSaveFile -initialdir $localdir -parent $parent] + } else { + set filename [tk_getSaveFile -initialdir $localdir] + } if {$filename ne ""} { set ::pd::private::lastsavedir [file dirname $filename] pdsend "$target callback [enquote_path $filename]" From cf2e812b696441e951cc1234ecdfca46159e72e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 20 Feb 2024 14:58:30 +0100 Subject: [PATCH 076/450] whitespace --- src/m_class.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/m_class.c b/src/m_class.c index 5ea4b1341..36395fcd8 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -203,7 +203,7 @@ void pdinstance_free(t_pdinstance *x) pd_setinstance(x); sys_lock(); pd_globallock(); - + instanceno = x->pd_instanceno; inter = x->pd_inter; canvas_suspend_dsp(); @@ -1252,4 +1252,3 @@ int class_getdspflags(const t_class *c) (c->c_nopromotesig ? CLASS_NOPROMOTESIG : 0) | (c->c_nopromoteleft ? CLASS_NOPROMOTELEFT : 0) ); } - From 3b721117278a02f8520523c66082ef4d14cd7523 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 20 Feb 2024 14:59:22 +0100 Subject: [PATCH 077/450] make vararg handling in class_addcreator() more robust and incidentally use the same checks as in class_addmethod() Closes: https://github.com/pure-data/pure-data/issues/2199 --- src/m_class.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/m_class.c b/src/m_class.c index 36395fcd8..d9efec4b4 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -569,28 +569,27 @@ void class_addcreator(t_newmethod newmethod, t_symbol *s, t_atomtype type1, ...) { va_list ap; - t_atomtype vec[MAXPDARG+1], *vp = vec; + t_atomtype vec[MAXPDARG+1], *vp = vec, argtype = type1; int count = 0; - *vp = type1; + if(!argtype) argtype = A_NULL; va_start(ap, type1); - while (*vp) - { - if (count == MAXPDARG) - { - if(s) - pd_error(0, "class %s: sorry: only %d creation args allowed", - s->s_name, MAXPDARG); - else - pd_error(0, "unnamed class: sorry: only %d creation args allowed", - MAXPDARG); - break; - } - vp++; - count++; - *vp = va_arg(ap, t_atomtype); + while(argtype != A_NULL && count < MAXPDARG) { + vec[count++] = argtype; + argtype = va_arg(ap, t_atomtype); + if(!argtype) argtype = A_NULL; } va_end(ap); + /* the last argument must be A_NULL */ + if (A_NULL != argtype) { + if(s) + pd_error(0, "class %s: sorry: only %d creation args allowed", + s->s_name, MAXPDARG); + else + pd_error(0, "unnamed class: sorry: only %d creation args allowed", + MAXPDARG); + } + vec[count] = A_NULL; class_addmethod(pd_objectmaker, (t_method)newmethod, s, vec[0], vec[1], vec[2], vec[3], vec[4], vec[5]); } From c560b0cd509d41be1ad5a2cba32e57ac340a8074 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 20 Feb 2024 15:32:36 +0100 Subject: [PATCH 078/450] fix find-error on Windows (mostly) Closes: https://github.com/pure-data/pure-data/issues/2191 TODO: if we are really unlucky, the instance id will only have numbers (that is "[0-9]", but without any "[a-f]"), which will then trigger Pd's number parser and we get a "bad arguments for message 'findinstance'" --- src/s_print.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/s_print.c b/src/s_print.c index 214e307fe..7c2a9d8ba 100644 --- a/src/s_print.c +++ b/src/s_print.c @@ -308,12 +308,15 @@ void glob_findinstance(t_pd *dummy, t_symbol*s) // revert s to (potential) pointer to object PD_LONGINTTYPE obj = 0; const char*addr; + int result = 0; if(!s || !s->s_name) return; addr = s->s_name; - if (('.' != addr[0]) && ('0' != addr[0])) - return; - if (!sscanf(addr+1, "x%lx", &obj)) + if (('.' == addr[0]) || ('0' == addr[0])) + result = sscanf(addr+1, "x%lx", &obj); + if (!result) + result = sscanf(addr, "%p", &obj); + if (!result) return; if(!obj) From edec0e4fe71844e76c3988493ad6983c4053f219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 20 Feb 2024 15:49:37 +0100 Subject: [PATCH 079/450] use PDGUI_FORMAT__OBJECT for sending object-IDs between core<->gui the GUI doesn't care, but the core needs to use the same formatter for sending and receiving (parsing). also the ID must always be a symbol so can bypass Pd's atom parser --- src/s_inter_gui.c | 4 +++- src/s_print.c | 6 +++--- src/s_stuff.h | 7 +++++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/s_inter_gui.c b/src/s_inter_gui.c index ae07cb59b..6adfc09df 100644 --- a/src/s_inter_gui.c +++ b/src/s_inter_gui.c @@ -231,9 +231,11 @@ static int addmess(const t_val *v) sys_vgui("{%s}", str_escape(v->value.p, v->size)); break; case GUI_VMESS__POINTER: - case GUI_VMESS__OBJECT: sys_vgui("%p", v->value.p); break; + case GUI_VMESS__OBJECT: + sys_vgui(PDGUI_FORMAT__OBJECT, v->value.p); + break; case GUI_VMESS__MESSAGE: sys_vgui("{"); if (v->string) diff --git a/src/s_print.c b/src/s_print.c index 7c2a9d8ba..58caade88 100644 --- a/src/s_print.c +++ b/src/s_print.c @@ -312,10 +312,10 @@ void glob_findinstance(t_pd *dummy, t_symbol*s) if(!s || !s->s_name) return; addr = s->s_name; - if (('.' == addr[0]) || ('0' == addr[0])) - result = sscanf(addr+1, "x%lx", &obj); if (!result) - result = sscanf(addr, "%p", &obj); + result = sscanf(addr, PDGUI_FORMAT__OBJECT, &obj); + if (!result && (('.' == addr[0]) || ('0' == addr[0]))) + result = sscanf(addr+1, "x%lx", &obj); if (!result) return; diff --git a/src/s_stuff.h b/src/s_stuff.h index 65fb0b64a..361a0cc81 100644 --- a/src/s_stuff.h +++ b/src/s_stuff.h @@ -424,3 +424,10 @@ struct _instancestuff * 'srclen' can be 0, in which case the 'src' string must be 0-terminated. */ EXTERN char*pdgui_strnescape(char* dst, size_t dstlen, const char*src, size_t srclen); + +/* format non-trivial data when sending it from core->gui (and vice versa) + */ +/* make sure that an object-id is always a string (even on windows, where %p + * does not prefix '0x' + */ +#define PDGUI_FORMAT__OBJECT "obj:%p" From 4aaca87ec4522272cabbba37778130a0b9a618ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Wed, 21 Feb 2024 17:29:45 +0100 Subject: [PATCH 080/450] explicitly set A_NULL to 0 for vararg termination, typically just "0" is used, so make it explicit that this is really the same as A_NULL. --- src/m_class.c | 2 -- src/m_pd.h | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/m_class.c b/src/m_class.c index d9efec4b4..53b86dd5b 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -571,13 +571,11 @@ void class_addcreator(t_newmethod newmethod, t_symbol *s, va_list ap; t_atomtype vec[MAXPDARG+1], *vp = vec, argtype = type1; int count = 0; - if(!argtype) argtype = A_NULL; va_start(ap, type1); while(argtype != A_NULL && count < MAXPDARG) { vec[count++] = argtype; argtype = va_arg(ap, t_atomtype); - if(!argtype) argtype = A_NULL; } va_end(ap); /* the last argument must be A_NULL */ diff --git a/src/m_pd.h b/src/m_pd.h index d8c6c44e4..641ac39b9 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -167,7 +167,7 @@ typedef union word typedef enum { - A_NULL, + A_NULL = 0, A_FLOAT, A_SYMBOL, A_POINTER, From 54b34c3b6ad0550f6cb9f210c9d65e7900aa97c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Thu, 22 Feb 2024 07:31:22 -0500 Subject: [PATCH 081/450] printing: fix invalid format specifier in some cases on Win32. Fixes #2187 (#2188) --- src/s_print.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/s_print.c b/src/s_print.c index 58caade88..8f4cd4c37 100644 --- a/src/s_print.c +++ b/src/s_print.c @@ -11,6 +11,18 @@ #include "s_stuff.h" #include "m_private_utils.h" +#ifdef _WIN32 +#ifndef PD_FWPRINTF_NARROW_FORMATTER +#if __USE_MINGW_ANSI_STDIO + /* This is a workaround for a bug in the old msvcrt.dll used by MinGW */ + #define PD_FWPRINTF_NARROW_FORMATTER L"%s" +#else + /* Covers modern C runtimes on MSYS2 & MSVC */ + #define PD_FWPRINTF_NARROW_FORMATTER L"%S" +#endif +#endif /* PD_FWPRINTF_NARROW_FORMATTER */ +#endif /* _WIN32 */ + t_printhook sys_printhook = NULL; int sys_printtostderr; @@ -52,11 +64,7 @@ static void dopost(const char *s) else if (sys_printtostderr || !sys_havegui()) { #ifdef _WIN32 - #ifdef _MSC_VER - fwprintf(stderr, L"%S", s); - #else - fwprintf(stderr, L"%s", s); - #endif + fwprintf(stderr, PD_FWPRINTF_NARROW_FORMATTER, s); fflush(stderr); #else fprintf(stderr, "%s", s); @@ -82,11 +90,7 @@ static void doerror(const void *object, const char *s) else if (sys_printtostderr) { #ifdef _WIN32 - #ifdef _MSC_VER - fwprintf(stderr, L"error: %S", s); - #else - fwprintf(stderr, L"error: %s", s); - #endif + fwprintf(stderr, L"error: " PD_FWPRINTF_NARROW_FORMATTER, s); fflush(stderr); #else fprintf(stderr, "error: %s", s); @@ -114,11 +118,7 @@ static void dologpost(const void *object, const int level, const char *s) else if (sys_printtostderr) { #ifdef _WIN32 - #ifdef _MSC_VER - fwprintf(stderr, L"verbose(%d): %S", level, s); - #else - fwprintf(stderr, L"verbose(%d): %s", level, s); - #endif + fwprintf(stderr, L"verbose(%d): " PD_FWPRINTF_NARROW_FORMATTER, level, s); fflush(stderr); #else fprintf(stderr, "verbose(%d): %s", level, s); From 87ee44b89c33324202cf34f8e4a7f1d4e0f6850c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Sun, 25 Feb 2024 20:08:48 +0100 Subject: [PATCH 082/450] Ignore badfloats for slider and vu Closes: https://github.com/pure-data/pure-data/issues/2201 Co-authored by: Marco Matteo Markidis --- src/g_slider.c | 2 ++ src/g_vumeter.c | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/g_slider.c b/src/g_slider.c index a2b92bb5d..a6519df02 100644 --- a/src/g_slider.c +++ b/src/g_slider.c @@ -508,6 +508,8 @@ static void slider_set(t_slider *x, t_floatarg f) { int old = x->x_val; double g; + if (PD_BADFLOAT(f)) + return; x->x_fval = f; if (x->x_min > x->x_max) diff --git a/src/g_vumeter.c b/src/g_vumeter.c index 6519eb486..d911cc4eb 100644 --- a/src/g_vumeter.c +++ b/src/g_vumeter.c @@ -443,7 +443,9 @@ static void vu_float(t_vu *x, t_floatarg rms) { int i; int old = x->x_rms; - if(rms <= IEM_VU_MINDB) + if (PD_BADFLOAT(rms)) + return; + else if(rms <= IEM_VU_MINDB) x->x_rms = 0; else if(rms >= IEM_VU_MAXDB) x->x_rms = IEM_VU_STEPS; From e17ae0f22b52806401e5281756d72f975bfd1a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Sun, 25 Feb 2024 20:19:06 +0100 Subject: [PATCH 083/450] [vu] always disable sender Closes: https://github.com/pure-data/pure-data/issues/2189 --- src/g_vumeter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/g_vumeter.c b/src/g_vumeter.c index d911cc4eb..a0bed06d5 100644 --- a/src/g_vumeter.c +++ b/src/g_vumeter.c @@ -516,7 +516,6 @@ static void *vu_new(t_symbol *s, int argc, t_atom *argv) w = (int)atom_getfloatarg(0, argc, argv); h = (int)atom_getfloatarg(1, argc, argv); iemgui_new_getnames(&x->x_gui, 1, argv); - x->x_gui.x_snd_unexpanded = x->x_gui.x_snd = gensym("nosndno"); /*no send*/ ldx = (int)atom_getfloatarg(4, argc, argv); ldy = (int)atom_getfloatarg(5, argc, argv); iem_inttofstyle(&x->x_gui.x_fsf, atom_getfloatarg(6, argc, argv)); @@ -525,6 +524,7 @@ static void *vu_new(t_symbol *s, int argc, t_atom *argv) scale = (int)atom_getfloatarg(10, argc, argv); } else iemgui_new_getnames(&x->x_gui, 1, 0); + x->x_gui.x_snd_unexpanded = x->x_gui.x_snd = gensym("nosndno"); /*no send*/ if((argc == 12)&&IS_A_FLOAT(argv,11)) iem_inttosymargs(&x->x_gui.x_isa, atom_getfloatarg(11, argc, argv)); From d49ebcec1b9c09f4ccd942ce2b7eabbb58be2755 Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 28 Feb 2024 16:38:51 -0300 Subject: [PATCH 084/450] better describe reverberators [rev1~] was described as a chain of allpass filters, but [rev2~] and [rev3~] had no description, so I said thy are based on a feedback delay network. Other help files had minor changes and improvements. Worth mentioning is the [readsf~] text on how to use [file which] was confusing, now I think it's much better. --- doc/5.reference/delay-tilde-objects-help.pd | 8 +-- doc/5.reference/env~-help.pd | 18 +++--- doc/5.reference/file-help.pd | 6 +- doc/5.reference/int-help.pd | 10 +-- doc/5.reference/readsf~-help.pd | 18 +++--- extra/rev1~-help.pd | 4 +- extra/rev2~-help.pd | 33 +++++----- extra/rev3~-help.pd | 67 +++++++++++---------- extra/sigmund~/sigmund~-help.pd | 2 + 9 files changed, 86 insertions(+), 80 deletions(-) diff --git a/doc/5.reference/delay-tilde-objects-help.pd b/doc/5.reference/delay-tilde-objects-help.pd index 7982c2c7b..dbf399917 100644 --- a/doc/5.reference/delay-tilde-objects-help.pd +++ b/doc/5.reference/delay-tilde-objects-help.pd @@ -24,7 +24,7 @@ #X text 123 376 input (delay time in ms); #X msg 49 376 500; #X text 732 527 updated for Pd version 0.52; -#X text 213 329 2nd argument: length of delay line in msec (the maximum delay time in read objects), f 42; +#X text 214 329 2nd argument: length of delay line in msec (the maximum delay time in read objects), f 42; #X text 119 64 - read from a delay line with 4-point interpolation (for variable delay times), f 40; #X text 656 198 signal input (variable delay time in ms); #X obj 491 70 vd~; @@ -80,10 +80,10 @@ #X text 784 275 -- old name of; #X text 588 468 See also other examples in the "G" section for more fun with delays \, such as feedback delays., f 46; #X obj 155 529 send~; -#X text 12 112 The [delread~] and [delread4~] objects read from a delay line allocated in a [delwrite~] object with the same name. You can use more than one [delread~] and/or [delread4~] objects for the same [delwrite~] object. If the specified delay time in [delread~]/[delread4~] is longer than the size of the delay line or less than zero it is clipped to the length of the delay line., f 81; +#X text 30 112 The [delread~] and [delread4~] objects read from a delay line allocated in a [delwrite~] object with the same name. You can use more than one [delread~] and/or [delread4~] objects for the same [delwrite~] object. If the specified delay time in [delread~]/[delread4~] is longer than the size of the delay line or less than zero it is clipped to the length of the delay line., f 76; #X text 246 450 Note that in this help file we're using delay names with "\$0" (the patch ID number used to force locality in Pd)., f 40; -#X text 138 188 Usually \, [delread~]/[delread4~] must have the same block size \, overlap and upsampling factors as the corresponding [delwrite~] object \, otherwise you might get unexpected results \, unless you really know what you're doing. This example patch uses the default block size of 64 samples but you can change it with:, f 63; -#X obj 510 270 block~; +#X text 121 188 Usually \, [delread~]/[delread4~] must have the same block size \, overlap and upsampling factors as the corresponding [delwrite~] object \, otherwise you might get unexpected results \, unless you really know what you're doing. This example patch uses the default block size of 64 samples but you can change it with:, f 63; +#X obj 518 269 block~; #X text 113 280 <-- set all samples of delay line to zero.; #X connect 3 0 7 0; #X connect 5 0 3 0; diff --git a/doc/5.reference/env~-help.pd b/doc/5.reference/env~-help.pd index dd7d6e33a..3ebdf55e3 100644 --- a/doc/5.reference/env~-help.pd +++ b/doc/5.reference/env~-help.pd @@ -1,12 +1,11 @@ -#N canvas 593 27 546 593 12; +#N canvas 493 24 546 593 12; #X floatatom 47 347 8 0 0 0 - - - 0; #X obj 18 11 env~; #X text 58 12 - envelope follower; #X obj 47 211 osc~ 400; #X obj 47 268 *~; -#X floatatom 132 199 5 0 100 0 - - - 0; +#X floatatom 132 196 5 0 100 0 - - - 0; #X obj 132 237 dbtorms; -#X text 30 56 The env~ object takes a signal and outputs its RMS amplitude in dB (with 1 normalized to 100 dB.) Output is bounded below by zero., f 67; #X obj 47 303 env~ 16384 8192; #X text 164 279 creation arguments:; #X text 30 92 The analysis is "Hanning" (raised cosine) windowed., f 67; @@ -39,11 +38,14 @@ #X text 321 563 updated for Pd version 0.4; #X obj 368 185 set-dsp-tgl; #X text 399 189 DSP on/off; -#X connect 0 0 14 0; +#X text 30 56 The [env~] object takes a signal and outputs its RMS amplitude in dB (with 1 normalized to 100 dB.) Output is bounded below by zero., f 67; +#X text 16 564 see also:; +#X obj 94 563 sigmund~; +#X connect 0 0 13 0; #X connect 3 0 4 0; -#X connect 4 0 8 0; +#X connect 4 0 7 0; #X connect 5 0 6 0; #X connect 6 0 4 1; -#X connect 8 0 0 0; -#X connect 14 0 13 0; -#X connect 25 0 12 0; +#X connect 7 0 0 0; +#X connect 13 0 12 0; +#X connect 24 0 11 0; diff --git a/doc/5.reference/file-help.pd b/doc/5.reference/file-help.pd index f81f84ad4..a61688e32 100644 --- a/doc/5.reference/file-help.pd +++ b/doc/5.reference/file-help.pd @@ -305,7 +305,7 @@ #X text 156 250 - list files in directories; #X obj 27 249 file glob; #X obj 27 222 file which; -#N canvas 660 134 623 461 which 0; +#N canvas 560 152 623 461 which 0; #X obj 35 187 file which; #X symbolatom 35 301 79 0 0 0 - - - 0; #X obj 35 327 print found; @@ -315,7 +315,7 @@ #X text 73 364 notes:; #X text 126 364 - currently this only works for files \, not for directories!; #X text 126 385 - currently only the first match is returned; -#X text 178 123 a file that ships with Pd; +#X text 177 121 a file that ships with Pd; #X text 139 156 probably does not exist in Pd's search path; #N canvas 628 410 738 232 arguments 0; #X text 274 145 less verbose (quiet); @@ -336,7 +336,6 @@ #X floatatom 127 274 3 0 0 1 - - - 0; #X obj 11 47 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 137 14 - locate a file; -#X text 29 65 [file which] tries to locate the file in using Pd's search-paths and returns the resolved path., f 69; #X obj 50 15 file which; #N canvas 778 127 581 317 reference 0; #X obj 9 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; @@ -356,6 +355,7 @@ #X text 85 174 symbol - the input symbol if file isn't located.; #X restore 518 15 pd reference; #X text 157 273 directory flag: 0 if file \, 1 if directory \, see notes below.; +#X text 53 65 [file which] tries to locate the file in using Pd's search-paths (via preferences and/or the [declare] object) and returns the resolved path., f 72; #X connect 0 0 13 0; #X connect 0 1 12 0; #X connect 1 0 2 0; diff --git a/doc/5.reference/int-help.pd b/doc/5.reference/int-help.pd index 8437c24b8..73ef22869 100644 --- a/doc/5.reference/int-help.pd +++ b/doc/5.reference/int-help.pd @@ -42,7 +42,6 @@ #X connect 13 0 3 0; #X connect 14 0 7 0; #X restore 362 474 pd Dealing_with_"\$0"; -#X text 38 80 The int object stores a number initialized by its creation argument \, which may be reset using its inlet and output by sending it the "bang" message. Sending a number sets a new value and outputs it. A non-integer input is truncated to an integer (a la Max) so the object can also be used to truncate values and convert from float to integers., f 72; #X obj 69 481 print float; #X msg 83 290 3 10 a; #X text 136 291 list get truncated to the first item; @@ -87,7 +86,8 @@ #X text 175 461 open subpatch to see how to deal with '\$0' ------>, f 25; #X text 203 318 send to a named object such as a GUI \, a receive or value objects -->, f 35; #X obj 455 306 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X connect 0 0 18 0; +#X text 38 80 The [int] object stores a number initialized by its creation argument \, which may be reset using its inlet and output by sending it the "bang" message. Sending a number sets a new value and outputs it. A non-integer input is truncated to an integer (a la Max) so the object can also be used to truncate values and convert from float to integers., f 72; +#X connect 0 0 17 0; #X connect 1 0 7 0; #X connect 2 0 7 1; #X connect 7 0 0 0; @@ -96,6 +96,6 @@ #X connect 10 0 1 0; #X connect 14 0 11 0; #X connect 15 0 12 0; -#X connect 19 0 7 0; -#X connect 35 0 7 0; -#X connect 40 0 15 0; +#X connect 18 0 7 0; +#X connect 34 0 7 0; +#X connect 39 0 15 0; diff --git a/doc/5.reference/readsf~-help.pd b/doc/5.reference/readsf~-help.pd index beaca9631..731db002b 100644 --- a/doc/5.reference/readsf~-help.pd +++ b/doc/5.reference/readsf~-help.pd @@ -1,4 +1,4 @@ -#N canvas 421 44 688 635 12; +#N canvas 421 44 688 659 12; #X declare -stdpath ./; #X obj 491 428 print didit; #X obj 163 403 env~ 16384; @@ -9,13 +9,13 @@ #X obj 323 403 env~ 16384; #X obj 404 403 env~ 16384; #X msg 41 177 open ../sound/bell.aiff 0 200 4 2 b; -#X obj 96 599 soundfiler; -#X text 17 598 see also:; +#X obj 96 615 soundfiler; +#X text 17 614 see also:; #X obj 38 15 readsf~; #X text 300 167 Open takes a filename \, an onset in sample frames \, and \, as an override \, you may also supply a header size to skip \, a number of channels \, bytes per sample \, and endianness., f 44; #X text 21 126 The wave \, aiff \, caf \, and next formats are parsed automatically \, although only uncompressed 2- or 3-byte integer ("pcm") and 4-byte floating point samples are accepted., f 91; #X obj 34 406 output~; -#X obj 185 599 writesf~; +#X obj 185 615 writesf~; #X obj 491 402 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X text 511 352 - number of channels \; - per channel buffer size in bytes, f 22; #X msg 75 205 open ../sound/bell.aiff; @@ -51,7 +51,7 @@ #X floatatom 323 430 6 0 0 0 - - - 0; #X floatatom 404 430 6 0 0 0 - - - 0; #X text 506 334 Arguments:; -#X obj 7 582 cnv 1 675 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 7 598 cnv 1 675 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 207 322 print information on the Pd window; #X obj 123 287 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; #X floatatom 123 314 3 0 0 0 - - - 0; @@ -61,12 +61,12 @@ #X text 136 233 start playback; #X text 143 259 stop playback; #X text 21 60 The [readsf~] object reads a soundfile into its signal outputs. You must open the soundfile in advance (best a little bit before you need it) using the "open" message. The object immediately starts reading from the file \, but output will only appear after you send a "1" or "start" message to start the playback. A "0" or "stop" message stops it., f 91; -#X text 482 602 Updated for version 0.53-1; +#X text 482 618 Updated for version 0.53-1; #X text 96 15 - soundfile playback from disk; #X text 487 451 "bang" when the soundfile is done., f 18; -#X text 538 546 see:; -#X obj 581 546 file which; -#X text 39 505 Note: [readsf~] cannot find files in folders added via a [declare] object and it is recommended to use [file which] to get absolute paths which can be used with open. Folder paths added to the search path via preferences do work., f 82; +#X text 528 562 see:; +#X obj 571 562 file which; +#X text 49 505 Note: [readsf~] can find files added to the search path via preferences as usual \, but it can't find files in folders added via a [declare] object! In this case it is recommended to use [file which] because it can search paths added via [declare] and return the absolute path to be used with the 'open' message., f 82; #X connect 1 0 2 0; #X connect 3 0 5 0; #X connect 4 0 23 0; diff --git a/extra/rev1~-help.pd b/extra/rev1~-help.pd index 591c3dcb8..3cff17dac 100644 --- a/extra/rev1~-help.pd +++ b/extra/rev1~-help.pd @@ -1,4 +1,4 @@ -#N canvas 515 23 648 487 12; +#N canvas 350 30 648 487 12; #X floatatom 172 255 5 0 100 0 - db - 0; #X obj 29 93 metro 2000; #X text 210 283 clear; @@ -76,7 +76,7 @@ #X connect 21 0 20 0; #X connect 22 0 23 0; #X restore 29 204 pd test-input; -#X obj 30 350 output~; +#X obj 29 350 output~; #X obj 156 350 output~; #X obj 6 44 cnv 1 630 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 552 12 <= click; diff --git a/extra/rev2~-help.pd b/extra/rev2~-help.pd index 36761d01a..6ed41646c 100644 --- a/extra/rev2~-help.pd +++ b/extra/rev2~-help.pd @@ -1,9 +1,9 @@ -#N canvas 472 38 646 596 12; -#X floatatom 113 313 4 0 120 0 - - - 0; +#N canvas 472 38 646 597 12; +#X floatatom 113 291 4 0 120 0 - - - 0; #X floatatom 147 344 4 0 100 0 - - - 0; -#X floatatom 181 381 6 0 0 0 - - - 0; +#X floatatom 181 379 6 0 0 0 - - - 0; #X floatatom 216 407 4 0 100 0 - - - 0; -#X text 229 381 crossover frequency \, Hz.; +#X text 229 379 crossover frequency \, Hz.; #X obj 35 10 rev2~, f 7; #X text 98 10 - a simple 1-in \, 4-out reverberator; #X text 21 565 see also:; @@ -12,11 +12,11 @@ #X obj 79 109 metro 2000; #X obj 79 137 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X obj 79 84 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X msg 167 77 20; -#X msg 176 100 100; -#X msg 189 147 1000; +#X msg 167 67 20; +#X msg 176 90 100; +#X msg 189 137 1000; #X floatatom 167 183 5 0 0 0 - - - 0; -#X msg 183 124 500; +#X msg 183 114 500; #X floatatom 123 183 5 0 0 0 - freq - 0; #X text 119 162 pitch; #X text 101 137 impulse; @@ -74,7 +74,7 @@ #X connect 21 0 20 0; #X connect 22 0 23 0; #X restore 79 220 pd test-input; -#X obj 21 470 output~; +#X obj 21 480 output~; #X obj 6 44 cnv 1 630 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 552 12 <= click; #N canvas 746 67 578 447 reference 0; @@ -109,14 +109,15 @@ #X restore 458 13 pd reference; #X obj 6 549 cnv 1 630 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 417 562 updated for Pd version 0.37; -#X obj 79 436 rev2~ 100 90 3000 20; -#X text 251 408 High Frequency damping (in percent: 0-100), f 22; -#X obj 170 470 output~; -#X text 147 312 output level dB; -#X text 212 74 <-- tone burst durtion in ms; -#X text 270 112 The creation arguments (output level \, liveness \, crossover frequency \, HF damping) may also be supplied in four inlets as shown. The "liveness" (actually the internal feedback percentage) should be 100 for infinite reverb \, 90 for longish \, and 80 for short., f 50; -#X text 270 202 The crossover frequency and HF damping work together: at frequencies above crossover \, the feedback is diminished by the "damping" as a percentage. So zero HF damping means equal reverb time at all frequencies \, and 100% damping means almost nothing above the crossover frequency gets through., f 50; +#X obj 79 446 rev2~ 100 90 3000 20; +#X text 251 399 High Frequency damping (in percent: 0-100), f 22; +#X obj 170 480 output~; #X text 180 337 liveness/feedback (in percent: 0-100), f 19; +#X text 239 443 args: level \, liveness \, crossover \, damping; +#X text 147 279 output level (dB), f 6; +#X text 200 66 <-- tone burst duration in ms; +#X text 248 104 The [rev2~] object is a reverberator based on a feedback delay network. Its arguments (output level \, liveness \, crossover frequency \, high frequency damping) may also be supplied via the four inlets as shown here. The "liveness" (actually the internal feedback percentage) should be 100 for an infinite reverb \, 90 for longish \, and 80 for short., f 52; +#X text 248 212 The crossover frequency and high frequency damping work together: at frequencies above crossover \, the feedback is diminished by the "damping" as a percentage. So zero high frequency damping means equal reverb time at all frequencies \, and 100% damping means almost nothing above the crossover frequency gets through., f 52; #X connect 0 0 28 1; #X connect 1 0 28 2; #X connect 2 0 28 3; diff --git a/extra/rev3~-help.pd b/extra/rev3~-help.pd index 6df1f5ce7..8f7b18ff4 100644 --- a/extra/rev3~-help.pd +++ b/extra/rev3~-help.pd @@ -1,18 +1,18 @@ -#N canvas 409 31 730 537 12; -#X obj 78 372 rev3~ 100 90 3000 20; +#N canvas 409 31 730 573 12; +#X obj 57 403 rev3~ 100 90 3000 20; #X obj 27 14 rev3~, f 9; #X text 104 13 - hard-core \, 2-in \, 4-out reverberator; -#X obj 78 94 metro 2000; -#X obj 78 122 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 78 69 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X msg 166 67 20; -#X msg 175 90 100; -#X msg 188 137 1000; -#X floatatom 166 168 5 0 0 0 - - - 0; -#X msg 182 114 500; -#X floatatom 122 168 5 0 0 0 - freq - 0; -#X text 118 147 pitch; -#X text 99 122 impulse; +#X obj 57 95 metro 2000; +#X obj 57 123 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 57 70 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X msg 145 68 20; +#X msg 154 91 100; +#X msg 167 138 1000; +#X floatatom 145 169 5 0 0 0 - - - 0; +#X msg 161 115 500; +#X floatatom 101 169 5 0 0 0 - freq - 0; +#X text 97 148 pitch; +#X text 78 123 impulse; #N canvas 863 156 393 438 test-input 0; #X obj 241 191 line~; #X obj 241 214 cos~; @@ -66,15 +66,15 @@ #X connect 20 0 13 0; #X connect 21 0 20 0; #X connect 22 0 23 0; -#X restore 78 205 pd test-input; -#X floatatom 132 253 4 0 120 0 - - - 0; -#X floatatom 160 282 4 0 100 0 - - - 0; -#X floatatom 187 317 6 0 0 0 - - - 0; -#X floatatom 215 343 4 0 100 0 - - - 0; -#X text 235 317 crossover frequency \, Hz.; -#X text 31 503 see also:; -#X obj 20 404 output~; -#X obj 169 404 output~; +#X restore 57 206 pd test-input; +#X floatatom 111 264 4 0 120 0 - - - 0; +#X floatatom 139 293 4 0 100 0 - - - 0; +#X floatatom 166 330 6 0 0 0 - - - 0; +#X floatatom 194 361 4 0 100 0 - - - 0; +#X text 214 330 crossover frequency \, Hz.; +#X text 31 543 see also:; +#X obj 33 449 output~; +#X obj 148 449 output~; #X obj 6 44 cnv 1 715 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 622 12 <= click; #N canvas 746 67 573 478 reference 0; @@ -109,17 +109,18 @@ #X text 131 72 signal - left channel reverb input., f 56; #X text 131 99 signal - right channel reverb input., f 56; #X restore 528 13 pd reference; -#X obj 104 503 rev1~; -#X text 480 500 updated for Pd version 0.37-1; -#X obj 5 488 cnv 1 715 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X obj 90 306 *~ -1; -#X obj 152 503 rev2~, f 8; -#X text 163 253 output level (dB); -#X text 193 277 liveness \, feedback percentage (0-100), f 18; -#X text 347 116 The creation arguments (output level \, liveness \, crossover frequency \, HF damping) may also be supplied in four inlets as shown. The "liveness" (actually the internal feedback percentage) should be 100 for infinite reverb \, 90 for longish \, and 80 for short. The crossover frequency and HF damping work together: at frequencies above crossover \, the feedback is diminished by the "damping" as a percentage. So zero HF damping means equal reverb time at all frequencies \, and 100% damping means almost nothing above the crossover frequency gets through., f 50; -#X text 250 344 High Frequency damping \, percentage (0-100), f 23; -#X text 211 64 <-- tone burst durtion in ms, f 14; -#X text 398 61 (A more expensive \, presumably better \, one than [rev2~].), f 29; +#X obj 104 543 rev1~; +#X text 480 540 updated for Pd version 0.37-1; +#X obj 5 528 cnv 1 715 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 69 317 *~ -1; +#X obj 152 543 rev2~, f 8; +#X text 142 264 output level (dB); +#X text 172 288 liveness \, feedback percentage (0-100), f 18; +#X text 229 355 High Frequency damping \, percentage (0-100), f 23; +#X text 189 67 <-- tone burst durtion in ms, f 14; +#X text 327 68 The [rev3~] object is a more expensive \, presumably better \, reverberator than [rev2~]. It has a bigger feedback delay network matrix and an early reflections stage., f 54; +#X text 212 402 args: level \, liveness \, crossover \, damping; +#X text 327 131 The creation arguments (output level \, liveness \, crossover frequency \, high frequency damping) may also be supplied in four inlets as shown. The "liveness" (actually the internal feedback percentage) should be 100 for infinite reverb \, 90 for longish \, and 80 for short. The crossover frequency and high frequency damping work together: at frequencies above crossover \, the feedback is diminished by the "damping" as a percentage. So zero high frequency damping means equal reverb time at all frequencies \, and 100% damping means almost nothing above the crossover frequency gets through., f 54; #X connect 0 0 21 0; #X connect 0 1 21 1; #X connect 0 2 22 0; diff --git a/extra/sigmund~/sigmund~-help.pd b/extra/sigmund~/sigmund~-help.pd index 77020830a..0d9eab0ba 100644 --- a/extra/sigmund~/sigmund~-help.pd +++ b/extra/sigmund~/sigmund~-help.pd @@ -290,6 +290,8 @@ #X restore 457 505 pd more; #X text 31 228 The basic parameters for all output options are:; #X text 38 333 These can be set via flags or messages. The 'npts' and 'hop' parameters are in samples and need to be powers of two. The example below specifies a huge hop of 4096 (to slow the output down). There are more parameters see [pd setting-parameters] for more details on them all., f 74; +#X text 29 592 see also:; +#X obj 105 592 env~; #X connect 1 0 35 0; #X connect 4 0 1 0; #X connect 26 0 4 0; From 9bae2a5e109bbbc654a314b85a6097f8c9f32642 Mon Sep 17 00:00:00 2001 From: porres Date: Sat, 2 Mar 2024 13:08:39 -0300 Subject: [PATCH 085/450] improve readsf~ this was motivated by making it clear that the object doesnt' load the file into the memory, but other improvements were made. --- doc/5.reference/readsf~-help.pd | 126 +++++++++++++++----------------- 1 file changed, 60 insertions(+), 66 deletions(-) diff --git a/doc/5.reference/readsf~-help.pd b/doc/5.reference/readsf~-help.pd index 731db002b..05df1a678 100644 --- a/doc/5.reference/readsf~-help.pd +++ b/doc/5.reference/readsf~-help.pd @@ -1,28 +1,19 @@ -#N canvas 421 44 688 659 12; +#N canvas 339 45 705 651 12; #X declare -stdpath ./; -#X obj 491 428 print didit; -#X obj 163 403 env~ 16384; -#X floatatom 163 430 6 0 0 0 - - - 0; -#X msg 162 324 print; -#X obj 243 403 env~ 16384; -#X obj 74 364 readsf~ 4 1e+06, f 60; -#X obj 323 403 env~ 16384; -#X obj 404 403 env~ 16384; -#X msg 41 177 open ../sound/bell.aiff 0 200 4 2 b; -#X obj 96 615 soundfiler; -#X text 17 614 see also:; -#X obj 38 15 readsf~; -#X text 300 167 Open takes a filename \, an onset in sample frames \, and \, as an override \, you may also supply a header size to skip \, a number of channels \, bytes per sample \, and endianness., f 44; -#X text 21 126 The wave \, aiff \, caf \, and next formats are parsed automatically \, although only uncompressed 2- or 3-byte integer ("pcm") and 4-byte floating point samples are accepted., f 91; -#X obj 34 406 output~; -#X obj 185 615 writesf~; -#X obj 491 402 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X text 511 352 - number of channels \; - per channel buffer size in bytes, f 22; -#X msg 75 205 open ../sound/bell.aiff; -#X obj 537 261 declare -stdpath ./; -#X obj 7 47 cnv 1 675 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 613 14 <= click; -#N canvas 679 102 573 384 reference 0; +#X obj 499 448 print didit; +#X floatatom 82 460 6 0 0 0 - - - 0; +#X msg 150 342 print; +#X obj 96 614 soundfiler; +#X text 17 613 see also:; +#X obj 38 13 readsf~; +#X obj 144 426 output~; +#X obj 185 614 writesf~; +#X obj 499 422 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X text 519 372 - number of channels \; - per channel buffer size in bytes, f 22; +#X obj 549 262 declare -stdpath ./; +#X obj 3 45 cnv 1 695 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 623 12 <= click; +#N canvas 651 73 573 384 reference 0; #X obj 8 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; #X obj 8 208 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; #X obj 8 309 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; @@ -31,7 +22,6 @@ #X obj 7 236 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 0; #X obj 30 18 readsf~; #X text 78 68 open -; -#X text 177 68 sets a filename \, an onset in samples \, header size to skip \, number of channels \, bytes per sample \, and endianness., f 50; #X text 120 157 float -; #X text 177 157 nonzero starts playback \, zero stops., f 50; #X text 121 178 print - prints information on Pd's terminal window., f 58; @@ -43,46 +33,50 @@ #X text 82 213 ('n' number of outlets specified by argument); #X text 120 117 start -; #X text 127 137 stop -; -#X text 177 117 start playback (needs a prior 'open' message)., f 50; #X text 177 137 stop playback., f 50; #X text 88 19 - soundfile playback from disk.; -#X restore 519 15 pd reference; -#X floatatom 243 430 6 0 0 0 - - - 0; -#X floatatom 323 430 6 0 0 0 - - - 0; -#X floatatom 404 430 6 0 0 0 - - - 0; -#X text 506 334 Arguments:; -#X obj 7 598 cnv 1 675 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 207 322 print information on the Pd window; -#X obj 123 287 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; -#X floatatom 123 314 3 0 0 0 - - - 0; -#X text 146 287 nonzero starts playback \, zero stops it; -#X msg 91 233 start; -#X msg 104 259 stop; -#X text 136 233 start playback; -#X text 143 259 stop playback; -#X text 21 60 The [readsf~] object reads a soundfile into its signal outputs. You must open the soundfile in advance (best a little bit before you need it) using the "open" message. The object immediately starts reading from the file \, but output will only appear after you send a "1" or "start" message to start the playback. A "0" or "stop" message stops it., f 91; -#X text 482 618 Updated for version 0.53-1; -#X text 96 15 - soundfile playback from disk; -#X text 487 451 "bang" when the soundfile is done., f 18; -#X text 528 562 see:; -#X obj 571 562 file which; -#X text 49 505 Note: [readsf~] can find files added to the search path via preferences as usual \, but it can't find files in folders added via a [declare] object! In this case it is recommended to use [file which] because it can search paths added via [declare] and return the absolute path to be used with the 'open' message., f 82; -#X connect 1 0 2 0; -#X connect 3 0 5 0; -#X connect 4 0 23 0; -#X connect 5 0 1 0; -#X connect 5 0 14 0; -#X connect 5 1 4 0; -#X connect 5 1 14 1; -#X connect 5 2 6 0; -#X connect 5 3 7 0; -#X connect 5 4 16 0; -#X connect 6 0 24 0; -#X connect 7 0 25 0; -#X connect 8 0 5 0; -#X connect 16 0 0 0; -#X connect 18 0 5 0; -#X connect 29 0 30 0; -#X connect 30 0 5 0; -#X connect 32 0 5 0; -#X connect 33 0 5 0; +#X text 177 117 start playback., f 50; +#X text 177 68 sets a filename \, an onset in samples \, header size to skip \, number of channels \, bytes per sample \, and endianness. (needed before start playback.), f 50; +#X restore 529 13 pd reference; +#X floatatom 290 460 6 0 0 0 - - - 0; +#X text 514 354 Arguments:; +#X text 195 341 print information on the Pd window; +#X obj 104 276 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X floatatom 104 303 3 0 0 0 - - - 0; +#X text 127 276 nonzero starts playback \, zero stops it; +#X msg 51 215 start; +#X msg 82 245 stop; +#X text 96 215 start playback; +#X text 121 245 stop playback; +#X text 496 613 Updated for version 0.53-1; +#X text 96 13 - soundfile playback from disk; +#X text 528 564 see:; +#X obj 571 564 file which; +#X text 21 136 The 'wave' \, 'aiff' \, 'caf' \, and 'next' formats are parsed automatically \, although only uncompressed 2- or 3-byte integer ("pcm") and 4-byte floating point samples are accepted., f 93; +#X text 287 177 Open takes: filename \, onset in samples \, header size to skip \, channels number \, bytes per sample and endianness., f 55; +#X obj 3 602 cnv 1 695 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 21 56 The [readsf~] object reads a soundfile from the hard disk (that is \, it doesn't load it into the memory). You must always first use the "open" message (when it immediately starts reading from the file in advance) \, though playback only starts from the begining after you send a "1" or "start" message. A "0" or "stop" message stops it. Opening in advance a bit earlier was necessary to give the CPU some time back in the day where CPU power was a scarce resource., f 93; +#X text 49 507 Note: [readsf~] can find files added to the search path via preferences as usual \, but it can't find files in folders added via a [declare] object! In this case it is recommended to use [file which] \, because it can search paths added via [declare] and return the absolute path to be used with the 'open' message., f 83; +#X obj 82 433 env~; +#X obj 290 433 env~; +#X obj 82 384 readsf~ 2 1e+06, f 60; +#X text 287 210 (By overriding the header above \, we force this mono file to be played as a stereo twice as fast), f 55; +#X text 371 420 "bang" when file reaches the end., f 16; +#X msg 24 185 open ../sound/bell.aiff 0 200 2 2 b; +#X msg 145 305 open ../sound/bell.aiff 22050 \, 1; +#X text 385 298 open at half a second into the file and start right away., f 30; +#X connect 2 0 35 0; +#X connect 8 0 0 0; +#X connect 17 0 18 0; +#X connect 18 0 35 0; +#X connect 20 0 35 0; +#X connect 21 0 35 0; +#X connect 33 0 1 0; +#X connect 34 0 14 0; +#X connect 35 0 6 0; +#X connect 35 0 33 0; +#X connect 35 1 34 0; +#X connect 35 1 6 1; +#X connect 35 2 8 0; +#X connect 38 0 35 0; +#X connect 39 0 35 0; From a50533101aaba02a86593524a0ac56896b15e5cc Mon Sep 17 00:00:00 2001 From: Antoine Rousseau <_antoine_@metalu.net> Date: Wed, 21 Feb 2024 14:18:55 +0100 Subject: [PATCH 086/450] ask whether changes should be discarded when typing into a modified abs previously the dialog was opened when activating the object, at mouse-up (like after moving it). --- src/g_editor.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/g_editor.c b/src/g_editor.c index 0145eb7a2..66637049e 100644 --- a/src/g_editor.c +++ b/src/g_editor.c @@ -2907,22 +2907,10 @@ void canvas_mouseup(t_canvas *x, else if ((x->gl_editor->e_onmotion == MA_MOVE || x->gl_editor->e_onmotion == MA_RESIZE)) { - /* if there's only one text item selected activate the text. - LATER consider under sme conditions not activating it, for instance - if it appears to have been desired only to move the object. Maybe - shift-click could allow dragging without activating text? A - different solution (only activating if the object wasn't moved - (commit f0df4e586) turned out to flout ctrlD+move+retype. */ + /* if there's only one text item selected activate the text. */ if (x->gl_editor->e_selection && !(x->gl_editor->e_selection->sel_next)) { - t_gobj *g = x->gl_editor->e_selection->sel_what; - t_glist *gl2; - /* first though, check we aren't an abstraction with a - dirty sub-patch that would be discarded if we edit this. */ - if (canvas_undo_confirmdiscard(g)) - return; - /* OK, activate it */ gobj_activate(x->gl_editor->e_selection->sel_what, x, 1); } } @@ -3087,6 +3075,19 @@ void canvas_key(t_canvas *x, t_symbol *s, int ac, t_atom *av) || !strcmp(gotkeysym->s_name, "Left") || !strcmp(gotkeysym->s_name, "Right"))) { + /* if the typed object (which is also the selected object in the canvas) + is an abstraction, and if its text has not been modified yet, then ask the + permission to discard any changes inside it. */ + if (pd_class(&x->gl_editor->e_selection->sel_what->g_pd) == canvas_class + && !x->gl_editor->e_textdirty + /* only ask permission if the keystroke is really modifying the text */ + && keynum + ) + { + t_canvas *selected_canvas = x->gl_editor->e_selection->sel_what; + if(canvas_undo_confirmdiscard(selected_canvas)) + return; + } /* send the key to the box's editor */ if (!x->gl_editor->e_textdirty) { From fa788ea7dd31766cd6c1f20b38765cf6144c8055 Mon Sep 17 00:00:00 2001 From: Reza Almanda Date: Sun, 3 Mar 2024 22:40:53 +0000 Subject: [PATCH 087/450] Translated using Weblate (Indonesian) Currently translated at 39.3% (193 of 491 strings) Translation: pure-data/Interface Translate-URL: https://hosted.weblate.org/projects/pure-data/pure-data/id/ --- po/id.po | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/po/id.po b/po/id.po index 960dbd5e7..c0654c7f6 100644 --- a/po/id.po +++ b/po/id.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Pure Data 0.53.0\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" "POT-Creation-Date: 2023-11-07 16:37+0100\n" -"PO-Revision-Date: 2023-10-23 01:02+0000\n" +"PO-Revision-Date: 2024-03-04 23:01+0000\n" "Last-Translator: Reza Almanda \n" "Language-Team: Indonesian \n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.1\n" +"X-Generator: Weblate 5.5-dev\n" msgid "linear" msgstr "linier" @@ -456,7 +456,7 @@ msgid "Canvas" msgstr "Kanvas" msgid "Visible Rectangle (pix)" -msgstr "" +msgstr "Persegi Panjang Tampak (pix)" #, tcl-format msgid "%s Properties" @@ -511,10 +511,10 @@ msgid "In Ports:" msgstr "Port Masuk:" msgid "Out Ports:" -msgstr "" +msgstr "Port Keluaran:" msgid "MIDI system" -msgstr "" +msgstr "Sistem MIDI" msgid "MIDI Settings" msgstr "Pengaturan MIDI" @@ -523,35 +523,34 @@ msgid "ALSA MIDI Settings" msgstr "Pengaturan ALSA MIDI" msgid "Pd search path for objects, help, audio, text and other files" -msgstr "" +msgstr "Jalur pencarian Pd untuk objek, bantuan, audio, teks, dan file lainnya" msgid "Use standard paths" -msgstr "" +msgstr "Gunakan lokasi standar" msgid "Verbose" msgstr "Bertele-tele" msgid "Pd Documents Directory" -msgstr "" +msgstr "Direktori Dokumen Pd" msgid "Browse" -msgstr "" +msgstr "Jelajah" msgid "Reset" -msgstr "" +msgstr "Setel ulang" msgid "Disable" -msgstr "" +msgstr "Nonaktifkan" msgid "Externals Install Directory" -msgstr "" +msgstr "Direktori Instalasi Eksternal" msgid "Clear" -msgstr "" +msgstr "Bersihkan" -#, fuzzy msgid "path preferences" -msgstr "Preferensi" +msgstr "Lokasi preferensi" msgid "Choose Pd documents directory:" msgstr "" From 3d38e060832f5e89e300a891341e70b23aefcecc Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 6 Mar 2024 21:52:26 -0300 Subject: [PATCH 088/450] add default value for 2nd arg in readsf~ and improve things more I improved the description after discussion with christoff and dan on the pd list --- doc/5.reference/readsf~-help.pd | 110 ++++++++++++++++---------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/doc/5.reference/readsf~-help.pd b/doc/5.reference/readsf~-help.pd index 05df1a678..b790be32b 100644 --- a/doc/5.reference/readsf~-help.pd +++ b/doc/5.reference/readsf~-help.pd @@ -1,23 +1,22 @@ -#N canvas 339 45 705 651 12; +#N canvas 352 23 705 663 12; #X declare -stdpath ./; -#X obj 499 448 print didit; -#X floatatom 82 460 6 0 0 0 - - - 0; -#X msg 150 342 print; -#X obj 96 614 soundfiler; -#X text 17 613 see also:; +#X obj 499 477 print didit; +#X floatatom 82 472 6 0 0 0 - - - 0; +#X msg 150 354 print; +#X obj 96 626 soundfiler; +#X text 17 625 see also:; #X obj 38 13 readsf~; -#X obj 144 426 output~; -#X obj 185 614 writesf~; -#X obj 499 422 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X text 519 372 - number of channels \; - per channel buffer size in bytes, f 22; -#X obj 549 262 declare -stdpath ./; +#X obj 144 438 output~; +#X obj 185 626 writesf~; +#X obj 499 448 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 549 274 declare -stdpath ./; #X obj 3 45 cnv 1 695 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 623 12 <= click; -#N canvas 651 73 573 384 reference 0; +#N canvas 651 73 576 400 reference 0; #X obj 8 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; #X obj 8 208 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; #X obj 8 309 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; -#X obj 7 363 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0; +#X obj 7 383 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0; #X obj 7 273 cnv 1 550 1 empty empty rightmost: 8 12 0 13 #7c7c7c #000000 0; #X obj 7 236 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 0; #X obj 30 18 readsf~; @@ -28,8 +27,7 @@ #X text 122 245 signal -; #X text 187 245 channel output of a given file., f 46; #X text 137 281 bang - when finishing playing file., f 54; -#X text 107 317 1) float - sets number of output channels (default 1 \, max 64)., f 62; -#X text 107 336 2) float - per channel buffer size in bytes., f 62; +#X text 86 332 1) float - sets number of output channels (default 1 \, max 64)., f 62; #X text 82 213 ('n' number of outlets specified by argument); #X text 120 117 start -; #X text 127 137 stop -; @@ -37,46 +35,48 @@ #X text 88 19 - soundfile playback from disk.; #X text 177 117 start playback., f 50; #X text 177 68 sets a filename \, an onset in samples \, header size to skip \, number of channels \, bytes per sample \, and endianness. (needed before start playback.), f 50; +#X text 86 351 2) float - per channel buffer size in bytes (default/min 262144)., f 65; #X restore 529 13 pd reference; -#X floatatom 290 460 6 0 0 0 - - - 0; -#X text 514 354 Arguments:; -#X text 195 341 print information on the Pd window; -#X obj 104 276 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; -#X floatatom 104 303 3 0 0 0 - - - 0; -#X text 127 276 nonzero starts playback \, zero stops it; -#X msg 51 215 start; -#X msg 82 245 stop; -#X text 96 215 start playback; -#X text 121 245 stop playback; -#X text 496 613 Updated for version 0.53-1; +#X floatatom 290 472 6 0 0 0 - - - 0; +#X text 519 376 Arguments:, f 21; +#X text 195 353 print information on the Pd window; +#X obj 104 288 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X floatatom 104 315 3 0 0 0 - - - 0; +#X text 127 288 nonzero starts playback \, zero stops it; +#X msg 51 227 start; +#X msg 82 257 stop; +#X text 96 227 start playback; +#X text 121 257 stop playback; +#X text 496 625 Updated for version 0.53-1; #X text 96 13 - soundfile playback from disk; -#X text 528 564 see:; -#X obj 571 564 file which; -#X text 21 136 The 'wave' \, 'aiff' \, 'caf' \, and 'next' formats are parsed automatically \, although only uncompressed 2- or 3-byte integer ("pcm") and 4-byte floating point samples are accepted., f 93; -#X text 287 177 Open takes: filename \, onset in samples \, header size to skip \, channels number \, bytes per sample and endianness., f 55; -#X obj 3 602 cnv 1 695 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 21 56 The [readsf~] object reads a soundfile from the hard disk (that is \, it doesn't load it into the memory). You must always first use the "open" message (when it immediately starts reading from the file in advance) \, though playback only starts from the begining after you send a "1" or "start" message. A "0" or "stop" message stops it. Opening in advance a bit earlier was necessary to give the CPU some time back in the day where CPU power was a scarce resource., f 93; -#X text 49 507 Note: [readsf~] can find files added to the search path via preferences as usual \, but it can't find files in folders added via a [declare] object! In this case it is recommended to use [file which] \, because it can search paths added via [declare] and return the absolute path to be used with the 'open' message., f 83; -#X obj 82 433 env~; -#X obj 290 433 env~; -#X obj 82 384 readsf~ 2 1e+06, f 60; -#X text 287 210 (By overriding the header above \, we force this mono file to be played as a stereo twice as fast), f 55; -#X text 371 420 "bang" when file reaches the end., f 16; -#X msg 24 185 open ../sound/bell.aiff 0 200 2 2 b; -#X msg 145 305 open ../sound/bell.aiff 22050 \, 1; -#X text 385 298 open at half a second into the file and start right away., f 30; -#X connect 2 0 35 0; +#X text 528 576 see:; +#X obj 571 576 file which; +#X text 21 148 The 'wave' \, 'aiff' \, 'caf' \, and 'next' formats are parsed automatically \, although only uncompressed 2- or 3-byte integer ("pcm") and 4-byte floating point samples are accepted., f 93; +#X text 287 189 Open takes: filename \, onset in samples \, header size to skip \, channels number \, bytes per sample and endianness., f 55; +#X obj 3 614 cnv 1 695 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 49 519 Note: [readsf~] can find files added to the search path via preferences as usual \, but it can't find files in folders added via a [declare] object! In this case it is recommended to use [file which] \, because it can search paths added via [declare] and return the absolute path to be used with the 'open' message., f 83; +#X obj 82 445 env~; +#X obj 290 445 env~; +#X text 287 222 (By overriding the header above \, we force this mono file to be played as a stereo twice as fast), f 55; +#X text 372 441 "bang" when file reaches the end., f 16; +#X msg 24 197 open ../sound/bell.aiff 0 200 2 2 b; +#X msg 145 317 open ../sound/bell.aiff 22050 \, 1; +#X text 385 310 open at half a second into the file and start right away., f 30; +#X text 519 395 - number of channels - per channel buffer size in bytes, f 21; +#X obj 82 396 readsf~ 2 262144, f 60; +#X text 21 56 The [readsf~] object reads a soundfile from the hard disk. That is \, it doesn't fully load it into the memory \, but into a small local buffer first. The "open" message starts filling this buffer but a playback only starts when you send a "1" or "start" message. A "0" or "stop" message stops it. Waiting a bit before playing might be necessary if you hear an audio dropout on first accessing a file. You can also increase the default buffer size as the 2nd argument \, but it shouldn't really be necessary., f 93; +#X connect 2 0 39 0; #X connect 8 0 0 0; -#X connect 17 0 18 0; -#X connect 18 0 35 0; -#X connect 20 0 35 0; -#X connect 21 0 35 0; -#X connect 33 0 1 0; -#X connect 34 0 14 0; -#X connect 35 0 6 0; -#X connect 35 0 33 0; -#X connect 35 1 34 0; -#X connect 35 1 6 1; -#X connect 35 2 8 0; -#X connect 38 0 35 0; -#X connect 39 0 35 0; +#X connect 16 0 17 0; +#X connect 17 0 39 0; +#X connect 19 0 39 0; +#X connect 20 0 39 0; +#X connect 31 0 1 0; +#X connect 32 0 13 0; +#X connect 35 0 39 0; +#X connect 36 0 39 0; +#X connect 39 0 6 0; +#X connect 39 0 31 0; +#X connect 39 1 32 0; +#X connect 39 1 6 1; +#X connect 39 2 8 0; From feecf16018f686494217e1e33324d9cf24b9e1ab Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 6 Mar 2024 22:14:29 -0300 Subject: [PATCH 089/450] improve description of [list] defaults to 'append' based on discussion at https://github.com/pure-data/pure-data/issues/2204 --- doc/5.reference/list-help.pd | 129 ++++++++++++++-------------- doc/5.reference/text-object-help.pd | 82 +++++++++--------- 2 files changed, 106 insertions(+), 105 deletions(-) diff --git a/doc/5.reference/list-help.pd b/doc/5.reference/list-help.pd index 0f97e29a3..820cf701f 100644 --- a/doc/5.reference/list-help.pd +++ b/doc/5.reference/list-help.pd @@ -1,6 +1,5 @@ -#N canvas 466 36 601 600 12; +#N canvas 466 36 601 523 12; #X obj 24 12 list; -#X text 64 12 - building and using variable-length messages; #N canvas 581 25 529 694 about-lists 0; #X obj 95 661 print message; #X msg 85 455 list x.wav 44100; @@ -34,7 +33,7 @@ #X connect 11 0 13 0; #X connect 12 0 13 0; #X connect 21 0 2 0; -#X restore 216 381 pd about-lists; +#X restore 176 341 pd about-lists; #X obj 28 90 list append; #X obj 28 115 list prepend; #X obj 28 189 list trim; @@ -93,18 +92,18 @@ #X connect 15 0 14 0; #X connect 16 0 3 0; #X restore 472 189 pd trim; -#N canvas 591 40 625 609 append 0; -#X floatatom 111 240 5 0 0 0 - - - 0; -#X msg 19 147 1 2 3; -#X msg 53 178 list cis boom bah; -#X msg 91 209 walk the dog; -#X msg 209 364 list x y z; -#X msg 191 338 go dog go; -#X msg 222 391 4 5 6 and 7; -#X text 266 337 same for right inlet...; -#X listbox 106 522 35 0 0 0 - - - 0; -#X obj 106 555 print append; -#X text 516 39 <= click; +#N canvas 591 40 624 619 append 0; +#X floatatom 111 264 5 0 0 0 - - - 0; +#X msg 19 171 1 2 3; +#X msg 53 202 list cis boom bah; +#X msg 91 233 walk the dog; +#X msg 209 388 list x y z; +#X msg 191 362 go dog go; +#X msg 222 415 4 5 6 and 7; +#X text 266 361 same for right inlet...; +#X listbox 106 546 35 0 0 0 - - - 0; +#X obj 106 579 print append; +#X text 516 26 <= click; #N canvas 707 200 583 323 reference 0; #X obj 9 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0; #X obj 9 200 cnv 2 550 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 0; @@ -120,42 +119,43 @@ #X text 167 95 set messages to concatenate to a second list and output (a bang is a zero element list)., f 49; #X text 87 153 anything -; #X text 167 153 set messages to append to the first list (a bang is a zero element list and clears it)., f 49; -#X restore 422 40 pd reference; -#X obj 9 81 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X restore 422 27 pd reference; +#X obj 9 105 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X obj 27 25 list append; -#X obj 27 50 list; -#X text 70 51 - short form for "list append".; #X text 119 24 - append a second list to the first; -#X text 192 208 a non-list message is converted to a list; -#X obj 106 486 list append 1 2 3; -#X text 156 240 a number is one-element list; -#X text 45 91 Use [list append] to concatenate a second list (defined via arguments or the right inlet) to the first list via the left inlet., f 74; -#X text 175 292 a "bang" is the same as a zero-element list \, so it outputs the list stored as an argument or via the right inlet; -#X obj 245 453 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X text 267 446 as a zero-element list \, a bang clears the second list, f 30; -#X text 239 486 <-- creation args initialize the list to append; -#X obj 151 299 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X text 65 147 numeric list (a number as the first item makes this a list); -#X symbolatom 130 269 10 0 0 0 - - - 0; -#X text 207 267 a symbol is also a one-element list; -#X symbolatom 234 420 10 0 0 0 - - - 0; -#X text 184 178 list starting with symbol (needs explicit "list" selector); -#X floatatom 166 421 5 0 0 0 - - - 0; -#X text 315 419 one-element lists; -#X connect 0 0 18 0; -#X connect 1 0 18 0; -#X connect 2 0 18 0; -#X connect 3 0 18 0; -#X connect 4 0 18 1; -#X connect 5 0 18 1; -#X connect 6 0 18 1; +#X text 192 232 a non-list message is converted to a list; +#X text 156 264 a number is one-element list; +#X text 45 115 Use [list append] to concatenate a second list (defined via arguments or the right inlet) to the first list via the left inlet., f 74; +#X text 175 316 a "bang" is the same as a zero-element list \, so it outputs the list stored as an argument or via the right inlet; +#X obj 245 477 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X text 267 470 as a zero-element list \, a bang clears the second list, f 30; +#X text 239 510 <-- creation args initialize the list to append; +#X obj 151 323 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X text 65 171 numeric list (a number as the first item makes this a list); +#X symbolatom 130 293 10 0 0 0 - - - 0; +#X text 207 291 a symbol is also a one-element list; +#X symbolatom 234 444 10 0 0 0 - - - 0; +#X text 184 202 list starting with symbol (needs explicit "list" selector); +#X floatatom 166 445 5 0 0 0 - - - 0; +#X text 315 443 one-element lists; +#X obj 28 56 list; +#X text 65 57 -; +#X text 80 57 defaults to [list append] \, in which case it can take lists that start with a number as arguments (symbols are expected to be a function)., f 69; +#X obj 106 510 list append x y z; +#X connect 0 0 33 0; +#X connect 1 0 33 0; +#X connect 2 0 33 0; +#X connect 3 0 33 0; +#X connect 4 0 33 1; +#X connect 5 0 33 1; +#X connect 6 0 33 1; #X connect 8 0 9 0; -#X connect 18 0 8 0; -#X connect 22 0 18 1; -#X connect 25 0 18 0; -#X connect 27 0 18 0; -#X connect 29 0 18 1; -#X connect 31 0 18 1; +#X connect 19 0 33 1; +#X connect 22 0 33 0; +#X connect 24 0 33 0; +#X connect 26 0 33 1; +#X connect 28 0 33 1; +#X connect 33 0 8 0; #X restore 471 90 pd append; #N canvas 665 26 585 705 split 0; #X msg 204 373 1 2 3; @@ -307,7 +307,6 @@ #X connect 27 0 7 1; #X connect 29 0 7 1; #X restore 471 115 pd prepend; -#X text 101 425 And here are some examples showing how to use these objects to compose and/or use variable length messages:, f 45; #N canvas 650 69 554 651 example1 0; #X text 57 102 send; #X msg 108 124 250; @@ -364,8 +363,8 @@ #X connect 30 0 19 0; #X connect 31 0 9 0; #X connect 32 0 16 0; -#X restore 237 466 pd example1; -#X text 325 466 simple sequencer; +#X restore 309 384 pd example1; +#X text 397 384 simple sequencer; #N canvas 735 50 568 626 example2 0; #X text 304 198 clear; #X text 65 168 send; @@ -419,8 +418,8 @@ #X connect 25 0 2 0; #X connect 26 0 4 1; #X connect 27 0 15 0; -#X restore 237 492 pd example2; -#X text 325 492 another sequencer; +#X restore 309 410 pd example2; +#X text 397 410 another sequencer; #N canvas 553 155 494 341 example3 0; #X obj 73 169 until; #X msg 107 113 1 2 3 4 a b c; @@ -449,9 +448,7 @@ #X connect 7 0 6 1; #X connect 8 0 6 1; #X connect 9 0 4 0; -#X restore 237 519 pd example3; -#X obj 28 297 list; -#X text 65 298 - short for "list append"; +#X restore 309 434 pd example3; #X text 157 217 - output number of items in list; #N canvas 611 137 533 425 length 0; #X msg 220 207 1 2 3; @@ -640,8 +637,8 @@ #X connect 32 0 6 0; #X connect 34 0 6 0; #X restore 471 140 pd store; -#X text 383 566 updated for Pd version 0.52; -#X text 324 519 list iterator; +#X text 393 488 updated for Pd version 0.52; +#X text 396 434 list iterator; #X obj 7 44 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 527 13 <= click; #N canvas 749 68 563 222 reference 0; @@ -655,16 +652,16 @@ #X text 160 86 sets the function of [list] \, possible values: append \, prepend \, store \, split \, trim \, length \, fromsymbol and tosymbol. The default value is 'append'., f 54; #X restore 433 13 pd reference; #X text 448 58 click for details:; -#X obj 6 552 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 6 474 cnv 1 590 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 157 245 -; #X text 171 245 convert symbols to/from numeric characters, f 23; -#X text 18 565 see also:; -#X obj 96 565 array; +#X text 18 487 see also:; +#X obj 96 487 array; #X text 29 58 The [list] object's first argument sets its function:; -#X text 76 344 In general \, [list] will convert non-list messages (such as "set 5") to lists (such as "list set 5") automatically. Here's more about lists in Pd:, f 65; -#X obj 182 565 float; -#X obj 143 565 text; -#X obj 230 565 symbol; +#X text 76 304 In general \, [list] will convert non-list messages (such as "set 5") to lists (such as "list set 5") automatically. Here's more about lists in Pd:, f 67; +#X obj 182 487 float; +#X obj 143 487 text; +#X obj 230 487 symbol; #N canvas 592 78 607 430 from/to 0; #X symbolatom 47 221 10 0 0 0 - - - 0; #X obj 47 251 list fromsymbol; @@ -714,3 +711,5 @@ #X connect 15 0 3 0; #X restore 473 243 pd from/to symbol; #X f 10; +#X text 64 12 - building and managing variable-length messages; +#X text 65 393 Some examples showing how to use these objects to compose and/or use variable length messages., f 32; diff --git a/doc/5.reference/text-object-help.pd b/doc/5.reference/text-object-help.pd index fc6710f24..eb596e4c5 100644 --- a/doc/5.reference/text-object-help.pd +++ b/doc/5.reference/text-object-help.pd @@ -1,5 +1,5 @@ #N struct text-struct float x float y text z; -#N canvas 547 37 540 573 12; +#N canvas 491 51 540 573 12; #X obj 91 539 list; #X obj 28 12 text; #X text 14 539 see also:; @@ -11,35 +11,35 @@ #X restore 131 539 array; #X obj 241 206 text define; #X text 68 158 The text object's first argument sets its function:, f 27; -#N canvas 505 76 742 624 define 0; -#X msg 42 122 clear; -#X msg 60 148 read text-object-help.txt; -#X msg 93 177 write text-object-help.txt; -#X text 254 426 creation arguments:; -#X text 396 426 optional -k flag to keep contents; -#X text 398 443 optional name; -#X text 247 146 read from a file; -#X text 289 177 write to a file; -#X text 91 121 clear; -#X obj 128 249 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 93 485 t b p; -#X obj 93 537 text get -s text t; -#X msg 93 512 0; -#X obj 93 587 print; -#X obj 93 562 list trim; -#X obj 93 424 text define -k text-1; +#N canvas 363 76 742 656 define 0; +#X msg 42 152 clear; +#X msg 60 178 read text-object-help.txt; +#X msg 93 207 write text-object-help.txt; +#X text 254 456 creation arguments:; +#X text 396 456 optional -k flag to keep contents; +#X text 398 473 optional name; +#X text 247 176 read from a file; +#X text 289 207 write to a file; +#X text 91 151 clear; +#X obj 128 279 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 93 515 t b p; +#X obj 93 567 text get -s text t; +#X msg 93 542 0; +#X obj 93 617 print; +#X obj 93 592 list trim; +#X obj 93 454 text define -k text-1; #A set this is a message \; this is another 1 ... \;; -#X msg 108 217 write -c /tmp/test-cr.txt; -#X obj 237 454 print notify-outlet; -#X text 149 244 bang to output a pointer to a scalar (struct) containing the text - see first outlet below, f 45; -#X text 244 479 Second outlet notifies you when text changes. As of Pd 0.48 this only outputs the message "updated" when text changes \, but this might be extended to offer more information in the future.; -#X msg 161 353 click; -#X msg 209 353 close; -#X msg 142 288 send text-send; -#X text 250 288 send pointer to a named receive object; -#X obj 106 456 r text-send; -#X msg 153 324 sort; -#X text 200 322 sort the contents. details here:; +#X msg 108 247 write -c /tmp/test-cr.txt; +#X obj 237 484 print notify-outlet; +#X text 149 274 bang to output a pointer to a scalar (struct) containing the text - see first outlet below, f 45; +#X text 244 509 Second outlet notifies you when text changes. As of Pd 0.48 this only outputs the message "updated" when text changes \, but this might be extended to offer more information in the future.; +#X msg 161 383 click; +#X msg 209 383 close; +#X msg 142 318 send text-send; +#X text 250 318 send pointer to a named receive object; +#X obj 106 486 r text-send; +#X msg 153 354 sort; +#X text 200 352 sort the contents. details here:; #N canvas 719 128 502 255 sorting-text 0; #X obj 101 197 text define text-sorting; #X msg 133 160 sort; @@ -47,8 +47,8 @@ #X text 47 25 Numbers come before symbols \, which are sorted alphabetically (details such as case sensitivity (does 'b' come before 'A'?) may depend on operating system). Shorter lines come before longer ones that match the entire shorter lines. As a special case empty lines come before anything else.; #X connect 1 0 0 0; #X connect 2 0 0 0; -#X restore 443 323 pd sorting-text; -#X text 636 17 <= click; +#X restore 443 353 pd sorting-text; +#X text 648 38 <= click; #N canvas 758 177 578 421 reference 0; #X obj 9 46 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; #X obj 9 207 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; @@ -72,17 +72,19 @@ #X obj 9 301 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; #X obj 9 327 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 0; #X obj 9 359 cnv 1 550 1 empty empty args: 8 12 0 13 #7c7c7c #000000 0; -#X restore 533 18 pd reference; -#X obj 10 51 cnv 1 725 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X restore 545 39 pd reference; +#X obj 10 81 cnv 1 725 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X obj 33 18 text define; #X text 131 18 - create \, store \, and/or edit texts; -#X text 297 211 an optional -c flag allows you to read or write to/from a file interpreting carriage returns as separators., f 55; -#X text 171 392 |; -#X text 171 405 V; -#X text 257 353 open (to see and edit text) and close text window; -#X text 175 387 - click on the object to open and see/edit text; -#X text 177 560 First outlet is pointer to a "text scalar" containing the text \, which is output when the object is sent a "bang". For example \, here's machinery for printing out the first message of the text., f 74; -#X text 27 60 [text define] maintains a text object and can name it so that other objects can find it (and later should have some alternative \, anonymous way to be found). A text contains messages separated by commas and semicolons., f 98; +#X text 297 241 an optional -c flag allows you to read or write to/from a file interpreting carriage returns as separators., f 55; +#X text 171 422 |; +#X text 171 435 V; +#X text 257 383 open (to see and edit text) and close text window; +#X text 175 417 - click on the object to open and see/edit text; +#X text 177 590 First outlet is pointer to a "text scalar" containing the text \, which is output when the object is sent a "bang". For example \, here's machinery for printing out the first message of the text., f 74; +#X text 27 90 [text define] maintains a text object and can name it so that other objects can find it (and later should have some alternative \, anonymous way to be found). A text contains messages separated by commas and semicolons., f 98; +#X obj 33 47 text; +#X text 129 47 - without arguments it defaults to [text define]; #X connect 0 0 15 0; #X connect 1 0 15 0; #X connect 2 0 15 0; From 05abf69d981b22a6a7aae5269a9e9f4d93cc2651 Mon Sep 17 00:00:00 2001 From: porres Date: Thu, 7 Mar 2024 00:55:09 -0300 Subject: [PATCH 090/450] taking more suggestions from christof in [readsf~] I also added more information on the differences and relation between soundfiler and readsf~ --- doc/5.reference/readsf~-help.pd | 111 +++++++++++++++-------------- doc/5.reference/soundfiler-help.pd | 82 ++++++++++----------- 2 files changed, 97 insertions(+), 96 deletions(-) diff --git a/doc/5.reference/readsf~-help.pd b/doc/5.reference/readsf~-help.pd index b790be32b..ee6e89aa2 100644 --- a/doc/5.reference/readsf~-help.pd +++ b/doc/5.reference/readsf~-help.pd @@ -1,17 +1,17 @@ -#N canvas 352 23 705 663 12; +#N canvas 399 25 704 696 12; #X declare -stdpath ./; -#X obj 499 477 print didit; -#X floatatom 82 472 6 0 0 0 - - - 0; -#X msg 150 354 print; -#X obj 96 626 soundfiler; -#X text 17 625 see also:; -#X obj 38 13 readsf~; -#X obj 144 438 output~; -#X obj 185 626 writesf~; -#X obj 499 448 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 549 274 declare -stdpath ./; -#X obj 3 45 cnv 1 695 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 623 12 <= click; +#X obj 506 481 print didit; +#X floatatom 89 476 6 0 0 0 - - - 0; +#X msg 157 364 print; +#X obj 96 669 soundfiler; +#X text 17 668 see also:; +#X obj 33 11 readsf~; +#X obj 151 442 output~; +#X obj 185 669 writesf~; +#X obj 506 451 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 541 284 declare -stdpath ./; +#X obj 3 41 cnv 1 695 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 623 10 <= click; #N canvas 651 73 576 400 reference 0; #X obj 8 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; #X obj 8 208 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; @@ -36,47 +36,48 @@ #X text 177 117 start playback., f 50; #X text 177 68 sets a filename \, an onset in samples \, header size to skip \, number of channels \, bytes per sample \, and endianness. (needed before start playback.), f 50; #X text 86 351 2) float - per channel buffer size in bytes (default/min 262144)., f 65; -#X restore 529 13 pd reference; -#X floatatom 290 472 6 0 0 0 - - - 0; -#X text 519 376 Arguments:, f 21; -#X text 195 353 print information on the Pd window; -#X obj 104 288 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; -#X floatatom 104 315 3 0 0 0 - - - 0; -#X text 127 288 nonzero starts playback \, zero stops it; -#X msg 51 227 start; -#X msg 82 257 stop; -#X text 96 227 start playback; -#X text 121 257 stop playback; -#X text 496 625 Updated for version 0.53-1; -#X text 96 13 - soundfile playback from disk; -#X text 528 576 see:; -#X obj 571 576 file which; -#X text 21 148 The 'wave' \, 'aiff' \, 'caf' \, and 'next' formats are parsed automatically \, although only uncompressed 2- or 3-byte integer ("pcm") and 4-byte floating point samples are accepted., f 93; -#X text 287 189 Open takes: filename \, onset in samples \, header size to skip \, channels number \, bytes per sample and endianness., f 55; -#X obj 3 614 cnv 1 695 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 49 519 Note: [readsf~] can find files added to the search path via preferences as usual \, but it can't find files in folders added via a [declare] object! In this case it is recommended to use [file which] \, because it can search paths added via [declare] and return the absolute path to be used with the 'open' message., f 83; -#X obj 82 445 env~; -#X obj 290 445 env~; -#X text 287 222 (By overriding the header above \, we force this mono file to be played as a stereo twice as fast), f 55; -#X text 372 441 "bang" when file reaches the end., f 16; -#X msg 24 197 open ../sound/bell.aiff 0 200 2 2 b; -#X msg 145 317 open ../sound/bell.aiff 22050 \, 1; -#X text 385 310 open at half a second into the file and start right away., f 30; -#X text 519 395 - number of channels - per channel buffer size in bytes, f 21; -#X obj 82 396 readsf~ 2 262144, f 60; -#X text 21 56 The [readsf~] object reads a soundfile from the hard disk. That is \, it doesn't fully load it into the memory \, but into a small local buffer first. The "open" message starts filling this buffer but a playback only starts when you send a "1" or "start" message. A "0" or "stop" message stops it. Waiting a bit before playing might be necessary if you hear an audio dropout on first accessing a file. You can also increase the default buffer size as the 2nd argument \, but it shouldn't really be necessary., f 93; -#X connect 2 0 39 0; +#X restore 529 11 pd reference; +#X floatatom 297 476 6 0 0 0 - - - 0; +#X text 526 384 Arguments:, f 20; +#X text 203 358 print information on the Pd window, f 17; +#X obj 111 298 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X floatatom 111 325 3 0 0 0 - - - 0; +#X text 134 298 nonzero starts playback \, zero stops it; +#X msg 58 237 start; +#X msg 89 267 stop; +#X text 103 237 start playback; +#X text 128 267 stop playback; +#X text 496 668 Updated for version 0.53-1; +#X text 91 11 - soundfile playback from disk; +#X text 530 572 see:; +#X obj 573 572 file which; +#X text 294 199 Open takes: filename \, onset in samples \, header size to skip \, channels number \, bytes per sample and endianness., f 55; +#X obj 3 657 cnv 1 695 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 69 518 Note: [readsf~] can find files added to the search path via preferences as usual \, but it can't find files in folders added via a [declare] object! In this case it is recommended to use [file which] \, because it can search paths added via [declare] and return the absolute path to be used with the 'open' message., f 83; +#X obj 89 449 env~; +#X obj 297 449 env~; +#X text 294 232 (By overriding the header above \, we force this mono file to be played as a stereo twice as fast), f 55; +#X text 379 444 "bang" when file reaches the end., f 16; +#X msg 31 207 open ../sound/bell.aiff 0 200 2 2 b; +#X msg 152 327 open ../sound/bell.aiff 22050 \, 1; +#X text 526 402 - number of channels - per channel buffer size in bytes, f 20; +#X obj 89 405 readsf~ 2 262144, f 60; +#X text 72 602 Another Note: check also [soundfiler] \, which allows you to load a file into memory by filling it into an array. This also gives you more playback possibilities with table reading objects., f 83; +#X text 21 158 The 'wave' \, 'aiff' \, 'caf' \, and 'next' formats are supported and parsed automatically \, although only uncompressed 2- or 3-byte integer ("pcm") and 4-byte floating point samples are accepted., f 94; +#X text 21 51 The [readsf~] object streams a soundfile from the hard disk. That is \, it doesn't fully load it into the memory \, but into a small local buffer first. The "open" message starts filling this buffer but a playback only starts when you send a "1" or "start" message. A "0" or "stop" message stops it. You may get audio dropouts if you "start" right after the "open" message \, so you should wait a few milliseconds between "open" and "start" to ensure that the buffer is filled in time. You can also increase the default buffer size as the 2nd argument \, but it shouldn't really be necessary. The 1st argument initializes the number of channel outputs., f 94; +#X text 392 320 open at half a second into the file and start right away. Since it's mono \, we only have the left output., f 39; +#X connect 2 0 37 0; #X connect 8 0 0 0; #X connect 16 0 17 0; -#X connect 17 0 39 0; -#X connect 19 0 39 0; -#X connect 20 0 39 0; -#X connect 31 0 1 0; -#X connect 32 0 13 0; -#X connect 35 0 39 0; -#X connect 36 0 39 0; -#X connect 39 0 6 0; -#X connect 39 0 31 0; -#X connect 39 1 32 0; -#X connect 39 1 6 1; -#X connect 39 2 8 0; +#X connect 17 0 37 0; +#X connect 19 0 37 0; +#X connect 20 0 37 0; +#X connect 30 0 1 0; +#X connect 31 0 13 0; +#X connect 34 0 37 0; +#X connect 35 0 37 0; +#X connect 37 0 6 0; +#X connect 37 0 30 0; +#X connect 37 1 31 0; +#X connect 37 1 6 1; +#X connect 37 2 8 0; diff --git a/doc/5.reference/soundfiler-help.pd b/doc/5.reference/soundfiler-help.pd index 0b7a3d881..d833e6dbc 100644 --- a/doc/5.reference/soundfiler-help.pd +++ b/doc/5.reference/soundfiler-help.pd @@ -1,22 +1,22 @@ -#N canvas 183 50 1039 619 12; +#N canvas 223 50 1039 619 12; #N canvas 0 22 450 300 (subpatch) 0; #X array sample 44100 float 2; #X coords 0 1 44100 -1 250 100 1 0 0; -#X restore 269 273 graph; -#X obj 60 340 soundfiler; -#X floatatom 60 369 7 0 0 0 - - - 12; -#X obj 163 580 tabwrite~; -#X obj 237 580 tabread4~; -#X obj 310 580 tabplay~; -#X obj 434 580 writesf~; -#X obj 376 580 readsf~; -#X text 38 579 See also:; -#X text 256 176 read a file to zero or more arrays, f 35; +#X restore 269 247 graph; +#X obj 60 316 soundfiler; +#X floatatom 60 345 7 0 0 0 - - - 12; +#X obj 278 581 tabwrite~; +#X obj 352 581 tabread4~; +#X obj 425 581 tabplay~; +#X obj 159 581 writesf~; +#X obj 101 581 readsf~; +#X text 28 580 See also:; +#X text 256 152 read a file to zero or more arrays, f 35; #X obj 40 15 soundfiler; -#X text 806 579 updated for Pd version 0.51; -#X obj 115 580 array; -#X listbox 127 369 16 0 0 0 - - - 0; -#X obj 6 51 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 806 580 updated for Pd version 0.51; +#X obj 230 581 array; +#X listbox 127 345 16 0 0 0 - - - 0; +#X obj 6 49 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 916 14 <= click; #N canvas 540 87 632 371 reference 0; #X obj 8 52 cnv 5 610 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; @@ -37,11 +37,11 @@ #X text 157 254 sample rate \, header size \, number of channels \, bytes per sample & endianness ('b' or 'l')., f 51; #X restore 822 15 pd reference; #X text 120 14 - import/export soundfiles to/from arrays; -#X msg 34 176 read ../sound/bell.aiff sample; -#X msg 60 211 read -resize ../sound/bell.aiff sample; -#X text 29 69 The [soundfiler] object loads files into arrays and also saves arrays into files. The soundfiles may contain uncompressed 2- or 3-byte integer ("pcm") or 4-byte floating point samples in wave \, aiff \, caf and next formats. Additionally \, [soundfiler] also deals with ascii text files., f 72; -#X text 340 203 optionally resize array to fit the whole file, f 23; -#X text 37 144 Basic read/write example:; +#X msg 34 152 read ../sound/bell.aiff sample; +#X msg 60 187 read -resize ../sound/bell.aiff sample; +#X text 28 61 The [soundfiler] object loads files into arrays and also saves arrays into files. The soundfiles may contain uncompressed 2- or 3-byte integer ("pcm") or 4-byte floating point samples in wave \, aiff \, caf and next formats. Additionally \, [soundfiler] also deals with ascii text files., f 72; +#X text 340 180 optionally resize array to fit the whole file, f 23; +#X text 37 127 Basic read/write example:; #N canvas 791 194 575 345 Dealing_with_"\$0" 0; #X obj 273 171 array define \$0-x; #X obj 153 202 f \$0; @@ -56,12 +56,10 @@ #X connect 2 0 3 0; #X connect 4 0 2 0; #X connect 5 0 1 0; -#X restore 788 376 pd Dealing_with_"\$0"; -#X text 678 353 open subpatch to see how to deal with '\$0', f 28; -#X text 29 501 The 'write' message takes a filename to save to and one or more arrays (one for each channel)., f 72; -#X text 29 422 The 'read' message takes a file to load and one or more arrays to load into (in the case the file has more than one channel). The number of channels of the soundfile need not match the number of arrays given to read (extras channels are dropped and unsupplied channels are zeroed out in the extra arrays)., f 72; -#X text 577 243 Note that if no array name is given to read to \, no samples are read but you get the number of samples in the file on the left outlet and the info on the right outlet anyway., f 62; -#X text 577 300 Also note that the number of channels is limited to 64 for both reading and writting., f 62; +#X restore 788 378 pd Dealing_with_"\$0"; +#X text 678 355 open subpatch to see how to deal with '\$0', f 28; +#X text 577 247 Note that if no array name is given to read to \, no samples are read but you get the number of samples in the file on the left outlet and the info on the right outlet anyway., f 62; +#X text 577 304 Also note that the number of channels is limited to 64 for both reading and writting., f 62; #N canvas 85 86 1235 552 read-write-flags 0; #X text 27 83 -resize (resizes arrays to the size of the sound file), f 62; #N canvas 0 22 450 300 (subpatch) 0; @@ -144,24 +142,26 @@ #X connect 33 0 3 0; #X connect 35 0 3 0; #X connect 36 0 3 0; -#X restore 756 497 pd read-write-flags & more examples; +#X restore 779 505 pd read-write-flags & more examples; #X f 19; #X text 577 149 When loading a file \, the left outlet sends the number of samples the file contains if the array is equal or greater in size. If you're loading a file into an array that is smaller \, the number or samples is clipped to the array size and you probably want to use the -resize flag to resize the array size to the file size., f 62; -#X text 577 413 Both 'read' and 'write' messages also take optional flags for configuration. In the basic example to the left we have the '-resize' flag in the read message that resizes the array to the file size. See more about flags and advanced examples in the subpatch below., f 62; -#X obj 6 562 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X obj 503 580 openpanel; -#X obj 576 580 savepanel; -#X text 577 69 At loading or writting a file \, the left outlet outputs the number of samples and the right outlet sends information as a list \, namely: Sample Rate \, Header Size \, Number of Channels \, Bytes per Sample & Endianness ("b" for "big" or "l" for "little")., f 62; -#X text 126 389 info ; -#X text 44 389 # samples; -#X obj 84 280 savepanel; -#X obj 84 248 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; -#X msg 84 308 write \$1 sample; -#X text 112 249 write to a file; +#X text 577 425 Both 'read' and 'write' messages also take optional flags for configuration. In the basic example to the left we have the '-resize' flag in the read message that resizes the array to the file size. See more about flags and advanced examples in the subpatch below., f 62; +#X obj 6 563 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 493 581 openpanel; +#X obj 566 581 savepanel; +#X text 577 66 At loading or writting a file \, the left outlet outputs the number of samples and the right outlet sends information as a list \, namely: Sample Rate \, Header Size \, Number of Channels \, Bytes per Sample & Endianness ("b" for "big" or "l" for "little")., f 62; +#X text 44 365 # samples; +#X obj 84 256 savepanel; +#X obj 84 224 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X msg 84 284 write \$1 sample; +#X text 112 225 write to a file; +#X text 29 489 Note: Loading a soundfile into an array might be useful for more flexible playing strategies with table reading objects in the 'see section' below. For a simpler alternative that streams a soundfile directly from your hard drive \, see [readsf~]., f 72; +#X text 29 396 The 'read' message takes a file to load and one or more arrays to load into (in the case the file has more than one channel). The number of channels of the soundfile need not match the number of arrays given to read (extras channels are dropped and unsupplied channels are zeroed out in the extra arrays). The 'write' message takes a filename to save to and one or more arrays (one for each channel)., f 72; +#X text 124 365 info: sample rate \, header size \, channels \, bytes \, endianness; #X connect 1 0 2 0; #X connect 1 1 13 0; #X connect 18 0 1 0; #X connect 19 0 1 0; -#X connect 38 0 40 0; -#X connect 39 0 38 0; -#X connect 40 0 1 0; +#X connect 35 0 37 0; +#X connect 36 0 35 0; +#X connect 37 0 1 0; From b08a30cf5a736bd77eb596f77799b241ac051070 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Thu, 7 Mar 2024 20:12:43 +0100 Subject: [PATCH 091/450] fix implicit pointer cast --- src/g_editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/g_editor.c b/src/g_editor.c index 66637049e..847e12f17 100644 --- a/src/g_editor.c +++ b/src/g_editor.c @@ -3084,7 +3084,7 @@ void canvas_key(t_canvas *x, t_symbol *s, int ac, t_atom *av) && keynum ) { - t_canvas *selected_canvas = x->gl_editor->e_selection->sel_what; + t_gobj *selected_canvas = x->gl_editor->e_selection->sel_what; if(canvas_undo_confirmdiscard(selected_canvas)) return; } From 5ed5b598fb6c7b49a3cf13f85fd87f588d574905 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Thu, 7 Mar 2024 21:04:37 +0100 Subject: [PATCH 092/450] fix range change check for -maxsize argument in soundfiler_read() --- src/d_soundfile.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/d_soundfile.c b/src/d_soundfile.c index ac8615439..72ffdcdd7 100644 --- a/src/d_soundfile.c +++ b/src/d_soundfile.c @@ -1185,12 +1185,11 @@ static void soundfiler_read(t_soundfiler *x, t_symbol *s, } else if (!strcmp(flag, "maxsize")) { - ssize_t tmp; if (argc < 2 || argv[1].a_type != A_FLOAT || - ((tmp = (argv[1].a_w.w_float > SFMAXFRAMES ? - SFMAXFRAMES : argv[1].a_w.w_float)) < 0)) + argv[1].a_w.w_float < 0) goto usage; - maxsize = (size_t)tmp; + maxsize = (double)argv[1].a_w.w_float > (double)SFMAXFRAMES ? + SFMAXFRAMES : (size_t)argv[1].a_w.w_float; resize = 1; /* maxsize implies resize */ argc -= 2; argv += 2; } From 8992d68843e91558ba1c514f8ac0fea775cac415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 11 Mar 2024 16:52:41 +0100 Subject: [PATCH 093/450] remove dormant code for tclentry people wishing to use the tclprompt, should just install the "tclprompt-plugin" --- tcl/pdwindow.tcl | 75 ------------------------------------------------ 1 file changed, 75 deletions(-) diff --git a/tcl/pdwindow.tcl b/tcl/pdwindow.tcl index da2c4cede..e1c72d6ad 100644 --- a/tcl/pdwindow.tcl +++ b/tcl/pdwindow.tcl @@ -7,8 +7,6 @@ namespace eval ::pdwindow:: { variable maxlogbuffer 21000 ;# if the logbuffer grows beyond this number, cut it variable keeplogbuffer 1000 ;# if the logbuffer gets automatically cut, keep this many elements variable logbuffer {} - variable tclentry {} - variable tclentry_history {"console show"} variable history_position 0 variable linecolor 0 ;# is toggled to alternate text line colors variable logmenuitems @@ -291,73 +289,6 @@ proc ::pdwindow::pdwindow_bindings {} { } } -#--Tcl entry procs-------------------------------------------------------------# - -proc ::pdwindow::eval_tclentry {} { - variable tclentry - variable tclentry_history - variable history_position 0 - if {$tclentry eq ""} {return} ;# no need to do anything if empty - if {[catch {uplevel #0 $tclentry} errorname]} { - global errorInfo - switch -regexp -- $errorname { - "missing close-brace" { - ::pdwindow::error [concat [_ "(Tcl) MISSING CLOSE-BRACE '\}': "] $errorInfo]\n - } "missing close-bracket" { - ::pdwindow::error [concat [_ "(Tcl) MISSING CLOSE-BRACKET '\]': "] $errorInfo]\n - } "^invalid command name" { - ::pdwindow::error [concat [_ "(Tcl) INVALID COMMAND NAME: "] $errorInfo]\n - } default { - ::pdwindow::error [concat [_ "(Tcl) UNHANDLED ERROR: "] $errorInfo]\n - } - } - } - lappend tclentry_history $tclentry - set tclentry {} -} - -proc ::pdwindow::get_history {direction} { - variable tclentry_history - variable history_position - - incr history_position $direction - if {$history_position < 0} {set history_position 0} - if {$history_position > [llength $tclentry_history]} { - set history_position [llength $tclentry_history] - } - .pdwindow.tcl.entry delete 0 end - .pdwindow.tcl.entry insert 0 \ - [lindex $tclentry_history end-[expr $history_position - 1]] -} - -proc ::pdwindow::validate_tcl {} { - variable tclentry - if {[info complete $tclentry]} { - .pdwindow.tcl.entry configure -background "white" - } else { - .pdwindow.tcl.entry configure -background "#FFF0F0" - } -} - -#--create tcl entry-----------------------------------------------------------# - -proc ::pdwindow::create_tcl_entry {} { -# Tcl entry box frame - label .pdwindow.tcl.label -text [_ "Tcl:"] -anchor e - pack .pdwindow.tcl.label -side left - entry .pdwindow.tcl.entry -width 200 \ - -exportselection 1 -insertwidth 2 -insertbackground blue \ - -textvariable ::pdwindow::tclentry -font TkTextFont - pack .pdwindow.tcl.entry -side left -fill x -# bindings for the Tcl entry widget - bind .pdwindow.tcl.entry <$::modifier-Key-a> "%W selection range 0 end; break" - bind .pdwindow.tcl.entry "::pdwindow::eval_tclentry" - bind .pdwindow.tcl.entry "::pdwindow::get_history 1" - bind .pdwindow.tcl.entry "::pdwindow::get_history -1" - bind .pdwindow.tcl.entry +"::pdwindow::validate_tcl" - - bind .pdwindow.text "focus .pdwindow.tcl.entry; break" -} proc ::pdwindow::set_findinstance_cursor {widget key state} { set triggerkeys [list Control_L Control_R Meta_L Meta_R] @@ -468,8 +399,6 @@ proc ::pdwindow::create_window {} { # TODO figure out how to make the menu traversable with the keyboard #.pdwindow.header.logmenu configure -takefocus 1 pack .pdwindow.header.logmenu -side left - frame .pdwindow.tcl -borderwidth 0 - pack .pdwindow.tcl -side bottom -fill x text .pdwindow.text -relief raised -bd 2 -font [list $::font_family $::pdwindow::font_size] \ -highlightthickness 0 -borderwidth 1 -relief flat \ -yscrollcommand ".pdwindow.scroll set" -width 80 \ @@ -479,7 +408,6 @@ proc ::pdwindow::create_window {} { pack .pdwindow.text -side right -fill both -expand 1 raise .pdwindow focus .pdwindow.text - # run bindings last so that .pdwindow.tcl.entry exists pdwindow_bindings # set cursor to show when clicking in 'findinstance' mode bind .pdwindow "+::pdwindow::set_findinstance_cursor %W %K %s" @@ -507,9 +435,6 @@ proc ::pdwindow::create_window {} { #--configure the window menu---------------------------------------------------# proc ::pdwindow::create_window_finalize {} { - # wait until .pdwindow.tcl.entry is visible before opening files so that - # the loading logic can grab it and put up the busy cursor - # this ought to be called after all elements of the window (including the # menubar!) have been created! if {![winfo viewable .pdwindow.text]} { tkwait visibility .pdwindow.text } From d736e1fc1c41beaaa666036524c7196c758a0d71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 11 Mar 2024 13:21:46 +0100 Subject: [PATCH 094/450] I/O errors: use background color of container to make error invisible rather than assuming that the container is "lightgray" --- tcl/pdwindow.tcl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tcl/pdwindow.tcl b/tcl/pdwindow.tcl index e1c72d6ad..79fe34679 100644 --- a/tcl/pdwindow.tcl +++ b/tcl/pdwindow.tcl @@ -238,10 +238,11 @@ proc ::pdwindow::pdtk_pd_dsp {value} { } proc ::pdwindow::pdtk_pd_dio {red} { + set dio .pdwindow.header.ioframe.dio if {$red == 1} { - .pdwindow.header.ioframe.dio configure -foreground red + $dio configure -foreground red } else { - .pdwindow.header.ioframe.dio configure -foreground lightgray + $dio configure -foreground [[winfo parent $dio] cget -background] } } From 355cc97fb6079b3ed25d73c21847c510d8b4e3b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 11 Mar 2024 18:29:12 +0100 Subject: [PATCH 095/450] use namespaced variable for enabled "cords_to_foreground" --- tcl/pdtk_canvas.tcl | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tcl/pdtk_canvas.tcl b/tcl/pdtk_canvas.tcl index 587308b4e..8962438a7 100644 --- a/tcl/pdtk_canvas.tcl +++ b/tcl/pdtk_canvas.tcl @@ -10,6 +10,8 @@ namespace eval ::pdtk_canvas:: { variable untitled_name "PDUNTITLED" variable untitled_len 10 + variable enable_cords_to_foreground 0 + namespace export pdtk_canvas_popup namespace export pdtk_canvas_editmode namespace export pdtk_canvas_getscroll @@ -489,11 +491,8 @@ proc ::pdtk_canvas::cleanname {name} { return $name } -set enable_cords_to_foreground false - proc ::pdtk_canvas::cords_to_foreground {mytoplevel {state 1}} { - global enable_cords_to_foreground - if {$enable_cords_to_foreground eq "true"} { + if {$::pdtk_canvas::enable_cords_to_foreground} { set col black if { $state == 0 } { set col lightgrey From f989819791076e7acd9aab8acc53afb15189a9af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 11 Mar 2024 18:29:27 +0100 Subject: [PATCH 096/450] add "cords_to_foreground" to preferences --- tcl/dialog_preferences.tcl | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/tcl/dialog_preferences.tcl b/tcl/dialog_preferences.tcl index 521e90e8a..cdee9438f 100644 --- a/tcl/dialog_preferences.tcl +++ b/tcl/dialog_preferences.tcl @@ -8,7 +8,7 @@ namespace eval ::dialog_preferences:: { } set ::dialog_preferences::use_ttknotebook {} -after idle ::dialog_preferences::read_usettknotebook +after idle ::dialog_preferences::read # allow updating the audio resp MIDI frame if the backend changes set ::dialog_preferences::audio_frame {} set ::dialog_preferences::midi_frame {} @@ -22,6 +22,7 @@ proc ::dialog_preferences::cancel {mytoplevel} { proc ::dialog_preferences::do_apply {mytoplevel} { ::pd_guiprefs::write "gui_language" $::pd_i18n::language ::pd_guiprefs::write "use_ttknotebook" $::dialog_preferences::use_ttknotebook + ::pd_guiprefs::write "cords_to_foreground" $::pdtk_canvas::enable_cords_to_foreground pdsend "pd zoom-open $::sys_zoom_open" } proc ::dialog_preferences::apply {mytoplevel} { @@ -30,7 +31,14 @@ proc ::dialog_preferences::apply {mytoplevel} { proc ::dialog_preferences::ok {mytoplevel} { ::preferencewindow::ok $mytoplevel } - +proc ::dialog_preferences::read {} { + set x [::pd_guiprefs::read cords_to_foreground] + if {[catch { if { $x } { set x 1 } else { set x 0 } }]} { + set x 0 + } + set ::pdtk_canvas::enable_cords_to_foreground $x + ::dialog_preferences::read_usettknotebook +} proc ::dialog_preferences::read_usettknotebook {} { set ::dialog_preferences::use_ttknotebook [::pd_guiprefs::read use_ttknotebook] } @@ -56,7 +64,7 @@ proc ::dialog_preferences::fill_frame {prefs} { labelframe $prefs.guiframe.prefsnavi -padx 5 -pady 5 -borderwidth 0 \ -text [_ "preference layout (reopen the preferences to see the effect)" ] - pack $prefs.guiframe.prefsnavi -side left -anchor w -expand 1 + pack $prefs.guiframe.prefsnavi -side top -anchor w -expand 1 radiobutton $prefs.guiframe.prefsnavi.tab \ -text [_ "use tabs" ] \ -value 1 -variable ::dialog_preferences::use_ttknotebook @@ -65,7 +73,14 @@ proc ::dialog_preferences::fill_frame {prefs} { -value 0 -variable ::dialog_preferences::use_ttknotebook pack $prefs.guiframe.prefsnavi.tab -side left -anchor w pack $prefs.guiframe.prefsnavi.scroll -side left -anchor w - } + + labelframe $prefs.guiframe.patching -padx 5 -pady 5 -borderwidth 0 \ + -text [_ "patching helpers" ] + pack $prefs.guiframe.patching -side top -anchor w -expand 1 + checkbutton $prefs.guiframe.patching.highlight_connections -text [_ "Highlight active cord while connecting"] \ + -variable ::pdtk_canvas::enable_cords_to_foreground -anchor w + pack $prefs.guiframe.patching.highlight_connections -side left -anchor w +} proc ::dialog_preferences::create_dialog {{mytoplevel .gui_preferences}} { destroy $mytoplevel From d4f59ff85087b05bf8d1bb4e92359f1f5a084834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 11 Mar 2024 22:06:52 +0100 Subject: [PATCH 097/450] use named loglevels --- src/g_editor.c | 10 +++++----- src/m_class.c | 2 +- src/m_obj.c | 4 +--- src/s_print.c | 4 ++-- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/g_editor.c b/src/g_editor.c index 847e12f17..3a2281611 100644 --- a/src/g_editor.c +++ b/src/g_editor.c @@ -4380,26 +4380,26 @@ void canvas_connect(t_canvas *x, t_floatarg fwhoout, t_floatarg foutno, for (src = x->gl_list; whoout; src = src->g_next, whoout--) if (!src->g_next) { src = NULL; - logpost(sink, 3, "cannot connect non-existing object"); + logpost(sink, PD_DEBUG, "cannot connect non-existing object"); goto bad; /* bug fix thanks to Hannes */ } for (sink = x->gl_list; whoin; sink = sink->g_next, whoin--) if (!sink->g_next) { sink = NULL; - logpost(src, 3, "cannot connect to non-existing object"); + logpost(src, PD_DEBUG, "cannot connect to non-existing object"); goto bad; } /* check they're both patchable objects */ if (!(objsrc = pd_checkobject(&src->g_pd)) || !(objsink = pd_checkobject(&sink->g_pd))) { - logpost(src?src:sink, 3, "cannot connect unpatchable object"); + logpost(src?src:sink, PD_DEBUG, "cannot connect unpatchable object"); goto bad; } /* check if objects are already connected */ if (canvas_isconnected(x, objsrc, outno, objsink, inno)) { - logpost(src, 3, "io pair already connected"); + logpost(src, PD_DEBUG, "io pair already connected"); goto bad; } @@ -4503,7 +4503,7 @@ static void canvas_tidy(t_canvas *x) bestdist = i; } } - logpost(NULL, 3, "tidy: best vertical distance %d", bestdist); + logpost(NULL, PD_DEBUG, "tidy: best vertical distance %d", bestdist); for (y = x->gl_list; y; y = y->g_next) if (all || glist_isselected(x, y)) { diff --git a/src/m_class.c b/src/m_class.c index 53b86dd5b..3f3290884 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -1237,7 +1237,7 @@ t_class * logpost(0, loglevel, "refusing to load %dbit-float object '%s' into %dbit-float Pd", ext_floatsize, s->s_name, PD_FLOATSIZE); loglevel=3; } else - logpost(0, 3, "refusing to load unnamed %dbit-float object into %dbit-float Pd", ext_floatsize, PD_FLOATSIZE); + logpost(0, PD_DEBUG, "refusing to load unnamed %dbit-float object into %dbit-float Pd", ext_floatsize, PD_FLOATSIZE); return 0; } diff --git a/src/m_obj.c b/src/m_obj.c index d3259da06..85651469d 100644 --- a/src/m_obj.c +++ b/src/m_obj.c @@ -413,7 +413,7 @@ static void backtracer_printmsg(t_pd *who, t_symbol *s, if (argc > nprint && nchar < 100) sprintf(msgbuf + nchar, "..."); else memcpy(msgbuf+100, "...", 4); /* in case we didn't finish */ - logpost(who, 2, "%s", msgbuf); + logpost(who, PD_NORMAL, "%s", msgbuf); } static void backtracer_anything(t_backtracer *x, t_symbol *s, @@ -1011,5 +1011,3 @@ void obj_init(void) class_addanything(backtracer_class, backtracer_anything); } - - diff --git a/src/s_print.c b/src/s_print.c index 8f4cd4c37..9ad4f079a 100644 --- a/src/s_print.c +++ b/src/s_print.c @@ -98,7 +98,7 @@ static void doerror(const void *object, const char *s) } else pdgui_vmess("::pdwindow::logpost", "ois", - object, 1, s); + object, PD_ERROR, s); } static void dologpost(const void *object, const int level, const char *s) @@ -285,7 +285,7 @@ void pd_error(const void *object, const char *fmt, ...) if (object && !saidit) { if (sys_havegui()) - logpost(NULL, 4, + logpost(NULL, PD_VERBOSE, "... you might be able to track this down from the Find menu."); saidit = 1; } From cdefcfe7083448d982a62721d9f9d2a4e8917f07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 11 Mar 2024 22:17:57 +0100 Subject: [PATCH 098/450] allow "find last error" for "couldn't create" issues Closes: https://github.com/pure-data/pure-data/issues/2209 --- src/g_text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/g_text.c b/src/g_text.c index 07aa52292..bb66bdb05 100644 --- a/src/g_text.c +++ b/src/g_text.c @@ -116,7 +116,7 @@ static void canvas_error_couldntcreate(void*x, t_binbuf*b, const char*errmsg) buf = resizebytes(buf, bufsize, bufsize+1); buf[bufsize] = 0; logpost(x, PD_CRITICAL, "%s", buf); - logpost(x, PD_ERROR, "%s", errmsg); + pd_error(x, "%s", errmsg); freebytes(buf, bufsize); } From fb3631e1fdad39cab577c5ca74b19d12f8b905b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 11 Mar 2024 22:18:29 +0100 Subject: [PATCH 099/450] make sure that 0-objects don't stop on the toes of "find last error" --- src/s_print.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/s_print.c b/src/s_print.c index 9ad4f079a..f3973f162 100644 --- a/src/s_print.c +++ b/src/s_print.c @@ -278,7 +278,8 @@ void pd_error(const void *object, const char *fmt, ...) doerror(object, buf); - error_object = object; + if(object) + error_object = object; strncpy(error_string, buf, 256); error_string[255] = 0; From 1f97af34c2afa4a8aadc095b9cc0159da581d098 Mon Sep 17 00:00:00 2001 From: porres Date: Tue, 12 Mar 2024 21:15:49 -0300 Subject: [PATCH 100/450] cosmetic changes, add color to array's background Conform arrays to the color theme of the help files with a light gray background. closes https://github.com/pure-data/pddp/issues/179 --- doc/2.control.examples/16.more.arrays.pd | 57 ++-- doc/2.control.examples/22.random-walk.pd | 2 +- doc/4.data.structures/16.FFT-plot.pd | 39 +-- doc/4.data.structures/17.partialtracer.pd | 13 +- doc/5.reference/array-object-help.pd | 83 +++--- doc/5.reference/binops-help.pd | 126 ++++---- doc/5.reference/binops-other-help.pd | 2 +- doc/5.reference/binops-tilde-help.pd | 2 +- doc/5.reference/canvas-help.pd | 22 +- doc/5.reference/change-help.pd | 2 +- doc/5.reference/clip~-help.pd | 31 +- doc/5.reference/clone-abs-b.pd | 2 +- doc/5.reference/cnv-help.pd | 10 +- doc/5.reference/delay-help.pd | 21 +- doc/5.reference/expr-help.pd | 188 ++++++------ doc/5.reference/fft~-help.pd | 2 +- doc/5.reference/gui-boxes-help.pd | 4 +- doc/5.reference/nbx-help.pd | 2 +- doc/5.reference/osc-format-parse-help.pd | 2 +- doc/5.reference/osc~-help.pd | 25 +- doc/5.reference/pack-help.pd | 38 +-- doc/5.reference/pdcontrol-help.pd | 14 +- doc/5.reference/phasor~-help.pd | 29 +- doc/5.reference/pipe-help.pd | 34 +-- doc/5.reference/realtime-help.pd | 2 +- doc/5.reference/send-receive-help.pd | 23 +- doc/5.reference/set-help.pd | 4 +- doc/5.reference/setsize-help.pd | 2 +- doc/5.reference/slop~-help.pd | 336 +++++++++++----------- doc/5.reference/soundfiler-help.pd | 105 +++---- doc/5.reference/stripnote-help.pd | 51 ++-- doc/5.reference/tabosc4~-help.pd | 13 +- doc/5.reference/tabplay~-help.pd | 105 +++---- doc/5.reference/tabread-help.pd | 20 +- doc/5.reference/tabread4-help.pd | 20 +- doc/5.reference/tabread4~-help.pd | 94 +++--- doc/5.reference/tabread~-help.pd | 61 ++-- doc/5.reference/tabsend-receive~-help.pd | 156 +++++----- doc/5.reference/tabwrite-help.pd | 15 +- doc/5.reference/tabwrite~-help.pd | 59 ++-- doc/5.reference/text-object-help.pd | 2 +- doc/5.reference/timer-help.pd | 74 ++--- doc/5.reference/unpack-help.pd | 2 +- doc/5.reference/vcf~-help.pd | 2 +- doc/5.reference/writesf~-help.pd | 2 +- extra/hilbert~-help.pd | 33 +-- extra/loop~/loop~-help.pd | 55 ++-- extra/lrshift~/lrshift~-help.pd | 68 ++--- extra/output~-help.pd | 6 +- extra/pique/pique-help.pd | 40 +-- extra/sigmund~/sigmund~-help.pd | 33 +-- 51 files changed, 1086 insertions(+), 1047 deletions(-) diff --git a/doc/2.control.examples/16.more.arrays.pd b/doc/2.control.examples/16.more.arrays.pd index 635ce4bcd..586615863 100644 --- a/doc/2.control.examples/16.more.arrays.pd +++ b/doc/2.control.examples/16.more.arrays.pd @@ -1,28 +1,19 @@ -#N canvas 273 23 887 699 12; -#N canvas 0 50 450 250 (subpatch) 0; -#X array array97 5 float 1; -#A 0 0.486666 0.126666 0.566675 -0.5 0.5; -#X array array98 7 float 1; -#A 0 -1 1 -1 1 -1 1 -1; -#X coords 0 1 6 -1 300 150 1 0 0; -#X restore 531 40 graph; +#N canvas 273 23 887 709 12; #X text 105 13 MORE ON ARRAYS; -#X obj 614 369 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X msg 614 396 \; array98 vis \$1; +#X obj 614 373 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X msg 614 400 \; array98 vis \$1; #X msg 518 653 \; array98 style \$1; #X msg 506 484 \; array98 width \$1; #X floatatom 506 456 5 1 10 0 - - - 0; #X floatatom 708 485 5 0 0 0 - - - 0; #X msg 708 511 \; array98 color \$1; #X msg 675 455 9; -#X msg 708 455 90; #X msg 742 455 900; #X text 36 138 set array values from index 0; #X text 309 129 sets two values from index 3, f 17; #X text 30 39 Arrays have methods to set their values explicitly. Below you can set their "bounds" rectangles \, rename them (but if you have two with the same name this won't necessarily do what you want) and add markings. To set values by message \, send a list whose first element gives the index to start at. Indices count up from zero., f 66; #X msg 28 166 \; array98 0 -1 1 -1 1 -1 1 -1; -#X text 488 316 For last \, there are methods to change the visual appearance of arrays:, f 51; -#X text 486 370 show/hide arrays:; +#X text 486 374 show/hide arrays:; #X text 546 455 set line width; #X text 751 483 set color; #X floatatom 518 629 5 0 0 0 - - - 0; @@ -35,7 +26,7 @@ #X msg 222 394 \; array97 yticks 0 0.1 5; #X msg 30 478 \; array97 xlabel -1.1 0 1 2 3 4 5 6; #X msg 281 478 \; array97 ylabel -0.1 -1 0 1; -#X msg 736 395 \; array97 vis \$1; +#X msg 736 399 \; array97 vis \$1; #N canvas 162 212 568 393 locality 0; #N canvas 0 22 450 278 (subpatch) 0; #X array \$0-array 10 float 3; @@ -60,27 +51,37 @@ #X text 716 572 allow editing with mouse, f 13; #X text 722 608 prevent mouse interaction, f 14; #X msg 683 645 \; array97 edit \$1 \; array98 edit \$1; -#X text 487 209 You can put more than one array in a single "graph" (which is Pd's name for the bounding rectangle \, and is a synonym for "canvas".) Arrays' sizes need not match the bounds of the containing graph. But if you resize an array \, and if it is the only array contained in a graph \, then the graph automatically resets its bounds to match., f 51; +#X text 487 209 You can put more than one array in a single "graph" (which is Pd's name for the bounding rectangle \, and is a synonym for "canvas".) Arrays' sizes need not match the bounds of the containing graph. But if you resize an array \, and if it is the only array contained in a graph \, then the graph automatically resets its bounds to match., f 52; #X text 25 526 You can also change the x and y range and size in the "properties" dialog. Note that information about size and ranges is saved \, but ticks and labels are lost between Pd sessions. The contents of the array may be saved as part of the patch or discarded. This is set in the 'properties" dialog as well., f 62; #X text 27 207 renaming an array; #X text 26 276 setting the bounds rectangle; -#X text 30 441 adding labels: give a y value and a bunch of x values or vice versa, f 37; +#X text 103 439 adding labels: give a y value and a bunch of x values or vice versa, f 37; #X text 25 342 adding x and y labels: give a point to put a tick \, the interval between ticks \, and the number of ticks overall per large tick; #X text 44 670 updated for version 0.52; -#X obj 736 369 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X obj 736 373 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; #X obj 518 563 vradio 19 1 0 3 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0; #X text 542 563 Point (0); #X text 542 582 Polygon (1); #X text 542 602 Bezier (2); #X text 512 533 set display style:; -#X connect 2 0 3 0; -#X connect 6 0 5 0; -#X connect 7 0 8 0; -#X connect 9 0 7 0; -#X connect 10 0 7 0; -#X connect 11 0 7 0; -#X connect 20 0 4 0; -#X connect 33 0 37 0; -#X connect 34 0 37 0; -#X connect 45 0 30 0; -#X connect 46 0 20 0; +#X obj 532 41 cnv 19 298 148 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 250 (subpatch) 0; +#X array array97 5 float 1; +#A 0 0.486666 0.126666 0.566675 -0.5 0.5; +#X array array98 7 float 1; +#A 0 -1 1 -1 1 -1 1 -1; +#X coords 0 1 6 -1 300 150 1 0 0; +#X restore 531 40 graph; +#X text 487 314 For last \, there are methods to change the visual appearance of arrays (and you can use a canvas [cnv] to set background color as in this example):, f 52; +#X msg 708 455 444; +#X connect 1 0 2 0; +#X connect 5 0 4 0; +#X connect 6 0 7 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 17 0 3 0; +#X connect 30 0 34 0; +#X connect 31 0 34 0; +#X connect 42 0 27 0; +#X connect 43 0 17 0; +#X connect 51 0 6 0; diff --git a/doc/2.control.examples/22.random-walk.pd b/doc/2.control.examples/22.random-walk.pd index cc0228c0f..7c86db51f 100644 --- a/doc/2.control.examples/22.random-walk.pd +++ b/doc/2.control.examples/22.random-walk.pd @@ -1,4 +1,4 @@ -#N canvas 748 41 536 598 12; +#N canvas 510 45 535 586 12; #X floatatom 140 248 5 0 0 0 - - - 0; #X obj 167 125 f; #X obj 140 198 random 4; diff --git a/doc/4.data.structures/16.FFT-plot.pd b/doc/4.data.structures/16.FFT-plot.pd index 4155024c5..b7e805156 100644 --- a/doc/4.data.structures/16.FFT-plot.pd +++ b/doc/4.data.structures/16.FFT-plot.pd @@ -45,10 +45,6 @@ #X obj 43 143 openpanel; #X obj 43 90 bng 22 250 50 0 empty empty 1st 31 11 0 20 #dfdfdf #000000 #000000; #N canvas 136 53 860 453 sample 0; -#N canvas 0 50 450 300 (subpatch) 0; -#X array \$0-sample 62079 float 2; -#X coords 0 1 62079 -1 453 90 1 0 0; -#X restore 350 68 graph; #X obj 119 121 r resize-sample; #X obj 119 156 t f b; #X obj 151 187 samplerate~; @@ -123,21 +119,26 @@ #X obj 360 309 delay 1000; #X msg 378 251 \; npeaks 25; #X obj 360 372 send pd-16.FFT-plot.pd; -#X connect 1 0 2 0; -#X connect 2 0 5 0; -#X connect 2 1 3 0; -#X connect 3 0 4 0; -#X connect 4 0 5 1; -#X connect 5 0 14 0; -#X connect 6 0 11 0; -#X connect 8 0 11 1; -#X connect 9 0 7 0; -#X connect 10 0 12 0; -#X connect 14 0 13 0; -#X connect 15 0 20 0; -#X connect 15 0 19 0; -#X connect 18 0 21 0; -#X connect 19 0 18 0; +#X obj 351 69 cnv 19 451 88 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 300 (subpatch) 0; +#X array \$0-sample 62079 float 2; +#X coords 0 1 62079 -1 453 90 1 0 0; +#X restore 350 68 graph; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 1 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 1; +#X connect 4 0 13 0; +#X connect 5 0 10 0; +#X connect 7 0 10 1; +#X connect 8 0 6 0; +#X connect 9 0 11 0; +#X connect 13 0 12 0; +#X connect 14 0 19 0; +#X connect 14 0 18 0; +#X connect 17 0 20 0; +#X connect 18 0 17 0; #X coords 0 -1 1 1 453 108 2 350 50; #X restore 43 193 pd sample; #N canvas 395 221 458 221 peaks-template 0; diff --git a/doc/4.data.structures/17.partialtracer.pd b/doc/4.data.structures/17.partialtracer.pd index c78e52ba0..c98773991 100644 --- a/doc/4.data.structures/17.partialtracer.pd +++ b/doc/4.data.structures/17.partialtracer.pd @@ -1,4 +1,4 @@ -#N canvas 561 24 736 636 12; +#N canvas 368 23 736 636 12; #X declare -stdpath ./; #N canvas 86 373 1216 368 trace-list 1; #X coords 0 92 1 91.75 0 0 0; @@ -90,10 +90,6 @@ #X restore 216 66 pd synthesis; #X obj 26 176 s sample-size; #X obj 351 69 cnv 19 451 88 empty empty empty 20 12 0 12 #ffffff #404040 0; -#N canvas 0 50 450 300 (subpatch) 0; -#X array \$0-sample 62079 float 2; -#X coords 0 1 62079 -1 453 90 1 0 0; -#X restore 350 68 graph; #N canvas 179 166 287 327 resize-sample 0; #X obj 83 41 r resize-sample; #X obj 115 101 samplerate~; @@ -112,6 +108,11 @@ #X connect 4 1 1 0; #X connect 6 0 5 0; #X restore 40 108 pd resize-sample; +#X obj 351 69 cnv 19 451 88 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 300 (subpatch) 0; +#X array \$0-sample 155944 float 2; +#X coords 0 1 155944 -1 453 90 1 0 0; +#X restore 350 68 graph; #X connect 0 0 7 0; #X connect 1 0 2 1; #X connect 2 0 9 0; @@ -119,7 +120,7 @@ #X connect 5 0 3 0; #X connect 6 0 8 0; #X connect 7 0 2 0; -#X connect 12 0 2 0; +#X connect 11 0 2 0; #X coords 0 -1 1 1 453 108 2 350 50; #X restore 22 176 pd sample; #X msg 186 151 voice2.wav; diff --git a/doc/5.reference/array-object-help.pd b/doc/5.reference/array-object-help.pd index 6565eede7..7464b05be 100644 --- a/doc/5.reference/array-object-help.pd +++ b/doc/5.reference/array-object-help.pd @@ -398,11 +398,6 @@ #X text 105 268 onset (first index \, zero for start of array); #X text 74 394 index; #X text 148 13 - outputs the specified quantile; -#N canvas 0 22 450 300 (subpatch) 0; -#X array array-5 100 float 1; -#A 0 7.04317e-07 1.23423e-06 2.13847e-06 3.66343e-06 6.20514e-06 1.03918e-05 1.72073e-05 2.81715e-05 4.56021e-05 7.2986e-05 0.000115497 0.00018071 0.000279558 0.0004276 0.00064667 0.000966955 0.00142958 0.00208972 0.00302027 0.00431601 0.00609813 0.008519 0.0117668 0.0160697 0.0216988 0.0289696 0.0382407 0.04991 0.0644062 0.0821762 0.103668 0.129306 0.159467 0.194447 0.234429 0.279447 0.329356 0.383804 0.442213 0.50377 0.567428 0.631928 0.695829 0.757559 0.81547 0.867916 0.913326 0.950281 0.977589 0.99435 1 0.99435 0.977589 0.950281 0.913326 0.867916 0.81547 0.757559 0.69583 0.631928 0.567428 0.50377 0.442213 0.383804 0.329356 0.279447 0.234429 0.194447 0.159467 0.129306 0.103668 0.0821763 0.0644063 0.0499101 0.0382407 0.0289696 0.0216988 0.0160698 0.0117669 0.00851902 0.00609814 0.00431601 0.00302027 0.00208972 0.00142958 0.000966957 0.000646672 0.0004276 0.000279558 0.00018071 0.000115497 7.29861e-05 4.56022e-05 2.81715e-05 1.72073e-05 1.03918e-05 6.20514e-06 3.66344e-06 2.13848e-06 1.23423e-06; -#X coords 0 1 99 0 220 100 1 0 0; -#X restore 440 201 graph; #X text 148 38 - array as weighted probabilities; #X text 433 474 set seed \, see -->; #N canvas 741 135 468 474 seed 0; @@ -445,11 +440,6 @@ #X obj 116 242 array quantile array-5; #X floatatom 116 276 5 0 100 0 - - - 0; #X floatatom 79 351 5 0 100 0 - - - 0; -#N canvas 0 50 450 250 (subpatch) 0; -#X array array-6 100 float 1; -#A 0 0 0 0 0 0 0 0 0 0 0 0 0.00715053 0.00715053 0.0285789 0.0500072 0.0714356 0.100007 0.128578 0.164292 0.207148 0.478574 0.628573 0.678572 0.721429 0.717857 0.714286 0.707143 0.7 0.692857 0.685715 0.678572 0.18572 0.164292 0.157149 0.0142931 -0.00713521 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014293 0.0214357 0.0357213 0.078578 0.142863 0.207148 0.335718 0.407146 0.435717 0.478574 0.514288 0.557144 0.592858 0.642858 0.7 0.692857 0.692857 0.692857 0.692857 0.7 0.696429 0.349997 0.335712 0.321426 0.278569 0.192856 0.149999 0.135714 0.114285 0.0999998 0.0714298 0.0642871 0.0571443 0.0285732 0 0 0 0 0; -#X coords 0 1 99 0 200 140 1 0 0; -#X restore 304 160 graph; #X obj 79 317 array quantile array-6; #X obj 772 163 array define histo 128; #X obj 607 320 tabwrite histo; @@ -466,25 +456,37 @@ #X text 832 126 clear; #X text 552 39 The example below creates a histogram from a MIDI note input \, or use the number box to feed it. Then we use [array random] to output weighted random values according to the histogram., f 61; #X text 807 225 weighted random; +#X obj 305 161 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 250 (subpatch) 0; +#X array array-6 100 float 1; +#A 0 0 0 0 0 0 0 0 0 0 0 0 0.00715053 0.00715053 0.0285789 0.0500072 0.0714356 0.100007 0.128578 0.164292 0.207148 0.478574 0.628573 0.678572 0.721429 0.717857 0.714286 0.707143 0.7 0.692857 0.685715 0.678572 0.18572 0.164292 0.157149 0.0142931 0.00714284 0.00714284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.014293 0.0214357 0.0357213 0.078578 0.142863 0.207148 0.335718 0.407146 0.435717 0.478574 0.514288 0.557144 0.592858 0.642858 0.7 0.692857 0.692857 0.692857 0.692857 0.7 0.696429 0.349997 0.335712 0.321426 0.278569 0.192856 0.149999 0.135714 0.114285 0.0999998 0.0714298 0.0642871 0.0571443 0.0285732 0 0 0 0 0; +#X coords 0 1 99 0 200 140 1 0 0; +#X restore 304 160 graph; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 3 0 4 0; -#X connect 3 0 8 0; +#X connect 3 0 7 0; #X connect 4 0 5 0; -#X connect 8 0 6 0; -#X connect 11 0 12 0; +#X connect 7 0 6 0; +#X connect 10 0 11 0; +#X connect 11 0 9 0; #X connect 12 0 10 0; -#X connect 13 0 11 0; -#X connect 13 1 10 1; -#X connect 14 0 9 0; -#X connect 15 0 13 0; -#X connect 16 0 15 0; -#X connect 16 1 15 1; -#X connect 17 0 13 0; +#X connect 12 1 9 1; +#X connect 13 0 8 0; +#X connect 14 0 12 0; +#X connect 15 0 14 0; +#X connect 15 1 14 1; +#X connect 16 0 12 0; +#X connect 18 0 17 0; #X connect 19 0 18 0; -#X connect 20 0 19 0; #X restore 133 626 pd examples; #X obj 36 205 hsl 162 19 0 1 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 441 202 cnv 19 218 98 empty empty empty 20 12 0 12 #dfdfdf #404040 0; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array-5 100 float 1; +#A 0 7.04317e-07 1.23423e-06 2.13847e-06 3.66343e-06 6.20514e-06 1.03918e-05 1.72073e-05 2.81715e-05 4.56021e-05 7.2986e-05 0.000115497 0.00018071 0.000279558 0.0004276 0.00064667 0.000966955 0.00142958 0.00208972 0.00302027 0.00431601 0.00609813 0.008519 0.0117668 0.0160697 0.0216988 0.0289696 0.0382407 0.04991 0.0644062 0.0821762 0.103668 0.129306 0.159467 0.194447 0.234429 0.279447 0.329356 0.383804 0.442213 0.50377 0.567428 0.631928 0.695829 0.757559 0.81547 0.867916 0.913326 0.950281 0.977589 0.99435 1 0.99435 0.977589 0.950281 0.913326 0.867916 0.81547 0.757559 0.69583 0.631928 0.567428 0.50377 0.442213 0.383804 0.329356 0.279447 0.234429 0.194447 0.159467 0.129306 0.103668 0.0821763 0.0644063 0.0499101 0.0382407 0.0289696 0.0216988 0.0160698 0.0117669 0.00851902 0.00609814 0.00431601 0.00302027 0.00208972 0.00142958 0.000966957 0.000646672 0.0004276 0.000279558 0.00018071 0.000115497 7.29861e-05 4.56022e-05 2.81715e-05 1.72073e-05 1.03918e-05 6.20514e-06 3.66344e-06 2.13848e-06 1.23423e-06; +#X coords 0 1 99 0 220 100 1 0 0; +#X restore 440 201 graph; #X connect 0 0 1 1; #X connect 1 0 3 0; #X connect 2 0 1 2; @@ -494,17 +496,12 @@ #X connect 8 0 5 1; #X connect 16 0 1 3; #X connect 18 0 5 2; -#X connect 34 0 5 0; -#X connect 36 0 1 0; -#X connect 42 0 36 0; +#X connect 33 0 5 0; +#X connect 35 0 1 0; +#X connect 41 0 35 0; #X restore 421 327 pd quantile+random; #X obj 37 361 array max; #N canvas 579 106 649 580 min+max 0; -#N canvas 0 50 450 250 (subpatch) 0; -#X array array-7 100 float 1; -#A 0 0.335714 0.37857 0.421427 0.442855 0.478569 0.521426 0.535711 0.55714 0.585711 0.599997 0.614282 0.63571 0.649996 0.664282 0.671424 0.699995 0.699995 0.714281 0.721424 0.707138 0.699995 0.692853 0.68571 0.671424 0.649996 0.628568 0.599997 0.571425 0.514283 0.471426 0.414284 0.385713 0.357142 0.328571 0.3 0.285714 0.271429 0.25 0.228572 0.214286 0.207143 0.200001 0.185715 0.17143 0.164287 0.157144 0.150001 0.135716 0.128573 0.12143 0.12143 0.114287 0.114287 0.114287 0.114287 0.114287 0.12143 0.125001 0.128573 0.128573 0.135716 0.139287 0.142858 0.150001 0.157144 0.157144 0.164287 0.17143 0.200001 0.214286 0.228572 0.235715 0.242857 0.257143 0.271429 0.285714 0.307142 0.321428 0.335714 0.357142 0.371427 0.385713 0.399999 0.407141 0.414284 0.421427 0.42857 0.435713 0.442855 0.457141 0.460712 0.464284 0.471426 0.478569 0.485712 0.499998 0.50714 0.514283 0.521426 0.528569; -#X coords 0 1 99 0 200 140 1 0 0; -#X restore 356 402 graph; #X floatatom 61 322 7 0 100 0 - - - 0; #X obj 61 153 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X floatatom 83 184 5 0 0 0 - - - 0; @@ -565,17 +562,23 @@ #X text 161 218 number of points (-1 for the end of the array); #X obj 61 277 array max array-7; #X obj 99 501 array min array-7; -#X connect 2 0 32 0; -#X connect 3 0 32 0; -#X connect 4 0 32 1; -#X connect 6 0 32 2; -#X connect 10 0 33 0; -#X connect 11 0 33 0; -#X connect 12 0 33 1; -#X connect 32 0 1 0; -#X connect 32 1 8 0; -#X connect 33 0 9 0; -#X connect 33 1 14 0; +#X obj 357 403 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 250 (subpatch) 0; +#X array array-7 100 float 1; +#A 0 0.335714 0.37857 0.421427 0.442855 0.478569 0.521426 0.535711 0.55714 0.585711 0.599997 0.614282 0.63571 0.649996 0.664282 0.671424 0.699995 0.699995 0.714281 0.721424 0.707138 0.699995 0.692853 0.68571 0.671424 0.649996 0.628568 0.599997 0.571425 0.514283 0.471426 0.414284 0.385713 0.357142 0.328571 0.3 0.285714 0.271429 0.25 0.228572 0.214286 0.207143 0.200001 0.185715 0.17143 0.164287 0.157144 0.150001 0.135716 0.128573 0.12143 0.12143 0.114287 0.114287 0.114287 0.114287 0.114287 0.12143 0.125001 0.128573 0.128573 0.135716 0.139287 0.142858 0.150001 0.157144 0.157144 0.164287 0.17143 0.200001 0.214286 0.228572 0.235715 0.242857 0.257143 0.271429 0.285714 0.307142 0.321428 0.335714 0.357142 0.371427 0.385713 0.399999 0.407141 0.414284 0.421427 0.42857 0.435713 0.442855 0.457141 0.460712 0.464284 0.471426 0.478569 0.485712 0.499998 0.50714 0.514283 0.521426 0.528569; +#X coords 0 1 99 0 200 140 1 0 0; +#X restore 356 402 graph; +#X connect 1 0 31 0; +#X connect 2 0 31 0; +#X connect 3 0 31 1; +#X connect 5 0 31 2; +#X connect 9 0 32 0; +#X connect 10 0 32 0; +#X connect 11 0 32 1; +#X connect 31 0 0 0; +#X connect 31 1 7 0; +#X connect 32 0 8 0; +#X connect 32 1 13 0; #X restore 421 372 pd min+max; #X obj 37 384 array min; #X obj 177 496 list; diff --git a/doc/5.reference/binops-help.pd b/doc/5.reference/binops-help.pd index 286e8df91..ac4f8f725 100644 --- a/doc/5.reference/binops-help.pd +++ b/doc/5.reference/binops-help.pd @@ -1,40 +1,40 @@ -#N canvas 324 52 827 415 12; -#X obj 23 17 +; -#X text 16 338 see also:; -#X obj 94 341 +~; -#X obj 556 253 min 20; -#X obj 52 17 -; -#X obj 82 17 *; -#X obj 112 17 /; -#X obj 147 17 max; -#X obj 178 17 min; -#X obj 322 343 >; -#X floatatom 131 286 5 0 0 0 - - - 0; -#X floatatom 174 286 8 0 0 0 - - - 0; -#X floatatom 291 286 5 0 0 0 - - - 0; -#X floatatom 344 166 5 0 0 0 - - - 0; -#X obj 344 193 t b f; -#X text 100 165 set left and right inputs here; -#X floatatom 247 286 5 0 0 0 - - - 0; -#X obj 47 253 +; -#X obj 89 253 -; -#X obj 131 253 *; -#X obj 174 253 /; -#X obj 247 253 max; -#X obj 291 253 min; -#X floatatom 47 166 5 0 0 0 - - - 0; -#X obj 603 344 expr; -#X obj 263 375 sin; -#X obj 502 253 + 3; -#X obj 622 253 * 3; -#X floatatom 89 286 5 0 0 0 - - - 0; -#X floatatom 47 286 5 0 0 0 - - - 0; -#X floatatom 556 286 5 0 0 0 - - - 0; -#X floatatom 502 286 5 0 0 0 - - - 0; -#X floatatom 622 286 5 0 0 0 - - - 0; -#X floatatom 556 221 5 0 0 0 - - - 0; -#X floatatom 622 221 5 0 0 0 - - - 0; -#X floatatom 502 221 5 0 0 0 - - - 0; +#N canvas 316 78 809 391 12; +#X obj 14 13 +; +#X text 7 329 see also:; +#X obj 85 332 +~; +#X obj 547 249 min 20; +#X obj 43 13 -; +#X obj 73 13 *; +#X obj 103 13 /; +#X obj 138 13 max; +#X obj 169 13 min; +#X obj 313 334 >; +#X floatatom 122 282 5 0 0 0 - - - 0; +#X floatatom 165 282 8 0 0 0 - - - 0; +#X floatatom 282 282 5 0 0 0 - - - 0; +#X floatatom 335 162 5 0 0 0 - - - 0; +#X obj 335 189 t b f; +#X text 91 161 set left and right inputs here; +#X floatatom 238 282 5 0 0 0 - - - 0; +#X obj 38 249 +; +#X obj 80 249 -; +#X obj 122 249 *; +#X obj 165 249 /; +#X obj 238 249 max; +#X obj 282 249 min; +#X floatatom 38 162 5 0 0 0 - - - 0; +#X obj 594 335 expr; +#X obj 256 360 sin; +#X obj 493 249 + 3; +#X obj 613 249 * 3; +#X floatatom 80 282 5 0 0 0 - - - 0; +#X floatatom 38 282 5 0 0 0 - - - 0; +#X floatatom 547 282 5 0 0 0 - - - 0; +#X floatatom 493 282 5 0 0 0 - - - 0; +#X floatatom 613 282 5 0 0 0 - - - 0; +#X floatatom 547 217 5 0 0 0 - - - 0; +#X floatatom 613 217 5 0 0 0 - - - 0; +#X floatatom 493 217 5 0 0 0 - - - 0; #N canvas 706 96 563 496 reference 0; #X obj 8 242 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0; #X obj 8 277 cnv 1 550 1 empty empty 1st: 8 12 0 13 #9f9f9f #000000 0; @@ -65,32 +65,32 @@ #X text 103 424 1) float -; #X text 182 424 initialize value of right inlet (default 'e' for [log] \, 0 otherwise)., f 44; #X text 22 14 Control rate binary (two-input) operators:; -#X restore 693 13 pd reference; -#X text 626 13 click =>; -#X obj 13 48 cnv 1 800 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X obj 213 17 log; -#X obj 244 17 pow; -#X floatatom 414 286 8 0 0 0 - - - 0; -#X floatatom 344 286 8 0 0 0 - - - 0; -#X obj 344 253 log; -#X obj 414 253 pow; -#X obj 13 326 cnv 1 800 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X floatatom 677 286 8 0 0 0 - - - 0; -#X floatatom 747 286 8 0 0 0 - - - 0; -#X obj 677 253 log 2; -#X obj 747 253 pow 3; -#X floatatom 677 221 5 0 0 0 - - - 0; -#X floatatom 747 221 5 0 0 0 - - - 0; -#X text 18 58 These binary operators perform the 4 arithmetic functions ([+] \, etc) \, output the minimum or maximum of two numbers ([min] \, [max]) and perform logarithms ([log]) and power function ([pow]). All of these objects take a bang message to evaluate the operation with the previously set values and an argument to set the right input value., f 58; -#X text 486 185 Initializing right input with an argument:; -#X obj 25 375 abs; -#X text 598 377 updated for Pd version 0.54; -#X text 277 17 - control binary operators; -#X text 130 341 (etc.) - signal versions; -#X text 54 376 (etc.) - unary operators; -#X text 359 343 (etc.) - other binary operators; -#X text 293 376 (etc.) - trigonometric functions; -#X text 457 59 As in the signal versions \; - [log] takes a base value via an argument or the right inlet but defaults to "e". A 0 or negative left input gives -1000 as the result \; - [pow] has protection against NaNs (they become 0) \, and it raises a number on the left inlet to a numeric power (given by the right inlet or argument)., f 48; +#X restore 684 9 pd reference; +#X text 617 9 click =>; +#X obj 4 44 cnv 1 800 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 204 13 log; +#X obj 235 13 pow; +#X floatatom 405 282 8 0 0 0 - - - 0; +#X floatatom 335 282 8 0 0 0 - - - 0; +#X obj 335 249 log; +#X obj 405 249 pow; +#X obj 4 322 cnv 1 800 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X floatatom 668 282 8 0 0 0 - - - 0; +#X floatatom 738 282 8 0 0 0 - - - 0; +#X obj 668 249 log 2; +#X obj 738 249 pow 3; +#X floatatom 668 217 5 0 0 0 - - - 0; +#X floatatom 738 217 5 0 0 0 - - - 0; +#X text 9 54 These binary operators perform the 4 arithmetic functions ([+] \, etc) \, output the minimum or maximum of two numbers ([min] \, [max]) and perform logarithms ([log]) and power function ([pow]). All of these objects take a bang message to evaluate the operation with the previously set values and an argument to set the right input value., f 58; +#X text 477 181 Initializing right input with an argument:; +#X obj 18 360 abs; +#X text 589 362 updated for Pd version 0.54; +#X text 268 13 - control binary operators; +#X text 121 332 (etc.) - signal versions; +#X text 47 361 (etc.) - unary operators; +#X text 350 334 (etc.) - other binary operators; +#X text 286 361 (etc.) - trigonometric functions; +#X text 448 55 As in the signal versions \; - [log] takes a base value via an argument or the right inlet but defaults to "e". A 0 or negative left input gives -1000 as the result \; - [pow] has protection against NaNs (they become 0) \, and it raises a number on the left inlet to a numeric power (given by the right inlet or argument)., f 48; #X connect 3 0 30 0; #X connect 13 0 14 0; #X connect 14 0 17 0; diff --git a/doc/5.reference/binops-other-help.pd b/doc/5.reference/binops-other-help.pd index 871649d9f..d69de82b9 100644 --- a/doc/5.reference/binops-other-help.pd +++ b/doc/5.reference/binops-other-help.pd @@ -1,4 +1,4 @@ -#N canvas 501 23 635 705 12; +#N canvas 431 23 635 705 12; #X obj 198 489 <; #X obj 166 131 &&; #X obj 207 130 ||; diff --git a/doc/5.reference/binops-tilde-help.pd b/doc/5.reference/binops-tilde-help.pd index 17d157227..1f51ccd19 100644 --- a/doc/5.reference/binops-tilde-help.pd +++ b/doc/5.reference/binops-tilde-help.pd @@ -1,4 +1,4 @@ -#N canvas 319 23 841 580 12; +#N canvas 311 33 841 580 12; #X obj 22 164 +~; #X obj 102 164 -~; #X obj 22 18 +~; diff --git a/doc/5.reference/canvas-help.pd b/doc/5.reference/canvas-help.pd index ba785459a..4a993af24 100644 --- a/doc/5.reference/canvas-help.pd +++ b/doc/5.reference/canvas-help.pd @@ -1,6 +1,6 @@ #N canvas 299 39 1004 645 12; #X obj 508 180 table; -#X obj 552 552 table help-tab1 25; +#X obj 552 557 table help-tab1 25; #N canvas 1 51 450 300 (subpatch) 0; #X restore 61 24 pd; #X obj 338 609 array; @@ -33,11 +33,6 @@ #X connect 3 0 1 0; #X coords 0 1 100 -1 130 50 1 50 50; #X restore 226 454 graph; -#N canvas 0 22 450 278 (subpatch) 0; -#X array array2 100 float 3; -#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; -#X coords 0 1 100 -1 200 140 1; -#X restore 467 315 graph; #X text 690 307 For details on how to work with arrays \, click and open the files below from the '2.control' examples., f 39; #X text 42 609 see also:; #X obj 118 609 inlet; @@ -128,12 +123,12 @@ #X restore 695 436 pd open; #X msg 695 381 15.array.pd; #X msg 705 407 16.more.arrays.pd; -#X text 694 552 <-- optional creation args: name \, size; +#X text 694 556 <-- optional creation args: name \, size; #X text 380 151 <= click; #X text 197 313 <-- click to open; #X text 54 469 right click to open -->; #X text 787 382 <-- click to open examples.; -#X text 532 498 [table] builds a subpatch with an array inside \, but the array contents (and other properties) aren't saved with the patch., f 62; +#X text 532 508 [table] builds a subpatch with an array inside \, but the array contents (and other properties) aren't saved with the patch., f 62; #X text 22 232 A 'canvas' is a patch window. By typing "pd" into an object box \, you create a 'subwindow' (or a 'subpatch'). An optional argument sets its name. Click to open and right click on it to access its canvas properties., f 55; #X text 15 517 You can send messages to the canvas of a subpatch by sending them to the subpatch's name \, which is useful for Dynamic Patching (see [pd-messages] below). Alernatively \, you can also use the [namecanvas] object., f 66; #X obj 6 590 cnv 1 990 1 empty empty empty 8 12 0 13 #000000 #000000 0; @@ -143,5 +138,12 @@ #X text 554 179 - create subpatch with an array; #X obj 665 608 all_guis; #X text 592 608 anf also:; -#X connect 25 0 24 0; -#X connect 26 0 24 0; +#X obj 468 306 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 278 (subpatch) 0; +#X array array2 100 float 3; +#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; +#X coords 0 1 100 -1 200 140 1; +#X restore 467 305 graph; +#X text 499 450 (using canvas [cnv] for backgound color), f 20; +#X connect 24 0 23 0; +#X connect 25 0 23 0; diff --git a/doc/5.reference/change-help.pd b/doc/5.reference/change-help.pd index b97baa304..f8e9c0522 100644 --- a/doc/5.reference/change-help.pd +++ b/doc/5.reference/change-help.pd @@ -1,4 +1,4 @@ -#N canvas 641 53 509 382 12; +#N canvas 580 53 509 382 12; #X floatatom 68 279 5 0 0 0 - - - 0; #X text 284 351 updated for Pd version 0.27; #X text 154 253 creation argument initializes first value; diff --git a/doc/5.reference/clip~-help.pd b/doc/5.reference/clip~-help.pd index 44c87dd4c..b3ebc2d92 100644 --- a/doc/5.reference/clip~-help.pd +++ b/doc/5.reference/clip~-help.pd @@ -1,4 +1,4 @@ -#N canvas 518 85 518 450 12; +#N canvas 445 81 518 450 12; #X obj 36 168 clip~ -0.5 0.5; #X obj 58 252 metro 500; #X obj 12 16 clip~; @@ -37,11 +37,7 @@ #X text 130 114 upper; #X obj 4 400 cnv 1 505 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 133 61 The [clip~] object passes its signal input to its output \, clipping it to lie between two limits., f 50; -#X obj 290 225 cnv 19 198 98 empty empty empty 20 12 0 12 #ffffff #404040 0; -#N canvas 0 22 450 278 (subpatch) 0; -#X array clip 200 float 0; -#X coords 0 1 199 -1 200 100 1 0 0; -#X restore 289 224 graph; +#X obj 301 223 cnv 19 198 98 empty empty empty 20 12 0 12 #ffffff #404040 0; #X obj 36 72 osc~ 500; #X obj 153 208 set-dsp-tgl; #X text 184 212 DSP on/off; @@ -59,10 +55,10 @@ #X obj 72 200 clip~ -0.5 0.5; #X obj 72 405 vsl 19 162 -1 1 0 0 empty empty empty 0 -9 0 12 #dfdfdf #000000 #000000 0 1; #X obj 171 405 vsl 19 162 -1 1 0 0 empty empty empty 0 -9 0 12 #dfdfdf #000000 #000000 0 1; -#X obj 171 265 metro 150; -#X obj 171 236 loadbang; #X obj 72 105 osc~ 0.5; #X obj 139 105 osc~ 0.25; +#X obj 171 265 metro 25; +#X obj 171 236 loadbang; #X connect 1 0 10 0; #X connect 2 0 5 0; #X connect 2 1 3 0; @@ -72,19 +68,24 @@ #X connect 6 0 11 0; #X connect 9 0 7 0; #X connect 10 0 2 0; -#X connect 13 0 3 0; -#X connect 13 0 5 0; -#X connect 14 0 13 0; -#X connect 15 0 1 0; -#X connect 16 0 1 1; +#X connect 13 0 1 0; +#X connect 14 0 1 1; +#X connect 15 0 3 0; +#X connect 15 0 5 0; +#X connect 16 0 15 0; #X restore 273 356 pd multichannel; #X text 122 341 mutichannel signal support ----------->, f 20; #X text 298 412 updated for Pd version 0.54; #X obj 216 413 wrap~; +#X obj 291 222 cnv 19 198 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 278 (subpatch) 0; +#X array clip 200 float 0; +#X coords 0 1 199 -1 200 100 1 0 0; +#X restore 290 222 graph; #X connect 0 0 16 0; #X connect 1 0 16 0; #X connect 4 0 0 1; #X connect 11 0 1 0; #X connect 17 0 0 2; -#X connect 24 0 0 0; -#X connect 25 0 10 0; +#X connect 23 0 0 0; +#X connect 24 0 10 0; diff --git a/doc/5.reference/clone-abs-b.pd b/doc/5.reference/clone-abs-b.pd index 110bfbcb5..a1809eb19 100644 --- a/doc/5.reference/clone-abs-b.pd +++ b/doc/5.reference/clone-abs-b.pd @@ -1,4 +1,4 @@ -#N canvas 890 284 261 316 12; +#N canvas 571 175 261 316 12; #X obj 80 264 outlet~; #X obj 80 193 *~; #X obj 80 89 inlet~; diff --git a/doc/5.reference/cnv-help.pd b/doc/5.reference/cnv-help.pd index c7c71471f..ac082d895 100644 --- a/doc/5.reference/cnv-help.pd +++ b/doc/5.reference/cnv-help.pd @@ -511,14 +511,14 @@ #X obj 68 231 send \$0-display; #X floatatom 68 141 5 1 100 0 - - - 0; #X msg 68 202 label \$1; -#X obj 205 215 cnv 30 148 30 empty \$0-display file\ 001.wav 9 15 0 16 #000000 #fc6460 0; -#X text 114 140 <= click and drag; -#X obj 68 173 makefilename file\ %03d.wav; +#X obj 205 215 cnv 30 148 30 empty \$0-display File\ 001.wav 9 15 0 16 #000000 #fc6460 0; #X text 64 27 Here we're using a canvas to display a symbol by using it to set the label., f 43; #X text 64 64 The file name is set with a [makefilename] object below and you can click and drag on the number box to set the file name., f 43; -#X connect 1 0 5 0; +#X obj 68 173 makefilename File\ %03d.wav; +#X text 111 140 <-- click and drag; +#X connect 1 0 6 0; #X connect 2 0 0 0; -#X connect 5 0 2 0; +#X connect 6 0 2 0; #X restore 357 311 pd display-example; #X text 10 98 Insert it from the Put menu (named as "Canvas") or its shortcut. Alternatively \, create it by typing "my_canvas" or "cnv" into an object box. This object has no inlet or outlet \, so it can only communicate via send and receive symbols set via the properties window., f 71; #X obj 84 426 all_guis; diff --git a/doc/5.reference/delay-help.pd b/doc/5.reference/delay-help.pd index fb0d879db..a46d8fbfd 100644 --- a/doc/5.reference/delay-help.pd +++ b/doc/5.reference/delay-help.pd @@ -1,13 +1,13 @@ -#N canvas 437 23 706 648 12; +#N canvas 437 23 706 639 12; #X obj 24 11 delay; #X obj 25 36 del; #X floatatom 233 462 5 0 0 0 - - - 0; #X msg 92 271 stop; -#X text 14 612 see also:; -#X obj 138 612 timer; -#X obj 90 612 metro; +#X text 14 602 see also:; +#X obj 138 602 timer; +#X obj 90 602 metro; #X obj 64 270 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X text 491 612 updated for Pd version 0.45; +#X text 491 602 updated for Pd version 0.45; #X obj 117 491 delay 1000 1 msec; #X text 251 508 - tempo (float) and time unit (symbol) as in "tempo" message; #X msg 162 325 tempo 0.5 msec; @@ -22,7 +22,7 @@ #X text 132 270 cancel the delay; #X text 156 297 set delay time and start; #X msg 188 389 tempo 0.001 second; -#X obj 185 612 text sequence; +#X obj 185 602 text sequence; #X text 69 10 - send a bang message after a time delay; #X text 206 414 Note that if the tempo is changed while the delay is in progress \, the change takes effect to the remaining fraction of the delay., f 65; #X obj 8 62 cnv 1 690 1 empty empty empty 8 12 0 13 #000000 #000000 0; @@ -53,11 +53,11 @@ #X text 631 35 <= click; #X text 276 460 set delay time (only takes effect at the next tempo).; #X text 20 135 Delay times are in units of 1 millisecond by default \, but you can change this with the second and third argument or with a "tempo" message (as in [timer] \, [metro] and [text sequence]) \, which set a tempo value and a time unit symbol. Possible symbols are:, f 94; -#X obj 290 612 pipe; +#X obj 290 602 pipe; #X text 93 184 - millisecond (msec for short) \; - seconds (sec) \; - minutes (min) \; - samples (samp), f 32; #X text 401 252 'samp' depends on the sample rate the patch is running, f 28; -#X obj 8 597 cnv 1 690 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X obj 117 550 bng 25 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 8 587 cnv 1 690 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 117 530 bng 25 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X text 20 75 The [delay] object outputs a bang after a given delay time (via argument or right inlet). A bang starts the delay. A float specifies the time delay and starts it. If the delay is running and scheduled to output \, sending a bang or a float cancels the previous setting and reschedules the output., f 94; #X text 247 491 <-- creation arguments: - delay time (float); #X text 59 36 <-- abbreviation; @@ -98,7 +98,8 @@ #X connect 16 0 2 0; #X connect 19 0 21 0; #X connect 21 0 20 0; -#X restore 562 551 pd examples; +#X restore 450 550 pd examples; +#X text 320 549 open for more -->; #X connect 2 0 9 1; #X connect 3 0 9 0; #X connect 7 0 9 0; diff --git a/doc/5.reference/expr-help.pd b/doc/5.reference/expr-help.pd index f3a68f5d2..220e89982 100644 --- a/doc/5.reference/expr-help.pd +++ b/doc/5.reference/expr-help.pd @@ -22,6 +22,7 @@ #X obj 502 46 vsl 19 162 0 10 0 0 empty empty empty 0 -9 0 12 #dfdfdf #000000 #000000 0 1; #X text 154 93 <-- index to read from the array, f 33; #X obj 577 30 cnv 19 218 128 empty empty empty 20 12 0 12 #ffffff #404040 0; +#X obj 577 30 cnv 19 218 128 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; #N canvas 0 50 450 300 (subpatch) 0; #X array array100 10 float 1; #A 0 1 6.77019 2 8 5 6 1 4 2 8; @@ -44,11 +45,6 @@ #X floatatom 624 128 5 0 99 0 - - - 0; #X floatatom 624 182 5 0 0 0 - - - 0; #X obj 712 100 loadbang; -#N canvas 0 50 450 300 (subpatch) 0; -#X array \$0-x 100 float 1; -#A 0 -0.720016 -0.706683 -0.693349 -0.680016 -0.666682 -0.653348 -0.640015 -0.625014 -0.610014 -0.595014 -0.580013 -0.565013 -0.550013 -0.535012 -0.520012 -0.505012 -0.490011 -0.475011 -0.460011 -0.44501 -0.43001 -0.415009 -0.400009 -0.385009 -0.370008 -0.355008 -0.340008 -0.325007 -0.310007 -0.295007 -0.280006 -0.264006 -0.248006 -0.232005 -0.216005 -0.200005 -0.184004 -0.168004 -0.152003 -0.136003 -0.120003 -0.106669 -0.0933355 -0.0800018 -0.0666682 -0.0533346 -0.0400009 -0.0266673 -0.0133336 -3.10441e-10 0.0133336 0.0266673 0.0400009 0.0533346 0.0666682 0.0800018 0.0933355 0.106669 0.120003 0.133336 0.14667 0.160004 0.173337 0.186671 0.200005 0.213338 0.226672 0.240005 0.253339 0.266673 0.280006 0.29715 0.314293 0.331436 0.348579 0.365723 0.382866 0.400009 0.413343 0.426676 0.44001 0.453344 0.466677 0.480011 0.500011 0.520012 0.540012 0.560013 0.570013 0.580013 0.590014 0.600014 0.620014 0.640015 0.660015 0.680016 0.680016 0.720016 0.720016 0.720016; -#X coords 0 1 99 -1 200 150 1 0 0; -#X restore 249 188 graph; #X obj 58 397 expr \$0-x[$f1]; #X floatatom 58 363 5 0 99 0 - - - 0; #X floatatom 58 433 5 0 0 0 - - - 0; @@ -71,19 +67,25 @@ #X text 538 127 try now -->; #X text 100 362 <-- try; #X text 21 6 '\$0' - the patch ID number used to force locality in Pd - may be used in the definition local array names in [expr] \, [expr~] or [fexpr~]. You can also use it to set local variable names in value objects that are retrieved in [expr] \, [expr~] and [fexpr~]. This is especially useful in abstractions., f 62; +#X obj 250 189 cnv 19 198 148 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 300 (subpatch) 0; +#X array \$0-x 100 float 1; +#A 0 -0.720016 -0.706683 -0.693349 -0.680016 -0.666682 -0.653348 -0.640015 -0.625014 -0.610014 -0.595014 -0.580013 -0.565013 -0.550013 -0.535012 -0.520012 -0.505012 -0.490011 -0.475011 -0.460011 -0.44501 -0.43001 -0.415009 -0.400009 -0.385009 -0.370008 -0.355008 -0.340008 -0.325007 -0.310007 -0.295007 -0.280006 -0.264006 -0.248006 -0.232005 -0.216005 -0.200005 -0.184004 -0.168004 -0.152003 -0.136003 -0.120003 -0.106669 -0.0933355 -0.0800018 -0.0666682 -0.0533346 -0.0400009 -0.0266673 -0.0133336 -3.10441e-10 0.0133336 0.0266673 0.0400009 0.0533346 0.0666682 0.0800018 0.0933355 0.106669 0.120003 0.133336 0.14667 0.160004 0.173337 0.186671 0.200005 0.213338 0.226672 0.240005 0.253339 0.266673 0.280006 0.29715 0.314293 0.331436 0.348579 0.365723 0.382866 0.400009 0.413343 0.426676 0.44001 0.453344 0.466677 0.480011 0.500011 0.520012 0.540012 0.560013 0.570013 0.580013 0.590014 0.600014 0.620014 0.640015 0.660015 0.680016 0.680016 0.720016 0.720016 0.720016; +#X coords 0 1 99 -1 200 150 1 0 0; +#X restore 249 188 graph; #X connect 0 0 3 0; #X connect 1 0 0 1; #X connect 2 0 0 0; #X connect 4 0 1 0; -#X connect 6 0 8 0; -#X connect 7 0 6 0; -#X connect 11 0 16 0; -#X connect 11 1 15 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 10 0 15 0; +#X connect 10 1 14 0; +#X connect 11 0 8 0; #X connect 12 0 9 0; -#X connect 13 0 10 0; -#X connect 14 0 12 0; -#X connect 14 0 13 0; -#X connect 24 0 11 0; +#X connect 13 0 11 0; +#X connect 13 0 12 0; +#X connect 23 0 10 0; #X restore 505 524 pd Dealing_with_"\$0"; #X text 28 607 see also:; #X obj 285 671 block~; @@ -200,11 +202,6 @@ #X floatatom 63 163 0 0 0 0 - - - 0; #X floatatom 145 164 0 0 0 0 - - - 0; #X floatatom 228 164 0 0 0 0 - - - 0; -#N canvas 0 50 450 300 (subpatch) 0; -#X array table 100 float 1; -#A 0 0 1 2 3 4 5 6 7 8 9 18.5714 21.4285 28.5713 31.4284 34.9998 38.5712 40.714 42.8569 46.4283 49.2854 50.3568 51.4282 53.5711 54.2853 54.9996 55.7139 55.7139 55.7139 55.7139 55.7139 55.7139 55.7139 55.7139 55.5353 55.3568 55.1782 54.9996 54.2853 53.5711 52.8568 52.1425 51.4282 49.9997 48.5711 47.1426 45.714 44.0473 42.3807 40.714 39.0474 37.3807 35.7141 32.857 31.4284 29.9999 28.5713 26.4285 26.4285 26.7856 27.1427 27.857 28.5713 29.107 29.6427 30.1784 30.7141 31.607 32.4998 33.3927 34.2855 34.9998 35.7141 36.6665 37.6188 38.5712 40.714 41.4283 42.1426 44.2854 45.714 46.7854 47.8568 49.9997 51.4282 52.8568 55.7139 57.8567 59.9996 62.8567 64.9995 66.4281 69.2852 72.1423 93 94 95 96 97 98 99; -#X coords 0 100 99 0 200 140 1 0 0; -#X restore 336 118 graph; #X obj 364 422 expr size("$s1") \;; #X obj 63 102 expr Sum("table" \, 3 \, 9) \; sum("table") \; size("table"); #X msg 364 392 symbol table; @@ -225,18 +222,24 @@ #X obj 63 73 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X obj 47 269 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X obj 47 396 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X connect 4 0 7 0; -#X connect 5 0 0 0; -#X connect 5 1 1 0; -#X connect 5 2 2 0; -#X connect 6 0 4 0; -#X connect 15 0 11 0; -#X connect 15 1 12 0; -#X connect 16 0 13 0; -#X connect 16 1 14 0; -#X connect 21 0 5 0; +#X obj 337 118 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 300 (subpatch) 0; +#X array table 100 float 1; +#A 0 0 1 2 3 4 5 6 7 8 9 18.5714 21.4285 28.5713 31.4284 34.9998 38.5712 40.714 42.8569 46.4283 49.2854 50.3568 51.4282 53.5711 54.2853 54.9996 55.7139 55.7139 55.7139 55.7139 55.7139 55.7139 55.7139 55.7139 55.5353 55.3568 55.1782 54.9996 54.2853 53.5711 52.8568 52.1425 51.4282 49.9997 48.5711 47.1426 45.714 44.0473 42.3807 40.714 39.0474 37.3807 35.7141 32.857 31.4284 29.9999 28.5713 26.4285 26.4285 26.7856 27.1427 27.857 28.5713 29.107 29.6427 30.1784 30.7141 31.607 32.4998 33.3927 34.2855 34.9998 35.7141 36.6665 37.6188 38.5712 40.714 41.4283 42.1426 44.2854 45.714 46.7854 47.8568 49.9997 51.4282 52.8568 55.7139 57.8567 59.9996 62.8567 64.9995 66.4281 69.2852 72.1423 93 94 95 96 97 98 99; +#X coords 0 100 99 0 200 140 1 0 0; +#X restore 336 118 graph; +#X connect 3 0 6 0; +#X connect 4 0 0 0; +#X connect 4 1 1 0; +#X connect 4 2 2 0; +#X connect 5 0 3 0; +#X connect 14 0 10 0; +#X connect 14 1 11 0; +#X connect 15 0 12 0; +#X connect 15 1 13 0; +#X connect 20 0 4 0; +#X connect 21 0 14 0; #X connect 22 0 15 0; -#X connect 23 0 16 0; #X restore 125 361 pd Table-functions; #N canvas 286 64 570 578 Power-functions 0; #X floatatom 62 60 5 0 0 0 - - - 0; @@ -398,17 +401,18 @@ #X floatatom 62 211 5 0 0 0 - - - 0; #X floatatom 276 211 5 0 0 0 - - - 0; #X obj 62 158 expr array2[inc - 1] = 1 / inc \; inc = inc + 1; +#X obj 129 119 v inc; +#X msg 129 94 0; +#X obj 62 129 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 352 101 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; #N canvas 0 22 450 278 (subpatch) 0; #X array array2 16 float 2; #X coords 0 1.1 16 -0.1 200 140 1 0 0; #X restore 351 101 graph; -#X obj 129 119 v inc; -#X msg 129 94 0; -#X obj 62 129 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X connect 3 0 1 0; #X connect 3 1 2 0; -#X connect 6 0 5 0; -#X connect 7 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 3 0; #X restore 125 326 pd Store-function; #X text 46 19 Here are all the operators and functions available for [expr] \, [expr~] and [fexpr~] \, even though the given examples are only presented with [expr]., f 52; #X text 46 76 These are organized in different groups. Click on the subpatches below to check each group:, f 52; @@ -469,7 +473,7 @@ #X obj 632 437 expr abs($f1); #X floatatom 632 474 5 0 0 0 - - - 0; #X text 680 399 absolute value; -#X obj 601 225 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; +#X obj 601 215 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X msg 322 384 7; #X obj 601 251 expr log(-1); #X text 100 264 round floats to integers, f 12; @@ -725,20 +729,8 @@ #X text 95 361 frequency; #X floatatom 743 257 7 0 10 0 - - - 0; #X obj 536 328 tabsend~ a1; -#N canvas 0 50 450 300 (subpatch) 0; -#X array a1 64 float 0; -#X coords 0 1 63 -1 200 140 1; -#X restore 103 527 graph; #X obj 546 458 tabsend~ a2; #X obj 711 454 tabsend~ a3; -#N canvas 0 50 450 300 (subpatch) 0; -#X array a2 64 float 0; -#X coords 0 1 63 -1 200 140 1 0 0; -#X restore 319 528 graph; -#N canvas 0 50 450 300 (subpatch) 0; -#X array a3 64 float 0; -#X coords 0 1 63 -1 200 140 1; -#X restore 540 528 graph; #X obj 50 388 osc~ 440; #X floatatom 250 347 8 0 0 0 - - - 0; #X text 314 347 amplitude; @@ -770,30 +762,45 @@ #X obj 743 72 vsl 19 162 0 1 0 0 empty empty empty 0 -9 0 12 #dfdfdf #000000 #000000 0 1; #X obj 290 20 set-dsp-tgl; #X text 321 24 DSP on/off; -#X connect 0 0 10 0; -#X connect 3 0 18 1; -#X connect 10 0 14 0; -#X connect 11 0 28 0; -#X connect 13 0 14 1; -#X connect 14 0 1 0; -#X connect 14 0 1 1; -#X connect 15 0 6 0; -#X connect 15 1 7 0; -#X connect 16 0 15 0; -#X connect 17 0 18 0; -#X connect 18 0 4 0; -#X connect 21 0 31 1; -#X connect 22 0 23 0; -#X connect 23 0 31 0; -#X connect 24 0 15 1; -#X connect 28 0 13 0; -#X connect 31 0 20 0; -#X connect 36 0 20 0; -#X connect 37 0 11 0; -#X connect 38 0 3 0; -#X connect 39 0 33 0; +#X obj 541 529 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 320 529 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 104 528 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 300 (subpatch) 0; +#X array a1 64 float 0; +#X coords 0 1 63 -1 200 140 1; +#X restore 103 527 graph; +#N canvas 0 50 450 300 (subpatch) 0; +#X array a2 64 float 0; +#X coords 0 1 63 -1 200 140 1 0 0; +#X restore 319 528 graph; +#N canvas 0 50 450 300 (subpatch) 0; +#X array a3 64 float 0; +#X coords 0 1 63 -1 200 140 1; +#X restore 540 528 graph; +#X connect 0 0 7 0; +#X connect 3 0 15 1; +#X connect 7 0 11 0; +#X connect 8 0 25 0; +#X connect 10 0 11 1; +#X connect 11 0 1 0; +#X connect 11 0 1 1; +#X connect 12 0 5 0; +#X connect 12 1 6 0; +#X connect 13 0 12 0; +#X connect 14 0 15 0; +#X connect 15 0 4 0; +#X connect 18 0 28 1; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 12 1; +#X connect 25 0 10 0; +#X connect 28 0 17 0; +#X connect 33 0 17 0; +#X connect 34 0 8 0; +#X connect 35 0 3 0; +#X connect 36 0 30 0; #X restore 219 528 pd [expr~] Examples; -#N canvas 240 37 1094 690 [fexpr~] 0; +#N canvas 222 33 1094 690 [fexpr~] 0; #X text 90 365 - $x1: same as $x1[0] \, $x2: same as $x2[0] (and so on)., f 60; #X text 90 347 - $x: same as $x1[0]., f 60; #X text 90 383 - $y: same as $y1[-1]., f 60; @@ -889,14 +896,6 @@ #X array X 64 float 0; #X coords 0 20 63 -20 200 140 1 0 0; #X restore 178 423 graph; -#N canvas 0 50 450 300 (subpatch) 0; -#X array Y 64 float 0; -#X coords 0 20 63 -20 200 140 2 0 0; -#X restore 418 421 graph; -#N canvas 0 50 450 300 (subpatch) 0; -#X array Z 64 float 0; -#X coords 0 40 63 0 200 140 2 0 0; -#X restore 655 420 graph; #X obj 249 136 expr 8./3; #X text 587 289 $y1 -> $y1[-1] $y2 -> $y2[-1] $y3 -> $y3[-1], f 15; #X text 145 547 -20; @@ -922,10 +921,21 @@ #X text 294 250 <-- sets initial values of $y1[-1] \, $y2[-1] \, and $y3[-1]; #X text 446 165 <-- experiment with these parameter values. If you; #X text 98 52 bang to start -->, f 9; +#X obj 179 424 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 419 422 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 656 421 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 300 (subpatch) 0; +#X array Y 64 float 0; +#X coords 0 20 63 -20 200 140 2 0 0; +#X restore 418 421 graph; +#N canvas 0 50 450 300 (subpatch) 0; +#X array Z 64 float 0; +#X coords 0 40 63 0 200 140 2 0 0; +#X restore 655 420 graph; #X connect 3 0 0 0; #X connect 4 0 1 0; #X connect 5 0 3 0; -#X connect 6 0 31 0; +#X connect 6 0 29 0; #X connect 7 0 2 0; #X connect 8 0 9 0; #X connect 10 0 4 0; @@ -934,18 +944,18 @@ #X connect 12 0 10 0; #X connect 12 0 11 0; #X connect 12 0 6 0; -#X connect 12 0 37 0; -#X connect 12 0 19 0; +#X connect 12 0 35 0; +#X connect 12 0 17 0; #X connect 13 0 8 0; #X connect 14 0 13 0; -#X connect 15 0 35 0; -#X connect 19 0 7 0; -#X connect 31 0 32 0; -#X connect 31 0 38 0; -#X connect 31 1 33 0; -#X connect 31 2 34 0; -#X connect 35 0 31 0; -#X connect 37 0 31 0; +#X connect 15 0 33 0; +#X connect 17 0 7 0; +#X connect 29 0 30 0; +#X connect 29 0 36 0; +#X connect 29 1 31 0; +#X connect 29 2 32 0; +#X connect 33 0 29 0; +#X connect 35 0 29 0; #X restore 819 633 pd difference-equations(Lorenz); #X obj 340 155 fexpr~ $x1[0] + $y1[-1]; #X text 62 192 'n' index for '$x#' is from 0 to minus "vector size - 1"., f 58; diff --git a/doc/5.reference/fft~-help.pd b/doc/5.reference/fft~-help.pd index 6b74142ad..0b3a6bdd8 100644 --- a/doc/5.reference/fft~-help.pd +++ b/doc/5.reference/fft~-help.pd @@ -1,4 +1,4 @@ -#N canvas 561 49 711 489 12; +#N canvas 485 49 711 489 12; #X floatatom 27 176 7 0 0 0 - - - 0; #X obj 27 123 * 44100; #X floatatom 27 93 4 0 0 0 - - - 0; diff --git a/doc/5.reference/gui-boxes-help.pd b/doc/5.reference/gui-boxes-help.pd index aca7f3b9c..dc58f5596 100644 --- a/doc/5.reference/gui-boxes-help.pd +++ b/doc/5.reference/gui-boxes-help.pd @@ -102,7 +102,7 @@ #X text 70 43 By default \, when you create a box \, it'll use the font size that your patch is using. In this case it is "12". You can change the size settings in the properties. The 'auto' setting (the default) also automatically changes the font size of the atom box if you change your patch's font. In other cases \, it uses a specific font and keeps it no matter if you change the patch's font or not. Below \, we have a size of "36". The font setting also affects the label., f 56; #X restore 196 267 pd size; #X text 116 78 <-- right click for properties; -#X restore 155 534 pd properties; +#X restore 135 534 pd properties; #N canvas 570 235 459 438 properties 0; #N canvas 822 144 510 501 width 0; #X symbolatom 162 162 10 0 0 0 - - - 0; @@ -159,7 +159,7 @@ #X restore 240 277 pd size; #X text 171 77 <-- right click for properties; #X restore 800 264 pd properties; -#X text 51 534 more details:; +#X text 31 534 more details:; #X listbox 490 41 20 0 0 0 - - - 0; #X text 687 168 set only - don't output; #X msg 559 360 1 2 3 foo 5; diff --git a/doc/5.reference/nbx-help.pd b/doc/5.reference/nbx-help.pd index 76d242ad8..49d5fe256 100644 --- a/doc/5.reference/nbx-help.pd +++ b/doc/5.reference/nbx-help.pd @@ -1,4 +1,4 @@ -#N canvas 337 23 538 656 12; +#N canvas 357 23 538 656 12; #X declare -stdpath ./; #X floatatom 179 404 7 0 0 0 - - - 0; #X msg 229 318 set \$1; diff --git a/doc/5.reference/osc-format-parse-help.pd b/doc/5.reference/osc-format-parse-help.pd index c0e5f0aad..3e23bfdb6 100644 --- a/doc/5.reference/osc-format-parse-help.pd +++ b/doc/5.reference/osc-format-parse-help.pd @@ -1,4 +1,4 @@ -#N canvas 329 61 893 639 12; +#N canvas 325 36 893 639 12; #X msg 294 174 1 2 3; #X msg 315 223 set dog ferret; #X msg 301 200 set mouse banana; diff --git a/doc/5.reference/osc~-help.pd b/doc/5.reference/osc~-help.pd index d524aef9b..827940db2 100644 --- a/doc/5.reference/osc~-help.pd +++ b/doc/5.reference/osc~-help.pd @@ -8,10 +8,6 @@ #X text 62 18 - cosine wave oscillator; #X obj 184 239 metro 500; #X obj 90 401 phasor~; -#N canvas 0 50 450 250 (subpatch) 0; -#X array \$0-array 200 float 0; -#X coords 0 -1 199 1 200 100 1; -#X restore 338 224 graph; #X text 343 402 updated for Pd version 0.33; #X obj 174 276 tabwrite~ \$0-array; #X obj 133 309 output~; @@ -48,11 +44,16 @@ #X obj 149 401 tabosc4~; #X text 255 143 <-- reset phase; #X text 10 231 (note it also takes signals), f 14; -#X connect 0 0 13 0; -#X connect 6 0 10 0; -#X connect 12 0 6 0; -#X connect 13 0 10 0; -#X connect 13 0 11 0; -#X connect 14 0 13 1; -#X connect 15 0 13 1; -#X connect 17 0 18 0; +#X obj 338 225 cnv 19 198 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 250 (subpatch) 0; +#X array \$0-array 200 float 0; +#X coords 0 -1 199 1 200 100 1; +#X restore 338 224 graph; +#X connect 0 0 12 0; +#X connect 6 0 9 0; +#X connect 11 0 6 0; +#X connect 12 0 9 0; +#X connect 12 0 10 0; +#X connect 13 0 12 1; +#X connect 14 0 12 1; +#X connect 16 0 17 0; diff --git a/doc/5.reference/pack-help.pd b/doc/5.reference/pack-help.pd index de2be544c..9cd4e2677 100644 --- a/doc/5.reference/pack-help.pd +++ b/doc/5.reference/pack-help.pd @@ -1,29 +1,29 @@ -#N canvas 487 35 595 622 12; +#N canvas 487 35 590 612 12; #X floatatom 69 168 6 0 0 0 - - - 0; #X floatatom 124 253 5 0 0 0 - - - 0; #X floatatom 234 280 5 0 0 0 - - - 0; #X obj 69 364 print; #X msg 179 253 symbol cat; #X obj 28 16 pack; -#X obj 114 582 unpack; +#X obj 94 583 unpack; #X msg 82 200 1 2 dog; -#X text 352 584 updated for Pd version 0.34; -#X text 37 582 See also:; -#X obj 415 454 pack; -#X obj 415 420 t b f; -#X floatatom 415 394 6 0 0 0 - - - 0; -#X floatatom 362 394 6 0 0 0 - - - 0; -#X obj 415 507 print; -#X obj 108 531 print; -#X msg 108 400 a; -#X obj 108 473 pack s f; -#X floatatom 161 437 5 0 0 0 - - - 0; -#X text 458 419 <= trigger; +#X text 372 582 updated for Pd version 0.34; +#X text 17 582 See also:; +#X obj 425 454 pack; +#X obj 425 420 t b f; +#X floatatom 425 394 6 0 0 0 - - - 0; +#X floatatom 372 394 6 0 0 0 - - - 0; +#X obj 425 507 print; +#X obj 115 531 print; +#X msg 115 400 a; +#X obj 115 473 pack s f; +#X floatatom 168 437 5 0 0 0 - - - 0; +#X text 468 419 <= trigger; #X listbox 69 335 20 0 0 0 - - - 0; -#X listbox 108 504 20 0 0 0 - - - 0; -#X listbox 415 480 17 0 0 0 - - - 0; +#X listbox 115 504 20 0 0 0 - - - 0; +#X listbox 425 480 17 0 0 0 - - - 0; #X obj 69 306 pack 10 100 symbol float; -#X obj 169 582 trigger; +#X obj 149 583 trigger; #N canvas 545 128 559 219 pointer 0; #X text 55 22 The [pack] object can pack a pointer into a list. A pointer can be the location of a Data Structure scalar somewhere or the head of a Data Structure list. To know more about Data Structures \, how to handle pointers and see examples \, please refer to the 4.Data.Structure section of the Pd's tutorials., f 65; #X obj 93 124 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; @@ -60,7 +60,7 @@ #X restore 407 15 pd reference; #X text 501 15 <= click; #X obj 8 566 cnv 1 575 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 12 459 abbreviated arguments -->, f 13; +#X text 19 459 abbreviated arguments -->, f 13; #X obj 53 134 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X text 76 133 <-- outputs the packed elements; #X text 117 167 <-- first inlet generates output; @@ -69,7 +69,7 @@ #X text 18 56 The [pack] object outputs a concatenated list from a series of inputs. Creation arguments set the number of inlets and their type \, possible values are: float (or 'f') \, symbol (or 's') and pointer (or 'p') - see [pd pointer]. A number sets a numeric inlet and initializes the value ('float'/'f' initializes to 0)., f 79; #X text 441 135 <-- about pointers; #X text 316 328 By default \, [pack] takes two floats. You can use [trigger] to force an output on secondary inlets., f 36; -#X text 143 395 [pack] accepts 'anythings' in the left inlet, f 26; +#X text 146 395 [pack] accepts 'anythings' in the left inlet, f 26; #X text 67 16 - combine atoms into a list; #X connect 0 0 23 0; #X connect 1 0 23 1; diff --git a/doc/5.reference/pdcontrol-help.pd b/doc/5.reference/pdcontrol-help.pd index eb0bceffc..087c589fc 100644 --- a/doc/5.reference/pdcontrol-help.pd +++ b/doc/5.reference/pdcontrol-help.pd @@ -1,7 +1,7 @@ #N canvas 426 23 715 635 12; #X obj 32 13 pdcontrol; -#X obj 21 380 pdcontrol; -#X obj 21 438 print; +#X obj 24 380 pdcontrol; +#X obj 24 438 print; #X msg 259 448 isvisible; #N canvas 568 591 287 200 subpatch 0; #X obj 99 26 inlet; @@ -13,9 +13,9 @@ #X connect 1 0 3 0; #X restore 259 479 pd subpatch; #X text 109 455 open and shut the subpatch to test "isvisible" message, f 19; -#X msg 37 181 dir; +#X msg 40 181 dir; #X text 70 180 get directory this patch is in; -#X msg 50 216 dir 0 ../3.audio-examples/A00.intro.pd, f 32; +#X msg 53 216 dir 0 ../3.audio-examples/A00.intro.pd, f 32; #N canvas 761 91 541 437 args 0; #X obj 103 254 print; #X text 161 141 <= get arguments; @@ -29,10 +29,10 @@ #X connect 6 0 0 0; #X restore 362 552 pd args; #X text 216 145 open a URL in a browser; -#X msg 21 145 browse http://msp.ucsd.edu; +#X msg 24 145 browse http://msp.ucsd.edu; #X text 299 182 Optional argument to specify this patch (0) \, owning patch (1) \, its own owner (2) \, and so on \, and optionally also a filename relative to the patch's directory. (Ownership number is silently reduced if owners don't exist \, so here anything greater than zero is ignored.), f 55; #X floatatom 259 513 5 0 0 0 - - - 0; -#X symbolatom 21 409 80 0 0 0 - - - 0; +#X symbolatom 24 409 80 0 0 0 - - - 0; #X obj 8 44 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 625 14 <= click; #N canvas 603 156 718 338 reference 0; @@ -62,7 +62,7 @@ #X text 111 12 - get patch/window information or communicate to canvas.; #X obj 178 603 pd-messages; #X text 201 273 send a message to this patch window. NOTE: messages to canvases may change from one version of Pd to the next - so backward compatibility can't be guaranteed (although in practice they don't often change). WARNING: don't send a "clear" message - that will crash Pd. Other editing commands might also cause grief. See also "pd-messages" file below., f 69; -#X msg 54 299 sendcanvas loadbang; +#X msg 55 299 sendcanvas loadbang; #X text 33 59 [pdcontrol] provides some patch/window related information. It can get the patch's owning directory \, its arguments (when loaded as an abstraction) and a window's visible/invisible state. In addition \, it allows you to send messages to the canvas or the parent canvas. For last \, it also lets you open a URL in a web browser. Other functionalities may be added., f 90; #X connect 1 0 14 0; #X connect 3 0 4 0; diff --git a/doc/5.reference/phasor~-help.pd b/doc/5.reference/phasor~-help.pd index f17cf34f9..1ba409102 100644 --- a/doc/5.reference/phasor~-help.pd +++ b/doc/5.reference/phasor~-help.pd @@ -1,8 +1,4 @@ #N canvas 535 32 572 616 12; -#N canvas 0 22 450 278 (subpatch) 0; -#X array phasor 4410 float 0; -#X coords 0 1 4409 -1 200 100 1 0 0; -#X restore 82 435 graph; #X floatatom 96 211 5 -100 100 0 - - - 0; #X obj 29 16 phasor~; #X text 24 580 see also:; @@ -13,7 +9,6 @@ #X text 97 17 - phase ramp generator; #X msg 163 243 0; #X obj 115 339 metro 100; -#X obj 96 274 phasor~ 10; #X msg 129 243 0.5; #X text 32 149 The right inlet resets the phase with values from 0 to 1 (where '1' is the same as '0' and '0.5' is half the cycle)., f 69; #X text 58 525 -1; @@ -54,12 +49,18 @@ #X obj 325 415 cos~; #X text 376 392 If used in conjunction with [cos~] you have an osicllator with access to the phase., f 22; #X text 347 463 This way you can implement phase modulation \, check the help file of [cos~] for an example., f 26; -#X connect 1 0 11 0; -#X connect 9 0 11 1; -#X connect 10 0 17 0; -#X connect 11 0 17 0; -#X connect 12 0 11 1; -#X connect 18 0 34 0; -#X connect 19 0 18 0; -#X connect 21 0 10 0; -#X connect 31 0 22 0; +#X obj 96 274 phasor~ 21; +#X obj 83 436 cnv 19 198 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 278 (subpatch) 0; +#X array phasor 4410 float 0; +#X coords 0 1 4409 -1 200 100 1 0 0; +#X restore 82 435 graph; +#X connect 0 0 35 0; +#X connect 8 0 35 1; +#X connect 9 0 15 0; +#X connect 10 0 35 1; +#X connect 16 0 32 0; +#X connect 17 0 16 0; +#X connect 19 0 9 0; +#X connect 29 0 20 0; +#X connect 35 0 15 0; diff --git a/doc/5.reference/pipe-help.pd b/doc/5.reference/pipe-help.pd index a850c734c..f4c5dc7db 100644 --- a/doc/5.reference/pipe-help.pd +++ b/doc/5.reference/pipe-help.pd @@ -1,28 +1,28 @@ -#N canvas 429 24 797 702 12; -#X obj 603 526 t f f f; -#X obj 626 557 + 1; -#X obj 660 556 + 2; -#X text 40 670 see also:; +#N canvas 429 24 797 697 12; +#X obj 603 514 t f f f; +#X obj 626 545 + 1; +#X obj 660 544 + 2; +#X text 20 660 see also:; #X obj 63 312 pipe 2000; #X text 105 152 numbers to store and output later; #X msg 74 179 flush; #X msg 84 207 clear; #X text 108 347 delayed output; -#X obj 115 671 delay; -#X obj 166 671 timer; +#X obj 95 661 delay; +#X obj 146 661 timer; #X text 169 280 set delay time; -#X text 561 670 updated for Pd version 0.33; +#X text 571 660 updated for Pd version 0.33; #X obj 45 16 pipe; #X text 84 15 - message "delay line"; #X obj 63 380 print pipe; #X obj 96 240 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X symbolatom 135 586 13 0 0 0 - - - 0; +#X symbolatom 135 584 13 0 0 0 - - - 0; #X msg 136 491 symbol ahoy; #X msg 152 523 symbol cheers; -#X obj 135 617 print; +#X obj 135 615 print; #X text 140 304 a single float creation argument initializes delay time (0 by default), f 37; #X text 120 234 bang outputs the last received message after the delay time, f 30; -#X obj 592 585 pipe 5 6 7 1000; +#X obj 592 573 pipe 5 6 7 1000; #X obj 517 225 t f f b, f 12; #X msg 603 264 symbol stop; #X obj 560 264 + 1; @@ -44,11 +44,11 @@ #X floatatom 517 192 5 0 0 0 - - - 0; #X floatatom 517 362 5 0 0 0 - - - 0; #X floatatom 582 362 5 0 0 0 - - - 0; -#X floatatom 592 613 5 0 0 0 - - - 0; -#X floatatom 643 613 5 0 0 0 - - - 0; -#X floatatom 694 613 5 0 0 0 - - - 0; +#X floatatom 592 601 5 0 0 0 - - - 0; +#X floatatom 643 601 5 0 0 0 - - - 0; +#X floatatom 694 601 5 0 0 0 - - - 0; #X floatatom 63 346 5 0 0 0 - - - 0; -#X floatatom 603 500 5 0 0 0 - - - 0; +#X floatatom 603 488 5 0 0 0 - - - 0; #X obj 11 49 cnv 1 780 1 empty empty empty 8 12 0 13 #000000 #000000 0; #N canvas 747 105 570 534 reference 0; #X obj 8 52 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0; @@ -78,10 +78,10 @@ #X text 107 380 pointer - pointer delayed output (if type is a pointer).; #X restore 593 16 pd reference; #X text 687 15 <= click; -#X obj 10 653 cnv 1 780 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 10 647 cnv 1 780 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 119 178 output all scheduled messages immediately; #X text 128 208 forget all scheduled messages; -#X obj 572 525 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 572 513 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X connect 0 0 23 0; #X connect 0 1 1 0; #X connect 0 2 2 0; diff --git a/doc/5.reference/realtime-help.pd b/doc/5.reference/realtime-help.pd index d8c032ece..63f19bbd1 100644 --- a/doc/5.reference/realtime-help.pd +++ b/doc/5.reference/realtime-help.pd @@ -1,4 +1,4 @@ -#N canvas 646 69 469 351 12; +#N canvas 571 69 469 351 12; #X floatatom 119 254 8 0 0 0 - - - 0; #X text 184 253 Output is in milliseconds; #X obj 16 15 realtime; diff --git a/doc/5.reference/send-receive-help.pd b/doc/5.reference/send-receive-help.pd index f145a517c..fdb55a51c 100644 --- a/doc/5.reference/send-receive-help.pd +++ b/doc/5.reference/send-receive-help.pd @@ -141,10 +141,6 @@ #X obj 225 251 send array; #X msg 225 205 0 -1 0 1 0 -1 0 1, f 9; #X text 38 481 Note that GUIs have built in send and receive names you can set via properties (right click and check it)., f 40; -#N canvas 0 22 450 278 (subpatch) 0; -#X array array 7 float 2; -#X coords 0 1.1 7 -1.1 100 50 1 0 0; -#X restore 322 213 graph; #X msg 188 410 send y; #X msg 275 410 send y; #X floatatom 358 497 5 0 0 0 - - - 0; @@ -163,6 +159,11 @@ #X text 28 289 The [receive] object can also get messages from [value] and the other objects below via their "send" messages. Note that [value] can also get these values from these objects (except [list store] because [value] can't deal with lists).; #X obj 52 544 hsl 162 19 0 127 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; #X text 50 68 Message boxes also send messages if it starts with a semicolon:, f 32; +#X obj 323 214 cnv 19 98 48 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 278 (subpatch) 0; +#X array array 7 float 2; +#X coords 0 1.1 7 -1.1 100 50 1 0 0; +#X restore 322 213 graph; #X connect 1 0 5 0; #X connect 3 0 2 0; #X connect 4 0 1 0; @@ -171,13 +172,13 @@ #X connect 12 0 7 0; #X connect 13 0 8 0; #X connect 16 0 15 0; -#X connect 19 0 7 0; -#X connect 20 0 8 0; -#X connect 22 0 21 0; -#X connect 28 0 27 0; -#X connect 30 0 22 0; -#X connect 31 0 28 0; -#X connect 32 0 22 0; +#X connect 18 0 7 0; +#X connect 19 0 8 0; +#X connect 21 0 20 0; +#X connect 27 0 26 0; +#X connect 29 0 21 0; +#X connect 30 0 27 0; +#X connect 31 0 21 0; #X restore 124 586 pd Interaction_with_other_objects; #X text 48 533 The [send] and [receive] objects do interact with other objects in Pd. Open the subpatch below for details.; #X obj 8 627 cnv 1 870 1 empty empty empty 8 12 0 13 #000000 #000000 0; diff --git a/doc/5.reference/set-help.pd b/doc/5.reference/set-help.pd index 65641589b..fd2a4bf81 100644 --- a/doc/5.reference/set-help.pd +++ b/doc/5.reference/set-help.pd @@ -1,5 +1,5 @@ #N struct set-template float x float y symbol s; -#N canvas 609 23 568 698 12; +#N canvas 521 23 568 698 12; #X text 15 648 see also:; #X obj 123 637 append; #X obj 181 637 getsize; @@ -13,7 +13,7 @@ #X text 285 231 Remaining args are names of fields.; #X obj 220 660 pointer; #X msg 268 139 traverse pd-set-data \, next; -#N canvas 296 165 297 270 set-data 1; +#N canvas 194 157 297 270 set-data 1; #X scalar set-template 70 32 monkey \;; #X scalar set-template 143 78 fish \;; #X coords 0 270 1 269 0 0 0; diff --git a/doc/5.reference/setsize-help.pd b/doc/5.reference/setsize-help.pd index 39ea6f9ba..8e6b835bd 100644 --- a/doc/5.reference/setsize-help.pd +++ b/doc/5.reference/setsize-help.pd @@ -1,6 +1,6 @@ #N struct setsize-template float x float y array array4 array4-template; #N struct array4-template float y; -#N canvas 615 26 619 575 12; +#N canvas 581 26 619 575 12; #X text 16 534 see also:; #N canvas 393 50 510 198 setsize-template 0; #X obj 74 136 plot array4 500 1 10 15 10; diff --git a/doc/5.reference/slop~-help.pd b/doc/5.reference/slop~-help.pd index 93cb5241a..7dc46fa70 100644 --- a/doc/5.reference/slop~-help.pd +++ b/doc/5.reference/slop~-help.pd @@ -1,10 +1,5 @@ #N canvas 304 34 927 598 12; #X obj 35 122 osc~; -#N canvas 0 50 450 250 (subpatch) 0; -#X array \$0-graph 1000 float 1; -#A 0 -0.239854 -0.245719 -0.251574 -0.25742 -0.263255 -0.269079 -0.274893 -0.280696 -0.286488 -0.292268 -0.298037 -0.303793 -0.309538 -0.315271 -0.320991 -0.326698 -0.332393 -0.338074 -0.343743 -0.349397 -0.355039 -0.360666 -0.366279 -0.371878 -0.377463 -0.383033 -0.388588 -0.394128 -0.399653 -0.405162 -0.410656 -0.416135 -0.421597 -0.427043 -0.432473 -0.437887 -0.443284 -0.448664 -0.454028 -0.459374 -0.464539 -0.469444 -0.474091 -0.478482 -0.482619 -0.486504 -0.49014 -0.493527 -0.496669 -0.499566 -0.502222 -0.504637 -0.506815 -0.508757 -0.510465 -0.511941 -0.513187 -0.514205 -0.514997 -0.515566 -0.515913 -0.51604 -0.515949 -0.515643 -0.515123 -0.514391 -0.51345 -0.512302 -0.510949 -0.509392 -0.507635 -0.505678 -0.503525 -0.501178 -0.498637 -0.495907 -0.492988 -0.489883 -0.486594 -0.483123 -0.479474 -0.475646 -0.471644 -0.467469 -0.463124 -0.45861 -0.45393 -0.449086 -0.444081 -0.438916 -0.433594 -0.428118 -0.422489 -0.41671 -0.410784 -0.404712 -0.398497 -0.392141 -0.385647 -0.379017 -0.372253 -0.365358 -0.358334 -0.351183 -0.343909 -0.33661 -0.329311 -0.322012 -0.314713 -0.307414 -0.300115 -0.292816 -0.285517 -0.278218 -0.27092 -0.263621 -0.256322 -0.249023 -0.241724 -0.234425 -0.227126 -0.219827 -0.212528 -0.205229 -0.19793 -0.190631 -0.183332 -0.176033 -0.168734 -0.161435 -0.154136 -0.146837 -0.139538 -0.132239 -0.12494 -0.117641 -0.110342 -0.103043 -0.0957445 -0.0884455 -0.0811465 -0.0738476 -0.0665486 -0.0592497 -0.0519507 -0.0446517 -0.0373528 -0.0300538 -0.0227548 -0.0154559 -0.00815693 -0.000857967 0.00644099 0.01374 0.0210389 0.0283379 0.0356368 0.0429358 0.0502348 0.0575337 0.0648327 0.0721316 0.0794306 0.0867296 0.0940285 0.101327 0.108626 0.115925 0.123224 0.130523 0.137822 0.145121 0.15242 0.159719 0.167018 0.174317 0.181616 0.188915 0.196214 0.203513 0.210812 0.218111 0.22541 0.232709 0.240008 0.247307 0.254606 0.261905 0.269204 0.276502 0.283801 0.2911 0.298399 0.305698 0.312997 0.320296 0.327595 0.334894 0.342193 0.349492 0.356791 0.36409 0.371389 0.378688 0.385987 0.393286 0.400585 0.407884 0.415182 0.422481 0.42978 0.437079 0.444378 0.451677 0.458976 0.466275 0.473574 0.480873 0.488172 0.495471 0.50277 0.510069 0.517368 0.524667 0.531966 0.539265 0.546564 0.553862 0.561161 0.568403 0.575451 0.582305 0.588966 0.595432 0.601705 0.607784 0.61367 0.619362 0.624862 0.630168 0.63528 0.6402 0.644928 0.649463 0.653806 0.657957 0.661916 0.665684 0.669261 0.672647 0.675842 0.678848 0.681663 0.68429 0.686727 0.688976 0.691037 0.692911 0.694597 0.696097 0.697411 0.69854 0.699484 0.700244 0.70082 0.701213 0.701425 0.701454 0.701303 0.700972 0.700462 0.699774 0.698908 0.697865 0.696646 0.695252 0.693685 0.691944 0.690031 0.687946 0.685692 0.683268 0.680677 0.677918 0.674994 0.671904 0.668651 0.665236 0.661659 0.657922 0.654027 0.649974 0.645764 0.6414 0.636882 0.632212 0.627391 0.622421 0.617302 0.612037 0.606692 0.601337 0.595972 0.590598 0.585214 0.579821 0.574417 0.569004 0.56358 0.558147 0.552703 0.54725 0.541787 0.536313 0.53083 0.525336 0.519832 0.514318 0.508794 0.50326 0.497716 0.492162 0.486597 0.481022 0.475438 0.469843 0.464238 0.458623 0.452999 0.447364 0.441719 0.436065 0.4304 0.424726 0.419042 0.413348 0.407645 0.401932 0.39621 0.390478 0.384737 0.378986 0.373226 0.367457 0.361679 0.355891 0.350095 0.34429 0.338476 0.332654 0.326823 0.320983 0.315136 0.30928 0.303415 0.297543 0.291663 0.285775 0.279879 0.273976 0.268065 0.262147 0.256222 0.25029 0.244351 0.238405 0.232453 0.226494 0.220528 0.214557 0.208579 0.202596 0.196607 0.190612 0.184612 0.178607 0.172597 0.166582 0.160562 0.154537 0.148508 0.142475 0.136438 0.130397 0.124353 0.118305 0.112253 0.106199 0.100141 0.0940813 0.0880188 0.0819539 0.0758868 0.0698179 0.0637472 0.057675 0.0516014 0.0455267 0.0394512 0.0333749 0.0272982 0.0212211 0.015144 0.00906699 0.00299037 -0.00308567 -0.00916093 -0.0152352 -0.0213082 -0.0273798 -0.0334498 -0.0395178 -0.0455838 -0.0516474 -0.0577085 -0.0637668 -0.0698221 -0.0758742 -0.0819228 -0.0879677 -0.0940088 -0.100046 -0.106078 -0.112106 -0.118129 -0.124148 -0.130161 -0.136168 -0.14217 -0.148165 -0.154155 -0.160138 -0.166114 -0.172084 -0.178047 -0.184002 -0.18995 -0.19589 -0.201822 -0.207745 -0.213661 -0.219567 -0.225465 -0.231353 -0.237233 -0.243102 -0.248962 -0.254812 -0.260652 -0.266481 -0.2723 -0.278108 -0.283904 -0.28969 -0.295463 -0.301226 -0.306976 -0.312714 -0.318439 -0.324153 -0.329853 -0.33554 -0.341214 -0.346875 -0.352523 -0.358156 -0.363776 -0.369381 -0.374972 -0.380548 -0.38611 -0.391657 -0.397189 -0.402705 -0.408206 -0.413691 -0.419161 -0.424614 -0.430052 -0.435472 -0.440877 -0.446265 -0.451636 -0.45699 -0.46227 -0.467291 -0.472052 -0.476557 -0.480807 -0.484804 -0.48855 -0.492048 -0.495298 -0.498304 -0.501067 -0.503589 -0.505873 -0.507919 -0.509731 -0.51131 -0.512658 -0.513777 -0.514669 -0.515337 -0.515782 -0.516007 -0.516013 -0.515802 -0.515377 -0.514739 -0.513891 -0.512835 -0.511573 -0.510106 -0.508438 -0.50657 -0.504504 -0.502242 -0.499787 -0.497141 -0.494305 -0.491283 -0.488076 -0.484686 -0.481116 -0.477367 -0.473442 -0.469344 -0.465074 -0.460635 -0.456028 -0.451257 -0.446323 -0.441229 -0.435977 -0.430569 -0.425008 -0.419295 -0.413434 -0.407427 -0.401275 -0.394981 -0.388549 -0.381979 -0.375274 -0.368437 -0.36147 -0.354375 -0.347156 -0.339857 -0.332558 -0.325259 -0.31796 -0.310661 -0.303362 -0.296063 -0.288764 -0.281465 -0.274166 -0.266867 -0.259568 -0.25227 -0.244971 -0.237672 -0.230373 -0.223074 -0.215775 -0.208476 -0.201177 -0.193878 -0.186579 -0.17928 -0.171981 -0.164682 -0.157383 -0.150084 -0.142785 -0.135486 -0.128187 -0.120888 -0.113589 -0.10629 -0.0989913 -0.0916924 -0.0843934 -0.0770945 -0.0697955 -0.0624965 -0.0551976 -0.0478986 -0.0405997 -0.0333007 -0.0260017 -0.0187028 -0.0114038 -0.00410485 0.00319411 0.0104931 0.017792 0.025091 0.03239 0.0396889 0.0469879 0.0542868 0.0615858 0.0688848 0.0761837 0.0834827 0.0907816 0.0980806 0.10538 0.112679 0.119977 0.127276 0.134575 0.141874 0.149173 0.156472 0.163771 0.17107 0.178369 0.185668 0.192967 0.200266 0.207565 0.214864 0.222163 0.229462 0.236761 0.24406 0.251359 0.258658 0.265957 0.273256 0.280555 0.287854 0.295152 0.302451 0.30975 0.317049 0.324348 0.331647 0.338946 0.346245 0.353544 0.360843 0.368142 0.375441 0.38274 0.390039 0.397338 0.404637 0.411936 0.419235 0.426533 0.433832 0.441131 0.44843 0.455729 0.463028 0.470327 0.477626 0.484925 0.492224 0.499523 0.506822 0.514121 0.52142 0.528719 0.536018 0.543317 0.550616 0.557915 0.565214 0.572347 0.579287 0.586034 0.592586 0.598945 0.605111 0.611082 0.61686 0.622445 0.627837 0.633035 0.638041 0.642854 0.647475 0.651903 0.656139 0.660184 0.664036 0.667698 0.671169 0.674449 0.677538 0.680438 0.683149 0.68567 0.688003 0.690147 0.692104 0.693873 0.695456 0.696853 0.698064 0.69909 0.699931 0.700589 0.701063 0.701356 0.701466 0.701395 0.701144 0.700714 0.700104 0.699317 0.698352 0.697212 0.695896 0.694405 0.692741 0.690904 0.688896 0.686717 0.684368 0.681851 0.679167 0.676316 0.673299 0.670119 0.666776 0.66327 0.659605 0.655779 0.651796 0.647656 0.643361 0.638911 0.634308 0.629554 0.62465 0.619597 0.614397 0.609056 0.603705 0.598345 0.592975 0.587595 0.582206 0.576807 0.571398 0.565979 0.56055 0.555111 0.549662 0.544203 0.538734 0.533255 0.527766 0.522267 0.516757 0.511238 0.505708 0.500169 0.494619 0.489059 0.483489 0.477908 0.472318 0.466718 0.461108 0.455487 0.449857 0.444217 0.438567 0.432907 0.427237 0.421557 0.415868 0.410169 0.40446 0.398742 0.393014 0.387277 0.38153 0.375775 0.37001 0.364235 0.358452 0.35266 0.346859 0.341049 0.33523 0.329403 0.323568 0.317723 0.311871 0.30601 0.300142 0.294265 0.288381 0.282488 0.276588 0.270681 0.264766 0.258844 0.252915 0.246979 0.241036 0.235087 0.229131 0.223168 0.2172 0.211225 0.205244 0.199257 0.193265 0.187268 0.181265 0.175257 0.169244 0.163226 0.157203 0.151176 0.145145 0.13911 0.133071 0.127028 0.120981 0.114931 0.108878 0.102822 0.0967633 0.0907019 0.084638 0.0785719 0.0725038 0.0664338 0.0603623 0.0542893 0.0482151 0.04214 0.036064 0.0299874 0.0239105 0.0178334 0.0117564 0.00567956 -0.000396765 -0.0064724 -0.0125471 -0.0186207 -0.024693 -0.0307636 -0.0368325 -0.0428995 -0.0489641 -0.0550263 -0.0610859 -0.0671425 -0.073196 -0.0792462 -0.0852928 -0.0913357 -0.0973744 -0.103409 -0.109439 -0.115464 -0.121485 -0.1275 -0.13351 -0.139514 -0.145512 -0.151505 -0.157491 -0.16347 -0.169443 -0.175409 -0.181367 -0.187318 -0.193262 -0.199197 -0.205125 -0.211044 -0.216954 -0.222856 -0.228748 -0.234632 -0.240506 -0.24637 -0.252224 -0.258069 -0.263903 -0.269726 -0.275539 -0.28134 -0.287131 -0.29291 -0.298677 -0.304432 -0.310176 -0.315907 -0.321626 -0.327332 -0.333025 -0.338705 -0.344372 -0.350025 -0.355665 -0.36129 -0.366902 -0.372499 -0.378082 -0.383651 -0.389204 -0.394742 -0.400266 -0.405774 -0.411266 -0.416742 -0.422203 -0.427647 -0.433076 -0.438487 -0.443883 -0.449261 -0.454623 -0.459967 -0.465103 -0.469979 -0.474597 -0.47896 -0.483069 -0.486926 -0.490534 -0.493894 -0.497008 -0.499878 -0.502507 -0.504896 -0.507048 -0.508963 -0.510645 -0.512095 -0.513316 -0.514309 -0.515076 -0.51562 -0.515942 -0.516045 -0.51593 -0.515599 -0.515056 -0.514301 -0.513337 -0.512166 -0.51079 -0.509211 -0.507431 -0.505453 -0.503278 -0.500908 -0.498347 -0.495595 -0.492655 -0.48953 -0.486221 -0.48273 -0.47906 -0.475214 -0.471192 -0.466998 -0.462634 -0.458101 -0.453403 -0.448541 -0.443518 -0.438335 -0.432996 -0.427503 -0.421857 -0.416062 -0.410119 -0.404031 -0.3978 -0.391429 -0.384919 -0.378274 -0.371496 -0.364586 -0.357548 -0.350384 -0.343095 -0.335797 -0.328498 -0.321199 -0.3139 -0.306601 -0.299302; -#X coords 0 1 999 -1 500 140 1 0 0; -#X restore 404 384 graph; #X floatatom 35 96 5 0 0 0 - - - 0; #X obj 81 478 tabwrite~ \$0-graph; #X obj 107 447 metro 500; @@ -50,10 +45,6 @@ #X obj 88 99 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; #X obj 88 126 metro 500; #X obj 88 156 s \$0-testpulse; -#N canvas 0 50 450 250 (subpatch) 0; -#X array \$0-test-in 20000 float 0; -#X coords 0 1 19999 -1 500 140 1 0 0; -#X restore 33 240 graph; #N canvas 323 324 347 253 resize 0; #X obj 83 52 inlet; #X msg 83 79 resize \$1; @@ -65,67 +56,54 @@ #X connect 1 0 3 0; #X connect 1 0 4 0; #X restore 607 610 pd resize; -#X msg 623 579 20000; -#N canvas 0 50 450 250 (subpatch) 0; -#X array \$0-slop-out 20000 float 0; -#X coords 0 1 19999 0 500 70 1 0 0; -#X restore 33 410 graph; -#N canvas 0 50 450 250 (subpatch) 0; -#X array \$0-compander-out 20000 float 0; -#X coords 0 1 19999 -1 500 140 1 0 0; -#X restore 33 511 graph; -#N canvas 0 50 450 250 (subpatch) 0; -#X array \$0-dynamic-curve 102 float 1; -#A 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 100; -#X coords 0 100 101 0 202 200 1 0 0; -#X restore 672 110 graph; -#N canvas 455 23 698 706 parameters 0; -#X obj 161 22 inlet; -#X obj 29 60 r \$0-limit; -#X obj 37 83 r \$0-knee; -#X obj 45 106 r \$0-boost; -#X obj 61 150 r \$0-thresh; -#X obj 54 128 r \$0-ratio; -#X obj 29 186 t b b; -#X obj 29 236 until; -#X obj 87 263 + 1; -#X msg 78 233 0; -#X obj 96 677 tabwrite \$0-dynamic-curve, f 52; -#X obj 472 455 moses; -#X obj 543 405 r \$0-thresh; -#X obj 605 442 r \$0-ratio; -#X obj 605 469 f; -#X obj 605 494 / 100; -#X obj 96 623 +; -#X msg 504 481 0; -#X obj 482 548 expr ($f1-$f2)*$f3; -#X obj 96 648 max 0; -#X obj 605 519 - 1; -#X obj 29 346 +; -#X obj 47 322 r \$0-boost; -#X obj 137 322 r \$0-limit; -#X obj 119 355 f; -#X obj 137 380 -; -#X obj 29 372 t f b; -#X obj 271 322 r \$0-knee; -#X obj 182 448 +; -#X obj 61 422 -; -#X obj 29 449 moses; -#X obj 96 479 moses; -#X obj 123 543 b; -#X obj 359 476 r \$0-limit; -#X obj 143 576 f; -#X obj 96 511 expr $f4 - ($f2-$f1)*($f2-$f1)/(4*$f3); -#X obj 51 490 +; -#X msg 29 211 102; -#X obj 271 348 f; -#X obj 271 373 / 2; -#X obj 155 355 r \$0-boost; -#X obj 86 447 r \$0-boost; -#X obj 29 294 trigger float float, f 61; -#X obj 161 542 r \$0-limit; -#X obj 29 261 float; -#X obj 161 57 unpack f f f f f f; +#X msg 624 579 20000; +#N canvas 455 23 698 690 parameters 0; +#X obj 191 14 inlet; +#X obj 29 32 r \$0-limit; +#X obj 37 55 r \$0-knee; +#X obj 45 78 r \$0-boost; +#X obj 61 122 r \$0-thresh; +#X obj 54 100 r \$0-ratio; +#X obj 29 158 t b b; +#X obj 29 208 until; +#X obj 87 235 + 1; +#X msg 78 205 0; +#X obj 96 649 tabwrite \$0-dynamic-curve, f 52; +#X obj 472 427 moses; +#X obj 543 377 r \$0-thresh; +#X obj 605 414 r \$0-ratio; +#X obj 605 441 f; +#X obj 605 466 / 100; +#X obj 96 595 +; +#X msg 504 453 0; +#X obj 482 520 expr ($f1-$f2)*$f3; +#X obj 96 620 max 0; +#X obj 605 491 - 1; +#X obj 29 318 +; +#X obj 47 294 r \$0-boost; +#X obj 137 294 r \$0-limit; +#X obj 119 327 f; +#X obj 137 352 -; +#X obj 29 344 t f b; +#X obj 271 294 r \$0-knee; +#X obj 182 420 +; +#X obj 61 394 -; +#X obj 29 421 moses; +#X obj 96 451 moses; +#X obj 123 515 b; +#X obj 359 448 r \$0-limit; +#X obj 143 548 f; +#X obj 96 483 expr $f4 - ($f2-$f1)*($f2-$f1)/(4*$f3); +#X obj 51 462 +; +#X msg 29 183 102; +#X obj 271 320 f; +#X obj 271 345 / 2; +#X obj 155 327 r \$0-boost; +#X obj 86 419 r \$0-boost; +#X obj 29 266 trigger float float, f 61; +#X obj 161 514 r \$0-limit; +#X obj 29 233 float; +#X obj 191 49 unpack f f f f f f; #N canvas 416 159 334 253 set-speed 0; #X msg 115 81 set \$1; #X obj 95 43 inlet; @@ -134,7 +112,7 @@ #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 0 3 0; -#X restore 284 84 pd set-speed; +#X restore 314 76 pd set-speed; #N canvas 416 159 334 253 set-thresh 0; #X msg 115 81 set \$1; #X obj 95 43 inlet; @@ -143,7 +121,7 @@ #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 0 3 0; -#X restore 259 111 pd set-thresh; +#X restore 289 103 pd set-thresh; #N canvas 416 159 334 253 set-ratio 0; #X msg 115 81 set \$1; #X obj 95 43 inlet; @@ -152,7 +130,7 @@ #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 0 3 0; -#X restore 234 137 pd set-ratio; +#X restore 264 129 pd set-ratio; #N canvas 416 159 334 253 set-boost 0; #X msg 115 81 set \$1; #X obj 95 43 inlet; @@ -161,7 +139,7 @@ #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 0 3 0; -#X restore 210 164 pd set-boost; +#X restore 240 156 pd set-boost; #N canvas 416 159 334 253 set-knee 0; #X msg 115 81 set \$1; #X obj 95 43 inlet; @@ -170,7 +148,7 @@ #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 0 3 0; -#X restore 185 188 pd set-knee; +#X restore 215 180 pd set-knee; #N canvas 416 159 334 253 set-limit 0; #X msg 115 81 set \$1; #X obj 95 43 inlet; @@ -179,7 +157,7 @@ #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 1 0 3 0; -#X restore 161 212 pd set-limit; +#X restore 191 204 pd set-limit; #X connect 0 0 45 0; #X connect 1 0 6 0; #X connect 2 0 6 0; @@ -244,13 +222,13 @@ #X connect 45 4 47 0; #X connect 45 5 46 0; #X restore 719 530 pd parameters; -#X floatatom 618 340 3 0 100 0 limit \$0-limit-set \$0-limit 0; -#X floatatom 618 361 3 0 20 0 knee \$0-knee-set \$0-knee 0; -#X floatatom 618 382 3 0 50 0 boost \$0-boost-set \$0-boost 0; -#X floatatom 618 403 3 0 200 0 ratio \$0-ratio-set \$0-ratio 0; -#X floatatom 618 425 3 0 100 0 thresh \$0-thresh-set \$0-thresh 0; -#X floatatom 618 446 3 0 200 0 speed \$0-speed-set \$0-speed 0; -#N canvas 298 103 615 643 run-compander 0; +#X floatatom 618 340 4 0 100 0 limit \$0-limit-set \$0-limit 0; +#X floatatom 618 361 4 0 20 0 knee \$0-knee-set \$0-knee 0; +#X floatatom 618 382 4 0 50 0 boost \$0-boost-set \$0-boost 0; +#X floatatom 618 403 4 0 200 0 ratio \$0-ratio-set \$0-ratio 0; +#X floatatom 618 425 4 0 100 0 thresh \$0-thresh-set \$0-thresh 0; +#X floatatom 618 446 4 0 200 0 speed \$0-speed-set \$0-speed 0; +#N canvas 403 113 573 630 run-compander 0; #X obj 47 20 inlet~; #X obj 83 174 slop~ 0 0 0 0 1e+09; #X obj 161 82 r \$0-speed; @@ -288,8 +266,8 @@ #X connect 13 0 14 0; #X connect 13 0 15 0; #X restore 221 149 pd run-compander; -#X msg 615 551 2000; -#X msg 606 525 300; +#X msg 616 551 2000; +#X msg 607 525 300; #X msg 730 424 100 0 0 200 100 100; #X msg 710 368 100 0 0 100 0 50; #X text 831 367 no change; @@ -340,69 +318,94 @@ #X msg 458 152 \; pd dsp \$1; #X obj 458 117 set-dsp-tgl; #X text 489 121 DSP on/off; -#X connect 0 0 17 0; -#X connect 0 0 30 0; +#X obj 34 241 cnv 19 498 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 34 411 cnv 19 498 68 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 250 (subpatch) 0; +#X array \$0-test-in 20000 float 2; +#X coords 0 1 20000 -1 500 140 1 0 0; +#X restore 33 240 graph; +#N canvas 0 50 450 250 (subpatch) 0; +#X array \$0-slop-out 20000 float 2; +#X coords 0 1 20000 0 500 70 1 0 0; +#X restore 33 410 graph; +#X obj 34 512 cnv 19 498 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 250 (subpatch) 0; +#X array \$0-compander-out 20000 float 2; +#X coords 0 1 20000 -1 500 140 1 0 0; +#X restore 33 511 graph; +#X obj 673 111 cnv 19 198 198 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 250 (subpatch) 0; +#X array \$0-dynamic-curve 102 float 0; +#X coords 0 100 101 0 200 200 1 0 0; +#X restore 672 110 graph; +#X connect 0 0 13 0; +#X connect 0 0 26 0; #X connect 1 0 2 0; #X connect 2 0 3 0; -#X connect 6 0 5 0; -#X connect 17 0 31 0; -#X connect 18 0 5 0; -#X connect 19 0 5 0; -#X connect 20 0 10 0; -#X connect 21 0 10 0; -#X connect 27 0 10 0; -#X connect 28 0 10 0; -#X connect 29 0 10 0; -#X connect 33 0 21 0; -#X connect 36 0 35 0; +#X connect 5 0 4 0; +#X connect 13 0 27 0; +#X connect 14 0 4 0; +#X connect 15 0 4 0; +#X connect 16 0 6 0; +#X connect 17 0 6 0; +#X connect 23 0 6 0; +#X connect 24 0 6 0; +#X connect 25 0 6 0; +#X connect 29 0 17 0; +#X connect 32 0 31 0; #X restore 704 301 pd compander-limiter; -#N canvas 443 136 904 478 slew-limiter 0; -#X floatatom 106 123 5 0 1000 0 - - - 0; -#X obj 106 147 t f b; -#X obj 138 176 samplerate~; -#X obj 106 176 /; -#X obj 80 381 metro 500; +#N canvas 392 78 904 478 slew-limiter 0; +#X floatatom 134 96 5 0 1000 0 - - - 0; +#X obj 134 120 t f b; +#X obj 166 149 samplerate~; +#X obj 134 149 /; +#X obj 78 378 metro 500; #X obj 54 412 tabwrite~ \$0-slew-graph; +#X floatatom 214 217 5 0 1000 0 - - - 0; +#X obj 214 241 t f b; +#X obj 246 269 samplerate~; +#X obj 214 270 /; +#X obj 54 201 osc~ 100; +#X text 437 234 See the HTML documentation (link on main page of this patch) for details.; +#X text 437 164 Here the maximum slope of the 100-Hz. sinusoid is 200pi \, about 628.3. Setting upward or downward slew limits below that will replace the waveform with straight line segments on the way up and/or down., f 60; +#X text 182 95 max downward slope; +#X text 262 216 max upward slope; +#X text 437 31 The slew limiter is a filter whose cutoff frequency is infinite (so that the output follows the input exactly) unless the input varies from the previous output by more than the highest slope we allow (the slew limit) times the sample period (i.e. \, the maximum variation allowed over the space of a sample). This limit is therefore in units of amplitude per sample. The number boxes specify amplitude change per second \, which we divide by the sample rate to convert to the units needed by [slop~]., f 60; +#X obj 78 336 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 102 335 <- start metronome to graph output, f 18; +#X text 83 27 Using [slop~] to make a slew limiter; +#X msg 261 388 \; pd dsp \$1; +#X obj 261 353 set-dsp-tgl; +#X text 291 357 DSP on/off; +#X obj 393 307 cnv 19 498 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; #N canvas 0 50 450 250 (subpatch) 0; #X array \$0-slew-graph 1000 float 0; #X coords 0 1 999 -1 500 140 1 0 0; #X restore 392 306 graph; -#X floatatom 158 211 5 0 1000 0 - - - 0; -#X obj 158 235 t f b; -#X obj 190 263 samplerate~; -#X obj 158 264 /; -#X obj 54 302 slop~ 1e+09 0 0 0 0; -#X obj 54 81 osc~ 100; -#X text 437 234 See the HTML documentation (link on main page of this patch) for details.; -#X text 437 164 Here the maximum slope of the 100-Hz. sinusoid is 200pi \, about 628.3. Setting upward or downward slew limits below that will replace the waveform with straight line segments on the way up and/or down., f 60; -#X text 154 122 max downward slope; -#X text 206 210 max upward slope; -#X text 437 31 The slew limiter is a filter whose cutoff frequency is infinite (so that the output follows the input exactly) unless the input varies from the previous output by more than the highest slope we allow (the slew limit) times the sample period (i.e. \, the maximum variation allowed over the space of a sample). This limit is therefore in units of amplitude per sample. The number boxes specify amplitude change per second \, which we divide by the sample rate to convert to the units needed by [slop~]., f 60; -#X obj 80 336 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 104 335 <- start metronome to graph output, f 18; -#X text 55 39 Using [slop~] to make a slew limiter; -#X msg 265 374 \; pd dsp \$1; -#X obj 265 339 set-dsp-tgl; -#X text 296 343 DSP on/off; +#X obj 137 69 hsl 162 19 628.3 100 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 217 191 hsl 162 19 628.3 100 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 54 302 slop~ 1e+09 0.0142 0 0.0142 0; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 1 1 2 0; #X connect 2 0 3 1; -#X connect 3 0 11 2; +#X connect 3 0 26 2; #X connect 4 0 5 0; -#X connect 7 0 8 0; -#X connect 8 0 10 0; -#X connect 8 1 9 0; -#X connect 9 0 10 1; -#X connect 10 0 11 4; -#X connect 11 0 5 0; -#X connect 12 0 11 0; -#X connect 18 0 4 0; -#X connect 22 0 21 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 7 1 8 0; +#X connect 8 0 9 1; +#X connect 9 0 26 4; +#X connect 10 0 26 0; +#X connect 16 0 4 0; +#X connect 20 0 19 0; +#X connect 24 0 0 0; +#X connect 25 0 6 0; +#X connect 26 0 5 0; #X restore 704 249 pd slew-limiter; -#N canvas 535 70 763 564 peak-meter 0; +#N canvas 420 78 763 564 peak-meter 0; #X floatatom 217 132 5 0 50 0 - \$0-decay-speed-init - 0; -#N canvas 392 300 639 450 generate-test 0; +#N canvas 422 246 639 450 generate-test 0; #X obj 45 196 osc~ 440; #X msg 98 166 -0.25; #X obj 165 239 *~; @@ -501,10 +504,6 @@ #X floatatom 132 194 5 0 100 0 - - - 0; #X obj 95 354 metro 500; #X obj 95 308 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#N canvas 0 50 450 250 (subpatch) 0; -#X array \$0-jitter-graph 1000 float 0; -#X coords 0 1 999 -1 500 140 1 0 0; -#X restore 305 262 graph; #X obj 69 70 osc~ 100; #X obj 69 385 tabwrite~ \$0-jitter-graph; #X obj 69 101 clip~ -0.3 0.3; @@ -521,18 +520,23 @@ #X msg 281 108 \; pd dsp \$1; #X obj 281 73 set-dsp-tgl; #X text 312 77 DSP on/off; -#X connect 0 0 11 0; -#X connect 1 0 5 0; +#X obj 306 263 cnv 19 498 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 250 (subpatch) 0; +#X array \$0-jitter-graph 1000 float 0; +#X coords 0 1 999 -1 500 140 1 0 0; +#X restore 305 262 graph; +#X connect 0 0 10 0; +#X connect 1 0 4 0; #X connect 2 0 1 0; -#X connect 4 0 6 0; -#X connect 6 0 9 0; -#X connect 7 0 8 0; -#X connect 8 0 9 1; -#X connect 9 0 10 0; -#X connect 10 0 5 0; -#X connect 11 0 10 2; -#X connect 11 0 10 4; -#X connect 18 0 17 0; +#X connect 3 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 7 0; +#X connect 7 0 8 1; +#X connect 8 0 9 0; +#X connect 9 0 4 0; +#X connect 10 0 9 2; +#X connect 10 0 9 4; +#X connect 17 0 16 0; #X restore 704 329 pd jitter-remover; #X text 699 223 Examples:; #X text 22 565 see also:; @@ -585,23 +589,29 @@ #X text 518 106 The [slop~] object is a low-pass filter whose frequency response (i.e. \, reaction speed) can vary according to the filter's state. It can be useful for slew limiting \, dynamics processing (companders/limiters/noise gates) \, and soft saturation. Examples below are explained in the HTML reference (linked above)., f 55; #X text 133 399 <- start metronome to graph output, f 18; #X text 459 14 <- Open HTML reference; -#X text 704 564 updated for Pd version 0.5; #X text 84 43 - slew-limiting / low-pass filter; #X msg 252 489 \; pd dsp \$1; #X obj 252 454 set-dsp-tgl; #X text 283 458 DSP on/off; -#X connect 0 0 12 0; -#X connect 2 0 0 0; +#X obj 405 385 cnv 19 498 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 250 (subpatch) 0; +#X array \$0-graph 1000 float 1; +#A 0 -0.239854 -0.245719 -0.251574 -0.25742 -0.263255 -0.269079 -0.274893 -0.280696 -0.286488 -0.292268 -0.298037 -0.303793 -0.309538 -0.315271 -0.320991 -0.326698 -0.332393 -0.338074 -0.343743 -0.349397 -0.355039 -0.360666 -0.366279 -0.371878 -0.377463 -0.383033 -0.388588 -0.394128 -0.399653 -0.405162 -0.410656 -0.416135 -0.421597 -0.427043 -0.432473 -0.437887 -0.443284 -0.448664 -0.454028 -0.459374 -0.464539 -0.469444 -0.474091 -0.478482 -0.482619 -0.486504 -0.49014 -0.493527 -0.496669 -0.499566 -0.502222 -0.504637 -0.506815 -0.508757 -0.510465 -0.511941 -0.513187 -0.514205 -0.514997 -0.515566 -0.515913 -0.51604 -0.515949 -0.515643 -0.515123 -0.514391 -0.51345 -0.512302 -0.510949 -0.509392 -0.507635 -0.505678 -0.503525 -0.501178 -0.498637 -0.495907 -0.492988 -0.489883 -0.486594 -0.483123 -0.479474 -0.475646 -0.471644 -0.467469 -0.463124 -0.45861 -0.45393 -0.449086 -0.444081 -0.438916 -0.433594 -0.428118 -0.422489 -0.41671 -0.410784 -0.404712 -0.398497 -0.392141 -0.385647 -0.379017 -0.372253 -0.365358 -0.358334 -0.351183 -0.343909 -0.33661 -0.329311 -0.322012 -0.314713 -0.307414 -0.300115 -0.292816 -0.285517 -0.278218 -0.27092 -0.263621 -0.256322 -0.249023 -0.241724 -0.234425 -0.227126 -0.219827 -0.212528 -0.205229 -0.19793 -0.190631 -0.183332 -0.176033 -0.168734 -0.161435 -0.154136 -0.146837 -0.139538 -0.132239 -0.12494 -0.117641 -0.110342 -0.103043 -0.0957445 -0.0884455 -0.0811465 -0.0738476 -0.0665486 -0.0592497 -0.0519507 -0.0446517 -0.0373528 -0.0300538 -0.0227548 -0.0154559 -0.00815693 -0.000857967 0.00644099 0.01374 0.0210389 0.0283379 0.0356368 0.0429358 0.0502348 0.0575337 0.0648327 0.0721316 0.0794306 0.0867296 0.0940285 0.101327 0.108626 0.115925 0.123224 0.130523 0.137822 0.145121 0.15242 0.159719 0.167018 0.174317 0.181616 0.188915 0.196214 0.203513 0.210812 0.218111 0.22541 0.232709 0.240008 0.247307 0.254606 0.261905 0.269204 0.276502 0.283801 0.2911 0.298399 0.305698 0.312997 0.320296 0.327595 0.334894 0.342193 0.349492 0.356791 0.36409 0.371389 0.378688 0.385987 0.393286 0.400585 0.407884 0.415182 0.422481 0.42978 0.437079 0.444378 0.451677 0.458976 0.466275 0.473574 0.480873 0.488172 0.495471 0.50277 0.510069 0.517368 0.524667 0.531966 0.539265 0.546564 0.553862 0.561161 0.568403 0.575451 0.582305 0.588966 0.595432 0.601705 0.607784 0.61367 0.619362 0.624862 0.630168 0.63528 0.6402 0.644928 0.649463 0.653806 0.657957 0.661916 0.665684 0.669261 0.672647 0.675842 0.678848 0.681663 0.68429 0.686727 0.688976 0.691037 0.692911 0.694597 0.696097 0.697411 0.69854 0.699484 0.700244 0.70082 0.701213 0.701425 0.701454 0.701303 0.700972 0.700462 0.699774 0.698908 0.697865 0.696646 0.695252 0.693685 0.691944 0.690031 0.687946 0.685692 0.683268 0.680677 0.677918 0.674994 0.671904 0.668651 0.665236 0.661659 0.657922 0.654027 0.649974 0.645764 0.6414 0.636882 0.632212 0.627391 0.622421 0.617302 0.612037 0.606692 0.601337 0.595972 0.590598 0.585214 0.579821 0.574417 0.569004 0.56358 0.558147 0.552703 0.54725 0.541787 0.536313 0.53083 0.525336 0.519832 0.514318 0.508794 0.50326 0.497716 0.492162 0.486597 0.481022 0.475438 0.469843 0.464238 0.458623 0.452999 0.447364 0.441719 0.436065 0.4304 0.424726 0.419042 0.413348 0.407645 0.401932 0.39621 0.390478 0.384737 0.378986 0.373226 0.367457 0.361679 0.355891 0.350095 0.34429 0.338476 0.332654 0.326823 0.320983 0.315136 0.30928 0.303415 0.297543 0.291663 0.285775 0.279879 0.273976 0.268065 0.262147 0.256222 0.25029 0.244351 0.238405 0.232453 0.226494 0.220528 0.214557 0.208579 0.202596 0.196607 0.190612 0.184612 0.178607 0.172597 0.166582 0.160562 0.154537 0.148508 0.142475 0.136438 0.130397 0.124353 0.118305 0.112253 0.106199 0.100141 0.0940813 0.0880188 0.0819539 0.0758868 0.0698179 0.0637472 0.057675 0.0516014 0.0455267 0.0394512 0.0333749 0.0272982 0.0212211 0.015144 0.00906699 0.00299037 -0.00308567 -0.00916093 -0.0152352 -0.0213082 -0.0273798 -0.0334498 -0.0395178 -0.0455838 -0.0516474 -0.0577085 -0.0637668 -0.0698221 -0.0758742 -0.0819228 -0.0879677 -0.0940088 -0.100046 -0.106078 -0.112106 -0.118129 -0.124148 -0.130161 -0.136168 -0.14217 -0.148165 -0.154155 -0.160138 -0.166114 -0.172084 -0.178047 -0.184002 -0.18995 -0.19589 -0.201822 -0.207745 -0.213661 -0.219567 -0.225465 -0.231353 -0.237233 -0.243102 -0.248962 -0.254812 -0.260652 -0.266481 -0.2723 -0.278108 -0.283904 -0.28969 -0.295463 -0.301226 -0.306976 -0.312714 -0.318439 -0.324153 -0.329853 -0.33554 -0.341214 -0.346875 -0.352523 -0.358156 -0.363776 -0.369381 -0.374972 -0.380548 -0.38611 -0.391657 -0.397189 -0.402705 -0.408206 -0.413691 -0.419161 -0.424614 -0.430052 -0.435472 -0.440877 -0.446265 -0.451636 -0.45699 -0.46227 -0.467291 -0.472052 -0.476557 -0.480807 -0.484804 -0.48855 -0.492048 -0.495298 -0.498304 -0.501067 -0.503589 -0.505873 -0.507919 -0.509731 -0.51131 -0.512658 -0.513777 -0.514669 -0.515337 -0.515782 -0.516007 -0.516013 -0.515802 -0.515377 -0.514739 -0.513891 -0.512835 -0.511573 -0.510106 -0.508438 -0.50657 -0.504504 -0.502242 -0.499787 -0.497141 -0.494305 -0.491283 -0.488076 -0.484686 -0.481116 -0.477367 -0.473442 -0.469344 -0.465074 -0.460635 -0.456028 -0.451257 -0.446323 -0.441229 -0.435977 -0.430569 -0.425008 -0.419295 -0.413434 -0.407427 -0.401275 -0.394981 -0.388549 -0.381979 -0.375274 -0.368437 -0.36147 -0.354375 -0.347156 -0.339857 -0.332558 -0.325259 -0.31796 -0.310661 -0.303362 -0.296063 -0.288764 -0.281465 -0.274166 -0.266867 -0.259568 -0.25227 -0.244971 -0.237672 -0.230373 -0.223074 -0.215775 -0.208476 -0.201177 -0.193878 -0.186579 -0.17928 -0.171981 -0.164682 -0.157383 -0.150084 -0.142785 -0.135486 -0.128187 -0.120888 -0.113589 -0.10629 -0.0989913 -0.0916924 -0.0843934 -0.0770945 -0.0697955 -0.0624965 -0.0551976 -0.0478986 -0.0405997 -0.0333007 -0.0260017 -0.0187028 -0.0114038 -0.00410485 0.00319411 0.0104931 0.017792 0.025091 0.03239 0.0396889 0.0469879 0.0542868 0.0615858 0.0688848 0.0761837 0.0834827 0.0907816 0.0980806 0.10538 0.112679 0.119977 0.127276 0.134575 0.141874 0.149173 0.156472 0.163771 0.17107 0.178369 0.185668 0.192967 0.200266 0.207565 0.214864 0.222163 0.229462 0.236761 0.24406 0.251359 0.258658 0.265957 0.273256 0.280555 0.287854 0.295152 0.302451 0.30975 0.317049 0.324348 0.331647 0.338946 0.346245 0.353544 0.360843 0.368142 0.375441 0.38274 0.390039 0.397338 0.404637 0.411936 0.419235 0.426533 0.433832 0.441131 0.44843 0.455729 0.463028 0.470327 0.477626 0.484925 0.492224 0.499523 0.506822 0.514121 0.52142 0.528719 0.536018 0.543317 0.550616 0.557915 0.565214 0.572347 0.579287 0.586034 0.592586 0.598945 0.605111 0.611082 0.61686 0.622445 0.627837 0.633035 0.638041 0.642854 0.647475 0.651903 0.656139 0.660184 0.664036 0.667698 0.671169 0.674449 0.677538 0.680438 0.683149 0.68567 0.688003 0.690147 0.692104 0.693873 0.695456 0.696853 0.698064 0.69909 0.699931 0.700589 0.701063 0.701356 0.701466 0.701395 0.701144 0.700714 0.700104 0.699317 0.698352 0.697212 0.695896 0.694405 0.692741 0.690904 0.688896 0.686717 0.684368 0.681851 0.679167 0.676316 0.673299 0.670119 0.666776 0.66327 0.659605 0.655779 0.651796 0.647656 0.643361 0.638911 0.634308 0.629554 0.62465 0.619597 0.614397 0.609056 0.603705 0.598345 0.592975 0.587595 0.582206 0.576807 0.571398 0.565979 0.56055 0.555111 0.549662 0.544203 0.538734 0.533255 0.527766 0.522267 0.516757 0.511238 0.505708 0.500169 0.494619 0.489059 0.483489 0.477908 0.472318 0.466718 0.461108 0.455487 0.449857 0.444217 0.438567 0.432907 0.427237 0.421557 0.415868 0.410169 0.40446 0.398742 0.393014 0.387277 0.38153 0.375775 0.37001 0.364235 0.358452 0.35266 0.346859 0.341049 0.33523 0.329403 0.323568 0.317723 0.311871 0.30601 0.300142 0.294265 0.288381 0.282488 0.276588 0.270681 0.264766 0.258844 0.252915 0.246979 0.241036 0.235087 0.229131 0.223168 0.2172 0.211225 0.205244 0.199257 0.193265 0.187268 0.181265 0.175257 0.169244 0.163226 0.157203 0.151176 0.145145 0.13911 0.133071 0.127028 0.120981 0.114931 0.108878 0.102822 0.0967633 0.0907019 0.084638 0.0785719 0.0725038 0.0664338 0.0603623 0.0542893 0.0482151 0.04214 0.036064 0.0299874 0.0239105 0.0178334 0.0117564 0.00567956 -0.000396765 -0.0064724 -0.0125471 -0.0186207 -0.024693 -0.0307636 -0.0368325 -0.0428995 -0.0489641 -0.0550263 -0.0610859 -0.0671425 -0.073196 -0.0792462 -0.0852928 -0.0913357 -0.0973744 -0.103409 -0.109439 -0.115464 -0.121485 -0.1275 -0.13351 -0.139514 -0.145512 -0.151505 -0.157491 -0.16347 -0.169443 -0.175409 -0.181367 -0.187318 -0.193262 -0.199197 -0.205125 -0.211044 -0.216954 -0.222856 -0.228748 -0.234632 -0.240506 -0.24637 -0.252224 -0.258069 -0.263903 -0.269726 -0.275539 -0.28134 -0.287131 -0.29291 -0.298677 -0.304432 -0.310176 -0.315907 -0.321626 -0.327332 -0.333025 -0.338705 -0.344372 -0.350025 -0.355665 -0.36129 -0.366902 -0.372499 -0.378082 -0.383651 -0.389204 -0.394742 -0.400266 -0.405774 -0.411266 -0.416742 -0.422203 -0.427647 -0.433076 -0.438487 -0.443883 -0.449261 -0.454623 -0.459967 -0.465103 -0.469979 -0.474597 -0.47896 -0.483069 -0.486926 -0.490534 -0.493894 -0.497008 -0.499878 -0.502507 -0.504896 -0.507048 -0.508963 -0.510645 -0.512095 -0.513316 -0.514309 -0.515076 -0.51562 -0.515942 -0.516045 -0.51593 -0.515599 -0.515056 -0.514301 -0.513337 -0.512166 -0.51079 -0.509211 -0.507431 -0.505453 -0.503278 -0.500908 -0.498347 -0.495595 -0.492655 -0.48953 -0.486221 -0.48273 -0.47906 -0.475214 -0.471192 -0.466998 -0.462634 -0.458101 -0.453403 -0.448541 -0.443518 -0.438335 -0.432996 -0.427503 -0.421857 -0.416062 -0.410119 -0.404031 -0.3978 -0.391429 -0.384919 -0.378274 -0.371496 -0.364586 -0.357548 -0.350384 -0.343095 -0.335797 -0.328498 -0.321199 -0.3139 -0.306601 -0.299302; +#X coords 0 1 999 -1 500 140 1 0 0; +#X restore 404 384 graph; +#X text 686 564 updated for Pd version 0.50-0; +#X connect 0 0 11 0; +#X connect 1 0 0 0; +#X connect 3 0 2 0; #X connect 4 0 3 0; -#X connect 5 0 4 0; -#X connect 6 0 12 1; -#X connect 7 0 11 0; -#X connect 8 0 10 0; -#X connect 9 0 12 0; -#X connect 10 0 12 4; -#X connect 11 0 12 2; -#X connect 12 0 3 0; -#X connect 14 0 12 3; -#X connect 19 0 12 5; -#X connect 32 0 34 0; -#X connect 43 0 42 0; +#X connect 5 0 11 1; +#X connect 6 0 10 0; +#X connect 7 0 9 0; +#X connect 8 0 11 0; +#X connect 9 0 11 4; +#X connect 10 0 11 2; +#X connect 11 0 2 0; +#X connect 13 0 11 3; +#X connect 18 0 11 5; +#X connect 31 0 33 0; +#X connect 41 0 40 0; diff --git a/doc/5.reference/soundfiler-help.pd b/doc/5.reference/soundfiler-help.pd index d833e6dbc..7dec38d8f 100644 --- a/doc/5.reference/soundfiler-help.pd +++ b/doc/5.reference/soundfiler-help.pd @@ -1,8 +1,4 @@ #N canvas 223 50 1039 619 12; -#N canvas 0 22 450 300 (subpatch) 0; -#X array sample 44100 float 2; -#X coords 0 1 44100 -1 250 100 1 0 0; -#X restore 269 247 graph; #X obj 60 316 soundfiler; #X floatatom 60 345 7 0 0 0 - - - 12; #X obj 278 581 tabwrite~; @@ -60,17 +56,9 @@ #X text 678 355 open subpatch to see how to deal with '\$0', f 28; #X text 577 247 Note that if no array name is given to read to \, no samples are read but you get the number of samples in the file on the left outlet and the info on the right outlet anyway., f 62; #X text 577 304 Also note that the number of channels is limited to 64 for both reading and writting., f 62; -#N canvas 85 86 1235 552 read-write-flags 0; +#N canvas 108 89 1226 553 read-write-flags 0; #X text 27 83 -resize (resizes arrays to the size of the sound file), f 62; -#N canvas 0 22 450 300 (subpatch) 0; -#X array array1 78003 float 2; -#X coords 0 1 78003 -1 325 120 1 0 0; -#X restore 887 260 graph; -#N canvas 0 22 450 300 (subpatch) 0; -#X array array2 78003 float 2; -#X coords 0 1 78003 -1 325 120 1 0 0; -#X restore 887 404 graph; -#X obj 622 447 soundfiler; +#X obj 609 447 soundfiler; #X text 27 23 Flags for 'read' message:, f 62; #X text 27 347 Flags for 'write' message:, f 69; #X text 27 101 -maxsize (maximum number of samples to resize to), f 62; @@ -78,16 +66,16 @@ #X text 27 231 -ascii (read a file containing ascii numbers), f 73; #X text 48 251 This may only be combined with '-resize'. Newlines in the file are ignored \, non-numeric fields are replaced by zero. If multiple arrays are specified \, the first elements of each array should come first in the file \, followed by all the second elements and so on (interleaved)., f 70; #X text 27 47 -wave \, -aiff \, -caf \, -next (soundfile format), f 62; -#X text 1056 131 read a file overriding the header, f 23; -#X text 904 169 read from an ascii file; -#X listbox 689 495 17 0 0 0 - - - 0; -#X msg 625 138 read -resize -raw 128 2 2 b ../sound/bell.aiff array1 array2; -#X msg 651 192 read -ascii -resize table.txt array1 array2; -#X floatatom 622 495 6 0 0 0 - - - 0; -#X obj 586 58 openpanel; -#X obj 586 23 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; -#X obj 672 289 savepanel; -#X obj 672 254 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X text 1043 131 read a file overriding the header, f 22; +#X text 891 169 read from an ascii file; +#X listbox 676 495 17 0 0 0 - - - 0; +#X msg 612 138 read -resize -raw 128 2 2 b ../sound/bell.aiff array1 array2; +#X msg 638 192 read -ascii -resize table.txt array1 array2; +#X floatatom 609 495 6 0 0 0 - - - 0; +#X obj 573 58 openpanel; +#X obj 573 23 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X obj 659 289 savepanel; +#X obj 659 254 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; #X text 82 500 * note that arrays whose values exceed the -1 to 1 range are automatically normalized, f 42; #X text 27 442 -bytes (bytes per sample: 2 \, 3 \, or 4 \, default: 2), f 69; #X text 27 461 -rate (sample rate \, default Pd's running sample rate), f 69; @@ -98,11 +86,11 @@ #X text 27 367 -wave \, -aiff \, -caf \, -next \, -ascii (soundfile format \, default: 'wave'), f 69; #X text 27 386 -big \, -little (sample endianness \, default 'little'), f 69; #X text 27 480 -normalize * (normalize file to '1'), f 69; -#X msg 672 317 write \$1 array1 array2; -#X msg 586 86 read -resize \$1 array1 array2; -#X msg 607 113 read -maxsize 44100 -aiff ../sound/bell.aiff array1 array2; -#X text 846 89 set max size and extension; -#X msg 642 169 read -ascii -resize table.txt array1; +#X msg 659 317 write \$1 array1 array2; +#X msg 573 86 read -resize \$1 array1 array2; +#X msg 594 113 read -maxsize 44100 -aiff ../sound/bell.aiff array1 array2; +#X text 833 89 set max size and extension; +#X msg 629 169 read -ascii -resize table.txt array1; #N canvas 411 132 607 507 more-writting-examples 0; #X msg 171 364 write foo1.txt array1; #X obj 113 451 outlet; @@ -126,22 +114,32 @@ #X connect 8 0 1 0; #X connect 10 0 0 0; #X connect 11 0 10 0; -#X restore 681 383 pd more-writting-examples; -#X text 698 256 Write a stereo fie; -#X text 618 24 Choose file to save to or read from in your hard disk; -#X connect 3 0 16 0; -#X connect 3 1 13 0; -#X connect 14 0 3 0; -#X connect 15 0 3 0; -#X connect 17 0 32 0; +#X restore 668 383 pd more-writting-examples; +#X text 685 256 Write a stereo fie; +#X text 605 24 Choose file to save to or read from in your hard disk; +#X obj 875 261 cnv 19 323 118 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 875 405 cnv 19 323 118 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array1 78003 float 2; +#X coords 0 1 78003 -1 325 120 1 0 0; +#X restore 874 260 graph; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array2 78003 float 2; +#X coords 0 1 78003 -1 325 120 1 0 0; +#X restore 874 404 graph; +#X connect 1 0 14 0; +#X connect 1 1 11 0; +#X connect 12 0 1 0; +#X connect 13 0 1 0; +#X connect 15 0 30 0; +#X connect 16 0 15 0; +#X connect 17 0 29 0; #X connect 18 0 17 0; -#X connect 19 0 31 0; -#X connect 20 0 19 0; -#X connect 31 0 3 0; -#X connect 32 0 3 0; -#X connect 33 0 3 0; -#X connect 35 0 3 0; -#X connect 36 0 3 0; +#X connect 29 0 1 0; +#X connect 30 0 1 0; +#X connect 31 0 1 0; +#X connect 33 0 1 0; +#X connect 34 0 1 0; #X restore 779 505 pd read-write-flags & more examples; #X f 19; #X text 577 149 When loading a file \, the left outlet sends the number of samples the file contains if the array is equal or greater in size. If you're loading a file into an array that is smaller \, the number or samples is clipped to the array size and you probably want to use the -resize flag to resize the array size to the file size., f 62; @@ -158,10 +156,15 @@ #X text 29 489 Note: Loading a soundfile into an array might be useful for more flexible playing strategies with table reading objects in the 'see section' below. For a simpler alternative that streams a soundfile directly from your hard drive \, see [readsf~]., f 72; #X text 29 396 The 'read' message takes a file to load and one or more arrays to load into (in the case the file has more than one channel). The number of channels of the soundfile need not match the number of arrays given to read (extras channels are dropped and unsupplied channels are zeroed out in the extra arrays). The 'write' message takes a filename to save to and one or more arrays (one for each channel)., f 72; #X text 124 365 info: sample rate \, header size \, channels \, bytes \, endianness; -#X connect 1 0 2 0; -#X connect 1 1 13 0; -#X connect 18 0 1 0; -#X connect 19 0 1 0; -#X connect 35 0 37 0; -#X connect 36 0 35 0; -#X connect 37 0 1 0; +#X obj 270 248 cnv 19 248 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 300 (subpatch) 0; +#X array sample 44100 float 2; +#X coords 0 1 44100 -1 250 100 1 0 0; +#X restore 269 247 graph; +#X connect 0 0 1 0; +#X connect 0 1 12 0; +#X connect 17 0 0 0; +#X connect 18 0 0 0; +#X connect 34 0 36 0; +#X connect 35 0 34 0; +#X connect 36 0 0 0; diff --git a/doc/5.reference/stripnote-help.pd b/doc/5.reference/stripnote-help.pd index 994f6c0ad..f2d612d38 100644 --- a/doc/5.reference/stripnote-help.pd +++ b/doc/5.reference/stripnote-help.pd @@ -1,6 +1,6 @@ #N canvas 633 70 509 475 12; -#X obj 120 382 print x1; -#X obj 194 382 print x2; +#X obj 120 385 print x1; +#X obj 194 385 print x2; #X obj 120 333 stripnote, f 11; #X msg 120 280 34.5 67.8; #X obj 100 436 makenote; @@ -9,52 +9,33 @@ #X text 21 436 see also:; #X floatatom 120 359 5 0 0 0 - - - 0; #X floatatom 194 359 5 0 0 0 - - - 0; -#X text 33 131 The left inlet takes the note number and the right inlet -takes velocity values. Alternatively \, you can send it a list that -spreads the values through the inlets., f 63; +#X text 33 131 The left inlet takes the note number and the right inlet takes velocity values. Alternatively \, you can send it a list that spreads the values through the inlets., f 63; #X msg 97 253 70 127; #X msg 138 305 70 0; #X text 105 11 - strip "note off" messages; -#X text 33 182 This is very useful if you want a Note-On message to -trigger something in Pd but you don't want a Note-Off to trigger anything -when you release the note., f 63; +#X text 33 182 This is very useful if you want a Note-On message to trigger something in Pd but you don't want a Note-Off to trigger anything when you release the note., f 63; #N canvas 683 85 535 307 reference 0; -#X obj 18 45 cnv 5 500 5 empty empty INLET: 8 18 0 13 #202020 #000000 -0; -#X obj 18 143 cnv 2 500 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 -0; -#X obj 18 240 cnv 2 500 2 empty empty ARGUMENTS: 8 12 0 13 #202020 -#000000 0; -#X obj 17 204 cnv 1 500 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 -0; -#X obj 17 174 cnv 1 500 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 -0; -#X obj 17 106 cnv 1 500 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 -0; -#X obj 17 76 cnv 1 500 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 -0; +#X obj 18 45 cnv 5 500 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; +#X obj 18 143 cnv 2 500 2 empty empty OUTLET: 8 12 0 13 #202020 #000000 0; +#X obj 18 240 cnv 2 500 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; +#X obj 17 204 cnv 1 500 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; +#X obj 17 174 cnv 1 500 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; +#X obj 17 106 cnv 1 500 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; +#X obj 17 76 cnv 1 500 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; #X text 110 83 float - MIDI pitch.; #X text 110 180 float - MIDI pitch., f 23; #X text 110 213 float - MIDI velocity., f 23; #X obj 38 11 stripnote; #X text 117 11 - strip "note off" messages; #X text 135 251 NONE; -#X text 110 114 float - MIDI velocity (no output if equal to zero). -; -#X obj 17 279 cnv 5 500 5 empty empty empty 8 18 0 13 #202020 #000000 -0; +#X text 110 114 float - MIDI velocity (no output if equal to zero).; +#X obj 17 279 cnv 5 500 5 empty empty empty 8 18 0 13 #202020 #000000 0; #X restore 327 11 pd reference; #X text 425 12 <= click; -#X obj 8 43 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 -0; -#X obj 8 420 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 -0; +#X obj 8 43 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 8 420 cnv 1 490 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 176 306 <-- note off ignored; -#X text 33 52 [stripnote] ignores note-off (zero-velocity) messages -from a stream of MIDI-style note message and passes the others through -unchanged. It can deal with any kind of number (negative \, floats -\, whatever) even though MIDI values need to be integers from 0 to -127!, f 63; +#X text 33 52 [stripnote] ignores note-off (zero-velocity) messages from a stream of MIDI-style note message and passes the others through unchanged. It can deal with any kind of number (negative \, floats \, whatever) even though MIDI values need to be integers from 0 to 127!, f 63; #X connect 2 0 8 0; #X connect 2 1 9 0; #X connect 3 0 2 0; diff --git a/doc/5.reference/tabosc4~-help.pd b/doc/5.reference/tabosc4~-help.pd index 3fd4c4430..f582f9886 100644 --- a/doc/5.reference/tabosc4~-help.pd +++ b/doc/5.reference/tabosc4~-help.pd @@ -23,16 +23,16 @@ #X msg 111 389 set wave2; #X obj 217 512 declare -stdpath ./; #N canvas 715 168 574 404 Dealing_with_"\$0" 0; -#X text 394 262 <= array with local name, f 13; -#X obj 262 261 array define \$0-x; -#X obj 178 279 f \$0; -#X msg 178 306 \; \$1-x sinesum 512 1 1 1 1 \, normalize; -#X obj 62 290 output~; +#X text 414 262 <= array with local name, f 13; +#X obj 282 261 array define \$0-x; +#X obj 198 279 f \$0; +#X msg 198 306 \; \$1-x sinesum 512 1 1 1 1 \, normalize; +#X obj 62 280 output~; #X msg 133 205 set \$1; #X obj 133 179 symbol \$0-x; #X obj 133 151 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X obj 62 189 sig~ 440; -#X obj 178 253 loadbang; +#X obj 198 253 loadbang; #X obj 62 240 tabosc4~; #X text 240 185 You can also load '\$0' in a float object and send it to a message that works like a send to send messages to an array., f 40; #X text 158 151 click to set name; @@ -45,7 +45,6 @@ #X connect 8 0 10 0; #X connect 9 0 2 0; #X connect 10 0 4 0; -#X connect 10 0 4 1; #X restore 435 536 pd Dealing_with_"\$0"; #X obj 451 360 array define wave1; #X obj 451 384 array define wave2; diff --git a/doc/5.reference/tabplay~-help.pd b/doc/5.reference/tabplay~-help.pd index 85f93d7dd..b0305e946 100644 --- a/doc/5.reference/tabplay~-help.pd +++ b/doc/5.reference/tabplay~-help.pd @@ -1,16 +1,11 @@ -#N canvas 298 23 870 513 12; +#N canvas 287 58 867 486 12; #X declare -stdpath ./; -#N canvas 0 0 450 300 (subpatch) 0; -#X array sample 155944 float 2; -#X coords 0 1 155944 -1 250 100 1 0 0; -#X restore 557 212 graph; #X text 148 139 "set" message permits you to switch between arrays; -#X text 174 291 creation argument initializes array name; -#X obj 105 475 tabwrite~; +#X obj 105 446 tabwrite~; #X obj 55 18 tabplay~; -#X obj 574 143 soundfiler; -#X obj 177 475 soundfiler; -#X obj 325 475 tabread4~; +#X obj 574 139 soundfiler; +#X obj 177 446 soundfiler; +#X obj 325 446 tabread4~; #X msg 90 214 0 44100; #X msg 84 189 44100; #X text 101 164 "bang" or 0 plays whole sample; @@ -18,17 +13,16 @@ #X text 148 212 play starting at beginning for 44100 samples; #X msg 95 239 44100 1000; #X text 173 238 play from 44100 through 45099 (1000 samples); -#X text 647 476 updated for Pd version 0.43; +#X text 647 447 updated for Pd version 0.43; #X msg 102 264 stop; #X text 138 265 stop playing (outputs zeros when stopped); -#X obj 187 336 bng 23 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 63 291 tabplay~ sample; +#X obj 207 334 bng 23 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X msg 63 139 set sample; -#X text 26 475 see also:; +#X text 26 446 see also:; #X obj 63 336 output~; -#X obj 48 417 declare -stdpath ./; -#X text 641 84 load table; -#X obj 574 84 loadbang; +#X obj 699 145 declare -stdpath ./; +#X text 641 80 load table; +#X obj 574 80 loadbang; #N canvas 642 190 593 443 Dealing_with_"\$0" 0; #X obj 316 280 array define \$0-x; #X obj 227 300 f \$0; @@ -58,7 +52,7 @@ #X connect 14 0 4 0; #X restore 359 383 pd Dealing_with_"\$0"; #X text 197 374 open subpatch to see how to deal with '\$0', f 21; -#X obj 399 474 array; +#X obj 399 445 array; #N canvas 677 98 580 357 reference 0; #X obj 18 51 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0; #X obj 18 185 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; @@ -84,7 +78,7 @@ #X restore 659 18 pd reference; #X text 757 17 <= click; #X obj 8 52 cnv 1 850 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X obj 8 452 cnv 1 850 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 8 423 cnv 1 850 1 empty empty empty 8 12 0 13 #000000 #000000 0; #N canvas 643 412 384 186 array-examples 0; #N canvas 491 316 457 285 open 0; #X obj 120 23 inlet; @@ -107,24 +101,16 @@ #X text 47 22 See also and the "array" examples from the section 2 of Pd's tutorial:, f 39; #X connect 1 0 0 0; #X connect 2 0 0 0; -#X restore 507 475 pd array-examples; +#X restore 507 446 pd array-examples; #X text 62 67 The [tabplay~] object plays a sample \, or part of one \, with no transposition or interpolation. It is cheaper than [tabread4~] and there are none of [tabread4~]'s interpolation artifacts., f 62; -#X text 217 339 <-- bang when finished playing the table; +#X text 237 337 <-- bang when finished playing the table; #X obj 77 165 bng 17 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 259 475 tabread~; +#X obj 259 446 tabread~; #N canvas 519 131 758 403 multichannel 0; #X obj 58 183 tabplay~ left right; #X obj 58 281 output~; -#N canvas 0 0 450 300 (subpatch) 0; -#X array right 62079 float 2; -#X coords 0 1 62079 -1 250 100 1 0 0; -#X restore 496 246 graph; #X obj 308 199 soundfiler; #X obj 308 125 loadbang; -#N canvas 0 0 450 300 (subpatch) 0; -#X array left 155944 float 2; -#X coords 0 1 155944 -1 250 100 1 0 0; -#X restore 235 246 graph; #X text 375 125 load tables; #X obj 58 121 bng 22 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; #X obj 58 227 snake~ out; @@ -133,26 +119,43 @@ #X text 82 23 [tabplay~] generates multichannel signals if you give it more than one argument. Each channel then corresponds to an argument/table. The "set" message can also replace more than one table name. Note that the arrays do not need to be of the same length and \, in which case the bang output is only sent when reaching the end of the largest table., f 86; #X obj 188 215 bng 19 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; #X msg 308 155 read ../sound/bell.aiff left \, read ../sound/voice.wav right, f 29; -#X connect 0 0 8 0; -#X connect 0 1 12 0; -#X connect 4 0 13 0; +#X obj 236 247 cnv 19 248 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 497 247 cnv 19 248 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array right 62079 float 2; +#X coords 0 1 62079 -1 250 100 1 0 0; +#X restore 496 246 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array left 155944 float 2; +#X coords 0 1 155944 -1 250 100 1 0 0; +#X restore 235 246 graph; +#X connect 0 0 6 0; +#X connect 0 1 10 0; +#X connect 3 0 11 0; +#X connect 5 0 0 0; +#X connect 6 0 1 0; +#X connect 6 1 1 1; #X connect 7 0 0 0; -#X connect 8 0 1 0; -#X connect 8 1 1 1; -#X connect 9 0 0 0; -#X connect 10 0 0 0; -#X connect 13 0 3 0; -#X restore 705 382 pd multichannel; -#X text 554 367 mutichannel signal support ----------->, f 20; -#X msg 574 114 read ../sound/bell.aiff sample; +#X connect 8 0 0 0; +#X connect 11 0 2 0; +#X restore 721 373 pd multichannel; +#X text 570 358 mutichannel signal support ----------->, f 20; #X text 122 17 - play back from tables (non-transposing); -#X connect 8 0 19 0; -#X connect 9 0 19 0; -#X connect 13 0 19 0; -#X connect 16 0 19 0; -#X connect 19 0 22 0; -#X connect 19 1 18 0; -#X connect 20 0 19 0; -#X connect 25 0 40 0; -#X connect 36 0 19 0; -#X connect 40 0 5 0; +#X msg 574 110 read ../sound/bell.aiff sample-table; +#X obj 63 291 tabplay~ sample-table; +#X text 219 290 argument initializes array name; +#X obj 578 216 cnv 19 248 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array sample-table 155944 float 2; +#X coords 0 1 155944 -1 250 100 1 0 0; +#X restore 577 215 graph; +#X connect 6 0 39 0; +#X connect 7 0 39 0; +#X connect 11 0 39 0; +#X connect 14 0 39 0; +#X connect 17 0 39 0; +#X connect 22 0 38 0; +#X connect 33 0 39 0; +#X connect 38 0 3 0; +#X connect 39 0 19 0; +#X connect 39 1 16 0; diff --git a/doc/5.reference/tabread-help.pd b/doc/5.reference/tabread-help.pd index 876583d64..a52cfcd5d 100644 --- a/doc/5.reference/tabread-help.pd +++ b/doc/5.reference/tabread-help.pd @@ -1,13 +1,8 @@ -#N canvas 556 34 719 445 12; +#N canvas 436 56 719 445 12; #X text 100 149 index; #X obj 66 18 tabread; #X floatatom 67 150 4 0 9 0 - - - 0; #X floatatom 67 268 5 0 0 0 - - - 0; -#N canvas 0 22 450 300 (subpatch) 0; -#X array table-ex 10 float 3; -#A 0 1 4 2 8 5 6 1 4 2 8; -#X coords 0 10 10 0 250 200 1 0 0; -#X restore 391 151 graph; #X text 191 216 creation argument; #X text 193 232 gives array name; #X text 177 184 change array name; @@ -17,7 +12,7 @@ #X obj 67 224 tabread table-ex; #X msg 83 184 set table-ex; #X text 110 269 output = table-ex[index]; -#N canvas 746 749 401 220 init-table 0; +#N canvas 865 115 401 220 init-table 0; #X obj 35 42 loadbang; #X msg 35 74 \; table-ex resize 10 \; table-ex bounds 0 10 10 0 \; table-ex xlabel -0.2 0 1 2 3 4 5 6 7 8 9 \; table-ex ylabel -0.3 0 1 2 3 4 5 6 7 8 9 10 \; table-ex 0 1 4 2 8 5 6 1 4 2 8; #X connect 0 0 1 0; @@ -93,6 +88,11 @@ #X text 51 61 The [tabread] object reads values from an array ("table") according to an index. The index is rounded down to the next lower integer. Values in the table correspond to indices (starting at 0). Indices outside of the range are replaced by the nearest index in range (from 0 to 9 in this example)., f 84; #X obj 228 409 tabread~; #X obj 294 409 array; -#X connect 2 0 11 0; -#X connect 11 0 3 0; -#X connect 12 0 11 0; +#X obj 392 152 cnv 19 248 198 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 300 (subpatch) 0; +#X array table-ex 10 float 2; +#X coords 0 10 10 0 250 200 1 0 0; +#X restore 391 151 graph; +#X connect 2 0 10 0; +#X connect 10 0 3 0; +#X connect 11 0 10 0; diff --git a/doc/5.reference/tabread4-help.pd b/doc/5.reference/tabread4-help.pd index d3b069b69..c79ae653d 100644 --- a/doc/5.reference/tabread4-help.pd +++ b/doc/5.reference/tabread4-help.pd @@ -1,4 +1,4 @@ -#N canvas 509 36 721 493 12; +#N canvas 366 43 721 493 12; #X text 118 198 index; #X floatatom 70 199 6 1 8 0 - - - 0; #X floatatom 70 304 6 0 0 0 - - - 0; @@ -15,16 +15,11 @@ #X msg 80 231 set tabread4-ex; #X obj 70 271 tabread4 tabread4-ex; #X text 121 306 output = tabread4-ex[index]; -#N canvas 0 0 450 300 (subpatch) 0; -#X array tabread4-ex 10 float 3; -#A 0 8 4 2 8 5 6 1 8 4 2; -#X coords 0 10 10 0 250 200 1 0 0; -#X restore 395 183 graph; -#N canvas 117 649 401 220 init-table 0; +#N canvas 781 205 401 220 init-table 0; #X obj 35 42 loadbang; #X msg 35 74 \; tabread4-ex resize 10 \; tabread4-ex bounds 0 10 10 0 \; tabread4-ex xlabel -0.2 0 1 2 3 4 5 6 7 8 9 \; tabread4-ex ylabel -0.3 0 1 2 3 4 5 6 7 8 9 10 \; tabread4-ex 0 8 4 2 8 5 6 1 8 4 2; #X connect 0 0 1 0; -#X restore 548 159 pd init-table; +#X restore 575 141 pd init-table; #X obj 73 169 hsl 162 19 1 8 0 0 empty empty empty -2 -8 0 10 #dfdfdf #000000 #000000 0 1; #N canvas 681 295 593 399 Dealing_with_"\$0" 0; #X obj 221 291 f \$0; @@ -95,10 +90,15 @@ #X connect 1 0 0 0; #X connect 2 0 0 0; #X restore 298 460 pd array-examples; -#X text 45 58 The [tabread4] object reads values from an array ("table") according to an index \, applying four-point polynomial interpolation. Indices should range from 1 to (size-2) so that the 4-point interpolation is meaningful. You can shift-drag the number box to see the effect of interpolation. Indices outside of the range are replaced by the nearest index in range (from 1 to 8 in this example)., f 90; +#X text 33 61 The [tabread4] object reads values from an array ("table") according to an index \, applying four-point polynomial interpolation. Indices should range from 1 to (size-2) so that the 4-point interpolation is meaningful. You can shift-drag the number box to see the effect of interpolation. Indices outside of the range are replaced by the nearest index in range (from 1 to 8 in this example)., f 90; #X obj 217 431 tabread4~; #X obj 248 460 array; +#X obj 423 166 cnv 19 248 198 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array tabread4-ex 10 float 2; +#X coords 0 10 10 0 250 200 1 0 0; +#X restore 422 165 graph; #X connect 1 0 14 0; #X connect 13 0 14 0; #X connect 14 0 2 0; -#X connect 18 0 1 0; +#X connect 17 0 1 0; diff --git a/doc/5.reference/tabread4~-help.pd b/doc/5.reference/tabread4~-help.pd index e4c7e8692..ccd74f68f 100644 --- a/doc/5.reference/tabread4~-help.pd +++ b/doc/5.reference/tabread4~-help.pd @@ -1,9 +1,4 @@ -#N canvas 360 57 843 544 12; -#N canvas 0 22 450 300 (subpatch) 0; -#X array table2-ex 10 float 3; -#A 0 1 4 2 8 5 6 1 1 4 2; -#X coords 0 10 10 0 250 150 1 0 0; -#X restore 565 132 graph; +#N canvas 312 52 843 544 12; #X obj 36 401 snapshot~; #X obj 36 165 sig~; #X floatatom 36 139 6 1 8 0 - - - 0; @@ -16,12 +11,12 @@ #X obj 94 513 tabreceive~; #X obj 165 487 tabplay~; #X floatatom 166 250 5 0 10 0 - - - 0; -#X obj 231 361 ../3.audio.examples/B15.tabread4~-onset; +#X obj 231 381 ../3.audio.examples/B15.tabread4~-onset; #X obj 181 513 tabosc4~; #X obj 249 513 soundfiler; -#N canvas 515 381 401 220 init-table 0; +#N canvas 780 240 401 220 init-table 0; #X obj 35 42 loadbang; -#X msg 35 74 \; table2-ex resize 10 \; table2-ex bounds 0 10 10 0 \; table2-ex xlabel -0.2 0 1 2 3 4 5 6 7 8 9 \; table2-ex ylabel -0.3 0 1 2 3 4 5 6 7 8 9 10 \; table2-ex 0 1 4 2 8 5 6 1 1 4 2; +#X msg 35 74 \; table2-ex resize 10 \; table2-ex bounds 0 10 10 0 \; table2-ex xlabel -0.2 0 1 2 3 4 5 6 7 8 9 \; table2-ex ylabel -0.3 0 1 2 3 4 5 6 7 8 9 10 \; table2-ex 0 1 4 2 8 5 6 1 7 4 2; #X connect 0 0 1 0; #X restore 720 108 pd init-table; #X obj 36 313 tabread4~ table2-ex; @@ -56,7 +51,7 @@ #X connect 12 0 14 0; #X connect 13 0 12 0; #X connect 15 0 13 0; -#X restore 576 422 pd Dealing_with_"\$0"; +#X restore 580 430 pd Dealing_with_"\$0"; #X obj 39 111 hsl 162 19 1 8 0 0 empty empty empty -2 -8 0 10 #dfdfdf #000000 #000000 0 1; #N canvas 750 87 575 293 reference 0; #X obj 11 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; @@ -79,8 +74,8 @@ #X restore 662 17 pd reference; #X text 760 16 <= click; #X obj 8 50 cnv 1 830 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 245 322 Open this example for more details on setting onset:, f 35; -#X text 264 423 open subpatch to see how to deal with '\$0':; +#X text 245 342 Open this example for more details on setting onset:, f 35; +#X text 268 431 open subpatch to see how to deal with '\$0':; #X obj 8 475 cnv 1 830 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 18 500 see also:; #N canvas 643 412 384 186 array-examples 0; @@ -106,7 +101,7 @@ #X connect 1 0 0 0; #X connect 2 0 0 0; #X restore 331 513 pd array-examples; -#X text 58 67 [tabread4~] is used to build samplers and other table lookup algorithms. The interpolation scheme is 4-point polynomial as used in [delread4~] and [tabosc4~]., f 90; +#X text 30 63 [tabread4~] is used to build samplers and other table lookup algorithms. The interpolation scheme is 4-point polynomial as used in [delread4~] and [tabosc4~]., f 81; #X msg 457 234 \; pd dsp \$1; #X obj 457 199 set-dsp-tgl; #X text 374 202 DSP on/off; @@ -114,16 +109,6 @@ #X obj 68 270 snake~ out, f 12; #X obj 69 151 sig~; #X floatatom 69 125 6 0 10 0 - - - 0; -#N canvas 0 22 450 300 (subpatch) 0; -#X array array99 10 float 3; -#A 0 2.824 1.366 3.094 1.636 0.610006 4.552 1.906 0.826005 3.364 1.96001; -#X coords 0 5.2 10 -0.2 200 100 1 0 0; -#X restore 310 149 graph; -#N canvas 0 22 450 300 (subpatch) 0; -#X array array100 10 float 3; -#A 0 0.502 0.771999 1.096 1.582 2.122 2.662 3.20199 3.57999 3.95799 4.44399; -#X coords 0 5.2 10 -0.2 200 100 1 0 0; -#X restore 309 276 graph; #X obj 68 347 snapshot~; #X floatatom 68 376 8 0 0 0 - - - 0; #X obj 89 304 r bang; @@ -134,20 +119,32 @@ #X obj 68 222 tabread4~ array99 array100; #X text 51 12 [tabread4~] generates multichannel signals if you give it more than one argument. Each channel then corresponds to an argument/table. The "set" message can also replace more than one table name. Note that the arrays do not need to be of the same length., f 67; #X obj 72 96 hsl 162 19 0 10 0 0 empty empty empty -2 -8 0 10 #dfdfdf #000000 #000000 0 1; -#X connect 0 0 5 0; -#X connect 0 1 8 0; -#X connect 1 0 12 0; +#X obj 310 150 cnv 19 198 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 310 276 cnv 19 198 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array99 10 float 3; +#A 0 2.824 1.366 3.094 1.636 0.610006 4.552 1.906 0.826005 3.364 1.96001; +#X coords 0 5.2 10 -0.2 200 100 1 0 0; +#X restore 310 149 graph; +#N canvas 0 22 450 300 (subpatch) 0; +#X array array100 10 float 3; +#A 0 0.502 0.771999 1.096 1.582 2.122 2.662 3.20199 3.57999 3.95799 4.44399; +#X coords 0 5.2 10 -0.2 200 100 1 0 0; +#X restore 309 276 graph; +#X connect 0 0 3 0; +#X connect 0 1 6 0; +#X connect 1 0 10 0; #X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 5 0 3 0; #X connect 5 0 6 0; -#X connect 7 0 5 0; -#X connect 7 0 8 0; -#X connect 8 0 9 0; -#X connect 10 0 12 0; -#X connect 11 0 12 0; -#X connect 12 0 0 0; -#X connect 14 0 2 0; -#X restore 701 365 pd multichannel; -#X text 550 350 mutichannel signal support ----------->, f 20; +#X connect 6 0 7 0; +#X connect 8 0 10 0; +#X connect 9 0 10 0; +#X connect 10 0 0 0; +#X connect 12 0 2 0; +#X restore 701 385 pd multichannel; +#X text 550 370 mutichannel signal support ----------->, f 20; #X obj 128 392 metro 200; #X obj 128 365 loadbang; #X obj 128 420 s bang; @@ -157,14 +154,19 @@ #X text 212 245 set table onset to improve the accuracy of indexing (useful if you have Pd compiled for single precision), f 31; #X text 157 200 "set" message lets you switch between arrays, f 22; #X text 102 250 onset ->; -#X connect 1 0 4 0; -#X connect 2 0 17 0; -#X connect 3 0 2 0; -#X connect 12 0 17 1; -#X connect 17 0 1 0; -#X connect 18 0 17 0; -#X connect 21 0 3 0; -#X connect 32 0 31 0; -#X connect 36 0 38 0; -#X connect 37 0 36 0; -#X connect 39 0 1 0; +#X obj 566 133 cnv 19 248 198 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 300 (subpatch) 0; +#X array table2-ex 10 float 2; +#X coords 0 10 10 0 250 200 1 0 0; +#X restore 565 132 graph; +#X connect 0 0 3 0; +#X connect 1 0 16 0; +#X connect 2 0 1 0; +#X connect 11 0 16 1; +#X connect 16 0 0 0; +#X connect 17 0 16 0; +#X connect 20 0 2 0; +#X connect 31 0 30 0; +#X connect 35 0 37 0; +#X connect 36 0 35 0; +#X connect 38 0 0 0; diff --git a/doc/5.reference/tabread~-help.pd b/doc/5.reference/tabread~-help.pd index aa172afff..5cdc4b28d 100644 --- a/doc/5.reference/tabread~-help.pd +++ b/doc/5.reference/tabread~-help.pd @@ -16,10 +16,6 @@ #X obj 99 428 tabread4~; #X obj 364 428 tabread4; #X text 24 443 see also:; -#N canvas 0 22 450 300 (subpatch) 0; -#X array tabread-ex 10 float 2; -#X coords 0 5.2 10 -0.2 300 150 1 0 0; -#X restore 465 147 graph; #X msg 52 193 set tabread-ex; #X obj 31 244 tabread~ tabread-ex; #N canvas 843 85 401 220 init-table 0; @@ -107,6 +103,17 @@ #X obj 68 257 snake~ out, f 12; #X obj 69 138 sig~; #X floatatom 69 112 6 0 10 0 - - - 0; +#X obj 68 212 tabread~ array77 array88; +#X msg 124 137 set array77 array88; +#X msg 137 168 set array88 array77; +#X obj 68 334 snapshot~; +#X floatatom 68 363 8 0 0 0 - - - 0; +#X obj 89 291 r bang; +#X obj 149 334 snapshot~; +#X floatatom 149 363 8 0 0 0 - - - 0; +#X text 51 21 [tabread~] generates multichannel signals if you give it more than one argument. Each channel then corresponds to an argument/table. The "set" message can also replace more than one table name. Note that the arrays do not need to be of the same length., f 66; +#X obj 311 137 cnv 19 198 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 310 264 cnv 19 198 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; #N canvas 0 22 450 300 (subpatch) 0; #X array array77 10 float 3; #A 0 2.824 1.366 3.094 1.636 0.610006 4.552 1.906 0.826005 3.364 1.96001; @@ -117,26 +124,17 @@ #A 0 0.502 0.771999 1.096 1.582 2.122 2.662 3.20199 3.57999 3.95799 4.44399; #X coords 0 5.2 10 -0.2 200 100 1 0 0; #X restore 309 263 graph; -#X obj 68 212 tabread~ array77 array88; -#X msg 124 137 set array77 array88; -#X msg 137 168 set array88 array77; -#X obj 68 334 snapshot~; -#X floatatom 68 363 8 0 0 0 - - - 0; -#X obj 89 291 r bang; -#X obj 149 334 snapshot~; -#X floatatom 149 363 8 0 0 0 - - - 0; -#X text 51 21 [tabread~] generates multichannel signals if you give it more than one argument. Each channel then corresponds to an argument/table. The "set" message can also replace more than one table name. Note that the arrays do not need to be of the same length., f 66; -#X connect 0 0 8 0; -#X connect 0 1 11 0; -#X connect 1 0 5 0; +#X connect 0 0 6 0; +#X connect 0 1 9 0; +#X connect 1 0 3 0; #X connect 2 0 1 0; -#X connect 5 0 0 0; -#X connect 6 0 5 0; -#X connect 7 0 5 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 3 0; +#X connect 6 0 7 0; +#X connect 8 0 6 0; #X connect 8 0 9 0; -#X connect 10 0 8 0; -#X connect 10 0 11 0; -#X connect 11 0 12 0; +#X connect 9 0 10 0; #X restore 486 356 pd multichannel; #X text 335 341 mutichannel signal support ----------->, f 20; #X obj 125 319 metro 200; @@ -145,12 +143,17 @@ #X obj 53 304 r bang; #X text 591 445 updated for Pd version 0.54; #X text 55 67 [tabread~] looks up values from named arrays. Incoming values are truncated to the next lower integer \, and values out of bounds get the nearest (first or last) point., f 87; +#X obj 466 148 cnv 19 298 148 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 300 (subpatch) 0; +#X array tabread-ex 10 float 2; +#X coords 0 5.2 10 -0.2 300 150 1 0 0; +#X restore 465 147 graph; #X connect 0 0 3 0; -#X connect 1 0 19 0; +#X connect 1 0 18 0; #X connect 2 0 1 0; -#X connect 18 0 19 0; -#X connect 19 0 0 0; -#X connect 30 0 29 0; -#X connect 34 0 36 0; -#X connect 35 0 34 0; -#X connect 37 0 0 0; +#X connect 17 0 18 0; +#X connect 18 0 0 0; +#X connect 29 0 28 0; +#X connect 33 0 35 0; +#X connect 34 0 33 0; +#X connect 36 0 0 0; diff --git a/doc/5.reference/tabsend-receive~-help.pd b/doc/5.reference/tabsend-receive~-help.pd index e588dc075..874c49b8f 100644 --- a/doc/5.reference/tabsend-receive~-help.pd +++ b/doc/5.reference/tabsend-receive~-help.pd @@ -1,32 +1,24 @@ -#N canvas 438 23 714 548 12; -#X obj 27 23 tabsend~; -#X text 499 508 updated for Pd version 0.43; -#X text 169 268 creation argument: initializes table name, f 22; -#N canvas 0 22 450 278 (subpatch) 0; -#X array table-1 64 float 0; -#X coords 0 1 63 -1 200 100 1 0 0; -#X restore 490 107 graph; -#X obj 45 177 osc~ 440; -#N canvas 0 22 450 278 (subpatch) 0; -#X array table-2 64 float 0; -#X coords 0 1 63 -1 200 100 1 0 0; -#X restore 490 230 graph; -#X msg 68 214 set table-1; -#X obj 45 276 tabsend~ table-1; -#X msg 76 239 set table-2; -#X text 168 216 use 'set' message to change table's name, f 20; -#X obj 182 509 block~; -#X obj 86 509 send~; -#X obj 233 509 array; -#X obj 27 46 tabreceive~; -#X text 193 372 creation argument: initializes table name, f 23; -#X text 156 322 'set' message to change table name, f 17; -#X obj 46 379 tabreceive~ table-1; -#X msg 65 345 set table-1; -#X msg 46 319 set table-2; -#X obj 46 442 print~; -#X obj 64 411 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 277 509 tabwrite~; +#N canvas 438 23 715 538 12; +#X obj 27 17 tabsend~; +#X text 499 499 updated for Pd version 0.43; +#X text 169 259 creation argument: initializes table name, f 22; +#X obj 45 168 osc~ 440; +#X msg 68 205 set table-1; +#X obj 45 267 tabsend~ table-1; +#X msg 76 230 set table-2; +#X text 168 207 use 'set' message to change table's name, f 20; +#X obj 182 500 block~; +#X obj 86 500 send~; +#X obj 233 500 array; +#X obj 27 40 tabreceive~; +#X text 193 363 creation argument: initializes table name, f 23; +#X text 156 313 'set' message to change table name, f 17; +#X obj 46 370 tabreceive~ table-1; +#X msg 65 336 set table-1; +#X msg 46 310 set table-2; +#X obj 46 433 print~; +#X obj 64 402 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 277 500 tabwrite~; #N canvas 647 144 569 384 Dealing_with_"\$0" 0; #X msg 167 212 set \$1; #X obj 167 186 symbol \$0-x; @@ -47,10 +39,10 @@ #X connect 6 0 7 0; #X connect 9 0 1 0; #X connect 10 0 7 0; -#X restore 483 453 pd Dealing_with_"\$0"; -#X text 479 415 open subpatch to see how to deal with '\$0', f 21; -#X obj 8 80 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X obj 7 490 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X restore 483 444 pd Dealing_with_"\$0"; +#X text 479 406 open subpatch to see how to deal with '\$0', f 21; +#X obj 8 71 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 7 481 cnv 1 700 1 empty empty empty 8 12 0 13 #000000 #000000 0; #N canvas 698 99 576 461 reference 0; #X obj 8 53 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; #X obj 8 117 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; @@ -72,9 +64,9 @@ #X text 109 324 set - set table names.; #X text 189 406 set table names (default: empty symbol).; #X text 104 363 signal(s) - outputs 1 or more channels from matching arrays.; -#X restore 535 27 pd reference; -#X text 632 28 <= click; -#X text 12 508 see also:; +#X restore 535 21 pd reference; +#X text 632 22 <= click; +#X text 12 499 see also:; #N canvas 643 412 384 186 array-examples 0; #N canvas 491 316 457 285 open 0; #X obj 120 23 inlet; @@ -97,10 +89,10 @@ #X text 47 22 See also and the "array" examples from the section 2 of Pd's tutorial:, f 39; #X connect 1 0 0 0; #X connect 2 0 0 0; -#X restore 349 509 pd array-examples; -#X text 29 108 Use [tabsend~]/[tabreceive~] to write a block of audio to and receive it from an array. By default a block is 64 samples but this can be changed with the [block~] object.; -#X obj 131 509 throw~; -#X text 221 424 <-- example with a different block size, f 20; +#X restore 349 500 pd array-examples; +#X text 29 99 Use [tabsend~]/[tabreceive~] to write a block of audio to and receive it from an array. By default a block is 64 samples but this can be changed with the [block~] object.; +#X obj 131 500 throw~; +#X text 221 415 <-- example with a different block size, f 20; #N canvas 794 185 528 353 [block~] 0; #X obj 117 113 block~ 1024; #X obj 49 159 noise~; @@ -117,23 +109,15 @@ #X connect 1 0 6 0; #X connect 7 0 4 0; #X connect 8 0 4 0; -#X restore 134 424 pd [block~]; -#X msg 358 243 \; pd dsp \$1; -#X obj 358 208 set-dsp-tgl; -#X text 389 212 DSP on/off; -#N canvas 577 106 609 529 multichannel 0; +#X restore 134 415 pd [block~]; +#X msg 358 234 \; pd dsp \$1; +#X obj 358 199 set-dsp-tgl; +#X text 389 203 DSP on/off; +#N canvas 577 106 596 554 multichannel 0; #X msg 453 278 \; pd dsp \$1; #X text 485 241 DSP on/off; #X obj 453 237 set-dsp-tgl; #X text 41 14 [tabsend~] and [tabreceive~] have support for multichannel signals in a similar fashion to the way [tabwrite~] and [tabplay~] work. This way \, [tabsend~] takes multichannel signals and distributes it to arrays and [tabreceive~] generates multichannel signals if it has more than one table argument. The set message also replaces all table names., f 71; -#N canvas 0 50 450 250 (subpatch) 0; -#X array array55 64 float 0; -#X coords 0 1 63 -1 200 140 1 0 0; -#X restore 95 377 graph; -#N canvas 0 50 450 250 (subpatch) 0; -#X array array66 64 float 0; -#X coords 0 1 63 -1 200 140 1 0 0; -#X restore 322 377 graph; #X obj 58 193 snake~ in; #X obj 285 224 snake~ out; #X obj 58 129 osc~ 500; @@ -147,28 +131,48 @@ #X msg 297 155 set array66 array55; #X msg 285 125 set array55 array66; #X obj 285 190 tabreceive~ array55 array66; +#X obj 96 378 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 323 378 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 250 (subpatch) 0; +#X array array55 64 float 0; +#X coords 0 1 63 -1 200 140 1 0 0; +#X restore 95 377 graph; +#N canvas 0 50 450 250 (subpatch) 0; +#X array array66 64 float 0; +#X coords 0 1 63 -1 200 140 1 0 0; +#X restore 322 377 graph; #X connect 2 0 0 0; -#X connect 6 0 13 0; -#X connect 7 0 10 0; -#X connect 7 1 11 0; -#X connect 8 0 6 0; -#X connect 9 0 6 1; +#X connect 4 0 11 0; +#X connect 5 0 8 0; +#X connect 5 1 9 0; +#X connect 6 0 4 0; +#X connect 7 0 4 1; +#X connect 10 0 9 0; +#X connect 10 0 8 0; #X connect 12 0 11 0; -#X connect 12 0 10 0; -#X connect 14 0 13 0; -#X connect 15 0 13 0; -#X connect 16 0 18 0; -#X connect 17 0 18 0; -#X connect 18 0 7 0; -#X restore 547 376 pd multichannel; -#X text 396 361 mutichannel signal support ----------->, f 20; -#X text 115 46 - read a block of audio from arrays continuously; -#X text 115 22 - write a block of audio to arrays continuously; -#X connect 4 0 7 0; -#X connect 6 0 7 0; -#X connect 8 0 7 0; -#X connect 16 0 19 0; -#X connect 17 0 16 0; -#X connect 18 0 16 0; -#X connect 20 0 19 0; -#X connect 35 0 34 0; +#X connect 13 0 11 0; +#X connect 14 0 16 0; +#X connect 15 0 16 0; +#X connect 16 0 5 0; +#X restore 547 367 pd multichannel; +#X text 396 352 mutichannel signal support ----------->, f 20; +#X text 115 40 - read a block of audio from arrays continuously; +#X text 115 16 - write a block of audio to arrays continuously; +#X obj 491 99 cnv 19 198 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 278 (subpatch) 0; +#X array table-1 64 float 0; +#X coords 0 1 63 -1 200 100 1 0 0; +#X restore 490 98 graph; +#X obj 491 222 cnv 19 198 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 278 (subpatch) 0; +#X array table-2 64 float 0; +#X coords 0 1 63 -1 200 100 1 0 0; +#X restore 490 221 graph; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 6 0 5 0; +#X connect 14 0 17 0; +#X connect 15 0 14 0; +#X connect 16 0 14 0; +#X connect 18 0 17 0; +#X connect 33 0 32 0; diff --git a/doc/5.reference/tabwrite-help.pd b/doc/5.reference/tabwrite-help.pd index 1e65db631..718d16a81 100644 --- a/doc/5.reference/tabwrite-help.pd +++ b/doc/5.reference/tabwrite-help.pd @@ -1,10 +1,6 @@ #N canvas 389 50 666 457 12; #X obj 26 22 tabwrite; #X floatatom 28 136 4 0 10 0 - - - 0; -#N canvas 0 22 450 278 (subpatch) 0; -#X array tabwrite-ex 10 float 2; -#X coords 0 10 10 0 250 200 1 0 0; -#X restore 373 137 graph; #X floatatom 165 261 4 0 9 0 - - - 0; #X text 180 284 creation argument; #X text 182 302 is array name; @@ -89,6 +85,11 @@ #X connect 2 0 0 0; #X restore 317 420 pd array-examples; #X text 22 66 [tabwrite] writes floats into an array \, input values are set in the left inlet \, while the index is set on the right inlet., f 62; -#X connect 1 0 15 0; -#X connect 3 0 15 1; -#X connect 16 0 15 0; +#X obj 374 138 cnv 19 248 198 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 278 (subpatch) 0; +#X array tabwrite-ex 10 float 2; +#X coords 0 10 10 0 250 200 1 0 0; +#X restore 373 137 graph; +#X connect 1 0 14 0; +#X connect 2 0 14 1; +#X connect 15 0 14 0; diff --git a/doc/5.reference/tabwrite~-help.pd b/doc/5.reference/tabwrite~-help.pd index abb1481b1..9be0456bf 100644 --- a/doc/5.reference/tabwrite~-help.pd +++ b/doc/5.reference/tabwrite~-help.pd @@ -1,9 +1,5 @@ #N canvas 366 43 665 518 12; -#X obj 55 17 tabwrite~; -#N canvas 0 50 450 300 (subpatch) 0; -#X array buffer 1000 float 0; -#X coords 0 1 999 -1 200 100 1 0 0; -#X restore 431 177 graph; +#X obj 25 17 tabwrite~; #X text 167 363 creation argument initializes array name; #X obj 169 455 tabread; #X obj 229 455 tabwrite; @@ -96,14 +92,6 @@ #X obj 414 189 set-dsp-tgl; #X obj 190 99 osc~ 1000; #X obj 250 129 osc~ 2000; -#N canvas 0 50 450 250 (subpatch) 0; -#X array array11 150 float 0; -#X coords 0 1 149 -1 200 140 1 0 0; -#X restore 67 346 graph; -#N canvas 0 50 450 250 (subpatch) 0; -#X array array22 100 float 0; -#X coords 0 1 99 -1 200 140 1 0 0; -#X restore 294 346 graph; #X obj 95 212 bng 20 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; #X msg 208 201 set array11 array22; #X msg 220 231 set array22 array11; @@ -112,23 +100,38 @@ #X obj 95 138 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; #X text 46 21 [tabwrite~] works with multichannel signals if you give it more than one argument. Each channel is then written to a corresponding argument/table. The "set" message can also replace more than one table name. Note that the arrays do not need to be of the same length., f 66; #X obj 190 163 snake~ in; +#X obj 68 347 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 295 347 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 250 (subpatch) 0; +#X array array11 150 float 0; +#X coords 0 1 149 -1 200 140 1 0 0; +#X restore 67 346 graph; +#N canvas 0 50 450 250 (subpatch) 0; +#X array array22 100 float 0; +#X coords 0 1 99 -1 200 140 1 0 0; +#X restore 294 346 graph; #X connect 2 0 0 0; -#X connect 3 0 14 0; -#X connect 4 0 14 1; -#X connect 7 0 10 0; -#X connect 8 0 10 0; -#X connect 9 0 10 0; -#X connect 11 0 7 0; -#X connect 12 0 11 0; -#X connect 14 0 10 0; +#X connect 3 0 12 0; +#X connect 4 0 12 1; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 8 0; +#X connect 9 0 5 0; +#X connect 10 0 9 0; +#X connect 12 0 8 0; #X restore 511 320 pd multichannel; #X text 360 305 mutichannel signal support ----------->, f 20; #X text 44 69 [tabwrite~] records audio signals sequentially into one or more arrays. Sending it "bang" writes from beginning to end of the array. To avoid writing all the way to the end \, you can send a "stop" message at an appropriate later time. The "start" message allows setting the array location at which the first sample is written. (Starting and stopping occur on block boundaries \, typically multiples of 64 samples \, in the input signal.), f 80; -#X text 135 17 - write signals to arrays; +#X text 105 17 - write signals to arrays; #X text 446 469 updated for Pd version 0.54; -#X connect 8 0 13 0; -#X connect 10 0 13 0; -#X connect 14 0 13 0; -#X connect 15 0 13 0; -#X connect 26 0 13 0; -#X connect 28 0 27 0; +#X obj 432 178 cnv 19 198 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 300 (subpatch) 0; +#X array buffer 1000 float 0; +#X coords 0 1 999 -1 200 100 1 0 0; +#X restore 431 177 graph; +#X connect 7 0 12 0; +#X connect 9 0 12 0; +#X connect 13 0 12 0; +#X connect 14 0 12 0; +#X connect 25 0 12 0; +#X connect 27 0 26 0; diff --git a/doc/5.reference/text-object-help.pd b/doc/5.reference/text-object-help.pd index eb596e4c5..e9c010d08 100644 --- a/doc/5.reference/text-object-help.pd +++ b/doc/5.reference/text-object-help.pd @@ -869,7 +869,7 @@ #X connect 1 0 3 0; #X connect 2 0 1 0; #X restore 454 382 pd open; -#X text 484 331 open first example of the 4.Data.Structure section., f 20; +#X text 486 334 open first example of the 4.Data.Structure section., f 25; #X obj 82 288 print line; #X text 560 30 <= open to see scalat; #X connect 0 0 6 0; diff --git a/doc/5.reference/timer-help.pd b/doc/5.reference/timer-help.pd index e0eaf0f58..6bd97638d 100644 --- a/doc/5.reference/timer-help.pd +++ b/doc/5.reference/timer-help.pd @@ -1,32 +1,32 @@ -#N canvas 421 23 632 630 12; -#X msg 95 367 bang; -#X obj 63 397 timer; -#X obj 71 14 timer; -#X text 116 13 - measure logical time; -#X floatatom 63 423 7 0 0 0 - - - 0; -#X text 33 585 see also:; -#X obj 331 273 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X obj 113 597 delay; -#X obj 363 363 sel 1; -#X floatatom 363 448 5 0 0 0 - - - 0; -#X obj 331 312 t f f; -#X obj 158 597 metro; -#X obj 465 363 metro 1 90 permin; -#X obj 363 421 timer 90 permin; -#X text 365 586 updated for Pd version 0.47; -#X obj 112 573 realtime; -#X obj 180 573 cputime; -#X text 41 204 These symbols can also be preceded by "per" (as in "permin" \, "permsec" \, etc.) In this case \, 60 permin means 1/60 min (hence \, the same as 'BPM')., f 78; -#X text 49 136 - millisecond (msec for short) \; - seconds (sec) \; - minutes (min) \; - samples (samp) - depends on the sample rate the patch is running, f 67; -#X text 161 305 set tempo units; -#X msg 63 301 tempo 1 sec; -#X msg 73 326 tempo 1 msec; -#X text 390 260 Here \, the metronome outputs at intervals of one beat at 90 beats per minute as the timer also set to that tempo measures., f 29; -#X text 71 258 reset (set elapsed time to zero), f 18; -#X text 138 356 output elapsed time. You can click multiple times since it was last reset., f 25; -#X obj 203 598 text sequence; -#X text 122 414 elapsed time in the specified time units, f 20; -#X text 50 478 Note you need to reset the elapsed time to zero when you change the tempo message when the object is runnng \, otherwise you get funny results because the change takes effect immediately and gets applied to the remaining part of the elapsed time., f 75; +#N canvas 421 23 617 624 12; +#X msg 84 365 bang; +#X obj 52 395 timer; +#X obj 20 12 timer; +#X text 65 11 - measure logical time; +#X floatatom 52 421 7 0 0 0 - - - 0; +#X text 13 580 see also:; +#X obj 320 271 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X obj 93 592 delay; +#X obj 352 361 sel 1; +#X floatatom 352 446 5 0 0 0 - - - 0; +#X obj 320 310 t f f; +#X obj 138 592 metro; +#X obj 454 361 metro 1 90 permin; +#X obj 352 419 timer 90 permin; +#X text 407 568 updated for Pd version 0.47; +#X obj 92 568 realtime; +#X obj 160 568 cputime; +#X text 30 202 These symbols can also be preceded by "per" (as in "permin" \, "permsec" \, etc.) In this case \, 60 permin means 1/60 min (hence \, the same as 'BPM')., f 78; +#X text 38 134 - millisecond (msec for short) \; - seconds (sec) \; - minutes (min) \; - samples (samp) - depends on the sample rate the patch is running, f 67; +#X text 150 303 set tempo units; +#X msg 52 299 tempo 1 sec; +#X msg 62 324 tempo 1 msec; +#X text 379 258 Here \, the metronome outputs at intervals of one beat at 90 beats per minute as the timer also set to that tempo measures., f 29; +#X text 60 256 reset (set elapsed time to zero), f 18; +#X text 127 354 output elapsed time. You can click multiple times since it was last reset., f 25; +#X obj 183 593 text sequence; +#X text 111 412 elapsed time in the specified time units, f 20; +#X text 39 476 Note you need to reset the elapsed time to zero when you change the tempo message when the object is runnng \, otherwise you get funny results because the change takes effect immediately and gets applied to the remaining part of the elapsed time., f 75; #N canvas 700 98 489 311 reference 0; #X obj 18 52 cnv 5 450 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; #X obj 18 229 cnv 2 450 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; @@ -43,14 +43,14 @@ #X obj 18 157 cnv 1 450 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; #X obj 18 84 cnv 1 450 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; #X text 133 201 1) float - elapsed time in msec.; -#X restore 465 14 pd reference; -#X text 397 13 click =>; -#X obj 17 46 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X obj 17 555 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 24 54 The [timer] object measures elapsed logical time. Logical time moves forward as if all computation were instantaneous and as if all [delay] and [metro] objects were exact. By default \, the time unit is 1 millisecond \, but you can change this with the 'tempo' message (as in [delay] \, [metro] and [text sequence]) \, which takes a different tempo number and a time unit symbol. Possible symbols are:, f 82; -#X obj 45 265 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 363 392 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 465 392 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X restore 504 12 pd reference; +#X text 436 11 click =>; +#X obj 6 44 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 6 553 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 13 52 The [timer] object measures elapsed logical time. Logical time moves forward as if all computation were instantaneous and as if all [delay] and [metro] objects were exact. By default \, the time unit is 1 millisecond \, but you can change this with the 'tempo' message (as in [delay] \, [metro] and [text sequence]) \, which takes a different tempo number and a time unit symbol. Possible symbols are:, f 82; +#X obj 34 263 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 352 390 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 454 390 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X connect 0 0 1 1; #X connect 1 0 4 0; #X connect 6 0 10 0; diff --git a/doc/5.reference/unpack-help.pd b/doc/5.reference/unpack-help.pd index 6adb27bef..85c89b76a 100644 --- a/doc/5.reference/unpack-help.pd +++ b/doc/5.reference/unpack-help.pd @@ -1,4 +1,4 @@ -#N canvas 626 37 598 499 12; +#N canvas 529 47 598 499 12; #X floatatom 281 226 5 0 0 0 - - - 0; #X obj 116 463 pack; #X obj 57 14 unpack; diff --git a/doc/5.reference/vcf~-help.pd b/doc/5.reference/vcf~-help.pd index 62862a5da..0ff2bc4e7 100644 --- a/doc/5.reference/vcf~-help.pd +++ b/doc/5.reference/vcf~-help.pd @@ -57,7 +57,7 @@ #X text 36 129 [vcf~] can take a signal to set the resonant frequency as in an analog voltage controlled filter ("vcf" for short). It is thus more expensive but more powerful than [bp~]. The resonance "Q" or filter sharpness is still only set by control messages., f 83; #X text 371 395 Listen to how the white noise input is filtered. The higher the Q \, the more attenuation we have for frequencies besides the center frequency \, so the less wide the frequency band is., f 38; #X text 36 59 [vcf~] is a one-pole complex filter with outlets for the real (left) and imaginary (right) parts \, which are \, respectively \, a band-pass and a low-pass filter (that can be combined to allow other possibilities). The maximum gain is constant at 0dB \, what makes the lowpass output more like a bandpass really \, and similar to [bp~]., f 83; -#X text 245 475 ("low-pass"); +#X text 255 475 (low-pass); #X connect 0 0 32 0; #X connect 1 0 5 2; #X connect 5 0 15 0; diff --git a/doc/5.reference/writesf~-help.pd b/doc/5.reference/writesf~-help.pd index 18fcca3be..44459636e 100644 --- a/doc/5.reference/writesf~-help.pd +++ b/doc/5.reference/writesf~-help.pd @@ -1,4 +1,4 @@ -#N canvas 552 38 639 585 12; +#N canvas 506 40 639 585 12; #X msg 147 374 print; #X msg 128 320 start; #X msg 135 348 stop; diff --git a/extra/hilbert~-help.pd b/extra/hilbert~-help.pd index bb23931cc..07bf052a8 100644 --- a/extra/hilbert~-help.pd +++ b/extra/hilbert~-help.pd @@ -1,10 +1,5 @@ -#N canvas 608 46 607 415 12; +#N canvas 443 50 607 415 12; #X obj 47 214 hilbert~; -#N canvas 0 22 450 278 (subpatch) 0; -#X array real 882 float 0; -#X array imaginary 882 float 0; -#X coords 0 1 881 -1 300 170 1 0 0; -#X restore 281 151 graph; #X floatatom 47 125 4 0 0 0 - - - 0; #X text 23 379 see also:; #X obj 100 379 complex-mod~; @@ -39,7 +34,7 @@ #X obj 47 327 tabwrite~ real; #X obj 100 298 tabwrite~ imaginary; #X text 323 328 real = red / imaginary = green; -#N canvas 1105 147 263 139 init 0; +#N canvas 1103 147 263 139 init 0; #X obj 31 22 loadbang; #X msg 31 48 \; real width 2 \, color 900 \; imaginary width 2 \, color 90; #X connect 0 0 1 0; @@ -49,12 +44,18 @@ #X text 95 16 - hilbert transform; #X text 174 126 DSP on/off; #X obj 142 123 ../doc/5.reference/set-dsp-tgl; -#X connect 0 0 17 0; -#X connect 0 1 18 0; -#X connect 2 0 7 0; -#X connect 6 0 8 0; -#X connect 7 0 0 0; -#X connect 8 0 17 0; -#X connect 8 0 18 0; -#X connect 13 0 0 1; -#X connect 25 0 9 0; +#X obj 282 152 cnv 19 298 168 empty empty empty 20 12 0 12 #404040 #404040 0; +#N canvas 0 22 450 278 (subpatch) 0; +#X array real 882 float 0; +#X array imaginary 882 float 0; +#X coords 0 1 881 -1 300 170 1 0 0; +#X restore 281 151 graph; +#X connect 0 0 16 0; +#X connect 0 1 17 0; +#X connect 1 0 6 0; +#X connect 5 0 7 0; +#X connect 6 0 0 0; +#X connect 7 0 16 0; +#X connect 7 0 17 0; +#X connect 12 0 0 1; +#X connect 24 0 8 0; diff --git a/extra/loop~/loop~-help.pd b/extra/loop~/loop~-help.pd index a6eff62a2..57db08808 100644 --- a/extra/loop~/loop~-help.pd +++ b/extra/loop~/loop~-help.pd @@ -4,10 +4,6 @@ #X obj 265 435 print~; #X floatatom 105 287 7 0 0 0 - - - 0; #X obj 214 435 print~; -#N canvas 0 0 450 300 (subpatch) 0; -#X array sample 155944 float 0; -#X coords 0 1 155943 -1 250 150 1 0 0; -#X restore 347 406 graph; #X obj 296 253 soundfiler; #X obj 87 422 *~; #X obj 128 449 samphold~; @@ -60,26 +56,31 @@ #X obj 93 247 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X obj 214 392 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X obj 265 392 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X connect 0 0 29 0; -#X connect 2 0 35 0; -#X connect 5 0 28 0; -#X connect 6 0 8 0; -#X connect 7 0 8 1; -#X connect 8 0 32 0; -#X connect 9 0 10 0; -#X connect 10 0 7 0; -#X connect 11 0 36 0; -#X connect 22 0 30 0; -#X connect 29 0 36 0; -#X connect 30 0 5 0; -#X connect 31 0 5 0; -#X connect 32 0 20 0; -#X connect 35 0 36 1; -#X connect 36 0 3 0; -#X connect 36 0 6 0; -#X connect 36 0 7 1; -#X connect 36 1 1 0; -#X connect 36 1 6 1; -#X connect 38 0 36 0; -#X connect 39 0 3 0; -#X connect 40 0 1 0; +#X obj 348 407 cnv 19 248 148 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array sample 155944 float 2; +#X coords 0 1 155944 -1 250 150 1 0 0; +#X restore 347 406 graph; +#X connect 0 0 28 0; +#X connect 2 0 34 0; +#X connect 4 0 27 0; +#X connect 5 0 7 0; +#X connect 6 0 7 1; +#X connect 7 0 31 0; +#X connect 8 0 9 0; +#X connect 9 0 6 0; +#X connect 10 0 35 0; +#X connect 21 0 29 0; +#X connect 28 0 35 0; +#X connect 29 0 4 0; +#X connect 30 0 4 0; +#X connect 31 0 19 0; +#X connect 34 0 35 1; +#X connect 35 0 3 0; +#X connect 35 0 5 0; +#X connect 35 0 6 1; +#X connect 35 1 1 0; +#X connect 35 1 5 1; +#X connect 37 0 35 0; +#X connect 38 0 3 0; +#X connect 39 0 1 0; diff --git a/extra/lrshift~/lrshift~-help.pd b/extra/lrshift~/lrshift~-help.pd index db14fdb62..5dd6e11f6 100644 --- a/extra/lrshift~/lrshift~-help.pd +++ b/extra/lrshift~/lrshift~-help.pd @@ -1,19 +1,14 @@ #N canvas 513 80 652 407 12; -#X obj 265 326 print~; -#X obj 130 326 print~; -#X obj 54 326 print~; -#X text 84 244 shift left, f 5; -#X text 216 245 shift right, f 6; -#X obj 130 246 lrshift~ 1; -#X obj 265 245 lrshift~ -1; -#N canvas 0 22 450 300 (subpatch) 0; -#X array shiftin 64 float 1; -#A 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; -#X coords 0 1 63 0 250 140 1 0 0; -#X restore 384 144 graph; -#X obj 55 175 tabreceive~ shiftin; +#X obj 253 326 print~; +#X obj 118 326 print~; +#X obj 42 326 print~; +#X text 72 244 shift left, f 5; +#X text 204 245 shift right, f 6; +#X obj 118 246 lrshift~ 1; +#X obj 253 245 lrshift~ -1; +#X obj 43 175 tabreceive~ shiftin; #X obj 38 11 lrshift~; -#X msg 235 176 \; pd dsp \$1, f 10; +#X msg 229 176 \; pd dsp \$1, f 10; #X text 562 10 <= click; #N canvas 559 250 572 199 reference 0; #X obj 8 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; @@ -28,13 +23,13 @@ #X restore 468 11 pd reference; #X obj 5 42 cnv 1 640 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X obj 5 360 cnv 1 640 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X obj 73 290 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 285 292 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 151 293 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 61 290 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 273 292 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 139 293 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X text 106 11 - shift block elements left or right; -#X text 267 141 DSP on/off; -#X obj 235 139 ../../doc/5.reference/set-dsp-tgl; -#N canvas 775 164 356 502 multichannel 0; +#X text 261 141 DSP on/off; +#X obj 229 139 ../../doc/5.reference/set-dsp-tgl; +#N canvas 775 164 356 482 multichannel 0; #X msg 178 195 \; pd dsp \$1; #X text 210 158 DSP on/off; #X obj 63 173 snake~ out; @@ -42,31 +37,38 @@ #X obj 130 251 print~ R; #X obj 81 211 bng 19 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; #X obj 178 154 ../../doc/5.reference/set-dsp-tgl; +#X obj 63 109 tabreceive~ shiftin shiftin2; +#X obj 63 141 lrshift~ -2; +#X text 65 18 [lrshift~] has support for multichannel signals as it is possible from the output of [tabreceive~] and other objects in Pd., f 29; +#X obj 57 312 cnv 19 248 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; #N canvas 0 22 450 300 (subpatch) 0; #X array shiftin2 64 float 1; #A 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #X coords 0 1 63 0 250 140 1 0 0; -#X restore 38 324 graph; -#X obj 63 109 tabreceive~ shiftin shiftin2; -#X obj 63 141 lrshift~ -2; -#X text 65 18 [lrshift~] has support for multichannel signals as it is possible from the output of [tabreceive~] and other objects in Pd., f 29; +#X restore 56 311 graph; #X connect 2 0 3 0; #X connect 2 1 4 0; #X connect 5 0 4 0; #X connect 5 0 3 0; #X connect 6 0 0 0; -#X connect 8 0 9 0; -#X connect 9 0 2 0; +#X connect 7 0 8 0; +#X connect 8 0 2 0; #X restore 501 321 pd multichannel; #X text 350 306 mutichannel signal support ----------->, f 20; #X text 418 375 Updated for Pd version 0.54; #X text 41 58 Acting at whatever vector size the window is running at \, [lrshift~] shifts samples to the left (toward the beginning sample) or to the right. The argument gives the direction and the amount of the shift. The rightmost (or leftmost) samples are set to zero. This is mostly useful for FFT/spectral processing., f 82; +#X obj 385 145 cnv 19 248 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 300 (subpatch) 0; +#X array shiftin 64 float 1; +#A 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; +#X coords 0 1 63 0 250 140 1 0 0; +#X restore 384 144 graph; #X connect 5 0 1 0; #X connect 6 0 0 0; -#X connect 8 0 2 0; -#X connect 8 0 5 0; -#X connect 8 0 6 0; -#X connect 15 0 2 0; -#X connect 16 0 0 0; -#X connect 17 0 1 0; -#X connect 20 0 10 0; +#X connect 7 0 2 0; +#X connect 7 0 5 0; +#X connect 7 0 6 0; +#X connect 14 0 2 0; +#X connect 15 0 0 0; +#X connect 16 0 1 0; +#X connect 19 0 9 0; diff --git a/extra/output~-help.pd b/extra/output~-help.pd index 7b2e6f2e2..8e1f695f7 100644 --- a/extra/output~-help.pd +++ b/extra/output~-help.pd @@ -25,12 +25,12 @@ #X obj 419 318 osc~ 880; #X msg 334 318 level \$1; #X text 381 442 updated for Pd version 0.54; -#X obj 82 316 noise~; -#X obj 82 354 output~; +#X obj 82 299 noise~; +#X obj 82 337 output~; #X text 484 317 right input; #X text 381 253 left input; #X text 391 290 volume control; -#X text 22 277 mono input goes to both outputs, f 12; +#X text 22 260 mono input goes to both outputs, f 12; #X floatatom 334 291 7 0 1 0 - - - 0; #X msg 250 294 mute \$1; #X obj 250 266 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1; diff --git a/extra/pique/pique-help.pd b/extra/pique/pique-help.pd index 329204516..30e94a1c3 100644 --- a/extra/pique/pique-help.pd +++ b/extra/pique/pique-help.pd @@ -2,14 +2,6 @@ #X obj 47 11 pique; #X obj 116 194 rfft~; #X obj 39 151 osc~ 2000; -#N canvas 0 22 450 278 (subpatch) 0; -#X array fft-real 64 float 0; -#X coords 0 64 63 -64 200 140 1; -#X restore 496 96 graph; -#N canvas 0 22 450 278 (subpatch) 0; -#X array fft-imag 64 float 0; -#X coords 0 64 63 -64 200 140 1; -#X restore 496 265 graph; #X obj 116 268 tabwrite~ fft-real; #X obj 198 238 tabwrite~ fft-imag; #X obj 198 202 metro 1000; @@ -20,9 +12,7 @@ #X obj 116 151 osc~ 5000; #X text 20 308 message arguments: number of FFT points \, fft real part \, fft imaginary part \, maximum number of peaks to report.; #X text 97 12 - find peaks in an FFT spectrum; -#X msg 346 180 \; pd dsp \$1; -#X obj 346 153 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 371 154 DSP on/off; +#X msg 336 179 \; pd dsp \$1; #X obj 357 55 sigmund~; #X obj 5 43 cnv 1 710 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 639 12 <= click; @@ -45,13 +35,25 @@ #X text 554 458 updated for Pd 0.31; #X text 18 55 NOTE: [pique] is obsolete - consider using -->; #X text 17 79 [pique] takes unwindowed FFT analyses as input (they should be stored in arrays) and outputs a list of peaks \, giving their peak number \, frequency \, amplitude \, and phase (as a cosine/sine pair.), f 64; -#X connect 1 0 5 0; -#X connect 1 1 6 0; +#X obj 497 97 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X obj 497 266 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 22 450 278 (subpatch) 0; +#X array fft-real 64 float 0; +#X coords 0 64 63 -64 200 140 1; +#X restore 496 96 graph; +#N canvas 0 22 450 278 (subpatch) 0; +#X array fft-imag 64 float 0; +#X coords 0 64 63 -64 200 140 1; +#X restore 496 265 graph; +#X text 366 146 DSP on/off; +#X obj 336 143 ../../doc/5.reference/set-dsp-tgl; +#X connect 1 0 3 0; +#X connect 1 1 4 0; #X connect 2 0 1 0; -#X connect 7 0 5 0; -#X connect 7 0 6 0; +#X connect 5 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 5 0; +#X connect 7 0 9 0; #X connect 8 0 7 0; -#X connect 9 0 11 0; -#X connect 10 0 9 0; -#X connect 12 0 1 0; -#X connect 16 0 15 0; +#X connect 10 0 1 0; +#X connect 29 0 13 0; diff --git a/extra/sigmund~/sigmund~-help.pd b/extra/sigmund~/sigmund~-help.pd index 0d9eab0ba..376ae3b9d 100644 --- a/extra/sigmund~/sigmund~-help.pd +++ b/extra/sigmund~/sigmund~-help.pd @@ -1,10 +1,6 @@ #N canvas 426 47 631 621 12; #X declare -stdpath ./; #N canvas 629 23 564 665 using-with-tables 0; -#N canvas 0 50 450 300 (subpatch) 0; -#X array insignal 1024 float 0; -#X coords 0 1 1023 -1 200 140 1; -#X restore 48 500 graph; #X obj 310 564 phasor~; #X obj 310 597 tabwrite~ insignal; #X obj 284 564 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; @@ -33,20 +29,25 @@ #X msg 64 349 list insignal 512 512 44100; #X text 106 178 - optional debug flag (print debugging info if nonzero); #X text 22 212 Note that in this mode you can't have 'notes' output! Also note that if you're getting tracks output you may want to 'clear' the tracks before starting a new analysis from the beginning of the table., f 73; -#X connect 1 0 2 0; -#X connect 3 0 2 0; -#X connect 9 0 1 0; -#X connect 9 0 3 0; +#X obj 49 501 cnv 19 198 138 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#N canvas 0 50 450 300 (subpatch) 0; +#X array insignal 1024 float 0; +#X coords 0 1 1023 -1 200 140 1; +#X restore 48 500 graph; +#X connect 0 0 1 0; +#X connect 2 0 1 0; +#X connect 8 0 0 0; +#X connect 8 0 2 0; +#X connect 13 0 11 0; #X connect 14 0 12 0; #X connect 15 0 13 0; -#X connect 16 0 14 0; -#X connect 16 1 15 0; -#X connect 16 2 10 0; -#X connect 16 3 11 0; -#X connect 23 0 21 0; -#X connect 24 0 16 0; -#X connect 25 0 16 0; -#X connect 26 0 16 0; +#X connect 15 1 14 0; +#X connect 15 2 9 0; +#X connect 15 3 10 0; +#X connect 22 0 20 0; +#X connect 23 0 15 0; +#X connect 24 0 15 0; +#X connect 25 0 15 0; #X restore 457 482 pd using-with-tables; #X obj 77 490 phasor~; #X floatatom 77 544 8 0 0 0 - - - 0; From 5e9739390995f236ef4c2e3ad040b4e32ea05ffa Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 13 Mar 2024 00:05:53 -0300 Subject: [PATCH 101/450] document 'MPE' (MIDI POLYPHONIC EXPRESSION) closes https://github.com/pure-data/pddp/issues/171 --- doc/5.reference/clone-help.pd | 20 +- doc/5.reference/midi-help.pd | 303 +++++++++++++++++++++---------- doc/5.reference/textfile-help.pd | 98 +++++----- doc/5.reference/textfile.txt | 5 +- 4 files changed, 272 insertions(+), 154 deletions(-) diff --git a/doc/5.reference/clone-help.pd b/doc/5.reference/clone-help.pd index 507850ffa..2dc31e729 100644 --- a/doc/5.reference/clone-help.pd +++ b/doc/5.reference/clone-help.pd @@ -1,4 +1,4 @@ -#N canvas 305 29 794 703 12; +#N canvas 305 29 787 709 12; #X declare -stdpath ./; #X floatatom 223 250 5 57 83 0 - - - 0; #X obj 223 290 t b f, f 9; @@ -126,16 +126,18 @@ #X text 486 467 "all" sends a message to all instances, f 21; #X text 364 286 <-- resize the number of instances; #X text 24 46 [clone] creates any number of copies of an abstraction (a patch loaded as an object in another patch). By default "\$1" is set to the instance number within each copy (counted from 0 unless overridden by the "-s" flag). You can prevent '\$1' from reflecting the instance number with the "-x" flag. Arguments must be filename and number of copies \, additional arguments are passed to the copies and appear as \$2 and onward (or \$1 and onward with the "-x" flag)., f 104; -#X text 23 197 Signal inlets can get non float control messages with the 'fwd' argument in the same way \, but signals are sent to all the instances. See [pd multichannel] example for more details on how signal distribution works in [clone]., f 104; #X listbox 353 546 7 0 0 0 - - - 0; -#X text 23 121 [clone]'s inlets/outlets correspond to those of the contained patch \, and may be control and/or signal inlets/outlets (this example has one control inlet plus one signal and another control outlet). You can click on the clone object to see the first of the created instances. At least one control inlet is present even if the abstraction has none so [clone] can receive the 'vis' and 'resize' messages. The way control inlets/outlets forward messages is shown below., f 104; #X text 410 546 control data is preceded by instance number; #X obj 193 679 poly; #X text 80 623 Note: for backwards compatibility \, you can also invoke this as "clone 16 clone-abstraction" (for instance) \, swapping the abstraction name and the number of voices., f 91; -#X text 54 412 Open or close copy number 2:, f 14; -#X floatatom 165 344 5 0 3 0 - - - 0; -#X text 24 257 Check [poly]'s help for a polyphonic synth example with [clone] and a list input., f 25; -#X text 25 330 Just a float sends an empty list to the instance \, which becomes a bang!, f 19; +#X text 54 417 Open or close copy number 2:, f 14; +#X floatatom 165 354 5 0 3 0 - - - 0; +#X text 24 255 Check [poly]'s help for a polyphonic synth example with [clone] and a list input., f 25; +#X text 25 340 Just a float sends an empty list to the instance \, which becomes a bang!, f 19; +#X text 23 121 [clone]'s inlets/outlets correspond to those of the contained patch and may be control and/or signal inlets/outlets. This example has one control inlet. It also has a signal and another control outlet. You can click on the [clone] object to see the first of the cloned instances. At least one control inlet is present even if the abstraction has none \, so [clone] can receive the 'vis' and 'resize' messages. The way control inlets/outlets forward messages is shown below., f 104; +#X text 23 197 Signal inlets can get non float control messages via their 2nd outlet in the same way \, but signals are sent to all the instances. See [pd multichannel] example for more details on how signal distribution works in [clone]., f 104; +#X obj 74 303 poly; +#X obj 236 678 notein; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 1 1 11 1; @@ -156,8 +158,8 @@ #X connect 33 0 4 0; #X connect 34 0 3 0; #X connect 36 0 9 0; -#X connect 36 1 44 0; +#X connect 36 1 43 0; #X connect 37 0 38 0; #X connect 37 0 29 1; #X connect 38 0 36 0; -#X connect 50 0 36 0; +#X connect 48 0 36 0; diff --git a/doc/5.reference/midi-help.pd b/doc/5.reference/midi-help.pd index df9d0d7e8..ac370b66c 100644 --- a/doc/5.reference/midi-help.pd +++ b/doc/5.reference/midi-help.pd @@ -1,63 +1,62 @@ -#N canvas 207 23 1071 715 12; +#N canvas 184 23 1071 723 12; #X obj 529 228 noteout; #X obj 675 312 pgmout; #X obj 560 312 bendout; -#X floatatom 26 447 5 0 0 0 - - - 0; -#X text 31 379 pitch bend, f 5; +#X floatatom 26 423 5 0 0 0 - - - 0; +#X text 31 355 pitch bend, f 5; #X obj 675 237 ctlout; #X obj 779 312 touchout; #X obj 895 312 polytouchout; -#X obj 69 553 midiin; -#X obj 411 551 sysexin; +#X obj 69 523 midiin; +#X obj 411 521 sysexin; #X obj 794 641 midiout; -#X obj 241 561 midirealtimein; -#X obj 241 419 touchin; -#X obj 340 399 polytouchin; +#X obj 241 531 midirealtimein; +#X obj 241 395 touchin; +#X obj 350 375 polytouchin; #X obj 26 167 notein; #X text 79 219 velocity; #X text 90 193 channel; #X obj 280 159 ctlin; #X text 311 247 value; -#X text 440 427 channel; -#X text 235 379 channel aftertouch, f 10; -#X text 341 358 polyphonic aftertouch, f 10; -#X text 372 473 aftertouch value; -#X floatatom 261 330 0 0 0 0 - - - 0; -#X text 289 331 value; +#X text 450 403 channel; +#X text 235 355 channel aftertouch, f 10; +#X text 351 334 polyphonic aftertouch, f 10; +#X text 382 449 aftertouch value; +#X floatatom 251 317 0 0 0 0 - - - 0; +#X text 279 318 value; #X text 22 147 (omni); #X obj 166 192 notein 1; #X text 157 157 (channel 1); #X text 324 158 (all controllers \, omni); -#X floatatom 65 324 0 0 0 0 - - - 0; -#X text 22 325 value; -#X obj 65 298 ctlin 4; -#X floatatom 111 324 0 0 0 0 - - - 0; +#X floatatom 55 311 0 0 0 0 - - - 0; +#X text 12 312 value; +#X obj 55 285 ctlin 4; +#X floatatom 101 311 0 0 0 0 - - - 0; #X text 507 172 note; #X text 886 246 touch; #X text 931 255 note; -#X text 121 297 (controller 4); +#X text 111 284 (controller 4); #X text 707 158 value; #X text 740 211 channel; #X obj 848 210 ctlout 7; -#X text 24 608 raw MIDI byte by byte (except real-time messages), f 27; -#X text 236 615 real-time messages; -#X text 32 510 These three below are always omni \, don't take arguments and output the port number on the right outlet:; +#X text 236 585 real-time messages; +#X text 32 480 These three below are always omni \, don't take arguments and output the port number on the right outlet:; #X text 725 185 controller #; #X text 327 217 controller #; #X text 61 241 note; #X text 159 243 note; #X text 200 243 velocity; -#X text 409 450 note; -#X obj 26 419 bendin, f 7; +#X text 419 426 note; +#X obj 26 395 bendin, f 7; #X text 612 197 channel; #X text 548 171 velocity; -#X text 393 607 system exclusive messages only \, byte by byte, f 16; +#X text 393 577 system exclusive messages only \, byte by byte, f 16; #X text 886 262 value; #X text 339 185 channel/port; #X text 165 171 (port 1); -#X text 139 326 channel/port; -#X obj 261 300 ctlin 7 17; -#X text 339 294 (controller 7 \, channel 1/port 2), f 17; +#X text 129 313 channel/port; +#X obj 251 287 ctlin 7 17; +#X text 329 281 (controller 7 \, channel 1/port 2), f 17; #X text 15 8 MIDI INPUTS: Inputs are omni by default \, an optional argument sets the channel/port and removes the rightmost outlet (which outputs this information). For [ctlin] \, a first optional argument sets controller number and suppresses its corresponding outlet \, and a second argument sets the channel and also suppresses its corresponding outlet., f 70; #X text 550 55 MIDI OUTPUTS: Outputs are set to channel 1 / port 1 by default \, but they also take a channel/port argument (where channels from 17 represent port 2 \, from 33 port 3 and so on). The [ctlout] object takes control and channel/port arguments. Inlets are not suppressed by arguments and change the parameters., f 67; #X text 808 143 (controller 7 \, channel/port 1), f 15; @@ -72,16 +71,16 @@ #X floatatom 166 221 4 0 127 0 - - - 0; #X floatatom 280 246 4 0 127 0 - - - 0; #X floatatom 296 217 4 0 127 0 - - - 0; -#X floatatom 377 449 4 0 127 0 - - - 0; -#X floatatom 340 471 4 0 127 0 - - - 0; -#X floatatom 127 447 4 0 127 0 - - - 0; -#X floatatom 241 447 4 0 127 0 - - - 0; -#X floatatom 69 582 4 0 127 0 - - - 0; -#X floatatom 241 590 4 0 127 0 - - - 0; -#X floatatom 108 582 4 0 127 0 - - - 0; -#X floatatom 411 580 4 0 127 0 - - - 0; -#X floatatom 457 586 4 0 127 0 - - - 0; -#X floatatom 336 590 4 0 127 0 - - - 0; +#X floatatom 387 425 4 0 127 0 - - - 0; +#X floatatom 350 447 4 0 127 0 - - - 0; +#X floatatom 127 423 4 0 127 0 - - - 0; +#X floatatom 241 423 4 0 127 0 - - - 0; +#X floatatom 69 552 4 0 127 0 - - - 0; +#X floatatom 241 560 4 0 127 0 - - - 0; +#X floatatom 108 552 4 0 127 0 - - - 0; +#X floatatom 411 550 4 0 127 0 - - - 0; +#X floatatom 457 556 4 0 127 0 - - - 0; +#X floatatom 336 560 4 0 127 0 - - - 0; #X floatatom 959 183 4 0 127 0 - - - 0; #X floatatom 848 183 4 0 127 0 - - - 0; #X floatatom 694 184 4 0 127 0 - - - 0; @@ -96,18 +95,18 @@ #X floatatom 312 184 0 1 64 0 - - - 0; #X floatatom 219 220 0 1 64 0 - - - 0; #X floatatom 65 193 0 1 64 0 - - - 0; -#X floatatom 72 447 0 1 64 0 - - - 0; -#X floatatom 287 447 0 1 64 0 - - - 0; -#X floatatom 414 427 0 1 64 0 - - - 0; -#X text 561 12 MIDI Input/Output objects; -#X obj 127 419 pgmin 2; -#X text 110 377 program change (channel 2), f 14; -#X text 73 468 ch; -#X text 289 467 ch; -#X text 20 468 value; -#X text 159 448 value; -#X text 233 467 value; -#X obj 529 40 cnv 1 540 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X floatatom 72 423 0 1 64 0 - - - 0; +#X floatatom 287 423 0 1 64 0 - - - 0; +#X floatatom 424 403 0 1 64 0 - - - 0; +#X text 558 12 MIDI Input/Output objects; +#X obj 127 395 pgmin 2; +#X text 110 353 program change (channel 2), f 14; +#X text 73 444 ch; +#X text 289 443 ch; +#X text 20 444 value; +#X text 159 424 value; +#X text 233 443 value; +#X obj 526 40 cnv 1 540 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X obj 7 671 cnv 1 1055 1 empty empty empty 8 12 0 13 #000000 #000000 0; #N canvas 502 23 566 293 reference 0; #N canvas 686 71 588 563 reference 0; @@ -335,18 +334,17 @@ #X text 350 247 ==>; #X restore 856 9 pd reference; #X text 954 10 <= click; -#X obj 529 4 cnv 1 1 35 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 526 4 cnv 1 1 35 empty empty empty 8 12 0 13 #000000 #000000 0; #X floatatom 794 591 4 0 0 0 - - - 0; #X text 563 573 In order to use MIDI Input or output objects \, be sure to set MIDI devices in:, f 29; #X text 593 624 Preferences --> MIDI; #X msg 794 562 144 \, 68 \, 120; #X text 891 556 note on as a stream of raw MIDI., f 19; #X text 919 592 note off as a MIDI packet list, f 18; -#X text 37 641 (sysex supported); #X text 540 498 Raw MIDI output is provided by [midiout]. It deals with a stream of floats or MIDI packet lists. It doesn't take arguments and the 2nd inlet sets port number. You can use [midiout] to send raw real-time and sysex messages as well., f 70; #X text 75 166 *; -#X text 81 418 **; -#X text 184 418 ***; +#X text 81 394 **; +#X text 184 394 ***; #X text 585 229 *; #X text 615 311 **; #X text 724 311 ***; @@ -354,44 +352,163 @@ #X text 539 457 *** Program change values in [pgmin] and [pgmout] are indexed from 1 \, which means that the possible values are from 1 to 128 (not 0 to 127)!, f 70; #X text 539 346 * Release velocity is not supported \, [noteout] only sends Note On velocities and for [notein] a release velocity becomes 0 (commonly interpreted as a "note off"). Tru "note off" messages are still supported via [midiin] and [midiout]., f 70; #X msg 838 599 128 68 100; -#X connect 8 0 77 0; -#X connect 8 1 79 0; -#X connect 9 0 80 0; -#X connect 9 1 81 0; -#X connect 11 0 78 0; -#X connect 11 1 82 0; -#X connect 12 0 76 0; -#X connect 12 1 98 0; -#X connect 13 0 74 0; -#X connect 13 1 73 0; -#X connect 13 2 99 0; -#X connect 14 0 66 0; -#X connect 14 1 69 0; -#X connect 14 2 96 0; -#X connect 17 0 71 0; -#X connect 17 1 72 0; -#X connect 17 2 94 0; -#X connect 26 0 70 0; -#X connect 26 1 95 0; +#X text 16 578 raw MIDI byte by byte except real-time messages (sysex supported), f 28; +#X text 357 637 <-- Open for MPE support; +#N canvas 80 23 1024 708 MPE_(MIDI-POLYPHONIC-EXPRESSION) 0; +#X obj 247 215 ctlin; +#X obj 238 277 list prepend; +#X obj 331 600 swap; +#X obj 327 568 bendin; +#X listbox 238 311 12 0 0 0 - - - 0; +#X listbox 331 629 11 0 0 0 - - - 0; +#X obj 238 347 route 1 2 3 4, f 30; +#X obj 331 669 route 1 2 3 4; +#X obj 238 420 route 74; +#X obj 238 247 swap; +#X text 331 312 channel \, controller # \, value; +#X floatatom 237 461 5 0 0 0 - - - 0; +#X floatatom 289 385 5 0 0 0 - - - 0; +#X floatatom 341 385 5 0 0 0 - - - 0; +#X floatatom 393 385 5 0 0 0 - - - 0; +#X text 21 18 MIDI Polyphonic Expression (MPE) enables things like control MIDI messages for independent notes. For that \, it uses the MIDI channel to distinguish polyphonic voices \, so that particular MIDI messages coming into that channel can be applied to a single voice note individually., f 70; +#X obj 115 597 swap; +#X listbox 115 626 11 0 0 0 - - - 0; +#X obj 115 666 route 1 2 3 4; +#X obj 111 565 touchin; +#X obj 52 226 notein; +#X obj 46 293 list prepend; +#X obj 46 263 pack; +#X obj 46 332 route 1 2 3 4, f 14; +#X listbox 69 405 9 0 0 0 - - - 0; +#X listbox 93 382 9 0 0 0 - - - 0; +#X listbox 117 359 9 0 0 0 - - - 0; +#X text 21 493 Aftertouch and pitch bend are also common messages used in MPE. You can have up to 16 voices/channels in MPE \, but in these examples we're only considering 4 channels/voices., f 70; +#X listbox 46 428 9 0 0 0 - - - 0; +#X obj 813 55 poly; +#X obj 607 545 route 1; +#X obj 607 579 route note cc touch bend; +#X listbox 607 679 11 0 0 0 - - - 0; +#X listbox 648 655 11 0 0 0 - - - 0; +#X listbox 689 631 11 0 0 0 - - - 0; +#X listbox 730 608 11 0 0 0 - - - 0; +#X text 558 19 When dealing with polyphonic synths in Pure Data \, you'll probably use [clone]. An example for that is given in the help file of [poly]. Check it out., f 61; +#X text 874 208 see also:; +#X obj 890 232 clone; +#X listbox 607 514 14 0 0 0 - - - 0; +#X obj 613 216 notein; +#X obj 607 282 list prepend; +#X obj 607 253 pack; +#X obj 688 247 list append note; +#X obj 722 276 ctlin; +#X obj 713 338 list prepend; +#X obj 713 308 swap; +#X obj 794 306 list append cc; +#X obj 737 370 touchin; +#X obj 737 405 list prepend; +#X obj 818 373 list append touch; +#X obj 761 477 list prepend; +#X obj 761 442 bendin; +#X obj 842 445 list append bend; +#X text 21 90 Pure Data does not have any special object to deal with MPE \, but this subpatch shows a simple strategy to deal with it using regular MIDI objects. Below to the left we prepend the channel number to route Note On messages. We them route by MIDI channel (which corresponds to the voice number). Below to the right we make a list that starts with the MIDI channel \, then controller number and value. You can furtherly route by controller number and 74 is commonly used in MPE., f 70; +#X text 558 85 So instead of using [route] to access independent data for each voice \, you can just send the list directly into [clone] \, which routes the message to different cloned copies of an abstraction. You should then tag each MIDI message so they can be routed and managed inside the abstraction. The example below shows a template for that. The [route 1] object gets messages for "voice 1" and its output relates to the inlet of a [clone] object., f 61; +#X text 671 546 messages for "voice 1"; +#X connect 0 0 9 0; +#X connect 0 1 9 1; +#X connect 0 2 1 1; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 3 1 2 1; +#X connect 4 0 6 0; +#X connect 5 0 7 0; +#X connect 6 0 8 0; +#X connect 6 1 12 0; +#X connect 6 2 13 0; +#X connect 6 3 14 0; +#X connect 8 0 11 0; +#X connect 9 0 1 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 19 0 16 0; +#X connect 19 1 16 1; +#X connect 20 0 22 0; +#X connect 20 1 22 1; +#X connect 20 2 21 1; +#X connect 21 0 23 0; +#X connect 22 0 21 0; +#X connect 23 0 28 0; +#X connect 23 1 24 0; +#X connect 23 2 25 0; +#X connect 23 3 26 0; +#X connect 30 0 31 0; +#X connect 31 0 32 0; +#X connect 31 1 33 0; +#X connect 31 2 34 0; +#X connect 31 3 35 0; +#X connect 39 0 30 0; +#X connect 40 0 42 0; +#X connect 40 1 42 1; +#X connect 40 2 43 0; +#X connect 41 0 39 0; +#X connect 42 0 41 0; +#X connect 43 0 41 1; +#X connect 44 0 46 0; +#X connect 44 1 46 1; +#X connect 44 2 47 0; +#X connect 45 0 39 0; +#X connect 46 0 45 0; +#X connect 47 0 45 1; +#X connect 48 0 49 0; +#X connect 48 1 50 0; +#X connect 49 0 39 0; +#X connect 50 0 49 1; +#X connect 51 0 39 0; +#X connect 52 0 51 0; +#X connect 52 1 53 0; +#X connect 53 0 51 1; +#X restore 100 637 pd MPE_(MIDI-POLYPHONIC-EXPRESSION); +#X text 20 685 see also:; +#X obj 97 686 poly; +#X obj 138 686 clone; +#X obj 188 686 makenote; +#X connect 8 0 76 0; +#X connect 8 1 78 0; +#X connect 9 0 79 0; +#X connect 9 1 80 0; +#X connect 11 0 77 0; +#X connect 11 1 81 0; +#X connect 12 0 75 0; +#X connect 12 1 97 0; +#X connect 13 0 73 0; +#X connect 13 1 72 0; +#X connect 13 2 98 0; +#X connect 14 0 65 0; +#X connect 14 1 68 0; +#X connect 14 2 95 0; +#X connect 17 0 70 0; +#X connect 17 1 71 0; +#X connect 17 2 93 0; +#X connect 26 0 69 0; +#X connect 26 1 94 0; #X connect 31 0 29 0; #X connect 31 1 32 0; -#X connect 49 0 3 0; -#X connect 49 1 97 0; -#X connect 57 0 23 0; -#X connect 67 0 0 2; -#X connect 68 0 2 0; -#X connect 83 0 62 0; -#X connect 84 0 39 0; -#X connect 85 0 5 1; -#X connect 86 0 5 0; -#X connect 87 0 0 1; -#X connect 88 0 0 0; -#X connect 89 0 1 0; -#X connect 90 0 6 0; -#X connect 91 0 7 0; -#X connect 92 0 7 1; -#X connect 93 0 5 2; -#X connect 101 0 75 0; -#X connect 113 0 10 0; -#X connect 116 0 113 0; -#X connect 130 0 10 0; +#X connect 48 0 3 0; +#X connect 48 1 96 0; +#X connect 56 0 23 0; +#X connect 66 0 0 2; +#X connect 67 0 2 0; +#X connect 82 0 61 0; +#X connect 83 0 39 0; +#X connect 84 0 5 1; +#X connect 85 0 5 0; +#X connect 86 0 0 1; +#X connect 87 0 0 0; +#X connect 88 0 1 0; +#X connect 89 0 6 0; +#X connect 90 0 7 0; +#X connect 91 0 7 1; +#X connect 92 0 5 2; +#X connect 100 0 74 0; +#X connect 112 0 10 0; +#X connect 115 0 112 0; +#X connect 128 0 10 0; diff --git a/doc/5.reference/textfile-help.pd b/doc/5.reference/textfile-help.pd index 5e5cc87b8..6b228d96e 100644 --- a/doc/5.reference/textfile-help.pd +++ b/doc/5.reference/textfile-help.pd @@ -1,34 +1,32 @@ -#N canvas 281 58 921 551 12; -#X msg 271 61 rewind; -#X obj 417 434 print done; -#X text 503 222 read a file; -#X text 555 250 write one; -#X text 28 512 see also:; -#X obj 364 383 textfile; -#X msg 374 223 read textfile.txt; -#X obj 107 513 qlist; +#N canvas 265 44 918 598 12; +#X msg 259 68 rewind; +#X obj 412 483 print done; +#X text 500 265 read a file; +#X text 516 294 write one; +#X text 28 560 see also:; +#X obj 359 432 textfile; +#X msg 371 266 read textfile.txt; +#X obj 107 561 qlist; #X obj 25 14 textfile; -#X text 324 60 go to beginning; -#X msg 385 251 write /tmp/textfile.txt; -#X msg 399 283 write /tmp/textfile2.txt cr; -#X text 601 275 write a file \, terminating lines only with carriage return (omitting semicolons.) You can read files this way too \, in which case carriage returns are mapped to semicolons., f 42; -#X msg 448 309 read textfile.txt cr; -#X msg 311 114 clear; -#X text 355 113 empty the object; -#X text 452 142 add a message; -#X text 40 388 You can also use this object simply for storing heterogeneous sequences of lists., f 33; -#X msg 363 197 set 2 4 6 8; -#X text 448 197 clear and then add one message; -#X msg 332 142 add cis boom bah; -#X msg 348 171 add2 bang; -#X text 426 171 add an unterminated message; -#X text 40 252 To record textual messages and save them to a file \, first send "clear" to empty the qlist and "add" to add messages (terminated with semicolons.) The message \, "add2" adds a list of atoms without finishing with a semicolon in case you want to make variable-length messages., f 33; -#X msg 454 339 print; -#X text 496 339 debugging printout; -#X text 692 512 updated for Pd version 0.33; +#X text 312 67 go to beginning; +#X msg 390 328 write /tmp/textfile2.txt cr; +#X text 592 320 write a file \, terminating lines only with carriage return (omitting semicolons.) You can read files this way too \, in which case carriage returns are mapped to semicolons., f 42; +#X msg 299 121 clear; +#X text 343 120 empty the object; +#X text 440 149 add a message; +#X text 45 426 You can also use this object simply for storing heterogeneous sequences of lists., f 27; +#X msg 351 204 set 2 4 6 8; +#X text 436 204 clear and then add one message; +#X msg 320 149 add cis boom bah; +#X msg 336 178 add2 bang; +#X text 414 178 add an unterminated message; +#X text 46 262 To record textual messages and save them to a file \, first send "clear" to empty the qlist and "add" to add messages (terminated with semicolons.) The message \, "add2" adds a list of atoms without finishing with a semicolon in case you want to make variable-length messages., f 27; +#X msg 445 384 print; +#X text 487 384 debugging printout; +#X text 692 560 updated for Pd version 0.33; #X text 106 14 - read and write text files; -#X obj 159 513 text; -#X text 197 512 (newer and better replacement for textfile); +#X obj 159 561 text; +#X text 197 560 (newer and better replacement for textfile); #X obj 9 45 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 0; #N canvas 677 95 575 388 reference 0; #X obj 8 42 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; @@ -53,27 +51,31 @@ #X text 150 337 NONE; #X restore 737 14 pd reference; #X text 831 14 <= click; -#X obj 364 463 print line; -#X text 448 463 output lines in sequence., f 27; -#X text 500 435 output a bang when you hit the end of the sequence.; -#X text 435 383 <--; -#X text 464 382 you can click on the object to edit its contents (like [text define]), f 36; -#X obj 417 409 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 9 496 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 318 87 output a whole line and go to the next; -#X obj 293 87 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X text 40 127 The [textfile] object reads and writes text files to and from memory. You can read a file and output sequential lines as lists \, or collect lines and write them out. You can use this object to generate "models" for Gem \, for instance., f 33; +#X obj 359 512 print line; +#X text 443 512 output lines in sequence., f 27; +#X text 495 484 output a bang when you hit the end of the sequence.; +#X text 430 432 <--; +#X text 459 431 you can click on the object to edit its contents (like [text define]), f 36; +#X obj 412 458 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 9 546 cnv 1 900 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 306 94 output a whole line and go to the next; +#X obj 281 94 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X text 47 122 The [textfile] object reads and writes text files to and from memory. You can read a file and output sequential lines as lists \, or collect lines and write them out. You can use this object to generate "models" for Gem \, for instance., f 27; +#X msg 405 354 read /tmp/textfile.txt cr; +#X msg 379 295 write textfile.txt; +#X obj 371 238 loadbang; #X connect 0 0 5 0; -#X connect 5 0 33 0; -#X connect 5 1 38 0; +#X connect 5 0 31 0; +#X connect 5 1 36 0; #X connect 6 0 5 0; #X connect 10 0 5 0; -#X connect 11 0 5 0; -#X connect 13 0 5 0; -#X connect 14 0 5 0; +#X connect 12 0 5 0; +#X connect 16 0 5 0; #X connect 18 0 5 0; -#X connect 20 0 5 0; -#X connect 21 0 5 0; -#X connect 24 0 5 0; -#X connect 38 0 1 0; +#X connect 19 0 5 0; +#X connect 22 0 5 0; +#X connect 36 0 1 0; +#X connect 39 0 5 0; #X connect 41 0 5 0; +#X connect 42 0 5 0; +#X connect 43 0 6 0; diff --git a/doc/5.reference/textfile.txt b/doc/5.reference/textfile.txt index 99d21c093..d318b02e5 100644 --- a/doc/5.reference/textfile.txt +++ b/doc/5.reference/textfile.txt @@ -1,6 +1,3 @@ 2 4 6 8; cis boom bah; -cis boom bah; -cis boom bah; -cis boom bah; -cis boom bah; +bang \ No newline at end of file From edc75dbd988cb6e3e70a650585315790d625efca Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 13 Mar 2024 00:12:47 -0300 Subject: [PATCH 102/450] try and fix trailing white space and compilation error --- doc/5.reference/textfile.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/5.reference/textfile.txt b/doc/5.reference/textfile.txt index d318b02e5..8fe3d870f 100644 --- a/doc/5.reference/textfile.txt +++ b/doc/5.reference/textfile.txt @@ -1,3 +1,3 @@ 2 4 6 8; cis boom bah; -bang \ No newline at end of file +bang \ No newline at end of file From 87f433c3aaff32d779900d136f04bc703b71b9fc Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Wed, 13 Mar 2024 18:07:24 +0100 Subject: [PATCH 103/450] add sys_getfunbyname() API function This allows to get a Pd API function pointer by name. It returns NULL if the function does not exist. For example, this allows to use recently introduced API functions while providing a fallback for older Pd versions. --- src/m_pd.h | 5 +++++ src/s_loader.c | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/m_pd.h b/src/m_pd.h index c658fa555..74988b6e9 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -904,6 +904,11 @@ static inline int PD_BIGORSMALL(t_float f) /* exponent outside (-512,512) */ /* get version number at run time */ EXTERN void sys_getversion(int *major, int *minor, int *bugfix); + /* get a Pd API function pointer by name. Returns NULL if the function + does not exist. For example, This allows to use recently introduced API + functions while providing a fallback for older Pd versions. */ +EXTERN t_method sys_getfunbyname(const char *name); + /* get floatsize at run time */ EXTERN unsigned int sys_getfloatsize(void); diff --git a/src/s_loader.c b/src/s_loader.c index 0aef37259..a9a9289f9 100644 --- a/src/s_loader.c +++ b/src/s_loader.c @@ -669,3 +669,27 @@ static int sys_do_load_abs(t_canvas *canvas, const char *objectname, } return (0); } + +t_method sys_getfunbyname(const char *name) +{ +#ifdef _WIN32 + HMODULE module; + /* Get a handle to the actual module that contains the Pd API functions. + For this we just have to pass *any* Pd API function to GetModuleHandleEx(). + NB: GetModuleHandle(NULL) wouldn't work because it would return a handle + to the main executable and GetProcAddress(), unlike dlsym(), does not + reach into its dependencies. */ + if (GetModuleHandleEx( + GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, + (LPCSTR)&pd_typedmess, &module)) + return (t_method)GetProcAddress(module, name); + else + { + fprintf(stderr, "GetModuleHandleEx() failed with error code %d\n", + GetLastError()); + return NULL; + } +#else + return (t_method)dlsym(dlopen(NULL, RTLD_NOW), name); +#endif +} From 3823dc0f72fd8abeabcf941292b66b6896ccdd76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 14 Mar 2024 13:32:37 +0100 Subject: [PATCH 104/450] Add PD_VERSION and PD_VERSION_CODE macros to easily do a compile-time check for Pd-versions: ``` #if PD_VERSION_CODE < PD_VERSION(0,56,0) # error this code requires at least Pd-0.56.0 #endif ``` runtime check: ``` int major, minor, bugfix; sys_getversion(&major, &minor, &bugfix); if (PD_VERSION(major, minor, bugfix) < PD_VERSION(0, 52, 0)) { pd_error(0, "you can only use this in Pd>=0.52.0"); } ``` --- src/m_pd.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/m_pd.h b/src/m_pd.h index c658fa555..77d195975 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -12,6 +12,16 @@ extern "C" { #define PD_MINOR_VERSION 54 #define PD_BUGFIX_VERSION 1 #define PD_TEST_VERSION "" + +/* compile-time version check: + #if PD_VERSION_CODE < PD_VERSION(0, 56, 0) + // put legacy code for Pd<<0.56 in here + #endif + */ +#define PD_VERSION(major, minor, bugfix) \ + (((major) << 16) + ((minor) << 8) + ((bugfix) > 255 ? 255 : (bugfix))) +#define PD_VERSION_CODE PD_VERSION(PD_MAJOR_VERSION, PD_MINOR_VERSION, PD_BUGFIX_VERSION) + extern int pd_compatibilitylevel; /* e.g., 43 for pd 0.43 compatibility */ /* old name for "MSW" flag -- we have to take it for the sake of many old From a1b81e945d07ad295d5e4258d1b44fb9d1ba585c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 14 Mar 2024 13:40:49 +0100 Subject: [PATCH 105/450] have sys_getversion() always return the PD_VERSION_CODE. So a runtime version check boils down to: ``` if(sys_getversion(0,0,0) < PD_VERSION_CODE(0,56,0)) { pd_error(0, "this requires at least Pd-0.56.0"); } ``` --- src/m_glob.c | 4 +++- src/m_pd.h | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/m_glob.c b/src/m_glob.c index 0eaf69a28..a356d916e 100644 --- a/src/m_glob.c +++ b/src/m_glob.c @@ -198,7 +198,7 @@ void glob_init(void) /* function to return version number at run time. Any of the calling pointers may be zero in case you don't need all of them. */ -void sys_getversion(int *major, int *minor, int *bugfix) +unsigned int sys_getversion(int *major, int *minor, int *bugfix) { if (major) *major = PD_MAJOR_VERSION; @@ -206,6 +206,8 @@ void sys_getversion(int *major, int *minor, int *bugfix) *minor = PD_MINOR_VERSION; if (bugfix) *bugfix = PD_BUGFIX_VERSION; + + return PD_VERSION_CODE; } unsigned int sys_getfloatsize() diff --git a/src/m_pd.h b/src/m_pd.h index 77d195975..b02226b0b 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -911,8 +911,8 @@ static inline int PD_BIGORSMALL(t_float f) /* exponent outside (-512,512) */ #endif #endif /* _MSC_VER */ - /* get version number at run time */ -EXTERN void sys_getversion(int *major, int *minor, int *bugfix); + /* get major/minor/bugifx version numbers and version code at run time */ +EXTERN unsigned int sys_getversion(int *major, int *minor, int *bugfix); /* get floatsize at run time */ EXTERN unsigned int sys_getfloatsize(void); From b38e52b0d6ad5e58153b1422495472984c0cd345 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 14 Mar 2024 14:19:12 +0100 Subject: [PATCH 106/450] Import deken v0.9.18 - fix crash with macOS>=12 when opening a fileselector box where an extension contains more than 1 dot (e.g. ".tar.gz") - spelling mistakes (not userfacing) - rename ::deken::search::puredata.info namespace to the more generic ::deken::search::dekenserver --- tcl/pd_deken.tcl | 53 +++++++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/tcl/pd_deken.tcl b/tcl/pd_deken.tcl index 3ec25c512..c8ec72f65 100644 --- a/tcl/pd_deken.tcl +++ b/tcl/pd_deken.tcl @@ -103,7 +103,7 @@ proc ::deken::versioncheck {version} { } ## put the current version of this package here: -if { [::deken::versioncheck 0.9.16] } { +if { [::deken::versioncheck 0.9.18] } { namespace eval ::deken:: { namespace export open_searchui @@ -1101,7 +1101,7 @@ proc ::deken::preferences::apply {winid} { "${::deken::preferences::verify_sha256}" } proc ::deken::preferences::cancel {winid} { - ## FIXXME properly close the window/frame (for re-use in a tabbed pane) + ## FIXXME properly close the window/frame (for reuse in a tabbed pane) destroy .deken_preferences } proc ::deken::preferences::ok {winid} { @@ -1301,7 +1301,7 @@ proc ::deken::verify_sha256_gui {url pkgfile} { ## - -2 user requested ignore via dialog ## - two digits: unable to verify ## - -10 reference could not be read - ## - -20 an exception occured while verifying + ## - -20 an exception occurred while verifying ## - three digits: ## - -100 no sha256 verifier implemented set err_msg [format [_ "SHA256 verification of '%s' failed!" ] $pkgfile ] @@ -1339,7 +1339,13 @@ proc ::deken::install_package_from_file {{pkgfile ""}} { lappend types [list [_ "Deken Packages" ] .dek] lappend types [list [_ "ZIP Files" ] .zip] if {$::tcl_platform(platform) ne "windows"} { - lappend types [list [_ "TAR Files" ] {.tar.gz .tgz} ] + lappend types [list [_ "TAR Files" ] {.tgz} ] + if {$::windowingsystem eq "aqua"} { + # stupid bug on macOS>=12: an extension with two dots crashes the fileselector + lappend types [list [_ "TAR Files" ] {.gz} ] + } else { + lappend types [list [_ "TAR Files" ] {.tar.gz} ] + } } lappend types [list [_ "All Files" ] * ] if { "${pkgfile}" eq ""} { @@ -2701,7 +2707,7 @@ proc ::deken::initialize {} { set ::deken::installpath [::deken::find_installpath] - # create an entry for our search in the "help" menu (or re-use an existing one) + # create an entry for our search in the "help" menu (or reuse an existing one) set mymenu .menubar.help if { [catch { $mymenu entryconfigure [_ "Find externals"] -command {::deken::open_searchui $::deken::winid} @@ -2774,31 +2780,32 @@ proc ::deken::register {fun} { ## #################################################################### ## searching puredata.info -namespace eval ::deken::search::puredata.info { } +namespace eval ::deken::search::dekenserver { } -proc ::deken::search::puredata.info::search {term} { - set dekenserver "${::deken::protocol}://deken.puredata.info/search" - catch {set dekenserver $::env(DEKENSERVER)} stdout - set servers [list $dekenserver] +proc ::deken::search::dekenserver::search {term} { + set dekenurl "${::deken::protocol}://deken.puredata.info/search" + catch {set dekenurl $::env(DEKENSERVER)} stdout + catch {set dekenurl $::env(DEKEN_SEARCH_URL)} stdout + set urls [list $dekenurl] - # search all the servers + # search all the urls array set results {} - set servercount 0 - foreach s $servers { - # skip empty servers + set urlcount 0 + foreach s $urls { + # skip empty urls if { $s eq {} } { continue } ::deken::post [format [_ "Searching on %s..."] $s ] debug set resultcount 0 - # get the results from the given server, and add them to our results set - foreach r [::deken::search::puredata.info::search_server $term $s] { + # get the results from the given url, and add them to our results set + foreach r [::deken::search::dekenserver::search_server $term $s] { set results($r) {} incr resultcount } ::deken::post [format [_ "Searching on %1\$s returned %2\$d results"] $s $resultcount] debug - incr servercount + incr urlcount } - if { $servercount == 0 } { + if { $urlcount == 0 } { ::deken::post [format [_ "No usable servers for searching found..."] $s ] debug } set splitCont [array names results] @@ -2882,7 +2889,7 @@ proc ::deken::search::puredata.info::search {term} { # the space (or some other character that sorts after "\t") after the ${version} is important, # as it ensures that "0.2~1" sorts before "1.2" set sortname "${sortprefix}${vsep}${pkgname}${vsep}${version} ${vsep}${date}" - set contextcmd [list ::deken::search::puredata.info::contextmenu %W %x %y $pkgname $URL] + set contextcmd [list ::deken::search::dekenserver::contextmenu %W %x %y $pkgname $URL] set res [list $sortname $filename $name $cmd $match $comment $status $contextcmd $pkgname $version $creator $date] lappend searchresults $res } @@ -2897,7 +2904,7 @@ proc ::deken::search::puredata.info::search {term} { return $sortedresult } -proc ::deken::search::puredata.info::search_server {term dekenserver} { +proc ::deken::search::dekenserver::search_server {term dekenurl} { set queryterm {} if { ${::deken::searchtype} eq "translations" && ${term} eq "" } { # special handling of searching for all translations (so we ONLY get translations) @@ -2916,7 +2923,7 @@ proc ::deken::search::puredata.info::search_server {term dekenserver} { # fetch search result if { [catch { - set token [::http::geturl "${dekenserver}?${queryterm}"] + set token [::http::geturl "${dekenurl}?${queryterm}"] } stdout ] } { set msg [format [_ "Searching for '%s' failed!" ] $term ] tk_messageBox \ @@ -2944,7 +2951,7 @@ proc ::deken::search::puredata.info::search_server {term dekenserver} { return [split $contents "\n"] } -proc ::deken::search::puredata.info::contextmenu {widget theX theY pkgname URL} { +proc ::deken::search::dekenserver::contextmenu {widget theX theY pkgname URL} { set winid ${::deken::winid} set resultsid ${::deken::resultsid} set with_installmenu 1 @@ -3010,5 +3017,5 @@ proc ::deken::search::puredata.info::contextmenu {widget theX theY pkgname URL} ::deken::initialize -::deken::register ::deken::search::puredata.info::search +::deken::register ::deken::search::dekenserver::search } From 560d1c74b700d29d93907fc035eb96781c68e2e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 14 Mar 2024 18:05:43 +0100 Subject: [PATCH 107/450] update .po files from master --- po/az.po | 47 ++++++++++++++++++++++++--------------- po/bg.po | 47 ++++++++++++++++++++++++--------------- po/de.po | 57 +++++++++++++++++++++++++++++++----------------- po/el.po | 47 ++++++++++++++++++++++++--------------- po/en.po | 54 ++++++++++++++++++++++++++++++--------------- po/en_ca.po | 54 ++++++++++++++++++++++++++++++--------------- po/es.po | 54 ++++++++++++++++++++++++++++++--------------- po/eu.po | 47 ++++++++++++++++++++++++--------------- po/fr.po | 54 ++++++++++++++++++++++++++++++--------------- po/gu.po | 47 ++++++++++++++++++++++++--------------- po/he.po | 54 ++++++++++++++++++++++++++++++--------------- po/hi.po | 47 ++++++++++++++++++++++++--------------- po/hu.po | 47 ++++++++++++++++++++++++--------------- po/id.po | 43 ++++++++++++++++++++++-------------- po/it.po | 54 ++++++++++++++++++++++++++++++--------------- po/ja.po | 54 ++++++++++++++++++++++++++++++--------------- po/ko.po | 54 ++++++++++++++++++++++++++++++--------------- po/nl.po | 54 ++++++++++++++++++++++++++++++--------------- po/pa.po | 47 ++++++++++++++++++++++++--------------- po/pl.po | 43 ++++++++++++++++++++++-------------- po/pt_br.po | 54 ++++++++++++++++++++++++++++++--------------- po/pt_pt.po | 54 ++++++++++++++++++++++++++++++--------------- po/ru.po | 58 ++++++++++++++++++++++++++++++++----------------- po/sq.po | 47 ++++++++++++++++++++++++--------------- po/sv.po | 47 ++++++++++++++++++++++++--------------- po/template.pot | 43 ++++++++++++++++++++++-------------- po/uk.po | 57 ++++++++++++++++++++++++++++++++---------------- po/vi.po | 47 ++++++++++++++++++++++++--------------- po/zh_tw.po | 43 ++++++++++++++++++++++-------------- 29 files changed, 936 insertions(+), 519 deletions(-) diff --git a/po/az.po b/po/az.po index 348392b9a..fb453ebce 100644 --- a/po/az.po +++ b/po/az.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-11-07 16:37+0100\n" +"POT-Creation-Date: 2024-03-14 18:04+0100\n" "PO-Revision-Date: 2004-03-12 22:22+0200\n" "Last-Translator: Metin Amiroff \n" "Language-Team: Azerbaijani \n" @@ -629,6 +629,12 @@ msgstr "" msgid "single page" msgstr "" +msgid "patching helpers" +msgstr "" + +msgid "Highlight active cord while connecting" +msgstr "" + #, fuzzy msgid "Preferences" msgstr "Seçimlər..." @@ -846,6 +852,14 @@ msgstr "" msgid "Unable to fetch reference SHA256 for '%s'." msgstr "" +#, tcl-format +msgid "File checksum looks invalid: '%s'." +msgstr "" + +#, tcl-format +msgid "Reference checksum looks invalid: '%s'." +msgstr "" + #, tcl-format msgid "Unable to perform SHA256 verification for '%s'." msgstr "" @@ -919,6 +933,17 @@ msgstr "Seçimlər..." msgid "Platform re-detected: %s" msgstr "" +#, tcl-format +msgid "SHA256 verification of '%s' failed!" +msgstr "" + +msgid "SHA256 verification failed" +msgstr "" + +#, tcl-format +msgid "Checksum mismatch for '%s'" +msgstr "" + msgid "Deken Packages" msgstr "" @@ -934,17 +959,6 @@ msgstr "TAR fayllar" msgid "All Files" msgstr "barcha fayllar" -#, tcl-format -msgid "Checksum mismatch for '%s'" -msgstr "" - -#, tcl-format -msgid "SHA256 verification of '%s' failed!" -msgstr "" - -msgid "SHA256 verification failed" -msgstr "" - #, tcl-format msgid "Uninstalling previous installation of '%s'" msgstr "" @@ -1169,6 +1183,9 @@ msgstr "" msgid "Ignoring checksum mismatch" msgstr "" +msgid "Ignoring checksum errors" +msgstr "" + #, tcl-format msgid "[deken] deken-plugin.tcl (Pd externals search) loaded from %s." msgstr "" @@ -1637,12 +1654,6 @@ msgstr "" msgid "Audio off" msgstr "" -msgid "(Tcl) MISSING CLOSE-BRACKET ']': " -msgstr "" - -msgid "Tcl:" -msgstr "" - msgid "Pd" msgstr "" diff --git a/po/bg.po b/po/bg.po index 821776166..dcda278a9 100644 --- a/po/bg.po +++ b/po/bg.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-11-07 16:37+0100\n" +"POT-Creation-Date: 2024-03-14 18:04+0100\n" "PO-Revision-Date: 2022-10-30 07:04+0000\n" "Last-Translator: Max Neupert \n" "Language-Team: Bulgarian \n" "Language-Team: German \n" "Language-Team: Greek \n" "Language-Team: English \n" "Language-Team: English (Canada) \n" "Language-Team: Spanish \n" "Language-Team: Basque \n" "Language-Team: French \n" "Language-Team: Gujarati \n" "Language-Team: Hebrew \n" "Language-Team: Hindi \n" "Language-Team: Hungarian \n" "Language-Team: Indonesian \n" "Language-Team: Italian \n" "Language-Team: Japanese \n" "Language-Team: Korean \n" "Language-Team: Dutch \n" "Language-Team: Punjabi \n" "Language-Team: Polish \n" "Language-Team: Portuguese (Brazil) \n" "Language-Team: Portuguese (Portugal) \n" "Language-Team: Russian \n" "Language-Team: Albanian \n" "Language-Team: Swedish \n" "Language-Team: LANGUAGE \n" @@ -580,6 +580,12 @@ msgstr "" msgid "single page" msgstr "" +msgid "patching helpers" +msgstr "" + +msgid "Highlight active cord while connecting" +msgstr "" + msgid "Preferences" msgstr "" @@ -788,6 +794,14 @@ msgstr "" msgid "Unable to fetch reference SHA256 for '%s'." msgstr "" +#, tcl-format +msgid "File checksum looks invalid: '%s'." +msgstr "" + +#, tcl-format +msgid "Reference checksum looks invalid: '%s'." +msgstr "" + #, tcl-format msgid "Unable to perform SHA256 verification for '%s'." msgstr "" @@ -861,27 +875,27 @@ msgstr "" msgid "Platform re-detected: %s" msgstr "" -msgid "Deken Packages" +#, tcl-format +msgid "SHA256 verification of '%s' failed!" msgstr "" -msgid "ZIP Files" +msgid "SHA256 verification failed" msgstr "" -msgid "TAR Files" +#, tcl-format +msgid "Checksum mismatch for '%s'" msgstr "" -msgid "All Files" +msgid "Deken Packages" msgstr "" -#, tcl-format -msgid "Checksum mismatch for '%s'" +msgid "ZIP Files" msgstr "" -#, tcl-format -msgid "SHA256 verification of '%s' failed!" +msgid "TAR Files" msgstr "" -msgid "SHA256 verification failed" +msgid "All Files" msgstr "" #, tcl-format @@ -1105,6 +1119,9 @@ msgstr "" msgid "Ignoring checksum mismatch" msgstr "" +msgid "Ignoring checksum errors" +msgstr "" + #, tcl-format msgid "[deken] deken-plugin.tcl (Pd externals search) loaded from %s." msgstr "" @@ -1545,12 +1562,6 @@ msgstr "" msgid "Audio off" msgstr "" -msgid "(Tcl) MISSING CLOSE-BRACKET ']': " -msgstr "" - -msgid "Tcl:" -msgstr "" - msgid "Pd" msgstr "" diff --git a/po/uk.po b/po/uk.po index c58295453..b3ee7b092 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Pure Data 0.53.0\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" -"POT-Creation-Date: 2023-11-07 16:37+0100\n" +"POT-Creation-Date: 2024-03-14 18:04+0100\n" "PO-Revision-Date: 2023-02-13 12:36+0000\n" "Last-Translator: umläute \n" "Language-Team: Ukrainian \n" "Language-Team: Vietnamese \n" "Language-Team: Chinese (Traditional) Date: Thu, 14 Mar 2024 15:24:55 -0300 Subject: [PATCH 108/450] document new [file which] depth argument --- doc/5.reference/file-help.pd | 687 ++++++++++++++++++----------------- 1 file changed, 344 insertions(+), 343 deletions(-) diff --git a/doc/5.reference/file-help.pd b/doc/5.reference/file-help.pd index a61688e32..ebbbc89cb 100644 --- a/doc/5.reference/file-help.pd +++ b/doc/5.reference/file-help.pd @@ -1,83 +1,59 @@ -#N canvas 437 23 567 721 12; -#X text 439 70 details:; -#X text 437 53 click for; -#N canvas 215 30 1059 652 handle 0; -#X obj 123 481 file handle; -#X msg 118 160 open /tmp/test.c r; -#X msg 192 441 close; -#X msg 137 219 1024; -#X text 173 221 read (up to) 1024 bytes; -#X obj 123 534 print data, f 5; -#X msg 148 253 seek 3; -#X text 205 255 seek to the 3rd byte; -#X text 287 376 seek to the next byte; -#X msg 130 190 1; -#X text 167 189 read the next byte; -#X msg 44 186 open \$1; -#X obj 44 161 openpanel; -#X obj 565 481 file handle; -#X msg 654 443 close; -#X msg 601 286 seek 3; -#X text 655 286 seek to the 3rd byte; -#X obj 486 179 savepanel; -#X msg 486 204 open \$1 w; -#X msg 560 178 open /tmp/test.c a; -#X msg 572 208 open /tmp/test.c c; -#X msg 586 242 104 101 108 108 111 32 119 111 114 108 100 13 10, f 26; -#X text 256 162 explicit Read-mode; -#X text 704 177 open file for writing (Append mode); -#X text 713 201 open file for writing (Create (or trunCate) mode), f 27; -#X text 777 249 write some bytes; +#N canvas 437 23 566 697 12; +#X text 441 70 details:; +#X text 439 53 click for; +#N canvas 190 61 1062 654 handle 0; +#X obj 123 484 file handle; +#X msg 110 164 open /tmp/test.c r; +#X msg 185 444 close; +#X msg 130 222 1024; +#X text 168 223 read (up to) 1024 bytes; +#X obj 123 537 print data, f 5; +#X msg 141 256 seek 3; +#X text 198 258 seek to the 3rd byte; +#X text 280 379 seek to the next byte; +#X msg 123 193 1; +#X text 156 192 read the next byte; +#X msg 35 189 open \$1; +#X obj 35 164 openpanel; +#X obj 565 484 file handle; +#X msg 654 446 close; +#X msg 601 289 seek 3; +#X text 655 289 seek to the 3rd byte; +#X obj 486 182 savepanel; +#X msg 486 207 open \$1 w; +#X msg 560 181 open /tmp/test.c a; +#X msg 572 211 open /tmp/test.c c; +#X msg 586 245 104 101 108 108 111 32 119 111 114 108 100 13 10, f 26; +#X text 248 166 explicit Read-mode; +#X text 704 180 open file for writing (Append mode); +#X text 713 204 open file for writing (Create (or trunCate) mode), f 27; +#X text 777 252 write some bytes; #X obj 351 21 file; -#X obj 229 554 print INFO; -#X text 67 526 list of bytes read, f 7; -#X text 721 489 if opening the file or writing to it fails \, the file is closed and a bang is sent to the 2nd outlet., f 44; -#X text 330 592 when seeking \, the position from the start of the file (or -1 on error) is output here., f 44; -#N canvas 453 93 754 409 arguments 0; -#X obj 136 82 file handle -q; -#X text 264 82 less verbose (quiet); -#X obj 136 112 file handle -v; -#X text 264 112 more verbose (loud); -#X obj 96 233 file handle -m 0o600; -#X text 296 228 file creation mode (user/group/other permissions) in octal.; -#X msg 563 96 verbose \$1; -#X obj 563 121 file; -#X obj 563 70 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 138 31 error reporting on the Pd-console; -#X text 43 98 via flags:; -#X text 453 96 via a message:; -#X text 67 167 restricted permissions of created files:; -#X text 104 298 via a message:; -#X obj 96 348 file; -#X text 295 328 the creation mode only affects files that are created after the mode has been set.; -#X msg 96 323 creationmode 0o600; -#X text 294 266 the actual permissions of the created file also takes the umask into account. this might be ignored by the underlying filesystem.; -#X text 99 199 via creation flags:; -#X connect 6 0 7 0; -#X connect 8 0 6 0; -#X connect 16 0 14 0; -#X restore 384 499 pd arguments; -#X msg 640 409 creationmode 0o600; -#X msg 157 286 seek 3 start; -#X text 255 279 seek to the 3rd byte from the "start", f 21; -#X msg 165 318 seek 0 end; -#X msg 172 348 seek -1 end; -#X msg 179 378 seek 1 current; -#X msg 186 410 seek -1 relative; -#X text 311 399 seek to the previous byte ("relative" is an alias for "current"), f 22; -#X text 244 317 seek to the end-of-file; -#X text 258 347 seek to the last byte; -#X msg 621 344 seek 10 end; -#X text 707 342 seek beyond the end of file; -#X msg 611 316 seek 10 start; -#X text 714 317 seek to the 10th byte; -#X msg 629 375 seek 10 current; -#X obj 639 505 print INFO; -#X text 778 403 restrict permissions of the to-be-created file, f 24; -#X obj 197 527 t a a; -#X obj 197 588 route bang seek; -#X floatatom 248 613 5 0 0 1 - - - 0; -#X text 748 371 seek to the 10th byte from the current position, f 27; +#X obj 229 557 print INFO; +#X text 67 529 list of bytes read, f 7; +#X text 721 492 if opening the file or writing to it fails \, the file is closed and a bang is sent to the 2nd outlet., f 44; +#X text 330 595 when seeking \, the position from the start of the file (or -1 on error) is output here., f 44; +#X msg 640 412 creationmode 0o600; +#X msg 150 289 seek 3 start; +#X text 248 282 seek to the 3rd byte from the "start", f 21; +#X msg 158 321 seek 0 end; +#X msg 165 351 seek -1 end; +#X msg 172 381 seek 1 current; +#X msg 179 413 seek -1 relative; +#X text 304 402 seek to the previous byte ("relative" is an alias for "current"), f 22; +#X text 237 320 seek to the end-of-file; +#X text 251 350 seek to the last byte; +#X msg 621 347 seek 10 end; +#X text 707 345 seek beyond the end of file; +#X msg 611 319 seek 10 start; +#X text 714 320 seek to the 10th byte; +#X msg 629 378 seek 10 current; +#X obj 639 508 print INFO; +#X text 778 406 restrict permissions of the to-be-created file, f 24; +#X obj 197 530 t a a; +#X obj 197 591 route bang seek; +#X floatatom 248 618 5 0 0 1 - - - 0; +#X text 748 374 seek to the 10th byte from the current position, f 27; #X obj 48 21 file handle; #N canvas 692 43 571 468 reference 0; #X obj 7 44 cnv 5 550 5 empty empty INLETS: 8 18 0 13 #202020 #000000 0; @@ -108,21 +84,45 @@ #X restore 948 21 pd reference; #X obj 21 51 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 140 20 - operate on file handles.; -#X text 238 435 close file, f 5; -#X text 510 152 <-- open file in Write mode; -#X text 702 438 close file, f 5; -#X text 120 118 reading files =============, f 13; -#X text 497 114 writing files =============, f 13; -#X text 153 615 close; -#X obj 44 133 bng 19 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; +#X text 231 438 close file, f 5; +#X text 510 155 <-- open file in Write mode; +#X text 702 441 close file, f 5; +#X text 153 620 close; +#X obj 35 136 bng 19 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; #X text 134 62 The data you read from or write to a file are lists of bytes \, which appear in Pd as lists of numbers from 0 to 255 (using out-of-range numbers or symbols leads to undefined behavior.) The 2nd inlet of the [file handle] object is documented in the [pd file define] subpatch., f 121; #X text 394 20 - short form for [file handle].; -#X text 314 548 If the file cannot be opened \, a bang is sent to the 2nd outlet. When the end of the file is reached or a read error occurred \, the file is closed and a bang is sent too., f 85; -#X obj 486 153 bng 19 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; -#X obj 197 613 bng 19 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; -#X text 288 613 pos; +#X text 314 551 If the file cannot be opened \, a bang is sent to the 2nd outlet. When the end of the file is reached or a read error occurred \, the file is closed and a bang is sent too., f 85; +#X obj 486 156 bng 19 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; +#X obj 197 618 bng 19 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; +#X text 288 618 pos; +#N canvas 453 93 754 409 flags 0; +#X obj 136 82 file handle -q; +#X text 264 82 less verbose (quiet); +#X obj 136 112 file handle -v; +#X text 264 112 more verbose (loud); +#X obj 96 233 file handle -m 0o600; +#X text 296 228 file creation mode (user/group/other permissions) in octal.; +#X msg 563 96 verbose \$1; +#X obj 563 121 file; +#X obj 563 70 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 138 31 error reporting on the Pd-console; +#X text 43 98 via flags:; +#X text 453 96 via a message:; +#X text 67 167 restricted permissions of created files:; +#X text 104 298 via a message:; +#X obj 96 348 file; +#X text 295 328 the creation mode only affects files that are created after the mode has been set.; +#X msg 96 323 creationmode 0o600; +#X text 294 266 the actual permissions of the created file also takes the umask into account. this might be ignored by the underlying filesystem.; +#X text 99 199 via creation flags:; +#X connect 6 0 7 0; +#X connect 8 0 6 0; +#X connect 16 0 14 0; +#X restore 384 502 pd flags; +#X text 127 127 reading files:; +#X text 538 127 writing files:; #X connect 0 0 5 0; -#X connect 0 1 49 0; +#X connect 0 1 48 0; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 3 0 0 0; @@ -130,7 +130,7 @@ #X connect 9 0 0 0; #X connect 11 0 0 0; #X connect 12 0 11 0; -#X connect 13 1 47 0; +#X connect 13 1 46 0; #X connect 14 0 13 0; #X connect 15 0 13 0; #X connect 17 0 18 0; @@ -138,22 +138,22 @@ #X connect 19 0 13 0; #X connect 20 0 13 0; #X connect 21 0 13 0; -#X connect 32 0 13 0; -#X connect 33 0 0 0; +#X connect 31 0 13 0; +#X connect 32 0 0 0; +#X connect 34 0 0 0; #X connect 35 0 0 0; #X connect 36 0 0 0; #X connect 37 0 0 0; -#X connect 38 0 0 0; -#X connect 42 0 13 0; -#X connect 44 0 13 0; -#X connect 46 0 13 0; -#X connect 49 0 50 0; -#X connect 49 1 27 0; -#X connect 50 0 68 0; -#X connect 50 1 51 0; -#X connect 63 0 12 0; -#X connect 67 0 17 0; -#X restore 440 97 pd handle; +#X connect 41 0 13 0; +#X connect 43 0 13 0; +#X connect 45 0 13 0; +#X connect 48 0 49 0; +#X connect 48 1 27 0; +#X connect 49 0 65 0; +#X connect 49 1 50 0; +#X connect 60 0 12 0; +#X connect 64 0 17 0; +#X restore 442 97 pd handle; #N canvas 680 67 617 565 glob 0; #X obj 50 378 file glob; #X obj 50 443 print DATA; @@ -217,23 +217,9 @@ #X connect 19 0 10 0; #X connect 21 0 1 0; #X connect 22 0 11 0; -#X restore 183 525 pd recursive globbing; +#X restore 153 525 pd recursive globbing; #X text 202 400 if no files are found or an error is encountered \, a bang is sent to the 2nd outlet, f 49; #X text 149 450 matching files and directories are sent as lists of (including the search directory) and a identifier that indicates if the path is a file (0) or a directory (1).; -#N canvas 480 231 738 232 arguments 0; -#X text 274 145 less verbose (quiet); -#X text 274 175 more verbose (loud); -#X msg 563 149 verbose \$1; -#X obj 563 122 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 106 70 error reporting on the Pd-console; -#X text 239 111 via flags:; -#X text 524 95 via a message:; -#X obj 563 174 file glob; -#X obj 146 145 file glob -q; -#X obj 146 175 file glob -v; -#X connect 2 0 7 0; -#X connect 3 0 2 0; -#X restore 85 525 pd arguments; #N canvas 424 264 893 441 cross-platform 0; #X text 37 329 - files/dirs starting with a "." only match if the matching pattern explicitly contains the leading dot.; #X msg 483 338 symbol *; @@ -261,7 +247,7 @@ #X text 45 47 [file glob] attempts to unify the behavior of wildcard matching on different platforms. as such \, it does not support all features of a given pattern matching implementation (or only accidentally)., f 107; #X text 45 80 the following rules should help you to write patches that use platform independent globbing., f 107; #X text 27 23 cross-platform notes on globbing:; -#X restore 344 525 pd cross-platform pattern matching; +#X restore 314 525 pd cross-platform pattern matching; #X text 35 525 more:; #X text 99 60 all files/directories in this directory (that don't start with a dot), f 39; #X obj 11 47 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 0; @@ -285,6 +271,20 @@ #X obj 7 226 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; #X obj 7 252 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 0; #X restore 520 17 pd reference; +#N canvas 480 231 738 232 flags 0; +#X text 274 145 less verbose (quiet); +#X text 274 175 more verbose (loud); +#X msg 563 149 verbose \$1; +#X obj 563 122 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 106 70 error reporting on the Pd-console; +#X text 239 111 via flags:; +#X text 524 95 via a message:; +#X obj 563 174 file glob; +#X obj 146 145 file glob -q; +#X obj 146 175 file glob -v; +#X connect 2 0 7 0; +#X connect 3 0 2 0; +#X restore 85 525 pd flags; #X connect 0 0 1 0; #X connect 0 1 2 0; #X connect 3 0 0 0; @@ -295,52 +295,33 @@ #X connect 11 0 0 0; #X connect 12 0 0 0; #X connect 16 0 0 0; -#X restore 440 249 pd glob; -#X obj 38 645 file; -#X text 75 646 - short for "file handle"; +#X restore 442 249 pd glob; #X obj 27 97 file handle; #X obj 27 287 file stat; -#X text 156 96 - read/write binary files; -#X text 156 223 - find a file in Pd's search-path; -#X text 156 250 - list files in directories; +#X text 154 96 - read/write binary files; +#X text 154 223 - find a file in Pd's search-path; +#X text 154 250 - list files in directories; #X obj 27 249 file glob; #X obj 27 222 file which; -#N canvas 560 152 623 461 which 0; -#X obj 35 187 file which; -#X symbolatom 35 301 79 0 0 0 - - - 0; -#X obj 35 327 print found; -#X obj 102 240 print not!found; -#X msg 45 157 symbol nada; -#X msg 35 121 symbol hilbert~.pd; -#X text 73 364 notes:; -#X text 126 364 - currently this only works for files \, not for directories!; -#X text 126 385 - currently only the first match is returned; -#X text 177 121 a file that ships with Pd; -#X text 139 156 probably does not exist in Pd's search path; -#N canvas 628 410 738 232 arguments 0; -#X text 274 145 less verbose (quiet); -#X text 274 175 more verbose (loud); -#X msg 563 149 verbose \$1; -#X obj 563 122 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 106 70 error reporting on the Pd-console; -#X text 239 111 via flags:; -#X text 524 95 via a message:; -#X obj 146 145 file which -q; -#X obj 146 175 file which -v; -#X obj 563 174 file which; -#X connect 2 0 9 0; -#X connect 3 0 2 0; -#X restore 194 422 pd arguments; -#X symbolatom 102 213 47 0 0 0 - - - 0; -#X obj 35 273 unpack s f; -#X floatatom 127 274 3 0 0 1 - - - 0; +#N canvas 574 25 616 584 which 0; +#X obj 37 254 file which; +#X symbolatom 37 368 79 0 0 0 - - - 0; +#X obj 37 394 print found; +#X obj 104 307 print not!found; +#X msg 47 224 symbol nada; +#X msg 37 188 symbol hilbert~.pd; +#X text 179 188 a file that ships with Pd; +#X text 141 223 probably does not exist in Pd's search path; +#X symbolatom 104 280 47 0 0 0 - - - 0; +#X obj 37 340 unpack s f; +#X floatatom 129 341 3 0 0 1 - - - 0; #X obj 11 47 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 137 14 - locate a file; #X obj 50 15 file which; -#N canvas 778 127 581 317 reference 0; +#N canvas 680 125 575 370 reference 0; #X obj 9 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; #X obj 9 111 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; -#X obj 8 286 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0; +#X obj 8 329 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0; #X obj 9 167 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; #X obj 9 137 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; #X text 155 240 -q: set quiet verbosity., f 49; @@ -353,20 +334,40 @@ #X obj 7 234 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 0; #X text 98 143 list - symbol path of located file and directory flag.; #X text 85 174 symbol - the input symbol if file isn't located.; +#X obj 7 284 cnv 1 550 1 empty empty argument: 8 12 0 13 #9f9f9f #000000 0; +#X text 119 296 1) float -; +#X text 199 296 sets patch depth level to search (default 0).; #X restore 518 15 pd reference; -#X text 157 273 directory flag: 0 if file \, 1 if directory \, see notes below.; -#X text 53 65 [file which] tries to locate the file in using Pd's search-paths (via preferences and/or the [declare] object) and returns the resolved path., f 72; -#X connect 0 0 13 0; -#X connect 0 1 12 0; +#X text 27 63 [file which] tries to locate a file using Pd's search-paths. This includes the same relative path (the folder where the patch lives \, and other Pd seatch paths like the ones set via preferences and/or the [declare] object. If the file is found \, the object returns a list in the left outlet with the resolved path and a flag to inform if it is a file (0) or a directory (1) \, though this currently only works for filesT If nothing is found \, the entry is sent to the right outlet., f 79; +#X text 158 333 directory flag: 0 if file \, 1 if directory (currently this only works for files), f 41; +#X text 126 395 note: - currently only the first match is returned; +#N canvas 628 410 738 232 flags 0; +#X text 274 145 less verbose (quiet); +#X text 274 175 more verbose (loud); +#X msg 563 149 verbose \$1; +#X obj 563 122 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 106 70 error reporting on the Pd-console; +#X text 239 111 via flags:; +#X text 524 95 via a message:; +#X obj 146 145 file which -q; +#X obj 146 175 file which -v; +#X obj 563 174 file which; +#X connect 2 0 9 0; +#X connect 3 0 2 0; +#X restore 415 531 pd flags; +#X obj 44 461 file which 1; +#X text 150 440 The arguments sets the depth level. This is useful for setting which relative path to search for if the object is used in an abstraction. The default value is '0' \, which means relative to this patch. '1' is the parent patch \, '2' is the grandparent \, and so on., f 62; +#X connect 0 0 9 0; +#X connect 0 1 8 0; #X connect 1 0 2 0; #X connect 4 0 0 0; #X connect 5 0 0 0; -#X connect 12 0 3 0; -#X connect 13 0 1 0; -#X connect 13 1 14 0; -#X restore 440 222 pd which; +#X connect 8 0 3 0; +#X connect 9 0 1 0; +#X connect 9 1 10 0; +#X restore 442 222 pd which; #X obj 27 148 file mkdir; -#X text 157 149 - create a directory; +#X text 155 149 - create a directory; #N canvas 593 65 525 590 mkdir 0; #X obj 42 387 file mkdir; #X symbolatom 42 470 64 0 0 0 - - - 0; @@ -381,30 +382,6 @@ #X text 164 305 (re)create an existing directory; #X text 134 412 on error \, a bang is sent to the 2nd outlet; #X text 136 497 on success \, the name of the created directory is sent to the 1st outlet, f 36; -#N canvas 596 129 736 450 arguments 0; -#X text 209 100 less verbose (quiet); -#X text 209 130 more verbose (loud); -#X msg 498 104 verbose \$1; -#X obj 498 77 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 41 25 error reporting on the Pd-console; -#X text 174 66 via flags:; -#X text 459 50 via a message:; -#X text 89 335 via a message:; -#X text 84 236 via creation flags:; -#X text 52 204 restricted permissions of created directories:; -#X text 279 266 directory creation mode (user/group/other permissions) in octal.; -#X msg 81 360 creationmode 0o700; -#X text 277 304 the actual permissions of the created directory also takes the umask into account. this might be ignored by the underlying filesystem.; -#X text 278 366 the creation mode only affects directories that are created after the mode has been set.; -#X obj 81 385 file mkdir; -#X obj 81 270 file mkdir -m 0o700; -#X obj 81 130 file mkdir -v; -#X obj 81 100 file mkdir -q; -#X obj 498 129 file mkdir; -#X connect 2 0 18 0; -#X connect 3 0 2 0; -#X connect 11 0 14 0; -#X restore 195 551 pd arguments; #X msg 87 351 creationmode 0o700; #X obj 62 236 savepanel 1; #X obj 42 176 savepanel 1; @@ -434,20 +411,44 @@ #X obj 42 149 bng 19 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; #X obj 62 211 bng 19 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; #X obj 109 413 bng 19 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; +#N canvas 596 129 736 450 flags 0; +#X text 209 100 less verbose (quiet); +#X text 209 130 more verbose (loud); +#X msg 498 104 verbose \$1; +#X obj 498 77 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 41 25 error reporting on the Pd-console; +#X text 174 66 via flags:; +#X text 459 50 via a message:; +#X text 89 335 via a message:; +#X text 84 236 via creation flags:; +#X text 52 204 restricted permissions of created directories:; +#X text 279 266 directory creation mode (user/group/other permissions) in octal.; +#X msg 81 360 creationmode 0o700; +#X text 277 304 the actual permissions of the created directory also takes the umask into account. this might be ignored by the underlying filesystem.; +#X text 278 366 the creation mode only affects directories that are created after the mode has been set.; +#X obj 81 385 file mkdir; +#X obj 81 270 file mkdir -m 0o700; +#X obj 81 130 file mkdir -v; +#X obj 81 100 file mkdir -q; +#X obj 498 129 file mkdir; +#X connect 2 0 18 0; +#X connect 3 0 2 0; +#X connect 11 0 14 0; +#X restore 195 551 pd flags; #X connect 0 0 1 0; -#X connect 0 1 24 0; +#X connect 0 1 23 0; #X connect 1 0 2 0; #X connect 4 0 0 0; #X connect 5 0 0 0; -#X connect 14 0 0 0; -#X connect 15 0 4 0; -#X connect 16 0 0 0; -#X connect 22 0 16 0; -#X connect 23 0 15 0; -#X connect 24 0 3 0; -#X restore 440 148 pd mkdir; +#X connect 13 0 0 0; +#X connect 14 0 4 0; +#X connect 15 0 0 0; +#X connect 21 0 15 0; +#X connect 22 0 14 0; +#X connect 23 0 3 0; +#X restore 442 148 pd mkdir; #X obj 27 451 file delete; -#X text 157 452 - delete files and directories; +#X text 155 452 - delete files and directories; #N canvas 521 23 666 648 delete 0; #X obj 85 216 file delete; #X obj 159 243 print ERR:delete; @@ -466,20 +467,6 @@ #X text 225 522 on error \, a bang is sent to the 2nd outlet; #X text 118 581 on success \, the deleted path is sent to the 1st outlet; #X text 212 464 if nada is a file (rather than a directory) \, it will be deleted just so.; -#N canvas 577 348 738 232 arguments 0; -#X text 274 145 less verbose (quiet); -#X text 274 175 more verbose (loud); -#X msg 563 149 verbose \$1; -#X obj 563 124 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 106 70 error reporting on the Pd-console; -#X text 239 111 via flags:; -#X text 524 97 via a message:; -#X obj 146 145 file delete -q; -#X obj 146 175 file delete -v; -#X obj 563 174 file delete; -#X connect 2 0 9 0; -#X connect 3 0 2 0; -#X restore 505 314 pd arguments; #X text 60 346 ------------------; #X text 82 365 if you are sure that you want to remove an entire directory tree with all the files and subdirectories \, you can also remove it *recursively* using the "recursive" message.; #X obj 11 47 cnv 1 650 1 empty empty empty 8 12 0 13 #000000 #000000 0; @@ -502,14 +489,28 @@ #X restore 567 15 pd reference; #X obj 36 15 file delete; #X text 132 15 - remove files and directories.; +#N canvas 577 348 738 232 flags 0; +#X text 274 145 less verbose (quiet); +#X text 274 175 more verbose (loud); +#X msg 563 149 verbose \$1; +#X obj 563 124 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 106 70 error reporting on the Pd-console; +#X text 239 111 via flags:; +#X text 524 97 via a message:; +#X obj 146 145 file delete -q; +#X obj 146 175 file delete -v; +#X obj 563 174 file delete; +#X connect 2 0 9 0; +#X connect 3 0 2 0; +#X restore 512 157 pd flags; #X connect 0 0 2 0; #X connect 0 1 1 0; #X connect 4 0 0 0; #X connect 7 0 10 0; #X connect 7 1 9 0; #X connect 8 0 7 0; -#X restore 440 451 pd delete; -#N canvas 495 139 674 330 copy 0; +#X restore 442 451 pd delete; +#N canvas 504 123 674 330 copy 0; #X msg 48 115 list source destination; #X text 233 114 copies the file 'source' to the new file 'destination'; #X obj 48 284 print copy; @@ -560,19 +561,18 @@ #X connect 12 0 2 0; #X connect 12 1 3 0; #X connect 13 0 12 0; -#X restore 440 399 pd copy; +#X restore 442 399 pd copy; #X obj 27 399 file copy; -#X text 157 400 - copy files; +#X text 155 400 - copy files; #X obj 27 425 file move; -#X text 157 426 - move files; +#X text 155 426 - move files; #X obj 27 488 file split; #X obj 27 513 file join; #X obj 27 538 file splitext; #X obj 27 563 file splitname; -#X text 157 519 - filename operations; +#X text 155 519 - filename operations; #X obj 31 12 file; #X text 78 11 - low-level file operations; -#X text 28 68 The file object's first argument sets its function:; #X obj 27 312 file isfile; #X obj 27 337 file isdirectory; #X obj 27 362 file size; @@ -604,20 +604,6 @@ #X obj 36 274 r \$0-info-path; #X obj 48 391 r \$0-info-path; #X obj 538 278 r \$0-info-path; -#N canvas 143 98 738 232 arguments 0; -#X text 274 145 less verbose (quiet); -#X text 274 175 more verbose (loud); -#X msg 563 149 verbose \$1; -#X obj 563 123 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 106 70 error reporting on the Pd-console; -#X text 239 111 via flags:; -#X text 524 96 via a message:; -#X obj 146 145 file size -q; -#X obj 146 175 file isfile -v; -#X obj 563 174 file isdirectory; -#X connect 2 0 9 0; -#X connect 3 0 2 0; -#X restore 544 142 pd arguments; #X symbolatom 189 234 0 0 0 0 - - - 0; #N canvas 578 479 645 307 info-path 0; #X obj 44 107 openpanel; @@ -674,29 +660,43 @@ #X obj 138 325 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X obj 136 443 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X obj 647 328 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#N canvas 143 98 738 232 flags 0; +#X text 274 145 less verbose (quiet); +#X text 274 175 more verbose (loud); +#X msg 563 149 verbose \$1; +#X obj 563 123 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 106 70 error reporting on the Pd-console; +#X text 239 111 via flags:; +#X text 524 96 via a message:; +#X obj 146 145 file size -q; +#X obj 146 175 file isfile -v; +#X obj 563 174 file isdirectory; +#X connect 2 0 9 0; +#X connect 3 0 2 0; +#X restore 626 175 pd flags; #X connect 0 0 1 0; -#X connect 0 1 39 0; +#X connect 0 1 38 0; #X connect 1 0 11 0; #X connect 2 0 10 0; #X connect 3 0 2 0; -#X connect 3 1 41 0; -#X connect 6 0 29 2; -#X connect 8 0 29 2; +#X connect 3 1 40 0; +#X connect 6 0 28 2; +#X connect 8 0 28 2; #X connect 14 0 16 0; #X connect 15 0 14 0; -#X connect 15 1 40 0; +#X connect 15 1 39 0; #X connect 24 0 0 0; #X connect 25 0 15 0; #X connect 26 0 3 0; -#X connect 28 0 30 0; -#X connect 29 0 28 0; -#X connect 37 0 29 0; -#X connect 38 0 29 1; -#X connect 39 0 18 0; -#X connect 40 0 19 0; -#X connect 41 0 9 0; -#X restore 440 340 pd info; -#N canvas 453 23 827 708 stat 0; +#X connect 27 0 29 0; +#X connect 28 0 27 0; +#X connect 36 0 28 0; +#X connect 37 0 28 1; +#X connect 38 0 18 0; +#X connect 39 0 19 0; +#X connect 40 0 9 0; +#X restore 442 340 pd info; +#N canvas 302 23 827 708 stat 0; #X text 27 59 select a file, f 6; #X text 140 63 select a directory; #X msg 161 94 symbol .; @@ -757,20 +757,6 @@ #X connect 8 0 0 0; #X restore 80 121 pd openpanel; #X obj 80 180 file stat; -#N canvas 565 317 738 232 arguments 0; -#X text 274 145 less verbose (quiet); -#X text 274 175 more verbose (loud); -#X msg 563 149 verbose \$1; -#X obj 563 124 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 106 70 error reporting on the Pd-console; -#X text 239 111 via flags:; -#X text 524 97 via a message:; -#X obj 146 145 file stat -q; -#X obj 146 175 file stat -v; -#X obj 563 174 file stat; -#X connect 2 0 9 0; -#X connect 3 0 2 0; -#X restore 613 153 pd arguments; #X text 445 70 [file stat] queries the filesystem about the given path \, and outputs the collected data as a number of routable messages., f 46; #X text 385 384 (the symlink flag is additional: e.g. \, if the path is a symlink to a directory \, both isdirectory and issymlink will be true); #X symbolatom 80 150 66 0 0 0 - - - 0; @@ -812,15 +798,29 @@ #X text 151 403 F; #X text 228 404 D; #X text 307 404 L; +#N canvas 565 317 738 232 flags 0; +#X text 274 145 less verbose (quiet); +#X text 274 175 more verbose (loud); +#X msg 563 149 verbose \$1; +#X obj 563 124 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 106 70 error reporting on the Pd-console; +#X text 239 111 via flags:; +#X text 524 97 via a message:; +#X obj 146 145 file stat -q; +#X obj 146 175 file stat -v; +#X obj 563 174 file stat; +#X connect 2 0 9 0; +#X connect 3 0 2 0; +#X restore 671 194 pd flags; #X connect 2 0 41 2; #X connect 4 0 41 2; #X connect 7 0 28 0; #X connect 7 1 8 0; #X connect 10 0 11 0; #X connect 11 0 13 0; -#X connect 12 0 62 0; -#X connect 12 1 63 0; -#X connect 12 2 64 0; +#X connect 12 0 61 0; +#X connect 12 1 62 0; +#X connect 12 2 63 0; #X connect 16 0 33 0; #X connect 17 0 18 0; #X connect 17 1 20 0; @@ -835,26 +835,26 @@ #X connect 25 0 23 0; #X connect 25 1 10 0; #X connect 26 0 17 0; -#X connect 26 1 48 0; +#X connect 26 1 47 0; #X connect 28 0 22 0; #X connect 28 1 30 0; #X connect 30 0 27 0; #X connect 31 0 9 0; -#X connect 31 1 57 0; -#X connect 31 2 58 0; -#X connect 31 3 59 0; +#X connect 31 1 56 0; +#X connect 31 2 57 0; +#X connect 31 3 58 0; #X connect 32 0 16 0; #X connect 33 0 34 0; -#X connect 41 0 46 0; +#X connect 41 0 45 0; #X connect 42 0 7 0; -#X connect 42 1 55 0; -#X connect 46 0 42 0; -#X connect 48 0 14 0; -#X connect 48 1 15 0; -#X connect 53 0 41 0; -#X connect 54 0 41 1; -#X connect 55 0 6 0; -#X restore 440 311 pd stat; +#X connect 42 1 54 0; +#X connect 45 0 42 0; +#X connect 47 0 14 0; +#X connect 47 1 15 0; +#X connect 52 0 41 0; +#X connect 53 0 41 1; +#X connect 54 0 6 0; +#X restore 442 311 pd stat; #N canvas 549 160 676 359 move 0; #X msg 53 110 list source destination; #N canvas 305 121 542 398 arguments 0; @@ -905,12 +905,12 @@ #X connect 1 0 7 0; #X connect 7 0 8 0; #X connect 7 1 9 0; -#X restore 440 425 pd move; -#X text 22 695 see also:; -#X obj 97 694 text; -#X obj 139 694 array; -#X obj 188 694 list; -#X text 157 328 - get information on existing files; +#X restore 442 425 pd move; +#X text 22 665 see also:; +#X obj 97 664 text; +#X obj 139 664 array; +#X obj 188 664 list; +#X text 155 328 - get information on existing files; #N canvas 451 65 791 637 split+join 0; #N canvas 140 311 547 369 path 0; #X obj 103 233 symbol; @@ -1035,7 +1035,7 @@ #X connect 25 0 2 0; #X connect 28 0 21 1; #X connect 29 0 21 0; -#X restore 440 518 pd split+join; +#X restore 442 518 pd split+join; #N canvas 395 48 794 632 base+ext 0; #N canvas 375 327 547 369 path 0; #X obj 103 233 symbol; @@ -1165,9 +1165,9 @@ #X connect 25 0 24 0; #X connect 26 0 29 0; #X connect 27 0 28 0; -#X restore 440 548 pd base+ext; +#X restore 442 548 pd base+ext; #X obj 27 123 file define \$0.f; -#X text 156 122 - shared file handles; +#X text 154 122 - shared file handles; #N canvas 565 43 617 557 define 0; #X obj 63 177 file define \$0.foo; #X text 213 177 declare a file-handle with a given name.; @@ -1194,7 +1194,7 @@ #X obj 30 20 file define z; #X text 164 103 NONE; #X text 164 65 NONE; -#X text 143 140 1 symbol - declared file-handle name.; +#X text 143 140 1) symbol - declared file-handle name.; #X restore 513 18 pd reference; #X obj 225 439 bng 19 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; #X text 17 122 In this case \, you can use the [file define] object to provide a file handle that can then be accessed by multiple [file handle] objects., f 77; @@ -1203,7 +1203,7 @@ #X connect 5 0 9 0; #X connect 10 0 9 1; #X connect 17 0 10 0; -#X restore 440 123 pd define; +#X restore 442 123 pd define; #X obj 10 44 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 0; #N canvas 765 68 566 232 reference 0; #X obj 7 163 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0; @@ -1215,7 +1215,7 @@ #X text 73 18 - low-level file operations; #X text 160 86 sets the function of [file] \, possible values: handle \, define \, mkdir \, which \, glob \, stat \, isfile \, isdirectory \, size \, copy \, move \, delete \, split \, join \, splitext and splitname. The default value is 'define'., f 54; #X restore 469 12 pd reference; -#X obj 9 683 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X obj 9 653 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X obj 27 197 file patchpath; #N canvas 513 87 618 571 patchpath 0; #X symbolatom 88 529 0 0 0 0 - - - 0; @@ -1265,25 +1265,11 @@ #X connect 7 0 1 0; #X connect 8 0 1 0; #X connect 19 0 1 0; -#X restore 440 197 pd patchpath; -#X text 157 196 - get path relative to the patch; +#X restore 442 197 pd patchpath; +#X text 155 196 - get path relative to the patch; #X obj 27 172 file cwd; -#X text 157 171 - get/set the current working directory; +#X text 155 171 - get/set the current working directory; #N canvas 536 54 569 586 cwd 0; -#N canvas 373 310 531 228 arguments 0; -#X text 164 93 less verbose (quiet); -#X text 164 123 more verbose (loud); -#X msg 354 113 verbose \$1; -#X obj 354 81 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; -#X text 34 29 error reporting on the Pd-console; -#X text 129 59 via flags:; -#X text 380 82 via a message:; -#X obj 36 93 file cwd -q; -#X obj 36 123 file cwd -v; -#X obj 354 138 file cwd; -#X connect 2 0 9 0; -#X connect 3 0 2 0; -#X restore 350 533 pd arguments; #X obj 196 467 bng 20 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; #X obj 108 425 file cwd, f 13; #X text 115 172 get the Current Working Directory; @@ -1292,10 +1278,10 @@ #X msg 108 216 symbol ..; #X text 185 215 change to the parent directory; #X text 202 257 change to the HOME-directory; -#X msg 145 295 symbol /foo; -#X text 238 294 change to some other (most likely nonexistent) directory, f 29; +#X msg 145 298 symbol /foo; +#X text 237 292 change to some other (most likely nonexistent) directory, f 29; #X obj 160 366 openpanel 1; -#X text 191 340 select a new working directory; +#X text 189 340 select a new working directory; #X text 52 63 [file cwd] allows you to query and set the Current Working Directory., f 69; #X text 53 90 The Current Working Directory is typically the directory where you started Pd from (and is distinct from the directory your patch or abstraction lives in \, or where Pd is installed to), f 69; #X obj 11 47 cnv 1 550 1 empty empty empty 8 12 0 13 #000000 #000000 0; @@ -1323,15 +1309,29 @@ #X obj 83 172 bng 20 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; #X obj 160 341 bng 20 250 50 0 empty empty empty -35 10 0 10 #dfdfdf #000000 #000000; #X text 242 431 In case of an error \, the 2nd outlet sends out a bang. An error occurs for example \, if you try to change the CWD to a path that is not a directory., f 37; -#X connect 2 0 4 0; -#X connect 2 1 1 0; -#X connect 5 0 2 0; -#X connect 6 0 2 0; -#X connect 9 0 2 0; -#X connect 11 0 2 0; -#X connect 20 0 2 0; -#X connect 21 0 11 0; -#X restore 440 172 pd cwd; +#N canvas 373 310 531 228 flags 0; +#X text 164 93 less verbose (quiet); +#X text 164 123 more verbose (loud); +#X msg 354 113 verbose \$1; +#X obj 354 81 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1; +#X text 34 29 error reporting on the Pd-console; +#X text 129 59 via flags:; +#X text 380 82 via a message:; +#X obj 36 93 file cwd -q; +#X obj 36 123 file cwd -v; +#X obj 354 138 file cwd; +#X connect 2 0 9 0; +#X connect 3 0 2 0; +#X restore 350 533 pd flags; +#X connect 1 0 3 0; +#X connect 1 1 0 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 8 0 1 0; +#X connect 10 0 1 0; +#X connect 19 0 1 0; +#X connect 20 0 10 0; +#X restore 442 172 pd cwd; #X obj 27 614 file isabsolute; #N canvas 469 92 627 573 isabsolute 0; #X floatatom 89 529 5 0 0 0 - - - 0; @@ -1379,7 +1379,7 @@ #X connect 11 0 17 0; #X connect 17 0 0 0; #X connect 20 0 1 0; -#X restore 440 614 pd isabsolute; +#X restore 442 614 pd isabsolute; #X obj 27 587 file normalize; #N canvas 493 23 705 716 normalize 0; #X symbolatom 77 403 0 0 0 0 - - - 0; @@ -1396,20 +1396,6 @@ #X msg 116 258 symbol /../foo; #X text 235 251 you cannot go up from the root directory (/) \, so the ".." component doesn't do anything. "foo" however does.; #X msg 134 301 symbol C:/../foo; -#N canvas 19 51 868 238 arguments 0; -#X text 274 145 less verbose (quiet); -#X text 274 175 more verbose (loud); -#X msg 563 149 verbose \$1; -#X obj 563 127 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X text 106 70 error reporting on the Pd-console; -#X text 239 111 via flags:; -#X text 524 100 via a message:; -#X obj 146 145 file normalize -q; -#X obj 146 175 file normalize -v; -#X obj 563 174 file normalize; -#X connect 2 0 9 0; -#X connect 3 0 2 0; -#X restore 474 684 pd arguments; #X symbolatom 56 690 0 0 0 0 - - - 0; #X symbolatom 56 609 0 0 0 0 - - - 0; #X obj 56 635 file normalize; @@ -1445,6 +1431,20 @@ #X text 42 432 [file normalize] can also be used to check whether a path is valid. Invalid paths will also print an error to the Pd-console \, which can be suppressed by reducing the verbosity., f 89; #X text 268 296 On Microsoft Windows (MSW) \, "C:/" this is an absolute path \, so going up from it is just discarded. However \, on un*x (Linux \, macOS \, ...) \, C: is just a relative path that is made redundant by the following "..", f 53; #X text 219 591 The 2nd outlet gives an error code \, indicating whether the path is valid (0) \, invalid (2) or invalid-on-other-systems (1)., f 63; +#N canvas 19 51 868 238 flags 0; +#X text 274 145 less verbose (quiet); +#X text 274 175 more verbose (loud); +#X msg 563 149 verbose \$1; +#X obj 563 127 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1; +#X text 106 70 error reporting on the Pd-console; +#X text 239 111 via flags:; +#X text 524 100 via a message:; +#X obj 146 145 file normalize -q; +#X obj 146 175 file normalize -v; +#X obj 563 174 file normalize; +#X connect 2 0 9 0; +#X connect 3 0 2 0; +#X restore 513 680 pd flags; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 3 0 0 0; @@ -1453,11 +1453,12 @@ #X connect 8 0 1 0; #X connect 11 0 1 0; #X connect 13 0 1 0; -#X connect 16 0 17 0; -#X connect 17 0 15 0; -#X connect 17 1 18 0; -#X connect 19 0 16 0; -#X connect 21 0 16 0; -#X connect 22 0 16 0; -#X restore 440 587 pd normalize; -#X text 349 694 updated for Pd version 0.54; +#X connect 15 0 16 0; +#X connect 16 0 14 0; +#X connect 16 1 17 0; +#X connect 18 0 15 0; +#X connect 20 0 15 0; +#X connect 21 0 15 0; +#X restore 442 587 pd normalize; +#X text 349 664 updated for Pd version 0.55; +#X text 28 68 The first argument of [file] sets its function:; From f795f548975c1958068c9bbbe095af5151d06b52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?uml=C3=A4ute?= Date: Thu, 14 Mar 2024 17:07:37 +0000 Subject: [PATCH 109/450] Translated using Weblate (German) Currently translated at 100.0% (494 of 494 strings) Translation: pure-data/Interface Translate-URL: https://hosted.weblate.org/projects/pure-data/pure-data/de/ --- po/de.po | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/po/de.po b/po/de.po index dc838575b..04f3be96e 100644 --- a/po/de.po +++ b/po/de.po @@ -10,16 +10,16 @@ msgstr "" "Project-Id-Version: Pure Data 0.52\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" "POT-Creation-Date: 2024-03-14 18:04+0100\n" -"PO-Revision-Date: 2023-10-23 10:04+0000\n" +"PO-Revision-Date: 2024-03-14 20:00+0000\n" "Last-Translator: umläute \n" -"Language-Team: German \n" +"Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.1.1-dev\n" +"X-Generator: Weblate 5.5-dev\n" msgid "linear" msgstr "linear" @@ -595,10 +595,10 @@ msgid "single page" msgstr "alles auf einer Seite" msgid "patching helpers" -msgstr "" +msgstr "Patching-Hilfen" msgid "Highlight active cord while connecting" -msgstr "" +msgstr "Aktive Verbindung während des Verbindens hervorheben" msgid "Preferences" msgstr "Einstellungen" @@ -816,11 +816,11 @@ msgstr "Referenz-SHA256 für '%s' nicht verfügbar." #, tcl-format msgid "File checksum looks invalid: '%s'." -msgstr "" +msgstr "Die Checksumme der Datei sieht ungültig aus: '%s'." #, tcl-format msgid "Reference checksum looks invalid: '%s'." -msgstr "" +msgstr "Die Referenzchecksumme sieht ungültig aus: '%s'." #, tcl-format msgid "Unable to perform SHA256 verification for '%s'." @@ -1149,9 +1149,8 @@ msgstr "Download abgeschlossen! Überprüfung..." msgid "Ignoring checksum mismatch" msgstr "Ignoriere Checksummen-Fehler" -#, fuzzy msgid "Ignoring checksum errors" -msgstr "Ignoriere Checksummen-Fehler" +msgstr "Checksummen-Fehler werden ignoriert" #, tcl-format msgid "[deken] deken-plugin.tcl (Pd externals search) loaded from %s." From 6ea584ebb3501e03d7f01ef08b20c01389bdd7a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?uml=C3=A4ute?= Date: Thu, 14 Mar 2024 17:06:47 +0000 Subject: [PATCH 110/450] Translated using Weblate (English) Currently translated at 100.0% (494 of 494 strings) Translation: pure-data/Interface Translate-URL: https://hosted.weblate.org/projects/pure-data/pure-data/en/ --- po/en.po | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/po/en.po b/po/en.po index 9c3e15c39..d2e95a078 100644 --- a/po/en.po +++ b/po/en.po @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: Pure Data 0.51.4\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" "POT-Creation-Date: 2024-03-14 18:04+0100\n" -"PO-Revision-Date: 2023-06-27 06:05+0000\n" +"PO-Revision-Date: 2024-03-14 20:00+0000\n" "Last-Translator: umläute \n" -"Language-Team: English \n" +"Language-Team: English \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18.1\n" +"X-Generator: Weblate 5.5-dev\n" msgid "linear" msgstr "linear" @@ -583,10 +583,10 @@ msgid "single page" msgstr "single page" msgid "patching helpers" -msgstr "" +msgstr "patching helpers" msgid "Highlight active cord while connecting" -msgstr "" +msgstr "Highlight active cord while connecting" msgid "Preferences" msgstr "Preferences" @@ -798,11 +798,11 @@ msgstr "Unable to fetch reference SHA256 for '%s'." #, tcl-format msgid "File checksum looks invalid: '%s'." -msgstr "" +msgstr "File checksum looks invalid: '%s'." #, tcl-format msgid "Reference checksum looks invalid: '%s'." -msgstr "" +msgstr "Reference checksum looks invalid: '%s'." #, tcl-format msgid "Unable to perform SHA256 verification for '%s'." @@ -1125,9 +1125,8 @@ msgstr "Download completed! Verifying..." msgid "Ignoring checksum mismatch" msgstr "Ignoring checksum mismatch" -#, fuzzy msgid "Ignoring checksum errors" -msgstr "Ignoring checksum mismatch" +msgstr "Ignoring checksum errors" #, tcl-format msgid "[deken] deken-plugin.tcl (Pd externals search) loaded from %s." From 06a5e38ad29668586230fd2c89f0d3d3e0e2bee8 Mon Sep 17 00:00:00 2001 From: cyrille henry Date: Thu, 14 Mar 2024 19:43:38 +0000 Subject: [PATCH 111/450] Translated using Weblate (French) Currently translated at 100.0% (494 of 494 strings) Translation: pure-data/Interface Translate-URL: https://hosted.weblate.org/projects/pure-data/pure-data/fr/ --- po/fr.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/po/fr.po b/po/fr.po index 8985bce39..0d33b2a24 100644 --- a/po/fr.po +++ b/po/fr.po @@ -11,16 +11,16 @@ msgstr "" "Project-Id-Version: Pure Data 0.53-0\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" "POT-Creation-Date: 2024-03-14 18:04+0100\n" -"PO-Revision-Date: 2023-10-23 10:04+0000\n" -"Last-Translator: umläute \n" -"Language-Team: French \n" +"PO-Revision-Date: 2024-03-14 20:00+0000\n" +"Last-Translator: cyrille henry \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.1.1-dev\n" +"X-Generator: Weblate 5.5-dev\n" msgid "linear" msgstr "linéaire" @@ -586,10 +586,10 @@ msgid "use tabs" msgstr "en onglets" msgid "single page" -msgstr "sur une seule page" +msgstr "une seule page" msgid "patching helpers" -msgstr "" +msgstr "aide au patch" msgid "Highlight active cord while connecting" msgstr "" From 19bb95d65c0a8fb3423736301983b013d77de4c9 Mon Sep 17 00:00:00 2001 From: baptiste Date: Thu, 14 Mar 2024 19:43:32 +0000 Subject: [PATCH 112/450] Translated using Weblate (French) Currently translated at 100.0% (494 of 494 strings) Translation: pure-data/Interface Translate-URL: https://hosted.weblate.org/projects/pure-data/pure-data/fr/ --- po/fr.po | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/po/fr.po b/po/fr.po index 0d33b2a24..7731ac66b 100644 --- a/po/fr.po +++ b/po/fr.po @@ -12,7 +12,7 @@ msgstr "" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" "POT-Creation-Date: 2024-03-14 18:04+0100\n" "PO-Revision-Date: 2024-03-14 20:00+0000\n" -"Last-Translator: cyrille henry \n" +"Last-Translator: baptiste \n" "Language-Team: French \n" "Language: fr\n" @@ -298,7 +298,7 @@ msgid "Send" msgstr "Envoyer" msgid "Done" -msgstr "Terminé" +msgstr "Fermer" #, tcl-format msgid "Found '%1$s' in %2$s" @@ -364,7 +364,7 @@ msgid "Receive symbol:" msgstr "Recevoir du symbole :" msgid "auto" -msgstr "auto" +msgstr "automatique" msgid "Width:" msgstr "Largeur :" @@ -592,7 +592,7 @@ msgid "patching helpers" msgstr "aide au patch" msgid "Highlight active cord while connecting" -msgstr "" +msgstr "Mettre le câble actif en surbrillance lors de la connexion" msgid "Preferences" msgstr "Préférences" @@ -808,11 +808,11 @@ msgstr "Impossible de récupérer le SHA256 de référence pour '%s'." #, tcl-format msgid "File checksum looks invalid: '%s'." -msgstr "" +msgstr "La somme de contrôle semble non valide : '%s'." #, tcl-format msgid "Reference checksum looks invalid: '%s'." -msgstr "" +msgstr "La somme de contrôle de référence semble non valide : '%s'." #, tcl-format msgid "Unable to perform SHA256 verification for '%s'." @@ -1155,9 +1155,8 @@ msgstr "Téléchargement terminé ! Vérification..." msgid "Ignoring checksum mismatch" msgstr "Ignorer l'erreur de somme de contrôle" -#, fuzzy msgid "Ignoring checksum errors" -msgstr "Ignorer l'erreur de somme de contrôle" +msgstr "Ignorer les erreurs de somme de contrôle" #, tcl-format msgid "[deken] deken-plugin.tcl (Pd externals search) loaded from %s." From e010f6af8ae145226e297a11e1db404bd0b83eb6 Mon Sep 17 00:00:00 2001 From: porres Date: Thu, 14 Mar 2024 17:24:50 -0300 Subject: [PATCH 113/450] properly document [file which] new depth level I got it wrong last time --- doc/5.reference/file-help.pd | 75 +++++++++++++++++------------------- 1 file changed, 36 insertions(+), 39 deletions(-) diff --git a/doc/5.reference/file-help.pd b/doc/5.reference/file-help.pd index ebbbc89cb..41c5016d9 100644 --- a/doc/5.reference/file-help.pd +++ b/doc/5.reference/file-help.pd @@ -303,44 +303,41 @@ #X text 154 250 - list files in directories; #X obj 27 249 file glob; #X obj 27 222 file which; -#N canvas 574 25 616 584 which 0; -#X obj 37 254 file which; -#X symbolatom 37 368 79 0 0 0 - - - 0; -#X obj 37 394 print found; -#X obj 104 307 print not!found; -#X msg 47 224 symbol nada; -#X msg 37 188 symbol hilbert~.pd; -#X text 179 188 a file that ships with Pd; -#X text 141 223 probably does not exist in Pd's search path; -#X symbolatom 104 280 47 0 0 0 - - - 0; -#X obj 37 340 unpack s f; -#X floatatom 129 341 3 0 0 1 - - - 0; +#N canvas 535 52 616 613 which 0; +#X obj 45 365 file which; +#X symbolatom 45 479 79 0 0 0 - - - 0; +#X obj 45 505 print found; +#X obj 112 418 print not!found; +#X msg 45 279 symbol hilbert~.pd; +#X text 187 279 a file that ships with Pd; +#X text 162 327 probably does not exist in Pd's search path; +#X symbolatom 112 391 47 0 0 0 - - - 0; +#X obj 45 451 unpack s f; +#X floatatom 137 452 3 0 0 1 - - - 0; #X obj 11 47 cnv 1 600 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 137 14 - locate a file; #X obj 50 15 file which; -#N canvas 680 125 575 370 reference 0; +#N canvas 680 125 563 321 reference 0; #X obj 9 52 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0; -#X obj 9 111 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; -#X obj 8 329 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0; -#X obj 9 167 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; -#X obj 9 137 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; -#X text 155 240 -q: set quiet verbosity., f 49; -#X text 155 258 -v: set loud verbosity., f 49; +#X obj 9 131 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0; +#X obj 8 304 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0; +#X obj 9 187 cnv 1 550 1 empty empty 2nd: 8 12 0 13 #7c7c7c #000000 0; +#X obj 9 157 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0; +#X text 155 260 -q: set quiet verbosity., f 49; +#X text 155 278 -v: set loud verbosity., f 49; #X obj 31 22 file which; #X text 114 22 - locate a file; -#X text 127 65 symbol - file to locate using Pd's search-paths.; -#X text 64 86 verbose - set verbosity on or off., f 57; -#X obj 7 208 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; -#X obj 7 234 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 0; -#X text 98 143 list - symbol path of located file and directory flag.; -#X text 85 174 symbol - the input symbol if file isn't located.; -#X obj 7 284 cnv 1 550 1 empty empty argument: 8 12 0 13 #9f9f9f #000000 0; -#X text 119 296 1) float -; -#X text 199 296 sets patch depth level to search (default 0).; +#X text 137 65 symbol - file to locate using Pd's search-paths., f 51; +#X text 74 103 verbose - set verbosity on or off., f 60; +#X obj 7 228 cnv 2 550 2 empty empty ARGUMENTS: 8 12 0 13 #202020 #000000 0; +#X obj 7 254 cnv 1 550 1 empty empty flags: 8 12 0 13 #9f9f9f #000000 0; +#X text 118 163 list - symbol path of located file and directory flag.; +#X text 105 194 symbol - the input symbol if file isn't located.; +#X text 39 83 list - file name and patch depth level to search., f 65; #X restore 518 15 pd reference; #X text 27 63 [file which] tries to locate a file using Pd's search-paths. This includes the same relative path (the folder where the patch lives \, and other Pd seatch paths like the ones set via preferences and/or the [declare] object. If the file is found \, the object returns a list in the left outlet with the resolved path and a flag to inform if it is a file (0) or a directory (1) \, though this currently only works for filesT If nothing is found \, the entry is sent to the right outlet., f 79; -#X text 158 333 directory flag: 0 if file \, 1 if directory (currently this only works for files), f 41; -#X text 126 395 note: - currently only the first match is returned; +#X text 166 444 directory flag: 0 if file \, 1 if directory (currently this only works for files), f 41; +#X text 134 506 note: - currently only the first match is returned; #N canvas 628 410 738 232 flags 0; #X text 274 145 less verbose (quiet); #X text 274 175 more verbose (loud); @@ -354,17 +351,17 @@ #X obj 563 174 file which; #X connect 2 0 9 0; #X connect 3 0 2 0; -#X restore 415 531 pd flags; -#X obj 44 461 file which 1; -#X text 150 440 The arguments sets the depth level. This is useful for setting which relative path to search for if the object is used in an abstraction. The default value is '0' \, which means relative to this patch. '1' is the parent patch \, '2' is the grandparent \, and so on., f 62; -#X connect 0 0 9 0; -#X connect 0 1 8 0; +#X restore 336 559 pd flags; +#X msg 68 328 list nada 1; +#X text 26 180 The [file which] object takes a symbol with the file name to search \, but you can Also provide a list with file name and depth level. The depth level is useful for setting which relative path to search for if the object is used in an abstraction. The default value is '0' \, which means relative to this patch. '1' is the parent patch \, '2' is the grandparent \, and so on., f 79; +#X connect 0 0 8 0; +#X connect 0 1 7 0; #X connect 1 0 2 0; #X connect 4 0 0 0; -#X connect 5 0 0 0; -#X connect 8 0 3 0; -#X connect 9 0 1 0; -#X connect 9 1 10 0; +#X connect 7 0 3 0; +#X connect 8 0 1 0; +#X connect 8 1 9 0; +#X connect 18 0 0 0; #X restore 442 222 pd which; #X obj 27 148 file mkdir; #X text 155 149 - create a directory; From 44345a63349b6cf3b2d95814e80c436cce70bbda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 15 Mar 2024 10:33:33 +0100 Subject: [PATCH 114/450] pdtk_open/savepanel: normalize dirnames so ~/ gets expanded on macOS Closes: https://github.com/pure-data/pure-data/issues/2214 --- tcl/wheredoesthisgo.tcl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tcl/wheredoesthisgo.tcl b/tcl/wheredoesthisgo.tcl index 76e61b435..abdf70223 100644 --- a/tcl/wheredoesthisgo.tcl +++ b/tcl/wheredoesthisgo.tcl @@ -36,6 +36,7 @@ proc open_file {filename} { # ------------------------------------------------------------------------------ # procs for panels (openpanel, savepanel) proc pdtk_openpanel {target localdir {mode 0} {parent .pdwindow}} { + set localdir [file normalize $localdir] if { $::pd::private::lastopendir == "" } { if { ! [file isdirectory $::fileopendir]} { set ::fileopendir $::env(HOME) @@ -89,6 +90,7 @@ proc pdtk_openpanel {target localdir {mode 0} {parent .pdwindow}} { proc pdtk_savepanel {target localdir {parent .pdwindow}} { + set localdir [file normalize $localdir] if { $::pd::private::lastsavedir == "" } { if { ! [file isdirectory $::filenewdir]} { set ::filenewdir $::env(HOME) From 56873a217d2e82d737ddbdf8b7616d693916d4b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 15 Mar 2024 10:49:45 +0100 Subject: [PATCH 115/450] canvas_makefilename: expand leading "~" and envvars (at least on windows) also re-use sys_isabsolutepath() rather than making our own naive implementation Closes: https://github.com/pure-data/pure-data/issues/2214 --- src/g_canvas.c | 5 +++-- src/s_path.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/g_canvas.c b/src/g_canvas.c index ccb3b0398..d893116a6 100644 --- a/src/g_canvas.c +++ b/src/g_canvas.c @@ -54,6 +54,7 @@ static void canvas_pop(t_canvas *x, t_floatarg fvis); static void canvas_bind(t_canvas *x); static void canvas_unbind(t_canvas *x); void canvas_declare(t_canvas *x, t_symbol *s, int argc, t_atom *argv); +void sys_expandpath(const char *from, char *to, int bufsize); /* ---------------- generic widget behavior ------------------------- */ @@ -305,9 +306,9 @@ t_symbol *canvas_getdir(const t_canvas *x) void canvas_makefilename(const t_canvas *x, const char *file, char *result, int resultsize) { const char *dir = canvas_getenv(x)->ce_dir->s_name; - if (file[0] == '/' || (file[0] && file[1] == ':') || !*dir) + if (sys_isabsolutepath(file) || !*dir) { - strncpy(result, file, resultsize); + sys_expandpath(file, result, resultsize); result[resultsize-1] = 0; } else diff --git a/src/s_path.c b/src/s_path.c index 2b1df870c..ad7b4d523 100644 --- a/src/s_path.c +++ b/src/s_path.c @@ -86,7 +86,7 @@ int sys_isabsolutepath(const char *dir) } /* expand env vars and ~ at the beginning of a path and make a copy to return */ -static void sys_expandpath(const char *from, char *to, int bufsize) +void sys_expandpath(const char *from, char *to, int bufsize) { if ((strlen(from) == 1 && from[0] == '~') || (strncmp(from,"~/", 2) == 0)) { From 63f8cf0ed679f94bf122ec8330258ce595c6359d Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Thu, 14 Mar 2024 20:56:34 +0000 Subject: [PATCH 116/450] Translated using Weblate (Spanish) Currently translated at 100.0% (494 of 494 strings) Translation: pure-data/Interface Translate-URL: https://hosted.weblate.org/projects/pure-data/pure-data/es/ --- po/es.po | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/po/es.po b/po/es.po index 402eb33df..119c4bb36 100644 --- a/po/es.po +++ b/po/es.po @@ -13,16 +13,16 @@ msgstr "" "Project-Id-Version: Pure Data 0.53.0\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" "POT-Creation-Date: 2024-03-14 18:04+0100\n" -"PO-Revision-Date: 2023-06-28 06:21+0000\n" +"PO-Revision-Date: 2024-03-15 10:44+0000\n" "Last-Translator: gallegonovato \n" -"Language-Team: Spanish \n" +"Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.18.1\n" +"X-Generator: Weblate 5.5-dev\n" msgid "linear" msgstr "Lineal" @@ -594,10 +594,10 @@ msgid "single page" msgstr "pagina única" msgid "patching helpers" -msgstr "" +msgstr "Ayudas para parchear" msgid "Highlight active cord while connecting" -msgstr "" +msgstr "Resalte la conexión activa mientras se conecta" msgid "Preferences" msgstr "Preferencias" @@ -813,11 +813,11 @@ msgstr "No se pudo conseguir la referencia SHA256 para '%s'." #, tcl-format msgid "File checksum looks invalid: '%s'." -msgstr "" +msgstr "La suma de comprobación del archivo parece no válida: '%s'." #, tcl-format msgid "Reference checksum looks invalid: '%s'." -msgstr "" +msgstr "La suma de comprobación de referencia parece no válida: '%s'." #, tcl-format msgid "Unable to perform SHA256 verification for '%s'." @@ -1146,9 +1146,8 @@ msgstr "¡Descarga completa! Verificando..." msgid "Ignoring checksum mismatch" msgstr "Ignorando diferencia de checksum" -#, fuzzy msgid "Ignoring checksum errors" -msgstr "Ignorando diferencia de checksum" +msgstr "Los errores de suma de comprobación se ignoran" #, tcl-format msgid "[deken] deken-plugin.tcl (Pd externals search) loaded from %s." From c4b07174787365fab838118650a8f06272da93a1 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 15 Mar 2024 19:23:45 -0300 Subject: [PATCH 117/450] add note about [delay 0] closes https://github.com/pure-data/pddp/issues/160 --- doc/5.reference/delay-help.pd | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/doc/5.reference/delay-help.pd b/doc/5.reference/delay-help.pd index a46d8fbfd..593b1870d 100644 --- a/doc/5.reference/delay-help.pd +++ b/doc/5.reference/delay-help.pd @@ -1,4 +1,4 @@ -#N canvas 437 23 706 639 12; +#N canvas 407 23 706 639 12; #X obj 24 11 delay; #X obj 25 36 del; #X floatatom 233 462 5 0 0 0 - - - 0; @@ -9,7 +9,7 @@ #X obj 64 270 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X text 491 602 updated for Pd version 0.45; #X obj 117 491 delay 1000 1 msec; -#X text 251 508 - tempo (float) and time unit (symbol) as in "tempo" message; +#X text 415 510 - tempo (float) and time unit (symbol) as in "tempo" message, f 30; #X msg 162 325 tempo 0.5 msec; #X floatatom 117 325 5 0 0 0 - - - 0; #X msg 117 298 1000; @@ -59,9 +59,9 @@ #X obj 8 587 cnv 1 690 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X obj 117 530 bng 25 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X text 20 75 The [delay] object outputs a bang after a given delay time (via argument or right inlet). A bang starts the delay. A float specifies the time delay and starts it. If the delay is running and scheduled to output \, sending a bang or a float cancels the previous setting and reschedules the output., f 94; -#X text 247 491 <-- creation arguments: - delay time (float); +#X text 247 491 <-- creation arguments: - delay time (float), f 54; #X text 59 36 <-- abbreviation; -#N canvas 514 198 736 437 examples 0; +#N canvas 570 48 709 670 examples 0; #X obj 131 169 delay 1 60 permin; #X obj 49 328 delay 1 1 sec; #X obj 527 172 delay 1 44100 samp; @@ -84,6 +84,14 @@ #X obj 527 275 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X obj 527 378 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X obj 527 339 delay 44100 1 samp; +#X obj 110 444 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 195 559 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 195 524 delay 0; +#X obj 142 594 realtime; +#X floatatom 142 622 7 0 0 0 - - - 0; +#X obj 110 478 t b b; +#X text 292 492 When [delay] receives a message it schedules a message for the future \, even if the time delay is 0! Here we use [realtime] for a nondeterministic result of how long it actually takes., f 49; +#X text 292 563 Check the 'Scheduling' section in Pd's manual \, Chapter 2 \, for more details on how Pd operates., f 49; #X connect 0 0 6 0; #X connect 1 0 13 0; #X connect 2 0 18 0; @@ -98,8 +106,14 @@ #X connect 16 0 2 0; #X connect 19 0 21 0; #X connect 21 0 20 0; -#X restore 450 550 pd examples; -#X text 320 549 open for more -->; +#X connect 22 0 27 0; +#X connect 23 0 25 1; +#X connect 24 0 23 0; +#X connect 25 0 26 0; +#X connect 27 0 24 0; +#X connect 27 1 25 0; +#X restore 213 551 pd examples; +#X text 303 550 <- open for more; #X connect 2 0 9 1; #X connect 3 0 9 0; #X connect 7 0 9 0; From 691472b803e2291696fd313150276fdc74f7e901 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 18 Mar 2024 08:44:22 +0100 Subject: [PATCH 118/450] add PD_DEPRECATED macro --- src/m_pd.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/m_pd.h b/src/m_pd.h index 74988b6e9..255a1399a 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -59,6 +59,18 @@ extern int pd_compatibilitylevel; /* e.g., 43 for pd 0.43 compatibility */ #define ATTRIBUTE_FORMAT_PRINTF(a, b) #endif +/* deprecation warning */ +#ifndef PD_DEPRECATED +# ifdef __GNUC__ +# define PD_DEPRECATED __attribute__ ((deprecated)) +# elif defined(_MSC_VER) && _MSC_VER >= 1300 +# define PD_DEPRECATED __declspec(deprecated) +# else +# define PD_DEPRECATED +# pragma message("PD_DEPRECATED not defined for this compiler") +# endif +#endif + #if !defined(_SIZE_T) && !defined(_SIZE_T_) #include /* just for size_t -- how lame! */ #endif From cb8ac67e2ef15b3c9bbfc0291ccbf82c92226a42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 18 Mar 2024 08:45:04 +0100 Subject: [PATCH 119/450] mark deprecated functions as such --- src/m_pd.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/m_pd.h b/src/m_pd.h index 255a1399a..9e2d97d01 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -390,7 +390,7 @@ EXTERN void clock_delay(t_clock *x, double delaytime); EXTERN void clock_unset(t_clock *x); EXTERN void clock_setunit(t_clock *x, double timeunit, int sampflag); EXTERN double clock_getlogicaltime(void); -EXTERN double clock_getsystime(void); /* OBSOLETE; use clock_getlogicaltime() */ +PD_DEPRECATED EXTERN double clock_getsystime(void); /* use clock_getlogicaltime() */ EXTERN double clock_gettimesince(double prevsystime); EXTERN double clock_gettimesincewithunits(double prevsystime, double units, int sampflag); @@ -742,12 +742,12 @@ 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); +PD_DEPRECATED EXTERN int garray_getfloatarray(t_garray *x, int *size, t_float **vec); /* use garray_getfloatwords() */ EXTERN int garray_getfloatwords(t_garray *x, int *size, t_word **vec); 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); /* avoid; use this: */ +PD_DEPRECATED EXTERN void garray_resize(t_garray *x, t_floatarg f); /* use garray_resize_long() */ EXTERN void garray_resize_long(t_garray *x, long n); /* better version */ EXTERN void garray_usedindsp(t_garray *x); EXTERN void garray_setsaveit(t_garray *x, int saveit); From c2098f108725b5d4bde493165d696773b0505eef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 18 Mar 2024 09:20:59 +0100 Subject: [PATCH 120/450] use clock_getlogicaltime() instead of the deprecated clock_getsystime() --- src/g_bang.c | 4 ++-- src/s_audio_mmio.c | 2 +- src/x_text.c | 4 ++-- src/x_time.c | 14 +++++++------- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/g_bang.c b/src/g_bang.c index 49d3e9863..31f84b5eb 100644 --- a/src/g_bang.c +++ b/src/g_bang.c @@ -173,7 +173,7 @@ static void bng_set(t_bng *x) { int holdtime = x->x_flashtime_hold; int sincelast = clock_gettimesince(x->x_lastflashtime); - x->x_lastflashtime = clock_getsystime(); + x->x_lastflashtime = clock_getlogicaltime(); if (sincelast < x->x_flashtime_hold*2) holdtime = sincelast/2; if (holdtime < x->x_flashtime_break) @@ -392,7 +392,7 @@ static void *bng_new(t_symbol *s, int argc, t_atom *argv) bng_check_minmax(x, ftbreak, fthold); x->x_gui.x_isa.x_locked = 0; iemgui_verify_snd_ne_rcv(&x->x_gui); - x->x_lastflashtime = clock_getsystime(); + x->x_lastflashtime = clock_getlogicaltime(); x->x_clock_hld = clock_new(x, (t_method)bng_tick_hld); x->x_clock_lck = clock_new(x, (t_method)bng_tick_lck); iemgui_newzoom(&x->x_gui); diff --git a/src/s_audio_mmio.c b/src/s_audio_mmio.c index e30b76925..d886762e6 100644 --- a/src/s_audio_mmio.c +++ b/src/s_audio_mmio.c @@ -270,7 +270,7 @@ static double initsystime = -1; /* call this whenever we reset audio */ static void nt_resetmidisync(void) { - initsystime = clock_getsystime(); + initsystime = clock_getlogicaltime(); nt_hibuftime = sys_getrealtime(); } diff --git a/src/x_text.c b/src/x_text.c index 03d5408b7..109bd5982 100644 --- a/src/x_text.c +++ b/src/x_text.c @@ -1953,7 +1953,7 @@ static void qlist_donext(t_qlist *x, int drop, int automatic) { clock_delay(x->x_clock, x->x_clockdelay = ap->a_w.w_float * x->x_tempo); - x->x_whenclockset = clock_getsystime(); + x->x_whenclockset = clock_getlogicaltime(); } else outlet_list(x->x_ob.ob_outlet, 0, onset2-onset, ap); x->x_innext = 0; @@ -2020,7 +2020,7 @@ static void qlist_bang(t_qlist *x) up to do this non-reentrantly after a delay of 0 */ if (x->x_innext) { - x->x_whenclockset = clock_getsystime(); + x->x_whenclockset = clock_getlogicaltime(); x->x_clockdelay = 0; clock_delay(x->x_clock, 0); } diff --git a/src/x_time.c b/src/x_time.c index bcb7d2b7f..290b02a41 100644 --- a/src/x_time.c +++ b/src/x_time.c @@ -240,7 +240,7 @@ typedef struct _line static void line_tick(t_line *x) { - double timenow = clock_getsystime(); + double timenow = clock_getlogicaltime(); double msectogo = - clock_gettimesince(x->x_targettime); if (msectogo < 1E-9) { @@ -260,7 +260,7 @@ static void line_tick(t_line *x) static void line_float(t_line *x, t_float f) { - double timenow = clock_getsystime(); + double timenow = clock_getlogicaltime(); if (x->x_gotinlet && x->x_in1val > 0) { if (timenow > x->x_targettime) x->x_setval = x->x_targetval; @@ -298,10 +298,10 @@ static void line_stop(t_line *x) { if (pd_compatibilitylevel >= 48) { - if (clock_getsystime() >= x->x_targettime) + if (clock_getlogicaltime() >= x->x_targettime) x->x_setval = x->x_targetval; else x->x_setval += x->x_1overtimediff * - (clock_getsystime() - x->x_prevtime) * + (clock_getlogicaltime() - x->x_prevtime) * (x->x_targetval - x->x_setval); } x->x_targetval = x->x_setval; @@ -326,7 +326,7 @@ static void *line_new(t_floatarg f, t_floatarg grain) x->x_gotinlet = 0; x->x_1overtimediff = 1; x->x_clock = clock_new(x, (t_method)line_tick); - x->x_targettime = x->x_prevtime = clock_getsystime(); + x->x_targettime = x->x_prevtime = clock_getlogicaltime(); x->x_grain = grain; outlet_new(&x->x_obj, gensym("float")); inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("ft1")); @@ -361,7 +361,7 @@ typedef struct _timer static void timer_bang(t_timer *x) { - x->x_settime = clock_getsystime(); + x->x_settime = clock_getlogicaltime(); x->x_moreelapsed = 0; } @@ -376,7 +376,7 @@ static void timer_tempo(t_timer *x, t_symbol *unitname, t_floatarg tempo) { x->x_moreelapsed += clock_gettimesincewithunits(x->x_settime, x->x_unit, x->x_samps); - x->x_settime = clock_getsystime(); + x->x_settime = clock_getlogicaltime(); parsetimeunits(x, tempo, unitname, &x->x_unit, &x->x_samps); } From 825a3ff8bc45e0fb42315e70bffc69eccf001b15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 18 Mar 2024 09:21:58 +0100 Subject: [PATCH 121/450] use garray_resize_long() instead of the deprecated garray_resize() --- src/g_array.c | 7 ++++++- src/x_array.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/g_array.c b/src/g_array.c index b78c7a674..5f0956efb 100644 --- a/src/g_array.c +++ b/src/g_array.c @@ -1245,6 +1245,11 @@ void garray_resize_long(t_garray *x, long n) } /* float version to use as Pd method */ +static void garray_doresize(t_garray *x, t_floatarg f) +{ + garray_resize_long(x, f); +} + /* deprecated function, kept only for ABI compatibility */ void garray_resize(t_garray *x, t_floatarg f) { garray_resize_long(x, f); @@ -1299,7 +1304,7 @@ void g_array_setup(void) A_SYMBOL, A_NULL); class_addmethod(garray_class, (t_method)garray_write, gensym("write"), A_SYMBOL, A_NULL); - class_addmethod(garray_class, (t_method)garray_resize, gensym("resize"), + class_addmethod(garray_class, (t_method)garray_doresize, gensym("resize"), A_FLOAT, A_NULL); class_addmethod(garray_class, (t_method)garray_zoom, gensym("zoom"), A_FLOAT, 0); diff --git a/src/x_array.c b/src/x_array.c index 93ad80a6b..e0336e445 100644 --- a/src/x_array.c +++ b/src/x_array.c @@ -440,7 +440,7 @@ static void array_size_float(t_array_size *x, t_floatarg f) pd_error(x, "no such array '%s'", x->x_tc.tc_sym->s_name); return; } - garray_resize(y, f); + garray_resize_long(y, f); } else { From 7f02fc89a2d050336a80fe0ff6adf04973161252 Mon Sep 17 00:00:00 2001 From: danomatika Date: Mon, 18 Mar 2024 23:51:32 +0100 Subject: [PATCH 122/450] soundfile comment typo and indentation fixes --- src/d_soundfile_aiff.c | 2 +- src/d_soundfile_caf.c | 2 +- src/d_soundfile_next.c | 16 ++++++++-------- src/d_soundfile_wave.c | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/d_soundfile_aiff.c b/src/d_soundfile_aiff.c index ce6e30d32..1ae7dd35f 100644 --- a/src/d_soundfile_aiff.c +++ b/src/d_soundfile_aiff.c @@ -204,7 +204,7 @@ static off_t aiff_firstchunk(const t_soundfile *sf, t_chunk *chunk) } /** read next chunk, chunk should be filled when calling - returns fills chunk offset on success or -1 */ + returns filled chunk offset on success or -1 */ static off_t aiff_nextchunk(const t_soundfile *sf, off_t offset, t_chunk *chunk) { int32_t chunksize = swap4s(chunk->c_size, !sys_isbigendian()); diff --git a/src/d_soundfile_caf.c b/src/d_soundfile_caf.c index 554a69ea1..ef4d875b8 100644 --- a/src/d_soundfile_caf.c +++ b/src/d_soundfile_caf.c @@ -127,7 +127,7 @@ static off_t caf_firstchunk(const t_soundfile *sf, t_chunk *chunk) } /** read next chunk, chunk should be filled when calling - returns fills chunk offset on success or -1 */ + returns filled chunk offset on success or -1 */ static off_t caf_nextchunk(const t_soundfile *sf, off_t offset, t_chunk *chunk) { int64_t chunksize = caf_getchunksize(chunk, !sys_isbigendian()); diff --git a/src/d_soundfile_next.c b/src/d_soundfile_next.c index 43a3d77b3..993feac04 100644 --- a/src/d_soundfile_next.c +++ b/src/d_soundfile_next.c @@ -25,14 +25,14 @@ this implementation: - * does not support headerless files - * supports big and little endian, system endianness used by default - * sets a default info string: "Pd " - * tries to set sound data length, otherwise falls back to "unknown size" - * sample format: 16 and 24 bit lpcm, 32 bit float, no 32 bit lpcm - - Pd versions < 0.51 did *not* write the actual data chunk size when updating - the header, but set "unknown size" instead. + * does not support headerless files + * supports big and little endian, system endianness used by default + * sets a default info string: "Pd " + * tries to set sound data length, otherwise falls back to "unknown size" + * sample format: 16 and 24 bit lpcm, 32 bit float, no 32 bit lpcm + + Pd versions < 0.51 did *not* write the actual data chunk size when updating + the header, but set "unknown size" instead. */ diff --git a/src/d_soundfile_wave.c b/src/d_soundfile_wave.c index 1128982de..7cc112a04 100644 --- a/src/d_soundfile_wave.c +++ b/src/d_soundfile_wave.c @@ -124,7 +124,7 @@ static off_t wave_firstchunk(const t_soundfile *sf, t_chunk *chunk) } /** read next chunk, chunk should be filled when calling - returns fills chunk offset on success or -1 */ + returns filled chunk offset on success or -1 */ static off_t wave_nextchunk(const t_soundfile *sf, off_t offset, t_chunk *chunk) { uint32_t chunksize = swap4(chunk->c_size, sys_isbigendian()); From 74998f60c6c953fe0c0156861ef077e91981064f Mon Sep 17 00:00:00 2001 From: Alberto Zin Date: Tue, 19 Mar 2024 20:25:59 +0000 Subject: [PATCH 123/450] Translated using Weblate (Italian) Currently translated at 100.0% (494 of 494 strings) Translation: pure-data/Interface Translate-URL: https://hosted.weblate.org/projects/pure-data/pure-data/it/ --- po/it.po | 50 +++++++++++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/po/it.po b/po/it.po index 70e8e7f2e..bbbcc7144 100644 --- a/po/it.po +++ b/po/it.po @@ -10,16 +10,16 @@ msgstr "" "Project-Id-Version: Pure Data 0.43\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" "POT-Creation-Date: 2024-03-14 18:04+0100\n" -"PO-Revision-Date: 2023-10-26 07:01+0000\n" -"Last-Translator: umläute \n" -"Language-Team: Italian \n" +"PO-Revision-Date: 2024-03-20 21:01+0000\n" +"Last-Translator: Alberto Zin \n" +"Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.1.1\n" +"X-Generator: Weblate 5.5-dev\n" msgid "linear" msgstr "lineare" @@ -83,7 +83,7 @@ msgid "Redo duplicate" msgstr "Ripeti duplicazione" msgid "Redo motion" -msgstr "Annulla spostamento" +msgstr "Ripeti spostamento" msgid "Redo paste" msgstr "Ripeti incolla" @@ -588,10 +588,10 @@ msgid "single page" msgstr "pagina singola" msgid "patching helpers" -msgstr "" +msgstr "aiuti per le connessioni" msgid "Highlight active cord while connecting" -msgstr "" +msgstr "Evidenzia linee attive durante il collegamento" msgid "Preferences" msgstr "Preferenze" @@ -623,28 +623,26 @@ msgstr "I settaggi sotto richiedono dei riavviare Pd!" msgid "Pd libraries to load on startup" msgstr "Librerie Pd da caricare all'avvio" -#, fuzzy msgid "GUI options" -msgstr "impostazioni GUI" +msgstr "Opzioni della GUI" msgid "language" msgstr "lingua" msgid "Menu language" -msgstr "menu lingua" +msgstr "Menu lingua" msgid "float (32bit)" -msgstr "" +msgstr "singola precisione (32bit)" msgid "double (64bit) EXPERIMENTAL" -msgstr "" +msgstr "double (64bit) SPERIMENTALE" msgid "double (64bit)" -msgstr "" +msgstr "doppia precisione (64bit)" -#, fuzzy msgid "float size" -msgstr "Dimensione del blocco:" +msgstr "dimensione del valore float" msgid "Numeric precision of Pd-core" msgstr "Precisione numerica di Pd-core" @@ -723,20 +721,19 @@ msgid "Failed to find plugins in %s ...skipping!" msgstr "Impossibile trovare plugin in %s ...scartato!" msgid "Pd startup failure" -msgstr "" +msgstr "Errore nella partenza di Pd" -#, fuzzy msgid "Failed to start Pd-core" -msgstr "Impossibile installare '%s'!" +msgstr "Errore nella partenza del core Pd" msgid "(Tcl) MISSING CLOSE-BRACE '}': " msgstr "(Tcl) MANCA LA PARENTESI GRAFFA DI CHIUSURA'}': " msgid "(Tcl) INVALID COMMAND NAME: " -msgstr "(Tcl) INVALID COMMAND NAME: " +msgstr "(Tcl) NOME DI COMANDO NON VALIDO: " msgid "(Tcl) UNHANDLED ERROR: " -msgstr "(Tcl) UNHANDLED ERROR: " +msgstr "(Tcl) ERRORE NON GESTITO: " #, tcl-format msgid "[deken] installed version [%1$s] > %2$s...skipping!" @@ -809,11 +806,11 @@ msgstr "Impossibile recuperare il riferimento SHA256 per '%s'." #, tcl-format msgid "File checksum looks invalid: '%s'." -msgstr "" +msgstr "Il checksum del file sembra non valido: '%s'." #, tcl-format msgid "Reference checksum looks invalid: '%s'." -msgstr "" +msgstr "Il checksum di riferimento sembra non valido: '%s'." #, tcl-format msgid "Unable to perform SHA256 verification for '%s'." @@ -1146,9 +1143,8 @@ msgstr "Scaricamento completato! Sto verificando..." msgid "Ignoring checksum mismatch" msgstr "Ignoro la non corrispondenza del checksum" -#, fuzzy msgid "Ignoring checksum errors" -msgstr "Ignoro la non corrispondenza del checksum" +msgstr "Trascurare gli errori di checksum" #, tcl-format msgid "[deken] deken-plugin.tcl (Pd externals search) loaded from %s." @@ -1616,11 +1612,11 @@ msgid "Pd" msgstr "Pd" msgid "EXPERIMENTAL double (64bit) precision" -msgstr "" +msgstr "SPERIMENTALE doppia precisione (64 bit)" #, tcl-format msgid "%dbit-floats EXPERIMENTAL" -msgstr "" +msgstr "%dbit-floats SPERIMENTALE" msgid "DSP" msgstr "DSP" From c2249df4757494e8b59923600838c0ee9b687469 Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 27 Mar 2024 23:55:36 -0300 Subject: [PATCH 124/450] Manual chapter2 revsion (#2233) * revision up to 2.3 * revise the rest quickly * Update x2.htm add `` for referring to keys * add one more * more revisions explained how to open or create a patch, change the font size, documented 'aligning' with arrow keys, and other minor details * add new 2.3 section in advanced editing * documenting tab navigation, autopatch, duplicate connections and 'shift' key * document cmd+k * document 'Clear Console' and 'Tidy up' * Document "Paste Replace" * document "shift + tab" to circle back * document triggerize * document tab cycle inlets * fix typos from CODESPELL * break long lines * anchors * update index * html: update internal links * html: typos * html: update images * html: fix broken link to subpatches * language, typos, image tags * remove trailing spaces, img tag fixes, alt-attributes * add missing alt attribute * add nowrap to css * first bunch of images * more pictures * more pictures * images, language * html: add screens for File, Edit, Put and Media menus * fix image for connection-insert, remove INCLUDE comments * Revert "add nowrap to css" This reverts commit 6a362857992c07f0f288956f1d367f8d39d071ac. * add
s where shortcuts might break * ascelerator -> shortcut * consistently capitalize first letters in shortcuts * add missing space * -> , css changes * fix filenames, add text change picture * image for tidying up in selected state (more consistent with the rest) * better autopatch-subpatch image * nowrap for * img url fix * paint it black * fix subpatch-autopatching once more. wasn't logical * align kbd background with font color * fix border color for * minor edits * there is no 'pure documentation' thing defined anywhere * more minor edits * frags does not exist anymore * html: sections and links start with upper case. * images: add cursors and deken install * fix images * image: add step to deken install * actually fix image of deken install * revise 2.3.4. * all jpg->png, add dsp on/off img, abstractions with window * adapt doc/Makefile.am to changed images * minor revisions * add connecting-boxes img, typo * replace cmd for ctrl and more revisions * further revision up to 2.4 * one last edit before giving to ben to include some pics * oops, typo * refer to 'preferences' in chapter 3 * move file menu pic earlier back * html: add edit-mode pic * html: update fig-ch2-console-edit-menu.png to highlight 'font' entry * more final revisions * fix 3 typos caught by CODESPELL * capitalize "Introduction" * html: remove deprecated
tag. * mention Pd can also be in double precision * add link to the manual in example 2.editing.pd on control examples * mention the 'X' shape cursor to delete connections * fix renaming outlet to inlet * html: single vs double max and min integers * typo * html: center table and remove external links * add formula to min/max float values * explain what pd64 is * html: add space in table * less space * AKA * remove 'include' pic * disconnect img,
syntax, language * rephrase 'object proper' paragraphs * remove whitespaces * update Makefile.am * minor revision * html: move images and resources to new folders * white space * html: move charset to meta tag * line breaks, rephrased few paragraphs * consistent 'menu' lowercase, rephrased paragraph * rephrased * more rephrasing and corrections * whitespace removed * img corrected * one last big revision --------- Co-authored-by: Lucas Cordiviola Co-authored-by: Ben Wesch Co-authored-by: Ben Wesch <1923787+ben-wes@users.noreply.github.com> --- doc/1.manual/{ => css}/favicon.ico | Bin doc/1.manual/{ => css}/pdmanual.css | 17 + doc/1.manual/deken.gif | Bin 158852 -> 0 bytes doc/1.manual/fig1.1.png | Bin 17051 -> 0 bytes doc/1.manual/fig1.2.jpg | Bin 5802 -> 0 bytes doc/1.manual/fig1.3.jpg | Bin 1476 -> 0 bytes doc/1.manual/fig1.4.png | Bin 4528 -> 0 bytes doc/1.manual/fig1.5.jpg | Bin 7900 -> 0 bytes doc/1.manual/fig11.1.png | Bin 66292 -> 0 bytes doc/1.manual/fig3.1.jpg | Bin 1739 -> 0 bytes doc/1.manual/fig3.10.jpg | Bin 3681 -> 0 bytes doc/1.manual/fig3.2.jpg | Bin 3653 -> 0 bytes doc/1.manual/fig3.3.jpg | Bin 2954 -> 0 bytes doc/1.manual/fig3.4.jpg | Bin 3226 -> 0 bytes doc/1.manual/fig3.5.jpg | Bin 2838 -> 0 bytes doc/1.manual/fig3.6.jpg | Bin 3383 -> 0 bytes doc/1.manual/fig3.7.jpg | Bin 4312 -> 0 bytes doc/1.manual/fig3.8.jpg | Bin 1815 -> 0 bytes doc/1.manual/fig3.9.jpg | Bin 7867 -> 0 bytes doc/1.manual/fig4.1.png | Bin 50014 -> 0 bytes doc/1.manual/fig4.3.png | Bin 36402 -> 0 bytes doc/1.manual/fig4.5.png | Bin 19454 -> 0 bytes doc/1.manual/fig4.6.png | Bin 45050 -> 0 bytes doc/1.manual/fig7.1.jpg | Bin 4225 -> 0 bytes doc/1.manual/fig7.2.jpg | Bin 17523 -> 0 bytes doc/1.manual/fig7.3.jpg | Bin 4908 -> 0 bytes doc/1.manual/fig7.4.jpg | Bin 6095 -> 0 bytes doc/1.manual/fig7.5.jpg | Bin 4982 -> 0 bytes doc/1.manual/fig7.6.jpg | Bin 20680 -> 0 bytes doc/1.manual/fig8.1.jpg | Bin 4919 -> 0 bytes doc/1.manual/fig8.2.jpg | Bin 4950 -> 0 bytes doc/1.manual/fig8.3.jpg | Bin 3745 -> 0 bytes doc/1.manual/fig8.4.jpg | Bin 6588 -> 0 bytes doc/1.manual/fig8.5.jpg | Bin 38855 -> 0 bytes doc/1.manual/fig8.6.jpg | Bin 50282 -> 0 bytes doc/1.manual/fig9.1.jpg | Bin 15267 -> 0 bytes doc/1.manual/fig9.2.jpg | Bin 17390 -> 0 bytes doc/1.manual/fig9.3.jpg | Bin 38881 -> 0 bytes .../img/fig-ch2-autopatching-objects.png | Bin 0 -> 12094 bytes .../img/fig-ch2-autopatching-subpatches.png | Bin 0 -> 42563 bytes doc/1.manual/img/fig-ch2-changing-text.png | Bin 0 -> 17473 bytes doc/1.manual/img/fig-ch2-connecting-boxes.png | Bin 0 -> 3999 bytes .../img/fig-ch2-console-edit-menu.png | Bin 0 -> 25264 bytes .../img/fig-ch2-console-media-menu.png | Bin 0 -> 12927 bytes ...is-connect-exclude-box-from-connection.png | Bin 0 -> 19001 bytes .../img/fig-ch2-dis-connect-fan-out-audio.png | Bin 0 -> 10118 bytes ...2-dis-connect-insert-box-to-connection.png | Bin 0 -> 17474 bytes doc/1.manual/img/fig-ch2-dis-connect-menu.png | Bin 0 -> 53885 bytes .../img/fig-ch2-dis-connect-parallel.png | Bin 0 -> 8387 bytes .../img/fig-ch2-disconnecting-boxes.png | Bin 0 -> 9491 bytes doc/1.manual/img/fig-ch2-dsp-on-off.png | Bin 0 -> 11259 bytes .../img/fig-ch2-duplicate-connections.png | Bin 0 -> 10801 bytes doc/1.manual/img/fig-ch2-editmode.png | Bin 0 -> 14998 bytes doc/1.manual/img/fig-ch2-file-menu.png | Bin 0 -> 12694 bytes ...ig-ch2-managing-connections-box-to-box.png | Bin 0 -> 10113 bytes ...-ch2-managing-connections-drag-fan-out.png | Bin 0 -> 9733 bytes .../fig-ch2-managing-connections-fan-in.png | Bin 0 -> 16071 bytes .../fig-ch2-managing-connections-fan-out.png | Bin 0 -> 17966 bytes ...g-ch2-managing-connections-many-to-one.png | Bin 0 -> 17391 bytes ...g-ch2-managing-connections-one-to-many.png | Bin 0 -> 12422 bytes ...g-ch2-managing-connections-shift-click.png | Bin 0 -> 13694 bytes .../img/fig-ch2-paste-replace-boxes.png | Bin 0 -> 20165 bytes .../img/fig-ch2-paste-replace-menu.png | Bin 0 -> 15066 bytes .../fig-ch2-paste-replace-similar-type.png | Bin 0 -> 16156 bytes doc/1.manual/img/fig-ch2-put-menu.png | Bin 0 -> 19401 bytes ...ems-and-moving-them-or-tidying-them-up.png | Bin 0 -> 10554 bytes .../img/fig-ch2-tab-navigation-boxes.png | Bin 0 -> 6923 bytes .../img/fig-ch2-tab-navigation-cords.png | Bin 0 -> 7248 bytes .../fig-ch2-tab-navigation-inlets-outlets.png | Bin 0 -> 5843 bytes ...h2-triggerize-insert-box-to-connection.png | Bin 0 -> 16037 bytes .../img/fig-ch2-triggerize-object.png | Bin 0 -> 17657 bytes doc/1.manual/img/fig-ch4-deken-install.png | Bin 0 -> 84760 bytes doc/1.manual/img/fig1.1.png | Bin 0 -> 40421 bytes doc/1.manual/img/fig1.2.png | Bin 0 -> 9050 bytes doc/1.manual/img/fig1.3.png | Bin 0 -> 4737 bytes doc/1.manual/img/fig1.4.png | Bin 0 -> 12150 bytes doc/1.manual/img/fig1.5.png | Bin 0 -> 12088 bytes doc/1.manual/img/fig11.1.png | Bin 0 -> 259715 bytes doc/1.manual/{ => img}/fig11.2.png | Bin doc/1.manual/{ => img}/fig11.3.png | Bin doc/1.manual/{ => img}/fig11.4.png | Bin doc/1.manual/img/fig3.1.png | Bin 0 -> 5138 bytes doc/1.manual/img/fig3.10.png | Bin 0 -> 7533 bytes doc/1.manual/img/fig3.2.png | Bin 0 -> 6664 bytes doc/1.manual/img/fig3.3.png | Bin 0 -> 6073 bytes doc/1.manual/img/fig3.4.png | Bin 0 -> 6643 bytes doc/1.manual/img/fig3.5.png | Bin 0 -> 5666 bytes doc/1.manual/img/fig3.6.png | Bin 0 -> 6481 bytes doc/1.manual/img/fig3.7.png | Bin 0 -> 7766 bytes doc/1.manual/img/fig3.8.png | Bin 0 -> 5200 bytes doc/1.manual/img/fig3.9.png | Bin 0 -> 10506 bytes doc/1.manual/img/fig4.1.png | Bin 0 -> 229132 bytes doc/1.manual/{ => img}/fig4.2.png | Bin doc/1.manual/img/fig4.3.png | Bin 0 -> 163892 bytes doc/1.manual/{ => img}/fig4.4.png | Bin doc/1.manual/img/fig4.5.png | Bin 0 -> 146929 bytes doc/1.manual/img/fig4.6.png | Bin 0 -> 230443 bytes doc/1.manual/{ => img}/fig4.7.png | Bin doc/1.manual/img/fig7.1.png | Bin 0 -> 8418 bytes doc/1.manual/img/fig7.2.png | Bin 0 -> 42819 bytes doc/1.manual/img/fig7.3.png | Bin 0 -> 7907 bytes doc/1.manual/img/fig7.4.png | Bin 0 -> 50531 bytes doc/1.manual/img/fig7.5.png | Bin 0 -> 8480 bytes doc/1.manual/img/fig7.6.png | Bin 0 -> 66585 bytes doc/1.manual/img/fig8.1.png | Bin 0 -> 9617 bytes doc/1.manual/img/fig8.2.png | Bin 0 -> 8402 bytes doc/1.manual/img/fig8.3.png | Bin 0 -> 7716 bytes doc/1.manual/img/fig8.4.png | Bin 0 -> 10959 bytes doc/1.manual/img/fig8.5.png | Bin 0 -> 83699 bytes doc/1.manual/img/fig8.6.png | Bin 0 -> 93500 bytes doc/1.manual/img/fig9.1.png | Bin 0 -> 90701 bytes doc/1.manual/img/fig9.2.png | Bin 0 -> 21898 bytes doc/1.manual/img/fig9.3.png | Bin 0 -> 65522 bytes doc/1.manual/index.htm | 196 +- doc/1.manual/x1.htm | 55 +- doc/1.manual/x2.htm | 2172 ++++++++++------- doc/1.manual/x3.htm | 100 +- doc/1.manual/x4.htm | 26 +- doc/1.manual/x5.htm | 135 +- doc/1.manual/x6-a.htm | 9 +- doc/1.manual/x6-b.htm | 9 +- doc/1.manual/x6-c.htm | 8 +- doc/1.manual/x6.htm | 11 +- doc/2.control.examples/02.editing.pd | 54 +- doc/2.control.examples/11.review.pd | 82 +- doc/2.control.examples/21.markov.chain.pd | 2 +- doc/Makefile.am | 121 +- 127 files changed, 1733 insertions(+), 1264 deletions(-) rename doc/1.manual/{ => css}/favicon.ico (100%) rename doc/1.manual/{ => css}/pdmanual.css (90%) delete mode 100644 doc/1.manual/deken.gif delete mode 100644 doc/1.manual/fig1.1.png delete mode 100644 doc/1.manual/fig1.2.jpg delete mode 100644 doc/1.manual/fig1.3.jpg delete mode 100644 doc/1.manual/fig1.4.png delete mode 100644 doc/1.manual/fig1.5.jpg delete mode 100644 doc/1.manual/fig11.1.png delete mode 100644 doc/1.manual/fig3.1.jpg delete mode 100644 doc/1.manual/fig3.10.jpg delete mode 100644 doc/1.manual/fig3.2.jpg delete mode 100644 doc/1.manual/fig3.3.jpg delete mode 100644 doc/1.manual/fig3.4.jpg delete mode 100644 doc/1.manual/fig3.5.jpg delete mode 100644 doc/1.manual/fig3.6.jpg delete mode 100644 doc/1.manual/fig3.7.jpg delete mode 100644 doc/1.manual/fig3.8.jpg delete mode 100644 doc/1.manual/fig3.9.jpg delete mode 100644 doc/1.manual/fig4.1.png delete mode 100644 doc/1.manual/fig4.3.png delete mode 100644 doc/1.manual/fig4.5.png delete mode 100644 doc/1.manual/fig4.6.png delete mode 100644 doc/1.manual/fig7.1.jpg delete mode 100644 doc/1.manual/fig7.2.jpg delete mode 100644 doc/1.manual/fig7.3.jpg delete mode 100644 doc/1.manual/fig7.4.jpg delete mode 100644 doc/1.manual/fig7.5.jpg delete mode 100644 doc/1.manual/fig7.6.jpg delete mode 100644 doc/1.manual/fig8.1.jpg delete mode 100644 doc/1.manual/fig8.2.jpg delete mode 100644 doc/1.manual/fig8.3.jpg delete mode 100644 doc/1.manual/fig8.4.jpg delete mode 100644 doc/1.manual/fig8.5.jpg delete mode 100644 doc/1.manual/fig8.6.jpg delete mode 100644 doc/1.manual/fig9.1.jpg delete mode 100644 doc/1.manual/fig9.2.jpg delete mode 100644 doc/1.manual/fig9.3.jpg create mode 100644 doc/1.manual/img/fig-ch2-autopatching-objects.png create mode 100644 doc/1.manual/img/fig-ch2-autopatching-subpatches.png create mode 100644 doc/1.manual/img/fig-ch2-changing-text.png create mode 100644 doc/1.manual/img/fig-ch2-connecting-boxes.png create mode 100644 doc/1.manual/img/fig-ch2-console-edit-menu.png create mode 100644 doc/1.manual/img/fig-ch2-console-media-menu.png create mode 100644 doc/1.manual/img/fig-ch2-dis-connect-exclude-box-from-connection.png create mode 100644 doc/1.manual/img/fig-ch2-dis-connect-fan-out-audio.png create mode 100644 doc/1.manual/img/fig-ch2-dis-connect-insert-box-to-connection.png create mode 100644 doc/1.manual/img/fig-ch2-dis-connect-menu.png create mode 100644 doc/1.manual/img/fig-ch2-dis-connect-parallel.png create mode 100644 doc/1.manual/img/fig-ch2-disconnecting-boxes.png create mode 100644 doc/1.manual/img/fig-ch2-dsp-on-off.png create mode 100644 doc/1.manual/img/fig-ch2-duplicate-connections.png create mode 100644 doc/1.manual/img/fig-ch2-editmode.png create mode 100644 doc/1.manual/img/fig-ch2-file-menu.png create mode 100644 doc/1.manual/img/fig-ch2-managing-connections-box-to-box.png create mode 100644 doc/1.manual/img/fig-ch2-managing-connections-drag-fan-out.png create mode 100644 doc/1.manual/img/fig-ch2-managing-connections-fan-in.png create mode 100644 doc/1.manual/img/fig-ch2-managing-connections-fan-out.png create mode 100644 doc/1.manual/img/fig-ch2-managing-connections-many-to-one.png create mode 100644 doc/1.manual/img/fig-ch2-managing-connections-one-to-many.png create mode 100644 doc/1.manual/img/fig-ch2-managing-connections-shift-click.png create mode 100644 doc/1.manual/img/fig-ch2-paste-replace-boxes.png create mode 100644 doc/1.manual/img/fig-ch2-paste-replace-menu.png create mode 100644 doc/1.manual/img/fig-ch2-paste-replace-similar-type.png create mode 100644 doc/1.manual/img/fig-ch2-put-menu.png create mode 100644 doc/1.manual/img/fig-ch2-selecting-items-and-moving-them-or-tidying-them-up.png create mode 100644 doc/1.manual/img/fig-ch2-tab-navigation-boxes.png create mode 100644 doc/1.manual/img/fig-ch2-tab-navigation-cords.png create mode 100644 doc/1.manual/img/fig-ch2-tab-navigation-inlets-outlets.png create mode 100644 doc/1.manual/img/fig-ch2-triggerize-insert-box-to-connection.png create mode 100644 doc/1.manual/img/fig-ch2-triggerize-object.png create mode 100644 doc/1.manual/img/fig-ch4-deken-install.png create mode 100644 doc/1.manual/img/fig1.1.png create mode 100644 doc/1.manual/img/fig1.2.png create mode 100644 doc/1.manual/img/fig1.3.png create mode 100644 doc/1.manual/img/fig1.4.png create mode 100644 doc/1.manual/img/fig1.5.png create mode 100644 doc/1.manual/img/fig11.1.png rename doc/1.manual/{ => img}/fig11.2.png (100%) rename doc/1.manual/{ => img}/fig11.3.png (100%) rename doc/1.manual/{ => img}/fig11.4.png (100%) create mode 100644 doc/1.manual/img/fig3.1.png create mode 100644 doc/1.manual/img/fig3.10.png create mode 100644 doc/1.manual/img/fig3.2.png create mode 100644 doc/1.manual/img/fig3.3.png create mode 100644 doc/1.manual/img/fig3.4.png create mode 100644 doc/1.manual/img/fig3.5.png create mode 100644 doc/1.manual/img/fig3.6.png create mode 100644 doc/1.manual/img/fig3.7.png create mode 100644 doc/1.manual/img/fig3.8.png create mode 100644 doc/1.manual/img/fig3.9.png create mode 100644 doc/1.manual/img/fig4.1.png rename doc/1.manual/{ => img}/fig4.2.png (100%) create mode 100644 doc/1.manual/img/fig4.3.png rename doc/1.manual/{ => img}/fig4.4.png (100%) create mode 100644 doc/1.manual/img/fig4.5.png create mode 100644 doc/1.manual/img/fig4.6.png rename doc/1.manual/{ => img}/fig4.7.png (100%) create mode 100644 doc/1.manual/img/fig7.1.png create mode 100644 doc/1.manual/img/fig7.2.png create mode 100644 doc/1.manual/img/fig7.3.png create mode 100644 doc/1.manual/img/fig7.4.png create mode 100644 doc/1.manual/img/fig7.5.png create mode 100644 doc/1.manual/img/fig7.6.png create mode 100644 doc/1.manual/img/fig8.1.png create mode 100644 doc/1.manual/img/fig8.2.png create mode 100644 doc/1.manual/img/fig8.3.png create mode 100644 doc/1.manual/img/fig8.4.png create mode 100644 doc/1.manual/img/fig8.5.png create mode 100644 doc/1.manual/img/fig8.6.png create mode 100644 doc/1.manual/img/fig9.1.png create mode 100644 doc/1.manual/img/fig9.2.png create mode 100644 doc/1.manual/img/fig9.3.png diff --git a/doc/1.manual/favicon.ico b/doc/1.manual/css/favicon.ico similarity index 100% rename from doc/1.manual/favicon.ico rename to doc/1.manual/css/favicon.ico diff --git a/doc/1.manual/pdmanual.css b/doc/1.manual/css/pdmanual.css similarity index 90% rename from doc/1.manual/pdmanual.css rename to doc/1.manual/css/pdmanual.css index 375964007..82d6ac1a9 100644 --- a/doc/1.manual/pdmanual.css +++ b/doc/1.manual/css/pdmanual.css @@ -88,6 +88,18 @@ CODE { font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; } +KBD { + background-color: #3E4349; + border: 1px solid #27292B; + color: #ffffff; + border-radius: 4px; + padding: 2px 4px; + margin: 0 2px; + white-space: nowrap; + font-size: 80%; + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + ol { font-size: 14.5pt; text-align: left; @@ -206,6 +218,11 @@ blockquote p { text-align: right; } +.center { + margin-left: auto; + margin-right: auto; +} + /* responsive css for small "devices" */ diff --git a/doc/1.manual/deken.gif b/doc/1.manual/deken.gif deleted file mode 100644 index 9167dc6441f777c6ea415972e386a90a0372c68d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158852 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

x!sE5~ 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 z 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 diff --git a/doc/1.manual/fig1.2.jpg b/doc/1.manual/fig1.2.jpg deleted file mode 100644 index 93cbbc5063da7ec898dbc8bd9cc4eff997cef05d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5802 zcmb7Hby!s0w>|?i^uRE*QbU6X14v7^bmzy=Ac%B_bP7m^lF})Sl!Sl+(%s!Eje&4S z{eHiD|Gn$k&vVXm*52!!v)^~WYpvV4+cg08NM1=E0HKW�dbmHvox@tF^hiwH3YB zV|P1x1tnFD+eJVIz{J4#J!bGnDLvSGwTv8}Ll=S~?w>v05t#t(4PhZ{@1`*5Nr%goZnu`-#-WXzfJ%>7ks+_5TKV}z%XF|0J=~z5((my zm;4(6^OL6E*%LP&i*lnN00YZw)Za!f2pRDNfI=eLP>b93mZjxsuQ9VHFGl)CE_D_d z+H1(@QYFSC2FunrF70mt{oLxa?CljfzBXIe(s^O~hX;;Y1|rHqf5Ss`8vot^0Cu)& zxiT=Asqy#07EqW24rvTdZ)d{unppWpu1}FW*+6){!;8?-x>#x$7pf?=3$;*d>+VJRPsOX z{Cg!rZw)gHy>A#GObCGauM-Tx!~!rtFmifqQZfNaCVma{KH;Eu4+O#Z_~heSdK=u< zlWF8gDHutXf_mQ2SbCw_(pI*2_|4>dj!kS2PL&!_x3-<}{)Uky!9+v7`v+gcXVn81 z8TQ+ch{E9djfs!f_;O$2;)e2)`O%bw-_tytg6$CAjR`asLXsQZvo__D4$-hBJm8=t z=(EM+X<@{BwxBZIn zL}`_+=7h*R+tk7HMLTn_*p%3e(!$hIvrT~d!GzO$qkHwoUnHv@WrSB%=?#KJu%yMB zRr2F!>Tv9M&Yav;y%7CVHb+bM+WCaVJcgPIkbG0)1M$zageRN`?@hKMMOw^M`pYWF zYjwh+f?mjW6saG~7tk|UPIoAKrMYMl+~wl%J>Iugk>f3rf^*t8QQ&{8=p9*(BF|En z1>*ggD@$@rCzY~`lSNfoJhN0{?$gI!=c0iSB?ds402UY@jQ=kXXl4>)!VwHSno{P$ z`7jcCUTH0t#M;ShFM5bL0$bHcrZaA3D8f)#|)m1s?Oet7f&Ahg-Tn7 zE>H`z3C2Haj1P)qL%sq3-l6LAJ&wAI~P2(=I z1p3xP$wRfxo$_S|SEkSGSMOO-U>fF<%eCBq>GL1Xt>@~95kZbUY=3`UO=k~T*3~$r z+1lZ@$7=0oN?8u&nYg(M#Cf4h2oMyLeZ~52U_jC;=1O>4AS)U)5wrvWm|!ey2sY#| zY9I`N7>6}A-=FWeFw@%@2 z)F#r|c}P|Cq78BLT4I@-N`_nK0GTutAj8&_D2lo7Rh#U%oDxWhZFnOL>$-SvDYv*w z-m0=@Gvm0OKw1A_QN2UrjPCn7xm0*ecw2>;*Q&a(C3%wgs67cri{o;&Sg|(9d3-U= zx!)UBPOE9;#UOcu3g^qM`^UMBmt@TRn+FvFpM1O zPTEn_b63hi$n7j*thn-cw}`GT zo8tV7hffFg!C5Jev;|*je5A~6E=%a^my4jxo+e=}s}V=$r0Mz9ov8Mb8aW;Eh6;>4 zm)=1R{`#9d?4TabA9cp45!bMT{d6m`v#>EE;r7v$RucSN=}(g6sWyXNAN)67mxzyN zo`)N0CYy?D#niAG;QxBl%EoyibKm43l5AFdtnmBj2<}VrSuPBX;yS*CkZsx z@-XxP#XzSoJS+(G57=ng1QWvn2ni|rkn&4uroiYKc_q4L(lQQQi>&k(cQG;0BHs}(z63GvGb!eeCbzt-!_X~Z_eqc-A7O>p_}2Z zOlj5vvGy-nB2tf*_u?N7yAJHCr3#=3EJULro8=Q*svlKk3?zon!>Mkz1-%Vk&Eo$U z9^e`PmZkCoW;seMexz#p`@mnx>CHQuFwwfpR#PV7loDYGMVaiCZG2#n?W6LZyEj?s z^KHENeQeX-V9q>WRbjh&Hu*bW3j$VMvVLPJ4%eFSnts_^;Kgcif1dJOVGXNeO+9?x zk>cJku6%vmryBj)KK1Js^E5XX8?#?l*{S&2*Zj*-ZCv(=?l-NqFD?SE#c@t$xD(5{ zgJ*iw7ll#hi$}dX!p4dGc}m#EHhg7$YNQOz#owBVQeYLdCz)EX& zY_0{9VJbll)kDtaEUqJ~VF{XkNdJ<~WNJ@^y-67P*AlJSyBymyby~|2+=p&Fk4}sE z1a<}-sce)mV6CwwZ-pLC)vP{$dHm!?wwvlcSgX86CX%doD5+W1MMHb;;p}oW@8%E% zWB-rIM(=<*&T$sPE@t}<`?FhsQ;>x(t5PVHVu%uyA!D{btT-RL`g564+=WDVM5m(wjde(#FYqu);@&-H

LZxjn&O*T)u&`93VeUkfe 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 diff --git a/doc/1.manual/fig1.4.png b/doc/1.manual/fig1.4.png deleted file mode 100644 index ad88c68776effbf41bd531ba5ab2662afdb38366..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4528 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 diff --git a/doc/1.manual/fig1.5.jpg b/doc/1.manual/fig1.5.jpg deleted file mode 100644 index 3d8fefa35f30a1e87d1542a7380ec369e1f03017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7900 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 T%X;A{FF`?#cR+8?-NOF?ZEe%c diff --git a/doc/1.manual/fig11.1.png b/doc/1.manual/fig11.1.png deleted file mode 100644 index 74e4f02021243b0a7a1899f06d5807672568aaf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66292 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 diff --git a/doc/1.manual/fig3.1.jpg b/doc/1.manual/fig3.1.jpg deleted file mode 100644 index 3fcb6ef85b84e861496d8edf891eb2604945b715..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1739 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 y23nuiKOSdu^tc};ETXNuS!hf%Fk|q1D3E?VB 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 Lzx!ReusirKetrY5 diff --git a/doc/1.manual/fig3.3.jpg b/doc/1.manual/fig3.3.jpg deleted file mode 100644 index 5c6a92d7ff2c6cad362ffcdc98eb2fc7276eccea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2954 zcmb7Gc|4SB8-Cwe7{-iun2~iF24$;JC_9mi3^SGrk+GCCVuT|{7)wPNODHOZlr5yv zNGgm%Q;jzOQFVv@`%f4t8`q0EA5! z)CGX0pMb1Qcpy6>Fo5#M-iRQ|7CM8u)C<@ENCaYez=nbc8iPioP-sbUaWRaPq?8m^ z5{t#*Wgr}$fX8AXIfx)jB#}r`(ktZUi1IQ-5^?z_AQJutg_c00C5SjIj`)AuQVT%9 z0Cs>k5+nc!0*EAlOF}^D7k>~y0>4d69F0JtF!14uW#7Qx2g?%>fn4eVq>vzhfRGTp zUUXUB7K?CD)bBJYT@3&Zc9G?Rt=jJJZfCozl||7LEh_+F_LxCTG5R8DfMC|@0_q2% z7dorGQYSh$cU=4uF)?D|ljR1=D)*WXb6+>S-`M5IiL$N!2#f%ws8{_ul+r_SdlPj|Oemk|Z{ zgnRc>gBjy7-I57vn~dczIyO9i61Vq`ZHBCe_8Hg8@#h&i9(Q{L%}K)k`;`|cq7-as z*5#Aw64mQg%ofiK-Q=>|fy6ZinkTDxKIBl?X)VHX?8VUNe|?6R1VB{{3CZZQp3>O7 zD^nCJYbN)X>qro^1cw!rS6OIWH){U6zq+Ob$ZjESa_f(MDAT#IOont>2xZsw-#QP4 zA9HZYUA1lUMp;+Y&eON2Fbb{8wtc&^&)RtJ^`vD;&CZ^K(RF^Iqs7Gk2VF)L39;Bb z6h)1uUqoF-&zk;)k66YZl}tV2kGV_E+gX+}o*Q$M%I3i6mo>)WH%aT; z^Nl_fZPzbrT(6>SzRJZ)c$j`M&x2oF!&0wYIa7Ug35Z!RLbg7*t$*8xvnP|a731;9 zj+o9-a)^F8uQvD4`BcVu(5m+GlFF(}F{AJS3waY20WKeXZb zUk92dI0{!|_%9F7hkqkGo@vOqrPkLw#X1t4>OXWn(&GLrBb?CgCd%Vg8qNaw7;^6$c#RHBbTlO0yzWo$m zDWM$VtsG=fv4+hARQlu0*Rbc)w@eBvffFBh9i7mk%MbZ6tT?n-bFjL z-jN4O?Nr`h_nqICKE*UJbUGc^s90)}b?~+&en;^M16TJ$Rdah4^sHM9uqepZnm~KG z);J@8JG`!HUmZ=GOD!yv(dyXum7FA>- zjKk!xwE~~$CmO1m@{}mN38}ut&InVhXhYR{PQ+X|)@jHbe3y3(bM1Xi+#|jF_U>13 z)W_{}m|AUz?%`djsXZa;R{O}77hO&5f}&KIuWI<0B;`}R!xP3o4(AlObtNmsv^cSL zQ;FU|`6a-!UWV3oU9e^j9ASIig=f7J0+<+;9 zPJyi8ef4Z-IF}j(SmaP368T#de&v$Qvu0&MG%m%8S@d^9UKRvswwi-K8~f+(iot?y z52=DX1I?(*KuG4EeQ(tcu3qh2ZQ6F{;0wS^ZKKkLPw~?B(mW+pYsjsx+EMd#unE+BJX}{XonV4)A{NRHs%zbT0jAZ~AMfA*_wTJd z_zy`~uK!D~L4vA20ADyR529sVfmu%dRt;#jOjJAm{d4R>2wsu)#&M{T6OU`X8`u@R zBe@TSe&$}fDcQ>`lz-}_Yu1V!^{EGk8or)2MojH~t>bVv{U^8DO;y>*VrRsiHq;UN zG5)ZGDZw)uXIy@{^XtshT-i7)L_?|f%SDWneVFihdyIRBK$(z+2@T&fYY9^&!?ghy z2OO<`pB6AxKp&!6Q&{ZZg#pc!k?PM}co38qjMvh$(P(%E;hN^;+#L@gxneF_)@y|a zljNX4)~F}eO0f}NP}kz)hS7iM*sj)ATIG2W|D1rp@5Q~C2aVTGNVzi8U5 z?usf>3WOr!bsnwMqdKC{k>dRj&n6~ubKU_yB~yi+>36tXcTZIvwoASz2>)>Un4a`e zzoKZ@ry*CjF|6|NWC_vZl{*r_qi=4>kEE|~wfO6GUflM@spHpWtv8=*!@Lqc3}R@- zyg8%rT>ZcrTo?#?a&OWpqg54wdN diff --git a/doc/1.manual/fig3.4.jpg b/doc/1.manual/fig3.4.jpg deleted file mode 100644 index c75d902a780f31ae928dd5d1645c3ca00b160ede..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3226 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 L8+_#Q(#!t<<;-!D diff --git a/doc/1.manual/fig3.6.jpg b/doc/1.manual/fig3.6.jpg deleted file mode 100644 index 049eb125a56475ccfc30ddfa2ba2d26243ed0f84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3383 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 diff --git a/doc/1.manual/fig3.7.jpg b/doc/1.manual/fig3.7.jpg deleted file mode 100644 index 220027a5533cef5d1fded87e7753e9de0bdd4483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4312 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 WaVp*1+ye87MWaSZ#MTx8;|hpKp#jty5J4VF zOI5N&CE5{-H5y}z^f zXYIB=0NBbP+gHL=R%jE`3jr+-tZrZ&S6E8 z>U(o~vtyntYg(XtS~t0?) z@!LZ#&(MwAP&^3~n1oQ!w;;q82MAw^`KjnUfyiG`=q6EWo=*e8HlW7`gw$-eygO*g znR8;?%w98ccJo^4C687~8N>gP3v*C9E7%I6tJ&U1Jr|U8JTuW3Hb-83eO~d+>}OAH zkpI8{gb<%brcmF2!i1Ah9MBnjzktI6LfhRAOf*lKTHV0pxe5Ihn+pwZ+D={!zdWo@ z*L^ZeyG8a<1ltrDUFsf0ZS*Q@-x}E0btf~a>nQ2xDlX?_%f39cC$+{mYi@WemAXFd z&?ofG9iDBXjOK!{=Z)lZFHQ~QWRBUVC5InME*D<7?b}8f+Ru7NdJ68G z4)zMkE!E4t^?RBXe%!Iy2JQa)ALv^~i`kRsd+YaqVaitq;r)p{*)P;bYjrPoYa+)R zCU#^zT4rd9_30AE8xAI34q=(2(@5K?hb_mw*r8P;AMW_LHlY9Yze49r64K`h z`sg}Arzt2mYt6oL_g5nFz`f|}Mu9T%_*#|v>+76#aX_&*F~;H3N4~B}w|P?SD_v|X zYD9~f5BRSWzpo7$N>Iu3)_)oIv1?b2URP?Eb6KjoD_(6sGvZiyRAUM^#p9Xr*OKL< zI-h$-S3!+O&MspO%hx>ykNbl#`=V>+2ow>0;(Ojs31I+Vbp z6I+=Fp;CwwIfcnKoo|Xz=?5^WLX*W)i6n)m{#0tq4>qwQKc)KNL$%0fkH(uLvg{tb zV)w67_wFInczF>t?~JY{XJ7gUI}59?b^MmeTIf!{{3P{a?nYjD(cRN3 z?oM^8*L<%Db8T6D*ZG#t=Cb#b+C84SNG*#AJ_4K=95A2|e_o0h`OQ$iRKdF7Acq3(#6OfEKFX9#;l|wzQ zV~Xc(!$ena02jjo3S=yV17K2N~(Bg3+$CRFQ;(ZSNe+dRM6-g*$=qT)I#H` zA#*wH?lH<28P`OT%)J6w;IU!pPn-&Gku>T=d1bwMgPK!M-ahlgp<7A#oE4Xrb{LL~ ziHC2k(9<|ve^W3NT2gQ=OIkPDf?p}Rb@0It`|FCAFcVCu!&TN`g1i(K<`i7O9v?wY w#dnAO^3C#KiBctn%f5XXRWo(E)e3ffoxQTLUc80t@NX+9v9~)|v)0=4AGlPJHUIzs diff --git a/doc/1.manual/fig3.9.jpg b/doc/1.manual/fig3.9.jpg deleted file mode 100644 index 11a7346bf4b46a5904c9d5d19ad2f1e85a7997a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7867 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 diff --git a/doc/1.manual/fig4.1.png b/doc/1.manual/fig4.1.png deleted file mode 100644 index 7797047ad5a88ab573740771a646fdd0db2edd5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50014 zcmcG#Wl&sE(?6Kt8r(g&ySoH;0>Og2ySux)li=>|GPniTK>`FH+?geLp7*V-+TAbz zs{JrEeea#t({=9ob@xOnD@q|F;3Ita@BvvyT0-^12Z*2#A3nyx!MxvrTr;|U|N7{x zDkb)zW}5Km{Q}BdR6+E^hx&NL7enaxYj_7~E$0s(J`Mf-d`zYPMDXFmz_pBo=vNQD z(@j_djC~+1=)#n9vv^k3Ooyh@w6-C!kPWMDG=WU5gyC^8`m@|uWl@v8526L6a5M-F z(4tWyg_CS@TDF0|er?7ac28K$C+Yr5F&eoDj&I-aIL~uT*S}!mjk^?qBMU(llO>GY zNktWVr&Cxk;n4pP%KuLSyqf;y4?o>I0~{HzBcVC27q6Z)DNR}^&;jwqc0T8hEtBL_N`VIFS_;5J*Ok!?p1|VE ze?q^cc8lukg+sRkvyIhAE%>6FcQ$Gv>K!H9ff#>9V7eRiXFF=z}ft-I`7;87jzoXD(hpV?E^vfczBVl^wzh=!o@f3Z zU^xFx4I5I_SycPnP;P8PpnW8>hx-#j=BNMIM_uwU(=s8=du790ZqJE&-ZN&fq*n4r zV1Z*&`wmWG%wwiEznmLP z;ufqX#RTSA_NDVbU?5_Kn&_4$4vQ!=WFkU1!}^z8XAq?GXVxt9$iK%GRW&CA#<)G) znYzAj=4R2QDoI^Q>?tDMe{H=^|7kjF&w*8$WkBOgJ3GYtoGqz?+oj$KFA=Z2z7 z^dxP9IB*AwB_H!H7j@A~EIIHIApXfmh(JY>E&f&YVMdn?`7NflJ-N?{)B*`4A1t_6 z#|qz{&!Xp%%VJzZM*UB^Dr%a~lcNR;O;;97V9CdVqdL|P98`f4_x^|>+tUwLOn8u@ zhMI5?p@x2TvMDqwKO`d2DP^HEp7d>ERd2F7xZej{nMU>(GIQ3>xIg1vsD&*c~{;x4T8Q1G1g82{1|NEf0S$sT$@*G*_5Gd(W9bfT8o4 z6)6prdwZ}bSszAN=<-Hjfp+z@7ju!NGY+m3o08_`YY5Fotseo;aP1Sk@D69@Et?sf9-!P)om?dk@d^ZUAdEWjlr)opb|G}>z{Oi+Wc*#=*mp9wGwT)~9xvi1s9nAE-9_ zmdJ6AmqbPJ`A7v~L6-9+e~D$%5c2ZruVQJHugdus%)G#3^~zm;3;?LVpw%$Ov{+EC z&~qNp=Eshpw7YjpUTtF^&c)ae#OIydSMnbBEBWxh89WFZ9|arqQgQiP6p6SO50T?H z_duZ1?PGd87U;grG-HC#Q0HH6^T53;5j&r`|B+Fvq{aMVzl+Pm%ZCrprcR%jEAu1D z5yT1n{rhXBqvG?@lrxlTd$8F2eHw&h;Ht>1DjV{L*ueLNOZY_8=qCwsL??l3*@qMr z7AFUpx@sPN5RT7!y60k56K$yQuzun9=rlDg((j3R#@kJ`Sc)DM2mQFB#pL;F!TtdQ zXcsK0c<*?;)EM+QSW&j1Rk%5wzMu#Wg{ZwY(skF86~hC|4OjY^<~7frRiFQPw4!ga zUxnL>pV_^_*rDFFQLDDX>RPKowpy+*9=7FLIb*uV5t^pQk`2qEO^reOvj1t0hXmip15U7K*_u zh{kzag)jjqvr?S;BIeQSz3c34Rai*so@hm^;?R!is7beDuH(l`Bic%vo>b6N#AOEO zt*_5ZzsF>b0D>CO8}`D@I?&5B^<{E~`T18;j|rbyX>UN$%**3tnrfVop_!MVJf9gr zt$|U?+L?%b?@U4Kr1E!I7@4u_bBX1XhlkwPZDFA)Mr;41LfOWpGW}`1$WlK*seVo0 zlJrg|#KFOo;tN<`nvUU-t4c>FeNus4q5T@ULJN5jvf^s~hK)`A;W&GrhsbZ5g({oH zZtfS>=+|;&;{qLxQF8a5_WA3}bRnjR+^TwfxU2~d|HzBw$a4_fwM07^mU0bV{s4X9 zWT;bzWec^l=QYNSj;&i(_0gB#{a?B3Y%jSpZud1_t{0pj_oYE1(Sds`-pA56WuIAv zXZ({w)>zoM1%=@qZf>PQZ}{81fNkU%*%!TvUkv%rY^jqQHq{8OW=XH^)ia)N<2Btu z*iAjLpacHyImW)knKfNv==_^Wr3wFr(sQRf`0H!T5)&yr#52~hu&<=+OiKrMH)Pgh zF1~cWZ^xZ0-8oU#*mNJVs%!! zY||BFGL~Jm>U}EJv4V>5c>$Sn&DM(xQ`yd4`##R4Fs>)tuXBU0GPqpaN^aws_Q{gS zF5P`)dS@arB%FkD-+a@_aWTU}9S52^M0xFFtvBlWogWXlwUYL91_7C|bH(j)y(K_& z>@bC7mh-(C90I3C34gk)w_KgFZTdGxd`B|`%F3vO%S~k|!?xcHr!iUb0 z+_L=ew8|?io@Lb*Ds^F)*!-S?Pad9Ufjl_b@Me?ZPpIBK&v?|yl>+&te8{Yc)b-Z- zP{d~Vl80t;LM7{IDllijv+x$ZlKOV+`?!~oi|LdB9p1G4bVaxk6yRGZ?Dtx$QHadu`6pg;dRMV#()@u6yjDO`grS(lPn|J?}&wFAx-y;9`a) zyYVy0@ZOcinv4;peW2y)+oVJ|TKC+BcywjwH{)x{LU9L&@_C{Q_Zo;Vs!&V*?r^PN zjm{E~?n~^AefUWz!ofk5&*%Nsj`lGZ+rg!VI`uEo3|-ncgJny4(mc&ra`C){>CJ94 z-NKYCmwpD#8(cSzk@Qwgmho|-Sli_bpJ~s9YH|<<>!Tf|vG_upd$O&2cXO?q!Y=#Ah1W9&^*Xm?TQ@$(ntsopE%n*tZ`n0IA9f0qz-lGKxHVFobdBeT^ox^i9OgR1=OE#EbvGLa} z4*00RYJ| zAY{9+G*My?pCdk_MSwt(#C^G|+% z_zL*-(_C`a>+ythBf{MW4LB8@b=)gW0I$5E;BeDBA1}QBxTU2xjI(@qlEclSXy*;9q)k{NzrVx^n?Sy+=oPcm*bR z_#Tc%Hb!{t#=%UT6pDIcF-dJmA($7wrgAl5cvI!I))8c;F>b*x;zJiECG9x=w$zQl z@Zt`p)A|UO^ubG&E!yOZC&={4jcgiRlyG0D{Pxiq>}|7l@8tO9v6~s?#7L;b8%?$`Fr~mpS$qNH zBAyDPa49tx@1k&xcRF22_?sF2|f>f+3(z2g^ti4;vUR;S&oN3MV z$s{8^HkUYD4OJXopqT>x?)0X&2QGni##Prw{zb_nK+r4Z8O7*f+lB@F1ZwxW5#2Bl za(G5NWY%MgS;UxF9(C~~17Td@=;V{S_xO5s7a|Tg(d$pcrqZPyLN0K^J>Mgd%*L@0 zKp|i{;rYGpDGl;p>sjLEU@c@)ktwqE;3pSfb~uK;aSwQJZk_$$=Y?i5n7^nDo0QoKjIQ<7Gy`hG|Re3p< zS?&}o1l}~VH%#pt#z#v_jtZTRZ1ejH$s$Dp2te(!qsdEuD81p{7yat;c&5D@g|`A5 z&71a@t3=Gy%03i#G|zB*NW&bFrdJ!9MzVN%oO80HRq~-faogG(oj&law2^Hj=>sGm zDIA>LTiTT}HWdR|Yej|BK3VP)kX=G>o9~T&z zOsBGf8_9hqRSE%_57$iLQE{d!S`Q|_hOW-6X?pwCdJI#Rd+bX#S{8_?zlrdq(05n< zP;5p3%?b?k`V;mYQNKvM2{+!Fo$-*>ttcVMfHr#U1|8|Yd8xdLr^m=2a#PjsJ5dKt zJ(sZ5%CI#OTid2ID+Zo-$GXyvHuu7hHBD77*EaiUqcLg3A@V+Da6y-f_x6wEGxu+N zsjT0_=LE&_!Qa&xh*RIZPj`|0K=^fNW28uvCXD!e-Y0DK}8} z=2ZFkSiSFku;E$t;I`@fh`UTKk8!~IT~d1Ks=2AF_!dv?+($oS!wyuHbJcyKp6-Dk$dSsZsIBqYu9 zr#WMFV<)l?GGCR1@faX!kDhGjEMgvy4;`Ew15;)swaXc)l=4H`!S_N>u)HA8Ygm#u z@$meinc{Tz8JD7>lA~7p#8k`Tb{GLm;cYkmQ#=CC#O8i!EygS59KRFP; zJkvju&BQ>-U@yUUI3JlctSB{Hv-Z~N9RG|uyyHGX zJSG_sCg1aZ%TL{BAi{9Hs61+E@0}E*75VOsa zymJh?pdu-K6MmXuYN*7K@pruZrq zfDiJ8XNjlwDaKNZ8g8lggy`pmpP=PN)tc-RP&^e(Yt5FpOBQV(`XKI_-r^2=nr-p*Re#o8&4V`7OjTD-uqow0-DX6ho@u)3bV0 z-dDC&`RfK(U{eqA92eUdgZH{^`Fojhb>fd|+`lASSK7@#Di!wE-A>LFy7T!}9p}Fv z+;v!Tlx!GBxMx!ixszX)hx-@*&9dJrd=sKX!cMlJlLW^GIV*3J7WIY zm{fb2&zdh|EcKo@w*vP{6hQe@1pQh~@{TT+vy=TwS0DrzQ9eJga@qcm)n>}kYhWzF z!ZM|^J}E2u)o5;QGX)FxG|jy?`FjC2r5#EBo0dr;C8wuE1`yqk}zYdU{&3 z-H9@ekayrhUa{jSEuv=Rou#M#ft>YMZT|ZSgs}+gWH0ptH;;5GjrtM^BcJ;qJ>X)S zAoGBXHgpXcLRq%oKVh*l?$?Vb&Ca;G#I<+W@fFi#9+*-H{a2|z`AyWClTgsch3h(1 z5mM37bj0Xm?>HeD>$Ewa{Sr?h16ms>MpTsxb?W8&_HPxUDXWfa?_-RR{7yv9jajE{ z37;!}jM>&O5UpKOy0j;oz5ejxS2Ccs#qlB1$S+X~-7o$^G~TbfV@A0d6qfB3Wi>tl zm8}oGsj+*pPQ5c$!t|!t6XLi&cJF6VLtB2WCw2;ibloC7Q0?S$`Zv_9gED4AqC9ODs z$)I(uYG|+4N(fk6f$5h=6g$(kU!SxEVtc|Rc79nLscsW*j&!GJZul02hL`deNlV@2 zYFgy!nAhBEJ%=3$a8&_i+ilDF%k7=JHfyNH$5c@(ikDP@K4Md2|U zLS@izOha+W>y@XE!6<>hhBIH0FTDgeX4s!o{BE>ZwffH1N<2RVo-yhfuz&rc+m&OS z(~jwQ6lJG3@Av|CqS$#8RvTbD=)pC@M?&bOw2(~?&+Jl2KH@U5m18;p?3=w;vrX)Z zc>(YjU(kh?|PKcAH+ zGj5n*+$$i{pGz;9!DObqD4&XtT}M(-wg&lKu_C&C;Icmfzl4nm93&+wTxikNS$#9A$D?K0D#<_aHpJv^HOdh_Q#xrTW^SWh{Co888f2~ zdcxCAo=uj^_0Q?Oj<@CPLC-zmC_rzlX5EJMAr6w~WT^d$$Nv2tMqRn-)jY|At#utU z@_EBRkY1Nk-;6dD5fbsbP8t$DJ zr}R(oF!Kqw;bAi-91gjSC9Lbl_YIll!we5F840Et>C>C>=9N4_v<^zcx?HcKpxlMR zNMx-Ml?EPt1D9!wP8Lcl{j2=sUXRXY|}sL4>D2>x zJ2vTK9`h9PI+HWxF9l6U9&cdmYtHl#pP?n=_uc9`rM5Z}>>uZHd8ICqm4k)Z^T6u) zg4?K%ga%OX^k*Q%1XMykkrZIR?{^o@GMcSq@bW-{k=5Py{CKn)UV>x*2pZW~mB8<_ zqz5Nes%)_wV8>HG>shuPUT9R!LEGng5kfvs0Ph`5v&#pZ|EhD4oLyYRl1pO{RaQOU&zhthnRG4Wf#V+^+t~bA)D?j^4Q3?`-=fGVt`E3PcZex?{)VFC)i+s$Sm#y zUa;_dz^pbYO%=!4su~i}g8uzmEcaGGXJ@C~3U-HxawS-yJUvLb?>_UFxO)Jw+X+Ka zz*pvkk!HABAOsVpNgwUUvyVU8-kuHBbwn)sS6Tvk6vY1tQDFfUbjsR-WF4>t+zJD1JP(MuqBpKL^~D%h z40OgaPejx7TKZyZd?}oglhygHE(4T$@6~;ihUowL!qviLwNREwzGx*#K<%2(FZvvKssFuMO|HZJxNA+3LrQNsq zivqjOM;_aTu?n?okSr;X`P(K3tufo3qD>4{GFU>k&>|W~#$wsa;>lks!4mgpDWKf5 zwqR>pA!17Zkm@~JKT&hhesBMJBez*^$KXe{99dH-qsO3XfA1o;nMxx&Ykngw{_v?QNfa$Div3 z$7NF`8mx`!JBpkjU*O>3VR>Xyf-F~1vGQ_;Gx-4n7O1X#gmksP+T5uK;Q_)hU(+uy zJh33M7s8DTEfL>WGgP7QNjJgkt5~ddv+_iO70g4Q%tJxTK6>1-&?iQ`@H|`mABwpE zkK%h+P45F*8(tYIs(Y@*3Uv&>Vyq6!Q!O69j0Y<1rP^o!5v~0vkmZBO()T-y}-cB-)R=UYq7yrNWNf@hdzg0AFMz0EH=YFg5R45 zsh+Jij_Yyj0D*DZb}j6aYUz1?(DpJm=|;k8BM?w1T5a~wOCAiR^vaKymmtlqkXg_NNgk@YlZCVtz*l zu!hf*7lI!lHzdCi!XJDz@J`3!o}(u5CT64GR=ltVa^T>S=}NMzEFcBq4Cf^bPl0gG zV9ifAGG-{%xN(lb9o2{%I^`1~hm|$SH|TDnr7{P*2_^^eo{^qC>N;zyFE5Q1?<&A;MLR{%&F#JR$nQL}=umm?@@ zs4lN^@-I*NxMDxL)E2(Xdl53_#fgN0gajc+^^A zU^0c$pqhBJ7$Y6S!hBXvKQ1_QdW8+=JU#NOS}z|8Xa|emd!_E2sX;S_`9-+DD(xfJ^tZ%`lD)UB7OYA-4f6!~0&JyH{&2oRc4<^IbV05e@80Oq)Ovmll+&}w z+j+7F8ZIMCE!b*qK2e_F(AC;fiLTlivsQ`H`tk46fUV%x_;N>jU&3tym#9lcg3oKk zTfp2oip#rWfk2S`?fD;FR`dJTrT8Y#ElJuSuNa9LY*7&XVQf@0zw!9Pa>Cs*nQlFI z&9?4bfr@KU-YbsSWGVJEL|R2W3|8e&!(57xeBTd@BxaH?-e|v`V$q6(J#E8YZTpGO z#Q%Jx_446?v|lQRBLQRMa)n>OwzljZveQYA!>yC&G|R)xZvc+275_Xb>J)|M4~ti0 z$4}=DzXnK_UHq7sRy4bt!WYGTm>;ZqGY2{bikE+rGSc+r?g=ZR+4NxuvS_rXL=2)eSTWST(Pjz?{7|#X7H~RI$kLMsdUS?H*swx;5+0W zKyWa@&wdYgz7lYWY&t6e9I{=I*d&D=>KLm2^IJMn-$cw=A-_*uF3*%~y~T)6aF!HrCCF~&!~T`)4XZ!+ocep?MR3za8|jz*WA#LJr)fNO zNFUJ6(%I=VGdx)lF0Di$X)o*fKALhheg$4q?T(&6Ws^3`7r9A6>_9{uCX?dmbS8u4 zhpf+mk*+hFCMr4+0jXOH|0=Gh5u$cmloOGLSw77}?lqFJ!|nvSB&_`Y07ojj7p}oZaN4 z{vh|mLGWZf`{i(Y@T4u%#1fGr;i|bBO(+M+_-YV00Qzfr#ILxLsXs{H%t?7^DXj$= zc8G~72!P!yXC5k7dikD|q5A1|WloO_yV`EzI`N0Wq}H!Awd-Y(Jt6e8$aCHn)?Y7O zLQ;$)dOg`m%ps9eZfA>Hun!e&0Fe_|b7ei9Ob>}qoD$z1^Pe(7JfU>_3jYzVhW5ZDllUy#xSfxq-^`*hlt z=amCB_Sh_6fq~|Z2#2GM$nm3=LWOS#A{vTvMU?QQ3*P%&&{fnI($UoO5JR$Jhu`y& zngjlz4NnK0<(b#e>gWT*`Tdty&RUta=u!G_4wUrYhi@~!_MNET*b&5^(Yx)&IV}4f z2)@+2U@&QG=ME7GnG!i%oXTu?-C)Ac{6aX$Bj15+O~he3-HNm>M`B>a_wLyWXauBo zSDlTLGu7T&!paQ0gU*0p1Mo|n17{4oX*J2dD*>fYPZ>r0(B)oz$Me#!i&FrOaLzQC zTbUPy!$K7c-rufY)Y6v�lkdCBjkTOTyn0CaTlQdTge@I)!1q|9iYEN{DE2q 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%0Drn|QGul~Zv-XMG`g9Brv?&bt)WtLMk~lNjlG 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 H*7f^eqe<$Y diff --git a/doc/1.manual/fig4.5.png b/doc/1.manual/fig4.5.png deleted file mode 100644 index 96b65a35397d635020b6bc538ac252d60f090598..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19454 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 diff --git a/doc/1.manual/fig4.6.png b/doc/1.manual/fig4.6.png deleted file mode 100644 index c0666e96f32d908be041c84ca897f10b27fd1815..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45050 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 diff --git a/doc/1.manual/fig7.1.jpg b/doc/1.manual/fig7.1.jpg deleted file mode 100644 index 013c3304f7c44f4cb34785e568a96ca86ef4799a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4225 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 diff --git a/doc/1.manual/fig7.2.jpg b/doc/1.manual/fig7.2.jpg deleted file mode 100644 index 8297d4f8135c952a93d026ce57fd48949534b0c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17523 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 diff --git a/doc/1.manual/fig7.6.jpg b/doc/1.manual/fig7.6.jpg deleted file mode 100644 index f9c038efefbbe0ad919b3981fd7a1c3aad048bbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20680 zcmdVC1$11yvMAVQW@cu_n3bN9X$v=0Py?-KofN`GjcIAC3d%Tu^^U| zmREXS1&9K`KtW$T(18Oz1T+K$I5-3>6ci*hJS;ps94s6h0wO9h0wM|`92_zxG71_x z1_lN^5*9WlIyNdg2Kq}TAYi~W;1Dnn5HRQna0uxCY4_X%K!FDGY61p=0sut;0Yd?K z?gQWhKmcF>Fc1*HF9!|*2?_=U0u7ACc@Ylie#HR*AfP}Ao>u_yU?2ccWH4kP=26Lk zX9BA0HzELln;^_+=!672#++v1ZxI4H1F?GO_0R(nlcS%SeZM~gcn_!UiGQcjCQOR? z{^7EA;29w7d}=Jlg8A0;tk>Y`fiqX~*zn$IMfN()t|Pm}`53I0QTN{QI4f2|Af7cB%)#pB{ zBL!dEp%TQ&u}>af9B0Km6%{m=7q!2xeUo=w(E7wd!n1$YP-C@BYlSac8=M|fPK8^v zV1`PUYL6S8Ej;B5)rDZw(VcVmRAcVHb_mwx!kUf0^WmU^P~x@J={Yu0f_ z!9G)rp^2t84g9rG!-BiBzIT>72b#xOe@gqAw^PUN>cC|i;uJf-sblo>zb*bW8cUokCxQ~@)#$&T$4lY0LbC}by9HeK^ESOk`4ht zvKS{k+gptpU0scJ>bY~+VNitrCc103jjWp_TS*-S_22Ly>2(at_!F6Z$$0<(7_B&$ z>}J)iEb@x~pHz^>eIJ49vPM+_V&IEBCkfZ}xNq*c)SNeKG&Xtuqyn&EzNleVGcg&6 z@f`Eq_lgur`_Q3v#0pII)8Ry+t|yEgS4qnNKOxl`cW-#V_5nde2F;sG{}+<6pJK`z z%P0XqSc^9W)t=tHfW*#U6_58{DE`JQz)ZH|ZH2-+?ZhR5l4Jk~SZ;-%;!ok=`y=dz z4qO(OYp_P%M z)z6rh;BWdfj_uX-oIVE9{o(#rG<>WL!mc+*3dg^Q_B<#pBcSa1BPB5Woh6VE7RdsC zkcz(|&FOz@6GP6M*(aID1g;SX9jWkz+_|D^jn>$Gf6-%k08V@yLnv}}z3mDNiz zM{Ebh|F(H$Hhlg_r6s4YwfPt2A8!Z>H(3iGy6|K4)4xUF$L>gTo98M7vP?PrErLj4 zMwt9eAR7@1Z2RK(7_j4^12-Z?pp|4s27rJAAYSY{#GkhE#YlocqM>7=V6dSwvmmnz z5mRtNk&tmHkzxUjC(sT9Kp;R_l*_C#2kNSPO9satu)5>n@ zBL0Ww{iZ>N8g5(1QR`S8-Tz4>^Z0zRYr8djv4JED6V{K{s?PuqvhukTSDqY&Qq_MS zc>TK5n(7&l%Uf!q|EQK7Ta!9Ycl3?oq|@d^W17}lac`KvICkl~(BPOOfmR+2D3qvba2EqRX24Tcb{e8vVK&);Qtj@P3{ZuJURXDWRE_ zp<_7l#vdsn-I?XHshO4-@qI0u3pk?LHCSf}64`wi3hEF}=7-m0P=9|TWF3x zz(!6wClt-E4Jbv?Fce3*YkHRx$`l$$(I9NiSEVW(Qq4S+QZS(6Tfz@H@!Y4=m2g$o z@B=l=cmSaywLj;L-=B`*PDZi&qsjy+EW(CT18!(uzA$tyo3m)Ui3*{d%T~JAN&!#B zVI}E*7Abj^B1_MfYNX1@64u+(e&xfNYFTN9X~)p~p}Kv}lYZ3V?X7}q$e7pB3>zGC zp=9FR2dRww44DBJAKdcR2zPw1+i6~yW7(=D@%S~_)HjMmt;QVfvL%$ugYTml6b>+7 z!8Jt@)LGq>;tyj%V%SBS-Ew(-b5A&(jlNrw*%-ugMKa{Dm>t`8M1%HN&gVoq>`!fZ z2ABx;WA|=v>w5~|k0PjQVl9$WY$(Ic;!YNPQ zMr02&Y|%f!P$eyA#*h3GJ#uWBo3>lSArwi_%O&!bXCBI;|FxD1)noKC03BE}A)b48 z=C7N$!u02eruOmOb#2>m?T>ancvf8;SDbG~LnEsDD$UV?Bi$(Y33I}0--h9JFWfyC z6L>5684yKF#->-bkC3yjTAKYPqwB!>tL2FaH|K_&?9Yd9c)9$_jMjhWK8omi<4NvUS>L|Y=It-FNb=6M$b7N(?^W0O z7HMblknyWB4!El1lN9=SRo5+%n%vVWw)%gI+{kAfFB?voTQD~RviP0tFEy=>&_!)rvk7|xpMK0>^r4(^$8p~Ib@TL)~(ROl9 zAa6@H>n+VeeQW$zzP%5hp8-QTkE?M3VZF_;ir=+0U^q~%$mgWXl9VY60{_CHK z4kw{1hD;z9PbaP(*uyUC?RFcl?D0OvtPY&*x?Q$;{5KHM6z!Cv>ACj~wt{jF=s}p# znw$q~t69!=w&N`y|AU}VcLGB?)sr7^Kp=twoF;*SL&JlEL4*AqGXUpGD5zj)B-7xe zEW*kvss+eOMvegqiTQQiGZ)OP?8d}o^$={Lh9(X@J5Jk|KZgjwNtqzX&iBA{n*XY& z9=yQMMmK0=_OdbwdcOB#NmR}u6y797CeqnaZz$I~d=mUTK0bR| z6X%?CMkEztEnMU^p&EFXGcjctbtH32%}lsI%1GFVu1o0$kbBVL@2%|^M3Ymh;N3-s zY9_cbgFHkuhf1kAd6rsR*+`=~Vt^ylNQYGCifoFkcq-#ogTM_a%KZnZKr_~0WtQ-n z0+}(9h;SY*G8;9gt7=%zev3V27AO&0|5)|xWI3mNqex6sdDcCxyb?Aji!Ds-sww3N zDjCiJ?&-$92NdIQiMh=#F)<9$4`FWmN@w}&Eo!_L?sn>kD+H@4|5qakaEu~6`SnFF z&8fsMv?6X(M6nyqn~6BEFYrjtH^jPGQ0i$y-NwHS4sP;CvTV80d&2W>@8lEt64G)e zblF_q&eg=ljPkWiGl$W8=lg-x3AyFIwOpz}xXt_;Kbj*l#ci}^C(mN&xdloI%N24D z&;OOm_?EB%+-4+}PMQbiL}ILLImO9=qd`Ueu%R97Ak*AtmvlbV<5uJ=k-y@8Tj5u5 z$(N9WXQhj6bPbQlCyK7H>!JGK+NqGVu4Wv-=cA4%7tlEyroajnur%>DBJL#av2=+B zGR<8P-Nw6R_Br zX~o7FU}yFKmFrdf^lFX%WO%CFFX|SKr|N`e$6dOLYz7?4w+yG?kv!KIAAzNZVK{0F z17Dngh+G}%+#vG!l|3`_r9VlgejazW!|DQCEZ_<`16ld4e!Gm z|5=jcgK3`dPyXR3@3>8d*c}nEzM^Lz4(_}<-kjKk`sbhhEDg;Z@)lEKl0EjbojDzd zJNQf|G~APsg)Xs(D%$G^$j^Yy;LTD$ULS%!_T)zNI3{||$IX+dG7=L-gZuw7tA9$D zBQ2?+Igo(LHc0LXnR{4hQoI+}Q9}>j*hd98l-%(4dp~CL1z{!w>eKu0vQeHkF{4my zJVECu$I(2gu(FxknTV%o-mt+S!VQ-=dSjc@$7OO6S1g6S4-cNy^Q! zh=F2q>JGt(LEWAMO|jrlQw#+L0|f#F@w+J|RaVKLCSef}cFY4Ju zRSg{qdQ6-G6aTQopf7g#2?HWrcW`i5Xin_`xG!PIdnvA8N&-v zP$Ft&U5&U@!5?GW*Zry(H0aZ^*SV_Lt0vnj3utVQWVtr30cf$7@#Z{ZX}pBv5k_Er z$&$36sp%03s!LDXdwC`|Bf_Q?%1n0?<_1z)L7_Qqqc0-nBAh@Pa*bq~#~aJD$uLFQ zmW*HMjm@1KI?EIbb%Q|T#RC|L%f(2>L7?f{(9yw(YtNLH#E%zp2>Tsc0FYfd7QzH= zv%%AG7z4D*G-eNj7J<7M&;UkJQ<83kK(MX&JSCWoE@l?>@h-Oc*YIHc>JILZxfVOATE_rISylse3PL!$2j}$ysX}tMRRs@LAEMZ7)*ZZMwWOoUkS5_ z3nn{?2z~kr2JpMuA!NRJ2wbDw@(*`x#kuBOcECroW$p|;pQPxqgXP7yLz#f- zL88Z>aH(cg`7zQlRI(CqKJ?Z+qb;A`&HBL(YF0p+3jF4Dw&i@*Cdo1x&B9~^u*%r$OF1^h_{;(~2Hth?`5zS4&%7->nwPwiyvxv%V|H|| zW8ZVT!}g@KvEJ>AQ!wwt;<9geGTc-3ukgleWw-?RKB`lcXLAk^k`jMWn|AfYmwY!r zQr((~^;xYCR}y7x5mOmffz;qL)toR0+0m+ldj_IF32dC1q|qvHn)Yp2={)b={qf

j`n^Os|j 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 H&&&T0E$vL2 diff --git a/doc/1.manual/fig8.1.jpg b/doc/1.manual/fig8.1.jpg deleted file mode 100644 index 084a43c2ca11366a9f40f5f0e72b47c7c9355a97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4919 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 WW6FMiI_&g}azQg4z8v&rqyGgmq$M^0 diff --git a/doc/1.manual/fig8.2.jpg b/doc/1.manual/fig8.2.jpg deleted file mode 100644 index 9d6f904fa5d649976522a11481ab1bfb9343e685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4950 zcmbtXcT`i$w>}98H9$g1K#C!Bf^?Kls7eori1erskRnw;0YS>83jvfOy$C41UJ+>l z0l9Q(0wNJX1qGz3ATN0Dy6?B%TJMjy-d?lzoO5Q*%$mKw+56kaGsjB++)&>@9{^EB z5+n%#$G-q}9badHzw>o;pqsxd`n-V&{`d``1JHoMCygo)YJ<{4p%4g^k&cd*9>xfR zF)=bRF|)A2nOP7lOiXYj9Kp`P$;k<0MR6fHxY#&2IZhS<(NO<^KpCJ=1`cK>W{&@} z9Crflh;2eV&7TxJ^{ii-D`o=VkR3~+ubHSlG*J{t|}a&OY|G&ZU$pL67%WOL=QmsGHFG z#MCZ!DD0ggwh0jmE$v)7sUJuBi>6NIQy>49yVOGp!2vKB1OY++Jtzc9LkobwoJcx2 zJBN%S0!KYCJ#`cW1;27GsoW{AVp$~i2j&YbhI~l5Zn2&xUG-or?3veIjC+1D&>#*RXGPg;r~TR5(nHq4SJrhojyZW zG@jb1`DWW`1Gb;R*S>P<9JGJ6qMGgK!q+0;A8(YoDM5PmRC_;Tap*ql>@|}g8daH$ z&Hc=`Y2&VL4Zqt#W^GYw$0$Lg#{iF~Ou4umOILwf_UNHsK}wU>Kxu>JPF;%U`JeJP z-q5nLhuyD9?J~B&<4Un3x9jqDuR)Vv_#e3%f7T}2u&az_O+^hiiUbtOS1}|^;cAFg zO%{Ds<;Pzk6FE72dv0M!*|smKI@!L+n=4F5O?1V#XCGy)h| zb3$q%J5EcxYYZ)jzv>gQB_k)VV^LK1Zu7Tus0h{sebNREXJ2MpnEj%v6aaOH#WT^K zuf=5_PMf5?^7`SC5mR(#$>avi)GCvL_njk3N871rq`P3kE+u^$O&+!MnG$1=HI(ws z(NYsP8MM0rcGH`yP}q2@*)}YAltZJG7 zm4!cuZ8!I@s44rea5J)nVv<5OOI0nRFT=A_N!3bXJ$#1v*|>ShKeS{st1Ux=WFz-& zWaNp&!?W?N7kK=5K3Y*Ysufu6Mu92RW+M^UTbez#%#nqVXn)%MWwz&QH|hRCRtc=^mIik zoxdVc^}Vt4cwgg}G3(4m_mpW?HjN_ghI(t(Hn){0KcbN)FqS68Su>SWTQP+~_hWv; zQ1RaH^aEF)Y<3BHnT#-pMe3qcW=vP{E`3&9Rjj?#&B%IEL zi<&`C^d_u78S^|PX=g$K&$8g7rRa7(Y^G9I=@EmQ&4f*E4-X^Z#oL7ck7faEpT5@R z=vHyJwVAsZnhKwE+T|{1;3HsBIx+c5^Noty$@4~b5&eRrWgHhX3{e?1&D>d)UU+54 zjJ5|aFF>_GVo55yE0sLTv|om?)n_8WWn9sCl_)I0*l?Q>95h(Q0Azu!GBoafw>I4y zj;Fz4*H8^sDf z!|`N5DXmdHa)|TlcjS^#^Ul4;ZTN625Fvf20RdCP%maKOYvzugF;>~G%!RLn-EbrJ zSFL6&aEYfyt^r(hTt(38;E8I{jzsB?W4pqYs=f)9y~U)6DJ3}eHaC&A)MIr`)h#X- zj{~|hOhpRUJUYYhn5fRAkyi}(u7`<(_qMlr@~qncaE^;sNV{j}K?%&#TM{`y~rH_mq7zw!kCtbKE( zOgyCzod(Z-#SW%vOrSzIG{GIv*jJT}ay~c+x|*_l#bySr@??Se66YXZ7sh2I9IsVl zFTwqCbG@Y0-ibKztedUm`jdbnO*pKuv5UKohqK9>glriv)FJwt-Q{weDE=f-(%&E1 znDf*nD8U+Y=k~qlPd6gh{6sdSSDj3fjb12NoZVl&u_bsj>{bmMV}e_EGV+|F!efcd zo^5jS1H!VD+Sd4xn%>Jil`DV5wtjnQB(sI$5BliBkD-k4N%oNKf+?k$K?(QO{2N#i zKC97&;o=)+v3?R2>9R55r-m>p;p+MVXN@?EVDr^##mICy<&}9smI1M=&)ao4{xCm> zvRoPNf$I7W5iVo1CrM}exZD-T`1vX+dlwngRD2r>h@g+)T+1mLj*8Ne8dn#NvS+(` zuTFhSbxwVe&Td^83syhO57Kw$F@D}O3!HB>j#9q8k{9pE6^q~vF(OM~ZtOw{vE{yl z_9A6+v2j|ylZv#p2i_uGz57(|BLa2(BUtWtcuDBI$~lXPJI z9~w{3c?r3at7UFuN05!`DF+nq@8?tVhbWxN=}xE+@K1CDKnMZgBz2&v(F~5G#;~!i zztb(13uy{;4;>6K8VD_feLn^`yojaKRySBR0s)qo3ig<(63b zKMUPS+>+6SqTarjJo5&5zRT%iN1||12P^FMk$pRTD&{m<{5sgfG?YAlVT_b{FThOs z7ww(&1C{+#3a(?t`bpF-&}flx#d_m5XfKr?e8FsxAjQi~BOna7VcyE{I|jt$&TGHe z{;t!TR_z`=o2GhYiC4^GR_|So4XDQ3qBnhMHEJQ3rslaw_>U-K7P~q9g$EB*jEq5j z1vyFSZJ8n07O-65!~*%t3R7+cSOyJfk*r%V9oQ#F(Th{%ZAtgOw~Jn?w;}~0jeL=l zhZq~I4XBB!a6bAffks3E924yXveu9U;NkU4CM=Ku!zRn_^~#~yU`Y=RzXtDv_b|o@ z$G{UaUthnw!AGHMpbm*gu8wPePIHz0lB3jPpQez$=532Zk!&RK%unqiAdBKYJ_GHP ztwo>AE!|#*xVx9PnrCTqA*9Y6?V~&Dw|75J*EqCqhWptQZr;Zgq^GIIsKeUL>WgN) z=)aLdMu4S_tu%9V?yF-!sn0LjQ{YrjtT`^R&v8`@cyAeA3wa81co#W!06aRaKPo!Q z&B^Oe@Lb8gs3p_)1}4@LrG2liqOM{q%J)IND~5n>&D3?$TaYF1ehDcG_B@dOn!iT; z^L%87j((EzAjWKwFdF7Z&2hgg18PkH0B{ljAsGmz%%Z89Bng~ot&_9~HozN#2XO}M zF72bw;(2sECG z%uSiDv45E${D&yoU<&@=>V3oSXZ0=qSmQMuSwGBC?}8*v!y2St{P?9Kht%x&dcO5Q zuLa=R$&TP{@D!dF%u2Zsm&?wzgMZwvap758xJ?&5FN;CF51)P0^HAU=U;c-4yw0|_ zOxPM`Of`7p)6H)GTwa5t3|czMo%XesMKE_nmnAPE9(${k+=sbieLF9!_7v_&l^L`9 zcje9$sqt*o^a{K5&vZ{C5b*x50@|^aaixDX4CmC>7R+~C3fBO#j)5#tpv)&ELCuAm z$C&g*4X(?{G!lqN?`yl2>n~fa-rqlb4ESP8W;R!SzLz~{&qsZ5^lSKG7uuv5B6xa_ zS(nAsNFZ<9zrHaU7IKFFwFA7VIuHl*KNTv=SLMvEZ3=Yfvk2*{`$L~B*?xcs)~>qg z6xk-rK6cHwu~v@=gHmV>jscO{okJnbVU8$+z4Y2;@CE5+JL`J;P2&(PQOk`%{!Z*Y zjRCj%Yl%x_b9rPCrS~=t>koNexbhvJY~O!TYRPdt+~#U{oN8S}eCR-F*46zpGmTY^O8y0nRT z*F_Gh9iDyd>d3r{ALDK%Ki8j^qO;xb^+o@=mGa>oGnW*m2HyX3SW3R=Jr=zXKXUoj zxg?qLT9J{4&_x!_(&6GWPGx|>K{S8x6QsH(`h33BdCUclAAMDN zV`6(aRAr~8G%!^UhTRm@X?^`!*yWiWe>qra-L47Um7aWj6$uT&%{{aQ{MW1kcJVxr`Ee;jR>VYlhp18g+|y|ZE( z6G<$cbsOyKY|YLe+@-+%Gb;0#sK;I74EJgmPivO_cAgOYq~fQ#4ni&Qf6L!j4J|`} zoBO2V3OE10XD2BDzWl<Ak=BTOv#@}8wqM2&^lE?UV0aaj4cfzglInM#6%>{NO4RJhklz6GphdcV{A{Fl#l9Igm+ zCp^>8<@FAS(lyW_(s7;t=fIrBPp7U(S{RoMwF3zTa6u#8ZpE7E3zP%Ik;H`HT#uaZTDO!JiGh2cJ9O7OLt5}2 zWCx7fM+vRT6t!~i`yi`rPUCo9ohX|ltiq_ajF9C@#KQTo!Crx zv%A0eE8Ol3UYkp_cvjN7?rLuWauX+(;HxtPidYlvTSjjdNw|3_`@(qq14=dV zCbD*ITZXohE(Ap}+_r$?JiU;QO6OWFw%N2e`PsD#n6*#yeURCk%nh24-Lg3J6-({b zMOeHS2bAgzl#`s^HTsJWwyav4&Y6-#({pZd%(KtaKknl9lj+~cu$LSBnZI|#%YrBx g;2UNny~7$>x$m>4Avcl|P>SFCC~|2mk;8 diff --git a/doc/1.manual/fig8.3.jpg b/doc/1.manual/fig8.3.jpg deleted file mode 100644 index cbbdd5554e8b0db8cd6659c769d2efbd07f55ed6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3745 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 AW&i*H diff --git a/doc/1.manual/fig8.5.jpg b/doc/1.manual/fig8.5.jpg deleted file mode 100644 index 8147a2c94c041798e3407968e8695bc72ad58123..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38855 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 V1;Xge!z3!km_(`E0ol9eeN*QVV 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 diff --git a/doc/1.manual/img/fig-ch2-autopatching-objects.png b/doc/1.manual/img/fig-ch2-autopatching-objects.png new file mode 100644 index 0000000000000000000000000000000000000000..add42bfe63f9dcb9c91953f3f0fb9890f4df1d17 GIT binary patch literal 12094 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-autopatching-subpatches.png b/doc/1.manual/img/fig-ch2-autopatching-subpatches.png new file mode 100644 index 0000000000000000000000000000000000000000..b08d472383b0ea88580dc314da1e66382564deb1 GIT binary patch literal 42563 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-changing-text.png b/doc/1.manual/img/fig-ch2-changing-text.png new file mode 100644 index 0000000000000000000000000000000000000000..402d13b85392a83a0abc51a9606e6d95aa35ee76 GIT binary patch literal 17473 zcmb@t1yEeyvNwvmYe;Z{I|O%km*DR1?ry=|ArLIMd$8cH!3KBN!G<^apL5T5zgPFw z`|8!3sy(y!>Rv6s)!n;iOSH106e`k3BnSuyR2gY;RR{s2LFj>P; zv!$bq3F$6UO4mjwfhU1E6l2nN5fT;Bz=UU4-i3@}{MhXs*p=mJ5x`U6d+<8N)0^{> z^8_VKRu|r{u7wx$MI?e|aP1p0E|J(UIy8(lG^{WTo}FSxA_3tUx^m9_dsBixMD|Uq zLYYnQ`((ME0WUlR&4+z22VQE_{gfl0Da;r)2w~ZoHbu<{r%b63a=W?>#g^TVd5eZ5p$WlnL| zFdC&r%fa_*#T_A=-*Pq$f1KS>q2^DQ60(cLn<}J@|5})Sf8btBqSdr~k{E7drz8|~z70vTh$_BWIyAGoRSO{4z1*Ax%>3N zd3G^MU-lVv7YE0>JtC?`|4>T;Af%kpHzty;g1+%7up=)n#_>@FnW-X{#ayvcmWbRI zx5w!R=}Qpu8}nJyTW{ZvU*Ktnr-xK$v(CyPei6B{#$!V$9KCdIg!#DPnL?_zsM?T;g9BJ#3_@A2Fy)0Y!XjxfP*sD!kO_>y zG=zOfWZy%45+hUof&)(}3MGwF9l|LZu8gUUq#@iq<2XZmMCe9v5>6}(J%ezE_KZZq zLXaN0XzcF=IT4gqM?wh49E`n<>%^1`?-(w(B@0AYM=1!c?f2Xc0CMohLx>}(h&N%V zg$1`!h)AO(2Sp`vNJFZ|sgt8hf13NYF8Q3KvWE;8S!8_lK`oBrH#~OywvndMl2MD1 zEGtK*g*^TNrv(Ii#8Yso(PABy7CZy;r*MTq3*+1Rp%pqi><6d^CJ%%c%*X-S9TX=I zZW6sOOa!f1t+1`=%Tau>r$eYazpuTzkTzj1!_fO1uL*#DuLiG}e()f?0EG7}Qi++* zT3B5OtT2$q&_$WbQru!~5?(Tyq+?k3QD}ptyrH9b`+bWXqeQ}>dBC!(KwQ_ zRMpgJi65o$r4wW>OG`?cO3zC1WUfn>WYVOGQaV0!klu$gNO4kirkIYJ+-SORJTW{$ zJ_&@2&X%>Qn$QrWR;TKWd5@`$Sz2c|Wqpy$rtjA5knhlbPQUv^P#l+!qGnMcUn5^X zftdA)?R$f`w!gNgcFWnvKWu;08XnDtE5201aztfIZirTYH~4`zzP*39&%fX1;_U*z zKQ)dzhmnmonfJTMzJ#b)zYukFcMo+>`)2ee{6=cucW)SH59cQ?IZgxa7>*+S9X)x> za}2|f`jCChFzyRZFI@#aYnqpAPTI#*2U>sC{Iavk2{k5V2lbw+SB>zRor>h*2C-6! z{b)MLMJ@LvoAi@_MdZrww|j>?Q@a!NnVx=|VjNnNT8!fMrK=*%wl=#bA5S(U`A%J3@(K^HcXdz z3VQUs`SrbyJw3{g{*a%SpZA%EWS3wMY(%wSv~a{bVv5qPGZlFZAvxeYs5pq6AkiMt z2I|<=Sv7iDTHB4*GchkF(*@vD- z<<;ot>bGwQMDSB&)`vTf65C!{^e**mfMP?d#UcirBYO!Ih|~yA2_x}8GVC$(H#yD7 ztVN%zZ!cWRd&awh7TW<54>VUt*QvKCj|}&IC#C0UM;ezL2ll(&b1y&9mxiY;Bc}z@d1D7E&A&aZKGi&& z-%z}SKc_tl+;TnOKefXCg6x6hgC>SQfklGS4H3qmx3Zi`F$&$n?dxUkXGAhkZ#j~P zk{GE>yinFTYMAMmNicRWUh5|g{}d5Bz(-+5ZbD&0At>P^jwkUT#TcbSTtXXSOJhZ0V%Aw$ogvg3>U@v%AE_{zBApz$vG?#WJ1edtQs z*|nFZpZDvB;k?Gk+w9Y^jUl3Kp6eJdX6#(77_12FJS2+$4AMoNUICo^;dPMxI0Sny(kzX_;xcX?aymn$?CJ zb=mD5Ca6tR0SbpYdClIokxSmSRoY5A1r4BQxLZ_-Pl9%F>nrJH`K?TjSJamUC%2`y z5>JnuJPy29><5;hX@Q(-&dZJ0??Jjwr88Z1ZC7h}Q|a`*TCb`%<9kbC)dFjFt>=LF zHKvu#)&X-V1@OE%*?@eI0;kN#)UWK8yABHE(?N+Q9W@HCC zJKC~lg(j}1e=VN+<8s)7+v4it(o)5ueO2V?&^?8eNy0k+iE~qPUsF-BN`3v+2W~3C zhm+Pez;pZy(ItN$_pFoZrI|N&bwwe8&6G8x8XW6wrF)mroF zxFUV-rbmPu)#Zell*2Gkd;8CWg{gcv%fgO_N@8_p0CIfzG^p&Z&Yxi@+q;nM2cNQ}3Up&br45#thv<2jBG`uSoa9 zlZ{`U-TvGDkC#K6r@hnNLa(IveQS|f=+wm3zH$C~SK<#c*J{mWX@MW!W>*~70)2j& zZml-XSSG;ngw__63B7ZsK8D;B14|FaSB=NFA24f^a%%B}VdavV_ z@;P-O(7rRBF+lX4LabcIjA<>XmF1W1SP9Y7k7h4+%|H9;ZU%nraWfkLV~3HUc6ud_U3NJq+a%R4z9dj0_6Y5BS1!Yn(M;CKa9wt^sQx+CBQZ61Q3wDk#<`$-0EDWS&54(p+0)aL$&;PQ(Z!OPm4}CinT3s+ zjg1k^!RYGk;AZT_=-^86UlPR4T}@rAo!qP)9Z3I5G&XT`cM~878~ZOW?4AB2*1`4P zNP#h9_A+*2W@Tde>(xJuW~Tq)b8>gF`$xH%DYLnqxxKlAn=6=?^*_8$R*r6tu2zo! z52F7={@)aU(N$3RkBZdY}0Cv#?1b5}=q7gKWy53rdO z|K*Ljm-YXG^M9NDm+~LGoOs1t%#Gd5#lf2ZIe5LkFtV^Svht|2@bI#-^RjZ&v#|2A zu>6(k#H-+FW^Lj9zq7KjsNHZ$e5aCEUZ2D@r)Z)|DK z?BrlcPWm4JdBq&<99_VQ!Pc?=V}*hOuZ)AMo3Vqbxs12~IoK{HYil!JZVnz6P8KdU zMl&9;17FN|%ow>@xQ!XPSAYreRnsr%nG{X73(5pL#a3YPJ|w3->S zSg@L!m@#s(ec@tcGy7u9$YW-1!N|$QWzKHSW5&Y8^Dj)m)+o7HgOkkI?!Qa@Yn2&T zA{V!Xu{jqT3nPmKy9whLb8{0$o-f=yjK&=7X6zhX?A+{J+~lNxSANyF9LMasTPwX2(> zi}$~iP0if--+Ok}r2hmMud(Uh#1SBOHTEz!BmeiH_5T3y|CuZQ66$GX4i@>}qKTD* zmxY~|o$J3s#Ajuvj7#xCX}mjBrQubQI#U#UgP#=*ovN~2(GYVGhh*=YaEI#VlS z2TOBsHDe}c{{QUG|5?2JPwxB=5&!?EJIsG;*uNHv`TxF#|Iq$hy#ssy&k(qX{@wjg z0S6!a=M-S>07l9MT;OY8lhGg`*zsh{!|^qK#_fROQeayfyE3i z>{1p(*Vqz(ynn}Gz{tjeBH#I50c4<|DR)!8Q-M*hlvXQ|#yF-7&-RhIa5xldboZ!r z${_TYlxOPn?aj$~n)Ea8d4eMkgP{KjQ)473a)J(1D#SWVs!p6(fEAchFy_z2g7VJP zZ)x9u1sywGubq}AEKQ}c9Ne@CP3s~0*$|q}dMI|UOy2XF7N$bz14uupR`DxF9j7r6 zaxiit-GtKVN6It)0WJ>rfoAXAvE~>_M`Y5VMnvH7_RAE~(g8|u91zS_Y9}$kkfx*j z01_s`=5Q3f!A{0lO-eMepSpsMoVKIY9J5m(OADj}nB~QEl-vt;+NeVb zal|`-XI|DR1^2hTC(R=QTemy!kL$qn(g90iAf>BXMQ2kE-R7cY5N92TbahwDdK~F36-2fl@m!XYdwat>bZjwL)3RY$z8zD7-(E zr?I~BArv$t4)k*TV|bjzOy+vM5|WSv#FL1pHfAW;Kz68VrTzgZ@9~3= z!FWF>2?BzyvKWVCN$qGkDxx!nXTGJCeMsC0SLI#^CBn+I`9hMEs4Pe6SeLNiE@S2qEihN{!?L-E|zC<+h z3^2p~^%OC2UTL(a)ESCY7BENmRryV(69Qufz7p&$Hh`L7=&x3SzZSx*{&1PiFE1Gh zso8UW|Mp0bxD8MNnzR4V%3=2_xXwy7p}eXQVs?Nakyc<`oyUYgd2iWynf@nOP=En4 zv`5BO;)Hd!Q(Z3Z++)kfLKTNaZC4QsW$XM-=v#&m7Om$o7=ex>)QlQORKfiuG-&Ch zMHPjqa#_@#BZmBm2BfT`y}#rYy|7f<`xm-DAUFZf=PGQZ?aU0kcDsX^l_fgJ0zZQK z$oAY&Z`^a%HB?l)nb5s>PKWt=3LK18QyE~91o4q$E(!#@0awfr$ja1`_w$Ll!TnN- zaFVjDp=W{)!pqRJiQKf_Z$B2WXaxw6)|Q$_QP+0?b#$J5f}cCZzd-9{qlB>rSS|rJ zsAV#hSMNgHbO?85-{#96KlSh;9`WX7U-9T$dF9bVduRt4a1G=%>~AjRj-xE-!gtAOP|l?|{OL*GIK zC=?Tqc`AQ=#Xe+9$m<}rFs9m7WP>byR_j528dRYqh=YmQE`x~!N}&r|5Gl(9_Ww$QZ_@Lxh!KtPuwDmn0Tp&kx%>zOeCG5C z?PxpGF%+J-wOr7$igM0Iq>GC#V63@Dd%L#h(XNHJYXLX9OU-_vlv-E}%FkM#JKZE4 zVN<6quqjc(_@8KqlV{7M&Ag?NC{U0{eu=UAqKK9bIKC>cM@XdURk)0=!aw5+6!pc0 zKHQGDt)2R{ZaMyGz|G)9tj1pbyl#4~rjSYS+RydOM@djkwr~68K35To_QFzzmwd0G z@Vk4As4RVWkPoQmSFO6X)8*!dgM2BO9`krL1nwtj)y_w=jc;r+dKu~hTcJU_yPK?9 zV&h*O85oPL1*M(-m=g4lu9Ay3kQiRL&Z_snUng#=F&{_VK>i6?p+gODqx44Jv$r7; zO2bF}u{qJB;NGKq)#|X3%*n%uS|X!*LTp2_C)5L=>-vHpYrCsF=}DG};POKR!TR*u z^Mmr}P>oLBSdq3caXc46Z`+8+0dTu2gKd2Wf6cCJsPp0~Ha13)M97VUk3#uAa%+=j z!NZlN6AQy>^q^KS>L{gre|Nf^kamVoa9OoD6&RmZpU&>-E# z@p<{8A(+?$E;=KcA_UXB)o zAmULeiczVddWKG?5wRnX0(;UyNuuBDWBn^O<%^tGG1^B2KjW2odnMvF4@z5$v0nqe zo>z)|*DcNRxv$4?u#dQp|5Pc<42)G@Jey8r`&bJm|qlPl2iLOT*(e?AkAgZj2#6_%w)t!h z4lV`hQ17jVPYW4OaNkg7SwY*-LZ^-l_gy6>BMx4l(HW0S{K-BqL&?bY*GvL(h1~6a z#a2}6N2OBcKx~bpSJH=34z;kp>00CqEf(uP!X-4fr#fE%i@K2lWTNdSf~eW23;eqD zA0tU@U3qrbS^d8L9`CPy(|xKddohMH1aAD}3}y z{V_6!)(oSUjE;%+Bl}hKgez1Mu|iv}`$KK0uec!-$eNjn>{1{ydSQ2aSVw=X&FOW9 zILd2m9KN&;sr)`zBy+|0gJ_q_`BhIfzEVN?`%y|mLZ+D4X0l(%#Yte}+AtvT<40_m zpHrWDM5yPyC1js;4%wPUm+p-QNnh^i=TPGA@c`FCS)nn0MveHg)EKiWrKx3jpSzf z6NpYTOj+mcN9YHBPbOn|l5&Wf3_s&)iMx~BjLp9gHb{3I8$`^ge~j_SM|>?H z;={H{>DfXD)El>7ZGMf6FQCm9EO8nO<^gt&^aXXD3}RQ@?d&DMU{Xcb9`X%+EyoG1 zz;bXt!1>ffm(=+TDEIesd}kJXH(6}0iV))KQae-(BX)RM_6#mX`6IlbouNN0S3nnI zPq4N(9a_>zCC_DMaf7^hUkfq}JQ+O8Ywg#n;g>#voSN$Pf%g=&>m5#Tj@Q-?(sXQI%0dL%row?4E)`z>158L#=5-z)SebuIxaTf)y9J;uL2n%#yRVmxFoc85d-FHx5Plp}x zwSV@#z2{X*Q}J@YgAaE)->&qXF{0-4&U#;*zq#R$nkufm7xjJhE|zszoF!`+-|p6B z&IMK3&#@C)s>2aMwHiCqQT-TW?mau(toCiTS^S+q^7se{%-Fatdv4mlZx?zO*3agN zxOd~nu(6vh-{{tI)ax%-iyw}!g=V)D<0I);cL&a)Sx7*sS2wr9hZYYd7V&_G!ZZ1xr=ZTB zTT>_!vsbYf1WO?!0%F6X{oyZ1oHer-iv^86vADM($awk;Kl_wGw{SkiOpqfA zz8S8mTT+6(fgN<#p@<)JltgM2fGTMh5@_AsWc2M^^gE_IiLfxf|Da)K*gfgpz()hs z;qIO3yn{i;x*gXAs!bK@!KC#i=bg+Spy79zP+ne=_=aJrm6z>w{>tr%KK~L_u38Dl zgkgL0+E40pwRzaBY0Rb%p~rr;n(+qJc>=mTbLiJ!s1GN%uemo`k}hZGw1;gRZwrBv z&7hG$#q|F4kZ{=cVf0HzS~@TC`a>l^z|(S(Kpy<-%i(2@!Ts@F#N_Ih)D+>1sd{fZ z@K(n|n)3t7+A{N}joKlp_ZRFn462lN?=_~jex7BfeS_{Btu>~d&-RFD;Wu~|42dkD zE^B7|gTof9{Aqy#S&;ZpBsH zb2rYo=BvY4HhVmG-6o?Av)s2%gYUx$XKOw7Z*w8*xvTd%cYYpjPSS1MlV-UBn1J%9 zq_?%!THW*l-)fIHsqjwYos22&ThCXDy$jB52O<|woOZcw`uk-X^c$=~nrY6O+=O?V zW!ET^%*~p#iidM-W`njikBtrqWc;ao4$J2|Pb@5~2sEPAPEW_GMV**%TG{aob(mN5 zDm?gyA|Kc~HD-tXjMw1qslN9E&A_2R?u{pLsO`_DCj?^D! zHdT1=;&Y8gx)6GvSG@Po@8-!UEN6JA%b(?b2zGfrh<8U!qF(|!{5Ni1yKLQw?N(i_ zWR{+L%S+u5lP?7Hgn#G#P*OuDZWaa}MP416Y=Ps%Ij+VoSU_s(YuZx3j$y z3=j&b`O9ZJuHVo3K3nK@wRxO(gva7dW%Kwx^UY(gO5fFKRnN3mh}MpZB^Jb@U5K{*PSZz71Q@N8Yz=jKxtaS~F1Vlzu0E>*xCM*q8)#s59m8(1StUgS11^wvVj&p>F zC!%r?#$bpNs|8vrVcw8aJ-T-Fe$f6m(jVMIaI1Bpqx2P^pyAROf=SwX02$z z9S&NF1udop-jEckvFUX}b$|KQe%dr^QX~fdx?56@(~=708D;L;tn?@0kNYH)1Y8Gt zBH!MiU4UfVye9*xOH0bHHqv};g%)sx-rXMicHt<08nC#o0JW(aOD~bJS*Mcx*K*OM zdhs`vmvWD2u=SWM^WW{}qmj}~u1^EMff8n|ekU*#a1mV}O-^(EUW^}BiipV21&uc4 z3H`KMtS>M!x#3T6$2R@W?G%JiNlMeX;}uq8VYz~IQ`WN}z+3a9yTl97;?B2R>*Y8J z**F^F_0!6*33pGyzdq8b72FQq^Kmi+zUM$dS0J#Vh)053rHr=B&2pv_kJ2@Cc@ zPJ5`K_i~;YIUP-!k=~x$NDZ&&*eU|_qhGai=^MQl#C#4v=};@IlERVkEi5eJi1-wD z15yolI~S|I4yRqtcJqNepKeMi<3I7cnUlzQ${u$5XZ3nJ5ZJ^6mjWA?D{WC@ z*h(hF>tkLlGT<^)7PK{VYxPL0R!X-wH~0>L{U;7`v*2K`yT|K$g(5!z24>P$cPpXo z*J37reNJ@IZ_^kl`zMs55!TH2aq-pKA)UUbJ`?qiy-yofztu&SM>bwt4Ng>OTO?&< zuEB`3IBKyz=0Hm}67;^wKEUdVF!jhqsp~a4@=;;+$ZgX5(V$0%| z?9dGO=3;p&&iy1HW>B-6QBdNL$BT3e`4ix1GZXgu#}^?1_aOnWP2G(=iN}3|S{#QZ zxWY=py_Gx`jeo^HRb;4`MHlOrY0Q!-ontf(9XL%X^uczS0?@9=Wc zvwG^?i16I+&9TJIfTCWGfOZDg0)>Mk%JkNizasOsVf1m|+i4%GQajS`VKB*08X@yO zyng(9JiRt)F<$W_TiX!+GNpkuYg}Fo2eW!L9^w5@*JG%|nT%*xuQ98#Nw}qRc1}Cl zL?86v?yHgPzOqTqne?_9&EH3KFlXNg;8GBCg}g&qV*zVL@PqH^{%D-Ft`PPOf-1Qn zfR@9Z*_?=o$kb2)PXdVuYPRsV0+oV@Dcu*>fHl>d;joO@ow$g?t-3lFT$b?x@-f`K zeS`p1>K3mFywi?Sl3pR_l@~{p_vydwORJfm3gJgu*V&_3 zg9O|t{=9FGAFok&ZH8j!4Xfh)uQpPS1C{%TfFa~;trj-OCEbt zA4Z=|PkgWSAMYbOMs!tF9o_)R$tG*_0ueOxp4#}K+*WuoNv|y1kWVL@}-NqP?Pdjy+} zd0e{N86-ui#__BJx#RdZlGxAwTytNDRcWg>?x{U zAr=w&r|vQn6KzBD>5~#s6?O_kOTTEs{j%-%88eQYiIRDRy@K$rIwLHt@M;X@HsKGZ zWVQ1BhFTC=q$L9}D#jwl`N~djU?7r6vSTZM&;}a-ar0TY(R4pRkw8R6h4GM+c-8sx z)xiXZlkliTBn8srnOvhhT#7V}DNwsR#{$S9P1fYHd4K*Qz1p6J-YSY9#C-0b&qS9d zjTVgg=u_L<1$A6B+3X7GeLZmt*9q+&m|VcM_EcLlRlt>)Geo(^l-?W_2}c3E4t#xH zeARvD(EKUBsj40pgbv)PKB(rd2NC&3HR11*tjFrk#q_*pk_b%jShSf^5^GCdz0^kS zpm_Iq>nh@?v}yf>_~^i5p}#7H&%!**QPh2>my*7+7yd_kA#<@Mf%*Khmyz-@an|fN z^EZo>Su^s`X)71rvkwm^r4z|J#pPqpUO&h9VrF-h+`q+CR9eByYVjm{CMmP-t1jjU z{t>zMkR8aNY1ejcCRYClgDhQ~X{N7yAWP0Uzv zrEzA2a`8-YTDE_yu-DCgcGPVo;wPi-Pzw_mky$hkpxST$Iw(_%91L&d3jO}b(rAF07G%-0*{Z50);#h5uUX%N{ z=1&SLO7}btSIx-yb5ywRLbBBd;dMdCbsAx(c3*aXP`Ok2k$w^r_Q0cKlGLaSTCcj{ zhi#u>0dQ6Zt$o+o>Es>;^bc z2R56X_PoM<%}l@x98)5IHL2=bemBkKT{WPL$6h1rA{^mHHVB;kLzy+OB=anCvq-0T zz>Sbd6%Rn|v0~-FLr9#2i-LDJfW5(|3RGc@iQadqjRl#7EcJZ)%A>jYog$&4C7M?k z(}$$7#?(-6ybwo*Et$lQv@arsUt;7qasHTg4MyMzYP~s-Hl*{2zgT@QS+Aes`_)K| zcI`IM^Q+a8#X2=Iyp3JEX5TP(HhgJ9&?DE`|=%oDF~DqzeQWa` zN4*I^T5UzqK%mo;DTqax=Emg+uKmo&9$6O=aK?h3D6*&jOhzn(K_F4Dn1b;&__K~Q zk33wbK$l)BP+;t9%uuElTQsM$*OOJSv`X=BO@q4K7^IuQ4;^zL~ zV;!i#>+1h<DGlMT4S#W6u$FB zQ|i3h)qs1xBJ*^QsBzc4VvVm+sLR)>A(R&?(L6sg-X6UnBsw_gR)F!_s{w7UuG>MT z9DJaf;?(O6sjF<-{#0D4UcuB(KrcCfJ*?b*V{`%^Mrf&+-1;>R?(6w4_CsqwuV6vpmd z+0e`AsOnyRp?ESmK}Duy%BX6!!`t`X%Q0#fJ;mn2J&qIwbX#SbmX5k$D4aFuV^Mj` z^8?I>yHGj~;)ZdKx zOiT?#e|q)91iL(u5#6hFqx>$oR?x+gVCiSWqBON`S%FZ6cZb{+dt zqL^5uvaZCi_inyzL*daksl~uuIxMbh^@PB&Jb1?pKP)+LPvcS`xYp{Zq@+ZWlB~*! zSsD$6iO;n7W)c-SmK|IM-$G ztTGG!Ya-G3bd_ICP9UC!3SgvdA^Ov)_9_`EUa4MPLCB|LNAGp}p8VsL?^r+{7t&Bs zc03lC^L26_E7d_noZ-d!Nwt;Ex_cGg0qMFps2Xn?t>*4bACk30O+wTf{ahzkrz}W-B`b|VtoDZ$v&3fLx^x@jg0i?PIq1e$a`1!wzA5#qN|#i>hXK- zBuD(rxpGiCxX()g9p)FhEB}#zOpIeds3)sc%y|{f_?kjuzvk`~Dy3`K;bk$tI+W0S zyzV|T9>ZUY3AkD=SehW_Dj5>$FpXX;F)!xe7DuXwYU0xR1CT6C$tOq(Fj@xpoN~m1 z7prL#9EOvq^k0h<4ucnN_X1}vIV>hVl6RpuqK~1l%-urpXS56-)5^ma$R1Jkc z0sNnO`mAJ+p5vkbJ=moJadQ|naf-XNQ{0J+t6kmB59ROc65%S!ra|ksYYK#MJ zmL9L)Xp~gOiU}NjAqS2 zD~+0VJ^xLNmxovIZZ?9?6Rui<DrF(=!|V-kT-5K)=0Sr~$#**$OsXcw+Fk zEOLi$qRCV>1%xcmGf5F|orK>bd8Fbv^u{D_0iGtfoiDfR^-)Kl*PDb(jPU3~rJ_OSxt}fPCHg7%CBelS_ z+XvSBH`S{zn%VsYO#6R393c zL!K^g_vwT3p-}}}M%S&o27*1Xaq*czseotbK~6)H)=#ZZeQ!s%?S54rb>#>@bp|j0 z1m}M;kNQb^Z~eXq5;rcz3`PNat)OV?9^J zkEaM7K`{6zpXorjfY@3hW+meVLV5M5$4+2aMhjFm9J>m;8 zXQ-FClMmtwKW}Iy7bp!y2Dr{0UB-#a2pzAW(O8u3lBSwY5ZiB9uXm0MdY`6IzUMIr z>XrKFW8DbLOkRi?bbIi)9!B8yf`E)YSJxePD<9FLoZBHfekPA;8|u2B;w2I8vH)c%c-K}@E8sO!2;Yv;d!D0k3+Z{rshNraIxbC04=Sw=jTLuutUef)p zPR7KXv(%7oUVWSQeDYrQr7UyG6}i7BLm024aWBI;a3W_(H%z`PqsDj%$yKu~AE08qcS{;^A<|I*K1 z*2ZIPWh4dPqtXobYL!Ly1?8lfandMR>uV?IyXgVL3#kT~*uoJ(TPFzyyYzy?jN8P| z()YB{py)3?zrWUVoJ3=lDTWUJp3>pvatC%OUqUs7eGv9X`9JFp^Fd zOLA~b$WSbP5}5yhi(1OTr#PgZu1FSkvQr|Id-u2(FCeCBWHu>Td%`tW;4{jD;f!A8l8-a8}johDKUTGue3Dl}N5yNM8Op$qS&t!;sOe>c#p((BW zUiog%5aY1bnmH|5QaeDhFNqj=ADzJ0r8-~t(8TQz5`mhytJ6svUWtlmwbz2S-FsR1 zzxEl_E7;1_VV^^kNSL=^0S@qGAWQs`2yh;s_i!R(3Yu!ewwo!Elf{Vjd{f+AhcMJ{uce7q!9i7$G z(G=>^Qibf)6U4v?*Lcc;Vl@vnW8$$61e?WB$?rMOmIlHZ%)zp(80a-YaTRPWN`!8? z*i%l|M7=nFEcX2}RM+#8ff{-W*h{*5>!B*M^(wQ@$re9|gCtKIpMSPX^L}6X)H5ob z-ZO}U=~6?1S>S1#EuYB}%#BSYZ>7WTb~(zg)r_a!uxxW(kA|sMjn)kM(Kn1fl-OL} zuw*#-hA<cUfzpPahXSA2hm12GI}V zE17skW2uxja1zSj^SbO9>1(kBSd${BnAA|HbU0y*%8dcL`(<%CfZ-G#kj#hMVNnK& z?nC$uqS0w0o7zMlKW69TU=tIo#5~M$45F?^{(kI3mp7#w#}Rz6mS+H!A!4Ek=aI2w zZ9(4$%L%pzZFkzcHsUVX3cJ@J3#RKepUQ0f+@e^eJx4RNz(Cwjh$_K~vAw1r?i+Is zCR8)GBPma_?%8@NAd_+CIiYwgbh|3wn=0nIqsTB~lnq?q{b(e7r9XCB+Y4IKbu_*$ z*FJY@NRY+m^3XjE%)p1Sa-oN0lTHCBDv|Pd;99K(>1@u!By5WMv7%!oV`8X^i6r_l zMPlJGn~$r)0{$t2fL_fC5D*)dYm|^t8=nb+30_G{DbZXe|Ov+%iM6!R3%ir zEb2FKD9g@RQBX`M8Wa=|+0H4ENYx^R?@F%A$V=bA0K6Fc%%JJLLXroYEVK))#d`pEf!MJ^@=QZYk$&J zR=9lbl%C=tM<6j!^esMP6_Daa=DWZpB5GtBsHovZetQ@M}%H;l;4$aH<-)TOWAs&z>juPj+Vr& z0jgpV$hxn$$QBzLa{AZ$mO$IPz6v|L#q?q#{@7;lduD#(mlv)wB8)z;JY=H6&P&QF z!mE|fkqKn}rp-ep^?&TZO+HtJziiPAUFKnMmdCoV_qG0TWRCt}Cu}ccz6y0IWs|~H z$h#9Z&yjt22uYdwgM3otZ`J+hdhKxrP99ZI_)adHIx)qNPzO0i~^0UoNHuVwX3 z`~*E1vIQLBVdhYu#4s(D#k*`^OOUx8X-6St1_ba8f9|UhT9}&X&1L8J=sR$Es@a zPT{HZ;z(n;Q*1(S4@YJ}FI=v0CZ|6z-vXD4bm)* zs63mHHJYw})JS%p8XCB&b#fhFDEJ9$O+F3T*s0)F)CeIoA#Uk)qMzWP2~%5y_ACIp zDKh)TRbLrT)gqMWMFpLcI~~iGxd49b92{x8+_N(MdkV*2OM|F5HC6Rx4(EtXhbwE+DuMQTauThBC9vtq;U=E)4{luXo1~_Tn7p%S)2sv$j`min8voFvp72 z-L=>LnCe_c?uv?D;^MzfFH?#p!6s!8y!WK2q6-4IP8O?%mIQdFkrM#eO8iA#n~j#!j=gW15;Q6*Dzme*tgNiydsfU?G2C@or?qaJX`J85 z+*n&mP*i4i=itP7Ngz#t!Djc2UBXN55HIyy=@xx)YiB?e1z&WA|^n6N5N$Jt~ zHW-bK&!jgpHPz$y~+|zPDX%s<`=ecRYW4b8`jpTj^s{ z_%1h9@vF;S1;aw_$;-NNH@YSNcta%3?`!ITf8%Qg_&5iJ0%B@!Z#OnJ?tKS!mYe4DxKe%o3^PvV z#|nN9-+rw{x5W;VBtAY~(Cr9AlmGVi_FA9H4(b>xtR`@Tx>PtXD3pmu;}>f2`USh+ zR{mn27TVLV6J5i96#N1{W;2Gv;x18M8~tWhED+SM(QCiDy1D^hOsk-zQp#t@#a5El z)Lc6I(>U}wO0g^jF@r6ZYNKN489TcCF6D-2)Mm+4{9V+6JmA9CkEn_Qp^Cy`!Y1-| zY55es1rV0_YOKd!^OX@}#*!*JqtLdl zQnFH{(9lNX3)^aVbuN)l;4b}7rUY#wLb|$a7%{D%76n@Vwx`p7s|4P=L5iwk*)13q zTzXA)@ziy3j2t!an`jCAH{hlkI_)$TpBZnt1_>ECtBW?YWUlnQIN7z`oWgwWw1U32 zj(k!C>ye|U-^NaYKtU3gM0AR;%HBs4aQ9!~zFd;JXfvdV1B%9#IcGqsZ=kJA2e*6} zxYKAvygzkYnK(J|dViBwmz0D>=QMDG)H}%b42C3|u#rWo=arom)GVpl{9+dICT!w= z!-E>05B?3lVAo?ZL!vABhP_w+^0|jE_=Ia_w<{k2p!ZEw%)8c$O_Ha7NqaWMlP zGB#Ifq7reuge%WMv)c#?0J{qIe9^#!nZ|AWL~dw^GHlUeoM=H1TuXWifLA@TuwlJt z_ovGP0|U5nr(m z0xuDG6(FY-Ia#s3zK(=Tx3{;q)d$Y?IC%DSCCTqerMX7o_1U&5ZcR9bEbtbyO}Y=a50E16%vVN=6%NuW-&9yjP+DflH8~xQaZVv zbcBi!N_0}Pgcc+fvPBWclJ&lWoX-7pKlgs_A9p^VXWr*|e!u6pe1FUPywSTHZI=I_ z@q?V4+;ZC;)IHGC7aDO&i=qDuPnteMk7fKF?m{^^^Ly_}o^g6*7-%#WMkFDbIJ_aqWDwB?Ff1C2Lt!u|Gzo#hlF@iF9tWHM!6AhLfJxp% zwVqc8ttfDoNW>?jP(eXK$RHe&C-6aGNF)*pjYVOx2#5nAlyXHh34$x!{8a)K6fy*C zzKG4^!ekO@bY7r{0*8#9^#YWz|CGxW&O-%(hLTZG7$jQe*PO!~{(=R6;grz$e_;d| z3w-=Qf&Z+X00Ra3gB*}65<hN90{Jfrpg=e{Ea>>IEga5*3ZckK z40$|{-FLZ#E>b>-+5-xCfdU3-C5Fu042Q`OAn#&JK>vMIHe|XG!jJ;Tpb6iS+`lCm z;^s-NLQr7Iqs| zLq?OLxoH8|5mEZDgcs5B;aWP1_Tjw5{Zd0BrtIZnh}wKFk;}1KmrL3 z0)U~cHs<`=!4`^m0_l9UIfDW7Gk-R0Hf_i>hOBZZa3M_$0`U1w_IJ?uuk_BJ4`P9k z$bSj_xAC0QE#xspK{Nqq?lYT4b4_K}*Mfmz@kl&O*MY`hb7dv8{i}5h7LDrzLhTF% zNBz(4{CB~fv-AJz4ocR<<^qNK*BH*yzG--n_p@727nMyHIykggcn5%72q^*7;pA}d#`)ca9|aFzq4CR`t|FLDmMi&XuTVWW?L*TudG^W(e0{i znWIE7uRLK8Z>JY}zie?d-Br&{Kj)UpllnJR&)@8NW*>61`sGwuL`&C(&JBS%ExUtK zgwyLg-`oijcjCG(3O{Lgbsr?0U$f=qiFkE&(=wYerA^CPH-|>X4V?b|vUT&1p;L%c zc_J~N|Mx$t+sBQKjTKeAo#1EP`t!`fuV{NEcq(K^u8#FoY@I;FZ8CdP6x2U4+P^Fn zzi02>JYiSOt5>hW$1+jg_xhT0eBM7kZFx*JY~bCYmL}7XpDPnlHda=6A~EN31#m0q zV@{v#bhpp%fz*zU4yE3akIngD<=Uc+#c>-c9yjR^yX(@9scgVd9BvEw#!g2^u}Ea^;IKyYHkbXZJXZ5U zO3EL>VgCLGjjfSdO@0ko?l#ZfzTKpj##1|^u3hWN&cbcq zzRX7#f%w=np1C%_^H@>Q1ccDjRI`~+Eyk~LL%$W+`WutUdiwg9Q?&|KXYJ&NLx(z- zH;h6^6`UFv;A_$GH8nM9*0E)d!NI|?xj9!piWArOeVy1JC!`~0YEb@@$gyABmz_qyvr4OPusIu0xA_wx2u3p#Y;PII}E zC%SxviKSB!M-Hdh8?AW}O|x*~P`#6L11@gfW?B*bvB9Y~EZ0-7r69Za{PJdR?+T9z zV0a|WNh`(0D{uKgjNRIaZV|cf?H%DG1N_aF$H&nU9f#ydj;re$sh1zn_Iq?Aylrdf zKf;#$BW&<@owDm0*REAGH#fJmXypd}QGCmtOBsLCk@1>csnY z3TxoimQ$D2yw2JUL#cY|l?bt zeWOo81R>XMt8T-K7c1_~gj1m$X)T#r(py`*OGS969j6hSl$7++T}53>i_E&)TM#}q ze%UH!X~pi)u(0;FHZ)rk$E-RmuM9OUUtix_IXOc^L-H+{6AAJ0DHkqubd!Dk{90}0 zYku6i^-5u3^48MY9+77|l-0$>CQeRHhqNPgPWQa4uBcdH66Ji=u{8FbdPoB%d{Sbb zSYN+qk@;BL%a?nbT8|K_Q%DJFa021yjt#W3c;-)Om(t$Fgy{C&4H?}M`!v~B)0*Y( zzQHYW%A-h(uw+U#KKt`NlOCVRg5kKAAq3VQpihtfU|> zPg|Xzn+t$oz}QLa_6Nt*Fd3^1M+OIfOHc217AGPPv}L!CSdHxHop`YLmR8*2BuWUu znrmTE77@M^0DuP9?diXi9_%I%j~pMXudg>TF)66JGjdcd{^G@&)DI(GwWkqJ`Oi;j z8xt7iD(lv*qgv5uG=6Pf`-3G+bMS2k^7eMt4o63%u5R~U#gLU$X_5G2VL-crnai2L zPEV8f9hHfro%y*Qh|ro(Ek$dJiwomxQuH0S#YRO%RaI4`r|X)VJdSp}TKV{KV_{%# z63*vR@QIm@7p{LGg~*L+_Ulii14+Wn@M?Nc1SluY=e8u9NU;_P+Q#DI@F|U-Gw$7c z^X!>(THQfqEgh$ek+@Qh^56%(Ef+~{k)_Ik_f;3OOAFRYU$v$(ha8=QnGpprM zIX$IE6n96S2&9<(O}J6vm-@DcG440Q{^+hN#Yqrd<+oGZ+{}}N)e%o({YcqaN!Tur zny)kL%@oZBf!6_fu;y&au1?QoS%d`WGNChUd;S6MbZ+mBVHKuyCc##t7`kSxFkLx& o>yX_mzPBv1u^3ZIeg1xv%?~zp82w`zvQKDRD@SUU#lge>1T{dmBLDyZ literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-console-edit-menu.png b/doc/1.manual/img/fig-ch2-console-edit-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..170f92076e9c13bfd40a44c362288d37974a76e7 GIT binary patch literal 25264 zcmb@t1yCH_x-N{n4TPY+=WN9~?dmv)SRI1Kf|bOJ^`!PT{FP;e_bN`x z)|xdW>iL=+xB1DdsMeh7H%-=u0okFjhYu=9l2F}9M)jrJF;$r4mcL1uOJYJ7Z(=;0Ei9shXeos zssH`K!`0Wkq*)F^&q~0n#|=IILzmy?P~@&|01ueebQHe=+GQIfGAT(Nv@B2;0`mh3@9NrN&MT1i-?vzh2nijd=A)ZNT?`%>F~MxGy~5Of^DC)Pg3QE#ga=>G>F3|$iY9w`I$Yf$vSVxYcL=Wf2!d|_ z`5JYWZ$YmxG9GTfHfAVzdfSg&`2Ipa#%SFiRiFv=Ux>NTLN}&gJKJB*UpJ#OaAuU= zW?_Z1*sfrl13o?3wb&DE-HH#It(W$Mnk(8~rKNv!UwINHcrKEF3vM_{0wQ(eoL0{c zf7Z$jsF&|4AZW}%e^dPz_6n)b6Y3;nWMQ$JzoF<;{G7)huU70h(b_HvxW1gKItPbj zCGdS))IaHkC-y1Zb^rb{GthLpBz+!lJ7YE4p{mZG(;E;jXK>brfby~nZO{fn`s5i~ z#jOVehmKCd+}{nIcuS@&3u)_Ke|UO6^q&1dtilUE-9O3P2YqJkdvRm~;T`V;9Q@vTeO}6NMP7_bz00VD#~{E*V1^IpTTyp;Cs~v2wdAU51{CqJpmzN z{J)Z_2?_nky^!{CzQA1eJ!E{^iA3LMn+`c^4M!(CXs5KE;p_~?z{d9F_c?}GmCgvQ zgzujZ983%S6Hl!wzV?letf@aOzChN)I&i93+($;o1>RwO4nafF-}!Ebl`Q41=QF#k zsOU6jTW6;NJgkxmRAA#RXZCqU<5{QuTIUGfRE*b@%JBCa)%J~}slxT=wU(fj`qyub zdVaD#zlbMsHv1BD>llNHnUE3|!ev%6gOi*y315}>xPKHb%p{PaVkuSjY)(QfVLsjo zEkg3n6%~LNs8I(#A&RR4i5Mkw%J+;&w>1v}`Pa(wyHn}Y->^!*y3;`*f;@x7K!&U5&3! zR8j0~me$~>5W6Pk-GE@8I{2#SDw?2}+V03^%e6zAPktfWw?A_*>i+sB&wmfIv$Jzo z`TD?APvtP9s&2U434QeWu4aSv@}yKe!>Gj5Qu~G+L6Tyf4%}a!B#*6Y(_B@#L9QwwJh1Yy09$ zK}Lo&(kSn5pB0#cQQskG_R{`xUFmo^!fAXknSXa|?-$JdHMARWpSS1V}j?Vqe)dEQOp(Dtky9F>h7=6xTLyLY$p&C<+WLf`z+a3~av(Z|_KBx31d_u$(H` zC=_@uo=wNlCEHqc#avjM`i|%OHQxU_rj}lxyc^`L^|9eCR5KJGypY+|!xxhgLFo=x zFhFs|qcg>g(T-Q_KnAz#wu4W?6&qxEe@3>J-C+O&f9un%FoMUc=+U7lF;sXrp)c@l zd)s6a|&5wAiFS;+1a~0wHNWlna*~^AV(*<2;CIAeFY`+H9vzZ!CBmz+q zeuqjKkl3s9J`VKV9jdp7<>uyA>8rfp+P6It=m;EBv4?=c+{ktu3i=HXU&s(qa%cPA zs);y192^)~O^giQ0G8^1J3xB;nkPvVjA5P3q)$|XW6<5#XI+^{1s-#NY-B3LC$duk z4mNJNkr$4PEVtTV9v-f1Lp8PQ+%*F{dUXf?e>ztIBpjUAxq(jl4Zf*ylkJk_`W46W zdpCmZqP8d&BHKrWxD=4+kV1_-!v)!#_ScUdD21g}9k|i>Yip!xYn&;PqaymETj|Bd zo(`31H(xxLY@hEk==)|)Pv5Vu!f&nn%tQJ{x1t}e*-H9t`6GQni6vZe;PNF43!<6E zT@EvsyB1zuCJAXAEPzrTI#WB)U$B-WO9$!pdoE=ew0=#*jT={yOfnTZ;~WJXEZ zbK|;3sWR)~__k)l##ABVLj?5`yOF~dCFR^k_p$;1v=G;~F(4QIOecd9$o0&_wqg4; zWH*Mx{oG8ooW^2{`_wBcI?+?`4L3zg%^!aC1xMo|mW7TLOAoKa%>F~B*E%F`HdRQ5 zB_3J!eFolq#_BUuzqh!k*GORmH%9H*im*7eDBD9f4Ksow=4^>x$){&Dk?UgysFIuDe`<=$s6)-VQ(WtWW8=ExIQs zCocWoPJ?Z`GAlfzu`Vod&Za(nZ)(1w8gZz_dcWAbiPaM#)Out_fG{#a&sd^3RNxmRy(Z7N}7rEKFlqkgQLV&x9ui=E72(~VYp z){Ym}1PC*zL(tUbFaYD>6D1?b)C=qydr6BvBnR3ZR4(uf0|E_Tp^XCgta-$Il2Pd5x)@=QPSwFL2 z`oOQlc#G$9L*uNbwSGc^&v%jar>_uU)4&D$oJ~mV6pb|Yn_2daX6&^@c+!Hrne>ee zyDK5MGN~%(EeV^wtZ9#WA^|`om&kbEI%JDcD*|fM4_+M&rm8VGTG=Q?@tLPp+xhwJ z0m4>P65aliljdxGKcq2`()HJ36pu;-C?W;!n`z-#TFz6V(94Uk zJzRAVJxiJ_Vp@P}F2yUvN2t{~9C}?*cO9oCGOR2rfyP|C)QKXNaiBppX=NMPg?Ff5 zzzq`u<+R&GyI*{)cpZn2e0jW@GHJkvyd+^cPQE!d$@=%5qmh-`u?sE2AKL#gb!xHZ z##+s{>z+^MOIz7k=z8oVT19|bj(Y+f31S_?#+*s;N8xsk!^{wWo8!`pGx(n}&qF=K z^)h3^e6lm%uM}KD;y~f_k7Ai;j)Q&RZ-WLz@Z8p9Opbg7x4piZQz1}E1`IY`h>9}@eLnw zZ9M+iPfw5k^u7l!+cl=)>i}t*HpA%Nn*NFYtNyj;O3(xDH&m3DlUU;7;v7YF^}=3| z1wGBj3lAL*fLM>Qc4m~Efr68Mbs9c?2s-g@P=G~546MJ$?Ox4Ras0A!v~Vwjc9+Nj__+i#&yT4{2wHt?SJ;CJu#N(J}MaE z5so+s{jj9^eKqmtY%zp;pNE_*49`qIO%TW0>}*@aY*rPuifJj#R#mlVGI*xygFBA? z;x^K=3@dPc-WNlUMNFK9!_HUgSOjG!D22pqtl5LVm(u!e6ht#G!{WGgA$df*X7y?X zMouZ0dJ7e2cD;OQHPUFCa;`g1@;~83orl_(6H^OOH($7A#3#_rv(L>hmKzOD3xH*G zZXlJMN!i+1xa}5&ijEoD&#Qhh6>{~_Q|=ypc30cwT^HO&4MX{ABxGUWiVtwi-MG}T zS@|gCkh`5Uen#b6iH$5~R^9r3w58r%Dv@X}G>c8>F`^&0EPrTbE-$A9jranGI8{qN zcfe9&bdLJ>%8I{SWs3)|9i3({p<)3O{oGXNlVd0uCCJ5@1VG0z#AYyj)I1y5JpPrp zj3yoC?)ZCe1LxV)@XlQiwH5F^|2=Gyxfz)<%Fs@fccJC9AqRG>%RBl3VWSr0pd<^Oi9Zg_<}5dU z5h`meh3wZ>1byD`?WxG|7^3Oz*bi2Xo z6Q~s}js?DnSU69N@`@voFcj$m)Pvv7B{3jH)U%PlJh+n4ISN(Yx4yUha?ed*6M-UL zRBPdQlU*q9Q7g%b)65I$PwEOuwEDv;-sIIEF^Goq0n4Hu8TfVDIzvN}#EH81S;C@HfS*{7xh4^hs_7hLnzq27c6t4aGbadJ4gwD*pk>Um0~!)N3% zX>hS~t+BQ;XxF;t~w_$Kh3nb_^dO=#a&e<$a$&R=Hzw@Ikd4V&mNeZVzFQzP=x7E%5tzBbf()hBh&{AxsTvB-1-3{5l&i>#$fG zOYZ!vP}i|e6NS%*_TBW-ALz`n3o@-_t2^*Pt251YiOFZk2T)@pzc<_Xb0XE^F!*3j zE_J>80hS+fSCEZIVacK|S2ZYw1`3XYG=d{bFdW&g9g=goO+y?Gz(KvAdR;7WW1)I4 zD?5YmWaJH?pubkR=Tw!)O7*CU;GO@)x&AmdbZovA%jdLk>Aq_H(05m`2o=eQg7Ph5 zQ^|yA^;>=Pp>3Ng>KFRQ@05~m%@|eO3km+4k2Q|&eOkO9mx7~3V4xjKE^{>0ej&6r zH|`HvW%O$|6LOnPK}B-m-5PBzLZz3}&OO3eh%i(!qsJ>dIhgBxiaKFFk=ln|C{y@_ zVQHmg#m^`rL#?-@6sA;r>W@q49o1QMCXU)5<0V*m)4uVAzW4pKsM1r?2>L1ZmcPR> ztoMtUe}f z#wNrCh_b3U=$ z=*6QA+Gk6d}@z)5h_Hs$t%NCWEcC~n1PEYS& z_sX*>ZdyW*W2@&K^a0(HWTD0k2Z{39znVU5Ws%jw6mdu&&AR%`df6e}@V@#eo+O*d zb}6NMWFsyzmaQVx+kuP`vA&O=DeE2yy6#|EedL-Q-b zc^v5(UpQzTwvd<&K1+p+gaA*LIKq2zh4NG`_R{3xT$WQQ+rxjrpz9a9^ZIib`7*)$ zDb4%T=8|8WX)uJ3J#oxb@C-Ae{3Xb1Up^q=H zz=UAt*6E2aU6K2my4@YkZ09#>Jj;mINF_ToOm-S{CaWjm0|$=AwW%&X)|>Q(nkIi1 zzDL-9)4X;Hx7@}>5Vg0>ifY$!ON^oE8tR)Y$o)RtX7LRC=q}dMI}6Ycm34c15kWT4 z&&<(r2T9z(9MR7wyY>~}=zCYocl}wYouQVXx?v&7H8d`}V#$sbGrN)J1+>}f#mR~Q znYnzQn$lRkBhL8YY67KG9__#i16(Ykm-@Y;n3%OB0Bk4X;_IMBb}6h;f0 zx34!BJzFmSIAm9HheU=B$`a|E5g z-BnTZf#yKuvV(wK`)svtKnObI1@zhAEaTK$A`+|=Dw=E?7u~J{Y&w-{iT&;Uc(!!0 z9~7XrIyEM`3ceLt1?L&@pdF%*7P91{@2y@8?i`E6X{5-71~cIiYCK?AxW#F$Id81= zkt_=NcXtRjOX82Uat8DBAFWCg+R)NUZZh#8!AjEUoiZYPIVs0;q(eKg`s$PVGPrZm z%%eD$C9{aBgB$2e6KnPWD3~$}nd2Y!KeZtVi(*Dk__gtf4$3b)b7bQIeCzxp9Um3o zw55BuX{0+Jycp)!1#d+go0MZ;345{>QK<5%xI`<`!&X0=ZXFr545-lJh>BD&7@^VT zyA*{Ok2R6UccH=miCdD2fz|JFB=SA5w&DT?r?+|@ttFhPUgW^s0pG$8uV=pLp0*yH zB>~4MAcgOA_dfGB5JT~`e@-`>?r+kD>okVnjtfu zn7|Y3(`Vs;J@kY5OAYmkEN6LEe;M*IgVO_6_j;)U0QHS(lF@PAl9)Jsp>~y8hII&f6^1BQV>+85&8kYK**^P+zEO+$rl#=K1hn2eTaZId>?XIsaib}ddy13ru zVJMlCP5Gj*%b)a^>)q!dXME5lD@za!_U0haZVbb`IrMPgXbD~W-t$E>EGwWVe<+50 za5+c|Rh4^i$d6<)f~6Jza>RfQfkCjEeD4TrWhlU~-B3anY0_Vg&)g}2oTbF}~MP|zgZc8(Q`z_Nr{LxnN&YtnB znY5WQe%`nIrl5x%Lt{FZM>AgE{g}6;h?PGVikJ#CKPGU+s)$adcgx4jkut0_vBA&S)CrF1AE@L zVOOM6AVraDiA1yMtAkee-uX5J`ixPZB6{r*C)-TL#jLNP2X;-2u%2Rhr#H<#DO?qg zIL1nt4vKX5LmpxEYIOTAFx9ISa3uC(q*OTsIQMA^_#(a+@mUtp+)*yL2e`Nv5n!2rW z__{EirfxV}vrQF7maz%5@H1_jVhy5p<3JtRV=e_u5iBO2Q?g=0QmRXUB(W6`vl#j8 zj7oKgV(F6lU9L`Pq!K#>El2kTy;eHk{(z2 z3%!;qD3r{=01IkjzpsNN=KBj_ez<4#ZLw90hn^0ISPSm)guz{_Wyoximo1>r{7Z}l=6B&i%<5aCtrXbU+y+h4%2<=)*%KisvQK)8%&8&j!U{0c#aL*4x}P(03^0?gPZ z=+eJ{+a8yX_XXrfE>(`lfgj5UP_-Lzg4Gu%e|}o3Z-#AY+zS|C@_8f{VQ$!VM7ZmR z@*pry_(x+?Q-}@_({?R~o=KE1Dqe44bTm$GaevS!S<$_agEnr{>9cUd4)h35Gg#eY z2p*L?wZ%JbT*P=Glj%w=^z%2bGTUrB=>PP=MyIfleeF1CBeCJCv%j#laj(5yun!{w zg`@0|8Gf}=lI1egIyT1m>?KNny!Kx!^?v0l2XN-omeKgnaMcKai zocG`qRaVZyaq}ynp!|3MMr1WZ))L}4Yy_}yeWmt*qzc!_$HKF5H@#6-Q1XLGoc{{X z5Zjx2=>0CMs5|xnvl za6!C*r4S5~Jk*#KJMyz6v9grHX$qxLATS}c$RH_?h%y2RB+2b|Lg@SYxK>Jw&MnV) z!~~{rnkl`=j6pMVE@V(a29(~``awSl9QMcIhS>|s>yhu5)>Bji(=^et(vZmThqgt+ z2?z*g5(IwIcLzp_7#U=9`zu3RQ4~~@h8>8`!r?x@i&7!uY{Zlp_C-!w40-^*%jy@i zlV!PB7)k`uV`5@Xr?e{!{WdgUHbp!c;QN+*bDk?riX!$YwjQa6TH)S??@;W_;D(bV zmqngG@=km0;XM*EGBlc#reBuEaED+6dZm7l2*K{da;8Q!u)OeYj#<|Pf!Mofj8FNQ z!s<$~r#3>o*5N=j%uI_b(5kgDXSLEm3h}B9)S?^=G79(iPiU7d9pzKBsXHIc!PQ_| z3b{tf5ohqixHU+8Ncj`1rB?`eO9+_W$HR z{I6aI*b-s0I8@}|&teiL%QcMj_wRi0^=5Z(rw@@tNRu;4IAGPqoFFkaAel)vd|F0L z*4ZK9ZGNLGuCc}pUuS?2?e_xlq1g9-hwzEn(A1T$qoq$$m zB}0OJA8RkRN9>;Vxp5_dU-xaAHCywqu#cd*;%Jjy-Zu>s}O)orZdjV$#Fm5$BaawT|#I3 zRP#6TgCsUELq_OxD|Bg0_#inj!v<@ikz%qpzN1#_^I8f{PSrsih=v1P{>==v#+wYH zX%H)ZD{YlzwyVg@7)0aYfrhhH7^agx{DvnUbla=!D-mHb%zBSEZ7h$0y| zBmj%XE85mMqU#=iFXfTNpth4}ki|N9T)B0XqE9c&2X|@sLAc*DOU0ixl6Q;`N<`d0 zi^Bn%`di^6ki~y7AN*h{NXTB@=XCgi`SWKYmyyi(dSu0AVu0c|TwEE=052z1IHKVk z^s^lBFpujo_}5#l^nM2)%eiyXMi9vLDGn&o;Jo}qMUkMP7x-KBZctN>oC!4e22IR` zW?asGOvH{iT6TU^sO`!@omZ$uI+DhHA7NuS8Ol+?NiHTq@d%dZz=E053rG2r z_I2kWJOHecx_U?=oq7o^S&fywy}I%9B^aK`2d6ZRF{Bq6%!SfEfLYiZ`m(6#*F%QP zM}Sv5IRbPbkGsbH9*k<1%>Tr z5ieNGdxeTxzQo*xYoeLLRo4$bcjh!m>WWum)Nz22M`O-Q>I_ylt8CWV4`~cgIqcVPQrv7>x6Z@!CviLV28{a_>O~=2bB=mAZZq*k~Ngav0BQ5(-<*7L=WIf-Gr@lV9=KF)px&YqXkhsYQb~8&UDO>twib zZs`#dXu~nv);y9$v(G5b%98lYDz~D(y$qh|!U1{+p`jxcC#OP;xad#0 zsuFJY!oEUMI}Dax@_j?+SIOISYGoMr0(eV%C?~CF>SV={L}Ju3m&*sa0%&-(F`E|G z7S)9cN<|2m=Tg+b;12|jTUFGdTZ|x--j&Fag|WcF;h*xutqS?)*Hz9S(Y)0dji5B6 zEhC~Iq3d1fqIU{`Mwht)I0R_Lrfk180)Ios9rQ`sOMHy|t{qC=Tc_Ae@*NAU^_!1V z7O+E>g`zJ-}4tDL8ahzBzgoLZ80#qGRaD05$rEw&1%M11}^d_AS zI^&`zr7Rv3Mi2}NMab}BP*8;L7hSfsq(il`v!|0u*F5dhbU58UwH3%}q~TsjE2e4( zQZpQ77Bg-gN03MP7Ix&II{R1!A1a!yDjL{og`q6~-ZQD@NQEQgzQ<7f1D=Vg6k;Ye zB}eURCz0lj`bDx)Qa?q6*|&3N{oj0AUN!VPJ0(3aSDQaM>BX7 zRaAZyfGpTb!NS&HBHhe8fM$JTV`=q^ht1FwVCSHW<^MyQ_J4JAfhm@M=^70spUDak z$?ze;$cJ-;q@n>QQLDvf@R!Lz>zj=S#hPH4cTLg&FT)g@Nlq?XG>~nS$`}d?FgD2k zEFt89T~gAmpa*JLL{e!7jOcJd_Yllw8(2}`2{Xr<(Y#|FK~qs-?`X53YZ$1@MJ+Yt zIb&?A8^C_>h%%|FekOTR)+w8!1jGuMu~KpV;#r)?bV2rQqK7xv_rhwQt2k?;6gsNI z7oY*6sFo}dRrS-%dBJ(fyJZjA%4kakYAKGJXX0LA8quNIRf>^ofyDv5*+ic1w7A;` zdfDDIF7!&y-);MVvNlQpUj|uu-H;(L%$Ex~Qs9zL;-f7a0Xs^s2l6hGPDb3jb#$P{ zFAB0SR6RqepR~}<4!Eb!jEGu7 z_pSLtsR}=E>t`Xjxxs(ZwQ4g1TNdYh5}}*X(mx`hLp7>3XPI#?;X0VWB~^?VIuK)d z^THb03sz2|Gmf63w|Si3Be==IFF0we5=k$k446V0^t0;cC$Ugg#Kw0kA8V3e9D(@N zwRP|Eo#yMbZ4Q*vk0jqqOoS6TvN?@QMHixPrLZEy2F1sc0E=&a(56@lMD$KM>4s$> zrlgz%AH}I1Z*}bv*1LtX#B!YIM|}R=Ay)oHXjHk(2fGA+-Q`5Ybm3EighDfhCiu1; z62rkMk^%!6HNUlh%>{1k=sOsn(5zYKT*6{=<_B{M&R?IRjnsqk-wP%%?}Z+BhkhmP zyrr)nuq70c{hP2y{6IpLt4`E2!>x9G&oD}K1rvrGfVp>Xlzi77Jq_#b9)DO0UTKI} zNQ!pT@5S=I_=AeF+>a4|+&9rQo0EG*rA28FjE16Uy(0>gmJI}b5Dh+!?=13Jb!{wx zwK)AIZ9>gwRozZl#=(l|(2KYsq*aM-lRz5*J-3HzR+jp~}fa=HpAAI69dv z^s&Z4d6r8S6^%7ESeI5ipBF%W*9?9n>kYFW;&-;L@#{A{uw z)#BocQuC~7vz237b-J3{py*#xz&4zjuzah%L*w)hw;*_(MTG|ytA{YUT$Sc$pwtS^Hc%u#nslm?a{7+}$LKZ&f zE?vKqNjD1U>guZT(;`N-}0;IdL} z+~+VQ%UN8kVbL}4OuUh{)b3B<+1}ApVW$&29~yt^LVg(~*K)Pb(Ng6na8tVRR8w-s3aVuI*xj~EI>y+ek%09y zHGJ9*XIZF`a_>}F`*+{n{n)kfr_`9x@AfT&H7f#L>b8AnuP=prmoI%=t2bXVKXqXzX$7BL-{bNX${05`LFSq$q6PJvynBFlabs=N&BXSkdKqlkEV+{KYe#$p*`M95Ug)_~`nJXtmGD`vy!lw&_x| z<#TDb8zvR2D3C+X8SCUT{kb^xX-f9KZhJ9Bt18QhP{L$Fa)m5^Xs{`GEPGv+JIBNT57J$#6pJJ3<07C9q>&+5C> z5;uVVp9p+iGQJM8+{!TzwOi6#-R~0`?KeRQv;-LR-yVzCF#uv*2HY<7z`|*In1pvg zn<({nm;mp>OQ%OHW|o!t;BE0aV*aBoHxjbk*f4+p&xvQ?Sm{ti6BwVh&9^F=RX=Nb z^|h6uD%d?Z+box*VXBRZ7>^%bgAq9ZjeR*Q|2-^4v?(x53Ma?ymTJ1qo=-N`t`v1o zbT?AZXV3-M?ItA~=&fjyUUq%vMXRFU4h^OaqTnX)rJ$#F+kj$;A_Q#@un~|3KVS#=(DR7y1RQxmVp)+F9Bh)8Uhqldw0hj>&ZpLi! z{Gs-uLU6`@W_Y&r5W8pPYzsPm1H6^qe*=$pOnep@)_EVBIYm6n&H@}x2QVO#b ze|tuRhVojArr`gSk1K=+}j_RU3zU!^VBY z8yvd^nics+i>>L!JbT&>Evos>}KR90E{5uRiW|^{%9~AgU844+#-I!}V3fhyESW7@%r1vR%)TdZ!xx|F+?~FrHlT0>m_EIIwjUR_ANe##RU@skfc<`6O+SFv zYOqn9)ZJ9L=-S(gayN)=m~?fjS%g2sZOLD~GJ9$hJEVs{1cMMrvdV<)b^tb) z(sa^QW2ZVL_}@J9f=Tc0QG@m}L2%$AMJw$fZ-*Kds5W!Rjs#|u*@+m@Dx0E?+2P(r z*H@OAN# z1=$qqKi~QP2Fo>z+~{9?MK*p?=XUmiUD2YU2v6wUG)hlt?dlRm4gFjo47TK-^GFoo z@>p*g8Lg|<0f$8S|AwkBl zKNo+E17Aik1Q_*D&`gTuh(!&F33f}uFGGkyPWq@}BjGnXHe5e^`n8L$>r8z{R9vpT ztiGlhRoc$piBYm~ft8-Rus>jyS~>Z>Om}dkyc=MwHN$wej5VQPV1Ut)5O=MylZaRr z(A8pb6zIlNOWNRB#|Vtx_vo{WFWTh>`VyjS#Fuvao=v*bm#S<@-xf8}SC8|~t=v-t-rd31^Y`IW@j$6H! zub312MmlHUNCPZ*6>X5mhW4U?y@Ss4*naRZZ2SMV%}88@IPm=YnAO{doHizo>iob~ z0Sy;8w(yoU==&e~Fo?PJ#P(*y*0!!_CCBetd8gYPg$CbOC(^*FgKh(Z?4RGVR9mB) z`sll+%H5?ID8c$I9WL%SXWfr-sqBceS`eyqRqnZ(Lk?DsxhYv7TYD@pikDUW?I+RTtbkk_b_UkhV5X~y+7+%K(P5Kz zDDbR0!Egh0#p14KdRLz8phJxH>s+W5|82fO;Q7XTQks=2F8CREmi+T~xoK##mKjK} zYXw0u72Ph)fBk_J{N^jzlgUrmzN)8gXRV@7Wgp{4zv-{rqw5HF-kSKqt|q=|dGOHC zsrLe3;7mJL_q`jir-s|$XRo~l_V}J>OUY zSC2?Css62NOphuGu=?QH*a(2KS;U%l!0Zj22XS(>x(#V)%<3KD0do!e4@qNyT3yC0 z%v||U=6#^5C+|M(vwbo$Lp|i83v-2C)4F&x?k}Fz&QS?yn{YTyI<&S`gvVTos)r=e zE0@75vXB9qhYfJhq3nI6MdzxlsfPLq2CZPezZrRCzekSFTQWlUNhnxbPW0V}mQjs5 zqU9jCZ9}mQ3J@V)2BV{6V-kkCespljC-0(XtDL0Ia%|q2;pN&{lUAgd_$3Mx>BVz$ z7E|_{w*VXlpT?QwF(s9{OwstMsPsztZ`#rXe=8N>aHZ-Hxiw%nTKb)z&SuL8$?mWb zU?lD(c%^gd6{6%`wf`%=$k^Eb7#*%;0M15IcKit2no~zbO zvPV0+NChzXl<}yb*?_hqek|OyW5o*I*8t|vdC4zgZ{fvtqvSoPOy7)tG@Y1oBn(Zb zv=2t9s14sRhK32XO)zycbMu$%KS3e_vi$wMlXAEIGWZeS;lNOierM;yQ^Hx_kS%HW zd}E!e0CJLU54u-IuA-X0a1@7-5`CvTto6<8UqQvMW%SJTbsYyultRU*d+D3RTgR9= zNfY~VpRiJI-V<_v;rE10{l685`W&nZhoKoW5GXg)U+7;3`sVLac2ZoRnK4?_W@0dh zB0rAGrO=lo+$?M(yh!2y?7s_qH{%-Sfzui%3lt&C1=tM3!;SP2^t@)c+e*_)jd19& zSa24aXE(V3Jl*U&^PKel5)Q~Etoae@WtLoCE!-I0J)7n-RW2>}O_#$Xt&trX3UuVj z7Zv^?1f(WMw*{-j_{BwM&(Gje~&5s@yKw_D6Q3PRwm`Ag{2L33PsL1W}JT-#TwJ4 z@jeDBI(Q#nki_A*wyw;YGoO5BUG%K)+zTLbNgc+00NNVzs|yi-()GEc@5!9w<{XW! zE)p4u_kn=Qpw8qW!(aWk;_&}|fSUFnY}^PIY_Em-``_3>ZT-AW67o|2J#NX@v~uL$ zAd&u^`7*S4HgMjKo5^WBUg}4?*WYO`eIfv=atp8NJL9e0!fCIQndZ};KOUT8x1Rc) z25~|{s(~Md8thot+WmY)uuIl>D`ycxQsrg(NoxLyC!5QEC$fG_j;-m!5$qD+gFWo` zwP*w0oSl{}EykRl7qf=A&_La#{e#s;fp?g}9*I~Bje<5>66=X$Y$nvn`Hi=0R3w}2MN6w4O?~|@@aOz_WoHRT44*3og#FzVpJf-^ znA^9=;fWsjsYAy!=3>N;M}}WqyN&dT(K3VMOPHJ6cx2A}5e3nrW&~EL4W0j%>1JuY zs?cU0HIwlRd(Rr*Xo2PL&-Y;t%yvCY`6o5K4`l>}`)g;ziJIzjnnjW<7&>85$N$D8 z+VN6=kKgTEn!Dpa(%dtQ{on*s!)KTjxjlZBq;ip;CAwVuGkx7!JffoSw88Ab^FUt| zcKjnU;};Lc^@F+4KOOx)D#iYVM$39{Xk@c+%=v*NzMTX0OCi?YGBEx;G0Me@cXOxB z5+PkIycV9%$J4ZiYj5_-L{j%_2xsvk)k3AIFzFz}^ZS!FFTRE}ADKbNTa_C;(%jBY z>B#XvMPhkA0JW8JG1%49L3>O8so@_>4x_X$2QyT{Oh=U}09gcKSY zpm!&M^3J-LHP+I;GuC*oYkL05|Gxk&UEL2>I%pqO->g}2T-^T@iDn$u!U`ZY2Ir|| z9>B=O7q2z~zo2R4tp+lMj`Qcam~?cPVDL4cDvyB>! zE{Ki&vnX4_f7dYg1phOmOw*jz_aCwcXY3ltSo;^%2FO2#gQLw-xzu0cTQ_*h z=$7I}%o&=RnRtIYxI0nnN4@_mbGF{ACDvkWP!b1}?yvNjUs;jqj3C@!U zO@oox=ZpgT=#*%mFht-~R8-`D-N^r6B5LPXwysX~O{MPKRK15Ph9SDlM%HRfMOS#zo32d=hKPY^fhfcELSj6TVS9C8^Myl|8>TlYAFjk7%J>qu=Mpr3&|)g--mHl z2nngIg%Ixttj<9M!s)&VmzgqZ^3?y)r0Ho+j5*T;qF$m#!o~h0I!phUHg^O23#x6t z>tk1(+0IeNaSAgxfNwFceJ3w1kkGtiD`ryB;JKORU-GIrj+w}=^XU%kR3y={m}I8; zx|>S|24#VH)otCmx0f|yiCXK)9id+3MR7r5s$@sF4OdB>n}WCAamY-2mw$heesX1- zFHEUD3sCc)`(}U)bq1$YTgPFCyc}SAYC~#4ef=)!e`Q-HZ`wTChbSY$05t}v0!GYZ0 zK{TRl7tG8ckmB!2X~zrfeotDtSztFgq-FnbU6;ou%1cq0;f3qyO_@gu{uvoT)IWe+ zq27}y9hGS_gUP)lI3Y=KDfZI!{_qIxGXL|h^QLkWJf~s&!kH8Sxi%lg^uB-ES7Zrq z{f=>whZ7V3DZB-3<|l7D z@97^#7UNsy9{v%)4Bd=b54mG1V-v}NfH_K6 zz-jnDaXsGL0F7T{XivR5)v*5`dvG!)^vW9sl((iCdb>SZ{8*?cA#v(4+tUj*9zUvt zM$G<1Pc%JJu$yK4Vbs}WsxjG&Bae4{NXCAa+fmz?@7cu=#B%WHh9Q2FENmRR05d&A>3rN0fYip4WN%6owxPALw< zBMu*54?`&YlEbr{IsNijISM=&3eZ(C6*=IB%Y-3hqEB!(2GUmFrE?ckD9EiI5fF)q zg7QGdj!G6Sp3c8RZG1zR&bJJLrZ#02Mx*+ri$I7|2SO2#l+x+|MEv2U0+)kA3y_8C zBLkPyAMZ8bszSsI!w22{gP#$4ZjFbhWbm2<`Q_gj^K4&}cw&Oa#%J+%8lGeN45yv? z@q-6wKI(p3UHPu?$j|gaG!Ogr*P}2pO4Mf2>XyP63WW^x#E69y=P#T$gd;+on+78Y zco^rnYv1a*88W+^q=d1tNCy}g_8Csmz9n5};ZT!OR zBziy5leUzT=*YxT!O*dg=F}>yM_}b2F6R+wfaKZfB5uQ=oDX5WTUM9 zk3<3NdK-JV$h4>!8MGS=&!}J@pkLN6YErCq{!xW}mA7*Due|Ah9lH5A`*+?n#L+sp z)4YuVZ!5xUz!aWdJ3x!-RI5mMNmuo*bRolV(O~QEO*L%JIm)H{NsVdGf7xptWkNAC zO>KRmB2;hNX;$5Eo4^@U9_&r9x0ais;=vCtA^C*{mh>2FY-D%`q8BSkuAktEgR7tHiFoRq3MkC_#_P1&MKK@1R2O|0m@+cbz7IVt+m>hoZ#M0(#O-Ad>& zU&M59Qf{N~Ua*ajxh(K?H&p12M~i59UrKBv*jD3c^B_k|m8z3m8}nkd5f6;kp9wkj z1v5?n`eUqrfG0)ig8s$>V9P*F7{uMl9o2S>!njmgwUZ4~#scA18*sCfCk`z8$Ed)M zc;mzz{?A?|eJb;$g$=WxccLTd!1Qz>d)E37+~I7AIbVP$n2`tAp0p4d`fxRAJ(3Dw zigUyeJoUO)Z%WMCL?oT}$fwBP(2==!A91PgP~han6svu#<>QkEO@$UyFhyko&GlX0 z-2)cG>qtfgxjy5!NXiw@%R5rMU;O$J+>~$~KDH3$%l;s^h7e*(f*XP;;7j=E?Us6jTnff@n?fo=KaLu zR*x|mS1@qtwC#i?Xtx87z_<;1-MrKL31w!4Eve7uA;Zu1$IZU-d2eiddZO^@m-#VD zE0zi?s0_2v|MuX5=%!8I8p)Sub5%foEAFvQ|Fm}HhA1uB=lzXM>SRpDmbtYnoq&Du zXNUhD7QR}Gh0YO}6yYAI);Qc~GnM91cB&AE@?RU{iWsQ?EfB5GG?=pXnubDc^6d>D zsHrtNF-jx5ou z|5G?Aq?cq65P@n?ZrYHkCfbwn4hVIKqw05Cfp`aP4(&Uhf=nxnzb#D%vKUHIJn9SX zw!|Ib6z*P-m+M1~>~HL$e=a8>keqv-DAtm%$}G|8Ng-|~Gscd!Sc{|O7TV+n=Q~st zGwPTlb-iQc(DS|dDovNICq`a1gv@#S9eP_0r_!ZmWq5qY-P03~?;Q73;UT%5eiPq> zs5Ky)s^@K?CUfd+WMXRbX;68XAE1*86@-9CKxT>QpPfuqGr}h}XXeMzdSH{Oq~Fj; z=)pX525>=DEa@@;8~aI}T@bty({1-9=>XBh?+qO|XHM;Cnoo+@@LkfTm7NwZ%Atbw z9ySE=$)(p-2P3GM!+){rlW8!Ms%(y~MJXc|$?0P+dHq27F-~|`vW70}z%NvwT7Glr zCL{93jH_+JCxzvitr@|{81z%TUwd`7y5)r8x_PU$mtm5Q2J*h68cNShyE(AXSt$@WO!j>Fo~N+mna>grZ!=K@QtI1_Jbf$}v`}@aVrt zmhyj*Eaqu9%M2eTlcnvo-H+YA3IH(@2U4gXltCvMzB7$UuZb=vnJI0VNLp1^7*00J zZ)kna4eu;*j}Ts3l=W}8|4Q65H(fBg0|>-}K9dT1cWr#h%WUrpTec=7gdiH`%Sv z125~Ld)b_um#$A4{h-L{FR zm}zrc<^03x457b?JoKgsXG+AQ8rICGr8xU3KQvR+5(%clIxDxcd>Pavuo z56FDddxCYVQSDoo%yP^7h>iQuOR@A|8y=@NUaOWE0}wLFvpgAHk9o(XKi4=rfTA2_ z8%)K`dW~hx1L&;yUtdmnD)v4Vj=8Iv3@oueTelc2u;FSxwbdp16~31#kiLI*LIvk5 zV<+5(%SV9g6+BHx>)WcAE$ES>fUVBYv!UQ;cVRw}dKI6SvZFW`q?6QjMacEbWcRb3 z-$o0DGs?x>$**f21kM{(MsD1%U81m@6DfCR%*V3fcBq#uB09FXV6K~o|L*&OpRbP= z)Z5cpF9;@DEtE-}Mphwavv?_6S&DCsy$0R4zF`kx)88+%?yqH_{Pws-)tw!i89~9u_fzB%GXJa2I<|M8Lsc4 zNdWBMvPNeFCXr$y#0^DF$U?YtoyYBWwuWdc9giM@94-9-3QUfu~S?>TNGlrjdEdIQ|E z!M~u!QNF$yc3`u5y_5>82u|y($FnPX&KcFVf^l0oo$sh77OU@l==IC(8td_@7`wy@ zcyiej-jmg<3&t10s3%Y5Ojbn4akkZ}GWQ>|5e6DJ{$epXC-Qa6vz7@M-L4SbeiSJ8 zpN9*=`Xrb4U$3E1HUs6Spd!Tawd$N-WJc?8*jkqrjFOA+OmOAeNf=5;2HCJB6TP+> zi41&gke-nUUyE-QTMYIqGpc08Rm@$df;hFo^@8=^S<&b`m*a;9pfZy4mq4!mKmBg7 zOh)y{oO)JBiKaJDc-pg4RH`v111ry6h=BhBWdiDe)@btyGARQBk3_1~=q*%DWi_Xn z`iBoWt;-)5M`D+JD2AM$o+?%^@8MCUB~cQX$KzI04)|46!D8ueoasP(c@~$x^EtG{ZcVI2>e!9CB_R0J4=Cm^ zB`s51y?t=_1W%796;E&e^h#ZN{#~~eB!Q7kSVQZ}mx#Fb;@4%Fe^+w>C>H8hVQIyxlUMKZ?{s?5*qTShZn&0K%wIW zvzu{KJ|s}F4Zxm-EKZ<)oHUmRO}!0F`7LjL__jrh*2y$HNVQq;4HgeAz41PmfYvqU z_+t8BG0dbSN$Q9_Ah^H-{NFwyi%G8g~w)eY% zw=#7g_DuBMlmq=ha!=0B?_8^+_M%v$D<){f+B*C4FPrxYW`H$o_vPTCBqt{(CKLr)Ak5{8R_vRL^G|8s3kiIgy0Z9!_Y(n@%AXGs*YIey| zJPb-^y`AC57#2@1#>&K;a&1S$uJpqOwb!z3_2bo*=WHA-Mc^kmUF~54GOUmUCyD1W zUW){}Shg%!&;PD_hy!f;Z3$wNmr`78{k~aVm6nkziJ!k=5Ll`Eya6q4#omQhlOB8< z9i?|_&t=2P^JrNhe7&B$VZi zX7SE~a6n|Jf0hLnLBYhy*hHYT$01(>l26s?=bE zdjL3)F7%K8bc4R&9V^xmo8iS|p{os8+1>Poj^8XvH8SmP;N-6T*Qx<5@tb8 zNcbKBT0naXj2_OO%lvdTXQvyF1bG2=gFY$T?jzUo z>mb5Ny$i@W9p&=G`Qg2f3L!a(K02CRku68*^pS*QwNj={2rN*%%4%|_{E|v@eym?$ zZ{Qsno1NL*GtB5D4eg^wqD+Uln;#F@ELHXQ2U#d%0SI8@Wmbew;(qA4lN~bLMHkIc zWjn>2F1h2?{hbeU@-Lt(RH^9JxB_h|mZn-JrN6O+RyP`|gh%Pm&u^6-UrtQLwT0aD zOX)s3bCwR%`IhY0LZ>p>hdo*3-|;m`)rfLa=;v0Z6C!UiL3#u2E-9}rZDoDz4Q;Qi ze@FP1%#?j7d}|NB5e%54u&Y4AQYOToTP-UnS~Rxys;ApL+H1E8IK8~{Aq8}oZiSZC z!wFf@E4u7adH#SvW}y7(K&3Uoea0M@Z$Fn{XRb2p#|lt6A2b;n+jFhQH+ak%u#eb9 zP#lFVfcV&3V#*(}#AMr0u*(E%H;CXE>Std&iG0ELZO8sn>>hX$_((W`*Fb5~D03uh zS&} zg@x4#3&mK58?0%g-#=xQLD1*!Zw(3XevD&I<`n2`^L8^$EwTY=DgXSWTk%P{K{2rm z$GzyXXpv^(`MGcG4$VD{5nh6GYuiy-II7Ko$utg>N!XTTVtd?SxOv}J;j#4#j@b-e zzu4%(PNR|Gg&{unj|YT~GOBkj*48_}+<0(-(Ykh&cu$IrvFAVKHUBSw)5?^5NVx63 zVMQl4QbT$+jJvwYyKx}w5~vM+tpI3H&WmtqvUn^@1Nd3N(J;Uh#ZOVlGdp@98~DTD zz|{YNTJ#$PDYkkrJ<*Amw-;w7QwTvvhK0xw6Hm6*63|LF?`7+4iH|>g7(?S!-yZsP z_8QJPOxUT1LZYD|CD?_}KF+)t0Az4)X+u38a`fzQNZI(Q0S?4K6Q2T5K7zTat>YDf z`3giWizCp#WS~rgegFcTO4_OJ@=`|p z=1OJb?VgB6d{f(A(9b>$E*=mGh(q+~F-{L6+aPbum6liQr zcSv<-;=(f3IWqn=4%usvP^4Qg!vg z`@uQM?Rd_@eD8}cm#!uW$Wz?N*5Czz^dpx1Vl|mSgPLazYB!9 zc%<8&rP)gdw|=MDc9C(J55f(*K&3FH00z zy8o`9(ZPw!tzP|CFO?vC8tSjT+S?@aV0XNTmuH1irKtk%6LHY~@g;5ZUuuLXb3SIGKQzr`5|+lHCx(>xPhm&#WH1{(+YJHMqeoM&dVQ>+i+z3J zkSy*u$glmh`Kwdq6J=&HM=U1d6JZki6JKfsR#LvQAK!^RuAUtPM>xb~;;b*(XWLx4MvF5Y0(Qb!_CrozEJc)}<=&e9wbDDOKh8Oz{Rc=^K%1Pwe zi$EuYnTG`ib~Nx;VR`MY96;uGXmjN)Ny*A67QU37BbpGSJhwkAQx2dvV)mSq&gzyw zbA@h#Upph?f<_WSFbe!6c+2@;k+y>KyJhkOAk&6?c7K*rfQERZP>1DW^c7_12d!pT zxxu-Gz?VY#Lw98KeBnS>vA*su$q-mM-u_l(q`q5BrYIdXb?tyveS2RzT*5rytTc?I z{Md@a(E4Xil+`jYAkt;|Y-m0E(7mwJ1^tP!vj+cf$`2dnmMrX+k+4wze$~?IuZTZ2 z7{D-ifMkbkimRaI<%u`jRgeSBIh)FW3D+i1c5>nA7-!Z^>ym~+g&(MTg&EU7IFA9T zJ0Ez+8@~`hxBOlRc#&D&`or|x6C3-{P*w-M@Owhs<0OC7VI6#yU$8U{a#Cup|6Su{ zeDDgWG=zF?!ZbBwQ(x0wizEE5#O9ObP!%!}C){g0?jEi>nRw1qk)-xJ#!boI2&Rwc z#uFq;R1&`XLD{^E*LrO9|006cOK(nKQnHa?n|Cdj~QtTZO|9cU9~ zS;)dl{!u;VnD0h|FL7a{vL{`kyQE|JP*w zA8PggAMOJes;{pfZwQd_*qUZ`j_F#wbKG=R#C2hHWku8C!Oj2oajjm9$HTSEX_(Z*p)D>KVJgNqs3MfF_5vH_ieD z@GhfX>T38R59hd;m={20CcCh(CcZfX-8JFCvVb(sdxtOA_jMoK-CqYTlfVPbt)@B@ z$@%*u#M-xI(;Xd?C0$;oUgEcW?0oD#Hg`EILq`iw2vhkjONL&{rKDf9?rZ9p$!L2Y z?O(hMdtw&xH7a(*E-OA27VpL5}Rjwb)vS5yn3EWBRQbpDoqPA^fQT&0u4RA zfx(pXkNSH@=!r6e>zJih^@>;cXGyK&)SUJMevF_~nkZI`_0cX5{t%Npz>ldV!dFV{ i{@=a>JdLN9%MHHkqMtr70e)rToRWe%tmy9Jm;VJve6S$^ literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-console-media-menu.png b/doc/1.manual/img/fig-ch2-console-media-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..35726047b47420ebf7f51a6c070dcf8843889214 GIT binary patch literal 12927 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 Oa)hU=pUXO@geCx!&N!w3 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-dis-connect-fan-out-audio.png b/doc/1.manual/img/fig-ch2-dis-connect-fan-out-audio.png new file mode 100644 index 0000000000000000000000000000000000000000..4373c7b5c0e54348b9f1e5f1bc0f94d298b78bcc GIT binary patch literal 10118 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-dis-connect-insert-box-to-connection.png b/doc/1.manual/img/fig-ch2-dis-connect-insert-box-to-connection.png new file mode 100644 index 0000000000000000000000000000000000000000..535a3c9dffcab5693227f4f88d2e5e2b0c1caeba GIT binary patch literal 17474 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 UAjv+*e))dbZxYQB%||WkTJr{X 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-dis-connect-parallel.png b/doc/1.manual/img/fig-ch2-dis-connect-parallel.png new file mode 100644 index 0000000000000000000000000000000000000000..84d85182655ab60130ba45890211a704deb31e0d GIT binary patch literal 8387 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 SeRKB@u7ZrJbis2Y@Bas(kAVLG literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-disconnecting-boxes.png b/doc/1.manual/img/fig-ch2-disconnecting-boxes.png new file mode 100644 index 0000000000000000000000000000000000000000..8a47b358a43df96089a778eabd25ab1429501336 GIT binary patch literal 9491 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-dsp-on-off.png b/doc/1.manual/img/fig-ch2-dsp-on-off.png new file mode 100644 index 0000000000000000000000000000000000000000..3c23dd845c5260138e47b851b401c37123683edf GIT binary patch literal 11259 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-duplicate-connections.png b/doc/1.manual/img/fig-ch2-duplicate-connections.png new file mode 100644 index 0000000000000000000000000000000000000000..d2309a72a3be3adfd493b16435597756fec37c4b GIT binary patch literal 10801 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¥XX;(n2K3-3i*O0X zH=)5$mw84Jw~ta~ef9OxROGaRHUMaWg%>Omt04tkG$QLJjpW!MohWMr?^mXPup`8;VkuyafjPDJ2KHJ0-FM={Z(0zBa-ZX3L>(Sm^~u|r99-@N zWcbaCIW7yEmv@W8UKpxsJ<$2iytJg`VYdp91)J#AJl}`J#>Ue2+efT8Y(?Lkm~a{D z6@QnNoBNd`L%SJBUEFR&KTw%`kkdO?KFr0+8kl4|P-v*>r1?xjLe|_IrN9R9R9s~r z=^yiXon|yzwzF$vUpw5z1&L=XC@3H}&5+VHmaPo$sa<*fWMzJSzA^CGk~@04+QrLe zu-Jd7MT1#RlQ};(x6{a%;v*t#(){te$F>ts!oKTtViy}40M{#*Cl>@~UhWP50CB8s ztJVGDUTXZRea|u_YT_2|ar$V#2eCuhQ@LG3C7EAivhj+ODFl9a3m4Ul{T$jJ+M^i+ z_wd*cb4RKnX8Ju?BEWPlciVnaebvO3*^eWXMumC!NLX)^(t2VXu1ii5ar$J^mzZN0 zW20>8g&Y_m-5K6qd4{c)mH@C;U8Zeg(i3U4Lg!YRb=^txRT&z0dfj3!IeB?+&%Lmw zx3|ZRWo%O0eJ?_n*K_;b+`}=Pk+@xB^P8ZkzE;Oiz88;?rnaA~h>Ok5IZ;u!NV7^l z;_*-1ynOUqNfKz5oe5 zdTTa$Il0n#_8Y&#JvSERFuArFyw!Ndg*6!Y6pX`g4vHJ2`QAX_MeMJ+y18Yw2CFgR zdhXzQdOdKOKr&!Ao&K)=?l=1v`EY|33Q0*xK|#SjZ01`t1xE!WjAaSt!HnP;?$?61 zr8*e0S=dlMJph7jNy#ryWx)qHhs0j~>I^p(n#GdhlFgl+jusD5xk1F$*u|*E*mVK|E&DXOEhw&bK{*;MX^df{P zi|3}p>%D}kTCH1s9MiJ-z*b3gbTpe-7K^y2*V98?oY<`^{75woMsfOFwg_=ww=w{q zjmx4Mg`Ycjjtg%o(DQ~ZWFU%#K7?u%K#S+Q-|Ls#IXk1PS;h78?IO67;WNk?Je+QD zATyK6r}Xef;vA8l>MJ6F7s1j1{+Wl6<%+;*;aCvUFhxbDY}HWs*x1<3cF2W>%_P#) zUhNGGuO8~%M+BKw6kHju>IX+4=;`SJ9jdCV9bB`h$bLPJ9nGwN_Nc(A1q}pKoH#w4pHYtTt$3mwq7o~r4&0qQ0wb1O~NwIwQ0qT2?qWZ zHG9N>?08za6~M{l!s&q+*T`odQ&#pfJI$vxmJ@+@2lj%tW;TsraDStL@se!Y8Y7k{(~*xP85va&KDD#LI}>FEu9kqW$* ztvvB~aKh0kk?P*PCnA&JL8hVJJ4r70{w+HGTb7&&(w+%tKczy>-1>AG#%CM5QJU z*a+uGF5Ye(HG?P3PD_(&So}QR9nTj0t}z*F%07`DjQy@AL1Mr<5_@c2%I#)Ttb6bAbDj5J(ztHl7EOTIr^dzI z5BWg;1M^M2(2|Yzc5rZT<>2Sf5?M$QSH(@g)s7@`a?{EQDQD-cFj~mjw%H-eFekE% zgOfeVu5J2zwpvQuadQ@et=3}l`^J>P4gdFW93tkJD3X$`mezSRO<|`s$#A-NxqQ7L zh~h{n1VDSHw3=ukCd4D~6+FB#6wbOw%wq>9P?Bik3=ECl!_`PhXZaAQ4TQfU01(&a zROlG5u-?BfBqU^6YYB=^!AMo3EpSLghq$$gi%6%Gi^QG48&AcL)}@X{ zyplFZ#Tl+AIJ^a&CEM=0V|%+FNX}1B*q=mU>xJvE5buuhJ_)iYGa$Qp1!U=epHTVh z$jQG>sQi77<)0^1{yxX@uVXKNon!gev6m~F6(s+4DyBr{gh4Wq$4hfBB>3!5r-F>C Kbm5a{FaH;04;ARPphPUsMN2_(`{ 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-managing-connections-box-to-box.png b/doc/1.manual/img/fig-ch2-managing-connections-box-to-box.png new file mode 100644 index 0000000000000000000000000000000000000000..8c022e6bf10b2208a9ce70edd8128bf31de8160c GIT binary patch literal 10113 zcmb_>2Q*yk+VDsug6KVJh9J?6!HgOudI=)Bj4>nHU`FpEqDKp&2SE@mL~jX#=+S%c zy?6e}x#ygF@Auzt{onf5KWpt-?|z?N_q(4Rtf{U*L~xG)000mvDavU90641Hb@-hd z*njPwfdT-4Ai+{rR#VOrV{Zd<0{|3T3*uZfwNI&AeU7Ib$yr|WJ~&`kGJ|Rmfd9W1vZfD^LRKD6{Bn`$xU3vo42HKscqD&Bk346 zNHmiUugfC50Ev4QYB^SZ*Il2COrUrGPTECR6qJK#F=oZRn=C{SAg$b6sjmCRK4ko9 z98LPo3{Ol5g~iD!WoysQ@@jH1sSAML9B{{6*znyQfIeM#KL`^1l2Py`0)rFJCk??z zESHrn8ojgD6qduh=F}LpXud8`pOdosp!V$Iu|pwLDPr zJ=C|2!~AFF_J;RQv=lz!+)aOELQhI}+7erd#tAp(*CZU7&~daAv!O#t53~C5_O;=U8y@Y?y6#cPd~bjP6;L%U0S+~1--|B`!m@}9o(2wF_774PuQEJ zkMaCqz33j5!?@;tkn95wP%jA@Wmmkw$X@E@Z$Wp0qw*r0mw6`bTSqt6kaINbZBW|# zcaJSHL_!rT@I{gPt8q(lLjcvu{)C>H%kb56yoaqlEn0mE8=nA;j2MBp6aclAYc@jx z8qghpuP%;stJ7P(cMysu)yo$+_-z2U4>yE-iTQD}SIo;B$trJX%n-hkrVYBSf`iBA zC&Y3?{{@vE$=>7pBgD@BTJ``2T<{F1D6xUGm?$3atNa=ENGVw~W@fm}=SMM1WzU<8XBVI{qkM8_;%=IM(RY_w z?-Q{2TYwzFQ@Juy?bm*ltdAA%M*9Xuf)#PJ!gPQ{iuAw2C!U-|JzXHY9heSVq16s! z{eegEcJ_tti=h|gFO&tq?~$rBOTtJ1=*_8L){DVnc0D|9Lizx;W+ZICq-Erh4aL!o zBVOk_=VXCR59jXMJBujW10UN$}Q+B*WcIIx@P?==-fWh>=fmEN=bBtHxyZe{_-zn7hOA}(jc zI>kav#-XSajnf`X`9zt$fFm~Yo+6E6gwl4_$B$)M8(Gv!yIDg@v5Jf_)ofsv!vJmt zVfLCBc)Qu2E*gBweTs7`5g^l-Q>kUfN%yYcoxxAHpV~hyEECHTgj5o_>U67BtM$*~ z4(RDJ!cy;QBXd;?RZBYY6X*pqzsTu(>AUEcZ`>Od9M%4EY~GqHly?gpl=x&)rXbTK zo48|k@nBJWu@dcu##`*}Ao@j`NZgh3Bi;5RV}|huqW1X(q6PiE_Pu~Tg+-5rR>}p+ z&s0FlFH}D%)wvG1fFWlg+$}mSwjr%l=adbPa=8RzU6qq!@4Z7k^wLVr*~shE=G8>$ z)aPG33n-k+jn4QYnP=n+?w|wVP59`!ZM_LzLV>{i|3RqSg%WuN6t2D z?D1D?tNFEiYg217hjnYqg9>0uun{;K>};9bN89(&5^B8%cCmDRS)akxn{c4xj$aol znVprrnE7BRuXn94u~)d4czEi=iJ6O1-05{kfp*{9O7EHOdtx$LUN@BhuqP zRwxu1ZpYO7d4IfOzofo|-9+4sdtCUq?i*Y-Bt3MNph>w&?1?Dro2Matl9@?Aic7*B zq8$=;i6};zhhE!#>G|j)>0E#5`R(H8>9J~iwram>zk5FpNFL-R#uw*4TA}#j|M3W>q8; ztlk0SLQw^-@XlPR&BK&mhwD4$ikM%s@EcQ%dU*w49wBlAHPCbs;O(wjxTLd=@UrCd4y|n0! zdEq}p^{s*LI}d@0PWg&_kbGNS4nNJeRJQG;%Rg|KPUDmv|$SylNq*)m4OG z$4G~IGi)9>zcyE2;y)6*vFobq>2^Weno=6LpSb>WvW0OLvK!*cN0Ce(LjHy#h1`Yx zEn5{E6-W5qUbIveZkA4tYW9pIEBdg(xjQbBsiK^KNr^md^>OgzQphr* z@cGtk?EBc{*p&P--2zi^abi`q8BrO#x7xBn%2zk*z#+Gye0>drv@cg@xA%$U=_PH# zCPw0NQY(1vb~v`v*7mdZk$XvyNLM~Xt}d0XR}r<&@$l;b$HB3|p`qMC+x)=wmP1wrvxo`t zHHWgV-^$W6o|csC(2BB49<5bWPM^I!XWSP5CfaAOwQcT3QIPwA&Z^sz$y&*3)h-;h zDY590SK3uluq6TP)s563Xm!r9PZd zm`dnP!)ts{?OLBSI_c29s&$SC?8qtPFDx_qS~up|wPeuml(eoUQ7+LXvVkg_Dr*=W zswqD1HE<0NaTV+__Ydqh?gl~hFC zaL=8`Q$ir|n&Yr%PvniA`qkpu@Yj-0CFvCz6*1f8wa?v5FTb71F1zlW^ha1Sb4XHo z>Yf_y2kd5@TQ3a9Q|M3cOe@#Zd)b}O9?$QZk1c$RhHk2xC2q4bn-QWg%TL+A6hy2tV(9TKCnR_Y4#nqlTSlfT* zX^`|Ggq)7D0|gzecz@13=K7@O+IGw5SX%3l`O1`4=*Ei)+-^GTSry-2Q6B>U5K{cU zZ~%$Pv;e?uW=kDCM?E!FDBRAL7iMl}hTwIzwZ~!u0OC@v_At0L!jZ)cVPT1q0B+Yb z09h=}C4kStYW!;UvWSM8;J zgD(`j{=LlyWcdTd(OLrd__sh7JvB`hSvxd>1;Q)91Lx-#WD$YzB0*pw1QIU7&&?vp zF9_lj5a8p7@CXP(`N2>yh~>{85GxREj)ZE-J^51{_D%x$($Uc#%E#y8;==0!;F=H zj&_)rcK;3Qzrp_|0P9^fwZCQjM_p`f{}zF9ly}CO@ux%nBQ{3I%^tz0g}~T3q2UO5 zXRMm6e_4ZYwfv_$|Bd=L1ny(ECxcnR_FgLni)bp%0Buqadr%*8JN z<>&v+)gG#5XKsmf`*&190UZGWr~nu$DD-cr*nBaEIl}&*$mVb;(hhA4!qAfpkeHg zjxI1X;<3da`v0SiX#Q1AEP`NOFbk&|3~q_~U0)CX(hmL-hO$6l8yFvu?|*I1|13rR zlR5t($^UyN$#)2)rzK*s_ee1Rq;U`!qr&ahj-i)jPPW~CUp>j%t#-BjO9C+wSnX*OR zpw;kmcZ2cnPP*2RO*;8;D?Iz04>yV!za1M`rW<^fw^hN{$R*W9kbME@Z+TrO(VLCL zsF2I-ov+L;@HQlQTpwRwUdPqoKBbfg0A_0KKi~rZa>M{Y5CZ@}3IPCE&;Wq+0s!FK zh64aZ-TZI&0YJR}i2r;4FNXih=U?}IuXc=PS;%DkyHk}8XyYinyvM0#eJ+2u*Rv-7kkH2I{ZlTl6XIJvYhFS z5u1?$v1B7_FGHov&O+v1j9f(6s~5D%<)JqML|Rt@dT{}+=)k$^cTkVSH7&9T9(h0V zjvEc@vCX5v=yEUeTiptzg%M(pxVS=>W0Ul-~hVHLTz>FU0I4IbO#6)pz_ z7H?Jr`ckb9w`XQ#$N|Y})Y`2OuGYc9!N$haX;%iLk>%xa=_(5gHw8_ap?Ijg9JP2k z^aO{V&A6V%ifx~?VOx8v{AFgnpJYH()Kdy}JKE zd7PMs`*rN+`il^SY%3okmhy8Ga3a)j`)tnsHiB_Ck1P31SXY{`iV(NT-2co z6N+cu2k_Pir=Mb3v06SpJ`I-Mm8@A=b+M78QeSM{&r0Cz<=zLY8Y(I(ii-S`vTf}O zE{TUer>JHM2Zo9FwmjyBgomP6pBqkXq6762MO7pjt+B5^zi9-Lykk+~WF!u{=o<6$ zWqIA8t}AOCLmtMH8azl$P)5InLOJa2igKgAm6bQQv&bHUz!Qp43Sb4fDyKW7mKMl@$oF@~qjrXQbuav6PA+FH7d;;#IBd>Xl0V?4zC&dg%- ze?JCr|=c=^78*z9!<(ESuIQwoiHZV7G`f)tjoyAs+}3UjL^IzR#=&cEr zTk}imJ!rW;C@4rakoeH?SbBa0hna7CJjMA@?fvH-gZgMR+R?Ey?^(OLJ@<6l^;P(_ zdrHPxog2YZ+}PNJ!GVc`v-Khpt@uWjQo+kh3wn!5D@%y;!Aoc7qb!y9ta~&XP0kcgPeW4y^0H8M{_%9`{-Ci>NZF5lJ{WU%4ogt&18P2BE{cvsQb#qZ0yuwa6& zF?!_EA~t0(OQh)wcinrdj!hX~O-@hCeU-Q?V(JSh@P$)tU7gr{ql#O4Q+9Q+$lO@< z9Dj9uz0nvCx1WnguB741uYeY_38VTrjrNeLoD`;qE<75N%7J&U7>cvoHV=6fhW8dE zBqY9m{Ynt-JeZou=G2y?W4;{6GrH0hgNU z5VLuT-*^$n#O=wn1UVAm$q9v0B&C2K8@G1?%=beQ%L(^U11iWkgOkJUX<3%Yy{eP? zgstdsv@}-(sl}%!4EcARn=ijzCAZG&mj!kT@6v9puCC&$nO_UL>|T~!^Xk`Czh$sG zVK~Td#m==KjW}%eI^IoUfTXG@97#;-5)V7j8Y%2D=GcXwz#ldlL6}89Ck_qj50BtY zX6Y-=t42G2`t;hdmNb}w8(cbB2}fvbEnK|>3{@kE4ovay6@Yz>u-xw{mq-mWuOK4w2t5lHE&_s0IV!9Ef=(x~E z)?qV0f9Ep4sAO}NHE^>RRrmlsO7y5v7SyA1IeT7BlQuZF$=2#Tmt32XVfM+-PDoZ- z>Yh0pD(&}4rcmIehz0rSXsN{^aJuRH(T{L?CMKqlz=q?g^Y$Le(27!SRD!(Wr`Y!5 zXJ%$*F3;n$rr(Ou!^gpmL(ZGX2>ZI@#p^hpdserELhc?7z_fBdT-8S;U5E#=;WG&P zcqQ7PSa3~-+Is>U@Cr*(uWH!Ht2FGZ3~p~($(o4VTipr#lBMVLx+#!^i!#LPT+;jM zR3~~Mh4<0fTth=-yLlsBqAdB@izRpaj4PkW}44~_yB8+ zV6MWF%`^ay^IM&9D@#H&IdL3=DrQPkHYoEKp!B=s)Y3D;kNZ8TYS?e<;?$^i) z1j-mZ0Q1(Nt2|pms6@>dF>a!+Cb7w$>q7=YH-*!%)DIm0x9T5~^_c)X8} zkEfxgz8bSGN&xpRFJs(lW4W$_q%6!gY%MLnEsID=O*4!i95{N);{BLYAG= zXf&SkWSqp=)7OPoBk{EE?K4-9aQ%kJ+TN|Tc=To>4TORtT|;W%0q;;s{u2Jdam0mv zs>!{IS7NeqMwfn2ujpF6Ctj?JyB>D8RmMLw0ZB|=m)AEveHeTJU&z7?)a{?e=Sucu zn0TvKuto3hc_71e55dion8-kyJ{=7kjs9D>_g8x+lGHp&NV-?Hk<4%YH~=PB-}MKUxL{1{AY? zosuglzT}*`S<=t|DS!N!Z}E^cj7Jh5j)kKir#sZP#am43lH7 ztwn;L8(zQDorDk7M?tNq6=Ev&{H2Oie(@%!SD~ZSw?%SZ3MglN(bm9VN+Agl5MGVf z#*Y$wVdjzx=k#}|G}dz`xK>B8kNVrMfl>{pOG%vz7HM8@IHb;2Sdn|q3W1iPwo|oq ze3xtaMeo}?;)`ZTAF{FO4Ugm7lN*|v+HuydV)iCIoVTay@QUINbfU*<)qNH0iRZXY zYH5Acm6a0(;83PFJK0)VTAfmjzkX@ie7SDKp$^wJIODOcx%QQ?rW>kvsq5i*6pz&8=W-8SO7DUKhOfXl~lgT$a&GK*`xZb=0{dGR2siwInlCX~EtdWR%>j-awe( zt)P3`t>6`bk?#@XGP=`)RyFg!V)WczZ-UI)0sdY;#l%DJJ3a`Fq zGOXoE7{r_-(cElcLhxd6u=Q{u4eA}SyMf~FOpJy)D`>A$Dy9wCg$+! z^x>B+?0a1nyD-nIvp2Q#J5UJXm+`IxZnuc4`{|4Ovn-?bHrMC3zOtKy4iiPQ?A9sf zr!Tu4)9M!XTT5P$3B6<5@%g-y3({;sHBnOwvLPwO!PUJRd_QhsVnN-5?^El!DMr?vk%ou&TMUN z^2D?Yqb7nt0UsATe9l%m#M1`18}AR@OiL+opA8q3h@&5Tqa?05r}KOz^u4^D-4MQb z(B6})c&VMEMSE5=$h-Dk_~7i-?mCs#C*ALax^^?vvHPBvq{QV(>s^y|x&2RV!CCJp zd`8vI0~4(ef)k+yJ)_?l$v7fe-I3bNs4M@)pbxj}>_#7|*mpYUnl^N+&biVnbhzr7 zzjf(fqH$OU3kzSJG(}*i(E+eZ{|b49q!8o!!H{p<8Z9XC3soaTkVxGk#?W zn-?1_-b%PZo^Utp@wWqbk_EvzWvA1a*nK{e{rdCOl9?uMlm}PIeSMY0t8Rax>(Mu;}dU#2BEbso?DIHEiF9)US?sk_&m zCe@=F`|jOL0}c+(ndAr5r+gAZ!X)TmFFpYQftni4ZN6q7LPCPGBb)-uDa>`Po9IaQ z&u%MQOEvE$IuKX3hMbh&b^YF&u9Q?Y#lmvGDH#O?e02tlx~M!%nx-ymKZP&)pz>pJM$wNLnR>^lekW@QPWCsDy-^ ziSVhS(DEwylK!ZVw(RP`7DtU^&C~-^ZSw1^NW| zY$v~PNnF+)Px%~AMiFkTYil1P%{Rs?G`Npil^*LNbzNO65f!b1yPWy^ZLh1_wlWKB z^VZi_&P7aB216nZ*U+e0!(sZn>-%udAt7S|Bv2&6DJ4sLwxVgKhiaY$O z92?Ak&g`)vKpe=FC=cv=%P6)JxZ#f%&Q(@XQDjm#_MTuisCr>TA4x_*xiJc_oG(zA zq#!2`6FF21)=y!RZ2;{8`wCbWKfCRg9;my|~ln8CWvSr)To`u8;+hlGd|lTIrf?I>U^4lRq>nrwrjc z)N|MVfgIkfRALho!M=E(na5a&VYNj_SJmk)<=%!MD}A2Hp@6a7@8;>G*UXN6K~#Jb zVt=|<&TBv6nw%|cr`UeNh; zdln;te~zB?6Z*Uj4xe>6WdY@oyD`oR7q0{@&rr7EUqG70mvZ87E=RKAyVFx_?1Geb z3|RpeGhv{Bb$`jNaJe%Ys*I^D_6Sl|B&qaGldP%jQYAgHw&w?hQYIDK1a4e1ktrla z42EAxUfrh#uo(SwTKa#DQ~$SP+27;Wzs9(tg4ZN7O0`@U3XI;rzdtI;tIHM2ymh($ literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-managing-connections-drag-fan-out.png b/doc/1.manual/img/fig-ch2-managing-connections-drag-fan-out.png new file mode 100644 index 0000000000000000000000000000000000000000..d9a245c965a41510117d4f63e2af9ff24b7337fb GIT binary patch literal 9733 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-managing-connections-fan-in.png b/doc/1.manual/img/fig-ch2-managing-connections-fan-in.png new file mode 100644 index 0000000000000000000000000000000000000000..f5f6660ee6640392c58dfbf533080751479c36da GIT binary patch literal 16071 zcmb_?1yo(j(&izM5Foe(g1ftW0t9z=cXyYBpb75o?yd)d1b26WySvXO_rCkfdNcE{ zS;Jaqv(MSRySl5ZtG@cGgJq>f;9;?0K_C#kn5d9E2=s~txbJ)W3b;1A^EZJ&u!&}Z zg0ezp4z`whZXl3oPidTstimlukI(h8BMQMcI?@X=QF7myQNehGER-lvX4m_-LuE8& zztv@tA)G$uQZ-NsV+bSv3ej&r`Wp1LiVnlFpat%o-Zj|GrzO$F*qbxmW9wmt6L`W!6$kzf;7?#pa5m-0}h_cC-&o$v*pro^U zseJP<&qD>8+FZ~eiuaqY)?DQ9o6$S&!^j~_AOZ2w25IF0+mHphILu7QEKi3JRFj)q zw4RZZ?cJ0LBo`2aA?U3kn?}rAkQ!F#1T$x_DJ~PFkpo0Ly#ObS(RNMEre=(VESr$S zHwu|4ldk7d={0`yZVB_MxnPtu&Vd?ao}1kcMQ4N?9}V>)*SbKy1TNoRa>M@Y;{)%0 zdwv+WHAp|>#F5nD^evJ~nHw61@g)P}#DS}m=mRPEi}X#XR!j+bazAvoffmP+Q8f%& z#K;SAq()|wMB1c%YH67Gu4q>pvB$-nie9zh4H2kedw21I70s|_5;~MX(XDNmmZhyb zcd_BLxTpH_Gqor%mY5!2RCV<>@F>B7bt0Rj+RhCx&4F_@%2O{OIVYZhRW)iv;xevl zf?1H%gLxFu-rA;O1DCAY%g+Ss20}tNln(!Qdi%gIFp+zEy|AG4gqV*eS?u3MOkg;S z&v)at;-*28OB0DBzaK+)@1ZGsMt;eUB_0%je&RYXhM|I_cAiNz7%`dOf_#-B1bUpp zRAV?%J0%}=Az*qzZW*swd=VI+@^%dCej+!#lKBnyRp5Ql8wm(#k}oU-uhewWRT0lV z63!wx`^npaaG+R!Q*a=t3vhEl(|s-eP1XR1_r;q5O52a|1X)r5>02NL61@Bu7DC=$ zsH$)8BbYZ}ZUqTtSf|V1h zK~nhkrGfaP=({N2pa@n`2>Bn1MDU^?#zPlB-$lx8z`Y5~)Z2Nl@PoJ;8Z~THS6O#j zw@z1_ku||s5_5~q7{nZK`z2R*s)9@vng;HJzf_m8-g)J(St?7^t5;Wa&TsFL13M|# z-q|{H;A^tbVb!D5zph7|3F7{~{|kPt`_#1sb{XpU8)8TGDb|hWgZ2ZmC-f7B_uJ=0 z0^v~-Rg{*uj8G7IkeLaxA{>GZ!meTo1pO$NK?q$0MDYoNi=TOfEQyy15Rl156{8^f zg3&&Ula-RkMqrC#iiV3F=jPB%KDM^PQkcP zvP`ma5GL^hQ+Ab*nwOf3THOKm9Mhaa)wN+yAxqI~)}W-%OP@-!wet`LRyQv;c{UsD z-Rz+^hX>%tk&+OGQoA#)a&WV>GT{5xH{dta⁣$&qOvoHhR!D&`QvW(5le;(WI#_ zsEI=ELTG*|{;~?`LBB_9qbj6kjCB=Hj>V3#ru33e%ReX@RG^c!R%|VPQ1UNZD~!sj z63i9e45s=#rRo%E9=GQ`1y_`PzOl_Yygo>s;NrO~$f`P|N-JcQJO8oP!hC%XdvAH~ z( z8rxB^h2TTQ)yZQ?moSH?sm2xI0slk!-LpZZp4ff$&ATYGE=glNy;eJB7t}`9MlX98 zTb)DiX~@%)D~gky)0p#j*EE-&d%1_PJ4(l_TUP7f@%s|Q>7Egjz!Ba!uJ4^iMxnR! zw`Es{XTW8=j>OQxAm`oLbO6~L*ha2y@q|I@l^nc+SFt;TG#J4dV3pv2Q93& zV%?5#kZ^BN#F4D}PSt4BXt4GO_oP+_o+s`1Fa5$@rAJLc2|)=!O+|4b3nOVHK_?GATe{7C zsPE(JgO1|Qh00aTm(2T|$CigYzBVomvjIieqd)LJ)-z-hPgVl^4{^s1-3H|OxeANVYPEY8N|r`6NhoRA-< z@15tK3*TO|aawboFmIVWjqoOyvK=oyWczB^=8m>hG@LA8498KosXoY`4Qxz*E9G6V ztUp`{TcDd=uJ1GwkwUJes5iAW`8m9$b)ogTneRZm?%uxA>GTV44(}T8Bk2=qsfW|G z^~!xIOW}oeqK2A5qx$XEnaq8|z4f8X(u%FXqrmEy^0qS{u+FO1m}a4lnkSMA!};&; zg2;hQh|CBx%7x14%3kFdiq|vWCLO2dr>3V1r>u$t_kUdyi|B_h^6c5w)V9}TX314n zp1kKED5@T+EZudf zUMXIvoga{QWe#0H_#K(p2^dvo#Rh9QR&MH=KUu>G}N6Y%$kg&$4cEw+80*23D_-%OjJ^G1{=*X+3!vlb*>h zN6y#-Y^0wy?`CQ%3o0|~v+ARd>snOYbROI91h-vJZYILb@X7hmJ(X`Y&;3tx?=3cF z;!)LBPFBQQKX}>PuU@a88qROzM9}KXNI*bo*?xKjIxd395Xx4EnEI9Ti5u6&HVqI$Hr)XYsC^$admPfQI;oJKmcM4oPfgvIG}SV3=c%5Y5rTq+Hek&) zSD$c?Kkxdv`Pu5o=UPDi68}kunB|r3BGfPzfK_2^Mb#WYAUM>Q4+JPFKdCsjx~h zNZAS+nVN~Z+Z!pkODh_JhkFSz0@Ax$+YI>6Z(*fBBi7 zh~Q5XM+;t}k1qlVRHbAI1a0h%2sr5&X$=?{m5Q3KS&WPg*coUDm>8It=@}X6 z88~SfnYb8OxmcMA{{ABZ1lk)KbIA*R{#zXIjhD#O(b1NRp5Dd9h0cYU&c@z^o{^K2 zlb(Tzo{5PTXhG}XX6>lwN^9*v{I4E_j2sN?&1@abY^(`hdeqamadPA(0tWlnEUaw* z>DJoeZ%qL@qj%M_rDvpLc$w9ohK2_Jw6k@xxBMgA(16~^(#Xol+R*`M%lJ=QTT>fH z8wXRH|4rBbJpL~N0PRXi{UhVwj>XFA9}y0Y!p^`n{#MApZSA1wW@|(*Z{%R(WN%<3 z>y+hGxcY|FtO-yCM@a7b6=NE7N~z3fPOGo}=FXwXvZAm$8k#l^!rv zGb=q4BYInF6C#3t6v!oLV`*a#2nI&S{AUzWQe0xz4vu=(21a5+yhOmb=*-Lvxi~oW z^jVAz*k}z|^bKiQIN1$pIXMm4X_@p44D^_cIhmL^|C$BxzL1T9)61Iv>wUwQ_t}_P znGHBOfVcFSXju%|*l9WSnGI7@1i)7}@pyC11wg4A@qBmjCblysQD2teLBk zrK*q_Fcb&CczKCf*;t4O{^OC_e|p5k!1(tgB?lvWK^v==@$(WX7}y&DZv)o&vK#&w z7?-G-gQJbT+u!?3!N~6KJ4-WyKQ_gsXYjIDc!?bJoQ({L{{GSI-|6&!q?5lobul#p zy8Lej#KOh=k5&BD%)!Rk(M8YR=%dM>@&DyUWdF6B2$)#uSP3Yk^bE|bU-lQ}zeZHLpO1^uq+gf(3gaxj@c9)*v)V*X{7@$I~fQ0ZMsv#iH&42#All;*C|$jT#)` zdrNlEE+_Zi55K49+>EahS9q!&n$e^tXn^P=5UZR0_T_)dODqZkg4SObklhRK^5;Sz z4cz^?fVyCSTVD={zb_ypa^U-)3up}rxczha)75|K@Bh%%fAsh7yP`mmdYxzV$*xaF zT^~;AF0jm&M60RZ5mU?EaJRjti&L?2U9DgGSw~&sjmI31oIX{I&)j%^fzRut0v*8d#vsbZU_J}q*jx4QHPr3!ZXg^lOTq2=#J9oMVsE2qlEKYf?o?}oeT&@ObuZqI%g zf;vM4fyA*%1PlVZu`l63roC%Ig>GuH4Y;yxAm0FTX(xeETK8jRh+~5hgfy~>up^8X zX@&c4X>pG+Rmj)&=Ub(v8g=&k&I_buBnNZV+_bb(ONU^m^R4MpjYdtnqSp2h)Y68n zqgn6v;m`-F#cr7jEBLmC9pZeEKo~Zf)#vjVW%DO=4oRVdN2BZvDv#at>67mv7HUzi z{5R5-9XPWIdp0>Me4e{Qlc{XlJm+kN=2?Y>@$ITT^z_owB+~fYvgodk_+@Ls-YRtE zYSnoK4XUf8Fp9z{6u($!W;|b;gpJ#?7v^ad*iFopE>N*Q!&>f@-H+#o!^YUfTC`qZ zz0Q>^yjA!BE0fy4zP|5pu@hcojc2Z0da9$^VW}PBgydv|F?@3Y7glTZl=kb-f^P%O z<=_?JHFgpCQHt*>%7rE^C?plCl=!tejhkxTnu#N@D~#PKO&XaM@s$;q%()|Go03y6 z)B3m%P_<{2wa_&!Qg+_nHsXtA5`=HE_--5i3J*qVk;cpui0fOK#N5Oo=LvGg?cHCD zv9M@|gQsxmJY1l9&z?a4!2T`%ra}KM^UKBf+(Rqww{3*|K5jc%0t-pyrPIn!9=G)m zuQimSS~`|B?mvy|8UDo(zH-W z>v{K-JP1p9ejKQz5>;EJ(s~yfo-6h^?6m1Ju^m>q8mW7F?%dLP=$47{`SnsxYN^}O zg=>2KHeE`;&v}z3EF$qh88y}RaL4{x*Nhj6%!uR0HPc$+2iyFx-~3X#Q+eJ>=>-K8 z)YQ~IKF?FdDlUifrG;fjw#}=JZuo@(EiInZ$g8WXySuxP39%5$^x7>kGzA$M&5+Ot zmg6~v{{F%O0=|Z@{ErtCzX|>P-(fxMjAg^_Lce)4oW|QM7>FR1%yu|ey`AX?jc#mX zNYasg0%N zU>6K(XlN)aYptY|l*wSiDHn5fQPf}sRraTTC(X9XO2j_3va+(fyE`^Ewl;iT@vMcb z!-Z&fWPFGHEh!5N3tnE{DzE;@!oUc*9Cdr5;CAB9gN+ZDbW-)#pnhhb_nX zU88@w$N$1!?ZR*hr2rdmCMA^joWGf?OeK?58HU4#!WRe*qrS_d4vinNDFHN?poArzZP~&?+{PQl0=&!;=aA3ZJG}2ns3SvDRcPLasw)$$5Pk~gJ)rsl>lIL<13IN4760Upz1sqAngY6ipX>#=wZ zsUTr}T9Fzj=?hWtjuwWIh>D>q))$-hdPG4d#5%I>vrqZiYAcEKq1{EJ_li^O_&M0d zfVu@;>?uEdqn6p2_D-6ZIFt+won=ywXI3@Pp*xQBOK5zb_ttHrsVvL>iga_3XhzDl z%O3A1F)vSkuqC`y|M8EXbLvP51yglk{WqdY5sN7)y}hC`G9xJ|I5T!-T=QJ5t*xAM zb8m*si{9W`(PCnn*aNuE*tpegedA!z(q>vx=d9v%y$7+rI+;PQPd zOz=AO{0Db>8X_kBwXR??GO{r_xs4D)LP9Yyv5h@^aru}U2Q#s8_q)4G)wagQj_Tz$ z9~twLo745kNI5tRTj{53l3n@P`S~cwPhb5+<`-NJX6=TOSj)A+T&^d-J7-nL`$k78 zoS5x7^*BA=mU9m~;ZQ>3>!hcoSOQ!+B0e8U(dSo`@&rlP*!d%AxVl!U2??S?(v*bB zSv$Q{$n?-lXc0;Zhfy_(5Y@Q_5nHD@QsyDJ$8ZMLn}_?nuDEK8>Fg(oQ|L#AwHtDd zzdDB>hRGK?k6=mI)6OxhNe)w8zx(P~J>|AHn0rXnqoI#I%rERyve@>xr+ou229D*D zA)T(DQ{&-yHm6KQ2RhuV#M=8m%t$>(VH4iAIjReYcbCAp#8sbs%dK`*P8E0HnD}BM zX_rnGhu3CRTG1agsMt`J=q%RMkTOul?F1En;QpSrHE#50sD!KiOu0GHZZ*5jGFot` zw7IyM9U2D4S&lO^igSc-#+mc@U9{m$xz0!lN+R-AUN&{p9DdugblnQrL&ZM3zMg#! z&>-O{24A|4*3)Kne8Jb*jQi-@;D;szUYI}WUE6ces4l*Fxxufdkt8 z^u6Awm{IMfeiNIG<59T-CXYFju#+k#@#`px6E&v&J>ie)uv#~1m&Xozc*{o0RN`?D z3KD4AZC!(L0W>Huk;9~F1S~dUo5t~B<=wwVF~Dl6&GC2#Ji%ZS=4ZPfKi%vb$%Ay} zs}@2A)Eu?c32+`J%|7As|1^OSC+9actvU*%Bx6!Gdb5DAJ6c)8k;Gyq|6QYDaZ4`y zGouCIQbodW+)^Xub_=M)9Zz&KlMk1gMPy`LMl(L<<>gtjX;fPMI7HH@1anofP%FYC z8v9?(Gh6ssT84?wF0{CvZ)|LQ$E458$%(N2CZuRc930($Uk*D(e;zd7J1Q&aw)gLF=iCv(iVwY4?4*CmGPv-n_OIp{|jO)jyFK{B{EnrV<24^vK! zH2U%5M-oJ6gd_TBLU9EJW*!>NsdP@I&m}}vD}GbM=tPvx^*Q}-h`!Z-NGFe7aAL}4 zb2p2KTj~t8G3fqqPD)Rt8W~O~s$Q49QD5KR9gVVdg@1r9eBQ$3VRH*-N!!3ZeVX05 zbA3yLr{da)hB*6-%0;qnQ! zU&1tk#LC0m%F+nb?8&kBVXXG=E^k4~ekL`K6tBbcf}Yf`Y7CVVKa%i;lZVzNCMLSM zxfvO@q;WcssgZSH;NXsIN5_EX2fur>CC-KE->)-W7e~ zy2_@Cb8vUZW?by;-C1frusoyZ<|Zfi7))SPhAdHhOjOuxvYAsKR!1FWz4j$ZTHa$V zIjh}vuUg_b5VWlu`-4OsdrIH6HozK5i7tFiOmUz0wfkMk?|k)u zQh$vrOAMiaw;RJgTGQnln}t=kx+D>#a*9!1EOFm@I`j)Qi%Q>7TQTaJnOD&889X|F z6x^y43q_7gma`Ci4euPY@T5nCBdmf&u7nxr>h5mOk+O4tJ(9}XY_r1Wa@`mlEC!2{ zVrDg|zFck5^m^9lDh8WQ9X)K_&2?vgpWo}Q#>ryU32-wwC@A8EwvSA=`TQ*r>2W3I zD7|%-W;Zvd(Ci)$svNn$Mtci7tmGO~Le)Q*nVMegp3nKiVeb8O-E3_YJ)$D9qT3b1 z+z?v{Qn3y$3ImJ!WR=%4e5-QENh2LIqlC3Ap%h=H5LO8<8rL2(R1>qhtLUZH%gr54 zSF3~{u+IG8{i;a*c4tqayqK}p5;QbCBB zqB*8mt#fTo)~9a}(OF%pU=ndW`iTh%Abt)E6j!AcgzQd?Hxuoa`j}ZseWDN%>B-62 zh>1b-zw+5UFy7hU&CfU4*xXi9@KxkI7v8dKT#SiP1d!e5#JAqw-czxL-r8yAlk|`6 zZ3R`@{z8d>9kCJ!VQuTT4J9AtQw>Lt~tg6jV+Vd))NK#U=7(zkV0+!pQy9c%$A6FbR$XE-ZE}w-} z?U|RR!6DT-sh91j%N<8>1x&cJ6pq5*RNys|M29Zqc5pZr*hE+5a={VuHujLBsIbhC zyey;@-z*Hbr*Fe>I!v>%034e@e7NQ|ZU zlZp5M!|U(U70eT=ZO5ziOlVJO>ew=m*2MwI#5R+dEilY;kO8uV^gH}A zW1TpZD0J+Ly}@z0oyw6TcNe$kBm7H?i`}6gM3PiIJUq@+G`sPsg6L*0$>0@4P2U!F zB_zDB!p6p?N?DYw{v3u=n49Z#bF#WWQznzZ(td$DkpPWoz1T2TuET$t4fh(0Hvj$g zZOI6!{;_1YwwA}eT<%p|KtPS*onvBu7(V~gVxvQ|^YPw7{mL&mOd=wpBGJYXlN=J0 z5DEJja2fz|rs%b#Eegf0t7kjcm%$zmTTMRKOXgXH9#;p9EG$WU2JWx%i_h2%HR`NM zal=|4@1pc;aG5r4zhmZ0r`kI@>XVHXlyS(#5}7uxSJ}jw8Rk`s4tN}*1iw*riK^i{ zywaoiA{A>h*-saZBQj#Y7Q8S(TP&gDixypGG#S^GQ&Pcw@k|FB7?r#y$JRMZ?L%>0 zQOCw>5#nY}VuNxXS1Go!;S$#BEyj`MRzIj+^e{3lQ7#|1?Y~kfrU+F3J=K4j+YGAL z3$6#odKR_l4rt{^$b%#2OZc&ODxLt9Gak*FtmT7lQRs1)=i=e16&Wukz#3<-@2ZR>CMG7R@-^u%HIjUaE^OvHpds@m(;gnuO+K(&>un$w;;TbbR%T+4yI4Frc?J$1#~0!&Q- z&JBvS)!9k|P4~-prvM_6TzR$mSp3XL3K;^V0%5h@y98F@p+n)vBFfkmM}bNTh$V*O zrlLcu2JPv$`}K50`9;med(7VA>`WeVZSeURstxU#854lB$u8 z(arE|k~)<;2_;v;Pq(O)r{(FS{M-u37e?uCwQIrMX!Y7>^cHs^RrRaWcOPZCB$I#DWV|OIBWdP~0 z;YUJx-md`N<%`njd^k_f?Gg|exWBi@CJM={W8&Ssx6oF$ax!1*FrL#_a0;udiU`WE zCm|ynPT@Sy3J(WDUuU&60TK?6<7icWZf2(5c(f1&DiJxz7yIOBNrRj`Kb70(X?(tE zRSgptoj0AiO$;@4p&rsb&dd5ef&D8`fwN-!w#<9}v8k!4p~GkFq@7l;o>kk=+*~x; zEgTdS@B5(uimm`YO(KrXtf<;*p)SA>AoiA*moa#0SXfxnNXVNT8#A-`VFNBfprVe* zP7&+H8)_n=tVI)nsT7fLyhz_dAT;ew6?@%Z3DXk4$V7EHUe>yQRDY&cdH3!ec7U+k zt(!zV9WI;YdzjdcPT~wnfbsK9I(@i37mFrK<#H-=h^K?^%$hKfb~&ErWv2& ztEtAdvL}MjZ+&fTzRv1x(82 zc!%}XTfe2wZj40?u?-)v;K?N3D!%oNZx%)}StqRR44vmY43-vx%bKB{cyQuh>&_X-h>I(! zbJf(s0vZac;JDoHL+>mIFk@MX86{NuX24!+%qD<2nenA8r8KUWtjZeSCbpzuXU07kpWd-nUR+DHZbG;q!Sex0EX}2j02?+k*Bb zC=DiB>*?vqk^v@=v080DRTLG4LSL>`ln7=v8F6N29~tTklM%hyO17D`tocR-{jwQh zx4MGY`S|$cBIS~ju#4jAf%NNj%4;<>HO!Ip=ke}0vHpN>8l`B!#HjPU4WU*ktFfGt z&t+1+X|)A7ifJ8n?r^)XR(yD)7YBt6M@dPE+8usrUN%~W z-RjoXbn~?dwMvO>&DyRqiTV zmfQS~i>f8M(mQBzTe-Qtt+iSx^LFUiw68y&{g{=j4R$9b=@R_QPAP#@j82;F{`&C# z;e2GDo&3v}FK`$%46Ll7Awewn7Yd5-FH%JTrPw(+rLuZVcZo&sF@7-HH3KH|4i~ef_A22+&{q@xb-)ECe7Q zU|{s7Cdi=xE9E%ft~Z^c;$Ug;s6Q$|ep&rWhxPKdI-3Q+p_Jw4t6Zy$^!KZS-7l4% zi`!feQ<#jXin2d`ec2M0B;@2W$&BkA{^u_)bX{VC#p~uo?>ioE62Nq%q(J?V3i?!4 zy#mzK4`=JFe*gUFNGcG@UA-H|!=4vf4$0yTx?5YY1L=P?9 zPR}+0hFLm|YpztIo~r@C{UA@VoP?x7zI#vt8X6ive9_RjXk)9+ zC@m};(vMEHTn!ipX9*w5&u-$+xA{Et0U?o}KAdJ|pj>$~U}xnA)74z%|itN28kbPCf*%}dw<#D)-RhEGdYEE~|VENwz5aF)7fMyJ{5tdD%Z^;x^J@67cf-Q{7iSw%)dVxXbHl>$`& zu)T=5L+-ksU%&jJpsCsBxLuBHIZ|Z!7(+wCo+b|zVwhiwmN}byO3zE$%|t}R$t+ey z1uPR2%*th&Sgz!{BW1j0>nB)F1hg+6@~xPt=uO*m^5**bM5Td+l?#Gfzf_u8x$*k11}CbI*1PLunk5C8Fv+a8POXWU*Gz!#Yw03^!J-tH5? zi_lIG>bq_9B0IprdGS7e`vygUS^y6WFhkB^XEf8-*SDgAp~zV$51?Ax0W`+S!eYJB zG*_%*gGTd5C(+z4uK3{3=}z`ej{f{V?98Dr%MQ5Rhx|9aSnrRS6dnz-HeTmJw15>nbU_pe|Q!1>O~)#DM0vMY^)|(8=H(7 zdQ9hWYqBLIzf_tBLi!s7oNrNoOeutriD-Oc;{43WM^I33cZ7NW7C! za?d(IPi2UMBKn<-JnNTZ`V?wvYNb;+2#4AiqoM#aeLfo~+oX;w*Q^AvDcoxW>`xnA zU6NJ(X`Ut!Ain-MT8%Vb9}Gu!(Ih{c<(9rxTN)2_K3Cf|g?woW-cfA%N6_fBcxQw@LT&gA75KBo0Y0RngRZ0FdI%jjK2; ziA;{LskwRoT?H&i7B?J^*FJsUdv`qd3U_|S_I-HILZgGp@iLf}h6WWCB||a;;X!CwF=Qub@ZHB|3V>mL!K}Mcy#5kUV6!=2n{RwIe9ffCe zd%F#A_K)}1gWdE(^c;~->aI^vKSjK9jGTM< z-P}U)`SEgL6`_A2?nefRsHmvu2r(lYDp{ur!b1??!(q~~uvlIKP))H>MPTCo>af1% zV64@v`On^vWsPAi$XKPAB4P&YxZs2JQd8}1&yY~c#pNZ{fjc0t zXsY<3{N{yQ074f9bw<_XujWfpw5dXcd^}$F(O7}kpbXVCJ}Z&WPrNF z-kuNSKRkGvrE!W4Pjsg6f^q`$UPqJ5RNAcsi|v!$SoHg^?6aW>X}- zYy<*n`JXMcUmuK?Q3^#DRNGBH7X&!BraUkd=R zD(?+c-)?H@wR&MBGrcuD9)VXGSC;cNlyr1qjyFLjyzUnTK-rrDbyPQF?|>5Fyw3h~ z;R;A02kvI0$&Dox7174nP&^`ggTLtjPS^J|j7%!2#%AT|WVI8pUkW6UT~VLL#{2l2 z0uG4HTI*L|K${uPwE>@e<5}PA>8qAkJ#B7o=H})`wncsYmH;z^BbyNq;fmEIw$(() zGy!BU;e2i=KA5o41Rw#pw*=DS$E`{UZ7R23?&$htlc=D#QGf~TiVm*`4g!a31W3CI z18xep5-3SGSNxz6m>xenIGiUko5Zao+XL7zg!DjFdAT@jvBiy zC4#eT$daU%l6mk6Q${c0D`7$%^VhFm)9bX7+;wdP(nKg#RrbGR&z3?Fvjgqzm1oQJ z{0B}E#LR%bFI4D3YHcgJXdxmZ%98(`by7=3Hmc5s0LYA{mJY~_g%3`ycv0r+1e~IbY+rGYV)jjn@N@$5l4zCO9G{g2Qf2$iTorik4PEVFHWU*s#@GEA~m2 zbs4{E2?wa)C=+#bb^?rGX}|03S?a?=&hC|IHKR-cNu#T^HQmvDz?Twjpi)g1aLPnm86Vr09t+X(ZqjEXCN_3+ zZ*M-!&EdLyNu$mb9Sh5Df2$NgwGycO{=(lxgoKbr7#SG}Yo&=!BO)R;atvt??MJB0 zzGS?4B(#f`+{-B~JzQJ+)WoAkl#-g7cu4ZY07DcH*hbtyPG>xnq*AVp+!GWU>UFV$ zeBS(<*<{%Be25*$P39}~I+vPVIB^i>5~8C!Q|?bz1=nnHn1z3gPfn6RM^ANi39WhK zgXubf%6TxmbOOUF05&G_q&%J;IGGRB1p5brNf3e5AT2G;P!FK&HtchF`j}1`7w`5E z){TaO;~Sgn&8I?Khe|c@Pnj42BvpK1^ircokkby>JZG|xW-hPtk7w;}&|VFHY5_kJ z3_v5|q8+20+{%+hrKWanpLP{X@bHSs*F##XaFhVd975O>-w&&arci_2U6gTwCY~H_ zH8<{E_Q>Ywi-d$JfGcEL?kGVCB=pc}^OlOc_4M8zPVHO%{ae?Ve%Cy5YG=pP_!2y`kM72?EP_#DN}`Fbmi{qf{4r)|@(K!xwEq77Emdnqt8%4WGC?O- zR~YVd?TFgl@$CauZYbJYeXetdMJ*+Fl!&ayr8@M*2XH4$l0isJt`)SuvaXIEmC6g3 zGs@p2CMC&Rn)M(iv$KnOM|qxh{ECU0ygr5#eHNY-8yqa+C{j5WBn^Q{NBb-(DG7vN zz+EOz0Suefa!aCR3XhvTpfXL(l-yjS{pnKw^&HEqpI;!KpYCn8M860CRydg>77ZNs z3G(3SAx&sJ?+9`kwNv!+MN!*4gr4`kfx!cBI;@LxTb6V!D!H}s-`BE4zU(J_=;IpfXj#} zm*$FVG=d-v@TJ1@qlwJFv@vM>;?-13H0tSSXe2uZLiWaR)WAPB@U;U>q|biu?l$^% z28Xoz94*dy-CsA4ILSzg-`%_?mf+~fC@+7$*o~epU5KFNe`-);v8k=X81uwy3;0L@2p&QHL5Qk9A~#hY#iRy3=g1{dn|Fk@HsME`}5r zkA)t!hy+TIGV5sh-Ryc=aK)=yrbHyt7-W&W; zLgRjbzEo^`c&wd}l9Q8^bTd2OR-$2pq4-Jp2NN=#&Q-Dfx1;ls`zY78CP%*KhjV~R z;XEtJ&lkB92mBX$oy-1osH5Dk&bOJFnS-C>Ow$NqVuOey>CmgMf#TB|D&Ww>!hhh< zFH=uASqSvUeC!NZd^0^wMDO4z88<%AKtx|%r5_XgdwW}@6o2Z#h!Kbk%4?25g$xFj zEQQyBjE3d_FfN~^mkL=M0E@*PsDGq0@SRBi2HY8N=u7mOj)>^1(iCbQBOToaADIfL z`^65B(^DTf*Tw+w^Ao`0kgr|=lmu|Rq0!^o+N?~2c|7MG zHdU^+^A*jy5xY3J#7|M1&D&E~SD3!|$ACyn$xBp{)resX@15xp!P$sf4vCI-81#dd zCp!azw_ayJ>vU zli^sGDNtcFfN?6M!OYA&P9&Ok15_Y^Gb`GHf(8ItF%U;f-199k@cVTdzmGQ0Y0N0# zfh=aq#2mDYvC((;8H+LLwb6v5<8vi%0X9`B4sQ#Y)pyPvIAa9_(cLeD+TF%2me4Kl zwDa64ZX_DkCVM-8q<-1R%8ewgj z@xRE*s&9(w63ZpfY5}68V!cam1R=F@NrBWIK(7J*G8ynW=UYPn3%Wg+D2Vd}6lKgO z2O*r$$X&5oN+7c5-v8J*zh&j2@IK#?qMh&o0w@u3&b7Lx=3=Em4*;!JmtTd#x?%}z zudlBg=3RovGBQV%PUQQSnW%im# z$GnXx#J=2>eY-c4YFI62cT)9P&hafkQ-caL`QHfx?f(6F<3ER(|NEiizm6^g)W-kt h{PO?pD6|0h>^bFuc%FW!#O!4xV#3lwWuJ7v{x4o(dwu`_ literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-managing-connections-fan-out.png b/doc/1.manual/img/fig-ch2-managing-connections-fan-out.png new file mode 100644 index 0000000000000000000000000000000000000000..ca5d8184ed044ea9b109d081e58772f666ad9c35 GIT binary patch literal 17966 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 Ngs6;2#Yer*{|jSLLP!7r literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-managing-connections-one-to-many.png b/doc/1.manual/img/fig-ch2-managing-connections-one-to-many.png new file mode 100644 index 0000000000000000000000000000000000000000..03fd6a96f105f1081607ac470219a471d37a04f1 GIT binary patch literal 12422 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-managing-connections-shift-click.png b/doc/1.manual/img/fig-ch2-managing-connections-shift-click.png new file mode 100644 index 0000000000000000000000000000000000000000..5decada396f018ec6ff6b4e91589946b1752b1a3 GIT binary patch literal 13694 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 FKLEo21=9ck literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-paste-replace-boxes.png b/doc/1.manual/img/fig-ch2-paste-replace-boxes.png new file mode 100644 index 0000000000000000000000000000000000000000..93ddffc011383537e297e5968fe49382dbb4d628 GIT binary patch literal 20165 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-paste-replace-similar-type.png b/doc/1.manual/img/fig-ch2-paste-replace-similar-type.png new file mode 100644 index 0000000000000000000000000000000000000000..156fe1d71222ffda1e9686259dc3275cd9fbe1e3 GIT binary patch literal 16156 zcmb`u1ytPMk|2z0@BjgV1b26Lhv4qeKqHO21&3h49fG^N2e$-w4esv#b^cH0z1`XQ zX6J05)12zQ^{ZP|_f~Zo;Yx~9C`kB75D*Y3GScEI5D<{lV7Lnb3jCLLHOCGD0x1$Vnu{3+k<<49;a4Sn zD&3`iG|0@`L;2^_3+c)HS` z(jTCNKUD|!sA=JRVHXLZ?pux`!X^|OM1zKrhK3b}!Ldet=B+-)2O{mV zNukKf|Ls??o&hgB1oejg=NQIURtRC)iDpHO5c{vo%1O96(7E1DU$HFi zAKnj+pYI)HRHM5=Fq=Ujm~rYRAV6s2MNPBugj*7_LIa#2lbM8h5CMDj^*eeA)=He> zPC?Y4XD#~PDik+`tOn$)Y8S&Xvv@}9G5GHfdemG|@BMUjO5Gbn1ygvx3{jbl%fyS7L2Q_+XFA9IB`tpk=HqR5M?>>Y{YpRhot8xGjnLgjmzC6 z^-Z&hQFyUUpgDrwE$&@a`eyjG`Ece`j}(j)4Vvax{((%T7rUvB>3$kg`DJ zHorPZ+D)2+kYAln9sm6jb?^jFGdSL_GMRc@4Do}|i6t5fLSg@nT$crx4FTed2Bh$y zOSD!34_2@IixDK^5QN8fDE2R?%rJ%fW{p2EnxQ`bMh+1E5C$g)2~Y0NP6DNEgsp{k zDe`Fn)iqGX9^xYm$8TzGR2^YHZg|Fkvfq@=$VC3W%rFLlEaw>V!stPv)aWQG{_LLw zhG1%gK73=_Mtl(aq{RLnoGimmOHuR4<`8Tl5B>#4v(=PZ@bt(8!3urm##c4{3$!*^w@|l?t_V*Up}jPl z@9bTBZ{$ks?uF{q@~;vk2^ z-%H9;R!}8=!b!fE8w`xBoT@&EtMrOTJH7}8` zl&|@Tm`cE!S1YdVqwS{Mc#OZux~N)vXEs>EUJA<*mL|C>T9Ic^h&sBlbG^gA)9mQs z2){EniZX?shWaaWAjdYJFjxOO%J9}U%C`39@MZ9&)Q;Eo;QQ_O<=CX}Yq3Y(E7D!l zk$!#rO5d;6Z~Ju+`{{ibZ3!JqqPuK*B7Oph#z!Tq=(zN!Dx(ret+VV|J-BkSBrdmB ztUzKXoK|vH%O%z->Ckr;xis%;dyi*q>nB}`oA;U+ht@AG265YhC6NYetF1%)!?i=v zn~uZ1St*Y99C{pa9In8O$q$qHKwj%h4mY5yWoItkMC!GgCt^p0U|~VwP9DWv>BQk= z+63nW>ipXG)#4ZN(EQ#BnTf@M=@PcWvJ!&tZL&=UcR57LF*(WkO;T05XYrl>zWJ|| zFE}s8&;aNpkxG${Zd0+ZIT0I3y|TT0lH6n=%3mi1^U?>ZYoZ+D98xb(uon8}g6wL? z^W6kpJ72uJpGO|<aP}F)w5v@;?gEH+Id@BTLw^!$ z4{6`)*i>8Axmy5jhHL2S+D#>DE^BqHXRU7Lmip2xI@TXMQGQYWFppO#`sJp}ryFY< zcoLRbsh^?WvMLb5PnJ>>>@ZAZeP-S@*SY!{5m+G>((4e~^-+OP_2bdUP+WZaZ3g~& z`w5xl@DsI-nKOB}Xs6fNmUW5I;1iXD%b)6liAOp+k8!|0d2=G;P6swOtQL+IA4fNP z!xP^*=!^4P>ht}JgsXRV^f%sz1t*F7>Sr9gwp$%jPvvNHgX0#V;{r*%5xu2=sE4J8 z%G;AmvZvt3#7BWEu3OxPCfFa4osfLcMDT~ONKm=~!sv9C78CJCfxof4yO??ykPOrs z_a(w4hDyJkD(URkPP9(M7=w(Ldx(MwLLz$k$jnGh$gIc&B|OD(ByOb`!gL5-ICMDD zh*$9gW5UBqzTz1kx47SJ=4hoaJTG)oz{%An>lu``vb!7{09Z#CMiu*vw@9}RH#=(r z7ZQ&z+%>#Co<9s`)`ecB9gVE^6K?Qae068S%E0`J8G@CG=|&k%-a?K|6?M7#Q1IL| zEI14wCsY7apjISbC|Sr^h%vP}rHHrm%G1iUfh6P2|c#Qc+eDqun{xS@z*o z!Ii|r9VZWn_nd9l;&oggy@K;>^*Qg0u6@Bodv){qGR{~MU6eA}y~>%H2UbPNcRZ^xAd$6<)q!0U=tN-0tF-P{O~rv*-Fn$_ z!_ufCUB;Sgh%@EcPctdd;Jx<7;-pjf9vok?iy$wt%d6siZe8uc2ef``50{v`hMtfhhN48j4=v?2axOk8a#zRK=!O;dJ49GI$HHq`gtyj9+qv z*eSm5JkB@N6xZZ56u7WQLo~*a$ld-hd z&(~!;34H9HHtx1A%$BzEzcHA6mV<=Rw-<$iI4gzxE}o|YIoqG#&&KPy^d0X+Na1(a zMdVx-r!E9)9^)}RME4QI!r9jmtr^v#tfEazAv(I@wAuFQM{k|H15Mk*vo!tc%tCSVJ2HYRbmwE;Qtx(ks0MVA*0|M{AUl;kfI zXKMjckv|)fXelU>h}k&;NO%}o7)+U&SxLBf7|q!@*a7CIT+H+&tjw%zOe`!+%sdP% zth~$|yc}#Ke}9pJH*_>J=T#Ax{QGv`PXeTt&d&C{OiXTWZj5ehjCPI|Oe{P+JWR~2 zOsuR7U>m`w0ZyilKznDP9f;%)MPm~?7iR%dFtdM20dNQY2VIcU z-&F-x8q=Q@CKg8KKXUy|U|aita`11M?#A~2hG=H`Pds}UN1MO+G&5xa*Z^z+AZI5q zF3UfO+FRN=+c{a<{U1pGbNSyk03U>c!aw);PkFJm{pS`=&JwO*iT|#<{}kIv&BGqR zqyliVb8$2UNVtO8BqJsHqXAwepgX`uOB@Jh-3hEi0aA8Ou76$9{+A^d9+tl^sXGB2 z#q4bV$SXjqYU&68KMj`jk1FkX#T)^~&H!=nTYwaN2iO^y*%(-O)RK z;NfOxWiT^ma{&HtFr9|Qh#Yj~xB zPR@3Y9)GtlRe;0aAsZmcUl)bf*z}LB2#`7%y8^)c|LsfQ|5*ONJ?~}-0F(S*4*OqE z@NZ~NcIM7*#*P3Hi@z?;-`t4OKTL##m4lIkgj&Ja6bSlbG&KL<&eYNvWB~v>FeXwa zusBSA?EG(%G5xPX|F!lnKH(qeU`O)@{HK!xfB2`H1c1P#9l=g;=lIb90)p|EjJSxJ z`_f4!q88Tt(jc460u(L6913j1&?ag}GpQ9&f+6gSZ3C#{t9p6y%U9RB(F&zxodyjr z-J4Ra6VdChxON4!-$_ZRzZ*%2C<*_-t|`~v^|GKultD<57uE9iL)%WJu-Nq*dl={2 z%ixhgh$H7g2p|c=*f7B$K?pF~mOzK;9*X$yfU&qD|G@n(Kr*HPFtNW7{sYXfho(7s2u&@S<9 z&hCm7%r3+7uI=aw4ejH@@9yC$Mb|s~`91FWs=a~C=e*KZ&%^qX-VoGj2HVq{c&g7D zZz#Yb6avoc)U%j~h&JZ~75965qR)GLr17r5((DIcI6hPO z{y{-7O7}0(gpVKl#>df6O=zm?o0{Gp_QY(abf$o4z(m)@TEI7$<5AJWS|v(b1-^=^ zMtR*PPkz7+p{LGjc5Ruk5v;3#^S%XP#c5Ub<0sn+qLHP;9OtF9!s$ljGPecJs@Gn} z{{H^K7-BR81a9y9>Xw$4=wIJR=YWVEtdYI3XVr};Qn(#9qgM3#*CK!Z zOl7kW#U1DiS|6`jU*T~&UGFN=fNyg>xja8d*V0*9Sh#3Aw`HdiOX(nTgHigH$?;3WP^9Wl1#hn={B>zzW!jk z$gSZ3|0Dm^T!n6(#jnb;viKr~FCCxcL<?gU>H?YC zUOns?TE*vm5`%ksc!(n4LQM)qBiNPNT9_9}uMdPr^ZjL~BepbeaOL%@swyzBv2fEq zi5@kT6)*z7L2PDb<{owBd3~PadIE7crCVzjel|n1K|BHMXeScz4BMFcGE~kOtNpS8 zJ#dKq^YDbPX-A_85fv4#Y&=b%th4(tIAK;y)F7SrQBg6HA zRLf^;03~lQT2NM3Uv1s!29PtFq@uy4d&gsXb2L0m6Se%|>F%Vc9Ax_PfSYX%(5!y6 z_B92zp%N-;zi?EyiW%BYp%SvftOd&F7%Xm6m&(<#ef@4OicWFcs4m%?a9B(UDs;TkEEsF1R|_!wVWi? z>To{5tZTKO6xDj!&x=W&?eMzmIc&6DPMQ7s6{$wNoO^48`B2H8pjjKLD;u zi{7|#W@aWKA%S`H;u@=wkk8e-%M@M&UBq9+<;H~<>J1%=F*|pf_COCpogF0 zNf>lf3=Qwx=-K>rmTWnF7G+{L5oLO4FqJ)e_5SgZ71?w!(tqA-=PrQ{)xcmYWfqUk zTuGoR@|}5uTry+RKm zLAsu<;I(@5tbFr(Inh+bQpE{W8t~iS;8=^$MnFQ!m)oj!wIENJhJ#Z9vN2g0i8V+p zGvJpCYWE-RfcHk>@XaU>Fo$8U^?YSOAkG=3DYF0oR5bkTvlqPtX~Of%1;vbA*qrLt z9Lv}gUtXUwN3k`yI5-?XRU_lC86cIx(hl{nJt7&|a&KuI`n4JLcmg4!YN7P+i$kt4nr%e!iNzdbqe+>CzIuxt+1` zCv}gtt@KIPlck0%0k43Vt;)wsk8gCZ-JGjq{( z!}{4A7fiRff?1g@gHJQTOiit@I~ozSDul7BsDl~2|rxi#M*lF8u$Ct-0(`82l7S2bvJ?$P>r&DOgQJ(sT_rDW8+u7NztgWq2T9<%+K_T^+4k-Bzbz3BG z?K)}|26}4Z1c{a_50+nbFOf=1N)n~9HTHsngOxRy=n{2(zB-l?tpdxYeFPP@vRKOu z$C{s^Y;WS)cy;u%5uwPR_S603`VaL_Y!EAd%LW93hZENuRgZ7c^qQjF&l^^VTttnT4!*b-4Q0CkbVI3#^UXtgl;O%g4oIQ^+_< zYo1Is623c^K|(`AbAP#>{!FyeMVy@i@j}TUS}7}FyHeeqV`s?5R;Nyii7z}+cc5n^7b5uW?SxBkGEGDLN+B!Nr2NBI2s+T=bQhxgM zX{l_r9axtam{(A+b2wY};N6)7#K@HO=^YDH(IXNE50A6vW6F%P5y+_bc*4PUU zq6b-+Prdn9snMcj@x=4!R2c}&`!q(k2#sb>sbFDdy}l%9Vb39!r^pKMG^G_~4vzT6(;_%bI_+NLr;m@1U2m^Xr>kvaV`CF4s$QS9f!enE z4D8V9ywdvm`o0E&>p|;Xes2TA%VgNt*c22LjErOaS!0VHdddz>+m&^r!ktz+4UeJ= zx*f&Eg@qw_)JE1fDi(YG^x(^{>Bh!{hCliOf4z0Z8!$_($q(1o%H4K;&(EpRrMtlhRuIJV1Kxy#6c!x7Cla4D=)}*+tehbhYvRKAj5uqUDhRK^%meKuaD~t{! z!h8wNG5(PWNqqU=(-)Zk$YlOEP|^SfoEH6s@b4hd;r3*CPiXaRp~e)m=7SvcpEPUW zyXJTnZd@ER6x8GO$<;TUtCq=|8h;!B_K28mLV@<`))LYS&51aD|GoGG)9x-6bX_RcW_Lc53f1RL^&J zi^QIGzrc4rJG#I5LmwO*%+1XKc6Q7Q3qN=$%Mb*`{PNAeVIn{^HnCbdhwdT|CFc%0 z{<`Vd97IDX3`pNVihskeUaEr9oL3Vn@kaVlTTnpZ-}M@9l#XlHwSaEk-u}@M@+kMx7g^@ZT*Qg!5Gu;u`*LkN4NXlxK0YRIi;b0sD^KUM zwVF{Zl#o0WgsBlVb%9Kts~d?3oM>=p3f2)P)0(fcOlX_V#9?ut@Ne%w+Kp@nr+^#YBF?9TiPZ$TkTXdpVyWv9awirwbxD!2HbrTmZ$!P<#kp}8rh zOF^PE$aoz*E>?qf?LUDFx$aDIc;mF_qBj{fBSkbXP>_3)iQ$audCM2GBSm;GI8b8> z>J)_Aq?3ACAw>@nHBm#%g_s;LP$KH;>dR`mbZ~F5^0i^?#z%I);LWJ=niYm7%7n9I z97*vo$scIa=GPLO(ci6F0oPftl`rKnv9JOI0)j-136wD_8sc`zYx8o#3sq7*KYp{U zRj(|2x2au{mQw1M8w9%#tX!Y3g1b8I6gkz2~!Bw8b#oE30J^Dwnx&Mtyst;QvRof z#aY9!-Zyc- zSP9r|2!8|v7fn(q3dN+GdQ9lZcki*|l$6dN`HhMhZ2^Ft$D5-zw=+g`1jfRGhB-@U ziY>ZZ)`aysn?+Ww%F0R>_f*{XI05YeJpme;D$;cRn!QAgiBbfZig9#nm_nY^>8&&O z(SQt2yB^|gFDD9YG&8iKK9ieJwWUmn9sPp-?UF5(b%@iuP!IFnkQRj{KF7mS8TZ)| zE7=I1qUiW|=w?2Y;y!;>RfP^xoy);tq1|?ly^Y?`pQUQ_2MDZTN%-KBoqcg-rK_|3 zj1JrcW67~56Ro#qDFsl2Nq30hN4bO z5x7V6G-ps!B?+*tm4q?S`Ma1Lj|Sxg5FVA%&=m%G;OPus@%Mep$jC@aDpZXt|4Cn> z_IMM5Vr*<&QJfK5W852(SpQCCT!&oUbNsP!`nqK)aZHiZhlIf*J(hvktvQ6+3D2-H z$;O~)nR}GZw=bCgb;`c71-ARtic=axne~ze&m0G)Oy)0vyq%V@;ne_c+o?pc*WQf)@WfV^cE9&pE)@0X`giDDz<%&GMipa09 zlw7tvONGPhd|lnpv$Il}s#m<^iS8)VtTJciE{EHM!g z2xQ!yLnU|U_fsqswXLN^B-y+D?*91Lrhqz|hmCt-Z7pk@&B56@gUw>><%yO^_Veev z>+47X3~+%%2V4(8_79GU`3wLQbjs4hYz+p+eeA!LS7LRdq-J5sN&IQ6GmI}AE^KsB z8#Asdkid_1n}-sFbJA(Cxji?b|A{>qd+T2Hlh_;r$-UkD*IW@`WTgv>C>q$`Y05`&9Lr z`04t3R4Rr@K~}akHr?8U_9n0gnnzV5I;iY&j$7Dr+m!E7c`sWl@_+PFMZTC zwe>5aG@= z{qc%636{&!Tnkv7Z_2qmohGhQ5n6Qq&<2Wg4~Xf;7Lx(*xVLuRX9CzY95346s}L?# zyc*e_s>KQ@`&}_D9)`q}L=rzq(5};IEIuJNaP8uTE6RFW7nu>cFe+!YVlFQ4DqwNt zO%GiqFE3#=D(6Wmq;8I$T26H4nTW{B9*yn2oQox~s%2RRhx9nQ-^2g3n(?RBiVBM~ z)1afJ?b{6b^5b1y29J|u&CX1TYBekrNJa*+uAs0`GFF_5B4?DEf;cF2G(lWhmNZ?h zHckVxst^VWRHG+jTLF@dybFrjkmaSa$x6}gR29B#-WKPIv*O0wJ|%mGWaQ=iaqkp4oSM zlfeJR*>{*Jr!)BK z^W@@=E{>o3Sw@P2iD|LC>c{UNEmynd=4Q-g`mN3_9$V)1%&pDM&EV9ox*DBR(EVIk z;nw{OvBUGmgfk_*&Ksxu{g68oQ)=9gA1zLM=F~JT4p$+}I>n{iSvrV{Da<)ddg0p0 zLfMmCmpZPLq0OVEXRiX$C5RT)e5?MS5ZI7aLepl?hRHLg62@UZiu!WLJ-n+?T%{3p zm8ec%{yv-%G?F7tvu8kau)R{jovlmaqz(WyFCMS3gC$Y|=8l8nkl3ZT!p?$5Nux3%#(X)-Y}v2k!**}GYsUgBJ* zlz?2stM6LF!x2^U$X`LTvm zKn0Ht2){v+#v*Xe&CHcbywP-ah7=PAXt2r`!UR#%@L+iLpe3Ngv>X3`NR3-s;%(r| zIWsfNTa;PX20+7ME~Aa$i@fIb>z9Y0pMjAUi9AZ7lCM$Dptqo)eFE3u<3?nQ zI~Gw6DlMjEkF(Z`tiUM=JQ|T%64=yjZEf?kW?6O*IhOdQrrA!%xy8)FtiuSX6ZwUN zx;|$Mezf8(Y%XjZn;VO6VE`8sw6$GYQ#ajmD}_Mef|B|Nk1fY1o0-d!FfYh_XqlUOZln za^)h!A5We5mcIMRk&&8oNYnGUoqnW0dj*aYQ+-Ay=JbBNK9HP4VeK;+*47#L+(v^( z77}%yeLBvIV6#*|JUOXMQmxnFi5)X;_z|-wCtCv+7XIb&=xiPIa!V1DoST=&WYAu$ zVH2s0at}yM?^>LxBBsVDH|R*S>p?@*rdP#$f4zLxWxM)V(Kaa8v%jyV6CM(h#Uk+Q zaZzt8^w_1r%qMef(1E=oRBVy%r6Prn^R+0HP{EA#eU)+RkmYkZF@9b3&N}sBbcIk|dxbS&d3(p-yG0jfUd7#nW0v^bA|m9J@KXRiNxc8>A6&cH^sU^IwrwveRw_fW9e4`5oDLKL>$Y=D0 zJ9;jr$e9>mlakP>oU{Q?607kEXf1=2-mpv}}rqy7O1+ zHYKmquWgTe2$n0KstR9l@GiFHMN3O7D=V9knfc&-Q`S&k{_a#|f_hG7;AFXJb!ElT zv66?Ew_0g)^Z4iV_x$?C#^}sA>-kE&d+5H3*C?KGtEsP96k=vDc(<+NxwfD7t3FlP zy;=`NsdC_M(ohT|5dZq3BW+w-;@qJV>Woh;&y8_iW9NUfE=a8gPwxy|5J5j-tvpXj5@c@9R2 z!o(bZuDC2TyWX7vdU!`qg$55x)&hWtim@}>sc7CD(Y`{%OukAj$`DDu3Q(8&+W-PgKxt`dV~O~lBWDjk zHaL~;WB$AVE`I#y+4X;sJpW5}{V#d+e-Hd0cA6*Q1&MmnZDH=6=0(YI~KcH;%1@-;@PLiXve{vEv8$vSV#Jlu^-7YE*vj;RG z|E>*O=}Dj0BBz`(zH@umHckd^r-EC2XApQE&-V^iR#rYf0&_GbDML>ddU|GN`QoI& zoN74~R&nGGD(CHLT|K?)nvCLN>T3!yaJnZw9xL>E9UnXXG;io7SU%skm-#=ruQukC2_A^GA~|`! zI}kn-4%O@gA#SWi=M-G?YVA1hnX}bpIVFLMXb<%jghAo*|IxGT<*n!%ZQ^BazWXz^ z+voTxCFPuukZ|v3s?*!6&rZ<60TBGFT2oVFJy+@A=vZ5get+Mtr>za7HoiMsf7(sA zgF_?I)733|o1B`Smh$w>3X9TjbFG+;P{e`4ZkVssPv^BQ)#qv(%jE629HASD2_Yq& z6XU!C*XIroO@KfiaLH|DMK3D0)S)_egxS5YqoV`tV$?&N_Ey^5J~NP>Ej5hx_KFz+ zjZID2R@V(5X1-f3%>Z3pT{HRI3e{e2aO(uM_PRL zqHiTK(>yT@q@q6-u(Y2%Zos3t4OLNW&l_@d6)9%pb6CB9&$4S-99;BJc9?deKOS(Vs&BAuq_ec-4t3A*rcaaoz_ z$31Y?;`|1J&|3pH62P_Ev(>gcupVZ{a_KO`xBcFp4DIci7YI>Vz3*8Se%KMVRd zLrA&nXqUJ?;~MO*xo5cTjb-{gO#zykelQMwvRz-0y$q z+)4->>?Cg-tCWQ3gFB>vOJsjcdiaM`y74n`vjKsz2^`-V`rORc0!Ewl7*{a+Ou`3r zs&lP#E`eeU2r(ZY?zduckoFzc#CPI34ZDQip4rIpSWNmtPzVezJc3)AX9heDM3Dne z9v&XJCmu3P!-m=-TaSBtdsAnNp=a_QhK8ig8*+0+H@u8?WJf$K#`?-63{+L8ZLs?`P=MlVEpxzvZ0kF4(|dxH5&;Uo z9n&MnpFEg9ThqI^&@-^K4oN*cJfWvI6irMN+zSx$6Iy6C>V^vKME#k*!y{{#p@HEs zU!hAi{#$hCcy#P^3tGX&RbsVHYCK0QgmWz`m14B2hrEG1LFvi#kGWrl;%fl|ZA3qcphV+LfAkC+gQclXP$hb2DL*h?e1!@7{Qc)EXgQXW+?T z%p0!QxD)C+`iXe}9=@ptR3P-;SbBPFYgMMB)>c`A5VVvI85!K)k<-vn&HP!Sm}F?44fYqk zhiGlCv6qn2f-&$rKVtoUPt48XV7ea83^$fBlrJr4X{repI*E@s)?dNXR3Lth7~d(DXA%GJ=$4P>A!5!={w|?0xfpk3gm?(jbvpp&M zoNu9b#LU8KRVpFD!LT#Ggr^7PPm_k#1bnYk$bX}Xm3;YtqWhi;df!&5N{O*>ruyA_ zpPCv|p`)4xt(@+K7Di0r)90o$>#C1ga47hFroO?cT1QP>u6`U{T|RdP^#nEsi{h2Cxj9aB3c0UxSq~7E50Al5C@b5?Hn!Mj zp`-p*mR$JtpTQGFhbt{t;9pax-Je&tL}-)i zPWgM;4i28H=KD!`nVI^gFZL+CHR_ZA`^Sy63qEf|Xh@5jCB`3(o`0BT4d{SJmM{A44 z6Sp3Yu;WFY!@Kxp!ql<%w@4skL6MNhWe`xBc7H7}?bwBa&e}Wg*|BA%Qs1`L2|p`x zN3TP+-%!G5((&^0((5+gDyOkfk~DUL?SVTAfF)bg^zhhFV0t=T+~fRE{3|_<^hhJSKoU&`cS-l=uc?7OA^y~FkbNIxl+k2DvO26Rtl@JG z!JTdznv#jZXK;~{N-<-i%g-;++rF-Z@?-snoEx`K2ci-Z!JGwsku|8!8re4Jkj8>k2i>Lr(`P!&qQ_^hNaS(aH7cULWZ0T zBnP6b?Yw14btVYZ{w2YZb%QAbFePTcc8_o$)lpGV_r}3KHV&)3h(%S?sW#KVnYD>| za3U~vp1Ip{t55;l=;Nl`bsvhO@D>yzCl9)?R#H-WUJR3s%c?qCZI?NB z^gs*M8}sYF5j?Io;E6^`%EAa-CJjCW=eaE+*?CQ=jGauDM)kae{?{ObA@M4acJD zJl?{(ql#ajR`Uf<NUAZBq1yr581QWFu&hKF%Yfa0VVY)5X|miw!1Zs5qo9vqD}SkIYTSa8w4Q*@NQ zG@P#tW-oQ#_7Hz-K^YYjGk#cgOBOYZ!9T03#Y755adN2COJ#S!O#be=xV&t)RF8=B zn^!H3!CuEUVxX=bLou6YI&ujd++-dMuyXV8yj%wZjteq zlxN)Rrh@~jkh|yJD`FG?HxN^`9R=Y2`wQvp)?m!ALUPVxGvX za7(GvUU3T&`m}M2o81$IT+)x8G!E->dWQ7jNg0pm-$cT0HQ6J(rV_{{h5LT$SxaKb z7*J6S4IJ_OcaoKg1szs9f1)4o0N6}pZ--g;^TSt*B4^*7EA;%SurLJkbNv1JD&lLl z_lUStP6XezNy=c$6s2O=XGB$|Jfh~MwLKo#j+#0R#MN1Rw2C`4?{q4vVc@A-TWb_MuoUPb%S zh}pysH}fBy(Z7%^`o3c7pqP#NX(c{>9s2&=GRIz&@9nGf{?zGW2SKIBZaiUFBOJFE zPR885F+Lv-lR>@L9g%WJm|YK-qvY3!2vt>8A0HnE28J3P3}1rzy^|A^)rIf3ZxXRE zi|#9ElRXeyg9MF4+!fcqNN(A+a>DpY>Q6YC#6(Tn-e|sqLuu^y@8RI!Fh2O`*5NSX zzF*0;hAe{wHpOagNdiZ`3Bqg^KIw29L%p)X29TT(K)>NDjWz_77{li!$R!IV9FU+Y@yzt-9bS5}lEz@^5$cI_I0>}yHYYuBzrfv<|& z*uYP&(TPz2e_nS{m3eioeCYlL@C}xQI7s~3wJ*_lXU4aH@9#Li)^@pejj-$L>w1qv z@tbSc5e$nYty&5ctd`_5_9!g<{hWCCtoV%BITA_k$V)!7+d@;mZxhVM3(;)aEV zSz5x@FG+}rM`I`pB_$=fxD>*}!c0t(fggSU#`&0m;X}BwoTMZf^rb)b;X0{O?tVdg zXMGz+-{(ASp_AxxXBSDvz>xcc&*i*&KQ}EingX)8b_vE65Jd@k$??W^9d(3W+^5GZ z7wzX2WsdFMB__@gQEETdncGJjb|d^2HO>|NV>@fmv6n&ZCu2!SO5j+gJ^IfEd)tu$ zj)Q#X6=BEcLF)M=`D;TN(BIFu`{YTqD;6Mj&Ox-{(HR_4qW1_sT{>HV(@+B(D(~pr z047e!w|l75?^Tz&J-^px`-P^6H1He!i;b*HD#J5>9j|9vmdSnk&A>;7ZqY1UMEQ|F z<5gH0HUv&d;k0270kqg(20hYIq=H$b&z@B7>Y)D_eYtqqDRy?guu%d$Ee>&l@h>&J zg$F$J;yBgx#c65u(hr=>uW>ZdOAeXmEPiLhVv}mX*&M1HY3CWF;MmYy6g@Q}kjWCd z=BFB&elzn}@uz^_iTevgk^ju;HDcn&ipK=?i+mM6Qa=||E>3#Hy4TwFD2jd0uAeJ% zpUuy}Pon8D&yU+LVCW3{Lk>S;zw;=mGlRz5h42d1rZU4*@0r~vXt!wi@QY%@VBxc# z(EZDdOPZgC#f;}2V7MpmuM@ZC6`cR&^&j0^M0LS(>t3`{pc**>Fy+W zc%MV7?B{-hw`V+TM-Hc`!xwW-O4r+wr9=E|7jw|P0uCQqu@N=zUTz+k5vsy|Z(37= zu17q$yz4oBLxw)$=_TD!Thx)mI{uwGBI9;?Q?!5^_K%x)<}nwS(2K)pCEpz}6h6`U zg5fv0WB;$r7e_8==1+^l(IVxOHdG7fA&-55o(0&h5aVmJna~Sp){#Pl#06~#l`PM$ z(u<{(lkjN$&@8XR>bNGZn3xX3$y=4#_SuOg z-$jDFJ2;EOk1V?Fc<6S&H|1qpYm~(8*=`R1DT8Q^jnVf%l8D_@n-`VfcB)MtDN3@wIX}eNh=-~!gsV4AjorGE^bOpOa0S}_1)c5*$%>Od? zRtx&4``OI!e59fO4!q%Tm;D#B-$9BysrZPaIsJ{CfNj%lW)9Jip3D&r=1)S6=QE}I z>!BQreuq|{^k>(dmTt9dh2w-?nsDOEYK4jimG6?zweNer@aku)JQB9h==D1}E~5LE zlu6C>h$@-;Te(dG4$=3?!vd|sP@qMmKC=5;!mP2&?BLuK{9ln zSeM(8Vu6MyD=@^9z)ud%72i#XM5AEs$M-N9GW2KH=Fgv4QF}cyV0S1p=tj_AupH0_ z98O2#ICWX?*08Gve{Q25+AUR&pqK7CyvQShkfyaz{2*vpY>Zxt2+SPEF(7Ic^Qq^O zc4K0$UlaX^6A+-5x@>@AocCU^*t0vI1c`az(X}2>iA+Z0BD{CH5m|_jzCQ@;7PdX= zR3d+^)W0a7$2`m2MODk~2{mATl>HiXx1?R$CY{_2rRl-!^M}_e@GF3(dL1(X==%==6MC z;Owi_tBkuE4joAX?2B-2(BPqm|B9z&?;Y{;F*&zmd!)QSw4ylfW9peK#-dZ(!Sj*5 zIy1TO?MD&SbbhmxP*NpA#|-3+dxoWLFN)p5md)D3U}8Cnm8g{W^fl+)+ky@I`$Wa0 zRYG6-xpq&rxqb@O2tGWjN=$91xv#S%k#xl6`f4ePrefXKrYyR3zN3fvEnQ%_1IjsF z*;9DutwNN?9)FNpyL`pXdEJ&EhuL=dq;3ED)7<%Cv`0VTV2mm021*5l5LspL5t}=D zTJgO<>n-K(1jcr1;YZx~E;e}*uP$_&=ac!oO-1WH`tx-er`=Z6uj5&V9tk3mprTAK z+=Y{FfxRJ*Hqr&mJnD$~y@d!uyWs+j*sm!P0k!j#F$=>q+RixJ@)bjdJ=!5eOWkWF z4vm{Z*=^$e98xPoy5qW=^6y(NzpZ_F%FO=V-rm_jh?)DeOk~cAx9f-OHn+VR^USdT zx;R8T+W1y^`(op8$04$x&RJx#SZ<%Yww%b1ADtB1lld*LzGYPOVf`(;_H9|8(~6^u zBaAlJx=_O$>)h^J+2>Q3*P7aP-RL7>QSrmDmNundUwX# z(r6`|4N>0o*oZ!Is_{?yxXtZfkG`Mwx;^?PZT(Qyd`ZCZLi6RM;x7+ltQi#95tXIu zK%sv14;1gmt-dNf9N$43gTT{MPoKlI1<4%cufp^Dgg)m8L;Bnvsw|txV~&HRlc@8- zqx{#^3HwCthNLCFOVJolIGGL3M#fkA5{JQ?S>t*)%X=z)U<*b99P=gu9LGg<7`I_W zdXSxORGz^F&LY;J{`QLGl;1)YQa3bt881{QeF*JyE$jX&_1m8>7|JVXKQW&>h(VGs z`Ei8oS0lAVFGZ~&o)xiP6**C}y`Abe)KXmy_djSFIXMygpCHV>ewh2uBj|iT`Z&;qyWej=FF`G}5{ZV>I4IBFuQ|Wo zEj}@=o999C$7A() z$ep31X$xoOXR8hug(9K?0-+x57`VIIE+;iT`kim!4`KNV_xZQK4&OQqyWJDh-1{E7 z5a!>!=@F-LQiBo53|-J~rAdHo)*nSOp!`qn^}6MMfUqx{hjNsV%EhEDFFQt{eKsP| zw5KWJsoqQFp&m4*8nt8bm}I>qmqeTD=wNgOaizFGbP$~kW=027ejmKwE9&*a2!pgq z8XlfMdU|eee}4bCd4Iq{l$68s zhkQE9Z||lLvefYVzyQAAv4#IVC4V$@8>QcVDz*@5aV9VX4}fmp*kOeSaAaEYOv-Xd z3|?lg8N*uqgxs%aO<@L|Nw$MSosPBHaM_~DE+0fCo7|Vx?SrE6kECcn`L3m-v)LS5 z_2{BM>++TXCyE0p3{?nFw3l;Y{n!iASE+sayyV7PczBp4rRg0tK;c%G874<K6!L_aSVaN<>XFHRSJIo9kq|%sVj)mI{iKuFk#=Uv6a6_r;%&}#nccW1b8O(!W<;lm@-DaSMZT%$vD*YBE6?#w$a)ki;x4bN zlpeFzW(Kk^GxbwWQ50(Tuj0FZDeZ*+o*HyKsOFZ?sKba3A&d zhy~!G;5a@jUwv^l*;+OT6qFeN_DK#=_i?XIp1tp>;(HK8+3yKHwLyax%hS$K?sFBa zQQoToX^)l;HL`XZ&QOFtcMZR`mLMGU{gjmGA0Iwnhpj|-Eg%YwG=E-vSSvua;Zf{( zW;vzPi=T>UIxe)zd+Fh!Jw{Q_H@`&e3_~97d}%o)cuOjJV@>!SX*!2*m%QWR1#PPV z&PksH#U6>Uyi84Wb6q=hU=F@K*E)DSoIcgAD>3rL3W`9!YxM1QCk4GH4k{shbS_VJ z(frwOV^uUjpm8uZ>)JdiCTU2o4HLoM--tsYy7+93Xd-;y59159n^J%3m^Axhrr!5? zlMFwgIebFiTStYGuRJdv_A!&)#We3J3oqwxRT#rV3YvFh znkSB8qe~mx@4%(>N7^IS5pJ`E7ute_C=4GP(J%9s z@x)Uqb9xV@W-mwj^0}QLbIrJFot*?-;eV(JXVfrBD0eVLUD{BH8M{AJu;YibeJc@a)2-2STi?`Db)0I1cBBT=^EXz_Zy^{~xym#l2!Xt=$abt7t-BBJr zSRF2FXJ5T>)2wApj#;_s`-#WH!I*l9%d_h{Y7@G)Lf`0=J3NyV8`BoD1Gb*h)9)h3 z+~W>!PBrGTF3-L>d-{Cu^PW;)cF!ttF*3 zU7t+qEGK{b#$=wwwpwC~u9vkwLRmWtv)duEjVQQzd-h)Ic}AflvS7)tUbU6#(;~em z!rSrtya%`6E#Y0vhs(D6S0|vWVRl*+Te<+md#hV7Wj+Li@#;&r|D-0dMZ?lmar#_9 zw0Onm7yF!l^WnVigw<%fr*e7VMwZwY8bSN+&D|CP`WA^xg3YXJ4p6n_rj3fWZAOQe zA6PdpJ}d&4?)zJc`4x-+BXG$W%993kZ!M&s&FQuW;N=x7Y>%k&G)T-TE!Y%Z?s#0;1x2Ic4OknsFoV(_z$KaU!=NrvZ7>B)$j0vFvGCE9>+JOO zXhj&)?AWI@l_*KFO^*xsC9#--r$B|NjZFme!_>D21&(HBQqjaJWG!h)z>DDjof!V3 z#X{QUnmhi5KTdq*b@V436cKR-VTe`deK2=&N{SUx%KJ|b?UNZFe2il4rJUvH($Qy1 zA8+D%7tSIYVioW@rZD2kcvQ5LEfHV-hmGqu_yP}{Xiv38gse7gl4U7kA&s-UTQ|!z z?>S*T1bNlJE^Br{3V(tO8uuC4kYnS|S;Lm2rhB-MIKEhn$E&V5Ag z?(}X7I8j}H9(Q;`#LoP4fShzd!Fv;(d0m9TYPj$#vsT>FammK&n`E^_n|MA>^LC5bv@xv8#}pZmLBg2`#kb~t znMTTs`8SFSI)7Z)RtITJ65O}Y;nQ>}q!mz6-DMwNS!0V&J;A-3|#}xz%3f zbh-%BRFXw07 z=@7foG{i)6OdUtlTa-j&r3HNnP3)X|`821_n8&Df(57O8fjW|5Z0BUE)Sf{IL0Ks4 zr&1RMzIV=E0R z6dqzt43qw7oJv;h!aDD|VhP!WcmxLQ-o@CzME6k%@CXL_il_$6p1yRRN^rS3>zya3 z#*n*j3|tQE(#Loc$8I2%9vuz)K5b-0{#G`!afp?>ltmj{M&ogV9z2OnEMjr!KK>0|Lw^4xkOmFD{O` z9ba7btVq3l6T-q2al4M5InqzXeD46|29@YB0;Q71p_%HfO zNWwLA(TC{)aU@k2FBjwOvn*l63ki3*SDjm->O@02(Ab{Y#GP+rDAvqt|sBb-V=!Nt9c9ap0t*j+BMrCOPVT zIo3fvqx1aZX}udxG9KWG39}T8rMQP9GrDc}^U#aK%@UHqO}00*Ac1$#Pn^ZqHBc4ktad!upuc^K?THBJ8Tm)89b!C{IDUBliw3{v2`;}lp z?@toJQMmUuQU}W+TkQR=F|SXi;Z<%BA>p9F`K0Wz1nuFLH-Z!so$!?!f9asIuF9z6 zN_gdX9U9o?JgArr`M2yGv&70e-2e>0IOci6qX_|JI{>VI0C(b?3ZydVZLAM8tf~1F z$$B}>!hFK6&MXZMn^A4Tpe}Qq8P;dB6PhC!>EIN0h*GWN195|em!o=7CA&iSHY0Qn z>J9eC$7yLjK5QzROLJ-*cGO4*O9IneHu zel4Y@4J!h#Z&;1FYWHst)?{?p`w@685US>NZb3v7vgO!pX-!7OMRBVJkNE`?s?8Ec zTzi@!TD3&#Q*yV46mNuCYT-i}RmGKi!76qMm7CrH!#R_L*cO&J??(d%zR+ej;U0P~ z>|F9@qsek$cO@o`Dc#*>zt%z9M3^!-NRipTFD1#Yck$+MM+j>51sU@=^mZA)h@kY05+s-w0uSQ+-V;{v2`8@C;g+tzRV-kYy^L#d;Zc+ej+%XwHlG>lyAXx@^6)(6h(B>9)no(% zxiKG)s6M8xvYtxtf+mPh+fwhO-m4;XdX2PQ7|2huBGN7%(`HjCf2`}}i`_CUo9cte zMC73R-v@bEX!F1gg~GxZggn5b72eAcNy<<3CrzPtHa2+j^73A`)UuE3qfX6RF(E9e zEW*OVTH4y9rjle*@z36v$-UpSk-o)}kY0Pg9nHuf6i8V}*4bbxfH&R(Dv*?XW16g* ztuWo9D=;rX40zMr|JC5~@A*l{ZCO^@oO!|GhxR-_gB*8=mC5V714f1C${t+7i$=#1 zkWfVrr@T3ev5v;Z`+tFtB@w;A-#vq;{b?Mw71g4~cW6w^X9PbB;KI7IUe594gR5gE zq&5i}k8@%8vGG1bst!IhNSpncsdra}5}AXUc@zRhPA=UvR^=@g>&V>$@)n1_F|e;) z)d+sYk+-7}b@O;`ED1seE3Nbr+8D~#GyH166v0Z}6iTD*K7fqPeDm?vG;LMr@q(Nr z8L$uYt{t)%`Gzsckn>_96bsCfw5N%hKmkAP@34pc_lj^Tx#4#s<*& zoKWQxsPy?;@e(qcdx^eT`Ma*CiE3`%C06X-t_ZaSmKz0NQSR8VkWNle_JE0;*+RBk z7H%q-_ExpaYvf0ojCX0!Eyb^HMYHbNE6R=-tu+0wRc5Yt*~OU8vp2tt${X8fr-YV8 zdv5dTOXjIa&d>@#rt;*v{Wx?9aGe=)FMy>MuPs%=r{E^^@i4jmsK3jXyi{6=i^qzL z#%o3^`8|Cc@6rr;shY8_#vPEyT(OD8q1#$(D*8qoog0*o7=#yM#W2WV7_;fB8J(3c zvE^~goUqn?{ka5+Z-CT9vxC4kYZ9)xwg%1+?&M_7Edf3VYqQX2h|uU`@_hR!a1<+| zyM{6!>Oh_yL6TghQ2N0wk5Lp-7FqHtk>jrOIltZ95#y$o%|iI>^u^Ssjefu2%&c@^ zMi%K+pcK9mBp=FSFen77r1(ZS*QQyUff&Z@ zS&`wly)|2}(F+fApLBDAUMNYKYpO`E)MkbWi230s`ApI2k&yPd1=<>AmVFobNp`BKWV!TnjSc7@ZzBP}toV8NqVEsayg zd&*u*>v(&2aD%$sg9hACelzX3jncIl{I>L+w4EHpk3mQU9~y4z9`hMex5I7US->fv zTv_4>$6pT|Z#hn7&mCo9*p4b?b+==SG=Z#^1cZl$ba7@dj{R`^3>9y{9~u<2kix^s zYr6CLIKdlUs~zxrua4H_T2Rd@F-Q7s@jlG@d@d`w)XAB_n^HxH#W&Ru2o;?q0Zk^%08&6rv=wfR>04_8uK zsYrzNo7aKgC@q)uS~rwL_W9a2G_P^ zHwq{JDVz}7v$ zVCaw=#4sj0v1r@&4$vdsLMQH}_Yx`Q=!DqfHQZ!{g+tYc-{RqH2k{r0-OKqkzTw#1 z76GBQ(d<61VRcUd;N{DuKq_?utQlhM_(7pwXuyaI_O&j*1S_ldqkAIZ_KQ`vb5*Uw zP1+<2YGUGBz^6~vkE8~hnX631&UzQS^6hs!g`J1^J)y?@?J>b~XG`Ziln%F8K^2h< zA13bOo}Q@8Ow^R7xxwJ>W)9UHe_kti?%jCbrcHrYOndy7-BmYPwFoX#ugShPoF;Z`WTk`+nZw! z-(AQBl&O_zvSJKcnmAGm)FLVANQa7H2+fcnutgIz|1Ucr<>a-hUj((ag6D6fLwRB?Ey8K-QOlXM;htRxzuv zr-#p|HCORm?Pq?S;SHfBv1mP5)yaS<12rL_fYl3X41&SdUW)5f@$gL3CJ2AE92Bf8 z6&#zH85>TbxO(z6i~PWI&6i3jLHDcA)(4IV>t+w?dY41L&N~0=-Xe$N{T0m^#!ct2 zFlj(AlO0QJu|2C7=0K`08f)0q#^c`Od8t0K#UTWpD<5|s+>d-Hioi0Jzm+chIe|d8 z@NDkc0g~FeQrQ}Uihkt2bg$`L{7}8$5QpFFR3&LiWl+cvtErvkE-^ufaVpD`fm`M! zMb-B36qLR2HT99Q&G2d$YsLBfdxSH$EWQnI8d%TJ#>!`vYD{qtn&CfsgYhj{aY#LH zr5<24@V#Tj`{8x-k~{g+>ue9V@CQE?1Wc42hlk~wCNs%paaOH58MFs^@d3jb^NOS4 zgdh0L?8A8JFF8dSVGYK%$%A?2fvOPme%73gD2)1->eB$U^Vrvm9KXOY%WJ?@sVr^7 zu0y>V%l{HR)Oc|h!%S^ke&2fgu5$=!qbzgZF)8t5GT@Ax$8r?U6el0+HJ6%#b|fbT zn-KQG`SsH%#y1)&RUge*WfE$`KskXLp1ySpej=THDyi=yZ_$D$mHhlkMpM3Xf<7r| zFDx(dm-fZn!gbc?46O2vQ=0JYYEstyNng-ZzZz zm}Hl=O>dp~D%A%roU88~S)Xdh!K|-Pf_s*aVkXW2ua&a`;lIy532Q;Wmu-`sot?3j zm25OIs4ydgwydmdor~cEgWSC;?tivA{rV%Y--08*cVGj;G!;WZjQ}k-7ATHuR>#_AHJ>tjQJty?=r4AhSoM^^7471Iu!CV zj6z_+ZUeDu0-Y%t=vF-@BergBq0XdunFg%6edqHHbn&{3~HCskjqXvQk% z6=&Qn*V{r81dWsLQ^%CBSC)hhst?e2F$8#rYuk4g898|p=1*ZT&bS?{s%CaA)allP zfJA|bo{V){;25RI1%o-7R3XLJMxafp{NAi(DjMKNu7F7)O&CEXVz2g4d$?=p zH7s+%y=fwsv=_{)tROs_x}ey^NN0a`}>? zWLy9MPy6qAA-3d=0on;v6IM;dqSKw?!fxX~e8E|r7HcuiMH2$b>JtVXR+kFT??9O3 z0O??Fp+s(HYhkVuoZ3jl!2Q&1I-0=6bB7|HY!!RP%(|6dguLeI*g@yj=eZGLmD@lb zO}(`VB_O>s_DrWsJ((1|@;ZBSTQgAqO_3>on%Cf}3hXe+*H-&6FMQt}EGYRJC%mR5 z`>z93cMqNh0PCf{5Dd`_DdnWW#AqwzPWu=)Z1NB`H#WZCZdH@xIcy*u{RUi{1lnwL zxjLqh?2-DG74Z}(2fWo(pg*1^OfYtT^E~aYwxJDGTM`Ej_v_~+n+*?OrqE0=l@im> zz9J~BuAvt@lDu43`lHcZ1M0uSmDW=TUoI)yW-#G#z&67uv0%vH}&>S!MG(>VM-$h0avHtql+f_d6P`r+dBzk zW+MFXy1Kf`nwtC`rUX52{T`nS9NOzBBmpx(q3vXP=G<(@wXaPabX zPLU;UGt@BWfY|p347n=*erUVuZT+V>Qv-R}iV%y$<5!kT*IVe*7DNv+Zfi17-wLrJ zN%l2B;}?fg940(QBmtIHI-&pzc76<*Ey2w#rQBbO)8I2Fr0 zE6LrkK>9M#{eeOkPlWny^JQXC#&#V_3h@#(PQny;@CDPdD6u8LaNNXTJh^kHTiLK$ z_`v<f5c{K`InPAWhcj)8x?h2&+j_9WBsf0p+!qby;$pO7bFE8wiP=U9QQx+C?I2a%#m;)hPzA-iwR6MM`Z1AQlv|38rM+nI2Rqhp zfG>$GmCeed$wa0}wb^UDW!-G*e)K|dl+X>YzpeH9+qK;xrOz;-N~>K%(W+QWYAyxl zV7OI{N@EJGKMa5gSihq}o6|N`Rx@OKc*D`g5oEND4!$Tq33PH<%=KR-#aDqJv-H7at`TXFyqZ+$%x{0d6zpqU^M1UO3lk8)*u z08t<5dw(-&D3Tvtu%5a~44h!X+T-wfs-_B>D41;@DlO?9*kqc~FX7S$UUO)W?}^8S z^=pUW=m)(FpFUJ3*m2C#Nspy?Ug621z37Kls?qss))NFxB+>O?jT({c(B$uJg_|aA0UsJ7)X>m4q9m3AXiGaK zlNiaDCwIUb9Rhm9kb6Q|Xc6MXY_D`^ImHW99wUssq~G+d>Nmjsor(D)!@_=<{)a;3 ze-11e4|5TxVJCW{)=2wdA=mCq-T{maiq?rQleArF|8S_?5<;m>D>LZBuL0e>ORJzCDU?q;Fz|D5x^4 z%YPIY*oDrKlunmQcqohY&b^7Cc)n*k+u* z963ChzdID+<*7(ns~*!J2J1^*%=WVf%+05@^F1VVv^DCne9a_AYummP?qXs)oB6C zgj~hFQZ%pVKPDa0TCTyJ7kVDjDt|F;CTbQ?(ozu)C1ND1Om24t!1DZez_Qz})GB zzg)UvGC4rsR+Yv>Af)=L;+v~lE5%jz3K8N$c$%?h3n!2IYam(za(Q`uId@Or(IOK;=x&bQhDU3|32%4EZM$U<^3S?(q@$oz3RIMS|)-I|F^9-h`2rUib z=Vc*nG+=_?Aa7J*%QKLWvo{z6wQg*m{^YC<)EXQ-X~CBeVG(ET)Tpx&&D-dG5jgRw z0G0MnfTvYl0sKn^PUt{IR`!b9KAi_cD%Ss)vi&Ov6xw%P8~4rnNr7~c<@<`JfoBpR zExV?ed<{uQvjGk8Aj7#dt{o-5+o$q4FlB_W8f5X16K=7%*<^+QKj%`2@bJx4l|{JOF? zZhLTN!MeAWkOAvMBYdnNJ^1wSILMJC+3!90pJdsCU!S=W`HvTsGA9;P|6-E~jt1b^ zoAa|UFMS!HxT4&B4Ul<364Dhhp?}NWykJem<7qXq#}KWgLn)kGFAZ1Lf#a!nhVO_~ zr(6B(on`B0&Gg@}?W-&HEYmbby1KIek)z+|3{|eyF<^Faack8?#1CmBEgfhg=WvHhc;3O_8+q(E&oj7VKY)Lo{2t5_O2pD4DS=yQ^4M9lWvg*uj zRSG9+OeD_=HsI%=R`2hWt`it3sez3!`I*vOdtFP6?^!1@c!~q4z8}3CEIjY^8$V3? zFjpmK*|f9`aSn?iBr)?e{_EIPxV6C7t3D4w#>R1W30P99MDLV#5KhKq3yM{27H|rV z&oH}L+uehXnaYH=+fABd!HMSuldz^sbJfnVRGFWkQovbG z5vUvYm`G04mihrPfhRAhnAu4J3YF1{5SchrH8jcX!(mAH&6aMrr?IO}MZuf(@-H?v zhLLJSZ7M=~eXQ2kLfoxlTyj?lAO=tUjuC=83OnPz4 z?+<3-eeQKi*r)PTyYQBqaggCLOo!SJdD60lvw~Y++n)4mQD~Y8W;!X5+V$?qxHtRNqZrJ#?J7J2RZ# zKezKpo&8=cL{MaL{4lg@o3xrMUrA-! zI=JI$N|eK`+$mj}iM}jUa?(#_M2X+1hLe8GX*2g&-p2mNVCa*ycDx9w1Gh^^#)TRS z$u2WGXvm9z)9S6cpSIc-;qmKwkWZx~WXixl4@l1mdfeS0YmV(Q(aeIdGPbssZMhwb z7u|uu?U`drEwhsohu^5bO<7W@lNvO=ir9~ic3J=6GGpw5Ay?8E5NIXVRX{49A@`)^ zlT$!J!K)n9VWyS4hpGAP;z}(X{_U)%rIb`Re^aGjf=SxHM`8KO-%+Sse*;a199qa& zc(TR8AV>CRS`&U-DqF2)4SwR5qzHE{(A={*L@GkXCwE@!bu!dcjK@6?pOCyGl|MV{ zpfUaGGYm4nI*^N7dyg<64wmJ~#tY;c#_YrAuVR6Korb=uoq;VnjET03S7q))5A8>5 zRiQ+FVT^{vdaGb4hSlrl6jYsjO0=X%1^;aCc_WM{L!5kIv;TY8O_}4oX8(yB&#rRy z`Eu6K+ZzvJ6J;dhqJY!PZRSg&5lCD1P~64OK*}WG8AAo>=oWLc*c(5YbssJrb@M=VVU)7>GDb{QwUKdR~qH z9}p!2?zz=Smv*dv;Z{~#u|~+<9yYKfAxR2c?I+w3uS-ZzG_{K#K!U_U8u+TjbyXSLapD)M-QEJbU%9o|w7taMvU*wtAk*4wu1yJ;Q6U(f zs>KY400fx1Lgk@uQQAAfgd9!{TmR2p%>RGkM^VV^`#QRe=QqpRN4K?MhaY>)$54F4 z1Rso3Z;xr$3!P$)O5D|d7%|m!Z5cBn-#EM|ouqw*NpVS;%{yNC&Y;Ry#GHO5V(s`a z4<`bvS@Y&ST4(QD#f7t|04)0RNIhV)T&OlRsRGBrBCC>p}^vaZMcAxw6K-L-=!^iSGkj!@Vga2gC1jXZPfZy4c z@+L4D95wI1)=X%dSUdFub4ZO(_2l?%%ze!>%&hvSX=6+usJ3Ls_8|8gAe08SI;-TM z1h!M!Gew_A2^AjMZpBsd0}!3ovr**PFo(O3lQJ8y`7nglxmf3j4JDKM&QNZ)mct1-jvD2nSd1$&Hsj>Hj8I z7d>u>mc%)$DjioDps8wie)^uYa=3U$DK}1SY_$L$j=k=n-)rR0vc52szVDy~l_akf zWue*=pfc8a8FSd7{E$Fy`&j}+)WcF;N|_t}jWdI?i2>3~9(SZQruzfwN;8?6$k$|asII9G zp1NIHF8qH;X7f(41|p{6l(Po+^i0N$ex3nMQGc{G78WJYo<{ z$cCf}^S+xAv^+jPjkl!ttt-63Xul|=4 zPIW5TCS%*iHW9Q~6wJauH`M7?pt%l9L~P^hdEA@dQTMU^GY-0XV_LygGZ*02++#0l z+B_Mv{|0B_zcgO#+*JoPF}}VD83ywFGGgt+bv=_8(Vp_{_l56_4;>5pCPqJZ%n!8p zxP;u&x(fDN^udJ0W8#02r|YK;$XGr4g;+(dU~ac4AyR$~o9_G|esC493!LRNH8@CM zyBq0}^BdQ31HVz^IAOjP!<}X`XvOr~)G6{x^X-vJm1y;+U_h9#b)gPcUQ$o(`sl7p z{Gqs=)|66T5s#Qt;!$3sWW}m~VkX1f;Ei&5N%8<1#8WaXxLq=|b|pfJM$T9OJG8Xo z@#ep z&l3vn}d(5Z#2rKHiE@%Ge=mAupScp8C z)ZX5KDFYX_Tm4E?&8S$L_oOXU)sx=F~O^D`A!zRGQYBI8m~7yRSU0_GtlTXmYf1^ zPk;GuWA*1jdG&{;OuO|iLO1#CN9`P(ei+GbQ$XVquxsypisk)1{IxVrwYth*roD8M z_#Wk2m+^FcRe4bNd{Y?#iP85JD}80|GIb&I_}`q>3Iyb|V)NWs^FX?1T_pwf3M$3> zoAI!p3=q^1Kb)ogC*Lh<#FFS;(OsCSyD^o98--2t#Jr>EoTgg>b34X>|-LNypwCTB8Iq_ z)a#+9R4qB#(AD7g)?&TQz><2odVke>ve+|hfFpn34 zsq0EtO~KSZo1GZUAI31fS!fR6`BMVjE|E##%k!LgK8iZG#lIp%9!jgks0QD~7sljr ze?ZJ{UrzE5q3ZXGR+B*v`!^F}fu#yx!1xms8pBt%YwS%j#G8^|4SLtx#3)d?0dJ9! zX06KlV&)K@31fCHiDy%N@&<`Rmrn(9+et zH>rvXV5$?~HuQ>~fZ&h~Jik?oy}?}{&1hm`Vi3iTuN2(`YKRrF(9rhd+k|Zwmzy3} z_j?DvS?Iz<{{(JZmun{lZUcAl*>TzH^FMd?IfG_R?B30|SAWw{gt{9TFrn{Ho)c7- zOUAzzyV#H3-trD+Wqpi?xkI3~-(=W84&0?wd-9WhVy{*rlU6Z(`m%toW!PV=nK7uT z-j`{tJ8jV|sPDH>mPz}aPvX5GWG0JO^PLO-B*i+mDRV)o(5j7>>Zz~C=RhR@O}SF2c$Z63OW`3zJ>;CNcrX@d|qydn>>KZv&t7$w>Fbe5c(tA zM-N7O^S(*DvGGNV$is9jt!8G*E?L@8CywYahB$>d+qjRIz{@>jjL^pACrlP_mwl`W z_nA1#AX;>vk=hXb)CbYL@Ez8E%67K5dtsm?h`DG^8pzxW+j$NK@a^~b57JDjfqHbjwHubjCM#MyN`?Eua%IOIS`6(yILbp|p!?^R} zM19?E_qwo<)6B+&?_c|AL_9~%v-~58LCcT*FBm+w<-+>-##lhjh3`9EQ#0OHaJeVj znofJ)ARHqX6|#hX8Yf_lA356g8>o(S zpOSxwuy3a^ShYc|`2>J^-MzX#Tg`F{Q@ zw45D;g^gjmTy3~k)|7@P0)ov86JWT*;gUuJi1Q0s3@r`^5CQoaUW+HyrXzk#0L;ss zogF3bbPCKdsi_}+T>LJAZ}n+oEQw}W%hO-rrewLA=mTBb$_(Qd0$s1O-OFkCt8@L6G|D;5l+^d%X1T zomB-NpiO;ac1E5ZCE4gf4z)>UpQ~cmFXafMKO=SCf)i!!)p}CIx@w_-HF|RZrwQ^B zEZ#?(y|!kY(qR&6%v+7uUkO1pSXz`24p*K|06vzenyAg-qdtNviMUl|htsEsH*8({ zD~l)?#+#fKs)+UGAgM)OZDQ0)$vNyc)n+?0jH`%VF__c#^86|w&xY7vSBLX+m) z#rHQx!#TeS(Su`BQaV0Ta~D;`#x?kdv;1|(i2LoDP=#Ai7sbT8+;#dPKu6+UH-5z* z?~8WnYb>7Txa#aw+J|ZgZim7> z>!sOQKOa4ba<{t=)vs!gu~`YQ&?yJ4WHAS&+syAbD0Gl~1Np-5w}6?z6kG4>K_Lc+ zbP0gTT$x!1tei9ctkiP7Hy$1{LaqY;oIE)$+?t?Q6a&qwC^i~_dZoTVy()~H{nL+2 zrQx`0Ow9Wv?Fu#jqcG8L!Ohw-;52P<{?}~&54E!9p@%(!0(^GHtL1!k>j(F}S4!D{ zawoK%nTSaDDPTaT^Yjdo=x86lDHm;TUsoty8DTNtO=WI{@?+z@SGg+Xf~ELtJgXOk zh8YYsC!RecSFBP}A9suNz)9o~9%p-op}W0%20!(T?!U$WSetS{D0?-AfRqZ%HKi2` zm_Ts^HI5^SkC3NeU+dv#kh_*fmm^f$8Ri#rRxyA4>7C=LiNZ`-vJxCC^gK#g*oIq?e zbWEF)Emi`-o5Q=EYNN$*HNtGOn~kQtD)|hyW=QvD1pfHdZ2b&Kfr70yRyVA;6PdKy zPc8b;=Io~WZ_IEHrejW#q?Il2qk$A+sIl~eAL!w~^(EfxDP8p?{7uAZ|E&Yh%UbsD z{sSA4>H(Q8;C5Tt|HEbk??YGSITbo18&_|4p^Qu-fa+bDfX}pcJK-a4z=&eiFzcO% zsM8v+J<+rIBq{^zOZ{gIV3#Jr(lw$`JpMm+va_nV;NTxb#jOGxbY)Z1N-7}<)4?0> z`U)jDxi;d#tA=Ev;+XQ)X9HRF%t3KqkMJr0PLHjp>D_5E5-}gS#ipdN?ZhlZ14v<) zntFm~4l}JCuBeidr@2kKT(Z%R#dqBxC5loj>Z1CCnIzP*B|(e|)bs4W)B#^hds+=q zR$p4p_E$whSMk57NSsA={0sn2?eA*N{SMJ0_5l-jW9=bGW;Wn1{T{OCcE($FWfRQR z)!j8soCC4|ZU_$H8b+7nMy>?Uv-c_n!k>7MPmefi&Nj8L+iHT)_u+e3uxAHu8(Ki2 z?a6Ef&^~(cioz8rA02b8uVna-a8ata0|6pXNdSF9V}B?Kfa*P23}E1I8he%TO`!GM z7~N{2UbK-bG$BkIHoS`0Tbo9VnEH$z-2EF%`E`xZiX!ziuPTro0uluQ>}I|^)1zV_ zh^=zClKK$t;Kujv|7+d%4KFOxS^plGw1G<*)H*`CR_u~ZSss|P;^JM$^Q(lGL~il& zUEVbLbzfDNNvPg4DL><+TJuKP0Ph8-tgM^0Rt5Tir(>;NT>CtI)m`Lyp2W(}}OQ1gnWAp3Z%BrTNd&p6_}08dEn!1^qVA{`|#65C zw|@MyRR^9NbM2a9%HFN}|hTeNXqzFin8bT;irMFN7q!YSSK|qRBDI(H4h|-H9 z5PFqfB%$4n@B4bb@0@e*J>&kk86(NgUUSXonPttnvc`_k(tr@(puK^Gg+;8YqNt69 zg-s1y$6v<*K3}o$1pr@!&MJnkSXe|9S8r^r^h`hkpW9Z~z|BDYkvPoBfd^{oWC7># za&QKuv9Kg%yquvhJGdKz1>D-!QHp7&p@oUT)>4W|Ur3!#-B|%{W2@rh0@v};(1rQf z!Ne??WTY7+y~F_p4sbUpgO`K7qpP@=6w`0L;=uLQZC)mZ-y&{yQcQAJfD8ueS_}$K zE^r1h9)4~ZAD;k&h!~F*SV$0V1ry6A~8!GyMHx0svhs zt;DqzmH&nVen~OexVbrt^YVIndh&RJd7NCVdHKb}#CZ7xcm)Kw0SRtbZ$~$%7q_D; z^FJCC;jSq1Vy%Z&v|M%qMvgIVJ43R}X&t(;sOpa3&l2dFii*V)mUiQ$i@#TA_Fom>E5fF1ZZ3w3pIRYzAh zs3Q!nswl+-@ZzzxwG_96!$hp0LZaNFA|k@vf);{e++re7er`cQ7*te9NEj{v6aHtu zq7%&h${APl|5`PcPB1{nf1nD(MJ-{%U;%Eh71V-TL=?~l<>M3LhFS;+i--za2m+4! zN1LXLEwFH*_W!E&ij^gx5zH@UAs}EW3J?;o`b6W_*ffdFN7X^z63j@>yuhs@2 z57?z*>+0s@;{Eq((}6$#`^w&y;dk1ILt$4dM~cZ6>H)W8`unEsf8&k+5$@mfJ#FAu ziS#d_|4;G!3)|Jn%FPq%0++M?oko8Z6|H|341<6Wj}XIsbtuf%@oEWi{KF1r19h~9 z1LcgDiTD56oc~#H|Kj=o)g0cdBKB9Hc>i+@e~%6c!d!wW^|=uGiF77NOT|rKz5hchG4VKM_w ze4X|hYBi#2#U?a(O|_um(&S)5chbn|Nt2Aqb?gb=J*T3RVA;{^g$S~z8hqKTm-&}Q zu_e8Hh=LsyM$1tp@_w zu`Jf0rRy-Q*=$20)UHtSDMyh%=tsggA^l{lufT28#^_5+TfY(P9OsKimx0Oef_+oV z_15pCNss>WMHEA{jbZLti~7rkBm;Fm8CMvSVFvcG&vQ2DZy+8|>gx;%~HRS_k1o&|%4=Q=2Qdo858%GYtZZ-a6ice_chAYcf( z$pM$9$n2t7S#Exr@zEzlZC9+;GmIq)gQPwS zM;=j!xsuG@P}r>XxFcnbQQAi9(w0?AaNQ^rNd5v0U9R`5g%}&Pu731e;o$C48CXEP z!&giNP{9Z$cU7&j2G@I7{GozLa%2RP{D5PBVf4zgVwj6keYKG^;_G~Od6VFnM<~*x z@jGQxwQ5}n24a=lMPRqtq$}!1h|_!PB#4}I#)B6!8Bp4rICbjJw0!XIYa}Q=a#9$@ zVL$j$5a3d84$psWpb;XhMrfzlavS%Xv3Zq9mW;C%2r?*XZFe&BKEQpm8spw|krIR8 z+{8TiI#_(F!XRJsU<4v?E?-8<*M00Tbqz7s?pQ`U1R;Ck-}q30V)HHItdYN7%lOll zNJ2v@e5231**P50_nwZtGy6%g zY<*-@c4YT_>*scXc)KZja3zqm@Pn~{w z12{hKoPITgVK{U`m8#cT`5pL0>;Ynl-< z@S4fnY+?2EO>|7A66)}~UH(7njf9WC$4+NHz*I+w(&oG!pZb+X@=Hf-xCfVkpp6E3 z6mUYK_>xvaCir-(l_P4{xte1+Q8NI-B#++Rwn2GhrVJ3%MJ@fJ%D-Ms{$7_~tF;oL zvpCK*H>8OnATEe1Yqli$nWu`jdkn;b>$r}NSXxhswc8^N<@`b4R?-2(ObDV!2yhHT8zwbK}nKRY;q2R;Rn5i1~ zwfkJhDAb#?-2I&Gvn?a%CAzs7>b@jcoXfDT8)@?b8}$)eI^UxlD@x=;%(=uuB5Hv` z|L}+|kdkPxhH&8;@{4hA1S`P@lNRu0Q{-}m2|}->{F~WuTv8A*Br57B4qL&tCT;Y+ z?~vREx(s}UVTE%v(}{h=&^zww=f*wH4--mW${aC?R7D8o=emY?VKEs=0hp38SP&jwVW9oQy& zVgmm6g_ei-dtHv+QH~4;f65++pA6f#Rr~lRPt5SL&&n@P+0r_``6ttfk;G!~*LhO* zh&6nc0eL->7M)WA8JP%ze{4V{#1e_7VYxOd_l+F&94>o0yzP26lhQ21u9})1Eo0c% z#Fr{wYA3K~^ge}@!*dTet(t@CE_?hIx<`J#TcIGb_#*d`~ru$nGp z_KStlNA3rklq0)?L$g7Z94+@p&Uw36PxDCioj0rYHhD9$RYx|bD2MXO_Uio$@+eI2 zXj5&zj0tkt5}u@ya0~MGb+2gd4XDnxv>!SmUd*!?YJ60GlO=Tkyf&lJF+YawGI=px z24p?u>5s6MtiqHU57^sme2xj8i*d$YuK?J`tyGQX+%?=fStr?;MVc$2^0!frQkNgLe%XhI|w16@hyS*r&yWOG;aARxh6Gd{)3g5 zYU9ogI5qYC)U$VE{WIv$I4y#&d>1%w-_hP{H+LN799U6X>6DI@*Y-3X+sQpIG5VeK zg=!%WBG~RaP=#oOAze!E!bao=J<)W=^;wCUXmm@y0vSk(-aoTA@#xi8b|PuAa^nK7 zbaA%=9+w`+0(n-=J0q)e(^8)*3mp)#($Ma5sgIpvT4Zy((th(Kk{;xqHF5Ma$hz$7 zUPX7GYhUDE#`S9X_g)v=CuX^*cO_C)BV%K62>{`MF1XINsn^F}gCudfo8B;E1vKG> zLr^M;*IqL06%`GYGosd{nLgdW+x{5yYTmMC<%pc|)VztvDC>d$(qc>uJwXfiXrJ}Yl=91?706|xuP0Ac5lzfeXG`15 zanS>cwjuIuF?jmA5r)zG@~+$&*87Sdl0jI5!I3w}?yIMq``?ZBjz^iu;#`9+*xv@< z`wlOv4iC^YlIGo^xFNUPT@40&fWow{h_BFk&H`Xuf830&HG zn98g5Ij3I+xKJgLVJN39tB&B(BQ#TzvEq`xdo@8j`h>D^q;2^-@ ze1Z(rhZRaLzxCdq)&CqMe*$*)WAa3|n0FiDEc6B)V0<@5?OKc2^>RP1rmM*+Ke=*gQ}lx2!+S1uLs@UBrM{z%=3JiWR~UD5 zTr*&4Iqy*25DUMyz`;>;h?5CczrKYl@^ke8X2SKsMc*a#%56e(%!ZC^{;i?5?GSL~ zH=U@8xD;oo@MLq|`ZjvAH(wuJ(lUg)wu7D3(7^$&hsbj^Y@qz{cA8kjkGpWj19CWw zYZ54WUeNA42$wP~zTB-YrHU{ZFlb4LJ|&RJcnOJL?$zJyGkSk^WVXJOo2+k7h6sFk zZXQay_1O){yZ^UKYVPz;8!K^{i7H&UkzRjRp3u>F$UdC2^u~i>j>jG0gEq_^4PGf@ zC_K2~AA3@S-V^*-$7nme4>(^sOOH%rnu>iw%zJE0|5@9j>w0r+NF2p2Q({)Op?^(UdpWRld(U;Lu=bzmsBYhRbYyhO#>mV_Y!|0R5RmUTQy*Vhm=RJRkv0{X&bih4Xg#T&`SJV#*k$$<-$vLPe{}u_k};K9O7M& zmYC`Pte^p{pXTP0K%pZ2{raW7;W3ENJ=e2G*@+&)_eEy-P7T)WdLf^C4friOds|yu znIW-~`zjLMgL~|V(VvAgrOefuwY%{aFc=sN{voyBD*{1|HAut(I>IjVY*fBTj}JgF ziz{DaHA5*WvwT?Dtdy+q7gtYWq~+a)W6WtDgHOM$*$qI%pXeUy8W?zcdv`}tR&;jb z01%`Xq~~l;mv`XD#U9eyE0NK+m?7c8Z}T9r;f}9YFwuiL2bepPvEO^vB@-T=y^#%-m_t`D@~IZw7c;?c|#Kv z)H#2|!AV&r6j4@RtXE=X>6&A1fB!`zjV!?M)Uxd?F{kOVd`ATQtUmNgzDoJ;6#NWH zb&V8UW6?G~LAnGee8z##pI1J8*o;3*G+Xl5*?%TYKJr`}b*;2TM%%&X{qIQ!)|^o4 zjW_Y>b3drfmG}vF-KCL67#WHXc^TV zOkay~;!O{gNeea0zR`a{^lFeo_}-j+N7=~jDJOCdHPp88&N9^#IAWTKrD1JJ#8NJD_c=b5LH0_~OkJ=b5q@$F$1k*ug~HP$HhWQOvZ>*BXKgC?YX>hE z7SD2{DQW7x>+_Vmj@ExbDi$U0GI_T{rdks1jbqr^qiPA6wV9SZ(#y!ps}KRP@+ks-{>zdkG(;TKe_m`3Z8< za)jVhsavxvX|eFDdB?$y`hNEq+FC~1ZIJo(6@hS3U>pc-M556BaP{913a zP!IWsr$c9poJP$Nzs4%AA{ZCmCMiA7)w-&-+XI>_xy-A(b-GzxT(ns|rhJgN*RIRR zm@M%z%)@we)urO0Zsq{@iRWxsN4JZ{Ve+=?Q%TeN64$cEMreJo%~XueBY$+48HvCx ztsG_>zuO2NuMIOhj`gm|@y;TC&AfhK=NyLAeJs~(Am2IFxG#gr@~)zY)|~$&tu~lM z10f_|v{55T6MjYK@J@a4$Ij+UWGK&+bxN-AlTkKbMwy3T=>$aQOs80)snLP+KFfTe z>!I_K?CtF6shYgPBVvkn-&R{!GTuOa%&u=;;v}0ZglI4R+_FdYT)`o0ohvHtVK&s@ z>!Bb2u=h2yUggW7`CuJ3%_pXe8~r)m(WRx?ye8=a@W{pvy#6EDz}MIDY2S0bU862| zTh0=)va*ts-4EA>m5J$0nmlSFk+4-i7Ie5l28T|_f%TeLd_b6vwwpjpks0JY@)+UDbVR7D~`?}C)syw8#B2tAJ# zy~}f2#X}Y=);Ue>&?AES$)q>S-y`~0|BYdMaj=pELA=SOtpPcwqXq(#a*-Up*+@IIO{WC}+`(IAcMkU!1r z+k2$*L%?JdN1wuP1KsZ7x0}kn?y|r4vb1fDsOq%lOwJ%+Eot-l4-AH zbKoRJx>op}Wq%gcWG^DO+sA2+`+yN~oHj_TK0X)}@YtH_cy4^@e-3G)o#bLl7=8Yl z+uk`IS;I5$|kvUEul6|hs17~YcMm{?;AexbhYNww*lBm zUAoF7O);RiG@!oMPB3MiCn=l)W8Wkq^X8qn50^#m6j;1wZy@R&mKR_lk+zXVN)j@e z$yPOw=aM52o8ruBY!|y36)ql|nqKU7kRoY?IN8_=R1*od=Y~JhS2Zw$`dmyc37UVQ zhC4muUmhFA0U1ASBpVxEi{|vAI5ZIyx zJjLHt&U2BV$&nm=K*1?`UC%h_k=dpnBk_@b`Ip%b+%h~o<#u(BPmC%z2tj@O&AJ&m z5Z?SZh^M&J-g%7#({6k|q8QPr;DW%g@f(LzRV@^Vs|Ld%^_I}kWNSa*3pR3Um1sP! zIn29qW`%h?5|K}6nDtl5O@5&DyyRJ^6U;DZd(`jVufv&V^3q+98*+^_kw4!aPX;0_ z1Nv$cnB-x4LLE7vjTJnh|_0m2qK@XV4 zv=wsWMR$~kT3plTtF45+vD0Vl_Z|w|?&ftPjkIXtWNcEim4lDvJCD`&X`~ZA{(NeR(A3mbLeYc5?y@v`dAB_Y?Ua#BrLCCqsKT#5cmsXvk!ov^Y&19n$k}-Sn#>0~d zNZq&=?kfGAl(MH;Qm!P7VLC>pU#KiF0OL2!DSr7yYisWH^`QKG7L^hjzgXVRL%@45 z#McuQ_$z;5LDE}0rdNf=R;N~aqya7e2q4uMgiK0EPe@IrzI!(-F>$flkFj6}AGAL9 zyb=b!cRM&8ziopjAZwoa*7Q5~45HORC+=S4Pn!9LD>-oxhp$-LA!l}-K4_wLs^3ii zLB{uTeaQMXP=E-{COfqv2E5T2eVdh-TI^>EF_74V4GUmw#hh z&;0UvQx+~WqIfS9r@}f&X6D*SRc58Pi^~rac4FhveJ2^`C;OMO)eO`V!~-XB4LjH+ zd!5!%c<(_HMz}cJOj)m$39BEo4)@riH*rC#reDeKQYI%>PxJ%6L0v--RdMeSNkXYF zCy#eSUwuTF#Y_F*N4WA*O(bj3T5-1%SKFkBVlOrVQ6}?6?-YEaDn8sU|}Gu`4c>fq!~SqKV%Q zBii@T?HhM7JOO!T^|^~IRZ^D*_ouy7dQ=TRb2$dt>D&768i}+8^7sw&V-!I$cwL2Q z38|Mpp@L`NQZB#zvllOBo0yDh?7cOn1n1AMq6*}U4Q|WJxR}b61x@frs(SK7)DP6#j2p{PaE}~Vz^&%8vbcnRF+r00SKdi*% z*H2SNl--{Fd@^v;@x%ak0|+q*IKLoYBPLrL3}BgcVD@D%wK)jEy9&y00=O0SIkNK! zi}zAv<3A16JeCkn{DzH#lRraI3AZ~r2xyy^m)rsKJfn_z!1Ax>Kn4G&bD%i1n*RVK zH-qh_oS=w;t?DS7xm2z&a_b`d?Q4C4V>4}4{Z?gj#xOu}})BO!9*O8P^ z{}OVXH99ky`tYmfEi3kUZyIB_n3;G z)Y1@$i{IY){l1mtI|{%2q}!j;89BwDZKc;Xw*zVWdM{q_T!R~TR)vIW^Q|0-_XYp_ zX`-UrR{JM;7@p0K)^B^ZsprWW%~fXX7vG=)GKqB53UnR+^~7aa#x+t)TQB%i8$=+C zW`Jsm>M+`Cmi^?fvyjc+EleT}r3NwOr)yigk ze>%;TtaxX0SNN(n-MGpY!o`r}ep~z`46*DWmDcvESC-hf-E%@d1XD`@)y(#84t8{A zU;_In|41vefVan~<;AaA^3LO6ymyzfIv;IVsb=r~g+LrhTO;h`;Ns%qC;vibH#Ak+ zIReS@A*@P!1Ov?(EmUC0LA?C& zXZWbAiqZ|)*F`BvCo}@?=X~Zc@O1nDkp&b*>_z7Kyd6dmhq#ZHqobq0zki5}P;kWo zfVRjyP7R9aru;b%$z>;YH1d3r%tsaV;fV*eIMt)L#_hg@5zvsSp7)*-8P-l@%``|)c7WS@e~YSSjjP|EvL?$LuChfNTagLFdMQrXljdhB@> z3>@$BSyuwZ25eSpOxlayN-tjWoj+S;##5M0&`}n9Tf3nnz!5vhJr?RNx1t4e-*d2` zd2q@~lO4A18{FLBmv7!zTfN$$Qq1SPEzMKP<#xwo?1d97@kTJf!M|*?;VVRYCF!wg zN|SNwZR;ss!tp!V5@RB)HlD#w6gV+mii0PTk5FM~6@1%@+-VyBivX|nu#boABX7Wd z?}(npeOcWa&2ahbN3>FS14ZBZiZ{rrtr8|8y2yOE+WncEp2d#8&opw-k9RdGNY&M? z>|%i&rTmt^!Pvjs%mOq1W=9y*Cm@vai}f|1?up%fdOqB(8I5B<*6^6jg7zG55vZQH zY3j>Ul8~?Rb9+uI7vg>au*%aKX@*voBvFl%2U#I6J4^!zmIGRex%N)HPDZY4@GQ?( zs8%zWXP2n@ORK~yNG&q+BX)*8GmtE0KDorjtBc(UM7t_LWiY*eJx2|w%jD*&=Dv&K zH_s^MA9)M39!7YfC80-?;^{j0fxpk67tMaSW{@zVGk=J*RZPkz67+2u?S>Atd-hbG zY=7i1_DgT9xo+GbPdj5h;9^C~%hDkVK6qF1W!N!-;5VJG^Ge%@na1stO*aQ~iD7-^lkwMMZ(Y zBk`-)+)TaAq0!okI@#=q=(?1k{Z01SetI$8Y;l+$OTo@HKNfFz$6M{8VRL$c8(&SW zHr%9DJ2>{*F$m+ZayRekSZoFCDR_Hb*%mzj#6Nz zJ8!;=-o0ltMIVC4*GSr8EpboA&@-P5G^6<;dq`@G@fpewkY zz4!-Wyd6fnxxt<)0~`viuE+zK%+AgHqO3h(8($}-p2Ek+`fLQH0ippv$>M!k_Lj~Y zdgrXY#R{X9vRB{4>dX&jN+{j4!KV|{HDhusG!*QHSYS;1AXP&yBX2VW9xKeN<$aVw zpClR@*yq<5WD3m1ylL+q4_QgFC9PYU(_AIOZAXIZ<+L?u_CnrBg*N>NO?_^>W25_= zV#$(l#y9VkMLd@uU9Hj)up>M~L?SIQr>-%Aw%N0K8WZRWm-sjTRrKz3LAaP0tmB)32eLiT%YPhvMcoc<$my z5&WmCFDy~R7gP z5{RR9ur&For#?{7$iH&vq$#UB2uun=RlN=G9kT0sY2w{euI|nG<9((XkwSI&GFWsp zEHE~n8h|||0QFf>_W*scWnja10OBHQ3cG6ezYe8VnfZaHWsOM=rbMDuCRm|Y_Y04t zmY9ou)1raiu=%bz%#WoTXw#2?qb~AApp6umu}Y6*bsPllg{JyvjRLm26>1Ay^}Z;K z<3apblTzyyl*Uytv^b*&9+G%+IJ3+w=1>rw-Ep{CbmfEYLFnHKSAj=Afa5?yK7SH` t$CFj&8UEJZ6R}4vBpZL`ZyjBNc7*g)o6@SKuAXjGRnkx_mp6a$zW{950vrGU literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-tab-navigation-boxes.png b/doc/1.manual/img/fig-ch2-tab-navigation-boxes.png new file mode 100644 index 0000000000000000000000000000000000000000..8e2f44c94cca7eb1a1a7cc9414934c318380417b GIT binary patch literal 6923 zcmcgw2UJtrwhbtPa1j**r3MrfA%p-S5SlcRDot8wAqhnw!6fu1DoqhV1f&F11Voww z(wkh0(tA~!bVBbS@PpUuyZ8O~$A9CGH-5(0Is2To_F8k*ea;Tm)lp-lXQu}M0F3H4 zRP+G=DkIAL5gj$<{{y=~B;|6_<%TH%0AOG~8dQMz#Pa~a36O)K3DHDb3y#7$iy+ZB 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 P_yFpvIx0Cz*7yDku}@^% literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-tab-navigation-cords.png b/doc/1.manual/img/fig-ch2-tab-navigation-cords.png new file mode 100644 index 0000000000000000000000000000000000000000..a59ee4e58b58af22876f1c69df65edff057efd86 GIT binary patch literal 7248 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 ASO5S3 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig-ch2-tab-navigation-inlets-outlets.png b/doc/1.manual/img/fig-ch2-tab-navigation-inlets-outlets.png new file mode 100644 index 0000000000000000000000000000000000000000..de10e41e8dbf09fc544634cfc12d987ac6bf6629 GIT binary patch literal 5843 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�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 Nn%DHyYE^7;{{vi9*SG)x literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig1.1.png b/doc/1.manual/img/fig1.1.png new file mode 100644 index 0000000000000000000000000000000000000000..192926ac319b4d3601de9bb00b7c4a26afff781e GIT binary patch literal 40421 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig1.2.png b/doc/1.manual/img/fig1.2.png new file mode 100644 index 0000000000000000000000000000000000000000..7bde52586d08541102e9aa7ea2c15f754d457451 GIT binary patch literal 9050 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 bvl{_Fh?qAEX2!W+@0sPKlqIXgO@jXmw;#9g literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig1.3.png b/doc/1.manual/img/fig1.3.png new file mode 100644 index 0000000000000000000000000000000000000000..c2274efb36c166e48b22f7f78aa92c185c4103ac GIT binary patch literal 4737 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 MZs{V+l<$T92iLcf4*&oF literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig1.4.png b/doc/1.manual/img/fig1.4.png new file mode 100644 index 0000000000000000000000000000000000000000..0b086a93d08849b8c7fa3aa36d9262308e875a05 GIT binary patch literal 12150 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig11.1.png b/doc/1.manual/img/fig11.1.png new file mode 100644 index 0000000000000000000000000000000000000000..e7fe81c79b16e52d5d40787bd95d6b673b2ee542 GIT binary patch literal 259715 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≻Q8r6395Z2@xnmLEvM$$0&=X3ttR5o_*oP6$5Jh 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 Y=4%$qu_pZi77#v;wyuO)Jmbv&0c$KRVE_OC literal 0 HcmV?d00001 diff --git a/doc/1.manual/fig11.2.png b/doc/1.manual/img/fig11.2.png similarity index 100% rename from doc/1.manual/fig11.2.png rename to doc/1.manual/img/fig11.2.png diff --git a/doc/1.manual/fig11.3.png b/doc/1.manual/img/fig11.3.png similarity index 100% rename from doc/1.manual/fig11.3.png rename to doc/1.manual/img/fig11.3.png diff --git a/doc/1.manual/fig11.4.png b/doc/1.manual/img/fig11.4.png similarity index 100% rename from doc/1.manual/fig11.4.png rename to doc/1.manual/img/fig11.4.png diff --git a/doc/1.manual/img/fig3.1.png b/doc/1.manual/img/fig3.1.png new file mode 100644 index 0000000000000000000000000000000000000000..2fe541462b42bcd3c39942e38ca3d4d9fa7e1d66 GIT binary patch literal 5138 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 F{{ukrSMUG; literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig3.10.png b/doc/1.manual/img/fig3.10.png new file mode 100644 index 0000000000000000000000000000000000000000..3cce7a7c1db03e71a899c1650cf50049f4820b56 GIT binary patch literal 7533 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 R?ccw#FjZY>x$=|H{{sJ4DA51_ literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig3.4.png b/doc/1.manual/img/fig3.4.png new file mode 100644 index 0000000000000000000000000000000000000000..cfec0495aeb7ba15067d58e1f8fa4d06d49e3dcc GIT binary patch literal 6643 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig3.5.png b/doc/1.manual/img/fig3.5.png new file mode 100644 index 0000000000000000000000000000000000000000..02230644780b2b00db272cff16d66f91aee5308f GIT binary patch literal 5666 zcmaJ^2UJsAvrcHC3({1ihzJUj&`apOSE*7WB_KoykN`odfGDUSO@v7A9Ym21N(Vy^ zARXyNARxW?@ZS61d)IsGe`l>ZGiQJE&77HC);SRddg?Tk*C+u10F9=GiqVC(xsVs+ zWEc098{i!PfLhjBS=m5SS(($o6Y1#u2o3;fL?oDj%QbLA2j|Uhj zJp^X^u->4c(|Y+N-AB7VedBIq1B96|-mBt)*>rYr=}Gs&(#g{F zuXEIryi;$AB`si$x7yBwwh*XLdK-3`VWUq&OV9RoEs(6UoOrf-aWTTe&~T0}^z-h_ zL>((2CZ!D8`QcpZ9ERnAz3w0eM1)AbO6%x(ddLaDFzMgz0tMfm$K@@(fM4-W7kC0x zsy7H1VXW2)A7aFmP4a-lX*~D=4klo;SYYrtyi5bn6ZFCfiS2(mI!1 zZf>zs0pUm@|F1F}$zB-Flxch;CIKmSOpfihlyshsWh%U-16EvXjq?3gVXK7|dYZKHT#+?GRE@cb zv{i`6u)Il$gI^<&r0w<(ZPYH==nL0wMo+GIOi-Ys)pIU+bN*=lXpU0Sy1R50-$7m^ zzM6BPh&d`EA|^yfEotVVc}_3LqcP~E9axWPS>?_T4-rMZ@|O~!W4FpUO{G}$JD;%{ zWklz_*v(?S)w_>9U^m` z{p^8Hds21BEVOZgA@wqpJequzA|-4hE=)BxE%Q1RG$Zh}FpIPN649rS=VC-LCCsuMQg^d$fcy!Tm0@KSuR za5;4`(R#C5Iq3$V?sH&2ASyU+mb#i89J)RWo|LtoC0!xjYIY(~)F7wHxOx1X!Y*R$ zW-mDdL6IoNotsQk%_xRiB}^kGsnb83`i}a@4Q$Lc2adt8cPhO%**aYpZVZOjtI1_t zDU5WBp!bt>JQ}D&I@G2k z1bP`!QK4~{RJ((F>`^geQFCDhwD{`ua*;Xj$cup12uU`lSz33{vsr@VrL>T~c9!|| zZ8nVTbR?{e<9ooN1ktMp8s)s0%aUQ-N@TWt8DR#BV``Erk~C>K;4ji#G5Ojbcxqdm zgp%H>zEiZ)vC^MZmQmc`l;hct)8Gz>mF>bZYJQL1(Y%%YG21$OKAS%qJP3ME`7LZi zhn6evwdw+wC#f&*(Ul|0qpL?Es-bq8glrX~!}!(socNM>$L?ENEQ=y0aW1-hx$TCP z`Mddue6Qi5VZUJsK0ZE2K6btVKBa^jK7{dp;k$dj`8$Rt+IYQ$5~z(yVXcZ+-5Ldc zq7eB|G?@t({YI%LPap%|uQ$NnFPA@nzmAu5@&730lHjuEVm543cyCw$Z?VRJr^53O zU&@CWZQ;`&nmd<^RbQ(V;}c63b#wWN7!*@?R&!Z$0gp@;_}WxjzQ~5>Fy*(6@{NpV zdTFf-v1MV0zMsiR`K~3nf!;yz&~(XE=~P};&U|KEx`=L`(Q>|C9yk|~ z(=&h@ur92F9fWV@*{Zdew~(|j(-g6K!^iv@<{k$=CTcKhkbOM5C$}o{lX$OkFL7OB zWk#ZzW`jDDCimJSK}pwsX)C|#QTOTX!MT%XGeRmfKd9}govyeEJrdcF5EiEtzsy=9 z289nJiV+)5@8I==hi^TiDW+OGR35$`T&V6sh0}(%b=nr&eh@y^q0v>=$;rj)PUy;G zEwF7^rlcQ2bx1uir{p|rnJ7|dt5UGy3PNZobL4x}t+rU_BD0*Mk?ZS9>-X3F#6?+Q*gN8Q@zF;SRXP)oCibcle;7!c)#=n})oJhNH((q30~-Q5 z$iI+B(`VA-Z@NMAq2<>pue-3ZL)W0;(#%rgl8x7$g@oY?J26h`fhbR}ZjbRbv`_p< ze!rn=RW_BSEP}!rh6q_mg;tulmM{K)e z6JN3G4d3d9p3TLrRd(eKjSeTSTmCrd?3;|<`h?rM+Vdu%ZM^OA>ed2;AiwY{^+#7~ zn;d;GDG4Z^>;uS!v>jAR5AcItu1~KCOM$ zOX*5;kLCr9CCmQpNwC%BX&GiVR;YK|m>>Nc`poCy8gyL|R`kB|-B1^;;kk!)Xk#?| z=g?b2ArbrD_Cb5zw#}CTEXy39L^s{)b?ZeNZz;;!`YY*vIcW`U-D&O3j?t`)1@o|S zQ^m2~)3`%%XTs>XgEY!gtQ1kdei%!T;4#;KD?WFs5*i`J5UppF)|!ImOn9CAwpL`1 zN+Q-0_d|a^+aza?FjkMRXYrRm*9weowln}^-fX7Wq)w;IrBrZb@eWB;a#fmjGM6$m zc2jnZzul9Q7WVVoSJ1QTO||lLb8(B)(2f^yNqHpWJH9|$(NL{2Db&O%y#XGbMlbN(0J~IE==^y!q#98DYAXF{;Gh8 zu2V1e$ekH6vh=NU5*^v1vD?!C=YQ)Nmgzgd{wLsh`y@jXt@xsy&`q zD==05vRdcEM!VEm2aa=3q7kU=rDK<(wMckkbm^{-JQ*A9}CQ^KVaM>0PSj;C7B`&du2mDg4DX1MLL zPszglKHIELFP|74OpS3=H7x>m6{Zw>LQS5nJkwf_IbPihph==hdDZobO*cbV0B3`H zMk~!e9oYI)W6>}rOFP;ynu&u|(gsuiE9_8ZtLtT4v?b5SN!bMS+I<8Xak5%IwA@RQ zBIWhQYyVJc3#H!cmx`=yuJ3mr_+b}-MNDMOSO>`uZ;sdmb)6Z_!=rm}Z1&J7YeIwP zj!QFMWK?n#Y!h8Q?Q!$Gy#zat^q&4cv(}h`I>D!eNT+S}HmFydJ%-H(wh_00@Ihne z6?sD?yDKfh&s?MJIHm%=`kj8)oQ{K7x9L0U^QR`s6s>x1$_+9MqmGWMm#rbK5V?al zrv*n&cx`MV=-19kQ3<4=Y&~HC-@M+2{5kU|Xnm(DN51ga=ekLsw3)=f{$J(uH+Sd1 z=|`lc2BaQ8{RzjJO_bqgzBEp;cCuZeL*24EDhn?5R2>=uVj9>0_k{sy^EAVbJ8Sa3 z%8X(~*Pr|fV-m}(uK^l>e$8b0&CTF+0sC%G7g>hQI4&tL(gaIh3XWoz9R?x9e68;w zRLnt-BF~cFV9CyP?+w3`Z#~<++G%Xv+_xMA%$D;v`l{GMeDObF3OCnu)YS#>UD)IR z;4^0c$%O^HkZTtL01(H913(x0@`b3R6a9_aq!a&bzxeH_cu!eV^FrUV_k_dUP!Eyl zf*K>-MJT+pu{qjYR|jg3bOqZwAno8_jH~-^3P1(}y)a$jXj@K<>mxT56eG*^hX?e+ z{yhxg;{3w}jgaLs*EQf&MtZ_I#leDLK`uE;PEJl4PX|Y+k&4=1^ou81u7_x}I}`%( z@$mush=7rvP7om}DJh7cFhp2b;KD-yqjl!CbRN#xq%h7| zQW*vyPh}ghqn#KdUb z?hsR8x+y1aPmuWoVd=aDbL%sWn$N;Ri(Go-RnHFz#B%6Sueg6ERvXUWHE`ajp&70+o zjitP|M@y|k*VfkZz4Xz6!fpIMM1K1l1HlsF;^_qi6#dIV=ciYru1gUiXBzPYk397p z%==rRIGpa-_;?5e*4X@tRpNoSH}lf+az;}Vhoht80}MuT^Q-2%IvG2@5ji8L(8jqj zIA~;$7w=B^t~!-2ft-FVes}X}-0@*;EmUD~KD&!%Z*TAM!TM;~W`?m_7h|+2zLmng z{dnVBCAF0p)948fhfA_|p1i?oMZZ*JR+gTXrCf$ALix(>HKLYji%UvApB!xMakBcX z7>6SEPp6xy6`y?NgQL;IQtq<~jx~TpD}uR^lAE6n9&1b}O*Vng&38lx=e=FA^Zqfu zsMZ#!orB?@wbvib3o)M61evAnXUjz{pf8)mLS{YC5|;tReCz=YVe%vzj9Z{j{bipa zmz=Jf1ia#BH~A4rXAXmLT!*5`$v~jJ@mH*g@d8N*V?bxf_tKugv*VAAr#>5FLd%~+ zK@R(|#_s!%I^1#A+in%)Y;*Hs<{K|XK}EClAMW#c$4_|BvdgUe+~0?4Yik!QASXMr zU{clwLt$VF*?Nxz;9}^Z22&^8oSo{(coU zyZTdn6G|2APFUH+w|OkD3}h8t2@Z{;c)5-I@{4#Hx3@jlVocp!K^)EYS{hJv5HxJRIEzF2Ap+Sg91&5sXL z^5+1>ZfV}NwY8U}iS@WK8&|FeZ%sE~lYm8ac<;3`^R_svV^o0XfoaTAsgmN!$mqQ8 zm-PGm5RIM(Vfe~xL+Lt+POsOaRAX*WXBVE`pY@61+Dx%CAq3J5G4swQJ+^A5!tfC3 zIF{TAbaA1yY4q?G&irhnhm!`>O zVBheRLn&Drnc*j-L-OA05bqfv`Culxy}ez*+8&oJRKwt7rYww74L$^TSXx?!FRrce zZA>>vubZo?s`ALWN;^dMk=_YKh|?1Y-(-pd7`8_YoLJv4xm?U?j=(&_jJVPy$P6*- z+PpvhTpHscHa-2m8Zs;JWk31yw#_x>15F--71%DR%%)Eb7?x@$>u5souo3t$^_e^J z0HKlr3x%Z$dQ@$M6|gP|(M}h+JgPtN8`EO8mn$mGy#fq(jSIe{4Yrd5a?n2*+aQv= zTl4&g#9t-Ywvy_we1U6;VVfQpjswrO#J+f|->gn@MZE665m;d80IREFb%fTeyVaRAT^Zsa1{9YqNedDV4?pk~@dH%YExUp;k?SY^UsX z6v^Nx{#2$(!}!^WpwO`N)sXmvc+u=geM*w3$CMb_weH;D{~Y&8&2g#t2Uz!!NXW3) zjJuSmCDOd*!$|` z|Lpxx786ihgoznLvDT`_t=Xhwi@(;YDuF090uX0mSRd@f)$Cx(2$@YH7ffPm`*SJ( c7x?T_>^^(nw+{wYzrU9>RrOR#l^%rr4=zoYPXGV_ literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig3.6.png b/doc/1.manual/img/fig3.6.png new file mode 100644 index 0000000000000000000000000000000000000000..b6cc82979f55a7f0e0ae71ea47130bb6b302e188 GIT binary patch literal 6481 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig3.7.png b/doc/1.manual/img/fig3.7.png new file mode 100644 index 0000000000000000000000000000000000000000..a6c5598d06ce1781a52356afb9c5770634138df6 GIT binary patch literal 7766 zcmch5Wmp_r^XH&L@SwpZxD76YOK?wccXxt236>Co2M91&aCaFbI0P8nU4lCV&ra@p z_rCY}?|#@%+s{*ds!!Fgs_RJA>5f)cmBT_OMF#)?SPJqon(#IqPPu5P@O$&j)GPpi zDQYJzt*#&~O|9IS*G|zAq zKZZig<%kFkF<6MIa!P4qGOgtf*5tmB4vU92v)k^$l~E5QSG zPeM;784M<$`;h?AVS=&Q{lo8Xr~y8NYHWkR5T?zM!krIRFT5b^p$JlK>JdByO^Okd z1U{8Z3>*$Xpg4J-(#K+Cn*^(DK5=WTJ68l(aAPge`z$B zPwckTCEPI9(3hd>(Z>zOJ>R~@&6`rTlW+S@$+xv#Z8jRh(W4sREb*cz0v8zVPWwGM zK);1E3W;lpW|!AYj1k*hG>RDg9MK|~KZ7pOBB>pA=lLw7U~9~c-o1m{1Sfy~jIH45 zKp8=)iWyw*(+;B~$)b5>i8@evxDYj}I;5yr zLGbI1LfF(kyNevC=fnJUrDVkM65OtNv4?-SNP!~Z-c;X z9Ij$Ol z`|vCtu!S{pks60Cfw0wqT^*B$B%c~bG+<*HUWofMjPo;6Wx=^#E{)5xwP%*^exHuM z&jfCcgc|Wbo!m-Z3wMVpHzmYl`&ky@=;I+pBlO^!__&^2#E}`6+ zt+&H!SuN*>nymE99`YX>2_IYqlDr5Q(G^K#&+_ITL|%`mj=YtBm2yCJkr&11#I$;t z6QBK98$2LJmDL^8&_iSntg4+;I27?hb^u@=3eH5;o5@-E*m{e`pHxV?aGm?qc#CtZ^)f8m*!1BAs;FAWO=lVdcEMi+W}rJ@;}H4gX9MG2WF9 zRY6uW9#iI>e05rXlo za@lw>W2G4(B)bH4xa_j25C@pOC$WB9mJBF&c3kxmWg!kh8D+9pnG5(ay1H7P4MnM+ zZqBicptQ538eB%Q^0QQzappr{PqZL~%^J2VFmmlo5GOlqtdDr};FQ8gbS1{5mue&M zMgTF^RKAMQ2T$-FofN7WOU^rW$vIg;89}V<0*>#(wDCnsbqp=tHe6|6UVW7`R5nyw zk`|FXq!weiPL!t$Ob{K+AW+yyI9H(0ug^Ei-^^#t=a>N2pwGWMRK}(){QPQ*)*Z!{ z@%F_n`Yp*V&#Q2Ag|mDa&6}jXq=KaKBt6kOXqdAzjT=3le3ex-?8VISt|B5t~L0OZ&g58)H};Evyl5%@qmjWFJp4v zlQK{&koA!ls+3XWR6a63I>9lyQodZVT$op|nVSgVQ7P2?S)^LX@y(%Nczk5ssHD~8 zSHy9lnQXUiH*z--Rw`dC5#NnE9vqXC0#(louTruNqR1)P;3gm0J~Cm9C4R8BkadG_W7-J6hcH+~?CT zoxw%mDspskdkRYMJ~%>{NQhsso!pL#+iL4P-bOCS!~N}$+rqx5chXD|OygBvx*XK2 z!DB~A2WLPo*sH@e$5UTJt}gv>!^=-fPE)ZfD4>g4vgzjMssR_bx!*66DCw$i<0 zaLQVii}GdwC+(zp^#TL}RytN@8ZTRv^`rGUQe4a}{>V6h&bLlR zt|#u-4i-+%PNg0g9NiC$EybNQj+~GTrzH0-^!n|cY=O?iw|-|G4QBOVHyOXMiJ6V_|24_F4o z*Gx+shIlI?L=liZOuL3cv@Xfe$n9Ku^8=} zuwd*x{uoI7ld6&T*tt!mjkld%Qq(L!O6B`~Pe{*s&uD(ULTv&E0~sAgBH3$s=4Z@{ zns@yupA7ga9NG?U63zq|bk)A_uRq9yM+@P{scL5TWO`C3e@_3>!gGZokYF%!q_&x_ zRd97S*EZco93cLr7!=oOpw8iwa-3SxuYAI4Mv|TdOlbRDs_{ncFJ7DcEibMwjXMjJ}EP~@NH4Wg!fU;Onu#j=ai(4gq=slW;Em0mB?Xc zXMW(YZl2xa$4`Q>y>v1W?|zZ}wnN_zVj;q0VrXWzU`O*@k&pA)rb$?EF}nt9eA1HP zTD|F}R6vfa*?sQ#hZ&AL?I93Uedmp~#Q6Z|gnZ{!BmRi*;b1;V`(jGTLc5 zNPbH8FTpG&(t?_dnFL#fuST@Q%90K92QAPoc{+HU?%dgz?#HnAu%j4cIjhY1T?_2E z@GW9CBs<-=7}Y^N20(^QPo;Kn&W&yxh!hs-(|eF z^7CHv*YX@yL&rAYLSk8RI9w}oH&XE+{%-Fo5GxHUGj=eRLM2CqeZ+Vq5?h#ZC8+08 zep@3mPbp3#j*yB>(AcN#_q!XJlfjRPaRv1>0!jvtu^W;iV7tQrN2PaV$~2M<1KZd%0+k5E{EKN+1t-Oueir+H=t zXE}`HnpWIiKJ}GnY`S=@Y^?6LXL{UEXNC!9pNvA~nsoe3HiLSRx`ETdb5GTUljRq? z-64@qapqLZfj|5oHWXG8K}Nl5c519yX(FY2UdLh+_){LYw@p8dKs_L_Unvj8w>HyC z8L7bE=l7-MpyJAdgI<@*Rmb3i^M(TPlHXmeOWxV5sX?&cRhus_Hs{r%v$F!T z?%rQojp!^^j;wxfUnU!%c!BFdZ+Kf7Qs(|@auUG@N&(R426*abYxFbki~C9w@RgE> z{(eWum)q8ipbq@Kn&-d1I-&x&c7DH2Jf%a0BSC-_B8U_6iBfb5=)mV|#OxrW3v`Tm zOi#%`eNuTn^;Nv*@q%RFjZx>=&tQanu>j24+5wQ^ z90Ht3;RFC6B}4##@D>kFG7!Xnr0Ec(fB4)#ijuFT6%^p@YYTTPD`yW|7f;pcj0?D_ z8M`;Sp1LZ^U<(%~4l_#^b1M!XC)Ym^fQSzm&N^9nno;{WIXZiQeMD*h(g4HxKiwc& z>c3Px9Ykq$Rn)1aUEHmx`8hZ_IBCVusi~<&+%2uanliF~!{JY&w6>m}u3!+z+uNJN zn}@^2-3G)ZBqRjlo3~|MleT@poA806~8wATAD0&_A}}P?0~qV0AkmD@Q#UJ16+? zz3O{_F8yNZo%S`FQ`0{Fmf^BDFlM+@)Qd;4VGI{yQ^&ga0l38z=($ z6ZyYJ;y=UuS1){=#n44S|IC>f`nTzK@F~antRN%##s}fZ$h(ZNmsm`MHHHwwiy#z0 zi-*@Mb%;fSj8dJG+ZPr+B+kOcK;(Faqm;{~fftMNN<$v43-6o&g&@J!E0a8hDXS= zP@_R^&%G);p1_%JXY_a-X4t^ja~5RUxz=Un2sTEHGSBw#HBt1OTzPq3;Zl~TVGU`f zgt2`{NzY&aLzoBBF(73HzDNsqR|k8e!YBF0P`~l(MHjV`_IqdTG}ejbz+cPUrMTN7-ISCf#u>TRZN0z>5YOPucn~>zjhkrl`u4sj71hYLy+M~$nty)lHmfp?zZ?WEVX z3w3t&Joe~}q_)o>DqjWTXDW=8Tsj{4%k}GHh}d+gjn2y(R}?8IC{ziGlRYa!QveI? z_s2>;%%5O0GqU|u!EJ5&cL$XnyP4iAdxl7NQ_-kxAIJCYNK!oI z_4e=-Qv%W%sIZW6c+31_N%<7@JAOai;}aRxz9ZqWmapjw2iho9*tySy2tdq6FpL(z zzsD$ujuX9p0ev_h=CvHaCFQYJHX1ozZWV~75;s0KH*((jk#>33Pc?bE-o00p_o<|m zP33DMs*l#Pg6Y}oE64h2?K!NrjkVA~7K)A%#fj6Qp#3!H3r@mj;o9!1nnIp?3@{FsUjjWNs!H zEvGx0${Wag)AwkW>X28aTe#^(|2KzS^Zm>>UOe9*CRzpM6d&cfbu`OenGB3cO|Mzd zAoVeglb}`hGM2H?7S%V)L#tja11w!yevD{w+AQkNH_>Yrv_1C6?LSQVp!+DTtZUp9 zR1L0t5h*mWhfOJY?w9H|*YU&&8*qw;z$xkb)< zjEQ26!G25>D7_v#XkL4C9WnMlN?tI&teaHjY3sHS?WMCTRL!*i;s(;9JVAACzuEXe zhegY(Q$aBAHUn!${px)FJr`|Dpx?RCau5%^5%m&$n_Bc_y9>*?gzv=3d7Eq%OhdoB zy+W&dSYDi%KEFkUcMXDHHdWA#WJCI@*P@f%_2GP-?KmwdzoRb7^2?!yqY{oBF@@H& zQOWs&!m@oj@e7A^Bd_^h&eqK4>jj5i4^CLZ&nwxiz-ztkOA!VBl_LWY`h83H+O43O zf$ZQXz4$tljv!i_=3gvMI?Vn=62J&jv3>CjWO0NvPq=6z+AL^kt@O#-Ud z&vVDVe4KIrRFx}W&>btVGPgY#!hUlxCZ4JwQE3b%O-G({9~x_mukAWVT{sUU$M3gt&L1j^7+na=3<$79!nv8NCaOUzM4pU z(A^#*4aWgX9>oA`2#En1&Hu1k?)D{g6oLT4X!tx_v)Fatb~R(bO|$^dXr$(i-BKVl z)2e6^i`$=TS>*LUKE$q z)GQWoYc(?kKfY@@JljfC(;lq9UDQ1keK_sL3TI|UvN~G?cE4F5OdDF%ikEPSLT&Tq z*IU{aPLS z_U%hFKd)QZq;?g{y{_DzsM~7^2*XT3ULT)e885YV=oA=$QKIPAmXqrG(uA;qAzZ-Z zs$x@RUB3_|21CqJE7Vm&oaE zHJ+TSwkU>|;u@p-%e_gf;kWARb&ZWmwP{c46U+W5P(u5rjTqM5FBYGkpU1>ResV4| z=`h}sHt=b5UdMQ~M7dq&R|&l)#i9~3)V+a?!n2uqHS z%u>GOwVR+@fSWA#|8?v+Kobdj87HC{&+&z9DO2#-l4I`m%o4Sq8MhQdRX>wi48T=#4St5EB zK+G4WRm*Ky4{EkAc)!~RjK3m|4ltFnUU07UyRy&t!D&}+w(rz!l-qo}lQ9Bc`!+9{ zA|jC$NXe@G8fV)__eOquBz@z5c5 zg;{J;@}$xIs*wfoUgv&)320|Z3P%drQ#7@w?l$PrVGk2cS|5~)k=y^4;hfMSY43pK z4{GiY_x2yw4K(szeme+-pHU1as)0(!G~Y!|iyaIhfi%cAnscZIy?Scjjou-2;(k+3 zGxu7sE0h79qAT-d0-oc1sUPJGk4AW|3q@FQ?T)}oz>?LgG7a^?^_i+{zbjeUNVu#I z>08bq;kJ}dpnUEF+C|QHK>G}I>g}pEJ+nS-5~N;@m!o9fI|bGtHZ2*E;(B>{deV&z zz0^M0{$*q$OqJ)>P45W3ni-t$OH-leJ4T#ku#URe8Oh^wm_ZW}c#^6pQ-{;Dnh`@zHgBMFae zUl6}In*IFZiUo@`tjE^I;GpE>!HS2OnA645n^@yHp122o7eB zf!fr@C?_LH@C1tlUXIHZ-^0sYj-f&4I_4+l>wwGe7@+(K=i{*E-My01iril-{&89U z$3lL)Igwjbr|{ymZ0LUSD-1|F)8qqVi|GlzC9(NRBU3&yK^{j~P~;aiICOxTEi8g( zoomX@f%ABGmDl@$7~gs#@a{6c{{sC5o7w51-Y8R~%@iWRDNgcK80b8}=*Srl? z_klTH$9e=A=C_OOb@+-)>H_H=DyD*mCZ}8a+!42`fT&ZBY~7n3`g+2Fqm%=u;^AyU zb2ZHvO6R5$G@D)xor1;7G4bDR%r*y`y;gs|C^BTM*O#UltR!vnWMjE8 zo9JR=b)kz6CN@87M`cOvyX;qWW0`{Y#_oRsfjF5O2wN=>pdU0(Hc~fxZ*D}#YI#z+emii-|@53oSGQ@)fe(2>OD|`E> zhQxjkPx|FeG?X&4B#qBDY@vwk*uwrU1&AZ9&o*!+LWv?Xp^ciMJIly!Xz{w`q}R;mr2GxUS3r^+kqNd@Rr^bu1=f~9jg3HH>ozy<&q`>!qJkR@q1`O{-5355F?h2Y8=bNlmGe0qVP&prb5az?0*5? CDUBQe literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig3.8.png b/doc/1.manual/img/fig3.8.png new file mode 100644 index 0000000000000000000000000000000000000000..f07bf68e29d7b478e8567543564d60475a698d60 GIT binary patch literal 5200 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 gpwG|2B?8ha-Q7x;bVzqMNS7eZ9ewlO`wx8I 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 JQpzOc{{XRpKra9Q literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig4.1.png b/doc/1.manual/img/fig4.1.png new file mode 100644 index 0000000000000000000000000000000000000000..68273b583c3b890da29e7c54a61a87830c1a5179 GIT binary patch literal 229132 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%0A_|J(018KxC`n0@;|vo! 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

k6BUUBa&94O_3gJR)Jo79!Q*Q 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 z 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 !D$Ld_&PhQ<2P)Z%L>` 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/fig4.4.png b/doc/1.manual/img/fig4.4.png similarity index 100% rename from doc/1.manual/fig4.4.png rename to doc/1.manual/img/fig4.4.png diff --git a/doc/1.manual/img/fig4.5.png b/doc/1.manual/img/fig4.5.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd2692c073398e1eb540efa8d9b1f0c90858ee1 GIT binary patch literal 146929 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�AY&d;=uU#iVq7uZAb=&tQ8?lL zZvWo2&CioW&f0+J_r(RsK8sx!8aq~Id-dOEp+7?A!$*j@sGD!4je{3&Ei8cI{pz1T zR<*N^^@f&~mWJC-^9`ymUjm}J(S9vu*Z(=p8VxB~7?>tnzSMjaWn23swxF5-IAg~P zF4-PC0H5&bZQoo#{&%qa{~e#Zu{EDq9b6h}W$-4;^NoQ(y>npsl*mqXPi5=TAYUG^ zKysyK9pW_-kX5#G5PcPc zWX*Y-?4;Cc6d(5VC9wP&tjW&EU>h1IKW2>?{NWY=n1k6~bAYA=#4pGpPYnXiMz{t0 zK<-TQGs0P00fulG6-aA!G66>o?qI<`Knka!qg!4Kf4AMN%NA}iv-$Q&%&gvCr)s(- z5<8+PPf_8r9S1V(*pkdOGB&G-*6*ekaM802M1sLr$7UixidP3G2v|V@j~Xbk4bs=w z*WIXJfG2J*6xuzyc^kBRehVaw6{c--x|fTvzAiUvc7Q}w%k2%-oQRFNWs8mNA6$U7 zF^eB>m&sVLe+_@+Z$^p@kI_gkf+@Aum{)H%`{sh^KOwcuVsPuOcWTv3CT3xKbPx88 z)&_G47}8K%708{t|F8(o2kHJrOEGtb80ecV?TP*iZj@~tdNH7#FJ9W<-m z^VwoJhp79b3l!Ns6YD299!p{Mk;_&@)N_u3MYpAsqI)8zIcaKaUvD_9Uo{Qn6hPIP zk|L-1RwU<5t*=?zZ;mHVoYl$S178suxm<+6_0RKLe?zLZd#3=9YBlWqLE&jlOo6M( zIeuc|`i#h?lS{5?RY|=wKc)AZ(56PqUMQbYV%%=Nb${7I(71V)B{;z>3vZisFEcp@ zCmMBlxcR)#Qi_ovhf#|myVBerxjlbyA9rJ0>&8>A*q(!QYdU zljGy#&71XFgJm%u;6{gSHyb+4i-Qc_G0@S0VBMDa_xba?ytR1ZwK)0D>6Z;M-qlae zMN9}-*8L5Cc#KLWzO|#bNYNLNVmAn=Ls0>-eR})!8aSN1qn}v}e?uat>pJg;D$Ad& zeXfxYJx}4rChYQD;2c|HJ`>|&KjOw!NqjK zg>Ipr&t1bYW1L8j={Tf3?Fr+NSN1iluUMcEu=%xx0wKrh_pex?{lNxIq57^;#)S^U zI&Eo6eokgiAs@g$(Ii-kjct23Yu0|_@8H&TnK>vjDGB*OQy<7=H7`{GUg*KrtX52u zaXjt&Tu+})*+0+1{sx}oG)yo2I#0xr*gf&)8VFd{grYX!$D7da_ndiA4GYECes}?{ z>h!k2!15Uqd4$7`?zwt0bLI9`dsThI6#l16b%zm?oA+~!*nO$PJJ&(FZz{L#o#HI| zagr;38D3lH|09}3Z8!S+6;URpj>gN!wDQ?P1cH0zK5q8wdz#y&dXj>cc@Zc1Ej76w zza|>xEshk^r8z;p>1Qqt=$&~Dcr#4#JW9!N z`0WG)nKUVBLmh$N1U9-v{wnCAW?3{EElTP#8Tz*dI>voxMUdlg#E6g8dUAW2wtno8 z-{!yLYR~s}drH=c48e?OQ}kDQr^F3OGN;USawTV2Nc(#Ne*EFnsME|5h@mxTvcV+X z;PCx|nDVtvo=p9L-hbQ9&At%{bw3hhn{BR0g3s;abdcfUzKQ5_lvkCJ|Jz|&#?%;? zTbfrIW(=?wKFN|(i@oK+4USw>dnLm{_~gIO-FUqL&@u=*A&-emu`G~czVAvLaAmc_ zFQ{Ss-|lvk#+HS!Tz~3RUt!`-!(qwnYfklfeuhXF8+l*)qq3s4+EXWb;EbbXVwx))hM&%i#W=@!=9_C{ARr*{Mg``ZJH6}WWPP-i z@U;|tW?&k+)IgL@();YKIH0%qsuljGA75-zkgX(}!TzX8l9m}YK+or{`Om9E6mE;& z-m;ONRXknkL0vMj3m){pGqP251RU>?A@noubKz?VD&cdl>)k2H$C{6x%m%KvdklwfTSm>)9-AfAa@(d*l?fvn67LM8T%Uj$s4&ht$TPaze z4CO=8xPkcd9E31ml~H4*X_eCE!|t~SL5T9oP(o?<=g^h8hhe^>XBOqW|W=a9Vrwn;vTB0C{^`?j!F!9E+iW|oY@;{JJ& z>*L3|-;$zu4|;;Khq(a9!n{rk2wWb=FhXYhw$D8Mol2i)20g8b9|K80h8)yC=oY@o z$+26;#j8}alo(IPuV3_0xzy!IiH{k9+A5j(tor|6;kIy@s_ELc*G{cVmCXqS!x153 z>Y|HY=_SQ%(QGl@-@XA>J3leSn|C$*ZKkdLbDnaVz~!>Hx0f525J>lcZU{t^gI(@A z#*s>UzJ+fnS=2$(;$yJvaLuq+YNOi+2YAKish>@*@85E>+b!TsSw5u;Gpuhpm4Q9n z;!-Ghb@u(+@NLH-lXr z(=yJt^&797uK?o_d=etm>9~j82S+{dMYJ;FaX#n>KBkZm-$m@jeFiJbqvJ1!bXlpF^Zm7Hjj+!5feaz|QzT5na zZ48gZH9CaS9(kZJJV|+#5R+X|c~)HsOFiSJW%(vC@9rp=HekGm5~NEMeGeA8jgFex z?Ufl|R7aWS>4UPN_hKSrqnjI{Qz>yPJ%+GFFhY}&X5rC9lxPs2FGz|w(vakG|NmlCc_)9LxLe)ET)j0(l^Ykp&nBk!)a z%`-pVRX4~RbE?X2HG5&kU$c8!(vA@|F&D7eo=nJjcOw|hw##YwL`{#{V=J4sl%s42 z76S&#mkz!HpJ467kumW`rzraW%LTapbWQ8AwcogO6-#IO2z{j1^eDYV;*RJ322OUj zeBXNVo@M{ni-cL5b&2JREwbF3FA9!JZx0;qHrwW0=bYOPb6nciVmPo1@kLIgxkUG^ z6=<8sWE@u6ZN%;^fWD?@KiGHUyrb5JMEvGMV$h@kB2E={JI9iD`A3fIY28PGosPpM z090+NUq{|DEvL${s_Kwqn^)AyfYwj0*LFp7K^!zRz{Vhf> zvf{DBzp%ZHL)wrx&;`}-72GN^VO|OU-e<{I@XeajzVBG5_QlUw$@>bMyyGHuv!kTz z=fc}Thi2_JTY~Kyq+`K-!M8V=-mRA=S!bdvtsY~Si>Do>PGSc+WP$coKh3Y7c9_`q z8b}jGm-?(<-q(2!sgm6sN1n}i^cXGscLAN>Z48|;+*a+$*zE-XMz5yZPtv$Vwg*)@ z?z$2KuJ+aZcjD&}%ZCZx0S7tzew~C0Cbuoiav(W=?$kf`nNrZ77j}l#6eufgM@y*S0EgoHg^A-*3|;KiF2VO zfQ`C)K1O#v<`S?zuDy5PwE5h@(j?DO-nXV2F(-buaK7IF|Reo3Ulk`3+kn2Jcupyn{<_u;<3+@pquoDUmCF zX)(Aod}e?vh+g@YnoCJ*+#03}LdHgQ#<$Pc_ZGTkOfxs9917URVY6*#OCOa=++6Na z1pitS%4s&vTPvr!3+@F=E$rI8izw3lCUx%#BVP#pVqC21t<4#@I$RjUF|duR`wljl{ zpq|9wi?-TaU)`=%TB z#8oG1IMEK))>?^$H2JJp$lA=OGM_gtxDQFksu1VSJCB{T5b6_ z^H={*(`4y1X)`cz^z!n$U7{KnOI#OHN)E#p`Db>2YKB0NjrlAcFP*^!&93T$<3(ZL zenvZ|lN$Q75msL*{cM8GmD zqW~`CzX+B$?@8UTf)72%Mn;s_33*f}07{gIjuAb0G*#uhTWfZ7R3f(O2IQR!BUuE7 zgEk_uI4L7-)cuFuhbd~llO4f`7i6v1yNSUI>`B9>zO!V`O_zyP{+CQK{ENITEM?DS zmN^C|&u{6qf}1Y;Hs8Gc!$YvJ-x=0^Qp8m;?{aHe-iEUj{QLdsHto?0M$u-n`@8$A z4KB%}4~b%bo0z!1UwEj*))E9?u-m0qnKa&AFJGP}23>^VIc#0;)km_o?Dp=K+Ebk^ zy#-Pb(}Pg&{rVuMf0rKvZnTND{d3>mpv*Gk9LHj~%o&r2j13y|B1Hyqw^;VOxPaGC z7`_a{`MgU971=yrqw_Mq4%d)-{(P=!hs6HLSNl)^<7#U1SUEZZ^lD^ySl{eLGV`vN zzoVn$G){yVM{6el{JRht-d5S^S)oK(_O46EFFz{H_WM^i()u0?0>;0HagaO-*Iqh3`-%f*9yTCRNKah^ z16CgVr;skI{XSoF<>sK~-fxP-G%NOsFZYfh@9G~0xIPD9gzo}(_FOx|F>~Kzy<3+w z^V(DC;@lB#TZOq?{s_I^pU%4Uow22DwqJj!@T!ahkdl0UADelcd>|NT?f_Ggyn~VQ zhPETpDxs@`7pCWfWP9R^71v4WPcro%bQ*yt1?M2gXl(J@FUh?h{n_`$-c>mNME7K{TD4G=-sfTMqbFcpjy44*WnZY z|83+^psw89v;*;QwlJXEq3UUmh1`kKxzu+1>~ge4&;4s-O|cw!45vf%a6kB3b6^+otQOs-Sv$W?rRq zV4#1uwspT}@ru{@E{u-;qsVkOP76z_FFa;`#PI28Z0B)k*`I;`UW3*k8?s}$5tir_ zhP-{XY`sV-FO$z%w+`l9>t#aGpJvlN;D#tv^X5Ov0eis1{k5ChH{J4HH$XQcd7pp! zd10}nuD-xY#dhBD=eZ10IQ`F5Og8GxX6cs2bS>S#WbWb|V$3 z#(dVqvQ$>^9r$w{WXJy*^#!EURj>}35Hxb+&z2QrVW-NL>T6XR z8Ub&f-+ga!A$XX>ja+RGu|kUCe!Ij3p+~|&kB}OmPlBK_ktgBGxMPJSNrgg?>%^&Q zAn0MZQ3K()Y&ivN0lb!){8_vrxv5(0)_KbBkRVK`Oh~{%uoDx4A^}kvK#KZ>1Rao4 zOvZs&bfQ3!hq>pZxUrE#abLThqC7PZ?#8qlGG4m<`Kzy%zCg=9)ssR(M?pdo>7a9lsjyqO}6t2_?1QYcsc?cQ=hyHz+G65%~lOFO80+srd zUtd1`X1;coW*)xty}w@~=$qZk`4k*-xFNc=22%=Z(iaLjc4pq@FN6ajg_^*cUf7EK zJ2XaGkvj%c3W|)(9YX$ura=Z{;F05FNGNLXhZ-5#at;Ng5?L!!BTr(zh3#r1d=7x+ zun%cDw3W{-0DR|$BHx@pp9Hkr*M?xT7MGAPt%}&yEuY>tIHu<_^B8$fTwVfo1O7j= zj%uo^K;p-JlXdcel9capQYWN<#4AifOp05df=39u^Rv_==$2kk`Gk9+pI_mr5PFvOgm7CW=$I~EFrO7^u=1AJU#@dxR-NXD!m zEi7XE(bqJsCE|*T2SAGydw5v3a9nBR4WH_SX)aPH$VDufP)h!jX?C{-6k*jId1mD~ zzJEWd2OXurc2`{t!ZOkF>6uYmR34$elfs1jM8z$F#xaNBLh^|q1AZC}QE14a)kC$A zN8#a|P{=2!g}Zx<3T^o`E7j?zz2Th&#wl~hRwTCsTugLw3RI+756nmCNY$wH<`^MT z(Ae%~#SC!>l74}c9}-F}HpmsjFC@UEfS?j1BcTv*uwph?SMT@D%sk2UnkMc4wi^qp zzr%Sg`{aq2uvZvh)T|4^E6oL;ObxtxwLl#4&ixC+=y46d+|vr4YCL67&)M1i^jrkg zjD29i{8cYDnQ__>*ku?_3lTog8evwtdpsQq!F>mz2oI-*M3IKPW+tz%LIp_rztye~ z4NP+g7Cox%8+sC^S&LtkESMpFi~8?QCISTZtZOoi+a423mrqf8BSBD;q`PdL$is0_ zkv}mzbeU`LV4}wl!$ZwApx8etLm|}WNQw|-^UvtefrU}~?jD?LoIcis^%_p`v8>$O zgo09FOK|So+eT*iO_+j5QgYe8zO3tOX%jGWFi#?iaBcdc^|3FbfDL)tjas3^SCgc2 zyIGBU+5Y28fwJFT@3{MbA4k92ovt=Uh`C0%Au28uhp5)rC4MuwPQ6P*Ll{Rr7*u?tLe(?<;DKtMb!~@zLsViJ82a|$yUcg3tc-fMNO$#+y*7&o6mylI^&VL| zMhO+cETL)L=TK`}gZ&m7-k!ZYeonqbI{p1fWnu3MDn&B|{K8tUqpHD+hpx_CRgNACu>jd4D9cxARaH^yN-?xM^`okXWW$z?o<^NIp- zjf|QyDsNDki{g&rG%N51wG?HzF~4dRxzaF+sbU&RRVs2Y#w!=bMkj<%%E&rQ51+q= z)lVv^l0$y6;m8#+Ll~5l8j7*)I(goa$6FO*qM}LBVyQBIL{0u8Z3jjDiz!^lg9*W= zpiyM8!o{A^K_!Zl{>7GIVr576RP;L~N!%aTP1m3Fm=UD%EFvr-12Vi=5GxI3A+1n> z&X9yBpJdp7Yp~0*hg-Qv?NB61LwvQq%RFIVe$5n<98}@SfUZKNqQE0#YWpIDZK8sH z6?@}b{x6T{(rG7u8Bt>*%rN9o)Re#~mXsIr?(9j*J)ESBkBWH4nKp<+iReEJiDAf? zf7mEmzhX<>R{T<@*j!Q6{fmbPFIC1?iBnmMcLjPqAj7RBfN79jeq|0}Wv@S5hqeGnKa8+_dQ4espNgAj_8&X1=b& zQUiH}n%spxMahws6e?}|R+#}UH5o6IIVm~5r-+IA^#_tU9Q!Xg>WtMNkbl`m%iuJc zL7^(eyei^)`5NP=%I}#~ihc%4$7%3ZT)gZ$@IyaB?wT1ekU}|o_t7l2dQ~v)#|l&^ zERj{T6CZi@pE-3lT@rH*J+q7qJ(57YFL&+$vJx_`mj7O*To=ehS4(CVi0G#rE~EHf zu$KGJZ{X;MPA-)30L2{r$D1|_e?>oOSY0!cMaAzZ{~V!&TISQR%v3dUSzwBmZ*G2I zwiLE7T6$p9cJxCrggfI)C)#5xqL*>+e)pl$BeA{dlHo>z@^FVpZvZGl#wfb05(!r^ znNTV<3i1oLuwprD?CQC5h3WrC(^&^q*?oT-qz)yAke2Q)>Fz^w014@m?(P=pMp|0B zyFt37ySqz3`n{j;JHHuc9EX2yxnu9W)@NN;-RF#6Q`-eKZ9X(>(b^T2lSUX7m}L#d&Z3wE_{>f}fEufC zJiv}EJ|w$6pvA!=I&?M|-fRFsT2xdddI^9WDoFM`Cv?M%v`|mF%Nr^gn^KA3v}nG= zoHdK#NX0NJ=(D}kPMvVTX2J&}%Q8}1`&BF`;{ZnSCC1#LI#EysDs{mQZvg(hRrbN{ zcIUhfMD6Cc2j^IQ;@435U3h&&YD&xmLrW9I({5xkxP;HV8C0;SVzSaqU*1Wtc*4Rc zu#J7HaV+oq$j6o-H2&waRItlxAo91@F=i_~aVl$eLfy?xJw$PsA|uZzF*~Nbqw;$DpA0yFaX{e+sI^h4aW2)hP$ai_W1yvTN4Qe) z2cBTM00BmHve((MNK{qGH`J zz9N!*u%6x9bB>9TK{OTX6UxD7x)TpT1V{DpPs)xirSLj@K(pdyzx+uvCknkZ)RrNW z{4L06J74CMrBk8wTTF%1EWQ|$ZC-%R*(SEjtAF?qN>^yQC(Dty5WB-XX2BFVx4+qjS>h?1Q9k z$3b4cUZ;ePD~P3LEagWJ8zjaBnofD&l^>u&NQWp+(!wmw?b9zhB#!3adPDlEQI=&$ z1~!g6<8b+dX8VuJ$+jAX?E77GytpVBzK}hP{?a-d2hui~5JWcgu!XE8t#!sbq`;8(^z2SvxCAA_wLBm+Y$#Eaf-9 zY#@dBzfS5ZK4e<*^%^y)3zH)nv$1o_Zdumhr!<^!!>Ss55Gc()VsH{^f|0KYnSjm zLB?;!?z9k1?SyJZT+cLYU3_sb5C_-BLs;QkUp_5P)ul zAI=e$EmR^g8i?W(pC@C2*p<}4a>)4h+*Y^zn2>_np&c$&IZGPc#qeG-7pp+LISG>} zC*LhE?UG2QWUP-ObkSme5|BOOkgO?H?CY|%kqi5~3v$B|*(s{0twi(R;PGL(X*I%o zZYcwS1GgC_Uj(QHuDFkm*U&*Q^25czrd`ukeUycR!wR~+2-a91Z7mNUM}*+_Gl7+( z{^cY&`jS;H)&we5Ij|+HZW&KI8yZ{{iPSRw;H^;Mh@kw9xZL2)I}^0U3}$Ol(+WOOuq<(dadm639#h-$PrhNpJppqgzzK;)}iA z;^Fz6G{H@su+SH$)B-Y^Mm{3k_t)-gbl;q8)LWS0tmt@GiI3J4h4w0G;6haCw zmHYHU6|=Lnw4_r(A{7lyJZY5zpw3(TN{0{G2{tZ-_d*+Dk|I`;w?!9il?jgKI%}PJ zN@#MyPWAijqILkUKdac$y=2X9&=MLe{+(v>X5b$@I{+&t|GDpN7C(0O<9lK~ndF{; z-%sM98?FiGJ+B09Km&yaO!%yy$7^R$al#PbAchhXQ=+kuvgusfKv;&j0I`-S3scX8)PdVR z!O6jafjGssHC%CcF_rzL=a`Q#TywwW=qGQIpq2no>+S(8 z^!o1Z5$Ye((4qBYv|hhoh%B75QOnC6_z1`_)lD6>oqRCp?w<(jfoRD(6AnzbtKQ02 z3#T~-db9sckHp5xOTxw#m4GQgy~7%19|wWZ@)tp#%a_ZE(igVgT1Za6EqXsMgM(o8 z@O5`J6L_&Q9;84QRudtP_UOBz zNyujlKi&x-DPR17LIW!p9xW3*s`~N{pCBz%8fwAQ*avnDGomAiZ7fbuC9D2`f);KA z$8r|4%3?TLv)!^=@*^ag5O zs4iq>Re_MV!`q?%)zL@{MlmL~t+H+Qyq>>`R%y+b4~fWHY!gAB737C`;`sE zO^gBK`4b^fv(wkq{a8AnAQ0WsQ%Z(08L=j%5xyCwW7}@W z?7bGw(4?YV%=oe+`ukVz2Nc*4!^YSA_*Raeprom^1h7;!^!~E5L-A>ab1gIuyim2N}oFtMPe%drFq2aypo3h?r4tJaFKjX2A1^PaIz zOrG&|v~JijH+cJ17*)IvrtBe0)SI?#C`?YQ!dxDplZ7%yQ2-}$6eB!jTzCsaN5qhB zH15Jgs>Dxf*dRD7t~UzSHj)$>1pJ;wez3U~*w|2iP>dv`!AFZz00wJF%v2Z#js~*L z3#E4jSh75WG$A{_9t^Kfm3p*kr>@0Fufq z3O{{#4}*=4Vnd0MpxW=Cj*Or+7-)L{YZykJ89YE>k?PMrLa`O-IC}ms?b{&6h5_+z z+jZ?#w=f%>43LR-Dz^#|3pwrn9yaRPo`3KTS-P97N(^n|(|{@k9mh`?V^hR$Vvquk zGyW0uV1CY%c88brYYFpnHvzfL-&)woXnhtwJ~oy{ulvkjzT*ef^1_mToJ10(AViTW z>rGYD@N@{2aEC)(!LdESIATLg^3>KsyK$8vDBxC~U%sIV7ULR?dEd}$2lOFo1e!@y zcw;!743!lX2~76)_kkvC{uGr?@f^`$)s0Y!ffTkyM<_r&` z(8$@xBTNK~5G;0?Kkx~Qbu(o!CUsy~^gs$?b*b8!`#+$uq2EK?imKJL^9bkvmj%$1 zLTtMcoScDH=`<|gw2Q3!^es(#-eqiD$CR@f|Cs!)Fa$5#c$^0#6pj@jMwU~PhKiPe zh?19f(=9gRGCFuu1Bzy_^%=uD`gXaz6+WvV7@Ly|H7!+f%`If;rGabayA84NLxmNLCkWPyD8`XShey3=}#mIV@@0Dqq zRrtA1b;WHo`fJYZsaV14vq#aCfNE)tu&G)u0o3os$<5a`nZd0Bi@fm;}6 z`>y_;unYypc8v#~3yYkqoafg=D_Nsq4h zVki9MIr%b6os*VfpxfpZec-8`PJ|WCn;^g|>seirU=eH?mczPiDJpH!B)EwdEN;|C zo#W^cd)1u>6NFSUDoMsACygsHx-?-o2<#`GT2I6vb4RXyI?>?({rTgOcTD~)TrA)I zSCNOB`9}a1@${EE=Tn&fRb&~DZL2@Nv?UZ&a!TR7Z~(CE=9eu#!i%Zm4E*??z$-dq z<8j}eoSq(^eU7GcKiz=X^Edl9Tfgpk<~nFAnpr}l3IVw&ib2UAj6S=r1KC0qQ*D|; zG+zx|Wb(jnXx-G$0t1}Tsg?`51ytRt#>L}iIWMeXoERdU5WqGoCkM10Cyh5$$=2%W z8tC)?T+pT+%-1rR?23h2=J$0=NSos(5PuJ)5eWy^C&ZZGfn6XLML0JwHT;i==`sm6ZiWHKaMuQNmX4zm5Ib4&%6Vd*tip%bb zRk^c#NBM%ncI2ujgS!mcdzZ+9+7|!?pp%Gx3FdSk7hEF+Wh5nifNWItRrfeRVg9#2 zp21_k`fob5Gi0QE-}{UT&rfTgkE13oB&Y-p4oQnGALkc5ZsBDx|52vvv1ec$NuB3) zVvfi2a4~*TgATeZo~N7{dy7@+%8BRu^t_=F4l4zlryWu~nTH0tQTbe5@{qWnu7PCP zkF%V@E>lQtYj=?bF6YjZ0N(DnH_j!5{eN>u+LL^Y(cZZS`mS>t%HGQ}z+A1*ZoG`} z)s=GVX~qT$TrnNipri2RD=N3W@FA+fzf6Z!{mf9+mq9>^Q-k5R*~t85o2%_nb0OR7 z`g>Q~xu!Pc@E_ysfKtz>7#KVy{B-Kv4U1H6(DfPs_kQs|R=|e;oA3SF{eSql>5jnBp%OLhzV7T-w?dS#C;A#>DC9ZWEmKGq8DN6q{lT&7WpwG+$0j zLznor#d*iX{SUl1veSRKv{w@-;*VR#+b_CHB+yc)@eX@+xYVqb#?HlS1prZPcjBe= z9BavjAo<`tl26HhZ)(fuj&m8KC(QA5m_82P6eh`m39}N-RkX1Vv_%xLH#91-vXll< z^R6_k^U@bi8i6$6%n?nrw0aT&os4YpQn=2Iv#F@uw-Pdj!6_|2J>hQkawMenl4cD|DAcQSC z>!~HlS7g)F$6JJ$z6=H-ePsE#%jO{BcvakFv-X;KAjtULn=U!&eS9TC&sfDu(Ly=- z^t|!x#l7zaQVDQvYbX8DkBfI_oB%MrD)tjFN{DpPu#k;ya;q~Ad<(5&ly@Qaj&3p) zQ(9K8DYyquXVe?_$tMZ(;vk9MTM2|X7lBa3-1g9i7GQn&0=%nDupM5`Ob{#?hJ|>k zX&IV5cu%8WvpUwe(->A}^E29$w=cZIkxV)1Kkzf~bG}$v>ecH+29)A{%2lAkssSCF zK$g|8p2@75yrTbD&q^rr*8MrUUykV&WRwrq&ivPTA%iJLy(BwdRb8urfA%YVm4alP6Ri-%S&xE+Dj)tZ3n*h=XF`{nlyS zidjM^G9I68hMrffG*+eQ`;L@g_+LuIa7LjP!g{Tc*<)nb<=Vru8@GSt(7B*2RqM$(h(up%$YDy$Gp zyM1cA>_r8PGP}D}oB%{do*vMu&*7BjZIdwIgm>fHai0{jXew4h7}31JSgk{;NPb;JM8Ib|r18UkOM_ z{>N)EaDMe(zj;;6z!2OH?-TL5>gTLOt>|yjFLS+HIv~CZ$XDXq`;DRZH&Bhl@0j^Z z(*fjui#E&Qs#v5%q%3;=`K%9(u?l~3aEdzkj4`x$Fh zcFx+=#r?_cL_I@vai?cj;rv@{9P9@eKixxIKZYr$jZDm`}@G@V@dD^$ov-G>xf2}#)L<3&M z>tfaiU6T93jA)%%T?==Xw~3~Wr|j70!!{A#zkW|5Tae;O*2Zh5IqgQjGcGo~maBGA z$nz8itH?`KF{#_GYOMEcNtIW>eC5mdTa>aQBO5L8{U%T6(fC2<^M}D~m(_gIryutQ z4ysjn%3OUp1`mCB9e+Q3Bk|jnAa(jn%ldkWDI0|E7fcbryLL8sy~b7&^z8EG$#$LBc8-ix?eN?|_vgJiQue<0 z-Y~F23EJGxuz%n82b1Gy5LAEE4ac+g_WDg|GhCYUxE@d0edY* zj@6Vmtoul0-d^A)07DNCY4emjaMxeX?ETyH?K>}CE?%Z$tD5hYPwK;dtuwhi9Lfl7 z7Xvt*i`N611=O5}zqAIoH;jI_85?;hHb;|U#KUa*_yP0f+B>Z*Fd;@Ba~hgwi#0ny zx~va~i{AjOS_5DLlV{bT53sCNcD+7k0AWjjk}>|@Rs$do6siNrSqX5wEuY@_(1#EA zlDTB?pg@?P1&Me-BU$ddPQ}1-eM(BYs&AL?UB~O=NpW$pvf$P4s<#b$1x3YAgwdai zZC7O0hAk~|^gEvo`JBYw1+W(+1&5DSo8OkI#rR(~b=|sB49Pz(X)J&Sg&u$P#ZQ-* z|GGIftMXB#rDu6~P8E52@PAlR_P@Ss>ZBju_QT460@t1cg!E?s{Lt&(Th0BNqnn1t ziuc9L=-Esng!+RxEqGTA3>H&?RfSDvxb44wCoU?Q9+a%4l0<_q8-Vv$LsS&3AEytM zl~p#U;cVLQeq8!`@$yn*P6PW6pK-_+Ad#%5W%Avx*G;aSXj= zPO3J%H-giAzLk!YM!o+1m(!HSe-k5M_i(}4<+#(Hv7uWNX2^ZNTE|_!;qi3luIG0o z#oBexUW=ndA-bO z?!P>1mdyiY;{Gq@L}=DmAoCZZc~@A^aArpYX+?rhd!ettK|^ z!F8HfhZg|B=(rjn^7q?MBRW{CH{LtGFmNmc|7+e+7TjOlp;5}bEH2Jz1rS|j5-&3} z%7Vu~s@8lbdl^|;4vz*&J09j&%FwHrO%@{H5=u>-5C{?N>XsaQMkmZG)Hiu=i*kk= zeXTZL-U}N}OnCd9)@b6b-JLvSWv!K{kNlbKyd~n@D>W*O81AjkuW*=UAKY*{IXlRF zFpxL!eb^ezcIc(L%!={ZPiA)+I~>oV8C zv+8)FSk?I#k4JV)J;U}_;j3`olHJ(j6HftinQkd(7^d>F)6!0--?9DM< zzdLI?Yme0?7i-I9d+W~n-$(;M8aN5~B3g`VhWHj-eF3z^Xi8P{W9vz_-{aM%vd{XC zd$GN|M*s`@{4`F3SuR1L^UwS|W>_vz>1=o5U$fw18U>Xy>WS=|E&C%rz<f{YewMa9+EPB=8aU;!xc}mc2!%jS!q;j z;T5ZDzdKg;b9(XjKOwr`Xu4dz+4tLulmSzf?oD639R%(u@m{%OyxtvB#_D)nyu96? zI#-hN#`Jk`{8=zy*1+ID+?3A8od#Q3PaoBnGiZ@y=XP6C$S33;)w!?TZb!0u-Oi<= zOMGc_V-^RQ6v^%8ej`b%8yp;Pxj(I&6vhy|T%j`;`%MK&ZygW0+8Gdj8AFZ1J8SM6 zyW@Vk5)ra2a;B_E!52rynx<2wOF<-e+~ifFNi3POQpHhB=Ryubfh2&)Hyv@LIxm_U z8jf1utL-VwglsfHF_`NwdqRi@iA@wh2~<(wph+v>FV+7_?P+Xwt6A==Zc7;c^PENZ z3G!WCz+Eqf60C7eAE|?>qtw`;`TyK114JkO;ij-*g^-CGikpfT@G3!zoc`q^`Rx3C z(`oRs{ql9t7enxR*jHq3E=_qG$S$*oKWpmy?*PBW#@H+?x&dTbV)wZQkxF&BtWa+9 z-=})+BAWqlVPW$=cbk)AZF>W*zC_$9k)h(nQ5u7{(?>2PI7I0b^wRt@MI5nz(rHYP zX+c-vQX!WmYP8X7=F30MV+$v5;XS`>LiJ0p?Pg>9cEeebHv=f@hq`a9gL5j`TM zQWV?2l+GOJ^HsVV-G^@YGf+UYeDwG2<3qGdZW;gV{WqkyzZ;s* zF2_;Yj-D@?oj$v<_AQh5X|foxD$9a>lxzpcAD0)u{;<@jTV9DSv zmsUCBHIy>;^I>aM&h_oa>b;fYuhpg^|Fe-!&dO$=Z%b`>37u6Wp1&oO^`Yfl?m2=i zW+Qe#=*(%pHdJ|-sCvt|=b!78cAl`bxr~EbsS3DOT%QQw_M}A#DpFFIy>6{H(%bG| zpKx*9&(f18S#?OIrbbzXyNvrI)b{mjo=CjY$LIbVKXbho)@IUd6-fFILAX2Mjmexk zN^yrK-{iW&F+ND*e+qaqn`J`NCvq<5`X&XvM80oYayAL=-h5N~dgASr7U_T0*7+JO zpL85{Ydy((65+T*V~V;HrT&DM%_ov$t%jqi5ngmuWRwWLy{$ONa+R86AJ`edC3)?; z7*tNX0)z!9Qtz!QE$tak8*cQSh40?H9Bwy*F*+YApNL}QLBpmTyzlkBj;Qr`oLkx} zPjVNknIfGqX`|S)9di01#Iz~NP@JXO=uwuo-SiW?=F@~oKaYNl7~W@V+Dr%H9hbRM zjYwQ({_}s>t*x!^`F7(NtJ)p=9-~(jayA7DlNemx-7B$a~AHjSz5ODy*Z6O z(Ue~uUG!KBgN?bpnP|~^d3B|iulidt&oqW$%SFgRqt=wR?YUlWIkWC@g{+vYxPsRE zV_>WnYJ`8lyu>}8n~RSOF{I8_2n$0Bf<%l-Vuh~TU$orBDtGy6`cY>nQLb5V>sn{pe9;-wYMB4i zD~ILf)@WE%>$u6H<*@-bS?;m7RQ$DRaCBkTZB@xVm^Y%2D%YGpaoEh7NYi}AvY^;X zu_`PK#nR=fFxBs16;%Lj0<-dGdmdqav`ZKf81*+h&S{O4C0*k1?cH7Lc|vsXi;$4e zk;`YESua;Qvoxbkyz2+!njhol2NPKtqqtTQ619~?5vPbo_V)JRfuv~{?qDtAhgW+* z#xWsd5aT;YsH0walie|BC`HReLvbw_E1SS1f5QD&#t~}(2+KMLQZG6B_TP6%!x4RS zV^H*vq_6uBTEpg$5yh^-&NS+FTz1j%R@p}C?P|Ce@j|PmEOfu$n3JV*c-ZUPKV*IW z^pGFMFb6r~I1o%`wqe5UrxMB?8r#KEnx;2-{!!`TjkojL*{X;F6H+G7N&l3R`zfQ+ zXt|VP&2{i&lhE~PDUbeAM*){be8*XdmQ>O^8 zR{P;<3!a`s=hUhN;V+h3vJl<_)k95gJB2-zG=(Dl>mV|^_kS_P-Ik4xn6RfOOv! z&idNg+S1%k=u`nD(a&v8xvFJ9J-_q0&~fF=@8RJ+*DLKyj;8Xxl@(+2fah#>?8LP>2Aj|!A|9oRL zi|Wcq=JbA0L>LQc3VAR~HuM{t_^QWIvgX(GYTIoM(=>}(=q<&-ce9a}a*Zgg!F)?9 zbQv56in#CJ5TXT><&Z;w11~^CEv6gU+%)|96{xj{fq#_}N@2RVM&`*T6zH;~4x56= zBl1M6jXW?gD<%|y)jN<1C6iK8rO)-cg^Qf(^4W%)*+OBbdFq$k51(`AoE4+Nta6)9 z=dnf4n|zk0B~FCQo7k>p2uQaza7v1mwt+^tqXaX@+U+R#w}WlcXLSq$FQv zF6_GcGOu=M?yL06Wd$$guxbB>VRk(qXZ%+I{lkb?PL(XKc#J9C%f^%}S7ZtB*c!{q z)Ij@Be*9TL@(c~2?1ACOz2>-7GONi77!+MXJg_*WKS)u8FzGxme_GJLovZS{3A3)` z$RAixdTcy-deF_-Ehi5*DG>dlFY>pKj7zbtnAX77DcfPd)2Wf(n zW2W}k0nVZN(1K%p)QE{}@7M3ezGYYYsOd&?w~o4>RJMN_eLp=ylc_bDr&V#fq$K6>UB;p+$&Ie2Z?g>RV;AS-OuOgFW%SS(lgWJ}qxq`xYksOY`!=iP;PrJN@`Dug zQ*iBXK#8hOhjZ#O(rCL;1t@Gd&Cz5Lg302{ILya>d|*Th3zOR!D6FAEM?;%GxgFjq zhROj|LU6c(Fm1Erf4-x~?F`n=%ibvip~KFnbAi8qBru+O@znUB&gq)^>=ytB&f_j~ zX+`-6Gnqk=f-=jFE1lC>n-Ixr`M0E4CKxt&p->S$i>;U|qNJMX1TbphiPtwZ@eoEs zOJ)J#82g>C!GEUNATlrz{eao}Mi;@QC|?K#oNGUdEGs^?gyIT^6Nd7}Ad5ffwyIZJ zv>FwwiElbpuz-gTP*r-l?0P+-YIb-HZ>$?46sm2H8{}M@`yxHQx;eVc_kDqv`>7K| zjHE6)R2x-8H9Qjd&ByI(+Uy=^RsMGp-r6*{%7k~q6{T|J(pviNDxSWH=0 zJzvH8qrJ!`f8sQ=P8raGT3DCyk?dgME~+H^tn0Mz7Frc*xu{J=+C;DT#E%(}|U`3Qiidw6d3KB?sAK`h$z_MXFJ~vf%M<=YVE-toRFLyhG(O=l!&Id_+LsTCZP5gcCmcHIR`1H9}Ga!lm z9I0i3yrbt5d#KMEEy(eHxINIo5NY6Pbk^D_aG@VyvFoiUu#kOr zs8eICTH~+Svid`s?KSMAQs-_U;lRKLxRKr^oCQM^z2;A0yu<)U2#5Ys*QRx^lXTZIS_Q(lgW_!D zpi6*=mBwM_q^WryRWhRtI2#uXd|N)#^AMu5$}%*VU;KElM?(~GtKloLW~==ru*D3& zs6gBwAtX)|-UOmCXIuj^k@VRhB___~cV+mC`t4yVS~?h-E>{Rt6PQr>Jw?YE=d?a{;rN@GF~?zhFp7elYD)%oP%`DiC>s`G5t9&#t{x4_ zK!PY1t)%Fr0LL;dX6!TX<0t;}9xhv!=DZSOid z%YPtHj8)ijPwUS2_@hepsAi|g)?_I2AvoOYJJo_@`iUp=)eTj4$LMMBd%n%KjSj}aX+HtQycaqCW$*X({C(Sb z&3HY%;vgmH?GkAthu!SjeNxzZa!J5|?LKpkF_kC%6NKE2Us0Q>S0%Awy+nZ6=`cRk z|31@Kr1LtU_OK$yQ6dYW9JyP&Der?&O{XOh@uv*(-py;7#I?K^a$JxQoj)+*~T zB-rW>b1-LGty=k^7dF-R{tM)=^mEu31Oo`4f+;iM{K8r5puT~?ewp(muj>V0o&Wvc z(Y7=9YU!6uibr{LYQ63nN(6KbIcm)58cNDZ$aJc%r*l}f35L*Nl)ZkOT}E6DJZ>~Y zVwY*+!E0=N*Qirjs_wJ_1O0-&aqD)ChC%X=}#oK&O*$w#5X6^4??zG&PLUyc8O7o&+A)6oQYd$cuKA}f`iU*6d z+zn*8Z9M(T?`kxENVv!r(VU36swv^rL>Wma_fr26mOc;Jouy*h)=KB_O)(#4?YhGo z`%s1Hw{?T$f6-gF?z5AurX;xayUN#lDWO4A?`a00mSgXEN$_ySz8wv>9QfY<41WJK zSK)r{-t9-5?J_NaA;M?qrbv_{Y+~Z%L3DI+4rJgh*{ye|n{QUe3$s@mnG2bDo5YdMO z9Mk?v3-N&`hu00q)v?$LMr4v?0%OTii91M32JztqISydOha@2~eg7efJkv|(mTBH= zyuwWsz3jGPYyX8{5;de-HcsKQUZ+n(`6k`9y5hdgXtGjB+{4WQkX%?|)U1>Q0cTJa zoq7vEXAZCv>y`jW&`_WdcBC=jM{B*sHQkh28FUv0mDjMB{;bVB3I z6R3(TKQnyjV?*o1CnOv()m!Cs4)W=HUZ}L+1Z(1tIHAhip`7#7Z|Vr0m?oF8p=^81A`52Y_F5T*UE`T zr@{$pWXNOPWS2{iRI0wuaG}6i?HBG03?Y#SxGxKWlhMJ|b#+2fa1(swrXxx8_MH#= zzerPtP3HlE<|uQM;PYi4uzR@pnes7R8$s;P%uJo#8vjZou;4f7?D=@mC4t5Nvl8?fK2kpSCLrQ~-5LiymORi$f9?8}&-mmzS3T zjs#7jQ53*eYHZ{_g#4sKArFC~B-f}=1M}-LGBUs+$$W+l?O${W5myBKPLU;`FGm1S zMMlJ|-p&uhv^hRIiZ|vqZMMQWtkLx^;HY9QROfi$a;QMgzmRt`)d*c(-5)yvmY2;+ zRGuv8s+TcR>2bhwVf`{P%k9V9RJQ%>Xc5C;Zq9E^EQN#u1sYA3RCG>T{DJO)?E(mP zS#p9ILFI|Gs_6>1>?O1Wr@h3g0R_DrN6ILQI`KdlASTLkUx$ENfW}x3p!DzthL}mS3A^!wjlY9?`3$NJd+>lP#C*|euMBRV;ufz# zv%?mkRb)6vT|3rxleN~x-ARH!qU3`89rA5U|kd!Yq%%Oy}%fB9d29I)LFnpUL{J95Sd1bSs@g+aH>sjvZtpA?xa3r55mPo1g*|>)k!7+RbwnP(tltjB(=YveQV2Z)hKx^vPsaIq7>ZEy*AOsSZE&l>O5;}M zkxQ#OgX2Wm97B0NSbX6&Cgy#VW8D&3ANU+wZ^62Ousz%Tivf9vZHCcq@CP2nnfo=~ z_nc{Hy132zj>K)1s0--i1(rHEQrI*K4#dUk3_U_N_ydlEA9;9rdHr8~RvHBa1Tw|} zaHSYH00)Mpq4EUZL~lV%W{j_isSKD>`oRXf>g(~8c_UXiy|$JmR|s^9-QHgAa{yR| zXeYpwU5{jGrOTOYt6W(g`C_p}2_hh;0As&1V!{mK+rc*pj03-;45@*cQ~=SZj(&&? z*8O9{T~^A0BQZENFNJCpgOl``66oYiaaDXS>oK&JQZ;P5I6CUV2aciY458q68$1yd z)zo6(f*HVK-Ny#+|IuyHtHTZ-F%xN|0hyd_iVR{L5_jN9Km0D^FF>U;(hmS|1w`~=~>6U z7*N>L$&KSdmn(tO7XWbsYNz}u82?s4vWkN69~igMc970d@atab-2KZW9FdZU{Ct73 zkJB3}YkRc{9ToBcNIQiZ@9UlDIp0%wV6uAfv~_?n>Yn(l@2Uk4?fvYIr>oCcbnBkPMWaHv>8(Y*R_rL1Lo6O|HuH;;mN}_Hp?RWg4Scps>vqR-*gO5lK zRE_%n_~dXf0cdlNC9_lw20Iy_16VWS#VuH z_>=|J07sXI5~K+}8Ff$(yI2sFY7lrUYQQmEn@NROrjztHlJEY|9^?GjvfV(epHKhp zFg8)Nj`F0|gzCryC=g7M7S-wVz@QC;h1+G0#Wd!=*tP5do*At=b95X1j~_qIS$$w4 z_7I6;Czm81eDGQS4=YB76(GIL_OFu^Ud-ED;5Sx)Gw_W5{CMm2kz1H<6ESw)@x_Jz z%#(yhJP~JH32|$u z!=y_b4-`tFf`F9Z3_gb!T1T<7T;i%>WFG))pP^=JW$=f|Y7 zS(ri`a`-h4-35eBgaWaddMXGR2QYAHroCy}x0F6kQ;pu-7%eTaa7z~vAR$W8=c?xs z5B?D-i)Eo1m@k?xs)|EKU0o{%HjHBKOJWOSljhH|Yh{saM;kSb3U!2c4ORfnaQSYe zBD3T4xv$c_2Qc;=gkgR-QZ2eg&=UNj$`dcJ2l$lUCF&{-OKsMLFfFM>R!fb#hprGa zT0%o3KaMa=Ed1Cro2o2|y$72v5jF;4AD0~7_h;Y{Fi5!4h$&thqIzoY=xg1eldIxD zj6~j($7V3}sDy2DiiCN|H+d7l*OLVY@twTk7ZAv&lPiP*xAN5Y>(_(LO|tTLU{ri` zlz1P(cR#}}+1VAbE#Nbk?t$D67k9u4@^+j`5h$3`MUNFXvb7R!(D#DQg7Nl`IO8?YS~wTI)#6WIo#Mj`ZOIugnNNrM;Ts<$Q?aI1ub1U@Q|OdLh=Y1P1c#}vpk zS}oMWBsb^?T*(fv8?lUrMju-@{D31G3;ku-)|PTn$w_M^PzwC`TMf8fLcw4c;T%nz zen;X3K57fv5XP zSOwd{7p_rl!SxTRs6Je+$WNM4^Ey?WKwCsobyb{|#(cV<(6DrmOT{gLOJtS2KqvHP zO$`mPP&Nkaz%~No>&=On5ggrxaZ?UQV()CAqYywifP9;w1iVs(vp0f+j>{`6!E`oU zgy}^H*&9=HfD|zQGhA>4$nqaL1sI+oKzD=#b^^X6r?azDfyP7|r5!KIR6C(nKme>P z*B>20u~hWFh%0q;&Uzf!k(?}YDN@jf{OrE}q!=iG+e}tYvpNkTC!>ptG=fACtY1G` zF_c$XTCkf#0DFW@AM_JC`K$#Ou-h)4i96*~#MW8}LB{4iFv9oB1|9+Fd|0WlFr&YB zcPXQ0pkjc}CI>5nOz=l$<35oJwl!_o6!5*8X)m}MCdM5Eg~I56VM!%dftNyYkZ)>b zYWmYF!+9G3oZWDPIOFJHRKengzuCk7aREH>WI1L?vuzE)j33-o_lf@# zirImd0K0`;6*jbdU6!Zp#K{BOm4T375wk9WdJC4lLL%xKAId$5`xQRpNWqS_`n`CK z6;4#XCq(oE?_P&W=O>KsV~3SB@Y5K1uV}4sU@bGHj>b`bi(idm|05k>E$sD57hy_a z=7dnZK4gB4jF+r~-lp&EU2KN&<%R50a8lEZpbUj(vA)9H+5&ijYqWmjA2_wBPWsig zs-bPA=&}G~KXps+(Y+4ezMErz2DX^MZ?@i&D+LA@;T#_13nv2Sn`ygZI4Al?lOY)Z zEXPy+J~PuMAtVfv#rVw}0*=`cU8Tzy7su4o)Lb|mCNOabuuKO^dtzXCRa1Ov;hcNl z97LjzH(g?6|5<|MpG2-kYY6vtfN|Xuoj$&AGa?Z7*B7df~+^b{%A(#0` zY!`(Jl?JuPsU@?rESwf1ZlSPHb&^O$pQSWfd){h?-&|6UKnkZgBiaG0`C&HlC!$uD zUx%6Yk_|37&ZF2rhErx~?Y1#} zPwzOkMP*#{fD16fkCCe-pN#^)8(eT*BLk6_iaG25J`g-LF|Ipy(5nUmZlIVUKD~?m>D)2eQp8yy&bcA0EwC(LU zEuEGd844+Izn2hQCUk!mli-ijwYhqpv(kWmpi!xq`cXfglw_MKM@=qS2sMf#3^UIt zs$_Uq!yB`nZ^M*0TmYrlP6>n;t%VVP%svQI(3`0@uj4x|?M1*7Uu?`8-4hM7OfM?3 zR8fC70w*4R;F%8zoKiq(UIVkTqrpu`(<3w#m6qm*38sz~&REK>_f4O)zSoHc7J#xj zQ|(H129-8od$q&cTIufQh9yoI1E=Z;k`1_hmuyXw2n%ek(+i=l_WDvo@YiXo34l?n zG8K(apdiPc0kI@hyJ}!ZKf|@dyDK<_Bc=HvT@r-+=lETIP;yWyk|9<1F-MvLcg9D> zzrfZp{A)lJ1}jm5A~-F$99B{-KtWAz>%K+zy)iPG;wLo9)KOJAF=+be9MfZHISBA;n3Kz8^GPJ4P|`ErXI=ku!)42=*`8#9V>X zd1T0w3o6zH$o4UWv8mL5RuVpQ4hjGKe@wl1JeB|dKYpw_gpQF;_OU|Z7?~AL_Q*_G zS=oEGl47Zny8{4}YEOT<3bO$GDHUc54ThP z!t!a$ZB!|M3P<15f~bn7ItF_2e|r~PPfh20Yf%dYjg1);l9X46#mA%jtEgq3Qgte% zBx-Oe@_i@ghM5c6T*%dODMMu_h`vI89>^-lfy7Ezv{i~FoDj`kx9w7-i2_k|pfLZV z7c5*xv;$ov$cZw|;~>Kw$-+>pt-j&gI4UL}3KgChjz8lO4Z z_8-2Lr}>RDDJ*gD&69Zz%tJpdUX11o7kwduh+JXqO5>BnqJ$hBI-|%=hx?Othekg4 z88sI?=RO`0{dQ%j7Q})aj*JW+fhLd)Gr@62LQx&|6stl^9xEOXoa>Cy=fpy0e%5w4 z%=o^kved6p)>g`6AYsglc}i5}&wleF=Df{tccR9l?$Pug!=^4V3q>-XKq&d%x2#rM za#05D-O&UJbnMT*Z&TmiAuRg0ZVgvy|9T#KeDUX8wv?w^!X0h`Qymu|(Ik6lJqoHN zMsQRpUFQPh?<+>Qtaei68bK9`@`ZPd3P(3Nf)BxB1e6J$BN1<`=W)jcbdm_pA)Ji? zPcEE=3dp<}1?zUP!jP6*XnZy(A{35-z8n1}&R{DF>?XqyoiL^)x@UZKNjx?;TDp4B z-(Wh!Z}`rzt>VJ-3wd=<_5CSi>>-zSQg56u5j*oIT-eVo3>--iDFpGeF#%KU8&NEj zRyVMsVg(^om-}Dg&id}v$_(FnuPQMz{>*A^a4?f$#&S|>EL(d!wKcs(OmZ;k33k&& zHbRs5d>423;00P{LPX>a+x&4ePKGTSc3p!qA+|c&JQUTOxKIqkMafa=Iz1tr{~Zuv zv@dSO`ET`d#oMFqO7&TgOy1p*9+=Z_M#g|Q$`5SM-DS8!XMNA@5kzSd$9Xp_s0cSf z7ne~HceiU|aH?H)5`?hTdXc=t``OOaiF_An;kfPWP&{RgT;X1`DuG<=Dvm?}OF_D$ zsOR3Bb+>>zC%llP0aO?kP(iYPP!C>SCVY)sU?#+6s{K7^6bPe#5*hZ;_OFNV?9K%L za_JGYYiFvKiRDr1J~=YKTXdeS zFAw8%rGCP?!W8g49Nw{4kKjU{-eM#;tNV>P08@e@c%yjZ1r?9L&MaEx7QX{Mc#2O>hW-6c_Eu60?!4>LCPCt3s94Zrq=*{*tM9IV?)1@6=(@0KnR={B}7JSu}cs$TF5kfZvobM=Sv z4Zxj?r?U68O{ZBNqy1$pWBWT;QM-2#3wa&7A-AN^_g&A)c2;oEuR`~M0eA{RXf$P~z0oTiJH2}+2LlYm}PP~D7-VsyYGkX-PjcVP?o`xZz-MqcrY^Lo6yJ-;1$+g4e|V0aX!2|7TB8>kG{XUQJKb05H0!~)*!R$8MKDBg z!`N+|LycPx&mWM5E?UreaK5(^OoN+PMD5$N5y>&K#G2*{o4=B%VGg%s>`l*mrBPGx zEZipPQ}Dd#{_CuTH=0H2PXjC$~ey&s(BuP}$;{HD>z)pfJ( zkT#1iajY^H)<<6k%i=uxw|*V$$y`2T{Mr#KX+Q_R!lT=}3KmEDE4%qy!&&@i81~}+ zB>((#kI?UI|8kJ!@ItEmyp(p8xlk=&j($YWwtCS;(P0dAD>gV->l9{q#`t^r%}!FK z1l*A;woKlUWwg^g(kV`g(y}3{(qp%4twVS(FMG~HKo5uwZfKZ)iMB2x3L3ds)rMBO zo^m0pI!Hz7dr4w!rlgu`@`;(zu?H~@j|F+mJq)(0y5`@Ne&DrxqSLr0PLEYv-Qkh7 z_SLn>3ArusZ3dMYIJ_jB6rNx7DJSLeVnjX@Hz$TqCEl#`H9I9&|K^`RXtoyG=4Q2l z`SoC1gtDUGnb%DB^tA5v4X#^E2G1zx%*x+7*TV6S64jYv%eKJ#ridFf>&GAn7iIEz zr#oMs>*Ful@BY>qoYDEePvPD3VkP7)xiE_~juenK(u=F;d!hC4rRLxpE>foX=jOsg zpb|0r;d8yq`d*#{+5ceyPO!rF=cnb>bOo-Oy2$_UZu9hN9>x5_4|Riw`an51+|pau zJDw$Dn=XQjCRMBaW!j(@ZBM=4(Cy&S>BpBtc1QlQE|Loq4b`A3@UVKM{U%6NU&}_r zoHAgy;s97*DM{`0yYsOB;z)-CKzEX5W)QD*#?RT_eB~d^B%cs(t-n;OWj4!%?)%2t&&J0IGNt zG#PS>V(til3(l~ODhR3fZ!#;8#H{j5aQQ0HcH+5-NVnoa5d=O(AS@=A9f~VG%Ecdo zk9Z{mRRi3`zyfrN(hVI7JF<9|uk85JYPsyxw#-*5tCrV5fxvJ;GaHG%e2^i#CA&y zuYp({A76ixRo?5i*6wX!pw@yd{uIGGAwYuo-N22&*UXZSM;ons(pM|;DSvidtNCx( zb`}|ll9^dx=1Pn?>_pwkCY{3OK@{523Hbfr2U7S8?f6$lW$6n9B9_B=SB0ZXU1rd;^-;`WvD9im+kD9CCijK|y7V(J*4L3>s6za!lwAV7^3&UUN?6AL_ znpA^ILPrH25f=rk6viq34D8#)_+$~ z_VM`$RwOU7610*FqDXtG{xPUx4dF7BA@S%(%I}t6sR2iWn>TL6vmm4*mZc0?jDleI z@mpn!Uk-^7??>l`@yc-gaJ?{qZN7~&Nc_$Sg`1>1cOZq=64fp0h>IxJHO{g`dyB4D zVou1FL@py43;2`Y={%-O*5fKt7$A?1%ja}NbqHtjnuNlP0m25H+bFL7AWQoz_QPD5 zo<^c@G@>;CW{jeo77H)oLrB;{;(Yp%bI+V&SqQs@i93|o^4N*~9bcusoNXAp7WEZ(||mWs*~LC`C~cUN)`lKN#kmu zP}~>$#C;OjqiKPb45f5zq<@-X>(p_ngrx=0*tr*qgSR5Q_Ff@`w_wW)bdI?clQfxf z)Jj(x)d;kc62M*B);S`1*J!(K&NX;Hse@N{>?_A>7zyaV|9}?F<)F~K0C8Sk9$q^# zN+$3B9iE6FbxRV8AefW>O{p_nW+oF-gg29X1i%ymBl0?s>d7!Cvh)H#R{Uk)*c{+W zc?>@}_SsN0IQ`l4w0668hTe5t4fGK6x%$D3_XaYkZ?r>CK@*~lLl*m-5{8P%<yGN;X8WYKZ`f%&$GV9GQ`aCjPi_uWF28uQcy|q%YV%N>8%cuk-|xGwD)m2aC@PS+Nv39@9z^L z;_?}D3?*SpaMmh0mO%27u2&RcazVxEeN4a@UJ1DbcMNJx&Hjw&8PT~d$i&DZ zcR{YzSmGALX7=X8^Pq?qKM?%5YhS}mqKeshhy6- zhz)Sbb~8U5``-TFDUlP>O3(L`Qu~FlN(GAr`Bs69Nw0%nLZD`9_@5q+tUnSJUd`;>CgEiDp*v=GXFzcrcV zJgDsNwP~sOz~5#lU1O-h<7h~1J-r@AvZI@b1jM(CU3WLkHpb&R` z-@}?n&N1_WY1^ZN>!pxbo+Sz}8O3ESQe!)5{el3;=MH*g$Lparg9rLU;#e^gu>%{0 zi@ujFeCFl820GP$r`8NiA~W3fD$UbdAn83f5(z*MLz zAgB$>CqY;A_OGji1U98#MiWPq2JR$Z`*`oCYdWXVyuHzK`lFm%w^m6b3hQ&0J`_#* zg836017L4AVyiXkTYb8x*5*F%)B!GxULBVvM~e7WX84TVS+UsPX~#ZF%xmrQZtLgX zXH$25>NHq6U($-l-+5x>s5JXmsV`n`aR1HNQPA(qd9L$`ko!JctqC$hW#28RnG2wF!21fYhWOJHL1au)48nc2i&0iT(`Q+ z8ThY`(yk>8ipI=+7sEQ}!E;tWIy$8()2h~i;kU@{*FR5117E&|%~XtH63?rO>{pz# zuE)WJSzddyttS|Yoy(|abyufl8Y<#vLAQ7=w()MyIb5ii4X!`@J=nN9?|d2ZK_#o+ zx`_T&{jbeKUw}#0s}Z*N6rUqU81;(0m|UO-okGXg0VO0flEk+s``^)Vo9yxM14^Rk zW#GVr047^u1(vn8S2MR(=AsI1jEVDjgX?fUG0pc9ee+IY(&Bs%n*Dz&dkV%ZyOUw< zuCrz}-`PFI|6Rt|H*JJs^`8PdcS ztoY6YAV9yDVzVGBKzv)|H$M=PK}T$`6rasqUF<6Yde<2JXKyFLoGFrbTHN|as~dNH z{g28TYr=O*J`Z`FBsypL|DD>nX%~Z>^Tjrs4`*hOT{y30UcHrl?YW-wcBpkHvUeu( zcB&=IZ(+xhL_6JjuR#iSzsry{1Ap6I%R)bAK;Jg{?LxI@AiBAJKg;WKVVFS&&hMOS zN`G3f@&MoWWW@Jx)5Y|ots6ZmQ?0)wTF)*_#QuKi=l;yrQ}w>@jv2N#<9RIpyLNJI zHfZ;2Vxc5Po6m>VQ4?1GMU1dO=V;z;xHs_3)2h+YzvgnT8)WzRi|1DKW}d$wWuI@4 zV;+a>AHTT&vv%7vldHe@W%={?&RS5Kz}O5VJF2bwtfd3M>eU~ES*MvO@z#1R!q$^g ztejMxEjc=qA=ISD*TYYp$E+C7xn6#DRFBA zex<9cP9ptPwwO11c1o*LnnY$pyG91t3< z`?nf@pQX+QlbuU0O7g8rulPqha^Tg`HB@UOo`vkiDcC~y{_L0IBru{iKOOo!#h&~C zaI0&N<2ATZNsG_}Ahz)L zu{kM|dd-{*^`Sfk8|Abp?fe67ZL742P?86>Vl{7ibDsfiFVt_JrwpQcFYa_y=uHm4 zQ3t|>#!8^=jr!ImF<(OGJ!W|}*iy6N;FXulh#AB=-zfq<@GtoxuMv*Y;duEjzyfW}QW1|0^ z2lQYI-&pW`{WPmwt9axKcK#{-x-Sbk9C04~@(XL%lEGFJ)jMf+I^v+VT2QMmwM>;# zEmBYSKklGli?YXB88nvp52n_LVZWH`>P|ej1ibpAleO1>?v2$ueq1`+t+v#tK+}6K zsi;vFjVr!lkNx90Ud8p5oSVE$Gg+0GxyJ4!!nFT&*0ds=qTXfm{ma)=UmQ)`brNw<$G4Sl)at!vd^(hv6nq^%1Z#QQ9D@6n^_xpY=PJZ*@=FER%CJ6=4 zx0KT+4P1jQEpGa+wt=<@=jqamVyZcQ|DlrT`8oGGm=8cnehqWE^an@wQ1qwst6`2Y z?5~zbQ!Y?eG+Kg)4xbWV8YamR5y2>T6Cn`D_<~6)usrCywDiUF`|{kM6%cjw2w_oL zY285c*z>asM>msBe1brp^Ok+TZEFK}b8~D)iqh)iHP6ib6PLqZ$2-qr&JTwv?wd@y z;)EOb%1W3k&6{1G)7gJ<)UFKLC)nDm`=$BG&8DV{n1XpA#hN;ya2PuCOoC*lpWsl( z*JB-X_jP*n?17bg%*x8o1v$*CPC3V+yo!e$yd=h{Z10%=H3k;a9?!2(jc@RiGghL|x<#ZHXJ}MigwXBUFl8;LO zfM&P~bir2oX{mbJpSO*y0FG( zE3z^q_E&T*ymfFh&1J(>@o38XI2l+!{#6L^S}iKfavaQX&vM$67c^=7Q@x)0pgdWi zvaZEU3enV`o8f=-Im_3vSA|phczkRqmEYa1M(6QCY=_@j8*`TEvQi(IL}(kGFz(CA9L}T8V?p zVU*&Bl2`jqFhTRd4Ciyg`)49`+T~<3f7aKLNTSq3ujap=nL~^00hO1ryDx5EkI+3V zO1zRd>K__EfNpmnpF1ten~aoch_r`e9$Y*#=ih7(CQy#;sXU zlVe(q@|Kx*eY`4rgf6+X-H@FCb%>A1$Ind$ROxjcYC+4!U)O9iohYZMP~YAYvcB22 zXa?Xlc-gU5fA6=7?FQ?P{O>b&CS*yBgR0uIQ;y>hOA#xjdg2yJnYCsP2h}D|MV!0G zx9po5{I@@4`aFt|BC&aZy~l-;4~~geN*7!S$;JuY##`Za|C9da;hdiDpWUpDIj{N8 zcX`UZ9&$0W(W16lEsb20`(oD7yJJsI|G1Z$k`G*S zj_arnp_bh!MG)GB-_IOjlbjy#Okl_S1&F)^m8aT`v`_@HyZ-}EVWO2g0`;xC{4nN} zpxdM4*gsCqF!Ej~0Td<|$y+Ixr*%v_DPSoE6;>f+DuSguqm-?(bxI2$AC1-nfX}4r zRjeGm|ACELHlMOaqxjbTWPyfSJR_PN1CUs4a1*p6`P=E3(Ta5T@HpHtCs+`>Qdl*N zAksKIKru~`osx))&}TSo+BW!<18=ya)G&;ZQy2p6smWJjjnxsWa`r2I?X1ik{R~kL zYp-l(QKn$ynj{zs`OU_=x1vxwisX96)b)iaQEuoJ`Bb!!j`eds>l-&?ZtsjX)DY$Oz$ukVXXXfzl#THpEeaHdYhL!AN8TkzlM)CyEUs!HL6%s7m3q z>y)bDKo~h<)qz)&GnzmKjtF{_qldILv9OTBO|G@|E|ZjG$(hr@(Sn*_dJG{UV=SC^ ziR9afFnn@dOZlqYA&&X6m+MjO%$+#Bm7mXg3=px<06DIT-*9}~aL5BjqL07E-3X;{ za6=@FSPdRYCSDlye*>2XbB<$rYQe)Vxoo^#g+EHflD5B4-Iv4o?B$2c^~%zFS`6ie zl(N&q>2;dzwg+s@PNl`4kFm&e(LKnHl93DlLeQ5I`Q6n-cc=nb;?V(@G&wz9m_%F_q+A=N5&q^@o!>*kndatM z$-H|~mFnN}lR8a$cwp2Nnp$$WTG0BWd*jx2LubqIj?Pdm~IoY{6Hi53P4LjtNG zl-c-@zyk9>*Bmk?i`;Y@9<61h6YaCKLrBkV3LYwACt)&Aqr%9gkcO;xrVUdWaX3O^ z@sT7!aYQqf+nxX-J8MT_tZEhQ9|0Hl#b@l1DyF=lYQjWe@->Dic*?3Vg1DB!=}S0}0pfh2JbVbs65+Vof1%m7r3apcP5#!+|*zdN|I2gt9& zEYJ5Y&)jv8;tETnUW11=s5mKgrjr=^e+^042P{|3tqD*{>bntIln+W`6O-*}v*iZv z#J@6P;eg1oxPFr4z|6w%af4t4tgOe6hikXhi!A#)#3{b8?MrOApyeCK&Y}ui9E4?1;$&E zp%`zdM5C4hA$PzJkZgbuIp9MW=~ST(xNVYZ1j4KVcMLg-I^}@ut?@vG6j4Qc`A=?1 zV@OH9)c*}tQjjE0HzNj#gx`>c;w%V9(?n%Ax}yeOQ5Je{HxDng?POgZ6dt!6ODtq3 zrt(=<$$xyK=dG|=UxiXfh?sGoq~6;?;WK8BB!|M{my5h1ZLc;o1MnA?@BQNqzn{;7 z^E?r~>qyJ2`tiKT)SZKCx4Qh!}OO z0%21iUw|;eKGi%cYjd&ShfAx&B1hS#g@jx zwbPvE@n4_4d~@F=Bo%O=?5vPBV{WtrlrV>OQsWzxB3gN7_Z`;n7^h3mv(dKpUB{Pr zo=MqFc-U{_y!LwhPS^e*w*o)qw{e~6h8;+Gu@c>~uToZ1uTybx`IUub`YH)=yW>>} zEvZ8_3GY_gdWIS)_9j$}>JAhOhm#wvC?2wOvehPb%G37n@(p;6@I8EcOO;6Kd#)xE zIv=GF5FQrmSfkz+K$B-{C7cYSF}al|wUZPZFHFgm+I>S2jeFxp?S7v?+O}H%?>2P` zhoM3FuM)fps^pblGMHF+WwMD?L)%eCIS@(|kv!!2_|IJVP}UCh$ved1B;i+{Vp{NS zo0iHxBG`WspFKh#VkRkLEbkE}QJs^Enqb>&L;^*Qg5_+pzizhL1|066GfxmutL^NE zm_6?oBeyL19(n+r~)1*i3 zmVCeKet{)mNlXhm#IcZR7H1S-PAAJ4;kvckU!>Du2sC+kI2mgM>~jW7X)W$2+Mdd= zz%gO@cC(+|iR^~xY%2^6q#e1MZd5WW(9ILpE-J~_BD#!yX}J7paJAO_&GpsvBQWSg z{|0xxu#rNM&chui0EABd$Htca`3_H+_fnBLFsDxeth-!*pZc-%o(XLjxJY8ve*C!n zhm}#J{v<&F2~((gA0u>0xR$Hmb=IvhqrkFA)2>E_Zl=F}C2sU9(n7N@1o=p#f^sd? zIQn5+d;WN1StjxaQ33>b#3&3jsX*iSde`>V6!R@b`S{ei*D%BhESPbV$VaI)PO?9c zj$)D8$w<<4=YFZaK&b*QqtK0{3|z)w-Xy6U6d7Azt<7+MjV|zOr9$Btb|>4;sN0p) zCtmMKal6lNQA!v|#1_y(xcUVK72q|SrJ+Xf&=3QU#SofSmyW@@Sx(tRa^IwyVm-oGUc2#tb88Kb3@ zlEu+O_*!B+r0>|b$1(J+Ea&^^>}b$fgv&ZkE3m#x30IqQl%O^Y=zMHgxpv2+ee7f4 zom%4l3T5dq2ts|rMobNqU*+hxB58wP_i1P0;CNn9C zVtw#F!c_ZyhD*Hd3?yLW=fBcBc{Ph~8fS-AE`-Bx+|+V=K{C1B7E)GYeS_|YAo0`6 z;_qhv>VIrCvK>fws6?N1Cs&vF07PL>stHwMyLumR7l+FL-N}Q(p^c3chh5fp zMV4~e1#)r}jcgwoTZ-}&hJtB`&e z+&nG%w(=+CBlGhNp$L;mnDNZfw{KxbhU0(302Rx!4?czn0h1@tGBs4PK~z-st?bjI zN|W2d3lJswr&;zl4zuUJY!sCHEQ~z+AinQX{A15IhVjiz?V2Z`#QaXj3#iSnvelh& zmgjg`rpJMH(65_~comV@t~PGWwc|AI`VbMo&xA(c=UaBZYLlihSrHZyH^3B>;-#|4 zD~*lgekj%2%Hr{G8#euKVJ6@bYxi9%4B z@WfOZN@+*hn2?($Ry}Y?YfD^(PHA*K|E*EGx*y2|Odgp%a9}?O7%<30^;75fjS61> zhXo+)Rwx1_wd~nH8!1hbb7v)byWdlP@DP4I_etT{D{OuIYgR3Ne2ll!-l>!x(tWB2 z7&^+%?Px-f71VOQa|UpV{6zS&&(nDTgn9fp-Pt!2Iox}XO4&0$BA>42ReOI(gso_j z5e41@7LB-0%T5i1I$5YACNF~HUg;$9*nyKsPQFo!g02V-$i63`uP66L|BLM+ucE+_ zRCHI&Vd$PBZ4VQAJ%zVh_(Q))bY5b71T%h=jQ;JJ$Vvfa=lXLRSK7!*Byk8VQ60km zUICKbK@eGKs_i9&Krai|+TQ2QOV<3vit~x8v++;WTZL)=%R!zzcD`S~OjOD}))#wJ zgpWF?&^#p`8@c^udS5IiubH|)o;7`+5t`|Ld7=RXdyi)94VpZ50kz5>_+9|}8ikG2 zN7h4+_XkSrrj`OOj#{>&%Q3WfI4QCWD*rAi^30o#KIbnuNOw8sZEd+)vn!)?UM@Ch z^`3Wcbszd;d-Tip($=8S)WyZc!eSi=&dpgCX4L*Peg|ab++AD*6j}Z^vp?ezbO?mN zbJ051CO#a7WqaxO2s?Tk?J*TBf&=(8^^8T71Sh4;!lpac%5(6rfe21 zfPRSQdC`X!znSf8_vn$45g;jRJL8t43a6!QI-Jm57QS4%+xi8FHG-5;tN3s~>*{>4*_+#l|j9=&*}cd))Zd~u{Q?7Kab zmF_gXbkqOpoppJO!{zz*!+z22>aipq1Ha>0cX0cR2U<-&8yG;2Vnrtx6y?#PN6a#+ z|BF}n=0XE;*`=YCT+ghupY?{oyh?FU?8;;6MV%r%?}Gm)q9Ezh__KNpgcl=!a4^?2X6 zjf3tNinsb7_T6>U|FY~hGw20!7tko#Uu2F>f9$yl=HIn>=+)v|hUjJCXo~LSL_(V`bM0Je-LhkrDr2u%#%8b|kGSBq;J8fN_A!I)Xq8Ep*l@BDO2O1F} zhV>}N{JGe5?DzKNdh{go7s^nh##sQB07UQi>f|VZ`u|C(4n^R%2M{9Tn3mYX-L)$; z>K88ly0@Nf2m8}gldKLJ7*ce#pEewB@d#scGu(7WgdCShgnk9^J|C-|vYD=J{-LGI zfniflMZ>CWymWSa3!nOS8oe!l-5g5zLmYW<@}T^uSz4+4ly4nSo6euIa^$E_#7%66LX#jUj`xo^ z{=F|66(o6i5(g_Q)k+Zb~AW z)?t4XM*S=N?mOvO`=1s9)w7gSlyDj-Vn`&woRtX znLQ>~Xz(lh{MmT}NQIxS=M6u(I^X-TxVAU+BP5v*+8CqblzA2ZIG-@Ll z-X4OI%+GCY1;Rsq-k>YDeOA^CV+9QAYmt?RI}e;fnoPAhmWg6UOm&x4HG#P!J0Cub?evYW2B4F!-O_3(a{f zw}$h|}YL33%Z1!FiOfXX_0(!MC3yzL-#!vf{4G?B_Go=MJo7R7?rrg(tGIh5% z`I{n4C+GGvkAJz%&?$c4-rh>nD|G>Ch|H0dfRvsBduT?ez`?i3ei5MLvhiAYBSA&+C8i+2aHNTEo_5hu6pUbYhFjT^Q6?$s=(e@jn$k;3G*OCg_ zTvWt9N#nVp)`wyxdj_s9*6Xz|5-lc$b8PZY`;PH#2-t+Mdg-b}OCJ8B6g z{b@S+#42h+`h(tMB(lO~<9ogHn%_Zk450eXnP<38@DD%EqpKBOLxqvtxf%IcFyz0} z)cv`PPz+%hYT#pWp$WYzQ z#FrY?I%E)JH;_Z4q3Gw2;2}UKhRK9j#P}>I3^Zp4aXQ*wGpXsP zMq5+uZ%o~1X#Lm3e|A%bwlOSxoG$hFmvhY13qbRAclmeX1ElUREK~Q)kcm8}Kb^Fx zX@YuHDND{DeK3%2`YxBZ*iaTY?r=2{{dx6bXGVNS5p(B)853JeS1_y?vT~v(eg_isOM*Y4iC5#=T&W&u(j+Io-PTtSe5wv#zwKM;gc2~v>dtFOf41qqb8?%`^W+` zfVe};z`&sWyN)mDECcfF{aU~v77`Ur=UHWE1@NV;VP|eVv6tmS58lUX{;E_$px>nP zPLQTTgKfX-4YA50^4Vq3uxC9)>YNBcPcq6N8|BVcDEnvj2f*BK`QZ>dl0X3wtTULs zan@p3WZkGnxfLYJ=Fq7ot5^5ubdF=JNpF$n*vI^=UTpP(9O5vv-;yPhL(Lx&521x= znLHmWw;cdy>xX_zJb8$!f@fyoVVY35D>v84e0I~-h9ltL^NM+P3-q6dKx?Sx{93=POkIX(37o_&t6_$6D9ik+>{gL*yDYAc8Sf0eoBgP4bOI> z?ob%MdZ8dbHH|XV;Ym{1?&2GtS++STvlVRX#o53Mm0ber8Pvhk&G$1`mVIIqzv{!W zCSr;u5Q)CZXBbHK%M=BC2>d}2%#bhu@_>UZdpBqIN-8k`LMew2H~b?SITN;imuBAf zR40LJ?7Gmm%SJ$ikE4jcW;x`{)vpjQg#-CYE*W1Cy=>DwSnF5h^t&gT22Ra}*5rH- zPLI;`JrTo!yO0h<6)$K)@IgoA6%mp` zfipkxRkN2V<=f0PDYeF_66?mU-Se;Ai1r!gjGdz>^6vZX>vu?JojN9q{~YBzIe25}Py()z9jyk!t+RSmYPH9p>k?jn8 z26!(=3&AB~2509RZV;U46y({9y{?Qfa#lXuyt4ZCXpUaY?ewbJLDLS(EI6N?`rkn+ zqhwBqfyA5ojO9D^O}xRGxmcGbRuhQ zDNwoWC}@3Iv2=-0S`YkX?l_hMGk)_(M*k*V*~T&h{}vxHNQr-f+)Go7JFS)CE2^@q{*mF)PwKv*HmZ{S#^{VW@okT8P6($1B8J6(cXOX!dr)*mK zf-h^HA1+-pz5TsX3!ph}jf3zpJbn|UGXt7XvL46ASvE8jA-v{w^NE5y$05$v@3*8D zaFcSTU*ltA{2-5Hk$?H}W#cSq2Qq88$MKvKFWFRE6n`|&Beg)s=aeL8)Z)L^X=;J! zIsz>~O)^wZ>UGdY2+>Jbz;=sFeqdGBK!t5J*dO_7aDO;EJ6jg!ey?zv=lZd({=#*A zL-_gUse{ME`%OQJUy4P4u1_nZyHU0UijKdx-F^#4!;A-%w(eBo#s|Df(zza1kI%Rv zI;A-uIH8DYL1Vy8j~AkOG!!r6TYX316P;-{+EgSlRla?C`#N4zV107vzruXxxp=4-)GPZZK)TlI5$1Q9^;wH7)Jnh#4MUHd9&Yh=w-{K| zw8zC!qr6tu%nEZrPLY=flr%<1)t)@QO-h=ifO*NVb3mzG2omo!h8@9oxFxOKWwde^ zFF02_+(w9~>-7M|^T+0(%;y(eFA~*7Wx|&|I%KWKY&($a!lE&IoOnkx(lGoJpO(*` z`H4G5M@NC2?eLmz=|r)fkZ+r4)7ghn;;v4h`AQCS8h*N^qcKU#?C5TRj-E0a#`hbd z*CoTIlt2^^xrt{{))?N0o0M&l5)-pyyu7{1P?>87%E_;2?j7pK@FuYgxa!Y#|Fo+U z%98UKtVGr8O(@?+#{xx-wS#o$9!Ei?g8r2%x6dFl1Awl+@CWUe}&>7 z->+V)QIe35C?_KqUzDW{`Fmu(ET62wzAV+6vB{ROq?JV>^<&9V7!I0pBE&;3-nri7 z5W@d9M<#&?jhWhbG^_k~yE^B3Juq=cO2G7BJ&`M=f{pQ6HqUk5z;rGIu@d&L?A6)= z8JKh|?#Es8!>vg2gV^#!PD&!nR1kXr&7YTr6fR=8koApAkaq*6R_}2&S&*^pkGHj8 zx0Zqu`JlMnKS8;Ql1TJbC(ssL5o-QlW|!FpqLg%0Gn zEo?dq^_H}pSt}N5&y|u5(5bmvs_ZXa-ef~ICHrfXxa-wF&DyQ)dv+jm*}uPlLq?S0 zjNT8-8M4<#2r;p0*j?uickQqv#tSzcaKXxt96D4Dk(8Ga75))eF~|Hen{ZR)Zfu&e$!z?0jw+nzPrM&JCpOIS4`m)ei4~|1r;D;g>We=+uSPx;-%rulJUj){<(^4L zM+c2ELr>2_YaK^Z?JFZg!vNEo$xU_cKYIPvx49I!{zQAJvVPoprGCiBW&R08c#R0#^U*zh1-yW1jKz6c; zuyt^7a6a3rp{KFJxz-TF13ntJjmfX>g&I}Q*!EYsim6y69y6{CgAoN~>lOLA z?bi2Xcv!*jvtd@8Jb^>0NDmMKtI-*(UZ-)QO)}j$3iEkdz6^=1^ouJf0{nZ+&2dnV z1~b{J#tHNBjND~&rgqSBtU%9e!?bJ*q*)iq=QPlB8I^9_uBBPil#_sHVu&0f zlnKH(Lj!IfmhV2cpKLzj_&_AMqc!sTMkOtcd=BLPPZSaDJu+7K4TuzswG+C8hADaO z^=DnI$HY8oK5Lv)M$#42L4-_mVb5bbVsRj$#z_&e@f@}Jf)V&7f-DHiBq$7mivuA_ z&}5p-cckPU+SYq5WR!2I6y7cey5U(@M}e(P=2yYQ8V5&fYRKW;E4Eq3R= z?_5mo?2^e$Ac`u2N2#>*Gz&@22<%5mX9?QO!&L1a8^|(xQmS@}tm%DBUz2j2hHA|4 zsNKVb$cExZ20m!RC6-WN8#JD?uhkfqe}kZ3Xy==nD_u`b6@GZmF#3R54vVOSu61r+pc!_oBoccUgb0Uh3F$Z6ZiY( zS2ypB)&2ll3*6Y2#Z}#Y;mC={HNV@toZWv}zCF1Gs!_R@i#IBNvB(2(eB80$LPhhD z?{K>I=jWoA2^~?edv3HLnWp2qM&H`poYVKy*92s4COtem|B&?XVl0bc%By&rRQ$B! zRi`YS^HPdA&tim-4s(zHUOs>U`k(d|4y4q~-X#5bB?iz4XQc*WhF9)Ddux9^hW?R& zXs49b3@BK9coJ)cE4 zHJyX~XUccj{b6!l$3|i1gn^3s(m#>CI$8g#jb)W|G4r{b^X_d}|FeKj&o@aP0!>#f z@5*$KRwymf(a)HJZ@Eoj=dc&V;hj>%CbC4vz3a>jK36AMXF)8PBvH4U{U@zk4=}^& zH6BNQZ0~Zt+A%P=dj3F0N+48A+<81ME4i^_$QvtoJTreeo!d-$xe`1KeFOBM)LwBs z!@-G#R;?snM+jGL*#QtiZNvErKYJg-`Jc;oY$r0z|Bx7D@g!<_0yBeJTZJNSt0sjU z{lbEKCJG!gwGZACVE_adk+L;aYeLO7bl!hZQKQR>GN&-*^4#ttCN0% z<|re665WJ`Vg}JaBf2d|KN_(O%cHGN_oD25c_P1enWs0*v~Rop@|-jfuRK4cvE!p_ zR4-F!as007xF4F@SIG)-9TCRVS;IdLDsF`0)ky%As!7?W8}rHREyR+P)&U_xfm0nf7Vd zjD3Bj|8{@BU4wLr8}j>=fkDGjcwuJ!-t-ozGyaVW{E9I+C)Ws5->f%FmFmwrodM{K z42`GG-x;p{z3t~|wHeLT*AsGY55EuUxbHpyleW9%x<^IJDyh7-I^(ntzpVOSE!@22 z_WEG!%pa^M**TBd5A^5#%u#V)%el{%06r0T04iR8+2Yr))@5gW3BuvJAM|`KE%H2P z=-j!QS0m1_XZLOv-Xr`(o>qliDOgTRj3y;1AXbllJV`0vP5>WwRASX;X;U*4wBCB0 zFuPxBkNsj;cXqjEF8lux_LgB$cHjH=HNyY{a??^0LppRSogyV5Afh5tN+aFfAPv&p z2uLU>Al+R8B8@ZxBHi%c_OVm`dm_+y4pNU z(w&MN81T*P#b0Y5rDFfFK8V7N8)c>biGqv&po%@@zd2i9O#8M@FAE*C3eVDl^n3I0 z8<%g%K-L{{oe87x|M2l6!^1!70ixuK;V}Bc&*JHsE~hJr*JtaDHx$R#baF>0=Yd(T z!M(x^H!!GIbzoq<)9z^TY(MT^%D}wjNi}1Xm>sw&qlJ$p0khTH{Tkx|Mq7CBOCXY_ z$EIsss!w-!E2;cCy_Zj}h4w8n5{YEa2N>HvQhWjeLI1DYZtWEyt1D|*Eq;LSmAP}y z_@%RV+@DVLhy=K@+%V{{CI0%ZJeI68UkPQxch;@aPu*U%5_SJWTgUY=;o_He<=9BP zTT21fKsmFvD{|V3H``*|rlfSs_jcd)L5W_v?G*^6?h|qEUIjNgXM#o2 z^`Pz0m{5WBwvW-YV(i85XHD7wn@8)u#p``_ala z!}~z%;Sx9zWr#Tb2Kh|v=5JbRYMolUm2$8Bu8uJBo%;Pjz~8*71rK>&w2k~~xl4P# zS^U(3;JRD>?t#jzYu7gSRC!1q42uuY3c!m;RipC>XTtBMSDW zK-QEsB-`AtOui|ZpEze*zh4@j#d2H8-Z_s~dgzR_GM0uB%kT_-nNc$_DO?f)2iWl@ zw+2<@#-Bf4V8z@Dlp%enz?Q&NnC{iPI1~`*R~dBs!zS=LV^yh%H3i*GK>3xaxVnN3 z>hCUgkiYUsHpkSh#qEsC8sSi7yE=Y#JZCc<^&{%O$fF-;ZY8h#(qDCzms>xN+;}Z$ z9vq2T_BuF?L@thxkOeF?N6V7Q59A070snD-n<>h$Ku^kSxmes3c4C>mGS8jrCfA9f ztCO+U1Orv(im{q*OKyZKM7@Aee=fDYUF~&wE3=8mrFG4(g7SH%Y1g$^3oCXY`*)=H%CrXBOMovEV4pEW zo{DiNF5lGNot(_)?Q|=J(jrajR}$S2Y5rW_9Xl0^Y6n zBwDsbE=2>9M!Ug5>!W)^Lyiv4yq&)fSMwB~;F7on%m2WL>-s|xpFd)q>i2(I0HS}# zi5_1+t#?PBOE0s(FwweN7xf)mEuU-qQDYK!=Tp`|9k|DM4e(unnbYO-JiLdMndaeW+ zkt~u&3a=)$J8TYQ1^5~wTZcbyJ-`=sxo&VyFkAix4v-@wZW8mN0%9ne+=X)m#lHK2 z(PNwK6^gIgUxWm7V2Pn=va*%MHT-=lQya=#4wRS5R zmwuWMbi1>Sm4qgJ1@wLfGWbovqrTH@LX@&|}bR2h|%6nftvB>n!`9Asb2`#f-R?M*nl|afiPm=cb z$@mVPAJf+M2G&@Un|KIbYur;2$#P=}gQThV`&(eYKqKUGp?uI^4u=tBCItreLDlmx|9iaHCGUhyGWd z-G^hAKF)ec1POL z1^{X%Z@ai}Ux0(GwOg>L+0?ML1%ks z>rZ;qb~peaKP~a%H~FEJd#GK6$8T(@ShU-PO^4gYV=ACxUUkQ|QO$2;xkd8A%TV5+ zuGAzPk6`7$*LzizGO$O69LdUzq3ZI_j*mq9Yu6VaNje)9)fHCHd3>U*ygZtT_#~@T zG|LReoO*7vKYN^E71w9P{*hVHkl0X-LF(wpfs*1&n=zO5thDcw)V6J!bO_H)SSy=^2^W4DQCV8@w3v>&;nwnLCK^Qwz&B8P%{5Y zD7&QI_7-~Bcjx+;U~-+Xb&<}{uPH2S$#VR`Kd~8y8k#H&00Sm1se(o(CY*m71e+;t z3>0ynH_n?1v^rT*1TED(@MqL$e(&wR%19@n1mbLO96%rc0wj)fVSD4sk-b|TH)GeE z*N&rRCTX|x`#-2&4ug6^#;djP$OG){A5)H-IZnf)v&oFR!eK+#tr6AfUcZaf8#37A z3B*>zJ&&F*SXN(3?6~gW-1R7)nXEKjD_!ePCw~BD#6CDs+m6Z8)&Bna*z@Es4cQ-? zw!=p_azFW=mEKXPiPa$U7~%;B@c1#MwNG8?3v3U4T>)1#C%yX+!&6^5OAKOZYvzy4U*sFF4wldJnYNx*i+`QMo5pd* ztgq2-C>y)p;>VBCuX9d6`X?)0sMrF} z*#WJ#&v^d&=Fb!LY{w@Py$_=w5M(?j4yLhXI^kyMh@pBp$tukj(3OLTcl@X1xTr&I z{{TWSF!=H%%7;R}kJ?OJHsXJyRbW`5G!^$y6qFr-*R@tE%Hq0bz;n48xJuvRs#ySP zrExN8ir1I;aT=w3q(RwamOp}`Q$0uqpKRln-lm}Gq7N{A@bEH-0-!+!goI2fTcJ=Fck9=o%cmZ)qX@XT2gcQfU4 z$EVkI#BnPw>Y`}vVM(Dk@#i{WDcg?WpN4-UlzVGvzQQ$A#w@#JWre4C(6qF)Xj1Xc z?4+Gn(@kYl8$VKg-#XyXBh4nsZucuKwSQG3uBHy-%l1nm@5^@@MkqHsNZHZZC&&gp zGZ%P($F`RE`>pYGf$|+hlEI4vqp0w3(5sQk8^?{;$XH`k?s{9(pq)FSenel4(QKM? zA@dG9*PvIuEKDEW>y{#mo_Km|>Z_7?6Av{`7vEF&;ezg-_#g|%wkpv&w+yeNK=WDz zUzG}@YM@cwRlV(wE58aQh7W>`2y?qBKd%>lqg|+`bX$(q z@LCg{7Y3;^P~*8?E|pyO0JVerUeDdlrtt^A_g4B?^Y3iEzwcG*J;u$`d8e^yn-5on zWB6652-gUM|I|zfZ$ZZulD^!|w<;?dU+Li7bf7)rxM*V2EzB%Mho|p;T%1&N;5&qo z2tGM=fF|;B0r47|fnz=ba$~*0ilbFXtupB2o2{P#$nx7gk>>fc zABZ|&q*^{`qE^$p9Et1&%{V}4_Ez{1Mc?j-S3I6NDwKzi4<~>ZjpHNQ_XKA7ZxMN+MH`<3&lC^-2*N5^~iVq{zTJ*>;jS z-nAUTn&WWbl+E+Fjh+=KXDC1h0i=)&uD^y)3xxJPTKIpW$9iA3o;JQ+^MT1(D;WKB1JPX`^4dn zC0TqT_KDL_C;$y#X(gOAw3^ZjC1B-&nTCNC7_af17s`j?VsQy47D<#0w`KG5AO>k% zH3ha=o#1!~ibQI~egIv23P{R`frw0sxmA{rf}{${ z2HKZUi#S?F14O5SAtjU=oKOq#1`joM{d#9$X_>9$;@W=DeqzeKhnC?pNp!$db!h`a z9W@H9uD9((Z>Vhz03pf?e<`#sk}m|6^C7ntwG@OK+7~W@>&Ng&h7i8Nk^ZOn_tc-W zwEgp?qA~|EwF_e6Z<)vJ<-H)g+MIKNe&j%E&~W_U8Ryoe;! zCx8jKGeL1grbNuhknm`JAcVR&=$k*cE#Z9%^IRT{^4grV)~=`J6Pg-^#!F&6@u_r6qT)Y%UqizRJhO#F zPz_xb7Be0cUcv0di2#G3goZXS7z&Oc#6&9DNpUV<5aRG#vD$J-34dGVz_qK)mWHuC z`4)QS827>l5gnuR1D+HEhn~s48|)VBinfWI!+Ti@ohiDSnqyN|Mvf+5bi;j`3v>(Q zm=y}{^XD?QDp9CZ=_2W$`OMHM#!3ph@i!b&VRwX`twhJKCqEEbCoDk8!#bK3QWOXk z>_`>5r2{lF7^P$)59Gt``C3De5DzvA7UhehfgnUu_@IosVPb@QGW6)UtCiBVrWMab zLXp#g0V~4Q2W=5QG;Ov2i}v}$?OL(P#7Wj?#YU=Z&+tAESRg2m`v~79RmzXW2{tW- z`Gol0aG=FzU6E9y8&I=@K#O$UFjS!M+wuQC z>-EL@K!E{}Vl)5FO!b%Ub|$1>0P4-40zQm{5Jp0T5%Y#Ai!krn|DgNW%9u)$p778U z3XRs;9~pUI;FpGgXkbi;tvf0*E+5t1O~PtWS)6>WyrQOOZi*0*0=1MBCVYX12hJt~ zdl&#$U_#-3)sthkOIYG4di6I~Azn;JZQ?G1MbE z1pcNZiBJnC|64E8CYfso!x?U|zi*;V<=*onncPHhe2AX&n#suxH{(SgO1k^OYn{}5 zcu5cg%@7p@WJeOKKZ1Z$GJa5os!Tbvp0b3aqRrqjI{sW_eYWmw=#w%MnK+k>MD&ZM zt86ffoI)u@q0WelOnLlnDu|W?EQLTbnOhjPpu@{Vx%sy$YjD1`qYOUQpk@16w=N88@C|5UJA(}hZcQ= zyz(6Y%k~|RrIC6k*R38BBfy5~gYvKOx3v(uoUFeKNkl_gxKJ|&{EZ<&v>AJ5@ML%4 z&TQ6F&@Ot}|8braMYnXYuR{M*R_0~3GT91lQXgOBZ4Bb>@INu$y66LWjU*pRA0HJS zW@c<(!mnF*4H#sOkdP)D5=F~+UK|FRak!_&ece*D3?WLe<`H~c9AaV%Cb-rjT3RX} z5s!i_n3%|zh(8LZc=0M%sV=Hwwh1ZmM;!xY%-op6Jsey{pr-J@{2MW#Uh$lxj>aqn zunS%jg8EVU1pjT!wFEU}+puj~Pft&()wiO5?j#IUbadSDN}`ALNDhdKh8WeY_&k^K z62I?b0HtrsYk^Z-OPSkBkdM6~R`5@G{cNOk+z}<~T`Yb1q`b^al$7xwd?id#Mx+`w1S!Ls1Mc^GNy`{u zroa$!a`FZKoJt1{s{v3JWX7~{4!Lwbf6Gn&wO2jbi{BL0gG}=Mu;bYh2ZzZH`(H9q zzJue#C_lX?VSbL$jWHv&l~*746UPQaDnp<1uFMu;1rZ@Ui*v=R9`C{P)Qs<6iFyP-I726X7C~US!`yVRj(?y^Wnz zt6P4jRG$nOX+_Btj)E?OFlffAJi1#Mx&Nv0v822nbQS@t7NbGT+4eojNRH%rTdauX zq)y?}pQiox{EDL+FHiXm%pQU{!CHj2<1KkB;GM4cV|0_$0T65OmFTDzt8c*vo((TP zeSAocI_a&H{MW{*Qe~HGHhZpY5%C`&|(nQd0)_j1no_u&-1izFyxA zo22-VLSjqiNN50cP<|hlhtPrkX5&cJYN|;|!=rEAzUSkI=L@@N85obo2!WGhAA9}H z2L7&(u;6Lm5DV)?HEQ^Ve$;$L5K*)8Osc)MJ0tS<2pnsY$V%k}{Wco8MS{=Ztt^Z@z^2Hz=g zp#=qaGnF`RYtHr6<&*CIr?j5FGSF(mZohb~A)#H8KI3w`&&MRSGdpv+3Y?FkE#LyL zlBksIRncNxJbox&9vp}#x6QL|5Xu`7A`D^5{CdED4%uEmA;61@UTB{C+b{gh(rC;+ zNp}`yT4typG;rVgE~crzEL{t?%yiOrS6jf4z_O^s`O@yyXe+YX^>HWXs>dqI@>Hi& zk6{50$zWX?l?Yr`Rt>NkD+O%4-@8vYsuQ&6>jN?KTa$@@c5XNP^qk`{R`%b-JNyV1 z`uh?7F%i3RkhHNOAxWO#;l&F`4N2z?rXIH=&Xlp?ZyoavU%%ua3+uoQoW)BqXtZ@J zK#yKQX}iBko)otZKH&r}83wlg@kc?(6+BrP4n%af!-n{qU?0llXxN2Uv-_R9EsRgk zGn1KW;zv`RI7BTcAn+@no@ZCQ^nIzZan^!4#a2;jN*E4dLB#E)TjG-HR#^Yu@lnmi z!}9v8qQ@R`!)0{xu(#$mg^!C!gpJ684@+CLu`!cXE*>DfRxl^iDQlb^8p-{;j>w#-BJPt0*3@JObA{>*WQsyH&@?elM4Pgq!3pz(Uw+)cr^0Lo*F{&R!`re0Mq z2h59REUQVg$%PtZ&l?ks6caXnSIob2%cjeFx5~klaBJI2i-Vl$nQNzPh(dv(6Gf0> zENNH==-+(fB4W)iC@6^20PZSJo;=A|L*DX{RTmQz;TzvF|HXrrGYbkap!hBDI^8vc z{P^30@!y&zxN6Dx*)I~3Ln(n$K`CEA#UGWFl43{QB|r{@RZCBAH8%3uBDY+v5*1ae3_6A5e`ySuxW z$FC%g7O)=vTCWcz5IfK>6~g6lLn zcZr-fe+(2_8vkvUSk-kh}6a{Ir#;={W2Hv_s ztt0^-kciYy_IRc8J5N`KEWV_06)ENCs8M$%e-I2?iLEU!(5Ti>k_EQV6Pxi$9s6Rr zSO8K>NvRn7W~md9aJaS)-5^jn@9OHxMNiQbJ8Fa5zVhyFA0Gpsu{!I@x3Z8V#nl;N zTnNSBn!%r{I$+51V`*vW*6L6y^}K-fT)kK@fP41R4@eVgT6`H;N>#!f+D{v}BZxO% zeAx5Okbd1kB)OnSYbR^v{4MpJm-Q|^vXx-mxzngGVZ$m+tr9KyQEl)^gd!(ep`aXi zJ85$YrVbPp6=|1}JtX1>xGb?X^lt{kg<6qB?R>FG({Iwd+t%LaoJ}X0;tAr17yCok zTPBk32P5)Lo2|~@%I-XjktwazsU=1D?h>6g&TlyEi22)IJzH+Geeu9rTG?$joByZ>%HZ&;<%JHH^$@VLgX5PW;GQki+!@8)S&qrpxV z=9&=^4zR+XYbA*AIiGe9oUPjR0R6(bJQ-K%e-Tb1;^Bok=*x}rYnLtiYh(0qudm^A z+Zi=`tmav(L}Z-*xVCT~$v`rrDn-!dL{y?uzFpDOwm`{>QsL-#ZSV6l3-9amd2c{? z(y4zlnUnuWq@e~BU*ng)m95oiulS^yZ@c_yZhuqSyRslPfT$NSIG4Y){_HB{Uc*;6l{ zPzjJw85K|gUsWvAA-GVxJ#a5>Y#)uTcj+?gF81E5ikS7pGBfN|W?pXX^>NF$izi4h z_W=(Vv7ywNdf~qJ8btvM%feOKj=mnCA&6vq6c`d)<-8J~dEP=`RTdW<%fy-psxtRe z2ee9<8G!7#RI4wKmv{sOgX-zhiA^9C+4uA|G=vk;dHiir`l1QOigeG1W5pBxRL{eL zX`GTazk&C>URA9N3o%%~tH_WQuVK(4sF(uOK4vMQ-GBeuBp4NBpMZaBb>`|_?K9TE zD?n$f!^NHtgyTP`h`^AJ3PbLi;z*eARxzTH42KN4v7Z)GcV=t>&#~v#s6ZhQX zSKMiA7GR8e*S+I~OUT5W{k;*1PSnkvhCXWq%r8|TFz=9YKC@;uRdaf_ zX)Uzivr?F5*K0B8Qo2^_zV%7Ia#Xo&eQ#x$)TB{F|Ac>q3z0Qm}x&Ke4`)W?V{cvXW<7Sr*9@8 zS$v2j25fFZs@ZD8+F+=bWGdr; z*e8#Nz8uvrg!2#9fELqxfwOLG2>~5;j6!xT+V91g7ik3Ef3v@MyPdmBoSbrd?Y>>R z4vS>yskA7oT@87ydbZ`Q^VQPJ_B3{BV#ZzX)%O0?BZ<$)9%(5$<#E&IUvBf-HR{(? z9bMhaYSnm~y{Xk`Hz0Vu-LNCE>3Dr|d42WADACI)^OC^p2Y;j!3Rh<*-P+xvRIBb+ z=S!~Zi`!vjgMFVrsb3QnE;T9X`R6xLJKopW6S~KlH^Y7-Lqf)*1p|4SX?-y4@}wqxb<)Bw z*)i9Rzs`&+!Q{`S1$bZ+ghPHz1r)nC%mGD$Es&>h>D1Ub^WZ+NQX?cPJ?tRYqkb5p zI2@8=YPip$+6DwK7qO2d+<;@E_v-h)>!W<{>*8nW+0-T#%BV+fzH3{ct2h4saoJP9 zhQz^n`;EnMf+%LxJ}##6(rMVS%eA}&QBB4jm6KhJrxVsLjciYITrhAD5JJ8@?z<=ybX0 z`4>Q7oUHI#Y{tN6$oD?UwWh1M-ir^WrR7HiE@DfbDF#o2#%!|b9@P>lOEr4YK@gOtP1f-~-R(JR&AYI&O?0_#dG*VP5$&FB zxiY({2Hm>Um7+?Q5k5^e)dI4?%(Yl^foZCz+0P@V?l48bC+HpQ$;KwvZI}nL?-+$r z_?Fl2^=8iP?K^s(HJEytzCIW3qRBLR_rsOgB#fLpBFEIU=Bv#wkNmhbtiA;Cm0UW& z{*!Q?WY<0YTv#e}mN{=X*UK1*yii-)cvIdQ%=Ld-fY-%3Xppe548=A(SCil(M9tgY z-Ym4qfSvPgrrD=)GJl`#FBtcT)^R)@vP+O{IQ_r&x)O^Fpz9j-*K#)1^VMS?b^MH&GPFXJJx!a z1@_!0H!|lAi!w#G2JJ7@Kg=`ycK_Q9HoyI25-+=AWds-VCaauH8bcU2f*l{Q9)U@& z?5{KuTwCf?!$1~!X^`Ig(1QKz=248k&3-&%GB0_xJ2wsN0RA#Yg7`EE1^_UQ=O--h ztACET(+Q>>0D6EMS$+L$5H$EEf}8#pxqi2B$}w`^CVAM9Z3nv-#ib1`aSEcvZMqto zPI?9&)A%(UKi4cx0Q=dk%7wtb|De7A&YTTS9D`l7f}8QZrS44ncuHvpWRJ$O$? zx1aV}d?;1Y`%2e+2Rs?i%ET<^RjX|e$DhfoYgjAaIC>wKH6AV$a&nVdJoY{t^>&=z zRxjMQCT}vCZ#Z^ax}&RC8rQ}{iefU!!ufiH2Agh}(f!fQ!_|S*iOs{HpdhH(aaOhP zH5>N;Cn!M|X!=YJYg?3#GI2dC23A7*UnVXmmNiQ>iyM}!nnc$ktj!mSVJ>=9d-u;5hZZw#mmX;-FXf&CJ3AK-QVPCkZ!d<;@4tKO@f*-0|LD4Ni-LAP z@OuUaw%n1EsfotjKD{fffCRuUceQr!QY-zw?NnG$Q1zqW@Im>6eR}dOElSIEP*Qll zid7J)NBS^hExBXA4EStXupMv7sLA&C&*kBpmJa07gF~#9aHDPaFx&j|yfzt_byqLJ_0#d|856wMiPQ#-rl<;W^RqS@lv z!MKfB-y(XzFp7FbpX#u+*?JVuGYfAv+oD2}bFsg-75)doJXz2=iR zE!FimW#C9%H2qFYL-8(c>6nOF_?Nx(;~CE@VQY!Kzqxa6SEsjD2X@9%JIpcR)g$IX ztqn)*-SK`Izk3A4s z9JV=V-3l8QL%XFLOdd>B#E&oZ#WvT_NufUvM7DG4hA^x z-wRe|T~D4~Et=#Rr|Mt&v!c$!z}WXWIf5%m_^)Sfsntv|@R9`S2ENZN?4?VoAoa0nIZC)+1 zVk5-yqd-KF{kK-=pv2=>8l{0gt_$Q-rLx0xFC{Y!sHUD%dR+5bO<|>i~ zcffD4*p68^7h^h?dmg2yDboUKLEt`HF5`Z#a&GI*#QK=k)h>aDq}bo)%e!|4y;tYC zK^n8d$oSwzf@`B_V^K!C+ngUJRd%D<=#!)8i$a6#tF}Y?i$YpTBly~ecbfce3M9t- z>ZHkB?FH6M{POB=sF=2=ZcSs(GWw&y^ahi?dFjIdOnaErf|&CwNtGoOGPJ`kEnj;x zJG=N1#W6#dEmcJ4`mjyOIGh~B&kVq&#?$2)v5dkSm(g=oGE&t2fY+hOJ;c`{Hlzm8 zU;=kV18EC+cJw%PaGvCx+dAD)6UuAmC1c16W=&ZEU1fFTjdDEyG<m;8LixR5YT`V2F(g- zWc0}}eUuWAF7Dt?0AFph$fFRn62H`nYin}|J_D}_GJ1^zl|u?WNf__V-z>Wf@*#Hw zng+h{Z5T7|Jt$o1a(;wKJ46Tt_h;7lPX83s5C4p+#5 zNn!Yf5F>~n(&df5PR?iSNFNB^4B??rV@+Of2&G`Y^4ci&Y0I$xByJ9EA3NJ=l<|EP z$pk_T67_zPcw+WjYFni`sdavVAO(D}DTe0ceKV4-yTp(K!j}{RtSI>SA$()he37PbDH{Y)NPs{r3mA0qAxfe~sQE!CS$JLmQi_D0%09B0 z7KLFBVF3s#1ofZ0CqYOx>$|w7!I={$#D9sRK<-4=x79L+PjN!5Y@D-mURSTTz=i(B z0V*s}5fK1P@(MgMla}yi)TdqU*jI2S1Qgznpo%E*Rs6YeEAXn$3=x57&R~M_@}qMT z*=(3NO=A2w?0i}t;$zm!!lbF}9^+Wp*fT`7;xZAgo;zWFTNU-hvQG&?*`Mp_q_R)dOc39HZhkE~tj_k*g^^Ws3);8rFQ^XFwLV z?Nm3q(O)Zq8v?F@rVF$haN7QkJ$Z}?jUN2^)E&`it=sK#8eyFYNge7LL2#y)t6NA) zBwUD92EG7CxZ>xuV8Q|yO#={8u#;GfThYXMcs>v{mXrb^)NBIz#7RLO5Mh$U!^i~) z0|gmFcnbu@Y;ajXTZ2#->t>H(hn{r9*A)DhcTJDpO@5ZS+0%@L0knD6s?ZEjv&ttP zwDaIa6dI84$);xNmYe+M<+0BlLAL$nEeW9H0mxsT!zZu;=SSD91RPxK5MM)lP19nu z6f&>LJM1Fbs~Be8L%L8ppH^KPR4S+Ob*`b!dA*S1qV{PN-;zse&P_?AGR3NT+Nyd< zNKSVC*mIsd1|8~j8Yn(O3!u3V-&80N7gUl_PXyB#oj-o5oKmX-N8?FR`QRuB$PBLI z5+c#Y3wX^Vy(4g3seq9@LKF{WTVFFCM;6bsEmM64aG}Hc)ELVB3P`9Q%A%2hhVh_} zAuw5fI8O}92f~lTWo1X|noj zNT4W^<-jMve4$0nll;N;6CxiBsZkt76gKD<9@lQkOdEqZ0Cy(yFJ69Q6|#hB3q+hCKKY}2GG zf6^TH22 z8G;uHFsY0+7HMA~Zvcb9ip2l-7VT^sfLpqgt#3zRAo5w??v9EsoF79C%yh@*nH7J* zZ>yNJOi*IJ;|AKmH;Mi&P&>wwF;Ej~`DjIP(02cEd@IiZQQ!-s7aC{;162%!m5rOR zYu$xn;Kz^x+ox~1ZaJ9l-b%mu{XQL*zRxHmXt&@7`u)%bwQDQTPPV{z$_LZQCWH1?h9Zt>Q`q=fxjW z6uq-8Z+DU`+mrtwDid0Si2IrGHOR2&aVqV;pJ36FH14E!Kcol(K2dsgv-j`ORS#uV z{kxt&(FJDZ6BhSV!5FPHupQsTa%xbsdF8z7hMkKMuEcYj0z01~Vvcgm=xp$=uR}{b z6mgGzD6_FioOvG8ZJvg6uZZusMyU{$j$0n6=J#9B8DYBym^>|o;no9 zopvErmTE!JgzHcsF&P=bQ2eUc(Dm=;o=3WSv0p4Ej9=X6<>lq$^9yp>(P6usZSf8V$xuRhj<|MJ(!%@<;yWL0f3a}@F%O-dCJq*1Iu;1dPV4$6{r`-H;CC9Bcn~EBKU?Yy~Z_&1R@A_AP!L;JyyFi@XD`#Vg|F!$< zNtOx);|XBR$DWW&++LS7Auu90|Kf+@2^NmzKiN%ZAl2{W>wc?z-rPLoa6jo85ib({ zdTU7tKq-doH);R3ehUo?j)CZ2F}B?{{3dQOghn-~@z4iJdl(qwFZCzJX{?SX-zNPw z`)7Dqjr1XKbgJL&yrUAj`mdh-#rfZrC8W#N&1Oh?H~tXm`)pUs!JtmM%@Ng_Rd=9l z%Oljfj+IN?-(sv1V9OS##B3kmVYr+3UbR>gI1PYq@e$We|EA;f`@dq`eSDQ1t;&N$ zpLDn+uVh-5nFf_h1tzh0W;MPqqbaiW>p|w9EH{`a|)uB5n_Pd0>*e$p{3=_3Xslw&GXV5Qm^sO67X60o5ypGdSY@w4T(@>qV+ z2JISw-l{&Df3b1W^}ww`T3wdEO>qA-ote~_1>Nl6)T*zzoE5N-TC@H8Bv2-M*2+C2 zkx7vd;hI5^M))t1J$Irl+bl2(4e@Wp70r!hob>(rFA5k2{yVyGko`OL-8@78e?h+Q z{jF(&DZ^w85_pb)3edA87y)#sK@Gol|MpdgLdF`9%xQBgv6g<>{N|dmGq%rHxpNNW zxGz>+GnRxvy-em_rQ-*{CrRv6j1`J}jWv02%R^^wMu0`&KZNo#nJ(K5S!R#^1(ys# z2?^a&Ezl{XEJ;^~x7_SHd*lYiUz43U{b?)wkF4#nhxWnwf8itV_s)KojAKOjb#wQ- z5ZAQQfqg(&Zbc96OEc2vk1ZJ?fw@@5+Ui^E?NH_1rMn#`nryd?0iPsZ2@|k_EpI?2 zJ6|WP!I#1Jj7JyoI!$@vq?UygYkZxitLL+_ENJFTiaOsluw){tEwgZF(;xasZIavY zUEm&WKZV_s>SJ5iYpoKa0Ptlr?$niut{Y$EQDibHhHLbHwzS!;tCVjCf4#Kd7M{>RvIDW6gaA7m;)_0jg#Ir69(~NBl5mm-pYz1M$~qL#RQ++{MKO zw5IG`mBSCs1*k+{qPIXhu7I?uCzPV9FS%oE)3MYsmTB8*+T*BeBpNiK&#yqsRWuzm zCw?lXM?2kb(6zq0IE`EaOHL?qRNz0q=9_!)*@7aEg<@WmUo?^==vVR6lGQOGiXE$1 zrhJVaiY;^~m}N}3X^RzRRF9j#ovBf`*gkJ0V(#RZd}&V#cCJ4)OOb#`R;7kU=lh}5 z05>R>$yI00dzkN&E(o}X=+JOdug~3q9DQyLbKKsieM^y|s;n#LjX&I6TxupZ|0fG# z_D6`kAI2U%#kKDZ(?`6w-Tzj`&H%c$qUZIX0cdF0nl>9=TN^$pas^E3Hl6AK1d;a< zEl9|~agDA#Pu(6nqQmjkgse!0tUpL4#fM5JHbE>1XigFi&6z#&D^;s_ZYOC?{=DNuQl4i4E|^Ss$FhUhC$KGCNy0{wtsYu);g%H-IGoHEIJ+LG2#|-Y=RE%l6Z_){_;fMpe`@t`;m>k z69rjgu38UjdkF+J0!tYt)s6uLP*-1crub7!Ve#Cupi8}*JGzksQyc|UO4UMs0fDg% z2W7tCn^ek(TuQc6&?20KK_qftVe{eZa3&wnLqLYK2H>H>TNjYT zxPTuaL&%&WOMwaXWBL0xMV)OAe&@9 zNWB@+EET25&ZMY;CY61oe;TgtP5m_Sbo`#G`w}%@GGWy6qp88PQK#~wYE0@Fi2m*t zBo#@IWa~!C`V*r9sD0GL2+87Mri90z%rP@M185h8yvF8(UtMAvHa!5!*CYNhv$kd* zzt1bFaYP8Sg(p8he>o(-g@Hq%LeDfkxUUd^HUIACu^JB{^6ll}Sapo{CJ)}LiHId2 zbwC+bPt#CQr8GGEz#v)QB;H@XCHkGm_c8dAq)Djz&uq^|YW~afeo!rBu9iiGD9cT0 zP{rfn`_}wK+N3yN0kV_AdLvCJ1u?+3GEMOpp=f>l4>)g1E*GI?AGgRP^_wW(r^khI z(*I8Q{3{xw{pli53?J@yrZfu+ms)OFeoW{C1vv3+Z%)@c)%^z*oMmYA?$-k;f^fyx z_Ymn3qtG|&10%P{NWN`L3Pfl>3?Tz=?q&**^ZzfB6yXEpib9bpaOts795jc!6jcYK z6Q+G9b)do+j@kbDr zIHJyO)1!sbxg=ljR84Csb5Q$0lN|O^`pmV&8ASvxB5U|C#DMDlVX*=!ZdL`#bmq6k zRCGZR>t7SC<qedEoQmlrJ#rnGO|^oHEFDtDjj+(lr?PTl-|n=j$y>im1XG+`7X3C4m9 z&pEr6Vtm6=fFeeo_(30V?3ibq50UU_Iei4NnjBiWDKCa1Ta#0){!ez%JEt!~vSr4~ z9(#*UABhBDAu>*g7w>U&`~AogqnPETk(2cF>O@aunnP*+%f=$`@g;6X`1po3KZIb) z#-5)GZvy2CQH=a$0!lxC8bYKcgE?XaJ7!_%Zvq3ZoL3SqE?VkRM@${1gmZ_W9aZRS zD?;;WdkH4k155yWy#xSA)_rk2DT*;-a$D>ITlG(l&ua8LW0kj zh(z?o)Go%!$z2IR<_O(vJWXc`s-Wmp6#a{Slp|9VS5TyZ2vESsI4gV4qF(!4X;c}o z1bwNoh*ZUcDR4i)6W#GUOP{}13lhM;ZPxYH#C60ulnYE}3!(?V&l_XC8FGeB21R$o z0E3A@_{|Fanx0pUQ!SW|YVt3kJVNhF{djNDx}tbUwO zQT-zMx8+e;pC!UCG7cq@WKWEBus#Hglf=#cMkj*dnM?~O?5(U}&l@uV?rZG^G1cCVV32?X#yTbA zV92vFM;9u_6@Jnv+aZ6K24r`RuLXf6?yy2A6AvM1F9|L%1HHyZ0X$7H{gu`m{ClLrcC2MyPVp1Wy>6Mc zxU#u&=Q^FdzWAENbiUoNc7A>NAdH-=7bG^;?$h3$*Px^29*duESPOYHF|VZ^N4~T= zZDKAL`ciz6ZEir(`@VFSy}V}6+uP|pvFYH;|7+>Y8nTBXge(mqYsPMhG??tmVA7OrvJTnJ_xSvN_s^MoA9v2ZXYM`cyk76u zv#991vL7nLr(mLrIIVzhx^XtLAA|?Q85VUGpTD%men0<_z7b_O&e*p`WZVOUP;VcizM~QpRAyTj%L}1f=`~KbKDo`!j~U{ zT#%dI$d$6nYNT6O7_jaLt-z(v0y*(`kX6=a!cw?{^MIO{8OBy`WL<`#xd-q0&A6)I z_Gct)H=|fVw8#UD%+~(h>ccRz3jXaoy^}}Phd@C-t$GYN*{0Rt*?WPLqP10uft%<9kh^`hI?X zc;ppK*wDQaYSta;xx+6Yrc+T;Goprq7$NE&Vh>D~$&XH|TQ_94zAz@JvE@L`ksvB9 zI(x&ECK@*%AcKJE5_^9yei&M;3B%u=v_4wfJHhtRDjffSraoG_64*MYQCjv&hCr?J z-&pC?pbqNC(MOc!Ufq?}AM>|XQ9im++a@kunBG(SqC(trCZ?FqCZbCn6S=S*O&2`$ zsgDEsE6t{vk<4a>;9J1yzax?w)++)+y0&s7!~BcPPDfANL3&Rr`(#b%SB192={}A# zFCS;b{sLq2;YWZpZ^f=lf`<|C`2pH}V9#Z~*$~3V0gk?{ceX?iBR4GpbRCoA&ReQt zhkh%Ge-|wjnm~$NFOGv0#w~d`9e=twVJo^SIHB`NPc38l%ToL1tDLt1Kc62J>>?*6 zZMNtlt*iwk%}1oRf`w)Oyy}$kIf!s>Ul%K2JzhxN12K8=Fx_n%_JXGEAMdR8*8@8m zU52Cbybr!Am-vmS^G)!H-y<#`$Aaa#)d1(D!#R^wK{Hs*w1<;HZ$*98oT%xPL)W=E^6pUQPXvvPhl04i zsi~>Da(QOSRYa9ZrRPlB3IGlU9$ByaD*yW_n7AmK2n69`m822T@G8!t0%cnANffXB zMD-BIN9_0E>Ui_A$o*)*KotSzjrIxQecys2_Sxf1OB>RvDX+PW0LzG0pX+^t-MoC4 z!tflN|DHg;LaWhE9aQ&MScApuRrtT@z|Pk7mOz)C7@cNgV}!vohmQf@HEj>4*(07V zZFsfs4z=d|ZO0AAbM|Uz$d9vY_rfboH0#Vu`dyGXo^$6!@@(G&5;8-&(;L8BI8^v3 zu>4`j$bG?v`k5$Uz;8BPCA58mv9NQUu`mRmce;{C3ioVg{3?Cr*r9xsd+51SaBBeJ ztU4+ZQg*L;!XicvLml%0O$NW{!O_2*a5FetU~)|%TXxf!uInv?(ZJLD`; z{|W%Q_iU*qsa1{(ke%w4I%LC`l2q*a{pMWv1WGSl@F<4Jfk0(B)RULWT zmv1sjjIt^pI2>x-kbd&DC^;ZBD9Ft5;CGptF`BP!KX%q@?j#R4yHknd2;7FGDZ4(d z`z)=z^lp;`Bgd2tbW2{ijDZVAlYPqspeSYj}l%MkOR)CeIZB%tcieH%!d5_6ZMFZGSuvRpXlQA}4&@Gl9fo6hU> zNu6x_SLGjgy8a8mJ{C1?t=dC&1r<6DSUdM)19~2jX|f8^SRLV)3e03s!zz;eJ#?RcAoANKKRz&*;!&!*!FM6U20fYX8-4(cqnN$%k=n= z6v5orE>>xRgOAeHOZM0C>Kb7D25x&2)lMv8biFPv(hKCgHmA3m+}Ig0-uvh(ZqWyj z3BSH-79I>Z9}oKWb^biyo7*Cg-b~5b2rz;5gmomL`Ybb}1Kh`7tkqFo_+=iGS5#j^ zDgnIKG@NLOYjGZoHVxZKQg03)OOHSLI{ZQBy21UQe>JL$ zg4)W8zD!BXAY)?a&cxBL>#d{_4grs7Km=pe8n70;l;7+&j*tO`_;*PMjeFtCCDpcJ z2e?9MD?u?lbi{4CrxZCU1qLV5mnL14$)biBe^=jo9QA8AdK`9ZtQo;&rAyHe(XV}|N4Kk66= zJo5VCxwzl0YZbARnC0Ag?1)iV37)hGZ2t~>|8tHMGJG1(;j_?+3;tW5(y^J(I=j_s zc@d|LpWoCIOF&X;bzxIle)GRqct1J^@)B5x#q=H_~9SZDj5ZT4!xkQpC* z`T5;{^MR>^j$iDo3Qv14;>N?I#C2OHHloO2QB2Mxc zZI0`_!#5VGF)~Zw#`WrX_EI^D@Dc>RS_uEM*+Piixzndh!m?`2Kw7+7hoStFw-PgK zGWc}2XI|2LdlsVkSnytZzR}es9uyIj9z2#m-O@emIKp`Em*=z}@8}*MmD5QdlDs#p zEPj8UkvV;9I9ZM87?`_uiGwDw+b&w-IU8Pu%bb@i^S25+ej`n#it(PKC zF@M^Kg^|ZKoT_*5^#k%1C#H$@g{lq?8U$g|>c;6-U?k}#DPr%)n}qdylEI=B;x?Ky zt9vK3)CiOnjE?yytLhnp&EFd34Mo=>5XJo8>%s^hn^%$IG$s60*rv#XKdfpLklWOh zaR;8^m{^zGM;hjnVj(v#-vXM%?#Ujm=FcuDYnhu9L|+Z0gE-QY)lWmw_c6p6`l+!g zVp|;)1#5u1i(c0*A6;8p!{Z-gn}D@_9oLy^8GmL722&7T^;&O`aIT`i-;v5%g;<@m zjSN58o#e~xcPr7K6bmTw$Xx_DjLz_*e~l>$aTXBATtHl!!mqxyynU)z<|>`Sc&0I0 zT3ViE^tg!Dd1C9TWHBh%7q)*|+pEjoI8wZ2d+6T!9LT?*YX;Cb*r~<`^!!LH zePP7m%2^Pdw%>V{N?>U|1f(EX@Ji+3Q>tRu_pkN^WhFrA#vo`~xm2}t7}YJZ-dWg7 zAhMa-1m8~NhLn0@{jF{PooGT7z%U2f>}{ECoPB$~*D=1*^}6y!Iy$<0ceF<-Z*`pf zv*hK(8#WZ;3xlHEoMo%~^zGQ<%zN!%FdE=+Lm$_@aB~d|+(!=>(*CwmQTc3>raM z$_G3!xzlrFhzP_hgYxq7)SC+P^Ya1Ld*E>VR*>wCys~R5!*;MV194s`_UjX%v2paV z0c^27w%T*144MSZSCL#tuG_(a_BV?h&0TZPV(Y*K48I-C1>4rvC%h!Eq&T7A(sNiWqY|jB zVN%K99bGX3n)Nz3z^Ma)$ly)DPl;+*aoUS`tOhLxr(8oq(Oi_ko3784+0UB@(!F?4 zu)~v6A4$0N-tXUE0%jXr+=}a0zR>Ti7IrvI4F$>GDQ>HJWsq5Ks3}_0eu!{1cXoDG zdLgP^iIA3*e63R+xITNZk5A?71If%ocCc^6Hdi3p*}GESN-Ull^G(6C-C+O66RUcI z>^Z%IyE~|4;G(n%T@ypWZpeo%BiDmu?h0i z7!@rUu7ILf;BMyGo>-tELea=-u-aQpxhP0Ak>C;<%3jBXzK^c+K{t6?LSjqVsW|K~ zJ$BC+Z^SLEudkOi8Sp0-PZF-hr7uY-F*kYc9i4!JqhiIMKf9wTqPy*2Y)mS{1iFpz zfARD4mG*DL0FF%tTQcmTY`l7i3N4Iq>fCn5^OA6+gAni5PO5k=h>EtL*&jM#6z{`rdm<>DlJ@FG@Z*n)_SJq(o0-%gD%RK%iv_ zl)fQP-ZL=#?kP(VsauD~bfi^0G{z5IXBP;nFtPulDd++M13z6y*MaY*q%x&xCGJXe@}z7AfpH$OZ&UR2xgC5=@!e0ik4>}A4v_&w)5z&0DJK2sc)k!f|-z#(VF?L)y z4b!fF6Mi9$JV7_nolW|(=}eGp0LRkuGN5K`1<^duTMDKJmZSkE5!_zUycs`?2K838 z6IZBp$DWOQ4NyK;;0VSZUv`zK*Y<3op`pGUbeE$0pVZaYM`sVHXV_g6EPaV*E4|XO zu@vl;d#8tGU+{e}4_~BVU~X^uzi@>Vyr_0O3h*Q=B|Wn0HL8rV(MkkjWA{>rDa$l8;_8R)B+6S&&CN;0U5{)fqZC-K;y;}c&JANP zDADleq!}pP>i&>nQ2dLB<{@`f(nW0HyL*7*&2lMv#s@^Q1B>y<5|0!Dh@)}+; z>I*jtmgZRBoy~;um`cPE+hj3YYeMJ|fKqExQqLf}ci}Cyd2+tzJKu}9xS5Plnrfp= zq|*96ef&9AIbg=@`N)xbPW|$?+Gv%qmZN-EhwHtG^bikWyH+=4voKuWeYm%`u=>@o z7{7UeD9JTzL6{ee4OU=m40-T=;1Q+3{o+TI5E@OrQGR_RUM2oRite+U z&*Bu*imM5{>YGkNp`67*z&C^;CKh+uUSs`@BugvkzV&QVS9X|qw3?!Hbg|jCk{DL6 ztq?aY3+G~4T+N)3LIr)ebUx}Kgj_7zi>kG?Rru!^?3^Cr97QW`qsFncT5X~SruGKG zbu}@D8>05}Gnb=87OxxlH0a*P=ilpQu~^jY_!W+Bp5=^6zmO0l=nl(SuSV*sy6v7- zVe+1Gifh-`*I&e3%3}R|fAY3gjyBHpDU;As4cTFBC9}J*0qqCE88g(g(;fjE^X)lq z96xp-==-l(C^x}kD@NGPVgC>e$B))!26CD_3FE&lVw50I_2kj_QAW3+Dh7HbYAhoR zh|9Tp2*lL@!IyDb+{pDskWSM#x8ZNE@&HNfqm(9T(doQX@x)*AY*l{iEN$}*q z3Dz$(#c1u>EfF*IYROc%(7||)DQ$ucycXxL96K74SVO_v2gwPXIEd25Ihg& z1R@-?3>8Y+E6JZ}iwyCS;xv!N^A@COqU@|=W!DZuB0?x?ERIm)CLTE;e&dThy$_>CZm7euoEHB3Y~nq#q8UydBd4|(Bp@4UWO9I3?9 z?C`1BtcCb7&5Z6GGg>@ewm*Hv&t;zlehFIVU3mbP2K}d7KhWZ|Y2+2yk$eh<=+6_x zY{zNBZVdghLbB(lOVQmSGMZFwF>YiKZjVegjcjw@5~$?hV-)3p#yx1Q_3%$g z+hE2jlYU|Gx)HXS2|qEW zdm+YUUk^n$mUj`Pm}!$8%_S-e1CJ^x9(y-#@MJvtv?eM3r0*Nyq=aEFT~L}pqNbAc zd&6e#A~>KB%xy)uzDO4)3pLqaAAr#il`5F^RW30wAS~6=3@$P6{Pit9>^F4cVL4ZU zdk*cgdbt~>$_>9jZ|eDZEFDSoO-bo~7T^kEH(%0t&3pszE7&AOu_>j^awBqrf>_qm zX7c%+gPCl8((Q)W3w6&Ms)yO*72Rq}y8drhmft~R*J3=)eQ0w=s4%)tV|)`)DrgqC z($~=Ka2!!K{4FQ>8PvK(z9IeD@uj)4@Q&7QCF-A76Mu7r!)lltl$YOIcm4S>6Z8N3 zndos*HIyi9@c*b!PM`5RSyfu#m{ZhEs`4R|qH<%%L!R74fm0u|C|dU)_jF{I{7`qb znzFK2DXOg+u%B;qaldwA^0`msY$vOm7FQZfS6p=8`LSVB8{E_jz1Nk6Ot+f0a%VD}7D_}UWIo%=}$L}@8d7A=OAYRzj@h7Akx@C!i~q(9#tAFSW+I$`TK{{L(B6&*P2c)x=@~|VJ<<=esSEJX2u!6 zmJ}v9)3b>A35p#!bplc4qV=cMqLZeb?k20QgoWF`gR3#+dHh^EwR%lH%g@iwCbTXD z6}dEXkRW~U+zIs#K8$C{QAW>pNdJeoj)b|JH$f5eNDt)N1kg4FE9&~)V(p2HI6IwG zA<C?an<37OU`ochyG=b5HN8AV_axe$TG+9pOhs& z0ijvykl5xYO_7n)LMupTKg&*d0IF7 z$@vf;dq-LIu9coBR7d0WBtCEvmv%eX=CAS4k*R6XIrdOvY-CjQ8l&DGM8H;z$8@3Hl(X<*Ye--cd28EC(jNF zTh!hyM1{fb@j;XV+uqs4*#0&97t;CD2_LuC48_57U{hDoQLa|9i~1icrYjNv literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig4.6.png b/doc/1.manual/img/fig4.6.png new file mode 100644 index 0000000000000000000000000000000000000000..6b7624317c2b49768a6bba83592836eec394f01f GIT binary patch literal 230443 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%0Afa%>QmilfXrUN;Q%e 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 C#DKB@ literal 0 HcmV?d00001 diff --git a/doc/1.manual/fig4.7.png b/doc/1.manual/img/fig4.7.png similarity index 100% rename from doc/1.manual/fig4.7.png rename to doc/1.manual/img/fig4.7.png diff --git a/doc/1.manual/img/fig7.1.png b/doc/1.manual/img/fig7.1.png new file mode 100644 index 0000000000000000000000000000000000000000..8a7605591ce656f17ed3acacfb81fcab8b88f5cf GIT binary patch literal 8418 zcmdsbWmH_-@@F^h79<4gBtUR?x8UvsmxkcdxLc4A9D)T61b33)?$Wrs2O4*0`o8z( zzPo0=%!mJ{>9uz6I=kvub+%OPsuQWIEQ5{l3IhNDV9Uu$sl)pLc*{aVf&Zr}vB(1e zSi;tllB#l&k|0$VM@wrvFaRJMnXH4Vt1&>FrLX?F4uGI8;TRl|1W=dw2+a2&dyS4K z|0O8LOoo`q0F!~ZD!25_=S)kP1E$X{ti*&#Zq+6_EBS#H_k-6v_d6@kPmmo^D`=)Z z4q*RXy_qvk2~ezp&Y0lE!KkdfvT0l+5T(BgacyvWJ5o1a0|IywsW1(o2GVVg6z)WUU%KZo2LUCTRl_(5>*d2H z2|X*9Xj#Irof!cZS}ZyVz`zA?KPQGKsj6f-uGu?$V>$$}OklN&!;ytZcQM|g7#Vvv zho9vFt^jGkq$1hGmJ4TCl^OGyG!EWQB&2@wdDQjc_-n>niVIWZCYvAB)Y88!Q-ABv zCw5ur5^Wf%eUPH={(u*NceZ_n_kBvyTDG~9l6z~r+7ued(yi?4Aoj953=cKZZgwMkGh z%BCRo&>bp3&QWHg><0;5-XwVj_*)u8yb;x9jAe|asz7dH!mHjubwl!!TMw~a$3#FN zvh8a`&b!eqfTB9L27EDNQ6}1zqCa%z6j!eL!W%M2Qwh@MCsFASCsWUjEsQ$LJBZC3w+1Z0T|!~y|ud)U1Wm95_`>iZO3h{P>+2Rl@3(oZNUOS?%p<9GLpFlrl zqHc}^8S*?G--=%eb_FZeC&c4;TNL4bAV7=+cH^1hjT7^>`#G@+kyAdJc=V>#_pJ%E zF22Yj5I~DXn?=tIT}%vppOBqLjwz7qAICvrExLp7J2<_fUi1iiI+vp&iVT3dgnVbZ z-a1yxXfZ!n57sk%$bbAz^x(vsI7l~N zRl`-%Mc7bw+EFU{Nb7;DYp4j~bP-6-AX3H9ajQ;07NAClA{%Z}AV(Ee83L?bx(fLK z(A42S28anvT*InIV+nz+u`CH2t|9+HJZ`r_5|>58&V73qfo>K#_ZEuw;#3?V-iaDT zPFg)4ODa@0KCRz3AB$dQ=5S!Cgtk~01-+vP~P&80k zk`xj@0Ey6ECCXC!B?u2>5Xx;NoXOGT|I9bc-^^#sXPH2)!I%#{P{est825hbjSI5Z zyW5wy7`LRiobN--*%rA?O-}ht z@iH(lSTayDj5A0iH!#?0UX^^)@G3e}(^8mLPA(TP(kf|`a%70+c z)>Yi~uWGp&xYM~DY%XjkxMi%RZFX!}W|oS*jB53x^1%f}MLn|&GYffc@-TLa?-`Tx zu9SWvevFS?EeaV$_T?kv&$64NIDg zufvWCO{KeZyO6qwu}jI^!E-(>>)!s}2rcR@!rrr&B72+{h?ljODKOqYtGw;l2UvO7 zKVI3f@!5|F8u--DI<1^ctlx*PvP)qfVwq!Ey>wu=<2>Ny;KAS_AS>q<08iPL*&bMZ z12<3Hq&ml{(imZ*Ty*%SRLk^RG zeSrD!aFH2j(DO|5%-Ti%Qe3oKy!@4Ns4A$_q}U|iq;OT#lF>5e-{RMY)`=F2pNBvF z)oDbY9qZ^+=j28dH1!Jzb{7 z{TF11Uq`^0Oo@zw%NzQqcf8Wzzz~Ur%)p^x!mzKA#mV0JaewEC*0~e{bN=n5;#TR> zHZWx=%}&BO>V+rtAiU#AetPp~Zzt`zVfCDq6}8f?GSg_;ysQtc*N)u?~eM+83*83{EB zr4H2wxfitp(-+TzI0;{qY>MRImC)N8DYVzrOcq}KN-_B1eZ}h+pBlrV81~p2*iqQ} zBv*7xECvKCLc|ng0`5I?KKNhp^CH4z@dhFd@V!I_1#IM})<2rLYPy0iCR5eeInANH z6Xx%Fj=uPj>{9*aI&x@MYUXOC5f?V~l~C%u?+)xf>xSmX%he{Z(2`MOCX#8$(xcNa zs^9e?$LMoc*fzs%5>9z(byZS%)*qxoBKcp$DywIAXS#xtwWEZQc`MID zykp{mY(TsS(+PbM(+wN9>3)!P`lQt4!jDBIW3ER%Q`L1x&J)sRQf5viD`>{86S3{g z&V2tt-8?g7c$aW=FP%)tqfcnR`M|4OSwm|2Z6K55Bd z?Wf76gm12s>3!aK)C|j=_8@DE>W-$i+7+1H@${3i%wyxuY!JebHNZa-b!cGFL|qivaISoH6~hC7Y0 zWc&L@!@3rT%y7)itLyai%rL=}nY^D93t5Jn9)>FvRZZ2N}afiH=%`m{fngp*zOKiIn3-tSdS?n03=`Q5&{UES~> zLu8;nS&ohE&0|jEhh}~mwu`x|h5@2eM>9qN1CQ#P;Mk!N3Uh%N!_yX*Gn@8l&RM=$ z7Ngku73a54z2zC3j_xZPtNX2)ko)P(V8QHTXp2m}j<@lqe-C08>U6-|Q+45F`T3u& zz;OFmGpc33VV{Q$xs^m#!yXlD6~?SIq0&9~Baw+0Q;^%+`dvfTZdQ@&uMfqyR?`X@ zDX7n9_od~m#g(w+t?71HkK@IvT>$LtSAl5Bb4SyXNA_xp|JZZY=G*hld6mfQEWfO~ zPZ!`3oyE$L)y~#svVMw}cn}(c+seQ)m-myCK+hHmzy}V1t8TVhAN{_lmn0!~DS6Oy zC=qvFa|2Kn^?CKX&-&_!65z_=(>BSJ4i&B#A$A}iZeR?h@D!>ox0fNkt&}dR-RH;j zuNf#$N*Yt&M7tl)N&7Vo+edc;fcYZ6>ciq)i12zs8>}m5siXv8fYWFIV7N5^2~Gjw z?G?NM0Eh`;091HS0B=$`2!C@2auENfv;Gnk*N~KxgZCQdE?}?&HcTDoE1N1q|Y0VPj!?BZ2_}frMNvECtl1r2hklKMBA2=<4buz{=|3;lbj; z$>Qi@#mdgl&(F%n!OFqG43}VrcsaP5dNMme-u_$3|JEY~hM2opJGojrI)MJtYij1` z<|_Q=&0mK8{{8zs!JgLtwd4T#&$QqZWc`c7%Fe>Z`nPU4ROqi!0aa^Hu$`WiwLN@! z;5J0qx%q_tCI5eM{%i3cNZtP;IoR0$iTnrW|3qp*z%G)G_HdJ~BLCf)|A7C={0~rw z^{<)#VNpNud@h-5bNK2CW292dEo*-8su_P;+meo!%WmNqW2_yxD4`YRJzr# zQ|HvUsC(z|#y;8=(J=(KWX$P*d1cOPLm2Y;mHq*8PuOSa_5|H_mg?7Q8f8VeNKN;d z&+Cie<5r*5BfsM#=uzu4b!?L$#C_0l=V17o;g#zt7aAgZoR|{A(3GMn0(x8^eolfD zC{7Fu$RLLWqD=%Ohnfc>nW3r5nE}|-kcz0u5vlPc1LX-2BL=9&Xx3kXf?gtMCcG3= zqy;jd_W{tm@p2Nn0cITNs&afNvY;?PGBpZbqFkVSC%YH|J6r*KV5%a5CP564AmX(c z4ZLu%Ab^|1`kyyx(!hl0x;H@+Wu{L5T_%>21G1y27w~wgF_4|MlP$(#N#GgK4_nQb zOSBlv5$CX9sC&4kwN1qU?#d@z>sg+xb#Rz=B9XG2Ara9ezfOHtY_eGIM*XbnYAl{A zmqVxek`705_w|}DEj@+}lC#iA{bA>$ zrG}b$%Z!1%_fh-J2^;Te)+}iC>YZ{8oO_5S3RS4~=4%TTvqf5n+RjHsjnmW9^8=or zIGonR_LiG|V^IibT8^Yo%kvDO={69v8hr!DGYzo^DJr(F^N2h@oO5_zd`uG!@W+cL zefug0YtgPY8jF-es?iNb`{JE)61~QcesNR^O|9a*+4FBmuik?oG+xh-*W2*7O)RZ! z{jf8V@y@(2rhMV+{c)S|SA7TTOQ^`b-Mr^!G`RN*X)q0Lw!UUhZ$BZLMeEXn&vA?W zfGd=LSN8g7*_MaC4AeTNt#1zwXJ%&hCk&7SxgjVxP8XB>%m>(c!?5S-+io_Z&bAU& z7AV0(%)iTcF$WXHn$RsOs4u4oN42#-Skv4-Ua#6m{<_`C!2D{8MIA>IG@PP;$%TXa zx|&IFC)M1d{O3#pYwL{!Wx&I!cTElxx@)RfMKV%()1SPktr>mCWXIN9>0gTuf(=^< z3UE^*drnJ@L;eB$MLSNPCsz_Y!|rcCrJaAol`92^`T zmnzOPXM%YDOfkgLWcNYQ?3}p^Gov~>zg-={6O->Sr$CEv{HLuBuJgF4p>ozV{G#G7fP$I{ zoJ11;TrpPK>9P{AA*78^+n-i&57oIv57p&O&(f4~BxOb>gj!)@Rh@W|f@-k0Y1e!k zv>cl43`ybsJ~$R-Cs_h_*y0WF4j3dxLodl%gIx@F*8I;YX(>T~Cx)`3dZpR8kK zZJdhBo5xA9Iay_*Ix=bz&)0l0p)iBvJHd0D3m3aubi`~vgQju5J2ucLrE2yI>M#y? zO#VP>5B7!c#!wH5@zPh>yt=|{|AmFqKB@rf1P^*mIvQv6&tTTqC*3bp`YAk?#*3Z! zbP}k^?x;C3OJ*gal?G`e4G7Xy$0KnPchWRj)N-+j2My%b+<{N?$F27c^A?Fp`BtM@ zJEf14Dx&t&b&C#7BNpBle_l(5<0Q}5TK!ItBLM!Mql3V=K9NYrU|h&@-C+(M79gCw zZu^=;z1I{0BiyrfgI713u_+Ypa~(?(b@E>##hzp+z4FUit`>HjJ=+6;9R3eCpGzI; z*HKDI9whI8vmH$&OBzyLh`2%^rwI%m!Na;l--~e>qBnBtD@V zWtUJ68u?vn&HLXUMi2eSaA45*p;+9{Nb+tWXR3?9LE*F7bNG%j@Q4H|bgp5$msJL0H5WQ1FISrx?@9&J}RhL|>^$@w`V6ufgnMqtyWDTV&K zEtss$V@*$Yuog)i{%*mwKtzTbF~hN6Y$1J=KEoSX-uuO3SNVy`HGK62e4Af5nN+lV z8O@&_Zi5Wep^befcUOn7O!o!r6}MSKD>sdvb4@*=OHA|Iz1EH<_@NSZ>)E|LUR~9& zs&xMXdH6KcgZwVbGjG~?(f;>kMdLn0>1G(2!=GiZ-AwVvhbwp3%*Y~SRJcVFS9nU_ z|8`rr#o3FFmArHF9eMV&bHQd@k~}u=#Iew_FG>NB(xNwpf~?!Vx`%j%wC(Axw5P)g zUEqbwp;iJamG79O2xD1QaN*My^Xl6ezRt5t%wCW*Y2($^_vRtiwxx}!No~B83o$Fj zCT**j&k9olTFytf>G|?`I65J)xbQ8+c+7)I zRIDv;xU9RDi=G1%Wa$12&WLlEka_PH5Dsb_gp|YB!8(Nb zpnfyvDVI6K>FlWK_yhTHFjc@qHFGumB4fhIDzCcuBdhB+t%ZEse#jkzUq$%Q+8VuP zI!*fGh_<9&e96#b8BF;r44cf-S=Z&D`5bEhG?FPeYf(+usgJzb8=ZK6)Wljfyf;j^ zwVD;e)&{>VR%=dfKb>O^nKne?eMK~8;xyG3x!p>%*NfPu?^F?ev}n702q}2od)az_ zWLx%V+d()q@^Q}ZdO3uyEdYM+-Gf+gQ7K@>ICUm#?Li&WjpXb(Csk1ZSw zo5S~^7vu8-3rKxMe0?Tk^K7Q&rBR>sOpGU5d^}1WH3gVRwz1$|cP{wDtw$;lYo^*_tXbR8LIN`OyJz%jKYA0?$iNoQ;OtYZ7)UuXA0nE@6B0oPq zdSd1IvL0w#gVsmk@oo9?xM7#__MmoD>YCL({Bo$*k_h)Q0mZO2qGED8(_dB^qp_;GGh1(sihz?M_~?@jF_8F#Gcr*86Of{%7*x&-t>66az-GB7z2-wOxeeAb z2cAV?vW0<6crZrIepZ}2(*B${$2+#8?Jyj|o&2Fx+ZD~T(C_c8GZkI2Y~Q8wwQKff z_Qz=yv}c(pJeBX%*Y6GagAPm=0`dUNMiD zaXh;I5A6qK(MMNKQA(eKYH{Iek(rTVa{rrkmnk)w`Ak8Z9js6dzIMA{@7E^9(<@H* zhrfs5LBYgQn@;2k(dlP7+2Utz0VsaeL5Gn^NqRsvVF{7R4{gk(w7}^>a4p3?IkvrX z*hb7tb_q(aE&L$#S8l3N>CKlj`r~%N5T@0WDJmb{gHJhJHWYQnXxQ+K%N64I_(>!b z%aWg)C6!!p{S&61E;gaO>KDh3F&u72v6Ax6~CgDtv9gDK2w99%KWCB~*2ilP5z%6#icoC68R&qm)^W18iU3;aJ+YDK*-a;oWbi7z?#DXnCrHS#j)-22UHkA)~rd$ z2Mgo@!CmhuoK2||rAvbe)%oG1eC={z`*sSO&2-f1?d!D^Q*>4$2FT?w zBQ(q^360tZVcDm5o{o|E|zX^-rw1U-(WOjk?Dt+nnMpU$kN5sdH#(^SCBo#xD=iR*8 z{T!DFj(d$!Lt93{Tn&?D!g`a$6~E` zlGYQgvUgZmbHQ3EdMOLSL`Y-(J(XMNWgL8r&j%|eTAM@w!U9Cwt8paes$;Wzjp1d0 z*p7U#IMwwh2p92=HqtQHTyvLBz4s`0VKzL@gcqDr5%dR(?F^OYM+eJL>&8vF)f)I5 z{zNbiu5wWN#>aj_pUTBL7%wJ+W+9SDUCzX0lw#F~wcc%;8{r#Zpq^MCME!_<>m7`BzmVL@onByc0LilMI#KzCe{ zi6OU+F5Q{`S)r|winI@kQ=kc2b#1=6fqSpKf`Y;rd1@>^{N4@bql^<F7FHMoG# z*IOk^Nbh7=GSdXZ7rC=(>SVpEeB`@yG>7d>m1)=Tdshgg_6r#=)Hh-@oqK3&GE9Rp zfUZhpq$GLxrUt)%W4wT)lsG znPHlo;bxiqtZkf9HmK@OE8jVvhb38X{;T8GrSv?{YA8w~P+mPL%S<>E{!N2Vay0n= dkAWMiZ+SWN`&64>{`%f0_g-15Lc%2Ye*wF9)?WYs literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig7.2.png b/doc/1.manual/img/fig7.2.png new file mode 100644 index 0000000000000000000000000000000000000000..ac58a4dd89db522dca3590bd42f47657c01ccb78 GIT binary patch literal 42819 zcmZU(2UHVXw?9l#!A23K2p9wf6(J%LIzdH>l&Gknln4Ql5^Cs>V5Jig6(m4ZP*em& zso`;PA8Q0OkK$hP-MI9CKQC1F_+GKANe|z;nn@mU+(|G{9{;41hihc{QnQQoTFN-O94JN^`n*|?FaD8EGPb$>>6QXt*b&It zR-u?vlb!i9iSE)NZ`B_1U#h+KO!IKn)n|Q&!-_|g)t?;_c z#0ORNak~+$<<}S``8Ai_HC`W2oG`7ppHb;RO#AI-e`Lb>`dyO~_`6~#vDN7fvE08_ zp60c`j%iIzm$-DrsN-#-e2t~?&%}h{0~LS0in?2UE>2Km@)iFk^4<2FIhbud~ci~#$R$2 zpAt?iak+}oc=~1`?xJk`1yf1fZoG!T^>4UK09Et!U5%#}EraNL2#N5v!-0w~!%)ck zj&X`$dsVb58c?*m=B!xBgi!FVaEtNB-sAfP1dez&SMPqmW&fc|D4-sdjTFL0V#EZ@fe2C(?5#4hKv;y))8t>WabEc`=be1-^4Jhc_;q zlX2sBiS)Y+ti6%6i(mbD%mD>Hk*oLpP2WeE>_V5k6=Us9<(oR#Nl!=bGv=SdiIgPd z3Yw>*C0jh)9_Ncu9-VtGSo~r2&imtjd&l;=J>jl&JRZs`AhWL5Pd zRV2dgljz+;g7N%#F;}r(N$rMcf1rWfG4{RCrZ-j1V|w+&5;=$Tgweu;z1dHO)1F*; zfqgHxU+*3A`FSZ%@Qgs^qs*cz@Y2Elcjt=|W%-0gb~9bZ>w8L7-H2^f?sr^RdF;v~ zEPw5nA%|7=U6nDVTC zbkJhKAY_*}-+=|4fw*!PGxx9up@yl;MHl@vR>Qu(OIZPM_AGxrn-*?UZewTzJq%+! z^86lp;T}X1k}j-yo-T8C>x$Sp9mSkU;b*03rTh85FDFi{uPfi>kc<(-^+9wlU&HoR zLqo&(vg2$3-^P#M%{Z#Q$L}Xtkt2LvTC}_u0=r||MRskyz7`9~G&;9ureRM}vrH8~ za7;+x;;Fb@0SYo!PkKFmMXU4M{&eZ4<&@Kw3`k&ZiVR|F=fXNf{)Hf|r zc?V9L4IIa$9(4o!d6H$)r6k`1pE~~MajmJ*JLxY8Ub&{9j_4h7e}DGEf#l07Z)Ii= zmx-yFroZ*>@j^)5Mdz3R-xGRm)^-n}`K@;MHCky1CB>JNn4jHk*?eNq=j-8uhA$<0 zUu8xq1@A0<;k@5xu1?kbKYln@ZRr zohK(Q?QuEt?#Z=_gQhwrItQ^I)PLzKrhc+4Q?CB)q46f;O4db3D@Vx4WrK?g3P#Es zY33)QUl_Jx4qHsTShYBrSDxpTH<_oJr~XIi`#$261uGH7{O4Du6a#mMt1zS)`xr6| z%`1;xEogZrH@03^53FSX~Z zz3cC>={?qC^r^RBu3yJ1s$AFWmDjqL-CyS~wtv<7@61W`@9$UrEBXm~W4ZtB1AEVJ zT2)6&wa#c|Uhwr=^Zuh{=4t9Rg`^@GRsNWbKB73kTjG z{CL#ooDRH4-!Za^;6J+ZXM8)BtYLC+@c`_AhqSMTkLH5*dC)%4A=yGLJ@>!fU%eMR zvfOL`Y-I$X_mc3w-4SX4MYsc z&0m_oJ0A(UAPdEu2K9poKJgV+!#>0773quD^zCY_YOdB;ZhWf4)b$|iqML<(38Tf| zi}x$}>V4AtCbv({Oa7SNoZd5iNnMamy_~1UdH1Q+R1Y&`P+)Ldz|b5b^yR>(p6gd~ zGtKHkDuQNo?ew6s*0S;!BD!XqdW#(woOY?pI{NW94}Q@0 zVB$dssf|-3>W+s-4J74d^+Fm4BgJ2fzmI!nF4h|FC>{=O)APFecl?1X;wHj8 zl(BB4e?BsD!`Q~PE5|X=*ULA}-14QGSGJEq_|TL{NnMr6h;Cz0+n3YPFV3}A7@Y9C z%H$PRnKPp=V~FN#D@NVQc6G_8pgN<9?beGPN>ln${j& z7>2*3_rMIXWuc6y7SusG+)d4tH3)4sn5$g~$4TiPc_mesjn%>Z82l9GOPho~LVZ@d zuA2IC#Br?r-sGjIcm6Kh?|Tym)S0*2fOXeqZr;AW;jZCFdkQsUSI-b0o}^k1rB|zw zz9m&zl`S*{lBf0CwA%N#1B#_<-Xl-K+^KDq1+JL&l zw!70z_53T&tH>`03M6mULA#+S_s8UC)ybx^?I7gPi4lZ%(8>(ct6(lc4X?J_A;;Hx zFk(Y{#!qYbK*cNgcC}MkU65Hv%D~ah%*^a(`soAj%l{1JI8BB+jmm$kDd~FWOFu?3 zbdUV$OdX|c-`FG#0xEFRd~{>d#rDUyVrOHo&Zjb|>(K|_9L!E`O_sNQXRX%h+!-sP ze{2+qUo)S+o}FunzK%WukkxSxtK~k~GFfg-N<%v+myZ~}Ld@OuMtE;izx7eNc4g}Z zzYgBm(p?TR>x#_rt8S?6@$X%9jmCHnzau-Lz<-wpoKdap8___8<*qujD!T~iB(hQPw@^Q7kW-T1 zS4f}z9TN*jy8=kj9g(aFi_tWoQzOI^qMGx@pnw{(Wb{YkZxDk~MR5Y+fkvCJS)Umm z{g#+?A@1sSK_T#S@%*c){)YKRzcsQCYJRoi1NaN~XU#|`mYk04;eMM`qE8Yb@z|W` z9OlzC_fEUv;!g6fdXj95ytG)*Nk>L;%-6sxeSQ34b@F_7&+{SdvDceV&w;})AJ!_6 zd&qrqMC*O+5B_UHTyk#YIJwiBZ^QTLwA5cafT;1|gE2ayF)7Ck{|b3)g*%=0HnA7- zNnmHb#_Zu(+y2c0A0|j*GtqdH%$0cYBNb*4BJyc-O*w{IQ;V zyLeapyyGbE;Nuf~@r+N1cRs{BOx_Co&r^Qiw}StB4cU3|qU~i13*Oll7U=Ho8}z^r z0UP_^!W(M9^QJw*-r7nJ<_A}Iar1L^R}X{x?{wia2-D+T!rc)r3Sn>`-ypp(L&bmI z(Bob2+y*Kt{PPOJ+fdQo`kKOJzd&~dkor0GbBad$6ciK;0^RQG-7qozPj}uwL&XOO zgufmT7#bR?9;&JC7w7@h(ACuio;wdbe_oCEhFVa#FTy2E%{NHt-$DLo9255-SfHmr z!qd-JVP{+ySHEC{p`zl>MF0Ey_dDIgJpXSd-=P1H#Ul{7^8~1&eh&D*WAnNi?A+D6 z<{9ShbH~IJ&SMX64kJxXErWmF|NlMtzZw6lr~QBR1cCm$=YKu<|Mt8U4S+k8{}(6zW%ECGd3-k7X8`=)H8a|Gu?>HWkI$IT!sO!3F#ZM7 z-f!i1oXFexGMT;)j%J$fxj5T&?&!%&#`uO;mc~HXo<`}zXL{Ri9#OS8ZE@1yPk-0L z426&TY%SvMW*8rT^e`s1;L@0)z#;LMKljSGdp)Rm_)&be2HZVNuC(*(($C%`=64UX zSv3RB-fRNOe!g;mxky!i{O>@sfOqPbGlS;MXw}09>rEiBeBgAg+ z+G$DQmy+hPyj}Hy*wq35#J&B9n@v`!J)3lS2vRjFxpz(LFc?S<(+*RS6|2_M2;7`mp?6;SYwi zaG&020mO$rRFvVYMa{m9I@%6N(&Cl_2o3Iy+!ly^w#<4mjrBvez)|Xk+xfmqf0Z z^x6iTIQrAHD&^vdqK_)#esK0;hHL(CN;fAE8WmDYrQW5b1|kBs7Aar9&`*@KL>220 zb;pRem28ZLk>VgM3u9NVfoyE^%^DtbrWbF8-u@yw!3tjbqMtvv)VION&!0?-rqoCL z?KZ_o!3Gep=d!y4hRuZ@BJ9ib<;3Nj{)`WV#(eK5r!>A!)-hcFZkg1Zrk)t0QOWbU z4}LCI?kp_-%CKW)Cu>q!$sQ5gEVPGXWSM+(MK>xWvT-u>@(bA!sEwleR9uImz3dmV zX`lDzk{sgN+{tt|%@ohjjKSpCk0Wc%ZCJm6=U**h z$0DbJHZTS?jXeV#<#8YNnNE0vP}i>{Y3u!AfM3y@LEDRTXstQR{56b1&Vg)r1V*dD zvfmYa`waSMUG^FOvC_ro3|0RyW2Wz2&vJZT2Etr|MuQ|gj4Mx0j!mvBnQ1U}_!`x3 z(&b8K&1hqTRWP`$EW8*t=?8I#lj(Y>?EbDdrCK@MwbffGp`5HcoNVZN7^ggPOdJzu z*WttHObwVO|5zM87 zvBNVzW^lA|a1NN#BQx8f7rS15&^E^qA;J)9fM~Ou-b+GwdtgreFb}6)%}8L z#8cCSzAO_)sl?<>dU_;J?8rX~mK?K}7!u3&6s`%Sd+YOzN4H;Xu}UPDjsY&pFau4+ zLuD7fiAPWL47Lod$#-~RhH7X&RqMY}7J?OK6Fo=xPr|xbZIw=Dtm!v`2Y}Q>SaKnn z=*%dLU6H4}ShQbON=bfOl4Ju}wB5yWl|Is?5pIqnD8c;Pgi-W_G*&h1=w z>%wVaDg(dI`(?X)BSBDu^L3%L=UqozKxKe@t5WNrb7jf>A@}s~KHimgKp6FL{bLyc zN%bt`F59CN51$V5L-$-Koa0*IWe4$67PAwA0bk$Nfw456%d=aj{Bm56KrtB*zpKnu z<>7e`OS}UetGiW+-Plmz$$jsezNL;&=wMDq;dy-@=agVhl0)+bBfV6bB+s7t1>wx( zp_E%?X!wKv0&WdyB_9FW`81F^3N);7w3H#AGDMWjN7DLTeF0ek24tT~m~`dqz?4Ow z#OtUeTsF2-Cuf;DL&42(+vuT}8*o~3%dBM&ZuWGVE=na0`jvND72lY0TlLV_&pHl_ z<-|vxP?SC3rsZk7R-OvQjD5b)T94FnKnA+m8kL;!Nm7lH^Z!+mH5B+7r{WsY=v&`E z4ct>#k;#o;E%jbv$N_OblK#{txL9FY3Y}2J>%|N|=`CyrBdAEvq3cp4nMj;x^`6cS zTD-1@f^oWrHyEn8>TQ+L5YEJMF!$(iQR86Fa7CxfJRoAicT%wO@;ToOP_)p#7N&*9 ztSQRGyW`?DRgnX|8zm3#I!3@bLsyYJf!+g{%wr`dGl-{PNLu2e!hkw1JlUuaZc`DS z8rcD!V=xMF)jF`V$bU>*tR}@O$>RgP_YKJiH5oo^v^|kR!Ij=U%bp~GIgun>U`o0D zYMNJdfb}$hEfTbywDk$EoE)pT(m(n0=(=$?5Q7kb)+0d4BDxzgKqpwEh262q#t>n= zLNbM5ue;f{EVlFtT04QLN&q*hHajyglMkSnx+)b6DhYaE{tg`w$rV-QWK&LV;IvXG zxk1AjbVWi*7f!P*nyZIpq|o~0msv8hbb`8Xu*S$^&5I(_659UoZ^>3Zhx{#siZp^J zo6anh7c|1`9ASaU@BJJNIaQ5*QLz+DGrZjz!?DSxBR}t@C8lcU8N90haawmVW+5WvTyrdUFc4I;f9G0DioSb)tNv|78F@ z0@jG9$}yN~ohEZy|4dIfu&6%#Q+$;V#w=vo<8m|QTl+gs3q>B%NhMtSN!5d0T zbiLgFqB*dr*w2rDj@maWS5SSDq-;CWlZ0G~Sre~t;j1c0p9N1Pl7WAxCBp%YjQz?& zM0L{a84jBIaE+E7tH@IeMA>d!(4^dAFlUw+>YQD=NayJ)jke_lWuL>eYR&9O&=3&~ z%I3~s{AgR5vWD`J6;IUJUv-`UW9M=YH3(|R@b7k;R2oB=9NZH3uLixl{N(LW$Lf@= zHMHhnKLM1_YQFp<8!PV=bP6Y!iDL8<3nUgbaP|mBI+k6s%2NvG84mPJuCRbA$E@oc zea0timUVozOKd@J8{w++c$k8fzmBe_>T#LFj2fY2El79;J(QEEGH?pUS?et1xO@>k z5+L|7)EV}?t-WZO6?0;6JD4YGrZs|r+TOg@t_Ti_%=uM3<4BI(p`v-DmmY~kQ~ zDS+;cJq5-EzJ#(Sw3NF_R{K0q?^y$&A}myQfJMl`t{lL~Dsl$Q?@rP-$UpQ37?WnE zs14o+@o?K(YX&rOn^j6|0?YGkS#h^B2cC-4emhf_PO2bZ+!Sr(X>I`>_*pSN2SCpd zBG(yHtcOKTL7?zj>7i*Dc%!ecWch6waoS5W5dzVkk@|h{Ev0xWUlJQ#&m^WW8XqkA zl)@a48%-&%u-&awQjbZQ+#xnjV}h*f&w-S2x>h$BeW6COp+)#y2&LAGpgnM>+Zp*M zgEoQSB(_S@{-kN30;tnU3v{iVdPnAD-J5KYpY89$C-xlWmwqd72V8fw2OgNGC+p*! z;F1N!+;-}4UGcU}Ivqun^6r3WH_cs3{O!Be3k=!W(bFAv$VsMa5@Y)GYgzys#ugu9ZC`T{9)7_w5>0&6SKkDyv zv1Fe;gZ@qxg`6g+^aoMIY8{vHhL64+d<#-t`I0OFLQsFFj(#j-5Vg8SGjyia@=J!M zi=l=yUrAA4^bhAkV2Ei7P}E7t4D;$>oa6`kJ$<7_L1EFU4PfjU3dn+8hCLi5K9BJ0WP8`AA&HAlK&<_yW z)x#$lMjdWwB8Cw@*u`W*DiEMJdC$^88E>UOrKgc4#OJG8MQFM9Ze=WNdRajWtAPqn zfSwJoU=TeC06M*}*t%&w9ajRI?l$|H$AkH@DxBcp>!y;VNq#XXO%FLT+ z`bTYFpN>>EZ52(!+tUGz);%F74F0;|=bt@7g-+OS`*lVZVzC;oBR`IHV}rbFBkw0E z+-0)HrN?7r7PVi4xN6{Rw~V!(P{A&HXRy9d|j;d zDV{YElCf^#{YUb*PHMg`TDNkzvz%2**8=*atyXfhxCyw@aTY>y$7<_aPBJK#+Bx7w zd`4K5_{?Hm8*{X49G| zUF&Osb%#PRPVzd#W3kpTXxWy^7g+1>jJ3RjpFa|O9i4pYn~XMpbX%u8g%H<>-N+E5 zo0Zl5g&!Tr%mMm%px99DqV%*Xt_tRi%Fu0UaI_E&c zEj5c}*UX)>RS^p3u*h!=q@!mvv2T_$D)d7z!z1^L7RfqxL4TKxg29F(dsr8F-XNjsoAbjSqz?KI(Q)iGz0tg453yOhr<4jJ!n@o7fhOVJuJ9j@~~3#oYM zCn$GRcJbiFA8UUsJ^s|wvzHA3?`K{?=tR}-FAh5{uaUqKy5>pNk2>`KD<$aj*ZOm42U>3uY(?KbAG6LP49VSI@o=_nkBt z*w}Hum&E+d#AmlhH|wdAl~s+1X8q9sWyIzy=}_Eyc}+73Ro|3+a=ovlGl$!vTi&kO z)B{p?*61gs%jpCN8Sfu;j$+rDXR7xIYOFL)T7oO6Lvc-i;Zr`f;TOluhs{n%!Ob0t zZtZyfB9i=@{n?yJFlUllOYg!g`N!&au$O*pli43^tI3m2fc4wYQJ})BP>Z?t>or@5 z#&??O^Oh;KujH?VB+6eDJ*W2`ZLGA&Y&ydB;+wO>&k(}k0nN3IM=z$Ac9$(j5Nf)D z#wy!(sQRfmR#c6af*;G_aTL-Gz|PiG=4~%>(rkZl7n--bwX^S9)xHy(q{W3(3y7zO zc;rY22vs$17Rl%^AHFYI@k~nD^#wGxCaCEEi!5JyF4WaBZ4Y3Q}Udw4ia z{6V6ijUHc;aj)6Rf`k3HA1bmk-4HjN z$;aQ2YOt=<4ib3&(5BgFMc~YHHb_sbR5b@VR_QXKC;X(V3VJocmJ{wDeTPR*)u@<1 zkObZAx7$PNT*}YNFm_#dZ z_1->}*ncwh{5OFs`eJ2Dw>BF3ReS_;`jOKaOW9H^Lij4!TTZKJ-fteqYK z_bNNq5!Y0aizpjxFxb5V zmd>j$s98Z>Z*tc1ROAzMvrnh_gGrX5T1Nh%Br3B%pec+%9aN5r*8@*3OeJ6wjzB(5 z?gr5g)LhjS`C|0k@0ESo?usohg$HKuB@0DA@mWjtGzlg`Oa3O)T)KUI`rPwhLvuut zE06mYeM4&)m4l_fHJt0$sFwL?@b(Mpf_3z0p`Rv+wa{tHY}&9yah_5W+KV&l{cHB; z>$7^enk0lRHYtkn#WEjKN0aH(g>qUDqj2AH#$`Yrj*;(-TWPee?Y72Z>m#a3m8=y+ zT97a5{P;(R-vk@ObBvkzH5zrq0jo_~nDKy!ZP7bfMXZh^eexgmt-)IjfNXUg%G6Bg z4GYoK-eOi;u@#uE3Dz{6yN=GRU*4|wQ_+l^cOdK4aoNjQ&MK7C-giaH3GqwLD3=|H zT3+r1{ATBK*RVDZa7P`b_#wkc3r0Vb-A@bvV27f$ zpj`qpKc?GI$edrDn6~?d7*bt?W+Mj9$=U)*A^X>8rA8Wt9+wxOwalUX=Y^hy zBngF;8Ess61l1C%hazn4`Z&KLAY7F`JfW^SJTYmr`KF4ZB-PWrn-sK(`rF$qN<3Up zfA?#cQuL3RDWR3`eOQbjVM4$h-pe;9uOU{k$k^Q>EjY$vh(94Us~{%YYz;uudA4{} zT$qS?0MV~~n!5~yP@?8+`{1BFwF>V2(c5IV-zk{SBg{vIFulz_p^oBsi_+Erjxs?7%%H_DRywT_DlW@aa^pLza~K^SHqi1r+(s#= z0h?LOWhN2H41JUbGZ)OvrD_$2ce0+*7s;H(K8c)_CsZl~#bhOZK&_!Uy@>9}(I8IN zs!VrSQ&NqNk=~%C5wjO<1Ktb*YqQ4zobg%@=yo|&-*EjiBzq|^y~e6ItWotNp?;&h zZ}Qk?6*UzdHC0Q2L=N@M)OLq=1*JTr_YxqSDTobjGZLo_{%pvhp|RNK4v%qdHH5k) zt>T}!G}=lmIEv|wS`_Po8rXiVb*cZJNgr$Nx&0L+jMYtb^ zUORgQm^r%oy3&fv!gA>hgF0TIGY7d{iHdyjxSPBsi-JXr2?D|pHb=Q^9Cwq7;&gL$ z=UF!!?!V%BX3inq*)E%-?8Qmj%_hE{ft7%dhL-o=gUC)~T;CevKI&{q$|(OlN>5fS#qIT^x`JzQjmI*KXLmq!%P%+gUlJ$HANj-bTGynB{F#H=(e=E+N50{z)S-((x|`o1G7eX zsKti2Md%+zqh~MEk)mmQpNx zfk;5l*N2;IIU{UM2gFRQw znPa`O1v9rtwnaH(qDP(QClz|+%gH3vB8^jXIbOpxY6`m)R&F1#A6vH-t0r6iOI_Us zTQnkcYk4hR|DNCl+Rn7?y1rUI%9A~DWPDLTi+Ypy&+{(7a#i5&WRpV7myPm z7NnW43nE=WO$GGFa>BZ$b63&8?Z;FRsnO|{n?*m zl>c|*36tmN!stdU5^g)x<2&;mfcb830Cz={yRx%VkG-_aS$eZ@ zlBtTCF7D95v8I7Io6%TBmYO zdof4`8&mibcZL4NuFflBd_Po&u`py?tEH>L`Kbh18r}6*n4DIx{RE9-P4+1rqs9IB zc4Z9@IgC`Komgre>8nA7DlvKi?A{;1P2P7bcVS;`d%E#t=Nln==~xYc1lyDXi)}vw z&%Sh>@-QfRXBiP8RhiG6D2-Q1xSWp5$So{!YPE@%^%Q9SrFdh1ud<|`au|^Vv0rY#(LY6H|saEu|-Ej(|Fam9!&nab@x03ci4!C+Y!7W$^)jY-{pqP*x)}3l)(eR20t3 z5*T;I$@eP3U6c3GYz0bE%tzAnCzj;8_RP2E2v-qEE_+DarQA|U(F-a1vr(OuAbt4z z!lX?s5`!AVgBNiTS)w=%9Oq(-P5iKc;GnC(m#6%DO8QjcH)6DWOCv(3RFxwkqYteC zM7r(Z?k{(vT$7UM7TTf?gByR%vk=IVq`AGxNHo1S#zxJrBCZ z&-kgV;n5)GuUi0YSN#kIQ2P|)PJhElW%$*Le`h>vC05ooYY8?Nsn?Hr=R;7O?@G7} zr01n!MiJOXIhXI(qXOs$(~5QD!w6wZHII_JQ=l8)(>oi@b{lb4G~&yh0$WcK;ukf2 zCML!6DC953zPL3@+yyp)%Y;%?f<0owloU8a!9beY@yL0ftv$l=H_N#T-5ej~`@4)% zFq0?-kn4_oOp~e8Wf!2B|6A*1P+;_n}eMVP^0seem|$5Knz8`6eoRo#dkq zJ>h#Vc%a5u?&7^l>*@uGil!PX{yPTjz!_N5iZ_zst~o$4TH|II(O0D)QX>;0W`AXG zn4qhAJ=%im-ZUSPy-_u-#4X-Y2R}k1@oR53*$XqWCz0OuZ`xBeHHLHC>ow-eqJl7JubJir>slq%5qtPikMOxstJSu49=_WsLPaA;cZQo! z#tj3{$D=Lc>Q>t8;k0ZDYD<(m&dOV>?ZEqt%tB_h)(14K?tWpN z#48ZaRaqm_UZ!VKmL8V8HnBj&oI^^wdz)2qG3pcByvN z#4#4#gmsGH5?oDewNLd*J5;O0@D`D09}qA{fZ5h<;fwD#aa?xuc=3bCqugfh7N8q7 z$Kn}26een!Xr_tC@iHt?GTpV@IfmS z?x0LM;MN@|XqbW8wvvoTXY&OkXR6YxfwqnJiRzinQNN#tmC|e_@zc&VCnN8_HCsH(tT;>M~YyPwZl!{i%C_|O*YR^SqDP`;_ZiKZXszQYWfU8 zIR*P&y&~rlOIu=Oy=BF92_jjpe?<>RXb=-W@Rdh-86|{Fc3O6hq6eC*-KI0)Z2qp9 znh_5_BZ7h7Wnpa`aVF?*=Xow`znwLf-7(#FtCGm#?*ikd^0<5yOFLvBa}C2;re+m@ z^+-%s5T$!n{tBSd5y|k#FDR;~BWhyVgNQVTtPwy*6qBBA1Ex7Z$Sg)@Gl+al7e!C( z?A#pcT>jDt_3-5w&x&BQ9|9tJ&~T)e&X2IkAxJqK!n(9fW?@j8-1FUbWSeQAQ1rq* zKXFdQTHztADgZJVexq_3AH|`9+4*$sOHocevN4(zvxVzfdtuFq%T~cNtJ5B%Mvv~e z%j{a{t{Gh~VmMq?G=1LRwD>f$C~`E+@m}#!JE``n`Z{`#wAq^YRgYM96@}Wr)+k5s zv+%3yUJHF+`*NC$+6BtLA4QquKzp&OfWNkZq`Mg9iL3DpALw29XmZ#X)0FHU1q1N zDYoJig*z3pNebV*d9h>ZoU?}MNO&~UN68aJEIsm={Rxtv0{zP}uW0h_OT4T?xY*Ja zH#{Y1VJL9)`NMa6E}h8s<5L(0Df#~;%1jp66wjEgk_+G++WVhdZj|;hzw_!_{Ogor zq*$~8(lT;0SME@{$!qaXM};n=2%2KHj_XfSO<&mLE7R;oE6Cl=9UVu5)uvhjM+DW0pqOlMQ2vnI1jKB3iu^F8U!d3Yeo5XC= zfUI{^E!U@SQX1@ zc(o{9y{=?}zbw>pG4Mee0_I>4k`O{$Z?sOhjw-a{Mdyl8yQ*`S^3RWwmx4uIBT1+z z@!r*B$gEcZ1P^XZK~1R_W&ZW+sxk3X!NY&m>F@Sc;1`aes@=w@``W9l?t6FzBGIW5;Pa1Q6&H1A^uo~tB_atcRQsA z^i%a=@VlJGo23r!I|V}i$73X3EER0e`_@b%@NCjNhu+;3#`@W8&w4J82{dhDwL9eq z;|AA=1)*w$_usF5lpJ++NLndRzVoS35Q}z|d$6XY(4;v0(KCt#2O2^{Tq(s6{LL4u z+p0fAF2TI(cGg-)Y}N)HdI9Or4Y(XSoDEpU)zhlpZWk|eBsRfI#6;ATc8>L@p2VLj zt+x&5WTD@kUshRzo?GRV2{RFVZUrCr{rWeD(w_8>xl=*P<|`d*(-75u53xBsS&mE z&oYH{l+4xat^Z1z-FEA&lRcP$PBtQkDRJH@tm!2at}JDX-y1nMOuDl_!UJC#8#m zK}~JlMh?MrRT1)s>6SLBxS%dl+}C%Jr%RX}BkGbA`y8PxXA z%8btJ-B3xTCFNP_z#~<)vtk04*p>a}xKrj4R|h;~b@*-THAEcptde8}*9KpM->cs? zDxLgS@@K`QmvODsP*ef6rk$r^3~m10R-9w;3@82`7QN+$LA6~eZmHaVC#lNeWki(S zzLl7=Z<3v_-2gF?-bwI7{8H#nX)~xx{sjPt$^W@n8i=O-8!871q{2f9*@Yx0fbQFx z#Ziv}`H~q}BZ-^Fi+TjavhwWv8#P}iZ@l;}9U%B2-dixGhpKJ#$Wm&{Yk!wbHXL&= zDoJ19B{nLrWFgV4I7#R@h8XZqkatIsbT4@aFEW>cFA?o0rmXa%9j@&Eh^)2yYMt_i5KoYaDFJOGBQclBrvvD@L3xtq^-wT??oyYIXV zy`c9V%(UpGU-Ht2W~Ptxr^pa z3*S4TRsnJLL;R<66g^6!b2?44cwv^Y#<#HlD3dD3`+y*siASVtJJZeq?UgqnuekGKzhY;V~r|B+D>E*^Tgc zgO<49;wnDGck@u<$*72Z1EMReq{@qPK1~_J7%kr-or%)xQm`mOS^VV4%!&E-o&3$a zi+sQ;`V!D)mQ&N05P6L2Lq>(x{CQNtXx72;;wzA-cO=IIPjwg)gg9{wqrV?_cEj)0 zuCshrI?u~3s$<~ta1%C*PvR86>a!5O;W7;%*#yHj=a~zYWCHY`yvpy##-XEzq02Sg zfS5=dLNvLEk+u}Rk!vL4*`G=Wag!L6YP=#a7{)q0q3&kgphV@~yY>>=R5wSrL>IEH zzupETdB3ltk85s3zWic@N8V&wT?oeEY=9!N`d=Yd5tx+MzWij)2pzFlw*(gP$0<>I zn<2wZG|9R{QV*H|$*qNkGXw~4B`^mik#~|x?oQbYR$d~%SIe@0kl5c1dQLU%S>so| zjk!p8mW+IunAHe(9%^m_4*a`+_CM5l8wp6SYR9uf^HmW(6KP9a5O*aJvgHP}iMsB) zo`IUerv6@)r6<>ul|yXPFT4qePI*mKzR!6^O;}7jPGxyE{ z!trxXgu#C&5Pi7xDKdG#V%ySc7)Uq1R&tWYI<%|GVm7AbVNDn0p`@$ zY~0gz-%r_U=gL)ml-xPdxay21#-PEZ1!r3OBQNi$6T2$gU1|TX8LbkVJyz2kkD;eexKZpHu8O~ih&)$B7g-*p_($wT%FREOy63rol|hXPg6I0 zbT`*rjQar1m;^IF@YF(zajMd1z|TE;=WR@7;V|QCWk+aDos+|+3~|pSZ&(|+$xCFS zr~Q_O>6+btP)t>~uzzj-(2{q==3Uf@`_TryB)iRPgZs>67gIIMUQN=vLy(LKtVRgq z^;an+-?W6o{YpJBtP{)&hJR%CtE(xaqVqW4ai3R1Ud9#tjKuCrqnZ*Yj;jpx9~85q z(8CU`tl`q0-U-2?gLyi099vht4RmHNnAN~JGW2G7Rs|!Up`JYBiifXCdOa++zALls zBarvB;#B>pR$4$Wf5Aqc{BzfMTM; zF7m7IHV1o_`x2T2=MYuFH6Nz$zIIgjeuYo^Elk!JpYe3Jb4Anayezb`$JjoBuVv`e>gD+1hk=yb&Ih2Lf!&mRIY16o_ahyY=7 z(-yqjJ?T1z^yj;@?H#$8yTXr7@K+P?g8nD0;pYz(84VlnU*Y>ecpapVs-L?)=%GIY zfd8ALUQdjPyjs0IWI4ih{nEURgL1|zrMU699mATc;2&RcXf~A>HAh5)OGB0Q_`WF_ zf%g85a}?1#iHoYBcV7enRWRV~e^a({!c{d(<=fE6&)ek6u9diqNE$>JqKvB5S{*66 z=9pBamSlfw?*aH*F<8P=nablsQKie;zncdC$cnyPy`a8SRWhBg3d9EbQ7GUh!oREL zuh2vC1r2ZFwzKN>0e&l%QbG#}sHqo^@g6}QLcm0E?HK+;I$nC^SDp)>e_opWvQ)$O zYz;A-enSp+0vDKGT(wT0pTtbux69I<{U2!IZ^p~M4=Yo1?2g*@9baUPL|o9crNXv5!2@p$un36Hs{Z8eKRg-B0Sf{mnEXdkJ~+ zbd$!e&Sy5BLjR;Y23nCY7!vtEhM=0Tgxjv3Vv|pD z@u!D!FJvR;PS}zT$OfkReVdi z9g;4`FdK1damAC&L}HFBLlo_p2;vv2K&tfypTa}y?uz^caj}4e)6YUQ5<|bTrnAxt zf&bWUk%vo5>PuYpEuol+l=YE2D?2F0G0#GAKv*YG>;83SlbXj|_M%k^LE z6DH>GXR%og;^@5D##wSSDrb&xlUUl2s2!Z3e=o9n&;6K>r8@2>=2FeY&z3wedU)Ih z(!+0S1j|E02)r6Vc+QO+Rz!Zb;Qz6T+p;&{VQWqY8!XI;pZABbO81}RsYiv|&tU>R zql;(pzXaYGw$`iACcarGX!wpvs{k;+D-Ietb9~yMMgK~!qi|I&Ew*N9X(^aXJRQ)^ z+Z`Yh_vDsY$Hc{Ny8mdzgE!M|H-%<0lX=-N9liZ9i3Z}4-_nsR`peT>aQkBj89RG#+w5%(xz4U;J3olqs3XrILO5)tZ7g&SaJdtZ?{QiVh#zT_F=w>r>X`R5)|G)?SO{Uv2*g0N*>v>uo zmt~WVY6JQOz5W;YU*I=}jK+=N)yy$Q{-(qKkF@uWYBKNIe`zB)3W$s#H7W`gsz`?f z8^|CqiX%vsBB(Tx4j}Q= z{P-(1ZgyQUa@J;aLzHZPeT+kVfWtOA6CE;+}Du`Xb*oiv#tiC9WIQ z$bckc8q@tg?-2@Iq50MFpJHX(%Yx~N1cza-Pnp=|(qAX!`P+>g3g59b{_zFc@e-2d zr$c8)(Hv6cAtjeH9qjg)}1cz~ElG07TMjEn7(T8v+ z-Di=v%GW!Av#e3M49|b7T>Z(S4gXhbooP4amy3K4s;0%SRW1zaB3bhb=wDvL#g_~@ zsWl=SDZ-h0G(p$(({^aDv&B z%9e`o@?Vnv!O;f?c0h4YPtZ}>XyX9D9(Z`=?6FlZxC+n78O0-ZZVImy?nJ)%B%ubX z+3Gy%H#6$SR)bFOyAdF=1rU#Z0^UE1t2(yWVlx7-N`^aB9p`Ljepcn)#u1;_PSt|1 zr?~s@MP+y=d&#(!-aSK1LEwgTBU-9*cH`-R8#<-`UhT58EQljpW5|cyYK49Z+!(XU zhJ3!C#U4ZkR}WwleoK4o<6U)e@)9(oNgML$%MJo_IN;^4z5MM+lwfcqXC^bf)bcsJ z%O3$JetO&Luo5wD^c$j4$@%-66yEcYN8?UM7*IyM0^BX?w~q~Jw-?8LY$%XNdG+Sq z39<1y^9TH%vlI@jG14CB8s%rntBWk`_oG!lB(KJ3&ZjP;Ds^;mbq4V55zpS>33xEQ z{F)GCcbAS;t9zxPu{pqc1N7%4Cy8-_JQB-iRaJoE`pzSj2i~`yBo-n!UTcA+e|my#^kJTjr{@gu)xRLFX4 zGI0KTh{yzaEtvV;2&Ln+UpD#yUD{gOnrbaQChw^^uOp8+Y;Pywc6wh8O+w)PtnK4$ zu=r^=n2+Jfm$Rd1P?(QKP>O9R{4_`v|(xif5-W6UBU?9tJeU9uoEb~@3;PuuWe}PHX zT8I_EpLo4fG9sDv=aZoeksX|Gao}^TO)JjkH3DON0o=a>Bk#zsmZr#P^8uM@(ZKhh z-cSCf+CUkNY&RHKxibDLACe#3{IHKQhbn!F-N<>4$l4uw>-^ejC1K2+uj>+j%jbUk zc-Op=8t~cGd*~;9HtqYaH0%<2GM`oYyD1@%}4hp_u#l~;O!D(>}%Lnwi zEUVIpiRJl?6;DV+I3>xsk!)KyLq&3!qzrRaslUA#Pmg|!oSb7p_GC5tA_2i8L2s< z`yJbPUacf_PRDYixZwG6CsD|7#YGhHEK@AvPAPB>M73-KVB`3$ohEp1{G?o(L7sy4 z?&uo^0Og~deTv}nc8wd<-U8ut2<#L*XrZpIvh9&tl94|m)6DK!!*9zWV)n_+zhzv} zem#%K_YZbG>BD1$);2?a`)&TiJmjEDq~pP8Pow2q{cRxjdf^=Ro!dO-gmBgf7F-l> zp|=GyXWx8Be`h=Z#f4(~y_^}NrDaC9I=EpENh2++E08fpfB_w0RFo;e!e#c3WS%Lh zbL}}rMgWa&q(TsDu@5{U2wsoAIHQ&4T*y_-`aX<0YZb$)1z?X%NRF?6 zl0EcEFXaz%D9+&BPizAQUkHIMFz45(4;p^*O=_mBI}=<8D~to7e&VV?yLYH0x za%16YwLjpvtu++-UljG87+c!_UX$P=J^tcir5qU^_Eb$nd$e!s_7%UpcpFC%x6P5R zJ^Pvg%R#ZI>h3;;EtLx{;zv|Uwr2ZdlbgNyUh86$OmS)%J+-5uu#I{9wQ48%Xbc<3 z=ie~9dYN5U$8nwORVX8$T`uG`(r&%O1*XDwn+S|160c}z3uV07bwv=qE{Hl)+W0V> z%S->*`Ct{f#Qed@TQKwt2LLStjFce&{~{xux$(5;JeMM~X}3ERw~u#cXhN=D@dB!U zt@#r!qDLnoG# z<;_khkGc(knK)jp0XTMRJ2e5L6RUvUE&d^E_3 zjf`xQnN-gY=+UFv2(I2E?x)$hKi32tmO6Cl@IrdoOzc`&bMJ@#v54!kKI}Ejh2-*? zOy`;1P`56~L(^^Iw`Cox2Ch=^sSv9&<9~D)Fimtf=B!<^Y@xkcdn)o#VhomHnRQ1#r#NpnZ~|9;tk6zVZp^CsvOC_&P?s||WZD$whSYpvriL#f z9Fyx1FY!ve#-1*`Z?#QmT9Y{0O;XiJg{HiQq`ifwgYe1~JBaa|Z0F*T-@7@xx!v>hvUJD!i4ktE+uG95l7 zgLz})>CBctPCJ<*X_}AGc4-T~cT3szvviS`pqH>tIMLi^pHwkqGR@|%t?0W{PR-iT;E>+^9}*SuWqymf*&-@W|+^H z9%2K)$;#%UDI`36l3Eb*qa+p;V0GOp?5p)V$>#MZ{hdzR6(oRG^KSEsG*aLSjVwSl z2}v^E3nXkm-tT>Okd+{_bE+hxL@$5&FsIk0Mel&JJ0ehK?$E2p_kcxSyK-8@xo7n1x=?3Y69@Q?J$8!VTthZ$2!c}WMb!g zb|1!^pHdB}?|f7AaQ@ho@6BTtK|m;?il%O%`xQ8cWwvHmo|0*0eI9A>#2k!9GieK< z;25br=Nv95!AKr+=l^khOXZj`?n(F#|5=wA#~VJBr9@cN_jEwdxfi~$8i!hGVM6~6 zyvAqNDsonr*fS|_X*ffKrtjzzZfan`!{Z=s(s2LrM+=Z{p^w!7-5r6+=KYpt7Zn?B&YZ=;IgEJl+(jA&B|+Va=ab_C#;{>GTb~ z*Krr%mYPRVpCNUzk++{dt3AePJV6gVXP3$jlI{9^Ta1ctW=}C&#fio&SpY1})d31L# zL&w{DPQFa3mU=glcD)dUAb!~5XW7!N#2*bra;Ibn3bpfIAaAg7k_u_h7@^F51aIoK zFJB;)u3YB^9d_$>reKAuOOpXfT#c-jUd#}?=gjcpHI~xh?UR<-D|c#H!Ld4&URLZZ z5+*YwPi2H$`2zT31R)R9*4#6(yH=kgRzQJ_XG$1-**^su$chX52grtfYJhrv4X91z zA6@?UZmncx&WP8T4GP|WBeZ#KQLIXT!&iJs#;~82CC# z%TOg15Y6SXi6n9oh`Rdx9LgTBeF+1aiw8#?q zkh-t(0ofa`yT=x`R8TY02YC1zRnIlxteH7AvK<)|txhOe?aTN+GSX9s`6?{ReZuA& zq6H-HHCLUIJNVyTn-(b=)}X6e1XDF$6E0uGZl%}^my5-y;W37l52=sxIu@^IrGfHc zR&!7+6#I`AMFXG)L{5aX;QN`Uo4bh&pFF>xBGIx+VO94@iG~*BN%PrMuQd8dyBhYz zi;nECk4&%cx$#i>!c|cAO0}80J<_K|pe~Pozf)?8YsNVLGGl(@Thr2e&j1mCHGt-M z2wbMwVia1c`}Y9n6L`Rxd+F-HScn+PHxxK8tMP!noY;NW@6)_BEXZqb*>C{KThti zc;}CmA*ofQYX9@iOYGoF`)4Ru*xpskmHn2^T^or%BL@p`hVSb@z^zkOefhmyP7>#Y zw@mh?9l1O8#<~(;;;$XJ%bZn($K#L&IN5nxd4AfmjH|K(YmHo)I4<|QD@4vTj29kf+b?MBTawu?AzJ&#ovfgte zB`Myd<0?>rwqqs+K98crhR^0 zvE??>nro$}lFX5iiPLeQX!yD)yR{Mdvq>XzC?s-d^F1J%)~&+xr<;MzS5m_m$4SlP zYsK1(`yX_{N$pNVtghB!hd(B1j3(g)o!6DHnXAnC3Ul9j?EuYTPq}OMRhM~M+e!9E z@?p2X1A&4-!M)_EL_}nHdiaqnq%fwSB1vtMvLWL<_dwynWY~fQ5@u<=Q=W1)L~}Hdldi!f{?{f?YIWt)|*4xg`JXLCc6I z(rB3yRe8HevlVG!wd%iL=Cdls6=&4(-Lr5VWfQMa{v*(}3@~^Y@7o2QOWdwdIrhMg z$H47zs@1*$f}-0@%ao@wL!-d9<2KI8Dd-YpwDQ^_AU>NqVGd3B})P!QKNBevsB4PAE;aH^jrcccoWX->tjUc?`yWY;%$YK{ObA%KvRAHWIIQ!jP z&GGDt^zzeVQ|tz`!cZNRRD~ulQ3|LQi%D8brtI{#Y<;|vqwIAIbfx39O~0B-(&hb8 z{uLyiQKGVT)S}%VW8h64@aSQ$i^Dqa9KqUuM(S(EabQ(EVe&cD} zRc@z?=)#+!TPm@}%&DFR!f{pOx=~7}6Og3~>ISbIf}TI-v&u{|*O?zun$w9j{aWfg z&P)we-f1}OuX8@riZ80?GvA*+0ASvjrnlICukwzkp{r_5Zcm-`aC#Li>Z{(1zEbBK zU#h=u2sHxryTR&9*eSX=gd%P_GYq-JwuWq3Q*Y_%mudSx5E}M^PJu&)&}3{pI3Z6a zWPwEMFc>9@1$SW8NCP8T1b!zlQ`!pEs;go|7A4+e((HDW*|AwJNjKO(lJT)eEgKmvZHl3@)^<>LPsqBWbtI>1;*#N zmpP@^iCMev91wa;hVd958@W;yqQkn<81fC8*s4u@C$rZP2?AAH4D{$6BUrH=c^a_} zT)NWep8~lJ;y>~Qf~wtZY65PGsbk&7HBk~rgZ>Saq{>ZcqaCmNJy7n2O_$hBNA0Rn zkBlQK9LEZQ!q4(h^jdTH&<;VW!v#Hsw07J{SOLm)38Rd1@XOl0&wC6;e`ZQPi4Crm zHSnundq1~({G&lQ2~l=9p!Scb0&;~9$EM^%vgm6|Y&AS&ek6}u_A};=^Z8V?445>G zirojLe-pp$<9Ep|QVSRQawB1r6yNyg1vODIb6GIY3VLkrBz(KWc6s8+w}Ms0-Rf(i zr+cfVh6Yu|%8+8WL!>ZI*T4uGF4AM6fci-;>yH>wIRsIvP_oc3=kQn$A#eMunj)w} zcZ?fh5NGmL7*Rs)u6v~6+AB#PJdpn?n}7Jk|A?CTP^P$~ zO3ET|YA7yFnEgl5Bm;_u=gq!ntHC@dP(YIS`h5ywUxZK4_fYP~1m3%$P+i*uHIz3U z$Ga8)JvbEjQ^|CgBa3zS+H07yHLx#ADGw=~wZU#H)j%i*_@pm?%V`X5shavy-BCuV z>INS%fvg?}MTVF2ywA@cO}otK{-3;6ww;w`PAm@n?I19`>))hmyIs!ZV}f-3!F_$T z*_8aQ3ueJftGc|pSYw*&oKk9UF)fvijcB{#3=5+_w}wCOzxcB0^w(erOSrnmX~FCH z9kD1c&r>2Fw!baNhm=kPyq;`k&=2>|EBTH`?b}RA-*|!OIcyNtq4Q2I&3j?N4azm) z5ZO=8(Ru#rKQ$^L%M(aHcN21(@0p6@WBdIxX3e`;Q^QHco>>`{VTB%g)BzmT6|2fwWqRX*AWnEFEC1*>_L_35 zG;PmM->7FHgK6F6=-mb6Z?jL`FO3eZ+41~^wJ@&2np`mbx_iY&#R=@aoON*$Ta9Bj z*IHOAa%d*%2E}TO3p}Y2ha&2KZk=zD3$>jLGBgo$oD*Mt2KerdHw8wmeIpyL3@Ro| z>dMTFVu#O+CWg+;^M3x7flVH^RN|BvJI#~;-0KRU3K}`6PRM*iH-vUivSQJ5Tta>? zP{e$@|2=zD_g-r{ntj*Qs{Lhe^Ds6dPG;eiBV42`Y~)OdPR!puPyr@k3cibi?=D_o zB4@c>vO9O-K6zn6b){=NG!2s-!u?0;=Se>3Zpqte2-NXlxyp!Y)So>8g;b=z!=Pez#L_}KKlkm3y z2rd3QQQSWv2nz;o%FpfCe5Q_@BeDC z$|@*<JJW^@ zJQDtPhQ!Ms14rYl%e6o28o8jz33?SCsAOOoRt9lkZ7)(7Z-qAO@P=(6l*RyGk%t5u ztBo8B%tDXf+0Ei?I9r0~UrgU|fbsopn+6!FK|l8^g~8p!35-ddCX$6;?oM-8mQy&X zi17mj*80=~W~`9*T7`aw%7gzCL3E+0JqF~v40joBcrmYY$g`EBGFeXzqg@1QB9aj~ zte0t0nbfFcfEid5;#;GKLS_^<=J`Tc{>guL4Zj|4GhG9#_Ciya8R2ko=1@ zoRZ{L>aOIg4Lxw~!S@d%?nAmVKydgl3kVJoQ3d=ZYDq`eyF9@G*llj>`Yb|j_R&7o zZ1xsVx%Znp?|vtto0rj+`dJ)vWIl|s5g|nEMqnZVjP}Oq-^EaX+T7J6IMj~ZpJeRjx|{$pJx6D_BKJU85qb;-?KLW1OMSLO0kNh z=f>$f-Lss_j!~uoC@`Yxveq>p{e5>eu+S18fHl3Y$(Fc#ja1EB2+EFbFR(r7Dry^koH#jyvgWtgRppMK6Ey3sEPp|#dK5#I)=V>1Z#bwEf5fqQGF z7O%EFF%EHFEouji8l6CB7&XTmjEDV`Z#oSBq{<5B=x5Ns3M)yKEd^quM8YlxRGl4d6T{AEvAX) zqH_1HqO&^;a+m?1x9*4uz@`L&iAdB)!cJuWuNfjgXE*$?V*Pmho;#2T)J@@rBEF0} zGy8xEo(Zf^PFo)fXU2rB@I5Wo1sl&s*mu+-e$9Fs^Il^pChDY-X{qFF&fNuWwsH*( z;!r?Hh+;Yi2*q=p7^6d$5Jn}$zzCQWQBVK~f4S;U{-?vJx0df5h?fKqkIoo-%Q$$E ze#s}NJqccgdDTbjy+CfI17!4_*7UbWo}~SyBB1`Kj~j_rH7sTru1!2u7^z>a6iRXM zJ!S$MO*w>UD*b4*=AVXG9m--Ue3MVQtyZvArF)$nk3Peu_ zZ#L(mL&q$#v%P2U9>pqra>VH?A9(N4GwMS&tE$S zheu#eZQF5RZpE;nW9x}Fjjrqnp2xBjqR5HsMP#S`@(%v$%ga4pm6AzSevz9Wou}1A z`bzv95bZi0uR2R=!p*q0ucByjl(qQ2_>(yQ*-q3!At+CaX9UHy!m6q>?is&je*R%> zA}&khRoScF+B&XR5Lp0y9bfRiM2%v4;p^!*$!J<@eh|hi#PENooyY$VY3GVm^WNOX zCpOBej<-`T;Y&e2SS33ucF+v;Md(H5B2Fu_5Wb6TrUDWi*$Thf7oB) zT9VDN?~41OptSc1X_|(5f;W*Tq!!F826}7C3)%;o(9gL_bm7f^eQF5X_7NQD4RPdY z7*=8ZDjoU+Rgyw3c22!wjEORkaVNAA7hxH>9fQNJn_lJM8ap zgj(t&N8!&jhp5=bZO1jc9oy7&(eW+$-F2Q<%hMJZBNv-I+N0u7N|d&XSF&FtP?u)g z9(VF;w1sx+$fz>87lpgPU9r(WqqN_7j6EujQ+>Mo+xaNdirwGGjDOE=+5cDYXorev z5Pg6&kL5-!EfD~QenRZQyVL%$`r!A$SqfvJpAAjeBZFzch%CcnNbLxwbt*H3Vo^$v zB`sB+;$&pUS96&anU?`mUJ~*zXD&pTx_Q2WojPzb`WnP|E1}!0T_D>I=1(0O0+0L; zFd7vx?x_9Aae_lrWWUFN*c!d_$?#x+chuoKA+g^Y~cxii?;_FV@bM!KwtNVQoL_J^i(uaj60zYC;)ay>fWhNk#ye379mdPf=K zfbl;DPrs+tcT8uN(z>5C)#%@AWdG}7VE-poBj&DE*&QuxVj#ix{s(JZu}3Mt+561Q z5wrYOvBO?uE(oK2e&5-!)hLa7K1YCGmjN0yUT>NHD@L=e!a;}?9eDkJF@_M;^rV$I z_%1%m&p-IdED)Zk<82j&{(L-YAT>6rN5yMrc#6N|-FsmBe(>=Y6Nq+)HSoOkhJO+D z?+?WDU%j8T18F`S_GTP6gOs=RPrhKn&N&1$51EX2ck&?&pB~z09S_rbX&599#_}bq z@|eni#k3+|Dbx`^Ad&p}$iV^)g!E|u{U)u8TK>6BL}Gt-dWf4;i3J#E7d?^s zv=8cEA2e;aPuXy>$H;DIml(~HIgP*|R-6u>|Id!v|8KY?S1Q7(cE7qoqFc^Sa{A{$ z0Tc5eX4TJ}v*)wIl%g!}kf)8kPoC}im0_%j!K_8Q(ufyTAs&jMCus=U{R(%4`9g0G z?Lfd%^rahgoNO&!so74t3&5Buzdi5)C~Po-Ct=b4*^`L-me|YuFObsbYtsXX&tjbH zrKm#?C-#3@5rDXvlfjJfBqAM;gsGUT9x!s%nl3j2|ILp(TrQQadA7u_@pEd*VTD^L zwHM%r5`{VfKH%TE5!MRs{~lqDHre2glC}=*jOh|+ZzC-I^6t*W!!$mWo_jZsI#*-V z@Hih8+X$qMX_;R>1bgAhldGo7}?`1?JP(RN8 z&eJaW5P6?X>t+6g!xQ#YNDCQJ_@cg*TZ@NB26fnOckHX?iqwg% z!Mk{lO{qo+9l6aTP`F(Qovi6uI*o4JIUNy3zH#Zr*|%2L-(5eI6{$UuTij}@yDJ^p zox8u4ezRNgSby2b9}9ytx-In1?K@M3QtPQr(-9a>;ci;w(#0+02r{*6$tA_Uvf50> zL_2L)@oIsxvgJ+jxV>t;Cy}#dk(~v5r;+ADZ99RlB<*?h^JwckFPk5bcbsLL z<^p!pW(Ssurb?S-SVy-X=dPtx3;b{($zpT6-yD25va4+Y(eNHtTo^NyLK7u*VCKyF zEG=g#TPap>+6rU~L+i^iEb<>x*Sd}<)*CB}wc{VWVsO<$GB%QPJ{{(|c)x}D z?vsms+u;tRMI(rhXefz<^?hym+ERaZ{U(|7g{{dT7*&MX&XnW~8v4)j zVvTJ=IpHl{lbnTZ5M^0w+xth`V(ObV>Dt)Q^;PYR#^%*vUibINKc~H>=;@D7g7C-P zck!{Z+Jw>s=b{dqJvaCCJddWcn^t?nI9pG{+r1dQ0Tj}PQq0!-!b;%F4L-6{c*c(E=EK?>j3qOYzeQM`@W&vuDq01$y*d^J&pTx!p?p}bdc$6@(6q_ zy&L!-9*gTHDOJMe4Un{{FQuBWrRU0C+ne6kY?sSOy9o(9{lzqQ zBflQ5&7R367N`%tbf=Otu7HTs^2HCFGq2ze6q4~vZQJY)UAq63g)@)S>CLLv%X9I` zCePSQ24J%(BNh`iwxBcoXZTTgV?Rs?2(!)hX$14iXyFL2Iq}wA+YgRIiu}!Iy|E{P z34fg!&{?8)55u1+k7yAGq4S-sm71k`GwRF=1lR+5_+n$m?~K)2!o%9T+!y68weIBU zO!1AFsktAy%;;U4WZ{}u>yO#c*JCVoV}Guu)-| z6EVPQ(zdxSdsxpnKyVS|$#KfKdhrDLDfC;VX56%=_WkB!mveV&76XWWB7->YOZ#y4 z!76KP7S#x6&0pty&?7U_bhCD?D9g@+47Qu2-)l$)@HYcuw3Cmwy^`@6cM(IdV|^Sm zJ#|Ed$$V|!<|^NK?4y35)bjkhG($h_IE#i^aQeKaDxcSlz;i+Q-*6(~Q8qF^9E1fE zdc$_Z4tLvAE#k~C2#E#>D(?k@|wHpsdsKS+oP$$S{val zP)6BcCPHQ_dJ-aaOiA+?d&fvgxqi3<=n3toIOah?9ij}ZPmI=i>cN3%uOhiUNO+Qm z=4w}=cM+bR(b6=Iv^btN9^bV?q32NARGZJ1oqbTUe}xc6CdianO{q1(QD2AHtc6d_ z>4bazOgkn_^ELvcz4H>aww*J{NYJXEA3YLsBu@J;h+gGhb7axu7gzSaYD0l42BEcz zGef&?X)6-N+&6TFe~Sm*u+1hl`YU`yj_g8vB+U*8zqJV`wAmn4jy=L26NM z>^XbNXorno;$^Ti9cdAp$OYoqP}5==c4E(o50|!kef6W>^eUc857d06b<0et)+4i* zWjDS#ugQjU7|yS|C3a$7c2*ToJdb`;;T~wAoc)`VtCvLYu67TZ6V(~OvGx-E13uit zo-u!=wXy@zbe4mySP7`6KI%_w7FwjnLA1a>$JD zC#Jo%<`04_ABjcQS*+(LJ0IRHBS~@(?oh)1t{sBq(y7UC;lZ(0oj_f3j*n5oB*RY* z+b|hZc^;qWEUT{#O(5hM+5;!p+JLnP3p?TBFQeUMZ*X8qorM2$qkVxt>!ia4#Yu-p zPcMD%4eclF38zg7PH&zBjk*5XTZ;Tma2fp#Rs^+))11-^(_lPiQ?Em70K5gJGs6!7 zwgD@Ugvz~GO9~vEJ@FmgZ!yr8WTBnDc@x{D=y%z#SOopT-(yi>X^=MJ&Mzk)DQz|`=;Oh$^T$u0#uv}v&4udqK91C=_Az&g8y|nqNy_Psga)tr>|0+K z3&vX2{ye@Jo-Jq-D$6Tgj0NR1QF5U*(-ifrN#IbD-AQZz2nI^#>1=l-*>jE*Ex$jmneDrS24=LNuBjH(gj$@fmTSB(^?yB7>fkS#qS zk?x%OKOna#W4(RMGOS8ihWkuP#`1ypdmJ*_2A;Vb&nZxq)w>E?%t%ji`?esiba8}Y z@q$pc34rey?Uh|y?!9fgr_qKC{CpIKGuf2Cy-k@s=LBh)Zer-7%iR0C7^3LyM+@S9 z5IUH8RZlP+g!!cp-NZ&0+W*3*Q z_YwJZRj@Rt^4UO(%J?K|XB2UQ%o@8xh9v7asx7kmR|)W@D9o-X^wQ)>c_S%!N6R$| zsXxJARKM#}%IE_b72a8ErSs}|bDo@iLd#|D>zZNevjNXeHrBy}j)ZEA%D~k-I$Ssa z8sS&befQ^bZ;aT}IKpMw3Ct-$$nd0}Q5&Oan~lH5amzC&gA|>&cq^<{A;f{&L}$=3 z4EMV7sp_6N(RE&bzm#lhSBko>BaJx_h_3|7gYf1l7Y`;~rC>Z9TgwJOp(>WUq|!u9 z>sC2%(yseTtz$V{4~q(T&<`Spwvr}Ku5}+H4>Mw0xAtsrNgk%{##K9AgRAS@e$Xz; zNs;2%aiZ_wM6Wh$#|gq@2kTbv$v3tIhlUH9sqXy(A9ftbJY)yrsvUq*0-UE{h>3HGi2bbUiBMeC*P9` zn;A3_9x>2XZQ@9;2e3SMfw2)%jJIqzQT4@ocK90I|Et?x1!dAo zuaSovRC&PpdZ5h|Vz2pTO0FTHEIu+qlQU2Xt7chPP@Sr{FEvXB$qqxkL(AdA_!3G zvNI<8oQf#+K4S%x@8%CM;glbrN)X#xw@Y z@X43ARDPCM1XB;f&#aS@Iz)3K-)KteptldFcJ~42PK{X{;?m&!iPO2mn<7sA^Kp6m zpY(Yv91cBKKG^Z`l=*Rc_Ge;uB_5K8WdW(64>}q6eHBT2{?csNMkZ2yWM#*5@{gH| z$vv9w95tK3L)PHR?jC8!{y2moXyjd|sTZ^ZzAI|Jac!;Znx1k<1WRFwfpn>`K%@=Q zhMvL6omt2Iy4Ep;>ueak(-}4sc`x^h=Ce<^6?#%lA@_ZckQ?=!dc0b^WweHvts7aQ z8-q})jWZsr4_BYhq@7FD3PKtHwW@);jM^)0i<{?zg=7^YYh2_`E8A1ew7e^r&u$DK zY#6%b$)9PFS2Ayb&EnH!TKO@~^Yj-aiY>$xcb=YfFi;pv=#`Yw_*%F%E>kb2=+HWsJ5@Lp>tbJ9%lfaZQ8s=E`Hq%xz3F77H)pD*Ee%AJEn<$@#J_Nz^K*~XP z!(tO+E<-P^Y%^3i#6-we2i}ii1|D*Kd`7;Rh*aZDAV*2;2}UD4M6zdmqQ)bpVQdhw zZlIUnidBz0qo|B*zAS0OuM~qY#JE>Z(yKhwOu$J-ZWdBu!`=&MavrU{MpXi|8Q_!l zzG>Q>))zRe%F zk0^*iTk%amM%I@(QOF3++Pm?YtPKLIn-RCnrk@``=rw62>+O#aeu|NHsk_(NjE*}a z;hWN>MGaiu-VZBGKq9=L0nNgg?cFCx7&iu9tsuMa&bYx$y)RTVq%Z7eO6NJbdShQW%H z?iD~91CB2ka8{eNydkz-Ba)`&-J#Z^;)8~8T6?uxL^Q%(cr2%~ts|e(){`C3OoTKi zXwG36D?Jm_MZ5ta@1Z`%-k#$|Q>qN=+eyv}##@WV?u zlj|GjofA-?t5cRWRE|_Z{rL zYoU`McdXa60xGGb*I3_o@kq=Jiq?V6=kKP?(xIy0UjOyEQe%6F4{a~x@U1Vkss#D3*V>V6hAY4ts3Yoe; z2)41&UK);McV1g?Hz$O3i#b&Eq!WZ6tm9l#(2;*X9-Kd@AQdWzJ@fS7XlrH8HvU2I z39R&U^?-18M-l1it9nV{@av&qD$pu$5m!RPw^41N!<+baB{Fk;sE6Rxd8-C`+C)Qm zV zAjJC1v^MDwnc(bs?TK-i*GttxY_!7gLH9L3-1H)8f4k?np`HPI!)F31J4JsyH)Loe z7Z#yK_8Wq}Z9`O^l8_>%r4i9BxsXVRa=VpCQpMjl=JS!5!0C1cFF*X5mL3=3n6@nV z6VHNzo~c^e_I+dr(o-2c@vM|)g<*ZUOz-H;fHQ^(aKV;%UkUw4Y+d_z=VDgMddD8yO0EwvGa|9F?=J?~ zHY#4L%%iD(enmP_K5zVvG9R#SW5Trg^zp;Z6^9hiWt9oepWCWM!@-Hj((R|c#LOhW zmLBuRcr}NHGW=8?QZ_-&GGN&R?1FFiZb{N8XVxqbt)O8@3V^m{$9p0=4;X1sM#*{owv)pY6M`IQYVpPc|N0fVrGX`F1&dtH6chh71;R9C80 zY{^!hCqkrjn4V+%Fk%!JS1$p<^!Mfg%gI@Kc3p+4HdxIZ>twS%1M-3=lzeaW4w!k~ zFHX(%9Fvw59O3sqym8BOWY*7hq(9DO%+T;^bGO)jZ$BaJvr4_9VGNChq!Mc8tAre? z>1sJLPG`+)Z276kgrU=QIqlbDrKB$vXTpl<6rXI_l2%KF*q9H~#FLO|e|aC#Ef+om*+Az>b%I*-{{AhRvIvKBU8N70z`|&3RCr%5+~H$V2LVIbhJ8 zqZYdCzS$ueK^9d#D+y{XKZDd<%WISH!s?K9o*m*)*uBp^ zg-+9ms3xU}Ihh?8^+d&Ey-sxPThQKtw&j^vbNbR>J-w~gv73d{vG0aBh{pKOJXoJkIFz{3& z0bJ=w=|ysuns40H}!A+cX1ZIDEekEwxHr(0eO=;wv}v!glqR?s8K3J1v{PcT;1JPnVa)> zciruk4OyE(c(9QSl?e0=dosJ}Z8$KP(UTF$Mm5o$FhqB_^B%-Z)iyr)y?Ei->CTEMGW`&d zC@}l9`(_n5xwN-5qkC|k_yz6;UArzTPj}WQhV|CsB;qfA0`ffXD2DS3^)OT16wr+mc0OsB?v>ed(izGsYu`4$=?; zeU03F0Jkh|0-_}6;FZ(}wu2VVT{G}RR(Wn^x9A_}3%0z)5y;CS0@4k*q{( zpkWTnV0Wm<>Jiswx>^b`M3jFGyl}j%m2I}oF{XJ@JqQF%Q6Gut?_VNb2s3tJ+|9RB z?HjIQSeNk^b8XtJkB4TW=`BZdQm@KUd45ooT?pcN(^+%^x);{JE$b`3KEKo|REGKo zsN)M`m+EkjfC@hOD~YdisRU^OHJ+r>m*U{8QAJmOhHAXWHK2(0y7S_mRoskQrD5AX z9a!u--f5obnP#g=P#)iH-J{PNscYxWk0LZXm)=X3rsk#`T$3l|Y3L6W1I_(D8EL40 zHkD5ECg9c44_^1P$`RLcm;VW8>OMK+jG9Evvypci|M!`_M~`~$sZQ*f+?paz6GTfs zmnOS=I=qcU^c2*K?!mm^!wo;$2gI%1T5WYM@tcktZ5hT_)DWjV?a0{nc3uc#Uj-phUVO2HI}Y@%qB3i#;_K+rzFQ?&C>fW#yau_G`XCwx^8EFYKG{P$ zs8`nULvFr}6m_7DCp@XWeOpltRK{MMEcTm;k*uBcRl^Pl1f@quViKf>001nD=Te#~ z>Z#PPq=!`vg27E9ZzfOe{<#<2rK{?eA{xgFw>nc)t3034VPOLTCoFz(HDg?{rp#DYKDJ5D1TpTcs;P}` z4G#x9lRt;TAt#a~#b?4a>OS4II!|s{$c77}R!-Kf@pk;=`7q&wcm%hDr*ZFIET+Wi zm&yP9M?d=fnUh!9^mzxodN9D7*_97)%+bf2%aARzY`eW^A(Q!9p_^TYde**8!Yt>r zTsI4ntw0P^gM>SXK?p|`wS4Qh`Rb0pWVV{=6c%XT_DhbIF4%iHMOv1)m{(p^nbG>z zEg4X2;H#HQFM zT}`UnfoAR=G@ULxA>&;eZM8s?i5-vBw`RUn)o;8^NtB5LR|Gla&`f)e6y#*6s6sIDVumH_2P^z zn~deQb6y*iJZD}dkX^jmnENyiXQesBe281vWx7OQ>~^ss0FIoU~mBF_qOv?hHZrJ*?_d*{*hVatRyVm`n+Fp#yt#%g$xMs`h<=4ba@{#g{{4=FhP<fR zVkddblr@?yYF=7%nzs141o3y2BTSUlE&o(Y3>TFew*gIV`s99@zQW~}4+R~=C-BIw zu&v1ocT`k~oBX{WfK{@>YRNc?-co0R4hbCj+j~nogcQ}1uhsl47_{8qjRbJFgD~S- z9T{TUS>Um=&GdQlBkWzzC@IH*!A2Q0(Y@V}nNE~kPj(au01MFqae>3+Ys|3#5mML% zh|jIawZ5TkJmNLSPBDLfsJW7CVR3rQ#@il5I+(r5eRRVUIwL+2-9pxTJIF2BA%7)F zStQ-%+HBn_(J>_zl>n%Xj!;w+{GnNeTUQ6bUQoz{wHts@A7QT1R1(()Y^m)3g4v|^ z40o+6$AA1x3~4z~UijF@MR>D5^FpK3_;w7PsDEGEocPwJO+7PUc#X~k-eid`t{_aI zhoc&RRpdqMN?c=;v{6aN|2*58i1)ue+BmOuf_0j~SaB3(~!Mo?~VZ zlHB&e(cRvY{Y#BX|J+lEpuWpH(9C4Z0N3EavFMg8uE|Hoeh;Lb`&0&l#@CH~>vwT4 zb5vcQqDt7b4-$ppjlw*;6>_~=VD=*%sB~A2mrt$Cv1SQfm79#LmPGv8s_C#}Rx_4& zI9+lLifZdIHGcOyhIE)^h85c`#>kf{>)KCjtU%@L6{1uTk_4JM4SSzMB{)KaV#z-F zQ8Pq=f6|4!se0y@UiXq(9_v3?ZEhhJTHn?QREGMaTdF-tFUJ@$PXI&K|Hu^fM%=>G?j*om7`c`AIf$<_&#sGUGwo+Np0 zMs1LN-6#D~$siGlf5-*N^Il1neUEcczF&N|W~mK9+TlRb$}@U%()wMY$QrfWF{sJc z;>Dnr*Vw4NU_29(A#HpI>BMaO!BOP)bGztj_L{wx!nqkUb@jCE((%gFbbRk&hbd3~ z!!Xe|ODzMY1}LuLVW@(5CaR~BNtNN0)2>-|!g50UJY3DdK*bE(Gqw&2`dQx+aC`G=-+Q-ieMjg%R!hFTFUi4fF}uF)i1^lBtkrL{EgkSOwK7d5Pg6zp)oCOPE;&{e+{!Mx(HJ9gxV1ox z4p9U!)>G&kB+D!TX_BzRiML_^0>@p9O>R3f+m>Ekgpl^F#1-#(a-D2%vupRBhjkH= zFq669Q^cn;*5+}-rh57(p-wqYPCTkT>@-lDDwb4;Zd?r{4Qg7jw)?szYv?j6iYPW` z1^HwungT;|V|T};Sb??@ER_?FF`J=^6+Xf6@}6JPl)nn)Ghkx?U6*?GKlQuIt#(ev7=7OXo_n82O@4Cq{E?Fmz^2`S z&44ZhxqUD@q{skGK&WrM=HY z*}`z&8vT-C#a^6sRs|&tx(8=9kSoo@P~=_Z6LXl&!8DpFn1*yW4%*ljpcn}<)2~*{ zhv%2XJETjRYFIjc3{Z15e>$nN$@v(_{qy1*73z~mcs|2L5h4V@XUvBdAPqz>fAB_K zICG(%p7KMoRd~Ys$ok2?2Ha$V1E@nHzCHPw$VT*;ZTFl*^)c?UBKxQ?t{w($c@*s& zT5%M&%pCK(36Ek1{3+EXWI^(EVu#YV990WL)w-&8PHdJL8>&9>t^>JZT^Tt?Fg%4c zHYmSQig8J9%aP$!cOTg#J_2IVqbvudrtxGJYJ;Iv)3plG9$&5OMgxS*dNo9dxG`h? zL+QujtM-EP2}gjaG==3utg83?iO((H2BRl>JH2J7oY{hYPbVg<_Iq%^nXxdQW`G*1 zB8e8JoJydPn>3jV1F%}k1@ttfTIp^q1Y^FxQ)k}g7=&nQ3l{lTmZF27p~5n{RlKjz zLujATZftg$$ejr$raORCwDp9ZR%gbRWCaLbUoppo&tVA}thE3AdjG-z z+N37`qgV6bu|%@h^)#C8FF5CCDWo0!+BBWJizRXUj+%zA#70P)nw_$f z8=f(1*(GX{W*SR9kJN$)q{qS%GclyxS|mKPz0WGhy!KGa59&S&%zTit$RX29y=8f? zygr)m&#BD#**?+-$EH6vtEhX?LV=-ce74N0^-6bC9d`}vL=~4rNBRWFAIv&!uKjSD zA%&sP!qy_VqC?=?pNGNA13YobDtg!(!YZ1E!&Yq69u|dD{L*OSrd{ltZspFd7@bC? z+5!RGqFkiUhnMJX^OSmr&3z%SQ3wXzto|;?Rf?O<#fS^m8G66nD87H;TJup@NYe18 z-pin|uJmLX{bN@OUIEr>IH~tml0cR?)HRYUYWcW56p2Xg0OA$=3n<&b-$)h!fW!vh z@*-9sEf$G8nP8>=K~o1R^or7Txm5)Jd1K9Pncz~j0Rt^Jb{3RIZfpxtP$jkt%$5AY z@T{Yt?!a>pJ@w)5pq)}4m~`7!qX)^VI)CJWd04Yy@ws@bj2&X$g}4VgAwm&Rdw&^` z_=3qAi(l>Uo=i`3K)+j)e~cc)fR44vA5qh#14XHAiOMgRxQywM=&ew>(2n)4eEDCU z&PFZb4kd3khFQ;I+QthVFFTBzhD6e$H)=bI0UX1cDPoVF^PkpTOyc8V31{tbmM*w! z(PG9xa@4TBw^SY31I>3?coxt4#fvm&z1=eK%~qNwb%SN9U2D5Rp`=g!1&k`;d1{~G zw`At$JZfnwGFxx^2vribC5ba?TIZ4fDewcln_#w_RKspLCN*hL!H<0-BaYO8mEw(w z5OrCkcH>i4+(IUXBPDV}-c{j;EI>Sva>k}xBB6iZTNom|@UZtuQ<HuU4QB4cSU|-r|(6U^5w#QYuo~-id#177bZv5Mh2WTw~P-pPTP_=a4M)Gm^xLH z=BZQ|$pCkv7}M$)+mYN4Q~1o(0aLFk{4t5bB^zA$)|I|>FMtRRS_Tsw@EO8%yE+kK zQL#eBLB+7YuAEr)dXP}|_z-^&J(_h^&(4VQo?n|nI;EEub^+geI@wC|!UT!<8=h3A zbRrRR1F!e-z4w4wx6}$$RvsQdHROx-}|fWHFLdHy5U) zi{cGH)@XIC;4lpZ#n34d=>-4_hFMg6s4 zkW+lCDc9~|+m-lL@aS`SXr4}~V%;i65Be#EzQ$Qk7o&oV9MEXl!l~RzN2gE3Z6-4X ze53yw5U%&Z3kiEMRsSa9e`^jdOcbjqZ#7@|{Y_X(qM72B_BATsf?G{~$Ha{kP;IjK za6G^z_NPb)DoMm-*Gd-hdVoNB{~|uI^sDvB-6iL3u@9{1PXlGa zB0lf?QxVnhIO1mhN}X!S3bnk{7%1Jzn10Tfz)Ye(y}04Ub|xI{U0H z6$hOX94YJV`p<*PLQD7f6kvD_2qxmGdlr(--C4ZR8E_qF8HB>)cxx zdpoTFSbW}MBMBzDEMH&2kW@+xG)PM5QD#DK{w=G=zk$L(qZ(mX8t5;nF!56IZpAAZ zA2KW%n+Sv7T93&$)do9M3O(~)rj}VZ9AcWgl(9dzX~Sm;<-U!NIi(Q%-UmPT@ay zFKqTBWi*avumBvReA_Yc6}s`A!c_$5s9(ajnZYaH0^M9UqCv}Wd|8%4;A1+{UOETe zD8n^Tc7(_|68hqwj1OMeyBCtu`Yc#&EgQEO;#bk}<8z#y z?qOi2wbGoRJF|}X)l(d*7Wu>JCtUncRrzrw%$w&=RQ<95>Nq)e$>kZ z<3+#%aa&O0iR)KOe0^i~rzHtuDGA8Vy|}DDZMH1&z)nY{QZA)z15pXgMtOkQ#FF1i zPmQuW+v}<#KXT}>78E6aCClZ)r$RGT36}&RxJoF6`5+B)%6x9--pxO@YMxY4W)c$5 zc3RuxXeE>Wd&%MXMw{Hb*n~vhpgb7ma@Po@OVFpVp`Gt@;1mKdOuo(&N<-xeY3!){ zFNJj4bT&`*jYBX*HYmHdJLbIIGkF8?xANY<%G3iIUrxC!d?CIu!s>XcJyC=b-3Ee z7nCWE_f#VN!mSr@4gBR#RMfx08=|8d{WSn#s654aYQj25fb0rKn$pPEHbLJ%3pX!) zUswOoD39G1{L7*DJ8~w>CH{sTU)kifDC?GprGwIgfSo;`Vr1Ek*L#P!1vohRyOET< zEki(Zgzt!5`!?-4Db_}Kp^*2d0zh9}`Ci;yU59C1RV14*MP$5C##BVSHA$&g&VT*g z>^MsK50}T?|iiS0qhh^O#!ff=3BCBllcVG(|y#!mW_Cu`_lwjn#jv|4q6NmNQ~&ICFAfOVl3Cyc^hphD zq8KDHVQ7Ko`*WpN$e?!J(;ln{F6q<6Ps9&(oORTRy|>T$?|SShJ>OR(UEiFN(A$c< z1o?=gpe~g2raKdiQ0l4%hcMu}x9*#$6vgoLzt3=AA*qs@IZUC*4A^+g}f)Gol)uU@;!@!VeL#DShf27sSH6_ z-Tyc4Y^z#Z=JN>%T_#8(WAfWxc;-P zO(PI;Z!|i@^6<}2HcrPWYI9f)7Mc|GkW(co_>$kj@MDO<=4hSg4((t&o}SHIo@!kK zANpltK*fTWH`aq&>sQ$q3lD&>n41a#fL}Z1OY5B4*DkG7iBE~mM{*Tc$gN%p8Ia3* z4-gC3iijjZ$)tCPi@n5}@Z)fm8#vu#fbv_cPE(HNV@16{)Kvu4LeH5gkvI$qlcmVI zpn$$5n2D$pt()yd;CFG>YT|H?p(#HF!hh&n3A_2sFr?Ib^C`ZJ%^vOPba&o8LF4YB*)LWOp!g}`m!22}m8!KpJ{mj_3z)QeMX zmO^wMLq^!)e^Ra^<)sN&KINZRH&P%kI&Q~|`5&o|EeH>uIJ00#`m4P8zm2Ba&T#^w ze}YI=bxM%njAGnx({Mwr{d&bXsaZ`ns)P~JASs3*ne_`e%E@h2+A0N{<^Gwb8j6xe!5s^6kBwwHt2;wVM_ebMy&sD4X#C{Owfi ze4MTaqXPNA#Sr57AB%_QTq=MSsfEChX0J|N%r^|JBvTr^46m9+jYMkV2f$BeGNss? zV7kDtHAB58xk-A+zMA8nx+hkf`|h*&T!0$OmVQzhF2R-j{TyVFh!4BwxXS0UYJT6* znlpIaDL#|YP!bf|S5ItzxarJ|e3f6Umef_nwemktcLYmS`Wpf60gQY`)$Q>QaO$|v zIUh6Zy&GY~@u-{DY(=o!hGXU=c6U_;Bv$ZQ*9a=Wp*4b~m@U~dpg*W27VWL+&jKAT z!mW6)>dPiRCI@TyhK=>b$`YMWK3JdGNURtoCSFrV95umJg9`(yF`bV|&62Gc^+#?F ztMdM>6;N+?T+%{4Q5mm|2L)^XTPtFzVKMOW=8Q#WLF{O&6Fu7>Q&Q1@d}ska>90ZkHMq4EW2mjYM)3Cg+3I2|B_JWY zTCD%egXn{K7K{0ZK2$(Vm`Gf1-%!Lg9l(b~lXCzggl%J_1o0mF+$)bO6e!!K6)8a6 ztP(j%>{GqO!X1h0#sRR_ht{C(GJ-{E zO1^IXK$``8G4kL^HOh%icY(+nORiG|JOV@vtaEkq@YFCt?vttRoK~++4oL^#O@5qKEXjYCeaL11{`n>IBgYrDF9z?-83@P-gy3i6U$10nt{ay)H1v1mZ<4fH)h^mwZC+)Yjep^DY9me|swffVkVFA4h)-NpU@WC$p16pfrVLRy9i<;!fxDSG}hMU@W2k zfvk0m*K=6U4>m&$A$LXhO(b`&!pUC5tk^2#3MYkgcM`fI8Y7-c@~L~YXNA#1PHe0D z`3brA^}+oh+MKSS#%@wejGFp6<$Vb+GzS3AzQ{~;14I$(^Tt~;;iyW+h40j-E0sb>`&TDxBUJ-_z4a~^;r240Tx}*2& z7Z)r>56jXXiyg4DM?mN8b!TVi+L6g`H^AlBuD)+O;Aw0C} zRIMn@Oc3uAMCX&LKJsQD&o2xV8MbINH#%~)@SnCn0=a>@-_>~WlSBAxa6Y5#bt=@L z?*m%D2aN;bLy~^sG-GnV-TTG8Bx(8!{Wt1Sr!AU{5+-gw*bP{mD;YtY^{Q*TdFBE6!vl1w*X(z%zf=3yt`<*uFC*HOxfbyT0zq2n?C?ydi zf);QJ;>5|Z=8^v<{zAZ|ke25#Ztp>61kVBU6wLnAI7eTA1J%$cd(`+aVq6wU6Y=JM$je z^}uUklsF5e8de`7k#Hv2ClL1ha4nfR1re|aZtf@UAL0xNrK(?8TDolcGScNg%9yB` zXfDY~$n4XBST2*4m;w_e2eOEj*Aq{bnTr~VOp7*(IEuI@FzT@9!}rzj7)n0KZ!)-} z`?B6VzrnsCzY&msYpHxv1lGAu-bwzHT$yY$$gD!PC7_pNuYOV7t6g7uR_ajdIW;-u zKPAl0&Thj_!~T<9Hsve3!>h~kkGj64r`md|(;6w2VrF{fEnv^qU99QFa+f!PnIt3d zRN0{tuKek7jh{5*pwgeyRMR5%0S%(|DfSok`cr1*x>H=!hP%(EpH6d3;g_2098KrF zF|exmq8a=7b$K9r5AM0zkSUw$PcAmr(M!-_5!pcaE^LWf04E){Cicn6L%k{ z0JoUJkypfNT-?OJdDeC1cw+4~YLyR+dw^qwWBc5h&rx7snExgAOCrijAu;Hb!)J$m z+mFz;iR*MXIM#A^ANWn(#AfpVEE4Z+Pe0@{Wk`9S%z6XStJ<; ze621TLbjPDS=E9rd`I=Xwa*>+CJScPttzdmm!<7l?c+i1fqj@iFyVv+ zgwu@9Vx?j=RM=GZ)HGtdVv*vcqAx`{sO1NVO`a2}&BvUBft(%?VF)@J zM)H#{820GB7*$UL2&_qy313l8k?m7RFkXW(>6tjKef!np38VVT*3KhZqDHZuaCLFt z;~JA)vMq6&5Uog%Qd5d~_00JbrV|mCWgapW{|G4cA=|1fqElN&2qZpFZ?>W1%XCw!Q1b6JZtu&GeURci^`%qR-$OI=S819&{-mGSgcGE}jY}8jl=k zZWQT#x;U9@n{Fcuka|!Ff_EBgar>kmW}D@#WUpn{G8D2-3fD8#>-UpZJ?j|69#}}f z0EzSa`(H|HSdQkHxI5cBCn>2WbJ=G*O872p;?=e{gO@~mV1wl^0uy-$8YP%qWX-HP zUfw0RBrPZfCxAGQUzBoQ^9n(BL+vsr!IKNci|Xcr_l6LyH5Y+n@-}iV0d?EatQ%KS zhZ)3t|NfVGF4*uk@z_o#rG$5%#BSTZ?>910k`%J`>|Bv=U*}4FoKH5)!-C7Wv^f%z zmrQ;&SZv4!@#?kqC6v$QB*I+rz6CKG%Dkhxkk-PrToc=@ z_GQ1@z^zT@Nl@@shQj!MavfTO!d6H z7CnL~j{4`gv~;$OyZ$_|49s#^%wIJPmYO=8F$*5J*V%x=heoKa#Ntg)+TBm>JEsL^ zMP|9p;LR&;j1Rq)SsN~1E9FhA^+@sNU#b$j!^NpY$)Gmza;JJs|lF7=m z-(4Y5PH;=w<-lS8yLIK2Bp%ZqO*>7FoD7MI9j`;s#Iq^b%}w*RDNi>K=qmND?8bIl zH7gC{@$|N$lBcYCFJ*JObFatceAO{{@3irgRQcog)+O)U)wH1T$C?esvyFMpnB1Je zoIerg&=LK`>XFqS9m|yc)XxcE%qBP0A)nplCnteE?bHAxet?HTu6EyxT`6BVVxbDE z(8q8Rp@O!rKrM{N)k6QZ)e&{TrE|m<*_1vlzBDmzhzNd2JdNZOhJ%o==?e$20fytd z`^?m=ClBhnQy-^Cp+>Vdi@PlkpQxxP4=+CtKR*|ef(z#B>;duNa)vSfw~+rK2MmQ-x!bvV*ts~<{gn%` zbn*0%WMKHK=wHA8-Y3+@?%$f6VgEc9@_;;lF+6ht;Xa1@7Kau}r zl;HV$^8c{Jf1CLqt4KS8uqAl@H213bv~jU|?+>^0}smX`kz zofigPCPCJ5U~WQs25g#|6(9Na47L+^oUE1=gRGiXtajLYN6UgI-d0o6T7LJY$pyZf-dX5fxjvA0dx{LVp8>voy7cS}V@#mb-d3pHvwtv7=y;9)(9lhQVRL;>NjyF z7=@T+5rD8_Q)#@-H|XoBo(9vU%(d`rEGsLEQ&rZu zOfUH2vT8;*6%br+GooXjAreTjw~^>L#%bPRQmm29F7ADJUU+r1dPM7wQMJ={9uOA= z=oWEW_+sOL`TWpjrOi+wo{Ag}!Fr(=$4f~;vDq1l%I|$>GGA*IHJmFY#UnfG;p<{! zU4%x;Z8G<{?cF=AJp48j#eeT&v10+uT5w+@L>YChh~w6Yc(222RQ z5-AqqWL!qpmD{{C%Q5Ak#3;@C{lzBD6`u`U->YTs1JvCOxRluwTng(|r*`|V#b*>HHzlYFnpO~O1))vJsJnn|@h)oN;(mV5}v z(_3+0(nhtI)Nk8qCr6~3d1OVzfH_XvSfn9l<~q-c+j0+u2fW>+~>w3-Bw3@^Bj>IN?c#RoQtaySGJ~2 zU8W!ES*Q>x(S~+oJzHdzIPGVw3x0e!_hl@i2)vlq=MR1exY;Sml^sl&2dmS${Rr4f z(YNl6B|km-_82+1TUL^jh(Q~`J0;OI{Q3DU==v9G1}Ly4;P#*ilBva8z1-^k^fKu` z0#2Woi>H}T=_BuQxn4kdnt706n`zm*Z>_RI!FX!%eFCvz_aPx3AxXrai@mMWA)d62cyW#4D)WhN!ND0~ zp5=Fc_NsjY-&S^EAk&9wi$?-%R8;Y$qWal18M{AFJ@m>TOMQy*v3PFG}pK5?|B?S--9_`fBsNE23kz@ z-LLH%oYpsAjy-GhJ##eWE1~7H3}03_n$p!wX<7{uXKhtZVi`!~GVb0-Kqog%HkB)| zN_Y7FM$^sjLilHqT2>Zt$QtG4z#SsXW%Gj^-ay%AWz!0~_iA91lL=h%GW~#lT-xva zH)Qhua?!P7Csv9I7H?Y z(8INrF?T$xW{%@QShk4NdNgBEy5ExTcJ}LZf&o-~2|8ppK1CjCL4uuw!)c{wPG4J_ zKKTA3%>rW^I+Qv<8+?~wC8f~`ySqM_XmT+Z*H`3;66QD$AaIYuqu!TXY;>yk?BO1_ z>Wfb)FK74N`INSq=}?t$)NwoNyci$u1G9dEic+lIORDC1SEtT6n6B<{52Jd%Hs4O7 zUuCk>x9ZkMJ#uLraQJoG@uOko#pLwN%!0_|?>iBy^y#IKu%qsCKk`Xq{}Nwwbxo@? z!LZT0>kW7iMZIW+ORIyV+E^xE*G23O*S&uN{psN7B1d-*i01(58;1jvdYd@1t#8OQ z6wzo>@4nZUag(p^vO;{<+8KS zZxbZ?Ri)M8F*#0?#p*id<~&k&$8Sx+o#Fy0esvc8Idb{i{8@_&IX_gR@~IGInxLDa z13krfD!Zt@gT*wEpVZY7?BIBgV{cpz{{qhm|3C--+@zP$9ciLJ?Zo^tW^5rcJeW#Cx_UQaxu0=YaMZjD5z;jGHLYWrRAe&3ZGijGPXTPXZp<&A?J z--XE8uz(X^H8L;Nub*BhLFS^uG(@+E#ozS@S@|EeUwy`H?#+7}@=lbcTL3ypy!ba7 zHZD(OOii;*<+;Llek#&7z!Y$-j=pZw?99~`F1ZhJ1)bXF_$rtM-+Q(WE>@dMi9ZG) z59G9RgK&LLv7swJYaZNg>J&jx;}@eptEDE1%(#p`!(n}d2H8Cl465JJ#8dFm^>QhsDCW%;bwcWPs>KTFP@Iqy%`xE`&mDqX-d#b`d@ybRjCmsy}{4@ z^F3=o{HV?9s9S<~A0qJDliWy#?kG_UoX~6Xtq7UQBw#DP+t6Xxp{jjI#8mVcjn(w@ z(_+F!k+c3TO^3)%^7=QM%(c}BLWN$O5l5qBE40)M5jV?T36*~3?Q9F7X-x6Sc7N|j znzQuYR!8%Z!c?2fO(tH}s*BFRZ;ucDh)7E3{&Yp+pbVSnEI!5%i^hz%^S0of?a)6@ z9*0d95q5|Sa>gQ@*QxD-HV@fYRYiUr>o#a>izvO#ednh^RCvQMTPYqM&9=<1ff{1n ze9eT>_hdM+8NKF@=s2uDVduiMydnnDJfY}MCBDhQ$#MEA$2LCTJyp#X_r_zft3R{c zt+gGax&8V&pvJN@1n9d*)R=$$`2;bNwRPNupY}{cgnobj3=wr>Kfdbwj9+I8D+#2` z1H_(OZek}5UK)X_5V7H-5Zm}(XEdli4@EqykLJ+&ElR#_{3qjG^oX?^6Tu5$gCq+X z7K0N8ry6X}a^SNH-g%c5F3elpV%AFSabu)MrAh zW@H7iY{GxiS;xK8k15+ezbaj)K$B52`Bc76_8uck1_U&@++t7vb zVwMskbVJUtuI z<4mB)dKkI^c%6)PN~p!C7EP2@Hku*8nwuTV7+S}WC!3D!bJBX=ld0vP2{wCRq=wP~RNN#09!MdBu< zaOfk_+bw&rGbH^R)p9|mESfnVVR5WXAG}c5!{-YX@yP{j)bJc|>2&**Rsu-PnJKgTY`tCw&(W)07N%}!L0O{rHxq53N zHYK{to?Ka&Qa7!LYhK=3n>30Y3(^^zXPtt=;xh*pXqHEO#{4x}E(;TqZf2^P?QV6J z^IXrO_0soAjJ@!xQ+a?5a`UI2SPmK}48$zP!2i$N)BmHcIP?*Ce7xGKj$&o__k)kJ Myau>R)*|e`0RCO24*&oF literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig7.4.png b/doc/1.manual/img/fig7.4.png new file mode 100644 index 0000000000000000000000000000000000000000..6f8304ed2ae3ad2970798bc1941514a642297977 GIT binary patch literal 50531 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 vS$a*(zR8YToFLk#)Wkei^)Ml z=?tGG)a2|F(pMy-duw#J-a%_u9uOb~kRdtXNkVu%Sk>|;udDFWSl%6ceiA3z}{p653M{a+-bx6a+ zs!s@t*@~qKQqHF_(JUI;5=;Mv)q)3|QJfoc3rx&s4b6IuJX2fWEnG?2lt3Yj*3` zBRe#vwj*{~Pa)K&Wf=Sz<5v+|db4-yT&FBU>X&Wv*BL$Qnd`5p3?z#T=~x~$O`ap0|-0Z`-s$b3BpN8sE7YEi8)r#Ib`#b-z2=UM2=~y~`@ZE>klJ{>y7&-i^O=rBrm#CW} zu$GTrokj?_w0w3HcoFTUl@r3YQw~UTJUDpd#o~05^yJpVGwNfEL-$rT`umK$Xock* zRDy{`a=w$c_DDFbO9ZN&g=i$sjz?GJk$Qo&KU-?6W=lm_! zT_`@HnKSpEKp5t$%7Z8-QO#yJZq4WWXH{6}@YX!wCuNIoLD#8fiDGSzX3WVh0K~%$ z=4{`KiYIdj-HgERO@a3F5L-x>>D?EkbObHE$eH`Yk8j)Ch5PwYOZhIeZ+6>XN%KGi zjkf?9F+m_w8%AR&^HAnIk6z!5U*C1XZgq~)JPDq-5M*{Eb}gs~C91xthiYziD59&&ZJK17WEia( z!e}M|S(`xQTrmE(t>>`bj}cE>mOY2~dvGp##h04at8~3P{nY2a8U3V}Z+@KP|D+mX zG5uQ&#%1~VPpXX5kw0%Q-#M_*lWu1?ZJ)NbD4&%|>bt$p+cxJ}rCdH*lH*A>n$mb) zvOkJtCXft6>JG2?j96O&X#^ImhVio3XUx?MxKF6Eune2N5tV!22(q@_Y8>}| zVaKWCI(UdLfun<8^bAU&)bB_J`7^Dg?@c;mC>d->gxb;<27Uk;FS~Qfl<{4#&q@13 z&>HQZ;mz8P0pSyiE2{aswwr=^B>Qo=cO{L1|AYu3ar^dW@xMq=hiH|{G@LvPNbW#y ze|POh_K6-~%PIp+`q>+~wq=b7S`E{kJ&AmWS+2!+Vr;0)brw_jYK+oV17^pp?V5i& z?RXPCtew$e1oj8R!J8?_uJyM1V}Q;`i4&b7EEo04y>9-J`jX z`4pKxMe7N%_$&FYw7xnWCK-tq%_IU{k4vCSgtfz09N7_wG{mMQQS%jQmt;09byVJv zp&7dB^?Icwj0N-3QW^<+m!iz1t2+**>BxW%xMVxbqfI zmqIe;;~&7b6gT!3BrDb1?{er)s|3!l^(Hc*IYg^$_PpJqn8e19$PdvJt~u}lZ#xiH zTH{oAu!taNBoWAOy&bw}n#dI*sD<-d(Wf1n_c`Y>CVGYKcG;hIJ$fnMfv)`C$T45_!Sasn<3fJaiu0bvqjS6E>NYA=J+xRilPxar zo)w}NQdqi9gjx^4mcSh+HUTa&SoVe3dt~;ww zoR`pL4eIYHoDF3&+pL($`iO%djcR=~=UvN5Cw=Jo6+ywIkqd}c%X>0nu_ ze(AzakMzSj@o67ZudUrt^z->$VftOCq{Pju^tND}B0diRPIXPgJCuB@9|+G3z``=Y z+o^(PAjtA?8MUX1wMmKtwZ0wWjR0#GPEo7jl*5Dx9>ll>+qBkRIF7#(xm3j5BcjY* z#gxRS?y%(yQXHb~OOu7DW>MbY0~N-zw08G4VHr_`ROox3ny?8qJlKmN7Q1Fn;0-w~ zl8&xlxji81vs<0@NHld}`A5izj%t6VlQa?v@%cXL*6@JDgK; zx}Mq!%*K<#laCMTnDT@|_6H!kkfZcC)&{@=%G!oPAc_unYYS42b=~Y)%2X(|835j` zf{w*akwy0Y#>}5y+8M&{MId09aX*R3NnGS4qp{TJ7KEM$(OMRhOXmNgdw`Nt(QCE> z#pZ0h>*Ca&x-Q0B_xm~Cz8bZ;nonL^WNUmJQNL?}Z+O8Xq-KC&!$Amng<(hjGx?A5 zY*@r~DK@W*RP021iVY8f8aHI^HcukT=O2i@EjSx2#!WjV`>1hzSo$}=Cf4J1(VQyf zVBI51rN_);8JYJ5CK-X=aFZeH^vmkf>`S~k*IMXoXGQzF$RV`{WRjdh_QUVZeKdaN zFew0p^{rXyx9obXtxt7PP*`v|iV9(hTxHcFEv>zxmVMLWL}{-!^ndnd`;C+Okx+F+ zbyvIISRi$8?o+zCb*3Mx8@UwBUH_DhYJ0j)?H~{GD zY%55soNH!v8FG1p`wl8Q)6+(TUVsT^zJ_Vq7=!7Ca?8ihmyORqRVdIM z6c^qu|G|UW8m$iSg560A$@)t9)?=522_2`?lk_t`kz#dxJep*zg=O(l(k~UWQhyXB zc79rKx=u5NqGA4mTn>QwqSi)O%;3tV@|ZJZ7&I|q0v|={hSaRQ!Rqc$66H&*;Tv2c z(1F0=RdvK$N6HHl5x==XN)%aT_WDn3WZGC%F^K5*;Qe$U3QUiIj4&P~Cx8Mp9c#$u zYf4!WeT00QsQEl~WL7ZNDawRxGVgb7?EykZx1J|qv9!Uxg`(!EHJ6Y~algHG3;v(Y z#9n{VXAoL7F(8iX{fOCagX87X_&H2nziz+b)RC4phKCJKpEIME_qBds%B<@`GpRX6 zS#&A-aTQ7sLr`;WY$F z>3u8Y_t+4(jUSj5S(&7*~q#JzIF!9yuY|q)?KJvwEZ_JY!Ad$ zxL3$hlDe$4ydkUeM0e)?{WnojhFv5%Zs=$qK(0%eEGt&`%Pru-nC#puCEBUSw`AQ(xX#C5QGO~i~8t4qepYTD<0V9=WmKViJ1Lu7Fv0l`AWLiMFbK26p^GS zW|6&k_W|S8#gnJpa~)@;%&~J{@a9P6BC|$_rB?GWshX%joZi zPDXrEV`tG>m~l^YJ~_f>y#%8#j_>FVS>7XvrEks2p5~BI^-=bG8cZU8KOgn&%?@rU}1y@ILQhHfPeJ)uIkvB zex3hF+AF7cwUi0S{u1*vriXnA z_!?DV_cy5#;M#zmIpX?=rF6cDzjmVuJ(edvIaSbfI`V$MUW}l4GBq8j6Z*!RYLsk^ z4=pFZ{^VYw-z1gs!leALV}Hd--A?^bX@eh@!`JQ-%8qT32{UcrgSn*>!$4eJ*;59T_bdGU_Du&`ba3 zXJUGzmm!Z-MvEmFF|x(6Q|k9()u`iC{kKq+sOIylPFq_vq4-Q@Fe7l}m4bP~btO)x zSs9xP8|9`iq+VaHlj+7hwYQ1;?o{?A3(CAS>uxhQJD1*-69Y*W#A0^-$qQZS<*n{v z?*;O-!DiqzpB+qnyYnXXv|XR+l*qksF^w^j$H3$f7S-y)suHrhzkKAp)$ENsX|E5e zqz&FXuu9dv=CLXL(ANJ3Q7F#L1Rd#DCK-_ME}K~`yb+;zpYfkXLAZQa#;-g+vf{U& zSFEpHcawmm<`un?bCOhyk3n{{7+d0b2HZeY+`E@hL~!w+-wtsGX^VreFJ8aU;gK#B zc}3<&YZGAo;8K-_R|1G`0(+g%E?9b#E_RgBxB4gJ&2ai(+1c^tenesKFHsVG_q@9J z6JgHC&}*Lu^YfFM^5CSjXON2Rc2Mh<)|EEDBx?ITIi{#@V|wfHc$p81Kc$Oq4;q+b zV*9U?(l0YowdLU^abkOOc>wxZW_ijxg_r6g(txGeUhd`J|7>k_F8hX^?IK9j_7z5> zk&?rBa0?)u_7No}5?M1=+X~sC31XQY&Cn+T>~K$m!I{;oHBtU>6L}KZ9Bii^STS_8 z*xG1p#VTr1Qe_pMLXevc^nH;~^^e@-8*x{X+qe07nqrmMft33Lt@>lWpK<|~Nt@4v;TF@A6LCx#7L)fH) zX)hq!Gf*BqZpi3>doI2Vhvptj^g%Zs7NEv8Kzq^>Lhe=B^F|Deg7Izv>$wqv3%kb zJ0Z~+;r?*t)d;s+yaG+;u8n!s>5$h!92|a~HxC2`(>=m(Xf0*URy}rVg~hZYQ-`4c z8NVy{V?F8sul)f#D&a(ooSQ7;ya?F{6&clG|LcW(#ZW8IuymH9|2fv$Yir1Kz#%U7 zNOA-8R8^X5uEpInBRW{=mg(D?Tr@!Eb(T6_I!hdTF+wdY-omhVHhts2@x@3K=R1!4 zwq*$8h)q+*22Z5{X>mOkGWzw+ass059QRAjHXQUx;rms;9mO1D2QveIGYh_0a{=_! zJL5WmL?4qzT$}tTgQB*%*$HE0vz&|WEnc#6Jd60xVT|AoZbFMg#Ev4Ip7B0|jD<4p zHla7XWErD!QS@?N;Uh4X5AbAT6Ouj|XQq;_U9fL2u+IuAPD4mo_ZLu+$_!fy-O| ze5rs1j#G{oUUuF^z3%6X2D)1vOZlN?3pNdmcQsY)Yjr<4;*w|HgVjP)j~`dN@H@ou z;s5N^;2P$P-XWI{#ZvIb0T}=}PCRO7<`z{S(E_MB`5<^G&xd-(@UAP?pnl}My^4%$ zu5|tp7veM?7X$#$N zzb&ceRiL|xjD-X?D}&3Mu_qCR40(&-*5+OrvF+6IMXao{%sqc8nR98+V6&6KoW7M= z#WXAVi{jehLyS$wM(xA>LonX0KOK(g-IpIh|BArKuJGa0k66A3)h}MPfpiJu>uwws z(|M=o+EU^xooOW~D~=C63YlFn>gLIf+ju?ZsH-X%{&Q`7iy+$ZvF+o#;@FD?2MeTI zn6=vwPr5LWt5Q zcA_KRi)Qyf1`iH?zi+$9a6{IMOg*<63)$d%7LeCV9TnqaHhzc4L1{A~Uduo|_Ho2_ z@7fKx>_#;QK}x}}^M}|6(-Y!|(LZAQ3!tCM#qHMgukR~cD4I(GwS}w_9w)jDSMUYokSZl&WCWYCF9(&h}EslcDu~BFW55*^!Em*RYOgN@D|e= zCDAtCo1=gFtS<{pTbth33YESog1_MO4S(&PtL5|lQJ>zXe^vH-PF&<6L-*!$8l3ur z_NLSU+h?(_%Gh@EdY5Xi&SJVaUQ%XLbBDI5baefkCBal2jsN7{r+wtK*l8aXbGuV{ zV;=re!l#s%km08isYWEvbn5YA;8L;uzUxjjxhU{)x9>%N{|2#wA4fj;Yui9wr`+vKp#>ljl4LNaboqdZ4I%!kS=R7-o zfQ^>r!twS_c=;SX?xeU}Bj=Ubm&_M(PMt%HoDE6V#-XIju~Au^AQsfo`Hhn9?dP&^ ztnTvjCv2r7^E}!wu)w4hL>q%ks9~N^KjkU@ba445K=CD;?yUGyZgs(1{ynM@+-=JM zpIBKJOcEq;0DlBAlKc)-Ihq2y%`{~68IF^U7~?wub$e{Km^VdNyfJ<<+uFViI+|Ko zWPD4@;+{_D>+-R{Gr<+3ueTh;E=BphL=;@_iu&<4zhwj<9L-mV_yki4+K)R{+Xx6f znW) z3%^v#H!(D#97Tl-Kv-que{Ha?h8GaRHoz{^m=R+$(>pU8a`?fk;=s<<2P?1Kn#2w+ zML#-l^D*Q=c*5{U=@?Onu1aSY{{x*0jk7y*w4q)f5ZSf;U#mfdE2gwFNu$rH8L&<5 zc%dVzDaxF?9a%?4{y&7hc{G&$|37ZaQX&z_GL_JsGF0|u6eZb`in5GQ%3fIpV}={a zUQ~8dRLC;+-Hd&?#bn^ZkC#=XcKUoQ{7wF4y(CUd!Y8Se_SF z_*%@(zpja%E%`V`VGnp2?9u+WPjvDd=M^5xPPJf?V;MR)k8;UTc^O^7LWT@nh#TU7 z3Xx=V@xt%ScE2Oa*Pb+N0by1^7Z6*-bpuHe7BF~RW_tbQvD2U@iPw10Q3a%%c2zL) z{w0zRvGclr?B~sO;8ATK_n^TG z|E)r`I7=Q&AZNS!X9WvGAw=1Uql}+AX%zUWQB}r?S5bkb`WzwYv0SH<^hIS54L-xL zOV-^Af325))vvDSq21C#!JjQzPG6V)3&CKO&woy<5=VJjs1Wh&k1;-^^V2pEVyjk| zu`qv&QZCFONnlGaHC|?ooa1ph6}eL9nsq|HK2$syHE6W~qWaLno|1H@%yWg6v!6$jss25x|WXfD6i=W>XZBa~_~{ zon?C#ZYWqZ6IMYxV zwfP5yjUmND{tA*pw&?7<$$5~&NK_~vJHsAp;eS+a%z2*O^NF@dhkk41m{5917Rqc< zAe8X#Gc|L9YAAsnb8GxF<9@Kw#tJB})M;T)IuK_CqS_gU*VSRO0z*P28+O`K!75Uf z-AOX?4TpY+fx5S@fu%58NpZT;9YXr;7#g^oZI7}OOgjZ!z){*=@jyR_EDEvYf|nH$-_to z(0J)Au74IfZ~fhV{q5V+&SmG{Dn1td#`%Ra$A5c#A?mzR z@nA52LVD;cB~~PP{#QT4k=}(>H~2n{r`pl128NZT4 z%~|ftbECN+)d;8Y{&t1<7bOxNofO&v`UQ^DdihByaKakMIh~c06L&Q_uPp00bZA}n zy?xzy@@ZB0hpY6&f_M~m-Cr1m9*mozEvlL0nRGnlkBLXwoL<(Wm~MYCG1~X*Aue!) z{I^)cY)Ww4YslU!h?>s4IPT=bT=$^f?U{#ljnNPphK7lzb<0(izn}a8x}nuOf6avh+=&Dl@keQH{qtxF>&BsDn zi5@3&I*uT3+A#KwRpO*;)o?FPI!ywJM(&z(QQY*Nd>O6kG+8X}xnMd14 z+wAVKw{tEaXyYWMe0y-=mptHQ`^E!!IC*+dj1`o<%OWnI@71@1nLW(5i|8JfNzZ-N zr{PjJIlZCEvToGIZ+MDtBKGQYBO$c8LBImnv-0;5#T3jh8_W}gJ&OJ-8LHbUvd8)l z@@K)|We3nEpnM>|=NdFF26!nB+P9%fj2q*S#7ndS`^)7q(?(ofa_lLbu1Wn~k1Nvi zEZ=8+xn)+j>T$3@k>Z`WO*KRK^TG(uIdNzxT$3YnaQ2s?e{Byr-#pkg5SX>9 zjf4~E6vamJz}gQgAqJeqSTJWe2mWx9zM?~E7RSAl>LSO?wBvQHQV4CP4s z{`}3dE|vsexC*R@-us8uY?<>Cecr8kl`<(pbCFOP&)J~)!|BUjljY4v)+!7E$11qq zm8PV?sxE*%+1>P_!vlY%Hm@>Sle-pyGL)rU=Q!PS$>?>;%CVE3*AzwV;lYP0^V-u= zbDMkSrT1!#_F0a${kQ5uD|BA~Ae_`ftEWLWg4zS_)po6B@yq}J~qyH47 z|0Iv&5PpGcHu%7wyY<+E`lb3*6s;STkp;xX`gm}IS-TbEyS~7$G<-8hQU}rVYxf=( z2F#=@sMs^TzpNqKP(uE$>83TpAM@vK)g*#dq$k(Q&#ZY9EKz2#n_&B@NtODq&r0>P z+0$eB&L$OgSl)ggX#3vcV?v^d*TSKV{qwbsU#)C?4ZI|i!rDX22R>gR7U8KyJQ2XE zqA%(bS^>B8wHeP-BcvTPlJ2uR?t+6Rdmu|HKT2Q9+^AUGZ`%kdX`QLyX$4U}e8Iu%Wn>oIof@Qt9KI`50gal+UG^a$#a`(oZ+~$VQrg z-r0nNOwQ+shVYk?npOTOuG7~uMR}5dFw(>%UM(@zkAOw*&j#x_T!`(PAdw&G@#F<>0kMix#466UVIa9ljC8RM$YV zaRWkkQ07%i-k?M9ZN8F6@ z10I85;R~PTY_FSK&P=r9c%)80t|oUg-Q$R++%B~ZdYP0Pwuxo#F&X6DYAjvT(ziJv zm-bDq@p-3UH`=M>afbg)z;<;yeE#`YHy4NA?aJ*Jg^i7`A(1T*nn0RU=34*QCBIuI z!@FR01c5W18}+(Nnu;B4wyI{t}s6Sl#K z{{X+zy>tS@_bbvH95mh|P)8*J&Xs+OL6*B^MH~m~pxvKfGVsg;^3O>_?xe(a@lnbTW*-tEJYN-Ce zGr=UA?_FvM!lB{lBDwtcmB{t(a~2%KGH*#e#gve*sti99sw@ht{964WllEZlT>^Ze z^4q=)WJ`wUK#u{~@^+dfKPVioED$^uoKLdD@7Qhg3}GG|5D@2F3;){-Knx3`viyBv z(8oImywK0|YUVCpnpP!Jj^0m0r_vg8J*c4|O6a~BAp#7aBM&5Fd_=Lpwv@R6U()g_ z*kBzmI<*(KKTTkZnG;;Z7OVPUUe$AvTD(&TPznQD zT%pnX1tGHOd-wF)X5FXFy}0~niNn|5xg|UMIS%O8$C>-bqOk*I;*@AKCEDoW^Kt&d z09`nuRb&)0b$ue_BqmSjVI6GcbwIa+z$e2A0jc-!4Sq0XE<^P=D8g&P@xsdNC8L;N zIc30Jsv^`Kn|l+s!8RmyQC3HauTvqlQnoBY%Hy_UX}l_e`d`4SH^!m1dx{ZjEq5@7 zQf}4S>cB3nUi7=AzW+ArbQ3<`+H}M~E7LU1gL<5E9q^_u$mXhdw-3Z43rX8J{D0~7 z_4_oS%xlIG|GH@R(iecQY?V>g;kWe^+0U1N*c)%S4J7Ktqol?0`)6WuMRV`E0|6(L z)Ml&L{$zev|LsmNr`E5NUcK9-9?}lU`BKY=5)QEDIOSChMc!5LQZ%4im_7iNbgCJ( zXU`6gYzEAv@X`(=4*d$|AzK#S9FrN=5Bz}uW+mfy{RjaUWOfb*~{7-MAgH|A7oq0ykByX0Bf z(l768$OlbPsN)@8Jck36iTl3_C=2H&S5s>Rp^uJOCiRqJ1#^Q2zFl4P?cFxAdELtG zR}^`4g4q1%c|rHA;6w*#ix`90WULSdL8UQf!J2akX@x1ya2Z{x+dwc3DG5|U70W`- z1F}tDMCiw7&qjmu&+CEzf`2ib$tGU04<~mV`V=GI?H*k|Nm;l0mo9N(Q(ae~X^1eI zuah`FZ9upg+LB*8p=WJweZ#*W^mS7;+tgzI+0VLx}QfaWhxCyLMAi zY-9`U8M!Ej#zm(2xcoeGNBiK0rLOn8;Pg2R>UQ53J)%} zz7$-m32Y^?@|k}A>~gs%NyzEWD=WtxN(TU^RDs-Re8tNBWl?Y=b-&#z`aTU_{9lp* zU`)MFoA6#)er^Shg4D-(Y5yq?4ASzBKT{JIeibvyrE~nH;T=b^4R6(XJGxJjZ{+7H z?>q{u^ElG4?BB9&^Gb;rY3Ui!Yvm9ylx&nPXNwSN2b&auw*s+d8-P$!t9%pEaFy`JLRuOBR($gK;KxU*`MYy$@+LD9<;I9}st% zA2dcW34;J%A?w0o-@aaUFfXo9yA1dWK&s-8Bd?#lj;BT#yUI!gT3F}2zO?Q-*x!dj zP{I<1+W*36f+pNQeraz=Hc0B1me1BPdvCk)@Y9#J9y3Tw0eZ2(AOSAVEbRb~JOZ4- zy5c2FzYDwTw}WIjmGs8}>N^GSDHyxFDAkH;dKfp9Id=RL{_))3&1+R)ot-LB;4^an zrAK}=7`)A|LVnXb8jU~HQ=IbZ?SIAZP!cuLsDwS@P|4G_%n6_6!6Q9G-sfz)lTUe( zKO9X}>zG67>L6l-&|{N3g*AWV+<6soVS~iGak=l$@6?>nxd@U?o#{F2RXqzZ7x-FjX{YnYHy^+#!AshTqQGGr{f!Vby{cub@(;fjp)8 zUc-`3g8v(xU*Po+W#TznDCjUy2^(lCeNhFi2M+!tN3%$>O8QKAP`=rJpRr{D_buxP zXqvo?jsZGVTz;)67l zPN_v5)cygRJAV6E#wat5K?e}=cCu=5b@?Tp1Oz!Jw|@G!=b$BuI@ApVEY|*B&)3nO z*1$0=-%_lYf>7zWA!T>QzV3Bl`5xvU?9 ztTKHC#TZ1^nUv@(s{F7R)qO~@q|N;FvkuR_EA~J!vjfn&HzZ92hIwY$1NojMuDo?K z776|uF^>*AqxF(1`uxZf=}SF12O{T={yih^WeA(Dp=b#>$2{G z5_~`x03dl3iuZ;=KTB0jG3oZa3!6+b`6j2|6s#@TbyJ6jeU)$vlpwXLJap2lnzXI_ zXVbS$;I~EW{~8S548qs`i4_5H5kaZ-d4NmUggo8E?z&-Br-AW9_37+Qt%M4~XUTp3 znC%p}&XNW$wUa!Jr%#vD&FMqtQj$4_HV3IUZO0WT!dY>!%0cy3EC5tW1&c!q`PjCz zzN(zLEIc9@TWP4Iw&EUS@?IzP+e!5q1H{=g)cp({5Cala*m# z(7-nS5{lmf5;v=#Cbw}Aro+KA3H-JW{z@=@FBtDL6R>0oxcFb?@@UVp4+5zRs9AMQ z`=$7QhFRX$KBqbgAtrYZv)8!IGYl{~!B0W{4f9e7|BU8;)3#?;_Ojb&_>Me$Rpdoa zY?b1&aWMI0CScg2tqcEn+p7(=KD5uzTpe7BL|*N1i9FRg^$=jl^jl!2Bj?g=J-YR% z$1UzACVil|uY8H@XQbIb z5_n3-{uSZK2`nv{xyAb+7c*7~v1b+oI$A8Y{IJ#cRuS>8Z+;9-wrFg!|5~R+`xgO6OymN3TDH=*xcFhTC)U}IXCW4<i35%IAYitvobJTy|D;wLhw?K;ddYdkiXn0ID_HBex5wqjwG zpXQz2(JsoeMO6kD#-Eo1i1)tVSbLA!j3156QmE~FnrTdTcr#t;sk$pb0qO+|;gV8IUpA4vZ25fT7B# zO5P9uS0XAr_eUbaYy%xLE}4BD1G+dtwCn*mB$>-k2^nXV(JQc@>3G^=m?wiM$n?gT zZ2&nc>4l=WRu{JTaD~V16mF99JfK6hmII;@!rN}ZwBtJ0x}5a0`MAJ|uKH}x&1IRo z4={nls{3eDth#%}FnRx*RU&CEH`lCh6evsL4Y{?Yw>}KWL-xCqaK|K1u|lkiRBIaK zU>ujl@)YkYlt74_5GCjp<|3Y!?)1WUV#0^s%I$IJCgs5?{*a^RQ&r)5GB`SBZ(3It4t%f;}KN3Z_!L3_K=QZRcPbck5h7=m4cyGaEBQfo)g2GFA z$g%o-_eHs2S#c1?J{?M1C$Zwp4OiH@ri~g{mT-IOKyu$k@UJ1Yr1;l$a#_T1c@uzx z6<*T$T~Gl;JF&WU6&hFLKWy0q7b46~XpJ_w>6ql{INr7X^cvD+gBWWP9{am%j^}JE zI6+E|yb>Nqd)J>(v7gh5$Vp6JTWeTsg2 zW2bt)nr(kH*Uf!CG!ezBE0V8x18H&hyAL$0_-h!Cxn9!U<|B^GacPKW+m}6f~H${UL#TsuSi=VwWabZ?1eM>G^TF_;V~3&6q>#-qy0Q;y)h+f@1Up zAq07p^TfV(8fD++zg~=%!zw0x3TCQ|brJl@c?q|gnm=`M${V8;k;852A_$gfHZcR%v@dXrWO z&xF)zc5SI$9lQ+4w~HePk>sns?9VHL)K=2;Zqu-ZZvkl47R5h?)H)I53m!Ccimy)Y z46bkr6P}CQuT%_TNBXruwk1fo6hQd!bB$6vBWxiP!kbICLBVxCTVLb0KAVCAK#udBGGfqf#7c0* zSY~*X727N4#8AKP4t=r(HPjbz?!rGj(zW4nh_dF~^v#?oXd&?Wy|0QBKMb)*`Ya%0 z6!Zg&q?j{TAic~7K0zGK*z5Tw4rZJ#Y$P zb%M+lYh1oDIEiQMuFMG{DP&fte$b0P;?;}1NDLQPJa;HeLWZ%Npf2)sHpg4;$Fnht zw*rmNumx2jt3ihk=!h`hMIasH=9`ziSQe@Ck4;_c{bC|byc=YbV8OoK;vOr;a;bl7 z-Wk%#J`UxuFfxT^B43gc_Ye8apRobn&D`bL;yG5zatYbmJhPp^wr@3~*g$M)P0hTQ z3X1VlYFM+|Ok-X<$5f0!nrDOJGl$r-W@n4{gg!Nf2{v%fDxIV85s!ZG@TIh8;mKS2 z325mTbAV`hGbnI8(wy8{*`dw@B?5=IW5%1Pzho!i=c0-jP5=dq zxd5H6+HvxY${0W06%kZ|vTi*v$JgJpGu0E2Q=O<0;u@_HF-inrh1VacVn4na8Xx>e z!`R6;&jelCv3AN0$P#EMM%ElxY!*Cph%hmC8F%yE+;71-ib4}egLoQ zj!s9dj_+S*c?XXJR#cn60=kEMNQPP6#)+J4A7VxCK_6RQHm<{bxj?D_!uqlI;VQRP z{aG$cfN6$}I)JG9fsF2-IrQA?=J&2MX*ecaS48{v*5)(jJP_H+WfDP*Rv?C~^NbrK ztPG27_eSk*m@-a}Tr%WYwnf zmk;jMxxrY%9MOTYYzWZ=@$0H1XE{OYP~luhMzZ7;es6j!mv68#=a%<%Y%7OgsRT)0 zA`sw56DUa;f*y$I!BFLiM4&GcO~n)OF`Gro9L_U#?tZ4sR>L-mgKCVo}_Rov`8T}B|XWnlMvR&!AR#5u$IW{eXkMLxe3wW z*Q&0PaFLi;fq(n}`WB#j9yc66D=z1HH}P)0^B~X$E6b>S@PWd39PNb#MGvk(d!q0e z2466=gKzx?HZ`BXrw#|j>|=pqn9=1Tpb<;67B?GV?K_qdgH@jffT|9!Qjo`wpcmT3 zJHOXJa$Ie5U6jYFwB_fV0Wfx#3esE6EZzDLgamRd0_kH>x?TQTE%qXVylDdQ)G;Z0rr0rS3wh;WMoNSab22<{$dY`dTN<2 z`SnUiM{cq%vppBB(_!4_`IVl@?theC+^qI~cfu~L@p-H+%umVIyZO*|^DG`hsY4&s z(Hqs}z5M`E=q37-K!j4bt_ffA&}~)nS?xO4vCCB}vrFa>!1TLH5P@bwJX8S@B{JOk zB%B3w!tgC$!Zt;|TD1(`_nJ&LfMdv&AIO=sjbp^N?wb-wldDoBQXBL+lJ!o2c2A6L zBm)<;C~<$DXU?m(Yh9p9( z`c(pVFrrYN?h&L4dz`uZ2D#r?dshTp8_evQv7n?@Xp35U$V(VlZe~@ zEbG7A|0f$$KrCB_>A=fzQ9>lg6H+jy{YOMp1oQt^|_Gri;ff zvCM5p$DB=$rMjzR-OV1F&yFpFzjqFl0ej;NyH6-I628j>&ZkITR2=)TYsfvNLStpf zX*p_cjmaCQ;PJbx9s%1@VV#DII5(^lWgfzqU&)S9oB$p1KHPiue^&du_dRsScD{Wu zrR2z=<@DQ&p5mu({EuoMm>*Sx&P0wE!e5e$7v8SOygYKuI|x3+@%D_WqWXI~73gF) z81tyxEJ%w1ST@aS`D6W$CIk-U?EY{$iV-2PMAB`kRxjqR7Y@nxGZObF@yOBvwSH|i zK)EIVXn#M@f3&~W_qwnO4>7_xR;NOr5@*Nr>zk9Xy_W#fUBisDSR(Y1?p0vpHzdKpkoxqm|C3J-8O*(GL zcRM*&j*DU=BzI1=nrU{A1bRJn0MDpUuBB@o!ru-YF0fajhariAi@1}teWK0u>Vu#w z@7D4J9K-L0Uklab4;7y?_m}c%t=Ks4ATX0BT=k_#v0>n*k6#P6BT?IS2qFXs-;as1 zBhDO4LM7?WmsKGF3v4N^ zTj?|8Z$SzHYtIBy0on|0DsE31Tyf>nVpadfbzwi{B4r*++xUw(%P^dik3#35%FEk> z>C?)(T0`oKeSgmA4!1J7{smWK?t$btiHRA7Z7#<0I@-Ep+3%nd(6jqrdcMKdiRAV( z`t3_$4G}33YduEYP4@L}l(9}-)%~>ZVRH!phFV01%^8^o4$yj*ShU8Mg=a?t*Tubm zCyZj#Dj;$EQ{emAa+kL<#l;*WDJoR#r=pKN{>( zSTo*)TIF?6wE|_XA$35aOIbl1QKmmmd6e>p|26kf?_VXa!3gLH69GthW_sw~Kd*H! z^%4ID^*zrKVp0qNCGW?NLr_3#=rFpPzxcR}G{lQ@k_iTy#tfZ(XAHx?J=>Xd{rz z$6BRTGlO@>d*mE<5G|KysfNXSC5QUL`Bp>hkG9R-j(qK>w{h&}gXP78JCrM1F$q?Z z+L*RylI`H9C##)XfICZz?M_vny;M5i)@}N}A!=~#(_1CY5B-ADcK6P@al#FFp5)qP zz*RBSxTKBSJ;2JIQn3ZP83FUfVt~~EWTh0K^niR6t#z;(-c$Vp8fvR6>=rJZ$vz4n z#XfpL=b>Pzhi!-}uVq{flHn3aAgRe{)$zT&wch&GeV8cNub|u5k%W8r{4*=ya(uEa z4rGqyGP)jfJVDyt0BV#V_yzaPpGg{$wbKfS`HVALC(M^VKhr^h7y8hy{Im;$l*n(& zuN5~#evL!cR^Gw@D}W^6iAeu zB<2J;#`5woSxfy9KaEgs1kr#hNTK-M@ha-);C5t#0hZ+^%%5M^i@2neMPGNpF+B~$ zh*6TbQ)>&XbkT&Hf>L%p?^sCU^GFClOvwL)h%lUwK;M%q+AknbkBO1Qg7IY(Z!BvH z^BH*^pMbGwi5W#EGAU}?s>HqA&A!oToNPmBBxj@J+N%1itejbmtx_jG} z>a)CM*+TiPcLvO@YX|sj?P;Z1scSvTE=_h}S`o>O>rb|Mu=3R6IS;R($!4wB3dJ>! zjL}J!5e@IqJaF&yJ*8S&eL3VUnp}vCzva1zb#g1v4{lBWH$#dv~?eQg< zb{Ava)%iasIJf(8*%mGfKK7y8!uQvB#uDG!+6|n861K!pjn_qoy_%y@ri`7HQ&;k%B`qs~4o{l*BH0nBq~GZq)>2Z_4BUGY!I8tCTfQLL(c z%`vmLNzGBtur7Pc*+k9%O;ALhB#i;?W8eVqH%Ke&{;;4dMCJ&F3y)f@8DEtW!G1~n zYA)unwkl@jab_!1S1LkKQ$fm(+ib)xOeF~DE_oGn7*iYwP`151VW5U-Kts^3Gb)_O zeZsx|+51TYK$BcNonxsb^%7XevTr>j%&LX~+RS++CUna**%pPMyTae2Ys*;*MmXOE zxzO9!gOjA>O*{!O3)SP%H*JFJ#zhL+5=+$(*rOS8e~ z0m{Pw43&Yx=|ppAhEG{H?(Poj7T#+oNeDk3Scv|T4+vPVm-aK0(t__L-aZ-3!~Tz- zEiculec{M2t8`CBOad6gxINknlxwqiH+3PDigoU2!=ehX$Bg0_^g{`We{7RX2b`~A z?Mr}u)Zi@MCQ&!jI{npSUsA5eyFgk*8i=yBh(K4mZp_coMH$G=)S^@G`XxxuMd3yr zE~=#D?*Nv$oza~Zd+K?54I=W8^d}d~=9qIIk4kF{EavED`H=$ozv8byG5m;yVScqq zLu|@E2sqC=PpOOvBZ)jnB@jR3?Tl6MuvITltIf>T#}!snh`Ot8+{OOf4q>fq5wfc= z${bI_*+D^6S$EdOMkQB?>JGJn_2pK;UK}Y#GK%NH-66GB`y}T9_mbAO>n!`&B-)5z z#O0XWV0eQixk3;rlauz*OMgV%fhjQrE8!V(5Up?_a7%szeL z+MS%Fv5*&M&kKm0xN+|Kbv=uFj*%9n*9?Bz!gq1XFsN$r ze9$X^BYG0M_1FYlOWBWdQAF&-$C0usCS@PbTQsFiez{&Gn9(#isibkYP|5+Ld9n;VNJ$z0K zF*oN317KYxW7ET5iRt;OXZ7z#A&c8+#XLxP{CSFHq+Pqs^f>jijZWH*VQ~J2vn6d6 zWlwvU3^dAycnC_2tvFR1x5!PtRW6Y`Mp}Nx?lK>@vogm6!;lv&UNx*!JhkW5eqUscmMm?a`qPa{kqh~qS_h~W1Xh=;IZ#a_br_AIgqu^s>v@?I+rrmB zEkT8f`+jIv6rCAPb-mfsv6Mr#l*(t^vq>BrJvL47S_3^?yX{ZCI+NsAe~zQj)Z+l5 z=n}U5fnRTt+LT&FuD8(Q+78)ypv?Y56dWAP=w4C_XFw__{t>j~2XvR(xw0i2PItP0 zVuNzS+)*!enwtw2j_7r>e?>|JYNX<(#@zr%UKqnAboVHRP~>?U_qz0>=T4jC{YZ)v z8YR|xZDlLW4niP+>5AVL$z@>CVC|t(f=N;k-POw!MQD0$O9S@&F`}KWr@VRgmw|{S>V&p~jF=9O! zc`3KcpFK|@E#QWhh7ZB_Gwj5^CMr(fNBtcK?}F}5Buap)Q@g-QEi-9DP*9N8^Joa%QpHDSNOh`U);a5@(B<=V5{T-M|p-ta7Jla{g z*ZF(%MUmV7LtZ^SM3y7Hv^aeP+i2#)y6-|Ig@5c$b)49oIUHEe_M-~0BHes!A|0Z) z5<+@g^C%oF;D{5H5Hn(`W}j>~hk%yGCYc^TwPQRQ`rLb<+YwD3XHG+UTCL1vr@(n>Zt5? z3AK9kuit(~_wp`HExwIY7^>vl-pZMLdsJ@#T~prL>;@UZ~n4{lT(~re1T7)o0XvlS$-7JgvkC z#T>bghXGyaXv1LOGeJvnO{Gi7kp#^92l~qee+|nvemvTk_bA88<~y>37lK?I2Eo68 z%}6`@SNcYq9U>E^XU=i-KaE|w3H<9;@e&F>4%XV{Mb~DbL$ctIz`!BEc0<4JaK?Lv zH&1-xuVK`PPbRf`Z)JT~&f>+0Ot6|N+mHH-A^{Ed2Lk|s`%`}~vh|mO7J`=X?l)i| zcp2?ge8#U`TWO?|b&*}(A4^av3yC|GdPS+exyqTVW|b!B_J+AVE%%;vs<;+v^?fF@n}k!GT3{DQ0D_ z*6Fw)1aMvwLv6OP^7L37C6;IP;@tIF$z#j=)nZP*`bYCmt`$J&7W~t$X{X*xdaW*K z+4&7CI2kNi)7>t07r9YuT^jLAp2^{|lRqy0^Q!z+5-@TcqTjpH&2`{yE|H@dUN0kG zFKWi7gTj+RowThN8_syfiIuQ7eZZX5khv4THq4E~1m>V0+(XXlnFpV-LLLj4ca5Yb znQ1eYP3a!+ZGtIX|5H!GNIv*!nGSVYF{+9EDa6=K-`PWn*roYaHO&Je_fMAO8}bev z5aICwA={sb`zgvRZh4#gNLY%k!0#(+XbqGqOhaP8g)S@$)+iywNi< z6D5uh7zri_Rz2I2nCDD1uXB&?6u{X^UcLv{?b3P^=Kb%BiVSf<>N2x}P2-k3Z;;$) zPTseSt=^*fvWw^kUmH)ea-pQ`7}6BeXroIBmu6;sU8_;~V{hUnxK>rKVq7grobkoV z-%HeT3rHY}<5Rbbi?8C4yck_kjw7MvhO;7T<~yD?%sR>MUP01*p2-I3C9wHg@k847 z@CF9Et(xl%h?JT_Rx8&dCq373@$!|QF(=-x6Mji}NkHiTuIQ+yFkt8X{K#>y+74M9 z?bSPSUuyEe8JLwKFPvp=u~#eKGatFx9dyMZ9TV0(x=cv&uW2{x!@i&y#-Wf5(Mzmt zA*v~V1jRFq4R~?icuzZXT9Gf}(Pv-Y%EKCLciIu6WPu`6&i|`VgUyP@sD@EU?}mS$ z!$40ezxbZQqF9@}9a35Zs#AY-LggQ>>8HIXb}1*e6op?o^==9W#_+yz4rE+qEM{y9 zG^TWW9skd^MiaUN8hUN{9bz>M$yHt(_plWK7G`u|Z$%VlM`6~In_m-_);ch6YBxK( z)3Y3s9R`t@7H^%32>XVktt7NVP8I^k(Dhk&p}Y~vAcjj3o8Hd#-?eenR~L0>V!ft= z27&2q+{`VP5}d@NTJ|_FFx;yc{q8FYt9KhEfVVphKY-(8uarhP{yd&~@rGdHpWZ)s)1M+wd!NqMR;w@N5_n*N2L)W#+mNXKuz?o%t z&0*wit;>#K<1(b+nyOp)((6lEH%GOzFo8*h`|!o(Uv69NYG_6(Zb>D*c2TFJo?esR zJMq5vP`K$28S$NFrSJ=$21uPsXq+ZQvcoat9bMHh7&9c zAf2nIu#&}9sINPYbK-X*FXgcBp+{$`uk~8LvXoJ!(0TLYtd`eE5XyW?b>0#)kTjnM%JQl;Yw2&w?edI*V7CmdGuj%nW0 zpI3_UOoup&Y1eb_#LbV{O)1hvWNGsp&hhR6yGYwdj7GT8gt;(k&DyIfyvj! z!fWhKt>Dk;9{f2b17y6v@8nW*zX4Mf-C_2%t_r{zenw+&IP9)j)hIAjhpf$Wy=ayr zhkk-TvN>jeUpWP))jp-E6E^v1TaCx8d9?$$hN3KsAj1&fiixMTy=~>Y0K_zI;dYrr zzwwHxjtjI*!Bglh+@O=8gBdtDyS$bYhV!iecHHIFG=+BQ(VvlE-W)-jIQl? zp_70aai{QI?_Uei>&CH)%gQ~7PHAnH2o@5BVa3gIe(}ANp1N~<=C2+;Iu_bd?^DA(O9j=V9>Z;E_5pe0H@@Z8z zBaqS?DSO?ZpwmYh;C`Xb#_~wDIGkVqzu+jtm7f3FV-17>_vHP7Zo43gWr~MEdG{ai z<~6v@@tIRZJMaWmL*R$cQ+Hj?hk`@@LN|>3a?c*?Dw@2&?p9#>U_5!?;j5v<)kOQA z*Y@{{`U@_tpBhva1%d7(iSID#?PyHD%E+b>@aj)2s0yj8I$27YNVM;XUIRA`4txFP z6hZ+n?NTr#aO*;pyqRhTWwAYX5O=m6;&M1=wx0Y>Wi`cQ3bJ4dx&E#YZz{>TX^3N*jIy5BVe+v?r>1Pn^FU&KRvyMt4?9;Y~Z z6hnSW!kK?E0SSnCkCO&vn-uL{mJ$i+{#{b8rMqmj=fr@G18`*4>vC(iDNyJ>tw81% zvk>wt7E}7+zW;@(K;JKQiC~?X3f$`-?f(z-Lzutc4K}Z}t^EW2j-Hbr1opvPTUGHWBM0t2@2_kpkHGX*Mvj(pmji30KD_C#5!5Ow?Y_s_e=y*W|Ahhb z{y#7v5PcMMl5$)IiD1J%S3hH|R3z7T4Qhw^cZLX*etDxTFH0lN_1BDi`P$~Wr=<^k zdMgi?95rtdj1{;5>g^t%bMabN;=F@PHf~DsAhEkm9deSC8Z@e+cE&WZoMAC6B4;lX z(YFNeYxjqD`cI+I&DUqEgqHWkMy;ps=wIldt|p*d?`eI1?t15CLw?exPkWxdxQu4! zD%8!$({2!_vqlG+-6rL!ud&C*E=htPMuzfS)H9*y^Ehy+zsD$RE&SwApIq7eyyx#UAd#Z0GO&0qBjX#l;$%pWN*IXHt0#(4PMT4dN70gwob4 zn;u~Z(*9`|?4Oqftc6NDOaTXtXgEpBaqlg-0{=mkK|tSb zLs5__SkP$x^!HD3V|k{h+tus-Ktas^hJuJikQbn+Dq;u<7{Z@iSG#=hfV>@i68I!U zJInHzFt&rE{lM7*%~#PilqMcsZ`5Yz4cH9tPgdSGCK*fn6}j7?h9MDH@mabC1JFpZ z`0B>)S)lnlND%`#XLku-!NDu-orv{Ld-yQGtF;5dDP+dK)N1O0ePq_`w0HDQZeVp0 z(oSHwT1W6%wOW+wV^YVfD~JF1Dc7Fez#1RA<WixD0+4Q#c)ipZKAI zAk$1T*ZWGXX0eNIm_>r6?k`J4#BwBJnZWYmDI!Q>ND{%+D{!zK@aW>Fu_4UgfZ>t= z_Skt6Q@PG*{!8q|T39xqRoNV*1xkxcPnsH+7tN z=_TE9Y8no`kCcOEtU_N9DaUhsMX)KuH9F>xtBtdJ$0U_PKqar{7gTT0bgZN*Ot9rx zrXz^U*&*&zvidwvTx>JoRhY%1q>b7^b6T6ZWJxg4J0Cd*j{OOM5kd@*J_KPYth{Or z%c#_-%Ehu}gAu?|pnPHibe>`47v?+A{yVoxkR^@P*}HYJ2MRO~2fkMU4A8Y-^+4Be zMa-50c8idUq~?O{>8n=Ib)mhnN1~gwW5geOG^+|7<_S1dZ%FiV-LQ~OwlSs%Lh<>= zT+PxI57-_4>b|oI%C>?B7RjS{zGmvO7_O=~8%S0F8+-Fp&O^Ms;B55QPM*t4xn4{X zIn*Eeo4lJ7xN2KOyH9O z6v81eta%Riq(|_Dwl?BR<+C$H+hcjf#Qtq)Tys(wWjHokwf^CiWkP=(8keQ53%x~e zE&yXm+3WkNSwIS^{$B(wOg?-$WI|nu!|(5&2XoxKy1@q3q6rYqeJ>NNdT4$wzPO#p zNUm3=q8te!dN}NaLt(y9WJfpPfB?fy5Dsz_SD(o?`n9zOz}aU(mAit=N`6Fk%u<40+uZFJIj`?=S&$cRurcCeE(xijs1U&sX+stGag?| zm#b&TL}qrCIB*@Dvd6Z>yeZ?H(zEQ3;F{}Qi*wo+8CjoDiJPnyhJmpH-6YmB+DqPH zO{_@eheOyWfXjyxV=czGuzF!D`R)uC?N@*6atvlUMv?Z+%^1@iJhK!$6S30(bU&Yo zPU!PGzLyu)-eAdl&&j!#|NrBnE*&&T6_zds&#p7D57<_dlF|LP)D zefguoxl@cVn-BZiBY30p0}CLbI&By9TR~w83S4@;f163r!FSB`{1CS?BWD32aC}Br6SZK zImlBv2mMT_I`EO{*4L=>xZkT^=iONUc7sZ_7ibmX*sEdSOW=DHUKC84TAo^Hb9=)} z{$hf%w|E|vgPe~*Mt0aVYNoraMb5r+*I#|h8p8)I5a>mVeMR0F08|w&PO;{lCP66x z2RZ`-z@v*BOC60h0pl}v@|Y`!I}5sMjB?enL+U12o)wm-@T`L?#c*V6MOxMZA{?`H zcXTj>Oe1xE8-dW53`2}y^0&>`=a%MR%tw=FFOwsLV(?Q5a850=M$gOW*MRb)H?R6} z-L&G@v=2rGE`~+Zw8iv4lgArR+-98on=(shg>`;1{a0|TG;}tluqxM48b*TK_Ya4) zr>u4ESMvh_L6gVbeS7u~SmJ}e>8!lw;a3tBF5H0Ji;RJN{1<}Ya10_dW}apjU%Ce5 z;fN-W)pCds6Htdl#M#KHpVh*&0Q>v6bCK_Rk=Mnaq}Zp5rTfw*OCOV?r1KjH;}rw3 z7Z$EZ`mB_u@;Iwz@m!Nt)fZZY`A1^_b36trW0d}D?0rP)>WBTl?>@znUQaG=8f##t zw1b3)X<`4PbssBN3zsiLhghzkiMQjdRrw6rN@hr6&6~=t3w8`u?-jK`yl+2)^MaD6 zRcFP@gsE8;Y>H)&SCTn!?>$(2Kuwmv+bxe)Slpk!oql`vfga+=xyG4yrp@`zlCjKu z8)5Yk(Jr6zm=mYa-IRMnTel+F4V--3TtIB=h9K1y&kWe<$$<_dIpX`xBOLK>$mYs$d0FKPUw!7KOyZZC zBQeLD5D!R2fTgbw)bIO1aF!P?4IJO{Uzz8*d@~!Yvozn~0y4_rUBnZ*9kF(gHct=k z4EpG9DYDGMT4AVTr+~4NbMk7PZ#_I#+q^SZJ8*Uh4vpT~q5Wrd{;8}pi_zy6OWn%e zzo-~pf^E&vw!A^rpmwMY_JJNVPp$6i8w$nI4H2TZm6hLl&?lx%j4#s4mjYh@!+pV` zr0Z_LF^hYo&_&YhXqB)4h3=cu?unnw#OY?#x!Ocj3f9$fIY7pqV8iwo~uz+vvW!_QT|f=LEm zd$t{NjEQ&vpNoN&+VAzorqAy(fw8~`8^hMd!wdqF6Pi;XVBHh8>#p5r)f<`1b+*O} z7)8fZ4&~O zSL=)>R8*f1q!PA!`QY@4qZfXBk7^p2AW`vkpKQp$D{{6OdD)){oS@Rm5X}ED zyX1J;@3hT*F+h<6@(HKGvUYEG6TfP6(7C5~_A;d2%gu1igHi(Wv8})3x{`zAbHbzAkFDRNl>0 zx3TxLmA5+Gg`a5jTp26z;zIQP!`+rDZ4ht>-|+S-b=ZfZn2I>JRC@-jsc^l~CzKY6+hdqHvt7_~-!eF<$J+*{K!P%KjHCJbGwaEyO&RBjK zvb4w8yK?^64gxx_EOP>muFyrNwB_4%9gd55?Qxud5Z?slk?385Z~3Ioe4n4W!MH2G zB*Mv_g>2Q{vpN0m|5(2+qeqP%oYMQGSo4Vk*)~Y;j7&BxhX!EE@k{V=_1$=nurpxZ ze&@X+BDzEHcfa@UewMX+Ui@D{tFT8* zge_H|kxN(+hs>9vzlU>rd7iViN?3tvP<`5r+OC{2^;1`h>zUM0m2qI4f88BJO%k(vZO4RfoE2WY zZNEvY2k{>9P;plhf84d~7`l)uIlnHZYYp;78Vd|Fz`ODzMLrq3goG}*JU}NpVztup zMh{rPd&l9_!^LbX1ez9BoPct)xC&CSWzThGbe z5#LuQw|~!^RforoU9c;B2QM|~BxCd8fH^{$?lVgu*N(Bz0O`9_zUIZVt?Nd!Tr$;9 zWwzgmEv-1a{afe!u6>80*hE(h*gIkqx2{d9&iHSe8QcZQ(K24uEXC=#cjf8De_fVE zd*Y-QIIjY7qwkz24f1|PE`+8%Pz62ELsIVEZBpsn@y2P3!|#%mpy4ml6)*b}Rv~P) zC<*yJp|KtN8&;yOe7k#_NFF<9QT7I+P0#g9dbcm�p(96eq-ghQF9?v{nv>x6!Bn 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 z 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

m4{)Y&M6%^i6xd$@}ucOkj@eyBb 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig8.1.png b/doc/1.manual/img/fig8.1.png new file mode 100644 index 0000000000000000000000000000000000000000..7925772551b8413585fbc014e76549780064a2cd GIT binary patch literal 9617 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig8.2.png b/doc/1.manual/img/fig8.2.png new file mode 100644 index 0000000000000000000000000000000000000000..7933bc980a60266da38f1b035041747ff905a990 GIT binary patch literal 8402 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 z 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 F{{!?;jHCbn literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig8.4.png b/doc/1.manual/img/fig8.4.png new file mode 100644 index 0000000000000000000000000000000000000000..3cb96bbb88eb67c133f5a658af939ee9096cf343 GIT binary patch literal 10959 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig8.5.png b/doc/1.manual/img/fig8.5.png new file mode 100644 index 0000000000000000000000000000000000000000..0196273e22ad36ed63f7f467e2aa802abed9b2c4 GIT binary patch literal 83699 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ɷ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%0Axa5$}3;3?Fdl?yvU}DUl=t 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�{HWooo!c+%QIi->*jm_e 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%0AWy>M&^rZLB9u5?IZ7nXKs-idi{!l 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

bv+DV;$jOQu^h7<+LU3o-l>R>c`syQT zU|xFQE&b%>ul9POwe+877MTkfSLyG^ABOVx&a~S;&}#Am%0K3m@-O4>od#)?e-cWZ zNU?ENuB3j5L`nT_5>o9JuJsM~8v;6_AmCn)+^Xy#yQxHA_T{`9tXvvnLKq*FIvFb_ z;R#@9AOI292ryT_7+jwSJasBJ<|Iz7x#LSa$96N(gbbD#afmKWuQ4d65+oB12 z<|xzQlk@LYoE3UijJx?(fBcWme(3e^kCYxeT`qKec?Te7)?CcX-ix`p>NQ z^={-C=+7XRbREz14IKZ+eodvGk{$HkHfN*{Du4F?%f zM%rQYGb7@4Hzr-j=s-(;I zTl`Y_=befS2}1FQQ8FwlzzMCGDLN-cx?>|`1$f-ElFCn6-5xeLlDKkJ!x2UQ1BzCx zs{YPOHLZ`$irJw0A3Qz}503HmEijNaD)G4J;eHatn|UVFQE5lR9ur)olX4xtv;LKG zIeJm#u$kCYmnbr{UJTPpjepe=Dvn*NZ{d^|naWl_o5hr2mgNyiVW}3K`i(M1#7(YMG~SAtqO1Bv z5Q=pI>xG||b1s{VCPkwfFzX_4AthBgRj{ef~IGVa&7`a?1=yi4bbxLX4wp9AY|$ zW%ncVerCnMU{Sm~>KjS?Ii>#Z{2!Ee&;5~hDCzK0{@YDE=P9cYMl9h!QQVj?;>I{K zHWAOv!y}0QV*2?8;s?(>2JfftzG-64pIUX;|4BIOQ@l)eZ+>~5`B*jA5 zb(x}*>J`w>SKn_!_V%Uf&ou;q&7=0jJZT5|(b01%>)=04tU=82mw`aY9uhcPNN4g0 zCN|D1_iO%W#vv~u6%OxUTwuomTFeUzXEDQ zG)cJ5{@djVb|U-BtMLx6f57iV`$o8Bcp3gP;=Y57cXfFZ=Or*k%ab-1h3an}A+}iQ z*%dt=eR%O-O#jZw3FUz!d?$taYs80*jTrwH4F$Cs+&Lk;9cJPADdEky_~l~4409iU zzZ(QL z`pMPh_wmY=%kXh6E>wr*KSXhIdNNxFP2o<4`XiK~KP;jz;IT{K1Q8!Z&2psr`DFRy zW}XSXK0sKm|LYz9Bh`NZH&5vI6b5c;{QLOpW`zu|wyZM$@G0yCug(|RsgglljrijPBa>*&x?8V#CEh zj9vEp%lzY6GEWZcP9^<=w`}(DKc;_T{{Lt1O`vT}sxrYi=iWCDnF$u4Bx5EZmdRj( zB$y1DOyUx-NJxfcEd|7-3uy)^U0sD!VO7~y0j2HG-PIy?X}3ewT9Sg66H*jIB7&MC z^Pnj6ki*M-^Sh_NVeg3e&%HO_bl!XSzWn3f^GC!UWAE4z@z1~LxM|~$r@tbsTW5kq zq@Yy)t~>vLfGLSyu_Bo)WLi%@@bk11)Jd+zTBt2)kd2}LyO+LSZ!w;A zSI+F-us>|oUNlXoulbLt{mjaT@WjBaVMu3LE!M(@vi}pazb?Oc^heP4eLjVUW}dwL za7LO3pXiiAfC#4dIB96V%m9)1^?YM75vQtu87G3CG2t^Q*_giAU|Gr>ROX2OT@};7 zCW^G`^kg0)LQo<>T8p(%K@D`=ef6yTMUjf!*>1t8&4 zY!SS8Pf?D)KmbA*e@VR<{VCLvCB7DGA@rvHIF&9mTHeT7Sq`aY)i!s9<{%oHDIGyc z@=qX4(Xa$J{f$4RT7Rs4Y)56yLQ>k%r>8%;&z1d))z4D^Po2E5@S7XyEd?8D^tAVQ zShioa$AlvLi??j@GrDKD|4+~U_v59QZ$9=qTt7KzBP0&S;QwUpm)-OQWbiJp6h%4o z7*B-NJ;xAUcYIOT1d&XqpnnT4L|-#~S-grQ6i{9*X5oB@e>$vSNx2o7O5wzyV#vU&=<_f)4SQzBnEIr)ED!i%en`rbgq@XeOKQ^4i;; zqU%=LA_ng1u@E(7E?Zu&KV^AOka$ZZJ#l?bEK~BhTqUF6^2z9@jO1c@DBY0x?Z(!B z<@D)zWyM~^b=alcK6k)kdSo!--+PS4aj)^cD{mcmciwW>H-i1M^44Q-D%T(T&)D1L z=`Od78NXY?YosS@zpSE9C`>*}JCXArzdUVG{XkMyv~hMS`lmR)yw~IseIhuuTE|-3 zp5k=JUu%3y&3rA*hV>Mus6XP5r(GF?d`W6b&AjRNc-}e9=TLfzQ`8@3Tar63rDopr z&zE|NUO&qiO9&L6w#x;>r^KiO5ZKM1#vcxC`A0Z&zetj0&<^5{J2>RQmVP6TnjiqF zo#4mQ*B_!&=9;;b2S%;sE?5J)L9WLfBx1vBb7_;4@^qI$!QE^P(yB)UR^D^4Y_TMO zOwM@GHoDepvvFr$KU$DB)^@D|M1#+S{fpDj{psgSU*TJfVT)ZFuM&Yt`C12}>~i-F z;Wy8|UcOlVA>6$&?LUe|jd*6Kz1n^Q+OLIzrovA2Q5P9;Zix0Xe*EKDBczQ#90}{W6Gf9~+ffLPQB3G5 zk$hcf)c8Z;^!2;XHa${RmXHL{v8_z% zc6b)N(oY)xSm6Pl%ML-W(4tQ93)e5{-lUDFSzRh6AZ*zr`Y**h!R|BpX4nzkt#;?c z+w4-Gg!>t>Gkj;|FIN6|!`gp4-c$C!AA3#tWch1-M_!h2CE=Tz*^3%&?kmP$^jh@a z@$IiiaN-R=DT5>{P;gKs!9ty;ex9o21FUzMv}aNzH+q3)ZMOJhlRNLTy5{<gk-u z!9^T}E)T$L__^4kDQzUS$C@(l&lBMK;c|-DhUc^2Uh@7qI(SUP7ovgBVs{p{^x8K79n7CWWv}%J7>5i4@?z-v+I(9vO{>v3LZ*6Gy2_*YGd)>e(Rpn*P^ym1qDT!YAsZvkz=2`#(MVQ29^C zUWxm=ZpN~AROg>H&aeqn&~V!0B+E3=?a;iy?)bW6`y~N_$WGsA=SF$$`i1G=ir%?y z%I~D`nG~c2_J1!h{XzvBVf^PTm`wEtZqjAPno{3EaR>&UEq@e2*T<&Pp z5f1*xF4Q3m^cz<2%!<;vxBr9qLgkxQehSx5aQmqSBH9`KPg~e$YJLU}D;S+xQxNV9 zmXonRPk~V?zu}?5%RvlDT4)Ggfc|CN^YoDEV{w7L`%a1tk>|ZR_x|r9pB`{E?5_G4m_iN5K>5uUGLnIC`E|L8-1^>I=9?N^ymjX_`UvbS7~Hm0WegFXt8aFFwllL8XGo&2ne z#4>~?2@8>8|5dd+)*sEOd@NWl<%yRdS6Fh|B>MUKi)T!K2)7vHy-6A|Fa&K+UwM)Q zC;&8zhw7i4-H3O`-geII|L-fmS^nF~FX42T@9^SSQtLbaGq%}$MvD^K&p+QO6EP$L zS$6{VbBJ(g^G^yP964kxQa``u_{`}`Q-hjrZQk0Z)Gq^VAGZWAWc*oF3O-xl+(5Evo-1SO3Tsp&xRkGi6dg5=HZuNsSL2V0e#5Do4$23Nhv|mcyw- zHvUS)L2K7gOvpqosOZfkTpa+}vXuQhmD7T=b!SU|>PzieKY#RJK6!k3$K-d*mu8<0 zBVii?Jg3Zh!H_+nf7(7Re=~b$d353T)D9^%6KzS=|RiU<} zO4`ur?{$+7Old!>r#}8tAEh|CJ!e+Gx(kZ*ur20>t^D}b8v3JKVJp6+g6l3dZ8ZC9 z{PAie`a}KI#h-$Qo^>KQciz;+AQn4OF)rCF!~Q347X%DxT*u2(*S=GXa!yk}n;=c| z`T^_{+mA-8jex^ahhVm`YpU2>59mBH1lu2hWGggiiKH3=+&C9|AuNyj<)Ls(?;ZNh z^>vUWKss6fKX>{neCIq~+J{>>6%J6r;MXZ6i`AAezB}tZcxELU(_vjaS^Z4_?YiUs zKZqlwUpn@qco*4UsvV7&ZFQ6AzdE2$;nx=#YYM|48lHkB19dY$zWvk^)aHrpBJ}ei z({JK4DLD1TG_S|?Y-=c<%g&_#&yId*!9PDGOrQ2IiyY_=yI1&uF1;|)fQ@ATy+3$S z`MJ;iyK;EtFyfD`XLK?qIrG;l3dG?T@yDA>JpL+&h<&ZZ)bqhnH+k<+?-z@^GSxhpg_+cqz6)PHvUfAQqf@-35Z z#~uYfbcDXwy-SD;hJjk5F2ja7VaUHe`*Qh8`KS4=6TQe$s=NjStt+R}|6jvXGH*Eg z^6~{dE2C3hAy?xEW#$||p7J?}2t!TE-1Z4iKcHbiX=58%b9+zJetOA5te53Q=wHU? zpPx5a^3);^}Kia!M<#$T*EjshBspJF0+ zylk!FU(WG;nRW}~pFeO3VBXWyzp4jT0oL-r%xrsY8KB1rZc2)u4WceP&svE@LKdYa z*cc!}0PFUGXi{F~OZq-fR^&;~QY!~HvMBY0mUJiA|IEotb-%y-!-+UNl|jgW&%^<- zf*XwAckGYDcgTpwulanj{{Q>gN6XJ2dju zTQroJis*mZOcuu9@$5en`nO?fylQ$ao=Ld}TcL(UGu&-ui6mw!C` z*{-45J&_@7yX;i_p@P^Y%+V+eYOJ%2U#uoPgKJQ;nWa2h@faYD4n^?DLeOH`DP;0(n{}RZA@-gfkzQ6o2x`v(O4$5xsyH)gwIK}?Iaphg* zKd-#D9KhhL-!y?NCFazR#I~@=Q(J~0o>;)qNe&%_nSg+EPZ0dtqr-6;Pc4WXo8#Fp zIaInp{kx|ZmM2X4os>+rf{l{7QB7>k&#?c`w*KrME-LKFt+>XtuKhsprUnvZn5}YC zB0w{kVS2(dJ^w)de%yHQ?tSklkNLZYmH+UCe_IY8I|S<@=8!x79J`J`_q+YUSk4C1 z8~iy=wvYdMeqE0`YkM!_Stdb&mZZk3~spl#0{^gu22VT zzy=*hST)3r7a47%__R?#gQ6G&AW<_${qk3HPAx6U|Bst|5AOHh#pyLv@kE$|T!-a2 zj&;yNHM)Zsz6E$u`e~3OE=`-1KU?|j@>?r!^b_)P`bCW3&@~e}s__+bMLxu4(6NnLPA&}8<-Q9nI< z=Kary?4C3IVek1-Bf3Ljj1EvRqs|_3f6VaxaK2>nZBb_%Gns-l_bBQroOu89;_Gj% zyrKO0%74{2P}b7#ampJj*|5|>t*PHW%ZrK)m?DE)k; z{X?f$mU~a~nH08(b|9$@ES&lNA1FPC`sIJ@z*X%tG}ux-tDOK_ z2^dXr5*8K9LrsXpk|z0?xALgp{;MvLchYano3DZrLDukD5)~>Z>i-8%9$CJrTmtbr zEP!Y-^Iu^NI4k&3KmI>nK8XEEJa|aT1?Z=ogOK+tEB|Zx+u3`3hu1p#Ik@VAfp%ro zX(-Wfz=-E_48D%yeI`v$8kp49Pgb#y3}?0LE>gax{fpASJi~WV@Jxyv$|kW*>bMSM zD3M6vf0dJPasEH&`sIJzWr$A}uy^u}0>Mf}HUUg^ge zwI8jY%}PqOk+Q=7tM!|5*qV?-wsppT9H~_CRM901$h9eDWKIK>(5R*g5L9X%h2%G_ zS=`Vpck~T}lBFbn>dk!AA6`C9|6e=(Uv%-acAWZ*UT1+5Ui1TEjGwjrtCe@Emlomw zo6A@6%9WRw&&@uGr%~`wBURmjew}-!cD98JA#zSb9E<#M0J6Dwsh!Fs)#-u^8i4s) zaSuo`gi7JTc!u@!!P93i@tKtFIg4n68Z+3iF|;poH`j9v;EV9T6i`+c2Km|1Pc8f% z!5_aP)6#1F?Eh_eo`-2;+Mh9nJYvpSb{^vqkv=-1TtDcug4`>MMd!+INmPl zNuNk3E;>@7ah^UGvj|Q${`3)Zvxg8iSi(~!8z0J}FhnoQ*8P9i$vw*>r%x(>iI+zn;nV8uU`@R2B7{_Q4X;!1nU(j>-d3(CPmTTqG6F(m z*qmtp-&$@eZ#?$HIIVUNv3?YKyhz-U{u(qYP$Tsl$_a;UWe715EEo%fp`F^h0s$8! zhZ+Yd?d5eC4JwL>?7B1fK}5OejfZY@<;WS5t^jH`m+* z)NcyO!RAE$p9;>kexA_O4h0&rj9W+MQ?);OWangeM*^m^VE=TAr~MHyoM71=`3x7# zSB~**$<6=SF#FVW2@{=U5Mmx)L%QYIKGbLBV_0N9ap0rn&0qPy@p8@m<{&#cIyB^5ye{U{JONF-BCW(@#iu+>;#7V!@Z-@B&qL3>h1 z$f1ZZv*r>@iJkpattaYpMI;gTN>iQ(U9_96Nra`vmOvwg#%4`2QD>KcqRQ)Flr-wE z{yUrg|E|gRmJd$e0skLHVCrQOm~7pb>Jv2v{R7xnC!Z@{oqeHv!{i&$W9;oy>;IoU z_7c1f5{npQXhLUL;CDRziead9leiF3KlsS2=17QJMU?*n>CJsVc)g?~C2_=M!%&o_6Q5^F~=Hpmo zehrJv!DCotc08aw>4K+~$L+nUJaX5g%g$*Y?UEDvtL-jm36vVP%KF_x)Dhe|(gWUD zv;&0}|6E{zBTT&9P|AEFP!vX^im@}KY&9xPa_}|8yi_46*3>H4c?KGwt&c~dXqq{} zP0gtPZ2F&XeSP}$#bsOES)&Ox`(M$8-bH`1e;BOqpT#pPgMMutu2QRtirf_hK}RM> z07rp_hGY&hraRIv0S9W4)*CDcx{S6mago`FMTTSLBL_ZQe))?(UtaR57vOZ+J<8+$ z?s8m{`Pb!t-0IV13i{CE`0oS)PLUEzFn%rmsfj@NJO&6)v7PGtqw@`Je^^2JRWk&$ zzAAOJfis;OMv&axF(*d{3fVR`lv>)TUmjE^+aq(^^kxGu!vBw)Jf-ZN+(o)IVMC4Y zIfrzVQ^!%96Mi4Q2j90MaoLY2)c+FT1waSttVl=dA9VU2}&}R?NrU%RwVXLGX7xtL4BYLw+r){iaTqS z{qzV=kIi3?qR;G0`^Wy>o{ZlG1cCyi;)p?tR^;t z1d-2?imF(!k^VfAxmDMnK6>yYxF&-|<}+MmcunRJ<)?As|9|ZJGu+0EXMQ?fw}nzs z(u#$0*yIHa6*7p2M;k0u3tAghipF$MvzbRnDh&`+2F!^}=aU8m1G#LFdE0%_AtVr4 zOS;McS;ke0YS_@EQGateeAOy&{9^pip12mT4AH}7kjWTx{85?f?qviwZUO!j-d^l< zy80>K{Xeg7zMlH?0){wAWJ0V>yjDV4_;J)|*Jw|?^;@r>0&PD_S-kVazpvHNaK2n~UHjo8-WjHEsigblFjS&`Cg&fi zs*1Y)BCNIt@#WbZb|i3^tJbqO=8(g=&OD009`8m}I*!AAN3qD@TBsJ8Fa83KWUech zYLU6T{F~4HD;&vSk%>1zdj|{3Yuo1IKlG{veIv6)YyjYClG=kx)M>k}sW5nZ_H4KG zRz#yAf3C))6@Tc-H)M)Nf>J<0qT29mY?CdP*o^w&h;(1)qciFM`%WHQ9#|e$K2rV? zgX5TEg@eTZXpn=8w}0NS@`vTprH7ny|JyjoqihXCL;~%lfk=FCSj9E;^TsbCb##J! ziaHP3r(j|{F}QP&Ov1c6B$MPi>dvfwUL)YkBJW+|nH1XRRz%mjy#Y2dws)HNhw%sT zaRvHdNB5%0we05}w2o9dhn>y&hrKnQ2Ks?F1sdoTVV>M|5zz<~l=Wqk1OyeAyq(w2 zog}t^>R39eYck~dC{CAs^5DnI|MQhM>FpGkZ09u@UiiPNeES|;lfi?})bDGi)CoBj z#ERD))|J{E%@*9z{EtN?xkL)FoiL#QNhv0&971sLh6rc<*3F@BIrwdS;A5f~^@sE9 zh)r_T@_XaCsjtupX>00PK4{tzrbM*Z+` zOL;opvzFSdAGI<5)i>TuaJ$BS^@VO1W~Z<-`6E$ z+Vc+@;Rp+5Y82#4cGJ(MI<=DPuD zjG_>0_+PgaH=>Xe16pH~!jeF_o$F%aq*ZF%fUXWGMKI-na;77sfM6sKQ^ucsE7>66$UQ^)`LSjD6wDWXaYbNV2bkU@e>_9x+tZI%?HK{=#1p{OK3BmumdQvyw3 zWY7dpW}*KWb`@{I=`!l)>9S9J>0|Xs04G7%zUKbhE-g>KFpgw)e+Ni#eT#Ny8fg z{C_nrDsxiQ9(8mSvlRrH#uvKlFkS%oZhmLwl>6V-IE)~Wvcn17v!tFo((eIIHk4w- zvW*_BA;|#=IT#G216~hC0-eL-Oz7vi|9ejGos`Mr!Xi7-TY#j$M@4%Bq#8G3XuM~u z|Iem=`u`AaDdtTUJByz|Sx-OTl~`ZX;*OIu)30Z0{z+AiEk+KzFtxT4yU$QGv>JgT zfDwx3BM!h8@e*hj3duxa_%;1T5G?Usp3Nan*b~sdg2O-F!h8fb-+b)QN6P>8rC%)9 zee#;};2ZB{1rlb7+zwitjj~13N*leXpkOv}xj`byq6yeW{*=T}YhkoqUZsUlXH7!fxA&V--yZLS!*~$DIOP=hNvgvDVo@y!5moA$O3Sp8qMz z3xG>(UTR}GA}QkrKQB)LM?K0(S5efS_NJAYlPGb)VByEr&u4@7 zEbT2kP5a>O-&%g~Zm%f+-vi!KKK9VhS&+nHgSN6*waAECtM(JJOk6|FS5QY1jfgtx z0TXCYUv-{Xo(@-NEDg$|OeK^n+8AP12((e!|Iv#YA~9GegRYlL0kw zLHf60V!Uel9DFC`Zj!5z9^>DgW>1H|-T$oIKD$*9Kep#o8ln1#PJ|DS@l(PxKE>Yf zES>532O9L3S{<2L>-0B}O6+zg7i30)GEX3Kg{q9pcuoO>cU0B8u z^v3n8|cY!@+>AL8IlhN;GgHg=qQ7BXWtC0m=`18>bd)I?(UcZ@u zGl}DX)Q~aNg?~B&fEr*_L|FnlU$Fk&vkS@-mYzkW_(iJvQMYO#M1gvbPL?EWQnJ;J zB1@u4Lde@x;}8BnxWrEhL zkGsG4+Ls;qwrB9u6ic?|)}pkWqE9UTbfI1rwdS;vmLFHCkRp2(YDId369H0E*a2>u z5Jq}MBaiA~P1XZkvr&I_;JNbu-6!`h51Tvz?lBn*jgJ>_g># zlYf44{m<1T?hRJ-*hmkuSXeR^s59^0n%6G|9SM+zEyN#W=|M;dh8n;*6g}BOs^E*) zzl@8UFPQ#I><=zW#UQkylWnhak=jf^S~-`C*f2Ktd>(%X;^D__Q=a~cG-p3|GWg6- zb(o#vzB~)_4;8ieN2ldsh}ywTCgT`ujx)44;;#aLVz=iaBW`XCR9`1dxoCqrXec|2 z(u@kP;iYBdq~naW0RFVu-9MY$^`h&09~y}2r0;Ep256lW}_ zOq2s<(5OEgnGWiFMNByByO&;6{^r;_b&+24Ajy^JP(HYJ2uCabz1(lzCnSFi5HCYro^_?kpa9$u>z2Tf0F0OL(RI!}y() zsh>$nU9}x_mmN38AN-KxpOfzaeo7eq+duqRokd#qG4TDn!75%(wP(BHLgycLn-&xn z7>mlR)9r{d@gNYs1~FqBm0A~3RI9KQY6(_g!l106DhKZj$4=Rf>8^4J9|F5%JC8(g z_txI4%eU{kLW>A}Dt5&`+eInSLKoGxHvRx43vq!by^9^70R!16Vo?Er4JCYz&+tS7 zUyHR+K@AdQDJyd}M5!6)ItY?^o>uTgg1Q!Kp@JG@)GuG8FEh8Z<-`oG6Y>8JJS6or zym0alXTOf+gCA1j>$CNtUkzNAJ~X*Oi_6w{A>aw=XS+bifM!yT!KZOR0ZiO$(laa= zn5+so)GspOz#Dw}qG~X3K}i=#B^DCdzhM2m*!hg<52%GyO*@n_k1DM=8UNd;5F)`8 zR13A#Ac0N2nQu`2?DxZ1Rv1@X`y-WVrY+-k3*MpT)U3@?=9Mk&&OA6z&Hwgk^Lx{l zCFYqF(iPyi?CIE~4z2iX*AjuNNJffJcM-%dh3;J1jYVWX77@P1_`7gA>j~xCcR#xD zC@)Rz^|PGg!g`1CCme)}m$YnKHh@Y+AZ#s5X@fh-Jz` zYoLd{;fbXrostNEbu=s`jr!qDxMU;y|IyQ@m3JQdJq&&>DtuOj6T8EmZRhoizr#ni z9zMB>U0S2#j{4t$&TA*Mp96=n1P(aDapy7*>M4i+#IrE3UpO%Xjoh+L>xD_|z9rhC z&}QNnqo3bNxdwO3<$I~zPU|1zpF0Nhh5KN*pb|F0^H2xWtK0bQuSy3T`;r|Rz;-<) zJ$$z29|lY6?CqG>@1`;y*Gl!yMj$OMc9s~hF_HJIJe{?R*F><0T-qIpJaX5g@Rs6T z@|h)pOEN;LWU)-SK%oODSC0g+fRxtgkzfo4vg8uxkqA~0RsZ))m3!X)cuk9#q?laP z*u^oiYY`4epp`|^VU2{4 z-!&>BArl}N6|71;a+Z0^BxQKd3mP=o9CM4(Pv6{ga;ct4k$&i<^5fZ0G7`#e&=34% zr0k61IvG8Y>CE+iYFM2wKtDQ+Z)RZP+ni~1O3gg=<_Eg6-Y5w(79>&0dM+G|H=N!806+jqL_t&}bo?1ZQH+Eo{C43;#240iB*ItSw0^T=wW;w(j=U9GvM6ue)Kl0; zI8tdqs&W(1CR7~cY&_xKN_G~N)3oGDX+VTAtu3KPSubtWpFXl%?T?M<|4Sy9mHU@( zDW91A4Pp?1tqD3}1yS(%^67FbzT|j8x$6n_KSPSK!^Ew}2V#S8RD{96V0jv+z{tUW z1?Qapl%qw*!m^2>A+oqDEC+J(ovQxn49}!2zmj6Y8Z>Z>|L}#}Qaux$>Mj(@{mqYb z@y3d+6F)7#cKqYrV0@Zh{SRj4XJ`Id;fpTQqFz55(a(Q0NpS=kk}-B&A|@qp{xbn@ z=-9cm)7M0H`0lL7@4l)$0;jWfOnKC1`TANZ1#&@&*!Cel@Thwfg?#wY5c`%~so4kp z)DMW{xpn+fq>f_1sdtFs#jKe`YYu}9Fe8MdHX_-MxTfM-HjK!A6*j!Xsx_!bUNKb} zaTJmOmU`7>1uj=D=?fN?nNkOf259SI$Q|{|J7?4X&sus}`42~b5Vsa{Z_Ry3{p<>! z8-M@o&&rd^bEDIupG3L3|J829K%T$#QG`r_XdJN!M^TO*U@TXw4!MW=iPq@_UYKWt zV$l(tw2)+-#;JCi`nTe?%&RAOCWYTgu?jZggzO*VU%kQZ!OKJNu{QW^d)`vK&iLQK zuRbO&@+xJ+_}`%*!xR)QamywyPnUGMnD5?t@`X>sySMOyM_yRhB0{Q&co^md!wUy7 zN{Vg9m<^`=@&V#~#(VP>|D>!AiB@#+&x0MtJ{dvg=e9`C1R!@BBT2S37;+r{FLOZG zyD-3F0nD>xIoZ6B8trW~!e=#dO(VhB%QLNsM*W-1{}+|Jl`EH?S>Ao@_sdbd7mP>K zj22G&+}pfiRe?Ylq`0#O^2}}#_rKx<2i`OeWe%OZ6O8;i7-9i< zP7cIzNRWYEuqSxkr0EY)Vqlp`k~O=SgNv9Ete?96Wjr&%XHxipS?X$X)$G_&tz4vj%HpEGr8{vVPt4iR{?G5zFH*mBDN0uy`_Ufz7kZTU{t_M*Z|cdWsIJ9mk52{lwzA^#4{&rr)#lgZlKa_HEQ~1UCBl z2)=RuK0LG1r}g_E;ay|HlRNjgY#ibNyH|PSqWHiexdsmh5q%(1&~^IhGx^5ObA_kU zNQ2=-59`#Jh)!Mq7EFN;!^ z7x8c7!Uv3d+MMxk`)9m=UWe=$J%~Mxk(5jS0O$B;h4Fua`bq8vvVi1vvLuw+65u+H zX_c^*B#6n@F``UyHl7U!iDNz{fko` z%<&VnC#Rp%hyIs7stwhulcbyfV}v!Lo|X)*dpM^J(qmmD2}2sE91{pZMQaA)8b7hY zH_XJ%jlrXS^;`I;`7hiAc%4K6I$QpK?(|jIU&m`RI{j?t63&nRUAaNMrzWr4|7^bp zQMO+f+6lH$+2yBFU{~5toWn_!CN)xi0wH6Z<&^8A6u`Kbrj)`?UO(U5d<||`(6>J* z3!<7H>UF$UsM@NHaB7&UY(unTn5l&!S~MiD_N!7!Hobn@Mf3Tze7K<+=eqq#y86{e zyVG=lZzTWoZmzp+y+`@AOMbKb_5-dj7jMIB@!*Iuc7>9+2cCCtk zIzp3p&>^IC^eqiUK_>9Yt#~^X{gCHoHUCQm)rM--=ll;#sk#yMv<)24d88!LAW8`& zg=rNwcSyI6UXggoGwSc%GVfy713HhC56_+d?};0X`6grD7Ma&V81D!1%mFXtJ1S(| zI{i-)?u8+GV4Hp%U||j%0zx{c(2zF+HQcYAgD;J1FPTy?=y z=?t}$H-xC@Dqyq;zlc9RiR<{U9OCu05>wARr^Y|UgwF}n=`fBX4W84{A9_=9>jv4B zn|c51mSUaPW&_wDHZZAAAZL?J&&j}(!;sBb8oQq0Q9qosN&WxbOW$8Ubo2&%v+qa* zu_uUsntihDo84UYOfFP7tkwSv34Jh2fyc?+3yQ}A0}&MbX9y`U$C2MlWBhrK5Hz9dWcBmzq~|XAJ1J@l^|K&(WBjY{e>ZNaee%)^aK6~zVsNx`uWMR9F#FRx?EjqDxuANewL!oT&E&Nu zf(e-hl=2uriW`*4QjzAS9PP11pfXbt@prQN`Ly>FC)bv{%;K38wjmpdQY*6|NXVkp z69$f$z>e{cK3dT$?bC9@nWt#ng<@7C59zy7Gw%fv<;)r!sn zod#>d#@2C(PXuUkvJk45r-3xUf@IX6ep0aX{z~66-(dc~a`Frec6?i$z0Ee`^wVMd zy=V3Zci8_tv==!x+~eYTVcIPjj4uM27)Nr5%Qvpy?5M6fn$fZ{y&BCbM&#~+Hr$;~|AskET07Ch5nsC-e)#HUe^dGT{ z)Nf&-w9k&?e?EWNCD%MA-0%)ri*>*TWDq!nQE8;4RRbx$p+qt2Pfs!5oc_o2!R6Ye zSLp5*Tfkd*XJtRW=J$`YPuW2B`+WZ^7JP!re0;g12O0TsumhHeuFB8BCWOW82{B9=_~o4Zj;X|TAt+n zeLRt~qwEo4-T4RnTzFEZd!g_Dkb4gOuQpM?76im{?qJaHLHyAdbOz(!G08n1#Xp45 zBNNQdj{k647`)=3cl;+WDCyiq>bEe6olD2_KkY%H6I^2Mwzr{bOd|-}f`M6smYkLWOhTf9PcVMSrTT* z`a`<2Fo^O8a8??GRI#YQfP`l*(k7@eHiC9|MpK-GMaA+^6C$ysNq*+7JnFaqs!QaZ z^c(Z$tDscSxx6v_|Lmn7#_hz*dJc=%F?b*SU$5ZfUfnY*Lp!*SiiFN@*F9jX{=JXp zMZorRuxh}P2eQ*@PQQvDz=-E_V3z0bCSD_ze9%Z~PA8^+3tkwR-$`lhhYpW&h{~1( zR{E&{)=62@*!XFA>(e`R{KI&@rezyHZ<{WWchYanC*|jsukU=eQT>nji_@%%ImCz~ zE(}9vt5^@1;vZFFVu7*6gdr);VzJ>EAWU*n65~J1i_~wKZgI3V+pK0ae3nQRi%K<* z&Fzu}<=T{EDDyhN85A8CE47Y7@{1(3hij9q(kDQesoH~?^(R#a)gMI3-!=bkAIW!?gQNpPybfDo%UZ~vE;e@DuS#?WBj>axS~fX9Alr_N%V4u z4d12jj7Q$0c9>ue`|{yaH9T~eKybAI&y4>wqcV7D*>{-;$@v`l7LM} zsuamjfE`4N1~q+fWy>pfqfEV-n*@9zN)oUMNmWAAH0nRo{(tJ^g%~vL`|JnH{_@`P zw%QlHehnpbj!tOB9-3DT0P!zcz_nNi3I6N_k7Rk{qZ^$Ka-MimpMdHniaXEDs}WJ)f3j+pERZqt~+7;v;Vn3Z^MVqHvjy? z7~@|Tf9hyN0pkyuuq+df*!2nBi1X}!(kXC&WdZ+s$6ff!A}Iks4G@nbGA&BKbg+q0 z$hgnkVCt_WHAlO8hIy;g1|cNvlkwUFVvv!~NJ+rPk_JRk@uVP%DzAf4QrF^9zumT( z{LfPu&z$@Kj#jp7P%sw$VdW#`wsH%5H(~=&7^Pu_PG+71hu7eVWTyTHonnGcAY0_3 zVwsf8@uMz=kM`h5tFm!KPOz(oj8qbIJpKAk%H)+2?~Rz}Hk7D_ST^;{QMBsNe#1K$ zCEY3GpU-PdbzAyox4*?7q6?F~Vk`ncH=n4C2;uvzZbjS~Vz>&O(hI z3U0Mg|7P|7<6L$m`{~h}{Krwj2Uq@FonAu%aE%EQI3N&hvD2mNBGrDbB&2ud zSdwUL$b&!1)in+&z`h!3IVeeDGEvrXNP5DFq@o~7{df%^Ug3XjxoC0^VZ0&zS}EgN z%0&>(m?KU)fT7aVYDA@LwL4M#%l}+d`gebAR{Pznj=$(lWj=ZlmUaAE{IUB9Wc(Y+ zQ(TV!ILXC*C*X)3CeY!}@y6|<^}A(jDDIk(ac$k&&5LFl*AXWod+ZKa*jDL9CPLYS?f0Q~5m`&R$^cgxS1IT{rBQ$96F9E99Pn1zkp92-{rueZ4N0I*z9p>BaA;Z3jg&& zJ^Ko2Gmd}7SNd3XxZ;N(X(yvCVpCSm$G_PGNh<)Y-)Bs>hJxr`TYMq(;vWH zJ^o_#(bNQhh(bacYlWF%uWO{Z9G5IBlS z5?VNsr01mcA z>OWQgqiM|`Hd5xK#c5y;$bct@r~%8m^L|T-pb{Tf=oAc|9PE|bIBk%$ z#tWVpi3|}|d3&X$dMi2H=x(oofr0~OE&WS)(D50#(LhORKsd&q{n1?Nx;n*vCqV8R zY=cdFcQpQin;g}Vibz9`MWM2Z{LdqcjK#3t&F|xn;mCa-6Tm)}X*78O<&QC~6(;TX zqCpzPzkEWRNRfF|EK)y2BBg#8390QCuGI~XTc#UP5NJ;?g#hd2GmzcVAmgb9iZiL$ z)d6qpy{2Rcu~8MpsNWuy8#lNApD=w^?1A!*u1WdmtUa?*7Yz&$juA$d&o|>`6||jj z21NWAM;v^nBOX5;v2e8!Qb6wEk;NPHkT@5kz{a2@3nW4ozvpqy^ksUnAw^5RH1&pQtRQ&3l|d_+qA9Jh`~ z0yIW=VbQ@4yyMRc3*lrWCz8q@5(XH4I{GEFbs)qZKmKjMbhAY*sTPg2x!$&+30m&% zDbZ9X`)epGFv^mS4ya`nhCHfqBb+I@9rfqb2xn{p|MOMxeA0d!-ko(|g72)X#4{`E zfA^-%006? zM8Qae%k;_&Bb4%qCzzXFKNpqf;Y*fA)+hrJiOs}f#Yjl4StXba5i(?D1`KslTqNpO zGRoySxn^j*m4A+IQ;$FN{}ekPN^^E?I{Vc@(XTpyj+lladCE&z%)T}LqW{^43<={| zMoIEaz~#u(H|mOi*3C2FCx#h+qL&2GFfdtTWS*>k^@rqP6HQT-2&t&GLHyTip%TDN zqpP6Cuae<&bX=jdObHuEN4iB;2UW4q)mFF)os&!Ws2@&{UpBA*pEG&6J~PbMar~8@ zSz*u4^*?O1nGOOEnFy;KaYVrlgTbRXqHjW;f{|6gICzzFgd>Fued^8hTXD_jiBo(h zrQka$R&CnYip33U@Hx6M{^{FvO5`Uo{`FaEdN)NhPj9O6@BM_%e#Red(fr3q^3P!y z@#xvAa--5L`RNJN@Ky79k-@BNxjo6-N#=3)H7Z+4I4lQ9q5SDpSO zjR+n2+R9<}8y6Y6jw)12{|Nv>#lM}q2>quz|Hcktw49yV75fN^rjnv117Qq7+}Ih( zSI2b91WB?8q?MMuNiZx{Vo4@laW0}LxdSmUbdiy5V&kyRFlCdoMq8#4FD%;*8bp59vB8mvNB|?AbSi)#btH_a<@`>{ zI!-zeVI9s!UHEz^e6j=%~LsF@2Wql2bd+)?zJG z)&|+Q{=Z`So%nX&p7NfR->qm zG3%}z%Dvo6gq&rZa(Tw|rPLe_a}nE?)DCS7tHoN7ZXz2b%2EbI=9VDJA?VJnpZ%^k z6w^OL$Alw0&(>lsRKGXKx%9sc;9ZIiWVD5#Xq>Ub`A=&K@XEpUr1d$}amlbcqNXuqd5>{-;^tFq^mm?8l-qD<-cxhnl@y}S=?;{#}L~9i!@POX&pR$p+pvTy% z9y|^G)XhH8hJ~(}Ft^kw>%?dcAnGQI#!EuNqOxX|!h5kOLrhBYV2_$Imo0A8FAu^c zcNYKOZ}KhWUXuqXV0qU{UR>0XiUwf#LO#Jp10>@NIsfs?(*}+s0wU&+Gcn^El6j3( zw`Z~rS%8##PA(}A(RWhD_=9`oEai375-3-@u>!m^R#U)7(OM&$OHs-^QZX7p|uwt#v^%5BaaT^pF3FO!B#XVs0##$-XqB(^q*S) zqlIdbVuEI5U3REW6PUam6a`9m2@}$QNLvlYHuNZys{%9XPZ!z4_Q(0|{})YvQX!SE zm7ou_SEK=mvMUN34Kv;{sRS>{QSg%;<~1iO4li_BlNfsGR zISF8?m5FJGXRINO`tMZ!-&6L=Ufl}m2yjd=OcYSv5sacIqD&cx6i(PMZumwW*ww49kx8}=j_+bfV2&+yLf;j)_|r+yjhLhtFhD#QWs)Bg~Wo` z?B|X2VG-g}M<$G2nt?mS2Js(_8QRZS&IBgLE&%-w8Lv@l-8m!rqkppr$LW8Z?n48W z>JY4~oh2HONyl6UkRYs0DWZvmO0Xe9=mvt$QNMgbM>fAyP!u$b2f*{f|B4eFRnTyh zwG7xW*_v-9reioxdCf)pd&+C*>HM?C88#tG4Czlvh5$ab&6@<4JdCMyjK2*q{@CSP z@tjKbR|IVpm~FdVjlh%F5|yi3cft!8}?J4 z+6fVOyX$)|`FkJyFFi}pJ!0r&eAJY1VDf%9SB*}IwBnEjDI^f zJ%T!908dGI3;vAv&+C~Oj2`IL0+Vt{c&hrz>jtubM4!B zG8CiX%oE1%qpE28|)LoPQ4+;~g4`U-lbYqogF8AnK{wHSJWJjex+xoNZY0hcshcUKamMT^`>U5_T zVo@(aR@VhC}KpFF`g%*1U8-jaLNA8wH| zqHOo1rv=!GDbHGZxz5{< z@dszs_@U43_qi-R8(@#;Gd2DwH(%2dtvRdurEKVi)6=i`;{?p;gJAkQmkr*0G$&2dZOlk%B-EpJuWX=(ds-MmfWYTKU&CkN?Wwil~BeE@Em`va;=kT zRvh*c6UpXmY;Z^y6<*wom<yqqokqeyCeVg~96}*RY?IIvvG0R`ANZh)K@;LsoW>g6vkv@uHCm?Z5EJT0k3aM5ZFjv}kzW?}qeB?O@k#`uXP@{&I~MW6CgW z)|vlwJz`P*r>?b<2Fh9pzk>u{!x3 zSj{2;gC@x;pQ(r2(9Jd^Jxi?|+{mKT6OQ`nfeqk)AD*Kv=>IrgP%p9{y}YoYK&v04 zGm&WrMS1i&7+CU-3lI?)ekSGGa?x7fN!bAQ*XSJMAEzcU8LJ=Fhv9 zVnH<$AR&vAWE&XUvH$HLx?{od*S%_w(pzU}g04M6T$ea{K@dk=$<+uFp&;pmbVVDI zQ%SN0fyLM6B(~WVJ{nHWb3NSD2OFg$Q<3|`({NI4|* zT;Wq{yC)ZxtNQPxm`Idk{L!HsWBjqte54W`giPJt_m_Ju`pyJ7&8#9z1mh+mLySG4 z0&0K-Nf20kt@f%_9_Jr*P`bHyEB)h-bXBi;54$T`q_V%rrRN3`h)o(kgyX_q~={7Z@vTYRG8A_s(Zq z%L}Hj0dC2mRry`bZN{+cu8r|WZ=AjO4nqvzfXTL zfH>%wYG1aYS`k4o9Eb!qh{d3;LJsndgsZ#~^RC<#Ep61FE@}Q^sq?83*lte$`}hLe zc(0dt0I`g~94#hr0DWNVKqrUrP8cEpRh>>q`yDg<@YX{oSK^tJ2USchjPXZ@A<=p1 zK>AZa<@V-T9DnE&KK!VJcARznH2z%Lf1c@&MFj!W#$`koJGb+68JPW3OXR8a8}meD4%d2?1#YwY-_M{hSahe1OoOfZk7E=r0sIlHCdvm`7k z_9tpWB$hgopSjEb+tTj`eFc#a*yLm0^9j8${nE5r{HXsF{U3`;>oRv&ZtdyZH_jN! zJa2bnL}Z_c6O~#=A^C;NIH?V`u1cS(QxNjxPraFs`on9R*8dI$TA@3z7&WS}&)Ms! zz_xsLh5fE;FN_V8`C5DCdZ3JT{I<@vm1~w>R(9Z1U`iArp{|nNsTNeF+SSR><)h!8Piye#=7oFa4gm@$lOw^}i--v|T5(bVLG+e8pZiDOPy&!O#F5_graen2Qn- zv_E_>St|D|`JEJ?A~kwYs}ceO&svSzG5*3UEldAp++}Wx@O^p^Rr_-_KOv+4|zj-g?ORlQ^ zn)fT|H>dw~dILskvEXcje_n&9J{w0Ytf0@M&-8kvXrmua zbdZaMwxHmXuACGnc*Jpgxf-vu*E1=Slp7Lf+F*O5x= zkU()+cUg?xU_g_j)$I#q*?c3imUNW?rj7c;r{T>EhT)WQKKq|B;wbRxE!JT# zK=buX9F(IX%NtwI`r_7c>pOKdN7=QFxdSe`a89|N6PQ`)x>;JRXpyU@jO#u3Uyhkz^u4Wz^qyQT6v` z_rFe2$TBP#dH|9Tb~=9eZx>A&1Ne{Ew&e0cnq@qb^33T=LkctU=T^lCpE3T%@s|?| z;$xhDJUC*!Xn+AC52c$llsNDL5Sd39*@r_o~=hj?)U(08;HfCSezv+Jhul zXsgApPPS-8oeW6VrPj!3%c$QTl^f4r|JOwWLCd&hWchg&ysU+`6VBj>ALGbN1L^z; z+GpXJlY*x+^UrC`KU!2Qp?7Ug?&yGSkg~`<$x6wQ ztXBEo=j_bXdT zIG#zlcyfQdj^(k4iZTAeMP7uf7vY+k+87e3xi$Qoo;QPP+=#95j^nSzsP=5anWO(5 zHyo~BR8UB#xS)_4Mi&SOtr#)XTKJbC#}v{A889J3B-nVbl!eL>g(lYm8*jyo`t7)I zrYGjj=YJjdA`01^j0fgAf?-*GtPO!!Wbjj!uVPs)*G^v@){~dT&1b(17~^04E?-3d zs?3cB{5byUAi6^CpkLt&JgpmF-de1 z*OW_O^Iu0jCu`JCN2OCXiT@E0U5_e0)bg++_X$;HEJY0QRV+`OUR&-mxw~T~P2X(x zkMTe3fA(gEaP8S~{BO4T&yNA1)ob)6hpM`^;pQfRuH!|MgdG3kO#lcnfNHW>RRtaO z-%0%+%LXpM`;gfY=R27A8hjuSAiAik7(x6Y-#xjYJfZ(i3d4)hlpzM1G5+9$>JS#w zIVckqNl?@~Y@(2xu;Iq>-?^^yQ}{0(1)@81{MFN60}o}T?)hbS<>`eWNDnLL#;zom z(?z0#T0#V?&JT*LSHdWa`m0Cmsq@VLS~Sr4_?La$Fcy$=VaX#EI)S0UMTTE;8v0KphzOg_Krm@{O!9p|6w5Bu`O=AYO>?A+fKHNZox z`yqQ{0E|u{E~bGXi?d(RlR{UK?%b5uDea1t*sOJnf>W|9=VsJjT|sZ8FEa;Hc;E!8 zd#_252;@vjT#Fr`#|zBON&24(FtGVVJd?(7+&0{`h#1+jmETF3URmx_9whqOzEjnI zuI(T7yC3V`fx0?i$keZ{y4V2-&Z=^5PBQ*Z(Eo=H9V$C_>?ns09&%%HdzSQ5omHj6 zXh2q#b8}|wKUw{;sGvbPinF27Zo?A^U@g`{1vN;JrL4?TCOC#5)RK9K2zVk#{nbyc zP)nVc3`<{TzR~<2?aF5clmn)*p2lFM$p`wD@P@CaPy9?u3z$|)7MiJY+MW4Ev%j_n z4a~;Rw^i^&reS1kuqu_-HaB9zY0@ps$px2J&%?f+YExw#xXc(DA=@BVJ*_U7#@ zWzI&ZoPN)|YuylpS~3q20Z(KKt{NmUv6)wF%F0~S#tuQKCG!w*O8T{^NM0wmHVOqF z0d|^dF$*m~`vdO8vQ>GM+2l5Cg#nayRoJNiy!Jm2P`GcU2x9*mpm#YuxlbnAJ95_&R?%Y{!-@jk{jKeQ~^=oD8)~)4DZ~Co@4KPA_q{iiKmF4`E`Rk`e+5G)c;V=@+;-b-vExeZrR>?gr|i3JU*VCul^CSzT+M5DBttU? z&Z=Y-7HR)#O>09og8t>z(~g$`9$n-qM>n)KxAuekgBM5RTpsKUZZWq7g${_CGVfCv z(x|M#^^?&*nI3SP($CoAWs6o;GN79N>C&_;FK@w~2VR!GZF||aeS6uyV|&?!bEZ3X z?JB$Q+s)tZy$GJ&`0XvbcJBrZ_#L~n7qfH6&a!hi%G>dMLBe-}55dbl9Q^>>x@B8h z9IXmFl`Yo(bM60A)zA1LZ}yG{A$&tPDs~l)Q}8O5=PkW5{D>?=QTe%#zf-lpS#Hy8 zmZ5oczkmPjnj8=8zYUY;{&G7e%G+-P4Dj3c-G)7Cz;EAQ_5*(FzJ2AEn{O_++On!Ieh4FIdb%9x$k}NQy%rGE6QUZdu4gVw_RQ?d-%i3cI=Te zoy_=KwEf499V<89_@VL_fAPNZ_P76OdDpw&Q@;9@FKPVImLo@wdU8r9*?o1p@AiFV zJI3|T{`-GlUiZ4!1>Am(pi&6k2LIgS9``6;_`(;;-aUH-`@$E$i1EC$yx|Q$Ul)}x zefi7Kw^Fuk+gh%_{w?K&*S*lw*?As+r#k;*QE5I8w;P~~r+wIW*u+I%F?Fy5B47eI z5A>l2bRV_Um@Ls8UuCxBek=5xenx|7poN~`?4-0>KfkMeqRiRKO5tEQvU02(J;b1&Y2n(sbsHA1ZCbo`a52Jy zvuhV}EKqy*>?ymk*Ru!t1$!^Rf`mm%3)3zH_6{v>T)-IQb-_{@GIs6;e7o9_)~Y$I zcy?w1KV#3N|4&uF_~7LH)_MOhEMN4+haLHyl&hxC#&=Tg0b3%?_5Z2ruX{}t3n5jG z>dkkCci2up!&sAcPWA^d@pH1jos&ItF9cb>ZQrfs=38zlH{Wz~;iR??d)fPtbJC|A zPyB~8`5!%cL_0u?x#i_$#o>ex0YE30++&Ef6~x`qV@J!;!$(xUqj(PQ*-*&%%%?wH zKK+?bm*0EK?_nosix#YV-RoZEQCD11uDtR)%C|rAk>#Ned1%>+_#Jqsv)?TV$?39_ zjK9xgQh(nKHwjVqd3*Wrhd%xzsv!h-`Y-}*pSW$0D7Fv z6rj-zssUCv24g#x30a)6DR*J|sfYr-q3-qcn+Bw80_c^sjq4N>i368+fCPCkAOnDt zN(CeXbHEScZV~=?c9-_&B2>vjV5(kT+ESLcU;>$90>Kd#7c(aE;%!(`#)XTM$x-aB z9mU?}6cf%iEL>Z+Z7Dl=)P99C2Y!Y!8mQ_Uz$;6-QRU z?*KiI%yy{EBQ-8qUdXukaUtYhAI)StooF~p(T9W$szJD(|4j>jPz)B2DSe|dEaiZ~ zf5ywM*#+gQrDva(e)|2u{sS?|d(Z!NOy;*^62A=#zyVBLw;ezkM*{n?5bV2kU%Bb# zo64;?FMlic_;16hlzo8j*AW5s_zz)^fB(U9=E^T$@o9WqZkRF zl+S$TGv)8`d&^tiGPlq?syq%8?6={F=AjRND2`~hpHlyG0sWgBZ!9<9G!~CS-uJ%0 zkYBfM--g8%r?KE4Hs$c)!?LfpWoSR5tFyn3t}zq$P6PyS@NdmObK!2*5Y(82P?H@*>z>toB8aiqdi zU)2AecfVIhfO~N!qi-P9vOP+XA20q%ySVvpIhCEDoeD~I?`~JRqRj;egpFZ7t?W(SQPW9Sn@5TAPtR|oC zK|3_#d-%M^8y$oj8zl$dvmg@(CAw7i7kva7r&oOzv;>hO$c1#O`ES@p` zwz@{BAMUufW^U(#oxl?%4gL^)nGn3x6RgAb>5&?EeJLpe>OPCCi-M%J9)ogpZoE9P zl0O#LR{1CEVLtpi7t5jXm)HK4Bx>Zh&8D{B2;X?|Lkf0Rj$5gG3PQhtK<91N{CM8tLAK-n)|6g_{p7 zX9Simh5ME+*LTNxYld|u8#$%?#AZ*SfwY8pUrFr&}!R<&Dj&};fFd1`!EkH{pP5SJU_E4nXD-}IJcHQ ztH!`Dp)`c=ce;NzV@G={OX!^CB#(EP%gQ1M^|0^Ob+m()-)li~6ZjW$U8eBnYL~H& zB-PKl&{Fbi^QJ(2jHV`7?8jw}ok*5leU??wAEHKb;ZB!;X;sDvq0YTXC=ugvuKP-t zQ;XB^%m-I~)II()N3df{Q#w*P-z7VpAS~UwZ4ztC#s~QBI)tp` zIH~K$r%x5Y0zy*;`%;d3*8Hzo>VpH7Qm87J|=07g1`M-60xz;!9 z#n!9GsL04IERVsf^?5ZMky(d+sZ(2oOhnDwba@ghKE|9dX#gDMRjoH;E;Pj0!9y2! z3Cc1iP#dxI67XKYqZZp?+ufRW$-H2UOwCLZf6wL^^u5h(ZGE{QZ=P33&}D2g$S2^h z1Z1wo+j%=W{FKDG&GqL|buTtvxEpe4M;-Qkzpr+w#Up>6wEeHJZ%O+;ukrm!fIpv) zf08feKxwC-A={bWyrW5m^Xw#)-0No^w&C_S#S0z>=G4S5gD>$P=$^z7lMV~VhMJE# zw~cQ}Yu`(o_=KusCUyXFpqNW%lD$$?29Fj|&5AMQl_}psbTSgR*EzXkYwW*JSP4FY zs!)$>I(g`F9uTSY|}SMS?ee55Q*DwKLXhngi;{ib=WdpfaKwZlZfWul>h z%l!Tu&;ES~A3@KS{Bxe%tuIyvH)eK^@a(ggX|fZR{CgAEq)SGNSDwCV_P}R|VrEZk z^mDIY&$SrxB_q_<+Hez+d^FkBeMf^{s^_={f64JsILHg11E4?&J&hvRAi<*rJ=l}4 zoT zhzez!o&UX|G{$$0Czq0!?r$2AH|%#&BRy4jU$M7z>}59%cy%Oo9YL3w zSv1jJu$IY5906t38o`Ik$6N5ahOrvE=?rgHwD%;;@drFME3Yro(1z&e22nsTdd z0?pE)Wb?@qWMxkRW+0Qhz>qORcpW=DFba<5^%9k(F@7}OiNJoG_E(M3 zncklc_F26(qZoBfGe z&%~a2!cT~E<4oiarpGKy@|SLse|fl*Ri%`KvFb|-g!u$JCALd}_g^rMO91}=}fh4M?s;Nz;9??qF`tmF|^*e`Gm{W!P+DBNz zQUSYuiT*BOS;uj_vsnnHQxGc@*sfXPU`L&I8!~#;6VyKr3IonhHOk{A;Jat-Rz82- z@%L%W_8a)=y4;wyzT!)NGgeUj(#}v!K^}PIcpI-BLd)QdC%GN$6~0SWU6S$>*Su?pjm=^qm8q-q0M^Q z1P0QtCv?y@;Wyjc-pN4API&bmC1cO6T#uDd*OtC`?}MSTW1I6ZVZN)5t1dTR8S4|D zb*r(iyS18Fd7p+YDHJ7^XB~ako`;jn4$sF{(mj^{k`w@&l#(C;T0N6hYjqK!|F6;( zea6SM;#pycxr9()|#W}S_6Hq`h7q}=CF zEGXweBi6WJ?JbP8HBjImBBIF(my;A~9pnY8X6P(lt~1F@dXzY-Cs2*i&+6;L0NDN@ z`_&dyH#Bh^a{|I4J9hzhOU*^CFbFve()Z}thi^Ndo<6m~G_Zt?F-GmYHBG~=&Inv# zCP{oj$g=PT%K)fT$X=`1? zq>EN}5vHKZ--8rMo@U{DRA=UtUs%(3aHAI36Z@60)OeL%&|Pezr{(!7hKRs6Hlbcs zbm`p#rTDviPQii`l5nE;JWg0(M37pdzGe`%_4aaq&somjuZYsku&l`(R0NhZ+Hlm* zVWk>a&*UPNUxq%B1>Z3>ceE=HWx=arE~AbBVr_a4vqk)LOXpWOT5FQV&nGWtsg-k! zQUFak?z<~O!`J<@=W5;%ib?)6qO7G;KFYknoq--!-2t&lMz7-1xAAI;SY@Y zmAeM##n8Vd!>43G#m|#vhgRX6|1#HOQLfNNU(ev98mUZr`F8_LQkZUmZZWX#BwWG# z_7q=rxpE9re)>7Cb(7Ds z2qV6REN`Bin^nnfWpYpIsVc*3{l{03tWywq#@zIULcDX^-482(ktR=L1MVg?#D<{{ zVdl;&@43^qb)wz`Kfg(;a{(ydA2jJXm=6-!tU6`;b+y*a8pP5@2j<)M!{kaDayUN(5E}Yr9 zg}qY#EmKtB)JAl3+kFE311z$L7Kx0O25VX)Y3HTJ&}!_W*885=hX5o%Qd~t2*~g`t zS)>kB1rRQgZ>7@Ea+Ew)5()U1jf0bOvs9RMNr*-d9YiY{kF#F;WwM> z#cp$&wi%PB0!-Ox_`xt64UdZKNBvRfXj2s=xhe~vmHv{ulFG-ltvErs&&6LKRCU~6 zj?hPu>16#V&|Z`0hr@TdY9X;+4Z|wkpG+#(RD@+8=PMJ++3?njZdR$Ba=h$Tp{b=` z4`dTxcW8hmy#dL=S`tQqjF$}o2Z`YDtIVW__I=wa zbJ@sks1AD`{biI#{^|+s7q&^A@N_xNwG9Q#Yn#?xm)Zzf-+J`l_MBStb+H`ct6;M*PasEMjxm zNkc1K6y1}!pII1v6zec-NDYuuyzOd4DQ@$NVm@0&U-yT2I`<^&N{+~IFx4yUp%p(zGOo?WJw+#1!?VW|=pcL&Doev`%QJi083pP`j` z7qR?K=jcZ7P4u8B+u)9t38*!c&qKTjXA>6G#q^(@o4e6N7g^QJk z;?(j^5nKtMdg!Viazep$a&j94n2=z)WfUC+xQjJuWiLn)r+?}{1IGXN)<5Q|V`>2k`V zcD11G%{rx79(IVt{YX?mJDG*S!-ajcFQfI`xw3VO9f3`h02iw~hQ2D2qlZ&!2FVr< zWILJGQWOcqwyTdEYbzK4?4@!;30D#3avRk}Ic!xyg{F5Pv#k?fdeZ(ynW zSb?v5p@f=Pc$AcUDU+Igx;sGAL%d8k_g{A<{>mGR)2a`Pm4`#v;cFw-r!9{_)v)oY zAB%=nOXJ_`<14jrj~-w(fh!1F3K*mb@{YRqD6*4X+63FUa*d4 z+;1fI8pL{gN4%uzjn(YmumU`X->Y>^T-XeUOUvF6=2>!LkAB)+`6-o}OTuPU{q~fq z-rdJg=etblrOB_u=F-#L9S2V;_x38a>B2ubT{wOG%Yy4A)$Fc_ZrP7 zajkpR;&TZqvFZd!dvD0iX7S`_cVh&r715MoH1_CFV+^hw&3G%O3n&6fgX9aWx=@#X zH^`jX_qA9%)a*8R*2XC~^juiW(|*u7Fyl3~+vt}C#u)w%;H1NBvJGm~OIZtIeoi%# z$$?-kfuT_*#%7mlPR0274vUB96=E(%#uAELVx*#BsB6a3-N}3t>%%p{1pJn~YQ^SpE63MP z)_uNbX!WBnq6Ko}pn}K{NClZGF8Hr+eBK{R=a)6_cOjIrDiz`KOX#dK9KYzngvomC z*#=tQguK%#c@L=>&16r$8zBCZ$nZ+cfq&=?V*hem&5W4+gmT#ZJY$BR!qIrh0eBXZ z{oXODnO>0Z{)~|rzk`XF?aW_)%XTn8v~b`RQ5(4QfQnVcT~#xbl-I%42sjp$mWDxs z25k?EY-o(u@FjH8c$k zxZ;+k)dq8>dnFqUjXSYyn5~FU(DAhH^H62|n$QxF=zxCyIe6EhI1_{H(G~PtH$a$R zJRMM`9;89evAmlL9ZF{WxV7KscT8}eHFgC&>kA0=Q1z+2hHnVJ=JRHLObLlXf7MvX0}n-jHO=D>Gy9}J^sO#U!qywhd!KuK`(^SqLog}2S%AZJcfdhm%6;ahN!oy6OJ z#>*z&h>>URPOCurdw1`eQl>T2Um01-H@vaPy0TWqYffM^Ciwqjt}3#&^%#aL*^jz{ zK_(-w1XaOMWI3I=MJs>}vLLyCWPexq*ci30H`AyAKI++2ex86RqbedP;C8$0lS!1& zw;-NX93B56Zcn-OQxhtTGr7y&vH0}K-!r<4D)a|rEt*pWr0uu02PkvbPvS9(kpnKt z7vvUQMYI%UP^-;uC4%vgF3pGiPyY@d7$ekgU>hYHy6Cr<$wuw%{0#XO&Ls}qf%f1r ztxR*P1CeGjgzC|)U+wJH@an{DpT9@5_SUV7vRUD$-C2EEKWy6t}4D)JRy{KJgGQeXeMDf)^9kw&G*C7f300;X?3e;dD}q*s}Sf z3q(uBD$~WNY^)naU`1td_TJUL`!;7k{S zF!!WjH!o1=#CQ_e2z}vPBc^7`^XFG)aCuvg67#nAviB`lr_6{l9Zey6bYUn;$MYJR zNiN^hcTNMIt}VEGZq8s->j%>|?k+}P3+|nsC3y|yslbi$rd(7$rZ@wxWCWc zbry|xaw~D>=KE9J&E{w!V8E}yuSfRm;^N7YeU|yYS**s3idqur9fZdJ1w=+cqM;Y# zONWIamN+Eu!**qoiTgSR4i*CQcme$}Wrxu=YBm)Hsm`pj&vC77_md6L6~auK0#$d- zZO?@s#Qm8if0X}9+iI0~Yi9xugpQp7JW3Kchm@hj>fum zQo}N|Key^I-g&@o8+77-93Ka`<_a-TLRR9Y>C!+fivRZXv-^&RtX0q_^9xW!V$Q?YkYPbxlK{{vpd zPvzI-`6|O79U^PX@B9G}k92{1ST5Jq2rb4NKQsFPlZG5tU8~0?Jl~qdD6W#!zOl%0 z>o}a9J=H#OKTEt3aM;{q`@ofe1o>$6{>Pb{9lNi3H)@yy-a%ws=>xm)Mf5E8Mnrav z_JAT_pmRuz;&l!#Fvd+D6-+0l19_)5ZWtD^`S-WpZ*LU*zRCAi5g*x9RuMO3@QYk) zXf50ZA+n(0#yx(z7k$PeGP5gZ&u_5Ndh8}iDhyTT4OPkm`s zR1*%p%VOpKmFqZpOn+=;8{NnH)`Xp~rNJ}YW%`%m!Q=S>eStdVb*l0zYJ7_u82XeH zWdqVb1PG@_*lLLKR1*rOvIYBm|W&Sz&LskKX62}5ydX1waxyQL%o$+ z8Yk3k5Nm7oU@GK15tfVRZ{f~+%KvMgkHhef#{Q13u2X)JwNK5+VC^<84nP)_u0U}{ z$7jm>3+t@#9A)-89n{Cd-{-7$nVf9EPzCOIYyNC$HH&!VV zV7ucM;ZaP)wyjudX+yPiX2OpG)(3Ut#3Ud1z;V8#BV>yY?t%Zjd#3GV<}Ji5^HPq( zHj9#K!7zh<_uE&xCQkf}sJ~j-|AQjR^0=--fPaGfzg-~7$rAq`6eme(+yBD_DoHWd f|De2?ya6zL3D24SC^(IGcfC>7QK@-l8~MKgT>fue literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig9.2.png b/doc/1.manual/img/fig9.2.png new file mode 100644 index 0000000000000000000000000000000000000000..e5832128d5b86f6943f86887cddc48d78221fa38 GIT binary patch literal 21898 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/fig9.3.png b/doc/1.manual/img/fig9.3.png new file mode 100644 index 0000000000000000000000000000000000000000..e682544505a3aab4a7f676f3edd7f89918e81464 GIT binary patch literal 65522 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 - - Pd Manual index - - - + + + - -

@@ -29,139 +25,147 @@

Pd Manual

http://msp.ucsd.edu/software.html.
    -
  1. introduction +
  2. Introduction
      -
    1. guide to the documentation -
    2. other resources +
    3. Guide to the documentation +
    4. Other resources
    -
  3. theory of operation +
  4. Theory of operation
      -
    1. overview +
    2. Overview
      1. -
      2. main window, canvases, and printout -
      3. object boxes -
      4. message and GUI boxes -
      5. patches and files +
      6. The main window, canvases, and printout
      7. +
      8. Object boxes
      9. +
      10. Message and GUI boxes
      11. +
      12. Patches and files
      -
    3. how to edit patches +
    4. Editing Pd patches
      1. -
      2. edit and run mode -
      3. creating boxes -
      4. the selection -
      5. deleting, cutting, and pasting -
      6. changing the text -
      7. connecting and disconnecting boxes -
      8. properties and help +
      9. Edit and Run mode
      10. +
      11. Creating boxes
      12. +
      13. Selecting items and moving them or "tidying them up"
      14. +
      15. Deleting, cutting, copying and pasting
      16. +
      17. Changing the text
      18. +
      19. Connecting and disconnecting boxes
      20. +
      21. Popup menu for 'properties', 'open' and 'help'
      -
    5. messages +
    6. Advanced patch editing
      1. -
      2. anatomy of a message -
      3. depth first message passing -
      4. - hot and cold inlets and right to left outlet order -
      5. message boxes +
      6. Tab navigation
      7. +
      8. Autopatching
      9. +
      10. Duplicate connections
      11. +
      12. Managing connections with the shift key
      13. +
      14. (Dis)Connect selection
      15. +
      16. Triggerize
      17. +
      18. Paste replace
      -
    7. audio signals +
    8. Messages
      1. -
      2. sample rate and format -
      3. tilde objects and audio connections -
      4. converting to and from messages -
      5. switching and blocking -
      6. nonlocal signal connections -
      7. multichannel signals +
      8. Anatomy of a message
      9. +
      10. Depth first message passing
      11. +
      12. Hot and cold inlets and right to left outlet order
      13. +
      14. Message boxes
      -
    9. scheduling +
    10. Audio signals
      1. -
      2. audio and messages -
      3. computation load -
      4. determinism +
      5. Sample rate and format
      6. +
      7. Tilde objects and audio connections
      8. +
      9. Converting audio to and from messages
      10. +
      11. Switching and blocking
      12. +
      13. Nonlocal signal connections
      14. +
      15. Multichannel signals
      -
    11. semantics +
    12. Scheduling
      1. -
      2. creation of objects -
      3. persistence of data -
      4. message passing -
      5. inlets and lists -
      6. dollar signs +
      7. Audio and messages
      8. +
      9. Computation load
      10. +
      11. Determinism
      -
    13. subpatches +
    14. Semantics
      1. -
      2. abstractions -
      3. graph-on-parent subpatches +
      4. Creation of objects
      5. +
      6. Persistence of data
      7. +
      8. Message passing
      9. +
      10. Inlets and lists
      11. +
      12. Dollar signs
      -
    15. numeric arrays -
    16. data structures +
    17. Subpatches
      1. -
      2. traversal -
      3. accessing and changing data -
      4. editing -
      5. limitations +
      6. Abstractions
      7. +
      8. Graph-on-parent subpatches
      9. +
      +
    18. Numeric arrays
    19. +
    20. Data structures
    21. +
        +
      1. Traversal
      2. +
      3. Accessing and changing data
      4. +
      5. Editing
      6. +
      7. Limitations
      -
    -
  5. getting Pd to run +
  6. Getting Pd to run
      -
    1. audio and MIDI -
    2. installing Pd in Microsoft Windows -
    3. installing Pd in Linux -
    4. installing Pd in MacOS X -
    5. preferences and startup options -
    6. how Pd searches for files +
    7. Audio and MIDI +
    8. Installing Pd in Microsoft Windows +
    9. Installing Pd in Linux +
    10. Installing Pd in MacOS X +
    11. Preferences and startup options +
    12. How Pd searches for files
    -
  7. externals +
  8. Externals
      -
    1. external objects & libraries +
    2. External objects & libraries
        -
      1. what are: vanilla objects, internals & externals? -
      2. what are the types of external objects? +
      3. What are: vanilla objects, internals & externals? +
      4. What are the types of external objects?
          -
        1. compiled objects: -
        2. abstractions: +
        3. Compiled objects: +
        4. Abstractions:
        -
      5. what are external libraries? -
      6. what are the types of external libraries? +
      7. What are external libraries? +
      8. What are the types of external libraries?
      -
    3. installing external objects and libraries +
    4. Installing external objects and libraries
        -
      1. where to include the externals? -
      2. how to download externals from Pd vanilla? +
      3. Where to include the externals? +
      4. How to download externals from Pd vanilla?
      -
    5. loading externals +
    6. Loading externals
        -
      1. load using the [declare] object +
      2. Load using the [declare] object
        1. [declare -path]
        2. [declare -lib]
        -
      3. load via path and startup +
      4. Load via path and startup
          -
        1. user added path -
        2. startup +
        3. User added path +
        4. Startup
        -
      5. load using slash declarations +
      6. Load using slash declarations
      -
    7. how externs are loaded -
    -
  9. current status +
  10. How externs are loaded +
+
  • Current status
      -
    1. release notes -
    2. known bugs -
    3. differences from Max/MSP +
    4. Release notes +
    5. Known bugs +
    6. Differences from Max/MSP
    -
  • installing from source +
  • Installing from source
      -
    1. requirements -
    2. autotools build (recommended) +
    3. Requirements +
    4. Autotools build (recommended)
    5. Linux & BSD
      1. BSD
      2. @@ -175,11 +179,11 @@

        Pd Manual

      3. Windows resources
      4. Windows ASIO support
      -
    6. double precision -
    7. other flags -
    8. cross-compilation for Windows on Linux -
    9. makefile build -
    10. reporting bugs +
    11. Double precision +
    12. Other flags +
    13. Cross-compilation for Windows on Linux +
    14. Makefile build +
    15. Reporting bugs
    @@ -201,7 +205,7 @@

    Pd Manual

    one-off and abstractions blocking for signals data - + Making Pd work how to get and install Pd IRIX diff --git a/doc/1.manual/x1.htm b/doc/1.manual/x1.htm index 86472d4ea..a83bbd850 100644 --- a/doc/1.manual/x1.htm +++ b/doc/1.manual/x1.htm @@ -1,15 +1,12 @@ - - Pd Manual 1 - - - + + + - @@ -19,7 +16,7 @@
    -

    Pd Manual chapter 1: introduction

    +

    Pd Manual chapter 1: Introduction

    back to table of contents @@ -43,27 +40,27 @@

    1.1. Guide to Pd's documentation

     Pd/
     ├── doc/
    -    ├── 1.manual/ 
    +    ├── 1.manual/
     
    - +
  • "reference" (or 'help') patches, for all objects in Pd
     Pd/
     ├── doc/
    -    ├── 5.reference/ 
    +    ├── 5.reference/
     
    - +
  • "example" patches showing how to do things
    - - + +
     Pd/
     ├── doc/
         ├── 2.control.examples/
         ├── 3.audio.examples/
    -    ├── 4.data.structures/ 
    +    ├── 4.data.structures/
     
    - +
  • sample C code on how to write externals
     Pd/
    @@ -77,14 +74,12 @@ 

    1.1. Guide to Pd's documentation

    This Manual has six sections:
      -
    1. this introduction -
    2. - a theory of operations, explaining how Pd works -
    3. - instructions on installing Pd and getting it to run -
    4. externals -
    5. release notes and known bugs -
    6. installing from source +
    7. This introduction +
    8. A theory of operations, explaining how Pd works +
    9. Instructions on installing Pd and getting it to run +
    10. Externals +
    11. Release notes and known bugs +
    12. Installing from source

    @@ -94,18 +89,18 @@

    1.1. Guide to Pd's documentation

    "Pure Data/5.reference".

    -The "example" patches are also available from Pd's browser. They appear in subdirectories -named "2.control.examples", "3.audio.examples" and "4.data.structures". Some additional +The "example" patches are also available from Pd's browser. They appear in subdirectories +named "2.control.examples", "3.audio.examples" and "4.data.structures". Some additional patches in "7.stuff" might also be helpful.

    -To get started writing your own C extensions, refer to "6.externs". For more about externals, +To get started writing your own C extensions, refer to "6.externs". For more about externals, please refer to chapter 4 of this manual. -

    1.2. other resources

    +

    1.2. Other resources

    There is a very extensive Pd community web site, - pure-data.info, which aims to be the central resource for Pd, + pure-data.info, which aims to be the central resource for Pd, from documentation and downloads; to forums, member pages, and a patch exchange. You can check https://puredata.info/docs/ for more documentation. @@ -127,14 +122,14 @@

    1.2. other resources

    Guenter Geiger, and now maintained by IOhannes zmölnig. You can get it from: http://gem.iem.at/, via "Find externals" in the 'Help Menu' or package manager of your Linux distribution. Another option is Ofelia, a Pd external -that allows you to use openFrameworks and Lua within Pd for creating audiovisual artwork +that allows you to use openFrameworks and Lua within Pd for creating audiovisual artwork or multimedia applications such as games. Get it also via "Find externals" or from https://github.com/cuinjune/Ofelia.



    next chapter
    - back to table of contents + back to table of contents

  • diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 925545e0d..711dd106c 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -1,16 +1,12 @@ - - Pd Manual 2 - - - + + + - - @@ -20,7 +16,7 @@
    -

    Pd Manual chapter 2: theory of operation

    +

    Pd Manual chapter 2: Theory of operation

    back to table of contents @@ -29,1128 +25,1565 @@

    Pd Manual chapter 2: theory of operation

    -

    The purpose of this chapter is to describe Pd's design and how it is -supposed to work. Practical details about how to obtain, install, and run Pd -are described in the next chapter. Links to more extensive guides (and to -more theoretical information about computer music) can be found in the -previous chapter. +

    The purpose of this chapter is to describe Pd's design and how it is +supposed to work. Practical details about how to obtain, install, and run Pd +are described in the next chapter. Links to more extensive +guides (and to more theoretical information about computer music) can be found +in the previous chapter. + +

    2.1. Overview

    + +

    Pd is a real-time graphical programming environment designed for audio processing, +but it can be expanded to multimedia processing and more. Pd resembles the MAX system +but is much simpler and more portable. For example, with Peter Brinkmann's libpd you +can have Pure Data as an embeddable audio synthesis library. Additionally, Pd offers +a unique experimental feature not found in MAX, allowing users to define and access +data structures in innovative ways. + +

    Despite its lightweight and portable nature, Pd offers a wide range of external +packages that enhance its capabilities, primarily focusing on audio and control +processing. These include notable extensions like ceammc, cyclone, else, fftease, +iemlib, pmpd, TimbreID, zexy, and many more. External libraries that add graphical +processing include Mark Dank's GEM package which expands Pd to be used for simultaneous +computer animation and Zack Lee's Ofelia that allows you to use openFrameworks and Lua +within Pd for creating audiovisual artwork or multimedia applications such as games. +For details on installing and managing packages, refer to the Externals +chapter. + +

    2.1.1. The main window, canvases, and printout

    -

    2.1 overview

    +

    When Pd is running, you'll see a main "Pd" window, and possibly one or more +"canvases" (also referred to as "patches".) The main Pd window looks like this: -

    Pd is a real-time graphical programming environment for audio and graphical -processing. It resembles the MAX system but is much simpler and more portable. -For example, with Peter Brinkmann's libpd you can have Pure Data as an embeddable -audio synthesis library. Also Pd has an experimental facility not present in MAX -that is provided for defining and accessing data structures. +

    + pd window +

    -

    Even though it is light and portable, Pd has many external packages that -expand its features, like Mark Dank's GEM package which expands Pd to be used -for simultaneous computer animation and computer audio. Similarly, Zack Lee's Ofelia -package allows you to use openFrameworks and Lua within Pd for creating audiovisual -artwork or multimedia applications such as games. +

    At the top, you'll see the menu entries: File, Edit, Put, +Find, Media, Window and Help (on Macs, this is shown +at a top bar on the screen and there is an additional first Pd menu entry.) +On the upper right, there is a "DSP" toggle box to turn audio processing on and off +globally. When "DSP" is on, Pd is computing audio samples in realtime for all open +patches (whether they are visible or not.) Turning off "DSP" halts the computation +and releases any audio devices that Pure Data is utilizing. You can configure audio +devicesin the "Audio preferences" as described in the next chapter. + +

    The Media menu offers shortcuts to toggle audio on and off. Use +Ctrl + / (Control key on PCs or Command key on Apple +computers plus the '/' key) to turn audio on, and Ctrl + . to turn +it off. You can check input RMS audio level if you select "Test Audio and MIDI" and +make other Audio and MIDI tests (read more about this in 3.1. Audio +and MIDI.) -

    2.1.1. the main window, canvases, and printout

    +

    + media menu +

    -

    When Pd is running, you'll see a main "Pd" window, and possibly one or more -"canvases" or "patches". The main Pd window looks like this: - -

    - pd window -

    - - - -

    The bottom part of the Pd window is an area for printout from objects in -patches, and/or for messages from Pd itself. The menus and console font size can be changed using the Edit/Font menu dialog when the Pd window is focused. Make your adjustments if you are having troubles reading on HiDPI screens. - -

    Pd documents are called "patches" or "canvases." -Each open document has one main window and any number of -sub-windows. The sub-windows can be opened and closed but are always running -whether you can see them or not. Here is a simple Pd patch: - -

    - hello world patch -

    - -

    There are four text boxes in this patch: a number box (showing zero), -an object box showing "print," and two comments. The number box and the object -box are connected, the number box's output to the print box's input. Boxes may -have zero or more inputs and/or outputs, with the inputs on top and the outputs -on bottom. +

    The lower part of the Pd window is an area for printout from the output of boxes +in patches and for messages from Pd itself (such as erros.) If the Pd window is +focused, the menus and console font size can be changed using the 'Font' dialog +entry in the Edit menu as shown below. Make your adjustments if you are +having trouble reading on HiDPI screens. in the Edit menu you can also clear +all messages printed in the Pd window with the 'Clear Console' entry (Shift + +Ctrl + L shortcut.) On the Window menu you find the 'Pd Window' entry +(with the Ctrl + R shortcut,) which brings the Pd window to the front or +sends it behind the window in focus.

    -Pd's printout appears on the main "Pd" window, -unless you redirect it elsewhere. - -

    2.1.2. object boxes

    -

    Pd patches can have four types of boxes: object, message, GUI, -and comment . - -

    You make objects by typing text into object boxes. The text is -divided into atoms separated by white space. The first atom specifies -what type of object Pd will make, and the other atoms, called creation -arguments , tell Pd how to initialize the object. If you type for example, - -

    - object -

    - -

    the "+" specifies the class of the object. -In this case the object will be the kind that carries out addition, -and the "13" initializes the amount to add. - -

    Atoms are either numbers or -symbols like "+". Anything that is not a valid number is considered a -symbol. Valid numbers may or may not have a decimal point (for instance, 12, -15.6, -.456), or may be -written in exponential notation (such as "4.5e6", which means "4.5 multiplied -by 10 six times, i.e., 4500000). Negative exponentials divide by 10 (so -that 1.23e-5 comes to 0.0000123). - -

    Non-valid numbers which are read as symbols -include things like "+5" and "0..6" as well as words and names such as "Zack" -or "cat". The symbols "gore", "Gore", and "GORE" are all distinct. - -

    The text you type into an object box determines how -many and what kinds of inlets and outlets the object will have. Some -classes (like "+" always have a fixed arrangement of inlets and outlets, -and in the case of other classes, the inlets and outlets will depend on the -creation arguments. - -

    Here for example is a simple MIDI synthesizer: - -

    - simple MIDI synthesizer -

    - -

    This patch mixes control objects (notein, stripnote, and ftom) with - tilde objects osc~, *~, and dac~. The control objects carry out their -function sporadically, as a result of one or more type of event . In -this case, incoming MIDI note messages set off the control computation. The -result of the computation is, when the note happens to be a "note on" (and not -a "note off"), to compute the frequency in cycles per second and pass it on to -the oscillator ("osc~"). - -

    The second half of the patch, the osc~, *~, and dac~ objects, compute audio -samples, in the same way as an analog synthesizer works. The osc~ object is -acting as the interface between the two regimes, in that it takes control -messages to set its frequency but talks to "*~" using an audio signal. Audio -signals aren't sporadic; they are continuous streams of numbers. As a result -tilde objects act under very different rules from control objects. The audio -portion of the patch is always running, whether MIDI messages arrive or not. On -the other hand, the function of control computations is to insert calculations -between the audio computation which may change audio computation parameters -such as the frequency of an oscillator. - -

    The connections in the patch (the lines between the boxes) are also of two -types: control and signal. The type of connection depends on the outlet it -comes from. Signal connections are represented by thicker lines than control -connections; in the patch above, the two bottom connections are signal and the -others are control. In general, a control connection may be made to a signal -inlet; if numbers are sent over it they are automatically converted to -signals. Signal connections may not be made to control inlets; some sort -of explicit conversion must be specified. - -

    2.1.3. message and GUI boxes

    - -

    The border of a box tells you how its text is interpreted and how the box -functions. Object boxes (as in the previous example) use the text to create -objects when you load a patch or type text onto a new one. If you retype the -text in an object box, the old one is discarded and a new one is created, using -the new creation arguments. The contents of an object box describe a message -which is sent to Pd to create the object. - -

    Message boxes interpret the text as a message to send whenever -the box is activated (by an incoming message or with the mouse.) The message -may be sent many times while the patch is running (as opposed to object boxes -whose message is used once to create the object). Instead of going straight -to Pd, the message box's message (or messages) go either to the box's outlet -or to other specified receiving objects. In the example -below, the message box, when clicked, sends the message "21" to an object -box which adds 13 to it. - -

    - [message( --> [object] -> [number] -

    - -

    The third box shown is a GUI ("graphical user interface") box. GUI -boxes come in many forms including number boxes (as in this example), toggles, -sliders, and so on. Whereas the appearance of an object or message box is -static when a patch is running, a number box's contents (the text) changes to -reflect the current value held by the box. You can also use a number box as a -control by clicking and dragging up and down, or by typing values in it. -(There are also shift- and alt-click actions; see -getting help to find out how to look this up). - -

    In addition to numbers, Pd defines GUI boxes to display and edit symbols -or arbitrary lists of atoms. - -

    2.1.4. patches and files

    + edit menu +

    + +

    Pd documents (or files) are called "patches" or "canvases". Each open document +has one main window and any number of sub-windows. The sub-windows can be opened +and closed, but they are always running, whether you see them or not. You can create +and open patches via the File menu, where you can also close and save them +(note the handy shortcuts.) + +

    + file menu +

    + +

    On PCs, this menu shows the Ctrl + Q entry to quit Pd, which prompts +you to confirm the action (on Macs, this is listed in the Pd menu.) To quit +without confirmation, use Shift + Ctrl + Q. + +

    Here is a simple Pd patch: + +

    + hello world patch +

    + +

    There are four text boxes in this patch: a number box (showing zero,) +an object box showing "print", and two comments (not a proper 'box' visually, +but counts as a "box type".") The number box is connected to the object box, +with the output of the number box feeding into the input of the [print] object +box. Boxes may have zero or more inputs and/or outputs, with the inputs on top +and the outputs on the bottom. When clicking and dragging on the number box, +the values are printed in the main "Pd" window. + +

    2.1.2. Object boxes

    + +

    Pd patches can have four types of boxes: object, message, GUI and +comment. The Put menu (shown later in +Creating boxes) offers a list of all boxes. When you choose to insert +an object box, it is presented an empty and uncreated dashed form. + +

    You only create a particular object by entering text into the box. +The text consists of atoms, which are separated by spaces. The initial +atom (which needs to be a symbol) determines the type of object Pd will create, +while the subsequent atoms, known as creation arguments, instruct Pd how +to initialize the object. For instance, you can type "+ 13". + +

    + object +

    + +

    Here, the "+" specifies the class of the object. In this case the +object will carry out additions, and the "13" initializes the value to add. + +

    Atoms are either numbers or symbols like "+". Anything that is not a +valid number, is considered a symbol. Valid numbers may or may not have a decimal +point, such as "12", "15.6", "-0.456". They also may be written in exponential +notation, such as "4.5e+06", which means "4.5" times "10ˆ6" (10 to power of 6, +i.e., 1000000) and results in "4500000". Negative exponentials also work, such +as 1.5e-06, which means "1.5" times "10ˆ-6" and results in "0.0000015". + +

    Non-valid numbers, which are read as symbols, include things like "+5" and "0..6" +as well as words and names such as "Zack" or "cat". The symbols "gore", "Gore", and +"GORE" are all distinct. + +

    The text you type into an object box determines how many and what kinds of +inlets and outlets the object will have. Certain classes, such as [+], consistently +maintain a fixed configuration of inlets and outlets. However, for other classes, +the number and arrangement of inlets and outlets can vary based on the creation +arguments. + +

    Here is an example of a simple MIDI synthesizer: + +

    + simple MIDI synthesizer +

    + +

    This patch mixes control objects ([notein], [stripnote], and [ftom]) +with tilde objects [osc~], [*~], and [dac~]. The control objects carry out +their function sporadically, as a result of one or more types of events. +In this case, incoming MIDI note messages set off the control computation. When +a note event happens (more specifically a "note on" event, since "note off" events +are filtered by [stripnote],) the control computation is triggered and it computes +the frequency in cycles per second with [mtof] and passes it on to the oscillator +([osc~].) + +

    The second half of the patch (the [osc~], [*~], and [dac~] objects) computes +audio samples. The [osc~] object is acting as the interface between the two regimes, +in that it takes control messages to set its frequency but outputs an audio sine +wave to a gain level adjustment in [*~], which then goes to the output via [dac~]. +The connections in the patch (the lines between the boxes) are also of two types: +control and signal. Note that they are visually distinct, where signal connections +are thicker than control connections. The type of connection depends on the outlet +it comes from; in the patch above, the two bottom connections are signal and the +others are control. A control connection may be made to a signal inlet and if numbers +are sent over it they are usually automatically converted to signals. Signal connections +may not be made to control inlets; some sort of explicit conversion must be specified. + +

    Audio signals form continuous streams of numbers, not intermittent bursts. +Therefore, tilde objects operate under rules distinct from those for control objects. +When DSP is activated, the audio segment of the patch runs constantly, regardless +of whether MIDI messages are received. Conversely, control computations serve to +insert calculations between the audio processing, potentially altering audio +computation parameters like the frequency of an oscillator in this example. + +

    2.1.3. Message and GUI boxes

    + +

    The shape of a box tells you how its text is interpreted and how the box +functions. Object boxes (as in the previous example) are rectangular and use +the text to create objects when you load a patch or type text onto a new one. +That is, the contents of an object box describe a message which is sent to Pd +to create the object. If you retype the text in an object box, the old one is +discarded and a new one is created, using the new creation arguments. + +

    Message boxes have a different shape and interpret the text as a +message to send whenever the box is activated (through an incoming message or via +a mouse click.) The message may be sent many times while the patch is running +(as opposed to object boxes whose message is used once to create the object.) +Instead of going straight to Pd, the message box's message (or messages) go either +to its outlet or to other specified receiving objects. In the example below, +a click on the message box sends the message "21" to an object box, which adds 13 +to it. + +

    + [message( --> [object] -> [number] +

    + +

    The third box here is a GUI ("graphical user interface") box. Pd has +three basic GUI boxes. In addition to number boxes (as in this example,) there are +boxes to display and edit symbols or arbitrary lists of atoms. Pd also comes with +a set GUIs that include toggles, sliders, radio buttons and so on. These other GUIs +are also known as "iemGUIs" and used to be an external library package, but were +incorporated natively into Pd in version 0.34 (they can still be created from +object boxes though - see their help patches for the corresponding symbols.) + +

    You can interact with GUIs in many ways and they are visually dynamic. While the +appearance of an object or message box remains unchanged when a patch is running, a +number box's content (the text) changes to reflect the current value held by the box. +You can also use a number box as a control by clicking and dragging up and down, or +by typing values in it and hitting enter (more details on how this and any other GUIs +work is available in the help files; see Context menu for +'Properties', 'Open' and 'Help' to find out how to look this up.) + +

    2.1.4. Patches and files

    + +

    As mentioned before, You can create or open a Pd file from the File menu +as well as close and save them. + +

    You can also edit the font size of a patch if its window is focused. Just +use the 'Font' entry again from the Edit menu. The font size setting of +a patch gets saved within the patch file.

    When you save a patch to a file, Pd doesn't save the entire state of all the objects in the patch, but only what you see: the objects' creation arguments -and their interconnections. Certain data-storage objects have functions for -reading and writing other files to save and restore their internal state. +and their interconnections. Nonetheless, the [savestate] object offers a mechanism +to save the state of abstractions (see Subpatches .) Also, +certain data-storage objects have functions for reading and writing other files to +save and restore their internal state. + +

    Pd finds files using specified paths. Most objects which can read files +search for them along the search paths, but when Pd writes files they go to the +directory where the patch was found. + +

    2.2. Editing Pd patches

    + +

    A patch can be in edit mode or run mode; this really only changes how mouse +clicks affect the patch. In run mode, the mouse cursor is an arrow. A patch is in +run mode when you first open it. Select 'Edit Mode' from the Edit menu to +activate it and the cursor will change to the hand pointer. Unchecking it returns +the patch to run mode. You can use the Ctrl + E shortcut to switch +between these modes. + +

    + edit mode +

    + +

    2.2.1. Edit and Run mode

    + +

    In edit mode, you can move boxes around by clicking on them and dragging. +You can also edit text, create or delete boxes and make or cut connections. +More details follow below. + +

    Normally, when you are in a performance, you will stay in run mode. In this +mode, the cursor is a slightly tilted arrow that points straight up when you +are able to click on a box. In run mode, you mostly click and interact with GUIs +(like the number box) and message boxes (which are used as controls to send +messages.) + +

    If you are predominantly editing a patch, but would like to quickly switch to +run mode just to click on something like a message, you can press and hold the +Ctrl to temporarily switch to edit mode until you release it. + +

    2.2.2. Creating boxes

    + +

    You can create boxes (objects, messages, GUIs, and comments) using the +Put menu. Note that most of these are individual GUI (graphical +user interface) boxes. There are also entries for "array" and "graph" that +will be explained later. Also note the handy shortcuts to create each item +specifically. + +

    + put menu +

    + +

    If you are in run mode and click on an entry on the Put menu or use +a shortcut, Pd automatically switches to edit mode. When you create boxes +this way, they are automatically selected and follow the mouse cursor position; +drag them around as desired until you click to position them where you want. +Alternatively, you can hit Esc to deselect it, which will also place +the box. Object and message boxes are empty when created, you can move them +and also position them by just starting to type into them. + +

    You may find it more convenient to select a box and "duplicate" it than to use +the Put menu. If you duplicate a selectoin of several items, any connections +between them will be duplicated as well. + +

    2.2.3. Selecting items and moving them or "tidying them up"

    + +

    In Edit mode you can select or deselect one or more boxes. Note that the outline +of all boxes and containing text turn light blue (instead of the usual black) to +indicate they are selected. Boxes in a Pd window may be individually selected by +clicking on them. If you don't release the mouse button you can select a box and drag +it around right away. To select more than one box, you may use Shift + Click +on each item. You can then click again on one of the selected boxes to move the group +around. Alternatively, you click on a blank portion of the window and drag the cursor +to select all boxes within a rectangular area (then click again on one of the selected +boxes to move them as well.) + +

    When you have one or more boxes selected, you can also move them using +Arrow keys, which moves items one pixel in the direction of +the arrows. You can also use Shift + Arrow keys to move items +10 pixels in the desired direction. By the way, if you select boxes that +are connected, the connections (patch cords) are also moved around. + + +

    The 'Tidy Up' entry in the Edit menu allows you to try and align +boxes that are not perfectly aligned. You can select boxes arranged in a +horizontal row and use the shortcut Shift + Ctrl + R to try and +align them perfectly horizontally. Similarly, this can be applied to vertically +align a column of boxes. Bidimensional rectangular selections of boxes are also +possible, but aligning horizontally and vertically separately tends to yield +better results. + +

    + selecting items and moving them or tidying them up +

    + +

    2.2.4. Delete, cut, copy and paste boxes

    + +

    If you select any item you can press Backspace or Delete +key to delete it. Connections of a deleted box are also deleted. A multiple selection +of items can also be deleted. The "Select All" entry on the Edit menu selects all +items in a patch window. + +

    For one or more selected items and their connections you can also "cut", "copy", +"paste" and "duplicate" "from the Edit menu or shortcuts. Notice you can +"cut" or "copy" and then "paste" the selection in a different window. When pasted, +the items stay selected, so you can click on one of the selected items and move the +whole group around by dragging. + +

    Note that pasting inserts the selection at the same position it was copied, +unless the place is already taken, when there is a small offeset. The "duplicate" +menu item performs a copy and paste with a small offset (since the original +selection remains in the original position.) You can then click on an item in +the duplicated selection and drag them all together to a new spot in the patch +window away from the original selection. + +

    To deselect, you can either click on an empty area of your patch or press +the Esc key. + +

    While you can cut or copy a selection within a patch and paste it into a +different window within Pure Data, the cut/paste functionality for patch elements +is not integrated with the operating system clipboard. This limitation means you +cannot paste between different versions or flavors of Pure Data. Additionally, +it is not possible to copy from a patch and paste into a Pd subprocess instantiated +via a [pd~] object. + +

    2.2.5. Changing the text

    + +

    Clicking on an unselected object, message or comment box and releasing the +click makes the text active, i.e., ready to be text edited (if you select using +a rectangular area selection or Shift + Click, the text isn't activated.) + +

    If you only click once, the entire text is selected and your typing will replace +the whole selections. Use Arrow keys to navigate the cursor through the +text or use the mouse to click and drag to change the text selection and edit it. + +

    If you wish to displace a box whose text is activated you need to first deselect +it (by clicking outside it or using Esc,) otherwise you will be selecting +text instead of moving the box. + +

    The updated text only becomes part of the patch when you deselect the +object. As already mentioned, changing the text in an object box deletes +the old object and creates a new one; so the internal state of the old one is +completely lost. + +

    + changing text +

    + +

    You can also use the copy, cut, and paste commands for the selected text. The +text selection functionality for cut/copy/paste is integrated with the operating +system, enabling you to copy and paste text between Pd and other software +applications. + +

    2.2.6. Connecting and disconnecting boxes

    + +

    This subsection only describes the simplest way to connect two boxes. For +more advanced and convenient techniques and shortcuts, refer to the next section. + +

    To create a connection in edit mode, move your mouse into the the area of +an outlet. Note that the cursor becomes a circle (a patch point,) indicating +that you can click and drag to create a connection. Drag the cord into an inlet +area, where you'll see again the circle shaped cursor, signaling that you can +release the mouse button to create a connection. You can release the mouse button +anywhere within the target box and the connection will be made to the nearest +inlet. + +

    + connecting boxes +

    + +

    If you move the mouse cursor over a patch cord, you'll see it takes the shape +of an "X" to denote you can select it and delete it. Click on the connection +to select it and press Backspace or Delete key to delete +it. You can't just select patch cords with click and drag for a rectangular +area and you can only select a single connection by clicking on it. + +

    + disconnecting boxes +

    + +

    2.2.7. Context menu for 'Properties', 'Open' and 'Help'

    + +

    All the "clicking" mentioned above is done with the left mouse button. +The right button, instead, opens a context menu offering "Properties", +"Open" and "Help" (either in edit or run momde). For Apple users who may +only have one button on their mouse, double-clicking or Alt + Click +are mapped to right-click and on trackpads you can click with two fingers. + +

    Selecting "Help" on any box opens a patch explaining and demonstrating +what it is and how it works. Asking "Help" for the canvas as a whole +(right-clicking outside any box) gives a list of all built-in boxes and +every object class. + +

    The "Open" menu item is only enabled if you right-click on a subpatch +(see Subpatches ) and prompts Pd to open it. +Ordinary subpatches may also be opened by simply clicking on them, but for +"graph-on-parent" subpatches, this is the only method available. + +

    The "Properties" dialog allows you to change certain settings of GUI +boxes or of the patch itself (when clicking outside any box.) + +

    2.3. Advanced patch editing

    + +

    This section describes advanced techniques and shortcuts for editing patches. + +

    2.3.1. Tab navigation

    + +

    When a single box is selected, pressing Tab allows you to +navigate and change the selection to other boxes in the sequence determined +by the order of their creation. Pressing Tab cycles through the +boxes from the earliest created to the next, and upon reaching the last box +in the window the selection loops back to the first one. Conversely, you can +press Shift + Tab to navigate in reverse order, moving from the +most recently created box back towards the first created ones. + +

    + tab navigation boxes +

    -

    Pd finds files using a path which can be specified as part of Pd's -startup arguments. The path specifies one or more directories, separated by -colons (semicolons if you're using windows.) Most objects which can read files -search for them along the search path, but when Pd writes files they go to -the directory where the patch was found. +

    Using Tab also works in a similar way for patch cords if +you have one selected. You can move from first to last with Tab +and from last to first with Shift + Tab. -

    2.2. editing Pd patches

    +

    + tab navigation cords +

    -

    A patch can be in edit or run mode; this really only affects how mouse -clicks affect the patch. In run mode, the mouse your cursor is an arrow, and -when you first open a patch, it is in run mode. Select "edit mode" in the -Edit menu to check it on and the cursor will change to the image of a hand. +

    If you're creating a connection by clicking on an outlet and dragging a +patch cord, you can also use Tab to cycle through outlets. +The navigation order is left to right and it also cycles back. Pressing +Shift + Tab navigates from right to left. -

    2.2.1. edit and run mode

    +

    + tab navigation inlets outlets +

    -

    In edit mode, clicking and dragging selects and moves boxes or makes -and cuts connections; in run mode clicking on boxes sends them messages -which they react to in different ways. In run mode, number and message -boxes can be used as controls. Normally, when you are in a performance -you will stay in run mode. +

    In Linux and Windows you can also cycle between inlets. This is currently +not possible on macOS. When dragging a connection into an inlet area, without +releasing the mouse, you can use Tab to navigate to the next inlet, +or Shift + Tab to navigate to the previous one. + +

    2.3.2. Autopatching

    + +

    By default, Pd has an 'autopatching' mode set to on. You can disable it +via startup flags (see '-autopatch' flag Preferences +and startup options .) This works with the shortcuts from the Put +menu for inserting boxes. If you have a selected box and use a shortcut +to create another one (such as Ctrl + 1 to create an object box,) +the created box is placed below the selected box and a connection is made +from the first outlet of the selected box into the inlet of the newly created +box (granted that these boxes have an outlet and an inlet for the connection +to happen.) + +

    Once the new box is created, it is also selected, so you can continue with +autopatching by adding yet more boxes. In the case of object and message boxes +you can also start typing text into it before autopatching into another newly +created box, since when you autopatch for the next one, the object or message +box gets deselected and therefore created. -

    If you are predominantly editing a patch but would like to quickly -go to run mode just to click on something like a message, you can just -press and hold the control key (command in mac computers) and you'll -note the shape of an arrow is back until you release the key. +

    + autopatching objects +

    -

    2.2.2. creating boxes

    +

    You can also autopatch into a newly created subpatch (see +Subpatches .) By creating an object box and typing [pd], as soon as you +deselect the object, a subpatch is created with an inlet - either a control +inlet ([inlet]) if the object above is a control object, or a signal inlet +([inlet~]) if it is a tilde object instead. -

    You can create boxes (objects, messages, GUIs, and comments) using the -"put" menu. Note the handy accelerators. Object and message boxes are empty -at first; drag them where you want them and type in the text. The GUI -objects (which come in several flavors) require no typing; just create and -place them. +

    + autopatching subpatches +

    -

    You will often find it more convenient to select a box and "duplicate" it -(in the Edit menu) than to use the "Put" menu. If you select and duplicate -several items, any connections between them will be duplicated as well. +

    2.3.3. Duplicate connections

    -

    2.2.3. the selection

    +

    If you select a connection between two boxes that have more than one +outlet and inlet for connections, you can use Ctrl + D to +duplicate and create more connections. -

    Boxes in a Pd window may be selected by clicking on them. To select more -than one object you may use shift-click or click on a blank portion of -the window and drag the cursor to select all objects within a rectangle. +

    + duplicate connections +

    -

    Clicking on an unselected object, message, or comment box makes the text -active, i.e., ready to be text edited. (If you select using the rectangle -method, the text isn't activated.) Once you've activated a text box, you -may type into it (replacing the selected text) or use the mouse to change the -selection. +

    2.3.4. Managing connections with the Shift key

    -

    You may also select a single connection (patch cord) by clicking on it. -You can't have connections and boxes selected simultaneously. +

    You can swap connections if you selected a connection and use +Shift + Click on another one. -

    2.2.4. deleting, cutting, and pasting

    +

    + managing connections shift click +

    -

    If you select a box, a connection, or several boxes, and if you haven't made -any text active, you can "delete" the selection by hitting the backspace or -delete key. You can also "cut" "copy" and "paste" using menu items. Notice -that pasting puts the new object(s) right down on top of the old ones. +

    You can "fan out" connections when no boxes are selected. You can +start creating a connection by clicking an outlet and dragging a cord +and then use Shift when you reach the inlet destination +(without releasing the mouse button.) This "fans out" out and creates +another connection from the outlet for you to drag somewhere else and +connect the same outlet to to multiple inlets sequentially. -

    The "duplicate" menu item performs a copy and paste with a small offset so you -can see the new boxes. You can drag them together to a new place on the screen. +

    + managing connections drag fan out +

    -

    You can cut and paste between windows within Pd but cut/paste isn't -integrated with the OS in any way. Cut/copy/paste for activated text in boxes -isn't implemented yet, although in Linux at least you can "X-paste" -into and out of "text" dialogs (created with the "edit text" menu item.) +

    Also for fanning out, if you have a group of target boxes that are selected, +you can drag a cord from an outlet of an unselected box and press Shift +to create a connection into the same inlet number of the selected boxes (which do +not need to be of the same type or class.) -

    2.2.5. changing the text

    +

    + managing connections fan out +

    -

    To change a text item, you can select it and then edit the text. If you -only click once, the entire text is selected and your typing will replace -everything. Click again and drag to select a portion of the text to retype. +

    You can create a connection from the same outlet number of multiple boxes to +a single inlet. If you have a selection of source boxes, you can drag a cord from +one of their outlets into another box and press Shift to create multiple +connections from the same outlet number of the selected boxes (which do not need to +be of the same type or class.) -

    If you click a box and move the mouse without releasing the button this -displaces the entire box. If you wish to displace a box which is already -selected, first de-select the box by clicking outside it; otherwise you will be -selecting text instead of moving the box. +

    + managing connections fan in +

    -

    The updated text only becomes part of the patch when you de-select the -object. Changing the text in an "object" box deletes the old -object and creates a new one; the internal state of the old one is lost. +

    You can connect multiple outlets and inlets of 2 boxes if you have 2 selected +boxes. Start creating a connection and click Shift at completion. +This creates all possible connections starting from the chosen outlet and inlet. -

    2.2.6. connecting and disconnecting boxes

    +

    + managing connections box to box +

    -

    To make a connection between two boxes, click on any outlet of the first -one, drag toward an inlet of the second one, and release. You can -release the mouse button anywhere within the target object and the connection -will be made to the nearest inlet. +

    You can connect outlets of multiple boxes into multiple inlets of one box. +If there's a selected group of boxes, you start creating a connection into an +inlet of a box that is part of the selection. Then you can press Shift +so connections are made from the same outlet number of all source boxes (which do +not need to be of the same type or class) into separate inlets, starting from the +chosen inlet. -

    Connections are broken by selecting them and using "cut" or the backspace -or delete key. +

    + managing connections many to one +

    -

    2.2.7. popup menu for properties, open, and help

    +

    You can spread multiple outlets of one box into same inlets of other boxes. +Similarly to the scenario above, you can start dragging from one outlet of a +selected box with multiple outlets to an inlet of one of many selected boxes. +In this case, when you press Shift, all possible connections are +made from the outlets of the source box to the same inlet numbers of the target +boxes. -

    All the "clicking" mentioned above is done with the left mouse button. -The right button, instead, gives a popup menu offering "properties," "open," -and "help". -(For Macintosh users who may only have one button on their mouse, -double-clicking is mapped to right-click.) +

    + managing connections one to many +

    + + +

    2.3.5. (Dis)Connect selection

    + +

    This is a menu entry in the Edit menu, also available via the shortcut +Ctrl + K. It allows you to connect and disconnect selected boxes in +different ways. + +

    + dis/connect menu +

    + +

    For 2 selected boxes you can use Ctrl + K to connect +them. Repeat using Ctrl + K to make multiple connections +from possible remaining outlets to inlets. + +

    + dis/connect parallel +

    + +

    For 2 selected tilde objects, if the origin object has a single outlet and +the target object has many inlets, you can repeatedly use Ctrl + K +to fan out and connect the same outlet to all inlets. -

    Selecting "help" on an object gets -a Pd patch that demonstrates how to use it. "Help" for the canvas as a whole -(right-clicking outside any object) gives a list of all built-in objects. +

    + dis/connect fan out audio +

    + +

    For last, you can include or bypass a box into or from a connection +(being it any connection from any outlet into any inlet.) To include a box, +you can select it and the connection between the other 2 boxes by using +Shift + Click and then use Ctrl + K to include +the selected box into the connection. Alternatively, you can select the 3 +boxes with a connection between 2 of them and then use Shift + Click +to include the third one in the connection. -

    The "open" menu item is only enabled if you right-click on a subpatch -(see below) and causes Pd to open it. Ordinary subpatches may also be opened -by clicking on them, but for "graph-on-parent" ones, this is the only way to -do it. +

    + dis/connect insert box to connection +

    -

    The "properties" dialog allows you to change certain settings of GUI -objects, or of the patch itself (by clicking outside any box.) +

    To bypass a box, you can select 3 boxes connected in a row and use +Ctrl + K to bypass and remove the middle box from the connection. -

    2.2.8. miscellaneous

    +

    + dis/connect exclude box from connection +

    -

    Control-q "quits" Pd, but asks you to confirm the quit. To quit without -having to confirm, use command-shift-Q. +

    2.3.6. Triggerize

    -

    2.3. messages

    +

    The 'Triggerize' entry in the Edit menu with the Ctrl + T +shortcut was designed to insert a [trigger] object (in its abbreviated form [t].) +When you select a single box that is connected to many inlets of a single or +multiple boxes use "Triggerize" to insert this object, which is briefly described +in Hot and cold inlets and right to left outlet order . -

    In Pd, objects intercommunicate by sending messages and/or audio signals. -Pd messages are sporadic, like MIDI messages or music N "Note cards." +

    The [trigger] object is widely used in Pd to control the order of execution +from right to left. 'Triggerize' then creates the [trigger] object taking into +account the order in which the connections were made, where the first connection +starts at the rightmost outlet of [trigger] and continues to the leftmost. -

    2.3.1. anatomy of a message

    +

    + triggerize object +

    -

    Messages contain a selector followed by -any number of arguments. The selector is a symbol, which appears in the patch -as a non-numeric string with no white space, semicolons, or commas. The -arguments may be symbols or numbers. Numbers in Pd are kept in 32-bit floating -point, so that they can represent integers exactly between −16777216 and -16777216. (In Max, there are separate data types for integers and floating -point numbers; Pd uses only float.) +

    The 'Triggerize' option can also be used to insert a dummy object. +To do so, select a connection and use Ctrl + T. For a control +connection, a [t a] object is created with the text selected, so you +can type another text to include another object instead. For a signal +connection, a [pd nop~] subpatch is created, also with the text selected +for you to replace for a new object. -

    When a message is passed to something (which is often an inlet of a box -but could be anything that can receive a message), the selector of the message -is checked against the receiver. If the receiver recognizes messages of that -selector, it carries out some corresponding action. For instance, here is a -"float" object: +

    + triggerize insert box to connection +

    -

    - float object -

    +

    2.3.7. Paste replace

    -

    The two rectangles at the top are usually both called "inlets" but -the one at the left directs incoming messages to the "float" object itself, -whereas the one at the right directs messages to an auxiliary "inlet" -object. The float object proper (represented by the left-hand inlet) accepts -messages with selector "float" and "bang". The right-hand inlet takes only -the message selector "float". These two selectors, along with "symbol" and -"list", are usually used to denote an object's main action, whatever it may be, -so that objects can be interconnected with maximum flexibility. +

    The 'Paste Replace' entry in the Edit menu doesn't have a +shortcut and performs a special paste operation where it replaces a selection +of boxes for another kind. For example, first copy one box such as a +[float] object. Then select a group of boxes of the same type, for +instance, a group of object boxes (note that they don't need to be +of the same class.) Now go to the Edit menu and select "Paste Replace". +All the selected boxes of the same type get replaced by the copied box +and connections are preserved. -

    It is possible to type messages which start with a number, -which cannot be used as a selector. A single number is always given the -"float" selector automatically, and a message with a number followed by other +

    + paste replace menu +

    + +

    Alternatively, you can copy a number box instead of a [float] object +and replace it in the selected group of objects, or in a selected group +of another kind, such as message boxes. Note that the box types in Pd +are: objects, messages, GUIs and comments, whereas 'IEMguis' are actually +treated in this case as regular object boxes. Hence, the GUI boxes are +only the number box, the symbol box and the list box. Also note that +these three GUIs are not of the same kind for the purpose of "Paste Replace". +A subpatch or an abstraction can also be used for "Paste Replace" and they +count in the same group of objects. + +

    + paste replace boxes +

    + +

    If you have a selection of boxes to replace that includes different +types of boxes, the "Paste Replace" will only replace the boxes of the +same type that was copied. + +

    + paste replace similar type +

    + +

    2.4. Messages

    + +

    In Pd, boxes intercommunicate by sending messages and/or audio signals. +Pd messages are sporadic, like MIDI messages or Music N "Note cards." + +

    2.4.1. Anatomy of a message

    + +

    Messages contain a selector followed by any number of arguments. The selector +is a symbol, which appears in the patch as a non-numeric string with no white +space, semicolons, or commas. The arguments may be symbols or numbers. + +

    Pd is usually compiled for single precision, but you can compile it for +double precision as well (see Double precision .) +If compiled for single precision, numbers are kept in 32-bit floating point, +while if compiled for double precision (AKA: "Pd64") you have values in +64-bit floating point precision. The integer values you can represent in +each case is shown on the table below. (In Max, there are separate data +types for integers and floating point numbers; Pd uses only float.) + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Pd Pd64
    32-bit floating point 64-bit floating point
    min integer −2ˆ24 (−16777216) −2ˆ53 (-9007199254740992)
    max integer 2ˆ24 (16777216) 2ˆ53 (9007199254740992)
    +
    + + +

    When a message is passed to something (which is often an inlet of a box +but could be anything that can receive a message,) the selector of the message +is checked against the receiver. If the receiver recognizes messages of that +selector, it carries out some corresponding action. For instance, here is a +[float] object: + +

    + float object +

    + +

    The two rectangles at the top are usually both called "inlets", but the +one on the left directs incoming messages to the [float] object itself, while +the one on the right directs messages to an auxiliary "inlet" object. The +[float] object itself (represented by the left inlet) accepts messages with +the selectors "float" and "bang". The right inlet only accepts messages with +the "float" selector. These two selectors, together with "symbol" and "list", +are usually used to indicate the main action of an object, whatever it may be, +so that objects can be linked together with maximum flexibility. + +

    Numbers cannot be used as a selectors. A message single number is always given +the "float" selector automatically, and a message with a number followed by other arguments is given the selector "list". -

    2.3.2. depth first message passing

    +

    2.4.2. Depth first message passing

    -

    In Pd whenever a message is initiated, the receiver may then send out +

    Whenever a message is initiated in Pd, the receiver may then send out further messages in turn, and the receivers of those messages can send yet -others. So each message sets off a tree of consequent messages. This tree is -executed in depth first fashion. For instance in the patch below: +others. So each message sets off a tree of consequent messages. This tree is +executed in depth first fashion. For instance in the patch below: -

    - depth first message passing -

    +

    + depth first message passing +

    -

    the order of arrival of messages is either A-B-C-D or A-C-D-B. The "C" +

    the order of arrival of messages is either A-B-C-D or A-C-D-B. The "C" message is not done until the "D" one is also, and the "A" is not done until -all four are. It is indeterminate which of "B" or "C" is done first; this -depends on what order you made the connections in (in Max, it's automatically -sorted right to left). +all four are. It is not visible whether "B" or "C" is done first; this +depends on the order the connections were made in (in Max, it's automatically +sorted right to left.) -

    Message-passing can give rise to infinite loops of the sort shown here: +

    Message-passing can give rise to infinite loops of the sort shown here: -

    - infinite message passing loop -

    +

    + infinite message passing loop +

    -

    Here the left-hand "+" can't finish processing until the right-hand one has -been sent the result "2", which can't finish processing that until the -left-hand one has been sent "3", and so on. Pd will print an error message +

    Here, the left-hand [+ 1] can't finish processing until the right-hand one has +been sent the result "2", which can't finish processing until the +left-hand one has been sent "3", and so on. Pd will print an error message reporting a "stack overflow" if this happens. -

    However, it is legal to make a loop if there is a "delay" object somewhere -in it. When the "delay" receives a message it schedules a message for the -future (even if the time delay is 0) and is then "finished;" Pd's internal +

    However, it is legal to make a loop if there is a [delay] object somewhere +in it. When [delay] receives a message, it schedules a message for the +future (even if the time delay is 0) and is then "finished"; Pd's internal scheduler will wake the delay back up later. -

    -2.3.3. hot and cold inlets and right to left outlet order

    +

    2.4.3. Hot and cold inlets and right to left outlet order

    -

    With few exceptions (notably "timer"), objects treat their leftmost +

    With few exceptions (notably [timer],) objects treat their leftmost inlet as "hot" in the sense that messages to left inlets can result in output -messages. So the following is a legal (and reasonable) loop construct: +messages. So the following is a legal (and reasonable) loop construct: -

    - hot and cold inlets -

    +

    + hot and cold inlets +

    -

    Here the "f" is an abbreviation for "float". Note that the "+ 1" output is -connected to the right-hand inlet of "f". This "cold" inlet merely stores the -value for the next time the "f" is sent the "bang" message. +

    Here, the [f] object is an abbreviation for [float]. Note that the [+ 1] output +is connected to the right-hand inlet of [f]. This "cold" inlet merely stores the +value for the next time the [f] is sent the "bang" message.

    It is frequently desirable to send messages to two or more inlets of an object -to specify its action. For instance, you can use "+" to add two numbers; but +to specify its action. For instance, you can use [+] to add two numbers; but to do it correctly you must make sure the right hand inlet gets its value -first. Otherwise, when the left hand side value comes in, "+" will carry out +first. Otherwise, when the left hand side value comes in, [+] will carry out the addition (since the left hand inlet is the "hot" one) and will add this value to whatever was previously sitting in the right hand inlet. -

    Problems can arise when a single outlet is connected (either directly or +

    Problems can arise when a single outlet is connected (either directly or through arbitrarily long chains of message passing) to different inlets of a single object. In this case it is indeterminate which order the two inlets will -receive their messages. Suppose for example you wish to use "+" to double a -number. The following is incorrect: +receive their messages. Suppose for example you wish to use [+] to double a +number. The following is incorrect: -

    - incorrect inlet connection -

    +

    + incorrect inlet connection +

    -

    Here, I connected the left inlet before connecting the right hand one (although -this is not evident in the appearance of the patch.) The "+" thus adds the -new input (at left) to the previous input (at right). +

    Here, the left inlet was connected before connecting the right hand one +(although this is not evident in the appearance of the patch.) The [+] thus +adds the new input (at left) to the previous input (at right.) -

    The "trigger" object, abbreviated "t", can be used to split out connections -from a single outlet in a determinate order. By convention, all objects in Pd, -when sending messages out more than one outlet, do so from right to left. If +

    The [trigger] object, abbreviated [t], can be used to split out connections +from a single outlet in a determinate order. By convention, all objects in Pd, +when sending messages out more than one outlet, do so from right to left. If you connect these to inlets of a second object without crossing wires, the second object will get its leftmost inlet last, which is usually what you -want. Here is how to use "trigger" to disambiguate the previous example: +want. Here is how to use [trigger] to disambiguate the previous example: -

    - trigger to disambiguate -

    +

    + trigger to disambiguate +

    -

    "Cold" (non-leftmost) inlets are almost universally used to store single -values (either numbers or symbols.) With the exception of "line" and "line~", -these values are "sticky," i.e., once you set the value it is good until the -next time you set it. (The "line" exception is for sanity's sake.) +

    "Cold" (non-leftmost) inlets are almost universally used to store single +values (either numbers or symbols.) With the exception of [line], [line~] +and [vline~], these values are "sticky", i.e., once you set the value it is +good until the next time you set it. (The "line family" exception is for +sanity's sake.) -

    One more question sometimes comes up in execution order, which is -the order in which two messages are sent to a single "cold" inlet. In this -situation, since the messages are merged, the last value to be received is -the value that is used in the computation. +

    One more question sometimes comes up concerning execution order when two +messages are sent to a single "cold" inlet. In this situation, since the messages +are merged, the last value to be received is the value that is used for the next +computation. -

    2.3.4. message boxes

    +

    2.4.4. Message boxes

    -

    Message boxes are text boxes in which you type a message. When the message -box is activated, either by clicking on it or sending something to its inlet, +

    Message boxes are text boxes in which you type a message. When the message +box is activated, either by clicking on it or by sending something to its inlet, the message or messages are sent, either to the message box's outlet or elsewhere as specified. -

    - message boxes -

    +

    + message boxes +

    The first of the message boxes above contains the single number 1.5; this -message has an implicit selector of "float." The second is a list with three +message has an implicit selector of "float". The second is a list with three numbers in it, and in the third, the selector is "my" and the two arguments are -the number 5 and the symbol "toes." +the number 5 and the symbol "toes". -

    Multiple messages may be separated by commas as shown: +

    Multiple messages may be separated by commas as shown: -

    - multiple messages in one box -

    +

    + multiple messages in one box +

    -

    Here the three messages are the numbers 1, 2, and 3, and they are sent in -sequence (with no intervening time between them, as with the "trigger" object, +

    Here, the three messages are the numbers 1, 2, and 3, and they are sent in +sequence (with no intervening time between them, as with the [trigger] object, and having depth-first consequences so that whatever chain of actions depending on "1" takes place before anything depending on "2" and so on.) -

    Semicolons may also separate messages. A message following a semicolon must -specify a symbol giving a destination (in other words, semicolons are like -commas except that they clear the "current destination" -so that the next message specifies a new one). The "current destination" is -at first the message box's own outlet. In the example below, the leading -semicolon immediately redirects messages from the outlet to an object named -"fred" (which is here a receive object), and likewise the next message is sent -to "sue." - +

    Semicolons may also separate messages. A message following a semicolon must +specify a symbol giving a destination (in other words, semicolons are like commas +except that they clear the "current destination" so that the next message +specifies a new one.) The "current destination" is at first the message box's own +outlet. In the example below, the leading semicolon immediately redirects messages +from the outlet to an object named "fred" (which is a receive object here,) and +likewise the next message is sent to "sue". -

    - semicolons to send messages -

    +

    + semicolons to send messages +

    -

    Certain other objects (Pd windows, for example, and arrays) have Pd names and -can be sent messages this way. Also, the special object "pd" is defined to -which you may send messages to start and stop DSP. +

    Certain other objects (Pd windows for example, and arrays) have Pd names as +destination symbols so you can send them messages this way. Also, the special +receiver "pd" is defined to which you may send messages to start and stop DSP and +more. -

    You can put variables in message boxes as shown below: +

    You can put variables in message boxes as shown below: -

    - variables in message boxes -

    +

    + variables in message boxes +

    -

    Here, "$1", etc., refer to the arguments of the arriving message (and aren't +

    Here, "$1" etc., refer to the arguments of the arriving message (and aren't defined if you send a "bang" message or if you click on the message box to -activate it.) Dollar sign variables are either numbers or symbols depending -on the incoming message; if symbols, you may even use them to specify variable -message selectors or destinations. +activate it.) Dollar sign variables are either numbers or symbols depending +on the incoming message; if they are symbols, you may even use them to specify +variable message selectors or destinations. -

    2.4. audio signals

    +

    2.5. Audio signals

    -

    -Using Pd you can build audio patches which can synthesize musical sounds, +

    Using Pd, you can build audio patches which can synthesize musical sounds, analyze incoming sounds, process incoming sounds to produce transformed -audio outputs, or integrate audio processing with other media. This section +audio outputs, or integrate audio processing with other media. This section describes how Pd treats audio signals. -

    2.4.1. sample rate and format

    +

    2.5.1. Sample rate and format

    -

    -Pd's audio signals are internally kept as 32-bit floating point numbers, so -you have all the dynamic range you could want. However, depending on your -hardware, audio I/O is usually limited to 16 or 24 bits. Inputs all appear +

    Pd's audio signals are internally kept as 32-bit floating point numbers, so +you have all the dynamic range you could want. However, depending on your +hardware, audio I/O is usually limited to 16 or 24 bits. Inputs all appear between the values of -1 and 1; and output values will be clipped to that range. -Pd assumes a sample rate of 44100 unless you override this ( -in Pd's command line or in the "audio setup" dialog). - -

    -Pd can read or write samples to files either in 16-bit or 24-bit fixed point -or in 32-bit floating point, in WAV, AIFF, or AU format, via the soundfiler, -readsf, and writesf objects. - -

    2.4.2. tilde objects and audio connections

    - -

    Audio computations in Pd are carried out by "tilde objects" such as "osc~" -whose names conventionally end in a tilde character to warn you what they -are. Tilde objects can intercommunicate via audio connections. When audio -computation is turned on, or when you change the audio network while audio is -on, Pd sorts all the tilde objects into a linear order for running; then this -linear list is run down in blocks of 64 samples each; at 44100 Hz. this means -the audio network runs every 1.45 milliseconds. - -

    Inlets or outlets are configured in Pd either for messages or audio; it's -an error to connect an audio outlet to a non-audio inlet or vice versa; usually -these errors are detected at "sort time" when audio is started or the network -changed with audio running. An object's leftmost inlet may accept both audio -and messages; any other inlet is either one or the other. - -

    -The audio network, that is, the tilde objects and their interconnections, -must be acyclic. If there are loops, you will see the error message at "sort -time." When errors are reported at sort time there is no easy way to -find the source of the error. You can build algorithms with feedback using -nonlocal signal connections. - -

    -Your subpatches can have audio inlets and outlets via the inlet~ and outlet~ -objects. - -

    2.4.3. converting audio to and from messages

    - -

    If you want to use a control value as a signal, you can use the sig~ object -to convert it. The +~, -~, *~, /~, osc~, and phasor~ objects can be configured -to take control or signal inputs. - -

    The other direction, signal to control, requires that you specify at what -moments you want the signal sampled. This is handled by the snapshot~ object, -but you can also sample a signal with tabwrite~ and then get access it via -tabread or tabread4 (note the missing tildes!). There are also analysis -objects, the simplest of which is "env~", the envelope follower. - -

    2.4.4. switching and blocking

    - -

    You can use the switch~ or block~ objects to turn portions of your audio -computation on and off and to control the block size of computation. There -may be only one switch~ or block~ object in any window; it acts on the entire -window and all of its subwindows, which may still have their own nested -switch~/block~ objects. Switch~ and block~ take a block size and an overlap -factor as arguments; so for instance, "block~ 1024 4" specifies 1024 sample -blocks, overlapped by a factor of 4 relative to the parent window. Switch~ -carries a small computational overhead in addition to whatever overhead is -associated with changing the block size. - -

    Larger block sizes than 64 should result in small increases in run-time -efficiency. Also, the fft~ and related objects operate on blocks so that -setting the block size also sets the number of FFT channels. You may wish +Pd assumes a sample rate of 44100 unless you override this (in Pd's command line +or in the "audio setup" dialog.) + +

    Pd can read or write samples to files either in 16-bit or 24-bit fixed point +or in 32-bit floating point, in 'wave', 'aiff', 'caf', and 'next' formats via +the [soundfiler], [readsf~], and [writesf~] objects. + +

    2.5.2. Tilde objects and audio connections

    + +

    Audio computations in Pd are carried out by "tilde objects" such as [osc~], +whose names conventionally end with a tilde character (which resembles a sinusoid, symbolizing their function in handling audio signals.) Tilde objects can +intercommunicate via audio connections. When audio computation is turned on or +when you change the audio network while audio is on, Pd sorts all the tilde objects +into a linear order for running; this linear list is then by default run down in +blocks of 64 samples each at 44100 Hz. this means the audio network runs every +1.45 milliseconds. + +

    Inlets or outlets are configured in Pd either for messages or audio. You can't +connect an audio outlet to a non-audio inlet. An object's leftmost inlet may accept +both audio and messages; any other inlet is either one or the other, but secondary +audio inlets take floats at control rate and promote them automatically to signals. +Nonetheless, in some cases, the inlet may take both a float or a sinal and run +different algorithms in each case. One example is [lop~], which runs a more +efficient routine if no signals are connected to the right inlet. The [+~], [-~], +[*~], [/~]. [max~], [min~], [log~] and [pow~] objects can be configured to take +control or signal inputs in their 2nd inlet depending on the creation argument. + +

    The audio network, that is, the tilde objects and their interconnections, +must be non-cyclic. If there are loops at "sort time", you will see an error +message on the main Pd window, saying "DSP loop detected (some tilde +objects weren't scheduled)". You can build algorithms with feedback using +nonlocal signal connections as explained in the 2.5.5. +subsection. + +

    Your subpatches can have audio inlets and outlets via the [inlet~] and [outlet~] +objects (see Subpatches .) + +

    2.5.3. Converting audio to and from messages

    + +

    If you want to use a control value as a signal, you can use the [sig~] +object to convert it. This is usually rare since objects mostly promote +floats to signals as mentioned. At least this is true for all native objects +in Pd, but there are externals that can behave differently. The [sig~] object +is also useful for loading a default signal value with its creation argument. +You can also use [line~] and [vline~] to "convert" from control to signal with +a smoothen ramp, so to speak, which can be quite useful. + +

    The other direction, signal to control, requires that you specify at what +moments you want the signal sampled. This is handled by the [snapshot~] object, +but you can also sample a signal with [tabwrite~] and then access it via +[tabread] or [tabread4] (note the missing tildes!) There are also analysis +objects, the simplest of which is [env~], the envelope follower, that outputs +control rate floats. + +

    2.5.4. Switching and blocking

    + +

    You can use the [switch~] or [block~] objects to turn portions of your audio +computation on and off and to control the block size of computation. There may +be only one [switch~] or [block~] object per window; it acts on the entire +window and all of its subwindows (which may still have their own nested +[switch~]/[block~] objects though.) Both, [switch~] and [block~] take a block +size and optional overlap and up-/downsampling factors as arguments; so for +instance, [block~ 1024 4] specifies 1024 sample blocks, overlapped by a factor +of 4 relative to the parent window. The [switch~] version carries a small +computational overhead in addition to whatever overhead is associated with +changing the block size. + +

    Larger block sizes than 64 should result in a small increase of runtime +efficiency. Also, the [fft~] and related objects operate on blocks so that +setting the block size also sets the number of FFT channels. You may wish to use block sizes smaller than 64 to gain finer resolutions of message/audio -interaction, or to reduce "block delay" in feedback algorithms. At the -extreme, setting the block size to one allows you to write your -own recursive filters. - -

    You can use switch~ to budget your DSP computations; for instance you might -want to be able to switch between two synthesis algorithms. To do this, put -each algorithm in its own subpatch (which can have sub-sub patches in turn, for -a voice bank for instance), and switch each one off as you switch the other one -on. Beware of clicks; if you have a line~ controlling output level, give it -time to ramp to zero before you switch it off or it will be stuck at a nonzero +interaction, or to reduce "block delay" in feedback algorithms. At the extreme, +setting the block size to 1 allows you to write your own recursive filters or +other DSP algorithms that require a 1-sample-feedback. + +

    You can use [switch~] to budget your DSP computations. For instance you might +want to be able to switch between two synthesis algorithms. To do this, put +each algorithm in its own subpatch (which can have sub-subpatches in turn, for +a voice bank for instance,) and switch each one off as you switch the other one +on. Beware of clicks; if you have a [line~] controlling output level, give it +time to ramp to zero before you switch it off or it will be stuck at a non-zero value for the next time it comes back on. -

    When a subpatch is switched off its audio outputs generate zeros; this -costs a fairly small overhead; a cheaper way to get outputs is to use throw~ -inside the switched module and catch~ outside it. - -

    2.4.5. nonlocal signal connections

    - -

    You may wish to pass signals non-locally, either to get from one window to another, or -to feed a signal back to your algorithm's input. This can be done using -throw~/catch~, send~/receive~, or delwrite~/delread~ pairs. Throw~ and catch~ -implement a summing bus; throw~ adds into the bus and catch~ reads out the -accumulated signal and zeros the bus for the next time around. There can be -many throw~ objects associated with a single catch~, but a throw~ can't talk to -more than one catch~. You can reset the destination of a throw~ if you want to. - -

    Send~ just saves a signal which may then be receive~d any number of times; but -a receive~ can only pick up one send~ at a time (but you can switch between -send~s if you want.) - -

    Don't try to throw~ and catch~ or send~ and receive~ between windows with -different block sizes. The only re-blocking mechanisms which are well tested -are inlet~ and outlet~. - -

    When you send a signal to a point that is earlier in the sorted list of tilde -objects, the signal doesn't get there until the next cycle of DSP computation, -one block later; so your signal will be delayed by one block (1.45 msec by -default.) Delread~ and delwrite~ have this same restriction, but here the 1.45 -msec figure gives the minimum attainable delay. For non-recursive algorithms, a -simple flanger for example, you might wish to ensure that your delread~ is -sorted after your delwrite~. The only way to ensure this is to create the -delread~ after you created the delwrite~; if things get out of whack, just -delete and re-create the delread~. - -

    2.4.6. multichannel signals

    - -

    As of Pd version 0.54, signals may be multichannel. Every signal has a -length equal to the window's block size (64 by default), and also has a -channel count which is 1 by default. The snake~ object can combine any -number of single-channel signals into a multichannel one, or alternatively can -split a multichannel signal into its component single-channel ones. Non-local -connections (send~, receive~, throw~, catch~, inlet~, outlet~) can be used to -pass multichannel signals from window to window, and dac~ and adc~ can input and -output several inputs or outputs into, or out of, one multichannel signal. - -

    The receive~, catch~, and adc~ objects take arguments to specify the desired -number of channels. - -

    Stateless objects, which have no memory from one DSP tick to the next, have -all been adapted to handle multichannel inputs and outputs. The arithmetic and -math objects (+~, -~, *~ ,/~, wrap~, sqrt~, and so on) use their inputs to determine -their channel counts. Binary operations like "+" can combine single- and -multiple-channel inputs. - -

    Other objects such as filters or oscillators have not been adapted for -multichannel signals because there might be many ways to design multichannel -versions of them. Instead, you can use the clone object to perform general -operations on multichannel signals. Signal inputs and outputs of cloned patches -can be used to distribute multichannel signals among the individual cloned +

    When a subpatch is switched off, its audio outputs generate zeros, which +costs a fairly small overhead. A cheaper way to get outputs is to use [throw~] +inside the switched module and [catch~] outside it. + +

    2.5.5. Nonlocal signal connections

    + +

    You may wish to pass signals non-locally, either to get from one window to +another, or to feed a signal back to your algorithm's input. This can be done +using [throw~]/[catch~], [send~]/[receive~], or [delwrite~]/[delread~] or +[delread4~] pairs. Both, [throw~] and [catch~] implement a summing bus; [throw~] +adds into the bus and [catch~] reads out the accumulated signal and zeros the +bus for the next time around. There can be many [throw~] objects associated with +a single [catch~], but a [throw~] can't talk to more than one [catch~]. You can +reset the destination of a [throw~] if you want to. + +

    On the other hand, [send~] just saves a signal which may then be received +by a [receive~] object any number of times; but a [receive~] can only pick up +one [send~] at a time (you can switch between [send~] objects if you want though.) + +

    Don't try to [throw~] and [catch~] or [send~] and [receive~] between windows +with different block sizes. The only well tested re-blocking mechanisms are +[inlet~] and [outlet~]. + +

    When you send a signal to a point that is earlier in the sorted list of +tilde objects, the signal doesn't get there until the next cycle of DSP +computation (one block later,) so your signal will be delayed by one block +(1.45 msec by default.) The [delwrite~] and [delread~]/[delread4~] have this +same restriction, but here, the 1.45 msec are minimum attainable delay. + +

    2.5.6. Multichannel signals

    + +

    As of Pd version 0.54-0, signals may be multichannel. Every signal has a +length equal to the window's block size (64 by default,) and also has a +channel count which is 1 by default. The [snake~] object can combine +any number of single-channel signals into a multichannel one, or alternatively +can split a multichannel signal into its component single-channel ones. +Non-local connections ([send~], [receive~], [throw~], [catch~], [inlet~] and +[outlet~]) can be used to pass multichannel signals from window to window, and +[dac~] and [adc~] can input and output several inputs or outputs into, or out of +one multichannel signal. + +

    The [receive~], [catch~], and [adc~] objects take arguments to specify the +desired number of channels. + +

    Stateless objects, which have no memory from one DSP tick to the next, have +all been adapted to handle multichannel inputs and outputs. The arithmetic and +math objects ([+~], [-~], [*~], [/~], [wrap~], [sqrt~] and so on) use their +inputs to determine their channel counts. Binary operations like [+~] can combine +single- and multichannel inputs. + +

    Other objects, such as filters or oscillators, have not been adapted for +multichannel signals, because there might be many ways to design multichannel +versions of them. Instead, you can use the [clone] object to perform general +operations on multichannel signals. Signal inputs and outputs of cloned patches +can be used to distribute multichannel signals among the individual cloned patches. -

    2.5. scheduling

    +

    2.6. Scheduling

    Pd uses 64-bit floating point numbers to represent time, providing sample -accuracy and essentially never overflowing. Time appears to the user +accuracy and essentially never overflowing. Time appears to the user in milliseconds. -

    2.5.1. audio and messages

    +

    2.6.1. Audio and messages

    -

    Audio and message processing are interleaved in Pd. Audio processing is -scheduled every 64 samples at Pd's sample rate; at 44100 Hz. this gives a -period of 1.45 milliseconds. You may turn DSP computation on and off by -sending the "pd" object the messages "dsp 1" and "dsp 0." +

    Audio and message processing are interleaved in Pd. Audio processing +is scheduled every block (64 samples by default) at Pd's sample rate, which +is 44100 Hz by default and results in a period of approximately 1.45 +milliseconds. You may turn DSP computation on and off in a patch by sending +the messages "dsp 1" and "dsp 0" to "pd". -

    In the intervals between, delays might time out or external conditions -might arise (incoming MIDI, mouse clicks, or whatnot). These may cause a +

    + dsp on and off on patch level +

    + +

    In the intervals between, delays might time out or external conditions +might arise (incoming MIDI, mouse clicks or whatnot.) These may cause a cascade of depth-first message passing; each such message cascade is completely -run out before the next message or DSP tick is computed. Messages are never +run out before the next message or DSP tick is computed. Messages are never passed to objects during a DSP tick; the ticks are atomic and parameter changes sent to different objects in any given message cascade take effect simultaneously. -

    In the middle of a message cascade you may schedule another one at a delay -of zero. This delayed cascade happens after the present cascade has finished, +

    In the middle of a message cascade, you may schedule another one at a delay +of zero. This delayed cascade happens after the present cascade has finished, but at the same logical time. -

    2.5.2. computation load

    +

    2.6.2. Computation load

    -

    The Pd scheduler maintains a (user-specified) lead on its computations; +

    The Pd scheduler maintains a (user-specified) lead on its computations; that is, it tries to keep ahead of real time by a small amount in order to be -able to absorb unpredictable, momentary increases in computation time. This -is specified using the "audiobuffer" or "frags" command line flags (see getting Pd to run ). +able to absorb unpredictable, momentary increases in computation time. This +is specified using the "-audiobuf" and "-blocksize" command line flags +(see Getting Pd to run .) -

    If Pd gets late with respect to real time, gaps (either occasional or -frequent) will appear in both the input and output audio streams. On the +

    If Pd gets late with respect to real time, gaps (either occasional or +frequent) will appear in both the input and output audio streams. On the other hand, disk streaming objects will work correctly, so that you may use -Pd as a batch program with soundfile input and/or output. The "-nogui" +Pd as a batch program with soundfile input and/or output. The "-nogui" and "-send" startup flags are provided to aid in doing this. -

    Pd's "realtime" computations compete for CPU time with its own GUI, which -runs as a separate process. A flow control mechanism will be provided someday +

    Pd's "realtime" computations compete for CPU time with its own GUI, which +runs as a separate process. A flow control mechanism will be provided someday to prevent this from causing trouble, but it is in any case wise to avoid -having too much drawing going on while Pd is trying to make sound. If a +having too much drawing going on while Pd is trying to make sound. If a sub-window is closed, Pd suspends sending the GUI update messages for it; -but not so for miniaturized windows as of version 0.32. You should really +but not so for minimized windows as of version 0.32 - you should really close them when you aren't using them. -

    2.5.3. determinism

    +

    2.6.3. Determinism

    -

    All message cascades that are scheduled (via "delay" and -its relatives) to happen before a given audio tick will happen as scheduled -regardless of whether Pd as a whole is running on time; in other words, -calculation is never reordered for any real-time considerations. This is done -in order to make Pd's operation deterministic. +

    All message cascades that are scheduled (via [delay] and its relatives) to +happen before a given audio tick will happen as scheduled, regardless of whether +Pd as a whole is running on time; in other words, calculation is never reordered +for any real-time considerations. This is done in order to make Pd's operation +deterministic. -

    If a message cascade is started by an external event, a time tag is given -it. These time tags are guaranteed to be consistent with the times at which +

    If a message cascade is started by an external event, a time tag is given +to it. These time tags are guaranteed to be consistent with the times at which timeouts are scheduled and DSP ticks are computed; i.e., time never decreases. (However, either Pd or a hardware driver may lie about the physical time an -input arrives; this depends on the operating system.) "Timer" objects which -measure time intervals measure them in terms of the logical time stamps of the -message cascades, so that timing a "delay" object always gives exactly the -theoretical value. (There is, however, a "realtime" object that measures real +input arrives; this depends on the operating system.) "Timer" objects which +measure time intervals, measure them in terms of the logical time stamps of the +message cascades, so that timing a [delay] object always gives exactly the +theoretical value. (There is, however, a [realtime] object that measures real time, with nondeterministic results.) -

    If two message cascades are scheduled for the same logical time, they are +

    If two message cascades are scheduled for the same logical time, they are carried out in the order they were scheduled. -

    2.6. semantics

    +

    2.7. Semantics

    -

    This section describes how objects in Pd are created, how they store data and -how object and other boxes pass messages among themselves. +

    This section describes how objects in Pd are created, how they store data +and how object and other boxes pass messages among themselves. -

    2.6.1. creation of objects

    +

    2.7.1. Creation of objects

    The text in a box has a different function depending on whether it is a message, -atom (number/symbol), or object box. In message boxes the text specifies the -message or messages it will send as output. In atom boxes the text changes +atom (number/symbol,) or object box. In message boxes, the text specifies the +message or messages it will send as output. In atom boxes, the text changes at run time to show the state of the box, which is either a number or a symbol. -

    In an object box, as in a message box, the text specifies a message; but -here the message is to be passed to Pd itself, once, and the -message's effect is to create the object in question. When you open a file, -all the objects created are created using their text as "creation messages." -If you type a new message into an object box (or change it), the old object is -destroyed and the message is used to create the new one. +

    In an object box, as in a message box, the text specifies a message; but +here, the message is to be passed to Pd itself, once, and the message's effect +is to create the object in question. When you open a file, all the objects +created are created using their text as "creation messages". If you type a new +message into an object box (or change it,) the old object is destroyed and the +message is used to create the new one. -

    The selector of the message (the first word in the message) is a selector -which Pd interprets to mean which type of object to create. Any message -arguments (called "creation arguments") are used to parameterize the object -being created. Thus in "makenote 64 250" the selector "makenote" determines -the class of object to create and the creation arguments 64 and 250 become the -initial velocity and duration. +

    The selector of the message (the first word in the message) is a selector +which Pd interprets to determine the type of object to create. Any message +arguments (called "creation arguments") are used to parametrize the object +being created. Thus, in [makenote 64 250] the selector "makenote" determines +the class of object to create and the creation arguments "64" and "250" become +the initial velocity and duration. -

    2.6.2. persistence of data

    +

    2.7.2. Persistence of data

    Among the design principles of Pd is that patches should be printable, in the sense that the appearance of a patch should fully determine its functionality. For this reason, if messages received by an object change its action, since the changes aren't reflected in the object's appearance, they are not saved as part of the file which specifies the patch and will be forgotten when the patch is -reloaded. In the same way, if you delete and then recreate an object the +reloaded. In the same way, if you delete and then recreate an object the original object's state is not retained but is instead reinitialized (possibly as specified by creation arguments.) -

    An exception is made for subpatches whose "state" is the configuration of +

    An exception is made for subpatches whose "state" is the configuration of the subpatch; as a special case, this configuration is restored when the -patch is read from a file. Also, if you rename the subpatch, for instance -typing "pd jane" instead of "pd spot," the contents of the patch are preserved +patch is read from a file. Also, if you rename the subpatch, for instance +typing "pd jane" instead of "pd spot", the contents of the patch are preserved and only the text in the object box and the window title of the subpatch are changed. -

    It is probably bad style to specify creation arguments ala "makenote 64 250" +

    It is probably bad style to specify creation arguments ala [makenote 64 250] if you are going to override them later; this is confusing to anyone who tries to understand the patch. -

    2.6.3. message passing

    +

    2.7.3. Message passing

    Messages in Pd consist of a selector (a symbol) and zero or more arguments -(which may be symbols or numbers). To pass a message to an object, Pd first -checks the selector against the class of the object. Message boxes all are +(which may be symbols or numbers.) To pass a message to an object, Pd first +checks the selector against the class of the object. Message boxes all are of one class and they all take the same incoming messages and dispense them -according to their state, that is, the text typed into the box. The same +according to their state, that is, the text typed into the box. The same holds for atom boxes (number or symbol) except that their state may change -(it consists of the number or symbol showing). +(it consists of the number or symbol showing.) -

    Object boxes may have many different classes. The class is usually +

    Object boxes may have many different classes. The class is usually determined by the selector of the creation message, i.e., the first atom of the creation message which is usually a symbol. -

    Each class comes with a fixed collection of messages it may be sent. For -example, the "float" or "f" object takes "bang" and "float." These messages -are sent to "float" objects (objects whose class is float) via the leftmost, -hot inlet. (The right inlet is a separate, auxiliary object.) Objects of +

    Each class comes with a fixed collection of messages it may be sent. For +example, the [float] or [f] object takes "bang" and "float". These messages +are sent to [float] objects (objects whose class is float) via the leftmost, +hot inlet (the right inlet is a separate, auxiliary object.) Objects of class "float" respond to the message "bang" by outputting their current value, -that is, by sending a "float" message to their outlet. They respond to "float" +that is, by sending a "float" message to their outlet. They respond to "float" messages by setting their value and then outputting it. -

    Each other class (like "float") in Pd has its own protocol for responding +

    Each other class (like [float]) in Pd has its own protocol for responding to messages it is sent, and may take "float" and "bang" messages, or others in addition or instead of them. -

    2.6.4. inlets and lists

    +

    2.7.4. Inlets and lists

    -

    The leftmost connection point at the top of most objects represents the object -itself. Any other dark rectangle is a separate object called an "inlet" -although in Pd there are 4 individual inlet classes. The class of the inlet -determines which messages it will take: symbol, float, or other; and the inlet -forwards the message either to the object proper or to some proxy, usually -one that the object creates for the occasion. +

    The leftmost connection point at the top of most objects represents the +object itself. Any other dark rectangle is a separate object called an "inlet", +although there are 4 different inlet classes in Pd. The class of the inlet +determines the type of message it will accept: symbol, float or other; and the +inlet passes the message either to the object itself or to a proxy, usually +one created by the object for the occasion. -

    Unless they arrange otherwise by defining a "list" method, objects respond -to the "list" message by distributing the arguments of the message to their -inlets, except for the first argument which is passed as a "float" or -"symbol" message to the object proper. +

    Unless they are specified otherwise by defining a "list" method, objects +respond to the "list" message by distributing the arguments of the message to +their inlets, except for the first argument, which is passed to the main object +as a "float" or "symbol" message. -

    2.6.5. dollar signs

    +

    2.7.5. Dollar signs

    In message or object boxes, message arguments starting with a dollar sign and a number (like "$1" or "$3-bazoo") are variables which are substituted with values supplied as part of the environment the message is passed in. In the case of message boxes, the environment consists of the arguments of the "list" message (possibly extrapolated from "bang," "float," -or other) that the message box is responding to. Thus, if a message box gets +or other) that the message box is responding to. Thus, if a message box gets "23 skidoo" and if it contains the text, "$2 until $1," out comes the message, "skidoo until 23." -

    Object boxes contain text which forms a message to be sent to Pd to create -and initialize the object. Here, $1, etc., are taken from the context in which -the patch was loaded. When the patch is a new document or opened from a file -the "$" variables are undefined. But if the patch is an abstraction (see the -next section) they are -taken from the abstractions' creation arguments. +

    Object boxes contain text which forms a message to be sent to Pd to create +and initialize the object. Here, $1, etc., are taken from the context in which +the patch was loaded. When the patch is a new document or opened from a file +the "$" variables are undefined. But if the patch is an abstraction (see the +next section) they are taken from the abstractions' creation arguments. -

    Constructions such as "$1-x" are expanded by string concatenation. This +

    Constructions such as "$1-x" are expanded by string concatenation. This is the mechanism for making local variables. In particular, $0 is a counter, where every patch gets its own value. In an abstraction this guarantees a unique ID number to that abstraction, so sends and receives with names like "$0-bear" can be used as local send/receive pairs. This is also useful for things like -array names, value names and text names (as defined in the text object). +array names, value names and text names (as defined in the text object.) -

    Occasionally you may want to have double or triple substitutions; this can +

    Occasionally, you may want to have double or triple substitutions; this can be done one stage at a time by nesting abstractions (with each subpatch adding its own $-variable to a symbol and passing that on as argument to a further abstraction.) -

    For example, if you want to get dog-food, dog-ears, and cat-food, for -example, have an abstraction "a1" that invokes an abstraction "a2" twice, as -"a2 $1-food" and "a2 $1-ears", and then in a third patch call a1 twice, as -"a1 cat" and "a1 dog". Inside the four "a2" copies, $1 will evaluate to +

    For example, if you want to get dog-food, dog-ears, and cat-food, for +example, have an abstraction "a1" that invokes an abstraction "a2" twice, as +"a2 $1-food" and "a2 $1-ears", and then in a third patch call a1 twice, as +"a1 cat" and "a1 dog". Inside the four "a2" copies, $1 will evaluate to "dog-food", "cat-food", "dog-ears", and "cat-ears". -

    2.7. subpatches

    +

    2.8. Subpatches

    Pd offers two mechanisms for making subpatches, called "one-off subpatches" -and "abstractions." In either case the subpatch appears as an object box -in a patch. If you type "pd" or "pd my-name" into an object box, this creates -a one-off subpatch. For instance, in this fragment: +and "abstractions." In either case the subpatch appears as an object box +in a patch. If you type [pd] or [pd my-name] into an object box, this creates +a one-off subpatch. For instance, in this fragment: -

    subpatch

    +

    subpatch

    the box in the middle, if clicked on, opens the sub-patch shown here: -

    open subpatch window

    +

    open subpatch window

    -

    The contents of the subpatch are saved as part of the parent patch, in -one file. If you make several copies of a subpatch you may change them +

    The contents of the subpatch are saved as part of the parent patch, in +one file. If you make several copies of a subpatch you may change them individually. -

    The objects, "inlet,", "inlet~," "outlet," and "outlet~,", when put in a +

    The objects [inlet], [inlet~], [outlet] and [outlet~], when put in a subpatch, create inlets and outlets for the object box containing the subpatch. -This works equally for one-off subpatches and abstractions and only accept control -data messages. The inlet~ and outlet~ versions create inlets and outlets for audio -signals. Note you can also mix control messages in an inlet~ with the 'fwd' argument -but a signal outlet only takes signals. Inlets and outlets appear on the invoking box -in the same left-to-right order as they appear in the subpatch. +This works equally for one-off subpatches and abstractions and only accept +control data messages. The [inlet~] and [outlet~] versions create inlets and +outlets for audio signals. Note you can also mix control messages in an [inlet~] +via its right outlet, but a signal outlet only takes signals. Inlets and outlets +appear on the invoking box in the same left-to-right order as they appear in the +subpatch. -

    2.7.1. abstractions

    +

    2.8.1. Abstractions

    -

    To make an abstraction, save a patch with a name such as "abstraction1.pd" -and then invoke it as "abstraction1" in an object box: +

    To make an abstraction, save a patch with a name such as "abstraction1.pd" +and then invoke it in an object box as [abstraction1]: -

    abstraction

    +

    abstraction

    -

    Here we're invoking a separate file, "abstraction1.pd", which holds the -patch shown here (the border is the same as for the subpatch above): +

    Here, we're invoking a separate file, "abstraction1.pd", which holds the +patch shown here: -

    abstraction example

    +

    abstraction example

    -

    You may create many instances of "abstraction1" or invoke it from several -different patches; and changing the contents of "abstraction1" will affect all -invocations of it as they are created. An analogy from the "c" programming -language is that one-off subpatches are like bracketed blocks of code and -abstractions are like subroutines. +

    You may create many instances of [abstraction1] or invoke it from several +different patches; changing and saving the contents of [abstraction1] will +affect all invocations of it as they are created. An analogy from the "c" +programming language is that one-off subpatches are like bracketed blocks of +code and abstractions are like subroutines. -

    Abstractions are instantiated by typing the name of a patch (minus the ".pd" -extension) into an object box. You may also type arguments; for instance if -you have a file "my-abstraction.pd" you may type "my-abstraction 5" to set the -variable $1 to 5. This is defined only for object boxes (not for messages) in -the abstraction. (For message boxes, "$1", etc, have a different meaning as -described above.) If you want to send a message with a $1 in the sense of a +

    Abstractions are instantiated by typing the name of a patch (minus the ".pd" +extension) into an object box. You may also type arguments; for instance if +you have a file "my-abstraction.pd" you may have [my-abstraction 5] to set the +variable $1 to 5. This is defined only for object boxes (not for messages) in +the abstraction (for message boxes, "$1", etc, have a different meaning as +described above.) If you want to send a message with a $1 in the sense of a creation argument of an abstraction, you must generate it with an object box -such as "float $1", "symbol $1", or perhaps "pack $1 $2", which may then be +such as [float $1], [symbol $1], or perhaps [pack $1 $2], which may then be sent to a message box. -

    The corresponding feature in Max (both Opcode and Ircam) was the "#1" -construct. In a Max abstraction, "#1", etc., are replaced by the creation -argument. This has the disadvantage that you can't edit the abstraction as -instantiated in the patch since the "#" variables are substituted. In Pd the +

    The corresponding feature in Max (both Opcode and Ircam) was the "#1" +construct. In a Max abstraction, "#1", etc., are replaced by the creation +argument. This has the disadvantage that you can't edit the abstraction as +instantiated in the patch since the "#" variables are substituted. In Pd the "$" variables in object boxes are spelled literally as "$" variables so that -it's meaningful to edit them from within their calling patch. On the Pd side, -however, there is the disadvantage that it's confusing to have "$" expanded at -a different time in an object box than in a message box. In an object box, the +it's meaningful to edit them from within their calling patch. On the Pd side, +however, there is the disadvantage that it's confusing to have "$" expanded at +a different time in an object box than in a message box. In an object box, the "$" argument is expanded at creation time, and in a message box, at message time. -

    A "clone" object is provided to automatically create and manage multiple copies -of an abstraction. You can use it to make voice banks for polyphonic synthesis, +

    A [clone] object is provided to automatically create and manage multiple copies +of an abstraction. You can use it to make voice banks for polyphonic synthesis, for example. -

    2.7.2. Graph-on-parent subpatches

    +

    2.8.2. Graph-on-parent subpatches

    If you open the "properties" dialog for a subpatch or an abstraction, you can check the "graph on parent" box to have the controls of the subpatch/abstraction -appear on the parent. For instance, here is an invocation of "abstraction2": +appear on the parent. For instance, here is an invocation of [abstraction2]: -

    graph-on-parent abstraction

    +

    graph-on-parent abstraction

    where the patch "abstraction2.pd" contains: -

    inside graph-on-parent abstraction

    +

    inside graph-on-parent abstraction

    Here, the number box in the abstraction shows up on the box that invoked -the abstraction. The "graph on parent" flag is set in the abstraction -(and is saved as part of the abstraction); to set it, open the "properties" +the abstraction. The "graph on parent" flag is set in the abstraction +(and is saved as part of the abstraction;) to set it, open the "properties" dialog for the "abstraction2" canvas by right-clicking on any white space in the patch. -

    To open the subpatch, right click on the object and select "open". (On -Macintoshes without a 2-button mouse, you can double-click in edit mode -instead.) It doesn't work just to click on the object in run mode since clicks -are sent to visible controls and/or arrays. +

    To open the subpatch, right click on the object and select "Open". It doesn't +work just to click on the object in run mode since clicks are sent to visible +controls and/or arrays. -

    When the sub-patch is closed, all controls in it appear on the object +

    When the sub-patch is closed, all controls in it appear on the object instead; so the number box in the sub-patch in the example above is the same -one as you see in the box. Only controls are made visible in this way +one as you see in the box. Only controls are made visible in this way. -

    2.8. numeric arrays

    +

    2.9. Numeric arrays

    -

    Linear arrays of numbers recur throughout the computer musician's bag of tricks, -beginning with the wavetable oscillator. The wavetable oscillator later was -reinvented as the looping sampler. Also, table lookup is used for nonlinear -distortion of audio signals. In the domain of control, arrays of numbers +

    Linear arrays of numbers recur throughout the computer musician's bag of +tricks, beginning with the wavetable oscillator. The wavetable oscillator later +was reinvented as the looping sampler. Also, table lookup is used for nonlinear +distortion of audio signals. In the domain of control, arrays of numbers can specify control mappings, probability densities, voicing data, and much more. -

    Arrays in Pd should be allocated (and possible read in from a file) before +

    Arrays in Pd should be allocated (and possible read in from a file) before beginning to make sound, since memory allocation and disk operations may take -long enough to cause audio buffer overruns or underruns. Pd provides two ways -to define new arrays, as "graphs" and "tables". In either case the array -has a pre-defined name and size (i.e., number of points). Elements of the -array are stored as floating-point numbers, 4 bytes apiece +long enough to cause audio buffer overruns or underruns. Pd provides two ways +to define new arrays, as "graphs" and "tables". In either case, the array +has a pre-defined name and size (i.e., number of points.) Elements of the +array are stored as floating-point numbers, 4 bytes apiece. -

    If you use an array to store a one-second sound at 44.1 kHz you will need -176 kilobytes, or a one-minute sound, 10.6 megabytes. To store a sound with +

    If you use an array to store a one-second sound at 44.1 kHz, you will need +176 kilobytes, for a one-minute sound 10.6 megabytes. To store a sound with two or more channels, use a separate array for each channel. -

    Arrays are also useful as transfer functions, for example for nonlinear +

    Arrays are also useful as transfer functions, for example for nonlinear distortion of an audio signal, or to map a control onto a synthesis parameter. -In situations like this one typically uses much shorter arrays, of no more -than a few hundred elements. They are also useful for storing measured +In situations like this, one typically uses much shorter arrays of no more +than a few hundred elements. They are also useful for storing measured spectra derived from the fft~ objects, and probably for many other uses. -

    Arrays usually appear within subpatches created to house them, whether +

    Arrays usually appear within subpatches created to house them, whether in "graph on parent" form (so that you see them within a rectangle drawn on -the containing patch), or as a regular subpatch (which you see as a text box.) +the containing patch,) or as a regular subpatch (which you see as a text box.) In the "graph on parent" form, an array appears as shown: -

    array

    +

    array

    -

    Arrays are indexed from 0 to N-1 where N is the number of points in the -array. You can read an array value using the tabread object: +

    Arrays are indexed from 0 to N-1 where N is the number of points in the +array. You can read an array value using the tabread object: -

    array indexing

    +

    array indexing

    -

    Here we see that the third point of the array (index 2) has the value 0.4. -To write into the array you can use the tabwrite object: +

    Here, we see that the third point of the array (index 2) has the value 0.4. +To write into the array, you can use the tabwrite object: -

    setting an value in an array

    +

    setting an value in an array

    -

    In this example, sending the message sets the third element to 0.5. (You +

    In this example, sending the message sets the third element to 0.5. (You may also send the two numbers to the two inlets separately.) -

    The two previous examples showed control operations to read and write from -and to arrays. These may also be done using audio signals. For example, -the patch below creates a 440 Hz. tone with "array1" as a waveform: +

    The two previous examples showed control operations to read and write from +and to arrays. These may also be done using audio signals. For example, +the patch below creates a 440 Hz tone with "array1" as a waveform: -

    setting an array with a waveform

    +

    setting an array with a waveform

    -

    Here phasor~'s outputs a sawtooth wave, repeating 440 times per second, whose -output range is from 0 to 1. The multiplier and adder adjust the range from -1 to 11, and then the values are used as indices for tabread4~, which is a -4-point interpolating table lookup module. (Much more detail is available in -the audio example patches in the "pure documentation" series.) +

    Here, [phasor~] outputs a ramp whose output range is from 0 to 1, repeating +440 times per second. The multiplier and adder adjust the range from 1 to 11 +and then the values are used as indices for [tabread4~], which is a 4-point +interpolating table lookup module. (Much more detail is available in the +"3.audio.examples" series in the documentation folder.) -

    To create a new array, select "array" from the "put" menu. Up will come -a dialog window to set initial properties of the array. By default, a -new graph is created to hold the array, but it may also be housed in the -most recently created graph instead. Other properties may be specified there -and/or changed later using the "properties" dialog. +

    To create a new array, select "array" from the Put menu. A dialog +will appear to set initial properties of the array. By default, a new graph is +created to hold the array, but it may also be housed in the most recently +created graph instead. Other properties may be specified there and/or changed +later using the "properties" dialog. -

    If you select "properties" on an array in a graph, you get two dialogs, one -for the array and one for the graph. The array dialog looks like this: +

    If you select "properties" on an array in a graph, you get two dialogs, one +for the array and one for the graph. The array dialog looks like this: -

    array properties window

    +

    array properties window

    You may use this to change the name and size, in addition to another property, -"save contents". If "save contents" is selected, the array's values are stored +"save contents". If "save contents" is selected, the array's values are stored in the containing patch; otherwise they're initialized to zero each time the -patch is reloaded. If you intend to use arrays to store sounds, you will -probably not wish to store them in the patch but as separate soundfiles. This -will be more efficient, and you may also then use a sound editor to modify them +patch is reloaded. If you intend to use arrays to store sounds, you will +probably not wish to store them in the patch but as separate soundfiles. This +will be more efficient and you may also then use a sound editor to modify them outside Pd. -

    If you check "delete me" and then "OK", the array will be deleted. This is -an odd interface for deleting an object, and is only provided because Pd -lacks a mechanism for selecting arrays (so that "cut" could serve). +

    If you check "Delete array" and then "OK", the array will be deleted. This +is an odd interface for deleting an object, and is only provided because Pd +lacks a mechanism for selecting arrays (so that "cut" could serve this purpose.) -

    The graph dialog (which also pops up) is shown here: +

    The graph dialog (which also pops up) is shown here: -

    graph properties

    +

    graph properties

    -

    The X bounds initially range from 0 to the number of points in the table +

    The X bounds initially range from 0 to the number of points in the table minus one (this is a good choice for arrays, although graphs holding other -kinds of objects might require other X bounds.) The Y bounds should be +kinds of objects might require other X bounds.) The Y bounds should be chosen to reflect the natural range of the table, so that stored sounds would naturally range from -1 to 1, but a sequence of frequency values might -range from 0 to 20,000. Finally, you choose the screen size of the graph, +range from 0 to 20,000. Finally, you choose the screen size of the graph, width and height, in screen pixels. -

    Many other operations are defined for arrays; see the related patches +

    Many other operations are defined for arrays; see the related patches in the tutorial (starting at 2.control/15.array.pd) for more possibilities. -

    2.9. Data structures

    +

    2.10. Data structures

    +

    (Note: this section is adapted from an article submitted to ICMC 2002.) -

    The original idea in developing Pd was to make a real-time computer music +

    The original idea in developing Pd was to make a real-time computer music performance environment like Max, but somehow to include also a facility for making computer music scores with user-specifiable graphical representations. This idea has important precedents in Eric Lindemann's Animal and Bill Buxton's SSSP. An even earlier class of precedents lies in the rich variety of paper scores for electronic music before it became practical to offer a computer-based score editor. In this context, scores by Stockhausen ( -Kontakte and Studie II) and Yuasa (Toward the Midnight Sun) -come most prominently to mind, but also Xenakis's Mycenae-alpha, which, +Kontakte and Studie II) and Yuasa (Toward the Midnight Sun) +come most prominently to mind, but also Xenakis's Mycenae-alpha, which, although it was realized using a computer, was scored on paper and only afterwards laboriously transcribed into the computer. -

    Pd is designed to to offer an extremely unstructured environment for -describing data structures and their graphical appearance. The underlying +

    Pd is designed to to offer an extremely unstructured environment for +describing data structures and their graphical appearance. The underlying idea is to allow the user to display any kind of data he or she wants to, -associating it in any way with the display. To accomplish this Pd introduces +associating it in any way with the display. To accomplish this Pd introduces a graphical data structure, somewhat like a data structure out of the C programming language, but with a facility for attaching shapes and colors to -the data, so that the user can visualize and/or edit it. The data itself can +the data, so that the user can visualize and/or edit it. The data itself can be edited from scratch or can be imported from files, generated algorithmically, or derived from analyses of incoming sounds or other data -streams. - -Here is one simple -example of a very short musical sketch realized using Pd: +streams. Here is one simple example of a very short musical sketch realized using Pd: -

    graphical score

    +

    graphical score

    -

    The example, which only lasts a few seconds, is a polyphonic collection of -time-varying noise bands. The graphical "score" consists of six objects, each +

    The example, which only lasts a few seconds, is a polyphonic collection of +time-varying noise bands. The graphical "score" consists of six objects, each having a small grab point at left, a black shape to show dynamic, and a colored -shape to show changing frequency and bandwidth. The horizontal axis represents +shape to show changing frequency and bandwidth. The horizontal axis represents time and the vertical axis, frequency (although, as explained later, this -behavior isn't built into pd). The dynamic and frequency shapes aren't +behavior isn't built into pd.) The dynamic and frequency shapes aren't constrained to be connected or even to be proximate, but since they pertain to -the same sound their horizontal positions line up. In this example the last +the same sound their horizontal positions line up. In this example the last (furthest-right) object is percussive (as seen by the black shape) and has a fixed frequency and bandwidth, whereas the large, articulated shape in the -center has a complicated trajectory in both frequency and dynamic. The color +center has a complicated trajectory in both frequency and dynamic. The color of the frequency trace determines the voice number used to realize it. -

    Each object is thus composed of a combination of scalar values (color; +

    Each object is thus composed of a combination of scalar values (color; aggregate position in X and Y coordinates) and array values (time/value pairs for the black traces and time/frequency/bandwidth triples for the -colored ones.) This is all specified by the user using Pd's "template" +colored ones.) This is all specified by the user using Pd's "template" mechanism. -

    Here is the template associated with the graphical objects +

    Here is the template associated with the graphical objects shown above: -

    template for graphical score

    +

    template for graphical score

    -

    Templates consist of a data structure definition (the "struct" object) and -zero or more drawing instructions ("filledpolygon" and "plot"). The "struct" -object gives the template the name, "template-toplevel." The data structure +

    Templates consist of a data structure definition (the [struct] object) and +zero or more drawing instructions (such as [filledpolygon] and [plot].) The [struct] +object gives the template the name, "template-toplevel." The data structure is defined to contain three floating point numbers named "x", "y", and "voiceno," and two arrays, one named "pitch" whose elements belong to another template named "template-pitch," and similarly for the array "amp." -

    In general, data structures are built from four data types: scalar floats +

    In general, data structures are built from four data types: scalar floats and symbols, arrays (whose elements share another, specified template) and -lists (whose elements may have a variety of templates). The contents of a Pd -window themselves form a list. Pd's correlate of Max's "table" object is +lists (whose elements may have a variety of templates.) The contents of a Pd +window themselves form a list. Pd's correlate of Max's [table] object is implemented as a top-level array whose elements are scalars containing a single floating-point number. -

    Data structures in Pd may nest arbitrarily deeply using the array and list -types. For example, a collection of sinusoidal tracks from an analysis engine +

    Data structures in Pd may nest arbitrarily deeply using the array and list +types. For example, a collection of sinusoidal tracks from an analysis engine could be implemented as an array of arrays of (pitch, amplitude) pairs; this appears as example 12 in Pd's FFT object online tutorial. -

    After the "struct" object in the template shown above, the remaining -three objects are drawing instructions , first for a rectangle -("filledpolygon"), and then for two arrays. The various graphical +

    After the [struct] object in the template shown above, the remaining +three objects are drawing instructions , first for a rectangle +([filledpolygon],) and then for two arrays. The various graphical attributes that are specified for drawing instructions may be numerical constants or data structure field names; in the latter case the value varies -depending on the data. For instance, the second creation argument to -"plot" is the color. The first "plot" plots the "amp" field and the -color is given as 0, or black. The second one plots "pitch" using the color +depending on the data. For instance, the second creation argument to +[plot] is the color. The first [plot] plots the "amp" field and the +color is given as 0, or black. The second one plots "pitch" using the color "voiceno". In this way the color of the second trace is attached to the "voiceno" slot in the data structure, so that color will vary according to its "voiceno" slot. -

    2.9.1. Traversal

    +

    2.10.1. Traversal

    -

    Pd objects are provided to traverse lists and arrays, and to address +

    Pd objects are provided to traverse lists and arrays, and to address elements of data structures for getting and setting. Here is a patch showing how these facilities could be used, for example, to sequence the graphical score shown above: -

    traversal example patch

    +

    traversal example patch

    -

    Pd has no built-in sequencer, nor even any notion that "x" values should be +

    Pd has no built-in sequencer, nor even any notion that "x" values should be used as a time axis. (However, a "sort" function is provided, which reorders a list from left to right, on the assumption that users might often want to use Pd data collections as x-ordered sequences.) Recording sequences of events into @@ -1160,82 +1593,79 @@

    2.9.1. Traversal

    include random re-orderings of events, score following, self-modifying scores, reactive improvisation, and perhaps much more. -

    Traversal of data is made possible by adding a new type of atom, "pointer", -to the two previously defined types that make up messages (numbers and symbols). +

    Traversal of data is made possible by adding a new type of atom, "pointer", +to the two previously defined types that make up messages (numbers and symbols.) Unlike numbers and symbols, pointers have no printed form and thus can't be -uttered in message boxes. Traversal objects such as "pointer" and "get" +uttered in message boxes. Traversal objects such as [pointer] and [get] (among several others) can generate or use pointers. The pointer data -type is also integrated into pipe-fitting objects such as "pack", -"unpack", and "route". +type is also integrated into pipe-fitting objects such as [pack], +[unpack], and [route]. -

    In the patch shown above, the topmost "pointer" object holds a pointer to -the next object to "play" (by sending it to one of the "voice" -abstractions at bottom.) The pointer object takes a "traverse" message to -set it to the head of the list (named "pd-data"), and "next" messages to +

    In the patch shown above, the topmost [pointer] object holds a pointer to +the next object to "play" (by sending it to one of the [voice] +abstractions at bottom.) The pointer object takes a "traverse" message to +set it to the head of the list (named "pd-data",) and "next" messages to move to (and output) the next datum in the list (i.e., the next in the list of -six objects in the score). Another "pointer" object is also used, further +six objects in the score.) Another [pointer] object is also used, further down, as a storage cell for pointers just as "float" is for numbers. -

    The center of any sequencer is always the "delay" object, which must be +

    The center of any sequencer is always the [delay] object, which must be fed the time difference between each event (including the non-event of hitting -"start") and the next. As we extract each of the six objects in the score, we +"start") and the next. As we extract each of the six objects in the score, we must wait the delay for playing that object, and then send its pointer to one -of the "voice" abstractions to play it. However, we have to inspect the -object itself to know the delay before playing it. So, in the loop, we peel off +of the [voice] abstractions to play it. However, we have to inspect the +object itself to know the delay before playing it. So, in the loop, we peel off the first remaining object to play and inspect the time difference between it and the previous one, using this value to set the delay, but also storing the -pointer in the lower "pointer" and "pack" objects. - -

    The time difference needed to set the delay object is obtained using the -"get template-toplevel x" object. (This is converted to incremental time -("-"), corrected for tempo, and fed to the delay.) Pd provides -the "get" and "set" -objects for reading and writing values from data structures. -The two "get" objects shown here obtain the "x" and "voiceno" fields -of the current object. The template name (template-toplevel) is supplied -to the "get" objects so that they can look up the offset of the necessary -field(s) in advance, for greater run-time efficiency. - -

    Once the delay has expired, the object's pointer is recalled (the lower -"pointer" object), and the voice number is recalled. This is packed with +pointer in the lower [pointer] and [pack] objects. + +

    The time difference needed to set the [delay] object is obtained using the +[get template-toplevel x] object. This is converted to incremental time with +[-], corrected for tempo, and fed to the delay. Pd provides the [get] and [set] +objects for reading and writing values from data structures. The two [get] +objects shown here obtain the "x" and "voiceno" fields of the current object. +The template name (template-toplevel) is supplied to the [get] objects so that +they can look up the offset of the necessary field(s) in advance, for greater +run-time efficiency. + +

    Once the delay has expired, the object's pointer is recalled (the lower +[pointer] object,) and the voice number is recalled. This is packed with the pointer itself and routed, so that the pointer goes to the appropriate -voice. The voice number is shown as the color of the frequency trace in -"999" units (first digit red, second green, third blue) and the "route" is -arbitrarily set up to select among the six primary and secondary colors plus +voice. The voice number is shown as the color of the frequency trace in +"999" units (first digit red, second green, third blue) and the [route] object +is arbitrarily set up to select among the six primary and secondary colors plus black. -

    The details of extracting the pitch and dynamic breakpoints from the arrays -defined in the template are managed in the "voice" abstraction. -The "voice" -abstraction receives a -pointer to a given object and manages the sequencing of the arrays; so it -contains two sequencers itself. The nesting of the overall structure of -the sequencer patch mirrors the nesting of the original data structures. -Finally, the voice abstraction puts its audio output on a summing bus. - -

    More general patches can easily be constructed which access heterogeneous lists -of objects (having different templates). In this way, an arbitrarily rich +

    The details of extracting the pitch and dynamic breakpoints from the arrays +defined in the template are managed in the [voice] abstraction. The [voice] +abstraction receives a pointer to a given object and manages the sequencing of +the arrays; so it contains two sequencers itself. The nesting of the overall +structure of the sequencer patch mirrors the nesting of the original data +structures. Finally, the voice abstraction puts its audio output on a summing bus. + +

    More general patches can easily be constructed which access heterogeneous lists +of objects (having different templates.) In this way, an arbitrarily rich personal "score language" can be developed and sequenced. -

    2.9.2. Accessing and changing data

    +

    2.10.2. Accessing and changing data

    -

    In general, accessing or changing data is done via "pointers" to -"scalars". Numbers and symbols within scalars are accessed using the -"get" object and changed, in the same way, using "set". Since lists +

    In general, accessing or changing data is done via "pointers" to +"scalars". Numbers and symbols within scalars are accessed using the +[get] object and changed, in the same way, using [set]. Since lists and arrays are composed of scalars, every actual number or symbol in a data -heap will be a number or symbol element of some scalar. To access them, it +heap will be a number or symbol element of some scalar. To access them, it suffices to have objects to chase down elements of lists and arrays (given -either a global name or a pointer to the containing scalar). +either a global name or a pointer to the containing scalar.) -

    Lists are traversed in the way shown above; to get to a sublist of a scalar, -the "get" object will provide a pointer, in the same way as it provides -"float" or "symbol" elements of scalars. For arrays, an -"element" object is provided which, given a scalar, a field name and +

    Lists are traversed in the way shown above; to get to a sublist of a scalar, +the [get] object will provide a pointer, in the same way as it provides +"float" or "symbol" elements of scalars. For arrays, an +[element] object is provided which, given a scalar, a field name and a number, chases down the numbered, scalar, element of the named array field. -

    To alter "float" or "symbol" elements of scalars is straightforward -using the "set" object, but arrays and lists can't be set by assignment; -there is no suitable data type available within messages. Lists could +

    To alter "float" or "symbol" elements of scalars is straightforward +using the [set] object, but arrays and lists can't be set by assignment; +there is no suitable data type available within messages. Lists could possibly be "settable" by passing pointers to other lists, but permitting this would have required either automatically doing deep copies of data structures to carry out the assignments, or else implementing a garbage collecting memory @@ -1245,76 +1675,76 @@

    2.9.2. Accessing and changing data

    the scalar is deleted; the data may be changed atom by atom, but primitives are not provided which would imply unpredictable execution times. -

    The "getsize" and "setsize" objects are provided to access or change -the number of elements in the array. For lists, an "append" object +

    The [getsize] and [setsize] objects are provided to access or change +the number of elements in the array. For lists, an [append] object appends a new scalar for a given template to a list, after the element pointed -to. (To insert a scalar at the beginning of a list, the pointer can be set to +to. (To insert a scalar at the beginning of a list, the pointer can be set to the "head" of the list, a formal location before the first list item.) Deletion is less flexible; the only operation is to delete an entire list. (There's no reason not to provide finer-grain deletion mechanisms except that it's not clear how to protect against stale pointers efficiently, except by voiding the entire collection of pointers into a list.) -

    2.9.3. Editing

    +

    2.10.3. Editing

    -

    The graphical score shown above can be edited by dragging breakpoints, or -by adding and deleting them, using mouse clicks. Also, entire objects or +

    The graphical score shown above can be edited by dragging breakpoints, or +by adding and deleting them, using mouse clicks. Also, entire objects or collections of them may be copied, pasted, and dragged around the screen. Alternatively, there is an editable (or computer generate-able or parse-able) text representation for the data, which may be seen or changed in a dialog window or read and written to external text files. -

    Since the graphical presentation of data objects is determined by drawing +

    Since the graphical presentation of data objects is determined by drawing instructions, the drawing instructions are interpreted backward to alter data -as a result of mouse operations. If a given graphical dimension is controlled +as a result of mouse operations. If a given graphical dimension is controlled by a variable, that variable is then controlled by dragging along that dimension; if the dimension is constant, it can't be altered by dragging. -

    Tricky situations can arise when the user changes the contents of templates. +

    Tricky situations can arise when the user changes the contents of templates. A change in drawing instructions can be accommodated by simply tracking -down and redrawing all data objects using the template. However, changing -the "struct" object itself make for less straightforward situations. The +down and redrawing all data objects using the template. However, changing +the [struct] object itself make for less straightforward situations. The user might wish to reorder fields, delete them, add new ones, or rename them. -When a "struct" object changes, Pd automatically conforms the data from the old -structure to the new one. Fields with the same name as previously are maintained -(reordering them as necessary); and if a field disappears but another of the +When a [struct] object changes, Pd automatically conforms the data from the old +structure to the new one. Fields with the same name as previously are maintained +(reordering them as necessary;) and if a field disappears but another of the same type appears, the new one(s) are taken to be renamings of the old one(s) -in order of appearance. New fields which cannot be matched in this way with +in order of appearance. New fields which cannot be matched in this way with previously existing ones are assumed to be new and are initialized. -

    It can happen that two "struct" objects compete to define the same data +

    It can happen that two [struct] objects compete to define the same data structure, or that the user reads in data from a file which expects a different -version of the structure, or alternatively, that the "struct" object for -existing data objects disappears. For this reason, Pd maintains a private -representation of the last active version of a "struct" until all -similarly named "structs," as well as all data using that "struct", have +version of the structure, or alternatively, that the [struct] object for +existing data objects disappears. For this reason, Pd maintains a private +representation of the last active version of a [struct] until all +similarly named "structs", as well as all data using that "struct", have disappeared. If the user introduces a new version of the "struct" and only later deletes the "current" one, the data is only conformed to the new version -once the old one is deleted. In this way we avoid getting into situations +once the old one is deleted. In this way we avoid getting into situations where data is left hanging without its structure definition, or where data ends -up belonging to two or more structures of the same name. The worst that can +up belonging to two or more structures of the same name. The worst that can happen is that data may lose their drawing instructions, in which case Pd supplies a simple default shape. -

    2.9.4. Limitations

    +

    2.10.4. Limitations

    -

    When examples get more complicated and/or dense than the one shown here, it +

    When examples get more complicated and/or dense than the one shown here, it becomes difficult to see and select specific features of a data collection; more work is needed to facilitate this. There should be some facility for turning drawing instructions on and off, or perhaps for switching between versions of a template, depending on the user's -desired view. There should also be a callback facility in the template for +desired view. There should also be a callback facility in the template for when an object is edited with the mouse, so that the user can bind actions to mouse clicks. -

    More generally, the collection of traversal objects that Pd provides is +

    More generally, the collection of traversal objects that Pd provides is adequate to support a variety of modes of data collection and use, such as -analysis and sequencing. But the patches required to traverse the data -collections are not always simple. It would be desirable to find a more -straightforward mechanism than that provided by the "pointer", "get" -and "set" objects. +analysis and sequencing. But the patches required to traverse the data +collections are not always simple. It would be desirable to find a more +straightforward mechanism than that provided by the [pointer], [get] +and [set] objects. -

    The "data" facility, although part of the original plan for Pd, has only +

    The "data" facility, although part of the original plan for Pd, has only recently been implemented in its current form, and as (hopefully) the user base grows there will surely be occasions for many further extensions of the data handling primitives and the graphical presentation and editing functions. diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index d27c7d21f..0ff7861af 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -1,16 +1,12 @@ - - Pd Manual 3 - - - + + + - - @@ -51,9 +47,9 @@

    3.1. Audio and MIDI

    To test audio and MIDI, start Pd and select "test Audio and MIDI" from the "Media" menu. You should see a window like this: -

    - test tone patch -

    +

    + test tone patch +

    First, try to get Pd to play a sine wave over your speakers. The "TEST TONE" control at top left turns this on and off. Normally, all the output @@ -76,7 +72,7 @@

    3.1. Audio and MIDI

    will show up as level unless you turn on the "input hipass" toggle at right; then the DC component is filtered out before metering. -

    To test the quality of audio input and output, turn on "monitor" +

    To test the quality of audio input and output, turn on "monitor" (also at right) which causes the inputs to be played to the outputs at unit gain. You should hear a faithful, non-distorted copy of whatever is sent through the patch. @@ -114,10 +110,10 @@

    3.1. Audio and MIDI

    under your OS below.) For the second, start up your favorite performance monitor program; and for the third, try starting Pd up with ADCs disabled. -

    In addition to the "test audio and MIDI" patch, the "Media" menu +

    In addition to the "test audio and MIDI" patch, the "Media" menu contains items for controlling audio and MIDI settings. The first two items, "Audio on" and "Audio off", open or close the audio devices and -start or stop Pd's audio computation. +start or stop Pd's audio computation.

    If there is a choice of audio API to make, the Media menu will display them. (On Linux, they are @@ -128,9 +124,9 @@

    3.1. Audio and MIDI

    selecting "Audio Settings..." from Preferences, opens a dialog panel like this: -

    - audio settings dialog -

    +

    + audio settings dialog +

    The exact choices you get depend on the operating system and API. The sample rate controls both audio output and input. The audio throughput delay is @@ -149,7 +145,7 @@

    3.1. Audio and MIDI

    specify more if your hardware supports it. Other parameters may be tweaked using the command line; see under - preferences and startup options . + Preferences and startup options .
    MIDI
    @@ -176,14 +172,14 @@

    3.2. Installing Pd in Microsoft Windows

    Pd requires "TCP/IP networking" to be turned on. This doesn't mean you have to be on a real network, but simply that Pd actually consists of two -programs that make a "network link" (locally) to intercommunicate. -The first time you run Pd the "Windows Firewall" will ask your permission +programs that make a "network link" (locally) to intercommunicate. +The first time you run Pd the "Windows Firewall" will ask your permission to allow this intercommunication.

    Audio in Microsoft Windows

    -Pd offers both the ASIO and MMIO APIs in Windows. +Pd offers both the ASIO and MMIO APIs in Windows.

    ASIO

    -

    As of version 0.35 Pd supports ASIO. Invoke Pd as "pd -asio" and, if +

    As of version 0.35 Pd supports ASIO. Invoke Pd as "pd -asio" and, if needed, specify "-audiodev" (etc.) flags to specify which device (see -"the Pd command line" below.) You can also specify a "-blocksize" different -from the default (256 samples) and "-audiobuf" in milliseconds. Pd will +"the Pd command line" below.) You can also specify a "-blocksize" different +from the default (256 samples) and "-audiobuf" in milliseconds. Pd will round this down to a power of two buffers, each of "-blocksize" in sample frames. -

    TIP: You can use your built-in sound-card with the Universal ASIO Driver For WDM http://www.asio4all.org/ +

    TIP: You can use your built-in sound-card with the Universal ASIO Driver For WDM http://www.asio4all.org/ [object] -> [number]"> + [message( --> [object] -> [number]

    The third box here is a GUI ("graphical user interface") box. Pd has @@ -268,7 +266,7 @@

    2.2. Editing Pd patches

    between these modes.

    - edit mode + edit mode

    2.2.1. Edit and Run mode

    @@ -296,7 +294,7 @@

    2.2.2. Creating boxes

    specifically.

    - put menu + put menu

    If you are in run mode and click on an entry on the Put menu or use @@ -339,8 +337,7 @@

    2.2.3. Selecting items and moving them or "tidying them up" - selecting items and moving them or tidying them up + tidy up

    2.2.4. Delete, cut, copy and paste boxes

    @@ -393,8 +390,7 @@

    2.2.5. Changing the text

    completely lost.

    - changing text + changing text

    You can also use the copy, cut, and paste commands for the selected text. The @@ -416,8 +412,7 @@

    2.2.6. Connecting and disconnecting boxes

    inlet.

    - connecting boxes + connecting boxes

    If you move the mouse cursor over a patch cord, you'll see it takes the shape @@ -427,8 +422,7 @@

    2.2.6. Connecting and disconnecting boxes

    area and you can only select a single connection by clicking on it.

    - disconnecting boxes + disconnecting boxes

    2.2.7. Context menu for 'Properties', 'Open' and 'Help'

    @@ -467,8 +461,7 @@

    2.3.1. Tab navigation

    most recently created box back towards the first created ones.

    - tab navigation boxes + tab navigation boxes

    Using Tab also works in a similar way for patch cords if @@ -476,8 +469,7 @@

    2.3.1. Tab navigation

    and from last to first with Shift + Tab.

    - tab navigation cords + tab navigation cords

    If you're creating a connection by clicking on an outlet and dragging a @@ -486,8 +478,7 @@

    2.3.1. Tab navigation

    Shift + Tab navigates from right to left.

    - tab navigation inlets outlets + tab navigation iolets

    In Linux and Windows you can also cycle between inlets. This is currently @@ -514,8 +505,7 @@

    2.3.2. Autopatching

    box gets deselected and therefore created.

    - autopatching objects + autopatch objects

    You can also autopatch into a newly created subpatch (see @@ -525,8 +515,7 @@

    2.3.2. Autopatching

    ([inlet~]) if it is a tilde object instead.

    - autopatching subpatches + autopatching subpatches

    2.3.3. Duplicate connections

    @@ -536,8 +525,7 @@

    2.3.3. Duplicate connections

    duplicate and create more connections.

    - duplicate connections + duplicate connections

    2.3.4. Managing connections with the Shift key

    @@ -546,8 +534,7 @@

    2.3.4. Managing connections with the Shift key

    Shift + Click on another one.

    - managing connections shift click + swap connections

    You can "fan out" connections when no boxes are selected. You can @@ -558,8 +545,7 @@

    2.3.4. Managing connections with the Shift key

    connect the same outlet to to multiple inlets sequentially.

    - managing connections drag fan out + drag fan out

    Also for fanning out, if you have a group of target boxes that are selected, @@ -568,8 +554,7 @@

    2.3.4. Managing connections with the Shift key

    not need to be of the same type or class).

    - managing connections fan out + select fan out

    You can create a connection from the same outlet number of multiple boxes to @@ -579,8 +564,7 @@

    2.3.4. Managing connections with the Shift key

    be of the same type or class).

    - managing connections fan in + select fan in

    You can connect multiple outlets and inlets of 2 boxes if you have 2 selected @@ -588,8 +572,7 @@

    2.3.4. Managing connections with the Shift key

    This creates all possible connections starting from the chosen outlet and inlet.

    - managing connections box to box + multiple connections

    You can connect outlets of multiple boxes into multiple inlets of one box. @@ -600,8 +583,7 @@

    2.3.4. Managing connections with the Shift key

    chosen inlet.

    - managing connections many to one + many to one

    You can spread multiple outlets of one box into same inlets of other boxes. @@ -612,8 +594,7 @@

    2.3.4. Managing connections with the Shift key

    boxes.

    - managing connections one to many +  one to many

    @@ -624,8 +605,7 @@

    2.3.5. (Dis)Connect selection

    different ways.

    - dis/connect menu + ctrl+k

    For 2 selected boxes you can use Ctrl + K to connect @@ -633,8 +613,7 @@

    2.3.5. (Dis)Connect selection

    from possible remaining outlets to inlets.

    - dis/connect parallel + repeat ctrl+k

    For 2 selected tilde objects, if the origin object has a single outlet and @@ -642,8 +621,7 @@

    2.3.5. (Dis)Connect selection

    to fan out and connect the same outlet to all inlets.

    - dis/connect fan out audio + fan out audio

    For last, you can include or bypass a box into or from a connection @@ -655,16 +633,14 @@

    2.3.5. (Dis)Connect selection

    to include the third one in the connection.

    - dis/connect insert box to connection + insert box

    To bypass a box, you can select 3 boxes connected in a row and use Ctrl + K to bypass and remove the middle box from the connection.

    - dis/connect exclude box from connection + exclude box

    2.3.6. Triggerize

    @@ -681,8 +657,7 @@

    2.3.6. Triggerize

    starts at the rightmost outlet of [trigger] and continues to the leftmost.

    - triggerize object + triggerize object

    Additionally, the 'Triggerize' option can be used to insert a dummy object. @@ -693,8 +668,7 @@

    2.3.6. Triggerize

    for you to replace for a new object.

    - triggerize insert box to connection + insert dummy

    While the connections of a [trigger] object can be resorted as @@ -704,16 +678,14 @@

    2.3.6. Triggerize

    If each outlet has a single connection, it will insert an outlet on the left.

    - triggerize add outlet + add 1st outlet

    If the [trigger] object has more outlets than outgoing connections, the shortcut will reduce the outlets, removing the unused ones.

    - triggerize reduce outlets + reduce outlets

    In case there are more connections than outlets, it will add outlets to @@ -722,8 +694,7 @@

    2.3.6. Triggerize

    inbetween other connections without lots of resorting.

    - triggerize distribute connections + distribute connections

    @@ -739,8 +710,7 @@

    2.3.7. Paste replace

    and connections are preserved.

    - paste replace menu + paste replace entry

    Alternatively, you can copy a number box instead of a [float] object @@ -754,8 +724,7 @@

    2.3.7. Paste replace

    count in the same group of objects.

    - paste replace boxes + paste replace boxes

    If you have a selection of boxes to replace that includes different @@ -763,8 +732,7 @@

    2.3.7. Paste replace

    same type that was copied.

    - paste replace similar type + paste replace similar type

    2.4. Messages

    @@ -824,7 +792,7 @@

    2.4.1. Anatomy of a message

    [float] object:

    - float object + float object

    The two rectangles at the top are usually both called "inlets", but the @@ -848,7 +816,7 @@

    2.4.2. Depth first message passing

    executed in depth first fashion. For instance in the patch below:

    - depth first message passing + depth first

    the order of arrival of messages is either A-B-C-D or A-C-D-B. The "C" @@ -860,7 +828,7 @@

    2.4.2. Depth first message passing

    Message-passing can give rise to infinite loops of the sort shown here:

    - infinite message passing loop + infinite loop

    Here, the left-hand [+ 1] can't finish processing until the right-hand one has @@ -880,7 +848,7 @@

    2.4.3. Hot and cold inlets and right to left outlet order messages. So the following is a legal (and reasonable) loop construct:

    - hot and cold inlets + hot and cold inlets

    Here, the [f] object is an abbreviation for [float]. Note that the [+ 1] output @@ -901,7 +869,7 @@

    2.4.3. Hot and cold inlets and right to left outlet order number. The following is incorrect:

    - incorrect inlet connection + incorrect inlet connection

    Here, the left inlet was connected before connecting the right hand one @@ -916,7 +884,7 @@

    2.4.3. Hot and cold inlets and right to left outlet order want. Here is how to use [trigger] to disambiguate the previous example:

    - trigger to disambiguate + trigger to disambiguate

    "Cold" (non-leftmost) inlets are almost universally used to store single @@ -938,7 +906,7 @@

    2.4.4. Message boxes

    elsewhere as specified.

    - message boxes + message boxes

    The first of the message boxes above contains the single number 1.5; this @@ -949,7 +917,7 @@

    2.4.4. Message boxes

    Multiple messages may be separated by commas as shown:

    - multiple messages in one box + multiple messages in one box

    Here, the three messages are the numbers 1, 2, and 3, and they are sent in @@ -966,7 +934,7 @@

    2.4.4. Message boxes

    likewise the next message is sent to "sue".

    - semicolons to send messages + semicolons to send messages

    Certain other objects (Pd windows for example, and arrays) have Pd names as @@ -977,7 +945,7 @@

    2.4.4. Message boxes

    You can put variables in message boxes as shown below:

    - variables in message boxes + variables in message boxes

    Here, "$1" etc., refer to the arguments of the arriving message (and aren't @@ -1155,7 +1123,7 @@

    2.6.1. Audio and messages

    the messages "dsp 1" and "dsp 0" to "pd".

    - dsp on and off on patch level + dsp on and off on patch level

    In the intervals between, delays might time out or external conditions @@ -1343,11 +1311,11 @@

    2.8. Subpatches

    in a patch. If you type [pd] or [pd my-name] into an object box, this creates a one-off subpatch. For instance, in this fragment: -

    subpatch

    +

    subpatch

    the box in the middle, if clicked on, opens the sub-patch shown here: -

    open subpatch window

    +

    open subpatch window

    The contents of the subpatch are saved as part of the parent patch, in one file. If you make several copies of a subpatch you may change them @@ -1367,12 +1335,12 @@

    2.8.1. Abstractions

    To make an abstraction, save a patch with a name such as "abstraction1.pd" and then invoke it in an object box as [abstraction1]: -

    abstraction

    +

    abstraction

    Here, we're invoking a separate file, "abstraction1.pd", which holds the patch shown here: -

    abstraction example

    +

    abstraction example

    You may create many instances of [abstraction1] or invoke it from several different patches; changing and saving the contents of [abstraction1] will @@ -1411,11 +1379,11 @@

    2.8.2. Graph-on-parent subpatches

    check the "graph on parent" box to have the controls of the subpatch/abstraction appear on the parent. For instance, here is an invocation of [abstraction2]: -

    graph-on-parent abstraction

    +

    graph-on-parent abstraction

    where the patch "abstraction2.pd" contains: -

    inside graph-on-parent abstraction

    +

    inside graph-on-parent abstraction

    Here, the number box in the abstraction shows up on the box that invoked the abstraction. The "graph on parent" flag is set in the abstraction @@ -1462,17 +1430,17 @@

    2.9. Numeric arrays

    the containing patch), or as a regular subpatch (which you see as a text box). In the "graph on parent" form, an array appears as shown: -

    array

    +

    array

    Arrays are indexed from 0 to N-1 where N is the number of points in the array. You can read an array value using the tabread object: -

    array indexing

    +

    array indexing

    Here, we see that the third point of the array (index 2) has the value 0.4. To write into the array, you can use the tabwrite object: -

    setting an value in an array

    +

    setting an value in an array

    In this example, sending the message sets the third element to 0.5. (You may also send the two numbers to the two inlets separately.) @@ -1481,7 +1449,7 @@

    2.9. Numeric arrays

    and to arrays. These may also be done using audio signals. For example, the patch below creates a 440 Hz tone with "array1" as a waveform: -

    setting an array with a waveform

    +

    setting an array with a waveform

    Here, [phasor~] outputs a ramp whose output range is from 0 to 1, repeating 440 times per second. The multiplier and adder adjust the range from 1 to 11 @@ -1498,7 +1466,7 @@

    2.9. Numeric arrays

    If you select "properties" on an array in a graph, you get two dialogs, one for the array and one for the graph. The array dialog looks like this: -

    array properties window

    +

    array properties window

    You may use this to change the name and size, in addition to another property, "save contents". If "save contents" is selected, the array's values are stored @@ -1514,7 +1482,7 @@

    2.9. Numeric arrays

    The graph dialog (which also pops up) is shown here: -

    graph properties

    +

    graph properties

    The X bounds initially range from 0 to the number of points in the table minus one (this is a good choice for arrays, although graphs holding other @@ -1554,7 +1522,7 @@

    2.10. Data structures

    algorithmically, or derived from analyses of incoming sounds or other data streams. Here is one simple example of a very short musical sketch realized using Pd: -

    graphical score

    +

    graphical score

    The example, which only lasts a few seconds, is a polyphonic collection of time-varying noise bands. The graphical "score" consists of six objects, each @@ -1578,7 +1546,7 @@

    2.10. Data structures

    Here is the template associated with the graphical objects shown above: -

    template for graphical score

    +

    template for graphical score

    Templates consist of a data structure definition (the [struct] object) and zero or more drawing instructions (such as [filledpolygon] and [plot]). The [struct] @@ -1618,7 +1586,7 @@

    2.10.1. Traversal

    how these facilities could be used, for example, to sequence the graphical score shown above: -

    traversal example patch

    +

    traversal example patch

    Pd has no built-in sequencer, nor even any notion that "x" values should be used as a time axis. (However, a "sort" function is provided, which reorders diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index bf15a59e3..61b940f59 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -48,7 +48,7 @@

    3.1. Audio and MIDI

    "Media" menu. You should see a window like this:

    - test tone patch + test audio and midi patch

    First, try to get Pd to play a sine wave over your speakers. The "TEST @@ -124,7 +124,7 @@

    3.1. Audio and MIDI

    a dialog panel like this:

    - audio settings dialog + audio settings dialog

    The exact choices you get depend on the operating system and API. The sample @@ -470,7 +470,7 @@

    3.5. Preferences and startup options

    dialog appears as follows:

    - startup dialog + startup dialog

    The slots at top each specify a binary "library" for Pd to load on startup. @@ -669,7 +669,7 @@

    3.6. How Pd searches for files

    item in the "File / Preferences" menu:

    - startup dialog + path dialog

    The path must be correctly set before you load diff --git a/doc/1.manual/x4.htm b/doc/1.manual/x4.htm index 5da4ecc39..fb7c45ed9 100644 --- a/doc/1.manual/x4.htm +++ b/doc/1.manual/x4.htm @@ -478,7 +478,7 @@

    4.2.2. How to Download Externals from Pd Vanilla?

    the library/external specific for your operating system will be shown to you. See figure below. -

    +

    deken install
    diff --git a/doc/Makefile.am b/doc/Makefile.am index 69054fd62..e2d0811df 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -56,85 +56,82 @@ nobase_dist_libpd_DATA = \ ./1.manual/1.introduction.txt \ ./1.manual/css/favicon.ico \ ./1.manual/css/pdmanual.css \ - ./1.manual/img/fig-ch2-autopatching-objects.png \ - ./1.manual/img/fig-ch2-autopatching-subpatches.png \ - ./1.manual/img/fig-ch2-changing-text.png \ - ./1.manual/img/fig-ch2-connecting-boxes.png \ - ./1.manual/img/fig-ch2-console-edit-menu.png \ - ./1.manual/img/fig-ch2-console-media-menu.png \ - ./1.manual/img/fig-ch2-dashed-box.png \ - ./1.manual/img/fig-ch2-dis-connect-exclude-box-from-connection.png \ - ./1.manual/img/fig-ch2-dis-connect-fan-out-audio.png \ - ./1.manual/img/fig-ch2-dis-connect-insert-box-to-connection.png \ - ./1.manual/img/fig-ch2-dis-connect-menu.png \ - ./1.manual/img/fig-ch2-dis-connect-parallel.png \ - ./1.manual/img/fig-ch2-disconnecting-boxes.png \ - ./1.manual/img/fig-ch2-dsp-on-off.png \ - ./1.manual/img/fig-ch2-duplicate-connections.png \ - ./1.manual/img/fig-ch2-editmode.png \ - ./1.manual/img/fig-ch2-file-menu.png \ - ./1.manual/img/fig-ch2-managing-connections-box-to-box.png \ - ./1.manual/img/fig-ch2-managing-connections-drag-fan-out.png \ - ./1.manual/img/fig-ch2-managing-connections-fan-in.png \ - ./1.manual/img/fig-ch2-managing-connections-fan-out.png \ - ./1.manual/img/fig-ch2-managing-connections-many-to-one.png \ - ./1.manual/img/fig-ch2-managing-connections-one-to-many.png \ - ./1.manual/img/fig-ch2-managing-connections-shift-click.png \ - ./1.manual/img/fig-ch2-paste-replace-boxes.png \ - ./1.manual/img/fig-ch2-paste-replace-menu.png \ - ./1.manual/img/fig-ch2-paste-replace-similar-type.png \ - ./1.manual/img/fig-ch2-put-menu.png \ - ./1.manual/img/fig-ch2-selecting-items-and-moving-them-or-tidying-them-up.png \ - ./1.manual/img/fig-ch2-tab-navigation-boxes.png \ - ./1.manual/img/fig-ch2-tab-navigation-cords.png \ - ./1.manual/img/fig-ch2-tab-navigation-inlets-outlets.png \ - ./1.manual/img/fig-ch2-triggerize-add-outlet.png \ - ./1.manual/img/fig-ch2-triggerize-distribute-connections.png \ - ./1.manual/img/fig-ch2-triggerize-insert-box-to-connection.png \ - ./1.manual/img/fig-ch2-triggerize-object.png \ - ./1.manual/img/fig-ch2-triggerize-reduce-outlets.png \ - ./1.manual/img/fig-ch4-deken-install.png \ - ./1.manual/img/fig1.1.png \ - ./1.manual/img/fig1.2.png \ - ./1.manual/img/fig1.3.png \ - ./1.manual/img/fig1.4.png \ - ./1.manual/img/fig1.5.png \ - ./1.manual/img/fig11.1.png \ - ./1.manual/img/fig11.2.png \ - ./1.manual/img/fig11.3.png \ - ./1.manual/img/fig11.4.png \ - ./1.manual/img/fig3.1.png \ - ./1.manual/img/fig3.10.png \ - ./1.manual/img/fig3.2.png \ - ./1.manual/img/fig3.3.png \ - ./1.manual/img/fig3.4.png \ - ./1.manual/img/fig3.5.png \ - ./1.manual/img/fig3.6.png \ - ./1.manual/img/fig3.7.png \ - ./1.manual/img/fig3.8.png \ - ./1.manual/img/fig3.9.png \ - ./1.manual/img/fig4.1.png \ - ./1.manual/img/fig4.2.png \ - ./1.manual/img/fig4.3.png \ - ./1.manual/img/fig4.4.png \ - ./1.manual/img/fig4.5.png \ - ./1.manual/img/fig4.6.png \ - ./1.manual/img/fig4.7.png \ - ./1.manual/img/fig7.1.png \ - ./1.manual/img/fig7.2.png \ - ./1.manual/img/fig7.3.png \ - ./1.manual/img/fig7.4.png \ - ./1.manual/img/fig7.5.png \ - ./1.manual/img/fig7.6.png \ - ./1.manual/img/fig8.1.png \ - ./1.manual/img/fig8.2.png \ - ./1.manual/img/fig8.3.png \ - ./1.manual/img/fig8.4.png \ - ./1.manual/img/fig8.5.png \ - ./1.manual/img/fig8.6.png \ - ./1.manual/img/fig9.1.png \ - ./1.manual/img/fig9.2.png \ - ./1.manual/img/fig9.3.png \ + ./1.manual/img/2.1.png \ + ./1.manual/img/2.2.png \ + ./1.manual/img/2.3.png \ + ./1.manual/img/2.4.png \ + ./1.manual/img/2.5.png \ + ./1.manual/img/2.6.png \ + ./1.manual/img/2.7.png \ + ./1.manual/img/2.8.png \ + ./1.manual/img/2.9.png \ + ./1.manual/img/2.10.png \ + ./1.manual/img/2.11.png \ + ./1.manual/img/2.12.png \ + ./1.manual/img/2.13.png \ + ./1.manual/img/2.14.png \ + ./1.manual/img/2.15.png \ + ./1.manual/img/2.16.png \ + ./1.manual/img/2.17.png \ + ./1.manual/img/2.18.png \ + ./1.manual/img/2.19.png \ + ./1.manual/img/2.20.png \ + ./1.manual/img/2.21.png \ + ./1.manual/img/2.22.png \ + ./1.manual/img/2.23.png \ + ./1.manual/img/2.24.png \ + ./1.manual/img/2.25.png \ + ./1.manual/img/2.26.png \ + ./1.manual/img/2.27.png \ + ./1.manual/img/2.28.png \ + ./1.manual/img/2.29.png \ + ./1.manual/img/2.30.png \ + ./1.manual/img/2.31.png \ + ./1.manual/img/2.32.png \ + ./1.manual/img/2.33.png \ + ./1.manual/img/2.34.png \ + ./1.manual/img/2.35.png \ + ./1.manual/img/2.36.png \ + ./1.manual/img/2.37.png \ + ./1.manual/img/2.38.png \ + ./1.manual/img/2.39.png \ + ./1.manual/img/2.40.png \ + ./1.manual/img/2.41.png \ + ./1.manual/img/2.42.png \ + ./1.manual/img/2.43.png \ + ./1.manual/img/2.44.png \ + ./1.manual/img/2.45.png \ + ./1.manual/img/2.46.png \ + ./1.manual/img/2.47.png \ + ./1.manual/img/2.48.png \ + ./1.manual/img/2.49.png \ + ./1.manual/img/2.51.png \ + ./1.manual/img/2.52.png \ + ./1.manual/img/2.53.png \ + ./1.manual/img/2.54.png \ + ./1.manual/img/2.55.png \ + ./1.manual/img/2.56.png \ + ./1.manual/img/2.57.png \ + ./1.manual/img/2.58.png \ + ./1.manual/img/2.59.png \ + ./1.manual/img/2.60.png \ + ./1.manual/img/2.61.png \ + ./1.manual/img/2.62.png \ + ./1.manual/img/2.63.png \ + ./1.manual/img/2.64.png \ + ./1.manual/img/2.65.png \ + ./1.manual/img/2.66.png \ + ./1.manual/img/2.67.png \ + ./1.manual/img/3.1.png \ + ./1.manual/img/3.2.png \ + ./1.manual/img/3.3.png \ + ./1.manual/img/3.4.png \ + ./1.manual/img/4.1.png \ + ./1.manual/img/4.2.png \ + ./1.manual/img/4.3.png \ + ./1.manual/img/4.5.png \ + ./1.manual/img/4.6.png \ + ./1.manual/img/4.7.png \ ./1.manual/index.htm \ ./1.manual/x1.htm \ ./1.manual/x2.htm \ From 73c2901abc652d93d82949a38705451b235f52b7 Mon Sep 17 00:00:00 2001 From: porres Date: Sun, 31 Mar 2024 17:09:47 -0300 Subject: [PATCH 132/450] fix "MPE" examples in midi-help I hadn't tested with my MPE controller. Now I did and fixed a few things --- doc/5.reference/midi-help.pd | 217 +++++++++++++++++++---------------- 1 file changed, 115 insertions(+), 102 deletions(-) diff --git a/doc/5.reference/midi-help.pd b/doc/5.reference/midi-help.pd index ac370b66c..3ef307623 100644 --- a/doc/5.reference/midi-help.pd +++ b/doc/5.reference/midi-help.pd @@ -1,4 +1,4 @@ -#N canvas 184 23 1071 723 12; +#N canvas 250 38 1071 723 12; #X obj 529 228 noteout; #X obj 675 312 pgmout; #X obj 560 312 bendout; @@ -354,118 +354,131 @@ #X msg 838 599 128 68 100; #X text 16 578 raw MIDI byte by byte except real-time messages (sysex supported), f 28; #X text 357 637 <-- Open for MPE support; -#N canvas 80 23 1024 708 MPE_(MIDI-POLYPHONIC-EXPRESSION) 0; -#X obj 247 215 ctlin; -#X obj 238 277 list prepend; -#X obj 331 600 swap; -#X obj 327 568 bendin; +#N canvas 283 109 1024 708 MPE_(MIDI-POLYPHONIC-EXPRESSION) 0; +#X obj 247 207 ctlin; +#X obj 238 285 list prepend; +#X obj 327 558 bendin; #X listbox 238 311 12 0 0 0 - - - 0; -#X listbox 331 629 11 0 0 0 - - - 0; -#X obj 238 347 route 1 2 3 4, f 30; -#X obj 331 669 route 1 2 3 4; #X obj 238 420 route 74; -#X obj 238 247 swap; +#X obj 238 237 swap; #X text 331 312 channel \, controller # \, value; -#X floatatom 237 461 5 0 0 0 - - - 0; -#X floatatom 289 385 5 0 0 0 - - - 0; -#X floatatom 341 385 5 0 0 0 - - - 0; -#X floatatom 393 385 5 0 0 0 - - - 0; -#X text 21 18 MIDI Polyphonic Expression (MPE) enables things like control MIDI messages for independent notes. For that \, it uses the MIDI channel to distinguish polyphonic voices \, so that particular MIDI messages coming into that channel can be applied to a single voice note individually., f 70; -#X obj 115 597 swap; -#X listbox 115 626 11 0 0 0 - - - 0; -#X obj 115 666 route 1 2 3 4; -#X obj 111 565 touchin; -#X obj 52 226 notein; -#X obj 46 293 list prepend; -#X obj 46 263 pack; -#X obj 46 332 route 1 2 3 4, f 14; -#X listbox 69 405 9 0 0 0 - - - 0; -#X listbox 93 382 9 0 0 0 - - - 0; -#X listbox 117 359 9 0 0 0 - - - 0; -#X text 21 493 Aftertouch and pitch bend are also common messages used in MPE. You can have up to 16 voices/channels in MPE \, but in these examples we're only considering 4 channels/voices., f 70; -#X listbox 46 428 9 0 0 0 - - - 0; +#X floatatom 238 451 5 0 0 0 - - - 0; +#X obj 115 587 swap; +#X listbox 115 641 11 0 0 0 - - - 0; +#X obj 111 555 touchin; +#X obj 52 236 notein; +#X obj 46 303 list prepend; +#X obj 46 273 pack; +#X listbox 69 415 9 0 0 0 - - - 0; +#X listbox 93 392 9 0 0 0 - - - 0; +#X listbox 117 369 9 0 0 0 - - - 0; +#X listbox 46 438 9 0 0 0 - - - 0; #X obj 813 55 poly; -#X obj 607 545 route 1; -#X obj 607 579 route note cc touch bend; -#X listbox 607 679 11 0 0 0 - - - 0; -#X listbox 648 655 11 0 0 0 - - - 0; -#X listbox 689 631 11 0 0 0 - - - 0; -#X listbox 730 608 11 0 0 0 - - - 0; +#X obj 637 579 route note cc touch bend; +#X listbox 637 679 11 0 0 0 - - - 0; +#X listbox 678 655 11 0 0 0 - - - 0; +#X listbox 719 631 11 0 0 0 - - - 0; +#X listbox 760 608 11 0 0 0 - - - 0; #X text 558 19 When dealing with polyphonic synths in Pure Data \, you'll probably use [clone]. An example for that is given in the help file of [poly]. Check it out., f 61; #X text 874 208 see also:; #X obj 890 232 clone; -#X listbox 607 514 14 0 0 0 - - - 0; -#X obj 613 216 notein; -#X obj 607 282 list prepend; -#X obj 607 253 pack; -#X obj 688 247 list append note; -#X obj 722 276 ctlin; -#X obj 713 338 list prepend; -#X obj 713 308 swap; -#X obj 794 306 list append cc; -#X obj 737 370 touchin; -#X obj 737 405 list prepend; -#X obj 818 373 list append touch; -#X obj 761 477 list prepend; -#X obj 761 442 bendin; -#X obj 842 445 list append bend; -#X text 21 90 Pure Data does not have any special object to deal with MPE \, but this subpatch shows a simple strategy to deal with it using regular MIDI objects. Below to the left we prepend the channel number to route Note On messages. We them route by MIDI channel (which corresponds to the voice number). Below to the right we make a list that starts with the MIDI channel \, then controller number and value. You can furtherly route by controller number and 74 is commonly used in MPE., f 70; -#X text 558 85 So instead of using [route] to access independent data for each voice \, you can just send the list directly into [clone] \, which routes the message to different cloned copies of an abstraction. You should then tag each MIDI message so they can be routed and managed inside the abstraction. The example below shows a template for that. The [route 1] object gets messages for "voice 1" and its output relates to the inlet of a [clone] object., f 61; -#X text 671 546 messages for "voice 1"; -#X connect 0 0 9 0; -#X connect 0 1 9 1; +#X listbox 637 514 14 0 0 0 - - - 0; +#X obj 643 216 notein; +#X obj 637 282 list prepend; +#X obj 637 253 pack; +#X obj 718 247 list append note; +#X obj 752 277 ctlin; +#X obj 743 350 list prepend; +#X obj 743 303 swap; +#X obj 824 312 list append cc; +#X obj 767 383 touchin; +#X obj 767 408 list prepend; +#X obj 848 376 list append touch; +#X obj 791 477 list prepend; +#X obj 791 442 bendin; +#X obj 872 445 list append bend; +#X text 701 546 messages for "voice 1"; +#X obj 115 614 pack; +#X obj 327 587 swap; +#X listbox 327 641 11 0 0 0 - - - 0; +#X obj 327 614 pack; +#X text 21 18 MIDI Polyphonic Expression (MPE) enables MIDI messages for independent voices and uses MIDI channel to distinguish them. Usually Channel 1 is used for global messages for all voices and the remaining channels (usually Channels 2–16) are used to transmit notes and expressive data., f 71; +#X obj 46 342 route 2 3 4 5, f 14; +#X obj 238 347 route 2 3 4 5, f 30; +#X obj 115 666 route 2 3 4 5; +#X obj 327 669 route 2 3 4 5; +#X text 21 89 Pure Data does not have any special object to deal with MPE \, but this subpatch shows a simple strategy to deal with it using regular MIDI objects. Below to the left we prepend the channel number to route Note On messages. We them route by MIDI channel (which corresponds to the voice number). Below to the left we route midi notes and to the right we make a list that starts with the MIDI channel \, then controller number and value. You can furtherly route by controller number and 74 is commonly used in MPE., f 71; +#X text 337 420 Note that if you have a controller in Port 2 \, you should route from channel "18" instead \, or from "34" if Port 3 \, and so on..., f 35; +#X text 73 495 Aftertouch and pitch bend are also common messages used in MPE. You can have up to 15 voices/channels in MPE \, but in these examples we're only considering 4 channels/voices.; +#X obj 637 545 route 2; +#X text 558 82 So instead of using [route] to access independent data for each voice \, you can just send the list directly into [clone] \, which routes the message to different cloned copies of an abstraction (use the flag "-s 2" to route from channel 2). You should then tag each MIDI message so they can be routed and managed inside the abstraction. The example below shows a template for that. The [route 1] object gets messages for "voice 1" and its output relates to the inlet of a [clone] object., f 61; +#X obj 238 261 pack; +#X listbox 289 385 6 0 0 0 - - - 0; +#X listbox 341 385 6 0 0 0 - - - 0; +#X listbox 393 385 6 0 0 0 - - - 0; +#X obj 743 326 pack; +#X connect 0 0 5 0; +#X connect 0 1 5 1; #X connect 0 2 1 1; -#X connect 1 0 4 0; -#X connect 2 0 5 0; -#X connect 3 0 2 0; -#X connect 3 1 2 1; -#X connect 4 0 6 0; -#X connect 5 0 7 0; -#X connect 6 0 8 0; -#X connect 6 1 12 0; -#X connect 6 2 13 0; -#X connect 6 3 14 0; -#X connect 8 0 11 0; -#X connect 9 0 1 0; -#X connect 16 0 17 0; -#X connect 17 0 18 0; -#X connect 19 0 16 0; -#X connect 19 1 16 1; -#X connect 20 0 22 0; -#X connect 20 1 22 1; -#X connect 20 2 21 1; -#X connect 21 0 23 0; -#X connect 22 0 21 0; -#X connect 23 0 28 0; -#X connect 23 1 24 0; -#X connect 23 2 25 0; -#X connect 23 3 26 0; -#X connect 30 0 31 0; -#X connect 31 0 32 0; -#X connect 31 1 33 0; -#X connect 31 2 34 0; -#X connect 31 3 35 0; -#X connect 39 0 30 0; -#X connect 40 0 42 0; -#X connect 40 1 42 1; -#X connect 40 2 43 0; -#X connect 41 0 39 0; -#X connect 42 0 41 0; -#X connect 43 0 41 1; +#X connect 1 0 3 0; +#X connect 2 0 44 0; +#X connect 2 1 44 1; +#X connect 3 0 49 0; +#X connect 4 0 7 0; +#X connect 5 0 57 0; +#X connect 5 1 57 1; +#X connect 8 0 43 0; +#X connect 8 1 43 1; +#X connect 9 0 50 0; +#X connect 10 0 8 0; +#X connect 10 1 8 1; +#X connect 11 0 13 0; +#X connect 11 1 13 1; +#X connect 11 2 12 1; +#X connect 12 0 48 0; +#X connect 13 0 12 0; +#X connect 19 0 20 0; +#X connect 19 1 21 0; +#X connect 19 2 22 0; +#X connect 19 3 23 0; +#X connect 27 0 55 0; +#X connect 28 0 30 0; +#X connect 28 1 30 1; +#X connect 28 2 31 0; +#X connect 29 0 27 0; +#X connect 30 0 29 0; +#X connect 31 0 29 1; +#X connect 32 0 34 0; +#X connect 32 1 34 1; +#X connect 32 2 35 0; +#X connect 33 0 27 0; +#X connect 34 0 61 0; +#X connect 34 1 61 1; +#X connect 35 0 33 1; +#X connect 36 0 37 0; +#X connect 36 1 38 0; +#X connect 37 0 27 0; +#X connect 38 0 37 1; +#X connect 39 0 27 0; +#X connect 40 0 39 0; +#X connect 40 1 41 0; +#X connect 41 0 39 1; +#X connect 43 0 9 0; #X connect 44 0 46 0; #X connect 44 1 46 1; -#X connect 44 2 47 0; -#X connect 45 0 39 0; +#X connect 45 0 51 0; #X connect 46 0 45 0; -#X connect 47 0 45 1; -#X connect 48 0 49 0; -#X connect 48 1 50 0; -#X connect 49 0 39 0; -#X connect 50 0 49 1; -#X connect 51 0 39 0; -#X connect 52 0 51 0; -#X connect 52 1 53 0; -#X connect 53 0 51 1; +#X connect 48 0 17 0; +#X connect 48 1 14 0; +#X connect 48 2 15 0; +#X connect 48 3 16 0; +#X connect 49 0 4 0; +#X connect 49 1 58 0; +#X connect 49 2 59 0; +#X connect 49 3 60 0; +#X connect 55 0 19 0; +#X connect 57 0 1 0; +#X connect 61 0 33 0; #X restore 100 637 pd MPE_(MIDI-POLYPHONIC-EXPRESSION); #X text 20 685 see also:; #X obj 97 686 poly; From 677b4f75415540c67c9d3634015561bb2e2b2f5b Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 1 Apr 2024 01:31:41 -0300 Subject: [PATCH 133/450] reorganize pics again with "chapter.section.order" this is closer to how things were, but they were only "section.order" as I believe only chapter 2 had pics --- doc/1.manual/img/{2.1.png => 2.1.1.png} | Bin doc/1.manual/img/{2.2.png => 2.1.2.png} | Bin doc/1.manual/img/{2.3.png => 2.1.3.png} | Bin doc/1.manual/img/{2.4.png => 2.1.4.png} | Bin doc/1.manual/img/{2.5.png => 2.1.5.png} | Bin doc/1.manual/img/{2.6.png => 2.1.6.png} | Bin doc/1.manual/img/{2.7.png => 2.1.7.png} | Bin doc/1.manual/img/{2.8.png => 2.1.8.png} | Bin doc/1.manual/img/{2.9.png => 2.1.9.png} | Bin doc/1.manual/img/{2.65.png => 2.10.1.png} | Bin doc/1.manual/img/{2.66.png => 2.10.2.png} | Bin doc/1.manual/img/{2.67.png => 2.10.3.png} | Bin doc/1.manual/img/{2.10.png => 2.2.1.png} | Bin doc/1.manual/img/{2.11.png => 2.2.2.png} | Bin doc/1.manual/img/{2.12.png => 2.2.3.png} | Bin doc/1.manual/img/{2.13.png => 2.2.4.png} | Bin doc/1.manual/img/{2.14.png => 2.2.5.png} | Bin doc/1.manual/img/{2.15.png => 2.2.6.png} | Bin doc/1.manual/img/{2.16.png => 2.3.1.png} | Bin doc/1.manual/img/{2.25.png => 2.3.10.png} | Bin doc/1.manual/img/{2.26.png => 2.3.11.png} | Bin doc/1.manual/img/{2.27.png => 2.3.12.png} | Bin doc/1.manual/img/{2.28.png => 2.3.13.png} | Bin doc/1.manual/img/{2.29.png => 2.3.14.png} | Bin doc/1.manual/img/{2.30.png => 2.3.15.png} | Bin doc/1.manual/img/{2.31.png => 2.3.16.png} | Bin doc/1.manual/img/{2.32.png => 2.3.17.png} | Bin doc/1.manual/img/{2.33.png => 2.3.18.png} | Bin doc/1.manual/img/{2.34.png => 2.3.19.png} | Bin doc/1.manual/img/{2.17.png => 2.3.2.png} | Bin doc/1.manual/img/{2.35.png => 2.3.20.png} | Bin doc/1.manual/img/{2.36.png => 2.3.21.png} | Bin doc/1.manual/img/{2.37.png => 2.3.22.png} | Bin doc/1.manual/img/{2.38.png => 2.3.23.png} | Bin doc/1.manual/img/{2.39.png => 2.3.24.png} | Bin doc/1.manual/img/{2.40.png => 2.3.25.png} | Bin doc/1.manual/img/{2.41.png => 2.3.26.png} | Bin doc/1.manual/img/{2.18.png => 2.3.3.png} | Bin doc/1.manual/img/{2.19.png => 2.3.4.png} | Bin doc/1.manual/img/{2.20.png => 2.3.5.png} | Bin doc/1.manual/img/{2.21.png => 2.3.6.png} | Bin doc/1.manual/img/{2.22.png => 2.3.7.png} | Bin doc/1.manual/img/{2.23.png => 2.3.8.png} | Bin doc/1.manual/img/{2.24.png => 2.3.9.png} | Bin doc/1.manual/img/{2.42.png => 2.4.1.png} | Bin doc/1.manual/img/{2.51.png => 2.4.10.png} | Bin doc/1.manual/img/{2.43.png => 2.4.2.png} | Bin doc/1.manual/img/{2.44.png => 2.4.3.png} | Bin doc/1.manual/img/{2.45.png => 2.4.4.png} | Bin doc/1.manual/img/{2.46.png => 2.4.5.png} | Bin doc/1.manual/img/{2.47.png => 2.4.6.png} | Bin doc/1.manual/img/{2.48.png => 2.4.7.png} | Bin doc/1.manual/img/{2.49.png => 2.4.8.png} | Bin doc/1.manual/img/{2.50.png => 2.4.9.png} | Bin doc/1.manual/img/{2.52.png => 2.6.1.png} | Bin doc/1.manual/img/{2.53.png => 2.8.1.png} | Bin doc/1.manual/img/{2.54.png => 2.8.2.png} | Bin doc/1.manual/img/{2.55.png => 2.8.3.png} | Bin doc/1.manual/img/{2.56.png => 2.8.4.png} | Bin doc/1.manual/img/{2.57.png => 2.8.5.png} | Bin doc/1.manual/img/{2.58.png => 2.8.6.png} | Bin doc/1.manual/img/{2.59.png => 2.9.1.png} | Bin doc/1.manual/img/{2.60.png => 2.9.2.png} | Bin doc/1.manual/img/{2.61.png => 2.9.3.png} | Bin doc/1.manual/img/{2.62.png => 2.9.4.png} | Bin doc/1.manual/img/{2.63.png => 2.9.5.png} | Bin doc/1.manual/img/{2.64.png => 2.9.6.png} | Bin doc/1.manual/img/{3.1.png => 3.1.1.png} | Bin doc/1.manual/img/{3.2.png => 3.1.2.png} | Bin doc/1.manual/img/{3.3.png => 3.5.1.png} | Bin doc/1.manual/img/{3.4.png => 3.6.1.png} | Bin doc/1.manual/img/{4.1.png => 4.1.1.png} | Bin doc/1.manual/img/{4.2.png => 4.1.2.png} | Bin doc/1.manual/img/{4.3.png => 4.2.1.png} | Bin doc/1.manual/img/{4.4.png => 4.2.2.png} | Bin doc/1.manual/img/{4.5.png => 4.3.1.png} | Bin doc/1.manual/img/{4.6.png => 4.3.2.png} | Bin doc/1.manual/img/{4.7.png => 4.3.3.png} | Bin doc/1.manual/x2.htm | 138 +++++++++++----------- doc/1.manual/x3.htm | 10 +- doc/1.manual/x4.htm | 28 ++--- 81 files changed, 81 insertions(+), 95 deletions(-) rename doc/1.manual/img/{2.1.png => 2.1.1.png} (100%) rename doc/1.manual/img/{2.2.png => 2.1.2.png} (100%) rename doc/1.manual/img/{2.3.png => 2.1.3.png} (100%) rename doc/1.manual/img/{2.4.png => 2.1.4.png} (100%) rename doc/1.manual/img/{2.5.png => 2.1.5.png} (100%) rename doc/1.manual/img/{2.6.png => 2.1.6.png} (100%) rename doc/1.manual/img/{2.7.png => 2.1.7.png} (100%) rename doc/1.manual/img/{2.8.png => 2.1.8.png} (100%) rename doc/1.manual/img/{2.9.png => 2.1.9.png} (100%) rename doc/1.manual/img/{2.65.png => 2.10.1.png} (100%) rename doc/1.manual/img/{2.66.png => 2.10.2.png} (100%) rename doc/1.manual/img/{2.67.png => 2.10.3.png} (100%) rename doc/1.manual/img/{2.10.png => 2.2.1.png} (100%) rename doc/1.manual/img/{2.11.png => 2.2.2.png} (100%) rename doc/1.manual/img/{2.12.png => 2.2.3.png} (100%) rename doc/1.manual/img/{2.13.png => 2.2.4.png} (100%) rename doc/1.manual/img/{2.14.png => 2.2.5.png} (100%) rename doc/1.manual/img/{2.15.png => 2.2.6.png} (100%) rename doc/1.manual/img/{2.16.png => 2.3.1.png} (100%) rename doc/1.manual/img/{2.25.png => 2.3.10.png} (100%) rename doc/1.manual/img/{2.26.png => 2.3.11.png} (100%) rename doc/1.manual/img/{2.27.png => 2.3.12.png} (100%) rename doc/1.manual/img/{2.28.png => 2.3.13.png} (100%) rename doc/1.manual/img/{2.29.png => 2.3.14.png} (100%) rename doc/1.manual/img/{2.30.png => 2.3.15.png} (100%) rename doc/1.manual/img/{2.31.png => 2.3.16.png} (100%) rename doc/1.manual/img/{2.32.png => 2.3.17.png} (100%) rename doc/1.manual/img/{2.33.png => 2.3.18.png} (100%) rename doc/1.manual/img/{2.34.png => 2.3.19.png} (100%) rename doc/1.manual/img/{2.17.png => 2.3.2.png} (100%) rename doc/1.manual/img/{2.35.png => 2.3.20.png} (100%) rename doc/1.manual/img/{2.36.png => 2.3.21.png} (100%) rename doc/1.manual/img/{2.37.png => 2.3.22.png} (100%) rename doc/1.manual/img/{2.38.png => 2.3.23.png} (100%) rename doc/1.manual/img/{2.39.png => 2.3.24.png} (100%) rename doc/1.manual/img/{2.40.png => 2.3.25.png} (100%) rename doc/1.manual/img/{2.41.png => 2.3.26.png} (100%) rename doc/1.manual/img/{2.18.png => 2.3.3.png} (100%) rename doc/1.manual/img/{2.19.png => 2.3.4.png} (100%) rename doc/1.manual/img/{2.20.png => 2.3.5.png} (100%) rename doc/1.manual/img/{2.21.png => 2.3.6.png} (100%) rename doc/1.manual/img/{2.22.png => 2.3.7.png} (100%) rename doc/1.manual/img/{2.23.png => 2.3.8.png} (100%) rename doc/1.manual/img/{2.24.png => 2.3.9.png} (100%) rename doc/1.manual/img/{2.42.png => 2.4.1.png} (100%) rename doc/1.manual/img/{2.51.png => 2.4.10.png} (100%) rename doc/1.manual/img/{2.43.png => 2.4.2.png} (100%) rename doc/1.manual/img/{2.44.png => 2.4.3.png} (100%) rename doc/1.manual/img/{2.45.png => 2.4.4.png} (100%) rename doc/1.manual/img/{2.46.png => 2.4.5.png} (100%) rename doc/1.manual/img/{2.47.png => 2.4.6.png} (100%) rename doc/1.manual/img/{2.48.png => 2.4.7.png} (100%) rename doc/1.manual/img/{2.49.png => 2.4.8.png} (100%) rename doc/1.manual/img/{2.50.png => 2.4.9.png} (100%) rename doc/1.manual/img/{2.52.png => 2.6.1.png} (100%) rename doc/1.manual/img/{2.53.png => 2.8.1.png} (100%) rename doc/1.manual/img/{2.54.png => 2.8.2.png} (100%) rename doc/1.manual/img/{2.55.png => 2.8.3.png} (100%) rename doc/1.manual/img/{2.56.png => 2.8.4.png} (100%) rename doc/1.manual/img/{2.57.png => 2.8.5.png} (100%) rename doc/1.manual/img/{2.58.png => 2.8.6.png} (100%) rename doc/1.manual/img/{2.59.png => 2.9.1.png} (100%) rename doc/1.manual/img/{2.60.png => 2.9.2.png} (100%) rename doc/1.manual/img/{2.61.png => 2.9.3.png} (100%) rename doc/1.manual/img/{2.62.png => 2.9.4.png} (100%) rename doc/1.manual/img/{2.63.png => 2.9.5.png} (100%) rename doc/1.manual/img/{2.64.png => 2.9.6.png} (100%) rename doc/1.manual/img/{3.1.png => 3.1.1.png} (100%) rename doc/1.manual/img/{3.2.png => 3.1.2.png} (100%) rename doc/1.manual/img/{3.3.png => 3.5.1.png} (100%) rename doc/1.manual/img/{3.4.png => 3.6.1.png} (100%) rename doc/1.manual/img/{4.1.png => 4.1.1.png} (100%) rename doc/1.manual/img/{4.2.png => 4.1.2.png} (100%) rename doc/1.manual/img/{4.3.png => 4.2.1.png} (100%) rename doc/1.manual/img/{4.4.png => 4.2.2.png} (100%) rename doc/1.manual/img/{4.5.png => 4.3.1.png} (100%) rename doc/1.manual/img/{4.6.png => 4.3.2.png} (100%) rename doc/1.manual/img/{4.7.png => 4.3.3.png} (100%) diff --git a/doc/1.manual/img/2.1.png b/doc/1.manual/img/2.1.1.png similarity index 100% rename from doc/1.manual/img/2.1.png rename to doc/1.manual/img/2.1.1.png diff --git a/doc/1.manual/img/2.2.png b/doc/1.manual/img/2.1.2.png similarity index 100% rename from doc/1.manual/img/2.2.png rename to doc/1.manual/img/2.1.2.png diff --git a/doc/1.manual/img/2.3.png b/doc/1.manual/img/2.1.3.png similarity index 100% rename from doc/1.manual/img/2.3.png rename to doc/1.manual/img/2.1.3.png diff --git a/doc/1.manual/img/2.4.png b/doc/1.manual/img/2.1.4.png similarity index 100% rename from doc/1.manual/img/2.4.png rename to doc/1.manual/img/2.1.4.png diff --git a/doc/1.manual/img/2.5.png b/doc/1.manual/img/2.1.5.png similarity index 100% rename from doc/1.manual/img/2.5.png rename to doc/1.manual/img/2.1.5.png diff --git a/doc/1.manual/img/2.6.png b/doc/1.manual/img/2.1.6.png similarity index 100% rename from doc/1.manual/img/2.6.png rename to doc/1.manual/img/2.1.6.png diff --git a/doc/1.manual/img/2.7.png b/doc/1.manual/img/2.1.7.png similarity index 100% rename from doc/1.manual/img/2.7.png rename to doc/1.manual/img/2.1.7.png diff --git a/doc/1.manual/img/2.8.png b/doc/1.manual/img/2.1.8.png similarity index 100% rename from doc/1.manual/img/2.8.png rename to doc/1.manual/img/2.1.8.png diff --git a/doc/1.manual/img/2.9.png b/doc/1.manual/img/2.1.9.png similarity index 100% rename from doc/1.manual/img/2.9.png rename to doc/1.manual/img/2.1.9.png diff --git a/doc/1.manual/img/2.65.png b/doc/1.manual/img/2.10.1.png similarity index 100% rename from doc/1.manual/img/2.65.png rename to doc/1.manual/img/2.10.1.png diff --git a/doc/1.manual/img/2.66.png b/doc/1.manual/img/2.10.2.png similarity index 100% rename from doc/1.manual/img/2.66.png rename to doc/1.manual/img/2.10.2.png diff --git a/doc/1.manual/img/2.67.png b/doc/1.manual/img/2.10.3.png similarity index 100% rename from doc/1.manual/img/2.67.png rename to doc/1.manual/img/2.10.3.png diff --git a/doc/1.manual/img/2.10.png b/doc/1.manual/img/2.2.1.png similarity index 100% rename from doc/1.manual/img/2.10.png rename to doc/1.manual/img/2.2.1.png diff --git a/doc/1.manual/img/2.11.png b/doc/1.manual/img/2.2.2.png similarity index 100% rename from doc/1.manual/img/2.11.png rename to doc/1.manual/img/2.2.2.png diff --git a/doc/1.manual/img/2.12.png b/doc/1.manual/img/2.2.3.png similarity index 100% rename from doc/1.manual/img/2.12.png rename to doc/1.manual/img/2.2.3.png diff --git a/doc/1.manual/img/2.13.png b/doc/1.manual/img/2.2.4.png similarity index 100% rename from doc/1.manual/img/2.13.png rename to doc/1.manual/img/2.2.4.png diff --git a/doc/1.manual/img/2.14.png b/doc/1.manual/img/2.2.5.png similarity index 100% rename from doc/1.manual/img/2.14.png rename to doc/1.manual/img/2.2.5.png diff --git a/doc/1.manual/img/2.15.png b/doc/1.manual/img/2.2.6.png similarity index 100% rename from doc/1.manual/img/2.15.png rename to doc/1.manual/img/2.2.6.png diff --git a/doc/1.manual/img/2.16.png b/doc/1.manual/img/2.3.1.png similarity index 100% rename from doc/1.manual/img/2.16.png rename to doc/1.manual/img/2.3.1.png diff --git a/doc/1.manual/img/2.25.png b/doc/1.manual/img/2.3.10.png similarity index 100% rename from doc/1.manual/img/2.25.png rename to doc/1.manual/img/2.3.10.png diff --git a/doc/1.manual/img/2.26.png b/doc/1.manual/img/2.3.11.png similarity index 100% rename from doc/1.manual/img/2.26.png rename to doc/1.manual/img/2.3.11.png diff --git a/doc/1.manual/img/2.27.png b/doc/1.manual/img/2.3.12.png similarity index 100% rename from doc/1.manual/img/2.27.png rename to doc/1.manual/img/2.3.12.png diff --git a/doc/1.manual/img/2.28.png b/doc/1.manual/img/2.3.13.png similarity index 100% rename from doc/1.manual/img/2.28.png rename to doc/1.manual/img/2.3.13.png diff --git a/doc/1.manual/img/2.29.png b/doc/1.manual/img/2.3.14.png similarity index 100% rename from doc/1.manual/img/2.29.png rename to doc/1.manual/img/2.3.14.png diff --git a/doc/1.manual/img/2.30.png b/doc/1.manual/img/2.3.15.png similarity index 100% rename from doc/1.manual/img/2.30.png rename to doc/1.manual/img/2.3.15.png diff --git a/doc/1.manual/img/2.31.png b/doc/1.manual/img/2.3.16.png similarity index 100% rename from doc/1.manual/img/2.31.png rename to doc/1.manual/img/2.3.16.png diff --git a/doc/1.manual/img/2.32.png b/doc/1.manual/img/2.3.17.png similarity index 100% rename from doc/1.manual/img/2.32.png rename to doc/1.manual/img/2.3.17.png diff --git a/doc/1.manual/img/2.33.png b/doc/1.manual/img/2.3.18.png similarity index 100% rename from doc/1.manual/img/2.33.png rename to doc/1.manual/img/2.3.18.png diff --git a/doc/1.manual/img/2.34.png b/doc/1.manual/img/2.3.19.png similarity index 100% rename from doc/1.manual/img/2.34.png rename to doc/1.manual/img/2.3.19.png diff --git a/doc/1.manual/img/2.17.png b/doc/1.manual/img/2.3.2.png similarity index 100% rename from doc/1.manual/img/2.17.png rename to doc/1.manual/img/2.3.2.png diff --git a/doc/1.manual/img/2.35.png b/doc/1.manual/img/2.3.20.png similarity index 100% rename from doc/1.manual/img/2.35.png rename to doc/1.manual/img/2.3.20.png diff --git a/doc/1.manual/img/2.36.png b/doc/1.manual/img/2.3.21.png similarity index 100% rename from doc/1.manual/img/2.36.png rename to doc/1.manual/img/2.3.21.png diff --git a/doc/1.manual/img/2.37.png b/doc/1.manual/img/2.3.22.png similarity index 100% rename from doc/1.manual/img/2.37.png rename to doc/1.manual/img/2.3.22.png diff --git a/doc/1.manual/img/2.38.png b/doc/1.manual/img/2.3.23.png similarity index 100% rename from doc/1.manual/img/2.38.png rename to doc/1.manual/img/2.3.23.png diff --git a/doc/1.manual/img/2.39.png b/doc/1.manual/img/2.3.24.png similarity index 100% rename from doc/1.manual/img/2.39.png rename to doc/1.manual/img/2.3.24.png diff --git a/doc/1.manual/img/2.40.png b/doc/1.manual/img/2.3.25.png similarity index 100% rename from doc/1.manual/img/2.40.png rename to doc/1.manual/img/2.3.25.png diff --git a/doc/1.manual/img/2.41.png b/doc/1.manual/img/2.3.26.png similarity index 100% rename from doc/1.manual/img/2.41.png rename to doc/1.manual/img/2.3.26.png diff --git a/doc/1.manual/img/2.18.png b/doc/1.manual/img/2.3.3.png similarity index 100% rename from doc/1.manual/img/2.18.png rename to doc/1.manual/img/2.3.3.png diff --git a/doc/1.manual/img/2.19.png b/doc/1.manual/img/2.3.4.png similarity index 100% rename from doc/1.manual/img/2.19.png rename to doc/1.manual/img/2.3.4.png diff --git a/doc/1.manual/img/2.20.png b/doc/1.manual/img/2.3.5.png similarity index 100% rename from doc/1.manual/img/2.20.png rename to doc/1.manual/img/2.3.5.png diff --git a/doc/1.manual/img/2.21.png b/doc/1.manual/img/2.3.6.png similarity index 100% rename from doc/1.manual/img/2.21.png rename to doc/1.manual/img/2.3.6.png diff --git a/doc/1.manual/img/2.22.png b/doc/1.manual/img/2.3.7.png similarity index 100% rename from doc/1.manual/img/2.22.png rename to doc/1.manual/img/2.3.7.png diff --git a/doc/1.manual/img/2.23.png b/doc/1.manual/img/2.3.8.png similarity index 100% rename from doc/1.manual/img/2.23.png rename to doc/1.manual/img/2.3.8.png diff --git a/doc/1.manual/img/2.24.png b/doc/1.manual/img/2.3.9.png similarity index 100% rename from doc/1.manual/img/2.24.png rename to doc/1.manual/img/2.3.9.png diff --git a/doc/1.manual/img/2.42.png b/doc/1.manual/img/2.4.1.png similarity index 100% rename from doc/1.manual/img/2.42.png rename to doc/1.manual/img/2.4.1.png diff --git a/doc/1.manual/img/2.51.png b/doc/1.manual/img/2.4.10.png similarity index 100% rename from doc/1.manual/img/2.51.png rename to doc/1.manual/img/2.4.10.png diff --git a/doc/1.manual/img/2.43.png b/doc/1.manual/img/2.4.2.png similarity index 100% rename from doc/1.manual/img/2.43.png rename to doc/1.manual/img/2.4.2.png diff --git a/doc/1.manual/img/2.44.png b/doc/1.manual/img/2.4.3.png similarity index 100% rename from doc/1.manual/img/2.44.png rename to doc/1.manual/img/2.4.3.png diff --git a/doc/1.manual/img/2.45.png b/doc/1.manual/img/2.4.4.png similarity index 100% rename from doc/1.manual/img/2.45.png rename to doc/1.manual/img/2.4.4.png diff --git a/doc/1.manual/img/2.46.png b/doc/1.manual/img/2.4.5.png similarity index 100% rename from doc/1.manual/img/2.46.png rename to doc/1.manual/img/2.4.5.png diff --git a/doc/1.manual/img/2.47.png b/doc/1.manual/img/2.4.6.png similarity index 100% rename from doc/1.manual/img/2.47.png rename to doc/1.manual/img/2.4.6.png diff --git a/doc/1.manual/img/2.48.png b/doc/1.manual/img/2.4.7.png similarity index 100% rename from doc/1.manual/img/2.48.png rename to doc/1.manual/img/2.4.7.png diff --git a/doc/1.manual/img/2.49.png b/doc/1.manual/img/2.4.8.png similarity index 100% rename from doc/1.manual/img/2.49.png rename to doc/1.manual/img/2.4.8.png diff --git a/doc/1.manual/img/2.50.png b/doc/1.manual/img/2.4.9.png similarity index 100% rename from doc/1.manual/img/2.50.png rename to doc/1.manual/img/2.4.9.png diff --git a/doc/1.manual/img/2.52.png b/doc/1.manual/img/2.6.1.png similarity index 100% rename from doc/1.manual/img/2.52.png rename to doc/1.manual/img/2.6.1.png diff --git a/doc/1.manual/img/2.53.png b/doc/1.manual/img/2.8.1.png similarity index 100% rename from doc/1.manual/img/2.53.png rename to doc/1.manual/img/2.8.1.png diff --git a/doc/1.manual/img/2.54.png b/doc/1.manual/img/2.8.2.png similarity index 100% rename from doc/1.manual/img/2.54.png rename to doc/1.manual/img/2.8.2.png diff --git a/doc/1.manual/img/2.55.png b/doc/1.manual/img/2.8.3.png similarity index 100% rename from doc/1.manual/img/2.55.png rename to doc/1.manual/img/2.8.3.png diff --git a/doc/1.manual/img/2.56.png b/doc/1.manual/img/2.8.4.png similarity index 100% rename from doc/1.manual/img/2.56.png rename to doc/1.manual/img/2.8.4.png diff --git a/doc/1.manual/img/2.57.png b/doc/1.manual/img/2.8.5.png similarity index 100% rename from doc/1.manual/img/2.57.png rename to doc/1.manual/img/2.8.5.png diff --git a/doc/1.manual/img/2.58.png b/doc/1.manual/img/2.8.6.png similarity index 100% rename from doc/1.manual/img/2.58.png rename to doc/1.manual/img/2.8.6.png diff --git a/doc/1.manual/img/2.59.png b/doc/1.manual/img/2.9.1.png similarity index 100% rename from doc/1.manual/img/2.59.png rename to doc/1.manual/img/2.9.1.png diff --git a/doc/1.manual/img/2.60.png b/doc/1.manual/img/2.9.2.png similarity index 100% rename from doc/1.manual/img/2.60.png rename to doc/1.manual/img/2.9.2.png diff --git a/doc/1.manual/img/2.61.png b/doc/1.manual/img/2.9.3.png similarity index 100% rename from doc/1.manual/img/2.61.png rename to doc/1.manual/img/2.9.3.png diff --git a/doc/1.manual/img/2.62.png b/doc/1.manual/img/2.9.4.png similarity index 100% rename from doc/1.manual/img/2.62.png rename to doc/1.manual/img/2.9.4.png diff --git a/doc/1.manual/img/2.63.png b/doc/1.manual/img/2.9.5.png similarity index 100% rename from doc/1.manual/img/2.63.png rename to doc/1.manual/img/2.9.5.png diff --git a/doc/1.manual/img/2.64.png b/doc/1.manual/img/2.9.6.png similarity index 100% rename from doc/1.manual/img/2.64.png rename to doc/1.manual/img/2.9.6.png diff --git a/doc/1.manual/img/3.1.png b/doc/1.manual/img/3.1.1.png similarity index 100% rename from doc/1.manual/img/3.1.png rename to doc/1.manual/img/3.1.1.png diff --git a/doc/1.manual/img/3.2.png b/doc/1.manual/img/3.1.2.png similarity index 100% rename from doc/1.manual/img/3.2.png rename to doc/1.manual/img/3.1.2.png diff --git a/doc/1.manual/img/3.3.png b/doc/1.manual/img/3.5.1.png similarity index 100% rename from doc/1.manual/img/3.3.png rename to doc/1.manual/img/3.5.1.png diff --git a/doc/1.manual/img/3.4.png b/doc/1.manual/img/3.6.1.png similarity index 100% rename from doc/1.manual/img/3.4.png rename to doc/1.manual/img/3.6.1.png diff --git a/doc/1.manual/img/4.1.png b/doc/1.manual/img/4.1.1.png similarity index 100% rename from doc/1.manual/img/4.1.png rename to doc/1.manual/img/4.1.1.png diff --git a/doc/1.manual/img/4.2.png b/doc/1.manual/img/4.1.2.png similarity index 100% rename from doc/1.manual/img/4.2.png rename to doc/1.manual/img/4.1.2.png diff --git a/doc/1.manual/img/4.3.png b/doc/1.manual/img/4.2.1.png similarity index 100% rename from doc/1.manual/img/4.3.png rename to doc/1.manual/img/4.2.1.png diff --git a/doc/1.manual/img/4.4.png b/doc/1.manual/img/4.2.2.png similarity index 100% rename from doc/1.manual/img/4.4.png rename to doc/1.manual/img/4.2.2.png diff --git a/doc/1.manual/img/4.5.png b/doc/1.manual/img/4.3.1.png similarity index 100% rename from doc/1.manual/img/4.5.png rename to doc/1.manual/img/4.3.1.png diff --git a/doc/1.manual/img/4.6.png b/doc/1.manual/img/4.3.2.png similarity index 100% rename from doc/1.manual/img/4.6.png rename to doc/1.manual/img/4.3.2.png diff --git a/doc/1.manual/img/4.7.png b/doc/1.manual/img/4.3.3.png similarity index 100% rename from doc/1.manual/img/4.7.png rename to doc/1.manual/img/4.3.3.png diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index bb681e886..8b361c484 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -56,7 +56,7 @@

    2.1.1. The main window, canvases, and printout

    "canvases" (also referred to as "patches"). The main Pd window looks like this:

    - pd window + pd window

    At the top, you'll see the menu entries: File, Edit, Put, @@ -77,7 +77,7 @@

    2.1.1. The main window, canvases, and printout

    Audio and MIDI).

    - media menu + media menu

    The lower part of the Pd window is an area for printout from the output of boxes @@ -91,7 +91,7 @@

    2.1.1. The main window, canvases, and printout

    sends it behind the window in focus.

    - edit menu + edit menu

    Pd documents (or files) are called "patches" or "canvases". Each open document @@ -101,7 +101,7 @@

    2.1.1. The main window, canvases, and printout

    (note the handy shortcuts).

    - file menu + file menu

    On PCs, this menu shows the Ctrl + Q entry to quit Pd, which prompts @@ -111,7 +111,7 @@

    2.1.1. The main window, canvases, and printout

    Here is a simple Pd patch:

    - simple patch + simple patch

    There are four text boxes in this patch: a number box (showing zero), @@ -130,7 +130,7 @@

    2.1.2. Object boxes

    it is empty and presented with a dashed border before creation.

    - dashed box + dashed box

    You only create a particular object by entering text into the box. @@ -140,7 +140,7 @@

    2.1.2. Object boxes

    to initialize the object. For instance, you can type "+ 13".

    - object box + object box

    Here, the "+" specifies the class of the object. In this case the @@ -166,7 +166,7 @@

    2.1.2. Object boxes

    Here is an example of a simple MIDI synthesizer:

    - simple MIDI synthesizer + simple MIDI synthesizer

    This patch mixes control objects ([notein], [stripnote], and [ftom]) @@ -217,7 +217,7 @@

    2.1.3. Message and GUI boxes

    to it.

    - [message( --> [object] -> [number] + [message( --> [object] -> [number]

    The third box here is a GUI ("graphical user interface") box. Pd has @@ -266,7 +266,7 @@

    2.2. Editing Pd patches

    between these modes.

    - edit mode + edit mode

    2.2.1. Edit and Run mode

    @@ -294,7 +294,7 @@

    2.2.2. Creating boxes

    specifically.

    - put menu + put menu

    If you are in run mode and click on an entry on the Put menu or use @@ -337,7 +337,7 @@

    2.2.3. Selecting items and moving them or "tidying them up" - tidy up + tidy up

    2.2.4. Delete, cut, copy and paste boxes

    @@ -390,7 +390,7 @@

    2.2.5. Changing the text

    completely lost.

    - changing text + changing text

    You can also use the copy, cut, and paste commands for the selected text. The @@ -412,7 +412,7 @@

    2.2.6. Connecting and disconnecting boxes

    inlet.

    - connecting boxes + connecting boxes

    If you move the mouse cursor over a patch cord, you'll see it takes the shape @@ -422,7 +422,7 @@

    2.2.6. Connecting and disconnecting boxes

    area and you can only select a single connection by clicking on it.

    - disconnecting boxes + disconnecting boxes

    2.2.7. Context menu for 'Properties', 'Open' and 'Help'

    @@ -461,7 +461,7 @@

    2.3.1. Tab navigation

    most recently created box back towards the first created ones.

    - tab navigation boxes + tab navigation boxes

    Using Tab also works in a similar way for patch cords if @@ -469,7 +469,7 @@

    2.3.1. Tab navigation

    and from last to first with Shift + Tab.

    - tab navigation cords + tab navigation cords

    If you're creating a connection by clicking on an outlet and dragging a @@ -478,7 +478,7 @@

    2.3.1. Tab navigation

    Shift + Tab navigates from right to left.

    - tab navigation iolets + tab navigation iolets

    In Linux and Windows you can also cycle between inlets. This is currently @@ -505,7 +505,7 @@

    2.3.2. Autopatching

    box gets deselected and therefore created.

    - autopatch objects + autopatch objects

    You can also autopatch into a newly created subpatch (see @@ -515,7 +515,7 @@

    2.3.2. Autopatching

    ([inlet~]) if it is a tilde object instead.

    - autopatching subpatches + autopatching subpatches

    2.3.3. Duplicate connections

    @@ -525,7 +525,7 @@

    2.3.3. Duplicate connections

    duplicate and create more connections.

    - duplicate connections + duplicate connections

    2.3.4. Managing connections with the Shift key

    @@ -534,7 +534,7 @@

    2.3.4. Managing connections with the Shift key

    Shift + Click on another one.

    - swap connections + swap connections

    You can "fan out" connections when no boxes are selected. You can @@ -545,7 +545,7 @@

    2.3.4. Managing connections with the Shift key

    connect the same outlet to to multiple inlets sequentially.

    - drag fan out + drag fan out

    Also for fanning out, if you have a group of target boxes that are selected, @@ -554,7 +554,7 @@

    2.3.4. Managing connections with the Shift key

    not need to be of the same type or class).

    - select fan out + select fan out

    You can create a connection from the same outlet number of multiple boxes to @@ -564,7 +564,7 @@

    2.3.4. Managing connections with the Shift key

    be of the same type or class).

    - select fan in + select fan in

    You can connect multiple outlets and inlets of 2 boxes if you have 2 selected @@ -572,7 +572,7 @@

    2.3.4. Managing connections with the Shift key

    This creates all possible connections starting from the chosen outlet and inlet.

    - multiple connections + multiple connections

    You can connect outlets of multiple boxes into multiple inlets of one box. @@ -583,7 +583,7 @@

    2.3.4. Managing connections with the Shift key

    chosen inlet.

    - many to one + many to one

    You can spread multiple outlets of one box into same inlets of other boxes. @@ -594,7 +594,7 @@

    2.3.4. Managing connections with the Shift key

    boxes.

    -  one to many +  one to many

    @@ -605,7 +605,7 @@

    2.3.5. (Dis)Connect selection

    different ways.

    - ctrl+k + ctrl+k

    For 2 selected boxes you can use Ctrl + K to connect @@ -613,7 +613,7 @@

    2.3.5. (Dis)Connect selection

    from possible remaining outlets to inlets.

    - repeat ctrl+k + repeat ctrl+k

    For 2 selected tilde objects, if the origin object has a single outlet and @@ -621,7 +621,7 @@

    2.3.5. (Dis)Connect selection

    to fan out and connect the same outlet to all inlets.

    - fan out audio + fan out audio

    For last, you can include or bypass a box into or from a connection @@ -633,14 +633,14 @@

    2.3.5. (Dis)Connect selection

    to include the third one in the connection.

    - insert box + insert box

    To bypass a box, you can select 3 boxes connected in a row and use Ctrl + K to bypass and remove the middle box from the connection.

    - exclude box + exclude box

    2.3.6. Triggerize

    @@ -657,7 +657,7 @@

    2.3.6. Triggerize

    starts at the rightmost outlet of [trigger] and continues to the leftmost.

    - triggerize object + triggerize object

    Additionally, the 'Triggerize' option can be used to insert a dummy object. @@ -668,7 +668,7 @@

    2.3.6. Triggerize

    for you to replace for a new object.

    - insert dummy + insert dummy

    While the connections of a [trigger] object can be resorted as @@ -678,14 +678,14 @@

    2.3.6. Triggerize

    If each outlet has a single connection, it will insert an outlet on the left.

    - add 1st outlet + add 1st outlet

    If the [trigger] object has more outlets than outgoing connections, the shortcut will reduce the outlets, removing the unused ones.

    - reduce outlets + reduce outlets

    In case there are more connections than outlets, it will add outlets to @@ -694,7 +694,7 @@

    2.3.6. Triggerize

    inbetween other connections without lots of resorting.

    - distribute connections + distribute connections

    @@ -710,7 +710,7 @@

    2.3.7. Paste replace

    and connections are preserved.

    - paste replace entry + paste replace entry

    Alternatively, you can copy a number box instead of a [float] object @@ -724,7 +724,7 @@

    2.3.7. Paste replace

    count in the same group of objects.

    - paste replace boxes + paste replace boxes

    If you have a selection of boxes to replace that includes different @@ -732,7 +732,7 @@

    2.3.7. Paste replace

    same type that was copied.

    - paste replace similar type + paste replace similar type

    2.4. Messages

    @@ -792,7 +792,7 @@

    2.4.1. Anatomy of a message

    [float] object:

    - float object + float object

    The two rectangles at the top are usually both called "inlets", but the @@ -816,7 +816,7 @@

    2.4.2. Depth first message passing

    executed in depth first fashion. For instance in the patch below:

    - depth first + depth first

    the order of arrival of messages is either A-B-C-D or A-C-D-B. The "C" @@ -828,7 +828,7 @@

    2.4.2. Depth first message passing

    Message-passing can give rise to infinite loops of the sort shown here:

    - infinite loop + infinite loop

    Here, the left-hand [+ 1] can't finish processing until the right-hand one has @@ -848,7 +848,7 @@

    2.4.3. Hot and cold inlets and right to left outlet order messages. So the following is a legal (and reasonable) loop construct:

    - hot and cold inlets + hot and cold inlets

    Here, the [f] object is an abbreviation for [float]. Note that the [+ 1] output @@ -869,7 +869,7 @@

    2.4.3. Hot and cold inlets and right to left outlet order number. The following is incorrect:

    - incorrect inlet connection + incorrect inlet connection

    Here, the left inlet was connected before connecting the right hand one @@ -884,7 +884,7 @@

    2.4.3. Hot and cold inlets and right to left outlet order want. Here is how to use [trigger] to disambiguate the previous example:

    - trigger to disambiguate + trigger to disambiguate

    "Cold" (non-leftmost) inlets are almost universally used to store single @@ -906,7 +906,7 @@

    2.4.4. Message boxes

    elsewhere as specified.

    - message boxes + message boxes

    The first of the message boxes above contains the single number 1.5; this @@ -917,7 +917,7 @@

    2.4.4. Message boxes

    Multiple messages may be separated by commas as shown:

    - multiple messages in one box + multiple messages in one box

    Here, the three messages are the numbers 1, 2, and 3, and they are sent in @@ -934,7 +934,7 @@

    2.4.4. Message boxes

    likewise the next message is sent to "sue".

    - semicolons to send messages + semicolons to send messages

    Certain other objects (Pd windows for example, and arrays) have Pd names as @@ -945,7 +945,7 @@

    2.4.4. Message boxes

    You can put variables in message boxes as shown below:

    - variables in message boxes + variables in message boxes

    Here, "$1" etc., refer to the arguments of the arriving message (and aren't @@ -1123,7 +1123,7 @@

    2.6.1. Audio and messages

    the messages "dsp 1" and "dsp 0" to "pd".

    - dsp on and off on patch level + dsp on and off on patch level

    In the intervals between, delays might time out or external conditions @@ -1311,11 +1311,11 @@

    2.8. Subpatches

    in a patch. If you type [pd] or [pd my-name] into an object box, this creates a one-off subpatch. For instance, in this fragment: -

    subpatch

    +

    subpatch

    -

    the box in the middle, if clicked on, opens the sub-patch shown here: +

    The box in the middle, if clicked on, opens the sub-patch shown here: -

    open subpatch window

    +

    open subpatch window

    The contents of the subpatch are saved as part of the parent patch, in one file. If you make several copies of a subpatch you may change them @@ -1335,12 +1335,12 @@

    2.8.1. Abstractions

    To make an abstraction, save a patch with a name such as "abstraction1.pd" and then invoke it in an object box as [abstraction1]: -

    abstraction

    +

    abstraction

    Here, we're invoking a separate file, "abstraction1.pd", which holds the patch shown here: -

    abstraction example

    +

    abstraction example

    You may create many instances of [abstraction1] or invoke it from several different patches; changing and saving the contents of [abstraction1] will @@ -1379,11 +1379,11 @@

    2.8.2. Graph-on-parent subpatches

    check the "graph on parent" box to have the controls of the subpatch/abstraction appear on the parent. For instance, here is an invocation of [abstraction2]: -

    graph-on-parent abstraction

    +

    graph-on-parent abstraction

    -

    where the patch "abstraction2.pd" contains: +

    Where the patch "abstraction2.pd" contains: -

    inside graph-on-parent abstraction

    +

    inside graph-on-parent abstraction

    Here, the number box in the abstraction shows up on the box that invoked the abstraction. The "graph on parent" flag is set in the abstraction @@ -1430,17 +1430,17 @@

    2.9. Numeric arrays

    the containing patch), or as a regular subpatch (which you see as a text box). In the "graph on parent" form, an array appears as shown: -

    array

    +

    array

    Arrays are indexed from 0 to N-1 where N is the number of points in the array. You can read an array value using the tabread object: -

    array indexing

    +

    array indexing

    Here, we see that the third point of the array (index 2) has the value 0.4. To write into the array, you can use the tabwrite object: -

    setting an value in an array

    +

    setting an value in an array

    In this example, sending the message sets the third element to 0.5. (You may also send the two numbers to the two inlets separately.) @@ -1449,7 +1449,7 @@

    2.9. Numeric arrays

    and to arrays. These may also be done using audio signals. For example, the patch below creates a 440 Hz tone with "array1" as a waveform: -

    setting an array with a waveform

    +

    setting an array with a waveform

    Here, [phasor~] outputs a ramp whose output range is from 0 to 1, repeating 440 times per second. The multiplier and adder adjust the range from 1 to 11 @@ -1466,7 +1466,7 @@

    2.9. Numeric arrays

    If you select "properties" on an array in a graph, you get two dialogs, one for the array and one for the graph. The array dialog looks like this: -

    array properties window

    +

    array properties window

    You may use this to change the name and size, in addition to another property, "save contents". If "save contents" is selected, the array's values are stored @@ -1482,7 +1482,7 @@

    2.9. Numeric arrays

    The graph dialog (which also pops up) is shown here: -

    graph properties

    +

    graph properties

    The X bounds initially range from 0 to the number of points in the table minus one (this is a good choice for arrays, although graphs holding other @@ -1522,7 +1522,7 @@

    2.10. Data structures

    algorithmically, or derived from analyses of incoming sounds or other data streams. Here is one simple example of a very short musical sketch realized using Pd: -

    graphical score

    +

    graphical score

    The example, which only lasts a few seconds, is a polyphonic collection of time-varying noise bands. The graphical "score" consists of six objects, each @@ -1546,7 +1546,7 @@

    2.10. Data structures

    Here is the template associated with the graphical objects shown above: -

    template for graphical score

    +

    template for graphical score

    Templates consist of a data structure definition (the [struct] object) and zero or more drawing instructions (such as [filledpolygon] and [plot]). The [struct] @@ -1586,7 +1586,7 @@

    2.10.1. Traversal

    how these facilities could be used, for example, to sequence the graphical score shown above: -

    traversal example patch

    +

    traversal example patch

    Pd has no built-in sequencer, nor even any notion that "x" values should be used as a time axis. (However, a "sort" function is provided, which reorders diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index 61b940f59..d8558e8ee 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -48,7 +48,7 @@

    3.1. Audio and MIDI

    "Media" menu. You should see a window like this:

    - test audio and midi patch + test audio and midi patch

    First, try to get Pd to play a sine wave over your speakers. The "TEST @@ -124,7 +124,7 @@

    3.1. Audio and MIDI

    a dialog panel like this:

    - audio settings dialog + audio settings dialog

    The exact choices you get depend on the operating system and API. The sample @@ -470,7 +470,7 @@

    3.5. Preferences and startup options

    dialog appears as follows:

    - startup dialog + startup dialog

    The slots at top each specify a binary "library" for Pd to load on startup. @@ -510,7 +510,7 @@

    Command line arguments
    -

    although you may have to specify a path (such as "~/pd/bin/pd" or +

    Although you may have to specify a path (such as "~/pd/bin/pd" or "C:\program files\pd\bin\pd") so your command interpreter can find Pd. Possible options include: @@ -669,7 +669,7 @@

    3.6. How Pd searches for files

    item in the "File / Preferences" menu:

    - path dialog + path dialog

    The path must be correctly set before you load diff --git a/doc/1.manual/x4.htm b/doc/1.manual/x4.htm index fb7c45ed9..f8e386dd7 100644 --- a/doc/1.manual/x4.htm +++ b/doc/1.manual/x4.htm @@ -56,9 +56,7 @@

    4.1.1 What are: Vanilla Objects, Internals & Externals? List of Objects, or alternatively right click on an empty spot of a patch’s window and select “help” - this loads the help-intro.pd file (see below). - -

    - +

    list of objects

    The set of externals that come with Pd are available in the ‘extra’ library @@ -68,8 +66,7 @@

    4.1.1 What are: Vanilla Objects, Internals & Externals? - +

    browser window
    @@ -373,15 +370,10 @@

    Wrapping up Part 1)


    - - -

    4.2. Installing External Objects and Libraries

    - -

    Installing externals in Pd is quite simple, all you need to do is download your externals from somewhere, such as from Pd Vanilla directly, and include them in a proper folder. @@ -394,11 +386,9 @@

    4.2.1. Where to include the externals?

    external libraries and it’s automatically included in the user added search paths (under Preferences => Path), see figure below. -

    - +

    Preferences
    -

    We see in the screenshot above that the “Pd” folder is created under ~/Documents, and inside it we have the externals subfolder. Even if you did not create this folder, here is where you can create it by @@ -477,9 +467,7 @@

    4.2.2. How to Download Externals from Pd Vanilla?

    to broaden the search, or an exact name can be used instead. All available versions of the library/external specific for your operating system will be shown to you. See figure below. - -

    deken install - +

    deken install

    When you double-click on the version you want, by default Pd downloads it to @@ -591,7 +579,7 @@

    4.3.2.2. Startup:

    is also used for configuring Pd in many ways, see Preferences and startup options for reference. -

    +

    startup preferences

    As we’ve seen with ‘zexy’, it’s common that the name of the binary is @@ -618,7 +606,7 @@

    4.3.2.2. Startup:

    objects are loaded in Pd and they have search priority. This may cause issues discussed on the next section. -

    +

    lib print

    4.3.3. Slash declarations:

    @@ -630,9 +618,7 @@

    4.3.3. Slash declarations:

    ‘else’ in one of its search paths (which includes ~/Documents/Pd/externals) and find it! Here’s an example: - -

    - +

    slash declaration

    Now, what’s the need or advantage of this over using [declare] or adding the folder to the user added paths? This can be an option that some people may prefer for the simple fact that From 02590c53eaeb0ccb738ae1fe2398f518543a59d7 Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 1 Apr 2024 01:46:32 -0300 Subject: [PATCH 134/450] oops, fix makefil.am --- doc/Makefile.am | 154 ++++++++++++++++++++++++------------------------ 1 file changed, 78 insertions(+), 76 deletions(-) diff --git a/doc/Makefile.am b/doc/Makefile.am index e2d0811df..e737d6298 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -56,82 +56,84 @@ nobase_dist_libpd_DATA = \ ./1.manual/1.introduction.txt \ ./1.manual/css/favicon.ico \ ./1.manual/css/pdmanual.css \ - ./1.manual/img/2.1.png \ - ./1.manual/img/2.2.png \ - ./1.manual/img/2.3.png \ - ./1.manual/img/2.4.png \ - ./1.manual/img/2.5.png \ - ./1.manual/img/2.6.png \ - ./1.manual/img/2.7.png \ - ./1.manual/img/2.8.png \ - ./1.manual/img/2.9.png \ - ./1.manual/img/2.10.png \ - ./1.manual/img/2.11.png \ - ./1.manual/img/2.12.png \ - ./1.manual/img/2.13.png \ - ./1.manual/img/2.14.png \ - ./1.manual/img/2.15.png \ - ./1.manual/img/2.16.png \ - ./1.manual/img/2.17.png \ - ./1.manual/img/2.18.png \ - ./1.manual/img/2.19.png \ - ./1.manual/img/2.20.png \ - ./1.manual/img/2.21.png \ - ./1.manual/img/2.22.png \ - ./1.manual/img/2.23.png \ - ./1.manual/img/2.24.png \ - ./1.manual/img/2.25.png \ - ./1.manual/img/2.26.png \ - ./1.manual/img/2.27.png \ - ./1.manual/img/2.28.png \ - ./1.manual/img/2.29.png \ - ./1.manual/img/2.30.png \ - ./1.manual/img/2.31.png \ - ./1.manual/img/2.32.png \ - ./1.manual/img/2.33.png \ - ./1.manual/img/2.34.png \ - ./1.manual/img/2.35.png \ - ./1.manual/img/2.36.png \ - ./1.manual/img/2.37.png \ - ./1.manual/img/2.38.png \ - ./1.manual/img/2.39.png \ - ./1.manual/img/2.40.png \ - ./1.manual/img/2.41.png \ - ./1.manual/img/2.42.png \ - ./1.manual/img/2.43.png \ - ./1.manual/img/2.44.png \ - ./1.manual/img/2.45.png \ - ./1.manual/img/2.46.png \ - ./1.manual/img/2.47.png \ - ./1.manual/img/2.48.png \ - ./1.manual/img/2.49.png \ - ./1.manual/img/2.51.png \ - ./1.manual/img/2.52.png \ - ./1.manual/img/2.53.png \ - ./1.manual/img/2.54.png \ - ./1.manual/img/2.55.png \ - ./1.manual/img/2.56.png \ - ./1.manual/img/2.57.png \ - ./1.manual/img/2.58.png \ - ./1.manual/img/2.59.png \ - ./1.manual/img/2.60.png \ - ./1.manual/img/2.61.png \ - ./1.manual/img/2.62.png \ - ./1.manual/img/2.63.png \ - ./1.manual/img/2.64.png \ - ./1.manual/img/2.65.png \ - ./1.manual/img/2.66.png \ - ./1.manual/img/2.67.png \ - ./1.manual/img/3.1.png \ - ./1.manual/img/3.2.png \ - ./1.manual/img/3.3.png \ - ./1.manual/img/3.4.png \ - ./1.manual/img/4.1.png \ - ./1.manual/img/4.2.png \ - ./1.manual/img/4.3.png \ - ./1.manual/img/4.5.png \ - ./1.manual/img/4.6.png \ - ./1.manual/img/4.7.png \ + ./1.manual/img/2.2.1.png \ + ./1.manual/img/2.1.2.png \ + ./1.manual/img/2.1.3.png \ + ./1.manual/img/2.1.4.png \ + ./1.manual/img/2.1.5.png \ + ./1.manual/img/2.1.6.png \ + ./1.manual/img/2.1.7.png \ + ./1.manual/img/2.1.8.png \ + ./1.manual/img/2.1.9.png \ + ./1.manual/img/2.2.1.png \ + ./1.manual/img/2.2.2.png \ + ./1.manual/img/2.2.3.png \ + ./1.manual/img/2.2.4.png \ + ./1.manual/img/2.2.5.png \ + ./1.manual/img/2.2.6.png \ + ./1.manual/img/2.3.1.png \ + ./1.manual/img/2.3.2.png \ + ./1.manual/img/2.3.3.png \ + ./1.manual/img/2.3.4.png \ + ./1.manual/img/2.3.5.png \ + ./1.manual/img/2.3.6.png \ + ./1.manual/img/2.3.7.png \ + ./1.manual/img/2.3.8.png \ + ./1.manual/img/2.3.9.png \ + ./1.manual/img/2.3.10.png \ + ./1.manual/img/2.3.11.png \ + ./1.manual/img/2.3.12.png \ + ./1.manual/img/2.3.13.png \ + ./1.manual/img/2.3.14.png \ + ./1.manual/img/2.3.15.png \ + ./1.manual/img/2.3.16.png \ + ./1.manual/img/2.3.17.png \ + ./1.manual/img/2.3.18.png \ + ./1.manual/img/2.3.19.png \ + ./1.manual/img/2.3.20.png \ + ./1.manual/img/2.3.21.png \ + ./1.manual/img/2.3.22.png \ + ./1.manual/img/2.3.23.png \ + ./1.manual/img/2.3.24.png \ + ./1.manual/img/2.3.25.png \ + ./1.manual/img/2.3.26.png \ + ./1.manual/img/2.4.1.png \ + ./1.manual/img/2.4.2.png \ + ./1.manual/img/2.4.3.png \ + ./1.manual/img/2.4.4.png \ + ./1.manual/img/2.4.5.png \ + ./1.manual/img/2.4.6.png \ + ./1.manual/img/2.4.7.png \ + ./1.manual/img/2.4.8.png \ + ./1.manual/img/2.4.9.png \ + ./1.manual/img/2.4.10.png \ + ./1.manual/img/2.6.1.png \ + ./1.manual/img/2.8.1.png \ + ./1.manual/img/2.8.2.png \ + ./1.manual/img/2.8.3.png \ + ./1.manual/img/2.8.4.png \ + ./1.manual/img/2.8.5.png \ + ./1.manual/img/2.8.6.png \ + ./1.manual/img/2.9.1.png \ + ./1.manual/img/2.9.2.png \ + ./1.manual/img/2.9.3.png \ + ./1.manual/img/2.9.4.png \ + ./1.manual/img/2.9.5.png \ + ./1.manual/img/2.9.6.png \ + ./1.manual/img/2.10.1.png \ + ./1.manual/img/2.10.2.png \ + ./1.manual/img/2.10.3.png \ + ./1.manual/img/3.1.1.png \ + ./1.manual/img/3.1.2.png \ + ./1.manual/img/3.5.1.png \ + ./1.manual/img/3.6.1.png \ + ./1.manual/img/4.1.1.png \ + ./1.manual/img/4.1.2.png \ + ./1.manual/img/4.2.1.png \ + ./1.manual/img/4.2.2.png \ + ./1.manual/img/4.3.1.png \ + ./1.manual/img/4.3.2.png \ + ./1.manual/img/4.3.3.png \ ./1.manual/index.htm \ ./1.manual/x1.htm \ ./1.manual/x2.htm \ From 7b05288c1ddb9715919e863cb36a01b068ee9475 Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 1 Apr 2024 01:57:48 -0300 Subject: [PATCH 135/450] oops again --- doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/Makefile.am b/doc/Makefile.am index e737d6298..61ec49238 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -56,7 +56,7 @@ nobase_dist_libpd_DATA = \ ./1.manual/1.introduction.txt \ ./1.manual/css/favicon.ico \ ./1.manual/css/pdmanual.css \ - ./1.manual/img/2.2.1.png \ + ./1.manual/img/2.1.1.png \ ./1.manual/img/2.1.2.png \ ./1.manual/img/2.1.3.png \ ./1.manual/img/2.1.4.png \ From ba37ef5fc1cd1e5935713fbdab5995c641d3afb2 Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 1 Apr 2024 17:03:13 -0300 Subject: [PATCH 136/450] modernize 'data structures' section patch and some info was outdated. I'm now using the patch from the tutorial with [clone] and I also added more pictures to explain the patch --- doc/1.manual/img/2.10.2.png | Bin 21898 -> 36469 bytes doc/1.manual/img/2.10.3.png | Bin 65522 -> 21001 bytes doc/1.manual/img/2.10.4.png | Bin 0 -> 79670 bytes doc/1.manual/img/2.10.5.png | Bin 0 -> 32523 bytes doc/1.manual/img/2.10.6.png | Bin 0 -> 63182 bytes doc/1.manual/x2.htm | 257 +++++++++++++------------- doc/4.data.structures/09.sequencer.pd | 78 ++++---- doc/4.data.structures/voice.pd | 216 ++++++++++------------ doc/Makefile.am | 3 + 9 files changed, 274 insertions(+), 280 deletions(-) create mode 100644 doc/1.manual/img/2.10.4.png create mode 100644 doc/1.manual/img/2.10.5.png create mode 100644 doc/1.manual/img/2.10.6.png diff --git a/doc/1.manual/img/2.10.2.png b/doc/1.manual/img/2.10.2.png index e5832128d5b86f6943f86887cddc48d78221fa38..4491ff9954217ce5f2fc7ba82f464ae6e425ba4d 100644 GIT binary patch literal 36469 zcmZU419W81_I1a$GqET3#I|kQ_QWmmyKQ^^4E8Q2l9zV=-eB3hY<TZo?H)Ay0`-oZS>PeyaaX*=C3M**2$wlH~deY$2JrQTchb*fqv) z7n4c=^bPiq@;@F})~xQKY8idb8C+k#f`K+^88>?c2gWfXLZuMFf8f_IM7^nJz&!z! z13$&NVVcfP)Fb-imM}HLq9gLV2waly7D(2I{P&}cE z;a~g+BYa2U_4keQjU^C{JA;w?^)^Q6Yk)9hfbff(@AYHOJc)`{6~Z)pHekQMPO*YY zjwnbelnp2M&S0IIalvBvM)vZP?zP+dX}IL_YJ1NS8t;o7A?3$qcEgVbYQG|z*kgWi zi&eGF?p>?9=Kal=m=C5|->cP|&CK5}du%31b#Tj3Hsb7HzI${gaCJz_wGp3UGhvlf zF9j2ZW7!HCa#x>6q!&kPcq3HLG&gfM<*T+cAJ;P(aN`#C1AI~r1`4d*ARV`_x7zWN zb+d1gH<6fJq)u8Rsg@_=k3NTl57L4o*5LN zMM)qsZ@_L&Ap?oE2aL-@)DfUZ1U_KshaNyZ4f@gpeg@jq1Je?;enkb46|VMV1QUY=BZBfE*lRK|~P_wi6^m z^i={yDa?f!?KiBG{~9qN6*7r1lLAQ+sHu>q0)Y!mSs-q%S_#}q2xKmb1zvh+m+%-g zS)jjx*cFioiW9VJFi0QjcJP%LI0*>~Ot{K`qzHXJxMGlnkP9&ZaW?4?GD~=lgnyw} z9SKA{vxI9Q$}Hw_0K9-wJXAc+Z#)y2I>cqjsaql^c+RM|n7-Upg*Pf3j=%}UNh(xo zR9Ap2UUFEO2wUDoKBVGq3FkalI^;x5ijZ|a-L&12fD0ZMLRJvH_@=;Skop{%7fMiX zjnM$3)s>aYaInFHajY>c(|zh{D#$qa0VQVCevg!)YfX~|2|I2^Xs3T=??xYAznsy} zl9JM=67*7;Ql66EDkCbKDhn!EDpMtVij`YOjwBqinRJs#%}DOB>Y>*C_q!C1G#-#0 z*m_Wx!AQM?Lx(%3SC3Z(PY_mCR)SUtR^LwyPK4)M=haII72=dXDHu`7V8p-~gy6Ty z@&X+)7=<))^YT!NW{R(KBYts8DvLUY9nejn(xFw-Rzg$~o(rycuTZR*H|QTbxRAI& zy0jmo9yuLV&D_sT%*L-+(8}P9%~=#&wiR17%3Rkm_nO#Oe#!Fk1-C0o1&Yt z8r~Vpn9`bd^mFtEo1hvo8<8*-F(xyu8>gELF-9?IGlnsmGcPgo8)h3Dnkbq%8b+9p zm>(P97>m|L)@jv*)@B>on)vj#jSuyk^&CvOMOVh2a%asbxpm|zCpejzO}x&KOcg(K#W5e zfz!kAplG0=qq$(pU{+vxlLlicVZkDgVxC~8qaC0%ValO*k-SNPQ|8m7k~!%Witqg_ zNi8WqQk*fH`O4(R1Xl}QOJh{9!@A?Oldwa+BaDg-;~Jq5Arw*k16mSeglNQj#P@4( zQkhDPO5VIbtCp5L2L07-2~kNixZZ)QwaVG}2#RY4lYH)C`qs)i}#$E9-uh z{gP6wRL)XEQ@d59QTSduSz%Y~tMeWJsnxHrn=95nWG|~aVKE^#VXwukm8Z3!rMzOa z^08vNg2oldC6Xo0W!(1G#@9C3X6yy(CDMu7`S>FA;`_4yk^@f$F9dG|--SE+MG4*> z`-6FwRf@UIHky^4Ws=d?sLx`@=7;&sqRKSu^j+j}W?JO3Z~f|lg|qZ6%K-zO2dxCA zDyDP$yc_v>o3&((OT&1*w>`O~XsuPfn8sxtpEa))sgZD#WfMdbW|O(?=AVdV(UtXv z;XkX(hpT=r3Jwx3M~)^=Yr7ifEk`CtE~Ced^)1fP&dqRHQ9q@V#~9R&muQ!mzHv5_ zHH%+lUi4nj5ojP`#W}_0WK(1x@=$iFbj)_>c|>^*e}B9H%3|~*vYo$vmjK@ zvC2`+r>hNqnp^5??s1Pb5#f?gzn*&>d&qcLx}LiEM9)Qw$6&-LLGxgD;F4gVqO@TD zL&d@1!8gEDNVTV4VrwCKB$jHe;lrWYBJV+ymVhVK)&A4n{%s=wx-`5YyjEi3w{wCs zy0nxhI{H5T0_p_3{-0N)0pr+#=;4#0gJJr?)&bop^Ki=H$MeKBcbm;(@VVfzSH)M! z*LE}rR3yq+N*pp>E&%=&@3fD?k-FaB}1GQKAn_!5mYfh=P#GDzS?{E?&z?zn>5a}@?ptg!fXYOgzrYXCOspR z#VYc;JTaWIeD6Ea8)>7op%uXu5%r7a8FkO~EOmaFtIk#5#5s$Pcs{(xpKEo>*HYm6 zu;lbLCg4WDXWOUh>-Xq7RBWl|>2KFZy z4?^9z%Gd77(qqPA`Hzq6yVkmE!YRbJR67$^LD|>zgY=;EVXZZ7NG+^MUdAoy(c2y|5SQ?#o)%q%Pnn~@Z+#uX!T`rG(eTL5`r*&W3G^JV=*bNMqtAzYwF>bg z#0_{hib5J#Aae=40p;cr8Bl5 z&N=dw@)4H-gOIyB+`l8YD!#HNP9n*oO(V~vV8Hlm1FPaM+${JbEy--%Sn^bqc;6-VT0pU?kPcPkChp=)V8;0a({|B z$T-BfMY+UV2U-anq}`_;sIDvS%WkVSbi0b@4^eA>H>bLcRF8L4=knFC9mzTP{a&4Z zc7RWFu2u;)E94yHv~q9olhLp-(Xn~!@{xoId%&V-B1a&2@^*M6gU^YFTij zN{7sDooK7JsDY`Bs?+@l%`@9i>n|sE3y=Ev)*3CLt&^_8T_c6do#Y+&3fhYk(&v<1 z`P}RF$7=_tpt_gsmup|UGd$y*HrvgYz$WxIHqydO<8)pbeeUD32pD)rPM1z|yuI9d zObqUqCwljYR}a0Xy1R}%(wNS8`o1yWmp!=dmCPQ+eT%Ut-T2z2{pCBe-W{Kj&?i`b z*kd9BA(CHR#!kiyv(N2qEl#m!>~aFbVYinz+RMZDi@CSAz=1gBC?#o^v4`^dFJH88 z8NhW#HHZ)5IjNNAs@Nx zYVYfi9PS+49M~McUFmFB?$I1}Q#q(zH7Jxi#Qj!hQgif)U>xBog_@13%Xf;sfkH3C zfJ(wt{iC|DV6zZ`OPo$d=Wc6_52kC%i{fJj7To)-e@W~yraFBu?N@q88n;Ht#ZDb~ zN=`+##%9geI$kp@Yk4OJ2UZs)7fd%p*CHof$Jd>YN#mZ|Ds>h-1kvwxKFr}^-o}z9 z{B``CL_CbNRID6iWK{F~(b!!XXSGXgeN3|{M)>;#_yGO1#GTn4`HL~RmYQy&TE@~N zf$QEK;lVKJ#0;hELb;;6IM}{xfl-MOTHX!Uo%0d>V#_IL)6%TQ(Fb0v9On~nO}o{Q zkB*2p{g9TZOi`u5^q=EWI#NNSh&q$>)s-F!&w02y+odyQu9XGzgxy}Pd7anCjo+4v z?cZ!dwJfwaS48Yao2^~2-7eZp-B(-33RZ7p=X9gKuRNN1wGbE(j^B5A{CT13X1K0h zLaX$h{3t4BfUM%@=EmmTd(im|8JF%dd_ZYZ@2DmhZ`|bQy7xI`GGniL(=!NkGkWh| z8o7>R;J=sWO}}_wfnod`(=7D5t<%fq&W(8$^a>5v5%~HQ;uLWjjYHhm2$TYHoanudqCC%8X+idjfs* zY$CsZbg~T~F2p2GTTK2Fu*7gN%wyUi>0R|E1$qaX1Fju18Z)~M~0 z@4D~Gf2zCq$h5_Z&CFwIV%T8kJwY~*H03gVR??dCj1`ry`;ZcET991L7Ie>>L8dLc zs_(XR{`Km8JHt2&ZCP{ZIZC?Hx+SAwHR*dqSUY9?q5qPl{qQd@vYjj@+2_V9Z9WNeV7`cEv{j5;BvT~$0OGLf z0Of_VtitM4a=6S}I;+#xWbcabArhe+qO7AN8wW|okaN<(k=M&xZ5$2*3wNA8SAx^* zXVSA}8jFniVjW)&{)DgFh2vzw?R%>*R_LwR?IwmdRc6~$rNuQWRUZ95RboqpuAM%L zif0LR^UFzcc6#l~=Dm!%DK0H8Sap#uL-%#AWm8C=YBk;YfdQ1gc~9laD%`r3d+Zv1 z3&UFC)7HIkzc@l1c@8?SC<1bhE5cVk`|pxC#GPGli`E@hP7a|hL=BvutDldyn9k|*4X!G4dG()w{8|7+7YC27ptoV6| zcI3lNr%At7D_K{#5}`V0gK>3*pU58)yayEAA8#7$p@)zxkk;d&y_ZTOP=m^x#?Xb8%hqiG0x+5f|bYj8OdD$dSR0z8eFd zTGcBk4kE? zprd}5ShQk`t_cJx?i84W&3hhG;XrAUbF#OxJ;Q{^4T2VtndV1^l+~rjb45WmQfR@= zLUKXtRuIJSY56T1OghXSHD0qM>do2JBi^z{HRNHU*KR-s(Sd^OWq@$5%dE+^Gvz0D%pQxN~ngVYnTJ!I&pUodm3)J_x zmhUTzZ=?VW14yB(m1a;7A_(*VZ3B3r-trB|$k3ZS?rGXU3`75LAr<1G1Re=_6JjSk z^3X_ubrIz}-I?Sg*J$ov7-Lbqq3^O7V)q1kn?WAd-VBXw_sG3rS1}Z6DM1fhS)}VE zKEy$s{jkPh%GmYjx9TYri|Fj)ZZL@8!`zbuRbm%P*>D|)Pm}$R@wgspVIk%szEO%% zx6&n&TvDP^ImwpES@GsT&COH5TG&^1QsE}{on10dGl_1!)&0vg`XvTtg z`;J+VvZCg>*lnwOuEzz=LC>Azh~a8|&3Ns7WZTp}CmyRI(DzFI{0R+@^n!N<7!m3GUx+5{9SbCQo&6~Ch_}Z z;#s?v-Qf@FVknuQcU}JDhOP#F zVJD>KN8eT3RF@WZ7E0Md8hxzSt#40xPBBlJP6tnYPNl!}eR2Ep`i+_$^4lRlwSc7K z>61TnC?I#!&W1J|)PDlh;Cy^&NNQwgNb75+O*E(jx6SL9*+osT93}|3jHA4skO4ox zv1firrqgMq@oN>}orf$-6%7{+Ss5;4ds})#6MG|5dJkI%;LQjCfX9Oi_|?|b#gNFu z*2d16%Y&EXUlv@z?|+*aNQnMr;$qE9q9Ln5By8_wO2kIbO3z5b2TMdm#N%XQ#-$`8 z_Mh&+U%Vt1E-nsS3=F_K81(Ke^!85X3{0GyoD7W249v`QKnpr&PdgVw4>~(%(ti)~ z&p0Bc&c;rb4lb7Vc0_;2H8iq!b>Sr;`8&~nU;p;g)WhFwrwI z{C8|%SDwGETnd&RrZyTPmbRvL&cHeNSlQTl{$>CF9r@pk|EH(s|9Y}8e*3>Y|Id;C z^yFdq8^Hew=-=7;S1T}Ge6TzW|4ls~?Dt6hbpSvBASoiK;sJ8j3Dtrjdc&uq$G{mu zWkeJnnTlLb)n?QKIJiqg3l-O$yGTdlhcCDOaM4|7I}F$CRYg}s83aI%6TwO#!~9tK zSkhkN8&Bh2XEB#+Ib2hIUvoD9CG2{?%BwrKu&_?^_ONPi7J{Lc`}uz9H}Kftuq~uj zX97c~-4wm$`}yu(R$7`+?vnx-<{uE%nr=9zeaBGOQM_RqG6@Mn-yveqxvqC~K$sQ8 zJ4I$Vy24B5e^cO7|6reLdAn@cMa1QBAgZh#!u?@edMoaWp!wl6{+a##BJbn<*!DB-V{R04V9>|bmX6JSL&q2BcOivry2*{MVQ(M=B&g$1G!CoZ zhqu*28AhZ1W;XH+YK@G4D!B!>6^%+@wB|uCI-Wp1qG2wGIh;jWDB;l`^NH>%&;Yp1 zo$7P>&F(ft+1H%5fWU`t*Pt@*y{Qh*TZ@D7v<8bA604;u{K}4-QIaqs4)s(P^Vl>t zYs}i*LVDdc2}*bv_-!)?4c*6zPYe)I0Tcyr^njrd0HgypTi^RtKN2%XaD1@-M2%tp z(OLZz=5~w6wUJ`=O7)K+h@cd)zvh2?{T2hfRXr0)y73ER$cI8vraI=x@4cy*9Lz0mb4i1a zI&IEAL{z!NY$ZyBKQ0%;7hhf6zDQ4`{Jvn58-Zx9V^V8gk_esAbOhbY@ga)UXc8Lt zQ5(NguhL7g+wI*#;1#4nY;Nr+NPodPG$45q!d-vEyd!C zPgH+=madry#TT#g}G7tNMl5 z{Sl_soGC%4t_gf=NmN>pG^VlzVos!s%sbIx{wQzP7`-8UUDarN87@EOA0zk`QTcPa zFZSHh@O6>ZaqyVcsMjH#_4SKZ`Lb4nSE9*XUHEAbNj!4EW!GzLC?dX8hHaB(A3Clq za9KuSK;Y49^T9AH8$J9R2Bv5C8J%q0PI>3uR!s6;mv$^VWD4wxAQi)!-mEDNojE7# zh!2Ni$xQd2CMp|FBKyO+m|6`M={z+htn*b5;R|p!k>Bn6iEBwEqw(ysyl4=tIkQXF zy~e*($JM?yT1m}&k>j$5^>a+dH-;Wb%&N}B{QhiQ(o2+l?0i@$FD!bwU(&bi3x?Tv z9ATbU;8}UQZB=8wd`{AyWA_EG@d9I3RHVHdLgX43m3mV*X|xI>2ib-Ov4lw1eO->-zi2RI^;v0Zs5m8J;4M)Nt9)8?+J53j zgPSck%s*EvGK|{Hx8=OZjrH}~7-y{^K~ClKX~WK5W@|1oTIrIOys@PsfC~^Mzts!B zp@|ua^4A>%5!AGfI{u!Q(eX^L_{xrVkJJkWlH}-(1OiSx;)v|t3-hT@!Fuw`Y$$_S zDk*_9*f`1G#6Fq~Wyyt;I8tWla>CO-5&%5l0T(L~vcT_Q(@NdRc__05*4_}^VL-(G=NSR_CD&>w>!grjL;Bn;`sIKG!~u{Z)*d@h&V z$4$Q+HBD0tuCto{0sFH*wKpBZ1mCAAGHgf+W@)NBegF}YzmLjlrNMH((ORAB?W&(V z8)CdmKF8+)r}N|Gl+|%ZB;v7{|2=|z-9SkV`5tG3_Lxm>B&eP7RAhH%VHJiZ@hxkGn%f81BsaZ0Fg znK*sEKf)1g`o7Z1rn5#cBGeydf1lN|uH4__{lR&!0!|GN($PL$u|rL*CLxm(sS5Ap zbt`QZf&lwAY{$`&0U&rnDriV)=o`-Qv?MOY-fI}f=blDyyGeRq%iNX2$C8$ZcjBt8 zVwV_$b%eG*-OR^`$v~CAM3TEx%7e}&9j?Mg4t~98uRepnf4iNEa#%CZ@iCDu1$q%1 zibP1i{fBJ#c8b54&*x=2f-+lzq5F+l*YEwl;rSqAE>|$<+w2qFt-isZmSUjA=AEl3F0Cg;@8l` zUXSbUaJtYAHkR&}osYBoKlLvvV6MQ3!`G{OUX#8mLlc7XdfnwtW^s?PYa!ntr#d_# z`}c$>W;5WAuO%Q7g0^3Fad%$z!I88ih@)S2ee{oXKvIF4h6BW6H9nx#qvQY#tiB;m zA%zgxqgi@+4$531f`G)+Kh!At0p*oy=By7J-!CHo!CL{Vz=aaM5;W*zvt3C-egIRi`%gzOpp!ZUa`<%>@(a&oTLw$O0B+-=h85n6~_dAr}<8B=P z>=gf}j5xk)QuI@e{MFO-t|?jM%!Zn_Ejb~i#%c7kA~p)X_f@aceG%9vHXA4$N3=Jg z_mv>Zo8r@ollI148MF#DsKprak9;FhO4M(GZ<|AFrQ>P3=J7!ZB%vnEP7TO4gdK;p zL<2Fe>2Lb0F%g(CCN!#YK`wsr=vEInNKt@XNU--bw6Hm~%q{7k zVvxVZX3PFs8Wjb^;PKD1iAiIl#9%W8ipB1^VL8;BPo;2FYBx`wfx#1pcjDI?U>_6n zY%^;0zk)VDtXP|`pr}+}R~mt1k7HdkD!p$7A?*)VR zLetSm7lsM_*1X0r3bYFY+V2;&_i^9Cc$(Inq;Z}Fv5g8`p(o@jYy+rqCX*361P9@8 z9grh?P(tC{;!Fl=w^1cOzk89&) z7PzTHhH}((neVO=wt?p`5P|Lu(S1?O*6Z{d z$=txw_a^>M$M=3W=dxxCt^Qr z;z?r{%CI>at?Rj@GKsu6QGOa6l;KR0e5K9 z)!=`{JEO9}4#t7EGuWy>DJ!3y5htWOw#C(9asng#d^_YPhri9{a7VmDCOB~Hyk9Kn zeB97h$w%I*u{vL>&e5S;chEKbxJ@;VMbR_Rg=4!2{bEPuT)~czotHg`@!ZcZ$u&^V zN(<>BmVr#Q=^&@pvirJxw96jT&!HaOTrnZm;IiM<&?4;j(z$%1 zdA&>Ui#|)L{}8EI5l(EzJnH1gcHW!xWVMdr-hN%*eI^2|1|_thRv23&%)BKx2SM5? zgm^LpOOMJ*p+tq4h&ag`(Q`DIKaQ+GCsn*7GZ&6DM+a|KAUV3j$x;3NnDy~&TF|3SJ#M6>|p$^yGW0KzE^ zZFsuG5{>J@h-x)gAS>Py2QVO2h#MjoTt*YpAgF>1X6H4C*)D6_&|}PJ(}~ZDhCl#ypG27ytmk({=@HY!~lUPHwx@D!w8rh#>Gf~ zC-_UyBL&z<{U>9pTxm-8^FM=6LjOS_Lmh=yTBzVOE`j-%a8Llp{R)aL zD5NlIwm;oiru=U?@mGX!f!DkNIbnRt$$t!iAGvmD$T)(a@NDxl6nTFg{_8g_e=MSM zT)y@Kr-Uu$Kaup@fRM75v*nxrZN>Vh)t@MyY4#bonY$3G*`oi`3Lph+TRc)$YXbRz zE22_H$iMvsh6mk40mYvdH1O=IkR9&7!#s0I7$}1A zmg62<)c;3ZDS)3K`+KRXR6G^`XUxAc?F2c#|A(UiGlA-0*~I@`%Loeg4>n7#_L@&- zhy7<%0JK3*i^&KoNC70Z8gN}g|C_w|7$Rb_>p7IdCg^{Rw~)Zkk_yfWgZvhSQI!61 zw+tV|Le&&eX`y^!1HIwxKe-bGudt0R(+Da#>io|ltCIS!?^l!uM5<=}lg3A7ulK)#EfIY*oG~qeHe!fxTiyDOZe{<^wPJ}inL0Mv7>89}Cc@|;-tYyfte~LRW z6?zJ^#1crwqH}?&M^38;$WsNat6I%mn?n_j|ElwJem_3j_VcDZWFMI*0G|+{&z<65 zdEaQgL@z8>J1LN`BrDuGcl2%3^AJCs)e`mobSZ98!#GBU)2VW`(A1%^NM;D-8y_EO zKGxuAX>oS`dDCjFn!e9{{xk!bA`M)C>jdXv=A1#F<7s7c3R`L_6vAg@W5mlq1ln;y z9A7?=HYN|n5$2#(0U100UzW*PWEuYZ`Rcg`3~3rDidK^xNrdt?*DSx5hqyd?{*lg`f|J~X0T!a1QMuXkD*2VRBjC`N2w^Z&Sp}PO` zF#iYe*VBFcIQ<2 z$PQ*2mVw**{;(EAp803%jqnq2jqMTno(y`??j0YN%~wq(X-1*FH~l_+B3PUcWa<~x zw9|kxjh1HOY`Gr7Ui;yvp4W&??I30-e;M<&fBy(&PNt{Zdg0)TI?`|JF}miY2Z-qO zZ}xVG+-Ho2+m+25%wKG30t}POIIjoLihRI~TN*UlPZ+8;e9l>9-zAB8K6Sjken=>+ zaMigKY#cY-n_G(MDlS=9cQ(y`eZjwju?)%5{;RI!lx6#qxea?(8!a^KIqJtJ08`+msJeIY2-7Uj% zwlLx^s~HDsCYv_5bE{B)E)Z{*wO!<>v&`|kA)pu!6cdm<6gU^CM5dv|qyyB?N4w1!~D)o!+19|xZ77EjWu zeCY8*!<2RI$w-E9n6&Yb0n8WOpC4DF9O}N|4l9<$X}WI9gEFa%z23m?2N&&^lZChI zIv(30W0A!1Lv}m>l=A#h%OM$N<=@%b@P} zE33xv0vNN^+^-mKyxh)QQsLF${$WT5k@x%a)o;=QzXn%S{kpv3taB_+Du6fM}c!CmM2l;pG{gB=x2pLr836`7|WfKWDW@T|XQoyMs@pJK7 zeBWpAOPKlLGqf;l&ZsxfE7l8z=OEBY#A>tm4pabAf7V)^5l;JA0s%1yePDLL!X@fs z{S;rK`CHV^9OTPr7zc8TBIs=LrXUo)iQ9&!d4H%pdz6T}w~j$DJV*pV5E?qBCWsfZnX-ywCI6CTtIaREdCsYzNZ*s+z-9)lWyeFuxqjSOu zihZtM)R9soTHqyDf5;MciCt^T=;Q;_>2$9t=?L?){LfT;6mooHYPbpUtU)N(+HVqk zipuS-j~DCbZ31V-8qk3ba`s_sQ>;#kt|)nBBI%m-BdG#8RwiPq3E1$|ITEa0i977CFKEZMRygwb>h3 zmZ?r-T#`+{(bTGXV+`{FR#%YAy(0Jxj)1wQP-|TQ0?I+E=e#HwBs|eHw084#Nj!2G z8<-}m0eXO^)rCI{BuGyje|X)F$lsJn@)A`83lnrSV@$?FCM)=$HrnHnd!7!4S-(DZ zR?JskZfoQ%pTIj=UH5iLZQq|Qej!AaLt(9ZuPULhhxU<|>1yx(D)Hrud{lZ7bPFes zX0xU@u$?jxu#9 z;o@D>tMyb-KUpRY^=k)tpu&lA5q27geFvi?WBdqiwRu&h8-3IP&?+})l zCwx^v1l?xdTTP)|-)c;45or|6a93%Ui;OB#ETi#A4j=^=P=HQ~3~2H8_((9oAEH(b zbTH6mLm=eixt@)t%=QrKlBoT#dAU0tuwa7v~FEBM<%fWWlFx;|P_KJn`a zu2>p)d&!{HoSq$5)rx(e~Mx*7X&+ob)kF2^j$z@G5>OKh^{G*nUnK95Xo<%Kw z%`%D!K01K$8(6sr=4hHqO<6Gi0c%3+Qln&Q)Rc_SFapJ$=N_3i3B$N~00YOkcCQuY zTmNrp=jz2?Mu_c2VnhawrnsTO;%aZ&T=+{o;(eiIhp8BKi z_YIY%L!)!NW$nWP;f?D;do>U?3FB@;9{t`=^_whempJ%z!Dkl}im>j1sKhTl=Ngl~ zDy*Zw{&LcLfTjwmuU&VnqmGp`*f+QU>Ek1Ts-v?{6UvW7mh$DeM++)NWdF>dr?)I) zz*|V5uLlB>mWO1#)WZ2-oQcP3>}yO+CQS}IKE;bBl)VR;b?4q_fmlB^Jy=k(P^<7{(~-gbe)Dv$o9mRO4{z3680UqcI5VadCF7pKFik$gMG12Vy$Yn$DWf{UrexI+K5kG^_ z8AyvNpp$SwQy==!b2Mt}3T0XCRm@Bs>cGZ$u$@ZEdBCq6gL1}dTRCd28na!?X}VsD z#r>C#P^)=maHbTa&|(QhbOwyzk3}lhoESv8J~T)+OCj)9p0sbrm?BjJ51}DS zOs9uucEu4qX5Bev*0KVmg6XQORbFnLSH%Fkh8lpH*XPG$cdv=pr2xQMW-dE+he*@Ko|ZC#OSb?Ur+vka>4utB zc0)MDgMU;gk&dG?)FR08B|8vH2L=-X#9KsIVsT~LWX6daV7Srr^(HuCsK(hFWXn5<|4^WaL+egcKgNCo|E|&%6QiyufhVS2p1oL>XoXdFGaMS>Ir6^*g zCRXX4tK`VRvp;MhOLxeVGcr4jgpp1GNH(0Iq+NlrOK*~CwZibxB!SxHt$jMI0T4O# z3HM9^obAeToaCvdd!0xu8_Ft}d&X#hEqJ(UGJ5)~a&Nwssyb2xMiI|~6Sw&i#X4cs zOV_X5cTYDphJR`d!tmXGrw978QC=d^DthlbH|mnz8OE@X0y((-vJy(vK%yP<77h2P z|BZGS9Xu2B9&c=fym$OVbbo(s8f49GqX&DL&0(1E;I;3^ZO-TT)9`iLFFTe2QakT= z5s|y-pXF!a@dsIM_q>0`!COMzhjxn4caS=K&dK{724bowNZXLC)l;L)bO=$ya9Dl3 zmEvsrP!*FT7zpXR-0+tmNm-<~EYF=p+9OQ~5RPliP~gT3k`3ynf#&nCV zb7`xTL68qtR0#|nG`<8Yv$X`3-#+d7ttcby$g%ebIol}U@gaaNw*hk|?Xx0^oO?wv zMho6S`QvF6tME$~uxNYj?K-Ai#wou9eQ22D2}QA72$HegpSQmK#AM@5sLrRp3W2Zw zI^bnuGl}dPh%oz{S$zf#XSWy^gRk(bMcJ{27}9SI=MKdNhyII}fvzJepRVnaI;4JT zbxzH3pDpqSa1CfDxX(|&JKQY;H3sY~P8dRU?KSkG+fMj58#z>0A$bbH|1Tl2?Z!AJ zPsY^wWcQsr8>H&(aeBQSl?O_zx8qNuCD2F54X!f z2yg)|xYGJ&W7-a!Pe3q@+U1}H!4PvG4R0SqS}js;8sNq#tF|XgQz;=^MlZ@%z2!uD zE@U`{5fQlohT_P0^~r_a5@-uBk!{JLr+QHTNNk@I*?l>Gh~5IX8L^+#8<5 zInUhP6Fa6}Z~P8LqK!{v%pXO0i25F{i<)i1Xs03HzXap_O)_5X!T+(=LIxT@}Jx-Ebg0d;*x1 zT9=3t`n@^sAO?Df#McH-VqonZTIDF{_imej%@g}RfPaArf5uXMNF_^~*xHpF1i`o2 znF{+6WraHB=zXBooO|rtv|*!rV7;9EkmYs_?Mg%lDyPt&|6cGh{ZK>fH~UB&>86t* zj!U?xXvmk|#Ycw7QgWQvwQf^Cksqlv#Q;OEc+R!yUPM4jj8vk2T|Q{GZsCA%99WE> zyS1J8O{XK^k_zOK3!`UNQdv($sj66wjCYyH8#j0#ZOK6cPqw4*Z@j}> z-LBA7o1Zhod%k~+;&C3BUG2UH7X6VN!y5R#(Y|8dMfpV}8Q&8U>upzem%(gIicBv} zpbMreqa!PK+?;ZsWzCIlT}K|e_BgOZ!ELDEs_*?i=jC@^$v!p|W)sp0@fzF5GwgSv2GQoaSiBAUmWGFYVO_L)3Svuut&&^uI~ zxTl0O2Td}t;oRp(-D*p(H6JAju$rMJSKo6(gl(Re>F}I1wZIqUS_dMQ_s0vxJoE-n z6FL3Q_lhr}jD6gZu2tB?dt>HRl))MlyDt$AUqra{m*+a>Qht_nK@G`p7(z;aH}DA8 z4L7KO=uK9fCy0tvMVrJ;wPBd3Xny zI+XTLZbMMrRav`+MB7~C{mtbaNI}40bS!s)K!hhaZ;70H2pd%}Violx%gt~M-xU_5 zJT>z#5dEzp_?SK}(79_(&avg+z`R_C3&0~WUZT5n-8`>URr~znUG7nL%ls3BF#J6D z%{#R*3F6k+v3SQo4(Yb&4Ta9~%#x;uC{|v5Rdj`wGWh8QW;!^^DhP-?zANsymbyMj z<$Dk;0|C9Tarq83lS_IwnI+{w1nvSNF!0P#|BJxdkJ8!!dB#eI{ew$YyDJ8>Z~fOq zNW@snB+ES}-MtVdz)P_Y0*)UDG0?-(FVT{=YAob2*%3ddMj&xW^1cvGDCM}J7}1@g zsP*nUk-&f}=gBYqF81zvNIMt^qumllVx-+MRUqCpiL-dDLbIE_N;?QfhW_2~9$bB9 zxp{2zdm%2lsq<;$@uijQ_WCbU4EE5{(NkHbvtx%LgOkz5TjzmB&tAWT<_<#Fw;c)1 znk9NG0*lKOeiPy8bn0FTa~LbF7Ate~9^iDR49*ivAvi8Kj0&R*MY4xu!>VrjxWR^e zu+~a&$2VVd;H z2HTB;FRrdL(WkiS<0sqR@S^6&Oy`tl~tX1rEJx3^TJ zAjF6)SQFta&ncY*X}Vih!s4-y4Ypc9RVu)s5XX@eWh?)wth0iG*9_uCM;o}1YfmH# zr{$gux@mBj2DpwQjH1#`-RK&d!XdkRg~woZ^%+gsWnm%G46xt|R#9pVZ2y3pXlP+o zS%yonN5w@5k>>35lXQR`l5|QJ*I7lF9oy&o$({qZZZs?#sF~;4!=9=^t$snzu}?L| zbLGU^5EQ|VS#q;yp$H-T!>LWqK%zd#Z|#^kh45@Yd~ii096|jo5q&n(V!LlJg*fsT zTzz4S#!5&BP}xhoNLnO+q2IszAn#?sh8k1YkxO!H)K%vNKYqO!%cFaKat}J`Bvw{P!rJ`x2zt8ar`%68BI*H zKEzdf|3s(d>4}cQtjl|hw<6QwYx5(+Qk%3>dRX~+iZbt>)`j;DWiKt^i=yTA48O;f z!SQJ=dqXC^2?@Nb74A#Nx3d+4-WAs+-Tek=ZurOZ8$<_P?uA$X$1GR?n~ZQKK_J8$ zMZ=n_KU?PDW;>9Id_Q$OhO%gPzT5k_9$B?J-fwY33@jYYO4Mad=^Je5tWPU9bTCir zu#cnB=eQfqGt=h|3$lo~gXLNl8TadQ9<1>8I>O;6jmxs`v&JXu^Ye!on%CO=lTBW2XnhPJl4Vn#BMH~;VoU)jRDwF87!y3$rbrpQWg7Ya*!l~oD8IK26sClsyStGtX@^clLRuOr z0i{d2yE~)>=@t;_4(Sk4=>{p0L4LE&ZGQkoH(7Sl(g83R((LT!+(ee zLk*(zb(lf<%O^+c`1VT7w?_NlD#FQut68+m*$7;kUHR5EQzXdrURnXp|xy02V<=WSc|iwjZT& zRJsZwT>e9CLXgUw7}cWTlPB43>h;(SK5HLe6+3nzqT#u(g*P#7ad3^Vpwnx>%!;fx zVrMj0f*K2Yx;I2;A9dxv^&@y-UU8L%f`5A|%8a~Gco{RqGFmZdIl(}4lE5NaR<*je z^jyw;jW{$~TXh`;`+7zF_L`pg$AwAOkM7sl#?jwzV8zOkAz*iRE?=NVl;K?qRio24*wld6(3afGL@2xD*GLk)km|>f zpzDxtzJd;hq*jplwVBt^Z6rkp8Zf=iM%YK8J-c_UYf0zlL4x0cxn3M+6=Ox@J@9k# z9B2w(`H6st2mQ{vCm3&?>yT`GI|u>MRU=-`@`I8K8>ENDd;!&8G^&*eV-e-CF6TSsMH{Oj2D zp0TiPXD)@0zOd3i&!hP(W4uu5Bz}0wQqn&&9rN-<(WA3kTO(cF`z?T15)bW#5bWc? zTFs1RsURY!ho^ClW34TZdZav4f^ps(KEmx*UI*eZW1?(xpA9kP?ze=J-;&u{^b4== zF|lT^fBf%_`Z`Pm%^I3<+Y5|WD|Tr$Px+imdOfp6y5K&uLg3*oo%I9Jl5_Ltc8|c( zQ~a+lqxrk!bGKIQ-YKn@qkRR#ix91@;*h`yY`XvVJLDtCg{zSPFH30FPT|7boU{0y zWPO%Q!$*j9mTUvW&Kg_Vb#qiK%%gLg4Wlo$GS$0n)$T+TlAfRCe!zvMd2gOC`Q%&Tmxg=wrQb1##;9XAJGKDYL5S3EJ`_QOkPhlSuX<~nOP zm}g{9aDP+!=B%@DgrTqRl6d@lfPW_Z_>Tp z;(g&ix||KkpN?)%Tf6Sr%YWp28e@Q{l3s1kFxAE>-TQwEhH_HGF=>PGa){DrwtR2O z;55VkHVcFT{`PnQzItvbtyCm`f4|HfrIMKA!eY*nX6_5czYC`iF(taoILv9{`)_yU zREVHnW4ilfTw9dHz~?V(FNN22rMUl$7N|B~n#}7y%qZv6(AQ1m|9wTIn2^X~KMIgA zGNvS!<_4oYXu^}=Cm&vLcGqDw{2;;p;t!qw9Up>`dsVQxX<^CGvi4HQlFMaP&-nPR z@SpEv$q|R-_@>eKo>003HrfCAG)jsJX|ha4q({A!B#}e9pF)=n`v)Vhc^~8o&}2;0 ze;E4Ll7V4XcwIkF0989#tejkC(&^VYKw+nD(erpzH}jjU#k1hd^eU|9l?vKI9B7jB zMOdC35X`?E`kjK*5T&K->DLc>9*cbV|Kr+eaW0_gNoqWdUMO3S!>B!$6Ca7JqId(k z%ND3%d*q>>S5b+$dC;~FUM`d8--2;RHRnz0mhx+S=J0f0pnP1!xc_`v z5mus_{@Qeq+JkEK2aw@z=Cr5yY>gTApxBP`y6tIs|2%wKa^LM}Sv2_x)YB?LZn=0< zAV`aWhs)#$Ya|N*hC>vBVJ-+&S^zK1tiWG6rfPPe2Y^jt5LeG}^`$J?$0 zAo2Wg3jNl8#snQ{{!6j<%$#P*ORRNkcYsWSrF@!8Ozz|;#rCb~2Ry0Px?(7WP@axU z^X?*ess`9{s-Tl)f>NA+ek)+jC>!su#5A7+Nx{?pxSq2aHOYHGiI;2pvA(3(>!@{` z-*(zOmmaT8T3jyo{q4<90{%a2I=OKNag_dT9l^*Cu%Aq>=EWXP<93n92(xE@xO6QU zSl7D>f9Z@GE_y2N1)&JRYCk-)e#h>ccVy?7s)XM-ul&6M&yA`2j_o`MArELFtkR9# z`3PAaCde%N{`j12kVg)Y!e=*ko-3Ce%F+iic{=aE-EYHKGrV4T)`wZ75a1@!MKwCTx zB*`J(6*^UN`GwAK4*l_yCw5!o*`!0FSC(ynLB&EDPB-zh4ZxhPW1o5grOneP52Nwf zeXW+q?e%0ikT3*muRk3}KmVr9ZJ)(y;{Fdqudw{@X4GIjT-P=6Wv0cnc?s0tsTU~T z(xgW@39Kk26`&({Pa;W8~(=`GDq5r>+v8FDLV8wD|au`j-czBaP) z?xOZ(`{FfLL6qgEv2zCzx|1I~2F3#W#T_R8n$GJ@9{!#f47uJFSh2S>6fsic6CxUw zI#2BP<4x;zIisR!w8h+f0Y z=|lI~TaDhi>&wt0uBIz9oJqz=0D}a3k+vx{mFo7$_Rdt%_*a0BdrSK0U5=m`F9r7erhtg$I8YZA z`axtJ%UqkH?l`}qrXx#lGYdWb-A9MFpVtbXhW2`&0G@gHlw%&5<;x%D+7H-4=tSq zp@~jarSWPshbkRH)$iR8788$yquFV%^*2=|u1YAMw*=C_Vaa&SnCYo2v?m^i$fc^A+#!d(65=5fO^beKHST&6skb-@oXR_w$L=>3xdbEkwb#p=Qmsvaes090X z6fyNG;E3T$sn^}XXoM5*@cqrKLeN5b>n%rfz5@sS_a41amC6tJ{+!_}H7O5s9_5PR z?-vP7tY)`d_naKMXo+py@c<(L;Y9FKne*mUA*6rZAUHLh{oHaSoH80h*30md5XZ2eTiGu*ED&gUByTPmyCu2iovu0cY6EVr7CNVaVM9&$vnwIB z+pI>P%WJ1$g3xqXn5QczZI8rfDG<-JVEmE`|C=&Hsw~X#S9A^6ozb)hI>tjKf(20%4xq{DiEkeo9oSIGce@Och!s7Mrb16i^?}wGwhQiIWi5 zK43#(JISG`V;AdXeQr7(|I0%kTRED9E2#}lq4WAQ+NXf=Yb^&;o)c(>naI&si^8|F zLQIYc)49i7E=9|+Rz+-I^?Cw|u#G>+!i^u8z@m>eg5&QAK~-Yis7%1@Ay$yQA*x1h zWEMg^%idS=1AZa8Xe;zLEiz)~H)Oj8fn9PFIQDMW>>hOUZ)t{^ioO5ANQXSAA~@YG zL4_%o86A*n?b-7xw6t4-d259Xsh3gp2DQv(@_j>BU3?}7rc~Vxijf|WcEr0g<#bMB z`=^c?5^$PG2Zugosp9E;SR6sAD@KNJGD;6~8nnKApo!(q`xU~7C2}dPh=Zv+_Nm(p z#~H5pb7c$99Zl|%ya{~aS5WLTPmmz4$Hx@Nhvz6u9!$15V$IuG_EHySzYJtlnwP!p zW|Oe#ZbxL2`1ykC=9`sm_TboWZ3E+G@~h}jQ)O%#)8i1B#s0Lp!%TQhMrkNLVa(JD zuP|D0uH-FjVzn%BV$&EpDp-MiXM&@;rN^7OO-Bai1AiLy5u6=@mA3cLxW;8nrt);6 zf`6gLxI(XwWgC!Cn6}DBjK)WDRp*sRO}5n|-Pd8cGNMB635m1MDym473CcOgn9V}M zc`nSw$Cv|HV^Wf5ai9DgW^3{I_N87`lbfALh$S%*hw|NqVWlCgkvv5#cl<4pZp?Lo zW`DK#b$4Q_B~;HE|5;bKX8H?2`Yq@>& zpj2x&pG!{s3F5q%{T=;spU2yeZ4pYjZD`P|0+s<7c9vhLOdNPB6R;pk_!`Gl%Na~s zDWonVsthRXRkvXQeNsx5dR{yG_Z*c%0u-J(qL_9=DvaHtq%33*46t>o2x?#s5BsO< zQ|=-qgwMN|=!9Bi&TC>co06A5!nd)994~zt&|%_IBWDbls-`}fm(eUwuy0xFsmBni zq%-Es5hm0dg(P2^R|k(~E3~)W|-4c3@zIpP%4^UdTvn}teJwYXe7;Df2gQ> z_jE>r3UYi??t0j?FpsI~!j6!pu+kSN$gS#Udn!#qW}r1a%&@7cXnXSfV7Kv5=z@aV z7iPM`v@H#Y-Cg}jsz8Kqlq&712KRYYyx0-=c`W^4IWp=hP=}I~2h{q0=UK5*cR$IM zG<~)&KEDf23bZqe^BnuPs*C0)DwSMYwl&>1;#{$sCB0%woc>R_(!0Nem5d12 z_yi%mdn8v&Zi>$-bc~(180ZM+PNAjfmyZ^@)>hP@u)dXz#9u$Yeyyi@c@<)}?T;4_ zu;Etl{ZZo(UVKY;k25EKycpu09x|ljx>uY?BJ2fmU8NPi3|JrLs(t?*OO71l9qj9h z-v@(STiOOHiZ_rH5e)^YH8y&sF=r360AE&y{DugzI%Lapa5-MzS4GHuvAjzml69Aj z&H;cOd5(wI@ve9Y9fVw*hh=tJejS8@ldIZS!wg*oNqa+cPz@ZDcNg$KbvRpLj$U{cX~=F6pZ7a8#PC*E7WgwN9YuWO;{M$ISodo$?{ZG;53=vtdM>f&SJ=34et}k5sjH z>AWc%hRw$faxs^rskDy$1^psom39l&Nni05spu7h?(8o49L^PzU3Vis%XFH$_Y>`99rZ=;^{#X(3kC4qp@nGCCbtFP?e1%>`q77`ZqQ zhOU$pe0nZxc32)fuz~Akqh0Bog(kLaT6A}?C#W-@4!}eZXqN3G!rJWcQc)wuY8*rH z+rg3tl&|)ODPbv}0mOcto-`q1jA5h*TUlG1Qxs6mR)j*cxS^-EJlt9Hohc3ssvl=g zBVBDzIaubKIalpkZgIlXKMBx!Xus7LolV{3rYh>{?QRQo=gztiMD)=p6@51N3d>l@ z4~8Yx6Ifp2Z2Pw6!DDxTBj2^V3yWDVopejV<>odv5kCE} zsHIx3H55jSyw7&cF@+nH3s?Qv5#%1DIs!M97knlj)hvnjQ~x>y@c+ho4se zwxw9e<|kcQ56Or-5+UlN_h=|a#vZ0lo&JW4)L%iQSY)d|q7wC_a^|5)V(5s=8_W!@PC7Zg)J5<;NOD*0=r zP{PkmyeX@wZZ!>;xVT^Ydb5t&>#cM5+)dq-q@<9nchpGCY zfu?}{RDGFNR20r}Iea#HBr^M9<4SPP zd)n_+5YRaSSHTp}xTt{4h0647o=W455Ssq{Oy2z<1xn%PRKS4o@=nPv!@M4^ORCy0 z;y@L71ZTbmQjV~s)IEh*3VG1(&{s81tGEKcz#PW_@UqIorB$}TWKu-JWiSa~BW|Y; zlD9s<@7x3gJI~us2F^hE^OHeZYhYlko=T3TlAj5KRg)=GISpq(ui|JE*01zIUVt1&Wkwd}n3^cLQj+WcxGi`aWRdAHZr zhOX%01|;8~Qu8+JnKyQV6Npx62ZNp~0N$5u>U4EKU)h+etOCIoBNb6x+gI~wE*oIJ zhodc%sFe0n0P+!j4_-y*_-)&n*XXp+%Bg1V)(wI;*>3at;c#&~);BicoqXR{epkDV zyRWmS-+uMWM)&x9IkKWsbOYX&1W6?K5&R`>eKh@H0JXb%UmPgQhU1g~z^9N#3<&(0 zbAio-!O+>Wk2B+JvC#+cnlA!%J!t%K3iTVTG#aeNcYrD7Lm@ITv)B~Peeb8R zaN0tf8{ptxwfX*P%Ip?+LWx$V1snu3K(;P$0xX}8ufRV0G_e-fZ-B=k zA0TXMAw$5P&F|zZtl@@t6SDE_7-YrjezwaF^9%;B``z;pnD|(A4Fu=3>~}gFhopxdF)Qh zE5w`l|GMV@@E3lWY~XHk`}QUGi|-F3ucOcJ-o{8V3S9Qi$j_vsn&B1hsAmf~urp$n zeW~o-X#v>P>}yrZR++A%Wk=hyhQ=8~(8<{>0TYqUPy#(adr*P0L3rX7FcPo@-GZNZ zf$?ntwaR-yFt13+*mwWOaxynS@W?;rI*;5votg!%4%lQ5gr*0N*64C>ejbCvNl$k2 z2(XdoZ##dfLfwz+!n{MJ+5tjk115gw<_Smr^%1mU` zXJ{p#J=Ph#MNjU3lMY6m0>&x%PxcM5F$7X*CKu}IMnDl==-j(=2yO*Kj18U0dJYig ziMh_>E#nQTPZ@z|5ZB{wveRpr~@P!=@_us`9rDzhSe%?Jm1Jbs z!T2ZTjUxAce2m>rdWMRJMOrAEFiWZ{MF}iytJ?K(6@-;lg#_q#qA`!T>& z%xa^v`fL)WTOO=|reFx%Je1=(q5^e+Xb1tO{ZzEmaMuVq#54fu-dAK?2`SLQ*1I0y zJ^I|DYF54f1ZsR3y*m|B`9dj0#w}8!@oF>a?RFRDE6fLrC?%G#t5m29|{I} ztiR1d~?LY`dQv zrwdAsMM`U9`Sj>?bkwr>B}yuYU$OtQ@gGJMDwBGYxmD?x_kung6dz({2_OJK`e*IBYDWM>Q@XldgmT;KloX&6 zGiddb1#YgH>Z7|+h#kqaHVSr2&L-@{xH#FKjWWkO8djuD+<9B_Abljlw`ooXGdbBB z;?yTiUFby81GABF32L>BG3`YfP4$5473Kc=(RoY!UGz0dl9&m3()6S!eCVe{0=;?8 zId;>fbIsG$2y=@#4&BuVSBFo{{U!O_T&j9%Yv~mavQ4UCDC?!GgpB6tjwpx6N`e_C zOD}0v?ehbg5?WgX^(=NVv_>y8JTF(ncWZlbMwv$oSCR;kDfIEnWKejc`amNTYC$}o zOVS#I7jW+sAnj~f7-PP#?=F+REXllSV5h<70wW9xN^KpoAKWpV z&;Oec+vs}wGhg>FNtU054|%5Tg`l6zXI*2Z-gxk@>{Dln3J3`o`}>Ph_$$~*dMqQ( z@%bIvff|1a%W`r=dpx97h%7a^*b=pDIXMy6yT3J<>Ai9?iKu`^8jRS#AE}Q+P!toI zQjz2)>&rAfb)X<&DgP3Z|3aNh@5HG(jcW4Maq@a~zMTVBbzMpk-)v}_G(H`75_oFD<{^ezPkjNbM^%EOuN(XSAAS@4|&|#_CzUwi-jJ~fNE`ssyxOb*3mf6t%H}6^(cxb zPLb9(1r>)%Nu-UviUWnm_UutI4(lUR##6&j>PxP+o^lj9w~@$cm?cgiLkfq>xLq%f zU^KNkw%-#HBf4%67!evL{IceRXT?dp-iVLAr62_wn zGBH;hhCOu6bXd}xM=CCQ{)fq_y3UCqbar%U*k1GK$( z;-0=rBRN!V$`YMc550rA7eUx4`ZuA5)MK?6=XMqwMExZ{Vm=j*^0J5Gy;DOvc>n={om6o?P-aKsly; z1i3_56q@EEH(7GcN4sZR{h|DwhT_|0=jbx|0)pn7*6HY| zTkv8KYP|)RwXv4tz{FN250CO$13AzL)Xf5?^xo%p!ob3~|YxNyV*1f=hO{XQE_U{KvA(I0%HwOC5lQC|bdhrp3iN3+B90?ssFg zc!{)_W}tXjASPhe>2lkos&Erz`eEHwF*bIX0ybXYT_;KM8-E>h@C= zWwd)tBc`KFuj2gGy=3Mhr^Nl`l*CpDwt@1-)rDLd)oEw4Ab2&NtYI~bG7AJbEhj~{ z*VFOAtw;O6E`ymkpi5|&w7moR`ZpT5wqEGdBg~S;??6NZpF~_TA*Qqn#Y`N2Lus*OOQ8P}wX_kuvnMMQ*P~Y+F4oj!9(2G!NS3sI2DX zsk|Uwx*ROO-}+;7@R@C7a3Y>(sFPeyuM#z**9{*2s8P%parXnV^oN&^lDX3y1xPY!P=V!w+S+N+JRbFqD zZxU$i1`$j}Cz_kOSd}G{S8Di5fe0J)g5i!$b8J)v&x7{(MnZc{OCW;^Y`@K(%$cD6 zK|tSEfwTaNE;k1iuC%19h=e!38&!{|pSl>AUgyo_dOW#*NH@5Pw6kyUL)MWH=vnsj+84Sx5ouR_jK@;^=#LgjLVPrf0D#=uO4HfBTx}IeQS5wwaekil>}xqO*0~ zHK4o}dO^WT_aM`RuNEiWD33U>7?RJ^hg)BVnnWNxw^1vxQ8!4F{K$H$P+ngiH@vO@ zyTC%06+(|nFX(gWsLwJDA|hgHdm`du9qVmYSHUos;Fbkaf9UJMOd5@6)=Ql!nRCxB zZ7dcb2@gAtf>C8On@25D`kZZBbbPD>p~*1b;_myE%E58kMPZ@weRU-HLK5s)Y3a47eG>Fr z*`9J%3UO3-l|A2=0Ljdov0EoaPQhT81POyA*K2w64-#h&vtzq`m@Af%)f){OWQ-G$@$9~4%;Aw78>e3uo7}=CJ19CE2~#A`F&n0| z?zcrRQ5AkVlon1s;47#^-qU>xvXOg=vWvT`2=9=vf3-qAq`l~!@_4F@GCUpm^TMi~L$ zS8Hko95VDC$sOJWNVMkI?Migt2kDO@WU(@;qxZ z^Y$0d2?1e{*mxVzfu3vV>RAcdPRo&uDTclS$|IMl=(Fu~#o8_<%K2XGU6tX{B<2TC zpHqIr6{PQWe}aXjl1n?Hj^iuKSF4qU9gZ+6|IxN;zFco=XcmSaU?4amJx9V^W^X8t zW|MbFER(!Iy)-Dd07MH-i(yMv~ZCw1Nz0I;+0`3I;(m)BisEy z_<3}d_VD~NtT#$lr0kdKDnBS_N~zkaROI7-ob|7OXQmI(D2`#`h_v0* z{txGr!e3i z=ml#bU5;}ja`*|y|9isiH;I;oWV zFLC};L5cxnrAa0UEn$>Yo?YtiX@Q35Es188UK8^_C>IelRw3?9sIto9Iane4RsT+) z2_p5*z(Uoag5(ZY%im9r(U9D`BJ8-XpR(z1{j8HosCWzy7Oe=o%layX6f{dixPkeV zZ>msMGm2Yu_E;k;fLud{4$mhMLt4!ij-SBj0)9NH)Z;K}u~F29#;S<^z6SY8_yH1) zqqKG>>UWV|gJ3jfVTw&7_-zY(CiPqSNvTn%lavrskq>0KlK`z`ow``Gz%>8`#(EOb z{c8Y2l)%omXPQ4f&-O3|(iI}m*tj=>nqpg(13fUT3mBv`>v7ir)14O5-{%Ck)<65& z;roF$#CC?+tdjoN?L>R8*%DT^@uN3Qx+WGA(Ov+pm5qIVK&vs5kaZd~Lvp3ByxC)E zC84E-pZ#xtxdI4sJB3Ag1C7Qrpc)jP-WoF-9-shLhV9{VBq>5YUz@?j7lk0=Bvs69 zPwt6*-5u~cxkL^DK^HDOHBB&Sl$kXaHZ?V=s6r#$_FQL;zuHFK$i8!ax_hp)ONYW z=^O~`HgmYSyFuc|18^~(ytnBesWDdY^4tiv&a&6=0AOq3#|G;exab6gzPyfMS+@Zb zsR=X!9)n}h=4z{R4p6wrfE+#x)I*Tw;@XF=I2m*Y^LMg@DyjVFW;$+%?I$%5x5vM+ zZ!-K%vBPrVd@~YZgCT?o-s6R_GI|{Py-F*=N|}2gO3s>P>`NuU z(6_*uH^)0$YR8#y`CYDV z!DUo^iqt^^AVk7S&r!u_1^ydAaN4Gv#J$K;WTPi(LRshJ+$~)FOD}8H&QQ$c(;9vo zxrk%F?Wg7{pc9O4U5^v**w0r6I^-$wr#D;Z({bd0b_%sfRD~{c%NVom@aVgK^^tatENw`#` zsdp&yRYs-a&ZCH)duAu`atuCJHudD9@@Mxh*Y(5Yj zt9-t?#_>}0J*}>hTWU8NO2r)Z630~v=%Fp?&YLWOynyA3-6!Hxd?WLNG%}srY`F9= zIq!=gClWbgWSo#P+NausQ+r!el*sg>qzByiXJ%K%<-ytd1{UbR_`UzOj-+tPU;&yw@Hb3VNi8Mh8XxgyL5_t6YJKd38A;6g9+g`bP?a?*u^P$V+5#-K+KS}17M z3t9o)(yQF?D!CZ5dAPE#Ae_m83A>~Ef^ekcOA$wIg+na0xDIdoLH#J!9jq->w&NsA6t99Pr5k1sJ&rdY0b8EPM0`vGuU*WP_ePKrXNP}_ z6VkYz3^){={_aH{%Ic2osZ-qdZhVU;p_y|0JBEgm=|m~!^~20H)pRCaUE?*IMf&%eX5iTq^x$svky{`J6diOIB?3g;q6^rnt&ck!ijXaNsjQkFunYw6;IOQ{}JqDTp3_89be;l{6_|L3723szHEv z#0t&!kvQg-!A3zi4S~R|sgKDMobdjs zK20vNly1-XCeJ>Xjqb|x4n+JFzDm8?pwK9zEs*-9Hk7^rlI2u@ZKxEao{3^=zOpL@ z?{|!8YYPZ?hl%wqNxzyP+Pv->8RD|=?^=3GA6k1|$jtAA~l($H9 zYA!E9izrIdIygj;d$-c;U0pMR+sIjd-`P8q3f;U1*&pNus$+}07v}s7CG>6$XHKpe zSAzq!%TG1X_d8a5!&!|Lh;`jZbuahUX6Dj*caxz-vT~oK-t|V{Y>q837Ysksp^)&b z^|>yHE$6^RIS%YU>v0>?DkSFEy4MV1R5N8adLp!~^<1zSG08R@?+VPD)zYl<+z%Ga z2*I5waAdW^5!<25oRMoAPG$`so_~39f@G&+{D4s+fab{Tz%-Xbl8lE6s4O+1dj95q zNSlGZ5)>n5)FY=rfV`-<4a68YqRvc|OTvS``IdrD@UIZsJ-VCs?MAC>MY1Xt(uKT0cBEd*xdAGq ztNM;}Vv{FG<=@xSCh0u3+;4FiEt6P8it!{!Z9z^gaMXLh%7N11S8xMT3-3jkAeqd{ znZb?;(h)K5X`rp`Q?s|oh``_5V%2SS%#IDd+psGIYT}WTmx>vqeIHb=ol-I?d5mgR zuOM493K+39@e@pDWt5cy{b4v6rI9YMl>2eb6b9l=PIu5H=Lwj>co+1Xvdh93tMbGBN=1Haq^M4ioxp@ z{QzDw6wGi9Tm;yx16{V8<^H)^Hg}Y1mXM~6PtoN_KhGgaxa|ndVETXiJ)=<5Re$DB zIu5#{?0j!4)kGir;tx`UBzF*f$kx-ZAGfjD7c-97Z9EMUH`?oY&CY6!@r1ubhYh8? zHCD^zqwgVFkrogI@;o?|pQ%L!k*cpRMM#J_z9mda*)vU$jL8(jYuP)94#}IEgd^b$ z>LMt-Ro(AuBUvg?U7-JyIU4YE!^WwsKLvUMxgELMjl1=h& zw!w+s)RIAk8L56bl#y&Mkz4(5$DnQx@+|pEbdh~4{)b&Cql}RTei=m){@tC2{}(t) z_h}Rz3(g``q7YZ;URk7Vc znin(rtxCZdx`+EmTB9NbdIr9rl=pfZfwmlT9D%x zF&y=gjjp<^S<2}|u>Bf;GQQxnhH+CJ-{t^x2TN>~dQGwp2ddhmzdIDEUA$U@N`sj8 z;|dh|qN2X(dkF(cGZFZVJD`e4UIT<6jl8G|$6XyCbpd#Fo^ml%Rt&R|fVT~_h~&~T zygEUS4-E`mBRoF4rC$S~L22Gz5;3MQmIBpBUyKtl z{`^0y^Ymg@0D{i|f`mcOn|Ip{ z$vRHvOEb_}k7Y=|JE+H`25exXX*ZHuR2v;65@;c&;M#34=adReNF*m6^nU8}_b2zN z0-l~m5R6&rGkuyQWTdkdhz7X^5PBxaE5#Pg{RJ!x9(1$5KjCmI38)YYv4s``Uisg6 zMP36Ka_H={$5*cH9(t@!P(QUsIw>W&_J-r8Um?E&N%baSUqE`hEkN7Ta1*PI-c7^v zG||sK!$aOQw}9DX25jQt1oUU6oIhaM;fa{1^mpdqBPJ&-j$A;YXU2SMWa6|1BwXSj zhqJfJN0aEIA-w~2i4)7$v?tG%AEa^CZR~;~tN@+|1S;DosX9D7>EYZUvt(}?)wH)3 zc>Gw;;hCOu+Q7Ox1{PYeZ4np_`Iw!mV=#P-X+^sU9*R5)KPT*XmWN>R4ea>BzP!2m z)8)TLDaA{0&l;u`@8^IPqem9BIAedxZ1TtpkhYou9=!SE;Z-YezQXWA6XfsnN-!iI zGg(5m(fk5>e;4_BnQ-^Qt32=sI%<78gA8T9MG?QBzCgMjeMP8s=9EaoCdP7RN6M2$f;q<`PqDB0@ z>p;36o~T<;(sUe$0uWn?dYK1=GSfm`X#QnnjcARDiHwR_pxPQ2w4Lr_dXraC-8Pc{ z>$Ggy&~-{))171kUUds`+Q64&DX!*ucfcPkwh>QwSB7A$aAa>}V!#1TH_fkX0>u*n zbPe1Mjc`v|ho4r`wt6n+m%TknvlR^Ljwr{E3Te0BkU#F7<#>)mz}^O$s89eWGVMN+IFVZd_jKol|Ih5P?)sGyK)`3f74f!=>b8t( zB$w0GJ}~+iNr(+l6BU4^3Jj+?!3sif9ACK^&;yNZ3G#UWZrfE}B4IXx^_{(rRdO zWbPW#HTK<^v2v1{Xtu}^uj6`7^%mGZ$^cPbD3ltI;g3fF>=h`gnf&r%yBRxQRvO#E zjBOc)Twoj`yB@|%32JtUcQ>o+cdCJk%sCWqbt>1Ckw*S%u*k0faP<=JmgH{lc1;`{O2rLCF0`VNW$Lg|3ShVMXSdu0NK^WRy*OsK-*2erX5V)mZg zy4lv%;N(aLvyDaqJ$Yw)29+nJr53#dJLhm#df$Ljok7G8#IeRmu1PJL%B5ADmB{KX zb~|F=xHyqvv$!R*s1|}jR=1IqjYo}M>GKlqm$LSt#&urIfqq{@KcS8)i=R~OVZCcM zGBd$2108X~ir0~)q(K|!#`tU)NVO9Q@AXay`rj+buhOX%I`O=%k(HajO#1Lvwvp!t zAaS|aOfv;0vJsU9Ga9Nh1$B`lVi4=8uG$pTTz^v%yqy66lF;yNJc@b!6 z&owj{d)SzF^4H)IwvYi;xF<$~be{1GAOp>w&a5vdJWyX-MdKYm3NOPvhx0&qLe^Wt-D$UThi(J?NIH z>FY;uJToEE6PH7$pW=sedZFyYQ|F)T{MA^ijbyg@!8-%xQm!%f5%g(68P=zwV;>AoUlB!lq!sICRGN4k_mUy+5oj2{i{O`4S0 zD=P}2daXTs7pY$X;g{Ibo5~~821h?`|H1sH85=l#_8^Zp4AZoQE-an%Y0m+6c0+V1 z!}JLO!pT-EbuT-Oa&K<%D$jFDqiRkpEXt2$LP>a|l0t0581dew!K8J5A#?Q8Jp@Ue zH`wt?Sd@oK1UlQ9V9gr}A$I;{uPBowe!0!TB8*-;iW02+?!C`tHu`=*b=9Hw5DD|z z`^OPiT9SSu6)pfs5(S00s_h|+bu-67A)w$_`ZdZQ|%cnUdW(ujjh^A$oy%lEK(@^>GQR_?c4<3F#1J8Y8W z7DR|cK7v|-E6kFN8NNRQk0>c+ye@BZ`)bYX0Z0K870XZ`g#lAURwR-(xt3F?Yb}%N z{&Wf=5=wcCA=T_1ys}VtTTet>+Zp*2e=wy*(<^FaT*))4-_2MpB7C6WiEZsFJ*$h) zhJ>`kb5bF%7;3`Ys^Zn^n;{g&e>tK%!b_(3W)wS6r5kHs3oLg~B8RZVg;l)5?wqMu z(!SiG;(%p&oT}FQ8`&qtJ|K$LvA3~&PtiWu{}6Q|O2iljOD6q;n3Rrx)wMFDO9>5G zalTe3EUGD~OWXL*LTK!Sh>M$gtWU;2qP_n|K+MHRIgV&3B#3qDj*mU+o(xZQNlORneVoF3@@j=?E zc8c;(E5feW^-QNfY7Xaa1r;IJpPL|+%81|AQ~=nsB57{Z3S{j36I{`K8ne7G*Cwv`zts%#aS*Yn3XG~Wi2rA?2Jm5- zPQO%m=%3{mu>U(aP`Dqpa74?hg4xEkLNq$;?~_nYgJ`28-`{5cvA!Hl7V+QJe9ARGmWAcZ6L+YV?L@b(Pu1G&l=Z=Nt*SUM^?Q6B9 zAGU6T#KJT%NRt zEQh~-eYR@ItkU85fpy_Ayz;T~))`k&{!#VRTK}d`hrrrLeCnDh^qWrkp93RiL$_!{ zHJh>$wHw>R+nCmSr10-9F)s<-wJ?PjY)-n8c(%_%1-?heE$pCN|GIx&x7}h~^ZENX zALzS%`X}*6ghS(2XSuott#%T*kHQd0AKA~upuAsV0dB{}oB|H@H34og0WMTttkBX#sFv$?sKUhC>DG^P=ypWXm*^w< zjpUXr3>$Xa<J zqN>h`wNA}9dZjaw*MyjSywF&U^QP~mo^SGAy|NdfQrOp8EO>2Vr1|0a{g!EP&{g12b<8?*MU8Bq1kHW;E8Iq|M-*t Y1N$bYeQDC74gdfE07*qoM6N<$g1tA+?*IS* literal 21898 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 diff --git a/doc/1.manual/img/2.10.3.png b/doc/1.manual/img/2.10.3.png index e682544505a3aab4a7f676f3edd7f89918e81464..cd22f40ab2c8da87ef264d5e74fe5ec59ee41044 100644 GIT binary patch literal 21001 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 literal 0 HcmV?d00001 diff --git a/doc/1.manual/img/2.10.5.png b/doc/1.manual/img/2.10.5.png new file mode 100644 index 0000000000000000000000000000000000000000..eda38e414e39109255a371a665a424f008039afd GIT binary patch literal 32523 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%0APxl|R=n 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 D(y{_@ literal 0 HcmV?d00001 diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 8b361c484..a6f46e002 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -36,9 +36,12 @@

    2.1. Overview

    Pd is a real-time graphical programming environment designed for audio processing, but it can be expanded to multimedia processing and more. Pd resembles the MAX system but is much simpler and more portable. For example, with Peter Brinkmann's libpd you -can have Pure Data as an embeddable audio synthesis library. Additionally, Pd offers -a unique experimental feature not found in MAX, allowing users to define and access -data structures in innovative ways. +can have Pure Data as an embeddable audio synthesis library. Additionally, in its origin, +Pd was designed to offer a unique experimental feature not found in MAX, allowing users +to define and access data structures in innovative ways, with the ability to attach shapes +and colors to the data in order to visualize it and/or edit it graphically (see section +2.10 Data Structures for details.) +

    Despite its lightweight and portable nature, Pd offers a wide range of external packages that enhance its capabilities, primarily focusing on audio and control @@ -1497,7 +1500,8 @@

    2.9. Numeric arrays

    2.10. Data structures

    -

    (Note: this section is adapted from an article submitted to ICMC 2002.) +

    (Note: this section is an adapted and updated version of an article +submitted to ICMC 2002.)

    The original idea in developing Pd was to make a real-time computer music performance environment like Max, but somehow to include also a facility for @@ -1513,160 +1517,162 @@

    2.10. Data structures

    Pd is designed to to offer an extremely unstructured environment for describing data structures and their graphical appearance. The underlying -idea is to allow the user to display any kind of data he or she wants to, -associating it in any way with the display. To accomplish this Pd introduces -a graphical data structure, somewhat like a data structure out of the C -programming language, but with a facility for attaching shapes and colors to -the data, so that the user can visualize and/or edit it. The data itself can -be edited from scratch or can be imported from files, generated -algorithmically, or derived from analyses of incoming sounds or other data -streams. Here is one simple example of a very short musical sketch realized using Pd: +idea is to allow the user to display any kind of data, associating it in +any way with the display. To accomplish this Pd introduces a graphical +data structure, somewhat like a data structure out of the C programming +language, but with a facility for attaching shapes and colors to the data, +so that the user can visualize and/or edit it. The data itself can be edited +from scratch or can be imported from files, generated algorithmically, or +derived from analyses of incoming sounds or other data streams. + +

    There's a tutorial section dedicated to Data Structures (4.data.structures) +with many examples. Here is one simple example from this series (09.sequencer.pd) +with a very short musical sketch realized using Pd:

    graphical score

    The example, which only lasts a few seconds, is a polyphonic collection of time-varying noise bands. The graphical "score" consists of six objects, each -having a small grab point at left, a black shape to show dynamic, and a colored -shape to show changing frequency and bandwidth. The horizontal axis represents -time and the vertical axis, frequency (although, as explained later, this -behavior isn't built into pd). The dynamic and frequency shapes aren't -constrained to be connected or even to be proximate, but since they pertain to -the same sound their horizontal positions line up. In this example the last -(furthest-right) object is percussive (as seen by the black shape) and has a -fixed frequency and bandwidth, whereas the large, articulated shape in the -center has a complicated trajectory in both frequency and dynamic. The color -of the frequency trace determines the voice number used to realize it. +marked with a small blue rectangle at left and with data shapes: a black shape +to show dynamic and a colored shape to show changing frequency and bandwidth. +The horizontal axis represents time and the vertical axis, frequency (although, +as explained later, this behavior isn't built into Pd). The dynamic and frequency +shapes aren't constrained to be connected or even to be proximate, but since they +pertain to the same sound their horizontal positions line up. In this example the +last (furthest-right) object is percussive (as seen by the black shape) and has a +fixed frequency and bandwidth, whereas the large, articulated shape in the center +has a complicated trajectory in both frequency and dynamic. The color of the +frequency has no purpose, but could be used to determine a voice number to route it.

    Each object is thus composed of a combination of scalar values (color; -aggregate position in X and Y coordinates) and array values (time/value +aggregate position in X and Y coordinates) and array values (time/envelope pairs for the black traces and time/frequency/bandwidth triples for the colored ones). This is all specified by the user using Pd's "template" -mechanism. - -

    Here is the template associated with the graphical objects -shown above: +mechanism. Here is the template associated with the graphical objects shown +above.

    template for graphical score

    Templates consist of a data structure definition (the [struct] object) and -zero or more drawing instructions (such as [filledpolygon] and [plot]). The [struct] -object gives the template the name "template-toplevel". The data structure -is defined to contain three floating point numbers named "x", "y", and -"voiceno", and two arrays, one named "pitch" whose elements belong to another -template named "template-pitch", and similarly for the array "amp". +zero or more drawing instructions (such as [filledpolygon] and [plot]). The +[struct] object gives the template the name "template-event". The data structure +is defined to contain three floating point numbers named "x", "y", and "color", +and two arrays, one named "pitch" whose elements belong to another template +named "template-pitch", and similarly for the array "amp" (both data structures +contain three floating point numbers named "x", "y", and "w", for x/y position +and width.)

    In general, data structures are built from four data types: scalar floats -and symbols, arrays (whose elements share another, specified template) and -lists (whose elements may have a variety of templates). The contents of a Pd -window themselves form a list. Pd's correlate of Max's [table] object is -implemented as a top-level array whose elements are scalars containing a single -floating-point number. +and symbols, text and arrays (whose elements share another, specified template). +The contents of a Pd window themselves form a list. An array (Pd's correlate of +Max's [table] object) is implemented as a top-level data structure array whose +elements are scalars containing a single floating-point number. -

    Data structures in Pd may nest arbitrarily deeply using the array and list +

    Data structures in Pd may nest arbitrarily deeply using the array and text types. For example, a collection of sinusoidal tracks from an analysis engine -could be implemented as an array of arrays of (pitch, amplitude) -pairs; this appears as example 12 in Pd's FFT object online tutorial. - -

    After the [struct] object in the template shown above, the remaining -three objects are drawing instructions , first for a rectangle -([filledpolygon]), and then for two arrays. The various graphical -attributes that are specified for drawing instructions may be numerical -constants or data structure field names; in the latter case the value varies -depending on the data. For instance, the second creation argument to -[plot] is the color. The first [plot] plots the "amp" field and the -color is given as 0, or black. The second one plots "pitch" using the color -"voiceno". In this way the color of the second trace is attached to the -"voiceno" slot in the data structure, so that color will vary according to its -"voiceno" slot. +could be implemented as an array of arrays of (pitch, amplitude) pairs. + +

    After the [struct] object in the template shown above, the remaining three +objects are drawing instructions, first for a rectangle (with the +[filledpolygon] object), and then for two arrays (with the [plot] objects). +The various graphical attributes that are specified for drawing instructions +may be numerical constants or data structure field names; in the latter case +the value varies depending on the data. For instance, the second creation +argument to [plot] is the color. The first one plots "pitch" using the color +"color". In this way the color is attached to the "color" slot in the data +structure, so that color will vary according to its "color" slot. The second +[plot] plots the "amp" field and the color is given as 0, which is black.

    2.10.1. Traversal

    -

    Pd objects are provided to traverse lists and arrays, and to address -elements of data structures for getting and setting. Here is a patch showing -how these facilities could be used, for example, to sequence the graphical -score shown above: +

    Pd objects are provided to traverse lists and arrays, and to address elements +of data structures for getting and setting. Pd has no built-in sequencer, nor +even any notion that "x" values should be used as a time axis. (However, a +"sort" function is provided, which reorders a list from left to right, on the +assumption that users might often want to use Pd data collections as x-ordered +sequences.) Recording sequences of events into lists, and/or playing the lists +back as sequences, are functionalities that the user is expected to supply on +top of Pd's offerings, which, it is hoped, would allow those functionalities +within a much larger range of possibilities, to include random re-orderings of +events, score following, self-modifying scores, reactive improvisation, and +perhaps much more. + +

    Here is a patch showing how to implement the graphical sequence score shown +above. It uses the [clone] object to instantiate different copies of the [voice] +abstraction, which is resonsible for playing back each voice from the score.

    traversal example patch

    -

    Pd has no built-in sequencer, nor even any notion that "x" values should be -used as a time axis. (However, a "sort" function is provided, which reorders -a list from left to right, on the assumption that users might often want to use Pd -data collections as x-ordered sequences.) Recording sequences of events into -lists, and/or playing the lists back as sequences, are functionalities that the -user is expected to supply on top of Pd's offerings, which, it is hoped, would -allow those functionalities within a much larger range of possibilities, to -include random re-orderings of events, score following, self-modifying scores, -reactive improvisation, and perhaps much more. -

    Traversal of data is made possible by adding a new type of atom, "pointer", to the two previously defined types that make up messages (numbers and symbols). Unlike numbers and symbols, pointers have no printed form and thus can't be -uttered in message boxes. Traversal objects such as [pointer] and [get] -(among several others) can generate or use pointers. The pointer data -type is also integrated into pipe-fitting objects such as [pack], -[unpack], and [route]. - -

    In the patch shown above, the topmost [pointer] object holds a pointer to -the next object to "play" (by sending it to one of the [voice] -abstractions at bottom). The pointer object takes a "traverse" message to -set it to the head of the list (named "pd-data"), and "next" messages to -move to (and output) the next datum in the list (i.e., the next in the list of -six objects in the score). Another [pointer] object is also used, further -down, as a storage cell for pointers just as "float" is for numbers. - -

    The center of any sequencer is always the [delay] object, which must be -fed the time difference between each event (including the non-event of hitting -"start") and the next. As we extract each of the six objects in the score, we -must wait the delay for playing that object, and then send its pointer to one -of the [voice] abstractions to play it. However, we have to inspect the -object itself to know the delay before playing it. So, in the loop, we peel off -the first remaining object to play and inspect the time difference between it -and the previous one, using this value to set the delay, but also storing the -pointer in the lower [pointer] and [pack] objects. +uttered in message boxes. Traversal objects such as [pointer] and [get](among +several others) can generate or use pointers. The pointer data type is also +integrated into pipe-fitting objects such as [pack], [unpack], and [route]. +The [trigger] object also deals with pointers. + +

    In the patch shown above, the [pointer] object holds a pointer to the next +object to "play" (by sending it to a copy of the [voice] abstractions). The +pointer object takes a "traverse" message to set it to the head of the list +(named "pd-data"), and "next" messages to move to (and output) the next datum +in the list (i.e., the next in the list of six objects in the score). Let's +check the [voice] abstrction below. + +

    [voice] abstraction

    + +

    The [pd sequence] subpatch takes care of sequencing the data structure +events. + +

    [pd seqquence] subpatch

    + +

    A second [pointer] object is used here as a storage cell for pointers just +as [float] is for numbers. The center of the sequencer is the [delay] object, +which must be fed the time difference between each event (including the +non-event of hitting "start") and the next. As we extract each of the six +objects in the score, we must wait the delay for playing that object, and +then send its pointer to other abstractions that read data from the 'pitch' +and 'amp' arrays. However, we have to inspect the object itself to know the +delay before playing it. So, in the loop, we peel off the first remaining +object to play and inspect the time difference between it and the previous +one, using this value to set the [delay] object.

    The time difference needed to set the [delay] object is obtained using the -[get template-toplevel x] object. This is converted to incremental time with -[-], corrected for tempo, and fed to the delay. Pd provides the [get] and [set] -objects for reading and writing values from data structures. The two [get] -objects shown here obtain the "x" and "voiceno" fields of the current object. -The template name (template-toplevel) is supplied to the [get] objects so that +[get template-event] object with the 'x' field. This is converted to incremental +time with [-], corrected for tempo, and fed to the [delay] object. Pd provides +the [get] and [set] objects for reading and writing values from data structures. +The [get] object shown here obtains the "x" and "y" fields of the current object. +The template name (template-event) is supplied to the [get] objects so that they can look up the offset of the necessary field(s) in advance, for greater run-time efficiency. -

    Once the delay has expired, the object's pointer is recalled (the lower -[pointer] object), and the voice number is recalled. This is packed with -the pointer itself and routed, so that the pointer goes to the appropriate -voice. The voice number is shown as the color of the frequency trace in -"999" units (first digit red, second green, third blue) and the [route] object -is arbitrarily set up to select among the six primary and secondary colors plus -black. - -

    The details of extracting the pitch and dynamic breakpoints from the arrays -defined in the template are managed in the [voice] abstraction. The [voice] -abstraction receives a pointer to a given object and manages the sequencing of -the arrays; so it contains two sequencers itself. The nesting of the overall +

    Once the delay time has expired, the object's pointer is recalled with the +[pointer] object and sent to the [data-array] abstraction, which extracts the +pitch and dynamic breakpoints from the arrays (specified as the abstraction's +argument,) so it contains two sequencers itself. The nesting of the overall structure of the sequencer patch mirrors the nesting of the original data -structures. Finally, the voice abstraction puts its audio output on a summing bus. +structures. + +

    [data-array] abstraction

    -

    More general patches can easily be constructed which access heterogeneous lists -of objects (having different templates). In this way, an arbitrarily rich -personal "score language" can be developed and sequenced. +

    More general patches can easily be constructed which access heterogeneous +lists of objects (having different templates). In this way, an arbitrarily +rich personal "score language" can be developed and sequenced.

    2.10.2. Accessing and changing data

    -

    In general, accessing or changing data is done via "pointers" to -"scalars". Numbers and symbols within scalars are accessed using the -[get] object and changed, in the same way, using [set]. Since lists -and arrays are composed of scalars, every actual number or symbol in a data -heap will be a number or symbol element of some scalar. To access them, it -suffices to have objects to chase down elements of lists and arrays (given -either a global name or a pointer to the containing scalar). +

    In general, accessing or changing data is done via "pointers" to "scalars". +Numbers and symbols within scalars are accessed using the [get] object and +changed, in the same way, using [set]. Since lists and arrays are composed of +scalars, every actual number or symbol in a data heap will be a number or symbol +element of some scalar. To access them, it suffices to have objects to chase +down elements of lists and arrays (given either a global name or a pointer to +the containing scalar).

    Lists are traversed in the way shown above; to get to a sublist of a scalar, -the [get] object will provide a pointer, in the same way as it provides -"float" or "symbol" elements of scalars. For arrays, an -[element] object is provided which, given a scalar, a field name and -a number, chases down the numbered, scalar, element of the named array field. +the [get] object will provide a pointer, in the same way as it provides "float" +or "symbol" elements of scalars. For arrays, an [element] object is provided +which, given a scalar, a field name and a number, chases down the numbered, +scalar, element of the named array field.

    To alter "float" or "symbol" elements of scalars is straightforward using the [set] object, but arrays and lists can't be set by assignment; @@ -1735,12 +1741,11 @@

    2.10.4. Limitations

    When examples get more complicated and/or dense than the one shown here, it becomes difficult to see and select specific features of a data collection; -more work is needed to facilitate this. -There should be some facility for turning drawing instructions on and off, or -perhaps for switching between versions of a template, depending on the user's -desired view. There should also be a callback facility in the template for -when an object is edited with the mouse, so that the user can bind actions to -mouse clicks. +more work is needed to facilitate this. There should be some facility for +turning drawing instructions on and off, or perhaps for switching between versions +of a template, depending on the user's desired view. There should also be a +callback facility in the template for when an object is edited with the mouse, so +that the user can bind actions to mouse clicks.

    More generally, the collection of traversal objects that Pd provides is adequate to support a variety of modes of data collection and use, such as diff --git a/doc/4.data.structures/09.sequencer.pd b/doc/4.data.structures/09.sequencer.pd index e14a0e8c3..ecea44a66 100644 --- a/doc/4.data.structures/09.sequencer.pd +++ b/doc/4.data.structures/09.sequencer.pd @@ -1,7 +1,7 @@ #N struct template-event float x float y float color array pitch template-pitch array amp template-amp; #N struct template-pitch float x float y float w; #N struct template-amp float x float y float w; -#N canvas 352 61 498 433 12; +#N canvas 283 81 500 408 12; #X declare -stdpath ./; #N canvas 368 112 453 283 template-event 0; #X obj 38 196 plot pitch color 3 10 0; @@ -12,35 +12,34 @@ #X text 41 132 draw a small blue rectangle; #X text 210 196 plot the pitch array; #X text 170 222 plot the amp array; -#X restore 50 278 pd template-event; +#X restore 50 252 pd template-event; #N canvas 416 229 394 148 template-amp 0; #X obj 46 70 struct template-amp float x float y float w; #X text 44 33 template for the element of the 'amp' array; -#X restore 50 302 pd template-amp; +#X restore 50 276 pd template-amp; #N canvas 434 368 414 98 template-pitch 0; #X obj 40 55 struct template-pitch float x float y float w; #X text 37 24 template for the element of the 'pitch' array; -#X restore 50 326 pd template-pitch; -#N canvas 471 138 593 572 synthesis 0; +#X restore 50 300 pd template-pitch; +#N canvas 369 46 593 572 synthesis 0; #X msg 61 237 next; #X msg 152 253 traverse pd-data \, next; #X obj 152 142 inlet; #X obj 152 182 route start stop; -#X obj 350 289 r reset; +#X obj 370 327 r reset; #X obj 61 211 r next-evt; #X obj 152 395 outlet~; -#X msg 350 317 \; reset-stop stop \; time-of-last-evt 0 \; pd-data sort; -#X obj 350 245 s delay-multiplier; +#X obj 370 285 s delay-multiplier; #X obj 152 355 clone 4 voice; #X msg 152 320 next \$1; #X obj 152 290 pointer; #X obj 152 219 t b b; #X obj 206 219 s reset; -#X obj 350 193 expr 1000 / $f1; -#X obj 350 142 inlet; -#X text 396 143 tempo; -#X floatatom 350 220 9 0 0 0 - - - 0; -#X floatatom 350 168 5 0 0 0 - - - 0; +#X obj 370 213 expr 1000 / $f1; +#X obj 370 142 inlet; +#X text 416 141 tempo; +#X floatatom 370 250 9 0 0 0 - - - 0; +#X floatatom 370 178 5 0 0 0 - - - 0; #X text 30 20 We start by traversing the [pd data] window and getting the pointer for the first scalar. The pointer is sent to [clone] \, which loads 4 copies of the [voice] abstraction. The actual synthesis and sequencing is taken care inside [voice] \, which calls for the next scalar/event ("next-evt") after a delayed period that depends on the horizontal (x) coordinate. Check the [voice] abstraction in [clone] for more details., f 72; #N canvas 542 74 488 534 voice-routing 0; #X msg 162 165 next; @@ -83,28 +82,29 @@ #X connect 9 1 10 1; #X connect 10 0 8 0; #X restore 211 513 pd voice-routing; -#X text 91 442 Here we have a single abstraction for all voices \, so they're all playing the same "instrument". The color parameter on the event is not used \, but one could use it to route to a specific instrument/abstraction. Check the subpatch below for ideas:; -#X connect 0 0 11 0; -#X connect 1 0 11 0; +#X msg 370 355 \; reset-stop stop \; pd-data sort; +#X text 91 442 Here we have a single patch for all voices \, so they're all playing the same "instrument". The color parameter on the event is not used \, but one could use it to route to a specific instrument/abstraction. Check the subpatch below for ideas:; +#X connect 0 0 10 0; +#X connect 1 0 10 0; #X connect 2 0 3 0; -#X connect 3 0 12 0; -#X connect 3 1 13 0; -#X connect 4 0 7 0; +#X connect 3 0 11 0; +#X connect 3 1 12 0; +#X connect 4 0 20 0; #X connect 5 0 0 0; -#X connect 9 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 8 0; #X connect 10 0 9 0; -#X connect 11 0 10 0; -#X connect 12 0 1 0; -#X connect 12 1 13 0; +#X connect 11 0 1 0; +#X connect 11 1 12 0; +#X connect 13 0 16 0; #X connect 14 0 17 0; -#X connect 15 0 18 0; -#X connect 17 0 8 0; -#X connect 18 0 14 0; -#X restore 260 310 pd synthesis; -#X floatatom 341 270 4 0 0 1 tempo tempo-set - 16; -#X msg 260 245 start; -#X msg 271 276 stop; -#N canvas 866 48 445 471 data 1; +#X connect 16 0 7 0; +#X connect 17 0 13 0; +#X restore 251 284 pd synthesis; +#X floatatom 332 244 4 0 0 1 tempo tempo-set - 16; +#X msg 251 219 start; +#X msg 262 250 stop; +#N canvas 802 71 445 471 data 1; #X scalar template-event 22 69.5 900 \; 0 0 12 \; 10 0 12 \; \; 0 0 0 \; 10 0 2.5 \; 11 0 0 \; \;; #X scalar template-event 33 63.5 990 \; 0 0 12 \; 10 0 12 \; \; 0 0 2.5 \; 10 0 2.5 \; 11 0 0 \; \;; #X scalar template-event 57 26.75 90 \; 0 65 12 \; 100 10 0 \; 100 10 12 \; 230 50 0 \; 230 10 3 \; 240 60 0 \; 240 25 10 \; 250 60 0 \; 250 37 10 \; 260 65 0.5 \; 285 65 0.5 \; \; 1 0 2 \; 103 0 1 \; 195 0 2 \; 220 0 0.75 \; 225 0 1.25 \; 248 0 2.5 \; 251 0 2.25 \; 255 0 0 \; 256 0 1.5 \; 260 0 0 \; 261 0 2 \; 265 0 0 \; 266 0 2.5 \; 270 0 0 \; 271 0 3 \; 275 0 0 \; \;; @@ -112,7 +112,7 @@ #X scalar template-event 161 88.5 900 \; 0 0 12 \; 70 -20 12 \; \; 0 0 0 \; 10 0 2.5 \; 20 0 0 \; 30 0 0 \; 40 0 2.5 \; 50 0 0 \; 60 0 2.5 \; 70 0 0 \; \;; #X scalar template-event 338 47 909 \; 0 0 12 \; 50 0 12 \; \; 0 0 4 \; 10 0 2.5 \; 50 0 0 \; \;; #X coords 0 117.75 1 117.5 0 0 0; -#X restore 397 343 pd data; +#X restore 397 317 pd data; #N canvas 553 421 419 189 stuff 0; #X msg 48 33 \; pd-data read event.txt; #X obj 248 39 loadbang; @@ -121,14 +121,14 @@ #X obj 240 126 declare -stdpath ./; #X msg 248 66 \; tempo-set 60; #X connect 1 0 5 0; -#X restore 397 369 pd stuff; +#X restore 397 343 pd stuff; #X text 39 11 This patch shows an example of how to use data collections as musical sequences (with apologies to Yuasa and Stockhausen). Here the black traces show dynamics and the colored ones show pitch. The fatness of the pitch traces give bandwidth. Any of the three can change over the life of the event., f 61; -#X text 38 93 To hear the result \, turn the volume up to 70 or so (higher if it's not loud enough the first time) and hit "start". You can set the tempo lower if that helps you follow the "event" the first couple of times., f 61; -#X obj 260 348 output~; -#X text 30 376 Updated for Pd version 0.52; -#X text 52 255 templates:; -#X text 38 159 Note the screen units in the "data" window is 0.25 (ask for "properties" to see them) \, meaning that adding one to a 'y' values in arrays moves it up four pixels. In other words \, this stretches the vertical display of the scalar objects., f 61; -#X connect 3 0 11 0; +#X obj 251 322 output~; +#X text 30 350 Updated for Pd version 0.52; +#X text 52 229 templates:; +#X text 39 133 Note the screen units in the "data" window is 0.25 (ask for "properties" to see them) \, meaning that adding one to a 'y' values in arrays moves it up four pixels. In other words \, this stretches the vertical display of the scalar objects., f 61; +#X text 39 93 To hear the result \, turn the volume and hit "start". You can set the tempo lower if that helps you follow the "events"., f 61; +#X connect 3 0 10 0; #X connect 4 0 3 1; #X connect 5 0 3 0; #X connect 6 0 3 0; diff --git a/doc/4.data.structures/voice.pd b/doc/4.data.structures/voice.pd index 69ed0be94..76becc39e 100644 --- a/doc/4.data.structures/voice.pd +++ b/doc/4.data.structures/voice.pd @@ -1,108 +1,94 @@ -#N canvas 440 23 640 640 12; -#X obj 196 111 inlet; -#X obj 137 403 line~; -#X obj 114 307 sqrt; -#X obj 137 567 *~; -#X obj 137 431 *~; -#X obj 137 458 *~; -#X obj 137 607 outlet~; -#X obj 375 401 line~; -#X obj 375 429 *~; -#X obj 375 457 *~; -#X obj 252 290 mtof; -#X obj 252 205 +; -#X obj 252 314 sqrt; -#X obj 252 338 sqrt; -#X obj 375 374 pack; -#X obj 57 344 r reset; -#X msg 57 368 0 20; -#X obj 226 424 noise~; -#X obj 317 266 +; -#X obj 317 289 mtof; -#X obj 317 313 sqrt; -#X obj 317 337 sqrt; -#X obj 420 401 line~; -#X obj 420 429 *~; -#X obj 420 457 *~; -#X obj 420 374 pack; -#X obj 332 401 line~; -#X obj 332 429 *~; -#X obj 332 457 *~; -#X obj 332 374 pack; -#X obj 196 291 mtof; -#X obj 196 315 sqrt; -#X obj 196 339 sqrt; -#X obj 196 269 -; -#X obj 155 507 vcf~ 10; -#X obj 226 507 vcf~ 10; -#X obj 297 507 vcf~ 10; -#X text 459 436 calculate time-varying center frequencies, f 22; -#X text 359 506 ... for three VCFs acting on a noise source., f 25 -; -#X text 55 421 Amplitude; -#X text 56 437 envelope; -#X obj 114 280 / 2; -#X obj 67 247 data-array amp; -#X obj 281 176 data-array pitch; -#X obj 137 348 pack; -#N canvas 457 62 639 622 sequence 0; -#X obj 167 140 inlet; -#X obj 268 376 *; -#X obj 61 204 r reset-stop; -#X obj 153 487 outlet; -#X obj 443 487 outlet; -#X obj 153 430 pointer; -#X obj 167 205 t b p; -#X obj 121 406 t b b; -#X obj 286 290 r time-of-last-evt; -#X obj 268 319 -; -#X obj 236 223 t f f; -#X obj 64 445 s next-evt; -#X obj 257 258 s time-of-last-evt; -#X obj 286 350 r delay-multiplier; -#X obj 121 380 delay; -#X obj 236 191 get template-event x y, f 30; -#X text 28 16 Here we carry out the actual sequencing. We get a pointer -to the scalar and get its x/y coordinates. The y-value is sent to the -right outlet and the x-value is taken as a time stamp \, so we get -the time difference from it and the last event \, multiply it by a -"delay-multiplier" value that depends on the "tempo" parameter and -send this to a [delay] object. When [delay] sends a bang \, the pointer -to the scalar is sent to the left outlet and we ask for the next event -("next-evt") \, which calls the next pointer in the [pd synthesis] -window., f 80; -#X text 207 488 pointer (delayed); -#X text 497 489 y-value *; -#X text 273 533 * The y-value is used for pitch and is summed to the -y-values of the pitch array. Because the units on the data window is -"0.25" \, the pitch jumps in eighth-tones., f 45; -#X connect 0 0 6 0; -#X connect 1 0 14 1; -#X connect 2 0 14 0; +#N canvas 440 23 640 666 12; +#X obj 196 121 inlet; +#X obj 137 413 line~; +#X obj 114 317 sqrt; +#X obj 137 577 *~; +#X obj 137 441 *~; +#X obj 137 468 *~; +#X obj 137 617 outlet~; +#X obj 365 411 line~; +#X obj 365 439 *~; +#X obj 365 467 *~; +#X obj 252 295 mtof; +#X obj 252 215 +; +#X obj 252 319 sqrt; +#X obj 252 343 sqrt; +#X obj 365 384 pack; +#X obj 57 354 r reset; +#X msg 57 378 0 20; +#X obj 226 434 noise~; +#X obj 317 271 +; +#X obj 317 294 mtof; +#X obj 317 318 sqrt; +#X obj 317 342 sqrt; +#X obj 410 411 line~; +#X obj 410 439 *~; +#X obj 410 467 *~; +#X obj 410 384 pack; +#X obj 322 411 line~; +#X obj 322 439 *~; +#X obj 322 467 *~; +#X obj 322 384 pack; +#X obj 196 296 mtof; +#X obj 196 320 sqrt; +#X obj 196 344 sqrt; +#X obj 196 274 -; +#X obj 155 517 vcf~ 10; +#X obj 226 517 vcf~ 10; +#X obj 297 517 vcf~ 10; +#X text 55 431 Amplitude; +#X text 56 447 envelope; +#X obj 114 290 / 2; +#X obj 67 257 data-array amp; +#X obj 281 186 data-array pitch; +#X obj 137 358 pack; +#N canvas 457 62 630 588 sequence 1; +#X obj 144 150 inlet; +#X obj 263 387 *; +#X obj 156 244 r reset-stop; +#X obj 176 438 outlet; +#X obj 432 438 outlet; +#X obj 176 387 pointer; +#X obj 144 333 t b b; +#X obj 263 328 -; +#X obj 281 280 t f f; +#X obj 87 387 s next-evt; +#X obj 281 357 r delay-multiplier; +#X obj 144 307 delay; +#X obj 281 248 get template-event x y; +#X text 28 16 Here we carry out the actual sequencing. We get a pointer to the scalar and get its x/y coordinates. The y-value is sent to the right outlet and the x-value is taken as a time stamp \, so we get the time difference from it and the last event \, multiply it by a "delay-multiplier" value that depends on the "tempo" parameter and send this to a [delay] object. When [delay] sends a bang \, the pointer to the scalar is sent to the left outlet and we ask for the next event ("next-evt") \, which calls the next pointer in the [pd synthesis] window., f 80; +#X text 153 470 pointer (delayed); +#X text 418 463 y-value *; +#X text 45 519 * The y-value is used for pitch and is summed to the y-values of the pitch array. Because the units on the data window is "0.25" \, the pitch jumps in eighth-tones., f 74; +#X msg 197 276 0; +#X obj 144 202 trigger bang pointer; +#X text 193 149 pointer; +#X connect 0 0 18 0; +#X connect 1 0 11 1; +#X connect 2 0 11 0; +#X connect 2 0 17 0; #X connect 5 0 3 0; -#X connect 6 0 14 0; -#X connect 6 1 5 1; -#X connect 6 1 15 0; -#X connect 7 0 11 0; -#X connect 7 1 5 0; -#X connect 8 0 9 1; -#X connect 9 0 1 0; -#X connect 10 0 12 0; -#X connect 10 1 9 0; -#X connect 13 0 1 1; -#X connect 14 0 7 0; -#X connect 15 0 10 0; -#X connect 15 1 4 0; -#X restore 196 146 pd sequence; -#X text 39 17 This is an abstraction used in the sequencer example. -Here we take care of the audio synthesis \, according to timed controls -from [pd sequence] and [data-array] subpatches., f 73; -#X text 39 66 Pitch resolution is in eighth-tones (because 4 pixels -per half tone looks reasonable on the screen.), f 73; -#X connect 0 0 45 0; +#X connect 6 0 9 0; +#X connect 6 1 5 0; +#X connect 7 0 1 0; +#X connect 8 0 7 1; +#X connect 8 1 7 0; +#X connect 10 0 1 1; +#X connect 11 0 6 0; +#X connect 12 0 8 0; +#X connect 12 1 4 0; +#X connect 17 0 7 1; +#X connect 18 0 11 0; +#X connect 18 1 5 1; +#X connect 18 1 12 0; +#X restore 196 156 pd sequence; +#X text 39 17 This is an abstraction used in the sequencer example. Here we take care of the audio synthesis \, according to timed controls from [pd sequence] and [data-array] subpatches., f 73; +#X text 39 66 Pitch resolution is in eighth-tones (because 4 pixels per half tone looks reasonable on the screen.), f 73; +#X text 445 465 calculate time-varying center frequencies for three [vcf~] objects acting on a noise source., f 22; +#X connect 0 0 43 0; #X connect 1 0 4 0; #X connect 1 0 4 1; -#X connect 2 0 44 0; +#X connect 2 0 42 0; #X connect 3 0 6 0; #X connect 4 0 5 0; #X connect 4 0 5 1; @@ -147,16 +133,16 @@ per half tone looks reasonable on the screen.), f 73; #X connect 34 0 3 1; #X connect 35 0 3 1; #X connect 36 0 3 1; -#X connect 41 0 2 0; -#X connect 42 1 41 0; -#X connect 42 2 44 1; -#X connect 43 0 11 0; -#X connect 43 1 33 1; -#X connect 43 1 18 1; -#X connect 43 2 14 1; -#X connect 43 2 29 1; -#X connect 43 2 25 1; -#X connect 44 0 1 0; -#X connect 45 0 42 0; -#X connect 45 0 43 0; -#X connect 45 1 11 1; +#X connect 39 0 2 0; +#X connect 40 1 39 0; +#X connect 40 2 42 1; +#X connect 41 0 11 0; +#X connect 41 1 33 1; +#X connect 41 1 18 1; +#X connect 41 2 14 1; +#X connect 41 2 29 1; +#X connect 41 2 25 1; +#X connect 42 0 1 0; +#X connect 43 0 40 0; +#X connect 43 0 41 0; +#X connect 43 1 11 1; diff --git a/doc/Makefile.am b/doc/Makefile.am index 61ec49238..f22d40a8d 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -123,6 +123,9 @@ nobase_dist_libpd_DATA = \ ./1.manual/img/2.10.1.png \ ./1.manual/img/2.10.2.png \ ./1.manual/img/2.10.3.png \ + ./1.manual/img/2.10.4.png \ + ./1.manual/img/2.10.5.png \ + ./1.manual/img/2.10.6.png \ ./1.manual/img/3.1.1.png \ ./1.manual/img/3.1.2.png \ ./1.manual/img/3.5.1.png \ From 95c7d8a7a1f5a18e4fc5a0852410c13098d7aaa4 Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 1 Apr 2024 17:22:00 -0300 Subject: [PATCH 137/450] fix trailing whitespace --- doc/1.manual/x2.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index a6f46e002..bfb40106d 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -1619,7 +1619,7 @@

    2.10.1. Traversal

    check the [voice] abstrction below.

    [voice] abstraction

    - +

    The [pd sequence] subpatch takes care of sequencing the data structure events. From 3228d578a46e06872b9911a1d5dee2ced7d647ff Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 2 Apr 2024 14:54:56 +0200 Subject: [PATCH 138/450] update m_class_dispatcher headerst to support up to 6 arguments we must support up to MAXPDARGS+1 arguments because the message receiver itself is passed as an additional t_int argument. also, make sure that headers are written in binary mode to get the same output on all systems. --- src/m_class_dispatcher.c | 14 ++++++++++++-- src/m_class_dispatcher_1.h | 14 ++++++++++++++ src/m_class_dispatcher_2.h | 14 ++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/m_class_dispatcher.c b/src/m_class_dispatcher.c index f26bb5054..c3a458e73 100644 --- a/src/m_class_dispatcher.c +++ b/src/m_class_dispatcher.c @@ -15,6 +15,16 @@ Emscripten, because their return type is different (as pd_objectmaker methods) vs regular bang methods, so they need special treatment in the dispatcher: the dispatcher checks explicitly for pd_objectmaker and calls the method at the correct type. + +This file only needs to be compiled and run if the object message +passing changes in the future. (Unlikely.) +To regenerate the m_class_dispatcher headers: + cd src + cc -o m_class_dispatcher m_class_dispatcher.c + ./m_class_dispatcher + +NB: the argument should be at least MAXPDARGS+1 because the +receiver itself is passed as an additional t_int argument! */ #include @@ -41,7 +51,7 @@ int main(int argc, char **argv) fprintf(stderr, "error: too many arguments for today\n"); return 1; } - o = fopen("m_class_dispatcher_1.h", "w"); + o = fopen("m_class_dispatcher_1.h", "wb"); if (! o) { return 1; @@ -83,7 +93,7 @@ int main(int argc, char **argv) } } fclose(o); - o = fopen("m_class_dispatcher_2.h", "w"); + o = fopen("m_class_dispatcher_2.h", "wb"); if (! o) { return 1; diff --git a/src/m_class_dispatcher_1.h b/src/m_class_dispatcher_1.h index 511ab9a1a..6921fe151 100644 --- a/src/m_class_dispatcher_1.h +++ b/src/m_class_dispatcher_1.h @@ -20,6 +20,13 @@ typedef void (*t_vfun23)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_flo typedef void (*t_vfun32)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1); typedef void (*t_vfun41)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0); typedef void (*t_vfun50)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4); +typedef void (*t_vfun06)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); +typedef void (*t_vfun15)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef void (*t_vfun24)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef void (*t_vfun33)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun42)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun51)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_floatarg d0); +typedef void (*t_vfun60)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_int i5); typedef t_pd *(*t_fun00)(void); typedef t_pd *(*t_fun01)(t_floatarg d0); typedef t_pd *(*t_fun10)(t_int i0); @@ -41,3 +48,10 @@ typedef t_pd *(*t_fun23)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_flo typedef t_pd *(*t_fun32)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1); typedef t_pd *(*t_fun41)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0); typedef t_pd *(*t_fun50)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4); +typedef t_pd *(*t_fun06)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); +typedef t_pd *(*t_fun15)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef t_pd *(*t_fun24)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef t_pd *(*t_fun33)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun42)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun51)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_floatarg d0); +typedef t_pd *(*t_fun60)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_int i5); diff --git a/src/m_class_dispatcher_2.h b/src/m_class_dispatcher_2.h index 009a3cb53..2efc2e3c9 100644 --- a/src/m_class_dispatcher_2.h +++ b/src/m_class_dispatcher_2.h @@ -24,6 +24,13 @@ if (x == &pd_objectmaker) case 0x32 : bonzo = (*(t_fun32)(m->me_fun))(ai[0], ai[1], ai[2], ad[0], ad[1]); break; case 0x41 : bonzo = (*(t_fun41)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ad[0]); break; case 0x50 : bonzo = (*(t_fun50)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4]); break; + case 0x06 : bonzo = (*(t_fun06)(m->me_fun))(ad[0], ad[1], ad[2], ad[3], ad[4], ad[5]); break; + case 0x15 : bonzo = (*(t_fun15)(m->me_fun))(ai[0], ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x24 : bonzo = (*(t_fun24)(m->me_fun))(ai[0], ai[1], ad[0], ad[1], ad[2], ad[3]); break; + case 0x33 : bonzo = (*(t_fun33)(m->me_fun))(ai[0], ai[1], ai[2], ad[0], ad[1], ad[2]); break; + case 0x42 : bonzo = (*(t_fun42)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ad[0], ad[1]); break; + case 0x51 : bonzo = (*(t_fun51)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4], ad[0]); break; + case 0x60 : bonzo = (*(t_fun60)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4], ai[5]); break; default : bonzo = 0; } pd_this->pd_newest = bonzo; @@ -53,6 +60,13 @@ else case 0x32 : (*(t_vfun32)(m->me_fun))(ai[0], ai[1], ai[2], ad[0], ad[1]); break; case 0x41 : (*(t_vfun41)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ad[0]); break; case 0x50 : (*(t_vfun50)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4]); break; + case 0x06 : (*(t_vfun06)(m->me_fun))(ad[0], ad[1], ad[2], ad[3], ad[4], ad[5]); break; + case 0x15 : (*(t_vfun15)(m->me_fun))(ai[0], ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x24 : (*(t_vfun24)(m->me_fun))(ai[0], ai[1], ad[0], ad[1], ad[2], ad[3]); break; + case 0x33 : (*(t_vfun33)(m->me_fun))(ai[0], ai[1], ai[2], ad[0], ad[1], ad[2]); break; + case 0x42 : (*(t_vfun42)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ad[0], ad[1]); break; + case 0x51 : (*(t_vfun51)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4], ad[0]); break; + case 0x60 : (*(t_vfun60)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4], ai[5]); break; default : ; } } From 27c52e44082ae650380b7a73015b7e436a4fa92d Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 2 Apr 2024 17:02:34 +0200 Subject: [PATCH 139/450] merge message dispatching code into a single header m_dispatch.h the header now contains a static function mess_dispatch() which is called in pd_typedmess() m_class_dispatcher.c has been renamed to m_dispatch_gen.c --- src/Makefile.am | 4 +- src/m_class.c | 34 ++++---- src/m_class_dispatcher.c | 174 ------------------------------------- src/m_class_dispatcher_1.h | 57 ------------ src/m_class_dispatcher_2.h | 72 --------------- src/m_dispatch.h | 135 ++++++++++++++++++++++++++++ src/m_dispatch_gen.c | 151 ++++++++++++++++++++++++++++++++ 7 files changed, 306 insertions(+), 321 deletions(-) delete mode 100644 src/m_class_dispatcher.c delete mode 100644 src/m_class_dispatcher_1.h delete mode 100644 src/m_class_dispatcher_2.h create mode 100644 src/m_dispatch.h create mode 100644 src/m_dispatch_gen.c diff --git a/src/Makefile.am b/src/Makefile.am index 5f76ee154..e1fd9962a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -207,7 +207,7 @@ pkginclude_HEADERS = m_pd.h m_imp.h g_canvas.h g_undo.h g_all_guis.h s_stuff.h \ include_HEADERS = m_pd.h noinst_HEADERS = s_audio_alsa.h s_audio_paring.h s_utf8.h m_private_utils.h noinst_HEADERS += z_hooks.h z_ringbuffer.h x_libpdreceive.h -noinst_HEADERS += m_class_dispatcher_1.h m_class_dispatcher_2.h +noinst_HEADERS += m_dispatch.h if LIBPD libpdinclude_HEADERS += m_pd.h z_libpd.h @@ -220,7 +220,7 @@ endif EXTRA_DIST = CHANGELOG.txt notes.txt pd.rc \ makefile.gnu makefile.mac makefile.mingw makefile.msvc \ d_soundfile.h s_audio_audiounit.c s_audio_esd.c \ - m_class_dispatcher.c + m_dispatch_gen.c # add WISH define if it's set WISH=@WISH@ diff --git a/src/m_class.c b/src/m_class.c index 71f54805f..4a40f3172 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -948,8 +948,8 @@ typedef t_pd *(*t_newgimme)(t_symbol *s, int argc, t_atom *argv); typedef void(*t_messgimme)(t_pd *x, t_symbol *s, int argc, t_atom *argv); typedef void*(*t_messgimmer)(t_pd *x, t_symbol *s, int argc, t_atom *argv); -/* this file is generated by m_class_dispatcher.c */ -#include "m_class_dispatcher_1.h" + /* this file is generated by m_dispatch_gen.c */ +#include "m_dispatch.h" void *bang_new(t_pd *dummy); void *pdfloat_new(t_pd *dummy, t_float f); @@ -967,23 +967,27 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) t_floatarg ad[MAXPDARG+1], *dp = ad; int niarg = 0; int nfarg = 0; - t_pd *bonzo; /* check for messages that are handled by fixed slots in the class structure. */ if (s == &s_float) { if (x == &pd_objectmaker) - if (!argc) - pd_this->pd_newest = pdfloat_new(x, 0.); - else if (argv->a_type == A_FLOAT) - pd_this->pd_newest = pdfloat_new(x, argv->a_w.w_float); - else goto badarg; + { + if (!argc) + pd_this->pd_newest = pdfloat_new(x, 0.); + else if (argv->a_type == A_FLOAT) + pd_this->pd_newest = pdfloat_new(x, argv->a_w.w_float); + else goto badarg; + } else - if (!argc) (*c->c_floatmethod)(x, 0.); - else if (argv->a_type == A_FLOAT) - (*c->c_floatmethod)(x, argv->a_w.w_float); - else goto badarg; + { + if (!argc) + (*c->c_floatmethod)(x, 0.); + else if (argv->a_type == A_FLOAT) + (*c->c_floatmethod)(x, argv->a_w.w_float); + else goto badarg; + } return; } if (s == &s_bang) @@ -1105,10 +1109,8 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) goto badarg; } } - -/* this file is generated by m_class_dispatcher.c */ -#include "m_class_dispatcher_2.h" - + /* mess_dispatch() is defined in m_dispatch.h */ + mess_dispatch(x, m->me_fun, niarg, ai, nfarg, ad); return; } (*c->c_anymethod)(x, s, argc, argv); diff --git a/src/m_class_dispatcher.c b/src/m_class_dispatcher.c deleted file mode 100644 index c3a458e73..000000000 --- a/src/m_class_dispatcher.c +++ /dev/null @@ -1,174 +0,0 @@ -/* -This program generates the files -- m_class_dispatcher_1.h, containing typedefs -- m_class_dispatcher_2.h, containing the dispatcher - -Function pointers must be called at their exact type in Emscripten, -including return type, which makes the number of cases explode (42 -instead of 6). This is not checked at compile time, but wrong usage -crashes at runtime. The naming pattern is t_funMN for M t_int args -and N t_floatarg args returning t_pd *, with t_vfunMN for the void- -returning variants. The versions with a t_pd * are for pd_objectmaker, -which returns the new object from the method, c.f. pd_newest support. -For the same reason, bang_new() and similar can't be private in -Emscripten, because their return type is different (as pd_objectmaker -methods) vs regular bang methods, so they need special treatment in the -dispatcher: the dispatcher checks explicitly for pd_objectmaker and -calls the method at the correct type. - -This file only needs to be compiled and run if the object message -passing changes in the future. (Unlikely.) -To regenerate the m_class_dispatcher headers: - cd src - cc -o m_class_dispatcher m_class_dispatcher.c - ./m_class_dispatcher - -NB: the argument should be at least MAXPDARGS+1 because the -receiver itself is passed as an additional t_int argument! -*/ - -#include -#include - -#define MAXMAXARGS 16 - -const char *warning = - "/* IMPORTANT: EDIT m_class_dispatcher.c INSTEAD OF THIS FILE */\n"; - -int main(int argc, char **argv) -{ - const char *rettype[2] = { "void ", "t_pd *" }; - int MAXARGS, ret, args, iargs, fargs, arg; - FILE *o; - if (argc != 2) - { - fprintf(stderr, "usage: %s maxargs\n", argv[0]); - return 1; - } - MAXARGS = atoi(argv[1]); - if (MAXARGS >= MAXMAXARGS) - { - fprintf(stderr, "error: too many arguments for today\n"); - return 1; - } - o = fopen("m_class_dispatcher_1.h", "wb"); - if (! o) - { - return 1; - } - fprintf(o, warning); - for (ret = 0; ret < 2; ++ret) - { - for (args = 0; args <= MAXARGS; ++args) - { - for (iargs = 0; iargs <= args; ++iargs) - { - fargs = args - iargs; - fprintf(o, "typedef %s(*t_%sfun%d%d)(", - rettype[ret], ret ? "" : "v", iargs, fargs); - if (args) - { - for (arg = 0; arg < args; ++arg) - { - if (arg > 0) - { - fprintf(o, ", "); - } - if (arg < iargs) - { - fprintf(o, "t_int i%d", arg); - } - else - { - fprintf(o, "t_floatarg d%d", arg - iargs); - } - } - } - else - { - fprintf(o, "void"); - } - fprintf(o, ");\n"); - } - } - } - fclose(o); - o = fopen("m_class_dispatcher_2.h", "wb"); - if (! o) - { - return 1; - } - fprintf(o, warning); - fprintf(o, - "if (x == &pd_objectmaker)\n" - "{\n" - " switch (niarg * %d + nfarg)\n" - " {\n", - MAXMAXARGS); - for (args = 0; args <= MAXARGS; ++args) - { - for (iargs = 0; iargs <= args; ++iargs) - { - fargs = args - iargs; - fprintf(o, " case 0x%02x : bonzo = (*(t_fun%d%d)(m->me_fun))(", - iargs * MAXMAXARGS + fargs, iargs, fargs); - for (arg = 0; arg < args; ++arg) - { - if (arg > 0) - { - fprintf(o, ", "); - } - if (arg < iargs) - { - fprintf(o, "ai[%d]", arg); - } - else - { - fprintf(o, "ad[%d]", arg - iargs); - } - } - fprintf(o, "); break;\n"); - } - } - fprintf(o, - " default : bonzo = 0;\n" - " }\n" - " pd_this->pd_newest = bonzo;\n" - "}\n" - "else\n" - "{\n" - " switch (niarg * %d + nfarg)\n" - " {\n", - MAXMAXARGS); - for (args = 0; args <= MAXARGS; ++args) - { - for (iargs = 0; iargs <= args; ++iargs) - { - fargs = args - iargs; - fprintf(o, " case 0x%02x : (*(t_vfun%d%d)(m->me_fun))(", - iargs * MAXMAXARGS + fargs, iargs, fargs); - for (arg = 0; arg < args; ++arg) - { - if (arg > 0) - { - fprintf(o, ", "); - } - if (arg < iargs) - { - fprintf(o, "ai[%d]", arg); - } - else - { - fprintf(o, "ad[%d]", arg - iargs); - } - } - fprintf(o, "); break;\n"); - } - } - fprintf(o, - " default : ;\n" - " }\n" - "}\n"); - fclose(o); - return 0; -} diff --git a/src/m_class_dispatcher_1.h b/src/m_class_dispatcher_1.h deleted file mode 100644 index 6921fe151..000000000 --- a/src/m_class_dispatcher_1.h +++ /dev/null @@ -1,57 +0,0 @@ -/* IMPORTANT: EDIT m_class_dispatcher.c INSTEAD OF THIS FILE */ -typedef void (*t_vfun00)(void); -typedef void (*t_vfun01)(t_floatarg d0); -typedef void (*t_vfun10)(t_int i0); -typedef void (*t_vfun02)(t_floatarg d0, t_floatarg d1); -typedef void (*t_vfun11)(t_int i0, t_floatarg d0); -typedef void (*t_vfun20)(t_int i0, t_int i1); -typedef void (*t_vfun03)(t_floatarg d0, t_floatarg d1, t_floatarg d2); -typedef void (*t_vfun12)(t_int i0, t_floatarg d0, t_floatarg d1); -typedef void (*t_vfun21)(t_int i0, t_int i1, t_floatarg d0); -typedef void (*t_vfun30)(t_int i0, t_int i1, t_int i2); -typedef void (*t_vfun04)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); -typedef void (*t_vfun13)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2); -typedef void (*t_vfun22)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1); -typedef void (*t_vfun31)(t_int i0, t_int i1, t_int i2, t_floatarg d0); -typedef void (*t_vfun40)(t_int i0, t_int i1, t_int i2, t_int i3); -typedef void (*t_vfun05)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); -typedef void (*t_vfun14)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); -typedef void (*t_vfun23)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2); -typedef void (*t_vfun32)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1); -typedef void (*t_vfun41)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0); -typedef void (*t_vfun50)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4); -typedef void (*t_vfun06)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef void (*t_vfun15)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); -typedef void (*t_vfun24)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); -typedef void (*t_vfun33)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1, t_floatarg d2); -typedef void (*t_vfun42)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0, t_floatarg d1); -typedef void (*t_vfun51)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_floatarg d0); -typedef void (*t_vfun60)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_int i5); -typedef t_pd *(*t_fun00)(void); -typedef t_pd *(*t_fun01)(t_floatarg d0); -typedef t_pd *(*t_fun10)(t_int i0); -typedef t_pd *(*t_fun02)(t_floatarg d0, t_floatarg d1); -typedef t_pd *(*t_fun11)(t_int i0, t_floatarg d0); -typedef t_pd *(*t_fun20)(t_int i0, t_int i1); -typedef t_pd *(*t_fun03)(t_floatarg d0, t_floatarg d1, t_floatarg d2); -typedef t_pd *(*t_fun12)(t_int i0, t_floatarg d0, t_floatarg d1); -typedef t_pd *(*t_fun21)(t_int i0, t_int i1, t_floatarg d0); -typedef t_pd *(*t_fun30)(t_int i0, t_int i1, t_int i2); -typedef t_pd *(*t_fun04)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); -typedef t_pd *(*t_fun13)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2); -typedef t_pd *(*t_fun22)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1); -typedef t_pd *(*t_fun31)(t_int i0, t_int i1, t_int i2, t_floatarg d0); -typedef t_pd *(*t_fun40)(t_int i0, t_int i1, t_int i2, t_int i3); -typedef t_pd *(*t_fun05)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); -typedef t_pd *(*t_fun14)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); -typedef t_pd *(*t_fun23)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2); -typedef t_pd *(*t_fun32)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1); -typedef t_pd *(*t_fun41)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0); -typedef t_pd *(*t_fun50)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4); -typedef t_pd *(*t_fun06)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun15)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); -typedef t_pd *(*t_fun24)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); -typedef t_pd *(*t_fun33)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1, t_floatarg d2); -typedef t_pd *(*t_fun42)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0, t_floatarg d1); -typedef t_pd *(*t_fun51)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_floatarg d0); -typedef t_pd *(*t_fun60)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_int i5); diff --git a/src/m_class_dispatcher_2.h b/src/m_class_dispatcher_2.h deleted file mode 100644 index 2efc2e3c9..000000000 --- a/src/m_class_dispatcher_2.h +++ /dev/null @@ -1,72 +0,0 @@ -/* IMPORTANT: EDIT m_class_dispatcher.c INSTEAD OF THIS FILE */ -if (x == &pd_objectmaker) -{ - switch (niarg * 16 + nfarg) - { - case 0x00 : bonzo = (*(t_fun00)(m->me_fun))(); break; - case 0x01 : bonzo = (*(t_fun01)(m->me_fun))(ad[0]); break; - case 0x10 : bonzo = (*(t_fun10)(m->me_fun))(ai[0]); break; - case 0x02 : bonzo = (*(t_fun02)(m->me_fun))(ad[0], ad[1]); break; - case 0x11 : bonzo = (*(t_fun11)(m->me_fun))(ai[0], ad[0]); break; - case 0x20 : bonzo = (*(t_fun20)(m->me_fun))(ai[0], ai[1]); break; - case 0x03 : bonzo = (*(t_fun03)(m->me_fun))(ad[0], ad[1], ad[2]); break; - case 0x12 : bonzo = (*(t_fun12)(m->me_fun))(ai[0], ad[0], ad[1]); break; - case 0x21 : bonzo = (*(t_fun21)(m->me_fun))(ai[0], ai[1], ad[0]); break; - case 0x30 : bonzo = (*(t_fun30)(m->me_fun))(ai[0], ai[1], ai[2]); break; - case 0x04 : bonzo = (*(t_fun04)(m->me_fun))(ad[0], ad[1], ad[2], ad[3]); break; - case 0x13 : bonzo = (*(t_fun13)(m->me_fun))(ai[0], ad[0], ad[1], ad[2]); break; - case 0x22 : bonzo = (*(t_fun22)(m->me_fun))(ai[0], ai[1], ad[0], ad[1]); break; - case 0x31 : bonzo = (*(t_fun31)(m->me_fun))(ai[0], ai[1], ai[2], ad[0]); break; - case 0x40 : bonzo = (*(t_fun40)(m->me_fun))(ai[0], ai[1], ai[2], ai[3]); break; - case 0x05 : bonzo = (*(t_fun05)(m->me_fun))(ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 0x14 : bonzo = (*(t_fun14)(m->me_fun))(ai[0], ad[0], ad[1], ad[2], ad[3]); break; - case 0x23 : bonzo = (*(t_fun23)(m->me_fun))(ai[0], ai[1], ad[0], ad[1], ad[2]); break; - case 0x32 : bonzo = (*(t_fun32)(m->me_fun))(ai[0], ai[1], ai[2], ad[0], ad[1]); break; - case 0x41 : bonzo = (*(t_fun41)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ad[0]); break; - case 0x50 : bonzo = (*(t_fun50)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4]); break; - case 0x06 : bonzo = (*(t_fun06)(m->me_fun))(ad[0], ad[1], ad[2], ad[3], ad[4], ad[5]); break; - case 0x15 : bonzo = (*(t_fun15)(m->me_fun))(ai[0], ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 0x24 : bonzo = (*(t_fun24)(m->me_fun))(ai[0], ai[1], ad[0], ad[1], ad[2], ad[3]); break; - case 0x33 : bonzo = (*(t_fun33)(m->me_fun))(ai[0], ai[1], ai[2], ad[0], ad[1], ad[2]); break; - case 0x42 : bonzo = (*(t_fun42)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ad[0], ad[1]); break; - case 0x51 : bonzo = (*(t_fun51)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4], ad[0]); break; - case 0x60 : bonzo = (*(t_fun60)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4], ai[5]); break; - default : bonzo = 0; - } - pd_this->pd_newest = bonzo; -} -else -{ - switch (niarg * 16 + nfarg) - { - case 0x00 : (*(t_vfun00)(m->me_fun))(); break; - case 0x01 : (*(t_vfun01)(m->me_fun))(ad[0]); break; - case 0x10 : (*(t_vfun10)(m->me_fun))(ai[0]); break; - case 0x02 : (*(t_vfun02)(m->me_fun))(ad[0], ad[1]); break; - case 0x11 : (*(t_vfun11)(m->me_fun))(ai[0], ad[0]); break; - case 0x20 : (*(t_vfun20)(m->me_fun))(ai[0], ai[1]); break; - case 0x03 : (*(t_vfun03)(m->me_fun))(ad[0], ad[1], ad[2]); break; - case 0x12 : (*(t_vfun12)(m->me_fun))(ai[0], ad[0], ad[1]); break; - case 0x21 : (*(t_vfun21)(m->me_fun))(ai[0], ai[1], ad[0]); break; - case 0x30 : (*(t_vfun30)(m->me_fun))(ai[0], ai[1], ai[2]); break; - case 0x04 : (*(t_vfun04)(m->me_fun))(ad[0], ad[1], ad[2], ad[3]); break; - case 0x13 : (*(t_vfun13)(m->me_fun))(ai[0], ad[0], ad[1], ad[2]); break; - case 0x22 : (*(t_vfun22)(m->me_fun))(ai[0], ai[1], ad[0], ad[1]); break; - case 0x31 : (*(t_vfun31)(m->me_fun))(ai[0], ai[1], ai[2], ad[0]); break; - case 0x40 : (*(t_vfun40)(m->me_fun))(ai[0], ai[1], ai[2], ai[3]); break; - case 0x05 : (*(t_vfun05)(m->me_fun))(ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 0x14 : (*(t_vfun14)(m->me_fun))(ai[0], ad[0], ad[1], ad[2], ad[3]); break; - case 0x23 : (*(t_vfun23)(m->me_fun))(ai[0], ai[1], ad[0], ad[1], ad[2]); break; - case 0x32 : (*(t_vfun32)(m->me_fun))(ai[0], ai[1], ai[2], ad[0], ad[1]); break; - case 0x41 : (*(t_vfun41)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ad[0]); break; - case 0x50 : (*(t_vfun50)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4]); break; - case 0x06 : (*(t_vfun06)(m->me_fun))(ad[0], ad[1], ad[2], ad[3], ad[4], ad[5]); break; - case 0x15 : (*(t_vfun15)(m->me_fun))(ai[0], ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 0x24 : (*(t_vfun24)(m->me_fun))(ai[0], ai[1], ad[0], ad[1], ad[2], ad[3]); break; - case 0x33 : (*(t_vfun33)(m->me_fun))(ai[0], ai[1], ai[2], ad[0], ad[1], ad[2]); break; - case 0x42 : (*(t_vfun42)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ad[0], ad[1]); break; - case 0x51 : (*(t_vfun51)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4], ad[0]); break; - case 0x60 : (*(t_vfun60)(m->me_fun))(ai[0], ai[1], ai[2], ai[3], ai[4], ai[5]); break; - default : ; - } -} diff --git a/src/m_dispatch.h b/src/m_dispatch.h new file mode 100644 index 000000000..0013aca25 --- /dev/null +++ b/src/m_dispatch.h @@ -0,0 +1,135 @@ +/* IMPORTANT: EDIT m_dispatch_gen.c INSTEAD OF THIS FILE */ + +typedef void (*t_vfun00)(void); +typedef void (*t_vfun01)(t_floatarg d0); +typedef void (*t_vfun10)(t_int i0); +typedef void (*t_vfun02)(t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun11)(t_int i0, t_floatarg d0); +typedef void (*t_vfun20)(t_int i0, t_int i1); +typedef void (*t_vfun03)(t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun12)(t_int i0, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun21)(t_int i0, t_int i1, t_floatarg d0); +typedef void (*t_vfun30)(t_int i0, t_int i1, t_int i2); +typedef void (*t_vfun04)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef void (*t_vfun13)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun22)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun31)(t_int i0, t_int i1, t_int i2, t_floatarg d0); +typedef void (*t_vfun40)(t_int i0, t_int i1, t_int i2, t_int i3); +typedef void (*t_vfun05)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef void (*t_vfun14)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef void (*t_vfun23)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun32)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun41)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0); +typedef void (*t_vfun50)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4); +typedef void (*t_vfun06)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); +typedef void (*t_vfun15)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef void (*t_vfun24)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef void (*t_vfun33)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun42)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun51)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_floatarg d0); +typedef void (*t_vfun60)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_int i5); +typedef t_pd *(*t_fun00)(void); +typedef t_pd *(*t_fun01)(t_floatarg d0); +typedef t_pd *(*t_fun10)(t_int i0); +typedef t_pd *(*t_fun02)(t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun11)(t_int i0, t_floatarg d0); +typedef t_pd *(*t_fun20)(t_int i0, t_int i1); +typedef t_pd *(*t_fun03)(t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun12)(t_int i0, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun21)(t_int i0, t_int i1, t_floatarg d0); +typedef t_pd *(*t_fun30)(t_int i0, t_int i1, t_int i2); +typedef t_pd *(*t_fun04)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef t_pd *(*t_fun13)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun22)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun31)(t_int i0, t_int i1, t_int i2, t_floatarg d0); +typedef t_pd *(*t_fun40)(t_int i0, t_int i1, t_int i2, t_int i3); +typedef t_pd *(*t_fun05)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef t_pd *(*t_fun14)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef t_pd *(*t_fun23)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun32)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun41)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0); +typedef t_pd *(*t_fun50)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4); +typedef t_pd *(*t_fun06)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); +typedef t_pd *(*t_fun15)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef t_pd *(*t_fun24)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef t_pd *(*t_fun33)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun42)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun51)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_floatarg d0); +typedef t_pd *(*t_fun60)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_int i5); + +static void mess_dispatch(t_pd *x, t_gotfn fn, int niarg, t_int *ai, + int nfarg, t_floatarg *ad) +{ + if (x == &pd_objectmaker) + { + t_pd *ret; + switch (niarg * 16 + nfarg) + { + case 0x00 : ret = (*(t_fun00)fn)(); break; + case 0x01 : ret = (*(t_fun01)fn)(ad[0]); break; + case 0x10 : ret = (*(t_fun10)fn)(ai[0]); break; + case 0x02 : ret = (*(t_fun02)fn)(ad[0], ad[1]); break; + case 0x11 : ret = (*(t_fun11)fn)(ai[0], ad[0]); break; + case 0x20 : ret = (*(t_fun20)fn)(ai[0], ai[1]); break; + case 0x03 : ret = (*(t_fun03)fn)(ad[0], ad[1], ad[2]); break; + case 0x12 : ret = (*(t_fun12)fn)(ai[0], ad[0], ad[1]); break; + case 0x21 : ret = (*(t_fun21)fn)(ai[0], ai[1], ad[0]); break; + case 0x30 : ret = (*(t_fun30)fn)(ai[0], ai[1], ai[2]); break; + case 0x04 : ret = (*(t_fun04)fn)(ad[0], ad[1], ad[2], ad[3]); break; + case 0x13 : ret = (*(t_fun13)fn)(ai[0], ad[0], ad[1], ad[2]); break; + case 0x22 : ret = (*(t_fun22)fn)(ai[0], ai[1], ad[0], ad[1]); break; + case 0x31 : ret = (*(t_fun31)fn)(ai[0], ai[1], ai[2], ad[0]); break; + case 0x40 : ret = (*(t_fun40)fn)(ai[0], ai[1], ai[2], ai[3]); break; + case 0x05 : ret = (*(t_fun05)fn)(ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x14 : ret = (*(t_fun14)fn)(ai[0], ad[0], ad[1], ad[2], ad[3]); break; + case 0x23 : ret = (*(t_fun23)fn)(ai[0], ai[1], ad[0], ad[1], ad[2]); break; + case 0x32 : ret = (*(t_fun32)fn)(ai[0], ai[1], ai[2], ad[0], ad[1]); break; + case 0x41 : ret = (*(t_fun41)fn)(ai[0], ai[1], ai[2], ai[3], ad[0]); break; + case 0x50 : ret = (*(t_fun50)fn)(ai[0], ai[1], ai[2], ai[3], ai[4]); break; + case 0x06 : ret = (*(t_fun06)fn)(ad[0], ad[1], ad[2], ad[3], ad[4], ad[5]); break; + case 0x15 : ret = (*(t_fun15)fn)(ai[0], ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x24 : ret = (*(t_fun24)fn)(ai[0], ai[1], ad[0], ad[1], ad[2], ad[3]); break; + case 0x33 : ret = (*(t_fun33)fn)(ai[0], ai[1], ai[2], ad[0], ad[1], ad[2]); break; + case 0x42 : ret = (*(t_fun42)fn)(ai[0], ai[1], ai[2], ai[3], ad[0], ad[1]); break; + case 0x51 : ret = (*(t_fun51)fn)(ai[0], ai[1], ai[2], ai[3], ai[4], ad[0]); break; + case 0x60 : ret = (*(t_fun60)fn)(ai[0], ai[1], ai[2], ai[3], ai[4], ai[5]); break; + default : ret = 0; break; + } + pd_this->pd_newest = ret; + } + else + { + switch (niarg * 16 + nfarg) + { + case 0x00 : (*(t_vfun00)fn)(); break; + case 0x01 : (*(t_vfun01)fn)(ad[0]); break; + case 0x10 : (*(t_vfun10)fn)(ai[0]); break; + case 0x02 : (*(t_vfun02)fn)(ad[0], ad[1]); break; + case 0x11 : (*(t_vfun11)fn)(ai[0], ad[0]); break; + case 0x20 : (*(t_vfun20)fn)(ai[0], ai[1]); break; + case 0x03 : (*(t_vfun03)fn)(ad[0], ad[1], ad[2]); break; + case 0x12 : (*(t_vfun12)fn)(ai[0], ad[0], ad[1]); break; + case 0x21 : (*(t_vfun21)fn)(ai[0], ai[1], ad[0]); break; + case 0x30 : (*(t_vfun30)fn)(ai[0], ai[1], ai[2]); break; + case 0x04 : (*(t_vfun04)fn)(ad[0], ad[1], ad[2], ad[3]); break; + case 0x13 : (*(t_vfun13)fn)(ai[0], ad[0], ad[1], ad[2]); break; + case 0x22 : (*(t_vfun22)fn)(ai[0], ai[1], ad[0], ad[1]); break; + case 0x31 : (*(t_vfun31)fn)(ai[0], ai[1], ai[2], ad[0]); break; + case 0x40 : (*(t_vfun40)fn)(ai[0], ai[1], ai[2], ai[3]); break; + case 0x05 : (*(t_vfun05)fn)(ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x14 : (*(t_vfun14)fn)(ai[0], ad[0], ad[1], ad[2], ad[3]); break; + case 0x23 : (*(t_vfun23)fn)(ai[0], ai[1], ad[0], ad[1], ad[2]); break; + case 0x32 : (*(t_vfun32)fn)(ai[0], ai[1], ai[2], ad[0], ad[1]); break; + case 0x41 : (*(t_vfun41)fn)(ai[0], ai[1], ai[2], ai[3], ad[0]); break; + case 0x50 : (*(t_vfun50)fn)(ai[0], ai[1], ai[2], ai[3], ai[4]); break; + case 0x06 : (*(t_vfun06)fn)(ad[0], ad[1], ad[2], ad[3], ad[4], ad[5]); break; + case 0x15 : (*(t_vfun15)fn)(ai[0], ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x24 : (*(t_vfun24)fn)(ai[0], ai[1], ad[0], ad[1], ad[2], ad[3]); break; + case 0x33 : (*(t_vfun33)fn)(ai[0], ai[1], ai[2], ad[0], ad[1], ad[2]); break; + case 0x42 : (*(t_vfun42)fn)(ai[0], ai[1], ai[2], ai[3], ad[0], ad[1]); break; + case 0x51 : (*(t_vfun51)fn)(ai[0], ai[1], ai[2], ai[3], ai[4], ad[0]); break; + case 0x60 : (*(t_vfun60)fn)(ai[0], ai[1], ai[2], ai[3], ai[4], ai[5]); break; + default : break; + } + } +} diff --git a/src/m_dispatch_gen.c b/src/m_dispatch_gen.c new file mode 100644 index 000000000..3cf1269fd --- /dev/null +++ b/src/m_dispatch_gen.c @@ -0,0 +1,151 @@ +/* +This program generates the file m_dispatch.h. + +Function pointers must be called at their exact type in Emscripten, +including return type, which makes the number of cases explode (42 +instead of 6). This is not checked at compile time, but wrong usage +crashes at runtime. The naming pattern is t_funMN for M t_int args +and N t_floatarg args returning t_pd *, with t_vfunMN for the void- +returning variants. The versions with a t_pd * are for pd_objectmaker, +which returns the new object from the method, c.f. pd_newest support. +For the same reason, bang_new() and similar can't be private in +Emscripten, because their return type is different (as pd_objectmaker +methods) vs regular bang methods, so they need special treatment in the +dispatcher: the dispatcher checks explicitly for pd_objectmaker and +calls the method at the correct type. + +This file only needs to be compiled and run if the object message +passing changes in the future. (Unlikely.) +To regenerate m_dispatch.h: + cd src + cc -o m_dispatch_gen m_dispatch_gen.c + ./m_dispatch_gen[.exe] + +NB: the argument should be at least MAXPDARGS+1 because the +receiver itself is passed as an additional t_int argument! +*/ + +#include +#include + +#define MAXMAXARGS 16 + +int main(int argc, char **argv) +{ + const char *rettype[2] = { "void ", "t_pd *" }; + int MAXARGS, ret, args, iargs, fargs, arg; + FILE *o; + if (argc != 2) + { + fprintf(stderr, "usage: %s maxargs\n", argv[0]); + return 1; + } + MAXARGS = atoi(argv[1]); + if (MAXARGS >= MAXMAXARGS) + { + fprintf(stderr, "error: too many arguments for today\n"); + return 1; + } + o = fopen("m_dispatch.h", "wb"); + if (!o) + return 1; + + fprintf(o, "/* IMPORTANT: EDIT m_dispatch_gen.c INSTEAD OF THIS FILE */\n\n"); + /* function declarations */ + for (ret = 0; ret < 2; ++ret) + { + for (args = 0; args <= MAXARGS; ++args) + { + for (iargs = 0; iargs <= args; ++iargs) + { + fargs = args - iargs; + fprintf(o, "typedef %s(*t_%sfun%d%d)(", + rettype[ret], ret ? "" : "v", iargs, fargs); + if (args) + { + for (arg = 0; arg < args; ++arg) + { + if (arg > 0) + fprintf(o, ", "); + if (arg < iargs) + fprintf(o, "t_int i%d", arg); + else + fprintf(o, "t_floatarg d%d", arg - iargs); + } + } + else + fprintf(o, "void"); + fprintf(o, ");\n"); + } + } + } + fprintf(o, "\n"); + /* mess_dispatch() function */ + fprintf(o, + "static void mess_dispatch(t_pd *x, t_gotfn fn, int niarg, t_int *ai,\n" + " int nfarg, t_floatarg *ad)\n" + "{\n" + " if (x == &pd_objectmaker)\n" + " {\n" + " t_pd *ret;\n" + " switch (niarg * %d + nfarg)\n" + " {\n", + MAXMAXARGS); + for (args = 0; args <= MAXARGS; ++args) + { + for (iargs = 0; iargs <= args; ++iargs) + { + fargs = args - iargs; + fprintf(o, " case 0x%02x : ret = (*(t_fun%d%d)fn)(", + iargs * MAXMAXARGS + fargs, iargs, fargs); + for (arg = 0; arg < args; ++arg) + { + if (arg > 0) + fprintf(o, ", "); + if (arg < iargs) + fprintf(o, "ai[%d]", arg); + else + fprintf(o, "ad[%d]", arg - iargs); + } + fprintf(o, "); break;\n"); + } + } + fprintf(o, + " default : ret = 0; break;\n" + " }\n" + " pd_this->pd_newest = ret;\n" + " }\n" + " else\n" + " {\n" + " switch (niarg * %d + nfarg)\n" + " {\n", + MAXMAXARGS); + for (args = 0; args <= MAXARGS; ++args) + { + for (iargs = 0; iargs <= args; ++iargs) + { + fargs = args - iargs; + fprintf(o, " case 0x%02x : (*(t_vfun%d%d)fn)(", + iargs * MAXMAXARGS + fargs, iargs, fargs); + for (arg = 0; arg < args; ++arg) + { + if (arg > 0) + fprintf(o, ", "); + if (arg < iargs) + fprintf(o, "ai[%d]", arg); + else + fprintf(o, "ad[%d]", arg - iargs); + } + fprintf(o, "); break;\n"); + } + } + fprintf(o, + " default : break;\n" + " }\n" + " }\n" + "}\n"); + + fclose(o); + + return 0; +} From 893b2778183c4db5a00f61c0f94ccd26f447752a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 2 Apr 2024 17:25:08 +0200 Subject: [PATCH 140/450] mark more legacy functions as deprecated --- src/m_pd.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/m_pd.h b/src/m_pd.h index c674b4e42..17255ce3f 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -601,8 +601,7 @@ typedef enum { EXTERN void logpost(const void *object, int level, const char *fmt, ...) ATTRIBUTE_FORMAT_PRINTF(3, 4); -/* deprecated, use logpost() instead. */ -EXTERN void verbose(int level, const char *fmt, ...) ATTRIBUTE_FORMAT_PRINTF(2, 3); +PD_DEPRECATED EXTERN void verbose(int level, const char *fmt, ...) ATTRIBUTE_FORMAT_PRINTF(2, 3); /* avoid this: use logpost() instead */ /* ------------ system interface routines ------------------- */ @@ -773,15 +772,15 @@ 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); -EXTERN void sys_vgui(const char *fmt, ...); /* avoid this: use pdgui_vmess() instead */ -EXTERN void sys_gui(const char *s); /* avoid this: use pdgui_vmess() instead */ +PD_DEPRECATED EXTERN void sys_vgui(const char *fmt, ...); /* avoid this: use pdgui_vmess() instead */ +PD_DEPRECATED EXTERN void sys_gui(const char *s); /* avoid this: use pdgui_vmess() instead */ 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); /* avoid this: use pdgui_stub_vnew() instead */ -EXTERN void gfxstub_deleteforkey(void *key); /* avoid this: use pdgui_stub_deleteforkey() instead */ +PD_DEPRECATED EXTERN void gfxstub_new(t_pd *owner, void *key, const char *cmd); /* avoid this: use pdgui_stub_vnew() instead */ +PD_DEPRECATED EXTERN void gfxstub_deleteforkey(void *key); /* avoid this: use pdgui_stub_deleteforkey() instead */ /* * send a message to the GUI, with a simplified formatting syntax From af20977da83859e5367a1483420e79ab77d2cf6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 2 Apr 2024 22:06:03 +0200 Subject: [PATCH 141/450] shut up deprecation warnings for internal (low-level) use --- src/s_inter.c | 12 ++++++++++++ src/s_inter_gui.c | 12 ++++++++++++ src/x_gui.c | 11 +++++++++++ 3 files changed, 35 insertions(+) diff --git a/src/s_inter.c b/src/s_inter.c index 857b70a9a..4476b6884 100644 --- a/src/s_inter.c +++ b/src/s_inter.c @@ -873,6 +873,18 @@ void sys_vgui(const char *fmt, ...) INTER->i_bytessincelastping += msglen; } + +/* sys_vgui() and sys_gui() are deprecated for externals + and shouldn't be used directly within Pd. + however, the we do use them for implementing the high-level + communication, so we do not want the compiler to shout out loud. + */ +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#elif defined _MSC_VER +#pragma warning( disable : 4996 ) +#endif + void sys_gui(const char *s) { sys_vgui("%s", s); diff --git a/src/s_inter_gui.c b/src/s_inter_gui.c index 6adfc09df..2985b9117 100644 --- a/src/s_inter_gui.c +++ b/src/s_inter_gui.c @@ -64,6 +64,18 @@ */ +/* sys_vgui() and sys_gui() are deprecated for externals + and shouldn't be used directly within Pd. + however, the we do use them for implementing the high-level + communication (such as pdgui_vmess), + so we do not want the compiler to shout out loud. + */ +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#elif defined _MSC_VER +#pragma warning( disable : 4996 ) +#endif + static PERTHREAD char* s_escbuffer = 0; static PERTHREAD size_t s_esclength = 0; #ifndef GUI_ALLOCCHUNK diff --git a/src/x_gui.c b/src/x_gui.c index 09641d202..6b1547038 100644 --- a/src/x_gui.c +++ b/src/x_gui.c @@ -17,6 +17,17 @@ away before the panel does... */ /* --------------------- graphics responder ---------------- */ +/* gfxstub_* are deprecated for externals and shouldn't be used directly within Pd. + however, the we do use them for implementing the high-level + communication pdgui_stub_*(), so we do not want the compiler to shout out loud. + */ +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#elif defined _MSC_VER +#pragma warning( disable : 4996 ) +#endif + + /* make one of these if you want to put up a dialog window but want to be protected from getting deleted and then having the dialog call you back. In this design the calling object doesn't have to keep the address of the dialog From 18a879b0618f60d73726ce4d189f5499ca59c594 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 2 Apr 2024 21:29:11 +0200 Subject: [PATCH 142/450] define PD_INLINE --- src/m_pd.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/m_pd.h b/src/m_pd.h index 17255ce3f..bd0161576 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -62,6 +62,19 @@ extern int pd_compatibilitylevel; /* e.g., 43 for pd 0.43 compatibility */ #define EXTERN_STRUCT struct #endif + +/* util for better inlining of static functions in headers */ +#if defined(__cplusplus) +# define PD_INLINE inline +#else +# if (__STDC_VERSION__ >= 199901L) +# define PD_INLINE static inline +# else +# define PD_INLINE static +# endif +#endif + + /* Define some attributes, specific to the compiler */ #if defined(__GNUC__) #define ATTRIBUTE_FORMAT_PRINTF(a, b) __attribute__ ((format (printf, a, b))) From 3759b2473f7430480ed82c78564b6fc1cb5218c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 2 Apr 2024 21:31:36 +0200 Subject: [PATCH 143/450] use PD_INLINE rather than "static inline" TODO: for MSVC, we are still falling back to a macro implementation maybe we should use PD_INLINE as well(?) --- src/m_pd.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/m_pd.h b/src/m_pd.h index bd0161576..3018f16b5 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -877,7 +877,7 @@ typedef union unsigned int ui; } t_bigorsmall32; -static inline int PD_BADFLOAT(t_float f) /* malformed float */ +PD_INLINE int PD_BADFLOAT(t_float f) /* malformed float */ { t_bigorsmall32 pun; pun.f = f; @@ -885,7 +885,7 @@ static inline int PD_BADFLOAT(t_float f) /* malformed float */ return((pun.ui == 0) | (pun.ui == 0x7f800000)); } -static inline int PD_BIGORSMALL(t_float f) /* exponent outside (-64,64) */ +PD_INLINE int PD_BIGORSMALL(t_float f) /* exponent outside (-64,64) */ { t_bigorsmall32 pun; pun.f = f; @@ -900,7 +900,7 @@ typedef union unsigned int ui[2]; } t_bigorsmall64; -static inline int PD_BADFLOAT(t_float f) /* malformed double */ +PD_INLINE int PD_BADFLOAT(t_float f) /* malformed double */ { t_bigorsmall64 pun; pun.f = f; @@ -908,7 +908,7 @@ static inline int PD_BADFLOAT(t_float f) /* malformed double */ return((pun.ui[1] == 0) | (pun.ui[1] == 0x7ff00000)); } -static inline int PD_BIGORSMALL(t_float f) /* exponent outside (-512,512) */ +PD_INLINE int PD_BIGORSMALL(t_float f) /* exponent outside (-512,512) */ { t_bigorsmall64 pun; pun.f = f; From e6d8681f29c4aa6c3859c9197003245da498c09c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 2 Apr 2024 21:34:03 +0200 Subject: [PATCH 144/450] provide ABI-compat macro for sys_getversion() returning a version-code --- src/m_pd.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/m_pd.h b/src/m_pd.h index 3018f16b5..deb04bdb2 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -937,6 +937,17 @@ PD_INLINE int PD_BIGORSMALL(t_float f) /* exponent outside (-512,512) */ /* get major/minor/bugfix version numbers and version code at run time */ EXTERN unsigned int sys_getversion(int *major, int *minor, int *bugfix); +#ifndef PD_INTERNAL +/* ABI compat hack: do not use _sys_getversioncode() directly! */ +PD_INLINE unsigned int _sys_getversioncode(int*major, int*minor, int*bugfix) +{ + int a, b, c; + sys_getversion(major, minor, bugfix); + sys_getversion(&a, &b, &c); + return PD_VERSION(a, b, c); +} +#define sys_getversion _sys_getversioncode +#endif /* get a Pd API function pointer by name. Returns NULL if the function does not exist. For example, This allows to use recently introduced API From a1d4577e10ceeb6ad0cf7c994a729287f83d2cec Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Wed, 3 Apr 2024 00:05:07 +0200 Subject: [PATCH 145/450] bonk~: replace clock_getsystime() with clock_getlogicaltime() clock_getsystime() has been deprecated --- extra/bonk~/bonk~.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extra/bonk~/bonk~.c b/extra/bonk~/bonk~.c index 30191a19e..f642157ff 100644 --- a/extra/bonk~/bonk~.c +++ b/extra/bonk~/bonk~.c @@ -453,7 +453,7 @@ static void bonk_donew(t_bonk *x, int npoints, int period, int nsig, x->x_masktime = DEFMASKTIME; x->x_maskdecay = DEFMASKDECAY; x->x_learn = 0; - x->x_learndebounce = clock_getsystime(); + x->x_learndebounce = clock_getlogicaltime(); x->x_learncount = 0; x->x_debouncedecay = DEFDEBOUNCEDECAY; x->x_minvel = DEFMINVEL; @@ -574,7 +574,7 @@ static void bonk_tick(t_bonk *x) } else return; } - x->x_learndebounce = clock_getsystime(); + x->x_learndebounce = clock_getlogicaltime(); if (ntemplate) { t_float bestfit = -1e30; From 991f0eac1e303804dbc0589c365fa158984447cb Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Wed, 3 Apr 2024 00:11:12 +0200 Subject: [PATCH 146/450] m_pd.h: remove obsolete MSVC macros for PD_BADFLOAT and PD_BIGORSMALL --- src/m_pd.h | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/m_pd.h b/src/m_pd.h index deb04bdb2..7d670f98a 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -866,7 +866,6 @@ defined, there is a "te_xpix" field in objects, not a "te_xpos" as before: */ #define PD_USE_TE_XPIX -#ifndef _MSC_VER /* Microoft compiler can't handle "inline" function/macros */ #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) /* a test for NANs and denormals. Should only be necessary on i386. */ #if PD_FLOATSIZE == 32 @@ -921,20 +920,6 @@ PD_INLINE int PD_BIGORSMALL(t_float f) /* exponent outside (-512,512) */ #define PD_BIGORSMALL(f) 0 #endif -#else /* _MSC_VER */ -#if PD_FLOATSIZE == 32 -#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 /* 64 bits... don't know what to do here */ -#define PD_BADFLOAT(f) (!(((f) >= 0) || ((f) <= 0))) -#define PD_BIGORSMALL(f) ((f) > 1e150 || (f) < -1e150 \ - || (f) > -1e-150 && (f) < 1e-150 ) -#endif -#endif /* _MSC_VER */ - /* get major/minor/bugfix version numbers and version code at run time */ EXTERN unsigned int sys_getversion(int *major, int *minor, int *bugfix); #ifndef PD_INTERNAL From 654b4ca025eea5a0b34ec5147e2b482f7954b7f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 4 Apr 2024 09:23:10 +0200 Subject: [PATCH 147/450] numbox: mark private functions as "static" --- src/g_numbox.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/g_numbox.c b/src/g_numbox.c index 561530b83..36854e39b 100644 --- a/src/g_numbox.c +++ b/src/g_numbox.c @@ -20,7 +20,7 @@ static void my_numbox_key(void *z, t_symbol *keysym, t_floatarg fkey); static void my_numbox_draw_update(t_gobj *client, t_glist *glist); -void my_numbox_clip(t_my_numbox *x) +static void my_numbox_clip(t_my_numbox *x) { if(x->x_val < x->x_min) x->x_val = x->x_min; @@ -28,7 +28,7 @@ void my_numbox_clip(t_my_numbox *x) x->x_val = x->x_max; } -void my_numbox_calc_fontwidth(t_my_numbox *x) +static void my_numbox_calc_fontwidth(t_my_numbox *x) { int w, f = 31; @@ -42,7 +42,7 @@ void my_numbox_calc_fontwidth(t_my_numbox *x) x->x_gui.x_w = (w + (x->x_gui.x_h/2)/IEMGUI_ZOOM(x) + 4) * IEMGUI_ZOOM(x); } -void my_numbox_ftoa(t_my_numbox *x) +static void my_numbox_ftoa(t_my_numbox *x) { double f = x->x_val; int bufsize, is_exp = 0, i, idecimal; @@ -315,7 +315,7 @@ static void my_numbox_save(t_gobj *z, t_binbuf *b) binbuf_addv(b, ";"); } -int my_numbox_check_minmax(t_my_numbox *x, double min, double max) +static int my_numbox_check_minmax(t_my_numbox *x, double min, double max) { int ret = 0; From 3e2a7cfa9125a304ba901ab365a5192e77404bb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Thu, 4 Apr 2024 09:23:47 +0200 Subject: [PATCH 148/450] clear number buffer after setting colors Closes: https://github.com/pure-data/pure-data/issues/2140 --- src/g_numbox.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/g_numbox.c b/src/g_numbox.c index 36854e39b..bf85982c1 100644 --- a/src/g_numbox.c +++ b/src/g_numbox.c @@ -172,6 +172,8 @@ static void my_numbox_draw_config(t_my_numbox* x, t_glist* glist) "-text", x->x_buf, "-font", 3, fontatoms, "-fill", fcol); + + x->x_buf[0] = 0; } static void my_numbox_draw_new(t_my_numbox *x, t_glist *glist) From f241d8e4760c0de378c8044ce1cf905b97c687e6 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Sun, 5 Feb 2023 19:48:21 +0100 Subject: [PATCH 149/450] Revert "disallow callbacks from portaudio. Seems to be impossible to debug completely." This reverts commit a92556e907b7f73eb597ea4a0f1f16c3ad86febe. --- src/s_audio.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/s_audio.c b/src/s_audio.c index 02edfd5fe..17d756b3c 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -520,10 +520,7 @@ void sys_get_audio_devs(char *indevlist, int *nindevs, { pa_getdevs(indevlist, nindevs, outdevlist, noutdevs, canmulti, maxndev, devdescsize); - /* portaudio officially allows callbacks but it hangs Pd on MacOS - and perhaps on other platforms too - this would potentially reduce - latency but doesn't appear to be worth the danger. */ - *cancallback = 0; + *cancallback = 1; } else #endif From 6f3694b7105b465c9a556f5f8a194135047697ce Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 6 Sep 2022 15:02:15 +0200 Subject: [PATCH 150/450] add t_semaphore for signaling the scheduler thread from the audio callback --- src/s_audio_paring.c | 138 ++++++++++++++++++++++++++++++++++++++++++- src/s_audio_paring.h | 11 ++++ 2 files changed, 148 insertions(+), 1 deletion(-) diff --git a/src/s_audio_paring.c b/src/s_audio_paring.c index 3f6ebcee8..abb75024e 100644 --- a/src/s_audio_paring.c +++ b/src/s_audio_paring.c @@ -37,10 +37,33 @@ * */ -#include #include "s_audio_paring.h" + +#include +#include #include +#ifdef _WIN32 +#include +#else /* _WIN32 */ +#include +#include +#if defined(__linux__) || defined(__FreeBSD__) || \ + defined(__NetBSD__) || defined(__OpenBSD__) +#define HAVE_POSIX_SEMAPHORE +#include +#else +/* Some platforms (including Apple) do not support unnamed posix semaphores, + * others might not implement sem_timedwait(); to be on the safe side, we + * we simply emulate it with a counter, mutex and condition variable. + * The critical section is so short that there should not be any locking. + * NOTE: we cannot use Mach semaphores for Apple because they do not have + * a wait function with time-out... + */ +#include +#endif +#endif /* _WIN32 */ + /* Clear buffer. Should only be called when buffer is NOT being read. */ static void sys_ringbuf_Flush(PA_VOLATILE sys_ringbuf *rbuf, PA_VOLATILE void *dataPtr, long nfill); @@ -251,3 +274,116 @@ long sys_ringbuf_read(PA_VOLATILE sys_ringbuf *rbuf, void *data, long numBytes, sys_ringbuf_AdvanceReadIndex( rbuf, numRead ); return numRead; } + +/*************************************************************************** +** t_semaphore */ + +#ifndef _WIN32 +struct _semaphore +{ +#ifdef HAVE_POSIX_SEMAPHORE + sem_t sem; +#else + pthread_mutex_t mutex; + pthread_cond_t condvar; + int count; +#endif +}; +#endif + +t_semaphore * sys_semaphore_create(void) +{ +#ifdef _WIN32 + return (t_semaphore *)CreateSemaphoreA(0, 0, LONG_MAX, 0); +#else /* _WIN32 */ + t_semaphore *sem = (t_semaphore *)malloc(sizeof(t_semaphore)); +#ifdef HAVE_POSIX_SEMAPHORE + sem_init(&sem->sem, 0, 0); +#else + pthread_cond_init(&sem->condvar, 0); + pthread_mutex_init(&sem->mutex, 0); + sem->count = 0; +#endif + return sem; +#endif +} + +void sys_semaphore_destroy(t_semaphore *sem) +{ +#ifdef _WIN32 + CloseHandle((HANDLE)sem); +#else /* _WIN32 */ +#ifdef HAVE_POSIX_SEMAPHORE + sem_destroy(&sem->sem); +#else + pthread_mutex_destroy(&sem->mutex); + pthread_cond_destroy(&sem->condvar); +#endif + free(sem); +#endif +} + +void sys_semaphore_wait(t_semaphore *sem) +{ +#if defined(_WIN32) + WaitForSingleObject((HANDLE)sem, INFINITE); +#elif defined(HAVE_POSIX_SEMAPHORE) + while (sem_wait(&sem->sem) == -1 && errno == EINTR) continue; +#else + pthread_mutex_lock(&sem->mutex); + while (sem->count == 0) + pthread_cond_wait(&sem->condvar, &sem->mutex); + sem->count--; + pthread_mutex_unlock(&sem->mutex); +#endif +} + +int sys_semaphore_waitfor(t_semaphore *sem, double seconds) +{ +#ifdef _WIN32 + return WaitForSingleObject((HANDLE)sem, seconds * 1000.0) != WAIT_TIMEOUT; +#else + struct timespec ts; + struct timeval now; + gettimeofday(&now, 0); + /* add fractional part to timeout */ + seconds += now.tv_usec * 0.000001; + ts.tv_sec = now.tv_sec + (time_t)seconds; + ts.tv_nsec = (seconds - (time_t)seconds) * 1000000000; +#ifdef HAVE_POSIX_SEMAPHORE + while (sem_timedwait(&sem->sem, &ts) == -1) + { + if (errno != EINTR) /* ETIMEDOUT */ + return 0; + } + return 1; +#else + pthread_mutex_lock(&sem->mutex); + while (sem->count == 0) + { + if (pthread_cond_timedwait(&sem->condvar, &sem->mutex, &ts) == ETIMEDOUT) + { + pthread_mutex_unlock(&sem->mutex); + return 0; + } + } + sem->count--; + pthread_mutex_unlock(&sem->mutex); + return 1; +#endif +#endif +} + +void sys_semaphore_post(t_semaphore *sem) +{ +#if defined(_WIN32) + ReleaseSemaphore((HANDLE)sem, 1, NULL); +#elif defined(HAVE_POSIX_SEMAPHORE) + sem_post(&sem->sem); +#else + pthread_mutex_lock(&sem->mutex); + sem->count++; + pthread_mutex_unlock(&sem->mutex); + pthread_cond_signal(&sem->condvar); +#endif +} diff --git a/src/s_audio_paring.h b/src/s_audio_paring.h index 40adeae75..2f59ee27c 100644 --- a/src/s_audio_paring.h +++ b/src/s_audio_paring.h @@ -69,6 +69,17 @@ long sys_ringbuf_write(PA_VOLATILE sys_ringbuf *rbuf, const void *data, long sys_ringbuf_read(PA_VOLATILE sys_ringbuf *rbuf, void *data, long numBytes, PA_VOLATILE char *buffer); +/* semaphore for signaling the consumer thread */ +struct _semaphore; +typedef struct _semaphore t_semaphore; + +t_semaphore * sys_semaphore_create(void); +void sys_semaphore_destroy(t_semaphore *sem); +void sys_semaphore_wait(t_semaphore *sem); +/* wait with timeout (in seconds) */ +int sys_semaphore_waitfor(t_semaphore *sem, double seconds); +void sys_semaphore_post(t_semaphore *sem); + #ifdef __cplusplus } #endif /* __cplusplus */ From 87aac60ba79be308d8402c1417e099674a05aeb3 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 6 Sep 2022 17:08:21 +0200 Subject: [PATCH 151/450] jack: use semaphore instead of condition variable for (optional) thread singalling This gets rid of the unnecessary locking in the audio callback (which defeats the purpose of using a lockfree ringbuffer). Also, we return SENDDACS_SLEPT simply if we had to call sys_semaphore_wait(). (There is no need to measure the elapsed time and compare against some magic number.) --- src/s_audio_jack.c | 79 ++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 44 deletions(-) diff --git a/src/s_audio_jack.c b/src/s_audio_jack.c index acd4665db..0a762ba53 100644 --- a/src/s_audio_jack.c +++ b/src/s_audio_jack.c @@ -27,7 +27,6 @@ * `JACK_CLIENT_NAME_SIZE` definitions I could find in the wild. */ #define CLIENT_NAME_SIZE_FALLBACK 128 - #ifndef HAVE_ALLOCA /* can work without alloca() but we never need it */ # define HAVE_ALLOCA 1 #endif @@ -50,6 +49,11 @@ #define MAX_ALLOCA_SAMPLES 16*1024 +/* enable thread signaling instead of polling */ +#if 0 +#define THREADSIGNAL +#endif + static jack_nframes_t jack_out_max; static jack_nframes_t jack_filled = 0; static int jack_started = 0; @@ -62,15 +66,14 @@ static int jack_dio_error; static t_audiocallback jack_callback; static int jack_should_autoconnect = 1; static int jack_blocksize = 0; /* should this be PERTHREAD? */ -pthread_mutex_t jack_mutex; -pthread_cond_t jack_sem; +#ifdef THREADSIGNAL +t_semaphore *jack_sem; +#endif static PA_VOLATILE char *jack_outbuf; static PA_VOLATILE sys_ringbuf jack_outring; static PA_VOLATILE char *jack_inbuf; static PA_VOLATILE sys_ringbuf jack_inring; -/* #define TESTCANSLEEP */ - /* callback routine for non-callback client... throw samples into and read them out of a FIFO. Since we don't know at compile time how many samples jack will treat us to, we interleave them in the @@ -88,10 +91,6 @@ static int jack_polling_callback(jack_nframes_t nframes, void *unused) jack_default_audio_sample_t *jp; ALLOCA(t_sample, muxbuffer, muxbufsize, MAX_ALLOCA_SAMPLES); - /* even though the FIFO is lock-free we have to lock here - to prevent a race condition in the waiting thread between - the FIFO and the pthread_cond_wait() call. */ - pthread_mutex_lock(&jack_mutex); if (infiforoom < nframes * STUFF->st_inchannels * sizeof(t_sample) || outfiforoom < nframes * STUFF->st_outchannels * sizeof(t_sample)) { @@ -135,9 +134,10 @@ static int jack_polling_callback(jack_nframes_t nframes, void *unused) } } } - pthread_cond_broadcast(&jack_sem); - pthread_mutex_unlock(&jack_mutex); FREEA(t_sample, muxbuffer, muxbufsize, MAX_ALLOCA_SAMPLES); +#ifdef THREADSIGNAL + sys_semaphore_post(jack_sem); +#endif return 0; } @@ -355,6 +355,10 @@ int jack_open_audio(int inchans, int outchans, t_audiocallback callback) if (jack_client) jack_close_audio(); +#ifdef THREADSIGNAL + jack_sem = sys_semaphore_create(); +#endif + jack_dio_error = 0; if ((inchans == 0) && (outchans == 0)) return 0; @@ -513,10 +517,6 @@ int jack_open_audio(int inchans, int outchans, t_audiocallback callback) if (jack_client_names[0] && jack_should_autoconnect) jack_connect_ports(jack_client_names[0]); - - pthread_mutex_init(&jack_mutex, NULL); - pthread_cond_init(&jack_sem, NULL); - return 0; } @@ -535,46 +535,41 @@ void jack_close_audio(void) jack_started = 0; jack_blocksize = 0; - /* this should never be necessary since jack_close_audio() should - only be called form the main thread. Still, it doesn't hurt - anything. */ - pthread_cond_broadcast(&jack_sem); - - pthread_cond_destroy(&jack_sem); - pthread_mutex_destroy(&jack_mutex); +#ifdef THREADSIGNAL + if (jack_sem) + { + sys_semaphore_destroy(jack_sem); + jack_sem = 0; + } +#endif } int jack_send_dacs(void) { - unsigned long infiforoom, outfiforoom; t_sample *muxbuffer; t_sample *fp, *fp2, *jp; int j, ch; - double timenow, timeref = sys_getrealtime(); const size_t muxbufsize = DEFDACBLKSIZE * (STUFF->st_inchannels > STUFF->st_outchannels ? STUFF->st_inchannels : STUFF->st_outchannels); - if (!STUFF->st_inchannels && !STUFF->st_outchannels) return (SENDDACS_NO); + int retval = SENDDACS_YES; + /* this shouldn't really happen... */ + if (!jack_client || (!STUFF->st_inchannels && !STUFF->st_outchannels)) + return (SENDDACS_NO); -#ifdef TESTCANSLEEP - pthread_mutex_lock(&jack_mutex); - while (jack_client && - (sys_ringbuf_getreadavailable(&jack_inring) < - (long)(STUFF->st_inchannels * DEFDACBLKSIZE*sizeof(t_sample))) && - (sys_ringbuf_getwriteavailable(&jack_outring) < - (long)(STUFF->st_outchannels * DEFDACBLKSIZE*sizeof(t_sample)))) - pthread_cond_wait(&jack_sem,&jack_mutex); - pthread_mutex_unlock(&jack_mutex); - if (!jack_client) - return SENDDACS_NO; -#else - if (!jack_client || + while ( (sys_ringbuf_getreadavailable(&jack_inring) < (long)(STUFF->st_inchannels * DEFDACBLKSIZE*sizeof(t_sample))) || (sys_ringbuf_getwriteavailable(&jack_outring) < (long)(STUFF->st_outchannels * DEFDACBLKSIZE*sizeof(t_sample)))) - return (SENDDACS_NO); + { +#ifdef THREADSIGNAL + sys_semaphore_wait(jack_sem); + retval = SENDDACS_SLEPT; +#else + return (SENDDACS_NO); #endif + } if (jack_dio_error) { sys_log_error(ERR_RESYNC); @@ -611,12 +606,8 @@ int jack_send_dacs(void) } memset(STUFF->st_soundout, 0, DEFDACBLKSIZE*sizeof(t_sample) * STUFF->st_outchannels); - /* fprintf(stderr, "%g ", sys_getrealtime() - timeref); */ - FREEA(t_sample, muxbuffer, muxbufsize, MAX_ALLOCA_SAMPLES); - if ((timenow = sys_getrealtime()) - timeref > 0.0002) - return (SENDDACS_SLEPT); - else return (SENDDACS_YES); + return retval; } void jack_getdevs(char *indevlist, int *nindevs, From 35914361ed5824570c89751e706003b1d1466af6 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 6 Sep 2022 17:10:31 +0200 Subject: [PATCH 152/450] portaudio: rewrite pa_send_dacs() and pa_fifo_callback() to match the much simpler jack implemenation also fixes a race condition in pa_fifo_callback(): we must check *both* ringbuffers before reading/writing to them; in the original code, it was possible to accidentally overflow 'pa_inring'. --- src/s_audio_pa.c | 275 ++++++++++++++++++----------------------------- 1 file changed, 104 insertions(+), 171 deletions(-) diff --git a/src/s_audio_pa.c b/src/s_audio_pa.c index 3424ae80f..66c4eb836 100644 --- a/src/s_audio_pa.c +++ b/src/s_audio_pa.c @@ -43,8 +43,10 @@ #define FAKEBLOCKING #endif -/* define this to enable thread signaling instead of polling */ -// #define THREADSIGNAL +/* enable thread signaling instead of polling */ +#if 0 +#define THREADSIGNAL +#endif /* LATER try to figure out how to handle default devices in portaudio; the way s_audio.c handles them isn't going to work here. */ @@ -68,28 +70,14 @@ static PA_VOLATILE sys_ringbuf pa_outring; static PA_VOLATILE char *pa_inbuf; static PA_VOLATILE sys_ringbuf pa_inring; #ifdef THREADSIGNAL -#include -#include -#ifdef _WIN32 -#include -#else -#include -#endif -/* maximum time (in ms) to wait for the condition variable. */ -#ifndef THREADSIGNAL_TIMEOUT -#define THREADSIGNAL_TIMEOUT 1000 -#endif -static pthread_mutex_t pa_mutex; -static pthread_cond_t pa_sem; -#else /* THREADSIGNAL */ -#if defined (FAKEBLOCKING) && defined(_WIN32) -#include /* for Sleep() */ +t_semaphore *pa_sem; #endif -/* max time (in ms) before trying to reopen the device */ +/* number of seconds to wait before checking the audio device +(and possibly trying to reopen it). */ #ifndef POLL_TIMEOUT -#define POLL_TIMEOUT 2000 +#define POLL_TIMEOUT 2.0 #endif -#endif /* THREADSIGNAL */ +static double pa_lastdactime; #endif /* FAKEBLOCKING */ static void pa_init(void) /* Initialize PortAudio */ @@ -118,7 +106,7 @@ static void pa_init(void) /* Initialize PortAudio */ #endif - if ( err != paNoError ) + if (err != paNoError) { post("error#%d opening audio: %s", err, Pa_GetErrorText(err)); return; @@ -173,13 +161,15 @@ static int pa_lowlevel_callback(const void *inputBuffer, #ifdef FAKEBLOCKING /* callback for "non-callback" case in which we actually open portaudio - in callback mode but fake "blocking mode". We communicate with the - main thread via FIFO. First read the audio output FIFO (which - we sync on, not waiting for it but supplying zeros to the audio output if - there aren't enough samples in the FIFO when we are called), then write - to the audio input FIFO. The main thread will wait for the input fifo. - We can either throw it a pthreads condition or just allow the main thread - to poll for us; so far polling seems to work better. */ + in callback mode but fake "blocking mode". We communicate with the main + thread via two FIFOs: the audio input buffer is copied to our input FIFO + and the audio output buffer is filled with samples from our output FIFO. + If the input FIFO is full or the output FIFO is empty, the callback does + not wait for the scheduler; instead, the input buffer is discarded and + the output buffer is filled with zeros. After each scheduler tick, the + main thread tries to drain the input FIFO and fill the output FIFO. + It can either wait on a semaphore, or poll in regular intervals; + the first option should be more responsive. */ static int pa_fifo_callback(const void *inputBuffer, void *outputBuffer, unsigned long nframes, const PaStreamCallbackTimeInfo *outTime, PaStreamCallbackFlags myflags, @@ -187,33 +177,21 @@ static int pa_fifo_callback(const void *inputBuffer, { /* callback routine for non-callback client... throw samples into and read them out of a FIFO */ + unsigned long infiforoom = sys_ringbuf_getwriteavailable(&pa_inring), + outfiforoom = sys_ringbuf_getreadavailable(&pa_outring); int ch; - long fiforoom; - float *fbuf; #if CHECKFIFOS if (pa_inchans * sys_ringbuf_getreadavailable(&pa_outring) != pa_outchans * sys_ringbuf_getwriteavailable(&pa_inring)) post("warning: in and out rings unequal (%d, %d)", sys_ringbuf_getreadavailable(&pa_outring), - sys_ringbuf_getwriteavailable(&pa_inring)); + sys_ringbuf_getwriteavailable(&pa_inring)); #endif - fiforoom = sys_ringbuf_getreadavailable(&pa_outring); - if ((unsigned)fiforoom >= nframes*pa_outchans*sizeof(float)) + if (infiforoom < nframes * STUFF->st_inchannels * sizeof(t_sample) || + outfiforoom < nframes * STUFF->st_outchannels * sizeof(t_sample)) { - if (outputBuffer) - sys_ringbuf_read(&pa_outring, outputBuffer, - nframes*pa_outchans*sizeof(float), pa_outbuf); - else if (pa_outchans) - post("audio error: no outputBuffer but output channels"); - if (inputBuffer) - sys_ringbuf_write(&pa_inring, inputBuffer, - nframes*pa_inchans*sizeof(float), pa_inbuf); - else if (pa_inchans) - post("audio error: no inputBuffer but input channels"); - } - else - { /* PD could not keep up; generate zeros */ + /* data late: output zeros, drop inputs, and leave FIFos untouched */ if (pa_started) pa_dio_error = 1; if (outputBuffer) @@ -221,16 +199,27 @@ static int pa_fifo_callback(const void *inputBuffer, for (ch = 0; ch < pa_outchans; ch++) { unsigned long frame; - fbuf = ((float *)outputBuffer) + ch; + float *fbuf = ((float *)outputBuffer) + ch; for (frame = 0; frame < nframes; frame++, fbuf += pa_outchans) *fbuf = 0; } } } + else + { + if (outputBuffer) + sys_ringbuf_read(&pa_outring, outputBuffer, + nframes*pa_outchans*sizeof(float), pa_outbuf); + else if (pa_outchans) + post("audio error: no outputBuffer but output channels"); + if (inputBuffer) + sys_ringbuf_write(&pa_inring, inputBuffer, + nframes*pa_inchans*sizeof(float), pa_inbuf); + else if (pa_inchans) + post("audio error: no inputBuffer but input channels"); + } #ifdef THREADSIGNAL - pthread_mutex_lock(&pa_mutex); - pthread_cond_signal(&pa_sem); - pthread_mutex_unlock(&pa_mutex); + sys_semaphore_post(pa_sem); #endif return 0; } @@ -442,12 +431,12 @@ int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin, if (pa_outbuf) free((char *)pa_outbuf), pa_outbuf = 0; #ifdef THREADSIGNAL - pthread_mutex_init(&pa_mutex, 0); - pthread_cond_init(&pa_sem, 0); + pa_sem = sys_semaphore_create(); #endif + pa_lastdactime = 0; #endif - if (! inchans && !outchans) + if (!inchans && !outchans) return (0); if (callbackfn) @@ -505,81 +494,59 @@ void pa_close_audio(void) if (pa_outbuf) free((char *)pa_outbuf), pa_outbuf = 0; #ifdef THREADSIGNAL - pthread_mutex_destroy(&pa_mutex); - pthread_cond_destroy(&pa_sem); + if (pa_sem) + { + sys_semaphore_destroy(pa_sem); + pa_sem = 0; + } #endif #endif } int pa_send_dacs(void) { + PaError err; t_sample *fp; float *fp2, *fp3; float *conversionbuf; int j, k; - int rtnval = SENDDACS_YES; - int locked = 0; - double timebefore; -#ifdef FAKEBLOCKING -#ifdef THREADSIGNAL - struct timespec ts; - double timeout; -#ifdef _WIN32 - struct __timeb64 tb; - _ftime64(&tb); - timeout = (double)tb.time + tb.millitm * 0.001; -#else - struct timeval now; - gettimeofday(&now, 0); - timeout = (double)now.tv_sec + (1./1000000.) * now.tv_usec; -#endif - timeout += THREADSIGNAL_TIMEOUT * 0.001; - ts.tv_sec = (long long)timeout; - ts.tv_nsec = (timeout - (double)ts.tv_sec) * 1e9; -#else -#endif /* THREADSIGNAL */ -#endif /* FAKEBLOCKING */ - timebefore = sys_getrealtime(); + int retval = SENDDACS_YES; + double timeref = sys_getrealtime(); - if ((!STUFF->st_inchannels && !STUFF->st_outchannels) || !pa_stream) + if (!pa_stream || (!STUFF->st_inchannels && !STUFF->st_outchannels)) return (SENDDACS_NO); + conversionbuf = (float *)alloca((STUFF->st_inchannels > STUFF->st_outchannels? STUFF->st_inchannels:STUFF->st_outchannels) * DEFDACBLKSIZE * sizeof(float)); #ifdef FAKEBLOCKING - if (!STUFF->st_inchannels) /* if no input channels sync on output */ + while ( + (sys_ringbuf_getreadavailable(&pa_inring) < + (long)(STUFF->st_inchannels * DEFDACBLKSIZE*sizeof(t_sample))) || + (sys_ringbuf_getwriteavailable(&pa_outring) < + (long)(STUFF->st_outchannels * DEFDACBLKSIZE*sizeof(t_sample)))) { #ifdef THREADSIGNAL - pthread_mutex_lock(&pa_mutex); -#endif - while (sys_ringbuf_getwriteavailable(&pa_outring) < - (long)(STUFF->st_outchannels * DEFDACBLKSIZE * sizeof(float))) + if (!sys_semaphore_waitfor(pa_sem, POLL_TIMEOUT)) { - rtnval = SENDDACS_SLEPT; -#ifdef THREADSIGNAL - if (pthread_cond_timedwait(&pa_sem, &pa_mutex, &ts) == ETIMEDOUT) - { - locked = 1; - break; - } -#else - if (Pa_IsStreamActive(&pa_stream) < 0 && - (sys_getrealtime() - timebefore) > (POLL_TIMEOUT * 0.001)) - { - locked = 1; - break; - } - sys_microsleep(); - if (!pa_stream) /* sys_microsleep() may have closed device */ + /* timed out -> check stream */ + if ((err = Pa_IsStreamActive(pa_stream)) < 0) + goto try_reopen; + else /* should not really happen */ return SENDDACS_NO; -#endif /* THREADSIGNAL */ } -#ifdef THREADSIGNAL - pthread_mutex_unlock(&pa_mutex); + retval = SENDDACS_SLEPT; +#else + if (((timeref - pa_lastdactime) >= POLL_TIMEOUT) + && ((err = Pa_IsStreamActive(&pa_stream)) < 0)) + goto try_reopen; + else + return SENDDACS_NO; #endif } + pa_lastdactime = timeref; /* write output */ - if (STUFF->st_outchannels && !locked) + if (STUFF->st_outchannels) { for (j = 0, fp = STUFF->st_soundout, fp2 = conversionbuf; j < STUFF->st_outchannels; j++, fp2++) @@ -589,38 +556,8 @@ int pa_send_dacs(void) sys_ringbuf_write(&pa_outring, conversionbuf, STUFF->st_outchannels*(DEFDACBLKSIZE*sizeof(float)), pa_outbuf); } - if (STUFF->st_inchannels) /* if there is input sync on it */ - { -#ifdef THREADSIGNAL - pthread_mutex_lock(&pa_mutex); -#endif - while (sys_ringbuf_getreadavailable(&pa_inring) < - (long)(STUFF->st_inchannels * DEFDACBLKSIZE * sizeof(float))) - { - rtnval = SENDDACS_SLEPT; -#ifdef THREADSIGNAL - if (pthread_cond_timedwait(&pa_sem, &pa_mutex, &ts) == ETIMEDOUT) - { - locked = 1; - break; - } -#else - if (Pa_IsStreamActive(&pa_stream) < 0 && - (sys_getrealtime() - timebefore) > (POLL_TIMEOUT * 0.001)) - { - locked = 1; - break; - } - sys_microsleep(); - if (!pa_stream) /* sys_microsleep() may have closed device */ - return SENDDACS_NO; -#endif /* THREADSIGNAL */ - } -#ifdef THREADSIGNAL - pthread_mutex_unlock(&pa_mutex); -#endif - } - if (STUFF->st_inchannels && !locked) + /* read input */ + if (STUFF->st_inchannels) { sys_ringbuf_read(&pa_inring, conversionbuf, STUFF->st_inchannels*(DEFDACBLKSIZE*sizeof(float)), pa_inbuf); @@ -630,7 +567,6 @@ int pa_send_dacs(void) k++, fp++, fp3 += STUFF->st_inchannels) *fp = *fp3; } - #else /* FAKEBLOCKING */ /* write output */ if (STUFF->st_outchannels) @@ -648,55 +584,52 @@ int pa_send_dacs(void) k++, fp++, fp3 += STUFF->st_outchannels) *fp3 = *fp; if (Pa_WriteStream(pa_stream, conversionbuf, DEFDACBLKSIZE) != paNoError) - if (Pa_IsStreamActive(&pa_stream) < 0) - locked = 1; + if ((err = Pa_IsStreamActive(&pa_stream)) < 0) + goto try_reopen; } - + /* read input */ if (STUFF->st_inchannels) { if (Pa_ReadStream(pa_stream, conversionbuf, DEFDACBLKSIZE) != paNoError) - if (Pa_IsStreamActive(&pa_stream) < 0) - locked = 1; + if ((err = Pa_IsStreamActive(&pa_stream)) < 0) + goto try_reopen; for (j = 0, fp = STUFF->st_soundin, fp2 = conversionbuf; j < STUFF->st_inchannels; j++, fp2++) for (k = 0, fp3 = fp2; k < DEFDACBLKSIZE; k++, fp++, fp3 += STUFF->st_inchannels) *fp = *fp3; } - if (sys_getrealtime() - timebefore > 0.002) - { - rtnval = SENDDACS_SLEPT; - } + if ((sys_getrealtime() - timeref) > 0.002) + retval = SENDDACS_SLEPT; #endif /* FAKEBLOCKING */ pa_started = 1; memset(STUFF->st_soundout, 0, DEFDACBLKSIZE*sizeof(t_sample)*STUFF->st_outchannels); - if (locked) - { - PaError err = Pa_IsStreamActive(&pa_stream); - pd_error(0, "error %d: %s", err, Pa_GetErrorText(err)); - sys_close_audio(); - #ifdef __APPLE__ - /* TODO: the portaudio coreaudio implementation doesn't handle - re-connection, so suggest restarting */ + + return retval; + +try_reopen: + pd_error(0, "error %d: %s", err, Pa_GetErrorText(err)); + sys_close_audio(); + #ifdef __APPLE__ + /* TODO: the portaudio coreaudio implementation doesn't handle + re-connection, so suggest restarting */ + pd_error(0, "audio device not responding - closing audio"); + pd_error(0, "you may need to save and restart pd"); + #else + /* portaudio seems to handle this better on windows and linux */ + pd_error(0, "trying to reopen audio device"); + sys_reopen_audio(); /* try to reopen it */ + if (audio_isopen()) + pd_error(0, "successfully reopened audio device"); + else + { pd_error(0, "audio device not responding - closing audio"); - pd_error(0, "you may need to save and restart pd"); - #else - /* portaudio seems to handle this better on windows and linux */ - pd_error(0, "trying to reopen audio device"); - sys_reopen_audio(); /* try to reopen it */ - if (audio_isopen()) - pd_error(0, "successfully reopened audio device"); - else - { - pd_error(0, "audio device not responding - closing audio"); - pd_error(0, "reconnect and reselect it in the settings (or toggle DSP)"); - } - #endif - return SENDDACS_NO; - } - else return (rtnval); + pd_error(0, "reconnect and reselect it in the settings (or toggle DSP)"); + } + #endif + return SENDDACS_NO; } static char*pdi2devname(const PaDeviceInfo*pdi, char*buf, size_t bufsize) { From ec9ad0c7a6399e9947ea9e09c1c69ecdaa4ef170 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Fri, 10 Mar 2023 16:02:53 +0100 Subject: [PATCH 153/450] portaudio/jack: fix formatting --- src/s_audio_jack.c | 112 ++++++++++++++++++++++----------------------- src/s_audio_pa.c | 71 ++++++++++++---------------- 2 files changed, 85 insertions(+), 98 deletions(-) diff --git a/src/s_audio_jack.c b/src/s_audio_jack.c index 0a762ba53..288ace3af 100644 --- a/src/s_audio_jack.c +++ b/src/s_audio_jack.c @@ -94,7 +94,7 @@ static int jack_polling_callback(jack_nframes_t nframes, void *unused) if (infiforoom < nframes * STUFF->st_inchannels * sizeof(t_sample) || outfiforoom < nframes * STUFF->st_outchannels * sizeof(t_sample)) { - /* data late: output zeros, drop inputs, and leave FIFos untouched */ + /* data late: output zeros, drop inputs, and leave FIFOs untouched */ if (jack_started) jack_dio_error = 1; for (j = 0; j < STUFF->st_outchannels; j++) @@ -184,8 +184,7 @@ static int callbackprocess(jack_nframes_t nframes, void *arg) return 0; } -static int -jack_srate (jack_nframes_t srate, void *arg) +static int jack_srate(jack_nframes_t srate, void *arg) { const t_float oldrate = STUFF->st_dacsr; STUFF->st_dacsr = srate; @@ -194,8 +193,7 @@ jack_srate (jack_nframes_t srate, void *arg) return 0; } -static int -jack_bsize (jack_nframes_t bufsize, void *arg) +static int jack_bsize(jack_nframes_t bufsize, void *arg) { jack_blocksize = bufsize; return 0; @@ -203,61 +201,60 @@ jack_bsize (jack_nframes_t bufsize, void *arg) void glob_audio_setapi(void *dummy, t_floatarg f); -static void -jack_shutdown (void *arg) +static void jack_shutdown(void *arg) { - pd_error(0, "JACK: server shut down"); + pd_error(0, "JACK: server shut down"); - jack_deactivate (jack_client); - jack_client = NULL; - jack_blocksize = 0; + jack_deactivate (jack_client); + jack_client = NULL; + jack_blocksize = 0; - glob_audio_setapi(NULL, API_NONE); // set pd_whichapi 0 + glob_audio_setapi(NULL, API_NONE); // set pd_whichapi 0 } -static int jack_xrun(void* arg) { - jack_dio_error = 1; - return 0; +static int jack_xrun(void* arg) +{ + jack_dio_error = 1; + return 0; } - static char** jack_get_clients(void) { const char **jack_ports; - int tmp_client_name_size = jack_client_name_size ? jack_client_name_size() : CLIENT_NAME_SIZE_FALLBACK; + int tmp_client_name_size = jack_client_name_size ? + jack_client_name_size() : CLIENT_NAME_SIZE_FALLBACK; char* tmp_client_name = (char*)getbytes(tmp_client_name_size); int i,j; int num_clients = 0; regex_t port_regex; - jack_ports = jack_get_ports( jack_client, "", "", 0 ); - regcomp( &port_regex, "^[^:]*", REG_EXTENDED ); + jack_ports = jack_get_ports(jack_client, "", "", 0); + regcomp(&port_regex, "^[^:]*", REG_EXTENDED); jack_client_names[0] = NULL; /* Build a list of clients from the list of ports */ - for( i = 0; jack_ports[i] != NULL; i++ ) + for (i = 0; jack_ports[i] != NULL; i++) { int client_seen; regmatch_t match_info; - if(num_clients>=MAX_CLIENTS)break; - + if (num_clients >= MAX_CLIENTS) break; /* extract the client name from the port name, using a regex * that parses the clientname:portname syntax */ - regexec( &port_regex, jack_ports[i], 1, &match_info, 0 ); - memcpy( tmp_client_name, &jack_ports[i][match_info.rm_so], - match_info.rm_eo - match_info.rm_so ); + regexec(&port_regex, jack_ports[i], 1, &match_info, 0); + memcpy(tmp_client_name, &jack_ports[i][match_info.rm_so], + match_info.rm_eo - match_info.rm_so); tmp_client_name[ match_info.rm_eo - match_info.rm_so ] = '\0'; /* do we know about this port's client yet? */ client_seen = 0; - for( j = 0; j < num_clients; j++ ) - if( strcmp( tmp_client_name, jack_client_names[j] ) == 0 ) + for (j = 0; j < num_clients; j++) + if (strcmp(tmp_client_name, jack_client_names[j]) == 0) client_seen = 1; - if( client_seen == 0 ) + if (client_seen == 0) { jack_client_names[num_clients] = (char*)getbytes(strlen(tmp_client_name) + 1); @@ -266,19 +263,19 @@ static char** jack_get_clients(void) * it in spot 0 put it in spot 0 and move whatever * was already in spot 0 to the end. */ - if( strcmp( "alsa_pcm", tmp_client_name ) == 0 && num_clients > 0 ) + if (strcmp("alsa_pcm", tmp_client_name) == 0 && num_clients > 0) { - char* tmp; - /* alsa_pcm goes in spot 0 */ - tmp = jack_client_names[ num_clients ]; - jack_client_names[ num_clients ] = jack_client_names[0]; - jack_client_names[0] = tmp; - strcpy( jack_client_names[0], tmp_client_name); + char* tmp; + /* alsa_pcm goes in spot 0 */ + tmp = jack_client_names[num_clients]; + jack_client_names[num_clients] = jack_client_names[0]; + jack_client_names[0] = tmp; + strcpy( jack_client_names[0], tmp_client_name); } else { /* put the new client at the end of the client list */ - strcpy( jack_client_names[ num_clients ], tmp_client_name ); + strcpy(jack_client_names[num_clients], tmp_client_name); } num_clients++; } @@ -286,8 +283,8 @@ static char** jack_get_clients(void) /* for (i=0;i 96) return -1; - sprintf( regex_pattern, "%s:.*", client ); + sprintf(regex_pattern, "%s:.*", client); - jack_ports = jack_get_ports( jack_client, regex_pattern, - NULL, JackPortIsOutput); + jack_ports = jack_get_ports(jack_client, regex_pattern, + NULL, JackPortIsOutput); if (jack_ports) { for (i=0;jack_ports[i] != NULL && i < STUFF->st_inchannels;i++) if (jack_connect (jack_client, jack_ports[i], - jack_port_name (input_port[i]))) - pd_error(0, "JACK: cannot connect input ports %s -> %s", - jack_ports[i],jack_port_name (input_port[i])); + jack_port_name (input_port[i]))) + pd_error(0, "JACK: cannot connect input ports %s -> %s", + jack_ports[i],jack_port_name (input_port[i])); free(jack_ports); } - jack_ports = jack_get_ports( jack_client, regex_pattern, - NULL, JackPortIsInput); + jack_ports = jack_get_ports(jack_client, regex_pattern, + NULL, JackPortIsInput); if (jack_ports) { for (i=0;jack_ports[i] != NULL && i < STUFF->st_outchannels;i++) - if (jack_connect (jack_client, jack_port_name (output_port[i]), - jack_ports[i])) - pd_error(0, "JACK: cannot connect output ports %s -> %s", - jack_port_name (output_port[i]),jack_ports[i]); + if (jack_connect (jack_client, jack_port_name(output_port[i]), + jack_ports[i])) + pd_error(0, "JACK: cannot connect output ports %s -> %s", + jack_port_name (output_port[i]),jack_ports[i]); free(jack_ports); } @@ -333,9 +330,10 @@ static int jack_connect_ports(char* client) } -static void pd_jack_error_callback(const char *desc) { - pd_error(0, "JACKerror: %s", desc); - return; +static void pd_jack_error_callback(const char *desc) +{ + pd_error(0, "JACKerror: %s", desc); + return; } int jack_open_audio(int inchans, int outchans, t_audiocallback callback) @@ -479,10 +477,10 @@ int jack_open_audio(int inchans, int outchans, t_audiocallback callback) port_name, JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); if (!output_port[j]) { - pd_error(0, "JACK: can only register %d output ports (of %d requested)", - j, outchans); - STUFF->st_outchannels = outchans = j; - break; + pd_error(0, "JACK: can only register %d output ports (of %d requested)", + j, outchans); + STUFF->st_outchannels = outchans = j; + break; } } diff --git a/src/s_audio_pa.c b/src/s_audio_pa.c index 66c4eb836..8fa29c43e 100644 --- a/src/s_audio_pa.c +++ b/src/s_audio_pa.c @@ -225,10 +225,10 @@ static int pa_fifo_callback(const void *inputBuffer, } #endif /* FAKEBLOCKING */ -PaError pa_open_callback(double sampleRate, int inchannels, int outchannels, +PaError pa_open_callback(double samplerate, int inchannels, int outchannels, int framesperbuf, int nbuffers, int indeviceno, int outdeviceno, PaStreamCallback *callbackfn) { - long bytesPerSample; + long bytesPerSample; PaError err; PaStreamParameters instreamparams, outstreamparams; PaStreamParameters*p_instreamparams=0, *p_outstreamparams=0; @@ -253,13 +253,13 @@ PaError pa_open_callback(double sampleRate, int inchannels, int outchannels, instreamparams.suggestedLatency = outstreamparams.suggestedLatency = 0; #else instreamparams.suggestedLatency = outstreamparams.suggestedLatency = - nbuffers*framesperbuf/sampleRate; + nbuffers * framesperbuf / samplerate; #endif /* FAKEBLOCKING */ - if( inchannels>0 && indeviceno >= 0) - p_instreamparams=&instreamparams; - if( outchannels>0 && outdeviceno >= 0) - p_outstreamparams=&outstreamparams; + if (inchannels > 0 && indeviceno >= 0) + p_instreamparams = &instreamparams; + if (outchannels > 0 && outdeviceno >= 0) + p_outstreamparams = &outstreamparams; #ifdef _WIN32 /* set WASAPI options */ @@ -284,59 +284,48 @@ PaError pa_open_callback(double sampleRate, int inchannels, int outchannels, } #endif - err=Pa_IsFormatSupported(p_instreamparams, p_outstreamparams, sampleRate); - - if (paFormatIsSupported != err) + err = Pa_IsFormatSupported(p_instreamparams, p_outstreamparams, samplerate); + if (err != paFormatIsSupported) { /* check whether we have to change the numbers of channel and/or samplerate */ const PaDeviceInfo* info = 0; - double inRate=0, outRate=0; + double inrate = 0, outrate = 0; - if (inchannels>0) + if (inchannels > 0) { - if (NULL != (info = Pa_GetDeviceInfo( instreamparams.device ))) + if ((info = Pa_GetDeviceInfo(instreamparams.device)) != NULL) { - inRate=info->defaultSampleRate; - - if(info->maxInputChannelsmaxInputChannels; + inrate = info->defaultSampleRate; + if (info->maxInputChannels < inchannels) + instreamparams.channelCount = info->maxInputChannels; } } - if (outchannels>0) + if (outchannels > 0) { - if (NULL != (info = Pa_GetDeviceInfo( outstreamparams.device ))) + if ((info = Pa_GetDeviceInfo(outstreamparams.device)) != NULL) { - outRate=info->defaultSampleRate; - - if(info->maxOutputChannelsmaxOutputChannels; + outrate = info->defaultSampleRate; + if (info->maxOutputChannels < outchannels) + outstreamparams.channelCount = info->maxOutputChannels; } } if (err == paInvalidSampleRate) { - double oldrate = sampleRate; - sampleRate = outRate > 0 ? outRate : inRate; + double oldrate = samplerate; + samplerate = outrate > 0 ? outrate : inrate; logpost(0, PD_NORMAL, "warning: requested samplerate %d not supported, using %d.", - (int)oldrate, (int)sampleRate); + (int)oldrate, (int)samplerate); } - err=Pa_IsFormatSupported(p_instreamparams, p_outstreamparams, - sampleRate); - if (paFormatIsSupported != err) - goto error; + err = Pa_IsFormatSupported(p_instreamparams, p_outstreamparams, samplerate); + if (err != paFormatIsSupported) + goto error; } - err = Pa_OpenStream( - &pa_stream, - p_instreamparams, - p_outstreamparams, - sampleRate, - framesperbuf, - paNoFlag, /* portaudio will clip for us */ - callbackfn, - 0); + err = Pa_OpenStream(&pa_stream, p_instreamparams, p_outstreamparams, + samplerate, framesperbuf, paNoFlag, callbackfn, 0); if (err != paNoError) goto error; @@ -348,7 +337,7 @@ PaError pa_open_callback(double sampleRate, int inchannels, int outchannels, pa_close_audio(); goto error; } - STUFF->st_dacsr=sampleRate; + STUFF->st_dacsr = samplerate; return paNoError; error: pa_stream = NULL; @@ -470,7 +459,7 @@ int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin, } pa_started = 0; pa_nbuffers = nbuffers; - if ( err != paNoError ) + if (err != paNoError) { pd_error(0, "error opening audio: %s", Pa_GetErrorText(err)); /* Pa_Terminate(); */ From d4978a4c9137e44725c3cfb93e35053d6a66f1ea Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Fri, 9 Sep 2022 15:30:10 +0200 Subject: [PATCH 154/450] portaudio/jack: for THREADSIGNAL, only wait for the semaphore if we're really idle. --- src/m_sched.c | 2 +- src/s_audio_jack.c | 5 +++++ src/s_audio_pa.c | 7 ++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/m_sched.c b/src/m_sched.c index 717561170..6ae7be7b1 100644 --- a/src/m_sched.c +++ b/src/m_sched.c @@ -292,7 +292,7 @@ will now sleep. */ int (*sys_idlehook)(void); /* when audio is idle, see to GUI and other stuff */ -static int sched_idletask( void) +int sched_idletask(void) { static int sched_nextmeterpolltime, sched_nextpingtime; int rtn = 0; diff --git a/src/s_audio_jack.c b/src/s_audio_jack.c index 288ace3af..610ca6525 100644 --- a/src/s_audio_jack.c +++ b/src/s_audio_jack.c @@ -542,6 +542,8 @@ void jack_close_audio(void) #endif } +int sched_idletask(void); + int jack_send_dacs(void) { t_sample *muxbuffer; @@ -562,6 +564,9 @@ int jack_send_dacs(void) (long)(STUFF->st_outchannels * DEFDACBLKSIZE*sizeof(t_sample)))) { #ifdef THREADSIGNAL + if (sched_idletask()) + continue; + /* only go to sleep if there is nothing else to do. */ sys_semaphore_wait(jack_sem); retval = SENDDACS_SLEPT; #else diff --git a/src/s_audio_pa.c b/src/s_audio_pa.c index 8fa29c43e..127233ade 100644 --- a/src/s_audio_pa.c +++ b/src/s_audio_pa.c @@ -492,6 +492,8 @@ void pa_close_audio(void) #endif } +int sched_idletask(void); + int pa_send_dacs(void) { PaError err; @@ -501,7 +503,7 @@ int pa_send_dacs(void) int j, k; int retval = SENDDACS_YES; double timeref = sys_getrealtime(); - + /* this shouldn't really happen... */ if (!pa_stream || (!STUFF->st_inchannels && !STUFF->st_outchannels)) return (SENDDACS_NO); @@ -516,6 +518,9 @@ int pa_send_dacs(void) (long)(STUFF->st_outchannels * DEFDACBLKSIZE*sizeof(t_sample)))) { #ifdef THREADSIGNAL + if (sched_idletask()) + continue; + /* only go to sleep if there is nothing else to do. */ if (!sys_semaphore_waitfor(pa_sem, POLL_TIMEOUT)) { /* timed out -> check stream */ From 962886671bd100310afd1b877733356f1047423c Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Sat, 10 Sep 2022 14:09:55 +0200 Subject: [PATCH 155/450] portaudio/jack: enable THREADSIGNAL by default --- src/s_audio_jack.c | 2 +- src/s_audio_pa.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/s_audio_jack.c b/src/s_audio_jack.c index 610ca6525..b25d50673 100644 --- a/src/s_audio_jack.c +++ b/src/s_audio_jack.c @@ -50,7 +50,7 @@ #define MAX_ALLOCA_SAMPLES 16*1024 /* enable thread signaling instead of polling */ -#if 0 +#if 1 #define THREADSIGNAL #endif diff --git a/src/s_audio_pa.c b/src/s_audio_pa.c index 127233ade..0989b5555 100644 --- a/src/s_audio_pa.c +++ b/src/s_audio_pa.c @@ -44,7 +44,7 @@ #endif /* enable thread signaling instead of polling */ -#if 0 +#if 1 #define THREADSIGNAL #endif From 3d44f7d91d7be54efd66352566e8881e7e24a65e Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Sun, 7 Apr 2024 12:16:11 +0200 Subject: [PATCH 156/450] fix startup not to wait for font info before loading patches and sending startup msgs --- src/s_inter.c | 30 ++++++++++---- src/s_main.c | 111 ++++++++++++++++++++------------------------------ 2 files changed, 67 insertions(+), 74 deletions(-) diff --git a/src/s_inter.c b/src/s_inter.c index 857b70a9a..bce79c7d0 100644 --- a/src/s_inter.c +++ b/src/s_inter.c @@ -1786,16 +1786,12 @@ static void glist_maybevis(t_glist *gl) } } -int sys_startgui(const char *libdir) + /* this is called from main when GUI has given us out font metrics, + so that we can now draw all "visible" canvases. These include all + root canvases and all subcanvases that already believe they're visible. */ +void sys_doneglobinit( void) { t_canvas *x; - stderr_isatty = isatty(2); - for (x = pd_getcanvaslist(); x; x = x->gl_next) - canvas_vis(x, 0); - INTER->i_havegui = 1; - INTER->i_guihead = INTER->i_guitail = 0; - if (sys_do_startgui(libdir)) - return (-1); for (x = pd_getcanvaslist(); x; x = x->gl_next) if (strcmp(x->gl_name->s_name, "_float_template") && strcmp(x->gl_name->s_name, "_float_array_template") && @@ -1804,6 +1800,24 @@ int sys_startgui(const char *libdir) glist_maybevis(x); canvas_vis(x, 1); } +} + + /* start the GUI up. Before we actually draw our "visible" windows + we have to wait for the GUI to give us our font metrics. LATER + it would be cool to figure out what metrics we really need and tell + the GUI - that way we can support arbitrary zoom with appropriate font + sizes. And/or: if we ever move definitively to a vector-based GUI + lib we might be able to skip this step altogether. */ +int sys_startgui(const char *libdir) +{ + t_canvas *x; + stderr_isatty = isatty(2); + for (x = pd_getcanvaslist(); x; x = x->gl_next) + canvas_vis(x, 0); + INTER->i_havegui = 1; + INTER->i_guihead = INTER->i_guitail = 0; + if (sys_do_startgui(libdir)) + return (-1); return (0); } diff --git a/src/s_main.c b/src/s_main.c index 92d4d167c..1343e377c 100644 --- a/src/s_main.c +++ b/src/s_main.c @@ -49,6 +49,7 @@ void sys_addhelppath(char *p); void alsa_adddev(const char *name); #endif int sys_oktoloadfiles(int done); +void sys_doneglobinit( void); int sys_debuglevel; int sys_verbose; @@ -123,9 +124,17 @@ static t_fontinfo sys_fontspec[] = { {16, 10, 19}, {24, 14, 29}, {36, 22, 44}}; #define NFONT (sizeof(sys_fontspec)/sizeof(*sys_fontspec)) #define NZOOM 2 -static t_fontinfo sys_gotfonts[NZOOM][NFONT]; -/* here are the actual font size structs on msp's systems: + /* here are actual measured font sizes; they are overwritten from the + GUI if/when the GUI starts up. */ +static t_fontinfo sys_gotfonts[NZOOM][NFONT] = { + {{8, 5, 11}, {10, 6, 13}, {12, 7, 16}, {16, 10, 19}, {24, 14, 29}, + {36, 22, 44}}, + {{16, 10, 22}, {20, 12, 26}, {24, 14, 32}, {32, 20, 38}, {48, 28, 58}, + {72, 44, 88}} +}; + +/* here are some measured font size structs for example: MSW: font 8 5 9 8 5 11 font 10 7 13 10 6 13 @@ -260,7 +269,8 @@ static void openit(const char *dirname, const char *filename, const char *args) pd_error(0, "%s: can't open", filename); } -/* this is called from the gui process. The first argument is the cwd, and +/* this is called from the gui process. The first argument is ignored, +the second one flags an old version of TK which for back compatibility, and succeeding args give the widths and heights of known fonts. We wait until these are known to open files and send messages specified on the command line. We ask the GUI to specify the "cwd" in case we don't have a local OS to get it @@ -270,9 +280,6 @@ open(), read(), etc, calls to be served somehow from the GUI too. */ void glob_initfromgui(void *dummy, t_symbol *s, int argc, t_atom *argv) { - const char *cwd = atom_getsymbolarg(0, argc, argv)->s_name; - t_patchlist *pl; - t_namelist *nl; unsigned int i; int did_fontwarning = 0; int j; @@ -292,7 +299,8 @@ void glob_initfromgui(void *dummy, t_symbol *s, int argc, t_atom *argv) height = (j+1)*sys_fontspec[i].fi_height; if (!did_fontwarning) { - logpost(NULL, PD_VERBOSE, "ignoring invalid font-metrics from GUI"); + logpost(NULL, + PD_VERBOSE, "ignoring invalid font-metrics from GUI"); did_fontwarning = 1; } } @@ -305,60 +313,8 @@ void glob_initfromgui(void *dummy, t_symbol *s, int argc, t_atom *argv) sys_gotfonts[j][i].fi_height); #endif } - /* load dynamic libraries specified with "-lib" args */ - if (sys_oktoloadfiles(0)) - { - for (nl = STUFF->st_externlist; nl; nl = nl->nl_next) - if (!sys_load_lib(0, nl->nl_string)) - post("%s: can't load library", nl->nl_string); - sys_oktoloadfiles(1); - } - /* open patches specifies with "-open" args */ - for (pl = sys_openlist; pl; pl = pl->pl_next) - openit(cwd, pl->pl_file, pl->pl_args); - patchlist_free(sys_openlist); - sys_openlist = 0; - /* send messages specified with "-send" args */ - for (nl = sys_messagelist; nl; nl = nl->nl_next) - { - t_binbuf *b = binbuf_new(); - binbuf_text(b, nl->nl_string, strlen(nl->nl_string)); - binbuf_eval(b, 0, 0, 0); - binbuf_free(b); - } - namelist_free(sys_messagelist); - sys_messagelist = 0; -} - -// font char metric triples: pointsize width(pixels) height(pixels) -static int defaultfontshit[] = { - 8, 5, 11, 10, 6, 13, 12, 7, 16, 16, 10, 19, 24, 14, 29, 36, 22, 44, - 16, 10, 22, 20, 12, 26, 24, 14, 32, 32, 20, 38, 48, 28, 58, 72, 44, 88 -}; // normal & zoomed (2x) -#define NDEFAULTFONT (sizeof(defaultfontshit)/sizeof(*defaultfontshit)) - -static t_clock *sys_fakefromguiclk; -int socket_init(void); -static void sys_fakefromgui(void) -{ - /* fake the GUI's message giving cwd and font sizes in case - we aren't starting the gui. */ - t_atom zz[NDEFAULTFONT+2]; - int i; - char buf[MAXPDSTRING]; -#ifdef _WIN32 - if (GetCurrentDirectory(MAXPDSTRING, buf) == 0) - strcpy(buf, "."); -#else - if (!getcwd(buf, MAXPDSTRING)) - strcpy(buf, "."); -#endif - SETSYMBOL(zz, gensym(buf)); - SETFLOAT(zz+1, 0); - for (i = 0; i < (int)NDEFAULTFONT; i++) - SETFLOAT(zz+i+2, defaultfontshit[i]); - glob_initfromgui(0, 0, 2+NDEFAULTFONT, zz); - clock_free(sys_fakefromguiclk); + sys_doneglobinit(); /* tell s_inter.c to vis our canvases now that + we think we know the actual font metrics the GUI will use. */ } static void sys_afterargparse(void); @@ -369,6 +325,8 @@ int sys_main(int argc, const char **argv) { int i, noprefs; const char *prefsfile = ""; + t_namelist *nl; + t_patchlist *pl; sys_externalschedlib = 0; sys_extraflags = 0; #ifdef PD_DEBUG @@ -445,11 +403,32 @@ int sys_main(int argc, const char **argv) } sys_setsignalhandlers(); sys_afterargparse(); /* post-argparse settings */ - if (sys_dontstartgui) - clock_set((sys_fakefromguiclk = - clock_new(0, (t_method)sys_fakefromgui)), 0); - else if (sys_startgui(sys_libdir->s_name)) /* start the gui */ - return (1); + /* load dynamic libraries specified with "-lib" args */ + if (sys_oktoloadfiles(0)) + { + for (nl = STUFF->st_externlist; nl; nl = nl->nl_next) + if (!sys_load_lib(0, nl->nl_string)) + post("%s: can't load library", nl->nl_string); + sys_oktoloadfiles(1); + } + /* open patches specifies with "-open" args */ + for (pl = sys_openlist; pl; pl = pl->pl_next) + openit(".", pl->pl_file, pl->pl_args); + patchlist_free(sys_openlist); + sys_openlist = 0; + /* send messages specified with "-send" args */ + for (nl = sys_messagelist; nl; nl = nl->nl_next) + { + t_binbuf *b = binbuf_new(); + binbuf_text(b, nl->nl_string, strlen(nl->nl_string)); + binbuf_eval(b, 0, 0, 0); + binbuf_free(b); + } + namelist_free(sys_messagelist); + sys_messagelist = 0; + if (!sys_dontstartgui && + sys_startgui(sys_libdir->s_name)) /* start the gui */ + return (1); if (sys_hipriority) sys_setrealtime(sys_libdir->s_name); /* set desired process priority */ if (sys_externalschedlib) From 88a4ff1df5613f83be6232695d80e02a343bbd57 Mon Sep 17 00:00:00 2001 From: msp Date: Sun, 7 Apr 2024 20:49:45 +0200 Subject: [PATCH 157/450] bug fixes for opening and closing guis dynamically and a couple of random mac problems --- libpd/Makefile | 2 +- src/s_inter.c | 1 + src/s_main.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libpd/Makefile b/libpd/Makefile index 9ab33d5c3..82d8f7ed5 100644 --- a/libpd/Makefile +++ b/libpd/Makefile @@ -11,7 +11,7 @@ PLATFORM_ARCH ?= $(shell $(CC) -dumpmachine | sed -e 's,-.*,,') ifeq ($(UNAME), Darwin) # Mac SOLIB_EXT = dylib - PLATFORM_CFLAGS = -DHAVE_LIBDL -DHAVE_MACHINE_ENDIAN_H + PLATFORM_CFLAGS = -DHAVE_LIBDL -DHAVE_MACHINE_ENDIAN_H -D_DARWIN_UNLIMITED_SELECT PLATFORM_LDFLAGS = -dynamiclib -ldl -Wl,-no_compact_unwind ifeq ($(FAT_LIB), true) # macOS universal "fat" lib compilation diff --git a/src/s_inter.c b/src/s_inter.c index bce79c7d0..f8cb7194d 100644 --- a/src/s_inter.c +++ b/src/s_inter.c @@ -1816,6 +1816,7 @@ int sys_startgui(const char *libdir) canvas_vis(x, 0); INTER->i_havegui = 1; INTER->i_guihead = INTER->i_guitail = 0; + INTER->i_waitingforping = 0; if (sys_do_startgui(libdir)) return (-1); return (0); diff --git a/src/s_main.c b/src/s_main.c index 1343e377c..4c5da061a 100644 --- a/src/s_main.c +++ b/src/s_main.c @@ -5,6 +5,7 @@ #include "m_pd.h" #include "m_imp.h" #include "s_stuff.h" +#include "s_net.h" #include #include #include From 2c3e60052c06a927e5421b321b198efdd9485b41 Mon Sep 17 00:00:00 2001 From: porres Date: Sun, 7 Apr 2024 18:05:33 -0300 Subject: [PATCH 158/450] fix [adsr] abstraction from audio examples --- doc/3.audio.examples/D05.envelope.pitch.pd | 69 ++++++++-------- doc/3.audio.examples/adsr.pd | 95 ++++++++++------------ 2 files changed, 76 insertions(+), 88 deletions(-) diff --git a/doc/3.audio.examples/D05.envelope.pitch.pd b/doc/3.audio.examples/D05.envelope.pitch.pd index 66f030836..e5892fefe 100644 --- a/doc/3.audio.examples/D05.envelope.pitch.pd +++ b/doc/3.audio.examples/D05.envelope.pitch.pd @@ -1,8 +1,8 @@ -#N canvas 475 41 651 705 12; +#N canvas 482 23 613 689 12; #X declare -stdpath ./; -#X obj 63 166 r trigger; -#X obj 63 214 tabread4~ dbtorms; -#X obj 63 268 *~; +#X obj 68 164 r trigger; +#X obj 68 242 tabread4~ dbtorms; +#X obj 68 286 *~; #N canvas 513 374 809 554 make-table 0; #X msg 67 39 bang; #X obj 67 68 t b b; @@ -83,34 +83,35 @@ #X connect 32 1 33 1; #X connect 37 0 29 1; #X connect 37 1 32 0; -#X restore 333 321 pd make-table; -#X text 78 22 PITCH ENVELOPES; -#X text 78 57 For pitch envelopes \, unlike amplitude envelopes \, discontinuities are allowed and sometimes you would rather the envelope generator actually jump to zero when it's triggered. The "adsr" object does this for you if you send a negative trigger instead of a positive one:; -#X obj 255 183 r trigger2; -#X obj 255 255 tabread4~ mtof; -#X obj 255 279 osc~; -#X msg 73 411 \; pd dsp 1 \; trigger 1 \; trigger2 1; -#X msg 236 411 \; pd dsp 1 \; trigger 1 \; trigger2 -1; -#X msg 429 411 \; pd dsp 1 \; trigger 0 \; trigger2 0; -#X obj 255 231 +~ 69; -#X text 322 431 restarting; -#X text 322 444 pitch env; -#X text 93 518 We have added a new table \, mtof \, for converting audio signals from pitch to frequency. Its range is 1-127 \, so you want to add a base pitch in before you start reading from it., f 61; -#X text 93 573 This is an extreme use of pitch enveloping. In a real situation you might want an envelope controlling vibrato depth or the like instead of straight pitch., f 61; -#X obj 63 190 adsr 100 50 200 90 1000; -#X obj 255 207 adsr 20 200 100 100 1000; -#X text 399 646 updated for Pd version 0.37; -#X obj 63 319 output~; -#X text 152 437 <= attack; -#X text 322 417 <= attack; -#X text 510 430 <= release; -#X obj 460 22 declare -stdpath ./; -#X connect 0 0 17 0; +#X restore 338 322 pd make-table; +#X text 43 20 PITCH ENVELOPES; +#X obj 260 164 r trigger2; +#X obj 260 276 tabread4~ mtof; +#X obj 260 303 osc~; +#X msg 38 429 \; pd dsp 1 \; trigger 1 \; trigger2 1; +#X msg 211 429 \; pd dsp 1 \; trigger 1 \; trigger2 -1; +#X msg 404 429 \; pd dsp 1 \; trigger 0 \; trigger2 0; +#X obj 260 245 +~ 69; +#X text 297 449 restarting; +#X text 297 462 pitch env; +#X text 62 583 This is an extreme use of pitch enveloping. In a real situation you might want an envelope controlling vibrato depth or the like instead of straight pitch., f 61; +#X obj 68 208 adsr 100 50 200 90 1000; +#X obj 260 208 adsr 20 200 100 100 1000; +#X text 394 645 updated for Pd version 0.37; +#X obj 68 327 output~; +#X obj 403 20 declare -stdpath ./; +#X text 117 455 <-- attack; +#X text 297 435 <-- attack; +#X text 485 453 <-- release; +#X text 34 63 For pitch envelopes \, unlike amplitude envelopes \, discontinuities are allowed and sometimes you would rather the envelope generator actually jump to zero when it's triggered. The [adsr] abstraction does this for you if you send a negative trigger instead of a positive one:, f 65; +#X text 62 528 We have added a new table ("mtof") for converting audio signals from pitch to frequency. Its range is 1-127 \, so you want to add a base pitch in before you start reading from it., f 61; +#X text 448 208 <-- click to open and check the inner workings of the abstraction., f 17; +#X connect 0 0 15 0; #X connect 1 0 2 0; -#X connect 2 0 20 0; -#X connect 6 0 18 0; -#X connect 7 0 8 0; -#X connect 8 0 2 1; -#X connect 12 0 7 0; -#X connect 17 0 1 0; -#X connect 18 0 12 0; +#X connect 2 0 18 0; +#X connect 5 0 16 0; +#X connect 6 0 7 0; +#X connect 7 0 2 1; +#X connect 11 0 6 0; +#X connect 15 0 1 0; +#X connect 16 0 11 0; diff --git a/doc/3.audio.examples/adsr.pd b/doc/3.audio.examples/adsr.pd index e65061e5b..db44c02de 100644 --- a/doc/3.audio.examples/adsr.pd +++ b/doc/3.audio.examples/adsr.pd @@ -1,4 +1,4 @@ -#N canvas 377 23 872 651 12; +#N canvas 351 82 872 651 12; #X obj 129 120 inlet; #X obj 438 160 inlet; #X text 125 95 trigger; @@ -6,26 +6,18 @@ #X obj 190 273 f \$1; #X obj 495 160 inlet; #X obj 422 285 del \$2; -#X obj 595 456 line~; +#X obj 595 476 line~; #X obj 446 313 f \$4; #X obj 545 160 inlet; #X obj 600 160 inlet; #X obj 656 160 inlet; #X msg 129 179 stop; #X obj 596 315 pack 0 \$5; -#X text 438 138 level; #X obj 485 364 * \$1; -#X obj 595 486 outlet~; -#X text 57 135 if zero; -#X text 57 152 release; -#X text 36 169 and cancel; -#X text 71 186 decay; +#X obj 595 536 outlet~; #X text 667 307 on release ramp; #X text 668 324 back to zero; #X obj 446 338 * 0.01; -#X text 82 564 Objects such as "f" and "pack" can be given dollar sign -arguments to initialize their contents from adsr's creation arguments. -Inlets are supplied to change them on the fly.; #X text 122 35 ADSR ENVELOPE; #X text 491 138 attack; #X text 546 138 decay; @@ -36,65 +28,60 @@ Inlets are supplied to change them on the fly.; #X obj 218 131 t b b; #X msg 152 299 0; #X text 58 266 ATTACK:; -#X text 82 474 When you send this patch a positive trigger it schedules -a line~ to do an attack and decay \, and if zero \, it starts the release -ramp.; -#X text 596 564 Updated for Pd version 0.37; +#X text 596 582 Updated for Pd version 0.37; #X text 279 98 test for negative trigger; #X text 277 122 if so \, zero; #X text 278 137 the output; #X text 300 174 in any case; -#X text 442 122 peak; #X text 303 158 ... do this; -#X text 82 526 Negative triggers cause the output to jump to zero and -then attack (instead of attacking from the current location).; -#X text 343 20 Arguments: level \, attack time \, decay time \, sustain -level \, release time. A \, D \, and R are in msec and S is in percent. -This patch is used as an abstraction in various examples.; -#X obj 596 356 s line; -#X obj 485 419 s line; -#X obj 190 328 s line; -#X obj 595 419 r line; -#X text 309 374 multiply by peak level and pack with decay time, f -24; +#X text 105 515 Negative triggers cause the output to jump to zero and then attack (instead of attacking from the current location)., f 50; +#X text 343 20 Arguments: level \, attack time \, decay time \, sustain level \, release time. A \, D \, and R are in msec and S is in percent. This patch is used as an abstraction in various examples.; +#X text 309 374 multiply by peak level and pack with decay time, f 24; #X text 292 281 on attack \, set a delay for sustain, f 17; #X text 297 319 recall sustain value convert from percent, f 20; -#X text 57 288 optionally bash to zero, f 12; -#X text 21 326 then recall peak level and pack with attack time and -send to line~, f 22; -#X text 387 420 send to line~; -#X text 645 356 send to line~; -#X text 649 412 get attack/decay/release lines, f 23; -#X text 644 456 generate envelope; +#X text 58 290 optionally bash to zero, f 12; +#X text 664 476 generate envelope; #X obj 263 164 b; #X obj 190 298 pack f \$2; #X obj 485 388 pack f \$3; +#X text 675 356 send to [line~]; +#X obj 596 356 s \$0-line; +#X obj 485 419 s \$0-line; +#X text 367 420 send to [line~]; +#X text 669 422 get attack \, decay and release lines, f 18; +#X obj 190 328 s \$0-line; +#X text 105 458 When you send this patch a positive trigger it schedules a [line~] to do an attack and decay \, and if zero \, it starts the release ramp., f 50; +#X text 105 568 Objects such as [f] and [pack] can be given dollar sign arguments to initialize their contents from [adsr]'s creation arguments. Inlets are supplied to change them on the fly., f 50; +#X text 41 135 if zero \, release and cancel decay, f 10; +#X text 27 327 then recall peak level and pack with attack time and send to [line~], f 24; +#X text 442 122 peak level, f 5; +#X obj 595 429 r \$0-line; #X connect 0 0 3 0; #X connect 1 0 4 1; -#X connect 1 0 15 1; +#X connect 1 0 14 1; #X connect 3 0 12 0; #X connect 3 0 13 0; -#X connect 3 1 31 0; -#X connect 4 0 59 0; +#X connect 3 1 25 0; +#X connect 4 0 43 0; #X connect 5 0 6 1; -#X connect 5 0 59 1; +#X connect 5 0 43 1; #X connect 6 0 8 0; -#X connect 7 0 16 0; -#X connect 8 0 23 0; -#X connect 9 0 60 1; +#X connect 7 0 15 0; +#X connect 8 0 18 0; +#X connect 9 0 44 1; #X connect 10 0 8 1; #X connect 11 0 13 1; #X connect 12 0 6 0; -#X connect 13 0 45 0; -#X connect 15 0 60 0; -#X connect 23 0 15 0; -#X connect 31 0 32 0; -#X connect 31 1 58 0; -#X connect 32 0 58 0; -#X connect 32 1 33 0; -#X connect 33 0 47 0; -#X connect 48 0 7 0; -#X connect 58 0 4 0; -#X connect 58 0 6 0; -#X connect 59 0 47 0; -#X connect 60 0 46 0; +#X connect 13 0 46 0; +#X connect 14 0 44 0; +#X connect 18 0 14 0; +#X connect 25 0 26 0; +#X connect 25 1 42 0; +#X connect 26 0 42 0; +#X connect 26 1 27 0; +#X connect 27 0 50 0; +#X connect 42 0 4 0; +#X connect 42 0 6 0; +#X connect 43 0 50 0; +#X connect 44 0 47 0; +#X connect 56 0 7 0; From 88255fefbeecde5124016bee38d5dafbcec6899c Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 8 Apr 2024 00:13:59 -0300 Subject: [PATCH 159/450] some more minor revisions to the text in the manual mostly chapter 2 again.... hopefully just a last one before it all gets merged --- doc/1.manual/index.htm | 15 ++-- doc/1.manual/x2.htm | 165 +++++++++++++++++++++-------------------- 2 files changed, 92 insertions(+), 88 deletions(-) diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index 25f1a380a..63ccc172f 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -18,12 +18,13 @@

    Pd Manual

    -This is the Manual for Pd, a patchable environment for audio -analysis, synthesis, and processing, -with a rich set of multimedia capabilities. The latest version of this page -can be found at: - - http://msp.ucsd.edu/software.html. +This is the Manual for Pd (Pure Data), a patchable environment for audio analysis, +synthesis and digital signal processing. Pd can also be extended via ecternals to +include yet more computer music features, multimedia capabilities and more. The +latest version of this page can be found at: + +http://msp.ucsd.edu/software.html. +

    1. Introduction
        @@ -116,8 +117,6 @@

        Pd Manual

      - -
    2. Externals
        diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index bfb40106d..eadc5aa89 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -33,25 +33,24 @@

        Pd Manual chapter 2: Theory of operation

        2.1. Overview

        -

        Pd is a real-time graphical programming environment designed for audio processing, -but it can be expanded to multimedia processing and more. Pd resembles the MAX system -but is much simpler and more portable. For example, with Peter Brinkmann's libpd you -can have Pure Data as an embeddable audio synthesis library. Additionally, in its origin, -Pd was designed to offer a unique experimental feature not found in MAX, allowing users -to define and access data structures in innovative ways, with the ability to attach shapes -and colors to the data in order to visualize it and/or edit it graphically (see section -2.10 Data Structures for details.) - +

        Pd (Pure Data) is a real-time graphical programming environment designed for audio +processing that can be expanded to multimedia processing and more. Pd resembles the +MAX system but is much simpler and more portable. For example, with Peter Brinkmann's +libpd you can have Pure Data as an embeddable audio synthesis library. Additionally, +in its origin, Pd was designed to offer a unique experimental feature not found in MAX, +allowing users to define and access data structures in innovative ways, with the ability +to attach shapes and colors to the data in order to visualize it and/or edit it graphically +(see section 2.10 Data Structures for details.)

        Despite its lightweight and portable nature, Pd offers a wide range of external packages that enhance its capabilities, primarily focusing on audio and control -processing. These include notable extensions like ceammc, cyclone, else, fftease, -iemlib, pmpd, TimbreID, zexy, and many more. External libraries that add graphical -processing include Mark Dank's GEM package which expands Pd to be used for simultaneous -computer animation and Zack Lee's Ofelia that allows you to use openFrameworks and Lua -within Pd for creating audiovisual artwork or multimedia applications such as games. -For details on installing and managing packages, refer to the -Externals chapter. +processing. These include notable extensions like "Ceammc", "Cyclone", "ELSE", +"FFTease", "IEMlib", "Pmpd", "TimbreID", "Zexy" and many more. External libraries that +add graphical processing include Mark Dank's GEM package which expands Pd to be used +for simultaneous computer animation and Zack Lee's "Ofelia" that allows you to use +openFrameworks and the Lua programing language within Pd for creating audiovisual artwork +or multimedia applications such as games. For details on installing and managing packages, +refer to the Externals chapter.

        2.1.1. The main window, canvases, and printout

        @@ -64,34 +63,35 @@

        2.1.1. The main window, canvases, and printout

        At the top, you'll see the menu entries: File, Edit, Put, Find, Media, Window and Help (on Macs, this is shown -at a top bar on the screen and there is an additional first Pd menu entry). -On the upper right, there is a "DSP" toggle box to turn audio processing on and off -globally. When "DSP" is on, Pd is computing audio samples in realtime for all open -patches (whether they are visible or not). Turning off "DSP" halts the computation -and releases any audio devices that Pure Data is utilizing. You can configure audio -devices in the "Audio preferences" as described in the next -chapter. - -

        The Media menu offers shortcuts to toggle audio on and off. Use -Ctrl + / (Control key on PCs or Command key on Apple -computers plus the '/' key) to turn audio on, and Ctrl + . to turn -it off. You can check input RMS audio level if you select "Test Audio and MIDI" and -make other Audio and MIDI tests (read more about this in 3.1. -Audio and MIDI). +at a top bar on the screen, and there is an additional first Pd menu entry, +as it's common for all apps in macOS). + +

        On the upper right, there is a "DSP" toggle box, which stands for "Digital Signal +Processing" and turns audio processing on and off globally. When "DSP" is on, Pd is +computing audio samples in realtime for all open patches (whether they are visible +or not). Turning off "DSP" halts the computation and releases any audio devices that +Pure Data is utilizing. You can configure audio devices in the "Audio preferences" +as described in the next chapter. + +

        The Media menu offers shortcuts to toggle DSP on and off. Use Ctrl + / +(Control key on PCs or Command key on Apple computers plus the '/' key) +to turn audio processing on, and Ctrl + . to turn it off. You can check input RMS +audio level if you select "Test Audio and MIDI" and make other Audio and MIDI tests (read more +about this in 3.1. Audio and MIDI).

        media menu

        -

        The lower part of the Pd window is an area for printout from the output of boxes -in patches and for messages from Pd itself (such as errors). If the Pd window is -focused, the menus and console font size can be changed using the 'Font' dialog +

        The lower part of the Pd window is a console area for printout from the output of +boxes in patches and for messages from Pd itself (such as errors). If the Pd window is +focused, the font size for menus and printout can be changed using the 'Font' dialog entry in the Edit menu as shown below. Make your adjustments if you are having trouble reading on HiDPI screens. in the Edit menu you can also clear all messages printed in the Pd window with the 'Clear Console' entry (Shift + Ctrl + L shortcut). On the Window menu you find the 'Pd Window' entry (with the Ctrl + R shortcut), which brings the Pd window to the front or -sends it behind the window in focus. +sends it behind and brings back to focus the last focused window.

        edit menu @@ -117,26 +117,25 @@

        2.1.1. The main window, canvases, and printout

        simple patch

        -

        There are four text boxes in this patch: a number box (showing zero), -an object box showing "print" and two comments (not a proper 'box' visually, -but counts as a "box type"). The number box is connected to the object box, -with the output of the number box feeding into the input of the [print] object -box. Boxes may have zero or more inputs and/or outputs, with the inputs on top -and the outputs on the bottom. When clicking and dragging on the number box, -the values are printed in the main "Pd" window. +

        There are four text boxes in Pd, all shown in this patch: a number box +(showing zero), an object box showing "print" and two comments (which counts as +a "box type" even thought it's not a proper 'box' visually). The number box is +connected to the object box, with the output of the number box feeding into the +input of the [print] object box. Boxes may have zero or more inputs and/or outputs, +with the inputs on top and the outputs on the bottom. When clicking and dragging on +the number box, the values are printed in the main "Pd" window.

        2.1.2. Object boxes

        -

        Pd patches can have four types of boxes: object, message, GUI and -comment. The Put menu (shown later in -Creating boxes) offers a list of all boxes. When you insert a new object box, -it is empty and presented with a dashed border before creation. +

        The object box loads an instance of a class in your patch. You can create an +object box from the Put menu. When you insert a new object box, it is empty +and presented with a dashed border before creation.

        dashed box

        -

        You only create a particular object by entering text into the box. +

        You only create a particular object by entering text into the object box. The text consists of atoms, which are separated by spaces. The initial atom (which needs to be a symbol) determines the type of object Pd will create, while the subsequent atoms, known as creation arguments, instruct Pd how @@ -149,12 +148,13 @@

        2.1.2. Object boxes

        Here, the "+" specifies the class of the object. In this case the object will carry out additions, and the "13" initializes the value to add. -

        Atoms are either numbers or symbols like "+". Anything that is not a -valid number, is considered a symbol. Valid numbers may or may not have a decimal -point, such as "12", "15.6", "-0.456". They also may be written in exponential -notation, such as "4.5e+06", which means "4.5" times "10ˆ6" (10 to power of 6, -i.e., 1000000) and results in "4500000". Negative exponentials also work, such -as 1.5e-06, which means "1.5" times "10ˆ-6" and results in "0.0000015". +

        Atoms are either numbers or symbols. Anything that is not a +valid number (like "+") is considered a symbol. Valid numbers may or may not +have a decimal point, such as "12", "15.6", "-0.456". Numbers may also be written +in exponential notation, such as "4.5e+06", which means "4.5" times "10ˆ6" (10 +to power of 6, i.e., 1000000) and results in "4500000". Negative exponentials +also work, such as 1.5e-06, which means "1.5" times "10ˆ-6" and results in +"0.0000015".

        Non-valid numbers, which are read as symbols, include things like "+5" and "0..6" as well as words and names such as "Zack" or "cat". The symbols "gore", "Gore", and @@ -173,13 +173,13 @@

        2.1.2. Object boxes

        This patch mixes control objects ([notein], [stripnote], and [ftom]) -with tilde objects [osc~], [*~], and [dac~]. The control objects carry out -their function sporadically, as a result of one or more types of events. -In this case, incoming MIDI note messages set off the control computation. When -a note event happens (more specifically a "note on" event, since "note off" events -are filtered by [stripnote]), the control computation is triggered and it computes -the frequency in cycles per second with [mtof] and passes it on to the oscillator -([osc~]). +with tilde objects [osc~], [*~], and [dac~] and these are the two types of +objects in Pd. The control objects carry out their function sporadically, as a +result of one or more types of events. In this case, incoming MIDI note +messages set off the control computation. When a note event happens (more +specifically a "note on" event, since "note off" events are filtered by [stripnote]), +the control computation is triggered and it computes the frequency in cycles per +second with [mtof] and passes it on to the oscillator ([osc~]).

        The second half of the patch (the [osc~], [*~], and [dac~] objects) computes audio samples. The [osc~] object is acting as the interface between the two regimes, @@ -192,7 +192,7 @@

        2.1.2. Object boxes

        others are control. A control connection may be made to a signal inlet and if numbers are sent over it they are usually automatically converted to signals. Signal connections may not be made to control inlets; some sort of explicit conversion -must be specified. +from audio signal to control data must be specified.

        Audio signals form continuous streams of numbers, not intermittent bursts. Therefore, tilde objects operate under rules distinct from those for control objects. @@ -226,14 +226,14 @@

        2.1.3. Message and GUI boxes

        The third box here is a GUI ("graphical user interface") box. Pd has three basic GUI boxes. In addition to number boxes (as in this example), there are boxes to display and edit symbols or arbitrary lists of atoms. Pd also comes with -a set GUIs that include toggles, sliders, radio buttons and so on. These other GUIs -are also known as "iemGUIs" and used to be an external library package, but were -incorporated natively into Pd in version 0.34 (they can still be created from +another set GUIs that include toggles, sliders, radio buttons and so on. These other +GUIs are also known as "IEMguis", which used to be an external library package and +was incorporated natively into Pd in version 0.34 (they can still be created from object boxes though - see their help patches for the corresponding symbols). -

        You can interact with GUIs in many ways and they are visually dynamic. While the -appearance of an object or message box remains unchanged when a patch is running, a -number box's content (the text) changes to reflect the current value held by the box. +

        You can interact with GUIs in many ways and they are visually dynamic. For instance, +while the appearance of an object or message box remains unchanged when a patch is running, +a number box's content (the text) changes to reflect the current value held by the box. You can also use a number box as a control by clicking and dragging up and down, or by typing values in it and hitting enter (more details on how this and any other GUIs work is available in the help files; see Context menu for @@ -241,7 +241,7 @@

        2.1.3. Message and GUI boxes

        2.1.4. Patches and files

        -

        As mentioned before, You can create or open a Pd file from the File menu +

        As mentioned before, You can create or open a Pd file from the File menu, as well as close and save them.

        You can also edit the font size of a patch if its window is focused. Just @@ -253,7 +253,9 @@

        2.1.4. Patches and files

        and their interconnections. Nonetheless, the [savestate] object offers a mechanism to save the state of abstractions (see Subpatches). Also, certain data-storage objects have functions for reading and writing other files to -save and restore their internal state. +save and restore their internal state (one example is the [text] object). When loading +a patch, the [loadbang] object can be used to initialize the parameters of your patch, +so you can load text files and make other preparations.

        Pd finds files using specified paths. Most objects which can read files search for them along the search paths, but when Pd writes files they go to the @@ -291,10 +293,9 @@

        2.2.1. Edit and Run mode

        2.2.2. Creating boxes

        You can create boxes (objects, messages, GUIs, and comments) using the -Put menu. Note that most of these are individual GUI (graphical -user interface) boxes. There are also entries for "array" and "graph" that -will be explained later. Also note the handy shortcuts to create each item -specifically. +Put menu. Note that most of these are individual GUI (graphical user +interface) boxes. There are also entries for "array" and "graph" that will be +explained later. Also note the handy shortcuts to create each item specifically.

        put menu @@ -304,13 +305,21 @@

        2.2.2. Creating boxes

        a shortcut, Pd automatically switches to edit mode. When you create boxes this way, they are automatically selected and follow the mouse cursor position; drag them around as desired until you click to position them where you want. -Alternatively, you can hit Esc to deselect it, which will also place -the box. Object and message boxes are empty when created, you can move them -and also position them by just starting to type into them. +This keeps the box selected and you can desselect it by clicking on an empty spot +of the patch or using the Esc key. + +

        Message and object boxes are empty when created. After being positioned you +starting to type into them. Also, start to typing into them will force position +them if they haven't been positioned yet by a click. Deselecting the object box +after you typed the object name creates it. + +

        When you create a comment box, it shows a "comment" symbol. When you position +it, this symbol is selected, so you can start typing a new commentary.

        You may find it more convenient to select a box and "duplicate" it than to use the Put menu. If you duplicate a selection of several items, any connections -between them will be duplicated as well. +between them will be duplicated as well. To deselect more than one box, you +can also either click on an empty area of your patch or press Esc.

        2.2.3. Selecting items and moving them or "tidying them up"

        @@ -330,7 +339,6 @@

        2.2.3. Selecting items and moving them or "tidying them up"The 'Tidy Up' entry in the Edit menu allows you to try and align boxes that are not perfectly aligned. You can select boxes arranged in a horizontal row and use the shortcut Shift + Ctrl + R to try and @@ -363,9 +371,6 @@

        2.2.4. Delete, cut, copy and paste boxes

        the duplicated selection and drag them all together to a new spot in the patch window away from the original selection. -

        To deselect, you can either click on an empty area of your patch or press -the Esc key. -

        While you can cut or copy a selection within a patch and paste it into a different window within Pure Data, the cut/paste functionality for patch elements is not integrated with the operating system clipboard. This limitation means you From 595b4401b5fb752d4484e5b21e4c7e6661041f07 Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 8 Apr 2024 01:08:40 -0300 Subject: [PATCH 160/450] one last edit after the last one I'revising something I changed last time which was wrong --- doc/1.manual/x2.htm | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index eadc5aa89..182067137 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -117,13 +117,13 @@

        2.1.1. The main window, canvases, and printout

        simple patch

        -

        There are four text boxes in Pd, all shown in this patch: a number box -(showing zero), an object box showing "print" and two comments (which counts as -a "box type" even thought it's not a proper 'box' visually). The number box is -connected to the object box, with the output of the number box feeding into the -input of the [print] object box. Boxes may have zero or more inputs and/or outputs, -with the inputs on top and the outputs on the bottom. When clicking and dragging on -the number box, the values are printed in the main "Pd" window. +

        There are four text boxes in this patch: a number box (showing zero), +an object box showing "print", plus two "comments" (which are simply commentaries +that don't really affect the patch and can't be connected to anything). The number +box is connected to the object box, with the output of the number box feeding into +the input of the [print] object box. Boxes may have zero or more inputs and/or +outputs, with the inputs on top and the outputs on the bottom. When clicking and +dragging on the number box, the values are printed in the main "Pd" window.

        2.1.2. Object boxes

        @@ -226,10 +226,7 @@

        2.1.3. Message and GUI boxes

        The third box here is a GUI ("graphical user interface") box. Pd has three basic GUI boxes. In addition to number boxes (as in this example), there are boxes to display and edit symbols or arbitrary lists of atoms. Pd also comes with -another set GUIs that include toggles, sliders, radio buttons and so on. These other -GUIs are also known as "IEMguis", which used to be an external library package and -was incorporated natively into Pd in version 0.34 (they can still be created from -object boxes though - see their help patches for the corresponding symbols). +another set GUIs that include toggles, sliders, radio buttons and so on.

        You can interact with GUIs in many ways and they are visually dynamic. For instance, while the appearance of an object or message box remains unchanged when a patch is running, @@ -292,15 +289,24 @@

        2.2.1. Edit and Run mode

        2.2.2. Creating boxes

        -

        You can create boxes (objects, messages, GUIs, and comments) using the -Put menu. Note that most of these are individual GUI (graphical user -interface) boxes. There are also entries for "array" and "graph" that will be -explained later. Also note the handy shortcuts to create each item specifically. +

        Pd patches can have four types of boxes: object, message, GUI and +comment (which counts as a "box type" even thought it's not a proper +'box' visually). You can create these boxes using the Put menu. Also +note the handy shortcuts to create each item specifically.

        put menu

        +

        Note that most of these are individual GUI (graphical user interface) boxes. +Besides the three basic GUI boxes (number, symbol andlists), there's another group +of GUIs that more options (toggles, sliders, radio buttons, etc). These other GUIs +are also known as "IEMguis", which used to be an external library package and was +incorporated natively into Pd in version 0.34 (they can still be created from +object boxes though - see their help patches for the corresponding symbols). There +are also entries for "array" and "graph" that will be explained later. + +

        If you are in run mode and click on an entry on the Put menu or use a shortcut, Pd automatically switches to edit mode. When you create boxes this way, they are automatically selected and follow the mouse cursor position; From fda764cec48980e76d123c5e8fb43827d828eaf1 Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Mon, 8 Apr 2024 16:38:45 +0200 Subject: [PATCH 161/450] fix trailing whate space --- src/s_inter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/s_inter.c b/src/s_inter.c index f8cb7194d..2fe31a2a2 100644 --- a/src/s_inter.c +++ b/src/s_inter.c @@ -1807,7 +1807,7 @@ void sys_doneglobinit( void) it would be cool to figure out what metrics we really need and tell the GUI - that way we can support arbitrary zoom with appropriate font sizes. And/or: if we ever move definitively to a vector-based GUI - lib we might be able to skip this step altogether. */ + lib we might be able to skip this step altogether. */ int sys_startgui(const char *libdir) { t_canvas *x; From 0c57886ba0e5d6e1c3fe6eb9ffa9c65fc1a97321 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Mon, 12 Sep 2022 01:35:11 +0200 Subject: [PATCH 162/450] improve glob_exit() * only break from scheduler loop; don't call exit()! * close audio/midi and stop GUI after the scheduler loop has finished * save exit code, so that it can be later returned by the scheduler * add pd_term() to cleanly shutdown Pd * NB: we call closebang() on all root canvases, but we don't free them (yet), see comment. --- src/m_pd.c | 26 ++++++++++++++++++++++---- src/m_sched.c | 22 +++++++++++++++------- src/s_inter.c | 13 ++----------- src/s_main.c | 20 +++++++++----------- 4 files changed, 48 insertions(+), 33 deletions(-) diff --git a/src/m_pd.c b/src/m_pd.c index a297fc46a..35f9d87d9 100644 --- a/src/m_pd.c +++ b/src/m_pd.c @@ -327,7 +327,25 @@ void pd_init(void) pd_init_systems(); } -void pd_init_systems(void) { +void pd_term(void) +{ + t_glist *c; + for (c = pd_getcanvaslist(); c; c = c->gl_next) + canvas_closebang(c); +#if 0 + /* Canvases may be slow to close and as a workaround people + may want Pd to shutdown quickly. Conversely, others might + prefer it if canvases (and all their containing objects) are + always freed properly. For now let's exit quickly and LATER + figure out a way to handle this. */ + while ((c = pd_getcanvaslist())) + pd_free((t_pd *)c); +#endif + pd_term_systems(); +} + +void pd_init_systems(void) +{ mess_init(); sys_lock(); obj_init(); @@ -337,9 +355,9 @@ void pd_init_systems(void) { sys_unlock(); } -void pd_term_systems(void) { - sys_lock(); - sys_unlock(); +void pd_term_systems(void) +{ + /* TODO free resources */ } t_canvas *pd_getcanvaslist(void) diff --git a/src/m_sched.c b/src/m_sched.c index 6ae7be7b1..8e4da094d 100644 --- a/src/m_sched.c +++ b/src/m_sched.c @@ -23,6 +23,7 @@ #define SYS_QUIT_QUIT 1 #define SYS_QUIT_RESTART 2 static int sys_quit; +static int sys_exitcode; extern int sys_nosleep; int sys_usecsincelastsleep(void); @@ -211,6 +212,11 @@ void dsp_tick(void); static int sched_useaudio = SCHED_AUDIO_NONE; static double sched_referencerealtime, sched_referencelogicaltime; +void sys_exit(int status) +{ + sys_exitcode = status; + sys_quit = SYS_QUIT_QUIT; +} void sched_reopenmeplease(void) /* request from s_audio for deferred reopen */ { @@ -422,6 +428,10 @@ static void m_callbackscheduler(void) int m_mainloop(void) { + /* open audio and MIDI */ + sys_reopen_midi(); + if (audio_shouldkeepopen()) + sys_reopen_audio(); while (sys_quit != SYS_QUIT_QUIT) { if (sched_useaudio == SCHED_AUDIO_CALLBACK) @@ -437,17 +447,15 @@ int m_mainloop(void) } } } - return (0); + + sys_close_audio(); + sys_close_midi(); + return (sys_exitcode); } int m_batchmain(void) { while (sys_quit != SYS_QUIT_QUIT) sched_tick(); - return (0); -} - -void sys_exit(void) -{ - sys_quit = SYS_QUIT_QUIT; + return (sys_exitcode); } diff --git a/src/s_inter.c b/src/s_inter.c index 857b70a9a..5141ee93a 100644 --- a/src/s_inter.c +++ b/src/s_inter.c @@ -1751,20 +1751,11 @@ void sys_bail(int n) else _exit(1); } -extern void sys_exit(void); +void sys_exit(int status); void glob_exit(void *dummy, t_float status) { - /* sys_exit() sets the sys_quit flag, so all loops end */ - sys_exit(); - sys_close_audio(); - sys_close_midi(); - if (sys_havegui()) - { - sys_closesocket(INTER->i_guisock); - sys_rmpollfn(INTER->i_guisock); - } - exit((int)status); + sys_exit(status); } void glob_quit(void *dummy) { diff --git a/src/s_main.c b/src/s_main.c index 92d4d167c..e765e6ed6 100644 --- a/src/s_main.c +++ b/src/s_main.c @@ -37,10 +37,12 @@ char pd_compiletime[] = __TIME__; char pd_compiledate[] = __DATE__; void pd_init(void); +void pd_term(void); int sys_argparse(int argc, const char **argv); void sys_findprogdir(const char *progname); void sys_setsignalhandlers(void); int sys_startgui(const char *guipath); +void sys_stopgui(void); void sys_setrealtime(const char *guipath); int m_mainloop(void); int m_batchmain(void); @@ -367,7 +369,7 @@ static void sys_printusage(void); /* this is called from main() in s_entry.c */ int sys_main(int argc, const char **argv) { - int i, noprefs; + int i, noprefs, ret; const char *prefsfile = ""; sys_externalschedlib = 0; sys_extraflags = 0; @@ -453,19 +455,15 @@ int sys_main(int argc, const char **argv) if (sys_hipriority) sys_setrealtime(sys_libdir->s_name); /* set desired process priority */ if (sys_externalschedlib) - return (sys_run_scheduler(sys_externalschedlibname, + ret = (sys_run_scheduler(sys_externalschedlibname, sys_extraflagsstring)); else if (sys_batch) - return (m_batchmain()); + ret = m_batchmain(); else - { - /* open audio and MIDI */ - sys_reopen_midi(); - if (audio_shouldkeepopen()) - sys_reopen_audio(); - /* run scheduler until it quits */ - return (m_mainloop()); - } + ret = m_mainloop(); + sys_stopgui(); + pd_term(); + return (ret); } static char *(usagemessage[]) = { From b2c1545aef1ecc3672a40686a577c061442d3749 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 13 Sep 2022 15:30:29 +0200 Subject: [PATCH 163/450] m_pollingscheduler: don't sleep if sys_send_dacs() already slept --- src/m_sched.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/m_sched.c b/src/m_sched.c index 8e4da094d..71781068b 100644 --- a/src/m_sched.c +++ b/src/m_sched.c @@ -372,14 +372,16 @@ static void m_pollingscheduler(void) } timeforward = (lateness > 0 ? SENDDACS_YES : SENDDACS_NO); } - else timeforward = sys_send_dacs(); + else + timeforward = sys_send_dacs(); sys_addhist(3); /* test for idle; if so, do graphics updates. */ - if (timeforward != SENDDACS_YES && !sched_idletask() && !sys_nosleep) + if (timeforward != SENDDACS_YES && !sched_idletask()) { /* if even that had nothing to do, sleep. */ sys_addhist(4); - sys_microsleep(); + if (!sys_nosleep && timeforward != SENDDACS_SLEPT) + sys_microsleep(); } sys_addhist(5); sys_lock(); From 5115d552512f93e73a21f336d414fd36987706b6 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Mon, 12 Sep 2022 01:42:11 +0200 Subject: [PATCH 164/450] improve callback scheduler * allow DSP to be turned resp. switch to polling scheduler * check if the audio device is stuck and if yes, try to reopen it NB: sys_reopen_audio() and sys_close_audio() now only notify the scheduler and thus can be safely called from the audio callback. The actual implementation has been moved to private functions sys_do_reopen_audio() and sys_do_close_audio(); these are always called outside Pd's messaging system. --- src/g_canvas.c | 12 ++-- src/m_sched.c | 145 +++++++++++++++++++++++++++++++++++------------ src/s_audio.c | 61 ++++++++++++-------- src/s_audio_pa.c | 85 ++++++++++++++------------- src/s_file.c | 5 +- src/s_inter.c | 4 +- src/s_stuff.h | 1 + 7 files changed, 205 insertions(+), 108 deletions(-) diff --git a/src/g_canvas.c b/src/g_canvas.c index d893116a6..d35d1cc65 100644 --- a/src/g_canvas.c +++ b/src/g_canvas.c @@ -1443,20 +1443,20 @@ void canvas_update_dsp(void) } /* the "dsp" message to pd starts and stops DSP computation, and, if -appropriate, also opens and closes the audio device. On exclusive-access +appropriate, also opens and closes the audio device. On exclusive-access APIs such as ALSA, MMIO, and ASIO (I think) it's appropriate to close the audio devices when not using them; but jack behaves better if audio I/O -simply keeps running. This is wasteful of CPU cycles but we do it anyway +simply keeps running. Also, we want to preserve any connections made between +Pd and other Jack clients. This is wasteful of CPU cycles but we do it anyway and can perhaps regard this is a design flaw in jack that we're working around -here. The function audio_shouldkeepopen() is provided by s_audio.c to tell -us that we should elide the step of closing audio when DSP is turned off.*/ +here. The function audio_shouldkeepopen() is provided by s_audio.c to tell us +that we should elide the step of closing audio when DSP is turned off.*/ void glob_dsp(void *dummy, t_symbol *s, int argc, t_atom *argv) { - int newstate; if (argc) { - newstate = atom_getfloatarg(0, argc, argv); + int newstate = atom_getfloat(argv); if (newstate && !THISGUI->i_dspstate) { sys_set_audio_state(1); diff --git a/src/m_sched.c b/src/m_sched.c index 71781068b..4d8e6a3a5 100644 --- a/src/m_sched.c +++ b/src/m_sched.c @@ -9,7 +9,12 @@ #include "s_stuff.h" #ifdef _WIN32 #include +#include +#else +#include #endif +#include +#include /* LATER consider making this variable. It's now the LCM of all sample rates we expect to see: 32000, 44100, 48000, 88200, 96000. */ @@ -21,8 +26,14 @@ ((int)(STUFF->st_dacsr /(double)STUFF->st_schedblocksize)) #define SYS_QUIT_QUIT 1 -#define SYS_QUIT_RESTART 2 +#define SYS_QUIT_REOPEN 2 +#define SYS_QUIT_CLOSE 3 static int sys_quit; +static pthread_cond_t sched_cond; +static pthread_mutex_t sched_mutex; +static int sched_useaudio = SCHED_AUDIO_NONE; +static double sched_referencerealtime, sched_referencelogicaltime; + static int sys_exitcode; extern int sys_nosleep; @@ -210,19 +221,38 @@ void glob_fastforward(void *dummy, t_floatarg f) void dsp_tick(void); -static int sched_useaudio = SCHED_AUDIO_NONE; -static double sched_referencerealtime, sched_referencelogicaltime; + /* ask the scheduler to quit; this is thread-safe, so it + can be safely called from within the audio callback. */ void sys_exit(int status) { + pthread_mutex_lock(&sched_mutex); sys_exitcode = status; sys_quit = SYS_QUIT_QUIT; + pthread_cond_signal(&sched_cond); + pthread_mutex_unlock(&sched_mutex); +} + + /* ask the scheduler to (re)open the audio system; thread-safe! */ +void sys_reopen_audio(void) +{ + pthread_mutex_lock(&sched_mutex); + if (sys_quit != SYS_QUIT_QUIT) + sys_quit = SYS_QUIT_REOPEN; + pthread_cond_signal(&sched_cond); + pthread_mutex_unlock(&sched_mutex); } -void sched_reopenmeplease(void) /* request from s_audio for deferred reopen */ + /* ask the scheduler to close the audio system; thread-safe! */ +void sys_close_audio(void) { - sys_quit = SYS_QUIT_RESTART; + pthread_mutex_lock(&sched_mutex); + if (sys_quit != SYS_QUIT_QUIT) + sys_quit = SYS_QUIT_CLOSE; + pthread_cond_signal(&sched_cond); + pthread_mutex_unlock(&sched_mutex); } + /* called by sys_do_reopen_audio() and sys_do_close_audio() */ void sched_set_using_audio(int flag) { sched_useaudio = flag; @@ -231,13 +261,6 @@ void sched_set_using_audio(int flag) sched_referencerealtime = sys_getrealtime(); sched_referencelogicaltime = clock_getlogicaltime(); } - if (flag == SCHED_AUDIO_CALLBACK && - sched_useaudio != SCHED_AUDIO_CALLBACK) - sys_quit = SYS_QUIT_RESTART; - if (flag != SCHED_AUDIO_CALLBACK && - sched_useaudio == SCHED_AUDIO_CALLBACK) - post("sorry, can't turn off callbacks yet; restart Pd"); - /* not right yet! */ pdgui_vmess("pdtk_pd_audio", "r", flag ? "on" : "off"); } @@ -335,6 +358,8 @@ static void m_pollingscheduler(void) { sys_lock(); sys_initmidiqueue(); + /* NB: we don't need to lock the scheduler mutex because sys_quit + will only be modified from this thread */ while (!sys_quit) /* outer loop runs once per tick */ { sys_addhist(0); @@ -351,6 +376,8 @@ static void m_pollingscheduler(void) sched_referencelogicaltime = pd_this->pd_systime; continue; } + /* do at least one GUI update per DSP tick, so that Pd stays responsive + * if the scheduler can't keep up with the audio callback */ sys_pollgui(); sys_pollmidiqueue(); sys_addhist(2); @@ -392,8 +419,11 @@ static void m_pollingscheduler(void) sys_unlock(); } +static volatile int callback_inprogress; + void sched_audio_callbackfn(void) { + callback_inprogress = 1; sys_lock(); sys_addhist(0); sched_tick(); @@ -403,55 +433,100 @@ void sched_audio_callbackfn(void) sys_unlock(); (void)sched_idletask(); sys_addhist(3); + callback_inprogress = 0; } + /* callback scheduler timeout in seconds */ +#define CALLBACK_TIMEOUT 2.0 + +int sys_try_reopen_audio(void); + static void m_callbackscheduler(void) { + sys_lock(); sys_initmidiqueue(); + sys_unlock(); + /* wait in a loop until the audio callback asks us to quit. */ + pthread_mutex_lock(&sched_mutex); while (!sys_quit) { - double timewas = pd_this->pd_systime; -#ifdef _WIN32 - Sleep(1000); -#else - sleep(1); -#endif - if (pd_this->pd_systime == timewas) + int wasinprogress; + /* get current system time and add timeout */ + double timewas, timeout = CALLBACK_TIMEOUT; + struct timespec ts; + #ifdef _WIN32 + struct __timeb64 tb; + _ftime64(&tb); + /* add fractional part to timeout */ + timeout += tb.millitm * 0.001; + ts.tv_sec = tb.time + (time_t)timeout; + ts.tv_nsec = (timeout - (time_t)timeout) * 1000000000; + #else + struct timeval now; + gettimeofday(&now, 0); + /* add fractional part to timeout */ + timeout += now.tv_usec * 0.000001; + ts.tv_sec = now.tv_sec + (time_t)timeout; + ts.tv_nsec = (timeout - (time_t)timeout) * 1000000000; + #endif + /* wait for semaphore (with timeout) */ + timewas = pd_this->pd_systime; + wasinprogress = callback_inprogress; + if (pthread_cond_timedwait(&sched_cond, &sched_mutex, &ts) == ETIMEDOUT) { - sys_lock(); - (void)sys_pollgui(); - sched_tick(); - sys_unlock(); + /* check if the schedular has advanced since the last time + we checked (while it was not in progress) */ + if (!sys_quit && !wasinprogress && (pd_this->pd_systime == timewas)) + { + pthread_mutex_unlock(&sched_mutex); + /* if the scheduler has not advanced, but the callback is + still in progress, it just blocks on some Pd message. + Otherwise, the audio device got stuck or disconnected. */ + if (!callback_inprogress && !sys_try_reopen_audio()) + return; + pthread_mutex_lock(&sched_mutex); + } } - if (sys_idlehook) - sys_idlehook(); } + pthread_mutex_unlock(&sched_mutex); } +void sys_do_reopen_audio(void); +void sys_do_close_audio(void); + int m_mainloop(void) { + pthread_mutex_init(&sched_mutex, 0); + pthread_cond_init(&sched_cond, 0); + /* open audio and MIDI */ sys_reopen_midi(); if (audio_shouldkeepopen()) sys_reopen_audio(); + + /* run the scheduler until it quits. */ while (sys_quit != SYS_QUIT_QUIT) { - if (sched_useaudio == SCHED_AUDIO_CALLBACK) - m_callbackscheduler(); - else m_pollingscheduler(); - if (sys_quit == SYS_QUIT_RESTART) + /* check if we should close/reopen the audio device. */ + if (sys_quit != 0) { + int reopen = sys_quit == SYS_QUIT_REOPEN; sys_quit = 0; - if (audio_isopen()) - { - sys_close_audio(); - sys_reopen_audio(); - } + sys_do_close_audio(); + if (reopen) + sys_do_reopen_audio(); } + if (sched_useaudio == SCHED_AUDIO_CALLBACK) + m_callbackscheduler(); + else + m_pollingscheduler(); } - sys_close_audio(); + sys_do_close_audio(); sys_close_midi(); + + pthread_mutex_destroy(&sched_mutex); + pthread_cond_destroy(&sched_cond); return (sys_exitcode); } diff --git a/src/s_audio.c b/src/s_audio.c index 17d756b3c..cfb5b3493 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -33,13 +33,11 @@ int sys_schedadvance; /* scheduler advance in microseconds */ static int sys_audioapiopened; /* what API is open, API_NONE if none */ -static int audio_callback_is_open; /* true if we're open in callback mode */ /* current parameters (if an API is open) or requested ones otherwise: */ static t_audiosettings audio_nextsettings; void sched_audio_callbackfn(void); -void sched_reopenmeplease(void); int audio_isopen(void) { @@ -260,7 +258,8 @@ void sys_set_audio_settings(t_audiosettings *a) pdgui_vmess("set", "ri", "pd_whichapi", audio_nextsettings.a_api); } -void sys_close_audio(void) + /* close the audio device. Must not be called from a Pd message! */ +void sys_do_close_audio(void) { if (sys_externalschedlib) { @@ -311,7 +310,6 @@ void sys_close_audio(void) post("sys_close_audio: unknown API %d", sys_audioapiopened); sys_audioapiopened = API_NONE; sched_set_using_audio(SCHED_AUDIO_NONE); - audio_callback_is_open = 0; pdgui_vmess("set", "ri", "pd_whichapi", 0); } @@ -328,8 +326,9 @@ void sys_init_audio(void) sys_setchsr(totalinchans, totaloutchans, as.a_srate); } - /* open audio using currently requested parameters */ -void sys_reopen_audio(void) + /* open audio using currently requested parameters. + Must not be called from a Pd message! */ +void sys_do_reopen_audio(void) { t_audiosettings as; int outcome = 0, totalinchans, totaloutchans; @@ -429,18 +428,41 @@ void sys_reopen_audio(void) { sys_audioapiopened = API_NONE; sched_set_using_audio(SCHED_AUDIO_NONE); - audio_callback_is_open = 0; } else { sys_audioapiopened = as.a_api; sched_set_using_audio( (as.a_callback ? SCHED_AUDIO_CALLBACK : SCHED_AUDIO_POLL)); - audio_callback_is_open = as.a_callback; } pdgui_vmess("set", "ri", "pd_whichapi", sys_audioapiopened); } + /* called by the scheduler if the audio system appears to be stuck */ +int sys_try_reopen_audio(void) +{ + int success; +#ifdef USEAPI_PORTAUDIO + if (sys_audioapiopened == API_PORTAUDIO) + return pa_reopen_audio(); +#endif + /* generic implementation: close audio and try to reopen it */ + sys_do_close_audio(); + + pd_error(0, "trying to reopen audio device"); + + sys_do_reopen_audio(); + success = audio_isopen(); + + if (success) + pd_error(0, "successfully reopened audio device"); + else + pd_error(0, "audio device not responding - closing audio.\n" + "please try to reconnect and reselect it in the settings (or toggle DSP)"); + + return success; +} + int sys_send_dacs(void) { #ifdef USEAPI_PORTAUDIO @@ -709,12 +731,8 @@ void glob_audio_dialog(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) if (as.a_blocksize < DEFDACBLKSIZE || as.a_blocksize > MAXBLOCKSIZE) as.a_blocksize = DEFDACBLKSIZE; - if (!audio_callback_is_open && !as.a_callback) - sys_close_audio(); sys_set_audio_settings(&as); - if (!audio_callback_is_open && !as.a_callback) - sys_reopen_audio(); - else sched_reopenmeplease(); + sys_reopen_audio(); } void sys_listdevs(void) @@ -773,7 +791,6 @@ void glob_audio_setapi(void *dummy, t_floatarg f) } else { - sys_close_audio(); audio_nextsettings.a_api = newapi; /* bash device params back to default */ audio_nextsettings.a_nindev = audio_nextsettings.a_nchindev = @@ -797,16 +814,12 @@ void glob_audio_setapi(void *dummy, t_floatarg f) /* start or stop the audio hardware */ void sys_set_audio_state(int onoff) { - if (onoff) /* start */ - { - if (!audio_isopen()) - sys_reopen_audio(); - } - else - { - if (audio_isopen()) - sys_close_audio(); - } + /* NB: only reopen audio if it has been closed, so we don't + interfere with audio_shouldkeepopen()! See also glob_dsp(). */ + if (onoff && !audio_isopen()) /* start */ + sys_reopen_audio(); + else if (!onoff && audio_isopen()) + sys_close_audio(); } #define MAXAPIENTRY 10 diff --git a/src/s_audio_pa.c b/src/s_audio_pa.c index 0989b5555..dead17f5f 100644 --- a/src/s_audio_pa.c +++ b/src/s_audio_pa.c @@ -14,7 +14,7 @@ Windows. If FAKEBLOCKING is defined we can choose between two methods for waiting on the (presumably other-thread) I/O to complete, either correct thread synchronization (by defining THREADSIGNAL) or just sleeping - and polling; the latter seems to work better so far. + and polling. */ /* dolist... @@ -332,7 +332,7 @@ PaError pa_open_callback(double samplerate, int inchannels, int outchannels, err = Pa_StartStream(pa_stream); if (err != paNoError) { - post("error opening failed; closing audio stream: %s", + post("could not start stream; closing audio: %s", Pa_GetErrorText(err)); pa_close_audio(); goto error; @@ -492,11 +492,41 @@ void pa_close_audio(void) #endif } +void sys_do_close_audio(void); +void sys_do_reopen_audio(void); + +int pa_reopen_audio(void) +{ + int success; + /* NB: unfortunately, Pa_IsStreamActive() always returns true, + even if the audio device has been disconnected... */ + sys_do_close_audio(); +#ifdef __APPLE__ + /* TODO: the portaudio coreaudio implementation doesn't handle + re-connection, so suggest restarting */ + pd_error(0, "audio device not responding - closing audio"); + pd_error(0, "you may need to save and restart pd"); + return 0; +#else + /* portaudio seems to handle this better on windows and linux */ + pd_error(0, "trying to reopen audio device"); + + sys_do_reopen_audio(); /* try to reopen it */ + success = audio_isopen(); + + if (success) + pd_error(0, "successfully reopened audio device"); + else + pd_error(0, "audio device not responding - closing audio.\n" + "please try to reconnect and reselect it in the settings (or toggle DSP)"); +#endif + return success; +} + int sched_idletask(void); int pa_send_dacs(void) { - PaError err; t_sample *fp; float *fp2, *fp3; float *conversionbuf; @@ -523,19 +553,14 @@ int pa_send_dacs(void) /* only go to sleep if there is nothing else to do. */ if (!sys_semaphore_waitfor(pa_sem, POLL_TIMEOUT)) { - /* timed out -> check stream */ - if ((err = Pa_IsStreamActive(pa_stream)) < 0) - goto try_reopen; - else /* should not really happen */ - return SENDDACS_NO; + pa_reopen_audio(); + return SENDDACS_NO; } retval = SENDDACS_SLEPT; #else - if (((timeref - pa_lastdactime) >= POLL_TIMEOUT) - && ((err = Pa_IsStreamActive(&pa_stream)) < 0)) - goto try_reopen; - else - return SENDDACS_NO; + if ((timeref - pa_lastdactime) >= POLL_TIMEOUT) + pa_reopen_audio(); + return SENDDACS_NO; #endif } pa_lastdactime = timeref; @@ -578,15 +603,19 @@ int pa_send_dacs(void) k++, fp++, fp3 += STUFF->st_outchannels) *fp3 = *fp; if (Pa_WriteStream(pa_stream, conversionbuf, DEFDACBLKSIZE) != paNoError) - if ((err = Pa_IsStreamActive(&pa_stream)) < 0) - goto try_reopen; + { + pa_reopen_audio(); + return SENDDACS_NO; + } } /* read input */ if (STUFF->st_inchannels) { if (Pa_ReadStream(pa_stream, conversionbuf, DEFDACBLKSIZE) != paNoError) - if ((err = Pa_IsStreamActive(&pa_stream)) < 0) - goto try_reopen; + { + pa_reopen_audio(); + return SENDDACS_NO; + } for (j = 0, fp = STUFF->st_soundin, fp2 = conversionbuf; j < STUFF->st_inchannels; j++, fp2++) for (k = 0, fp3 = fp2; k < DEFDACBLKSIZE; @@ -602,28 +631,6 @@ int pa_send_dacs(void) DEFDACBLKSIZE*sizeof(t_sample)*STUFF->st_outchannels); return retval; - -try_reopen: - pd_error(0, "error %d: %s", err, Pa_GetErrorText(err)); - sys_close_audio(); - #ifdef __APPLE__ - /* TODO: the portaudio coreaudio implementation doesn't handle - re-connection, so suggest restarting */ - pd_error(0, "audio device not responding - closing audio"); - pd_error(0, "you may need to save and restart pd"); - #else - /* portaudio seems to handle this better on windows and linux */ - pd_error(0, "trying to reopen audio device"); - sys_reopen_audio(); /* try to reopen it */ - if (audio_isopen()) - pd_error(0, "successfully reopened audio device"); - else - { - pd_error(0, "audio device not responding - closing audio"); - pd_error(0, "reconnect and reselect it in the settings (or toggle DSP)"); - } - #endif - return SENDDACS_NO; } static char*pdi2devname(const PaDeviceInfo*pdi, char*buf, size_t bufsize) { diff --git a/src/s_file.c b/src/s_file.c index 1dcc64674..161073f9d 100644 --- a/src/s_file.c +++ b/src/s_file.c @@ -869,15 +869,14 @@ void sys_savepreferences(const char *filename) sys_donesavepreferences(); } - /* calls from GUI to load/save from/to a file */ void glob_loadpreferences(t_pd *dummy, t_symbol *filesym) { sys_loadpreferences(filesym->s_name, 0); - sys_close_audio(); - sys_reopen_audio(); sys_close_midi(); sys_reopen_midi(); + if (audio_isopen()) + sys_reopen_audio(); } void glob_savepreferences(t_pd *dummy, t_symbol *filesym) diff --git a/src/s_inter.c b/src/s_inter.c index 5141ee93a..69b998d6b 100644 --- a/src/s_inter.c +++ b/src/s_inter.c @@ -1728,6 +1728,8 @@ void sys_setrealtime(const char *libdir) #endif /* __APPLE__ */ } +void sys_do_close_audio(void); + /* This is called when something bad has happened, like a segfault. Call glob_quit() below to exit cleanly. LATER try to save dirty documents even in the bad case. */ @@ -1741,7 +1743,7 @@ void sys_bail(int n) /* sys_close_audio() hangs if you're in a signal? */ fprintf(stderr ,"gui socket %d - \n", INTER->i_guisock); fprintf(stderr, "closing audio...\n"); - sys_close_audio(); + sys_do_close_audio(); fprintf(stderr, "closing MIDI...\n"); sys_close_midi(); fprintf(stderr, "... done.\n"); diff --git a/src/s_stuff.h b/src/s_stuff.h index eb7bd4c86..2e7de12ce 100644 --- a/src/s_stuff.h +++ b/src/s_stuff.h @@ -174,6 +174,7 @@ int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin, int indeviceno, int outdeviceno, t_audiocallback callback); void pa_close_audio(void); int pa_send_dacs(void); +int pa_reopen_audio(void); void pa_listdevs(void); void pa_getdevs(char *indevlist, int *nindevs, char *outdevlist, int *noutdevs, int *canmulti, From 9af1c6b206d5550be03a05a823d8013425b66eed Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Sun, 12 Mar 2023 01:31:18 +0100 Subject: [PATCH 165/450] libpd_init_audio: use sys_setchsr() instead of sys_reopen_audio() --- src/z_libpd.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/z_libpd.c b/src/z_libpd.c index 6bf74794a..16ca22410 100644 --- a/src/z_libpd.c +++ b/src/z_libpd.c @@ -36,6 +36,7 @@ // forward declares void pd_init(void); +void sys_setchsr(int chin, int chout, int sr); int sys_startgui(const char *libdir); void sys_stopgui(void); int sys_pollgui(void); @@ -153,20 +154,9 @@ int libpd_blocksize(void) { } int libpd_init_audio(int inChannels, int outChannels, int sampleRate) { - t_audiosettings as; - as.a_indevvec[0] = as.a_outdevvec[0] = DEFAULTAUDIODEV; - as.a_nindev = as.a_noutdev = as.a_nchindev = as.a_nchoutdev = 1; - as.a_chindevvec[0] = inChannels; - as.a_choutdevvec[0] = outChannels; - as.a_srate = sampleRate; - as.a_blocksize = DEFDACBLKSIZE; - as.a_callback = 0; - as.a_advance = -1; - as.a_api = API_DUMMY; sys_lock(); - sys_set_audio_settings(&as); sched_set_using_audio(SCHED_AUDIO_CALLBACK); - sys_reopen_audio(); + sys_setchsr(inChannels, outChannels, sampleRate); sys_unlock(); return 0; } From 545901080f1b52805de6b7f6b56f54cc88236d4b Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Sun, 12 Mar 2023 01:30:29 +0100 Subject: [PATCH 166/450] sys_set_audio_settings: validate "callback" --- src/s_audio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/s_audio.c b/src/s_audio.c index cfb5b3493..0df575796 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -244,6 +244,8 @@ void sys_set_audio_settings(t_audiosettings *a) a->a_blocksize = 1 << ilog2(a->a_blocksize); if (a->a_blocksize < DEFDACBLKSIZE || a->a_blocksize > MAXBLOCKSIZE) a->a_blocksize = DEFDACBLKSIZE; + if (a->a_callback && !cancallback) + a->a_callback = 0; audio_make_sane(&a->a_noutdev, a->a_outdevvec, &a->a_nchoutdev, a->a_choutdevvec, MAXAUDIOOUTDEV); From 46eb6df54acd7d1af71af31ccf57fbc87322da1c Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Thu, 9 Mar 2023 12:02:23 +0100 Subject: [PATCH 167/450] glob_audio_setapi: bash "a_callback" back to 0! Otherwise we might accidentally try to run in callback mode with an API that does not support it. --- src/s_audio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/s_audio.c b/src/s_audio.c index 0df575796..d0c149303 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -803,6 +803,7 @@ void glob_audio_setapi(void *dummy, t_floatarg f) audio_nextsettings.a_chindevvec[0] = audio_nextsettings.a_choutdevvec[0] = SYS_DEFAULTCH; audio_nextsettings.a_blocksize = DEFDACBLKSIZE; + audio_nextsettings.a_callback = 0; sys_reopen_audio(); } glob_audio_properties(0, 0); From bb9295c3e868524aadbf7c7d995937b857ab0cd9 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Fri, 10 Mar 2023 16:00:16 +0100 Subject: [PATCH 168/450] portaudio/jack: only warn about too small delay if callbacks are disabled --- src/s_audio.c | 13 +++++++------ src/s_audio_jack.c | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/s_audio.c b/src/s_audio.c index d0c149303..0905e37de 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -352,8 +352,9 @@ void sys_do_reopen_audio(void) { int blksize = (as.a_blocksize ? as.a_blocksize : 64); int nbufs = (double)sys_schedadvance / 1000000. * as.a_srate / blksize; - /* make sure that the delay is not smaller than the hardware blocksize */ - if (nbufs < 1) + /* make sure that the delay is not smaller than the hardware blocksize. + NB: nbufs has no effect if callbacks are enabled. */ + if (nbufs < 1 && !as.a_callback) { int delay = ((double)sys_schedadvance / 1000.) + 0.5; int limit = ceil(blksize * 1000. / (double)as.a_srate); @@ -363,11 +364,11 @@ void sys_do_reopen_audio(void) delay, blksize, limit); } outcome = pa_open_audio((as.a_nindev > 0 ? as.a_chindevvec[0] : 0), - (as.a_noutdev > 0 ? as.a_choutdevvec[0] : 0), as.a_srate, + (as.a_noutdev > 0 ? as.a_choutdevvec[0] : 0), as.a_srate, STUFF->st_soundin, STUFF->st_soundout, blksize, nbufs, - (as.a_nindev > 0 ? as.a_indevvec[0] : 0), - (as.a_noutdev > 0 ? as.a_outdevvec[0] : 0), - (as.a_callback ? sched_audio_callbackfn : 0)); + (as.a_nindev > 0 ? as.a_indevvec[0] : 0), + (as.a_noutdev > 0 ? as.a_outdevvec[0] : 0), + (as.a_callback ? sched_audio_callbackfn : 0)); } else #endif diff --git a/src/s_audio_jack.c b/src/s_audio_jack.c index b25d50673..f714accd4 100644 --- a/src/s_audio_jack.c +++ b/src/s_audio_jack.c @@ -444,7 +444,7 @@ int jack_open_audio(int inchans, int outchans, t_audiocallback callback) advance_samples = sys_schedadvance * (double)STUFF->st_dacsr / 1.e6; advance_samples -= (advance_samples % DEFDACBLKSIZE); /* make sure that the delay is not smaller than the Jack blocksize! */ - if (advance_samples < jack_blocksize) + if (!callback && advance_samples < jack_blocksize) { int delay = ((double)sys_schedadvance / 1000.) + 0.5; int limit = ceil(jack_blocksize * 1000. / (double)STUFF->st_dacsr); From 4cd9721cfdd2e97abfa68b77a7380d71094759af Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Fri, 10 Mar 2023 23:32:07 +0100 Subject: [PATCH 169/450] portaudio: call pa_open_callback with nbuffers=0 ... to make it clear that this parameter only affects the size of the FIFO, but has no effect on the actual portaudio stream. --- src/s_audio_pa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/s_audio_pa.c b/src/s_audio_pa.c index dead17f5f..457ec8094 100644 --- a/src/s_audio_pa.c +++ b/src/s_audio_pa.c @@ -432,7 +432,7 @@ int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin, { pa_callback = callbackfn; err = pa_open_callback(rate, inchans, outchans, - framesperbuf, nbuffers, pa_indev, pa_outdev, pa_lowlevel_callback); + framesperbuf, 0, pa_indev, pa_outdev, pa_lowlevel_callback); } else { @@ -451,7 +451,7 @@ int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin, nbuffers*framesperbuf*pa_outchans*sizeof(float), pa_outbuf, 0); } err = pa_open_callback(rate, inchans, outchans, - framesperbuf, nbuffers, pa_indev, pa_outdev, pa_fifo_callback); + framesperbuf, 0, pa_indev, pa_outdev, pa_fifo_callback); #else err = pa_open_callback(rate, inchans, outchans, framesperbuf, nbuffers, pa_indev, pa_outdev, 0); From 7fe2d04c80727d36159ceffd57c4b6d35c0fb660 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Fri, 10 Mar 2023 21:46:33 +0100 Subject: [PATCH 170/450] jack: improve event handling * jack_srate: lock Pd when updating DSP * pd_jack_error_callback: lock Pd and use PD_DEBUG (because the output is rather verbose) --- src/s_audio_jack.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/s_audio_jack.c b/src/s_audio_jack.c index f714accd4..aaf87ee31 100644 --- a/src/s_audio_jack.c +++ b/src/s_audio_jack.c @@ -186,10 +186,13 @@ static int callbackprocess(jack_nframes_t nframes, void *arg) static int jack_srate(jack_nframes_t srate, void *arg) { - const t_float oldrate = STUFF->st_dacsr; - STUFF->st_dacsr = srate; - if (oldrate != STUFF->st_dacsr) + sys_lock(); + if (srate != STUFF->st_dacsr) + { + STUFF->st_dacsr = srate; canvas_update_dsp(); + } + sys_unlock(); return 0; } @@ -332,7 +335,9 @@ static int jack_connect_ports(char* client) static void pd_jack_error_callback(const char *desc) { - pd_error(0, "JACKerror: %s", desc); + sys_lock(); + logpost(0, PD_DEBUG, "JACK error: %s", desc); + sys_unlock(); return; } From c5385ee42ae00e11bf86a51ce14a6c33ab906e00 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Fri, 10 Mar 2023 22:21:33 +0100 Subject: [PATCH 171/450] jack: gracefully handle server shutdown According to the Jack docs, the callback function must be async signal safe, so we only set a flag. The shutdown is eventually handled in jack_reopen_audio(). --- src/s_audio.c | 4 ++++ src/s_audio_jack.c | 43 ++++++++++++++++++++++++++++++++----------- src/s_stuff.h | 1 + 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/s_audio.c b/src/s_audio.c index 0905e37de..537cba5bc 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -448,6 +448,10 @@ int sys_try_reopen_audio(void) #ifdef USEAPI_PORTAUDIO if (sys_audioapiopened == API_PORTAUDIO) return pa_reopen_audio(); +#endif +#ifdef USEAPI_JACK + if (sys_audioapiopened == API_JACK) + return jack_reopen_audio(); #endif /* generic implementation: close audio and try to reopen it */ sys_do_close_audio(); diff --git a/src/s_audio_jack.c b/src/s_audio_jack.c index aaf87ee31..99d58d838 100644 --- a/src/s_audio_jack.c +++ b/src/s_audio_jack.c @@ -62,7 +62,8 @@ static jack_port_t *output_port[MAX_JACK_PORTS]; static jack_client_t *jack_client = NULL; static char * desired_client_name = NULL; char *jack_client_names[MAX_CLIENTS]; -static int jack_dio_error; +static volatile int jack_dio_error; +static volatile int jack_didshutdown; static t_audiocallback jack_callback; static int jack_should_autoconnect = 1; static int jack_blocksize = 0; /* should this be PERTHREAD? */ @@ -202,17 +203,18 @@ static int jack_bsize(jack_nframes_t bufsize, void *arg) return 0; } -void glob_audio_setapi(void *dummy, t_floatarg f); - + /* This callback function must be async-signal-safe, so the only thing + we can really do is set a flag and wake up the scheduler. The shutdown + is actually handled in jack_send_dacs() or sys_try_reopen_audio(); + the latter is called by the callback scheduler once it has noticed that + audio processing has halted. */ static void jack_shutdown(void *arg) { - pd_error(0, "JACK: server shut down"); - - jack_deactivate (jack_client); - jack_client = NULL; - jack_blocksize = 0; - - glob_audio_setapi(NULL, API_NONE); // set pd_whichapi 0 + jack_didshutdown = 1; +#ifdef THREADSIGNAL + /* sem_post() is async-signal-safe */ + sys_semaphore_post(jack_sem); +#endif } static int jack_xrun(void* arg) @@ -361,7 +363,7 @@ int jack_open_audio(int inchans, int outchans, t_audiocallback callback) #ifdef THREADSIGNAL jack_sem = sys_semaphore_create(); #endif - + jack_didshutdown = 0; jack_dio_error = 0; if ((inchans == 0) && (outchans == 0)) return 0; @@ -547,6 +549,20 @@ void jack_close_audio(void) #endif } +void sys_do_close_audio(void); + +int jack_reopen_audio(void) +{ + /* we don't actually try to reopen (yet?) */ + if (jack_didshutdown) + { + pd_error(0, "JACK: server shutdown"); + jack_didshutdown = 0; + } + sys_do_close_audio(); + return 0; +} + int sched_idletask(void); int jack_send_dacs(void) @@ -568,6 +584,11 @@ int jack_send_dacs(void) (sys_ringbuf_getwriteavailable(&jack_outring) < (long)(STUFF->st_outchannels * DEFDACBLKSIZE*sizeof(t_sample)))) { + if (jack_didshutdown) + { + jack_reopen_audio(); /* handle server shutdown */ + return (SENDDACS_NO); + } #ifdef THREADSIGNAL if (sched_idletask()) continue; diff --git a/src/s_stuff.h b/src/s_stuff.h index 2e7de12ce..0cf56b154 100644 --- a/src/s_stuff.h +++ b/src/s_stuff.h @@ -203,6 +203,7 @@ void alsa_getdevs(char *indevlist, int *nindevs, int jack_open_audio(int inchans, int outchans, t_audiocallback callback); void jack_close_audio(void); int jack_send_dacs(void); +int jack_reopen_audio(void); void jack_reportidle(void); void jack_getdevs(char *indevlist, int *nindevs, char *outdevlist, int *noutdevs, int *canmulti, From b5aa5064fbd0dff543c04dff2109d779a3c6adc2 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Sat, 11 Mar 2023 01:17:32 +0100 Subject: [PATCH 172/450] portaudio: show audio I/O error if audio callback cannot write/read from/to FIFOs Curiously, the error flag has been set, but never read. Probably just an oversight. Now we basically do the same as the Jack backend. --- src/s_audio_pa.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/s_audio_pa.c b/src/s_audio_pa.c index 457ec8094..be10514f8 100644 --- a/src/s_audio_pa.c +++ b/src/s_audio_pa.c @@ -61,7 +61,7 @@ static t_audiocallback pa_callback; static int pa_started; static int pa_nbuffers; -static int pa_dio_error; +static volatile int pa_dio_error; #ifdef FAKEBLOCKING #include "s_audio_paring.h" @@ -458,6 +458,7 @@ int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin, #endif } pa_started = 0; + pa_dio_error = 0; pa_nbuffers = nbuffers; if (err != paNoError) { @@ -625,6 +626,11 @@ int pa_send_dacs(void) if ((sys_getrealtime() - timeref) > 0.002) retval = SENDDACS_SLEPT; #endif /* FAKEBLOCKING */ + if (pa_dio_error) + { + sys_log_error(ERR_RESYNC); + pa_dio_error = 0; + } pa_started = 1; memset(STUFF->st_soundout, 0, From 2c8c5a541169ee5cd4b714e2bc9f762effaf32b5 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Sun, 12 Mar 2023 22:00:15 +0100 Subject: [PATCH 173/450] warn that 'fast-forward' does not work in callback scheduler --- src/m_sched.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/m_sched.c b/src/m_sched.c index 4d8e6a3a5..6b748e60f 100644 --- a/src/m_sched.c +++ b/src/m_sched.c @@ -216,7 +216,10 @@ static float sched_fastforward; void glob_fastforward(void *dummy, t_floatarg f) { - sched_fastforward = TIMEUNITPERMSEC * f; + if (sched_useaudio == SCHED_AUDIO_CALLBACK) + pd_error(0, "'fast-forward' does not work with 'callbacks' (yet)"); + else + sched_fastforward = TIMEUNITPERMSEC * f; } void dsp_tick(void); From a35b4c75a38d1c8120b3f7cf02e96bb3610773f1 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Mon, 13 Mar 2023 15:39:40 +0100 Subject: [PATCH 174/450] improve sched_get_sleepgrain() only derive the sleepgrain from sys_schedadvance if we are in the polling scheduler; otherwise use a fixed default sleepgrain of 1 ms. --- src/m_sched.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/m_sched.c b/src/m_sched.c index 6b748e60f..7e95c56b9 100644 --- a/src/m_sched.c +++ b/src/m_sched.c @@ -294,15 +294,27 @@ void sched_tick(void) sched_counter++; } -int sched_get_sleepgrain( void) +int sched_get_sleepgrain(void) { - return (sys_sleepgrain > 0 ? sys_sleepgrain : - (sys_schedadvance/4 > 5000 ? 5000 : (sys_schedadvance/4 < 100 ? 100 : - sys_schedadvance/4))); + if (sys_sleepgrain > 0) + return sys_sleepgrain; + else if (sched_useaudio == SCHED_AUDIO_POLL) + { + int sleepgrain = sys_schedadvance / 4; + if (sleepgrain > 5000) + sleepgrain = 5000; + else if (sleepgrain < 100) + sleepgrain = 100; + return sleepgrain; + } + else return 1000; /* default */ } /* old stuff for extern binary compatibility -- remove someday */ -int *get_sys_sleepgrain(void) {return(&sys_sleepgrain);} +int *get_sys_sleepgrain(void) +{ + return(&sys_sleepgrain); +} /* Here is Pd's "main loop." This routine dispatches clock timeouts and DSP From f8f239f35d115c6d652b09ebe019a98fc4dfa862 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 14 Mar 2023 22:56:54 +0100 Subject: [PATCH 175/450] fix audio_shouldkeepopen() if no API is currently selected, use the next API. Otherwise it wouldn't have an effect if Pd is started with -jack, for example, until DSP is turned on. --- src/s_audio.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/s_audio.c b/src/s_audio.c index 537cba5bc..704b9cddc 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -535,7 +535,10 @@ int sys_get_inchannels(void) keep jack audio open but close unused audio devices for any other API */ int audio_shouldkeepopen(void) { - return (sys_audioapiopened == API_JACK); + if (sys_audioapiopened == API_NONE) + return (audio_nextsettings.a_api == API_JACK); + else + return (sys_audioapiopened == API_JACK); } /* get names of available audio devices for the specified API */ From 78bebb4a2f69e1ca39e08048d1b6e0fcb1bee753 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Tue, 14 Mar 2023 22:59:04 +0100 Subject: [PATCH 176/450] don't open audio device if not needed If the user switches audio backends or applies audio settings, only start the audio device if DSP is on or audio should be kept open --- src/s_audio.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/s_audio.c b/src/s_audio.c index 704b9cddc..0f6287af4 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -742,7 +742,8 @@ void glob_audio_dialog(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) as.a_blocksize = DEFDACBLKSIZE; sys_set_audio_settings(&as); - sys_reopen_audio(); + if (canvas_dspstate || audio_shouldkeepopen()) + sys_reopen_audio(); } void sys_listdevs(void) @@ -794,12 +795,7 @@ void glob_audio_setapi(void *dummy, t_floatarg f) int newapi = f; if (newapi) { - if (newapi == audio_nextsettings.a_api) - { - if (!audio_isopen() && audio_shouldkeepopen()) - sys_reopen_audio(); - } - else + if (newapi != audio_nextsettings.a_api) { audio_nextsettings.a_api = newapi; /* bash device params back to default */ @@ -812,7 +808,8 @@ void glob_audio_setapi(void *dummy, t_floatarg f) audio_nextsettings.a_choutdevvec[0] = SYS_DEFAULTCH; audio_nextsettings.a_blocksize = DEFDACBLKSIZE; audio_nextsettings.a_callback = 0; - sys_reopen_audio(); + if (canvas_dspstate || audio_shouldkeepopen()) + sys_reopen_audio(); } glob_audio_properties(0, 0); } From acc3915d357e2bc68f05e710812ca3bc033c9c63 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Wed, 15 Mar 2023 00:23:28 +0100 Subject: [PATCH 177/450] improve MIDI scheduling * only delay outgoing MIDI messages if audio is delayed (polling scheduler with DSP on) * properly reset MIDI time difference in sys_initmidiqueue() * add sched_get_using_audio() as counter part to sched_set_using_audio() --- src/m_sched.c | 12 ++++++++---- src/s_midi.c | 15 ++++++++++----- src/s_stuff.h | 1 + 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/m_sched.c b/src/m_sched.c index 7e95c56b9..a9763f619 100644 --- a/src/m_sched.c +++ b/src/m_sched.c @@ -268,6 +268,11 @@ void sched_set_using_audio(int flag) pdgui_vmess("pdtk_pd_audio", "r", flag ? "on" : "off"); } +int sched_get_using_audio(void) +{ + return sched_useaudio; +} + /* take the scheduler forward one DSP tick, also handling clock timeouts */ void sched_tick(void) { @@ -372,7 +377,6 @@ int sched_idletask(void) static void m_pollingscheduler(void) { sys_lock(); - sys_initmidiqueue(); /* NB: we don't need to lock the scheduler mutex because sys_quit will only be modified from this thread */ while (!sys_quit) /* outer loop runs once per tick */ @@ -458,9 +462,6 @@ int sys_try_reopen_audio(void); static void m_callbackscheduler(void) { - sys_lock(); - sys_initmidiqueue(); - sys_unlock(); /* wait in a loop until the audio callback asks us to quit. */ pthread_mutex_lock(&sched_mutex); while (!sys_quit) @@ -531,6 +532,9 @@ int m_mainloop(void) if (reopen) sys_do_reopen_audio(); } + sys_lock(); + sys_initmidiqueue(); + sys_unlock(); if (sched_useaudio == SCHED_AUDIO_CALLBACK) m_callbackscheduler(); else diff --git a/src/s_midi.c b/src/s_midi.c index ef25dcff4..9f8c4401f 100644 --- a/src/s_midi.c +++ b/src/s_midi.c @@ -98,7 +98,10 @@ static double sys_whenupdate; void sys_initmidiqueue(void) { sys_midiinittime = clock_getlogicaltime(); + /* force update in sys_setmiditimediff() */ sys_dactimeminusrealtime = sys_adctimeminusrealtime = 0; + sys_newdactimeminusrealtime = sys_newadctimeminusrealtime = -1e20; + sys_whenupdate = 0; } /* this is called from the OS dependent code from time to time when we @@ -165,7 +168,7 @@ static void sys_putnext(void) /* #define TEST_DEJITTER */ -void sys_pollmidioutqueue(void) +static void sys_pollmidioutqueue(void) { #ifdef TEST_DEJITTER static int db = 0; @@ -180,8 +183,8 @@ void sys_pollmidioutqueue(void) #ifdef TEST_DEJITTER if (!db) { - post("out: del %f, midiRT %f logicaltime %f, RT %f dacminusRT %f", - (midi_outqueue[midi_outtail].q_time - midirealtime), + post("out: del %f, midiRT %f, logicaltime %f, RT %f, dacminusRT %f", + (midirealtime - midi_outqueue[midi_outtail].q_time), midirealtime, .001 * clock_gettimesince(sys_midiinittime), sys_getrealtime(), sys_dactimeminusrealtime); db = 1; @@ -439,7 +442,7 @@ void sys_pollmidiinqueue(void) if (!db) { post("in del %f, logicaltime %f, RT %f adcminusRT %f", - (midi_inqueue[midi_intail].q_time - logicaltime), + (logicaltime - midi_inqueue[midi_intail].q_time), logicaltime, sys_getrealtime(), sys_adctimeminusrealtime); db = 1; } @@ -491,7 +494,9 @@ void sys_midibytein(int portno, int byte) void sys_pollmidiqueue(void) { - sys_setmiditimediff(0, 1e-6 * sys_schedadvance); + double outbuftime = sched_get_using_audio() == SCHED_AUDIO_POLL ? + (sys_schedadvance * 1e-6) : 0; + sys_setmiditimediff(0, outbuftime); #ifdef USEAPI_ALSA if (sys_midiapi == API_ALSA) sys_alsa_poll_midi(); diff --git a/src/s_stuff.h b/src/s_stuff.h index 0cf56b154..06fb951c2 100644 --- a/src/s_stuff.h +++ b/src/s_stuff.h @@ -313,6 +313,7 @@ EXTERN void sys_log_error(int type); #define SCHED_AUDIO_POLL 1 #define SCHED_AUDIO_CALLBACK 2 void sched_set_using_audio(int flag); +int sched_get_using_audio(void); extern int sys_sleepgrain; /* override value set in command line */ EXTERN int sched_get_sleepgrain( void); /* returns actual value */ From 150858a65e7f580a32b39746338c0fb163faa80b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 21 Mar 2023 16:05:13 +0100 Subject: [PATCH 178/450] jack: try not to allocate too much memory on the stack Closes: https://github.com/pure-data/pure-data/issues/1930 --- src/s_audio_jack.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/s_audio_jack.c b/src/s_audio_jack.c index 99d58d838..5d2e66372 100644 --- a/src/s_audio_jack.c +++ b/src/s_audio_jack.c @@ -54,6 +54,28 @@ #define THREADSIGNAL #endif +#ifndef HAVE_ALLOCA /* can work without alloca() but we never need it */ +# define HAVE_ALLOCA 1 +#endif +#ifdef ALLOCA +# undef ALLOCA +#endif +#ifdef FREEA +# undef FREEA +#endif + +#if HAVE_ALLOCA +# define ALLOCA(t, x, n, max) ((x) = (t *)((n) < (max) ? \ + alloca((n) * sizeof(t)) : getbytes((n) * sizeof(t)))) +# define FREEA(t, x, n, max) ( \ + ((n) < (max) || (freebytes((x), (n) * sizeof(t)), 0))) +#else +# define ALLOCA(t, x, n, max) ((x) = (t *)getbytes((n) * sizeof(t))) +# define FREEA(t, x, n, max) (freebytes((x), (n) * sizeof(t))) +#endif + +#define MAX_ALLOCA_SAMPLES 16*1024 + static jack_nframes_t jack_out_max; static jack_nframes_t jack_filled = 0; static int jack_started = 0; @@ -139,6 +161,7 @@ static int jack_polling_callback(jack_nframes_t nframes, void *unused) #ifdef THREADSIGNAL sys_semaphore_post(jack_sem); #endif + FREEA(t_sample, muxbuffer, muxbufsize, MAX_ALLOCA_SAMPLES); return 0; } From 2e7d154ad1b7107c95df16d1ded454b768a11ff8 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Wed, 17 May 2023 22:56:26 +0200 Subject: [PATCH 179/450] s_audio_paring.c: use Mach semaphores on macOS --- src/m_sched.c | 2 +- src/s_audio_paring.c | 51 ++++++++++++++++++++++++++++++++++++-------- 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/m_sched.c b/src/m_sched.c index a9763f619..b85266ac9 100644 --- a/src/m_sched.c +++ b/src/m_sched.c @@ -485,7 +485,7 @@ static void m_callbackscheduler(void) ts.tv_sec = now.tv_sec + (time_t)timeout; ts.tv_nsec = (timeout - (time_t)timeout) * 1000000000; #endif - /* wait for semaphore (with timeout) */ + /* sleep on condition variable (with timeout) */ timewas = pd_this->pd_systime; wasinprogress = callback_inprogress; if (pthread_cond_timedwait(&sched_cond, &sched_mutex, &ts) == ETIMEDOUT) diff --git a/src/s_audio_paring.c b/src/s_audio_paring.c index abb75024e..3c2ac65bc 100644 --- a/src/s_audio_paring.c +++ b/src/s_audio_paring.c @@ -48,17 +48,20 @@ #else /* _WIN32 */ #include #include -#if defined(__linux__) || defined(__FreeBSD__) || \ +#if defined(__APPLE__) && defined(__MACH__) +/* macOS does not support unnamed posix semaphores, + * so we use Mach semaphores instead. */ +#include +#define HAVE_MACH_SEMAPHORE +#elif defined(__linux__) || defined(__FreeBSD__) || \ defined(__NetBSD__) || defined(__OpenBSD__) -#define HAVE_POSIX_SEMAPHORE #include +#define HAVE_POSIX_SEMAPHORE #else /* Some platforms (including Apple) do not support unnamed posix semaphores, * others might not implement sem_timedwait(); to be on the safe side, we * we simply emulate it with a counter, mutex and condition variable. * The critical section is so short that there should not be any locking. - * NOTE: we cannot use Mach semaphores for Apple because they do not have - * a wait function with time-out... */ #include #endif @@ -281,7 +284,9 @@ long sys_ringbuf_read(PA_VOLATILE sys_ringbuf *rbuf, void *data, long numBytes, #ifndef _WIN32 struct _semaphore { -#ifdef HAVE_POSIX_SEMAPHORE +#ifdef HAVE_MACH_SEMAPHORE + semaphore_t sem; +#elif defined(HAVE_POSIX_SEMAPHORE) sem_t sem; #else pthread_mutex_t mutex; @@ -297,7 +302,9 @@ t_semaphore * sys_semaphore_create(void) return (t_semaphore *)CreateSemaphoreA(0, 0, LONG_MAX, 0); #else /* _WIN32 */ t_semaphore *sem = (t_semaphore *)malloc(sizeof(t_semaphore)); -#ifdef HAVE_POSIX_SEMAPHORE +#ifdef HAVE_MACH_SEMAPHORE + semaphore_create(mach_task_self(), &sem->sem, SYNC_POLICY_FIFO, 0); +#elif defined(HAVE_POSIX_SEMAPHORE) sem_init(&sem->sem, 0, 0); #else pthread_cond_init(&sem->condvar, 0); @@ -305,7 +312,7 @@ t_semaphore * sys_semaphore_create(void) sem->count = 0; #endif return sem; -#endif +#endif /* _WIN32 */ } void sys_semaphore_destroy(t_semaphore *sem) @@ -313,20 +320,24 @@ void sys_semaphore_destroy(t_semaphore *sem) #ifdef _WIN32 CloseHandle((HANDLE)sem); #else /* _WIN32 */ -#ifdef HAVE_POSIX_SEMAPHORE +#ifdef HAVE_MACH_SEMAPHORE + semaphore_destroy(mach_task_self(), sem->sem); +#elif defined(HAVE_POSIX_SEMAPHORE) sem_destroy(&sem->sem); #else pthread_mutex_destroy(&sem->mutex); pthread_cond_destroy(&sem->condvar); #endif free(sem); -#endif +#endif /* _WIN32 */ } void sys_semaphore_wait(t_semaphore *sem) { #if defined(_WIN32) WaitForSingleObject((HANDLE)sem, INFINITE); +#elif defined(HAVE_MACH_SEMAPHORE) + semaphore_wait(sem->sem); #elif defined(HAVE_POSIX_SEMAPHORE) while (sem_wait(&sem->sem) == -1 && errno == EINTR) continue; #else @@ -342,7 +353,27 @@ int sys_semaphore_waitfor(t_semaphore *sem, double seconds) { #ifdef _WIN32 return WaitForSingleObject((HANDLE)sem, seconds * 1000.0) != WAIT_TIMEOUT; +#elif defined(HAVE_MACH_SEMAPHORE) + mach_timespec_t ts; + ts.tv_sec = (unsigned int)seconds; + ts.tv_nsec = (seconds - ts.tv_sec) * 1000000000; + return semaphore_timedwait(sem->sem, ts) != KERN_OPERATION_TIMED_OUT; +#else /* Posix semaphore and pthreads */ + /* first check if the semaphore is available */ +#ifdef HAVE_POSIX_SEMAPHORE + if (sem_trywait(&sem->sem) == 0) + return 1; #else + pthread_mutex_lock(&sem->mutex); + if (sem->count > 0) + { + sem->count--; + pthread_mutex_unlock(&sem->mutex); + return 1; + } + pthread_mutex_unlock(&sem->mutex); +#endif + /* otherwise wait for it to become available */ struct timespec ts; struct timeval now; gettimeofday(&now, 0); @@ -378,6 +409,8 @@ void sys_semaphore_post(t_semaphore *sem) { #if defined(_WIN32) ReleaseSemaphore((HANDLE)sem, 1, NULL); +#elif defined(HAVE_MACH_SEMAPHORE) + semaphore_signal(sem->sem); #elif defined(HAVE_POSIX_SEMAPHORE) sem_post(&sem->sem); #else From 6e3459580dd1387e24e04c929e23e9159bc3c1bc Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Thu, 22 Jun 2023 02:49:05 +0200 Subject: [PATCH 180/450] portaudio: remove legacy blocking mode It hasn't ever been used in all these years and most likely never will. --- src/s_audio_pa.c | 102 ++++++++--------------------------------------- 1 file changed, 16 insertions(+), 86 deletions(-) diff --git a/src/s_audio_pa.c b/src/s_audio_pa.c index be10514f8..acb2cd877 100644 --- a/src/s_audio_pa.c +++ b/src/s_audio_pa.c @@ -6,19 +6,13 @@ the main way in for Mac OS and, with Michael Casey's help, also into ASIO in Windows. - Both blocking and non-blocking call styles are supported. If non-blocking - is requested, either we call portaudio in non-blocking mode, or else we - call portaudio in callback mode and manage our own FIFO se we can offer - Pd "blocking" I/O calls. To do the latter we define FAKEBLOCKING; this - works better in MACOSX (gets 40 msec lower latency!) and might also in - Windows. If FAKEBLOCKING is defined we can choose between two methods - for waiting on the (presumably other-thread) I/O to complete, either - correct thread synchronization (by defining THREADSIGNAL) or just sleeping - and polling. -*/ + For the polling scheduler, we call portaudio in callback mode and manage + our own FIFO, so we can offer Pd "blocking" I/O calls. We can choose + between two methods for waiting on the I/O to complete, either correct + thread synchronization (by defining THREADSIGNAL) or just sleeping and polling. -/* dolist... - switch to usleep in s_inter.c + For the callback scheduler, we call portaudio in callback mode and simply + provide a callback function that ticks the scheduler, polls the GUI, etc. */ #include "m_pd.h" @@ -34,16 +28,13 @@ #endif #include "m_private_utils.h" +#include "s_audio_paring.h" #ifndef _WIN32 /* for the "dup2" workaround -- do we still need it? */ #include #endif -#if 1 -#define FAKEBLOCKING -#endif - -/* enable thread signaling instead of polling */ +/* enable proper thread synchronization instead of polling */ #if 1 #define THREADSIGNAL #endif @@ -60,11 +51,8 @@ static t_sample *pa_soundin, *pa_soundout; static t_audiocallback pa_callback; static int pa_started; -static int pa_nbuffers; static volatile int pa_dio_error; -#ifdef FAKEBLOCKING -#include "s_audio_paring.h" static PA_VOLATILE char *pa_outbuf; static PA_VOLATILE sys_ringbuf pa_outring; static PA_VOLATILE char *pa_inbuf; @@ -78,7 +66,6 @@ t_semaphore *pa_sem; #define POLL_TIMEOUT 2.0 #endif static double pa_lastdactime; -#endif /* FAKEBLOCKING */ static void pa_init(void) /* Initialize PortAudio */ { @@ -159,7 +146,6 @@ static int pa_lowlevel_callback(const void *inputBuffer, return 0; } -#ifdef FAKEBLOCKING /* callback for "non-callback" case in which we actually open portaudio in callback mode but fake "blocking mode". We communicate with the main thread via two FIFOs: the audio input buffer is copied to our input FIFO @@ -223,10 +209,9 @@ static int pa_fifo_callback(const void *inputBuffer, #endif return 0; } -#endif /* FAKEBLOCKING */ PaError pa_open_callback(double samplerate, int inchannels, int outchannels, - int framesperbuf, int nbuffers, int indeviceno, int outdeviceno, PaStreamCallback *callbackfn) + int framesperbuf, int indeviceno, int outdeviceno, PaStreamCallback *callbackfn) { long bytesPerSample; PaError err; @@ -243,21 +228,15 @@ PaError pa_open_callback(double samplerate, int inchannels, int outchannels, instreamparams.channelCount = inchannels; instreamparams.sampleFormat = paFloat32; instreamparams.hostApiSpecificStreamInfo = 0; + instreamparams.suggestedLatency = 0; + if (inchannels > 0 && indeviceno >= 0) + p_instreamparams = &instreamparams; outstreamparams.device = outdeviceno; outstreamparams.channelCount = outchannels; outstreamparams.sampleFormat = paFloat32; outstreamparams.hostApiSpecificStreamInfo = 0; - -#ifdef FAKEBLOCKING - instreamparams.suggestedLatency = outstreamparams.suggestedLatency = 0; -#else - instreamparams.suggestedLatency = outstreamparams.suggestedLatency = - nbuffers * framesperbuf / samplerate; -#endif /* FAKEBLOCKING */ - - if (inchannels > 0 && indeviceno >= 0) - p_instreamparams = &instreamparams; + outstreamparams.suggestedLatency = 0; if (outchannels > 0 && outdeviceno >= 0) p_outstreamparams = &outstreamparams; @@ -414,7 +393,6 @@ int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin, pa_soundin = soundin; pa_soundout = soundout; -#ifdef FAKEBLOCKING if (pa_inbuf) free((char *)pa_inbuf), pa_inbuf = 0; if (pa_outbuf) @@ -423,7 +401,6 @@ int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin, pa_sem = sys_semaphore_create(); #endif pa_lastdactime = 0; -#endif if (!inchans && !outchans) return (0); @@ -432,11 +409,10 @@ int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin, { pa_callback = callbackfn; err = pa_open_callback(rate, inchans, outchans, - framesperbuf, 0, pa_indev, pa_outdev, pa_lowlevel_callback); + framesperbuf, pa_indev, pa_outdev, pa_lowlevel_callback); } else { -#ifdef FAKEBLOCKING if (pa_inchans) { pa_inbuf = malloc(nbuffers*framesperbuf*pa_inchans*sizeof(float)); @@ -451,15 +427,10 @@ int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin, nbuffers*framesperbuf*pa_outchans*sizeof(float), pa_outbuf, 0); } err = pa_open_callback(rate, inchans, outchans, - framesperbuf, 0, pa_indev, pa_outdev, pa_fifo_callback); -#else - err = pa_open_callback(rate, inchans, outchans, - framesperbuf, nbuffers, pa_indev, pa_outdev, 0); -#endif + framesperbuf, pa_indev, pa_outdev, pa_fifo_callback); } pa_started = 0; pa_dio_error = 0; - pa_nbuffers = nbuffers; if (err != paNoError) { pd_error(0, "error opening audio: %s", Pa_GetErrorText(err)); @@ -478,7 +449,6 @@ void pa_close_audio(void) Pa_CloseStream(pa_stream); } pa_stream = 0; -#ifdef FAKEBLOCKING if (pa_inbuf) free((char *)pa_inbuf), pa_inbuf = 0; if (pa_outbuf) @@ -490,7 +460,6 @@ void pa_close_audio(void) pa_sem = 0; } #endif -#endif } void sys_do_close_audio(void); @@ -541,7 +510,6 @@ int pa_send_dacs(void) conversionbuf = (float *)alloca((STUFF->st_inchannels > STUFF->st_outchannels? STUFF->st_inchannels:STUFF->st_outchannels) * DEFDACBLKSIZE * sizeof(float)); -#ifdef FAKEBLOCKING while ( (sys_ringbuf_getreadavailable(&pa_inring) < (long)(STUFF->st_inchannels * DEFDACBLKSIZE*sizeof(t_sample))) || @@ -587,45 +555,7 @@ int pa_send_dacs(void) k++, fp++, fp3 += STUFF->st_inchannels) *fp = *fp3; } -#else /* FAKEBLOCKING */ - /* write output */ - if (STUFF->st_outchannels) - { - if (!pa_started) - { - memset(conversionbuf, 0, - STUFF->st_outchannels * DEFDACBLKSIZE * sizeof(float)); - for (j = 0; j < pa_nbuffers-1; j++) - Pa_WriteStream(pa_stream, conversionbuf, DEFDACBLKSIZE); - } - for (j = 0, fp = STUFF->st_soundout, fp2 = conversionbuf; - j < STUFF->st_outchannels; j++, fp2++) - for (k = 0, fp3 = fp2; k < DEFDACBLKSIZE; - k++, fp++, fp3 += STUFF->st_outchannels) - *fp3 = *fp; - if (Pa_WriteStream(pa_stream, conversionbuf, DEFDACBLKSIZE) != paNoError) - { - pa_reopen_audio(); - return SENDDACS_NO; - } - } - /* read input */ - if (STUFF->st_inchannels) - { - if (Pa_ReadStream(pa_stream, conversionbuf, DEFDACBLKSIZE) != paNoError) - { - pa_reopen_audio(); - return SENDDACS_NO; - } - for (j = 0, fp = STUFF->st_soundin, fp2 = conversionbuf; - j < STUFF->st_inchannels; j++, fp2++) - for (k = 0, fp3 = fp2; k < DEFDACBLKSIZE; - k++, fp++, fp3 += STUFF->st_inchannels) - *fp = *fp3; - } - if ((sys_getrealtime() - timeref) > 0.002) - retval = SENDDACS_SLEPT; -#endif /* FAKEBLOCKING */ + if (pa_dio_error) { sys_log_error(ERR_RESYNC); From a3471864306f06ce32f8d76d3ff19fc417e71f11 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Thu, 30 Nov 2023 22:25:57 +0100 Subject: [PATCH 181/450] fix toggling DSP sys_reopen_audio() and sys_close_audio() only send requests to the scheduler, so audio_isopen() can give misleading results. Instead, always close/reopen device when changing DSP state, unless audio should be kept open. This makes sure that we can still turn DSP off and on again in the same scheduler tick! Let's remove sys_set_audio_state() as it does not really serve a useful purpose. --- src/g_canvas.c | 7 +++++-- src/s_audio.c | 11 ----------- src/s_stuff.h | 1 - 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/g_canvas.c b/src/g_canvas.c index d35d1cc65..83a7a3eea 100644 --- a/src/g_canvas.c +++ b/src/g_canvas.c @@ -1459,14 +1459,17 @@ void glob_dsp(void *dummy, t_symbol *s, int argc, t_atom *argv) int newstate = atom_getfloat(argv); if (newstate && !THISGUI->i_dspstate) { - sys_set_audio_state(1); + /* if audio should be kept open, we don't reopen the device, + unless it really has been closed (for whatever reason) */ + if (!audio_shouldkeepopen() || !audio_isopen()) + sys_reopen_audio(); canvas_start_dsp(); } else if (!newstate && THISGUI->i_dspstate) { canvas_stop_dsp(); if (!audio_shouldkeepopen()) - sys_set_audio_state(0); + sys_close_audio(); } } else post("dsp state %d", THISGUI->i_dspstate); diff --git a/src/s_audio.c b/src/s_audio.c index 0f6287af4..b7c0f3dff 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -819,17 +819,6 @@ void glob_audio_setapi(void *dummy, t_floatarg f) } } - /* start or stop the audio hardware */ -void sys_set_audio_state(int onoff) -{ - /* NB: only reopen audio if it has been closed, so we don't - interfere with audio_shouldkeepopen()! See also glob_dsp(). */ - if (onoff && !audio_isopen()) /* start */ - sys_reopen_audio(); - else if (!onoff && audio_isopen()) - sys_close_audio(); -} - #define MAXAPIENTRY 10 typedef struct _apientry { diff --git a/src/s_stuff.h b/src/s_stuff.h index 06fb951c2..66e3ac0b4 100644 --- a/src/s_stuff.h +++ b/src/s_stuff.h @@ -148,7 +148,6 @@ typedef void (*t_audiocallback)(void); extern int sys_schedadvance; -void sys_set_audio_state(int onoff); int sys_send_dacs(void); void sys_reportidle(void); void sys_listdevs(void); From 58b59a5f88312de79341f53dce008d383893d6fc Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Thu, 30 Nov 2023 23:51:18 +0100 Subject: [PATCH 182/450] sys_setchr: only update DSP if channels or samplerate have changed this prevents redundant DSP graph updates, particularly when toggling DSP --- src/s_audio.c | 56 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/src/s_audio.c b/src/s_audio.c index b7c0f3dff..692a62113 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -81,33 +81,53 @@ static int audio_getfixedblocksize(int api) void sys_setchsr(int chin, int chout, int sr) { + int oldchin = STUFF->st_inchannels; + int oldchout = STUFF->st_outchannels; + int oldinbytes = (oldchin ? oldchin : 2) * + (DEFDACBLKSIZE*sizeof(t_sample)); + int oldoutbytes = (oldchout ? oldchout : 2) * + (DEFDACBLKSIZE*sizeof(t_sample)); int inbytes = (chin ? chin : 2) * - (DEFDACBLKSIZE*sizeof(t_sample)); + (DEFDACBLKSIZE*sizeof(t_sample)); int outbytes = (chout ? chout : 2) * - (DEFDACBLKSIZE*sizeof(t_sample)); - - if (STUFF->st_soundin) - freebytes(STUFF->st_soundin, - (STUFF->st_inchannels? STUFF->st_inchannels : 2) * - (DEFDACBLKSIZE*sizeof(t_sample))); - if (STUFF->st_soundout) - freebytes(STUFF->st_soundout, - (STUFF->st_outchannels? STUFF->st_outchannels : 2) * - (DEFDACBLKSIZE*sizeof(t_sample))); - STUFF->st_inchannels = chin; - STUFF->st_outchannels = chout; - if (!audio_isfixedsr(sys_audioapiopened)) - STUFF->st_dacsr = sr; + (DEFDACBLKSIZE*sizeof(t_sample)); + int changed = 0; - STUFF->st_soundin = (t_sample *)getbytes(inbytes); + /* NB: reallocating the input/output channel arrays requires a DSP + graph update, so we only do it if the channel count has changed! */ + if (chin != oldchin) + { + if (STUFF->st_soundin) + freebytes(STUFF->st_soundin, oldinbytes); + STUFF->st_soundin = (t_sample *)getbytes(inbytes); + STUFF->st_inchannels = chin; + changed = 1; + } memset(STUFF->st_soundin, 0, inbytes); - STUFF->st_soundout = (t_sample *)getbytes(outbytes); + if (chout != oldchout) + { + if (STUFF->st_soundout) + freebytes(STUFF->st_soundout, oldoutbytes); + STUFF->st_soundout = (t_sample *)getbytes(outbytes); + STUFF->st_outchannels = chout; + changed = 1; + } memset(STUFF->st_soundout, 0, outbytes); + if (!audio_isfixedsr(sys_audioapiopened)) + { + if (STUFF->st_dacsr != sr) + changed = 1; + STUFF->st_dacsr = sr; + } + logpost(NULL, PD_VERBOSE, "input channels = %d, output channels = %d", STUFF->st_inchannels, STUFF->st_outchannels); - canvas_resume_dsp(canvas_suspend_dsp()); + + /* prevent redundant DSP updates, particularly when toggling DSP */ + if (changed) + canvas_update_dsp(); } static void audio_make_sane(int *ndev, int *devvec, From bffbd4ad1bbce8f657874e803aa8c454ffcc6a19 Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Fri, 1 Dec 2023 00:19:31 +0100 Subject: [PATCH 183/450] sys_setchrs() may update the DSP graph and consequently send Pd messages ("pd-dsp-started" and "pd-dsp-stopped"), so we should lock Pd. --- src/s_audio.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/s_audio.c b/src/s_audio.c index 692a62113..dea159b09 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -361,7 +361,10 @@ void sys_do_reopen_audio(void) as.a_chindevvec, &totalinchans, MAXAUDIOINDEV); audio_compact_and_count_channels(&as.a_noutdev, as.a_outdevvec, as.a_choutdevvec, &totaloutchans, MAXAUDIOOUTDEV); + /* NB: sys_setchsr() may update the DSP graph, so we need to lock Pd! */ + sys_lock(); sys_setchsr(totalinchans, totaloutchans, as.a_srate); + sys_unlock(); if (!as.a_nindev && !as.a_noutdev) { sched_set_using_audio(SCHED_AUDIO_NONE); From 42f868ef3bcdbe74646458c0a4f88b3f58735c8a Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Mon, 8 Apr 2024 16:20:59 +0200 Subject: [PATCH 184/450] sched_tick: only break if sys_quit is SYS_QUIT_QUIT some functions may indirectly call sys_reopenaudio() or sys_closeaudio(), which wouuld in turn set sys_quit. in libpd this would prevent dsp_tick() from being called because sys_quit would never get cleared. --- src/m_sched.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/m_sched.c b/src/m_sched.c index b85266ac9..40ed2f48a 100644 --- a/src/m_sched.c +++ b/src/m_sched.c @@ -291,7 +291,8 @@ void sched_tick(void) countdown = 5000; (void)sys_pollgui(); } - if (sys_quit) + /* ignore SYS_QUIT_REOPEN and SYS_QUIT_CLOSE! */ + if (sys_quit == SYS_QUIT_QUIT) return; } pd_this->pd_systime = next_sys_time; From aee2b681750e1e7b9f88a735c6f8df11e787faeb Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Mon, 8 Apr 2024 17:45:01 +0200 Subject: [PATCH 185/450] sys_setchsr: fix potential crash with -nosound --- src/s_audio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/s_audio.c b/src/s_audio.c index dea159b09..dbb6650fe 100644 --- a/src/s_audio.c +++ b/src/s_audio.c @@ -95,7 +95,7 @@ void sys_setchsr(int chin, int chout, int sr) /* NB: reallocating the input/output channel arrays requires a DSP graph update, so we only do it if the channel count has changed! */ - if (chin != oldchin) + if (!STUFF->st_soundin || chin != oldchin) { if (STUFF->st_soundin) freebytes(STUFF->st_soundin, oldinbytes); @@ -105,7 +105,7 @@ void sys_setchsr(int chin, int chout, int sr) } memset(STUFF->st_soundin, 0, inbytes); - if (chout != oldchout) + if (!STUFF->st_soundout || chout != oldchout) { if (STUFF->st_soundout) freebytes(STUFF->st_soundout, oldoutbytes); From 1203a933f32a8e08dc9124cb5391fb012bb15a6e Mon Sep 17 00:00:00 2001 From: Christof Ressi Date: Mon, 8 Apr 2024 17:46:37 +0200 Subject: [PATCH 186/450] add sched_init() to make sure the scheduler mutex and condvar are always initialized --- src/m_pd.c | 2 ++ src/m_sched.c | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/m_pd.c b/src/m_pd.c index 35f9d87d9..ac565e53e 100644 --- a/src/m_pd.c +++ b/src/m_pd.c @@ -304,6 +304,7 @@ void pd_anything(t_pd *x, t_symbol *s, int argc, t_atom *argv) } void mess_init(void); +void sched_init(void); void obj_init(void); void conf_init(void); void glob_init(void); @@ -347,6 +348,7 @@ void pd_term(void) void pd_init_systems(void) { mess_init(); + sched_init(); sys_lock(); obj_init(); conf_init(); diff --git a/src/m_sched.c b/src/m_sched.c index 40ed2f48a..67d8b1645 100644 --- a/src/m_sched.c +++ b/src/m_sched.c @@ -222,6 +222,18 @@ void glob_fastforward(void *dummy, t_floatarg f) sched_fastforward = TIMEUNITPERMSEC * f; } +void sched_init(void) +{ + pthread_mutex_init(&sched_mutex, 0); + pthread_cond_init(&sched_cond, 0); +} + +void sched_term(void) +{ + pthread_mutex_destroy(&sched_mutex); + pthread_cond_destroy(&sched_cond); +} + void dsp_tick(void); /* ask the scheduler to quit; this is thread-safe, so it @@ -513,9 +525,6 @@ void sys_do_close_audio(void); int m_mainloop(void) { - pthread_mutex_init(&sched_mutex, 0); - pthread_cond_init(&sched_cond, 0); - /* open audio and MIDI */ sys_reopen_midi(); if (audio_shouldkeepopen()) @@ -545,8 +554,6 @@ int m_mainloop(void) sys_do_close_audio(); sys_close_midi(); - pthread_mutex_destroy(&sched_mutex); - pthread_cond_destroy(&sched_cond); return (sys_exitcode); } From f43008b37fbad7289ee11eec75d7e77982826e50 Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 8 Apr 2024 14:47:00 -0300 Subject: [PATCH 187/450] minor edit this is also to trigger a new test and get rid of compilation errors --- doc/1.manual/x2.htm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 182067137..1f75ec38e 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -135,11 +135,11 @@

        2.1.2. Object boxes

        dashed box

        -

        You only create a particular object by entering text into the object box. -The text consists of atoms, which are separated by spaces. The initial -atom (which needs to be a symbol) determines the type of object Pd will create, -while the subsequent atoms, known as creation arguments, instruct Pd how -to initialize the object. For instance, you can type "+ 13". +

        You only create a particular object after you entered text into the +object box. The text consists of atoms, which are separated by spaces. +The initial atom (which needs to be a symbol) determines the type of object Pd +will create, while the subsequent atoms, known as creation arguments, +instruct Pd how to initialize the object. For instance, you can type "+ 13".

        object box From 414148946e8ba7985e88eebfd8b0d6befa104448 Mon Sep 17 00:00:00 2001 From: porres Date: Mon, 8 Apr 2024 23:50:22 -0300 Subject: [PATCH 188/450] revise reverb-echo abstraction this is used in the audio examples and I made it simpler by removing the 1st argument and just have a local delay name other changes are cosmetics anyway, I was just looking for other bugs that could be similar to the one I just fixed in adsr --- doc/3.audio.examples/A03.line.pd | 40 ++-- doc/3.audio.examples/G08.reverb.pd | 251 ++++++++++++----------- doc/3.audio.examples/partial.pd | 4 +- doc/3.audio.examples/reverb-echo.pd | 18 +- doc/3.audio.examples/spectrum-partial.pd | 85 ++++---- doc/4.data.structures/voice.pd | 2 +- 6 files changed, 197 insertions(+), 203 deletions(-) diff --git a/doc/3.audio.examples/A03.line.pd b/doc/3.audio.examples/A03.line.pd index 791fd6beb..453166e5e 100644 --- a/doc/3.audio.examples/A03.line.pd +++ b/doc/3.audio.examples/A03.line.pd @@ -1,27 +1,27 @@ #N canvas 292 32 863 615 12; -#X obj 94 132 osc~ 440; -#X obj 102 405 dac~; -#X obj 114 352 *~; +#X obj 84 132 osc~ 440; +#X obj 84 405 dac~; +#X obj 84 313 *~; #X obj 132 326 line~; -#X msg 123 166 0.1 2000; -#X msg 143 251 0 2000; -#X msg 132 188 0.1 50; -#X msg 150 273 0 50; -#X msg 139 210 0.1; -#X msg 155 295 0; -#X text 284 187 ON; -#X text 281 280 OFF; +#X msg 109 166 0.1 2000; +#X msg 144 251 0 2000; +#X msg 121 188 0.1 50; +#X msg 151 273 0 50; +#X msg 132 210 0.1; +#X msg 156 295 0; +#X text 273 187 ON; +#X text 282 280 OFF; #X text 33 23 CONTROLLING AMPLITUDE USING LINE~; -#X text 170 131 <= sine wave; -#X text 190 165 <= slow; -#X text 184 189 <= fast; -#X text 169 210 <= instantly; -#X text 196 251 <= slow; -#X text 188 273 <= fast; -#X text 185 295 <= instantly; +#X text 152 131 <= sine wave; +#X text 176 165 <= slow; +#X text 173 189 <= fast; +#X text 162 210 <= instantly; +#X text 197 251 <= slow; +#X text 189 273 <= fast; +#X text 186 295 <= instantly; #X text 179 326 <= ramp generator; -#X text 143 404 <= out; -#X text 115 231 -------------------------------; +#X text 123 405 <= out; +#X text 104 231 -------------------------------; #X text 32 62 In this patch \, the multiplier is configured to multiply two signals. The amplitude is now a signal computed by the [line~] object., f 62; #X text 25 443 The left inlet of [line~] is a target value. It reaches that target in the time specified (in milliseconds) to its right inlet., f 67; #X text 25 479 (In this example \, message boxes with two numbers each are connected to [line~]'s left inlet. Except in some special cases \, Pd objects with more than one inlet will automatically distribute lists of numbers across their inlets. In this case \, "0 50" becomes \, "50 at right and 0 at left."), f 67; diff --git a/doc/3.audio.examples/G08.reverb.pd b/doc/3.audio.examples/G08.reverb.pd index 79c267d9f..90606f000 100644 --- a/doc/3.audio.examples/G08.reverb.pd +++ b/doc/3.audio.examples/G08.reverb.pd @@ -1,19 +1,18 @@ -#N canvas 599 142 502 439 12; +#N canvas 514 73 468 523 12; #X declare -stdpath ./; #N canvas 647 153 533 471 test-input 0; #X obj 240 392 outlet~; #X obj 156 305 -~; -#X obj 65 251 *~ 3; -#X obj 174 225 *~ 2; -#X floatatom 174 93 0 0 0 0 - - - 0; -#X obj 65 217 clip~ 0 0.667; +#X obj 65 261 *~ 3; +#X obj 174 235 *~ 2; +#X floatatom 174 93 6 0 0 0 - - - 0; +#X obj 65 227 clip~ 0 0.667; #X obj 174 147 mtof; #X msg 258 154 1; #X obj 240 359 *~; -#X obj 174 171 phasor~ 0; -#X obj 258 202 tabread4~ dbtorms; -#X obj 258 178 adsr 100 100 2000 0 2000; -#X obj 174 66 inlet; +#X obj 258 222 tabread4~ dbtorms; +#X obj 258 188 adsr 100 100 2000 0 2000; +#X obj 174 56 inlet; #N canvas 746 319 600 392 conversion-tables 0; #N canvas 0 0 450 300 (subpatch) 0; #X array dbtorms 123 float 1; @@ -87,129 +86,137 @@ #X connect 20 1 21 1; #X restore 375 76 pd regenerate-tables; #X restore 323 316 pd conversion-tables; -#X text 215 93 <= pitch; +#X obj 174 181 phasor~; +#X text 221 93 <-- pitch; #X connect 1 0 8 0; #X connect 2 0 1 0; #X connect 3 0 1 1; #X connect 4 0 6 0; #X connect 4 0 7 0; #X connect 5 0 2 0; -#X connect 6 0 9 0; -#X connect 7 0 11 0; +#X connect 6 0 13 0; +#X connect 7 0 10 0; #X connect 8 0 0 0; -#X connect 9 0 3 0; -#X connect 9 0 5 0; -#X connect 10 0 8 1; -#X connect 11 0 10 0; -#X connect 12 0 4 0; -#X restore 81 162 pd test-input; -#X text 98 17 REVERBERATOR; -#X floatatom 81 135 6 10 130 0 - - - 0; -#X floatatom 207 177 6 0 100 0 - - - 0; -#X obj 131 250 output~; -#X text 240 390 updated for Pd version 0.37-1; -#X text 46 52 Here is a simple recirculating reverberator. "Feedback" should be between 0 and 100 - if 100 \, the reverberation lasts forever.; -#N canvas 367 69 824 602 reverb 0; -#X obj 36 21 inlet~; -#X obj 36 45 reverb-echo echo-del1 5.43216; -#X obj 243 233 +~; -#X obj 285 233 +~; -#X obj 54 359 outlet~; -#X obj 124 359 outlet~; -#X obj 243 297 +~; -#X obj 348 298 +~; -#X obj 285 297 -~; -#X obj 387 297 -~; -#X obj 242 366 +~; -#X obj 286 367 +~; -#X obj 330 368 -~; -#X obj 369 368 -~; -#X obj 330 450 *~ 0; -#X obj 286 449 *~ 0; -#X obj 242 448 *~ 0; -#X obj 369 451 *~ 0; -#X obj 519 333 inlet; -#X obj 519 405 / 200; -#X obj 519 357 min 100; -#X obj 519 380 max 0; -#X obj 242 559 delwrite~ loop-del1 60; -#X obj 286 536 delwrite~ loop-del2 71.9345; -#X obj 369 489 delwrite~ loop-del4 95.945; -#X obj 261 172 delread~ loop-del1 60; -#X obj 303 198 delread~ loop-del2 71.9345; -#X obj 405 249 delread~ loop-del4 95.945; -#X obj 387 224 delread~ loop-del3 86.7545; -#X obj 330 513 delwrite~ loop-del3 86.7545; -#X obj 36 69 reverb-echo echo-del2 8.45346; -#X obj 36 93 reverb-echo echo-del3 13.4367; -#X obj 36 117 reverb-echo echo-del4 21.5463; -#X obj 36 141 reverb-echo echo-del5 34.3876; -#X obj 36 165 reverb-echo echo-del6 55.5437; -#X text 256 49 "early echo" generators \, which also increase echo density. Open one to see what they do., f 44; -#X text 260 128 Get the outputs of the recirculating delays. Add the inputs to two of them., f 38; -#X text 420 287 Do a power-conserving mix of them in pairs. First combine (1 \, 2) and (3 \, 4)..., f 41; -#X text 403 361 ...then (1 \, 3) and (2 \, 4), f 14; -#X text 428 444 The two mixing stages have a combined gain of 2 \, so the recirculation gain is limited to 0.5., f 48; -#X text 34 379 Tap outputs from here.; -#X text 581 348 feedback gain on a scale of 0 to 100 to control reverb time., f 30; -#X text 539 516 Put the signals back into the recirculating delays., f 25; -#X connect 0 0 1 0; -#X connect 1 0 30 0; -#X connect 1 1 30 1; +#X connect 9 0 8 1; +#X connect 10 0 9 0; +#X connect 11 0 4 0; +#X connect 13 0 3 0; +#X connect 13 0 5 0; +#X restore 87 185 pd test-input; +#X text 60 21 REVERBERATOR; +#X floatatom 87 155 6 10 130 0 - - - 0; +#X floatatom 147 221 6 0 100 0 - - - 0; +#X obj 87 294 output~; +#X text 211 476 updated for Pd version 0.37-1; +#X text 27 57 Here is a simple recirculating reverberator. "Feedback" should be between 0 and 100 - if 100 \, the reverberation lasts forever.; +#N canvas 342 28 742 700 reverb 1; +#X obj 34 19 inlet~; +#X obj 34 281 +~; +#X obj 164 261 +~; +#X obj 34 649 outlet~; +#X obj 164 649 outlet~; +#X obj 201 345 +~; +#X obj 296 346 +~; +#X obj 233 345 -~; +#X obj 335 345 -~; +#X obj 200 414 +~; +#X obj 234 415 +~; +#X obj 278 416 -~; +#X obj 317 416 -~; +#X obj 548 21 inlet; +#X obj 200 607 delwrite~ loop-del1 60; +#X obj 234 584 delwrite~ loop-del2 71.9345; +#X obj 317 537 delwrite~ loop-del4 95.945; +#X obj 181 200 delread~ loop-del1 60; +#X obj 182 226 delread~ loop-del2 71.9345; +#X obj 353 297 delread~ loop-del4 95.945; +#X obj 335 272 delread~ loop-del3 86.7545; +#X obj 278 561 delwrite~ loop-del3 86.7545; +#X text 184 57 "early echo" generators \, which also increase echo density. Open one to see what they do., f 25; +#X text 184 124 Get the outputs of the recirculating delays. Add the inputs to two of them., f 26; +#X text 368 335 Do a power-conserving mix of them in pairs. First combine (1 \, 2) and (3 \, 4)..., f 21; +#X text 351 409 ...then (1 \, 3) and (2 \, 4), f 14; +#X text 376 492 The two mixing stages have a combined gain of 2 \, so the recirculation gain is limited to 0.5., f 48; +#X text 36 676 Tap outputs from here.; +#X text 569 140 feedback gain on a scale of 0 to 100 to control reverb time., f 20; +#X text 473 583 Put the signals back into the recirculating delays., f 25; +#X obj 548 55 clip 0 100; +#X obj 278 498 *~; +#X obj 234 497 *~; +#X obj 317 499 *~; +#X obj 200 496 *~; +#X obj 548 421 line~; +#X obj 548 83 / 200; +#X msg 548 107 \$1 10; +#X obj 34 53 reverb-echo 5.43216; +#X obj 34 77 reverb-echo 8.45346; +#X obj 34 101 reverb-echo 13.4367; +#X obj 34 125 reverb-echo 21.5463; +#X obj 34 149 reverb-echo 34.3876; +#X obj 34 173 reverb-echo 55.5437; +#X connect 0 0 38 0; +#X connect 1 0 3 0; +#X connect 1 0 5 0; +#X connect 1 0 7 0; #X connect 2 0 4 0; -#X connect 2 0 6 0; -#X connect 2 0 8 0; -#X connect 3 0 5 0; -#X connect 3 0 6 1; -#X connect 3 0 8 1; -#X connect 6 0 10 0; -#X connect 6 0 12 0; -#X connect 7 0 12 1; -#X connect 7 0 10 1; -#X connect 8 0 11 0; -#X connect 8 0 13 0; -#X connect 9 0 11 1; -#X connect 9 0 13 1; -#X connect 10 0 16 0; -#X connect 11 0 15 0; -#X connect 12 0 14 0; -#X connect 13 0 17 0; -#X connect 14 0 29 0; -#X connect 15 0 23 0; -#X connect 16 0 22 0; -#X connect 17 0 24 0; -#X connect 18 0 20 0; -#X connect 19 0 17 1; -#X connect 19 0 16 1; -#X connect 19 0 15 1; -#X connect 19 0 14 1; -#X connect 20 0 21 0; -#X connect 21 0 19 0; -#X connect 25 0 2 1; -#X connect 26 0 3 1; -#X connect 27 0 7 1; -#X connect 27 0 9 1; -#X connect 28 0 7 0; -#X connect 28 0 9 0; -#X connect 30 0 31 0; -#X connect 30 1 31 1; -#X connect 31 0 32 0; -#X connect 31 1 32 1; -#X connect 32 0 33 0; -#X connect 32 1 33 1; -#X connect 33 0 34 0; -#X connect 33 1 34 1; -#X connect 34 0 2 0; -#X connect 34 1 3 0; -#X restore 147 206 pd reverb; -#X obj 329 17 declare -stdpath ./; -#X text 221 207 <-- open to see how it works; -#X text 256 177 <-- feedback (100 maximum); -#X text 130 135 <-- pitch; -#X text 83 331 Many improvements are possible. Much better reverberators can be found in the "extra" library., f 43; +#X connect 2 0 5 1; +#X connect 2 0 7 1; +#X connect 5 0 9 0; +#X connect 5 0 11 0; +#X connect 6 0 11 1; +#X connect 6 0 9 1; +#X connect 7 0 10 0; +#X connect 7 0 12 0; +#X connect 8 0 10 1; +#X connect 8 0 12 1; +#X connect 9 0 34 0; +#X connect 10 0 32 0; +#X connect 11 0 31 0; +#X connect 12 0 33 0; +#X connect 13 0 30 0; +#X connect 17 0 1 1; +#X connect 18 0 2 1; +#X connect 19 0 6 1; +#X connect 19 0 8 1; +#X connect 20 0 6 0; +#X connect 20 0 8 0; +#X connect 30 0 36 0; +#X connect 31 0 21 0; +#X connect 32 0 15 0; +#X connect 33 0 16 0; +#X connect 34 0 14 0; +#X connect 35 0 33 1; +#X connect 35 0 34 1; +#X connect 35 0 32 1; +#X connect 35 0 31 1; +#X connect 36 0 37 0; +#X connect 37 0 35 0; +#X connect 38 0 39 0; +#X connect 38 1 39 1; +#X connect 39 0 40 0; +#X connect 39 1 40 1; +#X connect 40 0 41 0; +#X connect 40 1 41 1; +#X connect 41 0 42 0; +#X connect 41 1 42 1; +#X connect 42 0 43 0; +#X connect 42 1 43 1; +#X connect 43 0 1 0; +#X connect 43 1 2 0; +#X restore 87 250 pd reverb; +#X obj 251 316 declare -stdpath ./; +#X text 161 251 <-- open to see how it works; +#X text 196 221 <-- feedback (100 maximum); +#X msg 87 129 60; +#X text 63 388 Many improvements are possible. Much better reverberators can be found in the "extra" library. They are:, f 43; +#X obj 210 428 rev1~; +#X obj 260 428 rev2~, f 6; +#X obj 311 428 rev3~, f 8; +#X text 119 129 <-- pitch in MIDI (triggers envelope).; +#X text 140 155 <-- you can also click and drag.; #X connect 0 0 7 0; -#X connect 0 0 4 0; #X connect 2 0 0 0; #X connect 3 0 7 1; #X connect 7 0 4 0; #X connect 7 1 4 1; +#X connect 11 0 2 0; diff --git a/doc/3.audio.examples/partial.pd b/doc/3.audio.examples/partial.pd index 93df3d453..6fff1a718 100644 --- a/doc/3.audio.examples/partial.pd +++ b/doc/3.audio.examples/partial.pd @@ -27,7 +27,7 @@ #X text 260 465 natural-sounding decay shape; #X obj 220 191 trigger bang bang; #X text 257 371 decay msg to [line~]; -#X obj 221 73 inlet; +#X obj 220 73 inlet; #X obj 401 110 unpack f f f f; #X obj 51 511 outlet~; #X obj 496 135 v detune_\$0; @@ -39,7 +39,7 @@ #X obj 220 294 v rdur_\$0; #X text 462 319 take fourth root (square root twice) because we'll raise [line~] output to fourth power, f 30; #X obj 422 267 v amp_\$0; -#X obj 221 115 route bang; +#X obj 220 115 route bang; #X obj 610 83 inlet; #X obj 670 83 inlet; #X obj 610 136 mtof; diff --git a/doc/3.audio.examples/reverb-echo.pd b/doc/3.audio.examples/reverb-echo.pd index 514441e2f..b1a6e768a 100644 --- a/doc/3.audio.examples/reverb-echo.pd +++ b/doc/3.audio.examples/reverb-echo.pd @@ -5,20 +5,14 @@ #X obj 212 202 outlet~; #X obj 138 121 +~; #X obj 211 119 -~; -#X obj 211 143 delwrite~ \$1 \$2; -#X obj 212 172 delread~ \$1 \$2; -#X text 45 20 This appears as an abstraction in patch G08.reverb.pd -; -#X text 34 256 This network makes two copies of the (stereo) input -\, one in phase \, the other out of phase and delayed. The total frequency -response is flat. The total signal power out is exactly twice that -of the input \, no matter what frequencies the input contains. This -is used to increase echo density \, by stacking several of these units -with different delay times. Each stage doubles the echo density.; +#X text 45 20 This appears as an abstraction in patch G08.reverb.pd; +#X text 34 256 This network makes two copies of the (stereo) input \, one in phase \, the other out of phase and delayed. The total frequency response is flat. The total signal power out is exactly twice that of the input \, no matter what frequencies the input contains. This is used to increase echo density \, by stacking several of these units with different delay times. Each stage doubles the echo density.; +#X obj 211 143 delwrite~ \$0-echo-del \$1; +#X obj 212 172 delread~ \$0-echo-del \$1; #X connect 0 0 4 0; #X connect 0 0 5 0; #X connect 1 0 4 1; #X connect 1 0 5 1; #X connect 4 0 2 0; -#X connect 5 0 6 0; -#X connect 7 0 3 0; +#X connect 5 0 8 0; +#X connect 9 0 3 0; diff --git a/doc/3.audio.examples/spectrum-partial.pd b/doc/3.audio.examples/spectrum-partial.pd index d7cf04100..7b97a2798 100644 --- a/doc/3.audio.examples/spectrum-partial.pd +++ b/doc/3.audio.examples/spectrum-partial.pd @@ -1,57 +1,50 @@ -#N canvas 211 116 733 546 12; -#X obj 75 424 osc~; -#X obj 125 206 r poll-table; -#X obj 171 349 + 50; -#X obj 171 375 dbtorms; -#X msg 125 351 0; -#X obj 125 434 line~; -#X obj 75 454 *~; -#X obj 75 99 r pitch; -#X obj 75 126 mtof; -#X obj 125 242 f; -#X obj 75 154 * \$1; -#X obj 84 184 ftom; -#X obj 126 268 -; -#X obj 168 267 r whammybar; -#X text 108 58 \$1 is the partial number.; -#X text 126 126 pitch to frequency; -#X text 125 153 then get the frequency of this specific partial; -#X text 128 179 ... and then convert back to pitch.; -#X text 162 242 ... at which time we get the pitch back...; -#X text 271 261 ... and transpose \, effectively shifting the spectral -envelope left and right.; -#X text 250 353 The vertical scale is dB from 1 to 50 \, but we want -true zero when the table value is 0 or less.; -#X text 219 410 Amplitude control via pack \, line~ \, and *~.; -#X text 218 456 Finally \, add to a summing bus via throw~. All the -throw~s in the instantiations of this abstraction will add into the -one "catch~ sum-bus" at the output.; -#X text 218 206 the calling patch bangs "poll-table" every 30 msec. -; -#X obj 125 296 tabread4 spectrum-tab; -#X text 293 304 Finally get the strength from the table. Note that -we use the control object \, tabread4 \, not tabread4~.; -#X obj 125 323 moses 1; -#X text 75 21 This abstraction is used by the spectrum drawing example -D08.table.spectrum.pd, f 40; -#X obj 75 483 outlet~; -#X obj 125 404 pack f 30; +#N canvas 332 64 714 539 12; +#X obj 60 421 osc~; +#X obj 110 203 r poll-table; +#X obj 156 346 + 50; +#X obj 156 372 dbtorms; +#X msg 110 348 0; +#X obj 110 431 line~; +#X obj 60 461 *~; +#X obj 60 96 r pitch; +#X obj 60 123 mtof; +#X obj 110 239 f; +#X obj 60 151 * \$1; +#X obj 69 181 ftom; +#X obj 111 265 -; +#X obj 153 264 r whammybar; +#X text 195 71 \$1 is the partial number.; +#X text 111 123 pitch to frequency; +#X text 110 150 then get the frequency of this specific partial; +#X text 113 176 ... and then convert back to pitch.; +#X text 147 239 ... at which time we get the pitch back...; +#X text 256 258 ... and transpose \, effectively shifting the spectral envelope left and right.; +#X text 235 350 The vertical scale is dB from 1 to 50 \, but we want true zero when the table value is 0 or less.; +#X text 203 203 the calling patch bangs "poll-table" every 30 msec.; +#X obj 110 293 tabread4 spectrum-tab; +#X obj 110 320 moses 1; +#X text 162 34 This abstraction is used by the spectrum drawing example D08.table.spectrum.pd, f 40; +#X obj 60 490 outlet~; +#X obj 110 401 pack f 30; +#X text 203 442 Finally \, add to a summing bus via [throw~]. All the [throw~] objects in the instantiations of this abstraction will add into the one [catch~ sum-bus] at the output.; +#X text 204 407 Amplitude control via [pack] \, [line~] \, and [*~].; +#X text 278 301 Finally get the strength from the table. Note that we use the control object \, [tabread4] \, not [tabread4~].; #X connect 0 0 6 0; #X connect 1 0 9 0; #X connect 2 0 3 0; -#X connect 3 0 29 0; -#X connect 4 0 29 0; +#X connect 3 0 26 0; +#X connect 4 0 26 0; #X connect 5 0 6 1; -#X connect 6 0 28 0; +#X connect 6 0 25 0; #X connect 7 0 8 0; #X connect 8 0 10 0; #X connect 9 0 12 0; #X connect 10 0 11 0; #X connect 10 0 0 0; #X connect 11 0 9 1; -#X connect 12 0 24 0; +#X connect 12 0 22 0; #X connect 13 0 12 1; -#X connect 24 0 26 0; -#X connect 26 0 4 0; -#X connect 26 1 2 0; -#X connect 29 0 5 0; +#X connect 22 0 23 0; +#X connect 23 0 4 0; +#X connect 23 1 2 0; +#X connect 26 0 5 0; diff --git a/doc/4.data.structures/voice.pd b/doc/4.data.structures/voice.pd index 76becc39e..dd1ef0d85 100644 --- a/doc/4.data.structures/voice.pd +++ b/doc/4.data.structures/voice.pd @@ -42,7 +42,7 @@ #X obj 67 257 data-array amp; #X obj 281 186 data-array pitch; #X obj 137 358 pack; -#N canvas 457 62 630 588 sequence 1; +#N canvas 457 62 630 588 sequence 0; #X obj 144 150 inlet; #X obj 263 387 *; #X obj 156 244 r reset-stop; From dd7cbd1f29fa8104d9baec6226bcb3640c88d439 Mon Sep 17 00:00:00 2001 From: porres Date: Tue, 9 Apr 2024 01:01:25 -0300 Subject: [PATCH 189/450] Manual revision (#2248) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * emscripten behaves similarly to linux * noise~ does not take any argument otherwise emscripten complains when function pointers are used at the wrong type * samplerate~ does not take any argument otherwise emscripten complains when function pointers are used at the wrong type * bang_new2() should not take any argument otherwise emscripten complains when function pointers are used at the wrong type * explicitly forward bang methods otherwise emscripten complains about mismatching function pointer types * remove unused exceptfds in select() it is unsupported by emscripten * add typedefs for methods that return a pointer instead of void * deprivatize b/f/s/l constructors and redeclare in m_class.c * Typecheck both int (probably pointer) and float args separately. Emscripten doesn't let you call function pointers with the wrong type. To avoid copy/paste errors, the dispatcher code is generated. Edit the generator instead of the generated files. The generated files are checked into the repository with this commit; they will hopefully change very rarely, and complicating the build system seems even worse. * objectmaker methods need to be cast to their real type for emscripten * can't call canvas_new at wrong function pointer type in emscripten * fix objectmaker methods function pointer type issues in emscripten * call free method using correct function pointer type (required by Emscripten) * ensure the class dispatched files are included in dist tarballs * pdtk_open/savepanel: normalize dirnames so ~/ gets expanded on macOS Closes: https://github.com/pure-data/pure-data/issues/2214 * canvas_makefilename: expand leading "~" and envvars (at least on windows) also re-use sys_isabsolutepath() rather than making our own naive implementation Closes: https://github.com/pure-data/pure-data/issues/2214 * soundfile comment typo and indentation fixes * fix crasher bug from a50533101aaba02a86593524a0ac56896b15e5cc (ask whether changes should be discarded when typing into a modified abs) * update m_class_dispatcher headerst to support up to 6 arguments we must support up to MAXPDARGS+1 arguments because the message receiver itself is passed as an additional t_int argument. also, make sure that headers are written in binary mode to get the same output on all systems. * merge message dispatching code into a single header m_dispatch.h the header now contains a static function mess_dispatch() which is called in pd_typedmess() m_class_dispatcher.c has been renamed to m_dispatch_gen.c * numbox: mark private functions as "static" * clear number buffer after setting colors Closes: https://github.com/pure-data/pure-data/issues/2140 * fix startup not to wait for font info before loading patches and sending startup msgs * bug fixes for opening and closing guis dynamically and a couple of random mac problems * fix trailing whate space * minor edit this is more of a test really for merging --------- Co-authored-by: Claude Heiland-Allen Co-authored-by: IOhannes m zmölnig Co-authored-by: danomatika Co-authored-by: Miller Puckette Co-authored-by: Christof Ressi Co-authored-by: IOhannes m zmölnig Co-authored-by: msp --- doc/1.manual/x2.htm | 8 +-- libpd/Makefile | 2 +- src/Makefile.am | 4 +- src/d_osc.c | 2 +- src/d_soundfile_aiff.c | 2 +- src/d_soundfile_caf.c | 2 +- src/d_soundfile_next.c | 16 ++--- src/d_soundfile_wave.c | 2 +- src/d_ugen.c | 2 +- src/g_canvas.c | 5 +- src/g_editor.c | 16 +++-- src/g_numbox.c | 10 +-- src/m_class.c | 108 ++++++++++++++-------------- src/m_dispatch.h | 135 +++++++++++++++++++++++++++++++++++ src/m_dispatch_gen.c | 151 ++++++++++++++++++++++++++++++++++++++++ src/m_imp.h | 7 ++ src/m_pd.c | 9 ++- src/s_inter.c | 36 +++++++--- src/s_main.c | 112 ++++++++++++----------------- src/s_path.c | 2 +- src/x_connective.c | 31 ++++++--- src/x_list.c | 2 +- src/x_misc.c | 2 +- tcl/wheredoesthisgo.tcl | 2 + 24 files changed, 495 insertions(+), 173 deletions(-) create mode 100644 src/m_dispatch.h create mode 100644 src/m_dispatch_gen.c diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 1f75ec38e..c4a927bd9 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -278,10 +278,10 @@

        2.2.1. Edit and Run mode

        More details follow below.

        Normally, when you are in a performance, you will stay in run mode. In this -mode, the cursor is a slightly tilted arrow that points straight up when you -are able to click on a box. In run mode, you mostly click and interact with GUIs -(like the number box) and message boxes (which are used as controls to send -messages). +mode, the cursor is an arrow that points up and is slightly tilted to the left, +but it points straight up when you are able to click on a box. In run mode, you +mostly click and interact with GUIs (like the number box) and message boxes +(which are used as controls to send messages).

        If you are predominantly editing a patch, but would like to quickly switch to run mode just to click on something like a message, you can press and hold the diff --git a/libpd/Makefile b/libpd/Makefile index 9ab33d5c3..82d8f7ed5 100644 --- a/libpd/Makefile +++ b/libpd/Makefile @@ -11,7 +11,7 @@ PLATFORM_ARCH ?= $(shell $(CC) -dumpmachine | sed -e 's,-.*,,') ifeq ($(UNAME), Darwin) # Mac SOLIB_EXT = dylib - PLATFORM_CFLAGS = -DHAVE_LIBDL -DHAVE_MACHINE_ENDIAN_H + PLATFORM_CFLAGS = -DHAVE_LIBDL -DHAVE_MACHINE_ENDIAN_H -D_DARWIN_UNLIMITED_SELECT PLATFORM_LDFLAGS = -dynamiclib -ldl -Wl,-no_compact_unwind ifeq ($(FAT_LIB), true) # macOS universal "fat" lib compilation diff --git a/src/Makefile.am b/src/Makefile.am index 466b88b41..e1fd9962a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -207,6 +207,7 @@ pkginclude_HEADERS = m_pd.h m_imp.h g_canvas.h g_undo.h g_all_guis.h s_stuff.h \ include_HEADERS = m_pd.h noinst_HEADERS = s_audio_alsa.h s_audio_paring.h s_utf8.h m_private_utils.h noinst_HEADERS += z_hooks.h z_ringbuffer.h x_libpdreceive.h +noinst_HEADERS += m_dispatch.h if LIBPD libpdinclude_HEADERS += m_pd.h z_libpd.h @@ -218,7 +219,8 @@ endif # we want these in the dist tarball EXTRA_DIST = CHANGELOG.txt notes.txt pd.rc \ makefile.gnu makefile.mac makefile.mingw makefile.msvc \ - d_soundfile.h s_audio_audiounit.c s_audio_esd.c + d_soundfile.h s_audio_audiounit.c s_audio_esd.c \ + m_dispatch_gen.c # add WISH define if it's set WISH=@WISH@ diff --git a/src/d_osc.c b/src/d_osc.c index af3d0feca..59f4f1ba2 100644 --- a/src/d_osc.c +++ b/src/d_osc.c @@ -493,7 +493,7 @@ static void noise_float(t_noise *x, t_float f) static void noise_setup(void) { noise_class = class_new(gensym("noise~"), (t_newmethod)noise_new, 0, - sizeof(t_noise), 0, A_DEFFLOAT, 0); + sizeof(t_noise), 0, 0); class_addmethod(noise_class, (t_method)noise_dsp, gensym("dsp"), A_CANT, 0); class_addmethod(noise_class, (t_method)noise_float, diff --git a/src/d_soundfile_aiff.c b/src/d_soundfile_aiff.c index ce6e30d32..1ae7dd35f 100644 --- a/src/d_soundfile_aiff.c +++ b/src/d_soundfile_aiff.c @@ -204,7 +204,7 @@ static off_t aiff_firstchunk(const t_soundfile *sf, t_chunk *chunk) } /** read next chunk, chunk should be filled when calling - returns fills chunk offset on success or -1 */ + returns filled chunk offset on success or -1 */ static off_t aiff_nextchunk(const t_soundfile *sf, off_t offset, t_chunk *chunk) { int32_t chunksize = swap4s(chunk->c_size, !sys_isbigendian()); diff --git a/src/d_soundfile_caf.c b/src/d_soundfile_caf.c index 554a69ea1..ef4d875b8 100644 --- a/src/d_soundfile_caf.c +++ b/src/d_soundfile_caf.c @@ -127,7 +127,7 @@ static off_t caf_firstchunk(const t_soundfile *sf, t_chunk *chunk) } /** read next chunk, chunk should be filled when calling - returns fills chunk offset on success or -1 */ + returns filled chunk offset on success or -1 */ static off_t caf_nextchunk(const t_soundfile *sf, off_t offset, t_chunk *chunk) { int64_t chunksize = caf_getchunksize(chunk, !sys_isbigendian()); diff --git a/src/d_soundfile_next.c b/src/d_soundfile_next.c index 43a3d77b3..993feac04 100644 --- a/src/d_soundfile_next.c +++ b/src/d_soundfile_next.c @@ -25,14 +25,14 @@ this implementation: - * does not support headerless files - * supports big and little endian, system endianness used by default - * sets a default info string: "Pd " - * tries to set sound data length, otherwise falls back to "unknown size" - * sample format: 16 and 24 bit lpcm, 32 bit float, no 32 bit lpcm - - Pd versions < 0.51 did *not* write the actual data chunk size when updating - the header, but set "unknown size" instead. + * does not support headerless files + * supports big and little endian, system endianness used by default + * sets a default info string: "Pd " + * tries to set sound data length, otherwise falls back to "unknown size" + * sample format: 16 and 24 bit lpcm, 32 bit float, no 32 bit lpcm + + Pd versions < 0.51 did *not* write the actual data chunk size when updating + the header, but set "unknown size" instead. */ diff --git a/src/d_soundfile_wave.c b/src/d_soundfile_wave.c index 1128982de..7cc112a04 100644 --- a/src/d_soundfile_wave.c +++ b/src/d_soundfile_wave.c @@ -124,7 +124,7 @@ static off_t wave_firstchunk(const t_soundfile *sf, t_chunk *chunk) } /** read next chunk, chunk should be filled when calling - returns fills chunk offset on success or -1 */ + returns filled chunk offset on success or -1 */ static off_t wave_nextchunk(const t_soundfile *sf, off_t offset, t_chunk *chunk) { uint32_t chunksize = swap4(chunk->c_size, sys_isbigendian()); diff --git a/src/d_ugen.c b/src/d_ugen.c index 143bad915..f750b4ab6 100644 --- a/src/d_ugen.c +++ b/src/d_ugen.c @@ -1482,7 +1482,7 @@ static void samplerate_tilde_bang(t_samplerate *x) outlet_float(x->x_obj.ob_outlet, canvas_getsr(x->x_canvas)); } -static void *samplerate_tilde_new(t_symbol *s) +static void *samplerate_tilde_new(void) { t_samplerate *x = (t_samplerate *)pd_new(samplerate_tilde_class); outlet_new(&x->x_obj, &s_float); diff --git a/src/g_canvas.c b/src/g_canvas.c index ccb3b0398..d893116a6 100644 --- a/src/g_canvas.c +++ b/src/g_canvas.c @@ -54,6 +54,7 @@ static void canvas_pop(t_canvas *x, t_floatarg fvis); static void canvas_bind(t_canvas *x); static void canvas_unbind(t_canvas *x); void canvas_declare(t_canvas *x, t_symbol *s, int argc, t_atom *argv); +void sys_expandpath(const char *from, char *to, int bufsize); /* ---------------- generic widget behavior ------------------------- */ @@ -305,9 +306,9 @@ t_symbol *canvas_getdir(const t_canvas *x) void canvas_makefilename(const t_canvas *x, const char *file, char *result, int resultsize) { const char *dir = canvas_getenv(x)->ce_dir->s_name; - if (file[0] == '/' || (file[0] && file[1] == ':') || !*dir) + if (sys_isabsolutepath(file) || !*dir) { - strncpy(result, file, resultsize); + sys_expandpath(file, result, resultsize); result[resultsize-1] = 0; } else diff --git a/src/g_editor.c b/src/g_editor.c index 3a2281611..275f7ba07 100644 --- a/src/g_editor.c +++ b/src/g_editor.c @@ -3075,13 +3075,15 @@ void canvas_key(t_canvas *x, t_symbol *s, int ac, t_atom *av) || !strcmp(gotkeysym->s_name, "Left") || !strcmp(gotkeysym->s_name, "Right"))) { - /* if the typed object (which is also the selected object in the canvas) - is an abstraction, and if its text has not been modified yet, then ask the - permission to discard any changes inside it. */ - if (pd_class(&x->gl_editor->e_selection->sel_what->g_pd) == canvas_class - && !x->gl_editor->e_textdirty - /* only ask permission if the keystroke is really modifying the text */ - && keynum + /* if the typed object is also the selected object in the + canvas and is an abstraction, and if its text has not been + modified yet, then ask whether to discard any changes inside + it. */ + if (x->gl_editor->e_selection && + pd_class(&x->gl_editor->e_selection->sel_what->g_pd) + == canvas_class && !x->gl_editor->e_textdirty + /* only ask if the keystroke would really modify the text */ + && keynum ) { t_gobj *selected_canvas = x->gl_editor->e_selection->sel_what; diff --git a/src/g_numbox.c b/src/g_numbox.c index 561530b83..bf85982c1 100644 --- a/src/g_numbox.c +++ b/src/g_numbox.c @@ -20,7 +20,7 @@ static void my_numbox_key(void *z, t_symbol *keysym, t_floatarg fkey); static void my_numbox_draw_update(t_gobj *client, t_glist *glist); -void my_numbox_clip(t_my_numbox *x) +static void my_numbox_clip(t_my_numbox *x) { if(x->x_val < x->x_min) x->x_val = x->x_min; @@ -28,7 +28,7 @@ void my_numbox_clip(t_my_numbox *x) x->x_val = x->x_max; } -void my_numbox_calc_fontwidth(t_my_numbox *x) +static void my_numbox_calc_fontwidth(t_my_numbox *x) { int w, f = 31; @@ -42,7 +42,7 @@ void my_numbox_calc_fontwidth(t_my_numbox *x) x->x_gui.x_w = (w + (x->x_gui.x_h/2)/IEMGUI_ZOOM(x) + 4) * IEMGUI_ZOOM(x); } -void my_numbox_ftoa(t_my_numbox *x) +static void my_numbox_ftoa(t_my_numbox *x) { double f = x->x_val; int bufsize, is_exp = 0, i, idecimal; @@ -172,6 +172,8 @@ static void my_numbox_draw_config(t_my_numbox* x, t_glist* glist) "-text", x->x_buf, "-font", 3, fontatoms, "-fill", fcol); + + x->x_buf[0] = 0; } static void my_numbox_draw_new(t_my_numbox *x, t_glist *glist) @@ -315,7 +317,7 @@ static void my_numbox_save(t_gobj *z, t_binbuf *b) binbuf_addv(b, ";"); } -int my_numbox_check_minmax(t_my_numbox *x, double min, double max) +static int my_numbox_check_minmax(t_my_numbox *x, double min, double max) { int ret = 0; diff --git a/src/m_class.c b/src/m_class.c index c23352e9b..4a40f3172 100644 --- a/src/m_class.c +++ b/src/m_class.c @@ -939,23 +939,22 @@ t_pd *pd_newest(void) /* horribly, we need prototypes for each of the artificial function calls in typedmess(), to keep the compiler quiet. */ + /* Even more horribly, function pointers must be called at their + exact type in Emscripten, including return type, which makes the + number of cases explode. The required typedefs and dispatcher code + are generated by m_class_dispatcher.c, which see. */ + typedef t_pd *(*t_newgimme)(t_symbol *s, int argc, t_atom *argv); typedef void(*t_messgimme)(t_pd *x, t_symbol *s, int argc, t_atom *argv); +typedef void*(*t_messgimmer)(t_pd *x, t_symbol *s, int argc, t_atom *argv); + + /* this file is generated by m_dispatch_gen.c */ +#include "m_dispatch.h" -typedef t_pd *(*t_fun0)( - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun1)(t_int i1, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun2)(t_int i1, t_int i2, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun3)(t_int i1, t_int i2, t_int i3, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun4)(t_int i1, t_int i2, t_int i3, t_int i4, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun5)(t_int i1, t_int i2, t_int i3, t_int i4, t_int i5, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); -typedef t_pd *(*t_fun6)(t_int i1, t_int i2, t_int i3, t_int i4, t_int i5, t_int i6, - t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); +void *bang_new(t_pd *dummy); +void *pdfloat_new(t_pd *dummy, t_float f); +void *pdsymbol_new(t_pd *dummy, t_symbol *s); +void *list_new(t_pd *dummy, t_symbol *s, int argc, t_atom *argv); void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) { @@ -966,35 +965,59 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) int i; t_int ai[MAXPDARG+1], *ap = ai; t_floatarg ad[MAXPDARG+1], *dp = ad; - int narg = 0; - t_pd *bonzo; + int niarg = 0; + int nfarg = 0; /* check for messages that are handled by fixed slots in the class structure. */ if (s == &s_float) { - if (!argc) (*c->c_floatmethod)(x, 0.); - else if (argv->a_type == A_FLOAT) - (*c->c_floatmethod)(x, argv->a_w.w_float); - else goto badarg; + if (x == &pd_objectmaker) + { + if (!argc) + pd_this->pd_newest = pdfloat_new(x, 0.); + else if (argv->a_type == A_FLOAT) + pd_this->pd_newest = pdfloat_new(x, argv->a_w.w_float); + else goto badarg; + } + else + { + if (!argc) + (*c->c_floatmethod)(x, 0.); + else if (argv->a_type == A_FLOAT) + (*c->c_floatmethod)(x, argv->a_w.w_float); + else goto badarg; + } return; } if (s == &s_bang) { - (*c->c_bangmethod)(x); + if (x == &pd_objectmaker) + pd_this->pd_newest = bang_new(x); + else + (*c->c_bangmethod)(x); return; } if (s == &s_list) { - (*c->c_listmethod)(x, s, argc, argv); + if (x == &pd_objectmaker) + pd_this->pd_newest = list_new(x, s, argc, argv); + else + (*c->c_listmethod)(x, s, argc, argv); return; } if (s == &s_symbol) { if (argc && argv->a_type == A_SYMBOL) - (*c->c_symbolmethod)(x, argv->a_w.w_symbol); + if (x == &pd_objectmaker) + pd_this->pd_newest = pdsymbol_new(x, argv->a_w.w_symbol); + else + (*c->c_symbolmethod)(x, argv->a_w.w_symbol); else - (*c->c_symbolmethod)(x, &s_); + if (x == &pd_objectmaker) + pd_this->pd_newest = pdsymbol_new(x, &s_); + else + (*c->c_symbolmethod)(x, &s_); return; } /* pd_objectmaker doesn't require @@ -1020,11 +1043,14 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) if (x == &pd_objectmaker) pd_this->pd_newest = (*((t_newgimme)(m->me_fun)))(s, argc, argv); - else (*((t_messgimme)(m->me_fun)))(x, s, argc, argv); + else if (((t_messgimmer)(m->me_fun)) == ((t_messgimmer)(canvas_new))) + (*((t_messgimmer)(m->me_fun)))(x, s, argc, argv); + else + (*((t_messgimme)(m->me_fun)))(x, s, argc, argv); return; } if (argc > MAXPDARG) argc = MAXPDARG; - if (x != &pd_objectmaker) *(ap++) = (t_int)x, narg++; + if (x != &pd_objectmaker) *(ap++) = (t_int)x, niarg++; while ((wanttype = *wp++)) { switch (wanttype) @@ -1039,7 +1065,7 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) argc--; argv++; } - narg++; + niarg++; ap++; break; case A_FLOAT: @@ -1054,6 +1080,7 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) argc--; argv++; } + nfarg++; dp++; break; case A_SYMBOL: @@ -1075,36 +1102,15 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv) argc--; argv++; } - narg++; + niarg++; ap++; break; default: goto badarg; } } - switch (narg) - { - case 0 : bonzo = (*(t_fun0)(m->me_fun)) - (ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 1 : bonzo = (*(t_fun1)(m->me_fun)) - (ai[0], ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 2 : bonzo = (*(t_fun2)(m->me_fun)) - (ai[0], ai[1], ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 3 : bonzo = (*(t_fun3)(m->me_fun)) - (ai[0], ai[1], ai[2], ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 4 : bonzo = (*(t_fun4)(m->me_fun)) - (ai[0], ai[1], ai[2], ai[3], - ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 5 : bonzo = (*(t_fun5)(m->me_fun)) - (ai[0], ai[1], ai[2], ai[3], ai[4], - ad[0], ad[1], ad[2], ad[3], ad[4]); break; - case 6 : bonzo = (*(t_fun6)(m->me_fun)) - (ai[0], ai[1], ai[2], ai[3], ai[4], ai[5], - ad[0], ad[1], ad[2], ad[3], ad[4]); break; - default: bonzo = 0; - } - if (x == &pd_objectmaker) - pd_this->pd_newest = bonzo; + /* mess_dispatch() is defined in m_dispatch.h */ + mess_dispatch(x, m->me_fun, niarg, ai, nfarg, ad); return; } (*c->c_anymethod)(x, s, argc, argv); diff --git a/src/m_dispatch.h b/src/m_dispatch.h new file mode 100644 index 000000000..0013aca25 --- /dev/null +++ b/src/m_dispatch.h @@ -0,0 +1,135 @@ +/* IMPORTANT: EDIT m_dispatch_gen.c INSTEAD OF THIS FILE */ + +typedef void (*t_vfun00)(void); +typedef void (*t_vfun01)(t_floatarg d0); +typedef void (*t_vfun10)(t_int i0); +typedef void (*t_vfun02)(t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun11)(t_int i0, t_floatarg d0); +typedef void (*t_vfun20)(t_int i0, t_int i1); +typedef void (*t_vfun03)(t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun12)(t_int i0, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun21)(t_int i0, t_int i1, t_floatarg d0); +typedef void (*t_vfun30)(t_int i0, t_int i1, t_int i2); +typedef void (*t_vfun04)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef void (*t_vfun13)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun22)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun31)(t_int i0, t_int i1, t_int i2, t_floatarg d0); +typedef void (*t_vfun40)(t_int i0, t_int i1, t_int i2, t_int i3); +typedef void (*t_vfun05)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef void (*t_vfun14)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef void (*t_vfun23)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun32)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun41)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0); +typedef void (*t_vfun50)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4); +typedef void (*t_vfun06)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); +typedef void (*t_vfun15)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef void (*t_vfun24)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef void (*t_vfun33)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef void (*t_vfun42)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0, t_floatarg d1); +typedef void (*t_vfun51)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_floatarg d0); +typedef void (*t_vfun60)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_int i5); +typedef t_pd *(*t_fun00)(void); +typedef t_pd *(*t_fun01)(t_floatarg d0); +typedef t_pd *(*t_fun10)(t_int i0); +typedef t_pd *(*t_fun02)(t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun11)(t_int i0, t_floatarg d0); +typedef t_pd *(*t_fun20)(t_int i0, t_int i1); +typedef t_pd *(*t_fun03)(t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun12)(t_int i0, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun21)(t_int i0, t_int i1, t_floatarg d0); +typedef t_pd *(*t_fun30)(t_int i0, t_int i1, t_int i2); +typedef t_pd *(*t_fun04)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef t_pd *(*t_fun13)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun22)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun31)(t_int i0, t_int i1, t_int i2, t_floatarg d0); +typedef t_pd *(*t_fun40)(t_int i0, t_int i1, t_int i2, t_int i3); +typedef t_pd *(*t_fun05)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef t_pd *(*t_fun14)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef t_pd *(*t_fun23)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun32)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun41)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0); +typedef t_pd *(*t_fun50)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4); +typedef t_pd *(*t_fun06)(t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4, t_floatarg d5); +typedef t_pd *(*t_fun15)(t_int i0, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3, t_floatarg d4); +typedef t_pd *(*t_fun24)(t_int i0, t_int i1, t_floatarg d0, t_floatarg d1, t_floatarg d2, t_floatarg d3); +typedef t_pd *(*t_fun33)(t_int i0, t_int i1, t_int i2, t_floatarg d0, t_floatarg d1, t_floatarg d2); +typedef t_pd *(*t_fun42)(t_int i0, t_int i1, t_int i2, t_int i3, t_floatarg d0, t_floatarg d1); +typedef t_pd *(*t_fun51)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_floatarg d0); +typedef t_pd *(*t_fun60)(t_int i0, t_int i1, t_int i2, t_int i3, t_int i4, t_int i5); + +static void mess_dispatch(t_pd *x, t_gotfn fn, int niarg, t_int *ai, + int nfarg, t_floatarg *ad) +{ + if (x == &pd_objectmaker) + { + t_pd *ret; + switch (niarg * 16 + nfarg) + { + case 0x00 : ret = (*(t_fun00)fn)(); break; + case 0x01 : ret = (*(t_fun01)fn)(ad[0]); break; + case 0x10 : ret = (*(t_fun10)fn)(ai[0]); break; + case 0x02 : ret = (*(t_fun02)fn)(ad[0], ad[1]); break; + case 0x11 : ret = (*(t_fun11)fn)(ai[0], ad[0]); break; + case 0x20 : ret = (*(t_fun20)fn)(ai[0], ai[1]); break; + case 0x03 : ret = (*(t_fun03)fn)(ad[0], ad[1], ad[2]); break; + case 0x12 : ret = (*(t_fun12)fn)(ai[0], ad[0], ad[1]); break; + case 0x21 : ret = (*(t_fun21)fn)(ai[0], ai[1], ad[0]); break; + case 0x30 : ret = (*(t_fun30)fn)(ai[0], ai[1], ai[2]); break; + case 0x04 : ret = (*(t_fun04)fn)(ad[0], ad[1], ad[2], ad[3]); break; + case 0x13 : ret = (*(t_fun13)fn)(ai[0], ad[0], ad[1], ad[2]); break; + case 0x22 : ret = (*(t_fun22)fn)(ai[0], ai[1], ad[0], ad[1]); break; + case 0x31 : ret = (*(t_fun31)fn)(ai[0], ai[1], ai[2], ad[0]); break; + case 0x40 : ret = (*(t_fun40)fn)(ai[0], ai[1], ai[2], ai[3]); break; + case 0x05 : ret = (*(t_fun05)fn)(ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x14 : ret = (*(t_fun14)fn)(ai[0], ad[0], ad[1], ad[2], ad[3]); break; + case 0x23 : ret = (*(t_fun23)fn)(ai[0], ai[1], ad[0], ad[1], ad[2]); break; + case 0x32 : ret = (*(t_fun32)fn)(ai[0], ai[1], ai[2], ad[0], ad[1]); break; + case 0x41 : ret = (*(t_fun41)fn)(ai[0], ai[1], ai[2], ai[3], ad[0]); break; + case 0x50 : ret = (*(t_fun50)fn)(ai[0], ai[1], ai[2], ai[3], ai[4]); break; + case 0x06 : ret = (*(t_fun06)fn)(ad[0], ad[1], ad[2], ad[3], ad[4], ad[5]); break; + case 0x15 : ret = (*(t_fun15)fn)(ai[0], ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x24 : ret = (*(t_fun24)fn)(ai[0], ai[1], ad[0], ad[1], ad[2], ad[3]); break; + case 0x33 : ret = (*(t_fun33)fn)(ai[0], ai[1], ai[2], ad[0], ad[1], ad[2]); break; + case 0x42 : ret = (*(t_fun42)fn)(ai[0], ai[1], ai[2], ai[3], ad[0], ad[1]); break; + case 0x51 : ret = (*(t_fun51)fn)(ai[0], ai[1], ai[2], ai[3], ai[4], ad[0]); break; + case 0x60 : ret = (*(t_fun60)fn)(ai[0], ai[1], ai[2], ai[3], ai[4], ai[5]); break; + default : ret = 0; break; + } + pd_this->pd_newest = ret; + } + else + { + switch (niarg * 16 + nfarg) + { + case 0x00 : (*(t_vfun00)fn)(); break; + case 0x01 : (*(t_vfun01)fn)(ad[0]); break; + case 0x10 : (*(t_vfun10)fn)(ai[0]); break; + case 0x02 : (*(t_vfun02)fn)(ad[0], ad[1]); break; + case 0x11 : (*(t_vfun11)fn)(ai[0], ad[0]); break; + case 0x20 : (*(t_vfun20)fn)(ai[0], ai[1]); break; + case 0x03 : (*(t_vfun03)fn)(ad[0], ad[1], ad[2]); break; + case 0x12 : (*(t_vfun12)fn)(ai[0], ad[0], ad[1]); break; + case 0x21 : (*(t_vfun21)fn)(ai[0], ai[1], ad[0]); break; + case 0x30 : (*(t_vfun30)fn)(ai[0], ai[1], ai[2]); break; + case 0x04 : (*(t_vfun04)fn)(ad[0], ad[1], ad[2], ad[3]); break; + case 0x13 : (*(t_vfun13)fn)(ai[0], ad[0], ad[1], ad[2]); break; + case 0x22 : (*(t_vfun22)fn)(ai[0], ai[1], ad[0], ad[1]); break; + case 0x31 : (*(t_vfun31)fn)(ai[0], ai[1], ai[2], ad[0]); break; + case 0x40 : (*(t_vfun40)fn)(ai[0], ai[1], ai[2], ai[3]); break; + case 0x05 : (*(t_vfun05)fn)(ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x14 : (*(t_vfun14)fn)(ai[0], ad[0], ad[1], ad[2], ad[3]); break; + case 0x23 : (*(t_vfun23)fn)(ai[0], ai[1], ad[0], ad[1], ad[2]); break; + case 0x32 : (*(t_vfun32)fn)(ai[0], ai[1], ai[2], ad[0], ad[1]); break; + case 0x41 : (*(t_vfun41)fn)(ai[0], ai[1], ai[2], ai[3], ad[0]); break; + case 0x50 : (*(t_vfun50)fn)(ai[0], ai[1], ai[2], ai[3], ai[4]); break; + case 0x06 : (*(t_vfun06)fn)(ad[0], ad[1], ad[2], ad[3], ad[4], ad[5]); break; + case 0x15 : (*(t_vfun15)fn)(ai[0], ad[0], ad[1], ad[2], ad[3], ad[4]); break; + case 0x24 : (*(t_vfun24)fn)(ai[0], ai[1], ad[0], ad[1], ad[2], ad[3]); break; + case 0x33 : (*(t_vfun33)fn)(ai[0], ai[1], ai[2], ad[0], ad[1], ad[2]); break; + case 0x42 : (*(t_vfun42)fn)(ai[0], ai[1], ai[2], ai[3], ad[0], ad[1]); break; + case 0x51 : (*(t_vfun51)fn)(ai[0], ai[1], ai[2], ai[3], ai[4], ad[0]); break; + case 0x60 : (*(t_vfun60)fn)(ai[0], ai[1], ai[2], ai[3], ai[4], ai[5]); break; + default : break; + } + } +} diff --git a/src/m_dispatch_gen.c b/src/m_dispatch_gen.c new file mode 100644 index 000000000..3cf1269fd --- /dev/null +++ b/src/m_dispatch_gen.c @@ -0,0 +1,151 @@ +/* +This program generates the file m_dispatch.h. + +Function pointers must be called at their exact type in Emscripten, +including return type, which makes the number of cases explode (42 +instead of 6). This is not checked at compile time, but wrong usage +crashes at runtime. The naming pattern is t_funMN for M t_int args +and N t_floatarg args returning t_pd *, with t_vfunMN for the void- +returning variants. The versions with a t_pd * are for pd_objectmaker, +which returns the new object from the method, c.f. pd_newest support. +For the same reason, bang_new() and similar can't be private in +Emscripten, because their return type is different (as pd_objectmaker +methods) vs regular bang methods, so they need special treatment in the +dispatcher: the dispatcher checks explicitly for pd_objectmaker and +calls the method at the correct type. + +This file only needs to be compiled and run if the object message +passing changes in the future. (Unlikely.) +To regenerate m_dispatch.h: + cd src + cc -o m_dispatch_gen m_dispatch_gen.c + ./m_dispatch_gen[.exe] + +NB: the argument should be at least MAXPDARGS+1 because the +receiver itself is passed as an additional t_int argument! +*/ + +#include +#include + +#define MAXMAXARGS 16 + +int main(int argc, char **argv) +{ + const char *rettype[2] = { "void ", "t_pd *" }; + int MAXARGS, ret, args, iargs, fargs, arg; + FILE *o; + if (argc != 2) + { + fprintf(stderr, "usage: %s maxargs\n", argv[0]); + return 1; + } + MAXARGS = atoi(argv[1]); + if (MAXARGS >= MAXMAXARGS) + { + fprintf(stderr, "error: too many arguments for today\n"); + return 1; + } + o = fopen("m_dispatch.h", "wb"); + if (!o) + return 1; + + fprintf(o, "/* IMPORTANT: EDIT m_dispatch_gen.c INSTEAD OF THIS FILE */\n\n"); + /* function declarations */ + for (ret = 0; ret < 2; ++ret) + { + for (args = 0; args <= MAXARGS; ++args) + { + for (iargs = 0; iargs <= args; ++iargs) + { + fargs = args - iargs; + fprintf(o, "typedef %s(*t_%sfun%d%d)(", + rettype[ret], ret ? "" : "v", iargs, fargs); + if (args) + { + for (arg = 0; arg < args; ++arg) + { + if (arg > 0) + fprintf(o, ", "); + if (arg < iargs) + fprintf(o, "t_int i%d", arg); + else + fprintf(o, "t_floatarg d%d", arg - iargs); + } + } + else + fprintf(o, "void"); + fprintf(o, ");\n"); + } + } + } + fprintf(o, "\n"); + /* mess_dispatch() function */ + fprintf(o, + "static void mess_dispatch(t_pd *x, t_gotfn fn, int niarg, t_int *ai,\n" + " int nfarg, t_floatarg *ad)\n" + "{\n" + " if (x == &pd_objectmaker)\n" + " {\n" + " t_pd *ret;\n" + " switch (niarg * %d + nfarg)\n" + " {\n", + MAXMAXARGS); + for (args = 0; args <= MAXARGS; ++args) + { + for (iargs = 0; iargs <= args; ++iargs) + { + fargs = args - iargs; + fprintf(o, " case 0x%02x : ret = (*(t_fun%d%d)fn)(", + iargs * MAXMAXARGS + fargs, iargs, fargs); + for (arg = 0; arg < args; ++arg) + { + if (arg > 0) + fprintf(o, ", "); + if (arg < iargs) + fprintf(o, "ai[%d]", arg); + else + fprintf(o, "ad[%d]", arg - iargs); + } + fprintf(o, "); break;\n"); + } + } + fprintf(o, + " default : ret = 0; break;\n" + " }\n" + " pd_this->pd_newest = ret;\n" + " }\n" + " else\n" + " {\n" + " switch (niarg * %d + nfarg)\n" + " {\n", + MAXMAXARGS); + for (args = 0; args <= MAXARGS; ++args) + { + for (iargs = 0; iargs <= args; ++iargs) + { + fargs = args - iargs; + fprintf(o, " case 0x%02x : (*(t_vfun%d%d)fn)(", + iargs * MAXMAXARGS + fargs, iargs, fargs); + for (arg = 0; arg < args; ++arg) + { + if (arg > 0) + fprintf(o, ", "); + if (arg < iargs) + fprintf(o, "ai[%d]", arg); + else + fprintf(o, "ad[%d]", arg - iargs); + } + fprintf(o, "); break;\n"); + } + } + fprintf(o, + " default : break;\n" + " }\n" + " }\n" + "}\n"); + + fclose(o); + + return 0; +} diff --git a/src/m_imp.h b/src/m_imp.h index 44b30d72d..04d2d9802 100644 --- a/src/m_imp.h +++ b/src/m_imp.h @@ -27,6 +27,13 @@ typedef void (*t_symbolmethod)(t_pd *x, t_symbol *s); 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); +typedef void* (*t_bangmethodr)(t_pd *x); +typedef void* (*t_pointermethodr)(t_pd *x, t_gpointer *gp); +typedef void* (*t_floatmethodr)(t_pd *x, t_float f); +typedef void* (*t_symbolmethodr)(t_pd *x, t_symbol *s); +typedef void* (*t_listmethodr)(t_pd *x, t_symbol *s, int argc, t_atom *argv); +typedef void* (*t_anymethodr)(t_pd *x, t_symbol *s, int argc, t_atom *argv); + struct _class { t_symbol *c_name; /* name (mostly for error reporting) */ diff --git a/src/m_pd.c b/src/m_pd.c index 03799e1f8..a297fc46a 100644 --- a/src/m_pd.c +++ b/src/m_pd.c @@ -25,10 +25,12 @@ t_pd *pd_new(t_class *c) return (x); } +typedef void (*t_freemethod)(t_pd *); + void pd_free(t_pd *x) { t_class *c = *x; - if (c->c_freemethod) (*(t_gotfn)(c->c_freemethod))(x); + if (c->c_freemethod) (*(t_freemethod)(c->c_freemethod))(x); if (c->c_patchable) { while (((t_object *)x)->ob_outlet) @@ -275,7 +277,10 @@ void pd_bang(t_pd *x) void pd_float(t_pd *x, t_float f) { - (*(*x)->c_floatmethod)(x, f); + if (x == &pd_objectmaker) + ((t_floatmethodr)(*(*x)->c_floatmethod))(x, f); + else + (*(*x)->c_floatmethod)(x, f); } void pd_pointer(t_pd *x, t_gpointer *gp) diff --git a/src/s_inter.c b/src/s_inter.c index 30093f1f8..2fe31a2a2 100644 --- a/src/s_inter.c +++ b/src/s_inter.c @@ -223,15 +223,14 @@ static int sys_domicrosleep(int microsec) timeout.tv_usec = 0; if (INTER->i_nfdpoll) { - fd_set readset, writeset, exceptset; + fd_set readset, writeset; FD_ZERO(&writeset); FD_ZERO(&readset); - FD_ZERO(&exceptset); for (fp = INTER->i_fdpoll, i = INTER->i_nfdpoll; i--; fp++) FD_SET(fp->fdp_fd, &readset); if(select(INTER->i_maxfd+1, - &readset, &writeset, &exceptset, &timeout) < 0) + &readset, &writeset, NULL, &timeout) < 0) perror("microsleep select"); INTER->i_fdschanged = 0; for (i = 0; i < INTER->i_nfdpoll && @@ -1787,16 +1786,12 @@ static void glist_maybevis(t_glist *gl) } } -int sys_startgui(const char *libdir) + /* this is called from main when GUI has given us out font metrics, + so that we can now draw all "visible" canvases. These include all + root canvases and all subcanvases that already believe they're visible. */ +void sys_doneglobinit( void) { t_canvas *x; - stderr_isatty = isatty(2); - for (x = pd_getcanvaslist(); x; x = x->gl_next) - canvas_vis(x, 0); - INTER->i_havegui = 1; - INTER->i_guihead = INTER->i_guitail = 0; - if (sys_do_startgui(libdir)) - return (-1); for (x = pd_getcanvaslist(); x; x = x->gl_next) if (strcmp(x->gl_name->s_name, "_float_template") && strcmp(x->gl_name->s_name, "_float_array_template") && @@ -1805,6 +1800,25 @@ int sys_startgui(const char *libdir) glist_maybevis(x); canvas_vis(x, 1); } +} + + /* start the GUI up. Before we actually draw our "visible" windows + we have to wait for the GUI to give us our font metrics. LATER + it would be cool to figure out what metrics we really need and tell + the GUI - that way we can support arbitrary zoom with appropriate font + sizes. And/or: if we ever move definitively to a vector-based GUI + lib we might be able to skip this step altogether. */ +int sys_startgui(const char *libdir) +{ + t_canvas *x; + stderr_isatty = isatty(2); + for (x = pd_getcanvaslist(); x; x = x->gl_next) + canvas_vis(x, 0); + INTER->i_havegui = 1; + INTER->i_guihead = INTER->i_guitail = 0; + INTER->i_waitingforping = 0; + if (sys_do_startgui(libdir)) + return (-1); return (0); } diff --git a/src/s_main.c b/src/s_main.c index 92d4d167c..4c5da061a 100644 --- a/src/s_main.c +++ b/src/s_main.c @@ -5,6 +5,7 @@ #include "m_pd.h" #include "m_imp.h" #include "s_stuff.h" +#include "s_net.h" #include #include #include @@ -49,6 +50,7 @@ void sys_addhelppath(char *p); void alsa_adddev(const char *name); #endif int sys_oktoloadfiles(int done); +void sys_doneglobinit( void); int sys_debuglevel; int sys_verbose; @@ -123,9 +125,17 @@ static t_fontinfo sys_fontspec[] = { {16, 10, 19}, {24, 14, 29}, {36, 22, 44}}; #define NFONT (sizeof(sys_fontspec)/sizeof(*sys_fontspec)) #define NZOOM 2 -static t_fontinfo sys_gotfonts[NZOOM][NFONT]; -/* here are the actual font size structs on msp's systems: + /* here are actual measured font sizes; they are overwritten from the + GUI if/when the GUI starts up. */ +static t_fontinfo sys_gotfonts[NZOOM][NFONT] = { + {{8, 5, 11}, {10, 6, 13}, {12, 7, 16}, {16, 10, 19}, {24, 14, 29}, + {36, 22, 44}}, + {{16, 10, 22}, {20, 12, 26}, {24, 14, 32}, {32, 20, 38}, {48, 28, 58}, + {72, 44, 88}} +}; + +/* here are some measured font size structs for example: MSW: font 8 5 9 8 5 11 font 10 7 13 10 6 13 @@ -260,7 +270,8 @@ static void openit(const char *dirname, const char *filename, const char *args) pd_error(0, "%s: can't open", filename); } -/* this is called from the gui process. The first argument is the cwd, and +/* this is called from the gui process. The first argument is ignored, +the second one flags an old version of TK which for back compatibility, and succeeding args give the widths and heights of known fonts. We wait until these are known to open files and send messages specified on the command line. We ask the GUI to specify the "cwd" in case we don't have a local OS to get it @@ -270,9 +281,6 @@ open(), read(), etc, calls to be served somehow from the GUI too. */ void glob_initfromgui(void *dummy, t_symbol *s, int argc, t_atom *argv) { - const char *cwd = atom_getsymbolarg(0, argc, argv)->s_name; - t_patchlist *pl; - t_namelist *nl; unsigned int i; int did_fontwarning = 0; int j; @@ -292,7 +300,8 @@ void glob_initfromgui(void *dummy, t_symbol *s, int argc, t_atom *argv) height = (j+1)*sys_fontspec[i].fi_height; if (!did_fontwarning) { - logpost(NULL, PD_VERBOSE, "ignoring invalid font-metrics from GUI"); + logpost(NULL, + PD_VERBOSE, "ignoring invalid font-metrics from GUI"); did_fontwarning = 1; } } @@ -305,60 +314,8 @@ void glob_initfromgui(void *dummy, t_symbol *s, int argc, t_atom *argv) sys_gotfonts[j][i].fi_height); #endif } - /* load dynamic libraries specified with "-lib" args */ - if (sys_oktoloadfiles(0)) - { - for (nl = STUFF->st_externlist; nl; nl = nl->nl_next) - if (!sys_load_lib(0, nl->nl_string)) - post("%s: can't load library", nl->nl_string); - sys_oktoloadfiles(1); - } - /* open patches specifies with "-open" args */ - for (pl = sys_openlist; pl; pl = pl->pl_next) - openit(cwd, pl->pl_file, pl->pl_args); - patchlist_free(sys_openlist); - sys_openlist = 0; - /* send messages specified with "-send" args */ - for (nl = sys_messagelist; nl; nl = nl->nl_next) - { - t_binbuf *b = binbuf_new(); - binbuf_text(b, nl->nl_string, strlen(nl->nl_string)); - binbuf_eval(b, 0, 0, 0); - binbuf_free(b); - } - namelist_free(sys_messagelist); - sys_messagelist = 0; -} - -// font char metric triples: pointsize width(pixels) height(pixels) -static int defaultfontshit[] = { - 8, 5, 11, 10, 6, 13, 12, 7, 16, 16, 10, 19, 24, 14, 29, 36, 22, 44, - 16, 10, 22, 20, 12, 26, 24, 14, 32, 32, 20, 38, 48, 28, 58, 72, 44, 88 -}; // normal & zoomed (2x) -#define NDEFAULTFONT (sizeof(defaultfontshit)/sizeof(*defaultfontshit)) - -static t_clock *sys_fakefromguiclk; -int socket_init(void); -static void sys_fakefromgui(void) -{ - /* fake the GUI's message giving cwd and font sizes in case - we aren't starting the gui. */ - t_atom zz[NDEFAULTFONT+2]; - int i; - char buf[MAXPDSTRING]; -#ifdef _WIN32 - if (GetCurrentDirectory(MAXPDSTRING, buf) == 0) - strcpy(buf, "."); -#else - if (!getcwd(buf, MAXPDSTRING)) - strcpy(buf, "."); -#endif - SETSYMBOL(zz, gensym(buf)); - SETFLOAT(zz+1, 0); - for (i = 0; i < (int)NDEFAULTFONT; i++) - SETFLOAT(zz+i+2, defaultfontshit[i]); - glob_initfromgui(0, 0, 2+NDEFAULTFONT, zz); - clock_free(sys_fakefromguiclk); + sys_doneglobinit(); /* tell s_inter.c to vis our canvases now that + we think we know the actual font metrics the GUI will use. */ } static void sys_afterargparse(void); @@ -369,6 +326,8 @@ int sys_main(int argc, const char **argv) { int i, noprefs; const char *prefsfile = ""; + t_namelist *nl; + t_patchlist *pl; sys_externalschedlib = 0; sys_extraflags = 0; #ifdef PD_DEBUG @@ -445,11 +404,32 @@ int sys_main(int argc, const char **argv) } sys_setsignalhandlers(); sys_afterargparse(); /* post-argparse settings */ - if (sys_dontstartgui) - clock_set((sys_fakefromguiclk = - clock_new(0, (t_method)sys_fakefromgui)), 0); - else if (sys_startgui(sys_libdir->s_name)) /* start the gui */ - return (1); + /* load dynamic libraries specified with "-lib" args */ + if (sys_oktoloadfiles(0)) + { + for (nl = STUFF->st_externlist; nl; nl = nl->nl_next) + if (!sys_load_lib(0, nl->nl_string)) + post("%s: can't load library", nl->nl_string); + sys_oktoloadfiles(1); + } + /* open patches specifies with "-open" args */ + for (pl = sys_openlist; pl; pl = pl->pl_next) + openit(".", pl->pl_file, pl->pl_args); + patchlist_free(sys_openlist); + sys_openlist = 0; + /* send messages specified with "-send" args */ + for (nl = sys_messagelist; nl; nl = nl->nl_next) + { + t_binbuf *b = binbuf_new(); + binbuf_text(b, nl->nl_string, strlen(nl->nl_string)); + binbuf_eval(b, 0, 0, 0); + binbuf_free(b); + } + namelist_free(sys_messagelist); + sys_messagelist = 0; + if (!sys_dontstartgui && + sys_startgui(sys_libdir->s_name)) /* start the gui */ + return (1); if (sys_hipriority) sys_setrealtime(sys_libdir->s_name); /* set desired process priority */ if (sys_externalschedlib) diff --git a/src/s_path.c b/src/s_path.c index 2b1df870c..ad7b4d523 100644 --- a/src/s_path.c +++ b/src/s_path.c @@ -86,7 +86,7 @@ int sys_isabsolutepath(const char *dir) } /* expand env vars and ~ at the beginning of a path and make a copy to return */ -static void sys_expandpath(const char *from, char *to, int bufsize) +void sys_expandpath(const char *from, char *to, int bufsize) { if ((strlen(from) == 1 && from[0] == '~') || (strncmp(from,"~/", 2) == 0)) { diff --git a/src/x_connective.c b/src/x_connective.c index 6cf38b7d7..31ab0146c 100644 --- a/src/x_connective.c +++ b/src/x_connective.c @@ -74,7 +74,7 @@ typedef struct _pdfloat they're created by short-circuited messages to the "new" object which are handled specially in pd_typedmess(). */ -static void *pdfloat_new(t_pd *dummy, t_float f) +void *pdfloat_new(t_pd *dummy, t_float f) { t_pdfloat *x = (t_pdfloat *)pd_new(pdfloat_class); x->x_f = f; @@ -138,7 +138,7 @@ typedef struct _pdsymbol t_symbol *x_s; } t_pdsymbol; -static void *pdsymbol_new(t_pd *dummy, t_symbol *s) +void *pdsymbol_new(t_pd *dummy, t_symbol *s) { t_pdsymbol *x = (t_pdsymbol *)pd_new(pdsymbol_class); x->x_s = s; @@ -196,7 +196,7 @@ typedef struct _bang t_object x_obj; } t_bang; -static void *bang_new(t_pd *dummy) +void *bang_new(t_pd *dummy) { t_bang *x = (t_bang *)pd_new(bang_class); outlet_new(&x->x_obj, &s_bang); @@ -204,7 +204,7 @@ static void *bang_new(t_pd *dummy) return (x); } -static void *bang_new2(t_bang f) +static void *bang_new2(void) { return (bang_new(0)); } @@ -214,16 +214,31 @@ static void bang_bang(t_bang *x) outlet_bang(x->x_obj.ob_outlet); } +static void bang_float(t_bang *x, t_float dummy) +{ + bang_bang(x); +} + +static void bang_symbol(t_bang *x, t_symbol *dummy) +{ + bang_bang(x); +} + +static void bang_gimme(t_bang *x, t_symbol *s, int argc, t_atom *argv) +{ + bang_bang(x); +} + void bang_setup(void) { bang_class = class_new(gensym("bang"), (t_newmethod)bang_new, 0, sizeof(t_bang), 0, 0); class_addcreator((t_newmethod)bang_new2, gensym("b"), 0); class_addbang(bang_class, bang_bang); - class_addfloat(bang_class, bang_bang); - class_addsymbol(bang_class, bang_bang); - class_addlist(bang_class, bang_bang); - class_addanything(bang_class, bang_bang); + class_addfloat(bang_class, bang_float); + class_addsymbol(bang_class, bang_symbol); + class_addlist(bang_class, bang_gimme); + class_addanything(bang_class, bang_gimme); } /* -------------------- send ------------------------------ */ diff --git a/src/x_list.c b/src/x_list.c index 581da237e..bf49fbd57 100644 --- a/src/x_list.c +++ b/src/x_list.c @@ -822,7 +822,7 @@ static void list_tosymbol_setup(void) /* ------------- list ------------------- */ -static void *list_new(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) +void *list_new(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) { if (!argc || argv[0].a_type != A_SYMBOL) pd_this->pd_newest = list_append_new(s, argc, argv); diff --git a/src/x_misc.c b/src/x_misc.c index 290833e5d..6329884d4 100644 --- a/src/x_misc.c +++ b/src/x_misc.c @@ -22,7 +22,7 @@ #if defined (__APPLE__) || defined (__FreeBSD__) #define CLOCKHZ CLK_TCK #endif -#if defined (__linux__) || defined (__CYGWIN__) || defined (ANDROID) +#if defined (__linux__) || defined (__CYGWIN__) || defined (ANDROID) || defined(__EMSCRIPTEN__) #define CLOCKHZ sysconf(_SC_CLK_TCK) #endif #if defined (__FreeBSD_kernel__) || defined(__GNU__) || defined(__OpenBSD__) \ diff --git a/tcl/wheredoesthisgo.tcl b/tcl/wheredoesthisgo.tcl index 76e61b435..abdf70223 100644 --- a/tcl/wheredoesthisgo.tcl +++ b/tcl/wheredoesthisgo.tcl @@ -36,6 +36,7 @@ proc open_file {filename} { # ------------------------------------------------------------------------------ # procs for panels (openpanel, savepanel) proc pdtk_openpanel {target localdir {mode 0} {parent .pdwindow}} { + set localdir [file normalize $localdir] if { $::pd::private::lastopendir == "" } { if { ! [file isdirectory $::fileopendir]} { set ::fileopendir $::env(HOME) @@ -89,6 +90,7 @@ proc pdtk_openpanel {target localdir {mode 0} {parent .pdwindow}} { proc pdtk_savepanel {target localdir {parent .pdwindow}} { + set localdir [file normalize $localdir] if { $::pd::private::lastsavedir == "" } { if { ! [file isdirectory $::filenewdir]} { set ::filenewdir $::env(HOME) From bc813166fd2b7c5d0a6bb2b2a2ed4dc7dd049739 Mon Sep 17 00:00:00 2001 From: porres Date: Tue, 9 Apr 2024 01:12:02 -0300 Subject: [PATCH 190/450] Manual revision (#2249) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * emscripten behaves similarly to linux * noise~ does not take any argument otherwise emscripten complains when function pointers are used at the wrong type * samplerate~ does not take any argument otherwise emscripten complains when function pointers are used at the wrong type * bang_new2() should not take any argument otherwise emscripten complains when function pointers are used at the wrong type * explicitly forward bang methods otherwise emscripten complains about mismatching function pointer types * remove unused exceptfds in select() it is unsupported by emscripten * add typedefs for methods that return a pointer instead of void * deprivatize b/f/s/l constructors and redeclare in m_class.c * Typecheck both int (probably pointer) and float args separately. Emscripten doesn't let you call function pointers with the wrong type. To avoid copy/paste errors, the dispatcher code is generated. Edit the generator instead of the generated files. The generated files are checked into the repository with this commit; they will hopefully change very rarely, and complicating the build system seems even worse. * objectmaker methods need to be cast to their real type for emscripten * can't call canvas_new at wrong function pointer type in emscripten * fix objectmaker methods function pointer type issues in emscripten * call free method using correct function pointer type (required by Emscripten) * ensure the class dispatched files are included in dist tarballs * pdtk_open/savepanel: normalize dirnames so ~/ gets expanded on macOS Closes: https://github.com/pure-data/pure-data/issues/2214 * canvas_makefilename: expand leading "~" and envvars (at least on windows) also re-use sys_isabsolutepath() rather than making our own naive implementation Closes: https://github.com/pure-data/pure-data/issues/2214 * soundfile comment typo and indentation fixes * fix crasher bug from a50533101aaba02a86593524a0ac56896b15e5cc (ask whether changes should be discarded when typing into a modified abs) * update m_class_dispatcher headerst to support up to 6 arguments we must support up to MAXPDARGS+1 arguments because the message receiver itself is passed as an additional t_int argument. also, make sure that headers are written in binary mode to get the same output on all systems. * merge message dispatching code into a single header m_dispatch.h the header now contains a static function mess_dispatch() which is called in pd_typedmess() m_class_dispatcher.c has been renamed to m_dispatch_gen.c * numbox: mark private functions as "static" * clear number buffer after setting colors Closes: https://github.com/pure-data/pure-data/issues/2140 * fix startup not to wait for font info before loading patches and sending startup msgs * bug fixes for opening and closing guis dynamically and a couple of random mac problems * fix trailing whate space * minor edit this is more of a test really for merging * reverb echo --------- Co-authored-by: Claude Heiland-Allen Co-authored-by: IOhannes m zmölnig Co-authored-by: danomatika Co-authored-by: Miller Puckette Co-authored-by: Christof Ressi Co-authored-by: IOhannes m zmölnig Co-authored-by: msp From 02f4cc03780848ff0be650a21cd0e5c6c0fc044f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 9 Apr 2024 11:16:03 +0200 Subject: [PATCH 191/450] remove more trailing whitespace --- src/s_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/s_main.c b/src/s_main.c index 4c5da061a..e8d1ef5e6 100644 --- a/src/s_main.c +++ b/src/s_main.c @@ -427,7 +427,7 @@ int sys_main(int argc, const char **argv) } namelist_free(sys_messagelist); sys_messagelist = 0; - if (!sys_dontstartgui && + if (!sys_dontstartgui && sys_startgui(sys_libdir->s_name)) /* start the gui */ return (1); if (sys_hipriority) From 83b906a25d295410fd47b2377a73561fac12bf53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 9 Apr 2024 17:05:28 +0200 Subject: [PATCH 192/450] declare OOURA helper functions as "static" Closes: https://github.com/pure-data/pure-data/issues/2250 --- src/d_fft_fftsg.c | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/src/d_fft_fftsg.c b/src/d_fft_fftsg.c index 0d2d3797c..ce5c958d7 100644 --- a/src/d_fft_fftsg.c +++ b/src/d_fft_fftsg.c @@ -25,8 +25,46 @@ for another, more permissive-sounding copyright notice. -MSP #include "m_private_utils.h" #define FFTFLT double -void cdft(int, int, FFTFLT *, int *, FFTFLT *); -void rdft(int, int, FFTFLT *, int *, FFTFLT *); +static void cdft(int, int, FFTFLT *, int *, FFTFLT *); +static void rdft(int, int, FFTFLT *, int *, FFTFLT *); + +static void *cftrec1_th(void *p); +static void *cftrec2_th(void *p); +static void bitrv2(int n, int *ip, FFTFLT *a); +static void bitrv208(FFTFLT *a); +static void bitrv208neg(FFTFLT *a); +static void bitrv216(FFTFLT *a); +static void bitrv216neg(FFTFLT *a); +static void bitrv2conj(int n, int *ip, FFTFLT *a); +static void cftb040(FFTFLT *a); +static void cftb1st(int n, FFTFLT *a, FFTFLT *w); +static void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); +static void cftf040(FFTFLT *a); +static void cftf081(FFTFLT *a, FFTFLT *w); +static void cftf082(FFTFLT *a, FFTFLT *w); +static void cftf161(FFTFLT *a, FFTFLT *w); +static void cftf162(FFTFLT *a, FFTFLT *w); +static void cftf1st(int n, FFTFLT *a, FFTFLT *w); +static void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); +static void cftfx41(int n, FFTFLT *a, int nw, FFTFLT *w); +static void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); +static void cftmdl1(int n, FFTFLT *a, FFTFLT *w); +static void cftmdl2(int n, FFTFLT *a, FFTFLT *w); +static int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w); +static void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w); +static void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w); +static void cftx020(FFTFLT *a); +static void dctsub(int n, FFTFLT *a, int nc, FFTFLT *c); +static void ddct(int, int, FFTFLT *, int *, FFTFLT *); +static void ddst(int, int, FFTFLT *, int *, FFTFLT *); +static void dfct(int, FFTFLT *, FFTFLT *, int *, FFTFLT *); +static void dfst(int, FFTFLT *, FFTFLT *, int *, FFTFLT *); +static void dstsub(int n, FFTFLT *a, int nc, FFTFLT *c); +static void makect(int nc, int *ip, FFTFLT *c); +static void makeipt(int nw, int *ip); +static void makewt(int nw, int *ip, FFTFLT *w); +static void rftbsub(int n, FFTFLT *a, int nc, FFTFLT *c); +static void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); int ilog2(int n); From d64f278a6529aa30f9ab33a87235a98e483b9a67 Mon Sep 17 00:00:00 2001 From: danomatika Date: Tue, 9 Apr 2024 22:07:59 +0200 Subject: [PATCH 193/450] update to libpd 0.14.1 --- src/s_libpdmidi.c | 38 ++++--- src/x_libpdreceive.c | 27 +++-- src/x_libpdreceive.h | 2 +- src/z_hooks.c | 30 ++--- src/z_hooks.h | 70 +++++++++--- src/z_libpd.c | 126 ++++++++++++++++----- src/z_libpd.h | 94 +++++++++++++--- src/z_print_util.c | 56 ++++++---- src/z_print_util.h | 16 +-- src/z_queued.c | 260 ++++++++++++++++++++++++------------------- src/z_queued.h | 56 +++++++--- src/z_ringbuffer.c | 8 +- src/z_ringbuffer.h | 6 +- 13 files changed, 528 insertions(+), 261 deletions(-) diff --git a/src/s_libpdmidi.c b/src/s_libpdmidi.c index ddac90909..693df5bfe 100644 --- a/src/s_libpdmidi.c +++ b/src/s_libpdmidi.c @@ -3,7 +3,6 @@ * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ #include "m_pd.h" -#include "s_stuff.h" #include "z_libpd.h" #include "z_hooks.h" @@ -17,38 +16,45 @@ #define CHANNEL ((CLAMP12BIT(port) << 4) | CLAMP4BIT(channel)) void outmidi_noteon(int port, int channel, int pitch, int velo) { - if (libpd_noteonhook) - libpd_noteonhook(CHANNEL, CLAMP7BIT(pitch), CLAMP7BIT(velo)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_noteonhook) + imp->i_hooks.h_noteonhook(CHANNEL, CLAMP7BIT(pitch), CLAMP7BIT(velo)); } void outmidi_controlchange(int port, int channel, int ctl, int value) { - if (libpd_controlchangehook) - libpd_controlchangehook(CHANNEL, CLAMP7BIT(ctl), CLAMP7BIT(value)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_controlchangehook) + imp->i_hooks.h_controlchangehook(CHANNEL, CLAMP7BIT(ctl), CLAMP7BIT(value)); } void outmidi_programchange(int port, int channel, int value) { - if (libpd_programchangehook) - libpd_programchangehook(CHANNEL, CLAMP7BIT(value)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_programchangehook) + imp->i_hooks.h_programchangehook(CHANNEL, CLAMP7BIT(value)); } void outmidi_pitchbend(int port, int channel, int value) { - if (libpd_pitchbendhook) - libpd_pitchbendhook(CHANNEL, CLAMP14BIT(value) - 8192); // remove offset + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_pitchbendhook) + imp->i_hooks.h_pitchbendhook(CHANNEL, CLAMP14BIT(value) - 8192); // remove offset } void outmidi_aftertouch(int port, int channel, int value) { - if (libpd_aftertouchhook) - libpd_aftertouchhook(CHANNEL, CLAMP7BIT(value)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_aftertouchhook) + imp->i_hooks.h_aftertouchhook(CHANNEL, CLAMP7BIT(value)); } void outmidi_polyaftertouch(int port, int channel, int pitch, int value) { - if (libpd_polyaftertouchhook) - libpd_polyaftertouchhook(CHANNEL, CLAMP7BIT(pitch), CLAMP7BIT(value)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_polyaftertouchhook) + imp->i_hooks.h_polyaftertouchhook(CHANNEL, CLAMP7BIT(pitch), CLAMP7BIT(value)); } void outmidi_byte(int port, int value) { - if (libpd_midibytehook) - libpd_midibytehook(CLAMP12BIT(port), CLAMP8BIT(value)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_midibytehook) + imp->i_hooks.h_midibytehook(CLAMP12BIT(port), CLAMP8BIT(value)); } /* tell Pd GUI that our list of MIDI APIs is empty */ @@ -65,6 +71,7 @@ void sys_close_midi() {} void sys_reopen_midi(void) {} void sys_initmidiqueue(void) {} void sys_pollmidiqueue(void) {} +void sys_setmiditimediff(double inbuftime, double outbuftime) {} void glob_midi_setapi(void *dummy, t_floatarg f) {} void glob_midi_properties(t_pd *dummy, t_floatarg flongform) {} void glob_midi_dialog(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) {} @@ -72,5 +79,4 @@ int sys_mididevnametonumber(int output, const char *name) { return 0; } void sys_mididevnumbertoname(int output, int devno, char *name, int namesize) {} void sys_set_midi_api(int api) {} void sys_gui_midipreferences(void) {} - int sys_midiapi; diff --git a/src/x_libpdreceive.c b/src/x_libpdreceive.c index 18d6cb81b..4a7dddad0 100644 --- a/src/x_libpdreceive.c +++ b/src/x_libpdreceive.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2010 Peter Brinkmann (peter.brinkmann@gmail.com) - * Copyright (c) 2012-2019 libpd team + * Copyright (c) 2012-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -9,7 +9,6 @@ * */ -#include #include "x_libpdreceive.h" #include "z_libpd.h" #include "z_hooks.h" @@ -17,20 +16,26 @@ static t_class *libpdrec_class; typedef struct _libpdrec { - t_object x_obj; - t_symbol *x_sym; + t_object x_obj; + t_symbol *x_sym; + t_libpdhooks *x_hooks; } t_libpdrec; static void libpdrecbang(t_libpdrec *x) { - if (libpd_banghook) (*libpd_banghook)(x->x_sym->s_name); + if (x->x_hooks->h_banghook) + (*x->x_hooks->h_banghook)(x->x_sym->s_name); } static void libpdrecfloat(t_libpdrec *x, t_float f) { - if (libpd_floathook) (*libpd_floathook)(x->x_sym->s_name, f); + if (x->x_hooks->h_floathook) + (*x->x_hooks->h_floathook)(x->x_sym->s_name, f); + else if (x->x_hooks->h_doublehook) + (*x->x_hooks->h_doublehook)(x->x_sym->s_name, f); } static void libpdrecsymbol(t_libpdrec *x, t_symbol *s) { - if (libpd_symbolhook) (*libpd_symbolhook)(x->x_sym->s_name, s->s_name); + if (x->x_hooks->h_symbolhook) + (*x->x_hooks->h_symbolhook)(x->x_sym->s_name, s->s_name); } static void libpdrecpointer(t_libpdrec *x, t_gpointer *gp) { @@ -38,13 +43,14 @@ static void libpdrecpointer(t_libpdrec *x, t_gpointer *gp) { } static void libpdreclist(t_libpdrec *x, t_symbol *s, int argc, t_atom *argv) { - if (libpd_listhook) (*libpd_listhook)(x->x_sym->s_name, argc, argv); + if (x->x_hooks->h_listhook) + (*x->x_hooks->h_listhook)(x->x_sym->s_name, argc, argv); } static void libpdrecanything(t_libpdrec *x, t_symbol *s, int argc, t_atom *argv) { - if (libpd_messagehook) - (*libpd_messagehook)(x->x_sym->s_name, s->s_name, argc, argv); + if (x->x_hooks->h_messagehook) + (*x->x_hooks->h_messagehook)(x->x_sym->s_name, s->s_name, argc, argv); } static void libpdreceive_free(t_libpdrec *x) { @@ -55,6 +61,7 @@ static void *libpdreceive_donew(t_symbol *s) { t_libpdrec *x; x = (t_libpdrec *)pd_new(libpdrec_class); x->x_sym = s; + x->x_hooks = &LIBPDSTUFF->i_hooks; pd_bind(&x->x_obj.ob_pd, s); return x; } diff --git a/src/x_libpdreceive.h b/src/x_libpdreceive.h index 0a33458e2..13d4064c1 100644 --- a/src/x_libpdreceive.h +++ b/src/x_libpdreceive.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2010 Peter Brinkmann (peter.brinkmann@gmail.com) - * Copyright (c) 2012-2019 libpd team + * Copyright (c) 2012-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. diff --git a/src/z_hooks.c b/src/z_hooks.c index e25f6c4ab..4c2ee01ba 100644 --- a/src/z_hooks.c +++ b/src/z_hooks.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2013 Dan Wilcox (danomatika@gmail.com) - * Copyright (c) 2013-2019 libpd team + * Copyright (c) 2013-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -10,17 +10,21 @@ */ #include "z_hooks.h" +#include -t_libpd_banghook libpd_banghook = NULL; -t_libpd_floathook libpd_floathook = NULL; -t_libpd_symbolhook libpd_symbolhook = NULL; -t_libpd_listhook libpd_listhook = NULL; -t_libpd_messagehook libpd_messagehook = NULL; +/* instance */ -t_libpd_noteonhook libpd_noteonhook = NULL; -t_libpd_controlchangehook libpd_controlchangehook = NULL; -t_libpd_programchangehook libpd_programchangehook = NULL; -t_libpd_pitchbendhook libpd_pitchbendhook = NULL; -t_libpd_aftertouchhook libpd_aftertouchhook = NULL; -t_libpd_polyaftertouchhook libpd_polyaftertouchhook = NULL; -t_libpd_midibytehook libpd_midibytehook = NULL; +t_libpdimp libpd_mainimp = {NULL}; + +t_libpdimp* libpdimp_new(void) { + t_libpdimp *imp = calloc(1, sizeof(t_libpdimp)); + return imp; +} + +void libpdimp_free(t_libpdimp *imp) { + if (imp == &libpd_mainimp) return; + if (imp->i_queued) imp->i_queued_freehook(imp->i_queued); + if (imp->i_print_util) free(imp->i_print_util); + if (imp->i_data && imp->i_data_freehook) imp->i_data_freehook(imp->i_data); + free(imp); +} diff --git a/src/z_hooks.h b/src/z_hooks.h index a1aebff84..d10f1cc86 100644 --- a/src/z_hooks.h +++ b/src/z_hooks.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2013 Dan Wilcox (danomatika@gmail.com) - * Copyright (c) 2013-2019 libpd team + * Copyright (c) 2013-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -13,23 +13,61 @@ #define __Z_HOOKS_H__ #include "z_libpd.h" +#include "s_stuff.h" -// internal hooks +// internal hooks, etc // do *not* include this file in a user-facing header -// no libpd_printhook as libpd_set_printhook() sets internal sys_printhook -extern t_libpd_banghook libpd_banghook; -extern t_libpd_floathook libpd_floathook; -extern t_libpd_symbolhook libpd_symbolhook; -extern t_libpd_listhook libpd_listhook; -extern t_libpd_messagehook libpd_messagehook; - -extern t_libpd_noteonhook libpd_noteonhook; -extern t_libpd_controlchangehook libpd_controlchangehook; -extern t_libpd_programchangehook libpd_programchangehook; -extern t_libpd_pitchbendhook libpd_pitchbendhook; -extern t_libpd_aftertouchhook libpd_aftertouchhook; -extern t_libpd_polyaftertouchhook libpd_polyaftertouchhook; -extern t_libpd_midibytehook libpd_midibytehook; +/* hooks */ + +typedef struct _libpdhooks { + + // messages + // no h_printhook as libpd_set_printhook() sets internal STUFF->st_printhook + t_libpd_banghook h_banghook; + t_libpd_floathook h_floathook; + t_libpd_doublehook h_doublehook; + t_libpd_symbolhook h_symbolhook; + t_libpd_listhook h_listhook; + t_libpd_messagehook h_messagehook; + + // MIDI + t_libpd_noteonhook h_noteonhook; + t_libpd_controlchangehook h_controlchangehook; + t_libpd_programchangehook h_programchangehook; + t_libpd_pitchbendhook h_pitchbendhook; + t_libpd_aftertouchhook h_aftertouchhook; + t_libpd_polyaftertouchhook h_polyaftertouchhook; + t_libpd_midibytehook h_midibytehook; +} t_libpdhooks; + +/* instance */ + +/// libpd per-instance implementation data +typedef struct _libpdimp { + t_libpdhooks i_hooks; /* event hooks */ + void *i_queued; /* queued data, default NULL */ + void *i_print_util; /* print util data, default NULL */ + void *i_data; /* user data, default NULL */ + t_libpd_freehook i_queued_freehook; /* i_queued free, default NULL */ + t_libpd_freehook i_data_freehook; /* i_data free, default NULL */ +} t_libpdimp; + +/// main instance implementation data, always valid +extern t_libpdimp libpd_mainimp; + +/// alloc new instance implementation data +t_libpdimp* libpdimp_new(void); + +/// free instance implementation data +/// does nothing if imp is libpd_mainimp +void libpdimp_free(t_libpdimp *imp); + +/// get current instance implementation data +#ifdef PDINSTANCE + #define LIBPDSTUFF ((t_libpdimp *)(STUFF->st_impdata)) +#else + #define LIBPDSTUFF ((t_libpdimp *)&libpd_mainimp) +#endif #endif diff --git a/src/z_libpd.c b/src/z_libpd.c index 6bf74794a..cee4c2fc4 100644 --- a/src/z_libpd.c +++ b/src/z_libpd.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2010 Peter Brinkmann (peter.brinkmann@gmail.com) - * Copyright (c) 2012-2019 libpd team + * Copyright (c) 2012-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -20,10 +20,18 @@ #include "z_libpd.h" #include "x_libpdreceive.h" #include "z_hooks.h" -#include "s_stuff.h" #include "m_imp.h" #include "g_all_guis.h" +// pd_init() doesn't call socket_init() which is needed on windows for +// libpd_start_gui() to work +#if (defined(_WIN32) || defined(_WIN64)) && PD_MINOR_VERSION > 50 +# include "s_net.h" +# define SOCKET_INIT socket_init(); +#else +# define SOCKET_INIT +#endif + #if PD_MINOR_VERSION < 46 # define HAVE_SCHED_TICK_ARG #endif @@ -64,9 +72,11 @@ static void *get_object(const char *s) { return x; } +// note: could we use pd_this instead? +static int s_initialized = 0; + // this is called instead of sys_main() to start things int libpd_init(void) { - static int s_initialized = 0; if (s_initialized) return -1; // only allow init once (for now) s_initialized = 1; signal(SIGFPE, SIG_IGN); @@ -86,10 +96,12 @@ int libpd_init(void) { STUFF->st_soundin = NULL; STUFF->st_soundout = NULL; STUFF->st_schedblocksize = DEFDACBLKSIZE; + STUFF->st_impdata = &libpd_mainimp; sys_init_fdpoll(); libpdreceive_setup(); STUFF->st_searchpath = NULL; sys_libdir = gensym(""); + SOCKET_INIT post("pd %d.%d.%d%s", PD_MAJOR_VERSION, PD_MINOR_VERSION, PD_BUGFIX_VERSION, PD_TEST_VERSION); #ifdef LIBPD_EXTRA @@ -283,6 +295,20 @@ int libpd_write_array(const char *name, int offset, const float *src, int n) { return 0; } +int libpd_read_array_double(double *dest, const char *name, int offset, int n) { + sys_lock(); + MEMCPY(*dest++, (vec++)->w_float) + sys_unlock(); + return 0; +} + +int libpd_write_array_double(const char *name, int offset, const double *src, int n) { + sys_lock(); + MEMCPY((vec++)->w_float, *src++) + sys_unlock(); + return 0; +} + int libpd_bang(const char *recv) { void *obj; sys_lock(); @@ -297,7 +323,7 @@ int libpd_bang(const char *recv) { return 0; } -int libpd_float(const char *recv, float x) { +static int libpd_dofloat(const char *recv, t_float x) { void *obj; sys_lock(); obj = get_object(recv); @@ -311,6 +337,14 @@ int libpd_float(const char *recv, float x) { return 0; } +int libpd_float(const char *recv, float x) { + return libpd_dofloat(recv, x); +} + +int libpd_double(const char *recv, double x) { + return libpd_dofloat(recv, x); +} + int libpd_symbol(const char *recv, const char *symbol) { void *obj; sys_lock(); @@ -346,6 +380,10 @@ void libpd_add_float(float x) { ADD_ARG(SETFLOAT); } +void libpd_add_double(double x) { + ADD_ARG(SETFLOAT); +} + void libpd_add_symbol(const char *symbol) { t_symbol *x; sys_lock(); @@ -366,6 +404,10 @@ void libpd_set_float(t_atom *a, float x) { SETFLOAT(a, x); } +void libpd_set_double(t_atom *v, double x) { + SETFLOAT(v, x); +} + void libpd_set_symbol(t_atom *a, const char *symbol) { SETSYMBOL(a, gensym(symbol)); } @@ -420,28 +462,40 @@ int libpd_exists(const char *recv) { return retval; } +// when setting hooks, use mainimp if pd is not yet inited +#define IMP (s_initialized ? LIBPDSTUFF : &libpd_mainimp) + void libpd_set_printhook(const t_libpd_printhook hook) { - sys_printhook = (t_printhook) hook; + if (!s_initialized) // set default hook + sys_printhook = (t_printhook)hook; + else // set instance hook + STUFF->st_printhook = (t_printhook)hook; } void libpd_set_banghook(const t_libpd_banghook hook) { - libpd_banghook = hook; + IMP->i_hooks.h_banghook = hook; } void libpd_set_floathook(const t_libpd_floathook hook) { - libpd_floathook = hook; + IMP->i_hooks.h_floathook = hook; + IMP->i_hooks.h_doublehook = NULL; +} + +void libpd_set_doublehook(const t_libpd_doublehook hook) { + IMP->i_hooks.h_floathook = NULL; + IMP->i_hooks.h_doublehook = hook; } void libpd_set_symbolhook(const t_libpd_symbolhook hook) { - libpd_symbolhook = hook; + IMP->i_hooks.h_symbolhook = hook; } void libpd_set_listhook(const t_libpd_listhook hook) { - libpd_listhook = hook; + IMP->i_hooks.h_listhook = hook; } void libpd_set_messagehook(const t_libpd_messagehook hook) { - libpd_messagehook = hook; + IMP->i_hooks.h_messagehook = hook; } int libpd_is_float(t_atom *a) { @@ -456,6 +510,10 @@ float libpd_get_float(t_atom *a) { return (a)->a_w.w_float; } +double libpd_get_double(t_atom *a) { + return (a)->a_w.w_float; +} + const char *libpd_get_symbol(t_atom *a) { return (a)->a_w.w_symbol->s_name; } @@ -557,31 +615,31 @@ int libpd_sysrealtime(int port, int byte) { } void libpd_set_noteonhook(const t_libpd_noteonhook hook) { - libpd_noteonhook = hook; + IMP->i_hooks.h_noteonhook = hook; } void libpd_set_controlchangehook(const t_libpd_controlchangehook hook) { - libpd_controlchangehook = hook; + IMP->i_hooks.h_controlchangehook = hook; } void libpd_set_programchangehook(const t_libpd_programchangehook hook) { - libpd_programchangehook = hook; + IMP->i_hooks.h_programchangehook = hook; } void libpd_set_pitchbendhook(const t_libpd_pitchbendhook hook) { - libpd_pitchbendhook = hook; + IMP->i_hooks.h_pitchbendhook = hook; } void libpd_set_aftertouchhook(const t_libpd_aftertouchhook hook) { - libpd_aftertouchhook = hook; + IMP->i_hooks.h_aftertouchhook = hook; } void libpd_set_polyaftertouchhook(const t_libpd_polyaftertouchhook hook) { - libpd_polyaftertouchhook = hook; + IMP->i_hooks.h_polyaftertouchhook = hook; } void libpd_set_midibytehook(const t_libpd_midibytehook hook) { - libpd_midibytehook = hook; + IMP->i_hooks.h_midibytehook = hook; } int libpd_start_gui(const char *path) { @@ -608,21 +666,25 @@ int libpd_poll_gui(void) { t_pdinstance *libpd_new_instance(void) { #ifdef PDINSTANCE - return pdinstance_new(); + t_pdinstance *pd = pdinstance_new(); + pd->pd_stuff->st_impdata = libpdimp_new(); + return pd; #else - return 0; + return NULL; #endif } -void libpd_set_instance(t_pdinstance *p) { +void libpd_set_instance(t_pdinstance *pd) { #ifdef PDINSTANCE - pd_setinstance(p); + pd_setinstance(pd); #endif } -void libpd_free_instance(t_pdinstance *p) { +void libpd_free_instance(t_pdinstance *pd) { #ifdef PDINSTANCE - pdinstance_free(p); + if (pd == &pd_maininstance) return; + libpdimp_free(pd->pd_stuff->st_impdata); + pdinstance_free(pd); #endif } @@ -630,13 +692,8 @@ t_pdinstance *libpd_this_instance(void) { return pd_this; } -t_pdinstance *libpd_get_instance(int index) { -#ifdef PDINSTANCE - if(index < 0 || index >= pd_ninstances) {return 0;} - return pd_instances[index]; -#else - return pd_this; -#endif +t_pdinstance *libpd_main_instance(void) { + return &pd_maininstance; } int libpd_num_instances(void) { @@ -647,6 +704,15 @@ int libpd_num_instances(void) { #endif } +void libpd_set_instancedata(void *data, t_libpd_freehook freehook) { + LIBPDSTUFF->i_data = data; + LIBPDSTUFF->i_data_freehook = freehook; +} + +void* libpd_get_instancedata() { + return LIBPDSTUFF->i_data; +} + void libpd_set_verbose(int verbose) { if (verbose < 0) verbose = 0; sys_verbose = verbose; diff --git a/src/z_libpd.h b/src/z_libpd.h index d59ce93cd..f656554a3 100644 --- a/src/z_libpd.h +++ b/src/z_libpd.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2010 Peter Brinkmann (peter.brinkmann@gmail.com) - * Copyright (c) 2012-2019 libpd team + * Copyright (c) 2012-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -78,6 +78,7 @@ EXTERN int libpd_process_short(const int ticks, /// process interleaved double samples from inBuffer -> libpd -> outBuffer /// buffer sizes are based on # of ticks and channels where: /// size = ticks * libpd_blocksize() * (in/out)channels +/// note: only full-precision when compiled with PD_FLOATSIZE=64 /// returns 0 on success EXTERN int libpd_process_double(const int ticks, const double *inBuffer, double *outBuffer); @@ -103,6 +104,7 @@ EXTERN int libpd_process_raw_short(const short *inBuffer, short *outBuffer); /// copies buffer contents to/from libpd without striping /// buffer sizes are based on a single tick and # of channels where: /// size = libpd_blocksize() * (in/out)channels +/// note: only full-precision when compiled with PD_FLOATSIZE=64 /// returns 0 on success EXTERN int libpd_process_raw_double(const double *inBuffer, double *outBuffer); @@ -127,7 +129,25 @@ EXTERN int libpd_read_array(float *dest, const char *name, int offset, int n); /// returns 0 on success or a negative error code if the array is non-existent /// or offset + n exceeds range of array EXTERN int libpd_write_array(const char *name, int offset, - const float *src, int n); + const float *src, int n); + +/// read n values from named src array and write into dest starting at an offset +/// note: performs no bounds checking on dest +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +/// returns 0 on success or a negative error code if the array is non-existent +/// or offset + n exceeds range of array +/// double-precision variant of libpd_read_array() +EXTERN int libpd_read_array_double(double *dest, const char *src, + int offset, int n); + +/// read n values from src and write into named dest array starting at an offset +/// note: performs no bounds checking on src +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +/// returns 0 on success or a negative error code if the array is non-existent +/// or offset + n exceeds range of array +/// double-precision variant of libpd_write_array() +EXTERN int libpd_write_array_double(const char *dest, int offset, + const double *src, int n); /* sending messages to pd */ @@ -141,6 +161,12 @@ EXTERN int libpd_bang(const char *recv); /// returns 0 on success or -1 if receiver name is non-existent EXTERN int libpd_float(const char *recv, float x); +/// send a double to a destination receiver +/// ex: libpd_double("foo", 1.1) will send a 1.1 to [s foo] on the next tick +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +/// returns 0 on success or -1 if receiver name is non-existent +EXTERN int libpd_double(const char *recv, double x); + /// send a symbol to a destination receiver /// ex: libpd_symbol("foo", "bar") will send "bar" to [s foo] on the next tick /// returns 0 on success or -1 if receiver name is non-existent @@ -157,6 +183,10 @@ EXTERN int libpd_start_message(int maxlen); /// add a float to the current message in progress EXTERN void libpd_add_float(float x); +/// add a double to the current message in progress +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +EXTERN void libpd_add_double(double x); + /// add a symbol to the current message in progress EXTERN void libpd_add_symbol(const char *symbol); @@ -185,6 +215,10 @@ EXTERN int libpd_finish_message(const char *recv, const char *msg); /// write a float value to the given atom EXTERN void libpd_set_float(t_atom *a, float x); +/// write a double value to the given atom +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +EXTERN void libpd_set_double(t_atom *v, double x); + /// write a symbol value to the given atom EXTERN void libpd_set_symbol(t_atom *a, const char *symbol); @@ -205,7 +239,7 @@ EXTERN int libpd_list(const char *recv, int argc, t_atom *argv); /// libpd_set_float(v, 1); /// libpd_message("pd", "dsp", 1, v); EXTERN int libpd_message(const char *recv, const char *msg, - int argc, t_atom *argv); + int argc, t_atom *argv); /* receiving messages from pd */ @@ -233,6 +267,10 @@ typedef void (*t_libpd_banghook)(const char *recv); /// float receive hook signature, recv is the source receiver name typedef void (*t_libpd_floathook)(const char *recv, float x); +/// double receive hook signature, recv is the source receiver name +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +typedef void (*t_libpd_doublehook)(const char *recv, double x); + /// symbol receive hook signature, recv is the source receiver name typedef void (*t_libpd_symbolhook)(const char *recv, const char *symbol); @@ -282,9 +320,21 @@ EXTERN void libpd_set_printhook(const t_libpd_printhook hook); EXTERN void libpd_set_banghook(const t_libpd_banghook hook); /// set the float receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: avoid calling this while DSP is running +/// note: you can either have a float receiver hook, or a double receiver +/// hook (see below), but not both. +/// calling this, will automatically unset the double receiver hook +/// note: only full-precision when compiled with PD_FLOATSIZE=64 EXTERN void libpd_set_floathook(const t_libpd_floathook hook); +/// set the double receiver hook, NULL by default +/// note: avoid calling this while DSP is running +/// note: you can either have a double receiver hook, or a float receiver +/// hook (see above), but not both. +/// calling this, will automatically unset the float receiver hook +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +EXTERN void libpd_set_doublehook(const t_libpd_doublehook hook); + /// set the symbol receiver hook, NULL by default /// note: do not call this while DSP is running EXTERN void libpd_set_symbolhook(const t_libpd_symbolhook hook); @@ -309,8 +359,13 @@ EXTERN int libpd_is_symbol(t_atom *a); /// note: no NULL or type checks are performed EXTERN float libpd_get_float(t_atom *a); +/// returns the double value of an atom +/// note: no NULL or type checks are performed +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +EXTERN double libpd_get_double(t_atom *a); + +/// returns the symbol value of an atom /// note: no NULL or type checks are performed -/// get symbol value of an atom EXTERN const char *libpd_get_symbol(t_atom *a); /// increment to the next atom in an atom vector @@ -473,31 +528,42 @@ EXTERN int libpd_poll_gui(void); /* multiple instances */ -/// create a new pd instance +/// create a new pd instance and set as current +/// note: use this in place of pdinstance_new() /// returns new instance or NULL when libpd is not compiled with PDINSTANCE EXTERN t_pdinstance *libpd_new_instance(void); /// set the current pd instance /// subsequent libpd calls will affect this instance only +/// note: use this in place of pd_setinstance() /// does nothing when libpd is not compiled with PDINSTANCE -EXTERN void libpd_set_instance(t_pdinstance *p); +EXTERN void libpd_set_instance(t_pdinstance *pd); -/// free a pd instance +/// free a pd instance and set main instance as current +/// note: use this in place of pdinstance_free() /// does nothing when libpd is not compiled with PDINSTANCE -EXTERN void libpd_free_instance(t_pdinstance *p); +EXTERN void libpd_free_instance(t_pdinstance *pd); /// get the current pd instance EXTERN t_pdinstance *libpd_this_instance(void); -/// get a pd instance by index -/// returns NULL if index is out of bounds or "this" instance when libpd is not -/// compiled with PDINSTANCE -EXTERN t_pdinstance *libpd_get_instance(int index); +/// get the main pd instance, always valid +EXTERN t_pdinstance *libpd_main_instance(void); -/// get the number of pd instances +/// get the number of pd instances, including the main instance /// returns number or 1 when libpd is not compiled with PDINSTANCE EXTERN int libpd_num_instances(void); +/// per-instance data free hook signature +typedef void (*t_libpd_freehook)(void *data); + +/// set per-instance user data and optional free hook +/// note: if non-NULL, freehook is called by libpd_free_instance() +EXTERN void libpd_set_instancedata(void *data, t_libpd_freehook freehook); + +/// get per-instance user data +EXTERN void* libpd_get_instancedata(void); + /* log level */ /// set verbose print state: 0 or 1 diff --git a/src/z_print_util.c b/src/z_print_util.c index 315a5e539..cebc4c4f7 100644 --- a/src/z_print_util.c +++ b/src/z_print_util.c @@ -1,6 +1,7 @@ /* * Copyright (c) 2013 Dan Wilcox (danomatika@gmail.com) & * Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2022 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -14,38 +15,55 @@ #include #include -t_libpd_printhook libpd_concatenated_printhook = NULL; +#include "../z_hooks.h" #define PRINT_LINE_SIZE 2048 +typedef struct _print_util { + t_libpd_printhook concat_printhook; + char concat_buf[PRINT_LINE_SIZE]; /* line buffer */ + int concat_len; /* current line len */ +} print_util; + void libpd_set_concatenated_printhook(const t_libpd_printhook hook) { - libpd_concatenated_printhook = hook; + t_libpdimp *imp = LIBPDSTUFF; + if (hook) { + if (!imp->i_print_util) { + imp->i_print_util = calloc(1, sizeof(print_util)); + } + ((print_util *)imp->i_print_util)->concat_printhook = hook; + } + else { + if (imp->i_print_util) { + free(imp->i_print_util); + imp->i_print_util = NULL; + } + } } void libpd_print_concatenator(const char *s) { - if (!libpd_concatenated_printhook) return; + print_util *util = (print_util *)LIBPDSTUFF->i_print_util; + if (!util) return; - static char concatenated_print_line[PRINT_LINE_SIZE]; - static int len_line = 0; - concatenated_print_line[len_line] = '\0'; + util->concat_buf[util->concat_len] = '\0'; - int len = (int) strlen(s); - while (len_line + len >= PRINT_LINE_SIZE) { - int d = PRINT_LINE_SIZE - 1 - len_line; - strncat(concatenated_print_line, s, d); - libpd_concatenated_printhook(concatenated_print_line); + int len = (int)strlen(s); + while (util->concat_len + len >= PRINT_LINE_SIZE) { + int d = PRINT_LINE_SIZE - 1 - util->concat_len; + strncat(util->concat_buf, s, d); + util->concat_printhook(util->concat_buf); s += d; len -= d; - len_line = 0; - concatenated_print_line[0] = '\0'; + util->concat_len = 0; + util->concat_buf[0] = '\0'; } - strncat(concatenated_print_line, s, len); - len_line += len; + strncat(util->concat_buf, s, len); + util->concat_len += len; - if (len_line > 0 && concatenated_print_line[len_line - 1] == '\n') { - concatenated_print_line[len_line - 1] = '\0'; - libpd_concatenated_printhook(concatenated_print_line); - len_line = 0; + if (util->concat_len > 0 && util->concat_buf[util->concat_len - 1] == '\n') { + util->concat_buf[util->concat_len - 1] = '\0'; + util->concat_printhook(util->concat_buf); + util->concat_len = 0; } } diff --git a/src/z_print_util.h b/src/z_print_util.h index dcdd0f852..d2b380a80 100644 --- a/src/z_print_util.h +++ b/src/z_print_util.h @@ -1,6 +1,7 @@ /* * Copyright (c) 2013 Dan Wilcox (danomatika@gmail.com) & * Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2022 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -19,21 +20,20 @@ extern "C" { #endif -/// concatenate print messages into single lines before returning them to the +/// assign the pointer to your print line handler +/// concatenates print messages into single lines before returning them to the /// print hook: -/// ie. line "hello 123\n" is received in 1 part -> "hello 123" -/// for comparison, the default behavior receives individual words and spaces: -/// -/// ie. line "hello 123" is sent in 3 parts -> "hello", " ", "123\n" - -/// assign the pointer to your print handler +/// ex: line "hello 123\n" is received in 1 part -> "hello 123" +/// for comparison, the default behavior may receive messages in chunks: +/// ex: line "hello 123" could be sent in 3 parts -> "hello", " ", "123\n" +/// call with NULL pointer to free internal buffer +/// note: do not call before libpd_init() EXTERN void libpd_set_concatenated_printhook(const t_libpd_printhook hook); /// assign this function pointer to libpd_printhook or libpd_queued_printhook, /// depending on whether you're using queued messages, to intercept and /// concatenate print messages: /// libpd_set_printhook(libpd_print_concatenator); -/// or /// libpd_set_concatenated_printhook(your_print_handler); /// note: the char pointer argument is only good for the duration of the print /// callback; if you intend to use the argument after the callback has diff --git a/src/z_queued.c b/src/z_queued.c index f893998d1..4044ad03d 100644 --- a/src/z_queued.c +++ b/src/z_queued.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2022 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -13,22 +14,20 @@ #include #include +#include "../z_hooks.h" #include "z_ringbuffer.h" -t_libpd_printhook libpd_queued_printhook = NULL; -t_libpd_banghook libpd_queued_banghook = NULL; -t_libpd_floathook libpd_queued_floathook = NULL; -t_libpd_symbolhook libpd_queued_symbolhook = NULL; -t_libpd_listhook libpd_queued_listhook = NULL; -t_libpd_messagehook libpd_queued_messagehook = NULL; - -t_libpd_noteonhook libpd_queued_noteonhook = NULL; -t_libpd_controlchangehook libpd_queued_controlchangehook = NULL; -t_libpd_programchangehook libpd_queued_programchangehook = NULL; -t_libpd_pitchbendhook libpd_queued_pitchbendhook = NULL; -t_libpd_aftertouchhook libpd_queued_aftertouchhook = NULL; -t_libpd_polyaftertouchhook libpd_queued_polyaftertouchhook = NULL; -t_libpd_midibytehook libpd_queued_midibytehook = NULL; +#define BUFFER_SIZE 16384 + +typedef struct _queued_stuff { + t_libpdhooks hooks; + t_libpd_printhook printhook; + ring_buffer *pd_receive_buffer; + ring_buffer *midi_receive_buffer; + char temp_buffer[BUFFER_SIZE]; +} queued_stuff; + +#define QUEUEDSTUFF ((queued_stuff *)(LIBPDSTUFF->i_queued)) typedef struct _pd_params { enum { @@ -36,7 +35,7 @@ typedef struct _pd_params { LIBPD_SYMBOL, LIBPD_LIST, LIBPD_MESSAGE, } type; const char *src; - float x; + t_float x; const char *sym; int argc; } pd_params; @@ -51,49 +50,48 @@ typedef struct _midi_params { int midi3; } midi_params; -#define BUFFER_SIZE 16384 #define S_PD_PARAMS sizeof(pd_params) #define S_MIDI_PARAMS sizeof(midi_params) #define S_ATOM sizeof(t_atom) -static ring_buffer *pd_receive_buffer = NULL; -static ring_buffer *midi_receive_buffer = NULL; - static void receive_print(pd_params *p, char **buffer) { - if (libpd_queued_printhook) { - libpd_queued_printhook(*buffer); + if (QUEUEDSTUFF->printhook) { + QUEUEDSTUFF->printhook(*buffer); } *buffer += p->argc; } static void receive_bang(pd_params *p, char **buffer) { - if (libpd_queued_banghook) { - libpd_queued_banghook(p->src); + if (QUEUEDSTUFF->hooks.h_banghook) { + QUEUEDSTUFF->hooks.h_banghook(p->src); } } static void receive_float(pd_params *p, char **buffer) { - if (libpd_queued_floathook) { - libpd_queued_floathook(p->src, p->x); + if (QUEUEDSTUFF->hooks.h_floathook) { + QUEUEDSTUFF->hooks.h_floathook(p->src, (float)p->x); + } + else if (QUEUEDSTUFF->hooks.h_doublehook) { + QUEUEDSTUFF->hooks.h_doublehook(p->src, (double)p->x); } } static void receive_symbol(pd_params *p, char **buffer) { - if (libpd_queued_symbolhook) { - libpd_queued_symbolhook(p->src, p->sym); + if (QUEUEDSTUFF->hooks.h_symbolhook) { + QUEUEDSTUFF->hooks.h_symbolhook(p->src, p->sym); } } static void receive_list(pd_params *p, char **buffer) { - if (libpd_queued_listhook) { - libpd_queued_listhook(p->src, p->argc, (t_atom *) *buffer); + if (QUEUEDSTUFF->hooks.h_listhook) { + QUEUEDSTUFF->hooks.h_listhook(p->src, p->argc, (t_atom *) *buffer); } *buffer += p->argc * S_ATOM; } static void receive_message(pd_params *p, char **buffer) { - if (libpd_queued_messagehook) { - libpd_queued_messagehook(p->src, p->sym, p->argc, (t_atom *) *buffer); + if (QUEUEDSTUFF->hooks.h_messagehook) { + QUEUEDSTUFF->hooks.h_messagehook(p->src, p->sym, p->argc, (t_atom *) *buffer); } *buffer += p->argc * S_ATOM; } @@ -102,213 +100,239 @@ static void receive_message(pd_params *p, char **buffer) { static void internal_printhook(const char *s) { static char padding[LIBPD_WORD_ALIGN]; + queued_stuff *queued = QUEUEDSTUFF; int len = (int) strlen(s) + 1; // remember terminating null char int rest = len % LIBPD_WORD_ALIGN; if (rest) rest = LIBPD_WORD_ALIGN - rest; int total = len + rest; - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS + total) { + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS + total) { pd_params p = {LIBPD_PRINT, NULL, 0.0f, NULL, total}; - rb_write_to_buffer(pd_receive_buffer, 3, + rb_write_to_buffer(queued->pd_receive_buffer, 3, (const char *)&p, S_PD_PARAMS, s, len, padding, rest); } } static void internal_banghook(const char *src) { - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS) { pd_params p = {LIBPD_BANG, src, 0.0f, NULL, 0}; - rb_write_to_buffer(pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); + rb_write_to_buffer(queued->pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); } } static void internal_floathook(const char *src, float x) { - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS) { pd_params p = {LIBPD_FLOAT, src, x, NULL, 0}; - rb_write_to_buffer(pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); + rb_write_to_buffer(queued->pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); + } +} + +static void internal_doublehook(const char *src, double x) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS) { + pd_params p = {LIBPD_FLOAT, src, (t_float)x, NULL, 0}; + rb_write_to_buffer(queued->pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); } } static void internal_symbolhook(const char *src, const char *sym) { - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS) { pd_params p = {LIBPD_SYMBOL, src, 0.0f, sym, 0}; - rb_write_to_buffer(pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); + rb_write_to_buffer(queued->pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); } } static void internal_listhook(const char *src, int argc, t_atom *argv) { + queued_stuff *queued = QUEUEDSTUFF; int n = argc * S_ATOM; - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS + n) { + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS + n) { pd_params p = {LIBPD_LIST, src, 0.0f, NULL, argc}; - rb_write_to_buffer(pd_receive_buffer, 2, + rb_write_to_buffer(queued->pd_receive_buffer, 2, (const char *)&p, S_PD_PARAMS, (const char *)argv, n); } } static void internal_messagehook(const char *src, const char* sym, - int argc, t_atom *argv) { + int argc, t_atom *argv) { + queued_stuff *queued = QUEUEDSTUFF; int n = argc * S_ATOM; - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS + n) { + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS + n) { pd_params p = {LIBPD_MESSAGE, src, 0.0f, sym, argc}; - rb_write_to_buffer(pd_receive_buffer, 2, + rb_write_to_buffer(queued->pd_receive_buffer, 2, (const char *)&p, S_PD_PARAMS, (const char *)argv, n); } } static void receive_noteon(midi_params *p, char **buffer) { - if (libpd_queued_noteonhook) { - libpd_queued_noteonhook(p->midi1, p->midi2, p->midi3); + if (QUEUEDSTUFF->hooks.h_noteonhook) { + QUEUEDSTUFF->hooks.h_noteonhook(p->midi1, p->midi2, p->midi3); } } static void receive_controlchange(midi_params *p, char **buffer) { - if (libpd_queued_controlchangehook) { - libpd_queued_controlchangehook(p->midi1, p->midi2, p->midi3); + if (QUEUEDSTUFF->hooks.h_controlchangehook) { + QUEUEDSTUFF->hooks.h_controlchangehook(p->midi1, p->midi2, p->midi3); } } static void receive_programchange(midi_params *p, char **buffer) { - if (libpd_queued_programchangehook) { - libpd_queued_programchangehook(p->midi1, p->midi2); + if (QUEUEDSTUFF->hooks.h_programchangehook) { + QUEUEDSTUFF->hooks.h_programchangehook(p->midi1, p->midi2); } } static void receive_pitchbend(midi_params *p, char **buffer) { - if (libpd_queued_pitchbendhook) { - libpd_queued_pitchbendhook(p->midi1, p->midi2); + if (QUEUEDSTUFF->hooks.h_pitchbendhook) { + QUEUEDSTUFF->hooks.h_pitchbendhook(p->midi1, p->midi2); } } static void receive_aftertouch(midi_params *p, char **buffer) { - if (libpd_queued_aftertouchhook) { - libpd_queued_aftertouchhook(p->midi1, p->midi2); + if (QUEUEDSTUFF->hooks.h_aftertouchhook) { + QUEUEDSTUFF->hooks.h_aftertouchhook(p->midi1, p->midi2); } } static void receive_polyaftertouch(midi_params *p, char **buffer) { - if (libpd_queued_polyaftertouchhook) { - libpd_queued_polyaftertouchhook(p->midi1, p->midi2, p->midi3); + if (QUEUEDSTUFF->hooks.h_polyaftertouchhook) { + QUEUEDSTUFF->hooks.h_polyaftertouchhook(p->midi1, p->midi2, p->midi3); } } static void receive_midibyte(midi_params *p, char **buffer) { - if (libpd_queued_midibytehook) { - libpd_queued_midibytehook(p->midi1, p->midi2); + if (QUEUEDSTUFF->hooks.h_midibytehook) { + QUEUEDSTUFF->hooks.h_midibytehook(p->midi1, p->midi2); } } static void internal_noteonhook(int channel, int pitch, int velocity) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_NOTEON, channel, pitch, velocity}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_controlchangehook(int channel, int controller, int value) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_CONTROLCHANGE, channel, controller, value}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_programchangehook(int channel, int value) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_PROGRAMCHANGE, channel, value, 0}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_pitchbendhook(int channel, int value) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_PITCHBEND, channel, value, 0}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_aftertouchhook(int channel, int value) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_AFTERTOUCH, channel, value, 0}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_polyaftertouchhook(int channel, int pitch, int value) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_POLYAFTERTOUCH, channel, pitch, value}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_midibytehook(int port, int byte) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_MIDIBYTE, port, byte, 0}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } void libpd_set_queued_printhook(const t_libpd_printhook hook) { - libpd_queued_printhook = hook; + QUEUEDSTUFF->printhook = hook; } void libpd_set_queued_banghook(const t_libpd_banghook hook) { - libpd_queued_banghook = hook; + QUEUEDSTUFF->hooks.h_banghook = hook; } void libpd_set_queued_floathook(const t_libpd_floathook hook) { - libpd_queued_floathook = hook; + QUEUEDSTUFF->hooks.h_floathook = hook; + QUEUEDSTUFF->hooks.h_doublehook = NULL; +} + +void libpd_set_queued_doublehook(const t_libpd_doublehook hook) { + QUEUEDSTUFF->hooks.h_floathook = NULL; + QUEUEDSTUFF->hooks.h_doublehook = hook; } void libpd_set_queued_symbolhook(const t_libpd_symbolhook hook) { - libpd_queued_symbolhook = hook; + QUEUEDSTUFF->hooks.h_symbolhook = hook; } void libpd_set_queued_listhook(const t_libpd_listhook hook) { - libpd_queued_listhook = hook; + QUEUEDSTUFF->hooks.h_listhook = hook; } void libpd_set_queued_messagehook(const t_libpd_messagehook hook) { - libpd_queued_messagehook = hook; + QUEUEDSTUFF->hooks.h_messagehook = hook; } void libpd_set_queued_noteonhook(const t_libpd_noteonhook hook) { - libpd_queued_noteonhook = hook; + QUEUEDSTUFF->hooks.h_noteonhook = hook; } void libpd_set_queued_controlchangehook(const t_libpd_controlchangehook hook) { - libpd_queued_controlchangehook = hook; + QUEUEDSTUFF->hooks.h_controlchangehook = hook; } void libpd_set_queued_programchangehook(const t_libpd_programchangehook hook) { - libpd_queued_programchangehook = hook; + QUEUEDSTUFF->hooks.h_programchangehook = hook; } void libpd_set_queued_pitchbendhook(const t_libpd_pitchbendhook hook) { - libpd_queued_pitchbendhook = hook; + QUEUEDSTUFF->hooks.h_pitchbendhook = hook; } void libpd_set_queued_aftertouchhook(const t_libpd_aftertouchhook hook) { - libpd_queued_aftertouchhook = hook; + QUEUEDSTUFF->hooks.h_aftertouchhook = hook; } void libpd_set_queued_polyaftertouchhook(const t_libpd_polyaftertouchhook hook) { - libpd_queued_polyaftertouchhook = hook; + QUEUEDSTUFF->hooks.h_polyaftertouchhook = hook; } void libpd_set_queued_midibytehook(const t_libpd_midibytehook hook) { - libpd_queued_midibytehook = hook; + QUEUEDSTUFF->hooks.h_midibytehook = hook; +} + +static void queued_stuff_free(void *p) { + queued_stuff *queued = (queued_stuff *)p; + if (queued->pd_receive_buffer) rb_free(queued->pd_receive_buffer); + if (queued->midi_receive_buffer) rb_free(queued->midi_receive_buffer); } int libpd_queued_init() { - if (!pd_receive_buffer) { - pd_receive_buffer = rb_create(BUFFER_SIZE); - if (!pd_receive_buffer) return -2; - } - if (!midi_receive_buffer) { - midi_receive_buffer = rb_create(BUFFER_SIZE); - if (!midi_receive_buffer) return -2; - } + int ret = libpd_init(); libpd_set_printhook(internal_printhook); libpd_set_banghook(internal_banghook); - libpd_set_floathook(internal_floathook); + libpd_set_doublehook(internal_doublehook); libpd_set_symbolhook(internal_symbolhook); libpd_set_listhook(internal_listhook); libpd_set_messagehook(internal_messagehook); @@ -321,27 +345,39 @@ int libpd_queued_init() { libpd_set_polyaftertouchhook(internal_polyaftertouchhook); libpd_set_midibytehook(internal_midibytehook); - return libpd_init(); + t_libpdimp *imp = LIBPDSTUFF; + if (!imp->i_queued) { + queued_stuff *queued = (queued_stuff *)calloc(1, sizeof(queued_stuff)); + if(!queued) goto cleanup; + queued->pd_receive_buffer = rb_create(BUFFER_SIZE); + if (!queued->pd_receive_buffer) goto cleanup; + queued->midi_receive_buffer = rb_create(BUFFER_SIZE); + if (!queued->midi_receive_buffer) goto cleanup; + imp->i_queued = (void *)queued; + imp->i_queued_freehook = queued_stuff_free; + } + return ret; +cleanup: + libpd_queued_release(); + return -2; } void libpd_queued_release() { - if (pd_receive_buffer) { - rb_free(pd_receive_buffer); - pd_receive_buffer = NULL; - } - if (midi_receive_buffer) { - rb_free(midi_receive_buffer); - midi_receive_buffer = NULL; + t_libpdimp *imp = LIBPDSTUFF; + if (imp->i_queued) { + queued_stuff_free(imp->i_queued); + imp->i_queued = NULL; + imp->i_queued_freehook = NULL; } } void libpd_queued_receive_pd_messages() { - size_t available = rb_available_to_read(pd_receive_buffer); + queued_stuff *queued = QUEUEDSTUFF; + size_t available = rb_available_to_read(queued->pd_receive_buffer); if (!available) return; - static char temp_buffer[BUFFER_SIZE]; - rb_read_from_buffer(pd_receive_buffer, temp_buffer, (int) available); - char *end = temp_buffer + available; - char *buffer = temp_buffer; + rb_read_from_buffer(queued->pd_receive_buffer, queued->temp_buffer, (int)available); + char *end = queued->temp_buffer + available; + char *buffer = queued->temp_buffer; while (buffer < end) { pd_params *p = (pd_params *)buffer; buffer += S_PD_PARAMS; @@ -377,12 +413,12 @@ void libpd_queued_receive_pd_messages() { } void libpd_queued_receive_midi_messages() { - size_t available = rb_available_to_read(midi_receive_buffer); + queued_stuff *queued = QUEUEDSTUFF; + size_t available = rb_available_to_read(queued->midi_receive_buffer); if (!available) return; - static char temp_buffer[BUFFER_SIZE]; - rb_read_from_buffer(midi_receive_buffer, temp_buffer, (int) available); - char *end = temp_buffer + available; - char *buffer = temp_buffer; + rb_read_from_buffer(queued->midi_receive_buffer, queued->temp_buffer, (int)available); + char *end = queued->temp_buffer + available; + char *buffer = queued->temp_buffer; while (buffer < end) { midi_params *p = (midi_params *)buffer; buffer += S_MIDI_PARAMS; diff --git a/src/z_queued.h b/src/z_queued.h index 44a14c650..c3104409d 100644 --- a/src/z_queued.h +++ b/src/z_queued.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2022 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -19,64 +20,89 @@ extern "C" #endif /// set the queued print receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_printhook(const t_libpd_printhook hook); /// set the queued bang receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_banghook(const t_libpd_banghook hook); /// set the queued float receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running +/// note: you can either have a queued float receiver hook, or a queued +/// double receiver hook (see below), but not both. +/// calling this, will automatically unset the queued double receiver +/// hook EXTERN void libpd_set_queued_floathook(const t_libpd_floathook hook); +/// set the queued double receiver hook, NULL by default +/// note: do not call this before libpd_queued_init() or while DSP is running +/// note: you can either have a queued double receiver hook, or a queued +/// float receiver hook (see above), but not both. +/// calling this, will automatically unset the queued float receiver +/// hook +EXTERN void libpd_set_queued_doublehook(const t_libpd_doublehook hook); + /// set the queued symbol receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_symbolhook(const t_libpd_symbolhook hook); /// set the queued list receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_listhook(const t_libpd_listhook hook); /// set the queued typed message receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_messagehook(const t_libpd_messagehook hook); /// set the queued MIDI note on hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_noteonhook(const t_libpd_noteonhook hook); /// set the queued MIDI control change hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_controlchangehook(const t_libpd_controlchangehook hook); /// set the queued MIDI program change hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_programchangehook(const t_libpd_programchangehook hook); /// set the queued MIDI pitch bend hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_pitchbendhook(const t_libpd_pitchbendhook hook); /// set the queued MIDI after touch hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_aftertouchhook(const t_libpd_aftertouchhook hook); /// set the queued MIDI poly after touch hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_polyaftertouchhook(const t_libpd_polyaftertouchhook hook); /// set the queued raw MIDI byte hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_midibytehook(const t_libpd_midibytehook hook); -/// initialize libpd and the queued ringbuffers, use in place of libpd_init() -/// this is safe to call more than once +/// initialize libpd and the queued ringbuffers, safe to call more than once /// returns 0 on success, -1 if libpd was already initialized, or -2 if ring /// buffer allocation failed +/// +/// with a single instance, use in place of libpd_init() +/// +/// with multiple instances, call once for each instance *before* setting hooks: +/// t_pdinstance *pd1 = libpd_new_instance(); +/// libpd_set_instance(pd1); +/// libpd_queued_init(); +/// libpd_set_queued_printhook(pdprint); +/// ... +/// EXTERN int libpd_queued_init(); /// free the queued ringbuffers +/// with multiple instances, call before freeing each instance: +/// libpd_set_instance(pd1); +/// libpd_queued_release(); +/// libpd_free_instance(pd1); EXTERN void libpd_queued_release(); /// process and dispatch received messages in message ringbuffer diff --git a/src/z_ringbuffer.c b/src/z_ringbuffer.c index df90ef778..0ca29af01 100644 --- a/src/z_ringbuffer.c +++ b/src/z_ringbuffer.c @@ -1,8 +1,8 @@ /* - * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) * - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. + * For information on usage and redistribution, and for a DISCLAIMER OF ALL + * WARRANTIES, see the file, "LICENSE.txt," in this distribution. * * See https://github.com/libpd/libpd/wiki for documentation * @@ -29,7 +29,7 @@ #include #define SYNC_FETCH(ptr) InterlockedOr(ptr, 0) #define SYNC_COMPARE_AND_SWAP(ptr, oldval, newval) \ - InterlockedCompareExchange(ptr, oldval, newval) + InterlockedCompareExchange(ptr, newval, oldval) #else // gcc atomics #define SYNC_FETCH(ptr) __sync_fetch_and_or(ptr, 0) #define SYNC_COMPARE_AND_SWAP(ptr, oldval, newval) \ diff --git a/src/z_ringbuffer.h b/src/z_ringbuffer.h index 8522f722f..21e4b904d 100644 --- a/src/z_ringbuffer.h +++ b/src/z_ringbuffer.h @@ -1,8 +1,8 @@ /* - * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) * - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. + * For information on usage and redistribution, and for a DISCLAIMER OF ALL + * WARRANTIES, see the file, "LICENSE.txt," in this distribution. * * See https://github.com/libpd/libpd/wiki for documentation * From a2e2f537aa9e04ac3d584cbd0c65bb1e12e413de Mon Sep 17 00:00:00 2001 From: danomatika Date: Tue, 9 Apr 2024 22:20:41 +0200 Subject: [PATCH 194/450] whoops fix include paths --- src/z_print_util.c | 2 +- src/z_queued.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/z_print_util.c b/src/z_print_util.c index cebc4c4f7..ee0edef17 100644 --- a/src/z_print_util.c +++ b/src/z_print_util.c @@ -15,7 +15,7 @@ #include #include -#include "../z_hooks.h" +#include "z_hooks.h" #define PRINT_LINE_SIZE 2048 diff --git a/src/z_queued.c b/src/z_queued.c index 4044ad03d..a66849342 100644 --- a/src/z_queued.c +++ b/src/z_queued.c @@ -14,7 +14,7 @@ #include #include -#include "../z_hooks.h" +#include "z_hooks.h" #include "z_ringbuffer.h" #define BUFFER_SIZE 16384 From 1642adf6193d450172cef26d450c2262aa972bf2 Mon Sep 17 00:00:00 2001 From: porres Date: Tue, 9 Apr 2024 21:30:24 -0300 Subject: [PATCH 195/450] improve details on selecting/deselecting boxes + some typos --- doc/1.manual/x2.htm | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index c4a927bd9..3e13fee1f 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -48,7 +48,7 @@

        2.1. Overview

        "FFTease", "IEMlib", "Pmpd", "TimbreID", "Zexy" and many more. External libraries that add graphical processing include Mark Dank's GEM package which expands Pd to be used for simultaneous computer animation and Zack Lee's "Ofelia" that allows you to use -openFrameworks and the Lua programing language within Pd for creating audiovisual artwork +openFrameworks and the Lua programming language within Pd for creating audiovisual artwork or multimedia applications such as games. For details on installing and managing packages, refer to the Externals chapter. @@ -311,7 +311,7 @@

        2.2.2. Creating boxes

        a shortcut, Pd automatically switches to edit mode. When you create boxes this way, they are automatically selected and follow the mouse cursor position; drag them around as desired until you click to position them where you want. -This keeps the box selected and you can desselect it by clicking on an empty spot +This keeps the box selected and you can deselect it by clicking on an empty spot of the patch or using the Esc key.

        Message and object boxes are empty when created. After being positioned you @@ -333,20 +333,25 @@

        2.2.3. Selecting items and moving them or "tidying them up"Shift + Click -on each item. You can then click again on one of the selected boxes to move the group -around. Alternatively, you click on a blank portion of the window and drag the cursor -to select all boxes within a rectangular area (then click again on one of the selected -boxes to move them as well). - -

        When you have one or more boxes selected, you can also move them using -Arrow keys, which moves items one pixel in the direction of -the arrows. You can also use Shift + Arrow keys to move items -10 pixels in the desired direction. By the way, if you select boxes that -are connected, the connections (patch cords) are also moved around. +it around right away. + +

        To select more than one box, you may use Shift + Click on each item. +You can then click again on one of the selected boxes to move the group around. +Alternatively, you click on a blank portion of the window and drag the cursor to +select all boxes within a rectangular area (then click again on one of the selected +boxes to move them as well). If you press Shift, you can repeat the click +and drag operation to select another group of boxes as well. If you do Shift + +Click on a selected box, you deselect it. The "Select All" entry on the Edit +menu (Ctrl + A) selects all items in a patch window. + +

        When you have one or more boxes selected, you can also move them by using the +Arrow keys, which moves items one pixel in the direction of the arrows. +You can also use Shift + Arrow keys to move items 10 pixels in the +desired direction. By the way, if you select boxes that are connected, the +connections (patch cords) are also moved around.

        The 'Tidy Up' entry in the Edit menu allows you to try and align -boxes that are not perfectly aligned. You can select boxes arranged in a +selected boxes that are not perfectly aligned. You can select boxes arranged in a horizontal row and use the shortcut Shift + Ctrl + R to try and align them perfectly horizontally. Similarly, this can be applied to vertically align a column of boxes. Bidimensional rectangular selections of boxes are also @@ -361,8 +366,7 @@

        2.2.4. Delete, cut, copy and paste boxes

        If you select any item you can press Backspace or Delete key to delete it. Connections of a deleted box are also deleted. A multiple selection -of items can also be deleted. The "Select All" entry on the Edit menu selects all -items in a patch window. +of items (and their connections) can also be deleted.

        For one or more selected items and their connections you can also "cut", "copy", "paste" and "duplicate" "from the Edit menu or shortcuts. Notice you can @@ -705,7 +709,7 @@

        2.3.6. Triggerize

        In case there are more connections than outlets, it will add outlets to distribute all connections to separate ones (following the creation order of the connections from right to left). This way, you can add connections -inbetween other connections without lots of resorting. +in between other connections without lots of resorting.

        distribute connections @@ -1627,7 +1631,7 @@

        2.10.1. Traversal

        pointer object takes a "traverse" message to set it to the head of the list (named "pd-data"), and "next" messages to move to (and output) the next datum in the list (i.e., the next in the list of six objects in the score). Let's -check the [voice] abstrction below. +check the [voice] abstraction below.

        [voice] abstraction

        From 4b89f3ff09e82efbb5a21fadaa180fa1c9a683d3 Mon Sep 17 00:00:00 2001 From: porres Date: Tue, 9 Apr 2024 22:05:20 -0300 Subject: [PATCH 196/450] no, "alt+click" doesn't work in macs for right clicking --- doc/1.manual/x2.htm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 3e13fee1f..5041fa98d 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -447,9 +447,10 @@

        2.2.7. Context menu for 'Properties', 'Open' and 'Help' All the "clicking" mentioned above is done with the left mouse button. The right button, instead, opens a context menu offering "Properties", -"Open" and "Help" (either in edit or run mode). For Apple users who may -only have one button on their mouse, double-clicking or Alt + Click -are mapped to right-click and on trackpads you can click with two fingers. +"Open" and "Help" (either in edit or run mode). Apple users, who may +only have one button should know that Control + Click is mapped +to right-click and that new magic mousw dwvices can map gestures when you +click with two fingers (same is true for trackpads).

        Selecting "Help" on any box opens a patch explaining and demonstrating what it is and how it works. Asking "Help" for the canvas as a whole From 921fad3a04ff765ffa0a77e0d7827de23c06b33e Mon Sep 17 00:00:00 2001 From: porres Date: Tue, 9 Apr 2024 23:57:22 -0300 Subject: [PATCH 197/450] mention "zooming" and "undo" and "redo" --- doc/1.manual/x2.htm | 78 ++++++++++++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 30 deletions(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 5041fa98d..274067481 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -54,8 +54,9 @@

        2.1. Overview

        2.1.1. The main window, canvases, and printout

        -

        When Pd is running, you'll see a main "Pd" window, and possibly one or more -"canvases" (also referred to as "patches"). The main Pd window looks like this: +

        When you start Pd you'll see a main "Pd" window. When you open a Pd document file +you'll see a separate window that corresponds to it, which is known in Pd as a "canvas", +and also referred to as "patch". The main Pd window which looks like this:

        pd window @@ -86,22 +87,32 @@

        2.1.1. The main window, canvases, and printout

        The lower part of the Pd window is a console area for printout from the output of boxes in patches and for messages from Pd itself (such as errors). If the Pd window is focused, the font size for menus and printout can be changed using the 'Font' dialog -entry in the Edit menu as shown below. Make your adjustments if you are -having trouble reading on HiDPI screens. in the Edit menu you can also clear -all messages printed in the Pd window with the 'Clear Console' entry (Shift + -Ctrl + L shortcut). On the Window menu you find the 'Pd Window' entry -(with the Ctrl + R shortcut), which brings the Pd window to the front or -sends it behind and brings back to focus the last focused window. +entry in the Edit menu as shown below. Make your adjustments if you are having +trouble reading on HiDPI screens.

        edit menu

        -

        Pd documents (or files) are called "patches" or "canvases". Each open document -has one main window and any number of sub-windows. The sub-windows can be opened -and closed, but they are always running, whether you see them or not. You can create -and open patches via the File menu, where you can also close and save them -(note the handy shortcuts). +

        Pd documents ("patches" or "canvases") have their own mains window and any number of +sub-windows. The sub-windows can be opened and closed, but they are always running, +whether you see them or not. When opened, sub-windows show up as a separate canvases. +When you have a patch window focused, you can use the 'Font' dialog entry in the +Edit menu to set the patch's font size, which also applies to its subwindows. +It is useful to increase the font size of patches if you're having trouble reading +them in HiDPI screens. Note that the patch's font size gets saved with the file. + +

        Also in the Edit menu, you can "Zoom In" and "Zoom Out" a pathc window. +The Zoom settings is not saved in the patch and a Zoomed window can also help with +HiDPI screens. + +

        In the Edit menu you can also clear all messages printed in the Pd window with +the 'Clear Console' entry (Shift + Ctrl + L shortcut). On the Window menu +you find the 'Pd Window' entry (with the Ctrl + R shortcut), which brings the Pd +window to the front or sends it behind and brings back to focus the last focused window. + +You can create and open patches via the File menu, where you can also close and save +them (note the handy shortcuts).

        file menu @@ -241,10 +252,6 @@

        2.1.4. Patches and files

        As mentioned before, You can create or open a Pd file from the File menu, as well as close and save them. -

        You can also edit the font size of a patch if its window is focused. Just -use the 'Font' entry again from the Edit menu. The font size setting of -a patch gets saved within the patch file. -

        When you save a patch to a file, Pd doesn't save the entire state of all the objects in the patch, but only what you see: the objects' creation arguments and their interconnections. Nonetheless, the [savestate] object offers a mechanism @@ -260,33 +267,44 @@

        2.1.4. Patches and files

        2.2. Editing Pd patches

        -

        A patch can be in edit mode or run mode; this really only changes how mouse -clicks affect the patch. In run mode, the mouse cursor is an arrow. A patch is in -run mode when you first open it. Select 'Edit Mode' from the Edit menu to -activate it and the cursor will change to the hand pointer. Unchecking it returns -the patch to run mode. You can use the Ctrl + E shortcut to switch -between these modes. +

        Normally, you'll use Pd in run mode, which is also reffered to as "performance +mode". In order to edit a patch, you need to go into edit mode. + +

        2.2.1. Edit and Run mode

        + +

        When you open a Pd file, it is in run mode. In run mode, the cursor is an arrow that +points up and is slightly tilted to the left, but it points straight up when you are +able to click on a box. In run mode, you mostly click and interact with GUIs (like the +number box) and message boxes (which are used as controls to send messages). + +

        In order to go into edit mode, you need to select the 'Edit Mode' entry from the +Edit menu to activate and check it on.

        edit mode

        -

        2.2.1. Edit and Run mode

        +

        When you are in edit mode, the patch actually runs in the same way as in run mode, +processing control data and sound, but you're able to edit the patch while it runs. +The only real change is how mouse clicks affect the patch. In run mode, mouse clicks +will interact with the patch and change parameters of the performance, while in edit +mode the purpose of mouse clicks is to edit and change the patch. Note that in edit +mode, the mouse cursor becomes a pointing hand instead of an arrow. Unchecking the +"Edit Mode" entry returns the patch to run mode and changes the cursor back to an +arrow. You can use the Ctrl + E shortcut to switch between these modes.

        In edit mode, you can move boxes around by clicking on them and dragging. You can also edit text, create or delete boxes and make or cut connections. More details follow below. -

        Normally, when you are in a performance, you will stay in run mode. In this -mode, the cursor is an arrow that points up and is slightly tilted to the left, -but it points straight up when you are able to click on a box. In run mode, you -mostly click and interact with GUIs (like the number box) and message boxes -(which are used as controls to send messages). -

        If you are predominantly editing a patch, but would like to quickly switch to run mode just to click on something like a message, you can press and hold the Ctrl to temporarily switch to edit mode until you release it. +

        In the Edit menu you also find "Undo" and "Redo" operations, which revert +and recreate changes you've done in your patch while in edit mode. Note that you can +also "Undo" and "Redo" while in run mode. +

        2.2.2. Creating boxes

        Pd patches can have four types of boxes: object, message, GUI and From f613d7110717da8918dd7f0b01e9ee1a60fdf92c Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 10 Apr 2024 02:53:46 -0300 Subject: [PATCH 198/450] move 5.2 known bugs into a new 1.3 section The 5.2 section wasn't really a scetion and just a link to github issues. I created a new entry at 1.3 that is much better integrated a bit more complete instead --- doc/1.manual/index.htm | 50 ++-------------------------- doc/1.manual/x1.htm | 75 +++++++++++++++++++++++------------------- doc/1.manual/x5.htm | 8 +---- 3 files changed, 44 insertions(+), 89 deletions(-) diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index 63ccc172f..ea7691db4 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -30,6 +30,7 @@

        Pd Manual

        1. Guide to the documentation
        2. Other resources +
        3. Github repository; Known bugs and bug reports
      1. Theory of operation @@ -157,8 +158,7 @@

        Pd Manual

      2. Current status
        1. Release notes -
        2. Known bugs -
        3. Differences from Max/MSP +
        4. Differences from Max/MSP
      3. Installing from source @@ -190,54 +190,8 @@

        Pd Manual



        -
    - diff --git a/doc/1.manual/x1.htm b/doc/1.manual/x1.htm index a83bbd850..4f9a5f5fd 100644 --- a/doc/1.manual/x1.htm +++ b/doc/1.manual/x1.htm @@ -24,16 +24,15 @@

    Pd Manual chapter 1: Introduction

    -

    -This is the HTML documentation for the Pd computer program. -Pd is free and can be downloaded from the internet; -go to - - http://msp.ucsd.edu/software.html -to get it. +

    This is the HTML documentation for the Pd computer program. +Pd is free and can be downloaded from the internet; go to + +http://msp.ucsd.edu/software.html to get it. +

    1.1. Guide to Pd's documentation

    -

    Pd's documentation lives in the "doc" folder of the distribution and consists of: +

    Pd's documentation lives in the "doc" folder of the +distribution and consists of:

    • this HTML manual
      @@ -82,39 +81,33 @@

      1.1. Guide to Pd's documentation

    • Installing from source -

      -For a list of all the objects you can use menu Help/List of objects. To get help on any -Pd object you can right click on it; or you can browse the help patches -by choosing menu Help/Browser and looking in +

      For a list of all the objects you can use menu Help/List of objects. +To get help on any Pd object you can right click on it; or you can browse the +help patches by choosing menu Help/Browser and looking in "Pure Data/5.reference". -

      -The "example" patches are also available from Pd's browser. They appear in subdirectories -named "2.control.examples", "3.audio.examples" and "4.data.structures". Some additional -patches in "7.stuff" might also be helpful. +

      The "example" patches are also available from Pd's browser. They appear in +subdirectories named "2.control.examples", "3.audio.examples" and +"4.data.structures". Some additional patches in "7.stuff" might also be helpful. -

      -To get started writing your own C extensions, refer to "6.externs". For more about externals, -please refer to chapter 4 of this manual. +

      To get started writing your own C extensions, refer to "6.externs". +For more about externals, please refer to chapter 4 of this manual.

      1.2. Other resources

      -

      There is a very extensive Pd community web site, - pure-data.info, which aims to be the central resource for Pd, -from documentation and downloads; to forums, member pages, and a patch exchange. You can check - https://puredata.info/docs/ for more documentation. +

      There is a very extensive Pd community web site, +pure-data.info, which aims to be the central resource for Pd, from documentation and +downloads; to forums, member pages, and a patch exchange. You can check + https://puredata.info/docs/ +for more documentation. -

      -Most of the interesting news related to Pd shows up on the Pd mailing list, -maintained by IOhannes zmölnig. To subscribe or browse the archives -visit: - - https://lists.puredata.info/listinfo/pd-list. - -This is the -best source of recent information regarding installation problems and bugs. It -is perfectly reasonable to post "beginner" questions on this list; alternatively -you can contact msp@ucsd.edu for help. +

      Most of the interesting news related to Pd shows up on the Pd mailing list, +maintained by IOhannes zmölnig. To subscribe or browse the archives +visit: +https://lists.puredata.info/listinfo/pd-list. This is the best source of +recent information regarding installation problems and bugs. It is perfectly +reasonable to post "beginner" questions on this list; alternatively you can +contact msp@ucsd.edu for help.

      Many extensions to Pd are announced on the mailing list. In particular, for people interested in graphics, there is a 3D graphics rendering package, @@ -126,6 +119,20 @@

      1.2. Other resources

      or multimedia applications such as games. Get it also via "Find externals" or from https://github.com/cuinjune/Ofelia. +

      1.3. Github repository; Known bugs and bug reports

      + +

      The Pd source code is also found on github, see + Pd GitHub project page. + +

      The Pd repository is where you can find known bugs and also report them, +see Pd issue tracker. + +

      There's also a repository that focuses on Pd's documentation, called + +pddp (Pure Data Documentation Project). This repository +also has an issue tracker +for issues related to the documentation. +



      next chapter
      diff --git a/doc/1.manual/x5.htm b/doc/1.manual/x5.htm index 08da074db..ca6174fff 100644 --- a/doc/1.manual/x5.htm +++ b/doc/1.manual/x5.htm @@ -2346,13 +2346,7 @@

      5.1. Release notes

      send, receive.

      ----------------------------------------- -

      5.2. Known bugs

      - -

      These are now tracked on the - -Pd GitHub project page. - -

      5.3. Differences from Max/MSP

      +

      5.2. Differences from Max/MSP

      It wasn't anyone's intention to make Pd a Max/MSP clone, but on the other hand, if there's no reason for a feature to appear differently in From 576b4df6e4d563bcc9fa70df4888dd30ad5eb31f Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 10 Apr 2024 02:58:53 -0300 Subject: [PATCH 199/450] fix chapter name referenced in chapter 1 --- doc/1.manual/x1.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/1.manual/x1.htm b/doc/1.manual/x1.htm index 4f9a5f5fd..bf6bb85f0 100644 --- a/doc/1.manual/x1.htm +++ b/doc/1.manual/x1.htm @@ -77,7 +77,7 @@

      1.1. Guide to Pd's documentation

    • A theory of operations, explaining how Pd works
    • Instructions on installing Pd and getting it to run
    • Externals -
    • Release notes and known bugs +
    • Current status
    • Installing from source From 1f63c12518e7134eeb747b2c9fe5618b01ee72a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Wed, 10 Apr 2024 09:03:50 +0200 Subject: [PATCH 200/450] drop forward declarations within functions since we have a big block of forward-declarations at the beginning of the file, the duplicate forward-declarations are unneeded (and weird) --- src/d_fft_fftsg.c | 93 +---------------------------------------------- 1 file changed, 2 insertions(+), 91 deletions(-) diff --git a/src/d_fft_fftsg.c b/src/d_fft_fftsg.c index ce5c958d7..2b4f56492 100644 --- a/src/d_fft_fftsg.c +++ b/src/d_fft_fftsg.c @@ -28,8 +28,6 @@ for another, more permissive-sounding copyright notice. -MSP static void cdft(int, int, FFTFLT *, int *, FFTFLT *); static void rdft(int, int, FFTFLT *, int *, FFTFLT *); -static void *cftrec1_th(void *p); -static void *cftrec2_th(void *p); static void bitrv2(int n, int *ip, FFTFLT *a); static void bitrv208(FFTFLT *a); static void bitrv208neg(FFTFLT *a); @@ -51,6 +49,8 @@ static void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); static void cftmdl1(int n, FFTFLT *a, FFTFLT *w); static void cftmdl2(int n, FFTFLT *a, FFTFLT *w); static int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w); +static void *cftrec1_th(void *p); +static void *cftrec2_th(void *p); static void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w); static void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w); static void cftx020(FFTFLT *a); @@ -524,9 +524,6 @@ Appendix : void cdft(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); int nw; nw = ip[0]; @@ -544,12 +541,6 @@ void cdft(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) void rdft(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void makect(int nc, int *ip, FFTFLT *c); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void rftbsub(int n, FFTFLT *a, int nc, FFTFLT *c); int nw, nc; FFTFLT xi; @@ -588,13 +579,6 @@ void rdft(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) void ddct(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void makect(int nc, int *ip, FFTFLT *c); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void rftbsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void dctsub(int n, FFTFLT *a, int nc, FFTFLT *c); int j, nw, nc; FFTFLT xr; @@ -644,13 +628,6 @@ void ddct(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) void ddst(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void makect(int nc, int *ip, FFTFLT *c); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void rftbsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void dstsub(int n, FFTFLT *a, int nc, FFTFLT *c); int j, nw, nc; FFTFLT xr; @@ -700,11 +677,6 @@ void ddst(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) void dfct(int n, FFTFLT *a, FFTFLT *t, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void makect(int nc, int *ip, FFTFLT *c); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void dctsub(int n, FFTFLT *a, int nc, FFTFLT *c); int j, k, l, m, mh, nw, nc; FFTFLT xr, xi, yr, yi; @@ -793,11 +765,6 @@ void dfct(int n, FFTFLT *a, FFTFLT *t, int *ip, FFTFLT *w) void dfst(int n, FFTFLT *a, FFTFLT *t, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void makect(int nc, int *ip, FFTFLT *c); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void dstsub(int n, FFTFLT *a, int nc, FFTFLT *c); int j, k, l, m, mh, nw, nc; FFTFLT xr, xi, yr, yi; @@ -882,7 +849,6 @@ void dfst(int n, FFTFLT *a, FFTFLT *t, int *ip, FFTFLT *w) void makewt(int nw, int *ip, FFTFLT *w) { - void makeipt(int nw, int *ip); int j, nwh, nw0, nw1; FFTFLT delta, wn4r, wk1r, wk1i, wk3r, wk3i; @@ -1039,21 +1005,6 @@ void makect(int nc, int *ip, FFTFLT *c) void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w) { - void bitrv2(int n, int *ip, FFTFLT *a); - void bitrv216(FFTFLT *a); - void bitrv208(FFTFLT *a); - void cftf1st(int n, FFTFLT *a, FFTFLT *w); - void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w); - void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); - void cftfx41(int n, FFTFLT *a, int nw, FFTFLT *w); - void cftf161(FFTFLT *a, FFTFLT *w); - void cftf081(FFTFLT *a, FFTFLT *w); - void cftf040(FFTFLT *a); - void cftx020(FFTFLT *a); -#ifdef USE_CDFT_THREADS - void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w); -#endif /* USE_CDFT_THREADS */ - if (n > 8) { if (n > 32) { cftf1st(n, a, &w[nw - (n >> 2)]); @@ -1087,21 +1038,6 @@ void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w) void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w) { - void bitrv2conj(int n, int *ip, FFTFLT *a); - void bitrv216neg(FFTFLT *a); - void bitrv208neg(FFTFLT *a); - void cftb1st(int n, FFTFLT *a, FFTFLT *w); - void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w); - void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); - void cftfx41(int n, FFTFLT *a, int nw, FFTFLT *w); - void cftf161(FFTFLT *a, FFTFLT *w); - void cftf081(FFTFLT *a, FFTFLT *w); - void cftb040(FFTFLT *a); - void cftx020(FFTFLT *a); -#ifdef USE_CDFT_THREADS - void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w); -#endif /* USE_CDFT_THREADS */ - if (n > 8) { if (n > 32) { cftb1st(n, a, &w[nw - (n >> 2)]); @@ -2446,8 +2382,6 @@ typedef struct cdft_arg_st cdft_arg_t; void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w) { - void *cftrec1_th(void *p); - void *cftrec2_th(void *p); int i, idiv4, m, nthread; cdft_thread_t th[4]; cdft_arg_t ag[4]; @@ -2480,9 +2414,6 @@ void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w) void *cftrec1_th(void *p) { - int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w); - void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); - void cftmdl1(int n, FFTFLT *a, FFTFLT *w); int isplt, j, k, m, n, n0, nw; FFTFLT *a, *w; @@ -2509,9 +2440,6 @@ void *cftrec1_th(void *p) void *cftrec2_th(void *p) { - int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w); - void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); - void cftmdl2(int n, FFTFLT *a, FFTFLT *w); int isplt, j, k, m, n, n0, nw; FFTFLT *a, *w; @@ -2541,9 +2469,6 @@ void *cftrec2_th(void *p) void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w) { - int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w); - void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); - void cftmdl1(int n, FFTFLT *a, FFTFLT *w); int isplt, j, k, m; m = n; @@ -2563,8 +2488,6 @@ void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w) int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w) { - void cftmdl1(int n, FFTFLT *a, FFTFLT *w); - void cftmdl2(int n, FFTFLT *a, FFTFLT *w); int i, isplt, m; if ((k & 3) != 0) { @@ -2598,13 +2521,6 @@ int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w) void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w) { - void cftmdl1(int n, FFTFLT *a, FFTFLT *w); - void cftmdl2(int n, FFTFLT *a, FFTFLT *w); - void cftf161(FFTFLT *a, FFTFLT *w); - void cftf162(FFTFLT *a, FFTFLT *w); - void cftf081(FFTFLT *a, FFTFLT *w); - void cftf082(FFTFLT *a, FFTFLT *w); - if (n == 512) { cftmdl1(128, a, &w[nw - 64]); cftf161(a, &w[nw - 8]); @@ -2907,11 +2823,6 @@ void cftmdl2(int n, FFTFLT *a, FFTFLT *w) void cftfx41(int n, FFTFLT *a, int nw, FFTFLT *w) { - void cftf161(FFTFLT *a, FFTFLT *w); - void cftf162(FFTFLT *a, FFTFLT *w); - void cftf081(FFTFLT *a, FFTFLT *w); - void cftf082(FFTFLT *a, FFTFLT *w); - if (n == 128) { cftf161(a, &w[nw - 8]); cftf162(&a[32], &w[nw - 32]); From 97f5fcb23dab1370af4d0099656018216e89792e Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 10 Apr 2024 04:34:02 -0300 Subject: [PATCH 201/450] move "Differences from Max/MSP" from chapter 5 to 2 chapter 2 seems a much better candidate to house this subsection. I put it at the end of the chapter. Nonetheless, this entry was terribly outdated so I am modernizing it a bit, and there are still things I need to check to see if it holds true these days --- doc/1.manual/index.htm | 2 +- doc/1.manual/x2.htm | 69 ++++++++++++++++++++++++++++++++++++++ doc/1.manual/x5.htm | 75 ------------------------------------------ 3 files changed, 70 insertions(+), 76 deletions(-) diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index ea7691db4..14139ad96 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -105,6 +105,7 @@

      Pd Manual

    • Editing
    • Limitations
    • +
    • Differences from Max
    • Getting Pd to run @@ -158,7 +159,6 @@

      Pd Manual

    • Current status
      1. Release notes -
      2. Differences from Max/MSP
    • Installing from source diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 274067481..773dd3aed 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -1793,6 +1793,75 @@

      2.10.4. Limitations

      grows there will surely be occasions for many further extensions of the data handling primitives and the graphical presentation and editing functions. +

      2.11. Differences from Max

      + +

      Pd wasn't intended to be a Max clone, but there were many similarities between +Pd and Max/MSP in the of its origin and some effort had been undertaken (but more +would have been needed) to make the two interoperable. It was possible to import +and export patches to Max/MSP; you just needed to save as text to a file with +extension ".pat", and then open in the other program. You'd at least get something. +By sticking to common or commonizable features youcould actually develop patches +for both platforms. + +

      To this day, Pd can still open and save MAX patches with the .pat extension as +well as MAX's text files with the .mxt extension. However, these are legacy and +unsupported MAX formats as currently MAX uses a JSON-based file format with +the .maxpat extension introducd in MAX 5, released in 2008. + +

      Since MAX 5, MAX and Pd have diverged even more over the years, but Pd is still +closely related to MAX/MSP. Nonetheless, there are differences in semantics between +the two; a partial list follows. + +

      In Pd you can edit instantiations of abstractions and save the result back +to the file of the abstraction. This isn't possible in Max, because the +instantiations are different from the abstraction itself in that "#1", etc., +are replaced by the instantiation arguments. In Pd, these arguments appear +as "$1", etc, and are translated at a slightly later stage of the instantiation +process so that you still see them as "$" variables in the instantiation. +see Abstractions . + +

      In Pd, to make current all instantiations of the abstraction, either delete +and recreate them or close and open the patch; this is done automatically in Max. + +

      In Pd, if you select "save" while in a subpatch, the parent is saved. In +Max, if you do this a dialogue box comes up asking if you want to save the +subpatch as a separate file. (if you want to save a subpatch to a file in Pd, +you have to copy and paste the contents to a new document. + +

      In Pd, inlets and outlets are ordinary text objects; in Max they're +"gui" objects from the palette. + +

      In Max, if an object's outlet is connected to several destinations, +corresponding messages are always sent in right-to-left screen order. In +Pd, the messages are sent in the order you made the connections in. In either +case, in situations where you care about the order it's appropriate to use +a [trigger] object to specify. + +

      In Pd, there's no [gate]; instead there's a [spigot] with the inlets in +the opposite, more natural order. + +

      Switching subsets of the DSP patch on and off is done in completely +different ways in Pd and Max, and block sizes are handled differently +as well. + +

      Max offers many "GUI" objects such as sliders, dials, VU meters, piano +keyboards, even "bpatchers." Until version 0.34, the only two in Pd were the +number box and graphical arrays. Starting in version 0.34, Pd incorporates +Thomas Musil's GUI objects: sliders, switches, and so on. (Thanks Thomas!) +Beyond this essential collection of GUI objects, it's unlikely you'll ever find +any commonality between the two. + +

      The "bpatcher" feature in Max has a correlate, "graph on parent" subpatches, +in Pd; however, Pd's version is quite different from Max's. + +

      In Pd there's no [preset] object (I now think it's basically a bad idea) +and you have to use explicit sends and receives to restore values to number +boxes. Then just make a "message" box to re-send the values you want. + +

      In Macintosh land, instead of getting tabosc4~ and arrays, you get cycle~ +and buffer~. The only gotcha is that you probably can't draw in buffer~ with +the mouse as you can with arrays, but at least it's possible to +make a patch that copies a "table" into a "buffer~".



      diff --git a/doc/1.manual/x5.htm b/doc/1.manual/x5.htm index ca6174fff..0d9764709 100644 --- a/doc/1.manual/x5.htm +++ b/doc/1.manual/x5.htm @@ -2346,81 +2346,6 @@

      5.1. Release notes

      send, receive.

      ----------------------------------------- -

      5.2. Differences from Max/MSP

      - -

      It wasn't anyone's intention to make Pd a Max/MSP clone, but on the -other hand, if there's no reason for a feature to appear differently in -Pd than in Max/MSP, the choices in Pd tend to hew to those in Max/MSP. -Moreover, some effort has been undertaken (but more is needed) to make the -two interoperable. - -

      You can use Pd to import and export patches to Max/MSP; just save as text to -a file with extension ".pat", and then open in the other program. You'll at -least get something. If you stick to common or commonizable features you can -actually develop patches for both platforms. Pd importing of Max patches works -best if you use the Pd Extended package; there are many more compatible objects. - -

      When specific objects exist on one platform and not on the other, it's -often possible to make abstractions to imitate the missing objects, in a -kind of personalized compatibility library. - -

      There are, however, differences in semantics you'll want to know about; -a partial list follows. - -

      abstraction arguments. -In Pd you can edit instantiations of abstractions and save the result back -to the file of the abstraction. This isn't possible in Max, because the -instantiations are different from the abstraction itself in that "#1", etc., -are replaced by the instantiation arguments. In Pd, these arguments appear -as "$1", etc, and are translated at a slightly later stage of the instantiation -process so that you still see them as "$" variables in the instantiation. -see Abstractions . - -

      In Pd, to make current all instantiations of the -abstraction, either delete and recreate them or close and open the patch; -this is done automatically in Max/MSP. - -

      In Pd, if you select "save" while in a subpatch, the parent is saved. In -Max/MSP, if you do this a dialogue box comes up asking if you want to save the -subpatch as a separate file. (if you want to save a subpatch to a file in Pd, -you have to copy and paste the contents to a new document. - -

      In Pd, inlets and outlets are ordinary text objects; in Max/MSP they're -"gui" objects from the palette. - -

      In Max/MSP, if an object's outlet is connected to several destinations, -corresponding messages are always sent in right-to-left screen order. In -Pd, the messages are sent in the order you made the connections in. In either -case, in situations where you care about the order it's appropriate to use -a "trigger" object to specify. - -

      In Pd, there's no "gate"; instead it's "spigot" with the inlets in the -opposite, more natural order. - -

      Switching subsets of the DSP patch on and off is done in completely -different ways in Pd and Max/MSP, and block sizes are handled differently as -well. - -

      Max offers many "GUI" objects such as sliders, dials, VU meters, piano -keyboards, even "bpatchers." Until version 0.34, the only two in Pd were the -number box and graphical arrays. Starting in version 0.34, Pd incorporates -Thomas Musil's GUI objects: sliders, switches, and so on. (Thanks Thomas!) -Beyond this essential collection of GUI objects, it's unlikely you'll ever find -any commonality between the two. Also, as of 0.34, importing and exporting to -Max doesn't know about the Musil objects; I'll try to get that fixed for 0.35. - -

      In Pd there's no "preset" object (I now think it's basically a bad idea) -and you have to use explicit sends and receives to restore values to number -boxes. Then just make a "message" box to re-send the values you want. - -

      In Macintosh land, instead of getting tabosc4~ and arrays, you get cycle~ -and buffer~. The only gotcha is that you probably can't draw in buffer~ with -the mouse as you can with arrays, but at least it's possible to -make a patch that copies a "table" into a "buffer~". - -

      The "bpatcher" feature in Max has a correlate, "graph on parent" subpatches, -in Pd; however, Pd's version is quite different from Max's. -



      next chapter
      From 76dcb1f609069c59f35ce17f6c51d10bf1d240c0 Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 10 Apr 2024 04:48:02 -0300 Subject: [PATCH 202/450] fix typos --- doc/1.manual/x2.htm | 6 +++--- doc/1.manual/x4.htm | 2 +- doc/1.manual/x5.htm | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 773dd3aed..ca2903f4d 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -102,7 +102,7 @@

      2.1.1. The main window, canvases, and printout

      It is useful to increase the font size of patches if you're having trouble reading them in HiDPI screens. Note that the patch's font size gets saved with the file. -

      Also in the Edit menu, you can "Zoom In" and "Zoom Out" a pathc window. +

      Also in the Edit menu, you can "Zoom In" and "Zoom Out" a patch window. The Zoom settings is not saved in the patch and a Zoomed window can also help with HiDPI screens. @@ -267,7 +267,7 @@

      2.1.4. Patches and files

      2.2. Editing Pd patches

      -

      Normally, you'll use Pd in run mode, which is also reffered to as "performance +

      Normally, you'll use Pd in run mode, which is also referred to as "performance mode". In order to edit a patch, you need to go into edit mode.

      2.2.1. Edit and Run mode

      @@ -1633,7 +1633,7 @@

      2.10.1. Traversal

      Here is a patch showing how to implement the graphical sequence score shown above. It uses the [clone] object to instantiate different copies of the [voice] -abstraction, which is resonsible for playing back each voice from the score. +abstraction, which is responsible for playing back each voice from the score.

      traversal example patch

      diff --git a/doc/1.manual/x4.htm b/doc/1.manual/x4.htm index f8e386dd7..299efcda6 100644 --- a/doc/1.manual/x4.htm +++ b/doc/1.manual/x4.htm @@ -546,7 +546,7 @@

      4.3.1.2. [declare -lib]:

      4.3.2. Load via Path and Startup:

      -

      We'll now see the differeces between using [declare] or using "Path" and "Startup". +

      We'll now see the differences between using [declare] or using "Path" and "Startup".

      4.3.2.1. User added Path:

      diff --git a/doc/1.manual/x5.htm b/doc/1.manual/x5.htm index 0d9764709..2fc7ecae6 100644 --- a/doc/1.manual/x5.htm +++ b/doc/1.manual/x5.htm @@ -36,7 +36,7 @@

      5.1. Release notes

      ------------------ 0.54-0 ------------------------------

      Multichannel audio signals are supported for many objects. They may be created -or split into component channels using the new [snake~] object. Supported obects +or split into component channels using the new [snake~] object. Supported objects include stateless tilde objects such as [abs~], [sqrt~], [rsqrt~], [wrap~], [exp~], [cos~], [ftom~], [mtof~], [dbtorms~], [rmstodb~], [dbtopow~], [powtodb~], [clip~], [+], [-], [*], [/], [max~], [min~], [log~], [pow~], [fft~], ifft~], [rfft~], [rifft~] and From 47519e048a0173d890a75dbb132f8c3bb7614912 Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 10 Apr 2024 04:50:51 -0300 Subject: [PATCH 203/450] another typo --- doc/1.manual/x2.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index ca2903f4d..4c040737b 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -467,7 +467,7 @@

      2.2.7. Context menu for 'Properties', 'Open' and 'Help' Control + Click is mapped -to right-click and that new magic mousw dwvices can map gestures when you +to right-click and that new magic mouse devices can map gestures when you click with two fingers (same is true for trackpads).

      Selecting "Help" on any box opens a patch explaining and demonstrating From 72e845b93674d3551ac75e5249fd931920d3665a Mon Sep 17 00:00:00 2001 From: Ben Wesch <1923787+ben-wes@users.noreply.github.com> Date: Wed, 10 Apr 2024 10:01:16 +0200 Subject: [PATCH 204/450] for separate keys, imgs cropped, typos corrected (#2254) * with separated keys * imgs cropped, typos * typos --- doc/1.manual/img/2.10.2.png | Bin 36469 -> 18949 bytes doc/1.manual/img/2.10.4.png | Bin 79670 -> 48535 bytes doc/1.manual/x2.htm | 70 ++++++++++++++++++------------------ 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/doc/1.manual/img/2.10.2.png b/doc/1.manual/img/2.10.2.png index 4491ff9954217ce5f2fc7ba82f464ae6e425ba4d..9d3b7178fc1bf0e00a16c1410b7a4b96125e4453 100644 GIT binary patch literal 18949 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

      qpX$fK_BH~2JRdITf{4|Bg5m<-OH;vQ%q$vh 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 Y1N$bYeQDC74gdfE07*qoM6N<$g1tA+?*IS* diff --git a/doc/1.manual/img/2.10.4.png b/doc/1.manual/img/2.10.4.png index 61bbf05f724fce2e4db8e76b97a7e4b6a6b47311..99d5b7505b7007a537cd8cf318289c1daa2d4fbf 100644 GIT binary patch literal 48535 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 B+xY+h literal 79670 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 diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 4c040737b..171546c14 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -74,9 +74,9 @@

      2.1.1. The main window, canvases, and printout

      Pure Data is utilizing. You can configure audio devices in the "Audio preferences" as described in the next chapter. -

      The Media menu offers shortcuts to toggle DSP on and off. Use Ctrl + / +

      The Media menu offers shortcuts to toggle DSP on and off. Use Ctrl+/ (Control key on PCs or Command key on Apple computers plus the '/' key) -to turn audio processing on, and Ctrl + . to turn it off. You can check input RMS +to turn audio processing on, and Ctrl+. to turn it off. You can check input RMS audio level if you select "Test Audio and MIDI" and make other Audio and MIDI tests (read more about this in 3.1. Audio and MIDI). @@ -107,8 +107,8 @@

      2.1.1. The main window, canvases, and printout

      HiDPI screens.

      In the Edit menu you can also clear all messages printed in the Pd window with -the 'Clear Console' entry (Shift + Ctrl + L shortcut). On the Window menu -you find the 'Pd Window' entry (with the Ctrl + R shortcut), which brings the Pd +the 'Clear Console' entry (Shift+Ctrl+L shortcut). On the Window menu +you find the 'Pd Window' entry (with the Ctrl+R shortcut), which brings the Pd window to the front or sends it behind and brings back to focus the last focused window. You can create and open patches via the File menu, where you can also close and save @@ -118,9 +118,9 @@

      2.1.1. The main window, canvases, and printout

      file menu

      -

      On PCs, this menu shows the Ctrl + Q entry to quit Pd, which prompts +

      On PCs, this menu shows the Ctrl+Q entry to quit Pd, which prompts you to confirm the action (on Macs, this is listed in the Pd menu). To quit -without confirmation, use Shift + Ctrl + Q. +without confirmation, use Shift+Ctrl+Q.

      Here is a simple Pd patch: @@ -291,7 +291,7 @@

      2.2.1. Edit and Run mode

      mode the purpose of mouse clicks is to edit and change the patch. Note that in edit mode, the mouse cursor becomes a pointing hand instead of an arrow. Unchecking the "Edit Mode" entry returns the patch to run mode and changes the cursor back to an -arrow. You can use the Ctrl + E shortcut to switch between these modes. +arrow. You can use the Ctrl+E shortcut to switch between these modes.

      In edit mode, you can move boxes around by clicking on them and dragging. You can also edit text, create or delete boxes and make or cut connections. @@ -353,24 +353,24 @@

      2.2.3. Selecting items and moving them or "tidying them up"To select more than one box, you may use Shift + Click on each item. +

      To select more than one box, you may use Shift+Click on each item. You can then click again on one of the selected boxes to move the group around. Alternatively, you click on a blank portion of the window and drag the cursor to select all boxes within a rectangular area (then click again on one of the selected boxes to move them as well). If you press Shift, you can repeat the click -and drag operation to select another group of boxes as well. If you do Shift + -Click on a selected box, you deselect it. The "Select All" entry on the Edit -menu (Ctrl + A) selects all items in a patch window. +and drag operation to select another group of boxes as well. If you do Shift ++Click on a selected box, you deselect it. The "Select All" entry on the Edit +menu (Ctrl+A) selects all items in a patch window.

      When you have one or more boxes selected, you can also move them by using the Arrow keys, which moves items one pixel in the direction of the arrows. -You can also use Shift + Arrow keys to move items 10 pixels in the +You can also use Shift+Arrow keys to move items 10 pixels in the desired direction. By the way, if you select boxes that are connected, the connections (patch cords) are also moved around.

      The 'Tidy Up' entry in the Edit menu allows you to try and align selected boxes that are not perfectly aligned. You can select boxes arranged in a -horizontal row and use the shortcut Shift + Ctrl + R to try and +horizontal row and use the shortcut Shift+Ctrl+R to try and align them perfectly horizontally. Similarly, this can be applied to vertically align a column of boxes. Bidimensional rectangular selections of boxes are also possible, but aligning horizontally and vertically separately tends to yield @@ -410,7 +410,7 @@

      2.2.5. Changing the text

      Clicking on an unselected object, message or comment box and releasing the click makes the text active, i.e., ready to be text edited (if you select using -a rectangular area selection or Shift + Click, the text isn't activated). +a rectangular area selection or Shift+Click, the text isn't activated).

      If you only click once, the entire text is selected and your typing will replace the whole selections. Use Arrow keys to navigate the cursor through the @@ -465,8 +465,8 @@

      2.2.7. Context menu for 'Properties', 'Open' and 'Help' All the "clicking" mentioned above is done with the left mouse button. The right button, instead, opens a context menu offering "Properties", -"Open" and "Help" (either in edit or run mode). Apple users, who may -only have one button should know that Control + Click is mapped +"Open" and "Help" (either in edit or run mode). Apple users, who may only +have one button should know that Control+Click is mapped to right-click and that new magic mouse devices can map gestures when you click with two fingers (same is true for trackpads). @@ -494,7 +494,7 @@

      2.3.1. Tab navigation

      by the order of their creation. Pressing Tab cycles through the boxes from the earliest created to the next, and upon reaching the last box in the window the selection loops back to the first one. Conversely, you can -press Shift + Tab to navigate in reverse order, moving from the +press Shift+Tab to navigate in reverse order, moving from the most recently created box back towards the first created ones.

      @@ -503,7 +503,7 @@

      2.3.1. Tab navigation

      Using Tab also works in a similar way for patch cords if you have one selected. You can move from first to last with Tab -and from last to first with Shift + Tab. +and from last to first with Shift+Tab.

      tab navigation cords @@ -512,7 +512,7 @@

      2.3.1. Tab navigation

      If you're creating a connection by clicking on an outlet and dragging a patch cord, you can also use Tab to cycle through outlets. The navigation order is left to right and it also cycles back. Pressing -Shift + Tab navigates from right to left. +Shift+Tab navigates from right to left.

      tab navigation iolets @@ -521,7 +521,7 @@

      2.3.1. Tab navigation

      In Linux and Windows you can also cycle between inlets. This is currently not possible on macOS. When dragging a connection into an inlet area, without releasing the mouse, you can use Tab to navigate to the next inlet, -or Shift + Tab to navigate to the previous one. +or Shift+Tab to navigate to the previous one.

      2.3.2. Autopatching

      @@ -529,7 +529,7 @@

      2.3.2. Autopatching

      via startup flags (see '-autopatch' flag Preferences and startup options). This works with the shortcuts from the Put menu for inserting boxes. If you have a selected box and use a shortcut -to create another one (such as Ctrl + 1 to create an object box), +to create another one (such as Ctrl+1 to create an object box), the created box is placed below the selected box and a connection is made from the first outlet of the selected box into the inlet of the newly created box (granted that these boxes have an outlet and an inlet for the connection @@ -558,7 +558,7 @@

      2.3.2. Autopatching

      2.3.3. Duplicate connections

      If you select a connection between two boxes that have more than one -outlet and inlet for connections, you can use Ctrl + D to +outlet and inlet for connections, you can use Ctrl+D to duplicate and create more connections.

      @@ -568,7 +568,7 @@

      2.3.3. Duplicate connections

      2.3.4. Managing connections with the Shift key

      You can swap connections if you selected a connection and use -Shift + Click on another one. +Shift+Click on another one.

      swap connections @@ -638,15 +638,15 @@

      2.3.4. Managing connections with the Shift key

      2.3.5. (Dis)Connect selection

      This is a menu entry in the Edit menu, also available via the shortcut -Ctrl + K. It allows you to connect and disconnect selected boxes in +Ctrl+K. It allows you to connect and disconnect selected boxes in different ways.

      ctrl+k

      -

      For 2 selected boxes you can use Ctrl + K to connect -them. Repeat using Ctrl + K to make multiple connections +

      For 2 selected boxes you can use Ctrl+K to connect +them. Repeat using Ctrl+K to make multiple connections from possible remaining outlets to inlets.

      @@ -654,7 +654,7 @@

      2.3.5. (Dis)Connect selection

      For 2 selected tilde objects, if the origin object has a single outlet and -the target object has many inlets, you can repeatedly use Ctrl + K +the target object has many inlets, you can repeatedly use Ctrl+K to fan out and connect the same outlet to all inlets.

      @@ -664,9 +664,9 @@

      2.3.5. (Dis)Connect selection

      For last, you can include or bypass a box into or from a connection (being it any connection from any outlet into any inlet). To include a box, you can select it and the connection between the other 2 boxes by using -Shift + Click and then use Ctrl + K to include +Shift+Click and then use Ctrl+K to include the selected box into the connection. Alternatively, you can select the 3 -boxes with a connection between 2 of them and then use Shift + Click +boxes with a connection between 2 of them and then use Shift+Click to include the third one in the connection.

      @@ -674,7 +674,7 @@

      2.3.5. (Dis)Connect selection

      To bypass a box, you can select 3 boxes connected in a row and use -Ctrl + K to bypass and remove the middle box from the connection. +Ctrl+K to bypass and remove the middle box from the connection.

      exclude box @@ -682,7 +682,7 @@

      2.3.5. (Dis)Connect selection

      2.3.6. Triggerize

      -

      The 'Triggerize' entry in the Edit menu with the Ctrl + T +

      The 'Triggerize' entry in the Edit menu with the Ctrl+T shortcut was designed to insert a [trigger] object (in its abbreviated form [t]). When you select a single box that is connected to many inlets of a single or multiple boxes use "Triggerize" to insert this object, which is briefly described @@ -698,7 +698,7 @@

      2.3.6. Triggerize

      Additionally, the 'Triggerize' option can be used to insert a dummy object. -To do so, select a connection and use Ctrl + T. For a control +To do so, select a connection and use Ctrl+T. For a control connection, a [t a] object is created with the text selected, so you can type another text to include another object instead. For a signal connection, a [pd nop~] subpatch is created, also with the text selected @@ -709,8 +709,8 @@

      2.3.6. Triggerize

      While the connections of a [trigger] object can be resorted as -explained above, Ctrl + T also allows -you to easily manage its outlets when using it on the selected object. +explained above, Ctrl+T also +allows you to easily manage its outlets when using it on the selected object. The result will differ depending on the existing connections and outlets. If each outlet has a single connection, it will insert an outlet on the left. @@ -1657,7 +1657,7 @@

      2.10.1. Traversal

      The [pd sequence] subpatch takes care of sequencing the data structure events. -

      [pd seqquence] subpatch

      +

      [pd sequence] subpatch

      A second [pointer] object is used here as a storage cell for pointers just as [float] is for numbers. The center of the sequencer is the [delay] object, From c4a372fed658227e5c81cb3e0833c253761b8724 Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 10 Apr 2024 05:26:10 -0300 Subject: [PATCH 205/450] more typos --- doc/1.manual/x2.htm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 171546c14..506804df0 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -94,25 +94,26 @@

      2.1.1. The main window, canvases, and printout

      edit menu

      -

      Pd documents ("patches" or "canvases") have their own mains window and any number of +

      Pd documents ("patches" or "canvases") have their own main window and any number of sub-windows. The sub-windows can be opened and closed, but they are always running, whether you see them or not. When opened, sub-windows show up as a separate canvases. When you have a patch window focused, you can use the 'Font' dialog entry in the Edit menu to set the patch's font size, which also applies to its subwindows. It is useful to increase the font size of patches if you're having trouble reading -them in HiDPI screens. Note that the patch's font size gets saved with the file. +them on HiDPI screens. Note that the patch's font size gets saved with the file.

      Also in the Edit menu, you can "Zoom In" and "Zoom Out" a patch window. -The Zoom settings is not saved in the patch and a Zoomed window can also help with +The Zoom settings is not saved in the patch and a zoomed window can also help with HiDPI screens.

      In the Edit menu you can also clear all messages printed in the Pd window with -the 'Clear Console' entry (Shift+Ctrl+L shortcut). On the Window menu -you find the 'Pd Window' entry (with the Ctrl+R shortcut), which brings the Pd -window to the front or sends it behind and brings back to focus the last focused window. +the 'Clear Console' entry (Shift+Ctrl+L shortcut). On the +Window menu you find the 'Pd Window' entry (with the Ctrl+R +shortcut), which brings the Pd window to the front or sends it behind and brings back to +focus the last focused window. -You can create and open patches via the File menu, where you can also close and save -them (note the handy shortcuts). +

      You can create and open patches via the File menu, where you can also close +and save them (note the handy shortcuts).

      file menu From e728d359644dbb20c2eae76b154266ef9d576545 Mon Sep 17 00:00:00 2001 From: Michael Feldman Date: Wed, 10 Apr 2024 14:19:01 -0400 Subject: [PATCH 206/450] Update D12.sampler.bis.pd Change a comment in D12 example patch The comment had an error in describing the passage of data from a [route] object to [pack] via a $2 message. The previous comment claimed $2 contained amplitude which gets packed into the note data, but actually $2 contains the poly voice number. --- doc/3.audio.examples/D12.sampler.bis.pd | 64 ++++++++++++------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/doc/3.audio.examples/D12.sampler.bis.pd b/doc/3.audio.examples/D12.sampler.bis.pd index af33c3e9e..6474970c9 100644 --- a/doc/3.audio.examples/D12.sampler.bis.pd +++ b/doc/3.audio.examples/D12.sampler.bis.pd @@ -1,4 +1,4 @@ -#N canvas 239 30 1071 662 12; +#N canvas 153 58 1094 665 12; #X declare -stdpath ./; #N canvas 642 163 417 426 samples 0; #N canvas 0 0 450 300 (subpatch) 0; @@ -42,16 +42,13 @@ #X obj 822 259 pack; #X msg 313 513 \; onoff 1 0; #X msg 314 555 \; onoff 2 0; -#X text 30 39 Here is a variation on the polyphonic sampler \, which can take separate messages to start and stop notes (so that you can attach it to a MIDI keyboard \, for example.) "Note" messages act as before \, but in an intermediate step they are split onto note-on and note-off messages \, sent to "onoff". You can alternatively send messages straight to onoff if you don't know the duration in advance., f 67; #X text 29 146 Messages to "onoff" require a tag \, which is a number shared between the note-on and note-off message so that we can track down the voice to turn it off. If you're using MIDI input \, you can just re-use the pitch as a tag., f 67; #X text 91 593 single messages to do both as before:; -#X text 29 215 Messages to "onoff" whose amplitude is zero are note-off messages (the other parameters of note-off messages are ignored). The "sampvoice2" abstraction is a modification of "sampvoice" which looks at the amplitude field to decide whether to begin or end a note., f 67; -#X text 29 295 To convert "note" messages to pairs of "onoff" messages \, first a counter generates a tag. The the "pipe" object delays a copy of the tag \, which the following "pack" object converts into a note-off message (a pair of numbers \, the tag and a zero.), f 67; #X obj 597 81 unpack f f f f f f f; #X obj 611 250 pack f f f f f f f; #X obj 854 86 unpack f f f f f f f; #X obj 868 236 pack f f f f f f f; -#N canvas 282 191 708 551 recorder 0; +#N canvas 333 157 708 551 recorder 0; #X obj 152 363 adc~ 1; #X obj 152 391 hip~ 5; #X obj 221 421 line~; @@ -113,47 +110,50 @@ #X obj 611 296 clone -s 1 sampvoice2 8; #X msg 542 217 \$1 0; #X msg 588 218 \$2; -#X text 29 361 Under "r onoff" \, the poly object allocates a voice number \, putting it out paired with velocity. After swapping the two and packing them into a single message \, the amplitude is checked against zero by the [route 0] object. If zero \, the "\$1 0" confects a 2-argument message (voice number and zero). Otherwise \, the "\$2" retrieves the nonzero amplitude for a note-on message \, to which we add all the other parameters and route to the appropriate voice inside [clone]., f 67; #X text 822 606 updated for Pd version 0.52; #X msg 93 513 \; onoff 1 90 60 5 0 0 100; #X msg 94 555 \; onoff 2 90 48 5 0 0 100; #X msg 94 612 \; note 51 90 1000 5 0 0 100; #X text 92 493 separate messages for note on and off:; +#X text 30 39 Here is a variation on the polyphonic sampler \, which can take separate messages to start and stop notes (so that you can attach it to a MIDI keyboard \, for example.) "Note" messages act as before \, but in an intermediate step they are split onto note-on and note-off messages \, sent to "onoff". You can alternatively send messages straight to "onoff" if you don't know the duration in advance., f 67; +#X text 29 215 Messages to "onoff" whose amplitude is zero are note-off messages (the other parameters of note-off messages are ignored). The [sampvoice2] abstraction is a modification of [sampvoice] which looks at the amplitude field to decide whether to begin or end a note., f 67; +#X text 29 295 To convert "note" messages to pairs of "onoff" messages \, first a counter generates a tag. The [pipe] object delays a copy of the tag \, which the following [pack] object converts into a note-off message (a pair of numbers \, the tag and a zero.), f 67; +#X text 29 361 Under [r onoff] \, the [poly] object allocates a voice number \, putting it out paired with velocity. After swapping the two and packing them into a single message \, the amplitude is checked against zero by the [route 0] object. If zero \, the "\$1 0" message outputs a list with "voice number" and "0". Otherwise \, the "\$2" retrieves the voice number from [poly] which gets packed in with the note data and routed to the appropriate sampvoice2 [clone]., f 67; #X connect 2 0 4 0; #X connect 2 2 4 1; #X connect 4 0 6 0; #X connect 4 1 6 1; -#X connect 5 0 44 0; -#X connect 5 1 45 0; +#X connect 5 0 41 0; +#X connect 5 1 42 0; #X connect 6 0 5 0; -#X connect 14 0 37 0; +#X connect 14 0 34 0; #X connect 22 0 23 0; #X connect 23 0 24 0; #X connect 24 0 22 1; #X connect 24 0 28 0; -#X connect 24 0 40 0; -#X connect 25 0 39 0; +#X connect 24 0 37 0; +#X connect 25 0 36 0; #X connect 26 0 22 0; -#X connect 26 1 40 2; +#X connect 26 1 37 2; #X connect 28 0 29 0; #X connect 29 0 27 0; -#X connect 37 0 2 0; -#X connect 37 1 2 1; -#X connect 37 1 38 1; -#X connect 37 2 38 2; -#X connect 37 3 38 3; -#X connect 37 4 38 4; -#X connect 37 5 38 5; -#X connect 37 6 38 6; -#X connect 38 0 43 0; -#X connect 39 0 26 0; -#X connect 39 1 40 1; -#X connect 39 2 28 1; -#X connect 39 3 40 3; -#X connect 39 4 40 4; -#X connect 39 5 40 5; -#X connect 39 6 40 6; -#X connect 40 0 27 0; -#X connect 43 0 3 0; -#X connect 44 0 43 0; -#X connect 45 0 38 0; +#X connect 34 0 2 0; +#X connect 34 1 2 1; +#X connect 34 1 35 1; +#X connect 34 2 35 2; +#X connect 34 3 35 3; +#X connect 34 4 35 4; +#X connect 34 5 35 5; +#X connect 34 6 35 6; +#X connect 35 0 40 0; +#X connect 36 0 26 0; +#X connect 36 1 37 1; +#X connect 36 2 28 1; +#X connect 36 3 37 3; +#X connect 36 4 37 4; +#X connect 36 5 37 5; +#X connect 36 6 37 6; +#X connect 37 0 27 0; +#X connect 40 0 3 0; +#X connect 41 0 40 0; +#X connect 42 0 35 0; From 1a64547bcdadfd37b16d7da1d08ff13d661e0499 Mon Sep 17 00:00:00 2001 From: danomatika Date: Wed, 10 Apr 2024 21:35:13 +0200 Subject: [PATCH 207/450] libpd makefile: fix extras possibly linking to pre-existing .o files from desktop build by building extras and libpd sources directly; don't build s_entry.c s_audio_paring.c s_midi_dummy.c; build s_libpdmidi.c; set HAVE_LIBDL per-platform since BSD doesn't support it; set HAVE_ALLOCA per-platform --- libpd/Makefile | 54 ++++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/libpd/Makefile b/libpd/Makefile index 82d8f7ed5..44f034754 100644 --- a/libpd/Makefile +++ b/libpd/Makefile @@ -11,7 +11,8 @@ PLATFORM_ARCH ?= $(shell $(CC) -dumpmachine | sed -e 's,-.*,,') ifeq ($(UNAME), Darwin) # Mac SOLIB_EXT = dylib - PLATFORM_CFLAGS = -DHAVE_LIBDL -DHAVE_MACHINE_ENDIAN_H -D_DARWIN_UNLIMITED_SELECT + PLATFORM_CFLAGS = -DHAVE_ALLOCA_H -DHAVE_LIBDL -DHAVE_MACHINE_ENDIAN_H \ + -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT PLATFORM_LDFLAGS = -dynamiclib -ldl -Wl,-no_compact_unwind ifeq ($(FAT_LIB), true) # macOS universal "fat" lib compilation @@ -46,7 +47,7 @@ else -DHAVE_ENDIAN_H PLATFORM_LDFLAGS = -shared -Wl,-Bsymbolic ifeq ($(UNAME), Linux) - PLATFORM_CFLAGS += -DHAVE_LIBDL + PLATFORM_CFLAGS += -DHAVE_ALLOCA_H -DHAVE_LIBDL PLATFORM_LDFLAGS += -ldl endif endif @@ -60,8 +61,8 @@ VPATH = ../src:\ # to allow easy overriding of CODECFLAGS and to allow adding MORECFLAGS: # C preprocessor flags, and flags controlling errors and warnings -CPPFLAGS = -I../src -DPD -DUSEAPI_DUMMY -DPD_INTERNAL -DHAVE_UNISTD_H \ - -DHAVE_ALLOCA_H -DLIBPD_EXTRA -DPDINSTANCE +CPPFLAGS = -DPD -DUSEAPI_DUMMY -DPD_INTERNAL -DHAVE_UNISTD_H \ + -I../src -DLIBPD_EXTRA -DPDINSTANCE # code generation flags (e.g., optimization). CODECFLAGS = -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -O3 @@ -75,28 +76,29 @@ MORELDFLAGS = CFLAGS = $(CPPFLAGS) $(PLATFORM_CFLAGS) $(CODECFLAGS) $(MORECFLAGS) LDFLAGS = $(PLATFORM_LDFLAGS) $(MORELDFLAGS) -PDSRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c g_io.c \ - g_scalar.c g_traversal.c g_guiconnect.c g_readwrite.c g_editor.c g_clone.c \ - g_all_guis.c g_bang.c g_mycanvas.c g_numbox.c g_radio.c g_slider.c \ - g_toggle.c g_undo.c g_vumeter.c g_editor_extras.c \ - m_pd.c m_class.c m_obj.c m_atom.c m_memory.c m_binbuf.c \ - m_conf.c m_glob.c m_sched.c \ - s_main.c s_inter.c s_inter_gui.c s_print.c \ - s_loader.c s_path.c s_entry.c s_audio.c s_midi.c s_net.c s_utf8.c \ - s_audio_paring.c \ - d_ugen.c d_ctl.c d_arithmetic.c d_osc.c d_filter.c d_dac.c d_misc.c \ - d_math.c d_fft.c d_fft_fftsg.c d_array.c d_global.c \ - d_delay.c d_resample.c d_soundfile.c d_soundfile_aiff.c d_soundfile_caf.c \ - d_soundfile_next.c d_soundfile_wave.c \ - x_arithmetic.c x_connective.c x_interface.c x_midi.c x_misc.c \ - x_time.c x_acoustics.c x_net.c x_text.c x_gui.c x_list.c x_array.c \ - x_file.c x_scalar.c x_vexp.c x_vexp_if.c x_vexp_fun.c \ - -SRC = $(PDSRC) \ - x_libpdreceive.o s_audio_dummy.o s_midi_dummy.o \ - z_hooks.o z_libpd.o z_print_util.o z_queued.o z_ringbuffer.o \ - bob~.o bonk~.o choice.o fiddle~.o loop~.o lrshift~.o pique.o sigmund~.o \ - pd~.o stdout.o +PDSRC = d_arithmetic.c d_array.c d_ctl.c d_dac.c d_delay.c d_fft.c \ + d_fft_fftsg.c d_filter.c d_global.c d_math.c d_misc.c d_osc.c \ + d_resample.c d_soundfile.c d_soundfile_aiff.c d_soundfile_caf.c \ + d_soundfile_next.c d_soundfile_wave.c d_ugen.c \ + g_all_guis.c g_array.c g_bang.c g_canvas.c g_clone.c g_editor.c \ + g_editor_extras.c g_graph.c g_guiconnect.c g_io.c g_mycanvas.c \ + g_numbox.c g_radio.c g_readwrite.c g_rtext.c g_scalar.c g_slider.c \ + g_template.c g_text.c g_toggle.c g_traversal.c g_undo.c g_vumeter.c \ + m_atom.c m_binbuf.c m_class.c m_conf.c m_glob.c m_memory.c m_obj.c \ + m_pd.c m_sched.c \ + s_audio.c s_audio_dummy.c s_inter.c s_inter_gui.c s_loader.c s_main.c \ + s_net.c s_path.c s_print.c s_utf8.c \ + x_acoustics.c x_arithmetic.c x_array.c x_connective.c x_file.c x_gui.c \ + x_interface.c x_list.c x_midi.c x_misc.c x_net.c x_scalar.c x_text.c \ + x_time.c x_vexp.c x_vexp_if.c x_vexp_fun.c + +EXTRASRC = bob~.c bonk~.c choice.c fiddle~.c loop~.c lrshift~.c pique.c \ + pdsched.c pd~.c sigmund~.c stdout.c + +LIBPDSRC = s_libpdmidi.c x_libpdreceive.c z_hooks.c z_libpd.c \ + z_print_util.c z_queued.c z_ringbuffer.c + +SRC = $(PDSRC) $(EXTRASRC) $(LIBPDSRC) OBJ = $(SRC:.c=.o) From 0b3bcd25a06c45e09eb7010af78fd6f15b0f15ba Mon Sep 17 00:00:00 2001 From: danomatika Date: Wed, 10 Apr 2024 21:36:15 +0200 Subject: [PATCH 208/450] test_libpd makefile: build libpd if needed and make copy, don't rm existing ../libpd.so etc --- libpd/test_libpd/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libpd/test_libpd/Makefile b/libpd/test_libpd/Makefile index ffdf5916d..6cb5bce60 100644 --- a/libpd/test_libpd/Makefile +++ b/libpd/test_libpd/Makefile @@ -24,7 +24,7 @@ endif PD_DIR = ../.. LIBPD_DIR = .. -LIBPD = $(LIBPD_DIR)/$(SOLIB_PREFIX)pd.$(SOLIB_EXT) +LIBPD = $(SOLIB_PREFIX)pd.$(SOLIB_EXT) LIBPD_STATIC = $(LIBPD_DIR)/libpd.$(STATICLIB_EXT) SRC_FILES = test_libpd.c @@ -38,7 +38,9 @@ all: $(TARGET) ##### libs +# build libpd and move a copy here $(LIBPD): + make -C $(LIBPD_DIR) cp $(LIBPD_DIR)/$(LIBPD) . # on windows, copy libpd and MinGW winpthread dll to here From fee1ff083bb34169e021c79f9ff8253ae93ff971 Mon Sep 17 00:00:00 2001 From: danomatika Date: Wed, 10 Apr 2024 22:19:18 +0200 Subject: [PATCH 209/450] libpd: fix func declaration without a prototype warnings --- src/z_queued.c | 8 ++++---- src/z_queued.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/z_queued.c b/src/z_queued.c index a66849342..50c2e15de 100644 --- a/src/z_queued.c +++ b/src/z_queued.c @@ -327,7 +327,7 @@ static void queued_stuff_free(void *p) { if (queued->midi_receive_buffer) rb_free(queued->midi_receive_buffer); } -int libpd_queued_init() { +int libpd_queued_init(void) { int ret = libpd_init(); libpd_set_printhook(internal_printhook); @@ -362,7 +362,7 @@ int libpd_queued_init() { return -2; } -void libpd_queued_release() { +void libpd_queued_release(void) { t_libpdimp *imp = LIBPDSTUFF; if (imp->i_queued) { queued_stuff_free(imp->i_queued); @@ -371,7 +371,7 @@ void libpd_queued_release() { } } -void libpd_queued_receive_pd_messages() { +void libpd_queued_receive_pd_messages(void) { queued_stuff *queued = QUEUEDSTUFF; size_t available = rb_available_to_read(queued->pd_receive_buffer); if (!available) return; @@ -412,7 +412,7 @@ void libpd_queued_receive_pd_messages() { } } -void libpd_queued_receive_midi_messages() { +void libpd_queued_receive_midi_messages(void) { queued_stuff *queued = QUEUEDSTUFF; size_t available = rb_available_to_read(queued->midi_receive_buffer); if (!available) return; diff --git a/src/z_queued.h b/src/z_queued.h index c3104409d..1c6f05dc9 100644 --- a/src/z_queued.h +++ b/src/z_queued.h @@ -96,20 +96,20 @@ EXTERN void libpd_set_queued_midibytehook(const t_libpd_midibytehook hook); /// libpd_set_queued_printhook(pdprint); /// ... /// -EXTERN int libpd_queued_init(); +EXTERN int libpd_queued_init(void); /// free the queued ringbuffers /// with multiple instances, call before freeing each instance: /// libpd_set_instance(pd1); /// libpd_queued_release(); /// libpd_free_instance(pd1); -EXTERN void libpd_queued_release(); +EXTERN void libpd_queued_release(void); /// process and dispatch received messages in message ringbuffer -EXTERN void libpd_queued_receive_pd_messages(); +EXTERN void libpd_queued_receive_pd_messages(void); /// process and dispatch receive midi messages in MIDI message ringbuffer -EXTERN void libpd_queued_receive_midi_messages(); +EXTERN void libpd_queued_receive_midi_messages(void); #ifdef __cplusplus } From 5e4b6e123ed7a2dd04fe8e83d5577f63cfe2ece6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 12 Apr 2024 12:24:12 +0200 Subject: [PATCH 210/450] fix signature of bang_tilde_new() Related: https://github.com/pure-data/pure-data/issues/2258#issuecomment-2051381833 --- src/d_misc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_misc.c b/src/d_misc.c index 1df355b5f..fe4bd9e3f 100644 --- a/src/d_misc.c +++ b/src/d_misc.c @@ -105,7 +105,7 @@ static void bang_tilde_free(t_bang *x) clock_free(x->x_clock); } -static void *bang_tilde_new(t_symbol *s) +static void *bang_tilde_new(void) { t_bang *x = (t_bang *)pd_new(bang_tilde_class); x->x_clock = clock_new(x, (t_method)bang_tilde_tick); From 0727dd52b29c703f46b3406512ccb06cfa5a3522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 12 Apr 2024 12:34:29 +0200 Subject: [PATCH 211/450] adjust argumentlist of MIDI-functions to the prototype Related: https://github.com/pure-data/pure-data/issues/2258 --- src/x_midi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/x_midi.c b/src/x_midi.c index e2bcc8dad..6b2452154 100644 --- a/src/x_midi.c +++ b/src/x_midi.c @@ -75,13 +75,13 @@ static void midiin_setup(void) { midiin_class = class_new(gensym("midiin"), (t_newmethod)midiin_new, (t_method)midiin_free, sizeof(t_midiin), - CLASS_NOINLET, A_DEFFLOAT, 0); + CLASS_NOINLET, 0); class_addlist(midiin_class, midiin_list); class_sethelpsymbol(midiin_class, gensym("midi")); sysexin_class = class_new(gensym("sysexin"), (t_newmethod)sysexin_new, (t_method)sysexin_free, sizeof(t_midiin), - CLASS_NOINLET, A_DEFFLOAT, 0); + CLASS_NOINLET, 0); class_addlist(sysexin_class, midiin_list); class_sethelpsymbol(sysexin_class, gensym("midi")); } @@ -600,7 +600,7 @@ static void midiout_list(t_midiout *x, t_symbol *s, int ac, t_atom *av) static void midiout_setup(void) { midiout_class = class_new(gensym("midiout"), (t_newmethod)midiout_new, 0, - sizeof(t_midiout), 0, A_DEFFLOAT, A_DEFFLOAT, 0); + sizeof(t_midiout), 0, A_DEFFLOAT, 0); class_addfloat(midiout_class, midiout_float); class_addlist(midiout_class, midiout_list); class_sethelpsymbol(midiout_class, gensym("midi")); From 4dd4a451f7da68545d5e448c2a72dcecbf976af5 Mon Sep 17 00:00:00 2001 From: Mike Will Date: Tue, 8 Nov 2022 17:55:42 -0500 Subject: [PATCH 212/450] m_binbuf: use strtol's endptr to skip walking through dollar string strtol is the same as atol. The latter makes a call to the former, but atol leaves out additional parameters, such as strtol's end pointer, which we can use to more quickly and efficiently determine the length of the dollarsym's index. --- src/m_binbuf.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/m_binbuf.c b/src/m_binbuf.c index e63744782..561b96b38 100644 --- a/src/m_binbuf.c +++ b/src/m_binbuf.c @@ -485,18 +485,10 @@ int canvas_getdollarzero(void); static int binbuf_expanddollsym(const char *s, char *buf, t_atom *dollar0, int ac, const t_atom *av, int tonew) { - int argno = (int)atol(s); - int arglen = 0; - const char *cs = s; - char c = *cs; + char *cs; + int argno = (int)strtol(s, &cs, 10); *buf=0; - while (c && (c>='0') && (c<='9')) - { - c = *cs++; - arglen++; - } - if (cs==s) /* invalid $-expansion (like "$bla") */ { sprintf(buf, "$"); @@ -518,7 +510,7 @@ static int binbuf_expanddollsym(const char *s, char *buf, t_atom *dollar0, } else atom_string(dollarvalue, buf, MAXPDSTRING/2-1); } - return (arglen-1); + return (cs - s); } /* expand any '$' variables in the symbol s. "tonow" is set if this is in the From aaae7ce3ca3355afe5361fada7e13a67108f1173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 12 Apr 2024 18:46:52 +0200 Subject: [PATCH 213/450] adjust argumentlist of [midirealtimein] to the prototype Related: https://github.com/pure-data/pure-data/issues/2258 --- src/x_midi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/x_midi.c b/src/x_midi.c index 6b2452154..08828a75b 100644 --- a/src/x_midi.c +++ b/src/x_midi.c @@ -544,7 +544,7 @@ static void midirealtimein_setup(void) { midirealtimein_class = class_new(gensym("midirealtimein"), (t_newmethod)midirealtimein_new, (t_method)midirealtimein_free, - sizeof(t_midirealtimein), CLASS_NOINLET, A_DEFFLOAT, 0); + sizeof(t_midirealtimein), CLASS_NOINLET, 0); class_addlist(midirealtimein_class, midirealtimein_list); class_sethelpsymbol(midirealtimein_class, gensym("midi")); } From 236ed4ba0d978328b5b3f474edacd253ca96a116 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 15:08:01 -0300 Subject: [PATCH 214/450] minor cosmetic changes to help-intro as suggested by @ben-wes --- doc/5.reference/help-intro.pd | 1012 +++++++++++++++++---------------- 1 file changed, 507 insertions(+), 505 deletions(-) diff --git a/doc/5.reference/help-intro.pd b/doc/5.reference/help-intro.pd index 08d12dc53..7bf21e8bd 100644 --- a/doc/5.reference/help-intro.pd +++ b/doc/5.reference/help-intro.pd @@ -1,507 +1,509 @@ -#N canvas 409 36 591 628 12; +#N canvas 574 23 590 723 12; #X declare; -#X obj 46 2475 delay; -#X obj 46 2522 metro; -#X obj 46 2546 line; -#X obj 46 2570 timer; -#X obj 46 2594 cputime; -#X obj 46 2618 realtime; -#X text 178 2623 - measure real time; -#X obj 46 2499 pipe; -#X obj 48 3017 random; -#X obj 176 3048 max; -#X obj 208 3048 min; -#X obj 48 2986 clip; -#X obj 48 3538 notein; -#X obj 98 3538 ctlin; -#X obj 140 3538 pgmin; -#X obj 183 3538 bendin; -#X obj 231 3538 touchin; -#X obj 48 3562 polytouchin; -#X obj 298 3551 midiin; -#X obj 133 3562 sysexin; -#X text 357 3552 - MIDI input; -#X obj 47 3594 noteout; -#X obj 104 3594 ctlout; -#X obj 153 3594 pgmout; -#X obj 204 3594 bendout; -#X obj 47 3616 touchout; -#X obj 114 3616 polytouchout; -#X obj 208 3616 midiout; -#X text 273 3604 - MIDI output; -#X obj 47 3646 makenote; -#X obj 47 3671 stripnote; -#X text 178 3670 - strip "note off" messages; -#X obj 55 1117 tabread; -#X obj 55 1140 tabread4; -#X obj 55 1163 tabwrite; -#X obj 55 1187 soundfiler; -#X obj 42 6190 loadbang; -#X obj 56 1544 qlist; -#X obj 47 3696 poly; -#X obj 46 5006 clip~; -#X obj 46 4969 wrap~; -#X obj 50 7429 framp~; -#X obj 49 4301 dac~; -#X text 174 4301 - audio output; -#X obj 49 4275 adc~; -#X text 174 4275 - audio input; -#X obj 49 4326 sig~; -#X text 174 4326 - convert numbers to audio signals; -#X obj 49 4350 line~; -#X obj 49 4374 vline~; -#X obj 49 4447 snapshot~; -#X obj 49 4471 vsnapshot~; -#X obj 49 4521 bang~; -#X obj 49 4545 samplerate~; -#X obj 49 4570 send~; -#X obj 92 4570 receive~; -#X obj 49 4597 throw~; -#X obj 100 4597 catch~; -#X obj 43 6448 block~; -#X obj 49 4624 readsf~; -#X text 174 4624 - soundfile playback from disk; -#X obj 49 4648 writesf~; -#X obj 43 5376 phasor~; -#X obj 43 5400 cos~; -#X obj 43 5424 osc~; -#X obj 43 5496 tabwrite~; -#X obj 43 5472 tabplay~; -#X text 173 5472 - play back from a table (non-transposing); -#X obj 43 5520 tabread~; -#X obj 43 5544 tabread4~; -#X obj 43 5448 tabosc4~; -#X obj 43 5568 tabsend~; -#X text 173 5568 - write one block continuously to a table; -#X obj 43 5592 tabreceive~; -#X text 173 5592 - read one block continuously from a table; -#X obj 42 5699 vcf~; -#X obj 43 5351 noise~; -#X obj 49 4424 env~; -#X text 174 4423 - envelope follower; -#X obj 42 5726 hip~; -#X obj 42 5750 lop~; -#X obj 42 5800 bp~; -#X obj 42 5824 biquad~; -#X obj 49 4497 samphold~; -#X text 174 4496 - sample and hold unit; -#X obj 49 4673 print~; -#X text 174 4673 - print out one or more "blocks"; -#X obj 42 5850 rpole~; -#X obj 42 5874 rzero~; -#X obj 42 5898 rzero_rev~; -#X obj 42 5923 cpole~; -#X obj 99 5923 czero~; -#X obj 42 6029 delwrite~; -#X obj 42 6053 delread~; +#X obj 54 2364 delay; +#X obj 54 2416 metro; +#X obj 54 2442 line; +#X obj 54 2468 timer; +#X obj 54 2494 cputime; +#X obj 54 2520 realtime; +#X text 183 2519 - measure real time; +#X obj 54 2390 pipe; +#X obj 54 2867 random; +#X obj 174 2907 max; +#X obj 204 2907 min; +#X obj 54 2841 clip; +#X obj 54 3363 notein; +#X obj 105 3363 ctlin; +#X obj 149 3363 pgmin; +#X obj 193 3363 bendin; +#X obj 244 3363 touchin; +#X obj 54 3387 polytouchin; +#X obj 302 3376 midiin; +#X obj 139 3387 sysexin; +#X obj 54 3427 noteout; +#X obj 112 3427 ctlout; +#X obj 163 3427 pgmout; +#X obj 214 3427 bendout; +#X obj 54 3451 touchout; +#X obj 120 3451 polytouchout; +#X obj 214 3451 midiout; +#X obj 54 3491 makenote; +#X obj 54 3517 stripnote; +#X text 183 3516 - strip "note off" messages; +#X obj 54 1026 tabread; +#X obj 54 1052 tabread4; +#X obj 54 1078 tabwrite; +#X obj 54 1104 soundfiler; +#X obj 54 6071 loadbang; +#X obj 54 1468 qlist; +#X obj 54 3543 poly; +#X obj 54 4884 clip~; +#X obj 54 4844 wrap~; +#X obj 54 7357 framp~; +#X obj 54 4093 dac~; +#X text 183 4092 - audio output; +#X obj 54 4067 adc~; +#X text 183 4066 - audio input; +#X obj 54 4119 sig~; +#X text 183 4118 - convert numbers to audio signals; +#X obj 54 4145 line~; +#X obj 54 4171 vline~; +#X obj 54 4249 snapshot~; +#X obj 54 4275 vsnapshot~; +#X obj 54 4327 bang~; +#X obj 54 4353 samplerate~; +#X obj 54 4393 send~; +#X obj 98 4393 receive~; +#X obj 54 4433 throw~; +#X obj 105 4433 catch~; +#X obj 54 6373 block~; +#X obj 54 4473 readsf~; +#X text 183 4472 - soundfile playback from disk; +#X obj 54 4499 writesf~; +#X obj 54 5250 phasor~; +#X obj 54 5276 cos~; +#X obj 54 5302 osc~; +#X obj 54 5380 tabwrite~; +#X obj 54 5354 tabplay~; +#X text 183 5354 - play back from a table (non-transposing); +#X obj 54 5406 tabread~; +#X obj 54 5432 tabread4~; +#X obj 54 5328 tabosc4~; +#X obj 54 5458 tabsend~; +#X text 183 5458 - write one block continuously to a table; +#X obj 54 5484 tabreceive~; +#X text 183 5484 - read one block continuously from a table; +#X obj 54 5575 vcf~; +#X obj 54 5224 noise~; +#X obj 54 4223 env~; +#X text 183 4222 - envelope follower; +#X obj 54 5601 hip~; +#X obj 54 5627 lop~; +#X obj 54 5679 bp~; +#X obj 54 5705 biquad~; +#X obj 54 4301 samphold~; +#X text 183 4300 - sample and hold unit; +#X obj 54 4525 print~; +#X text 183 4524 - print out one or more "blocks"; +#X obj 54 5745 rpole~; +#X text 183 5744 - raw real-valued one-pole filter; +#X obj 54 5771 rzero~; +#X text 183 5770 - raw real-valued one-zero filter; +#X obj 54 5797 rzero_rev~; +#X obj 54 5837 cpole~; +#X obj 105 5837 czero~; +#X obj 54 5928 delwrite~; +#X obj 54 5954 delread~; #N canvas 52 50 450 300 (subpatch) 0; -#X restore 42 6318 pd; -#X obj 55 1216 table; -#X obj 42 6344 inlet; -#X obj 42 6370 outlet; -#X obj 42 6396 inlet~; -#X obj 96 6396 outlet~; -#X obj 44 6564 struct; -#X obj 44 6612 drawcurve; -#X obj 121 6612 filledcurve; -#X obj 44 6588 drawpolygon; -#X obj 136 6588 filledpolygon; -#X obj 44 6663 plot; -#X obj 44 6637 drawnumber; -#X obj 45 6719 pointer; -#X obj 45 6743 get; -#X obj 45 6767 set; -#X obj 45 6791 element; -#X obj 45 6815 getsize; -#X obj 45 6839 setsize; -#X obj 45 6863 append; -#X obj 45 6690 scalar; -#X obj 155 5923 czero_rev~; -#X obj 49 4398 threshold~; -#X obj 83 4907 min~; -#X obj 46 4907 max~; -#X obj 81 3048 -; -#X obj 114 3048 *; -#X obj 146 3048 /; -#X obj 49 3048 +; -#X obj 46 4883 +~; -#X obj 76 4883 -~; -#X obj 105 4883 *~; -#X obj 135 4883 /~; -#X obj 42 6215 declare; -#X text 174 6395 - signal versions, f 48; -#X obj 158 4907 pow~; -#X obj 121 4907 log~; -#X obj 89 4969 exp~; -#X obj 46 4943 abs~; -#X text 178 3645 - schedule delayed "note off" message for a note-on; -#X obj 55 1589 textfile; -#X obj 83 4943 sqrt~; -#X obj 47 3722 oscparse; -#X obj 47 3746 oscformat; -#X obj 45 6986 sigmund~; -#X obj 45 7011 bonk~; -#X obj 45 7036 choice; -#X obj 45 7061 hilbert~; -#X obj 45 7089 complex-mod~; -#X obj 45 7117 loop~; -#X obj 45 7144 lrshift~; -#X obj 46 7170 pd~; -#X obj 46 7227 rev1~; -#X obj 91 7227 rev2~, f 7; -#X obj 149 7227 rev3~, f 7; -#X text 207 7227 - reverberators; -#X obj 46 7197 stdout; -#X obj 46 7254 bob~; -#X obj 42 6265 clone; -#X obj 190 3562 midirealtimein; -#X obj 42 6079 delread4~; -#X obj 126 4943 rsqrt~; -#X obj 50 7521 q8_sqrt~; -#X obj 50 7548 q8_rsqrt~; -#X obj 46 4851 expr~; -#X obj 47 2954 expr; -#X obj 93 4851 fexpr~; -#X text 178 2955 - C-style expressions; -#X obj 126 6637 drawsymbol; -#X obj 207 6637 drawtext; -#X obj 42 6239 savestate; -#X obj 42 5775 slop~, f 7; -#X obj 42 6291 pdcontrol; -#X obj 51 7459 fiddle~; -#X obj 112 7459 pique; -#X text 200 255 click and open for all Graphical User Interface (GUI) objects in Pd, f 48; -#X text 173 5376 - phase ramp generator; -#X text 175 6689 - create a single scalar (experimental); -#X obj 42 6422 namecanvas; -#X text 175 6421 - attach a name to a pd window, f 48; -#X text 173 5400 - cosine wavetable; -#X obj 46 7285 output~; -#X text 178 2480 - send a bang message after a time delay; -#X text 178 2527 - send a bang message periodically (a la metronome); -#X obj 54 256 all_guis; -#X text 175 6564 - define a data structure template; -#X text 274 6636 - draw number/symbol/text fields; -#X text 175 6743 - get field values (floats/symbols) from a scalar; -#X text 175 6767 - set field values (floats/symbols) of a scalar; -#X text 175 6863 - add a scalar to a Data Structure list; -#X obj 55 831 list append; -#X obj 55 856 list prepend; -#X obj 55 930 list trim; -#X obj 55 905 list split; -#X text 185 830 - append the second list to the first; -#X text 186 857 - prepend the second list to the first; -#X text 186 906 - split a list in two; -#X text 186 930 - trim the "list" selector off; -#X text 186 954 - output number of items in list; -#X obj 55 955 list length; -#X obj 55 980 list fromsymbol; -#X obj 55 1005 list tosymbol; -#X text 185 882 - build up or break down a list; -#X obj 55 881 list store; -#X text 187 979 - convert symbols to numeric characters; -#X text 187 1006 - convert numeric characters to symbols; -#X obj 56 1275 array size; -#X obj 56 1253 array define; -#X obj 56 1297 array sum; -#X obj 56 1363 array quantile; -#X obj 56 1319 array get; -#X obj 56 1341 array set; -#X obj 56 1385 array random; -#X obj 56 1407 array max; -#X obj 56 1430 array min; -#X text 186 1385 - array as weighted probabilities; -#X text 187 1253 - create \, store \, and/or edit an array; -#X text 187 1275 - get or change array size; -#X text 187 1297 - sum all or a range of array's elements; -#X text 186 1319 - get array contents as a list; -#X text 186 1341 - set array contents from a list; -#X text 186 1363 - get array quantile; -#X text 186 1407 - find highest value in array; -#X text 186 1430 - find lowest value in array; -#X obj 48 3177 sin; -#X obj 81 3177 cos; -#X obj 113 3177 tan; -#X obj 145 3177 atan; -#X obj 183 3177 atan2; -#X obj 76 3141 sqrt; -#X obj 238 3048 log; -#X obj 148 3141 exp; -#X obj 48 3141 abs; -#X obj 113 3141 wrap; -#X obj 266 3048 pow; -#X obj 48 3081 >; -#X obj 76 3081 >=; -#X obj 132 3081 <=; -#X obj 104 3081 <; -#X obj 161 3081 ==; -#X obj 189 3081 !=; -#X obj 217 3081 div; -#X obj 217 3105 mod; -#X obj 48 3105 &&; -#X obj 76 3105 ||; -#X obj 104 3105 &; -#X obj 132 3105 |; -#X obj 160 3105 <<; -#X obj 189 3105 >>; -#X text 177 3017 - pseudo random integers; -#X msg 95 6448 switch~; -#X text 175 6444 - set block size \, overlap and up/downsampling (also switch subpatches if invoked as [switch~]), f 48; -#X obj 55 1636 text define; -#X obj 55 1659 text get; -#X obj 55 1757 text size; -#X obj 55 1683 text set; -#X obj 55 1781 text tolist; -#X obj 55 1805 text fromlist; -#X obj 55 1828 text search; -#X obj 55 1851 text sequence; -#X obj 55 1732 text delete; -#X obj 55 1707 text insert; -#X text 188 1635 - create \, store \, and/or edit a text; -#X text 188 1658 - get a line from a text; -#X text 188 1682 - replace or add a line to a text; -#X text 188 1706 - insert a line to a text; -#X text 188 1731 - delete a line or clear text; -#X text 188 1756 - get number of lines in a text; -#X text 188 1780 - convert a text into list; -#X text 188 1804 - convert from a list to a text; -#X text 188 1827 - search for a line in a text; -#X text 188 1850 - text based sequencer/message-sender; -#X text 188 1584 - read/write text files (rather deprecated \, check the ones below instead), f 43; -#X obj 55 1969 file handle; -#X obj 55 2164 file stat; -#X text 188 1968 - read/write binary files; -#X text 185 2107 - find a file in Pd's search-path; -#X text 185 2136 - list files in directories; -#X obj 55 2136 file glob; -#X obj 55 2106 file which; -#X obj 55 2023 file mkdir; -#X text 189 2024 - create a directory; -#X obj 56 2270 file delete; -#X text 194 2271 - delete files and directories; -#X obj 56 2215 file copy; -#X text 194 2216 - copy files; -#X obj 56 2242 file move; -#X text 194 2243 - move files; -#X obj 56 2305 file split; -#X obj 56 2330 file join; -#X obj 137 2305 file splitext; -#X obj 130 2330 file splitname; -#X text 255 2331 - filename operations; -#X obj 56 2189 file isfile; -#X obj 127 2164 file isdirectory; -#X obj 146 2189 file size; -#X text 256 2167 - get information on existing files, f 18; -#X obj 55 1996 file define \$0.f; -#X text 188 1995 - shared file handles; -#X obj 48 4221 snake~ in; -#X obj 48 4248 snake~ out; -#X text 174 4220 - combine mono signals into multichannel signals; -#X text 174 4247 - split multichannel signals into mono signals; -#X text 22 218 ----------------------------------- GUIs -----------------------------------, f 76; -#X text 15 1087 ------------------------------ ARRAYS/TABLES -------------------------------, f 77; -#X text 3 4187 --------------------------- GENERAL AUDIO TOOLS ----------------------------, f 77; -#X text 3 5317 ----------------------- AUDIO GENERATORS AND TABLES ------------------------, f 77; -#X text 9 6005 ---------------------------- AUDIO DELAY -----------------------------------, f 76; -#X text 8 5673 ---------------------------- AUDIO FILTERS ---------------------------------, f 76; -#X text 1 6164 ---------------------------- PATCH/SUBPATCH ---------------------------------, f 77; -#X text -2 6534 ------------------------------ DATA STRUCTURES -------------------------------, f 79; -#X text 3 6948 ----------------- "EXTRA" (patches and externs in pd/extra) ------------------, f 78; -#X text 7 7665 ------------------------------------------------------------------------------, f 78; -#X text 15 26 ------------------------------------------------------------------------------, f 78; -#X text 16 1512 ------------------------------ TEXT MANAGEMENT ------------------------------, f 78; -#X text 13 1933 ----------------------------- FILE MANAGEMENT ------------------------------, f 78; -#X text 19 745 ----------------------------- LIST MANAGEMENT -------------------------------, f 78; -#X obj 54 373 bang; -#X obj 55 502 float; -#X text 185 502 - store and recall a number; -#X obj 55 579 symbol; -#X text 185 579 - store and recall a symbol; -#X obj 55 528 int; -#X text 185 528 - store and recall an integer; -#X obj 55 635 send; -#X obj 55 659 receive; -#X obj 54 424 route; -#X text 185 425 - route messages according to first element; -#X obj 54 775 pack; -#X obj 54 800 unpack; -#X obj 54 398 trigger; -#X obj 54 475 print; -#X text 185 476 - print out messages; -#X obj 55 606 makefilename; -#X obj 54 449 swap; -#X text 186 450 - swap two numbers; -#X obj 55 553 value; -#X text 185 553 - shared numeric value; -#X obj 48 3932 netsend; -#X obj 48 3958 netreceive; -#X text 177 3931 - send messages over a network connection; -#X text 177 3957 - receive messages over a network connection; -#X text 186 373 - convert to a bang message; -#X text 185 607 - format a symbol name with a variable field; -#X text 185 635 - send messages without patch cords; -#X text 185 659 - receive messages without patch cords; -#X obj 46 2733 select; -#X obj 46 2791 spigot; -#X obj 46 2818 moses; -#X text 178 2817 - part a numeric stream; -#X obj 46 2846 until; -#X obj 46 2763 change; -#X text 178 2762 - eliminate repeated numbers; -#X text 178 2790 - pass or block messages; -#X text 178 2845 - bang loop mechanism; -#X obj 48 4065 trace; -#X text 178 4064 - message tracing for debugging; -#X obj 48 3855 openpanel; -#X obj 48 3878 savepanel; -#X obj 48 4039 bag; -#X obj 48 3904 key; -#X obj 76 3904 keyup; -#X obj 118 3904 keyname; -#X text 178 4038 - collection of numbers; -#X obj 48 3986 fudiparse; -#X obj 48 4012 fudiformat; -#X text 178 3985 - convert FUDI messages to Pd messages; -#X text 178 4011 - convert Pd messages to FUDI message; -#X text 13 3828 ----------------------------------- MISC -----------------------------------, f 76; -#X text 178 3745 - convert lists to OSC packets; -#X text 178 3721 - parse OSC packets into Pd messages; -#X text 175 7491 (use [struct] now); -#X text 174 4374 - deluxe [line~]; -#X text 174 4471 - deluxe [snapshot~]; -#X text 124 255 <--------; -#X text 3 7397 ------------------------ OBSOLETE / DEPRECATED -------------------------------, f 78; -#X text 176 7522 (fast \, cheap 8 bits versions of square root functions \, use [srqt~]/[rsqrt~] instead), f 43; -#X text 3 5083 ---------------------- SIGNAL ACOUSTIC CONVERSIONS --------------------------, f 77; -#X obj 46 5114 mtof~; -#X obj 46 5139 ftom~; -#X obj 46 5163 dbtorms~; -#X obj 46 5186 rmstodb~; -#X obj 46 5210 dbtopow~; -#X obj 47 5234 powtodb~; -#X text 177 3297 - MIDI pitch to Frequency in hertz; -#X text 177 3347 - dB to linear "RMS"; -#X text 177 3371 - linear "RMS" to dB; -#X text 177 3395 - dB to power unit (square of "RMS"); -#X text 177 3418 - power unit (square of "RMS") to dB; -#X text 177 3323 - frequency in hertz to MIDI pitch; -#X text 10 3266 -------------------------- ACOUSTIC CONVERSIONS -----------------------------, f 77; -#X obj 53 3297 mtof; -#X obj 53 3322 ftom; -#X obj 53 3346 dbtorms; -#X obj 53 3369 rmstodb; -#X obj 53 3393 dbtopow; -#X obj 54 3417 powtodb; -#X text 185 399 - sequence messages in right-to-left order; -#X text 185 776 - combine atoms into a list; -#X text 185 801 - split lists into atoms; -#X text 187 1117 - non-interpolating table lookup; -#X text 187 1140 - 4-point-interpolating table lookup; -#X text 187 1163 - write numbers to a table; -#X text 187 1187 - import/export soundfiles to/from arrays; -#X text 178 2551 - timed ramp generator; -#X text 178 2575 - measure logical time; -#X text 178 2599 - measure CPU time/usage; -#X text 178 2504 - message "delay line"; -#X text 178 2732 - compare numbers or symbols; -#X text 177 2987 - bound a number between two limits; -#X text 178 3695 - MIDI-style polyphonic voice allocator; -#X text 178 3855 - query for files or directories; -#X text 178 3878 - query you for the name of a file to create; -#X text 177 3903 - grab keyboard input; -#X text 174 4350 - audio ramp generator; -#X text 174 4398 - detect signal thresholds (schmitt trigger); -#X text 174 4447 - convert a signal to a number on demand; -#X text 174 4521 - output a bang after each DSP block; -#X text 174 4545 - get sample rate; -#X text 174 4569 - one-to-many nonlocal signal(s) connection; -#X text 174 4596 - summing signal bus and non-local connection; -#X text 174 4648 - record audio signals to a soundfile; -#X obj 46 4826 fft~; -#X obj 96 4827 ifft~; -#X text 175 4825 - forward and inverse complex FFT; -#X obj 46 4802 rfft~; -#X obj 96 4803 rifft~; -#X text 175 4801 - forward and inverse real FFT; -#X text 93 5006 - bound a signal between two limits; -#X text 174 5114 - MIDI pitch to Frequency in hertz for signals; -#X text 174 5140 - frequency in hertz to MIDI pitch for signals; -#X text 174 5164 - dB to linear "RMS" for signals; -#X text 174 5188 - linear "RMS" to dB for signals; -#X text 174 5212 - dB to power unit (square of "RMS") for signals; -#X text 174 5235 - power unit (square of "RMS") to dB for signals; -#X text 174 5351 - uniformly distributed white noise; -#X text 173 5424 - cosine wave oscillator; -#X text 173 5448 - 4-point interpolating wavetable oscillator; -#X text 173 5496 - write a signal in an array; -#X text 173 5520 - non-interpolating table lookup for signals; -#X text 173 5544 - 4-point-interpolating table lookup for signals; -#X text 173 5699 - voltage-controlled band/low-pass filter; -#X text 173 5774 - slew-limiting / low pass filter; -#X text 173 5799 - 2-pole band-pass filter; -#X text 173 6029 - writes a signal in a delay line; -#X text 173 6053 - read a signal from a delay line (no interpolation); -#X text 172 6079 - read from a delay line with 4-point interpolation; -#X text 172 6215 - set search path and/or libraries for the patch; -#X text 172 6190 - send a "bang" when loading the patch, f 48; -#X text 172 6239 - mechanism for saving the state of an abstraction; -#X text 173 6291 - get patch/window information; -#X text 175 6266 - make multiple copies of an abstraction; -#X text 188 1209 - create a subwindow with an array (rather deprecated \, check [array define] instead), f 42; -#X text 186 1542 - text-based sequencer (rather deprecated \, check [text sequence] instead), f 42; -#X text 173 6317 - create a subpatch; -#X text 174 6346 - add an inlet to a subpatch/abstraction, f 48; -#X text 174 6370 - add an outlet to a pd subpatch/abstraction, f 48; -#X text 175 6663 - draw array in a scalar; -#X text 238 6588 - draw polygon shapes in a scalar; -#X text 209 6612 - draw shapes with bezier curve in a scalar; -#X text 175 6719 - store the location of a scalar in a list; -#X text 175 6791 - get pointer to a Data Structure's array element; -#X text 175 6815 - get the size of a Data Structure's array; -#X text 175 6839 - change the size of a Data Structure's array; -#X text 175 7011 - attack detection and spectral envelope measurement; -#X text 175 6986 - signal analyzer (pitch/amplitude and more); -#X text 175 7036 - search for a best match to an incoming list; -#X text 175 7060 - hilbert transform; -#X text 175 7089 - complex amplitude modulator (frequency shifter); -#X text 175 7118 - phase generator for looping samplers; -#X text 175 7144 - shift block elements left or right; -#X text 175 7168 - run a Pd sub-proccess (for multiprocessing); -#X text 175 7195 - standard output for sub-process; -#X text 175 7256 - Moog analog lowpass resonant filter simulation; -#X text 175 7293 - simple stereo output GUI abstraction; -#X text 223 7314 (used in the documentation); -#X text 175 7429 - FFT frequency estimate (use [sigmund~] now); -#X text 173 7459 - pitch/peaks estimate (use [sigmund~] now); -#X obj 49 7578 %; -#X text 177 7576 (use [mod] instead); -#X text 20 2453 ----------------------------- TIME -----------------------------------------, f 76; -#X text 20 2703 ------------------------------ LOGIC ---------------------------------------, f 76; -#X text 14 2928 ------------------------------- MATH ----------------------------------------, f 77; -#X text 13 3502 ------------------------------ MIDI/OSC -------------------------------------, f 77; -#X obj 50 7490 template; -#X text 14 338 ------------------------- GENERAL DATA MANAGEMENT ----------------------------, f 78; -#X text 251 3093 - other binary operators; -#X obj 384 139 pd-messages; -#X text 104 61 This file contains a list of built-in objects in Pd. Right-click (or control-click on a Macintosh) on any object to get its "help window"., f 54; -#X text 104 113 But first \, we here present a help file with messages you can send to Pd or canvas windows., f 54; -#X text 230 3176 - trigonometric functions; -#X text 300 3047 - binary (two-input) operators; -#X text 182 3140 - unary (one-input) operators; -#X text 202 4952 - unary (one-input) signal operators; -#X text 202 4891 - binary (two-input) signal operators; -#X obj 163 2356 file isabsolute; -#X obj 56 2356 file normalize; -#X obj 55 2049 file cwd; -#X text 185 2048 - get/set the current working directory; -#X obj 55 2075 file patchpath; -#X text 185 2074 - get path relative to the patch; -#X text -3 4771 ------------------------------- SIGNAL MATH ---------------------------------, f 77; -#X text 175 4849 - C-style expressions / filter expressions; -#X text 240 5922 - raw complex-valued variants; -#X text 173 5725 - 1-pole/1-zero high pass filter; -#X text 173 5749 - 1-pole low pass filter; -#X text 173 5823 - biquad 2nd order (2-pole/2-zero) filter; -#X text 173 5849 - raw real-valued 1-pole filter; -#X text 173 5873 - raw real-valued 1-zero filter; -#X text 173 5897 - raw real 1-zero "reverse" filter; +#X restore 54 6201 pd; +#X obj 54 1130 table; +#X obj 54 6267 inlet; +#X obj 54 6293 outlet; +#X obj 54 6333 inlet~; +#X obj 105 6333 outlet~; +#X obj 54 6464 struct; +#X obj 54 6530 drawcurve; +#X obj 126 6530 filledcurve; +#X obj 54 6504 drawpolygon; +#X obj 140 6504 filledpolygon; +#X obj 54 6596 plot; +#X obj 54 6556 drawnumber; +#X obj 54 6648 pointer; +#X obj 54 6674 get; +#X obj 54 6700 set; +#X obj 54 6726 element; +#X obj 54 6752 getsize; +#X obj 54 6778 setsize; +#X obj 54 6804 append; +#X obj 54 6622 scalar; +#X obj 156 5837 czero_rev~; +#X obj 54 4197 threshold~; +#X obj 91 4746 min~; +#X obj 54 4746 max~; +#X obj 84 2907 -; +#X obj 114 2907 *; +#X obj 144 2907 /; +#X obj 54 2907 +; +#X obj 54 4722 +~; +#X obj 84 4722 -~; +#X obj 114 4722 *~; +#X obj 144 4722 /~; +#X obj 54 6097 declare; +#X text 183 6332 - signal versions; +#X obj 91 4769 pow~; +#X obj 54 4769 log~; +#X obj 98 4844 exp~; +#X obj 54 4820 abs~; +#X text 183 3490 - schedule delayed "note off" message for a note-on; +#X obj 54 1508 textfile; +#X obj 91 4820 sqrt~; +#X obj 54 3569 oscparse; +#X obj 54 3595 oscformat; +#X obj 54 6897 sigmund~; +#X obj 54 6923 bonk~; +#X obj 54 6949 choice; +#X obj 54 6975 hilbert~; +#X obj 54 7001 complex-mod~; +#X obj 54 7027 loop~; +#X obj 54 7053 lrshift~; +#X obj 54 7079 pd~; +#X obj 54 7151 rev1~; +#X obj 98 7151 rev2~, f 6; +#X obj 149 7151 rev3~, f 7; +#X obj 54 7105 stdout; +#X obj 54 7191 bob~; +#X obj 54 6149 clone; +#X obj 195 3387 midirealtimein; +#X obj 54 5980 delread4~; +#X obj 135 4830 rsqrt~; +#X obj 54 7476 q8_sqrt~; +#X obj 54 7499 q8_rsqrt~; +#X obj 54 4682 expr~; +#X obj 54 2815 expr; +#X obj 98 4682 fexpr~; +#X text 183 2814 - C-style expressions; +#X obj 133 6556 drawsymbol; +#X obj 212 6556 drawtext; +#X obj 54 6123 savestate; +#X obj 54 5653 slop~, f 7; +#X obj 54 6175 pdcontrol; +#X obj 54 7383 fiddle~; +#X obj 112 7383 pique; +#X text 183 5250 - phase ramp generator; +#X text 183 6621 - create a single scalar (experimental); +#X obj 54 6227 namecanvas; +#X text 183 6226 - attach a name to a pd window; +#X text 183 5276 - cosine wavetable; +#X obj 54 7231 output~; +#X text 183 2363 - send a bang message after a time delay; +#X text 183 2415 - send a bang message periodically (a la metronome); +#X text 183 6463 - define a data structure template; +#X text 183 6673 - get field values (floats/symbols) from a scalar; +#X text 183 6699 - set field values (floats/symbols) of a scalar; +#X text 183 6803 - add a scalar to a Data Structure list; +#X obj 54 753 list append; +#X obj 54 779 list prepend; +#X obj 54 857 list trim; +#X obj 54 831 list split; +#X obj 54 883 list length; +#X obj 54 909 list fromsymbol; +#X obj 54 935 list tosymbol; +#X obj 54 805 list store; +#X obj 54 1196 array size; +#X obj 54 1170 array define; +#X obj 54 1222 array sum; +#X obj 54 1300 array quantile; +#X obj 54 1248 array get; +#X obj 54 1274 array set; +#X obj 54 1326 array random; +#X obj 54 1352 array max; +#X obj 54 1378 array min; +#X obj 54 3051 sin; +#X obj 84 3051 cos; +#X obj 114 3051 tan; +#X obj 144 3051 atan; +#X obj 181 3051 atan2; +#X obj 84 3011 sqrt; +#X obj 234 2907 log; +#X obj 158 3011 exp; +#X obj 54 3011 abs; +#X obj 121 3011 wrap; +#X obj 264 2907 pow; +#X obj 54 2947 >; +#X obj 84 2947 >=; +#X obj 144 2947 <=; +#X obj 114 2947 <; +#X obj 174 2947 ==; +#X obj 204 2947 !=; +#X obj 234 2947 div; +#X obj 234 2971 mod; +#X obj 54 2971 &&; +#X obj 84 2971 ||; +#X obj 114 2971 &; +#X obj 144 2971 |; +#X obj 174 2971 <<; +#X obj 204 2971 >>; +#X text 183 2866 - pseudo random integers; +#X obj 54 1548 text define; +#X obj 54 1574 text get; +#X obj 54 1678 text size; +#X obj 54 1600 text set; +#X obj 54 1704 text tolist; +#X obj 54 1730 text fromlist; +#X obj 54 1756 text search; +#X obj 54 1782 text sequence; +#X obj 54 1652 text delete; +#X obj 54 1626 text insert; +#X text 183 1729 - convert from a list to a text; +#X text 183 1755 - search for a line in a text; +#X text 183 1781 - text based sequencer/message-sender; +#X obj 54 1873 file handle; +#X obj 54 2069 file stat; +#X text 183 1872 - read/write binary files; +#X text 183 2002 - find a file in Pd's search-path; +#X text 183 2028 - list files in directories; +#X obj 54 2029 file glob; +#X obj 54 2003 file which; +#X obj 54 1925 file mkdir; +#X text 183 1924 - create a directory; +#X obj 54 2185 file delete; +#X text 183 2184 - delete files and directories; +#X obj 54 2133 file copy; +#X text 183 2132 - copy files; +#X obj 54 2159 file move; +#X text 183 2158 - move files; +#X obj 54 2225 file split; +#X obj 54 2249 file join; +#X obj 133 2225 file splitext; +#X obj 126 2249 file splitname; +#X obj 54 2093 file isfile; +#X obj 126 2069 file isdirectory; +#X obj 140 2093 file size; +#X obj 54 1899 file define \$0.f; +#X text 183 1898 - shared file handles; +#X obj 54 4013 snake~ in; +#X obj 54 4040 snake~ out; +#X text 183 4012 - combine mono signals into multichannel signals; +#X text 183 4039 - split multichannel signals into mono signals; +#X obj 54 324 bang; +#X obj 54 454 float; +#X obj 54 532 symbol; +#X obj 54 480 int; +#X obj 54 584 send; +#X obj 54 610 receive; +#X obj 54 376 route; +#X obj 54 701 pack; +#X obj 54 727 unpack; +#X obj 54 350 trigger; +#X obj 54 428 print; +#X obj 54 558 makefilename; +#X obj 54 402 swap; +#X obj 54 506 value; +#X obj 54 3792 netsend; +#X obj 54 3818 netreceive; +#X text 183 3791 - send messages over a network connection; +#X text 183 3817 - receive messages over a network connection; +#X obj 54 2611 select; +#X obj 54 2669 spigot; +#X obj 54 2696 moses; +#X text 183 2695 - part a numeric stream; +#X obj 54 2724 until; +#X obj 54 2641 change; +#X text 183 2640 - eliminate repeated numbers; +#X text 183 2668 - pass or block messages; +#X text 183 2723 - bang loop mechanism; +#X obj 54 3922 trace; +#X text 183 3921 - message tracing for debugging; +#X obj 54 3686 openpanel; +#X obj 54 3712 savepanel; +#X obj 54 3896 bag; +#X obj 54 3752 key; +#X obj 84 3752 keyup; +#X obj 128 3752 keyname; +#X text 183 3895 - collection of numbers; +#X obj 54 3844 fudiparse; +#X obj 54 3870 fudiformat; +#X text 183 3843 - convert FUDI messages to Pd messages; +#X text 183 3869 - convert Pd messages to FUDI message; +#X text 183 3594 - convert lists to OSC packets; +#X text 183 3568 - parse OSC packets into Pd messages; +#X text 183 4170 - deluxe [line~]; +#X text 183 4274 - deluxe [snapshot~]; +#X obj 54 4975 mtof~; +#X obj 54 5001 ftom~; +#X obj 54 5041 dbtorms~; +#X obj 54 5067 rmstodb~; +#X obj 54 5107 dbtopow~; +#X obj 54 5133 powtodb~; +#X text 183 3141 - MIDI pitch to Frequency in hertz; +#X text 183 3193 - dB to linear "RMS"; +#X text 183 3219 - linear "RMS" to dB; +#X text 183 3245 - dB to power unit (square of "RMS"); +#X text 183 3271 - power unit (square of "RMS") to dB; +#X text 183 3167 - frequency in hertz to MIDI pitch; +#X obj 54 3142 mtof; +#X obj 54 3168 ftom; +#X obj 54 3194 dbtorms; +#X obj 54 3220 rmstodb; +#X obj 54 3246 dbtopow; +#X obj 54 3272 powtodb; +#X text 183 2441 - timed ramp generator; +#X text 183 2467 - measure logical time; +#X text 183 2493 - measure CPU time/usage; +#X text 183 2389 - message "delay line"; +#X text 183 2610 - compare numbers or symbols; +#X text 183 2840 - bound a number between two limits; +#X text 183 3542 - MIDI-style polyphonic voice allocator; +#X text 183 3685 - query for files or directories; +#X text 183 3710 - query you for the name of a file to create; +#X text 183 4144 - audio ramp generator; +#X text 183 4196 - detect signal thresholds (schmitt trigger); +#X text 183 4248 - convert a signal to a number on demand; +#X text 183 4326 - output a bang after each DSP block; +#X text 183 4352 - get sample rate; +#X text 183 4392 - one-to-many nonlocal signal(s) connection; +#X text 183 4432 - summing signal bus and non-local connection; +#X text 183 4498 - record audio signals to a soundfile; +#X obj 54 4642 fft~; +#X obj 104 4642 ifft~; +#X text 183 4641 - forward and inverse complex FFT; +#X obj 54 4616 rfft~; +#X obj 104 4616 rifft~; +#X text 183 4615 - forward and inverse real FFT; +#X text 183 4883 - bound a signal between two limits; +#X text 183 4974 - MIDI pitch to Frequency in hertz for signals; +#X text 183 5000 - frequency in hertz to MIDI pitch for signals; +#X text 183 5040 - dB to linear "RMS" for signals; +#X text 183 5066 - linear "RMS" to dB for signals; +#X text 183 5106 - dB to power unit (square of "RMS") for signals; +#X text 183 5132 - power unit (square of "RMS") to dB for signals; +#X text 183 5224 - uniformly distributed white noise; +#X text 183 5302 - cosine wave oscillator; +#X text 183 5328 - 4-point interpolating wavetable oscillator; +#X text 183 5380 - write a signal in an array; +#X text 183 5406 - non-interpolating table lookup for signals; +#X text 183 5432 - 4-point-interpolating table lookup for signals; +#X text 183 5574 - voltage-controlled band/low-pass filter; +#X text 183 5600 - one-pole high pass filter; +#X text 183 5626 - one-pole low pass filter; +#X text 183 5652 - slew-limiting / low pass filter; +#X text 183 5678 - 2-pole band-pass filter; +#X text 183 5704 - raw biquad 2nd order filter; +#X text 183 5953 - read a signal from a delay line (no interpolation); +#X text 183 5979 - read from a delay line with 4-point interpolation; +#X text 183 6096 - set search path and/or libraries for the patch; +#X text 183 6070 - send a "bang" when loading the patch; +#X text 183 6122 - mechanism for saving the state of an abstraction; +#X text 183 6174 - get patch/window information; +#X text 183 6148 - make multiple copies of an abstraction; +#X text 183 6200 - create a subpatch; +#X text 183 6266 - add an inlet to a subpatch/abstraction; +#X text 183 6292 - add an outlet to a pd subpatch/abstraction; +#X text 183 6595 - draw array in a scalar; +#X text 183 6647 - store the location of a scalar in a list; +#X text 183 6725 - get pointer to a Data Structure's array element; +#X text 183 6751 - get the size of a Data Structure's array; +#X text 183 6777 - change the size of a Data Structure's array; +#X text 183 6922 - attack detection and spectral envelope measurement; +#X text 183 6896 - signal analyzer (pitch/amplitude and more); +#X text 183 6948 - search for a best match to an incoming list; +#X text 183 6974 - hilbert transform; +#X text 183 7000 - complex amplitude modulator (frequency shifter); +#X text 183 7026 - phase generator for looping samplers; +#X text 183 7052 - shift block elements left or right; +#X text 183 7078 - run a Pd sub-proccess (for multiprocessing); +#X text 183 7104 - standard output for sub-process; +#X text 183 7193 - Moog analog lowpass resonant filter simulation; +#X text 183 7356 - FFT frequency estimate (use [sigmund~] now); +#X text 183 7382 - pitch/peaks estimate (use [sigmund~] now); +#X obj 54 7435 %; +#X obj 54 7409 template; +#X obj 54 143 pd-messages; +#X obj 161 2273 file isabsolute; +#X obj 54 2273 file normalize; +#X obj 54 1951 file cwd; +#X text 183 1950 - get/set the current working directory; +#X obj 54 1977 file patchpath; +#X text 183 1976 - get path relative to the patch; +#X text 183 4680 - C-style expressions / filter expressions; +#X obj 18 19 cnv 1 539 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 183 323 - convert to a bang message; +#X text 183 349 - sequence messages in right-to-left order; +#X text 183 375 - route messages according to first element; +#X text 183 401 - swap two numbers; +#X text 183 427 - print out messages; +#X text 183 453 - store and recall a number; +#X text 183 479 - store and recall an integer; +#X text 183 505 - shared numeric value; +#X text 183 531 - store and recall a symbol; +#X text 183 583 - send messages without patch cords; +#X text 183 609 - receive messages without patch cords; +#X text 183 726 - split lists into atoms; +#X text 183 752 - append the second list to the first; +#X text 183 557 - format a symbol name with a variable field; +#X text 15 288 _________________________ GENERAL DATA MANAGEMENT ___________________________, f 77; +#X text 183 778 - prepend the second list to the first; +#X text 183 804 - build up or break down a list; +#X text 183 830 - split a list in two; +#X text 183 856 - trim the "list" selector off; +#X text 183 882 - output number of items in list; +#X text 183 908 - convert symbols to numeric characters; +#X text 15 665 _________________________ LIST MANAGEMENT ___________________________________, f 77; +#X text 15 990 _________________________ ARRAYS/TABLES _____________________________________, f 77; +#X text 15 1432 _________________________ TEXT MANAGEMENT ___________________________________, f 77; +#X text 15 1837 _________________________ FILE MANAGEMENT ___________________________________, f 77; +#X text 15 2328 _________________________ TIME ______________________________________________, f 77; +#X text 15 2575 _________________________ LOGIC _____________________________________________, f 77; +#X text 15 2779 _________________________ MATH ______________________________________________, f 77; +#X text 15 3106 _________________________ ACOUSTIC CONVERSIONS ______________________________, f 77; +#X text 15 3327 _________________________ MIDI/OSC __________________________________________, f 77; +#X text 15 3650 _________________________ MISC ______________________________________________, f 77; +#X text 15 3977 _________________________ GENERAL AUDIO TOOLS _______________________________, f 77; +#X text 15 4580 _________________________ SIGNAL MATH _______________________________________, f 77; +#X text 15 4939 _________________________ SIGNAL ACOUSTIC CONVERSIONS _______________________, f 77; +#X text 15 5188 _________________________ AUDIO GENERATORS AND TABLES _______________________, f 77; +#X text 15 5539 _________________________ AUDIO FILTERS _____________________________________, f 77; +#X text 15 5892 _________________________ AUDIO DELAY _______________________________________, f 77; +#X text 15 6035 _________________________ PATCH/SUBPATCH ____________________________________, f 77; +#X text 15 6428 _________________________ DATA STRUCTURES ___________________________________, f 77; +#X text 15 6859 _________________________ "EXTRA" (patches and externs in pd/extra) _________, f 77; +#X text 15 7325 _________________________ OBSOLETE / DEPRECATED _____________________________, f 77; +#X text 183 700 - combine atoms into a list; +#X text 183 1025 - non-interpolating table lookup; +#X text 183 1051 - 4-point-interpolating table lookup; +#X text 183 1077 - write numbers to a table; +#X text 183 934 - convert numeric characters to symbols; +#X text 183 1129 - create a subwindow with an array (rather deprecated \, check [array define] instead), f 43; +#X text 183 1103 - import/export soundfiles to/from arrays; +#X text 183 1169 - create \, store \, and/or edit an array; +#X text 183 1195 - get or change array size; +#X text 183 1221 - sum all or a range of array's elements; +#X text 183 1247 - get array contents as a list; +#X text 183 1273 - set array contents from a list; +#X text 183 1299 - get array quantile; +#X text 183 1325 - array as weighted probabilities; +#X text 183 1351 - find highest value in array; +#X text 183 1377 - find lowest value in array; +#X text 183 1467 - text-based sequencer (rather deprecated \, check [text sequence] instead), f 42; +#X text 183 1507 - read/write text files (rather deprecated \, check the ones below instead), f 43; +#X text 183 1547 - create \, store \, and/or edit a text; +#X text 183 1573 - get a line from a text; +#X text 183 1599 - replace or add a line to a text; +#X text 183 1625 - insert a line to a text; +#X text 183 1651 - delete a line or clear text; +#X text 183 1677 - get number of lines in a text; +#X text 183 1703 - convert a text into list; +#X obj 18 7552 cnv 1 539 1 empty empty empty 8 12 0 13 #000000 #000000 0; +#X text 183 5927 - writes a signal in a delay line; +#X text 183 5796 - real one-zero "reverse" filter; +#X text 356 3377 - MIDI input; +#X text 275 3439 - MIDI output; +#X text 190 3751 - grab keyboard input; +#X text 189 4829 - unary (one-input) signal operators; +#X text 241 6503 - draw polygon shapes in a scalar; +#X text 212 6529 - draw shapes with bezier curve in a scalar; +#X text 279 6555 - draw number/symbol/text fields; +#X text 210 7150 - reverberators; +#X text 183 4746 - binary (two-input) signal operators; +#X text 100 6373 [switch~]; +#X text 237 5836 - complex-valued variants; +#X text 191 3010 - unary (one-input) operators; +#X text 229 3050 - trigonometric functions; +#X text 267 2959 - other binary operators; +#X text 296 2906 - binary (two-input) operators; +#X text 235 2248 - filename operations; +#X text 249 2080 - get information on existing files; +#X text 183 7408 - use [struct] now; +#X text 183 7434 - use [mod] instead; +#X text 183 7476 - fast \, cheap 8 bits versions of square root functions (use [srqt~]/[rsqrt~] instead), f 46; +#X text 183 7230 - simple stereo output GUI abstraction, f 38; +#X text 197 7245 (used in the documentation), f 36; +#X text 183 6372 - set block size \, overlap and up/downsampling, f 49; +#X text 197 6388 (and switch subpatches if invoked as [switch~]); +#X text 67 80 But first \, we here present a help file with messages you can send to Pd or canvas windows., f 64; +#X text 67 41 This file contains a list of built-in objects in Pd. Right-click on any object to get its "help window"., f 64; +#X text 143 142 <-- click for messages you can send to Pd or canvases; +#X text 22 184 ----------------------------------- GUIs -----------------------------------, f 76; +#X text 172 225 click and open for all Graphical User Interface (GUI) objects in Pd, f 48; +#X obj 76 226 all_guis; +#X text 143 225 <--; From dab1faeb3ee294c3e810a9f7027fdcf7f1e8b769 Mon Sep 17 00:00:00 2001 From: danomatika Date: Sat, 13 Apr 2024 00:03:07 +0200 Subject: [PATCH 215/450] allow reading WAV and CAF headers with 64 bit samples (no sound yet) --- src/d_soundfile_caf.c | 6 +++--- src/d_soundfile_wave.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/d_soundfile_caf.c b/src/d_soundfile_caf.c index ef4d875b8..ac04b934c 100644 --- a/src/d_soundfile_caf.c +++ b/src/d_soundfile_caf.c @@ -248,12 +248,12 @@ static int caf_readheader(t_soundfile *sf) bytespersample = swap4(desc->ds_bitsperchannel, swap) / 8; switch (bytespersample) { - case 2: case 3: case 4: break; + case 2: case 3: case 4: case 8: break; default: errno = SOUNDFILE_ERRSAMPLEFMT; return 0; } - if (bytespersample == 4 && !(fmtflags & kCAFLinearPCMFormatFlagIsFloat)) + if ((bytespersample == 4 || bytespersample == 8) && !(fmtflags & kCAFLinearPCMFormatFlagIsFloat)) { errno = SOUNDFILE_ERRSAMPLEFMT; return 0; @@ -337,7 +337,7 @@ static int caf_writeheader(t_soundfile *sf, size_t nframes) caf_setchunksize((t_chunk *)&desc, CAFDESCSIZE - CAFCHUNKSIZE, swap); caf_setsamplerate(&desc, sf->sf_samplerate, swap); strncpy(desc.ds_fmtid, "lpcm", 4); - if (sf->sf_bytespersample == 4) + if (sf->sf_bytespersample == 4 || sf->sf_bytespersample == 8) uinttmp |= kCAFLinearPCMFormatFlagIsFloat; if (!sf->sf_bigendian) uinttmp |= kCAFLinearPCMFormatFlagIsLittleEndian; diff --git a/src/d_soundfile_wave.c b/src/d_soundfile_wave.c index 7cc112a04..5b97d7c04 100644 --- a/src/d_soundfile_wave.c +++ b/src/d_soundfile_wave.c @@ -111,7 +111,7 @@ typedef struct _factchunk /** returns 1 if format requires extended format and fact chunk */ static int wave_isextended(const t_soundfile *sf) { - return sf->sf_bytespersample == 4; + return sf->sf_bytespersample == 4 || sf->sf_bytespersample == 8; } /** read first chunk, returns filled chunk and offset on success or -1 */ @@ -285,7 +285,7 @@ static int wave_readheader(t_soundfile *sf) switch (bytespersample) { case 2: case 3: break; - case 4: + case 4: case 8: if (formattag == WAVE_FORMAT_FLOAT) /* 32 bit int? */ break; default: @@ -376,7 +376,7 @@ static int wave_writeheader(t_soundfile *sf, size_t nframes) headersize += WAVEHEADSIZE; /* format chunk */ - if (sf->sf_bytespersample == 4) + if (sf->sf_bytespersample == 4 || sf->sf_bytespersample == 8) format.fc_fmttag = swap2(WAVE_FORMAT_FLOAT, swap); if (isextended) { From 8503ad5be6c8f2ae74285e43a6da41fdee66fdd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Sat, 13 Apr 2024 22:46:40 +0200 Subject: [PATCH 216/450] wrapper around graph_array() to allow using it in emscripten an object-method (for anythingexcept pd_objectmaker) does not return anything, but emscripten is very sensitive to function signatures, so we cannot simply cast a ptr-returning function to a void-function... finally Closes: https://github.com/pure-data/pure-data/issues/2258 --- src/g_graph.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/g_graph.c b/src/g_graph.c index db6e77363..b6dbbf675 100644 --- a/src/g_graph.c +++ b/src/g_graph.c @@ -1132,6 +1132,16 @@ t_glist *glist_findgraph(t_glist *x) extern void canvas_menuarray(t_glist *canvas); + /* in emscripten, the function signatures must match exactly + (including the return type), so we need a (void)-returning wrapper + around graph_array() to be used as canvas-method + */ +static void _graph_array(t_glist *gl, t_symbol *s, t_symbol *templateargsym, + t_floatarg fsize, t_floatarg fflags) +{ + graph_array(gl, s, templateargsym, fsize, fflags); +} + void g_graph_setup_class(t_class *c) { class_setwidget(c, &graph_widgetbehavior); @@ -1145,7 +1155,7 @@ void g_graph_setup_class(t_class *c) A_FLOAT, A_FLOAT, A_FLOAT, 0); class_addmethod(c, (t_method)graph_ylabel, gensym("ylabel"), A_GIMME, 0); - class_addmethod(c, (t_method)graph_array, gensym("array"), + class_addmethod(c, (t_method)_graph_array, gensym("array"), A_SYMBOL, A_FLOAT, A_SYMBOL, A_DEFFLOAT, A_NULL); class_addmethod(c, (t_method)canvas_menuarray, gensym("menuarray"), A_NULL); From 50fabe1739e898ea6709fe1bec61e6f7d3662d11 Mon Sep 17 00:00:00 2001 From: danomatika Date: Sun, 14 Apr 2024 01:55:56 +0200 Subject: [PATCH 217/450] reading and writing WAV and CAF files with 64 bit samples now works --- src/d_soundfile.c | 121 ++++++++++++++++++++++++++++++++++++++++- src/d_soundfile_caf.c | 4 +- src/d_soundfile_wave.c | 6 +- 3 files changed, 126 insertions(+), 5 deletions(-) diff --git a/src/d_soundfile.c b/src/d_soundfile.c index 72ffdcdd7..fc186cbf7 100644 --- a/src/d_soundfile.c +++ b/src/d_soundfile.c @@ -43,6 +43,11 @@ typedef union _floatuint float f; uint32_t ui; } t_floatuint; +typedef union _doubleuint +{ + double d; + uint64_t ui; +} t_doubleuint; /* ----- soundfile ----- */ @@ -495,6 +500,34 @@ static void soundfile_xferin_sample(const t_soundfile *sf, int nvecs, } } } + else if (sf->sf_bytespersample == 8) + { + t_doubleuint alias; + if (sf->sf_bigendian) + { + for (j = 0, sp2 = sp, fp = vecs[i] + framesread; + j < nframes; j++, sp2 += sf->sf_bytesperframe, fp++) + { + alias.ui = (((uint64_t)sp2[0] << 56) | ((uint64_t)sp2[1] << 48) | + ((uint64_t)sp2[2] << 40) | ((uint64_t)sp2[3] << 32) | + ((uint64_t)sp2[4] << 24) | ((uint64_t)sp2[5] << 16) | + ((uint64_t)sp2[6] << 8) | (uint64_t)sp2[7]); + *fp = (t_sample)alias.d; + } + } + else + { + for (j = 0, sp2 = sp, fp = vecs[i] + framesread; + j < nframes; j++, sp2 += sf->sf_bytesperframe, fp++) + { + alias.ui = (((uint64_t)sp2[7] << 56) | ((uint64_t)sp2[6] << 48) | + ((uint64_t)sp2[5] << 40) | ((uint64_t)sp2[4] << 32) | + ((uint64_t)sp2[3] << 24) | ((uint64_t)sp2[2] << 16) | + ((uint64_t)sp2[1] << 8) | (uint64_t)sp2[0]); + *fp = (t_sample)alias.d; + } + } + } } /* zero out other outputs */ for (i = sf->sf_nchannels; i < nvecs; i++) @@ -567,6 +600,34 @@ static void soundfile_xferin_words(const t_soundfile *sf, int nvecs, } } } + else if (sf->sf_bytespersample == 8) + { + t_doubleuint alias; + if (sf->sf_bigendian) + { + for (j = 0, sp2 = sp, wp = vecs[i] + framesread; + j < nframes; j++, sp2 += sf->sf_bytesperframe, wp++) + { + alias.ui = (((uint64_t)sp2[0] << 56) | ((uint64_t)sp2[1] << 48) | + ((uint64_t)sp2[2] << 40) | ((uint64_t)sp2[3] << 32) | + ((uint64_t)sp2[4] << 24) | ((uint64_t)sp2[5] << 16) | + ((uint64_t)sp2[6] << 8) | (uint64_t)sp2[7]); + wp->w_float = (t_float)alias.d; + } + } + else + { + for (j = 0, sp2 = sp, wp = vecs[i] + framesread; + j < nframes; j++, sp2 += sf->sf_bytesperframe, wp++) + { + alias.ui = (((uint64_t)sp2[7] << 56) | ((uint64_t)sp2[6] << 48) | + ((uint64_t)sp2[5] << 40) | ((uint64_t)sp2[4] << 32) | + ((uint64_t)sp2[3] << 24) | ((uint64_t)sp2[2] << 16) | + ((uint64_t)sp2[1] << 8) | (uint64_t)sp2[0]); + wp->w_float = (t_float)alias.d; + } + } + } } /* zero out other outputs */ for (i = sf->sf_nchannels; i < nvecs; i++) @@ -648,7 +709,7 @@ static int soundfiler_parsewriteargs(void *obj, int *p_argc, t_atom **p_argv, { if (argc < 2 || argv[1].a_type != A_FLOAT || ((bytespersample = argv[1].a_w.w_float) < 2) || - bytespersample > 4) + bytespersample > 8 || bytespersample < 8) return -1; argc -= 2; argv += 2; } @@ -891,6 +952,34 @@ static void soundfile_xferout_sample(const t_soundfile *sf, } } } + else if (sf->sf_bytespersample == 8) + { + t_doubleuint f2; + if (sf->sf_bigendian) + { + for (j = 0, sp2 = sp, fp = vecs[i] + onsetframes; + j < nframes; j++, sp2 += sf->sf_bytesperframe, fp++) + { + f2.d = *fp * normalfactor; + sp2[0] = (f2.ui >> 56); sp2[1] = (f2.ui >> 48); + sp2[2] = (f2.ui >> 40); sp2[3] = (f2.ui >> 32); + sp2[4] = (f2.ui >> 24); sp2[5] = (f2.ui >> 16); + sp2[6] = (f2.ui >> 8); sp2[7] = f2.ui; + } + } + else + { + for (j = 0, sp2 = sp, fp = vecs[i] + onsetframes; + j < nframes; j++, sp2 += sf->sf_bytesperframe, fp++) + { + f2.d = *fp * normalfactor; + sp2[7] = (f2.ui >> 56); sp2[6] = (f2.ui >> 48); + sp2[5] = (f2.ui >> 40); sp2[4] = (f2.ui >> 32); + sp2[3] = (f2.ui >> 24); sp2[2] = (f2.ui >> 16); + sp2[1] = (f2.ui >> 8); sp2[0] = f2.ui; + } + } + } } } @@ -999,6 +1088,34 @@ static void soundfile_xferout_words(const t_soundfile *sf, t_word **vecs, } } } + else if (sf->sf_bytespersample == 8) + { + t_doubleuint f2; + if (sf->sf_bigendian) + { + for (j = 0, sp2 = sp, wp = vecs[i] + onsetframes; + j < nframes; j++, sp2 += sf->sf_bytesperframe, wp++) + { + f2.d = wp->w_float * normalfactor; + sp2[0] = (f2.ui >> 56); sp2[1] = (f2.ui >> 48); + sp2[2] = (f2.ui >> 40); sp2[3] = (f2.ui >> 32); + sp2[4] = (f2.ui >> 24); sp2[5] = (f2.ui >> 16); + sp2[6] = (f2.ui >> 8); sp2[7] = f2.ui; + } + } + else + { + for (j = 0, sp2 = sp, wp = vecs[i] + onsetframes; + j < nframes; j++, sp2 += sf->sf_bytesperframe, wp++) + { + f2.d = wp->w_float * normalfactor; + sp2[7] = (f2.ui >> 56); sp2[6] = (f2.ui >> 48); + sp2[5] = (f2.ui >> 40); sp2[4] = (f2.ui >> 32); + sp2[3] = (f2.ui >> 24); sp2[2] = (f2.ui >> 16); + sp2[1] = (f2.ui >> 8); sp2[0] = f2.ui; + } + } + } } } @@ -1162,7 +1279,7 @@ static void soundfiler_read(t_soundfiler *x, t_symbol *s, (sf.sf_nchannels > MAXSFCHANS) || argv[3].a_type != A_FLOAT || ((sf.sf_bytespersample = argv[3].a_w.w_float) < 2) || - (sf.sf_bytespersample > 4) || + (sf.sf_bytespersample > 8) || (sf.sf_bytespersample < 8) || argv[4].a_type != A_SYMBOL || ((endianness = argv[4].a_w.w_symbol->s_name[0]) != 'b' && endianness != 'l' && endianness != 'n')) diff --git a/src/d_soundfile_caf.c b/src/d_soundfile_caf.c index ac04b934c..a2c9470b4 100644 --- a/src/d_soundfile_caf.c +++ b/src/d_soundfile_caf.c @@ -30,7 +30,9 @@ instrument, MIDI, overview, peak, edit comments, information, unique material identifier, user-defined * ignores any chunks after finding the data chunk - * sample format: 16 and 24 bit lpcm, 32 bit float, no 32 bit lpcm + * sample format: 16 and 24 bit lpcm, 32 and 64 bit float, no 32 bit lpcm + + Pd versions < 0.55 did not read 64 bit float. Pd versions < 0.51 did *not* read or write CAF files. diff --git a/src/d_soundfile_wave.c b/src/d_soundfile_wave.c index 5b97d7c04..249468442 100644 --- a/src/d_soundfile_wave.c +++ b/src/d_soundfile_wave.c @@ -36,8 +36,10 @@ sample, display, junk, pad, time code, digitization time * assumes format chunk is always before sound data chunk * assumes there is only 1 sound data chunk - * does not support 64-bit variants or BWF file-splitting - * sample format: 16 and 24 bit lpcm, 32 bit float, no 32 bit lpcm + * does not support 64-bit size variants or BWF file-splitting + * sample format: 16 and 24 bit lpcm, 32 and 64 bit float, no 32 bit lpcm + + Pd versions < 0.55 did not read 64 bit float. Pd versions < 0.51 did *not* read or write extended format explicitly, but ignored the format chunk format tag and interpreted the sample type based on From 3d48c209c256bb7506021d6fcb66ac147b0a9293 Mon Sep 17 00:00:00 2001 From: danomatika Date: Mon, 15 Apr 2024 14:59:46 +0200 Subject: [PATCH 218/450] it seems _DARWIN_C_SOURCE needs to be defined for machine/endian.h to be found on newer macOS --- configure.ac | 3 +++ src/makefile.mac | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index d6c1364fb..7d6ab79a8 100644 --- a/configure.ac +++ b/configure.ac @@ -89,6 +89,9 @@ AS_CASE([$host], EXTERNAL_CFLAGS="-fPIC" EXTERNAL_EXTENSION=d_fat + # helps for machine/endian.h to be found + PD_CFLAGS="-D_DARWIN_C_SOURCE" + # a set of search paths are used on macOS in s_inter.c wish="default search paths" diff --git a/src/makefile.mac b/src/makefile.mac index 4d28b6875..4b08ceb16 100644 --- a/src/makefile.mac +++ b/src/makefile.mac @@ -36,7 +36,7 @@ CPPFLAGS = -DINSTALL_PREFIX=\"$(prefix)\" \ -DHAVE_LIBDL=1 -DHAVE_UNISTD_H=1 \ -DHAVE_ALLOCA_H=1 \ -DHAVE_QSORT_R_COMPAR_LAST=1 \ - -DHAVE_MACHINE_ENDIAN_H=1 \ + -DHAVE_MACHINE_ENDIAN_H=1 -D_DARWIN_C_SOURCE \ -I$(PADIR)/include -I$(PADIR)/src/common \ -I$(PADIR)/src/os/mac_osx/ -I$(PMDIR)/pm_common \ -I$(PMDIR)/pm_mac -I$(PMDIR)/porttime \ From 4f5dd39d6699c26fdd4016aa166671182056d32c Mon Sep 17 00:00:00 2001 From: danomatika Date: Mon, 15 Apr 2024 15:37:25 +0200 Subject: [PATCH 219/450] macOS: increase max allowed file descriptors via FD_SETSIZE --- configure.ac | 3 +++ libpd/Makefile | 7 +++++-- src/makefile.mac | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 7d6ab79a8..7439e39d6 100644 --- a/configure.ac +++ b/configure.ac @@ -92,6 +92,9 @@ AS_CASE([$host], # helps for machine/endian.h to be found PD_CFLAGS="-D_DARWIN_C_SOURCE" + # increase max allowed file descriptors + PD_CFLAGS="$PD_CFLAGS -D_DARWIN_UNLIMITED_SELECT -DFD_SETSIZE=10240" + # a set of search paths are used on macOS in s_inter.c wish="default search paths" diff --git a/libpd/Makefile b/libpd/Makefile index 44f034754..e46d351b9 100644 --- a/libpd/Makefile +++ b/libpd/Makefile @@ -11,9 +11,12 @@ PLATFORM_ARCH ?= $(shell $(CC) -dumpmachine | sed -e 's,-.*,,') ifeq ($(UNAME), Darwin) # Mac SOLIB_EXT = dylib - PLATFORM_CFLAGS = -DHAVE_ALLOCA_H -DHAVE_LIBDL -DHAVE_MACHINE_ENDIAN_H \ - -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT + PLATFORM_CFLAGS = -DHAVE_ALLOCA_H -DHAVE_LIBDL -DHAVE_MACHINE_ENDIAN_H PLATFORM_LDFLAGS = -dynamiclib -ldl -Wl,-no_compact_unwind + # helps for machine/endian.h to be found + PLATFORM_CFLAGS += -D_DARWIN_C_SOURCE + # increase max allowed file descriptors + PLATFORM_CFLAGS += -D_DARWIN_UNLIMITED_SELECT -DFD_SETSIZE=10240 ifeq ($(FAT_LIB), true) # macOS universal "fat" lib compilation MAC_VER = $(shell sw_vers -productVersion | cut -f1 -f2 -d.) diff --git a/src/makefile.mac b/src/makefile.mac index 4b08ceb16..ff9c1d4e8 100644 --- a/src/makefile.mac +++ b/src/makefile.mac @@ -37,6 +37,7 @@ CPPFLAGS = -DINSTALL_PREFIX=\"$(prefix)\" \ -DHAVE_ALLOCA_H=1 \ -DHAVE_QSORT_R_COMPAR_LAST=1 \ -DHAVE_MACHINE_ENDIAN_H=1 -D_DARWIN_C_SOURCE \ + -D_DARWIN_UNLIMITED_SELECT -DFD_SETSIZE=10240 \ -I$(PADIR)/include -I$(PADIR)/src/common \ -I$(PADIR)/src/os/mac_osx/ -I$(PMDIR)/pm_common \ -I$(PMDIR)/pm_mac -I$(PMDIR)/porttime \ From 528ccddd02cdc7b35d844a10a0e21523fcde7137 Mon Sep 17 00:00:00 2001 From: danomatika Date: Mon, 15 Apr 2024 16:08:03 +0200 Subject: [PATCH 220/450] added AIFF 64 bit float samples support --- src/d_soundfile_aiff.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/src/d_soundfile_aiff.c b/src/d_soundfile_aiff.c index 1ae7dd35f..f2c2fb386 100644 --- a/src/d_soundfile_aiff.c +++ b/src/d_soundfile_aiff.c @@ -25,13 +25,14 @@ - sowt "not compressed" little endian - fl32 "32-bit floating point" big endian - FL32 "Float 32" big endian + - fl63 "64-bit floating point" big endian - the rest are not relevant to Pd... * limited to ~2 GB files as sizes are signed 32 bit ints this implementation: * supports AIFF and AIFF-C - * implicitly writes AIFF-C header for 32 bit float (see below) + * implicitly writes AIFF-C header for 32 and 64 bit float (see below) * implements chunks: common, data, version (AIFF-C) * ignores chunks: marker, instrument, comment, name, author, copyright, annotation, audio recording, MIDI data, application, ID3 @@ -39,7 +40,9 @@ * ignores any chunks after finding the sound data chunk * assumes there is always a sound data chunk * does not block align sound data - * sample format: 16 and 24 bit lpcm, 32 bit float, no 32 bit lpcm + * sample format: 16 and 24 bit lpcm, 32 and 64 bit float, no 32 bit lpcm + + Pd versions < 0.55 did not read or write 64 bit float. Pd versions < 0.51 did *not* read or write AIFF files with a 32 bit float sample format. @@ -59,9 +62,11 @@ /* compression string defines */ #define AIFF_NONE_STR "not compressed" #define AIFF_FL32_STR "32-bit floating point" +#define AIFF_FL64_STR "64-bit floating point" #define AIFF_NONE_LEN 16 /**< 1 len byte + 15 bytes + 1 \0 pad byte */ #define AIFF_FL32_LEN 22 /**< 1 len byte + 22 bytes, no pad byte */ +#define AIFF_FL64_LEN 22 /**< 1 len byte + 22 bytes, no pad byte */ /** basic chunk header, 8 bytes */ typedef struct _chunk @@ -115,7 +120,8 @@ typedef struct _verchunk /** returns 1 if format requires AIFF-C */ static int aiff_isaiffc(const t_soundfile *sf) { - return (!sf->sf_bigendian || sf->sf_bytespersample == 4); + return (!sf->sf_bigendian || sf->sf_bytespersample == 4 || + sf->sf_bytespersample == 8); } /** pascal string to c string, max size 256, returns *total* pstring size */ @@ -342,6 +348,7 @@ static int aiff_readheader(t_soundfile *sf) case 16: bytespersample = 2; break; case 24: bytespersample = 3; break; case 32: bytespersample = 4; break; + case 64: bytespersample = 8; break; default: { errno = SOUNDFILE_ERRSAMPLEFMT; @@ -361,9 +368,10 @@ static int aiff_readheader(t_soundfile *sf) bigendian = 0; } else if (!strncmp(comm->cc_comptype, "fl32", 4) || - !strncmp(comm->cc_comptype, "FL32", 4)) + !strncmp(comm->cc_comptype, "FL32", 4) || + !strncmp(comm->cc_comptype, "fl64", 4)) { - if (bytespersample != 4) + if (bytespersample != 4 && bytespersample != 8) { errno = SOUNDFILE_ERRMALFORMED; return 0; @@ -376,9 +384,9 @@ static int aiff_readheader(t_soundfile *sf) return 0; } } - if (bytespersample == 4 && !isfloat) + if ((bytespersample == 4 || bytespersample == 8) && !isfloat) { - /* 32 bit int */ + /* 32 bit int or unknown */ errno = SOUNDFILE_ERRSAMPLEFMT; return 0; } @@ -489,6 +497,11 @@ static int aiff_writeheader(t_soundfile *sf, size_t nframes) strncpy(comm.cc_comptype, "fl32", 4); commsize += 4 + aiff_setpstring(comm.cc_compname, AIFF_FL32_STR); } + if (sf->sf_bytespersample == 8) + { + strncpy(comm.cc_comptype, "fl64", 4); + commsize += 4 + aiff_setpstring(comm.cc_compname, AIFF_FL64_STR); + } else { strncpy(comm.cc_comptype, (sf->sf_bigendian ? "NONE" : "sowt"), 4); @@ -534,6 +547,8 @@ static int aiff_updateheader(t_soundfile *sf, size_t nframes) /* AIFF-C compression info */ if (sf->sf_bytespersample == 4) commsize += 4 + AIFF_FL32_LEN; + else if (sf->sf_bytespersample == 8) + commsize += 4 + AIFF_FL64_LEN; else commsize += 4 + AIFF_NONE_LEN; headersize += AIFFVERSIZE; From 6a304c98d4c063ebbb3ca9cbab6ff9ef67179e44 Mon Sep 17 00:00:00 2001 From: danomatika Date: Mon, 15 Apr 2024 16:08:28 +0200 Subject: [PATCH 221/450] clarification and small cleanup --- src/d_soundfile_aiff.c | 6 +++--- src/d_soundfile_caf.c | 2 +- src/d_soundfile_wave.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/d_soundfile_aiff.c b/src/d_soundfile_aiff.c index f2c2fb386..9139b292b 100644 --- a/src/d_soundfile_aiff.c +++ b/src/d_soundfile_aiff.c @@ -460,10 +460,10 @@ static int aiff_writeheader(t_soundfile *sf, size_t nframes) t_commchunk comm = { "COMM", swap4s(18, swap), swap2(sf->sf_nchannels, swap), /* channels */ - {0}, /* sample frames */ + {0}, /* sample frames */ swap2(sf->sf_bytespersample / 8, swap), /* bits per sample */ - {0}, /* sample rate */ - {0}, {0} /* comp info */ + {0}, /* sample rate */ + {0}, {0} /* comp info */ }; t_datachunk data = {"SSND", swap4s(8, swap), 0, 0}; diff --git a/src/d_soundfile_caf.c b/src/d_soundfile_caf.c index a2c9470b4..5f8c70c0f 100644 --- a/src/d_soundfile_caf.c +++ b/src/d_soundfile_caf.c @@ -32,7 +32,7 @@ * ignores any chunks after finding the data chunk * sample format: 16 and 24 bit lpcm, 32 and 64 bit float, no 32 bit lpcm - Pd versions < 0.55 did not read 64 bit float. + Pd versions < 0.55 did not read or write 64 bit float. Pd versions < 0.51 did *not* read or write CAF files. diff --git a/src/d_soundfile_wave.c b/src/d_soundfile_wave.c index 249468442..1ed1f551e 100644 --- a/src/d_soundfile_wave.c +++ b/src/d_soundfile_wave.c @@ -39,7 +39,7 @@ * does not support 64-bit size variants or BWF file-splitting * sample format: 16 and 24 bit lpcm, 32 and 64 bit float, no 32 bit lpcm - Pd versions < 0.55 did not read 64 bit float. + Pd versions < 0.55 did not read or write 64 bit float. Pd versions < 0.51 did *not* read or write extended format explicitly, but ignored the format chunk format tag and interpreted the sample type based on From e34c43903dfb64547dd742497c443f61fa77cb15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 15 Apr 2024 16:11:38 +0200 Subject: [PATCH 222/450] adjust argumentlist of [r~] to the prototype funnily [receive~] was correct, so we didn't catch it earlier... Related: https://github.com/pure-data/pure-data/issues/2258 --- src/d_global.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_global.c b/src/d_global.c index 31b7ed426..7a2e8648f 100644 --- a/src/d_global.c +++ b/src/d_global.c @@ -224,7 +224,7 @@ static void sigreceive_setup(void) (t_newmethod)sigreceive_new, 0, sizeof(t_sigreceive), CLASS_MULTICHANNEL, A_DEFSYM, 0); class_addcreator((t_newmethod)sigreceive_new, gensym("r~"), - A_DEFSYM, A_DEFFLOAT, 0); + A_DEFSYM, 0); class_addmethod(sigreceive_class, (t_method)sigreceive_set, gensym("set"), A_SYMBOL, 0); class_addmethod(sigreceive_class, (t_method)sigreceive_dsp, From b8e1bc02a47f8f864561b29dd192a8d696917f70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Mon, 15 Apr 2024 16:12:48 +0200 Subject: [PATCH 223/450] wrapper around inlet_wrong() to use in emscripten inlet_wrong() only expects A_SYMBOL, but it is used as a callback with A_GIMME. emscripten does not allow this. Related: https://github.com/pure-data/pure-data/issues/2258 --- src/m_obj.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/m_obj.c b/src/m_obj.c index 2ad335d42..14cbb8545 100644 --- a/src/m_obj.c +++ b/src/m_obj.c @@ -86,6 +86,12 @@ static void inlet_wrong(t_inlet *x, t_symbol *s) pd_error(x->i_owner, "inlet: expected '%s' but got '%s'", x->i_symfrom->s_name, s->s_name); } +static void _inlet_wrong(t_inlet *x, t_symbol *s, int argc, t_atom*argv) +{ + (void)argc; + (void)argv; + inlet_wrong(x, s); +} static void inlet_list(t_inlet *x, t_symbol *s, int argc, t_atom *argv); extern t_class *vinlet_class; From 7c214d46cb3e18caca8ff302212ed59b4d44a1b6 Mon Sep 17 00:00:00 2001 From: danomatika Date: Tue, 16 Apr 2024 09:28:01 +0200 Subject: [PATCH 224/450] fixed bad -bytes param handling, fixed aiff not forcing big endian for float samples, added bytespersample arg to t_soundfile_endiannessfn, som comment clarifications and typo fixes --- src/d_soundfile.c | 12 +++++++----- src/d_soundfile.h | 7 ++++--- src/d_soundfile_aiff.c | 8 ++++---- src/d_soundfile_caf.c | 2 +- src/d_soundfile_next.c | 2 +- src/d_soundfile_wave.c | 4 ++-- 6 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/d_soundfile.c b/src/d_soundfile.c index fc186cbf7..085b644f8 100644 --- a/src/d_soundfile.c +++ b/src/d_soundfile.c @@ -19,7 +19,9 @@ objects use Posix-like threads. */ #include #include -/* Supported sample formats: LPCM (16 or 24 bit int) & 32 bit float */ +/* Supported sample formats: LPCM (16 or 24 bit int) & 32 or 64 bit float */ + +#define VALID_BYTESPERSAMPLE(b) (b == 2 || b == 3 || b == 4 || b == 8) #define MAXSFCHANS 64 @@ -37,7 +39,7 @@ objects use Posix-like threads. */ #define SCALE (1. / (1024. * 1024. * 1024. * 2.)) - /* float sample conversion wrapper */ + /* float sample conversion wrappers */ typedef union _floatuint { float f; @@ -709,7 +711,7 @@ static int soundfiler_parsewriteargs(void *obj, int *p_argc, t_atom **p_argv, { if (argc < 2 || argv[1].a_type != A_FLOAT || ((bytespersample = argv[1].a_w.w_float) < 2) || - bytespersample > 8 || bytespersample < 8) + !VALID_BYTESPERSAMPLE(bytespersample)) return -1; argc -= 2; argv += 2; } @@ -779,7 +781,7 @@ static int soundfiler_parsewriteargs(void *obj, int *p_argc, t_atom **p_argv, } /* check requested endianness */ - bigendian = type->t_endiannessfn(endianness); + bigendian = type->t_endiannessfn(endianness, bytespersample); if (endianness != -1 && endianness != bigendian) { post("%s: forced to %s endian", type->t_name, @@ -1279,7 +1281,7 @@ static void soundfiler_read(t_soundfiler *x, t_symbol *s, (sf.sf_nchannels > MAXSFCHANS) || argv[3].a_type != A_FLOAT || ((sf.sf_bytespersample = argv[3].a_w.w_float) < 2) || - (sf.sf_bytespersample > 8) || (sf.sf_bytespersample < 8) || + !VALID_BYTESPERSAMPLE(sf.sf_bytespersample) || argv[4].a_type != A_SYMBOL || ((endianness = argv[4].a_w.w_symbol->s_name[0]) != 'b' && endianness != 'l' && endianness != 'n')) diff --git a/src/d_soundfile.h b/src/d_soundfile.h index 9c8b5f781..1fe40f801 100644 --- a/src/d_soundfile.h +++ b/src/d_soundfile.h @@ -60,7 +60,7 @@ typedef struct _soundfile /* format info */ int sf_samplerate; /**< read: file sr, write: pd sr */ int sf_nchannels; /**< number of channels */ - int sf_bytespersample; /**< bit rate, 2: 16 bit, 3: 24 bit, 4: 32 bit */ + int sf_bytespersample; /**< bit rate, 2: 16 bit, 3: 24, 4: 32, 8: 64 */ ssize_t sf_headersize; /**< header size in bytes, -1 for unknown size */ int sf_bigendian; /**< sample endianness, 1 : big or 0 : little */ int sf_bytesperframe; /**< number of bytes per sample frame */ @@ -120,9 +120,10 @@ typedef int (*t_soundfile_hasextensionfn)(const char *filename, size_t size); typedef int (*t_soundfile_addextensionfn)(char *filename, size_t size); /** returns the type's preferred sample endianness based on the - requested endianness (0 little, 1 big, -1 unspecified) + requested endianness (0 little, 1 big, -1 unspecified) and + bytes per sample (-1 unspecified) returns 1 for big endian, 0 for little endian */ -typedef int (*t_soundfile_endiannessfn)(int endianness); +typedef int (*t_soundfile_endiannessfn)(int endianness, int bytespersample); /* type implementation for a single file format */ typedef struct _soundfile_type diff --git a/src/d_soundfile_aiff.c b/src/d_soundfile_aiff.c index 9139b292b..51eb1e9dc 100644 --- a/src/d_soundfile_aiff.c +++ b/src/d_soundfile_aiff.c @@ -256,7 +256,7 @@ static void aiff_postcomm(const t_commchunk *comm, int isaiffc, int swap) } } - /** post sata info for debugging */ + /** post data info for debugging */ static void aiff_postdata(const t_datachunk *data, int swap) { aiff_postchunk((const t_chunk *)data, swap); @@ -607,10 +607,10 @@ static int aiff_addextension(char *filename, size_t size) return 1; } - /* default to big endian unless overridden */ -static int aiff_endianness(int endianness) + /* big endian unless overridden for 16 or 24 bit int */ +static int aiff_endianness(int endianness, int bytespersample) { - if (endianness == 0) + if ((bytespersample == 2 || bytespersample == 3) && endianness == 0) return 0; return 1; } diff --git a/src/d_soundfile_caf.c b/src/d_soundfile_caf.c index 5f8c70c0f..95c72eb98 100644 --- a/src/d_soundfile_caf.c +++ b/src/d_soundfile_caf.c @@ -404,7 +404,7 @@ static int caf_addextension(char *filename, size_t size) } /* default to big endian if not specified */ -static int caf_endianness(int endianness) +static int caf_endianness(int endianness, int bytespersample) { if (endianness == -1) return 1; diff --git a/src/d_soundfile_next.c b/src/d_soundfile_next.c index 993feac04..ca470f5c6 100644 --- a/src/d_soundfile_next.c +++ b/src/d_soundfile_next.c @@ -270,7 +270,7 @@ static int next_addextension(char *filename, size_t size) } /* machine native if not specified */ -static int next_endianness(int endianness) +static int next_endianness(int endianness, int bytespersample) { if (endianness == -1) return sys_isbigendian(); diff --git a/src/d_soundfile_wave.c b/src/d_soundfile_wave.c index 1ed1f551e..8da8f7d1c 100644 --- a/src/d_soundfile_wave.c +++ b/src/d_soundfile_wave.c @@ -30,7 +30,7 @@ this implementation: * supports basic and extended format chunks (WAVE Rev. 3) - * implicitly writes extended format for 32 bit float (see below) + * implicitly writes extended format for 32 or 64 bit float (see below) * implements chunks: format, fact, sound data * ignores chunks: info, cset, cue, playlist, associated data, instrument, sample, display, junk, pad, time code, digitization time @@ -503,7 +503,7 @@ static int wave_addextension(char *filename, size_t size) } /* force little endian */ -static int wave_endianness(int endianness) +static int wave_endianness(int endianness, int bytespersample) { return 0; } From a5612ae1d2a536608be0e5b014ba01b4897e1d3f Mon Sep 17 00:00:00 2001 From: danomatika Date: Tue, 16 Apr 2024 09:41:11 +0200 Subject: [PATCH 225/450] updated readsf~, soundfiler, writesf~ help with 8-byte floating point info --- doc/5.reference/readsf~-help.pd | 32 +++++++------- doc/5.reference/soundfiler-help.pd | 69 +++++++++++++++--------------- doc/5.reference/writesf~-help.pd | 14 +++--- 3 files changed, 57 insertions(+), 58 deletions(-) diff --git a/doc/5.reference/readsf~-help.pd b/doc/5.reference/readsf~-help.pd index ee6e89aa2..f380ede36 100644 --- a/doc/5.reference/readsf~-help.pd +++ b/doc/5.reference/readsf~-help.pd @@ -47,7 +47,6 @@ #X msg 89 267 stop; #X text 103 237 start playback; #X text 128 267 stop playback; -#X text 496 668 Updated for version 0.53-1; #X text 91 11 - soundfile playback from disk; #X text 530 572 see:; #X obj 573 572 file which; @@ -62,22 +61,23 @@ #X msg 152 327 open ../sound/bell.aiff 22050 \, 1; #X text 526 402 - number of channels - per channel buffer size in bytes, f 20; #X obj 89 405 readsf~ 2 262144, f 60; -#X text 72 602 Another Note: check also [soundfiler] \, which allows you to load a file into memory by filling it into an array. This also gives you more playback possibilities with table reading objects., f 83; -#X text 21 158 The 'wave' \, 'aiff' \, 'caf' \, and 'next' formats are supported and parsed automatically \, although only uncompressed 2- or 3-byte integer ("pcm") and 4-byte floating point samples are accepted., f 94; +#X text 69 602 Another Note: check also [soundfiler] \, which allows you to load a file into memory by filling it into an array. This also gives you more playback possibilities with table reading objects., f 83; #X text 21 51 The [readsf~] object streams a soundfile from the hard disk. That is \, it doesn't fully load it into the memory \, but into a small local buffer first. The "open" message starts filling this buffer but a playback only starts when you send a "1" or "start" message. A "0" or "stop" message stops it. You may get audio dropouts if you "start" right after the "open" message \, so you should wait a few milliseconds between "open" and "start" to ensure that the buffer is filled in time. You can also increase the default buffer size as the 2nd argument \, but it shouldn't really be necessary. The 1st argument initializes the number of channel outputs., f 94; #X text 392 320 open at half a second into the file and start right away. Since it's mono \, we only have the left output., f 39; -#X connect 2 0 37 0; +#X text 496 668 Updated for version 0.55; +#X text 21 158 The 'wave' \, 'aiff' \, 'caf' \, and 'next' formats are supported \, although only uncompressed 2- or 3-byte integer ("pcm") and 4- or 8-byte floating point samples are accepted., f 94; +#X connect 2 0 36 0; #X connect 8 0 0 0; #X connect 16 0 17 0; -#X connect 17 0 37 0; -#X connect 19 0 37 0; -#X connect 20 0 37 0; -#X connect 30 0 1 0; -#X connect 31 0 13 0; -#X connect 34 0 37 0; -#X connect 35 0 37 0; -#X connect 37 0 6 0; -#X connect 37 0 30 0; -#X connect 37 1 31 0; -#X connect 37 1 6 1; -#X connect 37 2 8 0; +#X connect 17 0 36 0; +#X connect 19 0 36 0; +#X connect 20 0 36 0; +#X connect 29 0 1 0; +#X connect 30 0 13 0; +#X connect 33 0 36 0; +#X connect 34 0 36 0; +#X connect 36 0 6 0; +#X connect 36 0 29 0; +#X connect 36 1 30 0; +#X connect 36 1 6 1; +#X connect 36 2 8 0; diff --git a/doc/5.reference/soundfiler-help.pd b/doc/5.reference/soundfiler-help.pd index 7dec38d8f..18522c467 100644 --- a/doc/5.reference/soundfiler-help.pd +++ b/doc/5.reference/soundfiler-help.pd @@ -1,17 +1,16 @@ #N canvas 223 50 1039 619 12; -#X obj 60 316 soundfiler; -#X floatatom 60 345 7 0 0 0 - - - 12; +#X obj 60 320 soundfiler; +#X floatatom 60 349 7 0 0 0 - - - 12; #X obj 278 581 tabwrite~; #X obj 352 581 tabread4~; #X obj 425 581 tabplay~; #X obj 159 581 writesf~; #X obj 101 581 readsf~; #X text 28 580 See also:; -#X text 256 152 read a file to zero or more arrays, f 35; +#X text 256 156 read a file to zero or more arrays, f 35; #X obj 40 15 soundfiler; -#X text 806 580 updated for Pd version 0.51; #X obj 230 581 array; -#X listbox 127 345 16 0 0 0 - - - 0; +#X listbox 127 349 16 0 0 0 - - - 0; #X obj 6 49 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 916 14 <= click; #N canvas 540 87 632 371 reference 0; @@ -33,12 +32,11 @@ #X text 157 254 sample rate \, header size \, number of channels \, bytes per sample & endianness ('b' or 'l')., f 51; #X restore 822 15 pd reference; #X text 120 14 - import/export soundfiles to/from arrays; -#X msg 34 152 read ../sound/bell.aiff sample; -#X msg 60 187 read -resize ../sound/bell.aiff sample; -#X text 28 61 The [soundfiler] object loads files into arrays and also saves arrays into files. The soundfiles may contain uncompressed 2- or 3-byte integer ("pcm") or 4-byte floating point samples in wave \, aiff \, caf and next formats. Additionally \, [soundfiler] also deals with ascii text files., f 72; -#X text 340 180 optionally resize array to fit the whole file, f 23; -#X text 37 127 Basic read/write example:; -#N canvas 791 194 575 345 Dealing_with_"\$0" 0; +#X msg 34 156 read ../sound/bell.aiff sample; +#X msg 60 191 read -resize ../sound/bell.aiff sample; +#X text 340 184 optionally resize array to fit the whole file, f 23; +#X text 28 127 Basic read/write example:; +#N canvas 705 194 575 345 Dealing_with_"\$0" 0; #X obj 273 171 array define \$0-x; #X obj 153 202 f \$0; #X obj 153 263 soundfiler; @@ -52,11 +50,9 @@ #X connect 2 0 3 0; #X connect 4 0 2 0; #X connect 5 0 1 0; -#X restore 788 378 pd Dealing_with_"\$0"; -#X text 678 355 open subpatch to see how to deal with '\$0', f 28; +#X restore 747 380 pd Dealing_with_"\$0"; #X text 577 247 Note that if no array name is given to read to \, no samples are read but you get the number of samples in the file on the left outlet and the info on the right outlet anyway., f 62; -#X text 577 304 Also note that the number of channels is limited to 64 for both reading and writting., f 62; -#N canvas 108 89 1226 553 read-write-flags 0; +#N canvas 54 89 1226 553 read-write-flags 0; #X text 27 83 -resize (resizes arrays to the size of the sound file), f 62; #X obj 609 447 soundfiler; #X text 27 23 Flags for 'read' message:, f 62; @@ -77,7 +73,6 @@ #X obj 659 289 savepanel; #X obj 659 254 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; #X text 82 500 * note that arrays whose values exceed the -1 to 1 range are automatically normalized, f 42; -#X text 27 442 -bytes (bytes per sample: 2 \, 3 \, or 4 \, default: 2), f 69; #X text 27 461 -rate (sample rate \, default Pd's running sample rate), f 69; #X text 27 424 -nframes (maximum points to write \, default whole array), f 69; #X text 27 405 -skip (number of points to skip in array \, default 0), f 69; @@ -127,44 +122,48 @@ #X array array2 78003 float 2; #X coords 0 1 78003 -1 325 120 1 0 0; #X restore 874 404 graph; +#X text 27 442 -bytes (bytes per sample: 2 \, 3 \, 4 \, or 8 default: 2), f 69; #X connect 1 0 14 0; #X connect 1 1 11 0; #X connect 12 0 1 0; #X connect 13 0 1 0; -#X connect 15 0 30 0; +#X connect 15 0 29 0; #X connect 16 0 15 0; -#X connect 17 0 29 0; +#X connect 17 0 28 0; #X connect 18 0 17 0; +#X connect 28 0 1 0; #X connect 29 0 1 0; #X connect 30 0 1 0; -#X connect 31 0 1 0; +#X connect 32 0 1 0; #X connect 33 0 1 0; -#X connect 34 0 1 0; -#X restore 779 505 pd read-write-flags & more examples; -#X f 19; +#X restore 749 511 pd read-write-flags & more examples; #X text 577 149 When loading a file \, the left outlet sends the number of samples the file contains if the array is equal or greater in size. If you're loading a file into an array that is smaller \, the number or samples is clipped to the array size and you probably want to use the -resize flag to resize the array size to the file size., f 62; #X text 577 425 Both 'read' and 'write' messages also take optional flags for configuration. In the basic example to the left we have the '-resize' flag in the read message that resizes the array to the file size. See more about flags and advanced examples in the subpatch below., f 62; #X obj 6 563 cnv 1 1025 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X obj 493 581 openpanel; #X obj 566 581 savepanel; #X text 577 66 At loading or writting a file \, the left outlet outputs the number of samples and the right outlet sends information as a list \, namely: Sample Rate \, Header Size \, Number of Channels \, Bytes per Sample & Endianness ("b" for "big" or "l" for "little")., f 62; -#X text 44 365 # samples; -#X obj 84 256 savepanel; -#X obj 84 224 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; -#X msg 84 284 write \$1 sample; -#X text 112 225 write to a file; +#X text 44 369 # samples; +#X obj 84 260 savepanel; +#X obj 84 228 bng 23 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000; +#X msg 84 288 write \$1 sample; +#X text 112 229 write to a file; #X text 29 489 Note: Loading a soundfile into an array might be useful for more flexible playing strategies with table reading objects in the 'see section' below. For a simpler alternative that streams a soundfile directly from your hard drive \, see [readsf~]., f 72; #X text 29 396 The 'read' message takes a file to load and one or more arrays to load into (in the case the file has more than one channel). The number of channels of the soundfile need not match the number of arrays given to read (extras channels are dropped and unsupplied channels are zeroed out in the extra arrays). The 'write' message takes a filename to save to and one or more arrays (one for each channel)., f 72; -#X text 124 365 info: sample rate \, header size \, channels \, bytes \, endianness; -#X obj 270 248 cnv 19 248 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; +#X text 124 369 info: sample rate \, header size \, channels \, bytes \, endianness; +#X obj 270 252 cnv 19 248 98 empty empty empty 20 12 0 12 #e0e0e0 #404040 0; #N canvas 0 22 450 300 (subpatch) 0; #X array sample 44100 float 2; #X coords 0 1 44100 -1 250 100 1 0 0; -#X restore 269 247 graph; +#X restore 269 251 graph; +#X text 806 580 updated for Pd version 0.55; +#X text 28 61 The [soundfiler] object loads files into arrays and also saves arrays into files. The soundfiles may contain uncompressed 2- or 3-byte integer ("pcm") or 4- or 8-byte floating point samples in wave \, aiff \, caf and next formats. Also \, [soundfiler] deals with ascii text files., f 72; +#X text 577 304 Also note that the number of channels is limited to 64 for both reading and writing., f 62; +#X text 580 353 Open subpatch to see how to deal with '\$0'; #X connect 0 0 1 0; -#X connect 0 1 12 0; +#X connect 0 1 11 0; +#X connect 16 0 0 0; #X connect 17 0 0 0; -#X connect 18 0 0 0; -#X connect 34 0 36 0; -#X connect 35 0 34 0; -#X connect 36 0 0 0; +#X connect 30 0 32 0; +#X connect 31 0 30 0; +#X connect 32 0 0 0; diff --git a/doc/5.reference/writesf~-help.pd b/doc/5.reference/writesf~-help.pd index 44459636e..d7f8f1add 100644 --- a/doc/5.reference/writesf~-help.pd +++ b/doc/5.reference/writesf~-help.pd @@ -20,9 +20,7 @@ #X text 299 267 create a 24-bit integer soundfile; #X text 313 291 create a 32-bit floating point soundfile; #X text 101 157 -big \, -little (sample endianness), f 42; -#X text 411 550 updated for Pd version 0.51; #X text 238 435 The creation argument is the number of channels (1 to 64)., f 29; -#X text 42 478 The soundfile is uncompressed 2- or 3-byte integer ("pcm") or 4-byte floating point. The soundfile format is determined by the file extension (ie. "foo.wav" \, "foo.aiff" \, "foo.caf" \, "foo.snd")., f 80; #X obj 222 407 noise~; #X obj 7 43 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 0; #X text 533 11 <= click; @@ -51,13 +49,15 @@ #X text 101 139 -wave \, -aiff \, -caf \, -next (file extension); #X text 237 194 (affects the soundfile header but the file will _not_ be resampled.), f 34; #X obj 7 538 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 0; -#X text 101 175 -bytes <2 \, 3 \, or 4> (bit resolution), f 42; #X obj 26 273 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; #X text 15 56 [writesf~] creates a subthread whose task is to write audio streams to disk. You need not provide any disk access time between "open" and "start" \, but between "stop" and the next "open" you must give the object time to flush all the output to disk., f 85; #X text 111 11 - record audio signals to a soundfile; #X msg 379 361 \; pd dsp \$1; #X obj 379 326 set-dsp-tgl; #X text 410 330 DSP on/off; +#X text 101 175 -bytes <2 \, 3 \, 4 \, or 8> (bit resolution), f 42; +#X text 42 478 The soundfile is uncompressed 2- or 3-byte integer ("pcm") or 4- or 8-byte floating point. The soundfile format is determined by the file extension (ie. "foo.wav" \, "foo.aiff" \, "foo.caf" \, "foo.snd")., f 80; +#X text 411 550 updated for Pd version 0.55; #X connect 0 0 6 0; #X connect 1 0 6 0; #X connect 2 0 6 0; @@ -66,7 +66,7 @@ #X connect 10 0 6 0; #X connect 11 0 6 0; #X connect 12 0 6 0; -#X connect 24 0 6 1; -#X connect 32 0 1 0; -#X connect 32 0 3 0; -#X connect 36 0 35 0; +#X connect 22 0 6 1; +#X connect 29 0 1 0; +#X connect 29 0 3 0; +#X connect 33 0 32 0; From a5aa023735e5dde9f3d0a613397de8e7b257220b Mon Sep 17 00:00:00 2001 From: danomatika Date: Tue, 16 Apr 2024 09:52:42 +0200 Subject: [PATCH 226/450] added a note about pd precision with 64-bit float sampels to writesf~ help --- doc/5.reference/writesf~-help.pd | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/5.reference/writesf~-help.pd b/doc/5.reference/writesf~-help.pd index d7f8f1add..7b156918f 100644 --- a/doc/5.reference/writesf~-help.pd +++ b/doc/5.reference/writesf~-help.pd @@ -58,6 +58,11 @@ #X text 101 175 -bytes <2 \, 3 \, 4 \, or 8> (bit resolution), f 42; #X text 42 478 The soundfile is uncompressed 2- or 3-byte integer ("pcm") or 4- or 8-byte floating point. The soundfile format is determined by the file extension (ie. "foo.wav" \, "foo.aiff" \, "foo.caf" \, "foo.snd")., f 80; #X text 411 550 updated for Pd version 0.55; +#N canvas 121 146 481 248 8-byte 0; +#X text 19 19 Writing 8-byte (ie. 64-bit) floating point samples are supported for the wave \, aiff/aifc \, and caf file types.; +#X text 19 62 The precision of the 8-byte samples is based on the precision of the Pure Data build. If Pd is single precision (using 32-bit float internally) \, the written samples will be cast from 4-byte float to 8-byte double when writing to a file with -bytes 8 argument. In this case it's better to write with 4-byte float samples for a smaller file with the same precision.; +#X text 18 174 if Pd is double-precision \, writing 8-byte float samples will be full precision as Pd uses 64-bit float internally.; +#X restore 497 407 pd 8-byte float; #X connect 0 0 6 0; #X connect 1 0 6 0; #X connect 2 0 6 0; From ff70aacf954594cc91dbbd2f81e8e91534a809f0 Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Tue, 16 Apr 2024 13:59:31 +0200 Subject: [PATCH 227/450] slider bug fix - don't ignore "set 0" --- src/g_slider.c | 2 +- src/m_pd.h | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/g_slider.c b/src/g_slider.c index a6519df02..a8ee30f3f 100644 --- a/src/g_slider.c +++ b/src/g_slider.c @@ -509,7 +509,7 @@ static void slider_set(t_slider *x, t_floatarg f) int old = x->x_val; double g; if (PD_BADFLOAT(f)) - return; + f = 0; x->x_fval = f; if (x->x_min > x->x_max) diff --git a/src/m_pd.h b/src/m_pd.h index 6f33022a8..b5a24d82f 100644 --- a/src/m_pd.h +++ b/src/m_pd.h @@ -833,7 +833,11 @@ defined, there is a "te_xpix" field in objects, not a "te_xpos" as before: */ #ifndef _MSC_VER /* Microoft compiler can't handle "inline" function/macros */ #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) -/* a test for NANs and denormals. Should only be necessary on i386. */ + +/* a test for NANs and denormals. + WARNING: PD_BADFLOAT(0) = 1 -- you can replace a 'BADFLOAT' by 0 but don't +just do nothing with it. */ + #if PD_FLOATSIZE == 32 typedef union From 8f2c6f37d28c12499f222cd7f84a33b3b3524ce8 Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 17 Apr 2024 23:39:08 -0300 Subject: [PATCH 228/450] improve G05 example fix confusion and stuff, closes https://github.com/pure-data/pddp/issues/196 --- doc/3.audio.examples/G05.execution.order.pd | 109 ++++++++++---------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/doc/3.audio.examples/G05.execution.order.pd b/doc/3.audio.examples/G05.execution.order.pd index 2a3905404..3b34effea 100644 --- a/doc/3.audio.examples/G05.execution.order.pd +++ b/doc/3.audio.examples/G05.execution.order.pd @@ -1,33 +1,33 @@ -#N canvas 509 23 518 683 12; +#N canvas 469 23 503 684 12; #X declare -stdpath ./; -#X floatatom 296 312 4 0 100 0 - - - 0; -#X obj 74 471 +~; -#X text 45 46 If you're writing to and reading from a delay line \, you have to get the write sorted before the read or else you'll never get less than a block's delay. This patch compares a "wrong" flanger with a "right" one:, f 64; -#X obj 109 557 *~; -#X obj 109 523 -~; -#N canvas 352 175 330 235 delay-writer 0; -#X obj 96 85 inlet~; -#X obj 96 158 outlet~; -#X obj 116 122 delwrite~ G05-d2 1000; +#X floatatom 325 330 4 0 100 0 - - - 0; +#X obj 307 475 +~; +#N canvas 402 205 350 365 delay-writer 0; +#X obj 71 108 inlet~; +#X obj 71 231 outlet~; +#X obj 102 173 delwrite~ G05-d2 1000; +#X text 136 231 dummy outlet; +#X text 67 33 This subpatch sorts the delay writing before the reading., f 29; +#X text 82 271 The outlet is just needed to connect to the next subpatch to force the correct order., f 28; +#X text 126 146 writting to the delay.; #X connect 0 0 1 0; #X connect 0 0 2 0; -#X restore 109 389 pd delay-writer; -#N canvas 392 176 280 330 delay-reader 0; +#X restore 113 464 pd delay-writer; +#N canvas 319 197 561 348 delay-reader 0; #X obj 97 77 inlet~; -#X obj 97 227 outlet~; -#X obj 115 123 inlet~; -#X obj 97 197 +~; -#X obj 115 158 delread4~ G05-d2; -#X connect 0 0 3 0; -#X connect 2 0 4 0; +#X obj 163 195 outlet~; +#X obj 163 78 inlet~; +#X obj 163 123 delread4~ G05-d2; +#X text 53 49 dummy inlet; +#X text 165 49 delay time; +#X text 307 119 This subpatch reads the delay writing before the reading., f 29; +#X text 60 248 The summy inlet is just needed to connect to the previous subpatch to force the correct order., f 33; +#X connect 2 0 3 0; #X connect 3 0 1 0; -#X connect 4 0 3 1; -#X restore 109 422 pd delay-reader; -#X obj 74 557 +~; -#X obj 296 339 / 44.1; -#X obj 74 601 output~; -#X obj 147 522 tgl 19 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000 0 1; -#X obj 296 365 pack 0 30; +#X restore 113 495 pd delay-reader; +#X obj 95 525 +~; +#X obj 325 357 / 44.1; +#X obj 95 559 output~; #N canvas 521 164 217 214 pulse 0; #X obj 52 148 outlet~; #X obj 51 44 phasor~ 50; @@ -38,32 +38,33 @@ #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 0 0; -#X restore 73 304 pd pulse; -#X obj 114 354 delwrite~ G05-d1 1000; -#X obj 296 391 line~; -#X text 45 187 To hear the difference scroll the delay time between 0 and 100 samples. The patch at left doesn't let you get below 64 samples \, but the patch at right can go all the way down to one sample., f 64; -#X text 336 312 <= delay in samples; -#X text 171 520 <= off to hear left-hand side \; on to hear right hand side.; -#X obj 295 584 declare -stdpath ./; -#X text 69 16 ORDER OF EXECUTION OF DELWRITE~ AND DELREAD~/DELREAD4~; -#X obj 296 428 delread4~ G05-d1; -#X text 263 629 updated for Pd version 0.52; -#X text 45 238 You can use the same strategy to avoid an unwanted delay of one block in pairs of [send~]/[receive~] \, [tabsend~]/[tabreceive~] or [throw~]/[catch~] objects., f 64; -#X text 45 108 To get them to go off in the correct order \, put the [delwrite~] into a subptach \, then the [delread4~] and/or [delread4~] objects into another subpatch. The audio connections between these subpatches force the "reader" to be sorted after the "writer". DSP sorting in Pd follows the hierarchy of subpatches., f 64; -#X connect 0 0 8 0; -#X connect 1 0 4 1; -#X connect 1 0 7 0; -#X connect 3 0 7 1; -#X connect 4 0 3 0; -#X connect 5 0 6 0; -#X connect 6 0 4 0; -#X connect 7 0 9 0; -#X connect 8 0 11 0; -#X connect 10 0 3 1; -#X connect 11 0 14 0; -#X connect 12 0 1 0; -#X connect 12 0 5 0; -#X connect 12 0 13 0; -#X connect 14 0 6 1; -#X connect 14 0 20 0; -#X connect 20 0 1 1; +#X restore 113 334 pd pulse; +#X obj 127 419 delwrite~ G05-d1 1000, f 11; +#X obj 325 409 line~; +#X obj 328 280 declare -stdpath ./; +#X text 52 7 ORDER OF EXECUTION OF DELWRITE~ AND DELREAD~/DELREAD4~; +#X obj 325 446 delread4~ G05-d1; +#X text 284 645 updated for Pd version 0.52; +#X text 18 229 You can use the same strategy to avoid an unwanted delay of one block in pairs of [send~]/[receive~] \, [tabsend~]/[tabreceive~] or [throw~]/[catch~] objects., f 65; +#X text 18 99 To get them to go off in the correct order \, put the [delwrite~] into a subpatch \, then the [delread4~] and/or [delread4~] objects into another subpatch. The audio connections between these subpatches force the "reader" to be sorted after the "writer". DSP sorting in Pd follows the hierarchy of subpatches., f 65; +#X obj 325 383 pack f 30; +#X obj 307 559 output~; +#X text 244 330 delay ----> in samples, f 11; +#X text 18 37 If you're writing to and reading from a delay line \, you have to get the write sorted before the read or else you may not get less than a block's delay. This patch compares a "wrong" flanger with a "right" one:, f 65; +#X text 18 178 To hear the difference scroll the delay time between 0 and 100 samples. The patch at right doesn't let you get below 64 samples \, but the patch at left can go all the way down to one sample., f 65; +#X text 25 567 "Right flanger", f 8; +#X text 247 569 "Wrong flanger", f 8; +#X connect 0 0 5 0; +#X connect 1 0 17 0; +#X connect 2 0 3 0; +#X connect 3 0 4 1; +#X connect 4 0 6 0; +#X connect 5 0 16 0; +#X connect 7 0 1 0; +#X connect 7 0 2 0; +#X connect 7 0 8 0; +#X connect 7 0 4 0; +#X connect 9 0 3 1; +#X connect 9 0 12 0; +#X connect 12 0 1 1; +#X connect 16 0 9 0; From 4bd1eb3addf1f240a604f9e132e1f05ab2fbaf2f Mon Sep 17 00:00:00 2001 From: Michael Feldman Date: Thu, 18 Apr 2024 12:02:09 -0400 Subject: [PATCH 229/450] Update G09.pitchshift.pd Remove duplicate comment from G09.pitchshift.pd (#2264) --- doc/3.audio.examples/G09.pitchshift.pd | 119 ++++++++++++------------- 1 file changed, 59 insertions(+), 60 deletions(-) diff --git a/doc/3.audio.examples/G09.pitchshift.pd b/doc/3.audio.examples/G09.pitchshift.pd index c2bd9ba73..1a47e6268 100644 --- a/doc/3.audio.examples/G09.pitchshift.pd +++ b/doc/3.audio.examples/G09.pitchshift.pd @@ -1,43 +1,43 @@ -#N canvas 428 23 766 696 12; +#N canvas 291 25 769 686 12; #X declare -stdpath ./; -#X floatatom 101 97 6 0 0 0 - - - 0; -#X obj 101 468 *~; -#X obj 224 394 line~; -#X floatatom 224 149 6 0 0 0 - - - 0; -#X text 66 25 PITCH SHIFTER; -#X obj 224 123 r window; -#X obj 101 71 r transpose; -#X obj 101 153 exp; -#X floatatom 101 179 6 0 0 0 - - - 0; -#X obj 101 269 /; -#X obj 149 206 * 0.001; -#X obj 287 458 line~; -#X floatatom 287 382 0 0 0 0 - - - 0; -#X obj 287 356 r delay; -#X obj 101 505 +~; -#X obj 45 520 cos~; -#X obj 45 547 *~; -#X obj 164 591 +~; -#X obj 165 394 wrap~; -#X obj 241 453 *~; -#X obj 269 513 +~; -#X obj 183 530 cos~; -#X obj 183 557 *~; -#X msg 470 65 \; transpose 0 \; window 100 \; delay 0; -#X obj 470 39 loadbang; -#X obj 149 232 t b f; -#X floatatom 101 295 6 0 0 0 - - - 0; -#X obj 165 367 +~ 0.5; -#X obj 45 468 -~ 0.5; -#X obj 45 494 *~ 0.5; -#X obj 183 453 -~ 0.5; -#X obj 183 502 *~ 0.5; -#X obj 101 206 - 1; -#X obj 101 127 * 0.05776; -#X obj 101 232 * -1; -#X text 54 173 speed; -#X text 47 187 change; -#X text 29 286 tape head; +#X floatatom 101 72 6 0 0 0 - - - 0; +#X obj 101 443 *~; +#X obj 224 369 line~; +#X floatatom 224 124 6 0 0 0 - - - 0; +#X text 358 19 PITCH SHIFTER; +#X obj 224 98 r window; +#X obj 101 46 r transpose; +#X obj 101 128 exp; +#X floatatom 101 154 6 0 0 0 - - - 0; +#X obj 101 244 /; +#X obj 149 181 * 0.001; +#X obj 287 433 line~; +#X floatatom 287 357 0 0 0 0 - - - 0; +#X obj 287 331 r delay; +#X obj 101 480 +~; +#X obj 45 495 cos~; +#X obj 45 522 *~; +#X obj 165 566 +~; +#X obj 165 369 wrap~; +#X obj 241 428 *~; +#X obj 269 488 +~; +#X obj 183 505 cos~; +#X obj 183 532 *~; +#X msg 617 177 \; transpose 0 \; window 100 \; delay 0; +#X obj 617 151 loadbang; +#X obj 149 207 t b f; +#X floatatom 101 270 6 0 0 0 - - - 0; +#X obj 165 342 +~ 0.5; +#X obj 45 443 -~ 0.5; +#X obj 45 469 *~ 0.5; +#X obj 183 428 -~ 0.5; +#X obj 183 477 *~ 0.5; +#X obj 101 181 - 1; +#X obj 101 102 * 0.05776; +#X obj 101 207 * -1; +#X text 54 148 speed; +#X text 47 162 change; +#X text 29 261 tape head; #N canvas 514 161 608 645 test-input 0; #N canvas 0 0 450 300 (subpatch) 0; #X array array1 155944 float 0; @@ -77,27 +77,26 @@ #X connect 15 0 16 0; #X connect 16 0 17 0; #X connect 17 0 18 0; -#X restore 232 27 pd test-input; -#X obj 164 619 output~; -#X obj 101 326 phasor~; -#X obj 287 409 max 1.5; -#X text 290 315 delay; -#X text 287 333 (msec); -#X obj 224 176 max 1; -#X text 29 299 rotation freq, f 9; -#X obj 232 58 delwrite~ G09-del 5000; -#X obj 463 151 declare -stdpath ./; -#X obj 269 542 delread4~ G09-del, f 9; -#X obj 101 531 delread4~ G09-del, f 9; -#X text 502 641 updated for Pd version 0.52; -#X text 275 149 <-- window (msec); -#X msg 224 367 \$1 200; -#X msg 287 433 \$1 200; -#X text 151 97 <-- transposition in halftones; -#X text 369 209 This is a classic rotating-tape-head style pitch shifter using the [delread4~] variable delay object. There are two moving tape heads \, each of which is loudest at the middle of its trajectory \, and enveloped out at the moment it has to jump back (or forward) to start another scratch. Most of the brain work is in computing how fast the tape heads have to move to get the desired transposition., f 52; -#X text 368 349 The "window size" is the total trajectory of the read points in the delay line \, in milliseconds. The delay times are controlled by a [phasor~] object. The second delay time \, 180 degrees out of phase from the first one \, is computed using the "wrap" object., f 52; -#X text 367 444 The "window size" is the total trajectory of the read points in the delay line \, in milliseconds. The delay times are controlled by a [phasor~] object. The second delay time \, 180 degrees out of phase from the first one \, is computed using the [wrap~] object., f 52; -#X text 366 535 The [cos~] objects compute the fadein and fadeout of the two delay line outputs. They each traverse the positive half of the cosine waveform (phase -0.25 to +0.25) over the time the phase goes from one end to the other., f 52; +#X restore 392 179 pd test-input; +#X obj 165 594 output~; +#X obj 101 301 phasor~; +#X obj 287 384 max 1.5; +#X text 290 290 delay; +#X text 287 308 (msec); +#X obj 224 151 max 1; +#X text 29 274 rotation freq, f 9; +#X obj 392 210 delwrite~ G09-del 5000; +#X obj 536 79 declare -stdpath ./; +#X obj 269 517 delread4~ G09-del, f 9; +#X obj 101 506 delread4~ G09-del, f 9; +#X text 519 617 updated for Pd version 0.52; +#X text 275 124 <-- window (msec); +#X msg 224 342 \$1 200; +#X msg 287 408 \$1 200; +#X text 151 72 <-- transposition in halftones; +#X text 372 282 This is a classic rotating-tape-head style pitch shifter using the [delread4~] variable delay object. There are two moving tape heads \, each of which is loudest at the middle of its trajectory \, and enveloped out at the moment it has to jump back (or forward) to start another scratch. Most of the brain work is in computing how fast the tape heads have to move to get the desired transposition., f 52; +#X text 371 512 The [cos~] objects compute the fadein and fadeout of the two delay line outputs. They each traverse the positive half of the cosine waveform (phase -0.25 to +0.25) over the time the phase goes from one end to the other., f 52; +#X text 371 416 The "window size" is the total trajectory of the read points in the delay line \, in milliseconds. The delay times are controlled by a [phasor~] object. The second delay time \, 180 degrees out of phase from the first one \, is computed using the [wrap~] object., f 52; #X connect 0 0 33 0; #X connect 1 0 14 0; #X connect 2 0 1 1; From 731f919705faf7d22ee8ec92c02740bdf2d31b64 Mon Sep 17 00:00:00 2001 From: danomatika Date: Sat, 20 Apr 2024 17:16:00 +0200 Subject: [PATCH 230/450] protect macro vars with parens --- src/d_soundfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_soundfile.c b/src/d_soundfile.c index 085b644f8..ffa949a55 100644 --- a/src/d_soundfile.c +++ b/src/d_soundfile.c @@ -21,7 +21,7 @@ objects use Posix-like threads. */ /* Supported sample formats: LPCM (16 or 24 bit int) & 32 or 64 bit float */ -#define VALID_BYTESPERSAMPLE(b) (b == 2 || b == 3 || b == 4 || b == 8) +#define VALID_BYTESPERSAMPLE(b) ((b) == 2 || (b) == 3 || (b) == 4 || (b) == 8) #define MAXSFCHANS 64 From 4ccd1f37541bb325515f6a3a9bfc7a773284a042 Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Sun, 21 Apr 2024 18:51:20 +0000 Subject: [PATCH 231/450] Translated using Weblate (Spanish) Currently translated at 100.0% (494 of 494 strings) Translation: pure-data/Interface Translate-URL: https://hosted.weblate.org/projects/pure-data/pure-data/es/ --- po/es.po | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/po/es.po b/po/es.po index 119c4bb36..645cdbe40 100644 --- a/po/es.po +++ b/po/es.po @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: Pure Data 0.53.0\n" "Report-Msgid-Bugs-To: pd-dev@iem.at\n" "POT-Creation-Date: 2024-03-14 18:04+0100\n" -"PO-Revision-Date: 2024-03-15 10:44+0000\n" +"PO-Revision-Date: 2024-04-22 19:07+0000\n" "Last-Translator: gallegonovato \n" "Language-Team: Spanish \n" @@ -130,7 +130,7 @@ msgid "Put" msgstr "Poner" msgid "Find" -msgstr "Buscar" +msgstr "Encontrar" msgid "Media" msgstr "Medios" @@ -328,9 +328,7 @@ msgid "Pd window" msgstr "Ventana de Pd" msgid "Match whole word only" -msgstr "" -"Comparar sólo con\n" -"palabra completa" +msgstr "Coincidir solo con la palabra completa" msgid "Close" msgstr "Cerrar" From 68d550772283d771b7ed5957e388d5789678298c Mon Sep 17 00:00:00 2001 From: danomatika Date: Tue, 9 Apr 2024 22:07:59 +0200 Subject: [PATCH 232/450] update to libpd 0.14.1 --- src/s_libpdmidi.c | 38 ++++--- src/x_libpdreceive.c | 27 +++-- src/x_libpdreceive.h | 2 +- src/z_hooks.c | 30 ++--- src/z_hooks.h | 70 +++++++++--- src/z_libpd.c | 126 ++++++++++++++++----- src/z_libpd.h | 94 +++++++++++++--- src/z_print_util.c | 56 ++++++---- src/z_print_util.h | 16 +-- src/z_queued.c | 260 ++++++++++++++++++++++++------------------- src/z_queued.h | 56 +++++++--- src/z_ringbuffer.c | 8 +- src/z_ringbuffer.h | 6 +- 13 files changed, 528 insertions(+), 261 deletions(-) diff --git a/src/s_libpdmidi.c b/src/s_libpdmidi.c index ddac90909..693df5bfe 100644 --- a/src/s_libpdmidi.c +++ b/src/s_libpdmidi.c @@ -3,7 +3,6 @@ * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ #include "m_pd.h" -#include "s_stuff.h" #include "z_libpd.h" #include "z_hooks.h" @@ -17,38 +16,45 @@ #define CHANNEL ((CLAMP12BIT(port) << 4) | CLAMP4BIT(channel)) void outmidi_noteon(int port, int channel, int pitch, int velo) { - if (libpd_noteonhook) - libpd_noteonhook(CHANNEL, CLAMP7BIT(pitch), CLAMP7BIT(velo)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_noteonhook) + imp->i_hooks.h_noteonhook(CHANNEL, CLAMP7BIT(pitch), CLAMP7BIT(velo)); } void outmidi_controlchange(int port, int channel, int ctl, int value) { - if (libpd_controlchangehook) - libpd_controlchangehook(CHANNEL, CLAMP7BIT(ctl), CLAMP7BIT(value)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_controlchangehook) + imp->i_hooks.h_controlchangehook(CHANNEL, CLAMP7BIT(ctl), CLAMP7BIT(value)); } void outmidi_programchange(int port, int channel, int value) { - if (libpd_programchangehook) - libpd_programchangehook(CHANNEL, CLAMP7BIT(value)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_programchangehook) + imp->i_hooks.h_programchangehook(CHANNEL, CLAMP7BIT(value)); } void outmidi_pitchbend(int port, int channel, int value) { - if (libpd_pitchbendhook) - libpd_pitchbendhook(CHANNEL, CLAMP14BIT(value) - 8192); // remove offset + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_pitchbendhook) + imp->i_hooks.h_pitchbendhook(CHANNEL, CLAMP14BIT(value) - 8192); // remove offset } void outmidi_aftertouch(int port, int channel, int value) { - if (libpd_aftertouchhook) - libpd_aftertouchhook(CHANNEL, CLAMP7BIT(value)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_aftertouchhook) + imp->i_hooks.h_aftertouchhook(CHANNEL, CLAMP7BIT(value)); } void outmidi_polyaftertouch(int port, int channel, int pitch, int value) { - if (libpd_polyaftertouchhook) - libpd_polyaftertouchhook(CHANNEL, CLAMP7BIT(pitch), CLAMP7BIT(value)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_polyaftertouchhook) + imp->i_hooks.h_polyaftertouchhook(CHANNEL, CLAMP7BIT(pitch), CLAMP7BIT(value)); } void outmidi_byte(int port, int value) { - if (libpd_midibytehook) - libpd_midibytehook(CLAMP12BIT(port), CLAMP8BIT(value)); + t_libpdimp *imp = LIBPDSTUFF; + if (imp && imp->i_hooks.h_midibytehook) + imp->i_hooks.h_midibytehook(CLAMP12BIT(port), CLAMP8BIT(value)); } /* tell Pd GUI that our list of MIDI APIs is empty */ @@ -65,6 +71,7 @@ void sys_close_midi() {} void sys_reopen_midi(void) {} void sys_initmidiqueue(void) {} void sys_pollmidiqueue(void) {} +void sys_setmiditimediff(double inbuftime, double outbuftime) {} void glob_midi_setapi(void *dummy, t_floatarg f) {} void glob_midi_properties(t_pd *dummy, t_floatarg flongform) {} void glob_midi_dialog(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) {} @@ -72,5 +79,4 @@ int sys_mididevnametonumber(int output, const char *name) { return 0; } void sys_mididevnumbertoname(int output, int devno, char *name, int namesize) {} void sys_set_midi_api(int api) {} void sys_gui_midipreferences(void) {} - int sys_midiapi; diff --git a/src/x_libpdreceive.c b/src/x_libpdreceive.c index 18d6cb81b..4a7dddad0 100644 --- a/src/x_libpdreceive.c +++ b/src/x_libpdreceive.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2010 Peter Brinkmann (peter.brinkmann@gmail.com) - * Copyright (c) 2012-2019 libpd team + * Copyright (c) 2012-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -9,7 +9,6 @@ * */ -#include #include "x_libpdreceive.h" #include "z_libpd.h" #include "z_hooks.h" @@ -17,20 +16,26 @@ static t_class *libpdrec_class; typedef struct _libpdrec { - t_object x_obj; - t_symbol *x_sym; + t_object x_obj; + t_symbol *x_sym; + t_libpdhooks *x_hooks; } t_libpdrec; static void libpdrecbang(t_libpdrec *x) { - if (libpd_banghook) (*libpd_banghook)(x->x_sym->s_name); + if (x->x_hooks->h_banghook) + (*x->x_hooks->h_banghook)(x->x_sym->s_name); } static void libpdrecfloat(t_libpdrec *x, t_float f) { - if (libpd_floathook) (*libpd_floathook)(x->x_sym->s_name, f); + if (x->x_hooks->h_floathook) + (*x->x_hooks->h_floathook)(x->x_sym->s_name, f); + else if (x->x_hooks->h_doublehook) + (*x->x_hooks->h_doublehook)(x->x_sym->s_name, f); } static void libpdrecsymbol(t_libpdrec *x, t_symbol *s) { - if (libpd_symbolhook) (*libpd_symbolhook)(x->x_sym->s_name, s->s_name); + if (x->x_hooks->h_symbolhook) + (*x->x_hooks->h_symbolhook)(x->x_sym->s_name, s->s_name); } static void libpdrecpointer(t_libpdrec *x, t_gpointer *gp) { @@ -38,13 +43,14 @@ static void libpdrecpointer(t_libpdrec *x, t_gpointer *gp) { } static void libpdreclist(t_libpdrec *x, t_symbol *s, int argc, t_atom *argv) { - if (libpd_listhook) (*libpd_listhook)(x->x_sym->s_name, argc, argv); + if (x->x_hooks->h_listhook) + (*x->x_hooks->h_listhook)(x->x_sym->s_name, argc, argv); } static void libpdrecanything(t_libpdrec *x, t_symbol *s, int argc, t_atom *argv) { - if (libpd_messagehook) - (*libpd_messagehook)(x->x_sym->s_name, s->s_name, argc, argv); + if (x->x_hooks->h_messagehook) + (*x->x_hooks->h_messagehook)(x->x_sym->s_name, s->s_name, argc, argv); } static void libpdreceive_free(t_libpdrec *x) { @@ -55,6 +61,7 @@ static void *libpdreceive_donew(t_symbol *s) { t_libpdrec *x; x = (t_libpdrec *)pd_new(libpdrec_class); x->x_sym = s; + x->x_hooks = &LIBPDSTUFF->i_hooks; pd_bind(&x->x_obj.ob_pd, s); return x; } diff --git a/src/x_libpdreceive.h b/src/x_libpdreceive.h index 0a33458e2..13d4064c1 100644 --- a/src/x_libpdreceive.h +++ b/src/x_libpdreceive.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2010 Peter Brinkmann (peter.brinkmann@gmail.com) - * Copyright (c) 2012-2019 libpd team + * Copyright (c) 2012-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. diff --git a/src/z_hooks.c b/src/z_hooks.c index e25f6c4ab..4c2ee01ba 100644 --- a/src/z_hooks.c +++ b/src/z_hooks.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2013 Dan Wilcox (danomatika@gmail.com) - * Copyright (c) 2013-2019 libpd team + * Copyright (c) 2013-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -10,17 +10,21 @@ */ #include "z_hooks.h" +#include -t_libpd_banghook libpd_banghook = NULL; -t_libpd_floathook libpd_floathook = NULL; -t_libpd_symbolhook libpd_symbolhook = NULL; -t_libpd_listhook libpd_listhook = NULL; -t_libpd_messagehook libpd_messagehook = NULL; +/* instance */ -t_libpd_noteonhook libpd_noteonhook = NULL; -t_libpd_controlchangehook libpd_controlchangehook = NULL; -t_libpd_programchangehook libpd_programchangehook = NULL; -t_libpd_pitchbendhook libpd_pitchbendhook = NULL; -t_libpd_aftertouchhook libpd_aftertouchhook = NULL; -t_libpd_polyaftertouchhook libpd_polyaftertouchhook = NULL; -t_libpd_midibytehook libpd_midibytehook = NULL; +t_libpdimp libpd_mainimp = {NULL}; + +t_libpdimp* libpdimp_new(void) { + t_libpdimp *imp = calloc(1, sizeof(t_libpdimp)); + return imp; +} + +void libpdimp_free(t_libpdimp *imp) { + if (imp == &libpd_mainimp) return; + if (imp->i_queued) imp->i_queued_freehook(imp->i_queued); + if (imp->i_print_util) free(imp->i_print_util); + if (imp->i_data && imp->i_data_freehook) imp->i_data_freehook(imp->i_data); + free(imp); +} diff --git a/src/z_hooks.h b/src/z_hooks.h index a1aebff84..d10f1cc86 100644 --- a/src/z_hooks.h +++ b/src/z_hooks.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2013 Dan Wilcox (danomatika@gmail.com) - * Copyright (c) 2013-2019 libpd team + * Copyright (c) 2013-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -13,23 +13,61 @@ #define __Z_HOOKS_H__ #include "z_libpd.h" +#include "s_stuff.h" -// internal hooks +// internal hooks, etc // do *not* include this file in a user-facing header -// no libpd_printhook as libpd_set_printhook() sets internal sys_printhook -extern t_libpd_banghook libpd_banghook; -extern t_libpd_floathook libpd_floathook; -extern t_libpd_symbolhook libpd_symbolhook; -extern t_libpd_listhook libpd_listhook; -extern t_libpd_messagehook libpd_messagehook; - -extern t_libpd_noteonhook libpd_noteonhook; -extern t_libpd_controlchangehook libpd_controlchangehook; -extern t_libpd_programchangehook libpd_programchangehook; -extern t_libpd_pitchbendhook libpd_pitchbendhook; -extern t_libpd_aftertouchhook libpd_aftertouchhook; -extern t_libpd_polyaftertouchhook libpd_polyaftertouchhook; -extern t_libpd_midibytehook libpd_midibytehook; +/* hooks */ + +typedef struct _libpdhooks { + + // messages + // no h_printhook as libpd_set_printhook() sets internal STUFF->st_printhook + t_libpd_banghook h_banghook; + t_libpd_floathook h_floathook; + t_libpd_doublehook h_doublehook; + t_libpd_symbolhook h_symbolhook; + t_libpd_listhook h_listhook; + t_libpd_messagehook h_messagehook; + + // MIDI + t_libpd_noteonhook h_noteonhook; + t_libpd_controlchangehook h_controlchangehook; + t_libpd_programchangehook h_programchangehook; + t_libpd_pitchbendhook h_pitchbendhook; + t_libpd_aftertouchhook h_aftertouchhook; + t_libpd_polyaftertouchhook h_polyaftertouchhook; + t_libpd_midibytehook h_midibytehook; +} t_libpdhooks; + +/* instance */ + +/// libpd per-instance implementation data +typedef struct _libpdimp { + t_libpdhooks i_hooks; /* event hooks */ + void *i_queued; /* queued data, default NULL */ + void *i_print_util; /* print util data, default NULL */ + void *i_data; /* user data, default NULL */ + t_libpd_freehook i_queued_freehook; /* i_queued free, default NULL */ + t_libpd_freehook i_data_freehook; /* i_data free, default NULL */ +} t_libpdimp; + +/// main instance implementation data, always valid +extern t_libpdimp libpd_mainimp; + +/// alloc new instance implementation data +t_libpdimp* libpdimp_new(void); + +/// free instance implementation data +/// does nothing if imp is libpd_mainimp +void libpdimp_free(t_libpdimp *imp); + +/// get current instance implementation data +#ifdef PDINSTANCE + #define LIBPDSTUFF ((t_libpdimp *)(STUFF->st_impdata)) +#else + #define LIBPDSTUFF ((t_libpdimp *)&libpd_mainimp) +#endif #endif diff --git a/src/z_libpd.c b/src/z_libpd.c index 6bf74794a..cee4c2fc4 100644 --- a/src/z_libpd.c +++ b/src/z_libpd.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2010 Peter Brinkmann (peter.brinkmann@gmail.com) - * Copyright (c) 2012-2019 libpd team + * Copyright (c) 2012-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -20,10 +20,18 @@ #include "z_libpd.h" #include "x_libpdreceive.h" #include "z_hooks.h" -#include "s_stuff.h" #include "m_imp.h" #include "g_all_guis.h" +// pd_init() doesn't call socket_init() which is needed on windows for +// libpd_start_gui() to work +#if (defined(_WIN32) || defined(_WIN64)) && PD_MINOR_VERSION > 50 +# include "s_net.h" +# define SOCKET_INIT socket_init(); +#else +# define SOCKET_INIT +#endif + #if PD_MINOR_VERSION < 46 # define HAVE_SCHED_TICK_ARG #endif @@ -64,9 +72,11 @@ static void *get_object(const char *s) { return x; } +// note: could we use pd_this instead? +static int s_initialized = 0; + // this is called instead of sys_main() to start things int libpd_init(void) { - static int s_initialized = 0; if (s_initialized) return -1; // only allow init once (for now) s_initialized = 1; signal(SIGFPE, SIG_IGN); @@ -86,10 +96,12 @@ int libpd_init(void) { STUFF->st_soundin = NULL; STUFF->st_soundout = NULL; STUFF->st_schedblocksize = DEFDACBLKSIZE; + STUFF->st_impdata = &libpd_mainimp; sys_init_fdpoll(); libpdreceive_setup(); STUFF->st_searchpath = NULL; sys_libdir = gensym(""); + SOCKET_INIT post("pd %d.%d.%d%s", PD_MAJOR_VERSION, PD_MINOR_VERSION, PD_BUGFIX_VERSION, PD_TEST_VERSION); #ifdef LIBPD_EXTRA @@ -283,6 +295,20 @@ int libpd_write_array(const char *name, int offset, const float *src, int n) { return 0; } +int libpd_read_array_double(double *dest, const char *name, int offset, int n) { + sys_lock(); + MEMCPY(*dest++, (vec++)->w_float) + sys_unlock(); + return 0; +} + +int libpd_write_array_double(const char *name, int offset, const double *src, int n) { + sys_lock(); + MEMCPY((vec++)->w_float, *src++) + sys_unlock(); + return 0; +} + int libpd_bang(const char *recv) { void *obj; sys_lock(); @@ -297,7 +323,7 @@ int libpd_bang(const char *recv) { return 0; } -int libpd_float(const char *recv, float x) { +static int libpd_dofloat(const char *recv, t_float x) { void *obj; sys_lock(); obj = get_object(recv); @@ -311,6 +337,14 @@ int libpd_float(const char *recv, float x) { return 0; } +int libpd_float(const char *recv, float x) { + return libpd_dofloat(recv, x); +} + +int libpd_double(const char *recv, double x) { + return libpd_dofloat(recv, x); +} + int libpd_symbol(const char *recv, const char *symbol) { void *obj; sys_lock(); @@ -346,6 +380,10 @@ void libpd_add_float(float x) { ADD_ARG(SETFLOAT); } +void libpd_add_double(double x) { + ADD_ARG(SETFLOAT); +} + void libpd_add_symbol(const char *symbol) { t_symbol *x; sys_lock(); @@ -366,6 +404,10 @@ void libpd_set_float(t_atom *a, float x) { SETFLOAT(a, x); } +void libpd_set_double(t_atom *v, double x) { + SETFLOAT(v, x); +} + void libpd_set_symbol(t_atom *a, const char *symbol) { SETSYMBOL(a, gensym(symbol)); } @@ -420,28 +462,40 @@ int libpd_exists(const char *recv) { return retval; } +// when setting hooks, use mainimp if pd is not yet inited +#define IMP (s_initialized ? LIBPDSTUFF : &libpd_mainimp) + void libpd_set_printhook(const t_libpd_printhook hook) { - sys_printhook = (t_printhook) hook; + if (!s_initialized) // set default hook + sys_printhook = (t_printhook)hook; + else // set instance hook + STUFF->st_printhook = (t_printhook)hook; } void libpd_set_banghook(const t_libpd_banghook hook) { - libpd_banghook = hook; + IMP->i_hooks.h_banghook = hook; } void libpd_set_floathook(const t_libpd_floathook hook) { - libpd_floathook = hook; + IMP->i_hooks.h_floathook = hook; + IMP->i_hooks.h_doublehook = NULL; +} + +void libpd_set_doublehook(const t_libpd_doublehook hook) { + IMP->i_hooks.h_floathook = NULL; + IMP->i_hooks.h_doublehook = hook; } void libpd_set_symbolhook(const t_libpd_symbolhook hook) { - libpd_symbolhook = hook; + IMP->i_hooks.h_symbolhook = hook; } void libpd_set_listhook(const t_libpd_listhook hook) { - libpd_listhook = hook; + IMP->i_hooks.h_listhook = hook; } void libpd_set_messagehook(const t_libpd_messagehook hook) { - libpd_messagehook = hook; + IMP->i_hooks.h_messagehook = hook; } int libpd_is_float(t_atom *a) { @@ -456,6 +510,10 @@ float libpd_get_float(t_atom *a) { return (a)->a_w.w_float; } +double libpd_get_double(t_atom *a) { + return (a)->a_w.w_float; +} + const char *libpd_get_symbol(t_atom *a) { return (a)->a_w.w_symbol->s_name; } @@ -557,31 +615,31 @@ int libpd_sysrealtime(int port, int byte) { } void libpd_set_noteonhook(const t_libpd_noteonhook hook) { - libpd_noteonhook = hook; + IMP->i_hooks.h_noteonhook = hook; } void libpd_set_controlchangehook(const t_libpd_controlchangehook hook) { - libpd_controlchangehook = hook; + IMP->i_hooks.h_controlchangehook = hook; } void libpd_set_programchangehook(const t_libpd_programchangehook hook) { - libpd_programchangehook = hook; + IMP->i_hooks.h_programchangehook = hook; } void libpd_set_pitchbendhook(const t_libpd_pitchbendhook hook) { - libpd_pitchbendhook = hook; + IMP->i_hooks.h_pitchbendhook = hook; } void libpd_set_aftertouchhook(const t_libpd_aftertouchhook hook) { - libpd_aftertouchhook = hook; + IMP->i_hooks.h_aftertouchhook = hook; } void libpd_set_polyaftertouchhook(const t_libpd_polyaftertouchhook hook) { - libpd_polyaftertouchhook = hook; + IMP->i_hooks.h_polyaftertouchhook = hook; } void libpd_set_midibytehook(const t_libpd_midibytehook hook) { - libpd_midibytehook = hook; + IMP->i_hooks.h_midibytehook = hook; } int libpd_start_gui(const char *path) { @@ -608,21 +666,25 @@ int libpd_poll_gui(void) { t_pdinstance *libpd_new_instance(void) { #ifdef PDINSTANCE - return pdinstance_new(); + t_pdinstance *pd = pdinstance_new(); + pd->pd_stuff->st_impdata = libpdimp_new(); + return pd; #else - return 0; + return NULL; #endif } -void libpd_set_instance(t_pdinstance *p) { +void libpd_set_instance(t_pdinstance *pd) { #ifdef PDINSTANCE - pd_setinstance(p); + pd_setinstance(pd); #endif } -void libpd_free_instance(t_pdinstance *p) { +void libpd_free_instance(t_pdinstance *pd) { #ifdef PDINSTANCE - pdinstance_free(p); + if (pd == &pd_maininstance) return; + libpdimp_free(pd->pd_stuff->st_impdata); + pdinstance_free(pd); #endif } @@ -630,13 +692,8 @@ t_pdinstance *libpd_this_instance(void) { return pd_this; } -t_pdinstance *libpd_get_instance(int index) { -#ifdef PDINSTANCE - if(index < 0 || index >= pd_ninstances) {return 0;} - return pd_instances[index]; -#else - return pd_this; -#endif +t_pdinstance *libpd_main_instance(void) { + return &pd_maininstance; } int libpd_num_instances(void) { @@ -647,6 +704,15 @@ int libpd_num_instances(void) { #endif } +void libpd_set_instancedata(void *data, t_libpd_freehook freehook) { + LIBPDSTUFF->i_data = data; + LIBPDSTUFF->i_data_freehook = freehook; +} + +void* libpd_get_instancedata() { + return LIBPDSTUFF->i_data; +} + void libpd_set_verbose(int verbose) { if (verbose < 0) verbose = 0; sys_verbose = verbose; diff --git a/src/z_libpd.h b/src/z_libpd.h index d59ce93cd..f656554a3 100644 --- a/src/z_libpd.h +++ b/src/z_libpd.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2010 Peter Brinkmann (peter.brinkmann@gmail.com) - * Copyright (c) 2012-2019 libpd team + * Copyright (c) 2012-2021 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -78,6 +78,7 @@ EXTERN int libpd_process_short(const int ticks, /// process interleaved double samples from inBuffer -> libpd -> outBuffer /// buffer sizes are based on # of ticks and channels where: /// size = ticks * libpd_blocksize() * (in/out)channels +/// note: only full-precision when compiled with PD_FLOATSIZE=64 /// returns 0 on success EXTERN int libpd_process_double(const int ticks, const double *inBuffer, double *outBuffer); @@ -103,6 +104,7 @@ EXTERN int libpd_process_raw_short(const short *inBuffer, short *outBuffer); /// copies buffer contents to/from libpd without striping /// buffer sizes are based on a single tick and # of channels where: /// size = libpd_blocksize() * (in/out)channels +/// note: only full-precision when compiled with PD_FLOATSIZE=64 /// returns 0 on success EXTERN int libpd_process_raw_double(const double *inBuffer, double *outBuffer); @@ -127,7 +129,25 @@ EXTERN int libpd_read_array(float *dest, const char *name, int offset, int n); /// returns 0 on success or a negative error code if the array is non-existent /// or offset + n exceeds range of array EXTERN int libpd_write_array(const char *name, int offset, - const float *src, int n); + const float *src, int n); + +/// read n values from named src array and write into dest starting at an offset +/// note: performs no bounds checking on dest +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +/// returns 0 on success or a negative error code if the array is non-existent +/// or offset + n exceeds range of array +/// double-precision variant of libpd_read_array() +EXTERN int libpd_read_array_double(double *dest, const char *src, + int offset, int n); + +/// read n values from src and write into named dest array starting at an offset +/// note: performs no bounds checking on src +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +/// returns 0 on success or a negative error code if the array is non-existent +/// or offset + n exceeds range of array +/// double-precision variant of libpd_write_array() +EXTERN int libpd_write_array_double(const char *dest, int offset, + const double *src, int n); /* sending messages to pd */ @@ -141,6 +161,12 @@ EXTERN int libpd_bang(const char *recv); /// returns 0 on success or -1 if receiver name is non-existent EXTERN int libpd_float(const char *recv, float x); +/// send a double to a destination receiver +/// ex: libpd_double("foo", 1.1) will send a 1.1 to [s foo] on the next tick +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +/// returns 0 on success or -1 if receiver name is non-existent +EXTERN int libpd_double(const char *recv, double x); + /// send a symbol to a destination receiver /// ex: libpd_symbol("foo", "bar") will send "bar" to [s foo] on the next tick /// returns 0 on success or -1 if receiver name is non-existent @@ -157,6 +183,10 @@ EXTERN int libpd_start_message(int maxlen); /// add a float to the current message in progress EXTERN void libpd_add_float(float x); +/// add a double to the current message in progress +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +EXTERN void libpd_add_double(double x); + /// add a symbol to the current message in progress EXTERN void libpd_add_symbol(const char *symbol); @@ -185,6 +215,10 @@ EXTERN int libpd_finish_message(const char *recv, const char *msg); /// write a float value to the given atom EXTERN void libpd_set_float(t_atom *a, float x); +/// write a double value to the given atom +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +EXTERN void libpd_set_double(t_atom *v, double x); + /// write a symbol value to the given atom EXTERN void libpd_set_symbol(t_atom *a, const char *symbol); @@ -205,7 +239,7 @@ EXTERN int libpd_list(const char *recv, int argc, t_atom *argv); /// libpd_set_float(v, 1); /// libpd_message("pd", "dsp", 1, v); EXTERN int libpd_message(const char *recv, const char *msg, - int argc, t_atom *argv); + int argc, t_atom *argv); /* receiving messages from pd */ @@ -233,6 +267,10 @@ typedef void (*t_libpd_banghook)(const char *recv); /// float receive hook signature, recv is the source receiver name typedef void (*t_libpd_floathook)(const char *recv, float x); +/// double receive hook signature, recv is the source receiver name +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +typedef void (*t_libpd_doublehook)(const char *recv, double x); + /// symbol receive hook signature, recv is the source receiver name typedef void (*t_libpd_symbolhook)(const char *recv, const char *symbol); @@ -282,9 +320,21 @@ EXTERN void libpd_set_printhook(const t_libpd_printhook hook); EXTERN void libpd_set_banghook(const t_libpd_banghook hook); /// set the float receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: avoid calling this while DSP is running +/// note: you can either have a float receiver hook, or a double receiver +/// hook (see below), but not both. +/// calling this, will automatically unset the double receiver hook +/// note: only full-precision when compiled with PD_FLOATSIZE=64 EXTERN void libpd_set_floathook(const t_libpd_floathook hook); +/// set the double receiver hook, NULL by default +/// note: avoid calling this while DSP is running +/// note: you can either have a double receiver hook, or a float receiver +/// hook (see above), but not both. +/// calling this, will automatically unset the float receiver hook +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +EXTERN void libpd_set_doublehook(const t_libpd_doublehook hook); + /// set the symbol receiver hook, NULL by default /// note: do not call this while DSP is running EXTERN void libpd_set_symbolhook(const t_libpd_symbolhook hook); @@ -309,8 +359,13 @@ EXTERN int libpd_is_symbol(t_atom *a); /// note: no NULL or type checks are performed EXTERN float libpd_get_float(t_atom *a); +/// returns the double value of an atom +/// note: no NULL or type checks are performed +/// note: only full-precision when compiled with PD_FLOATSIZE=64 +EXTERN double libpd_get_double(t_atom *a); + +/// returns the symbol value of an atom /// note: no NULL or type checks are performed -/// get symbol value of an atom EXTERN const char *libpd_get_symbol(t_atom *a); /// increment to the next atom in an atom vector @@ -473,31 +528,42 @@ EXTERN int libpd_poll_gui(void); /* multiple instances */ -/// create a new pd instance +/// create a new pd instance and set as current +/// note: use this in place of pdinstance_new() /// returns new instance or NULL when libpd is not compiled with PDINSTANCE EXTERN t_pdinstance *libpd_new_instance(void); /// set the current pd instance /// subsequent libpd calls will affect this instance only +/// note: use this in place of pd_setinstance() /// does nothing when libpd is not compiled with PDINSTANCE -EXTERN void libpd_set_instance(t_pdinstance *p); +EXTERN void libpd_set_instance(t_pdinstance *pd); -/// free a pd instance +/// free a pd instance and set main instance as current +/// note: use this in place of pdinstance_free() /// does nothing when libpd is not compiled with PDINSTANCE -EXTERN void libpd_free_instance(t_pdinstance *p); +EXTERN void libpd_free_instance(t_pdinstance *pd); /// get the current pd instance EXTERN t_pdinstance *libpd_this_instance(void); -/// get a pd instance by index -/// returns NULL if index is out of bounds or "this" instance when libpd is not -/// compiled with PDINSTANCE -EXTERN t_pdinstance *libpd_get_instance(int index); +/// get the main pd instance, always valid +EXTERN t_pdinstance *libpd_main_instance(void); -/// get the number of pd instances +/// get the number of pd instances, including the main instance /// returns number or 1 when libpd is not compiled with PDINSTANCE EXTERN int libpd_num_instances(void); +/// per-instance data free hook signature +typedef void (*t_libpd_freehook)(void *data); + +/// set per-instance user data and optional free hook +/// note: if non-NULL, freehook is called by libpd_free_instance() +EXTERN void libpd_set_instancedata(void *data, t_libpd_freehook freehook); + +/// get per-instance user data +EXTERN void* libpd_get_instancedata(void); + /* log level */ /// set verbose print state: 0 or 1 diff --git a/src/z_print_util.c b/src/z_print_util.c index 315a5e539..cebc4c4f7 100644 --- a/src/z_print_util.c +++ b/src/z_print_util.c @@ -1,6 +1,7 @@ /* * Copyright (c) 2013 Dan Wilcox (danomatika@gmail.com) & * Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2022 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -14,38 +15,55 @@ #include #include -t_libpd_printhook libpd_concatenated_printhook = NULL; +#include "../z_hooks.h" #define PRINT_LINE_SIZE 2048 +typedef struct _print_util { + t_libpd_printhook concat_printhook; + char concat_buf[PRINT_LINE_SIZE]; /* line buffer */ + int concat_len; /* current line len */ +} print_util; + void libpd_set_concatenated_printhook(const t_libpd_printhook hook) { - libpd_concatenated_printhook = hook; + t_libpdimp *imp = LIBPDSTUFF; + if (hook) { + if (!imp->i_print_util) { + imp->i_print_util = calloc(1, sizeof(print_util)); + } + ((print_util *)imp->i_print_util)->concat_printhook = hook; + } + else { + if (imp->i_print_util) { + free(imp->i_print_util); + imp->i_print_util = NULL; + } + } } void libpd_print_concatenator(const char *s) { - if (!libpd_concatenated_printhook) return; + print_util *util = (print_util *)LIBPDSTUFF->i_print_util; + if (!util) return; - static char concatenated_print_line[PRINT_LINE_SIZE]; - static int len_line = 0; - concatenated_print_line[len_line] = '\0'; + util->concat_buf[util->concat_len] = '\0'; - int len = (int) strlen(s); - while (len_line + len >= PRINT_LINE_SIZE) { - int d = PRINT_LINE_SIZE - 1 - len_line; - strncat(concatenated_print_line, s, d); - libpd_concatenated_printhook(concatenated_print_line); + int len = (int)strlen(s); + while (util->concat_len + len >= PRINT_LINE_SIZE) { + int d = PRINT_LINE_SIZE - 1 - util->concat_len; + strncat(util->concat_buf, s, d); + util->concat_printhook(util->concat_buf); s += d; len -= d; - len_line = 0; - concatenated_print_line[0] = '\0'; + util->concat_len = 0; + util->concat_buf[0] = '\0'; } - strncat(concatenated_print_line, s, len); - len_line += len; + strncat(util->concat_buf, s, len); + util->concat_len += len; - if (len_line > 0 && concatenated_print_line[len_line - 1] == '\n') { - concatenated_print_line[len_line - 1] = '\0'; - libpd_concatenated_printhook(concatenated_print_line); - len_line = 0; + if (util->concat_len > 0 && util->concat_buf[util->concat_len - 1] == '\n') { + util->concat_buf[util->concat_len - 1] = '\0'; + util->concat_printhook(util->concat_buf); + util->concat_len = 0; } } diff --git a/src/z_print_util.h b/src/z_print_util.h index dcdd0f852..d2b380a80 100644 --- a/src/z_print_util.h +++ b/src/z_print_util.h @@ -1,6 +1,7 @@ /* * Copyright (c) 2013 Dan Wilcox (danomatika@gmail.com) & * Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2022 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -19,21 +20,20 @@ extern "C" { #endif -/// concatenate print messages into single lines before returning them to the +/// assign the pointer to your print line handler +/// concatenates print messages into single lines before returning them to the /// print hook: -/// ie. line "hello 123\n" is received in 1 part -> "hello 123" -/// for comparison, the default behavior receives individual words and spaces: -/// -/// ie. line "hello 123" is sent in 3 parts -> "hello", " ", "123\n" - -/// assign the pointer to your print handler +/// ex: line "hello 123\n" is received in 1 part -> "hello 123" +/// for comparison, the default behavior may receive messages in chunks: +/// ex: line "hello 123" could be sent in 3 parts -> "hello", " ", "123\n" +/// call with NULL pointer to free internal buffer +/// note: do not call before libpd_init() EXTERN void libpd_set_concatenated_printhook(const t_libpd_printhook hook); /// assign this function pointer to libpd_printhook or libpd_queued_printhook, /// depending on whether you're using queued messages, to intercept and /// concatenate print messages: /// libpd_set_printhook(libpd_print_concatenator); -/// or /// libpd_set_concatenated_printhook(your_print_handler); /// note: the char pointer argument is only good for the duration of the print /// callback; if you intend to use the argument after the callback has diff --git a/src/z_queued.c b/src/z_queued.c index f893998d1..4044ad03d 100644 --- a/src/z_queued.c +++ b/src/z_queued.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2022 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -13,22 +14,20 @@ #include #include +#include "../z_hooks.h" #include "z_ringbuffer.h" -t_libpd_printhook libpd_queued_printhook = NULL; -t_libpd_banghook libpd_queued_banghook = NULL; -t_libpd_floathook libpd_queued_floathook = NULL; -t_libpd_symbolhook libpd_queued_symbolhook = NULL; -t_libpd_listhook libpd_queued_listhook = NULL; -t_libpd_messagehook libpd_queued_messagehook = NULL; - -t_libpd_noteonhook libpd_queued_noteonhook = NULL; -t_libpd_controlchangehook libpd_queued_controlchangehook = NULL; -t_libpd_programchangehook libpd_queued_programchangehook = NULL; -t_libpd_pitchbendhook libpd_queued_pitchbendhook = NULL; -t_libpd_aftertouchhook libpd_queued_aftertouchhook = NULL; -t_libpd_polyaftertouchhook libpd_queued_polyaftertouchhook = NULL; -t_libpd_midibytehook libpd_queued_midibytehook = NULL; +#define BUFFER_SIZE 16384 + +typedef struct _queued_stuff { + t_libpdhooks hooks; + t_libpd_printhook printhook; + ring_buffer *pd_receive_buffer; + ring_buffer *midi_receive_buffer; + char temp_buffer[BUFFER_SIZE]; +} queued_stuff; + +#define QUEUEDSTUFF ((queued_stuff *)(LIBPDSTUFF->i_queued)) typedef struct _pd_params { enum { @@ -36,7 +35,7 @@ typedef struct _pd_params { LIBPD_SYMBOL, LIBPD_LIST, LIBPD_MESSAGE, } type; const char *src; - float x; + t_float x; const char *sym; int argc; } pd_params; @@ -51,49 +50,48 @@ typedef struct _midi_params { int midi3; } midi_params; -#define BUFFER_SIZE 16384 #define S_PD_PARAMS sizeof(pd_params) #define S_MIDI_PARAMS sizeof(midi_params) #define S_ATOM sizeof(t_atom) -static ring_buffer *pd_receive_buffer = NULL; -static ring_buffer *midi_receive_buffer = NULL; - static void receive_print(pd_params *p, char **buffer) { - if (libpd_queued_printhook) { - libpd_queued_printhook(*buffer); + if (QUEUEDSTUFF->printhook) { + QUEUEDSTUFF->printhook(*buffer); } *buffer += p->argc; } static void receive_bang(pd_params *p, char **buffer) { - if (libpd_queued_banghook) { - libpd_queued_banghook(p->src); + if (QUEUEDSTUFF->hooks.h_banghook) { + QUEUEDSTUFF->hooks.h_banghook(p->src); } } static void receive_float(pd_params *p, char **buffer) { - if (libpd_queued_floathook) { - libpd_queued_floathook(p->src, p->x); + if (QUEUEDSTUFF->hooks.h_floathook) { + QUEUEDSTUFF->hooks.h_floathook(p->src, (float)p->x); + } + else if (QUEUEDSTUFF->hooks.h_doublehook) { + QUEUEDSTUFF->hooks.h_doublehook(p->src, (double)p->x); } } static void receive_symbol(pd_params *p, char **buffer) { - if (libpd_queued_symbolhook) { - libpd_queued_symbolhook(p->src, p->sym); + if (QUEUEDSTUFF->hooks.h_symbolhook) { + QUEUEDSTUFF->hooks.h_symbolhook(p->src, p->sym); } } static void receive_list(pd_params *p, char **buffer) { - if (libpd_queued_listhook) { - libpd_queued_listhook(p->src, p->argc, (t_atom *) *buffer); + if (QUEUEDSTUFF->hooks.h_listhook) { + QUEUEDSTUFF->hooks.h_listhook(p->src, p->argc, (t_atom *) *buffer); } *buffer += p->argc * S_ATOM; } static void receive_message(pd_params *p, char **buffer) { - if (libpd_queued_messagehook) { - libpd_queued_messagehook(p->src, p->sym, p->argc, (t_atom *) *buffer); + if (QUEUEDSTUFF->hooks.h_messagehook) { + QUEUEDSTUFF->hooks.h_messagehook(p->src, p->sym, p->argc, (t_atom *) *buffer); } *buffer += p->argc * S_ATOM; } @@ -102,213 +100,239 @@ static void receive_message(pd_params *p, char **buffer) { static void internal_printhook(const char *s) { static char padding[LIBPD_WORD_ALIGN]; + queued_stuff *queued = QUEUEDSTUFF; int len = (int) strlen(s) + 1; // remember terminating null char int rest = len % LIBPD_WORD_ALIGN; if (rest) rest = LIBPD_WORD_ALIGN - rest; int total = len + rest; - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS + total) { + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS + total) { pd_params p = {LIBPD_PRINT, NULL, 0.0f, NULL, total}; - rb_write_to_buffer(pd_receive_buffer, 3, + rb_write_to_buffer(queued->pd_receive_buffer, 3, (const char *)&p, S_PD_PARAMS, s, len, padding, rest); } } static void internal_banghook(const char *src) { - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS) { pd_params p = {LIBPD_BANG, src, 0.0f, NULL, 0}; - rb_write_to_buffer(pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); + rb_write_to_buffer(queued->pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); } } static void internal_floathook(const char *src, float x) { - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS) { pd_params p = {LIBPD_FLOAT, src, x, NULL, 0}; - rb_write_to_buffer(pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); + rb_write_to_buffer(queued->pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); + } +} + +static void internal_doublehook(const char *src, double x) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS) { + pd_params p = {LIBPD_FLOAT, src, (t_float)x, NULL, 0}; + rb_write_to_buffer(queued->pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); } } static void internal_symbolhook(const char *src, const char *sym) { - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS) { pd_params p = {LIBPD_SYMBOL, src, 0.0f, sym, 0}; - rb_write_to_buffer(pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); + rb_write_to_buffer(queued->pd_receive_buffer, 1, (const char *)&p, S_PD_PARAMS); } } static void internal_listhook(const char *src, int argc, t_atom *argv) { + queued_stuff *queued = QUEUEDSTUFF; int n = argc * S_ATOM; - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS + n) { + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS + n) { pd_params p = {LIBPD_LIST, src, 0.0f, NULL, argc}; - rb_write_to_buffer(pd_receive_buffer, 2, + rb_write_to_buffer(queued->pd_receive_buffer, 2, (const char *)&p, S_PD_PARAMS, (const char *)argv, n); } } static void internal_messagehook(const char *src, const char* sym, - int argc, t_atom *argv) { + int argc, t_atom *argv) { + queued_stuff *queued = QUEUEDSTUFF; int n = argc * S_ATOM; - if (rb_available_to_write(pd_receive_buffer) >= S_PD_PARAMS + n) { + if (rb_available_to_write(queued->pd_receive_buffer) >= S_PD_PARAMS + n) { pd_params p = {LIBPD_MESSAGE, src, 0.0f, sym, argc}; - rb_write_to_buffer(pd_receive_buffer, 2, + rb_write_to_buffer(queued->pd_receive_buffer, 2, (const char *)&p, S_PD_PARAMS, (const char *)argv, n); } } static void receive_noteon(midi_params *p, char **buffer) { - if (libpd_queued_noteonhook) { - libpd_queued_noteonhook(p->midi1, p->midi2, p->midi3); + if (QUEUEDSTUFF->hooks.h_noteonhook) { + QUEUEDSTUFF->hooks.h_noteonhook(p->midi1, p->midi2, p->midi3); } } static void receive_controlchange(midi_params *p, char **buffer) { - if (libpd_queued_controlchangehook) { - libpd_queued_controlchangehook(p->midi1, p->midi2, p->midi3); + if (QUEUEDSTUFF->hooks.h_controlchangehook) { + QUEUEDSTUFF->hooks.h_controlchangehook(p->midi1, p->midi2, p->midi3); } } static void receive_programchange(midi_params *p, char **buffer) { - if (libpd_queued_programchangehook) { - libpd_queued_programchangehook(p->midi1, p->midi2); + if (QUEUEDSTUFF->hooks.h_programchangehook) { + QUEUEDSTUFF->hooks.h_programchangehook(p->midi1, p->midi2); } } static void receive_pitchbend(midi_params *p, char **buffer) { - if (libpd_queued_pitchbendhook) { - libpd_queued_pitchbendhook(p->midi1, p->midi2); + if (QUEUEDSTUFF->hooks.h_pitchbendhook) { + QUEUEDSTUFF->hooks.h_pitchbendhook(p->midi1, p->midi2); } } static void receive_aftertouch(midi_params *p, char **buffer) { - if (libpd_queued_aftertouchhook) { - libpd_queued_aftertouchhook(p->midi1, p->midi2); + if (QUEUEDSTUFF->hooks.h_aftertouchhook) { + QUEUEDSTUFF->hooks.h_aftertouchhook(p->midi1, p->midi2); } } static void receive_polyaftertouch(midi_params *p, char **buffer) { - if (libpd_queued_polyaftertouchhook) { - libpd_queued_polyaftertouchhook(p->midi1, p->midi2, p->midi3); + if (QUEUEDSTUFF->hooks.h_polyaftertouchhook) { + QUEUEDSTUFF->hooks.h_polyaftertouchhook(p->midi1, p->midi2, p->midi3); } } static void receive_midibyte(midi_params *p, char **buffer) { - if (libpd_queued_midibytehook) { - libpd_queued_midibytehook(p->midi1, p->midi2); + if (QUEUEDSTUFF->hooks.h_midibytehook) { + QUEUEDSTUFF->hooks.h_midibytehook(p->midi1, p->midi2); } } static void internal_noteonhook(int channel, int pitch, int velocity) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_NOTEON, channel, pitch, velocity}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_controlchangehook(int channel, int controller, int value) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_CONTROLCHANGE, channel, controller, value}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_programchangehook(int channel, int value) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_PROGRAMCHANGE, channel, value, 0}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_pitchbendhook(int channel, int value) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_PITCHBEND, channel, value, 0}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_aftertouchhook(int channel, int value) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_AFTERTOUCH, channel, value, 0}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_polyaftertouchhook(int channel, int pitch, int value) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_POLYAFTERTOUCH, channel, pitch, value}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } static void internal_midibytehook(int port, int byte) { - if (rb_available_to_write(midi_receive_buffer) >= S_MIDI_PARAMS) { + queued_stuff *queued = QUEUEDSTUFF; + if (rb_available_to_write(queued->midi_receive_buffer) >= S_MIDI_PARAMS) { midi_params p = {LIBPD_MIDIBYTE, port, byte, 0}; - rb_write_to_buffer(midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); + rb_write_to_buffer(queued->midi_receive_buffer, 1, (const char *)&p, S_MIDI_PARAMS); } } void libpd_set_queued_printhook(const t_libpd_printhook hook) { - libpd_queued_printhook = hook; + QUEUEDSTUFF->printhook = hook; } void libpd_set_queued_banghook(const t_libpd_banghook hook) { - libpd_queued_banghook = hook; + QUEUEDSTUFF->hooks.h_banghook = hook; } void libpd_set_queued_floathook(const t_libpd_floathook hook) { - libpd_queued_floathook = hook; + QUEUEDSTUFF->hooks.h_floathook = hook; + QUEUEDSTUFF->hooks.h_doublehook = NULL; +} + +void libpd_set_queued_doublehook(const t_libpd_doublehook hook) { + QUEUEDSTUFF->hooks.h_floathook = NULL; + QUEUEDSTUFF->hooks.h_doublehook = hook; } void libpd_set_queued_symbolhook(const t_libpd_symbolhook hook) { - libpd_queued_symbolhook = hook; + QUEUEDSTUFF->hooks.h_symbolhook = hook; } void libpd_set_queued_listhook(const t_libpd_listhook hook) { - libpd_queued_listhook = hook; + QUEUEDSTUFF->hooks.h_listhook = hook; } void libpd_set_queued_messagehook(const t_libpd_messagehook hook) { - libpd_queued_messagehook = hook; + QUEUEDSTUFF->hooks.h_messagehook = hook; } void libpd_set_queued_noteonhook(const t_libpd_noteonhook hook) { - libpd_queued_noteonhook = hook; + QUEUEDSTUFF->hooks.h_noteonhook = hook; } void libpd_set_queued_controlchangehook(const t_libpd_controlchangehook hook) { - libpd_queued_controlchangehook = hook; + QUEUEDSTUFF->hooks.h_controlchangehook = hook; } void libpd_set_queued_programchangehook(const t_libpd_programchangehook hook) { - libpd_queued_programchangehook = hook; + QUEUEDSTUFF->hooks.h_programchangehook = hook; } void libpd_set_queued_pitchbendhook(const t_libpd_pitchbendhook hook) { - libpd_queued_pitchbendhook = hook; + QUEUEDSTUFF->hooks.h_pitchbendhook = hook; } void libpd_set_queued_aftertouchhook(const t_libpd_aftertouchhook hook) { - libpd_queued_aftertouchhook = hook; + QUEUEDSTUFF->hooks.h_aftertouchhook = hook; } void libpd_set_queued_polyaftertouchhook(const t_libpd_polyaftertouchhook hook) { - libpd_queued_polyaftertouchhook = hook; + QUEUEDSTUFF->hooks.h_polyaftertouchhook = hook; } void libpd_set_queued_midibytehook(const t_libpd_midibytehook hook) { - libpd_queued_midibytehook = hook; + QUEUEDSTUFF->hooks.h_midibytehook = hook; +} + +static void queued_stuff_free(void *p) { + queued_stuff *queued = (queued_stuff *)p; + if (queued->pd_receive_buffer) rb_free(queued->pd_receive_buffer); + if (queued->midi_receive_buffer) rb_free(queued->midi_receive_buffer); } int libpd_queued_init() { - if (!pd_receive_buffer) { - pd_receive_buffer = rb_create(BUFFER_SIZE); - if (!pd_receive_buffer) return -2; - } - if (!midi_receive_buffer) { - midi_receive_buffer = rb_create(BUFFER_SIZE); - if (!midi_receive_buffer) return -2; - } + int ret = libpd_init(); libpd_set_printhook(internal_printhook); libpd_set_banghook(internal_banghook); - libpd_set_floathook(internal_floathook); + libpd_set_doublehook(internal_doublehook); libpd_set_symbolhook(internal_symbolhook); libpd_set_listhook(internal_listhook); libpd_set_messagehook(internal_messagehook); @@ -321,27 +345,39 @@ int libpd_queued_init() { libpd_set_polyaftertouchhook(internal_polyaftertouchhook); libpd_set_midibytehook(internal_midibytehook); - return libpd_init(); + t_libpdimp *imp = LIBPDSTUFF; + if (!imp->i_queued) { + queued_stuff *queued = (queued_stuff *)calloc(1, sizeof(queued_stuff)); + if(!queued) goto cleanup; + queued->pd_receive_buffer = rb_create(BUFFER_SIZE); + if (!queued->pd_receive_buffer) goto cleanup; + queued->midi_receive_buffer = rb_create(BUFFER_SIZE); + if (!queued->midi_receive_buffer) goto cleanup; + imp->i_queued = (void *)queued; + imp->i_queued_freehook = queued_stuff_free; + } + return ret; +cleanup: + libpd_queued_release(); + return -2; } void libpd_queued_release() { - if (pd_receive_buffer) { - rb_free(pd_receive_buffer); - pd_receive_buffer = NULL; - } - if (midi_receive_buffer) { - rb_free(midi_receive_buffer); - midi_receive_buffer = NULL; + t_libpdimp *imp = LIBPDSTUFF; + if (imp->i_queued) { + queued_stuff_free(imp->i_queued); + imp->i_queued = NULL; + imp->i_queued_freehook = NULL; } } void libpd_queued_receive_pd_messages() { - size_t available = rb_available_to_read(pd_receive_buffer); + queued_stuff *queued = QUEUEDSTUFF; + size_t available = rb_available_to_read(queued->pd_receive_buffer); if (!available) return; - static char temp_buffer[BUFFER_SIZE]; - rb_read_from_buffer(pd_receive_buffer, temp_buffer, (int) available); - char *end = temp_buffer + available; - char *buffer = temp_buffer; + rb_read_from_buffer(queued->pd_receive_buffer, queued->temp_buffer, (int)available); + char *end = queued->temp_buffer + available; + char *buffer = queued->temp_buffer; while (buffer < end) { pd_params *p = (pd_params *)buffer; buffer += S_PD_PARAMS; @@ -377,12 +413,12 @@ void libpd_queued_receive_pd_messages() { } void libpd_queued_receive_midi_messages() { - size_t available = rb_available_to_read(midi_receive_buffer); + queued_stuff *queued = QUEUEDSTUFF; + size_t available = rb_available_to_read(queued->midi_receive_buffer); if (!available) return; - static char temp_buffer[BUFFER_SIZE]; - rb_read_from_buffer(midi_receive_buffer, temp_buffer, (int) available); - char *end = temp_buffer + available; - char *buffer = temp_buffer; + rb_read_from_buffer(queued->midi_receive_buffer, queued->temp_buffer, (int)available); + char *end = queued->temp_buffer + available; + char *buffer = queued->temp_buffer; while (buffer < end) { midi_params *p = (midi_params *)buffer; buffer += S_MIDI_PARAMS; diff --git a/src/z_queued.h b/src/z_queued.h index 44a14c650..c3104409d 100644 --- a/src/z_queued.h +++ b/src/z_queued.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2022 libpd team * * For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. @@ -19,64 +20,89 @@ extern "C" #endif /// set the queued print receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_printhook(const t_libpd_printhook hook); /// set the queued bang receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_banghook(const t_libpd_banghook hook); /// set the queued float receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running +/// note: you can either have a queued float receiver hook, or a queued +/// double receiver hook (see below), but not both. +/// calling this, will automatically unset the queued double receiver +/// hook EXTERN void libpd_set_queued_floathook(const t_libpd_floathook hook); +/// set the queued double receiver hook, NULL by default +/// note: do not call this before libpd_queued_init() or while DSP is running +/// note: you can either have a queued double receiver hook, or a queued +/// float receiver hook (see above), but not both. +/// calling this, will automatically unset the queued float receiver +/// hook +EXTERN void libpd_set_queued_doublehook(const t_libpd_doublehook hook); + /// set the queued symbol receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_symbolhook(const t_libpd_symbolhook hook); /// set the queued list receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_listhook(const t_libpd_listhook hook); /// set the queued typed message receiver hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_messagehook(const t_libpd_messagehook hook); /// set the queued MIDI note on hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_noteonhook(const t_libpd_noteonhook hook); /// set the queued MIDI control change hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_controlchangehook(const t_libpd_controlchangehook hook); /// set the queued MIDI program change hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_programchangehook(const t_libpd_programchangehook hook); /// set the queued MIDI pitch bend hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_pitchbendhook(const t_libpd_pitchbendhook hook); /// set the queued MIDI after touch hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_aftertouchhook(const t_libpd_aftertouchhook hook); /// set the queued MIDI poly after touch hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_polyaftertouchhook(const t_libpd_polyaftertouchhook hook); /// set the queued raw MIDI byte hook, NULL by default -/// note: do not call this while DSP is running +/// note: do not call this before libpd_queued_init() or while DSP is running EXTERN void libpd_set_queued_midibytehook(const t_libpd_midibytehook hook); -/// initialize libpd and the queued ringbuffers, use in place of libpd_init() -/// this is safe to call more than once +/// initialize libpd and the queued ringbuffers, safe to call more than once /// returns 0 on success, -1 if libpd was already initialized, or -2 if ring /// buffer allocation failed +/// +/// with a single instance, use in place of libpd_init() +/// +/// with multiple instances, call once for each instance *before* setting hooks: +/// t_pdinstance *pd1 = libpd_new_instance(); +/// libpd_set_instance(pd1); +/// libpd_queued_init(); +/// libpd_set_queued_printhook(pdprint); +/// ... +/// EXTERN int libpd_queued_init(); /// free the queued ringbuffers +/// with multiple instances, call before freeing each instance: +/// libpd_set_instance(pd1); +/// libpd_queued_release(); +/// libpd_free_instance(pd1); EXTERN void libpd_queued_release(); /// process and dispatch received messages in message ringbuffer diff --git a/src/z_ringbuffer.c b/src/z_ringbuffer.c index df90ef778..0ca29af01 100644 --- a/src/z_ringbuffer.c +++ b/src/z_ringbuffer.c @@ -1,8 +1,8 @@ /* - * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) * - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. + * For information on usage and redistribution, and for a DISCLAIMER OF ALL + * WARRANTIES, see the file, "LICENSE.txt," in this distribution. * * See https://github.com/libpd/libpd/wiki for documentation * @@ -29,7 +29,7 @@ #include #define SYNC_FETCH(ptr) InterlockedOr(ptr, 0) #define SYNC_COMPARE_AND_SWAP(ptr, oldval, newval) \ - InterlockedCompareExchange(ptr, oldval, newval) + InterlockedCompareExchange(ptr, newval, oldval) #else // gcc atomics #define SYNC_FETCH(ptr) __sync_fetch_and_or(ptr, 0) #define SYNC_COMPARE_AND_SWAP(ptr, oldval, newval) \ diff --git a/src/z_ringbuffer.h b/src/z_ringbuffer.h index 8522f722f..21e4b904d 100644 --- a/src/z_ringbuffer.h +++ b/src/z_ringbuffer.h @@ -1,8 +1,8 @@ /* - * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) + * Copyright (c) 2012 Peter Brinkmann (peter.brinkmann@gmail.com) * - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. + * For information on usage and redistribution, and for a DISCLAIMER OF ALL + * WARRANTIES, see the file, "LICENSE.txt," in this distribution. * * See https://github.com/libpd/libpd/wiki for documentation * From 43bcee6d4cd3679cebdc98b39576a690a8a1d89f Mon Sep 17 00:00:00 2001 From: danomatika Date: Tue, 9 Apr 2024 22:20:41 +0200 Subject: [PATCH 233/450] whoops fix include paths --- src/z_print_util.c | 2 +- src/z_queued.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/z_print_util.c b/src/z_print_util.c index cebc4c4f7..ee0edef17 100644 --- a/src/z_print_util.c +++ b/src/z_print_util.c @@ -15,7 +15,7 @@ #include #include -#include "../z_hooks.h" +#include "z_hooks.h" #define PRINT_LINE_SIZE 2048 diff --git a/src/z_queued.c b/src/z_queued.c index 4044ad03d..a66849342 100644 --- a/src/z_queued.c +++ b/src/z_queued.c @@ -14,7 +14,7 @@ #include #include -#include "../z_hooks.h" +#include "z_hooks.h" #include "z_ringbuffer.h" #define BUFFER_SIZE 16384 From 5282d117798b5705c440164fea933f1b38842ada Mon Sep 17 00:00:00 2001 From: danomatika Date: Wed, 10 Apr 2024 21:35:13 +0200 Subject: [PATCH 234/450] libpd makefile: fix extras possibly linking to pre-existing .o files from desktop build by building extras and libpd sources directly; don't build s_entry.c s_audio_paring.c s_midi_dummy.c; build s_libpdmidi.c; set HAVE_LIBDL per-platform since BSD doesn't support it; set HAVE_ALLOCA per-platform --- libpd/Makefile | 54 ++++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/libpd/Makefile b/libpd/Makefile index 82d8f7ed5..44f034754 100644 --- a/libpd/Makefile +++ b/libpd/Makefile @@ -11,7 +11,8 @@ PLATFORM_ARCH ?= $(shell $(CC) -dumpmachine | sed -e 's,-.*,,') ifeq ($(UNAME), Darwin) # Mac SOLIB_EXT = dylib - PLATFORM_CFLAGS = -DHAVE_LIBDL -DHAVE_MACHINE_ENDIAN_H -D_DARWIN_UNLIMITED_SELECT + PLATFORM_CFLAGS = -DHAVE_ALLOCA_H -DHAVE_LIBDL -DHAVE_MACHINE_ENDIAN_H \ + -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT PLATFORM_LDFLAGS = -dynamiclib -ldl -Wl,-no_compact_unwind ifeq ($(FAT_LIB), true) # macOS universal "fat" lib compilation @@ -46,7 +47,7 @@ else -DHAVE_ENDIAN_H PLATFORM_LDFLAGS = -shared -Wl,-Bsymbolic ifeq ($(UNAME), Linux) - PLATFORM_CFLAGS += -DHAVE_LIBDL + PLATFORM_CFLAGS += -DHAVE_ALLOCA_H -DHAVE_LIBDL PLATFORM_LDFLAGS += -ldl endif endif @@ -60,8 +61,8 @@ VPATH = ../src:\ # to allow easy overriding of CODECFLAGS and to allow adding MORECFLAGS: # C preprocessor flags, and flags controlling errors and warnings -CPPFLAGS = -I../src -DPD -DUSEAPI_DUMMY -DPD_INTERNAL -DHAVE_UNISTD_H \ - -DHAVE_ALLOCA_H -DLIBPD_EXTRA -DPDINSTANCE +CPPFLAGS = -DPD -DUSEAPI_DUMMY -DPD_INTERNAL -DHAVE_UNISTD_H \ + -I../src -DLIBPD_EXTRA -DPDINSTANCE # code generation flags (e.g., optimization). CODECFLAGS = -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -O3 @@ -75,28 +76,29 @@ MORELDFLAGS = CFLAGS = $(CPPFLAGS) $(PLATFORM_CFLAGS) $(CODECFLAGS) $(MORECFLAGS) LDFLAGS = $(PLATFORM_LDFLAGS) $(MORELDFLAGS) -PDSRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c g_io.c \ - g_scalar.c g_traversal.c g_guiconnect.c g_readwrite.c g_editor.c g_clone.c \ - g_all_guis.c g_bang.c g_mycanvas.c g_numbox.c g_radio.c g_slider.c \ - g_toggle.c g_undo.c g_vumeter.c g_editor_extras.c \ - m_pd.c m_class.c m_obj.c m_atom.c m_memory.c m_binbuf.c \ - m_conf.c m_glob.c m_sched.c \ - s_main.c s_inter.c s_inter_gui.c s_print.c \ - s_loader.c s_path.c s_entry.c s_audio.c s_midi.c s_net.c s_utf8.c \ - s_audio_paring.c \ - d_ugen.c d_ctl.c d_arithmetic.c d_osc.c d_filter.c d_dac.c d_misc.c \ - d_math.c d_fft.c d_fft_fftsg.c d_array.c d_global.c \ - d_delay.c d_resample.c d_soundfile.c d_soundfile_aiff.c d_soundfile_caf.c \ - d_soundfile_next.c d_soundfile_wave.c \ - x_arithmetic.c x_connective.c x_interface.c x_midi.c x_misc.c \ - x_time.c x_acoustics.c x_net.c x_text.c x_gui.c x_list.c x_array.c \ - x_file.c x_scalar.c x_vexp.c x_vexp_if.c x_vexp_fun.c \ - -SRC = $(PDSRC) \ - x_libpdreceive.o s_audio_dummy.o s_midi_dummy.o \ - z_hooks.o z_libpd.o z_print_util.o z_queued.o z_ringbuffer.o \ - bob~.o bonk~.o choice.o fiddle~.o loop~.o lrshift~.o pique.o sigmund~.o \ - pd~.o stdout.o +PDSRC = d_arithmetic.c d_array.c d_ctl.c d_dac.c d_delay.c d_fft.c \ + d_fft_fftsg.c d_filter.c d_global.c d_math.c d_misc.c d_osc.c \ + d_resample.c d_soundfile.c d_soundfile_aiff.c d_soundfile_caf.c \ + d_soundfile_next.c d_soundfile_wave.c d_ugen.c \ + g_all_guis.c g_array.c g_bang.c g_canvas.c g_clone.c g_editor.c \ + g_editor_extras.c g_graph.c g_guiconnect.c g_io.c g_mycanvas.c \ + g_numbox.c g_radio.c g_readwrite.c g_rtext.c g_scalar.c g_slider.c \ + g_template.c g_text.c g_toggle.c g_traversal.c g_undo.c g_vumeter.c \ + m_atom.c m_binbuf.c m_class.c m_conf.c m_glob.c m_memory.c m_obj.c \ + m_pd.c m_sched.c \ + s_audio.c s_audio_dummy.c s_inter.c s_inter_gui.c s_loader.c s_main.c \ + s_net.c s_path.c s_print.c s_utf8.c \ + x_acoustics.c x_arithmetic.c x_array.c x_connective.c x_file.c x_gui.c \ + x_interface.c x_list.c x_midi.c x_misc.c x_net.c x_scalar.c x_text.c \ + x_time.c x_vexp.c x_vexp_if.c x_vexp_fun.c + +EXTRASRC = bob~.c bonk~.c choice.c fiddle~.c loop~.c lrshift~.c pique.c \ + pdsched.c pd~.c sigmund~.c stdout.c + +LIBPDSRC = s_libpdmidi.c x_libpdreceive.c z_hooks.c z_libpd.c \ + z_print_util.c z_queued.c z_ringbuffer.c + +SRC = $(PDSRC) $(EXTRASRC) $(LIBPDSRC) OBJ = $(SRC:.c=.o) From e3562f713ae710677013cf1f901bfe327a8c7270 Mon Sep 17 00:00:00 2001 From: danomatika Date: Wed, 10 Apr 2024 21:36:15 +0200 Subject: [PATCH 235/450] test_libpd makefile: build libpd if needed and make copy, don't rm existing ../libpd.so etc --- libpd/test_libpd/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libpd/test_libpd/Makefile b/libpd/test_libpd/Makefile index ffdf5916d..6cb5bce60 100644 --- a/libpd/test_libpd/Makefile +++ b/libpd/test_libpd/Makefile @@ -24,7 +24,7 @@ endif PD_DIR = ../.. LIBPD_DIR = .. -LIBPD = $(LIBPD_DIR)/$(SOLIB_PREFIX)pd.$(SOLIB_EXT) +LIBPD = $(SOLIB_PREFIX)pd.$(SOLIB_EXT) LIBPD_STATIC = $(LIBPD_DIR)/libpd.$(STATICLIB_EXT) SRC_FILES = test_libpd.c @@ -38,7 +38,9 @@ all: $(TARGET) ##### libs +# build libpd and move a copy here $(LIBPD): + make -C $(LIBPD_DIR) cp $(LIBPD_DIR)/$(LIBPD) . # on windows, copy libpd and MinGW winpthread dll to here From 245d1f0b9109a473c31c589a7741bb2a38e84750 Mon Sep 17 00:00:00 2001 From: danomatika Date: Wed, 10 Apr 2024 22:19:18 +0200 Subject: [PATCH 236/450] libpd: fix func declaration without a prototype warnings --- src/z_queued.c | 8 ++++---- src/z_queued.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/z_queued.c b/src/z_queued.c index a66849342..50c2e15de 100644 --- a/src/z_queued.c +++ b/src/z_queued.c @@ -327,7 +327,7 @@ static void queued_stuff_free(void *p) { if (queued->midi_receive_buffer) rb_free(queued->midi_receive_buffer); } -int libpd_queued_init() { +int libpd_queued_init(void) { int ret = libpd_init(); libpd_set_printhook(internal_printhook); @@ -362,7 +362,7 @@ int libpd_queued_init() { return -2; } -void libpd_queued_release() { +void libpd_queued_release(void) { t_libpdimp *imp = LIBPDSTUFF; if (imp->i_queued) { queued_stuff_free(imp->i_queued); @@ -371,7 +371,7 @@ void libpd_queued_release() { } } -void libpd_queued_receive_pd_messages() { +void libpd_queued_receive_pd_messages(void) { queued_stuff *queued = QUEUEDSTUFF; size_t available = rb_available_to_read(queued->pd_receive_buffer); if (!available) return; @@ -412,7 +412,7 @@ void libpd_queued_receive_pd_messages() { } } -void libpd_queued_receive_midi_messages() { +void libpd_queued_receive_midi_messages(void) { queued_stuff *queued = QUEUEDSTUFF; size_t available = rb_available_to_read(queued->midi_receive_buffer); if (!available) return; diff --git a/src/z_queued.h b/src/z_queued.h index c3104409d..1c6f05dc9 100644 --- a/src/z_queued.h +++ b/src/z_queued.h @@ -96,20 +96,20 @@ EXTERN void libpd_set_queued_midibytehook(const t_libpd_midibytehook hook); /// libpd_set_queued_printhook(pdprint); /// ... /// -EXTERN int libpd_queued_init(); +EXTERN int libpd_queued_init(void); /// free the queued ringbuffers /// with multiple instances, call before freeing each instance: /// libpd_set_instance(pd1); /// libpd_queued_release(); /// libpd_free_instance(pd1); -EXTERN void libpd_queued_release(); +EXTERN void libpd_queued_release(void); /// process and dispatch received messages in message ringbuffer -EXTERN void libpd_queued_receive_pd_messages(); +EXTERN void libpd_queued_receive_pd_messages(void); /// process and dispatch receive midi messages in MIDI message ringbuffer -EXTERN void libpd_queued_receive_midi_messages(); +EXTERN void libpd_queued_receive_midi_messages(void); #ifdef __cplusplus } From a252168164da74ad219a0d3eb90ed481b4579bb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 9 Apr 2024 11:16:03 +0200 Subject: [PATCH 237/450] remove more trailing whitespace --- src/s_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/s_main.c b/src/s_main.c index 4c5da061a..e8d1ef5e6 100644 --- a/src/s_main.c +++ b/src/s_main.c @@ -427,7 +427,7 @@ int sys_main(int argc, const char **argv) } namelist_free(sys_messagelist); sys_messagelist = 0; - if (!sys_dontstartgui && + if (!sys_dontstartgui && sys_startgui(sys_libdir->s_name)) /* start the gui */ return (1); if (sys_hipriority) From 5adfd364450303c3ced62293b9c7ba9b86704a1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 9 Apr 2024 17:05:28 +0200 Subject: [PATCH 238/450] declare OOURA helper functions as "static" Closes: https://github.com/pure-data/pure-data/issues/2250 --- src/d_fft_fftsg.c | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/src/d_fft_fftsg.c b/src/d_fft_fftsg.c index 0d2d3797c..ce5c958d7 100644 --- a/src/d_fft_fftsg.c +++ b/src/d_fft_fftsg.c @@ -25,8 +25,46 @@ for another, more permissive-sounding copyright notice. -MSP #include "m_private_utils.h" #define FFTFLT double -void cdft(int, int, FFTFLT *, int *, FFTFLT *); -void rdft(int, int, FFTFLT *, int *, FFTFLT *); +static void cdft(int, int, FFTFLT *, int *, FFTFLT *); +static void rdft(int, int, FFTFLT *, int *, FFTFLT *); + +static void *cftrec1_th(void *p); +static void *cftrec2_th(void *p); +static void bitrv2(int n, int *ip, FFTFLT *a); +static void bitrv208(FFTFLT *a); +static void bitrv208neg(FFTFLT *a); +static void bitrv216(FFTFLT *a); +static void bitrv216neg(FFTFLT *a); +static void bitrv2conj(int n, int *ip, FFTFLT *a); +static void cftb040(FFTFLT *a); +static void cftb1st(int n, FFTFLT *a, FFTFLT *w); +static void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); +static void cftf040(FFTFLT *a); +static void cftf081(FFTFLT *a, FFTFLT *w); +static void cftf082(FFTFLT *a, FFTFLT *w); +static void cftf161(FFTFLT *a, FFTFLT *w); +static void cftf162(FFTFLT *a, FFTFLT *w); +static void cftf1st(int n, FFTFLT *a, FFTFLT *w); +static void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); +static void cftfx41(int n, FFTFLT *a, int nw, FFTFLT *w); +static void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); +static void cftmdl1(int n, FFTFLT *a, FFTFLT *w); +static void cftmdl2(int n, FFTFLT *a, FFTFLT *w); +static int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w); +static void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w); +static void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w); +static void cftx020(FFTFLT *a); +static void dctsub(int n, FFTFLT *a, int nc, FFTFLT *c); +static void ddct(int, int, FFTFLT *, int *, FFTFLT *); +static void ddst(int, int, FFTFLT *, int *, FFTFLT *); +static void dfct(int, FFTFLT *, FFTFLT *, int *, FFTFLT *); +static void dfst(int, FFTFLT *, FFTFLT *, int *, FFTFLT *); +static void dstsub(int n, FFTFLT *a, int nc, FFTFLT *c); +static void makect(int nc, int *ip, FFTFLT *c); +static void makeipt(int nw, int *ip); +static void makewt(int nw, int *ip, FFTFLT *w); +static void rftbsub(int n, FFTFLT *a, int nc, FFTFLT *c); +static void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); int ilog2(int n); From c6f84c618a7b1de91d3098e7201015559e96de9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Wed, 10 Apr 2024 09:03:50 +0200 Subject: [PATCH 239/450] drop forward declarations within functions since we have a big block of forward-declarations at the beginning of the file, the duplicate forward-declarations are unneeded (and weird) --- src/d_fft_fftsg.c | 93 +---------------------------------------------- 1 file changed, 2 insertions(+), 91 deletions(-) diff --git a/src/d_fft_fftsg.c b/src/d_fft_fftsg.c index ce5c958d7..2b4f56492 100644 --- a/src/d_fft_fftsg.c +++ b/src/d_fft_fftsg.c @@ -28,8 +28,6 @@ for another, more permissive-sounding copyright notice. -MSP static void cdft(int, int, FFTFLT *, int *, FFTFLT *); static void rdft(int, int, FFTFLT *, int *, FFTFLT *); -static void *cftrec1_th(void *p); -static void *cftrec2_th(void *p); static void bitrv2(int n, int *ip, FFTFLT *a); static void bitrv208(FFTFLT *a); static void bitrv208neg(FFTFLT *a); @@ -51,6 +49,8 @@ static void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); static void cftmdl1(int n, FFTFLT *a, FFTFLT *w); static void cftmdl2(int n, FFTFLT *a, FFTFLT *w); static int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w); +static void *cftrec1_th(void *p); +static void *cftrec2_th(void *p); static void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w); static void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w); static void cftx020(FFTFLT *a); @@ -524,9 +524,6 @@ Appendix : void cdft(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); int nw; nw = ip[0]; @@ -544,12 +541,6 @@ void cdft(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) void rdft(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void makect(int nc, int *ip, FFTFLT *c); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void rftbsub(int n, FFTFLT *a, int nc, FFTFLT *c); int nw, nc; FFTFLT xi; @@ -588,13 +579,6 @@ void rdft(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) void ddct(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void makect(int nc, int *ip, FFTFLT *c); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void rftbsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void dctsub(int n, FFTFLT *a, int nc, FFTFLT *c); int j, nw, nc; FFTFLT xr; @@ -644,13 +628,6 @@ void ddct(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) void ddst(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void makect(int nc, int *ip, FFTFLT *c); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void rftbsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void dstsub(int n, FFTFLT *a, int nc, FFTFLT *c); int j, nw, nc; FFTFLT xr; @@ -700,11 +677,6 @@ void ddst(int n, int isgn, FFTFLT *a, int *ip, FFTFLT *w) void dfct(int n, FFTFLT *a, FFTFLT *t, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void makect(int nc, int *ip, FFTFLT *c); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void dctsub(int n, FFTFLT *a, int nc, FFTFLT *c); int j, k, l, m, mh, nw, nc; FFTFLT xr, xi, yr, yi; @@ -793,11 +765,6 @@ void dfct(int n, FFTFLT *a, FFTFLT *t, int *ip, FFTFLT *w) void dfst(int n, FFTFLT *a, FFTFLT *t, int *ip, FFTFLT *w) { - void makewt(int nw, int *ip, FFTFLT *w); - void makect(int nc, int *ip, FFTFLT *c); - void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w); - void rftfsub(int n, FFTFLT *a, int nc, FFTFLT *c); - void dstsub(int n, FFTFLT *a, int nc, FFTFLT *c); int j, k, l, m, mh, nw, nc; FFTFLT xr, xi, yr, yi; @@ -882,7 +849,6 @@ void dfst(int n, FFTFLT *a, FFTFLT *t, int *ip, FFTFLT *w) void makewt(int nw, int *ip, FFTFLT *w) { - void makeipt(int nw, int *ip); int j, nwh, nw0, nw1; FFTFLT delta, wn4r, wk1r, wk1i, wk3r, wk3i; @@ -1039,21 +1005,6 @@ void makect(int nc, int *ip, FFTFLT *c) void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w) { - void bitrv2(int n, int *ip, FFTFLT *a); - void bitrv216(FFTFLT *a); - void bitrv208(FFTFLT *a); - void cftf1st(int n, FFTFLT *a, FFTFLT *w); - void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w); - void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); - void cftfx41(int n, FFTFLT *a, int nw, FFTFLT *w); - void cftf161(FFTFLT *a, FFTFLT *w); - void cftf081(FFTFLT *a, FFTFLT *w); - void cftf040(FFTFLT *a); - void cftx020(FFTFLT *a); -#ifdef USE_CDFT_THREADS - void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w); -#endif /* USE_CDFT_THREADS */ - if (n > 8) { if (n > 32) { cftf1st(n, a, &w[nw - (n >> 2)]); @@ -1087,21 +1038,6 @@ void cftfsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w) void cftbsub(int n, FFTFLT *a, int *ip, int nw, FFTFLT *w) { - void bitrv2conj(int n, int *ip, FFTFLT *a); - void bitrv216neg(FFTFLT *a); - void bitrv208neg(FFTFLT *a); - void cftb1st(int n, FFTFLT *a, FFTFLT *w); - void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w); - void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); - void cftfx41(int n, FFTFLT *a, int nw, FFTFLT *w); - void cftf161(FFTFLT *a, FFTFLT *w); - void cftf081(FFTFLT *a, FFTFLT *w); - void cftb040(FFTFLT *a); - void cftx020(FFTFLT *a); -#ifdef USE_CDFT_THREADS - void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w); -#endif /* USE_CDFT_THREADS */ - if (n > 8) { if (n > 32) { cftb1st(n, a, &w[nw - (n >> 2)]); @@ -2446,8 +2382,6 @@ typedef struct cdft_arg_st cdft_arg_t; void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w) { - void *cftrec1_th(void *p); - void *cftrec2_th(void *p); int i, idiv4, m, nthread; cdft_thread_t th[4]; cdft_arg_t ag[4]; @@ -2480,9 +2414,6 @@ void cftrec4_th(int n, FFTFLT *a, int nw, FFTFLT *w) void *cftrec1_th(void *p) { - int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w); - void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); - void cftmdl1(int n, FFTFLT *a, FFTFLT *w); int isplt, j, k, m, n, n0, nw; FFTFLT *a, *w; @@ -2509,9 +2440,6 @@ void *cftrec1_th(void *p) void *cftrec2_th(void *p) { - int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w); - void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); - void cftmdl2(int n, FFTFLT *a, FFTFLT *w); int isplt, j, k, m, n, n0, nw; FFTFLT *a, *w; @@ -2541,9 +2469,6 @@ void *cftrec2_th(void *p) void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w) { - int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w); - void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w); - void cftmdl1(int n, FFTFLT *a, FFTFLT *w); int isplt, j, k, m; m = n; @@ -2563,8 +2488,6 @@ void cftrec4(int n, FFTFLT *a, int nw, FFTFLT *w) int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w) { - void cftmdl1(int n, FFTFLT *a, FFTFLT *w); - void cftmdl2(int n, FFTFLT *a, FFTFLT *w); int i, isplt, m; if ((k & 3) != 0) { @@ -2598,13 +2521,6 @@ int cfttree(int n, int j, int k, FFTFLT *a, int nw, FFTFLT *w) void cftleaf(int n, int isplt, FFTFLT *a, int nw, FFTFLT *w) { - void cftmdl1(int n, FFTFLT *a, FFTFLT *w); - void cftmdl2(int n, FFTFLT *a, FFTFLT *w); - void cftf161(FFTFLT *a, FFTFLT *w); - void cftf162(FFTFLT *a, FFTFLT *w); - void cftf081(FFTFLT *a, FFTFLT *w); - void cftf082(FFTFLT *a, FFTFLT *w); - if (n == 512) { cftmdl1(128, a, &w[nw - 64]); cftf161(a, &w[nw - 8]); @@ -2907,11 +2823,6 @@ void cftmdl2(int n, FFTFLT *a, FFTFLT *w) void cftfx41(int n, FFTFLT *a, int nw, FFTFLT *w) { - void cftf161(FFTFLT *a, FFTFLT *w); - void cftf162(FFTFLT *a, FFTFLT *w); - void cftf081(FFTFLT *a, FFTFLT *w); - void cftf082(FFTFLT *a, FFTFLT *w); - if (n == 128) { cftf161(a, &w[nw - 8]); cftf162(&a[32], &w[nw - 32]); From 738be5d4bb08b9b3e13d0468dbaa892d77aa65bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 12 Apr 2024 12:24:12 +0200 Subject: [PATCH 240/450] fix signature of bang_tilde_new() Related: https://github.com/pure-data/pure-data/issues/2258#issuecomment-2051381833 --- src/d_misc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_misc.c b/src/d_misc.c index 1df355b5f..fe4bd9e3f 100644 --- a/src/d_misc.c +++ b/src/d_misc.c @@ -105,7 +105,7 @@ static void bang_tilde_free(t_bang *x) clock_free(x->x_clock); } -static void *bang_tilde_new(t_symbol *s) +static void *bang_tilde_new(void) { t_bang *x = (t_bang *)pd_new(bang_tilde_class); x->x_clock = clock_new(x, (t_method)bang_tilde_tick); From 43e142a91fd9a02098f1ce942c305e1aac7d6311 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 12 Apr 2024 12:34:29 +0200 Subject: [PATCH 241/450] adjust argumentlist of MIDI-functions to the prototype Related: https://github.com/pure-data/pure-data/issues/2258 --- src/x_midi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/x_midi.c b/src/x_midi.c index e2bcc8dad..6b2452154 100644 --- a/src/x_midi.c +++ b/src/x_midi.c @@ -75,13 +75,13 @@ static void midiin_setup(void) { midiin_class = class_new(gensym("midiin"), (t_newmethod)midiin_new, (t_method)midiin_free, sizeof(t_midiin), - CLASS_NOINLET, A_DEFFLOAT, 0); + CLASS_NOINLET, 0); class_addlist(midiin_class, midiin_list); class_sethelpsymbol(midiin_class, gensym("midi")); sysexin_class = class_new(gensym("sysexin"), (t_newmethod)sysexin_new, (t_method)sysexin_free, sizeof(t_midiin), - CLASS_NOINLET, A_DEFFLOAT, 0); + CLASS_NOINLET, 0); class_addlist(sysexin_class, midiin_list); class_sethelpsymbol(sysexin_class, gensym("midi")); } @@ -600,7 +600,7 @@ static void midiout_list(t_midiout *x, t_symbol *s, int ac, t_atom *av) static void midiout_setup(void) { midiout_class = class_new(gensym("midiout"), (t_newmethod)midiout_new, 0, - sizeof(t_midiout), 0, A_DEFFLOAT, A_DEFFLOAT, 0); + sizeof(t_midiout), 0, A_DEFFLOAT, 0); class_addfloat(midiout_class, midiout_float); class_addlist(midiout_class, midiout_list); class_sethelpsymbol(midiout_class, gensym("midi")); From ff44cc4da0a0f748882a0874549f171963fdac59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 12 Apr 2024 18:46:52 +0200 Subject: [PATCH 242/450] adjust argumentlist of [midirealtimein] to the prototype Related: https://github.com/pure-data/pure-data/issues/2258 --- src/x_midi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/x_midi.c b/src/x_midi.c index 6b2452154..08828a75b 100644 --- a/src/x_midi.c +++ b/src/x_midi.c @@ -544,7 +544,7 @@ static void midirealtimein_setup(void) { midirealtimein_class = class_new(gensym("midirealtimein"), (t_newmethod)midirealtimein_new, (t_method)midirealtimein_free, - sizeof(t_midirealtimein), CLASS_NOINLET, A_DEFFLOAT, 0); + sizeof(t_midirealtimein), CLASS_NOINLET, 0); class_addlist(midirealtimein_class, midirealtimein_list); class_sethelpsymbol(midirealtimein_class, gensym("midi")); } From 32aea205f9d93afb8c0bfc5ba57b67a0f1899704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Sat, 13 Apr 2024 22:46:40 +0200 Subject: [PATCH 243/450] wrapper around graph_array() to allow using it in emscripten an object-method (for anythingexcept pd_objectmaker) does not return anything, but emscripten is very sensitive to function signatures, so we cannot simply cast a ptr-returning function to a void-function... finally Closes: https://github.com/pure-data/pure-data/issues/2258 --- src/g_graph.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/g_graph.c b/src/g_graph.c index db6e77363..b6dbbf675 100644 --- a/src/g_graph.c +++ b/src/g_graph.c @@ -1132,6 +1132,16 @@ t_glist *glist_findgraph(t_glist *x) extern void canvas_menuarray(t_glist *canvas); + /* in emscripten, the function signatures must match exactly + (including the return type), so we need a (void)-returning wrapper + around graph_array() to be used as canvas-method + */ +static void _graph_array(t_glist *gl, t_symbol *s, t_symbol *templateargsym, + t_floatarg fsize, t_floatarg fflags) +{ + graph_array(gl, s, templateargsym, fsize, fflags); +} + void g_graph_setup_class(t_class *c) { class_setwidget(c, &graph_widgetbehavior); @@ -1145,7 +1155,7 @@ void g_graph_setup_class(t_class *c) A_FLOAT, A_FLOAT, A_FLOAT, 0); class_addmethod(c, (t_method)graph_ylabel, gensym("ylabel"), A_GIMME, 0); - class_addmethod(c, (t_method)graph_array, gensym("array"), + class_addmethod(c, (t_method)_graph_array, gensym("array"), A_SYMBOL, A_FLOAT, A_SYMBOL, A_DEFFLOAT, A_NULL); class_addmethod(c, (t_method)canvas_menuarray, gensym("menuarray"), A_NULL); From 396ca3612cfbe05e4732c3bf5dca44aa21654a8c Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 10 Apr 2024 13:06:08 -0300 Subject: [PATCH 244/450] improve description of Pd in "index" --- doc/1.manual/index.htm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index 14139ad96..ea994e623 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -17,12 +17,11 @@

      Pd Manual

      -

      -This is the Manual for Pd (Pure Data), a patchable environment for audio analysis, -synthesis and digital signal processing. Pd can also be extended via ecternals to -include yet more computer music features, multimedia capabilities and more. The -latest version of this page can be found at: - +

      This is the Manual for Pd (Pure Data), a patchable computer music environment +for audio analysis, synthesis and digital signal processing in real time (AKA Live +Electronics). Pd can also be extended via externals to include yet more computer +music features, multimedia capabilities and more. The latest version of this page +can be found at: http://msp.ucsd.edu/software.html.

        From 9ad6975ac9891e7731924da9af435261b0849b58 Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 10 Apr 2024 13:47:16 -0300 Subject: [PATCH 245/450] move description from index to "introduction" Index is now just "index" and I removed a redundancy about mentioning what is Pd twice in a row --- doc/1.manual/index.htm | 7 +------ doc/1.manual/x1.htm | 9 +++++---- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index ea994e623..ffecf1b85 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -17,12 +17,7 @@

        Pd Manual

        -

        This is the Manual for Pd (Pure Data), a patchable computer music environment -for audio analysis, synthesis and digital signal processing in real time (AKA Live -Electronics). Pd can also be extended via externals to include yet more computer -music features, multimedia capabilities and more. The latest version of this page -can be found at: -http://msp.ucsd.edu/software.html. +

        Index to HTML Manual for Pd (Pure Data):

        1. Introduction diff --git a/doc/1.manual/x1.htm b/doc/1.manual/x1.htm index bf6bb85f0..a641ad6bb 100644 --- a/doc/1.manual/x1.htm +++ b/doc/1.manual/x1.htm @@ -23,10 +23,11 @@

          Pd Manual chapter 1: Introduction



          - -

          This is the HTML documentation for the Pd computer program. -Pd is free and can be downloaded from the internet; go to - +

          This is the HTML Manual for Pd (Pure Data), a patchable computer music environment +for audio analysis, synthesis and digital signal processing in real time (AKA Live +Electronics). Pd can also be extended via externals to include yet more computer +music features, multimedia capabilities and more. The latest version of this page +can be can be downloaded from the internet; go to http://msp.ucsd.edu/software.html to get it.

          1.1. Guide to Pd's documentation

          From 0cb14fc5f188713a34e7a5ee01df6d2805ce60c3 Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 10 Apr 2024 14:48:31 -0300 Subject: [PATCH 246/450] revise chapter 1 - add more detailed descriptions on all folders in the 'doc' folder - add a "help menu" subsection - remove "github" section cause it is now integrated elsewhere --- doc/1.manual/index.htm | 6 +- doc/1.manual/x1.htm | 147 +++++++++++++++++++++++++++-------------- doc/1.manual/x4.htm | 2 +- 3 files changed, 103 insertions(+), 52 deletions(-) diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index ffecf1b85..192d0ac7c 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -23,8 +23,8 @@

          Pd Manual

        2. Introduction
          1. Guide to the documentation -
          2. Other resources -
          3. Github repository; Known bugs and bug reports +
          4. The Help menu +
          5. Other resources
        3. Theory of operation @@ -131,7 +131,7 @@

          Pd Manual

        4. Installing external objects and libraries
          1. Where to include the externals? -
          2. How to download externals from Pd vanilla? +
          3. How to download externals from Pd
        5. Loading externals diff --git a/doc/1.manual/x1.htm b/doc/1.manual/x1.htm index a641ad6bb..b3f0d4b5f 100644 --- a/doc/1.manual/x1.htm +++ b/doc/1.manual/x1.htm @@ -32,75 +32,140 @@

          Pd Manual chapter 1: Introduction

          1.1. Guide to Pd's documentation

          -

          Pd's documentation lives in the "doc" folder of the -distribution and consists of: +

          The Pd's documentation includes more things besides this HTML Manual. The documentation +resources are part of Pd's download and lives inside the "doc" folder of the computer application. +It is also accessible via the "Help Menu". Let's first have a look at the folder structure. In the +'doc' folder you find:

            -
          • this HTML manual
            +
          • This HTML manual
             Pd/
             ├── doc/
                 ├── 1.manual/
             
            -
          • "reference" (or 'help') patches, for all objects in Pd
            +

            +This Manual has six sections: + +

              +
            1. This Introduction +
            2. A Theory of operations, explaining how Pd works. +
            3. Instructions on installing and Getting Pd to run +
            4. Information on managing Externals +
            5. A changelog at Current status +
            6. And info on building Pd at Installing from source +
            + +
            + +
          • Next, there's a series of example tutorials, staring with the "control examples", which serves + as a tutorial for Pd's "control" structure, as opposed to its audio functions (covered next).
             Pd/
             ├── doc/
            -    ├── 5.reference/
            +    ├── 2.control.examples/
             
            -
          • "example" patches showing how to do things
            - +
          • The "audio examples" is actually a set of examples that are part of a book by Miller Puckette + called "The Theory and Technique of Electronic Music". The book is freely available online at + http://msp.ucsd.edu/techniques.htm. +
             Pd/
             ├── doc/
            -    ├── 2.control.examples/
                 ├── 3.audio.examples/
            +
            + +
          • The last tutorial is for the Data Structures facilities, also described in this manual in + section 2.10 Data Structures. +
            +Pd/
            +├── doc/
                 ├── 4.data.structures/
             
            -
          • sample C code on how to write externals
            +
          • Next, in the "reference" folder, you find help patches for all objects in Pd
            +
            +Pd/
            +├── doc/
            +    ├── 5.reference/
            +
            + + +
          • A sample C code on how to write externals is also provided in the next folder. More + on externals is found in this manual at Chapter 4: Externals .
             Pd/
             ├── doc/
                 ├── 6.externs/
             
            +
          • There's also some "stuff", which are additional patches that might also be helpful. +
            +Pd/
            +├── doc/
            +    ├── 7.stuff/
            +
            + +
          • The last subfolder in the 'doc' folder includes extra documentation with more details on + specific topics that is reffered in the help files. +
            +Pd/
            +├── doc/
            +    ├── 8.topics/
            +
            +
          -

          -This Manual has six sections: +

          1.2. The Help menu

          -
            -
          1. This introduction -
          2. A theory of operations, explaining how Pd works -
          3. Instructions on installing Pd and getting it to run -
          4. Externals -
          5. Current status -
          6. Installing from source -
          +

          This section describes the Help menu of the Pd application, which offers shortcuts +to the documentation and other reasources. The "Pd Help" entry opens this HTML manual. + +(INCLUDE PIC) + +

          The "browser" opens the browser window. The "Pure Data" folder is actually the 'doc' folder +mnetioned above, with all of its subfolders. You can then use this facility to navigate and open +particular help files, manual chapters, examples from the tutorials, etc. + +(INCLUDE PIC) + +

          You will also find the installed "Externals in your system. By default, Pd comes with an +'extra' library, so you'll find these externals here even if you haven't installed anything. + +

          The 'List of objects' entry opens a patch that includes a list of all Pd's native objects, +which you can use to get an overview of all objects and ask help for a particular object. -

          For a list of all the objects you can use menu Help/List of objects. -To get help on any Pd object you can right click on it; or you can browse the -help patches by choosing menu Help/Browser and looking in -"Pure Data/5.reference". +(INCLUDE PIC, and there is already one) -

          The "example" patches are also available from Pd's browser. They appear in -subdirectories named "2.control.examples", "3.audio.examples" and -"4.data.structures". Some additional patches in "7.stuff" might also be helpful. +

          The 'puredata.info' entry opens +pure-data.info, an extensive Pd community web site that aims to be the central +resource for Pd, from downloads to forums, member pages, extra documentation resources and +a patch exchange. -

          To get started writing your own C extensions, refer to "6.externs". -For more about externals, please refer to chapter 4 of this manual. +

          The 'check for updates' entry just opens +http://msp.ucsd.edu/software.html for you to check if there is a new Pd version for +download. -

          1.2. Other resources

          +

          The 'report a bug' entry opens the + Pd issue tracker on github, where you can find known bugs and also report them. -

          There is a very extensive Pd community web site, -pure-data.info, which aims to be the central resource for Pd, from documentation and -downloads; to forums, member pages, and a patch exchange. You can check - https://puredata.info/docs/ -for more documentation. +

          For last, the Help menu also helps you find and download eternals with the "Find + externals" entry, which opens a Pd extension manager described in + 4.2.2 How to Download Externals from Pd. + + +

          1.3. Other resources

          + +

          The Pd source code is found on github, see + Pd GitHub project page. As mentioned, +this is where you can find known bugs and also report them. There's also a repository that +focuses on Pd's documentation, called +pddp (Pure Data Documentation Project). This repository also has an + issue tracker for issues related to +the documentation.

          Most of the interesting news related to Pd shows up on the Pd mailing list, maintained by IOhannes zmölnig. To subscribe or browse the archives @@ -120,20 +185,6 @@

          1.2. Other resources

          or multimedia applications such as games. Get it also via "Find externals" or from https://github.com/cuinjune/Ofelia. -

          1.3. Github repository; Known bugs and bug reports

          - -

          The Pd source code is also found on github, see - Pd GitHub project page. - -

          The Pd repository is where you can find known bugs and also report them, -see Pd issue tracker. - -

          There's also a repository that focuses on Pd's documentation, called - -pddp (Pure Data Documentation Project). This repository -also has an issue tracker -for issues related to the documentation. -



          next chapter
          diff --git a/doc/1.manual/x4.htm b/doc/1.manual/x4.htm index 299efcda6..b7acfcbf0 100644 --- a/doc/1.manual/x4.htm +++ b/doc/1.manual/x4.htm @@ -458,7 +458,7 @@

          4.2.1. Where to include the externals?

        6. Global: /usr/local/lib/pd-externals.
    -

    4.2.2. How to Download Externals from Pd Vanilla?

    +

    4.2.2. How to Download Externals from Pd

    Since version 0.47-0, Pd Vanilla has its own external manager! This is a built in .tcl plug-in named "deken" (check https://github.com/pure-data/deken From e577459cdaaed4241ca702da023929826a72fa21 Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 10 Apr 2024 15:00:10 -0300 Subject: [PATCH 247/450] renaming chapters 3 and 6 I think these new names are clearer --- doc/1.manual/index.htm | 4 ++-- doc/1.manual/x1.htm | 4 ++-- doc/1.manual/x2.htm | 2 +- doc/1.manual/x3.htm | 6 +++--- doc/1.manual/x6.htm | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index 192d0ac7c..e8263fc0e 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -102,7 +102,7 @@

    Pd Manual

  • Differences from Max
  • -
  • Getting Pd to run +
  • Installing and configuring Pd
    1. Audio and MIDI
    2. Installing Pd in Microsoft Windows @@ -155,7 +155,7 @@

      Pd Manual

    3. Release notes
    -
  • Installing from source +
  • Building Pd from source
    1. Requirements
    2. Autotools build (recommended) diff --git a/doc/1.manual/x1.htm b/doc/1.manual/x1.htm index b3f0d4b5f..9e7a685df 100644 --- a/doc/1.manual/x1.htm +++ b/doc/1.manual/x1.htm @@ -51,10 +51,10 @@

      1.1. Guide to Pd's documentation

      1. This Introduction
      2. A Theory of operations, explaining how Pd works. -
      3. Instructions on installing and Getting Pd to run +
      4. Instructions on Installing and configuring Pd
      5. Information on managing Externals
      6. A changelog at Current status -
      7. And info on building Pd at Installing from source +
      8. Instructions on Building Pd from source

      diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 506804df0..0a69cf8c7 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -1182,7 +1182,7 @@

      2.6.2. Computation load

      that is, it tries to keep ahead of real time by a small amount in order to be able to absorb unpredictable, momentary increases in computation time. This is specified using the "-audiobuf" and "-blocksize" command line flags -(see Getting Pd to run). +(see Installing and configuring Pd).

      If Pd gets late with respect to real time, gaps (either occasional or frequent) will appear in both the input and output audio streams. On the diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index d8558e8ee..fbb0325e3 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -16,15 +16,15 @@

      -

      Pd Manual chapter 3: Getting Pd to run

      +

      Pd Manual chapter 3: Installing and configuring Pd

      back to table of contents

      -

      The following are basic instructions on how to get Pd installed and running -on your machine. More details are maintained online on the +

      The following are basic instructions on how to get Pd installed, configured +and running on your machine. More details are maintained online on the pure-data.info site.

      Pd runs under Microsoft Windows, Linux, and macOS. How to diff --git a/doc/1.manual/x6.htm b/doc/1.manual/x6.htm index 8efc02165..b22b49444 100644 --- a/doc/1.manual/x6.htm +++ b/doc/1.manual/x6.htm @@ -18,7 +18,7 @@ -

      Pd Manual chapter 6: Installing from source.

      +

      Pd Manual chapter 6: Building Pd from source.

      back to table of contents From 837aae84ee737344004f961985fbad818ec36b8d Mon Sep 17 00:00:00 2001 From: porres Date: Wed, 10 Apr 2024 15:52:19 -0300 Subject: [PATCH 248/450] add marks to include pics --- doc/1.manual/x2.htm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 0a69cf8c7..8cbafa93f 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -94,6 +94,9 @@

      2.1.1. The main window, canvases, and printout

      edit menu

      + +(include pic of font entry!!!) +

      Pd documents ("patches" or "canvases") have their own main window and any number of sub-windows. The sub-windows can be opened and closed, but they are always running, whether you see them or not. When opened, sub-windows show up as a separate canvases. @@ -102,10 +105,14 @@

      2.1.1. The main window, canvases, and printout

      It is useful to increase the font size of patches if you're having trouble reading them on HiDPI screens. Note that the patch's font size gets saved with the file. +(include pic of a patch canvas!!!) +

      Also in the Edit menu, you can "Zoom In" and "Zoom Out" a patch window. The Zoom settings is not saved in the patch and a zoomed window can also help with HiDPI screens. +(include pic of zoom!!!) +

      In the Edit menu you can also clear all messages printed in the Pd window with the 'Clear Console' entry (Shift+Ctrl+L shortcut). On the Window menu you find the 'Pd Window' entry (with the Ctrl+R @@ -278,6 +285,8 @@

      2.2.1. Edit and Run mode

      able to click on a box. In run mode, you mostly click and interact with GUIs (like the number box) and message boxes (which are used as controls to send messages). +(include pic of run arrows) +

      In order to go into edit mode, you need to select the 'Edit Mode' entry from the Edit menu to activate and check it on. @@ -294,6 +303,8 @@

      2.2.1. Edit and Run mode

      "Edit Mode" entry returns the patch to run mode and changes the cursor back to an arrow. You can use the Ctrl+E shortcut to switch between these modes. +(include pic of edit hand) +

      In edit mode, you can move boxes around by clicking on them and dragging. You can also edit text, create or delete boxes and make or cut connections. More details follow below. From 37f2d95c5d7bb8b8442ae6fefa314a767f41098b Mon Sep 17 00:00:00 2001 From: porres Date: Thu, 11 Apr 2024 01:34:11 -0300 Subject: [PATCH 249/450] a first revision of chapter 3 (WIP) --- doc/1.manual/img/{3.1.1.png => 3.2.1.png} | Bin doc/1.manual/img/{3.1.2.png => 3.2.2.png} | Bin doc/1.manual/img/{3.5.1.png => 3.3.1.png} | Bin doc/1.manual/img/{3.6.1.png => 3.4.1.png} | Bin doc/1.manual/index.htm | 15 +- doc/1.manual/x3.htm | 474 +++++++++++----------- doc/Makefile.am | 8 +- 7 files changed, 258 insertions(+), 239 deletions(-) rename doc/1.manual/img/{3.1.1.png => 3.2.1.png} (100%) rename doc/1.manual/img/{3.1.2.png => 3.2.2.png} (100%) rename doc/1.manual/img/{3.5.1.png => 3.3.1.png} (100%) rename doc/1.manual/img/{3.6.1.png => 3.4.1.png} (100%) diff --git a/doc/1.manual/img/3.1.1.png b/doc/1.manual/img/3.2.1.png similarity index 100% rename from doc/1.manual/img/3.1.1.png rename to doc/1.manual/img/3.2.1.png diff --git a/doc/1.manual/img/3.1.2.png b/doc/1.manual/img/3.2.2.png similarity index 100% rename from doc/1.manual/img/3.1.2.png rename to doc/1.manual/img/3.2.2.png diff --git a/doc/1.manual/img/3.5.1.png b/doc/1.manual/img/3.3.1.png similarity index 100% rename from doc/1.manual/img/3.5.1.png rename to doc/1.manual/img/3.3.1.png diff --git a/doc/1.manual/img/3.6.1.png b/doc/1.manual/img/3.4.1.png similarity index 100% rename from doc/1.manual/img/3.6.1.png rename to doc/1.manual/img/3.4.1.png diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index e8263fc0e..3e2a3a87b 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -104,12 +104,15 @@

      Pd Manual

    3. Installing and configuring Pd
        -
      1. Audio and MIDI -
      2. Installing Pd in Microsoft Windows -
      3. Installing Pd in Linux -
      4. Installing Pd in MacOS X -
      5. Preferences and startup options -
      6. How Pd searches for files +
      7. Installing Pd +
          +
        1. macOS +
        2. Microsoft Windows +
        3. Linux +
        +
      8. Testing and configuring Audio and MIDI +
      9. Preferences and startup options +
      10. How Pd searches for files
      diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index fbb0325e3..716d57a77 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -9,7 +9,6 @@ -
      @@ -18,167 +17,75 @@

      Pd Manual chapter 3: Installing and configuring Pd

      -

      - back to table of contents +

      back to table of contents

      -

      The following are basic instructions on how to get Pd installed, configured -and running on your machine. More details are maintained online on the -pure-data.info site. - -

      Pd runs under Microsoft Windows, Linux, and macOS. How to -get Pd up and running depends on your operating system, but the overall strategy -is the same. You must first get and install it, and then untangle whatever -problems arise in handling audio and MIDI input and output, and finally get Pd -to meet its real-time obligations reliably. - -

      Installation instructions are platform-specific; the following three -sections will describe what to do for various operating systems you might have. -In case of trouble also consult the Pd mailing list archive on - -https://lists.puredata.info/listinfo/pd-list, which often has late-breaking -news about configuration problems and solutions. The rest of this section describes -how to get audio and MIDI to work. - -

      3.1. Audio and MIDI

      - -

      -To test audio and MIDI, start Pd and select "test Audio and MIDI" from the -"Media" menu. You should see a window like this: - -

      - test audio and midi patch -

      - -

      First, try to get Pd to play a sine wave over your speakers. The "TEST -TONE" control at top left turns this on and off. Normally, all the output -channels are turned on so that when you turn the tone on (to a soft -40 dB or a -louder -20 dB) you should get output on the first eight of your output channels. -(If you have fewer than 8 output channels open, the extra channels aren't -played; and if you have more, this particular patch won't use them.) - -

      If there's anything wrong, the most likely outcome is that you will hear -nothing at all. This could be for any of at least three reasons: Pd might -have failed to open the audio device; the audio card's output volume might -be set to zero; or your audio system might not be set to amplify the computer -output. - -

      The number boxes labeled "AUDIO INPUT" show the levels of incoming -audio, in dB, with 100 being maximum. (Incoming signals may clip at -RMS levels below 100; for instance, a sinusoid clips at about 97 dB.) -Any DC present in the input (such as you get with cheap audio hardware) -will show up as level unless you turn on the "input hipass" toggle -at right; then the DC component is filtered out before metering. - -

      To test the quality of audio input and output, turn on "monitor" -(also at right) which causes the inputs to be played to the outputs at -unit gain. You should hear a faithful, non-distorted copy of whatever is -sent through the patch. - -

      It is easy to get two copies of Pd running by accident; on most machines -only one at a time may be inputting and outputting sound. (Some copy of Pd -might have audio or MIDI devices open and prevent the copy you're trying to use -from getting access to them.) Having extra copies of Pd around will also eat -CPU cycles uselessly. - -

      -You may be interested in getting only audio output or audio input, or -you may need both to run simultaneously. By default, Pd will try to run -both, but if you don't need either input or output, you may find that Pd -runs more reliably, or at least more efficiently, with the unused direction -turned off. This may be specified in Pd's command line flags or using the -"audio settings" dialog panel. - -

      -Depending on your application you will have a more or less stringent latency -requirement. Ideally, when any input (audio, MIDI, keyboard, network) is -available, the outputs (in particular the audio output) should react instantly. -In real life, it is necessary to buffer the audio inputs and outputs, trying -always to keep some number of milliseconds ahead of real time to prepare for the -inevitable occasions where the CPU runs off to service some different task -from Pd. How small this latency can be chosen depends on your OS and your -audio driver. - -

      TIP: If Pd starts up but you get distortion or glitches in the audio -output, this could be either because the "audio I/O buffer" isn't big enough, -or else because the CPU load of the patch you're running is too great for the -machine you have, or else because the ADC and DAC are out of sync or even at -different sample rates. To test for the first possibility, try increasing the -audio latency in the command line or the "audio settings" dialog (but see also -under your OS below.) For the second, start up your favorite performance -monitor program; and for the third, try starting Pd up with ADCs disabled. - -

      In addition to the "test audio and MIDI" patch, the "Media" menu -contains items for controlling audio and MIDI settings. The first two -items, "Audio on" and "Audio off", open or close the audio devices and -start or stop Pd's audio computation. +

      The following are instructions on how to get Pd installed, configured +and running on your machine. -

      If there is a choice of -audio API to make, the Media menu will display them. (On Linux, they are -OSS, ALSA, and Portaudio; on Windows, you get MMIO and ASIO). On Mac the only -one is Portaudio. More information about the APIs appears in the sections below. +

      Pd runs under Microsoft Windows, Linux, and macOS. How to get Pd up and running +depends on your operating system, but the overall strategy is the same. You must +first get and install it, and then untangle whatever problems arise in handling +audio and MIDI input and output, and finally get Pd to meet its real-time obligations +reliably. -

      Selecting an API (even if it's the one already in use), or, alternatively, -selecting "Audio Settings..." from Preferences, opens -a dialog panel like this: +

      3.1. Installing Pd

      -

      - audio settings dialog -

      +

      Most commonly, you want to install Pd as a 64 bit application, which is available +for download, but a 32 bit versions is also available for older OSes. The download +page for Pd is +https://msp.ucsd.edu/software.html. Binaries are provided for Windows and macOS, +while Linux users can get Pd from package managers. The source code is also available +in this link for you to build Pd yourself. -

      The exact choices you get depend on the operating system and API. The sample -rate controls both audio output and input. The audio throughput delay is -the nominal amount of time, in milliseconds, that a sound coming into the -audio input will be delayed if it is copied through Pd straight to the -output. Naturally you would like this to be as small as possible, but, -depending on OS, API, and even the specific choice of audio hardware, there -will be a limit to how small you can make this. You can typically get -10 msec on Linux (and lower still if you use special tricks), 30 msec on MacOS, -and 60 msec on Windows (but note that there might be ways that a patient -Windows user can reduce this). +

      Installation instructions are platform-specific and described in each case in +this section, but Instructions on how to build Pd yourself for all supported OSes is +provided in Chapter 6: Building Pd from source.. -

      Next you get a choice of input and output device. If you want to open -more than one, hit "use multiple devices" and you'll be allowed up to 4 -in and 4 out. Each audio device is 2 channels by default, but you may -specify more if your hardware supports it. +

      If you run into any installation trouble you can also consult the Pd mailing list +archive on +https://lists.puredata.info/listinfo/pd-list, which often has late-breaking +news about configuration problems and solutions. -Other parameters may be tweaked using the command line; see under - Preferences and startup options . -

      MIDI
      +

      3.1.1. macOS

      -

      The "channel message" midi objects in Pd -such as notein or pgmout will take channels 1-16 to mean the first open MIDI -port, 17-32 the second one, and so on. The midiin, sysexin, midiout objects -give you a separate inlet to specify which of the open MIDI port numbers -you want. +

      Pd supports macOS from 10.7 and up, but the main download binary for more modern +OS versions supports 10.10 or newer. This download in the form of .dmg file; just +double click on this disk image so it opens and you can then drag the Pd app where +you want (most likely in the Applictions folder). -

      System exclusive MIDI message input and output are theoretically supported -but does not work uniformly across all operating systems.. +

      You might get various warnings about Pd trying to open an internet port. +This is normal although some system administrators will prevent you from +doing this (in which case you can't run Pd on that machine). -

      3.2. Installing Pd in Microsoft Windows

      +

      3.1.2 Microsoft Windows

      -

      Pd should work under any version of Windows since XP. You can download as -a self-extracting archive (a ".exe" file). Run this and select a destination -directory when prompted, such as "\pd" or "Program Files\pd". +

      For Windows, you can download a .zip package for manual install or an executable +installer (a ".exe" file). Run the installer if you are not sure how to install +manually and select a destination directory when prompted, such as \pd or +Program Files\pd. -

      If for example you put Pd in "C:Program Files\pd", the executable program -will be "C:Program Files\pd\bin\pd". You can simply adjust your path to -include C:\pd\bin and then invoke "pd" in a command prompt window. You can also -make a shortcut to the executable program (left-click on it and drag to the +

      If for example you install Pd in C:Program Files\pd, the executable +program will be C:Program Files\pd\bin\pd/. You can simply adjust your path +to include C:\pd\bin and then invoke "pd" in a command prompt window. You can +also make a shortcut to the executable program (left-click on it and drag to the desktop, for example.)

      Pd requires "TCP/IP networking" to be turned on. This doesn't mean you have to be on a real network, but simply that Pd actually consists of two -programs that make a "network link" (locally) to intercommunicate. -The first time you run Pd the "Windows Firewall" will ask your permission -to allow this intercommunication. +programs that make a "network link" (locally) to intercommunicate. The first +time you run Pd the "Windows Firewall" will ask your permission to allow this +intercommunication. + + + + -

      3.3. Installing Pd in Linux

      - -

      What to do depends on which flavor of Linux you are running (e.g., Debian -or Red Hat). The instructions here should work for Pd 0.33 and up regardless of -your situation. (If not, you can read the Pd mailing list archives for -recent problems; if you have found a new problem you're welcome to post it -to the list.) +

      3.1.3. Linux

      Pd is available via the package systems for some Linux distributions, -but not always in the most recent version possible. It's relatively easy to -compile your own copy of Pd and that is the approach described here. +but not always in the most recent version possible. In case you don't find +it or want the very latest recent version, you need to compile Pd, which is +described in Chapter 6: Building Pd from source. as +mentioned earlier. + + + + +

      3.2. Testing and configuring Audio and MIDI

      + +

      To test audio and MIDI, start Pd and select "Test Audio and MIDI..." from +the Media menu. You should see a window like this: + +

      + test audio and midi patch +

      + +

      First, try to get Pd to play a sine wave over your speakers. The +"OUTPUT MONITOR" section to the left allows you to set an output gain and +a test sound (either noise or a sinusoid). By default, the first eight output +channels are turned on so that when you should get output on them when you +turn the test sound on. If you have fewer than eight output channels open, +the extra channels aren't played; and if you have more, you need to use the +radio button to test them. + +

      If there's anything wrong, the most likely outcome is that you will hear +nothing at all. This could be for any of at least three reasons: Pd might +have failed to open the audio device; the audio card's output volume might +be set to zero; or your audio system might not be set to amplify the computer +output. + +

      The "INPUT MONITOR" provides VU Meters and number boxes to indicated the +levels of incoming audio, in dB, with 100 being maximum. (Incoming signals may +clip at RMS levels below 100; for instance, a sinusoid clips at about 97 dB.) +Any DC present in the input (such as you get with cheap audio hardware) +will show up as level unless you turn on the "input highpass" toggle +at right; then the DC component is filtered out before metering. + +

      To test the quality of audio input and output, the "AUDIO OUTPUT" toggles +must be (which they are by default) and causes the inputs to be played to the +outputs at unit gain. You should hear a faithful, non-distorted copy of whatever +is sent through the patch. + +

      It is easy to get two copies of Pd running by accident; on most machines +only one at a time may be inputting and outputting sound. (Some copy of Pd +might have audio or MIDI devices open and prevent the copy you're trying to use +from getting access to them). Having extra copies of Pd around will also eat +CPU cycles uselessly. + +

      You may be interested in getting only audio output or audio input, or +you may need both to run simultaneously. By default, Pd will try to run +both, but if you don't need either input or output, you may find that Pd +runs more reliably, or at least more efficiently, with the unused direction +turned off. This may be specified in Pd's command line flags or using the +"audio settings" dialog panel. + +

      Depending on your application you will have a more or less stringent latency +requirement. Ideally, when any input (audio, MIDI, keyboard, network) is +available, the outputs (in particular the audio output) should react instantly. +In real life, it is necessary to buffer the audio inputs and outputs, trying +always to keep some number of milliseconds ahead of real time to prepare for the +inevitable occasions where the CPU runs off to service some different task +from Pd. How small this latency can be chosen depends on your OS and your +audio driver. + +

      TIP: If Pd starts up but you get distortion or glitches in the audio +output, this could be either because the "audio I/O buffer" isn't big enough, +or else because the CPU load of the patch you're running is too great for the +machine you have, or else because the ADC and DAC are out of sync or even at +different sample rates. To test for the first possibility, try increasing the +audio latency in the command line or the "audio settings" dialog (but see also +under your OS below.) For the second, start up your favorite performance +monitor program; and for the third, try starting Pd up with ADCs disabled. + +

      In addition to the "test audio and MIDI" patch, the "Media" menu +contains items for controlling audio and MIDI settings. The first two +items, "Audio on" and "Audio off", open or close the audio devices and +start or stop Pd's audio computation. + +

      If there is a choice of audio API to make, the Media menu will display them. +On Linux, they are OSS, ALSA, and Portaudio; on Windows, you get MMIO and ASIO. +On Mac the only one is Portaudio. + + + + + + + + + + + + + + + + + + + + + + + + + + -

      Pd version 0.35 and up support macOS. -Recent versions of Pd require 10.6 or up. -

      To install Pd you can always download the sources and compile them -yourself, or (easier) just download the Mac binary from the download page: - -http://msp.ucsd.edu/software.html -or from the Pure Data community site: - -https://puredata.info -This is in the form of a compressed tar.gz archive; just double click on it to -extract the Pd application. Open this and you should be running. -

      You might get various warnings about Pd trying to open an internet port. -This is normal although some system administrators will prevent you from -doing this (in which case you can't run Pd on that machine). -

      To install on macOS from source:

      -

      -Whether you've downloaded the source or the "package" you can -always compile Pd for yourself, whether to make your own improvements, or -possibly so that you can get the newest version before it shows up compiled for -macOS. -

      To be able to compile Pd, you must have Tcl/Tk installed in the standard -places. I think this is true for all reasonably recent releases of macOS. -

      Overview: Just as for Linux, extract pd-#.#.#.tar.gz into a directory -such as ~/pd-0.47-1, cd to ~/pd-0.47-1, run: -

      -    ./autogen.sh
      -    ./configure
      -    make
      -
      -

      Then type ~/pd-0.47-1/bin/pd to a shell and enjoy! -

      Detailed build instructions can be found in the INSTALL.txt included with -the Pd source distribution. -

      If you wish you can put a line such as, -

      -    alias pd ~/pd/bin/pd
      -
      -

      in the file, ~/.tcshrc, so that you can later just type "pd" to a shell. -(The -shell only reads the ~/.tcshrc file on startup, so this won't take effect in -any existing shells unless you specially type -

      -    source ~/.tcshrc
      -
      -

      to them.) -

      Follow the general directions above for testing audio and/or MIDI -as needed. +

      3.2.1. Audio Settings

      -

      To get MIDI working, you have to do the macOS magic to get a USB -MIDI interface installed. I've seen this done with Midisport devices and -I think you just download the macOS driver and follow directions. +

      Selecting an API (even if it's the one already in use), or, alternatively, +selecting "Audio Settings..." from Preferences, opens a dialog panel like this: + +

      + audio settings dialog +

      + +

      The exact choices you get depend on the operating system and API. The sample +rate controls both audio output and input. The audio throughput delay is +the nominal amount of time, in milliseconds, that a sound coming into the +audio input will be delayed if it is copied through Pd straight to the +output. Naturally you would like this to be as small as possible, but, +depending on OS, API, and even the specific choice of audio hardware, there +will be a limit to how small you can make this. You can typically get +10 msec on Linux (and lower still if you use special tricks), 30 msec on MacOS, +and 60 msec on Windows (but note that there might be ways that a patient +Windows user can reduce this). + +

      Next you get a choice of input and output device. If you want to open +more than one, hit "use multiple devices" and you'll be allowed up to 4 +in and 4 out. Each audio device is 2 channels by default, but you may +specify more if your hardware supports it. + +Other parameters may be tweaked using the command line; see under + Preferences and startup options . + +

      3.2.2. MIDI

      + +

      The "channel message" midi objects in Pd such as [notein] or [pgmout] will +take channels 1-16 to mean the first open MIDI port, 17-32 the second one, +and so on. The [midiin], [midirealtimein] and [sysexin] objects output the port +number in their right outlet and [midiout] has a separate inttlet to specify which +of the open MIDI port numbers you want. + +

      System exclusive MIDI message input and output are theoretically supported +but does not work uniformly across all operating systems.. -

      3.5. Preferences and startup options

      +

      3.3. Preferences and startup options

      Pd's behavior may be customized to instruct it where to find files, which audio devices to open, what font size to use, and so on. Most of @@ -470,7 +486,7 @@

      3.5. Preferences and startup options

      dialog appears as follows:

      - startup dialog + startup dialog

      The slots at top each specify a binary "library" for Pd to load on startup. @@ -658,7 +674,7 @@

      MIDI and sleepgrain

      is quantized to this value, so if you care about MIDI timing, reduce this to 1 or less. -

      3.6. How Pd searches for files

      +

      3.4. How Pd searches for files

      Pd has a search path feature; you specify the path on the command line using the "-path" option. Paths may contain any number of files. If you @@ -669,7 +685,7 @@

      3.6. How Pd searches for files

      item in the "File / Preferences" menu:

      - path dialog + path dialog

      The path must be correctly set before you load diff --git a/doc/Makefile.am b/doc/Makefile.am index f22d40a8d..3dbf0b21c 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -126,10 +126,10 @@ nobase_dist_libpd_DATA = \ ./1.manual/img/2.10.4.png \ ./1.manual/img/2.10.5.png \ ./1.manual/img/2.10.6.png \ - ./1.manual/img/3.1.1.png \ - ./1.manual/img/3.1.2.png \ - ./1.manual/img/3.5.1.png \ - ./1.manual/img/3.6.1.png \ + ./1.manual/img/3.2.1.png \ + ./1.manual/img/3.2.2.png \ + ./1.manual/img/3.3.1.png \ + ./1.manual/img/3.4.1.png \ ./1.manual/img/4.1.1.png \ ./1.manual/img/4.1.2.png \ ./1.manual/img/4.2.1.png \ From 7f668cc4cc37f907196957e70b5a6fee8a8627bf Mon Sep 17 00:00:00 2001 From: porres Date: Thu, 11 Apr 2024 16:14:08 -0300 Subject: [PATCH 250/450] 2nd revision of chapter 3 reorganizing and modernizing a lot more revisions to come, but now "minor ones" --- doc/1.manual/index.htm | 13 +- doc/1.manual/x2.htm | 26 +- doc/1.manual/x3.htm | 636 ++++++++++++++++++----------------------- doc/1.manual/x4.htm | 11 +- 4 files changed, 301 insertions(+), 385 deletions(-) diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index 3e2a3a87b..722210404 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -110,9 +110,16 @@

      Pd Manual

    4. Microsoft Windows
    5. Linux
    -
  • Testing and configuring Audio and MIDI -
  • Preferences and startup options -
  • How Pd searches for files +
  • Running Pd via the command line +
  • Testing and configuring Audio and MIDI +
      +
    1. Audio Settings +
    2. MIDI Settings +
    +
  • Preferences and startup options +
      +
    1. Startup flags +
    diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 8cbafa93f..6b22aee7b 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -40,7 +40,7 @@

    2.1. Overview

    in its origin, Pd was designed to offer a unique experimental feature not found in MAX, allowing users to define and access data structures in innovative ways, with the ability to attach shapes and colors to the data in order to visualize it and/or edit it graphically -(see section 2.10 Data Structures for details.) +(see section 2.10 Data Structures for details).

    Despite its lightweight and portable nature, Pd offers a wide range of external packages that enhance its capabilities, primarily focusing on audio and control @@ -71,14 +71,14 @@

    2.1.1. The main window, canvases, and printout

    Processing" and turns audio processing on and off globally. When "DSP" is on, Pd is computing audio samples in realtime for all open patches (whether they are visible or not). Turning off "DSP" halts the computation and releases any audio devices that -Pure Data is utilizing. You can configure audio devices in the "Audio preferences" -as described in the next chapter. +Pure Data is utilizing. You can configure audio devices as described in +3.3.1. Audio Settings.

    The Media menu offers shortcuts to toggle DSP on and off. Use Ctrl+/ (Control key on PCs or Command key on Apple computers plus the '/' key) to turn audio processing on, and Ctrl+. to turn it off. You can check input RMS audio level if you select "Test Audio and MIDI" and make other Audio and MIDI tests (read more -about this in 3.1. Audio and MIDI). +about this in 3.3. Testing and configuring Audio and MIDI).

    media menu @@ -538,14 +538,14 @@

    2.3.1. Tab navigation

    2.3.2. Autopatching

    By default, Pd has an 'autopatching' mode set to on. You can disable it -via startup flags (see '-autopatch' flag Preferences -and startup options). This works with the shortcuts from the Put -menu for inserting boxes. If you have a selected box and use a shortcut -to create another one (such as Ctrl+1 to create an object box), -the created box is placed below the selected box and a connection is made -from the first outlet of the selected box into the inlet of the newly created -box (granted that these boxes have an outlet and an inlet for the connection -to happen). +via startup flags (see '-autopatch' flag 3.4.1. +Startup flags). This works with the shortcuts from the Put menu +for inserting boxes. If you have a selected box and use a shortcut to +create another one (such as Ctrl+1 to create an +object box), the created box is placed below the selected box and a +connection is made from the first outlet of the selected box into the +inlet of the newly created box (granted that these boxes have an outlet +and an inlet for the connection to happen).

    Once the new box is created, it is also selected, so you can continue with autopatching by adding yet more boxes. In the case of object and message boxes @@ -1193,7 +1193,7 @@

    2.6.2. Computation load

    that is, it tries to keep ahead of real time by a small amount in order to be able to absorb unpredictable, momentary increases in computation time. This is specified using the "-audiobuf" and "-blocksize" command line flags -(see Installing and configuring Pd). +(see 3.4.1. Startup flags).

    If Pd gets late with respect to real time, gaps (either occasional or frequent) will appear in both the input and output audio streams. On the diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index 716d57a77..ef074292a 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -41,7 +41,7 @@

    3.1. Installing Pd

    Installation instructions are platform-specific and described in each case in this section, but Instructions on how to build Pd yourself for all supported OSes is -provided in Chapter 6: Building Pd from source.. +provided in Chapter 6: Building Pd from source.

    If you run into any installation trouble you can also consult the Pd mailing list archive on @@ -79,142 +79,155 @@

    3.1.2 Microsoft Windows

    time you run Pd the "Windows Firewall" will ask your permission to allow this intercommunication. - +
     
    +    pd [startup flags] [patches to open]
     
    -
    +

    + test audio and midi patch +

    -

    3.1.3. Linux

    +

    First, try to get Pd to play a sine wave over your speakers. The +"OUTPUT MONITOR" section to the left allows you to set an output gain and +a test sound (either noise or a sinusoid). By default, the first eight output +channels are turned on so that when you should get output on them when you +turn the test sound on. If you have fewer than eight output channels open, +the extra channels aren't played; and if you have more, you need to use the +radio button to test them. -

    Pd is available via the package systems for some Linux distributions, -but not always in the most recent version possible. In case you don't find -it or want the very latest recent version, you need to compile Pd, which is -described in Chapter 6: Building Pd from source. as -mentioned earlier. +

    If there's anything wrong, the most likely outcome is that you will hear +nothing at all. This could be for any of at least three reasons: Pd might +have failed to open the audio device; the audio card's output volume might +be set to zero; or your audio system might not be set to amplify the computer +output. +

    The "INPUT MONITOR" provides VU Meters and number boxes to indicated the +levels of incoming audio, in dB, with 100 being maximum. (Incoming signals may +clip at RMS levels below 100; for instance, a sinusoid clips at about 97 dB.) +Any DC present in the input (such as you get with cheap audio hardware) +will show up as level unless you turn on the "input highpass" toggle +at right; then the DC component is filtered out before metering. - -

    Alsa and Jack support should auto-configure, but "--enable-alsa" od -"--enable-jack" will force their inclusion. -

    After "make", just type "~/pd/bin/pd" to run pd. -

    Alternatively, as superuser, you can run "make install" after "make depend" -and then anyone on your system can just type "pd" to run it. -

    Testing audio and MIDI.

    + + + + + + + + -

    3.2. Testing and configuring Audio and MIDI

    - -

    To test audio and MIDI, start Pd and select "Test Audio and MIDI..." from -the Media menu. You should see a window like this: - -

    - test audio and midi patch -

    - -

    First, try to get Pd to play a sine wave over your speakers. The -"OUTPUT MONITOR" section to the left allows you to set an output gain and -a test sound (either noise or a sinusoid). By default, the first eight output -channels are turned on so that when you should get output on them when you -turn the test sound on. If you have fewer than eight output channels open, -the extra channels aren't played; and if you have more, you need to use the -radio button to test them. - -

    If there's anything wrong, the most likely outcome is that you will hear -nothing at all. This could be for any of at least three reasons: Pd might -have failed to open the audio device; the audio card's output volume might -be set to zero; or your audio system might not be set to amplify the computer -output. - -

    The "INPUT MONITOR" provides VU Meters and number boxes to indicated the -levels of incoming audio, in dB, with 100 being maximum. (Incoming signals may -clip at RMS levels below 100; for instance, a sinusoid clips at about 97 dB.) -Any DC present in the input (such as you get with cheap audio hardware) -will show up as level unless you turn on the "input highpass" toggle -at right; then the DC component is filtered out before metering. - -

    To test the quality of audio input and output, the "AUDIO OUTPUT" toggles -must be (which they are by default) and causes the inputs to be played to the -outputs at unit gain. You should hear a faithful, non-distorted copy of whatever -is sent through the patch. - -

    It is easy to get two copies of Pd running by accident; on most machines -only one at a time may be inputting and outputting sound. (Some copy of Pd -might have audio or MIDI devices open and prevent the copy you're trying to use -from getting access to them). Having extra copies of Pd around will also eat -CPU cycles uselessly. - -

    You may be interested in getting only audio output or audio input, or -you may need both to run simultaneously. By default, Pd will try to run -both, but if you don't need either input or output, you may find that Pd -runs more reliably, or at least more efficiently, with the unused direction -turned off. This may be specified in Pd's command line flags or using the -"audio settings" dialog panel. - -

    Depending on your application you will have a more or less stringent latency -requirement. Ideally, when any input (audio, MIDI, keyboard, network) is -available, the outputs (in particular the audio output) should react instantly. -In real life, it is necessary to buffer the audio inputs and outputs, trying -always to keep some number of milliseconds ahead of real time to prepare for the -inevitable occasions where the CPU runs off to service some different task -from Pd. How small this latency can be chosen depends on your OS and your -audio driver. - -

    TIP: If Pd starts up but you get distortion or glitches in the audio -output, this could be either because the "audio I/O buffer" isn't big enough, -or else because the CPU load of the patch you're running is too great for the -machine you have, or else because the ADC and DAC are out of sync or even at -different sample rates. To test for the first possibility, try increasing the -audio latency in the command line or the "audio settings" dialog (but see also -under your OS below.) For the second, start up your favorite performance -monitor program; and for the third, try starting Pd up with ADCs disabled. - -

    In addition to the "test audio and MIDI" patch, the "Media" menu -contains items for controlling audio and MIDI settings. The first two -items, "Audio on" and "Audio off", open or close the audio devices and -start or stop Pd's audio computation. - -

    If there is a choice of audio API to make, the Media menu will display them. -On Linux, they are OSS, ALSA, and Portaudio; on Windows, you get MMIO and ASIO. -On Mac the only one is Portaudio. - - - - - - - - - - - - +

    3.3.1. Audio Settings

    +

    You can open the Audio Settings dialog from the Media menu. +Also from this menu, you can open the Audio Settings dialog by selecting +an API (even if it's the one already in use). The Audio Settings dialog +looks like this: +

    + audio settings dialog +

    +

    The exact choices you get depend on the operating system and API. The +sample rate controls both audio output and input. The "delay" is the +nominal amount of time, in milliseconds, that a sound coming into the +audio input will be delayed if it is copied through Pd straight to the +output. Naturally you would like this to be as small as possible, but, +depending on OS, API, and even the specific choice of audio hardware, +there will be a limit to how small you can make this. +

    Next you get a choice of input and output device. If you don't +need either the input or output device you can unchcek the toggle box +to the left (which is on by default). Number of input and output +channels is 2 channels by default, but you may specify just one if +that's all you need or more if your hardware supports it. +

    3.3.2. MIDI Settings

    +

    There's also a MIDI settings dialog for you to configure one or more MIDI +input and output devices. If more than one device is chosen for either input and +output, they are resgistered in different MIDI ports. The "channel message" midi +objects in Pd (such as [notein] or [pgmout]) will take channels 1-16. Note, +however, that the MIDI port is encoded in the channel number, where channels 1-16 +mean the first open MIDI port, 17-32 the second one, and so on. The [midiin], +[midirealtimein] and [sysexin] objects output the port number in their right +outlet and [midiout] has a separate inlet to specify which MIDI port you want. +(INCLUDE PIC) +

    System exclusive MIDI message input and output are theoretically supported +but does not work uniformly across all operating systems.. +

    3.4. Preferences and startup options

    +

    In addition to the Audio and MIDI settings shown above, you can customize +Pd to instruct it where to find files, what font size to use, and much more. +Pd has a main "Preferences" window, which you can select from the Pd +menu in macOS or the File menu otherwise. The "Preferences" entry +opens a submenu with "Edit Preferences..." and more. By selcting this entry, +you open the main preferences dialog with different tabs for: "Path", "Startup", +"Audio", "MIDI" and "misc". +(INCLUDE PIC, with all tabs and "path" chosen) +

    The Audio and MIDI tabs are actually the same settings windows that you +can open via the Media menu, so there's nothing new. The "Path" tabs +configures search paths that Pd will use to find files and externals when +opening a patch. This is covered in depth in Externals. +In short, Pd searches for files and externals relative to the patch directory +and, if it fails, in paths that are set in this tab next. Note you can use +things like "../samples" to point to folders and subfolders that are relative +to the patch directory and other search paths. + -

    All of these settings may be saved automatically between Pd sessions. -It is also possible to specify settings directly via the command -line. (A third mechanism, using configuration files, is deprecated and -isn't described here.) The Pd command line is described in the next -section. Command line settings, if given, each override the corresponding -setting that was saved from Pd. -

    The startup settings (i.e., those that take effect only when Pd is started) -are controlled using the "startup..." dialog from the File menu. The -dialog appears as follows: +

    The "Startup" tab has configurations for initializing Pd and an entry for +Startup flags. Most of the configurations in Pd may be changed using the +various dialogs you can open from Pd's menus. For instance, you can use the +Font entry from the Edit menu to set what font size size Pd will use +for its main window (this is described in 2.1.1., +by the way). Nevertheless, this and every other configuration in Pd (from +Audio and MIDI settings and whatnot) can also be configurable via startup +flags. Other than that, some configurations are too cranky to put in a GUI +dialog and must be only set via startup flags.

    startup dialog

    -

    The slots at top each specify a binary "library" for Pd to load on startup. -These may be for Gem, pdp, zexy, iemlib, cyclone, and so on. Typically, a -single binary object (an "extern") is left for Pd to load automatically; -startup library loading is appropriate for collections of many objects -specified by a single binary library. ( See 4.Externals for more on externals and how to load them) - -

    The "defeat real-time scheduling" control, if enabled, makes Pd run without -its usual effort to become a real-time process (whatever this means in the -operating system you are using.) In Unix, Pd must usually be setuid to allow -real-time scheduling at all. - -

    The "startup flags" allow you to add to Pd's command line on startup. This -is specified as described below, except that the initial word, "pd", is -understood. For example, putting "-rt" in this field sets real-time -scheduling; "-sleepgrain 1" sets the sleep grain to 1 (see under MIDI below), -and typing "-rt -sleepgrain 1" does both. - -

    You may save the current settings for future Pd sessions with the -"save all settings" button; this saves not only the path but all other -settings as well. - -

    Command line arguments
    - -

    Pd may be run as a "command line" program from your "terminal emulator", -"shell", or "MS-DOS prompt". In Windows, if Pd is started using a "shortcut" -it is also run from a command line which you can edit using the "properties" -dialog for the shortcut. In any operating system, Pd can be called from a -script (called a batch file on Windows or a shell script -on macOS or Unix). The command line is just a line of text, which should be -of the form: - -

    -
    -    pd [options] [patches to open]
    -
    -
    - -

    Although you may have to specify a path (such as "~/pd/bin/pd" or -"C:\program files\pd\bin\pd") so your command interpreter can find -Pd. Possible options include: - +

    Startup flags initialize Pd in many ways, but many configurations can +be changed while Pd is running. Some configurations, on the other hand, +requires Pd to restart, such as setting which external binaries to load +(more about external management in chapter 4. + +

    The "defeat real-time scheduling" control, if enabled, makes Pd run +without its usual effort to become a real-time process (whatever this means +in the operating system you are using.) In Unix, Pd must usually be setuid +to allow real-time scheduling at all. + +

    All of Pd's settings may be saved automatically between Pd sessions. +Note the "Save All Preferences" entry in the submenu from "Preferences". +It is also possible to save preferences to a file, load from one or forget +it all. + +

    Besides being able to set startup flags in "Preferences -> Startup", +you can also invoke Pd via the command line using the same startup flags +as arguments. Command line settings, if given, override the corresponding +settings that were saved from Pd. + +

    3.4.1. Startup flags

    + + + +

    Here's a list of all startup flags that you can use in the "Startup" tab under +"Preferences" or by running Pd from the command line. +

     
     audio configuration flags:
    @@ -626,20 +582,40 @@ 
    Command line arguments
    -

    Here are some details on some of the audio, MIDI, and scheduler options (but -see also the next section on file management.) +

    Here are some details. + +

    Path

    -

    multiple devices.

    +

    Paths may contain any number of entries if separated by colons in Unix or +semicolons in Windows. + +

    MIDI multiple devices and sleepgrain

    You can specify multiple MIDI input and output devices. For example, "pd -midiindev 3 -midioutdev 4,2" asks for the third MIDI input device and the fourth and second MIDI output device. +

    In Linux, if you ask for "pd -midioutdev 1" for instance, you get /dev/midi0 +or /dev/midi00 (or even /dev/midi). "-midioutdev 45" would be /dev/midi44. In +Windows, device number 0 is the "MIDI mapper", which is the default MIDI device +you selected from the control panel; counting from one, the device numbers are +card numbers as listed by "pd -listdev". + +

    The "sleepgrain" controls how long (in milliseconds) Pd sleeps between +periods of computation. This is normally the audio buffer divided by 4, but +no less than 0.1 and no more than 5. On most OSes, ingoing and outgoing MIDI +is quantized to this value, so if you care about MIDI timing, reduce this to 1 +or less. + + + +

    Sample rate

    The sample rate controls Pd's logical sample rate which need not be that of the audio input and output devices. If Pd's sample rate is wrong, time will @@ -648,7 +624,7 @@

    sample rate.

    to re-sync them, which will sound bad. You can disable input or output if this is a problem. -

    audio buffer size and block size

    +

    Audio buffer size and block size

    You can specify an audio buffer size in milliseconds, typically between 10 and 300, depending on how responsive your OS and drivers are. If this is set too @@ -659,76 +635,6 @@

    audio buffer size and block size

    You can also specify the audio block size in sample frames. This is 64 by default (except for MMIO for which it's 256), and may be 64, 128, or 256. -

    MIDI and sleepgrain

    - -

    In Linux, if you -ask for "pd -midioutdev 1" for instance, you get /dev/midi0 or /dev/midi00 -(or even /dev/midi). "-midioutdev 45" would be /dev/midi44. In Windows, device -number 0 is the "MIDI mapper", which is the default MIDI device you selected -from the control panel; counting from one, the device numbers are card -numbers as listed by "pd -listdev". - -

    The "sleepgrain" controls how long (in milliseconds) Pd sleeps between -periods of computation. This is normally the audio buffer divided by 4, but -no less than 0.1 and no more than 5. On most OSes, ingoing and outgoing MIDI -is quantized to this value, so if you care about MIDI timing, reduce this to 1 -or less. - -

    3.4. How Pd searches for files

    - -

    Pd has a search path feature; you specify the path on the command line -using the "-path" option. Paths may contain any number of files. If you -specify several files in a single "-path" option they're separated by colons -in Unix or semicolons in Windows. - -

    You can see and edit the path while Pd is running using the "path..." -item in the "File / Preferences" menu: - -

    - path dialog -

    - -

    The path must be correctly set before you load -a patch or it may fail to find abstractions, etc., that are needed to -construct the patch. When Pd searches for an abstraction or an -"extern" it uses the path to try to find the necessary file. The "read" -messages to qlists and arrays (aka tables) do this too. - -

    If "use standard extensions" is enabled, the usual "extra" directory -is also searched. This contains standard external objects like "sigmund~" -(as well as it's predecessor "fiddle~") and "bonk~", and perhaps much more -depending on the distribution of Pd you're using. - -

    You may save the current settings for future Pd sessions with the -"save all settings" button; this saves not only the path but all other -settings as well. - -

    Path entries may be relative to the patch directory; for instance, -if your path has an item, "../sound", and your patch is in "my stuff/all mine", -then Pd will look in "my stuff/sound". Spaces should be OK in the path to -the patch, but not in the path entry (../sound) itself. This is useful if -you have a patch and supporting files (even a supporting snapshot of pd) -that you want to distribute or carry around together. - -

    Regardless of path, Pd should look first in the directory containing -the patch before searching down the path. Pd does not automatically look -in the current directory however; to enable that, include "." in -the path. The "extra" directory, if enabled, is searched last. - -

    Filenames in Pd are always separated by (Unix-style) forward slashes, even -if you're on Windows (which uses backslashes). This is so that patches can be -ported more easily between operating systems. On the other hand, if you -specify a filename on the command line (as in "pd -path c:\pdlib") the file -separator should agree with the operating system.
    - -

    A filename specified in a patch with any "/" characters in it (such as -"../sounds/sample1.wav") causes Pd to look both in the path and relative -to the directory containing the patch. You may also invoke externs that way -(see Externals for more on externals and how to load them). - -

    As of version 0.35, there may be spaces in the path to Pd itself; also, -the "openpanel" and "savepanel" objects can handle spaces. Spaces in the -path should work as of version 0.38.



    diff --git a/doc/1.manual/x4.htm b/doc/1.manual/x4.htm index b7acfcbf0..b60441019 100644 --- a/doc/1.manual/x4.htm +++ b/doc/1.manual/x4.htm @@ -576,13 +576,16 @@

    4.3.2.2. Startup:

    "Preferences => Startup" loads a window that says "Pd libraries to load on startup". This is where you can manually and permanently load single binary pack libraries. But since they're only needed during startup, you need to restart Pd so this takes effect. The startup -is also used for configuring Pd in many ways, -see Preferences and startup options for reference. +is also used for configuring Pd in many ways, see 3.4. Preferences and +startup options for reference. + +

    + +startup preferences -

    startup preferences
    -

    As we’ve seen with ‘zexy’, it’s common that the name of the binary is +

    As we’ve seen with ‘zexy’, it’s common that the name of the binary is the same as the library’s, so you don’t need to worry about adding it to the path. Another example is the ‘cyclone’ library. As previously mentioned, Cyclone includes objects as abstractions, as a set of separate binaries and From c9cf3ad5e793575af5678421b235e8e346ca8bd3 Mon Sep 17 00:00:00 2001 From: porres Date: Thu, 11 Apr 2024 18:08:07 -0300 Subject: [PATCH 251/450] collapse chapter 6 into a single file this need more revisions --- doc/1.manual/index.htm | 41 ++- doc/1.manual/x6-a.htm | 347 ---------------------- doc/1.manual/x6-b.htm | 202 ------------- doc/1.manual/x6-c.htm | 148 ---------- doc/1.manual/x6.htm | 633 +++++++++++++++++++++++++++++++++++++++-- doc/Makefile.am | 3 - 6 files changed, 636 insertions(+), 738 deletions(-) delete mode 100644 doc/1.manual/x6-a.htm delete mode 100644 doc/1.manual/x6-b.htm delete mode 100644 doc/1.manual/x6-c.htm diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index 722210404..31f7183c7 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -169,24 +169,35 @@

    Pd Manual

    1. Requirements
    2. Autotools build (recommended) -
    3. Linux & BSD +
    4. Building Pd for Linux +
    5. Building Pd for BSD
        -
      1. BSD
      2. -
      -
    6. macOS -
        -
      1. macOS resources
      2. -
      -
    7. Windows -
        -
      1. Windows resources
      2. -
      3. Windows ASIO support
      4. -
      -
    8. Double precision -
    9. Other flags +
    10. FreeBSD +
    11. OpenBSD +
    12. NetBSD +
    +
  • Building Pd for macOS +
      +
    1. macOS app bundle +
    2. Supplementary macOS Build Scripts +
    3. Preferences +
    4. Code Signing +
    5. Privacy Permissions +
    6. Font Issues with macOS 10.15+ +
    7. Dark Mode +
    8. Debugging Releases +
    +
  • Building Pd for Microsoft Windows +
      +
    1. Building a Pd application +
    2. Pd Application Directory +
    3. pdfontloader +
    4. ASIO Support +
    +
  • Building Pd with Double precision
  • Cross-compilation for Windows on Linux
  • Makefile build -
  • Reporting bugs +
  • Troubleshooting diff --git a/doc/1.manual/x6-a.htm b/doc/1.manual/x6-a.htm deleted file mode 100644 index d45f1a68e..000000000 --- a/doc/1.manual/x6-a.htm +++ /dev/null @@ -1,347 +0,0 @@ - - - - -Pd Manual 6 - - - - - - - -
    - -
    - -
    - - -

    back to ch6 back to table of contents

    - - - -

    6.4.1 macOS resources

    - -

    Directory pure-data/mac contains support files for building a Pure Data macOS application -bundle and supplementary build scripts for compiling Pd on Macintosh systems, as -it is built for the ‘vanilla’ releases on msp.ucsd.edu.

    - -

    Pd macOS app

    - -

    In a nutshell, a monolithic macOS “application” is simply a directory structure -treated as a single object by the OS. Inside this bundle are the compiled -binaries, resource files, and contextual information. You can look inside any -application by either navigating inside it from the commandline or by -right-clicking on it in Finder and choosing “Show Package Contents.”

    - -

    The basic layout is:

    - -
    Pd-0.47-1.app/Contents
    -  Info.plist  <- contextual info: version string, get info string, etc
    -  /Frameworks <- embedded Tcl/Tk frameworks (optional)
    -  /MacOS/Pd   <- renamed Wish bundle launcher
    -  /Resources
    -    /bin      <- pd binaries
    -    /doc      <- built in docs & help files
    -    /extra    <- core externals
    -    /font     <- included fonts
    -    /po       <- text translation files
    -    /src      <- Pd source header files
    -    /tcl      <- Pd GUI scripts
    -
    - -

    The Pure Data GUI utilizes the Tk windowing shell aka “Wish” at runtime. -Creating a Pure Data .app involves using a precompiled Wish.app as a wrapper -by copying the Pd binaries and resources inside of it.

    - -

    App Bundle Helpers

    - -
      -
    • osx-app.sh: creates a Pd .app bundle for macOS using a Tk Wish.app wrapper
    • -
    • tcltk-wish.sh: downloads and builds a Tcl/Tk Wish.app for macOS
    • -
    - - -

    These scripts complement the autotools build system described in INSTALL.txt and -are meant to be run after Pd is configured and built. The following usage, for -example, downloads and builds a 32 bit Tk 8.6.6 Wish.app which is used to create -a macOS Pd-0.47-1.app:

    - -
    mac/tcltk-wish.sh --arch i386 8.6.6
    -mac/osx-app.sh --wish Wish-8.6.6.app 0.47-1
    -
    - -

    Both osx-app.sh & tcltck-wish.sh have extensive help output using the –help -commandline option:

    - -
    mac/osx-app.sh --help
    -mac/tcltk-wish.sh --help
    -
    - -

    The osx-app.sh script automates building the Pd .app bundle and is used in the -“make app” makefile target. This default action can be invoked manually after -Pd is built:

    - -
    mac/osx-app.sh 0.47-1
    -
    - -

    This builds a “Pd-0.47-1.app” using the included Wish. If you omit the version -argument, a “Pd.app” is built. The version argument is only used as a suffix to -the file name and contextual version info is pulled from configure script -output.

    - -

    A pre-built universal (32/64 bit) Tk 8.6.10+ Wish with patches applied is -included with the Pd source distribution and works across the majority of macOS -versions up to 10.15. This is the default Wish.app when using osx-app.sh. If you -want to use a different Wish.app (a newer version, a custom build, a system -version), you can specify the donor via commandline options, for example:

    - -
    # build Pd-0.47-1.app using Tk 8.6 installed to the system
    -mac/osx-app.sh --system-tk 8.6 0.47-1
    -
    - -

    If you want Pd to use a newer version of Tcl/Tk, but do not want to install to -it to your system, you can build Tcl/Tk as embedded frameworks inside of the Pd -.app bundle. This has the advantage of portability to other systems.

    - -

    The tcltk-wish.sh script automates building a Wish.app with embedded Tcl/Tk, -either from the release distributions or from a git clone:

    - -
    # build Wish-8.6.6.app with embedded Tcl/Tk 8.6.6
    -mac/tcltk-wish.sh 8.6.6
    -
    -# build Wish-master-git.app from the latest Tcl/Tk master branch from git
    -mac/tcltk-wish.sh --git master-git
    -
    - -

    You can also specify which architectures to build (32 bit, 64 bit, or both):

    - -
    # build 32 bit Wish-8.6.6.app with embedded Tcl/Tk 8.6.6
    -mac/tcltk-wish.sh --arch i386 8.6.6
    -
    -# build universal (32 & 64 bit)
    -mac/tcltk-wish.sh --universal 8.6.6
    -
    - -

    Once your custom Wish.app is built, you can use it as the .app source for -osx-app.sh with the -w/–wish option:

    - -
    # build Pd with a custom Tcl/Tk 8.6.6 Wish
    -mac/osx-app.sh -w Wish-8.6.6.app
    -
    - -

    Downloading and building Tcl/Tk takes some time. If you are doing lots of builds -of Pd and/or are experimenting with different versions of Tcl/Tk, building the -embedded Wish.apps you need with tcltk-wish.sh can save you some time as they -can be reused when (re)making the Pd .app bundle.

    - -

    Usually, it’s best to use stable releases of Tcl/Tk. However, there are times -when building from the current development version is useful. For instance, -if there is a bug in the Tcl/Tk sources and the generated Wish.app crashes on -your system, you can then see if there is a fix for this in the Tcl/Tk -development version on GitHub. If so, then you can test by using the -tcltk-wish.sh –git commandline option. Oftentimes, these kinds of issues will -appear with a newer version of macOS before they have been fixed by the open -source community.

    - -

    Additionally, Pd uses an older version of Tcl/Tk for backwards compatibility on -macOS. As such, small bugfixes from newer versions may need to be backported for -the Pd GUI. Currently, this is handled in the tcltk-wish.sh script by applying -custom patches to either the Tcl and/or Tk source trees. To skip applying -patches, use the tcltk-wish.sh –no-patches commandline option. See -mac/patches/README.txt for more info.

    - -

    Supplementary Build Scripts

    - -
      -
    • build-macosx: builds a 32 bit Pd .app bundle using src/makefile.mac
    • -
    • build-mac64: builds a 64 bit Pd .app bundle using src/makefile.mac
    • -
    - - -

    These scripts automate building Pd with the fallback makefiles in the src -directory.

    - -

    To build a 32 bit Pd, copy this “mac” directory somewhere like ~/mac. Also copy -a source tarball there, such as pd-0.47-1.src.tar.gz. Then cd to ~/mac and type:

    - -
    ./build-macosx 0.47-1
    -
    - -

    If all goes well, you’ll soon see a new app appear named Pd-0.47-1.app.

    - -

    If you want to build a 64 bit Pd, perform the same steps and use the build-mac64 -script:

    - -
    ./build-mac64 0.47-1
    -
    - -

    Note: The “wish-shell.tgz” is an archive of this app I found on my mac: -/System/Library/Frameworks/Tk.framework/Versions/8.4/Resources/Wish Shell.app

    - -

    A smarter version of the scripts ought to be able to find that file -automatically on your system so I wouldn’t have to include it here.

    - -

    Preferences

    - -

    The Pure Data preferences are saved in the macOS “defaults” preference system -using the following domains:

    - -
      -
    • org.puredata.pd: core settings (audio devices, search paths, etc)
    • -
    • org.puredata.pd.pd-gui: GUI settings (recent files, last opened location, etc)
    • -
    - - -

    The files themselves live in your user home folder and use the .plist extension:

    - -
    ~/Library/Preferences/org.puredata.pd.plist
    -~/Library/Preferences/org.puredata.pd.pd-gui.plist
    -
    - -

    These files use the Apple Property List XML format and shouldn’t be edited -directly. You can look inside, edit, and/or delete these using the “defaults” -commandline utility in Terminal:

    - -
    # print the contents of the core settings
    -defaults read org.puredata.pd
    -
    -# delete the current GUI settings
    -defaults delete org.puredata.pd.pd-gui
    -
    -# set the startup flag in the core settings
    -defaults write org.puredata.pd -array-add flags '-lib Gem'
    -
    - -

    Some important per-application settings required by the GUI include:

    - -
      -
    • NSRecentDocuments: string array, list of recently opened files
    • -
    • NSQuitAlwaysKeepsWindows: false, disables default 10.7+ window state saving
    • -
    • ApplePressAndHoldEnabled: false, disables character compose popup, - enables key repeat for all keys
    • -
    • NSRequiresAquaSystemAppearance: true, disables dark mode for Pd GUI on 10.14+
    • -
    - - -

    These are set in tcl/pd_guiprefs.tcl.

    - -

    Code Signing

    - -

    As of Pd 0.51, the mac/osx-app.sh script performs “ad-hoc code signing” in order -to set entitlements to open un-validated dynamic libraries on macOS 10.15+. This -is required due to the new security settings. Note: ad-hoc signing doesn’t -actually sign the .app bundle with an account certificate, so the unidentified -developer warning is still shown when the downloaded .app is run for the first -time.

    - -

    Privacy Permissions

    - -

    macOS 10.14 introduced system privacy permissions for actions applications can -undertake on a user account, such as accessing files or reading microphone or -camera input. When an application is started for the first time and tries to -access something that is covered by the privacy settings, a permissions prompt -is displayed by the system requesting access. The action is then allowed or -denied and this setting is saved and applied when the application is run again -in the future.

    - -

    As of macOS 10.15, running Pd will request access for the following:

    - -
      -
    • Files and Folders: Documents
    • -
    • Files and Folders: Desktop
    • -
    • Microphone
    • -
    - - -

    Additionally, using an external such as Gem for camera input will request -access to the Camera.

    - -

    The current permissions can be changed in Privacy panel in System Preferences. -They can also be reset on the commandline using the “tccutil” command and the -Pd .app bundle id:

    - -
    # reset Pd's Microphone privacy setting
    -tccutil reset Microphone org.puredata.pd.pd-gui
    -
    -# reset all of Pd's privacy settings
    -tccutil reset All org.puredata.pd.pd-gui
    -
    - -

    Font Issues with macOS 10.15+

    - -

    macOS 10.15 furthered changes to font rendering begin with 10.14 with the weird -result that Pd’s default font, DejaVu Sans Mono, renders thin and closer -together than system fonts. This results in objects on the patch canvas that are -longer their inner text and text selection positioning is off.

    - -

    To remedy this for now, Pd 0.51-3 changed Pd’s default font for macOS to Menlo -which is included with the system since 10.6. Menlo is based on Bitstream Vera -Mono and DejaVu Sans Mono, so there should be no issues with patch sizing or -positioning.

    - -

    Dark Mode

    - -

    Pd currently disables Dark Mode support by setting the -NSRequiresAquaSystemAppearance key to true in both the app bundle’s Info.plist -and the GUI defaults preference file. This restriction may be removed in the -future once Dark Mode is handled in the GUI.

    - -

    Debugging Releases

    - -

    On macOS 10.15+, apps must be signed with an entitlement to allow debugging. -This is good for security, but bad if you want to run Pd in lldb to figure out -why your custom external is crashing.

    - -

    To make this work, the entitlement can be added to an existing Pd release .app -bundle using the codesign command in Terminal (steps by Pierre Alexandre -Tremblay):

    - -
      -
    • Extract the current Pd entitlements from the internal pd binary:
    • -
    - - -
        codesign -d /Applications/Pd-0.53-2.app/Contents/Resources/bin/pd \
    -    --entitlements :~/Desktop/pd-entitlements.xml
    -
    - -
      -
    • Edit pd-entitlements.xml on your Desktop, add the following key, and save:
    • -
    - - -
        <key>com.apple.security.get-task-allow</key>
    -    <true/>
    -
    - -
      -
    • Re-sign the pd binary with the updated entitlements:
    • -
    - - -
        codesign -s - --deep --force --options=runtime \
    -    --entitlements ~/Desktop/pd-entitlements.xml \
    -    /Applications/Pd-0.53-2.app/Contents/Resources/bin/pd
    -
    - -

    Now Pd can be run with lldb using:

    - -
    lldb /Applications/Pd-0.53-2.app/Contents/Resources/bin/pd
    -
    - -

    Note: Re-signing using an ad-hoc identifier will work on the development system, - but running the Pd .app bundle on another system will result in security - warnings as the original signature and notarization are invalid.

    - -

    back to ch6 back to table of contents

    -
    -
    -
    - -
    - - - - \ No newline at end of file diff --git a/doc/1.manual/x6-b.htm b/doc/1.manual/x6-b.htm deleted file mode 100644 index 3f75a8711..000000000 --- a/doc/1.manual/x6-b.htm +++ /dev/null @@ -1,202 +0,0 @@ - - - - -Pd Manual 6 - - - - - - - -
    - -
    - -
    - -

    back to ch6 back to table of contents

    - -

    6.5.1 Windows resources

    - -

    Directory pure-data/msw contains support files for building a Pure Data Windows -application, as it is built for the ‘vanilla’ releases on msp.ucsd.edu.

    - -

    Notes about compiling on Microsoft Windows

    - -

    As of Pd version 0.50, all releases are compiled using Dan Wilcox’s scripts, -msw-app.sh, and optionally tcltk-dir.sh (which builds a version of TCL/TK in -case you don’t already have one).

    - -

    The Pd sources aren’t completely self-contained: Because of licensing -restrictions, the ASIO support files are not included in the Pd source tree. -The msw-app.sh script presumes you’ve downloaded the ASIO SDK and can point -msw-app.sh to it.

    - -

    It’s also possible to compile Pd using Visual C. This is not managed -automatically but you can look in “how-to-use-msvc.sh” to see how it can be -done. This compiler gives different warnings which are sometimes useful, and -refuses to compile code that has variable declarations in the middle of a -block. It’s a good idea to test pull requests against MSVC if you can. The -file “pdprototype.zip” contains all the garbage that Pd needs in addition to its -own files, including tcl/tk. MSVC compilation works in 32 bits only.

    - -

    The scripts build-msw-32.sh and build-msw-64.sh are the ones used by Miller to -make Pd releases. These files work on Linux only and will not work out of -the box unless your file tree resembles Miller’s in some ways (pd source is in -~/pd for instance) but you can presumably make your own version if you need to.

    - -

    But to first get things working, it’s best to use msw-app.sh and tcltk-dir.sh -directly.

    - -

    Pd Application Directory

    - -

    Pd for Windows is essentially a stand-alone application directory which contains -the compiled binaries, resource files, and contextual information.

    - -

    The basic layout is:

    - -
    pd
    -  /bin      <- pd binaries
    -  /doc      <- built in docs & help files
    -  /extra    <- core externals
    -  /font     <- included fonts
    -  /lib      <- embedded Tcl/Tk frameworks
    -  /po       <- text translation files
    -  /src      <- Pd source header files
    -  /tcl      <- Pd GUI scripts
    - -

    The Pure Data GUI utilizes the Tk windowing shell aka “wish##.exe” at runtime -which is included with Pd in the /bin directory. A Pure Data app directory -includes both the Pd binaries and resources as well as a precompiled Tk.

    - -

    App Bundle Helpers

    - -
      -
    • msw-app.sh: creates a Pd app directory for Windows using precompiled Tcl/Tk
    • -
    • tcltk-dir.sh: downloads and builds Tcl/Tk for Windows
    • -
    - - -

    These scripts complement the autotools build system described in INSTALL.txt and -are meant to be run after Pd is configured and built. The following usage, for -example, downloads and builds 32 bit Tk 8.6.8 which is used to create -a Windows pd-0.48-1 directory:

    - -
    msw/tcltk-dir.sh 8.6.8
    -msw/msw-app.sh --tk tcltk-8.6.8 0.48-1
    -
    - -

    Both msw-app.sh & tcltck-dir.sh have extensive help output using the –help -commandline option:

    - -
    msw/msw-app.sh --help
    -msw/tcltk-dir.sh --help
    -
    - -

    The msw-app.sh script automates building the Pd app directory and is used in the -“make app” makefile target. This default action can be invoked manually after -Pd is built:

    - -
    msw/msw-app.sh 0.47-1
    -
    - -

    This builds a “pd-0.47-1” directory using the default copy of Tk. If you omit -the version argument, a “pd” directory is built. The version argument is only -used as a suffix to the directory name.

    - -

    The “msw/pdprototype.tgz” archive contains the basic requirements for running Pd -on Windows: a precompiled copy of Tcl/Tk and various .dll library files. This is -the default Tcl/Tk when using msw-app.

    - -

    If you want to use a newer Tcl/Tk version or a custom build, you can specify the -version or directory via commandline options, for example:

    - -
    # create pd-0.48-1 directory, download and build Tcl/Tk 8.5.19
    -msw/msw-app.sh --tk 8.5.19 0.48-1
    -
    -# create pd-0.48-1 directory, use Tcl/Tk 8.5.19 built with tcltk-dir.sh
    -msw/msw-app.sh --tk tcltk-8.5.19 0.48-1
    -
    - -

    Note: Depending on which version of Tcl/Tk you want to use, you may need to set -the Tk Wish command when configuring Pd. To build Pd to use Tk 8.6:

    - -
    ./configure --with-wish=wish86.exe
    -make
    -
    - -

    The tcltk-dir.sh script automates building Tcl/Tk for Windows, either from the -release distributions or from a git clone:

    - -
    # build tcltk-8.5.19 directory with Tcl/Tk 8.5.19
    -msw/tcltk-dir.sh 8.5.19
    -
    -# build tcltk-master-git with the latest master branch from git
    -msw/tcltk-dir.sh --git master-git
    -
    - -

    Once your custom Tcl/Tk is built, you can use it as the Tk directory source for -msw-app.sh with the -t/–tk option:

    - -
    # build Pd with a custom Tcl/Tk 8.6.8 directory
    -msw/msw-app.sh -t tcltk-8.6.8
    -
    - -

    Downloading and building Tcl/Tk takes some time. If you are doing lots of builds -of Pd and/or are experimenting with different versions of Tcl/Tk, building the -tcltk directories you need with tcltk-dir.sh can save you some time as they -can be reused when (re)making the Pd app directory.

    - -

    Usually, it’s best to use stable releases of Tcl/Tk. However, there are times -when building from the current development version is useful. For instance, -if there is a bug in the Tcl/Tk sources, you can then see if there is a fix for -this in the Tcl/Tk development version on GitHub. If so, then you can test by -using the tcltk-dir.sh –git commandline option.

    - -

    The tcltk-dir.sh script tries to detect if it’s building in a 64 bit -environment, ie. MinGW 64. If this detection fails, you can force 64 bit with -the –64bit option:

    - -
    # force 64 bit Tcl/Tk 8.6.8 build
    -tcltk-dir.sh --64bit 8.6.8
    -
    - -

    pdfontloader

    - -

    Tk cannot load local font files by default on Windows. Pd accomplishes this -through a tiny, custom Tcl extension, pdfontloader.dll. On initialization, the -Pd GUI tries to load pdfontloader and, if successful, tries to load the included -Pd font.

    - -

    Currently, pdfontloader.dll is pre-built and included within the pdprototype.tgz -tarball. To build pdfontloader, see https://github.com/pure-data/pdfontloader -source.

    - -

    6.5.2. Windows ASIO Support

    - -

    In order to build ASIO support into Pd on Windows, you need to download the -ASIO sources from Steinberg directly. Their license does not let us -redistribute their source files.

    - -

    Install the ASIO SDK by doing the following:

    - - - -

    Now build Pd and it should include ASIO as one of the audio backends.

    - -
    -

    back to ch6 back to table of contents

    -
    -
    -
    - -
    - - - diff --git a/doc/1.manual/x6-c.htm b/doc/1.manual/x6-c.htm deleted file mode 100644 index c2a9bc690..000000000 --- a/doc/1.manual/x6-c.htm +++ /dev/null @@ -1,148 +0,0 @@ - - - - -Pd Manual 6 - - - - - - - -
    - -
    - -
    - -

    back to ch6 back to table of contents

    - -

    6.3.1. BSD

    - -

    Building Pd for the various BSD variants is similar to the Linux way. -The major difference is the used package manager (and the names of the packages), -you’ll want to install.

    - -

    FreeBSD

    - -

    (Tested on FreeBSD-13)

    - -

    Install the core build requirements:

    - -
    sudo pkg install gcc automake autoconf libtool gettext gmake
    -
    - -

    You may install one (or more) libraries (depending on your needs). -It seems that with FreeBSD-13, there are ALSA and JACK packages available:

    - -
    sudo pkg install alsa-lib jackit
    -
    - -

    Once your build system is set up, you can follow the general autotools build -steps to build Pd, but make sure to use gmake (aka “GNU make”). -The ordinary BSD make will not suffice!

    - -
    ./autogen.sh
    -./configure --deken-os=FreeBSD MAKE=gmake
    -gmake
    -
    -sudo gmake install
    -
    - -

    OpenBSD

    - -

    (Tested on OpenBSD-7)

    - -

    Install the core build requirements:

    - -
    sudo pkg_add gcc automake autoconf libtool gettext-tools gmake
    -
    - -

    (If there are multiple versions for one or more of the packages, pick your favourite or the newest one).

    - -

    You may install one (or more) libraries (depending on your needs). -It seems that with OpenBSD-7, there are only JACK packages available:

    - -
    sudo pkg_add jack
    -
    - -

    By default, OpenBSD installs all its packages into /usr/local/, -but the compiler does not look for headers resp. libraries in this directory. -We can instruct autotools to automatically consider these directories -by creating a file ‘/usr/local/share/config.site’:

    - -
    cat | sudo tee /usr/local/share/config.site>/dev/null << EOF
    -CPPFLAGS="-I/usr/local/include \$CPPFLAGS"
    -LDFLAGS="-L/usr/local/lib \$LDFLAGS"
    -EOF
    -
    - -

    Also, because OpenBSD allows to coinstall multiple versions of the autotools (with no “default”), -we must specify which version we want to use:

    - -
    export AUTOCONF_VERSION=$(ls -S /usr/local/bin/autoconf-* | sed -e 's|.*-||' | sort -n | tail -1)
    -export AUTOMAKE_VERSION=$(ls -S /usr/local/bin/automake-* | sed -e 's|.*-||' | sort -n | tail -1)
    -
    - -

    Now that your build system is set up, you can follow the general autotools build -steps to build Pd, but make sure to use gmake (aka “GNU make”). -The ordinary BSD make will not suffice!

    - -
    ./autogen.sh
    -./configure --deken-os=OpenBSD --enable-jack MAKE=gmake
    -gmake
    -
    -sudo gmake install
    -
    - -

    NetBSD

    - -

    (Tested on NetBSD-9)

    - -

    Install the core build requirements:

    - -
    sudo pkgin install gcc automake autoconf libtool gettext-tools gmake
    -
    - -

    You may install one (or more) libraries (depending on your needs). -It seems that with NetBSD-9, there are JACK and ALSA packages available, -but the ALSA packages seem to be broken. OSS appears to be built-in.

    - -
    sudo pkgin install jack
    -
    - -

    By default, NetBSD installs all its packages into /usr/pkg/, -but the compiler does not look for headers resp. libraries in this directory. -We can instruct autotools to automatically consider these directories -by creating a file ‘/usr/pkg/share/config.site’:

    - -
    cat | sudo tee /usr/pkg/share/config.site>/dev/null << EOF
    -CPPFLAGS="-I/usr/pkg/include \$CPPFLAGS"
    -LDFLAGS="-L/usr/pkg/lib -Wl,-R/usr/pkg/lib \$LDFLAGS"
    -EOF
    -
    - -

    Now that your build system is set up, you can follow the general autotools build -steps to build Pd, but make sure to use gmake (aka “GNU make”). -The ordinary BSD make will not suffice!

    - -
    ./autogen.sh
    -./configure --deken-os=NetBSD --prefix=/usr/pkg --disable-alsa --enable-jack MAKE=gmake
    -gmake
    -
    -sudo gmake install
    -
    - -
    -

    back to ch6 back to table of contents

    -
    -
    -
    - -
    - - - - - diff --git a/doc/1.manual/x6.htm b/doc/1.manual/x6.htm index b22b49444..8a452f537 100644 --- a/doc/1.manual/x6.htm +++ b/doc/1.manual/x6.htm @@ -9,7 +9,6 @@ -
    @@ -17,7 +16,6 @@
    -

    Pd Manual chapter 6: Building Pd from source.

    @@ -170,7 +168,7 @@

    6.2. Autotools Build (recommended)

    ... Pd-0.47.1.app/Contents/Resources/bin/pd: Mach-O 64-bit executable x86_64
  • -

    6.3 Linux & BSD

    +

    6.3. Building Pd for Linux

    Platform requirements:

    @@ -199,18 +197,130 @@

    6.3 Linux & BSD

    Most distributions come with Tcl/Tk installed, so you should be able to run Pd after it is built.

    Once your build system is set up, you can follow the general autotools build steps to build Pd.

    -

    For more information and how to build on BSD see:

    +

    6.4. Building Pd for BSD

    + +

    Building Pd for the various BSD variants is similar to the Linux way. +The major difference is the used package manager (and the names of the packages), +you’ll want to install.

    + +

    6.4.1. FreeBSD

    + +

    (Tested on FreeBSD-13)

    + +

    Install the core build requirements:

    + +
    sudo pkg install gcc automake autoconf libtool gettext gmake
    +
    + +

    You may install one (or more) libraries (depending on your needs). +It seems that with FreeBSD-13, there are ALSA and JACK packages available:

    + +
    sudo pkg install alsa-lib jackit
    +
    + +

    Once your build system is set up, you can follow the general autotools build +steps to build Pd, but make sure to use gmake (aka “GNU make”). +The ordinary BSD make will not suffice!

    + +
    ./autogen.sh
    +./configure --deken-os=FreeBSD MAKE=gmake
    +gmake
    +
    +sudo gmake install
    +
    + +

    6.4.2. OpenBSD

    + +

    (Tested on OpenBSD-7)

    + +

    Install the core build requirements:

    + +
    sudo pkg_add gcc automake autoconf libtool gettext-tools gmake
    +
    + +

    (If there are multiple versions for one or more of the packages, pick your favourite or the newest one).

    -

    Show more on BSD

    +

    You may install one (or more) libraries (depending on your needs). +It seems that with OpenBSD-7, there are only JACK packages available:

    -

    6.4. macOS

    +
    sudo pkg_add jack
    +
    + +

    By default, OpenBSD installs all its packages into /usr/local/, +but the compiler does not look for headers resp. libraries in this directory. +We can instruct autotools to automatically consider these directories +by creating a file ‘/usr/local/share/config.site’:

    + +
    cat | sudo tee /usr/local/share/config.site>/dev/null << EOF
    +CPPFLAGS="-I/usr/local/include \$CPPFLAGS"
    +LDFLAGS="-L/usr/local/lib \$LDFLAGS"
    +EOF
    +
    + +

    Also, because OpenBSD allows to coinstall multiple versions of the autotools (with no “default”), +we must specify which version we want to use:

    + +
    export AUTOCONF_VERSION=$(ls -S /usr/local/bin/autoconf-* | sed -e 's|.*-||' | sort -n | tail -1)
    +export AUTOMAKE_VERSION=$(ls -S /usr/local/bin/automake-* | sed -e 's|.*-||' | sort -n | tail -1)
    +
    + +

    Now that your build system is set up, you can follow the general autotools build +steps to build Pd, but make sure to use gmake (aka “GNU make”). +The ordinary BSD make will not suffice!

    + +
    ./autogen.sh
    +./configure --deken-os=OpenBSD --enable-jack MAKE=gmake
    +gmake
    +
    +sudo gmake install
    +
    + +

    6.4.3. NetBSD

    + +

    (Tested on NetBSD-9)

    + +

    Install the core build requirements:

    + +
    sudo pkgin install gcc automake autoconf libtool gettext-tools gmake
    +
    + +

    You may install one (or more) libraries (depending on your needs). +It seems that with NetBSD-9, there are JACK and ALSA packages available, +but the ALSA packages seem to be broken. OSS appears to be built-in.

    + +
    sudo pkgin install jack
    +
    + +

    By default, NetBSD installs all its packages into /usr/pkg/, +but the compiler does not look for headers resp. libraries in this directory. +We can instruct autotools to automatically consider these directories +by creating a file ‘/usr/pkg/share/config.site’:

    + +
    cat | sudo tee /usr/pkg/share/config.site>/dev/null << EOF
    +CPPFLAGS="-I/usr/pkg/include \$CPPFLAGS"
    +LDFLAGS="-L/usr/pkg/lib -Wl,-R/usr/pkg/lib \$LDFLAGS"
    +EOF
    +
    + +

    Now that your build system is set up, you can follow the general autotools build +steps to build Pd, but make sure to use gmake (aka “GNU make”). +The ordinary BSD make will not suffice!

    + +
    ./autogen.sh
    +./configure --deken-os=NetBSD --prefix=/usr/pkg --disable-alsa --enable-jack MAKE=gmake
    +gmake
    +
    +sudo gmake install
    +
    + +

    6.5. Building Pd for macOS

    macOS is built on top of a BSD system and the bash commandline can be accessed with the Terminal application in the /Applications/Utility directory.

    The clang compiler and associated tools are provided by Apple. If you are running macOS 10.9+, you do not need to install the full Xcode application and can install the Commandline Tools Package only by running the following:

    xcode-select --install
    -

    If you are running macOS 10.6 - 10.8, you will need to install Xcode from the Mac App Store or downloaded from http://developer.apple.com

    +

    For macOS versions earlier than 10.9, you will need to install Xcode from the Mac App Store or downloaded from http://developer.apple.com

    Tcl/Tk is already included macOS.

    To install the autotools, gettext, and libraries for additional features, you can use one of the open source package managers for macOS:

    @@ -264,11 +374,12 @@

    6.4. macOS

    make app
    -

    This builds Pd-#.##.#.app in the Pd source directory which can be then be double-clicked and/or copied to /Applications. For more info & options regarding the Pd .app bundle, see 6.4.1 macOS resources.

    -

    If you want to have both the Pd application and use Pd from the commandline, add command aliases to the binaries inside the .app to your ~/.bash_profile:

    - -

    pd commandline

    +

    This builds Pd-#.##.#.app in the Pd source directory which can be then be double-clicked +and/or copied to /Applications. For more info & options regarding the Pd .app bundle, +see 6.5.1. macOS app bundle. +

    If you want to have both the Pd application and use Pd from the commandline, +add command aliases to the binaries inside the .app to your ~/.bash_profile:

    WHICHPD="Pd-0.47-1"
     alias pd="/Applications/$WHICHPD.app/Contents/Resources/bin/pd"
    @@ -294,9 +405,318 @@ 

    pd commandline

    Note: Pd installed to your system or run from the build/bin directory will not use the default font and will be missing the various macOS GUI hints (such as retina rendering) which are specified by the Info.plist file inside the .app bundle. Again, it is recommended to build a .app and use the aforementioned aliases to provide the pd command.

    -

    Show more on macOS

    -

    6.5. Windows

    +

    6.5.1. macOS app bundle

    + +

    Directory pure-data/mac contains support files for building a Pure Data macOS application +bundle and supplementary build scripts for compiling Pd on Macintosh systems, as it is built +for the ‘vanilla’ releases on msp.ucsd.edu.

    + +

    In a nutshell, a monolithic macOS “application” is simply a directory structure +treated as a single object by the OS. Inside this bundle are the compiled binaries, resource +files, and contextual information. You can look inside any application by either navigating +inside it from the commandline or by right-clicking on it in Finder and choosing “Show +Package Contents.”

    + +

    The basic layout is:

    + +
    Pd-0.47-1.app/Contents
    +  Info.plist  <- contextual info: version string, get info string, etc
    +  /Frameworks <- embedded Tcl/Tk frameworks (optional)
    +  /MacOS/Pd   <- renamed Wish bundle launcher
    +  /Resources
    +    /bin      <- pd binaries
    +    /doc      <- built in docs & help files
    +    /extra    <- core externals
    +    /font     <- included fonts
    +    /po       <- text translation files
    +    /src      <- Pd source header files
    +    /tcl      <- Pd GUI scripts
    +
    + +

    The Pure Data GUI utilizes the Tk windowing shell aka “Wish” at runtime. +Creating a Pure Data .app involves using a precompiled Wish.app as a wrapper +by copying the Pd binaries and resources inside of it.

    + +

    macOS App Bundle Helpers

    + +
      +
    • osx-app.sh: creates a Pd .app bundle for macOS using a Tk Wish.app wrapper
    • +
    • tcltk-wish.sh: downloads and builds a Tcl/Tk Wish.app for macOS
    • +
    + + +

    These scripts complement the autotools build system described in INSTALL.txt and +are meant to be run after Pd is configured and built. The following usage, for +example, downloads and builds a 32 bit Tk 8.6.6 Wish.app which is used to create +a macOS Pd-0.47-1.app:

    + +
    mac/tcltk-wish.sh --arch i386 8.6.6
    +mac/osx-app.sh --wish Wish-8.6.6.app 0.47-1
    +
    + +

    Both osx-app.sh & tcltck-wish.sh have extensive help output using the –help +commandline option:

    + +
    mac/osx-app.sh --help
    +mac/tcltk-wish.sh --help
    +
    + +

    The osx-app.sh script automates building the Pd .app bundle and is used in the +“make app” makefile target. This default action can be invoked manually after +Pd is built:

    + +
    mac/osx-app.sh 0.47-1
    +
    + +

    This builds a “Pd-0.47-1.app” using the included Wish. If you omit the version +argument, a “Pd.app” is built. The version argument is only used as a suffix to +the file name and contextual version info is pulled from configure script +output.

    + +

    A pre-built universal (32/64 bit) Tk 8.6.10+ Wish with patches applied is +included with the Pd source distribution and works across the majority of macOS +versions up to 10.15. This is the default Wish.app when using osx-app.sh. If you +want to use a different Wish.app (a newer version, a custom build, a system +version), you can specify the donor via commandline options, for example:

    + +
    # build Pd-0.47-1.app using Tk 8.6 installed to the system
    +mac/osx-app.sh --system-tk 8.6 0.47-1
    +
    + +

    If you want Pd to use a newer version of Tcl/Tk, but do not want to install to +it to your system, you can build Tcl/Tk as embedded frameworks inside of the Pd +.app bundle. This has the advantage of portability to other systems.

    + +

    The tcltk-wish.sh script automates building a Wish.app with embedded Tcl/Tk, +either from the release distributions or from a git clone:

    + +
    # build Wish-8.6.6.app with embedded Tcl/Tk 8.6.6
    +mac/tcltk-wish.sh 8.6.6
    +
    +# build Wish-master-git.app from the latest Tcl/Tk master branch from git
    +mac/tcltk-wish.sh --git master-git
    +
    + +

    You can also specify which architectures to build (32 bit, 64 bit, or both):

    + +
    # build 32 bit Wish-8.6.6.app with embedded Tcl/Tk 8.6.6
    +mac/tcltk-wish.sh --arch i386 8.6.6
    +
    +# build universal (32 & 64 bit)
    +mac/tcltk-wish.sh --universal 8.6.6
    +
    + +

    Once your custom Wish.app is built, you can use it as the .app source for +osx-app.sh with the -w/–wish option:

    + +
    # build Pd with a custom Tcl/Tk 8.6.6 Wish
    +mac/osx-app.sh -w Wish-8.6.6.app
    +
    + +

    Downloading and building Tcl/Tk takes some time. If you are doing lots of builds +of Pd and/or are experimenting with different versions of Tcl/Tk, building the +embedded Wish.apps you need with tcltk-wish.sh can save you some time as they +can be reused when (re)making the Pd .app bundle.

    + +

    Usually, it’s best to use stable releases of Tcl/Tk. However, there are times +when building from the current development version is useful. For instance, +if there is a bug in the Tcl/Tk sources and the generated Wish.app crashes on +your system, you can then see if there is a fix for this in the Tcl/Tk +development version on GitHub. If so, then you can test by using the +tcltk-wish.sh –git commandline option. Oftentimes, these kinds of issues will +appear with a newer version of macOS before they have been fixed by the open +source community.

    + +

    Additionally, Pd uses an older version of Tcl/Tk for backwards compatibility on +macOS. As such, small bugfixes from newer versions may need to be backported for +the Pd GUI. Currently, this is handled in the tcltk-wish.sh script by applying +custom patches to either the Tcl and/or Tk source trees. To skip applying +patches, use the tcltk-wish.sh –no-patches commandline option. See +mac/patches/README.txt for more info.

    + +

    6.5.2. Supplementary macOS Build Scripts

    + +
      +
    • build-macosx: builds a 32 bit Pd .app bundle using src/makefile.mac
    • +
    • build-mac64: builds a 64 bit Pd .app bundle using src/makefile.mac
    • +
    + + +

    These scripts automate building Pd with the fallback makefiles in the src +directory.

    + +

    To build a 32 bit Pd, copy this “mac” directory somewhere like ~/mac. Also copy +a source tarball there, such as pd-0.47-1.src.tar.gz. Then cd to ~/mac and type:

    + +
    ./build-macosx 0.47-1
    +
    + +

    If all goes well, you’ll soon see a new app appear named Pd-0.47-1.app.

    + +

    If you want to build a 64 bit Pd, perform the same steps and use the build-mac64 +script:

    + +
    ./build-mac64 0.47-1
    +
    + +

    Note: The “wish-shell.tgz” is an archive of this app I found on my mac: +/System/Library/Frameworks/Tk.framework/Versions/8.4/Resources/Wish Shell.app

    + +

    A smarter version of the scripts ought to be able to find that file +automatically on your system so I wouldn’t have to include it here.

    + +

    6.5.3. Preferences

    + +

    The Pure Data preferences are saved in the macOS “defaults” preference system +using the following domains:

    + +
      +
    • org.puredata.pd: core settings (audio devices, search paths, etc)
    • +
    • org.puredata.pd.pd-gui: GUI settings (recent files, last opened location, etc)
    • +
    + +

    The files themselves live in your user home folder and use the .plist extension:

    + +
    ~/Library/Preferences/org.puredata.pd.plist
    +~/Library/Preferences/org.puredata.pd.pd-gui.plist
    +
    + +

    These files use the Apple Property List XML format and shouldn’t be edited +directly. You can look inside, edit, and/or delete these using the “defaults” +commandline utility in Terminal:

    + +
    # print the contents of the core settings
    +defaults read org.puredata.pd
    +
    +# delete the current GUI settings
    +defaults delete org.puredata.pd.pd-gui
    +
    +# set the startup flag in the core settings
    +defaults write org.puredata.pd -array-add flags '-lib Gem'
    +
    + +

    Some important per-application settings required by the GUI include:

    + +
      +
    • NSRecentDocuments: string array, list of recently opened files
    • +
    • NSQuitAlwaysKeepsWindows: false, disables default 10.7+ window state saving
    • +
    • ApplePressAndHoldEnabled: false, disables character compose popup, + enables key repeat for all keys
    • +
    • NSRequiresAquaSystemAppearance: true, disables dark mode for Pd GUI on 10.14+
    • +
    + +

    These are set in tcl/pd_guiprefs.tcl.

    + +

    6.5.4. Code Signing

    + +

    As of Pd 0.51, the mac/osx-app.sh script performs “ad-hoc code signing” in order +to set entitlements to open un-validated dynamic libraries on macOS 10.15+. This +is required due to the new security settings. Note: ad-hoc signing doesn’t +actually sign the .app bundle with an account certificate, so the unidentified +developer warning is still shown when the downloaded .app is run for the first +time.

    + +

    6.5.5. Privacy Permissions

    + +

    macOS 10.14 introduced system privacy permissions for actions applications can +undertake on a user account, such as accessing files or reading microphone or +camera input. When an application is started for the first time and tries to +access something that is covered by the privacy settings, a permissions prompt +is displayed by the system requesting access. The action is then allowed or +denied and this setting is saved and applied when the application is run again +in the future.

    + +

    As of macOS 10.15, running Pd will request access for the following:

    + +
      +
    • Files and Folders: Documents
    • +
    • Files and Folders: Desktop
    • +
    • Microphone
    • +
    + +

    Additionally, using an external such as Gem for camera input will request +access to the Camera.

    + +

    The current permissions can be changed in Privacy panel in System Preferences. +They can also be reset on the commandline using the “tccutil” command and the +Pd .app bundle id:

    + +
    # reset Pd's Microphone privacy setting
    +tccutil reset Microphone org.puredata.pd.pd-gui
    +
    +# reset all of Pd's privacy settings
    +tccutil reset All org.puredata.pd.pd-gui
    +
    + +

    6.5.6. Font Issues with macOS 10.15+

    + +

    macOS 10.15 furthered changes to font rendering begin with 10.14 with the weird +result that Pd’s default font, DejaVu Sans Mono, renders thin and closer +together than system fonts. This results in objects on the patch canvas that are +longer their inner text and text selection positioning is off.

    + +

    To remedy this for now, Pd 0.51-3 changed Pd’s default font for macOS to Menlo +which is included with the system since 10.6. Menlo is based on Bitstream Vera +Mono and DejaVu Sans Mono, so there should be no issues with patch sizing or +positioning.

    + +

    6.5.7. Dark Mode

    + +

    Pd currently disables Dark Mode support by setting the +NSRequiresAquaSystemAppearance key to true in both the app bundle’s Info.plist +and the GUI defaults preference file. This restriction may be removed in the +future once Dark Mode is handled in the GUI.

    + +

    6.5.8. Debugging Releases

    + +

    On macOS 10.15+, apps must be signed with an entitlement to allow debugging. +This is good for security, but bad if you want to run Pd in lldb to figure out +why your custom external is crashing.

    + +

    To make this work, the entitlement can be added to an existing Pd release .app +bundle using the codesign command in Terminal (steps by Pierre Alexandre +Tremblay):

    + +
      +
    • Extract the current Pd entitlements from the internal pd binary:
    • +
    + + +
        codesign -d /Applications/Pd-0.53-2.app/Contents/Resources/bin/pd \
    +    --entitlements :~/Desktop/pd-entitlements.xml
    +
    + +
      +
    • Edit pd-entitlements.xml on your Desktop, add the following key, and save:
    • +
    + + +
        <key>com.apple.security.get-task-allow</key>
    +    <true/>
    +
    + +
      +
    • Re-sign the pd binary with the updated entitlements:
    • +
    + + +
        codesign -s - --deep --force --options=runtime \
    +    --entitlements ~/Desktop/pd-entitlements.xml \
    +    /Applications/Pd-0.53-2.app/Contents/Resources/bin/pd
    +
    + +

    Now Pd can be run with lldb using:

    + +
    lldb /Applications/Pd-0.53-2.app/Contents/Resources/bin/pd
    +
    + +

    Note: Re-signing using an ad-hoc identifier will work on the development system, + but running the Pd .app bundle on another system will result in security + warnings as the original signature and notarization are invalid.

    + + +

    6.6. Building Pd for Microsoft Windows

    Pd on Windows can be built with either MinGW or Cygwin which provide the core build requirements: a compiler chain & shell environment.

    It is recommended to use the Msys2 distribution which provides both a Unix command shell and MinGW. Download the Msys2 "x86_64" 64 bit installer (or "i686" if you are using 32 bit Windows) from:

    @@ -359,21 +779,188 @@

    6.5. Windows

    make app
    -

    This will create a "pd-VERSION" directory (ie. pd-0.48.1) which can then be used by running pd.exe in the bin directory and placed wherever on your system. For more info & options regarding the Pd app directory, see 6.5.1 Windows resources.

    +

    This will create a "pd-VERSION" directory (ie. pd-0.48.1) which can then be used by running pd.exe in the bin directory and placed wherever on your system. More info & options regarding the Pd app directory is provided next

    +

    To build a .msi Windows installer for Pd, see msw/build-nsi.sh.

    -

    Note: The standard "make install" requires Tcl/Tk and won't work outside your Cygwin/Msys2 environment (if at all).

    -

    Show more on Windows

    +

    Note: The standard "make install" requires Tcl/Tk and won't work +outside your Cygwin/Msys2 environment (if at all).

    -

    6.6. Double precision

    +

    6.6.1. Building a Pd application

    -

    As of Pd 0.54-0 you can compile a "Double precision" Pd (AKA: Pd64). On the autotools do:

    +

    Directory pure-data/msw contains support files for building a Pure Data Windows +application, as it is built for the ‘vanilla’ releases on msp.ucsd.edu.

    -
    ./configure --with-floatsize=64
    +

    As of Pd version 0.50, all releases are compiled using Dan Wilcox’s scripts, +msw-app.sh, and optionally tcltk-dir.sh (which builds a version of TCL/TK in +case you don’t already have one).

    + +

    The Pd sources aren’t completely self-contained: Because of licensing +restrictions, the ASIO support files are not included in the Pd source tree. +The msw-app.sh script presumes you’ve downloaded the ASIO SDK and can point +msw-app.sh to it.

    + +

    It’s also possible to compile Pd using Visual C. This is not managed +automatically but you can look in “how-to-use-msvc.sh” to see how it can be +done. This compiler gives different warnings which are sometimes useful, and +refuses to compile code that has variable declarations in the middle of a +block. It’s a good idea to test pull requests against MSVC if you can. The +file “pdprototype.zip” contains all the garbage that Pd needs in addition to its +own files, including tcl/tk. MSVC compilation works in 32 bits only.

    + +

    The scripts build-msw-32.sh and build-msw-64.sh are the ones used by Miller to +make Pd releases. These files work on Linux only and will not work out of +the box unless your file tree resembles Miller’s in some ways (pd source is in +~/pd for instance) but you can presumably make your own version if you need to.

    -

    6.7. Other flags

    +

    But to first get things working, it’s best to use msw-app.sh and tcltk-dir.sh +directly.

    -

    More flags to be documented here.

    +

    6.6.2. Pd Application Directory

    + +

    Pd for Windows is essentially a stand-alone application directory which contains +the compiled binaries, resource files, and contextual information.

    + +

    The basic layout is:

    + +
    pd
    +  /bin      <- pd binaries
    +  /doc      <- built in docs & help files
    +  /extra    <- core externals
    +  /font     <- included fonts
    +  /lib      <- embedded Tcl/Tk frameworks
    +  /po       <- text translation files
    +  /src      <- Pd source header files
    +  /tcl      <- Pd GUI scripts
    + +

    The Pure Data GUI utilizes the Tk windowing shell aka “wish##.exe” at runtime +which is included with Pd in the /bin directory. A Pure Data app directory +includes both the Pd binaries and resources as well as a precompiled Tk.

    + +

    Windows App Bundle Helpers

    + +
      +
    • msw-app.sh: creates a Pd app directory for Windows using precompiled Tcl/Tk
    • +
    • tcltk-dir.sh: downloads and builds Tcl/Tk for Windows
    • +
    + +

    These scripts complement the autotools build system described in INSTALL.txt and +are meant to be run after Pd is configured and built. The following usage, for +example, downloads and builds 32 bit Tk 8.6.8 which is used to create +a Windows pd-0.48-1 directory:

    + +
    msw/tcltk-dir.sh 8.6.8
    +msw/msw-app.sh --tk tcltk-8.6.8 0.48-1
    +
    + +

    Both msw-app.sh & tcltck-dir.sh have extensive help output using the –help +commandline option:

    + +
    msw/msw-app.sh --help
    +msw/tcltk-dir.sh --help
    +
    + +

    The msw-app.sh script automates building the Pd app directory and is used in the +“make app” makefile target. This default action can be invoked manually after +Pd is built:

    + +
    msw/msw-app.sh 0.47-1
    +
    + +

    This builds a “pd-0.47-1” directory using the default copy of Tk. If you omit +the version argument, a “pd” directory is built. The version argument is only +used as a suffix to the directory name.

    + +

    The “msw/pdprototype.tgz” archive contains the basic requirements for running Pd +on Windows: a precompiled copy of Tcl/Tk and various .dll library files. This is +the default Tcl/Tk when using msw-app.

    + +

    If you want to use a newer Tcl/Tk version or a custom build, you can specify the +version or directory via commandline options, for example:

    + +
    # create pd-0.48-1 directory, download and build Tcl/Tk 8.5.19
    +msw/msw-app.sh --tk 8.5.19 0.48-1
    +
    +# create pd-0.48-1 directory, use Tcl/Tk 8.5.19 built with tcltk-dir.sh
    +msw/msw-app.sh --tk tcltk-8.5.19 0.48-1
    +
    + +

    Note: Depending on which version of Tcl/Tk you want to use, you may need to set +the Tk Wish command when configuring Pd. To build Pd to use Tk 8.6:

    + +
    ./configure --with-wish=wish86.exe
    +make
    +
    + +

    The tcltk-dir.sh script automates building Tcl/Tk for Windows, either from the +release distributions or from a git clone:

    + +
    # build tcltk-8.5.19 directory with Tcl/Tk 8.5.19
    +msw/tcltk-dir.sh 8.5.19
    +
    +# build tcltk-master-git with the latest master branch from git
    +msw/tcltk-dir.sh --git master-git
    +
    + +

    Once your custom Tcl/Tk is built, you can use it as the Tk directory source for +msw-app.sh with the -t/–tk option:

    + +
    # build Pd with a custom Tcl/Tk 8.6.8 directory
    +msw/msw-app.sh -t tcltk-8.6.8
    +
    + +

    Downloading and building Tcl/Tk takes some time. If you are doing lots of builds +of Pd and/or are experimenting with different versions of Tcl/Tk, building the +tcltk directories you need with tcltk-dir.sh can save you some time as they +can be reused when (re)making the Pd app directory.

    + +

    Usually, it’s best to use stable releases of Tcl/Tk. However, there are times +when building from the current development version is useful. For instance, +if there is a bug in the Tcl/Tk sources, you can then see if there is a fix for +this in the Tcl/Tk development version on GitHub. If so, then you can test by +using the tcltk-dir.sh –git commandline option.

    + +

    The tcltk-dir.sh script tries to detect if it’s building in a 64 bit +environment, ie. MinGW 64. If this detection fails, you can force 64 bit with +the –64bit option:

    + +
    # force 64 bit Tcl/Tk 8.6.8 build
    +tcltk-dir.sh --64bit 8.6.8
    +
    + +

    6.6.3. pdfontloader

    + +

    Tk cannot load local font files by default on Windows. Pd accomplishes this +through a tiny, custom Tcl extension, pdfontloader.dll. On initialization, the +Pd GUI tries to load pdfontloader and, if successful, tries to load the included +Pd font.

    + +

    Currently, pdfontloader.dll is pre-built and included within the pdprototype.tgz +tarball. To build pdfontloader, see https://github.com/pure-data/pdfontloader +source.

    + +

    6.6.4. ASIO Support

    + +

    In order to build ASIO support into Pd on Windows, you need to download the +ASIO sources from Steinberg directly. Their license does not let us +redistribute their source files.

    + +

    Install the ASIO SDK by doing the following:

    + + + +

    Now build Pd and it should include ASIO as one of the audio backends.

    + + +

    6.7. Building Pd with Double precision

    + +

    As of Pd 0.54-0 you can compile a "Double precision" Pd (AKA: Pd64). On the autotools do:

    + +
    ./configure --with-floatsize=64

    6.8. Cross-compilation for Windows on Linux

    @@ -445,9 +1032,9 @@

    6.9. Makefile Build

    On macOS, you can build a clickable Pd .app bundle using the supplemental build scripts in the mac directory. See 6.4.1 macOS resources. for more info.

    -

    6.10. Reporting Bugs

    +

    6.10. Troubleshooting

    -

    Let us know if you run into any bugs or issues with building or installing Pd:

    +

    Let us know if you run any issues with building or installing Pd:

  • The last tutorial is for the Data Structures facilities, also described in this manual in - section 2.10 Data Structures. + section 2.10 Data Structures.
     Pd/
     ├── doc/
    @@ -119,7 +121,11 @@ 

    1.1. Guide to Pd's documentation

    -

    1.2. The Help menu

    +
    + +
    + +

    1.2. The Help menu

    This section describes the Help menu of the Pd application, which offers shortcuts to the documentation and other reasources. The "Pd Help" entry opens this HTML manual. @@ -154,10 +160,11 @@

    1.2. The Help menu

    For last, the Help menu also helps you find and download eternals with the "Find externals" entry, which opens a Pd extension manager described in - 4.2.2 How to Download Externals from Pd. - + 4.2.2 How to Download Externals from Pd. -

    1.3. Other resources

    +
    + +

    1.3. Other resources

    The Pd source code is found on github, see Pd GitHub project page. As mentioned, @@ -185,6 +192,9 @@

    1.3. Other resources

    or multimedia applications such as games. Get it also via "Find externals" or from https://github.com/cuinjune/Ofelia. + +
    +



    next chapter
    diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 6b22aee7b..9f046edda 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -31,7 +31,9 @@

    Pd Manual chapter 2: Theory of operation

    guides (and to more theoretical information about computer music) can be found in the previous chapter. -

    2.1. Overview

    +
    + +

    2.1. Overview

    Pd (Pure Data) is a real-time graphical programming environment designed for audio processing that can be expanded to multimedia processing and more. Pd resembles the @@ -40,7 +42,7 @@

    2.1. Overview

    in its origin, Pd was designed to offer a unique experimental feature not found in MAX, allowing users to define and access data structures in innovative ways, with the ability to attach shapes and colors to the data in order to visualize it and/or edit it graphically -(see section 2.10 Data Structures for details). +(see section 2.10 Data Structures for details).

    Despite its lightweight and portable nature, Pd offers a wide range of external packages that enhance its capabilities, primarily focusing on audio and control @@ -52,7 +54,7 @@

    2.1. Overview

    or multimedia applications such as games. For details on installing and managing packages, refer to the Externals chapter. -

    2.1.1. The main window, canvases, and printout

    +

      2.1.1. The main window, canvases, and printout

    When you start Pd you'll see a main "Pd" window. When you open a Pd document file you'll see a separate window that corresponds to it, which is known in Pd as a "canvas", @@ -72,13 +74,13 @@

    2.1.1. The main window, canvases, and printout

    computing audio samples in realtime for all open patches (whether they are visible or not). Turning off "DSP" halts the computation and releases any audio devices that Pure Data is utilizing. You can configure audio devices as described in -3.3.1. Audio Settings. +3.3.1. Audio Settings.

    The Media menu offers shortcuts to toggle DSP on and off. Use Ctrl+/ (Control key on PCs or Command key on Apple computers plus the '/' key) to turn audio processing on, and Ctrl+. to turn it off. You can check input RMS audio level if you select "Test Audio and MIDI" and make other Audio and MIDI tests (read more -about this in 3.3. Testing and configuring Audio and MIDI). +about this in 3.3. Testing and configuring Audio and MIDI).

    media menu @@ -144,7 +146,7 @@

    2.1.1. The main window, canvases, and printout

    outputs, with the inputs on top and the outputs on the bottom. When clicking and dragging on the number box, the values are printed in the main "Pd" window. -

    2.1.2. Object boxes

    +

      2.1.2. Object boxes

    The object box loads an instance of a class in your patch. You can create an object box from the Put menu. When you insert a new object box, it is empty @@ -220,7 +222,7 @@

    2.1.2. Object boxes

    insert calculations between the audio processing, potentially altering audio computation parameters like the frequency of an oscillator in this example. -

    2.1.3. Message and GUI boxes

    +

      2.1.3. Message and GUI boxes

    The shape of a box tells you how its text is interpreted and how the box functions. Object boxes (as in the previous example) are rectangular and use @@ -252,10 +254,10 @@

    2.1.3. Message and GUI boxes

    a number box's content (the text) changes to reflect the current value held by the box. You can also use a number box as a control by clicking and dragging up and down, or by typing values in it and hitting enter (more details on how this and any other GUIs -work is available in the help files; see Context menu for -'Properties', 'Open' and 'Help' to find out how to look this up). +work is available in the help files; see Popup menu for 'Properties', +'Open' and 'Help' to find out how to look this up). -

    2.1.4. Patches and files

    +

      2.1.4. Patches and files

    As mentioned before, You can create or open a Pd file from the File menu, as well as close and save them. @@ -263,7 +265,7 @@

    2.1.4. Patches and files

    When you save a patch to a file, Pd doesn't save the entire state of all the objects in the patch, but only what you see: the objects' creation arguments and their interconnections. Nonetheless, the [savestate] object offers a mechanism -to save the state of abstractions (see Subpatches). Also, +to save the state of abstractions (see Subpatches). Also, certain data-storage objects have functions for reading and writing other files to save and restore their internal state (one example is the [text] object). When loading a patch, the [loadbang] object can be used to initialize the parameters of your patch, @@ -273,12 +275,14 @@

    2.1.4. Patches and files

    search for them along the search paths, but when Pd writes files they go to the directory where the patch was found. -

    2.2. Editing Pd patches

    +
    + +

    2.2. Editing Pd patches

    Normally, you'll use Pd in run mode, which is also referred to as "performance mode". In order to edit a patch, you need to go into edit mode. -

    2.2.1. Edit and Run mode

    +

      2.2.1. Edit and Run mode

    When you open a Pd file, it is in run mode. In run mode, the cursor is an arrow that points up and is slightly tilted to the left, but it points straight up when you are @@ -317,7 +321,7 @@

    2.2.1. Edit and Run mode

    and recreate changes you've done in your patch while in edit mode. Note that you can also "Undo" and "Redo" while in run mode. -

    2.2.2. Creating boxes

    +

      2.2.2. Creating boxes

    Pd patches can have four types of boxes: object, message, GUI and comment (which counts as a "box type" even thought it's not a proper @@ -357,7 +361,7 @@

    2.2.2. Creating boxes

    between them will be duplicated as well. To deselect more than one box, you can also either click on an empty area of your patch or press Esc. -

    2.2.3. Selecting items and moving them or "tidying them up"

    +

      2.2.3. Selecting items and moving them or "tidying them up"

    In Edit mode you can select or deselect one or more boxes. Note that the outline of all boxes and containing text turn light blue (instead of the usual black) to @@ -392,7 +396,7 @@

    2.2.3. Selecting items and moving them or "tidying them up"

    -

    2.2.4. Delete, cut, copy and paste boxes

    +

      2.2.4. Delete, cut, copy and paste boxes

    If you select any item you can press Backspace or Delete key to delete it. Connections of a deleted box are also deleted. A multiple selection @@ -418,7 +422,7 @@

    2.2.4. Delete, cut, copy and paste boxes

    it is not possible to copy from a patch and paste into a Pd subprocess instantiated via a [pd~] object. -

    2.2.5. Changing the text

    +

      2.2.5. Changing the text

    Clicking on an unselected object, message or comment box and releasing the click makes the text active, i.e., ready to be text edited (if you select using @@ -446,7 +450,7 @@

    2.2.5. Changing the text

    system, enabling you to copy and paste text between Pd and other software applications. -

    2.2.6. Connecting and disconnecting boxes

    +

      2.2.6. Connecting and disconnecting boxes

    This subsection only describes the simplest way to connect two boxes. For more advanced and convenient techniques and shortcuts, refer to the next section. @@ -473,7 +477,7 @@

    2.2.6. Connecting and disconnecting boxes

    disconnecting boxes

    -

    2.2.7. Context menu for 'Properties', 'Open' and 'Help'

    +

      2.2.7. Popup menu for 'Properties', 'Open' and 'Help'

    All the "clicking" mentioned above is done with the left mouse button. The right button, instead, opens a context menu offering "Properties", @@ -488,18 +492,20 @@

    2.2.7. Context menu for 'Properties', 'Open' and 'Help' The "Open" menu item is only enabled if you right-click on a subpatch -(see Subpatches) and prompts Pd to open it. +(see Subpatches) and prompts Pd to open it. Ordinary subpatches may also be opened by simply clicking on them, but for "graph-on-parent" subpatches, this is the only method available.

    The "Properties" dialog allows you to change certain settings of GUI boxes or of the patch itself (when clicking outside any box). -

    2.3. Advanced patch editing

    +
    + +

    2.3. Advanced patch editing

    This section describes advanced techniques and shortcuts for editing patches. -

    2.3.1. Tab navigation

    +

      2.3.1. Tab navigation

    When a single box is selected, pressing Tab allows you to navigate and change the selection to other boxes in the sequence determined @@ -535,10 +541,10 @@

    2.3.1. Tab navigation

    releasing the mouse, you can use Tab to navigate to the next inlet, or Shift+Tab to navigate to the previous one. -

    2.3.2. Autopatching

    +

      2.3.2. Autopatching

    By default, Pd has an 'autopatching' mode set to on. You can disable it -via startup flags (see '-autopatch' flag 3.4.1. +via startup flags (see '-autopatch' flag 3.4.1. Startup flags). This works with the shortcuts from the Put menu for inserting boxes. If you have a selected box and use a shortcut to create another one (such as Ctrl+1 to create an @@ -557,7 +563,7 @@

    2.3.2. Autopatching

    autopatch objects

    -

    You can also autopatch into a newly created subpatch (see +

    You can also autopatch into a newly created subpatch (see Subpatches). By creating an object box and typing [pd], as soon as you deselect the object, a subpatch is created with an inlet - either a control inlet ([inlet]) if the object above is a control object, or a signal inlet @@ -567,7 +573,7 @@

    2.3.2. Autopatching

    autopatching subpatches

    -

    2.3.3. Duplicate connections

    +

      2.3.3. Duplicate connections

    If you select a connection between two boxes that have more than one outlet and inlet for connections, you can use Ctrl+D to @@ -577,7 +583,7 @@

    2.3.3. Duplicate connections

    duplicate connections

    -

    2.3.4. Managing connections with the Shift key

    +

      2.3.4. Managing connections with the Shift key

    You can swap connections if you selected a connection and use Shift+Click on another one. @@ -647,11 +653,11 @@

    2.3.4. Managing connections with the Shift key

    -

    2.3.5. (Dis)Connect selection

    +

      2.3.5. (Dis)Connect selection

    This is a menu entry in the Edit menu, also available via the shortcut -Ctrl+K. It allows you to connect and disconnect selected boxes in -different ways. +Ctrl+K. It allows you to connect and disconnect selected +boxes in different ways.

    ctrl+k @@ -692,13 +698,13 @@

    2.3.5. (Dis)Connect selection

    exclude box

    -

    2.3.6. Triggerize

    +

      2.3.6. Triggerize

    The 'Triggerize' entry in the Edit menu with the Ctrl+T shortcut was designed to insert a [trigger] object (in its abbreviated form [t]). When you select a single box that is connected to many inlets of a single or multiple boxes use "Triggerize" to insert this object, which is briefly described -in Hot and cold inlets and right to left outlet order. +in Hot and cold inlets and right to left outlet order.

    The [trigger] object is widely used in Pd to control the order of execution from right to left. 'Triggerize' then creates the [trigger] object taking into @@ -721,7 +727,7 @@

    2.3.6. Triggerize

    While the connections of a [trigger] object can be resorted as -explained above, Ctrl+T also +explained above, Ctrl+T also allows you to easily manage its outlets when using it on the selected object. The result will differ depending on the existing connections and outlets. If each outlet has a single connection, it will insert an outlet on the left. @@ -747,7 +753,7 @@

    2.3.6. Triggerize

    -

    2.3.7. Paste replace

    +

      2.3.7. Paste replace

    The 'Paste Replace' entry in the Edit menu doesn't have a shortcut and performs a special paste operation where it replaces a selection @@ -784,19 +790,21 @@

    2.3.7. Paste replace

    paste replace similar type

    -

    2.4. Messages

    +
    + +

    2.4. Messages

    In Pd, boxes intercommunicate by sending messages and/or audio signals. Pd messages are sporadic, like MIDI messages or Music N "Note cards". -

    2.4.1. Anatomy of a message

    +

      2.4.1. Anatomy of a message

    Messages contain a selector followed by any number of arguments. The selector is a symbol, which appears in the patch as a non-numeric string with no white space, semicolons, or commas. The arguments may be symbols or numbers.

    Pd is usually compiled for single precision, but you can compile it for -double precision as well (see Double precision). +double precision as well (see 6.7. Double precision). If compiled for single precision, numbers are kept in 32-bit floating point, while if compiled for double precision (AKA: "Pd64") you have values in 64-bit floating point precision. The integer values you can represent in @@ -857,7 +865,7 @@

    2.4.1. Anatomy of a message

    the "float" selector automatically, and a message with a number followed by other arguments is given the selector "list". -

    2.4.2. Depth first message passing

    +

      2.4.2. Depth first message passing

    Whenever a message is initiated in Pd, the receiver may then send out further messages in turn, and the receivers of those messages can send yet @@ -890,7 +898,7 @@

    2.4.2. Depth first message passing

    future (even if the time delay is 0) and is then "finished"; Pd's internal scheduler will wake the delay back up later. -

    2.4.3. Hot and cold inlets and right to left outlet order

    +

      2.4.3. Hot and cold inlets and right to left outlet order

    With few exceptions (notably [timer]), objects treat their leftmost inlet as "hot" in the sense that messages to left inlets can result in output @@ -947,7 +955,7 @@

    2.4.3. Hot and cold inlets and right to left outlet order are merged, the last value to be received is the value that is used for the next computation. -

    2.4.4. Message boxes

    +

      2.4.4. Message boxes

    Message boxes are text boxes in which you type a message. When the message box is activated, either by clicking on it or by sending something to its inlet, @@ -1003,14 +1011,16 @@

    2.4.4. Message boxes

    on the incoming message; if they are symbols, you may even use them to specify variable message selectors or destinations. -

    2.5. Audio signals

    +
    + +

    2.5. Audio signals

    Using Pd, you can build audio patches which can synthesize musical sounds, analyze incoming sounds, process incoming sounds to produce transformed audio outputs, or integrate audio processing with other media. This section describes how Pd treats audio signals. -

    2.5.1. Sample rate and format

    +

      2.5.1. Sample rate and format

    Pd's audio signals are internally kept as 32-bit floating point numbers, so you have all the dynamic range you could want. However, depending on your @@ -1023,7 +1033,7 @@

    2.5.1. Sample rate and format

    or in 32-bit floating point, in 'wave', 'aiff', 'caf', and 'next' formats via the [soundfiler], [readsf~], and [writesf~] objects. -

    2.5.2. Tilde objects and audio connections

    +

      2.5.2. Tilde objects and audio connections

    Audio computations in Pd are carried out by "tilde objects" such as [osc~], whose names conventionally end with a tilde character (which resembles a sinusoid, @@ -1048,13 +1058,13 @@

    2.5.2. Tilde objects and audio connections

    must be non-cyclic. If there are loops at "sort time", you will see an error message on the main Pd window, saying "DSP loop detected (some tilde objects weren't scheduled)". You can build algorithms with feedback using -nonlocal signal connections as explained in the 2.5.5. +nonlocal signal connections as explained in the 2.5.5. subsection.

    Your subpatches can have audio inlets and outlets via the [inlet~] and [outlet~] -objects (see Subpatches). +objects (see Subpatches). -

    2.5.3. Converting audio to and from messages

    +

      2.5.3. Converting audio to and from messages

    If you want to use a control value as a signal, you can use the [sig~] object to convert it. This is usually rare since objects mostly promote @@ -1071,7 +1081,7 @@

    2.5.3. Converting audio to and from messages

    objects, the simplest of which is [env~], the envelope follower, that outputs control rate floats. -

    2.5.4. Switching and blocking

    +

      2.5.4. Switching and blocking

    You can use the [switch~] or [block~] objects to turn portions of your audio computation on and off and to control the block size of computation. There may @@ -1104,7 +1114,7 @@

    2.5.4. Switching and blocking

    costs a fairly small overhead. A cheaper way to get outputs is to use [throw~] inside the switched module and [catch~] outside it. -

    2.5.5. Nonlocal signal connections

    +

      2.5.5. Nonlocal signal connections

    You may wish to pass signals non-locally, either to get from one window to another, or to feed a signal back to your algorithm's input. This can be done @@ -1129,7 +1139,7 @@

    2.5.5. Nonlocal signal connections

    (1.45 msec by default). The [delwrite~] and [delread~]/[delread4~] have this same restriction, but here, the 1.45 msec are minimum attainable delay. -

    2.5.6. Multichannel signals

    +

      2.5.6. Multichannel signals

    As of Pd version 0.54-0, signals may be multichannel. Every signal has a length equal to the window's block size (64 by default), and also has a @@ -1157,13 +1167,15 @@

    2.5.6. Multichannel signals

    can be used to distribute multichannel signals among the individual cloned patches. -

    2.6. Scheduling

    +
    + +

    2.6. Scheduling

    Pd uses 64-bit floating point numbers to represent time, providing sample accuracy and essentially never overflowing. Time appears to the user in milliseconds. -

    2.6.1. Audio and messages

    +

      2.6.1. Audio and messages

    Audio and message processing are interleaved in Pd. Audio processing is scheduled every block (64 samples by default) at Pd's sample rate, which @@ -1187,13 +1199,13 @@

    2.6.1. Audio and messages

    of zero. This delayed cascade happens after the present cascade has finished, but at the same logical time. -

    2.6.2. Computation load

    +

      2.6.2. Computation load

    The Pd scheduler maintains a (user-specified) lead on its computations; that is, it tries to keep ahead of real time by a small amount in order to be able to absorb unpredictable, momentary increases in computation time. This is specified using the "-audiobuf" and "-blocksize" command line flags -(see 3.4.1. Startup flags). +(see 3.4.1. Startup flags).

    If Pd gets late with respect to real time, gaps (either occasional or frequent) will appear in both the input and output audio streams. On the @@ -1209,7 +1221,7 @@

    2.6.2. Computation load

    but not so for minimized windows as of version 0.32 - you should really close them when you aren't using them. -

    2.6.3. Determinism

    +

      2.6.3. Determinism

    All message cascades that are scheduled (via [delay] and its relatives) to happen before a given audio tick will happen as scheduled, regardless of whether @@ -1230,12 +1242,14 @@

    2.6.3. Determinism

    If two message cascades are scheduled for the same logical time, they are carried out in the order they were scheduled. -

    2.7. Semantics

    +
    + +

    2.7. Semantics

    This section describes how objects in Pd are created, how they store data and how object and other boxes pass messages among themselves. -

    2.7.1. Creation of objects

    +

      2.7.1. Creation of objects

    The text in a box has a different function depending on whether it is a message, atom (number/symbol), or object box. In message boxes, the text specifies the @@ -1256,7 +1270,7 @@

    2.7.1. Creation of objects

    the class of object to create and the creation arguments "64" and "250" become the initial velocity and duration. -

    2.7.2. Persistence of data

    +

      2.7.2. Persistence of data

    Among the design principles of Pd is that patches should be printable, in the sense that the appearance of a patch should fully determine its functionality. @@ -1278,7 +1292,7 @@

    2.7.2. Persistence of data

    if you are going to override them later; this is confusing to anyone who tries to understand the patch. -

    2.7.3. Message passing

    +

      2.7.3. Message passing

    Messages in Pd consist of a selector (a symbol) and zero or more arguments (which may be symbols or numbers). To pass a message to an object, Pd first @@ -1304,7 +1318,7 @@

    2.7.3. Message passing

    to messages it is sent, and may take "float" and "bang" messages, or others in addition or instead of them. -

    2.7.4. Inlets and lists

    +

      2.7.4. Inlets and lists

    The leftmost connection point at the top of most objects represents the object itself. Any other dark rectangle is a separate object called an "inlet", @@ -1318,7 +1332,7 @@

    2.7.4. Inlets and lists

    their inlets, except for the first argument, which is passed to the main object as a "float" or "symbol" message. -

    2.7.5. Dollar signs

    +

      2.7.5. Dollar signs

    In message or object boxes, message arguments starting with a dollar sign and a number (like "$1" or "$3-bazoo") are variables which are substituted @@ -1353,7 +1367,9 @@

    2.7.5. Dollar signs

    "a1 cat" and "a1 dog". Inside the four "a2" copies, $1 will evaluate to "dog-food", "cat-food", "dog-ears", and "cat-ears". -

    2.8. Subpatches

    +
    + +

    2.8. Subpatches

    Pd offers two mechanisms for making subpatches, called "one-off subpatches" and "abstractions". In either case the subpatch appears as an object box @@ -1379,7 +1395,7 @@

    2.8. Subpatches

    appear on the invoking box in the same left-to-right order as they appear in the subpatch. -

    2.8.1. Abstractions

    +

      2.8.1. Abstractions

    To make an abstraction, save a patch with a name such as "abstraction1.pd" and then invoke it in an object box as [abstraction1]: @@ -1422,7 +1438,7 @@

    2.8.1. Abstractions

    of an abstraction. You can use it to make voice banks for polyphonic synthesis, for example. -

    2.8.2. Graph-on-parent subpatches

    +

      2.8.2. Graph-on-parent subpatches

    If you open the "properties" dialog for a subpatch or an abstraction, you can check the "graph on parent" box to have the controls of the subpatch/abstraction @@ -1448,7 +1464,9 @@

    2.8.2. Graph-on-parent subpatches

    instead; so the number box in the sub-patch in the example above is the same one as you see in the box. Only controls are made visible in this way. -

    2.9. Numeric arrays

    +
    + +

    2.9. Numeric arrays

    Linear arrays of numbers recur throughout the computer musician's bag of tricks, beginning with the wavetable oscillator. The wavetable oscillator later @@ -1544,7 +1562,9 @@

    2.9. Numeric arrays

    Many other operations are defined for arrays; see the related patches in the tutorial (starting at 2.control/15.array.pd) for more possibilities. -

    2.10. Data structures

    +
    + +

    2.10. Data structures

    (Note: this section is an adapted and updated version of an article submitted to ICMC 2002.) @@ -1629,7 +1649,7 @@

    2.10. Data structures

    structure, so that color will vary according to its "color" slot. The second [plot] plots the "amp" field and the color is given as 0, which is black. -

    2.10.1. Traversal

    +

      2.10.1. Traversal

    Pd objects are provided to traverse lists and arrays, and to address elements of data structures for getting and setting. Pd has no built-in sequencer, nor @@ -1704,7 +1724,7 @@

    2.10.1. Traversal

    lists of objects (having different templates). In this way, an arbitrarily rich personal "score language" can be developed and sequenced. -

    2.10.2. Accessing and changing data

    +

      2.10.2. Accessing and changing data

    In general, accessing or changing data is done via "pointers" to "scalars". Numbers and symbols within scalars are accessed using the [get] object and @@ -1742,7 +1762,7 @@

    2.10.2. Accessing and changing data

    it's not clear how to protect against stale pointers efficiently, except by voiding the entire collection of pointers into a list.) -

    2.10.3. Editing

    +

      2.10.3. Editing

    The graphical score shown above can be edited by dragging breakpoints, or by adding and deleting them, using mouse clicks. Also, entire objects or @@ -1783,7 +1803,7 @@

    2.10.3. Editing

    happen is that data may lose their drawing instructions, in which case Pd supplies a simple default shape. -

    2.10.4. Limitations

    +

      2.10.4. Limitations

    When examples get more complicated and/or dense than the one shown here, it becomes difficult to see and select specific features of a data collection; @@ -1805,7 +1825,9 @@

    2.10.4. Limitations

    grows there will surely be occasions for many further extensions of the data handling primitives and the graphical presentation and editing functions. -

    2.11. Differences from Max

    +
    + +

    2.11. Differences from MAX

    Pd wasn't intended to be a Max clone, but there were many similarities between Pd and Max/MSP in the of its origin and some effort had been undertaken (but more @@ -1830,7 +1852,7 @@

    2.11. Differences from Max

    are replaced by the instantiation arguments. In Pd, these arguments appear as "$1", etc, and are translated at a slightly later stage of the instantiation process so that you still see them as "$" variables in the instantiation. -see Abstractions . +see Abstractions .

    In Pd, to make current all instantiations of the abstraction, either delete and recreate them or close and open the patch; this is done automatically in Max. @@ -1875,6 +1897,8 @@

    2.11. Differences from Max

    the mouse as you can with arrays, but at least it's possible to make a patch that copies a "table" into a "buffer~". +
    +



    next chapter
    diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index ef074292a..fb0c88298 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -30,7 +30,9 @@

    Pd Manual chapter 3: Installing and configuring Pd

    audio and MIDI input and output, and finally get Pd to meet its real-time obligations reliably. -

    3.1. Installing Pd

    +
    + +

    3.1. Installing Pd

    Most commonly, you want to install Pd as a 64 bit application, which is available for download, but a 32 bit versions is also available for older OSes. The download @@ -49,7 +51,7 @@

    3.1. Installing Pd

    news about configuration problems and solutions. -

    3.1.1. macOS

    +

      3.1.1. macOS

    Pd supports macOS from 10.7 and up, but the main download binary for more modern OS versions supports 10.10 or newer. This download in the form of .dmg file; just @@ -60,7 +62,7 @@

    3.1.1. macOS

    This is normal although some system administrators will prevent you from doing this (in which case you can't run Pd on that machine). -

    3.1.2 Microsoft Windows

    +

      3.1.2 Microsoft Windows

    For Windows, you can download a .zip package for manual install or an executable installer (a ".exe" file). Run the installer if you are not sure how to install @@ -79,15 +81,16 @@

    3.1.2 Microsoft Windows

    time you run Pd the "Windows Firewall" will ask your permission to allow this intercommunication. -

    3.1.3. Linux

    +

      3.1.3. Linux

    Pd is available via the package systems for some Linux distributions, but not always in the most recent version possible. In case you don't find it or want the very latest recent version, you need to compile Pd, which is -described in Chapter 6: Building Pd from source as -mentioned earlier. +described in 6.3. Building Pd for Linux. + +


    -

    3.2. Running Pd via the command line

    +

    3.2. Running Pd via the command line

    Besides opening Pd by clicking on a user friendly icon as usual, you may open and run Pd as a "command line" program from your "terminal emulator", @@ -108,10 +111,12 @@

    3.2. Running Pd via the command line

    "C:\program files\pd\bin\pd") so your command interpreter can find Pd. -

    The 3.4.1. Startup flags subsection describes +

    The 3.4.1. Startup flags subsection describes all options. -

    3.3. Testing and configuring Audio and MIDI

    +
    + +

    3.3. Testing and configuring Audio and MIDI

    To test audio and MIDI, start Pd and select "Test Audio and MIDI..." from the Media menu. You should see a window like this: @@ -210,7 +215,7 @@

    3.3. Testing and configuring Audio and MIDI

    -

    3.3.2. MIDI Settings

    +

      3.3.2. MIDI Settings

    There's also a MIDI settings dialog for you to configure one or more MIDI input and output devices. If more than one device is chosen for either input and @@ -365,8 +370,9 @@

    3.3.2. MIDI Settings

    System exclusive MIDI message input and output are theoretically supported but does not work uniformly across all operating systems.. +


    -

    3.4. Preferences and startup options

    +

    3.4. Preferences and startup options

    In addition to the Audio and MIDI settings shown above, you can customize Pd to instruct it where to find files, what font size to use, and much more. @@ -443,7 +449,7 @@

    3.4. Preferences and startup options

    Startup flags. Most of the configurations in Pd may be changed using the various dialogs you can open from Pd's menus. For instance, you can use the Font entry from the Edit menu to set what font size size Pd will use -for its main window (this is described in 2.1.1., +for its main window (this is described in 2.1.1., by the way). Nevertheless, this and every other configuration in Pd (from Audio and MIDI settings and whatnot) can also be configurable via startup flags. Other than that, some configurations are too cranky to put in a GUI @@ -473,7 +479,7 @@

    3.4. Preferences and startup options

    as arguments. Command line settings, if given, override the corresponding settings that were saved from Pd. -

    3.4.1. Startup flags

    +

      3.4.1. Startup flags

    -

    Sample rate

    +

    Sample rate

    The sample rate controls Pd's logical sample rate which need not be that of the audio input and output devices. If Pd's sample rate is wrong, time will @@ -624,7 +630,7 @@

    Sample rate

    to re-sync them, which will sound bad. You can disable input or output if this is a problem. -

    Audio buffer size and block size

    +

    Audio buffer size and block size

    You can specify an audio buffer size in milliseconds, typically between 10 and 300, depending on how responsive your OS and drivers are. If this is set too @@ -635,6 +641,7 @@

    Audio buffer size and block size

    You can also specify the audio block size in sample frames. This is 64 by default (except for MMIO for which it's 256), and may be 64, 128, or 256. +




    diff --git a/doc/1.manual/x4.htm b/doc/1.manual/x4.htm index b60441019..c68e0024c 100644 --- a/doc/1.manual/x4.htm +++ b/doc/1.manual/x4.htm @@ -23,10 +23,7 @@

    Pd Manual chapter 4: Externals



    - -

    4. Externals

    - -

    This section explains what are external objects and libraries. It also +

    This chapter explains what are external objects and libraries. It also describes everything on how to install and load them in Pure Data.

    You can write your own external objects that you and others can use in @@ -40,9 +37,14 @@

    4. Externals

    Katja Vetter) at http://github.com/pure-data/pd-lib-builder -

    4.1 External Objects & Libraries

    +
    + +

    4.1 External Objects & Libraries

    -

    4.1.1 What are: Vanilla Objects, Internals & Externals?

    +

    We start this section by defining what are internals and externals. The +Pd Vanilla distribution actually comes with both. + +

      4.1.1 Vanilla Objects, Internals & Externals

    Internal objects come as part of the Pd binary, whereas external objects are separate from it. The main Pd distribution (a.k.a. “Pd Vanilla”) also comes @@ -66,18 +68,17 @@

    4.1.1 What are: Vanilla Objects, Internals & Externals? browser window +

    +browser window
    - -

    4.1.2. What are the Types of External Objects?

    +

      4.1.2. Types of external objects

    An object in Pd can be either a patch - meaning a Pd file (a.k.a abstraction) - or a compiled binary (note that a binary can contain only one or several external objects, as discussed further on). - -

    4.1.2.1. Compiled objects:

    +

        4.1.2.1. Compiled objects:

    These are Pd objects compiled to binaries from programming code (like in C or C++). They have to be compiled for your operating system, which @@ -313,8 +314,7 @@

    4.1.2.1. Compiled objects:

    - -

    4.1.2.2. Abstractions:

    +

        4.1.2.2. Abstractions:

    You can have a Pd patch behave like an object by loading it into other patches - these are usually called “abstractions”. Note that some of the @@ -322,10 +322,7 @@

    4.1.2.2. Abstractions:

    other Pd patch, an abstraction may contain any kind of objects (internals, compiled externals and even other abstractions). - - - -

    4.1.3. What are External Libraries?

    +

      4.1.3. External libraries

    In practical terms, an external library is a collection of external objects of any kind (abstractions or compiled objects). But when it comes to compiled objects, a library can provide several objects as a single binary pack or as a set of separate binaries (where each object has its own binary). @@ -340,9 +337,7 @@

    4.1.3. What are External Libraries?

    loaded depending if they’re a single binary pack or a set of separate binaries (as explained in the next subsections). - - -

    4.1.4. What are the types of External Libraries?

    +

      4.1.4. Types of external libraries

    Libraries can come in all sorts of ways; as only a collection of abstractions (like "list-abs"), only compiled objects, or both. It can even mix @@ -353,9 +348,11 @@

    4.1.4. What are the types of External Libraries?

    which provides most of its objects as a set of separate binaries, but also includes a small collection of 12 objects as a single binary pack plus a few abstractions. -

    Wrapping up Part 1)

    - -

    4.2.2. How to Download Externals from Pd

    +

      4.2.2. How to Download Externals from Pd

    Since version 0.47-0, Pd Vanilla has its own external manager! This is a built in .tcl plug-in named "deken" (check https://github.com/pure-data/deken @@ -474,8 +469,10 @@

    4.2.2. How to Download Externals from Pd

    "~/Documents/Pd/externals".

    +
    -

    4.3. Loading Externals

    + +

    4.3. Loading Externals

    The current best practice is to use the declare object to search for, load and manage externals, but there are alternatives. @@ -489,7 +486,7 @@

    4.3. Loading Externals

    done with declare or manually via Preferences => Path, but yet another option here is to use slash declarations as we'll see later. -

    4.3.1. Using the [declare] object:

    +

      4.3.1. Using the [declare] object:

    The declare object can be used to add search paths or load libraries. When adding a path, it behaves quite similarly to adding search paths to the @@ -501,7 +498,7 @@

    4.3.1. Using the [declare] object:

    sticks with it. This means that if you use [declare] to load a library, it will also be loaded if you create a new patch without any [declare] object. -

    4.3.1.1. [declare -path]:

    +

        4.3.1.1. [declare -path]:

    Let's take for an example the ELSE library. This library contains separate binaries and abstractions, so Pd only needs to know its location @@ -523,8 +520,7 @@

    4.3.1.1. [declare -path]:

    when you tell Pd to look for an external, if it finds a folder with the same name as the external, it'll know to search inside that folder for the external! - -

    4.3.1.2. [declare -lib]:

    +

        4.3.1.2. [declare -lib]:

    The '-lib' flag is needed for the classic Pd library format, which is a single binary pack with many externals. One such example is the @@ -544,12 +540,11 @@

    4.3.1.2. [declare -lib]:

    For more details on how [declare] works, please check its help file! -

    4.3.2. Load via Path and Startup:

    +

      4.3.2. Load via Path and Startup:

    We'll now see the differences between using [declare] or using "Path" and "Startup". - -

    4.3.2.1. User added Path:

    +

        4.3.2.1. User added Path:

    One big difference in adding a search path in "Preferences => Path" "is that this permanently adds the path and work every time Pd starts and for any patch you open. @@ -571,12 +566,12 @@

    4.3.2.1. User added Path:

    like it happens when you use [declare]. In this case, the path relative to the patch will always have top priority! -

    4.3.2.2. Startup:

    +

        4.3.2.2. Startup:

    "Preferences => Startup" loads a window that says "Pd libraries to load on startup". This is where you can manually and permanently load single binary pack libraries. But since they're only needed during startup, you need to restart Pd so this takes effect. The startup -is also used for configuring Pd in many ways, see 3.4. Preferences and +is also used for configuring Pd in many ways, see 3.4. Preferences and startup options for reference.

    @@ -612,7 +607,7 @@

    4.3.2.2. Startup:

    lib print
    -

    4.3.3. Slash declarations:

    +

      4.3.3. Load using slash declarations

    What is this and how does it work? Let’s say you’ve downloaded the ELSE library into ~/Documents/Pd/externals. Instead of using [declare -path else] or adding the @@ -660,7 +655,9 @@

    4.3.3. Slash declarations:

    These issues might be clear if you better understand how Pd works when loading externals. See next subsection. -

    4.4. How external binaries are loaded

    +
    + +

    4.4. How external binaries are loaded

    Once you make sure Pd can load an external binary, this is what happens when you create it. Whenever you type the name of an object (into an "object" box) that @@ -687,7 +684,7 @@

    4.4. How external binaries are loaded

    get updated any time they’re updated and reloaded! -

    4.4.1. Overriding objects (externals and native):

    +

      4.4.1. Overriding objects (externals and native)

    We've seen that Pd loads and sticks to an external. But this can get overridden. We've actually seen that already. For instance, you create [xfade~] from ELSE, then @@ -706,7 +703,9 @@

    4.4.1. Overriding objects (externals and native):

    internals, but it makes sense if you provide new versions with more features but fully backwards compatible. -

    4.5. Search order for loading objects

    +
    + +

      4.5. Search order for loading objects

    This information has been provided in pieces throughout this section of the Manual. But now well wrap it up after all the information has been presented. @@ -729,6 +728,8 @@

    4.5. Search order for loading objects

    provided by the Pd Vanilla distribution. Note you can use [declare -stdpath ./] to force priority to search this folder! +
    +



    next chapter
    diff --git a/doc/1.manual/x5.htm b/doc/1.manual/x5.htm index 2fc7ecae6..b56fea53b 100644 --- a/doc/1.manual/x5.htm +++ b/doc/1.manual/x5.htm @@ -16,16 +16,19 @@

    -

    Pd Manual chapter 5: current status

    +

    Pd Manual chapter 5: Current Status

    back to table of contents

    -

    This section tracks changes in Pd's current implementation.

    +

    This chapter tracks changes in Pd's current implementation.

    -

    5.1. Release notes

    +
    + + +

    5.1. Release notes

    ------------------ 0.54-1 ------------------------------ @@ -2344,7 +2347,8 @@

    5.1. Release notes

    int, float, pack, unpack, trigger; delay, metro, timer; send, receive. -

    ----------------------------------------- + +




    diff --git a/doc/1.manual/x6.htm b/doc/1.manual/x6.htm index 8a452f537..e3d9dd1c8 100644 --- a/doc/1.manual/x6.htm +++ b/doc/1.manual/x6.htm @@ -15,7 +15,6 @@

    -

    Pd Manual chapter 6: Building Pd from source.

    @@ -31,7 +30,9 @@

    Pd Manual chapter 6: Building Pd from source.

  • makefile: smaller & simpler, used for Pd binary downloads
  • -

    6.1. Requirements

    +
    + +

    6.1. Requirements

    Core build requirements:

    @@ -55,7 +56,9 @@

    6.1. Requirements

  • FFTW: use the optimized FFTW Fast Fourier Transform library
  • -

    6.2. Autotools Build (recommended)

    +
    + +

    6.2. Autotools Build (recommended)

    Building Pd using the GNU autotools involves the following steps for all platforms:

    @@ -168,7 +171,9 @@

    6.2. Autotools Build (recommended)

    ... Pd-0.47.1.app/Contents/Resources/bin/pd: Mach-O 64-bit executable x86_64
    -

    6.3. Building Pd for Linux

    +
    + +

    6.3. Building Pd for Linux

    Platform requirements:

    @@ -197,13 +202,15 @@

    6.3. Building Pd for Linux

    Most distributions come with Tcl/Tk installed, so you should be able to run Pd after it is built.

    Once your build system is set up, you can follow the general autotools build steps to build Pd.

    -

    6.4. Building Pd for BSD

    +
    + +

    6.4. Building Pd for BSD

    Building Pd for the various BSD variants is similar to the Linux way. The major difference is the used package manager (and the names of the packages), you’ll want to install.

    -

    6.4.1. FreeBSD

    +

      6.4.1. FreeBSD

    (Tested on FreeBSD-13)

    @@ -229,7 +236,7 @@

    6.4.1. FreeBSD

    sudo gmake install
    -

    6.4.2. OpenBSD

    +

      6.4.2. OpenBSD

    (Tested on OpenBSD-7)

    @@ -275,7 +282,7 @@

    6.4.2. OpenBSD

    sudo gmake install
    -

    6.4.3. NetBSD

    +

      6.4.3. NetBSD

    (Tested on NetBSD-9)

    @@ -313,7 +320,9 @@

    6.4.3. NetBSD

    sudo gmake install -

    6.5. Building Pd for macOS

    +
    + +

    6.5. Building Pd for macOS

    macOS is built on top of a BSD system and the bash commandline can be accessed with the Terminal application in the /Applications/Utility directory.

    The clang compiler and associated tools are provided by Apple. If you are running macOS 10.9+, you do not need to install the full Xcode application and can install the Commandline Tools Package only by running the following:

    @@ -405,8 +414,7 @@

    6.5. Building Pd for macOS

    Note: Pd installed to your system or run from the build/bin directory will not use the default font and will be missing the various macOS GUI hints (such as retina rendering) which are specified by the Info.plist file inside the .app bundle. Again, it is recommended to build a .app and use the aforementioned aliases to provide the pd command.

    - -

    6.5.1. macOS app bundle

    +

      6.5.1. macOS app bundle

    Directory pure-data/mac contains support files for building a Pure Data macOS application bundle and supplementary build scripts for compiling Pd on Macintosh systems, as it is built @@ -438,14 +446,13 @@

    6.5.1. macOS app bundle

    Creating a Pure Data .app involves using a precompiled Wish.app as a wrapper by copying the Pd binaries and resources inside of it.

    -

    macOS App Bundle Helpers

    +

        6.5.1.1. macOS App Bundle Helpers

    • osx-app.sh: creates a Pd .app bundle for macOS using a Tk Wish.app wrapper
    • tcltk-wish.sh: downloads and builds a Tcl/Tk Wish.app for macOS
    -

    These scripts complement the autotools build system described in INSTALL.txt and are meant to be run after Pd is configured and built. The following usage, for example, downloads and builds a 32 bit Tk 8.6.6 Wish.app which is used to create @@ -535,7 +542,7 @@

    macOS App Bundle Helpers

    patches, use the tcltk-wish.sh –no-patches commandline option. See mac/patches/README.txt for more info.

    -

    6.5.2. Supplementary macOS Build Scripts

    +

      6.5.2. Supplementary macOS Build Scripts

    -

    6.2. General Autotools Build steps

    +

    6.2. General autotools build steps

    Building Pd using the GNU autotools involves the following steps for all platforms:

    @@ -131,6 +131,10 @@

    6.2. General Autotools Build steps

    # build 64 bit Pd ./configure --with-universal=x86_64 +

    You can compile a "Double precision" Pd (AKA: Pd64) with:

    + +
    ./configure --with-floatsize=64
    +

    The full list of available configuration options can printed by running:

    ./configure --help
    @@ -160,7 +164,8 @@

    6.2. General Autotools Build steps

    sudo make uninstall
    -

    If you compiled Pd using the --enable-universal configure option and want to double check which architectures Pd was built with, use the "file" command:

    +

    If you compiled Pd using the --enable-universal configure option and want to double +check which architectures Pd was built with, use the "file" command:

    # examine binary in the src directory
     file src/pd
    @@ -444,7 +449,7 @@ 

    6.5.1. macOS app bundle

    Creating a Pure Data .app involves using a precompiled Wish.app as a wrapper by copying the Pd binaries and resources inside of it.

    -
    6.5.1.1. macOS App Bundle Helpers
    +
    6.5.1.1. macOS App bundle helpers
    • osx-app.sh: creates a Pd .app bundle for macOS using a Tk Wish.app wrapper
    • @@ -540,7 +545,7 @@
      6.5.1.1. macOS App Bundle Helpers
      patches, use the tcltk-wish.sh –no-patches commandline option. See mac/patches/README.txt for more info.

      -

      6.5.2. Supplementary macOS Build Scripts

      +

      6.5.2. Supplementary macOS build scripts

      • build-macosx: builds a 32 bit Pd .app bundle using src/makefile.mac
      • @@ -614,7 +619,7 @@

        6.5.3. Preferences

        These are set in:

        tcl/pd_guiprefs.tcl
        -

        6.5.4. Code Signing

        +

        6.5.4. Code signing

        As of Pd 0.51, the mac/osx-app.sh script performs “ad-hoc code signing” in order to set entitlements to open un-validated dynamic libraries on macOS 10.15+. This @@ -623,15 +628,15 @@

        6.5.4. Code Signing

        developer warning is still shown when the downloaded .app is run for the first time.

        -

        6.5.5. Privacy Permission

        +

        6.5.5. Privacy permission

        -

        macOS 10.14 introduced system privacy permissions for actions applications can -undertake on a user account, such as accessing files or reading microphone or -camera input. When an application is started for the first time and tries to -access something that is covered by the privacy settings, a permissions prompt -is displayed by the system requesting access. The action is then allowed or -denied and this setting is saved and applied when the application is run again -in the future.

        +

        The macOS 10.14 release introduced system privacy permissions for actions +applications can undertake on a user account, such as accessing files or reading +microphone or camera input. When an application is started for the first time +and tries to access something that is covered by the privacy settings, a +permissions prompt is displayed by the system requesting access. The action is +then allowed or denied and this setting is saved and applied when the +application is run again in the future.

        As of macOS 10.15, running Pd will request access for the following:

        @@ -655,7 +660,7 @@

        6.5.5. Privacy Permission

        tccutil reset All org.puredata.pd.pd-gui
    -

    6.5.6. Font Issues with macOS 10.15+

    +

    6.5.6. Font issues with macOS 10.15+

    macOS 10.15 furthered changes to font rendering begin with 10.14 with the weird result that Pd’s default font, DejaVu Sans Mono, renders thin and closer @@ -667,14 +672,14 @@

    6.5.6. Font Issues with macOS 10.15+

    Mono and DejaVu Sans Mono, so there should be no issues with patch sizing or positioning.

    -

    6.5.7. Dark Mode

    +

    6.5.7. Dark mode

    Pd currently disables Dark Mode support by setting the NSRequiresAquaSystemAppearance key to true in both the app bundle’s Info.plist and the GUI defaults preference file. This restriction may be removed in the future once Dark Mode is handled in the GUI.

    -

    6.5.8. Debugging Releases

    +

    6.5.8. Debugging releases

    On macOS 10.15+, apps must be signed with an entitlement to allow debugging. This is good for security, but bad if you want to run Pd in lldb to figure out @@ -822,7 +827,7 @@

    6.6.1. Building a Pd application

    But to first get things working, it’s best to use msw-app.sh and tcltk-dir.sh directly.

    -

    6.6.2. Pd Application Directory

    +

    6.6.2. Pd application directory

    Pd for Windows is essentially a stand-alone application directory which contains the compiled binaries, resource files, and contextual information.

    @@ -945,7 +950,7 @@

    6.6.3. pdfontloader

    tarball. To build pdfontloader, see https://github.com/pure-data/pdfontloader source.

    -

    6.6.4. ASIO Support

    +

    6.6.4. ASIO support

    In order to build ASIO support into Pd on Windows, you need to download the ASIO sources from Steinberg directly. Their license does not let us @@ -961,15 +966,7 @@

    6.6.4. ASIO Support

    Now build Pd and it should include ASIO as one of the audio backends.

    - -

    6.7. Building Pd with Double precision

    - -

    As of Pd 0.54-0 you can compile a "Double precision" Pd (AKA: Pd64). On the autotools do:

    - -
    ./configure --with-floatsize=64
    - - -

    6.8. Cross-compilation for Windows on Linux

    +

    6.7. Cross-compilation for Windows on Linux

    You can also build a Windows binary of Pd on a Linux system, using a cross-compilation toolchain.

    For Debian based systems (e.g. Ubuntu), you can install the toolchain with:

    @@ -993,8 +990,7 @@

    6.8. Cross-compilation for Windows on Linux

    make app
    - -

    6.9. Makefile Build

    +

    6.8. Makefile build

    Alternatively, and often more simply, to the autotools build, you can use the fallback makefiles in the src directory:

    @@ -1041,7 +1037,7 @@

    6.9. Makefile Build

    On macOS, you can build a clickable Pd .app bundle using the supplemental build scripts in the mac directory. See 6.5.1 macOS resources. for more info.

    -

    6.10. Troubleshooting

    +

    6.9. Troubleshooting

    Let us know if you run any issues with building or installing Pd:

    From e06030d8f71f5ed155cc58e217ae46619722059c Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 14:47:08 -0300 Subject: [PATCH 260/450] reorder pics --- doc/1.manual/img/3.2.1.png | Bin 259715 -> 0 bytes doc/1.manual/img/3.3.1.png | Bin 18475 -> 259715 bytes doc/1.manual/img/{3.2.2.png => 3.3.2.png} | Bin doc/1.manual/img/3.4.1.png | Bin 39981 -> 18475 bytes doc/1.manual/x3.htm | 6 +++--- doc/Makefile.am | 3 +-- 6 files changed, 4 insertions(+), 5 deletions(-) delete mode 100644 doc/1.manual/img/3.2.1.png rename doc/1.manual/img/{3.2.2.png => 3.3.2.png} (100%) diff --git a/doc/1.manual/img/3.2.1.png b/doc/1.manual/img/3.2.1.png deleted file mode 100644 index e7fe81c79b16e52d5d40787bd95d6b673b2ee542..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259715 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≻Q8r6395Z2@xnmLEvM$$0&=X3ttR5o_*oP6$5Jh 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 Y=4%$qu_pZi77#v;wyuO)Jmbv&0c$KRVE_OC diff --git a/doc/1.manual/img/3.3.1.png b/doc/1.manual/img/3.3.1.png index dde10de834b40c5421a7d657c088667a36022ba3..e7fe81c79b16e52d5d40787bd95d6b673b2ee542 100644 GIT binary patch literal 259715 zcmbUIbx@p7&^C;c1c$)l1b5Bif#B}$?(XiE;7)K~++`uSySqCixV!7O`91IR)v34Y z{Bh3K-nF|kb5GCC^mJc+P2b@Pa^jy6@erY)pgv1Vh$ulpeLR3%Yw#Z-C0w&JK2T5} z0xgAw6(og)NgSN)%`9z9p`d8ueB*c}dIbpj^=G9-=>yyVjzbDrCwXKsTES#0@byCF zC{!taf(aoM{r!p#!0!(=8m*QUFt=}iF`0w`*l&`TreI&d5 z$|{rL5$NGH%l`cwLtIl*EqpS3P_~8Sl6(;>cJn)qF1Cl++*rYWcz&NzO<)p=8Kp8g zh%BZwUG7n6!8qv}+q_cAxYGLyN9^ipgk{k(h9q3{t6%^;%(q0vpV8kdxoELx>as5` zQCt1Obr73J40bdGu<%S4QQzP?Tk8=MF!YotKDe}hpBSV8Y`~%G3ezMj?o>RmLyiTX0<zY)+0iTSAxt&`4)W1wTImF&WS1EOUXK9SRZLm{PPb z5y~_QYmy`=q+$|3Xh`j-Tc6)*{(7yA>z%~|(4TzxePY^2CwQ)TuE$PlS!=nWdzs)N zvZ0`IIJ@k9;sA6XAm6)MKL`S%fi)j`;ce8ku0r8q|Fzht@ql?QhK;g6!fz^}RDUho zl?OEatLSRQY$|!pdr}?E#{1^bJwVe!AVBcxU(LByLEfmKZ%;}KG()`@by>EKKB>k( z2|xCT`buCZm%v;hEcSE`)9CpJZ{aSuKmOH0d*11qT+@qzK#&l`>TwL zUk}2f=+yO*r5gmMYKa^DYXxO7LW-o`mgiOxC9U#ahWEQ%$UO%n9IY$GNL?4kz^b1}cOS?o*<`K7sF#TAqgn<2N9H)0N$EE$Qc3jZe65g? z64CpM!We6vrjMAr%-%V?Za=$V{`Hn_`6rLp$`DuVODoMbR(g@DF^)>{VD7ER*H5uU11i-1Tl;q|Hd*o@NPpg4a;T*P==K-94C#uIR~pU-Flx*HEn-fT`jR|k zhBlM68<#{oai%P*X6ALyAp;5+`tJ|FT`OP)>+y#5i2=)MB3Ux0=-sBD9WAQVo7>p8 zdYDy3a$0yE`nvisAj6v4DSiJ|Rk|wx2+EFCU;SlZkLvEs${M7g=;%1Iee*o+7(QGI zjy84BDP3j~4QH`Z6x|HXyY(Q@I<0)yId?SN#;wvCXPEFfyM`8JDgor$1^q?ZhH~WA zE%>M90vNG6N9b%NdfVwrC~oWv7AW-paA+ z?m{#L4d){o4GyXLM^AKkQZ|I#Gd8DLYIJBwk3Xm+35zXpi%NG5%&jXSYRSyTl*(az zbzi=)x7R+!vXw{RqDbf{cZ+_Fo89nP2WJiJYv)=A8{Y|(E=kbBD^H#^sEc{HDhbeBCdH!$LK@Pm(C4I3*- zRoj1^_+<09aw~vbIIt;HviQAuO$X23II5|wMZ?pxsnHUvWOuA&DQIr+FnzJ9WuutG z1O*-qga746v{t;5lBtvEFMsL!+HE3=h@g-9_Kd=x0>g>@F1FKU;VqGLmVSx4-oW5X zw{@@Q#x1l*)bXIm0+4^3D!>L3pmD1Pd125*Pfuf|BdKBU@#&p4lI0yGl-Z@R8LS%L zH1Y@nkc#BTyf3c~^!JaFg>~&5@zhIV1{9O6-s2LoC(_I;NW|b()l~UMN1FYpS?H<3 z;VNl*oF#Pg1#Oo=_T-lE0j=L}r*c)lo;|(G-VV2JS2@l%!2XZDTn*0Ewc+wI4D{d} znil(e2E>SnsF=x-VdK=rxzY^5qw_9V)4pH>l`W{E27#Z`Z3Cq{3MoG%rBO%)f5PV; zJOpVu!&@Bgo*s4+Nt<4M!*3i*<14g1RvW=M8|<@NYp|YP(>zhPmq+#22M6_;0DmHJ zALKO*6i&?2e!fsaTkHs5vie5%?OS9u+mdNm1mH*vcMqSHj5nk@9mZB02KMpU>YUL^ zR<%(E5BjdgyYIl(Q{7w~Bm6SBywNJ;!{NZvcV*dw3^!cD=zKN0QW>{>y{PcM?>U8y zDXpU&z0|X;Aohd#_Kue0yp*ESj4+Ol{sAS9X$|Rx&h=@wr1ve#=ltS~$b`W4$N-_! z=0goX<#1@yo5f~nmgcp!xuC)A!Xop`PA6gItd=hYj(GOlK@2DUw3dgE_fr`-J+QGj zRH4iN0-pFY^wXo1=~ZIgpq7&d&S~3`w#sYTEBCb6?vs5mL-Q**3Wlste>9R6eumPm!xW=DH_EcL_V@st+gHR7%cWo z=N43)>?|Wq);gmJrK78cnslb}Z>xzUrlo~9wys{EWabx7CMBtp1ikq1Jl~$sVTap^ zi_MQ;3BGkWHIvbPJDrcou^0>Mwquy+rz|X<&@~wyC>)yCcF!Ut%p^EL)Wgo|bZU2g zX0HNfN=c2xWN~IEq<}?fzvbH0L`O#@kAcz?pB}nuIsrn?MSeD9%z8CutQnI(^wv*o zE6WRidow$#+lvM@Sk5=7<}{~Sikj}8hLwaJd~c9=*J=K1V81#uYCL+jXyl}&yE!=m_^#2q_^N;VwbkSr4%hm&E4qDd&Ld!jxeYGf!dt;eU&(P zD79Hq{}L(>>Q~bTS7i|po&bdOftg>PNv0Q85J`8AcWYj1Jy-9Eh9<_9v2%PS6eTQFx$=1uvGCYpxO>-Z#VlYCEWMSXSS5y- z$-3Qn6A`15caH>lnUNC4w(;4-v;C~xi8)Ktm&&?~d>igq&*TDYPp;!6o)%jXaq@N#v5R8?S zWK}xXfe8KLm><;1Q(WGu@D6} zNMV199a*-Rci6?*@ocjkzn3Wl7M2|Lo`Z!gN>bwH{&Kv#H0dK z-d&w9`<;e!d|@R5n1L zG0Q#>tves&9rAdpD5#5aU2b~`7%KUmo(FexXlQCUVK!gvjbkkx$$f8(nHVtpJ>7C% z>efpVWWK-CNmE_Zz{bMXrM2xSMio2g>{MM_UxSSZlccH&%p`yhaBy?+NKYb98m&&M zD&yW5YRYp`Z7K3MlC3-x)iG1AEmonL-OF2PR}@C7ALvn~wUQNR?KEU9tzX`1zj0lc z9vM*q4j0lkpx11a@7a9i1KI5r6)8F*oV+=HtxwJ_e?p9m7#*bt2toEs0pG-s4=5Ti z!sy|-ySF~`+iCve!HlEjA+(00#=SK|TRN22slJ56pO-Y{y~#{;bb>J64;jKjTltl( zcN3{BdO%f3WfbjpRa@dCgAK!6zU$ zTRwKsui$3d6xnLhpIRiBu*DH<*)0Qn+66O_R$?wPqsc(xfemn3+1B+V*>q>Eh@+$9 z+1VL-c+j}R+sh+-?!CA_g?ak&^ZphQ&(VB+f&xvO(>96_4aBzp)Oh*6ZK+z%#&Ir+ zBo4>uu6~z{LW-Gkac~k`o?Z$ND%02Y@|K8-h8Q*P-2p;l@?QCUKXmki?9{{v03DG2 z{dLL_mK4Wa+*%r`k3?P_M>c$UL=+2I2)_O6*Qe{gO=zLWeVJ<~cTr>~>%U+BT!S}b z+B{B^lM4ISEQy^zH$6OhtgL8|2eGhZ^Ljq%P)fLCM2b4164MsjjgE}o6LL*3Mg6uR zVgNQ_($WH-w})tR6)tY`mQ_{fJKsG&GDj_vaY#Em1EnkxUmGdQHbmQ=Os*l$`)X@m zdnBG;MoL+su5YNix}>jXZERp9o-lxp7P#86j|w9SQ+M;1CB|$82PPPtB(?2Vl$VFD zN&czkXKi46(YFcRmW6U_b9M9LGAm0-%jJYIb07gB!KqEKP&Wh%*-)kb)3t@6=^9kF zNGSk?8hB)c?%R9c0=Nib&$4(GYN(48Q`008{Y*_v3R=6rt;XzeE+k`*j5%NF&mGw> z$*_&*NgKz8MX1ha*$PTYJJoaBP>vL^$e#CeX@{~`TBdgpUklt0YK_|4m;_aJ95jVO z9C?~V6nLXede%ivP7l)PN*}YjRApXq6tL>3s;cJb`mv(iU>&?1)nwt4{-5>oX>+?q z37Q%!#b`Kr!D3zMzGQM%u~|#b>MScVa_%+hi3{9&O!s78>Vplei)u2+$F{MUHuxE- zrO{VUl=`Z;n&JEf0ycShdB1;O8XX;7UVfY_RX)j?dU?F|e>yB~uwBhl&%i5D5vt9+ zHHow}F$n`)IoSUFyAtrazBI(d34C2Ev|i^5mCOEqr+BnYUi_9kyra=+-YG>f0H3=R zj}FUhiiPDA+%q)v>s49Mko0*av+T%9Ss4SCStI;?V~PZpR7FQ?fFwk)q@ZqWxI1QW z|I3#z5UK$ii#d#zj@ENN)Zpvp%pmJhC#BEpnApjU>f&bh8*rdg3>LT{auj5I6s+y{mDc!2T zDBi)vS>ZHKH$T71w~%p&+bb_Tq;*xdrq!tmt`w0yR~?Oh?O#|K8Sj5Ibh5JaOtTuT ztbfs&FK(k@ZW<`;U#-!yfEXdT1*HkI>YiXv+Zgf!RR!5F0DdgsiNh!?dLPk!&M7P= zTD|Cr<0d?M5uJ(F8UEtB9|RtAeoZDs0Am-G>?vrd*w~wwrw8dSve@sjRh8!TlHI;hr0#qGFU~3zHGJp$yEddYGbW z;&OjXnu~{{31Nzst0Ja|%;T}K#xWralbD#%#YveuHD}72npur7MfD9SjFNTtQor;0 zT-nzX_mjmn7JIv_eYyk1m)mgB^)PYK24jt&c>QiQhJW-4F?`?wi5QKwm|ALb3JtA| z1@Wc{46V+}(qOK|M722FnuRu0LNHjFiq7G%&Omn&7D8}Y;Zx(RIqqGVnXP49LW;hg zVt75Q=&U@54+8a*MojLFx3f)madE?Vb+lDf)y;QzB1D8L3{_nR%_4yiHBrBwd;hoHxOq>pcs zlCwreBtXd4DleH=v8F7a(A!KdtK^Bi?6kenrVOT*PY}Lxy^WWSy(4+I9qjaLc=x#B zM8e}i;`*gzsmV2?adZc9UXp89KS60$=oFx&P|m*}8s ziw=EaqVce$rKO;tpl}E>GYiW~i>tMpn_DOfVN*}C*?o|Xs3*jW4STN@lCe{QUCpXfNuWBQ&}m*!Q?;Ps_nd9T}4csu0{m+ zV9Uk8=cYcuy{C&l(vS*;87j?!ETq1E{c1-@aKXb}{Ku43XlSO#XY7KMLJ|-EOFy54 z2=X<>cBxSA0l|tG1!fZ$cROOYYkgZM7$99FA`}wUH|Pk_ z|9h3|XnhY3Zg6#|#<+N7X(nJEOBgFwDy@KkYqDGg8cY>6wRRdB5%}is+;?XSg|0c9 zox<#NqFXF-s;2d3TCU0@K>&!uZEtb=&BTgiaVV=ew~13_Q6sjJAfssNBPr3Z~EUuWQoUA>#e!Hw5W6Gt|%mqOKn{8^+eQz#2!~G;Y zBHG*cfXwbXhPSpzR;SU^yN#v5!*-Au`QCVI!DeLwmY}{0QH_YQu)vDes!dBEKVG=6 zy@bdxE2+3Nn0BPT1!;c_8RbHmN{|bhL2F^>2u2euwG~lNjr7Y(rk5m$hnJU_$HU=Z ziuA^6Rw8CPHyyug@Amv^oEs9}kXC+#gi_@NGwaW&{NA8-t|_o?ISG-Znu<#MSGtCV zx`R1}zJ(P!7A^*=w_Gi{dazR3%VMCo)78~#Ff=|cUS_*Tl57AQwks37A*Gf^>iy9Q zEyN*sYkBP{*J$h<{!LE@Io@rl!sh;t7|Hj~DlaRuBRufupet%Bz&y-%au68Zik}(V z*G#9EQ5h|YBwI42(O;4dj2X5KW{spN(GgqS4-XE{;uF(5P8a!SShFo_#I(F% ze*y&Kmpva5(x~yu6&CPG$ZWAm+x7xo)8mb;eBW0)8B_9A zAiLy*I#P!rWpwwX`@WpRNrGI2qTTOyBp3;Yh|?+P^|W@9uhr|eOoU9c)33d=v-9Y% zS3Ejyh9W@yjf23b#^P|RnKm~2gx3MO;=>P|4+4R5So4mdy+z4^?OCVy`o3ls77EYE z!lt_%^lH01dycxLDGVTT0Q`ebhX9EIss@C4d@c?05v?56x$!HL7!<^*I_!+!inm^@ z`b@}GS5VM5H-|}D=d>$jyKRTuEAVIL2YDLUY_Piw$^#9G&0$R`7IwbCX=r#@x7}}a z%agT!kO2!TiQj%HJs}~o$@>#ws5ahPY2H(+K=jtkZ~4v#JW`j#qt6%^7^jbzNr||) z8AAI@e^h(BDB++OKmI71%SqQliB(eSczYYP#29?^@-|GMC@eTzs%50+0OyY6i2o>g zRzVY0EUOhgQ9TYh>VgK&9JY}W7r@Hf|=Z8sYrJWOyfr%*|C^?{<4 zmB`L(P#=YEK$3m(n5rB)ZE*zj$Db=IXp-?G%XuN0bpMg9e>y+)GF_q)_iuwr{UU!U zF#qckiVcUv;XgVa>f?W0IMk1jz32+ZQUcUS=l{wjtciY(mV%7t!DdBN3aJ7n}mXOCPEGQ6g{U@S}dn{KtbZ;!{zNoMZ?|-^W|NK9MJ`~hXq<{B9K|wS8 z_aX4-zft}FP=1xH&{svc=6CP}jYwJ$_Ew`V@ScrPG7#ruFB;Ly% zwe1q=8QXTF0=ZE85wE@-BJkz@BTmtusU3lA|4ZB2o!^i^;UquYxHof1>{q|*)v;*~ z3*)QT8?!2hV@HRd;Au+-hv#xGTwzoL=5728JZ#_4Eq>csy>%1YRVc`hk5BM=V)SOR zHa9|c|BacC$z$Yi0G_qF?)z_N>GwG9?776mk)>~RIqLz}yCrDIs{BZBa=cmvH(!bl z4(1m9Av60R-{XHw38>R=I?n(N*x*t+0svyR;*%E7Atv=%jrXg3RDJZCR{m6paM*OF zzXl04no0dHm;8v@TEdQP72@tMZU$6Gi=`_kUp4YesBV8L`F}!pMeqckjDfQG&{$_X zD}TKfzAQ{TvshdEIcAA;nq5ByZ7mSCJScFVi>bz(mxk`28L##b@Q&twl}rgzCEw6Lc`P_-~OE; zmrU{+B}2AdS2ZP7N%C?zOeL}n2oQdj*Tq+)GXl$uurT$j`{TY1+so5Wj3L}yPT%{b zFx9!}h0;M)N{3oi` zP&SD=d>&&Tfn>>(II#u`wmYl{mAu5NQT&VhYOsx53sL` z8?mvmD_mP*HM!-b|%>ojW)k!ZeTJJ7>^2aKSQ=q8M>{KX)=C-Xl5Hoc@lY_-nNkt0RB53N)*F?|% z)_K*#6g>@01okb}hsqPabePYFgK=#9OMWn*LP5dn97Udtq!7MnXvuC9S?4IdaiLQm zaXZVQy3^BxeL^K`f4{gT%L2>CxEE% z&_2a7?j%5OU5b*${gOXotTGj7-N0xtfgRVp)|5xsuWukyvig?ecyD@wV%^r=`$@@khY3@c$190W@ z>8|7s&t#D+V;WP5w0Hhk*pN+sEj|aR#pUxg^5McT)80s>k?7I7x9D9KSF_(HFHFHg5)T{Rf1%I;MIqb26< z=X|vX1Pk%%>h8DK*XM0FAv&841}ol2V|soJ3~!&XWzH$(I(@zoE}VXZnp*RGw$^z# z-D}s%6U1G1(i1qu@nkH?!(d%~?FV&FC3aP+Oa@21u-EEWI+7yWj;A%H^as`F3y`D)N|R%#=}A{d;Hm^M~;LssRCx;6~$?Pd$^i!1N;=fk87uw&b{!7_U_g1keV!Yh3e#*a}+cKe!s3x%#%`%Ip@31^!ub_#ZiP3ah#m6=q=oy;9kiU{1kIwR3Yqp zNS02=SSm2!2DCvAJ37IKn=Cx!?G)5^kayvd7ApgqcdOiAZ zeBtYPT$PKSH@zyfoRo#nNMXk3>)|%uV9j#Q$Ghe+wGZ*qKc$VMKYPkAx4EWE_dHpi z-yUq(&$WHVVJW*A7bdEAT)Qy*YP=veB1-DK=sO$wX07;;6NiMtl27G6u!e~rA`6;T zcDS7V`)TlPv%W>|Ptqd6;(lnXW0y{aFMTe@Tv&H(t^4VoM_2(~4PSb{#*~D%Pr-o7_LC8WqD=f>+@zq2dJV6qx z)pmM}&JnM@T$+IB4Qvn4Ym3S|`~It7eu^H4=exgkQQeMk3LKPxb7+Zc5=<`>o9rx` ztRm*~aGnAUO+@_YE@H4yu0l1OQ!@nVKR?2i>_Lc|`1tsb4X{53gwbA&J1-aEh`zVe z0K_yQ$ruDEgj{UqXFT)z=)`;gcnC=SF}Yuxeexl8aQphPP5l?euwOidB%rUAW$Po< z4^Wqq4kRIkcVlm=2IBYjVuy!^$91t&nmFicm?H<1+QKc$q%YIubms(vi*%eIr`_(H z4whqYjd9OURDPDF=9e3`ryFQk52X4!UKcPo4p2~S&Rr^K|KZR7g{A+CL;nvfg&2kZ zs-gbxa@j;Nuh>xtzU^B0uK`<^JEj z|1T>3|EK&yKe&`(VsxCo%B%|$>VX>4R}Q|))rbPAAOKoWYJe!E!}=)cl-NuFH;A}w z&QI&{Hn=0CGP!@`T{}tN%`QFCa%nOa(|+_SiJGc)rB#kc?Q$Zuj>YR0-XC9>PjcbR zb-ZPG4(;%=23?8A!Cg=}9H!3g$2rLVBcO>**JQtV1#t~~O+_!19yOK)z2S}F=S&6p zv*6~*O1qyB)cYw`>wkIM~bGOy(~*un$`B7sY1R7;VXWn=k6|)TWYUYsW_1 zy6;4t!H3mm5S}^R#q(8%kmr;@fQtayV_NJF63>sqNGZQaukZVkSw0(ZMTxW@xI1v*dh^7r|+LRZ;l>>Sqy5Q;&AQ z{?3*J=FSc+03AZ=DC;Ol#NADxq~}r?qBB{v`RmjU&$RZgE_muWoYgA3c6nCIej=$3!{%2;W2byvOB# zRQKuJ6)<}sQ2#v*jExc_uEf)I=V&}-+k0Iof))zf2UyKQpCzPTwY@lrEgc8KB=q)A zp|+D2-+s9rr_SxmCqMRoG|ZG7+HTJsG>g%7T%bAGe$1kHtih3ce|1>zOKxc(uOu{h zeZlyFh9dwbTA%I@ryd<0kAC@GC@^QNY}P$0G%zgk*`weY0KpC&y)`%KMxh6MBK07#cwm<@{ovo`2yhy_DodT-e zM|Dm}eUjq^4U&k73nqp3e1`8ujZq;#+{6G%2AK0cW+GEdJn!BI+WYG~ubxY$qsg0OCP!O97a!sdu-j3wL5<at!$>Ig;Ii{W2;Z0A%aDv@wg#KnzGTr=} zD3;r1K(xrH(-$}&zbDRqL$0;76`uZb>(m6EtFho0u66Xq-mCu3cJr>7WL)I;{I)%D zuKl%{?hg%OLN$F0wX+rE%XJHH{jLWypEKBPSL!ThpBUk|#mMQWo_9y6D&mlK%Z;qwi#OHpThO(oXeSZRBOJ(d|i&odx`hs7;oPO8k7?AD?WD z1AJ+UBw=QcG?JPC;;}zBnymgsGIQHq*W+jK5luuUEf}J4|3W0CyXmLL;umE6)E&q{ zhvdN!0M)bLA%Z*Lza>89M(1ia>i3wVDKrp z+@#Rg7gk6`$>&mR@V#$DBWTHPG`&8fRq^b8(EFvJ-EcMZ8d?tL(`i(GE;m8>c_uB$WsZD*I~_ZmEtb#bvwj>d zt~*O!%;$0t?RhTF8Nab@<&Z(d1oYh1x}7c88mpDSD~nfZJv{@`O65%=wu*;omv>e4 zth7qwz}dGwo0*&XjQ^#(Ru115&l2%bxR+g8SS65e8Qc{wWL&Cwq0b#kx$;p90AT2E| zDJdxx6%`B1)k3AVXg_7yJ1$fpnW<{Ykk#5%@CT6Khh*E7xARXJmp|6!QDPDSc~#}a z*w|QDMOEjNWI%pC-F_zItk!mL7!#3m#gi)RZ);~r9%18h3cVFeB7JHE25~w@&xG|1 zZAjdP-bw$qC$Ra;Wqs$A>&E<;t*?k!ek>L-vGv!ZddhHV0BA(`uMq`a(>~?6-ylK@ zdGFKYDDNjxy50`h50T*Ho%16`vcC2Po?=|ho&63U3cq&)m`0>Mn`7Ws^F%Ad>`@7> zV4=&#gdbUt#m%&p7*XTb)X8fN59t9WnOptsaRkuw%dwPmGQrF|$yJzq`=d|xB>66~ zaAD;cg~--Dsw&I8=`Kr%q6GaY(xjaG7J`s^A&oJe%LvFb@P( zkFHQ-CUrDK{;Es!>cG=>)CpjV>^oSi(>x5AN*YF_yDg3pnlU@_EIq@Md`~mGFIzzX zS^lZZpQH&fEP2t!r*d-vV1)fitAE;=q;{%u>)Rd2BP7}2XKp9!xWFZsuIVUfJ%ftW zf^s-ss2my^N=;1-3JNMHD1azTR8&+&MaA0MT0lSmM1^K%W+EaY%F5`{WFT2R7U@;0 z&=roJ*3P1Lz)TO*Sn%ek_3dQ<&SrKiSz_A5GQE>?Vbsl&k$+@A_$=beX%sgoExP#1 z`P$M?#pk;_vsGav67hrNXp-pAlJOFxjAMTR zA_tgf$wn}i+Lp{lmqTjU4SJ_=$cIN}7Y}*}vZ+np8VOo*fl-8`IUTb28QWc108H z1*I!EB^4K=M2kcqtjMCMK%#c*J4{*$j^ul;2NFFJx+;DcS{|*Iel&D9tDDd2Aj$i} zo&BQhL)Yx{N<7rDoU_{|sDtHfX9b2;{Vem%6U_Il<8WF6TBj>g-=S*@4vDMjV2ii- zX9=(&CLfQi7~5^`P@7qB)8;6(^Dy*uI#Hfq90}i=loaLlXvn=iO7E70&kR~9N`XQ| zLQ#`eG^{;(Z+S^GA)*dWa(-w5id00I&CKP6d(1LK|DbVt;5D}SoO?R#0P$lWGsK#$t;Umdjw+dAvHrbaNA0|Do{iE54n@;|$ zF&*!G&fm`#f@j8^Wrp$h>vyD5*Utn!1)+O9dta+Q@ArizlKm7G&~{fALJd5y_LT9n zBj?zF*MHrbj^^*kYOy%K%3|HnpB6i}D^MHd=I1Gg?9GUqB)_-PvyEintBuq-G53AN zYhvv6Bmt+gn8*Dc?W^<8*fenL~9A_ckU>nQ2_p|0f$(ei2my0 z`cHKXyq}py?v2Wbfbd&+32$?_+Kqg;)l8la|80c)pJy*y)QTy; zTTTwqg8+snyW1jfzOKE+*5%w9obHI{$LoG$xY@Sl4bjATsZ--@_jYybi~hi4cC)7K zZhe1TR!;tkleq=9ne$Opt!sIs0{r_eK;JZmrlvOF>VRL(PV^0Xqg~v!2Oe?y@h+zN zV68pr;-&vvwyo(JqfM+T$*JU{pszP)#fJa3+;T-+k=K{BU*9>?(0;f2+q}FUwv&Is zblT;bEojt(&2^sqihoaXf5gwsQl2|2)^fps22D1`vs!=8+J2{fB8|7aEz2>Jvcr`i zJX5R9kqr>U@G9qV7)S)YR_q7Wvez>5Z7k_#w_5Rjox~i>=EHjZO-Gg>G&g(v?4R^S zqrnf{=`+~m8l2lMqy`;d=;<=npi81~sWL5ue@V#~1H2B*= zGwRRpA9l!g?%?_#?Du)+TK6BGNpn3@cWgC5A7aFo9d9g`y;TN!xq0rlNI4pg<i zO-<;kFcgXw^ts$*7K(H{3on1b;{XQhx_Byx87vm;B|z3YB#yWDedlMd^nj42Ta z?Z}{y9G>E+9T;kcTSWKxC!nK44OZwA(mey~`&bTc2t&*o8{eEH8D^UIU8Xlvb9$V( z?AZfTF=J{O?97ff{rXEa>d6pqi zIXaRvN_gW|ksg@}?nJ>R1zn%evxw;j9$0yb_S{$Mcg`Vc0b^5&-q1z|kOp13gij?lvP#RiY)Ne?S!U(TUk(I%&*HVQ?yVwMPmNz-V9_8r_-k)PT_N0g4z!*C+<#03go>DQF(`|?cDjxzPkT4u%#a5Ck%m0c@MlJcrn6&e zv3mZu250J)tfHsU@ACHJK4YxU@fkM{8VIyRO|3Z_i&ej0dy(M-FNBlq3o@H{O6%qc zgLy)~;F!t|g1&i*frITjRuxWNo}6hb$%yxXu7e9AUo=G?=qHBZ(LiZQQ*;YmT#V1z*5et6Qp zdt`Rf5i}v0+wskJne2w4W-4i_d-w72<4G@CA;Os<4uUvQKTh(K z+wOqjzgv6C;z5#KIhSvq^Kks@8M(^-$NWwzej%;$~llmH=~ zP=$wq$N)PLp*hh+9&Si( zA`vwj6!`Xk1GZGPK4w20=w%kAl?mcUP6&ThA&UzplmUljFIPtseA< zZmPj^N{@@zMF!1+`GVS+qg3J*{P++J6>OAHb}qizqMlE zw{~hhqZYfnva?sCq_yyNcN29@<+PY%!ZW25jV|bAUj|rB0wQ`~77S7FmE!n)bkO4)^WplwxtfFNzoE#aLm~6f!e6nPDQS&DV zsNOA*&TEi6Sn3fmF*scJ?#?cqf5J`URTfnmFP~@f+?tKbf-`L*T1#7~-F+|5{OyLTz0#{1iW)lcp?u ziv0O>Medbcwn%<+Fp0oeUMKFtwZQv5T=Z?{VhrU@Oe{usZ{oyU>l&TEEzb3n!9@;* zF=zG_#)V1sCV3DGV_TUfyfJpWJYvdI|CXa>nM)bZnO~FC0)yy`TmYUlE-=AWwi^@m z9tdLgeY!cEH3zrq^*|u6B`Zyv^wZDRX>hXiMKcF@kYZ5)lgoM#M98{|@QcLbs)*Oy z%{~)z2&Z1F?RC`c;BIo$Uhny|YS8SHx*hIj50pDqs9Z?a{^?S!trvcD`1f1FQ&$Eh z*{lCIh8=bVqtJPdR#1w^L)-SiMZ~;0i53-Rem4hL&gv31zdPLiU|g)!<)V`4spP)i znzMK3?Fscz-PmMy9?oXO<#id{8BWa9X0y4oA8zQy89NziZTHi8h@eS36B7$ypKUzd zV4_tJfM1sMsMV!VZi123aH_DTWue)7D5;Eg#9= zMkcIc8ww!rwgc?k?+680$K8ep+fjCPsQsr^h_AD*ba0Y#aX#)HICn&9I zQ=Wz_3=c26_M&TFuvbfN1|WQMRlTCdu}$jur2boE)thx2=caLYY5Tc$%Or1SETLoE zHamEbYQI5ZH`gILPi^oGU?mX`ZOQ4dk0G_1rjtmFOS*vTsJJ?8XN_$-~EQpt#mwub+cg(tIu-~v@AB>nzI$uz34cf4ZnhKpg8?<5M!q`EW zU1d5~jx18>AKFkBnk3uh@o`|=o^Jfit|zDFaytKB^1QtuuAvPbDMCwij)d{;NvAXK zJWet99P$YUcHqG0itjDwBjv@?692_n6CQZZ57$)z4_UMP{CZ;!)Qeb(e?pB{5x$tL zyypL9_`Fwh5_9))H|EYuNJ~TWmxK+87$l~%Av7!xq@|_HMZj=JwMM^OZ(pxJ)&Job zqLnQ0y|oq5MR9$8JVeAtT^@%|S5ZZ$vzQ}wX6;3a!tL6D1P#5(tL5VGCDW%xPi!H% z7{$scy26`~R3**FK#l_kqh@Jp$*8MgA5&RZvoKV$PK5vx@D2k82E<&o_HWNs;$Hqn zu(v&FmV!V!+tOlgZdA})%bZJBM}MSSDE4WTV5(wVPWd6JFm*Ws5kXZTphuX?l?x6= zeTxw<@0SvCKvSD8a=UiRum0HCw_B5r)uCt(5ac1crfRn)&#jGJZevR~?YnBQyuN2Y zKRq1hs@2=~YEVWcM!cGBo9ESm@u1Q!gs7h!XUM4s7ap_P;XW=--kUo`#O4RhH9ox%Z(6oukRjy1cNI; zWa|iCn=q)fnRYmFe^-?$Y+`bF)=FR2T)~17UGiw_gUsV>@xLSbQ4g^=u{|@g|Bt{j z%C7~3%8fmwgo~UvLrenn_&_VFwL0&-ZUOXMD56>z(mIlml`Z-+3Eq3hlXQK(`}0_y z!VzTvn7s6?#qJZjX8bFFKC;3oEX6TJ{TX~%ggu~{0C_U~7_r)Z;) z_$)0x*3s7UEz|Q>IGNO0^KI&VzVnSkFVw}~2iolPAcBKfg>kYZiMtvSu;S*pl9=B5 zKy=+oeNhnPxY&|A)R-L{J1f&sT@3Rxb*47^Hq&9j?5=+h;$2(5QB+m{;XQAN=^M%X zkUxX->Rd5pK_AebA@K zawXn@q%8kFrsqq4?W43Z59rxxC$bHW*Pvz?&NQGrwA0P(rIyL@ybct|5ari z!cFvY8_Jw;-8&*@D@*>`@j@cf-DTK3nJQPHG= z-T&qS>~yEoD)Qc`F8bEqLXfzg_9??j^P}hPajX+f%C{-TbGvlRJwrnhwz{jcS~{hw z4ha~9-UZ&$7l=>EmL-dQTFH)mc+(djcF0&XPEbbfWpaTW#fgUP^E^i!McKRdG)z~X zM8i-BYRPhGC;1vA@(w${?)V@Go4!7QU}!Hu&ZR*MJQ)0qRT2*!x5rsQIrCQ!h-)!- zT52Cl5XuIq7TdX`$QO~XnKAGi51I|6QX$@rU*jiZG3GI{$NK-n+gk?5)ihbcmL-eP zVzw-@WHB>K7Be$5Gc%*b%*@QpYB4i2Gvl_NcV=Q|=l$`0u@QTJs6#h8Zr82Ks>*Zn zWY!Xdh^x7)kjWe;(-CmDnZAFUKnq~S!d&zhUrzjKfFbm(Jz_0|Tpe=I1?X*4m~SeA z=}DC1MgL=og?~(h6gtZ3HqMz;=3XLfL|9sBql2NI!NQ1{9#NJbIeVspS8HHy#?J4v zIP7&fRM9}h?X05CsOc1_gF$|C87>V$h{yXw=E8!t&bM^CXm&2WkL1m%P0`(*fAXq0 z$5ll{N=i{qE<<%k45s%K4(NtStYton`jh}EYsA+qE4{sXP6dC73QH;TXlnNXLlzkg460JU;s&9qZNiTwigRsW4;No9=^V|8b)FUMX)-P0y@Aq z=U20O1yB(S{ml)S8V3Z5nO@$e@IXB!;tx|=>+TS!a&Ffen)~6eQg}(AU)EJhE+|aq zPF`P>2$kx*AR1l@rWKv8UMTFYpTf)A11b@6`zXz3Ec2&Ald#3yU7kt3Qrl?-3GkwL zf?b-Of^YgpJRbJa9uXZ`=c2Y_WalbF5b!^P?L1uvH%n6Y-h(?=Pwwl#g=6%&f%p>g zYe8rVi~n4e1#Q%|iQQLokS`Z>{|PV=J6BAnT^cR(R3q3}<_eqFLTI1dxUrraB{~}# z3>F+Ui_q#%uuNesSHOI_^2xM;DDJ@{o13WJz7m5@J1XG zbAmOov^N*b{${p|O)T96HH(OQ6yiHe>nab#2|?n#EJbW z_aa?*Z^u2)36(S91nxV@8*q`-?wK*KrW17xwEBAYm^G50@jLjM%CCvwSgbico)liFYcZ%-BD*n$oQ&JEZ57DSEequU{oco z6Qn4pVoR5Qm?3?MTsXc*69J_LAt={;ZT2ugwGb^WiF7@WH=;!M`Niks!Kfsl>NzK` zbYNR4-42!hbetI6lGj|(mM*}9th&&VyA6M|3VMv4-`qQ_w!J%G==&ymqASV92m~ws z`qdYg7+<;^GAtD?O!l1xtj>Ws;Osl_p+HIl3*?S-l3h(la@s@9an0oK*vUz_4RxA5 zzPdiCjV&FazSGCzR;{yt1CY*_zm6WW4s@j#X7#Rqq|T2Y zZdC}%kxITDLBCWX>2TWf1q}v$h%%bf8{8aEF%$1jLwU)8z7b6c&i;8z0tCb6pIP>w z%5mV3ecu0^VgG#ooBPHkG;{qf%`W|O;>Z)V&B72_Y*}po5Lg|;pQO*WPb&;VYw0j@ ztj3uJDPE~DkB#fTN`qGthz_D>(RI177cxVY&=|DC8g?Vw`$&QnRXONqugho0CT8q`;rrV zE#dc1?i(aTA}MX-t?zXD?-`4-`*U#K%gGl-evH4w$JZZ5UAFJJNn{}jDLSN9HOFzOn;pYbdv6xL2DK669!wMr?^=O)a1L4Se z;eVs$Fd!~FUp$^vkSMeFa1Q~^Xsp~j6I-ZIk94@Y+a>TvXVJNe(XMwns!sTe>m=A9EprH(8z{27R;mWFOZ#_i;T$cN_*y{gsf_ z`Z0KM6w2%zHuF!GBddb>4=9g}(mb^9tN_ue3mRqi&xc_mctnzHL4HT(`kbra+!Tp6 z`ig%b^z;g=Txy?FqjNG+GiUBBQ(K-nK6P7o<^pM9S2*h{%@l?Q4{mrekeH4cjd~Le zM;2fuq-&atJA+p>Rt`0;meFWoJYq+}~7% zXZGN3C%3nzOH`Y4Am4=^?rPj; z!YFQAa5=l0ZFg_rD)Fq-f7{jOcOyi>rsg{b8TQM5K9ZB&umSl8@8zz9+x_V}3)$bO zDNfOXKfqzB3K%3AM34KoyvrgotNoyS(7CB;bVV4o4FbfAJyiMo!AHZo?eXlCYGQ`y z=2BxLx>N?nhj4b#hA`p(RGm!cw5A9x;$JC*BlpSlKPv>eMjtOl3J+FmNnXWis$p`u zsKsRUw)M9YKePCa3(c=tTu#}p`+S>e5FCE({nNa`>g)ptce28CQc5zZOjFN0Q^%M6 z7oe}8pn!^snxCI9C@A>t+qdTCW)&3`U{*0OuTexq1PTg@mX! zE_1>uJz~5hi1MN%`(_Kvyb*#@ymMe`$OhzEl>aiQ}J#`D@H`Wf$GnYxsXY zZ0@P`ISkUKl5&Df2<@qv8voP1ma*C9x8qxMkznhmnO+HNcjl-hW~MSm^3RXNqWyRJ zhd>EUTjM-`Aani(%zrPUaqyr2(oGP z7q`0F!k7FHjwf2LjA(2j=jCKBJ1Pa^2s+&ZDlwbGQiVnfr$cXnM$fk{v&K$ADciV< zn%Y=AHu{hI@z}wOJ06)42Dya;DZ%$nucGfOO_ygo%j)QO6BhS-DZamUf%GgbmWYjn z(69_}dM%eICjymJA_tCrPAm>m@i-nY{l{era+zQPkJh7Z(@jvKyJ;7qJI1sf}H9w*kdBPDTY$D>Id(g_0r;yfE869|1 z(crt~;0-n}#2-6AxDG{Z``#Am#Af1(QbSCr!`9oOaQ^(r?f(7a9RFeU*0fWge+WB0`;@4I8lnc~dBWZfx{sWVl zH;0HSiNM@Y)D&N=fs@%V`3XmV#GmN{qZposaS(E4iulWMb0v5DvBZAU zl+r-$ePMUb`LG_ilBW_aATLaiGm3|q`|D=$w+kPp=l=T5I$g!E)^d8t&xf>PT*IsaMtQ%wvAZEwkMk*MsxS6qTq`0CI~Z5>X-s zMHdQ<@fDM=mO#3{C^vi`Yw(nOQ(lbFzI+GN@9T=L3jo zSGUD<6OW`wsV7aaRY!AtKaQ8^6*KFtG7hO{G+=?d4h5!;xL6cVYfzEoHfFHbPKzMN zj(85mi6v@DtA{z3qdp#b=ayFb#R8%-LWa}uLlx^nM$|~%knMh>`R`il29yxh;>#pU zS*|s?FcVh}*Awz7#7EJfW|M1*9G$L7OA?P*G0|yOGB83CdBi?v2;BxLRSJsVy%;jC z;6C~wa7**zDvysygog*e$bY{{;geUjKg0`>&AsP;7IO+;`D?MTQUFycEK1n7gOn6r z{xzZeFbig32&DgC zStqB10UbBRCMkgZui(Xma5V}XgIxVIAAX)9-}l zr%}Dd7df3?(&J8=VTnU7Gv6x=xI6dwk@$iox!c`Wb8k!0w~3eeIn`6Q^?NKkubm>b z)3*uOnp;yLzJW#Hi%XtXWO$NFdR-Oool3Z?j+@q~YBV-be0y>tP^J*ri(Vb;RwR~9 zprm~=I(SHNR&*N3PxRqLk>xb=I)J)SX(4FEmzTK@PQFfoV;|OdVTX*;giJb(HH*fu z7xQhZITmrRtblv%3;KC#Q|#fU{s`*mkyp%|>UM2?1~BU1?d4wfT5*Fk`w+Ma^N_<; z#VmqpQb*-1?H-{v7*fTI6L?9oz8ug@6wJJbR~&G@H`9_mbwR6+8>e}yJ_$@VgOpFb zP2rsLQEH&}8IM@wSRWT2+A&MHOTkPaijhGyizxYxMCe&Jwx%1p&*0CiVTKkMI4uoeXNpHcnOWD=7U=}IIMSd*?^!3;?PQ_S1CJ3 zy`=C_9-%nFg5Lob zO|%N#a@2d!b{pEu!TnsN#Vr?qC}#>O=0tKm#G5b%YSrQe=3)Y0K=NZl-siyrVS;dn z42%AFEnd=yZ`QGk*}K;vel&L4j=5Wj02ZJ2!2<0d4ay6c{EPyKcIk^Ku63K)J5!U& z5?*7+uzx`SCr^C&^zxFEacrX!Lcljk+{zg)$Ljc>t>Z~O;iG(k3vRQgWK_N_70|`P z{xD$IVG}0HZrfRkzzm}8lzO?+(_A*x##~~{Nuj&1n9pUJ$O|01Geu@cLJ8$H_=197 zX+{-MWNG{svBI7-^0qJ6XE}J4m0bBWuzw(J#9v&T&GOV&ysoQj(o@9-(bizCZ;=T6 zOI7YqtX{W{pCsh;rkk#|c5WBX1?o2`-dk31Xm-BNw(aP$nl5deJm4m+g#6`bPL%fl z%VO(`Hhythz1ZIF1Fh9>EpJTHySui+1Xvf~|1oL2Y|xX?>LPwr3iZcmScO*3wod`- zcj}Zut6Vk5($_JiaJdOh#J8>07+ytJatdoHAM;R`K`XlXjr42#3@U!VwFMwlJ+!z#H=oqEV+MU zq@~Kd%7Pv@+q<&FidCC;S4}j5vRY9DiG@;)vBlv@bvE9=pj?#uW2+&xiOITG9Ks=7 zkHL7VKw>04HJAh5Yg=@2V0b-uwkq$t;%) zYKh+U_!E3;HMPiu%f0=d@$!fr_4hXF5hVT6!qeToe*GCzGh}+qAVW8>eo+byp_Fy_ z)?Yy@1eN=HC(GiNw|g%|8i^p0juK&3>K(sF0Dm`(4U9$B1NrS8bw}BejW)cq#%e9D zsVeRt-(;amV+`a)qIDw7*2g66b@m!kh3+-%cU{gA4d0&YHia{ZxQIV`AD<-XYm%7F z%xY9?!lQliS(OzAEgj~tP(fI(I}>=lplzN_eemRJu3J+kXu=O?oh8Ec*nU5cAkDf2 zX#`+w*o^I*rlp;tW4qm42_gR!1IkMdN7LV)lBS2OW%itgQ%TLTTpB+6m{_STf(0kH z1I95U!c9s3NoRce(V@3xaq07NNN>BiOLPVywz}{yf35d2lkm;8JaVi4`?mSS-`lC_ zu=TKhA340blo2+kz)1^L zfG)-rWhWYrWLR_K5`w=`DXE*SBJI*GV7V_~%hD8Migl9}APq2UxkRiy*k{%kx}{RlVi@l_uscCDk#JE!VU-Co;~+Z)_>F-oK#d4K#)N%OjS8%A|%G8lIIf-?S`pE;H zn;dGNeX*Tcc6Z!DO(ENJunh-Ig#AT*$v z1zKnn)R2R3IU^7E52093Lj|{P3RPjx3HBt*=MWBRJJhwvu^r?<_vueZLF?Rq`GFe2N?vte-^4x z%lJF`Ms2QI4Oc9_WN8O$k?^~`H2Xsn#T|aJyv-Ka$8@RnKbWFQ4dvbKqNb3f!l0si z`b2+SWF++fw}IeogXPXu6p|n%$AI|YxCva-N#*A1=+1AX;OYDh;U4R%kg|0PDH2-_ z5TT_-CemDGW_H=(7yZCRt_F+I_}J%T(^>a@m@}}*tYk-AM@R_CZPd+ zP@gHgYKS`OmN7c7j|+x^fw^15)<90SxC8V+j(?bXtb!k9aNuD%^YsJbQeTeW_ng-F zTIv-xB~{1S$5b@JLv4nz`y25z_S!M+1qOTtV`_w!s%WYi2= z#$+nnjYu?N83A)v67)CzeutSJ&ayDqaOrqQYpdN(73c5OLVY$A0duhdO0>utg1@VG z`cj^%>qc~H$OttT7e6>$3AAgZDg<>WDWSH1`qN}bM}w0z+tFO|EU#V4Lnq63GO83J zaH)s6iZfr~(a-m1@O%?*@_LL1+TJR8LZk`6qRtO@Pm%6~A9aw%-z3T5R6pC(LaT=q z3v;L`x?XfH;QueWp^10%_0^}fS}F&yLCVuu#s8tu6V^)TiEph@#x;xI%q|#;qxu&X z0i!Y)Y5AxS%*3h;xdH~&_&pq~97hw#A`K(J)GK&Olh=Z|E90oT6xA<`I_1_m48EmQ zViaaDvOei<$OkEcAAhA%5}Yu-ycWZRE<2nKu+lOJ-D_=J#Y6A2Tf7X_z1CZRqhCNQ zVme}UD**+rRsN{a2p`5DXI)~-FQhSLI_KFDyX#aknhy4sr~6lqLVS2yGi3{-RYWqx zAxl8FLp>o0^_DC*gqWJI&|y~TyK!SCO-B&o&fV&Df^J__16yh_)a+ELk)5_?NvxZ)qmJ;0u}PVgD@5P3FKr=gZ+1z)59{A%n9c< zWUTuY&vP>=Gw$OOAq<9^VpKge6+FF*uA8G8HqEyOj?_+tUv+Cz8~-utVGVt&$e)UH z)hZeiw@raxIq)0z2yi9}@L#C3`=J-cL)($ZkQ@Eoy+{$eKNBvb-3a^|!1=JQ^LWudx*xw@L-QwMtUFlrpBv*PF0a|q0dDI}*0(lS2#IGwa1`+<@};N9 zLaNs4STu-~Z=F$Cs6DG*2m8NRIQxYM8O5ifOHw3OzfcI+cJpW6Sefbi&&9BOe|~8M zt?%y2XLqtnGw%Nu(3J$+wXdE9-=hO(_o0!!fxGT5PV?L+edg*W9T&PX^}R83KF{_3 zoN&2R50W4bkw67SQ6hHk$zqs(H z^qj@g%z?4$5^JfrjyTVUp((l6c1i6%z*T1b@xokM>ixKD$2f{p#v4(0+6hj&TOr*s zpPu3yZ8G}{jJ3jpo~{7Nvl?<{p?F_3a-FrOQB?o=8Jzqhd0;Ldy~>C#oZSSPT!yIT zOu*n2_U_r#5|3biR_<>gTfBP`E+;Kv?-b@t7E;v{fk) zzJ$?$N#azde;~nr1Plb`79E?fI~v~rWwmV0A?IXImPsXMZ6G6ZNn?s5ho8(3DOL+j z&#{ri3-S2?13!z@Bgk*=3LYaMFh4hBApxfFOkS#%W3_v>JWzf+|j`MhfB`(PdF;02kx@?Lss)WQ6kqR@`EJCiF@Y?TX zHBY8G>`3ehGl<%LW8>!09&C@LyS#J2xv-s!CEpigZLuiM&J=Wr>9q+Lq< zX%#Bp(h5I4mZ+6eb37RMPKZ@y-TO>@ZV?b_TCXntG!1gTvsd&J{o|=U@47Mil*24bbOUxwM6LZGkekq4Bkl2zlVJROVENW{{R@2E z4(fW7t(0$48nz5no}yJD)z`e$Iio+qe+wyP0(`2mK~tB0LC3qgFWF0dUREEmCieNF z2_t+%vpoglj`FwnH$7Lq*oFQ98q_iDQq7;8dQja+lAexnGv2qv{KNRhJhd&Xl+&|Q z-ghz8Z*FyO&Yk#K|AdZCwA5DHMcdRQvfcAalyAR)nA1y3*q}{#T*<^>%0Kt7OXBZf z4T4Y=jR3sC0vF8B-VF#^jslH*{V0x$N~qvTa|P5VOR%OH(pSXcwo8ZtYHF*YS`|cy z?sOdzr<;z;T=r|w@|0g6pn*$Qzvu~C@q2WEaqDLgbFOGOOb2<)S0P<}NsR5S|o zV?WIy@~F(%MUsjde?Nn=fa6Km!RV`;?ebf+;ZUKM6VatmtYnye92LDY=Np&)-vYqx zh+xf%FojbFqg=k#Nn&#?H$L+1`g4LVQ8kRJO|-UvGLl=b48ZKnMZJ{RW_o)lgbl|b zu`10mTeg1Fl&ZNeSl zqh9-vP4-JEDr2mQ4&%ugKm1s4ZiX3zq-Dhu63%i}Hi(DA459~yFUr2!KLv>Hj#nqAMfe$3dk zCG^xcr+_eYNezJ9(b0CEAIjguo6(5sVt`lVmLis1#;-6kEk_AKEiE{H91ng@c#XK& z(nDs<+1Rzz$`r};bq$p%rWlPeQ^n%f6MIR#h~i|Xg>IyUIs=niR!q2{Ama9gm(ldDj{bkpD*SX=w=07)X2 zpZU$#`(&MCzjIvXspQh^4;#-V=D@xhD3pWnT9FCKtLFsI@6Ng#2#w4e=#Ne)aaOsT znixcC68Eo){W8vbe|?W21>h^Fs$l$f-d=9}rXc5t$tek3ZP=%KZeS8Zv7q;I^1W~i z@kD+{$xTenEp!8R|4axNj|G2$S6E$ikyp}u1_-_z)hf8QupDXA5%t*M5Tp>1^`W4lBw$b5v>85h z(mjz;(;EvEaCixB4`X4uC+F9KS5kMhI2egWVa8Ij#Mejbx+vC)?xiYg$l)46)6<1w z2pD+|Wg+oFCQezWC4hq0W$jR%v$`-wtSl8<5vmLu($c87C^BGQ-z0tP&PSv=$z7wU zvzO!$zM{kE{4Hs7*|uG2<4dVrOc9@t7OcJRlZ_nd8P{sBF>yAr&_4+sJRlH2L;pBA z7@lq8dw#XjLqF-tSzG2~{y3_(6G<%guL6WS8We0<5iZ{Q6=1s%@+5ba%^c^BgAiv{JQN)R$10f~m$E z+V5o)TX;p&cy7lz&M9QduaRCyiW&SN;C$UP&yR3kq$w^MNeZ@%p& zaei!LAW3sIgXia00;1BbOD4&;)QV-KrgpGes6!)f!oFP+A)!7G@(>pZ0&+?=`zV28 znHK^-Wmt1ovkWu}L%I7p7WU4CzS`980nD9vH^kOof+%}hCigIxk$ULDYE6r1i|-9qnk5|P9` z*v+G&(z#PNiT)jEos1Aq=JDwzch?ZpR{C*TIiW6!t)gYSgB93@6$H{2(`NVb5P09i zA%DlLS?7$*M6f_2G5yAi25Lh8i8!1nBF?{u5T*K5?*lBEV0$N*+`zAp2AzfC@=7?V zKB!O?3iMei1zf$Vi94504;#BXF9UL;4$^T-2b@+PQ)0NKo-8y8#*~c5dLGMjS5AH- zf3+Clt%!7GX%OyV5+d)FP=8zZ8E71DmZeEMq!5G6>P|_ymz;7?OZ5n4bh2BorO<*!RtQh{F6a}cy^#A%)z+=%~S;PWfIY+ z8sSk!yCjfuG<9~fV6El*e#gK`ah{p!x_D}oj|A{5UwkkVGyO*&FNnl$UHt!z7uwl2 zCwCDg!LVZk2LZu}M25JZfjYk{zTR#Tdn&;I_BEnFgT%Z!b#SQV7xk&nzKo9grtohI z1BY6IlM8f(6nwQLw@(0&X2m>T>V}+soyc=T@f`rIsU-uz#QbkwusZ#QnykNa&+5of zYpEEB_lCyLAwx-F>zZB*pRfpy}8?sW5=2 zTKWQYjVxhT+_7&oyYtLzP4_yKn{!3q{|WYiGj-5ah8HysfkBGozY(g$#T1lkNiVWc z-|>Sr5?mL9N4}2LiVzVxx0@3u1`&_8hjRcq?%nj*xxQ<8pe!yco12^W8#jb_p@W$Q zpnZ3iy)p29QNL<`>pGFTIssTqIRMXN%QZ0g+FboEYhIgD0}bVRNcWtnnRzq5#}b2jG2lowc~` z#E=CVW7tfX-iHt}zmw}XH!YcD@gSi>x{j?KvWwVBJMK0MP9^Hm3&>o3_l(Nd>DFv{ zP*`5B6pv3&SZI4_+D{LWtM$e6dchY6A`@#TrJr3NYs@Tc&y^Nq3P`%eVXmhCxE(DI ziD+$>N_rfVaoPBl3|Ivel-+ zKm}1L0JSG)_ZmpXQbUM)wv3WgIPL)_GH_mWti*{CCOlr0V=G{J;0=y++TOH0YQa4i zKf5Msb!i~+K?k}T*%Xo!6*Ag8I45=K*yzt1QI%mCmnmK4#0Kgjf8F~!W@h|f6x!h^ z0w!Z!I)4HmIasBU0$t<|q}Mm*|*=7btiYfs^D2Ak+(g zJl=Y>IRQ_nmfogB+pLP;$lF316$G9kZ9})W-_hdrq|x}7pHPL$(X2EHyaSG5L#9#> z!EF6W>}20cPn_CP>PPfw2*N$hgU4Qc(JXN>VjG@OY9}q-bQh5mJUE_kD|Ut`0Wwh1 zvDmZfL_of8Qh8mZ%L&0=!*pdLNKW00#PPpvn!G#^K(#dvdRAbedYx(`Qx=s7yFJ~7 zws8c6L0ugkDGgkq!yr>kXE{d;)8Cc6lW>m}G^Zl+EHcZ@`Q^Q96?bm07=L@52lahH@- zu)-|O4}6NovnJ8KiN_N=wYSG0e3u6=#rx6>`lhUr<39_AsdR|O9azFv6ZOZ{Tq>e= zZkCeGEVz71pkJij9zm)@wFmNbc#MF0Vm>$hMTVQq>*4YG6bEvh@Fd=(P#@Yz#8cXG zc>j7U{Z%kpKWhbk&P!F`k86AHOw)8>OLeMqydA_><}LKdBBW#&)D>^^$l}ieXCW{! zeCfBD^t6`n=<_Mx{SvUz$NMi0?!N-cz*~|3s=oY5@qAwY@9)pziQ-*6)vM9N5gVi{ zz8(C@iw*`Xu`7F%HRDhLmzU3I2}__RI^HKKw2{T2uO)e(;qw)?*E+2wpcp>+&`LtP$$HVpJka$v2o9kaOtQ5$DfCWYdk9LErDD}+1sjXN=24iq$5aG| zjEhS(_(KhLVe}#4mx$02>P_7GHRFyh5U%*!<{G98y*m*5ffH6bRbhn0&86jOZvnS! z_9h2+u&6h^xIdRL8m%ClVOD8soQA$KJ^9rX4>~EpBGflWKRvKfZBL_Z6KO4R>zx(R z+;4#?-4~(;Z(x9HNg^>%@TvilbwwT&QyZ3u5f}EOK9-=xJ-Ix`ei<{16$|f zbQnUQW~DamcN~M-WH}R32pEVjSzO)n-y~*;L_~>zJB5F!u6{f3x;iJ=3748?GROQvdK)Ly{aA!TNEu zlfmmwgn^{kM+5s0qG!Hr`(+5E>-v-mmEpZ`ofoe;AeHyI}z3-ZLD4T^GZZ)nTM$ikBy#}hE$CjtS!>E@v9I7pMrjiI@@ zxx4#oZxBKzr&|K>RZ~))&(~UkZwq{9;J?842lhft%=Zuhps+(?MgdKxFflYK%}9z{ z+Ft>}%)p(lH0-cjFpE%|(tM5PASg zNGsSU^VNp4Cs{<`M#hEdwzuU()Js+9B^C!~rHlH~x_W$CK*47b?;ML>q64C#PSVfV zoz7RA?G7yE?hB`&HOpA)P|?w7A?1)tv>~_1`4qy*$SCCP0ct2*qRF|sY$Ugo6Sl)~ zc#O11qqS$iV%>(Y^MLgMxlBqt*tC$uT4Q#W?7tmXnHijc_b49;fbHsTeuH8 zx6!$l+tJh0l!GMjwV~2MX;Yq}R#H^xMwF9R9{oX}A+Ox0En31S`Hj2Q9#yjdS{32J zu6};nY|5ldd(e>Fr4m(aT$Q%ovSQ~sWG>Kgw;WiQkvPG%#8%X54vS^nB;(<|$PpSX zn}S|SeZgj0cxx`*XuX5D9&2l(nzbYuRQ*-TP^(y_D*3Z{vXs?QU%WY~3`#d6ILFcH z?e{ZyOE7fMfhMP$1}KPyBUw(zCXm|HJ2;n{nFElM5g>P!b z-EvX|Z>1MFp4k*@OMb7i-fX>k8vp^)H#4UGoKy-t_V#x42W=bdXXr`?AV6-m*dCX@ ztyy+ZbIo5r{KK1zFpw>BImP!D*R?Le%P>T#efN4H_U6eezBS5jj*8-u1H08NVIll( z!4~sa!vEv;NG!5I`h!4<=#WNFl6y{yRPh@pNjGPuk-RCpe6hiw`|gf)v_i zQO{D7GsjepK~dlob)xvg%RRgQj1~`-5~ro5NwzO5N`R45I#yxtDp~E3Yf%;WtbdZv zEe1S>Hs@EdyeP0@YfOHpFinQ*=Kzm&Y?^iGdIuldZ08M#DInFdx)=eq`0^zj zl<`%$r^J&co{g$SZvp}K1!(#W2O20$d@FC_ACpmoe@e;KqhkmwRC6Wopk44;Wl9S= zCZnT`>W@_@8RuD=U7oZ)o_4PYKQ&gHw#~pscx_p;0Bg_QVB!pld2O?3?mbAWA9@0J zIG#6w{xjnc?Ah835Yiu?dtQCyv@?pUUmGVIc2Na2Onu{PHqOCjGa! z9MJ=0pa4dOJnYAodsWqK%HyLk!FVI~$y|Ggw93N#OCLKHfq)lFqyFFc3}~qzv-GtO z@Lp26+r3nxN!LZzNZ&J)XCVh!*yP4Vq*Z>v{C9Sr&hZ|7vjlj4XFdpRlVL|=9xy*z zl8bEtAS)%9RkBi3I5EYbDwJVQTo%07tLD}kZS0p?^7Bw@fifU|3yT+it-PM*_= zq7Oc@M`^l|Ro)qIup+l0Nqt|Jp}W>ECXIC(cUlbh5OE!^Eo8T~w7@yIKJW;6jjw$8 z7bccw?*?n%x4ccyWBtW`y_$14QjM8YxBpBqyfz!K7VP9sbkq)Zpsb!nSCU8Weh_Sgyyl}z?)@I+)*@Rx!zJ1 zjx6`K8Zi?FX)D5?^uiBPRs&%T5Yv2G3wOVb%+!KXFXEpK=_r2myPmdmaJ5e8Sq6WT65+*YjOn_a2!23$6x=7EQs%Q|C3JTeeo?e^P0|2NPqZ7 ziKwD1JG;C%l0EmE=if9e> z>fr?=?P5sjwC%bFeWZJzuM(d#cB3BgdH}kSj5>Vhfg^tw{NcE0p*o21;x*slrjfP) zy^-{<@O~deY$^sO(nB%PK4U;p-QgtX_k5wVpj!jV9nG#qxFyGSiM*Erlgx5Pt1WbmY6t!{OFPG@=RFMMr9 zM7^m~a*?mj@WWk8#|}DE+2SIe$^N0MMrT=V9S7$l`LD^cX%?4?VXKgWVa)?P9eSth zf#UxPRs@zK!u?NFQ!LHlR!K}~_4LQ`@r*8?@#yxlB4SChZ0q4tg^9tmd#Up^zv3*_ zZX?0f)^~g)>LT{F!QE?USWQ%@!SXlU(#@%PpW=j@*gWov@O#7c;WCe9Yz6(jh1#l5 zP@ix#a6~r0u<_^s|9tt<@c?4~-o2&c|4PNn8vo=@YS$NRsh$wd zR@K9T^u89Zsf4y+(BMx{W6uM`m3|=>VLM?w9qiq<*zd+LkZ5OF*l7@C7Ury!Jlt|3 zphijZ6@s%fZvQH4%p|`{2iEFbG-@iavlK-Yp>p-?v(m-}&E`=V$s5Tj+HN6Wz+~S@ z>w5pDgy$en(V2WOV2(4BUHx}ZiT<3$_01x92<%IK7asbi5i8XR&1(*`DA}{Di!y^dk7(KMrVp+`}qQ& zkAcav#o?*oL9Iz&rCFs&3RCY|%i%WU*76!Gin9rM8=KeUA|>nDsu6`{$T~+>*hz41 z=*d#l-Ss$-kDo0KBQVlBW}Z(}Grv9`hVtB+_FNBRN6}iYwtK%-^f;%qnDJ&xuo-=| z6noXq0|OEZrW0A~eJ{6SR#(MWuKZEI*mCNVJkGZ`zVbtgoZ05OT6kR3#PhK^^d-4; zf(g9&BIfktQ%zPk`sT|9bZF|+MUKC1j5$)heebE9t0!4FV|JR^z(utz>C|ouw&)W}KUSu%mvC8l=*#d}D8>21KG!o2MQG zs60kO5t=Z`H*e?2e%OPeS9w$oVa7&45KyT#e#LRs#qL?9PJwt^q zFQS87OJ$_VqSJ%`A)hX0gk0kF`tc*M!K|zxuf%M9H1kWy+A!(dw)iC#vNWu1YntrYtGZ{_-dsce5LR*KwAd z%*o5|Jxx}Ja%s)XKO!pLI>Vi#aF-bj4^|WK0#m*I=ng}F3ODfA+^DqbFTj-az7427 zuVt8=uP_*zr*i}J`k#+1Y^nV-M1szmzjz;S;-RaT`mI=TY2;bu@xhG0k#FGrDM}d-Xm;I~2koKk6+88f`jG3Y? zeO|jkpGd4^C&F>AC6*Rqh-j(YihOL9hG9<>)Hj=qX0AY%f;WyfM%jup?kDA?@v(fp zFiUWjVIfG`9BhclJm*I&B}xp;Mza@-vV)3jaD`D^>#;vnZ*%Z&SRFPCp*E&W)DLi| zKl|$KahLWdxEt_X&#qHNK$C=iORny+IWN(#bWY%;&q+30&S{WGf9J@#4JoS__%q$s z_7mJ>nBG7@B)^X3NM2iZX`^!7iksE5zwh4RBo3zRw#mNvV2DLxGzICG!q0@CM2KO; zuq4voXVWp6*!C_vN{LkoNnqy`@}_4?2PZ;J=%X{yv8Lg|qrvBLkr|9~RV0x^ z+X#PV9Kos9nM8ksAh^==r$Hs4rn;S+QMoC>E6B*;eE4p4uysicX#%AAcdy=~tr(sk z;h)%~SqGaI>Qp+9#mc9Df}e_rKJyR|KoCd*j}0a~x}QO(Hxi%u7}vv&b$Ig>F;qW}+zedWnr*?NrYrNQ2>iWe3qM2&OoM4(ogs%cx5X++b5eV20c zB3#=-d-k(=-|Xb2tiHTCThwuM>N09|eyw%*sTiu@<3w<(GQU~<(wI&=Q{pmJFIVBj zcXoD0;+)=!(bOzQ^>){Maq0UQFMsQZnvHnrL=|37?ZGSQBPV@0Tx4NH`%7H~Jt6wt z<7S8QwDqg4Hl&TShL zzZJa^w;QnD3ZwX8QXBZlZD%l)LZTM*8@cvVOhfk^nLGX$XKxu4SG0ADHtz23?he5r z5Zr=0!QFye;{-8Usg5JIN>NRD}ImVdye8gKP z`C(wj@nrcAQi+I>m~LOPCRc*3M^>k+z%h>jD({iCzj3Fi->v-*RIJvRSAWVec_lt( zW5#lR5F-W4t(*w+y=GV}A}GBUb%12vQAYYAM7m`C?v9T`U)s_^`MlLU6Q@$I9op`tt3%BILm#u_qL*sr`@$nBq7w4A_VcWJ z;RMztH)9Rv>DJ%H_Nxc;oPre@&Hw;m>#jtJ!FtCVqXhhwj~?5tGdFR^&G!x8o|JG+ zpIrTp{Pj7KA-;~xVHOU9_%!8R+8FNXmwb^@!?c0)g+E^}B)!+WedUVQF4tQ7oixt`*3*DKyUn=&j9h4kV6!3PkSr)m#IgQapzT={QTXvNU^h4VZ#U?g#+%HMK)`4cdIu`HK#JfEV$fKadh-vUI>0* zbq%M|*7DXWe+9$;4ct+3tYr!{4Px3``c-G&V8`j9NZfRh>1qN@c|-1w$lYUm~ZE6SAyC@vhroiw%_0>PQ2#k z`8;2aJ3gKc^M2b(^Oo$?>QB~;6ZFqL#}b9*ee&*#bQDe2Yj%h{>{b9VSCg04{BNfj zU%w-mn%SBU_CwX4n)GG8woAjkl=@n^ie$W6`oa=(dH%2H|Gg_EvH!)50FxumQtUVd zmfBLJlpl_7aG#?yeVE~_o2+e_KN@LEg})CjSsY1i)v-biDQLS~L&cyc`LmpGtQQ}q z|6*ljr4rWv#1Q3R)UBaF`!{!=$Mmg9Kg=6zTh#A4v4~-=hgJ5$xn?C4M#EEKt@+KH zXy$6s5ic3HX1*z$r*?0q{b}{S+OSo4yE0C+f=?@muga+FkLkcNWpS0G$|tPPJ#AjQ zI1Be_B4JM4%5D?%{K z8TV-(S?Np<)Iq$>xX=>t3@uIe6C+*zG)lK8Gc{*@Wu$l5Tqkg8rhI9>~7OVhdW-w(H4F_=0m&T}{{ zKYU<|VJpOK0FTz{Ubm$Ge~Z(^M)YL2L%X{%>ck6OpI+}m zpusm6|125}B_^4l4drxmFtN0>^!WG~jz%WpbI&XwAi%?Ow++-&{ z;Yk8dBizwd*5j~Wjm^QT!n6HOcDgU@SC~{n3r9iwG2hiuxW=e?GrT7($g0A76Go4T zhX7u@)0R2FR*VzMdee;u5h@|p>F&w3K!D560?aXEQST< z!M84m{TBB=49M~RyYt3r;w{tP+HE0$%pvg1cL7SHu5#6(*70-^r^_v^a2bgjqjMM< z3Ml+Ml7>c#-E_7{^}%+iqZ%V!ZFO~`eq03r8FB zs=v%GvaftFc66CLXM1vR@xW_I)IR6tM*Oc|Oi1o_SMI1k)UO%7|7qI(ZLGye+FNo` zo^sOBF#`8xZhZl=Lj2@{iih|K?Uh*)4(Fc>`d=Nif8Dl!uYVmh6wK1C_tdML=uk+U zbzWCi+<(RlUf?FerEDZ_yFV?d9g_l%fAO$4eo>!8k^R>k!0b$b4VKwXDaRPK>&Mk; zuapd7043!_|I5*Z>59`7`M)KufXHu#l9zHrs5-Ff)it{|TJLzNXLdk(I=J)sxpiBs zm;%r9AG}52zfUyiK_??)`2z!PgLOO7D==E8kf8krpC-WAoTzQDI}$MBHdiP@wWD6dC>eO-T;7wN;{wPBWMD7I5G-V7!QJ4NblB+f5nSr}bsoXearD_2`@be) zBrd$saQsTw{bsayp8J0I`L?KaKKAqS=l=m{w>NLlZA`;+=-{QIG~1U_VP9(8vA{7$ z_{yiSFkYPvdb>GNs=xcvol5=rKPZ>TkpBt+90S%DBZZCacty~&+)c+*ea$JPc~jQl zJs7O$$`YG;W0XY)ucYL0)t1lUb#ooq@4cuC{$AevifjCK0ZC*5Y(J>&4D`nlz;1wu z@Hkm`_kUrT|G<4(t15!rllIUY`s_( z^5lGFH;zNf=XVp79^rG=L#G^H3qEg!n}6Vi0`KEzQB?L&uP5$cTWeblPnyH#hmHCX zG^2pS+t)Pf3wpEVxf`qKJVaIo44mVkv$i@Wjw_aVD2k8>)UT=D$`<8aS&pL0K3^!f zQlntvB;x|M+zq;%N3bQiqgyR`Uj8HyW#zykZXE--SY0GaNwd})+Da4aYxe6zYezN& zKzsVvWGiiLxM)M&8z!Jk{S6^7W&^kaQTmhh5634#rm}wNTs24OeCmHgFhU}eP~R51 zDl*0LtA6s3AF&KXM2=bLvlnDChQSBXcO>mo=G;&ij7Jo`F*kAZH0eI-9K&2@ z1BRpwj}`@mX&pK#ev$6mrMlT1A9w_&HCw@H7Rijo~Rs z^TN?}^pW!eWO?TKdx>5L7^M7^sS(Qs zf36rype@f;OLt}=5t8>38qwKGM@-BG4?{;(uql2&_xLCGdKKj;*~j9oGR^-mpyW&? zp_JET6*}?!TwdxY7UlWjDHNJQ+b~$$+O0R94Sep6JPjf3A!Ct{%;aX|6KDVE-<{V? zwX`4Dl#@R_!GW7WH1lIvcC*4!SIUwf8aG|J9ue(4*M-W(FIzTsjWkQzWPl@(cgI21n{L6yV*s;@py z{+YJQBgg*{oR;nAdXpiOE<&dX3b0Tq=fC%1C&B*y5c*r5)j2U{Ihd`~lYPVf=fAgF zX{_tM(NWmt;paB;WZZX%r+mTm?P6xLs!L+GbCk|u%$?5GrFhx;8Du-_q4_;0v(>I^ zw;pFu6Wq!hmrKz|=8&d#T6sAcvC*?e2xh3HH-YDPs<`?E7WM(Ze#LF1u}4x5neQRY zC23757G*E4QK>G!OqULrz6jiB9nGl9X1+1R{mWi<{zC-*1sWUNYVb$l~HOVeG-t zbuKM7=RTLY|HP__@@s`moN|Qj%J-vQ$?rCMU1^2iz}{u|0bIk;_ACn!toB}D0PmCM z7a0SsA&7qfCJ42FZ#dhuBGcdU!lo?#Mde+fZ+R;Ti*v9^H!sxY=)V|#2T6O{U*Fd} z@jV2x`)Bt)5GKKqA>{wy(F?Pjemn1`ko)(wmhOQYgUnw!dDc3j3V!}f2#)gzK*`>; z9n;hG1xptkuEyM*YOv)6*mUvNqdYK#b@*&3Q8mH4mWdy zY|O9c0Sqxm?B*2@W??HGPxm*C9@zCETrOa!Q}eSd`-NIhd^bOPNpN>$eeOhYmuzC~ zd$9MvT-e@5Ihaxf01gY5EW&TkM^XsP~?Z_kPb93e!(9n>TUtsu-2+hr}5l zhZVm6$--<4s{U_Lfg@sdoafS8*ZsLD>NJNZ@9!O&5;?}pK%}vRA_}DJW^s2J#v7PS z%c$&8z?rw!?tJ5b7@`F|1mlah^+Mj}BhcP@m)<7AbrAE5vCW@BGg=N4GDpv*oKUbj z?&Dzs%XY5t>mi6F%XSMoFYZ4%r2$f(6S8D_n9h(A?uj)ALY|zZI9N=_!4%JqAODWK z=)W>P_@`2|d{=Yb!ak__KL16@Pv(L(NM-(l^=C>vAZcHiU+nugTc|aJiLWO?7yDCw zf1W*;cCX)nlLeLg9lic(?HkcB;QCU!=Ch_CQE3u{X7&{Y-|5mtlrqkz$J&#Wy6>bv z{>nLGhjt+R#-O$OYPrWj?aOl1SMT`NxL6D|q<#J}uL5I z)*BX_XYQ~WJ8Ep2P)Db^&4)tY8@q?3HX>AaQ}ToA>bqgaXUf=&O(4NrOz88o#DPEU z@*MO_`Ut(=aiu96hV-Q;zl6|6k0e^@@>+9IaL!DA4{vP;CS8v4Fxn0mKd*>)J43|v``tT>C450rZ1)6fF`C2X34=2wzw+dk*Yz*tu-s(2PQ5a%%j_01_6A+*@vBbadj9` zgD494Q#A;OHzUV8UK?GuK4W3hn$Ja^z9#{U0T8fVZC{IDy|vT_CJgM9YO z(ZT3DynK!zape*QSvJ`@;+@t-p*u!tgxY~tgNLEB=ZB!gyYYxLuAa8TDl0i*TZw;u zsCn*=M-xNkv;yx2!_3eSBRD?s=k04POXIlZXRe?6$Q&@>w7QWU@S4|k5t~#A9*MQ# zzB+EFD1itaUkLmTmdHv_vXaC5Rp85jE0)08wFu0Qka3j5D@4yEr>FVOjs6KD5uJC{ z;vCFczIoXNIq(KTs|3_%?fD)wj61l8x4CXUbWVDK1SWMX#_Td!8fb=7lQH89LnA8l z)mg(g>Mfego5xd^IrUcliY6>Rmp2atJj|yqe-O6bZuSKB+YTfJZgLK0yGC=wpDyx0 zT_7}B=i3;>Uqt|cz2e3Ik!Vi_+0Dw#12FQFuq9e~~l8E@G!GFkq_)(z6Xc+105Um65LGE~y zY!NSeC#Dr5QXQ?)=ZOJTr^KLXt-kI!=hR`0uqtQr5I1uCeQIbFT6@&XrJcqbd{iQHD z0J?Wr29iF6&wXy`F8kd3_TV1x?v$r8ht_XU)}V1OY(?|YS+a8m5H1hB$o$#JPQzRIMeFUWlZ@JXR!M>inW@+ zvX9{F3O~dk1c)3Oir*Bxv2Z%1y`lplh!tc}7cSIczuqFSLmKn*<=zT>zKT^e47l6J zYuR*}HL0Fps%?Bu(Rwe){LP6Dg)ejrl?_Ks46HTVlZ6LD?bjgy$vzv~aFp-6a(*eU zp2(-j2%_sF2gpM2ib?l(KJOr5@x7fKsgBjQ_9Lblx!Y%AK{5As$>_<5LSkjYN6Ra- zi#Y)YAq(s0+OGOBmyw0MF1l)YGr-t%@P$8%tEcg4 zAC7^i9vhj2&QJ2&*3$`z1u+4LvznMZ<8bYPKRn68H7#^g<3oI5`n)WxFm=@J#_>v!SY_Hjw1R>R@Rrp;CeT z9P&87xy)ioAU)!N=rDWX5LEy%$n6N{EMG-HoY3u|WvF(<(`@to!JExo(ZI;l84rYr3qPJXv7UtTrmLy=rZbe zV+C`3K%uqWciphWtw&#|$ld@;hlK0CEAlXKTlzJ&Z8ZYy*eX%kx1C}mKd|^Z?iTdu z9J&V(=(2BX(=2b#Li*`$jXIf?{&q7R;6Dlmk7ZwnxDlcvL&_B|SloT067w`hR-)_5 zG1@dwtE}m?h!ei&zb-fGd_S?ZR?3XW9}4-d4_HGhd}7bRHGB#_@$Mr|hakoe1Vq3x z?2rpXT-rF2EZp9XuYQDY_MErdx-WYT-AsypEFT)Wiv=#pC0Is7$;LApPeCqaiDUpB z9|OhP;jq)=>o8NfAhA+?Vk^D%W3Z8^vjkiZ%6}P^+m1GT#<9aV4F*#+FYpUmGLgxe zUc+w=q*c*}WSa=N_&0ZR=^)g7cD-4C6y_J1o)0HbRnBWOq!bghY7|%|B5x@;#lvjD zRm-wb|;2l~wTndMvZ(K9gcrPV{*X6g-%`fWv{SG&fMOD#6 z@`GqCh%*1-OyTErj)cIDgll;zCIXpSS#yzh;6~x?KH5a=u)V9= zUW5ivm_g%zjVi(1`t}1J9>Z&3JHcbtCaa+v;IW?q60jGCW|s*J5cN5Q?I6>(E=du& zKkUA+)EN}elIyyik(XltwJmt7)^gb`)h!wY_`N<}!F<{G%0;J?#e@wJx2m3Ss}Vx$ z-Bo@!y*-*97^?5J80Ul%S95|H>&pn9AVBj>Fv6QsLIP3u65~VhJF|XMG)Itz{k$~; zOrZuiaMAgSM*5}+oD&g1D;in>DIX07Tag3#Hp9i1>Jo|q?oQ?1SDasL96Q&B6EUK~!%8s^fek3P%mnzxEE8WCkwQRYN2$vD)sb`F0i8U_a#JpcjU36TLIa`YLvHcL z;(s8~n*HBm7VY^RlH3;GDKQ{LfwMOP5e3#O*xl(gvcikB*9Afr^~A_)XeHR>uUBya zYo4!;^?H7Hqf)>?aK*eJ#Nz7Lu^r++5VTNe#dONKozsIvwcXDrYGR|1t8Wjl zy<5M#d@(eQu@CiA&F$^&)%+!HbE#!3)JJbRKg?&jS#ry)SHMb#LTo8=;Fd{`bqvK} z@dcD|ZrN*Zk`r#5D{d?TLN7G|0I8VvLh&a68xFn=#Ip555eSG9x-)T0g_OZU>7ki` zuxzcL!d01X*IR-8gsM6i`f#QOyn+m}YaOBWP--KJhvpa4132Lp1X*D#)py$u5(a2M z?~LK6DH9Fw@z$Uh(ic!dPETdq<)vQ9H} zt4{VsnDRgi0?L;*Db4)3kpx}-nN=2b`Va<-Kf28#tlIaGwAP^xk$B9V*7o?{-SI^e zE=vQQVJ(XF6?i}`iyt08qcfJxbOPyf;J36Uq7N@~8Qa>Cu{y=ZB>Fk_v%q8}JU*Zq z6$2-IZ7^X&TP-3;9K6UwE+JK&}bqkz5VQ_=!$5ZYND93k%Chc$cDJn{uH8QYJZkMYAVz5_WDahaW$PSmG zq=`4y6eM6;Rb9;zSvauf!C;N7k$JcZyX zhxoo1YF05x!^6g5)`Y!%Wp(GtoDbQym^z~UCn2J*V6S$Ndi48DrswG3l`G@ z1}V(P>b7|&qoj(O>}~DkxTth?FDVX__kz$mPu_<(hp#gx@RQ7SQq3LUrOL+p%sFpk zANOT5sEUqvTqk#EI$vjIU(Nz9wfI(RKD8Vsgy(vj46dq1ZN-D?D7pkAuFhLYQ{)1t zXyQoR|8UG_XUo<;zB%^ZHcW~LTE|^fgT4Gr37_E;oTv$?ssHcjp6iz7E{4{wmIW;zS2tE-;Qtbkihp9Uc&VARD6%pGJe zwiK5{I(OGr5RyaBZu3RJpJ#fm%)C^#jRjA_d@i$W=% zrB{Bs4*&8MK;lU3wZ-Syb@P5lcTVhe0=)Qpw?cH`r#+!0@-d^`V2ZYUAwSlV`%x)> z;eWYL<9FRZ1q3}O zEk_6eauCSmGxH}^It{*go8DtAJ{JuS1>x_1!S(?^KV_8rSvC<6(NB-;2hg<@h401p zC0pnQo18?%sbi~u%euSZ<5qB)a-IVTpty~|a|MNDi&6}891<28$ii!lKFmFlu?K`b z=9b^cy4#N7+vo&mAtX+{5DgX+a;`|^HI{>|Y7DP@B8NMo!E0zsQuxo`!=gF%T?CMS z7piz%r7sC+F{VrnE$i7(+*w&uiMDFn5zx=;c+u^^q7O#pz`|Oj?#+bPkk>Ui-r4VP7~Zb2scrJiFhSusd6IU(lIkV}n9 z4vCd$>fa>i>Iwr$%f=b7-9wairKr8#Y@g6c#X%<$>oR1+eMq$STknN2TA7>ML#rNz zXHcb|=H9c!2VRgm^?LMtxH=gTsQ|r=qW7Ig2GCh&Ecd9nx0q}B`K4f~#eph6t(TNK z&Qjgaf%#2*H|9Y8P~zu-HVJrJuqRA zU^eh`GV#bzhqjE?V+xpzPLf>_^&L+r&0uK2* zT2Qa9_B8r+`NZk*-~J`J+cXA`=zBkuP99fW(x7DxhOIc^@qF3>LGYP_`I%Oxw6m; zb*rDdC-IrAa>2wWAsvh03+h93OsNJF$&AEc>TLQInSw0<+R^#>op7GKZqUzW0{pwQ zoKk0GfIm3N33 zPosmKBFEm=q|>yZNL`N)a7pU9d+u>xwrEfs3NU}Mzkl7Gcp$8_ob<|rhxR{q4B)e0 zX*6MBA!*pW0~)xm-XK-Rb{!RBJ*@c6=#=HY-miKSI1vkt-RFlU7xq%l@L;h)j(v zO@&I2j<*0!3_Dz~CBYAqBxb{u50PYS=9(1zV>Xv!-BtW94M7Mh4(NfNQaPZbppo9 zlcuB>A!{xvu+KwY*PnE%HK65JRBY!I(ocmY>n3W9;ifPqs(m_)lqD2L=jP)BJAnb% zal?X_Ac%psw~E5|9et2jUw62P3@S*MqD1W{KeKc+{?*>B@>$cOp$umhp)GSX?nH^4 zEfQ5DUocee?a8N%``4REp|{&4G~wGQ-_O{hy-%w% zlI~wY;$N~KCxY)q_tSryOt5&Y{ZencDQI*;3Y9h`Hmy=)fUt6O{9>dd$g<|P$BzS6 zz*&Mk^B!>Ij-H$eG95=82_-*nHVyCd8 z=$K4asxz7nMti+h&>{RCDJz3;UxPhGWFVJZT}?9cDt9%atoa>RxA05^%H@LFa6wS< zFm^httjz$-mML5I5;^wF&So_x`z9@b_x@&!2|kaOb}oxXJ*ngfo2@;5aB?S* z&C7u}5HKjPo9)W{xP^|X0F)o3F->$G!FyB$30OuqNFe7-d~BCBetXhn#4%L>YsW7y za?Ww4o2sMli=jH1c1lArblt5mVYRG%%hBlJH+ie=x;MmxibRr@)SC=Wz^VhlcL!rS z)whxlYLuY#3UV2)c+?tn&0NlRcj`3h?rVR$i`LH^Rg+DY0~qFt`0X5IwKO7cS{22# zx7*y!vHsy=fq-GP&V}^{^db?~`^@I~IPCoS!NOvHYR_(RzE;zVrE@^sC-C@=8KsN6 z+aBd^MalS|>4RIwxIVW>@9qWU@c5=ug4|HHzH_;0hh7PeKNn9&lO#sHiJ`Qe2XN>V zGjE5fl>IK?;7GuUZP8Hdiq$%sX65=}jvI&~oa|;{T&K3@(;HrR_FI;b5i~$3WHXt1 z#e9y^STU>=r)Ax;HZ9M~F0b~&Wq@Z9uKIV&s=u0R@q(^(8&OUB>!a!9nq9c#g3p1X zw#Qw`7haDD4%S?{rsmIkUYv?IfF zi4Io+3H-TXn4n%0E*S`mU65DDS@V!wWtG?SL)_n*tnIPT>_Fl`HVR2T68=E`yI)_B zjXO8iyM`P(c+vFUGi_@FJe0oZ>5XAl5lsXGybx(R4#uDETY7|j_pb2_JxzFIqpsGG zwv#`6!=653MgA^s>#GdWTxJ4#mm!;4g+%|><++yDbY71VID!;rx%sf4i2;`6x-Jl> zly$>mBOluRnTbe6B^2e`;GU^+2C z7tIVyDhu5Vcx=ACynWRqe%ZHm==2)+#bjZ9R(Jyv+TY_+61>=P<6FM%5Pd#4PvX`2 ziH|3+xA5&3VYaJtHgt&!y$MmmO}}7PpjgZTgsxRM=eIXe*gG1SBd&@^_CfH(oXA73 zT&9wK_CK6N#n>UiQ%>Vl)&z~o=!B)8UbX~?R z*+r&@8xe$>#jv?x2aQe4c`(#*Lm#vflyC*SXW4e`E?mJ)7>IlzlK zHf>;sO4QM4VC|f>Y`!n$S?XxgZ~I^N!Hu!Bto>bXATW)x4nIFS(srBI$n$?bzQ4cc zk8N5o!S~J`g7?a$lPye+94+y>IjC;EUdrIIOdT_~B?hubiUFoGPpdtyYFXQEe^wF{ ze@}k`t^H!sDiwagL|-`NMTQ#N0(xs+{IGYGmD-=$*QiM!VGdeY*w^&k3VeZ}mZkR7 ztaMW!?bBSf@0gG6*dr#TDx3}_IRpLLmX1~IE`wod+ z(V^)+qXu?%oCbUBWM6n(7UVJp_-qRQZ2AM4dmTC2LE&3FjDR0cB@+bwebMO0{?|EMQ)SW2-PWzh~0#X zL^D%c9E&~Lz&T{hRcwFoNwpWCG^G^okDa1kYSMTh7epT7B!-Tdgdr0K5iD7%V{;KI0U4>ZQwQm2teufb|L%T8mxkKqoW+UO&QbgL#hupB2pH+k0a&t0&crc9om~9W``l9 zu7Vq!Zfb3|=){7r^r>Jc+K?p}i#w`NbSb4Kk)n_Y!3yEPv?WWSg zv=?aX?%>3?MMOr{Ck_zDHv&+$p8fauEm?5mHiweIEy_~g5e=R9lTd1D}tzLAkKjRsB z>*yIcF zd~6N(4X?x6i_R;lH2o>PDARDv@X4(z49G;Tx+l{#IA%LI$fYgD0A^@j0fr&`a@C7| z=dKGs$5|9jfzxQN80XPoC43$iz^U*zqX8~P;Irk~HupE62F^F7o7OXsT2ySQB zYF6&M5QtT4+S=HhfU)(KIc~UYSJ$dcmoe9!8ymV`zb@YdZ`kNpBtLilINj9i>`P=B z)@}&phZ*a&zk>Tiq@Bsr?_%g=r`~%?)2d=m4}}MiP5i8?PM)q?eUQ!6esU#yS(1-L zs1Gn*yMdV7)rQ}er+MwQVoCX^$k|h~UswrZD4}T7fd{6PjP`xWZrv;x;xyW~W=ke& zn`vi4eK>!a<>3MgO%Po?oX;6vA-8_c%p@ls{rU07htp-nrW8t<#Ql{ZoWze&^$&J$ z`>Lk4`FDB#yV$G~uF|gS10SEJ=42XNY?p0Gh#KZg_mr&!GWZIy5O186t%#zymk|y+ z{zuvhiIvoQjI-amWlCKww)atvplr9TlS(gQsS%n4w^UrlF>@$3-%CH}#t8Bk@Y_Ug zrzA^~^`8JQGlZ434dwbT`?6Gx83U%Gj6T0AA0W#Sh$C^lYevCQaMwCSD7f0)CJQ3*cK~pNxZv`RsLN zw)5yOWs&<{YfHn+l!<1MzxiER)Yn2t{YSHp=Y3In_{_aU<$oD~5!9c1LxLw7_f4g% zeP5@;yKZky4;A0%NjG2byI=m^RZ!ydmV1aFJvkE}4vMiSQ}z-J0R{jdd^IlL3AQ}< z(H{@5=A(h40tZ=}PwxwQ4ytukh3USu&|0H9QE_UD!EWmO9Ib;1yzCB#hDI&&${r6c zzrPTBJx&_sTwQN}A#PhQ&Ozhff>WcA#h`~^C$U5deg2#D27D_gdtCb}RiefK4_Pu7 zfk9Q(w7$OXFukz0HZH(6$b^d(g$VKec0!K%GN!4ysOYz!^y$%2-2$#P#HN-XiS!Ls zB!o2pE(nGXKo=25Yoa4g7IbHcjOYRb`$ycE-7o29YR#^-)db_H@FbQ5Hp@_xZVZPe zV+!s(yvo|&P_zArUqWMVy_Se=(?NmqFbnu0e?-Fcx1mZ-pK-%aZ#?A_5LC+zI0QDs zP;brIooV0Dfl$s)lT1{KTYp)7{x;9n_yncddQo|+zRvOoiK8y_Lm4wT|44=i20#o` zv`M5}E~E8yOg=oU4{6eT?T&e7EpGy?3Bc)<1_u|EjZ&weB*V&n==#}HNy))32n zJ$Dnr?yDncAxg|h#`vQU`0hcl z-m0!HKUD@&)96Dl@QO=BaF`BSRUeLLe4RVBs*bW5(5(h9ldhf~foWdTbTr4p%F3uf z?YzyuqMuN8lX@hsSOlgMITAmT^$W!zq$=b^Wio8}w4mSzfUvg(r)R*5p`TTLxaWZG-VyerI{D2U`jwz(#EKkO5JH7_dq-xLp4fs} z1=*t$2oMxx4k6LzS zW~MMXlgCz5UVcoDsam}eo}pxhncS)p<{soE5 zvw`9ovyHqZhDr+|3p7RN&aVz(X}!>=a52%!7C4M*)8-U$mv>C?<{Eg?f*Cc7vVu^BxkEEIaz5x2cV{@cQUHBKHEJ$vyyr3 zy3U<>Gu|hHXcZth0g-tN4kjy3DWMUp*&sXZJk$SW$R$|2@-XK zp;*ivZjg<)5bZ?RO#!yVm3e(=Q;<{|BH{d__(jRrexk^~V`F2%@$TilP)$G;Tb99c zGIxD;c6M&gEc*E92%uth3@eTvW&)vEoNS%xzo4#~x{$I59GmgRe-_^gv=gqWf7crX zBsu{WjY}T`VVHx(0{SDcsC)ZRjKz>+^$a6SUzfCCRdVN;#GI~{oefh*pOgV zP%e%H5T)d7=V??&PH_i@24-*NDf0J2g00F=(Jxh!oh0|kIu;4?fKGRT+KaSK+bFd0JgRIUP-kl}sVCYb@~Y!(XCvci+~?a;v77Q*YpfWx-nK~H^&Rs`qNEGS<9+> zrCLe->k?bG`@x?77nFR%S~f8d+tCS}4l{_w6C;xzSj=9ix{dd{WIWrm7wyZ>1C0gU zmo8Sw%N0?h=M^nJGEEl;)vX(F>s!51lfqrgAy;Q-XGPMn-LKb7CpseRqQkHp%rw1$IQ_1^`SkqGfH3qB z)yxBQWZeMAI0H?54&RBU1+S0bpUIvNIedI1q7;{};OynCU!FC_byZ6Y!j?n;V1}DV zrZa^$b-04M9%m4_rb0X<5doRzTcyF6Qb;wgtEb?|%Ad94iy?7)+5mM#cJXSBY$l!> zQM~7by8tA1T{u_4GWi;(BAvw<7UKn~(se z+D*?E2}5AlR~ZtO7ApG?srm|-p=Xsy8(hZ8J=PBPW6mqQ|*D z=j+ZxIUwPOHNH*XBtklDqlo1rv=`Xb9JWy|2zfwqh_h^>YY+!H`K7t;se>cJP@JBT zx2l5)GGju|TeIG#`>Opa_(CCHl>*K~16XC+I^O#e#D6G?_6ISyBKvK6cp09Z>$}ct z@M>G;%*6+m4;*)*ZEjl6@CI~!blW#?yeEI1Ouu?2`auh|x55C5x<({;jJk)qFY*Vb z>RMOEadzZdM!OD*!2>{ln||(jJhlscqQWi?T20UAL|;hXlLW}_b6xvF zb-GTEs8BQ3rC@<$eQK20%X##OG48brc^fNxaaKR0iFtVERS=7lW+(YyvK!d+-BNJq zjGRE_`NEb=%k+o>h8ZTc3VL@qh!cpe=C>6F&gFDc|TrTVJa^qXI@~s5=rI+*-dH@v?C~e>=P;QvMytBuXmwZMvonW z0dG##NNpzsO$&I+f~U+;Q*3A*JCU}`6kJlx%g!T2LRimHe_?AGD)`~hTA^Fey=K;mFyNSF%w@PeOL%+RrBA)&dT4oFUbZkZh~G)(~vPVSnK)zHcwg zO}%ExAu*Gpllhj!Wo!4Pv<7|SNr zA;ZUj1x7ypADYfGD6X#Q+JkGb;10nhxZB{aL4rHM-3FV%2_8JS6P(}#hup#4g1c*Q z=R40^_04~%nyGX4?(TK1)djhGN?dTnv{*2%GM=u3PWCX+C|Dxjs{3e1%Su+C>`7r1 z&#z+YpUSvh4*kDvDAaSLR<&cN4}wT!j#h?TKlLWxRb_}*sQYYrh$CZ*neCaAF39`=0ilwR8JG2t(F56-fjP) zV}va`7icQ~m9WK|kdhFMw~g_*|6!$jy^@Kbj8fX|fzuSa2%StiJ~<_n;%{k8V@(~k zg}3)o#>9$JB51!xB7R3fv>&aY>~I>Pt4K_=L++sgM$W~dQKmtfZd~D4;TostP(qqB z!BOY&=-r8#U-x~suY_tUp`tx-sR}r|;a=>=%%G0rUwt(aJGHi>WcjM`N0{D{#7(7bvOUcm&iD};f<#KNCFdFm=8`uTyleh z&mK2BvURB#5W}j%mn<)&(-9n~ZGSC&_b1NOCp7Ld!FmR{q%grD_B9upcw1CO=e0z= zAhb^|Q`IT!uD$JfyHew4fP$%FaGY_stPE{gdnAi9Fn839q2OitzFJtkyvOqq;}Pyy zT%97l*CyPI;uBu1Tko3h_B-a?!QBXn$3au`cdb?b=^Ofc=nEcZ-7w|`bOicd zjrx2+0AU{SF?`Mrg((TagUa)hi`T>)+jjeLn*1h4eb)WnUKY>0CH%+ubPXXTbKO6e zB`I{+{`Za%GTEtq1SN)!(GU-czZ~?xXLM%QZydIF$N>fhOPU^^jvF|-T3_Nt+-vw> zj%@B$?&_$}U1yKl5V$*MC5dQ=1v%~~Xy1?ir(qz8X_hVVG#JQ8br;hgFZ6o$M7cHG zM~@RUDN4?;PiRIycIwu2=hOYPiowxw-;hVKro9Jh4E7kj%6^wK`6m?A3vZ6od2uhH zCU%tZK~3~<0vad?3gtRDJNhvfAQ4-Mqts`=v$x{G(E$kjrJTpKUaNH6W(o9cJ6qX$mQ730`t^&QF-6t>up!@%Tsx*tiS%- zL1WA#l*2Gy+YpOg?Fo*0r+tVHd$=3O6WT2Pzdx3z48qTqF^C+y61^#$KKNNJLs&=c zF%_O%rViaLPFAN9>i7zpk=X9RO?KxJ;->j66$HMR=>D_ov13el#I(~kOtn4Iq4#y+%Uuq2*A99*6%g77B(=B22`m6ieR_WBMX7!3pDj7EG(FOi z%{EFa&BY5IpaJdoRGnt~EHN_zuuOIl6w_Q)jB_0jwWV>ICe_ph0*>B|- zN~B>L%M=rsE2j!+G*1GU301(*vUB|AyWhO*q>Fz>wk?|ApL_Qc>0{`XZ49kMjHMof zQ+*jF^#0^(B3ia}0sD5@A%?w&r?Ht&pvBAkCX7IEzg44U#dE|u-PrqPPS52rHI8l4 zSlMv6w{Ow~hiY%m{v@0drh!B%`r&T!U za?4^k@6COg!Y9Xf_|VX~=__l5TcFCs?1l=)t!j;aB372L*O3d<2ePz!^V;R_+;sSh z_9BsSJkzgm8_{w}sq@MNdbtTT^4Qh+Via&XzwD@;67Cls5GO5d{kx5R4*MA@@u}om z46E{r_hxw4ygy>MjSP@Ub{D!XR~l-wZ?Z(Dd7bp#nhaf@X3kv#ix|00Uwh4wlZ8%!XlIw)4i^xtycxV0W{^Gm*qjp9s0$TQ-5X3F}?{%5r(x$KVk6KA&wE7j|f;U>M6;aNDMO zyBw};0EI~wDK#Ak8rs%OP>T&7iv=-b>f=`&^b|o2ltpGbf=ov;Lp)!x~E zAeMLz+iq_cIraubIdx=`N7wOKlym>9>V=z=#eHMf1&;}_yCV#aldgeWQxktackfaCWJQlxCI6VoF@Va5G>52|LjE`@x=?ECl7J}rOy3J9U1a7Ai z;#neUrA&Lgr#pwh`aR}VL1=S630JrI=z8FrmsezNDi_5R)^aW`5 zZI|0)zwg;$8Kpezr%(VIrMAC?<$LvfBfEdvyBL*h5)SjrW>VbiRN|v|=`~S+-0u?a|w==`{qMOlnPNMO~;1S zs-(2!=Mkh0`4p0~qCztslk9QZLLBPWGiVYI-MI+255uiD>)(Z*a`ao)+>Te- zFiTgw_A6N9qXP&B6gMh=Xdfm2bleCM|E!3*KtxEC>3<=r2>9O z%=iiw2p_8Hw(A=wf(E*|urK6HJ*THu+ns;i?2#dsOdI>GJno~s*-*$ew?G|goyaUg zWz&(ryrbeK?&p-2xw7LNm&_&>3OCCUys>Cod}_Urp~ zK3>r!c03`V28l||bbcDilXLDuLz!mdV6Js53Wph|P-(yr=)=RHL&`gbuBi*L&gfsip~=&u(d ziO0j^^U)ETu7-YoLpGhcDP_-!ABmP0**(To-f-D-nZ3gJGjnWJNZZSfEvLyd?YC=p zPuS|6hanB>FH5(E|LNCUX$uDadq`$8_2 zV7T~DE-;c(RCw5+AhH@UiAsZ1RBuSA2bMezm_&sOg$5iI5ofSn0?{Gn(4iy_=qYJ( zdAndVi)Av`qL;&$Vu;uJkM6_by7GVEj`Kd0_b(f*_-dgZs9U%Qp|TohcWx0V0e_Ds z#!rVV$5>AZ&6ZeXpPnyz{7S_RJ-~3(R{w?T!)W%WLE@pVp~oRY+3qqjDx3qY$UXSP zjPNMrG}>l}ma5OlV}f`9J?F&S3c@iXD=# z;rMo+PCLGVd})IC8-o6ot~^o`kz>;BrqI;5{@mxT^YvDw>wdQ>;dN0ntLh=VxNLZ& z|6}`OW^QZOm9syU-|tOvGv+(P2)LCUhU;R44ep%zv&_qM`M29x2{ zKI^MckD*#)gYKP6GWj^;ht`>(wr#@Wk2=X$X(yyaYcLMX{}M^zx$;X&N+|Ep;ZQYI zDjzS#1c2fw<`Z+E6dSGdHo~=OID;nm7k%tjp{| zFdXuRB4K3EAW~IB$lX{r6)EWul{WZ%^cnS617g zSDUZNq?kJn+$-(78Yci@fluya4uBpW$(z=*@~uc2cD6R%_$@6P@)0JY$4mM)2|~`o z1^OnxAfCBZH*wjN5aimgnmlcM=R%!2Vl5J$(xn?C7KV?TzD!n6jX`L3lYqUT5V;~9 z9cR$F*6m(0U2mYeCCH*u;RIw$v7?7Dlj0A>e+Hu|AlA`09Le>+V}$i+ffc!BB|*J< zg^4hrI$r^qp)1%XMsB2SrtK#28t>8%VX+YNvynd(@g8zKy_40v9%ikT(cA$fLlQv5 zVAZRsnzNUR0zjglmILE?65XD2$7g3B+u56!Pi-2608ox8`XnpPVobu%;dEmo9}Dm} z(H(;F|3s&nF&r6vqQx^vf=9E`#|_7Y^${s1cAU-HH<2m~+7l^+$l%$b(UHy*Vxor- z=XYEvUjG`OJ|;=m>`+P-nDz&;{btFdmIUMJv8I9&IkAFk=KWi8Iv4d##Vr4eCXjfU z@_KoBSoU7D>kC86a;zUpP7uGHN(j3Cy8dF<_xmSL%U?uzZd7#d`0NOi^-){iDOpTO zoQtr4gRbvv4*w|%d{#g&f!z^1cFeENr4k?w)wQn~%3aAd=v3r^D(+B;*D&$rKUChWf_Q<6>F2<9{5xlgmX}T{`QyQ!KHFrk%L5 zZz@|+Z!xgb{%T2)=zySs7svlcn*~OLjOz|gqZt2-0W7%?VM)6bolq_>{fD%2UOC1cgCIygP0;IYAkv5l0fe4n=EwQn*& zlYDh6wlg4<2Ih|Gra_RCzdr%M+~CE`!6}Ju^cmnjd9IfHD5va;@zaMG;HkG;Ezq%1 zOT2_9qmNS!&INl|X+&E&!_$IYQ})|1J@JvMMKPo(qENx+RcYL)d@!3L&FcSPA;sPw zR4e#|b_^+$HW$e(Rn97#GEwT&7E--zx%`gvD$H<1xnk5xQODajV`JQp**+wa3bdWi z&P)K64zr#KM7C(L<34MD;=5QS;cp_-`zAo}y#z*qSSg}+Cp_MNyRZ=*&>iCb2&Zb1 zzqE#%!O?(i`vfp5i3ze=h`L2xCUR_ibnMC0md~IcTNzxs=4VPMALc$-GOC>(k$Sv7 z5T!ZjR2%%ns@A1EFk@d?8?>N~qS@To#PLJ?9g)q5j3AkTS#`30?9}j{*~YQ{fk4kx zpw5ECEXecebamB|L1pEBdZZ>U)E>?Og1FrLe4H+Y`lT8xz9jBWF=~s@$NBk56jr-S)(l|T+8*|@)N@54cdI_<$H!T`c6jO4|BbA6 zXjSW0&bFR(T#Y;U=XKdtc0QKg-Kgd@PhH!QspfU`;^PE|^L?!GdRT!k7bP zmqJwtOI5HN8r3AmrK4u^KM(vK>n*EWtpoZ-groqhQbAqgf_z*GO`=vfpsty>UqisU zk*Olu?<(<4$7@fqd(cv}jzvh^9Ve~TM)b9915SF#fwjQi+QZ z(~z5_lDJ$nK2T|$Feciuh(~PKrdTn&nPlSR??hVaLLaJ&_}bj7n&a-bm>D&(!{oe` z$~IpAb$^N036m$aEdJBWk=hjiLgZid+!oYTl9DU9BW6#%u%=GFcz&dM`~qy4gF_*A zeMKTNeOX;jczynMzPA5U*8}LEM6K_{*4KEPxAgaO`TWbOTk=HoaHdyu`?-}4Hv0+- z#3p_$-YS%U6qo@u9p==sdYkJX^th-F4VYMMi7PxPqLSF6c%l%sIk_*2fBp@JLctjn z(8#c$K^O-iMOyAqOR!BRi_p{3WCJvT4Q@qScoc>@NH94pXuv1B@-r{ndE zUz^ty-pj8iGwN&p385{2-RqG%1k`L%nfjQtR2r90wZ^rA0yo2ns+yV%oSYtw9N2jP zGLr6VldckT*unAfjDi38hyYsTuUWBwzu&)+Zcj@Ffg0z@oLgx?lF@Ovk~=e1TIb`P zD2Smk9jGNN6oBjS3v+A(3no4@N!RPTeVH6m9hQLFRK+m2ruP`AmIHIdb%ZB5b)$HciTG9W z2t_vBpy06mK20zkJpyuZ@;6B76Wg$batpDhY>oCLr4k=kTZ)Sjp6R!rm1f^@4TyN@BX0ew#MY#x)%++fDNdG z?8a_4O{SV?s{#9Q6K^kbPBvq6=)x(|i!^X4O6m1VezUQStMSQ*qn}Dugl=X(Ny^Zj zcRrs*LRsJnbqT1B%79E4E1r7$o0;X8l?@0H z4RGP&PWANs&o0x8j!Pg*GhhEn-zg9-xkux!kasNSX1;D3PpTQ2G}Z4NCOs0u8V#m2 zrd?$blPit^3dI%tMEKALfugcUQ{Pfq|r+k5yjK2Y)m2id?5l^d%7k*C#_Ht{$f z?6c}RPM=VZ8P*#nS2T4PtmYb_lmC@3BX-w-oz{0BgSpro1&qtpfHNzR;k{s~MblvE zj@LNuML@P2hB4UCq7soWvZ~jlw1u9Cea+Fio0i3&r>(a_^8Z46wntMdaJ{eEo+?FBqk@!pu1n^ zs#*L_?LrM_(2c3x&^U)~pMK-l2Ri&KqK+iLSX`4t9`L4;i5aih@|aD74Eye#R1|Os z3w$dIH^09e;Q$DNI1-*xw!)7Nxp7>(PsMhm16(|Mm2+wWCj!te;YzrInJ_%1Pv5er zCsS)ki5XbkwS@5{2YCDX4He*AO){uaNn9xls43(w<_+FQD4Me~JB=WWj2jpraJvW; zNDM4zL(pDyVc8n|0Ju(F@fdBP^z_eOlDbn z#$LOf*b;6d>;gIj3AMx4wd@i{t?&C1DFdJN432qafvi2>gsD)2j<8^a&Z?U^gn;rEZa7q}e z4_zBqb~!P{o~9G~{Q(iX`+v-3Ny<#A>eHaS1fkqF_R)o|+oniLzk~SYn#x$J^G+B3 zEO|=E4#PHz_o7E0K+XvMv0ZN#fB5|#Tl4~)+swZnaCH}WAW?w7QQNu|El(AAJ)h+= zX+UNf!uhf-C=A`Fsnsf{0eg`e^u7}6R{?Z$? z^BESEKRPz2?01#4$Ol40LvQ>#pV?7BN;Q{D6t_#4{pSs5NABMxPqIg@L?=dyPY)hW zC{JmjmqY6&eurMg(0}FXL1!2JEpxx_r*b6P?h8jaS`SJoyqDlU+n@{BUH&c^Aym!b zcKes4_hmGL>xA#GZDaedq$&5Vxz=G!FjEO-(EaA8alwA-=h-jffrI8x!ZWSF`Km6o z8+*R)cb+ZOP-3f=E4rA0ncIYw#$njCxJO1738tNPAZ6zco*l&e2FbL_WfxXq=-E_!-e#DGFoB&=6oq#1V#$gDIkjm1N znB+LG`;7%-1rZH-I{SETJl>#(2ciy#w%~}VyA@Wfl$1ZHilZYrkFSPOXi^Dd|2E9# zK>GFZ-%Zc%*q;z2jQQrnfYlTho^Qb23v?Gi6~7{6T;dWkl1v|r$CK4HXx`qc`l6N(ic zmCw_oa0Gd;iDeb}Xh($vDRL zwrVWwnjUUd(;gjLZs2#gXsunZ0IkJ$Elqs8lFmE3Ox=nhAXCKk`QJb~bt!ar7@#wA zJf{^!&N~|JUI%<$eaExEZ!@ZW7cci)q~A}{(2ZZTm{DA%;q6amI`!)T`J)OYA$=sS zA)p2c-nMSXOFYP=?`k=qx}7JS3BHEC2TIa)J;Dyx{&&iED^5>n$&4<7T|v9_MB2v| z)_Z%-Tt)EsI3{5<`G}x|CJ`i{n!#z4BmbNyNJTnk^ZvK61~s-fb@OS2l3$?$r;ja^ z0Exljh)J!X8NE`bkC-UDVvZ%sshSj|4N{6EV0WtQ)xaNsm}4*`R>~FF)lk<(+b2e+ z*pty6Yn2=u7LYI1S__`99z$(9Tdwve5(@L@>{BnA=af3-@#U<2@YWBtr5tR4V36Ki z5m-r8veAHwkxU!G2j-G_17^NVEAiMruo*nJzx{O7mq&jEqx#BTFI3VVE4uZ3A^e=M;@})TMr5%&)cuYm&LEXs{^L((o`j!2#dNYO0W7-rg`qKJ!?GqV070S zh2@bncEc`f9fptMxIyenm z0vUNn*N{%$sKAprqFQ(4^M~Rp?Ml$F5iGHO)!ysw8nDhQzr4I)OFUmZNnE_X2|goC zbl%&q|H;a^-{la!dNP%`JTB|@9UT&J7LmR>CbjiGvG>If8&;D*Cy_IQ|4PfTu~`4P zvGMH>)tcW4m#OH{k0MIw<=v-JN6)<>;JfZvCcNyGf9mo(vk6S*?FX?nvQdORj14n{ z<50uLjSF79iBIBuOTlv;--ES4t^mPp&8=NXbJAn5H*eJA^D&kG&NsW6Qag$S5*~)c z`ZAwq?4Sz-OU-h`IeYHW%O>}kZpR_qyywA_?>rXeKIidGn&wL#1N8z$fe) zy$~$Oy1Z7mGr_Me0^;pN8NVGi zyc&Hy`XF)_co+Q|@l%a8XEz*&cCrFU5^La%-)gEN`CwX%LnlYIw*S2*biCzDV>R^pQuH-vDHaCT(dpBR4yNO+COMI7 z^5jIYz3JseVmh}h=`WG;cvm52#{CJ7B)9(y8TkXTbkhDBHzslY6&reBN#!?|VXyTy zV%nU-KF+xO`l)ON5+?}am~VGWBURX{4@%esuQmMSXH^jf8XF+ous%}DqO!XAegoR| z)yFTgQsTKDfymOT<^+--?eiWx|`=+Zv-bDTl*O zuW>tyKZ@Kbm@LqTcgd1Lsy5yf0h}Ua)AgQ-B;!H_a&Xc^i0X;%pG#;e=S=FpvKX65 z;^msLr|?J}b1M%zdL#?)7u9KH6gK7>b|wr(VHcVxg~YNM;_KsRBlY7VBE_VC1UwTK zxz^kYASRMuh4i7sAl#%V@(sy3L4Bvbkxe8IUk{1G@fO`m63a_k6peCi@J^N6IFdOr z>zqA5>m1AH*`u2z`?$gkvtZHaZK+^lO=6g_VsnJ_jE$hFN)a6m;LQeHLW+Vq4#uLM z15)(;8Y0vhq;}ENKNz^MWqB4Q*+CFrY?^hpVXpM~UzJ-hA0?J5stdZm{um)Cn61=U z@nUB&19`rWRc+^A3yXPgEAOteeb(BfkYJe&{bvn(@vDF}_X<7}$G&3j7yx%kCRS`J zsa_8FXWOYAt{xvE+RvVr*G-o^i+&D{wSCE+Hjd$6^nJYS<&W`l(DWNAjVAX$*6Sqq zA6RR+am-==b)>`j*HE&m$>^8W6z9#DL;n6k!QmX%hL^j)WR9^u1fL}P+mS3^N11bq%B7z{m$dPh<6 zz>KEpEqc3#Vt$aLynL$EbX0XJ+DaVU`KQHM1TLt%{U}OZCoZo%*@{ zMI$XsSHu#mpii7mSXx!>*un$CBXq?fO{B@bKtff~=>HK*=Li=x6Kz|l)zi*`RVB|Z zEwXIiG)xIu^X_s4?b>&WN&bi~jOr`)Y#uRSFW~L*c|8~}13Y{==K=ezKj%1M^9nQM zFt4tIDgmq;LCsbh@l+d{`pXUo0FJh>0!qYXqILPVA0aHHlO-Uzs&>D|`uSNQ z0sOAD3p7GXS2`m|+d-T@4ufFGG5LmF6Vd!Vy1|tTnhE!?-u`_(2DN_G0|Sg>RX$t! zYxZoEWeHtxfdac7yXBnoM-+G0G@@#zsWoYI!TuyEl*alhyoF0PpLqv;Z(O;7cX{%* zJ!biXfaK7$-C);o?n$n+HTic`s0@FjfDYu6BdbrxVAV9eE1Hc$oz&VamqOf2s$+R+ z&!?#c89CL(z!64;yIdPkw1_rBhp!r1qN7Io?;CP9q6j}7t`1zelEqNb3EfA!X9eWF zN|cr)6&9ZpuiD37{#*hBv7F_5FpRrHi@b5kKW zsmNR1ANqVD5Em>-8)lwA9F#K--z6mYBYYx8cbUc`ipA@51XuU{VP|U1Ss=D(1|s4` znS`jvWYGEFU8nYwj$>y5BWM{HNZ%KMz}S7W~X|8meG;W?t9{RwO_i_*$ zSEl#N;yf^|#&F@O8f0`Ihb)@RXhE2}NfGd1Sx-Iv?S@=ty3ugMh#5nI$?&~g&$ZMoF6C}iu$%>v2_t)!mb7%VHkH~%) zjuP`;Q!}r554>C=l8PPcqTA(Bhtetxw-4PM;9WnA5c`qPHZ19(62tKXz;4AGX&a>= zwVgzqhzQ*ImwLjHxa5PJ!RE!y3`Iu!nzY?JUyFwOx%At`!1ST*Ki-j#eQ!cvIE`sER=ke+cuHf*L?Br+ z938;~Rl9iQR(RoI7F2#8l&i_&8V58}d(jh-cp?UF_OS7hr zW~tr@!!bCXp5J{pP*>ZX;_m9I!K~wVo)(*P*ELI-GObw6*SW|uLx4*1%kAh$&Y&bfdaMkPhw87`ETg<5q37FeJnMm|$rzk<}HA_PL zUu5^|zwaO4MUhWKpE_JjJP(@&D52N5dE&9bd2i3TkO_AG!_+;rvYdL`!;muQTh_8m zkZ)jZVGAL?O$xlR1t%hExSN#ye)cr{35{6vo-C1(`}jiFUCoO`-HTjSHF-dreq*Kr z5Wx4G_qGWO=*wal1decTb z9{y~=`<<+oBjhuVwd^DdF8Vf?^y8{LvO)Gla`$WeZ&g?%A3us<5?rcJqF7Zm-4x22 z&;7mIr`({uHsz0P2e8n)Y%%}asR8nav6GyNxv!=|57(=}gS59dqoib`(6|_EPmfO; z?1x>gqo1iPBV}*-H$yZ!w8J(sSi_vD_v!ShW&(OPX!>^al}Am?t4ypp>!;oNKgQf& z+sn5HxuVB~7!x7~IqhR>e)fk^X1dmIPebkaI)Rz(Lr-aZ1 z;iCh2=*uWTWOW^%c?c{wo_BX&mjLFSRfnz8GJvkiZ9nfEvf2JG5gSo?j!R{)36Gr` z&V(Hc^d@KRj4wO7;>hpNL<$20osIhD?NDlf_WRz?d2)DYzDKW|maoEw+{;Of9+IzH znfd~^cE8A?Nj@BhS?vu`aF`<{{^6-3IMx%fHQ2`HbaSVgg@uNViez<`+kW;9|D@$D zI2ax-_ve*~i)rJ9&UGw@(pp|`XsFMMXTNN^@zvpnuKUC7cr*|^i(*IpcaxXUWqV`a zCOEpW^T7QhONn1kejAsBMjnx0@^C^rn~;n7jF9nco4c=8kJkb>3jQ}1Ld2$tXNIjr&d>A9*W|*zmt$R4z1pK`uI#_37o4# zgZ9?)jOwRS%6*=9*4Yq7r&o$e491=gzX*;lT#-pgw9uHbXMRUM|Mmj5~p}j|TiTEoCCQ6E9A$7_8U& zdG}kR?>Icmj8Um_+`!# zHOhvhQNGpkVO`j}a7%;3R}0>7-C8pB zzYGO~&9g$|b`i!FUM~jNTh`{go?8%ZSGSM+yWf5%casf{j#k^OUguQu!fO}qzrAKF zHAhZJ%O2;x7=01ZbY_ltYrMVjyFnH(`^+ec_)nvWhzqgfI+qyn_JYk!?`62cl<|)S z$5wrFr#5k~!ocjNOOzyAlwuvV?(b1dcwCHLbQ47wwHOgKa9d%i)gzhpDOvyPLjop1 z!|vGu!^|GdIsP+aExzZqZF`w}J!a6iVH*z(ILM}?6q@$Y4d17*4+4w!s*!xQ`=>Cb zSUgS@g991RD_cTQyThA1c(-PFC{#o z5;1e{gMEdt!mrM+#$QX?gU**XMWWON=qqFGLMe2 z2x`Klf(|{(et1J{>>aHPDBA)pxE?Ks`D#Xn4s|1Bh!X=bype)(p5iCkUc+H^uQ9n&H<%p0pYYgHw)_lXKnkZ&&_Rf_Bza7vqatb z)UUT&9o8dh)@kkV1;k9EA#*Ij5W1Q#mGFLLlhSnNK*S96D!Ki92LGh->h^pMimkA? zEOI+<=+b@DoCmaxZzs+Bw|2UM7to-C(3yc-@z<<@x7RIr6i=V<3krr6NstB;2ri{Q z;@j>liR`zOY2x%!JL2C`8(-I70oU@`P0e5T%CWV(uDkSig&b`=Nk9PS2z`3Mc7EvH z*e8dlCyBeo36)*?mX&}nS{SxJ&Pq@ENK$b8!U!FGEf^S(vH8xCVZgs?5m>nhJRcSJ zKfgKi>HLIjKjUO$?AnVY0lg>}Id9$m5P9Yt9vgmtt{!A>&;u}jp}DOd@`@?>qM(ic z-co^y(ih&WF@QX(-;}P_Ri0@yscl(4Z3;XoWU6Yi1X4VJ=kV-~yUN*)Kg*mrO*Lnl z*H}4OR$>;Vbd)aD-%8HT$FLlZCCUP<(>@@2J!q-flwL3c&kZi(J78;G3|dG}XPcT+ zf|EfUu*!f(rX?6*;+WQO0J%U1;A)$)Y9_f+FE8^vA$0VY@X<%xW#adfmfVNj9nR%N z3p6RZN4rQLCh9pcQ?(dIl$2J5$31v}JiZUF#~;#-E^pY_)7T7>T4HqDSLbE|0Y#G% zNZ&yuljCl|(IN;(OEvgneeG>~FR-1{5!#@Qe?e$u@4)W06NcHVfeEKeSvcE)Bl?r^ z@7z&DhZV=)5x%3ZY(E(V6A?&4-q-a>Lu|1RM=Z%x)oQKKkT$?3N@!946GNV_I7E-L z8z=*>&2bjl$VA+>bQ|``y=JG3jm3cJXC9}yR9Z=G*RQ%YoxroUZq@I?%vy-~oP5gw!{&4~j{;B7EakvbXo!33)!RkS}>Yw?O0#md$4}9hUa9p95|K6bmymSCyt> zUA@T3!0V^Y(nJ^JbeKc|ENXF8U>I|EcR%7$-;oF>cjm{LU(G4kH;}T4c%Eh!M78hFg4;-xLeS z`}DhXpAtc^WtZ+3z{2utE868{E7+794cxO03&nbvo*G~?Y(Cj!gz`X^8XfaZGc7{n zN~>-81&)@%g>3HWSSKKw>u!s?Iu@+w_F!Wl9|0c!b2z{uOk$}E%%PfTf$&IRg5%@k zlV%+!XPIHm{KhhIB^W>A9OFBaq$4XeMfMDsQ5y})zaW|;<|vMYU_MhAAlZNcy7Iw=J*`f)xO`sf7-_ zjV1N*Tay;cghx`zy@tx7>*M{u?QIQROSV(fHL+$gHI=Mi<}T_lZ4c0IH){h>4~!O4 z!_k!#iu49AV?;JeYV6G%4`~_!%y6y2CVSbg89X&HyF6E0NZqZAd>%#h|UDn=XqY1PMjrRx%>eO-`@(P(u1#&a@x{y{4L=93%1U;uPCkNg4lerMN1Kbr5QpyhN zyH_Z$_qr#`Z^9jF=OwFF!owhDzi}G~e26i8xy_U2)&cIxM=KB&3l=-Voj@E zacmd^;*_gOejOCns#oa7U6HAu$G|CGjH4a#5|(I{i)g|56Uz&uf*O~dZtJz)sY|@f zzE>0c812ctbpOzKC;oV`9Y{9j`**>=YDrd3^`Ps!OORokx?@;iN;iA*p{**6|6pcvSMd*OSm=CgwSLN5JloLkpNoiR& zFBzuPH@Bd-SG2g|o!m{eNwyZQ;O_OSa$ub{q-?F??qOG!%*b!@raUR|L|vBC{7t5^ zCuP5*Tc*5HXT}mj5%-J!)>(qF@61)Xw4Ht<)_tL6I4=)%8DzcGs>3tVC4(gTSg{MCDjeqc;J98W;=v`-#qnkK z{lEj2&e^X7-l^wi-APsRZ~nFHzOM12#tlJ!pH&vddLv!}UmSV#PbgjmGrgT8^Oj2`GJ2K1;p|-4xT#=v8xw5!k=MmCfOZPcQMb zIPtOld0EQ~y1P@`VR_!7JhYz!J==dh#%Ol^lI_(?n04d+g_$YOX1$!nV7c3He)uZW zZDU=4Vyocn6oANkdjZ%hy&}Ddf=U+1ET6M)0>rDueePPT*eL@dSZ)**IwKYU0CdM0++3 z?7grgazZlbPSem>gku{~0=~%?APc(i_u0!jypzjZ64d=XKv?7z;)dH{FA_qto*uvU zDV!4t-G4V#Z%;nQ^TnrItl2>5p~~a-uUBpKd|9q*_5`xauhW{imdu;f?eQ#r`uV{{ zo5^qcnlnZFZ;#Zp)lKt{s^(qP5p=Ei+^`7Ls!zd#Du(ulgTi*zylR3RRqsvwa0$#e z@c(`)yK>z>6)9~=BCYOK;Bp55yKa7uK&7dpiei<2c z9d|&greoV689uK+u2C1eik+bGL_*v*oL`p456{`U_I>?Atu zh1t}GwWm|>CA+l_h@>_Ze9kvpovfVX>`>*QsVVczm7Cw$(d8cwL374J?QHo!U0DZA{*FD zhku>s$n%t>0If)X@=t~aE4($NYc*a({AQGA4TErrC{bbaBq);n@tG!4)((!M1XG!5 zqf@=<2XZ1rH_ZG(Jx5>nzhGQf{o)hUnq27X!(~HtHEm{8wujbml3&X_I?dzbvG_kf zX#weE)kv44LtvI6je^@!8X0(MMNgi6YC4cPj&PPDeZSIwWZRpmTJ)n9CN0B8>%*PV zN|EkDjgluD7I;z>eV;+|Ka;|kg4nz1qXg!vP0Hj0L2aS&jwicJi1;qMhdBigrmt7M$Ky& zccxVBxFSs*fe4lP-if2DPLmvWuz*Q5e{hsnQX&{;S# z8-sIUF*uL7qgUxmCE5QzgXW)~;ZYxcYVlU*&G_#oB}HnXeFb|0keU_i(|@fQx|Ud? zW;9`w)&sO0^G|ng9IemhNv+TQf4MAsvUhdAp-L;pvauF&GFc|@6?@54fU>D|b_Ru# zgD=3;sb;>|%;A%`9f)CHe$#MGDt#gu&_c3n$CVG(C;$PDUxoq{WHLJ+F%uucl9oP1 zV^-Ed5M(djDL~#zffln!;%&F~eVK}CjFInq^x7oS4#wSf`>zyBWwZj5)@i}+1M#>l zQD8*P6WC4bZr&OpNeB##aMIty)v}T8n#-n4tEeF*gqJHNUpPxb$cBnzf}=bo$!XiN zoE9oKQjhvKk!U&@M`k{x^V$T$QKAR)VPpH+xG2NKEuZ>>Qe%+BLO(etkpJDk_8{Vr zR?&1}Ugm~;n<9Dy8FK-U_W_kk=$W7{y0yKjk_%=Cl#_s>prN-`cyVrcga&l)ZAo2z zJKtW&%f6*_5cn}8Y_dGq3-$fAw!Km2n$Kr93G{K_8+AcMzAC;^HPllI|2@uWP*})M z6XkP5_HVN+#>Rw`FdjAgO`MAh{d7nQZiO534U=`{@9~#+ULaVQnY!cY@NO-jNZM17 zAtZ6y5ynwq5N`)_-eSS$)G&li_G9c#O~V{zdeY7By5s2y2)pYOQ5Anw9opVTvnBN9 zuZ|Ycr5L~wY8;xe)ogHp6$Q}1!BQXw3QSfVu#Ds=cvDD;MSm&H(Tlu6 zx$~2dRS9M7r-c_ldWcZ$gMvQRH&PppxylIR$!d<~i1_^L3s)pplyRI<)3#_fDyB^G zRDB-++PR28vJXC>yHWNoyH+*sW{1pd8fg-f$#eZB^=6BE4-eqHA=C>0Mbn63)VcSO znRl=e+(`K?78rhJGA~Z~J*fq`l+h+c=l<-++>vCW#E}7F);Cb3twOFbmnIoBdLWc3 zn1bJ$V{eLBYQPW2wDe_?Eyn%bw9*KY;GC@Zuj%Ye5CO!Ssjp5SGLR+c9{+LflU60c zDQ^^umQs)Kei+tQT)S4#SXERJOwUgL_oTzUw!CAhcGY9-Z&1oKjJI@B7*7MU(IATU z0Nl$ftHNX;UIXbNmdPB>wU#BJT1@x1qjW2@>XjDDeEUh!yI}^!i&SE*JExFn&c2A2 z(WL(21t(<2YsY|3Y5#YUw9qk?HjM4P&GA4Mk4a8s5JBuU=vRAt@3_dvdhJRUm|rKd z96OqRPhZPbRYj5DkCd+EYT5%&<}OO1gyoP{7DbCx>S1*d7r&mGP* z`#LRhSMT1ecRNQ?v>YFi`oBWb)27OGrat#qHZTy~L{xn-Atl z0?Bk)bZBmxm&Xk{u63&CC|cI1R{3nE!$|Z@{EYFDNctbfy;yuM!HlU|d!OVsuJ0Oc zenr8#>i5=oah|t9fZu9HxcvVCgh6}0R;x2-&hGDDjsTDR^p5f4x+YJYdFeN9?1V$# zQMy>Hviu*BW-fwBbPAqVwab8WE=dwqf_r0LdEtePCXA1Sj&ybU^vzy=ZCTFt_Uo_T zV#5u`jGJ=#)z>#u2teAhg%=xiYL&1)zWtNOORQcrKJ=J)C5f5Y*-AA5BOM$lHB#w7 zk*Cgs4Kbi0LwE<5he2oosUQWUwn6AURMUve2mlBe$jZhk41{6Cqz#vHc?aY`5ya%y zvD@`lAPp8QSg@9fr3hYh+~vKevagL`sgw?;Oqv29&rK8vYrPJHaUjV8ZHW*ZLIEma z*pQfE2`Y%=4j*g5wq)|wk2j%Q0MA|&1HR!Rv?kbTDp8`tyX*Owb#x)_uT2zH#um(_g;Sa6?+}9 z?9gfaZ<3XA+GL;nO2uUPpSfOF0{GpY7&vdN4f2$n2c^5v6G*>jJ*Hs~FH z-Z^J(vGaD@ZMUT&6m72}0SHT40>mDj7EvQ?5$SNM;vb1Gp>?OfyO3FKPCn(dZML49 zw+HGK_4mI#bKEIk-S43P=sEl8XzvIW36CT=7=ar9I#HAxxW>Fi(hMp;!*+X zi9I^N#WP^NTiL%H9?l^Mbx{;SoUr#KHQ*HtjInvhWeEj@LeA`+w=6@0Py(Rr z-6TB)GPPN?nzW0S)kZLs3#8MM1pp_k6UIs_K-%c4smJ}bB<;@rkiHVF=s|DjR{wxh zs$7yJnLT^<-h1t>B3PgP^{?}mEn9N=W#1lCpY)9@zV(;C{AHW1HZBZWt#(&6Sxvj| zSAzn>-;Kcg-~oOe(wI1Ld{T+_e*0dVZ9cnNtAJYf{`}{QmMpvOJ16x>am($uJon-& zGv{m>5TcG#Ff4=z0&l<`P;Mmh(&7!x@z`2Y0zg++*M=KzICt*cckHuI8~}FlK>xBQ z=Pf<&vM+BOXSZK}=?gD6`etHM0KkOM9$=vf1oo0%j}Jz|j^Bd`f~k|xE7PCOIi(=A zmRf;*k>?X9PTXOq9e3DmUnS9g^~IG77yfbK(v!b-*_;h}9{Jfle|UDm^qEt8MNYnL z5SvoLw_fG)FU>csrX(w6Ro)hbH>O;AWT?{>%RhhQk&is`$fCtdHl8*2vnQSM!S}wW zf93N1cYE7k|1?iT$!kVTf7`Bi-t_&Mlg5B!w4K%P66_I20bKT9AN|0+_x@=~>ig!* z{=g?c_W2_|*GRMDKK$wX@40ob$hO~m?!g~F{{tU*`#N>$-wMm`T0E!A=b4yEfCwZ3 zkJ2LB_x5%}l2-7HAPBPNKvb3{)bDI7AON=0Byw`t3PROd!|5GxPmpx6tBhXgBzlwPUQ*o8_v ze?ozFPv)czLTcx2m$*iIfIOzL&SNYSjLTaW-O zgP9`%Ko}`ytDPNi;QqapamO5c^zmmL^ZbGrEl1zI_9kI{S6BVH`OkYGRETQ{;EQ$} z)oN+}+p$+=2WW<1;*qniQK##k@CXP7upqEdL=0mU1&f#TZ@1&F6UUA_>Zl_>chsi~ z=bJfSe#N({*-GJBuf6t~5-7#F@D>DL#tH(!H1cXMODV1>9fCUhU?NzsCly#{1-Z1< ze(}YZ4msqIG4$<$ z3og@wBdh|Pg<#3-0b71DW)jkS=Y>#ZNt9ITrI#1J=a54ndyYKfGiRN7%=`!LD++bP z9e3Zc@DIwhUw+}m!tPqAP{>TddgGyk^{C`u+ZDXQs8lM>gG%Kk`^8HZEm-j4``>?f zy{G>5%fI`D&wpjsmOJb;vnz?*mfOtSeA~B$6E-S@nly1tYFv#7k=7ChfIyb}Fv|dZ z@UZuoaLmn*{_6Cvoc6Yzcm6-@eRr5$Rk{AV+ODU~Ofr)MNFYEUgpQyHsF&Up=~4tQ zR|N#G6%f55AWe!=qzEWT5fKnYQ7J-bf@wB1(w{jttWCYV9p4%JnUg*HoVC|l-+I^kec$_ad;V*$&H3!npAO3D#n;?){BfV#^8J6_a_V~sY_1Bx z#nm3tT2Gxi)qxmmEeHb$D1|OuCtc+HtFOK+xL>3xlq3KnXf#@tN*RSB)Dw&YBv-jl zQ54Vwq33H21`bGuoC5*(VY!wla!ok(IZ;vyPC-b!orY07dixqqOc>6|URAIQA%90c z*Z{ealzI$RiUb0Du3cwJU$cMEGLC?~mFJB5C3r$<*urV$YQr=s!H@`+*g|q^3=MSj z+@fbD4otSJ;JWR38DK`Kj9C*y8FD-zrNeYw~edajTZg%u_tu< z^5MrGB7WFZ5FCU`sML!@21tMa92Q6cYT>9HvQmvM0j!2)LM!w1qjx{>;Qa|oGiGdh z;9h(Bv~=!ySN8OdzyGdV&OiT*Z9lyAP_tlu?bFA6ZXLS#>1Q73Up(Ie3P@5Dc^bxm zaSebm7z5{dU+JP%O)MBS##$o@HNdQUfBV49-xpqWlg+l+Z;zeV7~k`)Z+&a}2Gj4k z~+C-rwK()YG$?L-zged;drG+byhC&pQ9Y3F9aI?v6VyIq$UHcHS(QFbUE>^2lS> z^XBjW(T_&DDGb^GNVOY7p-q5E@0J~SkFhU+g;ItyfKn6%1Y3LUHSc+3CWr=;OLBG2 z_wQXecK~ao<*-<9yAPjt;nhJ70E)s;Cgq^;1+%^~XcVZ1l-TiC-25wOgN*9$TzTOS zewYllcHVLGnU6n+bP%3KH1ULQUiIqS*;`KCXf<$Ig&Khwmd$ldN=Ydvf)&yPf>z2U zSOr0Ckr#RH$DYr_Hy13PFmZf;|KRv>U6jBQXk|gbEaA)opdJJmfWbz)yAlH?O_Df{ zwANs38MP{lf4@kGu|Xn;)mrCyp69uF$8PzQ8^8x=5SWjbfBV8BZ*iM8Owsl$ahrPD zP_J!JND&|iM4ly@a7#+ma!*M^bm0SrmSl`YcVPCZQ+ zEN2!%8wyh@hi@!=Gpy9QNtZQ;TN>#aLE<{h>{HWN|nT6XW?om_&I zuT`SR7=VFu@1X}DJmr7Bmoxm=XOBH_&s}&aIQ+IY!o^$TSEyE8y?C=9V zwyVk7pF8F=uvnujy#1D&<}XQtp1xveajhhb9}H%8?X}m`7J`i6zLhbWXBm=d1ik=( zf)xaK`k5zBKKU$S*ilD)de41!iYt`^4?ffv(YBjx^0S+N{K8*fnz-H!S_x1{uc!CT zfpqGWwPJ>JII##W7uxP z7*lyhL57A%SopfF z3Qk~18QdtHCbBScQnj2WxlssMNHwKi*hq~`RFC3s49%bL`lL0yiME*ut3zMRe{Dff zndr(JSps4$vk)50!p=t*dc3Su%(LSS8(->qwf$GFV1QVQxVbPz)@1 z?wK2ZbKjKpHkx_Y%(;#H{X6a3)zvdTqPJdqS$B7Lx!OHr!wH3~a|E3GqC5crg%nT> z9AH2RfRn?g9Yu_lrL~fVRBdHY^8K%#e8yK#I4dK93jhNzKK;N0PrX{M^gQvvgVuQE za&6kWlc$U)mtTBtkP=EylT&4{LGX=B&TX{6-EU5Kj;j@4O zsx6Boj%!~&`I}$(+9?_J82~x>*1S2l|MrJ#PG0}6yY3mx>{`>e>g^l9PR(9(!6{zc zlZJikZ@fi7;5%Jl;yaMWhq;A+mt}h52`7K?i(gcEDT+go{Q2jfyZ^q2H<&W*cemU@ z5UjV!hLbl~dvc#W@7pJBICXQcvhhZnY~nExKw8-(6(K5tOQ{-Tb1=rZK;>oZ!0L$J z;kIPS5&+cm01abpo(0va$@1@Ce(lWrA3X2;Yd7Dhf}}oU^N;Ls_>AYDf8j6pJaW)M z2i)<@{EcRW{qtY_S0_WEaNKAwbpSdgjF_el7Im^ z1z`yMunL2ETKJKG(OG@)gwxKr{OW6w+RLuE@{{}S7yAYCOG;&<^Xm#oXsIQ8{wMc?EJ?V*88H5zeC z#D0_K1(%i>Llt$vMKP`gOL;`fWm|4Fnp{(w=Mew{>IEPs&ukDVK{;biB__P?##`qu zT+&sloOaGRn{PZr8=QC6sb4()^NFHIfBxt#HrNm_41T?yS4%z!7!-wMpn!1pn!qv? zfVZ;6G=^cQ0Sis61t*+B8?amv>Yso91#@2d>so!iXPkZJ9=q*E8M)%(iw-{cC@20N+8|tJg$cO=7>pPeFS0A;lny-6Zr5`IFj0yl3s|iQ6WW3kz#xw<~AC2Q!?B zOPxS?qtU2TDhvWZkxMD%4L98I?32%JI(4HjfAz%ew%MKl=brhkFCF)-nfJYL?s?~} zv+hI&31z{(1Ta7V06DPyv`I>-i%9=R?7(}l^>mMS-m`lDV704Cf&dmj_`y{deD~sG zk3IHNhaCU_mRx@APwFT_7TkB!%?BO&`THOG!<6-R`s>RtEqHzKr3DXK(zo^NujdMZ zln8=74?1km!~ScJJASwS;s5o}!;g%w?Yed?{Mlt!e*5gRPx{6gU;6JO8wn7t1}>{g z8|@)7AQnUuuB9>-RuvQ$wjjd5sK+0Aglqh7ULZBZjNtMO8xQJYlDK@f&0TCC8BB6vY{(zN?$ z{Y4Xu^9+MlfRcKj{XV|O9(zFu=AkI+lmZ;3s;@25%)}ulBcnN-QbblhT@wOkB$XPz zPr#ahG6*>h3F+E!#(zBj^c>FzBYBbbYnxESJMX+ty_qPBOu|P>fL6=KaU?AS0Ygrp zAtG2xECgA(PIwe5uP-c@%hY3?zzXoADefCLuMWt0AMOhr!!Sxe_wHL89M+&@m>#hv7jI(%`=zhTJ7!z zu_jBtfAJ-!pMBD8&{LAaFsA94Xg*yp> z2(%jz6;NKORFstcOBQ!mqn}-K)ydyD_2{FIJ@Ld76N75>-g^40GH`Ll`QFADSP-dA z5C#AMjUs`tC|c*9d+yA8pW9~Fy@#Heb>ay}Pu^<1&1P&ETRnI73n=8?`yTkIBM(FZ ztqP{=d9$A9IO52oK6dcl0gy@f0&%I-9vX03kLl7tU|NX?WBJL05NmP$!4;W8}JM73*SWYS_F zM=IN;^0-vOHwKI&q9{^$L0IeQB+Y|lNjr{e++(otB9TiYb8WN@qd1oZ7oH^u0%sq* zPK-eZy|_@_mFh%JEeK`sIgByTIrAuk1vG@OGXw#oMwSf4pXk;rB}{5=iE4s-F~=Swv&soy`oj21{j&!hvBr#T`j@n3{qBBc^p=~g<496i z#sdK$O96)GAA9t)lfSy|`qOAwzV%nXk1MsUHl6;;?3a)I{1>@FUZ}5~_~k(v9&*@W zyMAz!)xhQ7AGKHz7-A_IJ{Ma8SYkjaAFj)&B`5&(+N{Ta`~5Wltjuj4@3%61cot@E~%3ts*HN>SI;gH zZ^BojX%8qMFPB^0l~(UM(HiOeCMk6_Rgw#;{BZ&(4=eS+aQG3dHffXaNO(*dBBGiC zl4hgA8GO$dOdIO^H4Dfh^#lx{3k$|*RI31Ujr^6PsAT*U3 z0|b#Sa9)G6ATAWKh4GoOIxhzSj0F{WJMl}g@Qo@mpLv$CT>F-I!X0w~fVz2$;bI3X zDQY3sY5M{$T+}LMf*_Pd!I|d=fgc1(E9X1{;jjeE2aL{#YGIs%SqPx!!h7j(RVt~N zpzp}I{EZ!8t5M6yp2|4@B_-#K5HfH6{QjY~8EW5j{p}CZ|uGE_7C0n z`vRg>$V84Yv)=|A0Xnl@D#V_YgjIBO%4$u0o)vB3aqjy7(pDOk zLS?}nI#bqT)_@k4h<~7{rMOBz4rk*EKfzn00P))#}6+aYy<&^ zmPJ;WxcXizEww86#kAI(bETB;`_@`(tq{U?C{F{x_kBnEdQp_7DPxQ=wlveHC|a!+ zu~?(Gr=6iTX|nY&wD3(I*!_q@w%K6^u=373?)Az2-nZ38Ye7`E+4G)84YTfoykqq)X-Xz%MwA&SgL;H&SIu$O9^4qN>7ljjK#35}CI$uEN-_ zQKlhsFapXcLW)qp7lad45S92WtA#|?2TNQaM+}6709vWG0^lRnXcYkCK(5jOW)J{b z>n)4qg7d%IT^hGW@0vfk_PRv2na|EV=Q|U6`Zk)n;WbxXmjNlD0VM%Np=eg58b({= zta+a20F+Y37($3$@x~Y{io)|eDWx%nF=mWe(VO_5D3TUn2t}4lLSZ$mF$P4406@}i zg<%PxNwew4@mb$Fzq{Ji8+8Bjx;wy-QS$AxzB6(B8f*3S{q%+#3ZQLa3yPc#b82G@ zJ!5&EyV9pxYsQ$h_U}FiN-3o@&vVc7ilT6TwL%TVSOUsvlC=Feghiv-HXZU6gfM^+ zAwX$f7y}3{Ad9olJ%fwV`fIN9<14PQfPy{s%+pGh@_Lh}Uwzs23Xnjvnf;CU@Umu< zQl*rXl5@@&lTs?B#`>P_Q831|)}tTS|HmX@j9BQrNC9Z&=oSeO-w$9lV+4kj%QXN7 zoQeR1`d*>b(CMd~)7!Py#_LVJ?&>QI(9-ssr=Qt3al(3Qta;lFH%SU5#@q?5TlQv@ z9T>K>|3a)l2yshB2tf#uQoh4}5k-+(q;7tW{8yG`Bcu5bACJul=hq>@EYU`T5=Xs& zQI%(40pL4$#~EM)pzJU)_c~`h0sy*ND*^Dsh%pd=G6Cj+a92!tgysx_0H7e$iz52o zEBL!A^fwH{X0ypTcXJVdl+xouD`^11M3!fcd@)LwDiQZWLNL(3 zpc3Ha=U;C$@&2jPWDc)27{mb#VZ<^Qz+eIpOBe+Z1cEL#))d5atQ%Pl_p^#nScHO5 zN-60yP%@T5*U%Z5@Q9$kNSjTeQ4(HZq{)oY@o#_s!hDs0Xf*pVu7bv!5E>xRC6b5h zY7ucBcvdAXt0MvkLW`mhR#nE0dueds$s2xY)*OPL!uT*gtPjIs2y#>t(^i3&OZC>OD_2C>$B&4{lt^D*!9Dcr%cg+aN4;9pj?A;iZo5bFdTs$c!$#E zW4EFx+!J>Dx7ONPYmD){70@#!7I`7Pu%yy94}-WAX=pAiKpUxvL!r_viYi&wW(-j| zo;mY@)6c%(vhQ9(7A!dSQ~TZfq1p56%~Q_!?zyL(j&$gx&wp-%_ieh#hMN)}Py`0X zO0eZ;ofu;%rS2>~axNdC(3is)C^hVHAa2)pyZBhwkLel7cZ}s%_xRUSI+L8Nk&fS~t zNIZr)B%_XWd>L1frPf-;J*^5O3lX>wE8(*87y#nIat2r^fLj9ND*nPSD3`9d)LlRT zB0xG`c?*ycsY^mfepwxy`)}6Vd8JmXx%D4KkufIAve1u;Jds)fD8*4L$yA=HA_L{s zYE@<#K$-Ai$cCG2t_+@j`XP=Z2Nx_sf!;~$D*^O$wbKFUCS+Rz3h-nAVsmRVAkCT_ zpbP{Uj`VQrmktxm%gm=$COFq^Gg@nF-@yxJAQX(O=RELZfRz0*%kxHEDG`*`TxW+v zPgppvCoh+BYIV_!150#Ws+@?*gq-~9_^+01GD#Sw+Hn|iw9~vlDvMIJ^2)%XMo-U| zzJJY&wAt_oY(R_vs4ynbvLf4+!6m=C@M4nomynlAwJyeltd|1@YfO^S5~)V69~1`OECrnrZHN!2$by zytSnN+M92D?)lkkO_^dHxu!F4&X~}E(#GvoLI|yOQ4}M))QYj7l#XDOAP7d|m=yvp z00$_uflPB6io!N$-hcO{mtI@x-sI9tE+}~cEP~JjazM_VJFjo88QX5RC2m(_c%}5%_wHN-J18(pT2z3$vx|Adcmca z#J*R!A_&d5M5tex{U=hM_Q72b@7wyBE5Cc*vyVMglqMpawCDbZ^X;Cy;<9s}d206b z4cE&G#A3{kcBlnFnx+nG8e<$H8LPiaDbMq)wMr?@xg!ZyXnX+}WBdF2OXX6#-5x%$ zWkPtc-1qrok3M+mrI*Tr-t?23di%y_dBFp(nbgZs@Wv}|wzF`TJq{?*b*}#5r7yks zbV_@}o^`j~VULe*z42Awzu?JdpPstm6l=#eS=PdivIC>TnE%gP5Cn@BE$Z#pHgM@+3%e|AV4S;8S+rR_nO@ zo3$v4(lmYJjW@zDY`5DZ_Abpc0_q8FRMBd;4A9*@&KjMiX|)`?IY#4ZKCp1DbvJtd zwwv7dn_CY4ME2Y-f66`ozytOZ6vz=)x~WHqZgmV7WiUYoB4Xt2rZxyE+`O^I5Us#D zK!$@JM&p%LA|09#mq{@4+gLF!)&+hr79-R^%>5$ExzKU7W>^TnGLBah>E}s6;$TTD zuSFGVqeec!b*X9@RUY+VS&_EWv{m;QwN?){60cGT!#D&tONy?_IIcrj4$GJYH##(F zMY1)@p=oJ9ECse$uw-F{h18YvmWhSF>Z%`I@VzVR1LeK8sB#G9#TrL+yQLR?pF14aSTx;#<3az!<(Ty=eh!p}Z9_O-^ir80edE>1&U4F$y zul)IiBM$%6r;hmoVK5q$Lut(zkQd{+YOl|J@vS!(y!`yk!66Lvx4PF^d;Z)x_uP9= zwqUjbdG5K{d+m9E2eg~AR1)vFp&EDI)mjrmoDYQ%GS>HZ|Lgn??wIRHrWNZi$hb*s zW=aD{v%(Lk%CqZk`{lW3eS6`YmkvJckb{r^tyZO!6DLm0^E^${cj&Jh zQ-^LxTxlyhz5qnvWmzHwr_e5*xzQG0-FB$YJ-FcGCe&M-Ua~_E*(UShUE6&OOK|Am-jd5wW z+r7QLBfQt#xpN)rbrAx~Wi$yP)oQibY!*e)*Vi{VIJm(E8xTU=4id+4Z*Om_)gpwv z_~MIWjEi9wfH56Y&+VxBJZ;*vRx9c4?S(~>w4*3?I|2biUY@RR>M`YR`Y`F{vS&cKZM!_42@{kwZ?wC=QN(+=5hn{Bt> zY1>WKKYagP0s#Ylo9gIp^=-wqGuAQ92VP4zw=3=sREk)`j2x&IRAN|2PdPJwbp! zJouYOWsz>7!$6c!1~^+-GAkOzsgmt^&g$3o8ov22#~Z6IfI8G<0(H zWfy+s)Qir$@RFks+qYaRS;F&N-~anNpPcnn!}?pjZ}S88{NNrR{n##7{_;Qf_>dpu ziGrx~ZTr6WZ@KCE`|tYUqG(!%a=C{XL?PoC(@&?ADwoTxR%>u@&?(6R=;`TcG#X>M zDjY;3g!sNc5>c_D{Z)kyLh;I+m->1qhGFQY%7qtRc-9%0Ty@nCKXK?sDW#sMr~>!T zyl>XiPY$;0TfcA11NPZx$6a>YW}_Pq*>8uShOmcbrnc9Ici(A?YYzMPhghJR5>e14 z0A}9>JMe$doMT7`VXgH%&vAS2i~`+wIj(EbqD5JjIj+>XncU%_R4SFrWv%r;4k!(w z0Hm>Tr5u-{tjGh;kK#B@k{~K|5QY`7$}$aTSOP;qM#(5x4$DCmfuZ1?lvqMXqmp44 z5*hWLSviYj2U=RdrO`6zfCzMic ztyL{$rmoU==*6^4yE6lQ`q>x0^WCc?DIb60iHCn;Cra6U_x=E6K( z6yyp47h?e^U(QX%U?2iRB9gou8-8}+Q8;!Wxyl475J_vAyTMHgwF<$KH1PwMQLw)b6_+6h`8) z#~wT7v{OLre}3k_4%lbkaT6!r`Rkv){`#v=y!Ps6zwqVtrmZuv&%g6$*T4GeOZ_DK z=qEne-QDfs?;73 z?Y?X@8c`ID0VoaWFfPux8w(iH@c^_NEoZo*I@gjR}jzAQauV3|WLOJiin2w$y< zOT#DBg3=M4OLPeSk&3P>bv>{6-Z*lBC6@B2kjq*>ubahj%rnsVe*qtZ0B)+!C=N9`or zY|E|ktgWRMln`nuMHuJV6%J&&E8}iDKl7I=38Q7cvgmy>cw8~pW-57Wf7PNo_H7*s@Fvl^RK$#+^ep=@qN1=@WUIf42?2I)lE?HP_}KD z?6R}Y*>uybFTeWwXJ35b@n`;EK(GDrZCh@&!@1{O{P3d>Kl;S)C$BM)05A{+ghHEw zaRRVBm!9W2$45~V+%zN{V-`{^nU$x3L2SKwien7{{J8{rWYaPdNtJQJ@L!RejnHuL!bCa_u zijlC~6=fh8gEj!AX_f`Fuvwv_u7Up6)#sgd!%aWgVyAttxa#|52IrnBGFkEzviem& zx_aum8(e+Gb+s93xC8{6Kmryf$QmTgZoclu@oP=JW#&V_xcgU6{Na~Szfw%u zJ^50pG;iKKA%vSqV_n>AHoLpK<2YWlXi>RbHpWbvG|62rrF3+Qi_jVx8miap|DdbL zF)r0=wWn6g^GpcVZnb>h7lHxQcHB9}1-EyWDWwW@ghD7>p3$f+LxbAkx!19=Rsuv5 zJ`8tM2e=UWuVP%><}#9^H8?mpl1pfenLT^9J9oL9FPC{Y@&jXxbMBG~-LL;hz429n zahX1Sx{Jwoi{FLlGVW<@0K+&nQZWLLBbN}IO9Z=AfgQBZ3d2vs;T>L-DoGP zhz&Q+LB~oxaEE?v!ECLorpb+R2LnX`0Ru>jfPhJ(H8lYY3<2eU z%)pH00uV$aX{BM6TWhHD0e~w@v|~>RD6GgOj7KHV%u(~<1H6?W@M2zSW?29_p}Xgs zXP@!S(@%S5Zj%89oO51wi$Uu4;>CY_>e&-cIe(K)x47ie%cD4GHX66x`m@g;f5K*4 zYw-@NW@A$?2GiS|Mf8!tj==w@2B!b@bvzwlt_2c%KFz_{lmWQsxbEE+kW=c|C}><^Ubfg?DAM35Z+h`&XiJDxoH_Y@UPA) za+_ih1oe8otE($XlCc;*A%r_!y!F;wPHtdeV4zZ|jAX-=N+ow?6h(9A&MlYA%d>Az zt=Jf1Ejntsj)a*zcWxL4AclaIN|DM^a1TZi>QRCel!69CLK{%PQpeelr8m-~XjE7z8NqsE!ocNh70cf+yucs1nz0Ztk?&h9 zoe09~*jz@+?lO0|tEvhBg!w`AHpk=Ak0XC)qx!cS1tEkG;_o73rIg?v07(D?-$zj( zi~xcvW7Y||acW%_46`5_+8RqitYw69YDznC^#Io$e#?Ns zX9kvf1bN!@{W7#otqB>m*2Y0Br4)XkQq9A7v+3PQVM1@zviG8R(z-wX`JF#@D*gb7 zELY?E@4w$JvuRNP9`871gcks&ovXn2nn@lC>V)aCEEAqbhEc>Y17|un8rvsrt+jv! zHMUdN5`>IWp9dL%!UVENg~tJ=m15jeQfg)WAOM4sk_TZ?Fq2J z-XX?C*ag^o9(r`CK_Dt*(L;|s?C3{#Qe>>-5OB}Rs+2GW;^|Rnb;Ls&_#TY*ecwH^ zz<(QRF{7R)h0(IGegFU<07*naRHZ^tSZD*4OWzlr3oNl62frc1QW?alF&h^gKH~nT zX(CJInl{i{LkIxYNGb%Z@Vmxs&`n2V`+Y|ZP>+>*?z;O?fMDr1fJc5m^KA%eRFIMZ zsCy>BaB)K-wb5Kec`g|vl+ZNO-e}Zf%~ESbU_q4yArQW>Kv5K7=!B-IfuS%R;l@tI z5HsvP==@+o-GBL^2S7>)!3wD;1?R!Yl8oan02^*p9WnG2@cjr@q0)2DtfxSz8(D@N z6!$&;Ff26fd{OofxQdqAfq&_S=>V}~>9Q<~m4zW=Q-!xabu-YsnKY- zgT5ofD5XM(BuT2(>T>TxI_1J$h>v?w0s>+qKL9ZvXMi+m!hL?|zI)Aj{D}o`4o%&7 zvrm2V%#ZK4SD#M5bkt!F-234C#f`}uZ?pdqM}6t5M{^)ngOpOxY9=Y;Mk^_pAXXuL z?Uo<^^wX!@K56>qk396#E=V`66lMQi5`5w^=}e8W4q!@uwP8 z0-69!%Paww6!}63 zSR>QKr8$hMO#ZjHdigxI=XvhP?yTeT{RnmhReOMGHtLLXC&J!2&=)!P1PB#gK!Ab% zLC-HGNybLP%$I^N4vgwDLFb*$R_mB*N;*ica~L3u!Wh74ZHDSC12me6RCXD3GCH}= zj^6(5-%8l^_cuI``o3tT33b&nh#lQsvkVk4BN~zp2SriI7%&P?uq4R<>iZ(gG7t_z z$tYjX@L_|3xNh>%%bzT>gz3mwzk}wUHqyWdUuae2Sr+(=(ox+d!*ZCNjn>l!N~6)r z3^43TH_P1L;_Wz(yglRCTD043A$)*(4n%{G+Ps#rIZL}wI0y%&BO?p=fbWi6Z1@($ zz851WR>Z({#8asIVHBs{)m2T~iO~|Wpgu>^v@+ZIKX&-?@kg~%8PG*{hNP$VO|PQZlF`6K?F3RoC_*}<^Zz#WtU&l=pSG-08mfr$A0Fs ze|hft9d~&DUuM5>!YSXLvk>~d^!Qg7m{{HZSuHM=h6d}seG@^6EM#Z7Gh&S#ErDP= zdR9hIYgI>W-$kVvBi&hw5=H?_KpD57S{vW@OqKx91O}`Vs%8y^4m}Pa$yFHoNt!$M zqF!&-s^y`fAxdevTy`{ak|a^|ZWe5} z`QNRR0nM^D^9UDyty*fPMR#{Mv<3*ZO27h;AcpW!d8^ zF(1x0sm|aIJ4!4lBpa3~m7_=B=z4w7_kG{@qbPDhcFX#w{sCXibj1X_IZ}3rBX?ce2OL3`owV|u$nGqcPwDR zh;@XBs?{nl`VjQfdK%NF;FA}i=%4kraSHcfM(8muK3mu zZ+YYO*SDFp&J8!+3?3l`zIE>WpWWVUHU*G1n?Y1^`dAvUT60nW#aB)|6_tr=O{rBq zFw<_gT8}*c%Cyb5zU3D;UwXxlj{oMhci;cWhKFpo8n~=(tK0v!9$Wh zte5TXSLCT51V(EoUP%Zs)>f-!0JU1p5g0D=?%hQ#0F<(WOBPS;>jAKM@nSEELAbFP zPCWp#pwO@yfYWmL+nWd>hK7b*;z?d87b+o@91Z}d9jai90M#Va$^}Mw5O+M!MxW+Cy&f+#KOAzrc2BHSjV?@ zwrNWVVR@#x@MKZsvM5(e3l}bk0uR=?inu0Z#Bo785759`hX^g0Bl8##4oAhdS}hl_ zpXd2V1j)OGU+f4D17H}#i!Z*|)in+vE)%54Av^~s!Hoq*^_Ngfm;tnf)`+99HPjyl zJ`9Y_ho1>|L+pmx5(8q0b?zfR;;1GR&1SP)F1rxOk%9@UEzkdD`&$;y8JSkISt>m$ql{L&oY zJp^3n>Y2B?{gaxD%BB0##0kBCwSX5zfK8i2q~jxlBaJ{@4kQIxe#`TG%9JUd=hbR8!Ku;O8sl+6 zU`gkZbx0i2@wD?Oj0XmnWO*Vy!G&lw+uEog2wJU{OVf2-2QV@{MwHIodjJDr zpmbOUt>f0Q7E6{aanWz3Qpt&PyvwL%c};6{ca0-ZY0_x7Q`km%wBKI7?_Yo2b#E+cSy(8w)2_RHe82tMt;X%Q-P&j(;&|pgbgeUnYMz5e=}w6*QmUi#YCPCDq&|J-cr?XoPHFuqm|qjs~^meLURlN+vo=E=uF ziBj*aabFEwR=0oF)Y4iTt(_5PjMVExjFF-!j4{Tza*eRYSYu$MHKx!=rPcspWME(j zKp6Vg+VSJZD`mJ4u-5baAn==mON^G%qOi~g)+qPV2FfCp#-SgrRGwu3nrRl6%1T?u zK)B{i{0fPM{GAP~bNDj4C^&b%ArttXvM{4w(mKI(SEz0|Ezk4Cix-#6WyiY!pp@o$ zYM_lZM#E_Lw=fpQKq;dXy1Tj=Ct4{0rBbY*UfqK5BJ`4my!jz zx8Em^xaOvtZolo;r~dHBRaae=D72I8<(FT(=iYl3%ztCy8*dn;|NQctho73aXwi~0 zPCGqGTF*TH%w<5<(48rBkkQV7Nh4Mx!2U32b%R;!+*DJ4uv$%PnPyr^qjPq|hGctK!Y zG@WHsTV1%VgVW+39E!WU)8ej$;BLj;tw4*rySuwff#U97thht*v%h=K8T@6C5wf$^ zE6<#h_T8Z$jj9%e)fk7p@H-gJWFA5Y|7lFkz~gi9D|4G8W&6G!vh&O;qHGmoDh<1p zY4QiuPq0+e0}NGI!=k)~zrn+ythZ1CoXZAf>a-HGiauKpzD9W{M}=9@le^pBA=7TN zKMEX5H_J6XoAkoT#E;XpY1`;Uj&1ExzOw|TYsz|dD;Ww7WtFR@H;U&31Sz+3k}ddJ zr07W{->gSI+jp`=34eL7d)RPv(!6_`qO;FR+gO=6FUG)xr6SLFDWsFYz)_yD z!J|9YsPU>1*vGiPF$j%FtH4hQCi`HuR@`-#xJ9~^=1ybA6GAmY zUN*ilF7GqD7ba_>{Bp}1}bR6MKu%Rv@o5UOPs8y&J+7EY|a-3_lFn7hrV$n zhzv|XK#%>g4eO;<&sCpzv7c@BDuEJ39OjbjluZ8fcQUrH$i1nFgB@Ma9p#-+ix%?l z+P(K`fk z_3=;tO-*PR5VHDjfoJ_X+P$-YX!$VP3ryz?i0^?=hslPPG!QeEiE-qBGK5bYqO}!Q z8|qyA=Z64uD@VP3UcEs@U#qz^Bc;9MzGN2x?#Dq@Iytprj9Et)O!qtaAXyEf5o11> zZ)%^#!tw1gAbPNQ6^%(jnkcrZd&rU}z}Sc%1kEs?V%k}~GZ47p!Ai<|y>} zjLt}=x{oO&n`;QMmLywL zFrSChKV2d$rJelPt+ZqN@+(8vfrb$gQudmg%V=ne{-ms-Rn03z3}ep4Yo%XkyT}WJ z97*s8GO3*oUfOpgLdY9q%r)L=ucbVg4&a<1uyn9AKN92Ul{M+BG+T%6zR2G{&PxP7 z&IM~%K^3`s{X57CJ>k4phtT`QD^j=I7rs?hv1)8B%y4D4KRPh)B z`x)n_XAzPo|M$E775nAxb+)7H6Z^n1_YKdIj`OG8D}&eTb-s=}`E;)pjjx`8Jtva_ zP>2JVxeDp7NrKQNr2Ge4A}-@~h673apPxH#N++|+zUn=%F~<-$Ze@QpaD5$)etad_DYuUaSdEsEi}t6+##V_~K{Y(1!Q3`h+m@n|!OX z=>MLJPc4Ku4NQ&<+&5fR`R#?a$u`#cAiesp9TDPFzH4h}6(tlTd`94YORZgA#bm33 zCI>w&+lE`9yJ*;(ghKGoP5u-zVv6tiu%}rxKh6xll1+P**Ftm= zV!qmTdxdkzttKJ)*^H?vP@DI?Z2(Oqzd+FSVZ*Hp2r-4C{76u6q{C>^oWw-_-B_JS zJE?1z7~#oihsnEZf0W@}RQOXArE%?0fSf~I*rIuZF?mL%D_}0Fy979%#o!O~iB*tY zYB3+xil)!w0&anyV;o+qU+>pnCo}9doA*bh{SGJSHq>pjL}jbl&)VZF=g8po5h13(?S;vh7@o{9s!wDUSUl^oxt$i8p z>pKT)7xwK7oG8SD(n35o{ETx@BSvkS6}G1H^~@)|6++U{3dvC27fUCuORi-#{RCm? z;x-C?6M)xWp`ocL0+|eEdp_e>KPwRlNwW?9IK;dvq-hawi)}EBbR=(7Wic#e2c5_kWPypGH%9(4W|4lTPwgYb5Sg z1<-{5mMZzONAK47-nEKsJg1^N_~I=(EroE&SpSktJ3d=95VWRs1XXHa}B*Z#m3yEC8rO(A?j4HZHukZf>%l|M>g7t$4~wVt=9-oBT2J zqbXMP2W|?ijSB^kEU#wQ{kVum;Tt79q7% z%qrQpJvPVq?fFLFu?QZ|8YUE%AXXGvL28zEdCyNzvBkd| z(Msaaf9rz?cwU68{%q5a=yKN*h=GWvj>_6nRGtXL*0*4 z0=tcB#ka2R$>CXg8yawQ=FdbIkl;H12qZ+}L8oRGlF za=uRshGBSniwVOF9uN3A!_-}AG{i1SXERIr^Y~%I`vD4}`wXDJh0agjUuWf5gr25o zj-&Vu8Si@XU&emCxEFk>K5*GKR3{R|)UZLy?m22F+i1)TPECPAz?|(k`=Vi0X)1WGJ9yKYD zRNyeCv_yHu(S`Q7YAdntxNH8rd6zB6+;dro<=^`4G5-0&KY*=N1NmKQhXxGldrDyf zf?C(^Hy)}E4Q@|3{M@WF0|GTvjV3gI`F>Eajt%!ro)zj|{LpjbyH@wip1 z)6er;L8Seog$6Z8to8r$X9*RZ`z{oJ^?gjP773cM9)dPGaPMY{w^CVKBvKW2Av|8VHi5hMAj;A3!0z%NN#rjp8$Ej@2i&QE4!V?w{iz#7& zm>2W2)VM%4csgDfywkSB?A^?V`}?v(T8_$oXqXjyacdZ_2V_5%&GgctU4n&9>wZ?!aaeLu(o#waux@OwCg!g*L$jG`^ z&lRMedvT02GRgP>&ZWs*Zv-BAlNlS1jAUP$APT#*a`Awf@kwcq zP^0%wjNACv2$!7z?Gdyk0&{jH+y$@ChLz3)eSeU}LHrd<^xDN0 z3&%}g-`}o=NyCg(;`!z0330^fsi)Q}jg#Mxjd6vq+a^%Igvv~rE*^8r&4{qN+%+u; zzwW6yW}>2?>>rL~3{9Hkl&DzgRxBVOgxR&fwbSHyjB^@~QKo0N`IrtFHY^+0G@^cM zR|D48g`yUb7`o`<%9_570Dm)*Q>$O|aCfH?Y}qf`c@+h0#!P$ZlGB6S|V}Yb$T;nm|=I2{5ivC z2CZbeFEZtGUzAf;nPhj^`&z$E7AVsyi_~%|&>79o%{4&ncc_l?MiUQz2*OaxM&OC^6_%gJba;fv0jWEO*Le8<6yn)G!I zFMt}^$gEqKzq8!(v24A{x?pFXOcnH&vZV&d%eLOx+V%>MFi~Idbfop4T(B%i=%O=DHWQ3+Rd+?yr$~uy6Ovif85R4 z(m4LBe`I7wJviB{P03Y{3T6sfS3lXSHyZ=|hyT_9HjlT0_Q)nOL#Ze2x1rV5%+@>A ziJz80qdYTERZT!Tg0^!>twzgh#UJiZem}Geo@9qp3hNIzy%`aL9Rk&%0P$%?QD~+% z(lDFj_-DL$nIR4&BxE#H_Y@>eo1r!rq9a~ph?zFUnBWwaF;YJH|1U~uj(HXJg+)VA zPF&H4QV%_0eZeN*A^Ehc=xQ_O4D-d#1SYYnkx;4N)I%s%IRkypvf!-O8zk)9R3a@l zm#aa%_rpUG7+dDhY#dxI<66+>N-L`0n!$#o@+1hi8fgj(cy!J_6mSm z-d=4}N`^e5c zg%xx{uK$S6rsJ}q)tZRDKXsO7p4N8_bmqqUe%3Kg!|1o$l9;!>u$@}dnV{g!_n&W* z#C9*QRyP;V!+BD^h8I~|%N(v12Ks&t4$Dx_r{qvYmDtb_!h)g>HcsZCJpCFxpAQf= ze3tQbyD+``*6l@s?#r|(;g?~;VucK^%Ru{+TQZOdGO1bE-akLw;phvMiOIsUxy|-> zD4q?!o8jn}d4soW>8Zl1&8I~@!LRs~K?1g8GzghVxN7&ul04Zb&R^4sFxSS@I>vM+ z-?uu1{{;e!XSeG~)idg{yHZ*XnvUyEN%CYZ>yT3)2WUNGUceOy(dyg@JrTaji<$7Z zYMa|9t$kodjV=GZuW%s_m8(HM&Mm&0!Sz+1&1ohm@EK0zXVa39Z_CC*`*vtY4Br6* z+PdT5yj6m`=N#c@_z#vSBSw`wnKd%xlNp~3FhaA00CW0*yQNWxQ~&?500!@AN<^<= z9T!I%_Y==&Z63sB$Y6?13 zFq$kK<(SVs=u=%YI`Vd8hiZ^u;%6yVTi1DXqiL1n+HETWZ~fFGdFe2FnPoHR)^FVu z?hYfvp^u&%L)Y?53s`k1YI7?3IfV6J<5eL@CSRQ#Z4DylIO$*|97+KP1dJyuZ2X}H zUSsV&wln@&OIsW)Asrs%6BG&VZ=+f3mX=Uiea=GCCXH@-D~Z?+A6RSbhpyiOqYWi^ za)Hj~R=#7$|DuBXxNENY?G3HxHM`~P7Zf?TmrRhEjENV)K8sd6V_MR>(?@|e7gh{Z z(c6a3IM%r9O6otG7O`vpdZDl+e{sUU^Bt=>YZWSYMp`xx!RG7QFwY#CB097*XXI@H zCEsIY!^wMI&Fkx#z_{<+lAp^<pW);M>T%+bKJTh8EPUlM4pDKYtUpW_j&Z5)0t|1Gf*mI zEXiqxNAFH=9xQAs$L;U_<_Cen-AC97rue7rcIm~1cH|U4XTT|v1v{Q3wugzTp2hLX z5p3pq-HhM9zwAExqwJ>D8Lor64{dBi45N2@t(k2pCIv-UKlVeUZPU2LS()d+-67`6 z-$V1IVVPS4&A3A^V<8i8sW`Q&|A>C3a6B=@uJYxUKW>6AkWfxN8EGil3v!0RCTdi{DQ7*Nv3keT!`j8t54kgzK)P-`0f;Hr`az>8rMZN10 zY`qbd@_R3w1A;1BK7zXsn8t^8ORP#BYW!a-Uh^uiJZJQ%0>pdG7Av(MpKrJV*_wfy zNG00jJDef1Hj^l%xAwr^R=_5i9Um$Kx2C+FF%x$ejFeV9-Ef_A&ZZ;PbAd<;og?(5`l9%nR)@tuuS4lKV zP)Ay&;tv=pV^cf;<>T239mWE68pq-#Y0Cj|;PbTZoU`avN_ zNAOm7MjyK38Rl`0<^QIP690pWgn>v3ynwiR&%qPhMB z&9dre7tOr*m|dPSZIWynd#Iy1hF2uioun$F5GXnpyEI;MoX@LRzG%vMK%7Vdd&e?G ziPjW(%(=?7OJ8ZOv7#cv&vCuE1Qb9UuDgUI?vXvrSHeNAfQeI=V9SQ_;Wm3_G9k!C zN=oYMSG?CGC!I64)YG16+4m}8C)!@V5~b7Q<5f|Wd)jfR$6`6UwU{)9I%yn5-5Kzn zl%JPnT84xQu*wP&KBHW*q(BCqg=0^W8E;ta#kNe>0jcz2U=E8;AK2ywactC~DQaBA z)D~Y;d%AlOirz)PCpLkh|4uevZ#oiBr&b(k&+Q2}q~Ci!s) zM8{{Ci_7VOnUg+!qW%DTH{AKg~?;ogmS~QnJ_|^y5d> z!^)!Mh%jM&JgnMHByhwV*;CD&%e*_g>}=eo6`O{Sk)iXdm}DH5hS!ek-(nEftag zGhlxN&IFnGFDhU31pM2CNXuf^x|Jc%CRH`62XU_z>6ix!r9KA z3Nj8l%1cq>Ma@L3(I)|x*pfyykSf(ht4?Jk2$lUWo-Bp$aKvaHIVr4omN$pb)6m~X>A47a4 zzn;KTJi``kD<{3Zpcy6?o=CQ~FsvfMMcz_kG?i4fV)_4cSM)MGEBu!PXt~KP(-~H_ z%hF}VMktk`8r!&;g*a?m(v^73`)n_@&Nx{^-wyYOAlJ_wCQ03cX8KRdjr+wXh>RCIp zqa0!2ci_$dXx98>WcDHGz4Suk@151w31W`JRIO{a3}ol_efuBAyK>I-z9#1Zt}i(bat0A zagsA>yh?`ndn}%k zz~+=zr%H2x6+5W!n$u?0puIZ7rrYT$%Q^$x&?wm=_hrdU*(v-Vn#nk?+gy<-YOWTe zxpuOdHae`!>h}t#W(xaV*44b#Bz#Jo@gzH!g%fDuRV-Xecd93Aq6%P5Um~Seu`s%S z4LqKD6#HVUcfZf#i#1A;*nr2~VC#jiI^U3r4^ERgPKUzHg(&PC?7E@z@bgMGwZx5% zSqJ1dr}Gq(mBZv|Jr806gxlw$x7M<$ zCRr~z65DQnL?tG#e))6i{L$zz^303L#MSI`uzy#pRvf{DlJkEOf zq2x!D*CDAMh}PxfyuGQ3>?P}TmQiOnC;^G(l-jO(OAoJZ>0WQ3F8GeR0$C(ONr7VViJ|706+f4U27b1n7^l|<9Fq|tvi!?nFq!1y znjr5WkJj(|U~ZH~N2AVW0Ol2vt=717|*& z<)Rqoc;ByV>Ho_B%AMBi>}>fmaSTIb6(Q~R%91)ov-2~#{y6Ht)5k!%<5fi)Tv99M+&ux5~_tT1DU*E}SUmf-Gzgz&7C2^N{ z1t%&V=%be#!Wg}~fCu-<`zxQKK1y`5b-eyOqz3cm`a6FYjfkJ3dx=$g!ocImp7k#c zH6!;%>v?^}9&PwR%y>khN$p?^A)DPX|r=ZVHi z*P3%QJx&R^_ilP$bWE+?Z@o|7`1yKPE%rLRD=EG7A&B_x5xQ>-Jopwj#GfG6!fbjj zpLd-5Em~~}@8#+#3Ej=ps^h8EEL8!X6%by_szQ1H?1m{kP1!>=Dv4~) zJV?fikL8?Xj$#G*%;NRacF58&U}QS?6}7e6no0$B;?uWMcY9nUqu?*O&intk_Gb;moGR)pfq z5&nPgBGQ*s-qYIF$J&$X4!elJIqG1_DOxiDPD}XI1qp)}sQNlg0KbvF%o90(Gp4|L^^d z8TH{u!tsEdb$k1lt*hA7T8Hir;0HjsQ1xDp`^N|`E8RjhOM6~+&=7!yPLM=|v59gF9*b_Gga%ZX z#K!T`58f1G&-2`Lsn_+x0D5iOcLl|%wgFfSZpt4N<8darM9iSl1?!EC4ejJ6wOfeI z_0Q1=HAEPd^eymb&6CAd00%-3Q%CZYVbxG#H0bVZX=&-`Soy$h5ij#5`2~sihARrf zyV!>R2bNEWje6+U@?P*t(#Hr!K!NEhgce!B8=w6UR}lR+EhRiEWVJi$hd`|P(EPZY zl>#&J(EW5r^*Z*95LPhcoFjDK`uSmN|0d^+wvfgQ1Os)ONDS|@J!kOLtCACl#avVB z-t!zB&~`A&fXCuvbufNZlI^#88BX)=aN*0k^7ee%Ey47&Cax0(gT$0lUaL?O*gDG+ z$a}$PM(><2zPE z23JOC(Kl5PUNyp{SJC8mBx<#&LAm5h#t+1dzE^`%B;Kd>6?WR4ri0t@5-qy-9l%rD z1}W3xT_vmLG9(M+R5bME)kDum{}G7u3db^@zvsF(&i{}(7cTKmW0BcoIMeIzbH40; z%Htg|i{2>-PFa^04nsP_OlBMdu2JD#OHZpgC1;*luddC_YGhIUcu{^`YeU>nBmJ_} z7V}&Yz7v_|kw_FDxd>p&2u;CwbYb9$lZxgw$Oryra20&7ful1m2p{2SZaPx>JvSTBIFKCRC;@rUlF5|thXYO> z4#+nZ$$*-WqMTWtJvST)3`b1hMlruh^gR0eH@BT!wLjsNmM@r#0HxfPd_LZ6WqKOD zD7N176mAodm?;WkBiGwCw!z?dL=nmJ8Q3EqrPMjOvKQ<{jCjTgH220kc3LGs+6Q)z~+7FzH3gM{W_n(3h*5nvA6`J zvF0d-rAYQjrTAKK71v95ziHA@co(>~du9T6o`T0091FD{1yORjx5ry9FA++UEOgdv zb&oWA=s7%$)h<6uJrt5yW|>REsLCGkiX#pc?Y8C_NSm-CEtCdnqtI|%5*K3h?zCbC z)H#I1r6O0)m1_8)%?5`IgnX?UG=fs~+GYkH#+emwk1){(zComMRNSajI_QfI zCbOR3yI(^3B$Nz1R)_`8n=UfkR$P0CORxp^!MF11Pn$7aJ#pGb0{5GTy?t;>zV{Rt zD*Lv=&uuIk$&8+VFJc%^NmtFo&bn{zlmuT-`{io0xYLtB?9QNHO{14}OxnP;{cI-1-+W2Q+AkdvM`0hAfV&}iN>5I1EKBE`of8uPA z*|F=^Bne}8VaUj6E#$iyF=iv+oj@HHKYWlUMe;aI5i^lJyP_AXA(Z$}TtKM7Tp|6L z8jv&dyj?~6Z#*vzn|Gr|Pld3;qlC^9U>pu*w%WM#_!bQ}f`TPRdn2z~zcO;@26DshTJOM`1XL&qbV z9qVg6gbx+#+c22+9Y)*(^hZ!Uhf60ZoQ?RU{Yu?3R`1#*PC6xsWD?CMw7H#3xN<=s zBG;`sE2RJZC7qB8p>&()OL(W&;h|fps6+j>{M(!O8^9Z=hq0{+_-@gd$XkyYMvhRy zM(-*Y3+IpsoYsCmzi1jox815g*f1vwzzYTWgjuAy5d)*VezJLb9L&f*$^aPcYo?V> z2eQv#f++a`M@9<}c$U$z2sxsN@w2(%_g%hx^>|60KK#V*d*d_J0Z@rtxLCdW@2g~l zqxbqQ2*fVaV$T;>zx9^ZJx+)_&fBI&L|*-PLXXFA*;BjjSD$~8=IlNBl}}S$&b}@^ z&URZ}bSVkkQChLq=J%JljAt%9R|`Fp`2Jgwdw&^#*?fC*j(N{@z!=#7rt5FrGD~E|y!d;Eb*IT%meZ%r^g2n$@sNj!vK{;=b@luBS>RC&Q&(5C+ z=JzR+nz#Ka7Lhv(QYb0&KMLROO_@@u4l{r``?*GA_h&Orent(HsSmB9$)Zn_FFYp+C)R9k3HwBCA=3_1dAn$VHUrbaoHD)SPWZBn+?!a`-Da`Rl_vf z5-%5ag;uAfADbW6$e7MPYmd#R%dv(3hOh zQva5W&4Qz-if9Zlng}fhym}0}NcPnb$EAl=WEl1I>7kGv<3$~)jW|scEZA`Q<=Qk5 zKevW_Qirx7LWt}Ou-KL<(nRzP2*%eE{77;_M$eWVQ z2|p;F7Ws96RbIpAFssFPzo*;nwxs9f6>Bn0#Q$h-BtZ~uNzZ%WYtPfhFv*LBy8!|M zEK%zC9VPu8uVTn&y)`|&yuHjH>x>+%=co;bb}buw2AL0Yq;K2v!z8aMAVE?F_-r0r z=NA8p@9*tA^2~{s>o0I2e@wsBO~!w*$i_?TXa{x@Y1@P7VE|;j}LUda;vP1V`Ve)}OzTG(<^^vNhr!#A%@FurZ69;d2)+*#}dOE>|Zi~)jvs^et{UTRGUxYl|r+!WP zBw)e=4DaI!qq&tzBO7&@0SE*bYaGp$U{zrbvo+Z{5S1v?BBP+F@C|warM@mPK+{7H zW4JU@Mnf@ov6e5yOTxlWW&HAxfu@%^E(>Sxb-;_>?L#tR%7xRKF{chcSxl$o#ze2D z4S^ja<8Xij*ltHt6lAStiG5Q83NVv`nv=C7(eT47r-BBi9L*0^WHdB-q$+G@!AXg( znbv>qczVt|a27dU>?Vljo#%h#nEf}J8-SRmuRyxN1C6lX{2w#6s{rlfpVcx!S6=eH z66~#IicOOs-tK@pBe1^n0*?KP?^1%2kZ+2f+w&exk9rNwK$G7Xx%RU3v`|~cbO;X2 z=Yh|z-^opIlda5v4n(@{y}y6b*&wUrUeP8r< zL@OX9Rg=PE=pY}Vi(9Ym97on}>QnYlTNr1{A!!TOj5a@mJ;zN8*wiBP*Z2{ZTwnLt z{Oa#J8v77Kw-K#2N;Qo9{Y6YFfq8Xy<;C-NNU2aViJ6v78H&Z`veQUB6=ATWc8D*& z42g_rWicrvM7qINq$$AmGt(~76t8{%$yY1l|Auk$16|sYD)!~t*f-g7%hOM|~D*nDNlPR`#MP!_` z&oVe+ghHXgoUkJfPY?__k3OF{PhU=7x0j>N>!%9)vM2VOkst`)UIstBoW)!S?&Y2U zk#j>Q_C(bSWH3dE`oi07?2I6JHbglC&6Q6BZE(Yxd;(jKB|Tk@+gI)+ofmg0x{j}0 zEwW23HV`1f38eC`g;zgjFJ-C-8^zoK>di2kkFpn zS+wwPtoY2DGH6EtttEUQ99n&=F`O~hJtbh1JLz8G+DqcLyuL)yLf}4f%Q2)nf|M^< zqr?6OeO?GqeJo0Zbq63nK*9>eF3#%08Q-RC@$5>3YJqA2x0Nufl4g!OD2@SYG>X)L z<{Y9;a)bh@RDG;C{;2@f>rk8_j~{%S#TX4rC{7n!l_w6}Q~W;`U@$JfrZJJ+|yFb&RsTe4FoY52TI;#@J#;js zP1x2y)m#4K(uQd&{=l(MG$tYk)U&nx&M!atKp`05JkeW8HCUcB&OSC|8-o#Q)C8dt z`ckJw8Mq12XhE(~X6#42s@3R@|5g;UN7y~gY7-UNeCB)di2Z0?_Ng)vOrUL)&H`!f zrs?rZkmlsed=rVy#5@?hp$I3E63^R2%hf|~|%@D9%l+lD&uMb%Za4TdUKp7!4>?m_vO%9hi4HIdKi5p0xCQ;8j z*rZ%`$IB@98ldx|J(OZmER7Q&$t%Pnnd@FDe6@-B%36p9xvQ-Z0&a;?xMp$Wl6ySH zRo*wHS<744pBN6$l^i}o?*j-I25HG`*&h7=}m$EyM* zrxro)$@MJvG=Z`TkHxeS5sxViB;3wa>Tma_E1IRo+VEnRLp_pLB88%^9E(HC+Fhh3ARE~fvziU)> z@az^djSUJ$lH8KAGlW8fVFpuO429(>&Na?hO4C^l<4UMh7~mMRVE+!CWkLo`;eSvZ zkK$60p7ZJ&`Bj-$Zq=Bd&m~c5Zn#@fko@)Xclx;U+Rnf79O+6-ox6cWQ*K^V9XEEZ zYu}vXFMt>ubbEU{o+IMFQf~$<+y({)=KTu*2bM)SZA5_iERj!}-P%%;8?9I&`{wE} zE?FL?X)9_1!3u0y3a>(GNN<|lzLVVkUp}m#k4C3bwG1%2KT`kw#idd2;{?|AdHo`_ zOufs|Y^N;}=ol9dwr@O*gU+|}prezz-1T5QO+7P}^5;bd>d!lQcsqh7N=6q12~x&g zY4R>FJ+ppS7(^+MmZtB*=RG2iGXrV`nc_J!pQ;(}1hY(ks}|LRS>xNHFQG&& zSpWW|^*>Hk+PDGc#uwi?LL8L-^<9OLzPYvTuuOGWzPoqcp|xz5ZfE*D@rCs~bcKlj zyUEF^Te#f>`b~@E)tZ+>e`41?qkcz(uteE}pbOHs&4*`_-QZ`ck{5m_peWf?h9;!r zSuBYTbkYYuWvE)X%D$*1dOaPLxNmw|^s@m=xB06?XW{gr5VqzC?lqwLyAB)A80dN0 zs?gvoKbUJ|s9E@?7Yn~tdIGBb(B$q#jWgjwW1V(Np;CY%(BA;ZDTYZ*!29>Ra5 z+WZ4E;>$>7aJK;~_cgbTZ58)8_y&;p^jarSZ@0dMN0ca@ui3n#-J^+-we7k0th=@d z(cDdVJimqMIzBdi)D1)`vQm+5GVe$5AV49xdUN;ez9rha3$8NnvO5YFVUhUmwvZ5>`1`>TDmp8ilgOe@>!li~w2~b}7 zX`%1(XDTGb6yDGhM3Pe5$LxJhDiOiCt%Z0J#DP?_1D1voMI@uWhqcIZzt%p?f=&qh zFjxd-IC$^u-gYze&b5uoi(dv8&3mi&O!`(WMaeEoJ7#p141-1@Uy90o_L+TNoegxadO zNV!Tgq9|T9pedRHltBIS#1j;+?w!3f&&+C?=0+rC!vM<>z`adGJy%Tu(lP<>(*GVj0`h{b~<}s(d8elwrV6))WS03NWN&%G2D>JaPHR38{YC~vD_qRvce9ivQJ*= ziLCh*e~*vb-`}1srn0*LB3mK?*VV-ZY!W_bOf)={DxRkd>>Y=t0f(+N`<~Z=7-4{b zxHB#4B+sJxz<0D*a6ujA!6*{*%VX;?UPEUC4yc zfR>drUfrV_E?>*lm2RnQ!uQq9e&r!+)V27V(8?XY2aw_FcVbbJC})(00k>|e|u(hB4IMFWx^Oi z9)@i@b`W=WTiK9k5o4USmorM#iL|!(S=^a)6#QzVLkEg>OJIZg(X2X~ha zeOStQI(thlB~OG8eJm|Y8yXVWB;#UA>7eoDFKHE^r<{H9OEA=`o5ml^)FbefUh*$m zF}EEn1*e*jt%`l5+U>@uBkCw+@@WCPTqX$&&_6LK)-Q8YYitVQ>4HhE6S9z{P$p8?iTs+TjCEi~pvVL;4h^MSR zQT;a7k)h%jjtCld{6`ya3oV0fr_*CI%gCK>%nB@gdRi=0elpnLx=1!=V$(ENT^_|x;2mC7#1wHpHdWZBHJ!Gmtru4sNH6cVHGa_L z&mp5Km6|2uVLEsBeu66YzV9+~YJOhVVgMUMD1~0R0I(Of5 z_zx2N+YkF}Me3ubR4KWb1VP&2PG3u+b95RVHlI;n*B=yx^<*%GfFX&bYq7X7`S+m&A+J74uZ=DI0(P zrgavrjew48rS@pwmlrS|6db6n*io>)qbhn;yke=pOW$Wo2qOsX=+WSq^6fKI`@{?s z1D>c|Wn)}ZK#@??Vms9g;qZ~P#$;^(18*)#$65*>1RZvuOJ13x z-9&zVMlzzZM!?Aw84bEv8PW2BF8H$?0sxxH45iOosYLK={E#m#pc zpG9aBfLyu<6mb)&Y$gs4vAsC(EwTv9G6aQogPrjKP>47{ovWR&dGULyH6*1(V+;im)YBLJeH)fJ{U4gnDk!d|-NJ*r zyGw9)m%$}Cgamh&KyY_=C%9{HcM>#saMu8V!QDCgJ5~P;S5#3mdw0|C>b0IFRD0e9 zI&LXxv%)4UF%u}^i`+v*)s4bq4)^iyv@XVztFl3uz#MTVW&BCTfoM~`FnX`(PuWpF zOsU|C39FEd$QZ(LUi)#KGp27Y(5=gu#(t(Wlc+*W=MqjeKTnGWjw-}}ng zAFA5 z`c%GA5(87BbV#TUo0)dPOjKAiS%9C#`?_`27nd;{230@iVu7-t1D<{!f!Pw?5e|6U zGgvLqoy#zKdo~k$e*8%sP3uA0S7v@Lp{@HDS_SrsDfVLYxiZGHh7J}m1jWzsY+z!r zne`J2bqXcQ)+-{i!C{BZ_q)lwN8^P$R;4M5Hf&#n1k$C2O*OJ`^QpAV{$mKsqelbp z?`T`hD0&-~H8N=DoikbdkZHlPSp6pP$S&pII3qh0$5Qo;(byrYZ2lAl{2y@?P{1%y zQPo1n$!z9$lxGLOz|`w%#LQWrt#?H99XcIRR}HJTAOr5USr)h;_JYL<*q{sBafpd5sMt{D$O_xC-D=SNpv=q7*QULG4!UUX>QYd?0)3? z2Fs)>#~bX9e#f^-N4h5A>%9A%!}Vzc;D8y!+Ik`K_4at7)uHclm_(LrV{=o?av~D| z%>dbWDHoI2?@tS0Wer8m)hz1%hwSf*8ie6TuB(A;ez{?`w`OQF!IU7a5DX~R5+^c( znSDim(6n2@4g#Jm6o+h${S=Cn$y&1)n440l>oYUl(!Sz%Z0+{i+$#;xDWiv4RpWPi zQX8-hO{zvs=H=%f&u%LMvO(Ckw(+Wc=!yQ2{(!W-DThLFTOspnU)%lFT0QqB`&crnH5%>V4aV^&S1lqGfU2PU z21rX^cQ$tD{#D5&J&^J~dA-}HKD*EH9%el6em2BCrukE?%_0toU3orfyO#3UxL#iG z3pm=l>bqKOhT%Y#K&38fhhKVCL`4G&&yYugk}7bWp0${rb82b=cCDzP#XVF-_W)fRzdE-S<#!W>H zmd}QAQORJ!9~{1M$H%;Vt%1ouEP{)+7D#tkBh?MTM7*5XdVA{+38?v0wIv481D@e# zbzQIbE!ur^Jn?lC(7pPYmSNyKRGMMnhUTK#YQ|Ym<8Ygz+V_?KBxNslUCvqj{P2p<_${Y_6{~#T$9;lJ38{SF<41O^jQ0k9 z29het*#HV`++8WRz<(K%>-9$*HZ#^22*kg+UbRTHLaKYOBtrt3u8nSxypBmqb z3P20;B4=>c;@ch_cX(o4KmQsTm@b}T_DI#ttwv!((}FCrO!jSUHc_TEji0{@$CLBg zXNY=ic|&TjWK~6OWA`YNy~%pXK+4L>vZ8kJ^YCnQ6bNacBPDpSswy0~vOKFo_2oI# zpCy?=xBw7}(B`QzDN&`)Rwi1zgoJr<0~yjm z*Z>s>-^zbGdyN0b0@$XqJb4^Xpltw{ZD{d80`b`@rAWqlEZO7OQ&4at!Hd+fs57Qw z2u(O7F9kh48?C3VLJnDUmTU1iaB549+}|gB2MnBn+#XB*x;dT-g7BRtZUPzApBA9uK%IK0PytX%_t zPyajr0qZQ_#9*ZP?QdifumxQ$_1=AwY*?X7i5I$RpQKZ%7c}U#=Y=ATfC=W#1nMH_ za*ttB#ul&(vZHO1K#6=-IUh2bm|D&#t5C^0^O9$D_0a2{7ka&iT;1pUJYeb!5PI!# zZsq2Gb*4h6LL;YdEG(oc&yjq6JiX#|Ka0KcVku7nkCC%d;NWnO;u>dK^YI$@$nI6H^-r!vtiGl#;|vkXdxbHh{Rs{ z7@*Vsa*o@7V0bh^HTi>oHOEtWH z4QE@f&%-24EZ{a045=xq4@+Yj-p=KtIxwAyxjfg2six!jHl7R;>)$nh6?#)PH zD3@xGeC@uRP68wDw^UuDHLrXv zVxeCY0nclTi$S0Douyicl``u&>AwSZBk|KxqwM!FwzbL8vPM0X)t3VjM-ZmmAAqGO zk0|`G{Z$F5m@2#TN0^F+{Ux9iF;}I}Mxtg8{KJ=p^x7^|@!BoMQizM?PuI0=dIN(# zUuknqP0be;uHkSD3dcO{8to8Dj#(YXQuQ_BDz4I0&bwu^1Tz1Joe?q*eL1;^20h*m zza!Tyzn7O2@lRJBIkOr}UdNT?d46|o(L?L#Yv-=7w*(l(>$3}U4O{-ts_Q4rU8lWG z7J4HT@2u9{JnutPQV1&9t*^krn%8x783sdyBiDUAP2=Nr=IfoX7Io*pT?$NX--p7( zeE+8?``X)R=Gv+Xw>To*LU8fR|qu;@#aUJkONL{9+OgQ>IB`%1k- zwhKH}uq|HyPXvl}!^(N{&ux94H~$Jr>>Ky%&bzVrL?M68rXLUZrvVq#-r2zME_gmx|fI^3<=I8&Z>JnTuz>K40-s` zXE8N6QhkfMWh$H?#ECpMQ!bXW5X2~VQmeMbo{2YO52AAd_Sj_MZsO*No%pQhm# zz)H&n!s{;?^jIo00F=*N;OqJeJdsIrF5@3PJqETv^p>C*O9k&qY--P+bDWh)GB)-7 zN^!9Y@&8QM^*O(UMhTyCGOJkLIgN z=tGP$PerZdY|Zfti$+0cvgBg*^O8r_T^eHwU+4QYhS>8iGYr>VBW*PSiy^1uFZ?b) zw-JJTuiYn-uRq`#2D+E)^k`x~P&lS+4^a)sZMrNu2rFkNw>qCaZuRWv`3%RA(0?$& zfu`j(rw-Fd?aD)2R&=a?%N#mqLk@ldMqj@T0L_%jgh1whl27h!f9EV`Vc@@8Y4vi+ zj&UgR5q7_gfNjI%aKnAY`Pt{Z^L53Gy{zd`3SIE;Y)k-GiG_6swjIg^hf8^GUFS(M zktUzxSZVKb&-sS)^oAzg*Tt2FtNMWi@BQ00l`Owz$SQsQU2ca%j4%Vl{|sBKL~FRF-Dt<+UTq!HA`ctC5cmODrLpT zs+-@|)*K%nV;ONonF3rdEj}Cij6W#TwYD~E^w%wg;`ZpVyqA~vCg{R5z?Bx98zJ;+ z;oUNygsN??kK-3ebf?DS1XinguK13bunNjouDc$Tk<|6w9zgClJ+_!@d%fj3m7%1u z=M{DMKyo2agWsA@-*$o!dhhoHfkLtF*G0XyWzXPAr!kvyiu&oG3?sLZ?5}JB@4G0L zj@$<*Zcq=0c9Lp}aq5{zqVLS{>4TZnGw^q_%YiM>70JPz$iWPXq$7Xgo=TT4n=*VQ z5zni=3Bh1mu#!7gDi%iwkLd*>1FsS>y!8+zQL|&JG~*3Z#zaih@Dje*7a5%cn^)}w zj4t2CcWpG=`Mh+Cnt>{r``=SGQf#H(Uh?S{E9;FNLyRyM_=W5BnM>+JmRjU=msR5M zQh_w_4tZdl-x{$x81I+-BcvXZyu2^lQdS#}GV?wqDqvF8R?DR%_<-gimQZ%+>?UFQMj zJ;b~nd0|yDl6|`mm7F0F37bA@CU3;m3N&Iqp}h3dktlHBFF7KMD^r04Q=-f zFWaH#T476QZ-+Vn@ZD$B9aX{1wXIk_S*EaOyOd|xR&p>DWHL_)y)1he`r7R1os&9^ z{w!XiNTN!kC-=XYgd3j{f=r;WKOKl0dbu>!SZ-XGTUq&9C}{>oaEfo&7uR(^K-;E7 z>IT8Wow)J0D6yLAXaoFM%O-%E)zQ(>)8khh$EVxt``GThcQBc~G(WG!mf_N&ud15x z$A?5geak+>IhPjCb86sTv~%gFoQ`tH{n~r~S8`#y;)Y@gdwCrPy^iO+uFsJJTrhXS zePZhYE=vXtxB?yniI#;!rHFTWk z-JcjvjTxU!(f1a~ts-^??1B#wa+`*orjIJwvHN&EJAW&!3@=!(HYX@w7@ zqINb~fZ;cLU!!{ANrNMo(cbQE+keB}KR6ttQC>c}GaSNO#*Uz})oP z@AO}DIA;l_wW<+Hr}&CEO>Z)t_vr08y&AXv6kfGLbVWB#uMb7H)Wez|n(M-d>k$na zAL95AroW=7w*eEC;i_i!A+pXgUkMMvblqpo%I-xq6OH?7YKg*1LD=RKHuLPp@0KbW zGf4EDB}x|Dx3#>*;hkx}e3Uc+o%$QV1>B!nd2z zpVTfh3t^Txs>|a?>%M>|?-~0MQC>!i;_0+ys3$3T&5RY)P^ua(r$NOT5g5d67(AK3CX&Q_4WxXdQ?pBj2V7ozUjJUka!mxI5RX zURbCG40p%X|D808WMUAhde0BP39hvQUMVXptNb;?WSUlo5aGz8H0E>*jm>SWV&D)u zXEG4Zi;p(>-|AXiY%Qr~GFHvuLJJ)5@>z>sGWx!S^}93MV5OH1%gL*_RR7N>1fkqX z3FuZh>c(1DY=*KA{cz=(?lc3kkbdWB1=kwV9^vajzWt!tfkuO}YgdJvq;GmfmSv*1e?YrlHNO4rEF-%9YdAPXyX!NN$K&qUbH&hKL zdx;&p4U17yY&WFr0bBnyk~b`nvlI*_GJ||=mtg(*l5xlhz3dL8ktv7ch>$21-}Xdr zrL7eO5jkC`Q|{1(p4vMSrZ*gio4Kb29A*+t%5&ZBULLQ*22&Z0bPSkKbgJfU5B+=s z;2A1xgil*NC$n^M)5lK5AAbtggxOQ$mIMwFPgc6>#$;M^OnC}nAehvgK=IifS1gPf zIIyM6(4?{cD$BLg?qp=g=c>3<3vR8QE%NXI*|-0sl&9K*t&F8WPVF@R;=)3bo-)OY zcdc@=#7G(V#X7KPX}Lx>4pBx`RJYrH;fW;v+!``VeWSmYP?|k_GT0YuBQo_D?T+KRFvW4OnPj~07_w(2r228Kp!iP@rd5zkz z#6of>q|RWkc>~!Z%xH~D@=(I{thPWkD3*PJAJu*xEE$4LNp{4dmN}SF*oeX29(X8Q z26^nbx>+duj$6(-0!eBm`u9XI^wbwY(j4P1`ZUhge`7;2&2H8sOx`hAh)_Ve5J&yb@L)a&L?)!IYO_6OlXUr-NM`#Hj&%<74rkRlw`4&)H25GBO&!?@10 z&{E5w(o$Nw26QWOZ{CED5bSGSgL_qlC7=8bQRq&eM5x$?TPo{(0d7|XiC85G6xE=c z0nYs@!cI4Z;gKB6pSbS>PqcZr^v&JkkzZ>wmZR4_=7ijg)oEF=r zI^N?Uj=e|2aEH0~hvM%mZU$tZN+(IrX2L&Gz_=wUGK(whv+fBMBf?n?KgrsCACw%5 z+FSYjc2o5EP;`}Sw@`e`2!H2x0Rzz3}YXjx%pa*f&$R`6F{3(L+$>rM8M8Wr*ueaR|&zjRB1fQ6F z&fj=fXS1wrJ8jgdUomHj@S`IF0*vPO=$Vd>4c+eR{6908V{ATF<0rD=f5g*w`)z?k zue|AXI7z3P+d8DJ2TcBG68FIfhhmj(Z-FrP;il=QKWEb&8aMDxd&WmQySjnES_nLv zt(_fr_RJHc4hSd${-2nkqVwl!?HXb}`{mivk9xYg`0R$H;XCyv1Ay(!$EWMii|)EY zpRHVzt<4^6L&d*o{_9hQzUQC&K9?mjk4^7qvd{W%`-8vrT2V(4$6^ViLFvjw3KBRa zv!Gf0kBEec(>P{vrxG@-!MZ0c=+Mf&@415G1l`Fhdl-Gsw`(6a#h!0;%;bK2u1x16 z7LMIVAtT$stg0zCun0ZeS)r#8cfQkc1$Z+Ax4!o`M6Ak{L9CPP6Z!95Tkn_gUFYd( zc_tz7=A!aOsDuI~)#2j-PkRm?>lRl}5aq1;!lPC*gU=D~Lnae2f`_tKe75rpW=IdJ z$SdAGd5Wd6cJ=4a@J5{NS-)F2*b$8Z3uW%G`jHX&g+B`qF)`XOBwki2GH%Iy=K-`TOVV$*sRaa&k2xUJzBB{Ffn zw*%*+%5(Uhv&&hHHojk;6lh#E+NfAVOS}D@H6B#4?cL|fDr16bQ`(QC(UvzovmkZk zR&%QE_TC40zIThiXrVnlehZ`28FcTX`g*U!f`)jYz(;@Rb6;*=mK;0ovh>bg zZig}q-LC#btftEVFpzF-6f(4%1`o=gMOWw+>^=*1ta!wu&RUXOLxxpldB)79PK%U1UI!)vk5uC7T7E<~Ub!>2`; zcjG-lRwG3kF-fJI$gKKvoui{8pQVgnLD%EwkSr0vR-ey9D58+;yf^&)#)b+uh&s^B zWu;5_=2(MdM&!t2F%1Mqi-`sfQ?pj|zBc5kfVS|Hvo9jP`clN>y=U7?81fQ;L`|1o z$}Y4Z@F{yl7Rl-$h={Ju{^jA)kLYt~Vz}I)5OMg1DQ;9a@qZj2)hBAjN@czkAdh-m zUVenJ$EFL?!c+v6QG=3&h_}^ds@e)T7dz=}e()!b&W{%~5|F)X$&s}i46KAR*lczcfOtM*NBc=qN5dyG)C+oa7%XH-Vd;3Cp0nqO93CGU z<$abuB=JCot(#h40fDamYD7Gg3$MJP(hvCE1oyMrw#%KR6qmyX$h9d%mDRH#@g zQd5}PNJI;24pxHQ59Px8*#L!28Q+gQ6WM}GS&+(IFPjNd#4)evnT{rjxscep`$fGA z6H3e&#=Y%M1J)Kzze_TUH27FJAX~tB^>c#A>uxpsw6%i^HgsVf!WUQt5PR|<^Cz;k z;IL&ET3B#}xwZ$j!+25Pze-$<^rBE_k^<)vhiov6Gf8A<>kckcD2y6bqdpgtd8#~r zF)islxCWavo08Qok~xSU{PPl9tw2|`zaquLQm3_|s2LirLK2%HIV_ZVTRMcES4L-0 zlrc#Lnu%%93@oJWy!|0xJAp({VEN}D|yPb&Bg0L23CX%b#rtx7Foe#ac7oHqNl2?SQDDf#s|2P+gxazq{* z#1WycfuG83*jSIHT4FHDP;%H{Nm$Nin${6g5T#;h%bgZmUDDl$BzFc^=ssk2GR-@f)v$YiBP*Aj*o?Yx`vyYXoLSt~J518*?31KEONU_db#_ zDdZ^(FLSv?bL8&s&d1O1lXnl$o=}N-Ds*f7bBxFADg2rVm)s7g^ZTx+gh}241<9X# z>r%4>oOb~V{)@u6aLw(M@cGLab6uuyEKM})8sB#>SYzEE7GlXQeTDkZ1{|yfyc4#C zP(?h-Gz`XAQmb%aYQU3DsipBR{OPtYEX__b(#8}7aEr=BO&4e3Q1A&cXx3T*P?!Il z9|oZr-FeF0@%$Se&F*zXduAxNrhc~Vkr|#J1$QVW9m%5a*a4nmsYXL35-4ca4h0>F z627ztM`a)hw1li15N&gnB(s}gP|}j0K<$@GNtFiI`+L69<9jxvNF=bEKYxT z_T6i+R69n0sevrpnuKO&K4=e`C%Z`Yh6cosz*S&%!#FfF#fMhj%F%qU7y`W;qq7JPH#?$7*%3;Aelyov;Wk*=Owk2^W&IjV@ zvdEL#rXR(T(P>PUU|z)iz}V{E+(~sxI~}^$MdfnD2xKWmFVdm;Z)Rw+KUpwnpje1T zS_ja)GP&>Gq(JLx*mcr-Bg?&&s0t=7OP;q?y)eplFk%qf#1i8>GYmXs1c@$BrM- zQe#odyfC_1*_W)c+Uf#8oqZ;e_-=_7v2D)on+y#Iz6iF|4?TY1DN1>h4^vP?TR6nJtPepBVYU z5*F_{1V!L4U&(VN>rC+Bc#aU(tWk&?Ge)0>Y>55x=xQr0vVvLLt0v z9L{5aQ~S6%=`a=SE)Bi}A}bWJG*wX5VwHLks!{2e2^c3)RRv76T-fbUFGg#4>$R3p z%s5_^5cT0oWe_bKqB-e+J2+B{6R|qeSmL`A%p5Hh%V#>S=rB8-_zY+nY&o_F*kD*# z%qYw6JfWCb>c=!tuBc!cb^Ak?nX&mL30UZ5{D{jei2LCiyc#SjJ;Eh4*?`={dT9qBQlQR=%J#^RA&4b z2~27Azn!%^mIvQD__usrb_b&rD}hIdQ;7yrTt$_>U*)>QMO4KFgBg(pmx7zoUYMZJ z&PsUP7{i9VapsXCXJJ>HSmoh3ID}ClxMR+wfyqjISAI<}M~F=G=|jN`AQs`21lxL| ziVQpUk&b2(IZD(d9xofNw8j@T4U)=Ov_L6{G*qfCIpJX}Hft&e0fNR@@9p*62%ev1 zIMNv(DEWxgE6++N{V6kP(o$GR2$2f7pFjA)UV7taWam%?u;QMHv49iwaXvb$_(QH( zJW8`lFedSeFO+Udf^g$;0aX}#>NrD;oYf&Ui6cMSMNv*h7#AIaiJA|z&w0upS z!BO6bmAo_s0&Tn!gbE+RV`a|Q=SU}@Sk%TCup%qb&~U%YSb*f)-L}cC??81c?l3(ioES$g!;)u^66I$Io2fB*UrbB!d7~-W zJT#*zlas$d=X}8p#OFei;uvgzrthI8PYDionszHLkd1_|sCZTp`s%rk4}*sU!u)85 z9;S~hlwM=Tr@x}vb9eapkPH!SSfII?wW!qHpp3Ujp0)u*AF5eHNn>M86IRfj#5_pI z9qG2Ua^BQ}?#rY$`Q;j@Uc2bUM)fZFK?#=K-qEgQFzd_=Hl{)g(=(D> zFN=P!lL0b~7?m#cx}`!#$TtOj4>ujm{#oo)yCK4v)O|H+B(ep&|J2SipRH>T+Wli$+LNMcQNK1`5IpAe0u#rNIQ#)HNR@`yr z@&>v($3cW2sG|$8!nra&O28C|q;Xkq_>8CDq(V%7=tnTJwm>f_F)v^isH01MqAtZJ zohV8qrom?`j=E@x&ei8kA`XTI3t4P#43U( z!_GCqwl-?^M=;Q3dbkjdy$))vnLvozTFqkGtN$_O>Fo!2D7ey@;jPGEf7|#%hc$pW ziYhhUs6=$!S?jPiE&l!jhz&rz8ZBV15eOHV2jtk`sIg^4pb}w+7p|cHNkqeuN1_F( zC)l}x@L3QPpwTc@wlhcx$e35tEU_y>lc0;_omE&eA{v@Sjz5ow$LLhgSI9v8e-tgd zk%7~gY4fIl4+$@iMn><{fjibZ7uqN*f<#{sKZDCv7MLoJnp_?#Uo?||6tt%{egG=b zA~wcvmesEbPI2=RnI-Pr61oV3O%b1(kwi4%aW<)8D;`xYFXSy@xYr^Kqo5i5R@fX5 zGX+&+8upE{V-k__mp3-RAe~1qfrn~VYiXP`2wbwIPUqmas4;}00-IX&Od$uee>wP- z5jMW+a~VcY&ggw+spmkUKzWkKbkL3QjljmE zMZf=LIi{&fDk_jNy($Hwb3eAMj0@D%R`Bx*r~@}rB6 ziw*L3XvAc1(g>=8FJqEl1+0=sNf9V}l#q3YO3$PvpkaSeDF$1cjwDg0*GOPPf%2TS zQI6$d1?m>U;4nujYYbo85Z;r=TMc~%S`=~6)Zh<5xZD4t;OMn0o4r@lHG2c59+NMs z)Q)(Re;Mu}q5W&2u}Jx-s3gLR^}w&Fk+NottTyoV!Y^Pj5-WvHnF&7z__^wPJ&Ax$ zD&V-@zB3S!Kq2mbGZG7k!+gMq1B^evLXmWVuCzhH1V0LO#2T!HMG9ft3{mtNyB|80 zWGIEnASj&3W6g30aldB+Q?wB`0k}DAwX`#~5h`_3j_d{I1(T47)2{cQ8q{fxNCKhZ z$&bG9x|WScl+d3j(L)fWi;@M9iZG=ifVnbFoH+gfE$r`)*9UP#yj;o~xNW54%&n-Mcj0R#l60rbd~k&=944`@8FpYvmrWh3JW=z9 z(VY)+%K2h0`&E2!X$pr0^C2Fay7fP#tjLs)GHQz0|EZyuJBP}gvpueHPwR!n#`;2; zR%|Cms|m1uK$U>CT}vEO>2k2s24E*!gT$4oC`2DFH<}@y+CDOhfqLoxj?B>$Xjvj2 zuqMtvK*>rVY2=a7A7At6AVSGg(EDywF&3*i#W2?3fh#{&tZ`X$w9Uo3s1RA8Tf`4J z#H`_)#X7gf%euHUK{`VdU4=H**GXlP0K#!9%A8d?wi+ewL=h<_RG~f;7y7Fr#{MYY ztVs(z`gk!Y6GD@0OB6)I7_k~VoNU|gvhJ;RrH|6ks^6wj?Se5MY#rFGtsIWO4HX%d z!7eE$y5Vs6zFkDb?Xl)J?FWMEBmbe}_V35QoZvk=)XHE&#tuZOFGOp1 z-PPG7mR^Of!sz=L`}ZFmzQE>; zM8f08L{Ky@4Fo)nr%d0g%>dT`#Fehv=IkqXxRrKm`ML;V6g}Tw-)%&*Ezu*dNSEps=~UMrwqfqX0DGMknV-H=jjNE)G8ICu z`!6csR(G`Gl0@pdY*8W=nkhUIG-kjIfAxrpxp6axQrG!nB|P=A`rRr|@Y`Q`aUOhL z-^*aQ4E+}=l?HnYJ*(4k?LP!=97S_%_R$FMSM*v{wUA>Pt$yxn!wt*TyA>tNkXw3v zkG+iv2{jZ|f#Xq9Rh@~=BS-|IOTWsmrF=i{*>H%@qeQlS!@|#|_-bu$Prik_DUvmZ zJ}D+)>!v6@ec#`oG^iBbekZ?tAJi3VmRfFgSmUFDaFMM7`9jr5XHjJ1B7w*h>rvg}r;IV6wfBi;^iFl4i5+wQF_V|NW5ie<}XTuA?W`c*nf!x<~+7H9~FxP{v=Omgx!+imduwOYde18mH8(Z|=XZ=C&c=f)e^2sFShqsCk~><+)4#0~$<`cln`&mZEXaa=en_jA#(1 z)0F{lVWqP4h5%y)Y%9bGA*(??7;YQ6MWBKnYX>)p2GjY3KCmRwSw0aI?IasidzO{` zjf~$y<#R0@*zJCv78BXJzX6eoI4k%XqaOz1N%pW?CKXU`0Zf2Y=tneFZte<<*I_64 zIQ%_VS=C?L-&VP&#KHuZo%WEn-j8Gm4E-J#J{u&B;SDS0hDSRA+m}W66Rd~>1OG*jUXPKU1RtXN`IPwgAv|$nvF1`O z6y*+eX1CXWK3nMx0k_k2;%}+k;R)p9NHQZ;qV5|VOU;UNBzREB&Li%@`Kp|e&8o3W}^EPdj z@A_+Z>FpBG{6;sk1(1rrge6J)SedWfIe5Gr-`~Gdopxwf6(DNi#%@?o%&CewU(#lf z`T%_{qyZugIo^bygtcEE?*p=0H{AQ$-!hhrd^Y||#g3*-hpsmJ;Zk8ra`30XVx_*% z58U%(kn?$mD8Jv$C>QUF%Rlxe-mujIyMn(oA9pQ}CVk~v; zeHR$N>s8S#&U4Qh&ftS-+0ApLxz(^*bC%0bZ(8S86-)|V>{k`Nd&uFXOd)Exb}SF| zPgHg>aP)bO%aDs*t}k^PZJQG5P1HM2W@b}G{LPDDbABfHI9ROPI3@N>juJjrwXa;c z8#>vx?C}m0fg3$SafNo!&e>Mm`8O+SkKU7}>kZya<#{S6Pl&Mme$#s|J%t{Pkb~05 zTI~L$iHEYp|KFRqW7A_9400G%4Gdf6b%-r!_>U%UX`9L~(7fRYB=AiYNKrJAX$1_5 zQPVc#4>oeaz+boy*DVBiOn*fvRR$ga9tAOHhco;aviseYwSILi=-b~vyYep zqS}4c_op+Tg%lN`qjntCb|6UA z6!t6EW1|LYtt=-9+jq*-AO8` zna8r@6x`N^c}m=QJ7kmo{Z6D%;BUbzTh~qOj#P|9W;+`V_7q1&$Ns{S(Wd(`kSSK` zd5g~Pd7bisrKE(`HlNay2M225r=6WGFiR>dkqGicnshi;c4^XCJKFS|t0tfseXU4q zBw*9U$cTDTTLGL??Za zoqmPP;W9<-S&-ok7tmrZP{K8JBZAuO&byx`%~Wa!y~morV~9V1r-Ek{^z^cWi}8%^ zR=WxE1CYbYs0Nmn3e>Q4HELK_mJAK%xj<=oLcf??&kOZQkp3YM1EH(Pn76+!DTEP9 z1v{qz&Ks(^xjEB&NIIK{OqmpDXln;?yrqY$m=}a`;3`1(&;FY3yxCYfC>L~Jwv7=6 zIzBN1{D__ImfuPE*PWCd|BWhcOqc%fUh`o(+4RV-TQX|_-Xqb+Wf-l(rmmRfe=Kt6 z-3|SFw#x+vhU`MaaaOqrd{@h7}WI~iIqah_l47b zOega=`RzmQdLe}&>N%&(-|Ep4aJaUW?e@<^(|v29@%L34Gs53KnnQnexk~*5zHkh( z_PKcO^Vf}Y#-@*Cr%YE=`<6Iup!wl!B}zWMW^+yxkeLvW>;4uwL3FKfmUll8gE9%z z=Qn$)7f0m3Y%(&UKKn=03|0JT^M05IZP~cT1n7p|A4`+$FT#wX1JS=?x4N?LK%|=M zroY@urfO)6ZSLD`pgLk%dL{__tykLlEyzr3tHd0&0WNTG~;?Hq5g{vCa^Hl5kMuRT|$`usTU z_#rNp7I}*uABD`|lox85Tpz<^sPS~1t>d6ALB#K_yz^MT)7r_UTh$kfbqHr_=)z3wO1V*jRJf# z2)gD7q4eanNJ@j1M$$Xdu4#0(J)a%Tq9WtczHy+oN}&v$?L_$A*Ph3*V)Qj5Ypv=a zc=z>3h|g)0Dkfa3)sn4$XUlENXTz$SNU3;{6RW=Vt5h6SHK_0e!X@?a-Nlm1HGP*M zS}Wh{l13xFUdym#tWV44yMI@VD^f78@{8V4$I9-qj444z}gn}||jJQ+ce1B7b2 zgOKiwdUrC=D8YoBW(qvsXWrxp22d5_LU4VUi9x1Y_KX*?|tl+VpD^;I2q#h14&(XWY3pG z1N?)ZOcFmJdJg-*SQcuLItMy*IDCvUIfb&bE%khyrH$iCb*>?;^E@S?FUuIZrA_cT zcJb?y7Y$@HK8#t8Qux|v3memIV6CpVzJTk(jYlBAp8mb27d9hxCn;D05j-$K>8!?B zBx8{W=_o^pO=QYrgT-I?xCBsaQt}^QiDcG^(Cs&!pU)lj-^Y#K?gISZ#JTmphC55c zj!;sc+UG!{j!AQHjv9P>^ZNSGZ-w%5WrN z6>v=#J4O5xS?l$)>xg|#XPx4S_kOs9zwlCbUCqoBdpw$c%J{19x|nTvLGk|7;j;C3 zqy&{It-H3E6NQsrHUlDr@T!o;JIMZ|>0R2;#{MfGF)O?wCRz~JY$U<$^okL?3Mzz$ zBnjU+Q=o<<@|(v7^$Yg1s-3xe`q>ICWoEI-1fJPK_5Z{@eF~i!MICaoX#%T@=nT@~D57=J#5yYSiGr^B|b!gFHE%~>MRUbrjUqI-3zg*mS18dsn53}y1qhK1))cu^?{4(6u<1us$ zWBBksHTo@8)4IS6>l2exmO#+mM9=Yn!@2A(=&pA-EHb#-u>B0CILn|-WO^Vw#7mW< z076Dk(1PB{P^x8(*3dQW3@bPB=SyRxNJz07HO9q{1vs;#A{iB;3oT*QUIPv8O&=PZ z3}47>T+?Irv@fTdQd}WJGz_`-6s4NBXUs=l7@0j5E#DrCz7{Hx=zY3myDl+L4Mf>VN{{nQNE3Z>^+4 z{#a0qA$&8FZ*T`;V54~J|DetK{b_iqS3?RioBysPdvjAR;&16Va^LqFr`_~_0Cho% zzH|H5?FW>r7hiBey{uKuYL8OCMG5( z7cal+*S~q-;pS?VUEYwT>a}r_}~8aYF!kMI`OzHvkyJ)m_Mw) zv0hD!tSF@t-kCfXF^5PCt!&<`GBC!W=zACc!|PxF-uGPa^~XQ+w9txc#ftq`EXN+tYp>MxkmLyMm9k{CX>h$8J+gh02u|1Xe!}^=0M73OH@R;9mz}kaO zc=BmS9JcPFf4}yZmtPw3(>poJR?artOBStMx(JyzksQwr5q5bj#-G2(t*ID?&kOPq zo%PG$%`(z;DVRD;5m5;f7l`+;;Z+&i(9{|LOTJ ze%V8hKRRM?1PefG9?L!D2;bxL{74+=)rIY~E%bRFfEDLlr_j zbgT<(YiNEKD7s3e5_&nAg-o11fjoD8!4~r_xJ-fIJ%}jJvN(>@a``vE`t>>IoU>-_ z!Oi*ZC7=J?vdP+MPdwRLn`QY|zx{*ig7AJG_^YupKNvAyZ^8fy|(t2tl`Qn$p@U}O-{=y3{OvYSJo(8_HpX0h@x@!WZjGYo6|Z>3Nhh5Y z$MO5#_r6Omx#Zk)&sEw#;HYCB^XNy`>m>m5^Yise6$?67-eYN3??JtC3~R0T_fUwn zhXOR>awT|D8jCm*i=Eq{34bI*MG@rR#$^x89C_ulKKu#_K6ahvfmVk4I9eHdlamnW{mTBp$ zpZ#1{W9zorgC1N(jbH!!t3Lga+pfLpe}8|?Z%=%}TILZ8Tdzix|c>y}N0aTkB~ODn4OF%NzCvgP6vAOBc$ z$LvqP_|eTXo`@QC+`RtArH8M?)Z%VoyEEG(hEl0S47c2H<7-~?j^F>_3p-{yPkj92 z;B1!r!w*0F=%bJR`j37AmCrY4O(%QvD_^qYfOY#Hc8tz*cpt~{wk=yec+R`_U%hh4 z@|E3gmx%H_7a{FNLoR9$#{oYQ2YR)?duSxm*sSx4^xbJM2Ee{LWO9);dX&Bu%X`T!`tV%bLyR`RAYS9e>oxkABgM zUbK4kY9YjLfBV}@FTM2i(@$TsX3gkKG>~C|pgP^CEZ+P656leQ81?}7Kc*i?V zIpvhlsVzy7%`3rp8YlJ2eM|MRF94T2>p5+V>2|w$o(HU*rm3~IJ~{c&N1c4tudc2y zU6bY6tKRh1SH0oQUX(M72Oo3TH^2FBjTjI-hiG<+!`2@9t6%*}MrpZR4Gx?0^Yhhe z^`eU|3WG1K0D|`O@sEG}V;}q23$r3Ar|7%B7P+d|>+opJ%~TtWAzrzMYjr6oCVB&(y7-c3yy|a1_qoqK?S#Xxz3xV5^mG2=DL4H3_2-}W z;ZJ`0g43SZ?!_b6??_@%ELcGv^X z{mA)i4?dvT(VX)%X4beQ66680?RNWzKl;gkU4D79fUVs2vw!u0A`ot$Z?mZtmCl(MM zU;fwcYA0Xxf@g6DVjzywGO zjT_E*$zLD2Zoem8`mOUm^3fN*;e-G5rO%yq{7J1J{5XlD*==_9ilq#MuBuH;fuT9G ztyDflIUIc0AzQa>nxCJ4&U2peoaa2JT221*>!*JH^I!bU?{h<#zmXC5)p{2>)7YFvL z#%0igs#Gd98jYEmnP5B^I)3lEEm^WeYaPdNXtld()279X7ne$M`&|eLu$h^e$;rupP9Fa7hj+VOV@zmF z0U&%)Z#we;v8Yl56^oaz`0BrWjY$GokjwHsijrU?Q?FI7`PHxUf@=jH;l8ucAI-Cb z*>_-i5x{A99BdP{)~3JZdG4HBw{9H~4H`g%y2L$|6$*FD-~kb>U%&p&en_=iUA=ns zplYDqZdWP^Tmgco6ky~Fc-Ac-QVF2w>S{{HXe(0yP@Oo60A3V2j$>m?kj{j}llMMJ z5^HUq=ivsJpP#SQ>&ieW9mi5~6uDxIMKaLip_qc*)9DrmPyw3RwsrQ1hduAz??3;q zpZ!SDyT_aj26cu3@WNR*4sq`#W5QjLby}r_KxA22=XoMp=;pSzvf0l6_xoRa<}?55 zt>^vS-@NuruASfv9JxZ3g8|?(fPt?Au?D&pQaBE%7FAQy&D&(XYsZ1>D01QZNX69$a#0o>u#>b?X zZ$sNIpNJwUTo-Vl#E{skbR&`_3pm&6=B0WGz>Y0DUikFW)~s81?nM_GfQmx3+f!3h z_x5mEbeeI>b+>4XiE=_wcL$QBjWS~>*$jlPPaPp;;JO3e1u;c+WAL3XUG#z%o^j46 z{^74*{$f}_xrw*{S;ta>yYZJldcsqmdGu4xxZr{hPkIB`xm*xYJ=Smp~Sp)aUiRa~?hEcTp5^91q~p zg7cbE3eHD@K^TC+$9dO?$O_2;%+9y#)dm1!&cOk~TZp}vD+;@9tqqgl?CdP(JUr=~ zyY9N{f)*-@qHwkc)`h_Wbl^=8e*IIJi2EYr60k*kNtl8&L26j$<&-D==2us(Sh1{U-z*~#Ge!v!!6A)#C)1@=7KIT68F6o&wl3ye$VfRa z!6kC;X?l99-N}-2$|EM62l=?17-L98MUj;f$GodF8b;|jlHLI%L}QWnhP+4w5jaeQ zm_=aLI>DqZ4ov3gYj3$IIYQr*2+@?NyX~BtgnThIa4>|0!pZ?^M6-$qL(2;R4CKe2q zf#7r@xUbYE9f{eQ?E>g_vr;NcDfa-J2NA%WwVd-TM?IEsPL$HQ`Bqx53I-8zt@0=> zgA=TaqPQNx0>(iyNE$}TyD<)U@VytfLKsieG)+^^`TYF+SPOyU*DjaEarXh^#S0J;94sN=6ZZX|0t~<#Jgm6=n)! zOn85o{@&6AUp zgT}A`xDZ||CgMiD0-%$r6r4pOj>#A>pxJEI>eWgd=S7~DQh0BSjba(Z=K%6N4`VJM z{dT*ZBuSd4p~7}*YNAjkiUguw`%lgZL`7aCEV*|;76*_6a|5!?7znY?-ZQOMr&dj2 zJ;)OSml7<=w7cxG%f9mEFCVhJ_Q_A4ziQR0cE?PVh0-pOZ2PvkrPB>K$I=Smyw=(q z5vReNOArH~wUO|MQnFfb37}9#sLlnCx_RcDE0@ZWvqqe@+wJ|9FWa)|_NB{~6nP$( z5@&6QXzg~pQmd5H9=#l#46So`m5OE5in|B!pk0NWVkOIK`T(e%Uc3Mr(Y^74my6v=7@nF?znZq(T&jne4V2f@X zMW!fL9=yM?UOF8y4q)rH9gC;$-HeMiP6`HMN-5`c6iJYT00+vFz-3&Kfrw^O5`#5< z<^F3vb>YPqUU>0A2Oes; z6+)p#iHnE_A!EHRqr?~^1PiDo@H!z8A%xIcJjAOt001BWNklF88u+|NZyBQ|}K|aOfqig_N?#ad8nU zHnTjd)hC>X1B`Z&WLn!=eZpC7Y@WsuoCaf29EY@M_}I|hEs!qgdzyv&$~ngvizDFy zcsMs4po6Bw_XcXKS5-9V@*@No+h;W{)oK}Vh?8IvS`<1F;yve`fA&Wz+WCa#-Pzf= zl31YC&gzx4TbL!&4R{N(a2$?E@`%U{EMWla5XGYC%c{l~e;z)vEob|-xqzoX} zN-#!5m2w5Z(q&5k7ne%bD#k<{r_Q-rtpcFg$;;&=l1wQ>a8VQiu07wXH0sVHiDK1h zMx|6n(mDW;g5bT$bCH%}Fav09;+Vl29;bjaS+|rXAQnclcZL|NHyQvd*QSEaZIV_C zt%*y?c%FCCBn>7k@Qw%P*;pFw9c&c1ajmAN@AY{iA(+yZOU^|UF#u?_^Gc-z>jX!; z-7S?$oD*l<7|j^xN%<{jz56Zid>2S&g^l9gojy^O0GJH@po)Bc?%)R=wPou}AyN-? zyLl;%I$c#RMFXTTQ7dOav#FOh8mc)P)h6>oL&#cL0x0r4jw7eFc0Lw}B~h>OHk9@e zgWzLQj6K0{Gx+g1uve+qK$CdyM;$H(k$G35C@eL*-ENX3jIkgz30jj-Egv+wp@!qm zR;>mAIDFSizsNJ80)>W*6$M?N5gx$ z(x?MHCM+t|0-47NDeLWoNGoBeOF)F(=27?}kx0M;EQ(XW5CPtSm>uccOhiJ4Y1O51 zC5W8Dv4KUQs9!`h=u8yJ;PY{>A1=W_nON`2mMSF&a0Yl+4ht1;0N=BdCJDHpV2k3! zV}t@h5Q{K)B=tH#T=aT>B&8DI$|XSngaj;z5x{}TnuIq|tqx*w%-k@EPy!r_hVf$1 zMO?ZCv znSl%-h&Y2E%%G+zd|+4@d+)>Al`$4pr-6@0-!h7bcDHIB>|sDB1nQ4E#BmySObCaN zqvilylt|o{wtZpdnVg&?qHebvpmCa}v$L~t9M8_qmdoX3%a$2qLe;*tcKPz%xzjGO;j_caS4Rk-OurIGL0=!_16-A+x zs#Gc=c;}Z?HigG1lC0)Np0w@L3D%muin*VBh|oz z;V`&fd}rr3KSI5D0qSL_dH*l{;Pleq)7;3X4F8%I8Xh$A3+-E>es^di%QD7TPZeve zQmWZ(4v3J@1p+{pWrIr6KmEf)fs&L`DHY6l1KpyE3~*^0vw-S-PksK5z`nmMxo~pWm=y!-F6E-~s*(Hbmb0IF7?$C88B8 zR{Zp*KOF@w1NMb6M3I0G9&3&>W&t6X6zKqW4B30SOXjxDGRe`e;tqqo)oRtMHSa+L z=UsU9e!AtJ2JUIW8GT`>!G_O<)i#C25bIA%%=IP}7Lr8h`QG=U5sl821bFs;5pKI( ze)9{xWdybGKAXaNd*m5tWbPeX!tb(gG_>{b!}l}VCxG}kWEkb%My^*MK=im1Vhf^% z5#nsDpxrHqGQ8_?#5DNiI~o-CsS=Yx4k&ONL3R^Gky0v(qL97`37y@kUWT{s$kZ_C zz&fg#9c-L)&SL<+PuPd|luD%@#X>Axvb&s5C%BQqCBNIHtiO+4?|lY_-+Jq<-usm+ zR~lo&2xg20lx?l;cDtd1+2tD8l1R^jH zeE11-HmLs?f6iVFcQbZzG+6h-p?}ePYNW9df&t?-IAi_vP(PxO0QKnGotT*(KJ4LR z4{w9O){p6A2I;%OE{(o43|jl}+T0iu;Q545<5Zi|G4j2u97-O7UYdf7z;C>imqkY^QaOaan4*edE^cXfyf>E87=n$!8b2I-b zutVV6pVI8k^9?X;Iy+8d+*xt}V+n}V6T8)*Uyo0Zo*LyXF|^a z*dCX{0PcrLsPN6q0d|ypy4P>vw73Bg5?0)<$E)?$#iIkp4z+P3cQm;GMEVIf*1zs| zJd^n`u~FE8{zY*+p_cK!t^07|IUo|Pb*)wd5SFZg{}>P|KmKqw|kjfJ^neV%GbC%e`mobUFja zp&*Y6X~@y`o;@Y(Zg96!DvF3n4(E~O+Vp}t+%OOg*3cvC$UCvwkRO$@$T9$tj7p^x zKqt>RXM_8s-EL!~$?g5yz3zq@iz9w?!ZYZtpN4DkQ3{xP3;Lbc${xE5Ph&7?L9o?N zMY#S$A~+61A^AxHVB`k^odNO)Nz;+t^PxHT$du`ab2B`HW3E5DIslHrGrJE?nSKaX zM$Xaz#Q1T7YzX!GG>abrB4feDj}MtK5%&-eeS4KV$QJD+AwXX}6Fhc9?NXYiL3OK?0%OEEyvy4ytyBO{&1N&pvc7Bl@XowT zg;yh^Y&Q!kPxn!w%f0|yilT7NO-)S^QBa2jeePhehLIiUzQOqJM{46;;dEQ8?vm-1 z)lxl;%4-fj=3gsz%{Z1e~!@`x?9%pEQqxDQ~3(a1{#aF~&EBKk>zohKLW!TZ>$O-9lH$4y50SpTIOc5aHn7$i;W90h@sUG3OK&&@nJiF^)hQc*vY)r}27vWIk zAwY^lvAsH#1PNoMQUP3+Wm57jTedvWG_*!l80}fsHh0k6Tc(Xi5Bonv{HuofCr7j~eKXd!L z-txwkOP1`IX*Dw&AUj!*-AzdOlSb5T6Vv0v3j0hd_P)iqguYh6(x+ap2Xc>rhc$^( zs$A|780B)AfwN#p=`CzdtYETm`CNo#&6*?s=2fpd^nnjL|AQa6;A0;Ga_5Qytni35 zgaL?w!OY$Y+ffDuPR15@mml~J25#Un5!Hs2nhHn_1(`Y#T58-L=gwxoRK%=O| zTlfNGEI|R8E zu+)1Tj)K7r2%a7mAux&HI>S7P!Ktu-Cjv1xszfCKkb^oa>QOp;pqe3YK#l{VKYbgR ziG|xaXzjyVHuU}t_xny0zjG$bIz0&Dy;3TyUW%e88Z*Yh!`mK*VaKvLHn1k+&)AU! z5Cieyc_0qr;gFs6S(dYYZZ5dWdh59hj2BZ%1F*&rkYxo(g1Auz)@!XnLvYFfcnzvkoxWn_fk_kv zZ)db-V00Il1KPcN##-I-(13&T07ni2-=fC_FB=RE%fPdN33Wx4#6 zQ=SfAT=k2eop#D!RLhIk9I)!$=e$<|Jcj3Fz3#LN=fF5DaMVMOd+S+mf9)ABTsbWs zcH+tBo&WxqzU(hk$*#EK%4a^~St}PWS+jiEXD%KSE0vc# z?KCMx*B9&8-+by*pDGxwUcKf+=YItPbMsw?yIm6#95ZE9?sU~uz0#W7riwxcF(?im zzpw6kcWr~Imwq>^VfrJ>dNv+q z1JLodKli(FDx~j&G9*PjoC~|}$GIQB>#~{MVUEDk9ULI}Z$v)75(>Fo zYvVXhk|-pVHg4QFcKDu##s{1UA>grf^QK!iZ0vN^ev7Al(QPYJui^Gh8zjey{Z?{2x}t*<@v%3oae`q#bY$fF*YA%@CME}PzmXTVEK-1X6yEDz|vc9U;paYz4g1_zwGogUbK4E;&;65?ce&&e?@{j z=h~S%`XLX0)QQJkcIgi<|Hb9)OrLV6F54cEpRDh3vWsO1iJkJrJ*H>unc(QfM~ii7#M)%YcJ#R< zgal3h4GV+&cc*~B z!-ehx;ab-hF9xG_2U5mi5wT?HqHSAeZ@B*E6CQEgeyf-M;A>yM^zzLNh=X&qklvAX z7JzYKi9)~q-S1~+apH+53W-AxJv2$g_rCYNdcE4s+Riz|>Ez@h*Xc}5OdNOIac_Fl zTONMQp;ei_|NZBF{No>e*0Y`|smC^EMRs5IT)8{8eZj{iiXv<6+}vD<6d`RCMUhrI z#4M#$UoAyz)~xBYy2Aq0e%{#=(lq_yr9VtLX`r#>fS11P6;5Y)H}B?!1qAo1P#bQ$ z?Ra?{ffWX)J>%IQ`}?zNK(T%H4_AKc$}4Yu<2&B*ir2q({Gx#${`9hIuf2A2TWz@Qwzt0e)o*_78Q0x(`!{~N{;Oa6`m;|t zYN`ydyZvegYlKFl@v@h_EMUYu&-Y-vB|jFC9fp=CeU^Tt%D3laKT7tnQ6T{zIDs+1 z_5lI;U@GEEXz;(XrH<1^Xude8iHhk3t+98-e{P zIAkzsaNHx{X2DGMXpU-N4L9)E^*c$9TptM9K7_)!>rAM2>8ZHJG&_4~iBl?-LP=m0 zMZqW?z|_&6(yM9{Zst*!M*l5kF)PF60Z!AyPU z<06J}WB$IY%^l&if!BL53kkCNfi=UR_itzf*zI8)F~R7yv@?95kf`Q6RGy!z%RKK`)> z9ks#%^V!^D-hf9WWZyjcK3BJVKjX67ZDL|VDb;8+!Xj)?xDP;Z5gKm-h-0a=>gL%( z7A(wxZrQNm=m#D7mbbj|)1Ug-fBxjsQ=j&fyxWbFet_*oPpF4?A?N5Ny+Jx7Mn)c9v&_P0ENQXFy|e(T)q#Zb?UW0=;Vkwfr(eu(!0)}T%#Xi$a@DxMJp zg+n3N`x#7`G^G3c`)Wpd7>x+SNdtORJZpOMp#{7FGYDov&h+FEy)s?DE2lD?{YG0B zxIf#{ap0a_DwTu~?RL9QOQ6|ohS3-hL%Cee^IS^l+|Vv8ln`pI!%ImL1#W|L4uVo< zggkQnVZ(wW%RnLI{{+or07-*dl7L`>*J_q!*4iMlNz-)DwkG`B>2wB;AYsuJJX-qR z9sR3Fp>2X@!!)8}y&djdp`nD9-0-FGg1f086cQA9FTI@g&3P_3ms#V%tG)>B{HII`|sx@_@&`z=4~tg|TQ zZI{l^=Zv`bw0ZMw64)^_<3fBPL`f-$AcYV>tAldMEn2il0cX7Y#V0=L>E(%fSJt+> z#fxg8C@6F|LmVeQe4QifA`qO-9Z*UtL>w^J{Qh@nuDfCV2F7Tr(NJ17CMT>AtrpT! zB_%YQ&FZ4%qLQBe!WTUIlt*`rRE?u}919LzbY)z>ThH@AVGvfp!5Zhz_I&@NTc2Vf zfTQm^+H)!<(evyYdKWthxB+cI1_Xi#tO6$xbJ#U0L%pgEc-f~Y+(>mzkh8F!MPN_x zK_ecPY)nUtv09^0dmQX>dpqwQYD!oLo)5*{E&BdpENSu_9Vu)PXoiBf8ikt~Si(Zi2_v&ek;HI&2O%lEX&H&Ppc8Z7g(kxSB{p)K^z%^k=g1(1$v&i4N~KbzQfakXjYh*c zSFKiCt(FkNT3fHz=jP_5ltElFcrdz!C!5V?$TumK$FbZ~%#l(mP(FcE2|glWnKUsm zF*`dOI;xgRrEa%7x_faP52~WPw_!w(A9N|Q#P$}hSild<|7~b_^^c& zebVEf5D|}JzG1`77kua=-~9H!JC#ep(kKQ@V`8e+?OgKNi;lhN5yu|?z@^iRDshF! zOuIs``+>{-z-4^XT1zQwwc3?eUKy;KrIbXJb<~n2(;GM4TCT+2`#6ra@0gjKY!sR5 zNA@89?D5EaVw`eM>$Oal&g(Gqh5-Z zRG}2OH}TT_&;8h^U;WMxe)57(XWixz#~$~Dr@yd7NC?isDI?;ta{xgILZ!me$@#9+ z*^UHYB1!AXKYr#D?>YOd^FI2?CCgTR=%eR7<`EBJ?JdNm$vRofQB+Y3b8~ZRmah2H z=P!Ey+3$Jx`_FZ(bjT5pdiK+vEI2Eaj-$K1!_i>f5YD;xK3Em+(LB*$ExBuxmyr4i zv8C6*j6y*xV`E)+33iy_4F-K^001BWNklF>sTA@-N~vnK>YQ7@e*FMFhXl>K zb?dCP0TXDg<2e4!Z+(k%) z=D!|x!1TvI{E0`La8lve*=N1uHD|o|;!8fieC2_lc`3*MQ1*;7&;0%me|E{mpZUZE zpZwJ4FL=@OUy$V{;*3ioc)DNXvIj@tpVH|&6dZ=ldvA;hkBu>*-?!;+d7eAx)~#C? zr2b*5tJn8r3M1@8SZs05i6{hug^o@1s!W*y;K{=iz??&xlvgZY?yUh?quL@C0EbUQ zB_R(Bau0Cri3$h;Vh6w(#sDX*1>m_bA0G@jiwm%g)2Eg!pvj>qMK@+3Pc>=sM zLR6o5L7IDdSu~gOSNWsccygL!C6d0;H!XQ#y_$_b9sExNKlO zs1CsR4)M6%5tR}cIq!1j7`X7@AaYh4WjZNUEZ`j^A!~I#^QB68baLtB-BOx(cmfa8PFHo4s1z=( zGPlQ~;&hoYfVVT%O69WVyskB5xJ`wKjItu)q3JVs0K=S9sfc0&IG0Dv0VN9|2Bq5zxL ztXTtK2DG)dQq;AEQq6KD z1$v}WH|v&@5(w5iM$B2u8Mnr8A&R2QIWZ;}zw;Ms=U$FI9Wwt28+$0Fu+*}L}9(_M+|m*4qzNi zf^h*WVce)s31fcfKq>$x;Cc&j3aw`hyn%=6du0Z0+3(Wb?OukU#|P!8pDB^IMFyZS z)&kanN1QR=$t^%o9WWO~0-V4^)@qBGlS99lhmaQ_TV$;`lEwi*oJ24Vj0Z~$W0{3W z%diCPh%pJy;hoWiHHvYHW0|!JtHHVOK(&%)9SsVg5k;n=I95dlXls-M9FcM03{Gp# zJgh;G0C<;1!aHYyu7N6ww3?JE<-E`UtWvPnSzAg=$}(l(;k{D?lSHLXrpQATMJ!}t zx>_S79MUKTp;nXDfQS>32TafU6QQ)X$hxVBdY&;31a$LuSeX-0iX;J9HwR(s*4ZeE zoOjMy#t5*)n2=HzKG-C2MgTbHoo;7u4VBP8Z+d!q$&w}O*RQ|sy6ZxLaexJtN~K&b zUvb41TefUjvt~`8G-hUI0!b50o&Y#!0H>4^QKCK5TBk`waMq}9R(Rr399wJ28%D0v z>Co1do4LabP^BG2^-1B0J00bNAtV3Oo1Ich_1T@3^f`n4|FM^jN zzJN5Io~02-A9#p9rRq4wI+NbN-KSGULWoYMVqn zS&TwR4}!MfEO)w#q?VQw@6ni;a2`aAh-+I&9(TKW993jQ0JK7uXELEAmO|_`>kiI& zv)Np?Zru$x+`u^x>%8gd={#2ewr$%1pwVcwTAfXsHZ5PieAA{)-uqH10bIRaZMU11 zO2rz*q)cL|fWo38W#}@&ITJjZX{$yh5`q#x6l?b@~1TyssWR_iqa6fxku z%>izBEQm#^hu66gG9tlJcreKwp~!S8N#JcHdFBxjBzHl_MFF~6fZ0MRPh}}#m64L~ zL3t=67L+=Si9A=%qFOEA^OizEht?MW^^|R6+OKgH(Jp>DUJiP^g!~-^aU1#u1S4%O zdfGMWtwR}ljk;*O>G%EHo|-A{O^i#qT&`3q#+YWa>6}}-bgA3@X06iJSZAG8&gRbK z&M0TKbAH>lZS!;UNgOc}&G{COk&I0Y+L$|?o zo+}S{FJa*Gb{rv%(bjzq4GJpbQA7;2Monu4%iy^;d0L9K0VAlsN}zW}ISV%XoMgMx zhBsgy#Ji?fMkJ%ef_K_&Z%w~gtbjMOEi;$F13R{FhgXmcJW_@zt-v|7X5np9K>=wR z@q||^X`#_+x8aS=W}`GoOOXe%9Q9fqFzxoN(w-6E5k&$X&S=0|XUR)WX{E&HT3d}q z6vL6@5|%>yKF5hHL${kJQ4DVs!EnGRPRtWn0>(%<6O4-ITaHV3LY5bq$|aW`K91wC zTn|kZtF@H4G;q09duu7FwLbjt!?$nW&N(;6Fvh(1x7>2ercIklr4r|SYHBK|Oxo>s zz%D|FZa4SdcRHOQDwmOj$^bu~BOHk@x^M+d;R$gi3RHhwO(DnvT+$ufVE>=J_l}pd zs`JO+r#)?EZofA@Bs8NyfD}rA5K54$h>C)X6&4Gu1=qDL*w)5x{n@*_Dkv->sJN^k zE{d>XfDi(K7}7(^ExC8@l&78c{o~BcotuKL%POupuS=Nn%*<2HbI$vGKJU-_?HDb_ z7_IeLXPx!L6HhqqFr{?Hj2Z419l5wrC>(t7!AX*&X}V#8QCIKsfOj(^Z-FK`_J&$t%t--iQh<$E{ z2*+{*5CmS+iQ#!RwGrNu9%$9_wZ>}-!`$nb?7c;riznL*%Csvw+O{E=&^@EYq*bE0 z2ScAu$SfUbe{H~}b;EGZJ32a)QgIx+EZRO>)7{+|Ym7ApM!_f;15i#&ol!l>m9eFc zE;PAjO@RbgfkByV78o{y?l7RbUEsCJqhl7_wvaUkga%X1f?g-%!R#KV-ZbCU%yCHx zZT(Oi)0DN;#nCAJC9UsldBl+a6WFC4u}oOs8TH|JUL8fHV~$-kI9y{CKe_eho+$e4 z7jF(j67SwMw`a_l4r=N7+Z`b$&L%S+3JovDgrQXQz?I?AH zUgr(p|E}=Fx;0O~;=)(>h2Eo&J>r}Ha!X5Lx7~JIz{1YXDL(fC z-W`zXuekWNNsdKZvOUnxL+6< z+B0;^Y~kC~~B^ zeYS?MB&C#4+VDlA6f~E4bDiV~&Ilo6qvb5knqAwpTu7W!x(3xC&S1=fnx@P)2-V=m zS>G80YdBPcFGi^XSIznk2E|*bqUpH`P*4M67z}fLyS;uD#x4Fes4I(f!5!NGLxfF= zKpMLLyYDXvwO9jdCS{APL0sMNyC;u6^6;%&w+`*zZ7jMwJMs*kUr<1;vODylwXMf_ zq1ZEh#z8MW>+}a6SaHcEmu%Xa3=DK!`NqFpe)=K;%zM!hZ@uR47oD(ZbaeQtx4q-8 zpZ((e^H18mdE-Yv`l$yV+~$Zixoi$ddBzJtS{c3eLm$2CXForF!HcL(KXC0Q?zror z$Oi*N(5ZlOxja5L+|dA@L1Dh#wfOiGKX}a>UiHdzP)nxFJMtaxegFCAoK*_=`0mle zk2vb`E8lwT!sEa4^&8%I`5ThBhEn%#n%!^wXAmo|jZcolqPB@f9unmzl9E8hI>YyRPNZ@B!J1q&TOmeBeC zzBktX+Kd@9o__jiSIa{P85tSr=;)}`YQsajqbN$#)c1WCmyM#RTCJ{Gvu5_}*t}kKjil429@bUt3c{(}D^8tu=qIngu@>jPA3j$x5vPmq;M%}I zp9{DA83pK`eGNn=)mU-IX=&14+RZff5%_KTqBnJYNZT+)Y`ZY=WK3iCTzy%3fbH@e zgMq)S-EDcQwMhOhyS#5uW+;fU##mwiV~GpGG<%-`V~x&Kh)Q1Io>&GwAsF#f>Wd50aOz>aO4BT8YdDD>jTt%JF@_&C5jN|l0!5x22@OV z{yC>tu9^{@#;5`6bQ$@ibQXw{9s9q~CQ6arso1@3%TsF}f9Y%A_Qmh~;J*9rJNgBe zaYg|!5lD^Bu98$xT5~Uo6M4zYU-G%nynWdZZh6yNK6b+m-<$LL*SzB&ulwDK`TzM} z7cXDF{KFsrAUE}Ao__kV$DTO*?DK!{cz+h0fOf zZtc(Ry7%QTf8`IpdEMQ2-1XwuUH|Cnr%U~VQ@c^AYXvYyx;mpY&lfK~{-ndYS3dIi zH-EL|^s~;n_S&nvMS^@J5STV&*8l(6Pwd*T>E&xz?%1{^snw85ztkD|{-)twahy({ zK6BZ!Wv4AWYSoH+|MT8gEj#thkAC7EjDQjFjtD@SgHw2d!^#~y*FN&-n)A;2n}7Z0 z4d4IaXaDx9cYgoIpPY5}#a?LhymspkemrN+yw0xfTq`iZ7-EOPI{x`#iSP{K^mBb?+lbA3tAbmBS7`v=mLad!%cW8& zPsyh~b$wT-sMZh_VJI}f!O5SmvpKQ<&dyFL<=EKRoH=vK<#M4=5Ih_i87Y-YoO5GU zwOS1VuUIVBYPF7zj!LD%7%O!YoElhKtF3zEp{Y{`Hf-HKR!K;I0b0i6yE{uH$#Mnw z1aY+z@$`^`X7=_DZ`i!$;DLGj+odoJjWLe-TPPH^ZrwU(&YZEaF=u1cDvS!laN4wK zwOVcF%$ZxZY$=sWZW)%QsqlDKmwq6v$p|pGefWU~9$S9OOrg*1>I(kh+UiZp#V@ZrU;;8wH zz0lK0=yP<*7-eXx>?mb8r+H=wwJjHg=ii7zL1aTIz&6vtcCWH2yRV@L`=SDneW*7y z%F&xj+;mUHfCD-%f2|RhdcE$dteu9pGFllOgrSS4Of*6%1tk;=pp;NhLJ1Lo$3Z!$ zCp@VvBhV56(nNW_uXMw6n8Oe|Nf))*NfoSWWldXTh&|3ALz{2x-aU5Ty?1gTal*r< zVer-#RsnH2A_BlPC}Z?bc_|f;0n+Z}SZtd@_|03l&8-;{kPV6XiBBr`x`k=0w{q3c znl&(W2I#dqj@Ig@EIkb>oqxowA zJZylWMiv)zzW3j?={Ryh^14 z0zh*Z=u|K>Haz&t->kU$ntuqH_wb4b>i`13qtGQQHVlfX%Sn|AfY~{?E6LQr)EWER zA=R{lc4f~yckY}$d$v=cab?m@B%)L*4Gs<}rGg;Xv}uzgzBs{5x0xRaP{K*>Gwd4N z@r!%!RZ9B42q@bt{as=}JBM&W$&zG@0J(jg^OP|Iw{5x)es$ zxIS7_N}E!#^ZHMJ=1ZUd`scpz{xi>d0VOT*p+7F+(tdlwSOeHFe^!4~(*}*KO-nLYpN8&E+m_*}G2SHIf6+<*yaE z6rutw7$b#3!2(=(gtFF<*-%}#%}^dx)2G9+$+?Aa9v~Lr+&LK;OW=nb0B2mc;DK(b zcTojupcxd5g)uy>dls37A|Q>zdSAN{AVp1Sm` zr6-@d?37c!{N*p^kOpSs@7A5Y?DUgPSiErYqR)T+Mq^RWYHK&FJn`iDr=GUt#N$r= z(&ui}8DOw#^+U_fSiE@25etuB@bz!plIAc5)>7CE$VjG{RZv4fe8)YjqMmu$lEdfD z*znlOygY6R6bAyKfex=bw5U~w4bN3nN>~V^dwm`lo7Cf&Li?n*P$*hJ(@Y_xUUj^t z;DyC*a2`-nt7r8@`atMnUvOqbIb=1kIY1c=0A{@aCZ__#Xa@9_LJrj9a%PazVom|# zD{bI$oyOb(Ht+819UmY6^#d#V{exb2+2sgI7hHHz!S`Sirec8BQ!61P^Q2&a&1-SV zLky`XC;?}HOx$o=iIF*qW~I_W5%v!ZOLT-CzCt!yHcBBZELeJax5pm&<=xUKTHt}7 zBd8Wd(MHw;iRJQA%T7M&jMJAb zT)6OyU;Ls4>ZyEk-NxgVEM2nftc53@`uQ(@!{&f7Pd;|vnWrDKWbv^lEL!rduiYwh zWU{h$!^)GFopj1+FFtnRd7t^h%@W9LX8${!E$bqn1ezK{j3vqvV~Klgn$`_D(RJ85 zOy$uP_b0q?_|YfNpL^K-cm2l@k}733^SgOT<=SuX>J_-4UO`!&r4v3x4y-sn>T}6T zB`~$IzEVgvE`9Z@e)N+c?-&^}#zaQ0{_P5c9WOd@DaqB6`Nwd-_~iP{AtgG_FS_`} zKmGZw>F{ovmYx& zlzTnW6pRJ^-=9gyUVm*m(fjzDJkm1azyxuyg0_vE&5~xa=Z_Jx=OPsC=%nE;PFb_E zx-kwDA4D`~hvrh29w6ub6{m{u2M6<-?;5fvQl^b~o^`NhFYZ+FIy#1MN>j1N4=}FRPM%ntOe)rhQM~7==;)xwQ2J0~j1%G60WYgyL zgF96udbXVOjMFq39vo`El0uQgM)*qM4l_3qgt;A z!td?wU$~fXMpb+)-^~G@#dWP`=qi``GQ07tM38u6L4RS-_u`G{`K~Z3M=N7FI z20>3>5B2<91De$0q}0{Pp=B2P+^QrglsZG*{rao_VQydal9P{q!Q9e4x8DJ%NRU)! zQL&41p{)y0QBJtZ!9rHI;C1wP5~6X377AbhG%fj&HW=JJ=!K}IN&r)*^p1@U!w*GN zI&tyBpWc3J6a|ALJAusR@wRotPp{wgzW2U@6M%X_SYjRFGutAD85Ho^gmk&*2?wr_fRT}Bb@+&O41eBlia z?tEs#Wt7sc-kzb|L!HHv;P6GMTpkUA zNCdu9-w#3pV<9+_aTxj7BM)1zqtG?bTM|z{xiSaKzyuF#vRVjv4g~JD&8k$GG|dU& zSq{&G=Xs9N(h}Wr@e-%mou=uuY15v1>Zw+$sAa5JtyZT@nUd#utyY^mcdknnIavo6 zvjGeZePSUqoU-(U-#q%*ij}Lz%NbJ=MnWm;N5Yc+VrN(=?Jkc;evl>{cqM>y&pp=(VaIX2cFo%1@ewe2;)%y|?g7}k^_d4Acp!<>-X4GV$j*`BU717> zc1aDLrco69xo3k(;TE!=B|7qM3U2ws+ZQFR4Z@{e~PUiZAMJGSAZ6_y%JPADk zCBc21dB#}}Km2G{vBx0PT4;q_fiZa812lvWLIJ*d_2U~hZG6egE_~%BOP|@g;kx&J z>gn|xXU*_BN*LX>*#~x8Z?J|W&bXC*y^+nTSv|k~?q6H#FJ8DHgaWeOX|sb;gECht zl=`Mj&GL9?Xb_e@`Q+N_j?IT1GOHMc97a3vWDF>W=Dky<2N51zaj&VK_27ypP^m0A zZejnlfpLk^k*y)ax=lk{H;*1itQG&%5?LmlXhC zYSgy%^!1a-TeV_Ecru>jss#%Yx zW*>Y+`eWkTUyapm7$c)__l|NMK}NOrh(}* z&OGIC0)T{bUNB!*MmDZp4ZLFYx=k{vA2sh#KPYl98X6ip^dRR5C?g>tB`m8yO z5deaL0&!wJs3;)teU-#KiU4HwWbxv~+qP}<3(mfZT0mKxaKfS;&upO#S&qnqNkKg< zJ>%RJ4?R{a&4Kl;hBAoLZ0VBI2X_toUMa2t41%Cq8}BLh>@QX1%%VBx-QC@rH*cOj zd-m?JQCUq2g@V@FXhki8AfS}S)f(jfT zK)GD*?Ch-9>yG~7Zl5GchK7dv`uc{3hJ+At9J`MPK_F!+7zJk|qgh`M4n1_{>8G7| z7-M>^tG=Sih)sDYn^4;@?~e- ze%FnfdkUOTXbEF9+mBt&f&~j!u3R}|#*8e>vMh6eY~jL%L%Vl?A}63Q$SkB@e%6`g za#?VuRgLpZrjSxH#yE#Bf&;VZfp!46Jj?vwNFTOje0mU08k8yfVR>S=0jMzGPLbRG1fZN2h5I)M0yhY{f1g(;UMVGn z1!aXoDU2dxOjnlxKsW`E$;@M%6OV@>V64@-E$NBg?Fzy8_( z@0WM{INiJ^r{wIj&n*a28``|${_IU}-S)lj-`aK1;tS3_tHZ-b{{CG%H>}@T#r?ne z^_#A^=EK)qzF@(EQ%*VYhqv7{yzPPYTX*!#nsfSTC%dkaO9TyO5d$qAanv!37awu! ztv9|V-u>v~>v?DC#b=&6XNo=a(C&ZvmoGm0`0CB8AM5X*@zM*eR^Ma#KU2^>0Kf3j$7p;Bp!PUK;hri_PGr1?m#^bKO zjwD4CfDi)4Y;JmcdtDh$u8`$cL?j9c)f`5`C>|7?>ypDOz7R(1O0^zEk?=f~DZ-h{ z$ueRALWR5If?~%MfaaNIlnD=lbXcg!69x$U2G_Bx*tNfYxPANfS+iz6@x&93s^8bw zSE*Er#Ul3$L&Ljzy1J|5yHzf`x;tvsxU;+G@Okr|TD$hRMGKQ!9G1F~RGwPBW@x1R z@{2A#<%}~_y!pK!x^BgPJ#zN^Be~DVGdW(~F>P8evCtVH9`P%4#_QmzWRR;ziQS1OgVESo-kdK|~bn9k15JkMv%nl(5$ zID7VNE(C~$rAE?94MXLTS6}w3mz}xPBni%mjy&dA(p^~h_#<)UlvR&EY4ZH&`7cV6 zOe#pNUw!E%Z~n$tbA#dG-J#Enlv$P3pEiB^bhln|n9Najpb^KC z7X$!M0*|996U@1QO-4t{Nm7?mN(pK5=V4*df%bp3{pH558l)-;P#C&LN@&udQ8;P* zJyJ`J^5eaDg@m?poULF?oTo&10LxPagD4QT;qqty@W1^vCsf5bcbeslF)8Kq4Yi*2=81p(id#LBhG~K>!`>*eRptGy%sQL5jajXp%9e3Qy$5wkm@mt^g=3&!&H?3Wh zv*^lqz5l`sFXVY#B=P3;kKg*!pD(-c;%|NDy98U3@xZ?3bsp}&j`oLMs=MkWuB%Fa$fKeC<>!Y*(d_Z({pF{|LX2Lj22hC>F-WnvdAI0Oj#AzkjDVv1(F5| zR1n+c0T%Uo9Yl0apZV!eeC(j<19#tbj~4{*zV5v*z3{~ppv0?ZdZ4f4kh!xR!@}ko zh67&14cpkHT1VHkPk;U^%g;Xj-h2MTSn;iI-*nRQGm3?Pl?t_ykz#kx1s7ci3dj_| z_ip@ttg-yO3z&irV-e9p{|#UN(vtZv`o;YZ`(0B${NWFrykt&V&wBf37^!52BtZ~x z5L2mEGnog4D6UsMj#AVR@FIkOQZNscW=U$K0-?s(Jd=5*y1Ketu7NS)bK;~j7$wdy z(-mf|is)Fao@Kc-$_Nf2Kma8b+0W<{$1#9`fdQpdmSxT=XmD_F^QKMH zr%tPkmAg7R2m1SAtTRlhjaLh$&T6e57CS*0!s3phu`S!nue$i+H@)GaOJ04^^yz(f z{rFB}5f&ms@X!DJi4VT-LzlndBmeYIpN7=JW7+uFCqDMEH^2Fs*S_|(pZnbB0Jz&T zNfNEK3z@j5p6B)U_By4zEX!ujoEe5;UtgaK1vyK|?(Xg&2!@7+T$*WkcsR?lOezhU z)Z*#=GpvH>?VEeVi=<5)e zlu~OA0^e_15NQKINy(bZu~4}?@GuO8zyZ{9pdE;~{2|GqhT4jqpor5wvqzSKm{wIS zENx5HI7JpP7{J;+1coNx;ubdaLV#vz>X(WR&IqM z`+0?NwU&$l!Vg28rnw81cXXGaEr3vj1c0_sQYpy-uTdbRtl%QgmFH0@6Uqc3oD0Ui zlDlR~nJmi)^THyt7RqSBC;$-_X3RR|lb`;~r$05-dAdm*-}d8M0RZ)7eSJ?na-Ly+ zmO;skGqzyC(Zf5ppwKZa!F^ZFfu6qZCpK<^=*bjMg%EDl40FuUFS_maTLPLJ>Q`;V zfjH5Oa6w@$h?bxNghOS=EnIZ>zu#$ffe<7VS*jz!&ba8}hhO$G&Wg}}CLx1HY;WOl zC(3j@*N{>Q?uQ*c>o;#J=ad7KKoknFnU(sLFFWrg=barftt@ixX+UZf@Zd$qpStp~ zHDiTRhvP&s3V6s=PI7P&KzXGu7<<^Ui+}ioo1>@`Iki&NDnpAFE~pHxV+`f7;rCzr zk@sBtDV?k8u61|c^UKTLaC!d}chovoG~|5Np$Gr`&Yz|oB@G&B*cd_2z)ybs@3!j@ z+BiR`j*WFr8F*;*>ZDfZVc>eMR1gHPl5s$(+`umsVX0QRlrjiIW10~NKx-`o%X8&< z+~k?{1)-FBA`m?Qz@U{%^Mo-G1VO3LWdUPNoW|B#kNdtCJPUwcvt~_SU*G!m>xB?` zo)bdm%swbdRa%dY)}y<3_jGp2RF(=I)27WF9xIQJk25c_mJw@ot$z32zwGTP&Oh>n zMxs>eoOjr~2i9&L+EuI8li1?lzH<|TZYq1vTROkK>)0sj0?ZvZ{VNkSosXY>`sr_a z)0=vFdR%h=1L9XsaC znUiJNA%`5&lKl5Qzn;g%QfHQvFk+QjrKcmh_~MJNS+R1w63?1G<=?*luW!Bl@?YQg zz`)e0?|b_-OHN$ys~#pghCpXKtk#cQG^A!ve3#HN(2K3ASE~lq0WYqS|CrUQnpaw1|Y;3 zP~8BHO2B3{3!?lm1NE#eRH`U;K$(=PKnTFpbsjUn1R7*6y(be>FMGuTs9&f4a00>5 z=fTf+g94<0Sowmv*gvjK8#ZhRg24CvzP`SV8#g-ANtR`l`HYcLRM0Z1R;%6J-2>C6Z+m9P zSf$QAal{cv2PA zKoll>`m`sC_OKl``-rJDBJs|_&Z)YY$=i(A#(Rpru;5_;*zWGa*x2}gKiBqbOkQWh z=2kz|YSle>-endk1)z-0^SsF`6mH1&sjsPWh3QI4CMc({u3pAKaCbg!ChGuvQSyD} z>btCgAvs}OY0jC`6gE^aAv^=+^e3G1B%_|C4h(oKaCtg4UNfB~k8^>*t<210XXKw%p-kzk%jsfE?`N?hpdafut!#fq53jC>Qz*NNvD5FLZUfifvb0pJ#?L!ntph)!Io*t;-}j3hohDZX5W~uh_ z1=_Z6-`?5TxpnK-nKNe+LY{i+DMARPG>RgpP&a$_Yyi(Z^Na&Mjw0jwp0SqtB_5PA zT@ftQj582OR#)Ia^uc`@U}pX^siXaDJe0=0H1;D%vM#AuSQ1 zcExd>X0c$Qv-!zoE`+BoASGuOjKk8noMC|-$_h>ZYE25Fl*~Dgq|!pLER%!~#u#Iy{RWm&3&E^Kp38}B@!oKz z8E(n*+~Jj0yvoIIJY4RD+b>trNftPcXW*9>63XgFVz5X6E?fCZeI z7AYKtG2#-DmVmgS-)hejAl8Bi&m&efirpv$6ahRgNI}4Yc*29>U@n_Uc%!;afN=^J zHKYKs-18}5giiqv7L-d0STM?XW2&JIbqVIm?6}X|*)|*m0#JY^;Iu(_7k~zek>5br zl()_qqs#z-OJxerZ4ibND)JTxqX^B?GfF97+L!UZ=L6cpz*50s2`Hfi6fmAg(B#V# zVgXB8!`aS(Awq})e66GgfMT(j=lQyI>#Vf{0|NjU^`*)P5PIy1)sKf^XbDYZ#+Wxc zI_gIyN|9%VK{3Hqmhg~7Q2-4}z+ikqq2S!dyQ2_LAR2`!FoaSBY+{;s1ecZt66d_N z)(nE6R;wjR;`{!F4I2Q=n>Wwh+AZ9_Y11b6J)Y-Pt5qR{=XpkJ$_NN|a%KhMTNv$F z&6d)ZN`uE?K!70hp*aYlK+*SMB?#Qj!MIa#;FQ1zEJ3LdJ^QMup@8T6t;YadKsgZZ zw%XgWN5^qoC=?t>rSt%5InWLOm*1Z)vaJA&)k)xS_bk^+2u}lfic%?_Fw|&J#yK%96H%+VAh0^m zb0I3U$T?80jWNdaxG^B@9Jl?fAcu#CdwYAGM1(^vlu{|BF~;+}(b3VKo}PAO z^JmK}l18nIvPNrdE%q$2BrU5|*#IbZ@37O}W1Jx{6uxPN#+n|@dwk4H2t8R4fVAZX ziJRjI1-yoOr9o2;WS=S)O`elwFsiM@thtA(Gg z)69Mko=jHeY)T`OcKzguop1bf<0M#Wi8L_O^5)(er&iefMcy>IZu~B5J30bGKut?~ z%Th{OyMT5P3b!$Bmhq9cJ$VizsC&00$qI!+3%F@7!3UR0C1?GkweIZfG{y+w zODO>=ILq>E-n@AZN@`Gm5zn`|uGI3bqDQQkRK~-O2n}a3N~}9-+NddPbROH(6LaUv z>?K6jXzs3bK8w?)O>?1dCmz$?-JR#To7AHyisM)aF?a6V2AK1Gr{UxRt_`DN>c+N4 z?!^GCalKT-WVms83@DipdLU%tZka4LPwf9d?TPH~WeQNnn8TC+4&asp?N1u}|BFN| ztyGZ(EC}ac_}phH6(^tkVyV>^zxL%I=s9Eg+0X3Qe%QgYeI9mq_Yo?>Qpa6Cx$V)1 ze$&xCod-QLrVLzg&e^}X_t*VX1}fFs(vwf&v?O>zu;SFIFZkJAj~D|2Xq^fQ$90jW zdB$W4t3gOq2(#QM4XHpGv4HS+wU#hWEvPoga^PV{!yN0B*c<0H{gnlm16;XWCWQQ1dkX`YWAHhhTX#OpvrIv4QaKjXf?5#U>Uiyf+%S9140InuqEmCS z47TAcNgK%|25=2Z0S<6T0;5f`92e`7BZQZ#{%X(~TcyO##nzRLRO{zjW-l^=PQIWi1=09lr~*oGsw zW?3estW+vVl1M4@Jm0u+qqVkHs~IcfBuSD)89hEaCXH0aYN@oz^Q@Z4xK#AwSXw~% zK@(m#%<~v1g#e{s29N}XfHf#|jl|r3O-wz{tJmv65Lj!IB+2u9czD=R1Kqx9t>ZYZ z*XwDTIwrn*w_2^b2WgtN&NgwoWI4bYB!hDMz@a(hq%&%rhnhq2)GZ=fj`6UxkzsAd z-=6c~Kx>`nd7h`{fPLVBb^y5S53V$%{aY5DP%W<$V(w?pc%Q0(vT zf8FaZyZFM>3jvN=wCHcIeDlKjFAS*7EFG9}&}qv~{^dP)zxvYG{&v;xO2y*xGtPYJ zOO|$)$f1WHe)c)%%|G@S&jSTK#sDi-3Riu^I2@DHNHp(P#^9E30wUv7Y(BI$xTuO}pu}foXtya$J@(<`* zb`PyeHnFOoJYBh(cGCW1c0#tB!c2Uro%CVT*mB|>Y60XxZqS<8O_Rpt_!kUtei5c= z%-w>*1fUuO;H}?b(2a0~rIY7sN}9(wv1Hz3-nP`aI!u~!NNY1rnh_?)wt=Az!r8W{ z3~fGj#s8QjMAV9&(gq-~4r20Fux1ZqsU~W$6TvEwhWphd*s<>zgZ-ZjHKZNp(0w9f zw^^PmG;3a5tJmwCbIy6CQfcKiy1TmpXk#?sc^rUD)1a#et*y$9QCX%5z&WHs5Q!|y zx$kQ!+j}6jF4ICm44@cH<2wFf7Bjx@CrOf~soUFDw#89KwAL=WBIb^^8h(L?;C7OTE+1Jm;31ZvM&_zc4m5dgopD0{Hax*T3)Y-_0n_KmYt2Zurd1 znXFt!Yq4sS2EZAtF;*G)46q=!Ue7#_0`Pq{I$EjKQUJ!FR!ccY9B0gEk5_Fuhe;C^Z%(Lt&kB}0 zFxq~tt&1_JJ%>?CU5TcPskCF5)&Pr!(RVY?(lmo?ew;QQ8xBL8z?i~v3u?g)7(gv; z-+9_h96(c-8}ggknPvc=G*-9G5Jlsa_7~eFz#S-YE)xdEG{95SZ*8HnOAx~v zc*r(fX`IJqBLm%t#9733Aiq)C64nW(Y)Blsyo^6^D8UT#AG#23#?EuH+ zKsx|j{vhl!G4vAO6M{)8k2z++*T4SFv9U4V_j6?kqeiBj>A*v(bQE%UG~kwck>w$b zI&;~nQQy=j)~p*HOJGrm!fM&p>veaNcXojQR!YDK=1MUEYn04jO*TAq-3LB!?6Jpo zbo3l@$O|f!xTmM%jyvu+?zkl#9bHS8F1_cTUls~}y`E;7cH{4}41DfE6h$r>B&8f1 z8*{^%D~gVyC{5EW%l?ct(u^_+3J}VLYn)F?Suk7Q{^U z6mA9TTN;Bc>|z@5Wa8%)foV?l23EE4MVgWGHb~TPA+~^}wDA&cGbV1KD+kzkTOP*P z#_tNi2QeTG1Z7+MXAP`wZ8`B`gL^SSbtJakVY~e+0O&n5hFYh^G^Tk5qClWQH5vhf z_UobBBUjEiuJLhd8q5hZk-eHs$JsMfW3dm$lKuTRtKILcN%t!IV;0Od1FH@bL{Y>T zt5&PyqZ%jnp`#SxpJ+g(c2)@RI~A-CtCHTx|gj1$J# z0nl=w9RMzWL=4mJ9vSNH>b>BCmp*v^{fiebKJ4&$)>_6G72Km3uON|915laHvOG>i zSO5rzP2zO>u92Re5I|C^&N-;Fzpt-Sg`=7zNu3A=XeK6D%$##T|LeEDdHwaDKIWKX zuDa@~^UptjXlQ8V%GK9hcU`$${>Vo@Qm@yqyzo*sR0b|VC#`1B01E0%tXIbV( zG{#tWcem4YNz>FJn;-~U>big4#u)QF&-47>H()jA!bwvvot!l=?Ir4DQbesCq?)#D z;iM5+PnxJTg|^KCG{6$u$l&Nb@YNo3sl^@w%4PzjWIzTBXkjNN0n<`WZboY)pka+^ zr}V%$s50rrN!yq<-iNWUw#D3P9iuZepS=5~bz-dJK}*{LDn#zFxdSK!rkOG@u*Nph zVVXk!fk}dWtshL=THO3Tyh0~mK8h9_w#o0Y;O&Ewo9vy$T&Yy*?Cd0j^!D}w6S)b; zXHU~yD&)=Lu`EfTH3$)&M*yiTfI{Rn9*xdYD#QesM2kH{HFzshXb2`C}&&vQ}LJkOOhA@upELI zFa-tVuA;*3W4X{2tTOu!Qa{IQM`Mg}2hY9m6|Z>ZD_`-2FWyipgq(X;rqbx{K14yGo}%FUxz0hsRR*6|r3{OGot-@d z(DgF0ba>aeN|Ry;%c0Sdxo{%zR%t>QCqn3FwtnlYpL_X57k~0|U+FG-p2v+4D^@FZC~8rgSi2r*h~1FO*pX;T79_DC6+i8<-n{ktc;r6$+?wBj)n4AwoJ z=O0bG(h^s+t-@5g$GL6)YD*eb=mexK(?eS;astXgXv0>*T+>m^y@YO`UjlsRR>=Pb#k?+MC?Qj&WfjGn{^ znMiE1eH|BhmV$Bad8Qjbud% zZ99u4572321#LwD6o8^Nf+B~EUA(q3xG^49PjB2lbJ`&TrHr8#C^fWiE8&d0rTX&ysKYQ(zYhLO4JP zu?E^eTLQ{jDAF)YTAwzuLZrPiWp7r5;}|l4)$2LHjJ9!H2cc5t###_)4Qm(yjq8cl zwt-#vykxJxy*6&6FI(Hb<=E&bX`|&jW-I5sRebBxJxZxoMX|G+AO?&& zeuxF3piFoHV~hZyCmcB8+ykMY0uc3j;(js9wY$^K3X!yTFNf& zsS^fmkw4m1Qe50rYb}IuDxy-#=JAWx)dZ!WjDzy#&BQ=?^FriOfgnvXS6gJY0;rT~ z!rZ=jfn0W$0Ilk4w*$W?d^?epBu%XWZoptE2m|4q3TucoT4R#4+g~VZF>PcZ3uBuv zXqCHv^DJ?%BykNeuo_ky+e`*)SOfReTEHq;)p*xc0a&=qv9YjL!)h4oz6914nl)mf z4Uc-QV08+l089>@Lu(l1ZXUEbOz!ZEwc0=fMk(d4sWHaI>7Ne~`oH#wiv>~%9~p-R z1P@BNlRMykPgifE@_{~${H%A)oQg= zDm69$>Tx{?0;g{0^7_r7KLucoB9!|$*%Be~EnRGP`nM|0Wlvb-X_t_u_!obs7x0HMS zSC`X{msThgT$PQpyx3oG(Wx@F=wA*HXstP8&3;m_)&j&;DYq*Kv`?;-(n6u+gkmW( z08>&1UbwGl1$_?Jc-C6yf|6yKyQVI-G`TRxv~pNvQV(}ELhoxNUcYeft#j*~`kwFk9&pCZTrK* zum1N1&wIg7e)5x_UH9$kRK%QxZ~xdeoLNb8$}ETicf&&^9}kUV4iaw9G6Lk5;y9-6 zbhd5NhBd1$IeHw_(jZTZ#Uk3m#I;(D{(1DJs=d}Xn@uUD=XqI0>m00`N&!fcgxnjY zNRD&L88wPtLqAQ^Jb^+FqF>Z%HS+h=hGG^@ne-KD?&z>7VLGGvnyHc6C=#l*9bo`dnyGBbqV~7MtokeL zdH3K7Txf%98$c=n1kO3`ojI5~GEH&wj$KGB$!uY;MvTO3Z#EdTl7N6xUcP2-|+2ay)7Q~L z+-Nj1zQQbztYaVA4GZb_V;#S3+ewlz#-b?7<#J&d5?^Yj(i-HptJNwg=o8dDJ^k^( z%{!60GQAT515Rwd?z^3k!=~jv6Q`bqg`W6obYThHq9dQ_e37!Y*4pzt(to0;6`T`@TB!Rj+8r1)PI_`KJCcLasx7G18pUGXH0?Bv4Z|`FBMf7$ zTed0=M_i_Tg1~g~X=+Kzrt$3glmpj_H={(=#;s!Bc5MR)5eG0G zBq1y(V%&AhR4$u_i6MmNa!TI|2Id-wny`xyh?{U-Gyx0HT8E+Um^nZpO<}uaRiba< z-~QuMKlSC`zV)pi+5M*IDWj59z!_Zn=mPHNc z3I8|_LUx?_nvtFOzE1{bnkGdp$A{(auR$Hhs9MT#oO-=Z2S3yKq8u5~R;tx%E|;6$ zHR;}iKr9N^h*eWAmro!-CqfeVA<2JzN(3&g?6*FG+RTf^Vy#y5yu4vpQfkIpA+Of@ zaD5zxR%sO}lhQ26w)4#Ud4`5?(vkjqM&nT!5l2m{y2^Ad-cm1`?SV!uAy$8v=gVsIJ@agfljs z^~;}s8Ct=z(5S;J>ePqj)ssY|VcE@zybX=8nHKU!LiX33T(^Aff`|R>e|_!R1!aCn z9F=L?vB_*wt>|LKDQvs&nm4|E`_vU*{Ld?UocL{TefI^Ac|^gsYK`WXzy1vwi%0*> z-@p6gpXuoWBu|<#FL?$Y8h_q_HJeSXbv~ab|1mr~Ja67S0KL7vqobqQ%P4ztoXrH$ z2&frv_LgH|+SJgPTxKqpt5&Ps-QDBk<8xTyxoFWMk^{+5Un&Vc*70XApktXHe%Xl$B@tGo6Y8o=4+;QQY;p$)heYJ%!HOu7+ z)Fs<6j6)r!7z0yWYh)d~6a&+3ElU#sM*?a$syWwOF$F_H!I2iALo)&3CME}(Mgj&S z5ey<>5=v>^e>CAfxyqXEq$KpUK=siHdkEMA%O_I3~Uzy(Md zVyHy#8$Rd4$NX_(6sEC!{@TYq@^K&dh*RC|W+!?R)LN)ia;sAxUJa``i^ zi*oj8^UM1C`vD9M4b|&);uYp{xj2q#tvr@PwJeJy;g>C2HZ(LOgcuteBLL%A(0x}| zSG``Jn3$kemz7Fo-MV#ibseH8s?};ccI?PX$$a0RUY~OBop-fb?dwi5&$nxYwwSS!O^b@i;aRLWnP3{1BD|h%V6q(B7XYb$ZXe1 z=3h58)3gu`j}CsYY_Il(@J?=hJ zovN<;!#MqW#tCgXMl0msb-T?#L0=0aiBdVi)*s1ve1a172SbPhF;2YA@^peqqPQ)t z!7ztJA&#tab)h~6Ob?H-t96f?exEbNYmT4{%S;-7oNQQ8YUPA6xX@6*Kclv8Xvb%s z<>6O7$L8~a8V-x#HvUHH4{?2e7YKI6qwxV}>+Q$i@*y-00rH7E{PDin@VR>l%(i@4 z;J(gfpJ`X$2*))YfH7`~jV2SGBF^OeS88@#R3NDaj+$b6ejA&ep_)fPfKcXD@3I~rGa${@BCtgj#P*mcTRQ2vVw<)2d+$vY!ECmL>em- z<1wAH{Iq2D=dR0tj%f#B@Dk$LDOX2}vv;TK-FZ0hLv0hS`mwH}JUr4edX-J2+-`q^ zrEQfFU&~DYZlr7_FEwx5Di-vnmLBh{5_?GmvQ`2at!k@|NDXDqB=<`AmoaWH~jPD{lYGei8k?@MFo$b6S= zeB2k)x}Khprz9@wuzbGR8Txq|o+Xhz#37w7V^}+!!-+-LKBZBfS#A;p_{QoOqG*ECGc$pXUBsT}ysg_r*{$wTmSfjlMg7D-pLHJP zQFzY5Z~}>+(G2qc-|c~9UFUuGj{_Yo1h(v#+6hm{N32`ScV!0x z75uR`Co6Af@2I3lFFJtcWVLQ16M7$*ds86CTF_s*f;|ziq0FPKtMLA-S5*i)r{#)! ztu_mO)OA_ycQIW{ZSJYaF&_J*2VVn@U$FyRUP??bDT&6-&?zD&gsDrtOMJoyR6&HI zA`$;T8^$>A=puGDR5{bp`+|eM)4Y2mN>@~unTc1^el4Hn%RopYMIt3WSXIH{ByG`rK%B-#VZtE0T`uDi1IcU_DONRZLYc(Xp(kg~1Ex8bqyhoJv8fI!K+l zv*ka$A~gMN+hqD)#b#1%?$>>ug-)_;PEO*cY+=IKE?^DegA>1pHz9ZrtiDK1%*|=i z#u$r-kI=yfCT3gJiZxF#cGXd+NsHgh^Xz+}81XsNTJ7pZgGJhDD3jV|HoZa}NUcu~ zH?#M?6&*7b7*rz1ziQ2Zce9j~)J~JY9w?2M>`QC}1q3oC_k7mL2?(?SY6jo|x%MlI zIIxrkibgZVN~A;iC8Nn%rS~~yWsLvyQY|X=TmQTEuG({oM#?B%pyHmm15$HUDi#ecDy6St4wmz_vxC1}(@fvwp9NOt2{Z?UkjUUY<(+CA8pP?js|!fMvcSUrNR zrXrbXuL#xkIVe&hBBAp4^`X+``MT$La*6#_VHClUrtf*B{5jC^GQ&5T+jyFEb5y=fMBZI$b~sbutc*mbwdQKdmtd#)%lmiqYQ znpf|;dXO4HFLrk@>9?lNS4nUl6tsSKM!xI%WYlsf#^!q_c6%bOe~bzOOj=l1vas|?x^5fMvD zN(jt+e0+3|z_a;38IdhdLtGg^rTo?H*M0WTFt4fz2sTtUr{L7VvNW17( z$Urqc!ylVO100@L!SWg?m!?)$gw)-KpUCR4(E&!o=xe$AlQk*!;tjd;?$WJXu;qn- z!S2CKu}vlr=>~rdWSb1HSF;JP=cO2B5H>-!SF~ab+wxrd5rP(it%l1AVrep0Bqt}Q zK8S~8EPIQe?k$)Q{NFB{oUH7B(PBLi#eZV69F;#HbD4^&{Z$ozmjg$r}YnC25RKT9EPX9j!#orJH61b1++qu+yG z8ix0#SoL=5z}HNZuK^5^EjAq1MG*;O(`0k_@tMUN@1#m`ph3>XQ1g=|NimxRhVYTJ z7I;CSF@MZ0?Z)M7io7wgUwt`QNEwd9MkbdA{j9RnL1~%yPV&Ma#W1hZ`l& z`SxzkHMjD^@n?MF9~@s(qEoDPamIsi>AZ9AAF!gceFr_G@G)^6Jn9I0nt1Bbx%ZIN zjNW<){!=9&CUqmk{mP3ZRY+Jg$3YtzXvwRlKvSHUprMvn0xf~cLPMZT86{=!ir*F6 z$}c5zDVsADYuHd(P+4)+%?qPT>4sXqZWEK;{{~qtr?#HQ{V6*WOmw_^aVK=vabbe> zCH<%kUh=o|5b#$3&$*yr8_3;Y822`7JT?|{G}pS)wUwlnmvw9zr1<4VyA&vNG$G;D zkn=F7JmaLu&2O=%1CK#_DymDOMQ;_b zA|ilx?wE5n;O&A74&1SbAe*iOrU}8;tYhViM_>iKA0glFhd|u+El}Atjm~kM5b#*{ zdFwE`*JPhq(NK41PJnzQaTEVatK#t)+%D}s_)M;L3Fm|keoMUff|bXWsU z4PD-%jV&x6X0X-vzNS*P5wV$C0Rci#vbTe4oXH3I#t=b0j*cNU1oH{Ck8730ygxyl zKrP*=uSn2JEdDp&+H+I$a^PWd(D1c-K{!JRFo>l-TU^Sup?)ZOs8f}6q@0x-Xs27 z$7zo}+hdHh`DC>VPH<%Rw=9j$nKw$pZ(|JjGn>)b~&)j8KNi zAbw*Ohv`xZerRlZK-()c#PL_o{r>*=#zgP97Hr$x$&qsSM$#>1IH#W`m@^Jyr5PE^ z>O(D0-uq%*f|MZkKjlb;L;$wg^qMNPS%^ZX*Vk2I8YlU;qd|Pky1Tl#K#?U9!Yp)v zdG_<;U8AnDod`dFi`SLyq8sRewTiFbq_G)zZO6P#Bm-vMKwjO$W0De9Vt0H=Y?~i5 z&=?c|yQ3)p;sDY0r~wca00{u>kA;cJHRyi&TcJbg2l{XZ-~)OZk__GacAYGciDDU} zYKu;GxjLLjd&AZNgsM?u508$hTU!MP6%sYRe;6dV+XiJkl`cJp5qI6|du_!`bA989 zI}*b%!f~yV3#HZ?hR8q)0&;S()EuV?a0lK`UIb%jmkETKa1|-w zDpf(PQGysT#sZ^p3Yf#f^Lv$F<4Q45ruZj2cgm8dD`Hgk79C{9K*r^{)k9OJ#S8Eu zl9X349|a6?;B9b=h*GI3)E9Bp`^-Xjxng+`_%Bdp#3FcA+0Y0eX8+uNE2Lt27A>qw4-}@*d%6WCSb?0nvOgfEXHj$P5 z37w7MHzy1dl?U8?{;Bd(LrwZ)^MWC%x)O}m#mSoGtL92J#qqY4xV%?IO^&vfK^v*2 zwfua1q3)Qzm~S+77pF1Hm&M4>&psKX;an%=O z>!FP`W5UY+fl;2b)b00D{^7guBsKg;01QFqFDlptLBbH}y>3)vEYYY-OEg|;_5Zm5 z*R+(V8dTB`pGU=M73!>~3vz@!5~s?y`9aSiWB>UWYnJE0JYsleWyOwQaARZR|A6Y3 zn~#aXl!3Mcp+nPSc{v)>(SM>`^fdVJWTt&;lK{D&KbA3>{;4wzJB_+FwXYByFh`{Y zF3;>Q_BR-6PG`4$XZM0iab9z?WG}&c)jEyWw39w-s&4&(R|jKkVowcjRuy_T59=@F z1r6V=$kJ`_P>H_XLDONQLtZ1ncs^BsD}?WN9r<1Ew9EDBP$urn zW6~gfkX_fM(bH3B_v1j!qS4Dsq~-da=mT%USYD@%YwV5hF7tY@CRjjLnGksB(6^Cj z{c^`_bVpZKM1G4^-YQsz{bul~jL~Gpu!|s6)ZY>trbfj5Vd3Rr14;D0YrHC!ZYl&5B+Cajn+u@LCi7W-8)L-V!GXizYNSmK{YPs29+8 z;y@gPatv;ASvn_hNd-7_MAc?E>vPQsnl)=MrL;N<_hPywW#q8`#CZ!aCyj&e`9?2j z2Le$n03t%r-T-70vIlarGh zHQ9shh~ej_2N+<_b9(x5i*+LZl4RMt#I{i}=Uh-wkY$WZ+11vz+^`x89i2v@&SiHr z2nh?oXSF1FrcOrus4v&YwGLT_sw`s#_lC3Jw^%MfHUVet?yA~vb$)(8pcG0(+5bC{ zhmlzk`UE0bu}mfkfBe&bxHbx(wIFRe<_|xngr;jcQ|7d{+T4fl^QVP5*dnpV!3=F! z1588h7%LXC5(FG24vU;D^_oigv!_)PrlKAX4j%T)pYDNxZ&mm6eYM}yQSL325S>NHG2#^nn!0Poc9PtfR5SZbI0J$-WDpFvhiC3mMHT3#dgX zBGAWVhSrQ(EZ#hMRjO4lYE@`EkI$!x{_9AYxe;@@+tu>j%^U(-m1=H>bt=zez-!Y= z>|qJZ_dE#rExWkPWU1?}9mgdpPJM8#{{CjBb@%#&x0x9svI^rM$YgeDZ?(yaJU9zg z9TtZJqEx8n$fnnNeQ)%X*%!|NDWR3t`fEV`aDKGz(VE~|h%7)%MYQhnK>A_F-gwD1 zxBEh1^73Q?8Qb54Qel%{-hyfN7nd@}twf)*$bRx%Mn0`NtUpdfAU=mcBd?X931g44 zgCv}OQboLFWuBiqCG`Zw)!P!~J$)w1!wOot?{2XR_0s_nO~cYiRr9uY-nlzX00Mwm zs55AH$3qPP*mQlJJTyPKuDd(0+=O*3Gcyy=PyjI%IOW<(kMynj+^jad02V2L$~#p6 zG|M~Y4&%EbvY<+E5v$>P=Dy|SO_|)Yxkf?)2}!sGfF5zJTGuQXLQH+y({3+GL$X@?w`dr0Fw|D|Lgol=NddH?Gc&0ye>xuro9aW%>2*x*q)Zgs ziIS~86qI+?dXT=2q*}qjZt8`RuL|m^&U-#b6T6OR#$3PNK_mCLKJ)w1_v3k>QSpkK z{AHMV{aU5f^ZWWk@0qO>48E&ixQcOms46B=;oGOpIOr(QaZ@Ju-8SpGXmk|Wc3UL) zxaPiEVd-3sCO~Aq>$Pkr9U>uW)jIuc;Q)s};TUhJxWx7BH z2(I^m#RLZSB-#gsiY92;PZJMoD0T^)HD6XR>QqG9*e-xCXY1X5Pxn_T1YkH7a@ zh|9XJmAx>6o8o6FoYr{s1aYeP$kf27m^pvGVpyVi=o*JK^q6Hxd{MmA+}Y=o;sUgC zJ756qL!k0rE|LLZC22BUwMs91v}QdO%3@_~Oi7(UP0gD!ZDB{o_IT7w|3sP%lua4X{q{VR-PK+{kU%=z263` z>I4EdqH&WrZp-S_!!&j#-RrGxfR!OYx91799p$qN_4l zDU7(-W77Ah9S>}?_?^3kD*SwJWd{dacAx(>cT0q=PJfWcMJ*OqHR&)P7t}46e2X&dH!90r{__F9 z!O$5RF42%P$&jKHM|L?i`sS};yb$yPMP9@WenXYG&Z|_twYv$A_rE=#%xU>Aj>8;( zx77Nrb@<)w&{HWr?LUZ#*OSTllKgP)6-eZV-J_eWIYx*|OZIB7Zu=MMIo-wXduQj= zW;Z_q)$*`Xc}Zn`>v!YVb+NMk$Tn|l>VgX~`;$2EJ+qPgdFVr)QTyp;oUq6Cmf_3R zO-E~?-9R9o)%8_!$N)V(J%%L=7S#-n*d1p2U#YNhegw`AQdD!IMtT==(rpKLxz`RW zwWNsC_VCaHsa4t*+io={f(#r80l{bD!wk;Yw*mqRW08BF@MPFmCa2AGx=Az9nRxc# zP9+{1l$D!;x)2nKaWBN$-5Ud~O_AG)I z$Mtq8hu1kCA_pTXzME)<9llRs)_bSyOV9x{^uO%f#RZxK$CU5obM12X)Y{K-$I5Pww;mJ)px`D{-KxgASPP@Lbx~9PCg8S z8^9_i$hI^BH_IJu{Pr^4R-`0Gwh*SrnFIraLcyHTh@({%Rgt;4Sd)>b!Im_OYD9{4 zI@XHkgN$7-#;)~fZZw=yF{9PmESGS+u%e;ce%=9nTo%`r~&~7 zhvrp)8o6w>r3x5b2`B_(xp{eMgDDbfDUc@wk19I9+$8#o@QP+fELq$ zY3;N%s3rVfd`AgirEGq?CzpnR&K8)L0{DPSGWq_^zFBc(UAP3}ygeUy6pE8G5B`e< z2noNFxT3&}+kO%XD6MSSW8WI!aHy44wbk_T>_U5U@m5WZh7gul7Lt>+s>yBqnb@i*LwewJ) zhnqO`ID_Xhl@H&8&OUFW6=IWGsFXN&YNptr_66cQH(q~}%T*^NC$!hdyN;Wb*3MgB zM6nb;A)I`_Jt*>U`nZPWr-~93L%g{24zduLa^(2fodsR}_U_ngBq|q$`(^FM`}~iX z14iJo$d~4)FMmBR?ohv0XH>W*i5aeabX4m3H+d zZeLO32ijzY2Iy>X$*M{3j)Ua?+(-WWwb8KF6u~)_kyC>K*Lz(h(Hx{^;3!i)|7#r#n-NdXyxI)|OjETj$ zx#T@hxnByhIBm`UoxT--mDX=xsB*DSM&I8`53}5rrP6OrkWKJ*J2#&k28;RE2N*vor7t*`pi*23x6PJfpP86tTE{ zLEm|f%~AC)8}e|?8{qI|U`MPGINP40OvA`-BF%nvlHG(FmN?vB7*;Kvv(9EOu1{t# z>|A7LWTOnS4zjYrzb+Y3&O#eZr%Y#LnRutAT~)(xh4_}xDmtoAgg{7lUvjr1`HY@0 zR3Q1Si0PPxPO61Yy}INP|HRJDPMyUVm_vyF#4F%e)iXX!$SPrMoLT|j1tTax83BfN zz?_3+jEJ0ky}{=7D_A;u`ZRVUQ9eFP0>l)v_ONoN8=o5iOnOBRB=8r^}5;4YTjZyrdFypK33~!jDA2 zixlc}z9DfK#~oJ2*>DuEzEqZQSrc9V%01PW>{M61{n1xD7MKQ;FLlqf!joa5-s*7vHmBR}rM z9!6Bwod1SVR49qvZ_d808prFvjYkz(&0%`qYEc@2<8LFFy~LCf*vDy-5$g2MA7y-- zfe%vBD-lA6Rp6YM;5yH#d~)7xjWDP(Y#x_!C$F9|`2})##ROq&+~`+Uu4gXOdzE0T z1bc2XDcW1axlV)%}j*w~q)vN#@2Jv1P)=mk8n01xFz?MjSf zh>(Otzsp--+8?~XQ&ZS@l#?TOP(k+ZfAfdUoSfpV>u-Gi>)?RUH~~`&9b4GzI%-ex z$+WIO2$m^4=uPMPTrUADuG#26%z2ZqMLdm-{f}va2;wa0ok^0UDF;Ggx3f3ABvaxb zn}WwXSo)WpT5H#`0LR^RtfSJeu_4QxuxYzMV?mR90W&Q2cm?Y=TkVFj8K1RG@@^!Ie%c#{LM(W9lmqx;hvPC`l-ZgpeT6psH2yVAJcuIa9^K6g7lf^DsVwCdGQvSpr!CvDvW034 zxZeab|BN-A&?tP{*yq1!^m%aK0-N0typpfpRccaqzn?6!Q53$hZOoKV#)XW-Zb=S_ z%N)b|rkAujtng(j;t)~XnR(HUzp}gzZ z#>oo(6Uh5i;?UU8A)gT4loDM_5iWmO=HQ8slHBh+D)1KlJrCw`nR!C+0+bQuoF^r; zw{c-g9>-Ff?rS=SMk0S~nj|wuWpXbb1TbUIvz*ziP%v%I`887q?0CDiFJtR7<6>ge zx`GPub*+=3RY%Z*%;okeZme5)d5kKG&xpM0Jf40qY#|Dr{pf!v&r z>fQcjR{d(duG*mq&|(E6V&GfKlX7`|@Q8;RI!wFcB7pO!0OMYNNkHJ3Rw)%5QT*!s zQ}*nv!cId`a=#x{8jw`^xY~AXkx?Wf&~zZN*Qu@%&6%k$7`h~21f3{W{?Xxi@og(~ znRhm6sbh9&n$`2{P8YaGy4xm)=gZT+_89r0BdD{|L>wb4nrHQ&2`^~S$^8?*r~_n& zQ3}YFSLc%bf2|{y>_6d{|H297^d?bGFi}3e;seyHzlsa^JnGED6Ul#kyr^F>Y0$_V zWK{PZtHQ%MO{lCw_oe&=-l{tC;i|Hw23hvQOAhqf_XMX-!352~FIc~xLT8*xlq(JG zti#ylz<8}HK01t03PEayLBQLr>A+gVh7c6_7exEpAJ{U8PqQi(oTt)$gU37hq0;bB zC5GGbb5}m8pGSs>2V+RNfs&<9-i(2+6|b0MyTl@6#)-!))nT^dPltXc%@hkV)#3$% z@|y0AGQ>EWo-r6=7LRJoVPhj-WP&__9ZKn7m0zrx2qVd1jkw=a-EJsREKj>VMS?@5 zj|@>yku57U)(o4^!FPc;2jf z+}zyEl4b6P)kB_&2Qnj3kzq%G=qb&G=rV{~ zHdXvk?+H_G2`Fzni#CE}`?xr6=M%dw@FA8jMP-y{zQG-%YJ1G>6mmNj$Yq%mdIiX# z=S8LYO|%qB{5*Y4ULWP#Y1E*s(pyEn{5H^VQd-8$(s86tvpQ#Rku#Ll9FaZru10)-X5^#h01+S|F=tneE z%`&dJV|1yNsoIRf>t*&=8JA`@&41jW_xWpvj>Dk550OGO5kW|Y8Efomgojfu11 z0;>19VVYmR9`IrI@yDu9*gOPsylV`7r}HI?YTvi0s0G+k(w}^zLI^q{ywVNf=I48C zK`AnE!(p079f%EtEsufJp1JRg4AOm1IC7%=%EK>5VmHJ&bD928EW&i9i4jTV3fDYY zA@TC&rjQjP!|~HT9`%mWD!zn~ac`|#=#07vx!>~Z2FvWp@O5mF$NTUfm#mf~00>F6 zQZB0}KG64M-SU?}9B6qS); z5yJIqW%NyCz8W<{4`fS*&UMj87FgB`2=%`~rTD>7#H@mp-Fjj#$Q2}Z=$(K>+r$+? zHjPg!#mMz8FumilW1Bx&ra(*c`#jRUc^R%i;hcGZynDkZp(G2alQ^GBvv}xuOO+7d zBQnk%>)KQnG8FWD6x5a}md#+}pv+7*5UKr!a3WN7b+JRgM;5jA%bM?BYsYpgsxCol zjR=R7Hk)~WG89!2hAAWxuSohKLql=^hbw@J7oE0DJupy1I%tlmSS9{GzNKw$N>PeQ zzBonEA6K=Fb+}5SJOL7+smmxY&UEirn_i0kIbZc__Gekv&kRl(D;lqYG^Zl2k0jn5 zrw}wDe^Uuse|Pu+L3R5p2Ri9uNTMV%Ep0=^htfnEDiw-gd36h&P-qPc8cC=Hcs%fB z6cvjYxA;?_RuJA-77!ZeWLe61*pWEDM{3JUu}x?82G(XWt?Wdk3BcYz6LjAzWb1`Nr@j=m;Z#e}M?OKozFM^VZiwm-n@an23l7&5?o%&Q;x# zJs6`+Zw(L>BKT;2{D?qXmg(Uatwu>L~cRIm;`N) z6DN0J@Ipo5)cs8|W4s`Yy|`A2PEed}<09=L0XVBUJQ$MfMrrOIczFr9=pZzw-t<4{ zmsGDgB&zuc_BJ|b^CWg_v!$Fk;C@e``dJY()mpSg|frfNg7RU`th0WE8*i zy*<==xfo4hZgyx_2idYnI`JD#0Co*1%h2JXBMypb6^s2X(MxF2SK#M10y-VNXOE)Z zYY`lI{TkN6)b4m_(gS=K52=jkta)2J-zy`rixKjd4LQG;xJjZ8tC#PFSLN;QSb}_G ze90ySv2H_1CtFsdvPpP2>3L(j$nq4brWZ%+5blt{MB+ven@mu)V?Wqp)0Xo+jucip1 z{v_zr|K|d9orRg~x3QH)n-6g5P>-P7jOok&2^H7_z(X$gXR}&(VH~IaqVjAq5f9Xw z-!35Y>;bTqr$}9Tg4w42K6I(HK{B@g%N%2q1>`gCg#}v`@?l(+pJL4ib?qcMU0Z)2 zhu_4rQ(hU4N~?q^+2{gOP+ew2GzcFc%k?uv9Ur)INyk(f0$DMC;JF2W!yvS@r*qoc zd~6^hVu3@EusNt4zrl4T$+Z-L^}c3M#u?{cZG%5I5Oqr%)^H+(0|rBWjS2t5Qt5uv zq4iPsvEv+R_0PZ%9;@jR;vi8ILwP7=O!VSTAyI;O&yxReCrH<}paY`UcIZGMGB z^^|QFE*(9#G%1od`ri#J6~}Rnxl&$-dVR5nC|3~zwGa+c>hacfB9*lrT_QrwUktM`z98u^*y5n zS(*01x4tXkQDkW~X*9wQpA{Juu;a=FZSK;Ge-(GW6l#n;u`S3jl9i`{6(C@k*7su9 zsQX88q!+C0{8j(+=iv1W53M5ni4Z7(SvcxgqBu}sIqLky8D-c4{Hp}o=>_PIgT-Ns zaf@Z@f?r*IrTBs0YTL(Q+ekD`x?eY?gZ;X|usTUAD?6KpbiNQ1m56~jg)`F9WJoq0 zRgLExr5b)#qRaB9mMo6+!U-*W7qI9OsXv|CS<)pe{X-^eTe1khuHl%uq|XIwYWQ9) zt3)9k-@u&9I52HrLDv=8XT-%_V@{a>Z;4yRQUh7`xQaiv?6+Xvq?Lf?eK0k$p`XHM zMbh#@u%Fxb9#vP}rzKH?ZVgqLreR?!@kfgL#c%g8195H! z6xzm*3Z-20zINY9*}pah+ZQK(QYwnxBETp+aK+^*3gwDfkp0+(c~vGzO|O++QSfzB zmj%Uy5Q0r(!_vD|g7MpTWup7bL{wC3mkb;+Tjy~k$Gq{#mDt_d%m+Ke%NZ@P$KMyI z13%F6UJ9y>F7UEykNh4xEvW%*+^x3$q3z6odHc3v9BZuIz4yqS)$yc!KJVrCn?MQ+ z5@VJGMuv`*2u+B&nT!2HQ|0>opJuUtn{n4ysTc{!RZ=?q_QTjzt2K8|cmzo^*sx>^oHNO?4X?(ZoGJ2Hs!X z3489_R3wa+oPP_S8sfIKG;~3EPr~J@_U-h!F8{@4&z+UAdha z{Q+5XnL~Xi=S&i6LL_SwnPlYXyZo1&O~Ez;AMOVSO$jw*a1-BU1NL3GrfGP9vxEg% zWvC}?G`EvPj*ZUIG!sgJA@4hXltBvJ6FZ$Fy9`J~FsG$Bfrjdep((($gA@d2Co*Z% zA9J{d!GTQN1h)%5Ud1JSE0-@;uzs`p^tum$*zb0g-S8pQL;B&PVgTlxomq^P(PdT6 z%30fS-`PuFjGy-fe;D7y8tzU%6Yy#4-Y zz3Vy@&avf|+Ab}H+^07q)zNvGp^O%$(Snw|+a z<@`I_>*C1hrem)gTq&{)Y4T>$NlC#a4fd{mICkGFJu=s8MJ>#c$E{Gw%FNGngK~1d zcjS3rejvn!C;q~MqvMzPaWCJx*5^x^%uY>~h(<|eV)qX{$aexNCoUT}P`=SX!V<&xhk?HJxp*s>}~Z9p~ENi^wkw3~B%P^kfqyh`Gj1aFMuj z@J^QDmoQ9&d?8O0hLRM=1VY#XBxsvo9F;ZbaKGyW3~>syG#<~}7oT_B96g6dF|bxz ze2Zb>$NJ$`eyy<-&VFj;fu#Q^U@1LXoyuKezdtU0QfAp@_w$&wGrVY1-ZKIN zl~IjeJSPz>L5p{i%ri-nR;~)%5t=vLGWKW~kDW&+w zx)KnH&0GC=i?rssgg5E^9QBsn(ETCjOT`+kTaRLf14V??EG{I^(24VDh1^=&;Xb5T zRRI~1Hc8fEye@?Oq4bTy?wrrdpx(z{E*Gh}&oCytv^^M7aPRuuR%t%`+yG0V?&gAZ zWD97qFuZq}Z(g>mOtwYHTOU0ZeYSnh+HNa`M19Iq&PE~_P#jkB9qm&To|m#nrz!`p zS$iLBayEFrVl1-lMeTZrS>;~F#w$;{*Y-V&Hzp&{`|V(2zCVho+K=J4sXo!Wx)QTFw#8JC7@5jq>c@Fv3JOLpJ|CqtuYTI57k%t?Y0Y*O@R#Lg-1(Vw z{3jGP*@jqPG4>dqR-)O?XowPROCJB*kt)kZkHtx(#9uQy&jb zkDKy0x`qaOq^W~j7}B?CY+rue#d%d2kaq5th{Y%`Ebda+XmRv?sVz3*db)O$xv3Q88+d5U5`L#>%!cXM;6Vp@09oZ%KT6Dn{!s3*@%Gj-y&U2zt1mg;i3tw~amRW3Y zGv{!-NWcVxjE3lkKl&4$;eFFh4BgfGfBmYx$OcwYDnC&%H zI$ikUa<8189#V<(+n0n>(QrlV?#z9zgzoxVEjiiu|5X88!>IL}wLRfIooe5!?=US@ z7+(vMXZE85nMFB{EmvT2jL^ zZ5uuQ_~6rtWT(AC_$sJ{MqiDUVI5fiiKHeKKg=3>Zp{L}>Cco3MC=D06!w%i(x z$;No%6Erk|~ApIzieaqL1gg+t1J7`w9o_{Kv*Y0mG zCSHDZ>)&5{bRMC+`G`#IMDhM5F}b&F!o<^B7`H{(-?+{OCe(qjR$62M#rRNTAl&1Y(G8l$`stw<1ir}rVmB7m_9gSv)3r3pTGfV6 z=iFq^Db?QF1zKHAWrOMl>#jG~7n3?3_l1)$3va6pTg;bU=iScf0pdj~yZ2p`;cW*k zv!=dNFMIwq2IfV^=_u-u?dBpnl4{QU}Wi$i@Y zH>uyp4{K6VeP!(v{KHqil$?UfawBr)y+{6h9;V{GH4_lB`uD{ONRynD18I`>Y?m>+ z5ha+!srL9a|4(gH@EF7A7K9Mjo;aB*}<4KAaDPX`S z#xH&pvPipnFw6UL)_T@CMROjXts?5Q4)&M6Osv^ecP@BTUK!Z_@QhrDzZBklaPB<) z`3Af8YmLk9;qF)(p&48ErCgjSUq8eQ+e>--<2zTjKc3DOMO-x})Z}-+fRp`n=gpd) zBFxurER%3u5k8KPuN$(Suyx^{PwJSW=GTm++5heryM0$uS;-%J#9nrDhkQ5{XO<^V zSZa9YAz?$g6&tzjFZU5~zK1(*^ag+H^B!;i<=LY3Vkg7$B)QWkce5+XApPYggj}zz zibSdXCUY64G!oq-4kLB{rPY0( zqPHLhMTbx%PZ|yTKTl-1c#sKUr0uC>!L5Wc8%qv<{SNP>0_oZzVz|1T$oNuIb3Z7i z@3!i;DAMJ5bi*e2axbP2CnX}{)1<4C6b#cx-RIi_^A(yUV24G_EBex^;&(#4hmM6s z6}$d?-7I!_UU;-n`DG&jiLGU03yJ*qTsS&}-8hyq>9$r!sQi1^7_^34ZA_xW#kxJj+o!tkmx_7FK4_`PW~H$ zzR_=~U%Npwi{fNoCr}a$x{PG8bf=w@QhirI9i;S;A|N2Tra5DxI2YHM5NW7Y;q@ebkb1E{7ycw(G2!TBu!C~c;V*<1C!YI2<`Z5)j^6tn(RM%X zHctw@r~vlC0qx5e#ONz^yG`^7&h@2%&lNe@=ks16Fx6Urd0Iz8MEuzO)Wn|c$%Zsq z%%QOL^U_?^cFS{q=4A(Lq|O6(#Jy}+(TAnUSbJ~tzI#2pD`#}&n`Jc;nD`$`#LlXy z*T1QMgT2S~hqY#~qxsVKKsI~!Ft&<-$*4+51UaYTq81zYsh&;6Yy7Lu;$qVGx}G|f zl+SDs-GTQjX}bs7zd1oWop)-m=PtGSEbb0nM_ozpMR#`=D|}YK6!_-RRlU;pB8xdi zCVQXsE1IGEW<<^q{0s(rzE#fe6$~2UW^`_>sWL>C3mAfwcV`3tP3U`XIxgz-?viKR zCms>11zi|}#rQQ&viMf}8U5FC4GAdb_fLdOPL|0HFE-);+?k9zs2Ew}97`4cw@(NA ze6=o$Ob2macsnVuOGoRb|wclx@sou-OOKOek<(g*3?oq%n8A3pRGyu zz+Qivh3tyGFUV390i60?#n1>>bPVG~-&-7W*6nO79}#1hK_oj7?YWl6nK9A(zmt!9 zLt@X>FMl_C6@Rai>YCqvDLwgT%4AVkiCqOt$xYYh^##VRF#L@o&`M>;C!V*ZmTdK} z7_(~fSSU9jWa3WQB?ux_-Lr-!o{8tyU z&%Y5(xjv2b;tdsSq_vI84*a+Y`ijjs zE`nlb9K3&MA+AQTs(GbU%n+%akB#`QIJS*A7kA;u_W2OKQ&!6wdeCGmJarnBV?yH5 zQOn^@0!4CZIl+Ni@Zutm?ALX_frl7N(`ek|;!r9%-%Cts2U9#nJhqDvSPyjF%R9Rl zJ9{jBeqNI!_qmKI?ev^UK5!I#Vhtm45kF<83zo%Cgp)4}cV+e=M_+t=zInN3e`#|% zC6T&4A+J)|wjTIL-G&O$-3*#G?SpYb6w_`$#qIoPkob+?BI-@mX%5dx;Kc-n4-e55 zbQ+0euS2)eBSq=8@(fw$%`>nXqZXO~XFTgw>HPRt?%scfF1c$V)0vTOnTp$gLxM5dHbsfO)ikdY zOV{fc>`t8!VVK&_Ks1;MHHH?N_b3$Dl*Twggzabla?ZT%E|R2(t6nP4cbGAkRUqi$ zht67ym`n&YzX*kvJ&%F)jK^p6nF|x83jb)V@HbygKWfD7#mp&l;tm8lZV6&3DfXF> z^uu8d!Vm}IwWA#j*R20P098S%zAL!r7d(tKP%egE(3e!V1*L9)T2>2yG*!~~S{nlq zg@Feqv@+83ys#W4aTtWm18L1X9{__DoWU|MX^;|;-`kHw6-r(TaKMvXaFFAJW=Ikh z1TUS!BFg+==JIn$b#{mx1ynq5xP?|EJ*HzNCAjc@`ms@PpvzZ z7HgZiQux(swcOPMCJ^D%pZn6|@yCAh(@T6k{G~5`{@9}yS%N2pRw)-An`l-Gac~b- zLD;|CbJzOY?l|tal0U@Q~dnIe^Q|0XZT; z3FhgHg)$>Y;I8(QY*R1u7sQMipT{L{v$-{zT}d2pHgTIroaf)Md8=%wtZRLhGzT*v z;_X3Z0Fq`Ur#Erzwx%%XW(Qr*y|QV(FKf-$*wM=x@M;(ZfJ9)y1zCW{F1_0gC!27u z>sV3%3uXWTk^qP)fVt0L7BGywrna#boM&3j1w1Wm48}As8NlV@x>6#)`PR>NEn0v> z17PkMGQtAW)B|?$+}EFZ=2<75vNTaq(JSoSP+y*hqX}(wqIP|0+(~Qgz4zYhn7AF$ zx#N0neQ?d@TvrzN<1-0c%a_^^xy{TnSOIPTlNGhoc>6&{4%CL1-NJL-6bXXm@0o3r ztxSPDs|W*xK&=)7=qmTs>J=%aHYq6cc*$uN23Yv;49G|gKx)asQYdgo+Qgr31AF?z zF?>50s?lh;eu3`84z_X`fMU>y0Xa!1r=Uck=~VYv=r1{4+b6&N54?$tH_6 z8+`CK8Z?>%rqe#;ZZrSeZO0c!@-s@#Ohoe)H8h6HfdQkkkDk#WPav0y=d}|bZKUKt zrq2DAF_(xMfLR8^VcmWBm|b~-y>EMc=N?v!{?)j`O9IT9q>il>&Gabyd@y{BF?pD1 z>wze8G}D0>VCS*(c%csY(tK>5+l#X0EnCZ&$*jE7EoOoMbi34+0~rA&%l2Xh$o%5u zIgRfA+o(4fW94!|sU%5~QmK$6Nf3BI%Z0TLkzlS*Cxd1Q0BHjN;Fe&4=O+u-8Me-L zDHe;at>6p6`$+@_WlX&m_4ITT>CEYS9=AaDbid847LhkGv({y7)Ml3Nn#P-vc-{ge zTJpnRN@AZqJRdXMH2x^^{Ft!u&E*N3Ybk&X0~=e!(rK$%I53Ij?H&#!EiEVD7;n6Z zKgAhf*}^ZGYe>_=UC=4EEv$}%d973AV(B}=E_ZssruBN%)6+vloqAyBvGdqzxNP4G zKr3yH$=v6B-a8-HXD|@i^#smf+m~_1+LyOL>3XeEE*HrHL{f4hA3zWUmQoOBRstZQ z0RnL%FamKfW&v3DqoXt>P0z(3*LN{(*;Zh#Jx+e0sHM*>Z-&*L zi7)W1b#B&HjeFed>FGJ+j5FrVb9%szfyQVB~t#y#USOvhFa9m5W{Pe$P9FfCZE$PcpQq*awF!zuB9uZcH@yDs+9fV#D8V>-2SpH>`ob4(=^vOwils(CWjsW>xjTuxln%h zyHC&bfKfv1j27)YUN8gyC3iII2-v8#MQFAD?!4Z%!2pMXH0_=3>h4axs8k$BQK1w9 zh~oy4DU}NO_H2&)3^2{M;~jUlJHUe<9v-e#Dnf`tq2LyNB}QmpNp01@$$DW{e;tNC zKm=Q@RlCXsBJRTLPFXO@RIP!QL?D30UyM2IU*DFt(|^z6?rbvILmI)`Nn>&&XU_fQ>eK{cED;BjByFT z)r}G%@Wn*8`ga~X5toUk)jCrV-7DE<4A^$`?nEcmE3<9efnk(=)4IFxLogmSVy&|p zUCv}zxeE}CF~-3e7&wCj19Kfy!NCNWVD1ca9X$mY10ygC#=rz)jAd64W7PVAfn`53 z#uza)&oN?*EWr|VssL-qf-%Nek|g5}5_Nd6ZLo>Zj_pwUf9~Gy(132kJDUEtU*1DKCKk3%9yJTtsaJW<SWnos^+r1Z!YTTZh;dE^a!MQfqW`SP^N*U(lh!ntyBDqvn(dwZCW- znx4zO8>IlpPW_G*Wc$ou>GnWPDEWMbZ$tpKLGhi43p&WA#%Uv-*()tH*tRnwkfZ5> z^;(~agS9FK?RfhEZ~eDWEK`Tc#IvlL?0UcTnYSLV`81SW@4hhsEWt5MfEWxcgAtC5 z!DVc43#hCDf?Rlu0}x~YSjGWJPk^i+gpSK32!c_(Ao;*I%kJa$X5LIrv;Y)12c!X* zC7}!izy*P^7{m;d7Vu$#gi9arp#cu=B?d;AAe6$u)l7LH;Z&y^1_N-)Q;azKfD^&6 zj$syghdRU644|@tcH2rqvJj4Xq`<*pESOC=Cm`$y0vJF8B>^}-43A<-S@YeS zW>j;W7~Dv-v$NfoLS@;Jlw(_A?pt^^Yfo=X*zNq76Ti%K%jXyKY}^3GtmyddsM@-= zrPEnqG{!XPU;$`e&vrNjL(ftvwycw^fQa#YDo00)hHM5+vkHle4)z}}`zzigU?vU7 zTs`0po!@7UpBYfb-~tYUvakdJmetL1CK;NnEm^{rwXmGYtg3)D*@-f)2g>vYvjl4( z86fPKw?^PH^K9E#aY&72;4mBvh9?9r;lYAQFeWt04AS?r`3U@?TR0N!#9}LyMm8N1 z7M9%IlmulIT&AUwIKar6Vop^i0KlYeu{4o&no$D=kgz^+G;?_rv({-Qa`&+SCzfH` zEX#y5V3yz+a7K;7!LQ6LR@H!d-62X)1nlUZGI7E88maw8RJcUdfoKcTwNvaxEss7 zgfYsOXMe&nemnP6teHPZ;}5ZIDU=-Sp~r-%T9)kgQWxxYHDK#&wzFGMF4wh92g111 zdyG2dk>|{Tmbc=0Mwo4nDQg!PfH;`W4YbUix1%bo0S@SF zF%n0cdQwxH(bW|qj^D72ZP(G{&aKIDYdm%SE(7Cvi<-5;^YO9`n|Tj>+_)E7mY6FB zheQH+;M{ov5-G?710e(`^UpXZ_-IjTWT7#h3#^FIU(;5W3d|B@hI=u~h%*KaunfQ< z8pW=`@`xJcPD*5K9PKN4=9o&>2D^!%xpVrOjwv4&qg?3X!+#h zKM{W}3+ws!leXu)Hl^(uJzL(?%P%wDnf8(UE^4h-GhS-ci#xxgI0Y>-9vj=qtT_6? zM02<103$8{9>|Zr$^nvznP|t)3g%^@4)|8ce#oi+tiRz+ug( zwiT??(P}XSvi#a(9Xc(;eccDy@x0WL+{H7#iS`w|!`|gNc^jpSJHO6N1mn-Zdg0I2 z;{UsmPdkRfI;TR}3!0z(k~3WFQ~Qpc!>YzyW^+AHMjbj2ezH+9n)Vvd00()a&=mHJ zAGqcE@Fvp2v;VX4(ra2QHEp?Jd02uR(;XjcwICml?0jXnd`-IoLt6yYDU0M1Ysff8 zU~2WmVHOM`TktI{x&2j5ywj269ZclJ^T;A=CL6M>2a)PX{%CRVxDk^EU;;sAgmDe# z@@fJg;BK;nBT<$j(`$BI;m?hj9qS#AqdVGp$T@AoCY*duD66Fz;%@~zSjWDcJI~rQ zxKA^lodaUqmQZ{5)oqdQC`;0SH<9Moj?3uZ(UK`wQr9kmZl_AC@Pvg|qLvejBtbxpcF*=~fE zS>HV8Xxp3xY+D8jYiEt{@s|qOQMYnQaI8hj$5;+N6`d)cwgpqLHgcoT0y$W&AyM`; zme8cw&nX~A;91_TQ?*vK!fn~Sbf_2tXO4k`GN6?hEQ3orIk~Ep{vne1^=7FEjvs;Cn^On0};mUWJ(xy{<*yZ%VqXvX`*br zd)hI(!izb-l+(tnV{mL|lhF)xbRej3CJ3_xZU9O7?4=G}k<%AeWNpP5h_ry1Y? zyADDKhvj7QCMegkkveu|%UfigyltRZ81Ar{ruQR8XC|R#CuJ$cj5p~-ZN?MY-kVLc zB#`HT*zCIu3}s!(Mo(Fj8i6yoeyfrJW=tQe=VZ0~{mbWem1T}=epCo-hpL~KZm8(# zbG)-!9yUrz+VNn4(UfIPwip@%bU(#+J!MvT$8A_%P}`B_OwpKD&yi7I+f*W1?)~l|S2jFqeG-CMYXtYPvhl$Y>6~+b2bbx^>Ma4Ojvu zK+-vR3|2z|kcs`Dj}Qz@=2rnT+((??iZ5X#4>EJB|WkHR{fMuNKX@x zYHiyVouP>_sQZMN-}W8ZxZlM)AKEtipL37`@n&A60cnONgDuk-^Owk4AMh-rfl^W?Drh+b2RDwaIp5d*w<6+=9>2=1u;FO^yT$G&P_r3mmoV ztmE;^aT8NU^g;kRLIpm~iXrzE3CN@ziUEeha1EqQ^$KfUt7gi)s1}T5bEOUro>5LI z+IHN?xXLVQL#NGtE+n!Zj7@HqrfH~J%YKw=PvgS!qt~qj_?VMC4}ecl`J|`Qq%RDa zEPI-V_?sh9EtQ;^wchFk_}g@eE}TJa#3f~gEOWv)_*+L^go z-?aR4woQA7kK!(B6$`TV-7JIP?Gg5}SVjkFlWCE!n0Cm>G8lJ9ler%nNNtma(>V#$ zcDtAZkj(ZCUr_UlShJXg05ZH;G=z@x?HVd-DL^PRlVDALOxp3O&RQNCTha3}l23ZN zr9J8bPCHhyOkBgo7-Nh9pp?r0=;-Z<7{INy)>=p4sI>+VMJ*mSuC28YsR96N0EVOy z100q{y?CmO${5agtxnC}(JV?5lil9Ax0I$DV2xalLu1GoVt{TwXX^os$twD6`y>*j zkPAIqSU}q-cI!%~b=M2feWywzr#Ofxj$;m3qsaoTA{uZoZjDnmM8rC{?@7BAZjGUQ zluN~cNmENenlu1S(2b}8z-oZdXe0pFM2)!W#w%(7WML8usha?f0U91LxggbcIcIAG~mR;$AR(li~Vl4(5S<^?cctTl!#z?9aOL0KpZ z%g~4-w78|SM;)soh)qBu2{O{n=b zWStz=>NUzr=Xe|`hhj8pLx6?VAS6j6jz<`bYHhZrDbOYcQ?QHy7B1xrMr#WssRj^7 zi3JEesn^}I0cGHgYML-0q*|rc09>akBOiwakul6DFxW;^0|m8e1_%(KZF8@!jQ}=M znYYBqaM)_C;(n=t)Rm)Kt&B^{SAZcP(e7I;Q5N(iw4phtFG(3qn!$h+8g&4*MpL(v zhE51Z=PWO6bl%obj#5)AkU<)0l{l+K69`bMwHgdS1Z}KFTgDWcmYyYT$$-quNj@2f zK(=11wPq!X688+F>Yq97a9?O58ZOpa073}Hn6p>XG!-IqB!Zv-@Fupj!O&18RehTeQ*|xC1$NPnyfL_kV6{!$Rp8 z(8i(>J9$!8M@dox6U2BDRXxF#C1PmQ>PD$J*6v&2hJdk-J;`e51dRsgjDUe^Q$6Vf zWIdl(>ZT9~qDBHM3#F*8IH2oku@t1>hIysXYt)A<;1>X+U=$!2Jm=>PS5wZJ1!9GA zPf?||NiGb)KvfX1b|lB=8mJMp)!+oOWONccx;@31Raz5RP1QBX0$~UcN3{Y35R8D{$=#YzbAtGE&usgp{svW}2p2L2wU1sZ;>0wHmNO2nJy^j4`Q-MKf`2;>f4lQo6dj z0L!@qP>)q3N;}MzHmUIrZZ$=%)KQPavz8e{X-cgYH$hNfka47RqO?xHGmnKq0KC=I zLMbJs1mJld5lO)SNFe|&m`~tQq*@NB?*)PdaclurE(eUmSkxnBEI9X_e?L*?mj!98 z8KJ9GWPq`z5yi$b2pI! z0+-At5nwDa=Yothz?h^YQEBQz!b&O0d=5fwD5KJo!T{BJ0vjW(GcfJ;Qidq8o{%6Q zNu3E0Dc5$FkTl>ydOW4JJ10fv{W*ojKtzU`xK9vx0HP>Ol0>PLGo;GAoaEDw;}}4x zTn1y-m`0;vt>r?zD7_wDT*JkV`%mjssRXc`LkJdzK4auIl_XKFQBJW~41&Oki0}IV zv`*chCrJdrlb$j>)kspKUBVW#(hqe)AP_vZa?i<}$t9)aLU17%=Zs4)@WB}uEUMQWiObi& z_Lcrpan;c)HPQ>tJGUUpOAkBwfd{M0RxXpGPs*;zQ}^V|yZOc&AGqhv-FMrC3$f3B z2fXQZr(A!{RooL>hZ{>5FDwN9ZoBWvc+vCyU;g6CQPCn84WnT6oI_tBxmS=~vnKWT zPu=s!Kl$;!x82(7^~_teigA$)Z$4npUEcBD_uTiymN|#aDfxa+PcWsg|MY+Q;A7h= zzx>G$`pf-aIP-i1JaXT?OBXD7)9Gh?=Cfby_Pm}zOq)KlCzw+5ipL#)OdM(HabJ1> zbR2;x1j%>4`o(Ux`w@q|1$N|uZ+*76G=0sQwUUP$uKVNbUVZrPdrp~i;L`KIbqPUT zchm2tOq)7)(Gu=?jX2tEx4G|r*GESleSFpOWnFUWF1t=C@ct>i`~K?cKYruvvwFPl zZc(1T>$H;BBl)h!AG;Qf>U|q-Jms`EboWf1cfdgxpMO4a?}iPx9y0r2F2aEOd(YbQ z-S7MNtwYu_bajVL^o=%x+hW0oRki9+k|dn-?w&s3hX!051rTGx^O%&GooTGrCRIu` z=N(}fx)x3oO+Kx1+@s7|>-?=C@CpV0#c3+TtThc%4G?3@6TBD(MHeEsgd{a&1rQVp zUD6MwBrxsyK7lJ^9a0@9%IycPDSDbjMyIZcVBmXck^oW@mp&(kdLv5GB#jMOQ3$$? zLKH`Fl5&Y+(JK|ZvT>U*^J^`Nfh1+)s1~O+!9}6a6_&bO5XTP!FmTS1Dx{IB4*uwW zE}k@L`YT`cS`>@l{nmF%yno%gH$Cy#rul~)T9RUV|76ee%KejXxbE6J|8$EVmOSBg z6}(r!^0+_VaQ&3Y)2l;6i{{VnD-;XT3uSTt{byf(#cu%=dJ4QKLA(+tNvc3LEXu#! zdc&(uII-M2W&iySKJT1wb#)cKd*S&~O!@NHf1p+4{s-<{z2@k(>;B=q^Uj;v-#;lR z_xN6S&{y{QPdxE8k3II_jF~eF!PJr`X3w7U&Ub(EiNW-WAAWzA$-AEQ&GRNrE^poV z@IKS0p7Ms%zw-6-ru3FeJd|NMlzn~E4mjb2lSV3478E?+SE&Zz7ej*h+F57qzT2$6 z;v~ksN&PcJ(Rbq7*C47cntO;BlzX}-aUK?nlfU@IF9Nv!cfVh=YIRRf&y2kfdfOTA z8?KrQzje;;{kwFFKFR!EufNBexpv(@42;wm0~uItnh`6*88IRPxo1fD0k zoA;NGd}`uhp+s7zjd~KtT!><^TyhRlE)loMI$_xk4nR-DtCZwsBQYvMdU7D?fI)o6GTn`S(04~8H0F|mViQ;mhM|x!tR2mB(fGU+dgN$(6 z8gNTtF{_ACiPhR#m@t&e#GDHvSc67lN+oGwd|!erY#Jr0drqUQ=Xut)Nl%hQ5f{G4 zK@6~kK%_b?N;z%va;TNaR=vsZ`sy+7H?TTMMFu8yF32!=a z=5D)e+4w+GugyDbd8ttN`A@IB_2wJC`|}(2+-IM4Yfrju*38R(ef|D(7aX;G>8x3^ zMu#LFU<`BG8(w$Kt#|+Iy1yJSXTicbuh?bUbRUBOaL;`Y-go~)hxAuTD;|bD{ZqBJ zuh{Fr)82IQ<-hy=559f=)Lo|>b3j<|Fn!vt%EI^9U+;Ucd#{CSjyj%iyZ51uo6fyr z!|rpJzUt_C`_I}XEXt9QM$lVifDA%V1JGnsz&`fqBbDL$|6cktC|xWC16wwI?o%JX z;#aq>Ty^AKcWwUgzkOi-;&X><^~y-~&wu{&hP(beW4FCMzg#X(Du%^Z9ed1fd)#{2 zZ`L2UaK-FJM@*hPx$ocuKk%+MjZ_<7yy%L37pz*nc*U~0dq=}tKK!8%{qEW)7A;)% z@XbH}%*Q^s$KpfbmA5`Iv}n%4b+0+%g6~~);SYXr#4&4+TD`F3+A|P50g!>QAYCpM z!3BXgl2n7i>QYGBq?{LtU@hV}DV04U<9j~9tU(+bV@y~O+N7QgJg+dJ*=DtRrQTrwbHg+c%rf{vBdN)U9h zFp=h$93Q<23jz=X7Au=*A|l^2p(g~uq=Y5Fc+%VY_(rAF?|$>!jrVW-%~gNkg>YzS zASm~qe9G${yz{}!e*W8O2hCZyaQ+^%W=b$i_K-zO_L>x4fBheCdgJMrU3S^*-KV|w z}?sHe{ec-{X4xQf9 zRkX^^oH^;e?|Aq3F8|H{UiRZ4Wbar#Ln|ml7Km!YWK>Y@J#^lJH@)sPI!(^{(bc;h zx?t6c<$LTlt=!Y)a#7u1?d(*3**fMOz~Y~z#t z{k^BW@r;1{+Q{(iIfo7p55DD1Z`rtc%lkh5v0Lwc@P?ai-LiRL?(ErbJoQx@pWOVb z>+kG8;IKK1SIjwZT3=5Y1Zy3SOcpBQ+yj{O1Y`!wsMJc&DwPC5(Q)UzOyrZfiVh;b zP;m5ysY;c$L{umhUIZ(Fp6;;Ly4Xh)MYUS3TCENZ4Q<=DZOfJ|n>KBF*AER14G#|w4Gp;u+rPIN_n);oNuo53^Cyil*3j@!J&ugg zL^ivH1H_t_DI#SlF*Z)Ms>GBK4OB-oHHd0NF&UzS$X!mcrD{sGp?bBhC`ySmkuhWj ziH3+$vP8yxQEI7SNok@=m7SPsJ`kC7U<>AF9_pYrB^`RoXhG3KVr&e=T#Wd9lO`!J2%H~*l*+y3)i>o-3!wRhHu zOOBB=PyL{3x=t>CRhb?>=eWY447S$UJ)M?|%p}eEWfq^Pr{ll}TN}T@BZ~pb4@18Vi z!Moo2VM;fB?|YwzEPdz;7Y$j8+*B(|Mv-o`|BQPTW|>=`YQRb*4Lsr%L)cBEv7DH*VF zN}5QMwWP@;)JQ2Bs0>CC8TVL*h^i(TNVQVUN7e3wA*ECt$3&(!Jd~|F_wd?S<1RLq zYKAJ++MrHI$Juyl6A{%cH8d%0-Rs8_XMW?9C?!&g^dQlQCFSI>PHs)9IIWXal*Xio z$UboX*Z&i&uyFZ_-@EYQJ!j6^`@n?@mmOP6Q=-~KH~nUkhj;wvX9kGKR3F@MU2)28 z>)!f*iE3Z{(x<@7ANurvlU1aL9=h?$sRj1F4}bB#VHzeRakWm;KNGlz|Vv>y1DC+2tr5^x>~uLV94!#@mAanJ1n89z}-q)(5Y>Y?{Q| zKJdi>A|mzVV|VPc$CTHfd_1Mq+itxBr2~&R`HV}?{bV2T)r)@gL_{O^|7rG&uH|b_ zA0{HT^^V{CQ1s1s`^V1SLNsJZ5e*Lyr%6QCkT#WVgOx@^RHO9Xzh3kGsZ(eDk#!?rYZq(~FhQ*+f-zuRllq>p^y{Rz=9(ft*Qh$yX6^4PuCUD8v+ zY485@R-yr-q1aeUI&r&Ftj&P2+lZ<}DH$3WOproWB6pLq~O(tTF3u7#bBG2<&s!^?0bGb;2p{J)91e|lk zv8mS*2hT_;<2cqPbyx!frD-gM415q!D0+Y*s5GtT%gK~#7(^VVSPX@L;LSQ4u9IjG zWTBx`fRL!VMG~o)04~5KEYL`5V3b64<_Un(Mm?&!=geZ9gCkV}I0xgfKrKqcQc2ZE z8gU)gsyON@7Z)vB@cr*!Tr7tD{ZqTT`;-AV7oMy|X+27%2NN|^QsqP2fv!@KEPNjXR9*g8DMX>@`2uQq(d+}y`u0VehqWIDr0Y*Sa&M|J zXYrb9jJ;+|p5B8$t-rOFn2}m^{3}oR)vtfOdFzv&U+n3b3~&%h!Am8?acm4UpiP3L zzSkbJR4q+X_#PnGnu1d;83vRgohmnO6Kj5< z0T>7tM^)FUC^1QG7AsB}&4+jH-IKKbb{PMtnu`m{bFq2UpQjoMaD zNXgRxtZq~X8@0xiU3SrNbnH<_PM*2v?Hle^QG~eOs0}7D)#`Cy4|JQb#kj<1vOtU&b7#KoZSQ>l`~S7kXzaP?o|F6g zzI5i7-u8daSbx|3JzYq&%fdAbwq8fE+~rb$3qc15i7|#V4xrJff}y*|_X9AFBsPtD z9k9Oih2SqE`4lk5QGE$lo1(2zie4-uVImqX_uqg2+O=yJFJ8Q0!Gen~zPMa21Gww1 zyH>A0X7-^=mMmU%_Sxr!p(vGt+itsk*|KGG=FBTMRg;>4(@FYpD{nLh?{?fpfM|+Ag2nv_~ z`j>ru{p;4P>z_6K4X2*G@rft545L^qG9Zp>LUO^wBn1M1C8#u_h@`{#Rq7V7CxfgE zo9k`co}At_dF}Bh{qg2&4_!Kczx@sn2DO194wR;Ldu8;Odbl)?z(I3+O^A;9ld<{>aTp|o2g0)VQ~M0_pM!f(&EL-7c5wD@x>RH%f+UA z9yxL3GYks%-hKBer<}52?%XAd7oT<3H>@Qo;JtXk;f)X8v-adyFI#-X;`v8k{JkHS zOAN4g-MwM;u}93FcgT{(M}G4gmv{k!QgGL8x2#%m*qnKXt~u)H3oiV=0a8U9Zol*R z9uD|7&qmEp;WbxsP7Juc--vi)FdCz@!9(CO61&ih#e)yVm z&iRqM@{T(I;X);W$4frq)YMbd8zb7p{gbC&ea#>Hic?muT8Sum z^IP5)NUt6tO|%Be#X{gg`hfrdQyF{`LD6KXsYp{Y09mW!D6WjSsf=q42s^pItE;Q4 z)`&b0lP8Bzv0xb3vh7Qs`0T|OU3mTl=RN$$gEMB#_|7@sI_bn$Uv$B_tLM#q^V|Q^ z7(giye4qP1EU{{WRE@2x%V;IGY}vAA^^tRCFIl?e$Zwu~VGxR9skC9kZOc|Hn=^0T z%SS%X`R1k0TKLNycbt0asfR6Hx_I&83opDdRhFKLx#Q)O<1#onc-2+c6pLY_5kK_M zL#~)JP19R$xusgGd(vCIX1P-EJX9)`4I4H@Q3Ti(E0-}aDg8J~*WbFKQqjaVtz5p; z;~pWghW+X0^+>xDjTNhp0FWd}9I0!sU9S^BZCtZ_HS++5T21}_s@vl_wDq=a+sYUK z7DdUgfBAb*$XNf1RZ9ZFEigDZ{QGNeEEYs9GDkl25CD~?X{v9z<>n|#!1$`wYsv*- zfm9*z9Emfp#;QB?yL(EEW8u=nk3QkJwXa-t#gDJ%%6L9FgwK7iARpU!zvsJF&7Nh5 z>XkTA%nLVdsqMp!1mK6glcs@-s9p!axNJ3MEOuV{(B$vn%5pZX}8I9maUpM=in55>@%HT^Wh?-eb>KzvfjZz3!D?JNv6Wg;H0~ zWXACLV~+qBsU=a0gQiZaRjR6%?z`81OJ>iz^r8zG8eM%M1VIM%*n|Q|62Hy8#EoQ1 z#f)so;dvpGrHDZ3wt%BBb&pL0Skym#XzS)E+O~ZD{5|(n7hm>=p(h8X_5pxPDYIH} z4oDBM(7N7;ufF=~dTIgrs#l&Q35@Y5O0K-}N{}aozhdQ5-wO=Ig9DYTuKHs!>}f>l zLl3V8kZPT#`j%U6saE3&BA*0Xtw+~fb4@)`;8?Zh7*Dc9k(7+H=Sm6lw;kICE5Ezy zj-uaFPuP(U-w%e=q$;+z-h6wb0?D=$h#VcO+t<2Uad$CIBW`9LMX| zudh`{IOoe(9Kk&gWVOZ3x7=#2ZKODS<)aLU(=?6JYyWVYN%_;c9)PGHr4{8H$or0==a!5CaoN z1c^Z@@J)h3;7DU6$Qorm;V9(nq-iq&B#nwr@Z{EQ2I!x%ixfW6N_RnM%VWirN^BaH zgAk|>)vJcVBirMn%P$XBHxCV~gAbU0@=1%!(`T%B?T2>X6}Me>O(8@vkRH&`cDR9q z3uOVI-YE7@g@M$mYcLW9i~)>GSqNq51J)7`%adWYZ5Z|_{ z#i=o7+qSKYu@{A)`^7a}#>aaWEm}gI)SA8@E?l^L?h zL-icls0GRk=d7yNRYp4vfFTHa7R+9mR?}>+&(8DtOO6??#DJG$bqf~FU1_!H=rnL5w-{BYsIg;^zi^P~Vg*K|V4B-Wx(OaW~g)q1?gfph-%hrj5lJ@m6nf0kMs zYcTH7h*Be)cbyhm18aCq7g!*4GTal2EBvo`IE-UVp3*mcm;V3w#7DqT zv6@5gKl30j#m2wh;K{Z34pi&p_jZx60H0L1J)Rlv#efgXnxid&a=-xz*#oeIbtNSC zJ#e3&{OFqlmCB{x`VDs&@ z9e%zKZ{C8{%BCQ%HEy9OEuOo)Hkbl}QM+-(;meO79!c{(!v(`(ix-Rx4|c|$_?(4{ zha;8Q=m0Sk{nCQj%j0^QF|RhqbLrycwUN|S#y5L@@rg6PO$Hl2Z|UkvCAIKOjtyI- zjnMZH2*fFjMzLR+ViIB3U8n!_=igU}zVy;dJtj)5!C-9I`}j7T7^*%1+*f{gmlw!1 zVWM=&<-e#7KDqkvC2_37VxeOF1hDaNpASY*Nh-r2iQ{sCYXvD_8tK%1593`}f5R{T z`8}uo@%~2#>X@0dHF0P>RqriUh-SDvDk( zv#WQn|M<*j0A&bC!|Xb9_u&{1|K)ZcZ@h0fiadWxQ1DWqZ~DX4zp&KyDHQ+$3h>Bg zjjnalkYP`vz&tKlkJq#7|7Y*JnL*)|AQL`_gCc``z6y zzx1Mn;OJSG87>&e1G@D9LmPPW}{hhn)fRO^TUAiM3hSGg3mHr(Fe z$7fSTY`@daPE*M{mCRLf9>nvf9b_n+>HOgy?32*N_x@>$Isq$ z60rqTh6W5*hJ5R*-&nYCVWlwe@V&qPwyb^p;~y{7B%GkLCpT$g@6;(Xo_gl#3FD{c za-9nozdmQi3>8Th@W9~=n!%Z}(S+-+y8O9+KKazs&(~6XXy3V%pc;`#avhffp0Jh@ zmlWFeY$I?1zjxfm;7+kza0k+!o?Lgp7Y?LTXKy-di%ssk>yD3p_{hIK{y?TPv;F(F zXKs!&7n)2NKYq9Ew!HVD=fIO?#es`|`2Ck2do<&De}D9mQ$P3BBToF-4%==9m4r%B zX5wlI5q+zE1kZZ-fMDyCa+(>iLkN{l)}{=>&7d58VQjWZ{$CC}-|dZ0s9 zS=UMd(N!;xtiv-J-t_xF=lSZ!7NT``w*I7W1dN7~U;r1;tXN6MkDcIhrU64FrH&x1 z)W7tCD=&Wjxo0WI;}1XZzn?qhqaWKh-_r}3-g*1&`@Z_rLl6CV*7VJGe*gBK?|$v; zr$7I~)0GGhJ#gP?pHIGc@`4W&ML*9zF+40f!Rq6Osus-PKwR zs+0-30+;1F$IhJ7d&|wgdgAdX7cF_Il9Kn#p6PQah)nMUmk<(_jjAcCIE2=={J-L! z2Y_)@L*)HzIn3@x~i>-*axcSR&9$Mq?*V+;6`RDXG&q7L?t4 z@4ffk_va`{{`A;GH{5VTe}6wf!)nzH{HRzQGp2_N=oFN(3of{DpMCbe^RByldb%#S z;DWik&3*Ni`Ei_b&cU4zedvJ6lPCZAp+C)kbp-)D7rw{CD2$S5Xv&hILIiDT%R8K- z&@v1OSUm)kJ1`VVPn|k-@#5D@Z`Zjddq3krhNCi-<>mO&hyVbGuYpE>d9aH;^#kK zEmbJ@13#bd$Sz;L)E0y-6bdU=F6!#aWrA!bR}Z(JwDI(F&i;Y#`w#!=Pg1H=PC4a> zBM$*Vn52b5$@M4~wzaea0;wRSVN^gPj$=yT`+#9u^Qlv(hLy5lNRwpgl0L1-vL&zo z{PK&g`03BCyY9wkpZ&+g$&(KL@P2>$`=jTab0Op2ncqBfuMg~5tHN_gSNGWN?%tJs zO9Ky-v0Ay>9&+!d*NmNDP#z`&El(}vN zk`fUZ4uh%&=g={HVfEbbq!F!+*7bOFtwCuTMfM2>9k~QlLq{vioxNQl0RgxKr_iyX z9+3n|8U`9*G>*$|CR2+fXMx}h1h9?MjO~{Yb zK}U>ioWcW`GK?3&l&Wf$=~09h!WcqlxG!J}Y*qkbXr`}dJdX$lZHz03RMKITv^G>T z!~4#+5lma&Cb6w0wI%uLH9{IT0Rc=J5zb&Fk_em@`%2ky8%Y8UBS4rzSdl>%KvefZ zXg7&cC!?j3ama(LYsa}vsMc^?#A(%aIKW_dnm{;qw8z?LmHL81%a{rZDZxc)aImAh zOQwnox9K1#Rze|!<8ou5r1XW+NjXs!!UC7|8iHE7(sMhga;sHjJHjX&@SI6704*U+ z;PwDaL9@OVt5G)NSg%L5icB^Ih)lWGa9mlc6f=I0Ekr_X!y~X_LLClYR$ydGb40Le zP38j*U6o;ycwLNvB$49~fQGR$uE&6=Z&|)4pDMquu_Q>`pDIE-x($FN_8c}k(bAT6 zS=@}VW$ta+n8Cq8#+dz3YyIMjFH%Z5=Z@nDAvouZvF4k4y;e#orS`v+uKg*rpVQlk z5=lOvaR>mdLJ2p+p#(IjlUAav<8c7O1>v0A8jj$c0+1RM)OP~ry3ooYf`b~ZOQo{Q zL4ay4YBaGk!#eL$N*Gf~(rk?+rF48h$mOCq(kd08ojqMq7~4>|{=NYKq)|PZa}FUu zA$-q(`d&r|Rw{?JS^|(#xzyM(8I{a521e>^K7fMo0vRR33kY+AOs7l~a|j4H=b4Vq z?lI$(QXoi^dbhbKjvNXC^mO)cFR(HGnH&hvo$um7hfcN9a0D0!a|jp(2n({+Qb`+R zeV2jNqA<3tIZ^{<(%5w638xSooDmA7af}hfY%A%~MlEf5M=YFXYs0$rVYztG=$A}E zd4BA8sZfgy1+-QGT$ckh4%4U-*;1x9)QwV_$+}?}Tegx5I1T`~jvq#`(khCS5U5mQ z8xKJVx0ODra2rjrXh(MsKsk5QG!4Trl_`LH))$mefDw3t!!Rl`p5Ns<8OxNoPR7nD zKLEfzzY_$i7O6@CCu58W0uP``niwFH1;8q`n$ln#0PV+q1PG!?3I-{q%`*!!8Gxoz$~dvLcLob9 zwUHh9oPC5{U0xVUU^MJP2y+}zYMX)CoNWM}>$yxAZ2;r>E)2B9xN+S&1>tqKi69IF z)l!*K0l>f%i{*|EKL{KE9l1`&1!YZkV&qCsAP93|EP|2NR)aEtkZA+v*lF6*91n{|&^?cX09pVhQ zAOukekAng_O#x79dqub4Ez=&UZF#4Gi>bG*t2g~p#sGvdqbZbv6WGp+oI`Lh5ZjD~ z36uvbuAld^d1wYecsz+ytu>%i8Ta(`*dv6I27#2)bv;If=P?juvu-YzQ`*?cPY6<( zf>6S}diz)@LBJUEeV*@G#hldE(q08ETdRb0@tOCB1t5pLTgQdN~H|yfVxVlp6}s zbp#}X1a&2KDU3r&}Pto@|U<;5j z5IW*jt=7Oe2u+eSjuQ|nQ$;}2H~}F>qf#h)9OZIIow}}!lQfJ%5OB{%gHoe(XFf-O zS~Vn~1X#Lw1u-C?_P@4&@eox(I0yv=5lEE*?C>RVAUO)k&ARO5G_0-QnYGbsZNE2NP6WcReDPx!b zm=FXyv0b%2R}diZeA-wbOtU-_X``36yklI;stTG?0$WRxQfU|nQ_9H1c2`YP6??9y zG*+xA<~loIC=>@{FsPNQj_amr8pYLoEdM52m=ZN zE?j`t`^73{%c&c!1*eR{a|9)THcU7G6>c7e3zvY{DNFo-QU-v6aO*J#5i*jl>ry}_ zngJAP;PNz5GSO*T;Y0CmR?QnarN}0*{ zNg@F{ane`=Gg|1oRm4;#DoykVCWbP{D5?~KEH_30;M`TpP@uazXF#Na!yRr*SAsI; zNLj~3X>14x3`vuepx(Y6(6v$xU{R71N|Qu-4$b+FP1N8HA;LwfWva4)BbAQh2tc!) z#i$d(wEaYFd8cuV&2?i8Qo{B;W=sH7Y05oU>Ld`{VWL3cu}1qc0)kA|MZFC&^}HaJ%JX@(7N%*+s4$uUkW$;aCbp8UF-8bMDHTE}r8wut z7}s@`OpMkbnzBYg6%80@Bb7?4wGf~{8pRc@0Z>rbexKa)(liCM<4~;;B^5w1rH#zY*(aVY@C z2!$drTBe2o1P-MHiPoqWz-!C9g#~B_=f0f=6)^yj05!HW0jdCu$!G$G5P*RXV>`dM zKBb{Negg~(CWWn-)YKX4bwYFqZ8XbPlM&~vHFP60b5%F69=_`9VH>P3aY33D7&V0= z^}V$gR%xlGK$>r5{ZorI2wgR>ar84G!)~J)<#gK8mbcHYsR!rQr!yTDLlZNk4OBf6 zpAQZ45lW*z!gV9p*T$dfRgk(K)s9`;jL;*MN%I8gP>?>L4N?FE?$91>*FI{EEql-^ zKw+%mWD|TcFgEaC0&b(UNn=axo4SE!!_5pLvz+(l?~R<{1_r$ zR)sk08u`99bGmN5>D9of5h_g^(z=0Ob;CBp`tB0mz6Eb1yM?9|&?s9-hu+&ow~0{x zOYX+M=#43 zOw;PMk$@adBkSRJsTo~k4{llyVbDrzx2Whk+-W^qsT-!>TChuVho%i>+VT!)1~a0P z&=5db_3sD;F6%GSq+4W*onQ;it!iwvexg?aMtU8*I&>K381ie=dUZ-@Ks2a*tyili zSj&%Tiz|SRq=Gbup+h*!Pz!?UD#lP~KFo?T6q=ghxMv9HXgZR7ZA%-tv}LsQkv5Tm z2G@-#YCv^sL|z@W*v?hDvHfWDz`wW3wy1zrc4OA%*K4IQ%*cAaLtm@ml!+dWKbm)` ziPP#v9JZ@wc%{Ti#a9Fk&|A)uR?&4{#kS^xT*o!>0A9 z5U1rUGg1c(ciLiIX2B5PCyl^0vId3~4Fsdj$d!nyuyS|JXBp~D#(GTauT ztD%Nk4o$Rfn=0=rX~(#{-O@UfM$#uE9nUQ*awCeRzS*iv@f&i}nxSA3-HaWft0oti z*8S_%q$KFoyNdK`=;+aYVpbQQ*x0^R84YDrjXbT!eoT{@GQh|d>}L4>&G0K)YnWtP z+VbY1mf#YS{Bt%b&TAE{FGx+yAyk%8@WjYf@b$zU43m1zyTfvG1X z(AAjGbX4oQK7|b(rk8X*IHum^&(J0}+Y;kqjX+wj)YRC%0sh*fuMJ$hYv?R6!bfjpPkN7BqrY+3;V}RXP%rk!QGyimC64j@l4)IMds@BR0HYI+}V$ z+azaWTCY?=up!qL)kFKM7y6}U_yI`s2C_GpAkl(~*4<(z^`K^rhLSa;@!r%iCm9xp z*p@XfpKFDWdNm8)8#vG!cB0=l6iY|>K(FR+YfK3r{!_l16J|pl1;~i~x2hyQyz#&r zQEaPn8?=!MjWrJcdeS!;jcFnE{ftnMbXbI-rmYH~{&PKKijZci!%!^=GTOawPt!JV z`7bk}j7ihfahy1gUDs{SRN4XsXv^%TBWHSj8n%?wr(!r-7}{dpvWmhm^nD*d{ggqkGd)YG1}iD2p|AakDsgm${RZWVMsxYn4y3eG9gBG9HVQ+CZnGx z!HD&9_BI5;?xWg#s#1Zl05KSDt?YN#}~ zp)Cqw9eM%UQk6<6-}j>^ilV3vq+0B+=6=YiXE^MOR%V3{52G74oCXI6rId`ijCza- z00RRB##m!lyd`RHXh7;#?a(*}I^<_EfE-S%v@}Nq06324d7jof3~fJ1&MB)_Dr;Xl z$nYJmFH~K1IW@yqMT2!==^0}K0|WMr6)9zN{QQ>z7c+dRSRGCBM(O@x&Ox)b4c>D8 zb+p+`*Z3DLnK*oS$(F|4B&!;$e3e7+QF46V$m&2>sT?!%J!zJ*G;4aO%|~KJx_et6 zjc#BUO`7$v>ZwF)(PLy){b}lnjm^ichl5tr91o@)1J`C;HaH1_AW0I(aRAsNfUfJh zuB+c*KMehEZpk^9QgY7inb;4bC~9yLZiqwboj@uIu~0EyO&U*4D&mLnJ8I zuwi@}(3)rfnow;mFl_)R0!^R|M$Onvl7w^4Ik)susZ{Fd=*Tv@ORmR#U!Uh?2sF{e zP-^O)^cLV^nw*T*&{R{ciLIwTs+W)u-}fn{aU9!%lALpUGuzUZ{}N+bx1h3Nkqgpfj^kk99hG3!#v_^l&>IyyRv#bUGl!ds16EM!qiIgY~^ zD-;SAxHQW`kGA+zLTH_{W)#K&Wwv1vYtY$X6oyb*=fufqMq%^PDwRq$n+<~CjiI#l zdS1=oU)yJjf)i*U2Ch=Y9^CuvQS#>V%upRuZ45vdX#_1d(3JtSG1L$cQ_p)as~JCxu_Q@?AOK)*;D76CrQ7c8 z4OYnLADGqfEXuRf{r&yDy}ba05Y4FAcSI~q zS-g1h`0?W@rG${T0kt#)Ryk#S5mBY4KmNszNP{jt6^!D}^3I$8`+wj=+k8xSG z8_4PsC`RiW(z1{zNiu2DBzq2V9DAPEjKX>AB%96l_xJbo^ti4or8LIa&Yz>+2Leru zF+>wW4WJDr(8g#(K((#KKuJAZglGb@`WTl=rPB0^HQg&s0&LwyYq<{A7ajg+>V-56 zp$4Ev1F(H)jRA-@n!?yB9onp>wVS;~7IImLX>a3y>&ivnz|z*14SRbJqZSL2EazlB zW%jrh!;Pw~>@_IRAtu&X#zK#{7sfV|Gpp@kYmCX~^ERF)Ns>2qy*3kS-Jj8r!X?e* zY7GJyn<$>z;_C#krG(euh-%&|d+PuwrQX39sdt)6c~drP%exZ6n4y`~e$Z`c4~4f( zlu~gV3n47ckR*u>aIybQ)71X8S<_a+Ftn*R&F#Z5G)6UEMr)lUQIbST$Ht^e$F*9e z`SUbUN~tJ{q?Af2`(ctKVHnmoNK?mgtohD4S4zD-_knY6&qPX@rfD3R+G$z$LjdfZKlhmj9Z927Wu#7}PPI`s=efQIt+m#zz{sxjj^nJ} zKefiWL7{YPjEbUKtyVEc+4HYftHzipN|ZA72c(tJM(Z?;@LC+W$7g%j|yaS51*pYDhe) zAe5cXc37?o*(<~I^VhH+s}SrqQp!>HwjoIr)c{Qh;hb_#DP^832w{XU$^{|J_cM;; z*-sb~q%Lfg7vY>cjzb8suIlC(Yd%D!)Vk2&_J_@ZH|hv%OB=Yn%ULYWEkv+W!p6AR zh|8wlbhVvI3S6bT{ThSZ@oh=p!a%I2cm)DAZ4#qtUO`uh3+Kp8g((prT8i3W2?q96oI z;<#Sv-$4* zq*|@o2Un}rn#58zo8_FRsUn2d$;X;v*S%`-OBkn zj$nyQ)~HwtCistNus+tvmh{9Yh#u!U)Hn+<2Y8M zOKMG~N~L100z1Ym@ocq(onoBxa=E+)!@zE4f7KjdwOXyc(zSuh1|{Wk*^cj~QnRTv zR@YcHRIAmj_OzvSlO(Z~PJ|FPwlqzZ<50#B$7vKrb=_xloJ5}MR;m?BsV$2l1TzLo zp-?C_%`!Xrt+IQE`CdXOrFP~wk&5SetwwflZ?BXRi~&YCEKMRx5z4wB$Z_4YTmn%r zrcwj+BV`vS&*LMKUB zivYNu0A!`643N!wM(b?OH-M6oiuy9Fl=3{!^Sn~2)Le?1B=y-e+H+)K7&hmoUH+3q z=5js&o4OSzv0b`sXb}J@Q7V|$nT!xDiX;Hn5q6nRWlRZi9oN8Q zGnq=YWVwpMV1*DchR)88reWGt!A-324gwdgb+uZxO20{xHoW^RAd9lBrWtA!fP=Agw?RQ{5Nalyt&y@gc`vGql{6;7;A=`WV6{MNeCfA zu$Nz+zhub@d!0}zb+{j70Sd?@sbw-O)gX|Rs!9b57nhl!VYwjFlyS}&Td`tAk|fRS zCp26_HicU$Wi_l#u-{PU3uA0>aIoptA%p}$pp>fBB1Q=egkYIW#)4Gq_{-&TcFAXq zS+vR-Z{9s?g`*Lc9z~Jw`-G4*O>?=NU49&g11Obhgb)McI<6y}RHlRw#z>NA0Nvdk z)@rv+DuN)ev&jOHCcV14>#_hvYi;W|TZgId`}Ubut5whQEShQBIipG#hRyL{s}XJ> z4}LYMMW!i?A_Rp(U#yZSD%avTiYnz&HHjliz!{BW<@+vUBuV5dNU!c;w{T`~aF7rZ zMUiDOtr?KXWb9MO<#Nrufnn#>a&F~P34}PV3uw+oCgTIB)uQ%F*9I;dn%Hu&*2NG6 zfhGU#f)_sm@_=Z`h7h2Tm-DOi?UZ~>qeR;tyq)tJR%aqir?ha7SU zfH>9`1lSX>0W_TRe=j=t-x7Oht3EQB4Cmag&CRr4i{$e8ye%^$rM&Foi#vH%P&d~# z^|hrj0N)c}491if&fjeI%ujssFdI;w$@opYVxwp5O7k1n= z7Ua&73voh$D{% zwBO-#Apn%i)vdSQdbiznLrWw_lWDLtm0iL&`1#V+)n(}fyTDkdjO%y+%H>c>O)0f2 zw>6Q`h+JWec&=M4)+j|7#@5KTKGWu%v<$z!!=*V|O_DYR*T-SAl0iwtNAdD3&VVWAp;UENr5MoBW09~zCZOQ3o zMNo^3E$`K|B(0kstA_d;4Wo0pEVPQFNJ?o(MKwx;z-upaZQ!y&iFI9D3olJmt7@&Q zh%sivS*q14rPNX>l}bejVcifyh@+1_diwO~FTeaMW3Vr!jFk0=!oUx*nQWn0@LZ2` zJ}@vKr7RX}u1l3Nw!~bLBtnR{EqiEnVjCSaVO*0uxACn2y1ToNKmPdfr#>%t z=X%*pmJ(X6Rg)xPj5to+4Yy>;66=+t6hSVBG!F8ezApf9L81ux?lDrsa~#*>o}bNi z^z`?w1dL2mi?IkHaoj$o-&SC}0QkO3DYZaBN;xnvV8g?O5H|M9_kFFk<2Y%WYF+oX zlu9KVI3lVl`FLYl=3ne?z%cjU`#VyI*!3P za#_C-R|{=pppDc<>UyxeHpW<?Y_P~`$^MYw6X4X{j;mPrD2**fnu>(ttK`C&$@8|7?>nY zk~HbecSo3Wf+FjrcJXzq@$xFlgZc!VnRss^VNytIOE5US4w3vnWk&(?WrO84)N8x zw|5Ms0AtW<>FWy)Jn+D-uAbSmw)pLD@Ad=YxCle76qq9vKq)Aplu}CSFZ;(jhSD_c z?(Vi(oHoSXW(?S9!Z@z8bV-`5L7_vb%P+fZ?AWn{upM{YabRFT>voI9HgMUn#25nu zl}bjama1GV?XlbLo6VfD-v@S?y~)%QPCjF0DH1|H^1vMj9&kvI$#1>Y=9gW5G4uV~ ze*Zv*vnwyVtiM>^k?^7hZbkPY()0uDg6>hH^zmP;q;P|P zP)$&GQ4>>dFl-3a`d_c-u_&ruanU8)Zoc_u(>Ff!-~$dg+i*dr+= zogH0!?0$fobrY3>>YILX)x?daPo1&ZP1jvFv6~UW6X2+$KGoATeq8sIefK`H7D<35 zN%+Ojf5s(b(%7E&@3cEO7lI8A^lkZ`ZRTvc`M$gFFs3s&^0+Vb)j%Dm7RE}cOpw{I zbdCa)tuN>MK4k`o7cE|J>n*>ZI%W1uf2`IiSjcIaV@d9$ZZyy${+S5~!g z-9P>D-f_LT|2gvLeGmFXN4|HTz4ngE{Xf3&2Qy}E8f5b`CQtavm%hBLq;9_B-l-G1 zF8k3%gM+2nTWm*I=DHhx36nnk*M|=}_)w9_Z@$$w=be8+u~czAFO$t`Lku9*n$n?j zxty&h9}NKKbgaufF=~tMli--gwQQKmS$xdTqh0Pd@#WaGfMo zT7xmBhqc7k!>SpXp=oYU0Yh&Zo7o=7MgrPC13&}P*oufFcRTbljc3;SiCLus`g#~P ztwr8UgKmL_VF1?}Knz+t?Mo*<^5?(pzU#h(u;Y$9ZvOn`0DPY+WjMod!izR`41m}& zn}Q4Lc?^QUaU9E#HJxtOo3Axo;SgxnybKb}oc~%a zmXZ(y4WuJ4yslbh>n*bPt&Mcrz~w&!pbURCKP4cr(OyPV%HnE`YBR8O(Fb?ldf&Ob z&b#c|zdZK}%8S2s>QN6o_~*}l;Y(T9eC3SOZn^)(>09n{{k-$`-EjuV)&YdG>X`yT1lH>dkX7i)wU?cL);GW2 zHEyF*zi~G2n6zkFVfv&=zx>%H2hQDr>g1bepZnvhZ`f?B_qo{&ip#rP&2pWEDl!}< ztySaX)HBYw_?%;N4y5Zx1fXyUaa4ZcON&3S)8<=kJ?-XS-*ewz=f{9XOq&|p5J*5m zLrZA0p4S^k$`iti(#re=M|^niKi+$PIjL>3_4|JE%io6-hkfdxD=s^0V%OxTDnbIy z#o`4ooc`sLWA5#~_knl(^7nC{@^fwqeCCAXF1z%+oa-_pB=JMZ99Nup%;8s__w@-m z&+C|2Hb`Zh4cx&(xahToAKH1&K09sstJ@yFMpx(cgtN5-1pF5qGd0fa_mQ+diTj z;@{o<;3n_c{d?cLXznh%k$B)APyK1`zI$CZ@3P&u-E7{EFS+p#&raKB@0)&h?w(s_ zn8=@b?v+2j?#B1LcXN~%o^aSf&%f}>|9<`Kt+(6x^sjv5o(CUJfnqfVBN{N2jGBr9 z=%yoyF=jDJ6h*BJO*75AerFVi;EA~vP#R8z}Cl-d#3MK|p34{tT8gW@7PJtAN6Ch1tQa~%6LPbCt zM^z0(wsImgOe)h@0|`(`E!t4)sZTTz19823y0tOv`c4=O2$04DOPBxk;YaV?W48l; zdF@SK{mM6_itfJWPJ8u~69AmmZ?^$8pa$H48wh~IP)9fbECXYY!YCu41Vn4NuB()Z z%>eDmE_vQpG#YhP>(j*!H5*TO;RO83R{*==`zuT@mA=|xd zp!(oFx4-;c-)X0vcEOL%y7m`8*IM83+uJ8i79aVKSc5w22zlt^oWm^nM_eA?+> z{`4n57Daga`Bzdq$s4CNWK_NN3!wy{Bm_|DzwWA^&X~IKy$}5H8)u$$`yId7ai{lB zn>FjuPaQsa{1{iT{SP|$$WMK2{KUzK6J&i3rIG{`6woqtU2oGZw>I(#kR-cK`q&07*naRJgI8a2ywmdjQ_M?N&z~b$Fq_04hoqaPFpYd1mHqCM7V94X(d9}(s%kdyT-Wc;cg=tGUt=bZ@g3)= zV~_dg<9{Aly!?nGj`;MkpZ?xiXN?`(d*>hSA&wK)k;k5W;pxYnbod!xJJSu=ybI5{ z?2?NQKKS5MPdbSb^3dP^F>V6?zyW*hKX=EDe9z8%e(>g>U#3YCl@YUxP1BYr=EIh{`~n1 z7A$z;i6`oj>8YlMQbSt;R<$M?FfCOTz!(Uilrl!b$fQ()>q1jy3}FD2j4Gbb6u=pA z13yU;sa2+<14`A=f#aG=4KPL~VMRF%PzJ6?0RvqqNJrR?U;wDn8q~l@*Ym?9v0X!# zFI#4>C`qLOTtQ)gG+zHPAnQQLw0;Nxan%42u2|W>uuw!#_xOAN@LaiE4a4e+70Uo9 z4W$f#D1Ia59*hR1&>FYidh5)YGtW8aJW#B7?d4A2Kj6TlQi-2mdBx_lW=_m_GiJ>A z+P5w$Dj0xJ>Oy&pPMAEdltQXn991Sv+-R@8_n~Qe#l=4nLGSH%+=HZ2T(S5gAO8gP zf=Lr6{NyK>tt=oVZN{YyT>jHYPOrcR*- zezw!`gGyl_iU9*J(;)=&J)SCnvDX$ZPJs(A_~Dc>J#)64Td1Jezrv&dXt`Qjws>(G zRyhX*2SGIoUEyRsfHDn?8`Im$$G*)ETN!vAS)>w%5XQTDddBp)r7|c$DdJKYrBV>j6RFx(UCm&iIkTewIW{OIy|!r5f2Jq~^5 zrIoKg|Mv+Dc~eyhrcRq(1B!rj0GWLMYiIO!GJ-{;NW0S zS5Pj40iUkl#gb%|A=bZs@3=|hBd;=I=8-{vNyTc+R)Zxa+Pzkal;*H&xobir#D?&{7$t>MIRnjImOw6vk=TSIBpE z!Sk5W-D4(#;h)bxtK=uEwb&3oraS8}Ae$>xDoGs0VcBI_NHt;7G!2||;%7dv=kC*; zS}lsnw4FNybS3VYGCdbK&=Dg*oPde$?w*xlxNJo&o69qxe`OzA+rkpx2;xm0VgR7$~#tcDz-6v>Q{ z_KIq8;`q)p&pm@M8aH+Vw1i0=@L`NBF}61|0eu7fQl*;4)vy}Jgb6>_>G)2qT;+sn zmGpFgfD*zwITUu5s_PjiZH+j-jFjFop*O(#<@dQ_K$UJ|8m?73(=>YZk@gU>I zNyTA&_N@0znL6>sm!7HBqR)N))GKfLW45zv{N%|AaQc@|+V`V}vtlX8`noHZ3v&H~ zuWz&2`#@x&uMbHgggbG9(vSg3Vn+?fc!YZv&`k3p*M$WwK8$)G(&L25r-Xd{1+?5zHBx~ z<0#+ZDGf>x#i{R!HP9{1p5C@nwhh~l<9O`Yv4ewyHqthi%f)eAESB@RP8iY>uu^v+ zX$8R?Xxp@lz(~OjpenT_>*rt$0488G0~C--?Q_7(1Rya$BtQ&Il4@PacI0IO?m0Z~D#8@3`krHd~XlOlC&crr%bX_qDJ_xi#qYCNrk(`GMVE`sZ^C z=Fh+B=HEJAFmu!Cy}kY~Zn_mJ(&a+OU(i5jN5Fm7wE7A=^6^|iO$di(FBl$lJ>+uI927lsLvs3Y(Q zbeP1pF=ONK%?qb=Jx6;c>$;har7H&#P(p<^AcVzH*b%t@dUe^)e}2`kfBoAfOBXFz z@XEsv-hbO2w{HLbodoxnlM*@ zyvx1hrs+bI0Bd8-c^^0}8@JnQ=x-1GYf$^(T=4&~}Ha5AQ|8lG5=xXMg9X zmtVVV;o_b4n7jElQy;kR-n;(a?JvIY{NJnJ3{fdKirXL`Tah0NF~II*IwCl<4Gs|@0V(TqTsIUIAUPMicPoN{*rk& zIG$Ma;y*sT&pv_c?!No3*WdVS4YwLbb2gdkb3!>IJaAd|+;h)^Aai%z-s4?)XM9&K z=MZ}C56(|CF+jN-ISjdsTPc>`s6L^?brS^;*XjYcNt||fjhi^ZeeAD~R4W)99ITZ} zGiJ=Np0za9)@QV81My+~rAg~cHztvW(NHpt!d-XT@rlR(+Sj*o@sgF(X3pMX^O?nR z`Ey5qZeo7IM$@M5vDZEzq|i60Q)S|?Tqy+^&t=qx1NeR>jM7wTbazo^kj+)2cyORE zOfm0AKc3h*>AhQTKUgTQT(;b6qn0+~@}EJhtk#5AQW|3@V}T!lv4Mesv17*;izPUj z{((Z!lc&avnKJ#{3obtWEB|-V1?O(E`DR}}`NRW0xB~~^x+k4>`hzbPetyvpuj1*I zmtJ_xv7i3M4L5%5Q^%k6t#4)!zh|rW9{#xlQy-`xXnlnbYP`#UxG=Ujfn-=2P9n{D1VdEx}& z_~7X=#~kaE&uzNNw8@hv0t$Xdxe^m!^eungsBHrWYjaAxyF?Fj8xbvK%DJc%D%pJ3 zkA8f?q{(A`c)|IPJp9;p+wOk!QO9Pc&6s!1HDCD7IX}JP(xgDPdGGsYO_@2qyVDKG zio#-~G7KYdGH%>B+B@Z*KmP5w@BHArubu>!?6Sjd8&8@9z|Hk~9%O02gm8TfhUE`@ z;?t)*_Vo9zy7tcdAK7-+R)o3TIbN+sc~=~M)Cs?QWYI0Zx&G#P%O+fV$&8u%UVQny z6Ta}BpImZrtybA&)+QhS_{S+g8;UbYwI@a&T!VvyU0q!^(H(&2dA1CrEh3W1WNcAa zTUbvBq0$h58G@&@0bevUXkFNKJi{F#;*FVP0tsX$DIk_eIU*n+AObRpGCQ;)2#FwqP204#Qnug#)i@MC zt56FSO9m}LMJXmJp#@T!K|p56@x6EvaffrxK6_a8$3FMIcoUFml1V1HfA{x`8~5J0 zafZFu{?@nF`qshA>Uy)p6<1vG&VP8{qrc~_mC=hX|5XV_s@IwGwyiFMfdr4_o@qXa9ln48PEOnwcDf3LwCR1WoYNi zogH=f{0DviW9}fgk4}p_Uv{^m&7k9hoJsA17s-*1u(||z*glC|Ip)p<(Gf) zwXc2c`>y!NPyfv2t)IX7O@HyHuYLVPANb%W{>a0=xU>Apr~ik_8fzqZZA-Jaw;O$L z1QxsV!d6NONkG?r;!~d)ADk4Hge?j9>E}K7A&>gO@!|{9@pxAsT{Ng~YZ7oH?!RBQ zS=XSVyc)TRFF(%(@wp*R9$nX^lrFpMvb8=s5oJ}hTi@Vw#ax9=ez1~QUIU%e{Fg6$c~Ic%27gc9ZMyRVxZ}|Ng?4DAPHSHr1n}IE+B!W zZ=`Pu7cf4s)Vc>Mz%ptpm)#P=+_EWB&Nm=uaoT+qupR)S22tpnn1U_K1hW$`(y(di zXV@6MXND(NZAvX_feK z&Z(7!B>@N_KJkf9tQ+V|CX?B0mW6#&O5S@(0+cvk6V9Bd0*E8-dhsRBEg=(91JOhH z54`U~-}#WIJ@mm3{cpebvN!+TTORSl&wkzue&(s)cK(AN_T=m8LqGPDPk+@f{P-O% zyunE^PhUh>mT-gkGb~`JncXK!GC%C8~*EK ze(1@U|N3t|?TJr*&LbYw&1Qf3t`8Jjt6pi7hQ7x&;P;; zpZJ8w&ll}@R08nMTdU9dpHEB17f5UPB1k9h!9eICMBgm#cfb2x@xhNq6z_fCKi%V- zE`9wQUjO7rKlSpbKjX)q@wiw1=Rf$5uYBE4Jm=?L`I6@=YJcZfUikbMzv59p_N;HZ z*S#Npzk6PC>76gW`?qZ$KmH$o`9;6~>OXqhdq4K(x4z{e_dM@g?)6PO>d>Pf|HRuL ztpDb3-tt`!ef;Im{!x4Dv&tJ=;j$xsiG*f(yr_Jwk<~^Frgd+f)d&WQd=ksErGb~5`ao0g&w8=%dN>MB*xpgQc4N9riC(8j|zpp<6H)Xn4m1k2vbpl0F2a7#10VH+nF$A|D{23kX#zY>of|ls1ZE zn)jjGm~IF{N`M)`r+QKvpae7|T#|>*gOq|q2xwaerF(QO76~CL$=f;>Uhzvj}RaMn=I%Vc7ue>sg|K^_XD-4G-1A>ZFLP8ddNdd(0 z?h9Y|LbtR0uKV0y*6PCBAEn9oUq1dREy}UQ4?ODO|Kpv1ckG%gj~qE7P-Z!ii1escw{n$LgMDqL{!-C5xq?tI~q3EuOb_n6Vf_U_`UtFL|TbD#TD&wRmi zfA*LD`GX%uVI_%AzW)O+`1w~p?`NL#{Ac{s$3FI{kcJ8b2}t@k+KDqm?E{r1RN;F* z@BBOcr&s+>*I)b5f4SlbPk4M{j7O#GV@$ACf9ak9wY8{ z_j}yoqB{kS5B=T;U;fNzz2bNO--rLe<3I7q&&ZK!7u!kzP>=b+$9&&I?)}Gq^oKwD z?92c3&t3;o|Hlh{Hudh8f8!O^)*)@!&yQ2R^`~$A+Y65#`2FAhtr!0MFYGn`lDk~g zJKUC@dt0dJrlq#i&?-f1oi*n7_p)!hwmdCsk^mrb3Mne1bB8ugOj1T4v^C=jvxS@1 z7Sto9vakt|04YMC2tj}*2B`BvYmW=F zHx~rzgOjQRAS9*8SqS0A;a6hJa69K4T5D7G!x966`<84ej21xWQD_iOhP07#B_{~5 zwoF|o%7T!_h3J5gV1_^5C$RzNw9<%O%DK4GFH2ZT>JK+?^Pl5zYya3@B9oY zG%UbCIbsBnx3!$eAS^&xkgGHrNU${sgdiY50vh7f1y&Y1ApkhAbubrOD`PVMAOxhq z5ZfmSjuOy7^0y}EBAv{H$WmjJTVsyEKy;825WR~4@<0v0rc^QX$xBlh50m#t2DY|p zbU;dAC}|=@WF@7R`@{)^5L#FW<3cQiOaU-}QgA&~;gBQ}tVP?wSO8K(6M$GK4OX64 z&Oc{C1D&$=3_%fiRWi8t36=U%n0VcgDEBB%DP^KMi}N}+w4`3ylXNco17v`ZbrlIp zZ6DtO6p;k=x4YmVhkh|{Q_zjWgCG2WcfbGL|NO!C?e6XxJtiO~B+0-1s{itcA9&QA zFBla9Cw8_M9*54mV*(D0N3lWQ%uOMZoqTcU6R-Y*SF;^KR*!$kcj3r}loH;*@wb0l zHy^EmNB!7yHfR3eh6WGOHI^x8`2g0)jX6@>&LMvz2IU_xmI z_ou3gvt9p0=Uz6>WjBChj8X|0^MV(>=mr1h|IMr;fsl$?{o2c4`fI=SQb+_spO;_+ zSRcOR;y-)ye~)w|0)_#Er#|J0Pkri>0|Wq-jT7|6-*~TgyyIUAFN&Dqy$PJ#6FTTRvInLc}LE(rYNYIs#*{w z0sy0Qih&qy>xH~A9e~V-#~7QYvDP+CBLw;oCYzgrij9Lul&FNzTI#LI)QZCO5h>;P zIE3n3Cje$BYwGD#38P3(>hV}sRGNyiHd4P#1}@k)qlXU*rIiH2EnUCrRPB}_oS48OWxOV( zcWvxDr4%5HwPm3M06}f!0NMBssfS9i03w(GFkiL=blswB=T^zKgD_~D z4no7q(6tsy!yqxFbbZgmPB!S`wY^tbX2_WDV1neE%vH{i?hIm-1xu2v8W{ovLfY8a zq@ud&i&uiuY`%l8-576#BoAy<^{9H#1Mc&hKlx)R_3rMBfJ)t1>ih%9io%7DKhd0N2+k4xy?wkMpedn`zv)I{PUirNb`W^^*-SK0W ze&=_*=d&N_6Ysd$-S2+)tqr|CUwu+|oZaqSX7-?JT$Aw=+yKulq>xe3VSvNcxwt^-lmw%S?%WofhW)HV&*dMc7`HCy9fE4$<$KCtL*X%YM z8v9S2Whd&?^{`GTLf9!Ma z8!o!wf`ilgz|rj{N-0YP4eV_1pr}Wat$w*PwmBGQ#^XY)ZlVw?WxE?1%H%VY*%)y) z-?df(SazHs0teSS=Ne;lyKDupxjD_L!NL3eowSGKWoBk31~DlA2PUjOp%h4|6nyAC z*%CqlLK?fT$_*e73Ota6`|dKS>}ZI!fG4R;z-1;5BxsmF5+o%f$Bu8?Xm1M@-PEJ+ z`*pXG0|yRd%2#V0Qj|g(V+f?AS}YgLJRXgE-y3cAW_v=)-np`>QcAAt09rIlP`coD z=XD*t@3i(Iz}k(z?-MslA_NFB#u5RXxUQ?^vH_*0bpYyWXe+n^orxGAW>DTA^Xp36 z=$WOW6k@j&Kup(} z_c4X#-fme~-}hEYA0kK?V_MfKWpY9{LnHz*%0hL$+nu$x9QS=vS_kiifHBH-{d8I< zuxnf{O_4~EkrHzZZHvlMXoG?=T7!`si{kp(*1{6Aa9s?+8AV{E-fJtgu8DzI5H#Qb z&w{}K7eHdw0}v5l%>WaKiNH(=6o=fOs0otM8>?L(z-)BU`%YWoUD%v%?C$Ln(`aRO z7Cis}AOJ~3K~yrC?=6&;&ikQ){gyrGRF_Er2_WB-HqY1gg4oCuN0C2lAJJEmnnpZ#WY0rDf@4fLy ze*BRh@GjI!Q(;pGEZI~g81tqZ)s;-}T~w7cc6>5;aWY+WpSS&0_nJli@4PPAC2%f} zAWj4Uf>0np78hT9>G?-CU-xIPNqZmqpa1yYjp+s7eV^|r;&D?b@8fse=Q}UD=#C%w z=g(^43HanEKmF&g{qq<9@~?F+SfwCky>al{?|0v~zvVBV^7tox^q<~QjOo#j_&)N> z*?cjwwGXj?mVhlZ%($FR4Mh>*8JY<|2uz8U5vx6!aawNKS9G#*)dFJ8kq`hM++;Fx zE?QH%UW}?@(QXTk6p&j~a!NwV6r+@6jOn^=-wZni6f*>!DR0i`+O8hm(N~q8& zW;SJvNRn;W1Y?P0=6XbmJ~0ca0ffHO#v~R11T!cxBm;!(!w+dADYB5XoV(G;f>%`= zf&mnzk%OQ z1`P34=BjfU(aK0r7(x&vAVf-u0cN5>j348T@||z{>mPmU)86vtH&3??z4TXKa=-iD z{rzuwQ&M8K(@cx{iBI{-4}9?FQ`oV<``-QT3yxgygO7b2an2?aM=!eg_3ZjkM)r(RUCloG>Cb-QDmuC`F2ICY>&CS% z6k(+~BLt8VQiN1D__FXmjA*oJyEd_(@Ac!lDvGVWy{pFKno-86`o1qqn-YXT?;H_j z$BE9&5Mse}wj3HFQ0m&Y7>xnM5TuaW=x`FG@`}`6&shNqAO$=ujGmue>5Cp(j+dHSUp3P=uQRcll#E_RF zfUfI{Liy;7vKyNv01~=Kw3+}4$w#mx6s20JkI<+ti6Dh+yIx9Zv_kN#?8-4*@tPn4 zJhK3W-dSrSP>(HAV%LySkh1UFwsF&qO$J&AThfi_L)LZeyAuQ*prw&4D7__Nvgg5|u&_!CdIB@7tDG?b&5u|;~sL&_4W_vWLTs{il zfdi_#E^QAkMd+SG_5 zSa_el^?SbKs^i!8c7uVZ|Mc^o{>*1YQ(b-CRj>HX-+0oKo|JlDmx>v#Ng?cAdhuQU z_RW6@X(9v*%=_&_n}^=>t~dD}r9nzC5;29z?eF-pFJ2wR$OFfAn?oDp7<#1yAQB7D z(Bd2!w$}^J?jyCDc3G7bAe7Vq`WVOKaY83hN=apD0i=|e$y$33K5vas&hj#+)V6I^ z*I+E>^U-(=AVf}*B=+@jqcteWU*;haxIPE>#;5)er!tL+zbat&>v!CCDZirexzBwr zFOsdTt-7wet|KBLhDS^(C0;BRDRI*@S#Qe6m;fPF>s;WJQl8k} zHpY&|6#&<}wry|3i?duVbHFH*E2GgUgrIYPCUF8;a>k3Fs(+ryz5rlBf zLab=xs;U67n9qR(@2c7|&@|1Ea5sFuY1>7JKI1SL1x~>^C6oZlQUD0fjfycNHS_ic zFt*^xXl;2JHZ<*1y zL5SQ-JOX{&%)uCsiUek)<)T~8761+&*lPQzjJU-s(5;noX@9rR9u$fa^Am^x?|j$a zUv#Gnp7NBZJ@A2#o0LbM`eQ$Vy%T@tdu z&&NLeAy&($KkG#chsCi^z2k3Rf4lSUe3y&A^$l-*&*u4?ixbze!_^;q-$Neo?e*6A zxBJHXy!;Q|4u#kK$?xCkNOkEYcX`+&9`z$nd*aegN!Yw$x$zmcVMLAOg0xJ2atxggjrpNr#$IN zKlHdKObSE5B0$t)G#P_@&MhKB0F;@w!P$h7!uAQ51Oy-jAt5;zeItO4jVb})i0CM_hyj5phoF+!_pSgE z-RKkMHsEq=9Rt_O*l&q)kGot&oSolz%6t2e^DxiRckT|izXJ&(K}BH%QP#eUA*RG3 zMHd_aTB^=9O6JIYk_-X#p{uG=kdUCVv!-gn0eVO1yESUjCR>7trNj_9f0X{8bSgMVPRX1 z@~L&b0}=tF(HO)q(svNRcslkmU?s_7tEwzVxzcJ}=gL)~wDr*oAVz?otYvUSs>bCF z5T4b#S}q!?A%t*k1jDtBG$z;A3P4ddNRmJTEC&})0a`!~nVke8CJ>2}?-GFsRiS{K z3raDF@puyq*8~7f=&Es1Pek9)w-M?Z4K!yf*K-}~KH-R;tg zU;X>P^H*>B?+%dF)~7#r<@Y||yC3$@`~LB(U-SNd`mmqx{nU^CL^Aq29{9l5zwV94 zui61GjmA@+@}uwm$M-+|$Dg*jSwH`IFZ}br_$S{svBeXf@aVsL(;GwA9zA;Wul~o| z<^db!6d|nm{Xht-qA&p=zS3yX4Qstl8K#`xWbu^5(9En7q?D_~`~-%oGWD8E0;CeK z8X*p|Wpg}v&U2r8{)Oiekq=R8B%p5^uzPp&fC2_f`OQLXU z6mb7y9o8wIYFf`Varo4X_ER2bzI$7!=oXDy5>oJ;l?6gzV>l2$5PkkXonEHKYjYjDy^ zB_y4zRB{AYRhbI`37cDlNe2!Q;|NFsQ9=@67;D?sL75O*%WRDT1eoR8Zmz@%@{-W| z?5W7BkF&Lv0LGKe{4NbLB-fV%Psl<4BqG>LCJ1zp2FtW8wUIDr!ela$g=*WzJBGrj zs$CznR&Cpj>ay#)qA;up5Gf@k2|&(e?tRck^#Rgo=lk5FCs33mZD5ti2?Pl}B>HDF zsg)Q`Cx#%61_|=Ll#qHLdkYjpS){tYq`!(TX){iQl-j~bFl?z9>@g7#iUUY6L<9^3 zc)bDG)pZvu89tF>loH;1kkLxFoi7SK7&1W#5=!MMTNEN98CCUwArxhSm>@x7f7)OR z1VAv#wFE6;twK9!r7$5OiJ>y$^gV)Zjs*!MNJOM4a!RLB5J=+S!7;o;>B?Gw@X*IT z=~sXKg@r~X9)b2Vzxv9T$c# zH@)JEpWn4#{Ff6uc+Sh7`HY`_*6S{nFMjc_6tey6xBuf6A3gpHFZ#7#df|^g^?e_@ z=L3H7?eBQkJ;vR1BA@n@N4@eDFMZVaf8TpQ^r^r4#Fb9r0H9Kdp}&_iV1x<~Q6X0w z2_yot{50?98t63an17NGqHWu(oD1O2cfPX_BI~kb=O={lna_NtX`0Do5`y1Pz+?a; z2z}d=7;0Nmj9C{dL^iS&IUC>YQbAfo^VSpZsKx{jFu!m8omWIY8USZ0G@fdnB` z3C;?AgRC40z23@2mJS@~4}tx36v?c?bG=XtojwrL|gy5C2 zecPG>U`R$v4nl%dMh%j(RJa`qqzNDg2qd)%7AJrh!Vg*qnW(jCki!_7!zL1poDzI8 zGiDuKmg~&%lh-Y+C!AboI`b)uoXmXGKX?M9OObGzK&%i#f z=tb9)RPa4%O+;23Q;ch+c6WEXz;o9*&-1;R)!HbF7((v>IOkXOb-Ct_!Kadv!z(A> zB?QiKY6en3jGP@6PN2AO4Fg^1eBT3T_8P=E9@jfNCyKHp;$}JTx*jA?;(dty1(~Nk zU;PlLK2HDS^%}c7CqR&r0#cJ)#s@|h3pcMd9o*Ppj`PK0x$KRhwsiokQH%Mku8JH) z^FB&tQbN}8bIzrd7_5x~L#uq(ltl8gISCaZlqDqWF83(o><9pD)1-tDk_2{lcBC~R z)%U^bV&C;acD`=N2{WWNMk@v&69@>o0G+ZHFUSLKWk$q4uSWrzpw_n_m!akGnO49(7xpVdCAt{3#6&O_dyT$3(QaKj%!0@<%NJ&RZ&0}S`^LP zN8omMxLs+nRTt#Zw+rt*f;f2OLU8|$m)^eKtUme4PaHgSJFUybeCMLuA4w^N$hxji zEFo6)?U68atynRy>z2){twEeE3U=z55~Y;NvXt^J&_v`}=iHhBOW`zxg601yPAhf0~%>uVNa zU#0g+({bwGina0C_puwa`_TU5KiyIdeE?XUrnYK2_TM!s8s0-_UO3}9uwD*4nRsr|F& zTr}GnN@TFPZ;f&~XJGOSN{_!@c$TjN#s$ElS(MsL4jcxcl(1N3a@hhQf+T>EHYjY_ zx)gl`m^lF6r!oXsHH)s0mU~CmUUkhihmRhHP`b>`5H*kpB(v)v0>A_*hi+&IG6Ez9 zJCcATzzhzVll2Trkt7313dGv#7HLBj8Bp2Cq#ufndxQ_5X#kB0qsHm#Z%F;1XDyuqIUBwtTH#hsfUn~~W=`;%* z-zewXx6V{Hu68TeEbO#QoU&yHpWKZ&7j>PZ?-vm%rSe@{EEahu3%yrbuI%w$IKkckwO-P=06)pfq@p=vvy9h*|BD}3ftp9P?+qKPzZkl5Yb9c^qFEg%egpM~~GN)XOJdNkxI6jReTMO6Y3JP?aaiIA8T4@wMK zx`Xq|U=SezOvG^zFlWFE=m;dwgro~FQiSkruto|2T7`g9j9ELpX&Nczsk!tw9XYqT zaRAK0^|~~PK!Eptx-o9q`RLPL1HppCtX)p(F|Fi=GivF&F5`)=>ozwxvpL?_*l3z2 zmrvJK!GMBfjGAUIudvqn!d7acI6y18=(?&XQuHzOx-4=lhNfx8_K3DR%pYB|s7>*~AI(nsPW>=1g2V`^KY`3L$K7Z*OgFpbFV4C*@L6{Y0YFMomZftpw^aP_hd+Gu=+V5tZf|c_Rkfb{ z0KPQfcFtvLp>5moc>I-gq5Jw7`3h$k*S77EBS*Tf;}8o0(xM3xL=<{O!ix1DD9r_kMFa9hcR1J6C1leWy%eO{GA~ekqlx zrGOGT3Xxby9Vq(bk)Rl(YP1&}dtV9Dhn`CtouecqC?F1%tqkIVky!QsC`qs+fGM(w z04N%QU~)t(7?HqKAYsIv02)vrEvq8-ErJ&cDOr#yBnP*QUU5oMut;gW~e=sHcw7}dBebb*5h4<0{$+*;dp z-Ez5HcZd16kFIM0NJ+7Cl`h)8Ey}ueOCP*sP$CeVhyV-=;k&L>pQs4w+l#LjP%CQ z^IrVRFL~+j{@IIu?uAeI{`-IWkN#>>PwsG}dc&W-`e!eH#&5myRTtj=F2C@ipS%Be zf8%HV`Q4wt`nVud6jc{|*E_f_%pu31{bfBEQcF(RPENa|bZ+v6ndoH6ZbmIl({x=| zRh9QXzqMR0rIeXRIlCQ;(OSE=w>OAQN;USoS{5S`-xodWD3(03ql;0up8=aga_60y2R}CXQ|EiqhJ$m@gOOdgOi7 zTATw+gq%>k?;ypRI?1awYYY-A0#?OJITn`dkJOnY%jv}4>etis^$2HR7e2Fd=Ph1Z zhQ91xm=ihTYA|zl8FRO=5JFBd%cJYMl+tCFT}Cu~GZAHJvYXnq!;nu`kR%`=MOsnR zQI2depPg9ti)vKPnr2dNAW_qF^|*)#0-&UV^Hl1*sc;BM3kFmYnMZEjqOg{dLLv~7 z^a+qj58?}iD7*kf)L=j`gaZe_bYvt$$2mBFCP~UUU%Q*~95|4rfPe%} zAoNhk4ck^x@*q-zH`%x(dy;|985rb&++@cLO?7xxyqVi+4~4u0Qt{kzqnjx?cWCCc zPBxTC@C?D|Ti4I+w771!nQmN=7$JI<7NybP$bBGPr&J{5d`Db+O>_Ih6>tKX;LSQ3l^dbXOn_PU}f5GlkW7!5#r1fO)38|Jy3 zZpoRwKclnGS@*2{`)dqooyC%4L&g~A+;lqax-P?-b;Rc@3H@Am-F1f#A6}!GTWhE& zUzrd>4vl5pPeiA32I92OXB&dtku4=~G6K?yMM?-j6upmGR8UipU<3_-m5%^n)u)rv zDxkTK$zas=Xg;4W7K`b044`Scsw#37`D#`#0SqcHA}c27laZs-Vo3l~N)U2bsvbau z77U{Nw|0F5aR^-Q3p(*?H4#`M;w+@#mkSRi+^Am7X_I+pXD2uH%lGc%AOE-zLMdg8 z(ON5|q?GF?Qc9(i5JCu%fBi}b#alV$=v)LuWhz4;Mp0K_p=`Z$9!k}98Dlf4ikJX_ zdQ|M~?Fsl}$F2q-wcb8{OaLiHQVQ?{xE^`iEp3ry$5tAPnxI$J$@yi?>$JGxjRc~Y zQ~#&~bs(7tMNaRQ#my(d705zN@+Hm0q}i4+uNzD zx-LxK#J%gmVsAccy{{?_z!(KW-?qxy{5{!KC8DnD@=CaoAbm0dS6_8y?-$X#&LV+f>Va zaB|(kP+};Jk6+Sly*YT}vuARy3ZAU7lTE-L*f^9a7^|c<)y}L1DawT=3JpUhSm6Al z6$>CRND&|;=4}s>b*Z!hprPvNv`8KjEFd7zM`UqFmJ}J*lz@OV%4p4?2&GVz0w)hs z@je?*r{R>dl|83@52;j^bjnpl8C6?ropa8)(=ye(_vsuXgMI+HLO8pTH&>$D*8t;k zdY0-?0VHJCv_MKR1n)xfjazPSZ!hO_A7bDr6w=V*duS}O2Ap)V?^~8=TD3J|M8Ji# zXcoFC$J22FmYuJv0suqt$ysfN@WpUjH< z&>lXt)ie$QhYuc_FZP6#j3|MwU04HS(RCfK*)}@0uxwuei@>Ql^E`A%U)Ar&RsPq& z4{dCXk-#Y>_Os>U#LiAi!MQeZbgm^Kx~{(&ucx&##9_%V7jsU&ZDua|zHMB$X!=0P z0Lc1sqw$!Cj4|2rW~*HkMSdllT_WoHUI=mM(4mx)F{ZS|-tLL(uDi~qrtM~Z=R)*> z*%&QX?LksXrYOJ+qQ38)b3%yOY_`VuH`+c+6r*S4qf#p4vk=1O=H^Op41_2Vun(8e(7%xZ5zkOEr*-k;$r6Ta4S6-q6p+p!hri}R zMkkky;N)7Qn9D~cZ0w-~7+89@G1&k_zq1FXzK7AnekFnV-VS$>q5l8?AOJ~3K~$85 zDgq|~lx4MSdObwH%fJSJ7AgA?K0+5Dplezo!2+ZVVoEVL#2a`OfAX?PKn^vk`_}1~ zt>0LKnXHFQOr+Hszi?0db z7T@^n)(l*_&Lc;teUBKRgzsA^kO+|=jR9D24}=8t+5CIY@IWj_)(51(lhHWOY3G`{ ztggOldF?f>D2jI3fD!u+UoB!uD^vHJ782dsC6 z{n%w~+;5nbk6^0_@RDQKd1**s(3R`sdUJ}a$rirkrHku>q*ar))s`7zXut?z5C#u@ zlUvz37qH(%0zTv^EdbHAYbUHvdHynGsU1)P$G#5${Hka=CU(8sXT{RF;v8RHXCkYD z@hR9v6nZ5DV)`zYIt!r*qYFac&34S@5s46^ZEx5B0{Y(PqX|Cdd4ia-oIw|RaN>Pea=x>Zzo`j60?o>yjp^iNX_^H9_UkD+pcd~V zZu#ZYw`Sl{7CK~UTCJf89IY`Ca1jYu&Su~QExB(a(0Q~DT5GFRhB8DDl7jcM`7&{` z)*QR$>Tmg$Z~NgVJUN6=)n#(M)F!bfEv*s3L2GJU=NU1gv;@YySwMoMS{&a7w5=v> z8(p7hd=S!rmlCaKvf6A5mL7VlCT9wcFjU-8G-3|NVzpygvgW?|84@HRu*pW zI;8&5k9~YGI&$eHcYVuWzp3?!<$x!Y91e;}n3@v`q>qELNx~2*hizy$U3Q2N?6+6aW6+_j>8eUe@=} z8Yv+}NI}-v-uGXL7yDHW72#CWl7WnOU55NdOXeVQQ5AIbt{9I1lOiqV%jjV&d;pRI z`ZmA;iIaiQiiCh`=Dl+uq$B`tyCoP(3I_Y=@|IN?AplzxoZy@vYO*AZfphTA3qUBH zAeoaY(yNjGsZwhFZhn$s){V1O@qQ8g(}5Z& z2|=qYk^thXuQ~pMkACcd&5esLy2C$z=u<*s-ns}k{0W^BV@>pBW^PJ}I7tB@QS7rv zF<-PoiG(N>jvw0r5+q5Zz}PvlYi#L5lA8ABowb^M2PClWTmZtT);^MFvFurElt$-% z*({`#GW8w;&1}YimIgjhmjCIyU;oYDxa5*cCRQGuZY`T;nfkIYoeK;ovC`u~Dhq=c zNDX$WcdltV07^>++ScC&T)uWkj6Na&3GD)@PsuYNBqC5xCg@tY_BqeKyqX-jb~~6N zYlXEybe@F*B9zkgxX!MZQF^*@AR)U)NhkrNJ|@mZX~6@Kws0|#1QJr)Pc}9qz^)x_ z9YCK_&p6sz)*@pgln1zX8Q7> z-~Ywld&kLHmF?r#DNmi5o!Q+qQV1al3B81>p@T>V6%kZG6csyF#1}+B6r~6X8bCn0 z0*Xo#5Nt0^=?R3AMo37qZFb7jPPxB-oZTfsqc8j@>d*6;&+dG7W}lhoc}}^{bzk>& zy?spx25@Zv@($`%VlFtAjuu{*goOy667=4*qc796aK%LzgUF zK|?BnL#Zom^c$tt5RhqvQG~%>Q}3H|#TB)26SthTrFAQvO8Z+a4U{5~LAfK=*7$++ z0}1FjiUmib4r>4)$y)?7cI-F+GCdp%y-^Q*kGl@d2po)) zlitsq0c_yGnxx$dqssD?{RCKRIcJ$_az12F(dg?ZAX9nLtXC?fd2@e%$L%-xz7H5M z1ye{bZsiK3y^tlj1^~eeWdY4>ZXgLBlgu>h2z)MBbFfK3OBsU2=rJZq0v~Cb^fwXL zM(g@YYORc;sI7`-S_nR*03!v!MI8A`zia(Xk+Ohxt0i)z^~l07q&NIOP;Ea3rO+``4-N}G0Uo`*r zyY4;w$YY`sxBzq^e7{`oR)E%!9DV(Rj0?soY4ii6vTUF)uXezfNK+dJp+?~#B5M(r zc$#Lr?6OO<*}UhTdsP9(;Ko5-m5uE?2E=F@o>M1kVgr zs$1cXZgL4NV1)2mS>9@-Aiyd}Vs3V@CQVue$NrAfI6dkSFHTgAOCmfop%4(Ew_IATjwOb^?A=eKW0>SGaVcWdRF)O`3K$K zSm!qh;W95e_u~LWLBKPGfkrDTRSKo8A;Ck^2ul)NgHVbh!5L%50`+>^)dlf@XBv>Q z8ih-jEQu;L188F0BbBtRU>aZoNna1NhP4(pkRdonk_LW|>TLAbF`xL8(QYuB#lXB(u_cqnpbA1}^Vl zt94Yl+ZAht(EG#fzuJ1MElXi()P!x0{?w_h!RGzHylvx28~p6LyR!blJ>IiZ$j01$ z`|XXvzWLA2jpE9I2Ohce_V3+b>a_RmyASu|@y8!ut#o+7`g`tmxDZ0M2Nyi~$oiAk znf0Ds_B-f9qXO^KA2}e)vVp|R+<4aP*|QJab-VQ@bRTx)Czh_NLr~9(C426=Yg8G1 zz`-B+(VQzokNx)EyCy|bFT3W>yl27tx8Hc|*p05b?haYuy$hc>;DCLr)lpk)IqQ2D zT%t9UQ@)e(UBp@dD;U$ZU=VQtuzc04OYZsY{X6Wi)4AXM)=4KH*SD*!^I1eO*h@`)USOl zH;DvtT|D;0lcUFM_`m~CL{U6#gXx=Yy4l@#-<@UFWwn$x*1n5Ci+w$1c$hhu=1HR3 z7TWXuwBZUelvYjmWj!h2OIRL6z6E^Gb6z|E52JE!Q0?p%+<7DFuF+l442+K*TlPH| z@J4P~2*W_yG7y>Ec{Vt2s6?r9IRZf$1!lE&-IhGh6P)MnTXRn(+2G)y7x?{cO+XMZ zZK3Q?II`L>w5zAU-0I$HwOpmH=Xr}4FK#xQL^LokkY$-uXdF>D7$I@Tacr$^wOWoM z!{1PJ5oLin{&cinv-Tv;Mk=d?Oa^M4p}TkAB>8Js&A0Ndz!^|Y^_ zHf`GUNfX!Kd+&YcKmW8g*{jR?-@oSpl~QGc>EnNL*)8oh`WmY?*m&|r8*h2U$BvxT z)%~##9Fzk${QTw)QN41`^$^8|Q`RZVaku~acUk`{&p-FqYCLYA4}R)BJM1uH+T>4u z{G(v($!DM5VW%C&RXb+CXZss&ypD*XATqhm+LXKQ4|GPy9KgA zDSGG+4+Pvl?euRx{`liNym$7CFTQllXFmJe-~C<@lKkIWknTS@aABZ!((EXgAvv<- z+;5-LYPBx8;)-vcb@up4>q5vKcG%&JZ=A66&YOYQmrpYIK(dGh3rYDa&6U#VRF z{qO&{?bh3z^0kxq-Dm$KOAkHtkneu?Tq(VdN>`euUMZY3VN{wX&%Ll@_Rf1AeBds3 z-*MNCH{M8GG}B_cX-MD*Z8k9XF>p`5XL zv)wTe3l_ZC)6>7}ZtuJH%F8ECTnABQ!NMiVrWS=10J#O@Z69~q!Xz!5wIUy-j;;$X z{?XD!3nGqsvu%e>?=+DGe{)Kv)>W67{OQLY>F63gW1~rN#d(zIz>^^Um#3cDc%u!! zdcs$B-F4SO+b5rR?0tLgdirT!d++u;eDmxxpMK)$_1Bxabm>x0h!+;muMhUW_`(9R zV%qeXtu(bnlc!9XH}5%X$#Ez>DZ*j%@PC13M_5Wx5JX;(rb%y4&n~;Xe~X#h?X}~3 zMvoeQ(g|lTTr>!n#q;NVXrBYebgesSy|Gtb`(q2-d*1_HUiI?JueI%L*0c>veAKUR zy&XliaNg7Jd*5EAs62h@dZ&Kv>+K9dAYWrKkYF4T7Nq|2=il$T*Y2Bay7~I+Zt&xa zF7-nHsku*#A3yn^13yBo_BB^sU8~l9b;sR*`1Nnb*E(;y;W{w8@$_laXUx3v+MnkJ z#2l|H$g^w>OPXQag#&_d0G*wkZlzaBb#-+)#HCa!B}pQsbcq$;_md=XQdmy@VxW4x9t1(TTz2JbZ`qnL6ef^+(rh*zM~8FnIK>V$!fJ%#w=Zg0GZSiI zwPXOZS(b)DtTJ=Mb=NOiu%KwBaiwAbU-*9m+1NEB>DSLlp5%-XsX`28qclu$?NvXy z?D8L%D& zYGg@UDYeI*dwuJy&z4G2)ZKl^v7ehZWqr{#=3^iK$bJXxvc(o#0CsS2pxtO5`r(g! z@4O4Xa?;5kKk|rj81K5r?#F)a*h-~p3|VVoRhA4|t*6b{?9@}fa_+ZJ3k2@F|K21; zT&m67XvWb;9J1d&yFi31dz+8{_2ET}SAOA3C!BY|S-<(kwUt<0ebZeXW7gm2hy!MA zGM)#u9d|kKg9mRnW!;YXk3F?&1x`El>qi}R#O0UIsnu#X-1IX7fp3t#!-r#^LbcgN_5 zA9{4lEw@~>Xwid@JUDaaZdYG(&5~D^t}|iXYG)KhC1s71ytCHw*BtAZ((fWEkJhMZ z8ulqDOa@RKm8zY!1ure?>FL>L-}mjf@i2(eg9t${LsfXTyN}2 zUp)5iKR-5hy$ybG)y4boG7AtV{owLB*WI+mCL6;R2k*b{GtWGC$|33BELYT2{TocpbB{rS&-I_TgJOq#Ini6@-!y9e%FZ|ZtNFlLFx@$zM_ zKuArPwb|xBzv3s;r%ofHubq9?|D1l>?Af!W7)szWhQP&wf3LR4iR8LOhVy@R85{>! zxCkbWV@G&*GF(#1n{K+PR4Scw&N&zseR-oC6wbNh&^RM7rIeEZeXBSw?xdVSficFZ zV7uC-a=9#}^gPd#7uBndd=38$hyJN7-o;-}}G=JMFX+FIU5;g4HDQ z?V3>8KUp2gT3rbDexuQB-g5JeO63nd^vDUvf90+_f3x4-d*1)RZ=YYd`0J;hdC^4| zT=4yGfxIiPxSpU2)t)tL*0INa?x-U_Dmb2a`gv_|z{fr`ef@QmmWLkx$$bx=z4;dF zfzTRg+veawhaGys_s%=^$(pVHfpX-g8@=v& zGr%xy`V^Oyua!#{nzU)R+HuIproJD7`>kfPqa&QY!OYCS_x&+r#H!u_86wS9DT?{n zQI$ACk`>CV>g!bo8*jF0yNxN6*5OvIT+#1IiNPe(hFerZzaxYy)Z*nUT7*+iJ!{(J z$ulNRZZ{jtUs+}hd;wU^-g&{()hG%9_q5K)+Ashrqgpw2c2+B;;HjtQ@4N5*$QmJ6 zg+i%Z)8L))7JkU(g zPA55;)I5cu(3hv3e&)E&vDIMwe*1i2Wn-XOv^U>qa=mBS|2{gmHa7Uv{r5lh=$|*) zd?pW|wJ!T*t!)^U3az9EW1Jg0Jm~-}LDIfqbywPVdN1+X=o}XClb)#b)f<3K+Vyc` zJEyI;?w7y##Sb2M5TbDY{Q1v3@#G^9z5KR|Mji)6+NH&%;%5&$_d{*=ZwzIj%%*HNvk2ZZfg`6+FAkV zTebY&yC41fX=i=^!t>8N_sm+w``Islxp3L4Qngzb3hny%(KTpW>l{^{IAQi7AJ}Q< z*|G0^;J^=j{?kWJpEACkx!PtZJ*=s_dT$@DFpAnERd9QUIa7A@0^wNmZMz5)I=3gxY4X`!_q!ns6HSb+H*UENU}EL*;`HQ4Iw?YH$; zr%W8h0jJkPugx72Bu8|5h7C>m>d}@f{}w{{{xHH*3RkRHHEY&3rIPRdqcCVSQvsSV zaa^8fTW+ykS6An<&@6OSEjeO-&zfZAoi41qiQt)XhK*HxDZwwljR`5^I8M- z{SQ1~&-Wkj>WbbCHr(j3#~-`oN0**{`stEGX$0PX1DAi%JQ26bGH?rk3#0u#4*KX* zPe1qMQ%`>Q(7o=u`6tgk|14NY-e?M|QV)&_5{D6Zazb;^hbjb8gfcHu4=Mx|Rz$Uq zRN zy-Rb|vfhQuIAEk_S*X333tnTEj7IEBUflDWU;f}nS8uk}PQSbBwhJ#j50#pVFm1f# z$*SA#e*Az#j$5_h#h0IbaQeoR3IV}nk*h_EUzs#@st7`5!3Cs1mS=2r0p8)gCb6{| zExnb1oh!~6QY+7aVSN;eYPE@g7GB0#b8L5vB(Ftf*o35AvS=j%8*e#716yytwa4P# zK|P>=Fd!Juq%5rifBz z6UWaeEH;}lwiIU1Enez%P8w+H$dBL~-Ry&vCKo9zBBAmuu&ff5(gFY~AqS9UIhWjw zc>l5y0`kx%UO_8MaTo%yq!piTGKaSInLZ8nP_fHv9} zU8QK8LI3iV&jrDR=jOg@s4;m;XPzSPI^#H28pJ3Fkfw?>KpHl$RYH}vh6S zIJ6C-(hWbqdB#T5KYZ9B=UsR~=jg8MuDj+-U-|+A0=X8`(EkQ5{|YViBNsbcf@a=f zhaYvx59iE#>dA-~D(!DH>RDk~SR)>U!d!B}*_Z$Lvib90kg^m7UFA}#)#_I|55myc ztUlOx<4reTcKPK(>P3s5y=>044?X-?mg?^Ajs<^x5Q>Jy(i@wnqbbin)f=&t&O@+)H|7wy68uDJM$%dQ$2 z7?`p7mSfi)eeb>ZJ^t8V9)I-Fn{K%At~+n{1XOM@oeypR03ZNKL_t&;Sfk$d<-08P zt%}4NKvuiQPM$Gy`XB#v-;qZgbHVxFpRv*Uo6MYK3BvJbX{~dUv$QCRA_#(ZyRDRp z;~21Hb7PC8-~7&nyU*VG_FHctKfdtNE4n-4YB(e_$O)Y6kRh{OYx$@nVAkt(mmnY_m1`J) zpi(`1&wbM7z!MMukpY&&u%Iy9rpf4z5|cb{x1m#Rwb8WkX0vLw?pKyBN1Dn=t~;@_ zTJ|3K-zN|Hz{fk{()06QoicU2l#oIW^bS5fZ|-h;?oq9B&QTZu2!rt5;^)%e%j6EZ zu~-0}0a;RM)=1g|h&v>c5Ik4;)ae_QLp=5PpC!j*Pd;Z+j-rzE046MKMHD5Q7@(Qk zYNZ?iA3E&NTkrYZo%i2)_q}≻Q8r6395Z2@xnmLEvM$$0&=X3ttR5o_*oP6$5Jh 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 Y=4%$qu_pZi77#v;wyuO)Jmbv&0c$KRVE_OC literal 18475 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

    - test audio and midi patch + test audio and midi patch

    First, try to get Pd to play a sine wave over your speakers. The @@ -329,7 +329,7 @@

    3.3.1. Audio settings

    looks like this:

    - audio settings dialog + audio settings dialog

    The exact choices you get depend on the operating system and API. The @@ -452,7 +452,7 @@

    3.4. Preferences and startup options

    dialog and must be only set via startup flags.

    - startup dialog + startup dialog

    Startup flags initialize Pd in many ways, but many configurations can diff --git a/doc/Makefile.am b/doc/Makefile.am index b552e041e..214d322af 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -126,9 +126,8 @@ nobase_dist_libpd_DATA = \ ./1.manual/img/2.10.4.png \ ./1.manual/img/2.10.5.png \ ./1.manual/img/2.10.6.png \ - ./1.manual/img/3.2.1.png \ - ./1.manual/img/3.2.2.png \ ./1.manual/img/3.3.1.png \ + ./1.manual/img/3.3.2.png \ ./1.manual/img/3.4.1.png \ ./1.manual/img/4.1.1.png \ ./1.manual/img/4.1.2.png \ From 9085ec5be904e08f50e9c1c9144f7a93d766c2f2 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 15:26:55 -0300 Subject: [PATCH 261/450] standardize links and remove "Pd Manual" from all chapters description --- doc/1.manual/x1.htm | 2 +- doc/1.manual/x2.htm | 22 +++++++++++----------- doc/1.manual/x3.htm | 8 ++++---- doc/1.manual/x4.htm | 2 +- doc/1.manual/x5.htm | 2 +- doc/1.manual/x6.htm | 8 +++++--- 6 files changed, 23 insertions(+), 21 deletions(-) diff --git a/doc/1.manual/x1.htm b/doc/1.manual/x1.htm index 4f1086188..b0ca6274d 100644 --- a/doc/1.manual/x1.htm +++ b/doc/1.manual/x1.htm @@ -16,7 +16,7 @@

    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 z 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 &n?_u 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 mL_|cC9BJW^h=_ 3.3. Testing and configuring Audio and MIDI the Media menu. You should see a window like this:

    -

    Pd Manual chapter 1: Introduction

    +

    Chapter 1: Introduction

    back to table of contents diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index cf7f87159..4d560822a 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -16,7 +16,7 @@

    -

    Pd Manual chapter 2: Theory of operation

    +

    Chapter 2: Theory of operation

    back to table of contents @@ -50,7 +50,7 @@

    2.1. Overview

    for simultaneous computer animation and Zack Lee's "Ofelia" that allows you to use openFrameworks and the Lua programming language within Pd for creating audiovisual artwork or multimedia applications such as games. For details on installing and managing packages, -refer to the Externals chapter. +refer to Chapter 4: Externals.

    2.1.1. The main window, canvases, and printout

    @@ -72,7 +72,7 @@

    2.1.1. The main window, canvases, and printout

    computing audio samples in realtime for all open patches (whether they are visible or not). Turning off "DSP" halts the computation and releases any audio devices that Pure Data is utilizing. You can configure audio devices as described in -3.3.1. Audio Settings. +3.3.1. Audio settings.

    The Media menu offers shortcuts to toggle DSP on and off. Use Ctrl+/ (Control key on PCs or Command key on Apple computers plus the '/' key) @@ -252,8 +252,8 @@

    2.1.3. Message and GUI boxes

    a number box's content (the text) changes to reflect the current value held by the box. You can also use a number box as a control by clicking and dragging up and down, or by typing values in it and hitting enter (more details on how this and any other GUIs -work is available in the help files; see Popup menu for 'Properties', -'Open' and 'Help' to find out how to look this up). +work is available in the help files; see 2.2.7. Popup menu for +'Properties', 'Open' and 'Help' to find out how to look this up).

    2.1.4. Patches and files

    @@ -263,7 +263,7 @@

    2.1.4. Patches and files

    When you save a patch to a file, Pd doesn't save the entire state of all the objects in the patch, but only what you see: the objects' creation arguments and their interconnections. Nonetheless, the [savestate] object offers a mechanism -to save the state of abstractions (see Subpatches). Also, +to save the state of abstractions (see 2.8. Subpatches). Also, certain data-storage objects have functions for reading and writing other files to save and restore their internal state (one example is the [text] object). When loading a patch, the [loadbang] object can be used to initialize the parameters of your patch, @@ -490,7 +490,7 @@

    2.2.7. Popup menu for 'Properties', 'Open' and 'Help' The "Open" menu item is only enabled if you right-click on a subpatch -(see Subpatches) and prompts Pd to open it. +(see 2.8. Subpatches) and prompts Pd to open it. Ordinary subpatches may also be opened by simply clicking on them, but for "graph-on-parent" subpatches, this is the only method available. @@ -561,7 +561,7 @@

    2.3.2. Autopatching

    You can also autopatch into a newly created subpatch (see -Subpatches). By creating an object box and typing [pd], as soon as you +2.8. Subpatches). By creating an object box and typing [pd], as soon as you deselect the object, a subpatch is created with an inlet - either a control inlet ([inlet]) if the object above is a control object, or a signal inlet ([inlet~]) if it is a tilde object instead. @@ -701,7 +701,7 @@

    2.3.6. Triggerize

    shortcut was designed to insert a [trigger] object (in its abbreviated form [t]). When you select a single box that is connected to many inlets of a single or multiple boxes use "Triggerize" to insert this object, which is briefly described -in Hot and cold inlets and right to left outlet order. +in 2.4.3. Hot and cold inlets and right to left outlet order.

    The [trigger] object is widely used in Pd to control the order of execution from right to left. 'Triggerize' then creates the [trigger] object taking into @@ -1058,7 +1058,7 @@

    2.5.2. Tilde objects and audio connections

    subsection.

    Your subpatches can have audio inlets and outlets via the [inlet~] and [outlet~] -objects (see Subpatches). +objects (see 2.8. Subpatches).

    2.5.3. Converting audio to and from messages

    @@ -1862,7 +1862,7 @@

    2.11. Differences from MAX

    are replaced by the instantiation arguments. In Pd, these arguments appear as "$1", etc, and are translated at a slightly later stage of the instantiation process so that you still see them as "$" variables in the instantiation. -see Abstractions . +see 2.8.1. Abstractions.

    In Pd, to make current all instantiations of the abstraction, either delete and recreate them or close and open the patch; this is done automatically in MAX. diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index 1b72271d1..48d2ad7f3 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -15,7 +15,7 @@

    -

    Pd Manual chapter 3: Installing and configuring Pd

    +

    Chapter 3: Installing and configuring Pd

    back to table of contents

    @@ -383,7 +383,7 @@

    3.4. Preferences and startup options

    The Audio and MIDI tabs are actually the same settings windows that you can open via the Media menu, so there's nothing new. The "Path" tabs configures search paths that Pd will use to find files and externals when -opening a patch. This is covered in depth in Externals. +opening a patch. This is covered in depth in Chapter 4: Externals. In short, Pd searches for files and externals relative to the patch directory and, if it fails, in paths that are set in this tab next. Note you can use things like "../samples" to point to folders and subfolders that are relative @@ -445,7 +445,7 @@

    3.4. Preferences and startup options

    Startup flags. Most of the configurations in Pd may be changed using the various dialogs you can open from Pd's menus. For instance, you can use the Font entry from the Edit menu to set what font size size Pd will use -for its main window (this is described in 2.1.1., +for its main window (this is described in subsection 2.1.1., by the way). Nevertheless, this and every other configuration in Pd (from Audio and MIDI settings and whatnot) can also be configurable via startup flags. Other than that, some configurations are too cranky to put in a GUI @@ -458,7 +458,7 @@

    3.4. Preferences and startup options

    Startup flags initialize Pd in many ways, but many configurations can be changed while Pd is running. Some configurations, on the other hand, requires Pd to restart, such as setting which external binaries to load -(more about external management in chapter 4. +(more about external management in Chapter 4.

    The "defeat real-time scheduling" control, if enabled, makes Pd run without its usual effort to become a real-time process (whatever this means diff --git a/doc/1.manual/x4.htm b/doc/1.manual/x4.htm index ae0c3e0d2..337a68808 100644 --- a/doc/1.manual/x4.htm +++ b/doc/1.manual/x4.htm @@ -16,7 +16,7 @@

    -

    Pd Manual chapter 4: Externals

    +

    Chapter 4: Externals

    back to table of contents diff --git a/doc/1.manual/x5.htm b/doc/1.manual/x5.htm index d300c62b6..617f5771f 100644 --- a/doc/1.manual/x5.htm +++ b/doc/1.manual/x5.htm @@ -16,7 +16,7 @@

    -

    Pd Manual chapter 5: Current status

    +

    Chapter 5: Current status

    back to table of contents diff --git a/doc/1.manual/x6.htm b/doc/1.manual/x6.htm index 94960a591..0eefe0123 100644 --- a/doc/1.manual/x6.htm +++ b/doc/1.manual/x6.htm @@ -15,7 +15,7 @@

    -

    Pd Manual chapter 6: Building Pd from source

    +

    Chapter 6: Building Pd from source

    back to table of contents @@ -778,7 +778,7 @@

    6.6. Building Pd for Microsoft Windows

    ./configure --disable-mmio
    -

    Note: Because of license restrictions, Pd cannot distribute the ASIO SDK source files. If you want to build Pd with ASIO support, see 6.6.4 Windows ASIO Support for further instructions.

    +

    Note: Because of license restrictions, Pd cannot distribute the ASIO SDK source files. If you want to build Pd with ASIO support, see 6.6.4 Windows ASIO support for further instructions.

    Once built Pd is built, you can either:

      @@ -1034,7 +1034,9 @@

      6.8. Makefile build

      make -f makefile.gnu uninstall
      -

      On macOS, you can build a clickable Pd .app bundle using the supplemental build scripts in the mac directory. See 6.5.1 macOS resources. for more info.

      +

      On macOS, you can build a clickable Pd .app bundle using the supplemental build +scripts in the mac directory (see 6.5.1 macOS resources +for more info).

      6.9. Troubleshooting

      From 1d83739ccf4cab742f60230654884fae92badc6e Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 16:01:07 -0300 Subject: [PATCH 262/450] add details on "font-weigth" flag --- doc/1.manual/index.htm | 3 +++ doc/1.manual/x3.htm | 12 +++++++++--- doc/1.manual/x6.htm | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index 31a510f35..51b93238f 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -193,6 +193,9 @@

      Pd Manual

      1. Building a Pd application
      2. Pd application directory +
          +
        1. Windows app bundle helpers +
      3. pdfontloader
      4. ASIO support
      diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index 48d2ad7f3..742f5959a 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -584,7 +584,13 @@

      3.4.1. Startup flags

      -

      Here are some details. +

      Here are some details on a few items. + +

      Font

      + +

      The flags offer more font configurations than just "size". Note that macOS has, +by default, a "normal" font weigth, while in Linux and Windows you have "bold" +by default. Use "-font-weight" to change that if you don't like your default setting.

      Path

      @@ -593,9 +599,9 @@

      Path

      MIDI multiple devices and sleepgrain

      -

      You can specify multiple MIDI input and output devices. For example, +

      You can specify multiple MIDI input and output devices via flags. For example, "pd -midiindev 3 -midioutdev 4,2" asks for the third MIDI input device and the -fourth and second MIDI output device. +second and fourth MIDI output device.

      In Linux, if you ask for "pd -midioutdev 1" for instance, you get /dev/midi0 or /dev/midi00 (or even /dev/midi). "-midioutdev 45" would be /dev/midi44. In diff --git a/doc/1.manual/x6.htm b/doc/1.manual/x6.htm index 0eefe0123..15a89aabd 100644 --- a/doc/1.manual/x6.htm +++ b/doc/1.manual/x6.htm @@ -848,7 +848,7 @@

      6.6.2. Pd application directory

      which is included with Pd in the /bin directory. A Pure Data app directory includes both the Pd binaries and resources as well as a precompiled Tk.

      -

      Windows App Bundle Helpers

      +
      6.6.2.1. Windows app bundle helpers
      • msw-app.sh: creates a Pd app directory for Windows using precompiled Tcl/Tk
      • From 38bf3ee379c518a489be13949e81bad2de270b59 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 16:44:24 -0300 Subject: [PATCH 263/450] document you can click on errors in the console window --- doc/1.manual/x2.htm | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 4d560822a..11296ad07 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -85,10 +85,17 @@

        2.1.1. The main window, canvases, and printout

        The lower part of the Pd window is a console area for printout from the output of -boxes in patches and for messages from Pd itself (such as errors). If the Pd window is -focused, the font size for menus and printout can be changed using the 'Font' dialog -entry in the Edit menu as shown below. Make your adjustments if you are having -trouble reading on HiDPI screens. +boxes in patches and for messages from Pd itself, which can be several things, mostly +warnings and errors. Errors are mostly given by objects and printed in the Pd window +with a red font. If you Ctrl+click on the error, Pd selects the +offending object in the patch. You can also use the "Find Last Error" entry in the +Find menu for the same effect. + +(include pic of find menu with the "Find Last Error" entry selected) + +

        If the Pd window is focused, the font size for menus and printout can be changed +using the 'Font' dialog entry in the Edit menu as shown below. Make your +adjustments if you are having trouble reading on HiDPI screens.

        edit menu @@ -886,9 +893,12 @@

        2.4.2. Depth first message passing

        Here, the left-hand [+ 1] can't finish processing until the right-hand one has -been sent the result "2", which can't finish processing until the -left-hand one has been sent "3", and so on. Pd will print an error message -reporting a "stack overflow" if this happens. +been sent the result "2", which can't finish processing until the left-hand one +has been sent "3", and so on. This generates a "stack overflow" error (which means +'infinite loop') in the Pd window that you can Ctrl+click +on (as described earlier) to select the offending object. + +(include pic of stack overflow error and the selected object)

        However, it is legal to make a loop if there is a [delay] object somewhere in it. When [delay] receives a message, it schedules a message for the @@ -1053,9 +1063,12 @@

        2.5.2. Tilde objects and audio connections

        The audio network, that is, the tilde objects and their interconnections, must be non-cyclic. If there are loops at "sort time", you will see an error message on the main Pd window, saying "DSP loop detected (some tilde -objects weren't scheduled)". You can build algorithms with feedback using -nonlocal signal connections as explained in the 2.5.5. -subsection. +objects weren't scheduled)". + +(include pic of error and the selected object) + +

        You can build algorithms with feedback using nonlocal signal connections +as explained in the 2.5.5. subsection.

        Your subpatches can have audio inlets and outlets via the [inlet~] and [outlet~] objects (see 2.8. Subpatches). From 12aabb08736350b04adff1a668ee732a9121b307 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 16:48:46 -0300 Subject: [PATCH 264/450] document File -> Message --- doc/1.manual/x2.htm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 11296ad07..96ad1ad64 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -1006,6 +1006,13 @@

        2.4.4. Message boxes

        receiver "pd" is defined to which you may send messages to start and stop DSP and more. +

        The File menu has a "Message..." entry that works as a message box with +a semicolon. This allows you to type in a message while in run mode. You need to +start the message with the receive symbol (and you can also send messages to "pd" +this way"). + +(include pic of "Message") +

        You can put variables in message boxes as shown below:

        From 753ac2724332aa9f90a057a8cdf10b115a8e79cb Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 16:55:21 -0300 Subject: [PATCH 265/450] document resizing objects in edit mode --- doc/1.manual/x2.htm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 96ad1ad64..bf8435eaf 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -317,6 +317,15 @@

        2.2.1. Edit and run mode

        You can also edit text, create or delete boxes and make or cut connections. More details follow below. + +

        In edit mode, you can also resize some boxes in your patch, namely object boxes, +number/symbol/list boxes, comments and messages. You need to move the cursor to the +right edge of the object and you'll see the cursor become a double sided horozontal +arrow. You can then click and drag horizontally to resize these boxes. IEMguis do not +offer this feature yet and some externals may offer this or other possibilities. + +(include pic of double arrows) +

        If you are predominantly editing a patch, but would like to quickly switch to run mode just to click on something like a message, you can press and hold the Ctrl to temporarily switch to edit mode until you release it. From 629d82c3a023a2cc8eb53fcfaa506ae6fabc10c2 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 20:34:24 -0300 Subject: [PATCH 266/450] revise "Triggerize" subsection --- doc/1.manual/x2.htm | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index bf8435eaf..8b31f4570 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -713,16 +713,24 @@

        2.3.5. (Dis)Connect selection

        2.3.6. Triggerize

        -

        The 'Triggerize' entry in the Edit menu with the Ctrl+T -shortcut was designed to insert a [trigger] object (in its abbreviated form [t]). -When you select a single box that is connected to many inlets of a single or -multiple boxes use "Triggerize" to insert this object, which is briefly described -in 2.4.3. Hot and cold inlets and right to left outlet order. +

        The 'Triggerize' entry in the Edit menu (with the Ctrl+T +shortcut) was designed to insert a [trigger] object (in its abbreviated form [t]) into +your patch. Start by selecting a single box that is connected to many inlets (of one or +more boxes), then use "Triggerize" to insert a [trigger] object after the selected object.

        The [trigger] object is widely used in Pd to control the order of execution -from right to left. 'Triggerize' then creates the [trigger] object taking into -account the order in which the connections were made, where the first connection -starts at the rightmost outlet of [trigger] and continues to the leftmost. +from right to left and is briefly described in 2.4.3. +Hot and cold inlets and right to left outlet order. 'Triggerize' then creates +the [trigger] object taking into account the order in which the connections were made, +where the first connection starts at the rightmost outlet of [trigger] and continues to +the leftmost. + +

        In the example below, a [pack] object is selected and connected to three [s] ([send]) +objects. Triggerize then introduces [t a a a] (short for [trigger anything anything +anything]) with three outlets and the order that the connections from [pack] were made +reflect the order from right to left. You can swap connections with the Shift +key (as described in subsection 2.3.4.) if you need to adjust +the order of connections.

        triggerize object @@ -739,27 +747,24 @@

        2.3.6. Triggerize

        insert dummy

        -

        While the connections of a [trigger] object can be resorted as -explained above, Ctrl+T also -allows you to easily manage its outlets when using it on the selected object. -The result will differ depending on the existing connections and outlets. -If each outlet has a single connection, it will insert an outlet on the left. +

        Triggerize also allows you to create or remove outlets of a selected [trigger] +object. The result depends on the existing connections and outlets. As shown below, +if each outlet has a single connection, it will insert an outlet on the left.

        add 1st outlet

        -If the [trigger] object has more outlets than outgoing connections, the -shortcut will reduce the outlets, removing the unused ones. +Now, if the [trigger] object has more outlets than outgoing connections, +"Triggerize" removes the unused outlets.

        reduce outlets

        -In case there are more connections than outlets, it will add outlets to -distribute all connections to separate ones (following the creation order -of the connections from right to left). This way, you can add connections -in between other connections without lots of resorting. +In case there are more connections than outlets, "Triggerize" adds outlets +to distribute all connections to separate ones (following the creation order +of the connections from right to left).

        distribute connections From f5b56e9e397bb15d5d4897cf53bbb5a99fae1850 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 21:02:33 -0300 Subject: [PATCH 267/450] add a subsection in chapter 2 to document "escaping characters" --- doc/1.manual/index.htm | 3 ++- doc/1.manual/x2.htm | 31 +++++++++++++++++++++++++------ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/doc/1.manual/index.htm b/doc/1.manual/index.htm index 51b93238f..f3fe8cf8f 100644 --- a/doc/1.manual/index.htm +++ b/doc/1.manual/index.htm @@ -43,7 +43,7 @@

        Pd Manual

      • Creating boxes
      • Selecting items and moving them or "tidying them up"
      • Delete, cut, copy and paste boxes -
      • Changing the text +
      • Changing the text of objects, messages and comments
      • Connecting and disconnecting boxes
      • Popup menu for 'Properties', 'Open' and 'Help' @@ -63,6 +63,7 @@

        Pd Manual

      • Depth first message passing
      • Hot and cold inlets and right to left outlet order
      • Message boxes +
      • Escaping characters
      • Audio signals
          diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index 8b31f4570..278632db5 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -436,7 +436,7 @@

          2.2.4. Delete, cut, copy and paste boxes

          it is not possible to copy from a patch and paste into a Pd subprocess instantiated via a [pd~] object. -

          2.2.5. Changing the text

          +

          2.2.5. Changing the text of objects, messages and comments

          Clicking on an unselected object, message or comment box and releasing the click makes the text active, i.e., ready to be text edited (if you select using @@ -450,10 +450,10 @@

          2.2.5. Changing the text

          it (by clicking outside it or using Esc), otherwise you will be selecting text instead of moving the box. -

          The updated text only becomes part of the patch when you deselect the -object. As already mentioned, changing the text in an object box deletes -the old object and creates a new one; so the internal state of the old one is -completely lost. +

          The updated text only becomes part of the patch when you deselect the +object. As already mentioned, changing the text in an object box deletes +the old object and creates a new one; so the internal state of the old one +is completely lost.

          changing text @@ -764,7 +764,7 @@

          2.3.6. Triggerize

          In case there are more connections than outlets, "Triggerize" adds outlets to distribute all connections to separate ones (following the creation order -of the connections from right to left). +of the connections from right to left).2

          distribute connections @@ -813,6 +813,8 @@

          2.4. Messages

          In Pd, boxes intercommunicate by sending messages and/or audio signals. Pd messages are sporadic, like MIDI messages or Music N "Note cards". +The management of messages in Pd corresponds to the "Control" realm, as +opposed to Audio signals, described in the next section.

          2.4.1. Anatomy of a message

          @@ -1039,6 +1041,23 @@

          2.4.4. Message boxes

          on the incoming message; if they are symbols, you may even use them to specify variable message selectors or destinations. +

          2.4.5. Escaping characters

          + +

          The \ (backslash) character is used in Pd to escape special +characters that are handled differently in Pd. Such characters are: +Space, , (comma), ; (semicolon) and +$ (dollar signs). Also, the backslash character itself can be +escaped. + + +

          This way, the "Hi\, how are you?" message in a message box does +not interpret the comma as it normally would, splitting the messagw in two. +Instead, you have a literal comma and a "Hi,". The help file of +message boxes has examples on escaping characters, as well as information +of previously discussed topics. + +

          See also the "2.control.examples" from the documentation folder with more +examples about messags and more.

          2.5. Audio signals

          From e84b2103554c50aac911e6efc45ebad4b417503a Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 21:08:27 -0300 Subject: [PATCH 268/450] typos --- doc/1.manual/x1.htm | 2 +- doc/1.manual/x2.htm | 8 ++++---- doc/1.manual/x3.htm | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/1.manual/x1.htm b/doc/1.manual/x1.htm index b0ca6274d..6218ac7b1 100644 --- a/doc/1.manual/x1.htm +++ b/doc/1.manual/x1.htm @@ -111,7 +111,7 @@

          1.1. Guide to Pd's documentation

        1. The last subfolder in the 'doc' folder includes extra documentation with more details on - specific topics that is reffered in the help files. + specific topics that is referred in the help files.
           Pd/
           ├── doc/
          diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm
          index 278632db5..aa16a7580 100644
          --- a/doc/1.manual/x2.htm
          +++ b/doc/1.manual/x2.htm
          @@ -1052,12 +1052,12 @@ 

          2.4.5. Escaping characters

          This way, the "Hi\, how are you?" message in a message box does not interpret the comma as it normally would, splitting the messagw in two. -Instead, you have a literal comma and a "Hi,". The help file of +Instead, you have a literal comma and a "Hi, symbol". The help file of message boxes has examples on escaping characters, as well as information of previously discussed topics.

          See also the "2.control.examples" from the documentation folder with more -examples about messags and more. +examples about messages and more.

          2.5. Audio signals

          @@ -1473,8 +1473,8 @@

          2.8.1. Abstractions

          The [pdcontrol] object has an alternative strategy for retrieving arguments in an abstraction with the 'args' message, which makes the object output a list -with all argument values. This has the advantage of being able to get a varaible -number of arguments, as well as varying thei atom type. +with all argument values. This has the advantage of being able to get a variable +number of arguments, as well as varying their atom type.

          A [clone] object is provided to automatically create and manage multiple copies of an abstraction. You can use it to make voice banks for polyphonic synthesis, diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index 742f5959a..eca228b07 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -55,7 +55,7 @@

          3.1.1. macOS

          Pd supports macOS from 10.7 and up, but the main download binary for more modern OS versions supports 10.10 or newer. This download in the form of .dmg file; just double click on this disk image so it opens and you can then drag the Pd app where -you want (most likely in the Applictions folder). +you want (most likely in the Applications folder).

          You might get various warnings about Pd trying to open an internet port. This is normal although some system administrators will prevent you from @@ -374,7 +374,7 @@

          3.4. Preferences and startup options

          Pd to instruct it where to find files, what font size to use, and much more. Pd has a main "Preferences" window, which you can select from the Pd menu in macOS or the File menu otherwise. The "Preferences" entry -opens a submenu with "Edit Preferences..." and more. By selcting this entry, +opens a submenu with "Edit Preferences..." and more. By selecting this entry, you open the main preferences dialog with different tabs for: "Path", "Startup", "Audio", "MIDI" and "misc". @@ -589,7 +589,7 @@

          3.4.1. Startup flags

          Font

          The flags offer more font configurations than just "size". Note that macOS has, -by default, a "normal" font weigth, while in Linux and Windows you have "bold" +by default, a "normal" font weight, while in Linux and Windows you have "bold" by default. Use "-font-weight" to change that if you don't like your default setting.

          Path

          From dc6e9b49fd5bc334fe18011cfa01ee4884b6c103 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 21:49:24 -0300 Subject: [PATCH 269/450] I now know at least Linux takes mutiple audio devices --- doc/1.manual/x3.htm | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index eca228b07..7d6542ed0 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -158,8 +158,8 @@

          3.3. Testing and configuring Audio and MIDI

          you may need both to run simultaneously. By default, Pd will try to run both, but if you don't need either input or output, you may find that Pd runs more reliably, or at least more efficiently, with the unused direction -turned off. This may be specified using the "Audio Settings" dialog panel or -startup flags. +turned off. This may be specified using the Audio +Settings dialog panel or Startup flags.

          Depending on your application you will have a more or less stringent latency requirement. Ideally, when any input (audio, MIDI, keyboard, network) is @@ -189,6 +189,7 @@

          3.3. Testing and configuring Audio and MIDI

          ASIO. On Mac the default one is Portaudio and you can also use JACK if you have it installed. + +

          In Linux, if you want to open more than one audio device, hit "use +multiple devices" and you'll be allowed up to 4 input and 4 output devices.

          3.3.2. MIDI settings

          @@ -367,7 +366,6 @@

          3.3.2. MIDI settings

          System exclusive MIDI message input and output are theoretically supported but does not work uniformly across all operating systems.. -

          3.4. Preferences and startup options

          In addition to the Audio and MIDI settings shown above, you can customize From 97ea3644d5f663be705da82cdda2deaae71095c1 Mon Sep 17 00:00:00 2001 From: porres Date: Fri, 12 Apr 2024 22:19:01 -0300 Subject: [PATCH 270/450] Fix and improve Test Audio and MIDI section --- doc/1.manual/x1.htm | 11 +- doc/1.manual/x3.htm | 22 ++- doc/1.manual/x4.htm | 4 +- doc/7.stuff/tools/testtone.pd | 320 +++++++++++++++++----------------- 4 files changed, 182 insertions(+), 175 deletions(-) diff --git a/doc/1.manual/x1.htm b/doc/1.manual/x1.htm index 6218ac7b1..1da938459 100644 --- a/doc/1.manual/x1.htm +++ b/doc/1.manual/x1.htm @@ -35,7 +35,7 @@

          1.1. Guide to Pd's documentation

          The Pd's documentation includes more things besides this HTML Manual. The documentation resources are part of Pd's download and lives inside the "doc" folder of the computer application. -It is also accessible via the "Help Menu". Let's first have a look at the folder structure. In the +It is also accessible via the Help menu. Let's first have a look at the folder structure. In the 'doc' folder you find:

            @@ -183,10 +183,11 @@

            1.3. Other resources

            for people interested in graphics, there is a 3D graphics rendering package, named GEM, based on OpenGL, written by Mark Danks, adapted to Linux by Guenter Geiger, and now maintained by IOhannes zmölnig. You can get -it from: http://gem.iem.at/, via "Find externals" in the -'Help Menu' or package manager of your Linux distribution. Another option is Ofelia, a Pd external -that allows you to use openFrameworks and Lua within Pd for creating audiovisual artwork -or multimedia applications such as games. Get it also via "Find externals" or from +it from: http://gem.iem.at/, via "Find +externals" in the Help Menu or package manager of your Linux distribution. +Another option is Ofelia, a Pd external that allows you to use openFrameworks and +Lua within Pd for creating audiovisual artwork or multimedia applications such as +games. Get it also via "Find externals" or from https://github.com/cuinjune/Ofelia.
    diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index 7d6542ed0..f26d57c54 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -115,8 +115,8 @@

    3.2. Running Pd via the command line

    3.3. Testing and configuring Audio and MIDI

    -

    To test audio and MIDI, start Pd and select "Test Audio and MIDI..." from -the Media menu. You should see a window like this: +

    To test audio and MIDI, start Pd and select "Test Audio and MIDI..." +from the Media menu. You should see a window like this:

    test audio and midi patch @@ -128,7 +128,8 @@

    3.3. Testing and configuring Audio and MIDI

    channels are turned on so that when you should get output on them when you turn the test sound on. If you have fewer than eight output channels open, the extra channels aren't played; and if you have more, you need to use the -radio button to test them. +radio button to test them. Note that the "AUDIO OUTPUT" toggles must be on +(which they are by default) for you to hear anything.

    If there's anything wrong, the most likely outcome is that you will hear nothing at all. This could be for any of at least three reasons: Pd might @@ -137,16 +138,13 @@

    3.3. Testing and configuring Audio and MIDI

    output.

    The "INPUT MONITOR" provides VU Meters and number boxes to indicated the -levels of incoming audio, in dB, with 100 being maximum. (Incoming signals may -clip at RMS levels below 100; for instance, a sinusoid clips at about 97 dB.) +levels of incoming audio, in dB, with 100 being maximum. Incoming signals may +clip at RMS levels below 100 (for instance, a sinusoid clips at about 97 dB). Any DC present in the input (such as you get with cheap audio hardware) will show up as level unless you turn on the "input highpass" toggle -at right; then the DC component is filtered out before metering. - -

    To test the quality of audio input and output, the "AUDIO OUTPUT" toggles -must be (which they are by default) and causes the inputs to be played to the -outputs at unit gain. You should hear a faithful, non-distorted copy of whatever -is sent through the patch. +at right; then the DC component is filtered out before metering. In order +to hear and monitor the input you need to set the dB level in the "Input +Monitor" number box. Whatch out for feedbacks if you have microphone inputs.

    It is easy to get two copies of Pd running by accident; on most machines only one at a time may be inputting and outputting sound. (Some copy of Pd @@ -179,7 +177,7 @@

    3.3. Testing and configuring Audio and MIDI

    performance monitor program; and for the third, try starting Pd up with ADCs disabled. -

    In addition to the "test audio and MIDI" patch, the "Media" menu +

    In addition to the "Test Audio and MIDI" patch, the Media menu contains items for controlling audio and MIDI settings. The first two items, "Audio on" and "Audio off", open or close the audio devices and start or stop Pd's audio computation. diff --git a/doc/1.manual/x4.htm b/doc/1.manual/x4.htm index 337a68808..e2c9f1cb8 100644 --- a/doc/1.manual/x4.htm +++ b/doc/1.manual/x4.htm @@ -53,7 +53,7 @@

    4.1.1 Vanilla objects, internals & externals

    distribution, that you need to download and install them properly so they can be loaded into Pd patches. -

    To get a full list of all objects in Pd Vanilla, go to the Help menu and +

    To get a full list of all objects in Pd Vanilla, go to the Help menu and then select List of Objects, or alternatively right click on an empty spot of a patch’s window and select “help” - this loads the help-intro.pd file (see below). @@ -63,7 +63,7 @@

    4.1.1 Vanilla objects, internals & externals

    The set of externals that come with Pd are available in the ‘extra’ library and is located in a folder named “extra” inside the Pd application. These appear at the very end of the “help-intro.pd” and can also be viewed in the -Help Browser menu (Help => Browser). See figure below, which shows how +"Browser" menu entry in the Help menu. See figure below, which shows how the browser looks in a fresh install of Pd and lists the objects in the extra folder. diff --git a/doc/7.stuff/tools/testtone.pd b/doc/7.stuff/tools/testtone.pd index b4de64ad5..b1621facc 100644 --- a/doc/7.stuff/tools/testtone.pd +++ b/doc/7.stuff/tools/testtone.pd @@ -1,58 +1,58 @@ -#N canvas 399 65 678 622 12; -#X floatatom 102 558 5 0 0 0 - - - 0; -#X obj 83 502 notein; -#X obj 42 531 stripnote; -#X floatatom 42 558 4 0 0 0 - - - 0; -#X floatatom 185 531 3 0 0 0 - - - 0; -#X floatatom 155 531 3 0 0 0 - - - 0; -#X obj 169 502 ctlin; -#X obj 191 420 tgl 20 0 \$0-tone-ch1 \$0-tone-ch1 1 5 30 0 12 #dfdfdf #000000 #000000 0 1; -#X obj 211 420 tgl 20 0 \$0-tone-ch2 \$0-tone-ch2 2 5 30 0 12 #dfdfdf #000000 #000000 0 1; -#X obj 429 509 tgl 20 0 empty empty empty 20 8 0 8 #dfdfdf #000000 #000000 0 1; -#X obj 382 339 tgl 22 0 \$0-tone-hipass \$0-tone-hipass-set empty 23 8 0 12 #dfdfdf #000000 #000000 0 1; -#X obj 273 420 tgl 20 0 \$0-tone-ch3 \$0-tone-ch3 3 5 30 0 12 #dfdfdf #000000 #000000 0 1; -#X obj 293 420 tgl 20 0 \$0-tone-ch4 \$0-tone-ch4 4 5 30 0 12 #dfdfdf #000000 #000000 0 1; -#X obj 355 420 tgl 20 0 \$0-tone-ch5 \$0-tone-ch5 5 5 30 0 12 #dfdfdf #000000 #000000 0 1; -#X obj 375 420 tgl 20 0 \$0-tone-ch6 \$0-tone-ch6 6 5 30 0 12 #dfdfdf #000000 #000000 0 1; -#X obj 367 389 bng 19 250 50 0 \$0-tone-all \$0-tone-all empty 21 9 0 12 #dfdfdf #000000 #000000; -#X obj 419 389 bng 19 250 50 0 \$0-tone-none \$0-tone-none empty 21 9 0 12 #dfdfdf #000000 #000000; -#X obj 31 355 vradio 19 1 0 2 \$0-tone-type \$0-tone-type-set empty 0 -6 0 8 #dfdfdf #000000 #000000 0; -#X obj 31 245 vradio 19 1 0 3 \$0-tone-radio \$0-tone-radio-set empty 0 -6 0 8 #dfdfdf #000000 #000000 0; -#X obj 437 420 tgl 20 0 \$0-tone-ch7 \$0-tone-ch7 7 5 30 0 12 #dfdfdf #000000 #000000 0 1; -#X obj 457 420 tgl 20 0 \$0-tone-ch8 \$0-tone-ch8 8 5 30 0 12 #dfdfdf #000000 #000000 0 1; -#X floatatom 30 209 4 0 100 1 - \$0-tone-level-set \$0-tone-level 16; -#X floatatom 68 406 5 0 136 1 - \$0-tone-pitch-set \$0-tone-pitch 0; -#X floatatom 68 437 6 0 20000 1 - \$0-tone-hz-set \$0-tone-hz 0; -#X obj 42 584 bng 20 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 155 558 bng 20 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; -#X obj 548 221 vradio 19 1 0 8 \$0-inch-sel \$0-inch-sel empty 0 -8 0 10 #dfdfdf #000000 #000000 0; -#X obj 574 221 vradio 19 1 0 8 \$0-outch-sel \$0-outch-sel empty 0 -8 0 10 #dfdfdf #000000 #000000 0; -#X floatatom 187 339 4 0 120 0 - \$0-input-monitor-gain-set \$0-input-monitor-gain 16; -#X text 440 390 NONE; -#X text 388 390 ALL; -#X text 54 355 Noise; -#X text 595 222 01-08; -#X text 546 185 Channel assign:, f 7; -#X text 548 376 In; -#X text 572 376 Out; -#X text 24 415 Pitch; -#X text 31 403 MIDI; -#X text 24 438 Hertz; -#X obj 173 179 vu 19 120 \$0-vu1 empty -1 -10 0 12 #404040 #000000 0 0; -#X obj 194 179 vu 19 120 \$0-vu2 empty -1 -10 0 10 #404040 #000000 1 0; -#X obj 255 179 vu 19 120 \$0-vu3 empty -1 -10 0 12 #404040 #000000 0 0; -#X obj 276 179 vu 19 120 \$0-vu4 empty -1 -10 0 10 #404040 #000000 1 0; -#X obj 337 179 vu 19 120 \$0-vu5 empty -1 -10 0 12 #404040 #000000 0 0; -#X obj 358 179 vu 19 120 \$0-vu6 empty -1 -10 0 10 #404040 #000000 1 0; -#X obj 419 179 vu 19 120 \$0-vu7 empty -1 -10 0 12 #404040 #000000 0 0; -#X obj 440 179 vu 19 120 \$0-vu8 empty -1 -10 0 10 #404040 #000000 1 0; -#X text 495 429 |; -#X text 151 430 |; -#X text 495 142 |; -#X text 495 154 |; -#X text 151 142 |; -#X text 151 154 |; -#X text 477 389 ---; +#N canvas 407 55 693 654 12; +#X floatatom 102 595 5 0 0 0 - - - 0; +#X obj 83 522 notein; +#X obj 42 551 stripnote; +#X floatatom 42 595 4 0 0 0 - - - 0; +#X floatatom 191 551 3 0 0 0 - - - 0; +#X floatatom 161 551 3 0 0 0 - - - 0; +#X obj 175 522 ctlin; +#X obj 191 440 tgl 20 0 \$0-tone-ch1 \$0-tone-ch1 1 5 30 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 211 440 tgl 20 0 \$0-tone-ch2 \$0-tone-ch2 2 5 30 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 448 530 tgl 20 0 empty empty empty 20 8 0 8 #dfdfdf #000000 #000000 0 1; +#X obj 382 359 tgl 22 0 \$0-tone-hipass \$0-tone-hipass-set empty 23 8 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 273 440 tgl 20 0 \$0-tone-ch3 \$0-tone-ch3 3 5 30 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 293 440 tgl 20 0 \$0-tone-ch4 \$0-tone-ch4 4 5 30 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 355 440 tgl 20 0 \$0-tone-ch5 \$0-tone-ch5 5 5 30 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 375 440 tgl 20 0 \$0-tone-ch6 \$0-tone-ch6 6 5 30 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 367 409 bng 19 250 50 0 \$0-tone-all \$0-tone-all empty 21 9 0 12 #dfdfdf #000000 #000000; +#X obj 419 409 bng 19 250 50 0 \$0-tone-none \$0-tone-none empty 21 9 0 12 #dfdfdf #000000 #000000; +#X obj 31 375 vradio 19 1 0 2 \$0-tone-type \$0-tone-type-set empty 0 -6 0 8 #dfdfdf #000000 #000000 0; +#X obj 31 265 vradio 19 1 0 3 \$0-tone-radio \$0-tone-radio-set empty 0 -6 0 8 #dfdfdf #000000 #000000 0; +#X obj 437 440 tgl 20 0 \$0-tone-ch7 \$0-tone-ch7 7 5 30 0 12 #dfdfdf #000000 #000000 0 1; +#X obj 457 440 tgl 20 0 \$0-tone-ch8 \$0-tone-ch8 8 5 30 0 12 #dfdfdf #000000 #000000 0 1; +#X floatatom 30 229 4 0 100 1 - \$0-tone-level-set \$0-tone-level 16; +#X floatatom 68 426 5 0 136 1 - \$0-tone-pitch-set \$0-tone-pitch 0; +#X floatatom 68 457 6 0 20000 1 - \$0-tone-hz-set \$0-tone-hz 0; +#X obj 42 621 bng 20 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 161 578 bng 20 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000; +#X obj 548 241 vradio 19 1 0 8 \$0-inch-sel \$0-inch-sel empty 0 -8 0 10 #dfdfdf #000000 #000000 0; +#X obj 574 241 vradio 19 1 0 8 \$0-outch-sel \$0-outch-sel empty 0 -8 0 10 #dfdfdf #000000 #000000 0; +#X floatatom 187 359 4 0 120 0 - \$0-input-monitor-gain-set \$0-input-monitor-gain 16; +#X text 440 410 NONE; +#X text 388 410 ALL; +#X text 54 375 Noise; +#X text 595 242 01-08; +#X text 546 205 Channel assign:, f 7; +#X text 548 396 In; +#X text 572 396 Out; +#X text 24 435 Pitch; +#X text 31 423 MIDI; +#X text 24 458 Hertz; +#X obj 173 199 vu 19 120 \$0-vu1 empty -1 -10 0 12 #404040 #000000 0 0; +#X obj 194 199 vu 19 120 \$0-vu2 empty -1 -10 0 10 #404040 #000000 1 0; +#X obj 255 199 vu 19 120 \$0-vu3 empty -1 -10 0 12 #404040 #000000 0 0; +#X obj 276 199 vu 19 120 \$0-vu4 empty -1 -10 0 10 #404040 #000000 1 0; +#X obj 337 199 vu 19 120 \$0-vu5 empty -1 -10 0 12 #404040 #000000 0 0; +#X obj 358 199 vu 19 120 \$0-vu6 empty -1 -10 0 10 #404040 #000000 1 0; +#X obj 419 199 vu 19 120 \$0-vu7 empty -1 -10 0 12 #404040 #000000 0 0; +#X obj 440 199 vu 19 120 \$0-vu8 empty -1 -10 0 10 #404040 #000000 1 0; +#X text 495 449 |; +#X text 151 450 |; +#X text 495 162 |; +#X text 495 174 |; +#X text 151 162 |; +#X text 151 174 |; +#X text 477 409 ---; #N canvas 670 117 256 227 guts 0; #N canvas 762 44 420 641 tone-generator 0; #X obj 52 195 osc~; @@ -751,24 +751,24 @@ #X connect 19 0 14 0; #X connect 20 0 9 0; #X restore 94 164 pd +tests; -#X restore 580 420 pd guts; -#X text 154 389 ---- AUDIO OUTPUT ON/OFF ----; -#X text 495 165 |; -#X text 495 177 |; -#X text 151 165 |; -#X text 151 177 |; -#X text 495 189 |; -#X text 151 189 |; -#X text 495 417 |; -#X text 151 418 |; -#X text 495 405 |; -#X text 151 406 |; -#X text 495 393 |; -#X text 151 394 |; -#X obj 232 502 midiin; -#X text 69 585 note on; -#X text 180 561 control in; -#X floatatom 232 530 4 0 0 0 - - - 0; +#X restore 580 440 pd guts; +#X text 154 409 ---- AUDIO OUTPUT ON/OFF ----; +#X text 495 185 |; +#X text 495 197 |; +#X text 151 185 |; +#X text 151 197 |; +#X text 495 209 |; +#X text 151 209 |; +#X text 495 437 |; +#X text 151 438 |; +#X text 495 425 |; +#X text 151 426 |; +#X text 495 413 |; +#X text 151 414 |; +#X obj 258 522 midiin; +#X text 69 622 note on; +#X text 162 602 control in; +#X floatatom 258 550 4 0 0 0 - - - 0; #N canvas 587 106 553 387 note-out 0; #X obj 81 111 inlet; #X obj 271 311 noteout; @@ -791,56 +791,56 @@ #X connect 9 0 7 2; #X connect 10 0 6 0; #X connect 11 0 7 0; -#X restore 429 536 pd note-out; -#X text 353 502 Generate random note out messages, f 9; -#X text 453 509 ON/OFF; -#X obj 530 583 ctlout; -#X text 562 504 value; -#X text 595 557 channel; -#X floatatom 549 530 4 0 127 0 - - - 0; -#X floatatom 530 503 4 0 127 0 - - - 0; -#X floatatom 569 556 0 1 64 0 - - - 0; -#X text 580 531 control #; -#X text 352 583 control out messages -->; +#X restore 448 557 pd note-out; +#X text 372 523 Generate random note out messages, f 9; +#X text 472 530 ON/OFF; +#X obj 550 613 ctlout; +#X text 582 534 value; +#X text 615 587 channel; +#X floatatom 569 560 4 0 127 0 - - - 0; +#X floatatom 550 533 4 0 127 0 - - - 0; +#X floatatom 589 586 0 1 64 0 - - - 0; +#X text 600 561 control #; +#X text 372 613 control out messages -->; #X text 91 10 Welcome to Pd ("Pure Data"). Pd is Free software under the BSD license (see LICENSE.txt in the distribution for details). For help \, please go to the "Help" menu., f 74; -#X text 176 157 1; -#X text 196 157 2; -#X text 259 157 3; -#X text 279 157 4; -#X text 341 157 5; -#X text 361 157 6; -#X text 423 157 7; -#X text 443 157 8; -#X text 495 201 |; -#X text 495 213 |; -#X text 495 225 |; -#X text 151 201 |; -#X text 151 213 |; -#X text 151 225 |; -#X text 495 237 |; -#X text 495 248 |; -#X text 495 260 |; -#X text 495 272 |; -#X text 495 284 |; -#X text 495 296 |; -#X text 495 308 |; -#X text 151 237 |; -#X text 151 248 |; -#X text 151 260 |; -#X text 151 272 |; -#X text 151 284 |; -#X text 151 296 |; -#X text 151 308 |; -#X text 495 320 |; -#X text 495 332 |; -#X text 495 344 |; -#X text 495 356 |; -#X text 495 368 |; -#X text 151 320 |; -#X text 151 332 |; -#X text 151 344 |; -#X text 151 356 |; -#X text 151 368 |; +#X text 176 177 1; +#X text 196 177 2; +#X text 259 177 3; +#X text 279 177 4; +#X text 341 177 5; +#X text 361 177 6; +#X text 423 177 7; +#X text 443 177 8; +#X text 495 221 |; +#X text 495 233 |; +#X text 495 245 |; +#X text 151 221 |; +#X text 151 233 |; +#X text 151 245 |; +#X text 495 257 |; +#X text 495 268 |; +#X text 495 280 |; +#X text 495 292 |; +#X text 495 304 |; +#X text 495 316 |; +#X text 495 328 |; +#X text 151 257 |; +#X text 151 268 |; +#X text 151 280 |; +#X text 151 292 |; +#X text 151 304 |; +#X text 151 316 |; +#X text 151 328 |; +#X text 495 340 |; +#X text 495 352 |; +#X text 495 364 |; +#X text 495 376 |; +#X text 495 388 |; +#X text 151 340 |; +#X text 151 352 |; +#X text 151 364 |; +#X text 151 376 |; +#X text 151 388 |; #N canvas 369 146 925 501 instructions 0; #X text 47 435 A toggle sets a highpass filter for the input channels with a cuttof frequency of 5Hz. This is useful to filter DC offsets., f 61; #X text 508 23 Audio output:; @@ -857,50 +857,58 @@ #X text 46 130 To the top left you can test the output with a test sound by adjusting the "test gain" level in dB. Do this by setting a value from 0-100 in the number box or by setting preset levels in the radio button below: 80 dB \, 60 dB of Off (0 dB). A VU meter display the output level of the test sound., f 61; #X text 47 322 The VU meters show us the audio input level of each input channel \, with number boxes below showing us the RMS dB level in the range from 0 to 100 dB as given by the [env~] object., f 61; #X text 531 405 For testing MIDI output \, there's a subpatch that generates random MIDI-Note messages. Open it up to check it out. There's also an object that sends MICI CC messages., f 50; -#X restore 529 146 pd instructions; -#X floatatom 170 305 3 0 0 0 - \$0-ch1 \$0-ch1-set 0; -#X floatatom 193 305 3 0 0 0 - \$0-ch2 \$0-ch2-set 0; -#X floatatom 252 305 3 0 0 0 - \$0-ch3 \$0-ch3-set 0; -#X floatatom 275 305 3 0 0 0 - \$0-ch4 \$0-ch4-set 0; -#X floatatom 334 305 3 0 0 0 - \$0-ch5 \$0-ch5-set 0; -#X floatatom 357 305 3 0 0 0 - \$0-ch6 \$0-ch6-set 0; -#X floatatom 416 305 3 0 0 0 - \$0-ch7 \$0-ch7-set 0; -#X floatatom 439 305 3 0 0 0 - \$0-ch8 \$0-ch8-set 0; -#X text 236 341 <-- Input monitor gain (0-120 dB), f 17; -#X text 408 341 <-- Input highpass, f 9; -#X text 263 531 (raw); -#X text 24 162 TEST GAIN (dB); -#X text 52 245 80; -#X text 52 265 60; -#X obj 111 192 vu 22 120 \$0-test-vu empty -1 -10 0 12 #404040 #000000 0 0; -#X text 52 285 Off; -#X text 595 241 09-16; -#X text 595 260 17-24; -#X text 595 279 25-32; -#X text 595 297 33-40; -#X text 595 317 41-48; -#X text 595 336 49-56; -#X text 595 355 57-64; -#X text 91 61 This window is used to test audio and MIDI connections. You can go to "Preferences -> Edit Preferences" to configure "Audio" and "MIDI" settings to choose your Input/output devices. For more details on how this patch works \, see [pd instructions]., f 74; -#X text 29 190 0-100; -#X text 0 137 --- OUTPUT MONITOR ---; -#X text 495 441 |; -#X text 151 441 |; -#X text 341 467 --------------- MIDI OUTPUT TEST --------------; -#X text 13 467 ---------- MIDI INPUT MONITOR -----------; -#X text 155 137 ----------------- INPUT MONITOR -----------------; -#X text 53 376 Pure Tone; -#X text 36 328 TEST SOUND; +#X restore 529 166 pd instructions; +#X floatatom 170 325 3 0 0 0 - \$0-ch1 \$0-ch1-set 0; +#X floatatom 193 325 3 0 0 0 - \$0-ch2 \$0-ch2-set 0; +#X floatatom 252 325 3 0 0 0 - \$0-ch3 \$0-ch3-set 0; +#X floatatom 275 325 3 0 0 0 - \$0-ch4 \$0-ch4-set 0; +#X floatatom 334 325 3 0 0 0 - \$0-ch5 \$0-ch5-set 0; +#X floatatom 357 325 3 0 0 0 - \$0-ch6 \$0-ch6-set 0; +#X floatatom 416 325 3 0 0 0 - \$0-ch7 \$0-ch7-set 0; +#X floatatom 439 325 3 0 0 0 - \$0-ch8 \$0-ch8-set 0; +#X text 236 361 <-- Input monitor gain (0-120 dB), f 17; +#X text 408 361 <-- Input highpass, f 9; +#X text 252 571 (raw); +#X text 24 182 TEST GAIN (dB); +#X text 52 265 80; +#X text 52 285 60; +#X obj 111 212 vu 22 120 \$0-test-vu empty -1 -10 0 12 #404040 #000000 0 0; +#X text 52 305 Off; +#X text 595 261 09-16; +#X text 595 280 17-24; +#X text 595 299 25-32; +#X text 595 317 33-40; +#X text 595 337 41-48; +#X text 595 356 49-56; +#X text 595 375 57-64; +#X text 29 210 0-100; +#X text 0 157 --- OUTPUT MONITOR ---; +#X text 495 461 |; +#X text 151 461 |; +#X text 155 157 ----------------- INPUT MONITOR -----------------; +#X text 53 396 Pure Tone; +#X text 36 348 TEST SOUND; +#X text 91 61 This window is used to test audio and MIDI connections. You can go to "Preferences -> Edit Preferences" to configure "Audio" and "MIDI" settings to choose your Input/output devices. For more details on how this patch works \, see [pd instructions]. Check also the Pd Manual chapter 3 for info on Audio and MIDI Settings and configuration., f 74; +#X floatatom 122 549 3 0 0 0 - - - 0; +#X floatatom 297 550 3 0 0 0 - - - 0; +#X text 295 571 port; +#X floatatom 221 551 3 0 0 0 - - - 0; +#X text 122 568 ch; +#X text 3 487 -------------- MIDI INPUT MONITOR --------------; +#X text 351 487 -------------- MIDI OUTPUT TEST --------------; #X connect 1 0 2 0; #X connect 1 1 2 1; +#X connect 1 2 154 0; #X connect 2 0 3 0; #X connect 2 1 0 0; #X connect 3 0 24 0; #X connect 5 0 25 0; #X connect 6 0 5 0; #X connect 6 1 4 0; +#X connect 6 2 157 0; #X connect 9 0 72 0; #X connect 68 0 71 0; +#X connect 68 1 155 0; #X connect 78 0 75 1; #X connect 79 0 75 0; #X connect 80 0 75 2; From 0cc7d2cfb1a8be147bb19c0dd753d4ba1759417d Mon Sep 17 00:00:00 2001 From: porres Date: Sat, 13 Apr 2024 01:53:44 -0300 Subject: [PATCH 271/450] add captions for all pics --- doc/1.manual/css/pdmanual.css | 9 + doc/1.manual/x2.htm | 448 +++++++++++++++++++++------------- doc/1.manual/x3.htm | 16 +- doc/1.manual/x4.htm | 46 ++-- doc/1.manual/x6.htm | 100 +++++--- 5 files changed, 390 insertions(+), 229 deletions(-) diff --git a/doc/1.manual/css/pdmanual.css b/doc/1.manual/css/pdmanual.css index 95c17ecc7..c22dbb06b 100644 --- a/doc/1.manual/css/pdmanual.css +++ b/doc/1.manual/css/pdmanual.css @@ -25,6 +25,15 @@ ol>li:before { counter-increment: item; } +figure { + padding-bottom: 2em; +} + +figcaption{ + font-size: 13.7pt; + padding-top: 0.5em; +} + H1 { font-size: 32.7pt; text-align: center; diff --git a/doc/1.manual/x2.htm b/doc/1.manual/x2.htm index aa16a7580..a084be250 100644 --- a/doc/1.manual/x2.htm +++ b/doc/1.manual/x2.htm @@ -58,9 +58,10 @@

    2.1.1. The main window, canvases, and printout

    you'll see a separate window that corresponds to it, which is known in Pd as a "canvas", and also referred to as "patch". The main Pd window which looks like this: -

    - pd window -

    +
    +pd window +
    The main Pd window (a.k.a. Console window)
    +

    At the top, you'll see the menu entries: File, Edit, Put, Find, Media, Window and Help (on Macs, this is shown @@ -80,9 +81,11 @@

    2.1.1. The main window, canvases, and printout

    audio level if you select "Test Audio and MIDI" and make other Audio and MIDI tests (read more about this in 3.3. Testing and configuring Audio and MIDI). -

    - media menu -

    +
    +media menu +
    The Media menu
    +
    +

    The lower part of the Pd window is a console area for printout from the output of boxes in patches and for messages from Pd itself, which can be several things, mostly @@ -97,9 +100,10 @@

    2.1.1. The main window, canvases, and printout

    using the 'Font' dialog entry in the Edit menu as shown below. Make your adjustments if you are having trouble reading on HiDPI screens. -

    - edit menu -

    +
    +edit menu +
    The Edit menu
    +
    (include pic of font entry!!!) @@ -129,9 +133,11 @@

    2.1.1. The main window, canvases, and printout

    You can create and open patches via the File menu, where you can also close and save them (note the handy shortcuts). -

    - file menu -

    +
    +file menu +
    The File menu
    +
    +

    On PCs, this menu shows the Ctrl+Q entry to quit Pd, which prompts you to confirm the action (on Macs, this is listed in the Pd menu). To quit @@ -139,9 +145,10 @@

    2.1.1. The main window, canvases, and printout

    Here is a simple Pd patch: -

    - simple patch -

    +
    +simple patch +
    A simple patch
    +

    There are four text boxes in this patch: a number box (showing zero), an object box showing "print", plus two "comments" (which are simply commentaries @@ -157,9 +164,10 @@

    2.1.2. Object boxes

    object box from the Put menu. When you insert a new object box, it is empty and presented with a dashed border before creation. -

    - dashed box -

    +
    +dashed box +
    An uncreated object box
    +

    You only create a particular object after you entered text into the object box. The text consists of atoms, which are separated by spaces. @@ -167,9 +175,10 @@

    2.1.2. Object boxes

    will create, while the subsequent atoms, known as creation arguments, instruct Pd how to initialize the object. For instance, you can type "+ 13". -

    - object box -

    +
    +object box +
    A created object box
    +

    Here, the "+" specifies the class of the object. In this case the object will carry out additions, and the "13" initializes the value to add. @@ -192,11 +201,13 @@

    2.1.2. Object boxes

    the number and arrangement of inlets and outlets can vary based on the creation arguments. -

    Here is an example of a simple MIDI synthesizer: +

    Here is an example of a simple synthesizer that takes a MIDI input and +synthesizes a pure tone: -

    - simple MIDI synthesizer -

    +
    +simple MIDI synthesizer +
    A simple MIDI synthesizer
    +

    This patch mixes control objects ([notein], [stripnote], and [ftom]) with tilde objects [osc~], [*~], and [dac~] and these are the two types of @@ -245,9 +256,10 @@

    2.1.3. Message and GUI boxes

    a click on the message box sends the message "21" to an object box, which adds 13 to it. -

    - [message( --> [object] -> [number] -

    +
    +Different box shapes +
    Different box shapes
    +

    The third box here is a GUI ("graphical user interface") box. Pd has three basic GUI boxes. In addition to number boxes (as in this example), there are @@ -298,9 +310,10 @@

    2.2.1. Edit and run mode

    In order to go into edit mode, you need to select the 'Edit Mode' entry from the Edit menu to activate and check it on. -

    - edit mode -

    +
    +edit mode +
    Selecting edit mode from the Edit menu
    +

    When you are in edit mode, the patch actually runs in the same way as in run mode, processing control data and sound, but you're able to edit the patch while it runs. @@ -341,9 +354,10 @@

    2.2.2. Creating boxes

    'box' visually). You can create these boxes using the Put menu. Also note the handy shortcuts to create each item specifically. -

    - put menu -

    +
    +put menu +
    The Put menu
    +

    Note that most of these are individual GUI (graphical user interface) boxes. Besides the three basic GUI boxes (number, symbol andlists), there's another group @@ -406,9 +420,10 @@

    2.2.3. Selecting items and moving them or "tidying them up" are also possible, but aligning horizontally and vertically separately tends to yield better results. -

    - tidy up -

    +
    +tidy up +
    Tidying up (alligning) vertically
    +

    2.2.4. Delete, cut, copy and paste boxes

    @@ -455,9 +470,10 @@

    2.2.5. Changing the text of objects, messages and comments - changing text -

    +
    +changing text +
    Editing text in an object box
    +

    You can also use the copy, cut, and paste commands for the selected text. The text selection functionality for cut/copy/paste is integrated with the operating @@ -477,9 +493,10 @@

    2.2.6. Connecting and disconnecting boxes

    anywhere within the target box and the connection will be made to the nearest inlet. -

    - connecting boxes -

    +
    +connecting boxes +
    Connecting boxes via click and drag
    +

    If you move the mouse cursor over a patch cord, you'll see it takes the shape of an "X" to denote you can select it and delete it. Click on the connection @@ -487,9 +504,10 @@

    2.2.6. Connecting and disconnecting boxes

    it. You can't just select patch cords with click and drag for a rectangular area and you can only select a single connection by clicking on it. -

    - disconnecting boxes -

    +
    +disconnecting boxes +
    Selecting a patch cord connection to delete it
    +

    2.2.7. Popup menu for 'Properties', 'Open' and 'Help'

    @@ -528,26 +546,29 @@

    2.3.1. Tab navigation

    press Shift+Tab to navigate in reverse order, moving from the most recently created box back towards the first created ones. -

    - tab navigation boxes -

    +
    +tab navigation boxes +
    Navigating through objects with Tab
    +

    Using Tab also works in a similar way for patch cords if you have one selected. You can move from first to last with Tab and from last to first with Shift+Tab. -

    - tab navigation cords -

    +
    +tab navigation cords +
    Navigating through patch cords with Tab
    +

    If you're creating a connection by clicking on an outlet and dragging a patch cord, you can also use Tab to cycle through outlets. The navigation order is left to right and it also cycles back. Pressing Shift+Tab navigates from right to left. -

    - tab navigation iolets -

    +
    +tab navigation outlets +
    Navigating through outlets with Tab
    +

    In Linux and Windows you can also cycle between inlets. This is currently not possible on macOS. When dragging a connection into an inlet area, without @@ -572,9 +593,11 @@

    2.3.2. Autopatching

    created box, since when you autopatch for the next one, the object or message box gets deselected and therefore created. -

    - autopatch objects -

    +
    +autopatch objects +
    Autopatching with shortcuts from the Put menu
    +
    +

    You can also autopatch into a newly created subpatch (see 2.8. Subpatches). By creating an object box and typing [pd], as soon as you @@ -582,9 +605,11 @@

    2.3.2. Autopatching

    inlet ([inlet]) if the object above is a control object, or a signal inlet ([inlet~]) if it is a tilde object instead. -

    - autopatching subpatches -

    +
    +autopatching subpatches +
    Creating subpatches with autopatching
    +
    +

    2.3.3. Duplicate connections

    @@ -592,18 +617,20 @@

    2.3.3. Duplicate connections

    outlet and inlet for connections, you can use Ctrl+D to duplicate and create more connections. -

    - duplicate connections -

    +
    +duplicate connections +
    Duplicate connections
    +

    2.3.4. Managing connections with the shift key

    You can swap connections if you selected a connection and use Shift+Click on another one. -

    - swap connections -

    +
    +swap connections +
    Swap connections
    +

    You can "fan out" connections when no boxes are selected. You can start creating a connection by clicking an outlet and dragging a cord @@ -612,18 +639,20 @@

    2.3.4. Managing connections with the shift key

    another connection from the outlet for you to drag somewhere else and connect the same outlet to to multiple inlets sequentially. -

    +

    drag fan out -

    +
    Faning out with dragging
    +

    Also for fanning out, if you have a group of target boxes that are selected, you can drag a cord from an outlet of an unselected box and press Shift to create a connection into the same inlet number of the selected boxes (which do not need to be of the same type or class). -

    +

    select fan out -

    +
    Faning out with selection
    +

    You can create a connection from the same outlet number of multiple boxes to a single inlet. If you have a selection of source boxes, you can drag a cord from @@ -631,17 +660,19 @@

    2.3.4. Managing connections with the shift key

    connections from the same outlet number of the selected boxes (which do not need to be of the same type or class). -

    +

    select fan in -

    +
    Faning in with selection
    +

    You can connect multiple outlets and inlets of 2 boxes if you have 2 selected boxes. Start creating a connection and click Shift at completion. This creates all possible connections starting from the chosen outlet and inlet. -

    - multiple connections -

    +
    +multiple connections +
    Multiple connections between 2 objects
    +

    You can connect outlets of multiple boxes into multiple inlets of one box. If there's a selected group of boxes, you start creating a connection into an @@ -650,9 +681,10 @@

    2.3.4. Managing connections with the shift key

    not need to be of the same type or class) into separate inlets, starting from the chosen inlet. -

    +

    many to one -

    +
    Multiple connections between many to one
    +

    You can spread multiple outlets of one box into same inlets of other boxes. Similarly to the scenario above, you can start dragging from one outlet of a @@ -661,10 +693,10 @@

    2.3.4. Managing connections with the shift key

    made from the outlets of the source box to the same inlet numbers of the target boxes. -

    -  one to many -

    - +
    + one to many +
    Multiple connections between one to many
    +

    2.3.5. (Dis)Connect selection

    @@ -672,25 +704,30 @@

    2.3.5. (Dis)Connect selection

    Ctrl+K. It allows you to connect and disconnect selected boxes in different ways. -

    - ctrl+k -

    +
    +ctrl+k +
    The "(Dis)Connect selection" entry from the Edit menu
    +

    For 2 selected boxes you can use Ctrl+K to connect them. Repeat using Ctrl+K to make multiple connections from possible remaining outlets to inlets. -

    +

    repeat ctrl+k -

    +
    repeat ctrl+k
    +
    +

    For 2 selected tilde objects, if the origin object has a single outlet and the target object has many inlets, you can repeatedly use Ctrl+K to fan out and connect the same outlet to all inlets. -

    +

    fan out audio -

    +
    fan out audio
    +
    +

    For last, you can include or bypass a box into or from a connection (being it any connection from any outlet into any inlet). To include a box, @@ -700,16 +737,18 @@

    2.3.5. (Dis)Connect selection

    boxes with a connection between 2 of them and then use Shift+Click to include the third one in the connection. -

    +

    insert box -

    +
    insert box
    +

    To bypass a box, you can select 3 boxes connected in a row and use Ctrl+K to bypass and remove the middle box from the connection. -

    +

    exclude box -

    +
    exclude box
    +

    2.3.6. Triggerize

    @@ -732,9 +771,10 @@

    2.3.6. Triggerize

    key (as described in subsection 2.3.4.) if you need to adjust the order of connections. -

    +

    triggerize object -

    +
    triggerize object
    +

    Additionally, the 'Triggerize' option can be used to insert a dummy object. To do so, select a connection and use Ctrl+T. For a control @@ -743,34 +783,37 @@

    2.3.6. Triggerize

    connection, a [pd nop~] subpatch is created, also with the text selected for you to replace for a new object. -

    +

    insert dummy -

    +
    insert dummy
    +

    Triggerize also allows you to create or remove outlets of a selected [trigger] object. The result depends on the existing connections and outlets. As shown below, if each outlet has a single connection, it will insert an outlet on the left. -

    +

    add 1st outlet -

    +
    add 1st outlet
    +
    Now, if the [trigger] object has more outlets than outgoing connections, "Triggerize" removes the unused outlets. -

    +

    reduce outlets -

    +
    reduce outlets
    +
    In case there are more connections than outlets, "Triggerize" adds outlets to distribute all connections to separate ones (following the creation order of the connections from right to left).2 -

    +

    distribute connections -

    +
    distribute connections
    +
    -

    2.3.7. Paste replace

    The 'Paste Replace' entry in the Edit menu doesn't have a @@ -782,9 +825,10 @@

    2.3.7. Paste replace

    All the selected boxes of the same type get replaced by the copied box and connections are preserved. -

    +

    paste replace entry -

    +
    Paste replacing an object
    +

    Alternatively, you can copy a number box instead of a [float] object and replace it in the selected group of objects, or in a selected group @@ -796,18 +840,19 @@

    2.3.7. Paste replace

    A subpatch or an abstraction can also be used for "Paste Replace" and they count in the same group of objects. -

    +

    paste replace boxes -

    +
    Paste replacing a number box
    +

    If you have a selection of boxes to replace that includes different types of boxes, the "Paste Replace" will only replace the boxes of the same type that was copied. -

    +

    paste replace similar type -

    - +
    >Paste replacing the same box type
    +

    2.4. Messages

    @@ -866,19 +911,19 @@

    2.4.1. Anatomy of a message

    When a message is passed to something (which is often an inlet of a box but could be anything that can receive a message), the selector of the message is checked against the receiver. If the receiver recognizes messages of that -selector, it carries out some corresponding action. For instance, here is a -[float] object: +selector, it carries out some corresponding action. -

    +

    float object -

    - -

    The two rectangles at the top are usually both called "inlets", but the -one on the left directs incoming messages to the [float] object itself, while -the one on the right directs messages to an auxiliary "inlet" object. The -[float] object itself (represented by the left inlet) accepts messages with -the selectors "float" and "bang". The right inlet only accepts messages with -the "float" selector. These two selectors, together with "symbol" and "list", +

    A [float] object
    +
    + +

    For instance, in the [float] object above, we two rectangles at the top that +are called "inlets", but the one on the left directs incoming messages to the +[float] object itself, while the one on the right directs messages to an auxiliary +"inlet" object. The [float] object itself (represented by the left inlet) accepts +messages with the selectors "float" and "bang". The right inlet only accepts messages +with the "float" selector. These two selectors, together with "symbol" and "list", are usually used to indicate the main action of an object, whatever it may be, so that objects can be linked together with maximum flexibility. @@ -893,9 +938,10 @@

    2.4.2. Depth first message passing

    others. So each message sets off a tree of consequent messages. This tree is executed in depth first fashion. For instance in the patch below: -

    +

    depth first -

    +
    A tree with depth first message passing
    +

    The order of arrival of messages is either A-B-C-D or A-C-D-B. The "C" message is not done until the "D" one is also, and the "A" is not done until @@ -904,9 +950,10 @@

    2.4.2. Depth first message passing

    Message-passing can give rise to infinite loops of the sort shown here: -

    +

    infinite loop -

    +
    An infinite loop (stack overflow)
    +

    Here, the left-hand [+ 1] can't finish processing until the right-hand one has been sent the result "2", which can't finish processing until the left-hand one @@ -927,9 +974,10 @@

    2.4.3. Hot and cold inlets and right to left outlet order +
    hot and cold inlets -

    +
    Avoiding infinite loop with a cold inlet
    +

    Here, the [f] object is an abbreviation for [float]. Note that the [+ 1] output is connected to the right-hand inlet of [f]. This "cold" inlet merely stores the @@ -948,9 +996,10 @@

    2.4.3. Hot and cold inlets and right to left outlet order - incorrect inlet connection -

    +
    +incorrect inlet connection +
    An undefined connection order
    +

    Here, the left inlet was connected before connecting the right hand one (although this is not evident in the appearance of the patch). The [+] thus @@ -963,9 +1012,10 @@

    2.4.3. Hot and cold inlets and right to left outlet order +

    trigger to disambiguate -

    +
    A defined connection order with [trigger]
    +

    "Cold" (non-leftmost) inlets are almost universally used to store single values (either numbers or symbols). With the exception of [line], [line~] @@ -985,20 +1035,22 @@

    2.4.4. Message boxes

    the message or messages are sent, either to the message box's outlet or elsewhere as specified. -

    +

    message boxes -

    +
    Messages with different selectors
    +

    The first of the message boxes above contains the single number 1.5; this message has an implicit selector of "float". The second is a list with three -numbers in it, and in the third, the selector is "my" and the two arguments are -the number 5 and the symbol "toes". +numbers in it and has an implicit selector of "listt". The third message has +the selector "my" and the two arguments are the number 5 and the symbol "toes".

    Multiple messages may be separated by commas as shown: -

    +

    multiple messages in one box -

    +
    Messages separated by commas
    +

    Here, the three messages are the numbers 1, 2, and 3, and they are sent in sequence (with no intervening time between them, as with the [trigger] object, @@ -1013,9 +1065,10 @@

    2.4.4. Message boxes

    from the outlet to an object named "fred" (which is a receive object here), and likewise the next message is sent to "sue". -

    +

    semicolons to send messages -

    +
    Messages sent to receive symbols
    +

    Certain other objects (Pd windows for example, and arrays) have Pd names as destination symbols so you can send them messages this way. Also, the special @@ -1031,9 +1084,10 @@

    2.4.4. Message boxes

    You can put variables in message boxes as shown below: -

    +

    variables in message boxes -

    +
    A message with a "$1" variable
    +

    Here, "$1" etc., refer to the arguments of the arriving message (and aren't defined if you send a "bang" message or if you click on the message box to @@ -1231,9 +1285,10 @@

    2.6.1. Audio and messages

    milliseconds. You may turn DSP computation on and off in a patch by sending the messages "dsp 1" and "dsp 0" to "pd". -

    +

    dsp on and off on patch level -

    +
    Setting DSP on the patch level
    +

    In the intervals between, delays might time out or external conditions might arise (incoming MIDI, mouse clicks or whatnot). These may cause a @@ -1422,11 +1477,17 @@

    2.8. Subpatches

    in a patch. If you type [pd] or [pd my-name] into an object box, this creates a one-off subpatch. For instance, in this fragment: -

    subpatch

    +
    + subpatch +
    A subpatch called "my-subpatch"
    +

    The box in the middle, if clicked on, opens the sub-patch shown here: -

    open subpatch window

    +
    + open subpatch window +
    The insides of the subpatch
    +

    The contents of the subpatch are saved as part of the parent patch, in one file. If you make several copies of a subpatch you may change them @@ -1446,12 +1507,18 @@

    2.8.1. Abstractions

    To make an abstraction, save a patch with a name such as "abstraction1.pd" and then invoke it in an object box as [abstraction1]: -

    abstraction

    +
    + abstraction +
    An abstraction (a patch file loaded as an object)
    +
    -

    Here, we're invoking a separate file, "abstraction1.pd", which holds the +

    Here, we're invoking a separate file named "abstraction1.pd", which holds the patch shown here: -

    abstraction example

    +
    + abstraction example +
    The insides of the [abstraction1] abstraction
    +

    You may create many instances of [abstraction1] or invoke it from several different patches; changing and saving the contents of [abstraction1] will @@ -1486,11 +1553,17 @@

    2.8.2. Graph-on-parent subpatches

    check the "graph on parent" box to have the controls of the subpatch/abstraction appear on the parent. For instance, here is an invocation of [abstraction2]: -

    graph-on-parent abstraction

    +
    + graph-on-parent abstraction +
    An abstraction with "Graph-on-Parent"
    +

    Where the patch "abstraction2.pd" contains: -

    inside graph-on-parent abstraction

    +
    + inside graph-on-parent abstraction +
    The insides of the "Graph-on-Parent" abstraction
    +

    Here, the number box in the abstraction shows up on the box that invoked the abstraction. The "graph on parent" flag is set in the abstraction @@ -1538,17 +1611,28 @@

    2.9. Numeric arrays

    the containing patch), or as a regular subpatch (which you see as a text box). In the "graph on parent" form, an array appears as shown: -

    array

    +
    + array +
    A numeric array
    +
    -

    Arrays are indexed from 0 to N-1 where N is the number of points in the -array. You can read an array value using the tabread object: +

    Arrays are indexed from 0 to N-1 where N is the number of points in the array. +You can use objects to read and write arrays an manipulate them in many ways. -

    array indexing

    +
    + array indexing +
    Read an array with [tabread]
    +
    -

    Here, we see that the third point of the array (index 2) has the value 0.4. -To write into the array, you can use the tabwrite object: -

    setting an value in an array

    +

    Here, we see that the third point of the array (index 2) has the value '0.385'. +To write into the array, you can use the [tabwrite] object: + +

    + setting an value in an array +
    Write to an array with [tabwrite]
    +
    +

    In this example, sending the message sets the third element to 0.5. (You may also send the two numbers to the two inlets separately.) @@ -1557,7 +1641,10 @@

    2.9. Numeric arrays

    and to arrays. These may also be done using audio signals. For example, the patch below creates a 440 Hz tone with "array1" as a waveform: -

    setting an array with a waveform

    +
    + setting an array with a waveform +
    Using signals to read an with [tabread4~]
    +

    Here, [phasor~] outputs a ramp whose output range is from 0 to 1, repeating 440 times per second. The multiplier and adder adjust the range from 1 to 11 @@ -1574,7 +1661,11 @@

    2.9. Numeric arrays

    If you select "properties" on an array in a graph, you get two dialogs, one for the array and one for the graph. The array dialog looks like this: -

    array properties window

    +
    + array properties window +
    Array propeties dialog
    +
    +

    You may use this to change the name and size, in addition to another property, "save contents". If "save contents" is selected, the array's values are stored @@ -1590,7 +1681,10 @@

    2.9. Numeric arrays

    The graph dialog (which also pops up) is shown here: -

    graph properties

    +
    + graph properties +
    Canvas properties dialog
    +

    The X bounds initially range from 0 to the number of points in the table minus one (this is a good choice for arrays, although graphs holding other @@ -1635,7 +1729,10 @@

    2.10. Data structures

    with many examples. Here is one simple example from this series (09.sequencer.pd) with a very short musical sketch realized using Pd: -

    graphical score

    +
    + graphical score +
    A graphical score with Data Structures
    +

    The example, which only lasts a few seconds, is a polyphonic collection of time-varying noise bands. The graphical "score" consists of six objects, each @@ -1657,7 +1754,10 @@

    2.10. Data structures

    mechanism. Here is the template associated with the graphical objects shown above. -

    template for graphical score

    +
    + template for graphical score +
    The "struct" and drawing instructions for the score's elements
    +

    Templates consist of a data structure definition (the [struct] object) and zero or more drawing instructions (such as [filledpolygon] and [plot]). The @@ -1707,7 +1807,10 @@

    2.10.1. Traversal

    above. It uses the [clone] object to instantiate different copies of the [voice] abstraction, which is responsible for playing back each voice from the score. -

    traversal example patch

    +
    + traversal example patch +
    The sequencer patch
    +

    Traversal of data is made possible by adding a new type of atom, "pointer", to the two previously defined types that make up messages (numbers and symbols). @@ -1724,12 +1827,18 @@

    2.10.1. Traversal

    in the list (i.e., the next in the list of six objects in the score). Let's check the [voice] abstraction below. -

    [voice] abstraction

    +
    + [voice] abstraction +
    The cloned [voice] abstraction with sound synthesis
    +

    The [pd sequence] subpatch takes care of sequencing the data structure events. -

    [pd sequence] subpatch

    +
    + [pd sequence] subpatch +
    The sequencing subpatch
    +

    A second [pointer] object is used here as a storage cell for pointers just as [float] is for numbers. The center of the sequencer is the [delay] object, @@ -1758,7 +1867,10 @@

    2.10.1. Traversal

    structure of the sequencer patch mirrors the nesting of the original data structures. -

    [data-array] abstraction

    +
    + [data-array] abstraction +
    The [data-array] abstraction
    +

    More general patches can easily be constructed which access heterogeneous lists of objects (having different templates). In this way, an arbitrarily diff --git a/doc/1.manual/x3.htm b/doc/1.manual/x3.htm index f26d57c54..389f0f0e9 100644 --- a/doc/1.manual/x3.htm +++ b/doc/1.manual/x3.htm @@ -118,9 +118,10 @@

    3.3. Testing and configuring Audio and MIDI

    To test audio and MIDI, start Pd and select "Test Audio and MIDI..." from the Media menu. You should see a window like this: -

    +

    test audio and midi patch -

    +
    Test Audio and MIDI patch
    +

    First, try to get Pd to play a sine wave over your speakers. The "OUTPUT MONITOR" section to the left allows you to set an output gain and @@ -327,9 +328,11 @@

    3.3.1. Audio settings

    an API (even if it's the one already in use). The Audio Settings dialog looks like this: -

    +

    audio settings dialog -

    +
    Audio settings dialog
    +
    +

    The exact choices you get depend on the operating system and API. The sample rate controls both audio output and input. The "delay" is the @@ -447,9 +450,10 @@

    3.4. Preferences and startup options

    flags. Other than that, some configurations are too cranky to put in a GUI dialog and must be only set via startup flags. -

    +

    startup dialog -

    +
    Startup dialog
    +

    Startup flags initialize Pd in many ways, but many configurations can be changed while Pd is running. Some configurations, on the other hand, diff --git a/doc/1.manual/x4.htm b/doc/1.manual/x4.htm index e2c9f1cb8..f56af56a6 100644 --- a/doc/1.manual/x4.htm +++ b/doc/1.manual/x4.htm @@ -57,8 +57,11 @@

    4.1.1 Vanilla objects, internals & externals

    then select List of Objects, or alternatively right click on an empty spot of a patch’s window and select “help” - this loads the help-intro.pd file (see below). -

    list of objects -
    +

    + list of objects +
    The "help-intro' patch
    +
    +

    The set of externals that come with Pd are available in the ‘extra’ library and is located in a folder named “extra” inside the Pd application. These @@ -67,9 +70,10 @@

    4.1.1 Vanilla objects, internals & externals

    the browser looks in a fresh install of Pd and lists the objects in the extra folder. -

    -browser window -
    +

    + browser window +
    The browser window
    +

    4.1.2. Types of external objects

    @@ -379,8 +383,10 @@

    4.2.1. Where to include externals

    external libraries and it’s automatically included in the user added search paths (under Preferences => Path), see figure below. -

    Preferences -
    +

    + Preferences +
    Path preferences
    +

    We see in the screenshot above that the “Pd” folder is created under ~/Documents, and inside it we have the externals subfolder. @@ -460,8 +466,10 @@

    4.2.2. How to download externals from Pd

    to broaden the search, or an exact name can be used instead. All available versions of the library/external specific for your operating system will be shown to you. See figure below. -

    deken install -
    +

    + deken install +
    Installing from 'deken'
    +

    When you double-click on the version you want, by default Pd downloads it to "~/Documents/Pd/externals". @@ -571,11 +579,10 @@

    4.3.2.2. Startup
    is also used for configuring Pd in many ways, see 3.4. Preferences and startup options for reference. -

    - -startup preferences - -
    +

    + startup preferences +
    Startup preferences
    +

    As we’ve seen with ‘zexy’, it’s common that the name of the binary is the same as the library’s, so you don’t need to worry about adding it to the path. @@ -601,8 +608,10 @@

    4.3.2.2. Startup
    objects are loaded in Pd and they have search priority. This may cause issues discussed on the next section. -

    lib print -
    +

    + lib print +
    Library loading printout
    +

    4.3.3. Load using slash declarations

    @@ -613,7 +622,10 @@

    4.3.3. Load using slash declarations

    ‘else’ in one of its search paths (which includes ~/Documents/Pd/externals) and find it! Here’s an example: -

    slash declaration +

    + slash declaration +
    Creating an external object with a slash declaration
    +

    Now, what’s the need or advantage of this over using [declare] or adding the folder to the user added paths? This can be an option that some people may prefer for the simple fact that diff --git a/doc/1.manual/x6.htm b/doc/1.manual/x6.htm index 15a89aabd..85fc1dee9 100644 --- a/doc/1.manual/x6.htm +++ b/doc/1.manual/x6.htm @@ -77,7 +77,7 @@

    6.2. General autotools build steps

    make -

    Note: Additional platform-specific options and build targets are listed in following subsections.

    +

    Note: Additional platform-specific options and build targets are listed in following sections.

    Start by opening a commandline shell and navigating to the Pd source directory:

    cd path/to/pd
    @@ -143,12 +143,18 @@

    6.2. General autotools build steps

    make
    -

    Building should take a minute or two. If compilation was successful, you can run Pd from the build directory without installing it:

    +

    Building should take a minute or two. If compilation was successful, +in Linux, you can run Pd from the build directory without installing it:

    cd bin
     ./pd
    -

    To install to your system using the configuration prefix (default /usr/local):

    +

    You need to create an app so you can use your build in macOS and Windows. + +

    make app
    + +

    To install to your Linux system using the configuration prefix +(default /usr/local), do:

    sudo make install
    @@ -164,8 +170,9 @@

    6.2. General autotools build steps

    sudo make uninstall
    -

    If you compiled Pd using the --enable-universal configure option and want to double -check which architectures Pd was built with, use the "file" command:

    +

    If you compiled Pd using the --enable-universal configure +option and want to double check which architectures Pd was built +with, use the "file" command:

    # examine binary in the src directory
     file src/pd
    @@ -175,8 +182,9 @@ 

    6.2. General autotools build steps

    # look at pd inside a macOS .app bundle file Pd.app/Contents/Resources/bin/pd ... -Pd-0.47.1.app/Contents/Resources/bin/pd: Mach-O 64-bit executable x86_64
    +Pd-0.55.0.app/Contents/Resources/bin/pd: Mach-O 64-bit executable x86_64 +

    More details specific to each platform follow next.

    6.3. Building Pd for Linux

    @@ -249,7 +257,8 @@

    6.4.2. OpenBSD

    sudo pkg_add gcc automake autoconf libtool gettext-tools gmake
     
    -

    (If there are multiple versions for one or more of the packages, pick your favourite or the newest one).

    +

    (If there are multiple versions for one or more of the packages, pick your +favourite or the newest one).

    You may install one (or more) libraries (depending on your needs). It seems that with OpenBSD-7, there are only JACK packages available:

    @@ -299,8 +308,7 @@

    6.4.3. NetBSD

    It seems that with NetBSD-9, there are JACK and ALSA packages available, but the ALSA packages seem to be broken. OSS appears to be built-in.

    -
    sudo pkgin install jack
    -
    +
    sudo pkgin install jack

    By default, NetBSD installs all its packages into /usr/pkg/, but the compiler does not look for headers resp. libraries in this directory. @@ -310,8 +318,7 @@

    6.4.3. NetBSD

    cat | sudo tee /usr/pkg/share/config.site>/dev/null << EOF
     CPPFLAGS="-I/usr/pkg/include \$CPPFLAGS"
     LDFLAGS="-L/usr/pkg/lib -Wl,-R/usr/pkg/lib \$LDFLAGS"
    -EOF
    -
    +EOF

    Now that your build system is set up, you can follow the general autotools build steps to build Pd, but make sure to use gmake (aka “GNU make”). @@ -327,21 +334,34 @@

    6.4.3. NetBSD

    6.5. Building Pd for macOS

    -

    macOS is built on top of a BSD system and the bash commandline can be accessed with the Terminal application in the /Applications/Utility directory.

    -

    The clang compiler and associated tools are provided by Apple. If you are running macOS 10.9+, you do not need to install the full Xcode application and can install the Commandline Tools Package only by running the following:

    +

    macOS is built on top of a BSD system and the bash commandline +can be accessed with the Terminal application in the +/Applications/Utility directory.

    + +

    The clang compiler and associated tools are provided by Apple. +If you are running macOS 10.9+, you do not need to install +the full Xcode application and can install the Commandline Tools +Package only by running the following:

    xcode-select --install
    -

    For macOS versions earlier than 10.9, you will need to install Xcode from the Mac App Store or downloaded from http://developer.apple.com

    +

    For macOS versions earlier than 10.9, you will need to install +Xcode from the Mac App Store or downloaded +from http://developer.apple.com

    +

    Tcl/Tk is already included macOS.

    -

    To install the autotools, gettext, and libraries for additional features, you can use one of the open source package managers for macOS:

    + +

    To install the autotools, gettext, and libraries for additional +features, you can use one of the open source package managers for macOS:

    -

    Follow the package manager set up instructions and then install the software you need. For example, to install the autotools & gettext using Homebrew:

    +

    Follow the package manager set up instructions and then install the +software you need. For example, to install the autotools & gettext +using Homebrew:

    brew install automake autoconf libtool pkg-config gettext
     brew link --force gettext
    @@ -355,7 +375,9 @@

    6.5. Building Pd for macOS

  • macOS 11+: x86_64, arm64
  • -

    Note: a "fat" Pd may not work on all systems and/or be able to load both 32 or 64 bit externals. Additionally, you can specify multiple architectures directly:

    +

    Note: a "fat" Pd may not work on all systems and/or be +able to load both 32 or 64 bit externals. Additionally, you can specify +multiple architectures directly:

    # build a "fat" Pd for both 32 and 64 bit Intel
     # may not work on all systems
    @@ -365,17 +387,18 @@ 

    6.5. Building Pd for macOS

    # may not work on all systems ./configure --enable-universal
    -

    The JACK audio server is supported by Pd on macOS. By default, Pd can use either -the official 64-bit builds for macOS 10.12+ from https://jackaudio.org or the -older, 32-bit Jack OS X runtime framework if one is installed on the system. +

    The JACK audio server is supported by Pd on macOS. By default, +Pd can use either the official 64-bit builds for macOS 10.12+ +from https://jackaudio.org +or the older, 32-bit Jack OS X runtime framework if one is installed on the system. Optionally, Pd can also be built with Jack installed via Homebrew or Macports, -however the runtime framework support must be disabled: -

    +however the runtime framework support must be disabled:

    brew install jack
     ./configure --disable-jack-framework --enable-jack
    -

    You should now be ready to build Pd by following the general autotools build steps. Once built, there are two options for installation:

    +

    You should now be ready to build Pd by following the general autotools +build steps. Once built, there are two options for installation:

    -

    4.3.2. How to download externals and GUI plugins from Pd

    +

    4.3.2. How to download externals and GUI plugins from Pd

    Since version 0.47-0, Pd Vanilla has its own external manager! This is a built in .tcl plug-in named "deken" (check @@ -534,7 +534,7 @@

    4.3.2. How to download externals and GUI plugins from Pd find older versions of the library, uncheck "Only show the newest version of a library". -

    4.4. Loading externals

    +

    4.4. Loading externals

    The current best practice is to use the [declare] object to search for, load and manage externals, but there are alternatives. @@ -549,7 +549,7 @@

    4.4. Loading externals

    done via [declare] or manually via the 'Path' tab in Preferences, but yet another option here is to use slash declarations as we'll see later. -

    4.4.1. Using the [declare] object

    +

    4.4.1. Using the [declare] object

    The [declare] object can be used to add search paths or load libraries. When adding a path, it behaves quite similarly to adding search paths to the @@ -561,7 +561,7 @@

    4.4.1. Using the [declare] object

    sticks with it. This means that if you use [declare] to load a library, it will also be loaded if you create a new patch without any [declare] object. -
    4.4.1.1. [declare -path]
    +
    4.4.1.1. [declare -path]

    Let's take for an example the ELSE library. This library mostly contains separate binaries and abstractions, so Pd only @@ -584,7 +584,7 @@

    4.4.1.1. [declare -path]
    when you tell Pd to look for an external, if it finds a folder with the same name as the external, it'll know to search inside that folder for the external! -
    4.4.1.2. [declare -lib]
    +
    4.4.1.2. [declare -lib]

    The '-lib' flag is needed for the classic Pd library format, which is a single binary pack with many externals. One such example is the @@ -615,12 +615,12 @@

    4.4.1.2. [declare -lib]

    For more details on how [declare] works, please check its help file! -

    4.4.2. Load via path and startup

    +

    4.4.2. Load via path and startup

    We'll now see the differences between using [declare] or using "Path" and "Startup" tabs in Preferences. -

    4.4.2.1. User added path
    +
    4.4.2.1. User added path

    One big difference in adding a search path in 'Preferences' is that this permanently adds the path and works every time Pd starts and for any patch @@ -643,7 +643,7 @@

    4.4.2.1. User added path
    priority like it happens when you use [declare]. In this case, the path relative to the patch will have top priority! -
    4.4.2.2. Startup
    +
    4.4.2.2. Startup

    "Preferences => Startup" loads a window that says "Pd libraries to load on startup". This is where you can manually and permanently load single @@ -681,7 +681,7 @@

    4.4.2.2. Startup
    externals that are loaded via paths. This may cause issues discussed on the next section. -

    4.4.3. Load using slash declarations

    +

    4.4.3. Load using slash declarations

    Let’s say you’ve downloaded the ELSE library into ~/Documents/Pd/externals. Instead of using [declare -path else] or adding the ELSE folder to the user @@ -742,7 +742,7 @@

    4.4.3. Load using slash declarations

    These issues might be clear if you better understand how Pd works when loading externals. See next subsection. -

    4.5. How external binaries are loaded

    +

    4.5. How external binaries are loaded

    Once you make sure Pd can load an external binary via a path, this is what happens when you create it. Whenever you create an object that Pd @@ -777,7 +777,7 @@

    4.5. How external binaries are loaded

    reloaded! -

    4.5.1. Overriding objects (externals and native)

    +

    4.5.1. Overriding objects (externals and native)

    We've seen that Pd loads and sticks to an external binary, but they can get overridden. For instance, if you create [xfade~] @@ -798,7 +798,7 @@

    4.5.1. Overriding objects (externals and native)

    don't want to mess with overriding internals, but it makes sense if you provide new versions with more features that are fully backwards compatible. -

    4.6. Search order in Pd for objects and files

    +

    4.6. Search order in Pd for objects and files

    This information has been provided in pieces throughout this section of the Manual. But now well wrap it up after all the information has been presented. diff --git a/doc/1.manual/x5.htm b/doc/1.manual/x5.htm index ce23dcd66..8643afcbf 100644 --- a/doc/1.manual/x5.htm +++ b/doc/1.manual/x5.htm @@ -23,7 +23,7 @@

    Chapter 5: Current status

    This chapter tracks changes in Pd's current implementation.

    -

    5.1. Release notes

    +

    5.1. Release notes

    ------------------ 0.55-0 ------------------------------ diff --git a/doc/1.manual/x6.htm b/doc/1.manual/x6.htm index 64ca0478c..bdd675581 100644 --- a/doc/1.manual/x6.htm +++ b/doc/1.manual/x6.htm @@ -24,7 +24,7 @@

    Chapter 6: Building Pd from source

    and install it on different operating systems (macOS, Linux, BSD & Windows). -

    6.1. Requirements

    +

    6.1. Requirements

    Pd is built on the commandline using traditional Unix-style tools. The source distribution comes with two build systems:

    @@ -57,7 +57,7 @@

    6.1. Requirements

    -

    6.2. General autotools build steps

    +

    6.2. General autotools build steps

    Building Pd using the GNU autotools involves the following steps for all platforms:

    @@ -184,7 +184,7 @@

    6.2. General autotools build steps

    More details specific to each platform follow next. -

    6.3. Building Pd for Linux

    +

    6.3. Building Pd for Linux

    Platform requirements:

    @@ -214,13 +214,13 @@

    6.3. Building Pd for Linux

    Once your build system is set up, you can follow the general autotools build steps to build Pd.

    -

    6.4. Building Pd for BSD

    +

    6.4. Building Pd for BSD

    Building Pd for the various BSD variants is similar to the Linux way. The major difference is the used package manager (and the names of the packages), you’ll want to install.

    -

    6.4.1. FreeBSD

    +

    6.4.1. FreeBSD

    (Tested on FreeBSD-13)

    @@ -246,7 +246,7 @@

    6.4.1. FreeBSD

    sudo gmake install
    -

    6.4.2. OpenBSD

    +

    6.4.2. OpenBSD

    (Tested on OpenBSD-7)

    @@ -293,7 +293,7 @@

    6.4.2. OpenBSD

    sudo gmake install
    -

    6.4.3. NetBSD

    +

    6.4.3. NetBSD

    (Tested on NetBSD-9)

    @@ -330,7 +330,7 @@

    6.4.3. NetBSD

    -

    6.5. Building Pd for macOS

    +

    6.5. Building Pd for macOS

    macOS is built on top of a BSD system and the bash commandline can be accessed with the Terminal application in the @@ -438,7 +438,7 @@

    6.5. Building Pd for macOS

    Note: Pd installed to your system or run from the build/bin directory will not use the default font and will be missing the various macOS GUI hints (such as retina rendering) which are specified by the Info.plist file inside the .app bundle. Again, it is recommended to build a .app and use the aforementioned aliases to provide the pd command.

    -

    6.5.1. macOS app bundle

    +

    6.5.1. macOS app bundle

    Directory pure-data/mac contains support files for building a Pure Data macOS application bundle and supplementary build scripts for compiling Pd on Macintosh systems, as it is built @@ -470,7 +470,7 @@

    6.5.1. macOS app bundle

    Creating a Pure Data .app involves using a precompiled Wish.app as a wrapper by copying the Pd binaries and resources inside of it.

    -
    6.5.1.1. macOS App bundle helpers
    +
    6.5.1.1. macOS App bundle helpers