From 13dc22ece33d1e93aa1af300680614a5524db9d9 Mon Sep 17 00:00:00 2001 From: Jonathan Wilkes <jon.w.wilkes@gmail.com> Date: Wed, 26 Jul 2017 20:14:58 -0400 Subject: [PATCH] allow all bin_ambi objects to instantiate without any arguments --- .../iem/iem_bin_ambi/src/bin_ambi_calc_HRTF.c | 23 +++++++- .../src/bin_ambi_reduced_decode.c | 59 ++++++++++++------- .../src/bin_ambi_reduced_decode2.c | 20 ++++++- .../src/bin_ambi_reduced_decode_fft.c | 44 ++++++++++---- .../src/bin_ambi_reduced_decode_fft2.c | 21 +++++++ .../src/bin_ambi_reduced_decode_fir.c | 33 +++++++++-- .../src/bin_ambi_reduced_decode_fir2.c | 24 +++++++- 7 files changed, 180 insertions(+), 44 deletions(-) diff --git a/externals/iem/iem_bin_ambi/src/bin_ambi_calc_HRTF.c b/externals/iem/iem_bin_ambi/src/bin_ambi_calc_HRTF.c index f2ea70f8a..b20836c95 100644 --- a/externals/iem/iem_bin_ambi/src/bin_ambi_calc_HRTF.c +++ b/externals/iem/iem_bin_ambi/src/bin_ambi_calc_HRTF.c @@ -470,9 +470,26 @@ static void *bin_ambi_calc_HRTF_new(t_symbol *s, int argc, t_atom *argv) char buf[400]; int i, j, fftok; int n_ls, fftsize; - t_symbol *s_hrir; - t_symbol *s_hrtf_re; - t_symbol *s_hrtf_im; + t_symbol *s_hrir = gensym("L_HRIR"); + t_symbol *s_hrtf_re = gensym("HRTF_re"); + t_symbol *s_hrtf_im = gensym("HRTF_im"); + t_atom sane_defaults[6]; + + if(!argc) + { + post("bin_ambi_calc_HRTF: warning: no arguments provided: " + "setting to [bin_ambi_calc_HRTF L_HRIR HRTF_re HRTF_im " + "HRIR_win 1 512]"); + SETSYMBOL(sane_defaults, s_hrir); + SETSYMBOL(sane_defaults+1, s_hrtf_re); + SETSYMBOL(sane_defaults+2, s_hrtf_im); + SETSYMBOL(sane_defaults+3, gensym("HRIR_win")); + SETFLOAT(sane_defaults+4, 1.); + SETFLOAT(sane_defaults+5, 512.); + argc = 6; + argv = sane_defaults; + } + if((argc >= 6) && IS_A_SYMBOL(argv,0) && diff --git a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode.c b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode.c index ee1abd616..44188e08b 100644 --- a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode.c +++ b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode.c @@ -1086,11 +1086,28 @@ static void *bin_ambi_reduced_decode_new(t_symbol *s, int argc, t_atom *argv) t_symbol *s_hrir=gensym("L_HRIR"); t_symbol *s_hrtf_re=gensym("HRTF_re"); t_symbol *s_hrtf_im=gensym("HRTF_im"); - t_symbol *s_fade_out_hrir=gensym("HRIR_win"); + t_symbol *s_fade_out_hrir=gensym("HRIR_win"); + t_atom sane_defaults[8]; + + if(!argc) + { + post("bin_ambi_reduced_decode: warning: no arguments provided: " + "setting to [bin_ambi_reduced_decode 1 2 1]"); + SETFLOAT(sane_defaults, 0.); + SETSYMBOL(sane_defaults+1, s_hrir); + SETSYMBOL(sane_defaults+2, s_hrtf_re); + SETSYMBOL(sane_defaults+3, s_hrtf_im); + SETSYMBOL(sane_defaults+4, s_fade_out_hrir); + SETFLOAT(sane_defaults+5, 1.); + SETFLOAT(sane_defaults+6, 2.); + SETFLOAT(sane_defaults+7, 512.); + argc = 8; + argv = sane_defaults; + } if((argc >= 8) && IS_A_FLOAT(argv,0) && - IS_A_SYMBOL(argv,1) && + IS_A_SYMBOL(argv,1) && IS_A_SYMBOL(argv,2) && IS_A_SYMBOL(argv,3) && IS_A_SYMBOL(argv,4) && @@ -1100,10 +1117,10 @@ static void *bin_ambi_reduced_decode_new(t_symbol *s, int argc, t_atom *argv) { prefix = (int)atom_getintarg(0, argc, argv); - s_hrir = (t_symbol *)atom_getsymbolarg(1, argc, argv); - s_hrtf_re = (t_symbol *)atom_getsymbolarg(2, argc, argv); - s_hrtf_im = (t_symbol *)atom_getsymbolarg(3, argc, argv); - s_fade_out_hrir = (t_symbol *)atom_getsymbolarg(4, argc, argv); + s_hrir = (t_symbol *)atom_getsymbolarg(1, argc, argv); + s_hrtf_re = (t_symbol *)atom_getsymbolarg(2, argc, argv); + s_hrtf_im = (t_symbol *)atom_getsymbolarg(3, argc, argv); + s_fade_out_hrir = (t_symbol *)atom_getsymbolarg(4, argc, argv); n_order = (int)atom_getintarg(5, argc, argv); n_dim = (int)atom_getintarg(6, argc, argv); @@ -1113,7 +1130,7 @@ static void *bin_ambi_reduced_decode_new(t_symbol *s, int argc, t_atom *argv) } else if((argc >= 8) && IS_A_FLOAT(argv,0) && - IS_A_FLOAT(argv,1) && + IS_A_FLOAT(argv,1) && IS_A_FLOAT(argv,2) && IS_A_FLOAT(argv,3) && IS_A_FLOAT(argv,4) && @@ -1123,13 +1140,13 @@ static void *bin_ambi_reduced_decode_new(t_symbol *s, int argc, t_atom *argv) { prefix = (int)atom_getintarg(0, argc, argv); - s_hrir = gensym("L_HRIR"); - s_hrtf_re = gensym("HRTF_re"); - s_hrtf_im = gensym("HRTF_im"); - s_fade_out_hrir = gensym("HRIR_win"); + s_hrir = gensym("L_HRIR"); + s_hrtf_re = gensym("HRTF_re"); + s_hrtf_im = gensym("HRTF_im"); + s_fade_out_hrir = gensym("HRIR_win"); n_order = (int)atom_getintarg(5, argc, argv); - n_dim = (int)atom_getintarg(6, argc, argv); + n_dim = (int)atom_getintarg(6, argc, argv); fftsize = (int)atom_getintarg(7, argc, argv); ok = 1; @@ -1168,20 +1185,20 @@ static void *bin_ambi_reduced_decode_new(t_symbol *s, int argc, t_atom *argv) if(!fftok) { - fftsize = 512; + fftsize = 512; post("bin_ambi_reduced_decode-WARNING: fftsize not equal to 2 ^ n !!!"); post(" fftsize set to %d", fftsize); } - x->x_n_dim = n_dim; - x->x_n_ambi = n_ambi; - x->x_n_order = n_order; - x->x_fftsize = fftsize; + x->x_n_dim = n_dim; + x->x_n_ambi = n_ambi; + x->x_n_order = n_order; + x->x_fftsize = fftsize; - x->x_hrir_filename = (t_symbol **)getbytes(x->x_n_ambi * sizeof(t_symbol *)); - x->x_s_hrir = (t_symbol **)getbytes(x->x_n_ambi * sizeof(t_symbol *)); - x->x_s_hrtf_re = (t_symbol **)getbytes(x->x_n_ambi * sizeof(t_symbol *)); - x->x_s_hrtf_im = (t_symbol **)getbytes(x->x_n_ambi * sizeof(t_symbol *)); + x->x_hrir_filename = (t_symbol **)getbytes(x->x_n_ambi * sizeof(t_symbol *)); + x->x_s_hrir = (t_symbol **)getbytes(x->x_n_ambi * sizeof(t_symbol *)); + x->x_s_hrtf_re = (t_symbol **)getbytes(x->x_n_ambi * sizeof(t_symbol *)); + x->x_s_hrtf_im = (t_symbol **)getbytes(x->x_n_ambi * sizeof(t_symbol *)); for(i=0; i<n_ambi; i++) { diff --git a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode2.c b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode2.c index cfb50eb2e..f5e1e89b5 100644 --- a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode2.c +++ b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode2.c @@ -1142,7 +1142,25 @@ static void *bin_ambi_reduced_decode2_new(t_symbol *s, int argc, t_atom *argv) t_symbol *s_hrir=gensym("L_HRIR"); t_symbol *s_hrtf_re=gensym("HRTF_re"); t_symbol *s_hrtf_im=gensym("HRTF_im"); - t_symbol *s_fade_out_hrir=gensym("HRIR_win"); + t_symbol *s_fade_out_hrir=gensym("HRIR_win"); + t_atom sane_defaults[9]; + + if(!argc) + { + post("bin_ambi_reduced_decode2: warning: no arguments " + "provided: setting to [bin_ambi_reduced_decode2 1 2 1]"); + SETFLOAT(sane_defaults, 0.); + SETSYMBOL(sane_defaults+1, s_hrir); + SETSYMBOL(sane_defaults+2, s_hrtf_re); + SETSYMBOL(sane_defaults+3, s_hrtf_im); + SETSYMBOL(sane_defaults+4, s_fade_out_hrir); + SETFLOAT(sane_defaults+5, 1.); + SETFLOAT(sane_defaults+6, 2.); + SETFLOAT(sane_defaults+7, 1.); + SETFLOAT(sane_defaults+8, 512.); + argc = 9; + argv = sane_defaults; + } if((argc >= 9) && IS_A_FLOAT(argv,0) && diff --git a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fft.c b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fft.c index 04b4e0c5e..dfb094736 100644 --- a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fft.c +++ b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fft.c @@ -1273,11 +1273,33 @@ static void *bin_ambi_reduced_decode_fft_new(t_symbol *s, int argc, t_atom *argv t_symbol *s_hrir=gensym("L_HRIR"); t_symbol *s_hrtf_re=gensym("HRTF_re"); t_symbol *s_hrtf_im=gensym("HRTF_im"); - t_symbol *s_fade_out_hrir=gensym("HRIR_win"); + t_symbol *s_fade_out_hrir=gensym("HRIR_win"); + t_atom sane_defaults[11]; + + if(!argc) + { + post("bin_ambi_reduced_decode_fft: warning: no arguments " + "provided: setting to " + "[bin_ambi_reduced_decode_fft 1 L_HRIR HRTF_re HRTF_im " + "HRIR_win 1 2 1 1 0 512]"); + SETFLOAT(sane_defaults, 0.); + SETSYMBOL(sane_defaults+1, s_hrir); + SETSYMBOL(sane_defaults+2, s_hrtf_re); + SETSYMBOL(sane_defaults+3, s_hrtf_im); + SETSYMBOL(sane_defaults+4, s_fade_out_hrir); + SETFLOAT(sane_defaults+5, 1.); + SETFLOAT(sane_defaults+6, 2.); + SETFLOAT(sane_defaults+7, 1.); + SETFLOAT(sane_defaults+8, 1.); + SETFLOAT(sane_defaults+9, 0.); + SETFLOAT(sane_defaults+10, 512.); + argc = 11; + argv = sane_defaults; + } if((argc >= 11) && IS_A_FLOAT(argv,0) && - IS_A_SYMBOL(argv,1) && + IS_A_SYMBOL(argv,1) && IS_A_SYMBOL(argv,2) && IS_A_SYMBOL(argv,3) && IS_A_SYMBOL(argv,4) && @@ -1290,13 +1312,13 @@ static void *bin_ambi_reduced_decode_fft_new(t_symbol *s, int argc, t_atom *argv { prefix = (int)atom_getintarg(0, argc, argv); - s_hrir = (t_symbol *)atom_getsymbolarg(1, argc, argv); - s_hrtf_re = (t_symbol *)atom_getsymbolarg(2, argc, argv); - s_hrtf_im = (t_symbol *)atom_getsymbolarg(3, argc, argv); - s_fade_out_hrir = (t_symbol *)atom_getsymbolarg(4, argc, argv); + s_hrir = (t_symbol *)atom_getsymbolarg(1, argc, argv); + s_hrtf_re = (t_symbol *)atom_getsymbolarg(2, argc, argv); + s_hrtf_im = (t_symbol *)atom_getsymbolarg(3, argc, argv); + s_fade_out_hrir = (t_symbol *)atom_getsymbolarg(4, argc, argv); n_order = (int)atom_getintarg(5, argc, argv); - n_dim = (int)atom_getintarg(6, argc, argv); + n_dim = (int)atom_getintarg(6, argc, argv); n_ind_ls = (int)atom_getintarg(7, argc, argv); n_mrg_mir_ls = (int)atom_getintarg(8, argc, argv); n_ph_ls = (int)atom_getintarg(9, argc, argv); @@ -1306,7 +1328,7 @@ static void *bin_ambi_reduced_decode_fft_new(t_symbol *s, int argc, t_atom *argv } else if((argc >= 11) && IS_A_FLOAT(argv,0) && - IS_A_FLOAT(argv,1) && + IS_A_FLOAT(argv,1) && IS_A_FLOAT(argv,2) && IS_A_FLOAT(argv,3) && IS_A_FLOAT(argv,4) && @@ -1319,9 +1341,9 @@ static void *bin_ambi_reduced_decode_fft_new(t_symbol *s, int argc, t_atom *argv { prefix = (int)atom_getintarg(0, argc, argv); - s_hrir = gensym("L_HRIR"); - s_hrtf_re = gensym("HRTF_re"); - s_hrtf_im = gensym("HRTF_im"); + s_hrir = gensym("L_HRIR"); + s_hrtf_re = gensym("HRTF_re"); + s_hrtf_im = gensym("HRTF_im"); s_fade_out_hrir = gensym("HRIR_win"); n_order = (int)atom_getintarg(5, argc, argv); diff --git a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fft2.c b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fft2.c index 9d0e11db8..9f72be8e3 100644 --- a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fft2.c +++ b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fft2.c @@ -1161,7 +1161,28 @@ static void *bin_ambi_reduced_decode_fft2_new(t_symbol *s, int argc, t_atom *arg t_symbol *s_hrtf_re=gensym("HRTF_re"); t_symbol *s_hrtf_im=gensym("HRTF_im"); t_symbol *s_fade_out_hrir=gensym("HRIR_win"); + t_atom sane_defaults[10]; + if(!argc) + { + post("bin_ambi_reduced_decode_fft2: warning: no arguments " + "provided: setting to " + "[bin_ambi_reduced_decode_fft2 1 L_HRIR HRTF_re HRTF_im " + "HRIR_win 1 2 1 0 512]"); + SETFLOAT(sane_defaults, 0.); + SETSYMBOL(sane_defaults+1, s_hrir); + SETSYMBOL(sane_defaults+2, s_hrtf_re); + SETSYMBOL(sane_defaults+3, s_hrtf_im); + SETSYMBOL(sane_defaults+4, s_fade_out_hrir); + SETFLOAT(sane_defaults+5, 1.); + SETFLOAT(sane_defaults+6, 2.); + SETFLOAT(sane_defaults+7, 1.); + SETFLOAT(sane_defaults+8, 0.); + SETFLOAT(sane_defaults+9, 512.); + argc = 10; + argv = sane_defaults; + } + if((argc >= 10) && IS_A_FLOAT(argv,0) && IS_A_SYMBOL(argv,1) && diff --git a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fir.c b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fir.c index 19783da07..fe95b120e 100644 --- a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fir.c +++ b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fir.c @@ -1174,11 +1174,32 @@ static void *bin_ambi_reduced_decode_fir_new(t_symbol *s, int argc, t_atom *argv int n_order=0, n_dim=0, n_ind_ls=0, n_mrg_mir_ls=0, n_ph_ls=0, n_ambi=0, firsize=0, prefix=0; t_symbol *s_hrir=gensym("L_HRIR"); t_symbol *s_hrir_red=gensym("HRIR_red"); - t_symbol *s_fade_out_hrir=gensym("HRIR_win"); + t_symbol *s_fade_out_hrir=gensym("HRIR_win"); + t_atom sane_defaults[10]; + + if(!argc) + { + post("bin_ambi_reduced_decode_fir: warning: no arguments " + "provided: setting to " + "[bin_ambi_reduced_decode_fir 1 L_HRIR HRTF_red " + "HRIR_win 1 2 1 1 0 512]"); + SETFLOAT(sane_defaults, 0.); + SETSYMBOL(sane_defaults+1, s_hrir); + SETSYMBOL(sane_defaults+2, s_hrir_red); + SETSYMBOL(sane_defaults+3, s_fade_out_hrir); + SETFLOAT(sane_defaults+4, 1.); + SETFLOAT(sane_defaults+5, 2.); + SETFLOAT(sane_defaults+6, 1.); + SETFLOAT(sane_defaults+7, 1.); + SETFLOAT(sane_defaults+8, 0.); + SETFLOAT(sane_defaults+9, 512.); + argc = 10; + argv = sane_defaults; + } if((argc >= 10) && IS_A_FLOAT(argv,0) && - IS_A_SYMBOL(argv,1) && + IS_A_SYMBOL(argv,1) && IS_A_SYMBOL(argv,2) && IS_A_SYMBOL(argv,3) && IS_A_FLOAT(argv,4) && @@ -1190,12 +1211,12 @@ static void *bin_ambi_reduced_decode_fir_new(t_symbol *s, int argc, t_atom *argv { prefix = (int)atom_getintarg(0, argc, argv); - s_hrir = (t_symbol *)atom_getsymbolarg(1, argc, argv); - s_hrir_red = (t_symbol *)atom_getsymbolarg(2, argc, argv); - s_fade_out_hrir = (t_symbol *)atom_getsymbolarg(3, argc, argv); + s_hrir = (t_symbol *)atom_getsymbolarg(1, argc, argv); + s_hrir_red = (t_symbol *)atom_getsymbolarg(2, argc, argv); + s_fade_out_hrir = (t_symbol *)atom_getsymbolarg(3, argc, argv); n_order = (int)atom_getintarg(4, argc, argv); - n_dim = (int)atom_getintarg(5, argc, argv); + n_dim = (int)atom_getintarg(5, argc, argv); n_ind_ls = (int)atom_getintarg(6, argc, argv); n_mrg_mir_ls = (int)atom_getintarg(7, argc, argv); n_ph_ls = (int)atom_getintarg(8, argc, argv); diff --git a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fir2.c b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fir2.c index b491a31df..88295c726 100644 --- a/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fir2.c +++ b/externals/iem/iem_bin_ambi/src/bin_ambi_reduced_decode_fir2.c @@ -1057,11 +1057,31 @@ static void *bin_ambi_reduced_decode_fir2_new(t_symbol *s, int argc, t_atom *arg int n_order=0, n_dim=0, n_real_ls=0, n_pht_ls=0, n_ambi=0, firsize=0, prefix=0; t_symbol *s_hrir=gensym("L_HRIR"); t_symbol *s_hrir_red=gensym("HRIR_red"); - t_symbol *s_fade_out_hrir=gensym("HRIR_win"); + t_symbol *s_fade_out_hrir=gensym("HRIR_win"); + t_atom sane_defaults[9]; + + if(!argc) + { + post("bin_ambi_reduced_decode_fir2: warning: no arguments " + "provided: setting to " + "[bin_ambi_reduced_decode_fir2 1 L_HRIR HRIR_red " + "HRIR_win 1 2 1 0 32]"); + SETFLOAT(sane_defaults, 0.); + SETSYMBOL(sane_defaults+1, s_hrir); + SETSYMBOL(sane_defaults+2, s_hrir_red); + SETSYMBOL(sane_defaults+3, s_fade_out_hrir); + SETFLOAT(sane_defaults+4, 1.); + SETFLOAT(sane_defaults+5, 2.); + SETFLOAT(sane_defaults+6, 1.); + SETFLOAT(sane_defaults+7, 0.); + SETFLOAT(sane_defaults+8, 32.); + argc = 9; + argv = sane_defaults; + } if((argc >= 9) && IS_A_FLOAT(argv,0) && - IS_A_SYMBOL(argv,1) && + IS_A_SYMBOL(argv,1) && IS_A_SYMBOL(argv,2) && IS_A_SYMBOL(argv,3) && IS_A_FLOAT(argv,4) && -- GitLab