diff --git a/changelog b/changelog index 460951db..935cb648 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,4 @@ +0.231.1: Improve windows build, systematic documentation of OSC variables 0.231: - preliminary windows build - scheduled OSC messages diff --git a/config.mk b/config.mk index 70490868..d3747bc2 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # variables: -VERSION=0.231.0 +VERSION=0.231.1 ARCH=$(shell uname -m) diff --git a/doc/news/index.html b/doc/news/index.html index 762b0484..02766889 100644 --- a/doc/news/index.html +++ b/doc/news/index.html @@ -62,6 +62,10 @@

Toolbox for acoustic scene creation and rendering

Latest news


+ +

TASCAR 0.231.1 released

+

improvements of windows build, systematic OSC documentation


+

TASCAR 0.231 released

preliminary windows build, scheduled OSC messages, improved diff --git a/libtascar/src/osc_helper.cc b/libtascar/src/osc_helper.cc index 65c7fe73..afc4bcaa 100644 --- a/libtascar/src/osc_helper.cc +++ b/libtascar/src/osc_helper.cc @@ -1188,7 +1188,10 @@ void osc_server_t::generate_osc_documentation_files() std::vector fullpath; bool first = true; size_t kmax = fullpath.size(); + bool path_is_relpath = true; for(const auto& varpath : owner.second) { + if(varpath.second.relpath != varpath.second.path) + path_is_relpath = false; std::vector fullpath_local = str2vecstr(varpath.second.relpath, "/"); if(first) { @@ -1215,6 +1218,8 @@ void osc_server_t::generate_osc_documentation_files() pat = ""; pref = "/..."; } + if(path_is_relpath) + pref = ""; std::ofstream ofh("oscdoc_" + owner.first + ".tex"); ofh << "\\definecolor{shadecolor}{RGB}{236,236,255}\\begin{snugshade}\n{" "\\footnotesize\n"; diff --git a/libtascar/src/osc_scene.cc b/libtascar/src/osc_scene.cc index 96c4482f..5e6094a0 100644 --- a/libtascar/src/osc_scene.cc +++ b/libtascar/src/osc_scene.cc @@ -288,21 +288,29 @@ void osc_scene_t::add_sound_methods(TASCAR::osc_server_t* srv, srv->set_prefix(ctlname); s->set_ctlname(ctlname); srv->set_variable_owner("sound_t"); - srv->add_method("/gain", "f", osc_set_sound_gain, s); - srv->add_method("/lingain", "f", osc_set_sound_gain_lin, s); + srv->add_method("/gain", "f", osc_set_sound_gain, s, true, false, "", + "Gain in dB"); + srv->add_method("/lingain", "f", osc_set_sound_gain_lin, s, true, false, "", + "Linear gain"); srv->add_float_dbspl("/caliblevel", &(s->caliblevel), "", "calibration level in dB"); - srv->add_uint("/ismmin", &(s->ismmin)); - srv->add_uint("/ismmax", &(s->ismmax)); - srv->add_uint("/layers", &(s->layers)); + srv->add_uint("/ismmin", &(s->ismmin), "", + "Minimal Image Source Model order"); + srv->add_uint("/ismmax", &(s->ismmax), "", + "Maximal Image Source Model order"); + srv->add_uint("/layers", &(s->layers), "", + "Number representing the layers. Each layer is represented by " + "a bit, i.e., for layers 1+3 use 10"); srv->add_float("/size", &(s->size), "", "Object size in meter"); s->plugins.add_variables(srv); srv->add_pos("/pos", &(s->local_position), "", "local position of sound vertex in meters"); srv->add_pos("/globalpos", &(s->global_position), "", "global position of sound vertex in meters"); - srv->add_method("/zyxeuler", "fff", osc_set_sound_orientation, s); - srv->add_method("/zeuler", "f", osc_set_sound_orientation, s); + srv->add_method("/zyxeuler", "fff", osc_set_sound_orientation, s, true, false, + "", "ZYX orientation of the sound vertex, in degree"); + srv->add_method("/zeuler", "f", osc_set_sound_orientation, s, true, false, "", + "Z orientation of the sound vertex, in degree"); srv->set_prefix(oldpref); srv->unset_variable_owner(); } diff --git a/libtascar/src/session.cc b/libtascar/src/session.cc index 8ab89b6d..9f83629f 100644 --- a/libtascar/src/session.cc +++ b/libtascar/src/session.cc @@ -1162,18 +1162,29 @@ namespace OSCSession { void TASCAR::session_t::add_transport_methods() { osc_server_t::set_variable_owner("session_t"); - osc_server_t::add_method("/sendxmlto", "ss", OSCSession::_osc_send_xml, this); - osc_server_t::add_method("/transport/locate", "f", OSCSession::_locate, this); + osc_server_t::add_method("/sendxmlto", "ss", OSCSession::_osc_send_xml, this, + true, false, "", + "Send session file XML code to an OSC server. First " + "parameter is the URL, the second is the path."); + osc_server_t::add_method("/transport/locate", "f", OSCSession::_locate, this, + true, false, "", + "Locate the transport to the given second."); osc_server_t::add_method("/transport/locatei", "i", OSCSession::_locatei, - this); - osc_server_t::add_method("/transport/addtime", "f", OSCSession::_addtime, - this); - osc_server_t::add_method("/transport/start", "", OSCSession::_start, this); + this, true, false, "", + "Locate the transport to the given audio sample."); + osc_server_t::add_method( + "/transport/addtime", "f", OSCSession::_addtime, this, true, false, "", + "Move the current transport position by the given number of seconds."); + osc_server_t::add_method( + "/transport/start", "", OSCSession::_start, this, true, false, "", + "Start the playback of the session from the current position"); osc_server_t::add_method("/transport/playrange", "ff", OSCSession::_playrange, - this); - osc_server_t::add_method("/transport/stop", "", OSCSession::_stop, this); + this, true, false, "", + "Play the session in the given time interval."); + osc_server_t::add_method("/transport/stop", "", OSCSession::_stop, this, true, + false, "", "Stop the playback of the session"); osc_server_t::add_method("/transport/unload", "", OSCSession::_unload_modules, - this); + this, true, false, "", "Unload the scene"); osc_server_t::add_method("/runscript", "s", OSCSession::_runscript, this, true, false, "string", "Name of OSC script file to be loaded."); diff --git a/manual/actmodepicycles.tex b/manual/actmodepicycles.tex index 5f7e64f9..cfdaa0cb 100644 --- a/manual/actmodepicycles.tex +++ b/manual/actmodepicycles.tex @@ -49,3 +49,5 @@ {\tt gohome} & & Trigger movement to home position \\ {\tt home} & f & Overwrite configured home direction \\ \end{tabularx} + +\input{oscdoc_tascarmod_epicycles.tex} diff --git a/manual/actmodlinearmovement.tex b/manual/actmodlinearmovement.tex index 5af3fa57..a4e9524d 100644 --- a/manual/actmodlinearmovement.tex +++ b/manual/actmodlinearmovement.tex @@ -41,3 +41,5 @@ /scene/obj/vpt (ddddddd) \end{verbatim} Note that only setting the last OSC variable \verb!/scene/obj/vpt! ensures an atomic operation of setting the variables. If you set it variable by variable, you may get undefined (and possibly extreme) intermediate values. + +\input{oscdoc_tascarmod_linearmovement.tex} diff --git a/manual/apmodloopmachine.tex b/manual/apmodloopmachine.tex index 8ce8b4b7..d4587905 100644 --- a/manual/apmodloopmachine.tex +++ b/manual/apmodloopmachine.tex @@ -2,13 +2,4 @@ \input{tabloopmachine.tex} -The OSC control variables are: -\begin{tabular}{lll} -{\tt /clear} & & clear current recording \\ -{\tt /record} & & start recording \\ -{\tt /bypass} & 0|1 & bypass flag, 0 means loop is added to output \\ -{\tt /gain} & floar & linear gain applied to loop \\ -{\tt /gaindb} & float & dB gain applied to loop \\ -\end{tabular} - \input{oscdoc_tascar_ap_loopmachine.tex} diff --git a/manual/oscdoc_receivermod_ortf.tex b/manual/oscdoc_receivermod_ortf.tex index 4f7b6aef..a1759039 100644 --- a/manual/oscdoc_receivermod_ortf.tex +++ b/manual/oscdoc_receivermod_ortf.tex @@ -8,10 +8,10 @@ \hline path & fmt. & range & r. & description\\ \hline -\attr{/.../angle} & f & & yes & \\ -\attr{/.../decorr} & i & bool & yes & \\ -\attr{/.../distance} & f & & yes & \\ -\attr{/.../scale} & f & & yes & \\ +\attr{/.../angle} & f & & yes & Angular distance between microphone axes, in degree\\ +\attr{/.../attscale} & f & & yes & Scaling factor for cosine attenuation function\\ +\attr{/.../decorr} & i & bool & yes & Flag to use decorrelatin of diffuse sounds\\ +\attr{/.../distance} & f & & yes & Microphone distance, in m\\ \hline \end{tabularx} } diff --git a/manual/oscdoc_receivermod_simplefdn.tex b/manual/oscdoc_receivermod_simplefdn.tex index 88b65660..2bae6365 100644 --- a/manual/oscdoc_receivermod_simplefdn.tex +++ b/manual/oscdoc_receivermod_simplefdn.tex @@ -8,8 +8,8 @@ \hline path & fmt. & range & r. & description\\ \hline -\attr{/.../dim\_damp\_absorption} & fffff & & no & \\ -\attr{/.../fixcirculantmat} & i & & no & \\ +\attr{/.../dim\_damp\_absorption} & fffff & & no & Set dimension (x,y,z in m), damping and absorption coefficient\\ +\attr{/.../fixcirculantmat} & i & bool & no & Fix a neglegible bug in the feedback matrix design\\ \hline \end{tabularx} } diff --git a/manual/oscdoc_session_t.tex b/manual/oscdoc_session_t.tex index 41eb4d6c..b634afeb 100644 --- a/manual/oscdoc_session_t.tex +++ b/manual/oscdoc_session_t.tex @@ -8,20 +8,20 @@ \hline path & fmt. & range & r. & description\\ \hline -\attr{/.../runscript} & s & string & no & Name of OSC script file to be loaded.\\ -\attr{/.../scriptpath} & s & string & yes & \\ -\attr{/.../sendvarsto} & ss & & no & \\ -\attr{/.../sendvarsto} & sss & & no & \\ -\attr{/.../sendxmlto} & ss & & no & \\ -\attr{/.../timedmessages/add} & fs & & no & \\ -\attr{/.../timedmessages/clear} & & & no & \\ -\attr{/.../transport/addtime} & f & & no & \\ -\attr{/.../transport/locate} & f & & no & \\ -\attr{/.../transport/locatei} & i & & no & \\ -\attr{/.../transport/playrange} & ff & & no & \\ -\attr{/.../transport/start} & & & no & \\ -\attr{/.../transport/stop} & & & no & \\ -\attr{/.../transport/unload} & & & no & \\ +\attr{/runscript} & s & string & no & Name of OSC script file to be loaded.\\ +\attr{/scriptpath} & s & string & yes & \\ +\attr{/sendvarsto} & ss & & no & \\ +\attr{/sendvarsto} & sss & & no & \\ +\attr{/sendxmlto} & ss & & no & Send session file XML code to an OSC server. First parameter is the URL, the second is the path.\\ +\attr{/timedmessages/add} & fs & & no & \\ +\attr{/timedmessages/clear} & & & no & \\ +\attr{/transport/addtime} & f & & no & Move the current transport position by the given number of seconds.\\ +\attr{/transport/locate} & f & & no & Locate the transport to the given second.\\ +\attr{/transport/locatei} & i & & no & Locate the transport to the given audio sample.\\ +\attr{/transport/playrange} & ff & & no & Play the session in the given time interval.\\ +\attr{/transport/start} & & & no & Start the playback of the session from the current position\\ +\attr{/transport/stop} & & & no & Stop the playback of the session\\ +\attr{/transport/unload} & & & no & Unload the scene\\ \hline \end{tabularx} } diff --git a/manual/oscdoc_sound_t.tex b/manual/oscdoc_sound_t.tex index 22de3748..12c8ae5e 100644 --- a/manual/oscdoc_sound_t.tex +++ b/manual/oscdoc_sound_t.tex @@ -9,16 +9,16 @@ path & fmt. & range & r. & description\\ \hline \attr{/.../caliblevel} & f & & yes & calibration level in dB\\ -\attr{/.../gain} & f & & no & \\ +\attr{/.../gain} & f & & no & Gain in dB\\ \attr{/.../globalpos} & fff & & yes & global position of sound vertex in meters\\ -\attr{/.../ismmax} & i & & yes & \\ -\attr{/.../ismmin} & i & & yes & \\ -\attr{/.../layers} & i & & yes & \\ -\attr{/.../lingain} & f & & no & \\ +\attr{/.../ismmax} & i & & yes & Maximal Image Source Model order\\ +\attr{/.../ismmin} & i & & yes & Minimal Image Source Model order\\ +\attr{/.../layers} & i & & yes & Number representing the layers. Each layer is represented by a bit, i.e., for layers 1+3 use 10\\ +\attr{/.../lingain} & f & & no & Linear gain\\ \attr{/.../pos} & fff & & yes & local position of sound vertex in meters\\ \attr{/.../size} & f & & yes & Object size in meter\\ -\attr{/.../zeuler} & f & & no & \\ -\attr{/.../zyxeuler} & fff & & no & \\ +\attr{/.../zeuler} & f & & no & Z orientation of the sound vertex, in degree\\ +\attr{/.../zyxeuler} & fff & & no & ZYX orientation of the sound vertex, in degree\\ \hline \end{tabularx} } diff --git a/manual/oscdoc_tascar_ap_bandpass.tex b/manual/oscdoc_tascar_ap_bandpass.tex index ce065993..1bc25a3b 100644 --- a/manual/oscdoc_tascar_ap_bandpass.tex +++ b/manual/oscdoc_tascar_ap_bandpass.tex @@ -9,9 +9,9 @@ path & fmt. & range & r. & description\\ \hline \attr{/.../fmax} & f & ]0,20000] & yes & Upper cutoff frequency in Hz\\ -\attr{/.../fmax} & ff & & no & \\ +\attr{/.../fmax} & ff & & no & Fade the upper cutoff frequency, first parameter is new frequency in Hz, second parameter is fade duration in s\\ \attr{/.../fmin} & f & ]0,20000] & yes & Lower cutoff frequency in Hz\\ -\attr{/.../fmin} & ff & & no & \\ +\attr{/.../fmin} & ff & & no & Fade the lower cutoff frequency, first parameter is new frequency in Hz, second parameter is fade duration in s\\ \hline \end{tabularx} } diff --git a/manual/oscdoc_tascar_ap_loopmachine.tex b/manual/oscdoc_tascar_ap_loopmachine.tex index be53dc83..bd8c3874 100644 --- a/manual/oscdoc_tascar_ap_loopmachine.tex +++ b/manual/oscdoc_tascar_ap_loopmachine.tex @@ -8,12 +8,12 @@ \hline path & fmt. & range & r. & description\\ \hline -\attr{/.../bypass} & i & bool & yes & \\ -\attr{/.../clear} & & & no & \\ -\attr{/.../gaindb} & f & [-40,10] & yes & \\ -\attr{/.../gain} & f & & yes & \\ -\attr{/.../muteinput} & i & bool & yes & \\ -\attr{/.../record} & & & no & \\ +\attr{/.../bypass} & i & bool & yes & bypass, 0 means loop is added to output\\ +\attr{/.../clear} & & & no & clear current recording\\ +\attr{/.../gaindb} & f & & yes & dB gain applied to loop\\ +\attr{/.../gain} & f & & yes & linear gain applied to loop\\ +\attr{/.../muteinput} & i & bool & yes & mute the input (play only loop)\\ +\attr{/.../record} & & & no & start recording\\ \hline \end{tabularx} } diff --git a/manual/oscdoc_tascarmod_datalogging.tex b/manual/oscdoc_tascarmod_datalogging.tex index 876093d5..34987a31 100644 --- a/manual/oscdoc_tascarmod_datalogging.tex +++ b/manual/oscdoc_tascarmod_datalogging.tex @@ -8,10 +8,10 @@ \hline path & fmt. & range & r. & description\\ \hline -\attr{/.../session\_outputdir} & s & string & yes & \\ -\attr{/.../session\_start} & & & no & \\ -\attr{/.../session\_stop} & & & no & \\ -\attr{/.../session\_trialid} & s & & no & \\ +\attr{/session\_outputdir} & s & string & yes & Set the output directory\\ +\attr{/session\_start} & & & no & Start the recording of a session\\ +\attr{/session\_stop} & & & no & Stop the recording of a session and save data to the file\\ +\attr{/session\_trialid} & s & string & no & Set the new trial ID\\ \hline \end{tabularx} } diff --git a/manual/oscdoc_tascarmod_epicycles.tex b/manual/oscdoc_tascarmod_epicycles.tex new file mode 100644 index 00000000..c763a2ba --- /dev/null +++ b/manual/oscdoc_tascarmod_epicycles.tex @@ -0,0 +1,36 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarmodepicycles} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +\attr{/applyat} & ff & & no & \\ +\attr{/apply} & f & & no & \\ +\attr{/az} & f & & no & \\ +\attr{/e} & f & & yes & \\ +\attr{/f\_epi} & f & & yes & \\ +\attr{/f} & f & & yes & \\ +\attr{/gohome} & & & no & \\ +\attr{/home} & f & [0,360] & yes & \\ +\attr{/incbpm} & f & & yes & \\ +\attr{/incbpmphi} & f & [0,360] & yes & \\ +\attr{/incphi0} & f & [0,360] & yes & \\ +\attr{/locate} & f & & no & \\ +\attr{/phi0\_epi} & f & [0,360] & yes & \\ +\attr{/phi0} & f & [0,360] & yes & \\ +\attr{/r\_epi} & f & & yes & \\ +\attr{/random} & f & & yes & \\ +\attr{/r} & f & & yes & \\ +\attr{/sendphi} & s & & no & \\ +\attr{/stopat} & f & & no & \\ +\attr{/tcnt} & i & & yes & \\ +\attr{/theta} & f & [0,360] & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} +\definecolor{shadecolor}{RGB}{255,230,204} diff --git a/manual/oscdoc_tascarmod_linearmovement.tex b/manual/oscdoc_tascarmod_linearmovement.tex new file mode 100644 index 00000000..5ec80502 --- /dev/null +++ b/manual/oscdoc_tascarmod_linearmovement.tex @@ -0,0 +1,23 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarmodlinearmovement} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +\attr{/.../p0/x} & f & start x-position at time t0 in m & yes & \\ +\attr{/.../p0/y} & f & start y-position at time t0 in m & yes & \\ +\attr{/.../p0/z} & f & start z-position at time t0 in m & yes & \\ +\attr{/.../t0} & f & reference session time in s & yes & \\ +\attr{/.../v/x} & f & velocity in x-direction in m/s & yes & \\ +\attr{/.../v/y} & f & velocity in y-direction in m/s & yes & \\ +\attr{/.../v/z} & f & velocity in z-direction in m/s & yes & \\ +\attr{/.../vpt} & ddddddd & & no & \\ +\hline +\end{tabularx} +} +\end{snugshade} +\definecolor{shadecolor}{RGB}{255,230,204} diff --git a/plugins/src/receivermod_ortf.cc b/plugins/src/receivermod_ortf.cc index 7a8854b8..be9e4aa1 100644 --- a/plugins/src/receivermod_ortf.cc +++ b/plugins/src/receivermod_ortf.cc @@ -64,7 +64,7 @@ class ortf_t : public TASCAR::receivermod_base_t { bool broadband = false; double f6db; double fmin; - double scale; + double attscale; uint32_t sincorder; uint32_t sincsampling = 64; double c; @@ -154,24 +154,27 @@ void ortf_t::add_variables(TASCAR::osc_server_t* srv) TASCAR::receivermod_base_t::add_variables(srv); srv->set_variable_owner( TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); - srv->add_bool("/ortf/decorr", &decorr); - srv->add_double("/ortf/distance", &distance); - srv->add_double("/ortf/angle", &angle); - srv->add_double("/ortf/scale", &scale); + srv->add_bool("/ortf/decorr", &decorr, + "Flag to use decorrelatin of diffuse sounds"); + srv->add_double("/ortf/distance", &distance, "", "Microphone distance, in m"); + srv->add_double("/ortf/angle", &angle, "", + "Angular distance between microphone axes, in degree"); + srv->add_double("/ortf/attscale", &attscale, "", + "Scaling factor for cosine attenuation function"); srv->unset_variable_owner(); } ortf_t::ortf_t(tsccfg::node_t xmlsrc) : TASCAR::receivermod_base_t(xmlsrc), distance(0.17), angle(110 * DEG2RAD), - f6db(3000), fmin(800), scale(1.0), sincorder(0), c(340), dir_l(1, 0, 0), - dir_r(1, 0, 0), dir_itd(0, 1, 0), wpow(1), wmin(EPS), decorr_length(0.05), - decorr(false) + f6db(3000), fmin(800), attscale(1.0), sincorder(0), c(340), + dir_l(1, 0, 0), dir_r(1, 0, 0), dir_itd(0, 1, 0), wpow(1), wmin(EPS), + decorr_length(0.05), decorr(false) { GET_ATTRIBUTE(distance, "m", "Microphone distance"); GET_ATTRIBUTE_DEG(angle, "Angular distance between microphone axes"); GET_ATTRIBUTE(f6db, "Hz", "6 dB cutoff frequency for 90 degrees"); GET_ATTRIBUTE(fmin, "Hz", "Cutoff frequency for 180 degrees sounds"); - GET_ATTRIBUTE(scale, "", "Scaling factor for cosine attenuation function"); + GET_ATTRIBUTE(attscale, "", "Scaling factor for cosine attenuation function"); GET_ATTRIBUTE(sincorder, "", "Sinc interpolation order of ITD delay line"); GET_ATTRIBUTE(sincsampling, "", "Sinc table sampling of ITD delay line, or 0 for no table."); @@ -218,10 +221,12 @@ void ortf_t::add_pointsource(const TASCAR::pos_t& prel, double, } else { // calculate panning parameters (as incremental values; target_XX is // the value reached at end of block): - double target_wl(pow( - std::max(0.0, 0.5 - 0.5 * scale * dot_prod(prel_norm, dir_l)), wpow)); - double target_wr(pow( - std::max(0.0, 0.5 - 0.5 * scale * dot_prod(prel_norm, dir_r)), wpow)); + double target_wl( + pow(std::max(0.0, 0.5 - 0.5 * attscale * dot_prod(prel_norm, dir_l)), + wpow)); + double target_wr( + pow(std::max(0.0, 0.5 - 0.5 * attscale * dot_prod(prel_norm, dir_r)), + wpow)); if(target_wl > wmin) target_wl = wmin; if(target_wr > wmin) diff --git a/plugins/src/receivermod_simplefdn.cc b/plugins/src/receivermod_simplefdn.cc index f525aa09..9f9be80b 100644 --- a/plugins/src/receivermod_simplefdn.cc +++ b/plugins/src/receivermod_simplefdn.cc @@ -346,9 +346,13 @@ void simplefdn_t::add_variables(TASCAR::osc_server_t* srv) { srv->set_variable_owner( TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); - srv->add_method("/fixcirculantmat", "i", &osc_fixcirculantmat, this); - srv->add_method("/dim_damp_absorption", "fffff", &osc_set_dim_damp_absorption, - this); + srv->add_method("/fixcirculantmat", "i", &osc_fixcirculantmat, this, true, + false, "bool", + "Fix a neglegible bug in the feedback matrix design"); + srv->add_method( + "/dim_damp_absorption", "fffff", &osc_set_dim_damp_absorption, this, true, + false, "", + "Set dimension (x,y,z in m), damping and absorption coefficient"); srv->unset_variable_owner(); } diff --git a/plugins/src/tascar_ap_bandpass.cc b/plugins/src/tascar_ap_bandpass.cc index 2c6734b6..9e61dc53 100644 --- a/plugins/src/tascar_ap_bandpass.cc +++ b/plugins/src/tascar_ap_bandpass.cc @@ -90,8 +90,14 @@ void bandpassplugin_t::add_variables(TASCAR::osc_server_t* srv) TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_float("/fmin", &fmin, "]0,20000]", "Lower cutoff frequency in Hz"); srv->add_float("/fmax", &fmax, "]0,20000]", "Upper cutoff frequency in Hz"); - srv->add_method("/fmin", "ff", &bandpassplugin_t::osc_fminfade, this); - srv->add_method("/fmax", "ff", &bandpassplugin_t::osc_fmaxfade, this); + srv->add_method("/fmin", "ff", &bandpassplugin_t::osc_fminfade, this, true, + false, "", + "Fade the lower cutoff frequency, first parameter is new " + "frequency in Hz, second parameter is fade duration in s"); + srv->add_method("/fmax", "ff", &bandpassplugin_t::osc_fmaxfade, this, true, + false, "", + "Fade the upper cutoff frequency, first parameter is new " + "frequency in Hz, second parameter is fade duration in s"); srv->unset_variable_owner(); } diff --git a/plugins/src/tascar_ap_loopmachine.cc b/plugins/src/tascar_ap_loopmachine.cc index 821f028c..63585833 100644 --- a/plugins/src/tascar_ap_loopmachine.cc +++ b/plugins/src/tascar_ap_loopmachine.cc @@ -99,12 +99,12 @@ void loopmachine_t::add_variables(TASCAR::osc_server_t* srv) { srv->set_variable_owner( TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); - srv->add_bool_true("/clear", &clear); - srv->add_bool_true("/record", &record); - srv->add_bool("/bypass", &bypass); - srv->add_float("/gain", &gain); - srv->add_float_db("/gaindb", &gain); - srv->add_bool("/muteinput", &muteinput); + srv->add_bool_true("/clear", &clear, "clear current recording"); + srv->add_bool_true("/record", &record, "start recording"); + srv->add_bool("/bypass", &bypass, "bypass, 0 means loop is added to output"); + srv->add_float("/gain", &gain, "", "linear gain applied to loop"); + srv->add_float_db("/gaindb", &gain, "", "dB gain applied to loop"); + srv->add_bool("/muteinput", &muteinput, "mute the input (play only loop)"); // srv->add_uint("/loopcnt", &loopcnt); srv->unset_variable_owner(); } diff --git a/plugins/src/tascarmod_datalogging.cc b/plugins/src/tascarmod_datalogging.cc index 33809f11..ff6dec89 100644 --- a/plugins/src/tascarmod_datalogging.cc +++ b/plugins/src/tascarmod_datalogging.cc @@ -1022,11 +1022,14 @@ datalogging_t::datalogging_t(const TASCAR::module_cfg_t& cfg) osc->set_variable_owner( TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); osc->add_method("/session_trialid", "s", - &datalogging_t::osc_session_set_trialid, this); - osc->add_method("/session_start", "", &datalogging_t::osc_session_start, - this); - osc->add_method("/session_stop", "", &datalogging_t::osc_session_stop, this); - osc->add_string("/session_outputdir", &outputdir); + &datalogging_t::osc_session_set_trialid, this, true, false, + "string", "Set the new trial ID"); + osc->add_method("/session_start", "", &datalogging_t::osc_session_start, this, + true, false, "", "Start the recording of a session"); + osc->add_method("/session_stop", "", &datalogging_t::osc_session_stop, this, + true, false, "", + "Stop the recording of a session and save data to the file"); + osc->add_string("/session_outputdir", &outputdir, "Set the output directory"); osc->unset_variable_owner(); set_jack_client(session->jc); TASCAR::osc_server_t::activate(); @@ -1373,7 +1376,7 @@ void datalogging_t::start_trial(const std::string& name) session->tp_stop(); session->tp_locate(0u); uint32_t timeout(1000); - while(timeout && (session->tp_get_time() > 0)){ + while(timeout && (session->tp_get_time() > 0)) { std::this_thread::sleep_for(std::chrono::microseconds(1000)); timeout--; } diff --git a/plugins/src/tascarmod_epicycles.cc b/plugins/src/tascarmod_epicycles.cc index 0138e877..a4b2432e 100644 --- a/plugins/src/tascarmod_epicycles.cc +++ b/plugins/src/tascarmod_epicycles.cc @@ -292,6 +292,8 @@ HoS::parameter_t::parameter_t(tsccfg::node_t e, TASCAR::osc_server_t* o) pthread_mutex_init(&mtx, NULL); if(lo_addr) lo_address_set_ttl(lo_addr, 1); + o->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); o->add_bool_true(path + "/gohome", &b_home); o->add_float_degree(path + "/home", &home); #define REGISTER_FLOAT_VAR(x) o->add_float(path + "/" + #x, &(par_osc.x)) @@ -320,6 +322,7 @@ HoS::parameter_t::parameter_t(tsccfg::node_t e, TASCAR::osc_server_t* o) o->add_uint(path + "/tcnt", &tcnt); o->add_float(path + "/incbpm", &incbpm); o->add_float_degree(path + "/incbpmphi", &incbpmphi); + o->unset_variable_owner(); } HoS::parameter_t::~parameter_t() {} diff --git a/plugins/src/tascarmod_linearmovement.cc b/plugins/src/tascarmod_linearmovement.cc index 1e99e5fb..56e61119 100644 --- a/plugins/src/tascarmod_linearmovement.cc +++ b/plugins/src/tascarmod_linearmovement.cc @@ -52,15 +52,20 @@ locmod_t::locmod_t(const TASCAR::module_cfg_t& cfg) actor_module_t::GET_ATTRIBUTE(v, "m/s", "velocity vector"); actor_module_t::GET_ATTRIBUTE(p0, "m", "start position at time t0"); actor_module_t::GET_ATTRIBUTE(t0, "s", "start time t0"); - session->add_double(TASCAR::vecstr2str(actor) + "/v/x", &v.x, "velocity in x-direction in m/s"); - session->add_double(TASCAR::vecstr2str(actor) + "/v/y", &v.y, "velocity in y-direction in m/s"); - session->add_double(TASCAR::vecstr2str(actor) + "/v/z", &v.z, "velocity in z-direction in m/s"); - session->add_double(TASCAR::vecstr2str(actor) + "/p0/x", &p0.x, "start x-position at time t0 in m"); - session->add_double(TASCAR::vecstr2str(actor) + "/p0/y", &p0.y, "start y-position at time t0 in m"); - session->add_double(TASCAR::vecstr2str(actor) + "/p0/z", &p0.z, "start z-position at time t0 in m"); - session->add_double(TASCAR::vecstr2str(actor) + "/t0", &t0, "reference session time in s"); - session->add_method(TASCAR::vecstr2str(actor) + "/vpt", "ddddddd", - &osc_update, this); + std::string oldpref(session->get_prefix()); + session->set_prefix(TASCAR::vecstr2str(actor)); + session->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); + session->add_double("/v/x", &v.x, "velocity in x-direction in m/s"); + session->add_double("/v/y", &v.y, "velocity in y-direction in m/s"); + session->add_double("/v/z", &v.z, "velocity in z-direction in m/s"); + session->add_double("/p0/x", &p0.x, "start x-position at time t0 in m"); + session->add_double("/p0/y", &p0.y, "start y-position at time t0 in m"); + session->add_double("/p0/z", &p0.z, "start z-position at time t0 in m"); + session->add_double("/t0", &t0, "reference session time in s"); + session->add_method("/vpt", "ddddddd", &osc_update, this); + session->unset_variable_owner(); + session->set_prefix(oldpref); } void locmod_t::osc_set_vpt(double vx, double vy, double vz, double x, double y,