Open MHA Developer Manual

User Manual: Pdf

Open the PDF directly: View PDF PDF.
Page Count: 1461

DownloadOpen MHA Developer Manual
Open PDF In BrowserView PDF
The Open Master Hearing Aid
(openMHA)
4.5.7

Plugin Developers’ Manual

© 2005-2018 by HörTech gGmbH, Marie-Curie-Str. 2, D–26129 Oldenburg, Germany

The Open Master Hearing Aid (openMHA) – Plugin Developers’ Manual
HörTech gGmbH
Marie-Curie-Str. 2
D–26129 Oldenburg

iii

LICENSE AGREEMENT
This file is part of the HörTech Open Master Hearing Aid (openMHA)
Copyright © 2005 2006 2007 2008 2009 2010 2012 2013 2014 2015 2016 HörTech gGmbH.
Copyright © 2017 2018 HörTech gGmbH.
openMHA is free software: you can redistribute it and/or modify it under the terms of the GNU
Affero General Public License as published by the Free Software Foundation, version 3 of the
License.
openMHA is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU Affero General Public License, version 3 for more details.
You should have received a copy of the GNU Affero General Public License, version 3 along
with openMHA. If not, see .

© 2005-2018 HörTech gGmbH, Oldenburg

Contents
1 Overview
1.1 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Platform Services and Conventions . . . . . . . . . . . . . . . . . . . . . . . . .

1
1
2

2 Todo List

4

3 Module Documentation
3.1 Concept of Variables and Data Exchange in the openMHA
3.2 The openMHA Plugins (programming interface) . . . . . .
3.3 Writing openMHA Plugins. A step-by-step tutorial . . . . .
3.4 The MHA Framework interface . . . . . . . . . . . . . . . .
3.5 Communication between algorithms . . . . . . . . . . . . .
3.6 Error handling in the openMHA . . . . . . . . . . . . . . .
3.7 The openMHA configuration language . . . . . . . . . . .
3.8 The openMHA Toolbox library . . . . . . . . . . . . . . . .
3.9 Vector and matrix processing toolbox . . . . . . . . . . . .
3.10 Complex arithmetics in the openMHA . . . . . . . . . . . .
3.11 Fast Fourier Transform functions . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

4
4
6
11
27
28
32
35
36
38
68
80

4 Namespace Documentation
4.1 acmon Namespace Reference . . . . . . . . . . . . .
4.2 acsave Namespace Reference . . . . . . . . . . . . .
4.3 ADM Namespace Reference . . . . . . . . . . . . . .
4.4 AuditoryProfile Namespace Reference . . . . . . . .
4.5 coherence Namespace Reference . . . . . . . . . . .
4.6 dc Namespace Reference . . . . . . . . . . . . . . .
4.7 dc_simple Namespace Reference . . . . . . . . . . .
4.8 delay Namespace Reference . . . . . . . . . . . . . .
4.9 delaysum Namespace Reference . . . . . . . . . . .
4.10 DynComp Namespace Reference . . . . . . . . . . .
4.11 fader_wave Namespace Reference . . . . . . . . . .
4.12 fftfilterbank Namespace Reference . . . . . . . . . .
4.13 gain Namespace Reference . . . . . . . . . . . . . .
4.14 matrixmixer Namespace Reference . . . . . . . . . .
4.15 MHA_AC Namespace Reference . . . . . . . . . . .
4.16 mha_error_helpers Namespace Reference . . . . . .
4.17 MHA_TCP Namespace Reference . . . . . . . . . .
4.18 mhachain Namespace Reference . . . . . . . . . . .
4.19 MHAEvents Namespace Reference . . . . . . . . . .
4.20 MHAFilter Namespace Reference . . . . . . . . . . .
4.21 MHAIOJack Namespace Reference . . . . . . . . . .
4.22 MHAIOPortAudio Namespace Reference . . . . . . .
4.23 MHAJack Namespace Reference . . . . . . . . . . .
4.24 MHAKernel Namespace Reference . . . . . . . . . .
4.25 MHAMultiSrc Namespace Reference . . . . . . . . .
4.26 MHAOvlFilter Namespace Reference . . . . . . . . .
4.27 MHAOvlFilter::barkscale Namespace Reference . . .
4.28 MHAOvlFilter::FreqScaleFun Namespace Reference
4.29 MHAOvlFilter::ShapeFun Namespace Reference . .
4.30 MHAParser Namespace Reference . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

88
88
88
88
90
90
91
92
93
93
94
95
96
96
96
96
97
98
101
102
102
107
107
108
110
111
111
112
113
116
118

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

CONTENTS
4.31
4.32
4.33
4.34
4.35
4.36
4.37
4.38
4.39
4.40
4.41
4.42
4.43
4.44
4.45
4.46

MHAParser::StrCnv Namespace Reference . . .
MHAPlugin Namespace Reference . . . . . . . .
MHAPlugin_Resampling Namespace Reference .
MHAPlugin_Split Namespace Reference . . . . .
MHASignal Namespace Reference . . . . . . . .
MHASndFile Namespace Reference . . . . . . .
MHATableLookup Namespace Reference . . . .
MHAWindow Namespace Reference . . . . . . .
multibandcompressor Namespace Reference . .
noisePowProposedScale Namespace Reference
overlapadd Namespace Reference . . . . . . . .
PluginLoader Namespace Reference . . . . . . .
route Namespace Reference . . . . . . . . . . . .
shadowfilter_begin Namespace Reference . . . .
shadowfilter_end Namespace Reference . . . . .
smoothgains_bridge Namespace Reference . . .

v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

124
130
130
131
132
140
140
140
142
143
143
143
144
144
144
144

5 Class Documentation
5.1 ac2wave_if_t Class Reference . . . . . . . . . . . . . . .
5.2 ac2wave_t Class Reference . . . . . . . . . . . . . . . .
5.3 acConcat_wave Class Reference . . . . . . . . . . . . .
5.4 acConcat_wave_config Class Reference . . . . . . . . .
5.5 acmon::ac_monitor_t Class Reference . . . . . . . . . .
5.6 acmon::acmon_t Class Reference . . . . . . . . . . . . .
5.7 acPooling_wave Class Reference . . . . . . . . . . . . .
5.8 acPooling_wave_config Class Reference . . . . . . . . .
5.9 acsave::acsave_t Class Reference . . . . . . . . . . . .
5.10 acsave::cfg_t Class Reference . . . . . . . . . . . . . . .
5.11 acsave::mat4head_t Struct Reference . . . . . . . . . . .
5.12 acsave::save_var_t Class Reference . . . . . . . . . . .
5.13 acSteer Class Reference . . . . . . . . . . . . . . . . . .
5.14 acSteer_config Class Reference . . . . . . . . . . . . . .
5.15 acTransform_wave Class Reference . . . . . . . . . . . .
5.16 acTransform_wave_config Class Reference . . . . . . .
5.17 ADM::ADM< F > Class Template Reference . . . . . . .
5.18 ADM::Delay< F > Class Template Reference . . . . . .
5.19 ADM::Linearphase_FIR< F > Class Template Reference
5.20 adm_if_t Class Reference . . . . . . . . . . . . . . . . .
5.21 adm_rtconfig_t Class Reference . . . . . . . . . . . . . .
5.22 algo_comm_t Struct Reference . . . . . . . . . . . . . .
5.23 altplugs_t Class Reference . . . . . . . . . . . . . . . . .
5.24 analysepath_t Class Reference . . . . . . . . . . . . . .
5.25 analysispath_if_t Class Reference . . . . . . . . . . . . .
5.26 AuditoryProfile::fmap_t Class Reference . . . . . . . . .
5.27 AuditoryProfile::parser_t Class Reference . . . . . . . .
5.28 AuditoryProfile::parser_t::ear_t Class Reference . . . . .
5.29 AuditoryProfile::parser_t::fmap_t Class Reference . . . .
5.30 AuditoryProfile::profile_t Class Reference . . . . . . . . .
5.31 AuditoryProfile::profile_t::ear_t Class Reference . . . . .
5.32 bbcalib_interface_t Class Reference . . . . . . . . . . . .
5.33 calibrator_runtime_layer_t Class Reference . . . . . . .
5.34 calibrator_t Class Reference . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

145
145
148
151
154
156
159
164
169
172
177
179
180
183
186
188
192
194
198
201
204
209
213
219
226
230
234
235
237
238
240
242
243
245
248

© 2005-2018 HörTech gGmbH, Oldenburg

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

vi
5.35
5.36
5.37
5.38
5.39
5.40
5.41
5.42
5.43
5.44
5.45
5.46
5.47
5.48
5.49
5.50
5.51
5.52
5.53
5.54
5.55
5.56
5.57
5.58
5.59
5.60
5.61
5.62
5.63
5.64
5.65
5.66
5.67
5.68
5.69
5.70
5.71
5.72
5.73
5.74
5.75
5.76
5.77
5.78
5.79
5.80
5.81
5.82
5.83
5.84
5.85

calibrator_variables_t Class Reference . . . . . . .
cfg_t Class Reference . . . . . . . . . . . . . . . .
coherence::cohflt_if_t Class Reference . . . . . . .
coherence::cohflt_t Class Reference . . . . . . . .
coherence::vars_t Class Reference . . . . . . . . .
combc_if_t Class Reference . . . . . . . . . . . . .
combc_t Class Reference . . . . . . . . . . . . . .
comm_var_t Struct Reference . . . . . . . . . . . .
cpuload_t Class Reference . . . . . . . . . . . . . .
db_if_t Class Reference . . . . . . . . . . . . . . .
db_t Class Reference . . . . . . . . . . . . . . . . .
dc::dc_if_t Class Reference . . . . . . . . . . . . .
dc::dc_t Class Reference . . . . . . . . . . . . . . .
dc::dc_vars_t Class Reference . . . . . . . . . . . .
dc::dc_vars_validator_t Class Reference . . . . . .
dc::wb_inhib_cfg_t Class Reference . . . . . . . . .
dc::wideband_inhib_vars_t Class Reference . . . .
dc_simple::dc_if_t Class Reference . . . . . . . . .
dc_simple::dc_t Class Reference . . . . . . . . . .
dc_simple::dc_t::line_t Class Reference . . . . . . .
dc_simple::dc_vars_t Class Reference . . . . . . .
dc_simple::dc_vars_validator_t Class Reference . .
dc_simple::level_smoother_t Class Reference . . .
delay::interface_t Class Reference . . . . . . . . . .
delaysum::delaysum_if_t Class Reference . . . . .
delaysum::delaysum_t Class Reference . . . . . . .
doasvm_classification Class Reference . . . . . . .
doasvm_classification_config Class Reference . . .
doasvm_feature_extraction Class Reference . . . .
doasvm_feature_extraction_config Class Reference
droptect_t Class Reference . . . . . . . . . . . . . .
ds_t Class Reference . . . . . . . . . . . . . . . . .
dynamiclib_t Class Reference . . . . . . . . . . . .
DynComp::dc_afterburn_rt_t Class Reference . . .
DynComp::dc_afterburn_t Class Reference . . . . .
DynComp::dc_afterburn_vars_t Class Reference .
DynComp::gaintable_t Class Reference . . . . . . .
example1_t Class Reference . . . . . . . . . . . . .
example2_t Class Reference . . . . . . . . . . . . .
example3_t Class Reference . . . . . . . . . . . . .
example4_t Class Reference . . . . . . . . . . . . .
example5_t Class Reference . . . . . . . . . . . . .
example6_t Class Reference . . . . . . . . . . . . .
expression_t Class Reference . . . . . . . . . . . .
fader_if_t Class Reference . . . . . . . . . . . . . .
fader_wave::fader_wave_if_t Class Reference . . .
fader_wave::level_adapt_t Class Reference . . . .
fftfilterbank::fftfb_interface_t Class Reference . . .
fftfilterbank::fftfb_plug_t Class Reference . . . . . .
frequency_translator_t Class Reference . . . . . .
fw_t Class Reference . . . . . . . . . . . . . . . . .

CONTENTS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

251
254
257
260
264
267
269
271
273
276
279
280
283
287
292
292
294
297
301
304
306
308
309
311
313
317
319
323
325
328
332
336
338
340
342
345
347
352
354
358
362
366
368
370
371
373
376
378
382
384
387

© 2005-2018 HörTech gGmbH, Oldenburg

CONTENTS
5.86 fw_vars_t Class Reference . . . . . . . . . . . . . . . . .
5.87 gain::gain_if_t Class Reference . . . . . . . . . . . . . .
5.88 gain::scaler_t Class Reference . . . . . . . . . . . . . . .
5.89 hanning_ramps_t Class Reference . . . . . . . . . . . .
5.90 hilbert_shifter_t Class Reference . . . . . . . . . . . . .
5.91 identity_t Class Reference . . . . . . . . . . . . . . . . .
5.92 iirfilter_t Class Reference . . . . . . . . . . . . . . . . . .
5.93 io_file_t Class Reference . . . . . . . . . . . . . . . . . .
5.94 io_lib_t Class Reference . . . . . . . . . . . . . . . . . .
5.95 io_parser_t Class Reference . . . . . . . . . . . . . . . .
5.96 io_tcp_fwcb_t Class Reference . . . . . . . . . . . . . .
5.97 io_tcp_parser_t Class Reference . . . . . . . . . . . . .
5.98 io_tcp_sound_t Class Reference . . . . . . . . . . . . . .
5.99 io_tcp_sound_t::float_union Union Reference . . . . . .
5.100 io_tcp_t Class Reference . . . . . . . . . . . . . . . . . .
5.101 latex_doc_t Class Reference . . . . . . . . . . . . . . . .
5.102 lpc Class Reference . . . . . . . . . . . . . . . . . . . . .
5.103 lpc_bl_predictor Class Reference . . . . . . . . . . . . .
5.104 lpc_bl_predictor_config Class Reference . . . . . . . . .
5.105 lpc_burglattice Class Reference . . . . . . . . . . . . . .
5.106 lpc_burglattice_config Class Reference . . . . . . . . . .
5.107 lpc_config Class Reference . . . . . . . . . . . . . . . .
5.108 matrixmixer::cfg_t Class Reference . . . . . . . . . . . .
5.109 matrixmixer::matmix_t Class Reference . . . . . . . . . .
5.110 MHA_AC::ac2matrix_helper_t Class Reference . . . . .
5.111 MHA_AC::ac2matrix_t Class Reference . . . . . . . . . .
5.112 MHA_AC::acspace2matrix_t Class Reference . . . . . .
5.113 MHA_AC::double_t Class Reference . . . . . . . . . . .
5.114 MHA_AC::float_t Class Reference . . . . . . . . . . . . .
5.115 MHA_AC::int_t Class Reference . . . . . . . . . . . . . .
5.116 MHA_AC::spectrum_t Class Reference . . . . . . . . . .
5.117 MHA_AC::stat_t Class Reference . . . . . . . . . . . . .
5.118 MHA_AC::waveform_t Class Reference . . . . . . . . . .
5.119 mha_audio_descriptor_t Struct Reference . . . . . . . .
5.120 mha_audio_t Struct Reference . . . . . . . . . . . . . . .
5.121 mha_channel_info_t Struct Reference . . . . . . . . . . .
5.122 mha_complex_t Struct Reference . . . . . . . . . . . . .
5.123 mha_dblbuf_t< FIFO > Class Template Reference . . .
5.124 mha_direction_t Struct Reference . . . . . . . . . . . . .
5.125 mha_drifter_fifo_t< T > Class Template Reference . . .
5.126 MHA_Error Class Reference . . . . . . . . . . . . . . . .
5.127 mha_fifo_lw_t< T > Class Template Reference . . . . .
5.128 mha_fifo_posix_threads_t Class Reference . . . . . . . .
5.129 mha_fifo_t< T > Class Template Reference . . . . . . .
5.130 mha_fifo_thread_guard_t Class Reference . . . . . . . .
5.131 mha_fifo_thread_platform_t Class Reference . . . . . . .
5.132 mha_rt_fifo_element_t< T > Class Template Reference
5.133 mha_rt_fifo_t< T > Class Template Reference . . . . . .
5.134 mha_spec_t Struct Reference . . . . . . . . . . . . . . .
5.135 MHA_TCP::Async_Notify Class Reference . . . . . . . .
5.136 MHA_TCP::Client Class Reference . . . . . . . . . . . .
© 2005-2018 HörTech gGmbH, Oldenburg

vii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

397
399
402
403
404
408
410
411
418
423
428
433
440
445
446
451
454
457
461
464
467
470
474
476
478
481
483
487
489
490
492
494
496
498
500
501
503
503
512
513
522
524
528
531
537
538
541
543
547
549
550

viii

CONTENTS

5.137 MHA_TCP::Connection Class Reference . . . . . . . . . . . . . . . . .
5.138 MHA_TCP::Event_Watcher Class Reference . . . . . . . . . . . . . . .
5.139 MHA_TCP::OS_EVENT_TYPE Struct Reference . . . . . . . . . . . .
5.140 MHA_TCP::Server Class Reference . . . . . . . . . . . . . . . . . . . .
5.141 MHA_TCP::Sockaccept_Event Class Reference . . . . . . . . . . . . .
5.142 MHA_TCP::Sockread_Event Class Reference . . . . . . . . . . . . . .
5.143 MHA_TCP::Sockwrite_Event Class Reference . . . . . . . . . . . . . .
5.144 MHA_TCP::Thread Class Reference . . . . . . . . . . . . . . . . . . .
5.145 MHA_TCP::Timeout_Event Class Reference . . . . . . . . . . . . . . .
5.146 MHA_TCP::Timeout_Watcher Class Reference . . . . . . . . . . . . .
5.147 MHA_TCP::Wakeup_Event Class Reference . . . . . . . . . . . . . . .
5.148 mha_tictoc_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . .
5.149 mha_wave_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . .
5.150 mhachain::chain_base_t Class Reference . . . . . . . . . . . . . . . .
5.151 mhachain::mhachain_t Class Reference . . . . . . . . . . . . . . . . .
5.152 mhachain::plugs_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.153 mhaconfig_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . .
5.154 MHAEvents::connector_base_t Class Reference . . . . . . . . . . . . .
5.155 MHAEvents::connector_t< receiver_t > Class Template Reference . .
5.156 MHAEvents::emitter_t Class Reference . . . . . . . . . . . . . . . . . .
5.157 MHAEvents::patchbay_t< receiver_t > Class Template Reference . . .
5.158 MHAFilter::adapt_filter_param_t Class Reference . . . . . . . . . . . .
5.159 MHAFilter::adapt_filter_state_t Class Reference . . . . . . . . . . . . .
5.160 MHAFilter::adapt_filter_t Class Reference . . . . . . . . . . . . . . . .
5.161 MHAFilter::blockprocessing_polyphase_resampling_t Class Reference
5.162 MHAFilter::complex_bandpass_t Class Reference . . . . . . . . . . . .
5.163 MHAFilter::diff_t Class Reference . . . . . . . . . . . . . . . . . . . . .
5.164 MHAFilter::fftfilter_t Class Reference . . . . . . . . . . . . . . . . . . .
5.165 MHAFilter::fftfilterbank_t Class Reference . . . . . . . . . . . . . . . .
5.166 MHAFilter::filter_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.167 MHAFilter::gamma_flt_t Class Reference . . . . . . . . . . . . . . . . .
5.168 MHAFilter::iir_filter_state_t Class Reference . . . . . . . . . . . . . . .
5.169 MHAFilter::iir_filter_t Class Reference . . . . . . . . . . . . . . . . . . .
5.170 MHAFilter::iir_ord1_real_t Class Reference . . . . . . . . . . . . . . . .
5.171 MHAFilter::o1_ar_filter_t Class Reference . . . . . . . . . . . . . . . .
5.172 MHAFilter::o1flt_lowpass_t Class Reference . . . . . . . . . . . . . . .
5.173 MHAFilter::o1flt_maxtrack_t Class Reference . . . . . . . . . . . . . .
5.174 MHAFilter::o1flt_mintrack_t Class Reference . . . . . . . . . . . . . . .
5.175 MHAFilter::partitioned_convolution_t Class Reference . . . . . . . . . .
5.176 MHAFilter::partitioned_convolution_t::index_t Struct Reference . . . . .
5.177 MHAFilter::polyphase_resampling_t Class Reference . . . . . . . . . .
5.178 MHAFilter::resampling_filter_t Class Reference . . . . . . . . . . . . .
5.179 MHAFilter::smoothspec_t Class Reference . . . . . . . . . . . . . . . .
5.180 MHAFilter::thirdoctave_analyzer_t Class Reference . . . . . . . . . . .
5.181 MHAFilter::transfer_function_t Struct Reference . . . . . . . . . . . . .
5.182 MHAFilter::transfer_matrix_t Struct Reference . . . . . . . . . . . . . .
5.183 MHAIOJack::io_jack_t Class Reference . . . . . . . . . . . . . . . . . .
5.184 MHAIOPortAudio::device_info_t Class Reference . . . . . . . . . . . .
5.185 MHAIOPortAudio::io_portaudio_t Class Reference . . . . . . . . . . . .
5.186 MHAJack::client_avg_t Class Reference . . . . . . . . . . . . . . . . .
5.187 MHAJack::client_noncont_t Class Reference . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

552
561
563
565
568
569
570
571
576
577
579
582
583
585
589
590
595
597
600
603
605
608
609
611
613
617
621
622
627
633
638
643
644
648
651
655
658
660
661
666
668
673
675
679
682
685
686
693
696
701
706

© 2005-2018 HörTech gGmbH, Oldenburg

CONTENTS

ix

5.188 MHAJack::client_t Class Reference . . . . . . . . . . . . . . . . . .
5.189 MHAJack::port_t Class Reference . . . . . . . . . . . . . . . . . . .
5.190 MHAKernel::algo_comm_class_t Class Reference . . . . . . . . . .
5.191 MHAKernel::comm_var_map_t Class Reference . . . . . . . . . . .
5.192 MHAMultiSrc::base_t Class Reference . . . . . . . . . . . . . . . .
5.193 MHAMultiSrc::channel_t Class Reference . . . . . . . . . . . . . .
5.194 MHAMultiSrc::channels_t Class Reference . . . . . . . . . . . . . .
5.195 MHAMultiSrc::spectrum_t Class Reference . . . . . . . . . . . . . .
5.196 MHAMultiSrc::waveform_t Class Reference . . . . . . . . . . . . .
5.197 MHAOvlFilter::band_descriptor_t Class Reference . . . . . . . . . .
5.198 MHAOvlFilter::barkscale::bark2hz_t Class Reference . . . . . . . .
5.199 MHAOvlFilter::barkscale::hz2bark_t Class Reference . . . . . . . .
5.200 MHAOvlFilter::fftfb_ac_info_t Class Reference . . . . . . . . . . . .
5.201 MHAOvlFilter::fftfb_t Class Reference . . . . . . . . . . . . . . . . .
5.202 MHAOvlFilter::fftfb_vars_t Class Reference . . . . . . . . . . . . . .
5.203 MHAOvlFilter::fscale_bw_t Class Reference . . . . . . . . . . . . .
5.204 MHAOvlFilter::fscale_t Class Reference . . . . . . . . . . . . . . .
5.205 MHAOvlFilter::fspacing_t Class Reference . . . . . . . . . . . . . .
5.206 MHAOvlFilter::overlap_save_filterbank_analytic_t Class Reference
5.207 MHAOvlFilter::overlap_save_filterbank_t Class Reference . . . . .
5.208 MHAOvlFilter::overlap_save_filterbank_t::vars_t Class Reference .
5.209 MHAOvlFilter::scale_var_t Class Reference . . . . . . . . . . . . .
5.210 MHAParser::base_t Class Reference . . . . . . . . . . . . . . . . .
5.211 MHAParser::base_t::replace_t Class Reference . . . . . . . . . . .
5.212 MHAParser::bool_mon_t Class Reference . . . . . . . . . . . . . .
5.213 MHAParser::bool_t Class Reference . . . . . . . . . . . . . . . . .
5.214 MHAParser::c_ifc_parser_t Class Reference . . . . . . . . . . . . .
5.215 MHAParser::commit_t< receiver_t > Class Template Reference . .
5.216 MHAParser::complex_mon_t Class Reference . . . . . . . . . . . .
5.217 MHAParser::complex_t Class Reference . . . . . . . . . . . . . . .
5.218 MHAParser::entry_t Class Reference . . . . . . . . . . . . . . . . .
5.219 MHAParser::expression_t Class Reference . . . . . . . . . . . . . .
5.220 MHAParser::float_mon_t Class Reference . . . . . . . . . . . . . .
5.221 MHAParser::float_t Class Reference . . . . . . . . . . . . . . . . .
5.222 MHAParser::int_mon_t Class Reference . . . . . . . . . . . . . . .
5.223 MHAParser::int_t Class Reference . . . . . . . . . . . . . . . . . . .
5.224 MHAParser::keyword_list_t Class Reference . . . . . . . . . . . . .
5.225 MHAParser::kw_t Class Reference . . . . . . . . . . . . . . . . . .
5.226 MHAParser::mcomplex_mon_t Class Reference . . . . . . . . . . .
5.227 MHAParser::mcomplex_t Class Reference . . . . . . . . . . . . . .
5.228 MHAParser::mfloat_mon_t Class Reference . . . . . . . . . . . . .
5.229 MHAParser::mfloat_t Class Reference . . . . . . . . . . . . . . . .
5.230 MHAParser::mhaconfig_mon_t Class Reference . . . . . . . . . . .
5.231 MHAParser::mhapluginloader_t Class Reference . . . . . . . . . .
5.232 MHAParser::monitor_t Class Reference . . . . . . . . . . . . . . . .
5.233 MHAParser::parser_t Class Reference . . . . . . . . . . . . . . . .
5.234 MHAParser::range_var_t Class Reference . . . . . . . . . . . . . .
5.235 MHAParser::string_mon_t Class Reference . . . . . . . . . . . . .
5.236 MHAParser::string_t Class Reference . . . . . . . . . . . . . . . . .
5.237 MHAParser::variable_t Class Reference . . . . . . . . . . . . . . .
5.238 MHAParser::vcomplex_mon_t Class Reference . . . . . . . . . . .
© 2005-2018 HörTech gGmbH, Oldenburg

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

709
720
724
729
729
731
732
733
734
736
737
738
739
741
745
748
750
752
756
758
760
761
764
776
778
780
783
787
788
790
793
794
795
797
800
803
805
810
814
816
818
820
823
826
831
833
840
845
847
849
851

x

CONTENTS

5.239 MHAParser::vcomplex_t Class Reference . . . . . . . . . . . . . . . .
5.240 MHAParser::vfloat_mon_t Class Reference . . . . . . . . . . . . . . . .
5.241 MHAParser::vfloat_t Class Reference . . . . . . . . . . . . . . . . . . .
5.242 MHAParser::vint_mon_t Class Reference . . . . . . . . . . . . . . . . .
5.243 MHAParser::vint_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.244 MHAParser::vstring_mon_t Class Reference . . . . . . . . . . . . . . .
5.245 MHAParser::vstring_t Class Reference . . . . . . . . . . . . . . . . . .
5.246 MHAParser::window_t Class Reference . . . . . . . . . . . . . . . . . .
5.247 mhaplug_cfg_t Class Reference . . . . . . . . . . . . . . . . . . . . . .
5.248 MHAPlugin::cfg_chain_t< runtime_cfg_t > Class Template Reference
5.249 MHAPlugin::config_t< runtime_cfg_t > Class Template Reference . . .
5.250 MHAPlugin::plugin_t< runtime_cfg_t > Class Template Reference . . .
5.251 MHAPlugin_Resampling::resampling_if_t Class Reference . . . . . . .
5.252 MHAPlugin_Resampling::resampling_t Class Reference . . . . . . . .
5.253 MHAPlugin_Split::domain_handler_t Class Reference . . . . . . . . . .
5.254 MHAPlugin_Split::dummy_threads_t Class Reference . . . . . . . . . .
5.255 MHAPlugin_Split::posix_threads_t Class Reference . . . . . . . . . . .
5.256 MHAPlugin_Split::split_t Class Reference . . . . . . . . . . . . . . . . .
5.257 MHAPlugin_Split::splitted_part_t Class Reference . . . . . . . . . . . .
5.258 MHAPlugin_Split::thread_platform_t Class Reference . . . . . . . . . .
5.259 MHAPlugin_Split::uni_processor_t Class Reference . . . . . . . . . . .
5.260 mhaserver_t Class Reference . . . . . . . . . . . . . . . . . . . . . . .
5.261 MHASignal::async_rmslevel_t Class Reference . . . . . . . . . . . . .
5.262 MHASignal::delay_spec_t Class Reference . . . . . . . . . . . . . . . .
5.263 MHASignal::delay_t Class Reference . . . . . . . . . . . . . . . . . . .
5.264 MHASignal::delay_wave_t Class Reference . . . . . . . . . . . . . . .
5.265 MHASignal::doublebuffer_t Class Reference . . . . . . . . . . . . . . .
5.266 MHASignal::fft_t Class Reference . . . . . . . . . . . . . . . . . . . . .
5.267 MHASignal::hilbert_fftw_t Class Reference . . . . . . . . . . . . . . . .
5.268 MHASignal::hilbert_t Class Reference . . . . . . . . . . . . . . . . . .
5.269 MHASignal::loop_wavefragment_t Class Reference . . . . . . . . . . .
5.270 MHASignal::matrix_t Class Reference . . . . . . . . . . . . . . . . . . .
5.271 MHASignal::minphase_t Class Reference . . . . . . . . . . . . . . . .
5.272 MHASignal::quantizer_t Class Reference . . . . . . . . . . . . . . . . .
5.273 MHASignal::ringbuffer_t Class Reference . . . . . . . . . . . . . . . . .
5.274 MHASignal::schroeder_t Class Reference . . . . . . . . . . . . . . . .
5.275 MHASignal::spectrum_t Class Reference . . . . . . . . . . . . . . . . .
5.276 MHASignal::stat_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.277 MHASignal::subsample_delay_t Class Reference . . . . . . . . . . . .
5.278 MHASignal::uint_vector_t Class Reference . . . . . . . . . . . . . . . .
5.279 MHASignal::waveform_t Class Reference . . . . . . . . . . . . . . . . .
5.280 MHASndFile::sf_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.281 MHASndFile::sf_wave_t Class Reference . . . . . . . . . . . . . . . . .
5.282 MHATableLookup::linear_table_t Class Reference . . . . . . . . . . . .
5.283 MHATableLookup::table_t Class Reference . . . . . . . . . . . . . . . .
5.284 MHATableLookup::xy_table_t Class Reference . . . . . . . . . . . . . .
5.285 MHAWindow::bartlett_t Class Reference . . . . . . . . . . . . . . . . .
5.286 MHAWindow::base_t Class Reference . . . . . . . . . . . . . . . . . .
5.287 MHAWindow::blackman_t Class Reference . . . . . . . . . . . . . . . .
5.288 MHAWindow::fun_t Class Reference . . . . . . . . . . . . . . . . . . .
5.289 MHAWindow::hamming_t Class Reference . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

. 855
. 857
. 859
. 862
. 864
. 867
. 869
. 871
. 875
. 876
. 877
. 882
. 888
. 891
. 894
. 900
. 902
. 907
. 914
. 919
. 922
. 924
. 928
. 930
. 932
. 934
. 936
. 940
. 945
. 947
. 949
. 954
. 967
. 969
. 971
. 975
. 979
. 985
. 987
. 989
. 993
.1006
.1007
.1008
.1013
.1015
.1020
.1022
.1024
.1025
.1026

© 2005-2018 HörTech gGmbH, Oldenburg

CONTENTS

xi

5.290 MHAWindow::hanning_t Class Reference . . . . . . . . . . . .
5.291 MHAWindow::rect_t Class Reference . . . . . . . . . . . . . . .
5.292 MHAWindow::user_t Class Reference . . . . . . . . . . . . . . .
5.293 mon_t Class Reference . . . . . . . . . . . . . . . . . . . . . . .
5.294 multibandcompressor::fftfb_plug_t Class Reference . . . . . . .
5.295 multibandcompressor::interface_t Class Reference . . . . . . .
5.296 multibandcompressor::plugin_signals_t Class Reference . . . .
5.297 nlms_t Class Reference . . . . . . . . . . . . . . . . . . . . . .
5.298 noise_t Class Reference . . . . . . . . . . . . . . . . . . . . . .
5.299 noisePowProposedScale::interface_t Class Reference . . . . .
5.300 noisePowProposedScale::noisePowProposed Class Reference
5.301 overlapadd::overlapadd_if_t Class Reference . . . . . . . . . .
5.302 overlapadd::overlapadd_t Class Reference . . . . . . . . . . . .
5.303 parser_int_dyn Class Reference . . . . . . . . . . . . . . . . . .
5.304 plug_t Class Reference . . . . . . . . . . . . . . . . . . . . . . .
5.305 plugin_interface_t Class Reference . . . . . . . . . . . . . . . .
5.306 pluginbrowser_t Class Reference . . . . . . . . . . . . . . . . .
5.307 plugindescription_t Class Reference . . . . . . . . . . . . . . . .
5.308 PluginLoader::config_file_splitter_t Class Reference . . . . . . .
5.309 PluginLoader::fourway_processor_t Class Reference . . . . . .
5.310 PluginLoader::mhapluginloader_t Class Reference . . . . . . .
5.311 pluginloader_t Class Reference . . . . . . . . . . . . . . . . . .
5.312 prediction_error Class Reference . . . . . . . . . . . . . . . . .
5.313 prediction_error_config Class Reference . . . . . . . . . . . . .
5.314 rmslevel_if_t Class Reference . . . . . . . . . . . . . . . . . . .
5.315 rmslevel_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.316 route::interface_t Class Reference . . . . . . . . . . . . . . . . .
5.317 route::process_t Class Reference . . . . . . . . . . . . . . . . .
5.318 rt_nlms_t Class Reference . . . . . . . . . . . . . . . . . . . . .
5.319 save_spec_t Class Reference . . . . . . . . . . . . . . . . . . .
5.320 save_wave_t Class Reference . . . . . . . . . . . . . . . . . . .
5.321 shadowfilter_begin::cfg_t Class Reference . . . . . . . . . . . .
5.322 shadowfilter_begin::shadowfilter_begin_t Class Reference . . .
5.323 shadowfilter_end::cfg_t Class Reference . . . . . . . . . . . . .
5.324 shadowfilter_end::shadowfilter_end_t Class Reference . . . . .
5.325 sine_cfg_t Struct Reference . . . . . . . . . . . . . . . . . . . .
5.326 sine_t Class Reference . . . . . . . . . . . . . . . . . . . . . . .
5.327 smoothgains_bridge::overlapadd_if_t Class Reference . . . . .
5.328 smoothgains_bridge::smoothspec_wrap_t Class Reference . .
5.329 softclip_t Class Reference . . . . . . . . . . . . . . . . . . . . .
5.330 softclipper_t Class Reference . . . . . . . . . . . . . . . . . . .
5.331 softclipper_variables_t Class Reference . . . . . . . . . . . . .
5.332 spec2wave_if_t Class Reference . . . . . . . . . . . . . . . . .
5.333 spec2wave_t Class Reference . . . . . . . . . . . . . . . . . . .
5.334 spec_fader_t Class Reference . . . . . . . . . . . . . . . . . . .
5.335 speechnoise_t Class Reference . . . . . . . . . . . . . . . . . .
5.336 steerbf Class Reference . . . . . . . . . . . . . . . . . . . . . .
5.337 steerbf_config Class Reference . . . . . . . . . . . . . . . . . .
5.338 timo_AC Class Reference . . . . . . . . . . . . . . . . . . . . .
5.339 timo_params Class Reference . . . . . . . . . . . . . . . . . . .
5.340 timoConfig Class Reference . . . . . . . . . . . . . . . . . . . .
© 2005-2018 HörTech gGmbH, Oldenburg

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.1028
.1029
.1030
.1032
.1033
.1035
.1038
.1040
.1044
.1047
.1049
.1053
.1057
.1061
.1062
.1064
.1066
.1069
.1071
.1073
.1077
.1085
.1086
.1091
.1097
.1099
.1101
.1104
.1106
.1111
.1113
.1114
.1116
.1118
.1120
.1122
.1123
.1126
.1129
.1131
.1134
.1136
.1138
.1140
.1143
.1145
.1147
.1150
.1153
.1157
.1160

xii
5.341 timoSmooth Class Reference . . .
5.342 us_t Class Reference . . . . . . . .
5.343 wave2spec_if_t Class Reference .
5.344 wave2spec_t Class Reference . . .
5.345 wavrec_t Class Reference . . . . .
5.346 wavwriter_t Class Reference . . . .
5.347 windowselector_t Class Reference

CONTENTS
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

6 File Documentation
6.1 ac2wave.cpp File Reference . . . . . . . . . . .
6.2 ac_monitor_type.cpp File Reference . . . . . .
6.3 ac_monitor_type.hh File Reference . . . . . . .
6.4 acConcat_wave.cpp File Reference . . . . . . .
6.5 acConcat_wave.h File Reference . . . . . . . .
6.6 acmon.cpp File Reference . . . . . . . . . . . .
6.7 acPooling_wave.cpp File Reference . . . . . . .
6.8 acPooling_wave.h File Reference . . . . . . . .
6.9 acsave.cpp File Reference . . . . . . . . . . . .
6.10 acSteer.cpp File Reference . . . . . . . . . . . .
6.11 acSteer.h File Reference . . . . . . . . . . . . .
6.12 acTransform_wave.cpp File Reference . . . . .
6.13 acTransform_wave.h File Reference . . . . . . .
6.14 adm.cpp File Reference . . . . . . . . . . . . .
6.15 adm.hh File Reference . . . . . . . . . . . . . .
6.16 altplugs.cpp File Reference . . . . . . . . . . . .
6.17 analysemhaplugin.cpp File Reference . . . . . .
6.18 analysispath.cpp File Reference . . . . . . . . .
6.19 auditory_profile.cpp File Reference . . . . . . .
6.20 auditory_profile.h File Reference . . . . . . . . .
6.21 browsemhaplugins.cpp File Reference . . . . .
6.22 coherence.cpp File Reference . . . . . . . . . .
6.23 combinechannels.cpp File Reference . . . . . .
6.24 complex_filter.cpp File Reference . . . . . . . .
6.25 complex_filter.h File Reference . . . . . . . . .
6.26 cpuload.cpp File Reference . . . . . . . . . . .
6.27 db.cpp File Reference . . . . . . . . . . . . . . .
6.28 dc.cpp File Reference . . . . . . . . . . . . . . .
6.29 dc_afterburn.cpp File Reference . . . . . . . . .
6.30 dc_afterburn.h File Reference . . . . . . . . . .
6.31 dc_simple.cpp File Reference . . . . . . . . . .
6.32 delay.cpp File Reference . . . . . . . . . . . . .
6.33 delaysum.cpp File Reference . . . . . . . . . .
6.34 doasvm_classification.cpp File Reference . . .
6.35 doasvm_classification.h File Reference . . . . .
6.36 doasvm_feature_extraction.cpp File Reference .
6.37 doasvm_feature_extraction.h File Reference . .
6.38 doc_appendix.h File Reference . . . . . . . . .
6.39 doc_examples.h File Reference . . . . . . . . .
6.40 doc_frameworks.h File Reference . . . . . . . .
6.41 doc_general.h File Reference . . . . . . . . . .
6.42 doc_kernel.h File Reference . . . . . . . . . . .
6.43 doc_matlab.h File Reference . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.1167
.1173
.1175
.1178
.1182
.1185
.1187

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

1192
.1192
.1192
.1192
.1192
.1193
.1193
.1193
.1194
.1194
.1195
.1196
.1196
.1196
.1197
.1197
.1198
.1198
.1199
.1200
.1200
.1200
.1201
.1201
.1202
.1202
.1202
.1202
.1202
.1203
.1204
.1204
.1205
.1205
.1205
.1206
.1206
.1206
.1207
.1207
.1207
.1207
.1207
.1207

© 2005-2018 HörTech gGmbH, Oldenburg

CONTENTS
6.44
6.45
6.46
6.47
6.48
6.49
6.50
6.51
6.52
6.53
6.54
6.55
6.56
6.57
6.58
6.59
6.60
6.61
6.62
6.63
6.64
6.65
6.66
6.67
6.68
6.69
6.70
6.71
6.72
6.73
6.74
6.75
6.76
6.77
6.78
6.79
6.80
6.81
6.82
6.83
6.84
6.85
6.86
6.87
6.88
6.89
6.90
6.91
6.92
6.93
6.94

doc_mhamain.h File Reference . . . . . .
doc_parser.h File Reference . . . . . . . .
doc_plugif.cpp File Reference . . . . . . .
doc_plugins.h File Reference . . . . . . .
doc_system.h File Reference . . . . . . .
doc_toolbox.h File Reference . . . . . . .
downsample.cpp File Reference . . . . . .
droptect.cpp File Reference . . . . . . . .
example1.cpp File Reference . . . . . . .
example2.cpp File Reference . . . . . . .
example3.cpp File Reference . . . . . . .
example4.cpp File Reference . . . . . . .
example5.cpp File Reference . . . . . . .
example6.cpp File Reference . . . . . . .
fader_spec.cpp File Reference . . . . . . .
fader_wave.cpp File Reference . . . . . .
fftfilterbank.cpp File Reference . . . . . . .
fshift_hilbert.cpp File Reference . . . . . .
gain.cpp File Reference . . . . . . . . . . .
gaintable.cpp File Reference . . . . . . . .
gaintable.h File Reference . . . . . . . . .
generatemhaplugindoc.cpp File Reference
hann.cpp File Reference . . . . . . . . . .
hann.h File Reference . . . . . . . . . . .
identity.cpp File Reference . . . . . . . . .
ifftshift.cpp File Reference . . . . . . . . .
ifftshift.h File Reference . . . . . . . . . . .
iirfilter.cpp File Reference . . . . . . . . . .
lpc.cpp File Reference . . . . . . . . . . .
lpc.h File Reference . . . . . . . . . . . . .
lpc_bl_predictor.cpp File Reference . . . .
lpc_bl_predictor.h File Reference . . . . .
lpc_burg-lattice.cpp File Reference . . . .
lpc_burg-lattice.h File Reference . . . . . .
matrixmixer.cpp File Reference . . . . . .
mha.cpp File Reference . . . . . . . . . .
mha.h File Reference . . . . . . . . . . . .
mha_algo_comm.cpp File Reference . . .
mha_algo_comm.h File Reference . . . .
mha_algo_comm.hh File Reference . . . .
mha_defs.h File Reference . . . . . . . . .
mha_errno.c File Reference . . . . . . . .
mha_errno.h File Reference . . . . . . . .
mha_error.cpp File Reference . . . . . . .
mha_error.hh File Reference . . . . . . . .
mha_event_emitter.h File Reference . . .
mha_events.cpp File Reference . . . . . .
mha_events.h File Reference . . . . . . .
mha_fftfb.cpp File Reference . . . . . . . .
mha_fftfb.hh File Reference . . . . . . . .
mha_fifo.cpp File Reference . . . . . . . .

© 2005-2018 HörTech gGmbH, Oldenburg

xiii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.1207
.1207
.1207
.1207
.1207
.1207
.1207
.1207
.1208
.1208
.1208
.1208
.1208
.1209
.1209
.1209
.1210
.1210
.1211
.1211
.1211
.1212
.1213
.1214
.1214
.1214
.1215
.1215
.1215
.1216
.1216
.1217
.1217
.1218
.1218
.1219
.1219
.1228
.1229
.1230
.1231
.1233
.1235
.1236
.1237
.1238
.1238
.1238
.1239
.1241
.1241

xiv
6.95 mha_fifo.h File Reference . . . . . . . . . .
6.96 mha_filter.cpp File Reference . . . . . . . .
6.97 mha_filter.hh File Reference . . . . . . . . .
6.98 mha_generic_chain.cpp File Reference . . .
6.99 mha_generic_chain.h File Reference . . . .
6.100 mha_io_ifc.h File Reference . . . . . . . . .
6.101 mha_multisrc.cpp File Reference . . . . . .
6.102 mha_multisrc.h File Reference . . . . . . . .
6.103 mha_os.cpp File Reference . . . . . . . . .
6.104 mha_os.h File Reference . . . . . . . . . . .
6.105 mha_parser.cpp File Reference . . . . . . .
6.106 mha_parser.hh File Reference . . . . . . . .
6.107 mha_plugin.hh File Reference . . . . . . . .
6.108 mha_profiling.c File Reference . . . . . . . .
6.109 mha_profiling.h File Reference . . . . . . . .
6.110 mha_ruby.cpp File Reference . . . . . . . .
6.111 mha_signal.cpp File Reference . . . . . . .
6.112 mha_signal.hh File Reference . . . . . . . .
6.113 mha_signal_fft.h File Reference . . . . . . .
6.114 mha_tablelookup.cpp File Reference . . . .
6.115 mha_tablelookup.hh File Reference . . . . .
6.116 mha_tcp.cpp File Reference . . . . . . . . .
6.117 mha_tcp.hh File Reference . . . . . . . . . .
6.118 mha_toolbox.h File Reference . . . . . . . .
6.119 mha_windowparser.cpp File Reference . . .
6.120 mha_windowparser.h File Reference . . . .
6.121 mhachain.cpp File Reference . . . . . . . .
6.122 mhafw_lib.cpp File Reference . . . . . . . .
6.123 mhafw_lib.h File Reference . . . . . . . . . .
6.124 MHAIOFile.cpp File Reference . . . . . . . .
6.125 MHAIOJack.cpp File Reference . . . . . . .
6.126 MHAIOParser.cpp File Reference . . . . . .
6.127 MHAIOPortAudio.cpp File Reference . . . .
6.128 MHAIOTCP.cpp File Reference . . . . . . .
6.129 mhajack.cpp File Reference . . . . . . . . .
6.130 mhajack.h File Reference . . . . . . . . . . .
6.131 mhamain.cpp File Reference . . . . . . . . .
6.132 mhapluginloader.cpp File Reference . . . . .
6.133 mhapluginloader.h File Reference . . . . . .
6.134 mhasndfile.cpp File Reference . . . . . . . .
6.135 mhasndfile.h File Reference . . . . . . . . .
6.136 multibandcompressor.cpp File Reference . .
6.137 nlms_wave.cpp File Reference . . . . . . . .
6.138 noise.cpp File Reference . . . . . . . . . . .
6.139 noisePowProposedScale.cpp File Reference
6.140 overlapadd.cpp File Reference . . . . . . . .
6.141 pluginbrowser.cpp File Reference . . . . . .
6.142 pluginbrowser.h File Reference . . . . . . .
6.143 prediction_error.cpp File Reference . . . . .
6.144 prediction_error.h File Reference . . . . . .
6.145 resampling.cpp File Reference . . . . . . . .

CONTENTS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.1241
.1242
.1243
.1244
.1245
.1245
.1247
.1247
.1248
.1248
.1253
.1255
.1259
.1262
.1263
.1264
.1265
.1269
.1279
.1279
.1279
.1280
.1282
.1284
.1284
.1284
.1285
.1285
.1285
.1286
.1290
.1295
.1300
.1305
.1311
.1312
.1314
.1316
.1316
.1316
.1317
.1318
.1318
.1320
.1320
.1321
.1321
.1321
.1321
.1322
.1322

© 2005-2018 HörTech gGmbH, Oldenburg

CONTENTS
6.146 rmslevel.cpp File Reference . . . . . . .
6.147 route.cpp File Reference . . . . . . . . .
6.148 save_spec.cpp File Reference . . . . . .
6.149 save_wave.cpp File Reference . . . . . .
6.150 shadowfilter_begin.cpp File Reference .
6.151 shadowfilter_end.cpp File Reference . .
6.152 sine.cpp File Reference . . . . . . . . . .
6.153 smoothgains_bridge.cpp File Reference
6.154 softclip.cpp File Reference . . . . . . . .
6.155 spec2wave.cpp File Reference . . . . . .
6.156 speechnoise.cpp File Reference . . . . .
6.157 speechnoise.h File Reference . . . . . .
6.158 split.cpp File Reference . . . . . . . . . .
6.159 steerbf.cpp File Reference . . . . . . . .
6.160 steerbf.h File Reference . . . . . . . . .
6.161 testalsadevice.c File Reference . . . . .
6.162 timoconfig.cpp File Reference . . . . . .
6.163 timoconfig.h File Reference . . . . . . .
6.164 timoSmooth.cpp File Reference . . . . .
6.165 timosmooth.h File Reference . . . . . . .
6.166 transducers.cpp File Reference . . . . .
6.167 upsample.cpp File Reference . . . . . .
6.168 wave2spec.cpp File Reference . . . . . .
6.169 wavrec.cpp File Reference . . . . . . . .
6.170 windowselector.cpp File Reference . . .
6.171 windowselector.h File Reference . . . . .
Index

© 2005-2018 HörTech gGmbH, Oldenburg

xv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.1322
.1323
.1323
.1323
.1323
.1323
.1324
.1324
.1324
.1324
.1325
.1330
.1330
.1331
.1332
.1332
.1333
.1334
.1334
.1335
.1335
.1336
.1336
.1337
.1337
.1337
1339

1 Overview

1

1

Overview

The HörTech Open Master Hearing Aid (openMHA), is a development and evaluation software
platform that is able to execute hearing aid signal processing in real-time on standard computing
hardware with a low delay between sound input and output.

1.1

Structure

The openMHA can be split into four major components :
• The openMHA command line application (MHA) (p. 35)
• Signal processing plugins (p. 6)
• Audio input-output (IO) plugins (see io_file_t (p. 411), MHAIOJack (p. 107), io_parser_t
(p. 423), io_tcp_parser_t (p. 433))
• The openMHA toolbox library (p. 36)

control applications
(e.g., Octave)
openMHA
libopenmha

plugins

MHA

IO

audio backend
(Jack, File, TCP)

Figure 1 openMHA structure

The openMHA command line application (MHA) (p. 35) acts as a plugin host. It can load
signal processing plugins as well as audio input-output (IO) plugins. Additionally, it provides the
command line configuration interface and a TCP/IP based configuration interface. Several IO
plugins exist: For real-time signal processing, commonly the openMHA MHAIOJack (p. 107)
plugin (see plugins' manual) is used, which provides an interface to the Jack Audio Connection
Kit (JACK). Other IO plugins provide audio file access or TCP/IP-based processing.
openMHA plugins (p. 6) provide the audio signal processing capabilities and audio signal handling. Typically, one openMHA plugin implements one specific algorithm. The complete virtual
hearing aid signal processing can be achieved by a combination of several openMHA plugins.
© 2005-2018 HörTech gGmbH, Oldenburg

2

1.2

CONTENTS

Platform Services and Conventions

The openMHA platform offers some services and conventions to algorithms implemented in
plugins, that make it especially well suited to develop hearing aid algorithms, while still supporting general-purpose signal processing.

1.2.1

Audio Signal Domains

As in most other plugin hosts, the audio signal in the openMHA is processed in audio chunks.
However, plugins are not restricted to propagate audio signal as blocks of audio samples in the
time domain another option is to propagate the audio signal in the short time Fourier transform
(STFT) domain, i.e. as spectra of blocks of audio signal, so that not every plugin has to perform
its own STFT analysis and synthesis. Since STFT analysis and re-synthesis of acceptable
audio quality always introduces an algorithmic delay, sharing STFT data is a necessity for a
hearing aid signal processing platform, because the overall delay of the complete processing
has to be as short as possible.
Similar to some other platforms, the openMHA allows also arbitrary data to be exchanged
between plugins through a mechanism called algorithm communication variables (p. 28) or
short "AC vars". This mechanism is commonly used to share data such as filter coefficients or
filter states.

1.2.2

Real-Time Safe Complex Configuration Changes

Hearing aid algorithms in the openMHA can export configuration settings that may be changed
by the user at run time.
To ensure real-time safe signal processing, the audio processing will normally be done in a
signal processing thread with real-time priority, while user interaction with configuration parameters would be performed in a configuration thread with normal priority, so that the audio
processing does not get interrupted by configuration tasks. Two types of problems may occur
when the user is changing parameters in such a setup:
• The change of a simple parameter exposed to the user may cause an involved recalculation of internal runtime parameters that the algorithm actually uses in processing. The
duration required to perform this recalculation may be a significant portion of (or take even
longer than) the time available to process one block of audio signal. In hearing aid usage,
it is not acceptable to halt audio processing for the duration that the recalculation may
require.
• If the user needs to change multiple parameters to reach a desired configuration state
of an algorithm from the original configuration state, then it may not be acceptable that
processing is performed while some of the parameters have already been changed while
others still retain their original values. It is also not acceptable to interrupt signal processing until all pending configuration changes have been performed.
© 2005-2018 HörTech gGmbH, Oldenburg

1.2

Platform Services and Conventions

3

The openMHA provides a mechanism in its toolbox library to enable real-time safe configuration
changes in openMHA plugins:
Basically, existing runtime configurations are used in the processing thread until the work of
creating an updated runtime configuration has been completed in the configuration thread.
In hearing aids, it is more acceptable to continue to use an outdated configuration for a few
more milliseconds than blocking all processing.
The openMHA toolbox library provides an easy-to-use mechanism to integrate real-time safe
runtime configuration updates into every plugin.

1.2.3

Plugins can Themselves Host Other Plugins

An openMHA plugin can itself act as a plugin host. This allows to combine analysis and resynthesis methods in a single plugin. We call plugins that can themselves load other plugins
“bridge plugins'' in the openMHA.
When such a bridge plugin is then called by the openMHA to process one block of signal, it
will first perform its analysis, then invoke (as a function call) the signal processing in the loaded
plugin to process the block of signal in the analysis domain, wait to receive a processed block of
signal in the analysis domain back from the loaded plugin when the signal processing function
call to that plugin returns, then perform the re-synthesis transform, and finally return the block
of processed signal in the original domain back to the caller of the bridge plugin.

1.2.4

Central Calibration

The purpose of hearing aid signal processing is to enhance the sound for hearing impaired
listeners. Hearing impairment generally means that people suffering from it have increased
hearing thresholds, i.e. soft sounds that are audible for normal hearing listeners may be imperceptible for hearing impaired listeners. To provide accurate signal enhancement for hearing
impaired people, hearing aid signal processing algorithms have to be able to determine the
absolute physical sound pressure level corresponding to a digital signal given to any openM←HA plugin for processing. Inside the openMHA, we achieve this with the following convention:
The single-precision floating point time-domain sound signal samples, that are processed inside the openMHA plugins in blocks of short durations, have the physical pressure unit Pascal
( 1Pa = 1N/m2 ). With this convention in place, all plugins can determine the absolute physical sound pressure level from the sound samples that they process. A derived convention is
employed in the spectral domain for STFT signals. Due to the dependency of the calibration
on the hardware used, it is the responsibility of the user of the openMHA to perform calibration
measurements and adapt the openMHA settings to make sure that this calibration convention is
met. We provide the plugin transducers which can be configured to perform the necessary
signal adjustments.
© 2005-2018 HörTech gGmbH, Oldenburg

4

2

CONTENTS

Todo List

Class AuditoryProfile::profile_t (p. 240)
Give more documentation; implement all parts of the auditory profile.
Class mhaconfig_t (p. 595)
Add information on number of bands and on center frequencies, or replace by mha_audio←_descriptor_t (p. 498).
Class MHAFilter::filter_t (p. 633)
Implement a more robust filter form.
Member MHAFilter::polyphase_resampling_t::now_index (p. 672)
Index into what? What is the meaning of now?
Class MHAPlugin::plugin_t< runtime_cfg_t > (p. 882)
Describe all services provided by this class, so that the reason why it is recommended that
all plugins use this class as their base is evident. Document all relevant methods and fields.

3
3.1

Module Documentation
Concept of Variables and Data Exchange in the openMHA

Accessibility of configuration variables and data exchange between plugins (processing blocks)
are an important issue in the openMHA.
Accessibility of configuration variables and data exchange between plugins (processing blocks)
are an important issue in the openMHA.
In general, variable types in the openMHA are distinguished by their different access methods.
The variable types in the openMHA are:
• Configuration variables : Read and write accesses are possible through the openM←HA configuration language interface. Configuration variables are implemented as C++
classes with a public data member of the underlying C type. Configuration variables
can be read and modified from “outside'' using the configuration language. The plugin
which provides the configuration variable can use the exposed data member directly. All
accesses through the openMHA configuration language are checked for data type, valid
range, and access restrictions.
• Monitor variables : Read access is possible through the openMHA configuration language. Write access is only possible from the C++ code. Internally, monitor variables
have a similar C++ class interface as configuration variables.
• AC variables (algorithm communication variables (p. 28)): Any C or C++ data structure can be shared within an openMHA chain. Access management and name space
is realised in openMHA chain plugin ('mhachain'). AC variables are not available to the
openMHA configuration language interface, although a read-only converter plugin acmon
is available.
© 2005-2018 HörTech gGmbH, Oldenburg

3.1

Concept of Variables and Data Exchange in the openMHA

5

• Runtime configuration : Algorithms usually derive more parameters (runtime configuration) from the openMHA configuration language variables. When a configuration variable
changes through configuration language write access, then the runtime configuration has
to be recomputed. Plugin developers are encouraged to encapsulate the runtime configuration in a C++ class, which recomputes the runtime configuration from configuration
variables in the constructor. The openMHA supports lock-free and thread-safe replacement of the runtime configuration instance (see example5.cpp (p. 21) and references
therein).

Configuration language

Plugin specific

Chain specific

variables

runtime configuation
(e.g. C++ class)

algorithm communication
(AC variables)

monitors

Figure 2 Variable types in the openMHA

The C++ data types are shown in the figure below. These variables can be accessed via the
openMHA host application using the openMHA configuration language. For more details see
'Application engineers' manual'.
MHAParser elements
Monitors

Variables

Numeric monitors

Numeric variables

int_mon_t

int_t

vint_mon_t

vint_t

float_mon_t

float_t

vfloat_mon_t

vfloat_t

mfloat_mon_t

mfloat_t

complex_mon_t

complex_t

vcomplex_mon_t

vcompelx_t

string_mon_t

string_t

vstring_mon_t

vstring_t
kw_t
bool_t

Figure 3 MHAParser elements

© 2005-2018 HörTech gGmbH, Oldenburg

parser_t

6

3.2

CONTENTS

The openMHA Plugins (programming interface)

An openMHA plugin is the signal processing unit, usually an algorithm.

Classes
• class MHAPlugin::plugin_t< runtime_cfg_t >
The template class for C++ openMHA plugins.

Macros
• #define MHAPLUGIN_CALLBACKS_PREFIX(prefix, classname, indom, outdom)
C++ wrapper macro for the plugin interface.

• #define MHAPLUGIN_CALLBACKS(plugname, classname, indom, outdom) MHAPL←UGIN_CALLBACKS_PREFIX(MHA_STATIC_ ## plugname ## _,classname,indom,outdom)
C++ wrapper macro for the plugin interface.

• #define MHAPLUGIN_DOCUMENTATION(plugname, cat, doc) MHAPLUGIN_DOC←UMENTATION_PREFIX(MHA_STATIC_ ## plugname ## _,cat,doc)
Wrapper macro for the plugin documentation interface.

3.2.1

Detailed Description

An openMHA plugin is the signal processing unit, usually an algorithm.
openMHA plugins can be combined into processing chains. One of the configured chains can
be selected for output which allows direct comparison of single algorithms or complex signal
processing configurations. Algorithms within one chain can communicate with each other by
sharing some of their variables, see section Communication between algorithms (p. 28).
The openMHA plugins can use the openMHA configuration language for their configuration.
If they do so, the configuration can be changed through the framework even at run time. A
description of this language can be found in section The openMHA configuration language
(p. 35). If the algorithms should make use of the openMHA configuration language, they need
to be written in C++ rather than pure C.
In the openMHA package a set of example plugins is included. These examples are the base
of a step by step tutorial on how to write an openMHA plugin. See section Writing openMHA
Plugins. A step-by-step tutorial (p. 11) for detailes.
openMHA plugins communicate with the openMHA using a simple ANSI-C interface. This
way it is easy to mix plugins compiled with different C++ compilers. For convenience, we
provide C++ classes which can be connected to the C++ interface. We strongly recommend
the usage of these C++ wrappers. They include out-of-the box support exporting variables to
the configuration interface and for thread safe configuration update.
The openMHA C++ plugin interface consists of a few number of method prototypes:
The output domain (spectrum or waveform) of an openMHA plugin will typically be the same as
the input domain:
© 2005-2018 HörTech gGmbH, Oldenburg

3.2

The openMHA Plugins (programming interface)

7

• mha_wave_t (p. 583) ∗ process(mha_wave_t (p. 583) ∗): pure waveform processing
• mha_spec_t (p. 547) ∗ process(mha_spec_t (p. 547) ∗): pure spectral processing

But it is also possible to implement domain transformations (from the time domain into spectrum
or vice versa). The corresponding method signatures are:

• mha_spec_t (p. 547) ∗ process(mha_wave_t (p. 583) ∗): Domain transformation from
waveform to spectrum
• mha_wave_t (p. 583) ∗ process(mha_spec_t (p. 547) ∗): Domain transformation from
spectrum to waveform

For preparation and release of a plugin, the methods

• void prepare(mhaconfig_t (p. 595) &) and
• void release(void)

have to be implemented. The openMHA will call the process() method only ater the prepare method has returned and before release() is invoked. It is guarantteed by the open←MHA framework that signal processing is performed only between calls of prepare() and
release(). Each call of prepare() is followed by a call of release() (after some optional
signal processing).
For configuration purposes, the plugin class has to export a method called parse() which
implements the openMHA configuration language. We strongly recommend that you do not
implement this method yourself, but by inheriting from the class MHAParser::parser_t (p. 833)
from the openMHA toolbox, directly or indirectly (inheriting from a class that itself inherits from
MHAParser::parser_t (p. 833)).

3.2.2

Connecting the C++ class with the C Interface

A C++ class which provides the appropriate methods can be used as an openMHA Plugin by
connecting it to the C interface using the MHAPLUGIN_CALLBACKS (p. 8) macro.
The openMHA Toolbox library provides a base class MHAPlugin::plugin_t (p. 882) (a
template class) which can be used as the base class for a plugin class. This base class implements some necessary features for openMHA plugin developers like integration into the
openMHA configuration language environment (it inherits from MHAParser::parser_t (p. 833))
and thread-safe runtime configuration update.
© 2005-2018 HörTech gGmbH, Oldenburg

8

3.2.3

CONTENTS

Error reporting

When your plugin detects a situation that it cannot handle, like input signal of the wrong signal
domain at preparation time, unsupported number of input channels at preparation time, unsupported combinations of values in the plugin's variables during configuration, it should throw a
C++ exception. The exception should be of type MHAError. Exceptions of this type are caught
by the MHAPLUGIN_CALLBACKS (p. 8) macro for further error Reporting.
Throwing exceptions in response to unsupported configuration changes does not stop the signal processing. The openMHA configuration language parser will restore the previous value
of that variable and report an error to the configurator, while the signal processing continues.
Throwing exceptions from the signal processing thread will terminate the signal processing.
Therefore, you should generally avoid throwing exceptions from the process method. Only do
this if you detected a defect in your plugin, and then you should include enough information in
the error message to be able to fix the defect.

3.2.4

Contents of the openMHA Plugin programming interface

3.2.5

Macro Definition Documentation

3.2.5.1

MHAPLUGIN_CALLBACKS_PREFIX

#define MHAPLUGIN_CALLBACKS_PREFIX(
prefix,
classname,
indom,
outdom )

C++ wrapper macro for the plugin interface.
Parameters
classname

The name of the plugin class

indom

Input domain (wave or spec)

outdom

Output domain (wave or spec)

This macro defines all required openMHA Plugin interface functions and passes calls of these
functions to the corresponding member functions of the class ‘classname'. The parameters
‘indom' and ‘outdom' specify the input and output domain of the processing method. The
MHAInit() and MHADestroy() functions will create or destroy an instance of the class. The
approriate member functions have to be defined in the class. It is suggested to make usage of
the MHAPlugin::plugin_t (p. 882) template class. Exceptions of type MHA_Error (p. 522) are
caught and transformed into apropriate error codes with their corresponding error messages.
© 2005-2018 HörTech gGmbH, Oldenburg

3.2

The openMHA Plugins (programming interface)

3.2.5.2

9

MHAPLUGIN_CALLBACKS

#define MHAPLUGIN_CALLBACKS(
plugname,
classname,
indom,
outdom )

MHAPLUGIN_CALLBACKS_PREFIX(MHA_STATIC_ ## plugname ## _←-

,classname,indom,outdom)

C++ wrapper macro for the plugin interface.
Parameters
plugname

The file name of the plugin without the .so or .dll extension

classname

The name of the plugin class

indom

Input domain (wave or spec)

outdom

Output domain (wave or spec)

This macro defines all required openMHA Plugin interface functions and passes calls of these
functions to the corresponding member functions of the class ‘classname'. The parameters
‘indom' and ‘outdom' specify the input and output domain of the processing method. The MHA←Init() and MHADestroy() functions will create or destroy an instance of the class. The approriate
member functions have to be defined in the class. It is suggested to make usage of the MH←APlugin::plugin_t (p. 882) template class. Exceptions of type MHA_Error (p. 522) are caught
and transformed into apropriate error codes with their corresponding error messages.
3.2.5.3

MHAPLUGIN_DOCUMENTATION

#define MHAPLUGIN_DOCUMENTATION(
plugname,
cat,
doc )

MHAPLUGIN_DOCUMENTATION_PREFIX(MHA_STATIC_ ## plugname ## _←-

,cat,doc)

Wrapper macro for the plugin documentation interface.
Parameters
plugin

The file name of the plugin without the .so or .dll extension

cat

Space separated list of categories to which belong the plugin (as const char∗)

doc

Documentation of the plugin (as const char∗)

This macro defines the openMHA Plugin interface function for the documentation. The categories can be any space seperated list of category names. An empty string will categorize the
plugin in the category 'other'.
The documentation should contain a description of the plugin including a description of the
underlying models, and a paragraph containing hints for usage. The text should be LaTeX
© 2005-2018 HörTech gGmbH, Oldenburg

10

CONTENTS

compatible (e.g., avoid or quote underscores in the text part); equations should be formatted
as LaTeX.

© 2005-2018 HörTech gGmbH, Oldenburg

3.3

Writing openMHA Plugins. A step-by-step tutorial

3.3

Writing openMHA Plugins. A step-by-step tutorial

11

A step-by-step tutorial on writing openMHA plugins.
A step-by-step tutorial on writing openMHA plugins.
openMHA contains a small number of example plugins as C++ source code. They are meant to
help developers in understanding the concepts of openMHA plugin programming starting from
the simplest example and increasing in complexity. This tutorial explains the basic parts of the
example files.
3.3.1

example1.cpp

The example plugin file example1.cpp (p. 1208) demonstrates the easiest way to implement an openMHA Plugin. It attenuates the sound signal in the first channel by multiplying the
sound samples with a factor. The plugin class MHAPlugin::plugin_t (p. 882) exports several
methods, but only two of them need a non-empty implementation: prepare() method is a
pure virtual function and process() is called when signal processing starts.
#include "mha_plugin.hh"
class example1_t : public MHAPlugin::plugin_t {
public:
example1_t(algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name)
: MHAPlugin::plugin_t("",ac)
{/* Do nothing in constructor */}
void release(void)
{/* Do nothing in release */}

Every plugin implementation should include the 'mha_plugin.hh (p. 1259)' header file. C++
helper classes for plugin development are declared in this header file, and most header files
needed for plugin development are included by mha_plugin.hh (p. 1259).
The class plugin1_t inherits from the class MHAPlugin::plugin_t (p. 882), which then inherits from MHAParser::parser_t (p. 833) – the configuration language interface in the method
"parse". Our plugin class therefore exports the working "parse" method inherited from MHA←Parser::parser_t (p. 833), and the plugin is visible in the openMHA configuration tree.
The constructor has to accept 3 parameters of correct types. In this simple example, we do not
make use of them.
The release() method is used to free resources after signal processing. In this simple example, we do not allocate resources, so there is no need to free them.
3.3.1.1

The prepare method

void prepare(mhaconfig_t & signal_info)
{
if (signal_info.domain != MHA_WAVEFORM)
throw MHA_Error(__FILE__, __LINE__,
"This plugin can only process waveform signals.");
if (signal_info.channels < 1)
throw MHA_Error(__FILE__,__LINE__,
"This plugin requires at least one input channel.");
}

© 2005-2018 HörTech gGmbH, Oldenburg

12

CONTENTS

Parameters
signal_info

Contains information about the input signal's parameters, see mhaconfig_t
(p. 595).

The prepare() method of the plugin is called before the signal processing starts, when the
input signal parameters like domain, number of channels, frames per block, and sampling rate
are known. The prepare() method can check these values and raise an exception if the
plugin cannot cope with them, as is done here. The plugin can also change these values if the
signal processing performed in the plugin results in an output signal with different parameters.
This plugin does not change the signal's parameters, therefore they are not modified here.
3.3.1.2

The signal processing method

mha_wave_t * process(mha_wave_t * signal)
{
unsigned int channel = 0; // channels and frames counting starts with 0
float factor = 0.1f;
unsigned int frame;
// Scale channel number "channel" by "factor":
for(frame = 0; frame < signal->num_frames; frame++) {
// Waveform channels are stored interleaved.
signal->buf[signal->num_channels * frame + channel] *= factor;
}
// Algorithms may process data in-place and return the input signal
// structure as their output signal:
return signal;
}
};

Parameters
signal

Pointer to the input signal structure mha_wave_t (p. 583).

Returns
Pointer to the output signal structure. The input signal structure may be reused if the
signal has the same domain and dimensions.
The plugin works with time domain input signal (indicated by the data type mha_wave_t (p. 583)
of the process method's parameter). It scales the first channel by a factor of 0.1. The output
signal reuses the structure that previously contained the input signal (in-place processing).
3.3.1.3

Connecting the C++ class with the C plugin interface

Plugins have to export C functions as their interface (to avoid C++ name-mangling issues and
other incompatibilities when mixing plugins compiled with different C++ compilers).
MHAPLUGIN_CALLBACKS(example1,example1_t,wave,wave)

© 2005-2018 HörTech gGmbH, Oldenburg

3.3

Writing openMHA Plugins. A step-by-step tutorial

13

This macro takes care of accessing the C++ class from the C functions required as the plugin's
interface. It implements the C funtions and calls the corresponding C++ instance methods.
Plugin classes should be derived from the template class MHAPlugin::plugin_t (p. 882) to be
compatible with the C interface wrapper.
This macro also catches C++ exceptions of type MHA_Error (p. 522), when raised in the methods of the plugin class, and reports the error using an error flag as the return value of the
underlying C function. It is therefore important to note that only C++ exceptions of type MH←A_Error (p. 522) may be raised by your plugin. If your code uses different Exception classes,
you will have to catch them yourself before control leaves your plugin class, and maybe report
the error by throwing an instance of MHA_Error (p. 522). This is important, because: (1) C++
exceptions cannot cross the plugin interface, which is in C, and (2) there is no error handling
code for your exception classes in the openMHA framework anyways.

3.3.2

example2.cpp

This is another simple example of openMHA plugin written in C++. This plugin also scales one
channel of the input signal, working in the time domain. The scale factor and which channel to
scale (index number) are made accessible to the configuration language.
The algorithm is again implemented as a C++ class.

class example2_t : public MHAPlugin::plugin_t {
MHAParser::int_t scale_ch;
MHAParser::float_t factor;
public:
example2_t(algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name);
void prepare(mhaconfig_t & signal_info);
void release(void);
mha_wave_t * process(mha_wave_t * signal);
};

Parameters
scale_ch
factor

– the channel number to be scaled
– the scale factor of the scaling.

This class again inherits from the template class MHAPlugin::plugin_t (p. 882) for intergration
with the openMHA configuration language. The two data members serve as externally visible
configuration variables. All methods of this class have a non-empty implementation.
3.3.2.1

Constructor

example2_t::example2_t(algo_comm_t & ac,
const std::string & chain_name,

© 2005-2018 HörTech gGmbH, Oldenburg

14

CONTENTS

const std::string & algo_name)
: MHAPlugin::plugin_t("This plugin multiplies the sound signal"
" in one audio channel by a factor",ac),
scale_ch("Index of audio channel to scale. Indices start from 0.",
"0",
"[0,["),
factor("The scaling factor that is applied to the selected channel.",
"0.1",
"[0,[")
{
insert_item("channel", &scale_ch);
insert_item("factor", &factor);
}

The constructor invokes the superclass constructor with a string parameter. This string parameter serves as the help text that describes the functionality of the plugin. The constructor
registers configuration variables with the openMHA configuration tree and sets their default values and permitted ranges. The minimum permitted value for both variables is zero, and there is
no maximum limit (apart from the limitations of the underlying C data type). The configuration
variables have to be registered with the parser node instance using the MHAParser::parser←_t::insert_item (p. 835) method.
3.3.2.2

The prepare method

void example2_t::prepare(mhaconfig_t & signal_info)
{
if (signal_info.domain != MHA_WAVEFORM)
throw MHA_Error(__FILE__, __LINE__,
"This plugin can only process waveform signals.");
// The user may have configured scale_ch before prepare is called.
// Check that the configured channel is present in the input signal.
if (signal_info.channels <= unsigned(scale_ch.data))
throw MHA_Error(__FILE__,__LINE__,
"This plugin requires at least %d input channels.",
scale_ch.data + 1);
// Adjust the range of the channel configuration variable so that it
// cannot be set to an out-of-range value during processing.
using MHAParser::StrCnv::val2str;
scale_ch.set_range("[0," + val2str(int(signal_info.channels)) + "[");
}

Parameters
signal_info

– contains information about the input signal's parameters, see mhaconfig_t
(p. 595).

The user may have changed the configuration variables before preparing the openMHA plugin.
A consequence of this is that it is not sufficient any more to check if the input signal has at least
1 audio channel.
Instead, this prepare method checks that the input signal has enough channels so that the current value of scale_ch.data is a valid channel index, i.e. 0 ≤ scale_ch.data < signal←_info.channels. The prepare method does not have to check that 0 ≤ scale_ch.data,
since this is guaranteed by the valid range setting of the configuration variable.
© 2005-2018 HörTech gGmbH, Oldenburg

3.3

Writing openMHA Plugins. A step-by-step tutorial

15

The prepare method then modifies the valid range of the scale_ch variable, it modifies the upper bound so that the user cannot set the variable to a channel index higher than the available
channels. Setting the range is done using a string parameter. The prepare method contatenates a string of the form "[0,n[". n is the number of channels in the input signal, and is used
here as an exclusive upper boundary. To convert the number of channels into a string, a helper
function for string conversion from the openMHA Toolbox is used. This function is overloaded
and works for several data types.
It is safe to assume that the value of configuration variables does not change while the prepare method executes, since openMHA preparation is triggered from a configuration language
command, and the openMHA configuration language parser is busy and cannot accept other
commands until all openMHA plugins are prepared (or one of them stops the process by raising
an exception). As we will see later in this tutorial, the same assumption cannot be made for the
process method.
3.3.2.3

The release method

void example2_t::release(void)
{
scale_ch.set_range("[0,[");
}

The release method should undo the state changes that were performed by the prepare
method. In this example, the prepare method has reduced the valid range of the scale_←ch, so that only valid channels could be selected during signal processing.
The release method reverts this change by setting the valid range back to its original value,
"[0,[".
3.3.2.4

The signal processing method

mha_wave_t * example2_t::process(mha_wave_t * signal)
{
unsigned int frame;
for(frame = 0; frame < signal->num_frames; frame++)
value(signal,frame,scale_ch.data) *= factor.data;
return signal;
}

The processing function uses the current values of the configuration variables to scale every
frame in the selected audio channel.
Note that the value of each configuration variable can change while the processing method
executes, since the process method usually executes in a different thread than the configuration
interface.
For this simple plugin, this is not a problem, but for more advanced plugins, it has to be taken
into consideration. The next section takes a closer look at the problem.
© 2005-2018 HörTech gGmbH, Oldenburg

16

CONTENTS

Consistency
Assume that one thread reads the value stored in a variable while another thread writes a new
value to that variable concurrently. In this case, you may have a consistency problem. You
would perhaps expect that the value retrieved from the variable either (a) the old value, or (b)
the new value, but not (c) something else. Yet generally case (c) is a possibility.
Fortunately, for some data types on PC systems, case (c) cannot happen. These are 32bit
wide data types with a 4-byte alignment. Therefore, the values in MHAParser::int_t (p. 803)
and MHAParser::float_t (p. 797) are always consistent, but this is not the case for vectors,
strings, or complex values. With these, you can get a mixture of the bit patterns of old and new
values, or you can even cause a memory access violation in case a vector or string grows and
has to be reallocated to a different memory address.
There is also a consistency problem if you take the combination of two "safe" datatypes. The
openMHA provides a mechanism that can cope with these types of problems. This thread-safe
runtime configuration update mechanism is introduced in example 5.
3.3.3

example3.cpp

This example introduces the openMHA Event mechanism. Plugins that provide configuration
variable can receive a callback from the parser base class when a configuration variable is
accessed through the configuration language interface.
The third example performes the same processing as before, but now only even channel indices
are permitted when selecting the audio channel to scale. This restriction cannot be ensured by
setting the range of the channel index configuration variable. Instead, the event mechanism of
openMHA configuration variables is used. Configuration variables emit 4 different events, and
your plugin can connect callback methods that are called when the events are triggered. These
events are:
writeaccess
• triggered on write access to a configuration variable.
valuechanged
• triggered when write access to a configuration variable actually changes the value of this
variable.
readaccess
• triggered after the value of the configuration variable has been read.
prereadaccess
• triggered before the value of a configuration variable is read, i.e. the value of the requested variable can be changed by the callback to implement computation on demand.
All of these callbacks are executed in the configuration thread. Therefore, the callback implementation does not have to be realtime-safe. No other updates of configuration language variables through the configuration language can happen in parallel, but your processing method
can execute in parallel and may change values.
© 2005-2018 HörTech gGmbH, Oldenburg

3.3

Writing openMHA Plugins. A step-by-step tutorial

3.3.3.1

17

Data member declarations

class example3_t : public MHAPlugin::plugin_t {
MHAParser::int_t scale_ch;
MHAParser::float_t factor;
MHAParser::int_mon_t prepared;
MHAEvents::patchbay_t patchbay;

This plugin exposes another configuration variable, "prepared", that keeps track of the prepared state of the plugin. This is a read-only (monitor) integer variable, i.e. its value can only
be changed by your plugin's C++ code. When using the configuration language interface, the
value of this variable can only be read, but not changed.
The patchbay member is an instance of a connector class that connects event sources with
callbacks.

3.3.3.2

Method declarations

/* Callbacks triggered by Events */
void on_scale_ch_writeaccess();
void on_scale_ch_valuechanged();
void on_scale_ch_readaccess();
void on_prereadaccess();
public:
example3_t(algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name);
void prepare(mhaconfig_t & signal_info);
void release(void);
mha_wave_t * process(mha_wave_t * signal);
};

This plugin exposes 4 callback methods that are triggered by events. Multiple events (from the
same or different configuration variables) can be connected to the same callback method, if
desired.
This example plugin uses the valuechanged event to check that the scale_ch configuration
variable is only set to valid values.
The other callbacks only cause log messages to stdout, but the comments in the logging callbacks give a hint when listening on the events would be useful.
© 2005-2018 HörTech gGmbH, Oldenburg

18

3.3.3.3

CONTENTS

Example 3 constructor

example3_t::example3_t(algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name)
: MHAPlugin::plugin_t("This plugin multiplies the sound signal"
" in one audio channel by a factor",ac),
scale_ch("Index of audio channel to scale. Indices start from 0."
" Only channels with even indices may be scaled.",
"0",
"[0,["),
factor("The scaling factor that is applied to the selected channel.",
"0.1",
"[0,["),
prepared("State of this plugin: 0 = unprepared, 1 = prepared")
{
insert_item("channel", &scale_ch);
insert_item("factor", &factor);
prepared.data = 0;
insert_item("prepared", &prepared);
patchbay.connect(&scale_ch.writeaccess, this,
&example3_t::on_scale_ch_writeaccess);
patchbay.connect(&scale_ch.valuechanged, this,
&example3_t::on_scale_ch_valuechanged);
patchbay.connect(&scale_ch.readaccess, this,
&example3_t::on_scale_ch_readaccess);
patchbay.connect(&scale_ch.prereadaccess, this,
&example3_t::on_prereadaccess);
patchbay.connect(&factor.prereadaccess, this,
&example3_t::on_prereadaccess);
patchbay.connect(&prepared.prereadaccess, this,
&example3_t::on_prereadaccess);
}

The constructor of monitor variables does not take a parameter for setting the initial value.
The single parameter here is the help text describing the contents of the read-only variable.
If the initial value should differ from 0, then the .data member of the configuration variable
has to be set to the initial value in the plugin constructor's body explicitly, as is done here for
demonstration although the initial value of this monitor variable is 0.
Events and callback methods are then connected using the patchbay member variable.
3.3.3.4

The prepare method

void example3_t::prepare(mhaconfig_t & signal_info)
{
if (signal_info.domain != MHA_WAVEFORM)
throw MHA_Error(__FILE__, __LINE__,
"This plugin can only process waveform signals.");
// The user may have configured scale_ch before prepare is called.
// Check that the configured channel is present in the input signal.
if (signal_info.channels <= unsigned(scale_ch.data))
throw MHA_Error(__FILE__,__LINE__,
"This plugin requires at least %d input channels.",
scale_ch.data + 1);
// bookkeeping
prepared.data = 1;
}

The prepare method checks wether the current setting of the scale_ch variable is possible with
the input signal dimension. It does not adjust the range of the variable, since the range alone
is not sufficient to ensure all future settings are also valid: The scale channel index has to be
even.
© 2005-2018 HörTech gGmbH, Oldenburg

3.3

Writing openMHA Plugins. A step-by-step tutorial

3.3.3.5

19

The release method

void example3_t::release(void)
{
prepared.data = 0;
}

The release method is needed for tracking the prepared state only in this example.
3.3.3.6

The signal processing method

mha_wave_t * example3_t::process(mha_wave_t * signal)
{
unsigned int frame;
for(frame = 0; frame < signal->num_frames; frame++)
value(signal,frame,scale_ch.data) *= factor.data;
return signal;
}

The signal processing member function is the same as in example 2.
3.3.3.7

The callback methods

void example3_t::on_scale_ch_writeaccess()
{
printf("Write access: Attempt to set scale_ch=%d.\n", scale_ch.data);
// Can be used to track any writeaccess to the configuration, even
// if it does not change the value. E.g. setting the name of the
// sound file in a string configuration variable can cause a sound
// file player plugin to start playing the sound file from the
// beginning.
}
void example3_t::on_scale_ch_valuechanged()
{
if (scale_ch.data & 1)
throw MHA_Error(__FILE__,__LINE__,
"Attempt to set scale_ch to non-even value %d",
scale_ch.data);
// Can be used to recompute a runtime configuration only if some
// configuration variable actually changed.
}
void example3_t::on_scale_ch_readaccess()
{
printf("scale_ch has been read.\n");
// A configuration variable used as an accumulator can be reset
// after it has been read.
}
void example3_t::on_prereadaccess()
{
printf("A configuration language variable is about to be read.\n");
// Can be used to compute the value on demand.
}
MHAPLUGIN_CALLBACKS(example3,example3_t,wave,wave)

When the writeaccess or valuechanged callbacks throw an MHAError exception, then the
change made to the value of the configuration variable is reverted.
If multiple event sources are connected to a single callback method, then it is not possible
to determine which event has caused the callback to execute. Often, this information is not
crucial, i.e. when the answer to a change of any variable in a set of variables is the same, e.g.
the recomputation of a new runtime configuration that takes all variables of this set as input.
© 2005-2018 HörTech gGmbH, Oldenburg

20

3.3.4

CONTENTS

example4.cpp

This plugin is the same as example 3 except that it works on the spectral domain (STFT).
3.3.4.1

The Prepare method

void example4_t::prepare(mhaconfig_t & signal_info)
{
if (signal_info.domain != MHA_SPECTRUM)
throw MHA_Error(__FILE__, __LINE__,
"This plugin can only process spectrum signals.");
// The user may have configured scale_ch before prepare is called.
// Check that the configured channel is present in the input signal.
if (signal_info.channels <= unsigned(scale_ch.data))
throw MHA_Error(__FILE__,__LINE__,
"This plugin requires at least %d input channels.",
scale_ch.data + 1);
// bookkeeping
prepared.data = 1;
}

The prepare method now checks that the signal domain is MHA_SPECTRUM.
3.3.4.2

The signal processing method

mha_spec_t * example4_t::process(mha_spec_t * signal)
{
unsigned int bin;
// spectral signal is stored non-interleaved.
mha_complex_t * channeldata =
signal->buf + signal->num_frames * scale_ch.data;
for(bin = 0; bin < signal->num_frames; bin++)
channeldata[bin] *= factor.data;
return signal;
}

The signal processing member function works on the spectral signal instead of the wave signal
as before.
The mha_spec_t (p. 547) instance stores the complex (mha_complex_t (p. 503)) spectral signal for positive frequences only (since the waveform signal is always real). The num_frames
member of mha_spec_t (p. 547) actually denotes the number of STFT bins.
Please note that different from mha_wave_t (p. 583), a multichannel signal in mha_spec_t
(p. 547) is stored non-interleaved in the signal buffer.
Some arithmetic operations are defined on struct mha_complex_t (p. 503) to facilitate efficient
complex computations. The ∗= operator used here (defined for real and for complex arguments)
is one of them.
3.3.4.3

Connecting the C++ class with the C plugin interface

MHAPLUGIN_CALLBACKS(example4,example4_t,spec,spec)

When connecting a class that performs spectral processing with the C interface, use spec
instead of wave as the domain indicator.
© 2005-2018 HörTech gGmbH, Oldenburg

3.3

3.3.5

Writing openMHA Plugins. A step-by-step tutorial

21

example5.cpp

Many algorithms use complex operations to transform the user space variables into run time
configurations. If this takes a noticeable time (e.g. more than 100-500 µ sec), the update of
the runtime configuration can not take place in the real time processing thread. Furthermore,
the parallel access to complex structures may cause unpredictable results if variables are read
while only parts of them are written to memory (cf. section Consistency (p. 16)). To handle
these situations, a special C++ template class MHAPlugin::plugin_t (p. 882) was designed.
This class helps keeping all access to the configuration language variables in the configuration
thread rather than in the processing thread.
The runtime configuration class example5_t (p. 366) is the parameter of the template class
MHAPlugin::plugin_t (p. 882). Its constructor converts the user variables into a runtime configuration. Because the constructor executes in the configuration thread, there is no harm if the
constructor takes a long time. All other member functions and data members of the runtime
configurations are accessed only from the signal processing thread (real-time thread).

class example5_t {
public:
example5_t(unsigned int,unsigned int,mha_real_t);
mha_spec_t* process(mha_spec_t*);
private:
unsigned int channel;
mha_real_t scale;
};

The plugin interface class inherits from the plugin template class MHAPlugin::plugin_←t (p. 882), parameterised by the runtime configuration. Configuration changes (write access
to the variables) will emit a write access event of the changed variables. These events can be
connected to member functions of the interface class by the help of a MHAEvents::patchbay←_t (p. 605) instance.

class plugin_interface_t : public MHAPlugin::plugin_t {
public:
plugin_interface_t(const algo_comm_t&,const std::string&,const std::string&);
mha_spec_t* process(mha_spec_t*);
void prepare(mhaconfig_t&);
private:
void update_cfg();
/* integer variable of MHA-parser: */
MHAParser::int_t scale_ch;
/* float variable of MHA-parser: */
MHAParser::float_t factor;
/* patch bay for connecting configuration parser
events with local member functions: */
MHAEvents::patchbay_t patchbay;
};

The constructor of the runtime configuration analyses and validates the user variables. If the
configuration is invalid, an exception of type MHA_Error (p. 522) is thrown. This will cause
the openMHA configuration language command which caused the change to fail: The modified
configuration language variable is then reset to its original value, and the error message will
contain the message string of the MHA_Error (p. 522) exception.
© 2005-2018 HörTech gGmbH, Oldenburg

22

CONTENTS

example5_t::example5_t(unsigned int ichannel,
unsigned int numchannels,
mha_real_t iscale)
: channel(ichannel),scale(iscale)
{
if( channel >= numchannels )
throw MHA_Error(__FILE__,__LINE__,
"Invalid channel number %d (only %d channels configured).",
channel,numchannels);
}

In this example, the run time configuration class example5_t (p. 366) has a signal processing member function. In this function, the selected channel is scaled by the given scaling factor.
mha_spec_t* example5_t::process(mha_spec_t* spec)
{
/* Scale channel number "scale_ch" by "factor": */
for(unsigned int fr = 0; fr < spec->num_frames; fr++){
spec->buf[fr + channel * spec->num_frames].re *= scale;
spec->buf[fr + channel * spec->num_frames].im *= scale;
}
return spec;
}

The constructor of the example plugin class is similar to the previous examples. A callback
triggered on write access to the variables is registered using the MHAEvents::patchbay_t
(p. 605) instance.
plugin_interface_t::plugin_interface_t(
const algo_comm_t& iac,
const std::string&,const std::string&)
: MHAPlugin::plugin_t("example plugin configuration structure",iac),
/* initialzing variable 'scale_ch' with MHAParser::int_t(char* name, .... ) */
scale_ch("channel number to be scaled","0","[0,["),
/* initialzing variable 'factor' with MHAParser::float_t(char* name, .... ) */
factor("scale factor","1.0","[0,2]")
{
/* Register variables to the configuration parser: */
insert_item("channel",&scale_ch);
insert_item("factor",&factor);
/*
* On write access to the parser variables a notify callback of
* this class will be called. That funtion will update the runtime
* configuration.
*/
patchbay.connect(&scale_ch.writeaccess,this,&plugin_interface_t::update_cfg);
patchbay.connect(&factor.writeaccess,this,&plugin_interface_t::update_cfg);
}

The processing function can gather the latest valid runtime configuration by a call of poll_←config. On success, the class member cfg points to this configuration. On error, if there is
no usable runtime configuration instance, an exception is thrown. In this example, the prepare
method ensures that there is a valid runtime configuration, so that in this example, no error can
be raised at this point. The prepare method is always executed before the process method is
called. The runtime configuration class in this example provides a signal processing method.
The process method of the plugin interface calls the process method of this instance to perform
the actual signal processing.
© 2005-2018 HörTech gGmbH, Oldenburg

3.3

Writing openMHA Plugins. A step-by-step tutorial

23

mha_spec_t* plugin_interface_t::process(mha_spec_t* spec)
{
poll_config();
return cfg->process(spec);
}

The prepare method ensures that a valid runtime configuration exists by creating a new runtime
configuration from the current configuration language variables. If the configuraion is invalid,
then an exception of type MHA_Error (p. 522) is raised and the preparation of the openMHA
fails with an error message.

void plugin_interface_t::prepare(mhaconfig_t& tfcfg)
{
if( tfcfg.domain != MHA_SPECTRUM )
throw MHA_Error(__FILE__,__LINE__,
"Example5: Only spectral processing is supported.");
/* remember the transform configuration (i.e. channel numbers): */
tftype = tfcfg;
/* make sure that a valid runtime configuration exists: */
update_cfg();
}

The update_cfg member function is called when the value of a configuration language variable
changes, or from the prepare method. It allocates a new runtime configuration and registers it
for later access from the real time processing thread. The function push_config (p. 880) stores
the configuration in a FiFo queue of runtime configurations. Once they are inserted in the FiFo,
the MHAPlugin::plugin_t (p. 882) template is responsible for deleting runtime configuration
instances stored in the FiFo. You don't need to keep track of the created instances, and you
must not delete them yourself.

void plugin_interface_t::update_cfg()
{
if( tftype.channels )
push_config(new example5_t(scale_ch.data,tftype.channels,factor.data));
}

In the end of the example code file, the macro MHAPLUGIN_CALLBACKS (p. 8) defines all
ANSI-C interface functions and passes them to the corresponding C++ class member functions (partly defined by the MHAPlugin::plugin_t (p. 882) template class). All exceptions of
type MHA_Error (p. 522) are caught and transformed into an appropriate error code and error
message.

MHAPLUGIN_CALLBACKS(example5,plugin_interface_t,spec,spec)

© 2005-2018 HörTech gGmbH, Oldenburg

24

3.3.6

CONTENTS

example6.cpp

This last example is the same as the previous one, but it additionally creates an 'Algorithm
Communication Variable' (AC variable). It calculates the RMS level of a given channel and
stores it into this variable. The variable can be accessed by any other algorithm in the same
chain. To store the data onto disk, the 'acsave' plugin can be used. 'acmon' is a plugin which
converts AC variables into parsable monitor variables.
In the constructor of the plugin class the variable rmsdb is registered under the name
example6_rmslev as a one-dimensional AC variable of type float. For registration of other
types, read access and other detailed informations please see Communication between algorithms (p. 28).

example6_t::example6_t(const algo_comm_t& iac,
const std::string&,const std::string&)
: MHAPlugin::plugin_t("example plugin configuration structure",iac),
/* initialzing variable 'channel_no' with MHAParser::int_t(char* name, .... ) */
channel_no("channel in which the RMS level is measured","0","[0,[")
{
/* Register variables to the configuration parser: */
insert_item("channel",&channel_no);
/*
* On write access to the parser variables a notify callback of
* this class will be called. That funtion will update the runtime
* configuration.
*/
patchbay.connect(&channel_no.writeaccess,this,&example6_t::update_cfg);
/*
* Propagate the level variable to all algorithms in the
* processing chain. If multiple instances of this algorithm are
* required, than it is necessary to use different names for this
* variable (i.e. prefixing the name with the algorithm name
* passed to MHAInit).
*/
ac.insert_var_float( ac.handle, "example6_rmslev", &rmsdb );
}

© 2005-2018 HörTech gGmbH, Oldenburg

3.3

3.3.7

Writing openMHA Plugins. A step-by-step tutorial

25

Debugging openMHA plugins

Suppose you would want to step through the code of your openMHA plugin with a debugger. This example details how to use the linux gdb debugger to inspect the example6_t←::prepare() (p. 369) and example6_t::process() (p. 369) routines of example6.←cpp (p. 24) example 6.
First, make sure that your plugin is compiled with the compiler option to include debugging
symbols: Apply the -ggdb switch to all gcc, g++ invocations.
Once the plugin is compiled, with debugging symbols, create a test configuration. For example
6, assuming there is an audio file named input.wav in your working directory, you could create
a configuration file named ‘debugexample6.cfg', with the following content:
# debugexample6.cfg
fragsize = 64
srate = 44100
nchannels_in = 2
iolib = MHAIOFile
io.in = input.wav
io.out = output.wav
mhalib = example6
mha.channel = 1
cmd=start

Assuming all your binaries and shared-object libraries are in your ‘bin' directory (see READ←ME.md), you could start gdb using
$ export MHA_LIBRARY_PATH=$PWD/bin
$ gdb $MHA_LIBRARY_PATH/mha

Set breakpoints in prepare and process methods, and start execution. Note that specifying the
breakpoint by symbol (example6_t::prepare (p. 369)) does not yet work, as the symbol
lives in the openMHA plugin that has not yet been loaded. Specifying by line number works,
however. Specifying the breakpoint by symbol also works once the plugin is loaded (i.e. when
the debugger stops in the first break point). You can set the breakpoints like this (example
shown here is run in gdb version 7.11.1):
(gdb) run ?read:debugexample6.cfg
Starting program: {openMHA_directory}/bin/mha ?read:debugexample6.cfg
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
The Open Master Hearing Aid (openMHA) server
Copyright (c) 2005-2017 HoerTech gGmbH, D-26129 Oldenburg, Germany
This program comes with ABSOLUTELY NO WARRANTY; for details see file COPYING.
This is free software, and you are welcome to redistribute it
under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE, Version 3;
for details see file COPYING.

Breakpoint 1, example6_t::prepare (this=0x6478b0, tfcfg=...)
at example6.cpp:192
192
if( tfcfg.domain != MHA_WAVEFORM )
(gdb) b example6.cpp:162
Breakpoint 2 at 0x7ffff589744a: file example6.cpp, line 162.
(gdb) c
Continuing.

© 2005-2018 HörTech gGmbH, Oldenburg

26

CONTENTS

Where ‘{openMHA_directory}' is the directory where openMHA is located (which should also
be your working directory in this case). Next stop is the process() method. You can now
examine and change the variables, step through the program as needed (using, for example ‘n'
to step in the next line):

Breakpoint 2, example6_t::process (this=0x7ffff6a06c0d, wave=0x10a8b550)
at example6.cpp:162
162
{
(gdb) n
163
poll_config();
(gdb)

© 2005-2018 HörTech gGmbH, Oldenburg

3.4

The MHA Framework interface

3.4

The MHA Framework interface

© 2005-2018 HörTech gGmbH, Oldenburg

27

28

3.5

CONTENTS

Communication between algorithms

Algorithms within one chain can share variables for communication with other algorithms.
Collaboration diagram for Communication between algorithms:

Communication between
algorithms

mha_algo_comm.h

The openMHA Toolbox
library

Files
• file mha_algo_comm.h
Header file for Algorithm Communication.

Namespaces
• MHA_AC
Functions and classes for Algorithm Communication (AC) support.

Classes
• class MHA_AC::spectrum_t
Insert a MHASignal::spectrum_t ( p. 979) class into the AC space.

• class MHA_AC::waveform_t
Insert a MHASignal::waveform_t ( p. 993) class into the AC space.

• class MHA_AC::int_t
Insert a integer variable into the AC space.

• class MHA_AC::float_t
Insert a float point variable into the AC space.

• class MHA_AC::double_t
Insert a double precision floating point variable into the AC space.

• class MHA_AC::ac2matrix_t
Copy AC variable to a matrix.

• class MHA_AC::acspace2matrix_t
Copy all or a subset of all numeric AC variables into an array of matrixes.

• struct algo_comm_t
A reference handle for algorithm communication variables.

• struct comm_var_t
Algorithm communication variable structure.
© 2005-2018 HörTech gGmbH, Oldenburg

3.5

Communication between algorithms

29

Functions
•

mha_spec_t
&name)

MHA_AC::get_var_spectrum ( algo_comm_t ac, const std::string

Convert an AC variable into a spectrum.

•

mha_wave_t
&name)

MHA_AC::get_var_waveform ( algo_comm_t ac, const std::string

Convert an AC variable into a waveform.

• int MHA_AC::get_var_int ( algo_comm_t ac, const std::string &name)
Return value of an integer scalar AC variable.

• float MHA_AC::get_var_float ( algo_comm_t ac, const std::string &name)
Return value of an floating point scalar AC variable.

• std::vector< float > MHA_AC::get_var_vfloat ( algo_comm_t ac, const std::string
&name)
Return value of an floating point vector AC variable as standard vector of floats.

3.5.1

Detailed Description

Algorithms within one chain can share variables for communication with other algorithms.
This mechanism allows interaction between algorithms (i.e. separation of noise estimation
and noise reduction algorithms, combination of dynamic compression and noise estimation).
Through a set of simple C functions, algorithms can propagate variables of any type, even C++
classes, to other algorithms.
An algorithm communication handle (algo_comm_t (p. 213)) is passed at initialisation time to
the constructor of each plugin class constructor (p. 882). This handle contains a reference
handle, algo_comm_t::handle (p. 213), and a number of function pointers, algo_comm_t←::insert_var (p. 214) etc.. An algorithm communication variable is an object of type comm_←var_t (p. 271).
For AC variables of numeric types, openMHA Plugins for conversion into parsable monitor
variables, acmon, and storage into Matlab or text files, acsave, are available.

3.5.2

3.5.2.1

Function Documentation

get_var_spectrum()

mha_spec_t MHA_AC::get_var_spectrum (
algo_comm_t ac,
const std::string & name )

Convert an AC variable into a spectrum.
This function reads an AC variable and tries to convert it into a valid spectrum. The Spectrum
variable is granted to be valid only for one call of the processing function.

© 2005-2018 HörTech gGmbH, Oldenburg

30

CONTENTS

Parameters
ac
name

AC handle
Name of the variable

Returns
Spectrum structure

3.5.2.2

get_var_waveform()

mha_wave_t MHA_AC::get_var_waveform (
algo_comm_t ac,
const std::string & name )

Convert an AC variable into a waveform.
This function reads an AC variable and tries to convert it into a valid waveform. The waveform
variable is granted to be valid only for one call of the processing function.
Parameters
ac
name

AC handle
Name of the variable

Returns
waveform structure

3.5.2.3

get_var_int()

int MHA_AC::get_var_int (
algo_comm_t ac,
const std::string & name )

Return value of an integer scalar AC variable.
Parameters
ac
name

AC handle
Name of the variable

© 2005-2018 HörTech gGmbH, Oldenburg

3.5

Communication between algorithms

31

Returns
Variable value

3.5.2.4

get_var_float()

float MHA_AC::get_var_float (
algo_comm_t ac,
const std::string & name )

Return value of an floating point scalar AC variable.
Parameters
ac
name

AC handle
Name of the variable

Returns
Variable value

3.5.2.5

get_var_vfloat()

std::vector< float > MHA_AC::get_var_vfloat (
algo_comm_t ac,
const std::string & name )

Return value of an floating point vector AC variable as standard vector of floats.
Parameters
ac
name

AC handle
Name of the variable

Returns
Variable value

© 2005-2018 HörTech gGmbH, Oldenburg

32

3.6

CONTENTS

Error handling in the openMHA

Errors are reported to the user via the MHA_Error (p. 522) exception.
Collaboration diagram for Error handling in the openMHA:

The openMHA Toolbox
library

Error handling in the
openMHA

Classes
• class MHA_Error
Error reporting exception class.

Macros
• #define MHA_ErrorMsg(x) MHA_Error(__FILE__,__LINE__,"%s",x)
Throw an openMHA error with a text message.

• #define MHA_assert(x) if(!(x)) throw
false.",#x)

MHA_Error(__FILE__,__LINE__,"\"%s\" is

Assertion macro, which throws an MHA_Error ( p. 522).

• #define MHA_assert_equal(a, b) if( a != b ) throw MHA_Error(__FILE__,__LINE__←,"\"%s == %s\" is false (%s = %g, %s = %g).",#a,#b,#a,(double)(a),#b,(double)(b))
Equality assertion macro, which throws an MHA_Error ( p. 522) with the values.

Functions
• void mha_debug (const char ∗fmt,...)
Print an info message (stderr on Linux, OutputDebugString in Windows).

3.6.1

Detailed Description

Errors are reported to the user via the MHA_Error (p. 522) exception.

3.6.2

Macro Definition Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

3.6

Error handling in the openMHA

3.6.2.1

MHA_ErrorMsg

#define MHA_ErrorMsg(
x )

MHA_Error(__FILE__,__LINE__,"%s",x)

Throw an openMHA error with a text message.

© 2005-2018 HörTech gGmbH, Oldenburg

33

34

CONTENTS

Parameters
x

Text message.

3.6.2.2

MHA_assert

#define MHA_assert(
x ) if(!(x)) throw

MHA_Error(__FILE__,__LINE__,"\"%s\" is false.",#x)

Assertion macro, which throws an MHA_Error (p. 522).
Parameters
x

Boolean expression which should be true.

3.6.2.3

MHA_assert_equal

#define MHA_assert_equal(
a,
b ) if( a != b ) throw

MHA_Error(__FILE__,__LINE__,"\"%s == %s\" is

false (%s = %g, %s = %g).",#a,#b,#a,(double)(a),#b,(double)(b))

Equality assertion macro, which throws an MHA_Error (p. 522) with the values.
Parameters
a
b

Numeric expression which can be converted to double (for printing).
Numeric expression which should be equal to a

3.6.3

3.6.3.1

Function Documentation

mha_debug()

void mha_debug (
const char ∗ fmt,
...

)

Print an info message (stderr on Linux, OutputDebugString in Windows).
© 2005-2018 HörTech gGmbH, Oldenburg

3.7

The openMHA configuration language

3.7

The openMHA configuration language

35

openMHA Plugins that should use the openMHA configuration language for their configuration
have to be implemented in C++ and need to include mha_parser.hh (p. 1255).
openMHA Plugins that should use the openMHA configuration language for their configuration
have to be implemented in C++ and need to include mha_parser.hh (p. 1255).
All required classes and functions for parser access are declared in the namespace MH←AParser (p. 118). The plugin class should be derived from the class MHAParser::parser_t
(p. 833) (or MHAPlugin::plugin_t (p. 882)), which symbolises a sub-parser node in the open←MHA script hierarchy. Variables of many types can be registered to the sub-parser node by
calling the member function insert_item (p. 835).
The openMHA Plugin template class MHAPlugin::plugin_t (p. 882) together with the Plugin
macro MHAPLUGIN_CALLBACKS (p. 8) provide the callback mappings and correct inheritance. If your plugin is based on that template class, you simply have to use the insert_item
command to give access to your variables, everything else is managed internally.
A complete list of all openMHA script items is given in the description of the MHAParser (p. 118)
namespace.

© 2005-2018 HörTech gGmbH, Oldenburg

36

3.8

CONTENTS

The openMHA Toolbox library

The openMHA toolbox is a static C++ library which makes it more comfortable to develop
openMHA plugins.
Collaboration diagram for The openMHA Toolbox library:

Vector and matrix processing
toolbox
MHASignal
Complex arithmetics
in the openMHA
The openMHA Toolbox
library

Error handling in the
openMHA
mha_algo_comm.h

Fast Fourier Transform
functions

Communication between
algorithms

Modules
• Error handling in the openMHA
Errors are reported to the user via the MHA_Error ( p. 522) exception.

• Vector and matrix processing toolbox
The vector and matrix processing toolbox consists of a number of classes defined in the
namespace MHASignal ( p. 132), and many functions and operators for use with the structures mha_wave_t ( p. 583) and mha_spec_t ( p. 547).

• Complex arithmetics in the openMHA
• Fast Fourier Transform functions

Files
• file mha_algo_comm.h
Header file for Algorithm Communication.

• file mha_filter.hh
Header file for IIR filter classes.

• file mha_signal.hh
Header file for audio signal handling and processing classes.

• file mha_tablelookup.hh
Header file for table lookup classes.
© 2005-2018 HörTech gGmbH, Oldenburg

3.8

The openMHA Toolbox library

37

Namespaces
• MHAOvlFilter
Namespace for overlapping FFT based filter bank classes and functions.

• MHAFilter
Namespace for IIR and FIR filter classes.

• MHAParser
Name space for the openMHA-Parser configuration language.

• MHASignal
Namespace for audio signal handling and processing classes.

• MHATableLookup
Namespace for table lookup classes.

3.8.1

Detailed Description

The openMHA toolbox is a static C++ library which makes it more comfortable to develop
openMHA plugins.
It contains the openMHA script language classes.

© 2005-2018 HörTech gGmbH, Oldenburg

38

3.9

CONTENTS

Vector and matrix processing toolbox

The vector and matrix processing toolbox consists of a number of classes defined in the namespace MHASignal (p. 132), and many functions and operators for use with the structures mha←_wave_t (p. 583) and mha_spec_t (p. 547).
Collaboration diagram for Vector and matrix processing toolbox:

Vector and matrix processing
toolbox

MHASignal

The openMHA Toolbox
library

Namespaces
• MHASignal
Namespace for audio signal handling and processing classes.

• MHAWindow
Collection of Window types.

Classes
• struct mha_wave_t
Waveform signal structure.

• struct mha_spec_t
Spectrum signal structure.

• struct mha_audio_descriptor_t
Description of an audio fragment (planned as a replacement of mhaconfig_t ( p. 595)).

• struct mha_audio_t
An audio fragment in the openMHA (planned as a replacement of mha_wave_t ( p. 583) and
mha_spec_t ( p. 547)).

• class MHASignal::spectrum_t
a signal processing class for spectral data (based on mha_spec_t ( p. 547))

• class MHASignal::waveform_t
signal processing class for waveform data (based on mha_wave_t ( p. 583))

• class MHASignal::doublebuffer_t
Double-buffering class.

• class MHASignal::hilbert_t
Hilbert transformation of a waveform segment.

• class MHASignal::minphase_t
Minimal phase function.

• class MHASignal::uint_vector_t
© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

39

Vector of unsigned values, used for size and index description of n-dimensional matrixes.

• class MHASignal::matrix_t
n-dimensional matrix with real or complex floating point values.

• class MHAParser::window_t
MHA configuration interface for a window function generator.

• class MHASignal::delay_wave_t
Delayline containing wave fragments.

• class MHASignal::async_rmslevel_t
Class for asynchronous level metering.

Typedefs
• typedef float mha_real_t
openMHA type for real numbers

Functions
• mha_wave_t range ( mha_wave_t s, unsigned int k0, unsigned int len)
Return a time interval from a waveform chunk.

• mha_spec_t channels ( mha_spec_t s, unsigned int ch_start, unsigned int nch)
Return a channel interval from a spectrum.

• void MHASignal::for_each ( mha_wave_t ∗s, mha_real_t(∗fun)( mha_real_t))
Apply a function to each element of a mha_wave_t ( p. 583).

• mha_real_t MHASignal::lin2db ( mha_real_t x)
Conversion from linear scale to dB (no SPL reference)

• mha_real_t MHASignal::db2lin ( mha_real_t x)
Conversion from dB scale to linear (no SPL reference)

• mha_real_t MHASignal::pa2dbspl ( mha_real_t x)
Conversion from linear Pascal scale to dB SPL.

• mha_real_t MHASignal::pa22dbspl ( mha_real_t x, mha_real_t eps=1e-20f)
Conversion from squared Pascal scale to dB SPL.

• mha_real_t MHASignal::dbspl2pa ( mha_real_t x)
Conversion from dB SPL to linear Pascal scale.

• mha_real_t MHASignal::smp2sec ( mha_real_t n, mha_real_t srate)
conversion from samples to seconds

• mha_real_t MHASignal::sec2smp ( mha_real_t sec, mha_real_t srate)
conversion from seconds to samples

• mha_real_t MHASignal::bin2freq ( mha_real_t bin, unsigned fftlen, mha_real_←t srate)
conversion from fft bin index to frequency

• mha_real_t MHASignal::freq2bin ( mha_real_t freq, unsigned fftlen, mha_real_←t srate)
conversion from frequency to fft bin index
© 2005-2018 HörTech gGmbH, Oldenburg

40

CONTENTS

• mha_real_t MHASignal::smp2rad ( mha_real_t samples, unsigned bin, unsigned
fftlen)
conversion from delay in samples to phase shift

• mha_real_t MHASignal::rad2smp ( mha_real_t phase_shift, unsigned bin, unsigned
fftlen)
conversion from phase shift to delay in samples

• template
std::vector< elem_type > MHASignal::dupvec (std::vector< elem_type > vec, unsigned
n)
Duplicate last vector element to match desired size.

• template
std::vector< elem_type > MHASignal::dupvec_chk (std::vector< elem_type > vec, unsigned n)
Duplicate last vector element to match desired size, check for dimension.

• bool equal_dim (const mha_wave_t &a, const mha_wave_t &b)
Test for equal dimension of waveform structures.

• bool equal_dim (const mha_wave_t &a, const mhaconfig_t &b)
Test for match of waveform dimension with mhaconfig structure.

• bool equal_dim (const mha_spec_t &a, const mha_spec_t &b)
Test for equal dimension of spectrum structures.

• bool equal_dim (const mha_spec_t &a, const mhaconfig_t &b)
Test for match of spectrum dimension with mhaconfig structure.

• bool equal_dim (const mha_wave_t &a, const mha_spec_t &b)
Test for equal dimension of waveform/spectrum structures.

• bool equal_dim (const mha_spec_t &a, const mha_wave_t &b)
Test for equal dimension of waveform/spectrum structures.

• void integrate ( mha_wave_t &s)
Numeric integration of a signal vector (real values)

• void integrate ( mha_spec_t &s)
Numeric integration of a signal vector (complex values)

• unsigned int size (const mha_wave_t &s)
Return size of a waveform structure.

• unsigned int size (const mha_spec_t &s)
Return size of a spectrum structure.

• unsigned int size (const mha_wave_t ∗s)
Return size of a waveform structure.

• unsigned int size (const mha_spec_t ∗s)
Return size of a spectrum structure.

• void clear ( mha_wave_t &s)
Set all values of waveform to zero.

• void clear ( mha_wave_t ∗s)
Set all values of waveform to zero.

• void clear ( mha_spec_t &s)
Set all values of spectrum to zero.

• void clear ( mha_spec_t ∗s)
© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

41

Set all values of spectrum to zero.

• void assign ( mha_wave_t self, mha_real_t val)
Set all values of waveform 'self' to 'val'.

• void assign ( mha_wave_t self, const mha_wave_t &val)
Set all values of waveform 'self' to 'val'.

• void assign ( mha_spec_t self, const mha_spec_t &val)
Set all values of spectrum 'self' to 'val'.

• void timeshift ( mha_wave_t &self, int shift)
Time shift of waveform chunk.

• mha_real_t & value ( mha_wave_t ∗s, unsigned int fr, unsigned int ch)
Access an element of a waveform structure.

• const mha_real_t & value (const mha_wave_t ∗s, unsigned int fr, unsigned int ch)
Constant access to an element of a waveform structure.

• mha_complex_t & value ( mha_spec_t ∗s, unsigned int fr, unsigned int ch)
Access to an element of a spectrum.

• const mha_complex_t & value (const mha_spec_t ∗s, unsigned int fr, unsigned int ch)
Constant access to an element of a spectrum.

• mha_real_t & value ( mha_wave_t &s, unsigned int fr, unsigned int ch)
Access to an element of a waveform structure.

• const mha_real_t & value (const mha_wave_t &s, unsigned int fr, unsigned int ch)
Constant access to an element of a waveform structure.

• mha_complex_t & value ( mha_spec_t &s, unsigned int fr, unsigned int ch)
Access to an element of a spectrum.

• const mha_complex_t & value (const mha_spec_t &s, unsigned int fr, unsigned int
ch)
Constant access to an element of a spectrum.

• std::vector< float > std_vector_float (const mha_wave_t &)
Converts a mha_wave_t ( p. 583) structure into a std::vector (interleaved order).

• std::vector< std::vector< float > > std_vector_vector_float (const mha_wave_t &)
Converts a mha_wave_t ( p. 583) structure into a std::vector< std::vector > (outer vector represents channels).

• std::vector< std::vector< mha_complex_t > > std_vector_vector_complex (const
mha_spec_t &)
Converts a mha_spec_t ( p. 547) structure into a std::vector< std::vector >
(outer vector represents channels).

• mha_wave_t & operator+= ( mha_wave_t &, const mha_real_t &)
Addition operator.

• mha_wave_t & operator+= ( mha_wave_t &, const mha_wave_t &)
Addition operator.

• mha_wave_t & operator-= ( mha_wave_t &, const mha_wave_t &)
Subtraction operator.

• mha_spec_t & operator-= ( mha_spec_t &, const mha_spec_t &)
Subtraction operator.

• mha_wave_t & operator∗= ( mha_wave_t &, const mha_real_t &)
Element-wise multiplication operator.

• mha_wave_t & operator∗= ( mha_wave_t &, const mha_wave_t &)
© 2005-2018 HörTech gGmbH, Oldenburg

42

CONTENTS

Element-wise multiplication operator.

• mha_spec_t & operator∗= ( mha_spec_t &, const mha_real_t &)
Element-wise multiplication operator.

• mha_spec_t & operator∗= ( mha_spec_t &, const mha_wave_t &)
Element-wise multiplication operator.

• mha_spec_t & operator∗= ( mha_spec_t &, const mha_spec_t &)
Element-wise multiplication operator.

• mha_spec_t & operator/= ( mha_spec_t &, const mha_spec_t &)
Element-wise division operator.

• mha_wave_t & operator/= ( mha_wave_t &, const mha_wave_t &)
Element-wise division operator.

• mha_spec_t & operator+= ( mha_spec_t &, const mha_spec_t &)
Addition operator.

• mha_spec_t & operator+= ( mha_spec_t &, const mha_real_t &)
Addition operator.

• mha_wave_t & operator∧ = ( mha_wave_t &self, const mha_real_t &arg)
Exponent operator.

• void MHASignal::copy_channel ( mha_spec_t &self, const mha_spec_t &src, unsigned sch, unsigned dch)
Copy one channel of a source signal.

• void MHASignal::copy_channel ( mha_wave_t &self, const mha_wave_t &src, unsigned src_channel, unsigned dest_channel)
Copy one channel of a source signal.

• mha_real_t MHASignal::rmslevel (const mha_spec_t &s, unsigned int channel, unsigned int fftlen)
Return RMS level of a spectrum channel.

• mha_real_t MHASignal::colored_intensity (const mha_spec_t &s, unsigned int
channel, unsigned int fftlen, mha_real_t sqfreq_response[ ])
Colored spectrum intensity.

• mha_real_t MHASignal::maxabs (const mha_spec_t &s, unsigned int channel)
Find maximal absolute value.

• mha_real_t MHASignal::rmslevel (const mha_wave_t &s, unsigned int channel)
Return RMS level of a waveform channel.

• mha_real_t MHASignal::maxabs (const mha_wave_t &s, unsigned int channel)
Find maximal absolute value.

• mha_real_t MHASignal::maxabs (const mha_wave_t &s)
Find maximal absolute value.

• mha_real_t MHASignal::max (const mha_wave_t &s)
Find maximal value.

• mha_real_t MHASignal::min (const mha_wave_t &s)
Find minimal value.

• mha_real_t MHASignal::sumsqr_channel (const mha_wave_t &s, unsigned int channel)
Calculate sum of squared values in one channel.

• mha_real_t MHASignal::sumsqr_frame (const mha_wave_t &s, unsigned int frame)
© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

43

Calculate sum over all channels of squared values.

• void conjugate ( mha_spec_t &self)
Replace (!) the value of this mha_spec_t ( p. 547) with its conjugate.

3.9.1

Detailed Description

The vector and matrix processing toolbox consists of a number of classes defined in the namespace MHASignal (p. 132), and many functions and operators for use with the structures mha←_wave_t (p. 583) and mha_spec_t (p. 547).

3.9.2

3.9.2.1

Typedef Documentation

mha_real_t

typedef float

mha_real_t

openMHA type for real numbers
This type is expected to be allways the C-type 'float' (IEEE 754 single).

3.9.3

3.9.3.1

Function Documentation

range()

mha_wave_t range (
mha_wave_t s,
unsigned int k0,
unsigned int len )

Return a time interval from a waveform chunk.
A waveform chunk containing a time intervall of a larger waveform chunk is returned. The
number of channels remains constant. The data of the output waveform structure points to
the data of the input structure, i.e., write access to the output waveform chunk modifies the
corresponding entries in the input chunk.
Parameters
s
k0

Waveform structure
Index of first value in output

len

Number of frames in output

© 2005-2018 HörTech gGmbH, Oldenburg

44

CONTENTS

Returns
Waveform structure representing the sub-interval.

3.9.3.2

channels()

mha_spec_t channels (
mha_spec_t s,
unsigned int ch_start,
unsigned int nch )

Return a channel interval from a spectrum.
Parameters
s

Input spectrum

ch_start

Index of first channel in output

nch

Number of channels in output

Returns
Spectrum structure representing the sub-interval.

3.9.3.3

for_each()

void MHASignal::for_each (
mha_wave_t ∗ s,
mha_real_t(∗)( mha_real_t) fun ) [inline]

Apply a function to each element of a mha_wave_t (p. 583).
Parameters
s

Pointer to a mha_wave_t (p. 583) structure

fun

Function to be applied (one argument)

3.9.3.4

lin2db()

mha_real_t MHASignal::lin2db (
mha_real_t x ) [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

Conversion from linear scale to dB (no SPL reference)
Parameters
x

Linear input.

3.9.3.5

db2lin()

mha_real_t MHASignal::db2lin (
mha_real_t x ) [inline]

Conversion from dB scale to linear (no SPL reference)
Parameters
x

dB input.

3.9.3.6

pa2dbspl()

mha_real_t MHASignal::pa2dbspl (
mha_real_t x ) [inline]

Conversion from linear Pascal scale to dB SPL.
Parameters
x

Linear input.

3.9.3.7

pa22dbspl()

mha_real_t MHASignal::pa22dbspl (
mha_real_t x,
mha_real_t eps = 1e-20f ) [inline]

Conversion from squared Pascal scale to dB SPL.
Parameters
x
eps

squared pascal input
minimum squared-pascal value

© 2005-2018 HörTech gGmbH, Oldenburg

45

46

3.9.3.8

CONTENTS

dbspl2pa()

mha_real_t MHASignal::dbspl2pa (
mha_real_t x ) [inline]

Conversion from dB SPL to linear Pascal scale.
Parameters
x

Linear input.

3.9.3.9

smp2sec()

mha_real_t MHASignal::smp2sec (
mha_real_t n,
mha_real_t srate ) [inline]

conversion from samples to seconds
Parameters
n

number of samples

srate

sampling rate / Hz

3.9.3.10

sec2smp()

mha_real_t MHASignal::sec2smp (
mha_real_t sec,
mha_real_t srate ) [inline]

conversion from seconds to samples
Parameters
sec
srate

time in seconds
sampling rate / Hz

© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

Returns
number of samples, generally has non-zero fractional part

3.9.3.11

bin2freq()

mha_real_t MHASignal::bin2freq (
mha_real_t bin,
unsigned fftlen,
mha_real_t srate ) [inline]

conversion from fft bin index to frequency
Parameters
bin
fftlen

index of fft bin, index 0 has dc
FFT length

srate

sampling frequency / Hz

Returns
frequency of fft bin / Hz

3.9.3.12

freq2bin()

mha_real_t MHASignal::freq2bin (
mha_real_t freq,
unsigned fftlen,
mha_real_t srate ) [inline]

conversion from frequency to fft bin index
Parameters
freq

frequency / Hz

fftlen

FFT length

srate

sampling frequency / Hz

Returns
0-based index of fft bin, generally has non-zero fractional part

© 2005-2018 HörTech gGmbH, Oldenburg

47

48

3.9.3.13

CONTENTS

smp2rad()

mha_real_t MHASignal::smp2rad (
mha_real_t samples,
unsigned bin,
unsigned fftlen ) [inline]

conversion from delay in samples to phase shift
Compute phase shift that needs to be applied to fft spectrum to achieve the desired delay.
Parameters
samples

delay in samples. Positive delay: shift current signal to future.

bin

index of fft bin, index 0 has dc (index 0 and nyqvist bin cannot be delayed)

fftlen

FFT length

Returns
The phase shift in radiant that needs to be applied to fft bin to achieve the desired delay. A
positive delay requires a negative phase shift. If required phase shift is >pi or <-pi, then
the desired delay cannot be applied in the fft domain with given parameters. Required
phase shifts close to pi should not be used. If bin is 0 or nyqvist, returns 0 phase shift.

3.9.3.14

rad2smp()

mha_real_t MHASignal::rad2smp (
mha_real_t phase_shift,
unsigned bin,
unsigned fftlen ) [inline]

conversion from phase shift to delay in samples
Compute delay in samples that is achieved by a phase shift.
Parameters
phase_shift

phase shift in radiant

bin

index of fft bin, index 0 has dc (index 0 and nyqvist bin cannot be delayed)

fftlen

FFT length

Returns
The delay in samples achieved by applying the phase shift. A negative phase shift causes
a positive delay: shifts current signal to future.
© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

3.9.3.15

49

dupvec()

template
std::vector MHASignal::dupvec (
std::vector< elem_type > vec,
unsigned n )

Duplicate last vector element to match desired size.
Parameters
vec

Input vector.

n

Target number of elements.

Return values
Resized

3.9.3.16

vector.

dupvec_chk()

template
std::vector MHASignal::dupvec_chk (
std::vector< elem_type > vec,
unsigned n )

Duplicate last vector element to match desired size, check for dimension.
The input dimension can be either 1 or the target length.
Parameters
vec

Input vector.

n

Target number of elements.

Return values
Resized

vector.

© 2005-2018 HörTech gGmbH, Oldenburg

50

3.9.3.17

CONTENTS

equal_dim() [1/6]

bool equal_dim (
const

mha_wave_t & a,

const

mha_wave_t & b ) [inline]

Test for equal dimension of waveform structures.

3.9.3.18

equal_dim() [2/6]

bool equal_dim (
const

mha_wave_t & a,

const

mhaconfig_t & b ) [inline]

Test for match of waveform dimension with mhaconfig structure.

3.9.3.19

equal_dim() [3/6]

bool equal_dim (
const

mha_spec_t & a,

const

mha_spec_t & b ) [inline]

Test for equal dimension of spectrum structures.

3.9.3.20

equal_dim() [4/6]

bool equal_dim (
const

mha_spec_t & a,

const

mhaconfig_t & b ) [inline]

Test for match of spectrum dimension with mhaconfig structure.

3.9.3.21

equal_dim() [5/6]

bool equal_dim (
const

mha_wave_t & a,

const

mha_spec_t & b ) [inline]

Test for equal dimension of waveform/spectrum structures.
Warning
Waveform structures mha_wave_t (p. 583) use interleaved data order, while spectrum
structures mha_spec_t (p. 547) use non-interleaved.

© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

3.9.3.22

51

equal_dim() [6/6]

bool equal_dim (
const

mha_spec_t & a,

const

mha_wave_t & b ) [inline]

Test for equal dimension of waveform/spectrum structures.
Warning
Waveform structures mha_wave_t (p. 583) use interleaved data order, while spectrum
structures mha_spec_t (p. 547) use non-interleaved.

3.9.3.23

integrate() [1/2]

void integrate (
mha_wave_t & s )

Numeric integration of a signal vector (real values)
Parameters
s

Input signal vector

3.9.3.24

integrate() [2/2]

void integrate (
mha_spec_t & s )

Numeric integration of a signal vector (complex values)
Parameters
s

Input signal vector

3.9.3.25

size() [1/4]

unsigned int size (
const

mha_wave_t & s ) [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

52

CONTENTS

Return size of a waveform structure.

3.9.3.26

size() [2/4]

unsigned int size (
const

mha_spec_t & s ) [inline]

Return size of a spectrum structure.

3.9.3.27

size() [3/4]

unsigned int size (
const

mha_wave_t ∗ s ) [inline]

Return size of a waveform structure.

3.9.3.28

size() [4/4]

unsigned int size (
const

mha_spec_t ∗ s ) [inline]

Return size of a spectrum structure.

3.9.3.29

clear() [1/4]

void clear (
mha_wave_t & s ) [inline]

Set all values of waveform to zero.

3.9.3.30

clear() [2/4]

void clear (
mha_wave_t ∗ s ) [inline]

Set all values of waveform to zero.

© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

3.9.3.31

clear() [3/4]

void clear (
mha_spec_t & s ) [inline]

Set all values of spectrum to zero.

3.9.3.32

clear() [4/4]

void clear (
mha_spec_t ∗ s ) [inline]

Set all values of spectrum to zero.

3.9.3.33

assign() [1/3]

void assign (
mha_wave_t self,
mha_real_t val ) [inline]

Set all values of waveform 'self' to 'val'.
Parameters
self
val

3.9.3.34

Waveform to be modified.
Value to be assigned to all entries of waveform.

assign() [2/3]

void assign (
mha_wave_t self,
const

mha_wave_t & val )

Set all values of waveform 'self' to 'val'.
Parameters
self
val

Waveform to be modified.
Source waveform structure.

© 2005-2018 HörTech gGmbH, Oldenburg

53

54

3.9.3.35

CONTENTS

assign() [3/3]

void assign (
mha_spec_t self,
const

mha_spec_t & val )

Set all values of spectrum 'self' to 'val'.
Parameters
self

Spectrum to be modified.

val

Source spectrum.

3.9.3.36

timeshift()

void timeshift (
mha_wave_t & self,
int shift )

Time shift of waveform chunk.
Shifted areas are filled with zeros.
Parameters
Waveform chunk to be shifted
Shift amount, positive values shift to later times

self
shift

3.9.3.37

value() [1/8]

mha_real_t& value (
mha_wave_t ∗ s,
unsigned int fr,
unsigned int ch ) [inline]

Access an element of a waveform structure.
Parameters
s
fr
ch

Waveform structure
Frame number
Channel number

© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

Returns
Reference to element

3.9.3.38
const

value() [2/8]
mha_real_t& value (
const

mha_wave_t ∗ s,

unsigned int fr,
unsigned int ch ) [inline]

Constant access to an element of a waveform structure.
Parameters
s
fr
ch

Waveform structure
Frame number
Channel number

Returns
Reference to element

3.9.3.39

value() [3/8]

mha_complex_t& value (
mha_spec_t ∗ s,
unsigned int fr,
unsigned int ch ) [inline]

Access to an element of a spectrum.
Parameters
s

Spectrum structure

fr
ch

Bin number
Channel number

Returns
Reference to element

© 2005-2018 HörTech gGmbH, Oldenburg

55

56

3.9.3.40
const

CONTENTS

value() [4/8]
mha_complex_t& value (
const

mha_spec_t ∗ s,

unsigned int fr,
unsigned int ch ) [inline]

Constant access to an element of a spectrum.
Parameters
s

Spectrum structure

fr
ch

Bin number
Channel number

Returns
Reference to element

3.9.3.41

value() [5/8]

mha_real_t& value (
mha_wave_t & s,
unsigned int fr,
unsigned int ch ) [inline]

Access to an element of a waveform structure.
Parameters
Waveform structure
Frame number
Channel number

s
fr
ch

Returns
Reference to element

3.9.3.42
const

value() [6/8]
mha_real_t& value (
const

mha_wave_t & s,

© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

unsigned int fr,
unsigned int ch ) [inline]

Constant access to an element of a waveform structure.
Parameters
Waveform structure
Frame number
Channel number

s
fr
ch

Returns
Reference to element

3.9.3.43

value() [7/8]

mha_complex_t& value (
mha_spec_t & s,
unsigned int fr,
unsigned int ch ) [inline]

Access to an element of a spectrum.
Parameters
s

Spectrum structure

fr
ch

Bin number
Channel number

Returns
Reference to element

3.9.3.44
const

value() [8/8]
mha_complex_t& value (
const

mha_spec_t & s,

unsigned int fr,
unsigned int ch ) [inline]

Constant access to an element of a spectrum.

© 2005-2018 HörTech gGmbH, Oldenburg

57

58

CONTENTS

Parameters
s

Spectrum structure

fr
ch

Bin number
Channel number

Returns
Reference to element

3.9.3.45

std_vector_float()

std::vector std_vector_float (
const

mha_wave_t &

)

Converts a mha_wave_t (p. 583) structure into a std::vector (interleaved order).
Warning
This function is not real-time safe. Do not use in signal processing thread.

3.9.3.46

std_vector_vector_float()

std::vector > std_vector_vector_float (
const

mha_wave_t &

)

Converts a mha_wave_t (p. 583) structure into a std::vector< std::vector > (outer vector represents channels).
Warning
This function is not real-time safe. Do not use in signal processing thread.

3.9.3.47

std_vector_vector_complex()

std::vector > std_vector_vector_complex (
const

mha_spec_t &

)

Converts a mha_spec_t (p. 547) structure into a std::vector< std::vector >
(outer vector represents channels).
Warning
This function is not real-time safe. Do not use in signal processing thread.

© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

3.9.3.48

operator+=() [1/4]

mha_wave_t& operator+= (
mha_wave_t & ,
const

mha_real_t &

)

Addition operator.

3.9.3.49

operator+=() [2/4]

mha_wave_t& operator+= (
mha_wave_t & ,
const

mha_wave_t &

)

Addition operator.

3.9.3.50

operator-=() [1/2]

mha_wave_t& operator-= (
mha_wave_t & ,
const

mha_wave_t &

)

Subtraction operator.

3.9.3.51

operator-=() [2/2]

mha_spec_t& operator-= (
mha_spec_t & ,
const

mha_spec_t &

)

Subtraction operator.

3.9.3.52

operator∗=() [1/5]

mha_wave_t& operator∗= (
mha_wave_t & ,
const

mha_real_t &

)

Element-wise multiplication operator.

© 2005-2018 HörTech gGmbH, Oldenburg

59

60

3.9.3.53

CONTENTS

operator∗=() [2/5]

mha_wave_t& operator∗= (
mha_wave_t & ,
const

mha_wave_t &

)

Element-wise multiplication operator.

3.9.3.54

operator∗=() [3/5]

mha_spec_t& operator∗= (
mha_spec_t & ,
const

mha_real_t &

)

Element-wise multiplication operator.

3.9.3.55

operator∗=() [4/5]

mha_spec_t& operator∗= (
mha_spec_t & ,
const

mha_wave_t &

)

Element-wise multiplication operator.

3.9.3.56

operator∗=() [5/5]

mha_spec_t& operator∗= (
mha_spec_t & ,
const

mha_spec_t &

)

Element-wise multiplication operator.

3.9.3.57

operator/=() [1/2]

mha_spec_t& operator/= (
mha_spec_t & ,
const

mha_spec_t &

)

Element-wise division operator.

© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

3.9.3.58

operator/=() [2/2]

mha_wave_t& operator/= (
mha_wave_t & ,
const

mha_wave_t &

)

Element-wise division operator.

3.9.3.59

operator+=() [3/4]

mha_spec_t& operator+= (
mha_spec_t & ,
const

mha_spec_t &

)

Addition operator.

3.9.3.60

operator+=() [4/4]

mha_spec_t& operator+= (
mha_spec_t & ,
const

mha_real_t &

)

Addition operator.

3.9.3.61

operator∧ =()

mha_wave_t& operator∧ = (
mha_wave_t & self,
const

mha_real_t & arg )

Exponent operator.
Warning
This overwrites the xor operator!

3.9.3.62

copy_channel() [1/2]

void MHASignal::copy_channel (
mha_spec_t & self,
const

mha_spec_t & src,

unsigned sch,
unsigned dch )

Copy one channel of a source signal.

© 2005-2018 HörTech gGmbH, Oldenburg

61

62

CONTENTS

Parameters
self
src
sch
dch

3.9.3.63

Destination.
Source
Source channel number
Destination channel number

copy_channel() [2/2]

void MHASignal::copy_channel (
mha_wave_t & self,
const

mha_wave_t & src,

unsigned src_channel,
unsigned dest_channel )

Copy one channel of a source signal.
Parameters
self
src
src_channel
dest_channel

3.9.3.64

Destination.
Source
Source channel number
Destination channel number

rmslevel() [1/2]

mha_real_t MHASignal::rmslevel (
const

mha_spec_t & s,

unsigned int channel,
unsigned int fftlen )

Return RMS level of a spectrum channel.
Parameters
s

Input spectrum

channel
fftlen

Channel number to be tested
FFT length (to correctly count the level of the Nyquist bin)

© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

63

Returns
RMS level in Pa

3.9.3.65

colored_intensity()

mha_real_t MHASignal::colored_intensity (
const

mha_spec_t & s,

unsigned int channel,
unsigned int fftlen,
mha_real_t sqfreq_response[ ] )

Colored spectrum intensity.
computes the squared sum of the spectrum after filtering with the frequency response
Parameters
s

Input spectrum

channel
fftlen

Channel number to be tested
FFT length (to correctly count the level of the Nyquist bin)

sqfreq_response

A squared weighting factor for every fft bin.

Returns
sum of squares. Root of this is the colored level in Pa

3.9.3.66

maxabs() [1/3]

mha_real_t MHASignal::maxabs (
const

mha_spec_t & s,

unsigned int channel )

Find maximal absolute value.
Parameters
s

Input signal

channel

Channel to be tested

© 2005-2018 HörTech gGmbH, Oldenburg

64

CONTENTS

Returns
maximum absolute value

3.9.3.67

rmslevel() [2/2]

mha_real_t MHASignal::rmslevel (
const

mha_wave_t & s,

unsigned int channel )

Return RMS level of a waveform channel.
Parameters
s

Input waveform signal

channel

Channel number to be tested

Returns
RMS level in Pa

3.9.3.68

maxabs() [2/3]

mha_real_t MHASignal::maxabs (
const

mha_wave_t & s,

unsigned int channel )

Find maximal absolute value.
Parameters
s

Input signal

channel

Channel to be tested

Returns
maximum absolute value

© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

3.9.3.69

maxabs() [3/3]

mha_real_t MHASignal::maxabs (
const

mha_wave_t & s )

Find maximal absolute value.
Parameters
s

Input signal

Returns
maximum absolute value

3.9.3.70

max()

mha_real_t MHASignal::max (
const

mha_wave_t & s )

Find maximal value.
Parameters
s

Input signal

Returns
maximum absolute value

3.9.3.71

min()

mha_real_t MHASignal::min (
const

mha_wave_t & s )

Find minimal value.
Parameters
s

Input signal

© 2005-2018 HörTech gGmbH, Oldenburg

65

66

CONTENTS

Returns
maximum absolute value

3.9.3.72

sumsqr_channel()

mha_real_t MHASignal::sumsqr_channel (
const

mha_wave_t & s,

unsigned int channel )

Calculate sum of squared values in one channel.
Parameters
s

Input signal

channel

Channel

Returns
P

x2

3.9.3.73

sumsqr_frame()

mha_real_t MHASignal::sumsqr_frame (
const

mha_wave_t & s,

unsigned int frame )

Calculate sum over all channels of squared values.
Parameters
s

Input signal

frame

Frame number

Returns
P

x2

© 2005-2018 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

3.9.3.74

conjugate()

void conjugate (
mha_spec_t & self ) [inline]

Replace (!) the value of this mha_spec_t (p. 547) with its conjugate.

© 2005-2018 HörTech gGmbH, Oldenburg

67

68

3.10

CONTENTS

Complex arithmetics in the openMHA

Collaboration diagram for Complex arithmetics in the openMHA:

The openMHA Toolbox
library

Complex arithmetics
in the openMHA

Classes
• struct mha_complex_t
Type for complex floating point values.

Functions
• mha_complex_t & set ( mha_complex_t &self, mha_real_t real, mha_real_t imag=0)
Assign real and imaginary parts to a mha_complex_t ( p. 503) variable.

• mha_complex_t mha_complex ( mha_real_t real, mha_real_t imag=0)
Create a new mha_complex_t ( p. 503) with specified real and imaginary parts.

• mha_complex_t & set ( mha_complex_t &self, const std::complex< mha_real_t > &
stdcomplex)
Assign a mha_complex_t ( p. 503) variable from a std::complex.

• std::complex< mha_real_t > stdcomplex (const mha_complex_t &self)
Create a std::complex from mha_complex_t ( p. 503).

• mha_complex_t & expi ( mha_complex_t &self, mha_real_t angle)
replaces the value of the given mha_complex_t ( p. 503) with exp(i∗b).

• double angle (const mha_complex_t &self)
Computes the angle of a complex number in the complex plane.

• mha_complex_t & operator+= ( mha_complex_t &self, const mha_complex_←t &other)
Addition of two complex numbers, overwriting the first.

• mha_complex_t operator+ (const mha_complex_t &self, const mha_complex_t
&other)
Addition of two complex numbers, result is a temporary object.

• mha_complex_t & operator+= ( mha_complex_t &self, mha_real_t other_real)
Addition of a complex and a real number, overwriting the complex.

• mha_complex_t operator+ (const mha_complex_t &self, mha_real_t other_real)
Addition of a complex and a real number, result is a temporary object.

• mha_complex_t & operator-= ( mha_complex_t &self, const mha_complex_t &other)
© 2005-2018 HörTech gGmbH, Oldenburg

3.10

Complex arithmetics in the openMHA

69

Subtraction of two complex numbers, overwriting the first.

• mha_complex_t operator- (const mha_complex_t &self, const mha_complex_←t &other)
Subtraction of two complex numbers, result is a temporary object.

• mha_complex_t & operator-= ( mha_complex_t &self, mha_real_t other_real)
Subtraction of a complex and a real number, overwriting the complex.

• mha_complex_t operator- (const mha_complex_t &self, mha_real_t other_real)
Subtraction of a complex and a real number, result is a temporary object.

• mha_complex_t & operator∗= ( mha_complex_t &self, const mha_complex_←t &other)
Multiplication of two complex numbers, overwriting the first.

• mha_complex_t operator∗ (const mha_complex_t &self, const mha_complex_t
&other)
Multiplication of two complex numbers, result is a temporary object.

• mha_complex_t & operator∗= ( mha_complex_t &self, mha_real_t other_real)
Multiplication of a complex and a real number, overwriting the complex.

• mha_complex_t & expi ( mha_complex_t &self, mha_real_t angle, mha_real_t
factor)
replaces (!) the value of the given mha_complex_t ( p. 503) with a ∗ exp(i∗b)

• mha_complex_t operator∗ (const mha_complex_t &self, mha_real_t other_real)
Multiplication of a complex and a real number, result is a temporary object.

• mha_real_t abs2 (const mha_complex_t &self)
Compute the square of the absolute value of a complex value.

• mha_real_t abs (const mha_complex_t &self)
Compute the absolute value of a complex value.

• mha_complex_t & operator/= ( mha_complex_t &self, mha_real_t other_real)
Division of a complex and a real number, overwriting the complex.

• mha_complex_t operator/ (const mha_complex_t &self, mha_real_t other_real)
Division of a complex and a real number, result is a temporary object.

• mha_complex_t & safe_div ( mha_complex_t &self, const mha_complex_t &other,
mha_real_t eps, mha_real_t eps2)
Safe division of two complex numbers, overwriting the first.

• mha_complex_t & operator/= ( mha_complex_t &self, const mha_complex_t &other)
Division of two complex numbers, overwriting the first.

• mha_complex_t operator/ (const mha_complex_t &self, const mha_complex_←t &other)
Division of two complex numbers, result is a temporary object.

• mha_complex_t operator- (const mha_complex_t &self)
Unary minus on a complex results in a negative temporary object.

• bool operator== (const mha_complex_t &x, const mha_complex_t &y)
Compare two complex numbers for equality.

• bool operator!= (const mha_complex_t &x, const mha_complex_t &y)
Compare two complex numbers for inequality.

• void conjugate ( mha_complex_t &self)
Replace (!) the value of this mha_complex_t ( p. 503) with its conjugate.

• mha_complex_t _conjugate (const mha_complex_t &self)
© 2005-2018 HörTech gGmbH, Oldenburg

70

CONTENTS

Compute the cojugate of this complex value.

• void reciprocal ( mha_complex_t &self)
Replace the value of this complex with its reciprocal.

• mha_complex_t _reciprocal (const mha_complex_t &self)
compute the reciprocal of this complex value.

• void normalize ( mha_complex_t &self)
Divide a complex by its absolute value, thereby normalizing it (projecting onto the unit circle).

• void normalize ( mha_complex_t &self, mha_real_t margin)
Divide a complex by its absolute value, thereby normalizing it (projecting onto the unit circle),
with a safety margin.

• bool almost (const mha_complex_t &self, const mha_complex_t &other, mha_←real_t times_epsilon=1e2)
Compare two complex numbers for equality except for a small relative error.

• bool operator< (const mha_complex_t &x, const mha_complex_t &y)
Compares the absolute values of two complex numbers.

3.10.1

Detailed Description

3.10.2

Function Documentation

3.10.2.1

set() [1/2]

mha_complex_t& set (
mha_complex_t & self,
mha_real_t real,
mha_real_t imag = 0 ) [inline]

Assign real and imaginary parts to a mha_complex_t (p. 503) variable.
Parameters
self
real
imag

The mha_complex_t (p. 503) variable whose value is about to change.
The new real part.
The new imaginary part.

Returns
A reference to the changed variable.

© 2005-2018 HörTech gGmbH, Oldenburg

3.10

Complex arithmetics in the openMHA

3.10.2.2

71

mha_complex()

mha_complex_t mha_complex (
mha_real_t real,
mha_real_t imag = 0 ) [inline]

Create a new mha_complex_t (p. 503) with specified real and imaginary parts.
Parameters
real
imag

The real part.
The imaginary part.

Returns
The new value.

3.10.2.3

set() [2/2]

mha_complex_t& set (
mha_complex_t & self,
const std::complex<

mha_real_t > & stdcomplex ) [inline]

Assign a mha_complex_t (p. 503) variable from a std::complex.
Parameters
self
stdcomplex

The mha_complex_t (p. 503) variable whose value is about to change.
The new complex value.

Returns
A reference to the changed variable.

3.10.2.4

stdcomplex()

std::complex< mha_real_t> stdcomplex (
const

mha_complex_t & self ) [inline]

Create a std::complex from mha_complex_t (p. 503).

© 2005-2018 HörTech gGmbH, Oldenburg

72

3.10.2.5

CONTENTS

expi() [1/2]

mha_complex_t& expi (
mha_complex_t & self,
mha_real_t angle ) [inline]

replaces the value of the given mha_complex_t (p. 503) with exp(i∗b).
Parameters
self
angle

The mha_complex_t (p. 503) variable whose value is about to change.
The angle in the complex plane [rad].

Returns
A reference to the changed variable.

3.10.2.6

angle()

double angle (
const

mha_complex_t & self ) [inline]

Computes the angle of a complex number in the complex plane.
Parameters
The complex number whose angle is needed.

self

Returns
The angle of a complex number in the complex plane.

3.10.2.7

operator+=() [1/2]

mha_complex_t& operator+= (
mha_complex_t & self,
const

mha_complex_t & other ) [inline]

Addition of two complex numbers, overwriting the first.

© 2005-2018 HörTech gGmbH, Oldenburg

3.10

Complex arithmetics in the openMHA

3.10.2.8

operator+() [1/2]

mha_complex_t operator+ (
const

mha_complex_t & self,

const

mha_complex_t & other ) [inline]

Addition of two complex numbers, result is a temporary object.

3.10.2.9

operator+=() [2/2]

mha_complex_t& operator+= (
mha_complex_t & self,
mha_real_t other_real ) [inline]

Addition of a complex and a real number, overwriting the complex.

3.10.2.10

operator+() [2/2]

mha_complex_t operator+ (
const

mha_complex_t & self,

mha_real_t other_real ) [inline]

Addition of a complex and a real number, result is a temporary object.

3.10.2.11

operator-=() [1/2]

mha_complex_t& operator-= (
mha_complex_t & self,
const

mha_complex_t & other ) [inline]

Subtraction of two complex numbers, overwriting the first.

3.10.2.12

operator-() [1/3]

mha_complex_t operator- (
const

mha_complex_t & self,

const

mha_complex_t & other ) [inline]

Subtraction of two complex numbers, result is a temporary object.

© 2005-2018 HörTech gGmbH, Oldenburg

73

74

3.10.2.13

CONTENTS

operator-=() [2/2]

mha_complex_t& operator-= (
mha_complex_t & self,
mha_real_t other_real ) [inline]

Subtraction of a complex and a real number, overwriting the complex.

3.10.2.14

operator-() [2/3]

mha_complex_t operator- (
const

mha_complex_t & self,

mha_real_t other_real ) [inline]

Subtraction of a complex and a real number, result is a temporary object.

3.10.2.15

operator∗=() [1/2]

mha_complex_t& operator∗= (
mha_complex_t & self,
const

mha_complex_t & other ) [inline]

Multiplication of two complex numbers, overwriting the first.

3.10.2.16

operator∗() [1/2]

mha_complex_t operator∗ (
const

mha_complex_t & self,

const

mha_complex_t & other ) [inline]

Multiplication of two complex numbers, result is a temporary object.

3.10.2.17

operator∗=() [2/2]

mha_complex_t& operator∗= (
mha_complex_t & self,
mha_real_t other_real ) [inline]

Multiplication of a complex and a real number, overwriting the complex.

3.10.2.18

expi() [2/2]

mha_complex_t& expi (
mha_complex_t & self,
mha_real_t angle,
mha_real_t factor ) [inline]

replaces (!) the value of the given mha_complex_t (p. 503) with a ∗ exp(i∗b)

© 2005-2018 HörTech gGmbH, Oldenburg

3.10

Complex arithmetics in the openMHA

75

Parameters
self
angle

The mha_complex_t (p. 503) variable whose value is about to change.
The imaginary exponent.

factor

The absolute value of the result.

Returns
A reference to the changed variable.

3.10.2.19

operator∗() [2/2]

mha_complex_t operator∗ (
const

mha_complex_t & self,

mha_real_t other_real ) [inline]

Multiplication of a complex and a real number, result is a temporary object.

3.10.2.20

abs2()

mha_real_t abs2 (
const

mha_complex_t & self ) [inline]

Compute the square of the absolute value of a complex value.
Returns
The square of the absolute value of self.

3.10.2.21

abs()

mha_real_t abs (
const

mha_complex_t & self ) [inline]

Compute the absolute value of a complex value.
Returns
The absolute value of self.

© 2005-2018 HörTech gGmbH, Oldenburg

76

3.10.2.22

CONTENTS

operator/=() [1/2]

mha_complex_t& operator/= (
mha_complex_t & self,
mha_real_t other_real ) [inline]

Division of a complex and a real number, overwriting the complex.

3.10.2.23

operator/() [1/2]

mha_complex_t operator/ (
const

mha_complex_t & self,

mha_real_t other_real ) [inline]

Division of a complex and a real number, result is a temporary object.

3.10.2.24

safe_div()

mha_complex_t& safe_div (
mha_complex_t & self,
const

mha_complex_t & other,

mha_real_t eps,
mha_real_t eps2 ) [inline]

Safe division of two complex numbers, overwriting the first.
If abs(divisor) < eps, then divisor is replaced by eps. eps2 = eps∗eps.
3.10.2.25

operator/=() [2/2]

mha_complex_t& operator/= (
mha_complex_t & self,
const

mha_complex_t & other ) [inline]

Division of two complex numbers, overwriting the first.

3.10.2.26

operator/() [2/2]

mha_complex_t operator/ (
const

mha_complex_t & self,

const

mha_complex_t & other ) [inline]

Division of two complex numbers, result is a temporary object.

© 2005-2018 HörTech gGmbH, Oldenburg

3.10

Complex arithmetics in the openMHA

3.10.2.27

77

operator-() [3/3]

mha_complex_t operator- (
const

mha_complex_t & self ) [inline]

Unary minus on a complex results in a negative temporary object.

3.10.2.28

operator==()

bool operator== (
const

mha_complex_t & x,

const

mha_complex_t & y ) [inline]

Compare two complex numbers for equality.

3.10.2.29

operator"!=()

bool operator!= (
const

mha_complex_t & x,

const

mha_complex_t & y ) [inline]

Compare two complex numbers for inequality.

3.10.2.30

conjugate()

void conjugate (
mha_complex_t & self ) [inline]

Replace (!) the value of this mha_complex_t (p. 503) with its conjugate.

3.10.2.31

_conjugate()

mha_complex_t _conjugate (
const

mha_complex_t & self ) [inline]

Compute the cojugate of this complex value.
Returns
A temporary object holding the conjugate value.

© 2005-2018 HörTech gGmbH, Oldenburg

78

3.10.2.32

CONTENTS

reciprocal()

void reciprocal (
mha_complex_t & self ) [inline]

Replace the value of this complex with its reciprocal.

3.10.2.33

_reciprocal()

mha_complex_t _reciprocal (
const

mha_complex_t & self ) [inline]

compute the reciprocal of this complex value.
Returns
A temporary object holding the reciprocal value.

3.10.2.34

normalize() [1/2]

void normalize (
mha_complex_t & self ) [inline]

Divide a complex by its absolute value, thereby normalizing it (projecting onto the unit circle).

3.10.2.35

normalize() [2/2]

void normalize (
mha_complex_t & self,
mha_real_t margin ) [inline]

Divide a complex by its absolute value, thereby normalizing it (projecting onto the unit circle),
with a safety margin.

3.10.2.36

almost()

bool almost (
const

mha_complex_t & self,

const

mha_complex_t & other,

mha_real_t times_epsilon = 1e2 ) [inline]

Compare two complex numbers for equality except for a small relative error.

© 2005-2018 HörTech gGmbH, Oldenburg

3.10

Complex arithmetics in the openMHA

79

Parameters
self
other
times_epsilon

The first complex number.
The second complex number.
Permitted relative error is this number multiplied with the machine accuracy
for this Floating point format (std::numeric_limits::epsilon)

Returns
true if the relative difference is below times_epsilon ∗ std::numeric_limits←::epsilon

3.10.2.37

operator<()

bool operator< (
const

mha_complex_t & x,

const

mha_complex_t & y ) [inline]

Compares the absolute values of two complex numbers.

© 2005-2018 HörTech gGmbH, Oldenburg

80

3.11

CONTENTS

Fast Fourier Transform functions

Collaboration diagram for Fast Fourier Transform functions:

The openMHA Toolbox
library

Fast Fourier Transform
functions

Typedefs
• typedef void ∗ mha_fft_t
Handle for an FFT object.

Functions
• mha_fft_t mha_fft_new (unsigned int n)
Create a new FFT handle.

• void mha_fft_free ( mha_fft_t h)
Destroy an FFT handle.

• void mha_fft_wave2spec ( mha_fft_t h, const mha_wave_t ∗in, mha_spec_t ∗out)
Tranform waveform segment into spectrum.

• void mha_fft_wave2spec ( mha_fft_t h, const mha_wave_t ∗in, mha_spec_t ∗out,
bool swaps)
Tranform waveform segment into spectrum.

• void mha_fft_spec2wave ( mha_fft_t h, const mha_spec_t ∗in, mha_wave_t ∗out)
Tranform spectrum into waveform segment.

• void mha_fft_spec2wave ( mha_fft_t h, const mha_spec_t ∗in, mha_wave_t ∗out,
unsigned int offset)
Tranform spectrum into waveform segment.

• void mha_fft_forward ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (forward).

• void mha_fft_backward ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (backward).

• void mha_fft_forward_scale ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (forward).

• void mha_fft_backward_scale ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (backward).

• void mha_fft_wave2spec_scale ( mha_fft_t h, const mha_wave_t ∗in, mha_spec_t
∗out)
Tranform waveform segment into spectrum.

• void mha_fft_spec2wave_scale ( mha_fft_t h, const mha_spec_t ∗in, mha_wave_t
∗out)
Tranform spectrum into waveform segment.
© 2005-2018 HörTech gGmbH, Oldenburg

3.11

Fast Fourier Transform functions

3.11.1

Detailed Description

3.11.2

Typedef Documentation

3.11.2.1

81

mha_fft_t

typedef void∗

mha_fft_t

Handle for an FFT object.
This FFT object is used by the functions mha_fft_wave2spec and mha_fft_spec2wave. The F←FT back-end is the FFTW library. The back-end is completely hidden, including external header
files or linking external libraries is not required.

3.11.3

3.11.3.1

Function Documentation

mha_fft_new()

mha_fft_t mha_fft_new (
unsigned int n )

Create a new FFT handle.
Parameters
n

FFT length.

Create a new FFT handle.
Parameters
n

FFT length

Return values
FFT

object

© 2005-2018 HörTech gGmbH, Oldenburg

82

3.11.3.2

CONTENTS

mha_fft_free()

void mha_fft_free (
mha_fft_t h )

Destroy an FFT handle.
Parameters
h

Handle to be destroyed.

Destroy an FFT handle.
Parameters
h

FFT object to be removed

3.11.3.3

mha_fft_wave2spec() [1/2]

void mha_fft_wave2spec (
mha_fft_t h,
const

mha_wave_t ∗ in,

mha_spec_t ∗ out )

Tranform waveform segment into spectrum.
Parameters
h
in

FFT handle.
Input waveform segment.

out

Output spectrum.

Tranform waveform segment into spectrum.
Parameters
h

FFT object handle

in

pointer to input waveform signal

out

pointer to output spectrum signal (has to be allocated)

© 2005-2018 HörTech gGmbH, Oldenburg

3.11

Fast Fourier Transform functions

3.11.3.4

83

mha_fft_wave2spec() [2/2]

void mha_fft_wave2spec (
mha_fft_t h,
const

mha_wave_t ∗ in,

mha_spec_t ∗ out,
bool swaps )

Tranform waveform segment into spectrum.
Like normal wave2spec, but swaps wave buffer halves before transforming if the swaps parameter is true.
Warning: These openMHA FFTs adopt a nonstandard scaling scheme in which the forward
transform scales by 1/N and the backward does not scale. We would recommend using the
'_scale' methods instead.
Parameters
h
in

FFT handle.
Input waveform segment.

out

Output spectrum.

swaps

Function swaps the first and second half of the waveform buffer before the FFT
transform when this parameter is set to true.

3.11.3.5

mha_fft_spec2wave() [1/2]

void mha_fft_spec2wave (
mha_fft_t h,
const

mha_spec_t ∗ in,

mha_wave_t ∗ out )

Tranform spectrum into waveform segment.
Warning: These openMHA FFTs adopt a nonstandard scaling scheme in which the forward
transform scales by 1/N and the backward does not scale. We would recommend using the
'_scale' methods instead.
Parameters
h
in

FFT handle.
Input spectrum.

out

Output waveform segment.

Tranform spectrum into waveform segment.

© 2005-2018 HörTech gGmbH, Oldenburg

84

CONTENTS

Parameters
h
in

FFT object handle
pointer to input spectrum

out

pointer to output waveform signal (has to be allocated)

3.11.3.6

mha_fft_spec2wave() [2/2]

void mha_fft_spec2wave (
mha_fft_t h,
const

mha_spec_t ∗ in,

mha_wave_t ∗ out,
unsigned int offset )

Tranform spectrum into waveform segment.
out may have fewer number of frames than needed for a complete iFFT. Only as many frames
are written into out as fit, starting with offset offset of the complete iFFT.
Warning: These openMHA FFTs adopt a nonstandard scaling scheme in which the forward
transform scales by 1/N and the backward does not scale. We would recommend using the
'_scale' methods instead.
Parameters
h
in

FFT handle.
Input spectrum.

out

Output waveform segment.

offset

Offset into iFFT wave buffer

Tranform spectrum into waveform segment.
Only part of the iFFT is tranferred into the out buffer.
Out may have fewer number of freames than needed for a complete iFFT. Only as many frames
are written into out as fit, starting with offset offset of the complete iFFT.
Parameters
h
in

FFT object handle
pointer to input spectrum

out

pointer to output waveform signal (has to be allocated)

offset

Offset into complete iFFT buffer.

© 2005-2018 HörTech gGmbH, Oldenburg

3.11

Fast Fourier Transform functions

3.11.3.7

85

mha_fft_forward()

void mha_fft_forward (
mha_fft_t h,
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

Complex to complex FFT (forward).
sIn and sOut need to have nfft bins (please note that mha_spec_t (p. 547) typically has nfft/2+1
bins for half-complex representation).
Warning: These openMHA FFTs adopt a nonstandard scaling scheme in which the forward
transform scales by 1/N and the backward does not scale. We would recommend using the
'_scale' methods instead.
Parameters
h
sIn

FFT handle.
Input spectrum.

sOut

Output spectrum.

3.11.3.8

mha_fft_backward()

void mha_fft_backward (
mha_fft_t h,
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

Complex to complex FFT (backward).
sIn and sOut need to have nfft bins (please note that mha_spec_t (p. 547) typically has nfft/2+1
bins for half-complex representation).
Warning: These openMHA FFTs adopt a nonstandard scaling scheme in which the forward
transform scales by 1/N and the backward does not scale. We would recommend using the
'_scale' methods instead.
Parameters
h
sIn

FFT handle.
Input spectrum.

sOut

Output spectrum.

© 2005-2018 HörTech gGmbH, Oldenburg

86

3.11.3.9

CONTENTS

mha_fft_forward_scale()

void mha_fft_forward_scale (
mha_fft_t h,
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

Complex to complex FFT (forward).
sIn and sOut need to have nfft bins (please note that mha_spec_t (p. 547) typically has nfft/2+1
bins for half-complex representation).
The _scale methods use standard DFT scaling: There is no scaling in the forward transformation, and 1/N scaling for the backward.
Parameters
h
sIn

FFT handle.
Input spectrum.

sOut

Output spectrum.

3.11.3.10

mha_fft_backward_scale()

void mha_fft_backward_scale (
mha_fft_t h,
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

Complex to complex FFT (backward).
sIn and sOut need to have nfft bins (please note that mha_spec_t (p. 547) typically has nfft/2+1
bins for half-complex representation).
The _scale methods use standard DFT scaling: There is no scaling in the forward transformation, and 1/N scaling for the backward.
Parameters
h
sIn

FFT handle.
Input spectrum.

sOut

Output spectrum.

© 2005-2018 HörTech gGmbH, Oldenburg

3.11

Fast Fourier Transform functions

3.11.3.11

87

mha_fft_wave2spec_scale()

void mha_fft_wave2spec_scale (
mha_fft_t h,
const

mha_wave_t ∗ in,

mha_spec_t ∗ out )

Tranform waveform segment into spectrum.
The _scale methods use standard DFT scaling: There is no scaling in the forward transformation, and 1/N scaling for the backward.
Parameters
h
in

FFT handle.
Input waveform segment.

out

Output spectrum.

3.11.3.12

mha_fft_spec2wave_scale()

void mha_fft_spec2wave_scale (
mha_fft_t h,
const

mha_spec_t ∗ in,

mha_wave_t ∗ out )

Tranform spectrum into waveform segment.
The _scale methods use standard DFT scaling: There is no scaling in the forward transformation, and 1/N scaling for the backward.
Parameters
h
in

FFT handle.
Input spectrum.

out

Output waveform segment.

© 2005-2018 HörTech gGmbH, Oldenburg

88

4

Namespace Documentation

4.1

acmon Namespace Reference

CONTENTS

Namespace for displaying ac variables as parser monitors.

Classes
• class ac_monitor_t
A class for converting AC variables to Parser monitors of correct type.

• class acmon_t

4.1.1

Detailed Description

Namespace for displaying ac variables as parser monitors.

4.2

acsave Namespace Reference

Classes
•
•
•
•

4.3

class
class
struct
class

acsave_t
cfg_t
mat4head_t
save_var_t

ADM Namespace Reference

Classes
• class ADM
Adaptive differential microphone, working for speech frequency range.

• class Delay
A delay-line class which can also do subsample-delays for a limited frequency range below
fs/4.

• class Linearphase_FIR
An efficient linear-phase fir filter implementation.

Functions
• static double subsampledelay_coeff (double samples, double f_design, double fs=1.0)
compute IIR coefficient for subsample delay
© 2005-2018 HörTech gGmbH, Oldenburg

4.3

ADM Namespace Reference

89

Variables
•
•
•
•

const double
const double
const double
const double

4.3.1

PI = 3.14159265358979312
C = 340
DELAY_FREQ = 2000
START_BETA = 0.5

Function Documentation

4.3.1.1

subsampledelay_coeff()

static double ADM::subsampledelay_coeff (
double samples,
double f_design,
double fs = 1.0 ) [static]

compute IIR coefficient for subsample delay
Parameters
samples

Constraint: 0.0 <= samples < 1.0; Amount of sub-sample delay

f_design

design frequency (subsample delay is accurate for this frequency)

fs

sampling rate

Returns
IIR coefficient for subsample delay

4.3.2

4.3.2.1

Variable Documentation

PI

const double ADM::PI = 3.14159265358979312

4.3.2.2

C

const double ADM::C = 340

© 2005-2018 HörTech gGmbH, Oldenburg

90

4.3.2.3

CONTENTS

DELAY_FREQ

const double ADM::DELAY_FREQ = 2000

4.3.2.4

START_BETA

const double ADM::START_BETA = 0.5

4.4

AuditoryProfile Namespace Reference

Namespace for classes and functions around the auditory profile (e.g., audiogram handling)

Classes
• class fmap_t
A class to store frequency dependent data (e.g., HTL and UCL).

• class parser_t
Class to make the auditory profile accessible through the parser interface.

• class profile_t
The Auditory Profile class.

4.4.1

Detailed Description

Namespace for classes and functions around the auditory profile (e.g., audiogram handling)
The auditory profile as defined by HearCom or BMBF Modellbasierte Hoergeraete is stored in
the class AuditoryProfile::profile_t (p. 240). Until a complete definition is available, only the
currently needed elements are implemented.

4.5

coherence Namespace Reference

Classes
• class cohflt_if_t
• class cohflt_t
• class vars_t

Functions
• void getcipd ( mha_complex_t &c, mha_real_t &a, const mha_complex_t &xl, const
mha_complex_t &xr)
© 2005-2018 HörTech gGmbH, Oldenburg

4.6

dc Namespace Reference

4.5.1

91

Function Documentation

4.5.1.1

getcipd()

void coherence::getcipd (
mha_complex_t & c,
mha_real_t & a,

4.6

const

mha_complex_t & xl,

const

mha_complex_t & xr ) [inline]

dc Namespace Reference

Classes
•
•
•
•
•
•

class
class
class
class
class
class

dc_if_t
dc_t
dc_vars_t
dc_vars_validator_t
wb_inhib_cfg_t
wideband_inhib_vars_t

Functions
• unsigned int get_audiochannels (unsigned int totalchannels, std::string acname, algo←_comm_t ac)

4.6.1

4.6.1.1

Function Documentation

get_audiochannels()

unsigned int dc::get_audiochannels (
unsigned int totalchannels,
std::string acname,
algo_comm_t ac )

© 2005-2018 HörTech gGmbH, Oldenburg

92

4.7

CONTENTS

dc_simple Namespace Reference

Classes
•
•
•
•
•

class
class
class
class
class

dc_if_t
dc_t
dc_vars_t
dc_vars_validator_t
level_smoother_t

Typedefs
• typedef MHAPlugin::plugin_t< dc_t > DC
• typedef MHAPlugin::config_t< level_smoother_t > LEVEL

Functions
• void test_fail (const std::vector< float > &v, unsigned int s, const std::string &name)
• std::vector< float > force_resize (const std::vector< float > &v, unsigned int s, const
std::string &name)
• mha_real_t not_zero ( mha_real_t x, const std::string &comment="")

4.7.1

Typedef Documentation

4.7.1.1

DC

typedef

4.7.1.2

dc_simple::DC

LEVEL

typedef

4.7.2

MHAPlugin::plugin_t< dc_t>

MHAPlugin::config_t< level_smoother_t>

dc_simple::LEVEL

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

4.8

delay Namespace Reference

4.7.2.1

test_fail()

void dc_simple::test_fail (
const std::vector< float > & v,
unsigned int s,
const std::string & name )

4.7.2.2

force_resize()

std::vector dc_simple::force_resize (
const std::vector< float > & v,
unsigned int s,
const std::string & name )

4.7.2.3

not_zero()

mha_real_t dc_simple::not_zero (
mha_real_t x,
const std::string & comment = "" )

4.8

delay Namespace Reference

Classes
• class interface_t

4.9

delaysum Namespace Reference

This namespace contains the delaysum plugin.

Classes
• class delaysum_if_t
Interface class for the delaysum plugin.

• class delaysum_t
Runtime configuration of the delaysum plugin.

4.9.1

Detailed Description

This namespace contains the delaysum plugin.
© 2005-2018 HörTech gGmbH, Oldenburg

93

94

4.10

CONTENTS

DynComp Namespace Reference

dynamic compression related classes and functions

Classes
• class dc_afterburn_rt_t
Real-time class for after burn effect.

• class dc_afterburn_t
Afterburn class, to be defined as a member of compressors.

• class dc_afterburn_vars_t
Variables for dc_afterburn_t ( p. 342) class.

• class gaintable_t
Gain table class.

Functions
• mha_real_t interp1 (const std::vector< mha_real_t > &vX, const std::vector< mha←_real_t > &vY, mha_real_t X)
One-dimensional linear interpolation.

• mha_real_t interp2 (const std::vector< mha_real_t > &vX, const std::vector< mha←_real_t > &vY, const std::vector< std::vector< mha_real_t > > &mZ, mha_real_t X,
mha_real_t Y)
Linear interpolation in a two-dimensional field.

4.10.1

Detailed Description

dynamic compression related classes and functions

4.10.2

4.10.2.1

Function Documentation

interp1()

mha_real_t DynComp::interp1 (
const std::vector<

mha_real_t > & vX,

const std::vector<

mha_real_t > & vY,

mha_real_t X )

One-dimensional linear interpolation.

© 2005-2018 HörTech gGmbH, Oldenburg

4.11

fader_wave Namespace Reference

95

Parameters
vX
vY
X

Vector with input samples.
Vector with values at input samples.
Input value to be interpolated.

Return values
Interpolated

4.10.2.2

value Y(X) at position X.

interp2()

mha_real_t DynComp::interp2 (
const std::vector<

mha_real_t > & vX,

const std::vector<

mha_real_t > & vY,

const std::vector< std::vector<

mha_real_t > > & mZ,

mha_real_t X,
mha_real_t Y )

Linear interpolation in a two-dimensional field.
Parameters
vX
vY
mZ

Vector with input samples, first dimension.
Vector with input samples, second dimension.
Field with values at input samples.

X

First dimension of input value to be interpolated.

Y

Second dimension of input value to be interpolated.

Return values
Interpolated

4.11

value Z(X,Y) at position X,Y.

fader_wave Namespace Reference

Classes
• class fader_wave_if_t
• class level_adapt_t
© 2005-2018 HörTech gGmbH, Oldenburg

96

CONTENTS

Typedefs
• typedef MHAPlugin::plugin_t< level_adapt_t > level_adaptor

4.11.1

Typedef Documentation

4.11.1.1

typedef

4.12

level_adaptor

MHAPlugin::plugin_t< level_adapt_t>

fader_wave::level_adaptor

fftfilterbank Namespace Reference

Classes
• class fftfb_interface_t
• class fftfb_plug_t

4.13

gain Namespace Reference

Classes
• class gain_if_t
• class scaler_t

4.14

matrixmixer Namespace Reference

Classes
• class cfg_t
• class matmix_t

4.15

MHA_AC Namespace Reference

Functions and classes for Algorithm Communication (AC) support.
© 2005-2018 HörTech gGmbH, Oldenburg

4.16

mha_error_helpers Namespace Reference

97

Classes
• class ac2matrix_helper_t
• class ac2matrix_t
Copy AC variable to a matrix.

• class acspace2matrix_t
Copy all or a subset of all numeric AC variables into an array of matrixes.

• class double_t
Insert a double precision floating point variable into the AC space.

• class float_t
Insert a float point variable into the AC space.

• class int_t
Insert a integer variable into the AC space.

• class spectrum_t
Insert a MHASignal::spectrum_t ( p. 979) class into the AC space.

• class stat_t
• class waveform_t
Insert a MHASignal::waveform_t ( p. 993) class into the AC space.

Functions
• mha_spec_t get_var_spectrum ( algo_comm_t ac, const std::string &name)
Convert an AC variable into a spectrum.

• mha_wave_t get_var_waveform ( algo_comm_t ac, const std::string &name)
Convert an AC variable into a waveform.

• int get_var_int ( algo_comm_t ac, const std::string &name)
Return value of an integer scalar AC variable.

• float get_var_float ( algo_comm_t ac, const std::string &name)
Return value of an floating point scalar AC variable.

• std::vector< float > get_var_vfloat ( algo_comm_t ac, const std::string &name)
Return value of an floating point vector AC variable as standard vector of floats.

4.15.1

Detailed Description

Functions and classes for Algorithm Communication (AC) support.

4.16

mha_error_helpers Namespace Reference

Functions
• unsigned digits (unsigned n)
Compute number of decimal digits required to represent an unsigned integer.

• unsigned snprintf_required_length (const char ∗formatstring,...)
snprintf_required_length Compute the number of bytes (excluding the terminating nul) required
to store the result of an snprintf.
© 2005-2018 HörTech gGmbH, Oldenburg

98

4.16.1

CONTENTS

Function Documentation

4.16.1.1

digits()

unsigned mha_error_helpers::digits (
unsigned n )

Compute number of decimal digits required to represent an unsigned integer.
Parameters
The unsigned integer that we want to know the number of required decimal digits for.
return The number of decimal digits in n.

n

4.16.1.2

snprintf_required_length()

unsigned mha_error_helpers::snprintf_required_length (
const char ∗ formatstring,
...

)

snprintf_required_length Compute the number of bytes (excluding the terminating nul) required
to store the result of an snprintf.
Parameters
formatstring

The format string with standard printf formatstring

Returns
the number of bytes required by printf without the terminating nul

4.17

MHA_TCP Namespace Reference

A Namespace for TCP helper classes.

Classes
• class Async_Notify
Portable Multiplexable cross-thread notification.
© 2005-2018 HörTech gGmbH, Oldenburg

4.17

MHA_TCP Namespace Reference

99

• class Client
A portable class for a tcp client connections.

• class Connection
Connection ( p. 552) handles Communication between client and server, is used on both sides.

• class Event_Watcher
OS-independent event watcher, uses select on Unix and WaitForMultipleObjects on Windows.

•
•
•
•

struct
class
class
class

OS_EVENT_TYPE
Server
Sockaccept_Event
Sockread_Event

Watch socket for incoming data.

• class Sockwrite_Event
• class Thread
A very simple class for portable threads.

• class Timeout_Event
• class Timeout_Watcher
OS-independent event watcher with internal fixed-end-time timeout.

• class Wakeup_Event
A base class for asynchronous wakeup events.

Typedefs
• typedef int SOCKET

Functions
• std::string STRERROR (int err)
Portable conversion from error number to error string.

• std::string HSTRERROR (int err)
Portable conversion from hostname error number to error string.

• int N_ERRNO ()
Portable access to last network error number.

• int H_ERRNO ()
Portable access to last hostname error number.

• int G_ERRNO ()
Portable access to last non-network error number.

• double dtime ()
Time access function for system's high resolution time, retrieve current time as double.

• double dtime (const struct timeval &tv)
Time access function for unix' high resolution time, converts struct timeval to double.

• struct timeval stime (double d)
Time access function for unix' high resolution time, converts time from double to struct timeval.
© 2005-2018 HörTech gGmbH, Oldenburg

100

4.17.1

CONTENTS

Detailed Description

A Namespace for TCP helper classes.

4.17.2

4.17.2.1

Typedef Documentation

SOCKET

typedef int

4.17.3

4.17.3.1

MHA_TCP::SOCKET

Function Documentation

STRERROR()

std::string MHA_TCP::STRERROR (
int err )

Portable conversion from error number to error string.

4.17.3.2

HSTRERROR()

std::string MHA_TCP::HSTRERROR (
int err )

Portable conversion from hostname error number to error string.

4.17.3.3

N_ERRNO()

int MHA_TCP::N_ERRNO ( )

Portable access to last network error number.

© 2005-2018 HörTech gGmbH, Oldenburg

4.18

mhachain Namespace Reference

4.17.3.4

101

H_ERRNO()

int MHA_TCP::H_ERRNO ( )

Portable access to last hostname error number.

4.17.3.5

G_ERRNO()

int MHA_TCP::G_ERRNO ( )

Portable access to last non-network error number.

4.17.3.6

dtime() [1/2]

double MHA_TCP::dtime ( )

Time access function for system's high resolution time, retrieve current time as double.

4.17.3.7

dtime() [2/2]

double MHA_TCP::dtime (
const struct timeval & tv )

Time access function for unix' high resolution time, converts struct timeval to double.

4.17.3.8

stime()

struct timeval MHA_TCP::stime (
double d )

Time access function for unix' high resolution time, converts time from double to struct timeval.

4.18

mhachain Namespace Reference

Classes
• class chain_base_t
• class mhachain_t
• class plugs_t
© 2005-2018 HörTech gGmbH, Oldenburg

102

4.19

CONTENTS

MHAEvents Namespace Reference

Collection of event handling classes.

Classes
• class connector_base_t
• class connector_t
• class emitter_t
Class for emitting openMHA events.

• class patchbay_t
Patchbay which connects any event emitter with any member function of the parameter class.

4.19.1

Detailed Description

Collection of event handling classes.

4.20

MHAFilter Namespace Reference

Namespace for IIR and FIR filter classes.

Classes
• class adapt_filter_param_t
• class adapt_filter_state_t
• class adapt_filter_t
Adaptive filter.

• class blockprocessing_polyphase_resampling_t
A class that does polyphase resampling and takes into account block processing.

• class complex_bandpass_t
Complex bandpass filter.

• class diff_t
Differentiator class (non-normalized)

• class fftfilter_t
FFT based FIR filter implementation.

• class fftfilterbank_t
FFT based FIR filterbank implementation.

• class filter_t
Generic IIR filter class.

• class gamma_flt_t
Class for gammatone filter.
© 2005-2018 HörTech gGmbH, Oldenburg

4.20

MHAFilter Namespace Reference

103

• class iir_filter_state_t
• class iir_filter_t
IIR filter class wrapper for integration into parser structure.

• class iir_ord1_real_t
First order recursive filter.

• class o1_ar_filter_t
First order attack-release lowpass filter.

• class o1flt_lowpass_t
First order low pass filter.

• class o1flt_maxtrack_t
First order maximum tracker.

• class o1flt_mintrack_t
First order minimum tracker.

• class partitioned_convolution_t
A filter class for partitioned convolution.

• class polyphase_resampling_t
A class that performs polyphase resampling.

• class resampling_filter_t
Hann shaped low pass filter for resampling.

• class smoothspec_t
Smooth spectral gains, create a windowed impulse response.

• class thirdoctave_analyzer_t
• struct transfer_function_t
a structure containing a source channel number, a target channel number, and an impulse
response.

• struct transfer_matrix_t
A sparse matrix of transfer function partitionss.

Functions
•
•
•
•

void make_friendly_number ( mha_real_t &x)
void make_friendly_number ( mha_complex_t &x)
void make_friendly_number (double &x)
void o1_lp_coeffs (const mha_real_t tau, const mha_real_t fs, mha_real_t &c1,
mha_real_t &c2)
Set first order filter coefficients from time constant and sampling rate.

• void butter_stop_ord1 (double ∗A, double ∗B, double f1, double f2, double fs)
Setup a first order butterworth band stop filter.

• MHASignal::waveform_t ∗ spec2fir (const mha_spec_t ∗spec, const unsigned int
fftlen, const MHAWindow::base_t &window, const bool minphase)
Create a windowed impulse response/FIR filter coefficients from a spectrum.

• unsigned gcd (unsigned a, unsigned b)
greatest common divisor

• double sinc (double x)
sin(x)/x function, coping with x=0.

• std::pair< unsigned, unsigned > resampling_factors (float source_sampling_rate, float
target_sampling_rate, float factor=1.0f)
Computes rational resampling factor from two sampling rates.
© 2005-2018 HörTech gGmbH, Oldenburg

104

4.20.1

CONTENTS

Detailed Description

Namespace for IIR and FIR filter classes.

4.20.2

4.20.2.1

Function Documentation

make_friendly_number() [1/3]

void MHAFilter::make_friendly_number (
mha_real_t & x ) [inline]

4.20.2.2

make_friendly_number() [2/3]

void MHAFilter::make_friendly_number (
mha_complex_t & x ) [inline]

4.20.2.3

make_friendly_number() [3/3]

void MHAFilter::make_friendly_number (
double & x ) [inline]

4.20.2.4

o1_lp_coeffs()

void MHAFilter::o1_lp_coeffs (
const

mha_real_t tau,

const

mha_real_t fs,

mha_real_t & c1,
mha_real_t & c2 )

Set first order filter coefficients from time constant and sampling rate.
Parameters
tau
fs

Time constant
Sampling rate

© 2005-2018 HörTech gGmbH, Oldenburg

4.20

MHAFilter Namespace Reference

105

Return values
Recursive filter coefficient
Non-recursive filter coefficient

c1
c2

4.20.2.5

butter_stop_ord1()

void MHAFilter::butter_stop_ord1 (
double ∗ A,
double ∗ B,
double f1,
double f2,
double fs )

Setup a first order butterworth band stop filter.
This function calculates the filter coefficients of a first order butterworth band stop filter.
Return values
A
B

recursive filter coefficients
non recursive filter coefficients

Parameters
f1

lower frequency

f2

upper frequency

fs

sample frequency

4.20.2.6

spec2fir()

MHASignal::waveform_t ∗ MHAFilter::spec2fir (
const

mha_spec_t ∗ spec,

const unsigned int fftlen,
const

MHAWindow::base_t & window,

const bool minphase )

Create a windowed impulse response/FIR filter coefficients from a spectrum.
Parameters
spec

Input spectrum

© 2005-2018 HörTech gGmbH, Oldenburg

106

CONTENTS

Parameters
fftlen

FFT length of spectrum

window

Window shape (with length, e.g. initialized with MHAWindow::hanning(54)).

minphase

Flag, true if original phase should be discarded and replaced by a minimal
phase function.

4.20.2.7

gcd()

unsigned MHAFilter::gcd (
unsigned a,
unsigned b ) [inline]

greatest common divisor

4.20.2.8

sinc()

double MHAFilter::sinc (
double x )

sin(x)/x function, coping with x=0.
This is the historical sinc function, not the normalized sinc function.
4.20.2.9

resampling_factors()

std::pair< unsigned, unsigned > MHAFilter::resampling_factors (
float source_sampling_rate,
float target_sampling_rate,
float factor = 1.0f )

Computes rational resampling factor from two sampling rates.
The function will fail if either sampling_rate ∗ factor is not an integer
Parameters
source_sampling_rate
target_sampling_rate

The original sampling rate
The desired sampling rate

factor

A helper factor to use for non-integer sampling rates

© 2005-2018 HörTech gGmbH, Oldenburg

4.21

MHAIOJack Namespace Reference

107

Returns
a pair that contains first the upsampling factor and second the downsampling factor required for the specified resampling.
Exceptions
MHA_Error ( p. 522)

4.21

if no rational resampling factor can be found.

MHAIOJack Namespace Reference

JACK IO.

Classes
• class io_jack_t
Main class for JACK IO.

4.21.1

Detailed Description

JACK IO.

4.22

MHAIOPortAudio Namespace Reference

Classes
• class device_info_t
• class io_portaudio_t
Main class for Portaudio sound IO.

Functions
• static std::string parserFriendlyName (const std::string &in)

4.22.1

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

108

4.22.1.1

CONTENTS

parserFriendlyName()

static std::string MHAIOPortAudio::parserFriendlyName (
const std::string & in ) [static]

4.23

MHAJack Namespace Reference

Classes and functions for openMHA and JACK interaction.

Classes
• class client_avg_t
Generic JACK client for averaging a system response across time.

• class client_noncont_t
Generic client for synchronous playback and recording of waveform fragments.

• class client_t
Generic asynchronous JACK client.

• class port_t
Class for one channel/port.

Functions
• void io ( mha_wave_t ∗s_out, mha_wave_t ∗s_in, const std::string &name, const std←::vector< std::string > &p_out, const std::vector< std::string > &p_in, float ∗srate=NULL,
unsigned int ∗fragsize=NULL, bool use_jack_transport=false)
Functional form of generic client for synchronous playback and recording of waveform fragments.

• std::vector< unsigned int > get_port_capture_latency (const std::vector< std::string >
&ports)
Return the JACK port latency of ports.

• std::vector< int >
&ports)

get_port_capture_latency_int (const std::vector< std::string >

Return the JACK port latency of ports.

• std::vector< unsigned int > get_port_playback_latency (const std::vector< std::string
> &ports)
Return the JACK port latency of ports.

• std::vector< int >
&ports)

4.23.1

get_port_playback_latency_int (const std::vector< std::string >

Detailed Description

Classes and functions for openMHA and JACK interaction.
© 2005-2018 HörTech gGmbH, Oldenburg

4.23

MHAJack Namespace Reference

4.23.2

109

Function Documentation

4.23.2.1

io()

void MHAJack::io (
mha_wave_t ∗ s_out,
mha_wave_t ∗ s_in,
const std::string & name,
const std::vector< std::string > & p_out,
const std::vector< std::string > & p_in,
float ∗ srate = NULL,
unsigned int ∗ fragsize = NULL,
bool use_jack_transport = false )

Functional form of generic client for synchronous playback and recording of waveform fragments.

4.23.2.2

get_port_capture_latency()

std::vector< unsigned int > MHAJack::get_port_capture_latency (
const std::vector< std::string > & ports )

Return the JACK port latency of ports.
Parameters
ports

Ports to be tested

Returns
Latency vector (one entry for each port)

4.23.2.3

get_port_capture_latency_int()

std::vector< int > MHAJack::get_port_capture_latency_int (
const std::vector< std::string > & ports )

Return the JACK port latency of ports.

© 2005-2018 HörTech gGmbH, Oldenburg

110

CONTENTS

Parameters
ports

Ports to be tested

Returns
Latency vector (one entry for each port)

4.23.2.4

get_port_playback_latency()

std::vector< unsigned int > MHAJack::get_port_playback_latency (
const std::vector< std::string > & ports )

Return the JACK port latency of ports.
Parameters
ports

Ports to be tested

Returns
Latency vector (one entry for each port)

4.23.2.5

get_port_playback_latency_int()

std::vector< int > MHAJack::get_port_playback_latency_int (
const std::vector< std::string > & ports )

4.24

MHAKernel Namespace Reference

Classes
• class algo_comm_class_t
• class comm_var_map_t

Functions
• algo_comm_class_t ∗ algo_comm_safe_cast (void ∗)
© 2005-2018 HörTech gGmbH, Oldenburg

4.25

MHAMultiSrc Namespace Reference

4.24.1

111

Function Documentation

4.24.1.1

algo_comm_safe_cast()

MHAKernel::algo_comm_class_t ∗ MHAKernel::algo_comm_safe_cast (
void ∗ h )

4.25

MHAMultiSrc Namespace Reference

Collection of classes for selecting audio chunks from multiple sources.

Classes
• class base_t
Base class for source selection.

•
•
•
•

4.25.1

class
class
class
class

channel_t
channels_t
spectrum_t
waveform_t

Detailed Description

Collection of classes for selecting audio chunks from multiple sources.

4.26

MHAOvlFilter Namespace Reference

Namespace for overlapping FFT based filter bank classes and functions.

Namespaces
• barkscale
• FreqScaleFun
Transform functions from linear scale in Hz to new frequency scales.

• ShapeFun
Shape functions for overlapping filters.
© 2005-2018 HörTech gGmbH, Oldenburg

112

CONTENTS

Classes
• class band_descriptor_t
• class fftfb_ac_info_t
• class fftfb_t
FFT based overlapping filter bank.

• class fftfb_vars_t
Set of configuration variables for FFT-based overlapping filters.

• class fscale_bw_t
• class fscale_t
• class fspacing_t
Class for frequency spacing, used by filterbank shape generator class.

• class overlap_save_filterbank_analytic_t
• class overlap_save_filterbank_t
A time-domain minimal phase filter bank with frequency shapes from MHAOvlFilter::fftfb_t
( p. 741).

• class scale_var_t

Typedefs
• typedef mha_real_t() scale_fun_t( mha_real_t)

4.26.1

Detailed Description

Namespace for overlapping FFT based filter bank classes and functions.

4.26.2

Typedef Documentation

4.26.2.1
typedef

4.27

scale_fun_t
mha_real_t() MHAOvlFilter::scale_fun_t( mha_real_t)

MHAOvlFilter::barkscale Namespace Reference

Classes
• class bark2hz_t
• class hz2bark_t
© 2005-2018 HörTech gGmbH, Oldenburg

4.28

MHAOvlFilter::FreqScaleFun Namespace Reference

113

Variables
• mha_real_t vfreq [ BARKSCALE_ENTRIES]
• mha_real_t vbark [ BARKSCALE_ENTRIES]

4.27.1

Variable Documentation

4.27.1.1

vfreq

mha_real_t MHAOvlFilter::barkscale::vfreq

4.27.1.2

vbark

mha_real_t MHAOvlFilter::barkscale::vbark

4.28

MHAOvlFilter::FreqScaleFun Namespace Reference

Transform functions from linear scale in Hz to new frequency scales.

Functions
• mha_real_t hz2hz ( mha_real_t x)
Dummy scale transformation Hz to Hz.

•
•
•
•

mha_real_t
mha_real_t
mha_real_t
mha_real_t

•
•
•
•

mha_real_t
mha_real_t
mha_real_t
mha_real_t

hz2khz ( mha_real_t x)
hz2octave ( mha_real_t x)
hz2third_octave ( mha_real_t x)
hz2bark ( mha_real_t x)

Transformation to bark scale.

hz2bark_analytic ( mha_real_t)
hz2erb ( mha_real_t)
hz2erb_glasberg1990 ( mha_real_t)
hz2log ( mha_real_t x)

Third octave frequency scale.

• mha_real_t inv_scale ( mha_real_t, mha_real_t(∗)( mha_real_t))

4.28.1

Detailed Description

Transform functions from linear scale in Hz to new frequency scales.
© 2005-2018 HörTech gGmbH, Oldenburg

114

4.28.2

CONTENTS

Function Documentation

4.28.2.1

hz2hz()

mha_real_t MHAOvlFilter::FreqScaleFun::hz2hz (
mha_real_t x )

Dummy scale transformation Hz to Hz.
This function implements a dummy scale transformation (linear frequency scale).
Parameters
x

Input frequency in Hz

Returns
Frequency in Hz

4.28.2.2

hz2khz()

mha_real_t MHAOvlFilter::FreqScaleFun::hz2khz (
mha_real_t x )

4.28.2.3

hz2octave()

mha_real_t MHAOvlFilter::FreqScaleFun::hz2octave (
mha_real_t x )

4.28.2.4

hz2third_octave()

mha_real_t MHAOvlFilter::FreqScaleFun::hz2third_octave (
mha_real_t x )

4.28.2.5

hz2bark()

mha_real_t MHAOvlFilter::FreqScaleFun::hz2bark (
mha_real_t x )

Transformation to bark scale.
This function implements a critical band rate (bark) scale.

© 2005-2018 HörTech gGmbH, Oldenburg

4.28

MHAOvlFilter::FreqScaleFun Namespace Reference

115

Parameters
x

Input frequency in Hz

Returns
Critical band rate in Bark

4.28.2.6

hz2bark_analytic()

mha_real_t MHAOvlFilter::FreqScaleFun::hz2bark_analytic (
mha_real_t x )

4.28.2.7

hz2erb()

mha_real_t MHAOvlFilter::FreqScaleFun::hz2erb (
mha_real_t x )

4.28.2.8

hz2erb_glasberg1990()

mha_real_t MHAOvlFilter::FreqScaleFun::hz2erb_glasberg1990 (
mha_real_t x )

4.28.2.9

hz2log()

mha_real_t MHAOvlFilter::FreqScaleFun::hz2log (
mha_real_t x )

Third octave frequency scale.
This function implements a third octave scale. Frequencies below 16 Hz are mapped to 16 Hz.
Parameters
x

Frequency in Hz

© 2005-2018 HörTech gGmbH, Oldenburg

116

CONTENTS

Returns
Third octaves relative to 1000 Hz

4.28.2.10

inv_scale()

mha_real_t MHAOvlFilter::FreqScaleFun::inv_scale (
mha_real_t y,
mha_real_t(∗)( mha_real_t) fun )

4.29

MHAOvlFilter::ShapeFun Namespace Reference

Shape functions for overlapping filters.

Functions
• mha_real_t rect ( mha_real_t x)
Filter shape function for rectangular filters.

• mha_real_t linear ( mha_real_t x)
Filter shape function for sawtooth filters.

• mha_real_t hann ( mha_real_t x)
Filter shape function for hanning shaped filters.

• mha_real_t expflt ( mha_real_t)
• mha_real_t gauss ( mha_real_t)

4.29.1

Detailed Description

Shape functions for overlapping filters.

4.29.2

4.29.2.1

Function Documentation

rect()

mha_real_t MHAOvlFilter::ShapeFun::rect (
mha_real_t x )

Filter shape function for rectangular filters.
This function creates rectangular filter shapes. The edge is exactly half way between two center
frequencies (on a given scale).

© 2005-2018 HörTech gGmbH, Oldenburg

4.29

MHAOvlFilter::ShapeFun Namespace Reference

117

Parameters
x

Input value in the range [-1,1].

Returns
Weigth function in the range [0,1]

4.29.2.2

linear()

mha_real_t MHAOvlFilter::ShapeFun::linear (
mha_real_t x )

Filter shape function for sawtooth filters.
This function creates sawtooth filter shapes. They rise linearly form 0 to 1 in the interval from
the lower neighbor center frequency to the band center frequency and from 1 to 0 in the interval
from the band center frequency to the upper neighbour band center frequency. Linear means
linear on a given frequency scale.
Parameters
x

Input value in the range [-1,1].

Returns
Weigth function in the range [0,1]

4.29.2.3

hann()

mha_real_t MHAOvlFilter::ShapeFun::hann (
mha_real_t x )

Filter shape function for hanning shaped filters.
This function creates hanning window shaped filters.
Parameters
x

Input value in the range [-1,1].

© 2005-2018 HörTech gGmbH, Oldenburg

118

CONTENTS

Returns
Weigth function in the range [0,1]

4.29.2.4

expflt()

mha_real_t MHAOvlFilter::ShapeFun::expflt (
mha_real_t x )

4.29.2.5

gauss()

mha_real_t MHAOvlFilter::ShapeFun::gauss (
mha_real_t x )

4.30

MHAParser Namespace Reference

Name space for the openMHA-Parser configuration language.

Namespaces
• StrCnv
String converter namespace.

Classes
• class base_t
Base class for all parser items.

• class bool_mon_t
Monitor with string value.

• class bool_t
Variable with a boolean value ("yes"/"no")

• class c_ifc_parser_t
• class commit_t
Parser variable with event-emission functionality.

• class complex_mon_t
Monitor with complex value.

• class complex_t
Variable with complex value.

• class entry_t
• class expression_t
© 2005-2018 HörTech gGmbH, Oldenburg

4.30

MHAParser Namespace Reference

• class float_mon_t
Monitor with float value.

• class float_t
Variable with float value.

• class int_mon_t
Monitor variable with int value.

• class int_t
Variable with integer value.

• class keyword_list_t
Keyword list class.

• class kw_t
Variable with keyword list value.

• class mcomplex_mon_t
Matrix of complex numbers monitor.

• class mcomplex_t
Matrix variable with complex value.

• class mfloat_mon_t
Matrix of floats monitor.

• class mfloat_t
Matrix variable with float value.

• class mhaconfig_mon_t
• class mhapluginloader_t
Class to create a plugin loader in a parser, including the load logic.

• class monitor_t
Base class for monitors and variable nodes.

• class parser_t
Parser node class.

• class range_var_t
Base class for all variables with a numeric value range.

• class string_mon_t
Monitor with string value.

• class string_t
Variable with a string value.

• class variable_t
Base class for variable nodes.

• class vcomplex_mon_t
Monitor with vector of complex values.

• class vcomplex_t
Vector variable with complex value.

• class vfloat_mon_t
Vector of floats monitor.

• class vfloat_t
Vector variable with float value.

• class vint_mon_t
Vector of ints monitor.
© 2005-2018 HörTech gGmbH, Oldenburg

119

120

CONTENTS

• class vint_t
Variable with vector value.

• class vstring_mon_t
Vector of monitors with string value.

• class vstring_t
Vector variable with string values.

• class window_t
MHA configuration interface for a window function generator.

Typedefs
•
•
•
•
•
•
•

typedef std::string(base_t::∗ opact_t) ( expression_t &)
typedef std::string(base_t::∗ query_t) (const std::string &)
typedef std::map< std::string, opact_t > opact_map_t
typedef std::map< std::string, query_t > query_map_t
typedef std::list< entry_t > entry_map_t
typedef int(∗ c_parse_cmd_t) (void ∗, const char ∗, char ∗, unsigned int)
typedef const char ∗(∗ c_parse_err_t) (void ∗, int)

Functions
•
•
•
•
•
•
•
•
•

int get_precision ()
std::string commentate (const std::string &s)
void trim (std::string &s)
std::string cfg_dump ( base_t ∗, const std::string &)
std::string cfg_dump_short ( base_t ∗, const std::string &)
std::string all_dump ( base_t ∗, const std::string &)
std::string mon_dump ( base_t ∗, const std::string &)
std::string all_ids ( base_t ∗, const std::string &, const std::string &="")
void strreplace (std::string &, const std::string &, const std::string &)
string replace function

• void envreplace (std::string &s)

4.30.1

Detailed Description

Name space for the openMHA-Parser configuration language.
This namespace contains all classes which are needed for the implementation of the open←MHA configuration language. For details on the script language itself please see section The
openMHA configuration language (p. 35).
© 2005-2018 HörTech gGmbH, Oldenburg

4.30

MHAParser Namespace Reference

4.30.2

121

List of valid MHAParser items

• Sub-parser: parser_t (p. 833)
• Variables:
Numeric variables: int_t (p. 803), vint_t (p. 864), float_t (p. 797), vfloat_t (p. 859),
mfloat_t (p. 820)
Other variables: string_t (p. 847), vstring_t (p. 869), kw_t (p. 810), bool_t (p. 780)
• Monitors:
Numeric monitors: int_mon_t (p. 800), vint_mon_t (p. 862), float_mon_t (p. 795),
vfloat_mon_t (p. 857)
mfloat_mon_t (p. 818)
mcomplex_mon_t (p. 814)
Other monitors: bool_mon_t (p. 778), string_mon_t (p. 845), vstring_mon_t (p. 867)
Members can be inserted into the configuration namespace by using MHAParser::insert_item()
or the insert_member() (p. 1258) macro.

4.30.3

4.30.3.1

Typedef Documentation

opact_t

typedef std::string(base_t::∗ MHAParser::opact_t) ( expression_t &)

4.30.3.2

query_t

typedef std::string(base_t::∗ MHAParser::query_t) (const std::string &)

4.30.3.3

opact_map_t

typedef std::map

4.30.3.4

MHAParser::opact_map_t

query_map_t

typedef std::map

© 2005-2018 HörTech gGmbH, Oldenburg

MHAParser::query_map_t

122

4.30.3.5

entry_map_t

typedef std::list< entry_t>

4.30.3.6

CONTENTS

MHAParser::entry_map_t

c_parse_cmd_t

typedef int(∗ MHAParser::c_parse_cmd_t) (void ∗, const char ∗, char ∗, unsigned int)

4.30.3.7

c_parse_err_t

typedef const char∗(∗ MHAParser::c_parse_err_t) (void ∗, int)

4.30.4

4.30.4.1

Function Documentation

get_precision()

int MHAParser::get_precision ( )

4.30.4.2

commentate()

std::string MHAParser::commentate (
const std::string & s )

4.30.4.3

trim()

void MHAParser::trim (
std::string & s )

4.30.4.4

cfg_dump()

std::string MHAParser::cfg_dump (
base_t ∗ p,
const std::string & pref )

© 2005-2018 HörTech gGmbH, Oldenburg

4.30

MHAParser Namespace Reference

4.30.4.5

cfg_dump_short()

std::string MHAParser::cfg_dump_short (
base_t ∗ p,
const std::string & pref )

4.30.4.6

all_dump()

std::string MHAParser::all_dump (
base_t ∗ p,
const std::string & pref )

4.30.4.7

mon_dump()

std::string MHAParser::mon_dump (
base_t ∗ p,
const std::string & pref )

4.30.4.8

all_ids()

std::string MHAParser::all_ids (
base_t ∗ p,
const std::string & pref,
const std::string & id = "" )

4.30.4.9

strreplace()

void MHAParser::strreplace (
std::string & s,
const std::string & arg,
const std::string & rep )

string replace function
Parameters
s
arg
rep

target string
search pattern
replace pattern

© 2005-2018 HörTech gGmbH, Oldenburg

123

124

4.30.4.10

CONTENTS

envreplace()

void MHAParser::envreplace (
std::string & s )

4.31

MHAParser::StrCnv Namespace Reference

String converter namespace.

Functions
• int num_brackets (const std::string &s)
Return number of brackets at beginning and end of string.

• int bracket_balance (const std::string &s)
• void str2val (const std::string &, bool &)
Convert from string.

• void str2val (const std::string &, float &)
Convert from string.

• void str2val (const std::string &, mha_complex_t &)
Convert from string.

• void str2val (const std::string &, int &)
Convert from string.

• void str2val (const std::string &, keyword_list_t &)
Convert from string.

• void str2val (const std::string &, std::string &)
Convert from string.

• template
void str2val (const std::string &s, std::vector< arg_t > &val)
Converter for vector types.

• template<>
void str2val< mha_real_t > (const std::string &s, std::vector< mha_real_t > &v)
Converter for vector with Matlab-style expansion.

• template
void str2val (const std::string &s, std::vector< std::vector< arg_t > > &val)
Converter for matrix types.

• std::string val2str (const bool &)
Convert to string.

• std::string val2str (const float &)
Convert to string.

• std::string val2str (const mha_complex_t &)
Convert to string.

• std::string val2str (const int &)
© 2005-2018 HörTech gGmbH, Oldenburg

4.31

MHAParser::StrCnv Namespace Reference

125

Convert to string.

• std::string val2str (const keyword_list_t &)
Convert to string.

• std::string val2str (const std::string &)
Convert to string.

• std::string val2str (const std::vector< float > &)
Convert to string.

• std::string val2str (const std::vector< mha_complex_t > &)
Convert to string.

• std::string val2str (const std::vector< int > &)
Convert to string.

• std::string val2str (const std::vector< std::string > &)
Convert to string.

• std::string val2str (const std::vector< std::vector< float > > &)
Convert to string.

• std::string val2str (const std::vector< std::vector< mha_complex_t > > &)
Convert to string.

4.31.1

Detailed Description

String converter namespace.
The functions defined in this namespace manage the conversions from C++ variables to strings
and back. It was tried to keep a matlab compatible string format for vectors and vectors of
vectors.

4.31.2

4.31.2.1

Function Documentation

num_brackets()

int MHAParser::StrCnv::num_brackets (
const std::string & s )

Return number of brackets at beginning and end of string.
Parameters
s

String

© 2005-2018 HörTech gGmbH, Oldenburg

126

CONTENTS

Returns
Number of brackets, or -1 for empty string

4.31.2.2

bracket_balance()

int MHAParser::StrCnv::bracket_balance (
const std::string & s )

4.31.2.3

str2val() [1/8]

void MHAParser::StrCnv::str2val (
const std::string & s,
bool & v )

Convert from string.

4.31.2.4

str2val() [2/8]

void MHAParser::StrCnv::str2val (
const std::string & s,
float & v )

Convert from string.

4.31.2.5

str2val() [3/8]

void MHAParser::StrCnv::str2val (
const std::string & s,
mha_complex_t & v )

Convert from string.

4.31.2.6

str2val() [4/8]

void MHAParser::StrCnv::str2val (
const std::string & s,
int & v )

Convert from string.

© 2005-2018 HörTech gGmbH, Oldenburg

4.31

MHAParser::StrCnv Namespace Reference

4.31.2.7

str2val() [5/8]

void MHAParser::StrCnv::str2val (
const std::string & s,
MHAParser::keyword_list_t & v )

Convert from string.

4.31.2.8

str2val() [6/8]

void MHAParser::StrCnv::str2val (
const std::string & s,
std::string & v )

Convert from string.

4.31.2.9

str2val() [7/8]

template
void MHAParser::StrCnv::str2val (
const std::string & s,
std::vector< arg_t > & val )

Converter for vector types.

4.31.2.10

str2val< mha_real_t >()

template<>
void

MHAParser::StrCnv::str2val<

mha_real_t > (

const std::string & s,
std::vector<

mha_real_t > & v )

Converter for vector with Matlab-style expansion.

4.31.2.11

str2val() [8/8]

template
void MHAParser::StrCnv::str2val (
const std::string & s,
std::vector< std::vector< arg_t > > & val )

Converter for matrix types.

© 2005-2018 HörTech gGmbH, Oldenburg

127

128

4.31.2.12

CONTENTS

val2str() [1/12]

std::string MHAParser::StrCnv::val2str (
const bool & v )

Convert to string.

4.31.2.13

val2str() [2/12]

std::string MHAParser::StrCnv::val2str (
const float & v )

Convert to string.

4.31.2.14

val2str() [3/12]

std::string MHAParser::StrCnv::val2str (
const

mha_complex_t & v )

Convert to string.

4.31.2.15

val2str() [4/12]

std::string MHAParser::StrCnv::val2str (
const int & v )

Convert to string.

4.31.2.16

val2str() [5/12]

std::string MHAParser::StrCnv::val2str (
const

keyword_list_t & v )

Convert to string.

© 2005-2018 HörTech gGmbH, Oldenburg

4.31

MHAParser::StrCnv Namespace Reference

4.31.2.17

val2str() [6/12]

std::string MHAParser::StrCnv::val2str (
const std::string & v )

Convert to string.

4.31.2.18

val2str() [7/12]

std::string MHAParser::StrCnv::val2str (
const std::vector< float > & v )

Convert to string.

4.31.2.19

val2str() [8/12]

std::string MHAParser::StrCnv::val2str (
const std::vector<

mha_complex_t > & v )

Convert to string.

4.31.2.20

val2str() [9/12]

std::string MHAParser::StrCnv::val2str (
const std::vector< int > & v )

Convert to string.

4.31.2.21

val2str() [10/12]

std::string MHAParser::StrCnv::val2str (
const std::vector< std::string > & v )

Convert to string.

© 2005-2018 HörTech gGmbH, Oldenburg

129

130

4.31.2.22

CONTENTS

val2str() [11/12]

std::string MHAParser::StrCnv::val2str (
const std::vector< std::vector< float > > & v )

Convert to string.

4.31.2.23

val2str() [12/12]

std::string MHAParser::StrCnv::val2str (
const std::vector< std::vector<

mha_complex_t > > & v )

Convert to string.

4.32

MHAPlugin Namespace Reference

Namespace for openMHA plugin class templates and thread-safe runtime configurations.

Classes
• class cfg_chain_t
• class config_t
Template class for thread safe configuration.

• class plugin_t
The template class for C++ openMHA plugins.

4.32.1

Detailed Description

Namespace for openMHA plugin class templates and thread-safe runtime configurations.

4.33

MHAPlugin_Resampling Namespace Reference

Classes
• class resampling_if_t
• class resampling_t
© 2005-2018 HörTech gGmbH, Oldenburg

4.34

MHAPlugin_Split Namespace Reference

4.34

MHAPlugin_Split Namespace Reference

131

Classes
• class domain_handler_t
Handles domain-specific partial input and output signal.

• class dummy_threads_t
Dummy specification of a thread platform: This class implements everything in a single thread.

• class posix_threads_t
Posix threads specification of thread platform.

• class split_t
Implements split plugin.

• class splitted_part_t
The splitted_part_t ( p. 914) instance manages the plugin that performs processing on the
reduced set of channels.

• class thread_platform_t
Basic interface for encapsulating thread creation, thread priority setting, and synchronization
on any threading platform (i.e., pthreads or win32threads).

• class uni_processor_t
An interface to a class that sports a process method with no parameters and no return value.

Enumerations
• enum { INVALID_THREAD_PRIORITY = 999999999 }
Invalid thread priority.

4.34.1

Detailed Description

A namespace for the split plugin. Helps testability and documentation.

4.34.2

4.34.2.1

Enumeration Type Documentation

anonymous enum

anonymous enum

Invalid thread priority.
Enumerator
INVALID_THREAD_PRIORITY
© 2005-2018 HörTech gGmbH, Oldenburg

132

4.35

CONTENTS

MHASignal Namespace Reference

Namespace for audio signal handling and processing classes.

Classes
• class async_rmslevel_t
Class for asynchronous level metering.

• class delay_spec_t
• class delay_t
Class to realize a simple delay of waveform streams.

• class delay_wave_t
Delayline containing wave fragments.

• class doublebuffer_t
Double-buffering class.

• class fft_t
• class hilbert_fftw_t
• class hilbert_t
Hilbert transformation of a waveform segment.

• class loop_wavefragment_t
Copy a fixed waveform fragment to a series of waveform fragments of other size.

• class matrix_t
n-dimensional matrix with real or complex floating point values.

• class minphase_t
Minimal phase function.

• class quantizer_t
Simple simulation of fixpoint quantization.

• class ringbuffer_t
A ringbuffer class for time domain audio signal, which makes no assumptions with respect to
fragment size.

• class schroeder_t
Schroeder tone complex class.

• class spectrum_t
a signal processing class for spectral data (based on mha_spec_t ( p. 547))

• class stat_t
• class subsample_delay_t
implements subsample delay in spectral domain.

• class uint_vector_t
Vector of unsigned values, used for size and index description of n-dimensional matrixes.

• class waveform_t
signal processing class for waveform data (based on mha_wave_t ( p. 583))
© 2005-2018 HörTech gGmbH, Oldenburg

4.35

MHASignal Namespace Reference

133

Functions
• void for_each ( mha_wave_t ∗s, mha_real_t(∗fun)( mha_real_t))
Apply a function to each element of a mha_wave_t ( p. 583).

• mha_real_t lin2db ( mha_real_t x)
Conversion from linear scale to dB (no SPL reference)

• mha_real_t db2lin ( mha_real_t x)
Conversion from dB scale to linear (no SPL reference)

• mha_real_t pa2dbspl ( mha_real_t x)
Conversion from linear Pascal scale to dB SPL.

• mha_real_t pa22dbspl ( mha_real_t x, mha_real_t eps=1e-20f)
Conversion from squared Pascal scale to dB SPL.

• mha_real_t dbspl2pa ( mha_real_t x)
Conversion from dB SPL to linear Pascal scale.

• mha_real_t smp2sec ( mha_real_t n, mha_real_t srate)
conversion from samples to seconds

• mha_real_t sec2smp ( mha_real_t sec, mha_real_t srate)
conversion from seconds to samples

• mha_real_t bin2freq ( mha_real_t bin, unsigned fftlen, mha_real_t srate)
conversion from fft bin index to frequency

• mha_real_t freq2bin ( mha_real_t freq, unsigned fftlen, mha_real_t srate)
conversion from frequency to fft bin index

• mha_real_t smp2rad ( mha_real_t samples, unsigned bin, unsigned fftlen)
conversion from delay in samples to phase shift

• mha_real_t rad2smp ( mha_real_t phase_shift, unsigned bin, unsigned fftlen)
conversion from phase shift to delay in samples

• template
std::vector< elem_type > dupvec (std::vector< elem_type > vec, unsigned n)
Duplicate last vector element to match desired size.

• template
std::vector< elem_type > dupvec_chk (std::vector< elem_type > vec, unsigned n)
Duplicate last vector element to match desired size, check for dimension.

• void copy_channel ( mha_spec_t &self, const mha_spec_t &src, unsigned sch, unsigned dch)
Copy one channel of a source signal.

• void copy_channel ( mha_wave_t &self, const mha_wave_t &src, unsigned src_←channel, unsigned dest_channel)
Copy one channel of a source signal.

• mha_real_t rmslevel (const mha_spec_t &s, unsigned int channel, unsigned int fftlen)
Return RMS level of a spectrum channel.

• mha_real_t colored_intensity (const mha_spec_t &s, unsigned int channel, unsigned
int fftlen, mha_real_t sqfreq_response[ ])
Colored spectrum intensity.

• mha_real_t maxabs (const mha_spec_t &s, unsigned int channel)
Find maximal absolute value.

• mha_real_t rmslevel (const mha_wave_t &s, unsigned int channel)
© 2005-2018 HörTech gGmbH, Oldenburg

134

CONTENTS

Return RMS level of a waveform channel.

• mha_real_t maxabs (const mha_wave_t &s, unsigned int channel)
Find maximal absolute value.

• mha_real_t maxabs (const mha_wave_t &s)
Find maximal absolute value.

• mha_real_t max (const mha_wave_t &s)
Find maximal value.

• mha_real_t min (const mha_wave_t &s)
Find minimal value.

• mha_real_t sumsqr_channel (const mha_wave_t &s, unsigned int channel)
Calculate sum of squared values in one channel.

• mha_real_t sumsqr_frame (const mha_wave_t &s, unsigned int frame)
Calculate sum over all channels of squared values.

• void scale ( mha_spec_t ∗dest, const mha_wave_t ∗src)
• void limit ( mha_wave_t &s, const mha_real_t & min, const mha_real_t & max)
Limit the singal in the waveform buffer to the range [min, max].

• template
elem_type kth_smallest (elem_type array[ ], unsigned n, unsigned k)
Fast search for the kth smallest element of an array.

• template
elem_type median (elem_type array[ ], unsigned n)
Fast median search.

• template
elem_type mean (const std::vector< elem_type > &data, elem_type start_val)
Calculate average of elements in a vector.

• template
std::vector< elem_type > quantile (std::vector< elem_type > data, const std::vector<
elem_type > &p)
Calculate quantile of elements in a vector.

• void saveas_mat4 (const mha_spec_t &data, const std::string &varname, FILE ∗fh)
Save a openMHA spectrum as a variable in a Matlab4 file.

• void saveas_mat4 (const mha_wave_t &data, const std::string &varname, FILE ∗fh)
Save a openMHA waveform as a variable in a Matlab4 file.

• void saveas_mat4 (const std::vector< mha_real_t > &data, const std::string &varname,
FILE ∗fh)
Save a float vector as a variable in a Matlab4 file.

• void copy_permuted ( mha_wave_t ∗dest, const mha_wave_t ∗src)
Copy contents of a waveform to a permuted waveform.

Variables
• unsigned long int signal_counter = 0
Signal counter to produce signal ID strings.
© 2005-2018 HörTech gGmbH, Oldenburg

4.35

MHASignal Namespace Reference

4.35.1

135

Detailed Description

Namespace for audio signal handling and processing classes.

4.35.2

4.35.2.1

Function Documentation

scale()

void MHASignal::scale (
mha_spec_t ∗ dest,
const

4.35.2.2

mha_wave_t ∗ src )

limit()

void MHASignal::limit (
mha_wave_t & s,
const

mha_real_t & min,

const

mha_real_t & max )

Limit the singal in the waveform buffer to the range [min, max].
Parameters
s
min
max

4.35.2.3

The signal to limit. The signal in this wave buffer is modified.
lower limit
upper limit

kth_smallest()

template
elem_type MHASignal::kth_smallest (
elem_type array[ ],
unsigned n,
unsigned k )

Fast search for the kth smallest element of an array.
The order of elements is altered, but not completely sorted. Using the algorithm from N. Wirth,
published in "Algorithms + data structures = programs", Prentice-Hall, 1976

© 2005-2018 HörTech gGmbH, Oldenburg

136

CONTENTS

Parameters
array

Element array

Postcondition
The order of elements in the array is altered. array[k] then holds the result.
Parameters
n

number of elements in array

Precondition
n >= 1
Parameters
k

The k'th smalles element is returned: k = 0 returns the minimum, k = (n-1)/2 returns the
median, k=(n-1) returns the maximum

Precondition
k
elem_type MHASignal::median (
elem_type array[ ],
unsigned n ) [inline]

Fast median search.
The order of elements is altered, but not completely sorted.

© 2005-2018 HörTech gGmbH, Oldenburg

4.35

MHASignal Namespace Reference

137

Parameters
array

Element array

Postcondition
The order of elements in the array is altered. array[(n-1)/2] then holds the median.
Parameters
n

number of elements in array

Precondition
n >= 1

Returns
The median of the array elements

4.35.2.5

mean()

template
elem_type MHASignal::mean (
const std::vector< elem_type > & data,
elem_type start_val ) [inline]

Calculate average of elements in a vector.
Parameters
data

Input vector

start_val

Value for initialization of the return value before sum.

Returns
The average of the vector elements

© 2005-2018 HörTech gGmbH, Oldenburg

138

4.35.2.6

CONTENTS

quantile()

template
std::vector MHASignal::quantile (
std::vector< elem_type > data,
const std::vector< elem_type > & p ) [inline]

Calculate quantile of elements in a vector.
Parameters
data

Input vector

p

Vector of probability values.

Returns
Vector of quantiles of input data, one entry for each probability value.

4.35.2.7

saveas_mat4() [1/3]

void MHASignal::saveas_mat4 (
const

mha_spec_t & data,

const std::string & varname,
FILE ∗ fh )

Save a openMHA spectrum as a variable in a Matlab4 file.
Parameters
data

openMHA spectrum to be saved.

varname

Matlab variable name (Matlab4 limitations on maximal length are not checked).

fh

File handle to Matlab4 file.

4.35.2.8

saveas_mat4() [2/3]

void MHASignal::saveas_mat4 (
const

mha_wave_t & data,

const std::string & varname,
FILE ∗ fh )

Save a openMHA waveform as a variable in a Matlab4 file.

© 2005-2018 HörTech gGmbH, Oldenburg

4.35

MHASignal Namespace Reference

139

Parameters
data

openMHA waveform to be saved.

varname

Matlab variable name (Matlab4 limitations on maximal length are not checked).

fh

File handle to Matlab4 file.

4.35.2.9

saveas_mat4() [3/3]

void MHASignal::saveas_mat4 (
const std::vector<

mha_real_t > & data,

const std::string & varname,
FILE ∗ fh )

Save a float vector as a variable in a Matlab4 file.
Parameters
data
varname

Float vector to be saved.
Matlab variable name (Matlab4 limitations on maximal length are not checked).

fh

File handle to Matlab4 file.

4.35.2.10

copy_permuted()

void MHASignal::copy_permuted (
mha_wave_t ∗ dest,
const

mha_wave_t ∗ src )

Copy contents of a waveform to a permuted waveform.
Parameters
dest
src

Destination waveform
Source waveform

The total size of src and dest must be the same, num_frames and num_channels must be
exchanged in dest.

4.35.3

Variable Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

140

4.35.3.1

CONTENTS

signal_counter

unsigned long int MHASignal::signal_counter = 0

Signal counter to produce signal ID strings.

4.36

MHASndFile Namespace Reference

Classes
• class sf_t
• class sf_wave_t

4.37

MHATableLookup Namespace Reference

Namespace for table lookup classes.

Classes
• class linear_table_t
Class for interpolation with equidistant x values.

• class table_t
• class xy_table_t
Class for interpolation with non-equidistant x values.

4.37.1

Detailed Description

Namespace for table lookup classes.

4.38

MHAWindow Namespace Reference

Collection of Window types.
© 2005-2018 HörTech gGmbH, Oldenburg

4.38

MHAWindow Namespace Reference

Classes
• class bartlett_t
Bartlett window.

• class base_t
Common base for window types.

• class blackman_t
Blackman window.

• class fun_t
Generic window based on a generator function.

• class hamming_t
Hamming window.

• class hanning_t
von-Hann window

• class rect_t
Rectangular window.

• class user_t
User defined window.

Functions
• float rect (float)
Rectangular window function.

• float bartlett (float)
Bartlett window function.

• float hanning (float)
Hanning window function.

• float hamming (float)
Hamming window function.

• float blackman (float)
Blackman window function.

4.38.1

Detailed Description

Collection of Window types.

4.38.2

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

141

142

4.38.2.1

CONTENTS

rect()

float MHAWindow::rect (
float x )

Rectangular window function.

4.38.2.2

bartlett()

float MHAWindow::bartlett (
float x )

Bartlett window function.

4.38.2.3

hanning()

float MHAWindow::hanning (
float x )

Hanning window function.

4.38.2.4

hamming()

float MHAWindow::hamming (
float x )

Hamming window function.

4.38.2.5

blackman()

float MHAWindow::blackman (
float x )

Blackman window function.

4.39

multibandcompressor Namespace Reference

Classes
• class fftfb_plug_t
• class interface_t
• class plugin_signals_t
© 2005-2018 HörTech gGmbH, Oldenburg

4.40

noisePowProposedScale Namespace Reference

4.40

noisePowProposedScale Namespace Reference

143

Classes
• class interface_t
• class noisePowProposed

4.41

overlapadd Namespace Reference

Classes
• class overlapadd_if_t
• class overlapadd_t

4.42

PluginLoader Namespace Reference

Classes
• class config_file_splitter_t
• class fourway_processor_t
This abstract class defines the interface for classes that implement all types of signal domain
processing supported by the MHA: wave2wave, spec2spec, wave2spec, and spec2wave.

• class mhapluginloader_t
Functions
• const char ∗ mhastrdomain ( mha_domain_t)
• void mhaconfig_compare (const mhaconfig_t &req, const mhaconfig_t &avail, const
std::string &pref="")
Compare two mhaconfig_t ( p. 595) structures, and report differences as an error.

4.42.1

4.42.1.1

Function Documentation

mhastrdomain()

const char ∗ PluginLoader::mhastrdomain (
mha_domain_t d )

4.42.1.2

mhaconfig_compare()

void PluginLoader::mhaconfig_compare (
const

mhaconfig_t & req,

const

mhaconfig_t & avail,

const std::string & pref = "" )

Compare two mhaconfig_t (p. 595) structures, and report differences as an error.

© 2005-2018 HörTech gGmbH, Oldenburg

144

CONTENTS

Parameters
req

Expected mhaconfig_t (p. 595) structure

avail

Available mhaconfig_t (p. 595) structure

pref

Prefix for error messages

4.43

route Namespace Reference

Classes
• class interface_t
• class process_t

4.44

shadowfilter_begin Namespace Reference

Classes
• class cfg_t
• class shadowfilter_begin_t

4.45

shadowfilter_end Namespace Reference

Classes
• class cfg_t
• class shadowfilter_end_t

4.46

smoothgains_bridge Namespace Reference

Classes
• class overlapadd_if_t
• class smoothspec_wrap_t
© 2005-2018 HörTech gGmbH, Oldenburg

5 Class Documentation

5

145

Class Documentation

5.1

ac2wave_if_t Class Reference

Inheritance diagram for ac2wave_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< ac2wave_t >

MHAPlugin::plugin_t
< ac2wave_t >

ac2wave_if_t

Public Member Functions
•
•
•
•
•

ac2wave_if_t (const algo_comm_t &, const std::string &, const std::string &)
mha_wave_t ∗ process ( mha_spec_t ∗)
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)
void release ()

Private Member Functions
• void update ()
Private Attributes
•
•
•
•
•
•
•
•

MHAParser::string_t name
MHAParser::float_t gain_in
MHAParser::float_t gain_ac
MHAParser::int_t delay_in
MHAParser::int_t delay_ac
MHASignal::waveform_t ∗ zeros
bool prepared
MHAEvents::patchbay_t< ac2wave_if_t > patchbay

© 2005-2018 HörTech gGmbH, Oldenburg

146

CONTENTS

Additional Inherited Members
5.1.1

5.1.1.1

Constructor & Destructor Documentation

ac2wave_if_t()

ac2wave_if_t::ac2wave_if_t (
const

algo_comm_t & iac,

const std::string & ith,
const std::string & ial )

5.1.2

5.1.2.1

Member Function Documentation

process() [1/2]

mha_wave_t ∗ ac2wave_if_t::process (
mha_spec_t ∗

5.1.2.2

)

process() [2/2]

mha_wave_t ∗ ac2wave_if_t::process (
mha_wave_t ∗ s )

5.1.2.3

prepare()

void ac2wave_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< ac2wave_t > (p. 884).

5.1.2.4

release()

void ac2wave_if_t::release ( ) [virtual]

Reimplemented from MHAPlugin::plugin_t< ac2wave_t > (p. 885).

© 2005-2018 HörTech gGmbH, Oldenburg

5.1

ac2wave_if_t Class Reference

5.1.2.5

update()

void ac2wave_if_t::update ( ) [private]

5.1.3

5.1.3.1

Member Data Documentation

name

MHAParser::string_t ac2wave_if_t::name [private]

5.1.3.2

gain_in

MHAParser::float_t ac2wave_if_t::gain_in [private]

5.1.3.3

gain_ac

MHAParser::float_t ac2wave_if_t::gain_ac [private]

5.1.3.4

delay_in

MHAParser::int_t ac2wave_if_t::delay_in [private]

5.1.3.5

delay_ac

MHAParser::int_t ac2wave_if_t::delay_ac [private]

5.1.3.6

zeros

MHASignal::waveform_t∗ ac2wave_if_t::zeros [private]

© 2005-2018 HörTech gGmbH, Oldenburg

147

148

5.1.3.7

CONTENTS

prepared

bool ac2wave_if_t::prepared [private]

5.1.3.8

patchbay

MHAEvents::patchbay_t< ac2wave_if_t> ac2wave_if_t::patchbay [private]

The documentation for this class was generated from the following file:

• ac2wave.cpp

5.2

ac2wave_t Class Reference

Public Member Functions
• ac2wave_t (unsigned int frames_, unsigned int channels_, algo_comm_t ac_, std←::string name_, float gain_in_, float gain_ac_, unsigned int delay_in_, unsigned int delay←_ac_)
• mha_wave_t ∗ process ( mha_wave_t ∗)

Private Attributes
•
•
•
•
•
•
•
•
•

5.2.1

unsigned int frames
unsigned int channels
mha_wave_t w
algo_comm_t ac
std::string name
MHASignal::delay_wave_t delay_in
MHASignal::delay_wave_t delay_ac
mha_real_t gain_in
mha_real_t gain_ac

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.2

ac2wave_t Class Reference

5.2.1.1

ac2wave_t()

ac2wave_t::ac2wave_t (
unsigned int frames_,
unsigned int channels_,
algo_comm_t ac_,
std::string name_,
float gain_in_,
float gain_ac_,
unsigned int delay_in_,
unsigned int delay_ac_ )

5.2.2

5.2.2.1

Member Function Documentation

process()

mha_wave_t ∗ ac2wave_t::process (
mha_wave_t ∗ s )

5.2.3

5.2.3.1

Member Data Documentation

frames

unsigned int ac2wave_t::frames [private]

5.2.3.2

channels

unsigned int ac2wave_t::channels [private]

5.2.3.3

w

mha_wave_t ac2wave_t::w [private]

© 2005-2018 HörTech gGmbH, Oldenburg

149

150

5.2.3.4

CONTENTS

ac

algo_comm_t ac2wave_t::ac [private]

5.2.3.5

name

std::string ac2wave_t::name [private]

5.2.3.6

delay_in

MHASignal::delay_wave_t ac2wave_t::delay_in [private]

5.2.3.7

delay_ac

MHASignal::delay_wave_t ac2wave_t::delay_ac [private]

5.2.3.8

gain_in

mha_real_t ac2wave_t::gain_in [private]

5.2.3.9

gain_ac

mha_real_t ac2wave_t::gain_ac [private]

The documentation for this class was generated from the following file:

• ac2wave.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.3

acConcat_wave Class Reference

5.3

acConcat_wave Class Reference

151

Inheritance diagram for acConcat_wave:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< acConcat_wave_config >

MHAPlugin::plugin_t
< acConcat_wave_config >

acConcat_wave

Public Member Functions
• acConcat_wave ( algo_comm_t & ac, const std::string &chain_name, const std::string
&algo_name)
Constructs our plugin.

• ∼acConcat_wave ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
Checks for the most recent configuration and defers processing to it.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)

Public Attributes
•
•
•
•

MHAParser::int_t num_AC
MHAParser::string_t prefix_names_AC
MHAParser::vint_t samples_AC
MHAParser::string_t name_conAC

© 2005-2018 HörTech gGmbH, Oldenburg

152

CONTENTS

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< acConcat_wave > patchbay

Additional Inherited Members
5.3.1

5.3.1.1

Constructor & Destructor Documentation

acConcat_wave()

acConcat_wave::acConcat_wave (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.

5.3.1.2 ∼acConcat_wave()
acConcat_wave::∼acConcat_wave ( )

5.3.2

5.3.2.1

Member Function Documentation

process()

mha_wave_t ∗ acConcat_wave::process (
mha_wave_t ∗ signal )

Checks for the most recent configuration and defers processing to it.

5.3.2.2

prepare()

void acConcat_wave::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.

© 2005-2018 HörTech gGmbH, Oldenburg

5.3

acConcat_wave Class Reference

153

Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< acConcat_wave_config > (p. 884).

5.3.2.3

release()

void acConcat_wave::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< acConcat_wave_config > (p. 885).

5.3.2.4

update_cfg()

void acConcat_wave::update_cfg ( ) [private]

5.3.3

5.3.3.1

Member Data Documentation

num_AC

MHAParser::int_t acConcat_wave::num_AC

5.3.3.2

prefix_names_AC

MHAParser::string_t acConcat_wave::prefix_names_AC

5.3.3.3

samples_AC

MHAParser::vint_t acConcat_wave::samples_AC

© 2005-2018 HörTech gGmbH, Oldenburg

154

5.3.3.4

CONTENTS

name_conAC

MHAParser::string_t acConcat_wave::name_conAC

5.3.3.5

patchbay

MHAEvents::patchbay_t< acConcat_wave> acConcat_wave::patchbay [private]

The documentation for this class was generated from the following files:
• acConcat_wave.h
• acConcat_wave.cpp

5.4

acConcat_wave_config Class Reference

Public Member Functions
• acConcat_wave_config ( algo_comm_t & ac, const mhaconfig_t in_cfg, acConcat←_wave ∗_concat)
• ∼acConcat_wave_config ()
• mha_wave_t ∗ process ( mha_wave_t ∗)

Public Attributes
•
•
•
•
•

algo_comm_t & ac
std::vector< std::string > strNames_AC
std::vector< int > numSamples_AC
mha_wave_t vGCC
MHA_AC::waveform_t ∗ vGCC_con

5.4.1

5.4.1.1

Constructor & Destructor Documentation

acConcat_wave_config()

acConcat_wave_config::acConcat_wave_config (
algo_comm_t & ac,
const

mhaconfig_t in_cfg,

acConcat_wave ∗ _concat )

© 2005-2018 HörTech gGmbH, Oldenburg

5.4

acConcat_wave_config Class Reference

5.4.1.2 ∼acConcat_wave_config()
acConcat_wave_config::∼acConcat_wave_config ( )

5.4.2

5.4.2.1

Member Function Documentation

process()

mha_wave_t ∗ acConcat_wave_config::process (
mha_wave_t ∗ wave )

5.4.3

5.4.3.1

Member Data Documentation

ac

algo_comm_t& acConcat_wave_config::ac

5.4.3.2

strNames_AC

std::vector acConcat_wave_config::strNames_AC

5.4.3.3

numSamples_AC

std::vector acConcat_wave_config::numSamples_AC

5.4.3.4

vGCC

mha_wave_t acConcat_wave_config::vGCC

© 2005-2018 HörTech gGmbH, Oldenburg

155

156

5.4.3.5

CONTENTS

vGCC_con

MHA_AC::waveform_t∗ acConcat_wave_config::vGCC_con

The documentation for this class was generated from the following files:
• acConcat_wave.h
• acConcat_wave.cpp

5.5

acmon::ac_monitor_t Class Reference

A class for converting AC variables to Parser monitors of correct type.

Public Member Functions
• ac_monitor_t ( MHAParser::parser_t &parent, const std::string &name_,
comm_t ac, bool use_matrix)

algo_←-

Converts AC variable to parser monitor.

• void getvar ( algo_comm_t ac)
Update values of monitor.

Public Attributes
• std::string name
name of AC variable and parser monitor

• std::string dimstr
columns x rows

• MHAParser::vfloat_mon_t mon
Monitor used for real vectors.

• MHAParser::mfloat_mon_t mon_mat
Monitor used for real matrices.

• MHAParser::vcomplex_mon_t mon_complex
monitor used for complex vectors

• MHAParser::mcomplex_mon_t mon_mat_complex
monitor used for complex matrices

• MHAParser::parser_t & p_parser
parent parser to insert monitor into

Private Attributes
• bool use_mat
if true, use matrix monitor, else use vector monitor
© 2005-2018 HörTech gGmbH, Oldenburg

5.5

acmon::ac_monitor_t Class Reference

5.5.1

Detailed Description

A class for converting AC variables to Parser monitors of correct type.

5.5.2

Constructor & Destructor Documentation

5.5.2.1

ac_monitor_t()

acmon::ac_monitor_t::ac_monitor_t (
MHAParser::parser_t & parent,
const std::string & name_,
algo_comm_t ac,
bool use_matrix )

Converts AC variable to parser monitor.
Parameters
parent

The parser to insert a monitor into

name_
ac

The name of the AC variable and the monitor variable
Handle to algorithm communication space

use_matrix

Indicates if a matrix monitor type should be used.

5.5.3

5.5.3.1

Member Function Documentation

getvar()

void acmon::ac_monitor_t::getvar (
algo_comm_t ac )

Update values of monitor.
Parameters
ac

Handle to algorithm communication space

© 2005-2018 HörTech gGmbH, Oldenburg

157

158

5.5.4

5.5.4.1

CONTENTS

Member Data Documentation

name

std::string acmon::ac_monitor_t::name

name of AC variable and parser monitor

5.5.4.2

dimstr

std::string acmon::ac_monitor_t::dimstr

columns x rows

5.5.4.3

mon

MHAParser::vfloat_mon_t acmon::ac_monitor_t::mon

Monitor used for real vectors.

5.5.4.4

mon_mat

MHAParser::mfloat_mon_t acmon::ac_monitor_t::mon_mat

Monitor used for real matrices.

5.5.4.5

mon_complex

MHAParser::vcomplex_mon_t acmon::ac_monitor_t::mon_complex

monitor used for complex vectors

© 2005-2018 HörTech gGmbH, Oldenburg

5.6

acmon::acmon_t Class Reference

5.5.4.6

159

mon_mat_complex

MHAParser::mcomplex_mon_t acmon::ac_monitor_t::mon_mat_complex

monitor used for complex matrices

5.5.4.7

p_parser

MHAParser::parser_t& acmon::ac_monitor_t::p_parser

parent parser to insert monitor into

5.5.4.8

use_mat

bool acmon::ac_monitor_t::use_mat [private]

if true, use matrix monitor, else use vector monitor
The documentation for this class was generated from the following files:
• ac_monitor_type.hh
• ac_monitor_type.cpp

5.6

acmon::acmon_t Class Reference

Inheritance diagram for acmon::acmon_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< int >

MHAPlugin::plugin_t
< int >

acmon::acmon_t

© 2005-2018 HörTech gGmbH, Oldenburg

160

CONTENTS

Public Member Functions
•
•
•
•
•
•

acmon_t (const algo_comm_t &, const std::string &, const std::string &)
∼acmon_t ()
void prepare ( mhaconfig_t &)
void release ()
mha_spec_t ∗ process ( mha_spec_t ∗)
mha_wave_t ∗ process ( mha_wave_t ∗)

Private Member Functions
• void save_vars ()
• void update_recmode ()

Private Attributes
•
•
•
•
•
•
•
•
•
•
•

algo_comm_t ac
MHAParser::vstring_mon_t varlist
MHAParser::vstring_mon_t dimensions
MHAParser::kw_t dispmode
MHAParser::kw_t recmode
std::vector< ac_monitor_t ∗ > vars
MHAEvents::patchbay_t< acmon_t > patchbay
std::string chain
std::string algo
bool b_cont
bool b_snapshot

Additional Inherited Members

5.6.1

5.6.1.1

Constructor & Destructor Documentation

acmon_t()

acmon::acmon_t::acmon_t (
const

algo_comm_t & iac,

const std::string & ith,
const std::string & ial )

© 2005-2018 HörTech gGmbH, Oldenburg

5.6

acmon::acmon_t Class Reference

5.6.1.2 ∼acmon_t()
acmon::acmon_t::∼acmon_t (
void

5.6.2

5.6.2.1

)

Member Function Documentation

prepare()

void acmon::acmon_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< int > (p. 884).

5.6.2.2

release()

void acmon::acmon_t::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< int > (p. 885).

5.6.2.3

process() [1/2]

mha_spec_t ∗ acmon::acmon_t::process (
mha_spec_t ∗ s )

5.6.2.4

process() [2/2]

mha_wave_t ∗ acmon::acmon_t::process (
mha_wave_t ∗ s )

5.6.2.5

save_vars()

void acmon::acmon_t::save_vars ( ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

161

162

5.6.2.6

CONTENTS

update_recmode()

void acmon::acmon_t::update_recmode ( ) [private]

5.6.3

5.6.3.1

Member Data Documentation

ac

algo_comm_t acmon::acmon_t::ac [private]

5.6.3.2

varlist

MHAParser::vstring_mon_t acmon::acmon_t::varlist [private]

5.6.3.3

dimensions

MHAParser::vstring_mon_t acmon::acmon_t::dimensions [private]

5.6.3.4

dispmode

MHAParser::kw_t acmon::acmon_t::dispmode [private]

5.6.3.5

recmode

MHAParser::kw_t acmon::acmon_t::recmode [private]

5.6.3.6

vars

std::vector< ac_monitor_t∗> acmon::acmon_t::vars [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.6

acmon::acmon_t Class Reference

5.6.3.7

163

patchbay

MHAEvents::patchbay_t< acmon_t> acmon::acmon_t::patchbay [private]

5.6.3.8

chain

std::string acmon::acmon_t::chain [private]

5.6.3.9

algo

std::string acmon::acmon_t::algo [private]

5.6.3.10

b_cont

bool acmon::acmon_t::b_cont [private]

5.6.3.11

b_snapshot

bool acmon::acmon_t::b_snapshot [private]

The documentation for this class was generated from the following file:

• acmon.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

164

5.7

CONTENTS

acPooling_wave Class Reference

Inheritance diagram for acPooling_wave:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< acPooling_wave_config >

MHAPlugin::plugin_t
< acPooling_wave_config >

acPooling_wave

Public Member Functions
• acPooling_wave ( algo_comm_t & ac, const std::string &chain_name, const std::string
&algo_name)
Constructs our plugin.

• ∼acPooling_wave ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
Checks for the most recent configuration and defers processing to it.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)

Public Attributes
•
•
•
•
•
•

MHAParser::int_t numsamples
MHAParser::int_t pooling_wndlen
MHAParser::kw_t pooling_type
MHAParser::float_t upper_threshold
MHAParser::float_t lower_threshold
MHAParser::int_t neighbourhood
© 2005-2018 HörTech gGmbH, Oldenburg

5.7

acPooling_wave Class Reference
•
•
•
•
•

MHAParser::float_t alpha
MHAParser::string_t p_name
MHAParser::string_t pool_name
MHAParser::string_t max_pool_ind_name
MHAParser::string_t like_ratio_name

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< acPooling_wave > patchbay

Additional Inherited Members

5.7.1

5.7.1.1

Constructor & Destructor Documentation

acPooling_wave()

acPooling_wave::acPooling_wave (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.

5.7.1.2 ∼acPooling_wave()

acPooling_wave::∼acPooling_wave ( )

5.7.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

165

166

5.7.2.1

CONTENTS

process()

mha_wave_t ∗ acPooling_wave::process (
mha_wave_t ∗ signal )

Checks for the most recent configuration and defers processing to it.

5.7.2.2

prepare()

void acPooling_wave::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.

© 2005-2018 HörTech gGmbH, Oldenburg

5.7

acPooling_wave Class Reference

167

Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< acPooling_wave_config > (p. 884).

5.7.2.3

release()

void acPooling_wave::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< acPooling_wave_config > (p. 885).

5.7.2.4

update_cfg()

void acPooling_wave::update_cfg ( ) [private]

5.7.3

5.7.3.1

Member Data Documentation

numsamples

MHAParser::int_t acPooling_wave::numsamples

5.7.3.2

pooling_wndlen

MHAParser::int_t acPooling_wave::pooling_wndlen

5.7.3.3

pooling_type

MHAParser::kw_t acPooling_wave::pooling_type

© 2005-2018 HörTech gGmbH, Oldenburg

168

5.7.3.4

CONTENTS

upper_threshold

MHAParser::float_t acPooling_wave::upper_threshold

5.7.3.5

lower_threshold

MHAParser::float_t acPooling_wave::lower_threshold

5.7.3.6

neighbourhood

MHAParser::int_t acPooling_wave::neighbourhood

5.7.3.7

alpha

MHAParser::float_t acPooling_wave::alpha

5.7.3.8

p_name

MHAParser::string_t acPooling_wave::p_name

5.7.3.9

pool_name

MHAParser::string_t acPooling_wave::pool_name

5.7.3.10

max_pool_ind_name

MHAParser::string_t acPooling_wave::max_pool_ind_name

5.7.3.11

like_ratio_name

MHAParser::string_t acPooling_wave::like_ratio_name

© 2005-2018 HörTech gGmbH, Oldenburg

5.8

acPooling_wave_config Class Reference

5.7.3.12

169

patchbay

MHAEvents::patchbay_t< acPooling_wave> acPooling_wave::patchbay [private]

The documentation for this class was generated from the following files:

• acPooling_wave.h
• acPooling_wave.cpp

5.8

acPooling_wave_config Class Reference

Public Member Functions
•

acPooling_wave_config ( algo_comm_t & ac, const
Pooling_wave ∗_pooling)
• ∼acPooling_wave_config ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
• void insert ()

Public Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•

5.8.1

algo_comm_t & ac
std::string raw_p_name
MHA_AC::waveform_t p
MHA_AC::waveform_t p_max
MHA_AC::waveform_t like_ratio
mha_wave_t c
unsigned int pooling_ind
unsigned int pooling_option
unsigned int pooling_size
float up_thresh
float low_thresh
int neigh
float alpha
MHASignal::waveform_t pool

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

mhaconfig_t in_cfg,

ac←-

170

5.8.1.1

CONTENTS

acPooling_wave_config()

acPooling_wave_config::acPooling_wave_config (
algo_comm_t & ac,
const

mhaconfig_t in_cfg,

acPooling_wave ∗ _pooling )

5.8.1.2 ∼acPooling_wave_config()
acPooling_wave_config::∼acPooling_wave_config ( )

5.8.2

5.8.2.1

Member Function Documentation

process()

mha_wave_t ∗ acPooling_wave_config::process (
mha_wave_t ∗ wave )

5.8.2.2

insert()

void acPooling_wave_config::insert ( )

5.8.3

5.8.3.1

Member Data Documentation

ac

algo_comm_t& acPooling_wave_config::ac

5.8.3.2

raw_p_name

std::string acPooling_wave_config::raw_p_name

© 2005-2018 HörTech gGmbH, Oldenburg

5.8

acPooling_wave_config Class Reference

5.8.3.3

p

MHA_AC::waveform_t acPooling_wave_config::p

5.8.3.4

p_max

MHA_AC::waveform_t acPooling_wave_config::p_max

5.8.3.5

like_ratio

MHA_AC::waveform_t acPooling_wave_config::like_ratio

5.8.3.6

c

mha_wave_t acPooling_wave_config::c

5.8.3.7

pooling_ind

unsigned int acPooling_wave_config::pooling_ind

5.8.3.8

pooling_option

unsigned int acPooling_wave_config::pooling_option

5.8.3.9

pooling_size

unsigned int acPooling_wave_config::pooling_size

5.8.3.10

up_thresh

float acPooling_wave_config::up_thresh

© 2005-2018 HörTech gGmbH, Oldenburg

171

172

5.8.3.11

CONTENTS

low_thresh

float acPooling_wave_config::low_thresh

5.8.3.12

neigh

int acPooling_wave_config::neigh

5.8.3.13

alpha

float acPooling_wave_config::alpha

5.8.3.14

pool

MHASignal::waveform_t acPooling_wave_config::pool

The documentation for this class was generated from the following files:
• acPooling_wave.h
• acPooling_wave.cpp

5.9

acsave::acsave_t Class Reference

Inheritance diagram for acsave::acsave_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< cfg_t >

MHAPlugin::plugin_t
< cfg_t >

acsave::acsave_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.9

acsave::acsave_t Class Reference

173

Public Member Functions
•
•
•
•
•
•
•

acsave_t (const algo_comm_t &, const std::string &, const std::string &)
void prepare ( mhaconfig_t &)
void release ()
mha_spec_t ∗ process ( mha_spec_t ∗)
mha_wave_t ∗ process ( mha_wave_t ∗)
void event_start_recording ()
void event_stop_and_flush ()

Private Types
• typedef std::vector< save_var_t ∗ > varlist_t

Private Member Functions
• void process ()

Private Attributes
•
•
•
•
•
•
•
•
•
•
•

MHAParser::bool_t bflush
MHAParser::kw_t fileformat
MHAParser::string_t fname
MHAParser::float_t reclen
MHAParser::vstring_t variables
varlist_t varlist
std::string chain
std::string algo
bool b_prepared
bool b_flushed
MHAEvents::patchbay_t< acsave_t > patchbay

Additional Inherited Members
5.9.1

5.9.1.1

Member Typedef Documentation

varlist_t

typedef std::vector< save_var_t∗>

© 2005-2018 HörTech gGmbH, Oldenburg

acsave::acsave_t::varlist_t [private]

174

5.9.2

5.9.2.1

CONTENTS

Constructor & Destructor Documentation

acsave_t()

acsave::acsave_t::acsave_t (
const

algo_comm_t & iac,

const std::string & ith,
const std::string & ial )

5.9.3

5.9.3.1

Member Function Documentation

prepare()

void acsave::acsave_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 884).

5.9.3.2

release()

void acsave::acsave_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< cfg_t > (p. 885).

5.9.3.3

process() [1/3]

mha_spec_t ∗ acsave::acsave_t::process (
mha_spec_t ∗ s )

5.9.3.4

process() [2/3]

mha_wave_t ∗ acsave::acsave_t::process (
mha_wave_t ∗ s )

© 2005-2018 HörTech gGmbH, Oldenburg

5.9

acsave::acsave_t Class Reference

5.9.3.5

event_start_recording()

void acsave::acsave_t::event_start_recording ( )

5.9.3.6

event_stop_and_flush()

void acsave::acsave_t::event_stop_and_flush ( )

5.9.3.7

process() [3/3]

void acsave::acsave_t::process ( ) [private]

5.9.4

5.9.4.1

Member Data Documentation

bflush

MHAParser::bool_t acsave::acsave_t::bflush [private]

5.9.4.2

fileformat

MHAParser::kw_t acsave::acsave_t::fileformat [private]

5.9.4.3

fname

MHAParser::string_t acsave::acsave_t::fname [private]

5.9.4.4

reclen

MHAParser::float_t acsave::acsave_t::reclen [private]

© 2005-2018 HörTech gGmbH, Oldenburg

175

176

5.9.4.5

CONTENTS

variables

MHAParser::vstring_t acsave::acsave_t::variables [private]

5.9.4.6

varlist

varlist_t acsave::acsave_t::varlist [private]

5.9.4.7

chain

std::string acsave::acsave_t::chain [private]

5.9.4.8

algo

std::string acsave::acsave_t::algo [private]

5.9.4.9

b_prepared

bool acsave::acsave_t::b_prepared [private]

5.9.4.10

b_flushed

bool acsave::acsave_t::b_flushed [private]

5.9.4.11

patchbay

MHAEvents::patchbay_t< acsave_t> acsave::acsave_t::patchbay [private]

The documentation for this class was generated from the following file:
• acsave.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.10

acsave::cfg_t Class Reference

5.10

acsave::cfg_t Class Reference

177

Public Member Functions
• cfg_t (const algo_comm_t &iac, unsigned int imax_frames, std::vector< std::string >
&var_names)
• ∼cfg_t ()
• void store_frame ()
• void flush_data (const std::string &, unsigned int)
Private Attributes
•
•
•
•
•

algo_comm_t ac
unsigned int nvars
save_var_t ∗∗ varlist
unsigned int rec_frames
unsigned int max_frames

5.10.1

5.10.1.1

Constructor & Destructor Documentation

cfg_t()

cfg_t::cfg_t (
const

algo_comm_t & iac,

unsigned int imax_frames,
std::vector< std::string > & var_names )

5.10.1.2 ∼cfg_t()
cfg_t::∼cfg_t ( )

5.10.2

5.10.2.1

Member Function Documentation

store_frame()

void cfg_t::store_frame ( )

This function is called in the processing thread.
5.10.2.2

flush_data()

void cfg_t::flush_data (
const std::string & filename,
unsigned int fmt )

This function is called in the configuration thread.

© 2005-2018 HörTech gGmbH, Oldenburg

178

CONTENTS

Parameters
filename

Output file name

fmt

Output file format

5.10.3

5.10.3.1

Member Data Documentation

ac

algo_comm_t acsave::cfg_t::ac [private]

5.10.3.2

nvars

unsigned int acsave::cfg_t::nvars [private]

5.10.3.3

varlist

save_var_t∗∗ acsave::cfg_t::varlist [private]

5.10.3.4

rec_frames

unsigned int acsave::cfg_t::rec_frames [private]

5.10.3.5

max_frames

unsigned int acsave::cfg_t::max_frames [private]

The documentation for this class was generated from the following file:
• acsave.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.11

acsave::mat4head_t Struct Reference

5.11

acsave::mat4head_t Struct Reference

179

Public Attributes
•
•
•
•
•

int32_t
int32_t
int32_t
int32_t
int32_t

5.11.1

5.11.1.1

t
rows
cols
imag
namelen

Member Data Documentation

t

int32_t acsave::mat4head_t::t

5.11.1.2

rows

int32_t acsave::mat4head_t::rows

5.11.1.3

cols

int32_t acsave::mat4head_t::cols

5.11.1.4

imag

int32_t acsave::mat4head_t::imag

5.11.1.5

namelen

int32_t acsave::mat4head_t::namelen

The documentation for this struct was generated from the following file:
• acsave.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

180

5.12

CONTENTS

acsave::save_var_t Class Reference

Public Member Functions
•
•
•
•
•
•

save_var_t (const std::string &, int, const algo_comm_t &)
∼save_var_t ()
void store_frame ()
void save_txt (FILE ∗, unsigned int)
void save_mat4 (FILE ∗, unsigned int)
void save_m (FILE ∗, unsigned int)

Public Attributes
• double ∗ data

Private Attributes
•
•
•
•
•
•
•

std::string name
unsigned int nframes
unsigned int ndim
unsigned int maxframe
algo_comm_t ac
unsigned int framecnt
bool b_complex

5.12.1

5.12.1.1

Constructor & Destructor Documentation

save_var_t()

acsave::save_var_t::save_var_t (
const std::string & nm,
int n,
const

algo_comm_t & iac )

5.12.1.2 ∼save_var_t()
acsave::save_var_t::∼save_var_t ( )

© 2005-2018 HörTech gGmbH, Oldenburg

5.12

acsave::save_var_t Class Reference

5.12.2

5.12.2.1

Member Function Documentation

store_frame()

void acsave::save_var_t::store_frame ( )

5.12.2.2

save_txt()

void acsave::save_var_t::save_txt (
FILE ∗ fh,
unsigned int writeframes )

5.12.2.3

save_mat4()

void acsave::save_var_t::save_mat4 (
FILE ∗ fh,
unsigned int writeframes )

5.12.2.4

save_m()

void acsave::save_var_t::save_m (
FILE ∗ fh,
unsigned int writeframes )

5.12.3

5.12.3.1

Member Data Documentation

data

double∗ acsave::save_var_t::data

5.12.3.2

name

std::string acsave::save_var_t::name [private]

© 2005-2018 HörTech gGmbH, Oldenburg

181

182

5.12.3.3

CONTENTS

nframes

unsigned int acsave::save_var_t::nframes [private]

5.12.3.4

ndim

unsigned int acsave::save_var_t::ndim [private]

5.12.3.5

maxframe

unsigned int acsave::save_var_t::maxframe [private]

5.12.3.6

ac

algo_comm_t acsave::save_var_t::ac [private]

5.12.3.7

framecnt

unsigned int acsave::save_var_t::framecnt [private]

5.12.3.8

b_complex

bool acsave::save_var_t::b_complex [private]

The documentation for this class was generated from the following file:

• acsave.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.13

acSteer Class Reference

5.13

acSteer Class Reference

183

Inheritance diagram for acSteer:

MHAParser::base_t

MHAPlugin::config_t
< acSteer_config >

MHAParser::parser_t

MHAPlugin::plugin_t
< acSteer_config >

acSteer

Public Member Functions
• acSteer ( algo_comm_t & ac, const std::string &chain_name, const std::string &algo←_name)
Constructs our plugin.

• ∼acSteer ()
• mha_spec_t ∗ process ( mha_spec_t ∗)
Thos method is a NOOP.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)

Public Attributes
•
•
•
•
•

MHAParser::string_t steerFile
MHAParser::string_t acSteerName1
MHAParser::string_t acSteerName2
MHAParser::int_t nsteerchan
MHAParser::int_t nrefmic

© 2005-2018 HörTech gGmbH, Oldenburg

184

CONTENTS

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< acSteer > patchbay

Additional Inherited Members
5.13.1

5.13.1.1

Constructor & Destructor Documentation

acSteer()

acSteer::acSteer (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.

5.13.1.2 ∼acSteer()
acSteer::∼acSteer ( )

5.13.2

5.13.2.1

Member Function Documentation

process()

mha_spec_t ∗ acSteer::process (
mha_spec_t ∗ signal )

Thos method is a NOOP.

5.13.2.2

prepare()

void acSteer::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.

© 2005-2018 HörTech gGmbH, Oldenburg

5.13

acSteer Class Reference

185

Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< acSteer_config > (p. 884).

5.13.2.3

release()

void acSteer::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< acSteer_config > (p. 885).

5.13.2.4

update_cfg()

void acSteer::update_cfg ( ) [private]

5.13.3

5.13.3.1

Member Data Documentation

steerFile

MHAParser::string_t acSteer::steerFile

5.13.3.2

acSteerName1

MHAParser::string_t acSteer::acSteerName1

5.13.3.3

acSteerName2

MHAParser::string_t acSteer::acSteerName2

© 2005-2018 HörTech gGmbH, Oldenburg

186

5.13.3.4

CONTENTS

nsteerchan

MHAParser::int_t acSteer::nsteerchan

5.13.3.5

nrefmic

MHAParser::int_t acSteer::nrefmic

5.13.3.6

patchbay

MHAEvents::patchbay_t< acSteer> acSteer::patchbay [private]

The documentation for this class was generated from the following files:
• acSteer.h
• acSteer.cpp

5.14

acSteer_config Class Reference

Public Member Functions
• acSteer_config ( algo_comm_t &ac, const mhaconfig_t in_cfg, acSteer ∗ acSteer)
• ∼acSteer_config ()
• void insert ()

Public Attributes
•
•
•
•
•
•
•

5.14.1

unsigned int nchan
unsigned int nfreq
unsigned int nsteerchan
unsigned int nrefmic
unsigned int nangle
MHA_AC::spectrum_t specSteer1
MHA_AC::spectrum_t specSteer2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.14

acSteer_config Class Reference

5.14.1.1

acSteer_config()

acSteer_config::acSteer_config (
algo_comm_t & ac,
const

mhaconfig_t in_cfg,

acSteer ∗ acSteer )

5.14.1.2 ∼acSteer_config()
acSteer_config::∼acSteer_config ( )

5.14.2

5.14.2.1

Member Function Documentation

insert()

void acSteer_config::insert ( )

5.14.3

5.14.3.1

Member Data Documentation

nchan

unsigned int acSteer_config::nchan

5.14.3.2

nfreq

unsigned int acSteer_config::nfreq

5.14.3.3

nsteerchan

unsigned int acSteer_config::nsteerchan

© 2005-2018 HörTech gGmbH, Oldenburg

187

188

5.14.3.4

CONTENTS

nrefmic

unsigned int acSteer_config::nrefmic

5.14.3.5

nangle

unsigned int acSteer_config::nangle

5.14.3.6

specSteer1

MHA_AC::spectrum_t acSteer_config::specSteer1

5.14.3.7

specSteer2

MHA_AC::spectrum_t acSteer_config::specSteer2

The documentation for this class was generated from the following files:
• acSteer.h
• acSteer.cpp

5.15

acTransform_wave Class Reference

Inheritance diagram for acTransform_wave:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< acTransform_wave_config >

MHAPlugin::plugin_t
< acTransform_wave_config >

acTransform_wave

© 2005-2018 HörTech gGmbH, Oldenburg

5.15

acTransform_wave Class Reference

189

Public Member Functions
• acTransform_wave ( algo_comm_t & ac, const std::string &chain_name, const std←::string &algo_name)
Constructs our plugin.

• ∼acTransform_wave ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
Checks for the most recent configuration and defers processing to it.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)

Public Attributes
•
•
•
•
•
•
•

MHAParser::string_t ang_name
MHAParser::string_t raw_p_name
MHAParser::string_t raw_p_max_name
MHAParser::string_t rotated_p_name
MHAParser::string_t rotated_p_max_name
MHAParser::int_t numsamples
MHAParser::bool_t to_from

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< acTransform_wave > patchbay

Additional Inherited Members
5.15.1

5.15.1.1

Constructor & Destructor Documentation

acTransform_wave()

acTransform_wave::acTransform_wave (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.

© 2005-2018 HörTech gGmbH, Oldenburg

190

CONTENTS

5.15.1.2 ∼acTransform_wave()
acTransform_wave::∼acTransform_wave ( )

5.15.2

5.15.2.1

Member Function Documentation

process()

mha_wave_t ∗ acTransform_wave::process (
mha_wave_t ∗ signal )

Checks for the most recent configuration and defers processing to it.

5.15.2.2

prepare()

void acTransform_wave::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.
Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< acTransform_wave_config > (p. 884).

5.15.2.3

release()

void acTransform_wave::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< acTransform_wave_config > (p. 885).

© 2005-2018 HörTech gGmbH, Oldenburg

5.15

acTransform_wave Class Reference

5.15.2.4

update_cfg()

void acTransform_wave::update_cfg ( ) [private]

5.15.3

5.15.3.1

Member Data Documentation

ang_name

MHAParser::string_t acTransform_wave::ang_name

5.15.3.2

raw_p_name

MHAParser::string_t acTransform_wave::raw_p_name

5.15.3.3

raw_p_max_name

MHAParser::string_t acTransform_wave::raw_p_max_name

5.15.3.4

rotated_p_name

MHAParser::string_t acTransform_wave::rotated_p_name

5.15.3.5

rotated_p_max_name

MHAParser::string_t acTransform_wave::rotated_p_max_name

5.15.3.6

numsamples

MHAParser::int_t acTransform_wave::numsamples

© 2005-2018 HörTech gGmbH, Oldenburg

191

192

5.15.3.7

CONTENTS

to_from

MHAParser::bool_t acTransform_wave::to_from

5.15.3.8

patchbay

MHAEvents::patchbay_t< acTransform_wave> acTransform_wave::patchbay [private]

The documentation for this class was generated from the following files:
• acTransform_wave.h
• acTransform_wave.cpp

5.16

acTransform_wave_config Class Reference

Public Member Functions
• acTransform_wave_config ( algo_comm_t & ac, const mhaconfig_t in_cfg, ac←Transform_wave ∗_transform)
• ∼acTransform_wave_config ()
• mha_wave_t ∗ process ( mha_wave_t ∗)

Public Attributes
•
•
•
•
•
•
•
•
•

5.16.1

algo_comm_t & ac
std::string ang_name
std::string raw_p_name
std::string raw_p_max_name
MHA_AC::waveform_t rotated_p
MHA_AC::int_t rotated_i
unsigned int offset
unsigned int resolution
unsigned int to_from

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.16

acTransform_wave_config Class Reference

5.16.1.1

acTransform_wave_config()

acTransform_wave_config::acTransform_wave_config (
algo_comm_t & ac,
const

mhaconfig_t in_cfg,

acTransform_wave ∗ _transform )

5.16.1.2 ∼acTransform_wave_config()
acTransform_wave_config::∼acTransform_wave_config ( )

5.16.2

5.16.2.1

Member Function Documentation

process()

mha_wave_t ∗ acTransform_wave_config::process (
mha_wave_t ∗ wave )

5.16.3

5.16.3.1

Member Data Documentation

ac

algo_comm_t& acTransform_wave_config::ac

5.16.3.2

ang_name

std::string acTransform_wave_config::ang_name

5.16.3.3

raw_p_name

std::string acTransform_wave_config::raw_p_name

© 2005-2018 HörTech gGmbH, Oldenburg

193

194

5.16.3.4

CONTENTS

raw_p_max_name

std::string acTransform_wave_config::raw_p_max_name

5.16.3.5

rotated_p

MHA_AC::waveform_t acTransform_wave_config::rotated_p

5.16.3.6

rotated_i

MHA_AC::int_t acTransform_wave_config::rotated_i

5.16.3.7

offset

unsigned int acTransform_wave_config::offset

5.16.3.8

resolution

unsigned int acTransform_wave_config::resolution

5.16.3.9

to_from

unsigned int acTransform_wave_config::to_from

The documentation for this class was generated from the following files:
• acTransform_wave.h
• acTransform_wave.cpp

5.17

ADM::ADM< F > Class Template Reference

Adaptive differential microphone, working for speech frequency range.
© 2005-2018 HörTech gGmbH, Oldenburg

5.17

ADM::ADM< F > Class Template Reference

195

Public Member Functions
• ADM (F fs, F dist, unsigned lp_order, const F ∗lp_alphas, unsigned decomb_order, const
F ∗decomb_alphas, F tau_beta=F(50e-3), F mu_beta=F(1e-4))
Create Adaptive Differential Microphone.

• F process (const F &front, const F &back, const F &external_beta=F(-1))
ADM ( p. 194) processes one frame.

• F beta () const

Private Attributes
•
•
•
•
•
•
•
•
•
•

Delay< F > m_delay_front
Delay< F > m_delay_back
Linearphase_FIR< F > m_lp_bf
Linearphase_FIR< F > m_lp_result
Linearphase_FIR< F > m_decomb
F m_beta
F m_mu_beta
F m_powerfilter_coeff
F m_powerfilter_norm
F m_powerfilter_state

5.17.1

Detailed Description

template
class ADM::ADM< F >
Adaptive differential microphone, working for speech frequency range.

5.17.2

5.17.2.1

Constructor & Destructor Documentation

ADM()

template
ADM::ADM< F >::

ADM (

F fs,
F dist,
unsigned lp_order,
const F ∗ lp_alphas,
unsigned decomb_order,
const F ∗ decomb_alphas,
F tau_beta = F(50e-3),
F mu_beta = F(1e-4) )

Create Adaptive Differential Microphone.

© 2005-2018 HörTech gGmbH, Oldenburg

196

CONTENTS

Parameters
fs

Sampling rate / Hz

dist

Distance between physical microphones / m

lp_order

Filter order of FIR lowpass filter used for adaptation

lp_alphas

Pointer to array of alpha coefficients for the lowpass filter used for
adaptation. Since this class uses linear phase FIR filters only, only the
first half (order/2 + 1) of the coefficients will be read (coefficients for
linear-phase FIR filters are symmetric).

decomb_order

Filter order of FIR compensation filter (compensates for comb filter
characteristic)

decomb_alphas

Pointer to array of alpha coefficients for the compensation filter used to
compensate for the comb filter characteristic. Since this class uses linear
phase FIR filters only, only the first half (order/2 + 1)of the coefficients
will be read (coefficients for linear-phase FIR filters are symmetric).

tau_beta

Time constant of the lowpass filter used for averaging the power of the
output signal
adaption speed

mu_beta

5.17.3

Member Function Documentation

5.17.3.1

process()

template
F

ADM::ADM< F >::process (
const F & front,
const F & back,
const F & external_beta = F(-1) ) [inline]

ADM (p. 194) processes one frame.
Parameters
front
back

The current front input signal sample
The current rear input signal sample

external_beta

If >= 0, this is used as the "beta" parameter for direction to filter out. Else,
the beta parameter is adapted to filtered out a direction so that best
reduction of signal intensity from the back hemisphere is achieved.

Returns
The computed output sample

© 2005-2018 HörTech gGmbH, Oldenburg

5.17

ADM::ADM< F > Class Template Reference

5.17.3.2

beta()

template
F

ADM::ADM< F >::beta ( ) const [inline]

5.17.4

5.17.4.1

Member Data Documentation

m_delay_front

template
Delay

5.17.4.2

ADM::ADM< F >::m_delay_front [private]

m_delay_back

template
Delay

5.17.4.3

ADM::ADM< F >::m_delay_back [private]

m_lp_bf

template
Linearphase_FIR

5.17.4.4

ADM::ADM< F >::m_lp_bf [private]

m_lp_result

template
Linearphase_FIR

5.17.4.5

ADM::ADM< F >::m_lp_result [private]

m_decomb

template
Linearphase_FIR

ADM::ADM< F >::m_decomb [private]

© 2005-2018 HörTech gGmbH, Oldenburg

197

198

5.17.4.6

CONTENTS

m_beta

template
F

ADM::ADM< F >::m_beta [private]

5.17.4.7

m_mu_beta

template
F

ADM::ADM< F >::m_mu_beta [private]

5.17.4.8

m_powerfilter_coeff

template
F

ADM::ADM< F >::m_powerfilter_coeff [private]

5.17.4.9

m_powerfilter_norm

template
F

ADM::ADM< F >::m_powerfilter_norm [private]

5.17.4.10

m_powerfilter_state

template
F

ADM::ADM< F >::m_powerfilter_state [private]

The documentation for this class was generated from the following file:
• adm.hh

5.18

ADM::Delay< F > Class Template Reference

A delay-line class which can also do subsample-delays for a limited frequency range below
fs/4.
© 2005-2018 HörTech gGmbH, Oldenburg

5.18

ADM::Delay< F > Class Template Reference

199

Public Member Functions
• Delay (F samples, F f_design, F fs)
Create a signal delay object.

• ∼Delay ()
• F process (const F &in_sample)
Apply delay to signal.

Private Attributes
• unsigned m_fullsamples
Integer part of delay.

• F m_coeff
coefficient for 1st order IIR lowpass filter which does the subsample delay

• F m_norm
normalization for the IIR subsample delay filter

• F ∗ m_state
Ringbuffer: Delayline.

• unsigned m_now_in
current position for inserting new samples into m_state ringbuffer

5.18.1

Detailed Description

template
class ADM::Delay< F >
A delay-line class which can also do subsample-delays for a limited frequency range below
fs/4.

5.18.2

5.18.2.1

Constructor & Destructor Documentation

Delay()

template
ADM::Delay< F >::

Delay (

F samples,
F f_design,
F fs )

Create a signal delay object.

© 2005-2018 HörTech gGmbH, Oldenburg

200

CONTENTS

Parameters
samples

number of samples to delay (may be non-integer)

f_design

subsampledelay is exact for this frequency

fs

sampling frequency

5.18.2.2 ∼Delay()
template
ADM::Delay< F >::∼ Delay ( )

5.18.3

Member Function Documentation

5.18.3.1

process()

template
F

ADM::Delay< F >::process (
const F & in_sample ) [inline]

Apply delay to signal.
Parameters
in_sample

The current input signal sample

Returns
The computed output sample

5.18.4

Member Data Documentation

5.18.4.1

m_fullsamples

template
unsigned

ADM::Delay< F >::m_fullsamples [private]

Integer part of delay.

© 2005-2018 HörTech gGmbH, Oldenburg

5.19

ADM::Linearphase_FIR< F > Class Template Reference

5.18.4.2

201

m_coeff

template
F

ADM::Delay< F >::m_coeff [private]

coefficient for 1st order IIR lowpass filter which does the subsample delay

5.18.4.3

m_norm

template
F

ADM::Delay< F >::m_norm [private]

normalization for the IIR subsample delay filter

5.18.4.4

m_state

template
ADM::Delay< F >::m_state [private]

F∗

Ringbuffer: Delayline.

5.18.4.5

m_now_in

template
unsigned

ADM::Delay< F >::m_now_in [private]

current position for inserting new samples into m_state ringbuffer
The documentation for this class was generated from the following file:

• adm.hh

5.19

ADM::Linearphase_FIR< F > Class Template Reference

An efficient linear-phase fir filter implementation.
© 2005-2018 HörTech gGmbH, Oldenburg

202

CONTENTS

Public Member Functions
• Linearphase_FIR (unsigned order, const F ∗alphas)
Create linear-phase FIR filter.

• ∼Linearphase_FIR ()
• F process (const F &in_sample)
Filter one sample with this linear-phase FIR filter.

Private Attributes
• unsigned m_order
The filter order of this linear-phase FIR filter.

• F ∗ m_alphas
FIR filter coefficients.

• F ∗ m_output
Ringbuffer for building future output.

• unsigned m_now
current start of ringbuffer

5.19.1

Detailed Description

template
class ADM::Linearphase_FIR< F >
An efficient linear-phase fir filter implementation.

5.19.2

Constructor & Destructor Documentation

5.19.2.1

Linearphase_FIR()

template
ADM::Linearphase_FIR< F >::

Linearphase_FIR (

unsigned order,
const F ∗ alphas )

Create linear-phase FIR filter.
Parameters
order
alphas

filter order of this FIR filter. restriction: must be even.
pointer to Array of alpha coefficients. Since this class is for linear phase FIR filters
only, only (order / 2 + 1) coefficients will be read. (Coefficients for linear-phase FIR
filters are symmetric.)

© 2005-2018 HörTech gGmbH, Oldenburg

5.19

ADM::Linearphase_FIR< F > Class Template Reference

203

5.19.2.2 ∼Linearphase_FIR()
template
ADM::Linearphase_FIR< F >::∼ Linearphase_FIR ( )

5.19.3

Member Function Documentation

5.19.3.1

process()

template
ADM::Linearphase_FIR< F >::process (

F

const F & in_sample ) [inline]

Filter one sample with this linear-phase FIR filter.
Parameters
in_sample

the current input sample

Returns
the computed output sample

5.19.4

Member Data Documentation

5.19.4.1

m_order

template
unsigned

ADM::Linearphase_FIR< F >::m_order [private]

The filter order of this linear-phase FIR filter.

5.19.4.2

m_alphas

template
F∗

ADM::Linearphase_FIR< F >::m_alphas [private]

FIR filter coefficients.
Only m_order / 2 + 1 coefficients need to be stored since coefficients of linear-phase FIR filters
are symmetric
© 2005-2018 HörTech gGmbH, Oldenburg

204

5.19.4.3

CONTENTS

m_output

template
ADM::Linearphase_FIR< F >::m_output [private]

F∗

Ringbuffer for building future output.

5.19.4.4

m_now

template
unsigned

ADM::Linearphase_FIR< F >::m_now [private]

current start of ringbuffer
The documentation for this class was generated from the following file:
• adm.hh

5.20

adm_if_t Class Reference

Inheritance diagram for adm_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< adm_rtconfig_t >

MHAPlugin::plugin_t
< adm_rtconfig_t >

adm_if_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.20

adm_if_t Class Reference

205

Public Member Functions
• adm_if_t (const algo_comm_t & ac, const std::string &thread_name, const std::string
&algo_name)
• mha_wave_t ∗ process ( mha_wave_t ∗in)
• virtual void prepare ( mhaconfig_t &)
• virtual void release ()

Private Member Functions
• void update ()
• bool is_prepared ()

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

MHASignal::waveform_t ∗ out
MHAParser::vint_t front_channels
MHAParser::vint_t rear_channels
MHAParser::vfloat_t distances
MHAParser::int_t lp_order
MHAParser::int_t decomb_order
MHAParser::int_t bypass
MHAParser::float_t beta
MHAParser::vfloat_t mu_beta
MHAParser::vfloat_t tau_beta
MHAParser::vfloat_mon_t coeff_lp
MHAParser::vfloat_mon_t coeff_decomb
unsigned input_channels
mha_real_t srate
MHAEvents::patchbay_t< adm_if_t > patchbay

Additional Inherited Members
5.20.1

5.20.1.1

Constructor & Destructor Documentation

adm_if_t()

adm_if_t::adm_if_t (
const

algo_comm_t & ac,

const std::string & thread_name,
const std::string & algo_name )

© 2005-2018 HörTech gGmbH, Oldenburg

206

5.20.2

5.20.2.1

CONTENTS

Member Function Documentation

process()

mha_wave_t ∗ adm_if_t::process (
mha_wave_t ∗ in )

5.20.2.2

prepare()

void adm_if_t::prepare (
mhaconfig_t & cfg ) [virtual]

Implements MHAPlugin::plugin_t< adm_rtconfig_t > (p. 884).

5.20.2.3

release()

void adm_if_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< adm_rtconfig_t > (p. 885).

5.20.2.4

update()

void adm_if_t::update ( ) [private]

5.20.2.5

is_prepared()

bool adm_if_t::is_prepared ( ) [inline], [private]

5.20.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.20

adm_if_t Class Reference

5.20.3.1

out

MHASignal::waveform_t∗ adm_if_t::out [private]

5.20.3.2

front_channels

MHAParser::vint_t adm_if_t::front_channels [private]

5.20.3.3

rear_channels

MHAParser::vint_t adm_if_t::rear_channels [private]

5.20.3.4

distances

MHAParser::vfloat_t adm_if_t::distances [private]

5.20.3.5

lp_order

MHAParser::int_t adm_if_t::lp_order [private]

5.20.3.6

decomb_order

MHAParser::int_t adm_if_t::decomb_order [private]

5.20.3.7

bypass

MHAParser::int_t adm_if_t::bypass [private]

5.20.3.8

beta

MHAParser::float_t adm_if_t::beta [private]

© 2005-2018 HörTech gGmbH, Oldenburg

207

208

5.20.3.9

CONTENTS

mu_beta

MHAParser::vfloat_t adm_if_t::mu_beta [private]

5.20.3.10

tau_beta

MHAParser::vfloat_t adm_if_t::tau_beta [private]

5.20.3.11

coeff_lp

MHAParser::vfloat_mon_t adm_if_t::coeff_lp [private]

5.20.3.12

coeff_decomb

MHAParser::vfloat_mon_t adm_if_t::coeff_decomb [private]

5.20.3.13

input_channels

unsigned adm_if_t::input_channels [private]

5.20.3.14

srate

mha_real_t adm_if_t::srate [private]

5.20.3.15

patchbay

MHAEvents::patchbay_t< adm_if_t> adm_if_t::patchbay [private]

The documentation for this class was generated from the following file:
• adm.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.21

adm_rtconfig_t Class Reference

5.21

adm_rtconfig_t Class Reference

209

Public Types
• typedef ADM::ADM< mha_real_t > adm_t

Public Member Functions
• adm_rtconfig_t (unsigned nchannels_in, unsigned nchannels_out, const std::vector<
int > & front_channels, const std::vector< int > & rear_channels, const mha_real_t
fs, const std::vector< mha_real_t > &distances, const int lp_order, const int decomb←_order, const std::vector< mha_real_t > &tau_beta, const std::vector< mha_real_t >
&mu_beta)
Construct new ADMs.

• virtual ∼adm_rtconfig_t ()
• size_t num_adms () const
• adm_t & adm (unsigned index)
Returns adm object number index.

• int front_channel (unsigned index) const
Returns index of front channel for adm number index.

• int rear_channel (unsigned index) const
Returns index of rear channel for adm number index.

Private Member Functions
• void check_index (unsigned index) const
Index checking for all internal arrays.

Private Attributes
• std::vector< int > front_channels
Indices of channels containing the signals from the front microphones.

• std::vector< int > rear_channels
Indices of channels containing the signals from the rear microphones.

• MHASignal::waveform_t ∗ lp_coeffs
Lowpass filter coefficients.

• std::vector< MHASignal::waveform_t ∗ > decomb_coeffs
Decomb-Filter coefficients.

• std::vector< adm_t ∗ > adms
ADMs.

5.21.1

Member Typedef Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

210

5.21.1.1

adm_t

typedef

5.21.2

5.21.2.1

CONTENTS

ADM::ADM< mha_real_t>

adm_rtconfig_t::adm_t

Constructor & Destructor Documentation

adm_rtconfig_t()

adm_rtconfig_t::adm_rtconfig_t (
unsigned nchannels_in,
unsigned nchannels_out,
const std::vector< int > & front_channels,
const std::vector< int > & rear_channels,
const

mha_real_t fs,

const std::vector<

mha_real_t > & distances,

const int lp_order,
const int decomb_order,
const std::vector<

mha_real_t > & tau_beta,

const std::vector<

mha_real_t > & mu_beta )

Construct new ADMs.
Used when configuration changes.
Parameters
nchannels_in

Number of input channels

nchannels_out

Number of output channels

front_channels

Parser's front_channels setting

rear_channels

Parser's front_channels setting

fs

Sampling rate / Hz

distances

Distances between microphones / m

lp_order

Filter order of FIR lowpass filter for adaptation

decomb_order

Filter order of FIR compensation filter (compensates for comb filter
characteristic)

tau_beta

Time constants of the lowpass filter used for averaging the power of the
output signal used for adaptation
Adaptation step sizes

mu_beta

5.21.2.2 ∼adm_rtconfig_t()
adm_rtconfig_t::∼adm_rtconfig_t ( ) [virtual]

© 2005-2018 HörTech gGmbH, Oldenburg

5.21

adm_rtconfig_t Class Reference

5.21.3

5.21.3.1

Member Function Documentation

check_index()

void adm_rtconfig_t::check_index (
unsigned index ) const [inline], [private]

Index checking for all internal arrays.
Exceptions
MHA_Error ( p. 522)

5.21.3.2

if index out of range.

num_adms()

size_t adm_rtconfig_t::num_adms ( ) const [inline]

5.21.3.3

adm()

adm_t& adm_rtconfig_t::adm (
unsigned index ) [inline]

Returns adm object number index.

5.21.3.4

front_channel()

int adm_rtconfig_t::front_channel (
unsigned index ) const [inline]

Returns index of front channel for adm number index.

5.21.3.5

rear_channel()

int adm_rtconfig_t::rear_channel (
unsigned index ) const [inline]

Returns index of rear channel for adm number index.
© 2005-2018 HörTech gGmbH, Oldenburg

211

212

5.21.4

5.21.4.1

CONTENTS

Member Data Documentation

front_channels

std::vector adm_rtconfig_t::front_channels [private]

Indices of channels containing the signals from the front microphones.

5.21.4.2

rear_channels

std::vector adm_rtconfig_t::rear_channels [private]

Indices of channels containing the signals from the rear microphones.

5.21.4.3

lp_coeffs

MHASignal::waveform_t∗ adm_rtconfig_t::lp_coeffs [private]

Lowpass filter coefficients.

5.21.4.4

decomb_coeffs

std::vector< MHASignal::waveform_t∗> adm_rtconfig_t::decomb_coeffs [private]

Decomb-Filter coefficients.

5.21.4.5

adms

std::vector< adm_t ∗> adm_rtconfig_t::adms [private]

ADMs.
The documentation for this class was generated from the following file:
• adm.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.22

algo_comm_t Struct Reference

5.22

algo_comm_t Struct Reference

213

A reference handle for algorithm communication variables.

Public Attributes
• void ∗ handle
AC variable control handle.

• int(∗ insert_var )(void ∗, const char ∗, comm_var_t)
Register an AC variable.

• int(∗ insert_var_int )(void ∗, const char ∗, int ∗)
Register an int as an AC variable.

• int(∗ insert_var_float )(void ∗, const char ∗, float ∗)
Register a float as an AC variable.

• int(∗ remove_var )(void ∗, const char ∗)
Remove an AC variable.

• int(∗ remove_ref )(void ∗, void ∗)
Remove all AC variable which refer to address.

• int(∗ is_var )(void ∗, const char ∗)
Test if an AC variable exists.

• int(∗ get_var )(void ∗, const char ∗, comm_var_t ∗)
Get the variable handle of an AC variable.

• int(∗ get_var_int )(void ∗, const char ∗, int ∗)
Get the value of an int AC variable.

• int(∗ get_var_float )(void ∗, const char ∗, float ∗)
Get the value of a float AC variable.

• int(∗ get_entries )(void ∗, char ∗, unsigned int)
Return a space separated list of all variable names.

• const char ∗(∗ get_error )(int)
Convert AC error codes into human readable error messages.

5.22.1

Detailed Description

A reference handle for algorithm communication variables.
This structure contains a coontrol handle and a set of function pointers for sharing variables
within one processing chain. See also section Communication between algorithms (p. 28).

5.22.2

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

214

5.22.2.1

CONTENTS

handle

algo_comm_t::handle

AC variable control handle.

5.22.2.2

insert_var

algo_comm_t::insert_var

Register an AC variable.
This function can register a variable to be shared within one chain. If a variable of this name
exists it will be overwritten.
Parameters
h
n

AC handle
name of variable. May not be empty. Must not contain space character. The name is
copied, therefore it is allowed that the char array pointed to gets invalid after return.

v

variable handle of type comm_var_t (p. 271)

Returns
Error code or zero on success

5.22.2.3

insert_var_int

algo_comm_t::insert_var_int

Register an int as an AC variable.
This function can register an int variable to be shared with other algorithms. It behaves similar
to ac.insert_var.
Parameters
h
n
v

AC handle
name of variable
pointer on the variable

© 2005-2018 HörTech gGmbH, Oldenburg

5.22

algo_comm_t Struct Reference

215

Returns
Error code or zero on success

5.22.2.4

insert_var_float

algo_comm_t::insert_var_float

Register a float as an AC variable.
This function can register a float variable to be shared with other algorithms. It behaves similar
to ac.insert_var.
Parameters
h
n
v

AC handle
name of variable
pointer on the variable

Returns
Error code or zero on success

5.22.2.5

remove_var

algo_comm_t::remove_var

Remove an AC variable.
Remove (unregister) an AC variable. After calling this function, the variable is not available to
ac.is_var or ac.get_var. The data pointer is not affected.
Parameters
h
n

AC handle
name of variable to be removed

Returns
Error code or zero on success

© 2005-2018 HörTech gGmbH, Oldenburg

216

5.22.2.6

CONTENTS

remove_ref

algo_comm_t::remove_ref

Remove all AC variable which refer to address.
This function removes all AC variables whos data field points to the given address.
Parameters
h
p

AC handle
address which should not be referred to any more

Returns
Error code or zero on success

5.22.2.7

is_var

algo_comm_t::is_var

Test if an AC variable exists.
This function tests if an AC variable of a given name exists. Use ac.get_var to get information
about the variables type and dimension.
Parameters
h
n

AC handle
name of variable

Returns
1 if the variable exists, 0 otherwise

5.22.2.8

get_var

algo_comm_t::get_var

Get the variable handle of an AC variable.
This function returns the variable handle comm_var_t (p. 271) of a variable of the given name.
If no variable of that name exists, an error code is returned.

© 2005-2018 HörTech gGmbH, Oldenburg

5.22

algo_comm_t Struct Reference

217

Parameters
h
n
v

AC handle
name of variable
pointer to a AC variable object

Returns
Error code or zero on success

5.22.2.9

get_var_int

algo_comm_t::get_var_int

Get the value of an int AC variable.
This function returns the value of an int AC variable of the given name. If no variable exists, the
variable type is mismatching or more than one entry is registered, a corresponding error code
is returned. This is a special version of ac.get_var.
Parameters
h
n
v

AC handle
name of variable
pointer on an int variable to store the result

Returns
Error code or zero on success

5.22.2.10

get_var_float

algo_comm_t::get_var_float

Get the value of a float AC variable.
This function returns the value of a float AC variable of the given name. If no variable exists, the
variable type is mismatching or more than one entry is registered, a corresponding error code
is returned. This is a special version of ac.get_var.

© 2005-2018 HörTech gGmbH, Oldenburg

218

CONTENTS

Parameters
h
n
v

AC handle
name of variable
pointer on a float variable to store the result

Returns
Error code or zero on success

5.22.2.11

get_entries

algo_comm_t::get_entries

Return a space separated list of all variable names.
This function returns the names of all registered variables, separated by a single space.
Parameters
h

AC handle

Return values
ret

Character buffer for return value

Parameters
len

length of character buffer

Returns
Error code or zero on success. -1: invalid ac handle. -3: not enough room in character
buffer to store all variable names.

5.22.2.12

get_error

algo_comm_t::get_error

Convert AC error codes into human readable error messages.

© 2005-2018 HörTech gGmbH, Oldenburg

5.23

altplugs_t Class Reference

219

Parameters
Error code

e

Returns
Error message
The documentation for this struct was generated from the following files:
• mha.h
• mha_algo_comm.cpp

5.23

altplugs_t Class Reference

Inheritance diagram for altplugs_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< MHAWindow::fun_t >

MHAPlugin::plugin_t
< MHAWindow::fun_t >

altplugs_t

Public Member Functions
•
•
•
•
•
•
•
•
•

altplugs_t ( algo_comm_t iac, const char ∗chain, const char ∗algo)
void prepare ( mhaconfig_t &)
void release ()
void process ( mha_wave_t ∗, mha_wave_t ∗∗)
void process ( mha_spec_t ∗, mha_wave_t ∗∗)
void process ( mha_wave_t ∗, mha_spec_t ∗∗)
void process ( mha_spec_t ∗, mha_spec_t ∗∗)
virtual std::string parse (const std::string &arg)
virtual void parse (const char ∗a1, char ∗a2, unsigned int a3)

© 2005-2018 HörTech gGmbH, Oldenburg

220

CONTENTS

Private Member Functions
•
•
•
•
•
•
•

void
void
void
void
void
void
void

event_set_plugs ()
event_add_plug ()
event_delete_plug ()
event_select_plug ()
update_selector_list ()
update_ramplen ()
proc_ramp ( mha_wave_t ∗s)

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

MHAParser::bool_t use_own_ac
MHAParser::vstring_t parser_plugs
MHAParser::string_t add_plug
MHAParser::string_t delete_plug
MHAParser::float_t ramplen
MHAParser::kw_t select_plug
MHAParser::parser_t current
MHAParser::vstring_mon_t nondefault_labels
std::vector< mhaplug_cfg_t ∗ > plugs
mhaplug_cfg_t ∗ selected_plug
MHAEvents::patchbay_t< altplugs_t > patchbay
MHASignal::waveform_t ∗ fallback_wave
MHASignal::spectrum_t ∗ fallback_spec
mhaconfig_t cfin
mhaconfig_t cfout
bool prepared
bool added_via_plugs
unsigned int ramp_counter
unsigned int ramp_len

Additional Inherited Members
5.23.1

5.23.1.1

Constructor & Destructor Documentation

altplugs_t()

altplugs_t::altplugs_t (
algo_comm_t iac,
const char ∗ chain,
const char ∗ algo )
© 2005-2018 HörTech gGmbH, Oldenburg

5.23

altplugs_t Class Reference

5.23.2

5.23.2.1

221

Member Function Documentation

prepare()

void altplugs_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< MHAWindow::fun_t > (p. 884).

5.23.2.2

release()

void altplugs_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< MHAWindow::fun_t > (p. 885).

5.23.2.3

process() [1/4]

void altplugs_t::process (
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut )

5.23.2.4

process() [2/4]

void altplugs_t::process (
mha_spec_t ∗ sIn,
mha_wave_t ∗∗ sOut )

5.23.2.5

process() [3/4]

void altplugs_t::process (
mha_wave_t ∗ sIn,
mha_spec_t ∗∗ sOut )

© 2005-2018 HörTech gGmbH, Oldenburg

222

5.23.2.6

CONTENTS

process() [4/4]

void altplugs_t::process (
mha_spec_t ∗ sIn,
mha_spec_t ∗∗ sOut )

5.23.2.7

parse() [1/2]

std::string altplugs_t::parse (
const std::string & arg ) [virtual]

Reimplemented from MHAParser::base_t (p. 767).

5.23.2.8

parse() [2/2]

virtual void altplugs_t::parse (
const char ∗ a1,
char ∗ a2,
unsigned int a3 ) [inline], [virtual]

Reimplemented from MHAParser::base_t (p. 768).

5.23.2.9

event_set_plugs()

void altplugs_t::event_set_plugs ( ) [private]

5.23.2.10

event_add_plug()

void altplugs_t::event_add_plug ( ) [private]

5.23.2.11

event_delete_plug()

void altplugs_t::event_delete_plug ( ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.23

altplugs_t Class Reference

5.23.2.12

event_select_plug()

void altplugs_t::event_select_plug ( ) [private]

5.23.2.13

update_selector_list()

void altplugs_t::update_selector_list ( ) [private]

5.23.2.14

update_ramplen()

void altplugs_t::update_ramplen ( ) [private]

5.23.2.15

proc_ramp()

void altplugs_t::proc_ramp (
mha_wave_t ∗ s ) [private]

5.23.3

5.23.3.1

Member Data Documentation

use_own_ac

MHAParser::bool_t altplugs_t::use_own_ac [private]

5.23.3.2

parser_plugs

MHAParser::vstring_t altplugs_t::parser_plugs [private]

5.23.3.3

add_plug

MHAParser::string_t altplugs_t::add_plug [private]

© 2005-2018 HörTech gGmbH, Oldenburg

223

224

5.23.3.4

CONTENTS

delete_plug

MHAParser::string_t altplugs_t::delete_plug [private]

5.23.3.5

ramplen

MHAParser::float_t altplugs_t::ramplen [private]

5.23.3.6

select_plug

MHAParser::kw_t altplugs_t::select_plug [private]

5.23.3.7

current

MHAParser::parser_t altplugs_t::current [private]

5.23.3.8

nondefault_labels

MHAParser::vstring_mon_t altplugs_t::nondefault_labels [private]

5.23.3.9

plugs

std::vector< mhaplug_cfg_t∗> altplugs_t::plugs [private]

5.23.3.10

selected_plug

mhaplug_cfg_t∗ altplugs_t::selected_plug [private]

5.23.3.11

patchbay

MHAEvents::patchbay_t< altplugs_t> altplugs_t::patchbay [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.23

altplugs_t Class Reference

5.23.3.12

fallback_wave

MHASignal::waveform_t∗ altplugs_t::fallback_wave [private]

5.23.3.13

fallback_spec

MHASignal::spectrum_t∗ altplugs_t::fallback_spec [private]

5.23.3.14

cfin

mhaconfig_t altplugs_t::cfin [private]

5.23.3.15

cfout

mhaconfig_t altplugs_t::cfout [private]

5.23.3.16

prepared

bool altplugs_t::prepared [private]

5.23.3.17

added_via_plugs

bool altplugs_t::added_via_plugs [private]

5.23.3.18

ramp_counter

unsigned int altplugs_t::ramp_counter [private]

5.23.3.19

ramp_len

unsigned int altplugs_t::ramp_len [private]

The documentation for this class was generated from the following file:
• altplugs.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

225

226

5.24

CONTENTS

analysepath_t Class Reference

Public Member Functions
• analysepath_t (unsigned int nchannels_in, unsigned int outer_fragsize, unsigned int
inner_fragsize, int priority, MHAProc_wave2wave_t inner_proc_wave2wave, MH←AProc_wave2spec_t inner_proc_wave2spec, void ∗ilibdata, algo_comm_t outer_ac,
const MHA_AC::acspace2matrix_t &acspace_template, mha_domain_t inner_out←_domain, unsigned int fifo_len_blocks)
• virtual ∼analysepath_t ()
• void rt_process ( mha_wave_t ∗)
• virtual int svc ()

Private Attributes
• MHAProc_wave2wave_t inner_process_wave2wave
• MHAProc_wave2spec_t inner_process_wave2spec
• MHASignal::waveform_t inner_input
• void ∗ libdata
• mha_fifo_t< mha_real_t > wave_fifo
• mha_fifo_t< MHA_AC::acspace2matrix_t > ac_fifo
• MHA_AC::acspace2matrix_t inner_ac_copy
• MHA_AC::acspace2matrix_t outer_ac_copy
• algo_comm_t outer_ac
• mha_domain_t inner_out_domain
• MHA_Error inner_error
• bool has_inner_error
• bool flag_terminate_inner_thread
• int input_to_process
• pthread_mutex_t ProcessMutex
• pthread_attr_t attr
• struct sched_param priority
• int scheduler
• pthread_t thread
• pthread_cond_t cond_to_process

5.24.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.24

analysepath_t Class Reference

5.24.1.1

227

analysepath_t()

analysepath_t::analysepath_t (
unsigned int nchannels_in,
unsigned int outer_fragsize,
unsigned int inner_fragsize,
int priority,
MHAProc_wave2wave_t inner_proc_wave2wave,
MHAProc_wave2spec_t inner_proc_wave2spec,
void ∗ ilibdata,
algo_comm_t outer_ac,
const

MHA_AC::acspace2matrix_t & acspace_template,

mha_domain_t inner_out_domain,
unsigned int fifo_len_blocks )

5.24.1.2 ∼analysepath_t()
analysepath_t::∼analysepath_t ( ) [virtual]

5.24.2

5.24.2.1

Member Function Documentation

rt_process()

void analysepath_t::rt_process (
mha_wave_t ∗ outer_input )

5.24.2.2

svc()

int analysepath_t::svc ( ) [virtual]

5.24.3

5.24.3.1

Member Data Documentation

inner_process_wave2wave

MHAProc_wave2wave_t analysepath_t::inner_process_wave2wave [private]

© 2005-2018 HörTech gGmbH, Oldenburg

228

5.24.3.2

CONTENTS

inner_process_wave2spec

MHAProc_wave2spec_t analysepath_t::inner_process_wave2spec [private]

5.24.3.3

inner_input

MHASignal::waveform_t analysepath_t::inner_input [private]

5.24.3.4

libdata

void∗ analysepath_t::libdata [private]

5.24.3.5

wave_fifo

mha_fifo_t< mha_real_t> analysepath_t::wave_fifo [private]

5.24.3.6

ac_fifo

mha_fifo_t< MHA_AC::acspace2matrix_t> analysepath_t::ac_fifo [private]

5.24.3.7

inner_ac_copy

MHA_AC::acspace2matrix_t analysepath_t::inner_ac_copy [private]

5.24.3.8

outer_ac_copy

MHA_AC::acspace2matrix_t analysepath_t::outer_ac_copy [private]

5.24.3.9

outer_ac

algo_comm_t analysepath_t::outer_ac [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.24

analysepath_t Class Reference

5.24.3.10

inner_out_domain

mha_domain_t analysepath_t::inner_out_domain [private]

5.24.3.11

inner_error

MHA_Error analysepath_t::inner_error [private]

5.24.3.12

has_inner_error

bool analysepath_t::has_inner_error [private]

5.24.3.13

flag_terminate_inner_thread

bool analysepath_t::flag_terminate_inner_thread [private]

5.24.3.14

input_to_process

int analysepath_t::input_to_process [private]

5.24.3.15

ProcessMutex

pthread_mutex_t analysepath_t::ProcessMutex [private]

5.24.3.16

attr

pthread_attr_t analysepath_t::attr [private]

5.24.3.17

priority

struct sched_param analysepath_t::priority [private]

© 2005-2018 HörTech gGmbH, Oldenburg

229

230

5.24.3.18

CONTENTS

scheduler

int analysepath_t::scheduler [private]

5.24.3.19

thread

pthread_t analysepath_t::thread [private]

5.24.3.20

cond_to_process

pthread_cond_t analysepath_t::cond_to_process [private]

The documentation for this class was generated from the following file:
• analysispath.cpp

5.25

analysispath_if_t Class Reference

Inheritance diagram for analysispath_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< analysepath_t >

MHAPlugin::plugin_t
< analysepath_t >

analysispath_if_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.25

analysispath_if_t Class Reference

Public Member Functions
•
•
•
•
•

analysispath_if_t ( algo_comm_t, std::string, std::string)
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)
void release ()
∼analysispath_if_t ()

Private Member Functions
• void loadlib ()

Private Attributes
•
•
•
•
•
•
•
•
•
•

MHAEvents::patchbay_t< analysispath_if_t > patchbay
MHAParser::string_t libname
MHAParser::int_t fragsize
MHAParser::int_t fifolen
MHAParser::int_t priority
MHAParser::vstring_t vars
plug_t ∗ plug
std::string chain
std::string algo
MHA_AC::acspace2matrix_t ∗ acspace_template

Additional Inherited Members
5.25.1

5.25.1.1

Constructor & Destructor Documentation

analysispath_if_t()

analysispath_if_t::analysispath_if_t (
algo_comm_t iac,
std::string th,
std::string al )

5.25.1.2 ∼analysispath_if_t()
analysispath_if_t::∼analysispath_if_t ( )

© 2005-2018 HörTech gGmbH, Oldenburg

231

232

5.25.2

5.25.2.1

CONTENTS

Member Function Documentation

process()

mha_wave_t ∗ analysispath_if_t::process (
mha_wave_t ∗ s )

5.25.2.2

prepare()

void analysispath_if_t::prepare (
mhaconfig_t & conf ) [virtual]

Implements MHAPlugin::plugin_t< analysepath_t > (p. 884).

5.25.2.3

release()

void analysispath_if_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< analysepath_t > (p. 885).

5.25.2.4

loadlib()

void analysispath_if_t::loadlib ( ) [private]

5.25.3

5.25.3.1

Member Data Documentation

patchbay

MHAEvents::patchbay_t<

analysispath_if_t > analysispath_if_t::patchbay [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.25

analysispath_if_t Class Reference

5.25.3.2

libname

MHAParser::string_t analysispath_if_t::libname [private]

5.25.3.3

fragsize

MHAParser::int_t analysispath_if_t::fragsize [private]

5.25.3.4

fifolen

MHAParser::int_t analysispath_if_t::fifolen [private]

5.25.3.5

priority

MHAParser::int_t analysispath_if_t::priority [private]

5.25.3.6

vars

MHAParser::vstring_t analysispath_if_t::vars [private]

5.25.3.7

plug

plug_t∗ analysispath_if_t::plug [private]

5.25.3.8

chain

std::string analysispath_if_t::chain [private]

5.25.3.9

algo

std::string analysispath_if_t::algo [private]

© 2005-2018 HörTech gGmbH, Oldenburg

233

234

5.25.3.10

CONTENTS

acspace_template

MHA_AC::acspace2matrix_t∗ analysispath_if_t::acspace_template [private]

The documentation for this class was generated from the following file:
• analysispath.cpp

5.26

AuditoryProfile::fmap_t Class Reference

A class to store frequency dependent data (e.g., HTL and UCL).
Inherits map< mha_real_t, mha_real_t >.

Public Member Functions
• std::vector< mha_real_t > get_frequencies () const
Return configured frequencies.

• std::vector< mha_real_t > get_values () const
Return stored values corresponding to the frequencies.

• bool isempty () const

5.26.1

Detailed Description

A class to store frequency dependent data (e.g., HTL and UCL).

5.26.2

5.26.2.1

Member Function Documentation

get_frequencies()

std::vector<

mha_real_t > AuditoryProfile::fmap_t::get_frequencies ( ) const

Return configured frequencies.

5.26.2.2

get_values()

std::vector<

mha_real_t > AuditoryProfile::fmap_t::get_values ( ) const

Return stored values corresponding to the frequencies.

© 2005-2018 HörTech gGmbH, Oldenburg

5.27

AuditoryProfile::parser_t Class Reference

5.26.2.3

235

isempty()

bool AuditoryProfile::fmap_t::isempty ( ) const [inline]

The documentation for this class was generated from the following files:
• auditory_profile.h
• auditory_profile.cpp

5.27

AuditoryProfile::parser_t Class Reference

Class to make the auditory profile accessible through the parser interface.
Inheritance diagram for AuditoryProfile::parser_t:

MHAParser::base_t

MHAParser::parser_t

AuditoryProfile::parser_t

Classes
• class ear_t
• class fmap_t

Public Member Functions
• parser_t ()
• AuditoryProfile::profile_t get_current_profile ()

Private Attributes
• AuditoryProfile::parser_t::ear_t L
• AuditoryProfile::parser_t::ear_t R
© 2005-2018 HörTech gGmbH, Oldenburg

236

CONTENTS

Additional Inherited Members
5.27.1

Detailed Description

Class to make the auditory profile accessible through the parser interface.

5.27.2

5.27.2.1

Constructor & Destructor Documentation

parser_t()

AuditoryProfile::parser_t::parser_t ( )

5.27.3

5.27.3.1

Member Function Documentation

get_current_profile()

AuditoryProfile::profile_t AuditoryProfile::parser_t::get_current_profile ( )

5.27.4

5.27.4.1

Member Data Documentation

L

AuditoryProfile::parser_t::ear_t AuditoryProfile::parser_t::L [private]

5.27.4.2

R

AuditoryProfile::parser_t::ear_t AuditoryProfile::parser_t::R [private]

The documentation for this class was generated from the following files:
• auditory_profile.h
• auditory_profile.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.28

AuditoryProfile::parser_t::ear_t Class Reference

5.28

AuditoryProfile::parser_t::ear_t Class Reference

Inheritance diagram for AuditoryProfile::parser_t::ear_t:

MHAParser::base_t

MHAParser::parser_t

AuditoryProfile::parser
_t::ear_t

Public Member Functions
• ear_t ()
• AuditoryProfile::profile_t::ear_t get_ear () const

Private Attributes
• AuditoryProfile::parser_t::fmap_t HTL
• AuditoryProfile::parser_t::fmap_t UCL

Additional Inherited Members
5.28.1

5.28.1.1

Constructor & Destructor Documentation

ear_t()

AuditoryProfile::parser_t::ear_t::ear_t ( )

5.28.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

237

238

5.28.2.1

CONTENTS

get_ear()

AuditoryProfile::profile_t::ear_t AuditoryProfile::parser_t::ear_t::get_ear ( )
const

5.28.3

Member Data Documentation

5.28.3.1

HTL

AuditoryProfile::parser_t::fmap_t AuditoryProfile::parser_t::ear_t::HTL [private]

5.28.3.2

UCL

AuditoryProfile::parser_t::fmap_t AuditoryProfile::parser_t::ear_t::UCL [private]

The documentation for this class was generated from the following files:
• auditory_profile.h
• auditory_profile.cpp

5.29

AuditoryProfile::parser_t::fmap_t Class Reference

Inheritance diagram for AuditoryProfile::parser_t::fmap_t:

MHAParser::base_t

MHAParser::parser_t

AuditoryProfile::parser
_t::fmap_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.29

AuditoryProfile::parser_t::fmap_t Class Reference

239

Public Member Functions
• fmap_t (const std::string &name, const std::string & help)
• AuditoryProfile::fmap_t get_fmap () const

Private Member Functions
• void validate ()

Private Attributes
•
•
•
•

MHAEvents::patchbay_t< AuditoryProfile::parser_t::fmap_t > patchbay
MHAParser::vfloat_t f
MHAParser::vfloat_t value
std::string name_

Additional Inherited Members
5.29.1

5.29.1.1

Constructor & Destructor Documentation

fmap_t()

AuditoryProfile::parser_t::fmap_t::fmap_t (
const std::string & name,
const std::string & help )

5.29.2

5.29.2.1

Member Function Documentation

get_fmap()

AuditoryProfile::fmap_t AuditoryProfile::parser_t::fmap_t::get_fmap ( ) const

5.29.2.2

validate()

void AuditoryProfile::parser_t::fmap_t::validate ( ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

240

5.29.3

CONTENTS

Member Data Documentation

5.29.3.1

patchbay

MHAEvents::patchbay_t< AuditoryProfile::parser_t::fmap_t> AuditoryProfile::parser←_t::fmap_t::patchbay [private]

5.29.3.2

f

MHAParser::vfloat_t AuditoryProfile::parser_t::fmap_t::f [private]

5.29.3.3

value

MHAParser::vfloat_t AuditoryProfile::parser_t::fmap_t::value [private]

5.29.3.4

name_

std::string AuditoryProfile::parser_t::fmap_t::name_ [private]

The documentation for this class was generated from the following files:
• auditory_profile.h
• auditory_profile.cpp

5.30

AuditoryProfile::profile_t Class Reference

The Auditory Profile class.

Classes
• class ear_t
Class for ear-dependent parameters, e.g., audiograms or unilateral loudness scaling.
© 2005-2018 HörTech gGmbH, Oldenburg

5.30

AuditoryProfile::profile_t Class Reference

241

Public Member Functions
• AuditoryProfile::profile_t::ear_t get_ear (unsigned int channel) const
Return ear information of channel number.

Public Attributes
• AuditoryProfile::profile_t::ear_t L
Left ear data.

• AuditoryProfile::profile_t::ear_t R
Right ear data.

5.30.1

Detailed Description

The Auditory Profile class.
See definition of auditory profile
Todo Give more documentation; implement all parts of the auditory profile.
Currently only the audiogram data is stored.

5.30.2

5.30.2.1

Member Function Documentation

get_ear()

AuditoryProfile::profile_t::ear_t AuditoryProfile::profile_t::get_ear (
unsigned int channel ) const [inline]

Return ear information of channel number.

5.30.3

5.30.3.1

Member Data Documentation

L

AuditoryProfile::profile_t::ear_t AuditoryProfile::profile_t::L

Left ear data.

© 2005-2018 HörTech gGmbH, Oldenburg

242

5.30.3.2

CONTENTS

R

AuditoryProfile::profile_t::ear_t AuditoryProfile::profile_t::R

Right ear data.
The documentation for this class was generated from the following file:
• auditory_profile.h

5.31

AuditoryProfile::profile_t::ear_t Class Reference

Class for ear-dependent parameters, e.g., audiograms or unilateral loudness scaling.

Public Member Functions
• void convert_empty2normal ()

Public Attributes
• AuditoryProfile::fmap_t HTL
• AuditoryProfile::fmap_t UCL

5.31.1

Detailed Description

Class for ear-dependent parameters, e.g., audiograms or unilateral loudness scaling.

5.31.2

5.31.2.1

Member Function Documentation

convert_empty2normal()

void AuditoryProfile::profile_t::ear_t::convert_empty2normal ( )

5.31.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.32

bbcalib_interface_t Class Reference

5.31.3.1

243

HTL

AuditoryProfile::fmap_t AuditoryProfile::profile_t::ear_t::HTL

5.31.3.2

UCL

AuditoryProfile::fmap_t AuditoryProfile::profile_t::ear_t::UCL

The documentation for this class was generated from the following files:
• auditory_profile.h
• auditory_profile.cpp

5.32

bbcalib_interface_t Class Reference

Inheritance diagram for bbcalib_interface_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< int >

MHAPlugin::plugin_t
< int >

bbcalib_interface_t

Public Member Functions
•
•
•
•
•

bbcalib_interface_t (const algo_comm_t &, const std::string &, const std::string &)
∼bbcalib_interface_t ()
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)
void release ()

© 2005-2018 HörTech gGmbH, Oldenburg

244

CONTENTS

Private Attributes
• calibrator_t calib_in
• calibrator_t calib_out
• MHAParser::mhapluginloader_t plugloader

Additional Inherited Members
5.32.1

5.32.1.1

Constructor & Destructor Documentation

bbcalib_interface_t()

bbcalib_interface_t::bbcalib_interface_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

)

5.32.1.2 ∼bbcalib_interface_t()
bbcalib_interface_t::∼bbcalib_interface_t ( )

5.32.2

5.32.2.1

Member Function Documentation

process()

mha_wave_t ∗ bbcalib_interface_t::process (
mha_wave_t ∗ s )

5.32.2.2

prepare()

void bbcalib_interface_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< int > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

5.33

calibrator_runtime_layer_t Class Reference

5.32.2.3

245

release()

void bbcalib_interface_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< int > (p. 885).

5.32.3

Member Data Documentation

5.32.3.1

calib_in

calibrator_t bbcalib_interface_t::calib_in [private]

5.32.3.2

calib_out

calibrator_t bbcalib_interface_t::calib_out [private]

5.32.3.3

plugloader

MHAParser::mhapluginloader_t bbcalib_interface_t::plugloader [private]

The documentation for this class was generated from the following file:
• transducers.cpp

5.33

calibrator_runtime_layer_t Class Reference

Public Member Functions
•

calibrator_runtime_layer_t (bool is_input, const
variables_t &vars)
• mha_real_t process ( mha_wave_t ∗∗)

mhaconfig_t &tf,

calibrator_←-

Static Private Member Functions
• static unsigned int firfirlen (const std::vector< std::vector< float > > &)
• static unsigned int firfir2fftlen (unsigned int, const std::vector< std::vector< float > > &)
© 2005-2018 HörTech gGmbH, Oldenburg

246

CONTENTS

Private Attributes
•
•
•
•
•
•
•
•
•

MHAFilter::fftfilter_t fir
MHASignal::quantizer_t quant
MHASignal::waveform_t gain
softclipper_t softclip
bool b_is_input
bool b_use_fir
bool b_use_clipping
MHASignal::loop_wavefragment_t speechnoise
MHASignal::loop_wavefragment_t::playback_mode_t pmode

5.33.1

5.33.1.1

Constructor & Destructor Documentation

calibrator_runtime_layer_t()

calibrator_runtime_layer_t::calibrator_runtime_layer_t (
bool is_input,
const

mhaconfig_t & tf,

calibrator_variables_t & vars )

5.33.2

5.33.2.1

Member Function Documentation

process()

mha_real_t calibrator_runtime_layer_t::process (
mha_wave_t ∗∗ s )

5.33.2.2

firfirlen()

unsigned int calibrator_runtime_layer_t::firfirlen (
const std::vector< std::vector< float > > & fir ) [static], [private]

5.33.2.3

firfir2fftlen()

unsigned int calibrator_runtime_layer_t::firfir2fftlen (
unsigned int fragsize,
const std::vector< std::vector< float > > & fir ) [static], [private]
© 2005-2018 HörTech gGmbH, Oldenburg

5.33

calibrator_runtime_layer_t Class Reference

5.33.3

5.33.3.1

247

Member Data Documentation

fir

MHAFilter::fftfilter_t calibrator_runtime_layer_t::fir [private]

5.33.3.2

quant

MHASignal::quantizer_t calibrator_runtime_layer_t::quant [private]

5.33.3.3

gain

MHASignal::waveform_t calibrator_runtime_layer_t::gain [private]

5.33.3.4

softclip

softclipper_t calibrator_runtime_layer_t::softclip [private]

5.33.3.5

b_is_input

bool calibrator_runtime_layer_t::b_is_input [private]

5.33.3.6

b_use_fir

bool calibrator_runtime_layer_t::b_use_fir [private]

5.33.3.7

b_use_clipping

bool calibrator_runtime_layer_t::b_use_clipping [private]

© 2005-2018 HörTech gGmbH, Oldenburg

248

5.33.3.8

CONTENTS

speechnoise

MHASignal::loop_wavefragment_t calibrator_runtime_layer_t::speechnoise [private]

5.33.3.9

pmode

MHASignal::loop_wavefragment_t::playback_mode_t calibrator_runtime_layer_t::pmode
[private]

The documentation for this class was generated from the following file:
• transducers.cpp

5.34

calibrator_t Class Reference

Inheritance diagram for calibrator_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< runtime_cfg_t >

rtcalibrator

rmslevelmeter

calibrator_t

Public Member Functions
•
•
•
•

calibrator_t ( algo_comm_t, bool is_input)
void prepare ( mhaconfig_t &tf)
void release ()
mha_wave_t ∗ process ( mha_wave_t ∗s)
© 2005-2018 HörTech gGmbH, Oldenburg

5.34

calibrator_t Class Reference

249

Private Member Functions
• void update ()
• void update_tau_level ()
• void read_levels ()

Private Attributes
•
•
•
•

bool b_is_input
MHAEvents::patchbay_t< calibrator_t > patchbay
calibrator_variables_t vars
bool prepared

Additional Inherited Members
5.34.1

5.34.1.1

Constructor & Destructor Documentation

calibrator_t()

calibrator_t::calibrator_t (
algo_comm_t iac,
bool is_input )

5.34.2

5.34.2.1

Member Function Documentation

prepare()

void calibrator_t::prepare (
mhaconfig_t & tf ) [inline], [virtual]

Implements MHAPlugin::plugin_t< runtime_cfg_t > (p. 884).

5.34.2.2

release()

void calibrator_t::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< runtime_cfg_t > (p. 885).

© 2005-2018 HörTech gGmbH, Oldenburg

250

5.34.2.3

CONTENTS

process()

mha_wave_t ∗ calibrator_t::process (
mha_wave_t ∗ s )

5.34.2.4

update()

void calibrator_t::update ( ) [private]

5.34.2.5

update_tau_level()

void calibrator_t::update_tau_level ( ) [private]

5.34.2.6

read_levels()

void calibrator_t::read_levels ( ) [private]

5.34.3

5.34.3.1

Member Data Documentation

b_is_input

bool calibrator_t::b_is_input [private]

5.34.3.2

patchbay

MHAEvents::patchbay_t< calibrator_t> calibrator_t::patchbay [private]

5.34.3.3

vars

calibrator_variables_t calibrator_t::vars [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.35

calibrator_variables_t Class Reference

5.34.3.4

251

prepared

bool calibrator_t::prepared [private]

The documentation for this class was generated from the following file:
• transducers.cpp

5.35

calibrator_variables_t Class Reference

Public Member Functions
• calibrator_variables_t (bool is_input, MHAParser::parser_t &parent)

Public Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

MHAParser::vfloat_t peaklevel
MHAParser::mfloat_t fir
MHAParser::int_t nbits
MHAParser::float_t tau_level
MHAParser::kw_t spnoise_mode
MHAParser::vint_t spnoise_channels
MHAParser::float_t spnoise_level
MHAParser::vfloat_mon_t rmslevel
MHAParser::parser_t spnoise_parser
MHAParser::float_mon_t srate
MHAParser::int_mon_t fragsize
MHAParser::int_mon_t num_channels
MHAParser::parser_t config_parser
softclipper_variables_t softclip
MHAParser::bool_t do_clipping

5.35.1

5.35.1.1

Constructor & Destructor Documentation

calibrator_variables_t()

calibrator_variables_t::calibrator_variables_t (
bool is_input,
MHAParser::parser_t & parent )

© 2005-2018 HörTech gGmbH, Oldenburg

252

5.35.2

5.35.2.1

CONTENTS

Member Data Documentation

peaklevel

MHAParser::vfloat_t calibrator_variables_t::peaklevel

5.35.2.2

fir

MHAParser::mfloat_t calibrator_variables_t::fir

5.35.2.3

nbits

MHAParser::int_t calibrator_variables_t::nbits

5.35.2.4

tau_level

MHAParser::float_t calibrator_variables_t::tau_level

5.35.2.5

spnoise_mode

MHAParser::kw_t calibrator_variables_t::spnoise_mode

5.35.2.6

spnoise_channels

MHAParser::vint_t calibrator_variables_t::spnoise_channels

5.35.2.7

spnoise_level

MHAParser::float_t calibrator_variables_t::spnoise_level

© 2005-2018 HörTech gGmbH, Oldenburg

5.35

calibrator_variables_t Class Reference

5.35.2.8

rmslevel

MHAParser::vfloat_mon_t calibrator_variables_t::rmslevel

5.35.2.9

spnoise_parser

MHAParser::parser_t calibrator_variables_t::spnoise_parser

5.35.2.10

srate

MHAParser::float_mon_t calibrator_variables_t::srate

5.35.2.11

fragsize

MHAParser::int_mon_t calibrator_variables_t::fragsize

5.35.2.12

num_channels

MHAParser::int_mon_t calibrator_variables_t::num_channels

5.35.2.13

config_parser

MHAParser::parser_t calibrator_variables_t::config_parser

5.35.2.14

softclip

softclipper_variables_t calibrator_variables_t::softclip

5.35.2.15

do_clipping

MHAParser::bool_t calibrator_variables_t::do_clipping

The documentation for this class was generated from the following file:
• transducers.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

253

254

5.36

CONTENTS

cfg_t Class Reference

Public Member Functions
• cfg_t ( mha_real_t tau_attack, mha_real_t tau_decay, unsigned int nch, mha_real_t
start_limit, mha_real_t slope_db, mha_real_t fs)
• cfg_t (unsigned int, unsigned int)
• cfg_t ( mhaconfig_t chcfg, mha_real_t newlev, bool replace, mha_real_t len)
• void process ( mha_wave_t ∗)
• void process ( mha_spec_t ∗)

Public Attributes
•
•
•
•
•

mha_real_t start_lin
mha_real_t alpha
MHAFilter::o1flt_lowpass_t attack
MHAFilter::o1flt_maxtrack_t decay
unsigned int channel

Private Attributes
•
•
•
•
•
•

mha_real_t gain_wave_
mha_real_t gain_spec_
bool replace_
bool use_frozen_
MHASignal::waveform_t frozen_noise_
unsigned int pos

5.36.1

5.36.1.1

Constructor & Destructor Documentation

cfg_t() [1/3]

cfg_t::cfg_t (
mha_real_t tau_attack,
mha_real_t tau_decay,
unsigned int nch,
mha_real_t start_limit,
mha_real_t slope_db,
mha_real_t fs )

© 2005-2018 HörTech gGmbH, Oldenburg

5.36

cfg_t Class Reference

5.36.1.2

cfg_t() [2/3]

cfg_t::cfg_t (
unsigned int ichannel,
unsigned int numchannels )

5.36.1.3

cfg_t() [3/3]

cfg_t::cfg_t (
mhaconfig_t chcfg,
mha_real_t newlev,
bool replace,
mha_real_t len )

5.36.2

5.36.2.1

Member Function Documentation

process() [1/2]

void cfg_t::process (
mha_wave_t ∗ s ) [inline]

5.36.2.2

process() [2/2]

void cfg_t::process (
mha_spec_t ∗ s ) [inline]

5.36.3

5.36.3.1

Member Data Documentation

start_lin

mha_real_t cfg_t::start_lin

© 2005-2018 HörTech gGmbH, Oldenburg

255

256

5.36.3.2

CONTENTS

alpha

mha_real_t cfg_t::alpha

5.36.3.3

attack

MHAFilter::o1flt_lowpass_t cfg_t::attack

5.36.3.4

decay

MHAFilter::o1flt_maxtrack_t cfg_t::decay

5.36.3.5

channel

unsigned int cfg_t::channel

5.36.3.6

gain_wave_

mha_real_t cfg_t::gain_wave_ [private]

5.36.3.7

gain_spec_

mha_real_t cfg_t::gain_spec_ [private]

5.36.3.8

replace_

bool cfg_t::replace_ [private]

5.36.3.9

use_frozen_

bool cfg_t::use_frozen_ [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.37

coherence::cohflt_if_t Class Reference

5.36.3.10

257

frozen_noise_

MHASignal::waveform_t cfg_t::frozen_noise_ [private]

5.36.3.11

pos

unsigned int cfg_t::pos [private]

The documentation for this class was generated from the following files:
• softclip.cpp
• example6.cpp
• noise.cpp

5.37

coherence::cohflt_if_t Class Reference

Inheritance diagram for coherence::cohflt_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< cohflt_t >

MHAPlugin::plugin_t
< cohflt_t >

coherence::cohflt_if_t

Public Member Functions
•
•
•
•

cohflt_if_t (const algo_comm_t &, const std::string &, const std::string &)
void prepare ( mhaconfig_t &)
void release ()
mha_spec_t ∗ process ( mha_spec_t ∗)

© 2005-2018 HörTech gGmbH, Oldenburg

258

CONTENTS

Private Member Functions
• void update ()

Private Attributes
• MHAEvents::patchbay_t< cohflt_if_t > patchbay
• vars_t vars
• const std::string algo

Additional Inherited Members
5.37.1

5.37.1.1

Constructor & Destructor Documentation

cohflt_if_t()

coherence::cohflt_if_t::cohflt_if_t (
const

algo_comm_t & ac,

const std::string & th,
const std::string & al )

5.37.2

5.37.2.1

Member Function Documentation

prepare()

void coherence::cohflt_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cohflt_t > (p. 884).

5.37.2.2

release()

void coherence::cohflt_if_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< cohflt_t > (p. 885).

© 2005-2018 HörTech gGmbH, Oldenburg

5.37

coherence::cohflt_if_t Class Reference

5.37.2.3

259

process()

mha_spec_t ∗ coherence::cohflt_if_t::process (
mha_spec_t ∗ s )

5.37.2.4

update()

void coherence::cohflt_if_t::update ( ) [private]

5.37.3

5.37.3.1

Member Data Documentation

patchbay

MHAEvents::patchbay_t< cohflt_if_t> coherence::cohflt_if_t::patchbay [private]

5.37.3.2

vars

vars_t coherence::cohflt_if_t::vars [private]

5.37.3.3

algo

const std::string coherence::cohflt_if_t::algo [private]

The documentation for this class was generated from the following file:

• coherence.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

260

5.38

CONTENTS

coherence::cohflt_t Class Reference

Inheritance diagram for coherence::cohflt_t:

mha_wave_t

MHAOvlFilter::fspacing_t

MHASignal::waveform_t

MHAOvlFilter::fftfb_t

mhaconfig_t

coherence::cohflt_t

Public Member Functions
• cohflt_t ( vars_t &v, const mhaconfig_t &icf, algo_comm_t iac, const std::string
&name)
• mha_spec_t ∗ process ( mha_spec_t ∗)
• void insert ()

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•

unsigned int nbands
bool avg_ipd
mha_complex_t cg
float g
float c_scale
float c_min
MHASignal::waveform_t alpha
float limit
MHAFilter::o1flt_lowpass_t lp1r
MHAFilter::o1flt_lowpass_t lp1i
MHA_AC::spectrum_t coh_c
MHA_AC::waveform_t coh_rlp
MHASignal::waveform_t gain
© 2005-2018 HörTech gGmbH, Oldenburg

5.38
•
•
•
•
•
•

coherence::cohflt_t Class Reference

MHASignal::delay_wave_t gain_delay
MHASignal::spectrum_t s_out
bool bInvert
MHAFilter::o1flt_lowpass_t lp1ltg
bool b_ltg
std::vector< float > staticgain

Additional Inherited Members

5.38.1

5.38.1.1

Constructor & Destructor Documentation

cohflt_t()

coherence::cohflt_t::cohflt_t (
vars_t & v,
const

mhaconfig_t & icf,

algo_comm_t iac,
const std::string & name )

5.38.2

5.38.2.1

Member Function Documentation

process()

mha_spec_t ∗ coherence::cohflt_t::process (
mha_spec_t ∗ s )

5.38.2.2

insert()

void coherence::cohflt_t::insert ( )

5.38.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

261

262

5.38.3.1

CONTENTS

nbands

unsigned int coherence::cohflt_t::nbands [private]

5.38.3.2

avg_ipd

bool coherence::cohflt_t::avg_ipd [private]

5.38.3.3

cg

mha_complex_t coherence::cohflt_t::cg [private]

5.38.3.4

g

float coherence::cohflt_t::g [private]

5.38.3.5

c_scale

float coherence::cohflt_t::c_scale [private]

5.38.3.6

c_min

float coherence::cohflt_t::c_min [private]

5.38.3.7

alpha

MHASignal::waveform_t coherence::cohflt_t::alpha [private]

5.38.3.8

limit

float coherence::cohflt_t::limit [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.38

coherence::cohflt_t Class Reference

5.38.3.9

263

lp1r

MHAFilter::o1flt_lowpass_t coherence::cohflt_t::lp1r [private]

5.38.3.10

lp1i

MHAFilter::o1flt_lowpass_t coherence::cohflt_t::lp1i [private]

5.38.3.11

coh_c

MHA_AC::spectrum_t coherence::cohflt_t::coh_c [private]

5.38.3.12

coh_rlp

MHA_AC::waveform_t coherence::cohflt_t::coh_rlp [private]

5.38.3.13

gain

MHASignal::waveform_t coherence::cohflt_t::gain [private]

5.38.3.14

gain_delay

MHASignal::delay_wave_t coherence::cohflt_t::gain_delay [private]

5.38.3.15

s_out

MHASignal::spectrum_t coherence::cohflt_t::s_out [private]

5.38.3.16

bInvert

bool coherence::cohflt_t::bInvert [private]

© 2005-2018 HörTech gGmbH, Oldenburg

264

5.38.3.17

CONTENTS

lp1ltg

MHAFilter::o1flt_lowpass_t coherence::cohflt_t::lp1ltg [private]

5.38.3.18

b_ltg

bool coherence::cohflt_t::b_ltg [private]

5.38.3.19

staticgain

std::vector coherence::cohflt_t::staticgain [private]

The documentation for this class was generated from the following file:

• coherence.cpp

5.39

coherence::vars_t Class Reference

Inheritance diagram for coherence::vars_t:

MHAOvlFilter::fftfb
_vars_t

coherence::vars_t

Public Member Functions
• vars_t ( MHAParser::parser_t ∗)
© 2005-2018 HörTech gGmbH, Oldenburg

5.39

coherence::vars_t Class Reference

Public Attributes
•
•
•
•
•
•
•
•
•
•
•

MHAParser::kw_t tau_unit
MHAParser::vfloat_t tau
MHAParser::vfloat_t alpha
MHAParser::float_t limit
MHAParser::vfloat_t mapping
MHAParser::kw_t average
MHAParser::bool_t invert
MHAParser::bool_t ltgcomp
MHAParser::vfloat_t ltgtau
MHAParser::vfloat_t staticgain
MHAParser::int_t delay

5.39.1

5.39.1.1

Constructor & Destructor Documentation

vars_t()

coherence::vars_t::vars_t (
MHAParser::parser_t ∗ p )

5.39.2

5.39.2.1

Member Data Documentation

tau_unit

MHAParser::kw_t coherence::vars_t::tau_unit

5.39.2.2

tau

MHAParser::vfloat_t coherence::vars_t::tau

5.39.2.3

alpha

MHAParser::vfloat_t coherence::vars_t::alpha

© 2005-2018 HörTech gGmbH, Oldenburg

265

266

5.39.2.4

CONTENTS

limit

MHAParser::float_t coherence::vars_t::limit

5.39.2.5

mapping

MHAParser::vfloat_t coherence::vars_t::mapping

5.39.2.6

average

MHAParser::kw_t coherence::vars_t::average

5.39.2.7

invert

MHAParser::bool_t coherence::vars_t::invert

5.39.2.8

ltgcomp

MHAParser::bool_t coherence::vars_t::ltgcomp

5.39.2.9

ltgtau

MHAParser::vfloat_t coherence::vars_t::ltgtau

5.39.2.10

staticgain

MHAParser::vfloat_t coherence::vars_t::staticgain

5.39.2.11

delay

MHAParser::int_t coherence::vars_t::delay

The documentation for this class was generated from the following file:
• coherence.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.40

combc_if_t Class Reference

5.40

combc_if_t Class Reference

267

Inheritance diagram for combc_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< combc_t >

MHAPlugin::plugin_t
< combc_t >

combc_if_t

Public Member Functions
•
•
•
•

combc_if_t (const algo_comm_t &, const std::string &, const std::string &)
void prepare ( mhaconfig_t &)
mha_wave_t ∗ process ( mha_wave_t ∗)
mha_spec_t ∗ process ( mha_spec_t ∗)

Private Attributes
•
•
•
•

MHAParser::int_t outchannels
MHAParser::bool_t interleaved
MHAParser::string_t channel_gain_name
MHAParser::string_t element_gain_name

Additional Inherited Members
5.40.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

268

5.40.1.1

CONTENTS

combc_if_t()

combc_if_t::combc_if_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

5.40.2

5.40.2.1

)

Member Function Documentation

prepare()

void combc_if_t::prepare (
mhaconfig_t & chcfg ) [virtual]

Implements MHAPlugin::plugin_t< combc_t > (p. 884).

5.40.2.2

process() [1/2]

mha_wave_t ∗ combc_if_t::process (
mha_wave_t ∗ s )

5.40.2.3

process() [2/2]

mha_spec_t ∗ combc_if_t::process (
mha_spec_t ∗ s )

5.40.3

5.40.3.1

Member Data Documentation

outchannels

MHAParser::int_t combc_if_t::outchannels [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.41

combc_t Class Reference

5.40.3.2

269

interleaved

MHAParser::bool_t combc_if_t::interleaved [private]

5.40.3.3

channel_gain_name

MHAParser::string_t combc_if_t::channel_gain_name [private]

5.40.3.4

element_gain_name

MHAParser::string_t combc_if_t::element_gain_name [private]

The documentation for this class was generated from the following file:
• combinechannels.cpp

5.41

combc_t Class Reference

Public Member Functions
• combc_t ( algo_comm_t ac, mhaconfig_t cfg_input, mhaconfig_t cfg_output, std←::vector< float > channel_gains, const std::string &element_gain_name, bool interleaved)
• mha_wave_t ∗ process ( mha_wave_t ∗s)
• mha_spec_t ∗ process ( mha_spec_t ∗s)

Private Attributes
•
•
•
•
•
•
•

5.41.1

algo_comm_t ac_
bool interleaved_
unsigned int nbands
MHASignal::waveform_t w_out
MHASignal::spectrum_t s_out
std::vector< mha_real_t > channel_gains_
std::string element_gain_name_

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

270

5.41.1.1

CONTENTS

combc_t()

combc_t::combc_t (
algo_comm_t ac,
mhaconfig_t cfg_input,
mhaconfig_t cfg_output,
std::vector< float > channel_gains,
const std::string & element_gain_name,
bool interleaved )

5.41.2

5.41.2.1

Member Function Documentation

process() [1/2]

mha_wave_t ∗ combc_t::process (
mha_wave_t ∗ s )

5.41.2.2

process() [2/2]

mha_spec_t ∗ combc_t::process (
mha_spec_t ∗ s )

5.41.3

5.41.3.1

Member Data Documentation

ac_

algo_comm_t combc_t::ac_ [private]

5.41.3.2

interleaved_

bool combc_t::interleaved_ [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.42

comm_var_t Struct Reference

5.41.3.3

271

nbands

unsigned int combc_t::nbands [private]

5.41.3.4

w_out

MHASignal::waveform_t combc_t::w_out [private]

5.41.3.5

s_out

MHASignal::spectrum_t combc_t::s_out [private]

5.41.3.6

channel_gains_

std::vector< mha_real_t> combc_t::channel_gains_ [private]

5.41.3.7

element_gain_name_

std::string combc_t::element_gain_name_ [private]

The documentation for this class was generated from the following file:
• combinechannels.cpp

5.42

comm_var_t Struct Reference

Algorithm communication variable structure.

Public Attributes
• unsigned int data_type
Type of data.

• unsigned int num_entries
Number of entries.

• unsigned int stride
length of one row (C interpretation) or of one column (Fortran interpretation)

• void ∗ data
Pointer to variable data.
© 2005-2018 HörTech gGmbH, Oldenburg

272

5.42.1

CONTENTS

Detailed Description

Algorithm communication variable structure.
Algorithm communication variables (AC variables) are objects of this type. The member data
is a pointer to the variable ‘data'. This pointer has to be valid for the lifetime of this AC variable.
The member ‘data_type' can be one of the predefined types or any user defined type. The
member ‘num_entries' describes the number of elements of this base type stored at the pointer
address.
An AC variable can be registered with the \ref
algo_comm_t::insert_var "insert_var" function.

5.42.2

5.42.2.1

Member Data Documentation

data_type

comm_var_t::data_type

Type of data.
This can be one of the predefined types
• MHA_AC_CHAR
• MHA_AC_INT
• MHA_AC_MHAREAL
• MHA_AC_FLOAT
• MHA_AC_DOUBLE
• MHA_AC_MHACOMPLEX
• MHA_AC_VEC_FLOAT or any user defined type with a value greater than
• MHA_AC_USER

5.42.2.2

num_entries

comm_var_t::num_entries

Number of entries.

© 2005-2018 HörTech gGmbH, Oldenburg

5.43

cpuload_t Class Reference

5.42.2.3

273

stride

comm_var_t::stride

length of one row (C interpretation) or of one column (Fortran interpretation)

5.42.2.4

data

comm_var_t::data

Pointer to variable data.
The documentation for this struct was generated from the following files:
• mha.h
• mha_algo_comm.cpp

5.43

cpuload_t Class Reference

Inheritance diagram for cpuload_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< float >

MHAPlugin::plugin_t
< float >

cpuload_t

© 2005-2018 HörTech gGmbH, Oldenburg

274

CONTENTS

Public Member Functions
•
•
•
•

cpuload_t ( algo_comm_t, const char ∗, const char ∗)
mha_spec_t ∗ process ( mha_spec_t ∗)
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)

Private Member Functions
• void compute_something ()
• void compute_something_else ()

Private Attributes
•
•
•
•
•

MHAParser::float_t factor
MHAParser::bool_t use_sine
float phase
volatile float result
std::vector< float > table

Additional Inherited Members
5.43.1

5.43.1.1

Constructor & Destructor Documentation

cpuload_t()

cpuload_t::cpuload_t (
algo_comm_t iac,
const char ∗ ,
const char ∗

5.43.2

5.43.2.1

)

Member Function Documentation

process() [1/2]

mha_spec_t ∗ cpuload_t::process (
mha_spec_t ∗ s )

© 2005-2018 HörTech gGmbH, Oldenburg

5.43

cpuload_t Class Reference

5.43.2.2

process() [2/2]

mha_wave_t ∗ cpuload_t::process (
mha_wave_t ∗ s )

5.43.2.3

prepare()

void cpuload_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< float > (p. 884).

5.43.2.4

compute_something()

void cpuload_t::compute_something ( ) [inline], [private]

5.43.2.5

compute_something_else()

void cpuload_t::compute_something_else ( ) [inline], [private]

5.43.3

5.43.3.1

Member Data Documentation

factor

MHAParser::float_t cpuload_t::factor [private]

5.43.3.2

use_sine

MHAParser::bool_t cpuload_t::use_sine [private]

5.43.3.3

phase

float cpuload_t::phase [private]

© 2005-2018 HörTech gGmbH, Oldenburg

275

276

5.43.3.4

CONTENTS

result

volatile float cpuload_t::result [private]

5.43.3.5

table

std::vector cpuload_t::table [private]

The documentation for this class was generated from the following file:
• cpuload.cpp

5.44

db_if_t Class Reference

Inheritance diagram for db_if_t:

MHAParser::base_t

MHAPlugin::config_t
< db_t >

MHAParser::parser_t

MHAPlugin::plugin_t
< db_t >

db_if_t

Public Member Functions
•
•
•
•
•

db_if_t ( algo_comm_t, std::string, std::string)
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)
void release ()
∼db_if_t ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.44

db_if_t Class Reference

Private Attributes
•
•
•
•
•
•

MHAEvents::patchbay_t< db_if_t > patchbay
MHAParser::int_t fragsize
MHAParser::mhapluginloader_t plugloader
std::string chain
std::string algo
bool bypass

Additional Inherited Members
5.44.1

5.44.1.1

Constructor & Destructor Documentation

db_if_t()

db_if_t::db_if_t (
algo_comm_t iac,
std::string th,
std::string al )

5.44.1.2 ∼db_if_t()
db_if_t::∼db_if_t ( )

5.44.2

5.44.2.1

Member Function Documentation

process()

mha_wave_t ∗ db_if_t::process (
mha_wave_t ∗ s )

5.44.2.2

prepare()

void db_if_t::prepare (
mhaconfig_t & conf ) [virtual]

Implements MHAPlugin::plugin_t< db_t > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

277

278

5.44.2.3

CONTENTS

release()

void db_if_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< db_t > (p. 885).

5.44.3

5.44.3.1

Member Data Documentation

patchbay

MHAEvents::patchbay_t<

5.44.3.2

db_if_t > db_if_t::patchbay [private]

fragsize

MHAParser::int_t db_if_t::fragsize [private]

5.44.3.3

plugloader

MHAParser::mhapluginloader_t db_if_t::plugloader [private]

5.44.3.4

chain

std::string db_if_t::chain [private]

5.44.3.5

algo

std::string db_if_t::algo [private]

5.44.3.6

bypass

bool db_if_t::bypass [private]

The documentation for this class was generated from the following file:
• db.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.45

db_t Class Reference

5.45

db_t Class Reference

279

Inheritance diagram for db_t:

MHASignal::doublebuffer_t

db_t

Public Member Functions
• db_t (unsigned int outer_fragsize, unsigned int inner_fragsize, unsigned int nch_in, unsigned int nch_out, MHAParser::mhapluginloader_t &plug)
• mha_wave_t ∗ inner_process ( mha_wave_t ∗)

Private Attributes
• MHAParser::mhapluginloader_t & plugloader

Additional Inherited Members
5.45.1

5.45.1.1

Constructor & Destructor Documentation

db_t()

db_t::db_t (
unsigned int outer_fragsize,
unsigned int inner_fragsize,
unsigned int nch_in,
unsigned int nch_out,
MHAParser::mhapluginloader_t & plug )

5.45.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

280

5.45.2.1

CONTENTS

inner_process()

mha_wave_t ∗ db_t::inner_process (
mha_wave_t ∗ s ) [virtual]

Implements MHASignal::doublebuffer_t (p. 938).

5.45.3

Member Data Documentation

5.45.3.1

plugloader

MHAParser::mhapluginloader_t& db_t::plugloader [private]

The documentation for this class was generated from the following file:
• db.cpp

5.46

dc::dc_if_t Class Reference

Inheritance diagram for dc::dc_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< dc_t >

MHAPlugin::plugin_t
< dc_t >

dc::dc_vars_t

dc::dc_if_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.46

dc::dc_if_t Class Reference

281

Public Member Functions
•
•
•
•

dc_if_t (const algo_comm_t &ac_, const std::string &th_, const std::string &al_)
void prepare ( mhaconfig_t &tf)
mha_wave_t ∗ process ( mha_wave_t ∗)
mha_spec_t ∗ process ( mha_spec_t ∗)

Private Member Functions
• void update_monitors ()
Called from within the processing routines: updates the monitor variables.

• void update ()
Called by MHA configuration change event mechanism: creates new runtime configuration.

Private Attributes
• std::string algo
• wideband_inhib_vars_t wbinhib
• MHAEvents::patchbay_t< dc_if_t > patchbay

Additional Inherited Members
5.46.1

5.46.1.1

Constructor & Destructor Documentation

dc_if_t()

dc::dc_if_t::dc_if_t (
const

algo_comm_t & ac_,

const std::string & th_,
const std::string & al_ )

5.46.2

5.46.2.1

Member Function Documentation

prepare()

void dc::dc_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< dc_t > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

282

5.46.2.2

CONTENTS

process() [1/2]

mha_wave_t ∗ dc::dc_if_t::process (
mha_wave_t ∗ s_in )

5.46.2.3

process() [2/2]

mha_spec_t ∗ dc::dc_if_t::process (
mha_spec_t ∗ s_in )

5.46.2.4

update_monitors()

void dc::dc_if_t::update_monitors ( ) [private]

Called from within the processing routines: updates the monitor variables.

5.46.2.5

update()

void dc::dc_if_t::update ( ) [private]

Called by MHA configuration change event mechanism: creates new runtime configuration.

5.46.3

5.46.3.1

Member Data Documentation

algo

std::string dc::dc_if_t::algo [private]

5.46.3.2

wbinhib

wideband_inhib_vars_t dc::dc_if_t::wbinhib [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.47

dc::dc_t Class Reference

5.46.3.3

283

patchbay

MHAEvents::patchbay_t< dc_if_t> dc::dc_if_t::patchbay [private]

The documentation for this class was generated from the following file:
• dc.cpp

5.47

dc::dc_t Class Reference

Inheritance diagram for dc::dc_t:

dc::dc_vars_validator_t

dc::dc_t

Public Member Functions
• dc_t ( dc_vars_t vars, mha_real_t filter_rate, unsigned int nch, algo_comm_t ac,
mha_domain_t domain, unsigned int fftlen, std::string algo)
• mha_wave_t ∗ process ( mha_wave_t ∗)
• mha_spec_t ∗ process ( mha_spec_t ∗, wb_inhib_cfg_t ∗wbinhib)
• void explicit_insert ()
• unsigned get_nbands () const
Number of frequency bands accessor.

• const MHASignal::waveform_t & get_level_in_db () const
• const MHASignal::waveform_t & get_level_in_db_adjusted () const

Private Attributes
•
•
•
•
•
•

std::vector< MHATableLookup::linear_table_t > gt
MHAFilter::o1flt_lowpass_t rmslevel
MHAFilter::o1flt_lowpass_t attack
MHAFilter::o1flt_maxtrack_t decay
bool powersum
bool bypass

© 2005-2018 HörTech gGmbH, Oldenburg

284
•
•
•
•
•
•
•

CONTENTS

unsigned int naudiochannels
unsigned int nbands
MHA_AC::waveform_t level_in_db
MHA_AC::waveform_t level_in_db_adjusted
MHA_AC::waveform_t inhib_gain
MHASignal::waveform_t max_level_difference
unsigned int k_nyquist

Additional Inherited Members
5.47.1

5.47.1.1

Constructor & Destructor Documentation

dc_t()

dc::dc_t::dc_t (
dc_vars_t vars,
mha_real_t filter_rate,
unsigned int nch,
algo_comm_t ac,
mha_domain_t domain,
unsigned int fftlen,
std::string algo )

5.47.2

5.47.2.1

Member Function Documentation

process() [1/2]

mha_wave_t ∗ dc::dc_t::process (
mha_wave_t ∗ s )

5.47.2.2

process() [2/2]

mha_spec_t ∗ dc::dc_t::process (
mha_spec_t ∗ s,
wb_inhib_cfg_t ∗ wbinhib )

© 2005-2018 HörTech gGmbH, Oldenburg

5.47

dc::dc_t Class Reference

5.47.2.3

285

explicit_insert()

void dc::dc_t::explicit_insert ( )

5.47.2.4

get_nbands()

unsigned dc::dc_t::get_nbands ( ) const [inline]

Number of frequency bands accessor.

5.47.2.5
const

5.47.2.6

get_level_in_db()
MHASignal::waveform_t& dc::dc_t::get_level_in_db ( ) const [inline]

get_level_in_db_adjusted()

const

MHASignal::waveform_t& dc::dc_t::get_level_in_db_adjusted ( ) const [inline]

5.47.3

Member Data Documentation

5.47.3.1

gt

std::vector< MHATableLookup::linear_table_t> dc::dc_t::gt [private]

5.47.3.2

rmslevel

MHAFilter::o1flt_lowpass_t dc::dc_t::rmslevel [private]

5.47.3.3

attack

MHAFilter::o1flt_lowpass_t dc::dc_t::attack [private]

© 2005-2018 HörTech gGmbH, Oldenburg

286

5.47.3.4

CONTENTS

decay

MHAFilter::o1flt_maxtrack_t dc::dc_t::decay [private]

5.47.3.5

powersum

bool dc::dc_t::powersum [private]

5.47.3.6

bypass

bool dc::dc_t::bypass [private]

5.47.3.7

naudiochannels

unsigned int dc::dc_t::naudiochannels [private]

5.47.3.8

nbands

unsigned int dc::dc_t::nbands [private]

5.47.3.9

level_in_db

MHA_AC::waveform_t dc::dc_t::level_in_db [private]

5.47.3.10

level_in_db_adjusted

MHA_AC::waveform_t dc::dc_t::level_in_db_adjusted [private]

5.47.3.11

inhib_gain

MHA_AC::waveform_t dc::dc_t::inhib_gain [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.48

dc::dc_vars_t Class Reference

5.47.3.12

287

max_level_difference

MHASignal::waveform_t dc::dc_t::max_level_difference [private]

5.47.3.13

k_nyquist

unsigned int dc::dc_t::k_nyquist [private]

The documentation for this class was generated from the following file:
• dc.cpp

5.48

dc::dc_vars_t Class Reference

Inheritance diagram for dc::dc_vars_t:

dc::dc_vars_t

dc::dc_if_t

Public Member Functions
• dc_vars_t ( MHAParser::parser_t &)

Public Attributes
•
•
•
•
•
•
•
•

MHAParser::bool_t powersum
MHAParser::mfloat_t gtdata
MHAParser::vfloat_t gtmin
MHAParser::vfloat_t gtstep
MHAParser::vfloat_t taurmslevel
MHAParser::vfloat_t tauattack
MHAParser::vfloat_t taudecay
MHAParser::string_t filterbank

© 2005-2018 HörTech gGmbH, Oldenburg

288
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

CONTENTS

std::string cf_name
std::string ef_name
std::string bw_name
MHAParser::string_t chname
MHAParser::bool_t bypass
MHAParser::string_t clientid
MHAParser::string_t gainrule
MHAParser::string_t preset
MHAParser::int_mon_t modified
MHAParser::mfloat_t max_level_difference
MHAParser::vfloat_mon_t input_level
MHAParser::vfloat_mon_t filtered_level
MHAParser::vfloat_mon_t center_frequencies
MHAParser::vfloat_mon_t edge_frequencies
MHAParser::vfloat_mon_t band_weights
MHAParser::bool_t use_wbinhib

5.48.1

5.48.1.1

Constructor & Destructor Documentation

dc_vars_t()

dc::dc_vars_t::dc_vars_t (
MHAParser::parser_t & p )

5.48.2

5.48.2.1

Member Data Documentation

powersum

MHAParser::bool_t dc::dc_vars_t::powersum

5.48.2.2

gtdata

MHAParser::mfloat_t dc::dc_vars_t::gtdata

© 2005-2018 HörTech gGmbH, Oldenburg

5.48

dc::dc_vars_t Class Reference

5.48.2.3

gtmin

MHAParser::vfloat_t dc::dc_vars_t::gtmin

5.48.2.4

gtstep

MHAParser::vfloat_t dc::dc_vars_t::gtstep

5.48.2.5

taurmslevel

MHAParser::vfloat_t dc::dc_vars_t::taurmslevel

5.48.2.6

tauattack

MHAParser::vfloat_t dc::dc_vars_t::tauattack

5.48.2.7

taudecay

MHAParser::vfloat_t dc::dc_vars_t::taudecay

5.48.2.8

filterbank

MHAParser::string_t dc::dc_vars_t::filterbank

5.48.2.9

cf_name

std::string dc::dc_vars_t::cf_name

5.48.2.10

ef_name

std::string dc::dc_vars_t::ef_name

© 2005-2018 HörTech gGmbH, Oldenburg

289

290

5.48.2.11

CONTENTS

bw_name

std::string dc::dc_vars_t::bw_name

5.48.2.12

chname

MHAParser::string_t dc::dc_vars_t::chname

5.48.2.13

bypass

MHAParser::bool_t dc::dc_vars_t::bypass

5.48.2.14

clientid

MHAParser::string_t dc::dc_vars_t::clientid

5.48.2.15

gainrule

MHAParser::string_t dc::dc_vars_t::gainrule

5.48.2.16

preset

MHAParser::string_t dc::dc_vars_t::preset

5.48.2.17

modified

MHAParser::int_mon_t dc::dc_vars_t::modified

5.48.2.18

max_level_difference

MHAParser::mfloat_t dc::dc_vars_t::max_level_difference

© 2005-2018 HörTech gGmbH, Oldenburg

5.48

dc::dc_vars_t Class Reference

5.48.2.19

input_level

MHAParser::vfloat_mon_t dc::dc_vars_t::input_level

5.48.2.20

filtered_level

MHAParser::vfloat_mon_t dc::dc_vars_t::filtered_level

5.48.2.21

center_frequencies

MHAParser::vfloat_mon_t dc::dc_vars_t::center_frequencies

5.48.2.22

edge_frequencies

MHAParser::vfloat_mon_t dc::dc_vars_t::edge_frequencies

5.48.2.23

band_weights

MHAParser::vfloat_mon_t dc::dc_vars_t::band_weights

5.48.2.24

use_wbinhib

MHAParser::bool_t dc::dc_vars_t::use_wbinhib

The documentation for this class was generated from the following file:

• dc.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

291

292

5.49

CONTENTS

dc::dc_vars_validator_t Class Reference

Inheritance diagram for dc::dc_vars_validator_t:

dc::dc_vars_validator_t

dc::dc_t

Public Member Functions
• dc_vars_validator_t ( dc_vars_t &v, unsigned int s, mha_domain_t domain)

5.49.1

Constructor & Destructor Documentation

5.49.1.1

dc_vars_validator_t()

dc::dc_vars_validator_t::dc_vars_validator_t (
dc_vars_t & v,
unsigned int s,
mha_domain_t domain )

The documentation for this class was generated from the following file:
• dc.cpp

5.50

dc::wb_inhib_cfg_t Class Reference

Public Member Functions
• wb_inhib_cfg_t (const wideband_inhib_vars_t &vars)
© 2005-2018 HörTech gGmbH, Oldenburg

5.50

dc::wb_inhib_cfg_t Class Reference

Public Attributes
•
•
•
•
•
•

std::vector< float > weights
float dl_map_min
float dl_map_max
float dl_diff
float l_min
std::vector< std::vector< float > > g_scale

5.50.1

5.50.1.1

Constructor & Destructor Documentation

wb_inhib_cfg_t()

dc::wb_inhib_cfg_t::wb_inhib_cfg_t (
const

5.50.2

5.50.2.1

wideband_inhib_vars_t & vars )

Member Data Documentation

weights

std::vector dc::wb_inhib_cfg_t::weights

5.50.2.2

dl_map_min

float dc::wb_inhib_cfg_t::dl_map_min

5.50.2.3

dl_map_max

float dc::wb_inhib_cfg_t::dl_map_max

5.50.2.4

dl_diff

float dc::wb_inhib_cfg_t::dl_diff

© 2005-2018 HörTech gGmbH, Oldenburg

293

294

5.50.2.5

CONTENTS

l_min

float dc::wb_inhib_cfg_t::l_min

5.50.2.6

g_scale

std::vector > dc::wb_inhib_cfg_t::g_scale

The documentation for this class was generated from the following file:
• dc.cpp

5.51

dc::wideband_inhib_vars_t Class Reference

Inheritance diagram for dc::wideband_inhib_vars_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< wb_inhib_cfg_t >

dc::wideband_inhib
_vars_t

Public Member Functions
•
•
•
•

wideband_inhib_vars_t ()
void setchannels (unsigned int ch, unsigned int bnds)
wb_inhib_cfg_t ∗ current ()
void update ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.51

dc::wideband_inhib_vars_t Class Reference

295

Public Attributes
•
•
•
•
•
•
•
•

MHAParser::vfloat_t weights
MHAParser::float_t dl_map_min
MHAParser::float_t dl_map_max
MHAParser::float_t l_min
MHAParser::mfloat_t g_scale
MHAEvents::patchbay_t< wideband_inhib_vars_t > patchbay
unsigned int channels
unsigned int bands

Additional Inherited Members
5.51.1

5.51.1.1

Constructor & Destructor Documentation

wideband_inhib_vars_t()

dc::wideband_inhib_vars_t::wideband_inhib_vars_t ( )

5.51.2

5.51.2.1

Member Function Documentation

setchannels()

void dc::wideband_inhib_vars_t::setchannels (
unsigned int ch,
unsigned int bnds ) [inline]

5.51.2.2

current()

wb_inhib_cfg_t∗ dc::wideband_inhib_vars_t::current ( ) [inline]

5.51.2.3

update()

void dc::wideband_inhib_vars_t::update ( )

© 2005-2018 HörTech gGmbH, Oldenburg

296

5.51.3

5.51.3.1

CONTENTS

Member Data Documentation

weights

MHAParser::vfloat_t dc::wideband_inhib_vars_t::weights

5.51.3.2

dl_map_min

MHAParser::float_t dc::wideband_inhib_vars_t::dl_map_min

5.51.3.3

dl_map_max

MHAParser::float_t dc::wideband_inhib_vars_t::dl_map_max

5.51.3.4

l_min

MHAParser::float_t dc::wideband_inhib_vars_t::l_min

5.51.3.5

g_scale

MHAParser::mfloat_t dc::wideband_inhib_vars_t::g_scale

5.51.3.6

patchbay

MHAEvents::patchbay_t< wideband_inhib_vars_t> dc::wideband_inhib_vars_t::patchbay

5.51.3.7

channels

unsigned int dc::wideband_inhib_vars_t::channels

© 2005-2018 HörTech gGmbH, Oldenburg

5.52

dc_simple::dc_if_t Class Reference

5.51.3.8

297

bands

unsigned int dc::wideband_inhib_vars_t::bands

The documentation for this class was generated from the following file:
• dc.cpp

5.52

dc_simple::dc_if_t Class Reference

Inheritance diagram for dc_simple::dc_if_t:

MHAParser::base_t

MHAPlugin::config_t
< runtime_cfg_t >

MHAParser::parser_t

DC

LEVEL

dc_simple::dc_vars_t

dc_simple::dc_if_t

Public Member Functions
•
•
•
•
•

dc_if_t (const algo_comm_t &ac_, const std::string &th_, const std::string &al_)
void prepare ( mhaconfig_t &tf)
void release ()
mha_spec_t ∗ process ( mha_spec_t ∗)
mha_wave_t ∗ process ( mha_wave_t ∗)

Private Member Functions
•
•
•
•
•
•

void
void
void
void
void
void

update_dc ()
update_level ()
has_been_modified ()
read_modified ()
update_level_mon ()
update_gain_mon ()

© 2005-2018 HörTech gGmbH, Oldenburg

298

CONTENTS

Private Attributes
•
•
•
•
•
•
•
•
•
•
•

MHAParser::string_t clientid
MHAParser::string_t gainrule
MHAParser::string_t preset
MHAParser::int_mon_t modified
MHAParser::vfloat_mon_t mon_l
MHAParser::vfloat_mon_t mon_g
MHAParser::string_t filterbank
MHAParser::vfloat_mon_t center_frequencies
MHAParser::vfloat_mon_t edge_frequencies
MHAEvents::patchbay_t< dc_if_t > patchbay
bool prepared

Additional Inherited Members
5.52.1

5.52.1.1

Constructor & Destructor Documentation

dc_if_t()

dc_simple::dc_if_t::dc_if_t (
const

algo_comm_t & ac_,

const std::string & th_,
const std::string & al_ )

5.52.2

5.52.2.1

Member Function Documentation

prepare()

void dc_simple::dc_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< runtime_cfg_t > (p. 884).

5.52.2.2

release()

void dc_simple::dc_if_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< runtime_cfg_t > (p. 885).

© 2005-2018 HörTech gGmbH, Oldenburg

5.52

dc_simple::dc_if_t Class Reference

5.52.2.3

299

process() [1/2]

mha_spec_t ∗ dc_simple::dc_if_t::process (
mha_spec_t ∗ s )

5.52.2.4

process() [2/2]

mha_wave_t ∗ dc_simple::dc_if_t::process (
mha_wave_t ∗ s )

5.52.2.5

update_dc()

void dc_simple::dc_if_t::update_dc ( ) [private]

5.52.2.6

update_level()

void dc_simple::dc_if_t::update_level ( ) [private]

5.52.2.7

has_been_modified()

void dc_simple::dc_if_t::has_been_modified ( ) [inline], [private]

5.52.2.8

read_modified()

void dc_simple::dc_if_t::read_modified ( ) [inline], [private]

5.52.2.9

update_level_mon()

void dc_simple::dc_if_t::update_level_mon ( ) [private]

5.52.2.10

update_gain_mon()

void dc_simple::dc_if_t::update_gain_mon ( ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

300

5.52.3

5.52.3.1

CONTENTS

Member Data Documentation

clientid

MHAParser::string_t dc_simple::dc_if_t::clientid [private]

5.52.3.2

gainrule

MHAParser::string_t dc_simple::dc_if_t::gainrule [private]

5.52.3.3

preset

MHAParser::string_t dc_simple::dc_if_t::preset [private]

5.52.3.4

modified

MHAParser::int_mon_t dc_simple::dc_if_t::modified [private]

5.52.3.5

mon_l

MHAParser::vfloat_mon_t dc_simple::dc_if_t::mon_l [private]

5.52.3.6

mon_g

MHAParser::vfloat_mon_t dc_simple::dc_if_t::mon_g [private]

5.52.3.7

filterbank

MHAParser::string_t dc_simple::dc_if_t::filterbank [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.53

dc_simple::dc_t Class Reference

5.52.3.8

301

center_frequencies

MHAParser::vfloat_mon_t dc_simple::dc_if_t::center_frequencies [private]

5.52.3.9

edge_frequencies

MHAParser::vfloat_mon_t dc_simple::dc_if_t::edge_frequencies [private]

5.52.3.10

patchbay

MHAEvents::patchbay_t< dc_if_t> dc_simple::dc_if_t::patchbay [private]

5.52.3.11

prepared

bool dc_simple::dc_if_t::prepared [private]

The documentation for this class was generated from the following file:
• dc_simple.cpp

5.53

dc_simple::dc_t Class Reference

Inheritance diagram for dc_simple::dc_t:

dc_simple::dc_vars
_validator_t

dc_simple::dc_t

© 2005-2018 HörTech gGmbH, Oldenburg

302

CONTENTS

Classes
• class line_t

Public Member Functions
• dc_t (const dc_vars_t &vars, mha_real_t filter_rate, unsigned int nch, unsigned int
fftlen)
• mha_spec_t ∗ process ( mha_spec_t ∗, mha_wave_t ∗level_db)
• mha_wave_t ∗ process ( mha_wave_t ∗, mha_wave_t ∗level_db)

Public Attributes
• std::vector< float > mon_l
• std::vector< float > mon_g

Private Attributes
•
•
•
•
•
•
•

std::vector<
std::vector<
std::vector<
std::vector<
std::vector<
std::vector<
unsigned int

mha_real_t > expansion_threshold
mha_real_t > limiter_threshold
line_t > compression
line_t > expansion
line_t > limiter
mha_real_t > maxgain
nbands

Additional Inherited Members
5.53.1

5.53.1.1

Constructor & Destructor Documentation

dc_t()

dc_simple::dc_t::dc_t (
const

dc_vars_t & vars,

mha_real_t filter_rate,
unsigned int nch,
unsigned int fftlen )

5.53.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.53

dc_simple::dc_t Class Reference

5.53.2.1

303

process() [1/2]

mha_spec_t ∗ dc_simple::dc_t::process (
mha_spec_t ∗ s,
mha_wave_t ∗ level_db )

5.53.2.2

process() [2/2]

mha_wave_t ∗ dc_simple::dc_t::process (
mha_wave_t ∗ s,
mha_wave_t ∗ level_db )

5.53.3

5.53.3.1

Member Data Documentation

expansion_threshold

std::vector< mha_real_t> dc_simple::dc_t::expansion_threshold [private]

5.53.3.2

limiter_threshold

std::vector< mha_real_t> dc_simple::dc_t::limiter_threshold [private]

5.53.3.3

compression

std::vector< line_t> dc_simple::dc_t::compression [private]

5.53.3.4

expansion

std::vector< line_t> dc_simple::dc_t::expansion [private]

5.53.3.5

limiter

std::vector< line_t> dc_simple::dc_t::limiter [private]

© 2005-2018 HörTech gGmbH, Oldenburg

304

5.53.3.6

CONTENTS

maxgain

std::vector< mha_real_t> dc_simple::dc_t::maxgain [private]

5.53.3.7

nbands

unsigned int dc_simple::dc_t::nbands [private]

5.53.3.8

mon_l

std::vector dc_simple::dc_t::mon_l

5.53.3.9

mon_g

std::vector dc_simple::dc_t::mon_g

The documentation for this class was generated from the following file:
• dc_simple.cpp

5.54

dc_simple::dc_t::line_t Class Reference

Public Member Functions
• line_t ( mha_real_t x1, mha_real_t y1, mha_real_t x2, mha_real_t y2)
• line_t ( mha_real_t x1, mha_real_t y1, mha_real_t slope)
• mha_real_t operator() ( mha_real_t x)

Private Attributes
• mha_real_t m
• mha_real_t y0

5.54.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.54

dc_simple::dc_t::line_t Class Reference

5.54.1.1

line_t() [1/2]

dc_simple::dc_t::line_t::line_t (
mha_real_t x1,
mha_real_t y1,
mha_real_t x2,
mha_real_t y2 )

5.54.1.2

line_t() [2/2]

dc_simple::dc_t::line_t::line_t (
mha_real_t x1,
mha_real_t y1,
mha_real_t slope )

5.54.2

5.54.2.1

Member Function Documentation

operator()()

mha_real_t dc_simple::dc_t::line_t::operator() (
mha_real_t x ) [inline]

5.54.3

5.54.3.1

Member Data Documentation

m

mha_real_t dc_simple::dc_t::line_t::m [private]

5.54.3.2

y0

mha_real_t dc_simple::dc_t::line_t::y0 [private]

The documentation for this class was generated from the following file:
• dc_simple.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

305

306

5.55

CONTENTS

dc_simple::dc_vars_t Class Reference

Inheritance diagram for dc_simple::dc_vars_t:

dc_simple::dc_vars_t

dc_simple::dc_if_t

Public Member Functions
• dc_vars_t ( MHAParser::parser_t &)

Public Attributes
•
•
•
•
•
•
•
•
•

MHAParser::vfloat_t g50
MHAParser::vfloat_t g80
MHAParser::vfloat_t maxgain
MHAParser::vfloat_t expansion_threshold
MHAParser::vfloat_t expansion_slope
MHAParser::vfloat_t limiter_threshold
MHAParser::vfloat_t tauattack
MHAParser::vfloat_t taudecay
MHAParser::bool_t bypass

5.55.1

5.55.1.1

Constructor & Destructor Documentation

dc_vars_t()

dc_simple::dc_vars_t::dc_vars_t (
MHAParser::parser_t & p )

© 2005-2018 HörTech gGmbH, Oldenburg

5.55

dc_simple::dc_vars_t Class Reference

5.55.2

5.55.2.1

Member Data Documentation

g50

MHAParser::vfloat_t dc_simple::dc_vars_t::g50

5.55.2.2

g80

MHAParser::vfloat_t dc_simple::dc_vars_t::g80

5.55.2.3

maxgain

MHAParser::vfloat_t dc_simple::dc_vars_t::maxgain

5.55.2.4

expansion_threshold

MHAParser::vfloat_t dc_simple::dc_vars_t::expansion_threshold

5.55.2.5

expansion_slope

MHAParser::vfloat_t dc_simple::dc_vars_t::expansion_slope

5.55.2.6

limiter_threshold

MHAParser::vfloat_t dc_simple::dc_vars_t::limiter_threshold

5.55.2.7

tauattack

MHAParser::vfloat_t dc_simple::dc_vars_t::tauattack

© 2005-2018 HörTech gGmbH, Oldenburg

307

308

5.55.2.8

CONTENTS

taudecay

MHAParser::vfloat_t dc_simple::dc_vars_t::taudecay

5.55.2.9

bypass

MHAParser::bool_t dc_simple::dc_vars_t::bypass

The documentation for this class was generated from the following file:

• dc_simple.cpp

5.56

dc_simple::dc_vars_validator_t Class Reference

Inheritance diagram for dc_simple::dc_vars_validator_t:

dc_simple::dc_vars
_validator_t

dc_simple::dc_t

dc_simple::level_smoother_t

Public Member Functions
• dc_vars_validator_t (const dc_vars_t &v, unsigned int s)

5.56.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.57

dc_simple::level_smoother_t Class Reference

5.56.1.1

309

dc_vars_validator_t()

dc_simple::dc_vars_validator_t::dc_vars_validator_t (
const

dc_vars_t & v,

unsigned int s )

The documentation for this class was generated from the following file:
• dc_simple.cpp

5.57

dc_simple::level_smoother_t Class Reference

Inheritance diagram for dc_simple::level_smoother_t:

dc_simple::dc_vars
_validator_t

dc_simple::level_smoother_t

Public Member Functions
• level_smoother_t (const dc_vars_t &vars, mha_real_t filter_rate, mhaconfig_←t buscfg)
• mha_wave_t ∗ process ( mha_spec_t ∗)
• mha_wave_t ∗ process ( mha_wave_t ∗)

Private Attributes
•
•
•
•
•
•

MHAFilter::o1flt_lowpass_t attack
MHAFilter::o1flt_maxtrack_t decay
unsigned int nbands
unsigned int fftlen
MHASignal::waveform_t level_wave
MHASignal::waveform_t level_spec

© 2005-2018 HörTech gGmbH, Oldenburg

310

CONTENTS

Additional Inherited Members
5.57.1

5.57.1.1

Constructor & Destructor Documentation

level_smoother_t()

dc_simple::level_smoother_t::level_smoother_t (
const

dc_vars_t & vars,

mha_real_t filter_rate,
mhaconfig_t buscfg )

5.57.2

5.57.2.1

Member Function Documentation

process() [1/2]

mha_wave_t ∗ dc_simple::level_smoother_t::process (
mha_spec_t ∗ s )

5.57.2.2

process() [2/2]

mha_wave_t ∗ dc_simple::level_smoother_t::process (
mha_wave_t ∗ s )

5.57.3

5.57.3.1

Member Data Documentation

attack

MHAFilter::o1flt_lowpass_t dc_simple::level_smoother_t::attack [private]

5.57.3.2

decay

MHAFilter::o1flt_maxtrack_t dc_simple::level_smoother_t::decay [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.58

delay::interface_t Class Reference

5.57.3.3

311

nbands

unsigned int dc_simple::level_smoother_t::nbands [private]

5.57.3.4

fftlen

unsigned int dc_simple::level_smoother_t::fftlen [private]

5.57.3.5

level_wave

MHASignal::waveform_t dc_simple::level_smoother_t::level_wave [private]

5.57.3.6

level_spec

MHASignal::waveform_t dc_simple::level_smoother_t::level_spec [private]

The documentation for this class was generated from the following file:
• dc_simple.cpp

5.58

delay::interface_t Class Reference

Inheritance diagram for delay::interface_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< MHASignal::delay_t >

MHAPlugin::plugin_t
< MHASignal::delay_t >

delay::interface_t

© 2005-2018 HörTech gGmbH, Oldenburg

312

CONTENTS

Public Member Functions
• interface_t (const algo_comm_t &, const std::string &, const std::string &)
• void prepare ( mhaconfig_t &)
• mha_wave_t ∗ process ( mha_wave_t ∗)

Private Member Functions
• void update ()

Private Attributes
• MHAParser::vint_t delays
• MHAEvents::patchbay_t< interface_t > patchbay

Additional Inherited Members

5.58.1

5.58.1.1

Constructor & Destructor Documentation

interface_t()

delay::interface_t::interface_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

5.58.2

5.58.2.1

)

Member Function Documentation

prepare()

void delay::interface_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< MHASignal::delay_t > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

5.59

delaysum::delaysum_if_t Class Reference

5.58.2.2

313

process()

mha_wave_t ∗ delay::interface_t::process (
mha_wave_t ∗ s )

5.58.2.3

update()

void delay::interface_t::update ( ) [private]

5.58.3

Member Data Documentation

5.58.3.1

delays

MHAParser::vint_t delay::interface_t::delays [private]

5.58.3.2

patchbay

MHAEvents::patchbay_t< interface_t> delay::interface_t::patchbay [private]

The documentation for this class was generated from the following file:

• delay.cpp

5.59

delaysum::delaysum_if_t Class Reference

Interface class for the delaysum plugin.
© 2005-2018 HörTech gGmbH, Oldenburg

314

CONTENTS

Inheritance diagram for delaysum::delaysum_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< delaysum_t >

MHAPlugin::plugin_t
< delaysum_t >

delaysum::delaysum_if_t

Public Member Functions
•
•
•
•

delaysum_if_t (const algo_comm_t &, const std::string &, const std::string &)
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)
void release ()

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAParser::vfloat_t weights
Linear weights to be multiplied with the audio signal, one factor for each channel.

• MHAParser::vint_t delay
vector of channel-specific delays, in samples.

• MHAEvents::patchbay_t< delaysum_if_t > patchbay
The patchbay to react to config changes.
© 2005-2018 HörTech gGmbH, Oldenburg

5.59

delaysum::delaysum_if_t Class Reference

315

Additional Inherited Members

5.59.1

Detailed Description

Interface class for the delaysum plugin.
This plugin allows to delay and sum multiple input channels using individual delays and weights.
After each channel gets delayed it is multiplied with the given weight and then added to the
single outout channel.

5.59.2

5.59.2.1

Constructor & Destructor Documentation

delaysum_if_t()

delaysum::delaysum_if_t::delaysum_if_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

5.59.3

5.59.3.1

)

Member Function Documentation

process()

mha_wave_t ∗ delaysum::delaysum_if_t::process (
mha_wave_t ∗ wave )

5.59.3.2

prepare()

void delaysum::delaysum_if_t::prepare (
mhaconfig_t & tfcfg ) [virtual]

Implements MHAPlugin::plugin_t< delaysum_t > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

316

5.59.3.3

CONTENTS

release()

void delaysum::delaysum_if_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< delaysum_t > (p. 885).

5.59.3.4

update_cfg()

void delaysum::delaysum_if_t::update_cfg (
void

5.59.4

5.59.4.1

) [private]

Member Data Documentation

weights

MHAParser::vfloat_t delaysum::delaysum_if_t::weights [private]

Linear weights to be multiplied with the audio signal, one factor for each channel.
Order is [chan0, chan1, ...]
5.59.4.2

delay

MHAParser::vint_t delaysum::delaysum_if_t::delay [private]

vector of channel-specific delays, in samples.

5.59.4.3

patchbay

MHAEvents::patchbay_t< delaysum_if_t> delaysum::delaysum_if_t::patchbay [private]

The patchbay to react to config changes.
The documentation for this class was generated from the following file:
• delaysum.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.60

delaysum::delaysum_t Class Reference

5.60

delaysum::delaysum_t Class Reference

317

Runtime configuration of the delaysum plugin.
Inheritance diagram for delaysum::delaysum_t:

MHASignal::delay_t

delaysum::delaysum_t

Public Member Functions
• delaysum_t (unsigned int nch, unsigned int fragsize, const std::vector< mha_real_t >
&weights_, const std::vector< int > &delays_)
Constructor of the runtime configuration.

• mha_wave_t ∗ process ( mha_wave_t ∗)

Private Attributes
• std::vector< mha_real_t > weights
Relative weights for each channel. Order is [chan0, chan1, ...].

• MHASignal::waveform_t out
Output waveform.

5.60.1

Detailed Description

Runtime configuration of the delaysum plugin.
Inherits from the already present delay_t class. The constructor initializes and validates the
runtime configuration and forwards the delay vector to the delay_t class. The process function
first calls delay_t::process and then multiplies every output channel with its weight and adds
them into the output channel.

5.60.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

318

5.60.2.1

CONTENTS

delaysum_t()

delaysum::delaysum_t::delaysum_t (
unsigned int nch,
unsigned int fragsize,
const std::vector<

mha_real_t > & weights_,

const std::vector< int > & delays_ )

Constructor of the runtime configuration.
Parameters
nch

Number of input channels.

fragsize

Size of one input fragment in frames.

weights←- Vector of weights for each channel.
_
delays←- Vector of delays, one entry per channel.
_

5.60.3

5.60.3.1

Member Function Documentation

process()

mha_wave_t ∗ delaysum::delaysum_t::process (
mha_wave_t ∗ signal )

5.60.4

5.60.4.1

Member Data Documentation

weights

std::vector< mha_real_t> delaysum::delaysum_t::weights [private]

Relative weights for each channel. Order is [chan0, chan1, ...].

© 2005-2018 HörTech gGmbH, Oldenburg

5.61

doasvm_classification Class Reference

5.60.4.2

319

out

MHASignal::waveform_t delaysum::delaysum_t::out [private]

Output waveform.
The documentation for this class was generated from the following file:
• delaysum.cpp

5.61

doasvm_classification Class Reference

Inheritance diagram for doasvm_classification:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< doasvm_classification
_config >

MHAPlugin::plugin_t
< doasvm_classification
_config >

doasvm_classification

Public Member Functions
• doasvm_classification ( algo_comm_t & ac, const std::string &chain_name, const
std::string &algo_name)
Constructs our plugin.

• ∼doasvm_classification ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
Checks for the most recent configuration and defers processing to it.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)
© 2005-2018 HörTech gGmbH, Oldenburg

320

CONTENTS

Public Attributes
•
•
•
•
•
•
•
•

MHAParser::vfloat_t angles
MHAParser::mfloat_t w
MHAParser::vfloat_t b
MHAParser::vfloat_t x
MHAParser::vfloat_t y
MHAParser::string_t p_name
MHAParser::string_t max_p_ind_name
MHAParser::string_t vGCC_name

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< doasvm_classification > patchbay

Additional Inherited Members
5.61.1

5.61.1.1

Constructor & Destructor Documentation

doasvm_classification()

doasvm_classification::doasvm_classification (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.

5.61.1.2 ∼doasvm_classification()
doasvm_classification::∼doasvm_classification ( )

5.61.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.61

doasvm_classification Class Reference

5.61.2.1

321

process()

mha_wave_t ∗ doasvm_classification::process (
mha_wave_t ∗ signal )

Checks for the most recent configuration and defers processing to it.

5.61.2.2

prepare()

void doasvm_classification::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.
Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< doasvm_classification_config > (p. 884).

5.61.2.3

release()

void doasvm_classification::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< doasvm_classification_config > (p. 885).

5.61.2.4

update_cfg()

void doasvm_classification::update_cfg ( ) [private]

5.61.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

322

5.61.3.1

CONTENTS

angles

MHAParser::vfloat_t doasvm_classification::angles

5.61.3.2

w

MHAParser::mfloat_t doasvm_classification::w

5.61.3.3

b

MHAParser::vfloat_t doasvm_classification::b

5.61.3.4

x

MHAParser::vfloat_t doasvm_classification::x

5.61.3.5

y

MHAParser::vfloat_t doasvm_classification::y

5.61.3.6

p_name

MHAParser::string_t doasvm_classification::p_name

5.61.3.7

max_p_ind_name

MHAParser::string_t doasvm_classification::max_p_ind_name

5.61.3.8

vGCC_name

MHAParser::string_t doasvm_classification::vGCC_name

© 2005-2018 HörTech gGmbH, Oldenburg

5.62

doasvm_classification_config Class Reference

5.61.3.9

323

patchbay

MHAEvents::patchbay_t< doasvm_classification> doasvm_classification::patchbay [private]

The documentation for this class was generated from the following files:
• doasvm_classification.h
• doasvm_classification.cpp

5.62

doasvm_classification_config Class Reference

Public Member Functions
•

doasvm_classification_config ( algo_comm_t & ac, const
doasvm_classification ∗_doasvm)
• ∼doasvm_classification_config ()
• mha_wave_t ∗ process ( mha_wave_t ∗)

Public Attributes
•
•
•
•
•

algo_comm_t & ac
doasvm_classification ∗ doasvm
MHA_AC::waveform_t p
MHA_AC::int_t p_max
mha_wave_t c

5.62.1

5.62.1.1

Constructor & Destructor Documentation

doasvm_classification_config()

doasvm_classification_config::doasvm_classification_config (
algo_comm_t & ac,
const

mhaconfig_t in_cfg,

doasvm_classification ∗ _doasvm )

5.62.1.2 ∼doasvm_classification_config()
doasvm_classification_config::∼doasvm_classification_config ( )

© 2005-2018 HörTech gGmbH, Oldenburg

mhaconfig_t in_cfg,

324

5.62.2

5.62.2.1

CONTENTS

Member Function Documentation

process()

mha_wave_t ∗ doasvm_classification_config::process (
mha_wave_t ∗ wave )

5.62.3

5.62.3.1

Member Data Documentation

ac

algo_comm_t& doasvm_classification_config::ac

5.62.3.2

doasvm

doasvm_classification∗ doasvm_classification_config::doasvm

5.62.3.3

p

MHA_AC::waveform_t doasvm_classification_config::p

5.62.3.4

p_max

MHA_AC::int_t doasvm_classification_config::p_max

5.62.3.5

c

mha_wave_t doasvm_classification_config::c

The documentation for this class was generated from the following files:
• doasvm_classification.h
• doasvm_classification.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.63

doasvm_feature_extraction Class Reference

5.63

doasvm_feature_extraction Class Reference

325

Inheritance diagram for doasvm_feature_extraction:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< doasvm_feature_extraction
_config >

MHAPlugin::plugin_t
< doasvm_feature_extraction
_config >

doasvm_feature_extraction

Public Member Functions
•

doasvm_feature_extraction ( algo_comm_t & ac, const std::string &chain_name,
const std::string &algo_name)
Constructs our plugin.

• ∼doasvm_feature_extraction ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
Checks for the most recent configuration and defers processing to it.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)

Public Attributes
•
•
•
•

MHAParser::int_t fftlen
MHAParser::int_t max_lag
MHAParser::int_t nupsample
MHAParser::string_t vGCC_name

© 2005-2018 HörTech gGmbH, Oldenburg

326

CONTENTS

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< doasvm_feature_extraction > patchbay

Additional Inherited Members
5.63.1

5.63.1.1

Constructor & Destructor Documentation

doasvm_feature_extraction()

doasvm_feature_extraction::doasvm_feature_extraction (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.

5.63.1.2 ∼doasvm_feature_extraction()
doasvm_feature_extraction::∼doasvm_feature_extraction ( )

5.63.2

5.63.2.1

Member Function Documentation

process()

mha_wave_t ∗ doasvm_feature_extraction::process (
mha_wave_t ∗ signal )

Checks for the most recent configuration and defers processing to it.

5.63.2.2

prepare()

void doasvm_feature_extraction::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.

© 2005-2018 HörTech gGmbH, Oldenburg

5.63

doasvm_feature_extraction Class Reference

327

Parameters
Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

signal_info

Implements MHAPlugin::plugin_t< doasvm_feature_extraction_config > (p. 884).

5.63.2.3

release()

void doasvm_feature_extraction::release (
void

) [inline], [virtual]

Reimplemented from
(p. 885).

5.63.2.4

MHAPlugin::plugin_t< doasvm_feature_extraction_config >

update_cfg()

void doasvm_feature_extraction::update_cfg ( ) [private]

5.63.3

5.63.3.1

Member Data Documentation

fftlen

MHAParser::int_t doasvm_feature_extraction::fftlen

5.63.3.2

max_lag

MHAParser::int_t doasvm_feature_extraction::max_lag

5.63.3.3

nupsample

MHAParser::int_t doasvm_feature_extraction::nupsample

© 2005-2018 HörTech gGmbH, Oldenburg

328

5.63.3.4

CONTENTS

vGCC_name

MHAParser::string_t doasvm_feature_extraction::vGCC_name

5.63.3.5

patchbay

MHAEvents::patchbay_t< doasvm_feature_extraction> doasvm_feature_extraction::patchbay
[private]

The documentation for this class was generated from the following files:
• doasvm_feature_extraction.h
• doasvm_feature_extraction.cpp

5.64

doasvm_feature_extraction_config Class Reference

Public Member Functions
• doasvm_feature_extraction_config ( algo_comm_t &ac, const mhaconfig_t in_cfg,
doasvm_feature_extraction ∗_doagcc)
• ∼doasvm_feature_extraction_config ()
• mha_wave_t ∗ process ( mha_wave_t ∗)

Public Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

doasvm_feature_extraction ∗ doagcc
unsigned int wndlen
unsigned int fftlen
unsigned int G_length
unsigned int GCC_start
unsigned int GCC_end
MHA_AC::waveform_t vGCC_ac
mha_fft_t fft
mha_fft_t ifft
double hifftwin_sum
MHASignal::waveform_t proc_wave
MHASignal::waveform_t hwin
MHASignal::waveform_t hifftwin
MHASignal::waveform_t vGCC
MHASignal::spectrum_t in_spec
MHASignal::spectrum_t G
© 2005-2018 HörTech gGmbH, Oldenburg

5.64

doasvm_feature_extraction_config Class Reference

5.64.1

5.64.1.1

329

Constructor & Destructor Documentation

doasvm_feature_extraction_config()

doasvm_feature_extraction_config::doasvm_feature_extraction_config (
algo_comm_t & ac,
const

mhaconfig_t in_cfg,

doasvm_feature_extraction ∗ _doagcc )

5.64.1.2 ∼doasvm_feature_extraction_config()
doasvm_feature_extraction_config::∼doasvm_feature_extraction_config ( )

5.64.2

5.64.2.1

Member Function Documentation

process()

mha_wave_t ∗ doasvm_feature_extraction_config::process (
mha_wave_t ∗ wave )

5.64.3

5.64.3.1

Member Data Documentation

doagcc

doasvm_feature_extraction∗ doasvm_feature_extraction_config::doagcc

5.64.3.2

wndlen

unsigned int doasvm_feature_extraction_config::wndlen

© 2005-2018 HörTech gGmbH, Oldenburg

330

5.64.3.3

CONTENTS

fftlen

unsigned int doasvm_feature_extraction_config::fftlen

5.64.3.4

G_length

unsigned int doasvm_feature_extraction_config::G_length

5.64.3.5

GCC_start

unsigned int doasvm_feature_extraction_config::GCC_start

5.64.3.6

GCC_end

unsigned int doasvm_feature_extraction_config::GCC_end

5.64.3.7

vGCC_ac

MHA_AC::waveform_t doasvm_feature_extraction_config::vGCC_ac

5.64.3.8

fft

mha_fft_t doasvm_feature_extraction_config::fft

5.64.3.9

ifft

mha_fft_t doasvm_feature_extraction_config::ifft

5.64.3.10

hifftwin_sum

double doasvm_feature_extraction_config::hifftwin_sum

© 2005-2018 HörTech gGmbH, Oldenburg

5.64

doasvm_feature_extraction_config Class Reference

5.64.3.11

331

proc_wave

MHASignal::waveform_t doasvm_feature_extraction_config::proc_wave

5.64.3.12

hwin

MHASignal::waveform_t doasvm_feature_extraction_config::hwin

5.64.3.13

hifftwin

MHASignal::waveform_t doasvm_feature_extraction_config::hifftwin

5.64.3.14

vGCC

MHASignal::waveform_t doasvm_feature_extraction_config::vGCC

5.64.3.15

in_spec

MHASignal::spectrum_t doasvm_feature_extraction_config::in_spec

5.64.3.16

G

MHASignal::spectrum_t doasvm_feature_extraction_config::G

The documentation for this class was generated from the following files:

• doasvm_feature_extraction.h
• doasvm_feature_extraction.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

332

5.65

CONTENTS

droptect_t Class Reference

Detect dropouts in a signal with a constant spectrum.
Inheritance diagram for droptect_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< int >

MHAPlugin::plugin_t
< int >

droptect_t

Public Member Functions
•

droptect_t ( algo_comm_t & ac, const std::string &chain_name, const std::string
&algo_name)
This constructor initializes the configuration language variables and inserts them into the MHA
configuration tree.

• void prepare ( mhaconfig_t &signal_info)
• void release (void)
• mha_spec_t ∗ process ( mha_spec_t ∗signal)

Private Attributes
•
•
•
•
•
•

MHAParser::vint_mon_t dropouts
MHAParser::vint_mon_t consecutive_dropouts
MHAParser::int_mon_t blocks
MHAParser::bool_t reset
MHAParser::float_t threshold
MHASignal::waveform_t ∗ current_powspec
© 2005-2018 HörTech gGmbH, Oldenburg

5.65
•
•
•
•

droptect_t Class Reference

333

MHASignal::waveform_t ∗ filtered_powspec
MHAParser::float_t tau
std::vector< bool > filter_activated
float period
The period of the process callback.

• MHAParser::mfloat_mon_t filtered_powspec_mon
User access to filtered spectrum.

• MHAParser::float_mon_t level_mon

Additional Inherited Members
5.65.1

Detailed Description

Detect dropouts in a signal with a constant spectrum.

5.65.2

5.65.2.1

Constructor & Destructor Documentation

droptect_t()

droptect_t::droptect_t (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

This constructor initializes the configuration language variables and inserts them into the MHA
configuration tree.

5.65.3

5.65.3.1

Member Function Documentation

prepare()

void droptect_t::prepare (
mhaconfig_t & signal_info ) [virtual]

Implements MHAPlugin::plugin_t< int > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

334

5.65.3.2

CONTENTS

release()

void droptect_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< int > (p. 885).

5.65.3.3

process()

mha_spec_t ∗ droptect_t::process (
mha_spec_t ∗ signal )

5.65.4

5.65.4.1

Member Data Documentation

dropouts

MHAParser::vint_mon_t droptect_t::dropouts [private]

5.65.4.2

consecutive_dropouts

MHAParser::vint_mon_t droptect_t::consecutive_dropouts [private]

5.65.4.3

blocks

MHAParser::int_mon_t droptect_t::blocks [private]

5.65.4.4

reset

MHAParser::bool_t droptect_t::reset [private]

5.65.4.5

threshold

MHAParser::float_t droptect_t::threshold [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.65

droptect_t Class Reference

5.65.4.6

335

current_powspec

MHASignal::waveform_t∗ droptect_t::current_powspec [private]

5.65.4.7

filtered_powspec

MHASignal::waveform_t∗ droptect_t::filtered_powspec [private]

5.65.4.8

tau

MHAParser::float_t droptect_t::tau [private]

5.65.4.9

filter_activated

std::vector droptect_t::filter_activated [private]

5.65.4.10

period

float droptect_t::period [private]

The period of the process callback.

5.65.4.11

filtered_powspec_mon

MHAParser::mfloat_mon_t droptect_t::filtered_powspec_mon [private]

User access to filtered spectrum.

5.65.4.12

level_mon

MHAParser::float_mon_t droptect_t::level_mon [private]

The documentation for this class was generated from the following file:
• droptect.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

336

5.66

CONTENTS

ds_t Class Reference

Inheritance diagram for ds_t:

MHAParser::base_t

MHAPlugin::config_t
< MHASignal::waveform_t >

MHAParser::parser_t

MHAPlugin::plugin_t
< MHASignal::waveform_t >

ds_t

Public Member Functions
•
•
•
•

ds_t ( algo_comm_t, std::string, std::string)
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)
void release ()

Private Attributes
• MHAParser::int_t ratio
• MHAFilter::iir_filter_t antialias

Additional Inherited Members
5.66.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.66

ds_t Class Reference

5.66.1.1

337

ds_t()

ds_t::ds_t (
algo_comm_t iac,
std::string ,
std::string

5.66.2

5.66.2.1

)

Member Function Documentation

process()

mha_wave_t ∗ ds_t::process (
mha_wave_t ∗ s )

5.66.2.2

prepare()

void ds_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< MHASignal::waveform_t > (p. 884).

5.66.2.3

release()

void ds_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< MHASignal::waveform_t > (p. 885).

5.66.3

5.66.3.1

Member Data Documentation

ratio

MHAParser::int_t ds_t::ratio [private]

© 2005-2018 HörTech gGmbH, Oldenburg

338

5.66.3.2

CONTENTS

antialias

MHAFilter::iir_filter_t ds_t::antialias [private]

The documentation for this class was generated from the following file:
• downsample.cpp

5.67

dynamiclib_t Class Reference

Public Member Functions
•
•
•
•
•
•

dynamiclib_t (const std::string &)
void ∗ resolve (const std::string &)
void ∗ resolve_checked (const std::string &)
∼dynamiclib_t ()
const std::string & getmodulename () const
const std::string & getname () const

Private Attributes
• std::string fullname
• std::string modulename
• mha_libhandle_t h

5.67.1

5.67.1.1

Constructor & Destructor Documentation

dynamiclib_t()

dynamiclib_t::dynamiclib_t (
const std::string & n )

5.67.1.2 ∼dynamiclib_t()
dynamiclib_t::∼dynamiclib_t ( )

5.67.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.67

dynamiclib_t Class Reference

5.67.2.1

339

resolve()

void ∗ dynamiclib_t::resolve (
const std::string & n )

5.67.2.2

resolve_checked()

void ∗ dynamiclib_t::resolve_checked (
const std::string & n )

5.67.2.3

getmodulename()

const std::string& dynamiclib_t::getmodulename ( ) const [inline]

5.67.2.4

getname()

const std::string& dynamiclib_t::getname ( ) const [inline]

5.67.3

5.67.3.1

Member Data Documentation

fullname

std::string dynamiclib_t::fullname [private]

5.67.3.2

modulename

std::string dynamiclib_t::modulename [private]

5.67.3.3

h

mha_libhandle_t dynamiclib_t::h [private]

The documentation for this class was generated from the following files:
• mha_os.h
• mha_os.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

340

5.68

CONTENTS

DynComp::dc_afterburn_rt_t Class Reference

Real-time class for after burn effect.
Public Member Functions
• dc_afterburn_rt_t (const std::vector< float > &cf, unsigned int channels, float srate,
const dc_afterburn_vars_t &vars)
• void burn (float &Gin, float Lin, unsigned int band, unsigned int channel)
gain modifier method (afterburn).

Private Attributes
•
•
•
•
•

std::vector< float > drain_inv
std::vector< float > conflux
std::vector< float > maxgain
std::vector< float > mpo_inv
std::vector< MHAFilter::o1flt_lowpass_t > lp

5.68.1

Detailed Description

Real-time class for after burn effect.
The constructor processes the parameters and creates pre-processed variables for efficient
realtime processing.
5.68.2

5.68.2.1

Constructor & Destructor Documentation

dc_afterburn_rt_t()

DynComp::dc_afterburn_rt_t::dc_afterburn_rt_t (
const std::vector< float > & cf,
unsigned int channels,
float srate,
const

5.68.3

5.68.3.1

dc_afterburn_vars_t & vars )

Member Function Documentation

burn()

void DynComp::dc_afterburn_rt_t::burn (
float & Gin,
float Lin,
unsigned int band,
unsigned int channel ) [inline]

gain modifier method (afterburn).

© 2005-2018 HörTech gGmbH, Oldenburg

5.68

DynComp::dc_afterburn_rt_t Class Reference

341

Parameters
Gin

Linear gain.

Lin
band
channel

Input level (Pascal).
Filter band number.
Channel number.

Output level for MPO is estimated by Gin ∗ Lin.

5.68.4

5.68.4.1

Member Data Documentation

drain_inv

std::vector DynComp::dc_afterburn_rt_t::drain_inv [private]

5.68.4.2

conflux

std::vector DynComp::dc_afterburn_rt_t::conflux [private]

5.68.4.3

maxgain

std::vector DynComp::dc_afterburn_rt_t::maxgain [private]

5.68.4.4

mpo_inv

std::vector DynComp::dc_afterburn_rt_t::mpo_inv [private]

5.68.4.5

lp

std::vector< MHAFilter::o1flt_lowpass_t> DynComp::dc_afterburn_rt_t::lp [private]

The documentation for this class was generated from the following files:
• dc_afterburn.h
• dc_afterburn.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

342

5.69

CONTENTS

DynComp::dc_afterburn_t Class Reference

Afterburn class, to be defined as a member of compressors.
Inheritance diagram for DynComp::dc_afterburn_t:

MHAParser::base_t

MHAParser::parser_t

DynComp::dc_afterburn
_vars_t

MHAPlugin::config_t
< dc_afterburn_rt_t >

DynComp::dc_afterburn_t

Public Member Functions
•
•
•
•
•

dc_afterburn_t ()
void set_fb_pars (const std::vector< float > &cf, unsigned int channels, float srate)
void unset_fb_pars ()
void update_burner ()
void burn (float &Gin, float Lin, unsigned int band, unsigned int channel)

Private Member Functions
• void update ()

Private Attributes
•
•
•
•
•
•

MHAEvents::patchbay_t< dc_afterburn_t > patchbay
std::vector< float > _cf
unsigned int _channels
float _srate
bool commit_pending
bool fb_pars_configured
© 2005-2018 HörTech gGmbH, Oldenburg

5.69

DynComp::dc_afterburn_t Class Reference

Additional Inherited Members

5.69.1

Detailed Description

Afterburn class, to be defined as a member of compressors.

5.69.2

5.69.2.1

Constructor & Destructor Documentation

dc_afterburn_t()

DynComp::dc_afterburn_t::dc_afterburn_t ( )

5.69.3

5.69.3.1

Member Function Documentation

set_fb_pars()

void DynComp::dc_afterburn_t::set_fb_pars (
const std::vector< float > & cf,
unsigned int channels,
float srate )

5.69.3.2

unset_fb_pars()

void DynComp::dc_afterburn_t::unset_fb_pars ( )

5.69.3.3

update_burner()

void DynComp::dc_afterburn_t::update_burner ( ) [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

343

344

5.69.3.4

CONTENTS

burn()

void DynComp::dc_afterburn_t::burn (
float & Gin,
float Lin,
unsigned int band,
unsigned int channel ) [inline]

5.69.3.5

update()

void DynComp::dc_afterburn_t::update ( ) [private]

5.69.4

5.69.4.1

Member Data Documentation

patchbay

MHAEvents::patchbay_t< dc_afterburn_t> DynComp::dc_afterburn_t::patchbay [private]

5.69.4.2

_cf

std::vector DynComp::dc_afterburn_t::_cf [private]

5.69.4.3

_channels

unsigned int DynComp::dc_afterburn_t::_channels [private]

5.69.4.4

_srate

float DynComp::dc_afterburn_t::_srate [private]

5.69.4.5

commit_pending

bool DynComp::dc_afterburn_t::commit_pending [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.70

DynComp::dc_afterburn_vars_t Class Reference

5.69.4.6

345

fb_pars_configured

bool DynComp::dc_afterburn_t::fb_pars_configured [private]

The documentation for this class was generated from the following files:
• dc_afterburn.h
• dc_afterburn.cpp

5.70

DynComp::dc_afterburn_vars_t Class Reference

Variables for dc_afterburn_t (p. 342) class.
Inheritance diagram for DynComp::dc_afterburn_vars_t:

MHAParser::base_t

MHAParser::parser_t

DynComp::dc_afterburn
_vars_t

DynComp::dc_afterburn_t

Public Member Functions
• dc_afterburn_vars_t ()
Public Attributes
•
•
•
•
•
•
•
•

MHAParser::vfloat_t f
MHAParser::vfloat_t drain
MHAParser::vfloat_t conflux
MHAParser::vfloat_t maxgain
MHAParser::vfloat_t mpo
MHAParser::float_t taugain
MHAParser::kw_t commit
MHAParser::bool_t bypass

© 2005-2018 HörTech gGmbH, Oldenburg

346

CONTENTS

Additional Inherited Members
5.70.1

Detailed Description

Variables for dc_afterburn_t (p. 342) class.

5.70.2

5.70.2.1

Constructor & Destructor Documentation

dc_afterburn_vars_t()

DynComp::dc_afterburn_vars_t::dc_afterburn_vars_t ( )

5.70.3

5.70.3.1

Member Data Documentation

f

MHAParser::vfloat_t DynComp::dc_afterburn_vars_t::f

5.70.3.2

drain

MHAParser::vfloat_t DynComp::dc_afterburn_vars_t::drain

5.70.3.3

conflux

MHAParser::vfloat_t DynComp::dc_afterburn_vars_t::conflux

5.70.3.4

maxgain

MHAParser::vfloat_t DynComp::dc_afterburn_vars_t::maxgain

© 2005-2018 HörTech gGmbH, Oldenburg

5.71

DynComp::gaintable_t Class Reference

5.70.3.5

347

mpo

MHAParser::vfloat_t DynComp::dc_afterburn_vars_t::mpo

5.70.3.6

taugain

MHAParser::float_t DynComp::dc_afterburn_vars_t::taugain

5.70.3.7

commit

MHAParser::kw_t DynComp::dc_afterburn_vars_t::commit

5.70.3.8

bypass

MHAParser::bool_t DynComp::dc_afterburn_vars_t::bypass

The documentation for this class was generated from the following files:
• dc_afterburn.h
• dc_afterburn.cpp

5.71

DynComp::gaintable_t Class Reference

Gain table class.
Public Member Functions
• gaintable_t (const std::vector< mha_real_t > &LInput, const std::vector< mha_real_t
> &FCenter, unsigned int channels)
Constructor.

• ∼gaintable_t ()
• void update (std::vector< std::vector< std::vector< mha_real_t > > > newGain)
Update gains from an external table.

• mha_real_t get_gain ( mha_real_t Lin, mha_real_t Fin, unsigned int channel)
Read Gain from gain table.

• mha_real_t get_gain ( mha_real_t Lin, unsigned int band, unsigned int channel)
Read Gain from gain table.

• void get_gain (const mha_wave_t &Lin, mha_wave_t &Gain)
Read Gains from gain table.

• unsigned int nbands () const
Return number of frequency bands.

• unsigned int nchannels () const
Return number of audio channels.

• std::vector< std::vector< mha_real_t > > get_iofun () const
Return current input-output function.

• std::vector< mha_real_t > get_vL () const
• std::vector< mha_real_t > get_vF () const
© 2005-2018 HörTech gGmbH, Oldenburg

348

CONTENTS

Private Attributes
•
•
•
•
•
•
•

unsigned int num_L
unsigned int num_F
unsigned int num_channels
std::vector< mha_real_t > vL
std::vector< mha_real_t > vF
std::vector< mha_real_t > vFlog
std::vector< std::vector< std::vector< mha_real_t > > > data

5.71.1

Detailed Description

Gain table class.
This gain table is intended to efficient table lookup, i.e, interpolation of levels, and optional
interpolation of frequencies. Sample input levels and sample frequencies are given in the constructor. The gain entries can be updated with the update() (p. 349) member function via a gain
prescription rule from an auditory profile.

5.71.2

Constructor & Destructor Documentation

5.71.2.1

gaintable_t()

gaintable_t::gaintable_t (
const std::vector<

mha_real_t > & LInput,

const std::vector<

mha_real_t > & FCenter,

unsigned int channels )

Constructor.
Parameters
LInput

Input level samples, in equivalent LTASS_combined dB SPL.

FCenter

Frequency samples in Hz (e.g., center frequencies of filterbank).

channels

Number of audio channels (typically 2).

5.71.2.2 ∼gaintable_t()

gaintable_t::∼gaintable_t ( )

© 2005-2018 HörTech gGmbH, Oldenburg

5.71

DynComp::gaintable_t Class Reference

5.71.3

5.71.3.1

349

Member Function Documentation

update()

void gaintable_t::update (
std::vector< std::vector< std::vector<

mha_real_t > > > newGain )

Update gains from an external table.
Parameters
newGain

New gain table entries.

Dimension change is not allowed. The number of entries are checked.
5.71.3.2

get_gain() [1/3]

mha_real_t gaintable_t::get_gain (
mha_real_t Lin,
mha_real_t Fin,
unsigned int channel )

Read Gain from gain table.
Parameters
Lin

Input level

Fin
channel

Input frequency (no match required)
Audio channel

5.71.3.3

get_gain() [2/3]

mha_real_t gaintable_t::get_gain (
mha_real_t Lin,
unsigned int band,
unsigned int channel )

Read Gain from gain table.
Parameters
Lin

Input level

band
Input frequency band
AudiogGmbH,
channel
© channel
2005-2018 HörTech
Oldenburg

350

5.71.3.4

CONTENTS

get_gain() [3/3]

void gaintable_t::get_gain (
const

mha_wave_t & Lin,

mha_wave_t & Gain )

Read Gains from gain table.
Parameters
Lin

Input levels.

Gain

Output gain.

The number of channels in Lin and Gain must match the number of bands times number of
channels in the gaintable.
5.71.3.5

nbands()

unsigned int DynComp::gaintable_t::nbands ( ) const [inline]

Return number of frequency bands.

5.71.3.6

nchannels()

unsigned int DynComp::gaintable_t::nchannels ( ) const [inline]

Return number of audio channels.

5.71.3.7

get_iofun()

std::vector< std::vector<

mha_real_t > > gaintable_t::get_iofun ( ) const

Return current input-output function.

5.71.3.8

get_vL()

std::vector< mha_real_t> DynComp::gaintable_t::get_vL ( ) const [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

5.71

DynComp::gaintable_t Class Reference

5.71.3.9

351

get_vF()

std::vector< mha_real_t> DynComp::gaintable_t::get_vF ( ) const [inline]

5.71.4

5.71.4.1

Member Data Documentation

num_L

unsigned int DynComp::gaintable_t::num_L [private]

5.71.4.2

num_F

unsigned int DynComp::gaintable_t::num_F [private]

5.71.4.3

num_channels

unsigned int DynComp::gaintable_t::num_channels [private]

5.71.4.4

vL

std::vector< mha_real_t> DynComp::gaintable_t::vL [private]

5.71.4.5

vF

std::vector< mha_real_t> DynComp::gaintable_t::vF [private]

5.71.4.6

vFlog

std::vector< mha_real_t> DynComp::gaintable_t::vFlog [private]

© 2005-2018 HörTech gGmbH, Oldenburg

352

5.71.4.7

CONTENTS

data

std::vector > > DynComp::gaintable_t::data
[private]

The documentation for this class was generated from the following files:
• gaintable.h
• gaintable.cpp

5.72

example1_t Class Reference

This C++ class implements the simplest example plugin for the step-by-step tutorial.
Inheritance diagram for example1_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< int >

MHAPlugin::plugin_t
< int >

example1_t

Public Member Functions
• example1_t ( algo_comm_t & ac, const std::string &chain_name, const std::string
&algo_name)
Do-nothing constructor.

• void release (void)
Release may be empty.

• void prepare ( mhaconfig_t &signal_info)
Plugin preparation.

• mha_wave_t ∗ process ( mha_wave_t ∗signal)
Signal processing performed by the plugin.
© 2005-2018 HörTech gGmbH, Oldenburg

5.72

example1_t Class Reference

353

Additional Inherited Members
5.72.1

Detailed Description

This C++ class implements the simplest example plugin for the step-by-step tutorial.
It inherits from MHAPlugin::plugin_t (p. 882) for correct integration in the configuration language interface.

5.72.2

5.72.2.1

Constructor & Destructor Documentation

example1_t()

example1_t::example1_t (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name ) [inline]

Do-nothing constructor.
The constructor has to take these three arguments, but it does not have to use them. However,
the base class has to be initialized.

5.72.3

5.72.3.1

Member Function Documentation

release()

void example1_t::release (
void

) [inline], [virtual]

Release may be empty.
Reimplemented from MHAPlugin::plugin_t< int > (p. 885).

5.72.3.2

prepare()

void example1_t::prepare (
mhaconfig_t & signal_info ) [inline], [virtual]

Plugin preparation.
This plugin checks that the input signal has the waveform domain and contains at least one
channel

© 2005-2018 HörTech gGmbH, Oldenburg

354

CONTENTS

Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< int > (p. 884).

5.72.3.3

process()

mha_wave_t∗ example1_t::process (
mha_wave_t ∗ signal ) [inline]

Signal processing performed by the plugin.
This plugin multiplies the signal in the first audio channel by a factor 0.1.
Parameters
signal

Pointer to the input signal structure.

Returns
Returns a pointer to the input signal structure, with a the signal modified by this plugin.
(In-place processing)

The documentation for this class was generated from the following file:

• example1.cpp

5.73

example2_t Class Reference

This C++ class implements the second example plugin for the step-by-step tutorial.
© 2005-2018 HörTech gGmbH, Oldenburg

5.73

example2_t Class Reference

355

Inheritance diagram for example2_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< int >

MHAPlugin::plugin_t
< int >

example2_t

Public Member Functions
• example2_t ( algo_comm_t & ac, const std::string &chain_name, const std::string
&algo_name)
This constructor initializes the configuration language variables and inserts them into the
openMHA configuration tree.

• void prepare ( mhaconfig_t &signal_info)
Plugin preparation.

• void release (void)
Undo restrictions posed in prepare.

• mha_wave_t ∗ process ( mha_wave_t ∗signal)
Signal processing performed by the plugin.

Private Attributes
• MHAParser::int_t scale_ch
Index of audio channel to scale.

• MHAParser::float_t factor
The scaling factor applied to the selected channel.
© 2005-2018 HörTech gGmbH, Oldenburg

356

CONTENTS

Additional Inherited Members
5.73.1

Detailed Description

This C++ class implements the second example plugin for the step-by-step tutorial.
It extends the first example by using configuration language variables to influence the processing.

5.73.2

5.73.2.1

Constructor & Destructor Documentation

example2_t()

example2_t::example2_t (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

This constructor initializes the configuration language variables and inserts them into the
openMHA configuration tree.

5.73.3

5.73.3.1

Member Function Documentation

prepare()

void example2_t::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
This plugin checks that the input signal has the waveform domain and contains enough channels.
Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< int > (p. 884).
© 2005-2018 HörTech gGmbH, Oldenburg

5.73

example2_t Class Reference

5.73.3.2

357

release()

void example2_t::release (
void

) [virtual]

Undo restrictions posed in prepare.
Reimplemented from MHAPlugin::plugin_t< int > (p. 885).

5.73.3.3

process()

mha_wave_t ∗ example2_t::process (
mha_wave_t ∗ signal )

Signal processing performed by the plugin.
This plugin multiplies the signal in the selected audio channel by the configured factor.
Parameters
signal

Pointer to the input signal structure.

Returns
Returns a pointer to the input signal structure, with a the signal modified by this plugin.
(In-place processing)

5.73.4

5.73.4.1

Member Data Documentation

scale_ch

MHAParser::int_t example2_t::scale_ch [private]

Index of audio channel to scale.

© 2005-2018 HörTech gGmbH, Oldenburg

358

5.73.4.2

CONTENTS

factor

MHAParser::float_t example2_t::factor [private]

The scaling factor applied to the selected channel.
The documentation for this class was generated from the following file:
• example2.cpp

5.74

example3_t Class Reference

A Plugin class using the openMHA Event mechanism.
Inheritance diagram for example3_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< int >

MHAPlugin::plugin_t
< int >

example3_t

Public Member Functions
• example3_t ( algo_comm_t & ac, const std::string &chain_name, const std::string
&algo_name)
This constructor initializes the configuration language variables and inserts them into the
openMHA configuration tree.

• void prepare ( mhaconfig_t &signal_info)
Plugin preparation.

• void release (void)
Bookkeeping only.

• mha_wave_t ∗ process ( mha_wave_t ∗signal)
Signal processing performed by the plugin.
© 2005-2018 HörTech gGmbH, Oldenburg

5.74

example3_t Class Reference

359

Private Member Functions
•
•
•
•

void
void
void
void

on_scale_ch_writeaccess ()
on_scale_ch_valuechanged ()
on_scale_ch_readaccess ()
on_prereadaccess ()

Private Attributes
• MHAParser::int_t scale_ch
Index of audio channel to scale.

• MHAParser::float_t factor
The scaling factor applied to the selected channel.

• MHAParser::int_mon_t prepared
Keep Track of the prepare/release calls.

• MHAEvents::patchbay_t< example3_t > patchbay
The Event connector.

Additional Inherited Members
5.74.1

Detailed Description

A Plugin class using the openMHA Event mechanism.
This is the third example plugin for the step-by-step tutorial.

5.74.2

5.74.2.1

Constructor & Destructor Documentation

example3_t()

example3_t::example3_t (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

This constructor initializes the configuration language variables and inserts them into the
openMHA configuration tree.
It connects the openMHA Events triggered by these configuration variables to the respective
callbacks.
© 2005-2018 HörTech gGmbH, Oldenburg

360

5.74.3

5.74.3.1

CONTENTS

Member Function Documentation

on_scale_ch_writeaccess()

void example3_t::on_scale_ch_writeaccess ( ) [private]

5.74.3.2

on_scale_ch_valuechanged()

void example3_t::on_scale_ch_valuechanged ( ) [private]

5.74.3.3

on_scale_ch_readaccess()

void example3_t::on_scale_ch_readaccess ( ) [private]

5.74.3.4

on_prereadaccess()

void example3_t::on_prereadaccess ( ) [private]

5.74.3.5

prepare()

void example3_t::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
This plugin checks that the input signal has the waveform domain and contains enough channels.
Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< int > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

5.74

example3_t Class Reference

5.74.3.6

361

release()

void example3_t::release (
void

) [virtual]

Bookkeeping only.
Reimplemented from MHAPlugin::plugin_t< int > (p. 885).

5.74.3.7

process()

mha_wave_t ∗ example3_t::process (
mha_wave_t ∗ signal )

Signal processing performed by the plugin.
This plugin multiplies the signal in the selected audio channel by the configured factor.
Parameters
signal

Pointer to the input signal structure.

Returns
Returns a pointer to the input signal structure, with a the signal modified by this plugin.
(In-place processing)

5.74.4

5.74.4.1

Member Data Documentation

scale_ch

MHAParser::int_t example3_t::scale_ch [private]

Index of audio channel to scale.

5.74.4.2

factor

MHAParser::float_t example3_t::factor [private]

The scaling factor applied to the selected channel.

© 2005-2018 HörTech gGmbH, Oldenburg

362

5.74.4.3

CONTENTS

prepared

MHAParser::int_mon_t example3_t::prepared [private]

Keep Track of the prepare/release calls.

5.74.4.4

patchbay

MHAEvents::patchbay_t< example3_t> example3_t::patchbay [private]

The Event connector.
The documentation for this class was generated from the following file:
• example3.cpp

5.75

example4_t Class Reference

A Plugin class using the spectral signal.
Inheritance diagram for example4_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< int >

MHAPlugin::plugin_t
< int >

example4_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.75

example4_t Class Reference

363

Public Member Functions
• example4_t ( algo_comm_t & ac, const std::string &chain_name, const std::string
&algo_name)
This constructor initializes the configuration language variables and inserts them into the
openMHA configuration tree.

• void prepare ( mhaconfig_t &signal_info)
Plugin preparation.

• void release (void)
Bookkeeping only.

• mha_spec_t ∗ process ( mha_spec_t ∗signal)
Signal processing performed by the plugin.

Private Member Functions
•
•
•
•

void
void
void
void

on_scale_ch_writeaccess ()
on_scale_ch_valuechanged ()
on_scale_ch_readaccess ()
on_prereadaccess ()

Private Attributes
• MHAParser::int_t scale_ch
Index of audio channel to scale.

• MHAParser::float_t factor
The scaling factor applied to the selected channel.

• MHAParser::int_mon_t prepared
Keep Track of the prepare/release calls.

• MHAEvents::patchbay_t< example4_t > patchbay
The Event connector.

Additional Inherited Members
5.75.1

Detailed Description

A Plugin class using the spectral signal.
This is the fourth example plugin for the step-by-step tutorial.

5.75.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

364

5.75.2.1

CONTENTS

example4_t()

example4_t::example4_t (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

This constructor initializes the configuration language variables and inserts them into the
openMHA configuration tree.
It connects the openMHA Events triggered by these configuration variables to the respective
callbacks.

5.75.3

5.75.3.1

Member Function Documentation

on_scale_ch_writeaccess()

void example4_t::on_scale_ch_writeaccess ( ) [private]

5.75.3.2

on_scale_ch_valuechanged()

void example4_t::on_scale_ch_valuechanged ( ) [private]

5.75.3.3

on_scale_ch_readaccess()

void example4_t::on_scale_ch_readaccess ( ) [private]

5.75.3.4

on_prereadaccess()

void example4_t::on_prereadaccess ( ) [private]

5.75.3.5

prepare()

void example4_t::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
This plugin checks that the input signal has the waveform domain and contains enough channels.

© 2005-2018 HörTech gGmbH, Oldenburg

5.75

example4_t Class Reference

365

Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< int > (p. 884).

5.75.3.6

release()

void example4_t::release (
void

) [virtual]

Bookkeeping only.
Reimplemented from MHAPlugin::plugin_t< int > (p. 885).

5.75.3.7

process()

mha_spec_t ∗ example4_t::process (
mha_spec_t ∗ signal )

Signal processing performed by the plugin.
This plugin multiplies the spectral signal in the selected audio channel by the configured factor.
Parameters
signal

Pointer to the input signal structure.

Returns
Returns a pointer to the input signal structure, with a the signal modified by this plugin.
(In-place processing)
5.75.4

5.75.4.1

Member Data Documentation

scale_ch

MHAParser::int_t example4_t::scale_ch [private]

Index of audio channel to scale.

© 2005-2018 HörTech gGmbH, Oldenburg

366

5.75.4.2

CONTENTS

factor

MHAParser::float_t example4_t::factor [private]

The scaling factor applied to the selected channel.

5.75.4.3

prepared

MHAParser::int_mon_t example4_t::prepared [private]

Keep Track of the prepare/release calls.

5.75.4.4

patchbay

MHAEvents::patchbay_t< example4_t> example4_t::patchbay [private]

The Event connector.
The documentation for this class was generated from the following file:
• example4.cpp

5.76

example5_t Class Reference

Public Member Functions
• example5_t (unsigned int, unsigned int, mha_real_t)
• mha_spec_t ∗ process ( mha_spec_t ∗)

Private Attributes
• unsigned int channel
• mha_real_t scale

5.76.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.76

example5_t Class Reference

5.76.1.1

example5_t()

example5_t::example5_t (
unsigned int ichannel,
unsigned int numchannels,
mha_real_t iscale )

5.76.2

5.76.2.1

Member Function Documentation

process()

mha_spec_t ∗ example5_t::process (
mha_spec_t ∗ spec )

5.76.3

5.76.3.1

Member Data Documentation

channel

unsigned int example5_t::channel [private]

5.76.3.2

scale

mha_real_t example5_t::scale [private]

The documentation for this class was generated from the following file:

• example5.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

367

368

5.77

CONTENTS

example6_t Class Reference

Inheritance diagram for example6_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< cfg_t >

MHAPlugin::plugin_t
< cfg_t >

example6_t

Public Member Functions
• example6_t (const algo_comm_t &, const std::string &, const std::string &)
• mha_wave_t ∗ process ( mha_wave_t ∗)
• void prepare ( mhaconfig_t &)

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAParser::int_t channel_no
• float rmsdb
• MHAEvents::patchbay_t< example6_t > patchbay
© 2005-2018 HörTech gGmbH, Oldenburg

5.77

example6_t Class Reference

Additional Inherited Members

5.77.1

5.77.1.1

Constructor & Destructor Documentation

example6_t()

example6_t::example6_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

5.77.2

5.77.2.1

)

Member Function Documentation

process()

mha_wave_t ∗ example6_t::process (
mha_wave_t ∗ wave )

5.77.2.2

prepare()

void example6_t::prepare (
mhaconfig_t & tfcfg ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 884).

5.77.2.3

update_cfg()

void example6_t::update_cfg ( ) [private]

5.77.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

369

370

5.77.3.1

CONTENTS

channel_no

MHAParser::int_t example6_t::channel_no [private]

5.77.3.2

rmsdb

float example6_t::rmsdb [private]

5.77.3.3

patchbay

MHAEvents::patchbay_t< example6_t> example6_t::patchbay [private]

The documentation for this class was generated from the following file:

• example6.cpp

5.78

expression_t Class Reference

Class for separating a string into a left hand value and a right hand value.

5.78.1

Detailed Description

Class for separating a string into a left hand value and a right hand value.
A list of valid operators can be provided. After construction, the class members lval, rval and
op contain the apropriate contents.
The documentation for this class was generated from the following file:

• mha_parser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.79

fader_if_t Class Reference

5.79

fader_if_t Class Reference

371

Inheritance diagram for fader_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< spec_fader_t >

MHAPlugin::plugin_t
< spec_fader_t >

fader_if_t

Public Member Functions
• fader_if_t (const algo_comm_t &, const std::string &, const std::string &)
• mha_spec_t ∗ process ( mha_spec_t ∗)
• void prepare ( mhaconfig_t &)

Private Member Functions
• void update_cfg ()

Private Attributes
•
•
•
•

MHAEvents::patchbay_t< fader_if_t > patchbay
MHAParser::float_t tau
MHAParser::vfloat_t newgains
mha_real_t ∗ actgains

© 2005-2018 HörTech gGmbH, Oldenburg

372

CONTENTS

Additional Inherited Members
5.79.1

5.79.1.1

Constructor & Destructor Documentation

fader_if_t()

fader_if_t::fader_if_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

5.79.2

5.79.2.1

)

Member Function Documentation

process()

mha_spec_t ∗ fader_if_t::process (
mha_spec_t ∗ s )

5.79.2.2

prepare()

void fader_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< spec_fader_t > (p. 884).

5.79.2.3

update_cfg()

void fader_if_t::update_cfg (
void

5.79.3

) [private]

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.80

fader_wave::fader_wave_if_t Class Reference

5.79.3.1

373

patchbay

MHAEvents::patchbay_t< fader_if_t> fader_if_t::patchbay [private]

5.79.3.2

tau

MHAParser::float_t fader_if_t::tau [private]

5.79.3.3

newgains

MHAParser::vfloat_t fader_if_t::newgains [private]

5.79.3.4

actgains

mha_real_t∗ fader_if_t::actgains [private]

The documentation for this class was generated from the following file:
• fader_spec.cpp

5.80

fader_wave::fader_wave_if_t Class Reference

Inheritance diagram for fader_wave::fader_wave_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< runtime_cfg_t >

level_adaptor

fader_wave::fader_wave_if_t

© 2005-2018 HörTech gGmbH, Oldenburg

374

CONTENTS

Public Member Functions
•
•
•
•

fader_wave_if_t ( algo_comm_t, const char ∗, const char ∗)
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)
void release ()

Private Member Functions
• void set_level ()

Private Attributes
•
•
•
•

MHAParser::vfloat_t gain
MHAParser::float_t ramplen
MHAEvents::patchbay_t< fader_wave_if_t > patchbay
bool prepared

Additional Inherited Members
5.80.1

5.80.1.1

Constructor & Destructor Documentation

fader_wave_if_t()

fader_wave::fader_wave_if_t::fader_wave_if_t (
algo_comm_t iac,
const char ∗ ,
const char ∗

5.80.2

5.80.2.1

)

Member Function Documentation

process()

mha_wave_t ∗ fader_wave::fader_wave_if_t::process (
mha_wave_t ∗ s )

© 2005-2018 HörTech gGmbH, Oldenburg

5.80

fader_wave::fader_wave_if_t Class Reference

5.80.2.2

375

prepare()

void fader_wave::fader_wave_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< runtime_cfg_t > (p. 884).

5.80.2.3

release()

void fader_wave::fader_wave_if_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< runtime_cfg_t > (p. 885).

5.80.2.4

set_level()

void fader_wave::fader_wave_if_t::set_level ( ) [private]

5.80.3

5.80.3.1

Member Data Documentation

gain

MHAParser::vfloat_t fader_wave::fader_wave_if_t::gain [private]

5.80.3.2

ramplen

MHAParser::float_t fader_wave::fader_wave_if_t::ramplen [private]

5.80.3.3

patchbay

MHAEvents::patchbay_t< fader_wave_if_t> fader_wave::fader_wave_if_t::patchbay [private]

© 2005-2018 HörTech gGmbH, Oldenburg

376

5.80.3.4

CONTENTS

prepared

bool fader_wave::fader_wave_if_t::prepared [private]

The documentation for this class was generated from the following file:
• fader_wave.cpp

5.81

fader_wave::level_adapt_t Class Reference

Inheritance diagram for fader_wave::level_adapt_t:

mha_wave_t

MHASignal::waveform_t

fader_wave::level_adapt_t

Public Member Functions
• level_adapt_t ( mhaconfig_t cf, mha_real_t adapt_len, std::vector< float > l_new_,
std::vector< float > l_old_)
• void update_frame ()
• std::vector< float > get_level () const
• bool can_update () const

Private Attributes
•
•
•
•
•

unsigned int ilen
unsigned int pos
MHAWindow::fun_t wnd
std::vector< float > l_new
std::vector< float > l_old
© 2005-2018 HörTech gGmbH, Oldenburg

5.81

fader_wave::level_adapt_t Class Reference

377

Additional Inherited Members
5.81.1

5.81.1.1

Constructor & Destructor Documentation

level_adapt_t()

fader_wave::level_adapt_t::level_adapt_t (
mhaconfig_t cf,
mha_real_t adapt_len,
std::vector< float > l_new_,
std::vector< float > l_old_ )

5.81.2

5.81.2.1

Member Function Documentation

update_frame()

void fader_wave::level_adapt_t::update_frame ( )

5.81.2.2

get_level()

std::vector fader_wave::level_adapt_t::get_level ( ) const [inline]

5.81.2.3

can_update()

bool fader_wave::level_adapt_t::can_update ( ) const [inline]

5.81.3

5.81.3.1

Member Data Documentation

ilen

unsigned int fader_wave::level_adapt_t::ilen [private]

© 2005-2018 HörTech gGmbH, Oldenburg

378

5.81.3.2

CONTENTS

pos

unsigned int fader_wave::level_adapt_t::pos [private]

5.81.3.3

wnd

MHAWindow::fun_t fader_wave::level_adapt_t::wnd [private]

5.81.3.4

l_new

std::vector fader_wave::level_adapt_t::l_new [private]

5.81.3.5

l_old

std::vector fader_wave::level_adapt_t::l_old [private]

The documentation for this class was generated from the following file:
• fader_wave.cpp

5.82

fftfilterbank::fftfb_interface_t Class Reference

Inheritance diagram for fftfilterbank::fftfb_interface_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< fftfb_plug_t >

MHAPlugin::plugin_t
< fftfb_plug_t >

MHAOvlFilter::fftfb
_vars_t

MHAOvlFilter::overlap
_save_filterbank_t::vars_t

fftfilterbank::fftfb
_interface_t

Public Member Functions
• fftfb_interface_t (const algo_comm_t & ac, const std::string &th, const std::string &al)
Default values are set and MHA configuration variables registered into the parser.

• void prepare ( mhaconfig_t &)
Prepare all variables for processing.

• void release ()
• mha_spec_t ∗ process ( mha_spec_t ∗)
• mha_wave_t ∗ process ( mha_wave_t ∗)
© 2005-2018 HörTech gGmbH, Oldenburg

5.82

fftfilterbank::fftfb_interface_t Class Reference

379

Private Member Functions
• void update_cfg ()

Private Attributes
•
•
•
•
•
•

MHAParser::bool_t return_imag
MHAEvents::patchbay_t< fftfb_interface_t > patchbay
MHA_AC::int_t nchannels
std::string algo
bool prepared
unsigned int nbands

Additional Inherited Members
5.82.1

Constructor & Destructor Documentation

5.82.1.1

fftfb_interface_t()

fftfilterbank::fftfb_interface_t::fftfb_interface_t (
const

algo_comm_t & ac,

const std::string & th,
const std::string & al )

Default values are set and MHA configuration variables registered into the parser.
Parameters
ac
th
al

algorithm communication handle
chain name
algorithm name

5.82.2

Member Function Documentation

5.82.2.1

prepare()

void fftfilterbank::fftfb_interface_t::prepare (
mhaconfig_t & tf ) [virtual]

© 2005-2018 HörTech gGmbH, Oldenburg

380

CONTENTS

Prepare all variables for processing.
In this function, all variables are initialised and the filter shapes for each band are calculated.
The filter shapes W (f ) are defined as

W (f ) = W (T (S(f ))) = W (x),

x = T (S(f )) = T (fˆ),

W (x) beeing a symmetric window function in the interval [−1, 1] and S(f ) the transformation
from the linear scale to the given frequency scale (see functions in FreqScaleFun). The function
T (fˆ) transforms the frequency range between the center frequencies [fˆk−1 , fˆk ] and [fˆk , fˆk+1 ]
into the interval [−1, 0] and [0, 1], respectively. This function is realised by the function linscale().
Parameters
tf

Channel configuration

Implements MHAPlugin::plugin_t< fftfb_plug_t > (p. 884).

5.82.2.2

release()

void fftfilterbank::fftfb_interface_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< fftfb_plug_t > (p. 885).

5.82.2.3

process() [1/2]

mha_spec_t ∗ fftfilterbank::fftfb_interface_t::process (
mha_spec_t ∗ s )

5.82.2.4

process() [2/2]

mha_wave_t ∗ fftfilterbank::fftfb_interface_t::process (
mha_wave_t ∗ s )

5.82.2.5

update_cfg()

void fftfilterbank::fftfb_interface_t::update_cfg (
void

) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.82

fftfilterbank::fftfb_interface_t Class Reference

5.82.3

5.82.3.1

381

Member Data Documentation

return_imag

MHAParser::bool_t fftfilterbank::fftfb_interface_t::return_imag [private]

5.82.3.2

patchbay

MHAEvents::patchbay_t< fftfb_interface_t> fftfilterbank::fftfb_interface_t::patchbay
[private]

5.82.3.3

nchannels

MHA_AC::int_t fftfilterbank::fftfb_interface_t::nchannels [private]

5.82.3.4

algo

std::string fftfilterbank::fftfb_interface_t::algo [private]

5.82.3.5

prepared

bool fftfilterbank::fftfb_interface_t::prepared [private]

5.82.3.6

nbands

unsigned int fftfilterbank::fftfb_interface_t::nbands [private]

The documentation for this class was generated from the following file:
• fftfilterbank.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

382

5.83

CONTENTS

fftfilterbank::fftfb_plug_t Class Reference

Inheritance diagram for fftfilterbank::fftfb_plug_t:

mha_wave_t

MHAOvlFilter::fspacing_t

MHASignal::waveform_t

MHAOvlFilter::fftfb_t

MHAFilter::fftfilterbank_t

MHAOvlFilter::overlap
_save_filterbank_t

MHAOvlFilter::overlap
_save_filterbank_analytic_t

fftfilterbank::fftfb
_plug_t

Public Member Functions
• fftfb_plug_t ( MHAOvlFilter::overlap_save_filterbank_t::vars_t &,
t chcfg, algo_comm_t ac, std::string alg, bool return_imag)
• mha_spec_t ∗ process ( mha_spec_t ∗)
• mha_wave_t ∗ process ( mha_wave_t ∗)
• void insert ()

mhaconfig_←-

Private Attributes
•
•
•
•

MHAOvlFilter::fftfb_ac_info_t fb_acinfo
MHASignal::spectrum_t s_out
MHA_AC::waveform_t imag
bool return_imag_
© 2005-2018 HörTech gGmbH, Oldenburg

5.83

fftfilterbank::fftfb_plug_t Class Reference

383

Additional Inherited Members

5.83.1

5.83.1.1

Constructor & Destructor Documentation

fftfb_plug_t()

fftfilterbank::fftfb_plug_t::fftfb_plug_t (
MHAOvlFilter::overlap_save_filterbank_t::vars_t & vars,
mhaconfig_t chcfg,
algo_comm_t ac,
std::string alg,
bool return_imag )

5.83.2

5.83.2.1

Member Function Documentation

process() [1/2]

mha_spec_t ∗ fftfilterbank::fftfb_plug_t::process (
mha_spec_t ∗ s )

5.83.2.2

process() [2/2]

mha_wave_t ∗ fftfilterbank::fftfb_plug_t::process (
mha_wave_t ∗ s )

5.83.2.3

insert()

void fftfilterbank::fftfb_plug_t::insert ( )

5.83.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

384

5.83.3.1

CONTENTS

fb_acinfo

MHAOvlFilter::fftfb_ac_info_t fftfilterbank::fftfb_plug_t::fb_acinfo [private]

5.83.3.2

s_out

MHASignal::spectrum_t fftfilterbank::fftfb_plug_t::s_out [private]

5.83.3.3

imag

MHA_AC::waveform_t fftfilterbank::fftfb_plug_t::imag [private]

5.83.3.4

return_imag_

bool fftfilterbank::fftfb_plug_t::return_imag_ [private]

The documentation for this class was generated from the following file:
• fftfilterbank.cpp

5.84

frequency_translator_t Class Reference

Inheritance diagram for frequency_translator_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< hilbert_shifter_t >

MHAPlugin::plugin_t
< hilbert_shifter_t >

frequency_translator_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.84

frequency_translator_t Class Reference

385

Public Member Functions
•
•
•
•

frequency_translator_t (const algo_comm_t &, const std::string &, const std::string &)
mha_spec_t ∗ process ( mha_spec_t ∗)
void prepare ( mhaconfig_t &)
void release ()

Private Member Functions
• void update ()

Private Attributes
•
•
•
•
•
•

MHAEvents::patchbay_t< frequency_translator_t > patchbay
MHAParser::vfloat_t df
MHAParser::float_t fmin
MHAParser::float_t fmax
MHAParser::int_t irslen
MHAParser::kw_t phasemode

Additional Inherited Members
5.84.1

5.84.1.1

Constructor & Destructor Documentation

frequency_translator_t()

frequency_translator_t::frequency_translator_t (
const

algo_comm_t & iac,

const std::string & ith,
const std::string & ial )

5.84.2

5.84.2.1

Member Function Documentation

process()

mha_spec_t ∗ frequency_translator_t::process (
mha_spec_t ∗ s )

© 2005-2018 HörTech gGmbH, Oldenburg

386

5.84.2.2

CONTENTS

prepare()

void frequency_translator_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< hilbert_shifter_t > (p. 884).

5.84.2.3

release()

void frequency_translator_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< hilbert_shifter_t > (p. 885).

5.84.2.4

update()

void frequency_translator_t::update ( ) [private]

5.84.3

5.84.3.1

Member Data Documentation

patchbay

MHAEvents::patchbay_t< frequency_translator_t> frequency_translator_t::patchbay
[private]

5.84.3.2

df

MHAParser::vfloat_t frequency_translator_t::df [private]

5.84.3.3

fmin

MHAParser::float_t frequency_translator_t::fmin [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.85

fw_t Class Reference

5.84.3.4

387

fmax

MHAParser::float_t frequency_translator_t::fmax [private]

5.84.3.5

irslen

MHAParser::int_t frequency_translator_t::irslen [private]

5.84.3.6

phasemode

MHAParser::kw_t frequency_translator_t::phasemode [private]

The documentation for this class was generated from the following file:
• fshift_hilbert.cpp

5.85

fw_t Class Reference

Inheritance diagram for fw_t:

MHAParser::base_t

MHAParser::parser_t

fw_t

mhaserver_t

© 2005-2018 HörTech gGmbH, Oldenburg

388

CONTENTS

Public Member Functions
• fw_t ()
• ∼fw_t ()
• bool exit_request () const

Protected Attributes
• int proc_error
• int io_error

Private Types
• enum state_t {
fw_unprepared, fw_stopped, fw_starting, fw_running,
fw_stopping, fw_exiting }

Private Member Functions
• void prepare ()
preparation for processing

• void start ()
start of processing

• void stop ()
stop/pause of processing

• void release ()
release of IO device

• void quit ()
controlled quit

•
•
•
•
•
•
•
•
•
•
•
•

void stopped (int, int)
void started ()
int process ( mha_wave_t ∗, mha_wave_t ∗∗)
void exec_fw_command ()
void load_proc_lib ()
void load_io_lib ()
void fw_sleep_cmd ()
void fw_until_cmd ()
void get_input_signal_dimension ()
void async_read ()
void async_poll_msg ()
void get_parserstate ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.85

fw_t Class Reference

389

Static Private Member Functions
• static void stopped (void ∗h, int proc_err, int io_err)
• static void started (void ∗h)
• static int process (void ∗h, mha_wave_t ∗sIn, mha_wave_t ∗∗sOut)

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

fw_vars_t prepare_vars
MHAParser::int_mon_t nchannels_out
MHAParser::string_t proc_name
MHAParser::string_t io_name
MHAParser::bool_t exit_on_stop
MHAParser::int_t fw_sleep
MHAParser::string_t fw_until
MHAParser::kw_t fw_cmd
MHAParser::string_mon_t parserstate
MHAParser::string_t errorlog
MHAParser::string_t fatallog
MHAParser::vstring_t plugins
MHAParser::vstring_t plugin_paths
MHAParser::bool_t dump_mha
MHAParser::string_t inst_name
A variable for naming MHA instances.

•
•
•
•
•
•
•
•
•

MHAKernel::algo_comm_class_t ac
PluginLoader::mhapluginloader_t ∗ proc_lib
io_lib_t ∗ io_lib
mhaconfig_t cfin
mhaconfig_t cfout
state_t state
bool b_exit_request
MHAParser::string_mon_t proc_error_string
MHAEvents::patchbay_t< fw_t > patchbay

Additional Inherited Members
5.85.1

Member Enumeration Documentation

5.85.1.1
enum

state_t

fw_t::state_t [private]

© 2005-2018 HörTech gGmbH, Oldenburg

390

CONTENTS

Enumerator
fw_unprepared
fw_stopped
fw_starting
fw_running
fw_stopping
fw_exiting

5.85.2

5.85.2.1

Constructor & Destructor Documentation

fw_t()

fw_t::fw_t ( )

5.85.2.2 ∼fw_t()
fw_t::∼fw_t ( )

5.85.3

5.85.3.1

Member Function Documentation

exit_request()

bool fw_t::exit_request ( ) const [inline]

5.85.3.2

prepare()

void fw_t::prepare (
void

) [private]

preparation for processing

© 2005-2018 HörTech gGmbH, Oldenburg

5.85

fw_t Class Reference

5.85.3.3

start()

void fw_t::start ( ) [private]

start of processing

5.85.3.4

stop()

void fw_t::stop ( ) [private]

stop/pause of processing

5.85.3.5

release()

void fw_t::release ( ) [private]

release of IO device

5.85.3.6

quit()

void fw_t::quit ( ) [private]

controlled quit

5.85.3.7

stopped() [1/2]

static void fw_t::stopped (
void ∗ h,
int proc_err,
int io_err ) [inline], [static], [private]

5.85.3.8

started() [1/2]

static void fw_t::started (
void ∗ h ) [inline], [static], [private]

© 2005-2018 HörTech gGmbH, Oldenburg

391

392

5.85.3.9

CONTENTS

process() [1/2]

static int fw_t::process (
void ∗ h,
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [inline], [static], [private]

5.85.3.10

stopped() [2/2]

void fw_t::stopped (
int proc_err,
int io_err ) [private]

5.85.3.11

started() [2/2]

void fw_t::started ( ) [private]

5.85.3.12

process() [2/2]

int fw_t::process (
mha_wave_t ∗ s_in,
mha_wave_t ∗∗ s_out ) [private]

5.85.3.13

exec_fw_command()

void fw_t::exec_fw_command ( ) [private]

5.85.3.14

load_proc_lib()

void fw_t::load_proc_lib ( ) [private]

5.85.3.15

load_io_lib()

void fw_t::load_io_lib ( ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.85

fw_t Class Reference

5.85.3.16

fw_sleep_cmd()

void fw_t::fw_sleep_cmd ( ) [private]

5.85.3.17

fw_until_cmd()

void fw_t::fw_until_cmd ( ) [private]

5.85.3.18

get_input_signal_dimension()

void fw_t::get_input_signal_dimension ( ) [private]

5.85.3.19

async_read()

void fw_t::async_read ( ) [inline], [private]

5.85.3.20

async_poll_msg()

void fw_t::async_poll_msg ( ) [private]

5.85.3.21

get_parserstate()

void fw_t::get_parserstate ( ) [private]

5.85.4

5.85.4.1

Member Data Documentation

prepare_vars

fw_vars_t fw_t::prepare_vars [private]

© 2005-2018 HörTech gGmbH, Oldenburg

393

394

5.85.4.2

CONTENTS

nchannels_out

MHAParser::int_mon_t fw_t::nchannels_out [private]

5.85.4.3

proc_name

MHAParser::string_t fw_t::proc_name [private]

5.85.4.4

io_name

MHAParser::string_t fw_t::io_name [private]

5.85.4.5

exit_on_stop

MHAParser::bool_t fw_t::exit_on_stop [private]

5.85.4.6

fw_sleep

MHAParser::int_t fw_t::fw_sleep [private]

5.85.4.7

fw_until

MHAParser::string_t fw_t::fw_until [private]

5.85.4.8

fw_cmd

MHAParser::kw_t fw_t::fw_cmd [private]

5.85.4.9

parserstate

MHAParser::string_mon_t fw_t::parserstate [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.85

fw_t Class Reference

5.85.4.10

errorlog

MHAParser::string_t fw_t::errorlog [private]

5.85.4.11

fatallog

MHAParser::string_t fw_t::fatallog [private]

5.85.4.12

plugins

MHAParser::vstring_t fw_t::plugins [private]

5.85.4.13

plugin_paths

MHAParser::vstring_t fw_t::plugin_paths [private]

5.85.4.14

dump_mha

MHAParser::bool_t fw_t::dump_mha [private]

5.85.4.15

inst_name

MHAParser::string_t fw_t::inst_name [private]

A variable for naming MHA instances.

5.85.4.16

ac

MHAKernel::algo_comm_class_t fw_t::ac [private]

© 2005-2018 HörTech gGmbH, Oldenburg

395

396

5.85.4.17

CONTENTS

proc_lib

PluginLoader::mhapluginloader_t∗ fw_t::proc_lib [private]

5.85.4.18

io_lib

io_lib_t∗ fw_t::io_lib [private]

5.85.4.19

cfin

mhaconfig_t fw_t::cfin [private]

5.85.4.20

cfout

mhaconfig_t fw_t::cfout [private]

5.85.4.21

state

state_t fw_t::state [private]

5.85.4.22

b_exit_request

bool fw_t::b_exit_request [private]

5.85.4.23

proc_error

int fw_t::proc_error [protected]

5.85.4.24

io_error

int fw_t::io_error [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

5.86

fw_vars_t Class Reference

5.85.4.25

397

proc_error_string

MHAParser::string_mon_t fw_t::proc_error_string [private]

5.85.4.26

patchbay

MHAEvents::patchbay_t< fw_t> fw_t::patchbay [private]

The documentation for this class was generated from the following files:
• mhafw_lib.h
• mhafw_lib.cpp

5.86

fw_vars_t Class Reference

Public Member Functions
•
•
•
•
•

fw_vars_t ( MHAParser::parser_t &)
void lock_srate_fragsize ()
void lock_channels ()
void unlock_srate_fragsize ()
void unlock_channels ()

Public Attributes
• MHAParser::int_t pinchannels
• MHAParser::int_t pfragmentsize
• MHAParser::float_t psrate

5.86.1

5.86.1.1

Constructor & Destructor Documentation

fw_vars_t()

fw_vars_t::fw_vars_t (
MHAParser::parser_t & p )

5.86.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

398

5.86.2.1

CONTENTS

lock_srate_fragsize()

void fw_vars_t::lock_srate_fragsize ( )

5.86.2.2

lock_channels()

void fw_vars_t::lock_channels ( )

5.86.2.3

unlock_srate_fragsize()

void fw_vars_t::unlock_srate_fragsize ( )

5.86.2.4

unlock_channels()

void fw_vars_t::unlock_channels ( )

5.86.3

5.86.3.1

Member Data Documentation

pinchannels

MHAParser::int_t fw_vars_t::pinchannels

5.86.3.2

pfragmentsize

MHAParser::int_t fw_vars_t::pfragmentsize

5.86.3.3

psrate

MHAParser::float_t fw_vars_t::psrate

The documentation for this class was generated from the following files:
• mhafw_lib.h
• mhafw_lib.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.87

gain::gain_if_t Class Reference

5.87

gain::gain_if_t Class Reference

399

Inheritance diagram for gain::gain_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< scaler_t >

MHAPlugin::plugin_t
< scaler_t >

gain::gain_if_t

Public Member Functions
•
•
•
•
•

gain_if_t (const algo_comm_t &, const std::string &, const std::string &)
mha_wave_t ∗ process ( mha_wave_t ∗)
mha_spec_t ∗ process ( mha_spec_t ∗)
void prepare ( mhaconfig_t &)
void release ()

Private Member Functions
• void update_gain ()
• void update_bbgain ()
• void update_minmax ()

Private Attributes
•
•
•
•
•

MHAEvents::patchbay_t< gain_if_t > patchbay
MHAParser::vfloat_t gains
MHAParser::float_t bbgain
MHAParser::float_t vmin
MHAParser::float_t vmax

© 2005-2018 HörTech gGmbH, Oldenburg

400

CONTENTS

Additional Inherited Members
5.87.1

5.87.1.1

Constructor & Destructor Documentation

gain_if_t()

gain::gain_if_t::gain_if_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

5.87.2

5.87.2.1

)

Member Function Documentation

process() [1/2]

mha_wave_t ∗ gain::gain_if_t::process (
mha_wave_t ∗ s )

5.87.2.2

process() [2/2]

mha_spec_t ∗ gain::gain_if_t::process (
mha_spec_t ∗ s )

5.87.2.3

prepare()

void gain::gain_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< scaler_t > (p. 884).

5.87.2.4

release()

void gain::gain_if_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< scaler_t > (p. 885).

© 2005-2018 HörTech gGmbH, Oldenburg

5.87

gain::gain_if_t Class Reference

5.87.2.5

401

update_gain()

void gain::gain_if_t::update_gain ( ) [private]

5.87.2.6

update_bbgain()

void gain::gain_if_t::update_bbgain ( ) [private]

5.87.2.7

update_minmax()

void gain::gain_if_t::update_minmax ( ) [private]

5.87.3

5.87.3.1

Member Data Documentation

patchbay

MHAEvents::patchbay_t< gain_if_t> gain::gain_if_t::patchbay [private]

5.87.3.2

gains

MHAParser::vfloat_t gain::gain_if_t::gains [private]

5.87.3.3

bbgain

MHAParser::float_t gain::gain_if_t::bbgain [private]

5.87.3.4

vmin

MHAParser::float_t gain::gain_if_t::vmin [private]

© 2005-2018 HörTech gGmbH, Oldenburg

402

5.87.3.5

CONTENTS

vmax

MHAParser::float_t gain::gain_if_t::vmax [private]

The documentation for this class was generated from the following file:
• gain.cpp

5.88

gain::scaler_t Class Reference

Inheritance diagram for gain::scaler_t:

mha_wave_t

MHASignal::waveform_t

gain::scaler_t

Public Member Functions
• scaler_t (const unsigned int & channels, const MHAParser::vfloat_t &gains)

Additional Inherited Members
5.88.1

5.88.1.1

Constructor & Destructor Documentation

scaler_t()

gain::scaler_t::scaler_t (
const unsigned int & channels,
const

MHAParser::vfloat_t & gains )

The documentation for this class was generated from the following file:
• gain.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.89

hanning_ramps_t Class Reference

5.89

hanning_ramps_t Class Reference

Public Member Functions
• hanning_ramps_t (unsigned int, unsigned int)
• ∼hanning_ramps_t ()
• void operator() ( MHASignal::waveform_t &)

Private Attributes
•
•
•
•

unsigned int len_a
unsigned int len_b
mha_real_t ∗ ramp_a
mha_real_t ∗ ramp_b

5.89.1

5.89.1.1

Constructor & Destructor Documentation

hanning_ramps_t()

hanning_ramps_t::hanning_ramps_t (
unsigned int la,
unsigned int lb )

5.89.1.2 ∼hanning_ramps_t()
hanning_ramps_t::∼hanning_ramps_t (
void

5.89.2

5.89.2.1

)

Member Function Documentation

operator()()

void hanning_ramps_t::operator() (
MHASignal::waveform_t & b )

© 2005-2018 HörTech gGmbH, Oldenburg

403

404

5.89.3

CONTENTS

Member Data Documentation

5.89.3.1

len_a

unsigned int hanning_ramps_t::len_a [private]

5.89.3.2

len_b

unsigned int hanning_ramps_t::len_b [private]

5.89.3.3

ramp_a

mha_real_t∗ hanning_ramps_t::ramp_a [private]

5.89.3.4

ramp_b

mha_real_t∗ hanning_ramps_t::ramp_b [private]

The documentation for this class was generated from the following file:
• spec2wave.cpp

5.90

hilbert_shifter_t Class Reference

Inheritance diagram for hilbert_shifter_t:

mha_spec_t

MHASignal::spectrum_t

hilbert_shifter_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.90

hilbert_shifter_t Class Reference

405

Public Member Functions
• hilbert_shifter_t (unsigned int fftlen, unsigned int channels, mha_real_t srate, unsigned int kmin, unsigned int kmax, std::vector< mha_real_t > dphi, unsigned int
frameshift, unsigned int maxirslen, unsigned int phasemode)
• ∼hilbert_shifter_t ()
• void process ( mha_spec_t ∗)

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•

MHASignal::spectrum_t fullspec
MHASignal::spectrum_t analytic
MHASignal::waveform_t shifted
MHASignal::spectrum_t mixw_shift
MHASignal::spectrum_t mixw_ref
fftw_plan plan_spec2analytic
mha_fft_t mhafft
MHASignal::waveform_t phi
MHASignal::waveform_t dphi
unsigned int kmin
unsigned int kmax
unsigned int frameshift

Additional Inherited Members

5.90.1

5.90.1.1

Constructor & Destructor Documentation

hilbert_shifter_t()

hilbert_shifter_t::hilbert_shifter_t (
unsigned int fftlen,
unsigned int channels,
mha_real_t srate,
unsigned int kmin,
unsigned int kmax,
std::vector<

mha_real_t > dphi,

unsigned int frameshift,
unsigned int maxirslen,
unsigned int phasemode )

© 2005-2018 HörTech gGmbH, Oldenburg

406

CONTENTS

5.90.1.2 ∼hilbert_shifter_t()
hilbert_shifter_t::∼hilbert_shifter_t ( )

5.90.2

5.90.2.1

Member Function Documentation

process()

void hilbert_shifter_t::process (
mha_spec_t ∗ s )

5.90.3

5.90.3.1

Member Data Documentation

fullspec

MHASignal::spectrum_t hilbert_shifter_t::fullspec [private]

5.90.3.2

analytic

MHASignal::spectrum_t hilbert_shifter_t::analytic [private]

5.90.3.3

shifted

MHASignal::waveform_t hilbert_shifter_t::shifted [private]

5.90.3.4

mixw_shift

MHASignal::spectrum_t hilbert_shifter_t::mixw_shift [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.90

hilbert_shifter_t Class Reference

5.90.3.5

mixw_ref

MHASignal::spectrum_t hilbert_shifter_t::mixw_ref [private]

5.90.3.6

plan_spec2analytic

fftw_plan hilbert_shifter_t::plan_spec2analytic [private]

5.90.3.7

mhafft

mha_fft_t hilbert_shifter_t::mhafft [private]

5.90.3.8

phi

MHASignal::waveform_t hilbert_shifter_t::phi [private]

5.90.3.9

dphi

MHASignal::waveform_t hilbert_shifter_t::dphi [private]

5.90.3.10

kmin

unsigned int hilbert_shifter_t::kmin [private]

5.90.3.11

kmax

unsigned int hilbert_shifter_t::kmax [private]

5.90.3.12

frameshift

unsigned int hilbert_shifter_t::frameshift [private]

The documentation for this class was generated from the following file:
• fshift_hilbert.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

407

408

5.91

CONTENTS

identity_t Class Reference

Inheritance diagram for identity_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< int >

MHAPlugin::plugin_t
< int >

identity_t

Public Member Functions
•
•
•
•
•

identity_t (const algo_comm_t &, const std::string &, const std::string &)
mha_wave_t ∗ process ( mha_wave_t ∗)
mha_spec_t ∗ process ( mha_spec_t ∗)
void prepare ( mhaconfig_t &)
void release ()

Additional Inherited Members
5.91.1

5.91.1.1

Constructor & Destructor Documentation

identity_t()

identity_t::identity_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

)

© 2005-2018 HörTech gGmbH, Oldenburg

5.91

identity_t Class Reference

5.91.2

5.91.2.1

Member Function Documentation

process() [1/2]

mha_wave_t ∗ identity_t::process (
mha_wave_t ∗ s )

5.91.2.2

process() [2/2]

mha_spec_t ∗ identity_t::process (
mha_spec_t ∗ s )

5.91.2.3

prepare()

void identity_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< int > (p. 884).

5.91.2.4

release()

void identity_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< int > (p. 885).
The documentation for this class was generated from the following file:

• identity.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

409

410

5.92

CONTENTS

iirfilter_t Class Reference

Inheritance diagram for iirfilter_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< iir_filter_state_t >

MHAFilter::iir_filter_t

iirfilter_t

Public Member Functions
•
•
•
•

iirfilter_t (const algo_comm_t &, const std::string &, const std::string &)
void prepare_ ( mhaconfig_t &)
void release_ ()
mha_wave_t ∗ process ( mha_wave_t ∗)

Additional Inherited Members
5.92.1

5.92.1.1

Constructor & Destructor Documentation

iirfilter_t()

iirfilter_t::iirfilter_t (
const

algo_comm_t & ac,

const std::string & th,
const std::string & al )

© 2005-2018 HörTech gGmbH, Oldenburg

5.93

io_file_t Class Reference

5.92.2

411

Member Function Documentation

5.92.2.1

prepare_()

void iirfilter_t::prepare_ (
mhaconfig_t & tf )

5.92.2.2

release_()

void iirfilter_t::release_ ( ) [inline]

5.92.2.3

process()

mha_wave_t ∗ iirfilter_t::process (
mha_wave_t ∗ s )

The documentation for this class was generated from the following file:
• iirfilter.cpp

5.93

io_file_t Class Reference

File IO.
Inheritance diagram for io_file_t:

MHAParser::base_t

MHAParser::parser_t

io_file_t

© 2005-2018 HörTech gGmbH, Oldenburg

412

CONTENTS

Public Member Functions
• io_file_t (int fragsize, float samplerate, IOProcessEvent_t proc_event, void ∗
proc_handle, IOStartedEvent_t start_event, void ∗ start_handle, IOStopped←Event_t stop_event, void ∗ stop_handle)
• ∼io_file_t ()
• void prepare (int, int)
Allocate buffers, activate FILE client and install internal ports.

• void start ()
• void stop ()
• void release ()
Remove FILE client and deallocate internal ports and buffers.

Private Member Functions
• void stopped (int, int)
• void setlock (bool locked)
lock or unlock all parser variables.

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

int fragsize
float samplerate
int nchannels_in
int nchannels_file_in
int nchannels_out
IOProcessEvent_t proc_event
void ∗ proc_handle
IOStartedEvent_t start_event
void ∗ start_handle
IOStoppedEvent_t stop_event
void ∗ stop_handle
MHAParser::string_t filename_input
MHAParser::string_t filename_output
MHAParser::kw_t output_sample_format
MHAParser::int_t startsample
MHAParser::int_t length
MHAParser::bool_t strict_channel_match
MHAParser::bool_t strict_srate_match
MHASignal::waveform_t ∗ s_in
MHASignal::waveform_t ∗ s_file_in
mha_wave_t ∗ s_out
bool b_prepared
SNDFILE ∗ sf_in
SNDFILE ∗ sf_out
SF_INFO sfinf_in
SF_INFO sfinf_out
sf_count_t total_read
© 2005-2018 HörTech gGmbH, Oldenburg

5.93

io_file_t Class Reference

Additional Inherited Members

5.93.1

Detailed Description

File IO.

5.93.2

5.93.2.1

Constructor & Destructor Documentation

io_file_t()

io_file_t::io_file_t (
int fragsize,
float samplerate,
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle )

5.93.2.2 ∼io_file_t()

io_file_t::∼io_file_t ( )

5.93.3

5.93.3.1

Member Function Documentation

prepare()

void io_file_t::prepare (
int nch_in,
int nch_out )

Allocate buffers, activate FILE client and install internal ports.

© 2005-2018 HörTech gGmbH, Oldenburg

413

414

5.93.3.2

CONTENTS

start()

void io_file_t::start ( )

5.93.3.3

stop()

void io_file_t::stop ( )

5.93.3.4

release()

void io_file_t::release (
void

)

Remove FILE client and deallocate internal ports and buffers.

5.93.3.5

stopped()

void io_file_t::stopped (
int proc_err,
int io_err ) [private]

5.93.3.6

setlock()

void io_file_t::setlock (
bool locked ) [private]

lock or unlock all parser variables.
Used in prepare/release.
Parameters
locked

5.93.4

When true, locks. When false, unlocks.

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.93

io_file_t Class Reference

5.93.4.1

fragsize

int io_file_t::fragsize [private]

5.93.4.2

samplerate

float io_file_t::samplerate [private]

5.93.4.3

nchannels_in

int io_file_t::nchannels_in [private]

5.93.4.4

nchannels_file_in

int io_file_t::nchannels_file_in [private]

5.93.4.5

nchannels_out

int io_file_t::nchannels_out [private]

5.93.4.6

proc_event

IOProcessEvent_t io_file_t::proc_event [private]

5.93.4.7

proc_handle

void∗ io_file_t::proc_handle [private]

5.93.4.8

start_event

IOStartedEvent_t io_file_t::start_event [private]

© 2005-2018 HörTech gGmbH, Oldenburg

415

416

5.93.4.9

CONTENTS

start_handle

void∗ io_file_t::start_handle [private]

5.93.4.10

stop_event

IOStoppedEvent_t io_file_t::stop_event [private]

5.93.4.11

stop_handle

void∗ io_file_t::stop_handle [private]

5.93.4.12

filename_input

MHAParser::string_t io_file_t::filename_input [private]

5.93.4.13

filename_output

MHAParser::string_t io_file_t::filename_output [private]

5.93.4.14

output_sample_format

MHAParser::kw_t io_file_t::output_sample_format [private]

5.93.4.15

startsample

MHAParser::int_t io_file_t::startsample [private]

5.93.4.16

length

MHAParser::int_t io_file_t::length [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.93

io_file_t Class Reference

5.93.4.17

strict_channel_match

MHAParser::bool_t io_file_t::strict_channel_match [private]

5.93.4.18

strict_srate_match

MHAParser::bool_t io_file_t::strict_srate_match [private]

5.93.4.19

s_in

MHASignal::waveform_t∗ io_file_t::s_in [private]

5.93.4.20

s_file_in

MHASignal::waveform_t∗ io_file_t::s_file_in [private]

5.93.4.21

s_out

mha_wave_t∗ io_file_t::s_out [private]

5.93.4.22

b_prepared

bool io_file_t::b_prepared [private]

5.93.4.23

sf_in

SNDFILE∗ io_file_t::sf_in [private]

5.93.4.24

sf_out

SNDFILE∗ io_file_t::sf_out [private]

© 2005-2018 HörTech gGmbH, Oldenburg

417

418

5.93.4.25

CONTENTS

sfinf_in

SF_INFO io_file_t::sfinf_in [private]

5.93.4.26

sfinf_out

SF_INFO io_file_t::sfinf_out [private]

5.93.4.27

total_read

sf_count_t io_file_t::total_read [private]

The documentation for this class was generated from the following file:

• MHAIOFile.cpp

5.94

io_lib_t Class Reference

Class for loading MHA sound IO module.
Inheritance diagram for io_lib_t:

MHAParser::base_t

MHAParser::c_ifc_parser_t

io_lib_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.94

io_lib_t Class Reference

419

Public Member Functions
• io_lib_t (int fragsize, float samplerate, IOProcessEvent_t proc_event, void ∗proc_←handle, IOStartedEvent_t start_event, void ∗start_handle, IOStoppedEvent_t stop_←event, void ∗stop_handle, std::string libname)
load and initialize MHA sound io module.

• ∼io_lib_t ()
Deinitialize and unload this MHA sound io module.

• void prepare (unsigned int inch, unsigned int outch)
Prepare the sound io module.

• void start ()
Tell the sound io module to start sound processing.

• void stop ()
• void release ()
• std::string lib_str_error (int err)

Protected Member Functions
• void test_error ()

Protected Attributes
•
•
•
•
•
•
•
•
•
•
•

int lib_err
dynamiclib_t lib_handle
void ∗ lib_data
IOInit_t IOInit_cb
IOPrepare_t IOPrepare_cb
IOStart_t IOStart_cb
IOStop_t IOStop_cb
IORelease_t IORelease_cb
IOSetVar_t IOSetVar_cb
IOStrError_t IOStrError_cb
IODestroy_t IODestroy_cb

Additional Inherited Members
5.94.1

Detailed Description

Class for loading MHA sound IO module.

5.94.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

420

5.94.2.1

CONTENTS

io_lib_t()

io_lib_t::io_lib_t (
int fragsize,
float samplerate,
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle,
std::string libname )

load and initialize MHA sound io module.

5.94.2.2 ∼io_lib_t()
io_lib_t::∼io_lib_t ( )

Deinitialize and unload this MHA sound io module.

5.94.3

5.94.3.1

Member Function Documentation

prepare()

void io_lib_t::prepare (
unsigned int inch,
unsigned int outch )

Prepare the sound io module.
After preparation, the sound io module may start the sound processing at any time (external
trigger). When the sound processing is started, the sound io module will call the start_event
callback.
Parameters
inch

number of input channels

outch

number of output channels

© 2005-2018 HörTech gGmbH, Oldenburg

5.94

io_lib_t Class Reference

5.94.3.2

421

start()

void io_lib_t::start ( )

Tell the sound io module to start sound processing.
Some io modules need this, for others that wait for external events this method might do nothing.

5.94.3.3

stop()

void io_lib_t::stop ( )

5.94.3.4

release()

void io_lib_t::release ( )

5.94.3.5

lib_str_error()

std::string io_lib_t::lib_str_error (
int err )

5.94.3.6

test_error()

void io_lib_t::test_error ( ) [protected]

5.94.4

5.94.4.1

Member Data Documentation

lib_err

int io_lib_t::lib_err [protected]

5.94.4.2

lib_handle

dynamiclib_t io_lib_t::lib_handle [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

422

5.94.4.3

CONTENTS

lib_data

void∗ io_lib_t::lib_data [protected]

5.94.4.4

IOInit_cb

IOInit_t io_lib_t::IOInit_cb [protected]

5.94.4.5

IOPrepare_cb

IOPrepare_t io_lib_t::IOPrepare_cb [protected]

5.94.4.6

IOStart_cb

IOStart_t io_lib_t::IOStart_cb [protected]

5.94.4.7

IOStop_cb

IOStop_t io_lib_t::IOStop_cb [protected]

5.94.4.8

IORelease_cb

IORelease_t io_lib_t::IORelease_cb [protected]

5.94.4.9

IOSetVar_cb

IOSetVar_t io_lib_t::IOSetVar_cb [protected]

5.94.4.10

IOStrError_cb

IOStrError_t io_lib_t::IOStrError_cb [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

5.95

io_parser_t Class Reference

5.94.4.11

423

IODestroy_cb

IODestroy_t io_lib_t::IODestroy_cb [protected]

The documentation for this class was generated from the following files:
• mhafw_lib.h
• mhafw_lib.cpp

5.95

io_parser_t Class Reference

Main class for Parser IO.
Inheritance diagram for io_parser_t:

MHAParser::base_t

MHAParser::parser_t

io_parser_t

Public Member Functions
• io_parser_t (unsigned int fragsize, IOProcessEvent_t proc_event, void ∗ proc←_handle, IOStartedEvent_t start_event, void ∗ start_handle, IOStoppedEvent_t
stop_event, void ∗ stop_handle)
• ∼io_parser_t ()
• void prepare (int, int)
Allocate buffers, activate JACK client and install internal ports.

• void start ()
• void stop ()
• void release ()
Remove JACK client and deallocate internal ports and buffers.
© 2005-2018 HörTech gGmbH, Oldenburg

424

CONTENTS

Private Member Functions
• void stopped (int, int)
• void started ()
• void process_frame ()

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

unsigned int fragsize
unsigned int nchannels_in
unsigned int nchannels_out
IOProcessEvent_t proc_event
void ∗ proc_handle
IOStartedEvent_t start_event
void ∗ start_handle
IOStoppedEvent_t stop_event
void ∗ stop_handle
MHAParser::mfloat_t input
MHAParser::mfloat_mon_t output
MHASignal::waveform_t ∗ s_in
mha_wave_t ∗ s_out
bool b_fw_started
bool b_stopped
bool b_prepared
bool b_starting
MHAEvents::patchbay_t< io_parser_t > patchbay

Additional Inherited Members
5.95.1

Detailed Description

Main class for Parser IO.

5.95.2

5.95.2.1

Constructor & Destructor Documentation

io_parser_t()

io_parser_t::io_parser_t (
unsigned int fragsize,
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle )

© 2005-2018 HörTech gGmbH, Oldenburg

5.95

io_parser_t Class Reference

5.95.2.2 ∼io_parser_t()
io_parser_t::∼io_parser_t ( )

5.95.3

5.95.3.1

Member Function Documentation

prepare()

void io_parser_t::prepare (
int nch_in,
int nch_out )

Allocate buffers, activate JACK client and install internal ports.

5.95.3.2

start()

void io_parser_t::start ( )

5.95.3.3

stop()

void io_parser_t::stop ( )

5.95.3.4

release()

void io_parser_t::release (
void

)

Remove JACK client and deallocate internal ports and buffers.

5.95.3.5

stopped()

void io_parser_t::stopped (
int proc_err,
int io_err ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

425

426

5.95.3.6

CONTENTS

started()

void io_parser_t::started ( ) [private]

5.95.3.7

process_frame()

void io_parser_t::process_frame ( ) [private]

5.95.4

5.95.4.1

Member Data Documentation

fragsize

unsigned int io_parser_t::fragsize [private]

5.95.4.2

nchannels_in

unsigned int io_parser_t::nchannels_in [private]

5.95.4.3

nchannels_out

unsigned int io_parser_t::nchannels_out [private]

5.95.4.4

proc_event

IOProcessEvent_t io_parser_t::proc_event [private]

5.95.4.5

proc_handle

void∗ io_parser_t::proc_handle [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.95

io_parser_t Class Reference

5.95.4.6

start_event

IOStartedEvent_t io_parser_t::start_event [private]

5.95.4.7

start_handle

void∗ io_parser_t::start_handle [private]

5.95.4.8

stop_event

IOStoppedEvent_t io_parser_t::stop_event [private]

5.95.4.9

stop_handle

void∗ io_parser_t::stop_handle [private]

5.95.4.10

input

MHAParser::mfloat_t io_parser_t::input [private]

5.95.4.11

output

MHAParser::mfloat_mon_t io_parser_t::output [private]

5.95.4.12

s_in

MHASignal::waveform_t∗ io_parser_t::s_in [private]

5.95.4.13

s_out

mha_wave_t∗ io_parser_t::s_out [private]

© 2005-2018 HörTech gGmbH, Oldenburg

427

428

5.95.4.14

CONTENTS

b_fw_started

bool io_parser_t::b_fw_started [private]

5.95.4.15

b_stopped

bool io_parser_t::b_stopped [private]

5.95.4.16

b_prepared

bool io_parser_t::b_prepared [private]

5.95.4.17

b_starting

bool io_parser_t::b_starting [private]

5.95.4.18

patchbay

MHAEvents::patchbay_t< io_parser_t> io_parser_t::patchbay [private]

The documentation for this class was generated from the following file:
• MHAIOParser.cpp

5.96

io_tcp_fwcb_t Class Reference

TCP sound-io library's interface to the framework callbacks.

Public Member Functions
• io_tcp_fwcb_t ( IOProcessEvent_t proc_event, void ∗ proc_handle, IOStarted←Event_t start_event, void ∗ start_handle, IOStoppedEvent_t stop_event, void ∗
stop_handle)
Constructor stores framework handles and initializes error numbers to 0.

• virtual ∼io_tcp_fwcb_t ()
Do-nothing destructor.

• virtual void start ()
Call the framework's start callback.

• virtual int process ( mha_wave_t ∗sIn, mha_wave_t ∗&sOut)
Call the frameworks processing callback.

• virtual void set_errnos (int proc_err, int io_err)
Save error numbers to use during.

• virtual void stop ()
Call the frameworks stop callback.
© 2005-2018 HörTech gGmbH, Oldenburg

5.96

io_tcp_fwcb_t Class Reference

429

Private Attributes
• IOProcessEvent_t proc_event
Pointer to signal processing callback function.

• IOStartedEvent_t start_event
Pointer to start notification callback function.

• IOStoppedEvent_t stop_event
Pointer to stop notification callback function.

• void ∗ proc_handle
Handles belonging to framework.

• void ∗ start_handle
• void ∗ stop_handle
• int proc_err
Errors from the processing callback and from the TCP IO itself are stored here before closing
Network handles.

• int io_err

5.96.1

Detailed Description

TCP sound-io library's interface to the framework callbacks.

5.96.2

5.96.2.1

Constructor & Destructor Documentation

io_tcp_fwcb_t()

io_tcp_fwcb_t::io_tcp_fwcb_t (
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle )

Constructor stores framework handles and initializes error numbers to 0.

5.96.2.2 ∼io_tcp_fwcb_t()
virtual io_tcp_fwcb_t::∼io_tcp_fwcb_t ( ) [inline], [virtual]

Do-nothing destructor.
© 2005-2018 HörTech gGmbH, Oldenburg

430

5.96.3

CONTENTS

Member Function Documentation

5.96.3.1

start()

void io_tcp_fwcb_t::start ( ) [virtual]

Call the framework's start callback.

5.96.3.2

process()

int io_tcp_fwcb_t::process (
mha_wave_t ∗ sIn,
mha_wave_t ∗& sOut ) [virtual]

Call the frameworks processing callback.
Parameters
sIn

The input sound data just received from TCP.

sOut

A pointer to output sound data. Will point to the output sound data storage when the
callback finishes.

Returns
Status, an error number from the signal processing callback. If this is != 0, then the
connection should be closed.

5.96.3.3

set_errnos()

void io_tcp_fwcb_t::set_errnos (
int proc_err,
int io_err ) [virtual]

Save error numbers to use during.
See also
stop (p. 431)

© 2005-2018 HörTech gGmbH, Oldenburg

5.96

io_tcp_fwcb_t Class Reference

431

Parameters
proc_err

The error number from the

See also
process (p. 430) callback.
Parameters
The error number from the io library itself.

io_err

5.96.3.4

stop()

void io_tcp_fwcb_t::stop ( ) [virtual]

Call the frameworks stop callback.
Uses the error numbers set previously with
See also
set_errnos (p. 430).

5.96.4

5.96.4.1

Member Data Documentation

proc_event

IOProcessEvent_t io_tcp_fwcb_t::proc_event [private]

Pointer to signal processing callback function.

5.96.4.2

start_event

IOStartedEvent_t io_tcp_fwcb_t::start_event [private]

Pointer to start notification callback function.
Called when a new TCP connection is established or the user issues the start command while
there is a connection.
© 2005-2018 HörTech gGmbH, Oldenburg

432

5.96.4.3

CONTENTS

stop_event

IOStoppedEvent_t io_tcp_fwcb_t::stop_event [private]

Pointer to stop notification callback function.
Called when the connection is closed.
5.96.4.4

proc_handle

void∗ io_tcp_fwcb_t::proc_handle [private]

Handles belonging to framework.

5.96.4.5

start_handle

void ∗ io_tcp_fwcb_t::start_handle [private]

5.96.4.6

stop_handle

void ∗ io_tcp_fwcb_t::stop_handle [private]

5.96.4.7

proc_err

int io_tcp_fwcb_t::proc_err [private]

Errors from the processing callback and from the TCP IO itself are stored here before closing
Network handles.
MHAIOTCP is notified by the server when the connection has been taken down, and calls

See also
stop (p. 431) from that callback. Within stop (p. 431), these error numbers are read again
and transmitted to the framework.

© 2005-2018 HörTech gGmbH, Oldenburg

5.97

io_tcp_parser_t Class Reference

5.96.4.8

433

io_err

int io_tcp_fwcb_t::io_err [private]

The documentation for this class was generated from the following file:
• MHAIOTCP.cpp

5.97

io_tcp_parser_t Class Reference

The parser interface of the IOTCP library.
Inheritance diagram for io_tcp_parser_t:

MHAParser::base_t

MHAParser::parser_t

io_tcp_parser_t

Public Member Functions
• virtual const std::string & get_local_address () const
Read parser variable local_address, this is the address of the network interface that should
listen for incoming connections.

• virtual unsigned short get_local_port () const
Read parser variable local_port, this is the TCP port that should be used for incoming connections.

• virtual void set_local_port (unsigned short port)
Set parser variable local_port.

• virtual bool get_server_port_open () const
Return the status of the server port as it is known to the parser.

• virtual void set_server_port_open (bool open)
Inform the parser of the current status of the server socket.

• virtual bool get_connected () const
© 2005-2018 HörTech gGmbH, Oldenburg

434

CONTENTS

Return the parser's knowledge concerning wether there currently exists an established sound
data TCP connection or not.

• virtual void set_connected (bool connected)
Inform the parser about the existance of a sound data connection.

• virtual void set_new_peer (unsigned short port, const std::string &host)
Set parser monitor variables peer_port and peer_address, and calls set_connected(true).

• io_tcp_parser_t ()
Constructor initializes parser variables.

• virtual ∼io_tcp_parser_t ()
Do-nothing destructor.

• virtual void debug (const std::string &message)

Private Attributes
• MHAParser::string_t local_address
Lets the user set the local network interface to listen on.

• MHAParser::int_t local_port
Lets the user choose the local tcp port to listen on.

• MHAParser::int_mon_t server_port_open
Indicates wether the TCP server socket is currently open.

• MHAParser::int_mon_t connected
Indicator if there currently is a sound data connection over TCP.

• MHAParser::string_mon_t peer_address
Display the ip address of the currently connected sound data client.

• MHAParser::int_mon_t peer_port
Display the tcp port used by the current sound data client.

• MHAParser::string_t debug_filename
filename to write debugging info to (if non-empty)

• FILE ∗ debug_file
file handle to write debugging info to

Additional Inherited Members

5.97.1

Detailed Description

The parser interface of the IOTCP library.

5.97.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.97

io_tcp_parser_t Class Reference

5.97.2.1

435

io_tcp_parser_t()

io_tcp_parser_t::io_tcp_parser_t ( )

Constructor initializes parser variables.

5.97.2.2 ∼io_tcp_parser_t()
virtual io_tcp_parser_t::∼io_tcp_parser_t ( ) [inline], [virtual]

Do-nothing destructor.

5.97.3

Member Function Documentation

5.97.3.1

get_local_address()

virtual const std::string& io_tcp_parser_t::get_local_address ( ) const [inline],
[virtual]

Read parser variable local_address, this is the address of the network interface that should
listen for incoming connections.
Returns
A string containing the address of the local interface as it was set by the user.

5.97.3.2

get_local_port()

unsigned short io_tcp_parser_t::get_local_port ( ) const [virtual]

Read parser variable local_port, this is the TCP port that should be used for incoming connections.
Returns
The local tcp port to listen on as it was chosen by the user. The port number is between
MIN_TCP_PORT and MAX_TCP_PORT.

5.97.3.3

set_local_port()

void io_tcp_parser_t::set_local_port (
unsigned short port ) [virtual]

Set parser variable local_port.
This is needed when it was set to 0 before: In this case, the OS chooses a free port for the TCP
server socket, and the port that it chose has to be published to the user via the parser interface.

© 2005-2018 HörTech gGmbH, Oldenburg

436

CONTENTS

Parameters
The TCP port number that is currently used. In the range [MIN_TCP_PORT,
MAX_TCP_PORT], excluding 0.

port

Precondition
get_local_port() (p. 435) currently returns 0.

5.97.3.4

get_server_port_open()

bool io_tcp_parser_t::get_server_port_open ( ) const [virtual]

Return the status of the server port as it is known to the parser.
Returns
false after initialization, or the value most recently set via

See also
set_server_port_open (p. 436).

5.97.3.5

set_server_port_open()

void io_tcp_parser_t::set_server_port_open (
bool open ) [virtual]

Inform the parser of the current status of the server socket.
Parameters
open

Indicates wether the server socket has just been opened or closed.

Precondition
open may only have the value true if get_server_port_open() (p. 436) currently returns
false.

© 2005-2018 HörTech gGmbH, Oldenburg

5.97

io_tcp_parser_t Class Reference

437

Postcondition

See also
get_server_port_open (p. 436) returns the value (p. 57) of open.

5.97.3.6

get_connected()

bool io_tcp_parser_t::get_connected ( ) const [virtual]

Return the parser's knowledge concerning wether there currently exists an established sound
data TCP connection or not.
Returns
false after initialization, or the value most recently set via

See also
set_connected (p. 437).

5.97.3.7

set_connected()

void io_tcp_parser_t::set_connected (
bool connected ) [virtual]

Inform the parser about the existance of a sound data connection.
Parameters
connected

Indicates wether there currently is a connection or not.

Precondition
connected must not have the same value that is currently returned by
See also
get_connected (p. 437).

© 2005-2018 HörTech gGmbH, Oldenburg

438

CONTENTS

Postcondition

See also
get_connected (p. 437) returns the value (p. 57) of open.

5.97.3.8

set_new_peer()

void io_tcp_parser_t::set_new_peer (
unsigned short port,
const std::string & host ) [virtual]

Set parser monitor variables peer_port and peer_address, and calls set_connected(true).
This method should be called when a new connection is established.
Parameters
port
host

The TCP port number used by the peer.
The Internet host where the peer is located.

Precondition

See also
get_connected (p. 437) currently returns false.

Postcondition

See also
get_connected (p. 437) returns true.

© 2005-2018 HörTech gGmbH, Oldenburg

5.97

io_tcp_parser_t Class Reference

5.97.3.9

439

debug()

virtual void io_tcp_parser_t::debug (
const std::string & message ) [inline], [virtual]

5.97.4

5.97.4.1

Member Data Documentation

local_address

MHAParser::string_t io_tcp_parser_t::local_address [private]

Lets the user set the local network interface to listen on.

5.97.4.2

local_port

MHAParser::int_t io_tcp_parser_t::local_port [private]

Lets the user choose the local tcp port to listen on.

5.97.4.3

server_port_open

MHAParser::int_mon_t io_tcp_parser_t::server_port_open [private]

Indicates wether the TCP server socket is currently open.

5.97.4.4

connected

MHAParser::int_mon_t io_tcp_parser_t::connected [private]

Indicator if there currently is a sound data connection over TCP.

5.97.4.5

peer_address

MHAParser::string_mon_t io_tcp_parser_t::peer_address [private]

Display the ip address of the currently connected sound data client.

© 2005-2018 HörTech gGmbH, Oldenburg

440

5.97.4.6

CONTENTS

peer_port

MHAParser::int_mon_t io_tcp_parser_t::peer_port [private]

Display the tcp port used by the current sound data client.

5.97.4.7

debug_filename

MHAParser::string_t io_tcp_parser_t::debug_filename [private]

filename to write debugging info to (if non-empty)

5.97.4.8

debug_file

FILE∗ io_tcp_parser_t::debug_file [private]

file handle to write debugging info to
The documentation for this class was generated from the following file:

• MHAIOTCP.cpp

5.98

io_tcp_sound_t Class Reference

Sound data handling of io tcp library.

Classes
• union float_union
This union helps in conversion of floats from host byte order to network byte order and back
again.
© 2005-2018 HörTech gGmbH, Oldenburg

5.98

io_tcp_sound_t Class Reference

441

Public Member Functions
• io_tcp_sound_t (int fragsize, float samplerate)
Initialize sound data handling.

• virtual ∼io_tcp_sound_t ()
Do-nothing destructor.

• virtual void prepare (int num_inchannels, int num_outchannels)
Called during prepare, sets number of audio channels and allocates sound data storage.

• virtual void release ()
Called during release.

• virtual int chunkbytes_in () const
Number of bytes that constitute one input sound chunk.

• virtual std::string header () const
Create the tcp sound header lines.

• virtual mha_wave_t ∗ ntoh (const std::string &data)
Copy data received from tcp into mha_wave_t ( p. 583) structure.

• virtual std::string hton (const mha_wave_t ∗s_out)
Copy sound data from the output sound structure to a string.

Static Private Member Functions
• static void check_sound_data_type ()
Check if mha_real_t is a usable 32-bit floating point type.

Private Attributes
• int fragsize
Number of sound samples in each channel expected and returned from processing callback.

• float samplerate
Sampling rate.

• int num_inchannels
Number of input channels.

• int num_outchannels
• MHASignal::waveform_t ∗ s_in
Storage for input signal.

5.98.1

Detailed Description

Sound data handling of io tcp library.

5.98.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

442

5.98.2.1

CONTENTS

io_tcp_sound_t()

io_tcp_sound_t::io_tcp_sound_t (
int fragsize,
float samplerate )

Initialize sound data handling.
Checks sound data type by calling
See also
check_sound_data_type (p. 442).
Parameters
fragsize

Number of sound samples in each channel expected and returned from
processing callback.

samplerate

Number of samples per second in each channel.

5.98.2.2 ∼io_tcp_sound_t()
virtual io_tcp_sound_t::∼io_tcp_sound_t ( ) [inline], [virtual]

Do-nothing destructor.

5.98.3

5.98.3.1

Member Function Documentation

check_sound_data_type()

void io_tcp_sound_t::check_sound_data_type ( ) [static], [private]

Check if mha_real_t is a usable 32-bit floating point type.
Exceptions
MHA_Error ( p. 522)

if mha_real_t is not compatible to 32-bit float.

© 2005-2018 HörTech gGmbH, Oldenburg

5.98

io_tcp_sound_t Class Reference

5.98.3.2

443

prepare()

void io_tcp_sound_t::prepare (
int num_inchannels,
int num_outchannels ) [virtual]

Called during prepare, sets number of audio channels and allocates sound data storage.
Parameters
num_inchannels

Number of input audio channels.

num_outchannels

Number of output audio channels.

5.98.3.3

release()

void io_tcp_sound_t::release (
void

) [virtual]

Called during release.
Deletes sound data storage.
5.98.3.4

chunkbytes_in()

int io_tcp_sound_t::chunkbytes_in ( ) const [virtual]

Number of bytes that constitute one input sound chunk.
Returns
Number of bytes to read from TCP connection before invoking signal processing.

5.98.3.5

header()

std::string io_tcp_sound_t::header ( ) const [virtual]

Create the tcp sound header lines.

5.98.3.6

ntoh()

mha_wave_t ∗ io_tcp_sound_t::ntoh (
const std::string & data ) [virtual]

Copy data received from tcp into mha_wave_t (p. 583) structure.
Doing network-to-host byte order swapping in the process.

© 2005-2018 HörTech gGmbH, Oldenburg

444

CONTENTS

Parameters
One chunk (

data

See also
chunkbytes_in (p. 443)) of sound data to process.

Returns
Pointer to the sound data storage.

5.98.3.7

hton()

std::string io_tcp_sound_t::hton (
const

mha_wave_t ∗ s_out ) [virtual]

Copy sound data from the output sound structure to a string.
Doing host-to-network byte order swapping while at it.
Parameters
s_out

Pointer to the storage of the sound to put out.

Returns
The sound data in network byte order.

5.98.4

5.98.4.1

Member Data Documentation

fragsize

int io_tcp_sound_t::fragsize [private]

Number of sound samples in each channel expected and returned from processing callback.

© 2005-2018 HörTech gGmbH, Oldenburg

5.99

io_tcp_sound_t::float_union Union Reference

5.98.4.2

445

samplerate

float io_tcp_sound_t::samplerate [private]

Sampling rate.
Number of samples per second in each channel.
5.98.4.3

num_inchannels

int io_tcp_sound_t::num_inchannels [private]

Number of input channels.
Number of channels expected from and returned by signal processing callback.
5.98.4.4

num_outchannels

int io_tcp_sound_t::num_outchannels [private]

5.98.4.5

s_in

MHASignal::waveform_t∗ io_tcp_sound_t::s_in [private]

Storage for input signal.
The documentation for this class was generated from the following file:
• MHAIOTCP.cpp

5.99

io_tcp_sound_t::float_union Union Reference

This union helps in conversion of floats from host byte order to network byte order and back
again.

Public Attributes
• float f
• unsigned int i
• char c [4]
© 2005-2018 HörTech gGmbH, Oldenburg

446

5.99.1

CONTENTS

Detailed Description

This union helps in conversion of floats from host byte order to network byte order and back
again.

5.99.2

5.99.2.1

Member Data Documentation

f

float io_tcp_sound_t::float_union::f

5.99.2.2

i

unsigned int io_tcp_sound_t::float_union::i

5.99.2.3

c

char io_tcp_sound_t::float_union::c[4]

The documentation for this union was generated from the following file:

• MHAIOTCP.cpp

5.100

io_tcp_t Class Reference

The tcp sound io library.
© 2005-2018 HörTech gGmbH, Oldenburg

5.100

io_tcp_t Class Reference

447

Public Member Functions
• io_tcp_t (int fragsize, float samplerate, IOProcessEvent_t proc_event, void ∗proc_←handle, IOStartedEvent_t start_event, void ∗start_handle, IOStoppedEvent_t stop_←event, void ∗stop_handle)
• void prepare (int num_inchannels, int num_outchannels)
Allocate server socket and start thread waiting for sound data exchange.

• void start ()
Call frameworks start callback if there is a sound data connection at the moment.

• void stop ()
Close the current connection if there is one.

• void release ()
Close the current connection and close the server socket.

• virtual void accept_loop ()
IO thread executes this method.

• virtual void connection_loop ( MHA_TCP::Connection ∗c)
IO thread executes this method for each connection.

• virtual void parse (const char ∗cmd, char ∗retval, unsigned int len)
Parser interface.

• virtual ∼io_tcp_t ()

Private Attributes
•
•
•
•
•
•
•
•

5.100.1

io_tcp_parser_t parser
io_tcp_sound_t sound
io_tcp_fwcb_t fwcb
MHA_TCP::Server ∗ server
MHA_TCP::Thread ∗ thread
MHA_TCP::Async_Notify notify_start
MHA_TCP::Async_Notify notify_stop
MHA_TCP::Async_Notify notify_release

Detailed Description

The tcp sound io library.

5.100.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

448

5.100.2.1

CONTENTS

io_tcp_t()

io_tcp_t::io_tcp_t (
int fragsize,
float samplerate,
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle )

5.100.2.2 ∼io_tcp_t()
virtual io_tcp_t::∼io_tcp_t ( ) [inline], [virtual]

5.100.3

5.100.3.1

Member Function Documentation

prepare()

void io_tcp_t::prepare (
int num_inchannels,
int num_outchannels )

Allocate server socket and start thread waiting for sound data exchange.
prepare opens the tcp server socket and starts the io thread that listens for audio data on the
tcp socket after doing some sanity checks
5.100.3.2

start()

void io_tcp_t::start ( )

Call frameworks start callback if there is a sound data connection at the moment.

5.100.3.3

stop()

void io_tcp_t::stop ( )

Close the current connection if there is one.
stop IO thread
© 2005-2018 HörTech gGmbH, Oldenburg

5.100

5.100.3.4

io_tcp_t Class Reference

449

release()

void io_tcp_t::release (
void

)

Close the current connection and close the server socket.
Stop IO thread and close server socket.
5.100.3.5

accept_loop()

void io_tcp_t::accept_loop ( ) [virtual]

IO thread executes this method.

5.100.3.6

connection_loop()

void io_tcp_t::connection_loop (
MHA_TCP::Connection ∗ c ) [virtual]

IO thread executes this method for each connection.
Parameters
c

pointer to connection. connection_loop deletes connection before exiting.

5.100.3.7

parse()

virtual void io_tcp_t::parse (
const char ∗ cmd,
char ∗ retval,
unsigned int len ) [inline], [virtual]

Parser interface.

5.100.4

5.100.4.1

Member Data Documentation

parser

io_tcp_parser_t io_tcp_t::parser [private]

© 2005-2018 HörTech gGmbH, Oldenburg

450

5.100.4.2

CONTENTS

sound

io_tcp_sound_t io_tcp_t::sound [private]

5.100.4.3

fwcb

io_tcp_fwcb_t io_tcp_t::fwcb [private]

5.100.4.4

server

MHA_TCP::Server∗ io_tcp_t::server [private]

5.100.4.5

thread

MHA_TCP::Thread∗ io_tcp_t::thread [private]

5.100.4.6

notify_start

MHA_TCP::Async_Notify io_tcp_t::notify_start [private]

5.100.4.7

notify_stop

MHA_TCP::Async_Notify io_tcp_t::notify_stop [private]

5.100.4.8

notify_release

MHA_TCP::Async_Notify io_tcp_t::notify_release [private]

The documentation for this class was generated from the following file:
• MHAIOTCP.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.101

latex_doc_t Class Reference

5.101

latex_doc_t Class Reference

451

Public Member Functions
•
•
•
•

latex_doc_t (const std::string & plugname, const std::string & plugin_macro)
std::string get_latex_doc ()
std::string get_main_category ()
std::vector< std::string > get_categories ()

Private Member Functions
•
•
•
•
•

std::string
std::string
std::string
std::string
std::string

strdom ( mha_domain_t d)
get_ac ( MHAKernel::algo_comm_class_t & ac, std::string txt)
parsername (std::string s)
get_parser_var ( MHAParser::base_t ∗p, std::string name)
get_parser_tab ( MHAParser::base_t ∗p, std::string prefix)

Private Attributes
•
•
•
•
•

std::string plugname
std::string latex_plugname
MHAKernel::algo_comm_class_t ac
PluginLoader::mhapluginloader_t loader
std::string plugin_macro

5.101.1

5.101.1.1

Constructor & Destructor Documentation

latex_doc_t()

latex_doc_t::latex_doc_t (
const std::string & plugname,
const std::string & plugin_macro )

5.101.2

5.101.2.1

Member Function Documentation

get_latex_doc()

std::string latex_doc_t::get_latex_doc ( )

© 2005-2018 HörTech gGmbH, Oldenburg

452

5.101.2.2

CONTENTS

get_main_category()

std::string latex_doc_t::get_main_category ( )

5.101.2.3

get_categories()

std::vector< std::string > latex_doc_t::get_categories ( )

5.101.2.4

strdom()

std::string latex_doc_t::strdom (
mha_domain_t d ) [private]

5.101.2.5

get_ac()

std::string latex_doc_t::get_ac (
MHAKernel::algo_comm_class_t & ac,
std::string txt ) [private]

5.101.2.6

parsername()

std::string latex_doc_t::parsername (
std::string s ) [private]

5.101.2.7

get_parser_var()

std::string latex_doc_t::get_parser_var (
MHAParser::base_t ∗ p,
std::string name ) [private]

5.101.2.8

get_parser_tab()

std::string latex_doc_t::get_parser_tab (
MHAParser::base_t ∗ p,
std::string prefix ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.101

latex_doc_t Class Reference

5.101.3

Member Data Documentation

5.101.3.1

plugname

std::string latex_doc_t::plugname [private]

5.101.3.2

latex_plugname

std::string latex_doc_t::latex_plugname [private]

5.101.3.3

ac

MHAKernel::algo_comm_class_t latex_doc_t::ac [private]

5.101.3.4

loader

PluginLoader::mhapluginloader_t latex_doc_t::loader [private]

5.101.3.5

plugin_macro

std::string latex_doc_t::plugin_macro [private]

The documentation for this class was generated from the following file:

• generatemhaplugindoc.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

453

454

5.102

CONTENTS

lpc Class Reference

Inheritance diagram for lpc:

MHAParser::base_t

MHAPlugin::config_t
< lpc_config >

MHAParser::parser_t

MHAPlugin::plugin_t
< lpc_config >

lpc

Public Member Functions
• lpc ( algo_comm_t & ac, const std::string &chain_name, const std::string & algo_name)
Constructs our plugin.

• ∼lpc ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
Checks for the most recent configuration and defers processing to it.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)

Private Member Functions
• void update_cfg ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.102

lpc Class Reference

455

Private Attributes
•
•
•
•
•
•
•

std::string algo_name
MHAParser::int_t lpc_order
MHAParser::int_t lpc_buffer_size
MHAParser::bool_t shift
MHAParser::int_t comp_each_iter
MHAParser::bool_t norm
MHAEvents::patchbay_t< lpc > patchbay

Additional Inherited Members
5.102.1

5.102.1.1

Constructor & Destructor Documentation

lpc()

lpc::lpc (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.

5.102.1.2 ∼lpc()
lpc::∼lpc ( )

5.102.2

5.102.2.1

Member Function Documentation

process()

mha_wave_t ∗ lpc::process (
mha_wave_t ∗ signal )

Checks for the most recent configuration and defers processing to it.

5.102.2.2

prepare()

void lpc::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.

© 2005-2018 HörTech gGmbH, Oldenburg

456

CONTENTS

Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< lpc_config > (p. 884).

5.102.2.3

release()

void lpc::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< lpc_config > (p. 885).

5.102.2.4

update_cfg()

void lpc::update_cfg ( ) [private]

5.102.3

5.102.3.1

Member Data Documentation

algo_name

std::string lpc::algo_name [private]

5.102.3.2

lpc_order

MHAParser::int_t lpc::lpc_order [private]

5.102.3.3

lpc_buffer_size

MHAParser::int_t lpc::lpc_buffer_size [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.103

lpc_bl_predictor Class Reference

5.102.3.4

457

shift

MHAParser::bool_t lpc::shift [private]

5.102.3.5

comp_each_iter

MHAParser::int_t lpc::comp_each_iter [private]

5.102.3.6

norm

MHAParser::bool_t lpc::norm [private]

5.102.3.7

patchbay

MHAEvents::patchbay_t< lpc> lpc::patchbay [private]

The documentation for this class was generated from the following files:
• lpc.h
• lpc.cpp

5.103

lpc_bl_predictor Class Reference

Inheritance diagram for lpc_bl_predictor:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< lpc_bl_predictor_config >

MHAPlugin::plugin_t
< lpc_bl_predictor_config >

lpc_bl_predictor

© 2005-2018 HörTech gGmbH, Oldenburg

458

CONTENTS

Public Member Functions
• lpc_bl_predictor ( algo_comm_t & ac, const std::string &chain_name, const std::string
&algo_name)
Constructs our plugin.

• ∼lpc_bl_predictor ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
Checks for the most recent configuration and defers processing to it.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)

Public Attributes
•
•
•
•
•
•

MHAParser::int_t lpc_order
MHAParser::string_t name_kappa
MHAParser::string_t name_lpc_f
MHAParser::string_t name_lpc_b
MHAParser::string_t name_f
MHAParser::string_t name_b

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< lpc_bl_predictor > patchbay

Additional Inherited Members
5.103.1

5.103.1.1

Constructor & Destructor Documentation

lpc_bl_predictor()

lpc_bl_predictor::lpc_bl_predictor (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.

© 2005-2018 HörTech gGmbH, Oldenburg

5.103

lpc_bl_predictor Class Reference

459

5.103.1.2 ∼lpc_bl_predictor()
lpc_bl_predictor::∼lpc_bl_predictor ( )

5.103.2

5.103.2.1

Member Function Documentation

process()

mha_wave_t ∗ lpc_bl_predictor::process (
mha_wave_t ∗ signal )

Checks for the most recent configuration and defers processing to it.

5.103.2.2

prepare()

void lpc_bl_predictor::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.
Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< lpc_bl_predictor_config > (p. 884).

5.103.2.3

release()

void lpc_bl_predictor::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< lpc_bl_predictor_config > (p. 885).

© 2005-2018 HörTech gGmbH, Oldenburg

460

5.103.2.4

CONTENTS

update_cfg()

void lpc_bl_predictor::update_cfg ( ) [private]

5.103.3

5.103.3.1

Member Data Documentation

lpc_order

MHAParser::int_t lpc_bl_predictor::lpc_order

5.103.3.2

name_kappa

MHAParser::string_t lpc_bl_predictor::name_kappa

5.103.3.3

name_lpc_f

MHAParser::string_t lpc_bl_predictor::name_lpc_f

5.103.3.4

name_lpc_b

MHAParser::string_t lpc_bl_predictor::name_lpc_b

5.103.3.5

name_f

MHAParser::string_t lpc_bl_predictor::name_f

5.103.3.6

name_b

MHAParser::string_t lpc_bl_predictor::name_b

© 2005-2018 HörTech gGmbH, Oldenburg

5.104

lpc_bl_predictor_config Class Reference

5.103.3.7

461

patchbay

MHAEvents::patchbay_t< lpc_bl_predictor> lpc_bl_predictor::patchbay [private]

The documentation for this class was generated from the following files:
• lpc_bl_predictor.h
• lpc_bl_predictor.cpp

5.104

lpc_bl_predictor_config Class Reference

Public Member Functions
• lpc_bl_predictor_config ( algo_comm_t &iac, const mhaconfig_t in_cfg, lpc_bl_←predictor ∗_lpc)
• ∼lpc_bl_predictor_config ()
• mha_wave_t ∗ process ( mha_wave_t ∗)

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•

algo_comm_t ac
MHA_AC::waveform_t f_est
MHA_AC::waveform_t b_est
MHASignal::waveform_t forward
MHASignal::waveform_t backward
int lpc_order
std::string name_km
std::string name_f
std::string name_b
mha_wave_t km
mha_wave_t s_f
mha_wave_t s_b

5.104.1

5.104.1.1

Constructor & Destructor Documentation

lpc_bl_predictor_config()

lpc_bl_predictor_config::lpc_bl_predictor_config (
algo_comm_t & iac,
const

mhaconfig_t in_cfg,

lpc_bl_predictor ∗ _lpc )

© 2005-2018 HörTech gGmbH, Oldenburg

462

CONTENTS

5.104.1.2 ∼lpc_bl_predictor_config()
lpc_bl_predictor_config::∼lpc_bl_predictor_config ( )

5.104.2

5.104.2.1

Member Function Documentation

process()

mha_wave_t ∗ lpc_bl_predictor_config::process (
mha_wave_t ∗ wave )

5.104.3

5.104.3.1

Member Data Documentation

ac

algo_comm_t lpc_bl_predictor_config::ac [private]

5.104.3.2

f_est

MHA_AC::waveform_t lpc_bl_predictor_config::f_est [private]

5.104.3.3

b_est

MHA_AC::waveform_t lpc_bl_predictor_config::b_est [private]

5.104.3.4

forward

MHASignal::waveform_t lpc_bl_predictor_config::forward [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.104

lpc_bl_predictor_config Class Reference

5.104.3.5

463

backward

MHASignal::waveform_t lpc_bl_predictor_config::backward [private]

5.104.3.6

lpc_order

int lpc_bl_predictor_config::lpc_order [private]

5.104.3.7

name_km

std::string lpc_bl_predictor_config::name_km [private]

5.104.3.8

name_f

std::string lpc_bl_predictor_config::name_f [private]

5.104.3.9

name_b

std::string lpc_bl_predictor_config::name_b [private]

5.104.3.10

km

mha_wave_t lpc_bl_predictor_config::km [private]

5.104.3.11

s_f

mha_wave_t lpc_bl_predictor_config::s_f [private]

© 2005-2018 HörTech gGmbH, Oldenburg

464

5.104.3.12

CONTENTS

s_b

mha_wave_t lpc_bl_predictor_config::s_b [private]

The documentation for this class was generated from the following files:
• lpc_bl_predictor.h
• lpc_bl_predictor.cpp

5.105

lpc_burglattice Class Reference

Inheritance diagram for lpc_burglattice:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< lpc_burglattice_config >

MHAPlugin::plugin_t
< lpc_burglattice_config >

lpc_burglattice

Public Member Functions
• lpc_burglattice ( algo_comm_t & ac, const std::string &chain_name, const std::string
&algo_name)
Constructs our plugin.

• ∼lpc_burglattice ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
Checks for the most recent configuration and defers processing to it.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)
© 2005-2018 HörTech gGmbH, Oldenburg

5.105

lpc_burglattice Class Reference

Public Attributes
•
•
•
•
•

MHAParser::int_t lpc_order
MHAParser::string_t name_kappa
MHAParser::string_t name_f
MHAParser::string_t name_b
MHAParser::float_t lambda

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< lpc_burglattice > patchbay

Additional Inherited Members

5.105.1

5.105.1.1

Constructor & Destructor Documentation

lpc_burglattice()

lpc_burglattice::lpc_burglattice (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.

5.105.1.2 ∼lpc_burglattice()
lpc_burglattice::∼lpc_burglattice ( )

5.105.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

465

466

5.105.2.1

CONTENTS

process()

mha_wave_t ∗ lpc_burglattice::process (
mha_wave_t ∗ signal )

Checks for the most recent configuration and defers processing to it.

5.105.2.2

prepare()

void lpc_burglattice::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.
Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< lpc_burglattice_config > (p. 884).

5.105.2.3

release()

void lpc_burglattice::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< lpc_burglattice_config > (p. 885).

5.105.2.4

update_cfg()

void lpc_burglattice::update_cfg ( ) [private]

5.105.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.106

lpc_burglattice_config Class Reference

5.105.3.1

467

lpc_order

MHAParser::int_t lpc_burglattice::lpc_order

5.105.3.2

name_kappa

MHAParser::string_t lpc_burglattice::name_kappa

5.105.3.3

name_f

MHAParser::string_t lpc_burglattice::name_f

5.105.3.4

name_b

MHAParser::string_t lpc_burglattice::name_b

5.105.3.5

lambda

MHAParser::float_t lpc_burglattice::lambda

5.105.3.6

patchbay

MHAEvents::patchbay_t< lpc_burglattice> lpc_burglattice::patchbay [private]

The documentation for this class was generated from the following files:
• lpc_burg-lattice.h
• lpc_burg-lattice.cpp

5.106

lpc_burglattice_config Class Reference

Public Member Functions
•

lpc_burglattice_config ( algo_comm_t &iac, const
burglattice ∗_lpc)
• ∼lpc_burglattice_config ()
• mha_wave_t ∗ process ( mha_wave_t ∗)

© 2005-2018 HörTech gGmbH, Oldenburg

mhaconfig_t in_cfg,

lpc_←-

468

CONTENTS

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•

algo_comm_t ac
MHASignal::waveform_t forward
MHASignal::waveform_t backward
MHASignal::waveform_t kappa
MHA_AC::waveform_t kappa_block
MHASignal::waveform_t dm
MHASignal::waveform_t nm
mha_real_t lambda
int lpc_order
std::string name_f
std::string name_b
mha_wave_t s_f
mha_wave_t s_b

5.106.1

5.106.1.1

Constructor & Destructor Documentation

lpc_burglattice_config()

lpc_burglattice_config::lpc_burglattice_config (
algo_comm_t & iac,
const

mhaconfig_t in_cfg,

lpc_burglattice ∗ _lpc )

5.106.1.2 ∼lpc_burglattice_config()

lpc_burglattice_config::∼lpc_burglattice_config ( )

5.106.2

5.106.2.1

Member Function Documentation

process()

mha_wave_t ∗ lpc_burglattice_config::process (
mha_wave_t ∗ wave )
© 2005-2018 HörTech gGmbH, Oldenburg

5.106

lpc_burglattice_config Class Reference

5.106.3

Member Data Documentation

5.106.3.1

469

ac

algo_comm_t lpc_burglattice_config::ac [private]

5.106.3.2

forward

MHASignal::waveform_t lpc_burglattice_config::forward [private]

5.106.3.3

backward

MHASignal::waveform_t lpc_burglattice_config::backward [private]

5.106.3.4

kappa

MHASignal::waveform_t lpc_burglattice_config::kappa [private]

5.106.3.5

kappa_block

MHA_AC::waveform_t lpc_burglattice_config::kappa_block [private]

5.106.3.6

dm

MHASignal::waveform_t lpc_burglattice_config::dm [private]

5.106.3.7

nm

MHASignal::waveform_t lpc_burglattice_config::nm [private]

© 2005-2018 HörTech gGmbH, Oldenburg

470

5.106.3.8

CONTENTS

lambda

mha_real_t lpc_burglattice_config::lambda [private]

5.106.3.9

lpc_order

int lpc_burglattice_config::lpc_order [private]

5.106.3.10

name_f

std::string lpc_burglattice_config::name_f [private]

5.106.3.11

name_b

std::string lpc_burglattice_config::name_b [private]

5.106.3.12

s_f

mha_wave_t lpc_burglattice_config::s_f [private]

5.106.3.13

s_b

mha_wave_t lpc_burglattice_config::s_b [private]

The documentation for this class was generated from the following files:
• lpc_burg-lattice.h
• lpc_burg-lattice.cpp

5.107

lpc_config Class Reference

Public Member Functions
• lpc_config ( algo_comm_t &ac, const mhaconfig_t in_cfg, std::string &algo_name,
unsigned int _order, unsigned int _lpc_buffer_size, bool _shift, unsigned int _comp_←each_iter, bool _norm)
• ∼lpc_config ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
• void insert ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.107

lpc_config Class Reference

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•

bool norm
bool shift
unsigned int comp_each_iter
unsigned int order
unsigned int lpc_buffer_size
unsigned int N
unsigned int comp_iter
mha_wave_t sample
std::vector< mha_real_t > R
std::vector< mha_real_t > A
MHASignal::ringbuffer_t inwave
MHA_AC::waveform_t lpc_out
MHA_AC::waveform_t corr_out

5.107.1

5.107.1.1

Constructor & Destructor Documentation

lpc_config()

lpc_config::lpc_config (
algo_comm_t & ac,
const

mhaconfig_t in_cfg,

std::string & algo_name,
unsigned int _order,
unsigned int _lpc_buffer_size,
bool _shift,
unsigned int _comp_each_iter,
bool _norm )

5.107.1.2 ∼lpc_config()

lpc_config::∼lpc_config ( )

5.107.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

471

472

5.107.2.1

CONTENTS

process()

mha_wave_t ∗ lpc_config::process (
mha_wave_t ∗ wave )

5.107.2.2

insert()

void lpc_config::insert ( )

5.107.3

5.107.3.1

Member Data Documentation

norm

bool lpc_config::norm [private]

5.107.3.2

shift

bool lpc_config::shift [private]

5.107.3.3

comp_each_iter

unsigned int lpc_config::comp_each_iter [private]

5.107.3.4

order

unsigned int lpc_config::order [private]

5.107.3.5

lpc_buffer_size

unsigned int lpc_config::lpc_buffer_size [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.107

lpc_config Class Reference

5.107.3.6

N

unsigned int lpc_config::N [private]

5.107.3.7

comp_iter

unsigned int lpc_config::comp_iter [private]

5.107.3.8

sample

mha_wave_t lpc_config::sample [private]

5.107.3.9

R

std::vector< mha_real_t> lpc_config::R [private]

5.107.3.10

A

std::vector< mha_real_t> lpc_config::A [private]

5.107.3.11

inwave

MHASignal::ringbuffer_t lpc_config::inwave [private]

5.107.3.12

lpc_out

MHA_AC::waveform_t lpc_config::lpc_out [private]

© 2005-2018 HörTech gGmbH, Oldenburg

473

474

5.107.3.13

CONTENTS

corr_out

MHA_AC::waveform_t lpc_config::corr_out [private]

The documentation for this class was generated from the following files:
• lpc.h
• lpc.cpp

5.108

matrixmixer::cfg_t Class Reference

Public Member Functions
• cfg_t (std::vector< std::vector< float > > imixer, unsigned int ci, unsigned int co, unsigned int fragsize, unsigned int nfft)
• mha_wave_t ∗ process ( mha_wave_t ∗)
• mha_spec_t ∗ process ( mha_spec_t ∗)

Private Attributes
• MHASignal::waveform_t m
• MHASignal::waveform_t wout
• MHASignal::spectrum_t sout

5.108.1

5.108.1.1

Constructor & Destructor Documentation

cfg_t()

cfg_t::cfg_t (
std::vector< std::vector< float > > imixer,
unsigned int ci,
unsigned int co,
unsigned int fragsize,
unsigned int nfft )

5.108.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.108

5.108.2.1

matrixmixer::cfg_t Class Reference

process() [1/2]

mha_wave_t ∗ cfg_t::process (
mha_wave_t ∗ s )

5.108.2.2

process() [2/2]

mha_spec_t ∗ cfg_t::process (
mha_spec_t ∗ s )

5.108.3

5.108.3.1

Member Data Documentation

m

MHASignal::waveform_t matrixmixer::cfg_t::m [private]

5.108.3.2

wout

MHASignal::waveform_t matrixmixer::cfg_t::wout [private]

5.108.3.3

sout

MHASignal::spectrum_t matrixmixer::cfg_t::sout [private]

The documentation for this class was generated from the following file:

• matrixmixer.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

475

476

5.109

CONTENTS

matrixmixer::matmix_t Class Reference

Inheritance diagram for matrixmixer::matmix_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< cfg_t >

MHAPlugin::plugin_t
< cfg_t >

matrixmixer::matmix_t

Public Member Functions
•
•
•
•

matmix_t (const algo_comm_t &, const std::string &, const std::string &)
void prepare ( mhaconfig_t &)
mha_wave_t ∗ process ( mha_wave_t ∗)
mha_spec_t ∗ process ( mha_spec_t ∗)

Private Member Functions
• void update_m ()

Private Attributes
•
•
•
•

MHAEvents::patchbay_t< matmix_t > patchbay
MHAParser::mfloat_t mixer
unsigned int ci
unsigned int co
© 2005-2018 HörTech gGmbH, Oldenburg

5.109

matrixmixer::matmix_t Class Reference

Additional Inherited Members
5.109.1

5.109.1.1

Constructor & Destructor Documentation

matmix_t()

matrixmixer::matmix_t::matmix_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

5.109.2

5.109.2.1

)

Member Function Documentation

prepare()

void matrixmixer::matmix_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 884).

5.109.2.2

process() [1/2]

mha_wave_t ∗ matrixmixer::matmix_t::process (
mha_wave_t ∗ s )

5.109.2.3

process() [2/2]

mha_spec_t ∗ matrixmixer::matmix_t::process (
mha_spec_t ∗ s )

5.109.2.4

update_m()

void matrixmixer::matmix_t::update_m (
void

) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

477

478

5.109.3

CONTENTS

Member Data Documentation

5.109.3.1

patchbay

MHAEvents::patchbay_t< matmix_t> matrixmixer::matmix_t::patchbay [private]

5.109.3.2

mixer

MHAParser::mfloat_t matrixmixer::matmix_t::mixer [private]

5.109.3.3

ci

unsigned int matrixmixer::matmix_t::ci [private]

5.109.3.4

co

unsigned int matrixmixer::matmix_t::co [private]

The documentation for this class was generated from the following file:
• matrixmixer.cpp

5.110

MHA_AC::ac2matrix_helper_t Class Reference

Inheritance diagram for MHA_AC::ac2matrix_helper_t:

MHA_AC::ac2matrix_helper_t

MHA_AC::ac2matrix_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.110

MHA_AC::ac2matrix_helper_t Class Reference

Public Member Functions
• ac2matrix_helper_t ( algo_comm_t, const std::string &)
• void getvar ()

Public Attributes
•
•
•
•
•

algo_comm_t ac
std::string name
std::string username
MHASignal::uint_vector_t size
bool is_complex

Protected Attributes
• comm_var_t acvar

5.110.1

5.110.1.1

Constructor & Destructor Documentation

ac2matrix_helper_t()

MHA_AC::ac2matrix_helper_t::ac2matrix_helper_t (
algo_comm_t iac,
const std::string & iname )

5.110.2

5.110.2.1

Member Function Documentation

getvar()

void MHA_AC::ac2matrix_helper_t::getvar ( )

5.110.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

479

480

5.110.3.1

CONTENTS

ac

algo_comm_t MHA_AC::ac2matrix_helper_t::ac

5.110.3.2

name

std::string MHA_AC::ac2matrix_helper_t::name

5.110.3.3

username

std::string MHA_AC::ac2matrix_helper_t::username

5.110.3.4

size

MHASignal::uint_vector_t MHA_AC::ac2matrix_helper_t::size

5.110.3.5

is_complex

bool MHA_AC::ac2matrix_helper_t::is_complex

5.110.3.6

acvar

comm_var_t MHA_AC::ac2matrix_helper_t::acvar [protected]

The documentation for this class was generated from the following files:

• mha_algo_comm.h
• mha_algo_comm.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.111

MHA_AC::ac2matrix_t Class Reference

5.111

MHA_AC::ac2matrix_t Class Reference

481

Copy AC variable to a matrix.
Inheritance diagram for MHA_AC::ac2matrix_t:

MHASignal::uint_vector_t

MHA_AC::ac2matrix_helper_t

MHASignal::matrix_t

MHA_AC::ac2matrix_t

Public Member Functions
• ac2matrix_t ( algo_comm_t ac, const std::string & name)
Constructor.

• void update ()
Update contents of the matrix from the AC space.

• const std::string & getname () const
Return name of AC variable/matrix.

• const std::string & getusername () const
Return user specified name of AC variable/matrix.

• void insert ( algo_comm_t ac)
Insert matrix into an AC space (other than source AC space)

Additional Inherited Members

5.111.1

Detailed Description

Copy AC variable to a matrix.
This class constructs a matrix of same size as an AC variable and can copy the AC variable to
itself. The update() (p. 482) function is real-time safe.
© 2005-2018 HörTech gGmbH, Oldenburg

482

5.111.2

5.111.2.1

CONTENTS

Constructor & Destructor Documentation

ac2matrix_t()

MHA_AC::ac2matrix_t::ac2matrix_t (
algo_comm_t ac,
const std::string & name )

Constructor.
Parameters
ac
name

5.111.3

5.111.3.1

AC handle
Name of AC variable to be copied

Member Function Documentation

update()

void MHA_AC::ac2matrix_t::update ( )

Update contents of the matrix from the AC space.
This function is real-time safe. The copy operation performance is of the order of the number
of elements in the matrix.
5.111.3.2

getname()

const std::string& MHA_AC::ac2matrix_t::getname ( ) const [inline]

Return name of AC variable/matrix.

5.111.3.3

getusername()

const std::string& MHA_AC::ac2matrix_t::getusername ( ) const [inline]

Return user specified name of AC variable/matrix.

5.111.3.4

insert()

void MHA_AC::ac2matrix_t::insert (
algo_comm_t ac )

Insert matrix into an AC space (other than source AC space)

© 2005-2018 HörTech gGmbH, Oldenburg

5.112

MHA_AC::acspace2matrix_t Class Reference

483

Parameters
AC space handle to insert data

ac

Note
The AC variable data buffer points to the data of the matrix. Modifications of the AC
variable directly modify the data of the matrix; after deletion of the matrix, the data buffer
is invalid.

The documentation for this class was generated from the following files:
• mha_algo_comm.h
• mha_algo_comm.cpp

5.112

MHA_AC::acspace2matrix_t Class Reference

Copy all or a subset of all numeric AC variables into an array of matrixes.

Public Member Functions
• acspace2matrix_t ( algo_comm_t ac, const std::vector< std::string > &names)
Constructor.

• acspace2matrix_t (const MHA_AC::acspace2matrix_t &src)
Constructor with initialization from an instance.

• ∼acspace2matrix_t ()
• MHA_AC::acspace2matrix_t & operator= (const MHA_AC::acspace2matrix_t &src)
Copy all contents (deep copy).

• MHA_AC::ac2matrix_t & operator[ ] (unsigned int k)
Access operator.

• const MHA_AC::ac2matrix_t & operator[ ] (unsigned int k) const
Constant access operator.

• void update ()
Update function.

• unsigned int size () const
Number of matrixes in AC space.

• unsigned int frame () const
Actual frame number.

• void insert ( algo_comm_t ac)
Insert AC space copy into an AC space (other than source AC space)
© 2005-2018 HörTech gGmbH, Oldenburg

484

CONTENTS

Private Attributes
• unsigned int len
• MHA_AC::ac2matrix_t ∗∗ data
• unsigned int frameno

5.112.1

Detailed Description

Copy all or a subset of all numeric AC variables into an array of matrixes.

5.112.2

Constructor & Destructor Documentation

5.112.2.1

acspace2matrix_t() [1/2]

MHA_AC::acspace2matrix_t::acspace2matrix_t (
algo_comm_t ac,
const std::vector< std::string > & names )

Constructor.
Scan all given AC variables and allocate corresponding matrixes.
Parameters
AC handle.
Names of AC variables, or empty for all.

ac
names

5.112.2.2

acspace2matrix_t() [2/2]

MHA_AC::acspace2matrix_t::acspace2matrix_t (
const

MHA_AC::acspace2matrix_t & src )

Constructor with initialization from an instance.
Parameters
src

Instance to be copied.

© 2005-2018 HörTech gGmbH, Oldenburg

5.112

MHA_AC::acspace2matrix_t Class Reference

485

5.112.2.3 ∼acspace2matrix_t()
MHA_AC::acspace2matrix_t::∼acspace2matrix_t ( )

5.112.3

Member Function Documentation

5.112.3.1

operator=()

MHA_AC::acspace2matrix_t & MHA_AC::acspace2matrix_t::operator= (
const

MHA_AC::acspace2matrix_t & src )

Copy all contents (deep copy).
Parameters
Array of matrixes to be copied.

src

5.112.3.2

operator[]() [1/2]

MHA_AC::ac2matrix_t& MHA_AC::acspace2matrix_t::operator[ ] (
unsigned int k ) [inline]

Access operator.
Parameters
k

index into array; should not exceed size() (p. 486)-1.

Return values
Reference

5.112.3.3
const

to matrix.

operator[]() [2/2]
MHA_AC::ac2matrix_t& MHA_AC::acspace2matrix_t::operator[ ] (
unsigned int k ) const [inline]

Constant access operator.

© 2005-2018 HörTech gGmbH, Oldenburg

486

CONTENTS

Parameters
k

index into array; should not exceed size() (p. 486)-1.

Return values
Constant

5.112.3.4

reference to matrix.

update()

void MHA_AC::acspace2matrix_t::update ( ) [inline]

Update function.
This function updates all matrixes from their corresponding AC variables. It can be called from
the MHA Framework prepare function or in the processing callback.
5.112.3.5

size()

unsigned int MHA_AC::acspace2matrix_t::size ( ) const [inline]

Number of matrixes in AC space.

5.112.3.6

frame()

unsigned int MHA_AC::acspace2matrix_t::frame ( ) const [inline]

Actual frame number.

5.112.3.7

insert()

void MHA_AC::acspace2matrix_t::insert (
algo_comm_t ac )

Insert AC space copy into an AC space (other than source AC space)
Parameters
ac

AC space handle to insert data

© 2005-2018 HörTech gGmbH, Oldenburg

5.113

MHA_AC::double_t Class Reference

5.112.4

Member Data Documentation

5.112.4.1

487

len

unsigned int MHA_AC::acspace2matrix_t::len [private]

5.112.4.2

data

MHA_AC::ac2matrix_t∗∗ MHA_AC::acspace2matrix_t::data [private]

5.112.4.3

frameno

unsigned int MHA_AC::acspace2matrix_t::frameno [private]

The documentation for this class was generated from the following files:
• mha_algo_comm.h
• mha_algo_comm.cpp

5.113

MHA_AC::double_t Class Reference

Insert a double precision floating point variable into the AC space.

Public Member Functions
• double_t ( algo_comm_t, std::string, double=0)
• ∼double_t ()

Public Attributes
• double data
Floating point value variable.

Private Attributes
• algo_comm_t ac
© 2005-2018 HörTech gGmbH, Oldenburg

488

5.113.1

CONTENTS

Detailed Description

Insert a double precision floating point variable into the AC space.
The variable is automatically removed on destruction.

5.113.2

5.113.2.1

Constructor & Destructor Documentation

double_t()

MHA_AC::double_t::double_t (
algo_comm_t iac,
std::string n,
double v = 0 )

5.113.2.2 ∼double_t()
MHA_AC::double_t::∼double_t ( )

5.113.3

5.113.3.1

Member Data Documentation

data

double MHA_AC::double_t::data

Floating point value variable.

5.113.3.2

ac

algo_comm_t MHA_AC::double_t::ac [private]

The documentation for this class was generated from the following files:
• mha_algo_comm.h
• mha_algo_comm.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.114

MHA_AC::float_t Class Reference

5.114

MHA_AC::float_t Class Reference

Insert a float point variable into the AC space.

Public Member Functions
• float_t ( algo_comm_t, std::string, float=0)
Constructor.

• ∼float_t ()

Public Attributes
• float data
Floating point value variable.

Private Attributes
• algo_comm_t ac

5.114.1

Detailed Description

Insert a float point variable into the AC space.
The variable is automatically removed on destruction.

5.114.2

5.114.2.1

Constructor & Destructor Documentation

float_t()

MHA_AC::float_t::float_t (
algo_comm_t iac,
std::string n,
float v = 0 )

Constructor.

© 2005-2018 HörTech gGmbH, Oldenburg

489

490

CONTENTS

5.114.2.2 ∼float_t()
MHA_AC::float_t::∼float_t ( )

5.114.3

Member Data Documentation

5.114.3.1

data

float MHA_AC::float_t::data

Floating point value variable.

5.114.3.2

ac

algo_comm_t MHA_AC::float_t::ac [private]

The documentation for this class was generated from the following files:
• mha_algo_comm.h
• mha_algo_comm.cpp

5.115

MHA_AC::int_t Class Reference

Insert a integer variable into the AC space.

Public Member Functions
• int_t ( algo_comm_t, std::string, int=0)
• ∼int_t ()

Public Attributes
• int data
Integer value variable.

Private Attributes
• algo_comm_t ac
© 2005-2018 HörTech gGmbH, Oldenburg

5.115

MHA_AC::int_t Class Reference

5.115.1

Detailed Description

491

Insert a integer variable into the AC space.
The variable is automatically removed on destruction.

5.115.2

5.115.2.1

Constructor & Destructor Documentation

int_t()

MHA_AC::int_t::int_t (
algo_comm_t iac,
std::string n,
int v = 0 )

5.115.2.2 ∼int_t()
MHA_AC::int_t::∼int_t ( )

5.115.3

5.115.3.1

Member Data Documentation

data

int MHA_AC::int_t::data

Integer value variable.

5.115.3.2

ac

algo_comm_t MHA_AC::int_t::ac [private]

The documentation for this class was generated from the following files:
• mha_algo_comm.h
• mha_algo_comm.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

492

5.116

CONTENTS

MHA_AC::spectrum_t Class Reference

Insert a MHASignal::spectrum_t (p. 979) class into the AC space.
Inheritance diagram for MHA_AC::spectrum_t:

mha_spec_t

MHASignal::spectrum_t

MHA_AC::spectrum_t

MHAMultiSrc::spectrum_t

wave2spec_t

Public Member Functions
• spectrum_t ( algo_comm_t ac, std::string name, unsigned int bins, unsigned int channels, bool insert_now)
Create the AC variable.

• ∼spectrum_t ()
• void insert ()
Insert AC variable into AC space.

Protected Attributes
• algo_comm_t ac
• std::string name

Additional Inherited Members
5.116.1

Detailed Description

Insert a MHASignal::spectrum_t (p. 979) class into the AC space.
The variable is automatically removed on destruction.
© 2005-2018 HörTech gGmbH, Oldenburg

5.116

MHA_AC::spectrum_t Class Reference

5.116.2

Constructor & Destructor Documentation

5.116.2.1

493

spectrum_t()

MHA_AC::spectrum_t::spectrum_t (
algo_comm_t ac,
std::string name,
unsigned int bins,
unsigned int channels,
bool insert_now )

Create the AC variable.
Parameters
ac
name

AC handle
Name of variable in AC space

bins

Number of FFT bins in the waveform_t (p. 496) class

channels

Number of audio channels in the waveform_t (p. 496) class

insert_now

Insert implicitely in the constructor (true) or explicitely in the insert() (p. 493)
function (false)

5.116.2.2 ∼spectrum_t()

MHA_AC::spectrum_t::∼spectrum_t (
void

) [virtual]

Reimplemented from MHASignal::spectrum_t (p. 981).

5.116.3

5.116.3.1

Member Function Documentation

insert()

void MHA_AC::spectrum_t::insert ( )

Insert AC variable into AC space.
© 2005-2018 HörTech gGmbH, Oldenburg

494

5.116.4

CONTENTS

Member Data Documentation

5.116.4.1

ac

algo_comm_t MHA_AC::spectrum_t::ac [protected]

5.116.4.2

name

std::string MHA_AC::spectrum_t::name [protected]

The documentation for this class was generated from the following files:
• mha_algo_comm.h
• mha_algo_comm.cpp

5.117

MHA_AC::stat_t Class Reference

Inheritance diagram for MHA_AC::stat_t:

MHASignal::stat_t

MHA_AC::stat_t

Public Member Functions
• stat_t ( algo_comm_t ac, const std::string &name, const unsigned int &frames, const
unsigned int & channels, bool insert_now)
• void update ()
• void insert ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.117

MHA_AC::stat_t Class Reference

Private Attributes
• MHA_AC::waveform_t mean
• MHA_AC::waveform_t std

5.117.1

5.117.1.1

Constructor & Destructor Documentation

stat_t()

MHA_AC::stat_t::stat_t (
algo_comm_t ac,
const std::string & name,
const unsigned int & frames,
const unsigned int & channels,
bool insert_now )

5.117.2

5.117.2.1

Member Function Documentation

update()

void MHA_AC::stat_t::update ( )

5.117.2.2

insert()

void MHA_AC::stat_t::insert ( )

5.117.3

5.117.3.1

Member Data Documentation

mean

MHA_AC::waveform_t MHA_AC::stat_t::mean [private]

© 2005-2018 HörTech gGmbH, Oldenburg

495

496

5.117.3.2

CONTENTS

std

MHA_AC::waveform_t MHA_AC::stat_t::std [private]

The documentation for this class was generated from the following files:
• mha_algo_comm.h
• mha_algo_comm.cpp

5.118

MHA_AC::waveform_t Class Reference

Insert a MHASignal::waveform_t (p. 993) class into the AC space.
Inheritance diagram for MHA_AC::waveform_t:

mha_wave_t

MHASignal::waveform_t

MHA_AC::waveform_t

MHAMultiSrc::waveform_t

mon_t

Public Member Functions
• waveform_t ( algo_comm_t ac, std::string name, unsigned int frames, unsigned int
channels, bool insert_now)
Create the AC variable.

• ∼waveform_t ()
• void insert ()
Insert AC variable into AC space.
© 2005-2018 HörTech gGmbH, Oldenburg

5.118

MHA_AC::waveform_t Class Reference

497

Protected Attributes
• algo_comm_t ac
• std::string name

Additional Inherited Members
5.118.1

Detailed Description

Insert a MHASignal::waveform_t (p. 993) class into the AC space.
The variable is automatically removed on destruction.

5.118.2

5.118.2.1

Constructor & Destructor Documentation

waveform_t()

MHA_AC::waveform_t::waveform_t (
algo_comm_t ac,
std::string name,
unsigned int frames,
unsigned int channels,
bool insert_now )

Create the AC variable.
Parameters
ac
name

AC handle
Name of variable in AC space

frames

Number of frames in the waveform_t (p. 496) class

channels

Number of audio channels in the waveform_t (p. 496) class

insert_now

Insert implicitely in the constructor (true) or explicitely in the insert() (p. 498)
function (false)

5.118.2.2 ∼waveform_t()
MHA_AC::waveform_t::∼waveform_t (
void

) [virtual]

Reimplemented from MHASignal::waveform_t (p. 996).
© 2005-2018 HörTech gGmbH, Oldenburg

498

5.118.3

CONTENTS

Member Function Documentation

5.118.3.1

insert()

void MHA_AC::waveform_t::insert ( )

Insert AC variable into AC space.
5.118.4

Member Data Documentation

5.118.4.1

ac

algo_comm_t MHA_AC::waveform_t::ac [protected]

5.118.4.2

name

std::string MHA_AC::waveform_t::name [protected]

The documentation for this class was generated from the following files:
• mha_algo_comm.h
• mha_algo_comm.cpp

5.119

mha_audio_descriptor_t Struct Reference

Description of an audio fragment (planned as a replacement of mhaconfig_t (p. 595)).
Public Attributes
• unsigned int n_samples
Number of samples.

• unsigned int n_channels
Number of audio channels.

• unsigned int n_freqs
Number of frequency bands.

• unsigned int is_complex
Flag about sample type.

• mha_real_t dt
Time distance between samples (only equidistant samples allowed)

• mha_real_t ∗ cf
Center frequencies of frequency bands.

• mha_real_t ∗ chdir
Hint on source direction of channel, values below zero is left, values above zero is right, zero
means unknown.
© 2005-2018 HörTech gGmbH, Oldenburg

5.119

mha_audio_descriptor_t Struct Reference

5.119.1

Detailed Description

499

Description of an audio fragment (planned as a replacement of mhaconfig_t (p. 595)).

5.119.2

5.119.2.1

Member Data Documentation

n_samples

unsigned int mha_audio_descriptor_t::n_samples

Number of samples.

5.119.2.2

n_channels

unsigned int mha_audio_descriptor_t::n_channels

Number of audio channels.

5.119.2.3

n_freqs

unsigned int mha_audio_descriptor_t::n_freqs

Number of frequency bands.

5.119.2.4

is_complex

unsigned int mha_audio_descriptor_t::is_complex

Flag about sample type.

5.119.2.5

dt

mha_real_t mha_audio_descriptor_t::dt

Time distance between samples (only equidistant samples allowed)

© 2005-2018 HörTech gGmbH, Oldenburg

500

5.119.2.6

CONTENTS

cf

mha_real_t∗ mha_audio_descriptor_t::cf

Center frequencies of frequency bands.

5.119.2.7

chdir

mha_real_t∗ mha_audio_descriptor_t::chdir

Hint on source direction of channel, values below zero is left, values above zero is right, zero
means unknown.
The documentation for this struct was generated from the following file:
• mha.h

5.120

mha_audio_t Struct Reference

An audio fragment in the openMHA (planned as a replacement of mha_wave_t (p. 583) and
mha_spec_t (p. 547)).

Public Attributes
• mha_audio_descriptor_t descriptor
Dimension and description of the data.

• mha_real_t ∗ rdata
Data pointer if flag mha_audio_descriptor_t::is_complex ( p. 499) is unset.

• mha_complex_t ∗ cdata
Data pointer if flag mha_audio_descriptor_t::is_complex ( p. 499) is set.

5.120.1

Detailed Description

An audio fragment in the openMHA (planned as a replacement of mha_wave_t (p. 583) and
mha_spec_t (p. 547)).
The data alignment is (t0 , c0 , f0 ), (t0 , c0 , f1 ), . . . , (t0 , c0 , ff reqs ), (t0 , c1 , f0 ), . . .. This allows a direct cast of the current mha_wave_t (p. 583) and mha_spec_t (p. 547) data pointers into corresponding mha_audio_t (p. 500) objects.
© 2005-2018 HörTech gGmbH, Oldenburg

5.121

mha_channel_info_t Struct Reference

5.120.2

Member Data Documentation

5.120.2.1

501

descriptor

mha_audio_descriptor_t mha_audio_t::descriptor

Dimension and description of the data.

5.120.2.2

rdata

mha_real_t∗ mha_audio_t::rdata

Data pointer if flag mha_audio_descriptor_t::is_complex (p. 499) is unset.

5.120.2.3

cdata

mha_complex_t∗ mha_audio_t::cdata

Data pointer if flag mha_audio_descriptor_t::is_complex (p. 499) is set.
The documentation for this struct was generated from the following file:
• mha.h

5.121

mha_channel_info_t Struct Reference

Channel information structure.

Public Attributes
• int id
channel id

• char idstr [32]
channel id

• unsigned int side
side (left/right)

• mha_direction_t dir
source direction

• mha_real_t peaklevel
Peak level corresponds to this SPL (dB) level.
© 2005-2018 HörTech gGmbH, Oldenburg

502

5.121.1

CONTENTS

Detailed Description

Channel information structure.

5.121.2

5.121.2.1

Member Data Documentation

id

int mha_channel_info_t::id

channel id

5.121.2.2

idstr

char mha_channel_info_t::idstr[32]

channel id

5.121.2.3

side

unsigned int mha_channel_info_t::side

side (left/right)

5.121.2.4

dir

mha_direction_t mha_channel_info_t::dir

source direction

5.121.2.5

peaklevel

mha_real_t mha_channel_info_t::peaklevel

Peak level corresponds to this SPL (dB) level.
The documentation for this struct was generated from the following file:
• mha.h
© 2005-2018 HörTech gGmbH, Oldenburg

5.122

mha_complex_t Struct Reference

5.122

mha_complex_t Struct Reference

503

Type for complex floating point values.

Public Attributes
• mha_real_t re
Real part.

• mha_real_t im
Imaginary part.

5.122.1

Detailed Description

Type for complex floating point values.

5.122.2

Member Data Documentation

5.122.2.1

re

mha_real_t mha_complex_t::re

Real part.

5.122.2.2

im

mha_real_t mha_complex_t::im

Imaginary part.
The documentation for this struct was generated from the following file:
• mha.h

5.123

mha_dblbuf_t< FIFO > Class Template Reference

The doublebuffer adapts blocksizes between an outer process, which provides input data and
takes output data, and an inner process, which processes the input signal and generates output
data using a different block size than the outer process.
© 2005-2018 HörTech gGmbH, Oldenburg

504

CONTENTS

Public Types
• typedef FIFO::value_type value_type
The datatype exchanged by the FIFO and this doublebuffer.

Public Member Functions
•
•
•
•
•
•
•
•
•
•
•
•
•
•

virtual unsigned get_inner_size () const
virtual unsigned get_outer_size () const
virtual unsigned get_delay () const
virtual unsigned get_fifo_size () const
virtual unsigned get_input_channels () const
virtual unsigned get_output_channels () const
virtual unsigned get_input_fifo_fill_count () const
virtual unsigned get_output_fifo_fill_count () const
virtual unsigned get_input_fifo_space () const
virtual unsigned get_output_fifo_space () const
virtual MHA_Error ∗ get_inner_error () const
virtual void provoke_inner_error (const MHA_Error &)
virtual void provoke_outer_error (const MHA_Error &)
mha_dblbuf_t (unsigned outer_size, unsigned inner_size, unsigned delay, unsigned
input_channels, unsigned output_channels, const value_type &delay_data)
Constructor creates FIFOs with specified delay.

• virtual ∼mha_dblbuf_t ()
• virtual void process (const value_type ∗input_signal, value_type ∗output_signal, unsigned count)
The outer process has to call this method to propagate the input signal to the inner process,
and receives back the output signal.

• virtual void input ( value_type ∗input_signal)
The inner process has to call this method to receive its input signal.

• virtual void output (const value_type ∗output_signal)
The outer process has to call this method to deliver its output signal.

Private Attributes
• unsigned outer_size
The block size used by the outer process.

• unsigned inner_size
The block size used by the inner process.

• unsigned delay
The delay introduced by bidirectional buffer size adaptation.

• unsigned fifo_size
The size of each of the FIFOs.

• unsigned input_channels
The number of input channels.
© 2005-2018 HörTech gGmbH, Oldenburg

5.123

mha_dblbuf_t< FIFO > Class Template Reference

505

• unsigned output_channels
The number of output channels.

• FIFO input_fifo
The FIFO for transporting the input signal from the outer process to the inner process.

• FIFO output_fifo
The FIFO for transporting the output signal from the inner process to the outer process.

• MHA_Error ∗ inner_error
Owned copy of exception to be thrown in inner thread.

• MHA_Error ∗ outer_error
Owned copy of exception to be thrown in outer thread.

5.123.1

Detailed Description

template
class mha_dblbuf_t< FIFO >

The doublebuffer adapts blocksizes between an outer process, which provides input data and
takes output data, and an inner process, which processes the input signal and generates output
data using a different block size than the outer process.
This class introduces the channels concept. Input and output may have different channel
counts.

5.123.2

5.123.2.1

Member Typedef Documentation

value_type

template
typedef FIFO::value_type

mha_dblbuf_t< FIFO >::

value_type

The datatype exchanged by the FIFO and this doublebuffer.

5.123.3

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

506

5.123.3.1

CONTENTS

mha_dblbuf_t()

template
mha_dblbuf_t< FIFO >::

mha_dblbuf_t (

unsigned outer_size,
unsigned inner_size,
unsigned delay,
unsigned input_channels,
unsigned output_channels,
const

value_type & delay_data )

Constructor creates FIFOs with specified delay.
Warning
The doublebuffer may block or raise an exception if the delay is too small. To avoid this,
the delay should be
delay >= (inner_size − gcd(inner_size, outer_size))
.
Parameters
outer_size
inner_size
delay

The block size used by the outer process.
The block size used by the inner process.
The total delay

input_channels

Number of input channels

output_channels

Number of output channels

delay_data

The delay consists of copies of this value.

5.123.3.2 ∼mha_dblbuf_t()
template
mha_dblbuf_t< FIFO >::∼ mha_dblbuf_t ( ) [virtual]

5.123.4

5.123.4.1

Member Function Documentation

get_inner_size()

template
virtual unsigned

mha_dblbuf_t< FIFO >::get_inner_size ( ) const [inline], [virtual]

© 2005-2018 HörTech gGmbH, Oldenburg

5.123

5.123.4.2

mha_dblbuf_t< FIFO > Class Template Reference

507

get_outer_size()

template
virtual unsigned

5.123.4.3

mha_dblbuf_t< FIFO >::get_outer_size ( ) const [inline], [virtual]

get_delay()

template
virtual unsigned

5.123.4.4

mha_dblbuf_t< FIFO >::get_delay ( ) const [inline], [virtual]

get_fifo_size()

template
virtual unsigned

5.123.4.5

mha_dblbuf_t< FIFO >::get_fifo_size ( ) const [inline], [virtual]

get_input_channels()

template
virtual unsigned

mha_dblbuf_t< FIFO >::get_input_channels ( ) const [inline],

[virtual]

5.123.4.6

get_output_channels()

template
virtual unsigned

mha_dblbuf_t< FIFO >::get_output_channels ( ) const [inline],

[virtual]

5.123.4.7

get_input_fifo_fill_count()

template
virtual unsigned

mha_dblbuf_t< FIFO >::get_input_fifo_fill_count ( ) const [inline],

[virtual]

© 2005-2018 HörTech gGmbH, Oldenburg

508

5.123.4.8

CONTENTS

get_output_fifo_fill_count()

template
virtual unsigned

mha_dblbuf_t< FIFO >::get_output_fifo_fill_count ( ) const [inline],

[virtual]

5.123.4.9

get_input_fifo_space()

template
virtual unsigned

mha_dblbuf_t< FIFO >::get_input_fifo_space ( ) const [inline],

[virtual]

5.123.4.10

get_output_fifo_space()

template
virtual unsigned

mha_dblbuf_t< FIFO >::get_output_fifo_space ( ) const [inline],

[virtual]

5.123.4.11

get_inner_error()

template
virtual

MHA_Error∗

mha_dblbuf_t< FIFO >::get_inner_error ( ) const [inline],

[virtual]

5.123.4.12

provoke_inner_error()

template
void

mha_dblbuf_t< FIFO >::provoke_inner_error (
const

5.123.4.13

MHA_Error & error ) [virtual]

provoke_outer_error()

template
void

mha_dblbuf_t< FIFO >::provoke_outer_error (
const

5.123.4.14

MHA_Error & error ) [virtual]

process()

template
void

mha_dblbuf_t< FIFO >::process (
const

value_type ∗ input_signal,

value_type ∗ output_signal,
unsigned count ) [virtual]

The outer process has to call this method to propagate the input signal to the inner process,
and receives back the output signal.

© 2005-2018 HörTech gGmbH, Oldenburg

5.123

mha_dblbuf_t< FIFO > Class Template Reference

509

Parameters
input_signal
output_signal

Pointer to the input signal array.
Pointer to the output signal array.

count

The number of data instances provided and expected, lower or equal to
inner_size given to constructor.

Exceptions
MHA_Error ( p. 522)

5.123.4.15

When count is > outer_size as given to constructor or the underlying
fifo implementation detects an error.

input()

template
void

mha_dblbuf_t< FIFO >::input (
value_type ∗ input_signal ) [virtual]

The inner process has to call this method to receive its input signal.
Parameters
input_signal

Array where the doublebuffer can store the signal.

Exceptions
MHA_Error ( p. 522)

5.123.4.16

When the underlying fifo implementation detects an error.

output()

template
void

mha_dblbuf_t< FIFO >::output (
const

value_type ∗ output_signal ) [virtual]

The outer process has to call this method to deliver its output signal.
Parameters
output_signal

Array from which doublebuffer reads outputsignal.

© 2005-2018 HörTech gGmbH, Oldenburg

510

CONTENTS

Exceptions
MHA_Error ( p. 522)

5.123.5

When the underlying fifo implementation detects an error.

Member Data Documentation

5.123.5.1

outer_size

template
unsigned

mha_dblbuf_t< FIFO >::outer_size [private]

The block size used by the outer process.

5.123.5.2

inner_size

template
unsigned

mha_dblbuf_t< FIFO >::inner_size [private]

The block size used by the inner process.

5.123.5.3

delay

template
unsigned

mha_dblbuf_t< FIFO >::delay [private]

The delay introduced by bidirectional buffer size adaptation.

5.123.5.4

fifo_size

template
unsigned

mha_dblbuf_t< FIFO >::fifo_size [private]

The size of each of the FIFOs.

© 2005-2018 HörTech gGmbH, Oldenburg

5.123

mha_dblbuf_t< FIFO > Class Template Reference

5.123.5.5

511

input_channels

template
mha_dblbuf_t< FIFO >::input_channels [private]

unsigned

The number of input channels.

5.123.5.6

output_channels

template
mha_dblbuf_t< FIFO >::output_channels [private]

unsigned

The number of output channels.

5.123.5.7

input_fifo

template
FIFO

mha_dblbuf_t< FIFO >::input_fifo [private]

The FIFO for transporting the input signal from the outer process to the inner process.

5.123.5.8

output_fifo

template
FIFO

mha_dblbuf_t< FIFO >::output_fifo [private]

The FIFO for transporting the output signal from the inner process to the outer process.

5.123.5.9

inner_error

template
MHA_Error∗

mha_dblbuf_t< FIFO >::inner_error [private]

Owned copy of exception to be thrown in inner thread.

© 2005-2018 HörTech gGmbH, Oldenburg

512

5.123.5.10

CONTENTS

outer_error

template
MHA_Error∗

mha_dblbuf_t< FIFO >::outer_error [private]

Owned copy of exception to be thrown in outer thread.
The documentation for this class was generated from the following files:
• mha_fifo.h
• mha_fifo.cpp

5.124

mha_direction_t Struct Reference

Channel source direction structure.

Public Attributes
• mha_real_t azimuth
azimuth in radiants

• mha_real_t elevation
elevation in radiants

• mha_real_t distance
distance in meters

5.124.1

Detailed Description

Channel source direction structure.

5.124.2

5.124.2.1

Member Data Documentation

azimuth

mha_real_t mha_direction_t::azimuth

azimuth in radiants

© 2005-2018 HörTech gGmbH, Oldenburg

5.125

mha_drifter_fifo_t< T > Class Template Reference

5.124.2.2

513

elevation

mha_real_t mha_direction_t::elevation

elevation in radiants

5.124.2.3

distance

mha_real_t mha_direction_t::distance

distance in meters
The documentation for this struct was generated from the following file:

• mha.h

5.125

mha_drifter_fifo_t< T > Class Template Reference

A FIFO class for blocksize adaptation without Synchronization.
Inheritance diagram for mha_drifter_fifo_t< T >:

mha_fifo_t< T >

mha_drifter_fifo_t< T >

© 2005-2018 HörTech gGmbH, Oldenburg

514

CONTENTS

Public Member Functions
• virtual void write (const T ∗data, unsigned count)
write data to fifo

• virtual void read (T ∗ buf, unsigned count)
Read data from fifo.

• virtual unsigned get_fill_count () const
Return fill_count, adding mha_drifter_fifo_t::startup_zeros ( p. 521) to the number of
samples actually in the fifo's buffer.

• virtual unsigned get_available_space () const
Return available space, subtracting number of mha_drifter_fifo_t::startup_zeros
( p. 521) from the available_space actually present in the fifo's buffer.

• virtual unsigned get_des_fill_count () const
The desired fill count of this fifo.

• virtual unsigned get_min_fill_count () const
The minimum fill count of this fifo.

• virtual void stop ()
Called by mha_drifter_fifo_t::read ( p. 516) or mha_drifter_fifo_t::write ( p. 516)
when their xrun in succession counter exceeds its limit.

• virtual void starting ()
Called by mha_drifter_fifo_t::read ( p. 516) or mha_drifter_fifo_t::write ( p. 516)
when the respective flag (mha_drifter_fifo_t::reader_started ( p. 519) or mha_drifter←_fifo_t::writer_started ( p. 519)) is about to be toggled from false to true.

• mha_drifter_fifo_t (unsigned min_fill_count, unsigned desired_fill_count, unsigned
max_fill_count)
Create drifter FIFO.

• mha_drifter_fifo_t (unsigned min_fill_count, unsigned desired_fill_count, unsigned
max_fill_count, const T &t)
Create drifter FIFO where all (initially unused) copies of T are initialized as copies of t.

Private Attributes
• const unsigned minimum_fill_count
The minimum fill count of this fifo.

• const unsigned desired_fill_count
The desired fill count of the fifo.

• bool writer_started
Flag set to true when write is called the first time.

• bool reader_started
Flag set to true when read is called for the first time.

• unsigned writer_xruns_total
The number of xruns seen by the writer since object instantiation.

• unsigned reader_xruns_total
The number of xruns seen by the reader since object instantiation.

• unsigned writer_xruns_since_start
The number of xruns seen by the writer since the last start of processing.
© 2005-2018 HörTech gGmbH, Oldenburg

5.125

mha_drifter_fifo_t< T > Class Template Reference

515

• unsigned reader_xruns_since_start
The number of xruns seen by the reader since the last start of processing.

• unsigned writer_xruns_in_succession
The number of xruns seen by the writer in succession.

• unsigned reader_xruns_in_succession
The number of xruns seen by the reader in succession.

• unsigned maximum_writer_xruns_in_succession_before_stop
A limit to the number of xruns seen in succession during write before the data transmission
through the FIFO is stopped.

• unsigned maximum_reader_xruns_in_succession_before_stop
A limit to the number of xruns seen in succession during read before the data transmission
through the FIFO is stopped.

• mha_fifo_t< T >:: value_type null_data
The value used in place of missing data.

• unsigned startup_zeros
When processing starts, that is when both mha_drifter_fifo_t::reader_started ( p. 519)
and mha_drifter_fifo_t::writer_started ( p. 519) are true, then first mha_drifter_fifo←_t::desired_fill_count ( p. 519) instances of mha_drifter_fifo_t::null_data ( p. 521)
are delivered to the reader.

Additional Inherited Members
5.125.1

Detailed Description

template
class mha_drifter_fifo_t< T >
A FIFO class for blocksize adaptation without Synchronization.
Features: delay concept (desired, minimum and maximum delay), drifting support by throwing
away data or inserting zeroes.

5.125.2

5.125.2.1

Constructor & Destructor Documentation

mha_drifter_fifo_t() [1/2]

template
mha_drifter_fifo_t< T >::

mha_drifter_fifo_t (

unsigned min_fill_count,
unsigned desired_fill_count,
unsigned max_fill_count )

Create drifter FIFO.

© 2005-2018 HörTech gGmbH, Oldenburg

516

5.125.2.2

CONTENTS

mha_drifter_fifo_t() [2/2]

template
mha_drifter_fifo_t< T >::

mha_drifter_fifo_t (

unsigned min_fill_count,
unsigned desired_fill_count,
unsigned max_fill_count,
const T & t )

Create drifter FIFO where all (initially unused) copies of T are initialized as copies of t.

5.125.3

Member Function Documentation

5.125.3.1

write()

template
void

mha_drifter_fifo_t< T >::write (
const T ∗ data,
unsigned count ) [virtual]

write data to fifo
Sets writer_started (p. 519) to true.
When processing has started, i.e. both reader_started (p. 519) and writer_started (p. 519)
are true, write specified ammount of data to the fifo. If there is not enough space available, then
the exceeding data is lost and the writer xrun counters are increased.
Processing is stopped when writer_xruns_in_succession (p. 520) exceeds maximum_←writer_xruns_in_succession_before_stop (p. 520).
Parameters
data
count

Pointer to source data.
Number of instances to copy

Reimplemented from mha_fifo_t< T > (p. 533).

5.125.3.2

read()

template
void

mha_drifter_fifo_t< T >::read (
© 2005-2018 HörTech gGmbH, Oldenburg

5.125

mha_drifter_fifo_t< T > Class Template Reference

517

T ∗ buf,
unsigned count ) [virtual]

Read data from fifo.
Sets reader_started (p. 519) to true.
When processing has started, i.e. both reader_started (p. 519) and writer_started (p. 519)
are true, then read specified ammount of data from the fifo. As long as startup_zeros (p. 521)
is > 0, null_data (p. 521) is delivered to the reader and startup_zeros (p. 521) is diminished.
Only when startup_zeros (p. 521) has reached 0, data is actually read from the fifo's buffer.
If the read would cause the fifo's fill count to drop below minimum_fill_count (p. 518), then
only so much data are read that minimum_fill_count (p. 518) entries remain in the fifo, the
missing data is replaced with null_data (p. 521), and the reader xrun counters are increased.
Processing is stopped when reader_xruns_in_succession (p. 520) exceeds maximum_←reader_xruns_in_succession_before_stop (p. 521).
Parameters
buf

Pointer to the target buffer

count

Number of instances to copy

Reimplemented from mha_fifo_t< T > (p. 534).

5.125.3.3

get_fill_count()

template
unsigned

mha_drifter_fifo_t< T >::get_fill_count ( ) const [virtual]

Return fill_count, adding mha_drifter_fifo_t::startup_zeros (p. 521) to the number of
samples actually in the fifo's buffer.
Reimplemented from mha_fifo_t< T > (p. 534).

5.125.3.4

get_available_space()

template
unsigned

mha_drifter_fifo_t< T >::get_available_space ( ) const [virtual]

Return available space, subtracting number of mha_drifter_fifo_t::startup_zeros
(p. 521) from the available_space actually present in the fifo's buffer.
TODO: uncertain if this is a good idea.
Reimplemented from mha_fifo_t< T > (p. 534).

© 2005-2018 HörTech gGmbH, Oldenburg

518

5.125.3.5

CONTENTS

get_des_fill_count()

template
virtual unsigned

mha_drifter_fifo_t< T >::get_des_fill_count ( ) const [inline],

[virtual]

The desired fill count of this fifo.

5.125.3.6

get_min_fill_count()

template
virtual unsigned

mha_drifter_fifo_t< T >::get_min_fill_count ( ) const [inline],

[virtual]

The minimum fill count of this fifo.

5.125.3.7

stop()

template
void

mha_drifter_fifo_t< T >::stop ( ) [virtual]

Called by mha_drifter_fifo_t::read (p. 516) or mha_drifter_fifo_t::write (p. 516)
when their xrun in succession counter exceeds its limit.
Called by read (p. 516) or write (p. 516) when their xrun in succession counter exceeds its limit.
May also be called explicitly.
5.125.3.8

starting()

template
void

mha_drifter_fifo_t< T >::starting ( ) [virtual]

Called by mha_drifter_fifo_t::read (p. 516) or mha_drifter_fifo_t::write (p. 516)
when the respective flag (mha_drifter_fifo_t::reader_started (p. 519) or mha_drifter_←fifo_t::writer_started (p. 519)) is about to be toggled from false to true.
The fifo's buffer is emptied, this method resets startup_zeros (p. 521) to desired_fill_count
(p. 519), and it also resets reader_xruns_since_start (p. 520) and writer_xruns_since_start
(p. 520) to 0.

5.125.4

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.125

mha_drifter_fifo_t< T > Class Template Reference

5.125.4.1

519

minimum_fill_count

template
const unsigned

mha_drifter_fifo_t< T >::minimum_fill_count [private]

The minimum fill count of this fifo.

5.125.4.2

desired_fill_count

template
const unsigned

mha_drifter_fifo_t< T >::desired_fill_count [private]

The desired fill count of the fifo.
The fifo is initialized with this ammount of data when data transmission starts.
5.125.4.3

writer_started

template
bool

mha_drifter_fifo_t< T >::writer_started [private]

Flag set to true when write is called the first time.

5.125.4.4

reader_started

template
bool

mha_drifter_fifo_t< T >::reader_started [private]

Flag set to true when read is called for the first time.

5.125.4.5

writer_xruns_total

template
unsigned

mha_drifter_fifo_t< T >::writer_xruns_total [private]

The number of xruns seen by the writer since object instantiation.

© 2005-2018 HörTech gGmbH, Oldenburg

520

5.125.4.6

CONTENTS

reader_xruns_total

template
unsigned

mha_drifter_fifo_t< T >::reader_xruns_total [private]

The number of xruns seen by the reader since object instantiation.

5.125.4.7

writer_xruns_since_start

template
unsigned

mha_drifter_fifo_t< T >::writer_xruns_since_start [private]

The number of xruns seen by the writer since the last start of processing.

5.125.4.8

reader_xruns_since_start

template
unsigned

mha_drifter_fifo_t< T >::reader_xruns_since_start [private]

The number of xruns seen by the reader since the last start of processing.

5.125.4.9

writer_xruns_in_succession

template
unsigned

mha_drifter_fifo_t< T >::writer_xruns_in_succession [private]

The number of xruns seen by the writer in succession.
Reset to 0 every time a write succeeds without xrun.
5.125.4.10

reader_xruns_in_succession

template
unsigned

mha_drifter_fifo_t< T >::reader_xruns_in_succession [private]

The number of xruns seen by the reader in succession.
Reset to 0 every time a read succeeds without xrun.
© 2005-2018 HörTech gGmbH, Oldenburg

5.125

mha_drifter_fifo_t< T > Class Template Reference

5.125.4.11

521

maximum_writer_xruns_in_succession_before_stop

template
unsigned

mha_drifter_fifo_t< T >::maximum_writer_xruns_in_succession_before_stop

[private]

A limit to the number of xruns seen in succession during write before the data transmission
through the FIFO is stopped.

5.125.4.12

maximum_reader_xruns_in_succession_before_stop

template
unsigned

mha_drifter_fifo_t< T >::maximum_reader_xruns_in_succession_before_stop

[private]

A limit to the number of xruns seen in succession during read before the data transmission
through the FIFO is stopped.

5.125.4.13

null_data

template
mha_fifo_t::

value_type

mha_drifter_fifo_t< T >::null_data [private]

The value used in place of missing data.

5.125.4.14

startup_zeros

template
unsigned

mha_drifter_fifo_t< T >::startup_zeros [private]

When processing starts, that is when both mha_drifter_fifo_t::reader_started (p. 519)
and mha_drifter_fifo_t::writer_started (p. 519) are true, then first mha_drifter_fifo_t<←T>::desired_fill_count (p. 519) instances of mha_drifter_fifo_t::null_data (p. 521) are
delivered to the reader.
These null_data (p. 521) instances are not transmitted through the fifo because filling the fifo
with enough null_data (p. 521) might not be realtime safe and this filling has to be initiated by
starting (p. 518) or stop (p. 518) (this implementation: starting (p. 518)) which are be called
with realtime constraints.
The documentation for this class was generated from the following file:
• mha_fifo.h
© 2005-2018 HörTech gGmbH, Oldenburg

522

5.126

CONTENTS

MHA_Error Class Reference

Error reporting exception class.
Inherits exception.

Public Member Functions
• MHA_Error (const char ∗file, int line, const char ∗fmt,...)
Create an instance of a MHA_Error ( p. 522).

•
•
•
•

MHA_Error (const MHA_Error &)
MHA_Error & operator= (const MHA_Error &)
∼MHA_Error () throw ()
const char ∗ get_msg () const
Return the error message without source position.

• const char ∗ get_longmsg () const
Return the error message with source position.

• const char ∗ what () const throw ()
overwrite std::execption::what()

Private Attributes
• char ∗ msg
• char ∗ longmsg

5.126.1

Detailed Description

Error reporting exception class.
This class is used for error handling in the openMHA. It is used by the openMHA kernel and by
the openMHA toolbox library. Please note that exceptions should not be used accross ANSI-C
interfaces. It is necessary to catch exceptions within the library.
The MHA_Error (p. 522) class holds source file name, line number and an error message.

5.126.2

5.126.2.1

Constructor & Destructor Documentation

MHA_Error() [1/2]

MHA_Error::MHA_Error (
const char ∗ s_file,
int l,
const char ∗ fmt,
...

)

Create an instance of a MHA_Error (p. 522).

© 2005-2018 HörTech gGmbH, Oldenburg

5.126

MHA_Error Class Reference

Parameters
s_file

source file name (FILE)

l

source line (LINE)

fmt

format string for error message (as in printf)

5.126.2.2

MHA_Error() [2/2]

MHA_Error::MHA_Error (
const

MHA_Error & p )

5.126.2.3 ∼MHA_Error()
MHA_Error::∼MHA_Error ( ) throw )

5.126.3

5.126.3.1

Member Function Documentation

operator=()

MHA_Error & MHA_Error::operator= (
const

5.126.3.2

MHA_Error & p )

get_msg()

const char∗ MHA_Error::get_msg ( ) const [inline]

Return the error message without source position.

5.126.3.3

get_longmsg()

const char∗ MHA_Error::get_longmsg ( ) const [inline]

Return the error message with source position.

© 2005-2018 HörTech gGmbH, Oldenburg

523

524

5.126.3.4

CONTENTS

what()

const char∗ MHA_Error::what ( ) const throw )

[inline]

overwrite std::execption::what()

5.126.4

Member Data Documentation

5.126.4.1

msg

char∗ MHA_Error::msg [private]

5.126.4.2

longmsg

char∗ MHA_Error::longmsg [private]

The documentation for this class was generated from the following files:
• mha_error.hh
• mha_error.cpp

5.127

mha_fifo_lw_t< T > Class Template Reference

This FIFO uses locks to synchronize access.
Inheritance diagram for mha_fifo_lw_t< T >:

mha_fifo_t< T >

mha_fifo_lw_t< T >

© 2005-2018 HörTech gGmbH, Oldenburg

5.127

mha_fifo_lw_t< T > Class Template Reference

525

Public Member Functions
• virtual void write (const T ∗data, unsigned count)
write specified ammount of data to the fifo.

• virtual void read (T ∗ buf, unsigned count)
read data from fifo.

• mha_fifo_lw_t (unsigned max_fill_count)
Create FIFO with fixed buffer size.

• virtual ∼mha_fifo_lw_t ()
release synchronization object

• virtual void set_error (unsigned index, MHA_Error ∗ error)
Process waiting for more data or space should bail out, throwing this error.

Private Attributes
• mha_fifo_thread_platform_t ∗ sync
platform specific thread synchronization

• MHA_Error ∗ error [2]
If waiting for synchronization should be aborted then exception to be thrown by reader process
(index 0) or writer process (index 1) has to be placed here.

Additional Inherited Members
5.127.1

Detailed Description

template
class mha_fifo_lw_t< T >
This FIFO uses locks to synchronize access.
Reading and writing can block until the operation can be executed.

5.127.2

5.127.2.1

Constructor & Destructor Documentation

mha_fifo_lw_t()

template
mha_fifo_lw_t< T >::

mha_fifo_lw_t (

unsigned max_fill_count ) [explicit]

Create FIFO with fixed buffer size.

© 2005-2018 HörTech gGmbH, Oldenburg

526

CONTENTS

5.127.2.2 ∼mha_fifo_lw_t()
template
mha_fifo_lw_t< T >::∼ mha_fifo_lw_t ( ) [virtual]

release synchronization object

5.127.3

Member Function Documentation

5.127.3.1

write()

template
void

mha_fifo_lw_t< T >::write (
const T ∗ data,
unsigned count ) [virtual]

write specified ammount of data to the fifo.
If there is not enough space, then wait for more space.
Parameters
data
count

Pointer to source data.
Number of instances to copy.

Exceptions
MHA_Error ( p. 522)

when detecting a deadlock situation.

Reimplemented from mha_fifo_t< T > (p. 533).

5.127.3.2

read()

template
void

mha_fifo_lw_t< T >::read (
T ∗ buf,
unsigned count ) [virtual]

read data from fifo.
If there is not enough data, then wait for more data.

© 2005-2018 HörTech gGmbH, Oldenburg

5.127

mha_fifo_lw_t< T > Class Template Reference

527

Parameters
buf

Pointer to the target buffer.

count

Number of instances to copy.

Exceptions
MHA_Error ( p. 522)

when detecting a deadlock situation.

Reimplemented from mha_fifo_t< T > (p. 534).

5.127.3.3

set_error()

template
void

mha_fifo_lw_t< T >::set_error (
unsigned index,
MHA_Error ∗ error ) [virtual]

Process waiting for more data or space should bail out, throwing this error.
Parameters
index

Use 0 for terminating reader, 1 for terminating writer.

error

MHA_Error (p. 522) to be thrown

5.127.4

5.127.4.1

Member Data Documentation

sync

template
mha_fifo_thread_platform_t∗

mha_fifo_lw_t< T >::sync [private]

platform specific thread synchronization

© 2005-2018 HörTech gGmbH, Oldenburg

528

5.127.4.2

CONTENTS

error

template
MHA_Error∗

mha_fifo_lw_t< T >::error[2] [private]

If waiting for synchronization should be aborted then exception to be thrown by reader process
(index 0) or writer process (index 1) has to be placed here.
The documentation for this class was generated from the following files:
• mha_fifo.h
• mha_fifo.cpp

5.128

mha_fifo_posix_threads_t Class Reference

Inheritance diagram for mha_fifo_posix_threads_t:

mha_fifo_thread_platform_t

mha_fifo_posix_threads_t

Public Member Functions
•
•
•
•
•
•
•
•

mha_fifo_posix_threads_t ()
virtual void aquire_mutex ()
virtual void release_mutex ()
virtual void wait_for_decrease ()
virtual void wait_for_increase ()
virtual void increment ()
virtual void decrement ()
virtual ∼mha_fifo_posix_threads_t ()

Private Attributes
• pthread_mutex_t mutex
• pthread_cond_t decrease_condition
• pthread_cond_t increase_condition
© 2005-2018 HörTech gGmbH, Oldenburg

5.128

mha_fifo_posix_threads_t Class Reference

5.128.1

Constructor & Destructor Documentation

5.128.1.1

529

mha_fifo_posix_threads_t()

mha_fifo_posix_threads_t::mha_fifo_posix_threads_t ( ) [inline]

5.128.1.2 ∼mha_fifo_posix_threads_t()

virtual mha_fifo_posix_threads_t::∼mha_fifo_posix_threads_t ( ) [inline], [virtual]

5.128.2

5.128.2.1

Member Function Documentation

aquire_mutex()

virtual void mha_fifo_posix_threads_t::aquire_mutex ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 539).

5.128.2.2

release_mutex()

virtual void mha_fifo_posix_threads_t::release_mutex ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 539).

5.128.2.3

wait_for_decrease()

virtual void mha_fifo_posix_threads_t::wait_for_decrease ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 540).

© 2005-2018 HörTech gGmbH, Oldenburg

530

5.128.2.4

CONTENTS

wait_for_increase()

virtual void mha_fifo_posix_threads_t::wait_for_increase ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 540).

5.128.2.5

increment()

virtual void mha_fifo_posix_threads_t::increment ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 540).

5.128.2.6

decrement()

virtual void mha_fifo_posix_threads_t::decrement ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 540).

5.128.3

5.128.3.1

Member Data Documentation

mutex

pthread_mutex_t mha_fifo_posix_threads_t::mutex [private]

5.128.3.2

decrease_condition

pthread_cond_t mha_fifo_posix_threads_t::decrease_condition [private]

5.128.3.3

increase_condition

pthread_cond_t mha_fifo_posix_threads_t::increase_condition [private]

The documentation for this class was generated from the following file:
• mha_fifo.h
© 2005-2018 HörTech gGmbH, Oldenburg

5.129

mha_fifo_t< T > Class Template Reference

5.129

mha_fifo_t< T > Class Template Reference

531

A FIFO class for blocksize adaptation Synchronization: None.
Inheritance diagram for mha_fifo_t< T >:

mha_fifo_t< T >

mha_drifter_fifo_t< T >

mha_fifo_lw_t< T >

Public Types
• typedef T value_type
The data type exchanged by this fifo.

Public Member Functions
• virtual void write (const T ∗data, unsigned count)
write specified ammount of data to the fifo.

• virtual void read (T ∗ buf, unsigned count)
read data from fifo

• virtual unsigned get_fill_count () const
Read-only access to fill_count.

• virtual unsigned get_available_space () const
Read-only access to available_space.

• virtual unsigned get_max_fill_count () const
The capacity of this fifo.

• mha_fifo_t (unsigned max_fill_count)
Create FIFO with fixed buffer size.

• mha_fifo_t (unsigned max_fill_count, const T &t)
Create FIFO with fixed buffer size, where all (initially unused) copies of T are initialized as
copies of t.

• mha_fifo_t (const mha_fifo_t &src)
Copy constructor.

• virtual ∼mha_fifo_t ()
Destroy FIFO.

• mha_fifo_t< T > & operator= (const mha_fifo_t< T > &)
Assignment operator.
© 2005-2018 HörTech gGmbH, Oldenburg

532

CONTENTS

Protected Member Functions
• void clear ()
Empty the fifo at once.

Private Attributes
• const unsigned max_fill_count
The maximum fill count of this FIFO.

• T ∗ buf
The memory allocated to store the data.

• T ∗ write_ptr
points to location where to write next

• const T ∗ read_ptr
points to location where to read next

• bool buf_uses_placement_new
wether buf was allocated using placement new or array new.

5.129.1

Detailed Description

template
class mha_fifo_t< T >
A FIFO class for blocksize adaptation Synchronization: None.
Use external synchronisation or synchronization in inheriting class.

5.129.2

5.129.2.1

Member Typedef Documentation

value_type

template
typedef T

mha_fifo_t< T >::

value_type

The data type exchanged by this fifo.

5.129.3

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.129

mha_fifo_t< T > Class Template Reference

5.129.3.1

533

mha_fifo_t() [1/3]

template
mha_fifo_t< T >::

mha_fifo_t (

unsigned max_fill_count ) [explicit]

Create FIFO with fixed buffer size.

5.129.3.2

mha_fifo_t() [2/3]

template
mha_fifo_t< T >::

mha_fifo_t (

unsigned max_fill_count,
const T & t )

Create FIFO with fixed buffer size, where all (initially unused) copies of T are initialized as
copies of t.

5.129.3.3

mha_fifo_t() [3/3]

template
mha_fifo_t< T >::
const

mha_fifo_t (
mha_fifo_t< T > & src )

Copy constructor.

5.129.3.4 ∼mha_fifo_t()
template
mha_fifo_t< T >::∼ mha_fifo_t ( ) [virtual]

Destroy FIFO.

5.129.4

Member Function Documentation

5.129.4.1

write()

template
void

mha_fifo_t< T >::write (
const T ∗ data,
unsigned count ) [virtual]

write specified ammount of data to the fifo.

© 2005-2018 HörTech gGmbH, Oldenburg

534

CONTENTS

Parameters
data
count

Pointer to source data.
Number of instances to copy

Exceptions
MHA_Error ( p. 522)

when there is not enough space available.

Reimplemented in mha_fifo_lw_t< T > (p. 526), and mha_drifter_fifo_t< T > (p. 516).

5.129.4.2

read()

template
void

mha_fifo_t< T >::read (
T ∗ buf,
unsigned count ) [virtual]

read data from fifo
Parameters
buf

Pointer to the target buffer

count

Number of instances to copy

Exceptions
MHA_Error ( p. 522)

when there is not enough data available.

Reimplemented in mha_fifo_lw_t< T > (p. 526), and mha_drifter_fifo_t< T > (p. 516).

5.129.4.3

get_fill_count()

template
unsigned

mha_fifo_t< T >::get_fill_count ( ) const [virtual]

Read-only access to fill_count.
Reimplemented in mha_drifter_fifo_t< T > (p. 517).

© 2005-2018 HörTech gGmbH, Oldenburg

5.129

mha_fifo_t< T > Class Template Reference

5.129.4.4

535

get_available_space()

template
unsigned

mha_fifo_t< T >::get_available_space ( ) const [virtual]

Read-only access to available_space.
Reimplemented in mha_drifter_fifo_t< T > (p. 517).

5.129.4.5

get_max_fill_count()

template
virtual unsigned

mha_fifo_t< T >::get_max_fill_count ( ) const [inline], [virtual]

The capacity of this fifo.

5.129.4.6

operator=()

template
mha_fifo_t< T > &
const

mha_fifo_t< T >::operator= (
mha_fifo_t< T > & src )

Assignment operator.

5.129.4.7

clear()

template
void

mha_fifo_t< T >::clear ( ) [inline], [protected]

Empty the fifo at once.
Should be called by the reader, or when the reader is inactive.

5.129.5

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

536

5.129.5.1

CONTENTS

max_fill_count

template
const unsigned

mha_fifo_t< T >::max_fill_count [private]

The maximum fill count of this FIFO.

5.129.5.2

buf

template
T∗

mha_fifo_t< T >::buf [private]

The memory allocated to store the data.
max_fill_count + 1 locations are allocated: At least one location is always unused, because we
have max_fill_count + 1 possible fillcounts [0:max_fill_count] that we need to distinguish.
5.129.5.3

write_ptr

template
T∗

mha_fifo_t< T >::write_ptr [private]

points to location where to write next

5.129.5.4

read_ptr

template
const T∗

mha_fifo_t< T >::read_ptr [private]

points to location where to read next

5.129.5.5

buf_uses_placement_new

template
bool

mha_fifo_t< T >::buf_uses_placement_new [private]

wether buf was allocated using placement new or array new.
The documentation for this class was generated from the following file:
• mha_fifo.h
© 2005-2018 HörTech gGmbH, Oldenburg

5.130

mha_fifo_thread_guard_t Class Reference

5.130

mha_fifo_thread_guard_t Class Reference

537

Simple Mutex Guard Class.

Public Member Functions
• mha_fifo_thread_guard_t ( mha_fifo_thread_platform_t ∗ sync)
• ∼mha_fifo_thread_guard_t ()

Private Attributes
• mha_fifo_thread_platform_t ∗ sync

5.130.1

Detailed Description

Simple Mutex Guard Class.

5.130.2

5.130.2.1

Constructor & Destructor Documentation

mha_fifo_thread_guard_t()

mha_fifo_thread_guard_t::mha_fifo_thread_guard_t (
mha_fifo_thread_platform_t ∗ sync ) [inline]

5.130.2.2 ∼mha_fifo_thread_guard_t()
mha_fifo_thread_guard_t::∼mha_fifo_thread_guard_t ( ) [inline]

5.130.3

5.130.3.1

Member Data Documentation

sync

mha_fifo_thread_platform_t∗ mha_fifo_thread_guard_t::sync [private]

The documentation for this class was generated from the following file:
• mha_fifo.h
© 2005-2018 HörTech gGmbH, Oldenburg

538

5.131

CONTENTS

mha_fifo_thread_platform_t Class Reference

Abstract base class for synchronizing multithreaded (producer/consumer) fifo operations.
Inheritance diagram for mha_fifo_thread_platform_t:

mha_fifo_thread_platform_t

mha_fifo_posix_threads_t

Public Member Functions
• virtual void aquire_mutex ()=0
Calling thread waits until it aquires the lock.

• virtual void release_mutex ()=0
Calling thread releases the lock.

• virtual void wait_for_decrease ()=0
Calling producer thread must own the lock.

• virtual void wait_for_increase ()=0
Calling consumer thread must own the lock.

• virtual void increment ()=0
To be called by producer thread after producing.

• virtual void decrement ()=0
To be called by consumer thread after consuming.

• virtual ∼mha_fifo_thread_platform_t ()
Make destructor virtual.

• mha_fifo_thread_platform_t ()
Make default constructor accessible.

Private Member Functions
• mha_fifo_thread_platform_t (const mha_fifo_thread_platform_t &)
• mha_fifo_thread_platform_t & operator= (const mha_fifo_thread_platform_t &)
© 2005-2018 HörTech gGmbH, Oldenburg

5.131

mha_fifo_thread_platform_t Class Reference

5.131.1

Detailed Description

539

Abstract base class for synchronizing multithreaded (producer/consumer) fifo operations.
Works only with single producer and single consumer.

5.131.2

Constructor & Destructor Documentation

5.131.2.1 ∼mha_fifo_thread_platform_t()
virtual mha_fifo_thread_platform_t::∼mha_fifo_thread_platform_t ( ) [inline], [virtual]

Make destructor virtual.

5.131.2.2

mha_fifo_thread_platform_t() [1/2]

mha_fifo_thread_platform_t::mha_fifo_thread_platform_t (
const

5.131.2.3

mha_fifo_thread_platform_t &

) [private]

mha_fifo_thread_platform_t() [2/2]

mha_fifo_thread_platform_t::mha_fifo_thread_platform_t ( ) [inline]

Make default constructor accessible.

5.131.3

5.131.3.1

Member Function Documentation

aquire_mutex()

virtual void mha_fifo_thread_platform_t::aquire_mutex ( ) [pure virtual]

Calling thread waits until it aquires the lock.
Must not be called when the lock is already aquired.
Implemented in mha_fifo_posix_threads_t (p. 529).

© 2005-2018 HörTech gGmbH, Oldenburg

540

5.131.3.2

CONTENTS

release_mutex()

virtual void mha_fifo_thread_platform_t::release_mutex ( ) [pure virtual]

Calling thread releases the lock.
May only be called when lock is owned.
Implemented in mha_fifo_posix_threads_t (p. 529).

5.131.3.3

wait_for_decrease()

virtual void mha_fifo_thread_platform_t::wait_for_decrease ( ) [pure virtual]

Calling producer thread must own the lock.
Method releases lock, and waits for consumer thread to call decrease(). Then reaquires lock
and returns
Implemented in mha_fifo_posix_threads_t (p. 529).

5.131.3.4

wait_for_increase()

virtual void mha_fifo_thread_platform_t::wait_for_increase ( ) [pure virtual]

Calling consumer thread must own the lock.
Method releases lock, and waits for producer thread to call increase(). Then reaquires lock and
returns
Implemented in mha_fifo_posix_threads_t (p. 529).

5.131.3.5

increment()

virtual void mha_fifo_thread_platform_t::increment ( ) [pure virtual]

To be called by producer thread after producing.
Producer thread needs to own the lock to call this method.
Implemented in mha_fifo_posix_threads_t (p. 530).

© 2005-2018 HörTech gGmbH, Oldenburg

5.132

mha_rt_fifo_element_t< T > Class Template Reference

5.131.3.6

541

decrement()

virtual void mha_fifo_thread_platform_t::decrement ( ) [pure virtual]

To be called by consumer thread after consuming.
Consumer thread needs to own the lock to call this method.
Implemented in mha_fifo_posix_threads_t (p. 530).

5.131.3.7

operator=()

mha_fifo_thread_platform_t& mha_fifo_thread_platform_t::operator= (
const

mha_fifo_thread_platform_t &

) [private]

The documentation for this class was generated from the following file:

• mha_fifo.h

5.132

mha_rt_fifo_element_t< T > Class Template Reference

Object wrapper for mha_rt_fifo_t (p. 543).

Public Member Functions
• mha_rt_fifo_element_t (T ∗ data)
Constructor.

• ∼mha_rt_fifo_element_t ()

Public Attributes
• mha_rt_fifo_element_t< T > ∗ next
Pointer to next fifo element. NULL for the last (newest) fifo element.

• bool abandonned
Indicates that this element will no longer be used and may be deleted.

• T ∗ data
Pointer to user data.
© 2005-2018 HörTech gGmbH, Oldenburg

542

5.132.1

CONTENTS

Detailed Description

template
class mha_rt_fifo_element_t< T >
Object wrapper for mha_rt_fifo_t (p. 543).

5.132.2

5.132.2.1

Constructor & Destructor Documentation

mha_rt_fifo_element_t()

template
mha_rt_fifo_element_t< T >::

mha_rt_fifo_element_t (

T ∗ data ) [inline]

Constructor.
This element assumes ownership of user data.
Parameters
data

User data. Has to be allocated on the heap with standard operator new, because it
will be deleted in this element's destructor.

5.132.2.2 ∼mha_rt_fifo_element_t()
template
mha_rt_fifo_element_t< T >::∼ mha_rt_fifo_element_t ( ) [inline]

5.132.3

5.132.3.1

Member Data Documentation

next

template
mha_rt_fifo_element_t∗

mha_rt_fifo_element_t< T >::next

Pointer to next fifo element. NULL for the last (newest) fifo element.

© 2005-2018 HörTech gGmbH, Oldenburg

5.133

mha_rt_fifo_t< T > Class Template Reference

5.132.3.2

543

abandonned

template
bool

mha_rt_fifo_element_t< T >::abandonned

Indicates that this element will no longer be used and may be deleted.

5.132.3.3

data

template
T∗

mha_rt_fifo_element_t< T >::data

Pointer to user data.
The documentation for this class was generated from the following file:
• mha_fifo.h

5.133

mha_rt_fifo_t< T > Class Template Reference

Template class for thread safe, half real time safe fifo without explixit locks.

Public Member Functions
• mha_rt_fifo_t ()
Construct empty fifo.

• ∼mha_rt_fifo_t ()
Destructor will delete all data currently in the fifo.

• T ∗ poll ()
Retrieve the latest element in the Fifo.

• T ∗ poll_1 ()
Retrieve the next element in the Fifo, if there is one, and mark the previous element as abandonned.

• void push (T ∗data)
Add element to the Fifo.

Private Member Functions
• void remove_abandonned ()
Deletes abandonned elements.

• void remove_all ()
Deletes all elements.
© 2005-2018 HörTech gGmbH, Oldenburg

544

CONTENTS

Private Attributes
• mha_rt_fifo_element_t< T > ∗ root
The first element in the fifo. Deleting elements starts here.

• mha_rt_fifo_element_t< T > ∗ current
The element most recently returned by poll ( p. 545) or poll_1 ( p. 545).

5.133.1

Detailed Description

template
class mha_rt_fifo_t< T >
Template class for thread safe, half real time safe fifo without explixit locks.
Reading from this fifo is realtime safe, writing to it is not. This fifo is designed for objects that
were constructed on the heap. It assumes ownership of these objects and calls delete on them
when they are no longer used. Objects remain inside the Fifo while being used by the reader.
A new fifo element is inserted by using push (p. 545). The push operation is not real time safe,
it allocates and deallocates memory. The latest element is retrieved by calling poll (p. 545).
This operation will skip fifo elements if more than one push (p. 545) has been occured since
the last poll. To avoid skipping, call the poll_1 (p. 545) operation instead.

5.133.2

5.133.2.1

Constructor & Destructor Documentation

mha_rt_fifo_t()

template
mha_rt_fifo_t< T >::

mha_rt_fifo_t ( ) [inline]

Construct empty fifo.

5.133.2.2 ∼mha_rt_fifo_t()
template
mha_rt_fifo_t< T >::∼ mha_rt_fifo_t ( ) [inline]

Destructor will delete all data currently in the fifo.
© 2005-2018 HörTech gGmbH, Oldenburg

5.133

mha_rt_fifo_t< T > Class Template Reference

5.133.3

Member Function Documentation

5.133.3.1

545

poll()

template
T∗

mha_rt_fifo_t< T >::poll ( ) [inline]

Retrieve the latest element in the Fifo.
Will skip fifo elements if more than one element has been added since last poll invocation. Will
return the same element as on last call if no elements have been added in the mean time.
Marks former elements as abandonned.
Returns
The latest element in this Fifo. Returns NULL if the Fifo is empty.

5.133.3.2

poll_1()

template
T∗

mha_rt_fifo_t< T >::poll_1 ( ) [inline]

Retrieve the next element in the Fifo, if there is one, and mark the previous element as abandonned.
Else, if there is no newer element, returns the same element as on last poll() (p. 545) or poll_1()
(p. 545) invocation.
Returns
The next element in this Fifo, if there is one, or the same as before. Returns NULL if the
Fifo is empty.

5.133.3.3

push()

template
void

mha_rt_fifo_t< T >::push (
T ∗ data ) [inline]

Add element to the Fifo.
Deletes abandonned elements in the fifo.

© 2005-2018 HörTech gGmbH, Oldenburg

546

CONTENTS

Parameters
The new user data to place at the end of the fifo. After this invocation, the fifo is the
owner of this object and will delete it when it is no longer used. data must have been
allocated on the heap with standard operator new.

data

5.133.3.4

remove_abandonned()

template
void

mha_rt_fifo_t< T >::remove_abandonned ( ) [inline], [private]

Deletes abandonned elements.

5.133.3.5

remove_all()

template
void

mha_rt_fifo_t< T >::remove_all ( ) [inline], [private]

Deletes all elements.

5.133.4

5.133.4.1

Member Data Documentation

root

template
mha_rt_fifo_element_t∗

mha_rt_fifo_t< T >::root [private]

The first element in the fifo. Deleting elements starts here.

5.133.4.2

current

template
mha_rt_fifo_element_t∗

mha_rt_fifo_t< T >::current [private]

The element most recently returned by poll (p. 545) or poll_1 (p. 545).
Searching for new elements starts here.
The documentation for this class was generated from the following file:
• mha_fifo.h
© 2005-2018 HörTech gGmbH, Oldenburg

5.134

mha_spec_t Struct Reference

5.134

mha_spec_t Struct Reference

547

Spectrum signal structure.
Inheritance diagram for mha_spec_t:

mha_spec_t

MHASignal::spectrum_t

hilbert_shifter_t

MHA_AC::spectrum_t

MHAMultiSrc::spectrum_t

wave2spec_t

Public Attributes
• mha_complex_t ∗ buf
signal buffer

• unsigned int num_channels
number of channels

• unsigned int num_frames
number of frames in each channel

• mha_channel_info_t ∗ channel_info
detailed channel description

5.134.1

Detailed Description

Spectrum signal structure.
This structure contains the short time fourier transform output of the windowed input signal.
The member num_frames describes the number of frequency bins in each channel. For an
even FFT length N , this is N/2 + 1. With odd FFT lengths, it is (N + 1)/2. The imaginary part
© 2005-2018 HörTech gGmbH, Oldenburg

548

CONTENTS

of the first bin is zero. For even FFT lengths, also the imaginary part at the Nyquist frequency
is zero.
buf[k].re

Re(0)

buf[k].im
0

k

Re(1) Re(2) Re(3) Re(4)

...

Re(n/2−1)

Im(1) Im(2) Im(3) Im(4)

...

Im(n/2−1)

1

2

3

4

n/2−1

Re(n/2)

n/2

Figure 4 Data order of FFT spectrum.

5.134.2

5.134.2.1

Member Data Documentation

buf

mha_complex_t∗ mha_spec_t::buf

signal buffer

5.134.2.2

num_channels

unsigned int mha_spec_t::num_channels

number of channels

5.134.2.3

num_frames

unsigned int mha_spec_t::num_frames

number of frames in each channel

5.134.2.4

channel_info

mha_channel_info_t∗ mha_spec_t::channel_info

detailed channel description
The documentation for this struct was generated from the following file:
• mha.h
© 2005-2018 HörTech gGmbH, Oldenburg

5.135

MHA_TCP::Async_Notify Class Reference

5.135

MHA_TCP::Async_Notify Class Reference

Portable Multiplexable cross-thread notification.
Inheritance diagram for MHA_TCP::Async_Notify:

MHA_TCP::Wakeup_Event

MHA_TCP::Async_Notify

Public Member Functions
•
•
•
•

Async_Notify ()
virtual void reset ()
virtual void set ()
virtual ∼Async_Notify ()

Private Attributes
• int pipe [2]

Additional Inherited Members
5.135.1

Detailed Description

Portable Multiplexable cross-thread notification.

5.135.2

5.135.2.1

Constructor & Destructor Documentation

Async_Notify()

Async_Notify::Async_Notify ( )

© 2005-2018 HörTech gGmbH, Oldenburg

549

550

CONTENTS

5.135.2.2 ∼Async_Notify()
Async_Notify::∼Async_Notify ( ) [virtual]

5.135.3

Member Function Documentation

5.135.3.1

reset()

void Async_Notify::reset ( ) [virtual]

Reimplemented from MHA_TCP::Wakeup_Event (p. 581).

5.135.3.2

set()

void Async_Notify::set ( ) [virtual]

5.135.4

Member Data Documentation

5.135.4.1

pipe

int MHA_TCP::Async_Notify::pipe[2] [private]

The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp

5.136

MHA_TCP::Client Class Reference

A portable class for a tcp client connections.
Inheritance diagram for MHA_TCP::Client:

MHA_TCP::Connection

MHA_TCP::Client

© 2005-2018 HörTech gGmbH, Oldenburg

5.136

MHA_TCP::Client Class Reference

551

Public Member Functions
• Client (const std::string &host, unsigned short port)
Constructor connects to host, port via TCP.

• Client (const std::string &host, unsigned short port, Timeout_Watcher &timeout_←watcher)
Constructor connects to host, port via TCP, using a timeout.

Additional Inherited Members
5.136.1

Detailed Description

A portable class for a tcp client connections.

5.136.2

5.136.2.1

Constructor & Destructor Documentation

Client() [1/2]

Client::Client (
const std::string & host,
unsigned short port )

Constructor connects to host, port via TCP.
Parameters
host

The hostname of the TCP Server (p. 565).

port

The port or the TCP Server (p. 565).

5.136.2.2

Client() [2/2]

Client::Client (
const std::string & host,
unsigned short port,
Timeout_Watcher & timeout_watcher )

Constructor connects to host, port via TCP, using a timeout.

© 2005-2018 HörTech gGmbH, Oldenburg

552

CONTENTS

Parameters
host

The hostname of the TCP Server (p. 565).

port
timeout_watcher

The port or the TCP Server (p. 565).
an Event watcher that implements a timeout.

The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp

5.137

MHA_TCP::Connection Class Reference

Connection (p. 552) handles Communication between client and server, is used on both sides.
Inheritance diagram for MHA_TCP::Connection:

MHA_TCP::Connection

MHA_TCP::Client

Public Member Functions
• Sockread_Event ∗ get_read_event ()
• Sockwrite_Event ∗ get_write_event ()
• std::string get_peer_address ()
Get peer's IP Address.

• unsigned short get_peer_port ()
Get peer's TCP port.

• SOCKET get_fd () const
Return the (protected) file descriptor of the connection.

• virtual ∼Connection ()
Destructor closes the underlying file descriptor.

• bool eof ()
Checks if the peer has closed the connection.
© 2005-2018 HörTech gGmbH, Oldenburg

5.137

MHA_TCP::Connection Class Reference

553

• bool can_read_line (char delim='\n')
Checks if a full line of text has arrived by now.

• bool can_read_bytes (unsigned howmany)
Checks if the specified ammount of data can be read.

• std::string read_line (char delim='\n')
Reads a single line of data from the socket.

• std::string read_bytes (unsigned howmany)
Reads the specified ammount of dat from the socket.

• void try_write (const std::string &data="")
Adds data to the internal "outgoing" buffer, and then tries to write as much data from that buffer
to the socket as possible without blocking.

• void write (const std::string &data="")
Adds data to the internal "outgoing" buffer, and then writes that that buffer to the socket, regardless of blocking.

• bool needs_write ()
Checks if the internal "outgoing" buffer contains data.

• unsigned buffered_incoming_bytes () const
Returns the number of bytes in the internal "incoming" buffer.

• unsigned buffered_outgoing_bytes () const
Returns the number of bytes in the internal "outgoing" buffer.

Protected Member Functions
• Connection ( SOCKET _fd)
Create a connection instance from a socket filedescriptor.

Protected Attributes
• SOCKET fd
The file descriptor of the TCP Socket.

Private Member Functions
• void init_peer_data ()
determine peer address and port

• bool can_sysread ()
Determine wether at least 1 byte can be read without blocking.

• bool can_syswrite ()
Determine wether at least 1 byte can be written without blocking.

• std::string sysread (unsigned bytes)
Call the system's read function and try to read bytes.

• std::string syswrite (const std::string &data)
Call the system's write function and try to write all characters in the string data.
© 2005-2018 HörTech gGmbH, Oldenburg

554

CONTENTS

Private Attributes
•
•
•
•
•
•

std::string outbuf
std::string inbuf
Sockread_Event ∗ read_event
Sockwrite_Event ∗ write_event
bool closed
struct sockaddr_in peer_addr

5.137.1

Detailed Description

Connection (p. 552) handles Communication between client and server, is used on both sides.

5.137.2

Constructor & Destructor Documentation

5.137.2.1

Connection()

MHA_TCP::Connection::Connection (
SOCKET _fd ) [protected]

Create a connection instance from a socket filedescriptor.
Parameters
←-

_←fd

The file descriptor of the TCP Socket. This file descriptor is closed again in the
destructor.

Exceptions
MHA_Error ( p. 522)

If the file descriptor is < 0.

5.137.2.2 ∼Connection()

Connection::∼Connection ( ) [virtual]

Destructor closes the underlying file descriptor.
© 2005-2018 HörTech gGmbH, Oldenburg

5.137

MHA_TCP::Connection Class Reference

5.137.3

Member Function Documentation

5.137.3.1

555

init_peer_data()

void MHA_TCP::Connection::init_peer_data ( ) [private]

determine peer address and port

5.137.3.2

can_sysread()

bool Connection::can_sysread ( ) [private]

Determine wether at least 1 byte can be read without blocking.

5.137.3.3

can_syswrite()

bool Connection::can_syswrite ( ) [private]

Determine wether at least 1 byte can be written without blocking.

5.137.3.4

sysread()

std::string Connection::sysread (
unsigned bytes ) [private]

Call the system's read function and try to read bytes.
This will block in a situation where can_sysread returns false.
Parameters
bytes

The desired number of characters.

Returns
The characters read from the socket. The result may have fewer characters than specified
by bytes. If the result is an empty string, then the socket has been closed by the peer.

© 2005-2018 HörTech gGmbH, Oldenburg

556

5.137.3.5

CONTENTS

syswrite()

std::string Connection::syswrite (
const std::string & data ) [private]

Call the system's write function and try to write all characters in the string data.
May write fewer characters, but will at least write one character.
Parameters
data

A string of characters to write to the socket.

Returns
The rest of the characters that have not yet been written.

5.137.3.6

get_read_event()

Sockread_Event ∗ Connection::get_read_event ( )

5.137.3.7

get_write_event()

Sockwrite_Event ∗ Connection::get_write_event ( )

5.137.3.8

get_peer_address()

std::string Connection::get_peer_address ( )

Get peer's IP Address.

5.137.3.9

get_peer_port()

unsigned short Connection::get_peer_port ( )

Get peer's TCP port.

© 2005-2018 HörTech gGmbH, Oldenburg

5.137

MHA_TCP::Connection Class Reference

5.137.3.10

557

get_fd()

SOCKET MHA_TCP::Connection::get_fd ( ) const [inline]

Return the (protected) file descriptor of the connection.
Will be required for SSL.
5.137.3.11

eof()

bool Connection::eof ( )

Checks if the peer has closed the connection.
As a side effect, this method fills the internal "incoming" buffer if it was empty and the socket is
readable and not eof.
5.137.3.12

can_read_line()

bool Connection::can_read_line (
char delim = '\n' )

Checks if a full line of text has arrived by now.
This method reads data from the socket into the internal "incoming" buffer if it can be done
without blocking.
Parameters
delim

The line delimiter.

Returns
true if at least one full line of text is present in the internal buffer after this method call,
false otherwise.

5.137.3.13

can_read_bytes()

bool Connection::can_read_bytes (
unsigned howmany )

Checks if the specified ammount of data can be read.
This method reads data from the socket into an internal "incoming" buffer if it can be done
without blocking.

© 2005-2018 HörTech gGmbH, Oldenburg

558

CONTENTS

Parameters
howmany

The number of bytes that the caller wants to have checked.

Returns
true if at least the specified ammount of data is present in the internal buffer after this
method call, false otherwise

5.137.3.14

read_line()

std::string Connection::read_line (
char delim = '\n' )

Reads a single line of data from the socket.
Blocks if necessary.
Parameters
delim

The line delimiter.

Returns
The string of characters in this line, including the trailing delimiter. The delimiter may be
missing if the last line before EOF does not have a delimiter.

5.137.3.15

read_bytes()

std::string Connection::read_bytes (
unsigned howmany )

Reads the specified ammount of dat from the socket.
Blocks if necessary.
Parameters
howmany

The number of bytes to read.

© 2005-2018 HörTech gGmbH, Oldenburg

5.137

MHA_TCP::Connection Class Reference

559

Returns
The string of characters read. The string may be shorter if EOF is encountered.

5.137.3.16

try_write()

void Connection::try_write (
const std::string & data = "" )

Adds data to the internal "outgoing" buffer, and then tries to write as much data from that buffer
to the socket as possible without blocking.
Parameters
data

data to send over the socket.

5.137.3.17

write()

void Connection::write (
const std::string & data = "" )

Adds data to the internal "outgoing" buffer, and then writes that that buffer to the socket, regardless of blocking.
Parameters
data

data to send over the socket.

5.137.3.18

needs_write()

bool Connection::needs_write ( )

Checks if the internal "outgoing" buffer contains data.

5.137.3.19

buffered_incoming_bytes()

unsigned Connection::buffered_incoming_bytes ( ) const

Returns the number of bytes in the internal "incoming" buffer.

© 2005-2018 HörTech gGmbH, Oldenburg

560

5.137.3.20

CONTENTS

buffered_outgoing_bytes()

unsigned Connection::buffered_outgoing_bytes ( ) const

Returns the number of bytes in the internal "outgoing" buffer.

5.137.4

5.137.4.1

Member Data Documentation

outbuf

std::string MHA_TCP::Connection::outbuf [private]

5.137.4.2

inbuf

std::string MHA_TCP::Connection::inbuf [private]

5.137.4.3

read_event

Sockread_Event∗ MHA_TCP::Connection::read_event [private]

5.137.4.4

write_event

Sockwrite_Event∗ MHA_TCP::Connection::write_event [private]

5.137.4.5

closed

bool MHA_TCP::Connection::closed [private]

5.137.4.6

peer_addr

struct sockaddr_in MHA_TCP::Connection::peer_addr [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.138

MHA_TCP::Event_Watcher Class Reference

5.137.4.7

561

fd

SOCKET MHA_TCP::Connection::fd [protected]

The file descriptor of the TCP Socket.
The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp

5.138

MHA_TCP::Event_Watcher Class Reference

OS-independent event watcher, uses select on Unix and WaitForMultipleObjects on Windows.
Inheritance diagram for MHA_TCP::Event_Watcher:

MHA_TCP::Event_Watcher

MHA_TCP::Timeout_Watcher

Public Types
• typedef std::set< Wakeup_Event ∗ > Events
• typedef std::set< Wakeup_Event ∗ >:: iterator iterator

Public Member Functions
• void observe ( Wakeup_Event ∗event)
Add an event to this observer.

• void ignore ( Wakeup_Event ∗event)
Remove an event from this observer.

• std::set< Wakeup_Event ∗ > wait ()
\ Wait for some event to occur.

• virtual ∼Event_Watcher ()
© 2005-2018 HörTech gGmbH, Oldenburg

562

CONTENTS

Private Attributes
• std::set< Wakeup_Event ∗ > events
The list of events to watch.

5.138.1

Detailed Description

OS-independent event watcher, uses select on Unix and WaitForMultipleObjects on Windows.

5.138.2

Member Typedef Documentation

5.138.2.1

Events

typedef

std::set< Wakeup_Event∗>

5.138.2.2

iterator

typedef

std::set< Wakeup_Event∗>::

5.138.3

MHA_TCP::Event_Watcher::Events

iterator

MHA_TCP::Event_Watcher::iterator

Constructor & Destructor Documentation

5.138.3.1 ∼Event_Watcher()
Event_Watcher::∼Event_Watcher ( ) [virtual]

5.138.4

5.138.4.1

Member Function Documentation

observe()

void Event_Watcher::observe (
Wakeup_Event ∗ event )

Add an event to this observer.

© 2005-2018 HörTech gGmbH, Oldenburg

5.139

MHA_TCP::OS_EVENT_TYPE Struct Reference

5.138.4.2

563

ignore()

void Event_Watcher::ignore (
Wakeup_Event ∗ event )

Remove an event from this observer.

5.138.4.3

wait()

std::set<

Wakeup_Event ∗ > Event_Watcher::wait ( )

\ Wait for some event to occur.
Return all events that are ready
5.138.5

Member Data Documentation

5.138.5.1

events

std::set< Wakeup_Event∗> MHA_TCP::Event_Watcher::events [private]

The list of events to watch.
The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp

5.139

MHA_TCP::OS_EVENT_TYPE Struct Reference

Public Types
• enum { R =0, W =1, X =2, T }
Public Attributes
• enum MHA_TCP::OS_EVENT_TYPE:: { ... } mode
• union {
int fd
double timeout
};

5.139.1

5.139.1.1

Member Enumeration Documentation

anonymous enum

anonymous enum

© 2005-2018 HörTech gGmbH, Oldenburg

564

CONTENTS

Enumerator
R
W
X
T

5.139.2

5.139.2.1

Member Data Documentation

mode

enum { ...

5.139.2.2

} MHA_TCP::OS_EVENT_TYPE::mode

fd

int MHA_TCP::OS_EVENT_TYPE::fd

5.139.2.3

timeout

double MHA_TCP::OS_EVENT_TYPE::timeout

5.139.2.4

"@4

union { ...

}

The documentation for this struct was generated from the following file:

• mha_tcp.hh
© 2005-2018 HörTech gGmbH, Oldenburg

5.140

MHA_TCP::Server Class Reference

5.140

MHA_TCP::Server Class Reference

565

Public Member Functions
• Server (unsigned short port=0, const std::string & iface="0.0.0.0")
Create a TCP server socket.

• Server (const std::string & iface, unsigned short port=0)
Create a TCP server socket.

• ∼Server ()
Close the TCP server socket.

• std::string get_interface () const
Get the name given in the constructor for the network interface.

• unsigned short get_port () const
Get the port that the TCP server socket currently listens to.

• Sockaccept_Event ∗ get_accept_event ()
Produces an event that can be observed by an Event_Watcher ( p. 561).

• Connection ∗ accept ()
Accept an incoming connection.

• Connection ∗ try_accept ()
Accept an incoming connection if it can be done without blocking.

Private Member Functions
• void initialize (const std::string & iface, unsigned short port)

Private Attributes
•
•
•
•
•

sockaddr_in sock_addr
SOCKET serversocket
std::string iface
unsigned short port
Sockaccept_Event ∗ accept_event

5.140.1

5.140.1.1

Constructor & Destructor Documentation

Server() [1/2]

Server::Server (
unsigned short port = 0,
const std::string & iface = "0.0.0.0" )

Create a TCP server socket.

© 2005-2018 HörTech gGmbH, Oldenburg

566

CONTENTS

Parameters
port

The TCP port to listen to.

iface

The network interface to bind to.

5.140.1.2

Server() [2/2]

Server::Server (
const std::string & iface,
unsigned short port = 0 )

Create a TCP server socket.
Parameters
port

The TCP port to listen to.

iface

The network interface to bind to.

5.140.1.3 ∼Server()
Server::∼Server ( )

Close the TCP server socket.

5.140.2

5.140.2.1

Member Function Documentation

initialize()

void Server::initialize (
const std::string & iface,
unsigned short port ) [private]

5.140.2.2

get_interface()

std::string Server::get_interface ( ) const

Get the name given in the constructor for the network interface.

© 2005-2018 HörTech gGmbH, Oldenburg

5.140

5.140.2.3

MHA_TCP::Server Class Reference

567

get_port()

unsigned short Server::get_port ( ) const

Get the port that the TCP server socket currently listens to.

5.140.2.4

get_accept_event()

Sockaccept_Event ∗ Server::get_accept_event ( )

Produces an event that can be observed by an Event_Watcher (p. 561).
This event signals incoming connections that can be accepted.
5.140.2.5

accept()

Connection ∗ Server::accept ( )

Accept an incoming connection.
blocks if necessary.
Returns
The new TCP connection. The connection has to be deleted by the caller.

5.140.2.6

try_accept()

Connection ∗ Server::try_accept ( )

Accept an incoming connection if it can be done without blocking.
Returns
The new TCP connection or 0 if there is no immediate connection. The connection has to
be deleted by the caller.

5.140.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

568

5.140.3.1

CONTENTS

sock_addr

sockaddr_in MHA_TCP::Server::sock_addr [private]

5.140.3.2

serversocket

SOCKET MHA_TCP::Server::serversocket [private]

5.140.3.3

iface

std::string MHA_TCP::Server::iface [private]

5.140.3.4

port

unsigned short MHA_TCP::Server::port [private]

5.140.3.5

accept_event

Sockaccept_Event∗ MHA_TCP::Server::accept_event [private]

The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp

5.141

MHA_TCP::Sockaccept_Event Class Reference

Inheritance diagram for MHA_TCP::Sockaccept_Event:

MHA_TCP::Wakeup_Event

MHA_TCP::Sockaccept
_Event

© 2005-2018 HörTech gGmbH, Oldenburg

5.142

MHA_TCP::Sockread_Event Class Reference

569

Public Member Functions
• Sockaccept_Event ( SOCKET)

Additional Inherited Members
5.141.1

Constructor & Destructor Documentation

5.141.1.1

Sockaccept_Event()

MHA_TCP::Sockaccept_Event::Sockaccept_Event (
SOCKET s )

The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp

5.142

MHA_TCP::Sockread_Event Class Reference

Watch socket for incoming data.
Inheritance diagram for MHA_TCP::Sockread_Event:

MHA_TCP::Wakeup_Event

MHA_TCP::Sockread_Event

Public Member Functions
• Sockread_Event ( SOCKET s)
Set socket to watch for.
© 2005-2018 HörTech gGmbH, Oldenburg

570

CONTENTS

Additional Inherited Members
5.142.1

Detailed Description

Watch socket for incoming data.

5.142.2

Constructor & Destructor Documentation

5.142.2.1

Sockread_Event()

MHA_TCP::Sockread_Event::Sockread_Event (
SOCKET s )

Set socket to watch for.
Parameters
s

The socket to observe incoming data on.

The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp

5.143

MHA_TCP::Sockwrite_Event Class Reference

Inheritance diagram for MHA_TCP::Sockwrite_Event:

MHA_TCP::Wakeup_Event

MHA_TCP::Sockwrite
_Event

© 2005-2018 HörTech gGmbH, Oldenburg

5.144

MHA_TCP::Thread Class Reference

571

Public Member Functions
• Sockwrite_Event ( SOCKET s)

Additional Inherited Members

5.143.1

Constructor & Destructor Documentation

5.143.1.1

Sockwrite_Event()

MHA_TCP::Sockwrite_Event::Sockwrite_Event (
SOCKET s )

The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp

5.144

MHA_TCP::Thread Class Reference

A very simple class for portable threads.

Public Types
• enum { PREPARED, RUNNING, FINISHED }
The current state of the thread.

• typedef void ∗(∗ thr_f) (void ∗)
The thread function signature to use with this class.

Public Member Functions
• Thread ( thr_f func, void ∗ arg=0)
Constructor starts a new thread.

• virtual ∼Thread ()
The destructor should only be called when the Thread ( p. 571) is finished.

• virtual void run ()
The internal method that delegated the new thread to the registered Thread ( p. 571) function.
© 2005-2018 HörTech gGmbH, Oldenburg

572

CONTENTS

Public Attributes
• Async_Notify thread_finish_event
Event will be triggered when the thread exits.

• enum MHA_TCP::Thread:: { ... } state
The current state of the thread.

• thr_f thread_func
The thread function that the client has registered.

• void ∗ thread_arg
The argument that the client wants to be handed through to the thread function.

• MHA_Error ∗ error
The MHA_Error ( p. 522) that caused the thread to abort, if any.

Protected Member Functions
• Thread ()
Default constructor may only be used by derived classes that want to start the thread themselves.

Protected Attributes
• void ∗ arg
The argument for the client's thread function.

• void ∗ return_value
The return value from the client's thread function is stored here When that function returns.

Private Attributes
• pthread_t thread_handle
The posix thread handle.

• pthread_attr_t thread_attr
The posix thread attribute structure.

5.144.1

Detailed Description

A very simple class for portable threads.

5.144.2

Member Typedef Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.144

5.144.2.1

MHA_TCP::Thread Class Reference

573

thr_f

typedef void∗(∗ MHA_TCP::Thread::thr_f) (void ∗)

The thread function signature to use with this class.
Derive from this class and call protected standard constructor to start threads differently.

5.144.3

5.144.3.1

Member Enumeration Documentation

anonymous enum

anonymous enum

The current state of the thread.
Enumerator
PREPARED
RUNNING
FINISHED

5.144.4

5.144.4.1

Constructor & Destructor Documentation

Thread() [1/2]

MHA_TCP::Thread::Thread ( ) [protected]

Default constructor may only be used by derived classes that want to start the thread themselves.

5.144.4.2

Thread() [2/2]

Thread::Thread (
Thread::thr_f func,
void ∗ arg = 0 )

Constructor starts a new thread.

© 2005-2018 HörTech gGmbH, Oldenburg

574

CONTENTS

Parameters
func

The function to be executed by the thread.

arg

The argument given to pass to the thread function.

5.144.4.3 ∼Thread()
Thread::∼Thread ( ) [virtual]

The destructor should only be called when the Thread (p. 571) is finished.
There is preliminary support for forceful thread cancellation in the destructor, but probably not
very robust or portable..

5.144.5

5.144.5.1

Member Function Documentation

run()

void Thread::run ( ) [virtual]

The internal method that delegated the new thread to the registered Thread (p. 571) function.

5.144.6

5.144.6.1

Member Data Documentation

thread_handle

pthread_t MHA_TCP::Thread::thread_handle [private]

The posix thread handle.

5.144.6.2

thread_attr

pthread_attr_t MHA_TCP::Thread::thread_attr [private]

The posix thread attribute structure.
Required for starting a thread in detached state. Detachment is required to eliminate the need
for joining this thread.
© 2005-2018 HörTech gGmbH, Oldenburg

5.144

5.144.6.3

MHA_TCP::Thread Class Reference

575

arg

void∗ MHA_TCP::Thread::arg [protected]

The argument for the client's thread function.

5.144.6.4

return_value

void∗ MHA_TCP::Thread::return_value [protected]

The return value from the client's thread function is stored here When that function returns.

5.144.6.5

thread_finish_event

Async_Notify MHA_TCP::Thread::thread_finish_event

Event will be triggered when the thread exits.

5.144.6.6

state

enum { ...

} MHA_TCP::Thread::state

The current state of the thread.

5.144.6.7

thread_func

thr_f MHA_TCP::Thread::thread_func

The thread function that the client has registered.

5.144.6.8

thread_arg

void∗ MHA_TCP::Thread::thread_arg

The argument that the client wants to be handed through to the thread function.

© 2005-2018 HörTech gGmbH, Oldenburg

576

5.144.6.9

CONTENTS

error

MHA_Error∗ MHA_TCP::Thread::error

The MHA_Error (p. 522) that caused the thread to abort, if any.
The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp

5.145

MHA_TCP::Timeout_Event Class Reference

Inheritance diagram for MHA_TCP::Timeout_Event:

MHA_TCP::Wakeup_Event

MHA_TCP::Timeout_Event

Public Member Functions
• Timeout_Event (double interval)
• virtual OS_EVENT_TYPE get_os_event ()

Private Attributes
• double end_time

Additional Inherited Members
5.145.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.146

MHA_TCP::Timeout_Watcher Class Reference

5.145.1.1

577

Timeout_Event()

Timeout_Event::Timeout_Event (
double interval )

5.145.2

Member Function Documentation

5.145.2.1

get_os_event()

OS_EVENT_TYPE Timeout_Event::get_os_event ( ) [virtual]

Reimplemented from MHA_TCP::Wakeup_Event (p. 581).

5.145.3

Member Data Documentation

5.145.3.1

end_time

double MHA_TCP::Timeout_Event::end_time [private]

The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp

5.146

MHA_TCP::Timeout_Watcher Class Reference

OS-independent event watcher with internal fixed-end-time timeout.
Inheritance diagram for MHA_TCP::Timeout_Watcher:

MHA_TCP::Event_Watcher

MHA_TCP::Timeout_Watcher

© 2005-2018 HörTech gGmbH, Oldenburg

578

CONTENTS

Public Member Functions
• Timeout_Watcher (double interval)
• virtual ∼Timeout_Watcher ()

Private Attributes
• Timeout_Event timeout

Additional Inherited Members
5.146.1

Detailed Description

OS-independent event watcher with internal fixed-end-time timeout.

5.146.2

5.146.2.1

Constructor & Destructor Documentation

Timeout_Watcher()

Timeout_Watcher::Timeout_Watcher (
double interval ) [explicit]

5.146.2.2 ∼Timeout_Watcher()
Timeout_Watcher::∼Timeout_Watcher ( ) [virtual]

5.146.3

5.146.3.1

Member Data Documentation

timeout

Timeout_Event MHA_TCP::Timeout_Watcher::timeout [private]

The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.147

MHA_TCP::Wakeup_Event Class Reference

5.147

MHA_TCP::Wakeup_Event Class Reference

579

A base class for asynchronous wakeup events.
Inheritance diagram for MHA_TCP::Wakeup_Event:

MHA_TCP::Async_Notify

MHA_TCP::Sockaccept
_Event

MHA_TCP::Wakeup_Event

MHA_TCP::Sockread_Event

MHA_TCP::Sockwrite
_Event

MHA_TCP::Timeout_Event

Public Member Functions
• Wakeup_Event ()
Event Constructor.

• virtual void observed_by ( Event_Watcher ∗observer)
Called by the Event_Watcher ( p. 561) when this event is added to its list of observed events.

• virtual void ignored_by ( Event_Watcher ∗observer)
Called by the Event_Watcher ( p. 561) when this event is removed from its list of observed
events.

• virtual ∼Wakeup_Event ()
Destructor deregisters from observers.

• virtual OS_EVENT_TYPE get_os_event ()
Get necessary information for the Event Watcher.

• virtual void reset ()
For pure notification events, reset the "signalled" status.

• virtual bool status ()
Query wether the event is in signalled state now.

Protected Attributes
• OS_EVENT_TYPE os_event
• bool os_event_valid
© 2005-2018 HörTech gGmbH, Oldenburg

580

CONTENTS

Private Attributes
• std::set< class Event_Watcher ∗ > observers
A list of all Event_Watcher ( p. 561) instances that this Wakeup_Event ( p. 579) is observed by
(stored here for proper deregistering).

5.147.1

Detailed Description

A base class for asynchronous wakeup events.

5.147.2

5.147.2.1

Constructor & Destructor Documentation

Wakeup_Event()

Wakeup_Event::Wakeup_Event ( )

Event Constructor.
The new event has invalid state.
5.147.2.2 ∼Wakeup_Event()
Wakeup_Event::∼Wakeup_Event ( ) [virtual]

Destructor deregisters from observers.

5.147.3

5.147.3.1

Member Function Documentation

observed_by()

void Wakeup_Event::observed_by (
Event_Watcher ∗ observer ) [virtual]

Called by the Event_Watcher (p. 561) when this event is added to its list of observed events.

© 2005-2018 HörTech gGmbH, Oldenburg

5.147

5.147.3.2

MHA_TCP::Wakeup_Event Class Reference

581

ignored_by()

void Wakeup_Event::ignored_by (
Event_Watcher ∗ observer ) [virtual]

Called by the Event_Watcher (p. 561) when this event is removed from its list of observed
events.

5.147.3.3

get_os_event()

OS_EVENT_TYPE Wakeup_Event::get_os_event ( ) [virtual]

Get necessary information for the Event Watcher.
Reimplemented in MHA_TCP::Timeout_Event (p. 577).

5.147.3.4

reset()

void Wakeup_Event::reset ( ) [virtual]

For pure notification events, reset the "signalled" status.
Reimplemented in MHA_TCP::Async_Notify (p. 550).

5.147.3.5

status()

bool Wakeup_Event::status ( ) [virtual]

Query wether the event is in signalled state now.

5.147.4

5.147.4.1

Member Data Documentation

observers

std::set MHA_TCP::Wakeup_Event::observers [private]

A list of all Event_Watcher (p. 561) instances that this Wakeup_Event (p. 579) is observed by
(stored here for proper deregistering).

© 2005-2018 HörTech gGmbH, Oldenburg

582

5.147.4.2

CONTENTS

os_event

OS_EVENT_TYPE MHA_TCP::Wakeup_Event::os_event [protected]

5.147.4.3

os_event_valid

bool MHA_TCP::Wakeup_Event::os_event_valid [protected]

The documentation for this class was generated from the following files:
• mha_tcp.hh
• mha_tcp.cpp

5.148

mha_tictoc_t Struct Reference

Public Attributes
•
•
•
•

struct timeval tv1
struct timeval tv2
struct timezone tz
float t

5.148.1

5.148.1.1

Member Data Documentation

tv1

struct timeval mha_tictoc_t::tv1

5.148.1.2

tv2

struct timeval mha_tictoc_t::tv2

5.148.1.3

tz

struct timezone mha_tictoc_t::tz

© 2005-2018 HörTech gGmbH, Oldenburg

5.149

mha_wave_t Struct Reference

5.148.1.4

583

t

float mha_tictoc_t::t

The documentation for this struct was generated from the following file:
• mha_profiling.h

5.149

mha_wave_t Struct Reference

Waveform signal structure.
Inheritance diagram for mha_wave_t:
fader_wave::level_adapt_t

gain::scaler_t

MHAMultiSrc::waveform_t

MHA_AC::waveform_t

mon_t

MHAFilter::o1_ar_filter_t

MHAFilter::o1flt_lowpass_t

MHAOvlFilter::fftfb_t

coherence::cohflt_t

MHASignal::async_rmslevel_t

MHAOvlFilter::overlap
_save_filterbank_t

MHAFilter::o1flt_maxtrack_t

MHAFilter::o1flt_mintrack_t

mha_wave_t

MHASignal::waveform_t
MHASignal::loop_wavefragment_t

MHAOvlFilter::overlap
_save_filterbank_analytic_t

fftfilterbank::fftfb
_plug_t

multibandcompressor
::fftfb_plug_t

MHASignal::ringbuffer_t
MHAWindow::bartlett_t
MHASignal::schroeder_t
MHAWindow::blackman_t
MHASndFile::sf_wave_t
MHAWindow::fun_t

MHAWindow::hamming_t

MHAWindow::user_t

MHAWindow::hanning_t

MHAWindow::base_t

speechnoise_t
MHAWindow::rect_t

Public Attributes
• mha_real_t ∗ buf
signal buffer

• unsigned int num_channels
number of channels

• unsigned int num_frames
number of frames in each channel

• mha_channel_info_t ∗ channel_info
detailed channel description

5.149.1

Detailed Description

Waveform signal structure.
This structure contains one fragment of a waveform signal. The member num_frames describes
the number of audio samples in each audio channel.
The field channel_info must be an array of num_channels entries or NULL.
© 2005-2018 HörTech gGmbH, Oldenburg

584

5.149.2

5.149.2.1

CONTENTS

Member Data Documentation

buf

mha_real_t∗ mha_wave_t::buf

signal buffer

5.149.2.2

num_channels

unsigned int mha_wave_t::num_channels

number of channels

5.149.2.3

num_frames

unsigned int mha_wave_t::num_frames

number of frames in each channel

5.149.2.4

channel_info

mha_channel_info_t∗ mha_wave_t::channel_info

detailed channel description
The documentation for this struct was generated from the following file:

• mha.h
© 2005-2018 HörTech gGmbH, Oldenburg

5.150

mhachain::chain_base_t Class Reference

5.150

mhachain::chain_base_t Class Reference

585

Inheritance diagram for mhachain::chain_base_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< mhachain::plugs_t >

MHAPlugin::plugin_t
< mhachain::plugs_t >

mhachain::chain_base_t

mhachain::mhachain_t

Public Member Functions
•
•
•
•
•
•
•

chain_base_t ( algo_comm_t, const std::string &, const std::string &)
void process ( mha_wave_t ∗, mha_wave_t ∗∗)
void process ( mha_spec_t ∗, mha_wave_t ∗∗)
void process ( mha_wave_t ∗, mha_spec_t ∗∗)
void process ( mha_spec_t ∗, mha_spec_t ∗∗)
void prepare ( mhaconfig_t &)
void release ()

Protected Attributes
• MHAParser::bool_t bprofiling
• MHAParser::vstring_t algos
© 2005-2018 HörTech gGmbH, Oldenburg

586

CONTENTS

Private Member Functions
• void update ()

Private Attributes
•
•
•
•
•
•

std::vector< std::string > old_algos
MHAEvents::patchbay_t< mhachain::chain_base_t > patchbay
mhaconfig_t cfin
mhaconfig_t cfout
bool b_prepared
std::string chain

Additional Inherited Members
5.150.1

5.150.1.1

Constructor & Destructor Documentation

chain_base_t()

mhachain::chain_base_t::chain_base_t (
algo_comm_t iac,
const std::string & ichain,
const std::string & ialgo )

5.150.2

5.150.2.1

Member Function Documentation

process() [1/4]

void mhachain::chain_base_t::process (
mha_wave_t ∗ sin,
mha_wave_t ∗∗ sout )

5.150.2.2

process() [2/4]

void mhachain::chain_base_t::process (
mha_spec_t ∗ sin,
mha_wave_t ∗∗ sout )

© 2005-2018 HörTech gGmbH, Oldenburg

5.150

5.150.2.3

mhachain::chain_base_t Class Reference

587

process() [3/4]

void mhachain::chain_base_t::process (
mha_wave_t ∗ sin,
mha_spec_t ∗∗ sout )

5.150.2.4

process() [4/4]

void mhachain::chain_base_t::process (
mha_spec_t ∗ sin,
mha_spec_t ∗∗ sout )

5.150.2.5

prepare()

void mhachain::chain_base_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< mhachain::plugs_t > (p. 884).

5.150.2.6

release()

void mhachain::chain_base_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< mhachain::plugs_t > (p. 885).

5.150.2.7

update()

void mhachain::chain_base_t::update ( ) [private]

5.150.3

5.150.3.1

Member Data Documentation

bprofiling

MHAParser::bool_t mhachain::chain_base_t::bprofiling [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

588

5.150.3.2

CONTENTS

algos

MHAParser::vstring_t mhachain::chain_base_t::algos [protected]

5.150.3.3

old_algos

std::vector mhachain::chain_base_t::old_algos [private]

5.150.3.4

patchbay

MHAEvents::patchbay_t<

mhachain::chain_base_t > mhachain::chain_base_t::patchbay

[private]

5.150.3.5

cfin

mhaconfig_t mhachain::chain_base_t::cfin [private]

5.150.3.6

cfout

mhaconfig_t mhachain::chain_base_t::cfout [private]

5.150.3.7

b_prepared

bool mhachain::chain_base_t::b_prepared [private]

5.150.3.8

chain

std::string mhachain::chain_base_t::chain [private]

The documentation for this class was generated from the following files:
• mha_generic_chain.h
• mha_generic_chain.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.151

mhachain::mhachain_t Class Reference

5.151

mhachain::mhachain_t Class Reference

589

Inheritance diagram for mhachain::mhachain_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< mhachain::plugs_t >

MHAPlugin::plugin_t
< mhachain::plugs_t >

mhachain::chain_base_t

mhachain::mhachain_t

Public Member Functions
• mhachain_t ( algo_comm_t iac, const std::string &ichain, const std::string &ialgo)
Additional Inherited Members
5.151.1

5.151.1.1

Constructor & Destructor Documentation

mhachain_t()

mhachain::mhachain_t::mhachain_t (
algo_comm_t iac,
const std::string & ichain,
const std::string & ialgo )

The documentation for this class was generated from the following file:
• mhachain.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

590

5.152

CONTENTS

mhachain::plugs_t Class Reference

Public Member Functions
• plugs_t (std::vector< std::string > algos, mhaconfig_t cfin, mhaconfig_t cfout, bool
do_prepare, MHAParser::parser_t &p, algo_comm_t iac, std::string ichain, bool use←_profiling)
• ∼plugs_t ()
• void prepare ( mhaconfig_t &)
• void release ()
• void process ( mha_wave_t ∗, mha_spec_t ∗, mha_wave_t ∗∗, mha_spec_t ∗∗)
• bool prepared () const

Private Member Functions
• void alloc_plugs (std::vector< std::string > algos)
• void cleanup_plugs ()
• void update_proc_load ()

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

bool b_prepared
std::vector< PluginLoader::mhapluginloader_t ∗> algos
MHAParser::parser_t & parser
algo_comm_t ac
std::string chain
MHAParser::parser_t profiling
MHAParser::vstring_mon_t prof_algos
MHAParser::vfloat_mon_t prof_init
MHAParser::vfloat_mon_t prof_prepare
MHAParser::vfloat_mon_t prof_release
MHAParser::vfloat_mon_t prof_process
MHAParser::float_mon_t prof_process_tt
MHAParser::vfloat_mon_t prof_process_load
unsigned int proc_cnt
mhaconfig_t prof_cfg
MHAEvents::connector_t< mhachain::plugs_t > prof_load_con
MHAEvents::connector_t< mhachain::plugs_t > prof_tt_con
bool b_use_profiling
mha_platform_tictoc_t tictoc

5.152.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.152

5.152.1.1

mhachain::plugs_t Class Reference

plugs_t()

mhachain::plugs_t::plugs_t (
std::vector< std::string > algos,
mhaconfig_t cfin,
mhaconfig_t cfout,
bool do_prepare,
MHAParser::parser_t & p,
algo_comm_t iac,
std::string ichain,
bool use_profiling )

5.152.1.2 ∼plugs_t()
mhachain::plugs_t::∼plugs_t ( )

5.152.2

5.152.2.1

Member Function Documentation

prepare()

void mhachain::plugs_t::prepare (
mhaconfig_t & tf )

5.152.2.2

release()

void mhachain::plugs_t::release (
void

5.152.2.3

)

process()

void mhachain::plugs_t::process (
mha_wave_t ∗ win,
mha_spec_t ∗ sin,
mha_wave_t ∗∗ wout,
mha_spec_t ∗∗ sout )

© 2005-2018 HörTech gGmbH, Oldenburg

591

592

5.152.2.4

CONTENTS

prepared()

bool mhachain::plugs_t::prepared ( ) const [inline]

5.152.2.5

alloc_plugs()

void mhachain::plugs_t::alloc_plugs (
std::vector< std::string > algos ) [private]

5.152.2.6

cleanup_plugs()

void mhachain::plugs_t::cleanup_plugs ( ) [private]

5.152.2.7

update_proc_load()

void mhachain::plugs_t::update_proc_load ( ) [private]

5.152.3

5.152.3.1

Member Data Documentation

b_prepared

bool mhachain::plugs_t::b_prepared [private]

5.152.3.2

algos

std::vector<

5.152.3.3

PluginLoader::mhapluginloader_t∗ > mhachain::plugs_t::algos [private]

parser

MHAParser::parser_t& mhachain::plugs_t::parser [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.152

mhachain::plugs_t Class Reference

5.152.3.4

593

ac

algo_comm_t mhachain::plugs_t::ac [private]

5.152.3.5

chain

std::string mhachain::plugs_t::chain [private]

5.152.3.6

profiling

MHAParser::parser_t mhachain::plugs_t::profiling [private]

5.152.3.7

prof_algos

MHAParser::vstring_mon_t mhachain::plugs_t::prof_algos [private]

5.152.3.8

prof_init

MHAParser::vfloat_mon_t mhachain::plugs_t::prof_init [private]

5.152.3.9

prof_prepare

MHAParser::vfloat_mon_t mhachain::plugs_t::prof_prepare [private]

5.152.3.10

prof_release

MHAParser::vfloat_mon_t mhachain::plugs_t::prof_release [private]

5.152.3.11

prof_process

MHAParser::vfloat_mon_t mhachain::plugs_t::prof_process [private]

© 2005-2018 HörTech gGmbH, Oldenburg

594

5.152.3.12

CONTENTS

prof_process_tt

MHAParser::float_mon_t mhachain::plugs_t::prof_process_tt [private]

5.152.3.13

prof_process_load

MHAParser::vfloat_mon_t mhachain::plugs_t::prof_process_load [private]

5.152.3.14

proc_cnt

unsigned int mhachain::plugs_t::proc_cnt [private]

5.152.3.15

prof_cfg

mhaconfig_t mhachain::plugs_t::prof_cfg [private]

5.152.3.16

prof_load_con

MHAEvents::connector_t< mhachain::plugs_t> mhachain::plugs_t::prof_load_con [private]

5.152.3.17

prof_tt_con

MHAEvents::connector_t< mhachain::plugs_t> mhachain::plugs_t::prof_tt_con [private]

5.152.3.18

b_use_profiling

bool mhachain::plugs_t::b_use_profiling [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.153

mhaconfig_t Struct Reference

5.152.3.19

595

tictoc

mha_platform_tictoc_t mhachain::plugs_t::tictoc [private]

The documentation for this class was generated from the following files:
• mha_generic_chain.h
• mha_generic_chain.cpp

5.153

mhaconfig_t Struct Reference

MHA prepare configuration structure.
Inheritance diagram for mhaconfig_t:

mhaconfig_t

coherence::cohflt_t

Public Attributes
• unsigned int channels
Number of audio channels.

• unsigned int domain
Signal domain (MHA_WAVEFORM or MHA_SPECTRUM)

• unsigned int fragsize
Fragment size of waveform data.

• unsigned int wndlen
Window length of spectral data.

• unsigned int fftlen
FFT length of spectral data.

• mha_real_t srate
Sampling rate in Hz.
© 2005-2018 HörTech gGmbH, Oldenburg

596

5.153.1

CONTENTS

Detailed Description

MHA prepare configuration structure.
This structure contains information about channel number and domain for input and output
signals of a openMHA Plugin. Each plugin can change any of these parameters, e.g. by
resampling of the signal. The only limitation is that the callback frequency is fixed (except for
the plugins db and dbasync).
Todo Add information on number of bands and on center frequencies, or replace by mha_←audio_descriptor_t (p. 498).

5.153.2

5.153.2.1

Member Data Documentation

channels

unsigned int mhaconfig_t::channels

Number of audio channels.

5.153.2.2

domain

unsigned int mhaconfig_t::domain

Signal domain (MHA_WAVEFORM or MHA_SPECTRUM)

5.153.2.3

fragsize

unsigned int mhaconfig_t::fragsize

Fragment size of waveform data.

5.153.2.4

wndlen

unsigned int mhaconfig_t::wndlen

Window length of spectral data.

© 2005-2018 HörTech gGmbH, Oldenburg

5.154

MHAEvents::connector_base_t Class Reference

5.153.2.5

597

fftlen

unsigned int mhaconfig_t::fftlen

FFT length of spectral data.

5.153.2.6

srate

mha_real_t mhaconfig_t::srate

Sampling rate in Hz.
The documentation for this struct was generated from the following file:

• mha.h

5.154

MHAEvents::connector_base_t Class Reference

Inheritance diagram for MHAEvents::connector_base_t:

MHAEvents::connector
_t< mhachain::plugs_t >

MHAEvents::connector
_t< MHAOvlFilter::fscale
_bw_t >

MHAEvents::connector
_base_t

MHAEvents::connector
_t< MHAOvlFilter::fscale_t >

MHAEvents::connector
_t< MHAParser::mhapluginloader_t >

MHAEvents::connector
_t< receiver_t >

© 2005-2018 HörTech gGmbH, Oldenburg

598

CONTENTS

Public Member Functions
•
•
•
•
•
•

connector_base_t ()
virtual ∼connector_base_t ()
virtual void emit_event ()
virtual void emit_event (const std::string &)
virtual void emit_event (const std::string &, unsigned int, unsigned int)
void emitter_die ()

Protected Attributes
• bool emitter_is_alive

5.154.1

5.154.1.1

Constructor & Destructor Documentation

connector_base_t()

MHAEvents::connector_base_t::connector_base_t ( )

5.154.1.2 ∼connector_base_t()
MHAEvents::connector_base_t::∼connector_base_t ( ) [virtual]

5.154.2

5.154.2.1

Member Function Documentation

emit_event() [1/3]

void MHAEvents::connector_base_t::emit_event ( ) [virtual]

Reimplemented in MHAEvents::connector_t< receiver_t > (p. 601), MHAEvents←::connector_t< MHAOvlFilter::fscale_bw_t > (p. 601), MHAEvents::connector_t< MH←AParser::mhapluginloader_t > (p. 601), MHAEvents::connector_t< mhachain::plugs_t
> (p. 601), and MHAEvents::connector_t< MHAOvlFilter::fscale_t > (p. 601).

© 2005-2018 HörTech gGmbH, Oldenburg

5.154

5.154.2.2

MHAEvents::connector_base_t Class Reference

599

emit_event() [2/3]

void MHAEvents::connector_base_t::emit_event (
const std::string &

) [virtual]

Reimplemented in MHAEvents::connector_t< receiver_t > (p. 601), MHAEvents←::connector_t< MHAOvlFilter::fscale_bw_t > (p. 601), MHAEvents::connector_t< MH←AParser::mhapluginloader_t > (p. 601), MHAEvents::connector_t< mhachain::plugs_t
> (p. 601), and MHAEvents::connector_t< MHAOvlFilter::fscale_t > (p. 601).

5.154.2.3

emit_event() [3/3]

void MHAEvents::connector_base_t::emit_event (
const std::string & ,
unsigned int ,
unsigned int

) [virtual]

Reimplemented in MHAEvents::connector_t< receiver_t > (p. 602), MHAEvents←::connector_t< MHAOvlFilter::fscale_bw_t > (p. 602), MHAEvents::connector_t< MH←AParser::mhapluginloader_t > (p. 602), MHAEvents::connector_t< mhachain::plugs_t
> (p. 602), and MHAEvents::connector_t< MHAOvlFilter::fscale_t > (p. 602).

5.154.2.4

emitter_die()

void MHAEvents::connector_base_t::emitter_die ( )

5.154.3

5.154.3.1

Member Data Documentation

emitter_is_alive

bool MHAEvents::connector_base_t::emitter_is_alive [protected]

The documentation for this class was generated from the following files:
• mha_event_emitter.h
• mha_events.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

600

5.155

CONTENTS

MHAEvents::connector_t< receiver_t > Class Template Reference

Inheritance diagram for MHAEvents::connector_t< receiver_t >:

MHAEvents::connector
_base_t

MHAEvents::connector
_t< receiver_t >

Public Member Functions
• connector_t ( emitter_t ∗, receiver_t ∗, void(receiver_t::∗)())
• connector_t ( emitter_t ∗, receiver_t ∗, void(receiver_t::∗)(const std::string &))
• connector_t ( emitter_t ∗, receiver_t ∗, void(receiver_t::∗)(const std::string &, unsigned
int, unsigned int))
• ∼connector_t ()

Private Member Functions
• void emit_event ()
• void emit_event (const std::string &)
• void emit_event (const std::string &, unsigned int, unsigned int)

Private Attributes
•
•
•
•
•

emitter_t ∗ emitter
receiver_t ∗ receiver
void(receiver_t::∗ eventhandler )()
void(receiver_t::∗ eventhandler_s )(const std::string &)
void(receiver_t::∗ eventhandler_suu )(const std::string &, unsigned int, unsigned int)

Additional Inherited Members
5.155.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.155 MHAEvents::connector_t< receiver_t > Class Template
Reference
5.155.1.1

601

connector_t() [1/3]

template
MHAEvents::connector_t< receiver_t >::

connector_t (

emitter_t ∗ e,
receiver_t ∗ r,
void(receiver_t::∗)() rfun )

5.155.1.2

connector_t() [2/3]

template
MHAEvents::connector_t< receiver_t >::

connector_t (

emitter_t ∗ e,
receiver_t ∗ r,
void(receiver_t::∗)(const std::string &) rfun )

5.155.1.3

connector_t() [3/3]

template
MHAEvents::connector_t< receiver_t >::

connector_t (

emitter_t ∗ e,
receiver_t ∗ r,
void(receiver_t::∗)(const std::string &, unsigned int, unsigned int)
rfun )

5.155.1.4 ∼connector_t()
template
MHAEvents::connector_t< receiver_t >::∼ connector_t ( )

5.155.2

Member Function Documentation

5.155.2.1

emit_event() [1/3]

template
void

MHAEvents::connector_t< receiver_t >::emit_event ( ) [private], [virtual]

Reimplemented from MHAEvents::connector_base_t (p. 598).

© 2005-2018 HörTech gGmbH, Oldenburg

602

5.155.2.2

CONTENTS

emit_event() [2/3]

template
void

MHAEvents::connector_t< receiver_t >::emit_event (
const std::string & arg ) [private], [virtual]

Reimplemented from MHAEvents::connector_base_t (p. 598).

5.155.2.3

emit_event() [3/3]

template
void

MHAEvents::connector_t< receiver_t >::emit_event (
const std::string & arg,
unsigned int arg2,
unsigned int arg3 ) [private], [virtual]

Reimplemented from MHAEvents::connector_base_t (p. 599).

5.155.3

5.155.3.1

Member Data Documentation

emitter

template
emitter_t∗

5.155.3.2

MHAEvents::connector_t< receiver_t >::emitter [private]

receiver

template
receiver_t∗

5.155.3.3

MHAEvents::connector_t< receiver_t >::receiver [private]

eventhandler

template
void(receiver_t::∗

MHAEvents::connector_t< receiver_t >::eventhandler) () [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.156

MHAEvents::emitter_t Class Reference

5.155.3.4

603

eventhandler_s

template
void(receiver_t::∗

MHAEvents::connector_t< receiver_t >::eventhandler_s) (const

std::string &) [private]

5.155.3.5

eventhandler_suu

template
void(receiver_t::∗

MHAEvents::connector_t< receiver_t >::eventhandler_suu) (const

std::string &, unsigned int, unsigned int) [private]

The documentation for this class was generated from the following file:
• mha_events.h

5.156

MHAEvents::emitter_t Class Reference

Class for emitting openMHA events.

Public Member Functions
• ∼emitter_t ()
• void operator() ()
Emit an event without parameter.

• void operator() (const std::string &)
Emit an event with string parameter.

• void operator() (const std::string &, unsigned int, unsigned int)
Emit an event with string parameter and two unsigned int parameters.

• void connect ( connector_base_t ∗)
• void disconnect ( connector_base_t ∗)

Private Attributes
• std::list< connector_base_t ∗ > connections

5.156.1

Detailed Description

Class for emitting openMHA events.
Use the template claas MHAEvents::patchbay_t (p. 605) for connecting to an emitter.
© 2005-2018 HörTech gGmbH, Oldenburg

604

5.156.2

CONTENTS

Constructor & Destructor Documentation

5.156.2.1 ∼emitter_t()
MHAEvents::emitter_t::∼emitter_t ( )

5.156.3

5.156.3.1

Member Function Documentation

operator()() [1/3]

void MHAEvents::emitter_t::operator() ( )

Emit an event without parameter.

5.156.3.2

operator()() [2/3]

void MHAEvents::emitter_t::operator() (
const std::string & arg )

Emit an event with string parameter.

5.156.3.3

operator()() [3/3]

void MHAEvents::emitter_t::operator() (
const std::string & arg,
unsigned int arg2,
unsigned int arg3 )

Emit an event with string parameter and two unsigned int parameters.

5.156.3.4

connect()

void MHAEvents::emitter_t::connect (
connector_base_t ∗ c )

© 2005-2018 HörTech gGmbH, Oldenburg

5.157 MHAEvents::patchbay_t< receiver_t > Class Template
Reference
5.156.3.5

605

disconnect()

void MHAEvents::emitter_t::disconnect (
connector_base_t ∗ c )

5.156.4

Member Data Documentation

5.156.4.1

connections

std::list< connector_base_t∗> MHAEvents::emitter_t::connections [private]

The documentation for this class was generated from the following files:

• mha_event_emitter.h
• mha_events.cpp

5.157

MHAEvents::patchbay_t< receiver_t > Class Template Reference

Patchbay which connects any event emitter with any member function of the parameter class.

Public Member Functions
• ∼patchbay_t ()
• void connect ( emitter_t ∗, receiver_t ∗, void(receiver_t::∗)())
Connect a receiver member function void (receiver_t::∗)() with an event emitter.

• void connect ( emitter_t ∗, receiver_t ∗, void(receiver_t::∗)(const std::string &))
Connect a receiver member function void (receiver_t::∗)(const std::string&) with an event emitter.

• void connect ( emitter_t ∗, receiver_t ∗, void(receiver_t::∗)(const std::string &, unsigned
int, unsigned int))

Private Attributes
• std::list< connector_t< receiver_t > ∗ > cons
© 2005-2018 HörTech gGmbH, Oldenburg

606

5.157.1

CONTENTS

Detailed Description

template
class MHAEvents::patchbay_t< receiver_t >
Patchbay which connects any event emitter with any member function of the parameter class.
The connections created by the connect() (p. 606) function are hold until the destructor is
called. To avoid access to invalid function pointers, it is required to destruct the patchbay
before the receiver, usually by declaring the patchbay as a member of the receiver.
The receiver can be any claas or structure; the event callback can be either a member function
without arguments or with const std::string& argument.

5.157.2

Constructor & Destructor Documentation

5.157.2.1 ∼patchbay_t()
template
MHAEvents::patchbay_t< receiver_t >::∼ patchbay_t ( )

5.157.3

Member Function Documentation

5.157.3.1

connect() [1/3]

template
void

MHAEvents::patchbay_t< receiver_t >::connect (
emitter_t ∗ e,
receiver_t ∗ r,
void(receiver_t::∗)() rfun )

Connect a receiver member function void (receiver_t::∗)() with an event emitter.
Create a connection.
The connection is removed when the patchbay is destructed.
Parameters
e
r
rfun

Pointer to an event emitter
Pointer to the receiver
Pointer to a member function of the receiver class
© 2005-2018 HörTech gGmbH, Oldenburg

5.157 MHAEvents::patchbay_t< receiver_t > Class Template
Reference

5.157.3.2

607

connect() [2/3]

template
void

MHAEvents::patchbay_t< receiver_t >::connect (
emitter_t ∗ e,
receiver_t ∗ r,
void(receiver_t::∗)(const std::string &) rfun )

Connect a receiver member function void (receiver_t::∗)(const std::string&) with an event emitter.
Create a connection.
The connection is removed when the patchbay is destructed.
Parameters
Pointer to an event emitter
Pointer to the receiver
Pointer to a member function of the receiver class

e
r
rfun

5.157.3.3

connect() [3/3]

template
void

MHAEvents::patchbay_t< receiver_t >::connect (
emitter_t ∗ e,
receiver_t ∗ r,
void(receiver_t::∗)(const std::string &, unsigned int, unsigned int)

rfun )

5.157.4

5.157.4.1

Member Data Documentation

cons

template
std::list< connector_t∗>

MHAEvents::patchbay_t< receiver_t >::cons

[private]

The documentation for this class was generated from the following file:
• mha_events.h
© 2005-2018 HörTech gGmbH, Oldenburg

608

5.158

CONTENTS

MHAFilter::adapt_filter_param_t Class Reference

Public Member Functions
• adapt_filter_param_t ( mha_real_t imu, bool ierr_in)

Public Attributes
• mha_real_t mu
• bool err_in

5.158.1

5.158.1.1

Constructor & Destructor Documentation

adapt_filter_param_t()

MHAFilter::adapt_filter_param_t::adapt_filter_param_t (
mha_real_t imu,
bool ierr_in )

5.158.2

5.158.2.1

Member Data Documentation

mu

mha_real_t MHAFilter::adapt_filter_param_t::mu

5.158.2.2

err_in

bool MHAFilter::adapt_filter_param_t::err_in

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.159

MHAFilter::adapt_filter_state_t Class Reference

5.159

MHAFilter::adapt_filter_state_t Class Reference

609

Public Member Functions
• adapt_filter_state_t (int ntaps, int nchannels)
• void filter ( mha_wave_t y, mha_wave_t e, mha_wave_t x, mha_wave_t d, mha_←real_t mu, bool err_in)

Private Attributes
•
•
•
•
•
•

int ntaps
int nchannels
MHASignal::waveform_t
MHASignal::waveform_t
MHASignal::waveform_t
MHASignal::waveform_t

5.159.1

5.159.1.1

W
X
od
oy

Constructor & Destructor Documentation

adapt_filter_state_t()

MHAFilter::adapt_filter_state_t::adapt_filter_state_t (
int ntaps,
int nchannels )

5.159.2

5.159.2.1

Member Function Documentation

filter()

void MHAFilter::adapt_filter_state_t::filter (
mha_wave_t y,
mha_wave_t e,
mha_wave_t x,
mha_wave_t d,
mha_real_t mu,
bool err_in )

5.159.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

610

5.159.3.1

CONTENTS

ntaps

int MHAFilter::adapt_filter_state_t::ntaps [private]

5.159.3.2

nchannels

int MHAFilter::adapt_filter_state_t::nchannels [private]

5.159.3.3

W

MHASignal::waveform_t MHAFilter::adapt_filter_state_t::W [private]

5.159.3.4

X

MHASignal::waveform_t MHAFilter::adapt_filter_state_t::X [private]

5.159.3.5

od

MHASignal::waveform_t MHAFilter::adapt_filter_state_t::od [private]

5.159.3.6

oy

MHASignal::waveform_t MHAFilter::adapt_filter_state_t::oy [private]

The documentation for this class was generated from the following files:

• mha_filter.hh
• mha_filter.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.160

MHAFilter::adapt_filter_t Class Reference

5.160

MHAFilter::adapt_filter_t Class Reference

611

Adaptive filter.
Inheritance diagram for MHAFilter::adapt_filter_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< adapt_filter_state_t >

MHAFilter::adapt_filter_t

MHAPlugin::config_t
< adapt_filter_param_t >

Public Member Functions
• adapt_filter_t (std::string)
• void filter ( mha_wave_t y, mha_wave_t e, mha_wave_t x, mha_wave_t d)
• void set_channelcnt (unsigned int)

Private Member Functions
• void update_mu ()
• void update_ntaps ()

Private Attributes
•
•
•
•
•

MHAParser::float_t mu
MHAParser::int_t ntaps
MHAParser::bool_t err_in
MHAEvents::patchbay_t< adapt_filter_t > connector
unsigned int nchannels

Additional Inherited Members
5.160.1

Detailed Description

Adaptive filter.
© 2005-2018 HörTech gGmbH, Oldenburg

612

5.160.2

5.160.2.1

CONTENTS

Constructor & Destructor Documentation

adapt_filter_t()

MHAFilter::adapt_filter_t::adapt_filter_t (
std::string help )

5.160.3

5.160.3.1

Member Function Documentation

filter()

void MHAFilter::adapt_filter_t::filter (
mha_wave_t y,
mha_wave_t e,
mha_wave_t x,
mha_wave_t d )

5.160.3.2

set_channelcnt()

void MHAFilter::adapt_filter_t::set_channelcnt (
unsigned int nch )

5.160.3.3

update_mu()

void MHAFilter::adapt_filter_t::update_mu ( ) [private]

5.160.3.4

update_ntaps()

void MHAFilter::adapt_filter_t::update_ntaps ( ) [private]

5.160.4

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.161 MHAFilter::blockprocessing_polyphase_resampling_t Class
Reference
613
5.160.4.1

mu

MHAParser::float_t MHAFilter::adapt_filter_t::mu [private]

5.160.4.2

ntaps

MHAParser::int_t MHAFilter::adapt_filter_t::ntaps [private]

5.160.4.3

err_in

MHAParser::bool_t MHAFilter::adapt_filter_t::err_in [private]

5.160.4.4

connector

MHAEvents::patchbay_t< adapt_filter_t> MHAFilter::adapt_filter_t::connector [private]

5.160.4.5

nchannels

unsigned int MHAFilter::adapt_filter_t::nchannels [private]

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.161

MHAFilter::blockprocessing_polyphase_resampling_t Class Reference

A class that does polyphase resampling and takes into account block processing.

Public Member Functions
• blockprocessing_polyphase_resampling_t (float source_srate, unsigned source_←fragsize, float target_srate, unsigned target_fragsize, float nyquist_ratio, float irslen, unsigned nchannels, bool add_delay)
Contructs a polyphase resampling filter that can be used for blockprocessing with the given
parameters.

• virtual ∼blockprocessing_polyphase_resampling_t ()
• void write ( mha_wave_t &signal)
Write signal to the ringbuffer.

• void read ( mha_wave_t &signal)
Read resampled signal.

• bool can_read () const
Checks if the resampling ring buffer can produce another output signal block.
© 2005-2018 HörTech gGmbH, Oldenburg

614

CONTENTS

Private Attributes
•
•
•
•

polyphase_resampling_t ∗ resampling
unsigned fragsize_in
unsigned fragsize_out
unsigned num_channels

5.161.1

Detailed Description

A class that does polyphase resampling and takes into account block processing.

5.161.2

5.161.2.1

Constructor & Destructor Documentation

blockprocessing_polyphase_resampling_t()

MHAFilter::blockprocessing_polyphase_resampling_t::blockprocessing_polyphase_resampling←_t (
float source_srate,
unsigned source_fragsize,
float target_srate,
unsigned target_fragsize,
float nyquist_ratio,
float irslen,
unsigned nchannels,
bool add_delay )

Contructs a polyphase resampling filter that can be used for blockprocessing with the given
parameters.
Parameters
source_srate

Source sampling rate / Hz

source_fragsize

Fragment size of incoming audio blocks / frames at source_srate

target_srate

Target sampling rate / Hz

target_fragsize

Fragment size of produced audio blocks / frames at target_srate

nyquist_ratio

Low pass filter cutoff frequency relative to the nyquist frequency of the
smaller of the two sampling rates. Example values: 0.8, 0.9

irslen

Impulse response length used for low pass filtering / s

nchannels
add_delay

Number of audio channels
To avoid underruns, a delay is generally necessary for round trip block
size adaptations. It is only necessary to add this delay to one of the two
resampling chains. Set this parameter to true for the first resampling
object of a round trip pair. It will add the necessary delay, and calculate
the size of the ring buffer appropriately, When set to false, only the
ringbuffer size will be set sufficiently.
© 2005-2018 HörTech gGmbH, Oldenburg

5.161 MHAFilter::blockprocessing_polyphase_resampling_t Class
Reference
615

5.161.2.2 ∼blockprocessing_polyphase_resampling_t()
virtual MHAFilter::blockprocessing_polyphase_resampling_t::∼blockprocessing_polyphase←_resampling_t ( ) [inline], [virtual]

5.161.3

Member Function Documentation

5.161.3.1

write()

void MHAFilter::blockprocessing_polyphase_resampling_t::write (
mha_wave_t & signal )

Write signal to the ringbuffer.
Parameters
signal

input signal in original sampling rate

Exceptions
MHA_Error ( p. 522)

5.161.3.2

Raises exception if there is not enough room, if the number of
channels does not match, or if the number of frames is not equal to
the number specified in the constructor

read()

void MHAFilter::blockprocessing_polyphase_resampling_t::read (
mha_wave_t & signal )

Read resampled signal.
Will perform the resampling and remove no longer needed samples from the input buffer.
Parameters
signal

buffer to write the resampled signal to.

© 2005-2018 HörTech gGmbH, Oldenburg

616

CONTENTS

Exceptions
MHA_Error ( p. 522)

5.161.3.3

Raises exception if there is not enough input signal, if the number of
channels of frames does not match.

can_read()

bool MHAFilter::blockprocessing_polyphase_resampling_t::can_read ( ) const [inline]

Checks if the resampling ring buffer can produce another output signal block.

5.161.4

5.161.4.1

Member Data Documentation

resampling

polyphase_resampling_t∗ MHAFilter::blockprocessing_polyphase_resampling_t::resampling
[private]

5.161.4.2

fragsize_in

unsigned MHAFilter::blockprocessing_polyphase_resampling_t::fragsize_in [private]

5.161.4.3

fragsize_out

unsigned MHAFilter::blockprocessing_polyphase_resampling_t::fragsize_out [private]

5.161.4.4

num_channels

unsigned MHAFilter::blockprocessing_polyphase_resampling_t::num_channels [private]

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.162

MHAFilter::complex_bandpass_t Class Reference

5.162

MHAFilter::complex_bandpass_t Class Reference

617

Complex bandpass filter.

Public Member Functions
•

complex_bandpass_t (std::vector<
complex_t > B)

mha_complex_t > A, std::vector<

mha_←-

Constructor with filter coefficients (one per channel)

•
•
•
•

void
void
void
void

set_state ( mha_real_t val)
set_state (std::vector< mha_real_t > val)
set_state ( mha_complex_t val)
set_weights (std::vector< mha_complex_t > new_B)

Allow to modify the input weights at a later stage.

• std::vector< mha_complex_t > get_weights () const
• void filter (const mha_wave_t &X, mha_spec_t &Y)
Filter method for real value input.

• void filter (const mha_wave_t &X, mha_wave_t &Yre, mha_wave_t &Yim)
Filter method for real value input.

• void filter (const mha_spec_t &X, mha_spec_t &Y)
Filter method for complex value input.

• void filter (const mha_wave_t &Xre, const mha_wave_t &Xim, mha_wave_t &Yre,
mha_wave_t &Yim)
Filter method for complex value input.

• std::string inspect () const

Static Public Member Functions
• static std::vector< mha_complex_t > creator_A (std::vector< mha_real_t > cf, std←::vector< mha_real_t > bw, mha_real_t srate, unsigned int order)
• static std::vector< mha_complex_t > creator_B (std::vector< mha_complex_t > A,
unsigned int order)

Private Attributes
• std::vector< mha_complex_t > A_
• std::vector< mha_complex_t > B_
• std::vector< mha_complex_t > Yn

5.162.1

Detailed Description

Complex bandpass filter.
© 2005-2018 HörTech gGmbH, Oldenburg

618

5.162.2

5.162.2.1

CONTENTS

Constructor & Destructor Documentation

complex_bandpass_t()

MHAFilter::complex_bandpass_t::complex_bandpass_t (
std::vector<

mha_complex_t > A,

std::vector<

mha_complex_t > B )

Constructor with filter coefficients (one per channel)
Parameters
A
B

complex filter coefficients, one per band
complex weights

5.162.3

5.162.3.1

Member Function Documentation

creator_A()

std::vector<

mha_complex_t > MHAFilter::complex_bandpass_t::creator_A (

std::vector<

mha_real_t > cf,

std::vector<

mha_real_t > bw,

mha_real_t srate,
unsigned int order ) [static]

5.162.3.2

creator_B()

std::vector<

mha_complex_t > MHAFilter::complex_bandpass_t::creator_B (

std::vector<

mha_complex_t > A,

unsigned int order ) [static]

5.162.3.3

set_state() [1/3]

void MHAFilter::complex_bandpass_t::set_state (
mha_real_t val )

© 2005-2018 HörTech gGmbH, Oldenburg

5.162

MHAFilter::complex_bandpass_t Class Reference

5.162.3.4

619

set_state() [2/3]

void MHAFilter::complex_bandpass_t::set_state (
std::vector<

5.162.3.5

mha_real_t > val )

set_state() [3/3]

void MHAFilter::complex_bandpass_t::set_state (
mha_complex_t val )

5.162.3.6

set_weights()

void MHAFilter::complex_bandpass_t::set_weights (
std::vector<

mha_complex_t > new_B )

Allow to modify the input weights at a later stage.

5.162.3.7

get_weights()

std::vector< mha_complex_t> MHAFilter::complex_bandpass_t::get_weights ( ) const
[inline]

5.162.3.8

filter() [1/4]

void MHAFilter::complex_bandpass_t::filter (
const

mha_wave_t & X,

mha_spec_t & Y ) [inline]

Filter method for real value input.

5.162.3.9

filter() [2/4]

void MHAFilter::complex_bandpass_t::filter (
const

mha_wave_t & X,

mha_wave_t & Yre,
mha_wave_t & Yim ) [inline]

Filter method for real value input.

© 2005-2018 HörTech gGmbH, Oldenburg

620

5.162.3.10

CONTENTS

filter() [3/4]

void MHAFilter::complex_bandpass_t::filter (
const

mha_spec_t & X,

mha_spec_t & Y ) [inline]

Filter method for complex value input.

5.162.3.11

filter() [4/4]

void MHAFilter::complex_bandpass_t::filter (
const

mha_wave_t & Xre,

const

mha_wave_t & Xim,

mha_wave_t & Yre,
mha_wave_t & Yim ) [inline]

Filter method for complex value input.

5.162.3.12

inspect()

std::string MHAFilter::complex_bandpass_t::inspect ( ) const [inline]

5.162.4

5.162.4.1

Member Data Documentation

A_

std::vector< mha_complex_t> MHAFilter::complex_bandpass_t::A_ [private]

5.162.4.2

B_

std::vector< mha_complex_t> MHAFilter::complex_bandpass_t::B_ [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.163

MHAFilter::diff_t Class Reference

5.162.4.3

621

Yn

std::vector< mha_complex_t> MHAFilter::complex_bandpass_t::Yn [private]

The documentation for this class was generated from the following files:
• complex_filter.h
• complex_filter.cpp

5.163

MHAFilter::diff_t Class Reference

Differentiator class (non-normalized)
Inheritance diagram for MHAFilter::diff_t:

MHAFilter::filter_t

MHAFilter::diff_t

Public Member Functions
• diff_t (unsigned int ch)

Additional Inherited Members
5.163.1

Detailed Description

Differentiator class (non-normalized)

5.163.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

622

5.163.2.1

CONTENTS

diff_t()

MHAFilter::diff_t::diff_t (
unsigned int ch )

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.164

MHAFilter::fftfilter_t Class Reference

FFT based FIR filter implementation.
Inheritance diagram for MHAFilter::fftfilter_t:

MHAFilter::fftfilter_t

MHAFilter::resampling
_filter_t

Public Member Functions
• fftfilter_t (unsigned int fragsize, unsigned int channels, unsigned int fftlen)
Constructor.

• ∼fftfilter_t ()
• void update_coeffs (const mha_wave_t ∗pwIRS)
Update the set of coefficients.

• void filter (const mha_wave_t ∗pwIn, mha_wave_t ∗∗ppwOut, const mha_wave_t
∗pwIRS)
Apply filter with changing coefficients to a waveform fragment.

• void filter (const mha_wave_t ∗pwIn, mha_wave_t ∗∗ppwOut)
Apply filter to waveform fragment, without changing the coefficients.

• void filter (const mha_wave_t ∗pwIn, mha_wave_t ∗∗ppwOut, const mha_spec_t
∗psWeights)
Apply filter with changing coefficients to a waveform fragment.
© 2005-2018 HörTech gGmbH, Oldenburg

5.164

MHAFilter::fftfilter_t Class Reference

Private Attributes
•
•
•
•
•
•
•
•
•
•
•

unsigned int fragsize
unsigned int channels
unsigned int fftlen
MHASignal::waveform_t
mha_wave_t wInput
MHASignal::waveform_t
mha_wave_t wOutput
MHASignal::spectrum_t
MHASignal::spectrum_t
MHASignal::waveform_t
mha_fft_t fft

5.164.1

wInput_fft
wOutput_fft
sInput
sWeights
wIRS_fft

Detailed Description

FFT based FIR filter implementation.
The maximal number of coefficients can be FFT length - fragsize + 1.

5.164.2

Constructor & Destructor Documentation

5.164.2.1

fftfilter_t()

MHAFilter::fftfilter_t::fftfilter_t (
unsigned int fragsize,
unsigned int channels,
unsigned int fftlen )

Constructor.
Parameters
fragsize

Number of frames expected in input signal (each cycle).

channels

Number of channels expected in input signal.

fftlen

FFT length of filter.

5.164.2.2 ∼fftfilter_t()
MHAFilter::fftfilter_t::∼fftfilter_t ( )

© 2005-2018 HörTech gGmbH, Oldenburg

623

624

5.164.3

CONTENTS

Member Function Documentation

5.164.3.1

update_coeffs()

void MHAFilter::fftfilter_t::update_coeffs (
const

mha_wave_t ∗ pwIRS )

Update the set of coefficients.
Parameters
Coefficients structure

pwIRS

Note
The number of channels in h must match the number of channels given in the constructor.
The filter length is limited to fftlen-fragsize+1 (longer IRS will be shortened).

5.164.3.2

filter() [1/3]

void MHAFilter::fftfilter_t::filter (
const

mha_wave_t ∗ pwIn,

mha_wave_t ∗∗ ppwOut,
const

mha_wave_t ∗ pwIRS )

Apply filter with changing coefficients to a waveform fragment.
Parameters
pw←In

Input signal pointer.

Return values
ppwOut

Pointer to output signal pointer, will be set to a valid signal.

Parameters
pwIRS

Pointer to FIR coefficients structure.

© 2005-2018 HörTech gGmbH, Oldenburg

5.164

MHAFilter::fftfilter_t Class Reference

5.164.3.3

filter() [2/3]

void MHAFilter::fftfilter_t::filter (
const

mha_wave_t ∗ pwIn,

mha_wave_t ∗∗ ppwOut )

Apply filter to waveform fragment, without changing the coefficients.
Parameters
pw←In

Input signal pointer.

Return values
Pointer to output signal pointer, will be set to a valid signal

ppwOut

5.164.3.4

filter() [3/3]

void MHAFilter::fftfilter_t::filter (
const

mha_wave_t ∗ pwIn,

mha_wave_t ∗∗ ppwOut,
const

mha_spec_t ∗ psWeights )

Apply filter with changing coefficients to a waveform fragment.
Parameters
pw←In

Input signal pointer.

Return values
ppwOut

Pointer to output signal pointer, will be set to a valid signal.

Parameters
psWeights

5.164.4

Pointer to filter weights structure.

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

625

626

5.164.4.1

CONTENTS

fragsize

unsigned int MHAFilter::fftfilter_t::fragsize [private]

5.164.4.2

channels

unsigned int MHAFilter::fftfilter_t::channels [private]

5.164.4.3

fftlen

unsigned int MHAFilter::fftfilter_t::fftlen [private]

5.164.4.4

wInput_fft

MHASignal::waveform_t MHAFilter::fftfilter_t::wInput_fft [private]

5.164.4.5

wInput

mha_wave_t MHAFilter::fftfilter_t::wInput [private]

5.164.4.6

wOutput_fft

MHASignal::waveform_t MHAFilter::fftfilter_t::wOutput_fft [private]

5.164.4.7

wOutput

mha_wave_t MHAFilter::fftfilter_t::wOutput [private]

5.164.4.8

sInput

MHASignal::spectrum_t MHAFilter::fftfilter_t::sInput [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.165

MHAFilter::fftfilterbank_t Class Reference

5.164.4.9

627

sWeights

MHASignal::spectrum_t MHAFilter::fftfilter_t::sWeights [private]

5.164.4.10

wIRS_fft

MHASignal::waveform_t MHAFilter::fftfilter_t::wIRS_fft [private]

5.164.4.11

fft

mha_fft_t MHAFilter::fftfilter_t::fft [private]

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.165

MHAFilter::fftfilterbank_t Class Reference

FFT based FIR filterbank implementation.
Inheritance diagram for MHAFilter::fftfilterbank_t:

MHAFilter::fftfilterbank_t

MHAOvlFilter::overlap
_save_filterbank_t

MHAOvlFilter::overlap
_save_filterbank_analytic_t

fftfilterbank::fftfb
_plug_t

© 2005-2018 HörTech gGmbH, Oldenburg

628

CONTENTS

Public Member Functions
• fftfilterbank_t (unsigned int fragsize, unsigned int inputchannels, unsigned int firchannels, unsigned int fftlen)
Constructor.

• ∼fftfilterbank_t ()
• void update_coeffs (const mha_wave_t ∗h)
Update the set of coefficients.

• void filter (const mha_wave_t ∗s_in, mha_wave_t ∗∗s_out, const mha_wave_t ∗h)
Apply filter with changing coefficients to a waveform fragment.

• void filter (const mha_wave_t ∗s_in, mha_wave_t ∗∗s_out)
Apply filter to waveform fragment, without changing the coefficients.

• const mha_wave_t ∗ get_irs () const
Return the current IRS.

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•

unsigned int fragsize
unsigned int inputchannels
unsigned int firchannels
unsigned int outputchannels
unsigned int fftlen
MHASignal::waveform_t hw
MHASignal::spectrum_t Hs
MHASignal::waveform_t xw
MHASignal::spectrum_t Xs
MHASignal::waveform_t yw
MHASignal::spectrum_t Ys
MHASignal::waveform_t yw_temp
MHASignal::waveform_t tail
mha_fft_t fft

5.165.1

Detailed Description

FFT based FIR filterbank implementation.
This class convolves n input channels with m filter coefficient sets and returns n∗m output
channels.
The maximal number of coefficients can be FFT length - fragsize + 1.

5.165.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.165

MHAFilter::fftfilterbank_t Class Reference

5.165.2.1

629

fftfilterbank_t()

MHAFilter::fftfilterbank_t::fftfilterbank_t (
unsigned int fragsize,
unsigned int inputchannels,
unsigned int firchannels,
unsigned int fftlen )

Constructor.
Parameters
fragsize

Number of frames expected in input signal (each cycle).

inputchannels

Number of channels expected in input signal.

firchannels

Number of channels expected in FIR filter coefficients (= number of bands).

fftlen

FFT length of filter.

The number of output channels is inputchannels∗firchannels.
5.165.2.2 ∼fftfilterbank_t()
MHAFilter::fftfilterbank_t::∼fftfilterbank_t ( )

5.165.3

5.165.3.1

Member Function Documentation

update_coeffs()

void MHAFilter::fftfilterbank_t::update_coeffs (
const

mha_wave_t ∗ h )

Update the set of coefficients.
Parameters
h

Coefficients structure

Note
The number of channels in h must match the number of channels given in the constructor,
and the number of frames can not be more than fftlen-fragsize+1.

© 2005-2018 HörTech gGmbH, Oldenburg

630

5.165.3.2

CONTENTS

filter() [1/2]

void MHAFilter::fftfilterbank_t::filter (
const

mha_wave_t ∗ s_in,

mha_wave_t ∗∗ s_out,
const

mha_wave_t ∗ h )

Apply filter with changing coefficients to a waveform fragment.
Parameters
Input signal pointer.

s←_in

Return values
s_out

Pointer to output signal pointer, will be set to a valid signal

Parameters
h

FIR coefficients

5.165.3.3

filter() [2/2]

void MHAFilter::fftfilterbank_t::filter (
const

mha_wave_t ∗ s_in,

mha_wave_t ∗∗ s_out )

Apply filter to waveform fragment, without changing the coefficients.
Parameters
s←_in

Input signal pointer.

Return values
s_out

5.165.3.4
const

Pointer to output signal pointer, will be set to a valid signal

get_irs()
mha_wave_t∗ MHAFilter::fftfilterbank_t::get_irs ( ) const [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

5.165

MHAFilter::fftfilterbank_t Class Reference

631

Return the current IRS.

5.165.4

5.165.4.1

Member Data Documentation

fragsize

unsigned int MHAFilter::fftfilterbank_t::fragsize [private]

5.165.4.2

inputchannels

unsigned int MHAFilter::fftfilterbank_t::inputchannels [private]

5.165.4.3

firchannels

unsigned int MHAFilter::fftfilterbank_t::firchannels [private]

5.165.4.4

outputchannels

unsigned int MHAFilter::fftfilterbank_t::outputchannels [private]

5.165.4.5

fftlen

unsigned int MHAFilter::fftfilterbank_t::fftlen [private]

5.165.4.6

hw

MHASignal::waveform_t MHAFilter::fftfilterbank_t::hw [private]

5.165.4.7

Hs

MHASignal::spectrum_t MHAFilter::fftfilterbank_t::Hs [private]

© 2005-2018 HörTech gGmbH, Oldenburg

632

5.165.4.8

CONTENTS

xw

MHASignal::waveform_t MHAFilter::fftfilterbank_t::xw [private]

5.165.4.9

Xs

MHASignal::spectrum_t MHAFilter::fftfilterbank_t::Xs [private]

5.165.4.10

yw

MHASignal::waveform_t MHAFilter::fftfilterbank_t::yw [private]

5.165.4.11

Ys

MHASignal::spectrum_t MHAFilter::fftfilterbank_t::Ys [private]

5.165.4.12

yw_temp

MHASignal::waveform_t MHAFilter::fftfilterbank_t::yw_temp [private]

5.165.4.13

tail

MHASignal::waveform_t MHAFilter::fftfilterbank_t::tail [private]

5.165.4.14

fft

mha_fft_t MHAFilter::fftfilterbank_t::fft [private]

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.166

MHAFilter::filter_t Class Reference

5.166

MHAFilter::filter_t Class Reference

633

Generic IIR filter class.
Inheritance diagram for MHAFilter::filter_t:

MHAFilter::filter_t

MHAFilter::diff_t

MHAFilter::iir_filter
_state_t

Public Member Functions
• filter_t (unsigned int ch, unsigned int lena, unsigned int lenb)
Constructor.

• filter_t (unsigned int ch, const std::vector< mha_real_t > &vA, const std::vector<
mha_real_t > &vB)
Constructor with initialization of coefficients.

• filter_t (const MHAFilter::filter_t &src)
• ∼filter_t ()
• void filter ( mha_wave_t ∗out, const mha_wave_t ∗in)
Filter all channels in a waveform structure.

• void filter ( mha_real_t ∗dest, const mha_real_t ∗src, unsigned int dframes, unsigned int frame_dist, unsigned int channel_dist, unsigned int channel_begin, unsigned
int channel_end)
Filter parts of a waveform structure.

• mha_real_t filter ( mha_real_t x, unsigned int ch)
Filter one sample.

• unsigned int get_len_A () const
Return length of recursive coefficients.

• unsigned int get_len_B () const
Return length of non-recursive coefficients.

Public Attributes
• double ∗ A
Pointer to recursive coefficients.

• double ∗ B
Pointer to non-recursive coefficients.
© 2005-2018 HörTech gGmbH, Oldenburg

634

CONTENTS

Private Attributes
•
•
•
•
•

unsigned int len_A
unsigned int len_B
unsigned int len
unsigned int channels
double ∗ state

5.166.1

Detailed Description

Generic IIR filter class.
This class implements a generic multichannel IIR filter. It is realized as direct form II. It can
work on any float array or on mha_wave_t (p. 583) structs. The filter coefficients can be directly
accessed.
Todo Implement a more robust filter form.

5.166.2

5.166.2.1

Constructor & Destructor Documentation

filter_t() [1/3]

MHAFilter::filter_t::filter_t (
unsigned int ch,
unsigned int lena,
unsigned int lenb )

Constructor.
Parameters
ch
lena
lenb

5.166.2.2

Number of channels
Number of recursive coefficients
Number of non-recursive coefficients

filter_t() [2/3]

MHAFilter::filter_t::filter_t (
unsigned int ch,

© 2005-2018 HörTech gGmbH, Oldenburg

5.166

MHAFilter::filter_t Class Reference

const std::vector<

mha_real_t > & vA,

const std::vector<

mha_real_t > & vB )

Constructor with initialization of coefficients.
Parameters
ch
vA
vB

Number of channels.
Recursive coefficients.
Non-recursive coefficients.

5.166.2.3

filter_t() [3/3]

MHAFilter::filter_t::filter_t (
const

MHAFilter::filter_t & src )

5.166.2.4 ∼filter_t()
MHAFilter::filter_t::∼filter_t ( )

5.166.3

Member Function Documentation

5.166.3.1

filter() [1/3]

void MHAFilter::filter_t::filter (
mha_wave_t ∗ out,
const

mha_wave_t ∗ in )

Filter all channels in a waveform structure.
Parameters
out
in

Output signal
Input signal

© 2005-2018 HörTech gGmbH, Oldenburg

635

636

5.166.3.2

CONTENTS

filter() [2/3]

void MHAFilter::filter_t::filter (
mha_real_t ∗ dest,
mha_real_t ∗ src,

const

unsigned int dframes,
unsigned int frame_dist,
unsigned int channel_dist,
unsigned int channel_begin,
unsigned int channel_end )

Filter parts of a waveform structure.
Parameters
dest
src

Output signal.
Input signal.

dframes
frame_dist
channel_dist
channel_begin

Number of frames to be filtered.
Index distance between frames of one channel
Index distance between audio channels
Number of first channel to be processed

channel_end

Number of last channel to be processed

5.166.3.3

filter() [3/3]

mha_real_t MHAFilter::filter_t::filter (
mha_real_t x,
unsigned int ch )

Filter one sample.
Parameters
x

Input value

ch

Channel number to use in filter state

5.166.3.4

get_len_A()

unsigned int MHAFilter::filter_t::get_len_A ( ) const [inline]

Return length of recursive coefficients.

© 2005-2018 HörTech gGmbH, Oldenburg

5.166

5.166.3.5

MHAFilter::filter_t Class Reference

get_len_B()

unsigned int MHAFilter::filter_t::get_len_B ( ) const [inline]

Return length of non-recursive coefficients.

5.166.4

5.166.4.1

Member Data Documentation

A

double∗ MHAFilter::filter_t::A

Pointer to recursive coefficients.

5.166.4.2

B

double∗ MHAFilter::filter_t::B

Pointer to non-recursive coefficients.

5.166.4.3

len_A

unsigned int MHAFilter::filter_t::len_A [private]

5.166.4.4

len_B

unsigned int MHAFilter::filter_t::len_B [private]

5.166.4.5

len

unsigned int MHAFilter::filter_t::len [private]

© 2005-2018 HörTech gGmbH, Oldenburg

637

638

5.166.4.6

CONTENTS

channels

unsigned int MHAFilter::filter_t::channels [private]

5.166.4.7

state

double∗ MHAFilter::filter_t::state [private]

The documentation for this class was generated from the following files:

• mha_filter.hh
• mha_filter.cpp

5.167

MHAFilter::gamma_flt_t Class Reference

Class for gammatone filter.

Public Member Functions
• gamma_flt_t (std::vector< mha_real_t > cf, std::vector< mha_real_t > bw, mha_←real_t srate, unsigned int order)
Constructor.

• ∼gamma_flt_t ()
• void operator() ( mha_wave_t &X, mha_spec_t &Y)
Filter method.

• void operator() ( mha_wave_t &X, mha_wave_t &Yre, mha_wave_t &Yim)
Filter method.

• void operator() ( mha_wave_t &Yre, mha_wave_t &Yim, unsigned int stage)
Filter method for specific stage.

•
•
•
•
•
•
•
•
•

void phase_correction (unsigned int desired_delay, unsigned int inchannels)
void set_weights (std::vector< mha_complex_t > new_B)
void set_weights (unsigned int stage, std::vector< mha_complex_t > new_B)
std::vector< mha_complex_t > get_weights () const
std::vector< mha_complex_t > get_weights (unsigned int stage) const
std::vector< mha_real_t > get_resynthesis_gain () const
void reset_state ()
const std::vector< mha_complex_t > & get_A ()
std::string inspect () const
© 2005-2018 HörTech gGmbH, Oldenburg

5.167

MHAFilter::gamma_flt_t Class Reference

Private Attributes
•
•
•
•
•
•
•
•

std::vector< mha_complex_t > A
std::vector< complex_bandpass_t > GF
MHASignal::delay_t ∗ delay
std::vector< int > envelope_delay
std::vector< mha_real_t > resynthesis_gain
std::vector< mha_real_t > cf_
std::vector< mha_real_t > bw_
mha_real_t srate_

5.167.1

Detailed Description

Class for gammatone filter.

5.167.2

5.167.2.1

Constructor & Destructor Documentation

gamma_flt_t()

MHAFilter::gamma_flt_t::gamma_flt_t (
std::vector<

mha_real_t > cf,

std::vector<

mha_real_t > bw,

mha_real_t srate,
unsigned int order )

Constructor.
Parameters
cf

Center frequency in Hz.

bw

Bandwidth in Hz (same number of entries as in cf).

srate
order

Sampling frequency in Hz.
Filter order.

5.167.2.2 ∼gamma_flt_t()
MHAFilter::gamma_flt_t::∼gamma_flt_t ( )

5.167.3

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

639

640

5.167.3.1

CONTENTS

operator()() [1/3]

void MHAFilter::gamma_flt_t::operator() (
mha_wave_t & X,
mha_spec_t & Y ) [inline]

Filter method.

5.167.3.2

operator()() [2/3]

void MHAFilter::gamma_flt_t::operator() (
mha_wave_t & X,
mha_wave_t & Yre,
mha_wave_t & Yim ) [inline]

Filter method.

5.167.3.3

operator()() [3/3]

void MHAFilter::gamma_flt_t::operator() (
mha_wave_t & Yre,
mha_wave_t & Yim,
unsigned int stage ) [inline]

Filter method for specific stage.

5.167.3.4

phase_correction()

void MHAFilter::gamma_flt_t::phase_correction (
unsigned int desired_delay,
unsigned int inchannels )

5.167.3.5

set_weights() [1/2]

void MHAFilter::gamma_flt_t::set_weights (
std::vector<

mha_complex_t > new_B )

© 2005-2018 HörTech gGmbH, Oldenburg

5.167

MHAFilter::gamma_flt_t Class Reference

5.167.3.6

641

set_weights() [2/2]

void MHAFilter::gamma_flt_t::set_weights (
unsigned int stage,
std::vector<

5.167.3.7

mha_complex_t > new_B )

get_weights() [1/2]

std::vector< mha_complex_t> MHAFilter::gamma_flt_t::get_weights ( ) const [inline]

5.167.3.8

get_weights() [2/2]

std::vector< mha_complex_t> MHAFilter::gamma_flt_t::get_weights (
unsigned int stage ) const [inline]

5.167.3.9

get_resynthesis_gain()

std::vector< mha_real_t> MHAFilter::gamma_flt_t::get_resynthesis_gain ( ) const
[inline]

5.167.3.10

reset_state()

void MHAFilter::gamma_flt_t::reset_state ( )

5.167.3.11

get_A()

const std::vector< mha_complex_t>& MHAFilter::gamma_flt_t::get_A ( ) [inline]

5.167.3.12

inspect()

std::string MHAFilter::gamma_flt_t::inspect ( ) const [inline]

5.167.4

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

642

5.167.4.1

CONTENTS

A

std::vector< mha_complex_t> MHAFilter::gamma_flt_t::A [private]

5.167.4.2

GF

std::vector< complex_bandpass_t> MHAFilter::gamma_flt_t::GF [private]

5.167.4.3

delay

MHASignal::delay_t∗ MHAFilter::gamma_flt_t::delay [private]

5.167.4.4

envelope_delay

std::vector MHAFilter::gamma_flt_t::envelope_delay [private]

5.167.4.5

resynthesis_gain

std::vector< mha_real_t> MHAFilter::gamma_flt_t::resynthesis_gain [private]

5.167.4.6

cf_

std::vector< mha_real_t> MHAFilter::gamma_flt_t::cf_ [private]

5.167.4.7

bw_

std::vector< mha_real_t> MHAFilter::gamma_flt_t::bw_ [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.168

MHAFilter::iir_filter_state_t Class Reference

5.167.4.8

643

srate_

mha_real_t MHAFilter::gamma_flt_t::srate_ [private]

The documentation for this class was generated from the following files:
• complex_filter.h
• complex_filter.cpp

5.168

MHAFilter::iir_filter_state_t Class Reference

Inheritance diagram for MHAFilter::iir_filter_state_t:

MHAFilter::filter_t

MHAFilter::iir_filter
_state_t

Public Member Functions
• iir_filter_state_t (unsigned int channels, std::vector< float > cf_A, std::vector< float >
cf_B)

Additional Inherited Members
5.168.1

5.168.1.1

Constructor & Destructor Documentation

iir_filter_state_t()

MHAFilter::iir_filter_state_t::iir_filter_state_t (
unsigned int channels,
std::vector< float > cf_A,
std::vector< float > cf_B )

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

644

5.169

CONTENTS

MHAFilter::iir_filter_t Class Reference

IIR filter class wrapper for integration into parser structure.
Inheritance diagram for MHAFilter::iir_filter_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< iir_filter_state_t >

MHAFilter::iir_filter_t

iirfilter_t

Public Member Functions
• iir_filter_t (std::string help="IIR filter structure", std::string def_A="[1]", std::string def←_B="[1]", unsigned int channels=1)
Constructor of the IIR filter.

• void filter ( mha_wave_t ∗y, const mha_wave_t ∗x)
The filter processes the audio signal.

• mha_real_t filter ( mha_real_t x, unsigned int ch)
Filter a single audio sample.

• void resize (unsigned int channels)
Change the number of channels after object creation.

Private Member Functions
• void update_filter ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.169

MHAFilter::iir_filter_t Class Reference

645

Private Attributes
•
•
•
•

MHAParser::vfloat_t A
MHAParser::vfloat_t B
MHAEvents::patchbay_t< iir_filter_t > connector
unsigned int nchannels

Additional Inherited Members
5.169.1

Detailed Description

IIR filter class wrapper for integration into parser structure.
This class implements an infinite impulse response filter. Since it inherits from MHAParser←::parser_t (p. 833), it can easily be integrated in the openMHA configuration tree. It provides
the configuration language variables "A" (vector of recursive filter coefficients) and "B" (vector
of non-recursive filter coefficients).
The filter instance reacts to changes in filter coefficients through the openMHA configuration
language, and uses the updated coefficients in the next invocation of the filter method.
Update of the coefficients is thread-safe and non-blocking. Simply add this subparser to your
parser items and use the "filter" member function. Filter states are reset to all 0 on update.

5.169.2

5.169.2.1

Constructor & Destructor Documentation

iir_filter_t()

MHAFilter::iir_filter_t::iir_filter_t (
std::string help = "IIR

filter structure",

std::string def_A = "[1]",
std::string def_B = "[1]",
unsigned int channels = 1 )

Constructor of the IIR filter.
Initialises the sub-parser structure and the memory for holding the filter's state.
Parameters
help

The help string for the parser that groups the configuration variables of this filter.
Could be used to describe the purpose of this IIR filter.

def_A

The initial value of the vector of the recursive filter coefficients, represented as
string.

def_B

The initial value of the vector of the non-recursive filter coefficients, represented

© 2005-2018 HörTech
gGmbH, Oldenburg
as string.

channels

The number of indipendent audio channels to process with this filter. Needed to
allocate a state vector for each audio channel.

646

5.169.3

CONTENTS

Member Function Documentation

5.169.3.1

filter() [1/2]

void MHAFilter::iir_filter_t::filter (
mha_wave_t ∗ y,
const

mha_wave_t ∗ x )

The filter processes the audio signal.
All channels in the audio signal are processed using the same filter coefficients. Indipendent
state is stored between calls for each audio channel.
Parameters
y

Pointer to output signal holder. The output signal is stored here. Has to have the same
signal dimensions as the input signal x. In-place processing (y and x pointing to the
same signal holder) is possible.

x

Pointer to input signal holder. Number of channels has to be the same as given to the
constructor, or to the resize (p. 646) method.

5.169.3.2

filter() [2/2]

mha_real_t MHAFilter::iir_filter_t::filter (
mha_real_t x,
unsigned int ch )

Filter a single audio sample.
Parameters
x

The single audio sample

ch

Zero-based channel index. Use and change the state of channel ch. ch has to be less
than the number of channels given to the constructor or the resize (p. 646) method.

Returns
the filtered result sample.

© 2005-2018 HörTech gGmbH, Oldenburg

5.169

5.169.3.3

MHAFilter::iir_filter_t Class Reference

647

resize()

void MHAFilter::iir_filter_t::resize (
unsigned int channels )

Change the number of channels after object creation.
Parameters
channels

5.169.3.4

The new number of channels. Old filter states are lost.

update_filter()

void MHAFilter::iir_filter_t::update_filter ( ) [private]

5.169.4

5.169.4.1

Member Data Documentation

A

MHAParser::vfloat_t MHAFilter::iir_filter_t::A [private]

5.169.4.2

B

MHAParser::vfloat_t MHAFilter::iir_filter_t::B [private]

5.169.4.3

connector

MHAEvents::patchbay_t< iir_filter_t> MHAFilter::iir_filter_t::connector [private]

5.169.4.4

nchannels

unsigned int MHAFilter::iir_filter_t::nchannels [private]

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

648

5.170

CONTENTS

MHAFilter::iir_ord1_real_t Class Reference

First order recursive filter.

Public Member Functions
• iir_ord1_real_t (std::vector< mha_real_t > A, std::vector< mha_real_t > B)
Constructor with filter coefficients (one per channel)

• iir_ord1_real_t (std::vector< mha_real_t > tau, mha_real_t srate)
Constructor for low pass filter (one time constant per channel)

•
•
•
•

void set_state ( mha_real_t val)
void set_state (std::vector< mha_real_t > val)
void set_state ( mha_complex_t val)
mha_real_t operator() (unsigned int ch, mha_real_t x)
Filter method for real value input, one element.

• mha_complex_t operator() (unsigned int ch, mha_complex_t x)
Filter method for complex input, one element.

• void operator() (const mha_wave_t &X, mha_wave_t &Y)
Filter method for real value input.

• void operator() (const mha_spec_t &X, mha_spec_t &Y)
Filter method for complex value input.

• void operator() (const mha_wave_t &Xre, const mha_wave_t &Xim, mha_wave_t
&Yre, mha_wave_t &Yim)
Filter method for complex value input.

Private Attributes
• std::vector< mha_real_t > A_
• std::vector< mha_real_t > B_
• std::vector< mha_complex_t > Yn

5.170.1

Detailed Description

First order recursive filter.

5.170.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.170

5.170.2.1

MHAFilter::iir_ord1_real_t Class Reference

iir_ord1_real_t() [1/2]

MHAFilter::iir_ord1_real_t::iir_ord1_real_t (
std::vector<

mha_real_t > A,

std::vector<

mha_real_t > B )

Constructor with filter coefficients (one per channel)

5.170.2.2

iir_ord1_real_t() [2/2]

MHAFilter::iir_ord1_real_t::iir_ord1_real_t (
std::vector<

mha_real_t > tau,

mha_real_t srate )

Constructor for low pass filter (one time constant per channel)

5.170.3

5.170.3.1

Member Function Documentation

set_state() [1/3]

void MHAFilter::iir_ord1_real_t::set_state (
mha_real_t val )

5.170.3.2

set_state() [2/3]

void MHAFilter::iir_ord1_real_t::set_state (
std::vector<

5.170.3.3

mha_real_t > val )

set_state() [3/3]

void MHAFilter::iir_ord1_real_t::set_state (
mha_complex_t val )

© 2005-2018 HörTech gGmbH, Oldenburg

649

650

5.170.3.4

CONTENTS

operator()() [1/5]

mha_real_t MHAFilter::iir_ord1_real_t::operator() (
unsigned int ch,
mha_real_t x ) [inline]

Filter method for real value input, one element.

5.170.3.5

operator()() [2/5]

mha_complex_t MHAFilter::iir_ord1_real_t::operator() (
unsigned int ch,
mha_complex_t x ) [inline]

Filter method for complex input, one element.

5.170.3.6

operator()() [3/5]

void MHAFilter::iir_ord1_real_t::operator() (
const

mha_wave_t & X,

mha_wave_t & Y ) [inline]

Filter method for real value input.

5.170.3.7

operator()() [4/5]

void MHAFilter::iir_ord1_real_t::operator() (
const

mha_spec_t & X,

mha_spec_t & Y ) [inline]

Filter method for complex value input.

5.170.3.8

operator()() [5/5]

void MHAFilter::iir_ord1_real_t::operator() (
const

mha_wave_t & Xre,

const

mha_wave_t & Xim,

mha_wave_t & Yre,
mha_wave_t & Yim ) [inline]

Filter method for complex value input.
© 2005-2018 HörTech gGmbH, Oldenburg

5.171

MHAFilter::o1_ar_filter_t Class Reference

5.170.4

Member Data Documentation

5.170.4.1

651

A_

std::vector< mha_real_t> MHAFilter::iir_ord1_real_t::A_ [private]

5.170.4.2

B_

std::vector< mha_real_t> MHAFilter::iir_ord1_real_t::B_ [private]

5.170.4.3

Yn

std::vector< mha_complex_t> MHAFilter::iir_ord1_real_t::Yn [private]

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.171

MHAFilter::o1_ar_filter_t Class Reference

First order attack-release lowpass filter.
Inheritance diagram for MHAFilter::o1_ar_filter_t:

mha_wave_t

MHASignal::waveform_t

MHAFilter::o1_ar_filter_t

MHAFilter::o1flt_lowpass_t

MHAFilter::o1flt_maxtrack_t

© 2005-2018 HörTech gGmbH, Oldenburg

MHAFilter::o1flt_mintrack_t

652

CONTENTS

Public Member Functions
• o1_ar_filter_t (unsigned int channels, mha_real_t fs=1.0f, std::vector< mha_real_t
> tau_a=std::vector< float >(1, 0.0f), std::vector< mha_real_t > tau_r=std::vector< float
>(1, 0.0f))
Constructor, setting all taus to zero.

• void set_tau_attack (unsigned int ch, mha_real_t tau)
Set the attack time constant.

• void set_tau_release (unsigned int ch, mha_real_t tau)
Set the release time constant.

• mha_real_t operator() (unsigned int ch, mha_real_t x)
Apply filter to value x, using state channel ch.

• void operator() (const mha_wave_t &in, mha_wave_t &out)
Apply filter to a mha_wave_t ( p. 583) data.

Protected Attributes
•
•
•
•
•

MHASignal::waveform_t
MHASignal::waveform_t
MHASignal::waveform_t
MHASignal::waveform_t
mha_real_t fs

c1_a
c2_a
c1_r
c2_r

Additional Inherited Members
5.171.1

Detailed Description

First order attack-release lowpass filter.
This filter is the base of first order lowpass filter, maximum tracker and minimum tracker.

5.171.2

5.171.2.1

Constructor & Destructor Documentation

o1_ar_filter_t()

MHAFilter::o1_ar_filter_t::o1_ar_filter_t (
unsigned int channels,
mha_real_t fs = 1.0f,
std::vector<

mha_real_t > tau_a = std::vector(1,0.0f),

std::vector<

mha_real_t > tau_r = std::vector(1,0.0f) )

Constructor, setting all taus to zero.
The filter state can be accessed through the member functions of MHASignal::waveform_t
(p. 993).

© 2005-2018 HörTech gGmbH, Oldenburg

5.171

MHAFilter::o1_ar_filter_t Class Reference

Parameters
channels

Number of independent filters

fs

Sampling rate (optional, default = 1)

tau_a

Attack time constants (optional, default = 0)

tau_r

Release time constants (optional, default = 0)

5.171.3

Member Function Documentation

5.171.3.1

set_tau_attack()

void MHAFilter::o1_ar_filter_t::set_tau_attack (
unsigned int ch,
mha_real_t tau )

Set the attack time constant.
Parameters
ch
tau

Channel number
Time constant

5.171.3.2

set_tau_release()

void MHAFilter::o1_ar_filter_t::set_tau_release (
unsigned int ch,
mha_real_t tau )

Set the release time constant.
Parameters
ch
tau

Channel number
Time constant

5.171.3.3

operator()() [1/2]

mha_real_t MHAFilter::o1_ar_filter_t::operator() (

© 2005-2018 HörTech gGmbH, Oldenburg

653

654

CONTENTS

unsigned int ch,
mha_real_t x ) [inline]

Apply filter to value x, using state channel ch.
Parameters
Cannel number
Input value

ch
x

Returns
Output value

5.171.3.4

operator()() [2/2]

void MHAFilter::o1_ar_filter_t::operator() (
const

mha_wave_t & in,

mha_wave_t & out ) [inline]

Apply filter to a mha_wave_t (p. 583) data.
Parameters
in

Input signal

out

Output signal

The number of channels must match the number of filter bands.

5.171.4

5.171.4.1

Member Data Documentation

c1_a

MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c1_a [protected]

5.171.4.2

c2_a

MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c2_a [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

5.172

MHAFilter::o1flt_lowpass_t Class Reference

5.171.4.3

655

c1_r

MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c1_r [protected]

5.171.4.4

c2_r

MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c2_r [protected]

5.171.4.5

fs

mha_real_t MHAFilter::o1_ar_filter_t::fs [protected]

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.172

MHAFilter::o1flt_lowpass_t Class Reference

First order low pass filter.
Inheritance diagram for MHAFilter::o1flt_lowpass_t:

mha_wave_t

MHASignal::waveform_t

MHAFilter::o1_ar_filter_t

MHAFilter::o1flt_lowpass_t

MHAFilter::o1flt_maxtrack_t

© 2005-2018 HörTech gGmbH, Oldenburg

MHAFilter::o1flt_mintrack_t

656

CONTENTS

Public Member Functions
• o1flt_lowpass_t (const std::vector< mha_real_t > &, mha_real_t, mha_real_t=0)
Constructor of low pass filter, sets sampling rate and time constants.

• void set_tau (unsigned int ch, mha_real_t tau)
change the time constant in one channel

• void set_tau ( mha_real_t tau)
set time constant in all channels to tau

• mha_real_t get_c1 (unsigned int ch) const
• mha_real_t get_last_output (unsigned int ch) const

Additional Inherited Members
5.172.1

Detailed Description

First order low pass filter.

5.172.2

Constructor & Destructor Documentation

5.172.2.1

o1flt_lowpass_t()

MHAFilter::o1flt_lowpass_t::o1flt_lowpass_t (
const std::vector<

mha_real_t > & tau,

mha_real_t fs,
mha_real_t startval = 0 )

Constructor of low pass filter, sets sampling rate and time constants.
Parameters
tau
fs
startval

5.172.3

Vector of time constants
Sampling rate
Initial internal state value

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.172

5.172.3.1

MHAFilter::o1flt_lowpass_t Class Reference

657

set_tau() [1/2]

void MHAFilter::o1flt_lowpass_t::set_tau (
unsigned int ch,
mha_real_t tau )

change the time constant in one channel

5.172.3.2

set_tau() [2/2]

void MHAFilter::o1flt_lowpass_t::set_tau (
mha_real_t tau )

set time constant in all channels to tau

5.172.3.3

get_c1()

mha_real_t MHAFilter::o1flt_lowpass_t::get_c1 (
unsigned int ch ) const [inline]

5.172.3.4

get_last_output()

mha_real_t MHAFilter::o1flt_lowpass_t::get_last_output (
unsigned int ch ) const [inline]

The documentation for this class was generated from the following files:

• mha_filter.hh
• mha_filter.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

658

5.173

CONTENTS

MHAFilter::o1flt_maxtrack_t Class Reference

First order maximum tracker.
Inheritance diagram for MHAFilter::o1flt_maxtrack_t:

mha_wave_t

MHASignal::waveform_t

MHAFilter::o1_ar_filter_t

MHAFilter::o1flt_lowpass_t

MHAFilter::o1flt_maxtrack_t

Public Member Functions
• o1flt_maxtrack_t (const std::vector< mha_real_t > &, mha_real_t, mha_real_t=0)
Constructor of low pass filter, sets sampling rate and time constants.

• void set_tau (unsigned int ch, mha_real_t tau)
change the time constant in one channel

• void set_tau ( mha_real_t tau)
set time constant in all channels to tau

Additional Inherited Members
5.173.1

Detailed Description

First order maximum tracker.
© 2005-2018 HörTech gGmbH, Oldenburg

5.173

MHAFilter::o1flt_maxtrack_t Class Reference

5.173.2

Constructor & Destructor Documentation

5.173.2.1

659

o1flt_maxtrack_t()

MHAFilter::o1flt_maxtrack_t::o1flt_maxtrack_t (
const std::vector<

mha_real_t > & tau,

mha_real_t fs,
mha_real_t startval = 0 )

Constructor of low pass filter, sets sampling rate and time constants.
Parameters
tau
fs
startval

5.173.3

5.173.3.1

Vector of time constants
Sampling rate
Initial internal state value

Member Function Documentation

set_tau() [1/2]

void MHAFilter::o1flt_maxtrack_t::set_tau (
unsigned int ch,
mha_real_t tau )

change the time constant in one channel

5.173.3.2

set_tau() [2/2]

void MHAFilter::o1flt_maxtrack_t::set_tau (
mha_real_t tau )

set time constant in all channels to tau
The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

660

5.174

CONTENTS

MHAFilter::o1flt_mintrack_t Class Reference

First order minimum tracker.
Inheritance diagram for MHAFilter::o1flt_mintrack_t:

mha_wave_t

MHASignal::waveform_t

MHAFilter::o1_ar_filter_t

MHAFilter::o1flt_lowpass_t

MHAFilter::o1flt_mintrack_t

Public Member Functions
• o1flt_mintrack_t (const std::vector< mha_real_t > &, mha_real_t, mha_real_t=0)
• void set_tau (unsigned int ch, mha_real_t tau)
change the time constant in one channel

• void set_tau ( mha_real_t tau)
set time constant in all channels to tau

Additional Inherited Members

5.174.1

Detailed Description

First order minimum tracker.
© 2005-2018 HörTech gGmbH, Oldenburg

5.175

MHAFilter::partitioned_convolution_t Class Reference

5.174.2

Constructor & Destructor Documentation

5.174.2.1

661

o1flt_mintrack_t()

MHAFilter::o1flt_mintrack_t::o1flt_mintrack_t (
const std::vector<

mha_real_t > & tau,

mha_real_t fs_,
mha_real_t startval = 0 )

5.174.3

Member Function Documentation

5.174.3.1

set_tau() [1/2]

void MHAFilter::o1flt_mintrack_t::set_tau (
unsigned int ch,
mha_real_t tau )

change the time constant in one channel

5.174.3.2

set_tau() [2/2]

void MHAFilter::o1flt_mintrack_t::set_tau (
mha_real_t tau )

set time constant in all channels to tau
The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.175

MHAFilter::partitioned_convolution_t Class Reference

A filter class for partitioned convolution.

Classes
• struct index_t
Bookkeeping class.
© 2005-2018 HörTech gGmbH, Oldenburg

662

CONTENTS

Public Member Functions
• partitioned_convolution_t (unsigned int fragsize, unsigned int nchannels_in, unsigned int nchannels_out, const transfer_matrix_t &transfer)
Create a new partitioned convolver.

• ∼partitioned_convolution_t ()
Free fftw resource allocated in constructor.

• mha_wave_t ∗ process (const mha_wave_t ∗s_in)
processing

Public Attributes
• unsigned int fragsize
Audio fragment size, always equal to partition size.

• unsigned int nchannels_in
Number of audio input channels.

• unsigned int nchannels_out
Number of audio output channels.

• unsigned int output_partitions
The maximum number of partitions in any of the impulse responses.

• unsigned int filter_partitions
The total number of non-zero impulse response partitions.

• MHASignal::waveform_t input_signal_wave
Buffer for input signal.

• unsigned int current_input_signal_buffer_half_index
A counter modulo 2.

• MHASignal::spectrum_t input_signal_spec
Buffer for FFT transformed input signal.

• MHASignal::spectrum_t frequency_response
Buffers for frequency response spectra of impulse response partitions.

• std::vector< index_t > bookkeeping
Keeps track of input channels, output channels, impulse response partition, and delay.

• std::vector< MHASignal::spectrum_t > output_signal_spec
Buffers for FFT transformed output signal.

• unsigned int current_output_partition_index
A counter modulo output_partitions, indexing the "current" output partition.

• MHASignal::waveform_t output_signal_wave
Buffer for the wave output signal.

• mha_fft_t fft
The FFT transformer.
© 2005-2018 HörTech gGmbH, Oldenburg

5.175

MHAFilter::partitioned_convolution_t Class Reference

5.175.1

Detailed Description

663

A filter class for partitioned convolution.
Impulse responses are partitioned into sections of fragment size. Audio signal is convolved with
every partition and delayed as needed. Convolution is done according to overlap-save. FFT
length used is 2 times fragment size.

5.175.2

Constructor & Destructor Documentation

5.175.2.1

partitioned_convolution_t()

MHAFilter::partitioned_convolution_t::partitioned_convolution_t (
unsigned int fragsize,
unsigned int nchannels_in,
unsigned int nchannels_out,
const

transfer_matrix_t & transfer )

Create a new partitioned convolver.
Parameters
fragsize

Audio fragment size, equal to partition size.

nchannels_in

Number of input audio channels.

nchannels_out

Number of output audio channels.

transfer

A sparse matrix of impulse responses.

5.175.2.2 ∼partitioned_convolution_t()

MHAFilter::partitioned_convolution_t::∼partitioned_convolution_t ( )

Free fftw resource allocated in constructor.

5.175.3

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

664

5.175.3.1

CONTENTS

process()

mha_wave_t ∗ MHAFilter::partitioned_convolution_t::process (
const

mha_wave_t ∗ s_in )

processing

5.175.4

5.175.4.1

Member Data Documentation

fragsize

unsigned int MHAFilter::partitioned_convolution_t::fragsize

Audio fragment size, always equal to partition size.

5.175.4.2

nchannels_in

unsigned int MHAFilter::partitioned_convolution_t::nchannels_in

Number of audio input channels.

5.175.4.3

nchannels_out

unsigned int MHAFilter::partitioned_convolution_t::nchannels_out

Number of audio output channels.

5.175.4.4

output_partitions

unsigned int MHAFilter::partitioned_convolution_t::output_partitions

The maximum number of partitions in any of the impulse responses.
Determines the size if the delay line.
© 2005-2018 HörTech gGmbH, Oldenburg

5.175

MHAFilter::partitioned_convolution_t Class Reference

5.175.4.5

665

filter_partitions

unsigned int MHAFilter::partitioned_convolution_t::filter_partitions

The total number of non-zero impulse response partitions.

5.175.4.6

input_signal_wave

MHASignal::waveform_t MHAFilter::partitioned_convolution_t::input_signal_wave

Buffer for input signal.
Has nchannels_in channels and fragsize∗2 frames
5.175.4.7

current_input_signal_buffer_half_index

unsigned int MHAFilter::partitioned_convolution_t::current_input_signal_buffer_←half_index

A counter modulo 2.
Indicates the buffer half in input signal wave into which to copy the current input signal.
5.175.4.8

input_signal_spec

MHASignal::spectrum_t MHAFilter::partitioned_convolution_t::input_signal_spec

Buffer for FFT transformed input signal.
Has nchannels_in channels and fragsize+1 frames (fft bins).
5.175.4.9

frequency_response

MHASignal::spectrum_t MHAFilter::partitioned_convolution_t::frequency_response

Buffers for frequency response spectra of impulse response partitions.
Each "channel" contains another partition of some impulse response. The bookkeeping array
is used to keep track what to do with these frequency responses. This container has filter_←partitions channels and fragsize+1 frames (fft bins).
5.175.4.10

bookkeeping

std::vector< index_t> MHAFilter::partitioned_convolution_t::bookkeeping

Keeps track of input channels, output channels, impulse response partition, and delay.
The index into this array is the same as the "channel" index into the frequency_response array.
Array has filter_partitions entries.
© 2005-2018 HörTech gGmbH, Oldenburg

666

5.175.4.11

CONTENTS

output_signal_spec

std::vector< MHASignal::spectrum_t> MHAFilter::partitioned_convolution_t::output_←signal_spec

Buffers for FFT transformed output signal.
For each array member, Number of channels is equal to nchannels_out, number of frames (fft
bins) is equal to fragsize+1. Array size is equal to output_partitions.
5.175.4.12

current_output_partition_index

unsigned int MHAFilter::partitioned_convolution_t::current_output_partition_index

A counter modulo output_partitions, indexing the "current" output partition.

5.175.4.13

output_signal_wave

MHASignal::waveform_t MHAFilter::partitioned_convolution_t::output_signal_wave

Buffer for the wave output signal.
Number of channels is equal to nchannels_out, number of frames is equal to fragsize
5.175.4.14

fft

mha_fft_t MHAFilter::partitioned_convolution_t::fft

The FFT transformer.
The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.176

MHAFilter::partitioned_convolution_t::index_t Struct Reference

Bookkeeping class.

Public Member Functions
• index_t (unsigned int src, unsigned int tgt, unsigned int dly)
Data constructor.

• index_t ()
Default constructor for STL compatibility.
© 2005-2018 HörTech gGmbH, Oldenburg

5.176 MHAFilter::partitioned_convolution_t::index_t Struct
Reference

667

Public Attributes
• unsigned int source_channel_index
The input channel index to apply the current partition to.

• unsigned int target_channel_index
The index of the output channel to which the filter result should go.

• unsigned int delay
The delay (in blocks) of this partition.

5.176.1

Detailed Description

Bookkeeping class.
For each impulse response partition, keeps track of which input to filter, which output channel
to filter to, and the delay in blocks. Objects of class Index should be kept in an array with the
same indices as the corresponding inpulse response partitions.

5.176.2

Constructor & Destructor Documentation

5.176.2.1

index_t() [1/2]

MHAFilter::partitioned_convolution_t::index_t::index_t (
unsigned int src,
unsigned int tgt,
unsigned int dly ) [inline]

Data constructor.
Parameters
src

The input channel index to apply the current partition to.

tgt

The index of the output channel to which the filter result should go.

dly

The delay (in blocks) of this partition

5.176.2.2

index_t() [2/2]

MHAFilter::partitioned_convolution_t::index_t::index_t ( ) [inline]

Default constructor for STL compatibility.
© 2005-2018 HörTech gGmbH, Oldenburg

668

5.176.3

CONTENTS

Member Data Documentation

5.176.3.1

source_channel_index

unsigned int MHAFilter::partitioned_convolution_t::index_t::source_channel_index

The input channel index to apply the current partition to.

5.176.3.2

target_channel_index

unsigned int MHAFilter::partitioned_convolution_t::index_t::target_channel_index

The index of the output channel to which the filter result should go.

5.176.3.3

delay

unsigned int MHAFilter::partitioned_convolution_t::index_t::delay

The delay (in blocks) of this partition.
The documentation for this struct was generated from the following file:
• mha_filter.hh

5.177

MHAFilter::polyphase_resampling_t Class Reference

A class that performs polyphase resampling.

Public Member Functions
• polyphase_resampling_t (unsigned n_up, unsigned n_down, mha_real_t nyquist_←ratio, unsigned n_irs, unsigned n_ringbuffer, unsigned n_channels, unsigned n_prefill)
Construct a polyphase resampler instance.

• void write ( mha_wave_t &signal)
Write signal to the ringbuffer.

• void read ( mha_wave_t &signal)
Read resampled signal.

• unsigned readable_frames () const
Number of frames at target sampling rate that can be produced.
© 2005-2018 HörTech gGmbH, Oldenburg

5.177

MHAFilter::polyphase_resampling_t Class Reference

669

Private Attributes
• unsigned upsampling_factor
Integer upsampling factor.

• unsigned downsampling_factor
Integer downsampling factor.

• unsigned now_index
Index of "now" in the interpolated sampling rate.

• bool underflow
Set to true when an underflow has occurred.

• MHAWindow::hanning_t impulse_response
Contains the impulse response of the lowpass filter needed for anti-aliasing.

• MHASignal::ringbuffer_t ringbuffer
Storage of input signal.

5.177.1

Detailed Description

A class that performs polyphase resampling.
Background information: When resampling from one sampling rate to another, it helps when
one sampling rate is a multiple of the other sampling rate: In the case of upsampling, the
samples at the original rate are copied to the upsampled signal spread out with a constant
number of zero samples between the originally adjacent samples. The signal is then low-pass
filtered to avoid frequency aliasing and to fill the zero-samples with interpolated values. In the
case of down-sampling, the signal is first low-pass filtered for anti-aliasing, and only every nth
sample of the filtered output is used for the signal at the new sample rate. Of course, for finiteimpulse-response (FIR) filters this means that only every nth sample needs to be computed.
When resampling from one sampling rate to another where neither is a multiple of the other,
the signal first needs to be upsampled to a sampling rate that is a multiple of both (source and
target) sampling rates, and then downsampled again to the target sampling rate. Instead of
applying two separate lowpass filters directly after each other (one filter for upsampling and
another for downsampling), it is sufficient to apply only one low-pass filter, when producing
the output at the final target rate, with a cut-off frequency equal to the lower cut-off-frequency
of the replaced two low-pass filters. Not filtering to produce a filtered signal already at the
common multiple sampling rate has the side effect that this intermediate signal at the common
multiple sampling rate keeps its filler zero samples unaltered. These zero samples can be taken
advantage of when filtering to produce the output at the target rate: The zeros do not need to
be multiplied with their corresponding filter coefficients, because the result is known to be zero
again, and this zero product has no effect on the summation operation to compute a target
sample at the target rate. To summarize, the following optimization techniques are available:
• The signal does not need to be stored in memory at the interpolation rate. It is sufficient
to have the signal available at the source rate and to know where the zeros would be.
• The signal needs to be low-pass-filtered only once.
• The FIR low-pass filtering can take advantage of
© 2005-2018 HörTech gGmbH, Oldenburg

670

CONTENTS

– computing only filter outputs for the required samples at the target rate,
– skipping over zero-samples at the interpolation rate.
The procedure that takes advantage of these optimization possibilites is known as polyphase
resampling.
This class implements polyphase resampling in this way for a source sampling rate and a
target sampling rate that have common multiple, the interpolation sampling rate. Non-rational
and drifting sample rates are outside the scope of this resampler.

5.177.2

Constructor & Destructor Documentation

5.177.2.1

polyphase_resampling_t()

MHAFilter::polyphase_resampling_t::polyphase_resampling_t (
unsigned n_up,
unsigned n_down,
mha_real_t nyquist_ratio,
unsigned n_irs,
unsigned n_ringbuffer,
unsigned n_channels,
unsigned n_prefill )

Construct a polyphase resampler instance.
Allocates a ringbuffer with the given capacity n_ringbuffer. Client that triggers the constructor
must ensure that the capacity n_ringbuffer and the delay n_prefill are sufficient, i.e. enough
old and new samples are always available to compute sufficient samples in using an impulse
response of length n_irs. Audio block sizes at both sides of the resampler have to be taken into
account. Class MHASignal::blockprocessing_polyphase_resampling_t takes care
of this, and it is recommended to use this class for block-based processing.
Based on n_up, n_down, n_irs and nyquist_ratio, a suitable sinc impulse response is computed
and windowed with a hanning window to limit its extent.
The actual source sampling rate, target sampling rate, and interpolation sampling rate are not
parameters to this constructors, because only their ratios matter.
Parameters
n_up

upsampling factor, ratio between interpolation rate and source rate.

n_down

downsampling factor, ratio between interpolation rate and target rate.

nyquist_ratio

low pass filter cutoff frequency relative to the nyquist frequency of the
smaller of the two sampling rates. Example values: E.g. 0.8, 0.9

n_irs

length of impulse response (in samples at interpolation rate)

n_ringbuffer
n_channels
n_prefill

length of ringbuffer, in samples at source sampling rate
audio channels count
© 2005-2018 HörTech gGmbH, Oldenburg
Prefill the ringbuffer with this many zero frames in samples at source
sampling rate

5.177

MHAFilter::polyphase_resampling_t Class Reference

5.177.3

Member Function Documentation

5.177.3.1

671

write()

void MHAFilter::polyphase_resampling_t::write (
mha_wave_t & signal )

Write signal to the ringbuffer.
Signal contained in signal is appended to the audio frames already present in the ringbuffer.
Parameters
signal

input signal in original sampling rate

Exceptions
MHA_Error ( p. 522)

5.177.3.2

Raises exception if there is not enough room or if the number of
channels does not match.

read()

void MHAFilter::polyphase_resampling_t::read (
mha_wave_t & signal )

Read resampled signal.
Will perform the resampling and remove no longer needed samples from the input buffer.
Parameters
signal

buffer to write the resampled signal to.

Exceptions
MHA_Error ( p. 522)

Raises exception if there is not enough input signal or if the number
of channels is too high.

© 2005-2018 HörTech gGmbH, Oldenburg

672

5.177.3.3

CONTENTS

readable_frames()

unsigned MHAFilter::polyphase_resampling_t::readable_frames ( ) const [inline]

Number of frames at target sampling rate that can be produced.
This method only checks for enough future samples present, therefore, this number can be
positive and a read operation can still fail if there are not enough past samples present to
perform the filtering for the first output sample. This could only happen if the constructor parameters n_ringbuffer or n_prefill have been chosen too small, because otherwise the method
read (p. 671) ensures that enough past samples are present to compute the next target sample.

5.177.4

5.177.4.1

Member Data Documentation

upsampling_factor

unsigned MHAFilter::polyphase_resampling_t::upsampling_factor [private]

Integer upsampling factor.
Interpolation rate divided by source rate.
5.177.4.2

downsampling_factor

unsigned MHAFilter::polyphase_resampling_t::downsampling_factor [private]

Integer downsampling factor.
Interpolation rate divided by target rate.
5.177.4.3

now_index

unsigned MHAFilter::polyphase_resampling_t::now_index [private]

Index of "now" in the interpolated sampling rate.

Todo Index into what? What is the meaning of now?

© 2005-2018 HörTech gGmbH, Oldenburg

5.178

MHAFilter::resampling_filter_t Class Reference

5.177.4.4

673

underflow

bool MHAFilter::polyphase_resampling_t::underflow [private]

Set to true when an underflow has occurred.
When this is true, then the object can no longer be used. Underflows have to be avoided by
clients, e.g. by checking that enough readable_frames (p. 671) are present before calling read
(p. 671)
5.177.4.5

impulse_response

MHAWindow::hanning_t MHAFilter::polyphase_resampling_t::impulse_response [private]

Contains the impulse response of the lowpass filter needed for anti-aliasing.
The impulse response is stored at the interpolation sampling rate. We use an instance of M←HAWindow::hanning_t (p. 1028) here because we are limiting the sinc impulse response with
a Hanning window (otherwise the impulse response would extend indefinitely into past and
future). And the samples inside an MHAWindow::hanning_t (p. 1028) can be altered with ∗=,
which our constructor does.
5.177.4.6

ringbuffer

MHASignal::ringbuffer_t MHAFilter::polyphase_resampling_t::ringbuffer [private]

Storage of input signal.
Part of the polyphase resampling optimization is that apart from the FIR impulse response,
nothing is stored at the interpolation rate, saving memory and computation cycles.
The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.178

MHAFilter::resampling_filter_t Class Reference

Hann shaped low pass filter for resampling.
Inheritance diagram for MHAFilter::resampling_filter_t:

MHAFilter::fftfilter_t

MHAFilter::resampling
_filter_t

© 2005-2018 HörTech gGmbH, Oldenburg

674

CONTENTS

Public Member Functions
• resampling_filter_t (unsigned int fftlen, unsigned int irslen, unsigned int channels,
unsigned int Nup, unsigned int Ndown, double fCutOff)
Constructor.

Static Public Member Functions
• static unsigned int fragsize_validator (unsigned int fftlen, unsigned int irslen)

Private Attributes
• unsigned int fragsize

5.178.1

Detailed Description

Hann shaped low pass filter for resampling.
This class uses FFT filter at upsampled rate.

5.178.2

Constructor & Destructor Documentation

5.178.2.1

resampling_filter_t()

MHAFilter::resampling_filter_t::resampling_filter_t (
unsigned int fftlen,
unsigned int irslen,
unsigned int channels,
unsigned int Nup,
unsigned int Ndown,
double fCutOff )

Constructor.
Parameters
fftlen

FFT length.

irslen

Length of filter.

channels
Nup
Ndown

Number of channels to be filtered.
Upsampling ratio.
Downsampling ratio.

fCutOff

Cut off frequency (relative to lower Nyquist Frequency)
© 2005-2018 HörTech gGmbH, Oldenburg

5.179

MHAFilter::smoothspec_t Class Reference

5.178.3

Member Function Documentation

5.178.3.1

675

fragsize_validator()

unsigned int MHAFilter::resampling_filter_t::fragsize_validator (
unsigned int fftlen,
unsigned int irslen ) [static]

5.178.4

Member Data Documentation

5.178.4.1

fragsize

unsigned int MHAFilter::resampling_filter_t::fragsize [private]

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.179

MHAFilter::smoothspec_t Class Reference

Smooth spectral gains, create a windowed impulse response.

Public Member Functions
• smoothspec_t (unsigned int fftlen, unsigned int nchannels, const MHAWindow←::base_t & window, bool minphase, bool linphase_asym=false)
Constructor.

• void smoothspec (const mha_spec_t &s_in, mha_spec_t &s_out)
Create a smoothed spectrum.

• void smoothspec ( mha_spec_t &spec)
Create a smoothed spectrum (in place)

• void spec2fir (const mha_spec_t &spec, mha_wave_t &fir)
Return FIR coefficients.

• ∼smoothspec_t ()

Private Member Functions
• void internal_fir (const mha_spec_t &)
© 2005-2018 HörTech gGmbH, Oldenburg

676

CONTENTS

Private Attributes
•
•
•
•
•
•
•
•

unsigned int fftlen
unsigned int nchannels
MHAWindow::base_t window
MHASignal::waveform_t tmp_wave
MHASignal::spectrum_t tmp_spec
MHASignal::minphase_t ∗ minphase
bool _linphase_asym
mha_fft_t fft

5.179.1

Detailed Description

Smooth spectral gains, create a windowed impulse response.
Spectral gains are smoothed by multiplicating the impulse response with a window function.
If a minimal phase is used, then the original phase is discarded and replaced by the minimal
phase function. In this case, the window is applied to the beginning of the inverse Fourier
transform of the input spectrum, and the remaining signal set to zero. If the original phase
is kept, the window is applied symmetrical arround zero, i.e. to the first and last samples of
the inverse Fourier transform of the input spectrum. The spec2fir() (p. 677) function creates a
causal impulse response by circular shifting the impulse response by half of the window length.
The signal dimensions of the arguments of smoothspec() (p. 677) must correspond to the FFT
length and number of channels provided in the constructor. The function spec2fir() (p. 677)
can fill signal structures with more than window length frames.

5.179.2

Constructor & Destructor Documentation

5.179.2.1

smoothspec_t()

MHAFilter::smoothspec_t::smoothspec_t (
unsigned int fftlen,
unsigned int nchannels,
const

MHAWindow::base_t & window,

bool minphase,
bool linphase_asym = false )

Constructor.
Parameters
fftlen

FFT length of input spectrum (fftlen/2+1 bins)

nchannels

Number of channels in input spectrum

window

Window used for smoothing

minphase

Use minimal phase (true) or original phase (false)

linphase_asym

Keep phase, but apply full window at beginning of IRS

© 2005-2018 HörTech gGmbH, Oldenburg

5.179

MHAFilter::smoothspec_t Class Reference

5.179.2.2 ∼smoothspec_t()
MHAFilter::smoothspec_t::∼smoothspec_t ( )

5.179.3

5.179.3.1

Member Function Documentation

smoothspec() [1/2]

void MHAFilter::smoothspec_t::smoothspec (
const

mha_spec_t & s_in,

mha_spec_t & s_out )

Create a smoothed spectrum.
Parameters
s←_in

Input spectrum

Return values
s_out

5.179.3.2

Output spectrum

smoothspec() [2/2]

void MHAFilter::smoothspec_t::smoothspec (
mha_spec_t & spec ) [inline]

Create a smoothed spectrum (in place)
Parameters
spec

5.179.3.3

Spectrum to be smoothed.

spec2fir()

void MHAFilter::smoothspec_t::spec2fir (

© 2005-2018 HörTech gGmbH, Oldenburg

677

678

const

CONTENTS

mha_spec_t & spec,

mha_wave_t & fir )

Return FIR coefficients.
Parameters
spec

Input spectrum

Return values
fir

FIR coefficients, minimum length is window length

5.179.3.4

internal_fir()

void MHAFilter::smoothspec_t::internal_fir (
const

5.179.4

5.179.4.1

mha_spec_t & s_in ) [private]

Member Data Documentation

fftlen

unsigned int MHAFilter::smoothspec_t::fftlen [private]

5.179.4.2

nchannels

unsigned int MHAFilter::smoothspec_t::nchannels [private]

5.179.4.3

window

MHAWindow::base_t MHAFilter::smoothspec_t::window [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.180

MHAFilter::thirdoctave_analyzer_t Class Reference

5.179.4.4

679

tmp_wave

MHASignal::waveform_t MHAFilter::smoothspec_t::tmp_wave [private]

5.179.4.5

tmp_spec

MHASignal::spectrum_t MHAFilter::smoothspec_t::tmp_spec [private]

5.179.4.6

minphase

MHASignal::minphase_t∗ MHAFilter::smoothspec_t::minphase [private]

5.179.4.7

_linphase_asym

bool MHAFilter::smoothspec_t::_linphase_asym [private]

5.179.4.8

fft

mha_fft_t MHAFilter::smoothspec_t::fft [private]

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.180

MHAFilter::thirdoctave_analyzer_t Class Reference

Public Member Functions
•
•
•
•
•

thirdoctave_analyzer_t ( mhaconfig_t cfg)
mha_wave_t ∗ process ( mha_wave_t ∗)
unsigned int nbands ()
unsigned int nchannels ()
std::vector< mha_real_t > get_cf_hz ()

© 2005-2018 HörTech gGmbH, Oldenburg

680

CONTENTS

Static Public Member Functions
• static std::vector< mha_real_t > cf_generator ( mhaconfig_t cfg)
• static std::vector< mha_real_t > bw_generator ( mhaconfig_t cfg)
• static std::vector< mha_real_t > dup (std::vector< mha_real_t >, mhaconfig_t cfg)

Private Attributes
•
•
•
•
•

mhaconfig_t cfg_
std::vector< mha_real_t > cf
MHAFilter::gamma_flt_t fb
MHASignal::waveform_t out_chunk
MHASignal::waveform_t out_chunk_im

5.180.1

5.180.1.1

Constructor & Destructor Documentation

thirdoctave_analyzer_t()

MHAFilter::thirdoctave_analyzer_t::thirdoctave_analyzer_t (
mhaconfig_t cfg )

5.180.2

5.180.2.1

Member Function Documentation

process()

mha_wave_t ∗ MHAFilter::thirdoctave_analyzer_t::process (
mha_wave_t ∗ sIn )

5.180.2.2

nbands()

unsigned int MHAFilter::thirdoctave_analyzer_t::nbands ( )

5.180.2.3

nchannels()

unsigned int MHAFilter::thirdoctave_analyzer_t::nchannels ( )

© 2005-2018 HörTech gGmbH, Oldenburg

5.180

5.180.2.4

MHAFilter::thirdoctave_analyzer_t Class Reference

get_cf_hz()
mha_real_t > MHAFilter::thirdoctave_analyzer_t::get_cf_hz ( )

std::vector<

5.180.2.5

681

cf_generator()
mha_real_t > MHAFilter::thirdoctave_analyzer_t::cf_generator (

std::vector<

mhaconfig_t cfg ) [static]

5.180.2.6

bw_generator()
mha_real_t > MHAFilter::thirdoctave_analyzer_t::bw_generator (

std::vector<

mhaconfig_t cfg ) [static]

5.180.2.7

dup()

std::vector<

mha_real_t > MHAFilter::thirdoctave_analyzer_t::dup (

std::vector<

mha_real_t > vec,

mhaconfig_t cfg ) [static]

5.180.3

5.180.3.1

Member Data Documentation

cfg_

mhaconfig_t MHAFilter::thirdoctave_analyzer_t::cfg_ [private]

5.180.3.2

cf

std::vector< mha_real_t> MHAFilter::thirdoctave_analyzer_t::cf [private]

5.180.3.3

fb

MHAFilter::gamma_flt_t MHAFilter::thirdoctave_analyzer_t::fb [private]

© 2005-2018 HörTech gGmbH, Oldenburg

682

5.180.3.4

CONTENTS

out_chunk

MHASignal::waveform_t MHAFilter::thirdoctave_analyzer_t::out_chunk [private]

5.180.3.5

out_chunk_im

MHASignal::waveform_t MHAFilter::thirdoctave_analyzer_t::out_chunk_im [private]

The documentation for this class was generated from the following files:
• complex_filter.h
• complex_filter.cpp

5.181

MHAFilter::transfer_function_t Struct Reference

a structure containing a source channel number, a target channel number, and an impulse
response.

Public Member Functions
• transfer_function_t ()
Default constructor for STL conformity.

• transfer_function_t (unsigned int source_channel_index, unsigned int target_←channel_index, const std::vector< float > & impulse_response)
Data constructor.

• unsigned int partitions (unsigned int fragsize) const
for the given partition size, return the number of partitions of the impulse response.

• unsigned int non_empty_partitions (unsigned int fragsize) const
for the given partition size, return the number of non-empty partitions of the impulse response.

• bool isempty (unsigned int fragsize, unsigned int index) const
checks if the partition contains only zeros

Public Attributes
• unsigned int source_channel_index
Source audio channel index for this transfer function.

• unsigned int target_channel_index
Target audio channel index for this transfer function.

• std::vector< float > impulse_response
Impulse response of transfer from source to target channel.
© 2005-2018 HörTech gGmbH, Oldenburg

5.181

MHAFilter::transfer_function_t Struct Reference

5.181.1

Detailed Description

683

a structure containing a source channel number, a target channel number, and an impulse
response.

5.181.2

Constructor & Destructor Documentation

5.181.2.1

transfer_function_t() [1/2]

MHAFilter::transfer_function_t::transfer_function_t ( ) [inline]

Default constructor for STL conformity.
Not used.
5.181.2.2

transfer_function_t() [2/2]

MHAFilter::transfer_function_t::transfer_function_t (
unsigned int source_channel_index,
unsigned int target_channel_index,
const std::vector< float > & impulse_response )

Data constructor.
Parameters
source_channel_index
target_channel_index

Source audio channel index for this transfer function
Target audio channel index for this transfer function

impulse_response

Impulse response of transfer from source to target channel

5.181.3

5.181.3.1

Member Function Documentation

partitions()

unsigned int MHAFilter::transfer_function_t::partitions (
unsigned int fragsize ) const [inline]

for the given partition size, return the number of partitions of the impulse response.

© 2005-2018 HörTech gGmbH, Oldenburg

684

CONTENTS

Parameters
partition size

fragsize

Returns
number of partitions occupied by the impulse response

5.181.3.2

non_empty_partitions()

unsigned int MHAFilter::transfer_function_t::non_empty_partitions (
unsigned int fragsize ) const [inline]

for the given partition size, return the number of non-empty partitions of the impulse response.
Parameters
partition size

fragsize

Returns
the number of non-empty partitions of the impulse response, i.e. partitions containing
only zeros are not counted.

5.181.3.3

isempty()

bool MHAFilter::transfer_function_t::isempty (
unsigned int fragsize,
unsigned int index ) const [inline]

checks if the partition contains only zeros
Parameters
fragsize
index

partition size
partition index

Returns
true when this partition of the impulse response contains only zeros.
© 2005-2018 HörTech gGmbH, Oldenburg

5.182

MHAFilter::transfer_matrix_t Struct Reference

5.181.4

Member Data Documentation

5.181.4.1

685

source_channel_index

unsigned int MHAFilter::transfer_function_t::source_channel_index

Source audio channel index for this transfer function.

5.181.4.2

target_channel_index

unsigned int MHAFilter::transfer_function_t::target_channel_index

Target audio channel index for this transfer function.

5.181.4.3

impulse_response

std::vector MHAFilter::transfer_function_t::impulse_response

Impulse response of transfer from source to target channel.
The documentation for this struct was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.182

MHAFilter::transfer_matrix_t Struct Reference

A sparse matrix of transfer function partitionss.
Inherits vector< transfer_function_t >.

Public Member Functions
• std::valarray< unsigned int > partitions (unsigned fragsize) const
Returns an array of the results of calling the partitions() ( p. 686) method on every matrix
member.

• std::valarray< unsigned int > non_empty_partitions (unsigned int fragsize) const
Returns an array of the results of calling the non_empty_partitions() ( p. 686) method on every
matrix member.
© 2005-2018 HörTech gGmbH, Oldenburg

686

5.182.1

CONTENTS

Detailed Description

A sparse matrix of transfer function partitionss.
Each matrix element knows its position in the matrix, so they can be stored as a vector.
5.182.2

Member Function Documentation

5.182.2.1

partitions()

std::valarray MHAFilter::transfer_matrix_t::partitions (
unsigned fragsize ) const [inline]

Returns an array of the results of calling the partitions() (p. 686) method on every matrix member.

5.182.2.2

non_empty_partitions()

std::valarray MHAFilter::transfer_matrix_t::non_empty_partitions (
unsigned int fragsize ) const [inline]

Returns an array of the results of calling the non_empty_partitions() (p. 686) method on every
matrix member.
The documentation for this struct was generated from the following file:
• mha_filter.hh

5.183

MHAIOJack::io_jack_t Class Reference

Main class for JACK IO.
Inheritance diagram for MHAIOJack::io_jack_t:

MHAParser::base_t

MHAParser::parser_t

MHAJack::client_t

MHAIOJack::io_jack_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.183

MHAIOJack::io_jack_t Class Reference

687

Public Member Functions
• io_jack_t (unsigned int fragsize, float samplerate, IOProcessEvent_t proc_←event, void ∗ proc_handle, IOStartedEvent_t start_event, void ∗ start_handle, IO←StoppedEvent_t stop_event, void ∗ stop_handle)
• void prepare (int, int)
Allocate buffers, activate JACK client and install internal ports.

• void release ()

Private Member Functions
• void reconnect_inports ()
Connect the input ports when connection variable is accessed.

• void reconnect_outports ()
Connect the output ports when connection variable is accessed.

•
•
•
•
•
•
•
•
•

void
void
void
void
void
void
void
void
void

get_physical_input_ports ()
get_physical_output_ports ()
get_all_input_ports ()
get_all_output_ports ()
get_delays_in ()
get_delays_out ()
read_get_cpu_load ()
read_get_xruns ()
read_get_scheduler ()

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

unsigned int fw_fragsize
float fw_samplerate
MHAParser::string_t servername
MHAParser::string_t clientname
MHAParser::vstring_t connections_in
MHAParser::vint_mon_t delays_in
MHAParser::vstring_t connections_out
MHAParser::vint_mon_t delays_out
MHAParser::vstring_t portnames_in
MHAParser::vstring_t portnames_out
MHAParser::vstring_mon_t ports_in_physical
MHAParser::vstring_mon_t ports_out_physical
MHAParser::vstring_mon_t ports_in_all
MHAParser::vstring_mon_t ports_out_all
MHAParser::parser_t ports_parser
MHAParser::float_mon_t state_cpuload
MHAParser::int_mon_t state_xruns
MHAParser::int_mon_t state_priority
MHAParser::string_mon_t state_scheduler
MHAParser::parser_t state_parser
MHAEvents::patchbay_t< io_jack_t > patchbay

© 2005-2018 HörTech gGmbH, Oldenburg

688

CONTENTS

Additional Inherited Members
5.183.1

Detailed Description

Main class for JACK IO.
This class registers a JACK client. JACK and framework states are managed by this class.

5.183.2

5.183.2.1

Constructor & Destructor Documentation

io_jack_t()

io_jack_t::io_jack_t (
unsigned int fragsize,
float samplerate,
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle )

5.183.3

5.183.3.1

Member Function Documentation

prepare()

void io_jack_t::prepare (
int nch_in,
int nch_out )

Allocate buffers, activate JACK client and install internal ports.

5.183.3.2

release()

void io_jack_t::release (
void

)

© 2005-2018 HörTech gGmbH, Oldenburg

5.183

5.183.3.3

MHAIOJack::io_jack_t Class Reference

reconnect_inports()

void io_jack_t::reconnect_inports ( ) [private]

Connect the input ports when connection variable is accessed.

5.183.3.4

reconnect_outports()

void io_jack_t::reconnect_outports ( ) [private]

Connect the output ports when connection variable is accessed.

5.183.3.5

get_physical_input_ports()

void io_jack_t::get_physical_input_ports ( ) [private]

5.183.3.6

get_physical_output_ports()

void io_jack_t::get_physical_output_ports ( ) [private]

5.183.3.7

get_all_input_ports()

void io_jack_t::get_all_input_ports ( ) [private]

5.183.3.8

get_all_output_ports()

void io_jack_t::get_all_output_ports ( ) [private]

5.183.3.9

get_delays_in()

void io_jack_t::get_delays_in ( ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

689

690

5.183.3.10

CONTENTS

get_delays_out()

void io_jack_t::get_delays_out ( ) [private]

5.183.3.11

read_get_cpu_load()

void io_jack_t::read_get_cpu_load ( ) [private]

5.183.3.12

read_get_xruns()

void io_jack_t::read_get_xruns ( ) [private]

5.183.3.13

read_get_scheduler()

void io_jack_t::read_get_scheduler ( ) [private]

5.183.4

5.183.4.1

Member Data Documentation

fw_fragsize

unsigned int MHAIOJack::io_jack_t::fw_fragsize [private]

5.183.4.2

fw_samplerate

float MHAIOJack::io_jack_t::fw_samplerate [private]

5.183.4.3

servername

MHAParser::string_t MHAIOJack::io_jack_t::servername [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.183

MHAIOJack::io_jack_t Class Reference

5.183.4.4

691

clientname

MHAParser::string_t MHAIOJack::io_jack_t::clientname [private]

5.183.4.5

connections_in

MHAParser::vstring_t MHAIOJack::io_jack_t::connections_in [private]

5.183.4.6

delays_in

MHAParser::vint_mon_t MHAIOJack::io_jack_t::delays_in [private]

5.183.4.7

connections_out

MHAParser::vstring_t MHAIOJack::io_jack_t::connections_out [private]

5.183.4.8

delays_out

MHAParser::vint_mon_t MHAIOJack::io_jack_t::delays_out [private]

5.183.4.9

portnames_in

MHAParser::vstring_t MHAIOJack::io_jack_t::portnames_in [private]

5.183.4.10

portnames_out

MHAParser::vstring_t MHAIOJack::io_jack_t::portnames_out [private]

5.183.4.11

ports_in_physical

MHAParser::vstring_mon_t MHAIOJack::io_jack_t::ports_in_physical [private]

© 2005-2018 HörTech gGmbH, Oldenburg

692

5.183.4.12

CONTENTS

ports_out_physical

MHAParser::vstring_mon_t MHAIOJack::io_jack_t::ports_out_physical [private]

5.183.4.13

ports_in_all

MHAParser::vstring_mon_t MHAIOJack::io_jack_t::ports_in_all [private]

5.183.4.14

ports_out_all

MHAParser::vstring_mon_t MHAIOJack::io_jack_t::ports_out_all [private]

5.183.4.15

ports_parser

MHAParser::parser_t MHAIOJack::io_jack_t::ports_parser [private]

5.183.4.16

state_cpuload

MHAParser::float_mon_t MHAIOJack::io_jack_t::state_cpuload [private]

5.183.4.17

state_xruns

MHAParser::int_mon_t MHAIOJack::io_jack_t::state_xruns [private]

5.183.4.18

state_priority

MHAParser::int_mon_t MHAIOJack::io_jack_t::state_priority [private]

5.183.4.19

state_scheduler

MHAParser::string_mon_t MHAIOJack::io_jack_t::state_scheduler [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.184

MHAIOPortAudio::device_info_t Class Reference

5.183.4.20

693

state_parser

MHAParser::parser_t MHAIOJack::io_jack_t::state_parser [private]

5.183.4.21

patchbay

MHAEvents::patchbay_t< io_jack_t> MHAIOJack::io_jack_t::patchbay [private]

The documentation for this class was generated from the following file:

• MHAIOJack.cpp

5.184

MHAIOPortAudio::device_info_t Class Reference

Inheritance diagram for MHAIOPortAudio::device_info_t:

MHAParser::base_t

MHAParser::parser_t

MHAIOPortAudio::device
_info_t

Public Member Functions
• device_info_t ()
• void fill_info ()
© 2005-2018 HörTech gGmbH, Oldenburg

694

CONTENTS

Public Attributes
•
•
•
•
•
•
•
•
•
•
•

MHAParser::int_mon_t numDevices
MHAParser::vint_mon_t structVersion
MHAParser::vstring_mon_t name
MHAParser::vint_mon_t hostApi
MHAParser::vint_mon_t maxInputChannels
MHAParser::vint_mon_t maxOutputChannels
MHAParser::vfloat_mon_t defaultLowInputLatency
MHAParser::vfloat_mon_t defaultLowOutputLatency
MHAParser::vfloat_mon_t defaultHighInputLatency
MHAParser::vfloat_mon_t defaultHighOutputLatency
MHAParser::vfloat_mon_t defaultSampleRate

Additional Inherited Members
5.184.1

5.184.1.1

Constructor & Destructor Documentation

device_info_t()

MHAIOPortAudio::device_info_t::device_info_t ( ) [inline]

5.184.2

5.184.2.1

Member Function Documentation

fill_info()

void MHAIOPortAudio::device_info_t::fill_info ( ) [inline]

5.184.3

5.184.3.1

Member Data Documentation

numDevices

MHAParser::int_mon_t MHAIOPortAudio::device_info_t::numDevices

© 2005-2018 HörTech gGmbH, Oldenburg

5.184

5.184.3.2

MHAIOPortAudio::device_info_t Class Reference

695

structVersion

MHAParser::vint_mon_t MHAIOPortAudio::device_info_t::structVersion

5.184.3.3

name

MHAParser::vstring_mon_t MHAIOPortAudio::device_info_t::name

5.184.3.4

hostApi

MHAParser::vint_mon_t MHAIOPortAudio::device_info_t::hostApi

5.184.3.5

maxInputChannels

MHAParser::vint_mon_t MHAIOPortAudio::device_info_t::maxInputChannels

5.184.3.6

maxOutputChannels

MHAParser::vint_mon_t MHAIOPortAudio::device_info_t::maxOutputChannels

5.184.3.7

defaultLowInputLatency

MHAParser::vfloat_mon_t MHAIOPortAudio::device_info_t::defaultLowInputLatency

5.184.3.8

defaultLowOutputLatency

MHAParser::vfloat_mon_t MHAIOPortAudio::device_info_t::defaultLowOutputLatency

5.184.3.9

defaultHighInputLatency

MHAParser::vfloat_mon_t MHAIOPortAudio::device_info_t::defaultHighInputLatency

© 2005-2018 HörTech gGmbH, Oldenburg

696

5.184.3.10

CONTENTS

defaultHighOutputLatency

MHAParser::vfloat_mon_t MHAIOPortAudio::device_info_t::defaultHighOutputLatency

5.184.3.11

defaultSampleRate

MHAParser::vfloat_mon_t MHAIOPortAudio::device_info_t::defaultSampleRate

The documentation for this class was generated from the following file:
• MHAIOPortAudio.cpp

5.185

MHAIOPortAudio::io_portaudio_t Class Reference

Main class for Portaudio sound IO.
Inheritance diagram for MHAIOPortAudio::io_portaudio_t:

MHAParser::base_t

MHAParser::parser_t

MHAIOPortAudio::io
_portaudio_t

Public Member Functions
• io_portaudio_t (unsigned int fragsize, float samplerate, IOProcessEvent_t proc←_event, void ∗ proc_handle, IOStartedEvent_t start_event, void ∗ start_handle, I←OStoppedEvent_t stop_event, void ∗ stop_handle)
• void device_name_updated ()
• void device_index_updated ()
• ∼io_portaudio_t ()
• void cmd_prepare (int, int)
• void cmd_start ()
• void cmd_stop ()
• void cmd_release ()
• int portaudio_callback (const void ∗input, void ∗output, unsigned long frame_count,
const PaStreamCallbackTimeInfo ∗time_info, PaStreamCallbackFlags status_flags)
© 2005-2018 HörTech gGmbH, Oldenburg

5.185

MHAIOPortAudio::io_portaudio_t Class Reference

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

device_info_t device_info
MHASignal::waveform_t ∗ s_in
mha_wave_t ∗ s_out
float samplerate
unsigned int nchannels_out
unsigned int nchannels_in
unsigned int fragsize
IOProcessEvent_t proc_event
void ∗ proc_handle
IOStartedEvent_t start_event
void ∗ start_handle
IOStoppedEvent_t stop_event
void ∗ stop_handle
PaStream ∗ portaudio_stream
MHAParser::string_t device_name
MHAParser::int_t device_index
MHAEvents::patchbay_t< io_portaudio_t > patchbay

Additional Inherited Members

5.185.1

Detailed Description

Main class for Portaudio sound IO.

5.185.2

5.185.2.1

Constructor & Destructor Documentation

io_portaudio_t()

MHAIOPortAudio::io_portaudio_t::io_portaudio_t (
unsigned int fragsize,
float samplerate,
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle ) [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

697

698

CONTENTS

5.185.2.2 ∼io_portaudio_t()
MHAIOPortAudio::io_portaudio_t::∼io_portaudio_t ( ) [inline]

5.185.3

5.185.3.1

Member Function Documentation

device_name_updated()

void MHAIOPortAudio::io_portaudio_t::device_name_updated ( ) [inline]

5.185.3.2

device_index_updated()

void MHAIOPortAudio::io_portaudio_t::device_index_updated ( ) [inline]

5.185.3.3

cmd_prepare()

void MHAIOPortAudio::io_portaudio_t::cmd_prepare (
int nchannels_in,
int nchannels_out )

5.185.3.4

cmd_start()

void MHAIOPortAudio::io_portaudio_t::cmd_start ( )

5.185.3.5

cmd_stop()

void MHAIOPortAudio::io_portaudio_t::cmd_stop ( )

5.185.3.6

cmd_release()

void MHAIOPortAudio::io_portaudio_t::cmd_release ( )

© 2005-2018 HörTech gGmbH, Oldenburg

5.185

5.185.3.7

MHAIOPortAudio::io_portaudio_t Class Reference

699

portaudio_callback()

int MHAIOPortAudio::io_portaudio_t::portaudio_callback (
const void ∗ input,
void ∗ output,
unsigned long frame_count,
const PaStreamCallbackTimeInfo ∗ time_info,
PaStreamCallbackFlags status_flags )

5.185.4

5.185.4.1

Member Data Documentation

device_info

device_info_t MHAIOPortAudio::io_portaudio_t::device_info [private]

5.185.4.2

s_in

MHASignal::waveform_t∗ MHAIOPortAudio::io_portaudio_t::s_in [private]

5.185.4.3

s_out

mha_wave_t∗ MHAIOPortAudio::io_portaudio_t::s_out [private]

5.185.4.4

samplerate

float MHAIOPortAudio::io_portaudio_t::samplerate [private]

5.185.4.5

nchannels_out

unsigned int MHAIOPortAudio::io_portaudio_t::nchannels_out [private]

© 2005-2018 HörTech gGmbH, Oldenburg

700

5.185.4.6

CONTENTS

nchannels_in

unsigned int MHAIOPortAudio::io_portaudio_t::nchannels_in [private]

5.185.4.7

fragsize

unsigned int MHAIOPortAudio::io_portaudio_t::fragsize [private]

5.185.4.8

proc_event

IOProcessEvent_t MHAIOPortAudio::io_portaudio_t::proc_event [private]

5.185.4.9

proc_handle

void∗ MHAIOPortAudio::io_portaudio_t::proc_handle [private]

5.185.4.10

start_event

IOStartedEvent_t MHAIOPortAudio::io_portaudio_t::start_event [private]

5.185.4.11

start_handle

void∗ MHAIOPortAudio::io_portaudio_t::start_handle [private]

5.185.4.12

stop_event

IOStoppedEvent_t MHAIOPortAudio::io_portaudio_t::stop_event [private]

5.185.4.13

stop_handle

void∗ MHAIOPortAudio::io_portaudio_t::stop_handle [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.186

MHAJack::client_avg_t Class Reference

5.185.4.14

701

portaudio_stream

PaStream∗ MHAIOPortAudio::io_portaudio_t::portaudio_stream [private]

5.185.4.15

device_name

MHAParser::string_t MHAIOPortAudio::io_portaudio_t::device_name [private]

5.185.4.16

device_index

MHAParser::int_t MHAIOPortAudio::io_portaudio_t::device_index [private]

5.185.4.17

patchbay

MHAEvents::patchbay_t< io_portaudio_t> MHAIOPortAudio::io_portaudio_t::patchbay
[private]

The documentation for this class was generated from the following file:
• MHAIOPortAudio.cpp

5.186

MHAJack::client_avg_t Class Reference

Generic JACK client for averaging a system response across time.
Inheritance diagram for MHAJack::client_avg_t:

MHAJack::client_t

MHAJack::client_avg_t

© 2005-2018 HörTech gGmbH, Oldenburg

702

CONTENTS

Public Member Functions
• client_avg_t (const std::string & name, const unsigned int &nrep_)
Constructor for averaging client.

• void io ( mha_wave_t ∗ s_out, mha_wave_t ∗ s_in, const std::vector< std::string >
&p_out, const std::vector< std::string > &p_in, float ∗srate=NULL, unsigned int ∗ fragsize=NULL)
Recording function.

Private Member Functions
• void proc ( mha_wave_t ∗sIn, mha_wave_t ∗∗sOut)
• void IOStoppedEvent ()

Static Private Member Functions
• static int proc (void ∗handle, mha_wave_t ∗sIn, mha_wave_t ∗∗sOut)
• static void IOStoppedEvent (void ∗handle, int proc_err, int io_err)

Private Attributes
•
•
•
•
•
•
•
•
•

bool b_stopped
unsigned int pos
mha_wave_t ∗ sn_in
mha_wave_t ∗ sn_out
std::string name
MHASignal::waveform_t ∗ frag_out
const unsigned int nrep
unsigned int n
bool b_ready

Additional Inherited Members
5.186.1

Detailed Description

Generic JACK client for averaging a system response across time.

5.186.2

5.186.2.1

Constructor & Destructor Documentation

client_avg_t()

MHAJack::client_avg_t::client_avg_t (
const std::string & name_,
const unsigned int & nrep_ )

Constructor for averaging client.

© 2005-2018 HörTech gGmbH, Oldenburg

5.186

MHAJack::client_avg_t Class Reference

703

Parameters
name←- Name of JACK client
_
nrep←- Number of repetitions
_

5.186.3

Member Function Documentation

5.186.3.1

io()

void MHAJack::client_avg_t::io (
mha_wave_t ∗ is_out,
mha_wave_t ∗ is_in,
const std::vector< std::string > & p_out,
const std::vector< std::string > & p_in,
float ∗ srate = NULL,
unsigned int ∗ fragsize = NULL )

Recording function.
long-description
Parameters
is_out

Input (test) signal, which will be repeated

is_in
p_out

System response (averaged, same length as input required)
Ports to play back the test signal

p_in

Ports to record from the system response

srate

Pointer to sampling rate variable, will be filled with server sampling rate

fragsize

Pointer to fragment size variable, will be filled with server fragment size

5.186.3.2

proc() [1/2]

int MHAJack::client_avg_t::proc (
void ∗ handle,
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [static], [private]

© 2005-2018 HörTech gGmbH, Oldenburg

704

5.186.3.3

CONTENTS

IOStoppedEvent() [1/2]

void MHAJack::client_avg_t::IOStoppedEvent (
void ∗ handle,
int proc_err,
int io_err ) [static], [private]

5.186.3.4

proc() [2/2]

void MHAJack::client_avg_t::proc (
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [private]

5.186.3.5

IOStoppedEvent() [2/2]

void MHAJack::client_avg_t::IOStoppedEvent ( ) [private]

5.186.4

5.186.4.1

Member Data Documentation

b_stopped

bool MHAJack::client_avg_t::b_stopped [private]

5.186.4.2

pos

unsigned int MHAJack::client_avg_t::pos [private]

5.186.4.3

sn_in

mha_wave_t∗ MHAJack::client_avg_t::sn_in [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.186

5.186.4.4

MHAJack::client_avg_t Class Reference

705

sn_out

mha_wave_t∗ MHAJack::client_avg_t::sn_out [private]

5.186.4.5

name

std::string MHAJack::client_avg_t::name [private]

5.186.4.6

frag_out

MHASignal::waveform_t∗ MHAJack::client_avg_t::frag_out [private]

5.186.4.7

nrep

const unsigned int MHAJack::client_avg_t::nrep [private]

5.186.4.8

n

unsigned int MHAJack::client_avg_t::n [private]

5.186.4.9

b_ready

bool MHAJack::client_avg_t::b_ready [private]

The documentation for this class was generated from the following files:

• mhajack.h
• mhajack.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

706

5.187

CONTENTS

MHAJack::client_noncont_t Class Reference

Generic client for synchronous playback and recording of waveform fragments.
Inheritance diagram for MHAJack::client_noncont_t:

MHAJack::client_t

MHAJack::client_noncont_t

Public Member Functions
• client_noncont_t (const std::string & name, bool use_jack_transport=false)
• void io ( mha_wave_t ∗ s_out, mha_wave_t ∗ s_in, const std::vector< std::string >
&p_out, const std::vector< std::string > &p_in, float ∗srate=NULL, unsigned int ∗ fragsize=NULL)

Private Member Functions
• void proc ( mha_wave_t ∗sIn, mha_wave_t ∗∗sOut)
• void IOStoppedEvent ()

Static Private Member Functions
• static int proc (void ∗handle, mha_wave_t ∗sIn, mha_wave_t ∗∗sOut)
• static void IOStoppedEvent (void ∗handle, int proc_err, int io_err)

Private Attributes
•
•
•
•
•
•

bool b_stopped
unsigned int pos
mha_wave_t ∗ sn_in
mha_wave_t ∗ sn_out
std::string name
MHASignal::waveform_t ∗ frag_out
© 2005-2018 HörTech gGmbH, Oldenburg

5.187

MHAJack::client_noncont_t Class Reference

707

Additional Inherited Members

5.187.1

Detailed Description

Generic client for synchronous playback and recording of waveform fragments.

5.187.2

5.187.2.1

Constructor & Destructor Documentation

client_noncont_t()

MHAJack::client_noncont_t::client_noncont_t (
const std::string & name,
bool use_jack_transport = false )

5.187.3

5.187.3.1

Member Function Documentation

io()

void MHAJack::client_noncont_t::io (
mha_wave_t ∗ s_out,
mha_wave_t ∗ s_in,
const std::vector< std::string > & p_out,
const std::vector< std::string > & p_in,
float ∗ srate = NULL,
unsigned int ∗ fragsize = NULL )

5.187.3.2

proc() [1/2]

int MHAJack::client_noncont_t::proc (
void ∗ handle,
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [static], [private]

© 2005-2018 HörTech gGmbH, Oldenburg

708

5.187.3.3

CONTENTS

IOStoppedEvent() [1/2]

void MHAJack::client_noncont_t::IOStoppedEvent (
void ∗ handle,
int proc_err,
int io_err ) [static], [private]

5.187.3.4

proc() [2/2]

void MHAJack::client_noncont_t::proc (
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [private]

5.187.3.5

IOStoppedEvent() [2/2]

void MHAJack::client_noncont_t::IOStoppedEvent ( ) [private]

5.187.4

5.187.4.1

Member Data Documentation

b_stopped

bool MHAJack::client_noncont_t::b_stopped [private]

5.187.4.2

pos

unsigned int MHAJack::client_noncont_t::pos [private]

5.187.4.3

sn_in

mha_wave_t∗ MHAJack::client_noncont_t::sn_in [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.188

MHAJack::client_t Class Reference

5.187.4.4

709

sn_out

mha_wave_t∗ MHAJack::client_noncont_t::sn_out [private]

5.187.4.5

name

std::string MHAJack::client_noncont_t::name [private]

5.187.4.6

frag_out

MHASignal::waveform_t∗ MHAJack::client_noncont_t::frag_out [private]

The documentation for this class was generated from the following files:

• mhajack.h
• mhajack.cpp

5.188

MHAJack::client_t Class Reference

Generic asynchronous JACK client.
Inheritance diagram for MHAJack::client_t:

MHAJack::client_t

MHAIOJack::io_jack_t

© 2005-2018 HörTech gGmbH, Oldenburg

MHAJack::client_avg_t

MHAJack::client_noncont_t

710

CONTENTS

Public Member Functions
• client_t ( IOProcessEvent_t proc_event, void ∗ proc_handle=NULL, IOStarted←Event_t start_event=NULL, void ∗ start_handle=NULL, IOStoppedEvent_t stop_←event=NULL, void ∗ stop_handle=NULL, bool use_jack_transport=false)
• void prepare (const std::string &client_name, const unsigned int & nchannels_in, const
unsigned int & nchannels_out)
Allocate buffers, activate JACK client and install internal ports.

• void prepare (const std::string &server_name, const std::string &client_name, const unsigned int & nchannels_in, const unsigned int & nchannels_out)
Allocate buffers, ports, and activates JACK client.

• void release ()
Remove JACK client and deallocate internal ports and buffers.

• void start (bool fail_on_async_jack_error=true)
• void stop ()
• void connect_input (const std::vector< std::string > &)
Connect the input ports when connection variable is accessed.

• void connect_output (const std::vector< std::string > &)
Connect the output ports when connection variable is accessed.

•
•
•
•
•
•

unsigned int get_fragsize () const
float get_srate () const
unsigned long get_xruns ()
unsigned long get_xruns_reset ()
std::string str_error (int err)
void get_ports (std::vector< std::string > &, unsigned long jack_flags)

•
•
•
•
•
•

std::vector< std::string > get_my_input_ports ()
std::vector< std::string > get_my_output_ports ()
void set_input_portnames (const std::vector< std::string > &)
void set_output_portnames (const std::vector< std::string > &)
float get_cpu_load ()
void set_use_jack_transport (bool ut)

Get a list of Jack ports.

Protected Attributes
• jack_client_t ∗ jc

Private Member Functions
• void prepare_impl (const char ∗server_name, const char ∗client_name, const unsigned
int & nchannels_in, const unsigned int & nchannels_out)
Allocate buffers, activate JACK client and allocates jack ports Registers the jack client with the
given server and activates it.

•
•
•
•

void internal_start ()
void internal_stop ()
void stopped (int, int)
int jack_proc_cb (jack_nframes_t)
This is the main processing callback.

• int jack_xrun_cb ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.188

MHAJack::client_t Class Reference

Static Private Member Functions
• static int jack_proc_cb (jack_nframes_t, void ∗)
• static int jack_xrun_cb (void ∗)

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

unsigned long num_xruns
unsigned int fragsize
float samplerate
unsigned int nchannels_in
unsigned int nchannels_out
IOProcessEvent_t proc_event
void ∗ proc_handle
IOStartedEvent_t start_event
void ∗ start_handle
IOStoppedEvent_t stop_event
void ∗ stop_handle
MHASignal::waveform_t ∗ s_in
mha_wave_t ∗ s_out
MHAJack::port_t ∗∗ inch
MHAJack::port_t ∗∗ outch
unsigned int flags
bool b_prepared
bool use_jack_transport
jack_transport_state_t jstate_prev
std::vector< std::string > input_portnames
std::vector< std::string > output_portnames
bool fail_on_async_jackerror

5.188.1

Detailed Description

Generic asynchronous JACK client.

5.188.2

5.188.2.1

Constructor & Destructor Documentation

client_t()

MHAJack::client_t::client_t (
IOProcessEvent_t proc_event,
void ∗ proc_handle = NULL,
IOStartedEvent_t start_event = NULL,
void ∗ start_handle = NULL,
IOStoppedEvent_t stop_event = NULL,
void ∗ stop_handle = NULL,
bool use_jack_transport = false )

© 2005-2018 HörTech gGmbH, Oldenburg

711

712

5.188.3

CONTENTS

Member Function Documentation

5.188.3.1

prepare() [1/2]

void MHAJack::client_t::prepare (
const std::string & client_name,
const unsigned int & nch_in,
const unsigned int & nch_out )

Allocate buffers, activate JACK client and install internal ports.
Registers the jack client with the default jack server and activates it.
Parameters
client_name
nch_in

Name of this jack client
Input ports to register

nch_out

Output ports to register

5.188.3.2

prepare() [2/2]

void MHAJack::client_t::prepare (
const std::string & server_name,
const std::string & client_name,
const unsigned int & nch_in,
const unsigned int & nch_out )

Allocate buffers, ports, and activates JACK client.
Registers the jack client with specified jack server and activates it.
Parameters
server_name

Name of the jack server to register with

client_name
nch_in

Name of this jack client
Input ports to register

nch_out

Output ports to register

5.188.3.3

release()

void MHAJack::client_t::release (

© 2005-2018 HörTech gGmbH, Oldenburg

5.188

MHAJack::client_t Class Reference

void

713

)

Remove JACK client and deallocate internal ports and buffers.

5.188.3.4

start()

void MHAJack::client_t::start (
bool fail_on_async_jack_error = true )

5.188.3.5

stop()

void MHAJack::client_t::stop ( )

5.188.3.6

connect_input()

void MHAJack::client_t::connect_input (
const std::vector< std::string > & con )

Connect the input ports when connection variable is accessed.

5.188.3.7

connect_output()

void MHAJack::client_t::connect_output (
const std::vector< std::string > & con )

Connect the output ports when connection variable is accessed.

5.188.3.8

get_fragsize()

unsigned int MHAJack::client_t::get_fragsize ( ) const [inline]

5.188.3.9

get_srate()

float MHAJack::client_t::get_srate ( ) const [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

714

5.188.3.10

CONTENTS

get_xruns()

unsigned long MHAJack::client_t::get_xruns ( ) [inline]

5.188.3.11

get_xruns_reset()

unsigned long MHAJack::client_t::get_xruns_reset ( )

5.188.3.12

str_error()

std::string MHAJack::client_t::str_error (
int err )

5.188.3.13

get_ports()

void MHAJack::client_t::get_ports (
std::vector< std::string > & res,
unsigned long jack_flags )

Get a list of Jack ports.
Parameters
res

Result string vector

jack_flags

Jack port flags (JackPortInput etc.)

5.188.3.14

get_my_input_ports()

std::vector< std::string > MHAJack::client_t::get_my_input_ports ( )

5.188.3.15

get_my_output_ports()

std::vector< std::string > MHAJack::client_t::get_my_output_ports ( )

© 2005-2018 HörTech gGmbH, Oldenburg

5.188

MHAJack::client_t Class Reference

5.188.3.16

715

set_input_portnames()

void MHAJack::client_t::set_input_portnames (
const std::vector< std::string > & names )

5.188.3.17

set_output_portnames()

void MHAJack::client_t::set_output_portnames (
const std::vector< std::string > & names )

5.188.3.18

get_cpu_load()

float MHAJack::client_t::get_cpu_load ( )

5.188.3.19

set_use_jack_transport()

void MHAJack::client_t::set_use_jack_transport (
bool ut ) [inline]

5.188.3.20

prepare_impl()

void MHAJack::client_t::prepare_impl (
const char ∗ server_name,
const char ∗ client_name,
const unsigned int & nch_in,
const unsigned int & nch_out ) [private]

Allocate buffers, activate JACK client and allocates jack ports Registers the jack client with the
given server and activates it.
Parameters
server_name

Name of the jack server to register with

client_name
nch_in

Name of this jack client
Input ports to register

nch_out

Output ports to register

© 2005-2018 HörTech gGmbH, Oldenburg

716

5.188.3.21

CONTENTS

internal_start()

void MHAJack::client_t::internal_start ( ) [private]

5.188.3.22

internal_stop()

void MHAJack::client_t::internal_stop ( ) [private]

5.188.3.23

stopped()

void MHAJack::client_t::stopped (
int proc_err,
int io_err ) [private]

5.188.3.24

jack_proc_cb() [1/2]

int MHAJack::client_t::jack_proc_cb (
jack_nframes_t n,
void ∗ h ) [static], [private]

5.188.3.25

jack_proc_cb() [2/2]

int MHAJack::client_t::jack_proc_cb (
jack_nframes_t n ) [private]

This is the main processing callback.
Here happens double buffering and downsampling.
5.188.3.26

jack_xrun_cb() [1/2]

int MHAJack::client_t::jack_xrun_cb (
void ∗ h ) [static], [private]

5.188.3.27

jack_xrun_cb() [2/2]

int MHAJack::client_t::jack_xrun_cb ( ) [inline], [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.188

MHAJack::client_t Class Reference

5.188.4

Member Data Documentation

5.188.4.1

num_xruns

unsigned long MHAJack::client_t::num_xruns [private]

5.188.4.2

fragsize

unsigned int MHAJack::client_t::fragsize [private]

5.188.4.3

samplerate

float MHAJack::client_t::samplerate [private]

5.188.4.4

nchannels_in

unsigned int MHAJack::client_t::nchannels_in [private]

5.188.4.5

nchannels_out

unsigned int MHAJack::client_t::nchannels_out [private]

5.188.4.6

proc_event

IOProcessEvent_t MHAJack::client_t::proc_event [private]

5.188.4.7

proc_handle

void∗ MHAJack::client_t::proc_handle [private]

© 2005-2018 HörTech gGmbH, Oldenburg

717

718

5.188.4.8

CONTENTS

start_event

IOStartedEvent_t MHAJack::client_t::start_event [private]

5.188.4.9

start_handle

void∗ MHAJack::client_t::start_handle [private]

5.188.4.10

stop_event

IOStoppedEvent_t MHAJack::client_t::stop_event [private]

5.188.4.11

stop_handle

void∗ MHAJack::client_t::stop_handle [private]

5.188.4.12

s_in

MHASignal::waveform_t∗ MHAJack::client_t::s_in [private]

5.188.4.13

s_out

mha_wave_t∗ MHAJack::client_t::s_out [private]

5.188.4.14

inch

MHAJack::port_t∗∗ MHAJack::client_t::inch [private]

5.188.4.15

outch

MHAJack::port_t∗∗ MHAJack::client_t::outch [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.188

MHAJack::client_t Class Reference

5.188.4.16

719

jc

jack_client_t∗ MHAJack::client_t::jc [protected]

5.188.4.17

flags

unsigned int MHAJack::client_t::flags [private]

5.188.4.18

b_prepared

bool MHAJack::client_t::b_prepared [private]

5.188.4.19

use_jack_transport

bool MHAJack::client_t::use_jack_transport [private]

5.188.4.20

jstate_prev

jack_transport_state_t MHAJack::client_t::jstate_prev [private]

5.188.4.21

input_portnames

std::vector MHAJack::client_t::input_portnames [private]

5.188.4.22

output_portnames

std::vector MHAJack::client_t::output_portnames [private]

© 2005-2018 HörTech gGmbH, Oldenburg

720

5.188.4.23

CONTENTS

fail_on_async_jackerror

bool MHAJack::client_t::fail_on_async_jackerror [private]

The documentation for this class was generated from the following files:
• mhajack.h
• mhajack.cpp

5.189

MHAJack::port_t Class Reference

Class for one channel/port.
Public Types
• enum dir_t { input, output }
Public Member Functions
• port_t (jack_client_t ∗ jc, dir_t dir, int id)
• port_t (jack_client_t ∗ jc, dir_t dir, const std::string &id)
Constructor to create port with specific name.

•
•
•
•
•
•

∼port_t ()
void read ( mha_wave_t ∗s, unsigned int ch)
void write ( mha_wave_t ∗s, unsigned int ch)
void mute (unsigned int n)
void connect_to (const char ∗pn)
const char ∗ get_short_name ()
Return the port name.

Private Attributes
•
•
•
•

dir_t dir_type
jack_port_t ∗ port
jack_default_audio_sample_t ∗ iob
jack_client_t ∗ jc

5.189.1

Detailed Description

Class for one channel/port.
This class represents one JACK port. Double buffering for asynchronous process callbacks is
managed by this class.
5.189.2

Member Enumeration Documentation

5.189.2.1
enum

dir_t

MHAJack::port_t::dir_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.189

MHAJack::port_t Class Reference

Enumerator
input
output

5.189.3

Constructor & Destructor Documentation

5.189.3.1

port_t() [1/2]

MHAJack::port_t::port_t (
jack_client_t ∗ jc,
dir_t dir,
int id )

Parameters
jc

JACK client.

dir

Direction (input/output).

id

Number in port name (starting with 1).

5.189.3.2

port_t() [2/2]

MHAJack::port_t::port_t (
jack_client_t ∗ jc,
dir_t dir,
const std::string & id )

Constructor to create port with specific name.
Parameters
jc

JACK client.

dir
id

Direction (input/output).
Port name.

5.189.3.3 ∼port_t()
MHAJack::port_t::∼port_t ( )

© 2005-2018 HörTech gGmbH, Oldenburg

721

722

5.189.4

CONTENTS

Member Function Documentation

5.189.4.1

read()

void MHAJack::port_t::read (
mha_wave_t ∗ s,
unsigned int ch )

Parameters
s

Signal structure to store the audio data.

ch

Channel number in audio data structure to be used.

5.189.4.2

write()

void MHAJack::port_t::write (
mha_wave_t ∗ s,
unsigned int ch )

Parameters
s

Signal structure from which the audio data is read.

ch

Channel number in audio data structure to be used.

5.189.4.3

mute()

void MHAJack::port_t::mute (
unsigned int n )

Parameters
n

Number of samples to be muted (must be the same as reported by Jack processing
callback).

5.189.4.4

connect_to()

void MHAJack::port_t::connect_to (
const char ∗ pn )
© 2005-2018 HörTech gGmbH, Oldenburg

5.189

MHAJack::port_t Class Reference

723

Parameters
pn

Port name to connect to

5.189.4.5

get_short_name()

const char ∗ MHAJack::port_t::get_short_name ( )

Return the port name.

5.189.5

5.189.5.1

Member Data Documentation

dir_type

dir_t MHAJack::port_t::dir_type [private]

5.189.5.2

port

jack_port_t∗ MHAJack::port_t::port [private]

5.189.5.3

iob

jack_default_audio_sample_t∗ MHAJack::port_t::iob [private]

5.189.5.4

jc

jack_client_t∗ MHAJack::port_t::jc [private]

The documentation for this class was generated from the following files:
• mhajack.h
• mhajack.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

724

5.190

CONTENTS

MHAKernel::algo_comm_class_t Class Reference

Inheritance diagram for MHAKernel::algo_comm_class_t:

MHAKernel::algo_comm
_class_t

mhaplug_cfg_t

MHAPlugin_Split::splitted
_part_t

plug_t

pluginloader_t

Public Member Functions
•
•
•
•
•
•
•
•
•
•

algo_comm_class_t ()
virtual ∼algo_comm_class_t ()
algo_comm_t get_c_handle ()
virtual void local_insert_var (const char ∗, comm_var_t)
virtual void local_remove_var (const char ∗)
virtual void local_remove_ref (void ∗)
virtual bool local_is_var (const char ∗)
virtual void local_get_var (const char ∗, comm_var_t ∗)
virtual std::string local_get_entries ()
virtual comm_var_map_t::size_type size () const

Static Public Member Functions
•
•
•
•
•
•
•
•
•
•
•

static int insert_var (void ∗, const char ∗, comm_var_t)
static int insert_var_int (void ∗, const char ∗, int ∗)
static int insert_var_float (void ∗, const char ∗, float ∗)
static int remove_var (void ∗, const char ∗)
static int remove_ref (void ∗, void ∗)
static int is_var (void ∗, const char ∗)
static int get_var (void ∗, const char ∗, comm_var_t ∗)
static int get_var_int (void ∗, const char ∗, int ∗)
static int get_var_float (void ∗, const char ∗, float ∗)
static int get_entries (void ∗, char ∗, unsigned int)
static const char ∗ get_error (int)

Public Attributes
• char ∗ algo_comm_id_string
© 2005-2018 HörTech gGmbH, Oldenburg

5.190

MHAKernel::algo_comm_class_t Class Reference

Private Attributes
• algo_comm_t ac
• int algo_comm_id_string_len
• comm_var_map_t vars

5.190.1

5.190.1.1

Constructor & Destructor Documentation

algo_comm_class_t()

MHAKernel::algo_comm_class_t::algo_comm_class_t ( )

5.190.1.2 ∼algo_comm_class_t()
MHAKernel::algo_comm_class_t::∼algo_comm_class_t ( ) [virtual]

5.190.2

5.190.2.1

Member Function Documentation

get_c_handle()

algo_comm_t MHAKernel::algo_comm_class_t::get_c_handle ( )

5.190.2.2

insert_var()

int MHAKernel::algo_comm_class_t::insert_var (
void ∗ handle,
const char ∗ name,
comm_var_t var ) [static]

5.190.2.3

insert_var_int()

int MHAKernel::algo_comm_class_t::insert_var_int (
void ∗ handle,
const char ∗ name,
int ∗ ivar ) [static]

© 2005-2018 HörTech gGmbH, Oldenburg

725

726

5.190.2.4

CONTENTS

insert_var_float()

int MHAKernel::algo_comm_class_t::insert_var_float (
void ∗ handle,
const char ∗ name,
float ∗ ivar ) [static]

5.190.2.5

remove_var()

int MHAKernel::algo_comm_class_t::remove_var (
void ∗ handle,
const char ∗ name ) [static]

5.190.2.6

remove_ref()

int MHAKernel::algo_comm_class_t::remove_ref (
void ∗ handle,
void ∗ ref ) [static]

5.190.2.7

is_var()

int MHAKernel::algo_comm_class_t::is_var (
void ∗ handle,
const char ∗ name ) [static]

5.190.2.8

get_var()

int MHAKernel::algo_comm_class_t::get_var (
void ∗ handle,
const char ∗ name,
comm_var_t ∗ var ) [static]

5.190.2.9

get_var_int()

int MHAKernel::algo_comm_class_t::get_var_int (
void ∗ handle,
const char ∗ name,
int ∗ ivar ) [static]

© 2005-2018 HörTech gGmbH, Oldenburg

5.190

MHAKernel::algo_comm_class_t Class Reference

5.190.2.10

get_var_float()

int MHAKernel::algo_comm_class_t::get_var_float (
void ∗ handle,
const char ∗ name,
float ∗ ivar ) [static]

5.190.2.11

get_entries()

int MHAKernel::algo_comm_class_t::get_entries (
void ∗ handle,
char ∗ ret,
unsigned int len ) [static]

5.190.2.12

get_error()

const char ∗ MHAKernel::algo_comm_class_t::get_error (
int e ) [static]

5.190.2.13

local_insert_var()

void MHAKernel::algo_comm_class_t::local_insert_var (
const char ∗ name,
comm_var_t var ) [virtual]

5.190.2.14

local_remove_var()

void MHAKernel::algo_comm_class_t::local_remove_var (
const char ∗ name ) [virtual]

5.190.2.15

local_remove_ref()

void MHAKernel::algo_comm_class_t::local_remove_ref (
void ∗ addr ) [virtual]

© 2005-2018 HörTech gGmbH, Oldenburg

727

728

5.190.2.16

CONTENTS

local_is_var()

bool MHAKernel::algo_comm_class_t::local_is_var (
const char ∗ name ) [virtual]

5.190.2.17

local_get_var()

void MHAKernel::algo_comm_class_t::local_get_var (
const char ∗ name,
comm_var_t ∗ var ) [virtual]

5.190.2.18

local_get_entries()

std::string MHAKernel::algo_comm_class_t::local_get_entries ( ) [virtual]

5.190.2.19

size()

MHAKernel::comm_var_map_t::size_type MHAKernel::algo_comm_class_t::size ( ) const
[virtual]

5.190.3

5.190.3.1

Member Data Documentation

algo_comm_id_string

char∗ MHAKernel::algo_comm_class_t::algo_comm_id_string

5.190.3.2

ac

algo_comm_t MHAKernel::algo_comm_class_t::ac [private]

5.190.3.3

algo_comm_id_string_len

int MHAKernel::algo_comm_class_t::algo_comm_id_string_len [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.191

MHAKernel::comm_var_map_t Class Reference

5.190.3.4

729

vars

comm_var_map_t MHAKernel::algo_comm_class_t::vars [private]

The documentation for this class was generated from the following files:
• mha_algo_comm.hh
• mha_algo_comm.cpp

5.191

MHAKernel::comm_var_map_t Class Reference

Inherits map< std::string, comm_var_t >.
Public Member Functions
• bool has_key (const std::string &name)
5.191.1

Member Function Documentation

5.191.1.1

has_key()

bool MHAKernel::comm_var_map_t::has_key (
const std::string & name ) [inline]

The documentation for this class was generated from the following file:
• mha_algo_comm.hh

5.192

MHAMultiSrc::base_t Class Reference

Base class for source selection.
Inheritance diagram for MHAMultiSrc::base_t:

MHAPlugin::config_t
< MHAMultiSrc::channels_t >

MHAMultiSrc::base_t

MHAMultiSrc::spectrum_t

© 2005-2018 HörTech gGmbH, Oldenburg

MHAMultiSrc::waveform_t

730

CONTENTS

Public Member Functions
• base_t ( algo_comm_t iac)
• void select_source (const std::vector< std::string > &src, int in_channels)
Change the selection of input sources.

Protected Attributes
• algo_comm_t ac

Additional Inherited Members
5.192.1

Detailed Description

Base class for source selection.
See also
MHAMultiSrc::channel_t (p. 731)
MHAMultiSrc::channels_t (p. 732)

5.192.2

5.192.2.1

Constructor & Destructor Documentation

base_t()

MHAMultiSrc::base_t::base_t (
algo_comm_t iac )

5.192.3

5.192.3.1

Member Function Documentation

select_source()

void MHAMultiSrc::base_t::select_source (
const std::vector< std::string > & src,
int in_channels )

Change the selection of input sources.
This function is real-time and thread safe.

© 2005-2018 HörTech gGmbH, Oldenburg

5.193

MHAMultiSrc::channel_t Class Reference

731

Parameters
src

List of input sources

in_channels

Number of input channels in direct input (the processed signal)

5.192.4

Member Data Documentation

5.192.4.1

ac

algo_comm_t MHAMultiSrc::base_t::ac [protected]

The documentation for this class was generated from the following files:
• mha_multisrc.h
• mha_multisrc.cpp

5.193

MHAMultiSrc::channel_t Class Reference

Public Attributes
• std::string name
• int channel

5.193.1

5.193.1.1

Member Data Documentation

name

std::string MHAMultiSrc::channel_t::name

5.193.1.2

channel

int MHAMultiSrc::channel_t::channel

The documentation for this class was generated from the following file:
• mha_multisrc.h
© 2005-2018 HörTech gGmbH, Oldenburg

732

5.194

CONTENTS

MHAMultiSrc::channels_t Class Reference

Inherits vector< MHAMultiSrc::channel_t >.

Public Member Functions
• channels_t (const std::vector< std::string > &src, int in_channels)
Separate a list of input sources into a parsable channel list.

5.194.1

5.194.1.1

Constructor & Destructor Documentation

channels_t()

MHAMultiSrc::channels_t::channels_t (
const std::vector< std::string > & route,
int in_channels )

Separate a list of input sources into a parsable channel list.
The number of input channels if verified, a list of MHAMultiSrc::channel_t (p. 731) is filled.
Parameters
route
in_channels

vector of source channel ids
number of channels in the processed input signal

The documentation for this class was generated from the following files:

• mha_multisrc.h
• mha_multisrc.cpp

© 2005-2018 HörTech gGmbH, Oldenburg

5.195

MHAMultiSrc::spectrum_t Class Reference

5.195

MHAMultiSrc::spectrum_t Class Reference

733

Inheritance diagram for MHAMultiSrc::spectrum_t:

mha_spec_t

MHASignal::spectrum_t

MHA_AC::spectrum_t

MHAPlugin::config_t
< MHAMultiSrc::channels_t >

MHAMultiSrc::base_t

MHAMultiSrc::spectrum_t

Public Member Functions
• spectrum_t ( algo_comm_t iac, std::string name, unsigned int frames, unsigned int
channels)
• mha_spec_t ∗ update ( mha_spec_t ∗s)
Update data of spectrum to hold actual input data.

Additional Inherited Members
5.195.1

5.195.1.1

Constructor & Destructor Documentation

spectrum_t()

MHAMultiSrc::spectrum_t::spectrum_t (
algo_comm_t iac,
std::string name,
unsigned int frames,
unsigned int channels )

© 2005-2018 HörTech gGmbH, Oldenburg

734

5.195.2

CONTENTS

Member Function Documentation

5.195.2.1

update()

mha_spec_t ∗ MHAMultiSrc::spectrum_t::update (
mha_spec_t ∗ s )

Update data of spectrum to hold actual input data.
Parameters
s

Input signal chunk

Returns
Return pointer to spectrum structure
The documentation for this class was generated from the following files:
• mha_multisrc.h
• mha_multisrc.cpp

5.196

MHAMultiSrc::waveform_t Class Reference

Inheritance diagram for MHAMultiSrc::waveform_t:

mha_wave_t

MHASignal::waveform_t

MHA_AC::waveform_t

MHAPlugin::config_t
< MHAMultiSrc::channels_t >

MHAMultiSrc::base_t

MHAMultiSrc::waveform_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.196

MHAMultiSrc::waveform_t Class Reference

735

Public Member Functions
• waveform_t ( algo_comm_t iac, std::string name, unsigned int frames, unsigned int
channels)
• mha_wave_t ∗ update ( mha_wave_t ∗s)
Update data of waveform to hold actual input data.

Additional Inherited Members
5.196.1

5.196.1.1

Constructor & Destructor Documentation

waveform_t()

MHAMultiSrc::waveform_t::waveform_t (
algo_comm_t iac,
std::string name,
unsigned int frames,
unsigned int channels )

5.196.2

5.196.2.1

Member Function Documentation

update()

mha_wave_t ∗ MHAMultiSrc::waveform_t::update (
mha_wave_t ∗ s )

Update data of waveform to hold actual input data.
Parameters
s

Input signal chunk

Returns
Return pointer to waveform structure
The documentation for this class was generated from the following files:
• mha_multisrc.h
• mha_multisrc.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

736

5.197

CONTENTS

MHAOvlFilter::band_descriptor_t Class Reference

Public Attributes
•
•
•
•
•
•
•

mha_real_t cf_l
mha_real_t ef_l
mha_real_t cf
mha_real_t ef_h
mha_real_t cf_h
bool low_side_flat
bool high_side_flat

5.197.1

5.197.1.1

Member Data Documentation

cf_l

mha_real_t MHAOvlFilter::band_descriptor_t::cf_l

5.197.1.2

ef_l

mha_real_t MHAOvlFilter::band_descriptor_t::ef_l

5.197.1.3

cf

mha_real_t MHAOvlFilter::band_descriptor_t::cf

5.197.1.4

ef_h

mha_real_t MHAOvlFilter::band_descriptor_t::ef_h

5.197.1.5

cf_h

mha_real_t MHAOvlFilter::band_descriptor_t::cf_h

© 2005-2018 HörTech gGmbH, Oldenburg

5.198

MHAOvlFilter::barkscale::bark2hz_t Class Reference

5.197.1.6

low_side_flat

bool MHAOvlFilter::band_descriptor_t::low_side_flat

5.197.1.7

high_side_flat

bool MHAOvlFilter::band_descriptor_t::high_side_flat

The documentation for this class was generated from the following file:
• mha_fftfb.hh

5.198

MHAOvlFilter::barkscale::bark2hz_t Class Reference

Inheritance diagram for MHAOvlFilter::barkscale::bark2hz_t:

MHATableLookup::table_t

MHATableLookup::xy
_table_t

MHAOvlFilter::barkscale
::bark2hz_t

Public Member Functions
• bark2hz_t ()
• ∼bark2hz_t ()

Additional Inherited Members
5.198.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

737

738

5.198.1.1

CONTENTS

bark2hz_t()

MHAOvlFilter::barkscale::bark2hz_t::bark2hz_t ( )

5.198.1.2 ∼bark2hz_t()
MHAOvlFilter::barkscale::bark2hz_t::∼bark2hz_t ( )

The documentation for this class was generated from the following file:
• mha_fftfb.cpp

5.199

MHAOvlFilter::barkscale::hz2bark_t Class Reference

Inheritance diagram for MHAOvlFilter::barkscale::hz2bark_t:

MHATableLookup::table_t

MHATableLookup::xy
_table_t

MHAOvlFilter::barkscale
::hz2bark_t

Public Member Functions
• hz2bark_t ()
• ∼hz2bark_t ()

Additional Inherited Members
5.199.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.200

MHAOvlFilter::fftfb_ac_info_t Class Reference

5.199.1.1

739

hz2bark_t()

MHAOvlFilter::barkscale::hz2bark_t::hz2bark_t ( )

5.199.1.2 ∼hz2bark_t()
MHAOvlFilter::barkscale::hz2bark_t::∼hz2bark_t ( )

The documentation for this class was generated from the following file:
• mha_fftfb.cpp

5.200

MHAOvlFilter::fftfb_ac_info_t Class Reference

Public Member Functions
• fftfb_ac_info_t (const MHAOvlFilter::fftfb_t &fb, algo_comm_t ac, const std::string
&prefix)
• void insert ()

Private Attributes
• MHA_AC::waveform_t cfv
vector of nominal center frequencies / Hz

• MHA_AC::waveform_t efv
vector of edge frequencies / Hz

• MHA_AC::waveform_t bwv
vector of band-weigths (sum of squared fft-bin-weigths)/num_frames

• MHA_AC::waveform_t cLTASS
vector of LTASS correction

5.200.1

5.200.1.1

Constructor & Destructor Documentation

fftfb_ac_info_t()

MHAOvlFilter::fftfb_ac_info_t::fftfb_ac_info_t (
const

MHAOvlFilter::fftfb_t & fb,

algo_comm_t ac,
const std::string & prefix )

© 2005-2018 HörTech gGmbH, Oldenburg

740

5.200.2

5.200.2.1

CONTENTS

Member Function Documentation

insert()

void MHAOvlFilter::fftfb_ac_info_t::insert ( )

5.200.3

5.200.3.1

Member Data Documentation

cfv

MHA_AC::waveform_t MHAOvlFilter::fftfb_ac_info_t::cfv [private]

vector of nominal center frequencies / Hz

5.200.3.2

efv

MHA_AC::waveform_t MHAOvlFilter::fftfb_ac_info_t::efv [private]

vector of edge frequencies / Hz

5.200.3.3

bwv

MHA_AC::waveform_t MHAOvlFilter::fftfb_ac_info_t::bwv [private]

vector of band-weigths (sum of squared fft-bin-weigths)/num_frames

5.200.3.4

cLTASS

MHA_AC::waveform_t MHAOvlFilter::fftfb_ac_info_t::cLTASS [private]

vector of LTASS correction
The documentation for this class was generated from the following files:
• mha_fftfb.hh
• mha_fftfb.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.201

MHAOvlFilter::fftfb_t Class Reference

5.201

MHAOvlFilter::fftfb_t Class Reference

741

FFT based overlapping filter bank.
Inheritance diagram for MHAOvlFilter::fftfb_t:

coherence::cohflt_t
MHAOvlFilter::fspacing_t
MHAOvlFilter::fftfb_t
mha_wave_t

MHAOvlFilter::overlap
_save_filterbank_t

MHAOvlFilter::overlap
_save_filterbank_analytic_t

fftfilterbank::fftfb
_plug_t

MHASignal::waveform_t
multibandcompressor
::fftfb_plug_t

Public Member Functions
• fftfb_t ( MHAOvlFilter::fftfb_vars_t &par, unsigned int nfft, mha_real_t fs)
Constructor for a FFT-based overlapping filter bank.

• ∼fftfb_t ()
• void apply_gains ( mha_spec_t ∗s_out, const mha_spec_t ∗s_in, const mha_wave←_t ∗gains)
• void get_fbpower ( mha_wave_t ∗fbpow, const mha_spec_t ∗s_in)
• void get_fbpower_db ( mha_wave_t ∗fbpow, const mha_spec_t ∗s_in)
• std::vector< mha_real_t > get_ltass_gain_db () const
• unsigned int bin1 (unsigned int band) const
Return index of first non-zero filter shape window.

• unsigned int bin2 (unsigned int band) const
Return index of first zero filter shape window above center frequency.

• unsigned int get_fftlen () const
Return fft length.

• mha_real_t w (unsigned int k, unsigned int b) const
Return filter shape window at index k in band b.

Private Attributes
•
•
•
•
•

unsigned int ∗ vbin1
unsigned int ∗ vbin2
mha_real_t(∗ shape )( mha_real_t)
unsigned int fftlen
mha_real_t samplingrate

Additional Inherited Members
5.201.1

Detailed Description

FFT based overlapping filter bank.
© 2005-2018 HörTech gGmbH, Oldenburg

742

5.201.2

CONTENTS

Constructor & Destructor Documentation

5.201.2.1

fftfb_t()

MHAOvlFilter::fftfb_t::fftfb_t (
MHAOvlFilter::fftfb_vars_t & par,
unsigned int nfft,
mha_real_t fs )

Constructor for a FFT-based overlapping filter bank.
Parameters
par

Parameters for the FFT filterbank that can not be deduced from the signal dimensions
are taken from this set of configuration variables.

nfft

FFT length

fs

Sampling rate / Hz

5.201.2.2 ∼fftfb_t()
MHAOvlFilter::fftfb_t::∼fftfb_t ( )

5.201.3

5.201.3.1

Member Function Documentation

apply_gains()

void MHAOvlFilter::fftfb_t::apply_gains (
mha_spec_t ∗ s_out,

5.201.3.2

const

mha_spec_t ∗ s_in,

const

mha_wave_t ∗ gains )

get_fbpower()

void MHAOvlFilter::fftfb_t::get_fbpower (
mha_wave_t ∗ fbpow,
const

mha_spec_t ∗ s_in )

© 2005-2018 HörTech gGmbH, Oldenburg

5.201

5.201.3.3

MHAOvlFilter::fftfb_t Class Reference

743

get_fbpower_db()

void MHAOvlFilter::fftfb_t::get_fbpower_db (
mha_wave_t ∗ fbpow,
const

5.201.3.4

mha_spec_t ∗ s_in )

get_ltass_gain_db()

std::vector< float > MHAOvlFilter::fftfb_t::get_ltass_gain_db ( ) const

5.201.3.5

bin1()

unsigned int MHAOvlFilter::fftfb_t::bin1 (
unsigned int band ) const [inline]

Return index of first non-zero filter shape window.

5.201.3.6

bin2()

unsigned int MHAOvlFilter::fftfb_t::bin2 (
unsigned int band ) const [inline]

Return index of first zero filter shape window above center frequency.

5.201.3.7

get_fftlen()

unsigned int MHAOvlFilter::fftfb_t::get_fftlen ( ) const [inline]

Return fft length.

5.201.3.8

w()

mha_real_t MHAOvlFilter::fftfb_t::w (
unsigned int k,
unsigned int b ) const [inline]

Return filter shape window at index k in band b.

© 2005-2018 HörTech gGmbH, Oldenburg

744

CONTENTS

Parameters
k
b

Frequency index
Band index

5.201.4

5.201.4.1

Member Data Documentation

vbin1

unsigned int∗ MHAOvlFilter::fftfb_t::vbin1 [private]

5.201.4.2

vbin2

unsigned int∗ MHAOvlFilter::fftfb_t::vbin2 [private]

5.201.4.3

shape

mha_real_t(∗ MHAOvlFilter::fftfb_t::shape) ( mha_real_t) [private]

5.201.4.4

fftlen

unsigned int MHAOvlFilter::fftfb_t::fftlen [private]

5.201.4.5

samplingrate

mha_real_t MHAOvlFilter::fftfb_t::samplingrate [private]

The documentation for this class was generated from the following files:
• mha_fftfb.hh
• mha_fftfb.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.202

MHAOvlFilter::fftfb_vars_t Class Reference

5.202

MHAOvlFilter::fftfb_vars_t Class Reference

745

Set of configuration variables for FFT-based overlapping filters.
Inheritance diagram for MHAOvlFilter::fftfb_vars_t:

coherence::vars_t

MHAOvlFilter::fftfb
_vars_t

MHAOvlFilter::overlap
_save_filterbank_t::vars_t

fftfilterbank::fftfb
_interface_t

multibandcompressor
::interface_t

Public Member Functions
• fftfb_vars_t ( MHAParser::parser_t &p)
construct a set of openMHA configuration language variables suitable for configuring the FFTbased overlapping filterbank.

Public Attributes
• scale_var_t fscale
Frequency scale type (lin/bark/log/erb).

• scale_var_t ovltype
Filter shape (rect/lin/hann).

• MHAParser::float_t plateau
relative plateau width.

• MHAParser::kw_t ftype
Flag to decide wether edge or center frequencies are used.

• fscale_t f
Frequency.

• MHAParser::bool_t normalize
Normalize sum of channels.

• MHAParser::bool_t fail_on_nonmonotonic
Fail if frequency entries are non-monotonic (otherwise sort)

• MHAParser::bool_t fail_on_unique_bins
Fail if center frequencies share the same FFT bin.

• MHAParser::vfloat_mon_t cf
Final center frequencies in Hz.

• MHAParser::vfloat_mon_t ef
Final edge frequencies in Hz.

• MHAParser::vfloat_mon_t cLTASS
Bandwidth correction for LTASS noise (level of 0 dB RMS LTASS noise)

• MHAParser::mfloat_mon_t shapes
© 2005-2018 HörTech gGmbH, Oldenburg

746

5.202.1

CONTENTS

Detailed Description

Set of configuration variables for FFT-based overlapping filters.
This class enables easy configuration of the FFT-based overlapping filterbank. An instance of
fftfb_vars_t (p. 745) creates openMHA configuration language variables needed for configuring
the filterbank, and inserts these variables in the openMHA configuration tree.
This way, the variables are visible to the user and can be configured using the openMHA configuration language.

5.202.2

5.202.2.1

Constructor & Destructor Documentation

fftfb_vars_t()

MHAOvlFilter::fftfb_vars_t::fftfb_vars_t (
MHAParser::parser_t & p )

construct a set of openMHA configuration language variables suitable for configuring the FFTbased overlapping filterbank.
Parameters
p

The node of the configuration tree where the variables created by this instance are
inserted.

5.202.3

5.202.3.1

Member Data Documentation

fscale

scale_var_t MHAOvlFilter::fftfb_vars_t::fscale

Frequency scale type (lin/bark/log/erb).

5.202.3.2

ovltype

scale_var_t MHAOvlFilter::fftfb_vars_t::ovltype

Filter shape (rect/lin/hann).

© 2005-2018 HörTech gGmbH, Oldenburg

5.202

5.202.3.3

MHAOvlFilter::fftfb_vars_t Class Reference

747

plateau

MHAParser::float_t MHAOvlFilter::fftfb_vars_t::plateau

relative plateau width.

5.202.3.4

ftype

MHAParser::kw_t MHAOvlFilter::fftfb_vars_t::ftype

Flag to decide wether edge or center frequencies are used.

5.202.3.5

f

fscale_t MHAOvlFilter::fftfb_vars_t::f

Frequency.

5.202.3.6

normalize

MHAParser::bool_t MHAOvlFilter::fftfb_vars_t::normalize

Normalize sum of channels.

5.202.3.7

fail_on_nonmonotonic

MHAParser::bool_t MHAOvlFilter::fftfb_vars_t::fail_on_nonmonotonic

Fail if frequency entries are non-monotonic (otherwise sort)

5.202.3.8

fail_on_unique_bins

MHAParser::bool_t MHAOvlFilter::fftfb_vars_t::fail_on_unique_bins

Fail if center frequencies share the same FFT bin.

© 2005-2018 HörTech gGmbH, Oldenburg

748

5.202.3.9

CONTENTS

cf

MHAParser::vfloat_mon_t MHAOvlFilter::fftfb_vars_t::cf

Final center frequencies in Hz.

5.202.3.10

ef

MHAParser::vfloat_mon_t MHAOvlFilter::fftfb_vars_t::ef

Final edge frequencies in Hz.

5.202.3.11

cLTASS

MHAParser::vfloat_mon_t MHAOvlFilter::fftfb_vars_t::cLTASS

Bandwidth correction for LTASS noise (level of 0 dB RMS LTASS noise)

5.202.3.12

shapes

MHAParser::mfloat_mon_t MHAOvlFilter::fftfb_vars_t::shapes

The documentation for this class was generated from the following files:
• mha_fftfb.hh
• mha_fftfb.cpp

5.203

MHAOvlFilter::fscale_bw_t Class Reference

Inheritance diagram for MHAOvlFilter::fscale_bw_t:

MHAOvlFilter::fscale_t

MHAOvlFilter::fscale_bw_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.203

MHAOvlFilter::fscale_bw_t Class Reference

749

Public Member Functions
• fscale_bw_t ( MHAParser::parser_t &parent)
• std::vector< mha_real_t > get_bw_hz () const

Protected Attributes
• MHAParser::vfloat_t bw
• MHAParser::vfloat_mon_t bw_hz

Private Member Functions
• void update_hz ()

Private Attributes
• MHAEvents::connector_t< fscale_bw_t > updater

Additional Inherited Members
5.203.1

5.203.1.1

Constructor & Destructor Documentation

fscale_bw_t()

MHAOvlFilter::fscale_bw_t::fscale_bw_t (
MHAParser::parser_t & parent )

5.203.2

5.203.2.1

Member Function Documentation

get_bw_hz()

std::vector<

5.203.2.2

mha_real_t > MHAOvlFilter::fscale_bw_t::get_bw_hz ( ) const

update_hz()

void MHAOvlFilter::fscale_bw_t::update_hz ( ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

750

5.203.3

CONTENTS

Member Data Documentation

5.203.3.1

bw

MHAParser::vfloat_t MHAOvlFilter::fscale_bw_t::bw [protected]

5.203.3.2

bw_hz

MHAParser::vfloat_mon_t MHAOvlFilter::fscale_bw_t::bw_hz [protected]

5.203.3.3

updater

MHAEvents::connector_t< fscale_bw_t> MHAOvlFilter::fscale_bw_t::updater [private]

The documentation for this class was generated from the following files:
• mha_fftfb.hh
• mha_fftfb.cpp

5.204

MHAOvlFilter::fscale_t Class Reference

Inheritance diagram for MHAOvlFilter::fscale_t:

MHAOvlFilter::fscale_t

MHAOvlFilter::fscale_bw_t

Public Member Functions
• fscale_t ( MHAParser::parser_t &parent)
• std::vector< mha_real_t > get_f_hz () const
© 2005-2018 HörTech gGmbH, Oldenburg

5.204

MHAOvlFilter::fscale_t Class Reference

751

Public Attributes
• scale_var_t unit
• MHAParser::vfloat_t f
• MHAParser::vfloat_mon_t f_hz

Private Member Functions
• void update_hz ()

Private Attributes
• MHAEvents::connector_t< fscale_t > updater

5.204.1

5.204.1.1

Constructor & Destructor Documentation

fscale_t()

MHAOvlFilter::fscale_t::fscale_t (
MHAParser::parser_t & parent )

5.204.2

5.204.2.1

Member Function Documentation

get_f_hz()

std::vector<

5.204.2.2

mha_real_t > MHAOvlFilter::fscale_t::get_f_hz ( ) const

update_hz()

void MHAOvlFilter::fscale_t::update_hz ( ) [private]

5.204.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

752

5.204.3.1

CONTENTS

unit

scale_var_t MHAOvlFilter::fscale_t::unit

5.204.3.2

f

MHAParser::vfloat_t MHAOvlFilter::fscale_t::f

5.204.3.3

f_hz

MHAParser::vfloat_mon_t MHAOvlFilter::fscale_t::f_hz

5.204.3.4

updater

MHAEvents::connector_t< fscale_t> MHAOvlFilter::fscale_t::updater [private]

The documentation for this class was generated from the following files:

• mha_fftfb.hh
• mha_fftfb.cpp

5.205

MHAOvlFilter::fspacing_t Class Reference

Class for frequency spacing, used by filterbank shape generator class.
Inheritance diagram for MHAOvlFilter::fspacing_t:

coherence::cohflt_t

MHAOvlFilter::fspacing_t

MHAOvlFilter::fftfb_t

MHAOvlFilter::overlap
_save_filterbank_t

MHAOvlFilter::overlap
_save_filterbank_analytic_t

fftfilterbank::fftfb
_plug_t

multibandcompressor
::fftfb_plug_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.205

MHAOvlFilter::fspacing_t Class Reference

753

Public Member Functions
•
•
•
•
•

fspacing_t (const MHAOvlFilter::fftfb_vars_t &par, unsigned int nfft, mha_real_t fs)
std::vector< unsigned int > get_cf_fftbin () const
std::vector< mha_real_t > get_cf_hz () const
std::vector< mha_real_t > get_ef_hz () const
unsigned int nbands () const
Return number of bands in filter bank.

Protected Member Functions
• void fail_on_nonmonotonic_cf ()
• void fail_on_unique_fftbins ()

Protected Attributes
• std::vector< MHAOvlFilter::band_descriptor_t > bands
• mha_real_t(∗ symmetry_scale )( mha_real_t)

Private Member Functions
• void ef2bands (std::vector< mha_real_t > vef)
• void cf2bands (std::vector< mha_real_t > vcf)
• void equidist2bands (std::vector< mha_real_t > vcf)

Private Attributes
• unsigned int nfft_
• mha_real_t fs_

5.205.1

Detailed Description

Class for frequency spacing, used by filterbank shape generator class.

5.205.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

754

5.205.2.1

CONTENTS

fspacing_t()

MHAOvlFilter::fspacing_t::fspacing_t (
const

MHAOvlFilter::fftfb_vars_t & par,

unsigned int nfft,
mha_real_t fs )

5.205.3

5.205.3.1

Member Function Documentation

get_cf_fftbin()

std::vector< unsigned int > MHAOvlFilter::fspacing_t::get_cf_fftbin ( ) const

5.205.3.2

get_cf_hz()

std::vector<

5.205.3.3

get_ef_hz()

std::vector<

5.205.3.4

mha_real_t > MHAOvlFilter::fspacing_t::get_cf_hz ( ) const

mha_real_t > MHAOvlFilter::fspacing_t::get_ef_hz ( ) const

nbands()

unsigned int MHAOvlFilter::fspacing_t::nbands ( ) const [inline]

Return number of bands in filter bank.

5.205.3.5

fail_on_nonmonotonic_cf()

void MHAOvlFilter::fspacing_t::fail_on_nonmonotonic_cf ( ) [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

5.205

5.205.3.6

MHAOvlFilter::fspacing_t Class Reference

755

fail_on_unique_fftbins()

void MHAOvlFilter::fspacing_t::fail_on_unique_fftbins ( ) [protected]

5.205.3.7

ef2bands()

void MHAOvlFilter::fspacing_t::ef2bands (
std::vector<

5.205.3.8

mha_real_t > vef ) [private]

cf2bands()

void MHAOvlFilter::fspacing_t::cf2bands (
std::vector<

5.205.3.9

mha_real_t > vcf ) [private]

equidist2bands()

void MHAOvlFilter::fspacing_t::equidist2bands (
std::vector<

5.205.4

5.205.4.1

mha_real_t > vcf ) [private]

Member Data Documentation

bands

std::vector< MHAOvlFilter::band_descriptor_t> MHAOvlFilter::fspacing_t::bands [protected]

5.205.4.2

symmetry_scale

mha_real_t(∗ MHAOvlFilter::fspacing_t::symmetry_scale) ( mha_real_t) [protected]

5.205.4.3

nfft_

unsigned int MHAOvlFilter::fspacing_t::nfft_ [private]

© 2005-2018 HörTech gGmbH, Oldenburg

756

5.205.4.4

CONTENTS

fs_

mha_real_t MHAOvlFilter::fspacing_t::fs_ [private]

The documentation for this class was generated from the following files:
• mha_fftfb.hh
• mha_fftfb.cpp

5.206

MHAOvlFilter::overlap_save_filterbank_analytic_t Class Reference

Inheritance diagram for MHAOvlFilter::overlap_save_filterbank_analytic_t:

mha_wave_t

MHAOvlFilter::fspacing_t

MHASignal::waveform_t

MHAOvlFilter::fftfb_t

MHAFilter::fftfilterbank_t

MHAOvlFilter::overlap
_save_filterbank_t

MHAOvlFilter::overlap
_save_filterbank_analytic_t

fftfilterbank::fftfb
_plug_t

Public Member Functions
•

overlap_save_filterbank_analytic_t ( MHAOvlFilter::overlap_save_filterbank_t←::vars_t &fbpar, mhaconfig_t channelconfig_in)
• void filter_analytic (const mha_wave_t ∗sIn, mha_wave_t ∗∗fltRe, mha_wave_t
∗∗fltIm)
© 2005-2018 HörTech gGmbH, Oldenburg

5.206 MHAOvlFilter::overlap_save_filterbank_analytic_t Class
Reference

757

Private Attributes
• MHAFilter::fftfilterbank_t imagfb

Additional Inherited Members
5.206.1

5.206.1.1

Constructor & Destructor Documentation

overlap_save_filterbank_analytic_t()

MHAOvlFilter::overlap_save_filterbank_analytic_t::overlap_save_filterbank_analytic←_t (
MHAOvlFilter::overlap_save_filterbank_t::vars_t & fbpar,
mhaconfig_t channelconfig_in )

5.206.2

5.206.2.1

Member Function Documentation

filter_analytic()

void MHAOvlFilter::overlap_save_filterbank_analytic_t::filter_analytic (
const

mha_wave_t ∗ sIn,

mha_wave_t ∗∗ fltRe,
mha_wave_t ∗∗ fltIm )

5.206.3

5.206.3.1

Member Data Documentation

imagfb

MHAFilter::fftfilterbank_t MHAOvlFilter::overlap_save_filterbank_analytic_t::imagfb
[private]

The documentation for this class was generated from the following files:
• mha_fftfb.hh
• mha_fftfb.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

758

5.207

CONTENTS

MHAOvlFilter::overlap_save_filterbank_t Class Reference

A time-domain minimal phase filter bank with frequency shapes from MHAOvlFilter::fftfb_t
(p. 741).
Inheritance diagram for MHAOvlFilter::overlap_save_filterbank_t:

mha_wave_t

MHAOvlFilter::fspacing_t

MHASignal::waveform_t

MHAOvlFilter::fftfb_t

MHAFilter::fftfilterbank_t

MHAOvlFilter::overlap
_save_filterbank_t

MHAOvlFilter::overlap
_save_filterbank_analytic_t

fftfilterbank::fftfb
_plug_t

Classes
• class vars_t

Public Member Functions
• overlap_save_filterbank_t ( MHAOvlFilter::overlap_save_filterbank_t::vars_t &fbpar, mhaconfig_t channelconfig_in)
• mhaconfig_t get_channelconfig () const

Private Attributes
• mhaconfig_t channelconfig_out_
© 2005-2018 HörTech gGmbH, Oldenburg

5.207

MHAOvlFilter::overlap_save_filterbank_t Class Reference 759

Additional Inherited Members

5.207.1

Detailed Description

A time-domain minimal phase filter bank with frequency shapes from MHAOvlFilter::fftfb_t
(p. 741).

5.207.2

Constructor & Destructor Documentation

5.207.2.1

overlap_save_filterbank_t()

MHAOvlFilter::overlap_save_filterbank_t::overlap_save_filterbank_t (
MHAOvlFilter::overlap_save_filterbank_t::vars_t & fbpar,
mhaconfig_t channelconfig_in )

5.207.3

Member Function Documentation

5.207.3.1

get_channelconfig()

mhaconfig_t MHAOvlFilter::overlap_save_filterbank_t::get_channelconfig ( ) const
[inline]

5.207.4

5.207.4.1

Member Data Documentation

channelconfig_out_

mhaconfig_t MHAOvlFilter::overlap_save_filterbank_t::channelconfig_out_ [private]

The documentation for this class was generated from the following files:
• mha_fftfb.hh
• mha_fftfb.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

760

5.208

CONTENTS

MHAOvlFilter::overlap_save_filterbank_t::vars_t Class Reference

Inheritance diagram for MHAOvlFilter::overlap_save_filterbank_t::vars_t:

MHAOvlFilter::fftfb
_vars_t

MHAOvlFilter::overlap
_save_filterbank_t::vars_t

fftfilterbank::fftfb
_interface_t

Public Member Functions
• vars_t ( MHAParser::parser_t &p)

Public Attributes
• MHAParser::int_t fftlen
• MHAParser::kw_t phasemodel
• MHAParser::window_t irswnd

5.208.1

5.208.1.1

Constructor & Destructor Documentation

vars_t()

MHAOvlFilter::overlap_save_filterbank_t::vars_t::vars_t (
MHAParser::parser_t & p )

5.208.2

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.209

MHAOvlFilter::scale_var_t Class Reference

5.208.2.1

761

fftlen

MHAParser::int_t MHAOvlFilter::overlap_save_filterbank_t::vars_t::fftlen

5.208.2.2

phasemodel

MHAParser::kw_t MHAOvlFilter::overlap_save_filterbank_t::vars_t::phasemodel

5.208.2.3

irswnd

MHAParser::window_t MHAOvlFilter::overlap_save_filterbank_t::vars_t::irswnd

The documentation for this class was generated from the following files:
• mha_fftfb.hh
• mha_fftfb.cpp

5.209

MHAOvlFilter::scale_var_t Class Reference

Inheritance diagram for MHAOvlFilter::scale_var_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::kw_t

MHAOvlFilter::scale
_var_t

© 2005-2018 HörTech gGmbH, Oldenburg

762

CONTENTS

Public Member Functions
•
•
•
•
•
•

scale_var_t (const std::string & help)
void add_fun (const std::string &name, scale_fun_t ∗fun)
std::string get_name () const
scale_fun_t ∗ get_fun () const
mha_real_t hz2unit ( mha_real_t x) const
mha_real_t unit2hz ( mha_real_t x) const

Private Attributes
• std::vector< std::string > names
• std::vector< scale_fun_t ∗ > funs

Additional Inherited Members
5.209.1

5.209.1.1

Constructor & Destructor Documentation

scale_var_t()

MHAOvlFilter::scale_var_t::scale_var_t (
const std::string & help )

5.209.2

5.209.2.1

Member Function Documentation

add_fun()

void MHAOvlFilter::scale_var_t::add_fun (
const std::string & name,
scale_fun_t ∗ fun )

5.209.2.2

get_name()

std::string MHAOvlFilter::scale_var_t::get_name ( ) const [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

5.209

5.209.2.3

MHAOvlFilter::scale_var_t Class Reference

763

get_fun()

scale_fun_t∗ MHAOvlFilter::scale_var_t::get_fun ( ) const [inline]

5.209.2.4

hz2unit()

mha_real_t MHAOvlFilter::scale_var_t::hz2unit (
mha_real_t x ) const

5.209.2.5

unit2hz()

mha_real_t MHAOvlFilter::scale_var_t::unit2hz (
mha_real_t x ) const

5.209.3

5.209.3.1

Member Data Documentation

names

std::vector MHAOvlFilter::scale_var_t::names [private]

5.209.3.2

funs

std::vector< scale_fun_t∗> MHAOvlFilter::scale_var_t::funs [private]

The documentation for this class was generated from the following files:

• mha_fftfb.hh
• mha_fftfb.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

764

5.210

CONTENTS

MHAParser::base_t Class Reference

Base class for all parser items.
Inheritance diagram for MHAParser::base_t:
io_lib_t

MHAParser::c_ifc_parser_t

PluginLoader::mhapluginloader_t

MHAParser::bool_mon_t

MHAParser::complex
_mon_t

MHAParser::float_mon_t

MHAParser::int_mon_t

MHAParser::mcomplex
_mon_t

MHAParser::mfloat_mon_t
MHAParser::base_t

MHAParser::monitor_t
MHAParser::string_mon_t

MHAParser::variable_t

MHAParser::vcomplex
_mon_t

MHAParser::vfloat_mon_t

MHAParser::vint_mon_t

MHAParser::vstring
_mon_t

AuditoryProfile::parser_t

AuditoryProfile::parser
_t::ear_t

AuditoryProfile::parser
_t::fmap_t

dc::wideband_inhib
_vars_t

DynComp::dc_afterburn
_vars_t

fw_t

io_file_t

io_parser_t

io_tcp_parser_t

MHAFilter::adapt_filter_t

MHAFilter::iir_filter_t

MHAIOJack::io_jack_t

MHAIOPortAudio::device
_info_t

MHAIOPortAudio::io
_portaudio_t

MHAParser::mhaconfig
_mon_t
MHAParser::parser_t
MHAParser::window_t

MHAPlugin::plugin_t
< runtime_cfg_t >

MHAPlugin_Split::split_t

MHAPlugin::plugin_t
< ac2wave_t >

MHAPlugin::plugin_t
< acConcat_wave_config >

MHAPlugin::plugin_t
< acPooling_wave_config >

MHAPlugin::plugin_t
< acSteer_config >

MHAPlugin::plugin_t
< acTransform_wave_config >

MHAPlugin::plugin_t
< adm_rtconfig_t >

MHAPlugin::plugin_t
< analysepath_t >

MHAPlugin::plugin_t
< cfg_t >

MHAPlugin::plugin_t
< cohflt_t >

MHAPlugin::plugin_t
< combc_t >

MHAPlugin::plugin_t
< db_t >

MHAPlugin::plugin_t
< dc_t >

MHAPlugin::plugin_t
< delaysum_t >

Classes
• class replace_t
© 2005-2018 HörTech gGmbH, Oldenburg

5.210

MHAParser::base_t Class Reference

765

Public Member Functions
• base_t (const std::string &)
Constructor for base class of all parser nodes.

• base_t (const base_t &)
• virtual ∼base_t ()
• virtual std::string parse (const std::string &)
Causes this node to process a command in the openMHA configuration language.

• virtual void parse (const char ∗, char ∗, unsigned int)
This function parses a command and writes the parsing result into a C character array.

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

virtual void parse (const std::vector< std::string > &, std::vector< std::string > &)
virtual std::string op_subparse ( expression_t &)
virtual std::string op_setval ( expression_t &)
virtual std::string op_query ( expression_t &)
virtual std::string query_dump (const std::string &)
virtual std::string query_entries (const std::string &)
virtual std::string query_perm (const std::string &)
virtual std::string query_range (const std::string &)
virtual std::string query_type (const std::string &)
virtual std::string query_val (const std::string &)
virtual std::string query_readfile (const std::string &)
virtual std::string query_savefile (const std::string &)
virtual std::string query_savefile_compact (const std::string &)
virtual std::string query_savemons (const std::string &)
virtual std::string query_listids (const std::string &)
std::string query_version (const std::string &)
std::string query_id (const std::string &)
std::string query_subst (const std::string &)
std::string query_addsubst (const std::string &)
std::string query_help (const std::string &)
std::string query_cmds (const std::string &)
void set_node_id (const std::string &)
Set the identification string of this parser node.

• void set_help (const std::string &)
Set the help comment of a variable or parser.

• void add_parent_on_insert ( parser_t ∗, std::string)
• void rm_parent_on_remove ( parser_t ∗)
• const std::string & fullname () const
Return the full dot-separated path name of this parser node in the openMHA configuration tree.

Public Attributes
• MHAEvents::emitter_t writeaccess
Event emitted on write access.

• MHAEvents::emitter_t valuechanged
Event emitted if the value has changed.
© 2005-2018 HörTech gGmbH, Oldenburg

766

CONTENTS

• MHAEvents::emitter_t readaccess
Event emitted on read access.

• MHAEvents::emitter_t prereadaccess
Event emitted on read access, before the data field is accessed.

Protected Member Functions
• void activate_query (const std::string &, query_t)
• void notify ()

Protected Attributes
• query_map_t queries
• bool data_is_initialized

Private Types
• typedef std::vector< replace_t > repl_list_t

Private Member Functions
• void add_replace_pair (const std::string &, const std::string &)
• std::string oplist ()

Private Attributes
•
•
•
•
•
•
•

std::string help
std::string id_str
opact_map_t operators
repl_list_t repl_list
bool nested_lock
parser_t ∗ parent
std::string thefullname

5.210.1

Detailed Description

Base class for all parser items.
The key method of the parser base class is the std::string parse(const std::string&) (p. 767)
method. Parser proxy derivatives which overwrite any of the other parse() (p. 767) methods to
be the key method must make sure that the original parse() (p. 767) method utilizes the new
key method.
© 2005-2018 HörTech gGmbH, Oldenburg

5.210

MHAParser::base_t Class Reference

5.210.2

Member Typedef Documentation

5.210.2.1

repl_list_t

typedef std::vector< replace_t>

5.210.3

5.210.3.1

767

MHAParser::base_t::repl_list_t [private]

Constructor & Destructor Documentation

base_t() [1/2]

MHAParser::base_t::base_t (
const std::string & h )

Constructor for base class of all parser nodes.
Parameters
h

Help text describing this parser node. This help text is accessible to the configuration
language through the "?help" query command.

5.210.3.2

base_t() [2/2]

MHAParser::base_t::base_t (
const

base_t & src )

5.210.3.3 ∼base_t()
MHAParser::base_t::∼base_t ( ) [virtual]

5.210.4

5.210.4.1

Member Function Documentation

parse() [1/3]

std::string MHAParser::base_t::parse (
const std::string & cs ) [virtual]

Causes this node to process a command in the openMHA configuration language.

© 2005-2018 HörTech gGmbH, Oldenburg

768

CONTENTS

Parameters
The command to parse

cs

Returns
The response to the command, if successful
Exceptions
MHA_Error ( p. 522)

If the command cannot be executed successfully. The reason for
failure is given in the message string of the exception.

Reimplemented in PluginLoader::mhapluginloader_t (p. 1079), and altplugs_t (p. 222).

5.210.4.2

parse() [2/3]

void MHAParser::base_t::parse (
const char ∗ cmd,
char ∗ retv,
unsigned int len ) [virtual]

This function parses a command and writes the parsing result into a C character array.
This base class implementation delegates to parse(const std::string &) (p. 767).
Parameters
cmd

Command to be parsed

retv
len

Buffer for the result
Length of buffer

Reimplemented in altplugs_t (p. 222).

5.210.4.3

parse() [3/3]

void MHAParser::base_t::parse (
const std::vector< std::string > & cs,
std::vector< std::string > & retv ) [virtual]

© 2005-2018 HörTech gGmbH, Oldenburg

5.210

5.210.4.4

MHAParser::base_t Class Reference

769

op_subparse()

std::string MHAParser::base_t::op_subparse (
expression_t &

) [virtual]

Reimplemented in MHAParser::c_ifc_parser_t (p. 784), and MHAParser::parser_t (p. 836).

5.210.4.5

op_setval()

std::string MHAParser::base_t::op_setval (
expression_t &

) [virtual]

Reimplemented in MHAParser::mcomplex_t (p. 817), MHAParser::mfloat_t (p. 822),
MHAParser::vcomplex_t (p. 856), MHAParser::vfloat_t (p. 861), MHAParser::vint_←t (p. 865), MHAParser::complex_t (p. 792), MHAParser::float_t (p. 799), MHAParser←::int_t (p. 804), MHAParser::bool_t (p. 781), MHAParser::vstring_t (p. 870), MHA←Parser::string_t (p. 848), MHAParser::kw_t (p. 812), MHAParser::variable_t (p. 850),
MHAParser::c_ifc_parser_t (p. 785), and MHAParser::parser_t (p. 836).

5.210.4.6

op_query()

std::string MHAParser::base_t::op_query (
expression_t &

) [virtual]

Reimplemented in MHAParser::monitor_t (p. 832), MHAParser::c_ifc_parser_t (p. 785),
and MHAParser::parser_t (p. 837).

5.210.4.7

query_dump()

std::string MHAParser::base_t::query_dump (
const std::string & s ) [virtual]

Reimplemented in MHAParser::monitor_t (p. 832), and MHAParser::parser_t (p. 837).

5.210.4.8

query_entries()

std::string MHAParser::base_t::query_entries (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 837).

© 2005-2018 HörTech gGmbH, Oldenburg

770

5.210.4.9

CONTENTS

query_perm()

std::string MHAParser::base_t::query_perm (
const std::string & s ) [virtual]

Reimplemented in MHAParser::variable_t (p. 850), and MHAParser::monitor_t (p. 832).

5.210.4.10

query_range()

std::string MHAParser::base_t::query_range (
const std::string & s ) [virtual]

Reimplemented in MHAParser::kw_t (p. 812), and MHAParser::range_var_t (p. 841).

5.210.4.11

query_type()

std::string MHAParser::base_t::query_type (
const std::string & s ) [virtual]

Reimplemented in MHAParser::mcomplex_mon_t (p. 815), MHAParser::vcomplex_mon←_t (p. 854), MHAParser::complex_mon_t (p. 790), MHAParser::float_mon_t (p. 797),
MHAParser::mfloat_mon_t (p. 820), MHAParser::vfloat_mon_t (p. 858), MHAParser←::vint_mon_t (p. 863), MHAParser::vstring_mon_t (p. 868), MHAParser::string_mon←_t (p. 846), MHAParser::bool_mon_t (p. 779), MHAParser::int_mon_t (p. 802), MH←AParser::mcomplex_t (p. 817), MHAParser::mfloat_t (p. 822), MHAParser::vcomplex←_t (p. 856), MHAParser::vfloat_t (p. 861), MHAParser::vint_t (p. 866), MHAParser←::complex_t (p. 792), MHAParser::float_t (p. 799), MHAParser::int_t (p. 805), MHA←Parser::bool_t (p. 782), MHAParser::vstring_t (p. 870), MHAParser::string_t (p. 848),
MHAParser::kw_t (p. 813), and MHAParser::parser_t (p. 837).

5.210.4.12

query_val()

std::string MHAParser::base_t::query_val (
const std::string & s ) [virtual]

Reimplemented in MHAParser::mcomplex_mon_t (p. 815), MHAParser::vcomplex_mon←_t (p. 854), MHAParser::complex_mon_t (p. 789), MHAParser::float_mon_t (p. 796),
MHAParser::mfloat_mon_t (p. 819), MHAParser::vfloat_mon_t (p. 858), MHAParser←::vint_mon_t (p. 863), MHAParser::vstring_mon_t (p. 868), MHAParser::string_mon←_t (p. 846), MHAParser::bool_mon_t (p. 779), MHAParser::int_mon_t (p. 802), MH←AParser::mcomplex_t (p. 818), MHAParser::mfloat_t (p. 823), MHAParser::vcomplex←_t (p. 856), MHAParser::vfloat_t (p. 861), MHAParser::vint_t (p. 866), MHAParser←::complex_t (p. 792), MHAParser::float_t (p. 800), MHAParser::int_t (p. 805), MHA←Parser::bool_t (p. 782), MHAParser::vstring_t (p. 870), MHAParser::string_t (p. 849),
MHAParser::kw_t (p. 813), and MHAParser::parser_t (p. 838).

© 2005-2018 HörTech gGmbH, Oldenburg

5.210

MHAParser::base_t Class Reference

5.210.4.13

query_readfile()

std::string MHAParser::base_t::query_readfile (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 837).

5.210.4.14

query_savefile()

std::string MHAParser::base_t::query_savefile (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 838).

5.210.4.15

query_savefile_compact()

std::string MHAParser::base_t::query_savefile_compact (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 838).

5.210.4.16

query_savemons()

std::string MHAParser::base_t::query_savemons (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 838).

5.210.4.17

query_listids()

std::string MHAParser::base_t::query_listids (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 838).

© 2005-2018 HörTech gGmbH, Oldenburg

771

772

5.210.4.18

CONTENTS

query_version()

std::string MHAParser::base_t::query_version (
const std::string &

5.210.4.19

)

query_id()

std::string MHAParser::base_t::query_id (
const std::string &

5.210.4.20

)

query_subst()

std::string MHAParser::base_t::query_subst (
const std::string & s )

5.210.4.21

query_addsubst()

std::string MHAParser::base_t::query_addsubst (
const std::string & s )

5.210.4.22

query_help()

std::string MHAParser::base_t::query_help (
const std::string & s )

5.210.4.23

query_cmds()

std::string MHAParser::base_t::query_cmds (
const std::string & s )

5.210.4.24

set_node_id()

void MHAParser::base_t::set_node_id (
const std::string & s )

Set the identification string of this parser node.
The id can be queried from the configuration language using the ?id query command. Nodes
can be found by id using the ?listid query command on a containing parser node.

© 2005-2018 HörTech gGmbH, Oldenburg

5.210

MHAParser::base_t Class Reference

773

Parameters
s

The new identification string.

5.210.4.25

set_help()

void MHAParser::base_t::set_help (
const std::string & s )

Set the help comment of a variable or parser.
Parameters
s

New help comment.

5.210.4.26

add_parent_on_insert()

void MHAParser::base_t::add_parent_on_insert (
parser_t ∗ p,
std::string n )

5.210.4.27

rm_parent_on_remove()

void MHAParser::base_t::rm_parent_on_remove (
parser_t ∗

5.210.4.28

)

fullname()

const std::string & MHAParser::base_t::fullname ( ) const

Return the full dot-separated path name of this parser node in the openMHA configuration tree.

5.210.4.29

activate_query()

void MHAParser::base_t::activate_query (
const std::string & n,
query_t a ) [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

774

5.210.4.30

CONTENTS

notify()

void MHAParser::base_t::notify ( ) [protected]

5.210.4.31

add_replace_pair()

void MHAParser::base_t::add_replace_pair (
const std::string & a,
const std::string & b ) [private]

5.210.4.32

oplist()

std::string MHAParser::base_t::oplist ( ) [private]

5.210.5

5.210.5.1

Member Data Documentation

writeaccess

MHAEvents::emitter_t MHAParser::base_t::writeaccess

Event emitted on write access.
To connect a callback that is invoked on write access to this parser variable, use MHAEvents←::patchbay_t method connect(&writeaccess,&receiver_t::callback) where callback
is a method that expects no parameters and returns void.
5.210.5.2

valuechanged

MHAEvents::emitter_t MHAParser::base_t::valuechanged

Event emitted if the value has changed.
To connect a callback that is invoked when write access to this parser variable actually changes
its value, use MHAEvents::patchbay_t method connect(&valuechanged,&receiver←_t::callback) where callback is a method that expects no parameters and returns void.
© 2005-2018 HörTech gGmbH, Oldenburg

5.210

5.210.5.3

MHAParser::base_t Class Reference

775

readaccess

MHAEvents::emitter_t MHAParser::base_t::readaccess

Event emitted on read access.
To connect a callback that is invoked after the value of this variable has been read
through the configuration interface, use MHAEvents::patchbay_t method
connect(&readaccess,&receiver_t::callback) where callback is a method that expects no parameters and returns void.
5.210.5.4

prereadaccess

MHAEvents::emitter_t MHAParser::base_t::prereadaccess

Event emitted on read access, before the data field is accessed.
To connect a callback that is invoked when the value of this variable is about to be read through
the configuration interface, so that the callback can influence the value that is reported, use
MHAEvents::patchbay_t method connect(&prereadaccess,&receiver_t::callback)
where callback is a method that expects no parameters and returns void.
5.210.5.5

queries

query_map_t MHAParser::base_t::queries [protected]

5.210.5.6

data_is_initialized

bool MHAParser::base_t::data_is_initialized [protected]

5.210.5.7

help

std::string MHAParser::base_t::help [private]

5.210.5.8

id_str

std::string MHAParser::base_t::id_str [private]

© 2005-2018 HörTech gGmbH, Oldenburg

776

5.210.5.9

CONTENTS

operators

opact_map_t MHAParser::base_t::operators [private]

5.210.5.10

repl_list

repl_list_t MHAParser::base_t::repl_list [private]

5.210.5.11

nested_lock

bool MHAParser::base_t::nested_lock [private]

5.210.5.12

parent

parser_t∗ MHAParser::base_t::parent [private]

5.210.5.13

thefullname

std::string MHAParser::base_t::thefullname [private]

The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.211

MHAParser::base_t::replace_t Class Reference

Public Member Functions
•
•
•
•

replace_t (const std::string &, const std::string &)
void replace (std::string &)
const std::string & get_a () const
const std::string & get_b () const

Private Attributes
• std::string a
• std::string b
© 2005-2018 HörTech gGmbH, Oldenburg

5.211

MHAParser::base_t::replace_t Class Reference

5.211.1

Constructor & Destructor Documentation

5.211.1.1

777

replace_t()

MHAParser::base_t::replace_t::replace_t (
const std::string & ia,
const std::string & ib )

5.211.2

5.211.2.1

Member Function Documentation

replace()

void MHAParser::base_t::replace_t::replace (
std::string & s )

5.211.2.2

get_a()

const std::string& MHAParser::base_t::replace_t::get_a ( ) const [inline]

5.211.2.3

get_b()

const std::string& MHAParser::base_t::replace_t::get_b ( ) const [inline]

5.211.3

5.211.3.1

Member Data Documentation

a

std::string MHAParser::base_t::replace_t::a [private]

© 2005-2018 HörTech gGmbH, Oldenburg

778

5.211.3.2

CONTENTS

b

std::string MHAParser::base_t::replace_t::b [private]

The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.212

MHAParser::bool_mon_t Class Reference

Monitor with string value.
Inheritance diagram for MHAParser::bool_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::bool_mon_t

Public Member Functions
• bool_mon_t (const std::string &hlp)
Create a monitor variable for string values.

Public Attributes
• bool data
Data field.

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)
© 2005-2018 HörTech gGmbH, Oldenburg

5.212

MHAParser::bool_mon_t Class Reference

Additional Inherited Members
5.212.1

Detailed Description

Monitor with string value.

5.212.2

Constructor & Destructor Documentation

5.212.2.1

bool_mon_t()

MHAParser::bool_mon_t::bool_mon_t (
const std::string & hlp )

Create a monitor variable for string values.
Parameters
hlp

A help text describing this monitor variable.

5.212.3

5.212.3.1

Member Function Documentation

query_val()

std::string MHAParser::bool_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.212.3.2

query_type()

std::string MHAParser::bool_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).
© 2005-2018 HörTech gGmbH, Oldenburg

779

780

5.212.4

CONTENTS

Member Data Documentation

5.212.4.1

data

bool MHAParser::bool_mon_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.213

MHAParser::bool_t Class Reference

Variable with a boolean value ("yes"/"no")
Inheritance diagram for MHAParser::bool_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::bool_t

Public Member Functions
• bool_t (const std::string &help_text, const std::string &initial_value)
Constructor for a configuration language variable for boolean values.
© 2005-2018 HörTech gGmbH, Oldenburg

5.213

MHAParser::bool_t Class Reference

781

Public Attributes
• bool data
Data field.

Protected Member Functions
• std::string op_setval ( expression_t &)
• std::string query_type (const std::string &)
• std::string query_val (const std::string &)

Additional Inherited Members
5.213.1

Detailed Description

Variable with a boolean value ("yes"/"no")

5.213.2

5.213.2.1

Constructor & Destructor Documentation

bool_t()

MHAParser::bool_t::bool_t (
const std::string & help_text,
const std::string & initial_value )

Constructor for a configuration language variable for boolean values.
Parameters
help_text

A human-readable text describing the purpose of this configuration variable.

initial_value

The initial value for this variable as a string. The string representation of 'true'
is either "yes" or "1". The string representation of 'false' is either "no" or "0".

5.213.3

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

782

5.213.3.1

CONTENTS

op_setval()

std::string MHAParser::bool_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

5.213.3.2

query_type()

std::string MHAParser::bool_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.213.3.3

query_val()

std::string MHAParser::bool_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.213.4

5.213.4.1

Member Data Documentation

data

bool MHAParser::bool_t::data

Data field.
The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.214

MHAParser::c_ifc_parser_t Class Reference

5.214

MHAParser::c_ifc_parser_t Class Reference

783

Inheritance diagram for MHAParser::c_ifc_parser_t:

MHAParser::base_t

MHAParser::c_ifc_parser_t

io_lib_t

PluginLoader::mhapluginloader_t

mhaplug_cfg_t

plug_t

pluginloader_t

Public Member Functions
• c_ifc_parser_t (const std::string &modulename_)
• ∼c_ifc_parser_t ()
• void set_parse_cb ( c_parse_cmd_t, c_parse_err_t, void ∗)

Protected Member Functions
• std::string op_subparse ( MHAParser::expression_t &)
• std::string op_setval ( MHAParser::expression_t &)
• std::string op_query ( MHAParser::expression_t &)

Private Member Functions
• void test_error ()
© 2005-2018 HörTech gGmbH, Oldenburg

784

CONTENTS

Private Attributes
•
•
•
•
•
•
•

std::string modulename
c_parse_cmd_t c_parse_cmd
c_parse_err_t c_parse_err
int liberr
void ∗ libdata
unsigned int ret_size
char ∗ retv

Additional Inherited Members

5.214.1

5.214.1.1

Constructor & Destructor Documentation

c_ifc_parser_t()

MHAParser::c_ifc_parser_t::c_ifc_parser_t (
const std::string & modulename_ )

5.214.1.2 ∼c_ifc_parser_t()

MHAParser::c_ifc_parser_t::∼c_ifc_parser_t ( )

5.214.2

5.214.2.1

Member Function Documentation

set_parse_cb()

void MHAParser::c_ifc_parser_t::set_parse_cb (
MHAParser::c_parse_cmd_t cb,
MHAParser::c_parse_err_t strerr,
void ∗ d )

© 2005-2018 HörTech gGmbH, Oldenburg

5.214

5.214.2.2

MHAParser::c_ifc_parser_t Class Reference

785

op_subparse()

std::string MHAParser::c_ifc_parser_t::op_subparse (
MHAParser::expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 768).

5.214.2.3

op_setval()

std::string MHAParser::c_ifc_parser_t::op_setval (
MHAParser::expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 769).

5.214.2.4

op_query()

std::string MHAParser::c_ifc_parser_t::op_query (
MHAParser::expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 769).

5.214.2.5

test_error()

void MHAParser::c_ifc_parser_t::test_error ( ) [private]

5.214.3

5.214.3.1

Member Data Documentation

modulename

std::string MHAParser::c_ifc_parser_t::modulename [private]

5.214.3.2

c_parse_cmd

c_parse_cmd_t MHAParser::c_ifc_parser_t::c_parse_cmd [private]

© 2005-2018 HörTech gGmbH, Oldenburg

786

5.214.3.3

CONTENTS

c_parse_err

c_parse_err_t MHAParser::c_ifc_parser_t::c_parse_err [private]

5.214.3.4

liberr

int MHAParser::c_ifc_parser_t::liberr [private]

5.214.3.5

libdata

void∗ MHAParser::c_ifc_parser_t::libdata [private]

5.214.3.6

ret_size

unsigned int MHAParser::c_ifc_parser_t::ret_size [private]

5.214.3.7

retv

char∗ MHAParser::c_ifc_parser_t::retv [private]

The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.215 MHAParser::commit_t< receiver_t > Class Template
Reference

5.215

787

MHAParser::commit_t< receiver_t > Class Template Reference

Parser variable with event-emission functionality.
Inheritance diagram for MHAParser::commit_t< receiver_t >:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::kw_t

MHAParser::commit_t
< receiver_t >

Public Member Functions
• commit_t (receiver_t ∗, void(receiver_t::∗)(), const std::string & help="Variable changes
action")
Private Attributes
• MHAEvents::connector_t< receiver_t > extern_connector
Additional Inherited Members
5.215.1

Detailed Description

template
class MHAParser::commit_t< receiver_t >
Parser variable with event-emission functionality.
The commit_t (p. 787) variable can register an event receiver in its constructor, which is called
whenever the variable is set to "commit".
© 2005-2018 HörTech gGmbH, Oldenburg

788

5.215.2

CONTENTS

Constructor & Destructor Documentation

5.215.2.1

commit_t()

template
MHAParser::commit_t< receiver_t >::

commit_t (

receiver_t ∗ r,
void(receiver_t::∗)() rfun,
const std::string & help = "Variable changes action" )

5.215.3

Member Data Documentation

5.215.3.1

extern_connector

template
MHAEvents::connector_t

MHAParser::commit_t< receiver_t >::extern_←-

connector [private]

The documentation for this class was generated from the following file:
• mha_parser.hh

5.216

MHAParser::complex_mon_t Class Reference

Monitor with complex value.
Inheritance diagram for MHAParser::complex_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::complex
_mon_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.216

MHAParser::complex_mon_t Class Reference

Public Member Functions
• complex_mon_t (const std::string &hlp)
Create a complex monitor variable.

Public Attributes
• mha_complex_t data
Data field.

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.216.1

Detailed Description

Monitor with complex value.

5.216.2

Constructor & Destructor Documentation

5.216.2.1

complex_mon_t()

MHAParser::complex_mon_t::complex_mon_t (
const std::string & hlp )

Create a complex monitor variable.
Parameters
hlp

5.216.3

A help text describing this monitor variable.

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

789

790

5.216.3.1

CONTENTS

query_val()

std::string MHAParser::complex_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.216.3.2

query_type()

std::string MHAParser::complex_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.216.4

Member Data Documentation

5.216.4.1

data

mha_complex_t MHAParser::complex_mon_t::data

Data field.
The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp

5.217

MHAParser::complex_t Class Reference

Variable with complex value.
© 2005-2018 HörTech gGmbH, Oldenburg

5.217

MHAParser::complex_t Class Reference

791

Inheritance diagram for MHAParser::complex_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::range_var_t

MHAParser::complex_t

Public Member Functions
• complex_t (const std::string &, const std::string &, const std::string &="")

Public Attributes
• mha_complex_t data
Data field.

Protected Member Functions
• std::string op_setval ( expression_t &)
• std::string query_type (const std::string &)
• std::string query_val (const std::string &)

Additional Inherited Members
5.217.1

Detailed Description

Variable with complex value.
© 2005-2018 HörTech gGmbH, Oldenburg

792

5.217.2

5.217.2.1

CONTENTS

Constructor & Destructor Documentation

complex_t()

MHAParser::complex_t::complex_t (
const std::string & h,
const std::string & v,
const std::string & rg = "" )

5.217.3

5.217.3.1

Member Function Documentation

op_setval()

std::string MHAParser::complex_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

5.217.3.2

query_type()

std::string MHAParser::complex_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.217.3.3

query_val()

std::string MHAParser::complex_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.217.4

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.218

MHAParser::entry_t Class Reference

5.217.4.1

793

data

mha_complex_t MHAParser::complex_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.218

MHAParser::entry_t Class Reference

Public Member Functions
• entry_t (const std::string &, base_t ∗)

Public Attributes
• std::string name
• base_t ∗ entry

5.218.1

5.218.1.1

Constructor & Destructor Documentation

entry_t()

MHAParser::entry_t::entry_t (
const std::string & n,
base_t ∗ e )

5.218.2

5.218.2.1

Member Data Documentation

name

std::string MHAParser::entry_t::name

© 2005-2018 HörTech gGmbH, Oldenburg

794

5.218.2.2

CONTENTS

entry

base_t∗ MHAParser::entry_t::entry

The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.219

MHAParser::expression_t Class Reference

Public Member Functions
• expression_t (const std::string &, const std::string &)
Constructor.

• expression_t ()

Public Attributes
• std::string lval
• std::string rval
• std::string op

5.219.1

5.219.1.1

Constructor & Destructor Documentation

expression_t() [1/2]

expression_t::expression_t (
const std::string & s,
const std::string & o )

Constructor.
Parameters
s

String to be splitted

o

List of valid operators (single character only)

© 2005-2018 HörTech gGmbH, Oldenburg

5.220

MHAParser::float_mon_t Class Reference

5.219.1.2

795

expression_t() [2/2]

expression_t::expression_t ( )

5.219.2

Member Data Documentation

5.219.2.1

lval

std::string MHAParser::expression_t::lval

5.219.2.2

rval

std::string MHAParser::expression_t::rval

5.219.2.3

op

std::string MHAParser::expression_t::op

The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.220

MHAParser::float_mon_t Class Reference

Monitor with float value.
Inheritance diagram for MHAParser::float_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::float_mon_t

© 2005-2018 HörTech gGmbH, Oldenburg

796

CONTENTS

Public Member Functions
• float_mon_t (const std::string &hlp)
Initialize a floating point (32 bits) monitor variable.

Public Attributes
• float data
Data field.

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.220.1

Detailed Description

Monitor with float value.

5.220.2

Constructor & Destructor Documentation

5.220.2.1

float_mon_t()

MHAParser::float_mon_t::float_mon_t (
const std::string & hlp )

Initialize a floating point (32 bits) monitor variable.
Parameters
hlp

5.220.3

A help text describing this monitor variable.

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.221

MHAParser::float_t Class Reference

5.220.3.1

797

query_val()

std::string MHAParser::float_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.220.3.2

query_type()

std::string MHAParser::float_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.220.4

Member Data Documentation

5.220.4.1

data

float MHAParser::float_mon_t::data

Data field.
The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp

5.221

MHAParser::float_t Class Reference

Variable with float value.
© 2005-2018 HörTech gGmbH, Oldenburg

798

CONTENTS

Inheritance diagram for MHAParser::float_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::range_var_t

MHAParser::float_t

Public Member Functions
• float_t (const std::string &help_text, const std::string &initial_value, const std::string &
range="")
Constructor for a configuration language variable for 32bit ieee floating-point values.

Public Attributes
• float data
Data field.

Protected Member Functions
• std::string op_setval ( expression_t &)
• std::string query_type (const std::string &)
• std::string query_val (const std::string &)
© 2005-2018 HörTech gGmbH, Oldenburg

5.221

MHAParser::float_t Class Reference

799

Additional Inherited Members
5.221.1

Detailed Description

Variable with float value.

5.221.2

5.221.2.1

Constructor & Destructor Documentation

float_t()

MHAParser::float_t::float_t (
const std::string & help_text,
const std::string & initial_value,
const std::string & range = "" )

Constructor for a configuration language variable for 32bit ieee floating-point values.
Parameters
help_text

A human-readable text describing the purpose of this configuration variable.

initial_value

The initial value for this variable as a string (decimal representation of the
floating-point variable). If a range is given in the third parameter, then the
initial value has to be within the range. A human-readable text describing the
purpose of this configuration variable.

range

The range of values that this variable can hold can be restricted. A range is a
string of the form "[a,b]", where a and b are decimal representations of the
inclusive boundaries of the range. a<=b. In a range of the form "]a,b[", both
boundaries are excluded. Mixed forms are permitted. a or b can also be
omitted if there is no lower or upper limit. The range of values is always
restricted by the representable range of the underlying C data type.

5.221.3

5.221.3.1

Member Function Documentation

op_setval()

std::string MHAParser::float_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

© 2005-2018 HörTech gGmbH, Oldenburg

800

5.221.3.2

CONTENTS

query_type()

std::string MHAParser::float_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.221.3.3

query_val()

std::string MHAParser::float_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).
5.221.4

Member Data Documentation

5.221.4.1

data

float MHAParser::float_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.222

MHAParser::int_mon_t Class Reference

Monitor variable with int value.
Inheritance diagram for MHAParser::int_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::int_mon_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.222

MHAParser::int_mon_t Class Reference

801

Public Member Functions
• int_mon_t (const std::string &hlp)
Create a monitor variable for integral values.

Public Attributes
• int data
Data field.

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.222.1

Detailed Description

Monitor variable with int value.
Monitor variables can be of many types. These variables can be queried through the parser.
The public data element contains the monitored state. Write access is only possible from the
C++ code by direct access to the data field.

5.222.2

Constructor & Destructor Documentation

5.222.2.1

int_mon_t()

MHAParser::int_mon_t::int_mon_t (
const std::string & hlp )

Create a monitor variable for integral values.
Parameters
hlp

A help text describing this monitor variable.

© 2005-2018 HörTech gGmbH, Oldenburg

802

5.222.3

5.222.3.1

CONTENTS

Member Function Documentation

query_val()

std::string MHAParser::int_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.222.3.2

query_type()

std::string MHAParser::int_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.222.4

5.222.4.1

Member Data Documentation

data

int MHAParser::int_mon_t::data

Data field.
The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.223

MHAParser::int_t Class Reference

5.223

MHAParser::int_t Class Reference

803

Variable with integer value.
Inheritance diagram for MHAParser::int_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::range_var_t

MHAParser::int_t

parser_int_dyn

Public Member Functions
• int_t (const std::string &help_text, const std::string &initial_value, const std::string &
range="")
Constructor for a configuration language variable for integral values.

Public Attributes
• int data
Data field.
© 2005-2018 HörTech gGmbH, Oldenburg

804

CONTENTS

Protected Member Functions
• std::string op_setval ( expression_t &)
• std::string query_type (const std::string &)
• std::string query_val (const std::string &)

Additional Inherited Members
5.223.1

Detailed Description

Variable with integer value.

5.223.2

5.223.2.1

Constructor & Destructor Documentation

int_t()

MHAParser::int_t::int_t (
const std::string & help_text,
const std::string & initial_value,
const std::string & range = "" )

Constructor for a configuration language variable for integral values.
Parameters
help_text

A human-readable text describing the purpose of this configuration variable.

initial_value

The initial value for this variable as a string (decimal representation of the
integer variable). If a range is given in the third parameter, then the initial
value has to be within the range.

range

The range of values that this variable can hold can be restricted. A range is a
string of the form "[a,b]", where a and b are decimal representations of the
integral inclusive boundaries of the range. a<=b. In a range of the form
"]a,b[", both boundaries are excluded. Mixed forms are permitted. a or b can
also be omitted if there is no lower or upper limit. The range of values is
always restricted by the representable range of the underlying C data type
(usually 32 bits, [-2147483648,2147483647]).

5.223.3

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.224

MHAParser::keyword_list_t Class Reference

5.223.3.1

805

op_setval()

std::string MHAParser::int_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

5.223.3.2

query_type()

std::string MHAParser::int_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.223.3.3

query_val()

std::string MHAParser::int_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.223.4

Member Data Documentation

5.223.4.1

data

int MHAParser::int_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.224

MHAParser::keyword_list_t Class Reference

Keyword list class.
© 2005-2018 HörTech gGmbH, Oldenburg

806

CONTENTS

Public Types
• typedef std::vector< std::string >::size_type size_t

Public Member Functions
• void set_value (const std::string &)
Select a value from keyword list.

• void set_entries (const std::string &)
Set keyword list entries.

• const std::string & get_value () const
Return selected value.

• const std::vector< std::string > & get_entries () const
Return keyword list.

• const size_t & get_index () const
Return index of selected value.

• void set_index (unsigned int)
• void validate () const
Check if index of selected value is valid.

• void add_entry (const std::string &en)
• keyword_list_t ()
Constructor.

Private Attributes
• size_t index
Index into list.

• std::vector< std::string > entries
List of valid entries.

• std::string empty_string

5.224.1

Detailed Description

Keyword list class.
The stucture keyword_list_t (p. 805) defines a keyword list (vector of strings) with an index into
the list. Used as MHAParser::kw_t (p. 810), it can be used to access a set of valid keywords
through the parser (i.e. one of "pear apple banana").

5.224.2

Member Typedef Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.224

5.224.2.1

MHAParser::keyword_list_t Class Reference

size_t

typedef std::vector::size_type

5.224.3

5.224.3.1

807

MHAParser::keyword_list_t::size_t

Constructor & Destructor Documentation

keyword_list_t()

MHAParser::keyword_list_t::keyword_list_t ( )

Constructor.

5.224.4

5.224.4.1

Member Function Documentation

set_value()

void MHAParser::keyword_list_t::set_value (
const std::string & s )

Select a value from keyword list.
This function selects a value from the keyword list. The index is set to the last matching entry.
Parameters
s

Value to be selected.

5.224.4.2

set_entries()

void MHAParser::keyword_list_t::set_entries (
const std::string & s )

Set keyword list entries.
With this function, the keyword list can be set from a space separated string list.

© 2005-2018 HörTech gGmbH, Oldenburg

808

CONTENTS

Parameters
s

Space separated entry list.

5.224.4.3

get_value()

const std::string & MHAParser::keyword_list_t::get_value ( ) const

Return selected value.

5.224.4.4

get_entries()

const std::vector< std::string > & MHAParser::keyword_list_t::get_entries ( ) const

Return keyword list.

5.224.4.5
const

get_index()
MHAParser::keyword_list_t::size_t & MHAParser::keyword_list_t::get_index ( )

const

Return index of selected value.

5.224.4.6

set_index()

void MHAParser::keyword_list_t::set_index (
unsigned int idx )

5.224.4.7

validate()

void MHAParser::keyword_list_t::validate ( ) const

Check if index of selected value is valid.

© 2005-2018 HörTech gGmbH, Oldenburg

5.224

5.224.4.8

MHAParser::keyword_list_t Class Reference

809

add_entry()

void MHAParser::keyword_list_t::add_entry (
const std::string & en ) [inline]

5.224.5

5.224.5.1

Member Data Documentation

index

size_t MHAParser::keyword_list_t::index [private]

Index into list.

5.224.5.2

entries

std::vector MHAParser::keyword_list_t::entries [private]

List of valid entries.

5.224.5.3

empty_string

std::string MHAParser::keyword_list_t::empty_string [private]

The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

810

5.225

CONTENTS

MHAParser::kw_t Class Reference

Variable with keyword list value.
Inheritance diagram for MHAParser::kw_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::kw_t

MHAOvlFilter::scale
_var_t

MHAParser::commit_t
< receiver_t >

Public Member Functions
• kw_t (const std::string &, const std::string &, const std::string &)
Constructor of a keyword list openMHA configuration variable.

• kw_t (const kw_t &)
Copy constructor.

• void set_range (const std::string &)
Set/change the list of valid entries.

• bool isval (const std::string &) const
Test if the given value is selected.

Public Attributes
• keyword_list_t data
Variable data in its native type.
© 2005-2018 HörTech gGmbH, Oldenburg

5.225

MHAParser::kw_t Class Reference

811

Protected Member Functions
•
•
•
•
•

void validate (const keyword_list_t &)
std::string op_setval ( expression_t &)
std::string query_range (const std::string &)
std::string query_val (const std::string &)
std::string query_type (const std::string &)

Additional Inherited Members
5.225.1

Detailed Description

Variable with keyword list value.

5.225.2

5.225.2.1

Constructor & Destructor Documentation

kw_t() [1/2]

MHAParser::kw_t::kw_t (
const std::string & h,
const std::string & v,
const std::string & rg )

Constructor of a keyword list openMHA configuration variable.
Parameters
h

A help string describing the purpose of this variable.

v

The initial value, has to be a value from the list of possible values given in the last
parameter.

rg

A string containing the list of valid entries. The entries have to be separated by spaces.
The list of entries has to be delimited by brackets "[", "]".

5.225.2.2

kw_t() [2/2]

MHAParser::kw_t::kw_t (
const

kw_t & src )

Copy constructor.
© 2005-2018 HörTech gGmbH, Oldenburg

812

5.225.3

5.225.3.1

CONTENTS

Member Function Documentation

set_range()

void MHAParser::kw_t::set_range (
const std::string & r )

Set/change the list of valid entries.
Parameters
r

A string containing the list of valid entries. The entries have to be separated by spaces.
The list of entries has to be delimited by brackets "[", "]".

5.225.3.2

isval()

bool MHAParser::kw_t::isval (
const std::string & testval ) const

Test if the given value is selected.

5.225.3.3

validate()

void MHAParser::kw_t::validate (
const

5.225.3.4

keyword_list_t & s ) [protected]

op_setval()

std::string MHAParser::kw_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

© 2005-2018 HörTech gGmbH, Oldenburg

5.225

5.225.3.5

MHAParser::kw_t Class Reference

813

query_range()

std::string MHAParser::kw_t::query_range (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.225.3.6

query_val()

std::string MHAParser::kw_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.225.3.7

query_type()

std::string MHAParser::kw_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.225.4

5.225.4.1

Member Data Documentation

data

keyword_list_t MHAParser::kw_t::data

Variable data in its native type.
The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

814

5.226

CONTENTS

MHAParser::mcomplex_mon_t Class Reference

Matrix of complex numbers monitor.
Inheritance diagram for MHAParser::mcomplex_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::mcomplex
_mon_t

Public Member Functions
• mcomplex_mon_t (const std::string &hlp)
Create a matrix of complex floating point monitor values.

Public Attributes
• std::vector< std::vector< mha_complex_t > > data
Data field.

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.226.1

Detailed Description

Matrix of complex numbers monitor.
© 2005-2018 HörTech gGmbH, Oldenburg

5.226

MHAParser::mcomplex_mon_t Class Reference

5.226.2

Constructor & Destructor Documentation

5.226.2.1

mcomplex_mon_t()

MHAParser::mcomplex_mon_t::mcomplex_mon_t (
const std::string & hlp )

Create a matrix of complex floating point monitor values.
Parameters
hlp

A help text describing this monitor variable.

5.226.3

5.226.3.1

Member Function Documentation

query_val()

std::string MHAParser::mcomplex_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.226.3.2

query_type()

std::string MHAParser::mcomplex_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.226.4

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

815

816

5.226.4.1

CONTENTS

data

std::vector< std::vector< mha_complex_t> > MHAParser::mcomplex_mon_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.227

MHAParser::mcomplex_t Class Reference

Matrix variable with complex value.
Inheritance diagram for MHAParser::mcomplex_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::range_var_t

MHAParser::mcomplex_t

Public Member Functions
• mcomplex_t (const std::string &, const std::string &, const std::string &="")
© 2005-2018 HörTech gGmbH, Oldenburg

5.227

MHAParser::mcomplex_t Class Reference

Public Attributes
• std::vector< std::vector< mha_complex_t > > data
Data field.

Protected Member Functions
• std::string op_setval ( expression_t &)
• std::string query_type (const std::string &)
• std::string query_val (const std::string &)

Additional Inherited Members
5.227.1

Detailed Description

Matrix variable with complex value.

5.227.2

5.227.2.1

Constructor & Destructor Documentation

mcomplex_t()

MHAParser::mcomplex_t::mcomplex_t (
const std::string & h,
const std::string & v,
const std::string & rg = "" )

5.227.3

5.227.3.1

Member Function Documentation

op_setval()

std::string MHAParser::mcomplex_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

© 2005-2018 HörTech gGmbH, Oldenburg

817

818

5.227.3.2

CONTENTS

query_type()

std::string MHAParser::mcomplex_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.227.3.3

query_val()

std::string MHAParser::mcomplex_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).
5.227.4

Member Data Documentation

5.227.4.1

data

std::vector > MHAParser::mcomplex_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.228

MHAParser::mfloat_mon_t Class Reference

Matrix of floats monitor.
Inheritance diagram for MHAParser::mfloat_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::mfloat_mon_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.228

MHAParser::mfloat_mon_t Class Reference

Public Member Functions
• mfloat_mon_t (const std::string &hlp)
Create a matrix of floating point monitor values.

Public Attributes
• std::vector< std::vector< float > > data
Data field.

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.228.1

Detailed Description

Matrix of floats monitor.

5.228.2

Constructor & Destructor Documentation

5.228.2.1

mfloat_mon_t()

MHAParser::mfloat_mon_t::mfloat_mon_t (
const std::string & hlp )

Create a matrix of floating point monitor values.
Parameters
hlp

5.228.3

A help text describing this monitor variable.

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

819

820

5.228.3.1

CONTENTS

query_val()

std::string MHAParser::mfloat_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.228.3.2

query_type()

std::string MHAParser::mfloat_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.228.4

Member Data Documentation

5.228.4.1

data

std::vector< std::vector > MHAParser::mfloat_mon_t::data

Data field.
The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp

5.229

MHAParser::mfloat_t Class Reference

Matrix variable with float value.
© 2005-2018 HörTech gGmbH, Oldenburg

5.229

MHAParser::mfloat_t Class Reference

821

Inheritance diagram for MHAParser::mfloat_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::range_var_t

MHAParser::mfloat_t

Public Member Functions
• mfloat_t (const std::string &, const std::string &, const std::string &="")
Create a float matrix parser variable.

Public Attributes
• std::vector< std::vector< float > > data
Data field.

Protected Member Functions
• std::string op_setval ( expression_t &)
• std::string query_type (const std::string &)
• std::string query_val (const std::string &)
© 2005-2018 HörTech gGmbH, Oldenburg

822

CONTENTS

Additional Inherited Members
5.229.1

Detailed Description

Matrix variable with float value.

5.229.2

5.229.2.1

Constructor & Destructor Documentation

mfloat_t()

MHAParser::mfloat_t::mfloat_t (
const std::string & h,
const std::string & v,
const std::string & rg = "" )

Create a float matrix parser variable.
Parameters
h

A human-readable text describing the purpose of this configuration variable.

v

The initial value of the variable, as a string, in openMHA configuration language: (e.g. "[[0
1]; [2 3]]" for a matrix), described in the "Multidimensional Variables" s2.1.3 section of the
openMHA User Manual.

rg

The numeric range to enforce on all members of the matrix.

5.229.3

5.229.3.1

Member Function Documentation

op_setval()

std::string MHAParser::mfloat_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

© 2005-2018 HörTech gGmbH, Oldenburg

5.230

MHAParser::mhaconfig_mon_t Class Reference

5.229.3.2

823

query_type()

std::string MHAParser::mfloat_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.229.3.3

query_val()

std::string MHAParser::mfloat_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.229.4

Member Data Documentation

5.229.4.1

data

std::vector > MHAParser::mfloat_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.230

MHAParser::mhaconfig_mon_t Class Reference

Inheritance diagram for MHAParser::mhaconfig_mon_t:

MHAParser::base_t

MHAParser::parser_t

MHAParser::mhaconfig
_mon_t

© 2005-2018 HörTech gGmbH, Oldenburg

824

CONTENTS

Public Member Functions
• mhaconfig_mon_t (const std::string & help="")
• void update (const mhaconfig_t &cf)

Private Attributes
• MHAParser::int_mon_t channels
Number of audio channels.

• MHAParser::string_mon_t domain
Signal domain (MHA_WAVEFORM or MHA_SPECTRUM)

• MHAParser::int_mon_t fragsize
Fragment size of waveform data.

• MHAParser::int_mon_t wndlen
Window length of spectral data.

• MHAParser::int_mon_t fftlen
FFT length of spectral data.

• MHAParser::float_mon_t srate
Sampling rate in Hz.

Additional Inherited Members

5.230.1

5.230.1.1

Constructor & Destructor Documentation

mhaconfig_mon_t()

MHAParser::mhaconfig_mon_t::mhaconfig_mon_t (
const std::string & help = "" )

5.230.2

5.230.2.1

Member Function Documentation

update()

void MHAParser::mhaconfig_mon_t::update (
const

mhaconfig_t & cf )

© 2005-2018 HörTech gGmbH, Oldenburg

5.230

MHAParser::mhaconfig_mon_t Class Reference

5.230.3

Member Data Documentation

5.230.3.1

825

channels

MHAParser::int_mon_t MHAParser::mhaconfig_mon_t::channels [private]

Number of audio channels.

5.230.3.2

domain

MHAParser::string_mon_t MHAParser::mhaconfig_mon_t::domain [private]

Signal domain (MHA_WAVEFORM or MHA_SPECTRUM)

5.230.3.3

fragsize

MHAParser::int_mon_t MHAParser::mhaconfig_mon_t::fragsize [private]

Fragment size of waveform data.

5.230.3.4

wndlen

MHAParser::int_mon_t MHAParser::mhaconfig_mon_t::wndlen [private]

Window length of spectral data.

5.230.3.5

fftlen

MHAParser::int_mon_t MHAParser::mhaconfig_mon_t::fftlen [private]

FFT length of spectral data.

© 2005-2018 HörTech gGmbH, Oldenburg

826

5.230.3.6

CONTENTS

srate

MHAParser::float_mon_t MHAParser::mhaconfig_mon_t::srate [private]

Sampling rate in Hz.
The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp

5.231

MHAParser::mhapluginloader_t Class Reference

Class to create a plugin loader in a parser, including the load logic.

Public Member Functions
• mhapluginloader_t ( MHAParser::parser_t &parent, algo_comm_t ac, const std←::string &plugname_name="plugin_name", const std::string &prefix="")
• ∼mhapluginloader_t ()
• void prepare ( mhaconfig_t &cf)
• void release ()
• void process ( mha_wave_t ∗sIn, mha_wave_t ∗∗sOut)
• void process ( mha_spec_t ∗sIn, mha_spec_t ∗∗sOut)
• void process ( mha_wave_t ∗sIn, mha_spec_t ∗∗sOut)
• void process ( mha_spec_t ∗sIn, mha_wave_t ∗∗sOut)
• mhaconfig_t get_cfin () const
• mhaconfig_t get_cfout () const
• const std::string & get_last_name () const

Protected Attributes
• PluginLoader::mhapluginloader_t ∗ plug

Private Member Functions
• void load_plug ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.231

MHAParser::mhapluginloader_t Class Reference

827

Private Attributes
•
•
•
•
•
•
•
•
•

MHAParser::parser_t & parent_
MHAParser::string_t plugname
std::string prefix_
MHAEvents::connector_t< mhapluginloader_t > connector
algo_comm_t ac_
std::string last_name
std::string plugname_name_
mhaconfig_t cf_in_
mhaconfig_t cf_out_

Static Private Attributes
• static double bookkeeping

5.231.1

Detailed Description

Class to create a plugin loader in a parser, including the load logic.

5.231.2

5.231.2.1

Constructor & Destructor Documentation

mhapluginloader_t()

MHAParser::mhapluginloader_t::mhapluginloader_t (
MHAParser::parser_t & parent,
algo_comm_t ac,
const std::string & plugname_name = "plugin_name",
const std::string & prefix = "" )

5.231.2.2 ∼mhapluginloader_t()
MHAParser::mhapluginloader_t::∼mhapluginloader_t ( )

5.231.3

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

828

5.231.3.1

CONTENTS

prepare()

void MHAParser::mhapluginloader_t::prepare (
mhaconfig_t & cf )

5.231.3.2

release()

void MHAParser::mhapluginloader_t::release ( )

5.231.3.3

process() [1/4]

void MHAParser::mhapluginloader_t::process (
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [inline]

5.231.3.4

process() [2/4]

void MHAParser::mhapluginloader_t::process (
mha_spec_t ∗ sIn,
mha_spec_t ∗∗ sOut ) [inline]

5.231.3.5

process() [3/4]

void MHAParser::mhapluginloader_t::process (
mha_wave_t ∗ sIn,
mha_spec_t ∗∗ sOut ) [inline]

5.231.3.6

process() [4/4]

void MHAParser::mhapluginloader_t::process (
mha_spec_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

5.231

MHAParser::mhapluginloader_t Class Reference

5.231.3.7

829

get_cfin()

mhaconfig_t MHAParser::mhapluginloader_t::get_cfin ( ) const [inline]

5.231.3.8

get_cfout()

mhaconfig_t MHAParser::mhapluginloader_t::get_cfout ( ) const [inline]

5.231.3.9

get_last_name()

const std::string& MHAParser::mhapluginloader_t::get_last_name ( ) const [inline]

5.231.3.10

load_plug()

void MHAParser::mhapluginloader_t::load_plug ( ) [private]

5.231.4

5.231.4.1

Member Data Documentation

plug

PluginLoader::mhapluginloader_t∗ MHAParser::mhapluginloader_t::plug [protected]

5.231.4.2

parent_

MHAParser::parser_t& MHAParser::mhapluginloader_t::parent_ [private]

5.231.4.3

plugname

MHAParser::string_t MHAParser::mhapluginloader_t::plugname [private]

© 2005-2018 HörTech gGmbH, Oldenburg

830

5.231.4.4

CONTENTS

prefix_

std::string MHAParser::mhapluginloader_t::prefix_ [private]

5.231.4.5

connector

MHAEvents::connector_t< mhapluginloader_t> MHAParser::mhapluginloader_t::connector
[private]

5.231.4.6

ac_

algo_comm_t MHAParser::mhapluginloader_t::ac_ [private]

5.231.4.7

last_name

std::string MHAParser::mhapluginloader_t::last_name [private]

5.231.4.8

plugname_name_

std::string MHAParser::mhapluginloader_t::plugname_name_ [private]

5.231.4.9

cf_in_

mhaconfig_t MHAParser::mhapluginloader_t::cf_in_ [private]

5.231.4.10

cf_out_

mhaconfig_t MHAParser::mhapluginloader_t::cf_out_ [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.232

MHAParser::monitor_t Class Reference

5.231.4.11

831

bookkeeping

double MHAParser::mhapluginloader_t::bookkeeping [static], [private]

The documentation for this class was generated from the following files:
• mhapluginloader.h
• mhapluginloader.cpp

5.232

MHAParser::monitor_t Class Reference

Base class for monitors and variable nodes.
Inheritance diagram for MHAParser::monitor_t:

MHAParser::bool_mon_t

MHAParser::complex
_mon_t
MHAOvlFilter::scale
_var_t

MHAParser::float_mon_t

MHAParser::int_mon_t

MHAParser::mcomplex
_mon_t

MHAParser::bool_t

MHAParser::commit_t
< receiver_t >

MHAParser::kw_t

MHAParser::complex_t

MHAParser::mfloat_mon_t
MHAParser::base_t

MHAParser::float_t

MHAParser::monitor_t
MHAParser::string_mon_t

MHAParser::int_t
MHAParser::range_var_t

MHAParser::variable_t

MHAParser::mcomplex_t
MHAParser::string_t

MHAParser::vcomplex
_mon_t

MHAParser::mfloat_t
MHAParser::vstring_t
MHAParser::vcomplex_t

MHAParser::vfloat_mon_t
mon_t
MHAParser::vint_mon_t

MHAParser::vstring
_mon_t

Public Member Functions
•
•
•
•
•

monitor_t (const std::string &)
monitor_t (const monitor_t &)
std::string op_query ( expression_t &)
std::string query_dump (const std::string &)
std::string query_perm (const std::string &)

Additional Inherited Members
5.232.1

Detailed Description

Base class for monitors and variable nodes.
© 2005-2018 HörTech gGmbH, Oldenburg

MHAParser::vfloat_t

MHAParser::vint_t

parser_int_dyn

832

5.232.2

5.232.2.1

CONTENTS

Constructor & Destructor Documentation

monitor_t() [1/2]

MHAParser::monitor_t::monitor_t (
const std::string & h )

5.232.2.2

monitor_t() [2/2]

MHAParser::monitor_t::monitor_t (
const

5.232.3

5.232.3.1

monitor_t & src )

Member Function Documentation

op_query()

std::string MHAParser::monitor_t::op_query (
expression_t & x ) [virtual]

Reimplemented from MHAParser::base_t (p. 769).

5.232.3.2

query_dump()

std::string MHAParser::monitor_t::query_dump (
const std::string & s ) [virtual]

Reimplemented from MHAParser::base_t (p. 769).

5.232.3.3

query_perm()

std::string MHAParser::monitor_t::query_perm (
const std::string & s ) [virtual]

Reimplemented from MHAParser::base_t (p. 769).
Reimplemented in MHAParser::variable_t (p. 850).
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.233

MHAParser::parser_t Class Reference

5.233

MHAParser::parser_t Class Reference

833

Parser node class.
Inherits MHAParser::base_t.
Inherited by AuditoryProfile::parser_t, AuditoryProfile::parser_t::ear_t, Auditory←Profile::parser_t::fmap_t, dc::wideband_inhib_vars_t, DynComp::dc_afterburn_vars←_t, fw_t, io_file_t, io_parser_t, io_tcp_parser_t, MHAFilter::adapt_filter_t, MH←AFilter::iir_filter_t, MHAIOJack::io_jack_t, MHAIOPortAudio::device_info_t, MHAIO←PortAudio::io_portaudio_t, MHAParser::mhaconfig_mon_t, MHAParser::window_t, M←HAPlugin::plugin_t< runtime_cfg_t >, MHAPlugin_Split::split_t, MHAPlugin::plugin_t<
ac2wave_t >, MHAPlugin::plugin_t< acConcat_wave_config >, MHAPlugin::plugin_←t< acPooling_wave_config >, MHAPlugin::plugin_t< acSteer_config >, MHAPlugin←::plugin_t< acTransform_wave_config >, MHAPlugin::plugin_t< adm_rtconfig_t >, M←HAPlugin::plugin_t< analysepath_t >, MHAPlugin::plugin_t< cfg_t >, MHAPlugin←::plugin_t< cohflt_t >, MHAPlugin::plugin_t< combc_t >, MHAPlugin::plugin_t< db_t
>, MHAPlugin::plugin_t< dc_t >, MHAPlugin::plugin_t< delaysum_t >, MHAPlugin←::plugin_t< doasvm_classification_config >, MHAPlugin::plugin_t< doasvm_feature←_extraction_config >, MHAPlugin::plugin_t< example5_t >, MHAPlugin::plugin_t<
fftfb_plug_t >, MHAPlugin::plugin_t< float >, MHAPlugin::plugin_t< hilbert_shifter←_t >, MHAPlugin::plugin_t< int >, MHAPlugin::plugin_t< lpc_bl_predictor_config
>, MHAPlugin::plugin_t< lpc_burglattice_config >, MHAPlugin::plugin_t< lpc_config
>, MHAPlugin::plugin_t< MHA_AC::spectrum_t >, MHAPlugin::plugin_t< MHA_AC←::waveform_t >, MHAPlugin::plugin_t< mhachain::plugs_t >, MHAPlugin::plugin_t<
MHASignal::delay_t >, MHAPlugin::plugin_t< MHASignal::waveform_t >, MHAPlugin←::plugin_t< MHAWindow::fun_t >, MHAPlugin::plugin_t< noisePowProposed >, MH←APlugin::plugin_t< overlapadd_t >, MHAPlugin::plugin_t< prediction_error_config >,
MHAPlugin::plugin_t< resampling_t >, MHAPlugin::plugin_t< rmslevel_t >, MHA←Plugin::plugin_t< route::process_t >, MHAPlugin::plugin_t< rt_nlms_t >, MHAPlugin←::plugin_t< scaler_t >, MHAPlugin::plugin_t< sine_cfg_t >, MHAPlugin::plugin_t<
smoothspec_wrap_t >, MHAPlugin::plugin_t< spec2wave_t >, MHAPlugin::plugin_t<
spec_fader_t >, MHAPlugin::plugin_t< steerbf_config >, MHAPlugin::plugin_t< timo←Config >, MHAPlugin::plugin_t< wave2spec_t >, MHAPlugin::plugin_t< wavwriter_t >,
and softclipper_variables_t.

Public Member Functions
• parser_t (const std::string &help_text="")
Construct detached node to be used in the configuration tree.

• ∼parser_t ()
• void insert_item (const std::string &, base_t ∗)
Register a parser item into this sub-parser.

• void remove_item (const std::string &)
Remove an item by name.

• void force_remove_item (const std::string &)
Remove an item by name.

• void remove_item (const base_t ∗)
Remove an item by address.
© 2005-2018 HörTech gGmbH, Oldenburg

834

CONTENTS

Protected Member Functions
•
•
•
•
•
•
•
•
•
•
•
•
•

std::string op_subparse ( expression_t &)
std::string op_setval ( expression_t &)
std::string op_query ( expression_t &)
std::string query_type (const std::string &)
std::string query_dump (const std::string &)
std::string query_entries (const std::string &)
std::string query_readfile (const std::string &)
std::string query_savefile (const std::string &)
std::string query_savefile_compact (const std::string &)
std::string query_savemons (const std::string &)
std::string query_val (const std::string &)
std::string query_listids (const std::string &)
void set_id_string (const std::string &)

Private Attributes
• entry_map_t entries
• std::string id_string
identification string

• std::string srcfile
• unsigned int srcline
• std::string last_errormsg

Additional Inherited Members
5.233.1

Detailed Description

Parser node class.
A parser_t (p. 833) instance is a node in the configuration tree. A parser node can contain any
number of other parser_t (p. 833) instances or configuration language variables. These items
are inserted into a parser node using the parser_t::insert_item (p. 835) method.

5.233.2

5.233.2.1

Constructor & Destructor Documentation

parser_t()

MHAParser::parser_t::parser_t (
const std::string & help_text = "" )

Construct detached node to be used in the configuration tree.

© 2005-2018 HörTech gGmbH, Oldenburg

5.233

MHAParser::parser_t Class Reference

835

Parameters
help_text

A text describing this node. E.g. if this node lives at the root of some openMHA
plugin, then the help text should describe the functionality of the plugin.

5.233.2.2 ∼parser_t()
MHAParser::parser_t::∼parser_t ( )

5.233.3

5.233.3.1

Member Function Documentation

insert_item()

void MHAParser::parser_t::insert_item (
const std::string & n,
MHAParser::base_t ∗ e )

Register a parser item into this sub-parser.
This function registers an item under a given name into this sub-parser and makes it accessible
to the parser interface.
Parameters
n

Name of the item in the configuration tree

e

C++ pointer to the item instance. e can either point to a variable, to a monitor, or to
another sub-parser.

5.233.3.2

remove_item() [1/2]

void MHAParser::parser_t::remove_item (
const std::string & n )

Remove an item by name.
If the item does not exist, an error is being reported.

© 2005-2018 HörTech gGmbH, Oldenburg

836

CONTENTS

Parameters
n

Name of parser item to be removed from list.

5.233.3.3

force_remove_item()

void MHAParser::parser_t::force_remove_item (
const std::string & n )

Remove an item by name.
Non-existing items are ignored.
Parameters
n

Name of parser item to be removed from list.

5.233.3.4

remove_item() [2/2]

void MHAParser::parser_t::remove_item (
const

base_t ∗ addr )

Remove an item by address.
The item belonging to an address is being removed from the list of items.
Parameters
addr

5.233.3.5

Address of parser item to be removed.

op_subparse()

std::string MHAParser::parser_t::op_subparse (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 768).

© 2005-2018 HörTech gGmbH, Oldenburg

5.233

MHAParser::parser_t Class Reference

5.233.3.6

op_setval()

std::string MHAParser::parser_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 769).

5.233.3.7

op_query()

std::string MHAParser::parser_t::op_query (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 769).

5.233.3.8

query_type()

std::string MHAParser::parser_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.233.3.9

query_dump()

std::string MHAParser::parser_t::query_dump (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 769).

5.233.3.10

query_entries()

std::string MHAParser::parser_t::query_entries (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 769).

© 2005-2018 HörTech gGmbH, Oldenburg

837

838

5.233.3.11

CONTENTS

query_readfile()

std::string MHAParser::parser_t::query_readfile (
const std::string & fname ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.233.3.12

query_savefile()

std::string MHAParser::parser_t::query_savefile (
const std::string & fname ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 771).

5.233.3.13

query_savefile_compact()

std::string MHAParser::parser_t::query_savefile_compact (
const std::string & fname ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 771).

5.233.3.14

query_savemons()

std::string MHAParser::parser_t::query_savemons (
const std::string & fname ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 771).

5.233.3.15

query_val()

std::string MHAParser::parser_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

© 2005-2018 HörTech gGmbH, Oldenburg

5.233

MHAParser::parser_t Class Reference

5.233.3.16

query_listids()

std::string MHAParser::parser_t::query_listids (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 771).

5.233.3.17

set_id_string()

void MHAParser::parser_t::set_id_string (
const std::string & s ) [protected]

5.233.4

5.233.4.1

Member Data Documentation

entries

entry_map_t MHAParser::parser_t::entries [private]

5.233.4.2

id_string

std::string MHAParser::parser_t::id_string [private]

identification string

5.233.4.3

srcfile

std::string MHAParser::parser_t::srcfile [private]

5.233.4.4

srcline

unsigned int MHAParser::parser_t::srcline [private]

© 2005-2018 HörTech gGmbH, Oldenburg

839

840

5.233.4.5

CONTENTS

last_errormsg

std::string MHAParser::parser_t::last_errormsg [private]

The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp

5.234

MHAParser::range_var_t Class Reference

Base class for all variables with a numeric value range.
Inheritance diagram for MHAParser::range_var_t:

MHAParser::complex_t

MHAParser::float_t

MHAParser::int_t

parser_int_dyn

MHAParser::mcomplex_t
MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::range_var_t
MHAParser::mfloat_t

MHAParser::vcomplex_t

MHAParser::vfloat_t

MHAParser::vint_t

Public Member Functions
•
•
•
•

range_var_t (const std::string &, const std::string &="")
range_var_t (const range_var_t &)
std::string query_range (const std::string &)
void set_range (const std::string &r)
Change the valid range of a variable.

•
•
•
•
•
•
•
•

void
void
void
void
void
void
void
void

validate (const int &)
validate (const float &)
validate (const mha_complex_t &)
validate (const std::vector< int > &)
validate (const std::vector< float > &)
validate (const std::vector< mha_complex_t > &)
validate (const std::vector< std::vector< float > > &)
validate (const std::vector< std::vector< mha_complex_t > > &)
© 2005-2018 HörTech gGmbH, Oldenburg

5.234

MHAParser::range_var_t Class Reference

Protected Attributes
• float low_limit
Lower limit of range.

• float up_limit
Upper limit of range.

• bool low_incl
Lower limit is included (or excluded) in range.

• bool up_incl
Upper limit is included (or excluded) in range.

• bool check_low
Check lower limit.

• bool check_up
Check upper limit.

• bool check_range
Range checking is active.

Additional Inherited Members
5.234.1

Detailed Description

Base class for all variables with a numeric value range.

5.234.2

5.234.2.1

Constructor & Destructor Documentation

range_var_t() [1/2]

MHAParser::range_var_t::range_var_t (
const std::string & h,
const std::string & r = "" )

5.234.2.2

range_var_t() [2/2]

MHAParser::range_var_t::range_var_t (
const

5.234.3

range_var_t & src )

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

841

842

5.234.3.1

CONTENTS

query_range()

std::string MHAParser::range_var_t::query_range (
const std::string & s ) [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.234.3.2

set_range()

void MHAParser::range_var_t::set_range (
const std::string & r )

Change the valid range of a variable.
Parameters
r

New range of the variable (string representation)

5.234.3.3

validate() [1/8]

void MHAParser::range_var_t::validate (
const int & v )

5.234.3.4

validate() [2/8]

void MHAParser::range_var_t::validate (
const float & v )

5.234.3.5

validate() [3/8]

void MHAParser::range_var_t::validate (
const

5.234.3.6

mha_complex_t & v )

validate() [4/8]

void MHAParser::range_var_t::validate (
const std::vector< int > & v )

© 2005-2018 HörTech gGmbH, Oldenburg

5.234

MHAParser::range_var_t Class Reference

5.234.3.7

843

validate() [5/8]

void MHAParser::range_var_t::validate (
const std::vector< float > & v )

5.234.3.8

validate() [6/8]

void MHAParser::range_var_t::validate (
const std::vector<

5.234.3.9

mha_complex_t > & v )

validate() [7/8]

void MHAParser::range_var_t::validate (
const std::vector< std::vector< float > > & v )

5.234.3.10

validate() [8/8]

void MHAParser::range_var_t::validate (
const std::vector< std::vector<

5.234.4

5.234.4.1

mha_complex_t > > & v )

Member Data Documentation

low_limit

float MHAParser::range_var_t::low_limit [protected]

Lower limit of range.

5.234.4.2

up_limit

float MHAParser::range_var_t::up_limit [protected]

Upper limit of range.

© 2005-2018 HörTech gGmbH, Oldenburg

844

5.234.4.3

CONTENTS

low_incl

bool MHAParser::range_var_t::low_incl [protected]

Lower limit is included (or excluded) in range.

5.234.4.4

up_incl

bool MHAParser::range_var_t::up_incl [protected]

Upper limit is included (or excluded) in range.

5.234.4.5

check_low

bool MHAParser::range_var_t::check_low [protected]

Check lower limit.

5.234.4.6

check_up

bool MHAParser::range_var_t::check_up [protected]

Check upper limit.

5.234.4.7

check_range

bool MHAParser::range_var_t::check_range [protected]

Range checking is active.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.235

MHAParser::string_mon_t Class Reference

5.235

MHAParser::string_mon_t Class Reference

Monitor with string value.
Inheritance diagram for MHAParser::string_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::string_mon_t

Public Member Functions
• string_mon_t (const std::string &hlp)
Create a monitor variable for string values.

Public Attributes
• std::string data
Data field.

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.235.1

Detailed Description

Monitor with string value.
© 2005-2018 HörTech gGmbH, Oldenburg

845

846

5.235.2

CONTENTS

Constructor & Destructor Documentation

5.235.2.1

string_mon_t()

MHAParser::string_mon_t::string_mon_t (
const std::string & hlp )

Create a monitor variable for string values.
Parameters
hlp

A help text describing this monitor variable.

5.235.3

5.235.3.1

Member Function Documentation

query_val()

std::string MHAParser::string_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.235.3.2

query_type()

std::string MHAParser::string_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.235.4

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.236

MHAParser::string_t Class Reference

5.235.4.1

847

data

std::string MHAParser::string_mon_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.236

MHAParser::string_t Class Reference

Variable with a string value.
Inheritance diagram for MHAParser::string_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::string_t

Public Member Functions
• string_t (const std::string &, const std::string &)
Constructor of a openMHA configuration variable for string values.

Public Attributes
• std::string data
Data field.
© 2005-2018 HörTech gGmbH, Oldenburg

848

CONTENTS

Protected Member Functions
• std::string op_setval ( expression_t &)
• std::string query_type (const std::string &)
• std::string query_val (const std::string &)

Additional Inherited Members
5.236.1

Detailed Description

Variable with a string value.

5.236.2

5.236.2.1

Constructor & Destructor Documentation

string_t()

MHAParser::string_t::string_t (
const std::string & h,
const std::string & v )

Constructor of a openMHA configuration variable for string values.
Parameters
h
v

A help string describing the purpose of this variable.
The initial string value

5.236.3

5.236.3.1

Member Function Documentation

op_setval()

std::string MHAParser::string_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

© 2005-2018 HörTech gGmbH, Oldenburg

5.237

MHAParser::variable_t Class Reference

5.236.3.2

849

query_type()

std::string MHAParser::string_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.236.3.3

query_val()

std::string MHAParser::string_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.236.4

Member Data Documentation

5.236.4.1

data

std::string MHAParser::string_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.237

MHAParser::variable_t Class Reference

Base class for variable nodes.
Inheritance diagram for MHAParser::variable_t:

MHAOvlFilter::scale
_var_t

MHAParser::bool_t

MHAParser::commit_t
< receiver_t >

MHAParser::kw_t

MHAParser::complex_t

MHAParser::float_t

MHAParser::int_t
MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::range_var_t
MHAParser::mcomplex_t
MHAParser::string_t
MHAParser::mfloat_t
MHAParser::vstring_t
MHAParser::vcomplex_t

MHAParser::vfloat_t

MHAParser::vint_t

© 2005-2018 HörTech gGmbH, Oldenburg

parser_int_dyn

850

CONTENTS

Public Member Functions
•
•
•
•

variable_t (const std::string &)
std::string op_setval ( expression_t &)
std::string query_perm (const std::string &)
void setlock (const bool &)
Lock a variable against write access.

Private Attributes
• bool locked

Additional Inherited Members
5.237.1

Detailed Description

Base class for variable nodes.

5.237.2

5.237.2.1

Constructor & Destructor Documentation

variable_t()

MHAParser::variable_t::variable_t (
const std::string & h )

5.237.3

5.237.3.1

Member Function Documentation

op_setval()

std::string MHAParser::variable_t::op_setval (
expression_t & x ) [virtual]

Reimplemented from MHAParser::base_t (p. 769).
Reimplemented in MHAParser::mcomplex_t (p. 817), MHAParser::mfloat_t (p. 822),
MHAParser::vcomplex_t (p. 856), MHAParser::vfloat_t (p. 861), MHAParser::vint_←t (p. 865), MHAParser::complex_t (p. 792), MHAParser::float_t (p. 799), MHAParser←::int_t (p. 804), MHAParser::bool_t (p. 781), MHAParser::vstring_t (p. 870), MHA←Parser::string_t (p. 848), and MHAParser::kw_t (p. 812).

© 2005-2018 HörTech gGmbH, Oldenburg

5.238

MHAParser::vcomplex_mon_t Class Reference

5.237.3.2

851

query_perm()

std::string MHAParser::variable_t::query_perm (
const std::string & s ) [virtual]

Reimplemented from MHAParser::monitor_t (p. 832).

5.237.3.3

setlock()

void MHAParser::variable_t::setlock (
const bool & b )

Lock a variable against write access.
Parameters
Lock state

b

5.237.4

Member Data Documentation

5.237.4.1

locked

bool MHAParser::variable_t::locked [private]

The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp

5.238

MHAParser::vcomplex_mon_t Class Reference

Monitor with vector of complex values.
© 2005-2018 HörTech gGmbH, Oldenburg

852

CONTENTS

Inheritance diagram for MHAParser::vcomplex_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::vcomplex
_mon_t

Public Member Functions
• vcomplex_mon_t (const std::string &hlp)
Create a vector of complex monitor values.

Public Attributes
• std::vector< mha_complex_t > data
Data field.

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.238.1

Detailed Description

Monitor with vector of complex values.

5.238.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.238

5.238.2.1

MHAParser::vcomplex_mon_t Class Reference

vcomplex_mon_t()

MHAParser::vcomplex_mon_t::vcomplex_mon_t (
const std::string & hlp )

Create a vector of complex monitor values.

© 2005-2018 HörTech gGmbH, Oldenburg

853

854

CONTENTS

Parameters
hlp

A help text describing this monitor variable.

5.238.3

5.238.3.1

Member Function Documentation

query_val()

std::string MHAParser::vcomplex_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.238.3.2

query_type()

std::string MHAParser::vcomplex_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.238.4

5.238.4.1

Member Data Documentation

data

std::vector< mha_complex_t> MHAParser::vcomplex_mon_t::data

Data field.
The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.239

MHAParser::vcomplex_t Class Reference

5.239

MHAParser::vcomplex_t Class Reference

855

Vector variable with complex value.
Inheritance diagram for MHAParser::vcomplex_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::range_var_t

MHAParser::vcomplex_t

Public Member Functions
• vcomplex_t (const std::string &, const std::string &, const std::string &="")

Public Attributes
• std::vector< mha_complex_t > data
Data field.

Protected Member Functions
• std::string op_setval ( expression_t &)
• std::string query_type (const std::string &)
• std::string query_val (const std::string &)
© 2005-2018 HörTech gGmbH, Oldenburg

856

CONTENTS

Additional Inherited Members
5.239.1

Detailed Description

Vector variable with complex value.

5.239.2

5.239.2.1

Constructor & Destructor Documentation

vcomplex_t()

MHAParser::vcomplex_t::vcomplex_t (
const std::string & h,
const std::string & v,
const std::string & rg = "" )

5.239.3

5.239.3.1

Member Function Documentation

op_setval()

std::string MHAParser::vcomplex_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

5.239.3.2

query_type()

std::string MHAParser::vcomplex_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.239.3.3

query_val()

std::string MHAParser::vcomplex_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).
© 2005-2018 HörTech gGmbH, Oldenburg

5.240

MHAParser::vfloat_mon_t Class Reference

5.239.4

Member Data Documentation

5.239.4.1

857

data

std::vector< mha_complex_t> MHAParser::vcomplex_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.240

MHAParser::vfloat_mon_t Class Reference

Vector of floats monitor.
Inheritance diagram for MHAParser::vfloat_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::vfloat_mon_t

mon_t

Public Member Functions
• vfloat_mon_t (const std::string &hlp)
Create a vector of floating point monitor values.
© 2005-2018 HörTech gGmbH, Oldenburg

858

CONTENTS

Public Attributes
• std::vector< float > data
Data field.

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.240.1

Detailed Description

Vector of floats monitor.

5.240.2

Constructor & Destructor Documentation

5.240.2.1

vfloat_mon_t()

MHAParser::vfloat_mon_t::vfloat_mon_t (
const std::string & hlp )

Create a vector of floating point monitor values.
Parameters
hlp

A help text describing this monitor variable.

5.240.3

5.240.3.1

Member Function Documentation

query_val()

std::string MHAParser::vfloat_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

© 2005-2018 HörTech gGmbH, Oldenburg

5.241

MHAParser::vfloat_t Class Reference

5.240.3.2

859

query_type()

std::string MHAParser::vfloat_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).
5.240.4

Member Data Documentation

5.240.4.1

data

std::vector MHAParser::vfloat_mon_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.241

MHAParser::vfloat_t Class Reference

Vector variable with float value.
Inheritance diagram for MHAParser::vfloat_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::range_var_t

MHAParser::vfloat_t

© 2005-2018 HörTech gGmbH, Oldenburg

860

CONTENTS

Public Member Functions
• vfloat_t (const std::string &, const std::string &, const std::string &="")
Create a float vector parser variable.

Public Attributes
• std::vector< float > data
Data field.

Protected Member Functions
• std::string op_setval ( expression_t &)
• std::string query_type (const std::string &)
• std::string query_val (const std::string &)

Additional Inherited Members
5.241.1

Detailed Description

Vector variable with float value.

5.241.2

5.241.2.1

Constructor & Destructor Documentation

vfloat_t()

MHAParser::vfloat_t::vfloat_t (
const std::string & h,
const std::string & v,
const std::string & rg = "" )

Create a float vector parser variable.

Parameters
h

A human-readable text describing the purpose of this configuration variable.

v

The initial value of the variable, as a string, in openMHA configuration language:
(e.g. "[0 1 2.1 3]" for a vector), described in the "Multidimensional Variables"
s2.1.3 section of the openMHA User Manual.

rg

The numeric range to enforce on all members of the vector.
© 2005-2018 HörTech gGmbH, Oldenburg

5.241

MHAParser::vfloat_t Class Reference

861

•

5.241.3

5.241.3.1

Member Function Documentation

op_setval()

std::string MHAParser::vfloat_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

5.241.3.2

query_type()

std::string MHAParser::vfloat_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.241.3.3

query_val()

std::string MHAParser::vfloat_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.241.4

5.241.4.1

Member Data Documentation

data

std::vector MHAParser::vfloat_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

862

5.242

CONTENTS

MHAParser::vint_mon_t Class Reference

Vector of ints monitor.
Inheritance diagram for MHAParser::vint_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::vint_mon_t

Public Member Functions
• vint_mon_t (const std::string &hlp)
Create a vector of integer monitor values.

Public Attributes
• std::vector< int > data
Data field.

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.242.1

Detailed Description

Vector of ints monitor.
© 2005-2018 HörTech gGmbH, Oldenburg

5.242

MHAParser::vint_mon_t Class Reference

5.242.2

Constructor & Destructor Documentation

5.242.2.1

vint_mon_t()

MHAParser::vint_mon_t::vint_mon_t (
const std::string & hlp )

Create a vector of integer monitor values.
Parameters
hlp

A help text describing this monitor variable.

5.242.3

5.242.3.1

Member Function Documentation

query_val()

std::string MHAParser::vint_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.242.3.2

query_type()

std::string MHAParser::vint_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.242.4

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

863

864

5.242.4.1

CONTENTS

data

std::vector MHAParser::vint_mon_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.243

MHAParser::vint_t Class Reference

Variable with vector value.
Inheritance diagram for MHAParser::vint_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::range_var_t

MHAParser::vint_t

Public Member Functions
• vint_t (const std::string &, const std::string &, const std::string &="")
Constructor.
© 2005-2018 HörTech gGmbH, Oldenburg

5.243

MHAParser::vint_t Class Reference

Public Attributes
• std::vector< int > data
Data field.

Protected Member Functions
• std::string op_setval ( expression_t &)
• std::string query_type (const std::string &)
• std::string query_val (const std::string &)

Additional Inherited Members
5.243.1

Detailed Description

Variable with vector value.

5.243.2

5.243.2.1

Constructor & Destructor Documentation

vint_t()

MHAParser::vint_t::vint_t (
const std::string & h,
const std::string & v,
const std::string & rg = "" )

Constructor.
Parameters
h
v
rg

help string
initial value
optional: range constraint for all elements

5.243.3

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

865

866

5.243.3.1

CONTENTS

op_setval()

std::string MHAParser::vint_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

5.243.3.2

query_type()

std::string MHAParser::vint_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.243.3.3

query_val()

std::string MHAParser::vint_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.243.4

5.243.4.1

Member Data Documentation

data

std::vector MHAParser::vint_t::data

Data field.
The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.244

MHAParser::vstring_mon_t Class Reference

5.244

MHAParser::vstring_mon_t Class Reference

Vector of monitors with string value.
Inheritance diagram for MHAParser::vstring_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::vstring
_mon_t

Public Member Functions
• vstring_mon_t (const std::string &hlp)
Create a vector of string monitor values.

Public Attributes
• std::vector< std::string > data
Data field.

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.244.1

Detailed Description

Vector of monitors with string value.
© 2005-2018 HörTech gGmbH, Oldenburg

867

868

5.244.2

CONTENTS

Constructor & Destructor Documentation

5.244.2.1

vstring_mon_t()

MHAParser::vstring_mon_t::vstring_mon_t (
const std::string & hlp )

Create a vector of string monitor values.
Parameters
hlp

A help text describing this monitor variable.

5.244.3

5.244.3.1

Member Function Documentation

query_val()

std::string MHAParser::vstring_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.244.3.2

query_type()

std::string MHAParser::vstring_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.244.4

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.245

MHAParser::vstring_t Class Reference

5.244.4.1

869

data

std::vector MHAParser::vstring_mon_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.245

MHAParser::vstring_t Class Reference

Vector variable with string values.
Inheritance diagram for MHAParser::vstring_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::vstring_t

Public Member Functions
• vstring_t (const std::string &, const std::string &)

Public Attributes
• std::vector< std::string > data
Data field.
© 2005-2018 HörTech gGmbH, Oldenburg

870

CONTENTS

Protected Member Functions
• std::string op_setval ( expression_t &)
• std::string query_type (const std::string &)
• std::string query_val (const std::string &)

Additional Inherited Members
5.245.1

Detailed Description

Vector variable with string values.

5.245.2

5.245.2.1

Constructor & Destructor Documentation

vstring_t()

MHAParser::vstring_t::vstring_t (
const std::string & h,
const std::string & v )

5.245.3

5.245.3.1

Member Function Documentation

op_setval()

std::string MHAParser::vstring_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 850).

5.245.3.2

query_type()

std::string MHAParser::vstring_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

© 2005-2018 HörTech gGmbH, Oldenburg

5.246

MHAParser::window_t Class Reference

5.245.3.3

871

query_val()

std::string MHAParser::vstring_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 770).

5.245.4

Member Data Documentation

5.245.4.1

data

std::vector MHAParser::vstring_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.246

MHAParser::window_t Class Reference

MHA configuration interface for a window function generator.
Inheritance diagram for MHAParser::window_t:

MHAParser::base_t

MHAParser::parser_t

MHAParser::window_t

© 2005-2018 HörTech gGmbH, Oldenburg

872

CONTENTS

Public Types
• enum wtype_t {
wnd_rect =0, wnd_hann =1, wnd_hamming =2, wnd_blackman =3,
wnd_bartlett =4, wnd_user =5 }

Public Member Functions
• window_t (const std::string & help="Window type configuration.")
Constructor to create parser class.

• MHAWindow::base_t get_window (unsigned int len) const
Create a window instance, use default parameters.

• MHAWindow::base_t get_window (unsigned int len, float xmin) const
Create a window instance.

• MHAWindow::base_t get_window (unsigned int len, float xmin, float xmax) const
Create a window instance.

• MHAWindow::base_t get_window (unsigned int len, float xmin, float xmax, bool minincluded) const
Create a window instance.

• MHAWindow::base_t get_window (unsigned int len, float xmin, float xmax, bool minincluded, bool maxincluded) const
Create a window instance.

• MHAParser::window_t::wtype_t get_type () const
Return currently selected window type.

Private Attributes
• MHAParser::kw_t wtype
• MHAParser::vfloat_t user

Additional Inherited Members
5.246.1

Detailed Description

MHA configuration interface for a window function generator.
This class implements a configuration interface (sub-parser) for window type selection and
user-defined window type. It provides member functions to generate an instance of MHA←Window::base_t (p. 1022) based on the values provided by the configuration interface.
The configuration interface is derived from MHAParser::parser_t (p. 833) and can thus be
inserted into the configuration tree using the insert_item() (p. 835) method of the parent parser.
If one of the pre-defined window types is used, then the window is generated using the MHA←Window::fun_t (p. 1025) class constructor; for the user-defined type the values from the "user"
variable are copied.
© 2005-2018 HörTech gGmbH, Oldenburg

5.246

MHAParser::window_t Class Reference

5.246.2

Member Enumeration Documentation

5.246.2.1
enum

873

wtype_t

MHAParser::window_t::wtype_t

Enumerator
wnd_rect
wnd_hann
wnd_hamming
wnd_blackman
wnd_bartlett
wnd_user

5.246.3

5.246.3.1

Constructor & Destructor Documentation

window_t()

MHAParser::window_t::window_t (
const std::string & help = "Window type configuration." )

Constructor to create parser class.

5.246.4

5.246.4.1

Member Function Documentation

get_window() [1/5]

MHAWindow::base_t MHAParser::window_t::get_window (
unsigned int len ) const

Create a window instance, use default parameters.

© 2005-2018 HörTech gGmbH, Oldenburg

874

5.246.4.2

CONTENTS

get_window() [2/5]

MHAWindow::base_t MHAParser::window_t::get_window (
unsigned int len,
float xmin ) const

Create a window instance.

5.246.4.3

get_window() [3/5]

MHAWindow::base_t MHAParser::window_t::get_window (
unsigned int len,
float xmin,
float xmax ) const

Create a window instance.

5.246.4.4

get_window() [4/5]

MHAWindow::base_t MHAParser::window_t::get_window (
unsigned int len,
float xmin,
float xmax,
bool minincluded ) const

Create a window instance.

5.246.4.5

get_window() [5/5]

MHAWindow::base_t MHAParser::window_t::get_window (
unsigned int len,
float xmin,
float xmax,
bool minincluded,
bool maxincluded ) const

Create a window instance.

5.246.4.6

get_type()

MHAParser::window_t::wtype_t MHAParser::window_t::get_type ( ) const

Return currently selected window type.
© 2005-2018 HörTech gGmbH, Oldenburg

5.247

mhaplug_cfg_t Class Reference

5.246.5

Member Data Documentation

5.246.5.1

875

wtype

MHAParser::kw_t MHAParser::window_t::wtype [private]

5.246.5.2

user

MHAParser::vfloat_t MHAParser::window_t::user [private]

The documentation for this class was generated from the following files:
• mha_windowparser.h
• mha_windowparser.cpp

5.247

mhaplug_cfg_t Class Reference

Inheritance diagram for mhaplug_cfg_t:

PluginLoader::config
_file_splitter_t

MHAKernel::algo_comm
_class_t

MHAParser::c_ifc_parser_t

PluginLoader::mhapluginloader_t

mhaplug_cfg_t
MHAParser::base_t

PluginLoader::fourway
_processor_t

Public Member Functions
• mhaplug_cfg_t ( algo_comm_t iac, const std::string & libname, bool use_own_ac)
• ∼mhaplug_cfg_t () throw ()

Additional Inherited Members
5.247.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

876

5.247.1.1

CONTENTS

mhaplug_cfg_t()

mhaplug_cfg_t::mhaplug_cfg_t (
algo_comm_t iac,
const std::string & libname,
bool use_own_ac )

5.247.1.2 ∼mhaplug_cfg_t()
mhaplug_cfg_t::∼mhaplug_cfg_t ( ) throw )

[inline]

The documentation for this class was generated from the following file:
• altplugs.cpp

5.248

MHAPlugin::cfg_chain_t< runtime_cfg_t > Class Template Reference

Public Member Functions
• cfg_chain_t (runtime_cfg_t ∗id)
• ∼cfg_chain_t ()

Public Attributes
• cfg_chain_t< runtime_cfg_t > ∗ next
• bool not_in_use
• runtime_cfg_t ∗ data

5.248.1

5.248.1.1

Constructor & Destructor Documentation

cfg_chain_t()

template
MHAPlugin::cfg_chain_t< runtime_cfg_t >::

cfg_chain_t (

runtime_cfg_t ∗ id )

© 2005-2018 HörTech gGmbH, Oldenburg

5.249 MHAPlugin::config_t< runtime_cfg_t > Class Template
Reference

877

5.248.1.2 ∼cfg_chain_t()
template
MHAPlugin::cfg_chain_t< runtime_cfg_t >::∼ cfg_chain_t ( )

5.248.2

Member Data Documentation

5.248.2.1

next

template
cfg_chain_t< runtime_cfg_t >∗

5.248.2.2

MHAPlugin::cfg_chain_t< runtime_cfg_t >::next

not_in_use

template
bool

MHAPlugin::cfg_chain_t< runtime_cfg_t >::not_in_use

5.248.2.3

data

template
runtime_cfg_t∗

MHAPlugin::cfg_chain_t< runtime_cfg_t >::data

The documentation for this class was generated from the following file:
• mha_plugin.hh

5.249

MHAPlugin::config_t< runtime_cfg_t > Class Template Reference

Template class for thread safe configuration.
Inheritance diagram for MHAPlugin::config_t< runtime_cfg_t >:

calibrator_t

MHAPlugin::config_t
< runtime_cfg_t >

dc_simple::dc_if_t
< level_smoother_t >

calibrator_t< calibrator
_runtime_layer_t >

MHAPlugin::plugin_t
< runtime_cfg_t >

dc_simple::dc_if_t
< dc_t >

fader_wave::fader_wave
_if_t< level_adapt_t >

© 2005-2018 HörTech gGmbH, Oldenburg

878

CONTENTS

Public Member Functions
• config_t ()
• ∼config_t ()

Protected Member Functions
• runtime_cfg_t ∗ poll_config ()
Receive the latest run time configuration.

• runtime_cfg_t ∗ last_config ()
Receive the latest run time configuration.

• void push_config (runtime_cfg_t ∗ncfg)
Push a new run time configuration into the configuration fifo.

• void cleanup_unused_cfg ()

Protected Attributes
• runtime_cfg_t ∗ cfg

Private Member Functions
• void remove_all_cfg ()

Private Attributes
• MHAPlugin::cfg_chain_t< runtime_cfg_t > ∗ cfg_chain
• MHAPlugin::cfg_chain_t< runtime_cfg_t > ∗ cfg_chain_current

5.249.1

Detailed Description

template
class MHAPlugin::config_t< runtime_cfg_t >
Template class for thread safe configuration.
This template class provides a mechanism for the handling of thread safe configuration which
is required for run time configuration changes of the openMHA plugins.
The template parameter runtime_cfg_t is the run time configuration class of the openMHA
plugin. The constructor of that class should transform the MHAParser (p. 118) variables into
derived runtime configuration. The constructor should fail if the configuration is invalid by any
reason.
© 2005-2018 HörTech gGmbH, Oldenburg

5.249 MHAPlugin::config_t< runtime_cfg_t > Class Template
Reference

879

A new runtime configuration is provided by the function push_config() (p. 880). In the processing thread, the actual configuration can be received by a call of poll_config() (p. 880).

in_use

next

configuration

in_use

next

configuration

current configuration
Figure 5 Schematic drawing of runtime configuration update: configuration updated,
but not used yet.

in_use

next

configuration

in_use

next

configuration

current configuration
Figure 6 Schematic drawing of runtime configuration update: configuration in use.

5.249.2

5.249.2.1

Constructor & Destructor Documentation

config_t()

template
MHAPlugin::config_t< runtime_cfg_t >::

config_t ( )

5.249.2.2 ∼config_t()
template
MHAPlugin::config_t< runtime_cfg_t >::∼ config_t ( )
© 2005-2018 HörTech gGmbH, Oldenburg

880

5.249.3

CONTENTS

Member Function Documentation

5.249.3.1

poll_config()

template
runtime_cfg_t ∗

MHAPlugin::config_t< runtime_cfg_t >::poll_config ( ) [protected]

Receive the latest run time configuration.
This function stores the latest run time configuration into the protected class member variable
‘cfg'. If no configuration exists, then an exception will be thrown. If no changes occured, then
the value of ‘cfg' will be untouched. This function should be called before any access to the
‘cfg' variable, typically once in each signal processing call.
This function should be only called from the processing thread.
Exceptions
MHA_Error ( p. 522)

5.249.3.2

if the resulting runtime configuration is NULL. This usually means
that no push_config has occured.

last_config()

template
runtime_cfg_t ∗

MHAPlugin::config_t< runtime_cfg_t >::last_config ( ) [protected]

Receive the latest run time configuration.
This function stores the latest run time configuration into the protected class member variable
‘cfg'. If no configuration exists, then an exception will be thrown. If no changes occured, then
the value of ‘cfg' will be untouched. This function may be called instead of poll_config.
The difference between poll_config and last_config is that poll_config marks previous configurations as ready for deletion, while this function does not. Therefore, memory usage of all
runtime configurations will accumulate if only this function is called, but it enables safe access
to previous runtime configurations.
Also, last_config does not raise an Exception when the latest run time configuration is NULL.
© 2005-2018 HörTech gGmbH, Oldenburg

5.249 MHAPlugin::config_t< runtime_cfg_t > Class Template
Reference
5.249.3.3

881

push_config()

template
MHAPlugin::config_t< runtime_cfg_t >::push_config (

void

runtime_cfg_t ∗ ncfg ) [protected]

Push a new run time configuration into the configuration fifo.
This function adds a new run time configuration. The next time poll_config (p. 880) is called,
this configuration will be available. Configurations which are not in use or are outdated will be
removed.
This function should be only called from the configuration thread.
Parameters
pointer on a new configuration

ncfg

Warning
The runtime configuration passed to this function will be removed by the internal garbage
collector. Do not free manually.

5.249.3.4

cleanup_unused_cfg()

template
void

MHAPlugin::config_t< runtime_cfg_t >::cleanup_unused_cfg ( ) [protected]

5.249.3.5

remove_all_cfg()

template
void

MHAPlugin::config_t< runtime_cfg_t >::remove_all_cfg ( ) [private]

5.249.4

5.249.4.1

Member Data Documentation

cfg

template
runtime_cfg_t∗

MHAPlugin::config_t< runtime_cfg_t >::cfg [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

882

5.249.4.2

CONTENTS

cfg_chain

template
MHAPlugin::cfg_chain_t∗

MHAPlugin::config_t< runtime_cfg_t >::cfg←-

_chain [private]

5.249.4.3

cfg_chain_current

template
MHAPlugin::cfg_chain_t∗

MHAPlugin::config_t< runtime_cfg_t >::cfg←-

_chain_current [private]

The documentation for this class was generated from the following file:
• mha_plugin.hh

5.250

MHAPlugin::plugin_t< runtime_cfg_t > Class Template Reference

The template class for C++ openMHA plugins.
Inheritance diagram for MHAPlugin::plugin_t< runtime_cfg_t >:

calibrator_t< calibrator
_runtime_layer_t >
MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< runtime_cfg_t >

MHAPlugin::plugin_t
< runtime_cfg_t >

dc_simple::dc_if_t
< dc_t >

fader_wave::fader_wave
_if_t< level_adapt_t >

Public Member Functions
• plugin_t (const std::string &, const algo_comm_t &)
Constructor of plugin template.

•
•
•
•
•
•

virtual ∼plugin_t ()
virtual void prepare ( mhaconfig_t &)=0
virtual void release ()
void prepare_ ( mhaconfig_t &)
void release_ ()
bool is_prepared () const
Flag, if the prepare method is successfully called (or currently evaluated)

• mhaconfig_t input_cfg () const
Current input channel configuration.

• mhaconfig_t output_cfg () const
Current output channel configuration.
© 2005-2018 HörTech gGmbH, Oldenburg

5.250 MHAPlugin::plugin_t< runtime_cfg_t > Class Template
Reference

883

Protected Attributes
• mhaconfig_t tftype
Member for storage of plugin interface configuration.

• algo_comm_t ac
AC handle of the chain.

Private Attributes
•
•
•
•
•

bool is_prepared_
mhaconfig_t input_cfg_
mhaconfig_t output_cfg_
MHAParser::mhaconfig_mon_t mhaconfig_in
MHAParser::mhaconfig_mon_t mhaconfig_out

Additional Inherited Members
5.250.1

Detailed Description

template
class MHAPlugin::plugin_t< runtime_cfg_t >
The template class for C++ openMHA plugins.
Template Parameters
runtime_←cfg_t

run-time configuration.

Todo Describe all services provided by this class, so that the reason why it is recommended
that all plugins use this class as their base is evident. Document all relevant methods
and fields.
This template class provides thread safe configuration handling and standard methods to be
compatible to the C++ openMHA plugin wrapper macro MHAPLUGIN_CALLBACKS (p. 8).
The template parameter runtime_cfg_t should be the runtime configuration of the plugin.
See MHAPlugin::config_t (p. 877) for details on the thread safe communication update mechanism.

5.250.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

884

5.250.2.1

CONTENTS

plugin_t()

template
MHAPlugin::plugin_t< runtime_cfg_t >::

plugin_t (

const std::string & help,
const

algo_comm_t & iac )

Constructor of plugin template.
Parameters
help

Help comment to provide some general information about the plugin.

iac

AC space handle (will be stored into the member variable ac).

5.250.2.2 ∼plugin_t()
template
MHAPlugin::plugin_t< runtime_cfg_t >::∼ plugin_t ( ) [virtual]

5.250.3

5.250.3.1

Member Function Documentation

prepare()

template
virtual void

MHAPlugin::plugin_t< runtime_cfg_t >::prepare (
mhaconfig_t &

) [pure virtual]

Implemented in bbcalib_interface_t (p. 244), calibrator_t (p. 249), analysispath_if←_t (p. 232), adm_if_t (p. 206), overlapadd::overlapadd_if_t (p. 1055), frequency_←translator_t (p. 385), noisePowProposedScale::interface_t (p. 1048), dc_simple::dc_←if_t (p. 298), dc::dc_if_t (p. 281), multibandcompressor::interface_t (p. 1037), combc←_if_t (p. 268), coherence::cohflt_if_t (p. 258), plugin_interface_t (p. 1065), example6←_t (p. 369), smoothgains_bridge::overlapadd_if_t (p. 1127), MHAPlugin_Resampling←::resampling_if_t (p. 889), shadowfilter_end::shadowfilter_end_t (p. 1121), ac2wave_←if_t (p. 146), noise_t (p. 1045), nlms_t (p. 1041), prediction_error (p. 1088), spec2wave←_if_t (p. 1139), mhachain::chain_base_t (p. 587), acsave::acsave_t (p. 174), fader←_wave::fader_wave_if_t (p. 374), doasvm_feature_extraction (p. 326), rmslevel_if_←t (p. 1098), shadowfilter_begin::shadowfilter_begin_t (p. 1117), example3_t (p. 360),
example4_t (p. 364), lpc_bl_predictor (p. 459), lpc_burglattice (p. 466), steerbf (p. 1149),
delaysum::delaysum_if_t (p. 315), acPooling_wave (p. 166), lpc (p. 455), fader_if_t
(p. 372), acConcat_wave (p. 152), db_if_t (p. 277), acSteer (p. 184), acTransform_←wave (p. 190), wave2spec_if_t (p. 1176), gain::gain_if_t (p. 400), droptect_t (p. 333),
© 2005-2018 HörTech gGmbH, Oldenburg

5.250 MHAPlugin::plugin_t< runtime_cfg_t > Class Template
Reference

885

example1_t (p. 353), sine_t (p. 1125), doasvm_classification (p. 321), example2_←t (p. 356), wavrec_t (p. 1183), fftfilterbank::fftfb_interface_t (p. 379), route::interface←_t (p. 1102), matrixmixer::matmix_t (p. 477), altplugs_t (p. 221), softclip_t (p. 1132),
save_spec_t (p. 1112), save_wave_t (p. 1114), acmon::acmon_t (p. 161), timoSmooth
(p. 1169), identity_t (p. 409), delay::interface_t (p. 312), cpuload_t (p. 275), ds_t (p. 337),
and us_t (p. 1174).

5.250.3.2

release()

template
void

MHAPlugin::plugin_t< runtime_cfg_t >::release ( ) [virtual]

Reimplemented in bbcalib_interface_t (p. 244), calibrator_t (p. 249), analysispath_←if_t (p. 232), adm_if_t (p. 206), overlapadd::overlapadd_if_t (p. 1055), frequency←_translator_t (p. 386), dc_simple::dc_if_t (p. 298), multibandcompressor::interface←_t (p. 1037), coherence::cohflt_if_t (p. 258), smoothgains_bridge::overlapadd_if_←t (p. 1127), MHAPlugin_Resampling::resampling_if_t (p. 889), ac2wave_if_t (p. 146),
nlms_t (p. 1041), prediction_error (p. 1088), mhachain::chain_base_t (p. 587), acsave←::acsave_t (p. 174), fader_wave::fader_wave_if_t (p. 375), doasvm_feature_extraction
(p. 327), example3_t (p. 360), example4_t (p. 365), lpc_bl_predictor (p. 459), lpc_←burglattice (p. 466), steerbf (p. 1149), delaysum::delaysum_if_t (p. 315), acPooling_←wave (p. 167), lpc (p. 456), acConcat_wave (p. 153), db_if_t (p. 277), acSteer (p. 185),
acTransform_wave (p. 190), droptect_t (p. 333), gain::gain_if_t (p. 400), example2←_t (p. 357), doasvm_classification (p. 321), wavrec_t (p. 1183), fftfilterbank::fftfb_←interface_t (p. 380), route::interface_t (p. 1102), example1_t (p. 353), altplugs_t (p. 221),
acmon::acmon_t (p. 161), timoSmooth (p. 1170), identity_t (p. 409), ds_t (p. 337), and
us_t (p. 1174).

5.250.3.3

prepare_()

template
void

MHAPlugin::plugin_t< runtime_cfg_t >::prepare_ (
mhaconfig_t & cf )

5.250.3.4

release_()

template
void

MHAPlugin::plugin_t< runtime_cfg_t >::release_ ( )

© 2005-2018 HörTech gGmbH, Oldenburg

886

5.250.3.5

CONTENTS

is_prepared()

template
MHAPlugin::plugin_t< runtime_cfg_t >::is_prepared ( ) const [inline]

bool

Flag, if the prepare method is successfully called (or currently evaluated)

5.250.3.6

input_cfg()

template
mhaconfig_t

MHAPlugin::plugin_t< runtime_cfg_t >::input_cfg ( ) const [inline]

Current input channel configuration.

5.250.3.7

output_cfg()

template
mhaconfig_t

MHAPlugin::plugin_t< runtime_cfg_t >::output_cfg ( ) const [inline]

Current output channel configuration.

5.250.4

5.250.4.1

Member Data Documentation

tftype

template
mhaconfig_t

MHAPlugin::plugin_t< runtime_cfg_t >::tftype [protected]

Member for storage of plugin interface configuration.
This member is defined for convenience of the developer. Typically, the actual contents of
mhaconfig_t (p. 595) are stored in this member in the prepare() (p. 884) method.
Note
This member is likely to be removed in later versions, use input_cfg() (p. 886) and
output_cfg() (p. 886) instead.

© 2005-2018 HörTech gGmbH, Oldenburg

5.250 MHAPlugin::plugin_t< runtime_cfg_t > Class Template
Reference
5.250.4.2

887

ac

template
algo_comm_t

MHAPlugin::plugin_t< runtime_cfg_t >::ac [protected]

AC handle of the chain.
This variable is initialized in the constructor and can be used by derived plugins to access the
AC space. Its contents should not be modified.
5.250.4.3

is_prepared_

template
bool

MHAPlugin::plugin_t< runtime_cfg_t >::is_prepared_ [private]

5.250.4.4

input_cfg_

template
mhaconfig_t

5.250.4.5

MHAPlugin::plugin_t< runtime_cfg_t >::input_cfg_ [private]

output_cfg_

template
mhaconfig_t

5.250.4.6

MHAPlugin::plugin_t< runtime_cfg_t >::output_cfg_ [private]

mhaconfig_in

template
MHAParser::mhaconfig_mon_t

5.250.4.7

MHAPlugin::plugin_t< runtime_cfg_t >::mhaconfig_in [private]

mhaconfig_out

template
MHAParser::mhaconfig_mon_t

MHAPlugin::plugin_t< runtime_cfg_t >::mhaconfig_out

[private]

The documentation for this class was generated from the following file:
• mha_plugin.hh
© 2005-2018 HörTech gGmbH, Oldenburg

888

5.251

CONTENTS

MHAPlugin_Resampling::resampling_if_t Class Reference

Inheritance diagram for MHAPlugin_Resampling::resampling_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< resampling_t >

MHAPlugin::plugin_t
< resampling_t >

MHAPlugin_Resampling
::resampling_if_t

Public Member Functions
•
•
•
•

resampling_if_t ( algo_comm_t, std::string, std::string)
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)
void release ()

Private Attributes
•
•
•
•
•
•
•
•

MHAParser::float_t srate
MHAParser::int_t fragsize
MHAParser::float_t nyquist_ratio
MHAParser::float_t irslen_outer2inner
MHAParser::float_t irslen_inner2outer
MHAParser::mhapluginloader_t plugloader
std::string chain
std::string algo
© 2005-2018 HörTech gGmbH, Oldenburg

5.251

MHAPlugin_Resampling::resampling_if_t Class Reference889

Additional Inherited Members
5.251.1

5.251.1.1

Constructor & Destructor Documentation

resampling_if_t()

MHAPlugin_Resampling::resampling_if_t::resampling_if_t (
algo_comm_t iac,
std::string th,
std::string al )

5.251.2

5.251.2.1

Member Function Documentation

process()

mha_wave_t ∗ MHAPlugin_Resampling::resampling_if_t::process (
mha_wave_t ∗ s )

5.251.2.2

prepare()

void MHAPlugin_Resampling::resampling_if_t::prepare (
mhaconfig_t & conf ) [virtual]

Implements MHAPlugin::plugin_t< resampling_t > (p. 884).

5.251.2.3

release()

void MHAPlugin_Resampling::resampling_if_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< resampling_t > (p. 885).

5.251.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

890

5.251.3.1

CONTENTS

srate

MHAParser::float_t MHAPlugin_Resampling::resampling_if_t::srate [private]

5.251.3.2

fragsize

MHAParser::int_t MHAPlugin_Resampling::resampling_if_t::fragsize [private]

5.251.3.3

nyquist_ratio

MHAParser::float_t MHAPlugin_Resampling::resampling_if_t::nyquist_ratio [private]

5.251.3.4

irslen_outer2inner

MHAParser::float_t MHAPlugin_Resampling::resampling_if_t::irslen_outer2inner [private]

5.251.3.5

irslen_inner2outer

MHAParser::float_t MHAPlugin_Resampling::resampling_if_t::irslen_inner2outer [private]

5.251.3.6

plugloader

MHAParser::mhapluginloader_t MHAPlugin_Resampling::resampling_if_t::plugloader
[private]

5.251.3.7

chain

std::string MHAPlugin_Resampling::resampling_if_t::chain [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.252

MHAPlugin_Resampling::resampling_t Class Reference

5.251.3.8

891

algo

std::string MHAPlugin_Resampling::resampling_if_t::algo [private]

The documentation for this class was generated from the following file:
• resampling.cpp

5.252

MHAPlugin_Resampling::resampling_t Class Reference

Public Member Functions
• resampling_t (unsigned int outer_fragsize, float outer_srate, unsigned int inner_←fragsize, float inner_scrate, unsigned int nch_in, float filter_length_in, unsigned int nch←_out, float filter_length_out, float nyquist_ratio, MHAParser::mhapluginloader_t &plug)
• mha_wave_t ∗ process ( mha_wave_t ∗)

Private Attributes
•
•
•
•
•
•
•
•
•
•
•

unsigned outer_fragsize
unsigned inner_fragsize
float outer_srate
float inner_srate
unsigned nchannels_in
unsigned nchannels_out
MHAFilter::blockprocessing_polyphase_resampling_t outer2inner_resampling
MHAFilter::blockprocessing_polyphase_resampling_t inner2outer_resampling
MHAParser::mhapluginloader_t & plugloader
MHASignal::waveform_t inner_signal
MHASignal::waveform_t output_signal

5.252.1

5.252.1.1

Constructor & Destructor Documentation

resampling_t()

MHAPlugin_Resampling::resampling_t::resampling_t (
unsigned int outer_fragsize,
float outer_srate,
unsigned int inner_fragsize,
float inner_scrate,
unsigned int nch_in,
float filter_length_in,
unsigned int nch_out,
float filter_length_out,
float nyquist_ratio,
MHAParser::mhapluginloader_t & plug )

© 2005-2018 HörTech gGmbH, Oldenburg

892

5.252.2

5.252.2.1

CONTENTS

Member Function Documentation

process()

mha_wave_t ∗ MHAPlugin_Resampling::resampling_t::process (
mha_wave_t ∗ s )

5.252.3

5.252.3.1

Member Data Documentation

outer_fragsize

unsigned MHAPlugin_Resampling::resampling_t::outer_fragsize [private]

5.252.3.2

inner_fragsize

unsigned MHAPlugin_Resampling::resampling_t::inner_fragsize [private]

5.252.3.3

outer_srate

float MHAPlugin_Resampling::resampling_t::outer_srate [private]

5.252.3.4

inner_srate

float MHAPlugin_Resampling::resampling_t::inner_srate [private]

5.252.3.5

nchannels_in

unsigned MHAPlugin_Resampling::resampling_t::nchannels_in [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.252

MHAPlugin_Resampling::resampling_t Class Reference

5.252.3.6

893

nchannels_out

unsigned MHAPlugin_Resampling::resampling_t::nchannels_out [private]

5.252.3.7

outer2inner_resampling

MHAFilter::blockprocessing_polyphase_resampling_t MHAPlugin_Resampling::resampling←_t::outer2inner_resampling [private]

5.252.3.8

inner2outer_resampling

MHAFilter::blockprocessing_polyphase_resampling_t MHAPlugin_Resampling::resampling←_t::inner2outer_resampling [private]

5.252.3.9

plugloader

MHAParser::mhapluginloader_t& MHAPlugin_Resampling::resampling_t::plugloader [private]

5.252.3.10

inner_signal

MHASignal::waveform_t MHAPlugin_Resampling::resampling_t::inner_signal [private]

5.252.3.11

output_signal

MHASignal::waveform_t MHAPlugin_Resampling::resampling_t::output_signal [private]

The documentation for this class was generated from the following file:

• resampling.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

894

5.253

CONTENTS

MHAPlugin_Split::domain_handler_t Class Reference

Handles domain-specific partial input and output signal.
Inheritance diagram for MHAPlugin_Split::domain_handler_t:

MHAPlugin_Split::uni
_processor_t

MHAPlugin_Split::domain
_handler_t

Public Member Functions
• void set_input_domain (const mhaconfig_t &settings_in)
Set parameters of input signal.

• void set_output_domain (const mhaconfig_t &settings_out)
Set output signal parameters.

• void deallocate_domains ()
Deallocate domain indicators and signal holders.

• domain_handler_t (const mhaconfig_t &settings_in, const mhaconfig_t &settings←_out, PluginLoader::fourway_processor_t ∗ processor)
Construct a new domain handler once the domains and dimensions of input and output signal
of one of the child plugins of split are known.

• virtual ∼domain_handler_t ()
Deallocation of signal holders.

• unsigned put_signal ( mha_wave_t ∗s_in, unsigned start_channel)
Store the relevant channels from the input signal for processing.

• unsigned put_signal ( mha_spec_t ∗s_in, unsigned start_channel)
Store the relevant channels from the input signal for processing.

• unsigned get_signal ( MHASignal::waveform_t ∗s_out, unsigned start_channel)
Store all partial signal output channels in the combined waveform signal with the given channel
offset.

• unsigned get_signal ( MHASignal::spectrum_t ∗s_out, unsigned start_channel)
Store all partial signal output channels in the combined spectrum signal with the given channel
offset.

• void process ()
Call the processing method of the processor with configured input/output signal domains.
© 2005-2018 HörTech gGmbH, Oldenburg

5.253

MHAPlugin_Split::domain_handler_t Class Reference

895

Public Attributes
• MHASignal::waveform_t ∗ wave_in
Partial wave input signal.

• mha_wave_t ∗∗ wave_out
Partial wave output signal.

• MHASignal::spectrum_t ∗ spec_in
Partial spec input signal.

• mha_spec_t ∗∗ spec_out
Partial spec input signal.

• PluginLoader::fourway_processor_t ∗ processor
The domain-specific signal processing methods are implemented here.

Private Member Functions
• domain_handler_t (const domain_handler_t &)
Disallow copy constructor.

• domain_handler_t & operator= (const domain_handler_t &)
Disallow assignment operator.

5.253.1

Detailed Description

Handles domain-specific partial input and output signal.

5.253.2

5.253.2.1

Constructor & Destructor Documentation

domain_handler_t() [1/2]

MHAPlugin_Split::domain_handler_t::domain_handler_t (
const

domain_handler_t &

) [private]

Disallow copy constructor.

5.253.2.2

domain_handler_t() [2/2]

MHAPlugin_Split::domain_handler_t::domain_handler_t (
const

mhaconfig_t & settings_in,

const

mhaconfig_t & settings_out,

PluginLoader::fourway_processor_t ∗ processor ) [inline]

Construct a new domain handler once the domains and dimensions of input and output signal
of one of the child plugins of split are known.

© 2005-2018 HörTech gGmbH, Oldenburg

896

CONTENTS

5.253.2.3 ∼domain_handler_t()
virtual MHAPlugin_Split::domain_handler_t::∼domain_handler_t ( ) [inline], [virtual]

Deallocation of signal holders.

5.253.3

5.253.3.1

Member Function Documentation

operator=()

domain_handler_t& MHAPlugin_Split::domain_handler_t::operator= (
const

domain_handler_t &

) [private]

Disallow assignment operator.

5.253.3.2

set_input_domain()

void MHAPlugin_Split::domain_handler_t::set_input_domain (
const

mhaconfig_t & settings_in ) [inline]

Set parameters of input signal.
Parameters
domain and dimensions of partial input signal

settings←_in

5.253.3.3

set_output_domain()

void MHAPlugin_Split::domain_handler_t::set_output_domain (
const

mhaconfig_t & settings_out ) [inline]

Set output signal parameters.
Parameters
settings_out

domain and dimensions of partial output signal

© 2005-2018 HörTech gGmbH, Oldenburg

5.253

5.253.3.4

MHAPlugin_Split::domain_handler_t Class Reference

897

deallocate_domains()

void MHAPlugin_Split::domain_handler_t::deallocate_domains ( ) [inline]

Deallocate domain indicators and signal holders.

5.253.3.5

put_signal() [1/2]

unsigned MHAPlugin_Split::domain_handler_t::put_signal (
mha_wave_t ∗ s_in,
unsigned start_channel ) [inline]

Store the relevant channels from the input signal for processing.
The number of channels to store is taken from the dimensions of the partial input signal holder
wave_in (p. 899).
Parameters
s_in

The combined waveform input signal.

start_channel

The index (0-based) of the first channel in s_in to be copied to the partial
input signal.

Returns
The number of channels that were copied from the input signal

5.253.3.6

put_signal() [2/2]

unsigned MHAPlugin_Split::domain_handler_t::put_signal (
mha_spec_t ∗ s_in,
unsigned start_channel ) [inline]

Store the relevant channels from the input signal for processing.
The number of channels to store is taken from the dimensions of the partial input signal holder
spec_in (p. 899).
Parameters
s_in

The combined spectrum input signal.

start_channel

The index (0-based) of the first channel in s_in to be copied to the partial
input signal.

© 2005-2018 HörTech gGmbH, Oldenburg

898

CONTENTS

Returns
The number of channels that were copied from the input signal

5.253.3.7

get_signal() [1/2]

unsigned MHAPlugin_Split::domain_handler_t::get_signal (
MHASignal::waveform_t ∗ s_out,
unsigned start_channel ) [inline]

Store all partial signal output channels in the combined waveform signal with the given channel
offset.
All channels present in wave_out (p. 899) will be copied. Caller may use (∗wave_out)->num←_channels to check the number of channels in advance.
Parameters
s_out

The combined waveform output signal.

start_channel

The channel offset (0-based) in s_out.

Returns
The number of channels that were copied to the output signal

5.253.3.8

get_signal() [2/2]

unsigned MHAPlugin_Split::domain_handler_t::get_signal (
MHASignal::spectrum_t ∗ s_out,
unsigned start_channel ) [inline]

Store all partial signal output channels in the combined spectrum signal with the given channel
offset.
All channels present in spec_out (p. 899) will be copied. Caller may use (∗spec_out)->num←_channels to check the number of channels in advance.
Parameters
s_out

The combined spectrum output signal.

start_channel

The channel offset (0-based) in s_out.

© 2005-2018 HörTech gGmbH, Oldenburg

5.253

MHAPlugin_Split::domain_handler_t Class Reference

899

Returns
The number of channels that were copied to the output signal

5.253.3.9

process()

void MHAPlugin_Split::domain_handler_t::process ( ) [inline], [virtual]

Call the processing method of the processor with configured input/output signal domains.
The input signal has to be stored using put_signal (p. 897) before this method may be called.
Implements MHAPlugin_Split::uni_processor_t (p. 923).

5.253.4

5.253.4.1

Member Data Documentation

wave_in

MHASignal::waveform_t∗ MHAPlugin_Split::domain_handler_t::wave_in

Partial wave input signal.

5.253.4.2

wave_out

mha_wave_t∗∗ MHAPlugin_Split::domain_handler_t::wave_out

Partial wave output signal.

5.253.4.3

spec_in

MHASignal::spectrum_t∗ MHAPlugin_Split::domain_handler_t::spec_in

Partial spec input signal.

© 2005-2018 HörTech gGmbH, Oldenburg

900

5.253.4.4

CONTENTS

spec_out

mha_spec_t∗∗ MHAPlugin_Split::domain_handler_t::spec_out

Partial spec input signal.

5.253.4.5

processor

PluginLoader::fourway_processor_t∗ MHAPlugin_Split::domain_handler_t::processor

The domain-specific signal processing methods are implemented here.
The documentation for this class was generated from the following file:
• split.cpp

5.254

MHAPlugin_Split::dummy_threads_t Class Reference

Dummy specification of a thread platform: This class implements everything in a single thread.
Inheritance diagram for MHAPlugin_Split::dummy_threads_t:

MHAPlugin_Split::thread
_platform_t

MHAPlugin_Split::dummy
_threads_t

Public Member Functions
• void kick_thread ()
perform signal processing immediately (no multiple threads in this dummy class)

• void catch_thread ()
No implementation needed: Processing has been completed during ummy_threads_t::kick_←thread.

• dummy_threads_t ( uni_processor_t ∗proc, const std::string &thread_scheduler, int
thread_priority)
Constructor.
© 2005-2018 HörTech gGmbH, Oldenburg

5.254

MHAPlugin_Split::dummy_threads_t Class Reference

901

Additional Inherited Members
5.254.1

Detailed Description

Dummy specification of a thread platform: This class implements everything in a single thread.

5.254.2

5.254.2.1

Constructor & Destructor Documentation

dummy_threads_t()

MHAPlugin_Split::dummy_threads_t::dummy_threads_t (
uni_processor_t ∗ proc,
const std::string & thread_scheduler,
int thread_priority ) [inline]

Constructor.
Parameters
proc

Pointer to the associated plugin loader

thread_scheduler

Unused in dummy thread platform

thread_priority

Unused in dummy thread platform

5.254.3

5.254.3.1

Member Function Documentation

kick_thread()

void MHAPlugin_Split::dummy_threads_t::kick_thread ( ) [inline], [virtual]

perform signal processing immediately (no multiple threads in this dummy class)
Implements MHAPlugin_Split::thread_platform_t (p. 921).

© 2005-2018 HörTech gGmbH, Oldenburg

902

5.254.3.2

CONTENTS

catch_thread()

void MHAPlugin_Split::dummy_threads_t::catch_thread ( ) [inline], [virtual]

No implementation needed: Processing has been completed during ummy_threads_t::kick_←thread.
Implements MHAPlugin_Split::thread_platform_t (p. 921).
The documentation for this class was generated from the following file:
• split.cpp

5.255

MHAPlugin_Split::posix_threads_t Class Reference

Posix threads specification of thread platform.
Inheritance diagram for MHAPlugin_Split::posix_threads_t:

MHAPlugin_Split::thread
_platform_t

MHAPlugin_Split::posix
_threads_t

Public Member Functions
• void kick_thread ()
Start signal processing in separate thread.

• void catch_thread ()
Wait for signal processing to finish.

•

posix_threads_t ( uni_processor_t ∗proc, const std::string &thread_scheduler, int
thread_priority)
Constructor.

• ∼posix_threads_t ()
Terminate thread.

• void main ()
Thread main loop. Wait for process/termination trigger, then act.
© 2005-2018 HörTech gGmbH, Oldenburg

5.255

MHAPlugin_Split::posix_threads_t Class Reference

903

Static Public Member Functions
• static void ∗ thread_start (void ∗thr)
Thread start function.

• static std::string current_thread_scheduler ()
• static int current_thread_priority ()
Private Attributes
• pthread_mutex_t mutex
The mutex.

• pthread_cond_t kick_condition
The condition for signalling the kicking and termination.

• pthread_cond_t catch_condition
The condition for signalling the processing is finished.

• pthread_attr_t attr
Thread attributes.

• struct sched_param priority
Thread scheduling priority.

• int scheduler
• pthread_t thread
The thread object.

• bool kicked
A flag that is set to true by kick_thread and to false by the thread after it has woken up from
the kicking.

• bool processing_done
A flag that is set to true by the thread when it returns from processing and to false by catch_←thread after it has waited for that return.

• bool termination_request
Set to true by the destructor.

Additional Inherited Members
5.255.1

Detailed Description

Posix threads specification of thread platform.
5.255.2

5.255.2.1

Constructor & Destructor Documentation

posix_threads_t()

MHAPlugin_Split::posix_threads_t::posix_threads_t (
uni_processor_t ∗ proc,
const std::string & thread_scheduler,
int thread_priority ) [inline]

Constructor.

© 2005-2018 HörTech gGmbH, Oldenburg

904

CONTENTS

Parameters
proc
thread_scheduler
thread_priority

Pointer to the associated signal processor instance
A string describing the posix thread scheduler. Possible values:
"SCHED_OTHER", "SCHED_RR", "SCHED_FIFO".
The scheduling priority of the new thread.

5.255.2.2 ∼posix_threads_t()
MHAPlugin_Split::posix_threads_t::∼posix_threads_t ( ) [inline]

Terminate thread.

5.255.3

5.255.3.1

Member Function Documentation

kick_thread()

void MHAPlugin_Split::posix_threads_t::kick_thread ( ) [inline], [virtual]

Start signal processing in separate thread.
Implements MHAPlugin_Split::thread_platform_t (p. 921).

5.255.3.2

catch_thread()

void MHAPlugin_Split::posix_threads_t::catch_thread ( ) [inline], [virtual]

Wait for signal processing to finish.
Implements MHAPlugin_Split::thread_platform_t (p. 921).

5.255.3.3

thread_start()

static void∗ MHAPlugin_Split::posix_threads_t::thread_start (
void ∗ thr ) [inline], [static]

Thread start function.

© 2005-2018 HörTech gGmbH, Oldenburg

5.255

MHAPlugin_Split::posix_threads_t Class Reference

5.255.3.4

905

main()

void MHAPlugin_Split::posix_threads_t::main ( ) [inline]

Thread main loop. Wait for process/termination trigger, then act.

5.255.3.5

current_thread_scheduler()

static std::string MHAPlugin_Split::posix_threads_t::current_thread_scheduler ( )
[inline], [static]

5.255.3.6

current_thread_priority()

static int MHAPlugin_Split::posix_threads_t::current_thread_priority ( ) [inline],
[static]

5.255.4

5.255.4.1

Member Data Documentation

mutex

pthread_mutex_t MHAPlugin_Split::posix_threads_t::mutex [private]

The mutex.

5.255.4.2

kick_condition

pthread_cond_t MHAPlugin_Split::posix_threads_t::kick_condition [private]

The condition for signalling the kicking and termination.

5.255.4.3

catch_condition

pthread_cond_t MHAPlugin_Split::posix_threads_t::catch_condition [private]

The condition for signalling the processing is finished.

© 2005-2018 HörTech gGmbH, Oldenburg

906

5.255.4.4

CONTENTS

attr

pthread_attr_t MHAPlugin_Split::posix_threads_t::attr [private]

Thread attributes.

5.255.4.5

priority

struct sched_param MHAPlugin_Split::posix_threads_t::priority [private]

Thread scheduling priority.

5.255.4.6

scheduler

int MHAPlugin_Split::posix_threads_t::scheduler [private]

5.255.4.7

thread

pthread_t MHAPlugin_Split::posix_threads_t::thread [private]

The thread object.

5.255.4.8

kicked

bool MHAPlugin_Split::posix_threads_t::kicked [private]

A flag that is set to true by kick_thread and to false by the thread after it has woken up from the
kicking.

5.255.4.9

processing_done

bool MHAPlugin_Split::posix_threads_t::processing_done [private]

A flag that is set to true by the thread when it returns from processing and to false by catch_←thread after it has waited for that return.

© 2005-2018 HörTech gGmbH, Oldenburg

5.256

MHAPlugin_Split::split_t Class Reference

5.255.4.10

907

termination_request

bool MHAPlugin_Split::posix_threads_t::termination_request [private]

Set to true by the destructor.
The documentation for this class was generated from the following file:
• split.cpp

5.256

MHAPlugin_Split::split_t Class Reference

Implements split plugin.
Inheritance diagram for MHAPlugin_Split::split_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin_Split::split_t

Public Member Functions
• split_t ( algo_comm_t iac, const std::string &chain_name, const std::string &algo_←name)
Plugin constructor.

• ∼split_t ()
Plugin destructor. Unloads nested plugins.

• void prepare_ ( mhaconfig_t &)
Check signal parameters, prepare chains, and allocate output signal holders.

• void release_ ()
Delete output signal holder and release chains.

• template
void process (SigTypeIn ∗, SigTypeOut ∗∗)
Let the parallel plugins process channel groups of the input signal.
© 2005-2018 HörTech gGmbH, Oldenburg

908

CONTENTS

Private Member Functions
• void update ()
Load plugins in response to a value change in the algos variable.

• void clear_chains ()
Unload the plugins.

• mha_wave_t ∗ copy_output_wave ()
• mha_spec_t ∗ copy_output_spec ()
• template
void trigger_processing (SigType ∗s_in)
Split the argument input signal to groups of channels for the plugins and initiate signal processing.

• template
void collect_result (SigType ∗s_out)
Combine the output signal from the plugins.

• MHASignal::waveform_t ∗ signal_out ( mha_wave_t ∗∗)
Waveform domain output signal structure accessor.

• MHASignal::spectrum_t ∗ signal_out ( mha_spec_t ∗∗)
Spectrum domain output signal structure. Parameter is ignored.

Private Attributes
• MHAEvents::patchbay_t< split_t > patchbay
Reload plugins when the algos variable changes.

• MHAParser::vstring_t algos
Vector of plugins to load in parallel.

• MHAParser::vint_t channels
Number of channels to route through each plugin.

• MHAParser::kw_t thread_platform
Thread platform chooser.

• MHAParser::kw_t worker_thread_scheduler
Scheduler used for worker threads.

• MHAParser::int_t worker_thread_priority
Priority of worker threads.

• MHAParser::string_mon_t framework_thread_scheduler
Scheduler of the signal processing thread.

• MHAParser::int_mon_t framework_thread_priority
Priority of signal processing thread.

• MHAParser::bool_t delay
Switch to activate parallel processing of plugins at the cost of one block of additional delay.

• std::vector< splitted_part_t ∗ > chains
Interfaces to parallel plugins.

• MHASignal::waveform_t ∗ wave_out
Combined output waveforms structure.

• MHASignal::spectrum_t ∗ spec_out
Combined output spectra structure.
© 2005-2018 HörTech gGmbH, Oldenburg

5.256

MHAPlugin_Split::split_t Class Reference

909

Additional Inherited Members
5.256.1

Detailed Description

Implements split plugin.
An instance of class split_t (p. 907) implements the split plugin functionality: The audio channels are splitted and groups of audio channels are processed by different plugins in parallel.

5.256.2

5.256.2.1

Constructor & Destructor Documentation

split_t()

MHAPlugin_Split::split_t::split_t (
algo_comm_t iac,
const std::string & chain_name,
const std::string & algo_name )

Plugin constructor.

5.256.2.2 ∼split_t()
MHAPlugin_Split::split_t::∼split_t ( )

Plugin destructor. Unloads nested plugins.

5.256.3

5.256.3.1

Member Function Documentation

prepare_()

void MHAPlugin_Split::split_t::prepare_ (
mhaconfig_t & signal_parameters )

Check signal parameters, prepare chains, and allocate output signal holders.

© 2005-2018 HörTech gGmbH, Oldenburg

910

5.256.3.2

CONTENTS

release_()

void MHAPlugin_Split::split_t::release_ ( )

Delete output signal holder and release chains.

5.256.3.3

process()

template
void MHAPlugin_Split::split_t::process (
SigTypeIn ∗ s_in,
SigTypeOut ∗∗ s_out )

Let the parallel plugins process channel groups of the input signal.

5.256.3.4

update()

void MHAPlugin_Split::split_t::update ( ) [private]

Load plugins in response to a value change in the algos variable.

5.256.3.5

clear_chains()

void MHAPlugin_Split::split_t::clear_chains ( ) [private]

Unload the plugins.

5.256.3.6

copy_output_wave()

mha_wave_t∗ MHAPlugin_Split::split_t::copy_output_wave ( ) [private]

5.256.3.7

copy_output_spec()

mha_spec_t∗ MHAPlugin_Split::split_t::copy_output_spec ( ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.256

MHAPlugin_Split::split_t Class Reference

5.256.3.8

911

trigger_processing()

template
void MHAPlugin_Split::split_t::trigger_processing (
SigType ∗ s_in ) [private]

Split the argument input signal to groups of channels for the plugins and initiate signal processing.

5.256.3.9

collect_result()

template
void MHAPlugin_Split::split_t::collect_result (
SigType ∗ s_out ) [private]

Combine the output signal from the plugins.

5.256.3.10

signal_out() [1/2]

MHASignal::waveform_t∗ MHAPlugin_Split::split_t::signal_out (
mha_wave_t ∗∗

) [inline], [private]

Waveform domain output signal structure accessor.
Parameter is only for domain disambiguation and is ignored.
5.256.3.11

signal_out() [2/2]

MHASignal::spectrum_t∗ MHAPlugin_Split::split_t::signal_out (
mha_spec_t ∗∗

) [inline], [private]

Spectrum domain output signal structure. Parameter is ignored.

5.256.4

5.256.4.1

Member Data Documentation

patchbay

MHAEvents::patchbay_t< split_t> MHAPlugin_Split::split_t::patchbay [private]

Reload plugins when the algos variable changes.

© 2005-2018 HörTech gGmbH, Oldenburg

912

5.256.4.2

CONTENTS

algos

MHAParser::vstring_t MHAPlugin_Split::split_t::algos [private]

Vector of plugins to load in parallel.

5.256.4.3

channels

MHAParser::vint_t MHAPlugin_Split::split_t::channels [private]

Number of channels to route through each plugin.

5.256.4.4

thread_platform

MHAParser::kw_t MHAPlugin_Split::split_t::thread_platform [private]

Thread platform chooser.

5.256.4.5

worker_thread_scheduler

MHAParser::kw_t MHAPlugin_Split::split_t::worker_thread_scheduler [private]

Scheduler used for worker threads.

5.256.4.6

worker_thread_priority

MHAParser::int_t MHAPlugin_Split::split_t::worker_thread_priority [private]

Priority of worker threads.

5.256.4.7

framework_thread_scheduler

MHAParser::string_mon_t MHAPlugin_Split::split_t::framework_thread_scheduler [private]

Scheduler of the signal processing thread.

© 2005-2018 HörTech gGmbH, Oldenburg

5.256

MHAPlugin_Split::split_t Class Reference

5.256.4.8

913

framework_thread_priority

MHAParser::int_mon_t MHAPlugin_Split::split_t::framework_thread_priority [private]

Priority of signal processing thread.

5.256.4.9

delay

MHAParser::bool_t MHAPlugin_Split::split_t::delay [private]

Switch to activate parallel processing of plugins at the cost of one block of additional delay.

5.256.4.10

chains

std::vector< splitted_part_t∗> MHAPlugin_Split::split_t::chains [private]

Interfaces to parallel plugins.

5.256.4.11

wave_out

MHASignal::waveform_t∗ MHAPlugin_Split::split_t::wave_out [private]

Combined output waveforms structure.

5.256.4.12

spec_out

MHASignal::spectrum_t∗ MHAPlugin_Split::split_t::spec_out [private]

Combined output spectra structure.
The documentation for this class was generated from the following file:

• split.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

914

5.257

CONTENTS

MHAPlugin_Split::splitted_part_t Class Reference

The splitted_part_t (p. 914) instance manages the plugin that performs processing on the
reduced set of channels.
Inheritance diagram for MHAPlugin_Split::splitted_part_t:

MHAKernel::algo_comm
_class_t

MHAPlugin_Split::splitted
_part_t

Public Member Functions
• splitted_part_t (const std::string &plugname, MHAParser::parser_t ∗parent)
Load the plugin for this partial signal path.

• splitted_part_t ( PluginLoader::fourway_processor_t ∗plugin)
Create the handler for the partial signal.

• ∼splitted_part_t () throw ()
Destructor. Deletes the plugin plug ( p. 918).

• void prepare ( mhaconfig_t &signal_parameters, const std::string &thread_platform,
const std::string &thread_scheduler, int thread_priority)
Delegates the prepare method to the plugin and allocates a suitable MHAPlugin_Split←::domain_handler_t ( p. 894) instance.

• void release ()
Delegates the release method to the plugin and deletes the MHAPlugin_Split::domain_←handler_t ( p. 894) instance.

• std::string parse (const std::string &str)
Delegates parser incovation to plugin.

• template
unsigned trigger_processing (SigType ∗s_in, unsigned start_channel)
The domain handler copies the input signal channels.

• template
unsigned collect_result (SigType ∗s_out, unsigned start_channel)
Wait until processing is finished, then copy the output data.
© 2005-2018 HörTech gGmbH, Oldenburg

5.257

MHAPlugin_Split::splitted_part_t Class Reference

915

Private Member Functions
• splitted_part_t (const splitted_part_t &)
Disallow copy constructor.

• splitted_part_t & operator= (const splitted_part_t &)
Disallow assignment operator.

Private Attributes
• PluginLoader::fourway_processor_t ∗ plug
The plugin that performs the signal processing on the prepared channels.

• domain_handler_t ∗ domain
The domain specific signal handler, allocated from prepare when input and output domains
and signal parameters are known.

• thread_platform_t ∗ thread
The platform-dependent thread synchronization implementation.

Additional Inherited Members
5.257.1

Detailed Description

The splitted_part_t (p. 914) instance manages the plugin that performs processing on the
reduced set of channels.
The signal is split by channels by this instance, but the signal is combined again by the calling
class.

5.257.2

5.257.2.1

Constructor & Destructor Documentation

splitted_part_t() [1/3]

MHAPlugin_Split::splitted_part_t::splitted_part_t (
const

splitted_part_t &

) [private]

Disallow copy constructor.

5.257.2.2

splitted_part_t() [2/3]

MHAPlugin_Split::splitted_part_t::splitted_part_t (
const std::string & plugname,
MHAParser::parser_t ∗ parent )

Load the plugin for this partial signal path.
Loads the MHA plugin for a signal path of these audio channels.

© 2005-2018 HörTech gGmbH, Oldenburg

916

CONTENTS

Parameters
plugname
parent

5.257.2.3

The name of the MHA plugin, optionally followed by a colon and the algorithm
name.
The parser node where the configuration of the new plugin is inserted. The
plugin's parser name is the configured name (colon syntax).

splitted_part_t() [3/3]

MHAPlugin_Split::splitted_part_t::splitted_part_t (
PluginLoader::fourway_processor_t ∗ plugin )

Create the handler for the partial signal.
The plugin is loaded by the caller, but it will be deleted by the destructor of this class. This
constructor exists solely for testing purposes.
Parameters
plugin

The plugin used for processing the signal. The new splitted_part_t (p. 915)
instance will take ownership of this instance and release it in the destructor.

5.257.2.4 ∼splitted_part_t()
MHAPlugin_Split::splitted_part_t::∼splitted_part_t ( ) throw )

Destructor. Deletes the plugin plug (p. 918).

5.257.3

5.257.3.1

Member Function Documentation

operator=()

splitted_part_t& MHAPlugin_Split::splitted_part_t::operator= (
const

splitted_part_t &

) [private]

Disallow assignment operator.

© 2005-2018 HörTech gGmbH, Oldenburg

5.257

5.257.3.2

MHAPlugin_Split::splitted_part_t Class Reference

917

prepare()

void MHAPlugin_Split::splitted_part_t::prepare (
mhaconfig_t & signal_parameters,
const std::string & thread_platform,
const std::string & thread_scheduler,
int thread_priority )

Delegates the prepare method to the plugin and allocates a suitable MHAPlugin_Split←::domain_handler_t (p. 894) instance.
Prepare the loaded plugin.
Plugin preparation.
Parameters
signal_parameters

The signal description parameters for this path.

thread_platform

The name of the thread platform to use. Possible values: "posix",
"win32", "dummy".

thread_scheduler

The name of the scheduler to use. Posix threads support
"SCHED_OTHER", "SCHED_RR", "SCHED_FIFO". The other thread
platforms do not support different thread schedulers. This value is not
used for platforms other than "posix".
The new thread priority. Interpretation and permitted range depend on
the thread platform and possibly on the scheduler.

thread_priority

5.257.3.3

release()

void MHAPlugin_Split::splitted_part_t::release (
void

)

Delegates the release method to the plugin and deletes the MHAPlugin_Split::domain_←handler_t (p. 894) instance.
Release the loaded plugin.
Plugin release.
5.257.3.4

parse()

std::string MHAPlugin_Split::splitted_part_t::parse (
const std::string & str ) [inline]

Delegates parser incovation to plugin.

© 2005-2018 HörTech gGmbH, Oldenburg

918

5.257.3.5

CONTENTS

trigger_processing()

template
unsigned MHAPlugin_Split::splitted_part_t::trigger_processing (
SigType ∗ s_in,
unsigned start_channel ) [inline]

The domain handler copies the input signal channels.
Then, processing is initiated.
Parameters
s_in

The combined input signal.

start_channel

The index (0-based) of the first channel in s_in to be copied to the partial
input signal.

Returns
The number of channels that were copied from the input signal

5.257.3.6

collect_result()

template
unsigned MHAPlugin_Split::splitted_part_t::collect_result (
SigType ∗ s_out,
unsigned start_channel ) [inline]

Wait until processing is finished, then copy the output data.
Parameters
s_out

The combined waveform output signal.

start_channel

The channel offset (0-based) in s_out.

Returns
The number of channels that were copied to the output signal

5.257.4

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.258

MHAPlugin_Split::thread_platform_t Class Reference

5.257.4.1

919

plug

PluginLoader::fourway_processor_t∗ MHAPlugin_Split::splitted_part_t::plug [private]

The plugin that performs the signal processing on the prepared channels.

5.257.4.2

domain

domain_handler_t∗ MHAPlugin_Split::splitted_part_t::domain [private]

The domain specific signal handler, allocated from prepare when input and output domains and
signal parameters are known.

5.257.4.3

thread

thread_platform_t∗ MHAPlugin_Split::splitted_part_t::thread [private]

The platform-dependent thread synchronization implementation.
The documentation for this class was generated from the following file:
• split.cpp

5.258

MHAPlugin_Split::thread_platform_t Class Reference

Basic interface for encapsulating thread creation, thread priority setting, and synchronization
on any threading platform (i.e., pthreads or win32threads).
Inheritance diagram for MHAPlugin_Split::thread_platform_t:

MHAPlugin_Split::thread
_platform_t

MHAPlugin_Split::dummy
_threads_t

© 2005-2018 HörTech gGmbH, Oldenburg

MHAPlugin_Split::posix
_threads_t

920

CONTENTS

Public Member Functions
• thread_platform_t ( uni_processor_t ∗proc)
Constructor.

• virtual ∼thread_platform_t ()
Make derived classes destructable via pointer to this base class.

• virtual void kick_thread ()=0
Derived classes notify their processing thread that it should call processor->process().

• virtual void catch_thread ()=0
Derived classes wait for their signal processing thread to return from the call to part>process().

Protected Attributes
• uni_processor_t ∗ processor
A pointer to the plugin loader that processes the sound data in the channels for which this
thread was created.

Private Member Functions
• thread_platform_t (const thread_platform_t &)
Disallow copy constructor.

• thread_platform_t & operator= (const thread_platform_t &)
Disallow assignment operator.

5.258.1

Detailed Description

Basic interface for encapsulating thread creation, thread priority setting, and synchronization
on any threading platform (i.e., pthreads or win32threads).
Derived classes specialize in the actual thread platform.
5.258.2

5.258.2.1

Constructor & Destructor Documentation

thread_platform_t() [1/2]

MHAPlugin_Split::thread_platform_t::thread_platform_t (
const

thread_platform_t &

) [private]

Disallow copy constructor.

5.258.2.2

thread_platform_t() [2/2]

MHAPlugin_Split::thread_platform_t::thread_platform_t (
uni_processor_t ∗ proc ) [inline]

Constructor.
Derived classes create the thread in the constructor.

© 2005-2018 HörTech gGmbH, Oldenburg

5.258

MHAPlugin_Split::thread_platform_t Class Reference

921

Parameters
proc

Pointer to the associated plugin loader. This plugin loader has to live at least as long
as this instance. This instance does not take possession of the plugin loader. In
production code, this thread platform and the plugin loader are both created and
destroyed by the MHAPlugin_Split::splitted_part_t (p. 914) instance.

5.258.2.3 ∼thread_platform_t()

virtual MHAPlugin_Split::thread_platform_t::∼thread_platform_t ( ) [inline], [virtual]

Make derived classes destructable via pointer to this base class.
Derived classes' destructors notify the thread that it should terminate itself, and wait for the
termination to occur.

5.258.3

5.258.3.1

Member Function Documentation

operator=()

thread_platform_t& MHAPlugin_Split::thread_platform_t::operator= (
const

thread_platform_t &

) [private]

Disallow assignment operator.

5.258.3.2

kick_thread()

virtual void MHAPlugin_Split::thread_platform_t::kick_thread ( ) [pure virtual]

Derived classes notify their processing thread that it should call processor->process().
Implemented in MHAPlugin_Split::posix_threads_t
::dummy_threads_t (p. 901).

© 2005-2018 HörTech gGmbH, Oldenburg

(p. 904), and

MHAPlugin_Split←-

922

5.258.3.3

CONTENTS

catch_thread()

virtual void MHAPlugin_Split::thread_platform_t::catch_thread ( ) [pure virtual]

Derived classes wait for their signal processing thread to return from the call to part->process().
Implemented in MHAPlugin_Split::posix_threads_t
::dummy_threads_t (p. 901).

5.258.4

(p. 904), and

MHAPlugin_Split←-

Member Data Documentation

5.258.4.1

processor

uni_processor_t∗ MHAPlugin_Split::thread_platform_t::processor [protected]

A pointer to the plugin loader that processes the sound data in the channels for which this
thread was created.
Using the MHAPlugin_Split::uni_processor_t (p. 922) interface instead of the mhapluginloader class directly for testability (no need to load real plugins for testing the thread platform).
The documentation for this class was generated from the following file:
• split.cpp

5.259

MHAPlugin_Split::uni_processor_t Class Reference

An interface to a class that sports a process method with no parameters and no return value.
Inheritance diagram for MHAPlugin_Split::uni_processor_t:

MHAPlugin_Split::uni
_processor_t

MHAPlugin_Split::domain
_handler_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.259

MHAPlugin_Split::uni_processor_t Class Reference

923

Public Member Functions
• virtual void process ()=0
This method uses some input signal, performs processing and stores the output signal somewhere.

• virtual ∼uni_processor_t ()
Classes containing virtual methods need virtual destructors.

5.259.1

Detailed Description

An interface to a class that sports a process method with no parameters and no return value.
No signal transfer occurs through this interface, because the signal transfer is performed in
another thread than the processing.

5.259.2

Constructor & Destructor Documentation

5.259.2.1 ∼uni_processor_t()
virtual MHAPlugin_Split::uni_processor_t::∼uni_processor_t ( ) [inline], [virtual]

Classes containing virtual methods need virtual destructors.

5.259.3

5.259.3.1

Member Function Documentation

process()

virtual void MHAPlugin_Split::uni_processor_t::process ( ) [pure virtual]

This method uses some input signal, performs processing and stores the output signal somewhere.
This method also has to dispatch the process call based on the configured domains.
Signal transfer and domain configuration have to be done in derived class in different methods.
Implemented in MHAPlugin_Split::domain_handler_t (p. 899).
The documentation for this class was generated from the following file:
• split.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

924

5.260

CONTENTS

mhaserver_t Class Reference

MHA Framework listening on TCP port for commands.
Inheritance diagram for mhaserver_t:

MHAParser::base_t

MHAParser::parser_t

fw_t

mhaserver_t

Public Member Functions
• mhaserver_t (const std::string &ao, const std::string &af, const std::string &lf)
• ∼mhaserver_t ()
• virtual std::string received_group (const std::string &line)
A line of text was received from network client.

• virtual void acceptor_started (int status)
Notification: "TCP port is open".

• virtual void set_announce_port (unsigned short announce_port)
If set to nonzero, the spawning process has asked to be notified of the TCP port used by this
process.

• void logstring (const std::string &)
Log a message to log file.

• int run (unsigned short port, const std::string &_interface)
Accept network connections and act on commands.

Public Attributes
• MHAParser::int_t port
© 2005-2018 HörTech gGmbH, Oldenburg

5.260

mhaserver_t Class Reference

925

Private Attributes
•
•
•
•
•
•

MHA_TCP::Server ∗ tcpserver
std::string ack_ok
std::string ack_fail
std::string logfile
unsigned short announce_port
MHAParser::int_mon_t pid_mon

Additional Inherited Members
5.260.1

Detailed Description

MHA Framework listening on TCP port for commands.

5.260.2

Constructor & Destructor Documentation

5.260.2.1

mhaserver_t()

mhaserver_t::mhaserver_t (
const std::string & ao,
const std::string & af,
const std::string & lf )

Parameters
ao

Acknowledgement string at end of successful command responses

af

Achknoledgement string at end of failed command responses

lf

File system path of file to use as log file. MHA appends.

5.260.2.2 ∼mhaserver_t()
mhaserver_t::∼mhaserver_t ( )

5.260.3

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

926

5.260.3.1

CONTENTS

received_group()

std::string mhaserver_t::received_group (
const std::string & line ) [virtual]

A line of text was received from network client.

5.260.3.2

acceptor_started()

void mhaserver_t::acceptor_started (
int status ) [virtual]

Notification: "TCP port is open".

5.260.3.3

set_announce_port()

void mhaserver_t::set_announce_port (
unsigned short announce_port ) [virtual]

If set to nonzero, the spawning process has asked to be notified of the TCP port used by this
process.

5.260.3.4

logstring()

void mhaserver_t::logstring (
const std::string & s ) [inline]

Log a message to log file.

5.260.3.5

run()

int mhaserver_t::run (
unsigned short port,
const std::string & _interface )

Accept network connections and act on commands.
Calls acceptor_started() (p. 926) when the TCP port is opened. Calls received_group for every
line received.
Returns
exit code that can be used as process exit code
© 2005-2018 HörTech gGmbH, Oldenburg

5.260

mhaserver_t Class Reference

5.260.4

Member Data Documentation

5.260.4.1

tcpserver

MHA_TCP::Server∗ mhaserver_t::tcpserver [private]

5.260.4.2

ack_ok

std::string mhaserver_t::ack_ok [private]

5.260.4.3

ack_fail

std::string mhaserver_t::ack_fail [private]

5.260.4.4

logfile

std::string mhaserver_t::logfile [private]

5.260.4.5

announce_port

unsigned short mhaserver_t::announce_port [private]

5.260.4.6

pid_mon

MHAParser::int_mon_t mhaserver_t::pid_mon [private]

5.260.4.7

port

MHAParser::int_t mhaserver_t::port

The documentation for this class was generated from the following file:
• mhamain.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

927

928

5.261

CONTENTS

MHASignal::async_rmslevel_t Class Reference

Class for asynchronous level metering.
Inheritance diagram for MHASignal::async_rmslevel_t:

mha_wave_t

MHASignal::waveform_t

MHASignal::async_rmslevel_t

Public Member Functions
• async_rmslevel_t (unsigned int frames, unsigned int channels)
Constructor for level metering class.

• std::vector< float > rmslevel () const
Read-only function for querying the current RMS level.

• std::vector< float > peaklevel () const
Read-only function for querying the current peak level.

• void process ( mha_wave_t ∗s)
Function to store a chunk of audio in the level meter.

Private Attributes
• unsigned int pos
• unsigned int filled

Additional Inherited Members
5.261.1

Detailed Description

Class for asynchronous level metering.
© 2005-2018 HörTech gGmbH, Oldenburg

5.261

MHASignal::async_rmslevel_t Class Reference

5.261.2

Constructor & Destructor Documentation

5.261.2.1

929

async_rmslevel_t()

MHASignal::async_rmslevel_t::async_rmslevel_t (
unsigned int frames,
unsigned int channels )

Constructor for level metering class.
Allocate memory for metering. The RMS integration time corresponds to the number of frames
in the buffer.
Parameters
frames

Number of frames to integrate.

channels

Number of channels used for level-metering.

5.261.3

5.261.3.1

Member Function Documentation

rmslevel()

std::vector< float > MHASignal::async_rmslevel_t::rmslevel ( ) const

Read-only function for querying the current RMS level.
Returns
Vector of floats, one value for each channel, containing the RMS level in dB (SPL if calibrated properly).

5.261.3.2

peaklevel()

std::vector< float > MHASignal::async_rmslevel_t::peaklevel ( ) const

Read-only function for querying the current peak level.
Returns
Vector of floats, one value for each channel, containing the peak level in dB (SPL if calibrated properly).

© 2005-2018 HörTech gGmbH, Oldenburg

930

5.261.3.3

CONTENTS

process()

void MHASignal::async_rmslevel_t::process (
mha_wave_t ∗ s )

Function to store a chunk of audio in the level meter.
Parameters
s

Audio chunk (same number of channels required as given in the constructor).

5.261.4

Member Data Documentation

5.261.4.1

pos

unsigned int MHASignal::async_rmslevel_t::pos [private]

5.261.4.2

filled

unsigned int MHASignal::async_rmslevel_t::filled [private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.262

MHASignal::delay_spec_t Class Reference

Public Member Functions
• delay_spec_t (unsigned int delay, unsigned int frames, unsigned int channels)
• ∼delay_spec_t ()
• mha_spec_t ∗ process ( mha_spec_t ∗)

Private Attributes
• unsigned int delay
• MHASignal::spectrum_t ∗∗ buffer
• unsigned int pos
© 2005-2018 HörTech gGmbH, Oldenburg

5.262

MHASignal::delay_spec_t Class Reference

5.262.1

Constructor & Destructor Documentation

5.262.1.1

931

delay_spec_t()

MHASignal::delay_spec_t::delay_spec_t (
unsigned int delay,
unsigned int frames,
unsigned int channels )

5.262.1.2 ∼delay_spec_t()
MHASignal::delay_spec_t::∼delay_spec_t ( )

5.262.2

5.262.2.1

Member Function Documentation

process()

mha_spec_t ∗ MHASignal::delay_spec_t::process (
mha_spec_t ∗ s )

5.262.3

5.262.3.1

Member Data Documentation

delay

unsigned int MHASignal::delay_spec_t::delay [private]

5.262.3.2

buffer

MHASignal::spectrum_t∗∗ MHASignal::delay_spec_t::buffer [private]

© 2005-2018 HörTech gGmbH, Oldenburg

932

5.262.3.3

CONTENTS

pos

unsigned int MHASignal::delay_spec_t::pos [private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.263

MHASignal::delay_t Class Reference

Class to realize a simple delay of waveform streams.
Inheritance diagram for MHASignal::delay_t:

MHASignal::delay_t

delaysum::delaysum_t

Public Member Functions
• delay_t (std::vector< int > delays, unsigned int channels)
Constructor.

• mha_wave_t ∗ process ( mha_wave_t ∗s)
Processing method.

• ∼delay_t ()
• std::string inspect () const

Private Attributes
•
•
•
•

unsigned int channels
unsigned int ∗ delays
unsigned int ∗ pos
mha_real_t ∗∗ buffer
© 2005-2018 HörTech gGmbH, Oldenburg

5.263

MHASignal::delay_t Class Reference

5.263.1

Detailed Description

933

Class to realize a simple delay of waveform streams.

5.263.2

5.263.2.1

Constructor & Destructor Documentation

delay_t()

MHASignal::delay_t::delay_t (
std::vector< int > delays,
unsigned int channels )

Constructor.
Parameters
delays

Vector of delays, one entry for each channel.

channels

Number of channels expected.

5.263.2.2 ∼delay_t()
MHASignal::delay_t::∼delay_t ( )

5.263.3

5.263.3.1

Member Function Documentation

process()

mha_wave_t ∗ MHASignal::delay_t::process (
mha_wave_t ∗ s )

Processing method.
Parameters
s

Input waveform fragment, with number of channels provided in constructor.

© 2005-2018 HörTech gGmbH, Oldenburg

934

CONTENTS

Returns
Output waveform fragment.

5.263.3.2

inspect()

std::string MHASignal::delay_t::inspect ( ) const [inline]

5.263.4

Member Data Documentation

5.263.4.1

channels

unsigned int MHASignal::delay_t::channels [private]

5.263.4.2

delays

unsigned int∗ MHASignal::delay_t::delays [private]

5.263.4.3

pos

unsigned int∗ MHASignal::delay_t::pos [private]

5.263.4.4

buffer

mha_real_t∗∗ MHASignal::delay_t::buffer [private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.264

MHASignal::delay_wave_t Class Reference

Delayline containing wave fragments.
© 2005-2018 HörTech gGmbH, Oldenburg

5.264

MHASignal::delay_wave_t Class Reference

935

Public Member Functions
• delay_wave_t (unsigned int delay, unsigned int frames, unsigned int channels)
• ∼delay_wave_t ()
• mha_wave_t ∗ process ( mha_wave_t ∗)

Private Attributes
• unsigned int delay
• MHASignal::waveform_t ∗∗ buffer
• unsigned int pos

5.264.1

Detailed Description

Delayline containing wave fragments.
The delayline contains waveform fragments. The delay can be configured in integer fragments
(sample delay or sub-sample delay is not possible).

5.264.2

5.264.2.1

Constructor & Destructor Documentation

delay_wave_t()

MHASignal::delay_wave_t::delay_wave_t (
unsigned int delay,
unsigned int frames,
unsigned int channels )

5.264.2.2 ∼delay_wave_t()

MHASignal::delay_wave_t::∼delay_wave_t ( )

5.264.3

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

936

5.264.3.1

CONTENTS

process()

mha_wave_t ∗ MHASignal::delay_wave_t::process (
mha_wave_t ∗ s )

5.264.4

Member Data Documentation

5.264.4.1

delay

unsigned int MHASignal::delay_wave_t::delay [private]

5.264.4.2

buffer

MHASignal::waveform_t∗∗ MHASignal::delay_wave_t::buffer [private]

5.264.4.3

pos

unsigned int MHASignal::delay_wave_t::pos [private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.265

MHASignal::doublebuffer_t Class Reference

Double-buffering class.
Inheritance diagram for MHASignal::doublebuffer_t:

MHASignal::doublebuffer_t

db_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.265

MHASignal::doublebuffer_t Class Reference

937

Public Member Functions
• doublebuffer_t (unsigned int nchannels_in, unsigned int nchannels_out, unsigned int
outer_fragsize, unsigned int inner_fragsize)
Constructor of double buffer.

• virtual ∼doublebuffer_t ()
• mha_wave_t ∗ outer_process ( mha_wave_t ∗s)
Method to pass audio fragments into the inner layer.

Protected Member Functions
• virtual mha_wave_t ∗ inner_process ( mha_wave_t ∗s)=0
Method to realize inner processing callback.

Private Member Functions
• unsigned int min (unsigned int a, unsigned int b)
Private Attributes
•
•
•
•
•
•
•

waveform_t outer_out
mha_wave_t this_outer_out
waveform_t inner_in
waveform_t inner_out
unsigned int k_inner
unsigned int k_outer
unsigned int ch

5.265.1

Detailed Description

Double-buffering class.
This class has two layers: The outer layer, with an outer fragment size, and an inner layer,
with its own fragment size. Data is passed into the inner layer through the doublebuffer_t←::outr_process() callback. The pure virtual method doublebuffer_t::inner_process() (p. 938)
is called whenever enough data is available.
5.265.2

5.265.2.1

Constructor & Destructor Documentation

doublebuffer_t()

MHASignal::doublebuffer_t::doublebuffer_t (
unsigned int nchannels_in,
unsigned int nchannels_out,
unsigned int outer_fragsize,
unsigned int inner_fragsize )

Constructor of double buffer.

© 2005-2018 HörTech gGmbH, Oldenburg

938

CONTENTS

Parameters
nchannels_in

Number of channels at the input (both layers).

nchannels_out

Number of channels at the output (both layers).

outer_fragsize

Fragment size of the outer layer (e.g., hardware fragment size)

inner_fragsize

Fragment size of the inner layer (e.g., software fragment size)

5.265.2.2 ∼doublebuffer_t()
MHASignal::doublebuffer_t::∼doublebuffer_t ( ) [virtual]

5.265.3

5.265.3.1

Member Function Documentation

outer_process()

mha_wave_t ∗ MHASignal::doublebuffer_t::outer_process (
mha_wave_t ∗ s )

Method to pass audio fragments into the inner layer.
Parameters
s

Pointer to input waveform fragment.

Returns
Pointer to output waveform fragment.

5.265.3.2

inner_process()

virtual

mha_wave_t∗ MHASignal::doublebuffer_t::inner_process (
mha_wave_t ∗ s ) [protected], [pure virtual]

Method to realize inner processing callback.
To be overwritten by derived classes.

© 2005-2018 HörTech gGmbH, Oldenburg

5.265

MHASignal::doublebuffer_t Class Reference

939

Parameters
s

Pointer to input waveform fragment.

Returns
Pointer to output waveform fragment.
Implemented in db_t (p. 279).

5.265.3.3

min()

unsigned int MHASignal::doublebuffer_t::min (
unsigned int a,
unsigned int b ) [inline], [private]

5.265.4

5.265.4.1

Member Data Documentation

outer_out

waveform_t MHASignal::doublebuffer_t::outer_out [private]

5.265.4.2

this_outer_out

mha_wave_t MHASignal::doublebuffer_t::this_outer_out [private]

5.265.4.3

inner_in

waveform_t MHASignal::doublebuffer_t::inner_in [private]

5.265.4.4

inner_out

waveform_t MHASignal::doublebuffer_t::inner_out [private]

© 2005-2018 HörTech gGmbH, Oldenburg

940

5.265.4.5

CONTENTS

k_inner

unsigned int MHASignal::doublebuffer_t::k_inner [private]

5.265.4.6

k_outer

unsigned int MHASignal::doublebuffer_t::k_outer [private]

5.265.4.7

ch

unsigned int MHASignal::doublebuffer_t::ch [private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.266

MHASignal::fft_t Class Reference

Public Member Functions
• fft_t (const unsigned int &)
• ∼fft_t ()
• void wave2spec (const mha_wave_t ∗, mha_spec_t ∗, bool swap)
fast fourier transform.

• void spec2wave (const mha_spec_t ∗, mha_wave_t ∗)
• void spec2wave (const mha_spec_t ∗, mha_wave_t ∗, unsigned int offset)
wave may have fewer number of frames than needed for a complete iFFT.

•
•
•
•
•
•

void
void
void
void
void
void

forward ( mha_spec_t ∗sIn, mha_spec_t ∗sOut)
backward ( mha_spec_t ∗sIn, mha_spec_t ∗sOut)
wave2spec_scale (const mha_wave_t ∗, mha_spec_t ∗, bool swap)
spec2wave_scale (const mha_spec_t ∗, mha_wave_t ∗)
forward_scale ( mha_spec_t ∗sIn, mha_spec_t ∗sOut)
backward_scale ( mha_spec_t ∗sIn, mha_spec_t ∗sOut)

Private Member Functions
• void sort_fftw2spec (fftw_real ∗s_fftw, mha_spec_t ∗s_spec, unsigned int ch)
Arrange the order of an fftw spectrum to the internal order.

• void sort_spec2fftw (fftw_real ∗s_fftw, const mha_spec_t ∗s_spec, unsigned int ch)
Arrange the order of an internal spectrum to the fftw order.
© 2005-2018 HörTech gGmbH, Oldenburg

5.266

MHASignal::fft_t Class Reference

941

Private Attributes
•
•
•
•
•
•
•
•
•
•

unsigned int nfft
unsigned int n_re
unsigned int n_im
mha_real_t scale
mha_real_t ∗ buf_in
mha_real_t ∗ buf_out
rfftw_plan fftw_plan_wave2spec
rfftw_plan fftw_plan_spec2wave
fftw_plan fftw_plan_fft
fftw_plan fftw_plan_ifft

5.266.1

5.266.1.1

Constructor & Destructor Documentation

fft_t()

MHASignal::fft_t::fft_t (
const unsigned int & n )

5.266.1.2 ∼fft_t()
MHASignal::fft_t::∼fft_t ( )

5.266.2

5.266.2.1

Member Function Documentation

wave2spec()

void MHASignal::fft_t::wave2spec (
const

mha_wave_t ∗ wave,

mha_spec_t ∗ spec,
bool swap )

fast fourier transform.
if swap is set, the buffer halfes of the wave signal are exchanged before computing the fft.
© 2005-2018 HörTech gGmbH, Oldenburg

942

5.266.2.2

CONTENTS

spec2wave() [1/2]

void MHASignal::fft_t::spec2wave (
const

mha_spec_t ∗ spec,

mha_wave_t ∗ wave )

5.266.2.3

spec2wave() [2/2]

void MHASignal::fft_t::spec2wave (
const

mha_spec_t ∗ spec,

mha_wave_t ∗ wave,
unsigned int offset )

wave may have fewer number of frames than needed for a complete iFFT.
Only as many frames are written into wave as fit, starting with offset offset of the complete iFFT.

5.266.2.4

forward()

void MHASignal::fft_t::forward (
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

5.266.2.5

backward()

void MHASignal::fft_t::backward (
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

5.266.2.6

wave2spec_scale()

void MHASignal::fft_t::wave2spec_scale (
const

mha_wave_t ∗ wave,

mha_spec_t ∗ spec,
bool swap )

© 2005-2018 HörTech gGmbH, Oldenburg

5.266

MHASignal::fft_t Class Reference

5.266.2.7

943

spec2wave_scale()

void MHASignal::fft_t::spec2wave_scale (
const

mha_spec_t ∗ spec,

mha_wave_t ∗ wave )

5.266.2.8

forward_scale()

void MHASignal::fft_t::forward_scale (
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

5.266.2.9

backward_scale()

void MHASignal::fft_t::backward_scale (
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

5.266.2.10

sort_fftw2spec()

void MHASignal::fft_t::sort_fftw2spec (
fftw_real ∗ s_fftw,
mha_spec_t ∗ s_spec,
unsigned int ch ) [private]

Arrange the order of an fftw spectrum to the internal order.
The fftw spectrum is arranged [r0 r1 r2 ... rn-1 in in-1 ... i1], while the interal order is [r0 – r1 i1
r2 i2 ... rn-1 in-1 rn –].
5.266.2.11

sort_spec2fftw()

void MHASignal::fft_t::sort_spec2fftw (
fftw_real ∗ s_fftw,
const

mha_spec_t ∗ s_spec,

unsigned int ch ) [private]

Arrange the order of an internal spectrum to the fftw order.

5.266.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

944

5.266.3.1

CONTENTS

nfft

unsigned int MHASignal::fft_t::nfft [private]

5.266.3.2

n_re

unsigned int MHASignal::fft_t::n_re [private]

5.266.3.3

n_im

unsigned int MHASignal::fft_t::n_im [private]

5.266.3.4

scale

mha_real_t MHASignal::fft_t::scale [private]

5.266.3.5

buf_in

mha_real_t∗ MHASignal::fft_t::buf_in [private]

5.266.3.6

buf_out

mha_real_t∗ MHASignal::fft_t::buf_out [private]

5.266.3.7

fftw_plan_wave2spec

rfftw_plan MHASignal::fft_t::fftw_plan_wave2spec [private]

5.266.3.8

fftw_plan_spec2wave

rfftw_plan MHASignal::fft_t::fftw_plan_spec2wave [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.267

MHASignal::hilbert_fftw_t Class Reference

5.266.3.9

945

fftw_plan_fft

fftw_plan MHASignal::fft_t::fftw_plan_fft [private]

5.266.3.10

fftw_plan_ifft

fftw_plan MHASignal::fft_t::fftw_plan_ifft [private]

The documentation for this class was generated from the following files:
• mha_signal_fft.h
• mha_signal.cpp

5.267

MHASignal::hilbert_fftw_t Class Reference

Public Member Functions
• hilbert_fftw_t (unsigned int len)
• void hilbert (const mha_wave_t ∗, mha_wave_t ∗)

Private Attributes
•
•
•
•
•
•
•
•

unsigned int n
rfftw_plan p1
fftw_plan p2
fftw_real ∗ buf_r_in
fftw_real ∗ buf_r_out
fftw_complex ∗ buf_c_in
fftw_complex ∗ buf_c_out
mha_real_t sc

5.267.1

5.267.1.1

Constructor & Destructor Documentation

hilbert_fftw_t()

MHASignal::hilbert_fftw_t::hilbert_fftw_t (
unsigned int len )

© 2005-2018 HörTech gGmbH, Oldenburg

946

5.267.2

5.267.2.1

CONTENTS

Member Function Documentation

hilbert()

void MHASignal::hilbert_fftw_t::hilbert (
const

mha_wave_t ∗ s_in,

mha_wave_t ∗ s_out )

5.267.3

5.267.3.1

Member Data Documentation

n

unsigned int MHASignal::hilbert_fftw_t::n [private]

5.267.3.2

p1

rfftw_plan MHASignal::hilbert_fftw_t::p1 [private]

5.267.3.3

p2

fftw_plan MHASignal::hilbert_fftw_t::p2 [private]

5.267.3.4

buf_r_in

fftw_real∗ MHASignal::hilbert_fftw_t::buf_r_in [private]

5.267.3.5

buf_r_out

fftw_real∗ MHASignal::hilbert_fftw_t::buf_r_out [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.268

MHASignal::hilbert_t Class Reference

5.267.3.6

buf_c_in

fftw_complex∗ MHASignal::hilbert_fftw_t::buf_c_in [private]

5.267.3.7

buf_c_out

fftw_complex∗ MHASignal::hilbert_fftw_t::buf_c_out [private]

5.267.3.8

sc

mha_real_t MHASignal::hilbert_fftw_t::sc [private]

The documentation for this class was generated from the following file:
• mha_signal.cpp

5.268

MHASignal::hilbert_t Class Reference

Hilbert transformation of a waveform segment.
Inheritance diagram for MHASignal::hilbert_t:

MHASignal::hilbert_t

MHASignal::minphase_t

Public Member Functions
• hilbert_t (unsigned int len)
• ∼hilbert_t ()
• void operator() (const mha_wave_t ∗, mha_wave_t ∗)
Apply Hilbert transformation on a waveform segment.
© 2005-2018 HörTech gGmbH, Oldenburg

947

948

CONTENTS

Private Attributes
• void ∗ h

5.268.1

Detailed Description

Hilbert transformation of a waveform segment.
Returns the imaginary part of the inverse Fourier transformation of the Fourier transformed
input signal with negative frequencies set to zero.

5.268.2

Constructor & Destructor Documentation

5.268.2.1

hilbert_t()

MHASignal::hilbert_t::hilbert_t (
unsigned int len )

Parameters
len

Length of waveform segment

5.268.2.2 ∼hilbert_t()
MHASignal::hilbert_t::∼hilbert_t ( )

5.268.3

5.268.3.1

Member Function Documentation

operator()()

void MHASignal::hilbert_t::operator() (
const

mha_wave_t ∗ s_in,

mha_wave_t ∗ s_out )

Apply Hilbert transformation on a waveform segment.
© 2005-2018 HörTech gGmbH, Oldenburg

5.269

MHASignal::loop_wavefragment_t Class Reference

5.268.4

Member Data Documentation

5.268.4.1

949

h

void∗ MHASignal::hilbert_t::h [private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.269

MHASignal::loop_wavefragment_t Class Reference

Copy a fixed waveform fragment to a series of waveform fragments of other size.
Inheritance diagram for MHASignal::loop_wavefragment_t:

mha_wave_t

MHASignal::waveform_t

MHASignal::loop_wavefragment_t

Public Types
• enum level_mode_t { relative, peak, rms, rms_limit40 }
Switch for playback level mode.

• enum playback_mode_t { add, replace, input, mute }
Switch for playback mode.
© 2005-2018 HörTech gGmbH, Oldenburg

950

CONTENTS

Public Member Functions
• loop_wavefragment_t (const mha_wave_t &src, bool loop, level_mode_t level_mode,
std::vector< int > channels, unsigned int startpos=0)
Constructor to create an instance of loop_wavefragment_t ( p. 949) based on an existing
waveform block.

• std::vector< int > get_mapping (unsigned int channels)
• void playback ( mha_wave_t ∗s, playback_mode_t pmode, mha_wave_t ∗level_pa,
const std::vector< int > & channels)
Add source waveform block to an output block.

• void playback ( mha_wave_t ∗s, playback_mode_t pmode, mha_wave_t ∗level_pa)
Add source waveform block to an output block.

• void playback ( mha_wave_t ∗s, playback_mode_t pmode)
Add source waveform block to an output block.

•
•
•
•
•

void
void
void
void
bool

set_level_lin ( mha_real_t l)
set_level_db ( mha_real_t l)
rewind ()
locate_end ()
is_playback_active () const

Private Attributes
•
•
•
•

std::vector< int > playback_channels
bool b_loop
unsigned int pos
MHASignal::waveform_t intern_level

Additional Inherited Members
5.269.1

Detailed Description

Copy a fixed waveform fragment to a series of waveform fragments of other size.
This class is designed to continously play back a waveform to an output stream, with variable
output block size.

5.269.2

Member Enumeration Documentation

5.269.2.1
enum

level_mode_t

MHASignal::loop_wavefragment_t::level_mode_t

Switch for playback level mode.

© 2005-2018 HörTech gGmbH, Oldenburg

5.269

MHASignal::loop_wavefragment_t Class Reference

951

Enumerator
relative
peak
rms
rms_limit40

5.269.2.2
enum

The nominal level is applied as a gain to the source signal.
The nominal level is the peak level of source signal in Pascal.
The nominal level is the RMS level of the source signal in Pascal.

playback_mode_t

MHASignal::loop_wavefragment_t::playback_mode_t

Switch for playback mode.
Enumerator
add
replace

Add source signal to output stream.
Replace output stream by source signal.

input

Do nothing, keep output stream (source position is unchanged).

mute

Mute output stream (source position is unchanged).

5.269.3

Constructor & Destructor Documentation

5.269.3.1

loop_wavefragment_t()

MHASignal::loop_wavefragment_t::loop_wavefragment_t (
const

mha_wave_t & src,

bool loop,
level_mode_t level_mode,
std::vector< int > channels,
unsigned int startpos = 0 )

Constructor to create an instance of loop_wavefragment_t (p. 949) based on an existing waveform block.
Parameters
src
loop

Waveform block to copy data from.
Flag whether the block should be looped or played once.

level_mode

Configuration of playback level (see
MHASignal::loop_wavefragment_t::level_mode_t (p. 950) for details)

channels

Mapping of input to output channels.

startpos

Starting position

© 2005-2018 HörTech gGmbH, Oldenburg

952

5.269.4

CONTENTS

Member Function Documentation

5.269.4.1

get_mapping()

std::vector< int > MHASignal::loop_wavefragment_t::get_mapping (
unsigned int channels )

5.269.4.2

playback() [1/3]

void MHASignal::loop_wavefragment_t::playback (
mha_wave_t ∗ s,
playback_mode_t pmode,
mha_wave_t ∗ level_pa,
const std::vector< int > & channels )

Add source waveform block to an output block.
Parameters
s

Output block (streamed signal).

pmode

Playback mode (add, replace, input, mute).

level_pa

Linear output level/gain (depending on level_mode parameter in constructor);
one value for each sample in output block.

channels

Output channels

5.269.4.3

playback() [2/3]

void MHASignal::loop_wavefragment_t::playback (
mha_wave_t ∗ s,
playback_mode_t pmode,
mha_wave_t ∗ level_pa )

Add source waveform block to an output block.
Parameters
s

Output block (streamed signal).

pmode

Playback mode (add, replace, input, mute).

level_pa

Linear output level/gain (depending on level_mode parameter in constructor);
one value for each sample in output block.

© 2005-2018 HörTech gGmbH, Oldenburg

5.269

MHASignal::loop_wavefragment_t Class Reference

5.269.4.4

953

playback() [3/3]

void MHASignal::loop_wavefragment_t::playback (
mha_wave_t ∗ s,
playback_mode_t pmode )

Add source waveform block to an output block.
Parameters
s

Output block (streamed signal).

pmode

Playback mode (add, replace, input, mute).

5.269.4.5

set_level_lin()

void MHASignal::loop_wavefragment_t::set_level_lin (
mha_real_t l )

5.269.4.6

set_level_db()

void MHASignal::loop_wavefragment_t::set_level_db (
mha_real_t l )

5.269.4.7

rewind()

void MHASignal::loop_wavefragment_t::rewind ( ) [inline]

5.269.4.8

locate_end()

void MHASignal::loop_wavefragment_t::locate_end ( ) [inline]

5.269.4.9

is_playback_active()

bool MHASignal::loop_wavefragment_t::is_playback_active ( ) const [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

954

5.269.5

CONTENTS

Member Data Documentation

5.269.5.1

playback_channels

std::vector MHASignal::loop_wavefragment_t::playback_channels [private]

5.269.5.2

b_loop

bool MHASignal::loop_wavefragment_t::b_loop [private]

5.269.5.3

pos

unsigned int MHASignal::loop_wavefragment_t::pos [private]

5.269.5.4

intern_level

MHASignal::waveform_t MHASignal::loop_wavefragment_t::intern_level [private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.270

MHASignal::matrix_t Class Reference

n-dimensional matrix with real or complex floating point values.
Inheritance diagram for MHASignal::matrix_t:

MHASignal::uint_vector_t

MHASignal::matrix_t

MHA_AC::ac2matrix_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.270

MHASignal::matrix_t Class Reference

955

Public Member Functions
• matrix_t (unsigned int nrows, unsigned int ncols, bool b_is_complex=true)
Create a two-dimensional matrix.

• matrix_t (const mha_spec_t &spec)
Create a two-dimensional matrix from a spectrum, copy values.

• matrix_t (const MHASignal::uint_vector_t & size, bool b_is_complex=true)
Create n-dimensional matrix, descriped by size argument.

• matrix_t (const MHASignal::matrix_t &)
• matrix_t (const uint8_t ∗buf, unsigned int len)
Construct from memory area.

• ∼matrix_t ()
• MHASignal::matrix_t & operator= (const MHASignal::matrix_t &)
• MHASignal::matrix_t & operator= (const comm_var_t &v)
Fill matrix with data of an AC variable object.

• comm_var_t get_comm_var ()
Return a AC communication variable pointing to the data of the current matrix.

• unsigned int dimension () const
Return the dimension of the matrix.

• unsigned int size (unsigned int k) const
Return the size of the matrix.

• unsigned int get_nelements () const
Return total number of elements.

• bool is_same_size (const MHASignal::matrix_t &)
Test if matrix has same size as other.

• bool iscomplex () const
Return information about complexity.

• mha_real_t & real (const MHASignal::uint_vector_t &index)
Access real part of an element in a n-dimensional matrix.

• mha_real_t & imag (const MHASignal::uint_vector_t &index)
Access imaginary part of an element in a n-dimensional matrix.

• mha_complex_t & operator() (const MHASignal::uint_vector_t &index)
Access complex value of an element in a n-dimensional matrix.

• const mha_real_t & real (const MHASignal::uint_vector_t &index) const
Access real part of an element in a n-dimensional matrix.

• const mha_real_t & imag (const MHASignal::uint_vector_t &index) const
Access imaginary part of an element in a n-dimensional matrix.

• const mha_complex_t & operator() (const MHASignal::uint_vector_t &index) const
Access complex value of an element in a n-dimensional matrix.

• mha_real_t & real (unsigned int row, unsigned int col)
Access real part of an element in a two-dimensional matrix.

• mha_real_t & imag (unsigned int row, unsigned int col)
Access imaginary part of an element in a two-dimensional matrix.

• mha_complex_t & operator() (unsigned int row, unsigned int col)
Access complex value of an element in a two-dimensional matrix.
© 2005-2018 HörTech gGmbH, Oldenburg

956

CONTENTS

• const mha_real_t & real (unsigned int row, unsigned int col) const
Access real part of an element in a two-dimensional matrix.

• const mha_real_t & imag (unsigned int row, unsigned int col) const
Access imaginary part of an element in a two-dimensional matrix.

• const mha_complex_t & operator() (unsigned int row, unsigned int col) const
Access complex value of an element in a two-dimensional matrix.

•
•
•
•

unsigned int
unsigned int
unsigned int
unsigned int

get_nreals () const
get_index (unsigned int row, unsigned int col) const
get_index (const MHASignal::uint_vector_t &index) const
numbytes () const

Return number of bytes needed to store into memory.

• unsigned int write (uint8_t ∗buf, unsigned int len) const
Copy to memory area.

• const mha_real_t ∗ get_rdata () const
Return pointer of real data.

• const mha_complex_t ∗ get_cdata () const
Return pointer of complex data.

Private Attributes
• uint32_t complex_ofs
• uint32_t nelements
• union {
mha_real_t ∗ rdata
mha_complex_t ∗ cdata
};

Additional Inherited Members
5.270.1

Detailed Description

n-dimensional matrix with real or complex floating point values.
Warning
The member functions imag() (p. 961) and operator() should only be called if the matrix
is defined to hold complex values.

5.270.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.270

5.270.2.1

MHASignal::matrix_t Class Reference

matrix_t() [1/5]

MHASignal::matrix_t::matrix_t (
unsigned int nrows,
unsigned int ncols,
bool b_is_complex = true )

Create a two-dimensional matrix.

© 2005-2018 HörTech gGmbH, Oldenburg

957

958

CONTENTS

Parameters
nrows
ncols
b_is_complex

5.270.2.2

Number of rows
Number of columns
Add space for complex values

matrix_t() [2/5]

MHASignal::matrix_t::matrix_t (
const

mha_spec_t & spec )

Create a two-dimensional matrix from a spectrum, copy values.
Parameters
spec

5.270.2.3

Source spectrum structure

matrix_t() [3/5]

MHASignal::matrix_t::matrix_t (
const

MHASignal::uint_vector_t & size,

bool b_is_complex = true )

Create n-dimensional matrix, descriped by size argument.
Parameters
size
b_is_complex

5.270.2.4

Size vector
Add space for complex values

matrix_t() [4/5]

MHASignal::matrix_t::matrix_t (
const

MHASignal::matrix_t & src )

© 2005-2018 HörTech gGmbH, Oldenburg

5.270

5.270.2.5

MHASignal::matrix_t Class Reference

959

matrix_t() [5/5]

MHASignal::matrix_t::matrix_t (
const uint8_t ∗ buf,
unsigned int len )

Construct from memory area.
Warning
This constructor is not real time safe

5.270.2.6 ∼matrix_t()
MHASignal::matrix_t::∼matrix_t ( )

5.270.3

5.270.3.1

Member Function Documentation

operator=() [1/2]

matrix_t & MHASignal::matrix_t::operator= (
const

5.270.3.2

MHASignal::matrix_t & src )

operator=() [2/2]

MHASignal::matrix_t & MHASignal::matrix_t::operator= (
const

comm_var_t & v )

Fill matrix with data of an AC variable object.
Parameters
v

Source AC variable (comm_var_t (p. 271))

Note
The type and dimension of the AC variable must match the type and dimension of the
matrix.
© 2005-2018 HörTech gGmbH, Oldenburg

960

5.270.3.3

CONTENTS

get_comm_var()

comm_var_t MHASignal::matrix_t::get_comm_var ( )

Return a AC communication variable pointing to the data of the current matrix.
Returns
AC variable object (comm_var_t (p. 271)), valid for the life time of the matrix.

5.270.3.4

dimension()

unsigned int MHASignal::matrix_t::dimension ( ) const [inline]

Return the dimension of the matrix.
Returns
Dimension of the matrix

5.270.3.5

size()

unsigned int MHASignal::matrix_t::size (
unsigned int k ) const [inline]

Return the size of the matrix.
Parameters
k

Dimension

Returns
Size of the matrix in dimension k

© 2005-2018 HörTech gGmbH, Oldenburg

5.270

MHASignal::matrix_t Class Reference

5.270.3.6

get_nelements()

unsigned int MHASignal::matrix_t::get_nelements ( ) const

Return total number of elements.

5.270.3.7

is_same_size()

bool MHASignal::matrix_t::is_same_size (
const

MHASignal::matrix_t & src )

Test if matrix has same size as other.

5.270.3.8

iscomplex()

bool MHASignal::matrix_t::iscomplex ( ) const [inline]

Return information about complexity.

5.270.3.9

real() [1/4]

mha_real_t& MHASignal::matrix_t::real (
const

MHASignal::uint_vector_t & index ) [inline]

Access real part of an element in a n-dimensional matrix.
Parameters
index

5.270.3.10

Index vector

imag() [1/4]

mha_real_t& MHASignal::matrix_t::imag (
const

MHASignal::uint_vector_t & index ) [inline]

Access imaginary part of an element in a n-dimensional matrix.

© 2005-2018 HörTech gGmbH, Oldenburg

961

962

CONTENTS

Parameters
Index vector

index

5.270.3.11

operator()() [1/4]

mha_complex_t& MHASignal::matrix_t::operator() (
const

MHASignal::uint_vector_t & index ) [inline]

Access complex value of an element in a n-dimensional matrix.
Parameters
Index vector

index

5.270.3.12
const

real() [2/4]

mha_real_t& MHASignal::matrix_t::real (
const

MHASignal::uint_vector_t & index ) const [inline]

Access real part of an element in a n-dimensional matrix.
Parameters
Index vector

index

5.270.3.13
const

imag() [2/4]

mha_real_t& MHASignal::matrix_t::imag (
const

MHASignal::uint_vector_t & index ) const [inline]

Access imaginary part of an element in a n-dimensional matrix.
Parameters
index

Index vector

© 2005-2018 HörTech gGmbH, Oldenburg

5.270

MHASignal::matrix_t Class Reference

5.270.3.14
const

operator()() [2/4]

mha_complex_t& MHASignal::matrix_t::operator() (
const

MHASignal::uint_vector_t & index ) const [inline]

Access complex value of an element in a n-dimensional matrix.
Parameters
Index vector

index

5.270.3.15

real() [3/4]

mha_real_t& MHASignal::matrix_t::real (
unsigned int row,
unsigned int col ) [inline]

Access real part of an element in a two-dimensional matrix.
Parameters
row
col

Row number of element
Column number of element

5.270.3.16

imag() [3/4]

mha_real_t& MHASignal::matrix_t::imag (
unsigned int row,
unsigned int col ) [inline]

Access imaginary part of an element in a two-dimensional matrix.
Parameters
row
col

963

Row number of element
Column number of element

5.270.3.17

operator()() [3/4]

mha_complex_t& MHASignal::matrix_t::operator() (

© 2005-2018 HörTech gGmbH, Oldenburg

964

CONTENTS

unsigned int row,
unsigned int col ) [inline]

Access complex value of an element in a two-dimensional matrix.
Parameters
row
col

Row number of element
Column number of element

5.270.3.18
const

real() [4/4]

mha_real_t& MHASignal::matrix_t::real (
unsigned int row,
unsigned int col ) const [inline]

Access real part of an element in a two-dimensional matrix.
Parameters
row
col

Row number of element
Column number of element

5.270.3.19
const

imag() [4/4]

mha_real_t& MHASignal::matrix_t::imag (
unsigned int row,
unsigned int col ) const [inline]

Access imaginary part of an element in a two-dimensional matrix.
Parameters
row
col

Row number of element
Column number of element

5.270.3.20
const

operator()() [4/4]

mha_complex_t& MHASignal::matrix_t::operator() (
unsigned int row,
unsigned int col ) const [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

5.270

MHASignal::matrix_t Class Reference

965

Access complex value of an element in a two-dimensional matrix.
Parameters
row
col

Row number of element
Column number of element

5.270.3.21

get_nreals()

unsigned int MHASignal::matrix_t::get_nreals ( ) const [inline]

5.270.3.22

get_index() [1/2]

unsigned int MHASignal::matrix_t::get_index (
unsigned int row,
unsigned int col ) const

5.270.3.23

get_index() [2/2]

unsigned int MHASignal::matrix_t::get_index (
const

5.270.3.24

MHASignal::uint_vector_t & index ) const

numbytes()

unsigned int MHASignal::matrix_t::numbytes ( ) const

Return number of bytes needed to store into memory.

5.270.3.25

write()

unsigned int MHASignal::matrix_t::write (
uint8_t ∗ buf,
unsigned int len ) const

Copy to memory area.

© 2005-2018 HörTech gGmbH, Oldenburg

966

5.270.3.26

const

CONTENTS

get_rdata()

mha_real_t∗ MHASignal::matrix_t::get_rdata ( ) const [inline]

Return pointer of real data.

5.270.3.27

const

get_cdata()

mha_complex_t∗ MHASignal::matrix_t::get_cdata ( ) const [inline]

Return pointer of complex data.

5.270.4

5.270.4.1

Member Data Documentation

complex_ofs

uint32_t MHASignal::matrix_t::complex_ofs [private]

5.270.4.2

nelements

uint32_t MHASignal::matrix_t::nelements [private]

5.270.4.3

rdata

mha_real_t∗ MHASignal::matrix_t::rdata

5.270.4.4

cdata

mha_complex_t∗ MHASignal::matrix_t::cdata

© 2005-2018 HörTech gGmbH, Oldenburg

5.271

MHASignal::minphase_t Class Reference

5.270.4.5

967

"@1

union { ...

}

[private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.271

MHASignal::minphase_t Class Reference

Minimal phase function.
Inheritance diagram for MHASignal::minphase_t:

MHASignal::hilbert_t

MHASignal::minphase_t

Public Member Functions
• minphase_t (unsigned int fftlen, unsigned int ch)
Constructor.

• void operator() ( mha_spec_t ∗s)
Transform input spectrum to a minimal-phase spectrum, discarding the original phase.

Private Attributes
• MHASignal::waveform_t phase

Additional Inherited Members
5.271.1

Detailed Description

Minimal phase function.
The output spectrum Y (f ) is

Y (f ) = |X(f )|eiH{log |X(f )|} ,

with the input spectrum X(f ) and the Hilbert transformation H{· · ·}.
© 2005-2018 HörTech gGmbH, Oldenburg

968

5.271.2

5.271.2.1

CONTENTS

Constructor & Destructor Documentation

minphase_t()

MHASignal::minphase_t::minphase_t (
unsigned int fftlen,
unsigned int ch )

Constructor.
Parameters
fftlen

FFT length

ch

Number of channels

5.271.3

5.271.3.1

Member Function Documentation

operator()()

void MHASignal::minphase_t::operator() (
mha_spec_t ∗ s )

Transform input spectrum to a minimal-phase spectrum, discarding the original phase.
Parameters
s

Spectrum to operate on.

5.271.4

5.271.4.1

Member Data Documentation

phase

MHASignal::waveform_t MHASignal::minphase_t::phase [private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.272

MHASignal::quantizer_t Class Reference

5.272

MHASignal::quantizer_t Class Reference

969

Simple simulation of fixpoint quantization.

Public Member Functions
• quantizer_t (unsigned int num_bits)
Constructor.

• void operator() ( mha_wave_t &s)
Quantization of a waveform fragment.

Private Attributes
•
•
•
•

bool limit
mha_real_t upscale
mha_real_t downscale
mha_real_t up_limit

5.272.1

Detailed Description

Simple simulation of fixpoint quantization.

5.272.2

5.272.2.1

Constructor & Destructor Documentation

quantizer_t()

MHASignal::quantizer_t::quantizer_t (
unsigned int num_bits )

Constructor.
Parameters
num_bits

5.272.3

Number of bits to simulate, or zero for limiting to [-1,1] only.

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

970

5.272.3.1

CONTENTS

operator()()

void MHASignal::quantizer_t::operator() (
mha_wave_t & s )

Quantization of a waveform fragment.
Parameters
s

Waveform fragment to be quantized.

5.272.4

5.272.4.1

Member Data Documentation

limit

bool MHASignal::quantizer_t::limit [private]

5.272.4.2

upscale

mha_real_t MHASignal::quantizer_t::upscale [private]

5.272.4.3

downscale

mha_real_t MHASignal::quantizer_t::downscale [private]

5.272.4.4

up_limit

mha_real_t MHASignal::quantizer_t::up_limit [private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.273

MHASignal::ringbuffer_t Class Reference

5.273

MHASignal::ringbuffer_t Class Reference

971

A ringbuffer class for time domain audio signal, which makes no assumptions with respect to
fragment size.
Inheritance diagram for MHASignal::ringbuffer_t:

mha_wave_t

MHASignal::waveform_t

MHASignal::ringbuffer_t

Public Member Functions
• ringbuffer_t (unsigned frames, unsigned channels, unsigned prefilled_frames)
Creates new ringbuffer for time domain signal.

• unsigned contained_frames () const
number of currently contained frames

• mha_real_t & value (unsigned frame, unsigned channel)
Access to value stored in ringbuffer.

• void discard (unsigned frames)
Discards the oldest frames.

• void write ( mha_wave_t &signal)
Copies the contents of the signal into the ringbuffer if there is enough space.

Private Attributes
• unsigned next_read_frame_index
Index of oldest frame in underlying storage for the ringbuffer.

• unsigned next_write_frame_index
Index of first free frame in underlying storage.
© 2005-2018 HörTech gGmbH, Oldenburg

972

CONTENTS

Additional Inherited Members
5.273.1

Detailed Description

A ringbuffer class for time domain audio signal, which makes no assumptions with respect to
fragment size.
Blocks of audio signal can be placed into the ringbuffer using the write (p. 974) method. Individual audio samples can be accessed and altered using the value (p. 973) method. Blocks of
audio data can be deleted from the ringbuffer using the discard (p. 973) method.

5.273.2

Constructor & Destructor Documentation

5.273.2.1

ringbuffer_t()

ringbuffer_t::ringbuffer_t (
unsigned frames,
unsigned channels,
unsigned prefilled_frames )

Creates new ringbuffer for time domain signal.
Constructor allocates enough storage so that frames audio samples can be stored in the ringbuffer.
Parameters
frames

Size of ringbuffer in samples per channel. Maximum number of frames
that can be stored in the ringbuffer at one time. This number cannot be
changed after instance creation.

channels
prefilled_frames

Number of audio channels.
Number of frames to be prefilled with zero values. Many applications of a
ringbuffer require the introduction of a delay. In practice, this delay is
achieved by inserting silence audio samples (zeros) into the ringbuffer
before the start of the actual signal is inserted for the first time.

Exceptions
MHA_Error ( p. 522)

if prefilled_frames > frames

© 2005-2018 HörTech gGmbH, Oldenburg

5.273

MHASignal::ringbuffer_t Class Reference

5.273.3

Member Function Documentation

5.273.3.1

973

contained_frames()

unsigned MHASignal::ringbuffer_t::contained_frames ( ) const [inline]

number of currently contained frames

5.273.3.2

value()

mha_real_t& MHASignal::ringbuffer_t::value (
unsigned frame,
unsigned channel ) [inline]

Access to value stored in ringbuffer.
frame index is relative to the oldest frame stored in the ringbuffer, therefore, the meaning of the
frame changes when the discard (p. 973) method is called.
Parameters
frame
channel

frame index, 0 corresponds to oldest frame stored.
audio channel

Returns
reference to contained sample value
Exceptions
MHA_Error ( p. 522)

5.273.3.3

if channel or frame out of bounds.

discard()

void MHASignal::ringbuffer_t::discard (
unsigned frames ) [inline]

Discards the oldest frames.
Makes room for new write (p. 974), alters base frame index for value (p. 973)

© 2005-2018 HörTech gGmbH, Oldenburg

974

CONTENTS

Parameters
how many frames to discard.

frames

Exceptions
MHA_Error ( p. 522)

5.273.3.4

if frames > contained_frames (p. 973)

write()

void MHASignal::ringbuffer_t::write (
mha_wave_t & signal ) [inline]

Copies the contents of the signal into the ringbuffer if there is enough space.
Parameters
signal

New signal to be appended to the signal already present in the ringbuffer

Exceptions
MHA_Error ( p. 522)

5.273.4

5.273.4.1

if there is not enough space or if the channel count mismatches.
Nothing is copied if the space is insufficient.

Member Data Documentation

next_read_frame_index

unsigned MHASignal::ringbuffer_t::next_read_frame_index [private]

Index of oldest frame in underlying storage for the ringbuffer.
This value is added to the frame parameter of the value (p. 973) method, and this value is
altered when discard (p. 973) is called.
© 2005-2018 HörTech gGmbH, Oldenburg

5.274

MHASignal::schroeder_t Class Reference

5.273.4.2

975

next_write_frame_index

unsigned MHASignal::ringbuffer_t::next_write_frame_index [private]

Index of first free frame in underlying storage.
Next frame to be stored will be placed here.
The documentation for this class was generated from the following files:

• mha_signal.hh
• mha_signal.cpp

5.274

MHASignal::schroeder_t Class Reference

Schroeder tone complex class.
Inheritance diagram for MHASignal::schroeder_t:

mha_wave_t

MHASignal::waveform_t

MHASignal::schroeder_t

Public Types
• enum sign_t { up, down }
Enumerator for sign of Schroeder tone complex sweep direction.

• typedef float(∗ groupdelay_t) (float f, float fmin, float fmax)
Function type for group delay definition.
© 2005-2018 HörTech gGmbH, Oldenburg

976

CONTENTS

Public Member Functions
• schroeder_t (unsigned int len, unsigned int channels=1, schroeder_t::sign_t sign=
up, mha_real_t speed=1)
Constructor.

• schroeder_t (unsigned int len, unsigned int channels=1, schroeder_t::groupdelay_t
freqfun= MHASignal::schroeder_t::identity, float fmin=0, float fmax=1, float eps=1e-10)
Construct create Schroeder tone complex from a given frequency function.

Static Public Member Functions
• static float identity (float x, float, float)
• static float log_up (float x, float fmin, float fmax)
• static float log_down (float x, float fmin, float fmax)

Additional Inherited Members
5.274.1

Detailed Description

Schroeder tone complex class.
The Schroeder tone complex is a sweep defined in the sampled spectrum:

Φ(f ) = σ2πτ (2f /fs )2α ,

S(f ) = eiΦ(f )

f is the sampled frequency in Hz, σ is the sign of the sweep (-1 for up sweep, +1 for down
sweep), τ is the sweep duration in samples, fs is the sampling rate in Hz and α is the relative
sweep speed.

5.274.2

5.274.2.1

Member Typedef Documentation

groupdelay_t

typedef float(∗ MHASignal::schroeder_t::groupdelay_t) (float f, float fmin, float
fmax)

Function type for group delay definition.

© 2005-2018 HörTech gGmbH, Oldenburg

5.274

MHASignal::schroeder_t Class Reference

977

Parameters
f

Frequency relative to Nyquist frequency.

fmin

Minimum frequency relative to Nyquist frequency.

fmax

Maximum frequency relative to Nyquist frequency.

5.274.3

Member Enumeration Documentation

5.274.3.1
enum

sign_t

MHASignal::schroeder_t::sign_t

Enumerator for sign of Schroeder tone complex sweep direction.
Enumerator
up

Sweep from zero to Nyquist frequency ( σ = −1)

down

Sweep from Nyquist frequency to zero ( σ = +1)

5.274.4

5.274.4.1

Constructor & Destructor Documentation

schroeder_t() [1/2]

MHASignal::schroeder_t::schroeder_t (
unsigned int len,
unsigned int channels = 1,
schroeder_t::sign_t sign =

up,

mha_real_t speed = 1 )

Constructor.
Parameters of the Schroeder tone complex are configured in the constructor.
Parameters
len

Length τ of the Schroeder tone complex in samples

channels
sign

Number of channels
Sign σ of Schroeder sweep

speed

Relative speed α (curvature of phase function)

© 2005-2018 HörTech gGmbH, Oldenburg

978

5.274.4.2

CONTENTS

schroeder_t() [2/2]

MHASignal::schroeder_t::schroeder_t (
unsigned int len,
unsigned int channels = 1,
schroeder_t::groupdelay_t freqfun =

MHASignal::schroeder_t::identity,

float fmin = 0,
float fmax = 1,
float eps = 1e-10 )

Construct create Schroeder tone complex from a given frequency function.
The frequency function g(f ) defines the sweep speed and sign (based on the group delay). It
must be defined in the interval [0,1) and should return values in the interval [0,1].
Zτ
Φ(f ) = −4πτ

g(f ) df,

S(f ) = eiΦ(f )

0

Parameters
len

Length τ of the Schroeder tone complex in samples.

channels
freqfun

Number of channels.
Frequency function g(f ).

fmin

Start frequency (relative to Nyquist frequency).

fmax

End frequency (relative to Nyquist frequency).

eps

Stability constant for frequency ranges not covered by Schroeder tone complex.

5.274.5

5.274.5.1

Member Function Documentation

identity()

static float MHASignal::schroeder_t::identity (
float x,
float ,
float

) [inline], [static]

© 2005-2018 HörTech gGmbH, Oldenburg

5.275

MHASignal::spectrum_t Class Reference

5.274.5.2

979

log_up()

static float MHASignal::schroeder_t::log_up (
float x,
float fmin,
float fmax ) [inline], [static]

5.274.5.3

log_down()

static float MHASignal::schroeder_t::log_down (
float x,
float fmin,
float fmax ) [inline], [static]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.275

MHASignal::spectrum_t Class Reference

a signal processing class for spectral data (based on mha_spec_t (p. 547))
Inheritance diagram for MHASignal::spectrum_t:

mha_spec_t

MHASignal::spectrum_t

hilbert_shifter_t

MHA_AC::spectrum_t

MHAMultiSrc::spectrum_t

© 2005-2018 HörTech gGmbH, Oldenburg

wave2spec_t

980

CONTENTS

Public Member Functions
• spectrum_t (const unsigned int &frames, const unsigned int & channels)
constructor of spectrum class

• spectrum_t (const mha_spec_t &)
Copy constructor.

• spectrum_t (const MHASignal::spectrum_t &)
Copy constructor.

• spectrum_t (const std::vector< mha_complex_t > &)
• virtual ∼spectrum_t (void)
• mha_complex_t & operator() (unsigned int f, unsigned int ch)
Access to element.

• mha_complex_t & operator[ ] (unsigned int k)
Access to a single element, direct index into data buffer.

• mha_complex_t & value (unsigned int f, unsigned int ch)
Access to element.

• void copy (const mha_spec_t &)
copy all elements from a spectrum

• void copy_channel (const mha_spec_t &s, unsigned sch, unsigned dch)
Copy one channel of a given spectrum signal to a target channel.

• void export_to ( mha_spec_t &)
copy elements to spectrum structure

• void scale (const unsigned int &, const unsigned int &, const unsigned int &, const
mha_real_t &)
scale section [a,b) in channel "ch" by "val"

• void scale_channel (const unsigned int &, const mha_real_t &)
scale all elements in one channel

Additional Inherited Members
5.275.1

Detailed Description

a signal processing class for spectral data (based on mha_spec_t (p. 547))

5.275.2

5.275.2.1

Constructor & Destructor Documentation

spectrum_t() [1/4]

spectrum_t::spectrum_t (
const unsigned int & frames,
const unsigned int & channels )

constructor of spectrum class
Allocates buffers and initializes memory to zeros.

© 2005-2018 HörTech gGmbH, Oldenburg

5.275

MHASignal::spectrum_t Class Reference

981

Parameters
frames
channels

5.275.2.2

number of frames (fft bins) in one channel. Number of Frames is usually fftlen /
2+1
number of channels

spectrum_t() [2/4]

spectrum_t::spectrum_t (
const

mha_spec_t & src ) [explicit]

Copy constructor.

5.275.2.3

spectrum_t() [3/4]

spectrum_t::spectrum_t (
const

MHASignal::spectrum_t & src )

Copy constructor.

5.275.2.4

spectrum_t() [4/4]

spectrum_t::spectrum_t (
const std::vector<

mha_complex_t > & src )

5.275.2.5 ∼spectrum_t()
spectrum_t::∼spectrum_t (
void

) [virtual]

Reimplemented in MHA_AC::spectrum_t (p. 493).

5.275.3

5.275.3.1

Member Function Documentation

operator()()

mha_complex_t& MHASignal::spectrum_t::operator() (
unsigned int f,
unsigned int ch ) [inline]

Access to element.

© 2005-2018 HörTech gGmbH, Oldenburg

982

CONTENTS

Parameters
f
ch

Bin number
Channel number

Returns
Reference to element

5.275.3.2

operator[]()

mha_complex_t& MHASignal::spectrum_t::operator[ ] (
unsigned int k ) [inline]

Access to a single element, direct index into data buffer.
Parameters
k

Buffer index

Returns
Reference to element

5.275.3.3

value()

mha_complex_t& MHASignal::spectrum_t::value (
unsigned int f,
unsigned int ch ) [inline]

Access to element.
Parameters
f
ch

Bin number
Channel number

Returns
Reference to element

© 2005-2018 HörTech gGmbH, Oldenburg

5.275

MHASignal::spectrum_t Class Reference

5.275.3.4

copy()

void spectrum_t::copy (
const

mha_spec_t & src )

copy all elements from a spectrum
Parameters
src

input spectrum

5.275.3.5

copy_channel()

void spectrum_t::copy_channel (
const

mha_spec_t & s,

unsigned sch,
unsigned dch )

Copy one channel of a given spectrum signal to a target channel.
Parameters
s

Input spectrum signal

sch

Channel index in source signal

dch

Channel index in destination (this) signal

5.275.3.6

export_to()

void spectrum_t::export_to (
mha_spec_t & dest )

copy elements to spectrum structure
Parameters
dest

5.275.3.7

destination spectrum structure

scale()

void spectrum_t::scale (
const unsigned int & a,

© 2005-2018 HörTech gGmbH, Oldenburg

983

984

CONTENTS

const unsigned int & b,
const unsigned int & ch,
const

mha_real_t & val )

scale section [a,b) in channel "ch" by "val"
Parameters
a

starting frame

b
ch
val

end frame (excluded)
channel number
scale factor

5.275.3.8

scale_channel()

void spectrum_t::scale_channel (
const unsigned int & ch,
const

mha_real_t & src )

scale all elements in one channel
Parameters
ch
src

channel number
scale factor

The documentation for this class was generated from the following files:

• mha_signal.hh
• mha_signal.cpp

© 2005-2018 HörTech gGmbH, Oldenburg

5.276

MHASignal::stat_t Class Reference

5.276

MHASignal::stat_t Class Reference

985

Inheritance diagram for MHASignal::stat_t:

MHASignal::stat_t

MHA_AC::stat_t

Public Member Functions
•
•
•
•
•

stat_t (const unsigned int &frames, const unsigned int & channels)
void mean ( mha_wave_t &m)
void mean_std ( mha_wave_t &m, mha_wave_t &s)
void push (const mha_wave_t &)
void push (const mha_real_t &x, const unsigned int &k, const unsigned int &ch)

Private Attributes
• MHASignal::waveform_t n
• MHASignal::waveform_t sum
• MHASignal::waveform_t sum2

5.276.1

5.276.1.1

Constructor & Destructor Documentation

stat_t()

MHASignal::stat_t::stat_t (
const unsigned int & frames,
const unsigned int & channels )

5.276.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

986

5.276.2.1

CONTENTS

mean()

void MHASignal::stat_t::mean (
mha_wave_t & m )

5.276.2.2

mean_std()

void MHASignal::stat_t::mean_std (
mha_wave_t & m,
mha_wave_t & s )

5.276.2.3

push() [1/2]

void MHASignal::stat_t::push (
const

5.276.2.4

mha_wave_t & x )

push() [2/2]

void MHASignal::stat_t::push (
const

mha_real_t & x,

const unsigned int & k,
const unsigned int & ch )

5.276.3

5.276.3.1

Member Data Documentation

n

MHASignal::waveform_t MHASignal::stat_t::n [private]

5.276.3.2

sum

MHASignal::waveform_t MHASignal::stat_t::sum [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.277

MHASignal::subsample_delay_t Class Reference

5.276.3.3

987

sum2

MHASignal::waveform_t MHASignal::stat_t::sum2 [private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.277

MHASignal::subsample_delay_t Class Reference

implements subsample delay in spectral domain.
Public Member Functions
• subsample_delay_t (const std::vector< float > &subsample_delay, unsigned fftlen)
Constructor computes complex phase factors to apply to achieve subsample delay.

• void process ( mha_spec_t ∗s)
Apply the phase_gains to s to achieve the subsample delay.

• void process ( mha_spec_t ∗s, unsigned idx)
Apply the pase gains to channel idx in s to achieve the subsample delay in channel idx.

Public Attributes
• spectrum_t phase_gains
The complex factors to apply to achieve the necessary phase shift.

Private Attributes
• unsigned last_complex_bin
index of the last complex fft bin for the used fft length.

5.277.1

Detailed Description

implements subsample delay in spectral domain.
When transformed back to the time domain, the signal is delayed by the configured fraction of
a sample. This operation must not be used in a smoothgains bracket.
5.277.2

5.277.2.1

Constructor & Destructor Documentation

subsample_delay_t()

MHASignal::subsample_delay_t::subsample_delay_t (
const std::vector< float > & subsample_delay,
unsigned fftlen )

Constructor computes complex phase factors to apply to achieve subsample delay.

© 2005-2018 HörTech gGmbH, Oldenburg

988

CONTENTS

Parameters
subsample_delay

The subsample delay to apply. -0.5 <= subsample_delay <= 0.5

fftlen

FFT length

Exceptions
MHA_Error ( p. 522)

5.277.3

if the parameters are out of range

Member Function Documentation

5.277.3.1

process() [1/2]

void MHASignal::subsample_delay_t::process (
mha_spec_t ∗ s )

Apply the phase_gains to s to achieve the subsample delay.

5.277.3.2

process() [2/2]

void MHASignal::subsample_delay_t::process (
mha_spec_t ∗ s,
unsigned idx )

Apply the pase gains to channel idx in s to achieve the subsample delay in channel idx.
Parameters
s
idx

signal
channel index, 0-based

Exceptions
MHA_Error ( p. 522)

5.277.4

if idx >= s->num_channels

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.278

MHASignal::uint_vector_t Class Reference

5.277.4.1

989

phase_gains

spectrum_t MHASignal::subsample_delay_t::phase_gains

The complex factors to apply to achieve the necessary phase shift.

5.277.4.2

last_complex_bin

unsigned MHASignal::subsample_delay_t::last_complex_bin [private]

index of the last complex fft bin for the used fft length.
The documentation for this class was generated from the following files:

• mha_signal.hh
• mha_signal.cpp

5.278

MHASignal::uint_vector_t Class Reference

Vector of unsigned values, used for size and index description of n-dimensional matrixes.
Inheritance diagram for MHASignal::uint_vector_t:

MHASignal::uint_vector_t

MHASignal::matrix_t

MHA_AC::ac2matrix_t

© 2005-2018 HörTech gGmbH, Oldenburg

990

CONTENTS

Public Member Functions
• uint_vector_t (unsigned int len)
Constructor, initializes all elements to zero.

• uint_vector_t (const uint_vector_t &)
• uint_vector_t (const uint8_t ∗buf, unsigned int len)
Construct from memory area.

• ∼uint_vector_t ()
• bool operator== (const uint_vector_t &) const
Check for equality.

• uint_vector_t & operator= (const uint_vector_t &)
Assign from other uint_vector_t ( p. 989).

• unsigned int get_length () const
Return the length of the vector.

• const uint32_t & operator[ ] (unsigned int k) const
Read-only access to elements.

• uint32_t & operator[ ] (unsigned int k)
Access to elements.

• unsigned int numbytes () const
Return number of bytes needed to store into memory.

• unsigned int write (uint8_t ∗buf, unsigned int len) const
Copy to memory area.

• const uint32_t ∗ getdata () const
Return pointer to the data field.

Protected Attributes
• uint32_t length
• uint32_t ∗ data

5.278.1

Detailed Description

Vector of unsigned values, used for size and index description of n-dimensional matrixes.

5.278.2

5.278.2.1

Constructor & Destructor Documentation

uint_vector_t() [1/3]

MHASignal::uint_vector_t::uint_vector_t (
unsigned int len )

Constructor, initializes all elements to zero.

© 2005-2018 HörTech gGmbH, Oldenburg

5.278

MHASignal::uint_vector_t Class Reference

Parameters
Length of vector.

len

5.278.2.2

uint_vector_t() [2/3]

MHASignal::uint_vector_t::uint_vector_t (
const

5.278.2.3

uint_vector_t & src )

uint_vector_t() [3/3]

MHASignal::uint_vector_t::uint_vector_t (
const uint8_t ∗ buf,
unsigned int len )

Construct from memory area.
Warning
This constructor is not real time safe

5.278.2.4 ∼uint_vector_t()
MHASignal::uint_vector_t::∼uint_vector_t ( )

5.278.3

5.278.3.1

Member Function Documentation

operator==()

bool MHASignal::uint_vector_t::operator== (
const

uint_vector_t & src ) const

Check for equality.

© 2005-2018 HörTech gGmbH, Oldenburg

991

992

5.278.3.2

CONTENTS

operator=()

uint_vector_t & MHASignal::uint_vector_t::operator= (
const

uint_vector_t & src )

Assign from other uint_vector_t (p. 989).
Warning
This assignment will fail if the lengths mismatch.

5.278.3.3

get_length()

unsigned int MHASignal::uint_vector_t::get_length ( ) const [inline]

Return the length of the vector.

5.278.3.4

operator[]() [1/2]

const uint32_t& MHASignal::uint_vector_t::operator[ ] (
unsigned int k ) const [inline]

Read-only access to elements.

5.278.3.5

operator[]() [2/2]

uint32_t& MHASignal::uint_vector_t::operator[ ] (
unsigned int k ) [inline]

Access to elements.

5.278.3.6

numbytes()

unsigned int MHASignal::uint_vector_t::numbytes ( ) const

Return number of bytes needed to store into memory.

© 2005-2018 HörTech gGmbH, Oldenburg

5.279

MHASignal::waveform_t Class Reference

5.278.3.7

993

write()

unsigned int MHASignal::uint_vector_t::write (
uint8_t ∗ buf,
unsigned int len ) const

Copy to memory area.

5.278.3.8

getdata()

const uint32_t∗ MHASignal::uint_vector_t::getdata ( ) const [inline]

Return pointer to the data field.
5.278.4

Member Data Documentation

5.278.4.1

length

uint32_t MHASignal::uint_vector_t::length [protected]

5.278.4.2

data

uint32_t∗ MHASignal::uint_vector_t::data [protected]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.279

MHASignal::waveform_t Class Reference

signal processing class for waveform data (based on mha_wave_t (p. 583))
Inheritance diagram for MHASignal::waveform_t:
fader_wave::level_adapt_t

gain::scaler_t

MHAMultiSrc::waveform_t

MHA_AC::waveform_t

mon_t

MHAFilter::o1_ar_filter_t

MHAFilter::o1flt_lowpass_t

MHAOvlFilter::fftfb_t

coherence::cohflt_t

MHASignal::async_rmslevel_t

MHAOvlFilter::overlap
_save_filterbank_t

MHAFilter::o1flt_maxtrack_t

MHAFilter::o1flt_mintrack_t

mha_wave_t

MHASignal::waveform_t
MHASignal::loop_wavefragment_t

MHAOvlFilter::overlap
_save_filterbank_analytic_t

multibandcompressor
::fftfb_plug_t

MHASignal::ringbuffer_t
MHAWindow::bartlett_t
MHASignal::schroeder_t
MHAWindow::blackman_t
MHASndFile::sf_wave_t
MHAWindow::fun_t

MHAWindow::hamming_t

MHAWindow::user_t

MHAWindow::hanning_t

MHAWindow::base_t

speechnoise_t
MHAWindow::rect_t

© 2005-2018 HörTech gGmbH, Oldenburg

fftfilterbank::fftfb
_plug_t

994

CONTENTS

Public Member Functions
• waveform_t (const unsigned int &frames, const unsigned int & channels)
constructor of waveform_t ( p. 993)

• waveform_t (const mhaconfig_t &cf)
Constructor to create a waveform from plugin configuration.

• waveform_t (const mha_wave_t &src)
Copy contructor for mha_wave_t ( p. 583) source.

• waveform_t (const MHASignal::waveform_t &src)
Copy contructor.

• waveform_t (const std::vector< mha_real_t > &src)
Copy contructor for std::vector source.

•
•
•
•
•

virtual ∼waveform_t (void)
void operator= (const mha_real_t &v)
mha_real_t & operator[ ] (unsigned int k)
const mha_real_t & operator[ ] (unsigned int k) const
mha_real_t & value (unsigned int t, unsigned int ch)
Element accessor.

• mha_real_t & operator() (unsigned int t, unsigned int ch)
Element accessor.

• const mha_real_t & value (unsigned int t, unsigned int ch) const
Constant element accessor.

• const mha_real_t & operator() (unsigned int t, unsigned int ch) const
Constant element accessor.

• mha_real_t sum (const unsigned int &a, const unsigned int &b)
sum of all elements between [a,b) in all channels

• mha_real_t sum (const unsigned int &a, const unsigned int &b, const unsigned int &ch)
sum of all elements between [a,b) in channel ch

• mha_real_t sum ()
sum of all elements

• mha_real_t sumsqr ()
sum of square of all elements

• mha_real_t sum_channel (const unsigned int &)
return sum of all elements in one channel

• void assign (const unsigned int &k, const unsigned int &ch, const mha_real_t &val)
set frame "k" in channel "ch" to value "val"

• void assign (const mha_real_t &)
set all elements to value

• void assign_frame (const unsigned int &k, const mha_real_t &val)
assign value "val" to frame k in all channels

• void assign_channel (const unsigned int &c, const mha_real_t &val)
assign value "val" to channel ch in all frames

• void copy (const std::vector< mha_real_t > &v)
• void copy (const mha_wave_t &)
copy data from source into current waveform
© 2005-2018 HörTech gGmbH, Oldenburg

5.279

MHASignal::waveform_t Class Reference

995

• void copy (const mha_wave_t ∗)
• void copy_channel (const mha_wave_t &, unsigned int, unsigned int)
Copy one channel of a given waveform signal to a target channel.

• void copy_from_at (unsigned int, unsigned int, const mha_wave_t &, unsigned int)
Copy part of the source signal into part of this waveform object.

• void export_to ( mha_wave_t &)
copy data into allocated mha_wave_t ( p. 583) structure

• void limit (const mha_real_t & min, const mha_real_t & max)
limit target to range [min,max]

• void power (const waveform_t &)
transform waveform signal (in Pa) to squared signal (in W/m∧ 2)

• void powspec (const mha_spec_t &)
get the power spectrum (in W/m∧ 2) from a complex spectrum

• void scale (const unsigned int &a, const unsigned int &b, const unsigned int &ch, const
mha_real_t &val)
scale section [a,b) in channel "ch" by "val"

• void scale (const unsigned int &k, const unsigned int &ch, const mha_real_t &val)
scale one element

• void scale_channel (const unsigned int &, const mha_real_t &)
scale one channel of target with a scalar

• void scale_frame (const unsigned int &, const mha_real_t &)
• unsigned int get_size () const

Additional Inherited Members
5.279.1

Detailed Description

signal processing class for waveform data (based on mha_wave_t (p. 583))

5.279.2

5.279.2.1

Constructor & Destructor Documentation

waveform_t() [1/5]

waveform_t::waveform_t (
const unsigned int & frames,
const unsigned int & channels )

constructor of waveform_t (p. 993)
Allocates buffer memory and initializes values to zero.

© 2005-2018 HörTech gGmbH, Oldenburg

996

CONTENTS

Parameters
frames
channels

5.279.2.2

number of frames in each channel
number of channels

waveform_t() [2/5]

waveform_t::waveform_t (
const

mhaconfig_t & cf ) [explicit]

Constructor to create a waveform from plugin configuration.
Parameters
cf

Plugin configuration

5.279.2.3

waveform_t() [3/5]

waveform_t::waveform_t (
const

mha_wave_t & src ) [explicit]

Copy contructor for mha_wave_t (p. 583) source.

5.279.2.4

waveform_t() [4/5]

waveform_t::waveform_t (
const

MHASignal::waveform_t & src )

Copy contructor.

5.279.2.5

waveform_t() [5/5]

waveform_t::waveform_t (
const std::vector<

mha_real_t > & src )

Copy contructor for std::vector source.
A waveform structure with a single channel is created, the length is equal to the number of
elements in the source vector.
© 2005-2018 HörTech gGmbH, Oldenburg

5.279

MHASignal::waveform_t Class Reference

5.279.2.6 ∼waveform_t()
waveform_t::∼waveform_t (
void

) [virtual]

Reimplemented in MHA_AC::waveform_t (p. 497).

5.279.3

Member Function Documentation

5.279.3.1

operator=()

void MHASignal::waveform_t::operator= (
const

5.279.3.2

mha_real_t & v ) [inline]

operator[]() [1/2]

mha_real_t& MHASignal::waveform_t::operator[ ] (
unsigned int k ) [inline]

5.279.3.3
const

operator[]() [2/2]
mha_real_t& MHASignal::waveform_t::operator[ ] (
unsigned int k ) const [inline]

5.279.3.4

value() [1/2]

mha_real_t& MHASignal::waveform_t::value (
unsigned int t,
unsigned int ch ) [inline]

Element accessor.
Parameters
t
ch

Frame number
Channel number

© 2005-2018 HörTech gGmbH, Oldenburg

997

998

CONTENTS

Returns
Reference to element

5.279.3.5

operator()() [1/2]

mha_real_t& MHASignal::waveform_t::operator() (
unsigned int t,
unsigned int ch ) [inline]

Element accessor.
Parameters
Frame number
Channel number

t
ch

Returns
Reference to element

5.279.3.6
const

value() [2/2]
mha_real_t& MHASignal::waveform_t::value (
unsigned int t,
unsigned int ch ) const [inline]

Constant element accessor.
Parameters
t
ch

Frame number
Channel number

Returns
Reference to element

© 2005-2018 HörTech gGmbH, Oldenburg

5.279

MHASignal::waveform_t Class Reference

5.279.3.7
const

operator()() [2/2]
mha_real_t& MHASignal::waveform_t::operator() (
unsigned int t,
unsigned int ch ) const [inline]

Constant element accessor.
Parameters
t
ch

Frame number
Channel number

Returns
Reference to element

5.279.3.8

sum() [1/3]

mha_real_t waveform_t::sum (
const unsigned int & a,
const unsigned int & b )

sum of all elements between [a,b) in all channels
Parameters
a

starting frame

b

end frame (excluded)

Returns
sum

5.279.3.9

sum() [2/3]

mha_real_t waveform_t::sum (
const unsigned int & a,
const unsigned int & b,
const unsigned int & ch )

sum of all elements between [a,b) in channel ch

© 2005-2018 HörTech gGmbH, Oldenburg

999

1000

CONTENTS

Parameters
a

starting frame

b
ch

end frame (exluded)
channel number

Returns
sum

5.279.3.10

sum() [3/3]

mha_real_t waveform_t::sum ( )

sum of all elements
Returns
sum of all elements

5.279.3.11

sumsqr()

mha_real_t waveform_t::sumsqr ( )

sum of square of all elements
Returns
sum of square of all elements

5.279.3.12

sum_channel()

mha_real_t waveform_t::sum_channel (
const unsigned int & ch )

return sum of all elements in one channel

© 2005-2018 HörTech gGmbH, Oldenburg

5.279

MHASignal::waveform_t Class Reference

Parameters
ch

channel number

Returns
sum

5.279.3.13

assign() [1/2]

void waveform_t::assign (
const unsigned int & k,
const unsigned int & ch,
const

mha_real_t & val )

set frame "k" in channel "ch" to value "val"
Parameters
k
ch
val

frame number
channel number
new value

5.279.3.14

assign() [2/2]

void waveform_t::assign (
const

mha_real_t & val )

set all elements to value
Parameters
val

new value

5.279.3.15

assign_frame()

void waveform_t::assign_frame (
const unsigned int & k,
const

mha_real_t & val )

assign value "val" to frame k in all channels

© 2005-2018 HörTech gGmbH, Oldenburg

1001

1002

CONTENTS

Parameters
k
val

frame number
new value

5.279.3.16

assign_channel()

void waveform_t::assign_channel (
const unsigned int & ch,
const

mha_real_t & val )

assign value "val" to channel ch in all frames
Parameters
ch
val

channel number
new value

5.279.3.17

copy() [1/3]

void waveform_t::copy (
const std::vector<

5.279.3.18

mha_real_t > & v )

copy() [2/3]

void waveform_t::copy (
const

mha_wave_t & src )

copy data from source into current waveform
Parameters
src

input data (need to be same size as target)

5.279.3.19

copy() [3/3]

void waveform_t::copy (
const

mha_wave_t ∗ src )
© 2005-2018 HörTech gGmbH, Oldenburg

5.279

MHASignal::waveform_t Class Reference

5.279.3.20

copy_channel()

void waveform_t::copy_channel (
const

mha_wave_t & src,

unsigned int src_channel,
unsigned int dest_channel )

Copy one channel of a given waveform signal to a target channel.
Parameters
src

Input waveform signal

src_channel

Channel in source signal

dest_channel

Channel number in destination signal

5.279.3.21

copy_from_at()

void waveform_t::copy_from_at (
unsigned int to_pos,
unsigned int len,
const

mha_wave_t & src,

unsigned int from_pos )

Copy part of the source signal into part of this waveform object.
Source and target have to have the same number of channels.
Parameters
to_pos

Offset in target

len

Number of frames copied

src
from_pos

Source
Offset in source

5.279.3.22

export_to()

void waveform_t::export_to (
mha_wave_t & dest )

copy data into allocated mha_wave_t (p. 583) structure

© 2005-2018 HörTech gGmbH, Oldenburg

1003

1004

CONTENTS

Parameters
dest

destination structure

5.279.3.23

limit()

void waveform_t::limit (
const

mha_real_t & min,

const

mha_real_t & max )

limit target to range [min,max]
Parameters
min
max

lower limit
upper limit

5.279.3.24

power()

void waveform_t::power (
const

waveform_t & src )

transform waveform signal (in Pa) to squared signal (in W/m∧ 2)
Parameters
src

linear waveform signal (in Pa)

5.279.3.25

powspec()

void waveform_t::powspec (
const

mha_spec_t & src )

get the power spectrum (in W/m∧ 2) from a complex spectrum
Parameters
src

complex spectrum (normalized to Pa)

© 2005-2018 HörTech gGmbH, Oldenburg

5.279

MHASignal::waveform_t Class Reference

5.279.3.26

scale() [1/2]

void waveform_t::scale (
const unsigned int & a,
const unsigned int & b,
const unsigned int & ch,
const

mha_real_t & val )

scale section [a,b) in channel "ch" by "val"
Parameters
a

starting frame

b
ch
val

end frame (excluded)
channel number
scale factor

5.279.3.27

scale() [2/2]

void waveform_t::scale (
const unsigned int & k,
const unsigned int & ch,
const

mha_real_t & val )

scale one element
Parameters
k
ch
val

frame number
channel number
scale factor

5.279.3.28

scale_channel()

void waveform_t::scale_channel (
const unsigned int & ch,
const

mha_real_t & src )

scale one channel of target with a scalar

© 2005-2018 HörTech gGmbH, Oldenburg

1005

1006

CONTENTS

Parameters
ch
src

channel number
factor

5.279.3.29

scale_frame()

void waveform_t::scale_frame (
const unsigned int & frame,
const

5.279.3.30

mha_real_t & val )

get_size()

unsigned int MHASignal::waveform_t::get_size ( ) const [inline]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.280

MHASndFile::sf_t Class Reference

Inheritance diagram for MHASndFile::sf_t:

MHASndFile::sf_t

MHASndFile::sf_wave_t

Public Member Functions
• sf_t (const std::string &fname)
• ∼sf_t ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.281

MHASndFile::sf_wave_t Class Reference

1007

Public Attributes
• SNDFILE ∗ sf
5.280.1

Constructor & Destructor Documentation

5.280.1.1

sf_t()

MHASndFile::sf_t::sf_t (
const std::string & fname )

5.280.1.2 ∼sf_t()
MHASndFile::sf_t::∼sf_t ( )

5.280.2

Member Data Documentation

5.280.2.1

sf

SNDFILE∗ MHASndFile::sf_t::sf

The documentation for this class was generated from the following files:
• mhasndfile.h
• mhasndfile.cpp

5.281

MHASndFile::sf_wave_t Class Reference

Inheritance diagram for MHASndFile::sf_wave_t:

mha_wave_t

MHASndFile::sf_t

MHASignal::waveform_t

MHASndFile::sf_wave_t

© 2005-2018 HörTech gGmbH, Oldenburg

1008

CONTENTS

Public Member Functions
•

sf_wave_t (const std::string &fname,
mha_real_t peaklevel_db, unsigned int
maxlen=std::numeric_limits< unsigned int >:: max(), unsigned int startpos=0, std←::vector< int > channel_map=std::vector< int >())

Additional Inherited Members
5.281.1

Constructor & Destructor Documentation

5.281.1.1

sf_wave_t()

MHASndFile::sf_wave_t::sf_wave_t (
const std::string & fname,
mha_real_t peaklevel_db,
unsigned int maxlen = std::numeric_limits::

max(),

unsigned int startpos = 0,
std::vector< int > channel_map = std::vector() )

The documentation for this class was generated from the following files:
• mhasndfile.h
• mhasndfile.cpp

5.282

MHATableLookup::linear_table_t Class Reference

Class for interpolation with equidistant x values.
Inheritance diagram for MHATableLookup::linear_table_t:

MHATableLookup::table_t

MHATableLookup::linear
_table_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.282

MHATableLookup::linear_table_t Class Reference

1009

Public Member Functions
• linear_table_t (void)
contructor creates an empty linear_table_t ( p. 1008) object.

• mha_real_t lookup ( mha_real_t x) const
look up the y value that is stored for the mesh point where x is lower than or equal to the x
value given here.

• mha_real_t interp ( mha_real_t x) const
interpolate y value for the given x value.

• ∼linear_table_t (void)
destructor

• void set_xmin ( mha_real_t xmin)
set the x value for the first mesh point.

• void add_entry ( mha_real_t y)
set the y value for the next mesh point.

• void set_xmax ( mha_real_t xmax)
this sets the x value for a past-the-end, not added mesh point.

• void prepare (void)
prepare computes the x distance of the mesh points based on the values given to set_xmin,
set_xmax, and the number of times that add_entry was called.

• void clear (void)
clear resets the state of this object to the state directly after construction.

Protected Attributes
• mha_real_t ∗ vy
• unsigned int len

Private Attributes
•
•
•
•

vector< mha_real_t > vec_y
mha_real_t xmin
mha_real_t xmax
mha_real_t scalefac

Additional Inherited Members
5.282.1

Detailed Description

Class for interpolation with equidistant x values.
This class can be used for linear interpolation tasks where the mesh points are known for
equidistant x values.
Before the class can be used for interpolation, it has to be filled with the y values for the mesh
points, the x range has to be specified, and when all values are given, the prepare method has
to be called so that the object can determine the distance between x values from the range and
the number of mesh points given.
Only after prepare has returned, the object may be used for interpolation.
© 2005-2018 HörTech gGmbH, Oldenburg

1010

5.282.2

5.282.2.1

CONTENTS

Constructor & Destructor Documentation

linear_table_t()

linear_table_t::linear_table_t (
void

)

contructor creates an empty linear_table_t (p. 1008) object.
add_entry, set_xmin, set_xmax and prepare methods have to be called before the object can
be used to lookup and interpolate values.
5.282.2.2 ∼linear_table_t()
linear_table_t::∼linear_table_t (
void

)

destructor

5.282.3

5.282.3.1

Member Function Documentation

lookup()

mha_real_t linear_table_t::lookup (
mha_real_t x ) const [virtual]

look up the y value that is stored for the mesh point where x is lower than or equal to the x value
given here.
This method does not extrapolate, so for x < xmin, the y value for xmin is returned. For all x
greater than the x of the last mesh point, the y value of the last mesh point is returned.

Precondition
prepare must have been called before lookup may be called.

Implements MHATableLookup::table_t (p. 1014).

© 2005-2018 HörTech gGmbH, Oldenburg

5.282

MHATableLookup::linear_table_t Class Reference

5.282.3.2

1011

interp()

mha_real_t linear_table_t::interp (
mha_real_t x ) const [virtual]

interpolate y value for the given x value.
The y values for the neighbouring mesh points are looked up and linearly interpolated. For x
values outside the range of mesh points, the y value is extrapolated from the nearest two mesh
points.
Precondition
prepare must have been called before interp may be called.
Implements MHATableLookup::table_t (p. 1014).

5.282.3.3

set_xmin()

void linear_table_t::set_xmin (
mha_real_t xmin )

set the x value for the first mesh point.
Must be called before prepare can be called.
5.282.3.4

add_entry()

void linear_table_t::add_entry (
mha_real_t y )

set the y value for the next mesh point.
Must be called at least twice before prepare can be called.
5.282.3.5

set_xmax()

void linear_table_t::set_xmax (
mha_real_t xmax )

this sets the x value for a past-the-end, not added mesh point.
Example:
t.set_xmin(100);
t.add_entry(0); // mesh point {100,0}
t.add_entry(1); // mesh point {110,1}
// the next mesh point would be at x=120, but we do not add this
t.set_xmax(120); // the x where the next mesh point would be
t.prepare();

now, t.interp(100) == 0; t.interp(110) == 1; t.interp(105) == 0.5;
© 2005-2018 HörTech gGmbH, Oldenburg

1012

5.282.3.6

CONTENTS

prepare()

void linear_table_t::prepare (
void

)

prepare computes the x distance of the mesh points based on the values given to set_xmin,
set_xmax, and the number of times that add_entry was called.

Precondition
set_xmin, set_xmax, add_entry functions must have been called before calling prepare,
add_entry must have been called at least twice.
Only after this method has been called, interp or lookup may be called.
5.282.3.7

clear()

void linear_table_t::clear (
void

) [virtual]

clear resets the state of this object to the state directly after construction.
mesh entries and x range are deleted.
interp and lookup may not be called after this function has been called unless prepare and
before that its precondition methods are called again.
Implements MHATableLookup::table_t (p. 1015).

5.282.4

5.282.4.1

Member Data Documentation

vy

mha_real_t∗ MHATableLookup::linear_table_t::vy [protected]

5.282.4.2

len

unsigned int MHATableLookup::linear_table_t::len [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

5.283

MHATableLookup::table_t Class Reference

5.282.4.3

1013

vec_y

vector< mha_real_t> MHATableLookup::linear_table_t::vec_y [private]

5.282.4.4

xmin

mha_real_t MHATableLookup::linear_table_t::xmin [private]

5.282.4.5

xmax

mha_real_t MHATableLookup::linear_table_t::xmax [private]

5.282.4.6

scalefac

mha_real_t MHATableLookup::linear_table_t::scalefac [private]

The documentation for this class was generated from the following files:
• mha_tablelookup.hh
• mha_tablelookup.cpp

5.283

MHATableLookup::table_t Class Reference

Inheritance diagram for MHATableLookup::table_t:

MHATableLookup::table_t

MHATableLookup::linear
_table_t

MHATableLookup::xy
_table_t

MHAOvlFilter::barkscale
::bark2hz_t

© 2005-2018 HörTech gGmbH, Oldenburg

MHAOvlFilter::barkscale
::hz2bark_t

1014

CONTENTS

Public Member Functions
•
•
•
•

table_t (void)
virtual ∼table_t (void)
virtual mha_real_t lookup ( mha_real_t) const =0
virtual mha_real_t interp ( mha_real_t) const =0

Protected Member Functions
• virtual void clear (void)=0

5.283.1

5.283.1.1

Constructor & Destructor Documentation

table_t()

table_t::table_t (
void

)

5.283.1.2 ∼table_t()

table_t::∼table_t (
void

5.283.2

) [virtual]

Member Function Documentation

5.283.2.1

lookup()

virtual

mha_real_t MHATableLookup::table_t::lookup (
mha_real_t

) const [pure virtual]

Implemented in MHATableLookup::xy_table_t (p. 1017), and MHATableLookup::linear_←table_t (p. 1010).

© 2005-2018 HörTech gGmbH, Oldenburg

5.284

MHATableLookup::xy_table_t Class Reference

5.283.2.2

interp()

virtual

mha_real_t MHATableLookup::table_t::interp (
mha_real_t

1015

) const [pure virtual]

Implemented in MHATableLookup::xy_table_t (p. 1017), and MHATableLookup::linear_←table_t (p. 1010).

5.283.2.3

clear()

virtual void MHATableLookup::table_t::clear (
void

) [protected], [pure virtual]

Implemented in MHATableLookup::xy_table_t (p. 1018), and MHATableLookup::linear_←table_t (p. 1012).
The documentation for this class was generated from the following files:
• mha_tablelookup.hh
• mha_tablelookup.cpp

5.284

MHATableLookup::xy_table_t Class Reference

Class for interpolation with non-equidistant x values.
Inheritance diagram for MHATableLookup::xy_table_t:

MHATableLookup::table_t

MHATableLookup::xy
_table_t

MHAOvlFilter::barkscale
::bark2hz_t

© 2005-2018 HörTech gGmbH, Oldenburg

MHAOvlFilter::barkscale
::hz2bark_t

1016

CONTENTS

Public Member Functions
• xy_table_t ()
• mha_real_t lookup ( mha_real_t x) const
Return the y-value at the position of the nearest x value below input.

• mha_real_t interp ( mha_real_t x) const
Linear interpolation function.

• void add_entry ( mha_real_t x, mha_real_t y)
Add a single x-y pair entry.

• void add_entry ( mha_real_t ∗pVX, mha_real_t ∗pVY, unsigned int len)
Add multiple entries at once.

• void clear ()
Clear the table and transformation functions.

• void set_xfun (float(∗pXFun)(float))
Set transformation function for x values.

• void set_yfun (float(∗pYFun)(float))
Set transformation function for y values during insertion.

• void set_xyfun (float(∗pYFun)(float, float))
Set transformation function for y values during insertion, based on x and y values.

• std::pair< mha_real_t, mha_real_t > get_xlimits () const
returns the min and max x of all mesh points that are stored in the lookup table, i.e.

Private Attributes
•
•
•
•

std::map< mha_real_t, mha_real_t > mXY
float(∗ xfun )(float)
float(∗ yfun )(float)
float(∗ xyfun )(float, float)

Additional Inherited Members

5.284.1

Detailed Description

Class for interpolation with non-equidistant x values.
Linear interpolation of the x-y table is performed. A transformation of x and y-values is possible;
if a transformation function is provided for the x-values, the same function is applied to the argument of xy_table_t::interp() (p. 1017) and xy_table_t::lookup() (p. 1017). The transformation
of y values is applied only during insertion into the table. Two functions for y-transformation
can be provided: a simple transformation which depends only on the y values, or a transformation which takes both (non-transformed) x and y value as an argument. The two-argument
transformation is applied before the one-argument transformation.
© 2005-2018 HörTech gGmbH, Oldenburg

5.284

MHATableLookup::xy_table_t Class Reference

5.284.2

Constructor & Destructor Documentation

5.284.2.1

xy_table_t()

xy_table_t::xy_table_t ( )

5.284.3

5.284.3.1

Member Function Documentation

lookup()

mha_real_t xy_table_t::lookup (
mha_real_t x ) const [virtual]

Return the y-value at the position of the nearest x value below input.
Parameters
x

Input value

Returns
y value at nearest x value below input.
Implements MHATableLookup::table_t (p. 1014).

5.284.3.2

interp()

mha_real_t xy_table_t::interp (
mha_real_t x ) const [virtual]

Linear interpolation function.
Parameters
x

x value

© 2005-2018 HörTech gGmbH, Oldenburg

1017

1018

CONTENTS

Returns
interpolated y value
Implements MHATableLookup::table_t (p. 1014).

5.284.3.3

add_entry() [1/2]

void xy_table_t::add_entry (
mha_real_t x,
mha_real_t y )

Add a single x-y pair entry.
Parameters
x
y

x value
corresponding y value

5.284.3.4

add_entry() [2/2]

void xy_table_t::add_entry (
mha_real_t ∗ pVX,
mha_real_t ∗ pVY,
unsigned int uLength )

Add multiple entries at once.
Parameters
pVX

array of x values

pVY

array of y values

uLength

Length of x and y arrays

5.284.3.5

clear()

void xy_table_t::clear (
void

) [virtual]

Clear the table and transformation functions.
Implements MHATableLookup::table_t (p. 1015).

© 2005-2018 HörTech gGmbH, Oldenburg

5.284

MHATableLookup::xy_table_t Class Reference

5.284.3.6

1019

set_xfun()

void xy_table_t::set_xfun (
float(∗)(float) fun )

Set transformation function for x values.
Parameters
fun

Transformation function.

5.284.3.7

set_yfun()

void xy_table_t::set_yfun (
float(∗)(float) fun )

Set transformation function for y values during insertion.
Parameters
fun

Transformation function.

5.284.3.8

set_xyfun()

void xy_table_t::set_xyfun (
float(∗)(float, float) fun )

Set transformation function for y values during insertion, based on x and y values.
Parameters
fun

Transformation function.

5.284.3.9

get_xlimits()

std::pair< mha_real_t, mha_real_t> MHATableLookup::xy_table_t::get_xlimits ( ) const
[inline]

returns the min and max x of all mesh points that are stored in the lookup table, i.e.
after transformation with xfun, if any. Not real-time safe
© 2005-2018 HörTech gGmbH, Oldenburg

1020

5.284.4

CONTENTS

Member Data Documentation

5.284.4.1

mXY

std::map< mha_real_t, mha_real_t> MHATableLookup::xy_table_t::mXY [private]

5.284.4.2

xfun

float(∗ MHATableLookup::xy_table_t::xfun) (float) [private]

5.284.4.3

yfun

float(∗ MHATableLookup::xy_table_t::yfun) (float) [private]

5.284.4.4

xyfun

float(∗ MHATableLookup::xy_table_t::xyfun) (float, float) [private]

The documentation for this class was generated from the following files:

• mha_tablelookup.hh
• mha_tablelookup.cpp

5.285

MHAWindow::bartlett_t Class Reference

Bartlett window.
© 2005-2018 HörTech gGmbH, Oldenburg

5.285

MHAWindow::bartlett_t Class Reference

1021

Inheritance diagram for MHAWindow::bartlett_t:

mha_wave_t

MHASignal::waveform_t

MHAWindow::base_t

MHAWindow::fun_t

MHAWindow::bartlett_t

Public Member Functions
• bartlett_t (unsigned int n)

Additional Inherited Members
5.285.1

Detailed Description

Bartlett window.

5.285.2

5.285.2.1

Constructor & Destructor Documentation

bartlett_t()

MHAWindow::bartlett_t::bartlett_t (
unsigned int n ) [inline]

The documentation for this class was generated from the following file:
• mha_windowparser.h
© 2005-2018 HörTech gGmbH, Oldenburg

1022

5.286

CONTENTS

MHAWindow::base_t Class Reference

Common base for window types.
Inheritance diagram for MHAWindow::base_t:

MHAWindow::bartlett_t

MHAWindow::blackman_t

mha_wave_t

MHASignal::waveform_t

MHAWindow::fun_t

MHAWindow::hamming_t

MHAWindow::user_t

MHAWindow::hanning_t

MHAWindow::base_t

MHAWindow::rect_t

Public Member Functions
• base_t (unsigned int len)
Constructor.

• base_t (const MHAWindow::base_t &src)
Copy constructor.

• void operator() ( mha_wave_t &) const
Apply window to waveform segment (reference)

• void operator() ( mha_wave_t ∗) const
Apply window to waveform segment (pointer)

• void ramp_begin ( mha_wave_t &) const
Apply a ramp at the begining.

• void ramp_end ( mha_wave_t &) const
Apply a ramp at the end.

Additional Inherited Members
5.286.1

Detailed Description

Common base for window types.

5.286.2

5.286.2.1

Constructor & Destructor Documentation

base_t() [1/2]

MHAWindow::base_t::base_t (
unsigned int len )

Constructor.

© 2005-2018 HörTech gGmbH, Oldenburg

5.286

MHAWindow::base_t Class Reference

Parameters
len

Window length in samples.

5.286.2.2

base_t() [2/2]

MHAWindow::base_t::base_t (
const

MHAWindow::base_t & src )

Copy constructor.
Parameters
src

Source to be copied

5.286.3

5.286.3.1

Member Function Documentation

operator()() [1/2]

void MHAWindow::base_t::operator() (
mha_wave_t & s ) const

Apply window to waveform segment (reference)

5.286.3.2

operator()() [2/2]

void MHAWindow::base_t::operator() (
mha_wave_t ∗ s ) const

Apply window to waveform segment (pointer)

5.286.3.3

ramp_begin()

void MHAWindow::base_t::ramp_begin (
mha_wave_t & s ) const

Apply a ramp at the begining.

© 2005-2018 HörTech gGmbH, Oldenburg

1023

1024

5.286.3.4

CONTENTS

ramp_end()

void MHAWindow::base_t::ramp_end (
mha_wave_t & s ) const

Apply a ramp at the end.
The documentation for this class was generated from the following files:
• mha_windowparser.h
• mha_windowparser.cpp

5.287

MHAWindow::blackman_t Class Reference

Blackman window.
Inheritance diagram for MHAWindow::blackman_t:

mha_wave_t

MHASignal::waveform_t

MHAWindow::base_t

MHAWindow::fun_t

MHAWindow::blackman_t

Public Member Functions
• blackman_t (unsigned int n)
© 2005-2018 HörTech gGmbH, Oldenburg

5.288

MHAWindow::fun_t Class Reference

1025

Additional Inherited Members

5.287.1

Detailed Description

Blackman window.

5.287.2

Constructor & Destructor Documentation

5.287.2.1

blackman_t()

MHAWindow::blackman_t::blackman_t (
unsigned int n ) [inline]

The documentation for this class was generated from the following file:
• mha_windowparser.h

5.288

MHAWindow::fun_t Class Reference

Generic window based on a generator function.
Inheritance diagram for MHAWindow::fun_t:

MHAWindow::bartlett_t

MHAWindow::blackman_t

mha_wave_t

MHASignal::waveform_t

MHAWindow::base_t

MHAWindow::fun_t

MHAWindow::hamming_t

MHAWindow::hanning_t

MHAWindow::rect_t

Public Member Functions
•

fun_t (unsigned int n, float(∗fun)(float), float xmin=-1, float xmax=1, bool min_←included=true, bool max_included=false)
Constructor.

© 2005-2018 HörTech gGmbH, Oldenburg

1026

CONTENTS

Additional Inherited Members
5.288.1

Detailed Description

Generic window based on a generator function.
The generator function should return a valid window function in the interval [-1,1[.

5.288.2

Constructor & Destructor Documentation

5.288.2.1

fun_t()

MHAWindow::fun_t::fun_t (
unsigned int n,
float(∗)(float) fun,
float xmin = -1,
float xmax = 1,
bool min_included = true,
bool max_included = false )

Constructor.
Parameters
n

Window length

fun

Generator function, i.e. MHAWindow::hanning() (p. 142)

xmin

Start value of window, i.e. -1 for full window or 0 for fade-out ramp.

xmax
min_included

Last value of window, i.e. 1 for full window
Flag if minimum value is included

max_included

Flag if maximum value is included

The documentation for this class was generated from the following files:

• mha_windowparser.h
• mha_windowparser.cpp

5.289

MHAWindow::hamming_t Class Reference

Hamming window.
© 2005-2018 HörTech gGmbH, Oldenburg

5.289

MHAWindow::hamming_t Class Reference

1027

Inheritance diagram for MHAWindow::hamming_t:

mha_wave_t

MHASignal::waveform_t

MHAWindow::base_t

MHAWindow::fun_t

MHAWindow::hamming_t

Public Member Functions
• hamming_t (unsigned int n)

Additional Inherited Members
5.289.1

Detailed Description

Hamming window.

5.289.2

5.289.2.1

Constructor & Destructor Documentation

hamming_t()

MHAWindow::hamming_t::hamming_t (
unsigned int n ) [inline]

The documentation for this class was generated from the following file:
• mha_windowparser.h
© 2005-2018 HörTech gGmbH, Oldenburg

1028

5.290

CONTENTS

MHAWindow::hanning_t Class Reference

von-Hann window
Inheritance diagram for MHAWindow::hanning_t:

mha_wave_t

MHASignal::waveform_t

MHAWindow::base_t

MHAWindow::fun_t

MHAWindow::hanning_t

Public Member Functions
• hanning_t (unsigned int n)

Additional Inherited Members
5.290.1

Detailed Description

von-Hann window

5.290.2

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.291

MHAWindow::rect_t Class Reference

5.290.2.1

1029

hanning_t()

MHAWindow::hanning_t::hanning_t (
unsigned int n ) [inline]

The documentation for this class was generated from the following file:

• mha_windowparser.h

5.291

MHAWindow::rect_t Class Reference

Rectangular window.
Inheritance diagram for MHAWindow::rect_t:

mha_wave_t

MHASignal::waveform_t

MHAWindow::base_t

MHAWindow::fun_t

MHAWindow::rect_t

Public Member Functions
• rect_t (unsigned int n)
© 2005-2018 HörTech gGmbH, Oldenburg

1030

CONTENTS

Additional Inherited Members
5.291.1

Detailed Description

Rectangular window.

5.291.2

Constructor & Destructor Documentation

5.291.2.1

rect_t()

MHAWindow::rect_t::rect_t (
unsigned int n ) [inline]

The documentation for this class was generated from the following file:
• mha_windowparser.h

5.292

MHAWindow::user_t Class Reference

User defined window.
Inheritance diagram for MHAWindow::user_t:

mha_wave_t

MHASignal::waveform_t

MHAWindow::base_t

MHAWindow::user_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.292

MHAWindow::user_t Class Reference

1031

Public Member Functions
• user_t (const std::vector< mha_real_t > &wnd)
Constructor.

Additional Inherited Members
5.292.1

Detailed Description

User defined window.

5.292.2

5.292.2.1

Constructor & Destructor Documentation

user_t()

MHAWindow::user_t::user_t (
const std::vector<

mha_real_t > & wnd )

Constructor.
Parameters
wnd

User defined window

The documentation for this class was generated from the following files:

• mha_windowparser.h
• mha_windowparser.cpp

© 2005-2018 HörTech gGmbH, Oldenburg

1032

5.293

CONTENTS

mon_t Class Reference

Inheritance diagram for mon_t:

mha_wave_t

MHAParser::base_t

MHASignal::waveform_t

MHAParser::monitor_t

MHA_AC::waveform_t

MHAParser::vfloat_mon_t

mon_t

Public Member Functions
• mon_t (unsigned int nch, std::string name, algo_comm_t ac, std::string base, MH←AParser::parser_t &p, std::string help)
• void store ()

Additional Inherited Members
5.293.1

5.293.1.1

Constructor & Destructor Documentation

mon_t()

mon_t::mon_t (
unsigned int nch,
std::string name,
algo_comm_t ac,
std::string base,
MHAParser::parser_t & p,
std::string help )

© 2005-2018 HörTech gGmbH, Oldenburg

5.294

multibandcompressor::fftfb_plug_t Class Reference

5.293.2

Member Function Documentation

5.293.2.1

1033

store()

void mon_t::store ( )

The documentation for this class was generated from the following file:
• rmslevel.cpp

5.294

multibandcompressor::fftfb_plug_t Class Reference

Inheritance diagram for multibandcompressor::fftfb_plug_t:

mha_wave_t

MHAOvlFilter::fspacing_t

MHASignal::waveform_t

MHAOvlFilter::fftfb_t

multibandcompressor
::fftfb_plug_t

Public Member Functions
• fftfb_plug_t ( MHAOvlFilter::fftfb_vars_t &, const mhaconfig_t &cfg, algo_comm_t
ac, std::string alg)
• void insert ()
© 2005-2018 HörTech gGmbH, Oldenburg

1034

CONTENTS

Private Attributes
• MHA_AC::waveform_t cfv
vector of nominal center frequencies / Hz

• MHA_AC::waveform_t efv
vector of edge frequencies / Hz

• MHA_AC::waveform_t bwv
vector of band-weigths (sum of squared fft-bin-weigths)/num_frames

Additional Inherited Members
5.294.1

5.294.1.1

Constructor & Destructor Documentation

fftfb_plug_t()

multibandcompressor::fftfb_plug_t::fftfb_plug_t (
MHAOvlFilter::fftfb_vars_t & vars,
const

mhaconfig_t & cfg,

algo_comm_t ac,
std::string alg )

5.294.2

5.294.2.1

Member Function Documentation

insert()

void multibandcompressor::fftfb_plug_t::insert ( )

5.294.3

5.294.3.1

Member Data Documentation

cfv

MHA_AC::waveform_t multibandcompressor::fftfb_plug_t::cfv [private]

vector of nominal center frequencies / Hz

© 2005-2018 HörTech gGmbH, Oldenburg

5.295

multibandcompressor::interface_t Class Reference

5.294.3.2

1035

efv

MHA_AC::waveform_t multibandcompressor::fftfb_plug_t::efv [private]

vector of edge frequencies / Hz

5.294.3.3

bwv

MHA_AC::waveform_t multibandcompressor::fftfb_plug_t::bwv [private]

vector of band-weigths (sum of squared fft-bin-weigths)/num_frames
The documentation for this class was generated from the following file:

• multibandcompressor.cpp

5.295

multibandcompressor::interface_t Class Reference

Inheritance diagram for multibandcompressor::interface_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< fftfb_plug_t >

MHAPlugin::plugin_t
< fftfb_plug_t >

MHAOvlFilter::fftfb
_vars_t

multibandcompressor
::interface_t

© 2005-2018 HörTech gGmbH, Oldenburg

1036

CONTENTS

Public Member Functions
•
•
•
•

interface_t (const algo_comm_t &, const std::string &, const std::string &)
void prepare ( mhaconfig_t &)
void release ()
mha_spec_t ∗ process ( mha_spec_t ∗)

Private Member Functions
• void update_cfg ()

Private Attributes
•
•
•
•
•
•

int num_channels
DynComp::dc_afterburn_t burn
MHAEvents::patchbay_t< interface_t > patchbay
std::string algo
MHAParser::mhapluginloader_t plug
plugin_signals_t ∗ plug_sigs

Additional Inherited Members
5.295.1

5.295.1.1

Constructor & Destructor Documentation

interface_t()

multibandcompressor::interface_t::interface_t (
const

algo_comm_t & ac_,

const std::string & th,
const std::string & al )

Default values are set and MHA configuration variables registered into the parser.
Parameters
ac←- algorithm communication handle
_
th
chain name
al
algorithm name

© 2005-2018 HörTech gGmbH, Oldenburg

5.295

multibandcompressor::interface_t Class Reference

5.295.2

Member Function Documentation

5.295.2.1

1037

prepare()

void multibandcompressor::interface_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< fftfb_plug_t > (p. 884).

5.295.2.2

release()

void multibandcompressor::interface_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< fftfb_plug_t > (p. 885).

5.295.2.3

process()

mha_spec_t ∗ multibandcompressor::interface_t::process (
mha_spec_t ∗ s )

5.295.2.4

update_cfg()

void multibandcompressor::interface_t::update_cfg ( ) [private]

5.295.3

5.295.3.1

Member Data Documentation

num_channels

int multibandcompressor::interface_t::num_channels [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1038

5.295.3.2

CONTENTS

burn

DynComp::dc_afterburn_t multibandcompressor::interface_t::burn [private]

5.295.3.3

patchbay

MHAEvents::patchbay_t< interface_t> multibandcompressor::interface_t::patchbay
[private]

5.295.3.4

algo

std::string multibandcompressor::interface_t::algo [private]

5.295.3.5

plug

MHAParser::mhapluginloader_t multibandcompressor::interface_t::plug [private]

5.295.3.6

plug_sigs

plugin_signals_t∗ multibandcompressor::interface_t::plug_sigs [private]

The documentation for this class was generated from the following file:
• multibandcompressor.cpp

5.296

multibandcompressor::plugin_signals_t Class Reference

Public Member Functions
• plugin_signals_t (unsigned int channels, unsigned int bands)
• void update_levels ( MHAOvlFilter::fftfb_t ∗, mha_spec_t ∗s_in)
• void apply_gains ( MHAOvlFilter::fftfb_t ∗, DynComp::dc_afterburn_t &burn, mha←_spec_t ∗s_out)

Public Attributes
• mha_wave_t ∗ plug_output
© 2005-2018 HörTech gGmbH, Oldenburg

5.296

multibandcompressor::plugin_signals_t Class Reference1039

Private Attributes
• MHASignal::waveform_t plug_level
• MHASignal::waveform_t gain

5.296.1

5.296.1.1

Constructor & Destructor Documentation

plugin_signals_t()

multibandcompressor::plugin_signals_t::plugin_signals_t (
unsigned int channels,
unsigned int bands )

5.296.2

5.296.2.1

Member Function Documentation

update_levels()

void multibandcompressor::plugin_signals_t::update_levels (
MHAOvlFilter::fftfb_t ∗ pFb,
mha_spec_t ∗ s_in )

5.296.2.2

apply_gains()

void multibandcompressor::plugin_signals_t::apply_gains (
MHAOvlFilter::fftfb_t ∗ pFb,
DynComp::dc_afterburn_t & burn,
mha_spec_t ∗ s_out )

5.296.3

5.296.3.1

Member Data Documentation

plug_level

MHASignal::waveform_t multibandcompressor::plugin_signals_t::plug_level [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1040

5.296.3.2

CONTENTS

gain

MHASignal::waveform_t multibandcompressor::plugin_signals_t::gain [private]

5.296.3.3

plug_output

mha_wave_t∗ multibandcompressor::plugin_signals_t::plug_output

The documentation for this class was generated from the following file:
• multibandcompressor.cpp

5.297

nlms_t Class Reference

Inheritance diagram for nlms_t:

MHAParser::base_t

MHAPlugin::config_t
< rt_nlms_t >

MHAParser::parser_t

MHAPlugin::plugin_t
< rt_nlms_t >

nlms_t

Public Member Functions
•
•
•
•

nlms_t ( algo_comm_t, const char ∗, const char ∗)
void prepare ( mhaconfig_t &)
void release ()
mha_wave_t ∗ process ( mha_wave_t ∗)
© 2005-2018 HörTech gGmbH, Oldenburg

5.297

nlms_t Class Reference

Private Member Functions
• void update ()

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•

MHAParser::float_t rho
MHAParser::float_t c
MHAParser::int_t ntaps
MHAParser::string_t name_u
MHAParser::string_t name_d
MHAParser::kw_t normtype
MHAParser::kw_t estimtype
MHAParser::float_t lambda_smoothing_power
MHAParser::string_t name_e
MHAParser::string_t name_f
MHAParser::int_t n_no_update
std::string algo
MHAEvents::patchbay_t< nlms_t > patchbay

Additional Inherited Members
5.297.1

5.297.1.1

Constructor & Destructor Documentation

nlms_t()

nlms_t::nlms_t (
algo_comm_t ac,
const char ∗ ,
const char ∗ ialg )

5.297.2

5.297.2.1

Member Function Documentation

prepare()

void nlms_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< rt_nlms_t > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

1041

1042

5.297.2.2

CONTENTS

release()

void nlms_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< rt_nlms_t > (p. 885).

5.297.2.3

process()

mha_wave_t ∗ nlms_t::process (
mha_wave_t ∗ s )

5.297.2.4

update()

void nlms_t::update ( ) [private]

5.297.3

5.297.3.1

Member Data Documentation

rho

MHAParser::float_t nlms_t::rho [private]

5.297.3.2

c

MHAParser::float_t nlms_t::c [private]

5.297.3.3

ntaps

MHAParser::int_t nlms_t::ntaps [private]

5.297.3.4

name_u

MHAParser::string_t nlms_t::name_u [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.297

nlms_t Class Reference

5.297.3.5

name_d

MHAParser::string_t nlms_t::name_d [private]

5.297.3.6

normtype

MHAParser::kw_t nlms_t::normtype [private]

5.297.3.7

estimtype

MHAParser::kw_t nlms_t::estimtype [private]

5.297.3.8

lambda_smoothing_power

MHAParser::float_t nlms_t::lambda_smoothing_power [private]

5.297.3.9

name_e

MHAParser::string_t nlms_t::name_e [private]

5.297.3.10

name_f

MHAParser::string_t nlms_t::name_f [private]

5.297.3.11

n_no_update

MHAParser::int_t nlms_t::n_no_update [private]

5.297.3.12

algo

std::string nlms_t::algo [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1043

1044

5.297.3.13

CONTENTS

patchbay

MHAEvents::patchbay_t< nlms_t> nlms_t::patchbay [private]

The documentation for this class was generated from the following file:
• nlms_wave.cpp

5.298

noise_t Class Reference

Inheritance diagram for noise_t:

MHAParser::base_t

MHAPlugin::config_t
< cfg_t >

MHAParser::parser_t

MHAPlugin::plugin_t
< cfg_t >

noise_t

Public Member Functions
•
•
•
•
•

noise_t (const algo_comm_t &, const std::string &, const std::string &)
mha_wave_t ∗ process ( mha_wave_t ∗)
mha_spec_t ∗ process ( mha_spec_t ∗)
void prepare ( mhaconfig_t &)
void update_cfg ()

Private Attributes
•
•
•
•

MHAParser::float_t lev
MHAParser::kw_t mode
MHAParser::float_t frozennoise_length
MHAEvents::patchbay_t< noise_t > patchbay
© 2005-2018 HörTech gGmbH, Oldenburg

5.298

noise_t Class Reference

1045

Additional Inherited Members
5.298.1

5.298.1.1

Constructor & Destructor Documentation

noise_t()

noise_t::noise_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

5.298.2

5.298.2.1

)

Member Function Documentation

process() [1/2]

mha_wave_t ∗ noise_t::process (
mha_wave_t ∗ s )

5.298.2.2

process() [2/2]

mha_spec_t ∗ noise_t::process (
mha_spec_t ∗ s )

5.298.2.3

prepare()

void noise_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 884).

5.298.2.4

update_cfg()

void noise_t::update_cfg ( )

© 2005-2018 HörTech gGmbH, Oldenburg

1046

5.298.3

5.298.3.1

CONTENTS

Member Data Documentation

lev

MHAParser::float_t noise_t::lev [private]

5.298.3.2

mode

MHAParser::kw_t noise_t::mode [private]

5.298.3.3

frozennoise_length

MHAParser::float_t noise_t::frozennoise_length [private]

5.298.3.4

patchbay

MHAEvents::patchbay_t< noise_t> noise_t::patchbay [private]

The documentation for this class was generated from the following file:

• noise.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.299

noisePowProposedScale::interface_t Class Reference

5.299

noisePowProposedScale::interface_t Class Reference

1047

Inheritance diagram for noisePowProposedScale::interface_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< noisePowProposed >

MHAPlugin::plugin_t
< noisePowProposed >

noisePowProposedScale
::interface_t

Public Member Functions
• interface_t (const algo_comm_t &, const std::string &, const std::string &)
• mha_spec_t ∗ process ( mha_spec_t ∗)
• void prepare ( mhaconfig_t &)

Private Member Functions
• void update_cfg ()

Private Attributes
•
•
•
•
•
•

MHAParser::float_t alphaPH1mean
MHAParser::float_t alphaPSD
MHAParser::float_t q
MHAParser::float_t xiOptDb
std::string name
MHAEvents::patchbay_t< interface_t > patchbay

© 2005-2018 HörTech gGmbH, Oldenburg

1048

CONTENTS

Additional Inherited Members
5.299.1

5.299.1.1

Constructor & Destructor Documentation

interface_t()

noisePowProposedScale::interface_t::interface_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string & iname )

5.299.2

5.299.2.1

Member Function Documentation

process()

mha_spec_t ∗ noisePowProposedScale::interface_t::process (
mha_spec_t ∗ s )

5.299.2.2

prepare()

void noisePowProposedScale::interface_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< noisePowProposed > (p. 884).

5.299.2.3

update_cfg()

void noisePowProposedScale::interface_t::update_cfg (
void

5.299.3

) [private]

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.300 noisePowProposedScale::noisePowProposed Class
Reference
5.299.3.1

1049

alphaPH1mean

MHAParser::float_t noisePowProposedScale::interface_t::alphaPH1mean [private]

5.299.3.2

alphaPSD

MHAParser::float_t noisePowProposedScale::interface_t::alphaPSD [private]

5.299.3.3

q

MHAParser::float_t noisePowProposedScale::interface_t::q [private]

5.299.3.4

xiOptDb

MHAParser::float_t noisePowProposedScale::interface_t::xiOptDb [private]

5.299.3.5

name

std::string noisePowProposedScale::interface_t::name [private]

5.299.3.6

patchbay

MHAEvents::patchbay_t< interface_t> noisePowProposedScale::interface_t::patchbay
[private]

The documentation for this class was generated from the following file:
• noisePowProposedScale.cpp

5.300

noisePowProposedScale::noisePowProposed Class Reference

Public Member Functions
• noisePowProposed (const mhaconfig_t &cf, algo_comm_t ac, const std::string
&name, float alphaPH1mean, float alphaPSD, float q, float xiOptDb)
• void process ( mha_spec_t ∗noisyDftFrame)
• void insert ()
© 2005-2018 HörTech gGmbH, Oldenburg

1050

CONTENTS

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

MHASignal::waveform_t noisyPer
MHASignal::waveform_t PH1mean
MHA_AC::waveform_t noisePow
MHA_AC::waveform_t inputPow
MHA_AC::waveform_t snrPost1Debug
MHA_AC::waveform_t GLRDebug
MHA_AC::waveform_t PH1Debug
MHA_AC::waveform_t estimateDebug
MHA_AC::spectrum_t inputSpec
float alphaPH1mean_
float alphaPSD_
float priorFact
float xiOpt
float logGLRFact
float GLRexp
int frameno

5.300.1

5.300.1.1

Constructor & Destructor Documentation

noisePowProposed()

noisePowProposedScale::noisePowProposed::noisePowProposed (
const

mhaconfig_t & cf,

algo_comm_t ac,
const std::string & name,
float alphaPH1mean,
float alphaPSD,
float q,
float xiOptDb )

5.300.2

5.300.2.1

Member Function Documentation

process()

void noisePowProposedScale::noisePowProposed::process (
mha_spec_t ∗ noisyDftFrame )

© 2005-2018 HörTech gGmbH, Oldenburg

5.300 noisePowProposedScale::noisePowProposed Class
Reference
5.300.2.2

1051

insert()

void noisePowProposedScale::noisePowProposed::insert ( ) [inline]

5.300.3

5.300.3.1

Member Data Documentation

noisyPer

MHASignal::waveform_t noisePowProposedScale::noisePowProposed::noisyPer [private]

5.300.3.2

PH1mean

MHASignal::waveform_t noisePowProposedScale::noisePowProposed::PH1mean [private]

5.300.3.3

noisePow

MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::noisePow [private]

5.300.3.4

inputPow

MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::inputPow [private]

5.300.3.5

snrPost1Debug

MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::snrPost1Debug [private]

5.300.3.6

GLRDebug

MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::GLRDebug [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1052

5.300.3.7

CONTENTS

PH1Debug

MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::PH1Debug [private]

5.300.3.8

estimateDebug

MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::estimateDebug [private]

5.300.3.9

inputSpec

MHA_AC::spectrum_t noisePowProposedScale::noisePowProposed::inputSpec [private]

5.300.3.10

alphaPH1mean_

float noisePowProposedScale::noisePowProposed::alphaPH1mean_ [private]

5.300.3.11

alphaPSD_

float noisePowProposedScale::noisePowProposed::alphaPSD_ [private]

5.300.3.12

priorFact

float noisePowProposedScale::noisePowProposed::priorFact [private]

5.300.3.13

xiOpt

float noisePowProposedScale::noisePowProposed::xiOpt [private]

5.300.3.14

logGLRFact

float noisePowProposedScale::noisePowProposed::logGLRFact [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.301

overlapadd::overlapadd_if_t Class Reference

5.300.3.15

1053

GLRexp

float noisePowProposedScale::noisePowProposed::GLRexp [private]

5.300.3.16

frameno

int noisePowProposedScale::noisePowProposed::frameno [private]

The documentation for this class was generated from the following file:
• noisePowProposedScale.cpp

5.301

overlapadd::overlapadd_if_t Class Reference

Inheritance diagram for overlapadd::overlapadd_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< overlapadd_t >

MHAPlugin::plugin_t
< overlapadd_t >

overlapadd::overlapadd_if_t

Public Member Functions
•
•
•
•
•

overlapadd_if_t (const algo_comm_t &, const std::string &, const std::string &)
∼overlapadd_if_t ()
void prepare ( mhaconfig_t &)
void release ()
mha_wave_t ∗ process ( mha_wave_t ∗)

© 2005-2018 HörTech gGmbH, Oldenburg

1054

CONTENTS

Private Member Functions
• void update ()

Private Attributes
• MHAEvents::patchbay_t< overlapadd_if_t > patchbay
• MHAParser::int_t nfft
FFT length to be used, zero-padding is FFT length-wndlength.

• MHAParser::int_t nwnd
Window length to be used (overlap is 1-fragsize/wndlength)

• MHAParser::float_t wndpos
Relative position of zero padding (0 end, 0.5 center, 1 start)

•
•
•
•
•
•
•
•
•

MHAParser::window_t window
MHAParser::float_t wndexp
MHAParser::window_t zerowindow
MHAParser::mhapluginloader_t plugloader
MHAParser::float_mon_t prescale
MHAParser::float_mon_t postscale
std::string algo
mhaconfig_t cf_in
mhaconfig_t cf_out

Additional Inherited Members

5.301.1

5.301.1.1

Constructor & Destructor Documentation

overlapadd_if_t()

overlapadd::overlapadd_if_t::overlapadd_if_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string & ialg )

5.301.1.2 ∼overlapadd_if_t()

overlapadd::overlapadd_if_t::∼overlapadd_if_t ( )

© 2005-2018 HörTech gGmbH, Oldenburg

5.301

overlapadd::overlapadd_if_t Class Reference

5.301.2

Member Function Documentation

5.301.2.1

1055

prepare()

void overlapadd::overlapadd_if_t::prepare (
mhaconfig_t & t ) [virtual]

Implements MHAPlugin::plugin_t< overlapadd_t > (p. 884).

5.301.2.2

release()

void overlapadd::overlapadd_if_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< overlapadd_t > (p. 885).

5.301.2.3

process()

mha_wave_t ∗ overlapadd::overlapadd_if_t::process (
mha_wave_t ∗ wave_in )

5.301.2.4

update()

void overlapadd::overlapadd_if_t::update ( ) [private]

5.301.3

5.301.3.1

Member Data Documentation

patchbay

MHAEvents::patchbay_t< overlapadd_if_t> overlapadd::overlapadd_if_t::patchbay [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1056

5.301.3.2

CONTENTS

nfft

MHAParser::int_t overlapadd::overlapadd_if_t::nfft [private]

FFT length to be used, zero-padding is FFT length-wndlength.

5.301.3.3

nwnd

MHAParser::int_t overlapadd::overlapadd_if_t::nwnd [private]

Window length to be used (overlap is 1-fragsize/wndlength)

5.301.3.4

wndpos

MHAParser::float_t overlapadd::overlapadd_if_t::wndpos [private]

Relative position of zero padding (0 end, 0.5 center, 1 start)

5.301.3.5

window

MHAParser::window_t overlapadd::overlapadd_if_t::window [private]

5.301.3.6

wndexp

MHAParser::float_t overlapadd::overlapadd_if_t::wndexp [private]

5.301.3.7

zerowindow

MHAParser::window_t overlapadd::overlapadd_if_t::zerowindow [private]

5.301.3.8

plugloader

MHAParser::mhapluginloader_t overlapadd::overlapadd_if_t::plugloader [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.302

overlapadd::overlapadd_t Class Reference

5.301.3.9

1057

prescale

MHAParser::float_mon_t overlapadd::overlapadd_if_t::prescale [private]

5.301.3.10

postscale

MHAParser::float_mon_t overlapadd::overlapadd_if_t::postscale [private]

5.301.3.11

algo

std::string overlapadd::overlapadd_if_t::algo [private]

5.301.3.12

cf_in

mhaconfig_t overlapadd::overlapadd_if_t::cf_in [private]

5.301.3.13

cf_out

mhaconfig_t overlapadd::overlapadd_if_t::cf_out [private]

The documentation for this class was generated from the following file:
• overlapadd.cpp

5.302

overlapadd::overlapadd_t Class Reference

Public Member Functions
• overlapadd_t ( mhaconfig_t spar_in, mhaconfig_t spar_out, float wexp, float wndpos,
const MHAParser::window_t &window, const MHAParser::window_t &zerowindow,
float &prescale_fac, float &postscale_fac)
• ∼overlapadd_t ()
• mha_spec_t ∗ ola1 ( mha_wave_t ∗)
• mha_wave_t ∗ ola2 ( mha_spec_t ∗)
© 2005-2018 HörTech gGmbH, Oldenburg

1058

CONTENTS

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•

mha_fft_t fft
MHAWindow::base_t prewnd
MHAWindow::base_t postwnd
MHASignal::waveform_t wave_in1
MHASignal::waveform_t wave_out1
MHASignal::spectrum_t spec_in
MHASignal::waveform_t calc_out
MHASignal::waveform_t out_buf
MHASignal::waveform_t write_buf
unsigned int n_zero
unsigned int n_pad1
unsigned int n_pad2

5.302.1

5.302.1.1

Constructor & Destructor Documentation

overlapadd_t()

overlapadd::overlapadd_t::overlapadd_t (
mhaconfig_t spar_in,
mhaconfig_t spar_out,
float wexp,
float wndpos,
const

MHAParser::window_t & window,

const

MHAParser::window_t & zerowindow,

float & prescale_fac,
float & postscale_fac )

5.302.1.2 ∼overlapadd_t()
overlapadd::overlapadd_t::∼overlapadd_t ( )

5.302.2

5.302.2.1

Member Function Documentation

ola1()

mha_spec_t ∗ overlapadd::overlapadd_t::ola1 (
mha_wave_t ∗ s )

© 2005-2018 HörTech gGmbH, Oldenburg

5.302

5.302.2.2

overlapadd::overlapadd_t Class Reference

1059

ola2()

mha_wave_t ∗ overlapadd::overlapadd_t::ola2 (
mha_spec_t ∗ s )

5.302.3

5.302.3.1

Member Data Documentation

fft

mha_fft_t overlapadd::overlapadd_t::fft [private]

5.302.3.2

prewnd

MHAWindow::base_t overlapadd::overlapadd_t::prewnd [private]

5.302.3.3

postwnd

MHAWindow::base_t overlapadd::overlapadd_t::postwnd [private]

5.302.3.4

wave_in1

MHASignal::waveform_t overlapadd::overlapadd_t::wave_in1 [private]

5.302.3.5

wave_out1

MHASignal::waveform_t overlapadd::overlapadd_t::wave_out1 [private]

5.302.3.6

spec_in

MHASignal::spectrum_t overlapadd::overlapadd_t::spec_in [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1060

5.302.3.7

CONTENTS

calc_out

MHASignal::waveform_t overlapadd::overlapadd_t::calc_out [private]

5.302.3.8

out_buf

MHASignal::waveform_t overlapadd::overlapadd_t::out_buf [private]

5.302.3.9

write_buf

MHASignal::waveform_t overlapadd::overlapadd_t::write_buf [private]

5.302.3.10

n_zero

unsigned int overlapadd::overlapadd_t::n_zero [private]

5.302.3.11

n_pad1

unsigned int overlapadd::overlapadd_t::n_pad1 [private]

5.302.3.12

n_pad2

unsigned int overlapadd::overlapadd_t::n_pad2 [private]

The documentation for this class was generated from the following file:

• overlapadd.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.303

parser_int_dyn Class Reference

5.303

parser_int_dyn Class Reference

1061

Inheritance diagram for parser_int_dyn:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::variable_t

MHAParser::range_var_t

MHAParser::int_t

parser_int_dyn

Public Member Functions
• parser_int_dyn (const std::string &help_text, const std::string &initial_value, const std←::string & range)
• void set_max_angle_ind (unsigned int max_ind)

Additional Inherited Members

5.303.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1062

5.303.1.1

CONTENTS

parser_int_dyn()

parser_int_dyn::parser_int_dyn (
const std::string & help_text,
const std::string & initial_value,
const std::string & range ) [inline]

5.303.2

Member Function Documentation

5.303.2.1

set_max_angle_ind()

void parser_int_dyn::set_max_angle_ind (
unsigned int max_ind ) [inline]

The documentation for this class was generated from the following file:
• steerbf.h

5.304

plug_t Class Reference

Inheritance diagram for plug_t:

PluginLoader::config
_file_splitter_t

MHAKernel::algo_comm
_class_t

MHAParser::c_ifc_parser_t

PluginLoader::mhapluginloader_t

plug_t
MHAParser::base_t

PluginLoader::fourway
_processor_t

Public Member Functions
•
•
•
•
•
•

plug_t (const std::string & libname, const std::string &chain, const std::string &algo)
∼plug_t () throw ()
MHAProc_wave2wave_t get_process_wave ()
MHAProc_wave2spec_t get_process_spec ()
void ∗ get_handle ()
algo_comm_t get_ac ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.304

plug_t Class Reference

1063

Additional Inherited Members

5.304.1

5.304.1.1

Constructor & Destructor Documentation

plug_t()

plug_t::plug_t (
const std::string & libname,
const std::string & chain,
const std::string & algo )

5.304.1.2 ∼plug_t()

plug_t::∼plug_t ( ) throw )

5.304.2

5.304.2.1

[inline]

Member Function Documentation

get_process_wave()

MHAProc_wave2wave_t plug_t::get_process_wave ( )

5.304.2.2

get_process_spec()

MHAProc_wave2spec_t plug_t::get_process_spec ( )

5.304.2.3

get_handle()

void ∗ plug_t::get_handle ( )

© 2005-2018 HörTech gGmbH, Oldenburg

1064

5.304.2.4

CONTENTS

get_ac()

algo_comm_t plug_t::get_ac ( ) [inline]

The documentation for this class was generated from the following file:
• analysispath.cpp

5.305

plugin_interface_t Class Reference

Inheritance diagram for plugin_interface_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< example5_t >

MHAPlugin::plugin_t
< example5_t >

plugin_interface_t

Public Member Functions
• plugin_interface_t (const algo_comm_t &, const std::string &, const std::string &)
• mha_spec_t ∗ process ( mha_spec_t ∗)
• void prepare ( mhaconfig_t &)

Private Member Functions
• void update_cfg ()
© 2005-2018 HörTech gGmbH, Oldenburg

5.305

plugin_interface_t Class Reference

Private Attributes
• MHAParser::int_t scale_ch
• MHAParser::float_t factor
• MHAEvents::patchbay_t< plugin_interface_t > patchbay

Additional Inherited Members
5.305.1

5.305.1.1

Constructor & Destructor Documentation

plugin_interface_t()

plugin_interface_t::plugin_interface_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

5.305.2

5.305.2.1

)

Member Function Documentation

process()

mha_spec_t ∗ plugin_interface_t::process (
mha_spec_t ∗ spec )

5.305.2.2

prepare()

void plugin_interface_t::prepare (
mhaconfig_t & tfcfg ) [virtual]

Implements MHAPlugin::plugin_t< example5_t > (p. 884).

5.305.2.3

update_cfg()

void plugin_interface_t::update_cfg ( ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1065

1066

5.305.3

CONTENTS

Member Data Documentation

5.305.3.1

scale_ch

MHAParser::int_t plugin_interface_t::scale_ch [private]

5.305.3.2

factor

MHAParser::float_t plugin_interface_t::factor [private]

5.305.3.3

patchbay

MHAEvents::patchbay_t< plugin_interface_t> plugin_interface_t::patchbay [private]

The documentation for this class was generated from the following file:
• example5.cpp

5.306

pluginbrowser_t Class Reference

Public Member Functions
•
•
•
•
•
•
•
•

pluginbrowser_t ()
void get_paths ()
plugindescription_t scan_plugin (const std::string &name)
void add_plugins ()
void clear_plugins ()
void scan_plugins ()
void add_plugin (const std::string &name)
std::list< plugindescription_t > get_plugins () const

Private Attributes
•
•
•
•

std::string plugin_extension
std::list< std::string > library_paths
std::list< plugindescription_t > plugins
std::map< std::string, pluginloader_t ∗ > p
© 2005-2018 HörTech gGmbH, Oldenburg

5.306

pluginbrowser_t Class Reference

5.306.1

Constructor & Destructor Documentation

5.306.1.1

pluginbrowser_t()

pluginbrowser_t::pluginbrowser_t ( )

5.306.2

5.306.2.1

Member Function Documentation

get_paths()

void pluginbrowser_t::get_paths ( )

5.306.2.2

scan_plugin()

plugindescription_t pluginbrowser_t::scan_plugin (
const std::string & name )

5.306.2.3

add_plugins()

void pluginbrowser_t::add_plugins ( )

5.306.2.4

clear_plugins()

void pluginbrowser_t::clear_plugins ( )

5.306.2.5

scan_plugins()

void pluginbrowser_t::scan_plugins ( )

© 2005-2018 HörTech gGmbH, Oldenburg

1067

1068

5.306.2.6

CONTENTS

add_plugin()

void pluginbrowser_t::add_plugin (
const std::string & name )

5.306.2.7

get_plugins()

std::list< plugindescription_t> pluginbrowser_t::get_plugins ( ) const [inline]

5.306.3

5.306.3.1

Member Data Documentation

plugin_extension

std::string pluginbrowser_t::plugin_extension [private]

5.306.3.2

library_paths

std::list pluginbrowser_t::library_paths [private]

5.306.3.3

plugins

std::list< plugindescription_t> pluginbrowser_t::plugins [private]

5.306.3.4

p

std::map pluginbrowser_t::p [private]

The documentation for this class was generated from the following files:
• pluginbrowser.h
• pluginbrowser.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.307

plugindescription_t Class Reference

5.307

plugindescription_t Class Reference

Public Attributes
•
•
•
•
•
•
•
•
•
•

std::string name
std::string fullname
std::string documentation
std::vector< std::string > categories
bool wave2wave
bool wave2spec
bool spec2wave
bool spec2spec
std::vector< std::string > query_cmds
std::map< std::string, std::string > queries

5.307.1

5.307.1.1

Member Data Documentation

name

std::string plugindescription_t::name

5.307.1.2

fullname

std::string plugindescription_t::fullname

5.307.1.3

documentation

std::string plugindescription_t::documentation

5.307.1.4

categories

std::vector plugindescription_t::categories

© 2005-2018 HörTech gGmbH, Oldenburg

1069

1070

5.307.1.5

CONTENTS

wave2wave

bool plugindescription_t::wave2wave

5.307.1.6

wave2spec

bool plugindescription_t::wave2spec

5.307.1.7

spec2wave

bool plugindescription_t::spec2wave

5.307.1.8

spec2spec

bool plugindescription_t::spec2spec

5.307.1.9

query_cmds

std::vector plugindescription_t::query_cmds

5.307.1.10

queries

std::map plugindescription_t::queries

The documentation for this class was generated from the following file:

• pluginbrowser.h
© 2005-2018 HörTech gGmbH, Oldenburg

5.308

PluginLoader::config_file_splitter_t Class Reference

5.308

PluginLoader::config_file_splitter_t Class Reference

1071

Inheritance diagram for PluginLoader::config_file_splitter_t:

PluginLoader::config
_file_splitter_t

PluginLoader::mhapluginloader_t

mhaplug_cfg_t

plug_t

pluginloader_t

Public Member Functions
•
•
•
•
•

config_file_splitter_t (const std::string &name)
const std::string & get_configname () const
const std::string & get_libname () const
const std::string & get_origname () const
const std::string & get_configfile () const

Private Attributes
•
•
•
•

std::string
std::string
std::string
std::string

5.308.1

5.308.1.1

libname
configname
origname
configfile

Constructor & Destructor Documentation

config_file_splitter_t()

PluginLoader::config_file_splitter_t::config_file_splitter_t (
const std::string & name )

© 2005-2018 HörTech gGmbH, Oldenburg

1072

5.308.2

CONTENTS

Member Function Documentation

5.308.2.1

get_configname()

const std::string& PluginLoader::config_file_splitter_t::get_configname ( ) const
[inline]

5.308.2.2

get_libname()

const std::string& PluginLoader::config_file_splitter_t::get_libname ( ) const [inline]

5.308.2.3

get_origname()

const std::string& PluginLoader::config_file_splitter_t::get_origname ( ) const
[inline]

5.308.2.4

get_configfile()

const std::string& PluginLoader::config_file_splitter_t::get_configfile ( ) const
[inline]

5.308.3

5.308.3.1

Member Data Documentation

libname

std::string PluginLoader::config_file_splitter_t::libname [private]

5.308.3.2

configname

std::string PluginLoader::config_file_splitter_t::configname [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.309

PluginLoader::fourway_processor_t Class Reference

5.308.3.3

1073

origname

std::string PluginLoader::config_file_splitter_t::origname [private]

5.308.3.4

configfile

std::string PluginLoader::config_file_splitter_t::configfile [private]

The documentation for this class was generated from the following files:

• mhapluginloader.h
• mhapluginloader.cpp

5.309

PluginLoader::fourway_processor_t Class Reference

This abstract class defines the interface for classes that implement all types of signal domain
processing supported by the MHA: wave2wave, spec2spec, wave2spec, and spec2wave.
Inheritance diagram for PluginLoader::fourway_processor_t:

PluginLoader::fourway
_processor_t

PluginLoader::mhapluginloader_t

mhaplug_cfg_t

© 2005-2018 HörTech gGmbH, Oldenburg

plug_t

pluginloader_t

1074

CONTENTS

Public Member Functions
• virtual void process ( mha_wave_t ∗s_in, mha_wave_t ∗∗s_out)=0
Pure waveform processing.

• virtual void process ( mha_spec_t ∗s_in, mha_spec_t ∗∗s_out)=0
Pure spectrum processing.

• virtual void process ( mha_wave_t ∗s_in, mha_spec_t ∗∗s_out)=0
Signal processing with domain transformation from waveform to spectrum.

• virtual void process ( mha_spec_t ∗s_in, mha_wave_t ∗∗s_out)=0
Signal processing with domain transformation from spectrum to waveform.

• virtual void prepare ( mhaconfig_t &settings)=0
Prepares the processor for signal processing.

• virtual void release ()=0
Resources allocated for signal processing in fourway_processor_t::prepare ( p. 1076) are
released here in fourway_processor_t::release ( p. 1076).

• virtual std::string parse (const std::string &query)=0
Parser interface.

• virtual ∼fourway_processor_t ()
Classes with virtual methods need virtual destructor.

5.309.1

Detailed Description

This abstract class defines the interface for classes that implement all types of signal domain
processing supported by the MHA: wave2wave, spec2spec, wave2spec, and spec2wave.
For supporting different output domains for the same input domain, the processing methods
are overloaded with respect to input domain and output domain.
5.309.2

Constructor & Destructor Documentation

5.309.2.1 ∼fourway_processor_t()
virtual PluginLoader::fourway_processor_t::∼fourway_processor_t ( ) [inline], [virtual]

Classes with virtual methods need virtual destructor.
This destructor is empty.
5.309.3

5.309.3.1

Member Function Documentation

process() [1/4]

virtual void PluginLoader::fourway_processor_t::process (
mha_wave_t ∗ s_in,
mha_wave_t ∗∗ s_out ) [pure virtual]

Pure waveform processing.

© 2005-2018 HörTech gGmbH, Oldenburg

5.309

PluginLoader::fourway_processor_t Class Reference

1075

Parameters
s_in

input waveform signal

s_out

output waveform signal

Implemented in PluginLoader::mhapluginloader_t (p. 1080).

5.309.3.2

process() [2/4]

virtual void PluginLoader::fourway_processor_t::process (
mha_spec_t ∗ s_in,
mha_spec_t ∗∗ s_out ) [pure virtual]

Pure spectrum processing.
Parameters
s_in
s_out

input spectrum signal
output spectrum signal

Implemented in PluginLoader::mhapluginloader_t (p. 1080).

5.309.3.3

process() [3/4]

virtual void PluginLoader::fourway_processor_t::process (
mha_wave_t ∗ s_in,
mha_spec_t ∗∗ s_out ) [pure virtual]

Signal processing with domain transformation from waveform to spectrum.
Parameters
s_in
s_out

input waveform signal
output spectrum signal

Implemented in PluginLoader::mhapluginloader_t (p. 1081).

5.309.3.4

process() [4/4]

virtual void PluginLoader::fourway_processor_t::process (

© 2005-2018 HörTech gGmbH, Oldenburg

1076

CONTENTS

mha_spec_t ∗ s_in,
mha_wave_t ∗∗ s_out ) [pure virtual]

Signal processing with domain transformation from spectrum to waveform.
Parameters
s_in

input spectrum signal

s_out

output waveform signal

Implemented in PluginLoader::mhapluginloader_t (p. 1081).

5.309.3.5

prepare()

virtual void PluginLoader::fourway_processor_t::prepare (
mhaconfig_t & settings ) [pure virtual]

Prepares the processor for signal processing.
Parameters
settings

domain and dimensions of the signal. The contents of settings may be modified
by the prepare implementation. Upon calling fourway_processor_t::prepare
(p. 1076), settings reflects domain and dimensions of the input signal. When
fourway_processor_t::prepare (p. 1076) returns, settings reflects domain and
dimensions of the output signal.

Implemented in PluginLoader::mhapluginloader_t (p. 1080).

5.309.3.6

release()

virtual void PluginLoader::fourway_processor_t::release ( ) [pure virtual]

Resources allocated for signal processing in fourway_processor_t::prepare (p. 1076) are released here in fourway_processor_t::release (p. 1076).
Implemented in PluginLoader::mhapluginloader_t (p. 1080).

© 2005-2018 HörTech gGmbH, Oldenburg

5.310

PluginLoader::mhapluginloader_t Class Reference

5.309.3.7

1077

parse()

virtual std::string PluginLoader::fourway_processor_t::parse (
const std::string & query ) [pure virtual]

Parser interface.
Implemented in PluginLoader::mhapluginloader_t (p. 1079).
The documentation for this class was generated from the following file:
• mhapluginloader.h

5.310

PluginLoader::mhapluginloader_t Class Reference

Inheritance diagram for PluginLoader::mhapluginloader_t:

PluginLoader::config
_file_splitter_t

MHAParser::base_t

MHAParser::c_ifc_parser_t

mhaplug_cfg_t

PluginLoader::mhapluginloader_t

PluginLoader::fourway
_processor_t

plug_t

pluginloader_t

Public Member Functions
• std::string parse (const std::string &str)
• mhapluginloader_t ( algo_comm_t iac, const std::string & libname, bool check_←version=true)
Loads and initializes mha plugin and establishes interface.

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

∼mhapluginloader_t () throw ()
bool has_process ( mha_domain_t in, mha_domain_t out) const
bool has_parser () const
mha_domain_t input_domain () const
mha_domain_t output_domain () const
void prepare ( mhaconfig_t &)
void release ()
void process ( mha_wave_t ∗, mha_wave_t ∗∗)
void process ( mha_spec_t ∗, mha_spec_t ∗∗)
void process ( mha_wave_t ∗, mha_spec_t ∗∗)
void process ( mha_spec_t ∗, mha_wave_t ∗∗)
std::string getfullname () const
std::string get_documentation () const
std::vector< std::string > get_categories () const
bool is_prepared () const

© 2005-2018 HörTech gGmbH, Oldenburg

1078

CONTENTS

Protected Member Functions
•
•
•
•

void
void
void
void

test_error ()
test_version ()
mha_test_struct_size (unsigned int s)
resolve_and_init ()

Protected Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

int lib_err
algo_comm_t ac
dynamiclib_t lib_handle
void ∗ lib_data
MHAGetVersion_t MHAGetVersion_cb
MHAInit_t MHAInit_cb
MHADestroy_t MHADestroy_cb
MHAPrepare_t MHAPrepare_cb
MHARelease_t MHARelease_cb
MHAProc_wave2wave_t MHAProc_wave2wave_cb
MHAProc_spec2spec_t MHAProc_spec2spec_cb
MHAProc_wave2spec_t MHAProc_wave2spec_cb
MHAProc_spec2wave_t MHAProc_spec2wave_cb
MHASet_t MHASet_cb
MHAStrError_t MHAStrError_cb
mhaconfig_t cf_input
mhaconfig_t cf_output
std::string plugin_documentation
std::vector< std::string > plugin_categories
bool b_check_version
bool b_is_prepared

Additional Inherited Members
5.310.1

5.310.1.1

Constructor & Destructor Documentation

mhapluginloader_t()

PluginLoader::mhapluginloader_t::mhapluginloader_t (
algo_comm_t iac,
const std::string & libname,
bool check_version = true )

Loads and initializes mha plugin and establishes interface.

© 2005-2018 HörTech gGmbH, Oldenburg

5.310

PluginLoader::mhapluginloader_t Class Reference

1079

Parameters
iac

AC space (algorithm communication variables)

libname

Either file name of MHA plugin without platform-specific extension (i.e. "identity"
for "identity.so" or "identity.dll") to be found on the MHA_LIBRARY_PATH (which
is an environment variable). Or the same file name without extension followed by
a colon ":" followed by the "configuration name" of the MHA plugin, which may be
used to differentiate between multiple identical MHA plugins or to give the plugin
a self-documenting name that fits its purpose. The library name - configuration
name expression can be followed by a "<" followed by a configuration file name,
which will be read after initialization of the plugin.

Example: "overlapadd:agc PluginLoader::mhapluginloader_t::get_categories ( ) const
[inline]

© 2005-2018 HörTech gGmbH, Oldenburg

1082

5.310.2.15

CONTENTS

is_prepared()

bool PluginLoader::mhapluginloader_t::is_prepared ( ) const [inline]

5.310.2.16

test_error()

void PluginLoader::mhapluginloader_t::test_error ( ) [protected]

5.310.2.17

test_version()

void PluginLoader::mhapluginloader_t::test_version ( ) [protected]

5.310.2.18

mha_test_struct_size()

void PluginLoader::mhapluginloader_t::mha_test_struct_size (
unsigned int s ) [protected]

5.310.2.19

resolve_and_init()

void PluginLoader::mhapluginloader_t::resolve_and_init ( ) [protected]

5.310.3

5.310.3.1

Member Data Documentation

lib_err

int PluginLoader::mhapluginloader_t::lib_err [protected]

5.310.3.2

ac

algo_comm_t PluginLoader::mhapluginloader_t::ac [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

5.310

PluginLoader::mhapluginloader_t Class Reference

5.310.3.3

1083

lib_handle

dynamiclib_t PluginLoader::mhapluginloader_t::lib_handle [protected]

5.310.3.4

lib_data

void∗ PluginLoader::mhapluginloader_t::lib_data [protected]

5.310.3.5

MHAGetVersion_cb

MHAGetVersion_t PluginLoader::mhapluginloader_t::MHAGetVersion_cb [protected]

5.310.3.6

MHAInit_cb

MHAInit_t PluginLoader::mhapluginloader_t::MHAInit_cb [protected]

5.310.3.7

MHADestroy_cb

MHADestroy_t PluginLoader::mhapluginloader_t::MHADestroy_cb [protected]

5.310.3.8

MHAPrepare_cb

MHAPrepare_t PluginLoader::mhapluginloader_t::MHAPrepare_cb [protected]

5.310.3.9

MHARelease_cb

MHARelease_t PluginLoader::mhapluginloader_t::MHARelease_cb [protected]

5.310.3.10

MHAProc_wave2wave_cb

MHAProc_wave2wave_t PluginLoader::mhapluginloader_t::MHAProc_wave2wave_cb [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

1084

5.310.3.11

CONTENTS

MHAProc_spec2spec_cb

MHAProc_spec2spec_t PluginLoader::mhapluginloader_t::MHAProc_spec2spec_cb [protected]

5.310.3.12

MHAProc_wave2spec_cb

MHAProc_wave2spec_t PluginLoader::mhapluginloader_t::MHAProc_wave2spec_cb [protected]

5.310.3.13

MHAProc_spec2wave_cb

MHAProc_spec2wave_t PluginLoader::mhapluginloader_t::MHAProc_spec2wave_cb [protected]

5.310.3.14

MHASet_cb

MHASet_t PluginLoader::mhapluginloader_t::MHASet_cb [protected]

5.310.3.15

MHAStrError_cb

MHAStrError_t PluginLoader::mhapluginloader_t::MHAStrError_cb [protected]

5.310.3.16

cf_input

mhaconfig_t PluginLoader::mhapluginloader_t::cf_input [protected]

5.310.3.17

cf_output

mhaconfig_t PluginLoader::mhapluginloader_t::cf_output [protected]

5.310.3.18

plugin_documentation

std::string PluginLoader::mhapluginloader_t::plugin_documentation [protected]

© 2005-2018 HörTech gGmbH, Oldenburg

5.311

pluginloader_t Class Reference

5.310.3.19

1085

plugin_categories

std::vector PluginLoader::mhapluginloader_t::plugin_categories [protected]

5.310.3.20

b_check_version

bool PluginLoader::mhapluginloader_t::b_check_version [protected]

5.310.3.21

b_is_prepared

bool PluginLoader::mhapluginloader_t::b_is_prepared [protected]

The documentation for this class was generated from the following files:
• mhapluginloader.h
• mhapluginloader.cpp

5.311

pluginloader_t Class Reference

Inheritance diagram for pluginloader_t:

PluginLoader::config
_file_splitter_t

MHAKernel::algo_comm
_class_t

MHAParser::c_ifc_parser_t

PluginLoader::mhapluginloader_t

pluginloader_t
MHAParser::base_t

PluginLoader::fourway
_processor_t

Public Member Functions
• pluginloader_t (const std::string &name)
• ∼pluginloader_t () throw ()

Additional Inherited Members
5.311.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1086

5.311.1.1

CONTENTS

pluginloader_t()

pluginloader_t::pluginloader_t (
const std::string & name )

5.311.1.2 ∼pluginloader_t()

pluginloader_t::∼pluginloader_t ( ) throw )

The documentation for this class was generated from the following files:

• pluginbrowser.h
• pluginbrowser.cpp

5.312

prediction_error Class Reference

Inheritance diagram for prediction_error:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< prediction_error_config >

MHAPlugin::plugin_t
< prediction_error_config >

prediction_error

© 2005-2018 HörTech gGmbH, Oldenburg

5.312

prediction_error Class Reference

1087

Public Member Functions
• prediction_error ( algo_comm_t & ac, const std::string &chain_name, const std::string
&algo_name)
Constructs our plugin.

• ∼prediction_error ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
Checks for the most recent configuration and defers processing to it.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)

Public Attributes
•
•
•
•
•
•
•
•
•
•
•
•

MHAParser::float_t rho
MHAParser::float_t c
MHAParser::int_t ntaps
MHAParser::vfloat_t gains
MHAParser::string_t name_e
MHAParser::string_t name_f
MHAParser::string_t name_lpc
MHAParser::int_t lpc_order
MHAParser::vint_t pred_err_delay
MHAParser::vint_t delay_w
MHAParser::vint_t delay_d
MHAParser::int_t n_no_update

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< prediction_error > patchbay

Additional Inherited Members

5.312.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1088

5.312.1.1

CONTENTS

prediction_error()

prediction_error::prediction_error (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.

5.312.1.2 ∼prediction_error()
prediction_error::∼prediction_error ( )

5.312.2

5.312.2.1

Member Function Documentation

process()

mha_wave_t ∗ prediction_error::process (
mha_wave_t ∗ signal )

Checks for the most recent configuration and defers processing to it.

5.312.2.2

prepare()

void prediction_error::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.
Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< prediction_error_config > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

5.312

5.312.2.3

prediction_error Class Reference

1089

release()

void prediction_error::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< prediction_error_config > (p. 885).

5.312.2.4

update_cfg()

void prediction_error::update_cfg ( ) [private]

5.312.3

5.312.3.1

Member Data Documentation

rho

MHAParser::float_t prediction_error::rho

5.312.3.2

c

MHAParser::float_t prediction_error::c

5.312.3.3

ntaps

MHAParser::int_t prediction_error::ntaps

5.312.3.4

gains

MHAParser::vfloat_t prediction_error::gains

5.312.3.5

name_e

MHAParser::string_t prediction_error::name_e

© 2005-2018 HörTech gGmbH, Oldenburg

1090

5.312.3.6

CONTENTS

name_f

MHAParser::string_t prediction_error::name_f

5.312.3.7

name_lpc

MHAParser::string_t prediction_error::name_lpc

5.312.3.8

lpc_order

MHAParser::int_t prediction_error::lpc_order

5.312.3.9

pred_err_delay

MHAParser::vint_t prediction_error::pred_err_delay

5.312.3.10

delay_w

MHAParser::vint_t prediction_error::delay_w

5.312.3.11

delay_d

MHAParser::vint_t prediction_error::delay_d

5.312.3.12

n_no_update

MHAParser::int_t prediction_error::n_no_update

© 2005-2018 HörTech gGmbH, Oldenburg

5.313

prediction_error_config Class Reference

5.312.3.13

1091

patchbay

MHAEvents::patchbay_t< prediction_error> prediction_error::patchbay [private]

The documentation for this class was generated from the following files:
• prediction_error.h
• prediction_error.cpp

5.313

prediction_error_config Class Reference

Public Member Functions
•

prediction_error_config ( algo_comm_t & ac, const
mhaconfig_t in_cfg,
prediction_error ∗pred_err)
• ∼prediction_error_config ()
• mha_wave_t ∗ process ( mha_wave_t ∗s_Y, mha_real_t rho, mha_real_t c)
• void insert ()

Private Attributes
•
•
•
•
•
•
•

algo_comm_t ac
unsigned int ntaps
unsigned int frames
unsigned int channels
MHA_AC::waveform_t s_E
MHA_AC::waveform_t F
MHASignal::waveform_t Pu

•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

std::string name_d_
std::string name_lpc_
int n_no_update_
int no_iter
int iter
MHASignal::waveform_t v_G
MHASignal::waveform_t s_U
MHASignal::delay_t s_E_pred_err_delay
MHASignal::delay_t s_W
MHASignal::ringbuffer_t s_Wflt
MHASignal::delay_t s_U_delay
MHASignal::ringbuffer_t s_U_delayflt
MHASignal::waveform_t F_Uflt
MHASignal::delay_t s_Y_delay
MHASignal::ringbuffer_t s_Y_delayflt
MHASignal::ringbuffer_t UbufferPrew

Power of input signal delayline.

© 2005-2018 HörTech gGmbH, Oldenburg

1092
•
•
•
•
•
•
•

CONTENTS

mha_wave_t s_LPC
mha_wave_t UPrew
mha_wave_t YPrew
mha_wave_t EPrew
mha_wave_t UPrewW
mha_wave_t smpl
mha_wave_t ∗ s_Usmpl

5.313.1

5.313.1.1

Constructor & Destructor Documentation

prediction_error_config()

prediction_error_config::prediction_error_config (
algo_comm_t & ac,
const

mhaconfig_t in_cfg,

prediction_error ∗ pred_err )

5.313.1.2 ∼prediction_error_config()
prediction_error_config::∼prediction_error_config ( )

5.313.2

5.313.2.1

Member Function Documentation

process()

mha_wave_t ∗ prediction_error_config::process (
mha_wave_t ∗ s_Y,
mha_real_t rho,
mha_real_t c )

5.313.2.2

insert()

void prediction_error_config::insert ( )

© 2005-2018 HörTech gGmbH, Oldenburg

5.313

prediction_error_config Class Reference

5.313.3

Member Data Documentation

5.313.3.1

ac

algo_comm_t prediction_error_config::ac [private]

5.313.3.2

ntaps

unsigned int prediction_error_config::ntaps [private]

5.313.3.3

frames

unsigned int prediction_error_config::frames [private]

5.313.3.4

channels

unsigned int prediction_error_config::channels [private]

5.313.3.5

s_E

MHA_AC::waveform_t prediction_error_config::s_E [private]

5.313.3.6

F

MHA_AC::waveform_t prediction_error_config::F [private]

5.313.3.7

Pu

MHASignal::waveform_t prediction_error_config::Pu [private]

Power of input signal delayline.

© 2005-2018 HörTech gGmbH, Oldenburg

1093

1094

5.313.3.8

CONTENTS

name_d_

std::string prediction_error_config::name_d_ [private]

5.313.3.9

name_lpc_

std::string prediction_error_config::name_lpc_ [private]

5.313.3.10

n_no_update_

int prediction_error_config::n_no_update_ [private]

5.313.3.11

no_iter

int prediction_error_config::no_iter [private]

5.313.3.12

iter

int prediction_error_config::iter [private]

5.313.3.13

v_G

MHASignal::waveform_t prediction_error_config::v_G [private]

5.313.3.14

s_U

MHASignal::waveform_t prediction_error_config::s_U [private]

5.313.3.15

s_E_pred_err_delay

MHASignal::delay_t prediction_error_config::s_E_pred_err_delay [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.313

prediction_error_config Class Reference

5.313.3.16

1095

s_W

MHASignal::delay_t prediction_error_config::s_W [private]

5.313.3.17

s_Wflt

MHASignal::ringbuffer_t prediction_error_config::s_Wflt [private]

5.313.3.18

s_U_delay

MHASignal::delay_t prediction_error_config::s_U_delay [private]

5.313.3.19

s_U_delayflt

MHASignal::ringbuffer_t prediction_error_config::s_U_delayflt [private]

5.313.3.20

F_Uflt

MHASignal::waveform_t prediction_error_config::F_Uflt [private]

5.313.3.21

s_Y_delay

MHASignal::delay_t prediction_error_config::s_Y_delay [private]

5.313.3.22

s_Y_delayflt

MHASignal::ringbuffer_t prediction_error_config::s_Y_delayflt [private]

5.313.3.23

UbufferPrew

MHASignal::ringbuffer_t prediction_error_config::UbufferPrew [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1096

5.313.3.24

CONTENTS

s_LPC

mha_wave_t prediction_error_config::s_LPC [private]

5.313.3.25

UPrew

mha_wave_t prediction_error_config::UPrew [private]

5.313.3.26

YPrew

mha_wave_t prediction_error_config::YPrew [private]

5.313.3.27

EPrew

mha_wave_t prediction_error_config::EPrew [private]

5.313.3.28

UPrewW

mha_wave_t prediction_error_config::UPrewW [private]

5.313.3.29

smpl

mha_wave_t prediction_error_config::smpl [private]

5.313.3.30

s_Usmpl

mha_wave_t∗ prediction_error_config::s_Usmpl [private]

The documentation for this class was generated from the following files:
• prediction_error.h
• prediction_error.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.314

rmslevel_if_t Class Reference

5.314

rmslevel_if_t Class Reference

1097

Inheritance diagram for rmslevel_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< rmslevel_t >

MHAPlugin::plugin_t
< rmslevel_t >

rmslevel_if_t

Public Member Functions
•
•
•
•

rmslevel_if_t (const algo_comm_t &, const std::string &, const std::string &)
mha_spec_t ∗ process ( mha_spec_t ∗)
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)

Private Attributes
• std::string name

Additional Inherited Members

5.314.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1098

5.314.1.1

CONTENTS

rmslevel_if_t()

rmslevel_if_t::rmslevel_if_t (
const

algo_comm_t & iac,

const std::string & ith,
const std::string & ial )

5.314.2

5.314.2.1

Member Function Documentation

process() [1/2]

mha_spec_t ∗ rmslevel_if_t::process (
mha_spec_t ∗ s )

5.314.2.2

process() [2/2]

mha_wave_t ∗ rmslevel_if_t::process (
mha_wave_t ∗ s )

5.314.2.3

prepare()

void rmslevel_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< rmslevel_t > (p. 884).

5.314.3

5.314.3.1

Member Data Documentation

name

std::string rmslevel_if_t::name [private]

The documentation for this class was generated from the following file:
• rmslevel.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.315

rmslevel_t Class Reference

5.315

rmslevel_t Class Reference

1099

Public Member Functions
• rmslevel_t (unsigned int nch, algo_comm_t ac, std::string name,
::parser_t &p, unsigned int fftlen_)
• mha_spec_t ∗ process ( mha_spec_t ∗)
• mha_wave_t ∗ process ( mha_wave_t ∗)
• void insert ()

Private Attributes
•
•
•
•
•

mon_t level_db
mon_t peak_db
mon_t level
mon_t peak
unsigned int fftlen

5.315.1

5.315.1.1

Constructor & Destructor Documentation

rmslevel_t()

rmslevel_t::rmslevel_t (
unsigned int nch,
algo_comm_t ac,
std::string name,
MHAParser::parser_t & p,
unsigned int fftlen_ )

5.315.2

5.315.2.1

Member Function Documentation

process() [1/2]

mha_spec_t ∗ rmslevel_t::process (
mha_spec_t ∗ s )

© 2005-2018 HörTech gGmbH, Oldenburg

MHAParser←-

1100

5.315.2.2

CONTENTS

process() [2/2]

mha_wave_t ∗ rmslevel_t::process (
mha_wave_t ∗ s )

5.315.2.3

insert()

void rmslevel_t::insert ( )

5.315.3

5.315.3.1

Member Data Documentation

level_db

mon_t rmslevel_t::level_db [private]

5.315.3.2

peak_db

mon_t rmslevel_t::peak_db [private]

5.315.3.3

level

mon_t rmslevel_t::level [private]

5.315.3.4

peak

mon_t rmslevel_t::peak [private]

5.315.3.5

fftlen

unsigned int rmslevel_t::fftlen [private]

The documentation for this class was generated from the following file:
• rmslevel.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.316

route::interface_t Class Reference

5.316

route::interface_t Class Reference

1101

Inheritance diagram for route::interface_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< route::process_t >

MHAPlugin::plugin_t
< route::process_t >

route::interface_t

Public Member Functions
•
•
•
•
•

interface_t ( algo_comm_t iac, const std::string &, const std::string &)
void prepare ( mhaconfig_t &)
void release ()
mha_wave_t ∗ process ( mha_wave_t ∗)
mha_spec_t ∗ process ( mha_spec_t ∗)

Private Member Functions
• void update ()
Private Attributes
•
•
•
•
•
•
•
•
•

MHAEvents::patchbay_t< route::interface_t > patchbay
MHAParser::vstring_t route_out
MHAParser::vstring_t route_ac
mhaconfig_t cfin
mhaconfig_t cfout
mhaconfig_t cfac
bool prepared
bool stopped
std::string algo

© 2005-2018 HörTech gGmbH, Oldenburg

1102

CONTENTS

Additional Inherited Members

5.316.1

5.316.1.1

Constructor & Destructor Documentation

interface_t()

route::interface_t::interface_t (
algo_comm_t iac,
const std::string & ,
const std::string & ialg )

5.316.2

5.316.2.1

Member Function Documentation

prepare()

void route::interface_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< route::process_t > (p. 884).

5.316.2.2

release()

void route::interface_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< route::process_t > (p. 885).

5.316.2.3

process() [1/2]

mha_wave_t ∗ route::interface_t::process (
mha_wave_t ∗ s )

© 2005-2018 HörTech gGmbH, Oldenburg

5.316

5.316.2.4

route::interface_t Class Reference

1103

process() [2/2]

mha_spec_t ∗ route::interface_t::process (
mha_spec_t ∗ s )

5.316.2.5

update()

void route::interface_t::update ( ) [private]

5.316.3

5.316.3.1

Member Data Documentation

patchbay

MHAEvents::patchbay_t< route::interface_t> route::interface_t::patchbay [private]

5.316.3.2

route_out

MHAParser::vstring_t route::interface_t::route_out [private]

5.316.3.3

route_ac

MHAParser::vstring_t route::interface_t::route_ac [private]

5.316.3.4

cfin

mhaconfig_t route::interface_t::cfin [private]

5.316.3.5

cfout

mhaconfig_t route::interface_t::cfout [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1104

5.316.3.6

CONTENTS

cfac

mhaconfig_t route::interface_t::cfac [private]

5.316.3.7

prepared

bool route::interface_t::prepared [private]

5.316.3.8

stopped

bool route::interface_t::stopped [private]

5.316.3.9

algo

std::string route::interface_t::algo [private]

The documentation for this class was generated from the following file:
• route.cpp

5.317

route::process_t Class Reference

Public Member Functions
• process_t ( algo_comm_t iac, const std::string acname, const std::vector< std::string
> &r_out, const std::vector< std::string > &r_ac, const mhaconfig_t &cf_in, const
mhaconfig_t &cf_out, const mhaconfig_t &cf_ac, bool sync)
• mha_wave_t ∗ process ( mha_wave_t ∗)
• mha_spec_t ∗ process ( mha_spec_t ∗)

Private Attributes
•
•
•
•

MHAMultiSrc::waveform_t
MHAMultiSrc::spectrum_t
MHAMultiSrc::waveform_t
MHAMultiSrc::spectrum_t

wout
sout
wout_ac
sout_ac
© 2005-2018 HörTech gGmbH, Oldenburg

5.317

route::process_t Class Reference

5.317.1

Constructor & Destructor Documentation

5.317.1.1

process_t()

route::process_t::process_t (
algo_comm_t iac,
const std::string acname,
const std::vector< std::string > & r_out,
const std::vector< std::string > & r_ac,
const

mhaconfig_t & cf_in,

const

mhaconfig_t & cf_out,

const

mhaconfig_t & cf_ac,

bool sync )

5.317.2

5.317.2.1

Member Function Documentation

process() [1/2]

mha_wave_t ∗ route::process_t::process (
mha_wave_t ∗ s )

5.317.2.2

process() [2/2]

mha_spec_t ∗ route::process_t::process (
mha_spec_t ∗ s )

5.317.3

5.317.3.1

Member Data Documentation

wout

MHAMultiSrc::waveform_t route::process_t::wout [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1105

1106

5.317.3.2

CONTENTS

sout

MHAMultiSrc::spectrum_t route::process_t::sout [private]

5.317.3.3

wout_ac

MHAMultiSrc::waveform_t route::process_t::wout_ac [private]

5.317.3.4

sout_ac

MHAMultiSrc::spectrum_t route::process_t::sout_ac [private]

The documentation for this class was generated from the following file:
• route.cpp

5.318

rt_nlms_t Class Reference

Public Member Functions
• rt_nlms_t ( algo_comm_t iac, const std::string &name, const mhaconfig_t &cfg, unsigned int ntaps_, const std::string &name_u, const std::string &name_d, const std::string
&name_e, const std::string &name_f, const int n_no_update)
• ∼rt_nlms_t ()
• mha_wave_t ∗ process ( mha_wave_t ∗sUD, mha_real_t rho, mha_real_t c, unsigned int norm_type, unsigned int estim_type, mha_real_t lambda_smooth)
• void insert ()

Private Attributes
•
•
•
•
•
•

algo_comm_t ac
unsigned int ntaps
unsigned int frames
unsigned int channels
MHA_AC::waveform_t F
MHASignal::waveform_t U
Input signal cache.

• MHASignal::waveform_t Uflt
Input signal cache (second filter)

• MHASignal::waveform_t Pu
Power of input signal delayline.
© 2005-2018 HörTech gGmbH, Oldenburg

5.318

rt_nlms_t Class Reference

• MHASignal::waveform_t fu
Filtered input signal.

• MHASignal::waveform_t fuflt
Filtered input signal.

•
•
•
•
•
•
•
•
•

MHASignal::waveform_t fu_previous
MHASignal::waveform_t y_previous
MHASignal::waveform_t P_Sum
std::string name_u_
std::string name_d_
std::string name_e_
int n_no_update_
int no_iter
mha_wave_t s_E

5.318.1

5.318.1.1

Constructor & Destructor Documentation

rt_nlms_t()

rt_nlms_t::rt_nlms_t (
algo_comm_t iac,
const std::string & name,
const

mhaconfig_t & cfg,

unsigned int ntaps_,
const std::string & name_u,
const std::string & name_d,
const std::string & name_e,
const std::string & name_f,
const int n_no_update )

5.318.1.2 ∼rt_nlms_t()

rt_nlms_t::∼rt_nlms_t ( ) [inline]

5.318.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1107

1108

5.318.2.1

CONTENTS

process()

mha_wave_t ∗ rt_nlms_t::process (
mha_wave_t ∗ sUD,
mha_real_t rho,
mha_real_t c,
unsigned int norm_type,
unsigned int estim_type,
mha_real_t lambda_smooth )

5.318.2.2

insert()

void rt_nlms_t::insert ( )

5.318.3

5.318.3.1

Member Data Documentation

ac

algo_comm_t rt_nlms_t::ac [private]

5.318.3.2

ntaps

unsigned int rt_nlms_t::ntaps [private]

5.318.3.3

frames

unsigned int rt_nlms_t::frames [private]

5.318.3.4

channels

unsigned int rt_nlms_t::channels [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.318

rt_nlms_t Class Reference

5.318.3.5

F

MHA_AC::waveform_t rt_nlms_t::F [private]

5.318.3.6

U

MHASignal::waveform_t rt_nlms_t::U [private]

Input signal cache.

5.318.3.7

Uflt

MHASignal::waveform_t rt_nlms_t::Uflt [private]

Input signal cache (second filter)

5.318.3.8

Pu

MHASignal::waveform_t rt_nlms_t::Pu [private]

Power of input signal delayline.

5.318.3.9

fu

MHASignal::waveform_t rt_nlms_t::fu [private]

Filtered input signal.

5.318.3.10

fuflt

MHASignal::waveform_t rt_nlms_t::fuflt [private]

Filtered input signal.

© 2005-2018 HörTech gGmbH, Oldenburg

1109

1110

5.318.3.11

CONTENTS

fu_previous

MHASignal::waveform_t rt_nlms_t::fu_previous [private]

5.318.3.12

y_previous

MHASignal::waveform_t rt_nlms_t::y_previous [private]

5.318.3.13

P_Sum

MHASignal::waveform_t rt_nlms_t::P_Sum [private]

5.318.3.14

name_u_

std::string rt_nlms_t::name_u_ [private]

5.318.3.15

name_d_

std::string rt_nlms_t::name_d_ [private]

5.318.3.16

name_e_

std::string rt_nlms_t::name_e_ [private]

5.318.3.17

n_no_update_

int rt_nlms_t::n_no_update_ [private]

5.318.3.18

no_iter

int rt_nlms_t::no_iter [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.319

save_spec_t Class Reference

5.318.3.19

1111

s_E

mha_wave_t rt_nlms_t::s_E [private]

The documentation for this class was generated from the following file:
• nlms_wave.cpp

5.319

save_spec_t Class Reference

Inheritance diagram for save_spec_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< MHA_AC::spectrum_t >

MHAPlugin::plugin_t
< MHA_AC::spectrum_t >

save_spec_t

Public Member Functions
• save_spec_t (const algo_comm_t &iac, const std::string &ith, const std::string &ial)
• mha_spec_t ∗ process ( mha_spec_t ∗s)
• void prepare ( mhaconfig_t &tf)

Private Attributes
• std::string basename
© 2005-2018 HörTech gGmbH, Oldenburg

1112

CONTENTS

Additional Inherited Members
5.319.1

5.319.1.1

Constructor & Destructor Documentation

save_spec_t()

save_spec_t::save_spec_t (
const

algo_comm_t & iac,

const std::string & ith,
const std::string & ial ) [inline]

5.319.2

5.319.2.1

Member Function Documentation

process()

mha_spec_t∗ save_spec_t::process (
mha_spec_t ∗ s ) [inline]

5.319.2.2

prepare()

void save_spec_t::prepare (
mhaconfig_t & tf ) [inline], [virtual]

Implements MHAPlugin::plugin_t< MHA_AC::spectrum_t > (p. 884).

5.319.3

5.319.3.1

Member Data Documentation

basename

std::string save_spec_t::basename [private]

The documentation for this class was generated from the following file:
• save_spec.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.320

save_wave_t Class Reference

5.320

save_wave_t Class Reference

1113

Inheritance diagram for save_wave_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< MHA_AC::waveform_t >

MHAPlugin::plugin_t
< MHA_AC::waveform_t >

save_wave_t

Public Member Functions
• save_wave_t (const algo_comm_t &iac, const std::string &ith, const std::string &ial)
• mha_wave_t ∗ process ( mha_wave_t ∗s)
• void prepare ( mhaconfig_t &tf)

Private Attributes
• std::string basename

Additional Inherited Members

5.320.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1114

5.320.1.1

CONTENTS

save_wave_t()

save_wave_t::save_wave_t (
const

algo_comm_t & iac,

const std::string & ith,
const std::string & ial ) [inline]

5.320.2

Member Function Documentation

5.320.2.1

process()

mha_wave_t∗ save_wave_t::process (
mha_wave_t ∗ s ) [inline]

5.320.2.2

prepare()

void save_wave_t::prepare (
mhaconfig_t & tf ) [inline], [virtual]

Implements MHAPlugin::plugin_t< MHA_AC::waveform_t > (p. 884).

5.320.3

Member Data Documentation

5.320.3.1

basename

std::string save_wave_t::basename [private]

The documentation for this class was generated from the following file:
• save_wave.cpp

5.321

shadowfilter_begin::cfg_t Class Reference

Public Member Functions
• cfg_t (int nfft, int inch, int outch, algo_comm_t ac, std::string name)
• mha_spec_t ∗ process ( mha_spec_t ∗)
© 2005-2018 HörTech gGmbH, Oldenburg

5.321

shadowfilter_begin::cfg_t Class Reference

1115

Private Attributes
•
•
•
•

MHA_AC::spectrum_t in_spec_copy
MHASignal::spectrum_t out_spec
MHA_AC::int_t nch
MHA_AC::int_t ntracks

5.321.1

5.321.1.1

Constructor & Destructor Documentation

cfg_t()

cfg_t::cfg_t (
int nfft,
int inch,
int outch,
algo_comm_t ac,
std::string name )

5.321.2

5.321.2.1

Member Function Documentation

process()

mha_spec_t ∗ cfg_t::process (
mha_spec_t ∗ s )

5.321.3

5.321.3.1

Member Data Documentation

in_spec_copy

MHA_AC::spectrum_t shadowfilter_begin::cfg_t::in_spec_copy [private]

5.321.3.2

out_spec

MHASignal::spectrum_t shadowfilter_begin::cfg_t::out_spec [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1116

5.321.3.3

CONTENTS

nch

MHA_AC::int_t shadowfilter_begin::cfg_t::nch [private]

5.321.3.4

ntracks

MHA_AC::int_t shadowfilter_begin::cfg_t::ntracks [private]

The documentation for this class was generated from the following file:
• shadowfilter_begin.cpp

5.322

shadowfilter_begin::shadowfilter_begin_t Class Reference

Inheritance diagram for shadowfilter_begin::shadowfilter_begin_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< cfg_t >

MHAPlugin::plugin_t
< cfg_t >

shadowfilter_begin
::shadowfilter_begin_t

Public Member Functions
• shadowfilter_begin_t (const algo_comm_t &, const std::string &, const std::string &)
• mha_spec_t ∗ process ( mha_spec_t ∗)
• void prepare ( mhaconfig_t &)
© 2005-2018 HörTech gGmbH, Oldenburg

5.322

shadowfilter_begin::shadowfilter_begin_t Class Reference
1117

Private Attributes
• std::string basename
• MHAParser::int_t nch
• MHAParser::int_t ntracks

Additional Inherited Members

5.322.1

5.322.1.1

Constructor & Destructor Documentation

shadowfilter_begin_t()

shadowfilter_begin::shadowfilter_begin_t::shadowfilter_begin_t (
const

algo_comm_t & iac,

const std::string & ith,
const std::string & ial )

5.322.2

5.322.2.1

Member Function Documentation

process()

mha_spec_t ∗ shadowfilter_begin::shadowfilter_begin_t::process (
mha_spec_t ∗ s )

5.322.2.2

prepare()

void shadowfilter_begin::shadowfilter_begin_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 884).

5.322.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1118

5.322.3.1

CONTENTS

basename

std::string shadowfilter_begin::shadowfilter_begin_t::basename [private]

5.322.3.2

nch

MHAParser::int_t shadowfilter_begin::shadowfilter_begin_t::nch [private]

5.322.3.3

ntracks

MHAParser::int_t shadowfilter_begin::shadowfilter_begin_t::ntracks [private]

The documentation for this class was generated from the following file:
• shadowfilter_begin.cpp

5.323

shadowfilter_end::cfg_t Class Reference

Public Member Functions
• cfg_t (int nfft_, algo_comm_t ac_, std::string name_)
• mha_spec_t ∗ process ( mha_spec_t ∗)

Private Attributes
•
•
•
•
•
•
•
•

algo_comm_t ac
std::string name
int nfft
int ntracks
int nch_out
mha_spec_t in_spec
MHASignal::spectrum_t out_spec
MHA_AC::spectrum_t gains

5.323.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.323

5.323.1.1

shadowfilter_end::cfg_t Class Reference

cfg_t()

cfg_t::cfg_t (
int nfft_,
algo_comm_t ac_,
std::string name_ )

5.323.2

5.323.2.1

Member Function Documentation

process()

mha_spec_t ∗ cfg_t::process (
mha_spec_t ∗ s )

5.323.3

5.323.3.1

Member Data Documentation

ac

algo_comm_t shadowfilter_end::cfg_t::ac [private]

5.323.3.2

name

std::string shadowfilter_end::cfg_t::name [private]

5.323.3.3

nfft

int shadowfilter_end::cfg_t::nfft [private]

5.323.3.4

ntracks

int shadowfilter_end::cfg_t::ntracks [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1119

1120

5.323.3.5

CONTENTS

nch_out

int shadowfilter_end::cfg_t::nch_out [private]

5.323.3.6

in_spec

mha_spec_t shadowfilter_end::cfg_t::in_spec [private]

5.323.3.7

out_spec

MHASignal::spectrum_t shadowfilter_end::cfg_t::out_spec [private]

5.323.3.8

gains

MHA_AC::spectrum_t shadowfilter_end::cfg_t::gains [private]

The documentation for this class was generated from the following file:
• shadowfilter_end.cpp

5.324

shadowfilter_end::shadowfilter_end_t Class Reference

Inheritance diagram for shadowfilter_end::shadowfilter_end_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< cfg_t >

MHAPlugin::plugin_t
< cfg_t >

shadowfilter_end::shadowfilter
_end_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.324

shadowfilter_end::shadowfilter_end_t Class Reference

1121

Public Member Functions
• shadowfilter_end_t (const algo_comm_t &, const std::string &, const std::string &)
• mha_spec_t ∗ process ( mha_spec_t ∗)
• void prepare ( mhaconfig_t &)

Private Attributes
• MHAParser::string_t basename

Additional Inherited Members

5.324.1

5.324.1.1

Constructor & Destructor Documentation

shadowfilter_end_t()

shadowfilter_end::shadowfilter_end_t::shadowfilter_end_t (
const

algo_comm_t & iac,

const std::string & ith,
const std::string & ial )

5.324.2

5.324.2.1

Member Function Documentation

process()

mha_spec_t ∗ shadowfilter_end::shadowfilter_end_t::process (
mha_spec_t ∗ s )

5.324.2.2

prepare()

void shadowfilter_end::shadowfilter_end_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 884).
© 2005-2018 HörTech gGmbH, Oldenburg

1122

5.324.3

CONTENTS

Member Data Documentation

5.324.3.1

basename

MHAParser::string_t shadowfilter_end::shadowfilter_end_t::basename [private]

The documentation for this class was generated from the following file:
• shadowfilter_end.cpp

5.325

sine_cfg_t Struct Reference

Public Member Functions
• sine_cfg_t (double sampling_rate, mha_real_t frequency, mha_real_t newlev, int _←mix, const std::vector< int > &_channels)

Public Attributes
•
•
•
•

double phase_increment_div_2pi
double amplitude
int mix
const std::vector< int > channels

5.325.1

5.325.1.1

Constructor & Destructor Documentation

sine_cfg_t()

sine_cfg_t::sine_cfg_t (
double sampling_rate,
mha_real_t frequency,
mha_real_t newlev,
int _mix,
const std::vector< int > & _channels ) [inline]

5.325.2

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.326

sine_t Class Reference

5.325.2.1

1123

phase_increment_div_2pi

double sine_cfg_t::phase_increment_div_2pi

5.325.2.2

amplitude

double sine_cfg_t::amplitude

5.325.2.3

mix

int sine_cfg_t::mix

5.325.2.4

channels

const std::vector sine_cfg_t::channels

The documentation for this struct was generated from the following file:
• sine.cpp

5.326

sine_t Class Reference

Inheritance diagram for sine_t:

MHAParser::base_t

MHAPlugin::config_t
< sine_cfg_t >

MHAParser::parser_t

MHAPlugin::plugin_t
< sine_cfg_t >

sine_t

© 2005-2018 HörTech gGmbH, Oldenburg

1124

CONTENTS

Public Member Functions
• sine_t (const algo_comm_t &, const std::string &chain_name, const std::string &algo←_name)
• ∼sine_t ()
• mha_wave_t ∗ process ( mha_wave_t ∗)
• void prepare ( mhaconfig_t &)

Private Member Functions
• void update_cfg ()

Private Attributes
•
•
•
•
•
•

MHAParser::float_t lev
MHAParser::float_t frequency
MHAParser::kw_t mode
MHAParser::vint_t channels
double phase_div_2pi
MHAEvents::patchbay_t< sine_t > patchbay

Additional Inherited Members
5.326.1

5.326.1.1

Constructor & Destructor Documentation

sine_t()

sine_t::sine_t (
const

algo_comm_t & iac,

const std::string & chain_name,
const std::string & algo_name )

5.326.1.2 ∼sine_t()
sine_t::∼sine_t ( )

5.326.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.326

5.326.2.1

sine_t Class Reference

process()

mha_wave_t ∗ sine_t::process (
mha_wave_t ∗ s )

5.326.2.2

prepare()

void sine_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< sine_cfg_t > (p. 884).

5.326.2.3

update_cfg()

void sine_t::update_cfg ( ) [private]

5.326.3

5.326.3.1

Member Data Documentation

lev

MHAParser::float_t sine_t::lev [private]

5.326.3.2

frequency

MHAParser::float_t sine_t::frequency [private]

5.326.3.3

mode

MHAParser::kw_t sine_t::mode [private]

5.326.3.4

channels

MHAParser::vint_t sine_t::channels [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1125

1126

5.326.3.5

CONTENTS

phase_div_2pi

double sine_t::phase_div_2pi [private]

5.326.3.6

patchbay

MHAEvents::patchbay_t< sine_t> sine_t::patchbay [private]

The documentation for this class was generated from the following file:
• sine.cpp

5.327

smoothgains_bridge::overlapadd_if_t Class Reference

Inheritance diagram for smoothgains_bridge::overlapadd_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< smoothspec_wrap_t >

MHAPlugin::plugin_t
< smoothspec_wrap_t >

smoothgains_bridge
::overlapadd_if_t

Public Member Functions
•
•
•
•
•

overlapadd_if_t (const algo_comm_t &, const std::string &, const std::string &)
∼overlapadd_if_t ()
void prepare ( mhaconfig_t &)
void release ()
mha_spec_t ∗ process ( mha_spec_t ∗)
© 2005-2018 HörTech gGmbH, Oldenburg

5.327

smoothgains_bridge::overlapadd_if_t Class Reference

1127

Private Member Functions
• void update ()

Private Attributes
•
•
•
•
•
•
•
•

MHAEvents::patchbay_t< overlapadd_if_t > patchbay
MHAParser::kw_t mode
MHAParser::window_t irswnd
MHAParser::float_t epsilon
MHAParser::mhapluginloader_t plugloader
std::string algo
mhaconfig_t cf_in
mhaconfig_t cf_out

Additional Inherited Members
5.327.1

5.327.1.1

Constructor & Destructor Documentation

overlapadd_if_t()

smoothgains_bridge::overlapadd_if_t::overlapadd_if_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string & ialg )

5.327.1.2 ∼overlapadd_if_t()
smoothgains_bridge::overlapadd_if_t::∼overlapadd_if_t ( )

5.327.2

5.327.2.1

Member Function Documentation

prepare()

void smoothgains_bridge::overlapadd_if_t::prepare (
mhaconfig_t & t ) [virtual]

Implements MHAPlugin::plugin_t< smoothspec_wrap_t > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

1128

5.327.2.2

CONTENTS

release()

void smoothgains_bridge::overlapadd_if_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< smoothspec_wrap_t > (p. 885).

5.327.2.3

process()

mha_spec_t ∗ smoothgains_bridge::overlapadd_if_t::process (
mha_spec_t ∗ spec )

5.327.2.4

update()

void smoothgains_bridge::overlapadd_if_t::update ( ) [private]

5.327.3

5.327.3.1

Member Data Documentation

patchbay

MHAEvents::patchbay_t< overlapadd_if_t> smoothgains_bridge::overlapadd_if_t::patchbay
[private]

5.327.3.2

mode

MHAParser::kw_t smoothgains_bridge::overlapadd_if_t::mode [private]

5.327.3.3

irswnd

MHAParser::window_t smoothgains_bridge::overlapadd_if_t::irswnd [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.328

smoothgains_bridge::smoothspec_wrap_t Class Reference
1129

5.327.3.4

epsilon

MHAParser::float_t smoothgains_bridge::overlapadd_if_t::epsilon [private]

5.327.3.5

plugloader

MHAParser::mhapluginloader_t smoothgains_bridge::overlapadd_if_t::plugloader [private]

5.327.3.6

algo

std::string smoothgains_bridge::overlapadd_if_t::algo [private]

5.327.3.7

cf_in

mhaconfig_t smoothgains_bridge::overlapadd_if_t::cf_in [private]

5.327.3.8

cf_out

mhaconfig_t smoothgains_bridge::overlapadd_if_t::cf_out [private]

The documentation for this class was generated from the following file:
• smoothgains_bridge.cpp

5.328

smoothgains_bridge::smoothspec_wrap_t Class Reference

Public Member Functions
• smoothspec_wrap_t ( mhaconfig_t spar_in, mhaconfig_t spar_out, const MH←AParser::kw_t &mode, const MHAParser::window_t &irswnd, const MHAParser←::float_t &epsilon)
• mha_spec_t ∗ proc_1 ( mha_spec_t ∗)
• mha_spec_t ∗ proc_2 ( mha_spec_t ∗)
© 2005-2018 HörTech gGmbH, Oldenburg

1130

CONTENTS

Private Attributes
• MHASignal::spectrum_t spec_in_copy
Copy of input spectrum for smoothspec.

• MHAFilter::smoothspec_t smoothspec
Smoothspec calculator.

• bool use_smoothspec
• float smoothspec_epsilon

5.328.1

5.328.1.1

Constructor & Destructor Documentation

smoothspec_wrap_t()

smoothgains_bridge::smoothspec_wrap_t::smoothspec_wrap_t (
mhaconfig_t spar_in,
mhaconfig_t spar_out,

5.328.2

5.328.2.1

const

MHAParser::kw_t & mode,

const

MHAParser::window_t & irswnd,

const

MHAParser::float_t & epsilon )

Member Function Documentation

proc_1()

mha_spec_t ∗ smoothgains_bridge::smoothspec_wrap_t::proc_1 (
mha_spec_t ∗ s )

5.328.2.2

proc_2()

mha_spec_t ∗ smoothgains_bridge::smoothspec_wrap_t::proc_2 (
mha_spec_t ∗ s )

5.328.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.329

softclip_t Class Reference

5.328.3.1

1131

spec_in_copy

MHASignal::spectrum_t smoothgains_bridge::smoothspec_wrap_t::spec_in_copy [private]

Copy of input spectrum for smoothspec.

5.328.3.2

smoothspec

MHAFilter::smoothspec_t smoothgains_bridge::smoothspec_wrap_t::smoothspec [private]

Smoothspec calculator.

5.328.3.3

use_smoothspec

bool smoothgains_bridge::smoothspec_wrap_t::use_smoothspec [private]

5.328.3.4

smoothspec_epsilon

float smoothgains_bridge::smoothspec_wrap_t::smoothspec_epsilon [private]

The documentation for this class was generated from the following file:
• smoothgains_bridge.cpp

5.329

softclip_t Class Reference

Inheritance diagram for softclip_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< cfg_t >

MHAPlugin::plugin_t
< cfg_t >

softclip_t

© 2005-2018 HörTech gGmbH, Oldenburg

1132

CONTENTS

Public Member Functions
•
•
•
•

softclip_t (const algo_comm_t &, const std::string &, const std::string &)
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)
void update ()

Private Attributes
•
•
•
•
•
•

mhaconfig_t tftype
MHAParser::float_t attack
MHAParser::float_t decay
MHAParser::float_t start_limit
MHAParser::float_t slope_db
MHAEvents::patchbay_t< softclip_t > patchbay

Additional Inherited Members

5.329.1

5.329.1.1

Constructor & Destructor Documentation

softclip_t()

softclip_t::softclip_t (
const

algo_comm_t & iac,

const std::string & chain,
const std::string & name )

5.329.2

5.329.2.1

Member Function Documentation

process()

mha_wave_t ∗ softclip_t::process (
mha_wave_t ∗ s )

© 2005-2018 HörTech gGmbH, Oldenburg

5.329

5.329.2.2

softclip_t Class Reference

prepare()

void softclip_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 884).

5.329.2.3

update()

void softclip_t::update ( )

5.329.3

5.329.3.1

Member Data Documentation

tftype

mhaconfig_t softclip_t::tftype [private]

5.329.3.2

attack

MHAParser::float_t softclip_t::attack [private]

5.329.3.3

decay

MHAParser::float_t softclip_t::decay [private]

5.329.3.4

start_limit

MHAParser::float_t softclip_t::start_limit [private]

5.329.3.5

slope_db

MHAParser::float_t softclip_t::slope_db [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1133

1134

5.329.3.6

CONTENTS

patchbay

MHAEvents::patchbay_t< softclip_t> softclip_t::patchbay [private]

The documentation for this class was generated from the following file:
• softclip.cpp

5.330

softclipper_t Class Reference

Public Member Functions
• softclipper_t (const softclipper_variables_t &v, const mhaconfig_t &)
• mha_real_t process ( mha_wave_t ∗)

Private Attributes
•
•
•
•
•
•
•

MHAFilter::o1flt_lowpass_t attack
MHAFilter::o1flt_maxtrack_t decay
MHAFilter::o1flt_lowpass_t clipmeter
mha_real_t threshold
mha_real_t hardlimit
mha_real_t slope
bool linear

5.330.1

5.330.1.1

Constructor & Destructor Documentation

softclipper_t()

softclipper_t::softclipper_t (

5.330.2

5.330.2.1

const

softclipper_variables_t & v,

const

mhaconfig_t & tf )

Member Function Documentation

process()

mha_real_t softclipper_t::process (
mha_wave_t ∗ s )
© 2005-2018 HörTech gGmbH, Oldenburg

5.330

softclipper_t Class Reference

5.330.3

Member Data Documentation

5.330.3.1

1135

attack

MHAFilter::o1flt_lowpass_t softclipper_t::attack [private]

5.330.3.2

decay

MHAFilter::o1flt_maxtrack_t softclipper_t::decay [private]

5.330.3.3

clipmeter

MHAFilter::o1flt_lowpass_t softclipper_t::clipmeter [private]

5.330.3.4

threshold

mha_real_t softclipper_t::threshold [private]

5.330.3.5

hardlimit

mha_real_t softclipper_t::hardlimit [private]

5.330.3.6

slope

mha_real_t softclipper_t::slope [private]

5.330.3.7

linear

bool softclipper_t::linear [private]

The documentation for this class was generated from the following file:
• transducers.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

1136

5.331

CONTENTS

softclipper_variables_t Class Reference

Inheritance diagram for softclipper_variables_t:

MHAParser::base_t

MHAParser::parser_t

softclipper_variables_t

Public Member Functions
• softclipper_variables_t ()

Public Attributes
•
•
•
•
•
•
•
•
•

MHAParser::float_t tau_attack
MHAParser::float_t tau_decay
MHAParser::float_t tau_clip
MHAParser::float_t threshold
MHAParser::float_t hardlimit
MHAParser::float_t slope
MHAParser::bool_t linear
MHAParser::float_mon_t clipped
MHAParser::float_t max_clipped

Additional Inherited Members

5.331.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.331

5.331.1.1

softclipper_variables_t Class Reference

softclipper_variables_t()

softclipper_variables_t::softclipper_variables_t ( )

5.331.2

5.331.2.1

Member Data Documentation

tau_attack

MHAParser::float_t softclipper_variables_t::tau_attack

5.331.2.2

tau_decay

MHAParser::float_t softclipper_variables_t::tau_decay

5.331.2.3

tau_clip

MHAParser::float_t softclipper_variables_t::tau_clip

5.331.2.4

threshold

MHAParser::float_t softclipper_variables_t::threshold

5.331.2.5

hardlimit

MHAParser::float_t softclipper_variables_t::hardlimit

5.331.2.6

slope

MHAParser::float_t softclipper_variables_t::slope

© 2005-2018 HörTech gGmbH, Oldenburg

1137

1138

5.331.2.7

CONTENTS

linear

MHAParser::bool_t softclipper_variables_t::linear

5.331.2.8

clipped

MHAParser::float_mon_t softclipper_variables_t::clipped

5.331.2.9

max_clipped

MHAParser::float_t softclipper_variables_t::max_clipped

The documentation for this class was generated from the following file:
• transducers.cpp

5.332

spec2wave_if_t Class Reference

Inheritance diagram for spec2wave_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< spec2wave_t >

MHAPlugin::plugin_t
< spec2wave_t >

spec2wave_if_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.332

spec2wave_if_t Class Reference

1139

Public Member Functions
• spec2wave_if_t (const algo_comm_t &, const std::string &, const std::string &)
• void prepare ( mhaconfig_t &)
• mha_wave_t ∗ process ( mha_spec_t ∗)

Private Member Functions
• void update ()

Private Attributes
• MHAEvents::patchbay_t< spec2wave_if_t > patchbay
• MHAParser::float_t ramplen
• windowselector_t window_config

Additional Inherited Members
5.332.1

5.332.1.1

Constructor & Destructor Documentation

spec2wave_if_t()

spec2wave_if_t::spec2wave_if_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string &

5.332.2

5.332.2.1

)

Member Function Documentation

prepare()

void spec2wave_if_t::prepare (
mhaconfig_t & t ) [virtual]

Implements MHAPlugin::plugin_t< spec2wave_t > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

1140

5.332.2.2

CONTENTS

process()

mha_wave_t ∗ spec2wave_if_t::process (
mha_spec_t ∗ spec_in )

5.332.2.3

update()

void spec2wave_if_t::update ( ) [private]

5.332.3

Member Data Documentation

5.332.3.1

patchbay

MHAEvents::patchbay_t< spec2wave_if_t> spec2wave_if_t::patchbay [private]

5.332.3.2

ramplen

MHAParser::float_t spec2wave_if_t::ramplen [private]

5.332.3.3

window_config

windowselector_t spec2wave_if_t::window_config [private]

The documentation for this class was generated from the following file:
• spec2wave.cpp

5.333

spec2wave_t Class Reference

Public Member Functions
• spec2wave_t (unsigned int nfft_, unsigned int nwnd_, unsigned int nwndshift_, unsigned
int nch, mha_real_t ramplen, const MHAWindow::base_t &postwin)
• ∼spec2wave_t ()
• mha_wave_t ∗ process ( mha_spec_t ∗)
© 2005-2018 HörTech gGmbH, Oldenburg

5.333

spec2wave_t Class Reference

Private Attributes
• mha_fft_t ft
FFT class.

• unsigned int npad1
length of zero padding before window

• unsigned int npad2
length of zero padding after window

•
•
•
•
•
•
•
•

hanning_ramps_t ramps
MHASignal::waveform_t calc_out
MHASignal::waveform_t out_buf
MHASignal::waveform_t write_buf
mha_real_t sc
unsigned int nfft
unsigned int nwndshift
MHAWindow::base_t postwindow

5.333.1

5.333.1.1

Constructor & Destructor Documentation

spec2wave_t()

spec2wave_t::spec2wave_t (
unsigned int nfft_,
unsigned int nwnd_,
unsigned int nwndshift_,
unsigned int nch,
mha_real_t ramplen,
const

MHAWindow::base_t & postwin )

5.333.1.2 ∼spec2wave_t()
spec2wave_t::∼spec2wave_t ( )

5.333.2

5.333.2.1

Member Function Documentation

process()

mha_wave_t ∗ spec2wave_t::process (
mha_spec_t ∗ spec_in )
© 2005-2018 HörTech gGmbH, Oldenburg

1141

1142

5.333.3

5.333.3.1

CONTENTS

Member Data Documentation

ft

mha_fft_t spec2wave_t::ft [private]

FFT class.

5.333.3.2

npad1

unsigned int spec2wave_t::npad1 [private]

length of zero padding before window

5.333.3.3

npad2

unsigned int spec2wave_t::npad2 [private]

length of zero padding after window

5.333.3.4

ramps

hanning_ramps_t spec2wave_t::ramps [private]

5.333.3.5

calc_out

MHASignal::waveform_t spec2wave_t::calc_out [private]

5.333.3.6

out_buf

MHASignal::waveform_t spec2wave_t::out_buf [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.334

spec_fader_t Class Reference

5.333.3.7

1143

write_buf

MHASignal::waveform_t spec2wave_t::write_buf [private]

5.333.3.8

sc

mha_real_t spec2wave_t::sc [private]

5.333.3.9

nfft

unsigned int spec2wave_t::nfft [private]

5.333.3.10

nwndshift

unsigned int spec2wave_t::nwndshift [private]

5.333.3.11

postwindow

MHAWindow::base_t spec2wave_t::postwindow [private]

The documentation for this class was generated from the following file:
• spec2wave.cpp

5.334

spec_fader_t Class Reference

Public Member Functions
• spec_fader_t (unsigned int ch, mha_real_t fr, MHAParser::vfloat_t &ng, MHA←Parser::float_t &t)
• ∼spec_fader_t ()

Public Attributes
• unsigned int nch
• mha_real_t ∗ gains
• unsigned int fr
© 2005-2018 HörTech gGmbH, Oldenburg

1144

5.334.1

5.334.1.1

CONTENTS

Constructor & Destructor Documentation

spec_fader_t()

spec_fader_t::spec_fader_t (
unsigned int ch,
mha_real_t fr,
MHAParser::vfloat_t & ng,
MHAParser::float_t & t )

5.334.1.2 ∼spec_fader_t()
spec_fader_t::∼spec_fader_t ( ) [inline]

5.334.2

5.334.2.1

Member Data Documentation

nch

unsigned int spec_fader_t::nch

5.334.2.2

gains

mha_real_t∗ spec_fader_t::gains

5.334.2.3

fr

unsigned int spec_fader_t::fr

The documentation for this class was generated from the following file:
• fader_spec.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.335

speechnoise_t Class Reference

5.335

speechnoise_t Class Reference

1145

Inheritance diagram for speechnoise_t:

mha_wave_t

MHASignal::waveform_t

speechnoise_t

Public Types
• enum noise_type_t {
mha, olnoise, LTASS_combined, LTASS_female,
LTASS_male, white, pink, brown,
TEN_SPL, TEN_SPL_250_8k, TEN_SPL_50_16k, sin125,
sin250, sin500, sin1k, sin2k,
sin4k, sin8k }
Public Member Functions
• speechnoise_t (float duration, float srate, unsigned int channels, speechnoise_t←::noise_type_t noise_type= speechnoise_t::mha)
• speechnoise_t (unsigned int length_samples, float srate, unsigned int channels,
speechnoise_t::noise_type_t noise_type= speechnoise_t::mha)
Private Member Functions
• void creator ( speechnoise_t::noise_type_t noise_type, float srate)
Additional Inherited Members
5.335.1

Member Enumeration Documentation

5.335.1.1
enum

noise_type_t

speechnoise_t::noise_type_t

© 2005-2018 HörTech gGmbH, Oldenburg

1146

CONTENTS

Enumerator
mha
olnoise
LTASS_combined
LTASS_female
LTASS_male
white
pink
brown
TEN_SPL
TEN_SPL_250_8k
TEN_SPL_50_16k
sin125
sin250
sin500
sin1k
sin2k
sin4k
sin8k

5.335.2

5.335.2.1

Constructor & Destructor Documentation

speechnoise_t() [1/2]

speechnoise_t::speechnoise_t (
float duration,
float srate,
unsigned int channels,
speechnoise_t::noise_type_t noise_type =

5.335.2.2

speechnoise_t::mha )

speechnoise_t() [2/2]

speechnoise_t::speechnoise_t (
unsigned int length_samples,
float srate,
unsigned int channels,
speechnoise_t::noise_type_t noise_type =

speechnoise_t::mha )

© 2005-2018 HörTech gGmbH, Oldenburg

5.336

steerbf Class Reference

5.335.3

Member Function Documentation

5.335.3.1

1147

creator()

void speechnoise_t::creator (
speechnoise_t::noise_type_t noise_type,
float srate ) [private]

The documentation for this class was generated from the following files:

• speechnoise.h
• speechnoise.cpp

5.336

steerbf Class Reference

Inheritance diagram for steerbf:

MHAParser::base_t

MHAPlugin::config_t
< steerbf_config >

MHAParser::parser_t

MHAPlugin::plugin_t
< steerbf_config >

steerbf

© 2005-2018 HörTech gGmbH, Oldenburg

1148

CONTENTS

Public Member Functions
• steerbf ( algo_comm_t & ac, const std::string &chain_name, const std::string &algo_←name)
Constructs our plugin.

• ∼steerbf ()
• mha_spec_t ∗ process ( mha_spec_t ∗)
Defers to configuration class.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)

Public Attributes
• MHAParser::string_t bf_src
• parser_int_dyn angle_ind
• MHAParser::string_t angle_src

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< steerbf > patchbay

Additional Inherited Members
5.336.1

5.336.1.1

Constructor & Destructor Documentation

steerbf()

steerbf::steerbf (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.

© 2005-2018 HörTech gGmbH, Oldenburg

5.336

steerbf Class Reference

1149

5.336.1.2 ∼steerbf()
steerbf::∼steerbf ( )

5.336.2

5.336.2.1

Member Function Documentation

process()

mha_spec_t ∗ steerbf::process (
mha_spec_t ∗ signal )

Defers to configuration class.

5.336.2.2

prepare()

void steerbf::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.
Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< steerbf_config > (p. 884).

5.336.2.3

release()

void steerbf::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< steerbf_config > (p. 885).

© 2005-2018 HörTech gGmbH, Oldenburg

1150

5.336.2.4

CONTENTS

update_cfg()

void steerbf::update_cfg ( ) [private]

5.336.3

Member Data Documentation

5.336.3.1

bf_src

MHAParser::string_t steerbf::bf_src

5.336.3.2

angle_ind

parser_int_dyn steerbf::angle_ind

5.336.3.3

angle_src

MHAParser::string_t steerbf::angle_src

5.336.3.4

patchbay

MHAEvents::patchbay_t< steerbf> steerbf::patchbay [private]

The documentation for this class was generated from the following files:
• steerbf.h
• steerbf.cpp

5.337

steerbf_config Class Reference

Public Member Functions
• steerbf_config ( algo_comm_t & ac, const mhaconfig_t in_cfg, steerbf ∗ steerbf)
• ∼steerbf_config ()
• mha_spec_t ∗ process ( mha_spec_t ∗)
© 2005-2018 HörTech gGmbH, Oldenburg

5.337

steerbf_config Class Reference

Private Attributes
•
•
•
•
•
•
•
•

unsigned int nchan
unsigned int nfreq
MHASignal::spectrum_t outSpec
mha_spec_t bf_vec
unsigned int nangle
steerbf ∗ _steerbf
algo_comm_t & ac
std::string bf_src_copy

5.337.1

5.337.1.1

Constructor & Destructor Documentation

steerbf_config()

steerbf_config::steerbf_config (
algo_comm_t & ac,
const

mhaconfig_t in_cfg,

steerbf ∗ steerbf )

5.337.1.2 ∼steerbf_config()
steerbf_config::∼steerbf_config ( )

5.337.2

5.337.2.1

Member Function Documentation

process()

mha_spec_t ∗ steerbf_config::process (
mha_spec_t ∗ inSpec )

5.337.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1151

1152

5.337.3.1

CONTENTS

nchan

unsigned int steerbf_config::nchan [private]

5.337.3.2

nfreq

unsigned int steerbf_config::nfreq [private]

5.337.3.3

outSpec

MHASignal::spectrum_t steerbf_config::outSpec [private]

5.337.3.4

bf_vec

mha_spec_t steerbf_config::bf_vec [private]

5.337.3.5

nangle

unsigned int steerbf_config::nangle [private]

5.337.3.6

_steerbf

steerbf∗ steerbf_config::_steerbf [private]

5.337.3.7

ac

algo_comm_t& steerbf_config::ac [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.338

timo_AC Class Reference

5.337.3.8

1153

bf_src_copy

std::string steerbf_config::bf_src_copy [private]

The documentation for this class was generated from the following files:
• steerbf.h
• steerbf.cpp

5.338

timo_AC Class Reference

Public Member Functions
• timo_AC ( algo_comm_t &ac, unsigned int fftlen, unsigned int nfreq, unsigned int nchan)
• void copy ()
• void insert ()

Public Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

5.338.1

MHA_AC::waveform_t
MHA_AC::waveform_t
MHA_AC::spectrum_t
MHA_AC::spectrum_t
MHA_AC::waveform_t
MHA_AC::waveform_t
MHA_AC::waveform_t
MHA_AC::waveform_t
MHA_AC::waveform_t
MHA_AC::waveform_t
MHA_AC::waveform_t
MHA_AC::spectrum_t
MHA_AC::spectrum_t
MHA_AC::waveform_t
MHA_AC::waveform_t
MHA_AC::waveform_t
MHA_AC::waveform_t
MHA_AC::waveform_t

gamma_post_AC
xi_ml_AC
lambda_ml_AC
lambda_ml_ceps_AC
lambda_ml_smooth_AC
max_q_AC
max_val_AC
pitch_set_first_AC
pitch_set_last_AC
alpha_hat_AC
alpha_frame_AC
lambda_ceps_AC
log_lambda_spec_AC
lambda_spec_AC
xi_est_AC
gain_wiener_AC
winF0_AC
SPP

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1154

5.338.1.1

CONTENTS

timo_AC()

timo_AC::timo_AC (
algo_comm_t & ac,
unsigned int fftlen,
unsigned int nfreq,
unsigned int nchan ) [inline]

5.338.2

5.338.2.1

Member Function Documentation

copy()

void timo_AC::copy ( )

5.338.2.2

insert()

void timo_AC::insert ( )

5.338.3

5.338.3.1

Member Data Documentation

gamma_post_AC

MHA_AC::waveform_t timo_AC::gamma_post_AC

5.338.3.2

xi_ml_AC

MHA_AC::waveform_t timo_AC::xi_ml_AC

5.338.3.3

lambda_ml_AC

MHA_AC::spectrum_t timo_AC::lambda_ml_AC

© 2005-2018 HörTech gGmbH, Oldenburg

5.338

timo_AC Class Reference

5.338.3.4

lambda_ml_ceps_AC

MHA_AC::spectrum_t timo_AC::lambda_ml_ceps_AC

5.338.3.5

lambda_ml_smooth_AC

MHA_AC::waveform_t timo_AC::lambda_ml_smooth_AC

5.338.3.6

max_q_AC

MHA_AC::waveform_t timo_AC::max_q_AC

5.338.3.7

max_val_AC

MHA_AC::waveform_t timo_AC::max_val_AC

5.338.3.8

pitch_set_first_AC

MHA_AC::waveform_t timo_AC::pitch_set_first_AC

5.338.3.9

pitch_set_last_AC

MHA_AC::waveform_t timo_AC::pitch_set_last_AC

5.338.3.10

alpha_hat_AC

MHA_AC::waveform_t timo_AC::alpha_hat_AC

5.338.3.11

alpha_frame_AC

MHA_AC::waveform_t timo_AC::alpha_frame_AC

© 2005-2018 HörTech gGmbH, Oldenburg

1155

1156

5.338.3.12

CONTENTS

lambda_ceps_AC

MHA_AC::spectrum_t timo_AC::lambda_ceps_AC

5.338.3.13

log_lambda_spec_AC

MHA_AC::spectrum_t timo_AC::log_lambda_spec_AC

5.338.3.14

lambda_spec_AC

MHA_AC::waveform_t timo_AC::lambda_spec_AC

5.338.3.15

xi_est_AC

MHA_AC::waveform_t timo_AC::xi_est_AC

5.338.3.16

gain_wiener_AC

MHA_AC::waveform_t timo_AC::gain_wiener_AC

5.338.3.17

winF0_AC

MHA_AC::waveform_t timo_AC::winF0_AC

5.338.3.18

SPP

MHA_AC::waveform_t timo_AC::SPP

The documentation for this class was generated from the following files:
• timoconfig.h
• timoconfig.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.339

timo_params Class Reference

5.339

timo_params Class Reference

1157

Public Member Functions
• timo_params (const mhaconfig_t &_in_cfg, float _xi_min_db, float _f0_low, float _f0←_high, float _delta_pitch, float _lambda_thresh, float _alpha_pitch, float _beta_const, float
_kappa_const, float _prior_q, float _xi_opt_db, float _gain_min_db, std::vector< float >
&_winF0, std::vector< float > &_alpha_const_vals, std::vector< float > &_alpha_const←_limits_hz, std::string &_noisePow_name)

Public Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

const mhaconfig_t in_cfg
float xi_min_db
float f0_low
float f0_high
float delta_pitch
float lambda_thresh
float alpha_pitch
float beta_const
float kappa_const
float prior_q
float xi_opt_db
float gain_min_db
std::vector< float > winF0
std::vector< float > alpha_const_vals
std::vector< float > alpha_const_limits_hz
std::string noisePow_name

5.339.1

5.339.1.1

Constructor & Destructor Documentation

timo_params()

timo_params::timo_params (
const

mhaconfig_t & _in_cfg,

float _xi_min_db,
float _f0_low,
float _f0_high,
float _delta_pitch,
float _lambda_thresh,
float _alpha_pitch,
float _beta_const,
float _kappa_const,
float _prior_q,

© 2005-2018 HörTech gGmbH, Oldenburg

1158

CONTENTS

float _xi_opt_db,
float _gain_min_db,
std::vector< float > & _winF0,
std::vector< float > & _alpha_const_vals,
std::vector< float > & _alpha_const_limits_hz,
std::string & _noisePow_name ) [inline]

5.339.2

5.339.2.1
const

5.339.2.2

Member Data Documentation

in_cfg
mhaconfig_t timo_params::in_cfg

xi_min_db

float timo_params::xi_min_db

5.339.2.3

f0_low

float timo_params::f0_low

5.339.2.4

f0_high

float timo_params::f0_high

5.339.2.5

delta_pitch

float timo_params::delta_pitch

5.339.2.6

lambda_thresh

float timo_params::lambda_thresh

© 2005-2018 HörTech gGmbH, Oldenburg

5.339

timo_params Class Reference

5.339.2.7

alpha_pitch

float timo_params::alpha_pitch

5.339.2.8

beta_const

float timo_params::beta_const

5.339.2.9

kappa_const

float timo_params::kappa_const

5.339.2.10

prior_q

float timo_params::prior_q

5.339.2.11

xi_opt_db

float timo_params::xi_opt_db

5.339.2.12

gain_min_db

float timo_params::gain_min_db

5.339.2.13

winF0

std::vector timo_params::winF0

5.339.2.14

alpha_const_vals

std::vector timo_params::alpha_const_vals

© 2005-2018 HörTech gGmbH, Oldenburg

1159

1160

5.339.2.15

CONTENTS

alpha_const_limits_hz

std::vector timo_params::alpha_const_limits_hz

5.339.2.16

noisePow_name

std::string timo_params::noisePow_name

The documentation for this class was generated from the following file:
• timoconfig.h

5.340

timoConfig Class Reference

Public Member Functions
• timoConfig ( algo_comm_t & ac, timo_params & params)
• ∼timoConfig ()
• mha_spec_t ∗ process ( mha_spec_t ∗)

Private Member Functions
• void copy_AC ( timo_AC & tAC)

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

algo_comm_t ac
timo_params params
unsigned int fftlen
mha_fft_t mha_fft
unsigned int nfreq
unsigned int nchan
timo_AC tAC
float ola_powspec_scale
float q_low
float q_high
MHASignal::waveform_t
float xi_min
float gain_min
MHASignal::waveform_t
MHASignal::waveform_t
MHASignal::waveform_t

winF0

alpha_const
alpha_prev
noisePow
© 2005-2018 HörTech gGmbH, Oldenburg

5.340
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

timoConfig Class Reference

MHASignal::waveform_t
MHASignal::waveform_t
MHASignal::waveform_t
MHASignal::spectrum_t
MHASignal::spectrum_t
MHASignal::waveform_t
MHASignal::waveform_t
MHASignal::waveform_t
MHASignal::spectrum_t
MHASignal::waveform_t
MHASignal::spectrum_t
MHASignal::waveform_t
MHASignal::waveform_t
MHASignal::waveform_t
MHASignal::spectrum_t
double ∗ max_val
int ∗ max_q
int ∗ pitch_set_first
int ∗ pitch_set_last
float priorFact
float xiOpt
float logGLRFact
float GLRexp
MHASignal::waveform_t

5.340.1

5.340.1.1

powSpec
gamma_post
xi_ml
lambda_ml_full
lambda_ml_ceps
lambda_ml_smooth
alpha_hat
alpha_frame
lambda_ceps
lambda_ceps_prev
log_lambda_spec
lambda_spec
xi_est
gain_wiener
spec_out

GLR

Constructor & Destructor Documentation

timoConfig()

timoConfig::timoConfig (
algo_comm_t & ac,
timo_params & params )

5.340.1.2 ∼timoConfig()
timoConfig::∼timoConfig ( )

5.340.2

Member Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1161

1162

5.340.2.1

CONTENTS

process()

mha_spec_t ∗ timoConfig::process (
mha_spec_t ∗ noisyFrame )

5.340.2.2

copy_AC()

void timoConfig::copy_AC (
timo_AC & tAC ) [private]

5.340.3

5.340.3.1

Member Data Documentation

ac

algo_comm_t timoConfig::ac [private]

5.340.3.2

params

timo_params timoConfig::params [private]

5.340.3.3

fftlen

unsigned int timoConfig::fftlen [private]

5.340.3.4

mha_fft

mha_fft_t timoConfig::mha_fft [private]

5.340.3.5

nfreq

unsigned int timoConfig::nfreq [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.340

timoConfig Class Reference

5.340.3.6

nchan

unsigned int timoConfig::nchan [private]

5.340.3.7

tAC

timo_AC timoConfig::tAC [private]

5.340.3.8

ola_powspec_scale

float timoConfig::ola_powspec_scale [private]

5.340.3.9

q_low

float timoConfig::q_low [private]

5.340.3.10

q_high

float timoConfig::q_high [private]

5.340.3.11

winF0

MHASignal::waveform_t timoConfig::winF0 [private]

5.340.3.12

xi_min

float timoConfig::xi_min [private]

5.340.3.13

gain_min

float timoConfig::gain_min [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1163

1164

5.340.3.14

CONTENTS

alpha_const

MHASignal::waveform_t timoConfig::alpha_const [private]

5.340.3.15

alpha_prev

MHASignal::waveform_t timoConfig::alpha_prev [private]

5.340.3.16

noisePow

MHASignal::waveform_t timoConfig::noisePow [private]

5.340.3.17

powSpec

MHASignal::waveform_t timoConfig::powSpec [private]

5.340.3.18

gamma_post

MHASignal::waveform_t timoConfig::gamma_post [private]

5.340.3.19

xi_ml

MHASignal::waveform_t timoConfig::xi_ml [private]

5.340.3.20

lambda_ml_full

MHASignal::spectrum_t timoConfig::lambda_ml_full [private]

5.340.3.21

lambda_ml_ceps

MHASignal::spectrum_t timoConfig::lambda_ml_ceps [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.340

timoConfig Class Reference

5.340.3.22

lambda_ml_smooth

MHASignal::waveform_t timoConfig::lambda_ml_smooth [private]

5.340.3.23

alpha_hat

MHASignal::waveform_t timoConfig::alpha_hat [private]

5.340.3.24

alpha_frame

MHASignal::waveform_t timoConfig::alpha_frame [private]

5.340.3.25

lambda_ceps

MHASignal::spectrum_t timoConfig::lambda_ceps [private]

5.340.3.26

lambda_ceps_prev

MHASignal::waveform_t timoConfig::lambda_ceps_prev [private]

5.340.3.27

log_lambda_spec

MHASignal::spectrum_t timoConfig::log_lambda_spec [private]

5.340.3.28

lambda_spec

MHASignal::waveform_t timoConfig::lambda_spec [private]

5.340.3.29

xi_est

MHASignal::waveform_t timoConfig::xi_est [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1165

1166

5.340.3.30

CONTENTS

gain_wiener

MHASignal::waveform_t timoConfig::gain_wiener [private]

5.340.3.31

spec_out

MHASignal::spectrum_t timoConfig::spec_out [private]

5.340.3.32

max_val

double∗ timoConfig::max_val [private]

5.340.3.33

max_q

int∗ timoConfig::max_q [private]

5.340.3.34

pitch_set_first

int∗ timoConfig::pitch_set_first [private]

5.340.3.35

pitch_set_last

int∗ timoConfig::pitch_set_last [private]

5.340.3.36

priorFact

float timoConfig::priorFact [private]

5.340.3.37

xiOpt

float timoConfig::xiOpt [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.341

timoSmooth Class Reference

5.340.3.38

1167

logGLRFact

float timoConfig::logGLRFact [private]

5.340.3.39

GLRexp

float timoConfig::GLRexp [private]

5.340.3.40

GLR

MHASignal::waveform_t timoConfig::GLR [private]

The documentation for this class was generated from the following files:
• timoconfig.h
• timoconfig.cpp

5.341

timoSmooth Class Reference

Inheritance diagram for timoSmooth:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< timoConfig >

MHAPlugin::plugin_t
< timoConfig >

timoSmooth

© 2005-2018 HörTech gGmbH, Oldenburg

1168

CONTENTS

Public Member Functions
• timoSmooth ( algo_comm_t & ac, const std::string &chain_name, const std::string
&algo_name)
Constructs the beamforming plugin.

• ∼timoSmooth ()
• mha_spec_t ∗ process ( mha_spec_t ∗)
This plugin implements noise reduction using spectral subtraction: by nonnegative subtraction
from the output magnitude of the estimated noise magnitude spectrum.

• void prepare ( mhaconfig_t &)
Plugin preparation.

• void release (void)

Private Member Functions
• void update_cfg ()
• void on_model_param_valuechanged ()

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

MHAParser::float_t xi_min_db
MHAParser::float_t f0_low
MHAParser::float_t f0_high
MHAParser::float_t delta_pitch
MHAParser::float_t lambda_thresh
MHAParser::float_t alpha_pitch
MHAParser::float_t beta_const
MHAParser::float_t kappa_const
MHAParser::float_t gain_min_db
MHAParser::vfloat_t win_f0
MHAParser::vfloat_t alpha_const_vals
MHAParser::vfloat_t alpha_const_limits_hz
MHAParser::string_t noisePow_name
MHAParser::parser_t spp
MHAParser::float_t prior_q
MHAParser::float_t xi_opt_db
MHAEvents::patchbay_t< timoSmooth > patchbay
bool prepared

Additional Inherited Members
5.341.1

Constructor & Destructor Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.341

5.341.1.1

timoSmooth Class Reference

1169

timoSmooth()

timoSmooth::timoSmooth (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs the beamforming plugin.

5.341.1.2 ∼timoSmooth()
timoSmooth::∼timoSmooth ( )

5.341.2

5.341.2.1

Member Function Documentation

process()

mha_spec_t ∗ timoSmooth::process (
mha_spec_t ∗ signal )

This plugin implements noise reduction using spectral subtraction: by nonnegative subtraction
from the output magnitude of the estimated noise magnitude spectrum.
Parameters
signal

Pointer to the input signal structure.

Returns
Returns a pointer to the input signal structure, with a the signal modified by this plugin.

5.341.2.2

prepare()

void timoSmooth::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
This plugin checks that the input signal has the spectral domain and contains at least one
channel

© 2005-2018 HörTech gGmbH, Oldenburg

1170

CONTENTS

Parameters
signal_info

Structure containing a description of the form of the signal (domain, number of
channels, frames per block, sampling rate.

Implements MHAPlugin::plugin_t< timoConfig > (p. 884).

5.341.2.3

release()

void timoSmooth::release (
void

) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< timoConfig > (p. 885).

5.341.2.4

update_cfg()

void timoSmooth::update_cfg (
void

5.341.2.5

) [private]

on_model_param_valuechanged()

void timoSmooth::on_model_param_valuechanged ( ) [private]

5.341.3

5.341.3.1

Member Data Documentation

xi_min_db

MHAParser::float_t timoSmooth::xi_min_db [private]

5.341.3.2

f0_low

MHAParser::float_t timoSmooth::f0_low [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.341

timoSmooth Class Reference

5.341.3.3

f0_high

MHAParser::float_t timoSmooth::f0_high [private]

5.341.3.4

delta_pitch

MHAParser::float_t timoSmooth::delta_pitch [private]

5.341.3.5

lambda_thresh

MHAParser::float_t timoSmooth::lambda_thresh [private]

5.341.3.6

alpha_pitch

MHAParser::float_t timoSmooth::alpha_pitch [private]

5.341.3.7

beta_const

MHAParser::float_t timoSmooth::beta_const [private]

5.341.3.8

kappa_const

MHAParser::float_t timoSmooth::kappa_const [private]

5.341.3.9

gain_min_db

MHAParser::float_t timoSmooth::gain_min_db [private]

5.341.3.10

win_f0

MHAParser::vfloat_t timoSmooth::win_f0 [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1171

1172

5.341.3.11

CONTENTS

alpha_const_vals

MHAParser::vfloat_t timoSmooth::alpha_const_vals [private]

5.341.3.12

alpha_const_limits_hz

MHAParser::vfloat_t timoSmooth::alpha_const_limits_hz [private]

5.341.3.13

noisePow_name

MHAParser::string_t timoSmooth::noisePow_name [private]

5.341.3.14

spp

MHAParser::parser_t timoSmooth::spp [private]

5.341.3.15

prior_q

MHAParser::float_t timoSmooth::prior_q [private]

5.341.3.16

xi_opt_db

MHAParser::float_t timoSmooth::xi_opt_db [private]

5.341.3.17

patchbay

MHAEvents::patchbay_t< timoSmooth> timoSmooth::patchbay [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.342

us_t Class Reference

5.341.3.18

1173

prepared

bool timoSmooth::prepared [private]

The documentation for this class was generated from the following files:
• timosmooth.h
• timoSmooth.cpp

5.342

us_t Class Reference

Inheritance diagram for us_t:

MHAParser::base_t

MHAPlugin::config_t
< MHASignal::waveform_t >

MHAParser::parser_t

MHAPlugin::plugin_t
< MHASignal::waveform_t >

us_t

Public Member Functions
•
•
•
•

us_t ( algo_comm_t, std::string, std::string)
mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &)
void release ()

Private Attributes
• MHAParser::int_t ratio
• MHAFilter::iir_filter_t antialias
© 2005-2018 HörTech gGmbH, Oldenburg

1174

CONTENTS

Additional Inherited Members
5.342.1

5.342.1.1

Constructor & Destructor Documentation

us_t()

us_t::us_t (
algo_comm_t iac,
std::string ,
std::string

5.342.2

5.342.2.1

)

Member Function Documentation

process()

mha_wave_t ∗ us_t::process (
mha_wave_t ∗ s )

5.342.2.2

prepare()

void us_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< MHASignal::waveform_t > (p. 884).

5.342.2.3

release()

void us_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< MHASignal::waveform_t > (p. 885).

5.342.3

Member Data Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

5.343

wave2spec_if_t Class Reference

5.342.3.1

1175

ratio

MHAParser::int_t us_t::ratio [private]

5.342.3.2

antialias

MHAFilter::iir_filter_t us_t::antialias [private]

The documentation for this class was generated from the following file:
• upsample.cpp

5.343

wave2spec_if_t Class Reference

Inheritance diagram for wave2spec_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< wave2spec_t >

MHAPlugin::plugin_t
< wave2spec_t >

wave2spec_if_t

Public Member Functions
•
•
•
•

wave2spec_if_t (const algo_comm_t &, const std::string &, const std::string &)
void prepare ( mhaconfig_t &)
void process ( mha_wave_t ∗, mha_spec_t ∗∗)
void process ( mha_wave_t ∗, mha_wave_t ∗∗)

© 2005-2018 HörTech gGmbH, Oldenburg

1176

CONTENTS

Private Member Functions
• void update ()

Private Attributes
•
•
•
•
•
•
•

MHAEvents::patchbay_t< wave2spec_if_t > patchbay
MHAParser::int_t nfft
MHAParser::int_t nwnd
MHAParser::float_t wndpos
windowselector_t window_config
MHAParser::bool_t return_wave
std::string algo

Additional Inherited Members

5.343.1

5.343.1.1

Constructor & Destructor Documentation

wave2spec_if_t()

wave2spec_if_t::wave2spec_if_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string & ialg )

5.343.2

5.343.2.1

Member Function Documentation

prepare()

void wave2spec_if_t::prepare (
mhaconfig_t & t ) [virtual]

Implements MHAPlugin::plugin_t< wave2spec_t > (p. 884).

© 2005-2018 HörTech gGmbH, Oldenburg

5.343

5.343.2.2

wave2spec_if_t Class Reference

1177

process() [1/2]

void wave2spec_if_t::process (
mha_wave_t ∗ wave_in,
mha_spec_t ∗∗ sout )

5.343.2.3

process() [2/2]

void wave2spec_if_t::process (
mha_wave_t ∗ wave_in,
mha_wave_t ∗∗ sout )

5.343.2.4

update()

void wave2spec_if_t::update ( ) [private]

5.343.3

5.343.3.1

Member Data Documentation

patchbay

MHAEvents::patchbay_t< wave2spec_if_t> wave2spec_if_t::patchbay [private]

5.343.3.2

nfft

MHAParser::int_t wave2spec_if_t::nfft [private]

5.343.3.3

nwnd

MHAParser::int_t wave2spec_if_t::nwnd [private]

5.343.3.4

wndpos

MHAParser::float_t wave2spec_if_t::wndpos [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1178

5.343.3.5

CONTENTS

window_config

windowselector_t wave2spec_if_t::window_config [private]

5.343.3.6

return_wave

MHAParser::bool_t wave2spec_if_t::return_wave [private]

5.343.3.7

algo

std::string wave2spec_if_t::algo [private]

The documentation for this class was generated from the following file:
• wave2spec.cpp

5.344

wave2spec_t Class Reference

Inheritance diagram for wave2spec_t:

mha_spec_t

MHASignal::spectrum_t

MHA_AC::spectrum_t

wave2spec_t

© 2005-2018 HörTech gGmbH, Oldenburg

5.344

wave2spec_t Class Reference

1179

Public Member Functions
• wave2spec_t (unsigned int nfft, unsigned int nwnd_, unsigned int nwndshift_, unsigned
int nch, mha_real_t wndpos, const MHAWindow::base_t & window, algo_comm_t
ac, std::string algo)
• mha_spec_t ∗ process ( mha_wave_t ∗)
• ∼wave2spec_t ()

Private Member Functions
• void calc_pre_wnd ( MHASignal::waveform_t &, const MHASignal::waveform_t &)

Private Attributes
• unsigned int nwnd
• unsigned int nwndshift
• mha_fft_t ft
FFT class.

• unsigned int npad1
length of zero padding before window

• unsigned int npad2
length of zero padding after window

•
•
•
•

MHAWindow::base_t window
MHASignal::waveform_t calc_in
MHASignal::waveform_t in_buf
MHASignal::spectrum_t spec_in
non-interleaved, complex, fftlen

Additional Inherited Members
5.344.1

5.344.1.1

Constructor & Destructor Documentation

wave2spec_t()

wave2spec_t::wave2spec_t (
unsigned int nfft,
unsigned int nwnd_,
unsigned int nwndshift_,
unsigned int nch,
mha_real_t wndpos,
const

MHAWindow::base_t & window,

algo_comm_t ac,
std::string algo )

© 2005-2018 HörTech gGmbH, Oldenburg

1180

CONTENTS

5.344.1.2 ∼wave2spec_t()
wave2spec_t::∼wave2spec_t ( )

5.344.2

5.344.2.1

Member Function Documentation

process()

mha_spec_t ∗ wave2spec_t::process (
mha_wave_t ∗ wave_in )

5.344.2.2

calc_pre_wnd()

void wave2spec_t::calc_pre_wnd (
MHASignal::waveform_t & dest,
const

5.344.3

5.344.3.1

MHASignal::waveform_t & src ) [private]

Member Data Documentation

nwnd

unsigned int wave2spec_t::nwnd [private]

5.344.3.2

nwndshift

unsigned int wave2spec_t::nwndshift [private]

5.344.3.3

ft

mha_fft_t wave2spec_t::ft [private]

FFT class.

© 2005-2018 HörTech gGmbH, Oldenburg

5.344

5.344.3.4

wave2spec_t Class Reference

1181

npad1

unsigned int wave2spec_t::npad1 [private]

length of zero padding before window

5.344.3.5

npad2

unsigned int wave2spec_t::npad2 [private]

length of zero padding after window

5.344.3.6

window

MHAWindow::base_t wave2spec_t::window [private]

5.344.3.7

calc_in

MHASignal::waveform_t wave2spec_t::calc_in [private]

5.344.3.8

in_buf

MHASignal::waveform_t wave2spec_t::in_buf [private]

5.344.3.9

spec_in

MHASignal::spectrum_t wave2spec_t::spec_in [private]

non-interleaved, complex, fftlen
The documentation for this class was generated from the following file:
• wave2spec.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

1182

5.345

CONTENTS

wavrec_t Class Reference

Inheritance diagram for wavrec_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< wavwriter_t >

MHAPlugin::plugin_t
< wavwriter_t >

wavrec_t

Public Member Functions
•
•
•
•

mha_wave_t ∗ process ( mha_wave_t ∗)
void prepare ( mhaconfig_t &cf)
void release ()
wavrec_t (const algo_comm_t &iac, const std::string &, const std::string &)

Private Member Functions
• void start_new_session ()

Private Attributes
•
•
•
•
•
•

MHAParser::bool_t record
MHAParser::int_t fifolen
MHAParser::int_t minwrite
MHAParser::string_t prefix
MHAParser::bool_t use_date
MHAEvents::patchbay_t< wavrec_t > patchbay
© 2005-2018 HörTech gGmbH, Oldenburg

5.345

wavrec_t Class Reference

1183

Additional Inherited Members
5.345.1

5.345.1.1

Constructor & Destructor Documentation

wavrec_t()

wavrec_t::wavrec_t (
const

algo_comm_t & iac,

const std::string & ,
const std::string & algo_name )

5.345.2

5.345.2.1

Member Function Documentation

process()

mha_wave_t ∗ wavrec_t::process (
mha_wave_t ∗ s )

5.345.2.2

prepare()

void wavrec_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< wavwriter_t > (p. 884).

5.345.2.3

release()

void wavrec_t::release (
void

) [virtual]

Reimplemented from MHAPlugin::plugin_t< wavwriter_t > (p. 885).

5.345.2.4

start_new_session()

void wavrec_t::start_new_session ( ) [private]

© 2005-2018 HörTech gGmbH, Oldenburg

1184

5.345.3

5.345.3.1

CONTENTS

Member Data Documentation

record

MHAParser::bool_t wavrec_t::record [private]

5.345.3.2

fifolen

MHAParser::int_t wavrec_t::fifolen [private]

5.345.3.3

minwrite

MHAParser::int_t wavrec_t::minwrite [private]

5.345.3.4

prefix

MHAParser::string_t wavrec_t::prefix [private]

5.345.3.5

use_date

MHAParser::bool_t wavrec_t::use_date [private]

5.345.3.6

patchbay

MHAEvents::patchbay_t< wavrec_t> wavrec_t::patchbay [private]

The documentation for this class was generated from the following file:
• wavrec.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

5.346

wavwriter_t Class Reference

5.346

wavwriter_t Class Reference

1185

Public Member Functions
• wavwriter_t (bool active, const mhaconfig_t &cf, unsigned int fifosize, unsigned int
minwrite, const std::string &prefix, bool use_date)
• ∼wavwriter_t ()
• void process ( mha_wave_t ∗)

Private Member Functions
• void write_thread ()

Static Private Member Functions
• static void ∗ write_thread (void ∗this_)

Private Attributes
•
•
•
•
•
•
•
•

bool close_session
bool act_
mhaconfig_t cf_
SNDFILE ∗ sf
mha_fifo_t< mha_real_t > fifo
unsigned int minw_
pthread_t writethread
float ∗ data

5.346.1

5.346.1.1

Constructor & Destructor Documentation

wavwriter_t()

wavwriter_t::wavwriter_t (
bool active,
const

mhaconfig_t & cf,

unsigned int fifosize,
unsigned int minwrite,
const std::string & prefix,
bool use_date )

© 2005-2018 HörTech gGmbH, Oldenburg

1186

CONTENTS

5.346.1.2 ∼wavwriter_t()
wavwriter_t::∼wavwriter_t ( )

5.346.2

5.346.2.1

Member Function Documentation

process()

void wavwriter_t::process (
mha_wave_t ∗ s )

5.346.2.2

write_thread() [1/2]

static void∗ wavwriter_t::write_thread (
void ∗ this_ ) [inline], [static], [private]

5.346.2.3

write_thread() [2/2]

void wavwriter_t::write_thread ( ) [private]

5.346.3

5.346.3.1

Member Data Documentation

close_session

bool wavwriter_t::close_session [private]

5.346.3.2

act_

bool wavwriter_t::act_ [private]

© 2005-2018 HörTech gGmbH, Oldenburg

5.347

windowselector_t Class Reference

5.346.3.3

1187

cf_

mhaconfig_t wavwriter_t::cf_ [private]

5.346.3.4

sf

SNDFILE∗ wavwriter_t::sf [private]

5.346.3.5

fifo

mha_fifo_t< mha_real_t> wavwriter_t::fifo [private]

5.346.3.6

minw_

unsigned int wavwriter_t::minw_ [private]

5.346.3.7

writethread

pthread_t wavwriter_t::writethread [private]

5.346.3.8

data

float∗ wavwriter_t::data [private]

The documentation for this class was generated from the following file:
• wavrec.cpp

5.347

windowselector_t Class Reference

A combination of mha parser variables to describe an overalapadd analysis window.
© 2005-2018 HörTech gGmbH, Oldenburg

1188

CONTENTS

Public Member Functions
• windowselector_t (const std::string &default_type)
constructor creates the mha parser variables that describe an overlapadd analysis window.

• ∼windowselector_t ()
destructor frees window data that were allocated

• const MHAWindow::base_t & get_window_data (unsigned length)
re-computes the window if required.

• void insert_items ( MHAParser::parser_t ∗p)
insert the window parameters "wndtype", "wndexp", and "userwnd" as mha configuration parameters into the given mha configuration parser.

Public Attributes
• MHAEvents::emitter_t updated
A collector event that fires when any of the window parameters managed here is written to.

Private Member Functions
• void invalidate_window_data ()
invalidates any allocated window samples.

• void update_parser ()
invoked when a parser parameter changes.

Private Attributes
• MHAWindow::base_t ∗ wnd
Storage for the window data returned by get_window_data() ( p. 1189)

• MHAParser::kw_t wndtype
parser variable for window type

• MHAParser::float_t wndexp
parser variable for window exponent

• MHAParser::vfloat_t userwnd
parser variable for user window samples to use

• MHAEvents::patchbay_t< windowselector_t > patchbay
patchbay to watch for changes for the parser variables

5.347.1

Detailed Description

A combination of mha parser variables to describe an overalapadd analysis window.
Provides a method to get the window samples as an instance of MHAWindow::base_←t (p. 1022) when needed.
© 2005-2018 HörTech gGmbH, Oldenburg

5.347

windowselector_t Class Reference

5.347.2

Constructor & Destructor Documentation

5.347.2.1

1189

windowselector_t()

windowselector_t::windowselector_t (
const std::string & default_type )

constructor creates the mha parser variables that describe an overlapadd analysis window.
Parameters
default_type

name of the default analysis window type. Must be one of: "rect", "bartlett",
"hanning", "hamming", "blackman"

5.347.2.2 ∼windowselector_t()
windowselector_t::∼windowselector_t ( )

destructor frees window data that were allocated

5.347.3

5.347.3.1
const

Member Function Documentation

get_window_data()
MHAWindow::base_t & windowselector_t::get_window_data (
unsigned length )

re-computes the window if required.
Parameters
length

the desired window length in samples return the window's samples as a constref to
MHAWindow::base_t (p. 1022) instance. The referenced instance lives until the
window parameters are changed, or this windowselector_t (p. 1187) instance is
destroyed.

© 2005-2018 HörTech gGmbH, Oldenburg

1190

5.347.3.2

CONTENTS

insert_items()

void windowselector_t::insert_items (
MHAParser::parser_t ∗ p )

insert the window parameters "wndtype", "wndexp", and "userwnd" as mha configuration parameters into the given mha configuration parser.
Parameters
p

The configuration parser where to insert the window parameters. E.g. the plugin
wave2spec's interface class.

5.347.3.3

invalidate_window_data()

void windowselector_t::invalidate_window_data ( ) [private]

invalidates any allocated window samples.

5.347.3.4

update_parser()

void windowselector_t::update_parser ( ) [private]

invoked when a parser parameter changes.
Calls invalidate_window_data() (p. 1190) and emits the updated event.

5.347.4

5.347.4.1

Member Data Documentation

updated

MHAEvents::emitter_t windowselector_t::updated

A collector event that fires when any of the window parameters managed here is written to.

© 2005-2018 HörTech gGmbH, Oldenburg

5.347

5.347.4.2

windowselector_t Class Reference

1191

wnd

MHAWindow::base_t∗ windowselector_t::wnd [private]

Storage for the window data returned by get_window_data() (p. 1189)

5.347.4.3

wndtype

MHAParser::kw_t windowselector_t::wndtype [private]

parser variable for window type

5.347.4.4

wndexp

MHAParser::float_t windowselector_t::wndexp [private]

parser variable for window exponent

5.347.4.5

userwnd

MHAParser::vfloat_t windowselector_t::userwnd [private]

parser variable for user window samples to use

5.347.4.6

patchbay

MHAEvents::patchbay_t< windowselector_t> windowselector_t::patchbay [private]

patchbay to watch for changes for the parser variables
The documentation for this class was generated from the following files:
• windowselector.h
• windowselector.cpp
© 2005-2018 HörTech gGmbH, Oldenburg

1192

6

CONTENTS

File Documentation

6.1

ac2wave.cpp File Reference

Classes
• class ac2wave_t
• class ac2wave_if_t

6.2

ac_monitor_type.cpp File Reference

6.3

ac_monitor_type.hh File Reference

Classes
• class acmon::ac_monitor_t
A class for converting AC variables to Parser monitors of correct type.

Namespaces
• acmon
Namespace for displaying ac variables as parser monitors.

6.4

acConcat_wave.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this, & acConcat_←wave::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)

6.4.1

6.4.1.1

Macro Definition Documentation

PATCH_VAR

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, & acConcat_wave::update←_cfg)

© 2005-2018 HörTech gGmbH, Oldenburg

6.5

acConcat_wave.h File Reference

6.4.1.2

1193

INSERT_PATCH

#define INSERT_PATCH(
var )

6.5

insert_member(var);

PATCH_VAR(var)

acConcat_wave.h File Reference

Classes
• class acConcat_wave_config
• class acConcat_wave

6.6

acmon.cpp File Reference

Classes
• class acmon::acmon_t

Namespaces
• acmon
Namespace for displaying ac variables as parser monitors.

6.7

acPooling_wave.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this, & acPooling_←wave::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)

6.7.1

6.7.1.1

Macro Definition Documentation

PATCH_VAR

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, & acPooling_wave::update←_cfg)

© 2005-2018 HörTech gGmbH, Oldenburg

1194

6.7.1.2

CONTENTS

INSERT_PATCH

#define INSERT_PATCH(
var )

6.8

insert_member(var);

PATCH_VAR(var)

acPooling_wave.h File Reference

Classes
• class acPooling_wave_config
• class acPooling_wave

6.9

acsave.cpp File Reference

Classes
•
•
•
•

class
class
class
struct

acsave::save_var_t
acsave::cfg_t
acsave::acsave_t
acsave::mat4head_t

Namespaces
• acsave

Macros
•
•
•
•
•
•

#define
#define
#define
#define
#define
#define

6.9.1

6.9.1.1

ACSAVE_FMT_TXT 0
ACSAVE_SFMT_TXT "txt"
ACSAVE_FMT_MAT4 1
ACSAVE_SFMT_MAT4 "mat4"
ACSAVE_FMT_M 2
ACSAVE_SFMT_M "m"

Macro Definition Documentation

ACSAVE_FMT_TXT

#define ACSAVE_FMT_TXT 0

© 2005-2018 HörTech gGmbH, Oldenburg

6.10

acSteer.cpp File Reference

6.9.1.2

1195

ACSAVE_SFMT_TXT

#define ACSAVE_SFMT_TXT "txt"

6.9.1.3

ACSAVE_FMT_MAT4

#define ACSAVE_FMT_MAT4 1

6.9.1.4

ACSAVE_SFMT_MAT4

#define ACSAVE_SFMT_MAT4 "mat4"

6.9.1.5

ACSAVE_FMT_M

#define ACSAVE_FMT_M 2

6.9.1.6

ACSAVE_SFMT_M

#define ACSAVE_SFMT_M "m"

6.10

acSteer.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this, & acSteer←::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)

6.10.1

6.10.1.1

Macro Definition Documentation

PATCH_VAR

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, & acSteer::update_cfg)

© 2005-2018 HörTech gGmbH, Oldenburg

1196

6.10.1.2

CONTENTS

INSERT_PATCH

#define INSERT_PATCH(
var )

6.11

insert_member(var);

PATCH_VAR(var)

acSteer.h File Reference

Classes
• class acSteer_config
• class acSteer

6.12

acTransform_wave.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this, & acTransform←_wave::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)

6.12.1

Macro Definition Documentation

6.12.1.1

PATCH_VAR

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, & acTransform_wave←::update_cfg)

6.12.1.2

INSERT_PATCH

#define INSERT_PATCH(
var )

6.13

insert_member(var);

PATCH_VAR(var)

acTransform_wave.h File Reference

Classes
• class acTransform_wave_config
• class acTransform_wave
© 2005-2018 HörTech gGmbH, Oldenburg

6.14

adm.cpp File Reference

6.14

adm.cpp File Reference

1197

Classes
• class adm_rtconfig_t
• class adm_if_t

Functions
• MHASignal::waveform_t ∗ adm_fir_lp (unsigned int fs, unsigned f_pass, unsigned int
f_stop, unsigned int order)
• MHASignal::waveform_t ∗ adm_fir_decomb (unsigned int fs, float dist_m, unsigned
int order)

6.14.1

Function Documentation

6.14.1.1

adm_fir_lp()

MHASignal::waveform_t∗ adm_fir_lp (
unsigned int fs,
unsigned f_pass,
unsigned int f_stop,
unsigned int order )

6.14.1.2

adm_fir_decomb()

MHASignal::waveform_t∗ adm_fir_decomb (
unsigned int fs,
float dist_m,
unsigned int order )

6.15

adm.hh File Reference

Classes
• class ADM::Linearphase_FIR< F >
An efficient linear-phase fir filter implementation.

• class ADM::Delay< F >
A delay-line class which can also do subsample-delays for a limited frequency range below
fs/4.

• class ADM::ADM< F >
Adaptive differential microphone, working for speech frequency range.
© 2005-2018 HörTech gGmbH, Oldenburg

1198

CONTENTS

Namespaces
• ADM

Functions
• static double ADM::subsampledelay_coeff (double samples, double f_design, double
fs=1.0)
compute IIR coefficient for subsample delay

Variables
•
•
•
•

6.16

const double
const double
const double
const double

ADM::PI = 3.14159265358979312
ADM::C = 340
ADM::DELAY_FREQ = 2000
ADM::START_BETA = 0.5

altplugs.cpp File Reference

Classes
• class mhaplug_cfg_t
• class altplugs_t

Macros
• #define MHAPLUGIN_OVERLOAD_OUTDOMAIN

6.16.1

Macro Definition Documentation

6.16.1.1

MHAPLUGIN_OVERLOAD_OUTDOMAIN

#define MHAPLUGIN_OVERLOAD_OUTDOMAIN

6.17

analysemhaplugin.cpp File Reference

Functions
• std::string strdom ( mha_domain_t d)
• void print_ac ( MHAKernel::algo_comm_class_t &ac, std::string txt)
• int main (int argc, char ∗∗argv)
© 2005-2018 HörTech gGmbH, Oldenburg

6.18

analysispath.cpp File Reference

6.17.1

Function Documentation

6.17.1.1

strdom()

std::string strdom (
mha_domain_t d )

6.17.1.2

print_ac()

void print_ac (
MHAKernel::algo_comm_class_t & ac,
std::string txt )

6.17.1.3

main()

int main (
int argc,
char ∗∗ argv )

6.18

analysispath.cpp File Reference

Classes
• class analysepath_t
• class plug_t
• class analysispath_if_t

Functions
• static void ∗ thread_start (void ∗instance)

6.18.1

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1199

1200

6.18.1.1

CONTENTS

thread_start()

static void∗ thread_start (
void ∗ instance ) [static]

6.19

auditory_profile.cpp File Reference

6.20

auditory_profile.h File Reference

Classes
• class AuditoryProfile::fmap_t
A class to store frequency dependent data (e.g., HTL and UCL).

• class AuditoryProfile::profile_t
The Auditory Profile class.

• class AuditoryProfile::profile_t::ear_t
Class for ear-dependent parameters, e.g., audiograms or unilateral loudness scaling.

• class AuditoryProfile::parser_t
Class to make the auditory profile accessible through the parser interface.

• class AuditoryProfile::parser_t::fmap_t
• class AuditoryProfile::parser_t::ear_t

Namespaces
• AuditoryProfile
Namespace for classes and functions around the auditory profile (e.g., audiogram handling)

6.21

browsemhaplugins.cpp File Reference

Macros
• #define DEBUG(x) std::cerr << __FILE__ << ":" << __LINE__ << " " << #x<<"="< MHA_AC::get_var_vfloat ( algo_comm_t ac, const std::string
&name)
Return value of an floating point vector AC variable as standard vector of floats.

6.82.1

Detailed Description

Header file for Algorithm Communication.

6.83

mha_algo_comm.hh File Reference

Classes
• class MHAKernel::comm_var_map_t
• class MHAKernel::algo_comm_class_t

Namespaces
• MHAKernel

Macros
• #define ALGO_COMM_ID_STR "MFVK3jL5rmeus1XtggEI971aXCR/GU7RRehKz4k←Qtrg="
© 2005-2018 HörTech gGmbH, Oldenburg

6.84

mha_defs.h File Reference

1231

Functions
• algo_comm_class_t ∗ MHAKernel::algo_comm_safe_cast (void ∗)

Variables
• algo_comm_t algo_comm_default

6.83.1

Macro Definition Documentation

6.83.1.1

ALGO_COMM_ID_STR

#define ALGO_COMM_ID_STR "MFVK3jL5rmeus1XtggEI971aXCR/GU7RRehKz4kQtrg="

6.83.2

Variable Documentation

6.83.2.1

algo_comm_default

algo_comm_t algo_comm_default

6.84

mha_defs.h File Reference

Preprocessor definitions common to all MHA components.

Macros
• #define __MHA_FUN__ __FUNC__
• #define CHECK_EXPR(x) {if(!(x)){throw MHA_Error(__FILE__,__LINE__,"The expression \"" #x "\" is invalid.");}}
• #define CHECK_VAR(x) {if(!(x)){throw MHA_Error(__FILE__,__LINE__,"The variable
\"" #x "\" is not defined.");}}
• #define __declspec(p)
• #define M_PI 3.14159265358979323846
Define pi if it is not defined yet.

• #define MIN(a, b) (((a)<(b))?(a):(b))
Macro for minimum function.

• #define MAX(a, b) (((a)>(b))?(a):(b))
Macro for maximum function.

• #define MHA_EAR_LEFT 0
• #define MHA_EAR_RIGHT 1
• #define MHA_EAR_MAX 2
© 2005-2018 HörTech gGmbH, Oldenburg

1232

6.84.1

CONTENTS

Detailed Description

Preprocessor definitions common to all MHA components.
This file contains all preprocessor and type definitions which are common to all Master Hearing
Aid components.

6.84.2

6.84.2.1

Macro Definition Documentation

__MHA_FUN__

#define __MHA_FUN__ __FUNC__

6.84.2.2

CHECK_EXPR

#define CHECK_EXPR(
x ) {if(!(x)){throw

MHA_Error(__FILE__,__LINE__,"The expression \"" #x

"\" is invalid.");}}

6.84.2.3

CHECK_VAR

#define CHECK_VAR(
x ) {if(!(x)){throw

MHA_Error(__FILE__,__LINE__,"The variable \"" #x

"\" is not defined.");}}

6.84.2.4

__declspec

#define __declspec(
p )

6.84.2.5

M_PI

#define M_PI 3.14159265358979323846

Define pi if it is not defined yet.

© 2005-2018 HörTech gGmbH, Oldenburg

6.85

mha_errno.c File Reference

6.84.2.6

MIN

#define MIN(
a,
b ) (((a)<(b))?(a):(b))

Macro for minimum function.

6.84.2.7

MAX

#define MAX(
a,
b ) (((a)>(b))?(a):(b))

Macro for maximum function.

6.84.2.8

MHA_EAR_LEFT

#define MHA_EAR_LEFT 0

6.84.2.9

MHA_EAR_RIGHT

#define MHA_EAR_RIGHT 1

6.84.2.10

MHA_EAR_MAX

#define MHA_EAR_MAX 2

6.85

mha_errno.c File Reference

Macros
• #define STRLEN 0x1000

Functions
• const char ∗ mha_strerror (int mhaerrno)
• void mha_set_user_error (const char ∗str)
© 2005-2018 HörTech gGmbH, Oldenburg

1233

1234

CONTENTS

Variables
• char next_except_str [ STRLEN] = ""
• const char ∗ cstr_strerror [ MHA_ERR_USER]

6.85.1

6.85.1.1

Macro Definition Documentation

STRLEN

#define STRLEN 0x1000

6.85.2

6.85.2.1

Function Documentation

mha_strerror()

const char∗ mha_strerror (
int mhaerrno )

6.85.2.2

mha_set_user_error()

void mha_set_user_error (
const char ∗ str )

6.85.3

6.85.3.1

Variable Documentation

next_except_str

char next_except_str[ STRLEN] = ""

6.85.3.2

cstr_strerror

const char∗ cstr_strerror[ MHA_ERR_USER]

© 2005-2018 HörTech gGmbH, Oldenburg

6.86

mha_errno.h File Reference

6.86

mha_errno.h File Reference

Macros
•
•
•
•
•
•
•

#define
#define
#define
#define
#define
#define
#define

MHA_ERR_SUCCESS 0
MHA_ERR_UNKNOWN 1
MHA_ERR_INVALID_HANDLE 2
MHA_ERR_NULL 3
MHA_ERR_VARRANGE 4
MHA_ERR_VARFMT 5
MHA_ERR_USER 10000

Functions
• const char ∗ mha_strerror (int mhaerrno)
• void mha_set_user_error (const char ∗str)

6.86.1

6.86.1.1

Macro Definition Documentation

MHA_ERR_SUCCESS

#define MHA_ERR_SUCCESS 0

6.86.1.2

MHA_ERR_UNKNOWN

#define MHA_ERR_UNKNOWN 1

6.86.1.3

MHA_ERR_INVALID_HANDLE

#define MHA_ERR_INVALID_HANDLE 2

6.86.1.4

MHA_ERR_NULL

#define MHA_ERR_NULL 3

© 2005-2018 HörTech gGmbH, Oldenburg

1235

1236

6.86.1.5

CONTENTS

MHA_ERR_VARRANGE

#define MHA_ERR_VARRANGE 4

6.86.1.6

MHA_ERR_VARFMT

#define MHA_ERR_VARFMT 5

6.86.1.7

MHA_ERR_USER

#define MHA_ERR_USER 10000

6.86.2

Function Documentation

6.86.2.1

mha_strerror()

const char∗ mha_strerror (
int mhaerrno )

6.86.2.2

mha_set_user_error()

void mha_set_user_error (
const char ∗ str )

6.87

mha_error.cpp File Reference

Implementation of openMHA error handling.

Namespaces
• mha_error_helpers
© 2005-2018 HörTech gGmbH, Oldenburg

6.88

mha_error.hh File Reference

1237

Functions
• unsigned mha_error_helpers::digits (unsigned n)
Compute number of decimal digits required to represent an unsigned integer.

• unsigned mha_error_helpers::snprintf_required_length (const char ∗formatstring,...)
snprintf_required_length Compute the number of bytes (excluding the terminating nul) required
to store the result of an snprintf.

• void mha_debug (const char ∗fmt,...)
Print an info message (stderr on Linux, OutputDebugString in Windows).

6.87.1

Detailed Description

Implementation of openMHA error handling.
This file forms a seperate library.

6.88

mha_error.hh File Reference

Classes
• class MHA_Error
Error reporting exception class.

Namespaces
• mha_error_helpers

Macros
• #define Getmsg(e) ((e).get_msg())
• #define MHA_ErrorMsg(x) MHA_Error(__FILE__,__LINE__,"%s",x)
Throw an openMHA error with a text message.

• #define MHA_assert(x) if(!(x)) throw
false.",#x)

MHA_Error(__FILE__,__LINE__,"\"%s\" is

Assertion macro, which throws an MHA_Error ( p. 522).

• #define MHA_assert_equal(a, b) if( a != b ) throw MHA_Error(__FILE__,__LINE__←,"\"%s == %s\" is false (%s = %g, %s = %g).",#a,#b,#a,(double)(a),#b,(double)(b))
Equality assertion macro, which throws an MHA_Error ( p. 522) with the values.
© 2005-2018 HörTech gGmbH, Oldenburg

1238

CONTENTS

Functions
• void mha_debug (const char ∗fmt,...)
Print an info message (stderr on Linux, OutputDebugString in Windows).

• unsigned mha_error_helpers::digits (unsigned n)
Compute number of decimal digits required to represent an unsigned integer.

• unsigned mha_error_helpers::snprintf_required_length (const char ∗formatstring,...)
snprintf_required_length Compute the number of bytes (excluding the terminating nul) required
to store the result of an snprintf.

6.88.1

Macro Definition Documentation

6.88.1.1

Getmsg

#define Getmsg(
e ) ((e).get_msg())

6.89

mha_event_emitter.h File Reference

Classes
• class MHAEvents::connector_base_t
• class MHAEvents::emitter_t
Class for emitting openMHA events.

Namespaces
• MHAEvents
Collection of event handling classes.

6.90

mha_events.cpp File Reference

6.91

mha_events.h File Reference

Classes
• class MHAEvents::connector_t< receiver_t >
• class MHAEvents::patchbay_t< receiver_t >
Patchbay which connects any event emitter with any member function of the parameter class.
© 2005-2018 HörTech gGmbH, Oldenburg

6.92

mha_fftfb.cpp File Reference

1239

Namespaces
• MHAEvents
Collection of event handling classes.

6.92

mha_fftfb.cpp File Reference

Classes
• class MHAOvlFilter::barkscale::hz2bark_t
• class MHAOvlFilter::barkscale::bark2hz_t

Namespaces
• MHAOvlFilter
Namespace for overlapping FFT based filter bank classes and functions.

• MHAOvlFilter::barkscale
• MHAOvlFilter::FreqScaleFun
Transform functions from linear scale in Hz to new frequency scales.

• MHAOvlFilter::ShapeFun
Shape functions for overlapping filters.

Macros
• #define BARKSCALE_ENTRIES 50

Functions
• mha_real_t MHAOvlFilter::FreqScaleFun::hz2hz ( mha_real_t x)
Dummy scale transformation Hz to Hz.

•
•
•
•

mha_real_t
mha_real_t
mha_real_t
mha_real_t

MHAOvlFilter::FreqScaleFun::hz2khz ( mha_real_t x)
MHAOvlFilter::FreqScaleFun::hz2octave ( mha_real_t x)
MHAOvlFilter::FreqScaleFun::hz2third_octave ( mha_real_t x)
MHAOvlFilter::FreqScaleFun::hz2bark ( mha_real_t x)

Transformation to bark scale.

•
•
•
•

mha_real_t
mha_real_t
mha_real_t
mha_real_t

MHAOvlFilter::FreqScaleFun::hz2bark_analytic ( mha_real_t)
MHAOvlFilter::FreqScaleFun::hz2erb ( mha_real_t)
MHAOvlFilter::FreqScaleFun::hz2erb_glasberg1990 ( mha_real_t)
MHAOvlFilter::FreqScaleFun::hz2log ( mha_real_t x)

Third octave frequency scale.

• mha_real_t MHAOvlFilter::FreqScaleFun::inv_scale ( mha_real_t, mha_real_t(∗)(
mha_real_t))
• mha_real_t MHAOvlFilter::ShapeFun::rect ( mha_real_t x)
© 2005-2018 HörTech gGmbH, Oldenburg

1240

CONTENTS

Filter shape function for rectangular filters.

• mha_real_t MHAOvlFilter::ShapeFun::linear ( mha_real_t x)
Filter shape function for sawtooth filters.

• mha_real_t MHAOvlFilter::ShapeFun::hann ( mha_real_t x)
Filter shape function for hanning shaped filters.

• mha_real_t MHAOvlFilter::ShapeFun::expflt ( mha_real_t)
• mha_real_t MHAOvlFilter::ShapeFun::gauss ( mha_real_t)
• mha_real_t filtershapefun ( mha_real_t f,
mha_real_t plateau)

MHAOvlFilter::band_descriptor_t b,

Variables
• mha_real_t MHAOvlFilter::barkscale::vfreq [ BARKSCALE_ENTRIES]
• mha_real_t MHAOvlFilter::barkscale::vbark [ BARKSCALE_ENTRIES]

6.92.1

6.92.1.1

Macro Definition Documentation

BARKSCALE_ENTRIES

#define BARKSCALE_ENTRIES 50

6.92.2

6.92.2.1

Function Documentation

filtershapefun()

mha_real_t filtershapefun (
mha_real_t f,
MHAOvlFilter::band_descriptor_t b,
mha_real_t plateau )

© 2005-2018 HörTech gGmbH, Oldenburg

6.93

mha_fftfb.hh File Reference

6.93

mha_fftfb.hh File Reference

1241

Classes
•
•
•
•
•

class
class
class
class
class

MHAOvlFilter::band_descriptor_t
MHAOvlFilter::scale_var_t
MHAOvlFilter::fscale_t
MHAOvlFilter::fscale_bw_t
MHAOvlFilter::fftfb_vars_t

Set of configuration variables for FFT-based overlapping filters.

• class MHAOvlFilter::fspacing_t
Class for frequency spacing, used by filterbank shape generator class.

• class MHAOvlFilter::fftfb_t
FFT based overlapping filter bank.

• class MHAOvlFilter::overlap_save_filterbank_t
A time-domain minimal phase filter bank with frequency shapes from MHAOvlFilter::fftfb_t
( p. 741).

• class MHAOvlFilter::overlap_save_filterbank_t::vars_t
• class MHAOvlFilter::overlap_save_filterbank_analytic_t
• class MHAOvlFilter::fftfb_ac_info_t

Namespaces
• MHAOvlFilter
Namespace for overlapping FFT based filter bank classes and functions.

Typedefs
• typedef mha_real_t() MHAOvlFilter::scale_fun_t( mha_real_t)

6.94

mha_fifo.cpp File Reference

6.95

mha_fifo.h File Reference

Classes
• class mha_fifo_t< T >
A FIFO class for blocksize adaptation Synchronization: None.

• class mha_drifter_fifo_t< T >
A FIFO class for blocksize adaptation without Synchronization.

• class mha_fifo_thread_platform_t
Abstract base class for synchronizing multithreaded (producer/consumer) fifo operations.

• class mha_fifo_posix_threads_t
© 2005-2018 HörTech gGmbH, Oldenburg

1242

CONTENTS

• class mha_fifo_thread_guard_t
Simple Mutex Guard Class.

• class mha_fifo_lw_t< T >
This FIFO uses locks to synchronize access.

• class mha_dblbuf_t< FIFO >
The doublebuffer adapts blocksizes between an outer process, which provides input data and
takes output data, and an inner process, which processes the input signal and generates output
data using a different block size than the outer process.

• class mha_rt_fifo_element_t< T >
Object wrapper for mha_rt_fifo_t ( p. 543).

• class mha_rt_fifo_t< T >
Template class for thread safe, half real time safe fifo without explixit locks.

Macros
• #define mha_fifo_thread_platform_implementation_t mha_fifo_posix_threads_t

6.95.1

Macro Definition Documentation

6.95.1.1

mha_fifo_thread_platform_implementation_t

#define mha_fifo_thread_platform_implementation_t

6.96

mha_fifo_posix_threads_t

mha_filter.cpp File Reference

Functions
• std::vector< mha_real_t > diff_coeffs ()

6.96.1

6.96.1.1

Function Documentation

diff_coeffs()

std::vector< mha_real_t> diff_coeffs ( )

© 2005-2018 HörTech gGmbH, Oldenburg

6.97

mha_filter.hh File Reference

6.97

mha_filter.hh File Reference

1243

Header file for IIR filter classes.
Classes
• class MHAFilter::filter_t
Generic IIR filter class.

• class MHAFilter::diff_t
Differentiator class (non-normalized)

• class MHAFilter::o1_ar_filter_t
First order attack-release lowpass filter.

• class MHAFilter::o1flt_lowpass_t
First order low pass filter.

• class MHAFilter::o1flt_maxtrack_t
First order maximum tracker.

• class MHAFilter::o1flt_mintrack_t
First order minimum tracker.

• class MHAFilter::iir_filter_state_t
• class MHAFilter::iir_filter_t
IIR filter class wrapper for integration into parser structure.

• class MHAFilter::adapt_filter_state_t
• class MHAFilter::adapt_filter_param_t
• class MHAFilter::adapt_filter_t
Adaptive filter.

• class MHAFilter::fftfilter_t
FFT based FIR filter implementation.

• class MHAFilter::fftfilterbank_t
FFT based FIR filterbank implementation.

• struct MHAFilter::transfer_function_t
a structure containing a source channel number, a target channel number, and an impulse
response.

• struct MHAFilter::transfer_matrix_t
A sparse matrix of transfer function partitionss.

• class MHAFilter::partitioned_convolution_t
A filter class for partitioned convolution.

• struct MHAFilter::partitioned_convolution_t::index_t
Bookkeeping class.

• class MHAFilter::smoothspec_t
Smooth spectral gains, create a windowed impulse response.

• class MHAFilter::resampling_filter_t
Hann shaped low pass filter for resampling.

• class MHAFilter::polyphase_resampling_t
A class that performs polyphase resampling.

• class MHAFilter::blockprocessing_polyphase_resampling_t
A class that does polyphase resampling and takes into account block processing.

• class MHAFilter::iir_ord1_real_t
First order recursive filter.
© 2005-2018 HörTech gGmbH, Oldenburg

1244

CONTENTS

Namespaces
• MHAFilter
Namespace for IIR and FIR filter classes.

Functions
•
•
•
•

void MHAFilter::make_friendly_number ( mha_real_t &x)
void MHAFilter::make_friendly_number ( mha_complex_t &x)
void MHAFilter::make_friendly_number (double &x)
void MHAFilter::o1_lp_coeffs (const mha_real_t tau, const mha_real_t fs, mha_←real_t &c1, mha_real_t &c2)
Set first order filter coefficients from time constant and sampling rate.

• void MHAFilter::butter_stop_ord1 (double ∗A, double ∗B, double f1, double f2, double
fs)
Setup a first order butterworth band stop filter.

• MHASignal::waveform_t ∗ MHAFilter::spec2fir (const mha_spec_t ∗spec, const unsigned int fftlen, const MHAWindow::base_t &window, const bool minphase)
Create a windowed impulse response/FIR filter coefficients from a spectrum.

• unsigned MHAFilter::gcd (unsigned a, unsigned b)
greatest common divisor

• double MHAFilter::sinc (double x)
sin(x)/x function, coping with x=0.

• std::pair< unsigned, unsigned > MHAFilter::resampling_factors (float source_←sampling_rate, float target_sampling_rate, float factor=1.0f)
Computes rational resampling factor from two sampling rates.

6.97.1

Detailed Description

Header file for IIR filter classes.

6.98

mha_generic_chain.cpp File Reference

Functions
• void mhaconfig_compare ( mhaconfig_t req, mhaconfig_t avail, const char ∗cpref)

6.98.1

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

6.99

mha_generic_chain.h File Reference

6.98.1.1

1245

mhaconfig_compare()

void mhaconfig_compare (
mhaconfig_t req,
mhaconfig_t avail,
const char ∗ cpref )

6.99

mha_generic_chain.h File Reference

Classes
• class mhachain::plugs_t
• class mhachain::chain_base_t
Namespaces
• mhachain
Macros
• #define MHAPLUGIN_OVERLOAD_OUTDOMAIN
6.99.1

Macro Definition Documentation

6.99.1.1

MHAPLUGIN_OVERLOAD_OUTDOMAIN

#define MHAPLUGIN_OVERLOAD_OUTDOMAIN

6.100

mha_io_ifc.h File Reference

Typedefs
• typedef int(∗ IOProcessEvent_t) (void ∗handle, mha_wave_t ∗sIn, mha_wave_t ∗∗s←Out)
Event handler for signal stream.

• typedef void(∗ IOStoppedEvent_t) (void ∗handle, int proc_err, int io_err)
Event handler for stop event.

• typedef void(∗ IOStartedEvent_t) (void ∗handle)
Event handler for start event.

• typedef int(∗ IOInit_t) (int fragsize, float samplerate, IOProcessEvent_t proc_event,
void ∗proc_handle, IOStartedEvent_t start_event, void ∗start_handle, IOStopped←Event_t stop_event, void ∗stop_handle, void ∗∗handle)
• typedef int(∗ IOPrepare_t) (void ∗handle, int num_inchannels, int num_outchannels)
• typedef int(∗ IOStart_t) (void ∗handle)
• typedef int(∗ IOStop_t) (void ∗handle)
• typedef int(∗ IORelease_t) (void ∗handle)
• typedef int(∗ IOSetVar_t) (void ∗handle, const char ∗cmd, char ∗retval, unsigned int len)
• typedef const char ∗(∗ IOStrError_t) (void ∗handle, int err)
• typedef void(∗ IODestroy_t) (void ∗handle)
© 2005-2018 HörTech gGmbH, Oldenburg

1246

6.100.1

6.100.1.1

CONTENTS

Typedef Documentation

IOProcessEvent_t

typedef int(∗ IOProcessEvent_t) (void ∗handle,

mha_wave_t ∗sIn,

mha_wave_t ∗∗sOut)

Event handler for signal stream.
This event handler needs to be realtime compatible. All signal path processing will be performed
in this callback.
6.100.1.2

IOStoppedEvent_t

typedef void(∗ IOStoppedEvent_t) (void ∗handle, int proc_err, int io_err)

Event handler for stop event.
This event handler needs to be realtime compatible. The function must return immediatly.
6.100.1.3

IOStartedEvent_t

typedef void(∗ IOStartedEvent_t) (void ∗handle)

Event handler for start event.
This event handler needs to be realtime compatible. The function must return immediatly.
6.100.1.4

IOInit_t

typedef int(∗ IOInit_t) (int fragsize, float samplerate,
event, void ∗proc_handle,

IOProcessEvent_t proc_←-

IOStartedEvent_t start_event, void ∗start_handle,

IO←-

StoppedEvent_t stop_event, void ∗stop_handle, void ∗∗handle)

6.100.1.5

IOPrepare_t

typedef int(∗ IOPrepare_t) (void ∗handle, int num_inchannels, int num_outchannels)

6.100.1.6

IOStart_t

typedef int(∗ IOStart_t) (void ∗handle)

© 2005-2018 HörTech gGmbH, Oldenburg

6.101

mha_multisrc.cpp File Reference

6.100.1.7

1247

IOStop_t

typedef int(∗ IOStop_t) (void ∗handle)

6.100.1.8

IORelease_t

typedef int(∗ IORelease_t) (void ∗handle)

6.100.1.9

IOSetVar_t

typedef int(∗ IOSetVar_t) (void ∗handle, const char ∗cmd, char ∗retval, unsigned int
len)

6.100.1.10

IOStrError_t

typedef const char∗(∗ IOStrError_t) (void ∗handle, int err)

6.100.1.11

IODestroy_t

typedef void(∗ IODestroy_t) (void ∗handle)

6.101

mha_multisrc.cpp File Reference

Namespaces
• MHAMultiSrc
Collection of classes for selecting audio chunks from multiple sources.

6.102

mha_multisrc.h File Reference

Classes
• class MHAMultiSrc::channel_t
• class MHAMultiSrc::channels_t
• class MHAMultiSrc::base_t
Base class for source selection.

• class MHAMultiSrc::waveform_t
• class MHAMultiSrc::spectrum_t
© 2005-2018 HörTech gGmbH, Oldenburg

1248

CONTENTS

Namespaces
• MHAMultiSrc
Collection of classes for selecting audio chunks from multiple sources.

6.103

mha_os.cpp File Reference

Functions
• std::string mha_getenv (std::string envvar)
• std::list< std::string > mha_library_paths ()
• std::list< std::string > list_dir (const std::string &path, const std::string &pattern)

6.103.1

Function Documentation

6.103.1.1

mha_getenv()

std::string mha_getenv (
std::string envvar )

6.103.1.2

mha_library_paths()

std::list mha_library_paths ( )

6.103.1.3

list_dir()

std::list list_dir (
const std::string & path,
const std::string & pattern )

6.104

mha_os.h File Reference

Classes
• class dynamiclib_t
© 2005-2018 HörTech gGmbH, Oldenburg

6.104

mha_os.h File Reference

1249

Macros
•
•
•
•
•
•
•
•
•

#define mha_loadlib(x) dlopen(x,RTLD_NOW)
#define mha_freelib(x) dlclose(x)
#define mha_freelib_success(x) (x == 0)
#define mha_getlibfun(h, x) x ## _cb = (x ## _t)dlsym(h,#x)
#define mha_getlibfun_checked(h, x) x ## _cb = (x ## _t)dlsym(h,#x);if(! x ## _cb)
throw MHA_Error(__FILE__,__LINE__,"Function " #x " is undefined.")
#define mha_loadlib_error(x) dlerror()
#define mha_lib_extension ".so"
#define mha_msleep(milliseconds) usleep((milliseconds)∗1000)
#define FMTsz "%zu"
printf modifier to print integers of type size_t

• #define MHA_RESOLVE(h, t) t ## _cb = (t ## _t)(h->resolve(#t))
• #define MHA_RESOLVE_CHECKED(h, t) t ## _cb = (t ## _t)(h->resolve_checked(#t))

Typedefs
• typedef void ∗ mha_libhandle_t

Functions
•
•
•
•
•
•
•
•
•

std::string mha_getenv (std::string envvar)
std::list< std::string > mha_library_paths ()
std::list< std::string > list_dir (const std::string &path, const std::string &pattern)
void mha_hton (float ∗data, unsigned int len)
void mha_ntoh (float ∗data, unsigned int len)
void mha_hton (uint32_t ∗data, unsigned int len)
void mha_ntoh (uint32_t ∗data, unsigned int len)
void mha_hton (int32_t ∗data, unsigned int len)
void mha_ntoh (int32_t ∗data, unsigned int len)

6.104.1

6.104.1.1

Macro Definition Documentation

mha_loadlib

#define mha_loadlib(
x ) dlopen(x,RTLD_NOW)

© 2005-2018 HörTech gGmbH, Oldenburg

1250

6.104.1.2

CONTENTS

mha_freelib

#define mha_freelib(
x ) dlclose(x)

6.104.1.3

mha_freelib_success

#define mha_freelib_success(
x ) (x == 0)

6.104.1.4

mha_getlibfun

#define mha_getlibfun(
h,
x ) x ## _cb = (x ## _t)dlsym(h,#x)

6.104.1.5

mha_getlibfun_checked

#define mha_getlibfun_checked(
h,
x ) x ## _cb = (x ## _t)dlsym(h,#x);if(!

x ## _cb) throw

MHA_Error(_←-

_FILE__,__LINE__,"Function " #x " is undefined.")

6.104.1.6

mha_loadlib_error

#define mha_loadlib_error(
x ) dlerror()

6.104.1.7

mha_lib_extension

#define mha_lib_extension ".so"

6.104.1.8

mha_msleep

#define mha_msleep(
milliseconds ) usleep((milliseconds)∗1000)

© 2005-2018 HörTech gGmbH, Oldenburg

6.104

mha_os.h File Reference

6.104.1.9

FMTsz

#define FMTsz "%zu"

printf modifier to print integers of type size_t

6.104.1.10

MHA_RESOLVE

#define MHA_RESOLVE(
h,
t ) t ## _cb = (t ## _t)(h->resolve(#t))

6.104.1.11

MHA_RESOLVE_CHECKED

#define MHA_RESOLVE_CHECKED(
h,
t ) t ## _cb = (t ## _t)(h->resolve_checked(#t))

6.104.2

6.104.2.1

Typedef Documentation

mha_libhandle_t

typedef void∗

6.104.3

6.104.3.1

mha_libhandle_t

Function Documentation

mha_getenv()

std::string mha_getenv (
std::string envvar )

6.104.3.2

mha_library_paths()

std::list mha_library_paths ( )

© 2005-2018 HörTech gGmbH, Oldenburg

1251

1252

6.104.3.3

CONTENTS

list_dir()

std::list list_dir (
const std::string & path,
const std::string & pattern )

6.104.3.4

mha_hton() [1/3]

void mha_hton (
float ∗ data,
unsigned int len ) [inline]

6.104.3.5

mha_ntoh() [1/3]

void mha_ntoh (
float ∗ data,
unsigned int len ) [inline]

6.104.3.6

mha_hton() [2/3]

void mha_hton (
uint32_t ∗ data,
unsigned int len ) [inline]

6.104.3.7

mha_ntoh() [2/3]

void mha_ntoh (
uint32_t ∗ data,
unsigned int len ) [inline]

6.104.3.8

mha_hton() [3/3]

void mha_hton (
int32_t ∗ data,
unsigned int len ) [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

6.105

mha_parser.cpp File Reference

6.104.3.9

1253

mha_ntoh() [3/3]

void mha_ntoh (
int32_t ∗ data,
unsigned int len ) [inline]

6.105

mha_parser.cpp File Reference

Namespaces
• MHAParser
Name space for the openMHA-Parser configuration language.

• MHAParser::StrCnv
String converter namespace.

Macros
• #define MHAPLATFORM "undefined-linux"

Functions
• int MHAParser::get_precision ()
• int MHAParser::StrCnv::num_brackets (const std::string &s)
Return number of brackets at beginning and end of string.

• int MHAParser::StrCnv::bracket_balance (const std::string &s)
• static std::ostream & write_float (std::ostream &o, const float &f)
• static std::string parse_1_float (const std::string &s, mha_real_t &v)
This internal function parses a floating point number from the beginning of a string.

• static std::string parse_1_complex (const std::string &s, mha_complex_t &v)
This internal function parses a complex number from the beginning of a string.

6.105.1

6.105.1.1

Macro Definition Documentation

MHAPLATFORM

#define MHAPLATFORM "undefined-linux"

6.105.2

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1254

6.105.2.1

CONTENTS

write_float()

static std::ostream& write_float (
std::ostream & o,
const float & f ) [inline], [static]

6.105.2.2

parse_1_float()

static std::string parse_1_float (
const std::string & s,
mha_real_t & v ) [static]

This internal function parses a floating point number from the beginning of a string.
Parameters
s

The string to parse

v

The float variable to fill with a value

Returns
The rest of the string.

6.105.2.3

parse_1_complex()

static std::string parse_1_complex (
const std::string & s,
mha_complex_t & v ) [static]

This internal function parses a complex number from the beginning of a string.
Parameters
s

The string to parse

v

The complex variable to fill with a value

Returns
The rest of the string.

© 2005-2018 HörTech gGmbH, Oldenburg

6.106

mha_parser.hh File Reference

6.106

mha_parser.hh File Reference

Header file for the MHA-Parser script language.

Classes
• class MHAParser::keyword_list_t
Keyword list class.

• class MHAParser::expression_t
• class MHAParser::entry_t
• class MHAParser::base_t
Base class for all parser items.

• class MHAParser::base_t::replace_t
• class MHAParser::parser_t
Parser node class.

• class MHAParser::c_ifc_parser_t
• class MHAParser::monitor_t
Base class for monitors and variable nodes.

• class MHAParser::variable_t
Base class for variable nodes.

• class MHAParser::range_var_t
Base class for all variables with a numeric value range.

• class MHAParser::kw_t
Variable with keyword list value.

• class MHAParser::string_t
Variable with a string value.

• class MHAParser::vstring_t
Vector variable with string values.

• class MHAParser::bool_t
Variable with a boolean value ("yes"/"no")

• class MHAParser::int_t
Variable with integer value.

• class MHAParser::float_t
Variable with float value.

• class MHAParser::complex_t
Variable with complex value.

• class MHAParser::vint_t
Variable with vector value.

• class MHAParser::vfloat_t
Vector variable with float value.

• class MHAParser::vcomplex_t
Vector variable with complex value.

• class MHAParser::mfloat_t
Matrix variable with float value.
© 2005-2018 HörTech gGmbH, Oldenburg

1255

1256

CONTENTS

• class MHAParser::mcomplex_t
Matrix variable with complex value.

• class MHAParser::int_mon_t
Monitor variable with int value.

• class MHAParser::bool_mon_t
Monitor with string value.

• class MHAParser::string_mon_t
Monitor with string value.

• class MHAParser::vstring_mon_t
Vector of monitors with string value.

• class MHAParser::vint_mon_t
Vector of ints monitor.

• class MHAParser::vfloat_mon_t
Vector of floats monitor.

• class MHAParser::mfloat_mon_t
Matrix of floats monitor.

• class MHAParser::float_mon_t
Monitor with float value.

• class MHAParser::complex_mon_t
Monitor with complex value.

• class MHAParser::vcomplex_mon_t
Monitor with vector of complex values.

• class MHAParser::mcomplex_mon_t
Matrix of complex numbers monitor.

• class MHAParser::commit_t< receiver_t >
Parser variable with event-emission functionality.

• class MHAParser::mhaconfig_mon_t

Namespaces
• MHAParser
Name space for the openMHA-Parser configuration language.

• MHAParser::StrCnv
String converter namespace.

Macros
• #define DEFAULT_RETSIZE 0x100000
• #define insert_member(x) insert_item(#x,&x)
Macro to insert a member variable into a parser.
© 2005-2018 HörTech gGmbH, Oldenburg

6.106

mha_parser.hh File Reference

1257

Typedefs
•
•
•
•
•
•
•

typedef std::string(base_t::∗ MHAParser::opact_t) ( expression_t &)
typedef std::string(base_t::∗ MHAParser::query_t) (const std::string &)
typedef std::map< std::string, opact_t > MHAParser::opact_map_t
typedef std::map< std::string, query_t > MHAParser::query_map_t
typedef std::list< entry_t > MHAParser::entry_map_t
typedef int(∗ MHAParser::c_parse_cmd_t) (void ∗, const char ∗, char ∗, unsigned int)
typedef const char ∗(∗ MHAParser::c_parse_err_t) (void ∗, int)

Functions
•
•
•
•
•
•
•
•

std::string MHAParser::commentate (const std::string &s)
void MHAParser::trim (std::string &s)
std::string MHAParser::cfg_dump (base_t ∗, const std::string &)
std::string MHAParser::cfg_dump_short (base_t ∗, const std::string &)
std::string MHAParser::all_dump (base_t ∗, const std::string &)
std::string MHAParser::mon_dump (base_t ∗, const std::string &)
std::string MHAParser::all_ids (base_t ∗, const std::string &, const std::string &="")
void MHAParser::strreplace (std::string &, const std::string &, const std::string &)
string replace function

• void MHAParser::envreplace (std::string &s)
• void MHAParser::StrCnv::str2val (const std::string &, bool &)
Convert from string.

• void MHAParser::StrCnv::str2val (const std::string &, float &)
Convert from string.

• void MHAParser::StrCnv::str2val (const std::string &, mha_complex_t &)
Convert from string.

• void MHAParser::StrCnv::str2val (const std::string &, int &)
Convert from string.

• void MHAParser::StrCnv::str2val (const std::string &, keyword_list_t &)
Convert from string.

• void MHAParser::StrCnv::str2val (const std::string &, std::string &)
Convert from string.

• template
void MHAParser::StrCnv::str2val (const std::string &s, std::vector< arg_t > &val)
Converter for vector types.

• template<>
void MHAParser::StrCnv::str2val< mha_real_t > (const std::string &s, std::vector<
mha_real_t > &v)
Converter for vector with Matlab-style expansion.

• template
void MHAParser::StrCnv::str2val (const std::string &s, std::vector< std::vector< arg_t
> > &val)
Converter for matrix types.

• std::string MHAParser::StrCnv::val2str (const bool &)
© 2005-2018 HörTech gGmbH, Oldenburg

1258

CONTENTS

Convert to string.

• std::string MHAParser::StrCnv::val2str (const float &)
Convert to string.

• std::string MHAParser::StrCnv::val2str (const mha_complex_t &)
Convert to string.

• std::string MHAParser::StrCnv::val2str (const int &)
Convert to string.

• std::string MHAParser::StrCnv::val2str (const keyword_list_t &)
Convert to string.

• std::string MHAParser::StrCnv::val2str (const std::string &)
Convert to string.

• std::string MHAParser::StrCnv::val2str (const std::vector< float > &)
Convert to string.

• std::string MHAParser::StrCnv::val2str (const std::vector< mha_complex_t > &)
Convert to string.

• std::string MHAParser::StrCnv::val2str (const std::vector< int > &)
Convert to string.

• std::string MHAParser::StrCnv::val2str (const std::vector< std::string > &)
Convert to string.

• std::string MHAParser::StrCnv::val2str (const std::vector< std::vector< float > > &)
Convert to string.

• std::string MHAParser::StrCnv::val2str (const std::vector< std::vector<
complex_t > > &)

mha_←-

Convert to string.

6.106.1

Detailed Description

Header file for the MHA-Parser script language.

6.106.2

6.106.2.1

Macro Definition Documentation

DEFAULT_RETSIZE

#define DEFAULT_RETSIZE 0x100000

6.106.2.2

insert_member

#define insert_member(
x ) insert_item(#x,&x)

Macro to insert a member variable into a parser.

© 2005-2018 HörTech gGmbH, Oldenburg

6.107

mha_plugin.hh File Reference

1259

Parameters
Member variable to be inserted. Name of member variable will be used as configuration
name.

x

See also MHAParser::parser_t::insert_item() (p. 835).

6.107

mha_plugin.hh File Reference

Header file for MHA C++ plugin class templates.

Classes
• class MHAPlugin::cfg_chain_t< runtime_cfg_t >
• class MHAPlugin::config_t< runtime_cfg_t >
Template class for thread safe configuration.

• class MHAPlugin::plugin_t< runtime_cfg_t >
The template class for C++ openMHA plugins.

Namespaces
• MHAPlugin
Namespace for openMHA plugin class templates and thread-safe runtime configurations.

Macros
•
•
•
•
•
•
•

#define
#define
#define
#define
#define
#define
#define

__declspec(p)
WINAPI
HINSTANCE int
GITCOMMITHASH "independent-plugin-build"
MHAPLUGIN_PROC_CALLBACK_PREFIX(prefix, classname, indom, outdom)
MHAPLUGIN_INIT_CALLBACKS_PREFIX(prefix, classname)
MHAPLUGIN_CALLBACKS_PREFIX(prefix, classname, indom, outdom)

C++ wrapper macro for the plugin interface.

• #define MHAPLUGIN_DOCUMENTATION_PREFIX(prefix, cat, doc)
• #define
MHAPLUGIN_PROC_CALLBACK(plugname, classname, indom, outdom) MHAPLUGIN_PROC_CALLBACK_PREFIX(MHA_STATIC_ ## plugname ##
_,classname,indom,outdom)
• #define MHAPLUGIN_INIT_CALLBACKS(plugname, classname) MHAPLUGIN_INI←T_CALLBACKS_PREFIX(MHA_STATIC_ ## plugname ## _,classname)
• #define MHAPLUGIN_CALLBACKS(plugname, classname, indom, outdom) MHAPL←UGIN_CALLBACKS_PREFIX(MHA_STATIC_ ## plugname ## _,classname,indom,outdom)
C++ wrapper macro for the plugin interface.

• #define MHAPLUGIN_DOCUMENTATION(plugname, cat, doc) MHAPLUGIN_DOC←UMENTATION_PREFIX(MHA_STATIC_ ## plugname ## _,cat,doc)
Wrapper macro for the plugin documentation interface.
© 2005-2018 HörTech gGmbH, Oldenburg

1260

CONTENTS

Functions
• __attribute__ ((unused)) static const char ∗mha_git_commit_hash
store git commit hash in every binary plgin to support reproducible research

6.107.1

Detailed Description

Header file for MHA C++ plugin class templates.
This file defines useful macros and template classes for the development of MHA plugins. A
set of macros wraps a C++ interface around the ANSI-C plugin interface. The plugin_t template
class defines a corresponding C++ class with all required members. This class can make use
of thread safe configurations (config_t).

6.107.2

6.107.2.1

Macro Definition Documentation

__declspec

#define __declspec(
p )

6.107.2.2

WINAPI

#define WINAPI

6.107.2.3

HINSTANCE

#define HINSTANCE int

6.107.2.4

GITCOMMITHASH

#define GITCOMMITHASH "independent-plugin-build"

© 2005-2018 HörTech gGmbH, Oldenburg

6.107

6.107.2.5

mha_plugin.hh File Reference

1261

MHAPLUGIN_PROC_CALLBACK_PREFIX

#define MHAPLUGIN_PROC_CALLBACK_PREFIX(
prefix,
classname,
indom,
outdom )

6.107.2.6

MHAPLUGIN_INIT_CALLBACKS_PREFIX

#define MHAPLUGIN_INIT_CALLBACKS_PREFIX(
prefix,
classname )

6.107.2.7

MHAPLUGIN_DOCUMENTATION_PREFIX

#define MHAPLUGIN_DOCUMENTATION_PREFIX(
prefix,
cat,
doc )

6.107.2.8

MHAPLUGIN_PROC_CALLBACK

#define MHAPLUGIN_PROC_CALLBACK(
plugname,
classname,
indom,
outdom )

MHAPLUGIN_PROC_CALLBACK_PREFIX(MHA_STATIC_ ## plugname ## _←-

,classname,indom,outdom)

6.107.2.9

MHAPLUGIN_INIT_CALLBACKS

#define MHAPLUGIN_INIT_CALLBACKS(
plugname,
classname )

MHAPLUGIN_INIT_CALLBACKS_PREFIX(MHA_STATIC_ ## plugname ##

_,classname)

6.107.3

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1262

6.107.3.1

CONTENTS

__attribute__()

__attribute__ (
(unused)

) const

store git commit hash in every binary plgin to support reproducible research

6.108

mha_profiling.c File Reference

Functions
•
•
•
•

void
void
float
float

6.108.1

6.108.1.1

mha_tic ( mha_tictoc_t ∗t)
mha_platform_tic ( mha_platform_tictoc_t ∗t)
mha_toc ( mha_tictoc_t ∗t)
mha_platform_toc ( mha_platform_tictoc_t ∗t)

Function Documentation

mha_tic()

void mha_tic (
mha_tictoc_t ∗ t )

6.108.1.2

mha_platform_tic()

void mha_platform_tic (
mha_platform_tictoc_t ∗ t )

6.108.1.3

mha_toc()

float mha_toc (
mha_tictoc_t ∗ t )

6.108.1.4

mha_platform_toc()

float mha_platform_toc (
mha_platform_tictoc_t ∗ t )
© 2005-2018 HörTech gGmbH, Oldenburg

6.109

mha_profiling.h File Reference

6.109

mha_profiling.h File Reference

Classes
• struct mha_tictoc_t

Typedefs
• typedef mha_tictoc_t mha_platform_tictoc_t

Functions
• void mha_platform_tic ( mha_platform_tictoc_t ∗t)
• float mha_platform_toc ( mha_platform_tictoc_t ∗t)

6.109.1

Typedef Documentation

6.109.1.1

mha_platform_tictoc_t

typedef

mha_tictoc_t

6.109.2

6.109.2.1

mha_platform_tictoc_t

Function Documentation

mha_platform_tic()

void mha_platform_tic (
mha_platform_tictoc_t ∗ t )

6.109.2.2

mha_platform_toc()

float mha_platform_toc (
mha_platform_tictoc_t ∗ t )
© 2005-2018 HörTech gGmbH, Oldenburg

1263

1264

6.110

CONTENTS

mha_ruby.cpp File Reference

Typedefs
• typedef VALUE(∗ rb_f_t) (...)

Functions
•
•
•
•
•

static void mha_free (void ∗mha)
static VALUE mha_alloc (VALUE klass)
static VALUE mha_exit_request (VALUE self)
static VALUE mha_parse (VALUE self, VALUE request)
void Init_mha_ruby ()

6.110.1

6.110.1.1

Typedef Documentation

rb_f_t

typedef VALUE(∗ rb_f_t) (...)

6.110.2

6.110.2.1

Function Documentation

mha_free()

static void mha_free (
void ∗ mha ) [static]

6.110.2.2

mha_alloc()

static VALUE mha_alloc (
VALUE klass ) [static]

© 2005-2018 HörTech gGmbH, Oldenburg

6.111

mha_signal.cpp File Reference

6.110.2.3

mha_exit_request()

static VALUE mha_exit_request (
VALUE self ) [static]

6.110.2.4

mha_parse()

static VALUE mha_parse (
VALUE self,
VALUE request ) [static]

6.110.2.5

Init_mha_ruby()

void Init_mha_ruby ( )

6.111

mha_signal.cpp File Reference

Classes
• class MHASignal::hilbert_fftw_t

Namespaces
• MHASignal
Namespace for audio signal handling and processing classes.

Macros
• #define MHA_ID_UINT_VECTOR "MHASignal::uint_vector_t"
• #define MHA_ID_MATRIX "MHASignal::matrix_t"
• #define ASSERT_EQUAL_DIM(a, b)
• #define ASSERT_EQUAL_DIM_PTR(a, b)
© 2005-2018 HörTech gGmbH, Oldenburg

1265

1266

CONTENTS

Functions
• void set_minabs ( mha_spec_t &self, const mha_real_t &m)
• mha_wave_t & operator+= ( mha_wave_t &self, const mha_real_t &v)
Addition operator.

• mha_wave_t & operator∗= ( mha_wave_t &self, const mha_real_t &v)
Element-wise multiplication operator.

• mha_spec_t & operator∗= ( mha_spec_t &self, const mha_real_t &v)
Element-wise multiplication operator.

• mha_wave_t & operator∗= ( mha_wave_t &self, const mha_wave_t &v)
Element-wise multiplication operator.

• mha_spec_t & operator∗= ( mha_spec_t &self, const mha_wave_t &v)
Element-wise multiplication operator.

• mha_spec_t & operator∗= ( mha_spec_t &self, const mha_spec_t &v)
Element-wise multiplication operator.

• mha_spec_t & safe_div ( mha_spec_t &self, const mha_spec_t &v, mha_real_t eps)
In-Place division with lower limit on divisor.

• mha_spec_t & operator/= ( mha_spec_t &self, const mha_spec_t &v)
Element-wise division operator.

• mha_wave_t & operator/= ( mha_wave_t &self, const mha_wave_t &v)
Element-wise division operator.

• mha_spec_t & operator+= ( mha_spec_t &self, const mha_spec_t &v)
Addition operator.

• mha_spec_t & operator+= ( mha_spec_t &self, const mha_real_t &v)
Addition operator.

• mha_wave_t & operator+= ( mha_wave_t &self, const mha_wave_t &v)
Addition operator.

• mha_wave_t & operator-= ( mha_wave_t &self, const mha_wave_t &v)
Subtraction operator.

• mha_spec_t & operator-= ( mha_spec_t &self, const mha_spec_t &v)
Subtraction operator.

• mha_fft_t mha_fft_new (unsigned int n)
Create a new instance of an FFT object.

• void mha_fft_free ( mha_fft_t h)
Remove an FFT object.

• void mha_fft_wave2spec ( mha_fft_t h, const mha_wave_t ∗in, mha_spec_t ∗out)
Perform an FFT on each channel of input waveform signal.

• void mha_fft_wave2spec ( mha_fft_t h, const mha_wave_t ∗in, mha_spec_t ∗out,
bool swap)
Tranform waveform segment into spectrum.

• void mha_fft_spec2wave ( mha_fft_t h, const mha_spec_t ∗in, mha_wave_t ∗out)
Perform an inverse FFT on each channel of input spectrum.

• void mha_fft_spec2wave ( mha_fft_t h, const mha_spec_t ∗in, mha_wave_t ∗out,
unsigned int offset)
Perform an inverse FFT on each channel of input spectrum.
© 2005-2018 HörTech gGmbH, Oldenburg

6.111

mha_signal.cpp File Reference

1267

• void mha_fft_forward ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (forward).

• void mha_fft_backward ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (backward).

• void mha_fft_forward_scale ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (forward).

• void mha_fft_backward_scale ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (backward).

• void mha_fft_wave2spec_scale ( mha_fft_t h, const mha_wave_t ∗in, mha_spec_t
∗out)
Tranform waveform segment into spectrum.

• void mha_fft_spec2wave_scale ( mha_fft_t h, const mha_spec_t ∗in, mha_wave_t
∗out)
Tranform spectrum into waveform segment.

• std::vector< float > std_vector_float (const mha_wave_t &w)
Converts a mha_wave_t ( p. 583) structure into a std::vector (interleaved order).

• std::vector< std::vector< float > > std_vector_vector_float (const mha_wave_t &w)
Converts a mha_wave_t ( p. 583) structure into a std::vector< std::vector > (outer vector represents channels).

• std::vector< std::vector< mha_complex_t > > std_vector_vector_complex (const
mha_spec_t &w)
Converts a mha_spec_t ( p. 547) structure into a std::vector< std::vector >
(outer vector represents channels).

• static mha_real_t intensity (const mha_spec_t &s, unsigned int channel, unsigned int
fftlen, mha_real_t ∗sqfreq_response=0)
• void integrate ( mha_wave_t &s)
Numeric integration of a signal vector (real values)

• void integrate ( mha_spec_t &s)
Numeric integration of a signal vector (complex values)

• mha_wave_t & operator∧ = ( mha_wave_t &self, const mha_real_t &arg)
Exponent operator.

• mha_wave_t range ( mha_wave_t s, unsigned int k0, unsigned int len)
Return a time interval from a waveform chunk.

• mha_spec_t channels ( mha_spec_t s, unsigned int ch_start, unsigned int nch)
Return a channel interval from a spectrum.

• void assign ( mha_wave_t self, const mha_wave_t &val)
Set all values of waveform 'self' to 'val'.

• void assign ( mha_spec_t self, const mha_spec_t &val)
Set all values of spectrum 'self' to 'val'.

• void timeshift ( mha_wave_t &self, int shift)
Time shift of waveform chunk.

6.111.1

Macro Definition Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1268

6.111.1.1

CONTENTS

MHA_ID_UINT_VECTOR

#define MHA_ID_UINT_VECTOR "MHASignal::uint_vector_t"

6.111.1.2

MHA_ID_MATRIX

#define MHA_ID_MATRIX "MHASignal::matrix_t"

6.111.1.3

ASSERT_EQUAL_DIM

#define ASSERT_EQUAL_DIM(
a,
b )

6.111.1.4

ASSERT_EQUAL_DIM_PTR

#define ASSERT_EQUAL_DIM_PTR(
a,
b )

6.111.2

6.111.2.1

Function Documentation

set_minabs()

void set_minabs (
mha_spec_t & self,
const

6.111.2.2

mha_real_t & m )

safe_div()

mha_spec_t& safe_div (
mha_spec_t & self,
const

mha_spec_t & v,

mha_real_t eps )

In-Place division with lower limit on divisor.

© 2005-2018 HörTech gGmbH, Oldenburg

6.112

mha_signal.hh File Reference

6.111.2.3
static

1269

intensity()
mha_real_t intensity (
const

mha_spec_t & s,

unsigned int channel,
unsigned int fftlen,
mha_real_t ∗ sqfreq_response = 0 ) [static]

6.112

mha_signal.hh File Reference

Header file for audio signal handling and processing classes.

Classes
• class MHASignal::spectrum_t
a signal processing class for spectral data (based on mha_spec_t ( p. 547))

• class MHASignal::waveform_t
signal processing class for waveform data (based on mha_wave_t ( p. 583))

• class MHASignal::doublebuffer_t
Double-buffering class.

• class MHASignal::ringbuffer_t
A ringbuffer class for time domain audio signal, which makes no assumptions with respect to
fragment size.

• class MHASignal::hilbert_t
Hilbert transformation of a waveform segment.

• class MHASignal::minphase_t
Minimal phase function.

• class MHASignal::stat_t
• class MHASignal::delay_wave_t
Delayline containing wave fragments.

• class MHASignal::delay_spec_t
• class MHASignal::async_rmslevel_t
Class for asynchronous level metering.

• class MHASignal::uint_vector_t
Vector of unsigned values, used for size and index description of n-dimensional matrixes.

• class MHASignal::matrix_t
n-dimensional matrix with real or complex floating point values.

• class MHASignal::schroeder_t
Schroeder tone complex class.

• class MHASignal::quantizer_t
Simple simulation of fixpoint quantization.

• class MHASignal::loop_wavefragment_t
Copy a fixed waveform fragment to a series of waveform fragments of other size.

• class MHASignal::delay_t
Class to realize a simple delay of waveform streams.

• class MHASignal::subsample_delay_t
implements subsample delay in spectral domain.
© 2005-2018 HörTech gGmbH, Oldenburg

1270

CONTENTS

Namespaces
• MHASignal
Namespace for audio signal handling and processing classes.

Macros
• #define M_PI 3.14159265358979323846
• #define mha_round(x) (int)((float)x+0.5)

Functions
• void MHASignal::for_each ( mha_wave_t ∗s, mha_real_t(∗fun)( mha_real_t))
Apply a function to each element of a mha_wave_t ( p. 583).

• mha_real_t MHASignal::lin2db ( mha_real_t x)
Conversion from linear scale to dB (no SPL reference)

• mha_real_t MHASignal::db2lin ( mha_real_t x)
Conversion from dB scale to linear (no SPL reference)

• mha_real_t MHASignal::pa2dbspl ( mha_real_t x)
Conversion from linear Pascal scale to dB SPL.

• mha_real_t MHASignal::pa22dbspl ( mha_real_t x, mha_real_t eps=1e-20f)
Conversion from squared Pascal scale to dB SPL.

• mha_real_t MHASignal::dbspl2pa ( mha_real_t x)
Conversion from dB SPL to linear Pascal scale.

• mha_real_t MHASignal::smp2sec ( mha_real_t n, mha_real_t srate)
conversion from samples to seconds

• mha_real_t MHASignal::sec2smp ( mha_real_t sec, mha_real_t srate)
conversion from seconds to samples

• mha_real_t MHASignal::bin2freq ( mha_real_t bin, unsigned fftlen, mha_real_←t srate)
conversion from fft bin index to frequency

• mha_real_t MHASignal::freq2bin ( mha_real_t freq, unsigned fftlen, mha_real_←t srate)
conversion from frequency to fft bin index

• mha_real_t MHASignal::smp2rad ( mha_real_t samples, unsigned bin, unsigned
fftlen)
conversion from delay in samples to phase shift

• mha_real_t MHASignal::rad2smp ( mha_real_t phase_shift, unsigned bin, unsigned
fftlen)
conversion from phase shift to delay in samples

• template
std::vector< elem_type > MHASignal::dupvec (std::vector< elem_type > vec, unsigned
n)
Duplicate last vector element to match desired size.
© 2005-2018 HörTech gGmbH, Oldenburg

6.112

mha_signal.hh File Reference

1271

• template
std::vector< elem_type > MHASignal::dupvec_chk (std::vector< elem_type > vec, unsigned n)
Duplicate last vector element to match desired size, check for dimension.

• bool equal_dim (const mha_wave_t &a, const mha_wave_t &b)
Test for equal dimension of waveform structures.

• bool equal_dim (const mha_wave_t &a, const mhaconfig_t &b)
Test for match of waveform dimension with mhaconfig structure.

• bool equal_dim (const mha_spec_t &a, const mha_spec_t &b)
Test for equal dimension of spectrum structures.

• bool equal_dim (const mha_spec_t &a, const mhaconfig_t &b)
Test for match of spectrum dimension with mhaconfig structure.

• bool equal_dim (const mha_wave_t &a, const mha_spec_t &b)
Test for equal dimension of waveform/spectrum structures.

• bool equal_dim (const mha_spec_t &a, const mha_wave_t &b)
Test for equal dimension of waveform/spectrum structures.

• void integrate ( mha_wave_t &s)
Numeric integration of a signal vector (real values)

• void integrate ( mha_spec_t &s)
Numeric integration of a signal vector (complex values)

• unsigned int mha_min_1 (unsigned int a)
• unsigned int size (const mha_wave_t &s)
Return size of a waveform structure.

• unsigned int size (const mha_spec_t &s)
Return size of a spectrum structure.

• unsigned int size (const mha_wave_t ∗s)
Return size of a waveform structure.

• unsigned int size (const mha_spec_t ∗s)
Return size of a spectrum structure.

• void clear ( mha_wave_t &s)
Set all values of waveform to zero.

• void clear ( mha_wave_t ∗s)
Set all values of waveform to zero.

• void clear ( mha_spec_t &s)
Set all values of spectrum to zero.

• void clear ( mha_spec_t ∗s)
Set all values of spectrum to zero.

• void assign ( mha_wave_t self, mha_real_t val)
Set all values of waveform 'self' to 'val'.

• void assign ( mha_wave_t self, const mha_wave_t &val)
Set all values of waveform 'self' to 'val'.

• void assign ( mha_spec_t self, const mha_spec_t &val)
Set all values of spectrum 'self' to 'val'.

• void timeshift ( mha_wave_t &self, int shift)
Time shift of waveform chunk.
© 2005-2018 HörTech gGmbH, Oldenburg

1272

CONTENTS

• mha_wave_t range ( mha_wave_t s, unsigned int k0, unsigned int len)
Return a time interval from a waveform chunk.

• mha_spec_t channels ( mha_spec_t s, unsigned int ch_start, unsigned int nch)
Return a channel interval from a spectrum.

• mha_real_t & value ( mha_wave_t ∗s, unsigned int fr, unsigned int ch)
Access an element of a waveform structure.

• const mha_real_t & value (const mha_wave_t ∗s, unsigned int fr, unsigned int ch)
Constant access to an element of a waveform structure.

• mha_real_t & value ( mha_wave_t ∗s, unsigned int k)
• mha_complex_t & value ( mha_spec_t ∗s, unsigned int k)
• mha_complex_t & value ( mha_spec_t ∗s, unsigned int fr, unsigned int ch)
Access to an element of a spectrum.

• const mha_complex_t & value (const mha_spec_t ∗s, unsigned int fr, unsigned int ch)
Constant access to an element of a spectrum.

• mha_real_t & value ( mha_wave_t &s, unsigned int fr, unsigned int ch)
Access to an element of a waveform structure.

• const mha_real_t & value (const mha_wave_t &s, unsigned int fr, unsigned int ch)
Constant access to an element of a waveform structure.

• mha_complex_t & value ( mha_spec_t &s, unsigned int fr, unsigned int ch)
Access to an element of a spectrum.

• const mha_complex_t & value (const mha_spec_t &s, unsigned int fr, unsigned int
ch)
Constant access to an element of a spectrum.

• std::vector< float > std_vector_float (const mha_wave_t &)
Converts a mha_wave_t ( p. 583) structure into a std::vector (interleaved order).

• std::vector< std::vector< float > > std_vector_vector_float (const mha_wave_t &)
Converts a mha_wave_t ( p. 583) structure into a std::vector< std::vector > (outer vector represents channels).

• std::vector< std::vector< mha_complex_t > > std_vector_vector_complex (const
mha_spec_t &)
Converts a mha_spec_t ( p. 547) structure into a std::vector< std::vector >
(outer vector represents channels).

• mha_wave_t & operator+= ( mha_wave_t &, const mha_real_t &)
Addition operator.

• mha_wave_t & operator+= ( mha_wave_t &, const mha_wave_t &)
Addition operator.

• mha_wave_t & operator-= ( mha_wave_t &, const mha_wave_t &)
Subtraction operator.

• mha_spec_t & operator-= ( mha_spec_t &, const mha_spec_t &)
Subtraction operator.

• mha_wave_t & operator∗= ( mha_wave_t &, const mha_real_t &)
Element-wise multiplication operator.

• mha_wave_t & operator∗= ( mha_wave_t &, const mha_wave_t &)
Element-wise multiplication operator.

• mha_spec_t & operator∗= ( mha_spec_t &, const mha_real_t &)
Element-wise multiplication operator.
© 2005-2018 HörTech gGmbH, Oldenburg

6.112

mha_signal.hh File Reference

1273

• mha_spec_t & operator∗= ( mha_spec_t &, const mha_wave_t &)
Element-wise multiplication operator.

• mha_spec_t & operator∗= ( mha_spec_t &, const mha_spec_t &)
Element-wise multiplication operator.

• mha_spec_t & operator/= ( mha_spec_t &, const mha_spec_t &)
Element-wise division operator.

• mha_wave_t & operator/= ( mha_wave_t &, const mha_wave_t &)
Element-wise division operator.

• mha_spec_t & operator+= ( mha_spec_t &, const mha_spec_t &)
Addition operator.

• mha_spec_t & operator+= ( mha_spec_t &, const mha_real_t &)
Addition operator.

• void set_minabs ( mha_spec_t &, const mha_real_t &)
• mha_spec_t & safe_div ( mha_spec_t &self, const mha_spec_t &v, mha_real_t eps)
In-Place division with lower limit on divisor.

• mha_wave_t & operator∧ = ( mha_wave_t &self, const mha_real_t &arg)
Exponent operator.

• void MHASignal::copy_channel ( mha_spec_t &self, const mha_spec_t &src, unsigned sch, unsigned dch)
Copy one channel of a source signal.

• void MHASignal::copy_channel ( mha_wave_t &self, const mha_wave_t &src, unsigned src_channel, unsigned dest_channel)
Copy one channel of a source signal.

• mha_real_t MHASignal::rmslevel (const mha_spec_t &s, unsigned int channel, unsigned int fftlen)
Return RMS level of a spectrum channel.

• mha_real_t MHASignal::colored_intensity (const mha_spec_t &s, unsigned int
channel, unsigned int fftlen, mha_real_t sqfreq_response[ ])
Colored spectrum intensity.

• mha_real_t MHASignal::maxabs (const mha_spec_t &s, unsigned int channel)
Find maximal absolute value.

• mha_real_t MHASignal::rmslevel (const mha_wave_t &s, unsigned int channel)
Return RMS level of a waveform channel.

• mha_real_t MHASignal::maxabs (const mha_wave_t &s, unsigned int channel)
Find maximal absolute value.

• mha_real_t MHASignal::maxabs (const mha_wave_t &s)
Find maximal absolute value.

• mha_real_t MHASignal::max (const mha_wave_t &s)
Find maximal value.

• mha_real_t MHASignal::min (const mha_wave_t &s)
Find minimal value.

• mha_real_t MHASignal::sumsqr_channel (const mha_wave_t &s, unsigned int channel)
Calculate sum of squared values in one channel.

• mha_real_t MHASignal::sumsqr_frame (const mha_wave_t &s, unsigned int frame)
© 2005-2018 HörTech gGmbH, Oldenburg

1274

CONTENTS

Calculate sum over all channels of squared values.

• void MHASignal::scale ( mha_spec_t ∗dest, const mha_wave_t ∗src)
• void MHASignal::limit ( mha_wave_t &s, const mha_real_t & min, const mha_real_t
& max)
Limit the singal in the waveform buffer to the range [min, max].

• mha_complex_t & set ( mha_complex_t &self, mha_real_t real, mha_real_t imag=0)
Assign real and imaginary parts to a mha_complex_t ( p. 503) variable.

• mha_complex_t mha_complex ( mha_real_t real, mha_real_t imag=0)
Create a new mha_complex_t ( p. 503) with specified real and imaginary parts.

• mha_complex_t & set ( mha_complex_t &self, const std::complex< mha_real_t > &
stdcomplex)
Assign a mha_complex_t ( p. 503) variable from a std::complex.

• std::complex< mha_real_t > stdcomplex (const mha_complex_t &self)
Create a std::complex from mha_complex_t ( p. 503).

• mha_complex_t & expi ( mha_complex_t &self, mha_real_t angle)
replaces the value of the given mha_complex_t ( p. 503) with exp(i∗b).

• double angle (const mha_complex_t &self)
Computes the angle of a complex number in the complex plane.

• mha_complex_t & operator+= ( mha_complex_t &self, const mha_complex_←t &other)
Addition of two complex numbers, overwriting the first.

• mha_complex_t operator+ (const mha_complex_t &self, const mha_complex_t
&other)
Addition of two complex numbers, result is a temporary object.

• mha_complex_t & operator+= ( mha_complex_t &self, mha_real_t other_real)
Addition of a complex and a real number, overwriting the complex.

• mha_complex_t operator+ (const mha_complex_t &self, mha_real_t other_real)
Addition of a complex and a real number, result is a temporary object.

• mha_complex_t & operator-= ( mha_complex_t &self, const mha_complex_t &other)
Subtraction of two complex numbers, overwriting the first.

• mha_complex_t operator- (const mha_complex_t &self, const mha_complex_←t &other)
Subtraction of two complex numbers, result is a temporary object.

• mha_complex_t & operator-= ( mha_complex_t &self, mha_real_t other_real)
Subtraction of a complex and a real number, overwriting the complex.

• mha_complex_t operator- (const mha_complex_t &self, mha_real_t other_real)
Subtraction of a complex and a real number, result is a temporary object.

• mha_complex_t & operator∗= ( mha_complex_t &self, const mha_complex_←t &other)
Multiplication of two complex numbers, overwriting the first.

• mha_complex_t operator∗ (const mha_complex_t &self, const mha_complex_t
&other)
Multiplication of two complex numbers, result is a temporary object.

• mha_complex_t & operator∗= ( mha_complex_t &self, mha_real_t other_real)
Multiplication of a complex and a real number, overwriting the complex.
© 2005-2018 HörTech gGmbH, Oldenburg

6.112

mha_signal.hh File Reference

1275

• mha_complex_t & expi ( mha_complex_t &self, mha_real_t angle, mha_real_t
factor)
replaces (!) the value of the given mha_complex_t ( p. 503) with a ∗ exp(i∗b)

• mha_complex_t operator∗ (const mha_complex_t &self, mha_real_t other_real)
Multiplication of a complex and a real number, result is a temporary object.

• mha_real_t abs2 (const mha_complex_t &self)
Compute the square of the absolute value of a complex value.

• mha_real_t abs (const mha_complex_t &self)
Compute the absolute value of a complex value.

• mha_complex_t & operator/= ( mha_complex_t &self, mha_real_t other_real)
Division of a complex and a real number, overwriting the complex.

• mha_complex_t operator/ (const mha_complex_t &self, mha_real_t other_real)
Division of a complex and a real number, result is a temporary object.

• mha_complex_t & safe_div ( mha_complex_t &self, const mha_complex_t &other,
mha_real_t eps, mha_real_t eps2)
Safe division of two complex numbers, overwriting the first.

• mha_complex_t & operator/= ( mha_complex_t &self, const mha_complex_t &other)
Division of two complex numbers, overwriting the first.

• mha_complex_t operator/ (const mha_complex_t &self, const mha_complex_←t &other)
Division of two complex numbers, result is a temporary object.

• mha_complex_t operator- (const mha_complex_t &self)
Unary minus on a complex results in a negative temporary object.

• bool operator== (const mha_complex_t &x, const mha_complex_t &y)
Compare two complex numbers for equality.

• bool operator!= (const mha_complex_t &x, const mha_complex_t &y)
Compare two complex numbers for inequality.

• void conjugate ( mha_complex_t &self)
Replace (!) the value of this mha_complex_t ( p. 503) with its conjugate.

• void conjugate ( mha_spec_t &self)
Replace (!) the value of this mha_spec_t ( p. 547) with its conjugate.

• mha_complex_t _conjugate (const mha_complex_t &self)
Compute the cojugate of this complex value.

• void reciprocal ( mha_complex_t &self)
Replace the value of this complex with its reciprocal.

• mha_complex_t _reciprocal (const mha_complex_t &self)
compute the reciprocal of this complex value.

• void normalize ( mha_complex_t &self)
Divide a complex by its absolute value, thereby normalizing it (projecting onto the unit circle).

• void normalize ( mha_complex_t &self, mha_real_t margin)
Divide a complex by its absolute value, thereby normalizing it (projecting onto the unit circle),
with a safety margin.

• bool almost (const mha_complex_t &self, const mha_complex_t &other, mha_←real_t times_epsilon=1e2)
Compare two complex numbers for equality except for a small relative error.

• bool operator< (const mha_complex_t &x, const mha_complex_t &y)
© 2005-2018 HörTech gGmbH, Oldenburg

1276

CONTENTS

Compares the absolute values of two complex numbers.

• std::ostream & operator<< (std::ostream &o, const mha_complex_t &c)
ostream operator for mha_complex_t ( p. 503)

• std::istream & operator>> (std::istream &i, mha_complex_t &c)
preliminary istream operator for mha_complex_t ( p. 503) without error checking

• mha_fft_t mha_fft_new (unsigned int n)
Create a new FFT handle.

• void mha_fft_free ( mha_fft_t h)
Destroy an FFT handle.

• void mha_fft_wave2spec ( mha_fft_t h, const mha_wave_t ∗in, mha_spec_t ∗out)
Tranform waveform segment into spectrum.

• void mha_fft_wave2spec ( mha_fft_t h, const mha_wave_t ∗in, mha_spec_t ∗out,
bool swaps)
Tranform waveform segment into spectrum.

• void mha_fft_spec2wave ( mha_fft_t h, const mha_spec_t ∗in, mha_wave_t ∗out)
Tranform spectrum into waveform segment.

• void mha_fft_spec2wave ( mha_fft_t h, const mha_spec_t ∗in, mha_wave_t ∗out,
unsigned int offset)
Tranform spectrum into waveform segment.

• void mha_fft_forward ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (forward).

• void mha_fft_backward ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (backward).

• void mha_fft_forward_scale ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (forward).

• void mha_fft_backward_scale ( mha_fft_t h, mha_spec_t ∗sIn, mha_spec_t ∗sOut)
Complex to complex FFT (backward).

• void mha_fft_wave2spec_scale ( mha_fft_t h, const mha_wave_t ∗in, mha_spec_t
∗out)
Tranform waveform segment into spectrum.

• void mha_fft_spec2wave_scale ( mha_fft_t h, const mha_spec_t ∗in, mha_wave_t
∗out)
Tranform spectrum into waveform segment.

• template
elem_type MHASignal::kth_smallest (elem_type array[ ], unsigned n, unsigned k)
Fast search for the kth smallest element of an array.

• template
elem_type MHASignal::median (elem_type array[ ], unsigned n)
Fast median search.

• template
elem_type MHASignal::mean (const std::vector< elem_type > &data, elem_type start←_val)
Calculate average of elements in a vector.

• template
std::vector< elem_type > MHASignal::quantile (std::vector< elem_type > data, const
std::vector< elem_type > &p)
© 2005-2018 HörTech gGmbH, Oldenburg

6.112

mha_signal.hh File Reference

1277

Calculate quantile of elements in a vector.

• void MHASignal::saveas_mat4 (const mha_spec_t &data, const std::string &varname,
FILE ∗fh)
Save a openMHA spectrum as a variable in a Matlab4 file.

• void MHASignal::saveas_mat4 (const mha_wave_t &data, const std::string &varname,
FILE ∗fh)
Save a openMHA waveform as a variable in a Matlab4 file.

• void MHASignal::saveas_mat4 (const std::vector< mha_real_t > &data, const std←::string &varname, FILE ∗fh)
Save a float vector as a variable in a Matlab4 file.

• void MHASignal::copy_permuted ( mha_wave_t ∗dest, const mha_wave_t ∗src)
Copy contents of a waveform to a permuted waveform.

Variables
• unsigned long int MHASignal::signal_counter = 0
Signal counter to produce signal ID strings.

6.112.1

Detailed Description

Header file for audio signal handling and processing classes.
The classes for waveform, spectrum and filterbank signals defined in this file are "intelligent"
versions of the basic waveform, spectrum and filterbank structures used in the C function calls.

6.112.2

6.112.2.1

Macro Definition Documentation

M_PI

#define M_PI 3.14159265358979323846

6.112.2.2

mha_round

#define mha_round(
x ) (int)((float)x+0.5)

6.112.3

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1278

6.112.3.1

CONTENTS

mha_min_1()

unsigned int mha_min_1 (
unsigned int a ) [inline]

6.112.3.2

value() [1/2]

mha_real_t& value (
mha_wave_t ∗ s,
unsigned int k ) [inline]

6.112.3.3

value() [2/2]

mha_complex_t& value (
mha_spec_t ∗ s,
unsigned int k ) [inline]

6.112.3.4

set_minabs()

void set_minabs (
mha_spec_t & ,
const

6.112.3.5

mha_real_t &

)

safe_div()

mha_spec_t& safe_div (
mha_spec_t & self,
const

mha_spec_t & v,

mha_real_t eps )

In-Place division with lower limit on divisor.

6.112.3.6

operator<<()

std::ostream& operator<< (
std::ostream & o,
const

mha_complex_t & c ) [inline]

ostream operator for mha_complex_t (p. 503)

© 2005-2018 HörTech gGmbH, Oldenburg

6.113

mha_signal_fft.h File Reference

6.112.3.7

1279

operator>>()

std::istream& operator>> (
std::istream & i,
mha_complex_t & c ) [inline]

preliminary istream operator for mha_complex_t (p. 503) without error checking

6.113

mha_signal_fft.h File Reference

Classes
• class MHASignal::fft_t

Namespaces
• MHASignal
Namespace for audio signal handling and processing classes.

6.114

mha_tablelookup.cpp File Reference

6.115

mha_tablelookup.hh File Reference

Header file for table lookup classes.

Classes
• class MHATableLookup::table_t
• class MHATableLookup::linear_table_t
Class for interpolation with equidistant x values.

• class MHATableLookup::xy_table_t
Class for interpolation with non-equidistant x values.

Namespaces
• MHATableLookup
Namespace for table lookup classes.

6.115.1

Detailed Description

Header file for table lookup classes.
© 2005-2018 HörTech gGmbH, Oldenburg

1280

6.116

CONTENTS

mha_tcp.cpp File Reference

Namespaces
• MHA_TCP
A Namespace for TCP helper classes.

Macros
•
•
•
•

#define
#define
#define
#define

INVALID_SOCKET (-1)
SOCKET_ERROR (-1)
closesocket(fd) (close((fd)))
ASYNC_CONNECT_STARTED EINPROGRESS

Typedefs
• typedef int SOCKET

Functions
• std::string MHA_TCP::STRERROR (int err)
Portable conversion from error number to error string.

• std::string MHA_TCP::HSTRERROR (int err)
Portable conversion from hostname error number to error string.

• int MHA_TCP::N_ERRNO ()
Portable access to last network error number.

• int MHA_TCP::H_ERRNO ()
Portable access to last hostname error number.

• int MHA_TCP::G_ERRNO ()
Portable access to last non-network error number.

• static sockaddr_in host_port_to_sock_addr (const std::string &host, unsigned short
port)
• static SOCKET tcp_connect_to (const std::string &host, unsigned short port)
• static SOCKET tcp_connect_to_with_timeout (const std::string &host, unsigned short
port, Timeout_Watcher &timeout_watcher)
• static void ∗ thread_start_func (void ∗thread)

6.116.1

Macro Definition Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

6.116

6.116.1.1

mha_tcp.cpp File Reference

INVALID_SOCKET

#define INVALID_SOCKET (-1)

6.116.1.2

SOCKET_ERROR

#define SOCKET_ERROR (-1)

6.116.1.3

closesocket

#define closesocket(
fd ) (close((fd)))

6.116.1.4

ASYNC_CONNECT_STARTED

#define ASYNC_CONNECT_STARTED EINPROGRESS

6.116.2

6.116.2.1

Typedef Documentation

SOCKET

typedef int

6.116.3

6.116.3.1

SOCKET

Function Documentation

host_port_to_sock_addr()

static sockaddr_in host_port_to_sock_addr (
const std::string & host,
unsigned short port ) [static]

© 2005-2018 HörTech gGmbH, Oldenburg

1281

1282

6.116.3.2
static

CONTENTS

tcp_connect_to()
SOCKET tcp_connect_to (
const std::string & host,
unsigned short port ) [static]

6.116.3.3
static

tcp_connect_to_with_timeout()
SOCKET tcp_connect_to_with_timeout (
const std::string & host,
unsigned short port,
Timeout_Watcher & timeout_watcher ) [static]

6.116.3.4

thread_start_func()

static void∗ thread_start_func (
void ∗ thread ) [static]

6.117

mha_tcp.hh File Reference

Classes
• struct MHA_TCP::OS_EVENT_TYPE
• class MHA_TCP::Wakeup_Event
A base class for asynchronous wakeup events.

• class MHA_TCP::Async_Notify
Portable Multiplexable cross-thread notification.

• class MHA_TCP::Event_Watcher
OS-independent event watcher, uses select on Unix and WaitForMultipleObjects on Windows.

• class MHA_TCP::Timeout_Event
• class MHA_TCP::Timeout_Watcher
OS-independent event watcher with internal fixed-end-time timeout.

• class MHA_TCP::Sockread_Event
Watch socket for incoming data.

• class MHA_TCP::Sockwrite_Event
• class MHA_TCP::Sockaccept_Event
• class MHA_TCP::Connection
Connection ( p. 552) handles Communication between client and server, is used on both sides.

• class MHA_TCP::Server
• class MHA_TCP::Client
A portable class for a tcp client connections.

• class MHA_TCP::Thread
A very simple class for portable threads.
© 2005-2018 HörTech gGmbH, Oldenburg

6.117

mha_tcp.hh File Reference

1283

Namespaces
• MHA_TCP
A Namespace for TCP helper classes.

Macros
• #define Sleep(x) usleep((x)∗1000);

Typedefs
• typedef int MHA_TCP::SOCKET

Functions
• std::string MHA_TCP::STRERROR (int err)
Portable conversion from error number to error string.

• std::string MHA_TCP::HSTRERROR (int err)
Portable conversion from hostname error number to error string.

• int MHA_TCP::N_ERRNO ()
Portable access to last network error number.

• int MHA_TCP::H_ERRNO ()
Portable access to last hostname error number.

• int MHA_TCP::G_ERRNO ()
Portable access to last non-network error number.

• double MHA_TCP::dtime ()
Time access function for system's high resolution time, retrieve current time as double.

• double MHA_TCP::dtime (const struct timeval &tv)
Time access function for unix' high resolution time, converts struct timeval to double.

• struct timeval MHA_TCP::stime (double d)
Time access function for unix' high resolution time, converts time from double to struct timeval.

6.117.1

6.117.1.1

Macro Definition Documentation

Sleep

#define Sleep(
x ) usleep((x)∗1000);

© 2005-2018 HörTech gGmbH, Oldenburg

1284

6.118

mha_toolbox.h File Reference

6.119

mha_windowparser.cpp File Reference

CONTENTS

Variables
• float(∗ wnd_funs [ ])(float)

6.119.1

Variable Documentation

6.119.1.1

wnd_funs

float(∗ wnd_funs[ ])(float)

6.120

mha_windowparser.h File Reference

Classes
• class MHAWindow::base_t
Common base for window types.

• class MHAWindow::fun_t
Generic window based on a generator function.

• class MHAWindow::rect_t
Rectangular window.

• class MHAWindow::bartlett_t
Bartlett window.

• class MHAWindow::hanning_t
von-Hann window

• class MHAWindow::hamming_t
Hamming window.

• class MHAWindow::blackman_t
Blackman window.

• class MHAWindow::user_t
User defined window.

• class MHAParser::window_t
MHA configuration interface for a window function generator.
© 2005-2018 HörTech gGmbH, Oldenburg

6.121

mhachain.cpp File Reference

Namespaces
• MHAWindow
Collection of Window types.

• MHAParser
Name space for the openMHA-Parser configuration language.

Functions
• float MHAWindow::rect (float)
Rectangular window function.

• float MHAWindow::bartlett (float)
Bartlett window function.

• float MHAWindow::hanning (float)
Hanning window function.

• float MHAWindow::hamming (float)
Hamming window function.

• float MHAWindow::blackman (float)
Blackman window function.

6.121

mhachain.cpp File Reference

Classes
• class mhachain::mhachain_t

Namespaces
• mhachain

6.122

mhafw_lib.cpp File Reference

6.123

mhafw_lib.h File Reference

Classes
• class io_lib_t
Class for loading MHA sound IO module.

• class fw_vars_t
• class fw_t
© 2005-2018 HörTech gGmbH, Oldenburg

1285

1286

6.124

CONTENTS

MHAIOFile.cpp File Reference

Classes
• class io_file_t
File IO.

Macros
• #define DEBUG(x) std::cerr << __FILE__ << ":" << __LINE__ << " " << #x " = " <<
x << std::endl
• #define ERR_SUCCESS 0
• #define ERR_IHANDLE -1
• #define ERR_USER -1000
• #define MAX_USER_ERR 0x500
• #define IOInit MHA_STATIC_MHAIOFile_IOInit
• #define IOPrepare MHA_STATIC_MHAIOFile_IOPrepare
• #define IOStart MHA_STATIC_MHAIOFile_IOStart
• #define IOStop MHA_STATIC_MHAIOFile_IOStop
• #define IORelease MHA_STATIC_MHAIOFile_IORelease
• #define IOSetVar MHA_STATIC_MHAIOFile_IOSetVar
• #define IOStrError MHA_STATIC_MHAIOFile_IOStrError
• #define IODestroy MHA_STATIC_MHAIOFile_IODestroy
• #define dummy_interface_test MHA_STATIC_MHAIOFile_dummy_interface_test

Functions
• int IOInit (int fragsize, float samplerate, IOProcessEvent_t proc_event, void ∗proc_←handle, IOStartedEvent_t start_event, void ∗start_handle, IOStoppedEvent_t stop_←event, void ∗stop_handle, void ∗∗handle)
• int IOPrepare (void ∗handle, int nch_in, int nch_out)
• int IOStart (void ∗handle)
• int IOStop (void ∗handle)
• int IORelease (void ∗handle)
• int IOSetVar (void ∗handle, const char ∗command, char ∗retval, unsigned int maxretlen)
• const char ∗ IOStrError (void ∗handle, int err)
• void IODestroy (void ∗handle)
• void dummy_interface_test (void)

Variables
• static char user_err_msg [ MAX_USER_ERR]
© 2005-2018 HörTech gGmbH, Oldenburg

6.124

MHAIOFile.cpp File Reference

6.124.1

Macro Definition Documentation

6.124.1.1

1287

DEBUG

#define DEBUG(
x ) std::cerr << __FILE__ << ":" << __LINE__ << " " << #x " = " <<
x << std::endl

6.124.1.2

ERR_SUCCESS

#define ERR_SUCCESS 0

6.124.1.3

ERR_IHANDLE

#define ERR_IHANDLE -1

6.124.1.4

ERR_USER

#define ERR_USER -1000

6.124.1.5

MAX_USER_ERR

#define MAX_USER_ERR 0x500

6.124.1.6

IOInit

#define IOInit MHA_STATIC_MHAIOFile_IOInit

6.124.1.7

IOPrepare

#define IOPrepare MHA_STATIC_MHAIOFile_IOPrepare

© 2005-2018 HörTech gGmbH, Oldenburg

1288

6.124.1.8

CONTENTS

IOStart

#define IOStart MHA_STATIC_MHAIOFile_IOStart

6.124.1.9

IOStop

#define IOStop MHA_STATIC_MHAIOFile_IOStop

6.124.1.10

IORelease

#define IORelease MHA_STATIC_MHAIOFile_IORelease

6.124.1.11

IOSetVar

#define IOSetVar MHA_STATIC_MHAIOFile_IOSetVar

6.124.1.12

IOStrError

#define IOStrError MHA_STATIC_MHAIOFile_IOStrError

6.124.1.13

IODestroy

#define IODestroy MHA_STATIC_MHAIOFile_IODestroy

6.124.1.14

dummy_interface_test

#define dummy_interface_test MHA_STATIC_MHAIOFile_dummy_interface_test

6.124.2

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

6.124

6.124.2.1

MHAIOFile.cpp File Reference

IOInit()

int IOInit (
int fragsize,
float samplerate,
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle,
void ∗∗ handle )

6.124.2.2

IOPrepare()

int IOPrepare (
void ∗ handle,
int nch_in,
int nch_out )

6.124.2.3

IOStart()

int IOStart (
void ∗ handle )

6.124.2.4

IOStop()

int IOStop (
void ∗ handle )

6.124.2.5

IORelease()

int IORelease (
void ∗ handle )

© 2005-2018 HörTech gGmbH, Oldenburg

1289

1290

6.124.2.6

CONTENTS

IOSetVar()

int IOSetVar (
void ∗ handle,
const char ∗ command,
char ∗ retval,
unsigned int maxretlen )

6.124.2.7

IOStrError()

const char∗ IOStrError (
void ∗ handle,
int err )

6.124.2.8

IODestroy()

void IODestroy (
void ∗ handle )

6.124.2.9

dummy_interface_test()

void dummy_interface_test (
void

6.124.3

)

Variable Documentation

6.124.3.1

user_err_msg

char user_err_msg[ MAX_USER_ERR] [static]

6.125

MHAIOJack.cpp File Reference

Classes
• class MHAIOJack::io_jack_t
Main class for JACK IO.
© 2005-2018 HörTech gGmbH, Oldenburg

6.125

MHAIOJack.cpp File Reference

1291

Namespaces
• MHAIOJack
JACK IO.

Macros
•
•
•
•
•
•
•
•
•
•
•
•
•

#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define

ERR_SUCCESS 0
ERR_IHANDLE -1
ERR_USER -1000
MAX_USER_ERR 0x500
IOInit MHA_STATIC_MHAIOJack_IOInit
IOPrepare MHA_STATIC_MHAIOJack_IOPrepare
IOStart MHA_STATIC_MHAIOJack_IOStart
IOStop MHA_STATIC_MHAIOJack_IOStop
IORelease MHA_STATIC_MHAIOJack_IORelease
IOSetVar MHA_STATIC_MHAIOJack_IOSetVar
IOStrError MHA_STATIC_MHAIOJack_IOStrError
IODestroy MHA_STATIC_MHAIOJack_IODestroy
dummy_interface_test MHA_STATIC_MHAIOJack_dummy_interface_test

Functions
• int IOInit (int fragsize, float samplerate, IOProcessEvent_t proc_event, void ∗proc_←handle, IOStartedEvent_t start_event, void ∗start_handle, IOStoppedEvent_t stop_←event, void ∗stop_handle, void ∗∗handle)
• int IOPrepare (void ∗handle, int nch_in, int nch_out)
• int IOStart (void ∗handle)
• int IOStop (void ∗handle)
• int IORelease (void ∗handle)
• int IOSetVar (void ∗handle, const char ∗command, char ∗retval, unsigned int maxretlen)
• const char ∗ IOStrError (void ∗handle, int err)
• void IODestroy (void ∗handle)
• void dummy_interface_test (void)

Variables
• static char user_err_msg [ MAX_USER_ERR] = ""

6.125.1

Macro Definition Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1292

6.125.1.1

CONTENTS

ERR_SUCCESS

#define ERR_SUCCESS 0

6.125.1.2

ERR_IHANDLE

#define ERR_IHANDLE -1

6.125.1.3

ERR_USER

#define ERR_USER -1000

6.125.1.4

MAX_USER_ERR

#define MAX_USER_ERR 0x500

6.125.1.5

IOInit

#define IOInit MHA_STATIC_MHAIOJack_IOInit

6.125.1.6

IOPrepare

#define IOPrepare MHA_STATIC_MHAIOJack_IOPrepare

6.125.1.7

IOStart

#define IOStart MHA_STATIC_MHAIOJack_IOStart

6.125.1.8

IOStop

#define IOStop MHA_STATIC_MHAIOJack_IOStop

© 2005-2018 HörTech gGmbH, Oldenburg

6.125

MHAIOJack.cpp File Reference

6.125.1.9

1293

IORelease

#define IORelease MHA_STATIC_MHAIOJack_IORelease

6.125.1.10

IOSetVar

#define IOSetVar MHA_STATIC_MHAIOJack_IOSetVar

6.125.1.11

IOStrError

#define IOStrError MHA_STATIC_MHAIOJack_IOStrError

6.125.1.12

IODestroy

#define IODestroy MHA_STATIC_MHAIOJack_IODestroy

6.125.1.13

dummy_interface_test

#define dummy_interface_test MHA_STATIC_MHAIOJack_dummy_interface_test

6.125.2

6.125.2.1

Function Documentation

IOInit()

int IOInit (
int fragsize,
float samplerate,
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle,
void ∗∗ handle )

© 2005-2018 HörTech gGmbH, Oldenburg

1294

6.125.2.2

CONTENTS

IOPrepare()

int IOPrepare (
void ∗ handle,
int nch_in,
int nch_out )

6.125.2.3

IOStart()

int IOStart (
void ∗ handle )

6.125.2.4

IOStop()

int IOStop (
void ∗ handle )

6.125.2.5

IORelease()

int IORelease (
void ∗ handle )

6.125.2.6

IOSetVar()

int IOSetVar (
void ∗ handle,
const char ∗ command,
char ∗ retval,
unsigned int maxretlen )

6.125.2.7

IOStrError()

const char∗ IOStrError (
void ∗ handle,
int err )

© 2005-2018 HörTech gGmbH, Oldenburg

6.126

MHAIOParser.cpp File Reference

6.125.2.8

1295

IODestroy()

void IODestroy (
void ∗ handle )

6.125.2.9

dummy_interface_test()

void dummy_interface_test (
void

6.125.3

)

Variable Documentation

6.125.3.1

user_err_msg

char user_err_msg[ MAX_USER_ERR] = "" [static]

6.126

MHAIOParser.cpp File Reference

Classes
• class io_parser_t
Main class for Parser IO.

Macros
•
•
•
•
•
•
•
•
•
•
•
•
•

#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define

ERR_SUCCESS 0
ERR_IHANDLE -1
ERR_USER -1000
MAX_USER_ERR 0x500
IOInit MHA_STATIC_MHAIOParser_IOInit
IOPrepare MHA_STATIC_MHAIOParser_IOPrepare
IOStart MHA_STATIC_MHAIOParser_IOStart
IOStop MHA_STATIC_MHAIOParser_IOStop
IORelease MHA_STATIC_MHAIOParser_IORelease
IOSetVar MHA_STATIC_MHAIOParser_IOSetVar
IOStrError MHA_STATIC_MHAIOParser_IOStrError
IODestroy MHA_STATIC_MHAIOParser_IODestroy
dummy_interface_test MHA_STATIC_MHAIOParser_dummy_interface_test

© 2005-2018 HörTech gGmbH, Oldenburg

1296

CONTENTS

Functions
• int IOInit (int fragsize, float, IOProcessEvent_t proc_event, void ∗proc_handle, I←OStartedEvent_t start_event, void ∗start_handle, IOStoppedEvent_t stop_event, void
∗stop_handle, void ∗∗handle)
• int IOPrepare (void ∗handle, int nch_in, int nch_out)
• int IOStart (void ∗handle)
• int IOStop (void ∗handle)
• int IORelease (void ∗handle)
• int IOSetVar (void ∗handle, const char ∗command, char ∗retval, unsigned int maxretlen)
• const char ∗ IOStrError (void ∗handle, int err)
• void IODestroy (void ∗handle)
• void dummy_interface_test (void)

Variables
• static char user_err_msg [ MAX_USER_ERR]

6.126.1

6.126.1.1

Macro Definition Documentation

ERR_SUCCESS

#define ERR_SUCCESS 0

6.126.1.2

ERR_IHANDLE

#define ERR_IHANDLE -1

6.126.1.3

ERR_USER

#define ERR_USER -1000

6.126.1.4

MAX_USER_ERR

#define MAX_USER_ERR 0x500

© 2005-2018 HörTech gGmbH, Oldenburg

6.126

MHAIOParser.cpp File Reference

6.126.1.5

IOInit

#define IOInit MHA_STATIC_MHAIOParser_IOInit

6.126.1.6

IOPrepare

#define IOPrepare MHA_STATIC_MHAIOParser_IOPrepare

6.126.1.7

IOStart

#define IOStart MHA_STATIC_MHAIOParser_IOStart

6.126.1.8

IOStop

#define IOStop MHA_STATIC_MHAIOParser_IOStop

6.126.1.9

IORelease

#define IORelease MHA_STATIC_MHAIOParser_IORelease

6.126.1.10

IOSetVar

#define IOSetVar MHA_STATIC_MHAIOParser_IOSetVar

6.126.1.11

IOStrError

#define IOStrError MHA_STATIC_MHAIOParser_IOStrError

6.126.1.12

IODestroy

#define IODestroy MHA_STATIC_MHAIOParser_IODestroy

© 2005-2018 HörTech gGmbH, Oldenburg

1297

1298

6.126.1.13

CONTENTS

dummy_interface_test

#define dummy_interface_test MHA_STATIC_MHAIOParser_dummy_interface_test

6.126.2

6.126.2.1

Function Documentation

IOInit()

int IOInit (
int fragsize,
float ,
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle,
void ∗∗ handle )

6.126.2.2

IOPrepare()

int IOPrepare (
void ∗ handle,
int nch_in,
int nch_out )

6.126.2.3

IOStart()

int IOStart (
void ∗ handle )

6.126.2.4

IOStop()

int IOStop (
void ∗ handle )

© 2005-2018 HörTech gGmbH, Oldenburg

6.126

6.126.2.5

MHAIOParser.cpp File Reference

IORelease()

int IORelease (
void ∗ handle )

6.126.2.6

IOSetVar()

int IOSetVar (
void ∗ handle,
const char ∗ command,
char ∗ retval,
unsigned int maxretlen )

6.126.2.7

IOStrError()

const char∗ IOStrError (
void ∗ handle,
int err )

6.126.2.8

IODestroy()

void IODestroy (
void ∗ handle )

6.126.2.9

dummy_interface_test()

void dummy_interface_test (
void

6.126.3

6.126.3.1

)

Variable Documentation

user_err_msg

char user_err_msg[ MAX_USER_ERR] [static]

© 2005-2018 HörTech gGmbH, Oldenburg

1299

1300

6.127

CONTENTS

MHAIOPortAudio.cpp File Reference

Classes
• class MHAIOPortAudio::device_info_t
• class MHAIOPortAudio::io_portaudio_t
Main class for Portaudio sound IO.

Namespaces
• MHAIOPortAudio

Macros
•
•
•
•
•
•
•
•
•
•
•
•
•

#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
test

ERR_SUCCESS 0
ERR_IHANDLE -1
ERR_USER -1000
MAX_USER_ERR 0x500
IOInit MHA_STATIC_MHAIOPortAudio_IOInit
IOPrepare MHA_STATIC_MHAIOPortAudio_IOPrepare
IOStart MHA_STATIC_MHAIOPortAudio_IOStart
IOStop MHA_STATIC_MHAIOPortAudio_IOStop
IORelease MHA_STATIC_MHAIOPortAudio_IORelease
IOSetVar MHA_STATIC_MHAIOPortAudio_IOSetVar
IOStrError MHA_STATIC_MHAIOPortAudio_IOStrError
IODestroy MHA_STATIC_MHAIOPortAudio_IODestroy
dummy_interface_test MHA_STATIC_MHAIOPortAudio_dummy_interface_←-

Functions
• static std::string MHAIOPortAudio::parserFriendlyName (const std::string &in)
• int portaudio_callback (const void ∗input, void ∗output, unsigned long frameCount,
const PaStreamCallbackTimeInfo ∗timeInfo, PaStreamCallbackFlags statusFlags, void
∗userData)
• int IOInit (int fragsize, float samplerate, IOProcessEvent_t proc_event, void ∗proc_←handle, IOStartedEvent_t start_event, void ∗start_handle, IOStoppedEvent_t stop_←event, void ∗stop_handle, void ∗∗handle)
• int IOPrepare (void ∗handle, int nch_in, int nch_out)
• int IOStart (void ∗handle)
• int IOStop (void ∗handle)
• int IORelease (void ∗handle)
• int IOSetVar (void ∗handle, const char ∗command, char ∗retval, unsigned int maxretlen)
• const char ∗ IOStrError (void ∗handle, int err)
• void IODestroy (void ∗handle)
• void dummy_interface_test (void)
© 2005-2018 HörTech gGmbH, Oldenburg

6.127

MHAIOPortAudio.cpp File Reference

Variables
• static char user_err_msg [ MAX_USER_ERR] = ""
• PaStreamCallback portaudio_callback

6.127.1

6.127.1.1

Macro Definition Documentation

ERR_SUCCESS

#define ERR_SUCCESS 0

6.127.1.2

ERR_IHANDLE

#define ERR_IHANDLE -1

6.127.1.3

ERR_USER

#define ERR_USER -1000

6.127.1.4

MAX_USER_ERR

#define MAX_USER_ERR 0x500

6.127.1.5

IOInit

#define IOInit MHA_STATIC_MHAIOPortAudio_IOInit

6.127.1.6

IOPrepare

#define IOPrepare MHA_STATIC_MHAIOPortAudio_IOPrepare

© 2005-2018 HörTech gGmbH, Oldenburg

1301

1302

6.127.1.7

CONTENTS

IOStart

#define IOStart MHA_STATIC_MHAIOPortAudio_IOStart

6.127.1.8

IOStop

#define IOStop MHA_STATIC_MHAIOPortAudio_IOStop

6.127.1.9

IORelease

#define IORelease MHA_STATIC_MHAIOPortAudio_IORelease

6.127.1.10

IOSetVar

#define IOSetVar MHA_STATIC_MHAIOPortAudio_IOSetVar

6.127.1.11

IOStrError

#define IOStrError MHA_STATIC_MHAIOPortAudio_IOStrError

6.127.1.12

IODestroy

#define IODestroy MHA_STATIC_MHAIOPortAudio_IODestroy

6.127.1.13

dummy_interface_test

#define dummy_interface_test MHA_STATIC_MHAIOPortAudio_dummy_interface_test

6.127.2

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

6.127

6.127.2.1

MHAIOPortAudio.cpp File Reference

portaudio_callback()

int portaudio_callback (
const void ∗ input,
void ∗ output,
unsigned long frameCount,
const PaStreamCallbackTimeInfo ∗ timeInfo,
PaStreamCallbackFlags statusFlags,
void ∗ userData )

6.127.2.2

IOInit()

int IOInit (
int fragsize,
float samplerate,
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle,
void ∗∗ handle )

6.127.2.3

IOPrepare()

int IOPrepare (
void ∗ handle,
int nch_in,
int nch_out )

6.127.2.4

IOStart()

int IOStart (
void ∗ handle )

6.127.2.5

IOStop()

int IOStop (
void ∗ handle )

© 2005-2018 HörTech gGmbH, Oldenburg

1303

1304

6.127.2.6

CONTENTS

IORelease()

int IORelease (
void ∗ handle )

6.127.2.7

IOSetVar()

int IOSetVar (
void ∗ handle,
const char ∗ command,
char ∗ retval,
unsigned int maxretlen )

6.127.2.8

IOStrError()

const char∗ IOStrError (
void ∗ handle,
int err )

6.127.2.9

IODestroy()

void IODestroy (
void ∗ handle )

6.127.2.10

dummy_interface_test()

void dummy_interface_test (
void

6.127.3

6.127.3.1

)

Variable Documentation

user_err_msg

char user_err_msg[ MAX_USER_ERR] = "" [static]

© 2005-2018 HörTech gGmbH, Oldenburg

6.128

MHAIOTCP.cpp File Reference

6.127.3.2

1305

portaudio_callback

PaStreamCallback portaudio_callback

6.128

MHAIOTCP.cpp File Reference

Classes
• class io_tcp_parser_t
The parser interface of the IOTCP library.

• class io_tcp_sound_t
Sound data handling of io tcp library.

• union io_tcp_sound_t::float_union
This union helps in conversion of floats from host byte order to network byte order and back
again.

• class io_tcp_fwcb_t
TCP sound-io library's interface to the framework callbacks.

• class io_tcp_t
The tcp sound io library.

Macros
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define

ERR_SUCCESS 0
ERR_IHANDLE -1
ERR_USER -1000
MAX_USER_ERR 0x2000
MHA_ErrorMsg2(x, y) MHA_Error(__FILE__,__LINE__,(x),(y))
MHA_ErrorMsg3(x, y, z) MHA_Error(__FILE__,__LINE__,(x),(y),(z))
MIN_TCP_PORT 0
MIN_TCP_PORT_STR "0"
MAX_TCP_PORT 65535
MAX_TCP_PORT_STR "65535"
IOInit MHA_STATIC_MHAIOTCP_IOInit
IOPrepare MHA_STATIC_MHAIOTCP_IOPrepare
IOStart MHA_STATIC_MHAIOTCP_IOStart
IOStop MHA_STATIC_MHAIOTCP_IOStop
IORelease MHA_STATIC_MHAIOTCP_IORelease
IOSetVar MHA_STATIC_MHAIOTCP_IOSetVar
IOStrError MHA_STATIC_MHAIOTCP_IOStrError
IODestroy MHA_STATIC_MHAIOTCP_IODestroy
dummy_interface_test MHA_STATIC_MHAIOTCP_dummy_interface_test

© 2005-2018 HörTech gGmbH, Oldenburg

1306

CONTENTS

Functions
• static int copy_error ( MHA_Error &e)
• static void ∗ thread_startup_function (void ∗parameter)
• int IOInit (int fragsize, float samplerate, IOProcessEvent_t proc_event, void ∗proc_←handle, IOStartedEvent_t start_event, void ∗start_handle, IOStoppedEvent_t stop_←event, void ∗stop_handle, void ∗∗handle)
• int IOPrepare (void ∗handle, int num_inchannels, int num_outchannels)
• int IOStart (void ∗handle)
• int IOStop (void ∗handle)
• int IORelease (void ∗handle)
• int IOSetVar (void ∗handle, const char ∗cmd, char ∗retval, unsigned int len)
• const char ∗ IOStrError (void ∗handle, int err)
• void IODestroy (void ∗handle)
• void dummy_interface_test (void)

Variables
• static char user_err_msg [ MAX_USER_ERR]

6.128.1

6.128.1.1

Macro Definition Documentation

ERR_SUCCESS

#define ERR_SUCCESS 0

6.128.1.2

ERR_IHANDLE

#define ERR_IHANDLE -1

6.128.1.3

ERR_USER

#define ERR_USER -1000

6.128.1.4

MAX_USER_ERR

#define MAX_USER_ERR 0x2000

© 2005-2018 HörTech gGmbH, Oldenburg

6.128

MHAIOTCP.cpp File Reference

6.128.1.5

MHA_ErrorMsg2

#define MHA_ErrorMsg2(
x,
y )

6.128.1.6

MHA_Error(__FILE__,__LINE__,(x),(y))

MHA_ErrorMsg3

#define MHA_ErrorMsg3(
x,
y,
z )

6.128.1.7

MHA_Error(__FILE__,__LINE__,(x),(y),(z))

MIN_TCP_PORT

#define MIN_TCP_PORT 0

6.128.1.8

MIN_TCP_PORT_STR

#define MIN_TCP_PORT_STR "0"

6.128.1.9

MAX_TCP_PORT

#define MAX_TCP_PORT 65535

6.128.1.10

MAX_TCP_PORT_STR

#define MAX_TCP_PORT_STR "65535"

6.128.1.11

IOInit

#define IOInit MHA_STATIC_MHAIOTCP_IOInit

© 2005-2018 HörTech gGmbH, Oldenburg

1307

1308

6.128.1.12

CONTENTS

IOPrepare

#define IOPrepare MHA_STATIC_MHAIOTCP_IOPrepare

6.128.1.13

IOStart

#define IOStart MHA_STATIC_MHAIOTCP_IOStart

6.128.1.14

IOStop

#define IOStop MHA_STATIC_MHAIOTCP_IOStop

6.128.1.15

IORelease

#define IORelease MHA_STATIC_MHAIOTCP_IORelease

6.128.1.16

IOSetVar

#define IOSetVar MHA_STATIC_MHAIOTCP_IOSetVar

6.128.1.17

IOStrError

#define IOStrError MHA_STATIC_MHAIOTCP_IOStrError

6.128.1.18

IODestroy

#define IODestroy MHA_STATIC_MHAIOTCP_IODestroy

6.128.1.19

dummy_interface_test

#define dummy_interface_test MHA_STATIC_MHAIOTCP_dummy_interface_test

© 2005-2018 HörTech gGmbH, Oldenburg

6.128

MHAIOTCP.cpp File Reference

6.128.2

Function Documentation

6.128.2.1

copy_error()

static int copy_error (
MHA_Error & e ) [static]

6.128.2.2

thread_startup_function()

static void∗ thread_startup_function (
void ∗ parameter ) [static]

6.128.2.3

IOInit()

int IOInit (
int fragsize,
float samplerate,
IOProcessEvent_t proc_event,
void ∗ proc_handle,
IOStartedEvent_t start_event,
void ∗ start_handle,
IOStoppedEvent_t stop_event,
void ∗ stop_handle,
void ∗∗ handle )

6.128.2.4

IOPrepare()

int IOPrepare (
void ∗ handle,
int num_inchannels,
int num_outchannels )

6.128.2.5

IOStart()

int IOStart (
void ∗ handle )

© 2005-2018 HörTech gGmbH, Oldenburg

1309

1310

6.128.2.6

CONTENTS

IOStop()

int IOStop (
void ∗ handle )

6.128.2.7

IORelease()

int IORelease (
void ∗ handle )

6.128.2.8

IOSetVar()

int IOSetVar (
void ∗ handle,
const char ∗ cmd,
char ∗ retval,
unsigned int len )

6.128.2.9

IOStrError()

const char∗ IOStrError (
void ∗ handle,
int err )

6.128.2.10

IODestroy()

void IODestroy (
void ∗ handle )

6.128.2.11

dummy_interface_test()

void dummy_interface_test (
void

6.128.3

)

Variable Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

6.129

mhajack.cpp File Reference

6.128.3.1

1311

user_err_msg

char user_err_msg[ MAX_USER_ERR] [static]

6.129

mhajack.cpp File Reference

Functions
• static void jack_error_handler (const char ∗msg)
• static int dummy_jack_proc_cb (jack_nframes_t, void ∗)
• void make_friendly_number (jack_default_audio_sample_t &x)

Variables
• char last_jack_err_msg [ MAX_USER_ERR] = ""
• int last_jack_err = 0

6.129.1

6.129.1.1

Function Documentation

jack_error_handler()

static void jack_error_handler (
const char ∗ msg ) [static]

6.129.1.2

dummy_jack_proc_cb()

static int dummy_jack_proc_cb (
jack_nframes_t ,
void ∗

6.129.1.3

) [static]

make_friendly_number()

void make_friendly_number (
jack_default_audio_sample_t & x ) [inline]

© 2005-2018 HörTech gGmbH, Oldenburg

1312

6.129.2

CONTENTS

Variable Documentation

6.129.2.1

last_jack_err_msg

char last_jack_err_msg[ MAX_USER_ERR] = ""

6.129.2.2

last_jack_err

int last_jack_err = 0

6.130

mhajack.h File Reference

Classes
• class MHAJack::port_t
Class for one channel/port.

• class MHAJack::client_t
Generic asynchronous JACK client.

• class MHAJack::client_noncont_t
Generic client for synchronous playback and recording of waveform fragments.

• class MHAJack::client_avg_t
Generic JACK client for averaging a system response across time.

Namespaces
• MHAJack
Classes and functions for openMHA and JACK interaction.

Macros
•
•
•
•
•
•

#define
#define
#define
#define
#define
#define

MHAJACK_FW_STARTED 1
MHAJACK_STOPPED 2
MHAJACK_STARTING 8
IO_ERROR_JACK 11
IO_ERROR_MHAJACKLIB 12
MAX_USER_ERR 0x500
© 2005-2018 HörTech gGmbH, Oldenburg

6.130

mhajack.h File Reference

1313

Functions
• void MHAJack::io ( mha_wave_t ∗s_out, mha_wave_t ∗s_in, const std::string &name,
const std::vector< std::string > &p_out, const std::vector< std::string > &p_in, float
∗srate=NULL, unsigned int ∗fragsize=NULL, bool use_jack_transport=false)
Functional form of generic client for synchronous playback and recording of waveform fragments.

• std::vector< unsigned int > MHAJack::get_port_capture_latency (const std::vector<
std::string > &ports)
Return the JACK port latency of ports.

• std::vector< int > MHAJack::get_port_capture_latency_int (const std::vector< std←::string > &ports)
Return the JACK port latency of ports.

• std::vector< unsigned int > MHAJack::get_port_playback_latency (const std::vector<
std::string > &ports)
Return the JACK port latency of ports.

• std::vector< int > MHAJack::get_port_playback_latency_int (const std::vector< std←::string > &ports)

Variables
• char last_jack_err_msg [ MAX_USER_ERR]

6.130.1

6.130.1.1

Macro Definition Documentation

MHAJACK_FW_STARTED

#define MHAJACK_FW_STARTED 1

6.130.1.2

MHAJACK_STOPPED

#define MHAJACK_STOPPED 2

6.130.1.3

MHAJACK_STARTING

#define MHAJACK_STARTING 8

© 2005-2018 HörTech gGmbH, Oldenburg

1314

6.130.1.4

CONTENTS

IO_ERROR_JACK

#define IO_ERROR_JACK 11

6.130.1.5

IO_ERROR_MHAJACKLIB

#define IO_ERROR_MHAJACKLIB 12

6.130.1.6

MAX_USER_ERR

#define MAX_USER_ERR 0x500

6.130.2

Variable Documentation

6.130.2.1

last_jack_err_msg

char last_jack_err_msg[ MAX_USER_ERR]

6.131

mhamain.cpp File Reference

Classes
• class mhaserver_t
MHA Framework listening on TCP port for commands.

Macros
• #define MAX_LINE_LENGTH 0x100000
• #define HELP_TEXT
• #define GREETING_TEXT

Functions
• void create_lock (unsigned int p, std::string s)
• void remove_lock (unsigned int p)
• int mhamain (int argc, char ∗argv[ ])
© 2005-2018 HörTech gGmbH, Oldenburg

6.131

mhamain.cpp File Reference

6.131.1

Macro Definition Documentation

6.131.1.1

MAX_LINE_LENGTH

#define MAX_LINE_LENGTH 0x100000

6.131.1.2

HELP_TEXT

#define HELP_TEXT

6.131.1.3

GREETING_TEXT

#define GREETING_TEXT

6.131.2

6.131.2.1

Function Documentation

create_lock()

void create_lock (
unsigned int p,
std::string s )

6.131.2.2

remove_lock()

void remove_lock (
unsigned int p )

6.131.2.3

mhamain()

int mhamain (
int argc,
char ∗ argv[ ] )
© 2005-2018 HörTech gGmbH, Oldenburg

1315

1316

6.132

mhapluginloader.cpp File Reference

6.133

mhapluginloader.h File Reference

CONTENTS

Classes
• class PluginLoader::config_file_splitter_t
• class PluginLoader::fourway_processor_t
This abstract class defines the interface for classes that implement all types of signal domain
processing supported by the MHA: wave2wave, spec2spec, wave2spec, and spec2wave.

• class PluginLoader::mhapluginloader_t
• class MHAParser::mhapluginloader_t
Class to create a plugin loader in a parser, including the load logic.

Namespaces
• PluginLoader
• MHAParser
Name space for the openMHA-Parser configuration language.

Functions
• const char ∗ PluginLoader::mhastrdomain ( mha_domain_t)
• void
PluginLoader::mhaconfig_compare (const
mhaconfig_t &req,
mhaconfig_t &avail, const std::string &pref="")

const

Compare two mhaconfig_t ( p. 595) structures, and report differences as an error.

6.134

mhasndfile.cpp File Reference

Functions
• void write_wave (const mha_wave_t &sig, const char ∗fname, const float &srate, const
int &format)
• unsigned int validator_channels (std::vector< int > channel_map, unsigned int channels)
• unsigned int validator_length (unsigned int maxlen, unsigned int frames, unsigned int
startpos)

6.134.1

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

6.135

mhasndfile.h File Reference

6.134.1.1

1317

write_wave()

void write_wave (
const

mha_wave_t & sig,

const char ∗ fname,
const float & srate,
const int & format )

6.134.1.2

validator_channels()

unsigned int validator_channels (
std::vector< int > channel_map,
unsigned int channels )

6.134.1.3

validator_length()

unsigned int validator_length (
unsigned int maxlen,
unsigned int frames,
unsigned int startpos )

6.135

mhasndfile.h File Reference

Classes
• class MHASndFile::sf_t
• class MHASndFile::sf_wave_t

Namespaces
• MHASndFile

Functions
• void
write_wave (const
mha_wave_t &sig, const char ∗fname, const float
&srate=44100, const int &format=SF_FORMAT_WAV|SF_FORMAT_FLOAT|SF_EN←DIAN_FILE)

6.135.1

Function Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

1318

6.135.1.1

CONTENTS

write_wave()

void write_wave (
const

mha_wave_t & sig,

const char ∗ fname,
const float & srate = 44100,
const int & format = SF_FORMAT_WAV|SF_FORMAT_FLOAT|SF_ENDIAN_FILE )

6.136

multibandcompressor.cpp File Reference

Classes
• class multibandcompressor::plugin_signals_t
• class multibandcompressor::fftfb_plug_t
• class multibandcompressor::interface_t

Namespaces
• multibandcompressor

6.137

nlms_wave.cpp File Reference

Classes
• class rt_nlms_t
• class nlms_t

Macros
•
•
•
•
•
•
•

#define
#define
#define
#define
#define
#define
#define

NORMALIZATION_TYPES "[none default sum]"
NORM_NONE 0
NORM_DEFAULT 1
NORM_SUM 2
ESTIMATION_TYPES "[previous current]"
ESTIM_PREV 0
ESTIM_CUR 1

Functions
• void make_friendly_number_by_limiting ( mha_real_t &x)
© 2005-2018 HörTech gGmbH, Oldenburg

6.137

nlms_wave.cpp File Reference

6.137.1

Macro Definition Documentation

6.137.1.1

NORMALIZATION_TYPES

#define NORMALIZATION_TYPES "[none default sum]"

6.137.1.2

NORM_NONE

#define NORM_NONE 0

6.137.1.3

NORM_DEFAULT

#define NORM_DEFAULT 1

6.137.1.4

NORM_SUM

#define NORM_SUM 2

6.137.1.5

ESTIMATION_TYPES

#define ESTIMATION_TYPES "[previous current]"

6.137.1.6

ESTIM_PREV

#define ESTIM_PREV 0

6.137.1.7

ESTIM_CUR

#define ESTIM_CUR 1

© 2005-2018 HörTech gGmbH, Oldenburg

1319

1320

6.137.2

CONTENTS

Function Documentation

6.137.2.1

make_friendly_number_by_limiting()

void make_friendly_number_by_limiting (
mha_real_t & x ) [inline]

6.138

noise.cpp File Reference

Classes
• class cfg_t
• class noise_t

6.139

noisePowProposedScale.cpp File Reference

Classes
• class noisePowProposedScale::noisePowProposed
• class noisePowProposedScale::interface_t

Namespaces
• noisePowProposedScale

Macros
• #define POWSPEC_FACTOR 0.0025

6.139.1

6.139.1.1

Macro Definition Documentation

POWSPEC_FACTOR

#define POWSPEC_FACTOR 0.0025

© 2005-2018 HörTech gGmbH, Oldenburg

6.140

overlapadd.cpp File Reference

6.140

overlapadd.cpp File Reference

1321

Classes
• class overlapadd::overlapadd_t
• class overlapadd::overlapadd_if_t

Namespaces
• overlapadd

6.141

pluginbrowser.cpp File Reference

6.142

pluginbrowser.h File Reference

Classes
• class plugindescription_t
• class pluginloader_t
• class pluginbrowser_t

6.143

prediction_error.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this, & prediction_←error::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)

Functions
• void make_friendly_number_by_limiting ( mha_real_t &x)

6.143.1

6.143.1.1

Macro Definition Documentation

PATCH_VAR

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, & prediction_error←::update_cfg)

© 2005-2018 HörTech gGmbH, Oldenburg

1322

6.143.1.2

CONTENTS

INSERT_PATCH

#define INSERT_PATCH(
var )

6.143.2

insert_member(var);

PATCH_VAR(var)

Function Documentation

6.143.2.1

make_friendly_number_by_limiting()

void make_friendly_number_by_limiting (
mha_real_t & x ) [inline]

6.144

prediction_error.h File Reference

Classes
• class prediction_error_config
• class prediction_error

6.145

resampling.cpp File Reference

Classes
• class MHAPlugin_Resampling::resampling_t
• class MHAPlugin_Resampling::resampling_if_t

Namespaces
• MHAPlugin_Resampling

6.146

rmslevel.cpp File Reference

Classes
• class mon_t
• class rmslevel_t
• class rmslevel_if_t
© 2005-2018 HörTech gGmbH, Oldenburg

6.147

route.cpp File Reference

6.147

route.cpp File Reference

Classes
• class route::process_t
• class route::interface_t

Namespaces
• route

6.148

save_spec.cpp File Reference

Classes
• class save_spec_t

6.149

save_wave.cpp File Reference

Classes
• class save_wave_t

6.150

shadowfilter_begin.cpp File Reference

Classes
• class shadowfilter_begin::cfg_t
• class shadowfilter_begin::shadowfilter_begin_t

Namespaces
• shadowfilter_begin

6.151

shadowfilter_end.cpp File Reference

Classes
• class shadowfilter_end::cfg_t
• class shadowfilter_end::shadowfilter_end_t
© 2005-2018 HörTech gGmbH, Oldenburg

1323

1324

CONTENTS

Namespaces
• shadowfilter_end

6.152

sine.cpp File Reference

Classes
• struct sine_cfg_t
• class sine_t

6.153

smoothgains_bridge.cpp File Reference

Classes
• class smoothgains_bridge::smoothspec_wrap_t
• class smoothgains_bridge::overlapadd_if_t

Namespaces
• smoothgains_bridge

6.154

softclip.cpp File Reference

Classes
• class cfg_t
• class softclip_t

6.155

spec2wave.cpp File Reference

Classes
• class hanning_ramps_t
• class spec2wave_t
• class spec2wave_if_t

Functions
• unsigned int max (unsigned int a, unsigned int b)
• unsigned int min (unsigned int a, unsigned int b)
© 2005-2018 HörTech gGmbH, Oldenburg

6.156

speechnoise.cpp File Reference

6.155.1

Function Documentation

6.155.1.1

max()

unsigned int max (
unsigned int a,
unsigned int b ) [inline]

6.155.1.2

min()

unsigned int min (
unsigned int a,
unsigned int b ) [inline]

6.156

speechnoise.cpp File Reference

Macros
• #define NUM_ENTR_MHAORIG 76
• #define NUM_ENTR_LTASS 25
• #define NUM_ENTR_OLNOISE 49

Functions
• float fhz2bandno (float x)
• float erb_hz_f_hz (float f_hz)
• float hz2hz (float x)
Dummy scale transformation Hz to Hz.

• float bandw_correction (float f, float ldb)
© 2005-2018 HörTech gGmbH, Oldenburg

1325

1326

CONTENTS

Variables
• float vMHAOrigSpec [ NUM_ENTR_MHAORIG] = {-1.473, 0, -4.939, -10.14, -13.94, 14.83, -14.27, -15.66, -16.16, -18.22, -20.5, -21.23, -22.13, -22.58, -23.98, -26.58, -26.4,
-25.15, -23.89, -25.54, -27, -30.15, -31.68, -30.14, -27.55, -25.79, -25.89, -26.11, -27.←48, -30.37, -33.13, -36.23, -36.64, -36.35, -35.03, -35.48, -36.35, -37.95, -40.53, -42.37,
-41.29, -38.49, -36.32, -34.85, -34.05, -33.81, -33.48, -34.1, -35.19, -36.29, -36.94, -37.←53, -38.71, -38.7, -38.92, -40.36, -41.26, -42.19, -43.65, -44.37, -43.95, -43.15, -42.57,
-41.57, -41.86, -42.34, -42.87, -42.35, -42.71, -42.85, -43.47, -47.43, -67.54, -76.3, -77.←43, -77.43}
• float vMHAOrigFreq [ NUM_ENTR_MHAORIG] = {172.266,344.532,516.797,689.←063,861.329,1033.59,1205.86,1378.13,1550.39,1722.66,1894.92,2067.19,2239.←46,2411.72,2583.99,2756.25,2928.52,3100.78,3273.05,3445.32,3617.58,3789.85,3962.←11,4134.38,4306.64,4478.91,4651.18,4823.44,4995.71,5167.97,5340.24,5512.51,5684.←77,5857.04,6029.3,6201.57,6373.83,6546.1,6718.37,6890.63,7062.9,7235.16,7407.←43,7579.69,7751.96,7924.23,8096.49,8268.76,8441.02,8613.29,8785.56,8957.82,9130.←09,9302.35,9474.62,9646.88,9819.15,9991.42,10163.7,10335.9,10508.2,10680.←5,10852.7,11025,11197.3,11369.5,11541.8,11714.1,11886.3,12058.6,12230.9,12403.←1,12575.4,12747.7,12919.9,13092.2}
• float vLTASS_freq [ NUM_ENTR_LTASS] = {63, 80, 100, 125, 160, 200, 250, 315, 400,
500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000, 6300, 8000, 10000,
12500, 16000}
• float vLTASS_combined_lev [ NUM_ENTR_LTASS] = {38.6, 43.5, 54.4, 57.7, 56.8,
60.2, 60.3, 59.0, 62.1, 62.1, 60.5, 56.8, 53.7, 53.0, 52.0, 48.7, 48.1, 46.8, 45.6, 44.5,
44.3, 43.7, 43.4, 41.3, 40.7}
• float vLTASS_female_lev [ NUM_ENTR_LTASS] = {37.0,36.0,37.5,40.1,53.4,62.←2,60.9,58.1,61.7,61.7,60.4,58,54.3,52.3,51.7,48.8,47.3,46.7,45.3,44.6,45.2,44.9,45.←0,42.8,41.1}
• float vLTASS_male_lev [ NUM_ENTR_LTASS] = {38.6,43.5,54.4,57.7,56.8,58.2,59.←7,60.0,62.4,62.6,60.6,55.7,53.1,53.7,52.3,48.7,48.9,47.0,46.0,44.4,43.3,42.4,41.9,39.←8,40.4}
• float vOlnoiseFreq [ NUM_ENTR_OLNOISE] = {62.5,70.1539,78.7451,88.3884,99.←2126,111.362,125,140.308,157.49,176.777,198.425,222.725,250,280.616,314.98,353.←553,396.85,445.449,500,561.231,629.961,707.107,793.701,890.899,1000,1122.←46,1259.92,1414.21,1587.4,1781.8,2000,2244.92,2519.84,2828.43,3174.8,3563.←59,4000,4489.85,5039.68,5656.85,6349.6,7127.19,8000,8979.7,10079.4,11313.←7,12699.2,14254.4,16000}
• float vOlnoiseLev [ NUM_ENTR_OLNOISE] = {45.9042,38.044,48.9444,61.3697,67.←6953,69.7451,71.6201,71.2431,65.2754,63.2547,70.2264,72.1434,73.4433,73.2659,69.←8424,71.0132,70.9577,70.3492,68.691,64.8436,64.0435,64.2879,60.5889,60.6596,60.←3727,61.2003,61.8477,61.1478,61.2312,58.6584,57.2892,56.8299,56.0191,53.3018,56.←0525,54.3592,50.8823,55.992,54.6768,47.2616,46.9914,45.209,50.413,47.5848,43.←3215,43.754,38.5773,-0.39427,5.74224}

6.156.1

Macro Definition Documentation

© 2005-2018 HörTech gGmbH, Oldenburg

6.156

6.156.1.1

speechnoise.cpp File Reference

1327

NUM_ENTR_MHAORIG

#define NUM_ENTR_MHAORIG 76

6.156.1.2

NUM_ENTR_LTASS

#define NUM_ENTR_LTASS 25

6.156.1.3

NUM_ENTR_OLNOISE

#define NUM_ENTR_OLNOISE 49

6.156.2

6.156.2.1

Function Documentation

fhz2bandno()

float fhz2bandno (
float x )

6.156.2.2

erb_hz_f_hz()

float erb_hz_f_hz (
float f_hz )

6.156.2.3

hz2hz()

float hz2hz (
float x )

Dummy scale transformation Hz to Hz.
This function implements a dummy scale transformation (linear frequency scale).

© 2005-2018 HörTech gGmbH, Oldenburg

1328

CONTENTS

Parameters
x

Input frequency in Hz

Returns
Frequency in Hz

6.156.2.4

bandw_correction()

float bandw_correction (
float f,
float ldb )

6.156.3

6.156.3.1

Variable Documentation

vMHAOrigSpec

float vMHAOrigSpec[ NUM_ENTR_MHAORIG] = {-1.473, 0, -4.939, -10.14, -13.94, -14.←83, -14.27, -15.66, -16.16, -18.22, -20.5, -21.23, -22.13, -22.58, -23.98, -26.58,
-26.4, -25.15, -23.89, -25.54, -27, -30.15, -31.68, -30.14, -27.55, -25.79, -25.←89, -26.11, -27.48, -30.37, -33.13, -36.23, -36.64, -36.35, -35.03, -35.48, -36.←35, -37.95, -40.53, -42.37, -41.29, -38.49, -36.32, -34.85, -34.05, -33.81, -33.48,
-34.1, -35.19, -36.29, -36.94, -37.53, -38.71, -38.7, -38.92, -40.36, -41.26, -42.←19, -43.65, -44.37, -43.95, -43.15, -42.57, -41.57, -41.86, -42.34, -42.87, -42.35,
-42.71, -42.85, -43.47, -47.43, -67.54, -76.3, -77.43, -77.43}

6.156.3.2

vMHAOrigFreq

float vMHAOrigFreq[ NUM_ENTR_MHAORIG] = {172.266,344.532,516.797,689.063,861.329,1033.←59,1205.86,1378.13,1550.39,1722.66,1894.92,2067.19,2239.46,2411.72,2583.99,2756.←25,2928.52,3100.78,3273.05,3445.32,3617.58,3789.85,3962.11,4134.38,4306.64,4478.←91,4651.18,4823.44,4995.71,5167.97,5340.24,5512.51,5684.77,5857.04,6029.3,6201.←57,6373.83,6546.1,6718.37,6890.63,7062.9,7235.16,7407.43,7579.69,7751.96,7924.←23,8096.49,8268.76,8441.02,8613.29,8785.56,8957.82,9130.09,9302.35,9474.62,9646.←88,9819.15,9991.42,10163.7,10335.9,10508.2,10680.5,10852.7,11025,11197.3,11369.←5,11541.8,11714.1,11886.3,12058.6,12230.9,12403.1,12575.4,12747.7,12919.9,13092.2}

© 2005-2018 HörTech gGmbH, Oldenburg

6.156

6.156.3.3

speechnoise.cpp File Reference

1329

vLTASS_freq

float vLTASS_freq[ NUM_ENTR_LTASS] = {63, 80, 100, 125, 160, 200, 250, 315, 400,
500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000, 6300, 8000, 10000,
12500, 16000}

6.156.3.4

vLTASS_combined_lev

float vLTASS_combined_lev[ NUM_ENTR_LTASS] = {38.6, 43.5, 54.4, 57.7, 56.8, 60.2,
60.3, 59.0, 62.1, 62.1, 60.5, 56.8, 53.7, 53.0, 52.0, 48.7, 48.1, 46.8, 45.6, 44.←5, 44.3, 43.7, 43.4, 41.3, 40.7}

6.156.3.5

vLTASS_female_lev

float vLTASS_female_lev[ NUM_ENTR_LTASS] = {37.0,36.0,37.5,40.1,53.4,62.2,60.9,58.←1,61.7,61.7,60.4,58,54.3,52.3,51.7,48.8,47.3,46.7,45.3,44.6,45.2,44.9,45.0,42.←8,41.1}

6.156.3.6

vLTASS_male_lev

float vLTASS_male_lev[ NUM_ENTR_LTASS] = {38.6,43.5,54.4,57.7,56.8,58.2,59.7,60.←0,62.4,62.6,60.6,55.7,53.1,53.7,52.3,48.7,48.9,47.0,46.0,44.4,43.3,42.4,41.9,39.←8,40.4}

6.156.3.7

vOlnoiseFreq

float vOlnoiseFreq[ NUM_ENTR_OLNOISE] = {62.5,70.1539,78.7451,88.3884,99.2126,111.←362,125,140.308,157.49,176.777,198.425,222.725,250,280.616,314.98,353.553,396.←85,445.449,500,561.231,629.961,707.107,793.701,890.899,1000,1122.46,1259.92,1414.←21,1587.4,1781.8,2000,2244.92,2519.84,2828.43,3174.8,3563.59,4000,4489.85,5039.←68,5656.85,6349.6,7127.19,8000,8979.7,10079.4,11313.7,12699.2,14254.4,16000}

6.156.3.8

vOlnoiseLev

float vOlnoiseLev[ NUM_ENTR_OLNOISE] = {45.9042,38.044,48.9444,61.3697,67.6953,69.←7451,71.6201,71.2431,65.2754,63.2547,70.2264,72.1434,73.4433,73.2659,69.8424,71.←0132,70.9577,70.3492,68.691,64.8436,64.0435,64.2879,60.5889,60.6596,60.3727,61.←2003,61.8477,61.1478,61.2312,58.6584,57.2892,56.8299,56.0191,53.3018,56.0525,54.←3592,50.8823,55.992,54.6768,47.2616,46.9914,45.209,50.413,47.5848,43.3215,43.754,38.←5773,-0.39427,5.74224}

© 2005-2018 HörTech gGmbH, Oldenburg

1330

6.157

CONTENTS

speechnoise.h File Reference

Classes
• class speechnoise_t

6.158

split.cpp File Reference

Classes
• class MHAPlugin_Split::uni_processor_t
An interface to a class that sports a process method with no parameters and no return value.

• class MHAPlugin_Split::thread_platform_t
Basic interface for encapsulating thread creation, thread priority setting, and synchronization
on any threading platform (i.e., pthreads or win32threads).

• class MHAPlugin_Split::dummy_threads_t
Dummy specification of a thread platform: This class implements everything in a single thread.

• class MHAPlugin_Split::posix_threads_t
Posix threads specification of thread platform.

• class MHAPlugin_Split::domain_handler_t
Handles domain-specific partial input and output signal.

• class MHAPlugin_Split::splitted_part_t
The splitted_part_t ( p. 914) instance manages the plugin that performs processing on the
reduced set of channels.

• class MHAPlugin_Split::split_t
Implements split plugin.

Namespaces
• MHAPlugin_Split

Macros
• #define MHAPLUGIN_OVERLOAD_OUTDOMAIN
This define modifies the definition of MHAPLUGIN_CALLBACKS and friends.

• #define posixthreads 1
• #define default_thread_platform_string "posix"
• #define default_thread_platform_type posix_threads_t

Enumerations
• enum { MHAPlugin_Split::INVALID_THREAD_PRIORITY = 999999999 }
Invalid thread priority.
© 2005-2018 HörTech gGmbH, Oldenburg

6.159

steerbf.cpp File Reference

6.158.1

Detailed Description

1331

Source code for the split plugin. The split plugin splits the audio signal by channel. The splitted
paths execute in parallel.

6.158.2

Macro Definition Documentation

6.158.2.1

MHAPLUGIN_OVERLOAD_OUTDOMAIN

#define MHAPLUGIN_OVERLOAD_OUTDOMAIN

This define modifies the definition of MHAPLUGIN_CALLBACKS and friends.
The output signal is transferred through a second parameter to the process method, enabling
all four domain transformations in a single plugin.
6.158.2.2

posixthreads

#define posixthreads 1

6.158.2.3

default_thread_platform_string

#define default_thread_platform_string "posix"

6.158.2.4

default_thread_platform_type

#define default_thread_platform_type posix_threads_t

6.159

steerbf.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this, & steerbf←::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)
© 2005-2018 HörTech gGmbH, Oldenburg

1332

6.159.1

CONTENTS

Macro Definition Documentation

6.159.1.1

PATCH_VAR

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, & steerbf::update_cfg)

6.159.1.2

INSERT_PATCH

#define INSERT_PATCH(
var )

6.160

insert_member(var);

PATCH_VAR(var)

steerbf.h File Reference

Classes
• class parser_int_dyn
• class steerbf_config
• class steerbf

6.161

testalsadevice.c File Reference

Functions
• int main (int argc, char ∗∗argv)

6.161.1

6.161.1.1

Function Documentation

main()

int main (
int argc,
char ∗∗ argv )
© 2005-2018 HörTech gGmbH, Oldenburg

6.162

timoconfig.cpp File Reference

6.162

timoconfig.cpp File Reference

Macros
•
•
•
•
•

#define
#define
#define
#define
#define

6.162.1

6.162.1.1

LPSCALE (5.2429e+007)
POWSPEC_FACTOR 0.0025
OVERLAP_FACTOR 2
EPSILON (1e-10)
CHANLOOP for ( unsigned int c=0; c rmslevelmeter
• typedef MHAPlugin::plugin_t< calibrator_runtime_layer_t > rtcalibrator

Functions
• speechnoise_t::noise_type_t kw_index2type (unsigned int idx)
• std::vector< int > vint_0123n1 (unsigned int n)

6.166.1

Typedef Documentation

6.166.1.1

rmslevelmeter

typedef

MHAPlugin::config_t< MHASignal::async_rmslevel_t>

6.166.1.2

rtcalibrator

typedef

MHAPlugin::plugin_t< calibrator_runtime_layer_t>

© 2005-2018 HörTech gGmbH, Oldenburg

rmslevelmeter

rtcalibrator

1336

6.166.2

CONTENTS

Function Documentation

6.166.2.1

kw_index2type()

speechnoise_t::noise_type_t kw_index2type (
unsigned int idx )

6.166.2.2

vint_0123n1()

std::vector vint_0123n1 (
unsigned int n )

6.167

upsample.cpp File Reference

Classes
• class us_t

6.168

wave2spec.cpp File Reference

Classes
• class wave2spec_t
• class wave2spec_if_t

Macros
• #define MHAPLUGIN_OVERLOAD_OUTDOMAIN

6.168.1

6.168.1.1

Macro Definition Documentation

MHAPLUGIN_OVERLOAD_OUTDOMAIN

#define MHAPLUGIN_OVERLOAD_OUTDOMAIN

© 2005-2018 HörTech gGmbH, Oldenburg

6.169

wavrec.cpp File Reference

6.169

wavrec.cpp File Reference

1337

Classes
• class wavwriter_t
• class wavrec_t

Macros
• #define DEBUG(x) std::cerr << __FILE__ << ":" << __LINE__ << " " << #x << "="
<< x << std::endl

6.169.1

Macro Definition Documentation

6.169.1.1

DEBUG

#define DEBUG(
x ) std::cerr << __FILE__ << ":" << __LINE__ << " " << #x << "=" <<
x << std::endl

6.170

windowselector.cpp File Reference

6.171

windowselector.h File Reference

Classes
• class windowselector_t
A combination of mha parser variables to describe an overalapadd analysis window.

© 2005-2018 HörTech gGmbH, Oldenburg

Index
__MHA_FUN__
mha_defs.h, 1232
__attribute__
mha_plugin.hh, 1261
__declspec
example5.cpp, 1209
example6.cpp, 1209
mha_defs.h, 1232
mha_plugin.hh, 1260
_cf
DynComp::dc_afterburn_t, 344
_channels
DynComp::dc_afterburn_t, 344
_conjugate
Complex arithmetics in the openMHA, 77
_linphase_asym
MHAFilter::smoothspec_t, 679
_reciprocal
Complex arithmetics in the openMHA, 78
_srate
DynComp::dc_afterburn_t, 344
_steerbf
steerbf_config, 1152
∼Async_Notify
MHA_TCP::Async_Notify, 549
∼Connection
MHA_TCP::Connection, 554
∼Delay
ADM::Delay, 200
∼Event_Watcher
MHA_TCP::Event_Watcher, 562
∼Linearphase_FIR
ADM::Linearphase_FIR, 203
∼MHA_Error
MHA_Error, 523
∼Server
MHA_TCP::Server, 566
∼Thread
MHA_TCP::Thread, 574
∼Timeout_Watcher
MHA_TCP::Timeout_Watcher, 578
∼Wakeup_Event
MHA_TCP::Wakeup_Event, 580
∼acConcat_wave
acConcat_wave, 152
∼acConcat_wave_config
acConcat_wave_config, 154
∼acPooling_wave

acPooling_wave, 165
∼acPooling_wave_config
acPooling_wave_config, 170
∼acSteer
acSteer, 184
∼acSteer_config
acSteer_config, 187
∼acTransform_wave
acTransform_wave, 189
∼acTransform_wave_config
acTransform_wave_config, 193
∼acmon_t
acmon::acmon_t, 160
∼acspace2matrix_t
MHA_AC::acspace2matrix_t, 484
∼adm_rtconfig_t
adm_rtconfig_t, 210
∼algo_comm_class_t
MHAKernel::algo_comm_class_t, 725
∼analysepath_t
analysepath_t, 227
∼analysispath_if_t
analysispath_if_t, 231
∼bark2hz_t
MHAOvlFilter::barkscale::bark2hz_t, 738
∼base_t
MHAParser::base_t, 767
∼bbcalib_interface_t
bbcalib_interface_t, 244
∼blockprocessing_polyphase_resampling_t
MHAFilter::blockprocessing_polyphase←_resampling_t, 615
∼c_ifc_parser_t
MHAParser::c_ifc_parser_t, 784
∼cfg_chain_t
MHAPlugin::cfg_chain_t, 876
∼cfg_t
acsave::cfg_t, 177
∼config_t
MHAPlugin::config_t, 879
∼connector_base_t
MHAEvents::connector_base_t, 598
∼connector_t
MHAEvents::connector_t, 601
∼db_if_t
db_if_t, 277
∼delay_spec_t
MHASignal::delay_spec_t, 931

1340

∼delay_t
MHASignal::delay_t, 933
∼delay_wave_t
MHASignal::delay_wave_t, 935
∼doasvm_classification
doasvm_classification, 320
∼doasvm_classification_config
doasvm_classification_config, 323
∼doasvm_feature_extraction
doasvm_feature_extraction, 326
∼doasvm_feature_extraction_config
doasvm_feature_extraction_config, 329
∼domain_handler_t
MHAPlugin_Split::domain_handler_t, 895
∼double_t
MHA_AC::double_t, 488
∼doublebuffer_t
MHASignal::doublebuffer_t, 938
∼dynamiclib_t
dynamiclib_t, 338
∼emitter_t
MHAEvents::emitter_t, 604
∼fft_t
MHASignal::fft_t, 941
∼fftfb_t
MHAOvlFilter::fftfb_t, 742
∼fftfilter_t
MHAFilter::fftfilter_t, 623
∼fftfilterbank_t
MHAFilter::fftfilterbank_t, 629
∼filter_t
MHAFilter::filter_t, 635
∼float_t
MHA_AC::float_t, 489
∼fourway_processor_t
PluginLoader::fourway_processor_t, 1074
∼fw_t
fw_t, 390
∼gaintable_t
DynComp::gaintable_t, 348
∼gamma_flt_t
MHAFilter::gamma_flt_t, 639
∼hanning_ramps_t
hanning_ramps_t, 403
∼hilbert_shifter_t
hilbert_shifter_t, 405
∼hilbert_t
MHASignal::hilbert_t, 948
∼hz2bark_t
MHAOvlFilter::barkscale::hz2bark_t, 739
∼int_t

INDEX
MHA_AC::int_t, 491
∼io_file_t
io_file_t, 413
∼io_lib_t
io_lib_t, 420
∼io_parser_t
io_parser_t, 424
∼io_portaudio_t
MHAIOPortAudio::io_portaudio_t, 697
∼io_tcp_fwcb_t
io_tcp_fwcb_t, 429
∼io_tcp_parser_t
io_tcp_parser_t, 435
∼io_tcp_sound_t
io_tcp_sound_t, 442
∼io_tcp_t
io_tcp_t, 448
∼linear_table_t
MHATableLookup::linear_table_t, 1010
∼lpc
lpc, 455
∼lpc_bl_predictor
lpc_bl_predictor, 458
∼lpc_bl_predictor_config
lpc_bl_predictor_config, 461
∼lpc_burglattice
lpc_burglattice, 465
∼lpc_burglattice_config
lpc_burglattice_config, 468
∼lpc_config
lpc_config, 471
∼matrix_t
MHASignal::matrix_t, 959
∼mha_dblbuf_t
mha_dblbuf_t, 506
∼mha_fifo_lw_t
mha_fifo_lw_t, 525
∼mha_fifo_posix_threads_t
mha_fifo_posix_threads_t, 529
∼mha_fifo_t
mha_fifo_t, 533
∼mha_fifo_thread_guard_t
mha_fifo_thread_guard_t, 537
∼mha_fifo_thread_platform_t
mha_fifo_thread_platform_t, 539
∼mha_rt_fifo_element_t
mha_rt_fifo_element_t, 542
∼mha_rt_fifo_t
mha_rt_fifo_t, 544
∼mhaplug_cfg_t
mhaplug_cfg_t, 876
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX

∼mhapluginloader_t
MHAParser::mhapluginloader_t, 827
PluginLoader::mhapluginloader_t, 1079
∼mhaserver_t
mhaserver_t, 925
∼overlapadd_if_t
overlapadd::overlapadd_if_t, 1054
smoothgains_bridge::overlapadd_if_←t, 1127
∼overlapadd_t
overlapadd::overlapadd_t, 1058
∼parser_t
MHAParser::parser_t, 835
∼partitioned_convolution_t
MHAFilter::partitioned_convolution_t, 663
∼patchbay_t
MHAEvents::patchbay_t, 606
∼plug_t
plug_t, 1063
∼plugin_t
MHAPlugin::plugin_t, 884
∼pluginloader_t
pluginloader_t, 1086
∼plugs_t
mhachain::plugs_t, 591
∼port_t
MHAJack::port_t, 721
∼posix_threads_t
MHAPlugin_Split::posix_threads_t, 904
∼prediction_error
prediction_error, 1088
∼prediction_error_config
prediction_error_config, 1092
∼rt_nlms_t
rt_nlms_t, 1107
∼save_var_t
acsave::save_var_t, 180
∼sf_t
MHASndFile::sf_t, 1007
∼sine_t
sine_t, 1124
∼smoothspec_t
MHAFilter::smoothspec_t, 677
∼spec2wave_t
spec2wave_t, 1141
∼spec_fader_t
spec_fader_t, 1144
∼spectrum_t
MHA_AC::spectrum_t, 493
MHASignal::spectrum_t, 981
∼split_t
© 2005-2018 HörTech gGmbH, Oldenburg

1341
MHAPlugin_Split::split_t, 909
∼splitted_part_t
MHAPlugin_Split::splitted_part_t, 916
∼steerbf
steerbf, 1148
∼steerbf_config
steerbf_config, 1151
∼table_t
MHATableLookup::table_t, 1014
∼thread_platform_t
MHAPlugin_Split::thread_platform_t, 921
∼timoConfig
timoConfig, 1161
∼timoSmooth
timoSmooth, 1169
∼uint_vector_t
MHASignal::uint_vector_t, 991
∼uni_processor_t
MHAPlugin_Split::uni_processor_t, 923
∼wave2spec_t
wave2spec_t, 1179
∼waveform_t
MHA_AC::waveform_t, 497
MHASignal::waveform_t, 996
∼wavwriter_t
wavwriter_t, 1185
∼windowselector_t
windowselector_t, 1189
A
lpc_config, 473
MHAFilter::filter_t, 637
MHAFilter::gamma_flt_t, 641
MHAFilter::iir_filter_t, 647
a
MHAParser::base_t::replace_t, 777
A_
MHAFilter::complex_bandpass_t, 620
MHAFilter::iir_ord1_real_t, 651
AC variable, 4
AC_DIM_MISMATCH
mha_algo_comm.cpp, 1229
AC_INVALID_HANDLE
mha_algo_comm.cpp, 1228
AC_INVALID_NAME
mha_algo_comm.cpp, 1228
AC_INVALID_OUTPTR
mha_algo_comm.cpp, 1228
AC_STRING_TRUNCATED
mha_algo_comm.cpp, 1228
AC_SUCCESS
mha_algo_comm.cpp, 1228

1342
AC_TYPE_MISMATCH
mha_algo_comm.cpp, 1229
ACSAVE_FMT_MAT4
acsave.cpp, 1195
ACSAVE_FMT_TXT
acsave.cpp, 1194
ACSAVE_FMT_M
acsave.cpp, 1195
ACSAVE_SFMT_MAT4
acsave.cpp, 1195
ACSAVE_SFMT_TXT
acsave.cpp, 1194
ACSAVE_SFMT_M
acsave.cpp, 1195
ADM::ADM< F >, 194
ADM::ADM
ADM, 195
beta, 196
m_beta, 197
m_decomb, 197
m_delay_back, 197
m_delay_front, 197
m_lp_bf, 197
m_lp_result, 197
m_mu_beta, 198
m_powerfilter_coeff, 198
m_powerfilter_norm, 198
m_powerfilter_state, 198
process, 196
ADM::Delay
∼Delay, 200
Delay, 199
m_coeff, 200
m_fullsamples, 200
m_norm, 201
m_now_in, 201
m_state, 201
process, 200
ADM::Delay< F >, 198
ADM::Linearphase_FIR< F >, 201
ADM::Linearphase_FIR
∼Linearphase_FIR, 203
Linearphase_FIR, 202
m_alphas, 203
m_now, 204
m_order, 203
m_output, 203
process, 203
ADM, 88
ADM::ADM, 195
C, 89

INDEX
DELAY_FREQ, 89
PI, 89
START_BETA, 90
subsampledelay_coeff, 89
ALGO_COMM_ID_STR
mha_algo_comm.hh, 1231
ASSERT_EQUAL_DIM_PTR
mha_signal.cpp, 1268
ASSERT_EQUAL_DIM
mha_signal.cpp, 1268
ASYNC_CONNECT_STARTED
mha_tcp.cpp, 1281
abandonned
mha_rt_fifo_element_t, 542
abs
Complex arithmetics in the openMHA, 75
abs2
Complex arithmetics in the openMHA, 75
ac
ac2wave_t, 149
acConcat_wave_config, 155
acPooling_wave_config, 170
acTransform_wave_config, 193
acmon::acmon_t, 162
acsave::cfg_t, 178
acsave::save_var_t, 182
doasvm_classification_config, 324
fw_t, 395
latex_doc_t, 453
lpc_bl_predictor_config, 462
lpc_burglattice_config, 469
MHA_AC::ac2matrix_helper_t, 479
MHA_AC::double_t, 488
MHA_AC::float_t, 490
MHA_AC::int_t, 491
MHA_AC::spectrum_t, 494
MHA_AC::waveform_t, 498
MHAKernel::algo_comm_class_t, 728
MHAMultiSrc::base_t, 731
MHAPlugin::plugin_t, 886
mhachain::plugs_t, 592
PluginLoader::mhapluginloader_t, 1082
prediction_error_config, 1093
rt_nlms_t, 1108
shadowfilter_end::cfg_t, 1119
steerbf_config, 1152
timoConfig, 1162
ac2matrix_helper_t
MHA_AC::ac2matrix_helper_t, 479
ac2matrix_t
MHA_AC::ac2matrix_t, 482
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
ac2wave.cpp, 1192
ac2wave_if_t, 145
ac2wave_if_t, 146
delay_ac, 147
delay_in, 147
gain_ac, 147
gain_in, 147
name, 147
patchbay, 148
prepare, 146
prepared, 147
process, 146
release, 146
update, 146
zeros, 147
ac2wave_t, 148
ac, 149
ac2wave_t, 148
channels, 149
delay_ac, 150
delay_in, 150
frames, 149
gain_ac, 150
gain_in, 150
name, 150
process, 149
w, 149
ac_
combc_t, 270
MHAParser::mhapluginloader_t, 830
ac_fifo
analysepath_t, 228
ac_monitor_t
acmon::ac_monitor_t, 157
ac_monitor_type.cpp, 1192
ac_monitor_type.hh, 1192
acConcat_wave, 151
∼acConcat_wave, 152
acConcat_wave, 152
name_conAC, 153
num_AC, 153
patchbay, 154
prefix_names_AC, 153
prepare, 152
process, 152
release, 153
samples_AC, 153
update_cfg, 153
acConcat_wave.cpp, 1192
INSERT_PATCH, 1192
PATCH_VAR, 1192
© 2005-2018 HörTech gGmbH, Oldenburg

1343
acConcat_wave.h, 1193
acConcat_wave_config, 154
∼acConcat_wave_config, 154
ac, 155
acConcat_wave_config, 154
numSamples_AC, 155
process, 155
strNames_AC, 155
vGCC_con, 155
vGCC, 155
acPooling_wave, 164
∼acPooling_wave, 165
acPooling_wave, 165
alpha, 168
like_ratio_name, 168
lower_threshold, 168
max_pool_ind_name, 168
neighbourhood, 168
numsamples, 167
p_name, 168
patchbay, 168
pool_name, 168
pooling_type, 167
pooling_wndlen, 167
prepare, 166
process, 165
release, 167
update_cfg, 167
upper_threshold, 167
acPooling_wave.cpp, 1193
INSERT_PATCH, 1193
PATCH_VAR, 1193
acPooling_wave.h, 1194
acPooling_wave_config, 169
∼acPooling_wave_config, 170
ac, 170
acPooling_wave_config, 169
alpha, 172
c, 171
insert, 170
like_ratio, 171
low_thresh, 171
neigh, 172
p, 170
p_max, 171
pool, 172
pooling_ind, 171
pooling_option, 171
pooling_size, 171
process, 170
raw_p_name, 170

1344
up_thresh, 171
acSteer, 183
∼acSteer, 184
acSteer, 184
acSteerName1, 185
acSteerName2, 185
nrefmic, 186
nsteerchan, 185
patchbay, 186
prepare, 184
process, 184
release, 185
steerFile, 185
update_cfg, 185
acSteer.cpp, 1195
INSERT_PATCH, 1195
PATCH_VAR, 1195
acSteer.h, 1196
acSteer_config, 186
∼acSteer_config, 187
acSteer_config, 186
insert, 187
nangle, 188
nchan, 187
nfreq, 187
nrefmic, 187
nsteerchan, 187
specSteer1, 188
specSteer2, 188
acSteerName1
acSteer, 185
acSteerName2
acSteer, 185
acTransform_wave, 188
∼acTransform_wave, 189
acTransform_wave, 189
ang_name, 191
numsamples, 191
patchbay, 192
prepare, 190
process, 190
raw_p_max_name, 191
raw_p_name, 191
release, 190
rotated_p_max_name, 191
rotated_p_name, 191
to_from, 191
update_cfg, 190
acTransform_wave.cpp, 1196
INSERT_PATCH, 1196
PATCH_VAR, 1196

INDEX
acTransform_wave.h, 1196
acTransform_wave_config, 192
∼acTransform_wave_config, 193
ac, 193
acTransform_wave_config, 192
ang_name, 193
offset, 194
process, 193
raw_p_max_name, 193
raw_p_name, 193
resolution, 194
rotated_i, 194
rotated_p, 194
to_from, 194
accept
MHA_TCP::Server, 567
accept_event
MHA_TCP::Server, 568
accept_loop
io_tcp_t, 449
acceptor_started
mhaserver_t, 926
ack_fail
mhaserver_t, 927
ack_ok
mhaserver_t, 927
acmon, 88
acmon.cpp, 1193
acmon::ac_monitor_t, 156
ac_monitor_t, 157
dimstr, 158
getvar, 157
mon, 158
mon_complex, 158
mon_mat, 158
mon_mat_complex, 158
name, 158
p_parser, 159
use_mat, 159
acmon::acmon_t, 159
∼acmon_t, 160
ac, 162
acmon_t, 160
algo, 163
b_cont, 163
b_snapshot, 163
chain, 163
dimensions, 162
dispmode, 162
patchbay, 162
prepare, 161
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
process, 161
recmode, 162
release, 161
save_vars, 161
update_recmode, 161
varlist, 162
vars, 162
acmon_t
acmon::acmon_t, 160
acsave, 88
acsave.cpp, 1194
ACSAVE_FMT_MAT4, 1195
ACSAVE_FMT_TXT, 1194
ACSAVE_FMT_M, 1195
ACSAVE_SFMT_MAT4, 1195
ACSAVE_SFMT_TXT, 1194
ACSAVE_SFMT_M, 1195
acsave::acsave_t, 172
acsave_t, 174
algo, 176
b_flushed, 176
b_prepared, 176
bflush, 175
chain, 176
event_start_recording, 174
event_stop_and_flush, 175
fileformat, 175
fname, 175
patchbay, 176
prepare, 174
process, 174, 175
reclen, 175
release, 174
variables, 175
varlist, 176
varlist_t, 173
acsave::cfg_t, 177
∼cfg_t, 177
ac, 178
cfg_t, 177
flush_data, 177
max_frames, 178
nvars, 178
rec_frames, 178
store_frame, 177
varlist, 178
acsave::mat4head_t, 179
cols, 179
imag, 179
namelen, 179
rows, 179
© 2005-2018 HörTech gGmbH, Oldenburg

1345
t, 179
acsave::save_var_t, 180
∼save_var_t, 180
ac, 182
b_complex, 182
data, 181
framecnt, 182
maxframe, 182
name, 181
ndim, 182
nframes, 181
save_m, 181
save_mat4, 181
save_txt, 181
save_var_t, 180
store_frame, 181
acsave_t
acsave::acsave_t, 174
acspace2matrix_t
MHA_AC::acspace2matrix_t, 484
acspace_template
analysispath_if_t, 233
act_
wavwriter_t, 1186
actgains
fader_if_t, 373
activate_query
MHAParser::base_t, 773
acvar
MHA_AC::ac2matrix_helper_t, 480
adapt_filter_param_t
MHAFilter::adapt_filter_param_t, 608
adapt_filter_state_t
MHAFilter::adapt_filter_state_t, 609
adapt_filter_t
MHAFilter::adapt_filter_t, 612
add_entry
MHAParser::keyword_list_t, 808
MHATableLookup::linear_table_t, 1011
MHATableLookup::xy_table_t, 1018
add_fun
MHAOvlFilter::scale_var_t, 762
add_parent_on_insert
MHAParser::base_t, 773
add_plug
altplugs_t, 223
add_plugin
pluginbrowser_t, 1067
add_plugins
pluginbrowser_t, 1067
add_replace_pair

1346
MHAParser::base_t, 774
added_via_plugs
altplugs_t, 225
adm
adm_rtconfig_t, 211
adm.cpp, 1197
adm_fir_decomb, 1197
adm_fir_lp, 1197
adm.hh, 1197
adm_fir_decomb
adm.cpp, 1197
adm_fir_lp
adm.cpp, 1197
adm_if_t, 204
adm_if_t, 205
beta, 207
bypass, 207
coeff_decomb, 208
coeff_lp, 208
decomb_order, 207
distances, 207
front_channels, 207
input_channels, 208
is_prepared, 206
lp_order, 207
mu_beta, 207
out, 206
patchbay, 208
prepare, 206
process, 206
rear_channels, 207
release, 206
srate, 208
tau_beta, 208
update, 206
adm_rtconfig_t, 209
∼adm_rtconfig_t, 210
adm, 211
adm_rtconfig_t, 210
adm_t, 209
adms, 212
check_index, 211
decomb_coeffs, 212
front_channel, 211
front_channels, 212
lp_coeffs, 212
num_adms, 211
rear_channel, 211
rear_channels, 212
adm_t
adm_rtconfig_t, 209

INDEX
adms
adm_rtconfig_t, 212
algo
acmon::acmon_t, 163
acsave::acsave_t, 176
analysispath_if_t, 233
coherence::cohflt_if_t, 259
db_if_t, 278
dc::dc_if_t, 282
fftfilterbank::fftfb_interface_t, 381
MHAPlugin_Resampling::resampling_if←_t, 890
multibandcompressor::interface_t, 1038
nlms_t, 1043
overlapadd::overlapadd_if_t, 1057
route::interface_t, 1104
smoothgains_bridge::overlapadd_if_←t, 1129
wave2spec_if_t, 1178
algo_comm_class_t
MHAKernel::algo_comm_class_t, 725
algo_comm_default
mha_algo_comm.cpp, 1229
mha_algo_comm.hh, 1231
algo_comm_id_string
MHAKernel::algo_comm_class_t, 728
algo_comm_id_string_len
MHAKernel::algo_comm_class_t, 728
algo_comm_safe_cast
MHAKernel, 111
algo_comm_t, 213
get_entries, 218
get_error, 218
get_var, 216
get_var_float, 217
get_var_int, 217
handle, 213
insert_var, 214
insert_var_float, 215
insert_var_int, 214
is_var, 216
mha.h, 1226
remove_ref, 215
remove_var, 215
algo_name
lpc, 456
algos
MHAPlugin_Split::split_t, 911
mhachain::chain_base_t, 587
mhachain::plugs_t, 592
all_dump
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHAParser, 123
all_ids
MHAParser, 123
alloc_plugs
mhachain::plugs_t, 592
almost
Complex arithmetics in the openMHA, 78
alpha
acPooling_wave, 168
acPooling_wave_config, 172
cfg_t, 255
coherence::cohflt_t, 262
coherence::vars_t, 265
alpha_const
timoConfig, 1163
alpha_const_limits_hz
timo_params, 1159
timoSmooth, 1172
alpha_const_vals
timo_params, 1159
timoSmooth, 1171
alpha_frame
timoConfig, 1165
alpha_frame_AC
timo_AC, 1155
alpha_hat
timoConfig, 1165
alpha_hat_AC
timo_AC, 1155
alpha_pitch
timo_params, 1158
timoSmooth, 1171
alpha_prev
timoConfig, 1164
alphaPH1mean
noisePowProposedScale::interface_←t, 1048
alphaPH1mean_
noisePowProposedScale::noisePow←Proposed, 1052
alphaPSD_
noisePowProposedScale::noisePow←Proposed, 1052
alphaPSD
noisePowProposedScale::interface_←t, 1049
altplugs.cpp, 1198
MHAPLUGIN_OVERLOAD_OUTDOM←AIN, 1198
altplugs_t, 219
add_plug, 223
© 2005-2018 HörTech gGmbH, Oldenburg

1347
added_via_plugs, 225
altplugs_t, 220
cfin, 225
cfout, 225
current, 224
delete_plug, 223
event_add_plug, 222
event_delete_plug, 222
event_select_plug, 222
event_set_plugs, 222
fallback_spec, 225
fallback_wave, 224
nondefault_labels, 224
parse, 222
parser_plugs, 223
patchbay, 224
plugs, 224
prepare, 221
prepared, 225
proc_ramp, 223
process, 221
ramp_counter, 225
ramp_len, 225
ramplen, 224
release, 221
select_plug, 224
selected_plug, 224
update_ramplen, 223
update_selector_list, 223
use_own_ac, 223
amplitude
sine_cfg_t, 1123
analysemhaplugin.cpp, 1198
main, 1199
print_ac, 1199
strdom, 1199
analysepath_t, 226
∼analysepath_t, 227
ac_fifo, 228
analysepath_t, 226
attr, 229
cond_to_process, 230
flag_terminate_inner_thread, 229
has_inner_error, 229
inner_ac_copy, 228
inner_error, 229
inner_input, 228
inner_out_domain, 228
inner_process_wave2spec, 227
inner_process_wave2wave, 227
input_to_process, 229

1348
libdata, 228
outer_ac, 228
outer_ac_copy, 228
priority, 229
ProcessMutex, 229
rt_process, 227
scheduler, 229
svc, 227
thread, 230
wave_fifo, 228
analysispath.cpp, 1199
thread_start, 1199
analysispath_if_t, 230
∼analysispath_if_t, 231
acspace_template, 233
algo, 233
analysispath_if_t, 231
chain, 233
fifolen, 233
fragsize, 233
libname, 232
loadlib, 232
patchbay, 232
plug, 233
prepare, 232
priority, 233
process, 232
release, 232
vars, 233
analytic
hilbert_shifter_t, 406
ang_name
acTransform_wave, 191
acTransform_wave_config, 193
angle
Complex arithmetics in the openMHA, 72
angle_ind
steerbf, 1150
angle_src
steerbf, 1150
angles
doasvm_classification, 321
announce_port
mhaserver_t, 927
antialias
ds_t, 337
us_t, 1175
apply_gains
MHAOvlFilter::fftfb_t, 742
multibandcompressor::plugin_signals_t,
1039

INDEX
aquire_mutex
mha_fifo_posix_threads_t, 529
mha_fifo_thread_platform_t, 539
arg
MHA_TCP::Thread, 574
assign
MHASignal::waveform_t, 1001
Vector and matrix processing toolbox, 53
assign_channel
MHASignal::waveform_t, 1002
assign_frame
MHASignal::waveform_t, 1001
Async_Notify
MHA_TCP::Async_Notify, 549
async_poll_msg
fw_t, 393
async_read
fw_t, 393
async_rmslevel_t
MHASignal::async_rmslevel_t, 929
attack
cfg_t, 256
dc::dc_t, 285
dc_simple::level_smoother_t, 310
softclip_t, 1133
softclipper_t, 1135
attr
analysepath_t, 229
MHAPlugin_Split::posix_threads_t, 905
auditory_profile.cpp, 1200
auditory_profile.h, 1200
AuditoryProfile, 90
AuditoryProfile::fmap_t, 234
get_frequencies, 234
get_values, 234
isempty, 234
AuditoryProfile::parser_t, 235
get_current_profile, 236
L, 236
parser_t, 236
R, 236
AuditoryProfile::parser_t::ear_t, 237
ear_t, 237
get_ear, 237
HTL, 238
UCL, 238
AuditoryProfile::parser_t::fmap_t, 238
f, 240
fmap_t, 239
get_fmap, 239
name_, 240
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
patchbay, 240
validate, 239
value, 240
AuditoryProfile::profile_t, 240
get_ear, 241
L, 241
R, 241
AuditoryProfile::profile_t::ear_t, 242
convert_empty2normal, 242
HTL, 242
UCL, 243
average
coherence::vars_t, 266
avg_ipd
coherence::cohflt_t, 262
azimuth
mha_direction_t, 512
B
MHAFilter::filter_t, 637
MHAFilter::iir_filter_t, 647
b
doasvm_classification, 322
MHAParser::base_t::replace_t, 777
B_
MHAFilter::complex_bandpass_t, 620
MHAFilter::iir_ord1_real_t, 651
b_check_version
PluginLoader::mhapluginloader_t, 1085
b_complex
acsave::save_var_t, 182
b_cont
acmon::acmon_t, 163
b_est
lpc_bl_predictor_config, 462
b_exit_request
fw_t, 396
b_flushed
acsave::acsave_t, 176
b_fw_started
io_parser_t, 427
b_is_input
calibrator_runtime_layer_t, 247
calibrator_t, 250
b_is_prepared
PluginLoader::mhapluginloader_t, 1085
b_loop
MHASignal::loop_wavefragment_t, 954
b_ltg
coherence::cohflt_t, 264
b_prepared
acsave::acsave_t, 176
© 2005-2018 HörTech gGmbH, Oldenburg

1349
io_file_t, 417
io_parser_t, 428
MHAJack::client_t, 719
mhachain::chain_base_t, 588
mhachain::plugs_t, 592
b_ready
MHAJack::client_avg_t, 705
b_snapshot
acmon::acmon_t, 163
b_starting
io_parser_t, 428
b_stopped
io_parser_t, 428
MHAJack::client_avg_t, 704
MHAJack::client_noncont_t, 708
b_use_clipping
calibrator_runtime_layer_t, 247
b_use_fir
calibrator_runtime_layer_t, 247
b_use_profiling
mhachain::plugs_t, 594
BARKSCALE_ENTRIES
mha_fftfb.cpp, 1240
bInvert
coherence::cohflt_t, 263
backward
lpc_bl_predictor_config, 462
lpc_burglattice_config, 469
MHASignal::fft_t, 942
backward_scale
MHASignal::fft_t, 943
band_weights
dc::dc_vars_t, 291
bands
dc::wideband_inhib_vars_t, 296
MHAOvlFilter::fspacing_t, 755
bandw_correction
speechnoise.cpp, 1328
bark2hz_t
MHAOvlFilter::barkscale::bark2hz_t, 737
bartlett
MHAWindow, 142
bartlett_t
MHAWindow::bartlett_t, 1021
base_t
MHAMultiSrc::base_t, 730
MHAParser::base_t, 767
MHAWindow::base_t, 1022, 1023
basename
save_spec_t, 1112
save_wave_t, 1114

1350
shadowfilter_begin::shadowfilter_begin←_t, 1117
shadowfilter_end::shadowfilter_end_←t, 1122
bbcalib_interface_t, 243
∼bbcalib_interface_t, 244
bbcalib_interface_t, 244
calib_in, 245
calib_out, 245
plugloader, 245
prepare, 244
process, 244
release, 244
bbgain
gain::gain_if_t, 401
beta
ADM::ADM, 196
adm_if_t, 207
beta_const
timo_params, 1159
timoSmooth, 1171
bf_src
steerbf, 1150
bf_src_copy
steerbf_config, 1152
bf_vec
steerbf_config, 1152
bflush
acsave::acsave_t, 175
bin1
MHAOvlFilter::fftfb_t, 743
bin2
MHAOvlFilter::fftfb_t, 743
bin2freq
Vector and matrix processing toolbox, 47
blackman
MHAWindow, 142
blackman_t
MHAWindow::blackman_t, 1025
blockprocessing_polyphase_resampling_t
MHAFilter::blockprocessing_polyphase←_resampling_t, 614
blocks
droptect_t, 334
bookkeeping
MHAFilter::partitioned_convolution_t, 665
MHAParser::mhapluginloader_t, 830
bool_mon_t
MHAParser::bool_mon_t, 779
bool_t
MHAParser::bool_t, 781

INDEX
bprofiling
mhachain::chain_base_t, 587
bracket_balance
MHAParser::StrCnv, 126
browsemhaplugins.cpp, 1200
DEBUG, 1200
main, 1201
buf
mha_fifo_t, 536
mha_spec_t, 548
mha_wave_t, 584
buf_c_in
MHASignal::hilbert_fftw_t, 946
buf_c_out
MHASignal::hilbert_fftw_t, 947
buf_in
MHASignal::fft_t, 944
buf_out
MHASignal::fft_t, 944
buf_r_in
MHASignal::hilbert_fftw_t, 946
buf_r_out
MHASignal::hilbert_fftw_t, 946
buf_uses_placement_new
mha_fifo_t, 536
buffer
MHASignal::delay_spec_t, 931
MHASignal::delay_t, 934
MHASignal::delay_wave_t, 936
buffered_incoming_bytes
MHA_TCP::Connection, 559
buffered_outgoing_bytes
MHA_TCP::Connection, 559
burn
DynComp::dc_afterburn_rt_t, 340
DynComp::dc_afterburn_t, 343
multibandcompressor::interface_t, 1037
butter_stop_ord1
MHAFilter, 105
bw
MHAOvlFilter::fscale_bw_t, 750
bw_
MHAFilter::gamma_flt_t, 642
bw_generator
MHAFilter::thirdoctave_analyzer_t, 681
bw_hz
MHAOvlFilter::fscale_bw_t, 750
bw_name
dc::dc_vars_t, 289
bwv
MHAOvlFilter::fftfb_ac_info_t, 740
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
multibandcompressor::fftfb_plug_t, 1035
bypass
adm_if_t, 207
db_if_t, 278
dc::dc_t, 286
dc::dc_vars_t, 290
dc_simple::dc_vars_t, 308
DynComp::dc_afterburn_vars_t, 347
C
ADM, 89
c
acPooling_wave_config, 171
doasvm_classification_config, 324
io_tcp_sound_t::float_union, 446
nlms_t, 1042
prediction_error, 1089
c1_a
MHAFilter::o1_ar_filter_t, 654
c1_r
MHAFilter::o1_ar_filter_t, 654
c2_a
MHAFilter::o1_ar_filter_t, 654
c2_r
MHAFilter::o1_ar_filter_t, 655
c_ifc_parser_t
MHAParser::c_ifc_parser_t, 784
c_min
coherence::cohflt_t, 262
c_parse_cmd
MHAParser::c_ifc_parser_t, 785
c_parse_cmd_t
MHAParser, 122
c_parse_err
MHAParser::c_ifc_parser_t, 785
c_parse_err_t
MHAParser, 122
c_scale
coherence::cohflt_t, 262
CHANLOOP
timoconfig.cpp, 1333
CHECK_EXPR
mha_defs.h, 1232
CHECK_VAR
mha_defs.h, 1232
cLTASS
MHAOvlFilter::fftfb_ac_info_t, 740
MHAOvlFilter::fftfb_vars_t, 748
calc_in
wave2spec_t, 1181
calc_out
overlapadd::overlapadd_t, 1059
© 2005-2018 HörTech gGmbH, Oldenburg

1351
spec2wave_t, 1142
calc_pre_wnd
wave2spec_t, 1180
calib_in
bbcalib_interface_t, 245
calib_out
bbcalib_interface_t, 245
calibrator_runtime_layer_t, 245
b_is_input, 247
b_use_clipping, 247
b_use_fir, 247
calibrator_runtime_layer_t, 246
fir, 247
firfir2fftlen, 246
firfirlen, 246
gain, 247
pmode, 248
process, 246
quant, 247
softclip, 247
speechnoise, 247
calibrator_t, 248
b_is_input, 250
calibrator_t, 249
patchbay, 250
prepare, 249
prepared, 250
process, 249
read_levels, 250
release, 249
update, 250
update_tau_level, 250
vars, 250
calibrator_variables_t, 251
calibrator_variables_t, 251
config_parser, 253
do_clipping, 253
fir, 252
fragsize, 253
nbits, 252
num_channels, 253
peaklevel, 252
rmslevel, 252
softclip, 253
spnoise_channels, 252
spnoise_level, 252
spnoise_mode, 252
spnoise_parser, 253
srate, 253
tau_level, 252
can_read

1352
MHAFilter::blockprocessing_polyphase←_resampling_t, 616
can_read_bytes
MHA_TCP::Connection, 557
can_read_line
MHA_TCP::Connection, 557
can_sysread
MHA_TCP::Connection, 555
can_syswrite
MHA_TCP::Connection, 555
can_update
fader_wave::level_adapt_t, 377
catch_condition
MHAPlugin_Split::posix_threads_t, 905
catch_thread
MHAPlugin_Split::dummy_threads_t, 901
MHAPlugin_Split::posix_threads_t, 904
MHAPlugin_Split::thread_platform_t, 921
categories
plugindescription_t, 1069
cdata
MHASignal::matrix_t, 966
mha_audio_t, 501
center_frequencies
dc::dc_vars_t, 291
dc_simple::dc_if_t, 300
cf
MHAFilter::thirdoctave_analyzer_t, 681
MHAOvlFilter::band_descriptor_t, 736
MHAOvlFilter::fftfb_vars_t, 747
mha_audio_descriptor_t, 499
cf2bands
MHAOvlFilter::fspacing_t, 755
cf_
MHAFilter::gamma_flt_t, 642
wavwriter_t, 1186
cf_generator
MHAFilter::thirdoctave_analyzer_t, 681
cf_h
MHAOvlFilter::band_descriptor_t, 736
cf_in
overlapadd::overlapadd_if_t, 1057
smoothgains_bridge::overlapadd_if_←t, 1129
cf_in_
MHAParser::mhapluginloader_t, 830
cf_input
PluginLoader::mhapluginloader_t, 1084
cf_l
MHAOvlFilter::band_descriptor_t, 736
cf_name

INDEX
dc::dc_vars_t, 289
cf_out
overlapadd::overlapadd_if_t, 1057
smoothgains_bridge::overlapadd_if_←t, 1129
cf_out_
MHAParser::mhapluginloader_t, 830
cf_output
PluginLoader::mhapluginloader_t, 1084
cfac
route::interface_t, 1103
cfg
MHAPlugin::config_t, 881
cfg_
MHAFilter::thirdoctave_analyzer_t, 681
cfg_chain
MHAPlugin::config_t, 881
cfg_chain_current
MHAPlugin::config_t, 882
cfg_chain_t
MHAPlugin::cfg_chain_t, 876
cfg_dump
MHAParser, 122
cfg_dump_short
MHAParser, 122
cfg_t, 254
acsave::cfg_t, 177
alpha, 255
attack, 256
cfg_t, 254, 255
channel, 256
decay, 256
frozen_noise_, 256
gain_spec_, 256
gain_wave_, 256
matrixmixer::cfg_t, 474
pos, 257
process, 255
replace_, 256
shadowfilter_begin::cfg_t, 1115
shadowfilter_end::cfg_t, 1118
start_lin, 255
use_frozen_, 256
cfin
altplugs_t, 225
fw_t, 396
mhachain::chain_base_t, 588
route::interface_t, 1103
cfout
altplugs_t, 225
fw_t, 396
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
mhachain::chain_base_t, 588
route::interface_t, 1103
cfv
MHAOvlFilter::fftfb_ac_info_t, 740
multibandcompressor::fftfb_plug_t, 1034
cg
coherence::cohflt_t, 262
ch
MHASignal::doublebuffer_t, 940
chain
acmon::acmon_t, 163
acsave::acsave_t, 176
analysispath_if_t, 233
db_if_t, 278
MHAPlugin_Resampling::resampling_if←_t, 890
mhachain::chain_base_t, 588
mhachain::plugs_t, 593
chain_base_t
mhachain::chain_base_t, 586
chains
MHAPlugin_Split::split_t, 913
channel
cfg_t, 256
example5_t, 367
MHAMultiSrc::channel_t, 731
channel_gain_name
combc_if_t, 269
channel_gains_
combc_t, 271
channel_info
mha_spec_t, 548
mha_wave_t, 584
channel_no
example6_t, 369
channelconfig_out_
MHAOvlFilter::overlap_save_filterbank_t,
759
channels
ac2wave_t, 149
dc::wideband_inhib_vars_t, 296
MHAFilter::fftfilter_t, 626
MHAFilter::filter_t, 637
MHAParser::mhaconfig_mon_t, 825
MHAPlugin_Split::split_t, 912
MHASignal::delay_t, 934
mhaconfig_t, 596
prediction_error_config, 1093
rt_nlms_t, 1108
sine_cfg_t, 1123
sine_t, 1125
© 2005-2018 HörTech gGmbH, Oldenburg

1353
Vector and matrix processing toolbox, 44
channels_t
MHAMultiSrc::channels_t, 732
chdir
mha_audio_descriptor_t, 500
check_index
adm_rtconfig_t, 211
check_low
MHAParser::range_var_t, 844
check_range
MHAParser::range_var_t, 844
check_sound_data_type
io_tcp_sound_t, 442
check_up
MHAParser::range_var_t, 844
chname
dc::dc_vars_t, 290
chunkbytes_in
io_tcp_sound_t, 443
ci
matrixmixer::matmix_t, 478
cleanup_plugs
mhachain::plugs_t, 592
cleanup_unused_cfg
MHAPlugin::config_t, 881
clear
MHATableLookup::linear_table_t, 1012
MHATableLookup::table_t, 1015
MHATableLookup::xy_table_t, 1018
mha_fifo_t, 535
Vector and matrix processing toolbox, 52,
53
clear_chains
MHAPlugin_Split::split_t, 910
clear_plugins
pluginbrowser_t, 1067
Client
MHA_TCP::Client, 551
client_avg_t
MHAJack::client_avg_t, 702
client_noncont_t
MHAJack::client_noncont_t, 707
client_t
MHAJack::client_t, 711
clientid
dc::dc_vars_t, 290
dc_simple::dc_if_t, 300
clientname
MHAIOJack::io_jack_t, 690
clipmeter
softclipper_t, 1135

1354
clipped
softclipper_variables_t, 1138
close_session
wavwriter_t, 1186
closed
MHA_TCP::Connection, 560
closesocket
mha_tcp.cpp, 1281
cmd_prepare
MHAIOPortAudio::io_portaudio_t, 698
cmd_release
MHAIOPortAudio::io_portaudio_t, 698
cmd_start
MHAIOPortAudio::io_portaudio_t, 698
cmd_stop
MHAIOPortAudio::io_portaudio_t, 698
co
matrixmixer::matmix_t, 478
coeff_decomb
adm_if_t, 208
coeff_lp
adm_if_t, 208
coh_c
coherence::cohflt_t, 263
coh_rlp
coherence::cohflt_t, 263
coherence, 90
getcipd, 91
coherence.cpp, 1201
coherence::cohflt_if_t, 257
algo, 259
cohflt_if_t, 258
patchbay, 259
prepare, 258
process, 258
release, 258
update, 259
vars, 259
coherence::cohflt_t, 260
alpha, 262
avg_ipd, 262
b_ltg, 264
bInvert, 263
c_min, 262
c_scale, 262
cg, 262
coh_c, 263
coh_rlp, 263
cohflt_t, 261
g, 262
gain, 263

INDEX
gain_delay, 263
insert, 261
limit, 262
lp1i, 263
lp1ltg, 263
lp1r, 262
nbands, 261
process, 261
s_out, 263
staticgain, 264
coherence::vars_t, 264
alpha, 265
average, 266
delay, 266
invert, 266
limit, 265
ltgcomp, 266
ltgtau, 266
mapping, 266
staticgain, 266
tau, 265
tau_unit, 265
vars_t, 265
cohflt_if_t
coherence::cohflt_if_t, 258
cohflt_t
coherence::cohflt_t, 261
collect_result
MHAPlugin_Split::split_t, 911
MHAPlugin_Split::splitted_part_t, 918
colored_intensity
Vector and matrix processing toolbox, 63
cols
acsave::mat4head_t, 179
combc_if_t, 267
channel_gain_name, 269
combc_if_t, 267
element_gain_name, 269
interleaved, 268
outchannels, 268
prepare, 268
process, 268
combc_t, 269
ac_, 270
channel_gains_, 271
combc_t, 269
element_gain_name_, 271
interleaved_, 270
nbands, 270
process, 270
s_out, 271
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
w_out, 271
combinechannels.cpp, 1201
comm_var_t, 271
data, 273
data_type, 272
num_entries, 272
stride, 272
commentate
MHAParser, 122
commit
DynComp::dc_afterburn_vars_t, 347
commit_pending
DynComp::dc_afterburn_t, 344
commit_t
MHAParser::commit_t, 788
Communication between algorithms, 28
get_var_float, 31
get_var_int, 30
get_var_spectrum, 29
get_var_vfloat, 31
get_var_waveform, 30
comp_each_iter
lpc, 457
lpc_config, 472
comp_iter
lpc_config, 473
Complex arithmetics in the openMHA, 68
_conjugate, 77
_reciprocal, 78
abs, 75
abs2, 75
almost, 78
angle, 72
conjugate, 77
expi, 71, 74
mha_complex, 70
normalize, 78
operator!=, 77
operator<, 79
operator∗, 74, 75
operator∗=, 74
operator+, 72, 73
operator+=, 72, 73
operator-, 73, 74, 76
operator-=, 73
operator/, 76
operator/=, 75, 76
operator==, 77
reciprocal, 77
safe_div, 76
set, 70, 71
© 2005-2018 HörTech gGmbH, Oldenburg

1355
stdcomplex, 71
complex_bandpass_t
MHAFilter::complex_bandpass_t, 618
complex_filter.cpp, 1202
complex_filter.h, 1202
complex_mon_t
MHAParser::complex_mon_t, 789
complex_ofs
MHASignal::matrix_t, 966
complex_t
MHAParser::complex_t, 792
compression
dc_simple::dc_t, 303
compute_something
cpuload_t, 275
compute_something_else
cpuload_t, 275
Concept of Variables and Data Exchange in
the openMHA, 4
cond_to_process
analysepath_t, 230
config_file_splitter_t
PluginLoader::config_file_splitter_t, 1071
config_parser
calibrator_variables_t, 253
config_t
MHAPlugin::config_t, 879
configfile
PluginLoader::config_file_splitter_t, 1073
configname
PluginLoader::config_file_splitter_t, 1072
configuration, 4
configuration variable, 4
conflux
DynComp::dc_afterburn_rt_t, 341
DynComp::dc_afterburn_vars_t, 346
conjugate
Complex arithmetics in the openMHA, 77
Vector and matrix processing toolbox, 66
connect
MHAEvents::emitter_t, 604
MHAEvents::patchbay_t, 606, 607
connect_input
MHAJack::client_t, 713
connect_output
MHAJack::client_t, 713
connect_to
MHAJack::port_t, 722
connected
io_tcp_parser_t, 439
Connection

1356

INDEX

lpc_config, 473
MHA_TCP::Connection, 554
cpuload.cpp, 1202
connection_loop
cpuload_t, 273
io_tcp_t, 449
compute_something, 275
connections
compute_something_else, 275
MHAEvents::emitter_t, 605
cpuload_t, 274
connections_in
factor, 275
MHAIOJack::io_jack_t, 691
phase, 275
connections_out
prepare, 275
MHAIOJack::io_jack_t, 691
process, 274
connector
result, 275
MHAFilter::adapt_filter_t, 613
table, 276
MHAFilter::iir_filter_t, 647
use_sine, 275
MHAParser::mhapluginloader_t, 830
create_latex_doc
connector_base_t
generatemhaplugindoc.cpp, 1212
MHAEvents::connector_base_t, 598
create_lock
connector_t
mhamain.cpp, 1315
MHAEvents::connector_t, 600, 601
creator
cons
speechnoise_t, 1147
MHAEvents::patchbay_t, 607
creator_A
consecutive_dropouts
MHAFilter::complex_bandpass_t, 618
droptect_t, 334
creator_B
contained_frames
MHAFilter::complex_bandpass_t, 618
MHASignal::ringbuffer_t, 973
cstr_strerror
conv2latex
mha_errno.c, 1234
generatemhaplugindoc.cpp, 1212
current
convert_empty2normal
altplugs_t, 224
AuditoryProfile::profile_t::ear_t, 242
dc::wideband_inhib_vars_t, 295
convert_f2logf
mha_rt_fifo_t, 546
gaintable.cpp, 1211
current_input_signal_buffer_half_index
copy
MHAFilter::partitioned_convolution_t, 665
MHASignal::spectrum_t, 982
current_output_partition_index
MHASignal::waveform_t, 1002
MHAFilter::partitioned_convolution_t, 666
timo_AC, 1154
current_powspec
copy_AC
droptect_t, 334
timoConfig, 1162
current_thread_priority
copy_channel
MHAPlugin_Split::posix_threads_t, 905
MHASignal::spectrum_t, 983
current_thread_scheduler
MHASignal::waveform_t, 1003
MHAPlugin_Split::posix_threads_t, 905
Vector and matrix processing toolbox, 61,
62
DEBUG
copy_error
browsemhaplugins.cpp, 1200
MHAIOTCP.cpp, 1309
fader_wave.cpp, 1210
copy_from_at
MHAIOFile.cpp, 1287
MHASignal::waveform_t, 1003
wavrec.cpp, 1337
copy_output_spec
DEFAULT_RETSIZE
MHAPlugin_Split::split_t, 910
mha_parser.hh, 1258
copy_output_wave
DELAY_FREQ
MHAPlugin_Split::split_t, 910
ADM, 89
copy_permuted
DUPVEC
MHASignal, 139
dc.cpp, 1203
corr_out
data
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
acsave::save_var_t, 181
comm_var_t, 273
DynComp::gaintable_t, 351
MHA_AC::acspace2matrix_t, 487
MHA_AC::double_t, 488
MHA_AC::float_t, 490
MHA_AC::int_t, 491
MHAParser::bool_mon_t, 780
MHAParser::bool_t, 782
MHAParser::complex_mon_t, 790
MHAParser::complex_t, 792
MHAParser::float_mon_t, 797
MHAParser::float_t, 800
MHAParser::int_mon_t, 802
MHAParser::int_t, 805
MHAParser::kw_t, 813
MHAParser::mcomplex_mon_t, 815
MHAParser::mcomplex_t, 818
MHAParser::mfloat_mon_t, 820
MHAParser::mfloat_t, 823
MHAParser::string_mon_t, 846
MHAParser::string_t, 849
MHAParser::vcomplex_mon_t, 854
MHAParser::vcomplex_t, 857
MHAParser::vfloat_mon_t, 859
MHAParser::vfloat_t, 861
MHAParser::vint_mon_t, 863
MHAParser::vint_t, 866
MHAParser::vstring_mon_t, 868
MHAParser::vstring_t, 871
MHAPlugin::cfg_chain_t, 877
MHASignal::uint_vector_t, 993
mha_rt_fifo_element_t, 543
wavwriter_t, 1187
data_is_initialized
MHAParser::base_t, 775
data_type
comm_var_t, 272
db.cpp, 1202
db2lin
Vector and matrix processing toolbox, 45
db_if_t, 276
∼db_if_t, 277
algo, 278
bypass, 278
chain, 278
db_if_t, 277
fragsize, 278
patchbay, 278
plugloader, 278
prepare, 277
© 2005-2018 HörTech gGmbH, Oldenburg

1357
process, 277
release, 277
db_t, 279
db_t, 279
inner_process, 279
plugloader, 280
dbspl2pa
Vector and matrix processing toolbox, 46
DC
dc_simple, 92
dc, 91
get_audiochannels, 91
dc.cpp, 1202
DUPVEC, 1203
dc::dc_if_t, 280
algo, 282
dc_if_t, 281
patchbay, 282
prepare, 281
process, 281, 282
update, 282
update_monitors, 282
wbinhib, 282
dc::dc_t, 283
attack, 285
bypass, 286
dc_t, 284
decay, 285
explicit_insert, 284
get_level_in_db, 285
get_level_in_db_adjusted, 285
get_nbands, 285
gt, 285
inhib_gain, 286
k_nyquist, 287
level_in_db, 286
level_in_db_adjusted, 286
max_level_difference, 286
naudiochannels, 286
nbands, 286
powersum, 286
process, 284
rmslevel, 285
dc::dc_vars_t, 287
band_weights, 291
bw_name, 289
bypass, 290
center_frequencies, 291
cf_name, 289
chname, 290
clientid, 290

1358
dc_vars_t, 288
edge_frequencies, 291
ef_name, 289
filterbank, 289
filtered_level, 291
gainrule, 290
gtdata, 288
gtmin, 288
gtstep, 289
input_level, 290
max_level_difference, 290
modified, 290
powersum, 288
preset, 290
tauattack, 289
taudecay, 289
taurmslevel, 289
use_wbinhib, 291
dc::dc_vars_validator_t, 292
dc_vars_validator_t, 292
dc::wb_inhib_cfg_t, 292
dl_diff, 293
dl_map_max, 293
dl_map_min, 293
g_scale, 294
l_min, 293
wb_inhib_cfg_t, 293
weights, 293
dc::wideband_inhib_vars_t, 294
bands, 296
channels, 296
current, 295
dl_map_max, 296
dl_map_min, 296
g_scale, 296
l_min, 296
patchbay, 296
setchannels, 295
update, 295
weights, 296
wideband_inhib_vars_t, 295
dc_afterburn.cpp, 1203
mylogf, 1203
dc_afterburn.h, 1204
dc_afterburn_rt_t
DynComp::dc_afterburn_rt_t, 340
dc_afterburn_t
DynComp::dc_afterburn_t, 343
dc_afterburn_vars_t
DynComp::dc_afterburn_vars_t, 346
dc_if_t

INDEX
dc::dc_if_t, 281
dc_simple::dc_if_t, 298
dc_simple, 92
DC, 92
force_resize, 93
LEVEL, 92
not_zero, 93
test_fail, 92
dc_simple.cpp, 1204
dc_simple::dc_if_t, 297
center_frequencies, 300
clientid, 300
dc_if_t, 298
edge_frequencies, 301
filterbank, 300
gainrule, 300
has_been_modified, 299
modified, 300
mon_g, 300
mon_l, 300
patchbay, 301
prepare, 298
prepared, 301
preset, 300
process, 298, 299
read_modified, 299
release, 298
update_dc, 299
update_gain_mon, 299
update_level, 299
update_level_mon, 299
dc_simple::dc_t, 301
compression, 303
dc_t, 302
expansion, 303
expansion_threshold, 303
limiter, 303
limiter_threshold, 303
maxgain, 303
mon_g, 304
mon_l, 304
nbands, 304
process, 302, 303
dc_simple::dc_t::line_t, 304
line_t, 304, 305
m, 305
operator(), 305
y0, 305
dc_simple::dc_vars_t, 306
bypass, 308
dc_vars_t, 306
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
expansion_slope, 307
expansion_threshold, 307
g50, 307
g80, 307
limiter_threshold, 307
maxgain, 307
tauattack, 307
taudecay, 307
dc_simple::dc_vars_validator_t, 308
dc_vars_validator_t, 308
dc_simple::level_smoother_t, 309
attack, 310
decay, 310
fftlen, 311
level_smoother_t, 310
level_spec, 311
level_wave, 311
nbands, 310
process, 310
dc_t
dc::dc_t, 284
dc_simple::dc_t, 302
dc_vars_t
dc::dc_vars_t, 288
dc_simple::dc_vars_t, 306
dc_vars_validator_t
dc::dc_vars_validator_t, 292
dc_simple::dc_vars_validator_t, 308
deallocate_domains
MHAPlugin_Split::domain_handler_t, 896
debug
io_tcp_parser_t, 438
debug_file
io_tcp_parser_t, 440
debug_filename
io_tcp_parser_t, 440
decay
cfg_t, 256
dc::dc_t, 285
dc_simple::level_smoother_t, 310
softclip_t, 1133
softclipper_t, 1135
decomb_coeffs
adm_rtconfig_t, 212
decomb_order
adm_if_t, 207
decrease_condition
mha_fifo_posix_threads_t, 530
decrement
mha_fifo_posix_threads_t, 530
mha_fifo_thread_platform_t, 540
© 2005-2018 HörTech gGmbH, Oldenburg

1359
default_thread_platform_string
split.cpp, 1331
default_thread_platform_type
split.cpp, 1331
defaultHighInputLatency
MHAIOPortAudio::device_info_t, 695
defaultHighOutputLatency
MHAIOPortAudio::device_info_t, 695
defaultLowInputLatency
MHAIOPortAudio::device_info_t, 695
defaultLowOutputLatency
MHAIOPortAudio::device_info_t, 695
defaultSampleRate
MHAIOPortAudio::device_info_t, 696
Delay
ADM::Delay, 199
delay, 93
coherence::vars_t, 266
delaysum::delaysum_if_t, 316
MHAFilter::gamma_flt_t, 642
MHAFilter::partitioned_convolution_t←::index_t, 668
MHAPlugin_Split::split_t, 913
MHASignal::delay_spec_t, 931
MHASignal::delay_wave_t, 936
mha_dblbuf_t, 510
delay.cpp, 1205
delay::interface_t, 311
delays, 313
interface_t, 312
patchbay, 313
prepare, 312
process, 312
update, 313
delay_ac
ac2wave_if_t, 147
ac2wave_t, 150
delay_d
prediction_error, 1090
delay_in
ac2wave_if_t, 147
ac2wave_t, 150
delay_spec_t
MHASignal::delay_spec_t, 931
delay_t
MHASignal::delay_t, 933
delay_w
prediction_error, 1090
delay_wave_t
MHASignal::delay_wave_t, 935
delays

1360
delay::interface_t, 313
MHASignal::delay_t, 934
delays_in
MHAIOJack::io_jack_t, 691
delays_out
MHAIOJack::io_jack_t, 691
delaysum, 93
delaysum.cpp, 1205
delaysum::delaysum_if_t, 313
delay, 316
delaysum_if_t, 315
patchbay, 316
prepare, 315
process, 315
release, 315
update_cfg, 316
weights, 316
delaysum::delaysum_t, 317
delaysum_t, 317
out, 318
process, 318
weights, 318
delaysum_if_t
delaysum::delaysum_if_t, 315
delaysum_t
delaysum::delaysum_t, 317
delete_plug
altplugs_t, 223
delta_pitch
timo_params, 1158
timoSmooth, 1171
descriptor
mha_audio_t, 501
desired_fill_count
mha_drifter_fifo_t, 519
device_index
MHAIOPortAudio::io_portaudio_t, 701
device_index_updated
MHAIOPortAudio::io_portaudio_t, 698
device_info
MHAIOPortAudio::io_portaudio_t, 699
device_info_t
MHAIOPortAudio::device_info_t, 694
device_name
MHAIOPortAudio::io_portaudio_t, 701
device_name_updated
MHAIOPortAudio::io_portaudio_t, 698
df
frequency_translator_t, 386
diff_coeffs
mha_filter.cpp, 1242

INDEX
diff_t
MHAFilter::diff_t, 621
digits
mha_error_helpers, 98
dimension
MHASignal::matrix_t, 960
dimensions
acmon::acmon_t, 162
dimstr
acmon::ac_monitor_t, 158
dir
mha_channel_info_t, 502
dir_t
MHAJack::port_t, 720
dir_type
MHAJack::port_t, 723
discard
MHASignal::ringbuffer_t, 973
disconnect
MHAEvents::emitter_t, 604
dispmode
acmon::acmon_t, 162
distance
mha_direction_t, 513
distances
adm_if_t, 207
dl_diff
dc::wb_inhib_cfg_t, 293
dl_map_max
dc::wb_inhib_cfg_t, 293
dc::wideband_inhib_vars_t, 296
dl_map_min
dc::wb_inhib_cfg_t, 293
dc::wideband_inhib_vars_t, 296
dm
lpc_burglattice_config, 469
do_clipping
calibrator_variables_t, 253
doagcc
doasvm_feature_extraction_config, 329
doasvm
doasvm_classification_config, 324
doasvm_classification, 319
∼doasvm_classification, 320
angles, 321
b, 322
doasvm_classification, 320
max_p_ind_name, 322
p_name, 322
patchbay, 322
prepare, 321
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
process, 320
release, 321
update_cfg, 321
vGCC_name, 322
w, 322
x, 322
y, 322
doasvm_classification.cpp, 1205
INSERT_PATCH, 1205
PATCH_VAR, 1205
doasvm_classification.h, 1206
doasvm_classification_config, 323
∼doasvm_classification_config, 323
ac, 324
c, 324
doasvm, 324
doasvm_classification_config, 323
p, 324
p_max, 324
process, 324
doasvm_feature_extraction, 325
∼doasvm_feature_extraction, 326
doasvm_feature_extraction, 326
fftlen, 327
max_lag, 327
nupsample, 327
patchbay, 328
prepare, 326
process, 326
release, 327
update_cfg, 327
vGCC_name, 327
doasvm_feature_extraction.cpp, 1206
INSERT_PATCH, 1206
PATCH_VAR, 1206
doasvm_feature_extraction.h, 1206
doasvm_feature_extraction_config, 328
∼doasvm_feature_extraction_config, 329
doagcc, 329
doasvm_feature_extraction_config, 329
fft, 330
fftlen, 329
G, 331
G_length, 330
GCC_end, 330
GCC_start, 330
hifftwin, 331
hifftwin_sum, 330
hwin, 331
ifft, 330
in_spec, 331
© 2005-2018 HörTech gGmbH, Oldenburg

1361
proc_wave, 330
process, 329
vGCC_ac, 330
vGCC, 331
wndlen, 329
doc_appendix.h, 1207
doc_examples.h, 1207
doc_frameworks.h, 1207
doc_general.h, 1207
doc_kernel.h, 1207
doc_matlab.h, 1207
doc_mhamain.h, 1207
doc_parser.h, 1207
doc_plugif.cpp, 1207
doc_plugins.h, 1207
doc_system.h, 1207
doc_toolbox.h, 1207
documentation
plugindescription_t, 1069
domain
MHAParser::mhaconfig_mon_t, 825
MHAPlugin_Split::splitted_part_t, 919
mhaconfig_t, 596
domain_handler_t
MHAPlugin_Split::domain_handler_t, 895
double_t
MHA_AC::double_t, 488
doublebuffer_t
MHASignal::doublebuffer_t, 937
downsample.cpp, 1207
downsampling_factor
MHAFilter::polyphase_resampling_t, 672
downscale
MHASignal::quantizer_t, 970
dphi
hilbert_shifter_t, 407
drain
DynComp::dc_afterburn_vars_t, 346
drain_inv
DynComp::dc_afterburn_rt_t, 341
dropouts
droptect_t, 334
droptect.cpp, 1207
droptect_t, 332
blocks, 334
consecutive_dropouts, 334
current_powspec, 334
dropouts, 334
droptect_t, 333
filter_activated, 335
filtered_powspec, 335

1362
filtered_powspec_mon, 335
level_mon, 335
period, 335
prepare, 333
process, 334
release, 333
reset, 334
tau, 335
threshold, 334
ds_t, 336
antialias, 337
ds_t, 336
prepare, 337
process, 337
ratio, 337
release, 337
dt
mha_audio_descriptor_t, 499
dtime
MHA_TCP, 101
dummy_interface_test
MHAIOFile.cpp, 1288, 1290
MHAIOJack.cpp, 1293, 1295
MHAIOParser.cpp, 1297, 1299
MHAIOPortAudio.cpp, 1302, 1304
MHAIOTCP.cpp, 1308, 1310
dummy_jack_proc_cb
mhajack.cpp, 1311
dummy_threads_t
MHAPlugin_Split::dummy_threads_t, 901
dump_mha
fw_t, 395
dup
MHAFilter::thirdoctave_analyzer_t, 681
dupvec
Vector and matrix processing toolbox, 49
dupvec_chk
Vector and matrix processing toolbox, 49
DynComp, 94
interp1, 94
interp2, 95
DynComp::dc_afterburn_rt_t, 340
burn, 340
conflux, 341
dc_afterburn_rt_t, 340
drain_inv, 341
lp, 341
maxgain, 341
mpo_inv, 341
DynComp::dc_afterburn_t, 342
_cf, 344

INDEX
_channels, 344
_srate, 344
burn, 343
commit_pending, 344
dc_afterburn_t, 343
fb_pars_configured, 344
patchbay, 344
set_fb_pars, 343
unset_fb_pars, 343
update, 344
update_burner, 343
DynComp::dc_afterburn_vars_t, 345
bypass, 347
commit, 347
conflux, 346
dc_afterburn_vars_t, 346
drain, 346
f, 346
maxgain, 346
mpo, 346
taugain, 347
DynComp::gaintable_t, 347
∼gaintable_t, 348
data, 351
gaintable_t, 348
get_gain, 349, 350
get_iofun, 350
get_vF, 350
get_vL, 350
nbands, 350
nchannels, 350
num_channels, 351
num_F, 351
num_L, 351
update, 349
vFlog, 351
vF, 351
vL, 351
dynamiclib_t, 338
∼dynamiclib_t, 338
dynamiclib_t, 338
fullname, 339
getmodulename, 339
getname, 339
h, 339
modulename, 339
resolve, 338
resolve_checked, 339
EPSILON
lpc_bl_predictor.h, 1217
lpc_burg-lattice.h, 1218
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
timoconfig.cpp, 1333
EPrew
prediction_error_config, 1096
ERR_IHANDLE
MHAIOFile.cpp, 1287
MHAIOJack.cpp, 1292
MHAIOParser.cpp, 1296
MHAIOPortAudio.cpp, 1301
MHAIOTCP.cpp, 1306
ERR_SUCCESS
MHAIOFile.cpp, 1287
MHAIOJack.cpp, 1291
MHAIOParser.cpp, 1296
MHAIOPortAudio.cpp, 1301
MHAIOTCP.cpp, 1306
ERR_USER
MHAIOFile.cpp, 1287
MHAIOJack.cpp, 1292
MHAIOParser.cpp, 1296
MHAIOPortAudio.cpp, 1301
MHAIOTCP.cpp, 1306
ESTIM_CUR
nlms_wave.cpp, 1319
ESTIM_PREV
nlms_wave.cpp, 1319
ESTIMATION_TYPES
nlms_wave.cpp, 1319
ear_t
AuditoryProfile::parser_t::ear_t, 237
edge_frequencies
dc::dc_vars_t, 291
dc_simple::dc_if_t, 301
ef
MHAOvlFilter::fftfb_vars_t, 748
ef2bands
MHAOvlFilter::fspacing_t, 755
ef_h
MHAOvlFilter::band_descriptor_t, 736
ef_l
MHAOvlFilter::band_descriptor_t, 736
ef_name
dc::dc_vars_t, 289
efv
MHAOvlFilter::fftfb_ac_info_t, 740
multibandcompressor::fftfb_plug_t, 1034
element_gain_name
combc_if_t, 269
element_gain_name_
combc_t, 271
elevation
mha_direction_t, 512
© 2005-2018 HörTech gGmbH, Oldenburg

1363
emit_event
MHAEvents::connector_base_t, 598, 599
MHAEvents::connector_t, 601, 602
emitter
MHAEvents::connector_t, 602
emitter_die
MHAEvents::connector_base_t, 599
emitter_is_alive
MHAEvents::connector_base_t, 599
empty_string
MHAParser::keyword_list_t, 809
end_time
MHA_TCP::Timeout_Event, 577
entries
MHAParser::keyword_list_t, 809
MHAParser::parser_t, 839
entry
MHAParser::entry_t, 793
entry_map_t
MHAParser, 121
entry_t
MHAParser::entry_t, 793
envelope_delay
MHAFilter::gamma_flt_t, 642
envreplace
MHAParser, 124
eof
MHA_TCP::Connection, 557
epsilon
smoothgains_bridge::overlapadd_if_←t, 1128
equal_dim
Vector and matrix processing toolbox, 49,
50
equidist2bands
MHAOvlFilter::fspacing_t, 755
erb_hz_f_hz
speechnoise.cpp, 1327
err_in
MHAFilter::adapt_filter_param_t, 608
MHAFilter::adapt_filter_t, 613
error
MHA_TCP::Thread, 575
mha_fifo_lw_t, 527
Error handling in the openMHA, 32
MHA_ErrorMsg, 32
MHA_assert, 34
MHA_assert_equal, 34
mha_debug, 34
errorlog
fw_t, 394

1364
estimateDebug
noisePowProposedScale::noisePow←Proposed, 1052
estimtype
nlms_t, 1043
event_add_plug
altplugs_t, 222
event_delete_plug
altplugs_t, 222
event_select_plug
altplugs_t, 222
event_set_plugs
altplugs_t, 222
event_start_recording
acsave::acsave_t, 174
event_stop_and_flush
acsave::acsave_t, 175
eventhandler
MHAEvents::connector_t, 602
eventhandler_s
MHAEvents::connector_t, 602
eventhandler_suu
MHAEvents::connector_t, 603
Events
MHA_TCP::Event_Watcher, 562
events
MHA_TCP::Event_Watcher, 563
example1.cpp, 1208
example1_t, 352
example1_t, 353
prepare, 353
process, 354
release, 353
example2.cpp, 1208
example2_t, 354
example2_t, 356
factor, 357
prepare, 356
process, 357
release, 357
scale_ch, 357
example3.cpp, 1208
example3_t, 358
example3_t, 359
factor, 361
on_prereadaccess, 360
on_scale_ch_readaccess, 360
on_scale_ch_valuechanged, 360
on_scale_ch_writeaccess, 360
patchbay, 362
prepare, 360

INDEX
prepared, 361
process, 361
release, 360
scale_ch, 361
example4.cpp, 1208
example4_t, 362
example4_t, 363
factor, 365
on_prereadaccess, 364
on_scale_ch_readaccess, 364
on_scale_ch_valuechanged, 364
on_scale_ch_writeaccess, 364
patchbay, 366
prepare, 364
prepared, 366
process, 365
release, 365
scale_ch, 365
example5.cpp, 1208
__declspec, 1209
example5_t, 366
channel, 367
example5_t, 366
process, 367
scale, 367
example6.cpp, 1209
__declspec, 1209
example6_t, 368
channel_no, 369
example6_t, 369
patchbay, 370
prepare, 369
process, 369
rmsdb, 370
update_cfg, 369
exec_fw_command
fw_t, 392
exit_on_stop
fw_t, 394
exit_request
fw_t, 390
expansion
dc_simple::dc_t, 303
expansion_slope
dc_simple::dc_vars_t, 307
expansion_threshold
dc_simple::dc_t, 303
dc_simple::dc_vars_t, 307
expflt
MHAOvlFilter::ShapeFun, 118
expi
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX

1365

Complex arithmetics in the openMHA, 71,
level_adaptor, 96
74
fader_wave.cpp, 1209
explicit_insert
DEBUG, 1210
dc::dc_t, 284
fader_wave::fader_wave_if_t, 373
export_to
fader_wave_if_t, 374
MHASignal::spectrum_t, 983
gain, 375
MHASignal::waveform_t, 1003
patchbay, 375
expression_t, 370
prepare, 374
MHAParser::expression_t, 794
prepared, 375
extern_connector
process, 374
MHAParser::commit_t, 788
ramplen, 375
release, 375
F
set_level, 375
prediction_error_config, 1093
fader_wave::level_adapt_t, 376
rt_nlms_t, 1108
can_update, 377
f
get_level, 377
AuditoryProfile::parser_t::fmap_t, 240
ilen, 377
DynComp::dc_afterburn_vars_t, 346
l_new, 378
io_tcp_sound_t::float_union, 446
l_old, 378
MHAOvlFilter::fftfb_vars_t, 747
level_adapt_t, 377
MHAOvlFilter::fscale_t, 752
pos, 377
f0_high
update_frame, 377
timo_params, 1158
wnd, 378
timoSmooth, 1170
fader_wave_if_t
f0_low
fader_wave::fader_wave_if_t, 374
timo_params, 1158
fail_on_async_jackerror
timoSmooth, 1170
MHAJack::client_t, 719
F_Uflt
fail_on_nonmonotonic
prediction_error_config, 1095
MHAOvlFilter::fftfb_vars_t, 747
f_est
fail_on_nonmonotonic_cf
lpc_bl_predictor_config, 462
MHAOvlFilter::fspacing_t, 754
f_hz
fail_on_unique_bins
MHAOvlFilter::fscale_t, 752
MHAOvlFilter::fftfb_vars_t, 747
FMTsz
fail_on_unique_fftbins
mha_os.h, 1250
MHAOvlFilter::fspacing_t, 754
factor
fallback_spec
cpuload_t, 275
altplugs_t, 225
example2_t, 357
fallback_wave
example3_t, 361
altplugs_t, 224
example4_t, 365
Fast
Fourier Transform functions, 80
plugin_interface_t, 1066
mha_fft_backward, 85
fader_if_t, 371
mha_fft_backward_scale, 86
actgains, 373
mha_fft_forward, 85
fader_if_t, 372
mha_fft_forward_scale, 86
newgains, 373
mha_fft_free, 81
patchbay, 372
mha_fft_new, 81
prepare, 372
mha_fft_spec2wave, 83, 84
process, 372
mha_fft_spec2wave_scale, 87
tau, 373
mha_fft_t, 81
update_cfg, 372
mha_fft_wave2spec, 82
fader_spec.cpp, 1209
mha_fft_wave2spec_scale, 86
fader_wave, 95
© 2005-2018 HörTech gGmbH, Oldenburg

1366
fatallog
fw_t, 395
fb
MHAFilter::thirdoctave_analyzer_t, 681
fb_acinfo
fftfilterbank::fftfb_plug_t, 383
fb_pars_configured
DynComp::dc_afterburn_t, 344
fd
MHA_TCP::Connection, 560
MHA_TCP::OS_EVENT_TYPE, 564
fft
doasvm_feature_extraction_config, 330
MHAFilter::fftfilter_t, 627
MHAFilter::fftfilterbank_t, 632
MHAFilter::partitioned_convolution_t, 666
MHAFilter::smoothspec_t, 679
overlapadd::overlapadd_t, 1059
fft_t
MHASignal::fft_t, 941
fftfb_ac_info_t
MHAOvlFilter::fftfb_ac_info_t, 739
fftfb_interface_t
fftfilterbank::fftfb_interface_t, 379
fftfb_plug_t
fftfilterbank::fftfb_plug_t, 383
multibandcompressor::fftfb_plug_t, 1034
fftfb_t
MHAOvlFilter::fftfb_t, 742
fftfb_vars_t
MHAOvlFilter::fftfb_vars_t, 746
fftfilter_t
MHAFilter::fftfilter_t, 623
fftfilterbank, 96
fftfilterbank.cpp, 1210
fftfilterbank::fftfb_interface_t, 378
algo, 381
fftfb_interface_t, 379
nbands, 381
nchannels, 381
patchbay, 381
prepare, 379
prepared, 381
process, 380
release, 380
return_imag, 381
update_cfg, 380
fftfilterbank::fftfb_plug_t, 382
fb_acinfo, 383
fftfb_plug_t, 383
imag, 384

INDEX
insert, 383
process, 383
return_imag_, 384
s_out, 384
fftfilterbank_t
MHAFilter::fftfilterbank_t, 628
fftlen
dc_simple::level_smoother_t, 311
doasvm_feature_extraction, 327
doasvm_feature_extraction_config, 329
MHAFilter::fftfilter_t, 626
MHAFilter::fftfilterbank_t, 631
MHAFilter::smoothspec_t, 678
MHAOvlFilter::fftfb_t, 744
MHAOvlFilter::overlap_save_filterbank_←t::vars_t, 760
MHAParser::mhaconfig_mon_t, 825
mhaconfig_t, 596
rmslevel_t, 1100
timoConfig, 1162
fftw_plan_fft
MHASignal::fft_t, 944
fftw_plan_ifft
MHASignal::fft_t, 945
fftw_plan_spec2wave
MHASignal::fft_t, 944
fftw_plan_wave2spec
MHASignal::fft_t, 944
fhz2bandno
speechnoise.cpp, 1327
fifo
wavwriter_t, 1187
fifo_size
mha_dblbuf_t, 510
fifolen
analysispath_if_t, 233
wavrec_t, 1184
fileformat
acsave::acsave_t, 175
filename_input
io_file_t, 416
filename_output
io_file_t, 416
fill_info
MHAIOPortAudio::device_info_t, 694
filled
MHASignal::async_rmslevel_t, 930
filter
MHAFilter::adapt_filter_state_t, 609
MHAFilter::adapt_filter_t, 612
MHAFilter::complex_bandpass_t,
619,
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
620
MHAFilter::fftfilter_t, 624, 625
MHAFilter::fftfilterbank_t, 629, 630
MHAFilter::filter_t, 635, 636
MHAFilter::iir_filter_t, 646
filter_activated
droptect_t, 335
filter_analytic
MHAOvlFilter::overlap_save_filterbank_←analytic_t, 757
filter_partitions
MHAFilter::partitioned_convolution_t, 664
filter_t
MHAFilter::filter_t, 634, 635
filterbank
dc::dc_vars_t, 289
dc_simple::dc_if_t, 300
filtered_level
dc::dc_vars_t, 291
filtered_powspec
droptect_t, 335
filtered_powspec_mon
droptect_t, 335
filtershapefun
mha_fftfb.cpp, 1240
fir
calibrator_runtime_layer_t, 247
calibrator_variables_t, 252
firchannels
MHAFilter::fftfilterbank_t, 631
firfir2fftlen
calibrator_runtime_layer_t, 246
firfirlen
calibrator_runtime_layer_t, 246
flag_terminate_inner_thread
analysepath_t, 229
flags
MHAJack::client_t, 719
float_mon_t
MHAParser::float_mon_t, 796
float_t
MHA_AC::float_t, 489
MHAParser::float_t, 799
flush_data
acsave::cfg_t, 177
fmap_t
AuditoryProfile::parser_t::fmap_t, 239
fmax
frequency_translator_t, 386
fmin
frequency_translator_t, 386
© 2005-2018 HörTech gGmbH, Oldenburg

1367
fname
acsave::acsave_t, 175
for_each
Vector and matrix processing toolbox, 44
force_remove_item
MHAParser::parser_t, 836
force_resize
dc_simple, 93
forward
lpc_bl_predictor_config, 462
lpc_burglattice_config, 469
MHASignal::fft_t, 942
forward_scale
MHASignal::fft_t, 943
fr
spec_fader_t, 1144
frag_out
MHAJack::client_avg_t, 705
MHAJack::client_noncont_t, 709
fragsize
analysispath_if_t, 233
calibrator_variables_t, 253
db_if_t, 278
io_file_t, 414
io_parser_t, 426
io_tcp_sound_t, 444
MHAFilter::fftfilter_t, 625
MHAFilter::fftfilterbank_t, 631
MHAFilter::partitioned_convolution_t, 664
MHAFilter::resampling_filter_t, 675
MHAIOPortAudio::io_portaudio_t, 700
MHAJack::client_t, 717
MHAParser::mhaconfig_mon_t, 825
MHAPlugin_Resampling::resampling_if←_t, 890
mhaconfig_t, 596
fragsize_in
MHAFilter::blockprocessing_polyphase←_resampling_t, 616
fragsize_out
MHAFilter::blockprocessing_polyphase←_resampling_t, 616
fragsize_validator
MHAFilter::resampling_filter_t, 675
frame
MHA_AC::acspace2matrix_t, 486
framecnt
acsave::save_var_t, 182
frameno
MHA_AC::acspace2matrix_t, 487
noisePowProposedScale::noisePow←-

1368
Proposed, 1053
frames
ac2wave_t, 149
prediction_error_config, 1093
rt_nlms_t, 1108
frameshift
hilbert_shifter_t, 407
framework_thread_priority
MHAPlugin_Split::split_t, 912
framework_thread_scheduler
MHAPlugin_Split::split_t, 912
freq2bin
Vector and matrix processing toolbox, 47
frequency
sine_t, 1125
frequency_response
MHAFilter::partitioned_convolution_t, 665
frequency_translator_t, 384
df, 386
fmax, 386
fmin, 386
frequency_translator_t, 385
irslen, 387
patchbay, 386
phasemode, 387
prepare, 385
process, 385
release, 386
update, 386
front_channel
adm_rtconfig_t, 211
front_channels
adm_if_t, 207
adm_rtconfig_t, 212
frozen_noise_
cfg_t, 256
frozennoise_length
noise_t, 1046
fs
MHAFilter::o1_ar_filter_t, 655
fs_
MHAOvlFilter::fspacing_t, 755
fscale
MHAOvlFilter::fftfb_vars_t, 746
fscale_bw_t
MHAOvlFilter::fscale_bw_t, 749
fscale_t
MHAOvlFilter::fscale_t, 751
fshift_hilbert.cpp, 1210
fspacing_t
MHAOvlFilter::fspacing_t, 753

INDEX
ft
spec2wave_t, 1142
wave2spec_t, 1180
ftype
MHAOvlFilter::fftfb_vars_t, 747
fu
rt_nlms_t, 1109
fu_previous
rt_nlms_t, 1109
fuflt
rt_nlms_t, 1109
fullname
dynamiclib_t, 339
MHAParser::base_t, 773
plugindescription_t, 1069
fullspec
hilbert_shifter_t, 406
fun_t
MHAWindow::fun_t, 1026
funs
MHAOvlFilter::scale_var_t, 763
fw_cmd
fw_t, 394
fw_fragsize
MHAIOJack::io_jack_t, 690
fw_samplerate
MHAIOJack::io_jack_t, 690
fw_sleep
fw_t, 394
fw_sleep_cmd
fw_t, 392
fw_t, 387
∼fw_t, 390
ac, 395
async_poll_msg, 393
async_read, 393
b_exit_request, 396
cfin, 396
cfout, 396
dump_mha, 395
errorlog, 394
exec_fw_command, 392
exit_on_stop, 394
exit_request, 390
fatallog, 395
fw_cmd, 394
fw_sleep, 394
fw_sleep_cmd, 392
fw_t, 390
fw_until, 394
fw_until_cmd, 393
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
get_input_signal_dimension, 393
get_parserstate, 393
inst_name, 395
io_error, 396
io_lib, 396
io_name, 394
load_io_lib, 392
load_proc_lib, 392
nchannels_out, 393
parserstate, 394
patchbay, 397
plugin_paths, 395
plugins, 395
prepare, 390
prepare_vars, 393
proc_error, 396
proc_error_string, 396
proc_lib, 395
proc_name, 394
process, 391, 392
quit, 391
release, 391
start, 390
started, 391, 392
state, 396
state_t, 389
stop, 391
stopped, 391, 392
fw_until
fw_t, 394
fw_until_cmd
fw_t, 393
fw_vars_t, 397
fw_vars_t, 397
lock_channels, 398
lock_srate_fragsize, 397
pfragmentsize, 398
pinchannels, 398
psrate, 398
unlock_channels, 398
unlock_srate_fragsize, 398
fwcb
io_tcp_t, 450
G
doasvm_feature_extraction_config, 331
g
coherence::cohflt_t, 262
g50
dc_simple::dc_vars_t, 307
g80
dc_simple::dc_vars_t, 307
© 2005-2018 HörTech gGmbH, Oldenburg

1369
G_ERRNO
MHA_TCP, 101
G_length
doasvm_feature_extraction_config, 330
g_scale
dc::wb_inhib_cfg_t, 294
dc::wideband_inhib_vars_t, 296
GCC_end
doasvm_feature_extraction_config, 330
GCC_start
doasvm_feature_extraction_config, 330
GITCOMMITHASH
mha_plugin.hh, 1260
GLRDebug
noisePowProposedScale::noisePow←Proposed, 1051
GLRexp
noisePowProposedScale::noisePow←Proposed, 1052
timoConfig, 1167
GLR
timoConfig, 1167
GREETING_TEXT
mhamain.cpp, 1315
gain, 96
calibrator_runtime_layer_t, 247
coherence::cohflt_t, 263
fader_wave::fader_wave_if_t, 375
multibandcompressor::plugin_signals_t,
1039
gain.cpp, 1211
gain::gain_if_t, 399
bbgain, 401
gain_if_t, 400
gains, 401
patchbay, 401
prepare, 400
process, 400
release, 400
update_bbgain, 401
update_gain, 400
update_minmax, 401
vmax, 401
vmin, 401
gain::scaler_t, 402
scaler_t, 402
gain_ac
ac2wave_if_t, 147
ac2wave_t, 150
gain_delay
coherence::cohflt_t, 263

1370
gain_if_t
gain::gain_if_t, 400
gain_in
ac2wave_if_t, 147
ac2wave_t, 150
gain_min
timoConfig, 1163
gain_min_db
timo_params, 1159
timoSmooth, 1171
gain_spec_
cfg_t, 256
gain_wave_
cfg_t, 256
gain_wiener
timoConfig, 1165
gain_wiener_AC
timo_AC, 1156
gainrule
dc::dc_vars_t, 290
dc_simple::dc_if_t, 300
gains
gain::gain_if_t, 401
prediction_error, 1089
shadowfilter_end::cfg_t, 1120
spec_fader_t, 1144
gaintable.cpp, 1211
convert_f2logf, 1211
isempty, 1211
gaintable.h, 1211
gaintable_t
DynComp::gaintable_t, 348
gamma_flt_t
MHAFilter::gamma_flt_t, 639
gamma_post
timoConfig, 1164
gamma_post_AC
timo_AC, 1154
gauss
MHAOvlFilter::ShapeFun, 118
gcd
MHAFilter, 106
generatemhaplugindoc.cpp, 1212
conv2latex, 1212
create_latex_doc, 1212
main, 1213
get_A
MHAFilter::gamma_flt_t, 641
get_a
MHAParser::base_t::replace_t, 777
get_ac

INDEX
latex_doc_t, 452
plug_t, 1063
get_accept_event
MHA_TCP::Server, 567
get_all_input_ports
MHAIOJack::io_jack_t, 689
get_all_output_ports
MHAIOJack::io_jack_t, 689
get_audiochannels
dc, 91
get_available_space
mha_drifter_fifo_t, 517
mha_fifo_t, 534
get_b
MHAParser::base_t::replace_t, 777
get_bw_hz
MHAOvlFilter::fscale_bw_t, 749
get_c1
MHAFilter::o1flt_lowpass_t, 657
get_c_handle
MHAKernel::algo_comm_class_t, 725
get_categories
latex_doc_t, 452
PluginLoader::mhapluginloader_t, 1081
get_cdata
MHASignal::matrix_t, 966
get_cf_fftbin
MHAOvlFilter::fspacing_t, 754
get_cf_hz
MHAFilter::thirdoctave_analyzer_t, 680
MHAOvlFilter::fspacing_t, 754
get_cfin
MHAParser::mhapluginloader_t, 828
get_cfout
MHAParser::mhapluginloader_t, 829
get_channelconfig
MHAOvlFilter::overlap_save_filterbank_t,
759
get_comm_var
MHASignal::matrix_t, 960
get_configfile
PluginLoader::config_file_splitter_t, 1072
get_configname
PluginLoader::config_file_splitter_t, 1072
get_connected
io_tcp_parser_t, 437
get_cpu_load
MHAJack::client_t, 715
get_current_profile
AuditoryProfile::parser_t, 236
get_delay
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
mha_dblbuf_t, 507
get_delays_in
MHAIOJack::io_jack_t, 689
get_delays_out
MHAIOJack::io_jack_t, 689
get_des_fill_count
mha_drifter_fifo_t, 517
get_documentation
PluginLoader::mhapluginloader_t, 1081
get_ear
AuditoryProfile::parser_t::ear_t, 237
AuditoryProfile::profile_t, 241
get_ef_hz
MHAOvlFilter::fspacing_t, 754
get_entries
algo_comm_t, 218
MHAKernel::algo_comm_class_t, 727
MHAParser::keyword_list_t, 808
get_error
algo_comm_t, 218
MHAKernel::algo_comm_class_t, 727
get_f_hz
MHAOvlFilter::fscale_t, 751
get_fbpower
MHAOvlFilter::fftfb_t, 742
get_fbpower_db
MHAOvlFilter::fftfb_t, 742
get_fd
MHA_TCP::Connection, 556
get_fftlen
MHAOvlFilter::fftfb_t, 743
get_fifo_size
mha_dblbuf_t, 507
get_fill_count
mha_drifter_fifo_t, 517
mha_fifo_t, 534
get_fmap
AuditoryProfile::parser_t::fmap_t, 239
get_fragsize
MHAJack::client_t, 713
get_frequencies
AuditoryProfile::fmap_t, 234
get_fun
MHAOvlFilter::scale_var_t, 762
get_gain
DynComp::gaintable_t, 349, 350
get_handle
plug_t, 1063
get_index
MHAParser::keyword_list_t, 808
MHASignal::matrix_t, 965
© 2005-2018 HörTech gGmbH, Oldenburg

1371
get_inner_error
mha_dblbuf_t, 508
get_inner_size
mha_dblbuf_t, 506
get_input_channels
mha_dblbuf_t, 507
get_input_fifo_fill_count
mha_dblbuf_t, 507
get_input_fifo_space
mha_dblbuf_t, 508
get_input_signal_dimension
fw_t, 393
get_interface
MHA_TCP::Server, 566
get_iofun
DynComp::gaintable_t, 350
get_irs
MHAFilter::fftfilterbank_t, 630
get_last_name
MHAParser::mhapluginloader_t, 829
get_last_output
MHAFilter::o1flt_lowpass_t, 657
get_latex_doc
latex_doc_t, 451
get_len_A
MHAFilter::filter_t, 636
get_len_B
MHAFilter::filter_t, 636
get_length
MHASignal::uint_vector_t, 992
get_level
fader_wave::level_adapt_t, 377
get_level_in_db
dc::dc_t, 285
get_level_in_db_adjusted
dc::dc_t, 285
get_libname
PluginLoader::config_file_splitter_t, 1072
get_local_address
io_tcp_parser_t, 435
get_local_port
io_tcp_parser_t, 435
get_longmsg
MHA_Error, 523
get_ltass_gain_db
MHAOvlFilter::fftfb_t, 743
get_main_category
latex_doc_t, 451
get_mapping
MHASignal::loop_wavefragment_t, 952
get_max_fill_count

1372
mha_fifo_t, 535
get_min_fill_count
mha_drifter_fifo_t, 518
get_msg
MHA_Error, 523
get_my_input_ports
MHAJack::client_t, 714
get_my_output_ports
MHAJack::client_t, 714
get_name
MHAOvlFilter::scale_var_t, 762
get_nbands
dc::dc_t, 285
get_nelements
MHASignal::matrix_t, 960
get_nreals
MHASignal::matrix_t, 965
get_origname
PluginLoader::config_file_splitter_t, 1072
get_os_event
MHA_TCP::Timeout_Event, 577
MHA_TCP::Wakeup_Event, 581
get_outer_size
mha_dblbuf_t, 506
get_output_channels
mha_dblbuf_t, 507
get_output_fifo_fill_count
mha_dblbuf_t, 507
get_output_fifo_space
mha_dblbuf_t, 508
get_parser_tab
latex_doc_t, 452
get_parser_var
latex_doc_t, 452
get_parserstate
fw_t, 393
get_paths
pluginbrowser_t, 1067
get_peer_address
MHA_TCP::Connection, 556
get_peer_port
MHA_TCP::Connection, 556
get_physical_input_ports
MHAIOJack::io_jack_t, 689
get_physical_output_ports
MHAIOJack::io_jack_t, 689
get_plugins
pluginbrowser_t, 1068
get_port
MHA_TCP::Server, 566
get_port_capture_latency

INDEX
MHAJack, 109
get_port_capture_latency_int
MHAJack, 109
get_port_playback_latency
MHAJack, 110
get_port_playback_latency_int
MHAJack, 110
get_ports
MHAJack::client_t, 714
get_precision
MHAParser, 122
get_process_spec
plug_t, 1063
get_process_wave
plug_t, 1063
get_rdata
MHASignal::matrix_t, 965
get_read_event
MHA_TCP::Connection, 556
get_resynthesis_gain
MHAFilter::gamma_flt_t, 641
get_server_port_open
io_tcp_parser_t, 436
get_short_name
MHAJack::port_t, 723
get_signal
MHAPlugin_Split::domain_handler_t, 898
get_size
MHASignal::waveform_t, 1006
get_srate
MHAJack::client_t, 713
get_type
MHAParser::window_t, 874
get_value
MHAParser::keyword_list_t, 808
get_values
AuditoryProfile::fmap_t, 234
get_var
algo_comm_t, 216
MHAKernel::algo_comm_class_t, 726
get_var_float
algo_comm_t, 217
Communication between algorithms, 31
MHAKernel::algo_comm_class_t, 726
get_var_int
algo_comm_t, 217
Communication between algorithms, 30
MHAKernel::algo_comm_class_t, 726
get_var_spectrum
Communication between algorithms, 29
get_var_vfloat
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
Communication between algorithms, 31
get_var_waveform
Communication between algorithms, 30
get_vF
DynComp::gaintable_t, 350
get_vL
DynComp::gaintable_t, 350
get_weights
MHAFilter::complex_bandpass_t, 619
MHAFilter::gamma_flt_t, 641
get_window
MHAParser::window_t, 873, 874
get_window_data
windowselector_t, 1189
get_write_event
MHA_TCP::Connection, 556
get_xlimits
MHATableLookup::xy_table_t, 1019
get_xruns
MHAJack::client_t, 713
get_xruns_reset
MHAJack::client_t, 714
getcipd
coherence, 91
getdata
MHASignal::uint_vector_t, 993
getfullname
PluginLoader::mhapluginloader_t, 1081
getmodulename
dynamiclib_t, 339
Getmsg
mha_error.hh, 1238
getname
dynamiclib_t, 339
MHA_AC::ac2matrix_t, 482
getusername
MHA_AC::ac2matrix_t, 482
getvar
acmon::ac_monitor_t, 157
MHA_AC::ac2matrix_helper_t, 479
GF
MHAFilter::gamma_flt_t, 642
groupdelay_t
MHASignal::schroeder_t, 976
gt
dc::dc_t, 285
gtdata
dc::dc_vars_t, 288
gtmin
dc::dc_vars_t, 288
gtstep
© 2005-2018 HörTech gGmbH, Oldenburg

1373
dc::dc_vars_t, 289
h
dynamiclib_t, 339
MHASignal::hilbert_t, 949
H_ERRNO
MHA_TCP, 100
HELP_TEXT
mhamain.cpp, 1315
HINSTANCE
mha_plugin.hh, 1260
HSTRERROR
MHA_TCP, 100
HTL
AuditoryProfile::parser_t::ear_t, 238
AuditoryProfile::profile_t::ear_t, 242
hamming
MHAWindow, 142
hamming_t
MHAWindow::hamming_t, 1027
handle
algo_comm_t, 213
hann
hann.cpp, 1213
hann.h, 1214
MHAOvlFilter::ShapeFun, 117
hann.cpp, 1213
hann, 1213
hannf, 1213
PI, 1213
hann.h, 1214
hann, 1214
hannf, 1214
hannf
hann.cpp, 1213
hann.h, 1214
hanning
MHAWindow, 142
hanning_ramps_t, 403
∼hanning_ramps_t, 403
hanning_ramps_t, 403
len_a, 404
len_b, 404
operator(), 403
ramp_a, 404
ramp_b, 404
hanning_t
MHAWindow::hanning_t, 1028
hardlimit
softclipper_t, 1135
softclipper_variables_t, 1137
has_been_modified

1374
dc_simple::dc_if_t, 299
has_inner_error
analysepath_t, 229
has_key
MHAKernel::comm_var_map_t, 729
has_parser
PluginLoader::mhapluginloader_t, 1079
has_process
PluginLoader::mhapluginloader_t, 1079
header
io_tcp_sound_t, 443
help
MHAParser::base_t, 775
hifftwin
doasvm_feature_extraction_config, 331
hifftwin_sum
doasvm_feature_extraction_config, 330
high_side_flat
MHAOvlFilter::band_descriptor_t, 737
hilbert
MHASignal::hilbert_fftw_t, 946
hilbert_fftw_t
MHASignal::hilbert_fftw_t, 945
hilbert_shifter_t, 404
∼hilbert_shifter_t, 405
analytic, 406
dphi, 407
frameshift, 407
fullspec, 406
hilbert_shifter_t, 405
kmax, 407
kmin, 407
mhafft, 407
mixw_ref, 406
mixw_shift, 406
phi, 407
plan_spec2analytic, 407
process, 406
shifted, 406
hilbert_t
MHASignal::hilbert_t, 948
host_port_to_sock_addr
mha_tcp.cpp, 1281
hostApi
MHAIOPortAudio::device_info_t, 695
Hs
MHAFilter::fftfilterbank_t, 631
hton
io_tcp_sound_t, 444
hw
MHAFilter::fftfilterbank_t, 631

INDEX
hwin
doasvm_feature_extraction_config, 331
hz2bark
MHAOvlFilter::FreqScaleFun, 114
hz2bark_analytic
MHAOvlFilter::FreqScaleFun, 115
hz2bark_t
MHAOvlFilter::barkscale::hz2bark_t, 738
hz2erb
MHAOvlFilter::FreqScaleFun, 115
hz2erb_glasberg1990
MHAOvlFilter::FreqScaleFun, 115
hz2hz
MHAOvlFilter::FreqScaleFun, 114
speechnoise.cpp, 1327
hz2khz
MHAOvlFilter::FreqScaleFun, 114
hz2log
MHAOvlFilter::FreqScaleFun, 115
hz2octave
MHAOvlFilter::FreqScaleFun, 114
hz2third_octave
MHAOvlFilter::FreqScaleFun, 114
hz2unit
MHAOvlFilter::scale_var_t, 763
i
io_tcp_sound_t::float_union, 446
INSERT_PATCH
acConcat_wave.cpp, 1192
acPooling_wave.cpp, 1193
acSteer.cpp, 1195
acTransform_wave.cpp, 1196
doasvm_classification.cpp, 1205
doasvm_feature_extraction.cpp, 1206
lpc.cpp, 1216
lpc_bl_predictor.cpp, 1217
lpc_burg-lattice.cpp, 1218
prediction_error.cpp, 1321
steerbf.cpp, 1332
timoSmooth.cpp, 1334
INSERT_VAR
timoSmooth.cpp, 1334
INVALID_SOCKET
mha_tcp.cpp, 1280
IO_ERROR_JACK
mhajack.h, 1313
IO_ERROR_MHAJACKLIB
mhajack.h, 1314
IODestroy
MHAIOFile.cpp, 1288, 1290
MHAIOJack.cpp, 1293, 1294
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHAIOParser.cpp, 1297, 1299
MHAIOPortAudio.cpp, 1302, 1304
MHAIOTCP.cpp, 1308, 1310
IODestroy_cb
io_lib_t, 422
IODestroy_t
mha_io_ifc.h, 1247
IOInit
MHAIOFile.cpp, 1287, 1288
MHAIOJack.cpp, 1292, 1293
MHAIOParser.cpp, 1296, 1298
MHAIOPortAudio.cpp, 1301, 1303
MHAIOTCP.cpp, 1307, 1309
IOInit_cb
io_lib_t, 422
IOInit_t
mha_io_ifc.h, 1246
IOPrepare
MHAIOFile.cpp, 1287, 1289
MHAIOJack.cpp, 1292, 1293
MHAIOParser.cpp, 1297, 1298
MHAIOPortAudio.cpp, 1301, 1303
MHAIOTCP.cpp, 1307, 1309
IOPrepare_cb
io_lib_t, 422
IOPrepare_t
mha_io_ifc.h, 1246
IOProcessEvent_t
mha_io_ifc.h, 1246
IORelease
MHAIOFile.cpp, 1288, 1289
MHAIOJack.cpp, 1292, 1294
MHAIOParser.cpp, 1297, 1298
MHAIOPortAudio.cpp, 1302, 1303
MHAIOTCP.cpp, 1308, 1310
IORelease_cb
io_lib_t, 422
IORelease_t
mha_io_ifc.h, 1247
IOSetVar
MHAIOFile.cpp, 1288, 1289
MHAIOJack.cpp, 1293, 1294
MHAIOParser.cpp, 1297, 1299
MHAIOPortAudio.cpp, 1302, 1304
MHAIOTCP.cpp, 1308, 1310
IOSetVar_cb
io_lib_t, 422
IOSetVar_t
mha_io_ifc.h, 1247
IOStart
MHAIOFile.cpp, 1287, 1289
© 2005-2018 HörTech gGmbH, Oldenburg

1375
MHAIOJack.cpp, 1292, 1294
MHAIOParser.cpp, 1297, 1298
MHAIOPortAudio.cpp, 1301, 1303
MHAIOTCP.cpp, 1308, 1309
IOStart_cb
io_lib_t, 422
IOStart_t
mha_io_ifc.h, 1246
IOStartedEvent_t
mha_io_ifc.h, 1246
IOStop
MHAIOFile.cpp, 1288, 1289
MHAIOJack.cpp, 1292, 1294
MHAIOParser.cpp, 1297, 1298
MHAIOPortAudio.cpp, 1302, 1303
MHAIOTCP.cpp, 1308, 1309
IOStop_cb
io_lib_t, 422
IOStop_t
mha_io_ifc.h, 1246
IOStoppedEvent
MHAJack::client_avg_t, 703, 704
MHAJack::client_noncont_t, 707, 708
IOStoppedEvent_t
mha_io_ifc.h, 1246
IOStrError
MHAIOFile.cpp, 1288, 1290
MHAIOJack.cpp, 1293, 1294
MHAIOParser.cpp, 1297, 1299
MHAIOPortAudio.cpp, 1302, 1304
MHAIOTCP.cpp, 1308, 1310
IOStrError_cb
io_lib_t, 422
IOStrError_t
mha_io_ifc.h, 1247
id
mha_channel_info_t, 502
id_str
MHAParser::base_t, 775
id_string
MHAParser::parser_t, 839
identity
MHASignal::schroeder_t, 978
identity.cpp, 1214
identity_t, 408
identity_t, 408
prepare, 409
process, 409
release, 409
idstr
mha_channel_info_t, 502

1376
iface
MHA_TCP::Server, 568
ifft
doasvm_feature_extraction_config, 330
ifftshift
ifftshift.cpp, 1215
ifftshift.h, 1215
ifftshift.cpp, 1214
ifftshift, 1215
ifftshift.h, 1215
ifftshift, 1215
ignore
MHA_TCP::Event_Watcher, 562
ignored_by
MHA_TCP::Wakeup_Event, 580
iir_filter_state_t
MHAFilter::iir_filter_state_t, 643
iir_filter_t
MHAFilter::iir_filter_t, 645
iir_ord1_real_t
MHAFilter::iir_ord1_real_t, 648, 649
iirfilter.cpp, 1215
iirfilter_t, 410
iirfilter_t, 410
prepare_, 411
process, 411
release_, 411
ilen
fader_wave::level_adapt_t, 377
im
mha_complex_t, 503
imag
acsave::mat4head_t, 179
fftfilterbank::fftfb_plug_t, 384
MHASignal::matrix_t, 961–964
imagfb
MHAOvlFilter::overlap_save_filterbank_←analytic_t, 757
impulse_response
MHAFilter::polyphase_resampling_t, 673
MHAFilter::transfer_function_t, 685
in_buf
wave2spec_t, 1181
in_cfg
timo_params, 1158
in_spec
doasvm_feature_extraction_config, 331
shadowfilter_end::cfg_t, 1120
in_spec_copy
shadowfilter_begin::cfg_t, 1115
inbuf

INDEX
MHA_TCP::Connection, 560
inch
MHAJack::client_t, 718
increase_condition
mha_fifo_posix_threads_t, 530
increment
mha_fifo_posix_threads_t, 530
mha_fifo_thread_platform_t, 540
index
MHAParser::keyword_list_t, 809
index_t
MHAFilter::partitioned_convolution_t←::index_t, 667
inhib_gain
dc::dc_t, 286
Init_mha_ruby
mha_ruby.cpp, 1265
init_peer_data
MHA_TCP::Connection, 555
initialize
MHA_TCP::Server, 566
inner2outer_resampling
MHAPlugin_Resampling::resampling_t,
893
inner_ac_copy
analysepath_t, 228
inner_error
analysepath_t, 229
mha_dblbuf_t, 511
inner_fragsize
MHAPlugin_Resampling::resampling_t,
892
inner_in
MHASignal::doublebuffer_t, 939
inner_input
analysepath_t, 228
inner_out
MHASignal::doublebuffer_t, 939
inner_out_domain
analysepath_t, 228
inner_process
db_t, 279
MHASignal::doublebuffer_t, 938
inner_process_wave2spec
analysepath_t, 227
inner_process_wave2wave
analysepath_t, 227
inner_signal
MHAPlugin_Resampling::resampling_t,
893
inner_size
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
mha_dblbuf_t, 510
inner_srate
MHAPlugin_Resampling::resampling_t,
892
input
io_parser_t, 427
mha_dblbuf_t, 509
input_cfg
MHAPlugin::plugin_t, 886
input_cfg_
MHAPlugin::plugin_t, 887
input_channels
adm_if_t, 208
mha_dblbuf_t, 510
input_domain
PluginLoader::mhapluginloader_t, 1080
input_fifo
mha_dblbuf_t, 511
input_level
dc::dc_vars_t, 290
input_portnames
MHAJack::client_t, 719
input_signal_spec
MHAFilter::partitioned_convolution_t, 665
input_signal_wave
MHAFilter::partitioned_convolution_t, 665
input_to_process
analysepath_t, 229
inputPow
noisePowProposedScale::noisePow←Proposed, 1051
inputSpec
noisePowProposedScale::noisePow←Proposed, 1052
inputchannels
MHAFilter::fftfilterbank_t, 631
insert
acPooling_wave_config, 170
acSteer_config, 187
coherence::cohflt_t, 261
fftfilterbank::fftfb_plug_t, 383
lpc_config, 472
MHA_AC::ac2matrix_t, 482
MHA_AC::acspace2matrix_t, 486
MHA_AC::spectrum_t, 493
MHA_AC::stat_t, 495
MHA_AC::waveform_t, 498
MHAOvlFilter::fftfb_ac_info_t, 740
multibandcompressor::fftfb_plug_t, 1034
noisePowProposedScale::noisePow←Proposed, 1050
© 2005-2018 HörTech gGmbH, Oldenburg

1377
prediction_error_config, 1092
rmslevel_t, 1100
rt_nlms_t, 1108
timo_AC, 1154
insert_item
MHAParser::parser_t, 835
insert_items
windowselector_t, 1189
insert_member
mha_parser.hh, 1258
insert_var
algo_comm_t, 214
MHAKernel::algo_comm_class_t, 725
insert_var_float
algo_comm_t, 215
MHAKernel::algo_comm_class_t, 725
insert_var_int
algo_comm_t, 214
MHAKernel::algo_comm_class_t, 725
inspect
MHAFilter::complex_bandpass_t, 620
MHAFilter::gamma_flt_t, 641
MHASignal::delay_t, 934
inst_name
fw_t, 395
int_mon_t
MHAParser::int_mon_t, 801
int_t
MHA_AC::int_t, 491
MHAParser::int_t, 804
integrate
Vector and matrix processing toolbox, 51
intensity
mha_signal.cpp, 1268
interface_t
delay::interface_t, 312
multibandcompressor::interface_t, 1036
noisePowProposedScale::interface_←t, 1048
route::interface_t, 1102
interleaved
combc_if_t, 268
interleaved_
combc_t, 270
intern_level
MHASignal::loop_wavefragment_t, 954
internal_fir
MHAFilter::smoothspec_t, 678
internal_start
MHAJack::client_t, 715
internal_stop

1378
MHAJack::client_t, 716
interp
MHATableLookup::linear_table_t, 1010
MHATableLookup::table_t, 1014
MHATableLookup::xy_table_t, 1017
interp1
DynComp, 94
interp2
DynComp, 95
inv_scale
MHAOvlFilter::FreqScaleFun, 116
invalidate_window_data
windowselector_t, 1190
invert
coherence::vars_t, 266
inwave
lpc_config, 473
io
MHAJack, 109
MHAJack::client_avg_t, 703
MHAJack::client_noncont_t, 707
io_err
io_tcp_fwcb_t, 432
io_error
fw_t, 396
io_file_t, 411
∼io_file_t, 413
b_prepared, 417
filename_input, 416
filename_output, 416
fragsize, 414
io_file_t, 413
length, 416
nchannels_file_in, 415
nchannels_in, 415
nchannels_out, 415
output_sample_format, 416
prepare, 413
proc_event, 415
proc_handle, 415
release, 414
s_file_in, 417
s_in, 417
s_out, 417
samplerate, 415
setlock, 414
sf_in, 417
sf_out, 417
sfinf_in, 417
sfinf_out, 418
start, 413

INDEX
start_event, 415
start_handle, 415
startsample, 416
stop, 414
stop_event, 416
stop_handle, 416
stopped, 414
strict_channel_match, 416
strict_srate_match, 417
total_read, 418
io_jack_t
MHAIOJack::io_jack_t, 688
io_lib
fw_t, 396
io_lib_t, 418
∼io_lib_t, 420
IODestroy_cb, 422
IOInit_cb, 422
IOPrepare_cb, 422
IORelease_cb, 422
IOSetVar_cb, 422
IOStart_cb, 422
IOStop_cb, 422
IOStrError_cb, 422
io_lib_t, 419
lib_data, 421
lib_err, 421
lib_handle, 421
lib_str_error, 421
prepare, 420
release, 421
start, 420
stop, 421
test_error, 421
io_name
fw_t, 394
io_parser_t, 423
∼io_parser_t, 424
b_fw_started, 427
b_prepared, 428
b_starting, 428
b_stopped, 428
fragsize, 426
input, 427
io_parser_t, 424
nchannels_in, 426
nchannels_out, 426
output, 427
patchbay, 428
prepare, 425
proc_event, 426
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
proc_handle, 426
process_frame, 426
release, 425
s_in, 427
s_out, 427
start, 425
start_event, 426
start_handle, 427
started, 425
stop, 425
stop_event, 427
stop_handle, 427
stopped, 425
io_portaudio_t
MHAIOPortAudio::io_portaudio_t, 697
io_tcp_fwcb_t, 428
∼io_tcp_fwcb_t, 429
io_err, 432
io_tcp_fwcb_t, 429
proc_err, 432
proc_event, 431
proc_handle, 432
process, 430
set_errnos, 430
start, 430
start_event, 431
start_handle, 432
stop, 431
stop_event, 431
stop_handle, 432
io_tcp_parser_t, 433
∼io_tcp_parser_t, 435
connected, 439
debug, 438
debug_file, 440
debug_filename, 440
get_connected, 437
get_local_address, 435
get_local_port, 435
get_server_port_open, 436
io_tcp_parser_t, 434
local_address, 439
local_port, 439
peer_address, 439
peer_port, 439
server_port_open, 439
set_connected, 437
set_local_port, 435
set_new_peer, 438
set_server_port_open, 436
io_tcp_sound_t, 440
© 2005-2018 HörTech gGmbH, Oldenburg

1379
∼io_tcp_sound_t, 442
check_sound_data_type, 442
chunkbytes_in, 443
fragsize, 444
header, 443
hton, 444
io_tcp_sound_t, 441
ntoh, 443
num_inchannels, 445
num_outchannels, 445
prepare, 442
release, 443
s_in, 445
samplerate, 444
io_tcp_sound_t::float_union, 445
c, 446
f, 446
i, 446
io_tcp_t, 446
∼io_tcp_t, 448
accept_loop, 449
connection_loop, 449
fwcb, 450
io_tcp_t, 447
notify_release, 450
notify_start, 450
notify_stop, 450
parse, 449
parser, 449
prepare, 448
release, 448
server, 450
sound, 449
start, 448
stop, 448
thread, 450
iob
MHAJack::port_t, 723
irslen
frequency_translator_t, 387
irslen_inner2outer
MHAPlugin_Resampling::resampling_if←_t, 890
irslen_outer2inner
MHAPlugin_Resampling::resampling_if←_t, 890
irswnd
MHAOvlFilter::overlap_save_filterbank_←t::vars_t, 761
smoothgains_bridge::overlapadd_if_←t, 1128

1380
is_complex
MHA_AC::ac2matrix_helper_t, 480
mha_audio_descriptor_t, 499
is_playback_active
MHASignal::loop_wavefragment_t, 953
is_prepared
adm_if_t, 206
MHAPlugin::plugin_t, 885
PluginLoader::mhapluginloader_t, 1081
is_prepared_
MHAPlugin::plugin_t, 887
is_same_size
MHASignal::matrix_t, 961
is_var
algo_comm_t, 216
MHAKernel::algo_comm_class_t, 726
iscomplex
MHASignal::matrix_t, 961
isempty
AuditoryProfile::fmap_t, 234
gaintable.cpp, 1211
MHAFilter::transfer_function_t, 684
isval
MHAParser::kw_t, 812
iter
prediction_error_config, 1094
iterator
MHA_TCP::Event_Watcher, 562
jack_error_handler
mhajack.cpp, 1311
jack_proc_cb
MHAJack::client_t, 716
jack_xrun_cb
MHAJack::client_t, 716
jc
MHAJack::client_t, 718
MHAJack::port_t, 723
jstate_prev
MHAJack::client_t, 719
k_inner
MHASignal::doublebuffer_t, 939
k_nyquist
dc::dc_t, 287
k_outer
MHASignal::doublebuffer_t, 940
kappa
lpc_burglattice_config, 469
kappa_block
lpc_burglattice_config, 469
kappa_const

INDEX
timo_params, 1159
timoSmooth, 1171
keyword_list_t
MHAParser::keyword_list_t, 807
kick_condition
MHAPlugin_Split::posix_threads_t, 905
kick_thread
MHAPlugin_Split::dummy_threads_t, 901
MHAPlugin_Split::posix_threads_t, 904
MHAPlugin_Split::thread_platform_t, 921
kicked
MHAPlugin_Split::posix_threads_t, 906
km
lpc_bl_predictor_config, 463
kmax
hilbert_shifter_t, 407
kmin
hilbert_shifter_t, 407
kth_smallest
MHASignal, 135
kw_index2type
transducers.cpp, 1336
kw_t
MHAParser::kw_t, 811
L
AuditoryProfile::parser_t, 236
AuditoryProfile::profile_t, 241
l_min
dc::wb_inhib_cfg_t, 293
dc::wideband_inhib_vars_t, 296
l_new
fader_wave::level_adapt_t, 378
l_old
fader_wave::level_adapt_t, 378
LEVEL
dc_simple, 92
LPSCALE
timoconfig.cpp, 1333
lambda
lpc_burglattice, 467
lpc_burglattice_config, 469
lambda_ceps
timoConfig, 1165
lambda_ceps_AC
timo_AC, 1155
lambda_ceps_prev
timoConfig, 1165
lambda_ml_AC
timo_AC, 1154
lambda_ml_ceps
timoConfig, 1164
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
lambda_ml_ceps_AC
timo_AC, 1154
lambda_ml_full
timoConfig, 1164
lambda_ml_smooth
timoConfig, 1164
lambda_ml_smooth_AC
timo_AC, 1155
lambda_smoothing_power
nlms_t, 1043
lambda_spec
timoConfig, 1165
lambda_spec_AC
timo_AC, 1156
lambda_thresh
timo_params, 1158
timoSmooth, 1171
last_complex_bin
MHASignal::subsample_delay_t, 989
last_config
MHAPlugin::config_t, 880
last_errormsg
MHAParser::parser_t, 839
last_jack_err
mhajack.cpp, 1312
last_jack_err_msg
mhajack.cpp, 1312
mhajack.h, 1314
last_name
MHAParser::mhapluginloader_t, 830
latex_doc_t, 451
ac, 453
get_ac, 452
get_categories, 452
get_latex_doc, 451
get_main_category, 451
get_parser_tab, 452
get_parser_var, 452
latex_doc_t, 451
latex_plugname, 453
loader, 453
parsername, 452
plugin_macro, 453
plugname, 453
strdom, 452
latex_plugname
latex_doc_t, 453
len
MHA_AC::acspace2matrix_t, 487
MHAFilter::filter_t, 637
MHATableLookup::linear_table_t, 1012
© 2005-2018 HörTech gGmbH, Oldenburg

1381
len_A
MHAFilter::filter_t, 637
len_a
hanning_ramps_t, 404
len_B
MHAFilter::filter_t, 637
len_b
hanning_ramps_t, 404
length
io_file_t, 416
MHASignal::uint_vector_t, 993
lev
noise_t, 1046
sine_t, 1125
level
rmslevel_t, 1100
level_adapt_t
fader_wave::level_adapt_t, 377
level_adaptor
fader_wave, 96
level_db
rmslevel_t, 1100
level_in_db
dc::dc_t, 286
level_in_db_adjusted
dc::dc_t, 286
level_mode_t
MHASignal::loop_wavefragment_t, 950
level_mon
droptect_t, 335
level_smoother_t
dc_simple::level_smoother_t, 310
level_spec
dc_simple::level_smoother_t, 311
level_wave
dc_simple::level_smoother_t, 311
Levinson2
lpc.cpp, 1216
lib_data
io_lib_t, 421
PluginLoader::mhapluginloader_t, 1083
lib_err
io_lib_t, 421
PluginLoader::mhapluginloader_t, 1082
lib_handle
io_lib_t, 421
PluginLoader::mhapluginloader_t, 1082
lib_str_error
io_lib_t, 421
libdata
analysepath_t, 228

1382
MHAParser::c_ifc_parser_t, 786
liberr
MHAParser::c_ifc_parser_t, 786
libname
analysispath_if_t, 232
PluginLoader::config_file_splitter_t, 1072
library_paths
pluginbrowser_t, 1068
like_ratio
acPooling_wave_config, 171
like_ratio_name
acPooling_wave, 168
limit
coherence::cohflt_t, 262
coherence::vars_t, 265
MHASignal, 135
MHASignal::quantizer_t, 970
MHASignal::waveform_t, 1004
limiter
dc_simple::dc_t, 303
limiter_threshold
dc_simple::dc_t, 303
dc_simple::dc_vars_t, 307
lin2db
Vector and matrix processing toolbox, 44
line_t
dc_simple::dc_t::line_t, 304, 305
linear
MHAOvlFilter::ShapeFun, 117
softclipper_t, 1135
softclipper_variables_t, 1137
linear_table_t
MHATableLookup::linear_table_t, 1010
Linearphase_FIR
ADM::Linearphase_FIR, 202
list_dir
mha_os.cpp, 1248
mha_os.h, 1251
load_io_lib
fw_t, 392
load_plug
MHAParser::mhapluginloader_t, 829
load_proc_lib
fw_t, 392
loader
latex_doc_t, 453
loadlib
analysispath_if_t, 232
local_address
io_tcp_parser_t, 439
local_get_entries

INDEX
MHAKernel::algo_comm_class_t, 728
local_get_var
MHAKernel::algo_comm_class_t, 728
local_insert_var
MHAKernel::algo_comm_class_t, 727
local_is_var
MHAKernel::algo_comm_class_t, 727
local_port
io_tcp_parser_t, 439
local_remove_ref
MHAKernel::algo_comm_class_t, 727
local_remove_var
MHAKernel::algo_comm_class_t, 727
locate_end
MHASignal::loop_wavefragment_t, 953
lock_channels
fw_vars_t, 398
lock_srate_fragsize
fw_vars_t, 397
locked
MHAParser::variable_t, 851
log_down
MHASignal::schroeder_t, 979
log_lambda_spec
timoConfig, 1165
log_lambda_spec_AC
timo_AC, 1156
log_up
MHASignal::schroeder_t, 978
logGLRFact
noisePowProposedScale::noisePow←Proposed, 1052
timoConfig, 1166
logfile
mhaserver_t, 927
logstring
mhaserver_t, 926
longmsg
MHA_Error, 524
lookup
MHATableLookup::linear_table_t, 1010
MHATableLookup::table_t, 1014
MHATableLookup::xy_table_t, 1017
loop_wavefragment_t
MHASignal::loop_wavefragment_t, 951
low_incl
MHAParser::range_var_t, 843
low_limit
MHAParser::range_var_t, 843
low_side_flat
MHAOvlFilter::band_descriptor_t, 736
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
low_thresh
acPooling_wave_config, 171
lower_threshold
acPooling_wave, 168
lp
DynComp::dc_afterburn_rt_t, 341
lp1i
coherence::cohflt_t, 263
lp1ltg
coherence::cohflt_t, 263
lp1r
coherence::cohflt_t, 262
lp_coeffs
adm_rtconfig_t, 212
lp_order
adm_if_t, 207
lpc, 454
∼lpc, 455
algo_name, 456
comp_each_iter, 457
lpc, 455
lpc_buffer_size, 456
lpc_order, 456
norm, 457
patchbay, 457
prepare, 455
process, 455
release, 456
shift, 456
update_cfg, 456
lpc.cpp, 1215
INSERT_PATCH, 1216
Levinson2, 1216
PATCH_VAR, 1216
lpc.h, 1216
lpc_bl_predictor, 457
∼lpc_bl_predictor, 458
lpc_bl_predictor, 458
lpc_order, 460
name_b, 460
name_f, 460
name_kappa, 460
name_lpc_b, 460
name_lpc_f, 460
patchbay, 460
prepare, 459
process, 459
release, 459
update_cfg, 459
lpc_bl_predictor.cpp, 1216
INSERT_PATCH, 1217
© 2005-2018 HörTech gGmbH, Oldenburg

1383
PATCH_VAR, 1217
lpc_bl_predictor.h, 1217
EPSILON, 1217
lpc_bl_predictor_config, 461
∼lpc_bl_predictor_config, 461
ac, 462
b_est, 462
backward, 462
f_est, 462
forward, 462
km, 463
lpc_bl_predictor_config, 461
lpc_order, 463
name_b, 463
name_f, 463
name_km, 463
process, 462
s_b, 463
s_f, 463
lpc_buffer_size
lpc, 456
lpc_config, 472
lpc_burg-lattice.cpp, 1217
INSERT_PATCH, 1218
PATCH_VAR, 1218
lpc_burg-lattice.h, 1218
EPSILON, 1218
lpc_burglattice, 464
∼lpc_burglattice, 465
lambda, 467
lpc_burglattice, 465
lpc_order, 466
name_b, 467
name_f, 467
name_kappa, 467
patchbay, 467
prepare, 466
process, 465
release, 466
update_cfg, 466
lpc_burglattice_config, 467
∼lpc_burglattice_config, 468
ac, 469
backward, 469
dm, 469
forward, 469
kappa, 469
kappa_block, 469
lambda, 469
lpc_burglattice_config, 468
lpc_order, 470

1384
name_b, 470
name_f, 470
nm, 469
process, 468
s_b, 470
s_f, 470
lpc_config, 470
∼lpc_config, 471
A, 473
comp_each_iter, 472
comp_iter, 473
corr_out, 473
insert, 472
inwave, 473
lpc_buffer_size, 472
lpc_config, 471
lpc_out, 473
N, 472
norm, 472
order, 472
process, 471
R, 473
sample, 473
shift, 472
lpc_order
lpc, 456
lpc_bl_predictor, 460
lpc_bl_predictor_config, 463
lpc_burglattice, 466
lpc_burglattice_config, 470
prediction_error, 1090
lpc_out
lpc_config, 473
ltgcomp
coherence::vars_t, 266
ltgtau
coherence::vars_t, 266
lval
MHAParser::expression_t, 795
m
dc_simple::dc_t::line_t, 305
matrixmixer::cfg_t, 475
M_PI
mha_defs.h, 1232
mha_signal.hh, 1277
m_alphas
ADM::Linearphase_FIR, 203
m_beta
ADM::ADM, 197
m_coeff
ADM::Delay, 200

INDEX
m_decomb
ADM::ADM, 197
m_delay_back
ADM::ADM, 197
m_delay_front
ADM::ADM, 197
m_fullsamples
ADM::Delay, 200
m_lp_bf
ADM::ADM, 197
m_lp_result
ADM::ADM, 197
m_mu_beta
ADM::ADM, 198
m_norm
ADM::Delay, 201
m_now
ADM::Linearphase_FIR, 204
m_now_in
ADM::Delay, 201
m_order
ADM::Linearphase_FIR, 203
m_output
ADM::Linearphase_FIR, 203
m_powerfilter_coeff
ADM::ADM, 198
m_powerfilter_norm
ADM::ADM, 198
m_powerfilter_state
ADM::ADM, 198
m_state
ADM::Delay, 201
MAX_LINE_LENGTH
mhamain.cpp, 1315
MAX_TCP_PORT_STR
MHAIOTCP.cpp, 1307
MAX_TCP_PORT
MHAIOTCP.cpp, 1307
MAX_USER_ERR
MHAIOFile.cpp, 1287
MHAIOJack.cpp, 1292
MHAIOParser.cpp, 1296
MHAIOPortAudio.cpp, 1301
MHAIOTCP.cpp, 1306
mhajack.h, 1314
MAX
mha_defs.h, 1233
MHA_AC::ac2matrix_helper_t, 478
ac, 479
ac2matrix_helper_t, 479
acvar, 480
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
getvar, 479
is_complex, 480
name, 480
size, 480
username, 480
MHA_AC::ac2matrix_t, 481
ac2matrix_t, 482
getname, 482
getusername, 482
insert, 482
update, 482
MHA_AC::acspace2matrix_t, 483
∼acspace2matrix_t, 484
acspace2matrix_t, 484
data, 487
frame, 486
frameno, 487
insert, 486
len, 487
operator=, 485
operator[], 485
size, 486
update, 486
MHA_AC::double_t, 487
∼double_t, 488
ac, 488
data, 488
double_t, 488
MHA_AC::float_t, 489
∼float_t, 489
ac, 490
data, 490
float_t, 489
MHA_AC::int_t, 490
∼int_t, 491
ac, 491
data, 491
int_t, 491
MHA_AC::spectrum_t, 492
∼spectrum_t, 493
ac, 494
insert, 493
name, 494
spectrum_t, 493
MHA_AC::stat_t, 494
insert, 495
mean, 495
stat_t, 495
std, 495
update, 495
MHA_AC::waveform_t, 496
© 2005-2018 HörTech gGmbH, Oldenburg

1385
∼waveform_t, 497
ac, 498
insert, 498
name, 498
waveform_t, 497
MHA_AC_CHAR
mha.h, 1224
MHA_AC_DOUBLE
mha.h, 1225
MHA_AC_FLOAT
mha.h, 1225
MHA_AC_INT
mha.h, 1224
MHA_AC_MHACOMPLEX
mha.h, 1225
MHA_AC_MHAREAL
mha.h, 1225
MHA_AC_UNKNOWN
mha.h, 1224
MHA_AC_USER
mha.h, 1225
MHA_AC_VEC_FLOAT
mha.h, 1225
MHA_AC, 96
MHA_CALLBACK_TEST_PREFIX
mha.h, 1222
MHA_CALLBACK_TEST
mha.h, 1222
MHA_DOMAIN_MAX
mha.h, 1224
MHA_DOMAIN_UNKNOWN
mha.h, 1224
MHA_EAR_LEFT
mha_defs.h, 1233
MHA_EAR_MAX
mha_defs.h, 1233
MHA_EAR_RIGHT
mha_defs.h, 1233
MHA_ERR_INVALID_HANDLE
mha_errno.h, 1235
MHA_ERR_NULL
mha_errno.h, 1235
MHA_ERR_SUCCESS
mha_errno.h, 1235
MHA_ERR_UNKNOWN
mha_errno.h, 1235
MHA_ERR_USER
mha_errno.h, 1236
MHA_ERR_VARFMT
mha_errno.h, 1236
MHA_ERR_VARRANGE

1386
mha_errno.h, 1235
MHA_Error, 522
∼MHA_Error, 523
get_longmsg, 523
get_msg, 523
longmsg, 524
MHA_Error, 522, 523
msg, 524
operator=, 523
what, 523
MHA_ErrorMsg
Error handling in the openMHA, 32
MHA_ErrorMsg2
MHAIOTCP.cpp, 1306
MHA_ErrorMsg3
MHAIOTCP.cpp, 1307
MHA_ID_MATRIX
mha_signal.cpp, 1268
MHA_ID_UINT_VECTOR
mha_signal.cpp, 1267
MHA_RELEASE_VERSION_STRING
mha.h, 1223
MHA_RESOLVE_CHECKED
mha_os.h, 1251
MHA_RESOLVE
mha_os.h, 1251
MHA_SPECTRUM
mha.h, 1224
MHA_STRUCT_SIZEMATCH
mha.h, 1223
MHA_STRF
mha.h, 1222
MHA_TCP::Async_Notify, 549
∼Async_Notify, 549
Async_Notify, 549
pipe, 550
reset, 550
set, 550
MHA_TCP::Client, 550
Client, 551
MHA_TCP::Connection, 552
∼Connection, 554
buffered_incoming_bytes, 559
buffered_outgoing_bytes, 559
can_read_bytes, 557
can_read_line, 557
can_sysread, 555
can_syswrite, 555
closed, 560
Connection, 554
eof, 557

INDEX
fd, 560
get_fd, 556
get_peer_address, 556
get_peer_port, 556
get_read_event, 556
get_write_event, 556
inbuf, 560
init_peer_data, 555
needs_write, 559
outbuf, 560
peer_addr, 560
read_bytes, 558
read_event, 560
read_line, 558
sysread, 555
syswrite, 555
try_write, 559
write, 559
write_event, 560
MHA_TCP::Event_Watcher, 561
∼Event_Watcher, 562
Events, 562
events, 563
ignore, 562
iterator, 562
observe, 562
wait, 563
MHA_TCP::OS_EVENT_TYPE, 563
fd, 564
mode, 564
timeout, 564
MHA_TCP::Server, 565
∼Server, 566
accept, 567
accept_event, 568
get_accept_event, 567
get_interface, 566
get_port, 566
iface, 568
initialize, 566
port, 568
Server, 565, 566
serversocket, 568
sock_addr, 567
try_accept, 567
MHA_TCP::Sockaccept_Event, 568
Sockaccept_Event, 569
MHA_TCP::Sockread_Event, 569
Sockread_Event, 570
MHA_TCP::Sockwrite_Event, 570
Sockwrite_Event, 571
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHA_TCP::Thread, 571
∼Thread, 574
arg, 574
error, 575
return_value, 575
run, 574
state, 575
thr_f, 572
Thread, 573
thread_arg, 575
thread_attr, 574
thread_finish_event, 575
thread_func, 575
thread_handle, 574
MHA_TCP::Timeout_Event, 576
end_time, 577
get_os_event, 577
Timeout_Event, 576
MHA_TCP::Timeout_Watcher, 577
∼Timeout_Watcher, 578
timeout, 578
Timeout_Watcher, 578
MHA_TCP::Wakeup_Event, 579
∼Wakeup_Event, 580
get_os_event, 581
ignored_by, 580
observed_by, 580
observers, 581
os_event, 581
os_event_valid, 582
reset, 581
status, 581
Wakeup_Event, 580
MHA_TCP, 98
dtime, 101
G_ERRNO, 101
H_ERRNO, 100
HSTRERROR, 100
N_ERRNO, 100
SOCKET, 100
STRERROR, 100
stime, 101
MHA_VERSION_BUILD
mha.h, 1223
MHA_VERSION_MAJOR
mha.h, 1222
MHA_VERSION_MINOR
mha.h, 1222
MHA_VERSION_RELEASE
mha.h, 1223
MHA_VERSION_STRING
© 2005-2018 HörTech gGmbH, Oldenburg

1387
mha.h, 1223
MHA_VERSION
mha.h, 1223
MHA_WAVEFORM
mha.h, 1224
MHA_XSTRF
mha.h, 1222
MHA_assert
Error handling in the openMHA, 34
MHA_assert_equal
Error handling in the openMHA, 34
MHADestroy_cb
PluginLoader::mhapluginloader_t, 1083
MHADestroy_t
mha.h, 1226
MHAEvents, 102
MHAEvents::connector_base_t, 597
∼connector_base_t, 598
connector_base_t, 598
emit_event, 598, 599
emitter_die, 599
emitter_is_alive, 599
MHAEvents::connector_t
∼connector_t, 601
connector_t, 600, 601
emit_event, 601, 602
emitter, 602
eventhandler, 602
eventhandler_s, 602
eventhandler_suu, 603
receiver, 602
MHAEvents::connector_t< receiver_t >, 600
MHAEvents::emitter_t, 603
∼emitter_t, 604
connect, 604
connections, 605
disconnect, 604
operator(), 604
MHAEvents::patchbay_t
∼patchbay_t, 606
connect, 606, 607
cons, 607
MHAEvents::patchbay_t< receiver_t >, 605
MHAFilter, 102
butter_stop_ord1, 105
gcd, 106
make_friendly_number, 104
o1_lp_coeffs, 104
resampling_factors, 106
sinc, 106
spec2fir, 105

1388

INDEX

MHAFilter::fftfilter_t, 622
MHAFilter::adapt_filter_param_t, 608
∼fftfilter_t, 623
adapt_filter_param_t, 608
channels, 626
err_in, 608
fft, 627
mu, 608
fftfilter_t, 623
MHAFilter::adapt_filter_state_t, 609
fftlen, 626
adapt_filter_state_t, 609
filter, 624, 625
filter, 609
fragsize, 625
nchannels, 610
sInput, 626
ntaps, 609
sWeights, 626
od, 610
update_coeffs, 624
oy, 610
wIRS_fft, 627
W, 610
wInput, 626
X, 610
wInput_fft, 626
MHAFilter::adapt_filter_t, 611
wOutput, 626
adapt_filter_t, 612
wOutput_fft, 626
connector, 613
MHAFilter::fftfilterbank_t, 627
err_in, 613
∼fftfilterbank_t, 629
filter, 612
fft, 632
mu, 612
fftfilterbank_t, 628
nchannels, 613
fftlen, 631
ntaps, 613
filter, 629, 630
set_channelcnt, 612
firchannels, 631
update_mu, 612
fragsize, 631
update_ntaps, 612
get_irs, 630
MHAFilter::blockprocessing_polyphase_←Hs, 631
resampling_t, 613
hw, 631
∼blockprocessing_polyphase_resampling←_t, 615
inputchannels, 631
blockprocessing_polyphase_resampling←outputchannels, 631
_t, 614
tail, 632
can_read, 616
update_coeffs, 629
fragsize_in, 616
Xs, 632
fragsize_out, 616
xw, 631
num_channels, 616
Ys, 632
read, 615
yw, 632
resampling, 616
yw_temp, 632
write, 615
MHAFilter::filter_t, 633
MHAFilter::complex_bandpass_t, 617
∼filter_t, 635
A_, 620
A, 637
B_, 620
B, 637
complex_bandpass_t, 618
channels, 637
creator_A, 618
filter, 635, 636
creator_B, 618
filter_t, 634, 635
filter, 619, 620
get_len_A, 636
get_weights, 619
get_len_B, 636
inspect, 620
len, 637
set_state, 618, 619
len_A, 637
set_weights, 619
len_B, 637
Yn, 620
state, 638
MHAFilter::diff_t, 621
MHAFilter::gamma_flt_t, 638
∼gamma_flt_t, 639
diff_t, 621
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
A, 641
bw_, 642
cf_, 642
delay, 642
envelope_delay, 642
gamma_flt_t, 639
get_A, 641
get_resynthesis_gain, 641
get_weights, 641
GF, 642
inspect, 641
operator(), 639, 640
phase_correction, 640
reset_state, 641
resynthesis_gain, 642
set_weights, 640
srate_, 642
MHAFilter::iir_filter_state_t, 643
iir_filter_state_t, 643
MHAFilter::iir_filter_t, 644
A, 647
B, 647
connector, 647
filter, 646
iir_filter_t, 645
nchannels, 647
resize, 646
update_filter, 647
MHAFilter::iir_ord1_real_t, 648
A_, 651
B_, 651
iir_ord1_real_t, 648, 649
operator(), 649, 650
set_state, 649
Yn, 651
MHAFilter::o1_ar_filter_t, 651
c1_a, 654
c1_r, 654
c2_a, 654
c2_r, 655
fs, 655
o1_ar_filter_t, 652
operator(), 653, 654
set_tau_attack, 653
set_tau_release, 653
MHAFilter::o1flt_lowpass_t, 655
get_c1, 657
get_last_output, 657
o1flt_lowpass_t, 656
set_tau, 656, 657
MHAFilter::o1flt_maxtrack_t, 658
© 2005-2018 HörTech gGmbH, Oldenburg

1389
o1flt_maxtrack_t, 659
set_tau, 659
MHAFilter::o1flt_mintrack_t, 660
o1flt_mintrack_t, 661
set_tau, 661
MHAFilter::partitioned_convolution_t, 661
∼partitioned_convolution_t, 663
bookkeeping, 665
current_input_signal_buffer_half_index,
665
current_output_partition_index, 666
fft, 666
filter_partitions, 664
fragsize, 664
frequency_response, 665
input_signal_spec, 665
input_signal_wave, 665
nchannels_in, 664
nchannels_out, 664
output_partitions, 664
output_signal_spec, 665
output_signal_wave, 666
partitioned_convolution_t, 663
process, 663
MHAFilter::partitioned_convolution_t::index←_t, 666
delay, 668
index_t, 667
source_channel_index, 668
target_channel_index, 668
MHAFilter::polyphase_resampling_t, 668
downsampling_factor, 672
impulse_response, 673
now_index, 672
polyphase_resampling_t, 670
read, 671
readable_frames, 671
ringbuffer, 673
underflow, 672
upsampling_factor, 672
write, 671
MHAFilter::resampling_filter_t, 673
fragsize, 675
fragsize_validator, 675
resampling_filter_t, 674
MHAFilter::smoothspec_t, 675
_linphase_asym, 679
∼smoothspec_t, 677
fft, 679
fftlen, 678
internal_fir, 678

1390
minphase, 679
nchannels, 678
smoothspec, 677
smoothspec_t, 676
spec2fir, 677
tmp_spec, 679
tmp_wave, 678
window, 678
MHAFilter::thirdoctave_analyzer_t, 679
bw_generator, 681
cf, 681
cf_generator, 681
cfg_, 681
dup, 681
fb, 681
get_cf_hz, 680
nbands, 680
nchannels, 680
out_chunk, 681
out_chunk_im, 682
process, 680
thirdoctave_analyzer_t, 680
MHAFilter::transfer_function_t, 682
impulse_response, 685
isempty, 684
non_empty_partitions, 684
partitions, 683
source_channel_index, 685
target_channel_index, 685
transfer_function_t, 683
MHAFilter::transfer_matrix_t, 685
non_empty_partitions, 686
partitions, 686
MHAGetVersion_cb
PluginLoader::mhapluginloader_t, 1083
MHAGetVersion_t
mha.h, 1226
MHAIOFile.cpp, 1286
DEBUG, 1287
dummy_interface_test, 1288, 1290
ERR_IHANDLE, 1287
ERR_SUCCESS, 1287
ERR_USER, 1287
IODestroy, 1288, 1290
IOInit, 1287, 1288
IOPrepare, 1287, 1289
IORelease, 1288, 1289
IOSetVar, 1288, 1289
IOStart, 1287, 1289
IOStop, 1288, 1289
IOStrError, 1288, 1290

INDEX
MAX_USER_ERR, 1287
user_err_msg, 1290
MHAIOJack, 107
MHAIOJack.cpp, 1290
dummy_interface_test, 1293, 1295
ERR_IHANDLE, 1292
ERR_SUCCESS, 1291
ERR_USER, 1292
IODestroy, 1293, 1294
IOInit, 1292, 1293
IOPrepare, 1292, 1293
IORelease, 1292, 1294
IOSetVar, 1293, 1294
IOStart, 1292, 1294
IOStop, 1292, 1294
IOStrError, 1293, 1294
MAX_USER_ERR, 1292
user_err_msg, 1295
MHAIOJack::io_jack_t, 686
clientname, 690
connections_in, 691
connections_out, 691
delays_in, 691
delays_out, 691
fw_fragsize, 690
fw_samplerate, 690
get_all_input_ports, 689
get_all_output_ports, 689
get_delays_in, 689
get_delays_out, 689
get_physical_input_ports, 689
get_physical_output_ports, 689
io_jack_t, 688
patchbay, 693
portnames_in, 691
portnames_out, 691
ports_in_all, 692
ports_in_physical, 691
ports_out_all, 692
ports_out_physical, 691
ports_parser, 692
prepare, 688
read_get_cpu_load, 690
read_get_scheduler, 690
read_get_xruns, 690
reconnect_inports, 688
reconnect_outports, 689
release, 688
servername, 690
state_cpuload, 692
state_parser, 692
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
state_priority, 692
state_scheduler, 692
state_xruns, 692
MHAIOParser.cpp, 1295
dummy_interface_test, 1297, 1299
ERR_IHANDLE, 1296
ERR_SUCCESS, 1296
ERR_USER, 1296
IODestroy, 1297, 1299
IOInit, 1296, 1298
IOPrepare, 1297, 1298
IORelease, 1297, 1298
IOSetVar, 1297, 1299
IOStart, 1297, 1298
IOStop, 1297, 1298
IOStrError, 1297, 1299
MAX_USER_ERR, 1296
user_err_msg, 1299
MHAIOPortAudio, 107
parserFriendlyName, 107
MHAIOPortAudio.cpp, 1300
dummy_interface_test, 1302, 1304
ERR_IHANDLE, 1301
ERR_SUCCESS, 1301
ERR_USER, 1301
IODestroy, 1302, 1304
IOInit, 1301, 1303
IOPrepare, 1301, 1303
IORelease, 1302, 1303
IOSetVar, 1302, 1304
IOStart, 1301, 1303
IOStop, 1302, 1303
IOStrError, 1302, 1304
MAX_USER_ERR, 1301
portaudio_callback, 1302, 1304
user_err_msg, 1304
MHAIOPortAudio::device_info_t, 693
defaultHighInputLatency, 695
defaultHighOutputLatency, 695
defaultLowInputLatency, 695
defaultLowOutputLatency, 695
defaultSampleRate, 696
device_info_t, 694
fill_info, 694
hostApi, 695
maxInputChannels, 695
maxOutputChannels, 695
name, 695
numDevices, 694
structVersion, 694
MHAIOPortAudio::io_portaudio_t, 696
© 2005-2018 HörTech gGmbH, Oldenburg

1391
∼io_portaudio_t, 697
cmd_prepare, 698
cmd_release, 698
cmd_start, 698
cmd_stop, 698
device_index, 701
device_index_updated, 698
device_info, 699
device_name, 701
device_name_updated, 698
fragsize, 700
io_portaudio_t, 697
nchannels_in, 699
nchannels_out, 699
patchbay, 701
portaudio_callback, 698
portaudio_stream, 700
proc_event, 700
proc_handle, 700
s_in, 699
s_out, 699
samplerate, 699
start_event, 700
start_handle, 700
stop_event, 700
stop_handle, 700
MHAIOTCP.cpp, 1305
copy_error, 1309
dummy_interface_test, 1308, 1310
ERR_IHANDLE, 1306
ERR_SUCCESS, 1306
ERR_USER, 1306
IODestroy, 1308, 1310
IOInit, 1307, 1309
IOPrepare, 1307, 1309
IORelease, 1308, 1310
IOSetVar, 1308, 1310
IOStart, 1308, 1309
IOStop, 1308, 1309
IOStrError, 1308, 1310
MAX_TCP_PORT_STR, 1307
MAX_TCP_PORT, 1307
MAX_USER_ERR, 1306
MHA_ErrorMsg2, 1306
MHA_ErrorMsg3, 1307
MIN_TCP_PORT_STR, 1307
MIN_TCP_PORT, 1307
thread_startup_function, 1309
user_err_msg, 1310
MHAInit_cb
PluginLoader::mhapluginloader_t, 1083

1392
MHAInit_t
mha.h, 1226
MHAJACK_FW_STARTED
mhajack.h, 1313
MHAJACK_STARTING
mhajack.h, 1313
MHAJACK_STOPPED
mhajack.h, 1313
MHAJack, 108
get_port_capture_latency, 109
get_port_capture_latency_int, 109
get_port_playback_latency, 110
get_port_playback_latency_int, 110
io, 109
MHAJack::client_avg_t, 701
b_ready, 705
b_stopped, 704
client_avg_t, 702
frag_out, 705
IOStoppedEvent, 703, 704
io, 703
n, 705
name, 705
nrep, 705
pos, 704
proc, 703, 704
sn_in, 704
sn_out, 704
MHAJack::client_noncont_t, 706
b_stopped, 708
client_noncont_t, 707
frag_out, 709
IOStoppedEvent, 707, 708
io, 707
name, 709
pos, 708
proc, 707, 708
sn_in, 708
sn_out, 708
MHAJack::client_t, 709
b_prepared, 719
client_t, 711
connect_input, 713
connect_output, 713
fail_on_async_jackerror, 719
flags, 719
fragsize, 717
get_cpu_load, 715
get_fragsize, 713
get_my_input_ports, 714
get_my_output_ports, 714

INDEX
get_ports, 714
get_srate, 713
get_xruns, 713
get_xruns_reset, 714
inch, 718
input_portnames, 719
internal_start, 715
internal_stop, 716
jack_proc_cb, 716
jack_xrun_cb, 716
jc, 718
jstate_prev, 719
nchannels_in, 717
nchannels_out, 717
num_xruns, 717
outch, 718
output_portnames, 719
prepare, 712
prepare_impl, 715
proc_event, 717
proc_handle, 717
release, 712
s_in, 718
s_out, 718
samplerate, 717
set_input_portnames, 714
set_output_portnames, 715
set_use_jack_transport, 715
start, 713
start_event, 717
start_handle, 718
stop, 713
stop_event, 718
stop_handle, 718
stopped, 716
str_error, 714
use_jack_transport, 719
MHAJack::port_t, 720
∼port_t, 721
connect_to, 722
dir_t, 720
dir_type, 723
get_short_name, 723
iob, 723
jc, 723
mute, 722
port, 723
port_t, 721
read, 722
write, 722
MHAKernel, 110
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
algo_comm_safe_cast, 111
MHAKernel::algo_comm_class_t, 724
∼algo_comm_class_t, 725
ac, 728
algo_comm_class_t, 725
algo_comm_id_string, 728
algo_comm_id_string_len, 728
get_c_handle, 725
get_entries, 727
get_error, 727
get_var, 726
get_var_float, 726
get_var_int, 726
insert_var, 725
insert_var_float, 725
insert_var_int, 725
is_var, 726
local_get_entries, 728
local_get_var, 728
local_insert_var, 727
local_is_var, 727
local_remove_ref, 727
local_remove_var, 727
remove_ref, 726
remove_var, 726
size, 728
vars, 728
MHAKernel::comm_var_map_t, 729
has_key, 729
MHAMultiSrc, 111
MHAMultiSrc::base_t, 729
ac, 731
base_t, 730
select_source, 730
MHAMultiSrc::channel_t, 731
channel, 731
name, 731
MHAMultiSrc::channels_t, 732
channels_t, 732
MHAMultiSrc::spectrum_t, 733
spectrum_t, 733
update, 734
MHAMultiSrc::waveform_t, 734
update, 735
waveform_t, 735
MHAOvlFilter, 111
scale_fun_t, 112
MHAOvlFilter::FreqScaleFun, 113
hz2bark, 114
hz2bark_analytic, 115
hz2erb, 115
© 2005-2018 HörTech gGmbH, Oldenburg

1393
hz2erb_glasberg1990, 115
hz2hz, 114
hz2khz, 114
hz2log, 115
hz2octave, 114
hz2third_octave, 114
inv_scale, 116
MHAOvlFilter::ShapeFun, 116
expflt, 118
gauss, 118
hann, 117
linear, 117
rect, 116
MHAOvlFilter::band_descriptor_t, 736
cf, 736
cf_h, 736
cf_l, 736
ef_h, 736
ef_l, 736
high_side_flat, 737
low_side_flat, 736
MHAOvlFilter::barkscale, 112
vbark, 113
vfreq, 113
MHAOvlFilter::barkscale::bark2hz_t, 737
∼bark2hz_t, 738
bark2hz_t, 737
MHAOvlFilter::barkscale::hz2bark_t, 738
∼hz2bark_t, 739
hz2bark_t, 738
MHAOvlFilter::fftfb_ac_info_t, 739
bwv, 740
cLTASS, 740
cfv, 740
efv, 740
fftfb_ac_info_t, 739
insert, 740
MHAOvlFilter::fftfb_t, 741
∼fftfb_t, 742
apply_gains, 742
bin1, 743
bin2, 743
fftfb_t, 742
fftlen, 744
get_fbpower, 742
get_fbpower_db, 742
get_fftlen, 743
get_ltass_gain_db, 743
samplingrate, 744
shape, 744
vbin1, 744

1394
vbin2, 744
w, 743
MHAOvlFilter::fftfb_vars_t, 745
cLTASS, 748
cf, 747
ef, 748
f, 747
fail_on_nonmonotonic, 747
fail_on_unique_bins, 747
fftfb_vars_t, 746
fscale, 746
ftype, 747
normalize, 747
ovltype, 746
plateau, 746
shapes, 748
MHAOvlFilter::fscale_bw_t, 748
bw, 750
bw_hz, 750
fscale_bw_t, 749
get_bw_hz, 749
update_hz, 749
updater, 750
MHAOvlFilter::fscale_t, 750
f, 752
f_hz, 752
fscale_t, 751
get_f_hz, 751
unit, 751
update_hz, 751
updater, 752
MHAOvlFilter::fspacing_t, 752
bands, 755
cf2bands, 755
ef2bands, 755
equidist2bands, 755
fail_on_nonmonotonic_cf, 754
fail_on_unique_fftbins, 754
fs_, 755
fspacing_t, 753
get_cf_fftbin, 754
get_cf_hz, 754
get_ef_hz, 754
nbands, 754
nfft_, 755
symmetry_scale, 755
MHAOvlFilter::overlap_save_filterbank_←analytic_t, 756
filter_analytic, 757
imagfb, 757
overlap_save_filterbank_analytic_t, 757

INDEX
MHAOvlFilter::overlap_save_filterbank_t, 758
channelconfig_out_, 759
get_channelconfig, 759
overlap_save_filterbank_t, 759
MHAOvlFilter::overlap_save_filterbank_t←::vars_t, 760
fftlen, 760
irswnd, 761
phasemodel, 761
vars_t, 760
MHAOvlFilter::scale_var_t, 761
add_fun, 762
funs, 763
get_fun, 762
get_name, 762
hz2unit, 763
names, 763
scale_var_t, 762
unit2hz, 763
MHAPLATFORM
mha_parser.cpp, 1253
MHAPLUGIN_CALLBACKS_PREFIX
The openMHA Plugins (programming interface), 8
MHAPLUGIN_CALLBACKS
The openMHA Plugins (programming interface), 8
MHAPLUGIN_DOCUMENTATION_PREFIX
mha_plugin.hh, 1261
MHAPLUGIN_DOCUMENTATION
The openMHA Plugins (programming interface), 9
MHAPLUGIN_INIT_CALLBACKS_PREFIX
mha_plugin.hh, 1261
MHAPLUGIN_INIT_CALLBACKS
mha_plugin.hh, 1261
MHAPLUGIN_OVERLOAD_OUTDOMAIN
altplugs.cpp, 1198
mha_generic_chain.h, 1245
split.cpp, 1331
wave2spec.cpp, 1336
MHAPLUGIN_PROC_CALLBACK_PREFIX
mha_plugin.hh, 1260
MHAPLUGIN_PROC_CALLBACK
mha_plugin.hh, 1261
MHAParser, 118
all_dump, 123
all_ids, 123
c_parse_cmd_t, 122
c_parse_err_t, 122
cfg_dump, 122
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
cfg_dump_short, 122
commentate, 122
entry_map_t, 121
envreplace, 124
get_precision, 122
mon_dump, 123
opact_map_t, 121
opact_t, 121
query_map_t, 121
query_t, 121
strreplace, 123
trim, 122
MHAParser::StrCnv, 124
bracket_balance, 126
num_brackets, 125
str2val, 126, 127
str2val< mha_real_t >, 127
val2str, 127–130
MHAParser::base_t, 764
∼base_t, 767
activate_query, 773
add_parent_on_insert, 773
add_replace_pair, 774
base_t, 767
data_is_initialized, 775
fullname, 773
help, 775
id_str, 775
nested_lock, 776
notify, 773
op_query, 769
op_setval, 769
op_subparse, 768
operators, 775
oplist, 774
parent, 776
parse, 767, 768
prereadaccess, 775
queries, 775
query_addsubst, 772
query_cmds, 772
query_dump, 769
query_entries, 769
query_help, 772
query_id, 772
query_listids, 771
query_perm, 769
query_range, 770
query_readfile, 770
query_savefile, 771
query_savefile_compact, 771
© 2005-2018 HörTech gGmbH, Oldenburg

1395
query_savemons, 771
query_subst, 772
query_type, 770
query_val, 770
query_version, 771
readaccess, 774
repl_list, 776
repl_list_t, 767
rm_parent_on_remove, 773
set_help, 773
set_node_id, 772
thefullname, 776
valuechanged, 774
writeaccess, 774
MHAParser::base_t::replace_t, 776
a, 777
b, 777
get_a, 777
get_b, 777
replace, 777
replace_t, 777
MHAParser::bool_mon_t, 778
bool_mon_t, 779
data, 780
query_type, 779
query_val, 779
MHAParser::bool_t, 780
bool_t, 781
data, 782
op_setval, 781
query_type, 782
query_val, 782
MHAParser::c_ifc_parser_t, 783
∼c_ifc_parser_t, 784
c_ifc_parser_t, 784
c_parse_cmd, 785
c_parse_err, 785
libdata, 786
liberr, 786
modulename, 785
op_query, 785
op_setval, 785
op_subparse, 784
ret_size, 786
retv, 786
set_parse_cb, 784
test_error, 785
MHAParser::commit_t
commit_t, 788
extern_connector, 788
MHAParser::commit_t< receiver_t >, 787

1396
MHAParser::complex_mon_t, 788
complex_mon_t, 789
data, 790
query_type, 790
query_val, 789
MHAParser::complex_t, 790
complex_t, 792
data, 792
op_setval, 792
query_type, 792
query_val, 792
MHAParser::entry_t, 793
entry, 793
entry_t, 793
name, 793
MHAParser::expression_t, 794
expression_t, 794
lval, 795
op, 795
rval, 795
MHAParser::float_mon_t, 795
data, 797
float_mon_t, 796
query_type, 797
query_val, 796
MHAParser::float_t, 797
data, 800
float_t, 799
op_setval, 799
query_type, 799
query_val, 800
MHAParser::int_mon_t, 800
data, 802
int_mon_t, 801
query_type, 802
query_val, 802
MHAParser::int_t, 803
data, 805
int_t, 804
op_setval, 804
query_type, 805
query_val, 805
MHAParser::keyword_list_t, 805
add_entry, 808
empty_string, 809
entries, 809
get_entries, 808
get_index, 808
get_value, 808
index, 809
keyword_list_t, 807

INDEX
set_entries, 807
set_index, 808
set_value, 807
size_t, 806
validate, 808
MHAParser::kw_t, 810
data, 813
isval, 812
kw_t, 811
op_setval, 812
query_range, 812
query_type, 813
query_val, 813
set_range, 812
validate, 812
MHAParser::mcomplex_mon_t, 814
data, 815
mcomplex_mon_t, 815
query_type, 815
query_val, 815
MHAParser::mcomplex_t, 816
data, 818
mcomplex_t, 817
op_setval, 817
query_type, 817
query_val, 818
MHAParser::mfloat_mon_t, 818
data, 820
mfloat_mon_t, 819
query_type, 820
query_val, 819
MHAParser::mfloat_t, 820
data, 823
mfloat_t, 822
op_setval, 822
query_type, 822
query_val, 823
MHAParser::mhaconfig_mon_t, 823
channels, 825
domain, 825
fftlen, 825
fragsize, 825
mhaconfig_mon_t, 824
srate, 825
update, 824
wndlen, 825
MHAParser::mhapluginloader_t, 826
∼mhapluginloader_t, 827
ac_, 830
bookkeeping, 830
cf_in_, 830
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
cf_out_, 830
connector, 830
get_cfin, 828
get_cfout, 829
get_last_name, 829
last_name, 830
load_plug, 829
mhapluginloader_t, 827
parent_, 829
plug, 829
plugname, 829
plugname_name_, 830
prefix_, 829
prepare, 827
process, 828
release, 828
MHAParser::monitor_t, 831
monitor_t, 832
op_query, 832
query_dump, 832
query_perm, 832
MHAParser::parser_t, 833
∼parser_t, 835
entries, 839
force_remove_item, 836
id_string, 839
insert_item, 835
last_errormsg, 839
op_query, 837
op_setval, 836
op_subparse, 836
parser_t, 834
query_dump, 837
query_entries, 837
query_listids, 838
query_readfile, 837
query_savefile, 838
query_savefile_compact, 838
query_savemons, 838
query_type, 837
query_val, 838
remove_item, 835, 836
set_id_string, 839
srcfile, 839
srcline, 839
MHAParser::range_var_t, 840
check_low, 844
check_range, 844
check_up, 844
low_incl, 843
low_limit, 843
© 2005-2018 HörTech gGmbH, Oldenburg

1397
query_range, 841
range_var_t, 841
set_range, 842
up_incl, 844
up_limit, 843
validate, 842, 843
MHAParser::string_mon_t, 845
data, 846
query_type, 846
query_val, 846
string_mon_t, 846
MHAParser::string_t, 847
data, 849
op_setval, 848
query_type, 848
query_val, 849
string_t, 848
MHAParser::variable_t, 849
locked, 851
op_setval, 850
query_perm, 850
setlock, 851
variable_t, 850
MHAParser::vcomplex_mon_t, 851
data, 854
query_type, 854
query_val, 854
vcomplex_mon_t, 852
MHAParser::vcomplex_t, 855
data, 857
op_setval, 856
query_type, 856
query_val, 856
vcomplex_t, 856
MHAParser::vfloat_mon_t, 857
data, 859
query_type, 858
query_val, 858
vfloat_mon_t, 858
MHAParser::vfloat_t, 859
data, 861
op_setval, 861
query_type, 861
query_val, 861
vfloat_t, 860
MHAParser::vint_mon_t, 862
data, 863
query_type, 863
query_val, 863
vint_mon_t, 863
MHAParser::vint_t, 864

1398
data, 866
op_setval, 865
query_type, 866
query_val, 866
vint_t, 865
MHAParser::vstring_mon_t, 867
data, 868
query_type, 868
query_val, 868
vstring_mon_t, 868
MHAParser::vstring_t, 869
data, 871
op_setval, 870
query_type, 870
query_val, 870
vstring_t, 870
MHAParser::window_t, 871
get_type, 874
get_window, 873, 874
user, 875
window_t, 873
wtype, 875
wtype_t, 873
MHAPlugin, 130
MHAPlugin::cfg_chain_t
∼cfg_chain_t, 876
cfg_chain_t, 876
data, 877
next, 877
not_in_use, 877
MHAPlugin::cfg_chain_t< runtime_cfg_t >,
876
MHAPlugin::config_t
∼config_t, 879
cfg, 881
cfg_chain, 881
cfg_chain_current, 882
cleanup_unused_cfg, 881
config_t, 879
last_config, 880
poll_config, 880
push_config, 880
remove_all_cfg, 881
MHAPlugin::config_t< runtime_cfg_t >, 877
MHAPlugin::plugin_t
∼plugin_t, 884
ac, 886
input_cfg, 886
input_cfg_, 887
is_prepared, 885
is_prepared_, 887

INDEX
mhaconfig_in, 887
mhaconfig_out, 887
output_cfg, 886
output_cfg_, 887
plugin_t, 883
prepare, 884
prepare_, 885
release, 885
release_, 885
tftype, 886
MHAPlugin::plugin_t< runtime_cfg_t >, 882
MHAPlugin_Resampling, 130
MHAPlugin_Resampling::resampling_if_←t, 888
algo, 890
chain, 890
fragsize, 890
irslen_inner2outer, 890
irslen_outer2inner, 890
nyquist_ratio, 890
plugloader, 890
prepare, 889
process, 889
release, 889
resampling_if_t, 889
srate, 889
MHAPlugin_Resampling::resampling_t, 891
inner2outer_resampling, 893
inner_fragsize, 892
inner_signal, 893
inner_srate, 892
nchannels_in, 892
nchannels_out, 892
outer2inner_resampling, 893
outer_fragsize, 892
outer_srate, 892
output_signal, 893
plugloader, 893
process, 892
resampling_t, 891
MHAPlugin_Split, 131
MHAPlugin_Split::domain_handler_t, 894
∼domain_handler_t, 895
deallocate_domains, 896
domain_handler_t, 895
get_signal, 898
operator=, 896
process, 899
processor, 900
put_signal, 897
set_input_domain, 896
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
set_output_domain, 896
spec_in, 899
spec_out, 899
wave_in, 899
wave_out, 899
MHAPlugin_Split::dummy_threads_t, 900
catch_thread, 901
dummy_threads_t, 901
kick_thread, 901
MHAPlugin_Split::posix_threads_t, 902
∼posix_threads_t, 904
attr, 905
catch_condition, 905
catch_thread, 904
current_thread_priority, 905
current_thread_scheduler, 905
kick_condition, 905
kick_thread, 904
kicked, 906
main, 904
mutex, 905
posix_threads_t, 903
priority, 906
processing_done, 906
scheduler, 906
termination_request, 906
thread, 906
thread_start, 904
MHAPlugin_Split::split_t, 907
∼split_t, 909
algos, 911
chains, 913
channels, 912
clear_chains, 910
collect_result, 911
copy_output_spec, 910
copy_output_wave, 910
delay, 913
framework_thread_priority, 912
framework_thread_scheduler, 912
patchbay, 911
prepare_, 909
process, 910
release_, 909
signal_out, 911
spec_out, 913
split_t, 909
thread_platform, 912
trigger_processing, 910
update, 910
wave_out, 913
© 2005-2018 HörTech gGmbH, Oldenburg

1399
worker_thread_priority, 912
worker_thread_scheduler, 912
MHAPlugin_Split::splitted_part_t, 914
∼splitted_part_t, 916
collect_result, 918
domain, 919
operator=, 916
parse, 917
plug, 918
prepare, 916
release, 917
splitted_part_t, 915, 916
thread, 919
trigger_processing, 917
MHAPlugin_Split::thread_platform_t, 919
∼thread_platform_t, 921
catch_thread, 921
kick_thread, 921
operator=, 921
processor, 922
thread_platform_t, 920
MHAPlugin_Split::uni_processor_t, 922
∼uni_processor_t, 923
process, 923
MHAPluginCategory_t
mha.h, 1227
MHAPluginDocumentation_t
mha.h, 1227
MHAPrepare_cb
PluginLoader::mhapluginloader_t, 1083
MHAPrepare_t
mha.h, 1226
MHAProc_spec2spec_cb
PluginLoader::mhapluginloader_t, 1083
MHAProc_spec2spec_t
mha.h, 1227
MHAProc_spec2wave_cb
PluginLoader::mhapluginloader_t, 1084
MHAProc_spec2wave_t
mha.h, 1227
MHAProc_wave2spec_cb
PluginLoader::mhapluginloader_t, 1084
MHAProc_wave2spec_t
mha.h, 1227
MHAProc_wave2wave_cb
PluginLoader::mhapluginloader_t, 1083
MHAProc_wave2wave_t
mha.h, 1227
MHARelease_cb
PluginLoader::mhapluginloader_t, 1083
MHARelease_t

1400
mha.h, 1226
MHASet_cb
PluginLoader::mhapluginloader_t, 1084
MHASet_t
mha.h, 1226
MHASignal, 132
copy_permuted, 139
kth_smallest, 135
limit, 135
mean, 137
median, 136
quantile, 137
saveas_mat4, 138, 139
scale, 135
signal_counter, 139
MHASignal::async_rmslevel_t, 928
async_rmslevel_t, 929
filled, 930
peaklevel, 929
pos, 930
process, 929
rmslevel, 929
MHASignal::delay_spec_t, 930
∼delay_spec_t, 931
buffer, 931
delay, 931
delay_spec_t, 931
pos, 931
process, 931
MHASignal::delay_t, 932
∼delay_t, 933
buffer, 934
channels, 934
delay_t, 933
delays, 934
inspect, 934
pos, 934
process, 933
MHASignal::delay_wave_t, 934
∼delay_wave_t, 935
buffer, 936
delay, 936
delay_wave_t, 935
pos, 936
process, 935
MHASignal::doublebuffer_t, 936
∼doublebuffer_t, 938
ch, 940
doublebuffer_t, 937
inner_in, 939
inner_out, 939

INDEX
inner_process, 938
k_inner, 939
k_outer, 940
min, 939
outer_out, 939
outer_process, 938
this_outer_out, 939
MHASignal::fft_t, 940
∼fft_t, 941
backward, 942
backward_scale, 943
buf_in, 944
buf_out, 944
fft_t, 941
fftw_plan_fft, 944
fftw_plan_ifft, 945
fftw_plan_spec2wave, 944
fftw_plan_wave2spec, 944
forward, 942
forward_scale, 943
n_im, 944
n_re, 944
nfft, 943
scale, 944
sort_fftw2spec, 943
sort_spec2fftw, 943
spec2wave, 941, 942
spec2wave_scale, 942
wave2spec, 941
wave2spec_scale, 942
MHASignal::hilbert_fftw_t, 945
buf_c_in, 946
buf_c_out, 947
buf_r_in, 946
buf_r_out, 946
hilbert, 946
hilbert_fftw_t, 945
n, 946
p1, 946
p2, 946
sc, 947
MHASignal::hilbert_t, 947
∼hilbert_t, 948
h, 949
hilbert_t, 948
operator(), 948
MHASignal::loop_wavefragment_t, 949
b_loop, 954
get_mapping, 952
intern_level, 954
is_playback_active, 953
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
level_mode_t, 950
locate_end, 953
loop_wavefragment_t, 951
playback, 952, 953
playback_channels, 954
playback_mode_t, 951
pos, 954
rewind, 953
set_level_db, 953
set_level_lin, 953
MHASignal::matrix_t, 954
∼matrix_t, 959
cdata, 966
complex_ofs, 966
dimension, 960
get_cdata, 966
get_comm_var, 960
get_index, 965
get_nelements, 960
get_nreals, 965
get_rdata, 965
imag, 961–964
is_same_size, 961
iscomplex, 961
matrix_t, 956, 958
nelements, 966
numbytes, 965
operator(), 962–964
operator=, 959
rdata, 966
real, 961–964
size, 960
write, 965
MHASignal::minphase_t, 967
minphase_t, 968
operator(), 968
phase, 968
MHASignal::quantizer_t, 969
downscale, 970
limit, 970
operator(), 969
quantizer_t, 969
up_limit, 970
upscale, 970
MHASignal::ringbuffer_t, 971
contained_frames, 973
discard, 973
next_read_frame_index, 974
next_write_frame_index, 974
ringbuffer_t, 972
value, 973
© 2005-2018 HörTech gGmbH, Oldenburg

1401
write, 974
MHASignal::schroeder_t, 975
groupdelay_t, 976
identity, 978
log_down, 979
log_up, 978
schroeder_t, 977, 978
sign_t, 977
MHASignal::spectrum_t, 979
∼spectrum_t, 981
copy, 982
copy_channel, 983
export_to, 983
operator(), 981
operator[], 982
scale, 983
scale_channel, 984
spectrum_t, 980, 981
value, 982
MHASignal::stat_t, 985
mean, 985
mean_std, 986
n, 986
push, 986
stat_t, 985
sum, 986
sum2, 986
MHASignal::subsample_delay_t, 987
last_complex_bin, 989
phase_gains, 988
process, 988
subsample_delay_t, 987
MHASignal::uint_vector_t, 989
∼uint_vector_t, 991
data, 993
get_length, 992
getdata, 993
length, 993
numbytes, 992
operator=, 991
operator==, 991
operator[], 992
uint_vector_t, 990, 991
write, 992
MHASignal::waveform_t, 993
∼waveform_t, 996
assign, 1001
assign_channel, 1002
assign_frame, 1001
copy, 1002
copy_channel, 1003

1402
copy_from_at, 1003
export_to, 1003
get_size, 1006
limit, 1004
operator(), 998
operator=, 997
operator[], 997
power, 1004
powspec, 1004
scale, 1005
scale_channel, 1005
scale_frame, 1006
sum, 999, 1000
sum_channel, 1000
sumsqr, 1000
value, 997, 998
waveform_t, 995, 996
MHASndFile, 140
MHASndFile::sf_t, 1006
∼sf_t, 1007
sf, 1007
sf_t, 1007
MHASndFile::sf_wave_t, 1007
sf_wave_t, 1008
MHAStrError_cb
PluginLoader::mhapluginloader_t, 1084
MHAStrError_t
mha.h, 1226
MHATableLookup, 140
MHATableLookup::linear_table_t, 1008
∼linear_table_t, 1010
add_entry, 1011
clear, 1012
interp, 1010
len, 1012
linear_table_t, 1010
lookup, 1010
prepare, 1011
scalefac, 1013
set_xmax, 1011
set_xmin, 1011
vec_y, 1012
vy, 1012
xmax, 1013
xmin, 1013
MHATableLookup::table_t, 1013
∼table_t, 1014
clear, 1015
interp, 1014
lookup, 1014
table_t, 1014

INDEX
MHATableLookup::xy_table_t, 1015
add_entry, 1018
clear, 1018
get_xlimits, 1019
interp, 1017
lookup, 1017
mXY, 1020
set_xfun, 1018
set_xyfun, 1019
set_yfun, 1019
xfun, 1020
xy_table_t, 1017
xyfun, 1020
yfun, 1020
MHAWindow, 140
bartlett, 142
blackman, 142
hamming, 142
hanning, 142
rect, 141
MHAWindow::bartlett_t, 1020
bartlett_t, 1021
MHAWindow::base_t, 1022
base_t, 1022, 1023
operator(), 1023
ramp_begin, 1023
ramp_end, 1023
MHAWindow::blackman_t, 1024
blackman_t, 1025
MHAWindow::fun_t, 1025
fun_t, 1026
MHAWindow::hamming_t, 1026
hamming_t, 1027
MHAWindow::hanning_t, 1028
hanning_t, 1028
MHAWindow::rect_t, 1029
rect_t, 1030
MHAWindow::user_t, 1030
user_t, 1031
MIN_TCP_PORT_STR
MHAIOTCP.cpp, 1307
MIN_TCP_PORT
MHAIOTCP.cpp, 1307
MIN
mha_defs.h, 1232
mXY
MHATableLookup::xy_table_t, 1020
main
analysemhaplugin.cpp, 1199
browsemhaplugins.cpp, 1201
generatemhaplugindoc.cpp, 1213
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHAPlugin_Split::posix_threads_t, 904
mha.cpp, 1219
testalsadevice.c, 1332
make_friendly_number
MHAFilter, 104
mhajack.cpp, 1311
make_friendly_number_by_limiting
nlms_wave.cpp, 1320
prediction_error.cpp, 1322
mapping
coherence::vars_t, 266
matmix_t
matrixmixer::matmix_t, 477
matrix_t
MHASignal::matrix_t, 956, 958
matrixmixer, 96
matrixmixer.cpp, 1218
matrixmixer::cfg_t, 474
cfg_t, 474
m, 475
process, 474, 475
sout, 475
wout, 475
matrixmixer::matmix_t, 476
ci, 478
co, 478
matmix_t, 477
mixer, 478
patchbay, 478
prepare, 477
process, 477
update_m, 477
max
spec2wave.cpp, 1325
Vector and matrix processing toolbox, 65
max_clipped
softclipper_variables_t, 1138
max_fill_count
mha_fifo_t, 535
max_frames
acsave::cfg_t, 178
max_lag
doasvm_feature_extraction, 327
max_level_difference
dc::dc_t, 286
dc::dc_vars_t, 290
max_p_ind_name
doasvm_classification, 322
max_pool_ind_name
acPooling_wave, 168
max_q
© 2005-2018 HörTech gGmbH, Oldenburg

1403
timoConfig, 1166
max_q_AC
timo_AC, 1155
max_val
timoConfig, 1166
max_val_AC
timo_AC, 1155
maxInputChannels
MHAIOPortAudio::device_info_t, 695
maxOutputChannels
MHAIOPortAudio::device_info_t, 695
maxabs
Vector and matrix processing toolbox, 63,
64
maxframe
acsave::save_var_t, 182
maxgain
dc_simple::dc_t, 303
dc_simple::dc_vars_t, 307
DynComp::dc_afterburn_rt_t, 341
DynComp::dc_afterburn_vars_t, 346
maximum_reader_xruns_in_succession_←before_stop
mha_drifter_fifo_t, 521
maximum_writer_xruns_in_succession_←before_stop
mha_drifter_fifo_t, 520
mcomplex_mon_t
MHAParser::mcomplex_mon_t, 815
mcomplex_t
MHAParser::mcomplex_t, 817
mean
MHA_AC::stat_t, 495
MHASignal, 137
MHASignal::stat_t, 985
mean_std
MHASignal::stat_t, 986
median
MHASignal, 136
mfloat_mon_t
MHAParser::mfloat_mon_t, 819
mfloat_t
MHAParser::mfloat_t, 822
mha.cpp, 1219
main, 1219
mhamain, 1219
mha.h, 1219
algo_comm_t, 1226
MHA_AC_CHAR, 1224
MHA_AC_DOUBLE, 1225
MHA_AC_FLOAT, 1225

1404
MHA_AC_INT, 1224
MHA_AC_MHACOMPLEX, 1225
MHA_AC_MHAREAL, 1225
MHA_AC_UNKNOWN, 1224
MHA_AC_USER, 1225
MHA_AC_VEC_FLOAT, 1225
MHA_CALLBACK_TEST_PREFIX, 1222
MHA_CALLBACK_TEST, 1222
MHA_DOMAIN_MAX, 1224
MHA_DOMAIN_UNKNOWN, 1224
MHA_RELEASE_VERSION_STRING,
1223
MHA_SPECTRUM, 1224
MHA_STRUCT_SIZEMATCH, 1223
MHA_STRF, 1222
MHA_VERSION_BUILD, 1223
MHA_VERSION_MAJOR, 1222
MHA_VERSION_MINOR, 1222
MHA_VERSION_RELEASE, 1223
MHA_VERSION_STRING, 1223
MHA_VERSION, 1223
MHA_WAVEFORM, 1224
MHA_XSTRF, 1222
MHADestroy_t, 1226
MHAGetVersion_t, 1226
MHAInit_t, 1226
MHAPluginCategory_t, 1227
MHAPluginDocumentation_t, 1227
MHAPrepare_t, 1226
MHAProc_spec2spec_t, 1227
MHAProc_spec2wave_t, 1227
MHAProc_wave2spec_t, 1227
MHAProc_wave2wave_t, 1227
MHARelease_t, 1226
MHASet_t, 1226
MHAStrError_t, 1226
mha_domain_t, 1225
mha_algo_comm.cpp, 1228
AC_DIM_MISMATCH, 1229
AC_INVALID_HANDLE, 1228
AC_INVALID_NAME, 1228
AC_INVALID_OUTPTR, 1228
AC_STRING_TRUNCATED, 1228
AC_SUCCESS, 1228
AC_TYPE_MISMATCH, 1229
algo_comm_default, 1229
mha_algo_comm.h, 1229
mha_algo_comm.hh, 1230
ALGO_COMM_ID_STR, 1231
algo_comm_default, 1231
mha_alloc

INDEX
mha_ruby.cpp, 1264
mha_audio_descriptor_t, 498
cf, 499
chdir, 500
dt, 499
is_complex, 499
n_channels, 499
n_freqs, 499
n_samples, 499
mha_audio_t, 500
cdata, 501
descriptor, 501
rdata, 501
mha_channel_info_t, 501
dir, 502
id, 502
idstr, 502
peaklevel, 502
side, 502
mha_complex
Complex arithmetics in the openMHA, 70
mha_complex_t, 503
im, 503
re, 503
mha_dblbuf_t
∼mha_dblbuf_t, 506
delay, 510
fifo_size, 510
get_delay, 507
get_fifo_size, 507
get_inner_error, 508
get_inner_size, 506
get_input_channels, 507
get_input_fifo_fill_count, 507
get_input_fifo_space, 508
get_outer_size, 506
get_output_channels, 507
get_output_fifo_fill_count, 507
get_output_fifo_space, 508
inner_error, 511
inner_size, 510
input, 509
input_channels, 510
input_fifo, 511
mha_dblbuf_t, 505
outer_error, 511
outer_size, 510
output, 509
output_channels, 511
output_fifo, 511
process, 508
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
provoke_inner_error, 508
provoke_outer_error, 508
value_type, 505
mha_dblbuf_t< FIFO >, 503
mha_debug
Error handling in the openMHA, 34
mha_defs.h, 1231
__MHA_FUN__, 1232
__declspec, 1232
CHECK_EXPR, 1232
CHECK_VAR, 1232
M_PI, 1232
MAX, 1233
MHA_EAR_LEFT, 1233
MHA_EAR_MAX, 1233
MHA_EAR_RIGHT, 1233
MIN, 1232
mha_direction_t, 512
azimuth, 512
distance, 513
elevation, 512
mha_domain_t
mha.h, 1225
mha_drifter_fifo_t
desired_fill_count, 519
get_available_space, 517
get_des_fill_count, 517
get_fill_count, 517
get_min_fill_count, 518
maximum_reader_xruns_in_succession←_before_stop, 521
maximum_writer_xruns_in_succession←_before_stop, 520
mha_drifter_fifo_t, 515
minimum_fill_count, 518
null_data, 521
read, 516
reader_started, 519
reader_xruns_in_succession, 520
reader_xruns_since_start, 520
reader_xruns_total, 519
starting, 518
startup_zeros, 521
stop, 518
write, 516
writer_started, 519
writer_xruns_in_succession, 520
writer_xruns_since_start, 520
writer_xruns_total, 519
mha_drifter_fifo_t< T >, 513
mha_errno.c, 1233
© 2005-2018 HörTech gGmbH, Oldenburg

1405
cstr_strerror, 1234
mha_set_user_error, 1234
mha_strerror, 1234
next_except_str, 1234
STRLEN, 1234
mha_errno.h, 1235
MHA_ERR_INVALID_HANDLE, 1235
MHA_ERR_NULL, 1235
MHA_ERR_SUCCESS, 1235
MHA_ERR_UNKNOWN, 1235
MHA_ERR_USER, 1236
MHA_ERR_VARFMT, 1236
MHA_ERR_VARRANGE, 1235
mha_set_user_error, 1236
mha_strerror, 1236
mha_error.cpp, 1236
mha_error.hh, 1237
Getmsg, 1238
mha_error_helpers, 97
digits, 98
snprintf_required_length, 98
mha_event_emitter.h, 1238
mha_events.cpp, 1238
mha_events.h, 1238
mha_exit_request
mha_ruby.cpp, 1264
mha_fft
timoConfig, 1162
mha_fft_backward
Fast Fourier Transform functions, 85
mha_fft_backward_scale
Fast Fourier Transform functions, 86
mha_fft_forward
Fast Fourier Transform functions, 85
mha_fft_forward_scale
Fast Fourier Transform functions, 86
mha_fft_free
Fast Fourier Transform functions, 81
mha_fft_new
Fast Fourier Transform functions, 81
mha_fft_spec2wave
Fast Fourier Transform functions, 83, 84
mha_fft_spec2wave_scale
Fast Fourier Transform functions, 87
mha_fft_t
Fast Fourier Transform functions, 81
mha_fft_wave2spec
Fast Fourier Transform functions, 82
mha_fft_wave2spec_scale
Fast Fourier Transform functions, 86
mha_fftfb.cpp, 1239

1406

INDEX

mha_fifo_thread_platform_t, 538
BARKSCALE_ENTRIES, 1240
∼mha_fifo_thread_platform_t, 539
filtershapefun, 1240
aquire_mutex, 539
mha_fftfb.hh, 1241
decrement, 540
mha_fifo.cpp, 1241
increment, 540
mha_fifo.h, 1241
mha_fifo_thread_platform_t, 539
mha_fifo_thread_platform_implementation←_t, 1242
operator=, 541
mha_fifo_lw_t
release_mutex, 539
∼mha_fifo_lw_t, 525
wait_for_decrease, 540
error, 527
wait_for_increase, 540
mha_fifo_lw_t, 525
mha_filter.cpp, 1242
read, 526
diff_coeffs, 1242
set_error, 527
mha_filter.hh, 1243
sync, 527
mha_free
write, 526
mha_ruby.cpp, 1264
mha_fifo_lw_t< T >, 524
mha_freelib
mha_fifo_posix_threads_t, 528
mha_os.h, 1249
∼mha_fifo_posix_threads_t, 529
mha_freelib_success
aquire_mutex, 529
mha_os.h, 1250
decrease_condition, 530
mha_generic_chain.cpp, 1244
decrement, 530
mhaconfig_compare, 1244
increase_condition, 530
mha_generic_chain.h, 1245
increment, 530
MHAPLUGIN_OVERLOAD_OUTDOM←AIN, 1245
mha_fifo_posix_threads_t, 529
mha_getenv
mutex, 530
mha_os.cpp, 1248
release_mutex, 529
mha_os.h, 1251
wait_for_decrease, 529
wait_for_increase, 529
mha_getlibfun
mha_os.h, 1250
mha_fifo_t
mha_getlibfun_checked
∼mha_fifo_t, 533
mha_os.h, 1250
buf, 536
buf_uses_placement_new, 536
mha_hton
mha_os.h, 1252
clear, 535
mha_io_ifc.h, 1245
get_available_space, 534
IODestroy_t, 1247
get_fill_count, 534
IOInit_t, 1246
get_max_fill_count, 535
IOPrepare_t, 1246
max_fill_count, 535
IOProcessEvent_t, 1246
mha_fifo_t, 532, 533
IORelease_t, 1247
operator=, 535
IOSetVar_t, 1247
read, 534
read_ptr, 536
IOStart_t, 1246
IOStartedEvent_t, 1246
value_type, 532
IOStop_t, 1246
write, 533
IOStoppedEvent_t, 1246
write_ptr, 536
mha_fifo_t< T >, 531
IOStrError_t, 1247
mha_lib_extension
mha_fifo_thread_guard_t, 537
mha_os.h, 1250
∼mha_fifo_thread_guard_t, 537
mha_libhandle_t
mha_fifo_thread_guard_t, 537
sync, 537
mha_os.h, 1251
mha_library_paths
mha_fifo_thread_platform_implementation_t
mha_os.cpp, 1248
mha_fifo.h, 1242
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
mha_os.h, 1251
mha_loadlib
mha_os.h, 1249
mha_loadlib_error
mha_os.h, 1250
mha_min_1
mha_signal.hh, 1277
mha_msleep
mha_os.h, 1250
mha_multisrc.cpp, 1247
mha_multisrc.h, 1247
mha_ntoh
mha_os.h, 1252
mha_os.cpp, 1248
list_dir, 1248
mha_getenv, 1248
mha_library_paths, 1248
mha_os.h, 1248
FMTsz, 1250
list_dir, 1251
MHA_RESOLVE_CHECKED, 1251
MHA_RESOLVE, 1251
mha_freelib, 1249
mha_freelib_success, 1250
mha_getenv, 1251
mha_getlibfun, 1250
mha_getlibfun_checked, 1250
mha_hton, 1252
mha_lib_extension, 1250
mha_libhandle_t, 1251
mha_library_paths, 1251
mha_loadlib, 1249
mha_loadlib_error, 1250
mha_msleep, 1250
mha_ntoh, 1252
mha_parse
mha_ruby.cpp, 1265
mha_parser.cpp, 1253
MHAPLATFORM, 1253
parse_1_complex, 1254
parse_1_float, 1254
write_float, 1253
mha_parser.hh, 1255
DEFAULT_RETSIZE, 1258
insert_member, 1258
mha_platform_tic
mha_profiling.c, 1262
mha_profiling.h, 1263
mha_platform_tictoc_t
mha_profiling.h, 1263
mha_platform_toc
© 2005-2018 HörTech gGmbH, Oldenburg

1407
mha_profiling.c, 1262
mha_profiling.h, 1263
mha_plugin.hh, 1259
__attribute__, 1261
__declspec, 1260
GITCOMMITHASH, 1260
HINSTANCE, 1260
MHAPLUGIN_DOCUMENTATION_PR←EFIX, 1261
MHAPLUGIN_INIT_CALLBACKS_PRE←FIX, 1261
MHAPLUGIN_INIT_CALLBACKS, 1261
MHAPLUGIN_PROC_CALLBACK_PR←EFIX, 1260
MHAPLUGIN_PROC_CALLBACK, 1261
WINAPI, 1260
mha_profiling.c, 1262
mha_platform_tic, 1262
mha_platform_toc, 1262
mha_tic, 1262
mha_toc, 1262
mha_profiling.h, 1263
mha_platform_tic, 1263
mha_platform_tictoc_t, 1263
mha_platform_toc, 1263
mha_real_t
Vector and matrix processing toolbox, 43
mha_round
mha_signal.hh, 1277
mha_rt_fifo_element_t
∼mha_rt_fifo_element_t, 542
abandonned, 542
data, 543
mha_rt_fifo_element_t, 542
next, 542
mha_rt_fifo_element_t< T >, 541
mha_rt_fifo_t
∼mha_rt_fifo_t, 544
current, 546
mha_rt_fifo_t, 544
poll, 545
poll_1, 545
push, 545
remove_abandonned, 546
remove_all, 546
root, 546
mha_rt_fifo_t< T >, 543
mha_ruby.cpp, 1264
Init_mha_ruby, 1265
mha_alloc, 1264
mha_exit_request, 1264

1408
mha_free, 1264
mha_parse, 1265
rb_f_t, 1264
mha_set_user_error
mha_errno.c, 1234
mha_errno.h, 1236
mha_signal.cpp, 1265
ASSERT_EQUAL_DIM_PTR, 1268
ASSERT_EQUAL_DIM, 1268
intensity, 1268
MHA_ID_MATRIX, 1268
MHA_ID_UINT_VECTOR, 1267
safe_div, 1268
set_minabs, 1268
mha_signal.hh, 1269
M_PI, 1277
mha_min_1, 1277
mha_round, 1277
operator<<, 1278
operator>>, 1278
safe_div, 1278
set_minabs, 1278
value, 1278
mha_signal_fft.h, 1279
mha_spec_t, 547
buf, 548
channel_info, 548
num_channels, 548
num_frames, 548
mha_strerror
mha_errno.c, 1234
mha_errno.h, 1236
mha_tablelookup.cpp, 1279
mha_tablelookup.hh, 1279
mha_tcp.cpp, 1280
ASYNC_CONNECT_STARTED, 1281
closesocket, 1281
host_port_to_sock_addr, 1281
INVALID_SOCKET, 1280
SOCKET_ERROR, 1281
SOCKET, 1281
tcp_connect_to, 1281
tcp_connect_to_with_timeout, 1282
thread_start_func, 1282
mha_tcp.hh, 1282
Sleep, 1283
mha_test_struct_size
PluginLoader::mhapluginloader_t, 1082
mha_tic
mha_profiling.c, 1262
mha_tictoc_t, 582

INDEX
t, 582
tv1, 582
tv2, 582
tz, 582
mha_toc
mha_profiling.c, 1262
mha_toolbox.h, 1284
mha_wave_t, 583
buf, 584
channel_info, 584
num_channels, 584
num_frames, 584
mha_windowparser.cpp, 1284
wnd_funs, 1284
mha_windowparser.h, 1284
mhachain, 101
mhachain.cpp, 1285
mhachain::chain_base_t, 585
algos, 587
b_prepared, 588
bprofiling, 587
cfin, 588
cfout, 588
chain, 588
chain_base_t, 586
old_algos, 588
patchbay, 588
prepare, 587
process, 586, 587
release, 587
update, 587
mhachain::mhachain_t, 589
mhachain_t, 589
mhachain::plugs_t, 590
∼plugs_t, 591
ac, 592
algos, 592
alloc_plugs, 592
b_prepared, 592
b_use_profiling, 594
chain, 593
cleanup_plugs, 592
parser, 592
plugs_t, 590
prepare, 591
prepared, 591
proc_cnt, 594
process, 591
prof_algos, 593
prof_cfg, 594
prof_init, 593
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
prof_load_con, 594
prof_prepare, 593
prof_process, 593
prof_process_load, 594
prof_process_tt, 593
prof_release, 593
prof_tt_con, 594
profiling, 593
release, 591
tictoc, 594
update_proc_load, 592
mhachain_t
mhachain::mhachain_t, 589
mhaconfig_compare
mha_generic_chain.cpp, 1244
PluginLoader, 143
mhaconfig_in
MHAPlugin::plugin_t, 887
mhaconfig_mon_t
MHAParser::mhaconfig_mon_t, 824
mhaconfig_out
MHAPlugin::plugin_t, 887
mhaconfig_t, 595
channels, 596
domain, 596
fftlen, 596
fragsize, 596
srate, 597
wndlen, 596
mhafft
hilbert_shifter_t, 407
mhafw_lib.cpp, 1285
mhafw_lib.h, 1285
mhajack.cpp, 1311
dummy_jack_proc_cb, 1311
jack_error_handler, 1311
last_jack_err, 1312
last_jack_err_msg, 1312
make_friendly_number, 1311
mhajack.h, 1312
IO_ERROR_JACK, 1313
IO_ERROR_MHAJACKLIB, 1314
last_jack_err_msg, 1314
MAX_USER_ERR, 1314
MHAJACK_FW_STARTED, 1313
MHAJACK_STARTING, 1313
MHAJACK_STOPPED, 1313
mhamain
mha.cpp, 1219
mhamain.cpp, 1315
mhamain.cpp, 1314
© 2005-2018 HörTech gGmbH, Oldenburg

1409
create_lock, 1315
GREETING_TEXT, 1315
HELP_TEXT, 1315
MAX_LINE_LENGTH, 1315
mhamain, 1315
remove_lock, 1315
mhaplug_cfg_t, 875
∼mhaplug_cfg_t, 876
mhaplug_cfg_t, 875
mhapluginloader.cpp, 1316
mhapluginloader.h, 1316
mhapluginloader_t
MHAParser::mhapluginloader_t, 827
PluginLoader::mhapluginloader_t, 1078
mhaserver_t, 924
∼mhaserver_t, 925
acceptor_started, 926
ack_fail, 927
ack_ok, 927
announce_port, 927
logfile, 927
logstring, 926
mhaserver_t, 925
pid_mon, 927
port, 927
received_group, 925
run, 926
set_announce_port, 926
tcpserver, 927
mhasndfile.cpp, 1316
validator_channels, 1317
validator_length, 1317
write_wave, 1316
mhasndfile.h, 1317
write_wave, 1317
mhastrdomain
PluginLoader, 143
min
MHASignal::doublebuffer_t, 939
spec2wave.cpp, 1325
Vector and matrix processing toolbox, 65
minimum_fill_count
mha_drifter_fifo_t, 518
minphase
MHAFilter::smoothspec_t, 679
minphase_t
MHASignal::minphase_t, 968
minw_
wavwriter_t, 1187
minwrite
wavrec_t, 1184

1410
mix
sine_cfg_t, 1123
mixer
matrixmixer::matmix_t, 478
mixw_ref
hilbert_shifter_t, 406
mixw_shift
hilbert_shifter_t, 406
mode
MHA_TCP::OS_EVENT_TYPE, 564
noise_t, 1046
sine_t, 1125
smoothgains_bridge::overlapadd_if_←t, 1128
modified
dc::dc_vars_t, 290
dc_simple::dc_if_t, 300
modulename
dynamiclib_t, 339
MHAParser::c_ifc_parser_t, 785
mon
acmon::ac_monitor_t, 158
mon_complex
acmon::ac_monitor_t, 158
mon_dump
MHAParser, 123
mon_g
dc_simple::dc_if_t, 300
dc_simple::dc_t, 304
mon_l
dc_simple::dc_if_t, 300
dc_simple::dc_t, 304
mon_mat
acmon::ac_monitor_t, 158
mon_mat_complex
acmon::ac_monitor_t, 158
mon_t, 1032
mon_t, 1032
store, 1033
monitor variable, 4
monitor_t
MHAParser::monitor_t, 832
mpo
DynComp::dc_afterburn_vars_t, 346
mpo_inv
DynComp::dc_afterburn_rt_t, 341
msg
MHA_Error, 524
mu
MHAFilter::adapt_filter_param_t, 608
MHAFilter::adapt_filter_t, 612

INDEX
mu_beta
adm_if_t, 207
multibandcompressor, 142
multibandcompressor.cpp, 1318
multibandcompressor::fftfb_plug_t, 1033
bwv, 1035
cfv, 1034
efv, 1034
fftfb_plug_t, 1034
insert, 1034
multibandcompressor::interface_t, 1035
algo, 1038
burn, 1037
interface_t, 1036
num_channels, 1037
patchbay, 1038
plug, 1038
plug_sigs, 1038
prepare, 1037
process, 1037
release, 1037
update_cfg, 1037
multibandcompressor::plugin_signals_t, 1038
apply_gains, 1039
gain, 1039
plug_level, 1039
plug_output, 1040
plugin_signals_t, 1039
update_levels, 1039
mute
MHAJack::port_t, 722
mutex
MHAPlugin_Split::posix_threads_t, 905
mha_fifo_posix_threads_t, 530
mylogf
dc_afterburn.cpp, 1203
N
lpc_config, 472
n
MHAJack::client_avg_t, 705
MHASignal::hilbert_fftw_t, 946
MHASignal::stat_t, 986
N_ERRNO
MHA_TCP, 100
n_channels
mha_audio_descriptor_t, 499
n_freqs
mha_audio_descriptor_t, 499
n_im
MHASignal::fft_t, 944
n_no_update
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
nlms_t, 1043
prediction_error, 1090
n_no_update_
prediction_error_config, 1094
rt_nlms_t, 1110
n_pad1
overlapadd::overlapadd_t, 1060
n_pad2
overlapadd::overlapadd_t, 1060
n_re
MHASignal::fft_t, 944
n_samples
mha_audio_descriptor_t, 499
n_zero
overlapadd::overlapadd_t, 1060
NORM_DEFAULT
nlms_wave.cpp, 1319
NORM_NONE
nlms_wave.cpp, 1319
NORM_SUM
nlms_wave.cpp, 1319
NORMALIZATION_TYPES
nlms_wave.cpp, 1319
NUM_ENTR_LTASS
speechnoise.cpp, 1327
NUM_ENTR_MHAORIG
speechnoise.cpp, 1326
NUM_ENTR_OLNOISE
speechnoise.cpp, 1327
name
ac2wave_if_t, 147
ac2wave_t, 150
acmon::ac_monitor_t, 158
acsave::save_var_t, 181
MHA_AC::ac2matrix_helper_t, 480
MHA_AC::spectrum_t, 494
MHA_AC::waveform_t, 498
MHAIOPortAudio::device_info_t, 695
MHAJack::client_avg_t, 705
MHAJack::client_noncont_t, 709
MHAMultiSrc::channel_t, 731
MHAParser::entry_t, 793
noisePowProposedScale::interface_←t, 1049
plugindescription_t, 1069
rmslevel_if_t, 1098
shadowfilter_end::cfg_t, 1119
name_
AuditoryProfile::parser_t::fmap_t, 240
name_b
lpc_bl_predictor, 460
© 2005-2018 HörTech gGmbH, Oldenburg

1411
lpc_bl_predictor_config, 463
lpc_burglattice, 467
lpc_burglattice_config, 470
name_conAC
acConcat_wave, 153
name_d
nlms_t, 1042
name_d_
prediction_error_config, 1093
rt_nlms_t, 1110
name_e
nlms_t, 1043
prediction_error, 1089
name_e_
rt_nlms_t, 1110
name_f
lpc_bl_predictor, 460
lpc_bl_predictor_config, 463
lpc_burglattice, 467
lpc_burglattice_config, 470
nlms_t, 1043
prediction_error, 1089
name_kappa
lpc_bl_predictor, 460
lpc_burglattice, 467
name_km
lpc_bl_predictor_config, 463
name_lpc
prediction_error, 1090
name_lpc_
prediction_error_config, 1094
name_lpc_b
lpc_bl_predictor, 460
name_lpc_f
lpc_bl_predictor, 460
name_u
nlms_t, 1042
name_u_
rt_nlms_t, 1110
namelen
acsave::mat4head_t, 179
names
MHAOvlFilter::scale_var_t, 763
nangle
acSteer_config, 188
steerbf_config, 1152
naudiochannels
dc::dc_t, 286
nbands
coherence::cohflt_t, 261
combc_t, 270

1412
dc::dc_t, 286
dc_simple::dc_t, 304
dc_simple::level_smoother_t, 310
DynComp::gaintable_t, 350
fftfilterbank::fftfb_interface_t, 381
MHAFilter::thirdoctave_analyzer_t, 680
MHAOvlFilter::fspacing_t, 754
nbits
calibrator_variables_t, 252
nch
shadowfilter_begin::cfg_t, 1115
shadowfilter_begin::shadowfilter_begin←_t, 1118
spec_fader_t, 1144
nch_out
shadowfilter_end::cfg_t, 1119
nchan
acSteer_config, 187
steerbf_config, 1151
timoConfig, 1162
nchannels
DynComp::gaintable_t, 350
fftfilterbank::fftfb_interface_t, 381
MHAFilter::adapt_filter_state_t, 610
MHAFilter::adapt_filter_t, 613
MHAFilter::iir_filter_t, 647
MHAFilter::smoothspec_t, 678
MHAFilter::thirdoctave_analyzer_t, 680
nchannels_file_in
io_file_t, 415
nchannels_in
io_file_t, 415
io_parser_t, 426
MHAFilter::partitioned_convolution_t, 664
MHAIOPortAudio::io_portaudio_t, 699
MHAJack::client_t, 717
MHAPlugin_Resampling::resampling_t,
892
nchannels_out
fw_t, 393
io_file_t, 415
io_parser_t, 426
MHAFilter::partitioned_convolution_t, 664
MHAIOPortAudio::io_portaudio_t, 699
MHAJack::client_t, 717
MHAPlugin_Resampling::resampling_t,
892
ndim
acsave::save_var_t, 182
needs_write
MHA_TCP::Connection, 559

INDEX
neigh
acPooling_wave_config, 172
neighbourhood
acPooling_wave, 168
nelements
MHASignal::matrix_t, 966
nested_lock
MHAParser::base_t, 776
newgains
fader_if_t, 373
next
MHAPlugin::cfg_chain_t, 877
mha_rt_fifo_element_t, 542
next_except_str
mha_errno.c, 1234
next_read_frame_index
MHASignal::ringbuffer_t, 974
next_write_frame_index
MHASignal::ringbuffer_t, 974
nfft
MHASignal::fft_t, 943
overlapadd::overlapadd_if_t, 1055
shadowfilter_end::cfg_t, 1119
spec2wave_t, 1143
wave2spec_if_t, 1177
nfft_
MHAOvlFilter::fspacing_t, 755
nframes
acsave::save_var_t, 181
nfreq
acSteer_config, 187
steerbf_config, 1152
timoConfig, 1162
nlms_t, 1040
algo, 1043
c, 1042
estimtype, 1043
lambda_smoothing_power, 1043
n_no_update, 1043
name_d, 1042
name_e, 1043
name_f, 1043
name_u, 1042
nlms_t, 1041
normtype, 1043
ntaps, 1042
patchbay, 1043
prepare, 1041
process, 1042
release, 1041
rho, 1042
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
update, 1042
nlms_wave.cpp, 1318
ESTIM_CUR, 1319
ESTIM_PREV, 1319
ESTIMATION_TYPES, 1319
make_friendly_number_by_limiting, 1320
NORM_DEFAULT, 1319
NORM_NONE, 1319
NORM_SUM, 1319
NORMALIZATION_TYPES, 1319
nm
lpc_burglattice_config, 469
no_iter
prediction_error_config, 1094
rt_nlms_t, 1110
noise.cpp, 1320
noise_t, 1044
frozennoise_length, 1046
lev, 1046
mode, 1046
noise_t, 1045
patchbay, 1046
prepare, 1045
process, 1045
update_cfg, 1045
noise_type_t
speechnoise_t, 1145
noisePow
noisePowProposedScale::noisePow←Proposed, 1051
timoConfig, 1164
noisePow_name
timo_params, 1160
timoSmooth, 1172
noisePowProposed
noisePowProposedScale::noisePow←Proposed, 1050
noisePowProposedScale, 143
noisePowProposedScale.cpp, 1320
POWSPEC_FACTOR, 1320
noisePowProposedScale::interface_t, 1047
alphaPH1mean, 1048
alphaPSD, 1049
interface_t, 1048
name, 1049
patchbay, 1049
prepare, 1048
process, 1048
q, 1049
update_cfg, 1048
xiOptDb, 1049
© 2005-2018 HörTech gGmbH, Oldenburg

1413
noisePowProposedScale::noisePowProposed,
1049
alphaPH1mean_, 1052
alphaPSD_, 1052
estimateDebug, 1052
frameno, 1053
GLRDebug, 1051
GLRexp, 1052
inputPow, 1051
inputSpec, 1052
insert, 1050
logGLRFact, 1052
noisePow, 1051
noisePowProposed, 1050
noisyPer, 1051
PH1Debug, 1051
PH1mean, 1051
priorFact, 1052
process, 1050
snrPost1Debug, 1051
xiOpt, 1052
noisyPer
noisePowProposedScale::noisePow←Proposed, 1051
non_empty_partitions
MHAFilter::transfer_function_t, 684
MHAFilter::transfer_matrix_t, 686
nondefault_labels
altplugs_t, 224
norm
lpc, 457
lpc_config, 472
normalize
Complex arithmetics in the openMHA, 78
MHAOvlFilter::fftfb_vars_t, 747
normtype
nlms_t, 1043
not_in_use
MHAPlugin::cfg_chain_t, 877
not_zero
dc_simple, 93
notify
MHAParser::base_t, 773
notify_release
io_tcp_t, 450
notify_start
io_tcp_t, 450
notify_stop
io_tcp_t, 450
now_index
MHAFilter::polyphase_resampling_t, 672

1414
npad1
spec2wave_t, 1142
wave2spec_t, 1180
npad2
spec2wave_t, 1142
wave2spec_t, 1181
nrefmic
acSteer, 186
acSteer_config, 187
nrep
MHAJack::client_avg_t, 705
nsteerchan
acSteer, 185
acSteer_config, 187
ntaps
MHAFilter::adapt_filter_state_t, 609
MHAFilter::adapt_filter_t, 613
nlms_t, 1042
prediction_error, 1089
prediction_error_config, 1093
rt_nlms_t, 1108
ntoh
io_tcp_sound_t, 443
ntracks
shadowfilter_begin::cfg_t, 1116
shadowfilter_begin::shadowfilter_begin←_t, 1118
shadowfilter_end::cfg_t, 1119
null_data
mha_drifter_fifo_t, 521
num_AC
acConcat_wave, 153
num_adms
adm_rtconfig_t, 211
num_brackets
MHAParser::StrCnv, 125
num_channels
calibrator_variables_t, 253
DynComp::gaintable_t, 351
MHAFilter::blockprocessing_polyphase←_resampling_t, 616
mha_spec_t, 548
mha_wave_t, 584
multibandcompressor::interface_t, 1037
num_entries
comm_var_t, 272
num_F
DynComp::gaintable_t, 351
num_frames
mha_spec_t, 548
mha_wave_t, 584

INDEX
num_inchannels
io_tcp_sound_t, 445
num_L
DynComp::gaintable_t, 351
num_outchannels
io_tcp_sound_t, 445
num_xruns
MHAJack::client_t, 717
numDevices
MHAIOPortAudio::device_info_t, 694
numSamples_AC
acConcat_wave_config, 155
numbytes
MHASignal::matrix_t, 965
MHASignal::uint_vector_t, 992
numsamples
acPooling_wave, 167
acTransform_wave, 191
nupsample
doasvm_feature_extraction, 327
nvars
acsave::cfg_t, 178
nwnd
overlapadd::overlapadd_if_t, 1056
wave2spec_if_t, 1177
wave2spec_t, 1180
nwndshift
spec2wave_t, 1143
wave2spec_t, 1180
nyquist_ratio
MHAPlugin_Resampling::resampling_if←_t, 890
o1_ar_filter_t
MHAFilter::o1_ar_filter_t, 652
o1_lp_coeffs
MHAFilter, 104
o1flt_lowpass_t
MHAFilter::o1flt_lowpass_t, 656
o1flt_maxtrack_t
MHAFilter::o1flt_maxtrack_t, 659
o1flt_mintrack_t
MHAFilter::o1flt_mintrack_t, 661
OVERLAP_FACTOR
timoconfig.cpp, 1333
observe
MHA_TCP::Event_Watcher, 562
observed_by
MHA_TCP::Wakeup_Event, 580
observers
MHA_TCP::Wakeup_Event, 581
od
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHAFilter::adapt_filter_state_t, 610
offset
acTransform_wave_config, 194
ola1
overlapadd::overlapadd_t, 1058
ola2
overlapadd::overlapadd_t, 1058
ola_powspec_scale
timoConfig, 1163
old_algos
mhachain::chain_base_t, 588
on_model_param_valuechanged
timoSmooth, 1170
on_prereadaccess
example3_t, 360
example4_t, 364
on_scale_ch_readaccess
example3_t, 360
example4_t, 364
on_scale_ch_valuechanged
example3_t, 360
example4_t, 364
on_scale_ch_writeaccess
example3_t, 360
example4_t, 364
op
MHAParser::expression_t, 795
op_query
MHAParser::base_t, 769
MHAParser::c_ifc_parser_t, 785
MHAParser::monitor_t, 832
MHAParser::parser_t, 837
op_setval
MHAParser::base_t, 769
MHAParser::bool_t, 781
MHAParser::c_ifc_parser_t, 785
MHAParser::complex_t, 792
MHAParser::float_t, 799
MHAParser::int_t, 804
MHAParser::kw_t, 812
MHAParser::mcomplex_t, 817
MHAParser::mfloat_t, 822
MHAParser::parser_t, 836
MHAParser::string_t, 848
MHAParser::variable_t, 850
MHAParser::vcomplex_t, 856
MHAParser::vfloat_t, 861
MHAParser::vint_t, 865
MHAParser::vstring_t, 870
op_subparse
MHAParser::base_t, 768
© 2005-2018 HörTech gGmbH, Oldenburg

1415
MHAParser::c_ifc_parser_t, 784
MHAParser::parser_t, 836
opact_map_t
MHAParser, 121
opact_t
MHAParser, 121
operator!=
Complex arithmetics in the openMHA, 77
operator<
Complex arithmetics in the openMHA, 79
operator<<
mha_signal.hh, 1278
operator>>
mha_signal.hh, 1278
operator∗
Complex arithmetics in the openMHA, 74,
75
operator∗=
Complex arithmetics in the openMHA, 74
Vector and matrix processing toolbox, 59,
60
operator∧ =
Vector and matrix processing toolbox, 61
operator()
dc_simple::dc_t::line_t, 305
hanning_ramps_t, 403
MHAEvents::emitter_t, 604
MHAFilter::gamma_flt_t, 639, 640
MHAFilter::iir_ord1_real_t, 649, 650
MHAFilter::o1_ar_filter_t, 653, 654
MHASignal::hilbert_t, 948
MHASignal::matrix_t, 962–964
MHASignal::minphase_t, 968
MHASignal::quantizer_t, 969
MHASignal::spectrum_t, 981
MHASignal::waveform_t, 998
MHAWindow::base_t, 1023
operator+
Complex arithmetics in the openMHA, 72,
73
operator+=
Complex arithmetics in the openMHA, 72,
73
Vector and matrix processing toolbox, 58,
59, 61
operatorComplex arithmetics in the openMHA, 73,
74, 76
operator-=
Complex arithmetics in the openMHA, 73
Vector and matrix processing toolbox, 59

1416
operator/
Complex arithmetics in the openMHA, 76
operator/=
Complex arithmetics in the openMHA, 75,
76
Vector and matrix processing toolbox, 60
operator=
MHA_AC::acspace2matrix_t, 485
MHA_Error, 523
MHAPlugin_Split::domain_handler_t, 896
MHAPlugin_Split::splitted_part_t, 916
MHAPlugin_Split::thread_platform_t, 921
MHASignal::matrix_t, 959
MHASignal::uint_vector_t, 991
MHASignal::waveform_t, 997
mha_fifo_t, 535
mha_fifo_thread_platform_t, 541
operator==
Complex arithmetics in the openMHA, 77
MHASignal::uint_vector_t, 991
operator[]
MHA_AC::acspace2matrix_t, 485
MHASignal::spectrum_t, 982
MHASignal::uint_vector_t, 992
MHASignal::waveform_t, 997
operators
MHAParser::base_t, 775
oplist
MHAParser::base_t, 774
order
lpc_config, 472
origname
PluginLoader::config_file_splitter_t, 1072
os_event
MHA_TCP::Wakeup_Event, 581
os_event_valid
MHA_TCP::Wakeup_Event, 582
out
adm_if_t, 206
delaysum::delaysum_t, 318
out_buf
overlapadd::overlapadd_t, 1060
spec2wave_t, 1142
out_chunk
MHAFilter::thirdoctave_analyzer_t, 681
out_chunk_im
MHAFilter::thirdoctave_analyzer_t, 682
out_spec
shadowfilter_begin::cfg_t, 1115
shadowfilter_end::cfg_t, 1120
outSpec

INDEX
steerbf_config, 1152
outbuf
MHA_TCP::Connection, 560
outch
MHAJack::client_t, 718
outchannels
combc_if_t, 268
outer2inner_resampling
MHAPlugin_Resampling::resampling_t,
893
outer_ac
analysepath_t, 228
outer_ac_copy
analysepath_t, 228
outer_error
mha_dblbuf_t, 511
outer_fragsize
MHAPlugin_Resampling::resampling_t,
892
outer_out
MHASignal::doublebuffer_t, 939
outer_process
MHASignal::doublebuffer_t, 938
outer_size
mha_dblbuf_t, 510
outer_srate
MHAPlugin_Resampling::resampling_t,
892
output
io_parser_t, 427
mha_dblbuf_t, 509
output_cfg
MHAPlugin::plugin_t, 886
output_cfg_
MHAPlugin::plugin_t, 887
output_channels
mha_dblbuf_t, 511
output_domain
PluginLoader::mhapluginloader_t, 1080
output_fifo
mha_dblbuf_t, 511
output_partitions
MHAFilter::partitioned_convolution_t, 664
output_portnames
MHAJack::client_t, 719
output_sample_format
io_file_t, 416
output_signal
MHAPlugin_Resampling::resampling_t,
893
output_signal_spec
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHAFilter::partitioned_convolution_t, 665
output_signal_wave
MHAFilter::partitioned_convolution_t, 666
outputchannels
MHAFilter::fftfilterbank_t, 631
overlap_save_filterbank_analytic_t
MHAOvlFilter::overlap_save_filterbank_←analytic_t, 757
overlap_save_filterbank_t
MHAOvlFilter::overlap_save_filterbank_t,
759
overlapadd, 143
overlapadd.cpp, 1321
overlapadd::overlapadd_if_t, 1053
∼overlapadd_if_t, 1054
algo, 1057
cf_in, 1057
cf_out, 1057
nfft, 1055
nwnd, 1056
overlapadd_if_t, 1054
patchbay, 1055
plugloader, 1056
postscale, 1057
prepare, 1055
prescale, 1056
process, 1055
release, 1055
update, 1055
window, 1056
wndexp, 1056
wndpos, 1056
zerowindow, 1056
overlapadd::overlapadd_t, 1057
∼overlapadd_t, 1058
calc_out, 1059
fft, 1059
n_pad1, 1060
n_pad2, 1060
n_zero, 1060
ola1, 1058
ola2, 1058
out_buf, 1060
overlapadd_t, 1058
postwnd, 1059
prewnd, 1059
spec_in, 1059
wave_in1, 1059
wave_out1, 1059
write_buf, 1060
overlapadd_if_t
© 2005-2018 HörTech gGmbH, Oldenburg

1417
overlapadd::overlapadd_if_t, 1054
smoothgains_bridge::overlapadd_if_←t, 1127
overlapadd_t
overlapadd::overlapadd_t, 1058
ovltype
MHAOvlFilter::fftfb_vars_t, 746
oy
MHAFilter::adapt_filter_state_t, 610
p
acPooling_wave_config, 170
doasvm_classification_config, 324
pluginbrowser_t, 1068
p1
MHASignal::hilbert_fftw_t, 946
p2
MHASignal::hilbert_fftw_t, 946
P_Sum
rt_nlms_t, 1110
p_max
acPooling_wave_config, 171
doasvm_classification_config, 324
p_name
acPooling_wave, 168
doasvm_classification, 322
p_parser
acmon::ac_monitor_t, 159
PATCH_VAR
acConcat_wave.cpp, 1192
acPooling_wave.cpp, 1193
acSteer.cpp, 1195
acTransform_wave.cpp, 1196
doasvm_classification.cpp, 1205
doasvm_feature_extraction.cpp, 1206
lpc.cpp, 1216
lpc_bl_predictor.cpp, 1217
lpc_burg-lattice.cpp, 1218
prediction_error.cpp, 1321
steerbf.cpp, 1332
timoSmooth.cpp, 1334
PH1Debug
noisePowProposedScale::noisePow←Proposed, 1051
PH1mean
noisePowProposedScale::noisePow←Proposed, 1051
POWSPEC_FACTOR
noisePowProposedScale.cpp, 1320
timoconfig.cpp, 1333
pa22dbspl
Vector and matrix processing toolbox, 45

1418

INDEX

pa2dbspl
analysispath_if_t, 232
Vector and matrix processing toolbox, 45
AuditoryProfile::parser_t::fmap_t, 240
params
calibrator_t, 250
timoConfig, 1162
coherence::cohflt_if_t, 259
parent
db_if_t, 278
MHAParser::base_t, 776
dc::dc_if_t, 282
parent_
dc::wideband_inhib_vars_t, 296
MHAParser::mhapluginloader_t, 829
dc_simple::dc_if_t, 301
parse
delay::interface_t, 313
altplugs_t, 222
delaysum::delaysum_if_t, 316
io_tcp_t, 449
doasvm_classification, 322
MHAParser::base_t, 767, 768
doasvm_feature_extraction, 328
MHAPlugin_Split::splitted_part_t, 917
DynComp::dc_afterburn_t, 344
PluginLoader::fourway_processor_t, 1076
example3_t, 362
PluginLoader::mhapluginloader_t, 1079
example4_t, 366
parse_1_complex
example6_t, 370
mha_parser.cpp, 1254
fader_if_t, 372
parse_1_float
fader_wave::fader_wave_if_t, 375
mha_parser.cpp, 1254
fftfilterbank::fftfb_interface_t, 381
parser
frequency_translator_t, 386
io_tcp_t, 449
fw_t, 397
mhachain::plugs_t, 592
gain::gain_if_t, 401
parser_int_dyn, 1061
io_parser_t, 428
parser_int_dyn, 1061
lpc, 457
set_max_angle_ind, 1062
lpc_bl_predictor, 460
parser_plugs
lpc_burglattice, 467
altplugs_t, 223
MHAIOJack::io_jack_t, 693
parser_t
MHAIOPortAudio::io_portaudio_t, 701
AuditoryProfile::parser_t, 236
MHAPlugin_Split::split_t, 911
MHAParser::parser_t, 834
matrixmixer::matmix_t, 478
parserFriendlyName
mhachain::chain_base_t, 588
MHAIOPortAudio, 107
multibandcompressor::interface_t, 1038
parsername
nlms_t, 1043
latex_doc_t, 452
noise_t, 1046
parserstate
noisePowProposedScale::interface_←fw_t, 394
t, 1049
partitioned_convolution_t
overlapadd::overlapadd_if_t, 1055
MHAFilter::partitioned_convolution_t, 663
plugin_interface_t, 1066
partitions
prediction_error, 1090
MHAFilter::transfer_function_t, 683
route::interface_t, 1103
MHAFilter::transfer_matrix_t, 686
sine_t, 1126
patchbay
smoothgains_bridge::overlapadd_if_←t, 1128
ac2wave_if_t, 148
softclip_t, 1133
acConcat_wave, 154
spec2wave_if_t, 1140
acPooling_wave, 168
steerbf, 1150
acSteer, 186
timoSmooth, 1172
acTransform_wave, 192
wave2spec_if_t, 1177
acmon::acmon_t, 162
wavrec_t, 1184
acsave::acsave_t, 176
windowselector_t, 1191
adm_if_t, 208
peak
altplugs_t, 224
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
rmslevel_t, 1100
peak_db
rmslevel_t, 1100
peaklevel
calibrator_variables_t, 252
MHASignal::async_rmslevel_t, 929
mha_channel_info_t, 502
peer_addr
MHA_TCP::Connection, 560
peer_address
io_tcp_parser_t, 439
peer_port
io_tcp_parser_t, 439
period
droptect_t, 335
pfragmentsize
fw_vars_t, 398
phase
cpuload_t, 275
MHASignal::minphase_t, 968
phase_correction
MHAFilter::gamma_flt_t, 640
phase_div_2pi
sine_t, 1125
phase_gains
MHASignal::subsample_delay_t, 988
phase_increment_div_2pi
sine_cfg_t, 1122
phasemode
frequency_translator_t, 387
phasemodel
MHAOvlFilter::overlap_save_filterbank_←t::vars_t, 761
phi
hilbert_shifter_t, 407
PI
ADM, 89
hann.cpp, 1213
pid_mon
mhaserver_t, 927
pinchannels
fw_vars_t, 398
pipe
MHA_TCP::Async_Notify, 550
pitch_set_first
timoConfig, 1166
pitch_set_first_AC
timo_AC, 1155
pitch_set_last
timoConfig, 1166
pitch_set_last_AC
© 2005-2018 HörTech gGmbH, Oldenburg

1419
timo_AC, 1155
plan_spec2analytic
hilbert_shifter_t, 407
plateau
MHAOvlFilter::fftfb_vars_t, 746
playback
MHASignal::loop_wavefragment_t, 952,
953
playback_channels
MHASignal::loop_wavefragment_t, 954
playback_mode_t
MHASignal::loop_wavefragment_t, 951
plug
analysispath_if_t, 233
MHAParser::mhapluginloader_t, 829
MHAPlugin_Split::splitted_part_t, 918
multibandcompressor::interface_t, 1038
plug_level
multibandcompressor::plugin_signals_t,
1039
plug_output
multibandcompressor::plugin_signals_t,
1040
plug_sigs
multibandcompressor::interface_t, 1038
plug_t, 1062
∼plug_t, 1063
get_ac, 1063
get_handle, 1063
get_process_spec, 1063
get_process_wave, 1063
plug_t, 1063
plugin_categories
PluginLoader::mhapluginloader_t, 1084
plugin_documentation
PluginLoader::mhapluginloader_t, 1084
plugin_extension
pluginbrowser_t, 1068
plugin_interface_t, 1064
factor, 1066
patchbay, 1066
plugin_interface_t, 1065
prepare, 1065
process, 1065
scale_ch, 1066
update_cfg, 1065
plugin_macro
latex_doc_t, 453
plugin_paths
fw_t, 395
plugin_signals_t

1420
multibandcompressor::plugin_signals_t,
1039
plugin_t
MHAPlugin::plugin_t, 883
PluginLoader, 143
mhaconfig_compare, 143
mhastrdomain, 143
PluginLoader::config_file_splitter_t, 1071
config_file_splitter_t, 1071
configfile, 1073
configname, 1072
get_configfile, 1072
get_configname, 1072
get_libname, 1072
get_origname, 1072
libname, 1072
origname, 1072
PluginLoader::fourway_processor_t, 1073
∼fourway_processor_t, 1074
parse, 1076
prepare, 1076
process, 1074, 1075
release, 1076
PluginLoader::mhapluginloader_t, 1077
∼mhapluginloader_t, 1079
ac, 1082
b_check_version, 1085
b_is_prepared, 1085
cf_input, 1084
cf_output, 1084
get_categories, 1081
get_documentation, 1081
getfullname, 1081
has_parser, 1079
has_process, 1079
input_domain, 1080
is_prepared, 1081
lib_data, 1083
lib_err, 1082
lib_handle, 1082
MHADestroy_cb, 1083
MHAGetVersion_cb, 1083
MHAInit_cb, 1083
MHAPrepare_cb, 1083
MHAProc_spec2spec_cb, 1083
MHAProc_spec2wave_cb, 1084
MHAProc_wave2spec_cb, 1084
MHAProc_wave2wave_cb, 1083
MHARelease_cb, 1083
MHASet_cb, 1084
MHAStrError_cb, 1084

INDEX
mha_test_struct_size, 1082
mhapluginloader_t, 1078
output_domain, 1080
parse, 1079
plugin_categories, 1084
plugin_documentation, 1084
prepare, 1080
process, 1080, 1081
release, 1080
resolve_and_init, 1082
test_error, 1082
test_version, 1082
pluginbrowser.cpp, 1321
pluginbrowser.h, 1321
pluginbrowser_t, 1066
add_plugin, 1067
add_plugins, 1067
clear_plugins, 1067
get_paths, 1067
get_plugins, 1068
library_paths, 1068
p, 1068
plugin_extension, 1068
pluginbrowser_t, 1067
plugins, 1068
scan_plugin, 1067
scan_plugins, 1067
plugindescription_t, 1069
categories, 1069
documentation, 1069
fullname, 1069
name, 1069
queries, 1070
query_cmds, 1070
spec2spec, 1070
spec2wave, 1070
wave2spec, 1070
wave2wave, 1069
pluginloader_t, 1085
∼pluginloader_t, 1086
pluginloader_t, 1085
plugins
fw_t, 395
pluginbrowser_t, 1068
plugloader
bbcalib_interface_t, 245
db_if_t, 278
db_t, 280
MHAPlugin_Resampling::resampling_if←_t, 890
MHAPlugin_Resampling::resampling_t,
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
893
overlapadd::overlapadd_if_t, 1056
smoothgains_bridge::overlapadd_if_←t, 1129
plugname
latex_doc_t, 453
MHAParser::mhapluginloader_t, 829
plugname_name_
MHAParser::mhapluginloader_t, 830
plugs
altplugs_t, 224
plugs_t
mhachain::plugs_t, 590
pmode
calibrator_runtime_layer_t, 248
poll
mha_rt_fifo_t, 545
poll_1
mha_rt_fifo_t, 545
poll_config
MHAPlugin::config_t, 880
polyphase_resampling_t
MHAFilter::polyphase_resampling_t, 670
pool
acPooling_wave_config, 172
pool_name
acPooling_wave, 168
pooling_ind
acPooling_wave_config, 171
pooling_option
acPooling_wave_config, 171
pooling_size
acPooling_wave_config, 171
pooling_type
acPooling_wave, 167
pooling_wndlen
acPooling_wave, 167
port
MHA_TCP::Server, 568
MHAJack::port_t, 723
mhaserver_t, 927
port_t
MHAJack::port_t, 721
portaudio_callback
MHAIOPortAudio.cpp, 1302, 1304
MHAIOPortAudio::io_portaudio_t, 698
portaudio_stream
MHAIOPortAudio::io_portaudio_t, 700
portnames_in
MHAIOJack::io_jack_t, 691
portnames_out
© 2005-2018 HörTech gGmbH, Oldenburg

1421
MHAIOJack::io_jack_t, 691
ports_in_all
MHAIOJack::io_jack_t, 692
ports_in_physical
MHAIOJack::io_jack_t, 691
ports_out_all
MHAIOJack::io_jack_t, 692
ports_out_physical
MHAIOJack::io_jack_t, 691
ports_parser
MHAIOJack::io_jack_t, 692
pos
cfg_t, 257
fader_wave::level_adapt_t, 377
MHAJack::client_avg_t, 704
MHAJack::client_noncont_t, 708
MHASignal::async_rmslevel_t, 930
MHASignal::delay_spec_t, 931
MHASignal::delay_t, 934
MHASignal::delay_wave_t, 936
MHASignal::loop_wavefragment_t, 954
posix_threads_t
MHAPlugin_Split::posix_threads_t, 903
posixthreads
split.cpp, 1331
postscale
overlapadd::overlapadd_if_t, 1057
postwindow
spec2wave_t, 1143
postwnd
overlapadd::overlapadd_t, 1059
powSpec
timoConfig, 1164
power
MHASignal::waveform_t, 1004
powersum
dc::dc_t, 286
dc::dc_vars_t, 288
powspec
MHASignal::waveform_t, 1004
pred_err_delay
prediction_error, 1090
prediction_error, 1086
∼prediction_error, 1088
c, 1089
delay_d, 1090
delay_w, 1090
gains, 1089
lpc_order, 1090
n_no_update, 1090
name_e, 1089

1422
name_f, 1089
name_lpc, 1090
ntaps, 1089
patchbay, 1090
pred_err_delay, 1090
prediction_error, 1087
prepare, 1088
process, 1088
release, 1088
rho, 1089
update_cfg, 1089
prediction_error.cpp, 1321
INSERT_PATCH, 1321
make_friendly_number_by_limiting, 1322
PATCH_VAR, 1321
prediction_error.h, 1322
prediction_error_config, 1091
∼prediction_error_config, 1092
ac, 1093
channels, 1093
EPrew, 1096
F, 1093
F_Uflt, 1095
frames, 1093
insert, 1092
iter, 1094
n_no_update_, 1094
name_d_, 1093
name_lpc_, 1094
no_iter, 1094
ntaps, 1093
prediction_error_config, 1092
process, 1092
Pu, 1093
s_E_pred_err_delay, 1094
s_LPC, 1095
s_U_delay, 1095
s_U_delayflt, 1095
s_Usmpl, 1096
s_Wflt, 1095
s_Y_delay, 1095
s_Y_delayflt, 1095
s_E, 1093
s_U, 1094
s_W, 1094
smpl, 1096
UPrew, 1096
UPrewW, 1096
UbufferPrew, 1095
v_G, 1094
YPrew, 1096

INDEX
prefix
wavrec_t, 1184
prefix_
MHAParser::mhapluginloader_t, 829
prefix_names_AC
acConcat_wave, 153
prepare
ac2wave_if_t, 146
acConcat_wave, 152
acPooling_wave, 166
acSteer, 184
acTransform_wave, 190
acmon::acmon_t, 161
acsave::acsave_t, 174
adm_if_t, 206
altplugs_t, 221
analysispath_if_t, 232
bbcalib_interface_t, 244
calibrator_t, 249
coherence::cohflt_if_t, 258
combc_if_t, 268
cpuload_t, 275
db_if_t, 277
dc::dc_if_t, 281
dc_simple::dc_if_t, 298
delay::interface_t, 312
delaysum::delaysum_if_t, 315
doasvm_classification, 321
doasvm_feature_extraction, 326
droptect_t, 333
ds_t, 337
example1_t, 353
example2_t, 356
example3_t, 360
example4_t, 364
example6_t, 369
fader_if_t, 372
fader_wave::fader_wave_if_t, 374
fftfilterbank::fftfb_interface_t, 379
frequency_translator_t, 385
fw_t, 390
gain::gain_if_t, 400
identity_t, 409
io_file_t, 413
io_lib_t, 420
io_parser_t, 425
io_tcp_sound_t, 442
io_tcp_t, 448
lpc, 455
lpc_bl_predictor, 459
lpc_burglattice, 466
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHAIOJack::io_jack_t, 688
MHAJack::client_t, 712
MHAParser::mhapluginloader_t, 827
MHAPlugin::plugin_t, 884
MHAPlugin_Resampling::resampling_if←_t, 889
MHAPlugin_Split::splitted_part_t, 916
MHATableLookup::linear_table_t, 1011
matrixmixer::matmix_t, 477
mhachain::chain_base_t, 587
mhachain::plugs_t, 591
multibandcompressor::interface_t, 1037
nlms_t, 1041
noise_t, 1045
noisePowProposedScale::interface_←t, 1048
overlapadd::overlapadd_if_t, 1055
plugin_interface_t, 1065
PluginLoader::fourway_processor_t, 1076
PluginLoader::mhapluginloader_t, 1080
prediction_error, 1088
rmslevel_if_t, 1098
route::interface_t, 1102
save_spec_t, 1112
save_wave_t, 1114
shadowfilter_begin::shadowfilter_begin←_t, 1117
shadowfilter_end::shadowfilter_end_←t, 1121
sine_t, 1125
smoothgains_bridge::overlapadd_if_←t, 1127
softclip_t, 1132
spec2wave_if_t, 1139
steerbf, 1149
timoSmooth, 1169
us_t, 1174
wave2spec_if_t, 1176
wavrec_t, 1183
prepare_
iirfilter_t, 411
MHAPlugin::plugin_t, 885
MHAPlugin_Split::split_t, 909
prepare_impl
MHAJack::client_t, 715
prepare_vars
fw_t, 393
prepared
ac2wave_if_t, 147
altplugs_t, 225
calibrator_t, 250
© 2005-2018 HörTech gGmbH, Oldenburg

1423
dc_simple::dc_if_t, 301
example3_t, 361
example4_t, 366
fader_wave::fader_wave_if_t, 375
fftfilterbank::fftfb_interface_t, 381
mhachain::plugs_t, 591
route::interface_t, 1104
timoSmooth, 1172
prereadaccess
MHAParser::base_t, 775
prescale
overlapadd::overlapadd_if_t, 1056
preset
dc::dc_vars_t, 290
dc_simple::dc_if_t, 300
prewnd
overlapadd::overlapadd_t, 1059
print_ac
analysemhaplugin.cpp, 1199
prior_q
timo_params, 1159
timoSmooth, 1172
priorFact
noisePowProposedScale::noisePow←Proposed, 1052
timoConfig, 1166
priority
analysepath_t, 229
analysispath_if_t, 233
MHAPlugin_Split::posix_threads_t, 906
proc
MHAJack::client_avg_t, 703, 704
MHAJack::client_noncont_t, 707, 708
proc_1
smoothgains_bridge::smoothspec_←wrap_t, 1130
proc_2
smoothgains_bridge::smoothspec_←wrap_t, 1130
proc_cnt
mhachain::plugs_t, 594
proc_err
io_tcp_fwcb_t, 432
proc_error
fw_t, 396
proc_error_string
fw_t, 396
proc_event
io_file_t, 415
io_parser_t, 426
io_tcp_fwcb_t, 431

1424
MHAIOPortAudio::io_portaudio_t, 700
MHAJack::client_t, 717
proc_handle
io_file_t, 415
io_parser_t, 426
io_tcp_fwcb_t, 432
MHAIOPortAudio::io_portaudio_t, 700
MHAJack::client_t, 717
proc_lib
fw_t, 395
proc_name
fw_t, 394
proc_ramp
altplugs_t, 223
proc_wave
doasvm_feature_extraction_config, 330
process
ADM::ADM, 196
ADM::Delay, 200
ADM::Linearphase_FIR, 203
ac2wave_if_t, 146
ac2wave_t, 149
acConcat_wave, 152
acConcat_wave_config, 155
acPooling_wave, 165
acPooling_wave_config, 170
acSteer, 184
acTransform_wave, 190
acTransform_wave_config, 193
acmon::acmon_t, 161
acsave::acsave_t, 174, 175
adm_if_t, 206
altplugs_t, 221
analysispath_if_t, 232
bbcalib_interface_t, 244
calibrator_runtime_layer_t, 246
calibrator_t, 249
cfg_t, 255
coherence::cohflt_if_t, 258
coherence::cohflt_t, 261
combc_if_t, 268
combc_t, 270
cpuload_t, 274
db_if_t, 277
dc::dc_if_t, 281, 282
dc::dc_t, 284
dc_simple::dc_if_t, 298, 299
dc_simple::dc_t, 302, 303
dc_simple::level_smoother_t, 310
delay::interface_t, 312
delaysum::delaysum_if_t, 315

INDEX
delaysum::delaysum_t, 318
doasvm_classification, 320
doasvm_classification_config, 324
doasvm_feature_extraction, 326
doasvm_feature_extraction_config, 329
droptect_t, 334
ds_t, 337
example1_t, 354
example2_t, 357
example3_t, 361
example4_t, 365
example5_t, 367
example6_t, 369
fader_if_t, 372
fader_wave::fader_wave_if_t, 374
fftfilterbank::fftfb_interface_t, 380
fftfilterbank::fftfb_plug_t, 383
frequency_translator_t, 385
fw_t, 391, 392
gain::gain_if_t, 400
hilbert_shifter_t, 406
identity_t, 409
iirfilter_t, 411
io_tcp_fwcb_t, 430
lpc, 455
lpc_bl_predictor, 459
lpc_bl_predictor_config, 462
lpc_burglattice, 465
lpc_burglattice_config, 468
lpc_config, 471
MHAFilter::partitioned_convolution_t, 663
MHAFilter::thirdoctave_analyzer_t, 680
MHAParser::mhapluginloader_t, 828
MHAPlugin_Resampling::resampling_if←_t, 889
MHAPlugin_Resampling::resampling_t,
892
MHAPlugin_Split::domain_handler_t, 899
MHAPlugin_Split::split_t, 910
MHAPlugin_Split::uni_processor_t, 923
MHASignal::async_rmslevel_t, 929
MHASignal::delay_spec_t, 931
MHASignal::delay_t, 933
MHASignal::delay_wave_t, 935
MHASignal::subsample_delay_t, 988
matrixmixer::cfg_t, 474, 475
matrixmixer::matmix_t, 477
mha_dblbuf_t, 508
mhachain::chain_base_t, 586, 587
mhachain::plugs_t, 591
multibandcompressor::interface_t, 1037
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
nlms_t, 1042
noise_t, 1045
noisePowProposedScale::interface_←t, 1048
noisePowProposedScale::noisePow←Proposed, 1050
overlapadd::overlapadd_if_t, 1055
plugin_interface_t, 1065
PluginLoader::fourway_processor_←t, 1074, 1075
PluginLoader::mhapluginloader_t, 1080,
1081
prediction_error, 1088
prediction_error_config, 1092
rmslevel_if_t, 1098
rmslevel_t, 1099
route::interface_t, 1102
route::process_t, 1105
rt_nlms_t, 1107
save_spec_t, 1112
save_wave_t, 1114
shadowfilter_begin::cfg_t, 1115
shadowfilter_begin::shadowfilter_begin←_t, 1117
shadowfilter_end::cfg_t, 1119
shadowfilter_end::shadowfilter_end_←t, 1121
sine_t, 1124
smoothgains_bridge::overlapadd_if_←t, 1128
softclip_t, 1132
softclipper_t, 1134
spec2wave_if_t, 1139
spec2wave_t, 1141
steerbf, 1149
steerbf_config, 1151
timoConfig, 1161
timoSmooth, 1169
us_t, 1174
wave2spec_if_t, 1176, 1177
wave2spec_t, 1180
wavrec_t, 1183
wavwriter_t, 1186
process_frame
io_parser_t, 426
process_t
route::process_t, 1105
ProcessMutex
analysepath_t, 229
processing_done
MHAPlugin_Split::posix_threads_t, 906
© 2005-2018 HörTech gGmbH, Oldenburg

1425
processor
MHAPlugin_Split::domain_handler_t, 900
MHAPlugin_Split::thread_platform_t, 922
prof_algos
mhachain::plugs_t, 593
prof_cfg
mhachain::plugs_t, 594
prof_init
mhachain::plugs_t, 593
prof_load_con
mhachain::plugs_t, 594
prof_prepare
mhachain::plugs_t, 593
prof_process
mhachain::plugs_t, 593
prof_process_load
mhachain::plugs_t, 594
prof_process_tt
mhachain::plugs_t, 593
prof_release
mhachain::plugs_t, 593
prof_tt_con
mhachain::plugs_t, 594
profiling
mhachain::plugs_t, 593
provoke_inner_error
mha_dblbuf_t, 508
provoke_outer_error
mha_dblbuf_t, 508
psrate
fw_vars_t, 398
Pu
prediction_error_config, 1093
rt_nlms_t, 1109
push
MHASignal::stat_t, 986
mha_rt_fifo_t, 545
push_config
MHAPlugin::config_t, 880
put_signal
MHAPlugin_Split::domain_handler_t, 897
q
noisePowProposedScale::interface_←t, 1049
q_high
timoConfig, 1163
q_low
timoConfig, 1163
quant
calibrator_runtime_layer_t, 247
quantile

1426
MHASignal, 137
quantizer_t
MHASignal::quantizer_t, 969
queries
MHAParser::base_t, 775
plugindescription_t, 1070
query_addsubst
MHAParser::base_t, 772
query_cmds
MHAParser::base_t, 772
plugindescription_t, 1070
query_dump
MHAParser::base_t, 769
MHAParser::monitor_t, 832
MHAParser::parser_t, 837
query_entries
MHAParser::base_t, 769
MHAParser::parser_t, 837
query_help
MHAParser::base_t, 772
query_id
MHAParser::base_t, 772
query_listids
MHAParser::base_t, 771
MHAParser::parser_t, 838
query_map_t
MHAParser, 121
query_perm
MHAParser::base_t, 769
MHAParser::monitor_t, 832
MHAParser::variable_t, 850
query_range
MHAParser::base_t, 770
MHAParser::kw_t, 812
MHAParser::range_var_t, 841
query_readfile
MHAParser::base_t, 770
MHAParser::parser_t, 837
query_savefile
MHAParser::base_t, 771
MHAParser::parser_t, 838
query_savefile_compact
MHAParser::base_t, 771
MHAParser::parser_t, 838
query_savemons
MHAParser::base_t, 771
MHAParser::parser_t, 838
query_subst
MHAParser::base_t, 772
query_t
MHAParser, 121

INDEX
query_type
MHAParser::base_t, 770
MHAParser::bool_mon_t, 779
MHAParser::bool_t, 782
MHAParser::complex_mon_t, 790
MHAParser::complex_t, 792
MHAParser::float_mon_t, 797
MHAParser::float_t, 799
MHAParser::int_mon_t, 802
MHAParser::int_t, 805
MHAParser::kw_t, 813
MHAParser::mcomplex_mon_t, 815
MHAParser::mcomplex_t, 817
MHAParser::mfloat_mon_t, 820
MHAParser::mfloat_t, 822
MHAParser::parser_t, 837
MHAParser::string_mon_t, 846
MHAParser::string_t, 848
MHAParser::vcomplex_mon_t, 854
MHAParser::vcomplex_t, 856
MHAParser::vfloat_mon_t, 858
MHAParser::vfloat_t, 861
MHAParser::vint_mon_t, 863
MHAParser::vint_t, 866
MHAParser::vstring_mon_t, 868
MHAParser::vstring_t, 870
query_val
MHAParser::base_t, 770
MHAParser::bool_mon_t, 779
MHAParser::bool_t, 782
MHAParser::complex_mon_t, 789
MHAParser::complex_t, 792
MHAParser::float_mon_t, 796
MHAParser::float_t, 800
MHAParser::int_mon_t, 802
MHAParser::int_t, 805
MHAParser::kw_t, 813
MHAParser::mcomplex_mon_t, 815
MHAParser::mcomplex_t, 818
MHAParser::mfloat_mon_t, 819
MHAParser::mfloat_t, 823
MHAParser::parser_t, 838
MHAParser::string_mon_t, 846
MHAParser::string_t, 849
MHAParser::vcomplex_mon_t, 854
MHAParser::vcomplex_t, 856
MHAParser::vfloat_mon_t, 858
MHAParser::vfloat_t, 861
MHAParser::vint_mon_t, 863
MHAParser::vint_t, 866
MHAParser::vstring_mon_t, 868
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHAParser::vstring_t, 870
query_version
MHAParser::base_t, 771
quit
fw_t, 391
R
AuditoryProfile::parser_t, 236
AuditoryProfile::profile_t, 241
lpc_config, 473
rad2smp
Vector and matrix processing toolbox, 48
ramp_a
hanning_ramps_t, 404
ramp_b
hanning_ramps_t, 404
ramp_begin
MHAWindow::base_t, 1023
ramp_counter
altplugs_t, 225
ramp_end
MHAWindow::base_t, 1023
ramp_len
altplugs_t, 225
ramplen
altplugs_t, 224
fader_wave::fader_wave_if_t, 375
spec2wave_if_t, 1140
ramps
spec2wave_t, 1142
range
Vector and matrix processing toolbox, 43
range_var_t
MHAParser::range_var_t, 841
ratio
ds_t, 337
us_t, 1174
raw_p_max_name
acTransform_wave, 191
acTransform_wave_config, 193
raw_p_name
acPooling_wave_config, 170
acTransform_wave, 191
acTransform_wave_config, 193
rb_f_t
mha_ruby.cpp, 1264
rdata
MHASignal::matrix_t, 966
mha_audio_t, 501
re
mha_complex_t, 503
read
© 2005-2018 HörTech gGmbH, Oldenburg

1427
MHAFilter::blockprocessing_polyphase←_resampling_t, 615
MHAFilter::polyphase_resampling_t, 671
MHAJack::port_t, 722
mha_drifter_fifo_t, 516
mha_fifo_lw_t, 526
mha_fifo_t, 534
read_bytes
MHA_TCP::Connection, 558
read_event
MHA_TCP::Connection, 560
read_get_cpu_load
MHAIOJack::io_jack_t, 690
read_get_scheduler
MHAIOJack::io_jack_t, 690
read_get_xruns
MHAIOJack::io_jack_t, 690
read_levels
calibrator_t, 250
read_line
MHA_TCP::Connection, 558
read_modified
dc_simple::dc_if_t, 299
read_ptr
mha_fifo_t, 536
readable_frames
MHAFilter::polyphase_resampling_t, 671
readaccess
MHAParser::base_t, 774
reader_started
mha_drifter_fifo_t, 519
reader_xruns_in_succession
mha_drifter_fifo_t, 520
reader_xruns_since_start
mha_drifter_fifo_t, 520
reader_xruns_total
mha_drifter_fifo_t, 519
real
MHASignal::matrix_t, 961–964
rear_channel
adm_rtconfig_t, 211
rear_channels
adm_if_t, 207
adm_rtconfig_t, 212
rec_frames
acsave::cfg_t, 178
received_group
mhaserver_t, 925
receiver
MHAEvents::connector_t, 602
reciprocal

1428
Complex arithmetics in the openMHA, 77
reclen
acsave::acsave_t, 175
recmode
acmon::acmon_t, 162
reconnect_inports
MHAIOJack::io_jack_t, 688
reconnect_outports
MHAIOJack::io_jack_t, 689
record
wavrec_t, 1184
rect
MHAOvlFilter::ShapeFun, 116
MHAWindow, 141
rect_t
MHAWindow::rect_t, 1030
release
ac2wave_if_t, 146
acConcat_wave, 153
acPooling_wave, 167
acSteer, 185
acTransform_wave, 190
acmon::acmon_t, 161
acsave::acsave_t, 174
adm_if_t, 206
altplugs_t, 221
analysispath_if_t, 232
bbcalib_interface_t, 244
calibrator_t, 249
coherence::cohflt_if_t, 258
db_if_t, 277
dc_simple::dc_if_t, 298
delaysum::delaysum_if_t, 315
doasvm_classification, 321
doasvm_feature_extraction, 327
droptect_t, 333
ds_t, 337
example1_t, 353
example2_t, 357
example3_t, 360
example4_t, 365
fader_wave::fader_wave_if_t, 375
fftfilterbank::fftfb_interface_t, 380
frequency_translator_t, 386
fw_t, 391
gain::gain_if_t, 400
identity_t, 409
io_file_t, 414
io_lib_t, 421
io_parser_t, 425
io_tcp_sound_t, 443

INDEX
io_tcp_t, 448
lpc, 456
lpc_bl_predictor, 459
lpc_burglattice, 466
MHAIOJack::io_jack_t, 688
MHAJack::client_t, 712
MHAParser::mhapluginloader_t, 828
MHAPlugin::plugin_t, 885
MHAPlugin_Resampling::resampling_if←_t, 889
MHAPlugin_Split::splitted_part_t, 917
mhachain::chain_base_t, 587
mhachain::plugs_t, 591
multibandcompressor::interface_t, 1037
nlms_t, 1041
overlapadd::overlapadd_if_t, 1055
PluginLoader::fourway_processor_t, 1076
PluginLoader::mhapluginloader_t, 1080
prediction_error, 1088
route::interface_t, 1102
smoothgains_bridge::overlapadd_if_←t, 1127
steerbf, 1149
timoSmooth, 1170
us_t, 1174
wavrec_t, 1183
release_
iirfilter_t, 411
MHAPlugin::plugin_t, 885
MHAPlugin_Split::split_t, 909
release_mutex
mha_fifo_posix_threads_t, 529
mha_fifo_thread_platform_t, 539
remove_abandonned
mha_rt_fifo_t, 546
remove_all
mha_rt_fifo_t, 546
remove_all_cfg
MHAPlugin::config_t, 881
remove_item
MHAParser::parser_t, 835, 836
remove_lock
mhamain.cpp, 1315
remove_ref
algo_comm_t, 215
MHAKernel::algo_comm_class_t, 726
remove_var
algo_comm_t, 215
MHAKernel::algo_comm_class_t, 726
repl_list
MHAParser::base_t, 776
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
repl_list_t
MHAParser::base_t, 767
replace
MHAParser::base_t::replace_t, 777
replace_
cfg_t, 256
replace_t
MHAParser::base_t::replace_t, 777
resampling
MHAFilter::blockprocessing_polyphase←_resampling_t, 616
resampling.cpp, 1322
resampling_factors
MHAFilter, 106
resampling_filter_t
MHAFilter::resampling_filter_t, 674
resampling_if_t
MHAPlugin_Resampling::resampling_if←_t, 889
resampling_t
MHAPlugin_Resampling::resampling_t,
891
reset
droptect_t, 334
MHA_TCP::Async_Notify, 550
MHA_TCP::Wakeup_Event, 581
reset_state
MHAFilter::gamma_flt_t, 641
resize
MHAFilter::iir_filter_t, 646
resolution
acTransform_wave_config, 194
resolve
dynamiclib_t, 338
resolve_and_init
PluginLoader::mhapluginloader_t, 1082
resolve_checked
dynamiclib_t, 339
result
cpuload_t, 275
resynthesis_gain
MHAFilter::gamma_flt_t, 642
ret_size
MHAParser::c_ifc_parser_t, 786
return_imag
fftfilterbank::fftfb_interface_t, 381
return_imag_
fftfilterbank::fftfb_plug_t, 384
return_value
MHA_TCP::Thread, 575
return_wave
© 2005-2018 HörTech gGmbH, Oldenburg

1429
wave2spec_if_t, 1178
retv
MHAParser::c_ifc_parser_t, 786
rewind
MHASignal::loop_wavefragment_t, 953
rho
nlms_t, 1042
prediction_error, 1089
ringbuffer
MHAFilter::polyphase_resampling_t, 673
ringbuffer_t
MHASignal::ringbuffer_t, 972
rm_parent_on_remove
MHAParser::base_t, 773
rmsdb
example6_t, 370
rmslevel
calibrator_variables_t, 252
dc::dc_t, 285
MHASignal::async_rmslevel_t, 929
Vector and matrix processing toolbox, 62,
64
rmslevel.cpp, 1322
rmslevel_if_t, 1097
name, 1098
prepare, 1098
process, 1098
rmslevel_if_t, 1097
rmslevel_t, 1099
fftlen, 1100
insert, 1100
level, 1100
level_db, 1100
peak, 1100
peak_db, 1100
process, 1099
rmslevel_t, 1099
rmslevelmeter
transducers.cpp, 1335
root
mha_rt_fifo_t, 546
rotated_i
acTransform_wave_config, 194
rotated_p
acTransform_wave_config, 194
rotated_p_max_name
acTransform_wave, 191
rotated_p_name
acTransform_wave, 191
route, 144
route.cpp, 1323

1430
route::interface_t, 1101
algo, 1104
cfac, 1103
cfin, 1103
cfout, 1103
interface_t, 1102
patchbay, 1103
prepare, 1102
prepared, 1104
process, 1102
release, 1102
route_ac, 1103
route_out, 1103
stopped, 1104
update, 1103
route::process_t, 1104
process, 1105
process_t, 1105
sout, 1105
sout_ac, 1106
wout, 1105
wout_ac, 1106
route_ac
route::interface_t, 1103
route_out
route::interface_t, 1103
rows
acsave::mat4head_t, 179
rt_nlms_t, 1106
∼rt_nlms_t, 1107
ac, 1108
channels, 1108
F, 1108
frames, 1108
fu, 1109
fu_previous, 1109
fuflt, 1109
insert, 1108
n_no_update_, 1110
name_d_, 1110
name_e_, 1110
name_u_, 1110
no_iter, 1110
ntaps, 1108
P_Sum, 1110
process, 1107
Pu, 1109
rt_nlms_t, 1107
s_E, 1110
U, 1109
Uflt, 1109

INDEX
y_previous, 1110
rt_process
analysepath_t, 227
rtcalibrator
transducers.cpp, 1335
run
MHA_TCP::Thread, 574
mhaserver_t, 926
runtime configuration, 4
rval
MHAParser::expression_t, 795
s_E_pred_err_delay
prediction_error_config, 1094
s_LPC
prediction_error_config, 1095
s_U_delay
prediction_error_config, 1095
s_U_delayflt
prediction_error_config, 1095
s_Usmpl
prediction_error_config, 1096
s_Wflt
prediction_error_config, 1095
s_Y_delay
prediction_error_config, 1095
s_Y_delayflt
prediction_error_config, 1095
s_b
lpc_bl_predictor_config, 463
lpc_burglattice_config, 470
s_E
prediction_error_config, 1093
rt_nlms_t, 1110
s_f
lpc_bl_predictor_config, 463
lpc_burglattice_config, 470
s_file_in
io_file_t, 417
s_in
io_file_t, 417
io_parser_t, 427
io_tcp_sound_t, 445
MHAIOPortAudio::io_portaudio_t, 699
MHAJack::client_t, 718
s_out
coherence::cohflt_t, 263
combc_t, 271
fftfilterbank::fftfb_plug_t, 384
io_file_t, 417
io_parser_t, 427
MHAIOPortAudio::io_portaudio_t, 699
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHAJack::client_t, 718
s_U
prediction_error_config, 1094
s_W
prediction_error_config, 1094
sInput
MHAFilter::fftfilter_t, 626
SOCKET_ERROR
mha_tcp.cpp, 1281
SOCKET
MHA_TCP, 100
mha_tcp.cpp, 1281
SPP
timo_AC, 1156
START_BETA
ADM, 90
STRERROR
MHA_TCP, 100
STRLEN
mha_errno.c, 1234
sWeights
MHAFilter::fftfilter_t, 626
safe_div
Complex arithmetics in the openMHA, 76
mha_signal.cpp, 1268
mha_signal.hh, 1278
sample
lpc_config, 473
samplerate
io_file_t, 415
io_tcp_sound_t, 444
MHAIOPortAudio::io_portaudio_t, 699
MHAJack::client_t, 717
samples_AC
acConcat_wave, 153
samplingrate
MHAOvlFilter::fftfb_t, 744
save_m
acsave::save_var_t, 181
save_mat4
acsave::save_var_t, 181
save_spec.cpp, 1323
save_spec_t, 1111
basename, 1112
prepare, 1112
process, 1112
save_spec_t, 1112
save_txt
acsave::save_var_t, 181
save_var_t
acsave::save_var_t, 180
© 2005-2018 HörTech gGmbH, Oldenburg

1431
save_vars
acmon::acmon_t, 161
save_wave.cpp, 1323
save_wave_t, 1113
basename, 1114
prepare, 1114
process, 1114
save_wave_t, 1113
saveas_mat4
MHASignal, 138, 139
sc
MHASignal::hilbert_fftw_t, 947
spec2wave_t, 1143
scale
example5_t, 367
MHASignal, 135
MHASignal::fft_t, 944
MHASignal::spectrum_t, 983
MHASignal::waveform_t, 1005
scale_ch
example2_t, 357
example3_t, 361
example4_t, 365
plugin_interface_t, 1066
scale_channel
MHASignal::spectrum_t, 984
MHASignal::waveform_t, 1005
scale_frame
MHASignal::waveform_t, 1006
scale_fun_t
MHAOvlFilter, 112
scale_var_t
MHAOvlFilter::scale_var_t, 762
scalefac
MHATableLookup::linear_table_t, 1013
scaler_t
gain::scaler_t, 402
scan_plugin
pluginbrowser_t, 1067
scan_plugins
pluginbrowser_t, 1067
scheduler
analysepath_t, 229
MHAPlugin_Split::posix_threads_t, 906
schroeder_t
MHASignal::schroeder_t, 977, 978
sec2smp
Vector and matrix processing toolbox, 46
select_plug
altplugs_t, 224
select_source

1432
MHAMultiSrc::base_t, 730
selected_plug
altplugs_t, 224
Server
MHA_TCP::Server, 565, 566
server
io_tcp_t, 450
server_port_open
io_tcp_parser_t, 439
servername
MHAIOJack::io_jack_t, 690
serversocket
MHA_TCP::Server, 568
set
Complex arithmetics in the openMHA, 70,
71
MHA_TCP::Async_Notify, 550
set_announce_port
mhaserver_t, 926
set_channelcnt
MHAFilter::adapt_filter_t, 612
set_connected
io_tcp_parser_t, 437
set_entries
MHAParser::keyword_list_t, 807
set_errnos
io_tcp_fwcb_t, 430
set_error
mha_fifo_lw_t, 527
set_fb_pars
DynComp::dc_afterburn_t, 343
set_help
MHAParser::base_t, 773
set_id_string
MHAParser::parser_t, 839
set_index
MHAParser::keyword_list_t, 808
set_input_domain
MHAPlugin_Split::domain_handler_t, 896
set_input_portnames
MHAJack::client_t, 714
set_level
fader_wave::fader_wave_if_t, 375
set_level_db
MHASignal::loop_wavefragment_t, 953
set_level_lin
MHASignal::loop_wavefragment_t, 953
set_local_port
io_tcp_parser_t, 435
set_max_angle_ind
parser_int_dyn, 1062

INDEX
set_minabs
mha_signal.cpp, 1268
mha_signal.hh, 1278
set_new_peer
io_tcp_parser_t, 438
set_node_id
MHAParser::base_t, 772
set_output_domain
MHAPlugin_Split::domain_handler_t, 896
set_output_portnames
MHAJack::client_t, 715
set_parse_cb
MHAParser::c_ifc_parser_t, 784
set_range
MHAParser::kw_t, 812
MHAParser::range_var_t, 842
set_server_port_open
io_tcp_parser_t, 436
set_state
MHAFilter::complex_bandpass_t,
618,
619
MHAFilter::iir_ord1_real_t, 649
set_tau
MHAFilter::o1flt_lowpass_t, 656, 657
MHAFilter::o1flt_maxtrack_t, 659
MHAFilter::o1flt_mintrack_t, 661
set_tau_attack
MHAFilter::o1_ar_filter_t, 653
set_tau_release
MHAFilter::o1_ar_filter_t, 653
set_use_jack_transport
MHAJack::client_t, 715
set_value
MHAParser::keyword_list_t, 807
set_weights
MHAFilter::complex_bandpass_t, 619
MHAFilter::gamma_flt_t, 640
set_xfun
MHATableLookup::xy_table_t, 1018
set_xmax
MHATableLookup::linear_table_t, 1011
set_xmin
MHATableLookup::linear_table_t, 1011
set_xyfun
MHATableLookup::xy_table_t, 1019
set_yfun
MHATableLookup::xy_table_t, 1019
setchannels
dc::wideband_inhib_vars_t, 295
setlock
io_file_t, 414
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHAParser::variable_t, 851
sf
MHASndFile::sf_t, 1007
wavwriter_t, 1187
sf_in
io_file_t, 417
sf_out
io_file_t, 417
sf_t
MHASndFile::sf_t, 1007
sf_wave_t
MHASndFile::sf_wave_t, 1008
sfinf_in
io_file_t, 417
sfinf_out
io_file_t, 418
shadowfilter_begin, 144
shadowfilter_begin.cpp, 1323
shadowfilter_begin::cfg_t, 1114
cfg_t, 1115
in_spec_copy, 1115
nch, 1115
ntracks, 1116
out_spec, 1115
process, 1115
shadowfilter_begin::shadowfilter_begin_←t, 1116
basename, 1117
nch, 1118
ntracks, 1118
prepare, 1117
process, 1117
shadowfilter_begin_t, 1117
shadowfilter_begin_t
shadowfilter_begin::shadowfilter_begin←_t, 1117
shadowfilter_end, 144
shadowfilter_end.cpp, 1323
shadowfilter_end::cfg_t, 1118
ac, 1119
cfg_t, 1118
gains, 1120
in_spec, 1120
name, 1119
nch_out, 1119
nfft, 1119
ntracks, 1119
out_spec, 1120
process, 1119
shadowfilter_end::shadowfilter_end_t, 1120
basename, 1122
© 2005-2018 HörTech gGmbH, Oldenburg

1433
prepare, 1121
process, 1121
shadowfilter_end_t, 1121
shadowfilter_end_t
shadowfilter_end::shadowfilter_end_←t, 1121
shape
MHAOvlFilter::fftfb_t, 744
shapes
MHAOvlFilter::fftfb_vars_t, 748
shift
lpc, 456
lpc_config, 472
shifted
hilbert_shifter_t, 406
side
mha_channel_info_t, 502
sign_t
MHASignal::schroeder_t, 977
signal_counter
MHASignal, 139
signal_out
MHAPlugin_Split::split_t, 911
sinc
MHAFilter, 106
sine.cpp, 1324
sine_cfg_t, 1122
amplitude, 1123
channels, 1123
mix, 1123
phase_increment_div_2pi, 1122
sine_cfg_t, 1122
sine_t, 1123
∼sine_t, 1124
channels, 1125
frequency, 1125
lev, 1125
mode, 1125
patchbay, 1126
phase_div_2pi, 1125
prepare, 1125
process, 1124
sine_t, 1124
update_cfg, 1125
size
MHA_AC::ac2matrix_helper_t, 480
MHA_AC::acspace2matrix_t, 486
MHAKernel::algo_comm_class_t, 728
MHASignal::matrix_t, 960
Vector and matrix processing toolbox, 51,
52

1434
size_t
MHAParser::keyword_list_t, 806
Sleep
mha_tcp.hh, 1283
slope
softclipper_t, 1135
softclipper_variables_t, 1137
slope_db
softclip_t, 1133
smoothgains_bridge, 144
smoothgains_bridge.cpp, 1324
smoothgains_bridge::overlapadd_if_t, 1126
∼overlapadd_if_t, 1127
algo, 1129
cf_in, 1129
cf_out, 1129
epsilon, 1128
irswnd, 1128
mode, 1128
overlapadd_if_t, 1127
patchbay, 1128
plugloader, 1129
prepare, 1127
process, 1128
release, 1127
update, 1128
smoothgains_bridge::smoothspec_wrap_←t, 1129
proc_1, 1130
proc_2, 1130
smoothspec, 1131
smoothspec_epsilon, 1131
smoothspec_wrap_t, 1130
spec_in_copy, 1130
use_smoothspec, 1131
smoothspec
MHAFilter::smoothspec_t, 677
smoothgains_bridge::smoothspec_←wrap_t, 1131
smoothspec_epsilon
smoothgains_bridge::smoothspec_←wrap_t, 1131
smoothspec_t
MHAFilter::smoothspec_t, 676
smoothspec_wrap_t
smoothgains_bridge::smoothspec_←wrap_t, 1130
smp2rad
Vector and matrix processing toolbox, 47
smp2sec
Vector and matrix processing toolbox, 46

INDEX
smpl
prediction_error_config, 1096
sn_in
MHAJack::client_avg_t, 704
MHAJack::client_noncont_t, 708
sn_out
MHAJack::client_avg_t, 704
MHAJack::client_noncont_t, 708
snprintf_required_length
mha_error_helpers, 98
snrPost1Debug
noisePowProposedScale::noisePow←Proposed, 1051
sock_addr
MHA_TCP::Server, 567
Sockaccept_Event
MHA_TCP::Sockaccept_Event, 569
Sockread_Event
MHA_TCP::Sockread_Event, 570
Sockwrite_Event
MHA_TCP::Sockwrite_Event, 571
softclip
calibrator_runtime_layer_t, 247
calibrator_variables_t, 253
softclip.cpp, 1324
softclip_t, 1131
attack, 1133
decay, 1133
patchbay, 1133
prepare, 1132
process, 1132
slope_db, 1133
softclip_t, 1132
start_limit, 1133
tftype, 1133
update, 1133
softclipper_t, 1134
attack, 1135
clipmeter, 1135
decay, 1135
hardlimit, 1135
linear, 1135
process, 1134
slope, 1135
softclipper_t, 1134
threshold, 1135
softclipper_variables_t, 1136
clipped, 1138
hardlimit, 1137
linear, 1137
max_clipped, 1138
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
slope, 1137
softclipper_variables_t, 1136
tau_attack, 1137
tau_clip, 1137
tau_decay, 1137
threshold, 1137
sort_fftw2spec
MHASignal::fft_t, 943
sort_spec2fftw
MHASignal::fft_t, 943
sound
io_tcp_t, 449
source_channel_index
MHAFilter::partitioned_convolution_t←::index_t, 668
MHAFilter::transfer_function_t, 685
sout
matrixmixer::cfg_t, 475
route::process_t, 1105
sout_ac
route::process_t, 1106
spec2fir
MHAFilter, 105
MHAFilter::smoothspec_t, 677
spec2spec
plugindescription_t, 1070
spec2wave
MHASignal::fft_t, 941, 942
plugindescription_t, 1070
spec2wave.cpp, 1324
max, 1325
min, 1325
spec2wave_if_t, 1138
patchbay, 1140
prepare, 1139
process, 1139
ramplen, 1140
spec2wave_if_t, 1139
update, 1140
window_config, 1140
spec2wave_scale
MHASignal::fft_t, 942
spec2wave_t, 1140
∼spec2wave_t, 1141
calc_out, 1142
ft, 1142
nfft, 1143
npad1, 1142
npad2, 1142
nwndshift, 1143
out_buf, 1142
© 2005-2018 HörTech gGmbH, Oldenburg

1435
postwindow, 1143
process, 1141
ramps, 1142
sc, 1143
spec2wave_t, 1141
write_buf, 1142
spec_fader_t, 1143
∼spec_fader_t, 1144
fr, 1144
gains, 1144
nch, 1144
spec_fader_t, 1144
spec_in
MHAPlugin_Split::domain_handler_t, 899
overlapadd::overlapadd_t, 1059
wave2spec_t, 1181
spec_in_copy
smoothgains_bridge::smoothspec_←wrap_t, 1130
spec_out
MHAPlugin_Split::domain_handler_t, 899
MHAPlugin_Split::split_t, 913
timoConfig, 1166
specSteer1
acSteer_config, 188
specSteer2
acSteer_config, 188
spectrum_t
MHA_AC::spectrum_t, 493
MHAMultiSrc::spectrum_t, 733
MHASignal::spectrum_t, 980, 981
speechnoise
calibrator_runtime_layer_t, 247
speechnoise.cpp, 1325
bandw_correction, 1328
erb_hz_f_hz, 1327
fhz2bandno, 1327
hz2hz, 1327
NUM_ENTR_LTASS, 1327
NUM_ENTR_MHAORIG, 1326
NUM_ENTR_OLNOISE, 1327
vLTASS_combined_lev, 1329
vLTASS_female_lev, 1329
vLTASS_freq, 1328
vLTASS_male_lev, 1329
vMHAOrigFreq, 1328
vMHAOrigSpec, 1328
vOlnoiseFreq, 1329
vOlnoiseLev, 1329
speechnoise.h, 1330
speechnoise_t, 1145

1436
creator, 1147
noise_type_t, 1145
speechnoise_t, 1146
split.cpp, 1330
default_thread_platform_string, 1331
default_thread_platform_type, 1331
MHAPLUGIN_OVERLOAD_OUTDOM←AIN, 1331
posixthreads, 1331
split_t
MHAPlugin_Split::split_t, 909
splitted_part_t
MHAPlugin_Split::splitted_part_t,
915,
916
spnoise_channels
calibrator_variables_t, 252
spnoise_level
calibrator_variables_t, 252
spnoise_mode
calibrator_variables_t, 252
spnoise_parser
calibrator_variables_t, 253
spp
timoSmooth, 1172
srate
adm_if_t, 208
calibrator_variables_t, 253
MHAParser::mhaconfig_mon_t, 825
MHAPlugin_Resampling::resampling_if←_t, 889
mhaconfig_t, 597
srate_
MHAFilter::gamma_flt_t, 642
srcfile
MHAParser::parser_t, 839
srcline
MHAParser::parser_t, 839
start
fw_t, 390
io_file_t, 413
io_lib_t, 420
io_parser_t, 425
io_tcp_fwcb_t, 430
io_tcp_t, 448
MHAJack::client_t, 713
start_event
io_file_t, 415
io_parser_t, 426
io_tcp_fwcb_t, 431
MHAIOPortAudio::io_portaudio_t, 700
MHAJack::client_t, 717

INDEX
start_handle
io_file_t, 415
io_parser_t, 427
io_tcp_fwcb_t, 432
MHAIOPortAudio::io_portaudio_t, 700
MHAJack::client_t, 718
start_limit
softclip_t, 1133
start_lin
cfg_t, 255
start_new_session
wavrec_t, 1183
started
fw_t, 391, 392
io_parser_t, 425
starting
mha_drifter_fifo_t, 518
startsample
io_file_t, 416
startup_zeros
mha_drifter_fifo_t, 521
stat_t
MHA_AC::stat_t, 495
MHASignal::stat_t, 985
state
fw_t, 396
MHA_TCP::Thread, 575
MHAFilter::filter_t, 638
state_cpuload
MHAIOJack::io_jack_t, 692
state_parser
MHAIOJack::io_jack_t, 692
state_priority
MHAIOJack::io_jack_t, 692
state_scheduler
MHAIOJack::io_jack_t, 692
state_t
fw_t, 389
state_xruns
MHAIOJack::io_jack_t, 692
staticgain
coherence::cohflt_t, 264
coherence::vars_t, 266
status
MHA_TCP::Wakeup_Event, 581
std
MHA_AC::stat_t, 495
std_vector_float
Vector and matrix processing toolbox, 58
std_vector_vector_complex
Vector and matrix processing toolbox, 58
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
std_vector_vector_float
Vector and matrix processing toolbox, 58
stdcomplex
Complex arithmetics in the openMHA, 71
steerFile
acSteer, 185
steerbf, 1147
∼steerbf, 1148
angle_ind, 1150
angle_src, 1150
bf_src, 1150
patchbay, 1150
prepare, 1149
process, 1149
release, 1149
steerbf, 1148
update_cfg, 1149
steerbf.cpp, 1331
INSERT_PATCH, 1332
PATCH_VAR, 1332
steerbf.h, 1332
steerbf_config, 1150
_steerbf, 1152
∼steerbf_config, 1151
ac, 1152
bf_src_copy, 1152
bf_vec, 1152
nangle, 1152
nchan, 1151
nfreq, 1152
outSpec, 1152
process, 1151
steerbf_config, 1151
stime
MHA_TCP, 101
stop
fw_t, 391
io_file_t, 414
io_lib_t, 421
io_parser_t, 425
io_tcp_fwcb_t, 431
io_tcp_t, 448
MHAJack::client_t, 713
mha_drifter_fifo_t, 518
stop_event
io_file_t, 416
io_parser_t, 427
io_tcp_fwcb_t, 431
MHAIOPortAudio::io_portaudio_t, 700
MHAJack::client_t, 718
stop_handle
© 2005-2018 HörTech gGmbH, Oldenburg

1437
io_file_t, 416
io_parser_t, 427
io_tcp_fwcb_t, 432
MHAIOPortAudio::io_portaudio_t, 700
MHAJack::client_t, 718
stopped
fw_t, 391, 392
io_file_t, 414
io_parser_t, 425
MHAJack::client_t, 716
route::interface_t, 1104
store
mon_t, 1033
store_frame
acsave::cfg_t, 177
acsave::save_var_t, 181
str2val
MHAParser::StrCnv, 126, 127
str2val< mha_real_t >
MHAParser::StrCnv, 127
str_error
MHAJack::client_t, 714
strNames_AC
acConcat_wave_config, 155
strdom
analysemhaplugin.cpp, 1199
latex_doc_t, 452
strict_channel_match
io_file_t, 416
strict_srate_match
io_file_t, 417
stride
comm_var_t, 272
string_mon_t
MHAParser::string_mon_t, 846
string_t
MHAParser::string_t, 848
strreplace
MHAParser, 123
structVersion
MHAIOPortAudio::device_info_t, 694
subsample_delay_t
MHASignal::subsample_delay_t, 987
subsampledelay_coeff
ADM, 89
sum
MHASignal::stat_t, 986
MHASignal::waveform_t, 999, 1000
sum2
MHASignal::stat_t, 986
sum_channel

1438
MHASignal::waveform_t, 1000
sumsqr
MHASignal::waveform_t, 1000
sumsqr_channel
Vector and matrix processing toolbox, 66
sumsqr_frame
Vector and matrix processing toolbox, 66
svc
analysepath_t, 227
symmetry_scale
MHAOvlFilter::fspacing_t, 755
sync
mha_fifo_lw_t, 527
mha_fifo_thread_guard_t, 537
sysread
MHA_TCP::Connection, 555
syswrite
MHA_TCP::Connection, 555
t
acsave::mat4head_t, 179
mha_tictoc_t, 582
tAC
timoConfig, 1163
table
cpuload_t, 276
table_t
MHATableLookup::table_t, 1014
tail
MHAFilter::fftfilterbank_t, 632
target_channel_index
MHAFilter::partitioned_convolution_t←::index_t, 668
MHAFilter::transfer_function_t, 685
tau
coherence::vars_t, 265
droptect_t, 335
fader_if_t, 373
tau_attack
softclipper_variables_t, 1137
tau_beta
adm_if_t, 208
tau_clip
softclipper_variables_t, 1137
tau_decay
softclipper_variables_t, 1137
tau_level
calibrator_variables_t, 252
tau_unit
coherence::vars_t, 265
tauattack
dc::dc_vars_t, 289

INDEX
dc_simple::dc_vars_t, 307
taudecay
dc::dc_vars_t, 289
dc_simple::dc_vars_t, 307
taugain
DynComp::dc_afterburn_vars_t, 347
taurmslevel
dc::dc_vars_t, 289
tcp_connect_to
mha_tcp.cpp, 1281
tcp_connect_to_with_timeout
mha_tcp.cpp, 1282
tcpserver
mhaserver_t, 927
termination_request
MHAPlugin_Split::posix_threads_t, 906
test_error
io_lib_t, 421
MHAParser::c_ifc_parser_t, 785
PluginLoader::mhapluginloader_t, 1082
test_fail
dc_simple, 92
test_version
PluginLoader::mhapluginloader_t, 1082
testalsadevice.c, 1332
main, 1332
tftype
MHAPlugin::plugin_t, 886
softclip_t, 1133
The MHA Framework interface, 27
The openMHA configuration language, 35
The openMHA Plugins (programming interface), 6
MHAPLUGIN_CALLBACKS_PREFIX, 8
MHAPLUGIN_CALLBACKS, 8
MHAPLUGIN_DOCUMENTATION, 9
The openMHA Toolbox library, 36
thefullname
MHAParser::base_t, 776
thirdoctave_analyzer_t
MHAFilter::thirdoctave_analyzer_t, 680
this_outer_out
MHASignal::doublebuffer_t, 939
thr_f
MHA_TCP::Thread, 572
Thread
MHA_TCP::Thread, 573
thread
analysepath_t, 230
io_tcp_t, 450
MHAPlugin_Split::posix_threads_t, 906
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHAPlugin_Split::splitted_part_t, 919
thread_arg
MHA_TCP::Thread, 575
thread_attr
MHA_TCP::Thread, 574
thread_finish_event
MHA_TCP::Thread, 575
thread_func
MHA_TCP::Thread, 575
thread_handle
MHA_TCP::Thread, 574
thread_platform
MHAPlugin_Split::split_t, 912
thread_platform_t
MHAPlugin_Split::thread_platform_t, 920
thread_start
analysispath.cpp, 1199
MHAPlugin_Split::posix_threads_t, 904
thread_start_func
mha_tcp.cpp, 1282
thread_startup_function
MHAIOTCP.cpp, 1309
threshold
droptect_t, 334
softclipper_t, 1135
softclipper_variables_t, 1137
tictoc
mhachain::plugs_t, 594
timeout
MHA_TCP::OS_EVENT_TYPE, 564
MHA_TCP::Timeout_Watcher, 578
Timeout_Event
MHA_TCP::Timeout_Event, 576
Timeout_Watcher
MHA_TCP::Timeout_Watcher, 578
timeshift
Vector and matrix processing toolbox, 54
timo_AC, 1153
alpha_frame_AC, 1155
alpha_hat_AC, 1155
copy, 1154
gain_wiener_AC, 1156
gamma_post_AC, 1154
insert, 1154
lambda_ceps_AC, 1155
lambda_ml_AC, 1154
lambda_ml_ceps_AC, 1154
lambda_ml_smooth_AC, 1155
lambda_spec_AC, 1156
log_lambda_spec_AC, 1156
max_q_AC, 1155
© 2005-2018 HörTech gGmbH, Oldenburg

1439
max_val_AC, 1155
pitch_set_first_AC, 1155
pitch_set_last_AC, 1155
SPP, 1156
timo_AC, 1153
winF0_AC, 1156
xi_est_AC, 1156
xi_ml_AC, 1154
timo_params, 1157
alpha_const_limits_hz, 1159
alpha_const_vals, 1159
alpha_pitch, 1158
beta_const, 1159
delta_pitch, 1158
f0_high, 1158
f0_low, 1158
gain_min_db, 1159
in_cfg, 1158
kappa_const, 1159
lambda_thresh, 1158
noisePow_name, 1160
prior_q, 1159
timo_params, 1157
winF0, 1159
xi_min_db, 1158
xi_opt_db, 1159
timoConfig, 1160
∼timoConfig, 1161
ac, 1162
alpha_const, 1163
alpha_frame, 1165
alpha_hat, 1165
alpha_prev, 1164
copy_AC, 1162
fftlen, 1162
GLRexp, 1167
GLR, 1167
gain_min, 1163
gain_wiener, 1165
gamma_post, 1164
lambda_ceps, 1165
lambda_ceps_prev, 1165
lambda_ml_ceps, 1164
lambda_ml_full, 1164
lambda_ml_smooth, 1164
lambda_spec, 1165
log_lambda_spec, 1165
logGLRFact, 1166
max_q, 1166
max_val, 1166
mha_fft, 1162

1440
nchan, 1162
nfreq, 1162
noisePow, 1164
ola_powspec_scale, 1163
params, 1162
pitch_set_first, 1166
pitch_set_last, 1166
powSpec, 1164
priorFact, 1166
process, 1161
q_high, 1163
q_low, 1163
spec_out, 1166
tAC, 1163
timoConfig, 1161
winF0, 1163
xi_est, 1165
xi_min, 1163
xi_ml, 1164
xiOpt, 1166
timoSmooth, 1167
∼timoSmooth, 1169
alpha_const_limits_hz, 1172
alpha_const_vals, 1171
alpha_pitch, 1171
beta_const, 1171
delta_pitch, 1171
f0_high, 1170
f0_low, 1170
gain_min_db, 1171
kappa_const, 1171
lambda_thresh, 1171
noisePow_name, 1172
on_model_param_valuechanged, 1170
patchbay, 1172
prepare, 1169
prepared, 1172
prior_q, 1172
process, 1169
release, 1170
spp, 1172
timoSmooth, 1168
update_cfg, 1170
win_f0, 1171
xi_min_db, 1170
xi_opt_db, 1172
timoSmooth.cpp, 1334
INSERT_PATCH, 1334
INSERT_VAR, 1334
PATCH_VAR, 1334
timoconfig.cpp, 1333

INDEX
CHANLOOP, 1333
EPSILON, 1333
LPSCALE, 1333
OVERLAP_FACTOR, 1333
POWSPEC_FACTOR, 1333
timoconfig.h, 1334
timosmooth.h, 1335
tmp_spec
MHAFilter::smoothspec_t, 679
tmp_wave
MHAFilter::smoothspec_t, 678
to_from
acTransform_wave, 191
acTransform_wave_config, 194
total_read
io_file_t, 418
transducers.cpp, 1335
kw_index2type, 1336
rmslevelmeter, 1335
rtcalibrator, 1335
vint_0123n1, 1336
transfer_function_t
MHAFilter::transfer_function_t, 683
trigger_processing
MHAPlugin_Split::split_t, 910
MHAPlugin_Split::splitted_part_t, 917
trim
MHAParser, 122
try_accept
MHA_TCP::Server, 567
try_write
MHA_TCP::Connection, 559
tv1
mha_tictoc_t, 582
tv2
mha_tictoc_t, 582
tz
mha_tictoc_t, 582
U
rt_nlms_t, 1109
UCL
AuditoryProfile::parser_t::ear_t, 238
AuditoryProfile::profile_t::ear_t, 243
UPrew
prediction_error_config, 1096
UPrewW
prediction_error_config, 1096
UbufferPrew
prediction_error_config, 1095
Uflt
rt_nlms_t, 1109
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
uint_vector_t
MHASignal::uint_vector_t, 990, 991
underflow
MHAFilter::polyphase_resampling_t, 672
unit
MHAOvlFilter::fscale_t, 751
unit2hz
MHAOvlFilter::scale_var_t, 763
unlock_channels
fw_vars_t, 398
unlock_srate_fragsize
fw_vars_t, 398
unset_fb_pars
DynComp::dc_afterburn_t, 343
up_incl
MHAParser::range_var_t, 844
up_limit
MHAParser::range_var_t, 843
MHASignal::quantizer_t, 970
up_thresh
acPooling_wave_config, 171
update
ac2wave_if_t, 146
adm_if_t, 206
calibrator_t, 250
coherence::cohflt_if_t, 259
dc::dc_if_t, 282
dc::wideband_inhib_vars_t, 295
delay::interface_t, 313
DynComp::dc_afterburn_t, 344
DynComp::gaintable_t, 349
frequency_translator_t, 386
MHA_AC::ac2matrix_t, 482
MHA_AC::acspace2matrix_t, 486
MHA_AC::stat_t, 495
MHAMultiSrc::spectrum_t, 734
MHAMultiSrc::waveform_t, 735
MHAParser::mhaconfig_mon_t, 824
MHAPlugin_Split::split_t, 910
mhachain::chain_base_t, 587
nlms_t, 1042
overlapadd::overlapadd_if_t, 1055
route::interface_t, 1103
smoothgains_bridge::overlapadd_if_←t, 1128
softclip_t, 1133
spec2wave_if_t, 1140
wave2spec_if_t, 1177
update_bbgain
gain::gain_if_t, 401
update_burner
© 2005-2018 HörTech gGmbH, Oldenburg

1441
DynComp::dc_afterburn_t, 343
update_cfg
acConcat_wave, 153
acPooling_wave, 167
acSteer, 185
acTransform_wave, 190
delaysum::delaysum_if_t, 316
doasvm_classification, 321
doasvm_feature_extraction, 327
example6_t, 369
fader_if_t, 372
fftfilterbank::fftfb_interface_t, 380
lpc, 456
lpc_bl_predictor, 459
lpc_burglattice, 466
multibandcompressor::interface_t, 1037
noise_t, 1045
noisePowProposedScale::interface_←t, 1048
plugin_interface_t, 1065
prediction_error, 1089
sine_t, 1125
steerbf, 1149
timoSmooth, 1170
update_coeffs
MHAFilter::fftfilter_t, 624
MHAFilter::fftfilterbank_t, 629
update_dc
dc_simple::dc_if_t, 299
update_filter
MHAFilter::iir_filter_t, 647
update_frame
fader_wave::level_adapt_t, 377
update_gain
gain::gain_if_t, 400
update_gain_mon
dc_simple::dc_if_t, 299
update_hz
MHAOvlFilter::fscale_bw_t, 749
MHAOvlFilter::fscale_t, 751
update_level
dc_simple::dc_if_t, 299
update_level_mon
dc_simple::dc_if_t, 299
update_levels
multibandcompressor::plugin_signals_t,
1039
update_m
matrixmixer::matmix_t, 477
update_minmax
gain::gain_if_t, 401

1442
update_monitors
dc::dc_if_t, 282
update_mu
MHAFilter::adapt_filter_t, 612
update_ntaps
MHAFilter::adapt_filter_t, 612
update_parser
windowselector_t, 1190
update_proc_load
mhachain::plugs_t, 592
update_ramplen
altplugs_t, 223
update_recmode
acmon::acmon_t, 161
update_selector_list
altplugs_t, 223
update_tau_level
calibrator_t, 250
updated
windowselector_t, 1190
updater
MHAOvlFilter::fscale_bw_t, 750
MHAOvlFilter::fscale_t, 752
upper_threshold
acPooling_wave, 167
upsample.cpp, 1336
upsampling_factor
MHAFilter::polyphase_resampling_t, 672
upscale
MHASignal::quantizer_t, 970
us_t, 1173
antialias, 1175
prepare, 1174
process, 1174
ratio, 1174
release, 1174
us_t, 1174
use_date
wavrec_t, 1184
use_frozen_
cfg_t, 256
use_jack_transport
MHAJack::client_t, 719
use_mat
acmon::ac_monitor_t, 159
use_own_ac
altplugs_t, 223
use_sine
cpuload_t, 275
use_smoothspec
smoothgains_bridge::smoothspec_←-

INDEX
wrap_t, 1131
use_wbinhib
dc::dc_vars_t, 291
user
MHAParser::window_t, 875
user_err_msg
MHAIOFile.cpp, 1290
MHAIOJack.cpp, 1295
MHAIOParser.cpp, 1299
MHAIOPortAudio.cpp, 1304
MHAIOTCP.cpp, 1310
user_t
MHAWindow::user_t, 1031
username
MHA_AC::ac2matrix_helper_t, 480
userwnd
windowselector_t, 1191
v_G
prediction_error_config, 1094
vFlog
DynComp::gaintable_t, 351
vGCC_ac
doasvm_feature_extraction_config, 330
vGCC_con
acConcat_wave_config, 155
vGCC_name
doasvm_classification, 322
doasvm_feature_extraction, 327
vGCC
acConcat_wave_config, 155
doasvm_feature_extraction_config, 331
vLTASS_combined_lev
speechnoise.cpp, 1329
vLTASS_female_lev
speechnoise.cpp, 1329
vLTASS_freq
speechnoise.cpp, 1328
vLTASS_male_lev
speechnoise.cpp, 1329
vMHAOrigFreq
speechnoise.cpp, 1328
vMHAOrigSpec
speechnoise.cpp, 1328
vOlnoiseFreq
speechnoise.cpp, 1329
vOlnoiseLev
speechnoise.cpp, 1329
val2str
MHAParser::StrCnv, 127–130
validate
AuditoryProfile::parser_t::fmap_t, 239
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
MHAParser::keyword_list_t, 808
MHAParser::kw_t, 812
MHAParser::range_var_t, 842, 843
validator_channels
mhasndfile.cpp, 1317
validator_length
mhasndfile.cpp, 1317
value
AuditoryProfile::parser_t::fmap_t, 240
MHASignal::ringbuffer_t, 973
MHASignal::spectrum_t, 982
MHASignal::waveform_t, 997, 998
mha_signal.hh, 1278
Vector and matrix processing toolbox, 54–
57
value_type
mha_dblbuf_t, 505
mha_fifo_t, 532
valuechanged
MHAParser::base_t, 774
variable, 4
variable_t
MHAParser::variable_t, 850
variables, 4
acsave::acsave_t, 175
varlist
acmon::acmon_t, 162
acsave::acsave_t, 176
acsave::cfg_t, 178
varlist_t
acsave::acsave_t, 173
vars
acmon::acmon_t, 162
analysispath_if_t, 233
calibrator_t, 250
coherence::cohflt_if_t, 259
MHAKernel::algo_comm_class_t, 728
vars_t
coherence::vars_t, 265
MHAOvlFilter::overlap_save_filterbank_←t::vars_t, 760
vbark
MHAOvlFilter::barkscale, 113
vbin1
MHAOvlFilter::fftfb_t, 744
vbin2
MHAOvlFilter::fftfb_t, 744
vcomplex_mon_t
MHAParser::vcomplex_mon_t, 852
vcomplex_t
MHAParser::vcomplex_t, 856
© 2005-2018 HörTech gGmbH, Oldenburg

1443
vec_y
MHATableLookup::linear_table_t, 1012
Vector and matrix processing toolbox, 38
assign, 53
bin2freq, 47
channels, 44
clear, 52, 53
colored_intensity, 63
conjugate, 66
copy_channel, 61, 62
db2lin, 45
dbspl2pa, 46
dupvec, 49
dupvec_chk, 49
equal_dim, 49, 50
for_each, 44
freq2bin, 47
integrate, 51
lin2db, 44
max, 65
maxabs, 63, 64
mha_real_t, 43
min, 65
operator∗=, 59, 60
operator∧ =, 61
operator+=, 58, 59, 61
operator-=, 59
operator/=, 60
pa22dbspl, 45
pa2dbspl, 45
rad2smp, 48
range, 43
rmslevel, 62, 64
sec2smp, 46
size, 51, 52
smp2rad, 47
smp2sec, 46
std_vector_float, 58
std_vector_vector_complex, 58
std_vector_vector_float, 58
sumsqr_channel, 66
sumsqr_frame, 66
timeshift, 54
value, 54–57
vF
DynComp::gaintable_t, 351
vfloat_mon_t
MHAParser::vfloat_mon_t, 858
vfloat_t
MHAParser::vfloat_t, 860
vfreq

1444
MHAOvlFilter::barkscale, 113
vint_0123n1
transducers.cpp, 1336
vint_mon_t
MHAParser::vint_mon_t, 863
vint_t
MHAParser::vint_t, 865
vL
DynComp::gaintable_t, 351
vmax
gain::gain_if_t, 401
vmin
gain::gain_if_t, 401
vstring_mon_t
MHAParser::vstring_mon_t, 868
vstring_t
MHAParser::vstring_t, 870
vy
MHATableLookup::linear_table_t, 1012
W
MHAFilter::adapt_filter_state_t, 610
w
ac2wave_t, 149
doasvm_classification, 322
MHAOvlFilter::fftfb_t, 743
w_out
combc_t, 271
WINAPI
mha_plugin.hh, 1260
wIRS_fft
MHAFilter::fftfilter_t, 627
wInput
MHAFilter::fftfilter_t, 626
wInput_fft
MHAFilter::fftfilter_t, 626
wOutput
MHAFilter::fftfilter_t, 626
wOutput_fft
MHAFilter::fftfilter_t, 626
wait
MHA_TCP::Event_Watcher, 563
wait_for_decrease
mha_fifo_posix_threads_t, 529
mha_fifo_thread_platform_t, 540
wait_for_increase
mha_fifo_posix_threads_t, 529
mha_fifo_thread_platform_t, 540
Wakeup_Event
MHA_TCP::Wakeup_Event, 580
wave2spec
MHASignal::fft_t, 941

INDEX
plugindescription_t, 1070
wave2spec.cpp, 1336
MHAPLUGIN_OVERLOAD_OUTDOM←AIN, 1336
wave2spec_if_t, 1175
algo, 1178
nfft, 1177
nwnd, 1177
patchbay, 1177
prepare, 1176
process, 1176, 1177
return_wave, 1178
update, 1177
wave2spec_if_t, 1176
window_config, 1177
wndpos, 1177
wave2spec_scale
MHASignal::fft_t, 942
wave2spec_t, 1178
∼wave2spec_t, 1179
calc_in, 1181
calc_pre_wnd, 1180
ft, 1180
in_buf, 1181
npad1, 1180
npad2, 1181
nwnd, 1180
nwndshift, 1180
process, 1180
spec_in, 1181
wave2spec_t, 1179
window, 1181
wave2wave
plugindescription_t, 1069
wave_fifo
analysepath_t, 228
wave_in
MHAPlugin_Split::domain_handler_t, 899
wave_in1
overlapadd::overlapadd_t, 1059
wave_out
MHAPlugin_Split::domain_handler_t, 899
MHAPlugin_Split::split_t, 913
wave_out1
overlapadd::overlapadd_t, 1059
waveform_t
MHA_AC::waveform_t, 497
MHAMultiSrc::waveform_t, 735
MHASignal::waveform_t, 995, 996
wavrec.cpp, 1337
DEBUG, 1337
© 2005-2018 HörTech gGmbH, Oldenburg

INDEX
wavrec_t, 1182
fifolen, 1184
minwrite, 1184
patchbay, 1184
prefix, 1184
prepare, 1183
process, 1183
record, 1184
release, 1183
start_new_session, 1183
use_date, 1184
wavrec_t, 1183
wavwriter_t, 1185
∼wavwriter_t, 1185
act_, 1186
cf_, 1186
close_session, 1186
data, 1187
fifo, 1187
minw_, 1187
process, 1186
sf, 1187
wavwriter_t, 1185
write_thread, 1186
writethread, 1187
wb_inhib_cfg_t
dc::wb_inhib_cfg_t, 293
wbinhib
dc::dc_if_t, 282
weights
dc::wb_inhib_cfg_t, 293
dc::wideband_inhib_vars_t, 296
delaysum::delaysum_if_t, 316
delaysum::delaysum_t, 318
what
MHA_Error, 523
wideband_inhib_vars_t
dc::wideband_inhib_vars_t, 295
win_f0
timoSmooth, 1171
winF0
timo_params, 1159
timoConfig, 1163
winF0_AC
timo_AC, 1156
window
MHAFilter::smoothspec_t, 678
overlapadd::overlapadd_if_t, 1056
wave2spec_t, 1181
window_config
spec2wave_if_t, 1140
© 2005-2018 HörTech gGmbH, Oldenburg

1445
wave2spec_if_t, 1177
window_t
MHAParser::window_t, 873
windowselector.cpp, 1337
windowselector.h, 1337
windowselector_t, 1187
∼windowselector_t, 1189
get_window_data, 1189
insert_items, 1189
invalidate_window_data, 1190
patchbay, 1191
update_parser, 1190
updated, 1190
userwnd, 1191
windowselector_t, 1189
wnd, 1190
wndexp, 1191
wndtype, 1191
wnd
fader_wave::level_adapt_t, 378
windowselector_t, 1190
wnd_funs
mha_windowparser.cpp, 1284
wndexp
overlapadd::overlapadd_if_t, 1056
windowselector_t, 1191
wndlen
doasvm_feature_extraction_config, 329
MHAParser::mhaconfig_mon_t, 825
mhaconfig_t, 596
wndpos
overlapadd::overlapadd_if_t, 1056
wave2spec_if_t, 1177
wndtype
windowselector_t, 1191
worker_thread_priority
MHAPlugin_Split::split_t, 912
worker_thread_scheduler
MHAPlugin_Split::split_t, 912
wout
matrixmixer::cfg_t, 475
route::process_t, 1105
wout_ac
route::process_t, 1106
write
MHA_TCP::Connection, 559
MHAFilter::blockprocessing_polyphase←_resampling_t, 615
MHAFilter::polyphase_resampling_t, 671
MHAJack::port_t, 722
MHASignal::matrix_t, 965

1446

INDEX

MHASignal::ringbuffer_t, 974
timoSmooth, 1170
xi_ml
MHASignal::uint_vector_t, 992
timoConfig, 1164
mha_drifter_fifo_t, 516
xi_ml_AC
mha_fifo_lw_t, 526
timo_AC, 1154
mha_fifo_t, 533
xi_opt_db
write_buf
timo_params, 1159
overlapadd::overlapadd_t, 1060
timoSmooth, 1172
spec2wave_t, 1142
xiOpt
write_event
noisePowProposedScale::noisePow←MHA_TCP::Connection, 560
Proposed, 1052
write_float
timoConfig, 1166
mha_parser.cpp, 1253
xiOptDb
write_ptr
noisePowProposedScale::interface_←mha_fifo_t, 536
t, 1049
write_thread
xmax
wavwriter_t, 1186
MHATableLookup::linear_table_t, 1013
write_wave
xmin
mhasndfile.cpp, 1316
MHATableLookup::linear_table_t, 1013
mhasndfile.h, 1317
Xs
writeaccess
MHAFilter::fftfilterbank_t, 632
MHAParser::base_t, 774
xw
writer_started
MHAFilter::fftfilterbank_t, 631
mha_drifter_fifo_t, 519
xy_table_t
writer_xruns_in_succession
MHATableLookup::xy_table_t, 1017
mha_drifter_fifo_t, 520
xyfun
writer_xruns_since_start
MHATableLookup::xy_table_t, 1020
mha_drifter_fifo_t, 520
writer_xruns_total
y
mha_drifter_fifo_t, 519
doasvm_classification, 322
writethread
y0
wavwriter_t, 1187
dc_simple::dc_t::line_t, 305
Writing openMHA Plugins. A step-by-step tuy_previous
torial, 11
rt_nlms_t, 1110
wtype
YPrew
MHAParser::window_t, 875
prediction_error_config, 1096
wtype_t
yfun
MHAParser::window_t, 873
MHATableLookup::xy_table_t, 1020
Yn
X
MHAFilter::complex_bandpass_t, 620
MHAFilter::adapt_filter_state_t, 610
MHAFilter::iir_ord1_real_t, 651
x
Ys
doasvm_classification, 322
MHAFilter::fftfilterbank_t, 632
xfun
yw
MHATableLookup::xy_table_t, 1020
MHAFilter::fftfilterbank_t, 632
xi_est
yw_temp
timoConfig, 1165
MHAFilter::fftfilterbank_t, 632
xi_est_AC
timo_AC, 1156
zeros
xi_min
ac2wave_if_t, 147
timoConfig, 1163
zerowindow
xi_min_db
overlapadd::overlapadd_if_t, 1056
timo_params, 1158
© 2005-2018 HörTech gGmbH, Oldenburg



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Page Count                      : 1461
Page Mode                       : UseOutlines
Author                          : 
Title                           : 
Subject                         : 
Creator                         : LaTeX with hyperref package
Producer                        : pdfTeX-1.40.18
Create Date                     : 2018:05:18 13:56:45+02:00
Modify Date                     : 2018:05:18 13:56:45+02:00
Trapped                         : False
PTEX Fullbanner                 : This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) kpathsea version 6.2.3
EXIF Metadata provided by EXIF.tools

Navigation menu