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,