diff --git a/libtascar/include/osc_helper.h b/libtascar/include/osc_helper.h index 7afc5db1..257e1270 100644 --- a/libtascar/include/osc_helper.h +++ b/libtascar/include/osc_helper.h @@ -62,6 +62,7 @@ namespace TASCAR { class descriptor_t { public: std::string path; + std::string relpath; std::string typespec; bool readable; std::string rangehint; @@ -326,7 +327,7 @@ namespace TASCAR { std::mutex mtxdispatch; std::map> timed_messages; std::mutex mtxtimedmessages; - std::map> owned_vars; + std::map> owned_vars; std::string varowner; }; diff --git a/libtascar/src/acousticmodel.cc b/libtascar/src/acousticmodel.cc index 9e0b8679..29cc5ca9 100644 --- a/libtascar/src/acousticmodel.cc +++ b/libtascar/src/acousticmodel.cc @@ -597,7 +597,7 @@ receiver_t::receiver_t(tsccfg::node_t xmlsrc, const std::string& name, "Number of reflections created by scattering filter"); GET_ATTRIBUTE(scatterstructuresize, "m", "size of scatter structure"); GET_ATTRIBUTE(scatterdamping, "", "damping of scatter reflection filter"); - GET_ATTRIBUTE_DEG(scatterspread,"Spatial spread of scattering"); + GET_ATTRIBUTE_DEG(scatterspread, "Spatial spread of scattering"); // end proxy if(avgdist <= 0) avgdist = 0.5f * powf(volumetric.boxvolumef(), 0.33333f); @@ -739,7 +739,7 @@ void receiver_t::postproc(std::vector& output) path.dlout.x = scatterallpass_x[kflt].filter(x.x); path.dlout.y = scatterallpass_y[kflt].filter(x.y); path.dlout.z = scatterallpass_z[kflt].filter(x.z); - //path.dlout = x; + // path.dlout = x; ++kflt; } scatterfilter->process(scatterfilterpath); @@ -1053,6 +1053,14 @@ void receiver_t::add_variables(TASCAR::osc_server_t* srv) maskplug->add_variables(srv); srv->set_prefix(oldpref); } + srv->set_variable_owner("receiver_t"); + // uint32_t scatterreflections = 0; + srv->add_float_degree("/scatterspread", &scatterspread, + "Spatial spread of scattering"); + srv->add_float("/scatterstructuresize", &scatterstructuresize, "[0,10]", + "size of scatter structure in m"); + srv->add_float("/scatterdamping", &scatterdamping, "[0,1]", + "damping of scatter reflection filter"); srv->add_pos("/proxy/position", &proxy_position, "", "Proxy position in m"); srv->add_bool("/proxy/is_relative", &proxy_is_relative, "Proxy is relative to receiver (true) or in absolute " @@ -1063,6 +1071,7 @@ void receiver_t::add_variables(TASCAR::osc_server_t* srv) srv->add_bool("/proxy/gain", &proxy_gain, "Use proxy position for gain"); srv->add_bool("/proxy/direction", &proxy_direction, "Use proxy position for direction"); + srv->unset_variable_owner(); } soundpath_t::soundpath_t(const source_t* src, const soundpath_t* parent_, diff --git a/libtascar/src/audioplugin.cc b/libtascar/src/audioplugin.cc index 557bf437..aed76d78 100644 --- a/libtascar/src/audioplugin.cc +++ b/libtascar/src/audioplugin.cc @@ -28,64 +28,60 @@ using namespace TASCAR; transport_t::transport_t() - : session_time_samples(0), session_time_seconds(0), - object_time_samples(0), object_time_seconds(0), rolling(false) + : session_time_samples(0), session_time_seconds(0), object_time_samples(0), + object_time_seconds(0), rolling(false) { } -audioplugin_base_t::audioplugin_base_t( const audioplugin_cfg_t& cfg ) - : xml_element_t(cfg.xmlsrc), - licensed_component_t(typeid(*this).name()), - name(cfg.name), - parentname(cfg.parentname), - modname(cfg.modname) +audioplugin_base_t::audioplugin_base_t(const audioplugin_cfg_t& cfg) + : xml_element_t(cfg.xmlsrc), licensed_component_t(typeid(*this).name()), + name(cfg.name), parentname(cfg.parentname), modname(cfg.modname) { } -audioplugin_base_t::~audioplugin_base_t() -{ -} - -TASCAR_RESOLVER( audioplugin_base_t, const audioplugin_cfg_t& ) +audioplugin_base_t::~audioplugin_base_t() {} +TASCAR_RESOLVER(audioplugin_base_t, const audioplugin_cfg_t&) -TASCAR::audioplugin_t::audioplugin_t( const audioplugin_cfg_t& cfg ) - : audioplugin_base_t( cfg ), - lib(NULL), - libdata(NULL) +TASCAR::audioplugin_t::audioplugin_t(const audioplugin_cfg_t& cfg) + : audioplugin_base_t(cfg), lib(NULL), libdata(NULL) { plugintype = tsccfg::node_get_name(e); - if( plugintype == "plugin" ) - get_attribute("type",plugintype,"","plugin type"); + if(plugintype == "plugin") + get_attribute("type", plugintype, "", "plugin type"); std::string libname("tascar_ap_"); - #ifdef PLUGINPREFIX +#ifdef PLUGINPREFIX libname = PLUGINPREFIX + libname; - #endif +#endif libname += plugintype + TASCAR::dynamic_lib_extension(); modname = plugintype; audioplugin_cfg_t lcfg(cfg); lcfg.modname = modname; - lib = dlopen((TASCAR::get_libdir()+libname).c_str(), RTLD_NOW ); - if( !lib ) - throw TASCAR::ErrMsg("Unable to open module \""+plugintype+"\": "+dlerror()); - try{ - audioplugin_base_t_resolver( &libdata, lcfg, lib, libname ); + lib = dlopen((TASCAR::get_libdir() + libname).c_str(), RTLD_NOW); + if(!lib) + throw TASCAR::ErrMsg("Unable to open module \"" + plugintype + + "\": " + dlerror()); + try { + audioplugin_base_t_resolver(&libdata, lcfg, lib, libname); } - catch( ... ){ + catch(...) { dlclose(lib); throw; } } -void TASCAR::audioplugin_t::ap_process( std::vector& chunk, const TASCAR::pos_t& pos, const TASCAR::zyx_euler_t& o, const TASCAR::transport_t& tp ) +void TASCAR::audioplugin_t::ap_process(std::vector& chunk, + const TASCAR::pos_t& pos, + const TASCAR::zyx_euler_t& o, + const TASCAR::transport_t& tp) { - libdata->ap_process( chunk, pos, o, tp ); + libdata->ap_process(chunk, pos, o, tp); } void TASCAR::audioplugin_t::configure() { audioplugin_base_t::configure(); - libdata->prepare( cfg() ); + libdata->prepare(cfg()); } void TASCAR::audioplugin_t::post_prepare() @@ -102,13 +98,13 @@ void TASCAR::audioplugin_t::release() void TASCAR::audioplugin_t::add_variables(TASCAR::osc_server_t* srv) { - libdata->add_variables( srv ); + libdata->add_variables(srv); } -void TASCAR::audioplugin_t::add_licenses( licensehandler_t* session ) +void TASCAR::audioplugin_t::add_licenses(licensehandler_t* session) { - audioplugin_base_t::add_licenses( session ); - libdata->add_licenses( session ); + audioplugin_base_t::add_licenses(session); + libdata->add_licenses(session); } TASCAR::audioplugin_t::~audioplugin_t() diff --git a/libtascar/src/maskplugin.cc b/libtascar/src/maskplugin.cc index 3438ea66..11977152 100644 --- a/libtascar/src/maskplugin.cc +++ b/libtascar/src/maskplugin.cc @@ -52,7 +52,7 @@ TASCAR::maskplugin_t::maskplugin_t(const maskplugin_cfg_t& cfg) modname = plugintype; maskplugin_cfg_t lcfg(cfg); lcfg.modname = modname; - lib = dlopen((TASCAR::get_libdir()+libname).c_str(), RTLD_NOW); + lib = dlopen((TASCAR::get_libdir() + libname).c_str(), RTLD_NOW); if(!lib) throw TASCAR::ErrMsg("Unable to open module \"" + plugintype + "\": " + dlerror()); diff --git a/libtascar/src/osc_helper.cc b/libtascar/src/osc_helper.cc index 92a2687f..99d37aba 100644 --- a/libtascar/src/osc_helper.cc +++ b/libtascar/src/osc_helper.cc @@ -681,6 +681,7 @@ void osc_server_t::add_method(const std::string& path, const char* typespec, lo_server_thread_add_method(lost, sPath.c_str(), typespec, h, user_data); if(visible) { descriptor_t d; + d.relpath = path; d.path = sPath; if(typespec) d.typespec = typespec; @@ -691,9 +692,9 @@ void osc_server_t::add_method(const std::string& path, const char* typespec, d.comment = comment; variables.push_back(d); if(!varowner.empty()) - owned_vars[varowner].push_back(d.path + d.typespec); + owned_vars[varowner][path + d.typespec] = d; else { - owned_vars["undocumented"].push_back(d.path + d.typespec); + owned_vars["undocumented"][path + d.typespec] = d; } } } @@ -1179,7 +1180,7 @@ void osc_server_t::unset_variable_owner() void osc_server_t::generate_osc_documentation_files() { - auto vmap = get_variable_map(); + // auto vmap = get_variable_map(); for(const auto& owner : owned_vars) { DEBUG(owner.first); std::vector fullpath; @@ -1187,7 +1188,7 @@ void osc_server_t::generate_osc_documentation_files() size_t kmax = fullpath.size(); for(const auto& varpath : owner.second) { std::vector fullpath_local = - str2vecstr(vmap[varpath].path, "/"); + str2vecstr(varpath.second.relpath, "/"); if(first) { fullpath = fullpath_local; kmax = fullpath.size(); @@ -1200,10 +1201,21 @@ void osc_server_t::generate_osc_documentation_files() first = false; } std::string pat = TASCAR::vecstr2str(fullpath, "/"); + std::string rep = "..."; + std::string pref = ""; if(owner.second.size() < 2) pat = ""; + if((pat.size() == 0) && (fullpath.size() == 1)) { + pat = "/"; + rep = "/.../"; + } + if(fullpath.size() == 0) { + pat = ""; + pref = "/..."; + } std::ofstream ofh("oscdoc_" + owner.first + ".tex"); - ofh << "\\begin{snugshade}\n{\\footnotesize\n"; + ofh << "\\definecolor{shadecolor}{RGB}{236,236,255}\\begin{snugshade}\n{" + "\\footnotesize\n"; ofh << "\\label{osctab:" << TASCAR::strrep(owner.first, "_", "") << "}\n"; ofh << "OSC variables:\n"; ofh << "\\nopagebreak\n\n"; @@ -1211,11 +1223,12 @@ void osc_server_t::generate_osc_documentation_files() ofh << "\\hline\n"; ofh << "path & fmt. & range & r. & description\\\\\n\\hline\n"; for(const auto& varpath : owner.second) { - ofh << TASCAR::to_latex(TASCAR::strrep(vmap[varpath].path, pat, "...")) - << " & " << vmap[varpath].typespec << " & " - << TASCAR::to_latex(vmap[varpath].rangehint) << " & " - << (vmap[varpath].readable ? "yes" : "no") << " & " - << vmap[varpath].comment << "\\\\" << std::endl; + ofh << TASCAR::to_latex(pref + + TASCAR::strrep(varpath.second.relpath, pat, rep)) + << " & " << varpath.second.typespec << " & " + << TASCAR::to_latex(varpath.second.rangehint) << " & " + << (varpath.second.readable ? "yes" : "no") << " & " + << varpath.second.comment << "\\\\" << std::endl; } ofh << "\\hline\n\\end{tabularx}\n"; ofh << "}\n\\end{snugshade}\n"; diff --git a/libtascar/src/osc_scene.cc b/libtascar/src/osc_scene.cc index 8ad774eb..dc1b77b3 100644 --- a/libtascar/src/osc_scene.cc +++ b/libtascar/src/osc_scene.cc @@ -252,12 +252,15 @@ void osc_scene_t::add_route_methods(TASCAR::osc_server_t* srv, rs->route = o; rs->anysolo = &(scene->anysolo); vprs.push_back(rs); - srv->add_bool("/" + scene->name + "/" + o->get_name() + "/mute", &(o->mute), - "mute flag, 1 = muted, 0 = unmuted"); - srv->add_method("/" + scene->name + "/" + o->get_name() + "/solo", "i", - osc_route_solo, rs); - srv->add_float("/" + scene->name + "/" + o->get_name() + "/targetlevel", - &o->targetlevel); + std::string oldpref(srv->get_prefix()); + std::string ctlname = "/" + scene->name + "/" + o->get_name(); + srv->set_prefix(ctlname); + srv->set_variable_owner("route_t"); + srv->add_bool("/mute", &(o->mute), "mute flag, 1 = muted, 0 = unmuted"); + srv->add_method("/solo", "i", osc_route_solo, rs); + srv->add_float("/targetlevel", &o->targetlevel); + srv->set_prefix(oldpref); + srv->unset_variable_owner(); } void osc_scene_t::add_sound_methods(TASCAR::osc_server_t* srv, @@ -268,6 +271,7 @@ void osc_scene_t::add_sound_methods(TASCAR::osc_server_t* srv, s->get_name()); 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_float_dbspl("/caliblevel", &(s->caliblevel), "", @@ -284,6 +288,7 @@ void osc_scene_t::add_sound_methods(TASCAR::osc_server_t* srv, srv->add_method("/zyxeuler", "fff", osc_set_sound_orientation, s); srv->add_method("/zeuler", "f", osc_set_sound_orientation, s); srv->set_prefix(oldpref); + srv->unset_variable_owner(); } void osc_scene_t::add_diffuse_methods(TASCAR::osc_server_t* srv, @@ -309,6 +314,7 @@ void osc_scene_t::add_receiver_methods(TASCAR::osc_server_t* srv, s->set_ctlname(ctlname); std::string oldpref(srv->get_prefix()); srv->set_prefix(ctlname); + srv->set_variable_owner("receiver_t"); srv->add_method("/gain", "f", osc_set_receiver_gain, s); srv->add_method("/lingain", "f", osc_set_receiver_lingain, s); srv->add_float_db("/diffusegain", &(s->diffusegain), "[-30,30]", @@ -319,6 +325,7 @@ void osc_scene_t::add_receiver_methods(TASCAR::osc_server_t* srv, srv->add_uint("/ismmax", &(s->ismmax)); srv->add_uint("/layers", &(s->layers)); srv->add_float_dbspl("/caliblevel", &(s->caliblevel)); + srv->unset_variable_owner(); s->add_variables(srv); srv->set_prefix(oldpref); } diff --git a/libtascar/src/receivermod.cc b/libtascar/src/receivermod.cc index 8cf9007f..641fc49b 100644 --- a/libtascar/src/receivermod.cc +++ b/libtascar/src/receivermod.cc @@ -221,8 +221,10 @@ void TASCAR::receivermod_base_speaker_t::add_variables( TASCAR::osc_server_t* srv) { receivermod_base_t::add_variables(srv); + srv->set_variable_owner("receivermod_base_speaker"); srv->add_bool("/decorr", &(spkpos.decorr)); srv->add_bool("/densitycorr", &(spkpos.densitycorr)); + srv->unset_variable_owner(); } void TASCAR::receivermod_base_speaker_t::validate_attributes( diff --git a/libtascar/src/tscconfig.cc b/libtascar/src/tscconfig.cc index 64f224f7..c03e2c43 100644 --- a/libtascar/src/tscconfig.cc +++ b/libtascar/src/tscconfig.cc @@ -242,7 +242,7 @@ void TASCAR::generate_plugin_documentation_tables(bool latex) fname + "." << std::endl; std::ofstream fh(fname); - fh << "\\begin{snugshade}\n{\\footnotesize\n"; + fh << "\\definecolor{shadecolor}{RGB}{255,230,204}\\begin{snugshade}\n{\\footnotesize\n"; fh << "\\label{attrtab:" << elem.first << "}\n"; fh << "Attributes of "; if(elem.second.type.empty()) diff --git a/manual/.gitignore b/manual/.gitignore index 311179d6..f7bb26c9 100644 --- a/manual/.gitignore +++ b/manual/.gitignore @@ -37,3 +37,4 @@ tab*.tex autodoc.txt cli_*.tex clihelp.tex +oscdoc_undocumented.tex diff --git a/manual/Makefile b/manual/Makefile index a23c2024..eb148864 100644 --- a/manual/Makefile +++ b/manual/Makefile @@ -173,3 +173,6 @@ cli_%.tex: ../apps/build/tascar_% Makefile modtabs: jackd -d dummy & PID=$$!; sleep 1;(export LD_LIBRARY_PATH="../libtascar/build/:../plugins/build/";export TASCARGENDOC="true";../gui/build/tascar documentation.tsc);kill -9 $$PID + +showundoc: + for i in oscdoc_*.tex; do grep -q -e "input.$${i}" *.tex || echo "\input{$${i}}"; done diff --git a/manual/apmodconst.tex b/manual/apmodconst.tex index a8b0d14a..efef452c 100644 --- a/manual/apmodconst.tex +++ b/manual/apmodconst.tex @@ -1,3 +1,5 @@ Generate constant numbers as audio signal. \input{tabconst.tex} + +\input{oscdoc_tascar_ap_const.tex} diff --git a/manual/apmodfeedbackdelay.tex b/manual/apmodfeedbackdelay.tex index ad5578a1..46b11d53 100644 --- a/manual/apmodfeedbackdelay.tex +++ b/manual/apmodfeedbackdelay.tex @@ -1,3 +1,5 @@ Feedback delay line. \input{tabfeedbackdelay.tex} + +\input{oscdoc_tascar_ap_feedbackdelay.tex} diff --git a/manual/apmodfence.tex b/manual/apmodfence.tex index 7969cb54..28ae00d0 100644 --- a/manual/apmodfence.tex +++ b/manual/apmodfence.tex @@ -2,3 +2,5 @@ outside a given distance from an origin. See \verb!example_fence.tsc! for an example. \input{tabfence.tex} + +\input{oscdoc_tascar_ap_fence.tex} diff --git a/manual/apmodfilter.tex b/manual/apmodfilter.tex index c07ec990..98daea7a 100644 --- a/manual/apmodfilter.tex +++ b/manual/apmodfilter.tex @@ -3,3 +3,5 @@ design. \input{tabfilter.tex} + +\input{oscdoc_tascar_ap_filter.tex} diff --git a/manual/apmodgain.tex b/manual/apmodgain.tex index 48aadba0..0379f83d 100644 --- a/manual/apmodgain.tex +++ b/manual/apmodgain.tex @@ -1,3 +1,5 @@ Modify gain. \input{tabgain.tex} + +\input{oscdoc_tascar_ap_gain.tex} diff --git a/manual/apmodgainramp.tex b/manual/apmodgainramp.tex index 8d825713..99a8f878 100644 --- a/manual/apmodgainramp.tex +++ b/manual/apmodgainramp.tex @@ -1,3 +1,5 @@ Modify gain. \input{tabgainramp.tex} + +\input{oscdoc_tascar_ap_gainramp.tex} diff --git a/manual/apmodgate.tex b/manual/apmodgate.tex index 2cd30d95..22b3a43d 100644 --- a/manual/apmodgate.tex +++ b/manual/apmodgate.tex @@ -1,3 +1,5 @@ Gate the vertex audio signal. \input{tabgate.tex} + +\input{oscdoc_tascar_ap_gate.tex} diff --git a/manual/apmodlipsync.tex b/manual/apmodlipsync.tex index 0ce78c96..1896b5ed 100644 --- a/manual/apmodlipsync.tex +++ b/manual/apmodlipsync.tex @@ -1,3 +1,5 @@ Lip synchronization module, similar to \indapmod[lipsync_paper]{lipsync\_paper}. \input{tablipsync.tex} + +\input{oscdoc_tascar_ap_lipsync.tex} diff --git a/manual/apmodlipsync_paper.tex b/manual/apmodlipsync_paper.tex index dc0b7507..7d4744a5 100644 --- a/manual/apmodlipsync_paper.tex +++ b/manual/apmodlipsync_paper.tex @@ -1,3 +1,5 @@ Module to control lip synchronization as used in \cite{Llorach2016}. \input{tablipsync_paper.tex} + +\input{oscdoc_tascar_ap_lipsync_paper.tex} diff --git a/manual/apmodlookatme.tex b/manual/apmodlookatme.tex index dcb4cef9..07adc9a6 100644 --- a/manual/apmodlookatme.tex +++ b/manual/apmodlookatme.tex @@ -1,3 +1,5 @@ Onset-detector for avatar head orientation control. \input{tablookatme.tex} + +\input{oscdoc_tascar_ap_lookatme.tex} diff --git a/manual/apmodloopmachine.tex b/manual/apmodloopmachine.tex index d2b095f3..8ce8b4b7 100644 --- a/manual/apmodloopmachine.tex +++ b/manual/apmodloopmachine.tex @@ -10,3 +10,5 @@ {\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/apmodmetronome.tex b/manual/apmodmetronome.tex index 536de950..19b92e00 100644 --- a/manual/apmodmetronome.tex +++ b/manual/apmodmetronome.tex @@ -2,4 +2,8 @@ OSC messages can be dispatched on beat one using the ``/dispatchin'' OSC variables. +\input{oscdoc_tascar_ap_metronome.tex} + +Each sub-message can be defined using a \elem{msg} element. + \input{tabmsg.tex} diff --git a/manual/apmodnoise.tex b/manual/apmodnoise.tex index 79a6ef72..fa02a4d4 100644 --- a/manual/apmodnoise.tex +++ b/manual/apmodnoise.tex @@ -1,3 +1,5 @@ White noise generator. \input{tabnoise.tex} + +\input{oscdoc_tascar_ap_noise.tex} diff --git a/manual/apmodpink.tex b/manual/apmodpink.tex index cf0d0fd8..a5335501 100644 --- a/manual/apmodpink.tex +++ b/manual/apmodpink.tex @@ -10,3 +10,4 @@ If \attr{use\_transport} is activated, the object time is used for the frozen noise position. +\input{oscdoc_tascar_ap_pink.tex} diff --git a/manual/apmodpulse.tex b/manual/apmodpulse.tex index e9f94506..425b9981 100644 --- a/manual/apmodpulse.tex +++ b/manual/apmodpulse.tex @@ -1,3 +1,5 @@ Add a pulse train to the input signal. \input{tabpulse.tex} + +\input{oscdoc_tascar_ap_pulse.tex} diff --git a/manual/apmodsine.tex b/manual/apmodsine.tex index ac61da3f..59c7a194 100644 --- a/manual/apmodsine.tex +++ b/manual/apmodsine.tex @@ -1,3 +1,5 @@ Add a sine wave to the input signal. \input{tabsine.tex} + +\input{oscdoc_tascar_ap_sine.tex} diff --git a/manual/apmodsndfile.tex b/manual/apmodsndfile.tex index 37e57a27..6d0aa56a 100644 --- a/manual/apmodsndfile.tex +++ b/manual/apmodsndfile.tex @@ -2,6 +2,7 @@ \input{tabsndfile.tex} + \paragraph{Multi-channel sound files} % If the plugin receives multiple channels (e.g., when used in a receiver, a diffuse sound field or a multichannel route), all channels starting with the channel number \attr{channel} are returned. If the file does not contain a sufficient number of channels, silence is returned for all channels not available in the sound file. @@ -76,4 +77,7 @@ \hline \end{tabularx} +\input{oscdoc_tascar_ap_sndfile.tex} + + \verb!/position! and \verb!/loop! will affect the file which is loaded next. It will not affect the current file. diff --git a/manual/apmodsndfileasync.tex b/manual/apmodsndfileasync.tex index 7b93251e..d6f8a3a6 100644 --- a/manual/apmodsndfileasync.tex +++ b/manual/apmodsndfileasync.tex @@ -14,4 +14,6 @@ \input{tabsndfileasync.tex} +\input{oscdoc_tascar_ap_sndfileasync.tex} + 93.979~dB corresponds internally to a full-scale signal. diff --git a/manual/apmodspksim.tex b/manual/apmodspksim.tex index 7ad8b2be..6a97cb54 100644 --- a/manual/apmodspksim.tex +++ b/manual/apmodspksim.tex @@ -13,3 +13,5 @@ \end{equation} \input{tabspksim.tex} + +\input{oscdoc_tascar_ap_spksim.tex} diff --git a/manual/apmodtubesim.tex b/manual/apmodtubesim.tex index 73d4448e..efd1f0a9 100644 --- a/manual/apmodtubesim.tex +++ b/manual/apmodtubesim.tex @@ -27,3 +27,5 @@ \end{figure} \input{tabtubesim.tex} + +\input{oscdoc_tascar_ap_tubesim.tex} diff --git a/manual/manual.tex b/manual/manual.tex index 321af2bc..6eed2aa0 100644 --- a/manual/manual.tex +++ b/manual/manual.tex @@ -792,6 +792,11 @@ \subsection{Common attributes of objects} \input{tabroutes.tex} +Objects which represent an audio object have these OSC variables: + +\input{oscdoc_route_t.tex} + + \subsection{Common sub-elements of objects} All scene objects (e.g. instances of @@ -1058,6 +1063,10 @@ \subsubsection{The {\tt } element}\label{sec:sound}\index{sound}\ind the DEGA \citep{dieter_leckschat_2020_3597238}. A useful source of sound files can be found at \url{https://freesound.org/}. +Sounds have these OSC variables: + +\input{oscdoc_sound_t.tex} + \subsubsection{Source directivity ``omni''} The ``omni'' source directivity has no configuration variables. The @@ -1150,7 +1159,6 @@ \subsection{The {\tt } element}\label{sec:receiver}\index{receive A receiver\index{receiver} object can be thought of as a virtual microphone\index{virtual microphone}\index{microphone} that captures sound in virtual space and serves as the output of the virtual acoustic environment. The choice of the receiver type depends on the playback system and the desired rendering method. It captures the signal of all sound sources in the scene and computes them according to their type. The output signals of a receiver are sent to the playback system, e.g. loudspeakers or headphones. - \input{tabreceiver.tex} \begin{tscelements} @@ -1229,6 +1237,8 @@ \subsection{The {\tt } element}\label{sec:receiver}\index{receive \end{verbatim} Here \verb!gain! is the linear target gain, \verb!duration! is the length of the fade, and the optional third parameter \verb!starttime! is the start time, at which the fade is applied. If the current time is later than \verb!starttime! then the fade is applied immediately. The fade is always calculated using a raised cosine ramp. A new fade event will overwrite any currently ongoing or scheduled fade events. +\input{oscdoc_receiver_t.tex} + \paragraph{Proxy position} Receivers can replace the source position with a proxy position. The properties of air absorption, delay, gain, and direction can be replaced separately. Proxy position and property selection can be controlled in the XML file or via OSC. @@ -1316,6 +1326,8 @@ \subsection{Loudspeaker-based receiver types}\label{sec:speaker}\index{loudspeak Currently, this method will not work in layouts with subwoofer definitions. +\input{oscdoc_receivermod_base_speaker.tex} + \input{secrecspeaker.tex} \subsection{Adding diffuse reverberation: {\tt }}\label{sec:reverbelem} diff --git a/manual/oscdoc_glabsensor_emergency.tex b/manual/oscdoc_glabsensor_emergency.tex index f34dac81..46aeccc1 100644 --- a/manual/oscdoc_glabsensor_emergency.tex +++ b/manual/oscdoc_glabsensor_emergency.tex @@ -1,4 +1,4 @@ -\begin{snugshade} +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} {\footnotesize \label{osctab:glabsensoremergency} OSC variables: @@ -8,7 +8,7 @@ \hline path & fmt. & range & r. & description\\ \hline -/noemergency & f & & no & \\ +/.../noemergency & f & & no & \\ \hline \end{tabularx} } diff --git a/manual/oscdoc_receiver_t.tex b/manual/oscdoc_receiver_t.tex new file mode 100644 index 00000000..b3edfe56 --- /dev/null +++ b/manual/oscdoc_receiver_t.tex @@ -0,0 +1,32 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:receivert} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../caliblevel & f & [0,120] & yes & \\ +/.../diffusegain & f & [-30,30] & yes & relative gain of diffuse sound field model\\ +/.../fade & ff & & no & \\ +/.../fade & fff & & no & \\ +/.../gain & f & & no & \\ +/.../ismmax & i & & yes & \\ +/.../ismmin & i & & yes & \\ +/.../layers & i & & yes & \\ +/.../lingain & f & & no & \\ +/.../proxy/airabsorption & i & bool & yes & Use proxy position for air absorption\\ +/.../proxy/delay & i & bool & yes & Use proxy position for delay\\ +/.../proxy/direction & i & bool & yes & Use proxy position for direction\\ +/.../proxy/gain & i & bool & yes & Use proxy position for gain\\ +/.../proxy/is\_relative & i & bool & yes & Proxy is relative to receiver (true) or in absolute coordinates (false)\\ +/.../proxy/position & fff & & yes & Proxy position in m\\ +/.../scatterdamping & f & [0,1] & yes & damping of scatter reflection filter\\ +/.../scatterspread & f & Spatial spread of scattering & yes & \\ +/.../scatterstructuresize & f & [0,10] & yes & size of scatter structure in m\\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_receivermod_base_speaker.tex b/manual/oscdoc_receivermod_base_speaker.tex new file mode 100644 index 00000000..e9441ba9 --- /dev/null +++ b/manual/oscdoc_receivermod_base_speaker.tex @@ -0,0 +1,16 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:receivermodbasespeaker} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../decorr & i & bool & yes & \\ +/.../densitycorr & i & bool & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_receivermod_hoa2d.tex b/manual/oscdoc_receivermod_hoa2d.tex index 7c9447e7..ba74ba4d 100644 --- a/manual/oscdoc_receivermod_hoa2d.tex +++ b/manual/oscdoc_receivermod_hoa2d.tex @@ -1,4 +1,4 @@ -\begin{snugshade} +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} {\footnotesize \label{osctab:receivermodhoa2d} OSC variables: @@ -8,10 +8,10 @@ \hline path & fmt. & range & r. & description\\ \hline -/.../diffup & i & bool & yes & \\ -/.../diffup\_rot & f & [0,360] & yes & \\ /.../diffup\_delay & f & & yes & \\ /.../diffup\_maxorder & i & & yes & \\ +/.../diffup\_rot & f & [0,360] & yes & \\ +/.../diffup & i & bool & yes & \\ \hline \end{tabularx} } diff --git a/manual/oscdoc_receivermod_hrtf.tex b/manual/oscdoc_receivermod_hrtf.tex index c35f2f7c..e57a508b 100644 --- a/manual/oscdoc_receivermod_hrtf.tex +++ b/manual/oscdoc_receivermod_hrtf.tex @@ -1,4 +1,4 @@ -\begin{snugshade} +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} {\footnotesize \label{osctab:receivermodhrtf} OSC variables: @@ -8,26 +8,26 @@ \hline path & fmt. & range & r. & description\\ \hline -/.../decorr & i & bool & yes & \\ -/.../angle & f & & yes & \\ -/.../radius & f & & yes & \\ -/.../thetamin & f & & yes & \\ -/.../omega & f & & yes & \\ -/.../alphamin & f & & yes & \\ -/.../startangle\_front & f & & yes & \\ -/.../omega\_front & f & & yes & \\ +/.../Q\_notch & f & & yes & \\ /.../alphamin\_front & f & & yes & \\ -/.../startangle\_up & f & & yes & \\ -/.../omega\_up & f & & yes & \\ /.../alphamin\_up & f & & yes & \\ -/.../startangle\_notch & f & & yes & \\ -/.../freq\_start & f & & yes & \\ +/.../alphamin & f & & yes & \\ +/.../angle & f & & yes & \\ +/.../decorr & i & bool & yes & \\ +/.../diffuse\_... & i & bool & yes & \\ /.../freq\_end & f & & yes & \\ +/.../freq\_start & f & & yes & \\ +/.../gaincorr & ff & & no & channel-wise gain correction\\ /.../maxgain & f & & yes & \\ -/.../Q\_notch & f & & yes & \\ -/.../diffuse\_hrtf & i & bool & yes & \\ +/.../omega\_front & f & & yes & \\ +/.../omega\_up & f & & yes & \\ +/.../omega & f & & yes & \\ /.../prewarpingmode & i & [0,1,2] & yes & pre-warping mode, 0 = original, 1 = none, 2 = corrected\\ -/.../gaincorr & ff & & no & channel-wise gain correction\\ +/.../radius & f & & yes & \\ +/.../startangle\_front & f & & yes & \\ +/.../startangle\_notch & f & & yes & \\ +/.../startangle\_up & f & & yes & \\ +/.../thetamin & f & & yes & \\ \hline \end{tabularx} } diff --git a/manual/oscdoc_receivermod_nsp.tex b/manual/oscdoc_receivermod_nsp.tex index 7bdd9c9a..10efc2f1 100644 --- a/manual/oscdoc_receivermod_nsp.tex +++ b/manual/oscdoc_receivermod_nsp.tex @@ -1,4 +1,4 @@ -\begin{snugshade} +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} {\footnotesize \label{osctab:receivermodnsp} OSC variables: @@ -8,7 +8,7 @@ \hline path & fmt. & range & r. & description\\ \hline -/scene/nsp/useall & i & bool & yes & \\ +/.../useall & i & bool & yes & \\ \hline \end{tabularx} } diff --git a/manual/oscdoc_receivermod_ortf.tex b/manual/oscdoc_receivermod_ortf.tex index d5db2bcc..afdc50d6 100644 --- a/manual/oscdoc_receivermod_ortf.tex +++ b/manual/oscdoc_receivermod_ortf.tex @@ -1,4 +1,4 @@ -\begin{snugshade} +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} {\footnotesize \label{osctab:receivermodortf} OSC variables: @@ -8,9 +8,9 @@ \hline path & fmt. & range & r. & description\\ \hline +/.../angle & f & & yes & \\ /.../decorr & i & bool & yes & \\ /.../distance & f & & yes & \\ -/.../angle & f & & yes & \\ /.../scale & f & & yes & \\ \hline \end{tabularx} diff --git a/manual/oscdoc_receivermod_simplefdn.tex b/manual/oscdoc_receivermod_simplefdn.tex index 202e83ad..e6a8f902 100644 --- a/manual/oscdoc_receivermod_simplefdn.tex +++ b/manual/oscdoc_receivermod_simplefdn.tex @@ -1,4 +1,4 @@ -\begin{snugshade} +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} {\footnotesize \label{osctab:receivermodsimplefdn} OSC variables: @@ -8,8 +8,8 @@ \hline path & fmt. & range & r. & description\\ \hline -/.../fixcirculantmat & i & & no & \\ /.../dim\_damp\_absorption & fffff & & no & \\ +/.../fixcirculantmat & i & & no & \\ \hline \end{tabularx} } diff --git a/manual/oscdoc_receivermod_wfs.tex b/manual/oscdoc_receivermod_wfs.tex index 713c4ed8..3956302d 100644 --- a/manual/oscdoc_receivermod_wfs.tex +++ b/manual/oscdoc_receivermod_wfs.tex @@ -1,4 +1,4 @@ -\begin{snugshade} +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} {\footnotesize \label{osctab:receivermodwfs} OSC variables: @@ -8,7 +8,7 @@ \hline path & fmt. & range & r. & description\\ \hline -/scene/wfs/planewave & i & bool & yes & \\ +/.../planewave & i & bool & yes & \\ \hline \end{tabularx} } diff --git a/manual/oscdoc_route_t.tex b/manual/oscdoc_route_t.tex new file mode 100644 index 00000000..c650ac60 --- /dev/null +++ b/manual/oscdoc_route_t.tex @@ -0,0 +1,17 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:routet} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../mute & i & bool & yes & mute flag, 1 = muted, 0 = unmuted\\ +/.../solo & i & & no & \\ +/.../targetlevel & f & & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_sound_t.tex b/manual/oscdoc_sound_t.tex new file mode 100644 index 00000000..84d07f24 --- /dev/null +++ b/manual/oscdoc_sound_t.tex @@ -0,0 +1,25 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:soundt} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../caliblevel & f & & yes & calibration level in dB\\ +/.../gain & f & & no & \\ +/.../globalpos & fff & & yes & global position of sound vertex in meters\\ +/.../ismmax & i & & yes & \\ +/.../ismmin & i & & yes & \\ +/.../layers & i & & yes & \\ +/.../lingain & f & & no & \\ +/.../pos & fff & & yes & local position of sound vertex in meters\\ +/.../size & f & & yes & Object size in meter\\ +/.../zeuler & f & & no & \\ +/.../zyxeuler & fff & & no & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_allpass.tex b/manual/oscdoc_tascar_ap_allpass.tex index d06b82ba..e6ee8386 100644 --- a/manual/oscdoc_tascar_ap_allpass.tex +++ b/manual/oscdoc_tascar_ap_allpass.tex @@ -1,4 +1,4 @@ -\begin{snugshade} +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} {\footnotesize \label{osctab:tascarapallpass} OSC variables: @@ -8,7 +8,7 @@ \hline path & fmt. & range & r. & description\\ \hline -/scene/in/0/ap2/allpass/bypass & i & bool & yes & \\ +/.../bypass & i & bool & yes & \\ \hline \end{tabularx} } diff --git a/manual/oscdoc_tascar_ap_bandpass.tex b/manual/oscdoc_tascar_ap_bandpass.tex index e4a7190a..f8bbc567 100644 --- a/manual/oscdoc_tascar_ap_bandpass.tex +++ b/manual/oscdoc_tascar_ap_bandpass.tex @@ -1,4 +1,4 @@ -\begin{snugshade} +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} {\footnotesize \label{osctab:tascarapbandpass} OSC variables: @@ -8,10 +8,10 @@ \hline path & fmt. & range & r. & description\\ \hline -/.../fmin & f & ]0,20000] & yes & Lower cutoff frequency in Hz\\ /.../fmax & f & ]0,20000] & yes & Upper cutoff frequency in Hz\\ -/.../fmin & ff & & no & \\ /.../fmax & ff & & no & \\ +/.../fmin & f & ]0,20000] & yes & Lower cutoff frequency in Hz\\ +/.../fmin & ff & & no & \\ \hline \end{tabularx} } diff --git a/manual/oscdoc_tascar_ap_const.tex b/manual/oscdoc_tascar_ap_const.tex new file mode 100644 index 00000000..4f8229fc --- /dev/null +++ b/manual/oscdoc_tascar_ap_const.tex @@ -0,0 +1,15 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapconst} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../a & f & [0,120] & no & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_feedbackdelay.tex b/manual/oscdoc_tascar_ap_feedbackdelay.tex new file mode 100644 index 00000000..7969eb36 --- /dev/null +++ b/manual/oscdoc_tascar_ap_feedbackdelay.tex @@ -0,0 +1,18 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapfeedbackdelay} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../dry & f & [0,1] & yes & Linear gain of direct input\\ +/.../feedback & f & ]-1,1[ & yes & Linear feedback gain\\ +/.../f & f & ]0,8000] & yes & Resonance frequency\\ +/.../wet & f & [0,1] & yes & Linear gain of input to delayline\\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_fence.tex b/manual/oscdoc_tascar_ap_fence.tex new file mode 100644 index 00000000..77b53024 --- /dev/null +++ b/manual/oscdoc_tascar_ap_fence.tex @@ -0,0 +1,17 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapfence} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../alpha & f & & yes & \\ +/.../range & f & & yes & \\ +/.../r & f & & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_filter.tex b/manual/oscdoc_tascar_ap_filter.tex new file mode 100644 index 00000000..44695de6 --- /dev/null +++ b/manual/oscdoc_tascar_ap_filter.tex @@ -0,0 +1,15 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapfilter} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../fc & f & ]0,20000] & yes & Cutoff frequency in Hz\\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_flanger.tex b/manual/oscdoc_tascar_ap_flanger.tex new file mode 100644 index 00000000..2a310dd4 --- /dev/null +++ b/manual/oscdoc_tascar_ap_flanger.tex @@ -0,0 +1,19 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapflanger} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../dmax & f & [0,1] & yes & Upper bound of delay, in s\\ +/.../dmin & f & [0,1] & yes & Lower bound of delay, in s\\ +/.../feedback & f & [0,0.999] & yes & Feedback\\ +/.../modf & f & [0,100] & yes & Modulation frequency\\ +/.../wet & f & [0,1] & yes & Linear gain of input to delayline\\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_gain.tex b/manual/oscdoc_tascar_ap_gain.tex new file mode 100644 index 00000000..c3d9c057 --- /dev/null +++ b/manual/oscdoc_tascar_ap_gain.tex @@ -0,0 +1,17 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapgain} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../fade & ff & & no & \\ +/.../gain & f & [-40,10] & yes & \\ +/.../lingain & f & & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_gainramp.tex b/manual/oscdoc_tascar_ap_gainramp.tex new file mode 100644 index 00000000..55b58ca3 --- /dev/null +++ b/manual/oscdoc_tascar_ap_gainramp.tex @@ -0,0 +1,17 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapgainramp} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../gain & f & [-40,10] & yes & \\ +/.../maxgain & f & [-40,10] & yes & \\ +/.../slope & f & [-40,10] & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_gate.tex b/manual/oscdoc_tascar_ap_gate.tex new file mode 100644 index 00000000..afda2a8d --- /dev/null +++ b/manual/oscdoc_tascar_ap_gate.tex @@ -0,0 +1,18 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapgate} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../bypass & i & bool & yes & \\ +/.../taurms & f & & yes & \\ +/.../tautrack & f & & yes & \\ +/.../threshold & f & & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_lipsync.tex b/manual/oscdoc_tascar_ap_lipsync.tex new file mode 100644 index 00000000..c81db3a4 --- /dev/null +++ b/manual/oscdoc_tascar_ap_lipsync.tex @@ -0,0 +1,20 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascaraplipsync} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../active & i & bool & yes & \\ +/.../dynamicrange & f & & yes & \\ +/.../maxspeechlevel & f & & yes & \\ +/.../smoothing & f & & yes & \\ +/.../threshold & f & & yes & \\ +/.../vocalTract & f & & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_lipsync_paper.tex b/manual/oscdoc_tascar_ap_lipsync_paper.tex new file mode 100644 index 00000000..c3d387ad --- /dev/null +++ b/manual/oscdoc_tascar_ap_lipsync_paper.tex @@ -0,0 +1,20 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascaraplipsyncpaper} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../active & i & bool & yes & \\ +/.../dynamicrange & f & & yes & \\ +/.../maxspeechlevel & f & & yes & \\ +/.../smoothing & f & & yes & \\ +/.../threshold & f & & yes & \\ +/.../vocalTract & f & & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_lookatme.tex b/manual/oscdoc_tascar_ap_lookatme.tex new file mode 100644 index 00000000..432104df --- /dev/null +++ b/manual/oscdoc_tascar_ap_lookatme.tex @@ -0,0 +1,17 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascaraplookatme} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../active & i & bool & yes & \\ +/.../discordantLS & i & bool & yes & \\ +/.../threshold & f & [0,120] & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_loopmachine.tex b/manual/oscdoc_tascar_ap_loopmachine.tex new file mode 100644 index 00000000..74604653 --- /dev/null +++ b/manual/oscdoc_tascar_ap_loopmachine.tex @@ -0,0 +1,20 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascaraploopmachine} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../bypass & i & bool & yes & \\ +/.../clear & & & no & \\ +/.../gaindb & f & [-40,10] & yes & \\ +/.../gain & f & & yes & \\ +/.../muteinput & i & bool & yes & \\ +/.../record & & & no & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_metronome.tex b/manual/oscdoc_tascar_ap_metronome.tex new file mode 100644 index 00000000..5239f1b6 --- /dev/null +++ b/manual/oscdoc_tascar_ap_metronome.tex @@ -0,0 +1,28 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapmetronome} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../a1 & f & [0,120] & yes & \\ +/.../ao & f & [0,120] & yes & \\ +/.../bpb & i & & yes & \\ +/.../bpm & f & & yes & \\ +/.../bypass & i & bool & yes & \\ +/.../changeonone & i & bool & yes & \\ +/.../dispatchin & i & & yes & \\ +/.../dispatchmsg & (any) & & no & \\ +/.../dispatchpath & s & string & yes & \\ +/.../filter/f1 & f & & yes & \\ +/.../filter/fo & f & & yes & \\ +/.../filter/q1 & f & & yes & \\ +/.../filter/qo & f & & yes & \\ +/.../sync & i & bool & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_noise.tex b/manual/oscdoc_tascar_ap_noise.tex new file mode 100644 index 00000000..d7f044e0 --- /dev/null +++ b/manual/oscdoc_tascar_ap_noise.tex @@ -0,0 +1,15 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapnoise} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../a & f & [0,120] & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_pink.tex b/manual/oscdoc_tascar_ap_pink.tex new file mode 100644 index 00000000..95112588 --- /dev/null +++ b/manual/oscdoc_tascar_ap_pink.tex @@ -0,0 +1,17 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarappink} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../level & f & [0,120] & yes & \\ +/.../mute & i & bool & yes & \\ +/.../use\_transport & i & bool & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_pulse.tex b/manual/oscdoc_tascar_ap_pulse.tex new file mode 100644 index 00000000..0081c58f --- /dev/null +++ b/manual/oscdoc_tascar_ap_pulse.tex @@ -0,0 +1,16 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarappulse} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../a & f & [0,120] & yes & \\ +/.../f & f & & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_sine.tex b/manual/oscdoc_tascar_ap_sine.tex new file mode 100644 index 00000000..b5bdc398 --- /dev/null +++ b/manual/oscdoc_tascar_ap_sine.tex @@ -0,0 +1,16 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapsine} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../a & f & [0,100] & yes & Amplitude in dB SPL\\ +/.../f & f & ]0,20000] & yes & Frequency in Hz\\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_sndfile.tex b/manual/oscdoc_tascar_ap_sndfile.tex new file mode 100644 index 00000000..4ec97acd --- /dev/null +++ b/manual/oscdoc_tascar_ap_sndfile.tex @@ -0,0 +1,22 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapsndfile} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../loadfile & s & & no & \\ +/.../loadfile & ssf & & no & \\ +/.../loop & i & & yes & \\ +/.../mute & i & bool & yes & \\ +/.../position & f & & yes & temporal position relative to object time, in seconds\\ +/.../rampend & f & [0,10] & yes & Ramp duration in s at end of sound\\ +/.../rampstart & f & [0,10] & yes & Ramp duration in s at start of sound\\ +/.../start & f & & yes & number of seconds to cut at the beginning of the sound file\\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_sndfileasync.tex b/manual/oscdoc_tascar_ap_sndfileasync.tex new file mode 100644 index 00000000..e80462e8 --- /dev/null +++ b/manual/oscdoc_tascar_ap_sndfileasync.tex @@ -0,0 +1,15 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapsndfileasync} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../mute & i & bool & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_spksim.tex b/manual/oscdoc_tascar_ap_spksim.tex new file mode 100644 index 00000000..93f7f1ab --- /dev/null +++ b/manual/oscdoc_tascar_ap_spksim.tex @@ -0,0 +1,20 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascarapspksim} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../bypass & i & bool & yes & \\ +/.../fres & f & [1,10000] & yes & Resonance frequency in Hz\\ +/.../gain & f & [-40,40] & yes & Post-gain in dB\\ +/.../q & f & ]0,1[ & yes & q-factor of the resonance filter\\ +/.../scale & f & & yes & \\ +/.../wet & f & [0,1] & yes & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/manual/oscdoc_tascar_ap_tubesim.tex b/manual/oscdoc_tascar_ap_tubesim.tex new file mode 100644 index 00000000..f4dcbfcb --- /dev/null +++ b/manual/oscdoc_tascar_ap_tubesim.tex @@ -0,0 +1,21 @@ +\definecolor{shadecolor}{RGB}{236,236,255}\begin{snugshade} +{\footnotesize +\label{osctab:tascaraptubesim} +OSC variables: +\nopagebreak + +\begin{tabularx}{\textwidth}{llllX} +\hline +path & fmt. & range & r. & description\\ +\hline +/.../bypass & i & bool & yes & \\ +/.../offset & f & [0,1] & yes & Input offset\\ +/.../postgain & f & [-50,10] & yes & Output gain in dB\\ +/.../pregain & f & [-10,50] & yes & Input gain in dB\\ +/.../saturation & f & [-40,0] & yes & Saturation threshold in dB\\ +/.../wet & f & [0,1] & yes & \\ +/.../wet & ff & & no & \\ +\hline +\end{tabularx} +} +\end{snugshade} diff --git a/plugins/src/tascar_ap_burglatticelpc.cc b/plugins/src/tascar_ap_burglatticelpc.cc index 72d2eb14..86669955 100644 --- a/plugins/src/tascar_ap_burglatticelpc.cc +++ b/plugins/src/tascar_ap_burglatticelpc.cc @@ -91,8 +91,11 @@ bllpc_t::bllpc_t(const TASCAR::audioplugin_cfg_t& cfg) : audioplugin_base_t(cfg) void bllpc_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_float("/coeff", &coeff); srv->add_bool("/outerr", &outerr); + srv->unset_variable_owner(); } void bllpc_t::configure() diff --git a/plugins/src/tascar_ap_const.cc b/plugins/src/tascar_ap_const.cc index ce47a998..a1ecd4a2 100644 --- a/plugins/src/tascar_ap_const.cc +++ b/plugins/src/tascar_ap_const.cc @@ -53,7 +53,10 @@ const_val_t::~const_val_t() {} void const_val_t::add_variables(TASCAR::osc_server_t* srv) { // register variables for interactive OSC access: + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_vector_float_dbspl("/a", &a); + srv->unset_variable_owner(); } void const_val_t::ap_process(std::vector& chunk, diff --git a/plugins/src/tascar_ap_dummy.cc b/plugins/src/tascar_ap_dummy.cc index 1815d85e..b5308e0e 100644 --- a/plugins/src/tascar_ap_dummy.cc +++ b/plugins/src/tascar_ap_dummy.cc @@ -24,17 +24,18 @@ class dummy_t : public TASCAR::audioplugin_base_t { public: - dummy_t( const TASCAR::audioplugin_cfg_t& cfg ); - void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); - void configure( ); + dummy_t(const TASCAR::audioplugin_cfg_t& cfg); + void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, + const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); + void configure(); void release(); - void add_variables( TASCAR::osc_server_t* srv ); + void add_variables(TASCAR::osc_server_t* srv); ~dummy_t(); + private: }; -dummy_t::dummy_t( const TASCAR::audioplugin_cfg_t& cfg ) - : audioplugin_base_t( cfg ) +dummy_t::dummy_t(const TASCAR::audioplugin_cfg_t& cfg) : audioplugin_base_t(cfg) { DEBUG("--constructor--"); DEBUG(f_sample); @@ -47,7 +48,7 @@ dummy_t::dummy_t( const TASCAR::audioplugin_cfg_t& cfg ) DEBUG(modname); } -void dummy_t::add_variables( TASCAR::osc_server_t* srv ) +void dummy_t::add_variables(TASCAR::osc_server_t* srv) { DEBUG(srv); } diff --git a/plugins/src/tascar_ap_feedbackdelay.cc b/plugins/src/tascar_ap_feedbackdelay.cc index 50c72c06..21600cbd 100644 --- a/plugins/src/tascar_ap_feedbackdelay.cc +++ b/plugins/src/tascar_ap_feedbackdelay.cc @@ -57,10 +57,13 @@ feedbackdelay_t::~feedbackdelay_t() void feedbackdelay_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_float("/f", &f, "]0,8000]", "Resonance frequency"); srv->add_float("/feedback", &feedback, "]-1,1[", "Linear feedback gain"); srv->add_float("/wet", &wet, "[0,1]", "Linear gain of input to delayline"); srv->add_float("/dry", &dry, "[0,1]", "Linear gain of direct input"); + srv->unset_variable_owner(); } void feedbackdelay_t::ap_process(std::vector& chunk, diff --git a/plugins/src/tascar_ap_fence.cc b/plugins/src/tascar_ap_fence.cc index c0bfc98a..d0df553e 100644 --- a/plugins/src/tascar_ap_fence.cc +++ b/plugins/src/tascar_ap_fence.cc @@ -23,43 +23,47 @@ class apfence_t : public TASCAR::audioplugin_base_t { public: - apfence_t( const TASCAR::audioplugin_cfg_t& cfg ); - void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); - void add_variables( TASCAR::osc_server_t* srv ); + apfence_t(const TASCAR::audioplugin_cfg_t& cfg); + void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, + const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); + void add_variables(TASCAR::osc_server_t* srv); ~apfence_t(); + private: TASCAR::pos_t origin; float r = 1.0f; - //double gain; + // double gain; float alpha = 1.0f; float range = 0.1f; }; -apfence_t::apfence_t( const TASCAR::audioplugin_cfg_t& cfg ) - : audioplugin_base_t( cfg ) +apfence_t::apfence_t(const TASCAR::audioplugin_cfg_t& cfg) + : audioplugin_base_t(cfg) { - GET_ATTRIBUTE(origin,"m","origin"); - GET_ATTRIBUTE(r,"m","r"); - GET_ATTRIBUTE(alpha,"","alpha"); - GET_ATTRIBUTE(range,"m","range"); + GET_ATTRIBUTE(origin, "m", "origin"); + GET_ATTRIBUTE(r, "m", "r"); + GET_ATTRIBUTE(alpha, "", "alpha"); + GET_ATTRIBUTE(range, "m", "range"); } -void apfence_t::add_variables( TASCAR::osc_server_t* srv ) +void apfence_t::add_variables(TASCAR::osc_server_t* srv) { - srv->add_float("/r",&r); - srv->add_float("/alpha",&alpha); - srv->add_float("/range",&range); + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); + srv->add_float("/r", &r); + srv->add_float("/alpha", &alpha); + srv->add_float("/range", &range); + srv->unset_variable_owner(); } -apfence_t::~apfence_t() -{ -} +apfence_t::~apfence_t() {} void apfence_t::ap_process(std::vector& chunk, - const TASCAR::pos_t& p, const TASCAR::zyx_euler_t&, - const TASCAR::transport_t&) + const TASCAR::pos_t& p, const TASCAR::zyx_euler_t&, + const TASCAR::transport_t&) { - float gain = powf(std::max(0.0f,TASCAR::distancef(p,origin)-r)/range,alpha); + float gain = + powf(std::max(0.0f, TASCAR::distancef(p, origin) - r) / range, alpha); if(!chunk.empty()) { uint32_t nch(chunk.size()); uint32_t N(chunk[0].n); diff --git a/plugins/src/tascar_ap_filter.cc b/plugins/src/tascar_ap_filter.cc index 209439b6..2169ef77 100644 --- a/plugins/src/tascar_ap_filter.cc +++ b/plugins/src/tascar_ap_filter.cc @@ -70,12 +70,15 @@ biquadplugin_t::biquadplugin_t(const TASCAR::audioplugin_cfg_t& cfg) void biquadplugin_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_float("/fc", &fc, "]0,20000]", "Cutoff frequency in Hz"); if(ftype == biquadplugin_t::equalizer) { srv->add_float("/gain", &gain, "[-30,30]", "Gain in dB"); srv->add_float("/q", &Q, "]0,1[", "Q-factor of resonance filter"); } // srv->add_bool("/highpass",&highpass); + srv->unset_variable_owner(); } void biquadplugin_t::configure() diff --git a/plugins/src/tascar_ap_flanger.cc b/plugins/src/tascar_ap_flanger.cc index 2220f6c3..e63f80c0 100644 --- a/plugins/src/tascar_ap_flanger.cc +++ b/plugins/src/tascar_ap_flanger.cc @@ -64,11 +64,14 @@ flanger_t::~flanger_t() void flanger_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_float("/wet", &wet, "[0,1]", "Linear gain of input to delayline"); srv->add_float("/modf", &modf, "[0,100]", "Modulation frequency"); srv->add_float("/dmin", &dmin, "[0,1]", "Lower bound of delay, in s"); srv->add_float("/dmax", &dmax, "[0,1]", "Upper bound of delay, in s"); srv->add_float("/feedback", &feedback, "[0,0.999]", "Feedback"); + srv->unset_variable_owner(); } void flanger_t::ap_process(std::vector& chunk, diff --git a/plugins/src/tascar_ap_gain.cc b/plugins/src/tascar_ap_gain.cc index fcd9306e..1a51c231 100644 --- a/plugins/src/tascar_ap_gain.cc +++ b/plugins/src/tascar_ap_gain.cc @@ -96,9 +96,12 @@ void gainramp_t::set_fade(float targetgain, float duration, float start) void gainramp_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_float_db("/gain", &gain); srv->add_float("/lingain", &gain); srv->add_method("/fade", "ff", osc_set_fade, this); + srv->unset_variable_owner(); } gainramp_t::~gainramp_t() {} diff --git a/plugins/src/tascar_ap_gainramp.cc b/plugins/src/tascar_ap_gainramp.cc index b41f5820..0eaa5527 100644 --- a/plugins/src/tascar_ap_gainramp.cc +++ b/plugins/src/tascar_ap_gainramp.cc @@ -24,37 +24,37 @@ class gainramp_t : public TASCAR::audioplugin_base_t { public: - gainramp_t( const TASCAR::audioplugin_cfg_t& cfg ); - void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); - void add_variables( TASCAR::osc_server_t* srv ); + gainramp_t(const TASCAR::audioplugin_cfg_t& cfg); + void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, + const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); + void add_variables(TASCAR::osc_server_t* srv); ~gainramp_t(); + private: double gain; double slope; double maxgain; }; -gainramp_t::gainramp_t( const TASCAR::audioplugin_cfg_t& cfg ) - : audioplugin_base_t( cfg ), - gain(1.0), - slope(0.0), - maxgain(1.0) +gainramp_t::gainramp_t(const TASCAR::audioplugin_cfg_t& cfg) + : audioplugin_base_t(cfg), gain(1.0), slope(0.0), maxgain(1.0) { - GET_ATTRIBUTE_DB(gain,"Set current gain"); - GET_ATTRIBUTE_DB(slope,"Set gain slope in dB/s"); - GET_ATTRIBUTE_DB(maxgain,"Set maximal gain"); + GET_ATTRIBUTE_DB(gain, "Set current gain"); + GET_ATTRIBUTE_DB(slope, "Set gain slope in dB/s"); + GET_ATTRIBUTE_DB(maxgain, "Set maximal gain"); } -void gainramp_t::add_variables( TASCAR::osc_server_t* srv ) +void gainramp_t::add_variables(TASCAR::osc_server_t* srv) { - srv->add_double_db("/gain",&gain); - srv->add_double_db("/slope",&slope); - srv->add_double_db("/maxgain",&maxgain); + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); + srv->add_double_db("/gain", &gain); + srv->add_double_db("/slope", &slope); + srv->add_double_db("/maxgain", &maxgain); + srv->unset_variable_owner(); } -gainramp_t::~gainramp_t() -{ -} +gainramp_t::~gainramp_t() {} void gainramp_t::ap_process(std::vector& chunk, const TASCAR::pos_t&, const TASCAR::zyx_euler_t&, diff --git a/plugins/src/tascar_ap_gate.cc b/plugins/src/tascar_ap_gate.cc index 761c0d13..20931851 100644 --- a/plugins/src/tascar_ap_gate.cc +++ b/plugins/src/tascar_ap_gate.cc @@ -23,13 +23,15 @@ class gate_t : public TASCAR::audioplugin_base_t { public: - gate_t( const TASCAR::audioplugin_cfg_t& cfg ); - void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); + gate_t(const TASCAR::audioplugin_cfg_t& cfg); + void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, + const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); void configure(); void release(); - void add_variables( TASCAR::osc_server_t* srv ); + void add_variables(TASCAR::osc_server_t* srv); ~gate_t(); -private: + +private: double tautrack; double taurms; double threshold; @@ -41,7 +43,7 @@ class gate_t : public TASCAR::audioplugin_base_t { uint32_t ifadein; uint32_t ifadeout; float* pfadein; - float *pfadeout; + float* pfadeout; std::vector khold; std::vector kfadein; std::vector kfadeout; @@ -50,57 +52,51 @@ class gate_t : public TASCAR::audioplugin_base_t { std::vector l; }; -gate_t::gate_t( const TASCAR::audioplugin_cfg_t& cfg ) - : audioplugin_base_t( cfg ), - tautrack(30), - taurms(0.005), - threshold(0.125), - holdlen(0.125), - fadeinlen(0.01), - fadeoutlen(0.125), - bypass(true), - ihold(0), - ifadein(0), - ifadeout(0), - pfadein(NULL), - pfadeout(NULL) +gate_t::gate_t(const TASCAR::audioplugin_cfg_t& cfg) + : audioplugin_base_t(cfg), tautrack(30), taurms(0.005), threshold(0.125), + holdlen(0.125), fadeinlen(0.01), fadeoutlen(0.125), bypass(true), + ihold(0), ifadein(0), ifadeout(0), pfadein(NULL), pfadeout(NULL) { - GET_ATTRIBUTE(tautrack,"s","Min/max tracking time constant"); - GET_ATTRIBUTE(taurms,"s","RMS level estimation time constant"); - GET_ATTRIBUTE(threshold,"","Threshold value between 0 and 1"); - GET_ATTRIBUTE(holdlen,"s","Time to keep output after level decay below threshold"); - GET_ATTRIBUTE(fadeinlen,"s","Duration of von-Hann fade in"); - GET_ATTRIBUTE(fadeoutlen,"s","Duration of von-Hann fade out"); - GET_ATTRIBUTE_BOOL(bypass,"Start in bypass mode"); + GET_ATTRIBUTE(tautrack, "s", "Min/max tracking time constant"); + GET_ATTRIBUTE(taurms, "s", "RMS level estimation time constant"); + GET_ATTRIBUTE(threshold, "", "Threshold value between 0 and 1"); + GET_ATTRIBUTE(holdlen, "s", + "Time to keep output after level decay below threshold"); + GET_ATTRIBUTE(fadeinlen, "s", "Duration of von-Hann fade in"); + GET_ATTRIBUTE(fadeoutlen, "s", "Duration of von-Hann fade out"); + GET_ATTRIBUTE_BOOL(bypass, "Start in bypass mode"); } -void gate_t::add_variables( TASCAR::osc_server_t* srv ) +void gate_t::add_variables(TASCAR::osc_server_t* srv) { - srv->add_double("/tautrack",&tautrack); - srv->add_double("/taurms",&taurms); - srv->add_double("/threshold",&threshold); - srv->add_bool("/bypass",&bypass); + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); + srv->add_double("/tautrack", &tautrack); + srv->add_double("/taurms", &taurms); + srv->add_double("/threshold", &threshold); + srv->add_bool("/bypass", &bypass); + srv->unset_variable_owner(); } void gate_t::configure() { audioplugin_base_t::configure(); - ifadein = std::max(1.0,f_sample*fadeinlen); - ifadeout = std::max(1.0,f_sample*fadeoutlen); + ifadein = std::max(1.0, f_sample * fadeinlen); + ifadeout = std::max(1.0, f_sample * fadeoutlen); pfadein = new float[ifadein]; pfadeout = new float[ifadeout]; - for(uint32_t k=0;k& chunk, const TASCAR::pos_t&, const TASCAR::zyx_euler_t&, diff --git a/plugins/src/tascar_ap_lipsync.cc b/plugins/src/tascar_ap_lipsync.cc index ac6fb321..c9c6e5b6 100644 --- a/plugins/src/tascar_ap_lipsync.cc +++ b/plugins/src/tascar_ap_lipsync.cc @@ -193,12 +193,15 @@ void lipsync_t::sendthread() void lipsync_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_double("/smoothing", &smoothing); srv->add_double("/vocalTract", &vocalTract); srv->add_double("/threshold", &threshold); srv->add_double("/maxspeechlevel", &maxspeechlevel); srv->add_double("/dynamicrange", &dynamicrange); srv->add_bool("/active", &active); + srv->unset_variable_owner(); } void lipsync_t::configure() diff --git a/plugins/src/tascar_ap_lipsync_paper.cc b/plugins/src/tascar_ap_lipsync_paper.cc index 94fc84a2..b2e443c0 100644 --- a/plugins/src/tascar_ap_lipsync_paper.cc +++ b/plugins/src/tascar_ap_lipsync_paper.cc @@ -193,12 +193,15 @@ void lipsync_t::sendthread() void lipsync_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_double("/smoothing", &smoothing); srv->add_double("/vocalTract", &vocalTract); srv->add_double("/threshold", &threshold); srv->add_double("/maxspeechlevel", &maxspeechlevel); srv->add_double("/dynamicrange", &dynamicrange); srv->add_bool("/active", &active); + srv->unset_variable_owner(); } void lipsync_t::configure() diff --git a/plugins/src/tascar_ap_lookatme.cc b/plugins/src/tascar_ap_lookatme.cc index 0f1afc6a..74a6a406 100644 --- a/plugins/src/tascar_ap_lookatme.cc +++ b/plugins/src/tascar_ap_lookatme.cc @@ -24,11 +24,13 @@ class lookatme_t : public TASCAR::audioplugin_base_t { public: - lookatme_t( const TASCAR::audioplugin_cfg_t& cfg ); - void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); + lookatme_t(const TASCAR::audioplugin_cfg_t& cfg); + void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, + const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); void configure(); - void add_variables( TASCAR::osc_server_t* srv ); + void add_variables(TASCAR::osc_server_t* srv); ~lookatme_t(); + private: lo_address lo_addr; double tau; @@ -50,45 +52,45 @@ class lookatme_t : public TASCAR::audioplugin_base_t { bool discordantLS; }; -lookatme_t::lookatme_t( const TASCAR::audioplugin_cfg_t& cfg ) - : audioplugin_base_t( cfg ), - tau(1), - fadelen(1), - threshold(0.01), - url("osc.udp://localhost:9999/"), - self_(cfg.parentname), - lpc1(0.0), - rms(0.0), - waslooking(false), - active(true), - discordantLS(false) +lookatme_t::lookatme_t(const TASCAR::audioplugin_cfg_t& cfg) + : audioplugin_base_t(cfg), tau(1), fadelen(1), threshold(0.01), + url("osc.udp://localhost:9999/"), self_(cfg.parentname), lpc1(0.0), + rms(0.0), waslooking(false), active(true), discordantLS(false) { - GET_ATTRIBUTE(tau,"s","Time constant of level estimation"); - GET_ATTRIBUTE(fadelen,"s","Motion duration after threshold"); - GET_ATTRIBUTE_DBSPL(threshold,"Level threshold"); - GET_ATTRIBUTE(url,"","Target OSC URL"); - GET_ATTRIBUTE(paths,"","Space-separated list of target paths"); - GET_ATTRIBUTE(animation,"","Animation name (or empty for no animation)"); - GET_ATTRIBUTE(thresholdpath,"","Destination path of threshold criterion (or empty)"); - GET_ATTRIBUTE(levelpath,"","Destination path of level logging (or empty)"); - GET_ATTRIBUTE(pos_onset,"m","Position to look at on onset (or empty to look at vertex position)"); - GET_ATTRIBUTE(pos_offset,"m","Position to look at on offset (or empty for no change of look direction)"); - if( url.empty() ) + GET_ATTRIBUTE(tau, "s", "Time constant of level estimation"); + GET_ATTRIBUTE(fadelen, "s", "Motion duration after threshold"); + GET_ATTRIBUTE_DBSPL(threshold, "Level threshold"); + GET_ATTRIBUTE(url, "", "Target OSC URL"); + GET_ATTRIBUTE(paths, "", "Space-separated list of target paths"); + GET_ATTRIBUTE(animation, "", "Animation name (or empty for no animation)"); + GET_ATTRIBUTE(thresholdpath, "", + "Destination path of threshold criterion (or empty)"); + GET_ATTRIBUTE(levelpath, "", "Destination path of level logging (or empty)"); + GET_ATTRIBUTE( + pos_onset, "m", + "Position to look at on onset (or empty to look at vertex position)"); + GET_ATTRIBUTE(pos_offset, "m", + "Position to look at on offset (or empty for no change of look " + "direction)"); + if(url.empty()) url = "osc.udp://localhost:9999/"; lo_addr = lo_address_new_from_url(url.c_str()); } -void lookatme_t::add_variables( TASCAR::osc_server_t* srv ) +void lookatme_t::add_variables(TASCAR::osc_server_t* srv) { - srv->add_bool("/active",&active); - srv->add_bool("/discordantLS",&discordantLS); - srv->add_double_dbspl("/threshold",&threshold); + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); + srv->add_bool("/active", &active); + srv->add_bool("/discordantLS", &discordantLS); + srv->add_double_dbspl("/threshold", &threshold); + srv->unset_variable_owner(); } void lookatme_t::configure() { audioplugin_base_t::configure(); - lpc1 = exp(-1.0/(tau*f_fragment)); + lpc1 = exp(-1.0 / (tau * f_fragment)); rms = 0; waslooking = false; } diff --git a/plugins/src/tascar_ap_loopmachine.cc b/plugins/src/tascar_ap_loopmachine.cc index e89d7bf5..821f028c 100644 --- a/plugins/src/tascar_ap_loopmachine.cc +++ b/plugins/src/tascar_ap_loopmachine.cc @@ -97,6 +97,8 @@ void loopmachine_t::release() 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); @@ -104,6 +106,7 @@ void loopmachine_t::add_variables(TASCAR::osc_server_t* srv) srv->add_float_db("/gaindb", &gain); srv->add_bool("/muteinput", &muteinput); // srv->add_uint("/loopcnt", &loopcnt); + srv->unset_variable_owner(); } loopmachine_t::~loopmachine_t() {} diff --git a/plugins/src/tascar_ap_metronome.cc b/plugins/src/tascar_ap_metronome.cc index 1b451c21..7c2710ed 100644 --- a/plugins/src/tascar_ap_metronome.cc +++ b/plugins/src/tascar_ap_metronome.cc @@ -105,6 +105,8 @@ void metronome_t::release() void metronome_t::add_variables(TASCAR::osc_server_t* srv) { srv_ = srv; + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_bool("/changeonone", &changeonone); srv->add_double("/bpm", &bpm); srv->add_uint("/bpb", &bpb); @@ -119,6 +121,7 @@ void metronome_t::add_variables(TASCAR::osc_server_t* srv) srv->add_uint("/dispatchin", &dispatchin); srv->add_method("/dispatchmsg", NULL, &osc_set_message, &msg); srv->add_string("/dispatchpath", &(msg.path)); + srv->unset_variable_owner(); } metronome_t::~metronome_t() {} @@ -185,11 +188,10 @@ void metronome_t::ap_process(std::vector& chunk, if(dispatchin) { // count down "dispatchin". If zero, then dispatch message. --dispatchin; - if( dispatchin > (1<<16) ) + if(dispatchin > (1 << 16)) dispatchin = 0u; - else - if((!dispatchin) && srv_) - srv_->dispatch_data_message(msg.path.c_str(), msg.msg); + else if((!dispatchin) && srv_) + srv_->dispatch_data_message(msg.path.c_str(), msg.msg); } if(changeonone) update_par(); diff --git a/plugins/src/tascar_ap_noise.cc b/plugins/src/tascar_ap_noise.cc index 2074b57c..f5eb9e88 100644 --- a/plugins/src/tascar_ap_noise.cc +++ b/plugins/src/tascar_ap_noise.cc @@ -30,31 +30,33 @@ */ class noise_t : public TASCAR::audioplugin_base_t { public: - noise_t( const TASCAR::audioplugin_cfg_t& cfg ); - void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); - void add_variables( TASCAR::osc_server_t* srv ); + noise_t(const TASCAR::audioplugin_cfg_t& cfg); + void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, + const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); + void add_variables(TASCAR::osc_server_t* srv); virtual ~noise_t(); + private: double a; }; // default constructor, called while loading the plugin -noise_t::noise_t( const TASCAR::audioplugin_cfg_t& cfg ) - : audioplugin_base_t( cfg ), - a(0.001) +noise_t::noise_t(const TASCAR::audioplugin_cfg_t& cfg) + : audioplugin_base_t(cfg), a(0.001) { // register variable for XML access: - GET_ATTRIBUTE_DBSPL(a,"Noise level"); + GET_ATTRIBUTE_DBSPL(a, "Noise level"); } -noise_t::~noise_t() -{ -} +noise_t::~noise_t() {} -void noise_t::add_variables( TASCAR::osc_server_t* srv ) +void noise_t::add_variables(TASCAR::osc_server_t* srv) { // register variables for interactive OSC access: - srv->add_double_dbspl("/a",&a); + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); + srv->add_double_dbspl("/a", &a); + srv->unset_variable_owner(); } void noise_t::ap_process(std::vector& chunk, diff --git a/plugins/src/tascar_ap_periodogram.cc b/plugins/src/tascar_ap_periodogram.cc index cdc6bc1a..19f541ca 100644 --- a/plugins/src/tascar_ap_periodogram.cc +++ b/plugins/src/tascar_ap_periodogram.cc @@ -20,19 +20,21 @@ */ #include "audioplugin.h" -#include "filterclass.h" #include "delayline.h" #include "errorhandling.h" +#include "filterclass.h" #include class periodogram_t : public TASCAR::audioplugin_base_t { public: - periodogram_t( const TASCAR::audioplugin_cfg_t& cfg ); - void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); + periodogram_t(const TASCAR::audioplugin_cfg_t& cfg); + void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, + const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); void configure(); void release(); - void add_variables( TASCAR::osc_server_t* srv ); + void add_variables(TASCAR::osc_server_t* srv); ~periodogram_t(); + private: double tau; std::vector fmin; @@ -54,27 +56,19 @@ class periodogram_t : public TASCAR::audioplugin_base_t { lsl::stream_outlet* lsl_outlet; }; -void periodogram_t::add_variables( TASCAR::osc_server_t* srv ) +void periodogram_t::add_variables(TASCAR::osc_server_t* srv) { - srv->add_double("/coeff",&coeff); - srv->add_double("/tau",&tau); + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); + srv->add_double("/coeff", &coeff); + srv->add_double("/tau", &tau); + srv->unset_variable_owner(); } - -periodogram_t::periodogram_t( const TASCAR::audioplugin_cfg_t& cfg ) - : audioplugin_base_t( cfg ), - tau(1), - fmin(50), - fmax(2000), - envelope(true), - coeff(0.8), - periods(1,0.1), - name("periodogram"), - lpc1(0.0), - lpc11(1.0), - env(0.0), - nbands(0), - nperiods(0) +periodogram_t::periodogram_t(const TASCAR::audioplugin_cfg_t& cfg) + : audioplugin_base_t(cfg), tau(1), fmin(50), fmax(2000), envelope(true), + coeff(0.8), periods(1, 0.1), name("periodogram"), lpc1(0.0), lpc11(1.0), + env(0.0), nbands(0), nperiods(0) { GET_ATTRIBUTE_(tau); GET_ATTRIBUTE_(fmin); @@ -83,11 +77,11 @@ periodogram_t::periodogram_t( const TASCAR::audioplugin_cfg_t& cfg ) GET_ATTRIBUTE_BOOL_(envelope); GET_ATTRIBUTE_(periods); GET_ATTRIBUTE_(name); - if( periods.size() < 2 ) + if(periods.size() < 2) throw TASCAR::ErrMsg("At least two periods are required."); - if( fmin.empty() ) + if(fmin.empty()) throw TASCAR::ErrMsg("No frequency bins defined"); - if( fmin.size() != fmax.size() ) + if(fmin.size() != fmax.size()) throw TASCAR::ErrMsg("Not the same number of entries in fmin and fmax."); } @@ -97,32 +91,31 @@ void periodogram_t::configure() delays.clear(); nbands = fmin.size(); nperiods = periods.size(); - for( auto it=periods.begin();it!=periods.end();++it) - for( uint32_t band=0;band(nperiods*nbands,0.0f); - env = std::vector(nbands,0.0f); - out_send = std::vector(nperiods*nbands,0.0f); - lsl_outlet = new lsl::stream_outlet(lsl::stream_info(name,"level",nperiods*nbands,f_fragment,lsl::cf_double64)); + out = std::vector(nperiods * nbands, 0.0f); + env = std::vector(nbands, 0.0f); + out_send = std::vector(nperiods * nbands, 0.0f); + lsl_outlet = new lsl::stream_outlet(lsl::stream_info( + name, "level", nperiods * nbands, f_fragment, lsl::cf_double64)); } void periodogram_t::release() { - for( auto it=bp.begin();it!=bp.end();++it) + for(auto it = bp.begin(); it != bp.end(); ++it) delete *it; bp.clear(); delete lsl_outlet; } -periodogram_t::~periodogram_t() -{ -} +periodogram_t::~periodogram_t() {} void periodogram_t::ap_process(std::vector& chunk, const TASCAR::pos_t&, const TASCAR::zyx_euler_t&, diff --git a/plugins/src/tascar_ap_pink.cc b/plugins/src/tascar_ap_pink.cc index bd3416b0..69127d01 100644 --- a/plugins/src/tascar_ap_pink.cc +++ b/plugins/src/tascar_ap_pink.cc @@ -127,9 +127,12 @@ pink_t::~pink_t() {} void pink_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_double_dbspl("/level", &level); srv->add_bool("/use_transport", &use_transport); srv->add_bool("/mute", &mute); + srv->unset_variable_owner(); } void pink_t::ap_process(std::vector& chunk, diff --git a/plugins/src/tascar_ap_pulse.cc b/plugins/src/tascar_ap_pulse.cc index 76166b03..f5c17843 100644 --- a/plugins/src/tascar_ap_pulse.cc +++ b/plugins/src/tascar_ap_pulse.cc @@ -23,34 +23,34 @@ class pulse_t : public TASCAR::audioplugin_base_t { public: - pulse_t( const TASCAR::audioplugin_cfg_t& cfg ); - void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, const TASCAR::zyx_euler_t& , const TASCAR::transport_t& tp); - void add_variables( TASCAR::osc_server_t* srv ); + pulse_t(const TASCAR::audioplugin_cfg_t& cfg); + void ap_process(std::vector& chunk, const TASCAR::pos_t& pos, + const TASCAR::zyx_euler_t&, const TASCAR::transport_t& tp); + void add_variables(TASCAR::osc_server_t* srv); ~pulse_t(); + private: double f; double a; uint32_t period; }; -pulse_t::pulse_t( const TASCAR::audioplugin_cfg_t& cfg ) - : audioplugin_base_t( cfg ), - f(1000), - a(0.001), - period(0) +pulse_t::pulse_t(const TASCAR::audioplugin_cfg_t& cfg) + : audioplugin_base_t(cfg), f(1000), a(0.001), period(0) { - GET_ATTRIBUTE(f,"Hz","Pulse frequency"); - GET_ATTRIBUTE(a,"Pa","Pulse amplitude"); + GET_ATTRIBUTE(f, "Hz", "Pulse frequency"); + GET_ATTRIBUTE(a, "Pa", "Pulse amplitude"); } -pulse_t::~pulse_t() -{ -} +pulse_t::~pulse_t() {} -void pulse_t::add_variables( TASCAR::osc_server_t* srv ) +void pulse_t::add_variables(TASCAR::osc_server_t* srv) { - srv->add_double("/f",&f); - srv->add_double_dbspl("/a",&a); + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); + srv->add_double("/f", &f); + srv->add_double_dbspl("/a", &a); + srv->unset_variable_owner(); } void pulse_t::ap_process(std::vector& chunk, diff --git a/plugins/src/tascar_ap_sine.cc b/plugins/src/tascar_ap_sine.cc index e3b372cb..1fd22a27 100644 --- a/plugins/src/tascar_ap_sine.cc +++ b/plugins/src/tascar_ap_sine.cc @@ -46,8 +46,11 @@ sine_t::~sine_t() {} void sine_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_double("/f", &f, "]0,20000]", "Frequency in Hz"); srv->add_double_dbspl("/a", &a, "[0,100]", "Amplitude in dB SPL"); + srv->unset_variable_owner(); } void sine_t::ap_process(std::vector& chunk, diff --git a/plugins/src/tascar_ap_sndfile.cc b/plugins/src/tascar_ap_sndfile.cc index 87766c1f..f91ba595 100644 --- a/plugins/src/tascar_ap_sndfile.cc +++ b/plugins/src/tascar_ap_sndfile.cc @@ -326,6 +326,8 @@ void ap_sndfile_t::osc_loadfile_simple(const std::string& fname) void ap_sndfile_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); if(triggered) srv->add_uint("/loop", &triggeredloop); else @@ -342,6 +344,7 @@ void ap_sndfile_t::add_variables(TASCAR::osc_server_t* srv) "Ramp duration in s at start of sound"); srv->add_float("/rampend", &rampend, "[0,10]", "Ramp duration in s at end of sound"); + srv->unset_variable_owner(); } void ap_sndfile_t::ap_process(std::vector& chunk, diff --git a/plugins/src/tascar_ap_sndfileasync.cc b/plugins/src/tascar_ap_sndfileasync.cc index 23ce27e4..3425c008 100644 --- a/plugins/src/tascar_ap_sndfileasync.cc +++ b/plugins/src/tascar_ap_sndfileasync.cc @@ -122,7 +122,10 @@ void ap_sndfile_async_t::add_licenses(licensehandler_t* session) void ap_sndfile_async_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_bool("/mute", &mute); + srv->unset_variable_owner(); } void ap_sndfile_async_t::ap_process(std::vector& chunk, diff --git a/plugins/src/tascar_ap_spksim.cc b/plugins/src/tascar_ap_spksim.cc index 4cb6a49c..d0b8e860 100644 --- a/plugins/src/tascar_ap_spksim.cc +++ b/plugins/src/tascar_ap_spksim.cc @@ -68,12 +68,15 @@ void spksim_t::configure() void spksim_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_double("/fres", &fres, "[1,10000]", "Resonance frequency in Hz"); srv->add_double("/scale", &scale); srv->add_double("/q", &q, "]0,1[", "q-factor of the resonance filter"); srv->add_double("/gain", &gain, "[-40,40]", "Post-gain in dB"); srv->add_bool("/bypass", &bypass); srv->add_float("/wet", &wet, "[0,1]"); + srv->unset_variable_owner(); } spksim_t::~spksim_t() {} diff --git a/plugins/src/tascar_ap_transportramp.cc b/plugins/src/tascar_ap_transportramp.cc index ad01b640..547c6b42 100644 --- a/plugins/src/tascar_ap_transportramp.cc +++ b/plugins/src/tascar_ap_transportramp.cc @@ -64,12 +64,15 @@ transportramp_t::~transportramp_t() {} void transportramp_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); if(!precalc) { srv->add_float("/startduration", &startduration, "]0,10]", "Ramp duration for stopped-to-rolling transition in s"); srv->add_float("/endduration", &endduration, "]0,10]", "Ramp duration for rolling-to-stopped transition in s"); } + srv->unset_variable_owner(); } void transportramp_t::configure() diff --git a/plugins/src/tascar_ap_tubesim.cc b/plugins/src/tascar_ap_tubesim.cc index 50b823e7..0b7be5a7 100644 --- a/plugins/src/tascar_ap_tubesim.cc +++ b/plugins/src/tascar_ap_tubesim.cc @@ -83,6 +83,8 @@ tubesim_t::tubesim_t(const TASCAR::audioplugin_cfg_t& cfg) void tubesim_t::add_variables(TASCAR::osc_server_t* srv) { + srv->set_variable_owner( + TASCAR::strrep(TASCAR::tscbasename(__FILE__), ".cc", "")); srv->add_float_db("/pregain", &pregain, "[-10,50]", "Input gain in dB"); srv->add_float_db("/postgain", &postgain, "[-50,10]", "Output gain in dB"); srv->add_float_db("/saturation", &saturation, "[-40,0]", @@ -91,6 +93,7 @@ void tubesim_t::add_variables(TASCAR::osc_server_t* srv) srv->add_bool("/bypass", &bypass); srv->add_float("/wet", &wet, "[0,1]"); srv->add_method("/wet", "ff", &tubesim_t::osc_wetfade, this); + srv->unset_variable_owner(); } tubesim_t::~tubesim_t() {} @@ -110,7 +113,7 @@ void tubesim_t::ap_process(std::vector& chunk, wetfade += dwetfade; wet = wetfade; --wetfade_timer; - if( !wetfade_timer ){ + if(!wetfade_timer) { wet = targetwet; } }