From 82e7b7577432e0a77302eec9039eacde0374fcbc Mon Sep 17 00:00:00 2001 From: Jonathan Wilkes <jon.w.wilkes@gmail.com> Date: Tue, 25 Jul 2017 21:02:49 -0400 Subject: [PATCH] allow all iem_adaptfilt objects to load without arguments --- externals/iem/iem_adaptfilt/src/NLMSCC~.c | 17 ++++++++++++++++- externals/iem/iem_adaptfilt/src/NLMSerr_in~.c | 15 ++++++++++++++- externals/iem/iem_adaptfilt/src/NLMS~.c | 13 +++++++++++++ externals/iem/iem_adaptfilt/src/n_CLNLMS~.c | 17 +++++++++++++++++ externals/iem/iem_adaptfilt/src/n_CNLMS~.c | 18 +++++++++++++++++- 5 files changed, 77 insertions(+), 3 deletions(-) diff --git a/externals/iem/iem_adaptfilt/src/NLMSCC~.c b/externals/iem/iem_adaptfilt/src/NLMSCC~.c index 48f501aca..5824e1fb9 100644 --- a/externals/iem/iem_adaptfilt/src/NLMSCC~.c +++ b/externals/iem/iem_adaptfilt/src/NLMSCC~.c @@ -313,7 +313,22 @@ static void *NLMSCC_tilde_new(t_symbol *s, t_int argc, t_atom *argv) t_symbol *wmax_name; t_float beta=0.1f; t_float gammax=0.00001f; - + t_atom sane_defaults[6]; + + if (!argc) + { + post("NLMSCC~: warning: no arguments supplied: setting default values " + "to [NLMSCC~ 2 0.1 0.00001 a b c]"); + SETFLOAT(sane_defaults, 2.); + SETFLOAT(sane_defaults+1, 0.1); + SETFLOAT(sane_defaults+2, 0.00001); + SETSYMBOL(sane_defaults+3, gensym("a")); + SETSYMBOL(sane_defaults+4, gensym("b")); + SETSYMBOL(sane_defaults+5, gensym("c")); + argc = 6; + argv = sane_defaults; + } + if((argc >= 6) && IS_A_FLOAT(argv,0) && //IS_A_FLOAT/SYMBOL from iemlib.h IS_A_FLOAT(argv,1) && diff --git a/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c b/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c index f48f302cd..b0f300e67 100644 --- a/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c +++ b/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c @@ -221,7 +221,20 @@ static void *NLMSerr_in_tilde_new(t_symbol *s, t_int argc, t_atom *argv) t_symbol *w_name; t_float beta=0.01f; t_float gammax=0.00001f; - + t_atom sane_defaults[4]; + + if (!argc) + { + post("NLMSerr_in~: warning: no arguments supplied: setting default " + "values to [NLMSerr_in~ 2 0.01 0.00001 a]"); + SETFLOAT(sane_defaults, 2.); + SETFLOAT(sane_defaults+1, 0.01); + SETFLOAT(sane_defaults+2, 0.00001); + SETSYMBOL(sane_defaults+3, gensym("a")); + argc = 4; + argv = sane_defaults; + } + if((argc >= 4) && IS_A_FLOAT(argv,0) && //IS_A_FLOAT/SYMBOL from iemlib.h IS_A_FLOAT(argv,1) && diff --git a/externals/iem/iem_adaptfilt/src/NLMS~.c b/externals/iem/iem_adaptfilt/src/NLMS~.c index f54efc64d..ee225baa1 100644 --- a/externals/iem/iem_adaptfilt/src/NLMS~.c +++ b/externals/iem/iem_adaptfilt/src/NLMS~.c @@ -266,7 +266,20 @@ static void *NLMS_tilde_new(t_symbol *s, t_int argc, t_atom *argv) t_symbol *w_name; t_float beta=0.1f; t_float gammax=0.00001f; + t_atom sane_defaults[4]; + if (!argc) + { + post("NLMS~: warning: no arguments supplied: setting default " + "values to [NLMS~ 2 0.1 0.00001 a]"); + SETFLOAT(sane_defaults, 2.); + SETFLOAT(sane_defaults+1, 0.1); + SETFLOAT(sane_defaults+2, 0.00001); + SETSYMBOL(sane_defaults+3, gensym("a")); + argc = 4; + argv = sane_defaults; + } + if((argc >= 4) && IS_A_FLOAT(argv,0) && //IS_A_FLOAT/SYMBOL from iemlib.h IS_A_FLOAT(argv,1) && diff --git a/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c b/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c index 3153c0b98..23a00d8d4 100644 --- a/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c +++ b/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c @@ -406,6 +406,23 @@ static void *n_CLNLMS_tilde_new(t_symbol *s, t_int argc, t_atom *argv) t_float gammax=0.00001f; t_float kappa = 1.0f; t_float leakage = 0.99f; + t_atom sane_defaults[7]; + + if (!argc) + { + post("n_CLNLMS~: warning: no arguments supplied: setting default " + "values to [n_CLNLMS~ 1 2 0.1 0.00001 1 0.99 a]"); + SETFLOAT(sane_defaults, 1.); + SETFLOAT(sane_defaults+1, 2.); + SETFLOAT(sane_defaults+2, 0.1); + SETFLOAT(sane_defaults+3, 0.00001); + SETFLOAT(sane_defaults+4, 1); + SETFLOAT(sane_defaults+5, 0.99); + SETSYMBOL(sane_defaults+6, gensym("a")); + argc = 7; + argv = sane_defaults; + } + if((argc >= 7) && IS_A_FLOAT(argv,0) && //IS_A_FLOAT/SYMBOL from iemlib.h diff --git a/externals/iem/iem_adaptfilt/src/n_CNLMS~.c b/externals/iem/iem_adaptfilt/src/n_CNLMS~.c index d1d6b5140..1b636fc61 100644 --- a/externals/iem/iem_adaptfilt/src/n_CNLMS~.c +++ b/externals/iem/iem_adaptfilt/src/n_CNLMS~.c @@ -394,7 +394,23 @@ static void *n_CNLMS_tilde_new(t_symbol *s, t_int argc, t_atom *argv) t_float beta=0.1f; t_float gammax=0.00001f; t_float kappa = 1.0f; - + t_atom sane_defaults[6]; + + if (!argc) + { + post("n_CNLMS~: warning: no arguments supplied: setting default " + "values to [n_CLNLMS~ 1 2 0.1 0.00001 1 0.99 a]"); + SETFLOAT(sane_defaults, 1.); + SETFLOAT(sane_defaults+1, 2.); + SETFLOAT(sane_defaults+2, 0.1); + SETFLOAT(sane_defaults+3, 0.00001); + SETFLOAT(sane_defaults+4, 1); + SETSYMBOL(sane_defaults+5, gensym("a")); + argc = 6; + argv = sane_defaults; + } + + if((argc >= 6) && IS_A_FLOAT(argv,0) && //IS_A_FLOAT/SYMBOL from iemlib.h IS_A_FLOAT(argv,1) && -- GitLab