Open MHA Developer Manual

User Manual:

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

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

Plugin Developers’ Manual

© 2005-2019 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 2019 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-2019 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
7
11
27
28
32
34
35
37
61
71

4 Namespace Documentation
4.1 ac2lsl Namespace Reference . . . . . . .
4.2 acmon Namespace Reference . . . . . . .
4.3 acsave Namespace Reference . . . . . . .
4.4 addsndfile Namespace Reference . . . . .
4.5 ADM Namespace Reference . . . . . . . .
4.6 AuditoryProfile Namespace Reference . .
4.7 coherence Namespace Reference . . . . .
4.8 dc Namespace Reference . . . . . . . . .
4.9 dc_simple Namespace Reference . . . . .
4.10 delay Namespace Reference . . . . . . . .
4.11 delaysum Namespace Reference . . . . .
4.12 DynComp Namespace Reference . . . . .
4.13 fader_wave Namespace Reference . . . .
4.14 fftfbpow Namespace Reference . . . . . .
4.15 fftfilterbank Namespace Reference . . . .
4.16 fshift Namespace Reference . . . . . . . .
4.17 fshift_hilbert Namespace Reference . . . .
4.18 gain Namespace Reference . . . . . . . .
4.19 gtfb_analyzer Namespace Reference . . .
4.20 matrixmixer Namespace Reference . . . .
4.21 MHA_AC Namespace Reference . . . . .
4.22 mha_error_helpers Namespace Reference
4.23 MHA_TCP Namespace Reference . . . .
4.24 mhachain Namespace Reference . . . . .
4.25 MHAEvents Namespace Reference . . . .
4.26 MHAFilter Namespace Reference . . . . .
4.27 MHAIOJack Namespace Reference . . . .
4.28 MHAIOJackdb Namespace Reference . .
4.29 MHAIOPortAudio Namespace Reference .
4.30 MHAJack Namespace Reference . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

78
78
78
79
79
80
81
82
82
83
84
84
85
86
86
87
87
88
88
88
89
89
90
91
93
93
94
98
98
98
99

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

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

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

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

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

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

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

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

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

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
4.47
4.48
4.49
4.50
4.51
4.52
4.53
4.54
4.55

MHAKernel Namespace Reference . . . . . . . . . .
MHAMultiSrc Namespace Reference . . . . . . . . .
MHAOvlFilter Namespace Reference . . . . . . . . .
MHAOvlFilter::barkscale Namespace Reference . . .
MHAOvlFilter::FreqScaleFun Namespace Reference
MHAOvlFilter::ShapeFun Namespace Reference . .
MHAParser Namespace Reference . . . . . . . . . .
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 . . . . . . . . . .
plingploing Namespace Reference . . . . . . . . . .
PluginLoader Namespace Reference . . . . . . . . .
route Namespace Reference . . . . . . . . . . . . . .
shadowfilter_begin Namespace Reference . . . . . .
shadowfilter_end Namespace Reference . . . . . . .
smoothgains_bridge Namespace Reference . . . . .
testplugin Namespace Reference . . . . . . . . . . .

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

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

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

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

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

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

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

5 Class Documentation
5.1 ac2lsl::ac2lsl_t Class Reference . . . . . . . . . . . . . . . . . . .
5.2 ac2lsl::cfg_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.3 ac2lsl::save_var_base_t Class Reference . . . . . . . . . . . . . .
5.4 ac2lsl::save_var_t< T > Class Template Reference . . . . . . . .
5.5 ac2lsl::save_var_t< mha_complex_t > Class Template Reference
5.6 ac2lsl::type_info Struct Reference . . . . . . . . . . . . . . . . . .
5.7 ac2osc_t Class Reference . . . . . . . . . . . . . . . . . . . . . .
5.8 ac2wave_if_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.9 ac2wave_t Class Reference . . . . . . . . . . . . . . . . . . . . .
5.10 acConcat_wave Class Reference . . . . . . . . . . . . . . . . . .
5.11 acConcat_wave_config Class Reference . . . . . . . . . . . . . .
5.12 acmon::ac_monitor_t Class Reference . . . . . . . . . . . . . . .
5.13 acmon::acmon_t Class Reference . . . . . . . . . . . . . . . . . .
5.14 acPooling_wave Class Reference . . . . . . . . . . . . . . . . . .
5.15 acPooling_wave_config Class Reference . . . . . . . . . . . . . .
5.16 acsave::acsave_t Class Reference . . . . . . . . . . . . . . . . .
5.17 acsave::cfg_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.18 acsave::mat4head_t Struct Reference . . . . . . . . . . . . . . . .
5.19 acsave::save_var_t Class Reference . . . . . . . . . . . . . . . .
5.20 acSteer Class Reference . . . . . . . . . . . . . . . . . . . . . . .
5.21 acSteer_config Class Reference . . . . . . . . . . . . . . . . . . .
5.22 acTransform_wave Class Reference . . . . . . . . . . . . . . . . .
5.23 acTransform_wave_config Class Reference . . . . . . . . . . . .
5.24 addsndfile::addsndfile_if_t Class Reference . . . . . . . . . . . .
5.25 addsndfile::level_adapt_t Class Reference . . . . . . . . . . . . .
© 2005-2019 HörTech gGmbH, Oldenburg

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

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

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

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

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

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

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

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

101
101
102
103
103
106
107
112
116
117
117
118
125
125
125
127
127
127
128
128
129
129
129
130
130

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

130
130
133
136
137
140
143
144
148
150
151
154
155
157
160
163
165
168
169
170
172
174
176
178
180
183

vi
5.26
5.27
5.28
5.29
5.30
5.31
5.32
5.33
5.34
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

CONTENTS

addsndfile::resampled_soundfile_t Class Reference . . .
addsndfile::sndfile_t Class Reference . . . . . . . . . . .
addsndfile::waveform_proxy_t Class Reference . . . . .
ADM::ADM< F > Class Template Reference . . . . . . .
ADM::Delay< F > Class Template Reference . . . . . .
ADM::Linearphase_FIR< F > Class Template Reference
adm_if_t Class Reference . . . . . . . . . . . . . . . . .
adm_rtconfig_t Class Reference . . . . . . . . . . . . . .
algo_comm_t Struct Reference . . . . . . . . . . . . . .
alsa_base_t Class Reference . . . . . . . . . . . . . . .
alsa_dev_par_parser_t Class Reference . . . . . . . . .
alsa_t< T > Class Template Reference . . . . . . . . . .
altplugs_t Class Reference . . . . . . . . . . . . . . . . .
analysepath_t Class Reference . . . . . . . . . . . . . .
analysispath_if_t Class Reference . . . . . . . . . . . . .
AuditoryProfile::fmap_t Class Reference . . . . . . . . .
AuditoryProfile::parser_t Class Reference . . . . . . . .
AuditoryProfile::parser_t::ear_t Class Reference . . . . .
AuditoryProfile::parser_t::fmap_t Class Reference . . . .
AuditoryProfile::profile_t Class Reference . . . . . . . . .
AuditoryProfile::profile_t::ear_t Class Reference . . . . .
bbcalib_interface_t Class Reference . . . . . . . . . . . .
calibrator_runtime_layer_t Class Reference . . . . . . .
calibrator_t Class Reference . . . . . . . . . . . . . . . .
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 . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

184
186
187
188
191
193
195
197
201
206
208
210
213
217
219
221
222
223
224
226
227
228
229
231
233
235
237
239
241
243
244
246
247
249
251
253
255
257
260
260
261
263
266
268
269
270
271
273
274
277
279

© 2005-2019 HörTech gGmbH, Oldenburg

CONTENTS
5.77 doasvm_classification_config Class Reference . . . .
5.78 doasvm_feature_extraction Class Reference . . . . .
5.79 doasvm_feature_extraction_config Class Reference .
5.80 droptect_t Class Reference . . . . . . . . . . . . . . .
5.81 ds_t Class Reference . . . . . . . . . . . . . . . . . .
5.82 dynamiclib_t Class Reference . . . . . . . . . . . . .
5.83 DynComp::dc_afterburn_rt_t Class Reference . . . .
5.84 DynComp::dc_afterburn_t Class Reference . . . . . .
5.85 DynComp::dc_afterburn_vars_t Class Reference . .
5.86 DynComp::gaintable_t Class Reference . . . . . . . .
5.87 example1_t Class Reference . . . . . . . . . . . . . .
5.88 example2_t Class Reference . . . . . . . . . . . . . .
5.89 example3_t Class Reference . . . . . . . . . . . . . .
5.90 example4_t Class Reference . . . . . . . . . . . . . .
5.91 example5_t Class Reference . . . . . . . . . . . . . .
5.92 example6_t Class Reference . . . . . . . . . . . . . .
5.93 expression_t Class Reference . . . . . . . . . . . . .
5.94 fader_if_t Class Reference . . . . . . . . . . . . . . .
5.95 fader_wave::fader_wave_if_t Class Reference . . . .
5.96 fader_wave::level_adapt_t Class Reference . . . . .
5.97 fftfbpow::fftfbpow_interface_t Class Reference . . . .
5.98 fftfbpow::fftfbpow_t Class Reference . . . . . . . . .
5.99 fftfilterbank::fftfb_interface_t Class Reference . . . .
5.100 fftfilterbank::fftfb_plug_t Class Reference . . . . . . .
5.101 fshift::fshift_config_t Class Reference . . . . . . . . .
5.102 fshift::fshift_t Class Reference . . . . . . . . . . . . .
5.103 fshift_hilbert::frequency_translator_t Class Reference
5.104 fshift_hilbert::hilbert_shifter_t Class Reference . . . .
5.105 fw_t Class Reference . . . . . . . . . . . . . . . . . .
5.106 fw_vars_t Class Reference . . . . . . . . . . . . . . .
5.107 gain::gain_if_t Class Reference . . . . . . . . . . . .
5.108 gain::scaler_t Class Reference . . . . . . . . . . . . .
5.109 gtfb_analyzer::gtfb_analyzer_cfg_t Struct Reference
5.110 gtfb_analyzer::gtfb_analyzer_t Class Reference . . .
5.111 hanning_ramps_t Class Reference . . . . . . . . . .
5.112 identity_t Class Reference . . . . . . . . . . . . . . .
5.113 iirfilter_t Class Reference . . . . . . . . . . . . . . . .
5.114 io_alsa_t Class Reference . . . . . . . . . . . . . . .
5.115 io_file_t Class Reference . . . . . . . . . . . . . . . .
5.116 io_lib_t Class Reference . . . . . . . . . . . . . . . .
5.117 io_parser_t Class Reference . . . . . . . . . . . . . .
5.118 io_tcp_fwcb_t Class Reference . . . . . . . . . . . .
5.119 io_tcp_parser_t Class Reference . . . . . . . . . . .
5.120 io_tcp_sound_t Class Reference . . . . . . . . . . . .
5.121 io_tcp_sound_t::float_union Union Reference . . . .
5.122 io_tcp_t Class Reference . . . . . . . . . . . . . . . .
5.123 latex_doc_t Class Reference . . . . . . . . . . . . . .
5.124 lpc Class Reference . . . . . . . . . . . . . . . . . . .
5.125 lpc_bl_predictor Class Reference . . . . . . . . . . .
5.126 lpc_bl_predictor_config Class Reference . . . . . . .
5.127 lpc_burglattice Class Reference . . . . . . . . . . . .
© 2005-2019 HörTech gGmbH, Oldenburg

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

281
283
285
287
290
291
292
294
296
298
303
305
308
312
315
316
318
318
320
322
323
326
328
330
332
334
337
339
343
348
350
352
352
355
358
359
360
361
365
369
372
375
378
384
388
389
391
395
398
400
402

viii

CONTENTS

5.128 lpc_burglattice_config Class Reference . . . . . . . . . .
5.129 lpc_config Class Reference . . . . . . . . . . . . . . . .
5.130 matrixmixer::cfg_t Class Reference . . . . . . . . . . . .
5.131 matrixmixer::matmix_t Class Reference . . . . . . . . . .
5.132 MHA_AC::ac2matrix_helper_t Class Reference . . . . .
5.133 MHA_AC::ac2matrix_t Class Reference . . . . . . . . . .
5.134 MHA_AC::acspace2matrix_t Class Reference . . . . . .
5.135 MHA_AC::double_t Class Reference . . . . . . . . . . .
5.136 MHA_AC::float_t Class Reference . . . . . . . . . . . . .
5.137 MHA_AC::int_t Class Reference . . . . . . . . . . . . . .
5.138 MHA_AC::spectrum_t Class Reference . . . . . . . . . .
5.139 MHA_AC::stat_t Class Reference . . . . . . . . . . . . .
5.140 MHA_AC::waveform_t Class Reference . . . . . . . . . .
5.141 mha_audio_descriptor_t Struct Reference . . . . . . . .
5.142 mha_audio_t Struct Reference . . . . . . . . . . . . . . .
5.143 mha_channel_info_t Struct Reference . . . . . . . . . . .
5.144 mha_complex_t Struct Reference . . . . . . . . . . . . .
5.145 mha_complex_test_array_t Struct Reference . . . . . . .
5.146 mha_dblbuf_t< FIFO > Class Template Reference . . .
5.147 mha_direction_t Struct Reference . . . . . . . . . . . . .
5.148 mha_drifter_fifo_t< T > Class Template Reference . . .
5.149 MHA_Error Class Reference . . . . . . . . . . . . . . . .
5.150 mha_fifo_lw_t< T > Class Template Reference . . . . .
5.151 mha_fifo_posix_threads_t Class Reference . . . . . . . .
5.152 mha_fifo_t< T > Class Template Reference . . . . . . .
5.153 mha_fifo_thread_guard_t Class Reference . . . . . . . .
5.154 mha_fifo_thread_platform_t Class Reference . . . . . . .
5.155 mha_real_test_array_t Struct Reference . . . . . . . . .
5.156 mha_rt_fifo_element_t< T > Class Template Reference
5.157 mha_rt_fifo_t< T > Class Template Reference . . . . . .
5.158 mha_spec_t Struct Reference . . . . . . . . . . . . . . .
5.159 mha_stash_environment_variable_t Class Reference . .
5.160 MHA_TCP::Async_Notify Class Reference . . . . . . . .
5.161 MHA_TCP::Client Class Reference . . . . . . . . . . . .
5.162 MHA_TCP::Connection Class Reference . . . . . . . . .
5.163 MHA_TCP::Event_Watcher Class Reference . . . . . . .
5.164 MHA_TCP::OS_EVENT_TYPE Struct Reference . . . .
5.165 MHA_TCP::Server Class Reference . . . . . . . . . . . .
5.166 MHA_TCP::sock_init_t Class Reference . . . . . . . . .
5.167 MHA_TCP::Sockaccept_Event Class Reference . . . . .
5.168 MHA_TCP::Sockread_Event Class Reference . . . . . .
5.169 MHA_TCP::Sockwrite_Event Class Reference . . . . . .
5.170 MHA_TCP::Thread Class Reference . . . . . . . . . . .
5.171 MHA_TCP::Timeout_Event Class Reference . . . . . . .
5.172 MHA_TCP::Timeout_Watcher Class Reference . . . . .
5.173 MHA_TCP::Wakeup_Event Class Reference . . . . . . .
5.174 mha_tictoc_t Struct Reference . . . . . . . . . . . . . . .
5.175 mha_wave_t Struct Reference . . . . . . . . . . . . . . .
5.176 mhachain::chain_base_t Class Reference . . . . . . . .
5.177 mhachain::mhachain_t Class Reference . . . . . . . . .
5.178 mhachain::plugs_t Class Reference . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

405
406
408
410
412
413
415
418
420
421
422
424
425
427
428
429
431
431
432
438
439
445
447
450
452
456
457
460
460
462
465
466
468
469
471
478
480
481
483
484
485
486
486
490
491
493
495
496
497
500
501

© 2005-2019 HörTech gGmbH, Oldenburg

CONTENTS

ix

5.179 mhaconfig_t Struct Reference . . . . . . . . . . . . . . . . . . . . . . .
5.180 MHAEvents::connector_base_t Class Reference . . . . . . . . . . . . .
5.181 MHAEvents::connector_t< receiver_t > Class Template Reference . .
5.182 MHAEvents::emitter_t Class Reference . . . . . . . . . . . . . . . . . .
5.183 MHAEvents::patchbay_t< receiver_t > Class Template Reference . . .
5.184 MHAFilter::adapt_filter_param_t Class Reference . . . . . . . . . . . .
5.185 MHAFilter::adapt_filter_state_t Class Reference . . . . . . . . . . . . .
5.186 MHAFilter::adapt_filter_t Class Reference . . . . . . . . . . . . . . . .
5.187 MHAFilter::blockprocessing_polyphase_resampling_t Class Reference
5.188 MHAFilter::complex_bandpass_t Class Reference . . . . . . . . . . . .
5.189 MHAFilter::diff_t Class Reference . . . . . . . . . . . . . . . . . . . . .
5.190 MHAFilter::fftfilter_t Class Reference . . . . . . . . . . . . . . . . . . .
5.191 MHAFilter::fftfilterbank_t Class Reference . . . . . . . . . . . . . . . .
5.192 MHAFilter::filter_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.193 MHAFilter::gamma_flt_t Class Reference . . . . . . . . . . . . . . . . .
5.194 MHAFilter::iir_filter_state_t Class Reference . . . . . . . . . . . . . . .
5.195 MHAFilter::iir_filter_t Class Reference . . . . . . . . . . . . . . . . . . .
5.196 MHAFilter::iir_ord1_real_t Class Reference . . . . . . . . . . . . . . . .
5.197 MHAFilter::o1_ar_filter_t Class Reference . . . . . . . . . . . . . . . .
5.198 MHAFilter::o1flt_lowpass_t Class Reference . . . . . . . . . . . . . . .
5.199 MHAFilter::o1flt_maxtrack_t Class Reference . . . . . . . . . . . . . .
5.200 MHAFilter::o1flt_mintrack_t Class Reference . . . . . . . . . . . . . . .
5.201 MHAFilter::partitioned_convolution_t Class Reference . . . . . . . . . .
5.202 MHAFilter::partitioned_convolution_t::index_t Struct Reference . . . . .
5.203 MHAFilter::polyphase_resampling_t Class Reference . . . . . . . . . .
5.204 MHAFilter::resampling_filter_t Class Reference . . . . . . . . . . . . .
5.205 MHAFilter::smoothspec_t Class Reference . . . . . . . . . . . . . . . .
5.206 MHAFilter::thirdoctave_analyzer_t Class Reference . . . . . . . . . . .
5.207 MHAFilter::transfer_function_t Struct Reference . . . . . . . . . . . . .
5.208 MHAFilter::transfer_matrix_t Struct Reference . . . . . . . . . . . . . .
5.209 MHAIOJack::io_jack_t Class Reference . . . . . . . . . . . . . . . . . .
5.210 MHAIOJackdb::io_jack_t Class Reference . . . . . . . . . . . . . . . .
5.211 MHAIOPortAudio::device_info_t Class Reference . . . . . . . . . . . .
5.212 MHAIOPortAudio::io_portaudio_t Class Reference . . . . . . . . . . . .
5.213 MHAJack::client_avg_t Class Reference . . . . . . . . . . . . . . . . .
5.214 MHAJack::client_noncont_t Class Reference . . . . . . . . . . . . . . .
5.215 MHAJack::client_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.216 MHAJack::port_t Class Reference . . . . . . . . . . . . . . . . . . . . .
5.217 MHAKernel::algo_comm_class_t Class Reference . . . . . . . . . . . .
5.218 MHAKernel::comm_var_map_t Class Reference . . . . . . . . . . . . .
5.219 MHAMultiSrc::base_t Class Reference . . . . . . . . . . . . . . . . . .
5.220 MHAMultiSrc::channel_t Class Reference . . . . . . . . . . . . . . . .
5.221 MHAMultiSrc::channels_t Class Reference . . . . . . . . . . . . . . . .
5.222 MHAMultiSrc::spectrum_t Class Reference . . . . . . . . . . . . . . . .
5.223 MHAMultiSrc::waveform_t Class Reference . . . . . . . . . . . . . . .
5.224 MHAOvlFilter::band_descriptor_t Class Reference . . . . . . . . . . . .
5.225 MHAOvlFilter::barkscale::bark2hz_t Class Reference . . . . . . . . . .
5.226 MHAOvlFilter::barkscale::hz2bark_t Class Reference . . . . . . . . . .
5.227 MHAOvlFilter::fftfb_ac_info_t Class Reference . . . . . . . . . . . . . .
5.228 MHAOvlFilter::fftfb_t Class Reference . . . . . . . . . . . . . . . . . . .
5.229 MHAOvlFilter::fftfb_vars_t Class Reference . . . . . . . . . . . . . . . .
© 2005-2019 HörTech gGmbH, Oldenburg

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

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

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

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

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

504
506
508
510
512
513
514
515
517
520
522
523
527
531
535
538
539
542
545
548
551
552
554
558
559
564
565
568
570
573
574
578
583
585
588
591
593
599
603
606
607
608
609
610
611
612
613
614
615
616
619

x

CONTENTS

5.230 MHAOvlFilter::fscale_bw_t Class Reference . . . . . . . . . . . . . . .
5.231 MHAOvlFilter::fscale_t Class Reference . . . . . . . . . . . . . . . . .
5.232 MHAOvlFilter::fspacing_t Class Reference . . . . . . . . . . . . . . . .
5.233 MHAOvlFilter::overlap_save_filterbank_analytic_t Class Reference . .
5.234 MHAOvlFilter::overlap_save_filterbank_t Class Reference . . . . . . .
5.235 MHAOvlFilter::overlap_save_filterbank_t::vars_t Class Reference . . .
5.236 MHAOvlFilter::scale_var_t Class Reference . . . . . . . . . . . . . . .
5.237 MHAParser::base_t Class Reference . . . . . . . . . . . . . . . . . . .
5.238 MHAParser::base_t::replace_t Class Reference . . . . . . . . . . . . .
5.239 MHAParser::bool_mon_t Class Reference . . . . . . . . . . . . . . . .
5.240 MHAParser::bool_t Class Reference . . . . . . . . . . . . . . . . . . .
5.241 MHAParser::c_ifc_parser_t Class Reference . . . . . . . . . . . . . . .
5.242 MHAParser::commit_t< receiver_t > Class Template Reference . . . .
5.243 MHAParser::complex_mon_t Class Reference . . . . . . . . . . . . . .
5.244 MHAParser::complex_t Class Reference . . . . . . . . . . . . . . . . .
5.245 MHAParser::entry_t Class Reference . . . . . . . . . . . . . . . . . . .
5.246 MHAParser::expression_t Class Reference . . . . . . . . . . . . . . . .
5.247 MHAParser::float_mon_t Class Reference . . . . . . . . . . . . . . . .
5.248 MHAParser::float_t Class Reference . . . . . . . . . . . . . . . . . . .
5.249 MHAParser::int_mon_t Class Reference . . . . . . . . . . . . . . . . .
5.250 MHAParser::int_t Class Reference . . . . . . . . . . . . . . . . . . . . .
5.251 MHAParser::keyword_list_t Class Reference . . . . . . . . . . . . . . .
5.252 MHAParser::kw_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.253 MHAParser::mcomplex_mon_t Class Reference . . . . . . . . . . . . .
5.254 MHAParser::mcomplex_t Class Reference . . . . . . . . . . . . . . . .
5.255 MHAParser::mfloat_mon_t Class Reference . . . . . . . . . . . . . . .
5.256 MHAParser::mfloat_t Class Reference . . . . . . . . . . . . . . . . . .
5.257 MHAParser::mhaconfig_mon_t Class Reference . . . . . . . . . . . . .
5.258 MHAParser::mhapluginloader_t Class Reference . . . . . . . . . . . .
5.259 MHAParser::mint_mon_t Class Reference . . . . . . . . . . . . . . . .
5.260 MHAParser::monitor_t Class Reference . . . . . . . . . . . . . . . . . .
5.261 MHAParser::parser_t Class Reference . . . . . . . . . . . . . . . . . .
5.262 MHAParser::range_var_t Class Reference . . . . . . . . . . . . . . . .
5.263 MHAParser::string_mon_t Class Reference . . . . . . . . . . . . . . .
5.264 MHAParser::string_t Class Reference . . . . . . . . . . . . . . . . . . .
5.265 MHAParser::variable_t Class Reference . . . . . . . . . . . . . . . . .
5.266 MHAParser::vcomplex_mon_t Class Reference . . . . . . . . . . . . .
5.267 MHAParser::vcomplex_t Class Reference . . . . . . . . . . . . . . . .
5.268 MHAParser::vfloat_mon_t Class Reference . . . . . . . . . . . . . . . .
5.269 MHAParser::vfloat_t Class Reference . . . . . . . . . . . . . . . . . . .
5.270 MHAParser::vint_mon_t Class Reference . . . . . . . . . . . . . . . . .
5.271 MHAParser::vint_t Class Reference . . . . . . . . . . . . . . . . . . . .
5.272 MHAParser::vstring_mon_t Class Reference . . . . . . . . . . . . . . .
5.273 MHAParser::vstring_t Class Reference . . . . . . . . . . . . . . . . . .
5.274 MHAParser::window_t Class Reference . . . . . . . . . . . . . . . . . .
5.275 mhaplug_cfg_t Class Reference . . . . . . . . . . . . . . . . . . . . . .
5.276 MHAPlugin::cfg_chain_t< runtime_cfg_t > Class Template Reference
5.277 MHAPlugin::config_t< runtime_cfg_t > Class Template Reference . . .
5.278 MHAPlugin::plugin_t< runtime_cfg_t > Class Template Reference . . .
5.279 MHAPlugin_Resampling::resampling_if_t Class Reference . . . . . . .
5.280 MHAPlugin_Resampling::resampling_t Class Reference . . . . . . . .

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

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

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

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

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

622
623
625
627
628
630
632
634
643
644
645
648
650
652
654
656
657
658
659
662
664
666
669
672
674
676
677
680
682
685
686
688
693
696
697
700
702
704
707
709
711
713
715
717
719
722
722
723
728
733
735

© 2005-2019 HörTech gGmbH, Oldenburg

CONTENTS

xi

5.281 MHAPlugin_Split::domain_handler_t Class Reference . . . . . .
5.282 MHAPlugin_Split::dummy_threads_t Class Reference . . . . . .
5.283 MHAPlugin_Split::posix_threads_t Class Reference . . . . . . .
5.284 MHAPlugin_Split::split_t Class Reference . . . . . . . . . . . . .
5.285 MHAPlugin_Split::splitted_part_t Class Reference . . . . . . . .
5.286 MHAPlugin_Split::thread_platform_t Class Reference . . . . . .
5.287 MHAPlugin_Split::uni_processor_t Class Reference . . . . . . .
5.288 mhaserver_t Class Reference . . . . . . . . . . . . . . . . . . .
5.289 MHASignal::async_rmslevel_t Class Reference . . . . . . . . .
5.290 MHASignal::delay_spec_t Class Reference . . . . . . . . . . . .
5.291 MHASignal::delay_t Class Reference . . . . . . . . . . . . . . .
5.292 MHASignal::delay_wave_t Class Reference . . . . . . . . . . .
5.293 MHASignal::doublebuffer_t Class Reference . . . . . . . . . . .
5.294 MHASignal::fft_t Class Reference . . . . . . . . . . . . . . . . .
5.295 MHASignal::hilbert_fftw_t Class Reference . . . . . . . . . . . .
5.296 MHASignal::hilbert_t Class Reference . . . . . . . . . . . . . .
5.297 MHASignal::loop_wavefragment_t Class Reference . . . . . . .
5.298 MHASignal::matrix_t Class Reference . . . . . . . . . . . . . . .
5.299 MHASignal::minphase_t Class Reference . . . . . . . . . . . .
5.300 MHASignal::quantizer_t Class Reference . . . . . . . . . . . . .
5.301 MHASignal::ringbuffer_t Class Reference . . . . . . . . . . . . .
5.302 MHASignal::schroeder_t Class Reference . . . . . . . . . . . .
5.303 MHASignal::spectrum_t Class Reference . . . . . . . . . . . . .
5.304 MHASignal::stat_t Class Reference . . . . . . . . . . . . . . . .
5.305 MHASignal::subsample_delay_t Class Reference . . . . . . . .
5.306 MHASignal::uint_vector_t Class Reference . . . . . . . . . . . .
5.307 MHASignal::waveform_t Class Reference . . . . . . . . . . . . .
5.308 MHASndFile::sf_t Class Reference . . . . . . . . . . . . . . . .
5.309 MHASndFile::sf_wave_t Class Reference . . . . . . . . . . . . .
5.310 MHATableLookup::linear_table_t Class Reference . . . . . . . .
5.311 MHATableLookup::table_t Class Reference . . . . . . . . . . . .
5.312 MHATableLookup::xy_table_t Class Reference . . . . . . . . . .
5.313 MHAWindow::bartlett_t Class Reference . . . . . . . . . . . . .
5.314 MHAWindow::base_t Class Reference . . . . . . . . . . . . . .
5.315 MHAWindow::blackman_t Class Reference . . . . . . . . . . . .
5.316 MHAWindow::fun_t Class Reference . . . . . . . . . . . . . . .
5.317 MHAWindow::hamming_t Class Reference . . . . . . . . . . . .
5.318 MHAWindow::hanning_t Class Reference . . . . . . . . . . . .
5.319 MHAWindow::rect_t Class Reference . . . . . . . . . . . . . . .
5.320 MHAWindow::user_t Class Reference . . . . . . . . . . . . . . .
5.321 mon_t Class Reference . . . . . . . . . . . . . . . . . . . . . . .
5.322 multibandcompressor::fftfb_plug_t Class Reference . . . . . . .
5.323 multibandcompressor::interface_t Class Reference . . . . . . .
5.324 multibandcompressor::plugin_signals_t Class Reference . . . .
5.325 nlms_t Class Reference . . . . . . . . . . . . . . . . . . . . . .
5.326 noise_t Class Reference . . . . . . . . . . . . . . . . . . . . . .
5.327 noisePowProposedScale::interface_t Class Reference . . . . .
5.328 noisePowProposedScale::noisePowProposed Class Reference
5.329 overlapadd::overlapadd_if_t Class Reference . . . . . . . . . .
5.330 overlapadd::overlapadd_t Class Reference . . . . . . . . . . . .
5.331 parser_int_dyn Class Reference . . . . . . . . . . . . . . . . . .
© 2005-2019 HörTech gGmbH, Oldenburg

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

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

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

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

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

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

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

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

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

736
741
743
747
751
756
759
760
763
765
766
768
769
772
775
776
778
782
790
792
793
797
800
805
806
809
812
822
823
824
828
830
834
835
837
838
839
840
841
842
844
845
847
849
851
853
855
857
859
862
864

xii

CONTENTS

5.332 plingploing::if_t Class Reference . . . . . . . . . . . . . . . .
5.333 plingploing::plingploing_t Class Reference . . . . . . . . . .
5.334 plug_t Class Reference . . . . . . . . . . . . . . . . . . . . .
5.335 plugin_interface_t Class Reference . . . . . . . . . . . . . .
5.336 pluginbrowser_t Class Reference . . . . . . . . . . . . . . .
5.337 plugindescription_t Class Reference . . . . . . . . . . . . . .
5.338 PluginLoader::config_file_splitter_t Class Reference . . . . .
5.339 PluginLoader::fourway_processor_t Class Reference . . . .
5.340 PluginLoader::mhapluginloader_t Class Reference . . . . .
5.341 pluginloader_t Class Reference . . . . . . . . . . . . . . . .
5.342 prediction_error Class Reference . . . . . . . . . . . . . . .
5.343 prediction_error_config Class Reference . . . . . . . . . . .
5.344 rmslevel_if_t Class Reference . . . . . . . . . . . . . . . . .
5.345 rmslevel_t Class Reference . . . . . . . . . . . . . . . . . .
5.346 route::interface_t Class Reference . . . . . . . . . . . . . . .
5.347 route::process_t Class Reference . . . . . . . . . . . . . . .
5.348 rt_nlms_t Class Reference . . . . . . . . . . . . . . . . . . .
5.349 save_spec_t Class Reference . . . . . . . . . . . . . . . . .
5.350 save_wave_t Class Reference . . . . . . . . . . . . . . . . .
5.351 shadowfilter_begin::cfg_t Class Reference . . . . . . . . . .
5.352 shadowfilter_begin::shadowfilter_begin_t Class Reference .
5.353 shadowfilter_end::cfg_t Class Reference . . . . . . . . . . .
5.354 shadowfilter_end::shadowfilter_end_t Class Reference . . .
5.355 sine_cfg_t Struct Reference . . . . . . . . . . . . . . . . . .
5.356 sine_t Class Reference . . . . . . . . . . . . . . . . . . . . .
5.357 smoothgains_bridge::overlapadd_if_t Class Reference . . .
5.358 smoothgains_bridge::smoothspec_wrap_t Class Reference
5.359 softclip_t Class Reference . . . . . . . . . . . . . . . . . . .
5.360 softclipper_t Class Reference . . . . . . . . . . . . . . . . .
5.361 softclipper_variables_t Class Reference . . . . . . . . . . .
5.362 spec2wave_if_t Class Reference . . . . . . . . . . . . . . .
5.363 spec2wave_t Class Reference . . . . . . . . . . . . . . . . .
5.364 spec_fader_t Class Reference . . . . . . . . . . . . . . . . .
5.365 speechnoise_t Class Reference . . . . . . . . . . . . . . . .
5.366 steerbf Class Reference . . . . . . . . . . . . . . . . . . . .
5.367 steerbf_config Class Reference . . . . . . . . . . . . . . . .
5.368 testplugin::ac_parser_t Class Reference . . . . . . . . . . .
5.369 testplugin::config_parser_t Class Reference . . . . . . . . .
5.370 testplugin::if_t Class Reference . . . . . . . . . . . . . . . .
5.371 testplugin::signal_parser_t Class Reference . . . . . . . . .
5.372 timo_AC Class Reference . . . . . . . . . . . . . . . . . . .
5.373 timo_params Class Reference . . . . . . . . . . . . . . . . .
5.374 timoConfig Class Reference . . . . . . . . . . . . . . . . . .
5.375 timoSmooth Class Reference . . . . . . . . . . . . . . . . .
5.376 us_t Class Reference . . . . . . . . . . . . . . . . . . . . . .
5.377 wave2spec_if_t Class Reference . . . . . . . . . . . . . . .
5.378 wave2spec_t Class Reference . . . . . . . . . . . . . . . . .
5.379 wavrec_t Class Reference . . . . . . . . . . . . . . . . . . .
5.380 wavwriter_t Class Reference . . . . . . . . . . . . . . . . . .
5.381 windowselector_t Class Reference . . . . . . . . . . . . . .
6 File Documentation

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

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

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

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

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

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

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

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

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

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

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

865
868
870
872
873
875
876
877
880
885
886
889
892
894
895
897
898
901
902
903
905
906
908
909
910
912
914
916
917
919
920
922
923
924
926
928
930
932
934
936
937
939
940
944
947
949
951
953
955
957
960

© 2005-2019 HörTech gGmbH, Oldenburg

CONTENTS
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
6.13
6.14
6.15
6.16
6.17
6.18
6.19
6.20
6.21
6.22
6.23
6.24
6.25
6.26
6.27
6.28
6.29
6.30
6.31
6.32
6.33
6.34
6.35
6.36
6.37
6.38
6.39
6.40
6.41
6.42
6.43
6.44
6.45
6.46
6.47
6.48
6.49
6.50
6.51

ac2lsl.cpp File Reference . . . . . . . . . . . . .
ac2osc.cpp File Reference . . . . . . . . . . . .
ac2wave.cpp File Reference . . . . . . . . . . .
ac_monitor_type.cpp File Reference . . . . . .
ac_monitor_type.hh File Reference . . . . . . .
acConcat_wave.cpp File Reference . . . . . . .
acConcat_wave.h File Reference . . . . . . . .
acmon.cpp File Reference . . . . . . . . . . . .
acPooling_wave.cpp File Reference . . . . . . .
acPooling_wave.h File Reference . . . . . . . .
acsave.cpp File Reference . . . . . . . . . . . .
acSteer.cpp File Reference . . . . . . . . . . . .
acSteer.h File Reference . . . . . . . . . . . . .
acTransform_wave.cpp File Reference . . . . .
acTransform_wave.h File Reference . . . . . . .
addsndfile.cpp File Reference . . . . . . . . . .
adm.cpp File Reference . . . . . . . . . . . . .
adm.hh File Reference . . . . . . . . . . . . . .
altplugs.cpp File Reference . . . . . . . . . . . .
analysemhaplugin.cpp File Reference . . . . . .
analysispath.cpp File Reference . . . . . . . . .
auditory_profile.cpp File Reference . . . . . . .
auditory_profile.h File Reference . . . . . . . . .
browsemhaplugins.cpp File Reference . . . . .
coherence.cpp File Reference . . . . . . . . . .
combinechannels.cpp File Reference . . . . . .
compiler_id.cpp File Reference . . . . . . . . .
compiler_id.hh File Reference . . . . . . . . . .
complex_filter.cpp File Reference . . . . . . . .
complex_filter.h File Reference . . . . . . . . .
cpuload.cpp File Reference . . . . . . . . . . .
db.cpp File Reference . . . . . . . . . . . . . . .
dc.cpp File Reference . . . . . . . . . . . . . . .
dc_afterburn.cpp File Reference . . . . . . . . .
dc_afterburn.h File Reference . . . . . . . . . .
dc_simple.cpp File Reference . . . . . . . . . .
delay.cpp File Reference . . . . . . . . . . . . .
delaysum.cpp File Reference . . . . . . . . . .
doasvm_classification.cpp File Reference . . .
doasvm_classification.h File Reference . . . . .
doasvm_feature_extraction.cpp File Reference .
doasvm_feature_extraction.h File Reference . .
doc_appendix.h File Reference . . . . . . . . .
doc_examples.h File Reference . . . . . . . . .
doc_frameworks.h File Reference . . . . . . . .
doc_general.h File Reference . . . . . . . . . .
doc_kernel.h File Reference . . . . . . . . . . .
doc_matlab.h File Reference . . . . . . . . . . .
doc_mhamain.h File Reference . . . . . . . . .
doc_parser.h File Reference . . . . . . . . . . .
doc_plugif.cpp File Reference . . . . . . . . . .

© 2005-2019 HörTech gGmbH, Oldenburg

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

960
960
960
961
961
961
961
961
962
962
962
963
963
964
964
964
965
966
967
967
967
968
968
968
969
969
970
970
970
970
971
971
971
972
972
973
973
974
974
974
974
975
975
975
975
975
975
975
975
975
975

xiv
6.52 doc_plugins.h File Reference . . . . . . .
6.53 doc_system.h File Reference . . . . . . .
6.54 doc_toolbox.h File Reference . . . . . . .
6.55 downsample.cpp File Reference . . . . . .
6.56 droptect.cpp File Reference . . . . . . . .
6.57 example1.cpp File Reference . . . . . . .
6.58 example2.cpp File Reference . . . . . . .
6.59 example3.cpp File Reference . . . . . . .
6.60 example4.cpp File Reference . . . . . . .
6.61 example5.cpp File Reference . . . . . . .
6.62 example6.cpp File Reference . . . . . . .
6.63 fader_spec.cpp File Reference . . . . . . .
6.64 fader_wave.cpp File Reference . . . . . .
6.65 fftfbpow.cpp File Reference . . . . . . . . .
6.66 fftfilterbank.cpp File Reference . . . . . . .
6.67 fshift.cpp File Reference . . . . . . . . . .
6.68 fshift.hh File Reference . . . . . . . . . . .
6.69 fshift_hilbert.cpp File Reference . . . . . .
6.70 gain.cpp File Reference . . . . . . . . . . .
6.71 gaintable.cpp File Reference . . . . . . . .
6.72 gaintable.h File Reference . . . . . . . . .
6.73 generatemhaplugindoc.cpp File Reference
6.74 gtfb_analyzer.cpp File Reference . . . . .
6.75 hann.cpp File Reference . . . . . . . . . .
6.76 hann.h File Reference . . . . . . . . . . .
6.77 identity.cpp File Reference . . . . . . . . .
6.78 ifftshift.cpp File Reference . . . . . . . . .
6.79 ifftshift.h File Reference . . . . . . . . . . .
6.80 iirfilter.cpp File Reference . . . . . . . . . .
6.81 lpc.cpp File Reference . . . . . . . . . . .
6.82 lpc.h File Reference . . . . . . . . . . . . .
6.83 lpc_bl_predictor.cpp File Reference . . . .
6.84 lpc_bl_predictor.h File Reference . . . . .
6.85 lpc_burg-lattice.cpp File Reference . . . .
6.86 lpc_burg-lattice.h File Reference . . . . . .
6.87 matrixmixer.cpp File Reference . . . . . .
6.88 mha.cpp File Reference . . . . . . . . . .
6.89 mha.hh File Reference . . . . . . . . . . .
6.90 mha_algo_comm.cpp File Reference . . .
6.91 mha_algo_comm.h File Reference . . . .
6.92 mha_algo_comm.hh File Reference . . . .
6.93 mha_defs.h File Reference . . . . . . . . .
6.94 mha_errno.c File Reference . . . . . . . .
6.95 mha_errno.h File Reference . . . . . . . .
6.96 mha_error.cpp File Reference . . . . . . .
6.97 mha_error.hh File Reference . . . . . . . .
6.98 mha_event_emitter.h File Reference . . .
6.99 mha_events.cpp File Reference . . . . . .
6.100 mha_events.h File Reference . . . . . . .
6.101 mha_fftfb.cpp File Reference . . . . . . . .
6.102 mha_fftfb.hh File Reference . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. 975
. 975
. 975
. 975
. 976
. 976
. 976
. 976
. 976
. 976
. 977
. 977
. 977
. 978
. 978
. 979
. 979
. 979
. 979
. 980
. 980
. 981
. 982
. 984
. 985
. 985
. 985
. 986
. 986
. 986
. 987
. 987
. 987
. 988
. 988
. 988
. 989
. 989
. 994
. 995
. 996
. 997
. 998
. 999
.1000
.1001
.1002
.1002
.1002
.1002
.1004

© 2005-2019 HörTech gGmbH, Oldenburg

CONTENTS
6.103 mha_fifo.cpp File Reference . . . . . . . . .
6.104 mha_fifo.h File Reference . . . . . . . . . .
6.105 mha_filter.cpp File Reference . . . . . . . .
6.106 mha_filter.hh File Reference . . . . . . . . .
6.107 mha_generic_chain.cpp File Reference . . .
6.108 mha_generic_chain.h File Reference . . . .
6.109 mha_io_ifc.h File Reference . . . . . . . . .
6.110 mha_multisrc.cpp File Reference . . . . . .
6.111 mha_multisrc.h File Reference . . . . . . . .
6.112 mha_os.cpp File Reference . . . . . . . . .
6.113 mha_os.h File Reference . . . . . . . . . . .
6.114 mha_parser.cpp File Reference . . . . . . .
6.115 mha_parser.hh File Reference . . . . . . . .
6.116 mha_plugin.hh File Reference . . . . . . . .
6.117 mha_profiling.c File Reference . . . . . . . .
6.118 mha_profiling.h File Reference . . . . . . . .
6.119 mha_ruby.cpp File Reference . . . . . . . .
6.120 mha_signal.cpp File Reference . . . . . . .
6.121 mha_signal.hh File Reference . . . . . . . .
6.122 mha_signal_fft.h File Reference . . . . . . .
6.123 mha_tablelookup.cpp File Reference . . . .
6.124 mha_tablelookup.hh File Reference . . . . .
6.125 mha_tcp.cpp File Reference . . . . . . . . .
6.126 mha_tcp.hh File Reference . . . . . . . . . .
6.127 mha_toolbox.h File Reference . . . . . . . .
6.128 mha_windowparser.cpp File Reference . . .
6.129 mha_windowparser.h File Reference . . . .
6.130 mhachain.cpp File Reference . . . . . . . .
6.131 mhafw_lib.cpp File Reference . . . . . . . .
6.132 mhafw_lib.h File Reference . . . . . . . . . .
6.133 MHAIOalsa.cpp File Reference . . . . . . .
6.134 MHAIOFile.cpp File Reference . . . . . . . .
6.135 MHAIOJack.cpp File Reference . . . . . . .
6.136 MHAIOJackdb.cpp File Reference . . . . . .
6.137 MHAIOParser.cpp File Reference . . . . . .
6.138 MHAIOPortAudio.cpp File Reference . . . .
6.139 MHAIOTCP.cpp File Reference . . . . . . .
6.140 mhajack.cpp File Reference . . . . . . . . .
6.141 mhajack.h File Reference . . . . . . . . . . .
6.142 mhamain.cpp File Reference . . . . . . . . .
6.143 mhapluginloader.cpp File Reference . . . . .
6.144 mhapluginloader.h File Reference . . . . . .
6.145 mhasndfile.cpp File Reference . . . . . . . .
6.146 mhasndfile.h File Reference . . . . . . . . .
6.147 multibandcompressor.cpp File Reference . .
6.148 nlms_wave.cpp File Reference . . . . . . . .
6.149 noise.cpp File Reference . . . . . . . . . . .
6.150 noisePowProposedScale.cpp File Reference
6.151 overlapadd.cpp File Reference . . . . . . . .
6.152 plingploing.cpp File Reference . . . . . . . .
6.153 pluginbrowser.cpp File Reference . . . . . .
© 2005-2019 HörTech gGmbH, Oldenburg

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.1005
.1005
.1005
.1006
.1007
.1008
.1008
.1009
.1010
.1010
.1012
.1015
.1017
.1022
.1024
.1024
.1025
.1026
.1029
.1038
.1038
.1038
.1039
.1040
.1042
.1042
.1042
.1043
.1043
.1043
.1044
.1046
.1049
.1052
.1055
.1057
.1060
.1064
.1064
.1066
.1067
.1067
.1068
.1068
.1069
.1069
.1070
.1070
.1071
.1071
.1072

xvi
6.154 pluginbrowser.h File Reference . . . . .
6.155 prediction_error.cpp File Reference . . .
6.156 prediction_error.h File Reference . . . .
6.157 resampling.cpp File Reference . . . . . .
6.158 rmslevel.cpp File Reference . . . . . . .
6.159 route.cpp File Reference . . . . . . . . .
6.160 save_spec.cpp File Reference . . . . . .
6.161 save_wave.cpp File Reference . . . . . .
6.162 shadowfilter_begin.cpp File Reference .
6.163 shadowfilter_end.cpp File Reference . .
6.164 sine.cpp File Reference . . . . . . . . . .
6.165 smoothgains_bridge.cpp File Reference
6.166 softclip.cpp File Reference . . . . . . . .
6.167 spec2wave.cpp File Reference . . . . . .
6.168 speechnoise.cpp File Reference . . . . .
6.169 speechnoise.h File Reference . . . . . .
6.170 split.cpp File Reference . . . . . . . . . .
6.171 steerbf.cpp File Reference . . . . . . . .
6.172 steerbf.h File Reference . . . . . . . . .
6.173 testalsadevice.c File Reference . . . . .
6.174 testplugin.cpp File Reference . . . . . .
6.175 timoconfig.cpp File Reference . . . . . .
6.176 timoconfig.h File Reference . . . . . . .
6.177 timoSmooth.cpp File Reference . . . . .
6.178 timosmooth.h File Reference . . . . . . .
6.179 transducers.cpp File Reference . . . . .
6.180 upsample.cpp File Reference . . . . . .
6.181 wave2spec.cpp File Reference . . . . . .
6.182 wavrec.cpp File Reference . . . . . . . .
6.183 windowselector.cpp File Reference . . .
6.184 windowselector.h File Reference . . . . .
Index

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.1072
.1072
.1072
.1073
.1073
.1073
.1073
.1073
.1074
.1074
.1074
.1074
.1075
.1075
.1075
.1078
.1078
.1079
.1080
.1080
.1080
.1081
.1081
.1081
.1082
.1082
.1083
.1083
.1083
.1084
.1084
1085

© 2005-2019 HörTech gGmbH, Oldenburg

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. 34)
• Signal processing plugins (p. 7)
• Audio input-output (IO) plugins (see io_file_t (p. 365), MHAIOJack (p. 98), io_parser_t
(p. 372), io_tcp_parser_t (p. 378))
• The openMHA toolbox library (p. 35)

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. 34) 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. 98)
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. 7) 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-2019 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-2019 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-2019 HörTech gGmbH, Oldenburg

4

2

CONTENTS

Todo List

Class AuditoryProfile::profile_t (p. 226)
Give more documentation; implement all parts of the auditory profile.
Class mha_stash_environment_variable_t (p. 466)
Move to collection of unit-test support classes when we have one.
Class mhaconfig_t (p. 504)
Add information on number of bands and on center frequencies, or replace by mha_audio←_descriptor_t (p. 427).
Class MHAFilter::filter_t (p. 531)
Implement a more robust filter form.
Member MHAFilter::polyphase_resampling_t::now_index (p. 563)
Index into what? What is the meaning of now?
Class MHAPlugin::plugin_t< runtime_cfg_t > (p. 728)
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.
© 2005-2019 HörTech gGmbH, Oldenburg

3.1

Concept of Variables and Data Exchange in the openMHA

5

• 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.

• 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'.
© 2005-2019 HörTech gGmbH, Oldenburg

6

CONTENTS

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

parser_t

kw_t
bool_t

Figure 3 MHAParser elements

© 2005-2019 HörTech gGmbH, Oldenburg

3.2

The openMHA Plugins (programming interface)

3.2

The openMHA Plugins (programming interface)

7

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) MHAPLU←GIN_CALLBACKS_PREFIX(MHA_STATIC_ ## plugname ## _,classname,indom,outdom)
C++ wrapper macro for the plugin interface.

• #define MHAPLUGIN_DOCUMENTATION(plugname, cat, doc) MHAPLUGIN_DOCU←MENTATION_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. 34). 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 details.
openMHA plugins communicate with the openMHA using a simple C language 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-2019 HörTech gGmbH, Oldenburg

8

CONTENTS

• mha_wave_t (p. 496) ∗ process(mha_wave_t (p. 496) ∗): pure waveform processing
• mha_spec_t (p. 465) ∗ process(mha_spec_t (p. 465) ∗): 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. 465) ∗ process(mha_wave_t (p. 496) ∗): Domain transformation from
waveform to spectrum
• mha_wave_t (p. 496) ∗ process(mha_spec_t (p. 465) ∗): Domain transformation from
spectrum to waveform

For preparation and release of a plugin, the methods

• void prepare(mhaconfig_t (p. 504) &) 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. 688)
from the openMHA toolbox, directly or indirectly (inheriting from a class that itself inherits from
MHAParser::parser_t (p. 688)).

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. 10) macro.
The openMHA Toolbox library provides a base class MHAPlugin::plugin_t (p. 728) (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. 688))
and thread-safe runtime configuration update.
© 2005-2019 HörTech gGmbH, Oldenburg

3.2

The openMHA Plugins (programming interface)

3.2.3

9

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. 10) 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

#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. 728) template class. Exceptions of type MHA_Error (p. 445) are
caught and transformed into apropriate error codes with their corresponding error messages.

© 2005-2019 HörTech gGmbH, Oldenburg

10

3.2.5.2

CONTENTS

#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. 728) template class. Exceptions of type MHA_Error (p. 445) are caught
and transformed into apropriate error codes with their corresponding error messages.
3.2.5.3

#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
compatible (e.g., avoid or quote underscores in the text part); equations should be formatted
as LaTeX.

© 2005-2019 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. 976) 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. 728) 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. 1022)' 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. 1022).
The class plugin1_t inherits from the class MHAPlugin::plugin_t (p. 728), which then inherits from MHAParser::parser_t (p. 688) – the configuration language interface in the method
"parse". Our plugin class therefore exports the working "parse" method inherited from MHA←Parser::parser_t (p. 688), 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-2019 HörTech gGmbH, Oldenburg

12

CONTENTS

Parameters
signal_info

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

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. 496).

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. 496)
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-2019 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. 728) to be
compatible with the C interface wrapper.
This macro also catches C++ exceptions of type MHA_Error (p. 445), 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. 445) 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. 445). 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. 728) 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-2019 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. 690) 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. 504).

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-2019 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-2019 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. 664)
and MHAParser::float_t (p. 659) 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-2019 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-2019 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-2019 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-2019 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. 465) instance stores the complex (mha_complex_t (p. 431)) spectral signal for positive frequences only (since the waveform signal is always real). The num_frames
member of mha_spec_t (p. 465) actually denotes the number of STFT bins.
Please note that different from mha_wave_t (p. 496), a multichannel signal in mha_spec_t
(p. 465) is stored non-interleaved in the signal buffer.
Some arithmetic operations are defined on struct mha_complex_t (p. 431) 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-2019 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. 728) 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. 315) is the parameter of the template class
MHAPlugin::plugin_t (p. 728). 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. 728), 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. 512) 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. 445) 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. 445) exception.
© 2005-2019 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. 315) 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. 512) 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-2019 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. 445) 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. 726) stores
the configuration in a FiFo queue of runtime configurations. Once they are inserted in the FiFo,
the MHAPlugin::plugin_t (p. 728) 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. 10) defines all
ANSI-C interface functions and passes them to the corresponding C++ class member functions (partly defined by the MHAPlugin::plugin_t (p. 728) template class). All exceptions of
type MHA_Error (p. 445) are caught and transformed into an appropriate error code and error
message.

MHAPLUGIN_CALLBACKS(example5,plugin_interface_t,spec,spec)

© 2005-2019 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-2019 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. 317) and example6_t::process() (p. 317) 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. 317)) 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-2019 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-2019 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-2019 HörTech gGmbH, Oldenburg

3.4

The MHA Framework interface

3.4

The MHA Framework interface

© 2005-2019 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. 800) class into the AC space.

• class MHA_AC::waveform_t
Insert a MHASignal::waveform_t ( p. 812) 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-2019 HörTech gGmbH, Oldenburg

3.5

Communication between algorithms

29

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

• mha_wave_t MHA_AC::get_var_waveform (algo_comm_t ac,
&name)

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. 201)) is passed at initialisation time to
the constructor of each plugin class constructor (p. 728). This handle contains a reference
handle, algo_comm_t::handle (p. 201), and a number of function pointers, algo_comm_t←::insert_var (p. 201) etc.. An algorithm communication variable is an object of type comm_←var_t (p. 246).
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

Function Documentation

3.5.2.1 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-2019 HörTech gGmbH, Oldenburg

30

CONTENTS

Parameters
ac
name

AC handle
Name of the variable

Returns
Spectrum structure

3.5.2.2 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

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

Returns
Variable value

© 2005-2019 HörTech gGmbH, Oldenburg

3.5

Communication between algorithms

3.5.2.4

31

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

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-2019 HörTech gGmbH, Oldenburg

32

3.6

CONTENTS

Error handling in the openMHA

Errors are reported to the user via the MHA_Error (p. 445) 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)
false.",#x)

if(!(x))

throw

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

is

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

• #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. 445) 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. 445) exception.

3.6.2
3.6.2.1

Macro Definition Documentation
#define MHA_ErrorMsg(
x ) MHA_Error(__FILE__,__LINE__,"%s",x)

Throw an openMHA error with a text message.

© 2005-2019 HörTech gGmbH, Oldenburg

3.6

Error handling in the openMHA

33

Parameters
x

Text message.

3.6.2.2

#define MHA_assert(
x ) if(!(x)) throw MHA_Error(__FILE__,__LINE__,"\"%s\" is false.",#x)

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

Boolean expression which should be true.

3.6.2.3

#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. 445) 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
void mha_debug (
const char ∗ fmt,
... )

Print an info message (stderr on Linux, OutputDebugString in Windows).

© 2005-2019 HörTech gGmbH, Oldenburg

34

3.7

CONTENTS

The openMHA configuration language

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. 1017).
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. 1017).
All required classes and functions for parser access are declared in the namespace MH←AParser (p. 107). The plugin class should be derived from the class MHAParser::parser_t
(p. 688) (or MHAPlugin::plugin_t (p. 728)), 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. 690).
The openMHA Plugin template class MHAPlugin::plugin_t (p. 728) together with the Plugin
macro MHAPLUGIN_CALLBACKS (p. 10) 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. 107)
namespace.

© 2005-2019 HörTech gGmbH, Oldenburg

3.8

The openMHA Toolbox library

3.8

The openMHA Toolbox library

35

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. 445) exception.

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

• 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-2019 HörTech gGmbH, Oldenburg

36

CONTENTS

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-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

3.9

Vector and matrix processing toolbox

37

The vector and matrix processing toolbox consists of a number of classes defined in the namespace MHASignal (p. 118), and many functions and operators for use with the structures mha←_wave_t (p. 496) and mha_spec_t (p. 465).
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. 504)).

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

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

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

• 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-2019 HörTech gGmbH, Oldenburg

38

CONTENTS

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. 496).

• 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
© 2005-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

39

• 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)
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'.
© 2005-2019 HörTech gGmbH, Oldenburg

40

CONTENTS

• 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. 496) 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. 496) 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. 465) 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-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

41

• 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)
Calculate sum over all channels of squared values.

• void conjugate (mha_spec_t &self)
Replace (!) the value of this mha_spec_t ( p. 465) with its conjugate.
© 2005-2019 HörTech gGmbH, Oldenburg

42

3.9.1

CONTENTS

Detailed Description

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

3.9.2

Typedef Documentation

3.9.2.1

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

Function Documentation

3.9.3.1 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

Returns
Waveform structure representing the sub-interval.
3.9.3.2 mha_spec_t channels (
mha_spec_t s,
unsigned int ch_start,
unsigned int nch )
Return a channel interval from a spectrum.

© 2005-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

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

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. 496).
Parameters
s

Pointer to a mha_wave_t (p. 496) structure

fun

Function to be applied (one argument)

3.9.3.4 mha_real_t MHASignal::lin2db (
mha_real_t x ) [inline]
Conversion from linear scale to dB (no SPL reference)
Parameters
x

Linear input.

3.9.3.5 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 mha_real_t MHASignal::pa2dbspl (
mha_real_t x ) [inline]
Conversion from linear Pascal scale to dB SPL.

© 2005-2019 HörTech gGmbH, Oldenburg

43

44

CONTENTS

Parameters
x

Linear input.

3.9.3.7 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
squared pascal input
minimum squared-pascal value

x
eps

3.9.3.8 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 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 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-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

45

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

3.9.3.11 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 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
3.9.3.13 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.

© 2005-2019 HörTech gGmbH, Oldenburg

46

CONTENTS

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 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.

3.9.3.15

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.

© 2005-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

47

Return values
Resized

3.9.3.16

vector.

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

3.9.3.17

vector.

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

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

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

bool equal_dim (
const mha_spec_t & a,
const mhaconfig_t & b ) [inline]

Test for match of spectrum dimension with mhaconfig structure.
© 2005-2019 HörTech gGmbH, Oldenburg

48

3.9.3.21

CONTENTS

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. 496) use interleaved data order, while spectrum
structures mha_spec_t (p. 465) use non-interleaved.

3.9.3.22

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. 496) use interleaved data order, while spectrum
structures mha_spec_t (p. 465) use non-interleaved.

3.9.3.23

void integrate (
mha_wave_t & s )

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

Input signal vector

3.9.3.24

void integrate (
mha_spec_t & s )

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

Input signal vector

3.9.3.25

unsigned int size (
const mha_wave_t & s ) [inline]

Return size of a waveform structure.
© 2005-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

3.9.3.26

unsigned int size (
const mha_spec_t & s ) [inline]

Return size of a spectrum structure.
3.9.3.27

unsigned int size (
const mha_wave_t ∗ s ) [inline]

Return size of a waveform structure.
3.9.3.28

unsigned int size (
const mha_spec_t ∗ s ) [inline]

Return size of a spectrum structure.
3.9.3.29

void clear (
mha_wave_t & s ) [inline]

Set all values of waveform to zero.
3.9.3.30

void clear (
mha_wave_t ∗ s ) [inline]

Set all values of waveform to zero.
3.9.3.31

void clear (
mha_spec_t & s ) [inline]

Set all values of spectrum to zero.
3.9.3.32

void clear (
mha_spec_t ∗ s ) [inline]

Set all values of spectrum to zero.
3.9.3.33

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

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

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

© 2005-2019 HörTech gGmbH, Oldenburg

49

50

3.9.3.34

CONTENTS

void assign (
mha_wave_t self,
const mha_wave_t & val )

Set all values of waveform 'self' to 'val'.
Parameters
Waveform to be modified.
Source waveform structure.

self
val

3.9.3.35

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

void timeshift (
mha_wave_t & self,
int shift )

Time shift of waveform chunk.
Shifted areas are filled with zeros.
Parameters
self
shift

Waveform chunk to be shifted
Shift amount, positive values shift to later times

3.9.3.37 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-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

Returns
Reference to element

3.9.3.38

const 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 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.40

const 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-2019 HörTech gGmbH, Oldenburg

51

52

CONTENTS

Parameters
s

Spectrum structure

fr
ch

Bin number
Channel number

Returns
Reference to element

3.9.3.41 mha_real_t& value (
mha_wave_t & s,
unsigned int fr,
unsigned int ch ) [inline]
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.42

const 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

© 2005-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

53

3.9.3.43 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 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.45

std::vector std_vector_float (
const mha_wave_t & )

Converts a mha_wave_t (p. 496) structure into a std::vector (interleaved order).

Warning
This function is not real-time safe. Do not use in signal processing thread.

© 2005-2019 HörTech gGmbH, Oldenburg

54

3.9.3.46

CONTENTS

std::vector > std_vector_vector_float (
const mha_wave_t & )

Converts a mha_wave_t (p. 496) 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 > std_vector_vector_complex (
const mha_spec_t & )

Converts a mha_spec_t (p. 465) 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.48 mha_wave_t& operator+= (
mha_wave_t & ,
const mha_real_t & )
Addition operator.
3.9.3.49 mha_wave_t& operator+= (
mha_wave_t & ,
const mha_wave_t & )
Addition operator.
3.9.3.50 mha_wave_t& operator-= (
mha_wave_t & ,
const mha_wave_t & )
Subtraction operator.
3.9.3.51 mha_spec_t& operator-= (
mha_spec_t & ,
const mha_spec_t & )
Subtraction operator.
© 2005-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

3.9.3.52 mha_wave_t& operator∗= (
mha_wave_t & ,
const mha_real_t & )
Element-wise multiplication operator.
3.9.3.53 mha_wave_t& operator∗= (
mha_wave_t & ,
const mha_wave_t & )
Element-wise multiplication operator.
3.9.3.54 mha_spec_t& operator∗= (
mha_spec_t & ,
const mha_real_t & )
Element-wise multiplication operator.
3.9.3.55 mha_spec_t& operator∗= (
mha_spec_t & ,
const mha_wave_t & )
Element-wise multiplication operator.
3.9.3.56 mha_spec_t& operator∗= (
mha_spec_t & ,
const mha_spec_t & )
Element-wise multiplication operator.
3.9.3.57 mha_spec_t& operator/= (
mha_spec_t & ,
const mha_spec_t & )
Element-wise division operator.
3.9.3.58 mha_wave_t& operator/= (
mha_wave_t & ,
const mha_wave_t & )
Element-wise division operator.
3.9.3.59 mha_spec_t& operator+= (
mha_spec_t & ,
const mha_spec_t & )
Addition operator.
© 2005-2019 HörTech gGmbH, Oldenburg

55

56

CONTENTS

3.9.3.60 mha_spec_t& operator+= (
mha_spec_t & ,
const mha_real_t & )
Addition operator.
3.9.3.61 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

void MHASignal::copy_channel (
mha_spec_t & self,
const mha_spec_t & src,
unsigned sch,
unsigned dch )

Copy one channel of a source signal.
Parameters
self
src
sch
dch

3.9.3.63

Destination.
Source
Source channel number
Destination channel number

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

Destination.
Source
Source channel number
Destination channel number

© 2005-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

57

3.9.3.64 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)

Returns
RMS level in Pa

3.9.3.65 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 mha_real_t MHASignal::maxabs (
const mha_spec_t & s,
unsigned int channel )
Find maximal absolute value.

© 2005-2019 HörTech gGmbH, Oldenburg

58

CONTENTS

Parameters
s

Input signal

channel

Channel to be tested

Returns
maximum absolute value

3.9.3.67 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 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

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

© 2005-2019 HörTech gGmbH, Oldenburg

3.9

Vector and matrix processing toolbox

Parameters
s

Input signal

Returns
maximum absolute value

3.9.3.70 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 mha_real_t MHASignal::min (
const mha_wave_t & s )
Find minimal value.
Parameters
s

Input signal

Returns
maximum absolute value

3.9.3.72 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

© 2005-2019 HörTech gGmbH, Oldenburg

59

60
Returns
P

CONTENTS

x2

3.9.3.73 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

3.9.3.74

x2

void conjugate (
mha_spec_t & self ) [inline]

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

© 2005-2019 HörTech gGmbH, Oldenburg

3.10

Complex arithmetics in the openMHA

3.10

Complex arithmetics in the openMHA

61

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. 431) variable.

• mha_complex_t mha_complex (mha_real_t real, mha_real_t imag=0)
Create a new mha_complex_t ( p. 431) 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. 431) 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. 431).

• mha_complex_t & expi (mha_complex_t &self, mha_real_t angle)
replaces the value of the given mha_complex_t ( p. 431) 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.
© 2005-2019 HörTech gGmbH, Oldenburg

62

CONTENTS

• 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. 431) 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. 431) 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)
© 2005-2019 HörTech gGmbH, Oldenburg

3.10

Complex arithmetics in the openMHA

63

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 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. 431) variable.
Parameters
self
real
imag

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

Returns
A reference to the changed variable.

3.10.2.2 mha_complex_t mha_complex (
mha_real_t real,
mha_real_t imag = 0 ) [inline]
Create a new mha_complex_t (p. 431) with specified real and imaginary parts.
Parameters
real
imag

The real part.
The imaginary part.

© 2005-2019 HörTech gGmbH, Oldenburg

64

CONTENTS

Returns
The new value.

3.10.2.3 mha_complex_t& set (
mha_complex_t & self,
const std::complex< mha_real_t > & stdcomplex ) [inline]
Assign a mha_complex_t (p. 431) variable from a std::complex.
Parameters
self
stdcomplex

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

Returns
A reference to the changed variable.

3.10.2.4

std::complex stdcomplex (
const mha_complex_t & self ) [inline]

Create a std::complex from mha_complex_t (p. 431).
3.10.2.5 mha_complex_t& expi (
mha_complex_t & self,
mha_real_t angle ) [inline]
replaces the value of the given mha_complex_t (p. 431) with exp(i∗b).
Parameters
self
angle

The mha_complex_t (p. 431) 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

double angle (
const mha_complex_t & self ) [inline]

Computes the angle of a complex number in the complex plane.

© 2005-2019 HörTech gGmbH, Oldenburg

3.10

Complex arithmetics in the openMHA

Parameters
The complex number whose angle is needed.

self

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

3.10.2.7 mha_complex_t& operator+= (
mha_complex_t & self,
const mha_complex_t & other ) [inline]
Addition of two complex numbers, overwriting the first.
3.10.2.8 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 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 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 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 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-2019 HörTech gGmbH, Oldenburg

65

66

CONTENTS

3.10.2.13 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 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 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 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 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 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. 431) with a ∗ exp(i∗b)
Parameters
self
angle

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

factor

The absolute value of the result.

© 2005-2019 HörTech gGmbH, Oldenburg

3.10

Complex arithmetics in the openMHA

67

Returns
A reference to the changed variable.

3.10.2.19 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 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 mha_real_t abs (
const mha_complex_t & self ) [inline]
Compute the absolute value of a complex value.
Returns
The absolute value of self.

3.10.2.22 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 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 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.
© 2005-2019 HörTech gGmbH, Oldenburg

68

CONTENTS

3.10.2.25 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 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.
3.10.2.27 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

bool operator== (
const mha_complex_t & x,
const mha_complex_t & y ) [inline]

Compare two complex numbers for equality.
3.10.2.29

bool operator!= (
const mha_complex_t & x,
const mha_complex_t & y ) [inline]

Compare two complex numbers for inequality.
3.10.2.30

void conjugate (
mha_complex_t & self ) [inline]

Replace (!) the value of this mha_complex_t (p. 431) with its conjugate.
3.10.2.31 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-2019 HörTech gGmbH, Oldenburg

3.10

Complex arithmetics in the openMHA

3.10.2.32

69

void reciprocal (
mha_complex_t & self ) [inline]

Replace the value of this complex with its reciprocal.
3.10.2.33 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

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

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

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.
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

© 2005-2019 HörTech gGmbH, Oldenburg

70

3.10.2.37

CONTENTS

bool operator< (
const mha_complex_t & x,
const mha_complex_t & y ) [inline]

Compares the absolute values of two complex numbers.

© 2005-2019 HörTech gGmbH, Oldenburg

3.11

Fast Fourier Transform functions

3.11

Fast Fourier Transform functions

71

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-2019 HörTech gGmbH, Oldenburg

72

3.11.1

Detailed Description

3.11.2

Typedef Documentation

3.11.2.1

CONTENTS

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

Function Documentation

3.11.3.1 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

3.11.3.2

object

void mha_fft_free (
mha_fft_t h )

Destroy an FFT handle.
Parameters
h

Handle to be destroyed.

Destroy an FFT handle.
© 2005-2019 HörTech gGmbH, Oldenburg

3.11

Fast Fourier Transform functions

73

Parameters
h

FFT object to be removed

3.11.3.3

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)

3.11.3.4

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.

© 2005-2019 HörTech gGmbH, Oldenburg

74

3.11.3.5

CONTENTS

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.
Parameters
h
in

FFT object handle
pointer to input spectrum

out

pointer to output waveform signal (has to be allocated)

3.11.3.6

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

© 2005-2019 HörTech gGmbH, Oldenburg

3.11

Fast Fourier Transform functions

75

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.

3.11.3.7

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. 465) 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

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. 465) 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.

© 2005-2019 HörTech gGmbH, Oldenburg

76

CONTENTS

Parameters
h
sIn

FFT handle.
Input spectrum.

sOut

Output spectrum.

3.11.3.9

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. 465) 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

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. 465) 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-2019 HörTech gGmbH, Oldenburg

3.11

Fast Fourier Transform functions

3.11.3.11

77

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

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-2019 HörTech gGmbH, Oldenburg

78

4

CONTENTS

Namespace Documentation

4.1

ac2lsl Namespace Reference

All types for the ac2lsl (p. 78) plugins live in this namespace.

Classes
• class ac2lsl_t
Plugin class of ac2lsl ( p. 78).

• class cfg_t
Runtime configuration class of the ac2lsl ( p. 78) plugin.

• class save_var_base_t
Interface for ac to lsl bridge variable.

• class save_var_t
Implementation for all ac to lsl bridges except complex types.

• class save_var_t< mha_complex_t >
Template specialization of the ac2lsl ( p. 78) bridge to take care of complex numbers.

• struct type_info

Variables
• const std::map< int, type_info > types

4.1.1

Detailed Description

All types for the ac2lsl (p. 78) plugins live in this namespace.

4.1.2

Variable Documentation

4.1.2.1

4.2

const std::map ac2lsl::types

acmon Namespace Reference

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
© 2005-2019 HörTech gGmbH, Oldenburg

4.3

acsave Namespace Reference

4.2.1

79

Detailed Description

Namespace for displaying ac variables as parser monitors.

4.3

acsave Namespace Reference

Classes
•
•
•
•

4.4

class acsave_t
class cfg_t
struct mat4head_t
class save_var_t

addsndfile Namespace Reference

Classes
• class addsndfile_if_t
• class level_adapt_t
• class resampled_soundfile_t
Reads sound from file and resamples it if necessary and wanted.

• class sndfile_t
• class waveform_proxy_t
Class helps to specify which instance of MHASignal_waveform_t parent instance is meant in
resampled_soundfile_t ( p. 184).

Typedefs
• typedef MHAPlugin::config_t< level_adapt_t > level_adaptor
• typedef MHAPlugin::plugin_t< sndfile_t > wave_reader

Enumerations

Functions
• static unsigned resampled_num_frames (unsigned num_source_frames, float source←_rate, float target_rate, addsndfile_resampling_mode_t resampling_mode)
© 2005-2019 HörTech gGmbH, Oldenburg

80

4.4.1

CONTENTS

Typedef Documentation

4.4.1.1

typedef MHAPlugin::config_t addsndfile::level_adaptor

4.4.1.2

typedef MHAPlugin::plugin_t addsndfile::wave_reader

4.4.2

Enumeration Type Documentation

4.4.2.1

enum addsndfile::addsndfile_resampling_mode_t

Specifies the resampling mode in resampled_soundfile_t (p. 184).
Enumerator
DONT_RESAMPLE_PERMISSIVE
DONT_RESAMPLE_STRICT Do not resample, if the sample rate of the MHA differs
from the sample rate of the sound file, raise an error.
DO_RESAMPLE Resample.

4.4.3

Function Documentation

4.4.3.1

4.5

static unsigned addsndfile::resampled_num_frames (
unsigned num_source_frames,
float source_rate,
float target_rate,
addsndfile_resampling_mode_t resampling_mode ) [static]

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-2019 HörTech gGmbH, Oldenburg

4.6

AuditoryProfile Namespace Reference

81

Variables
•
•
•
•

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

4.5.1

Function Documentation

4.5.1.1

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.5.2

Variable Documentation

4.5.2.1

const double ADM::PI = 3.14159265358979312

4.5.2.2

const double ADM::C = 340

4.5.2.3

const double ADM::DELAY_FREQ = 2000

4.5.2.4

const double ADM::START_BETA = 0.5

4.6

AuditoryProfile Namespace Reference

Namespace for classes and functions around the auditory profile (e.g., audiogram handling)
© 2005-2019 HörTech gGmbH, Oldenburg

82

CONTENTS

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.6.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. 226). Until a complete definition is available, only the
currently needed elements are implemented.

4.7

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)

4.7.1

Function Documentation

4.7.1.1

4.8

void coherence::getcipd (
mha_complex_t & c,
mha_real_t & a,
const mha_complex_t & xl,
const mha_complex_t & xr ) [inline]

dc Namespace Reference

Classes
•
•
•
•
•
•

class dc_if_t
class dc_t
class dc_vars_t
class dc_vars_validator_t
class wb_inhib_cfg_t
class wideband_inhib_vars_t
© 2005-2019 HörTech gGmbH, Oldenburg

4.9

dc_simple Namespace Reference

83

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

4.8.1

Function Documentation

4.8.1.1

4.9

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

dc_simple Namespace Reference

Classes
• class dc_if_t
• class dc_t
• class dc_vars_t
• class dc_vars_validator_t
• class 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="")
© 2005-2019 HörTech gGmbH, Oldenburg

84

4.9.1

CONTENTS

Typedef Documentation

4.9.1.1

typedef MHAPlugin::plugin_t dc_simple::DC

4.9.1.2

typedef MHAPlugin::config_t dc_simple::LEVEL

4.9.2

Function Documentation

4.9.2.1

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

4.9.2.2

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

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

4.10

delay Namespace Reference

Classes
• class interface_t

4.11

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.11.1

Detailed Description

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

4.12

DynComp Namespace Reference

4.12

DynComp Namespace Reference

85

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. 294) 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.12.1

Detailed Description

dynamic compression related classes and functions

4.12.2

Function Documentation

4.12.2.1 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.
Parameters
vX
vY
X

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

© 2005-2019 HörTech gGmbH, Oldenburg

86

CONTENTS

Return values
Interpolated

value Y(X) at position X.

4.12.2.2 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.13

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

fader_wave Namespace Reference

Classes
• class fader_wave_if_t
• class level_adapt_t

Typedefs
• typedef MHAPlugin::plugin_t< level_adapt_t > level_adaptor

4.13.1

Typedef Documentation

4.13.1.1

4.14

typedef MHAPlugin::plugin_t fader_wave::level_adaptor

fftfbpow Namespace Reference

Namespace for the fftfbpow plugin.
© 2005-2019 HörTech gGmbH, Oldenburg

4.15

fftfilterbank Namespace Reference

87

Classes
• class fftfbpow_interface_t
Interface class for fftfbpow plugin.

• class fftfbpow_t
Run time configuration for the fftfbpow plugin.

4.14.1

Detailed Description

Namespace for the fftfbpow plugin.

4.15

fftfilterbank Namespace Reference

Classes
• class fftfb_interface_t
• class fftfb_plug_t

4.16

fshift Namespace Reference

All types for the fshift plugin live in this namespace.
Classes
• class fshift_config_t
fshift runtime config class

• class fshift_t
fshift plugin interface class

Functions
• int fft_find_bin (mha_real_t frequency, unsigned fftlen, mha_real_t srate)
Finds bin number of FFT bin nearest to the given frequency.

4.16.1

Detailed Description

All types for the fshift plugin live in this namespace.
4.16.2
4.16.2.1

Function Documentation
int fshift::fft_find_bin (
mha_real_t frequency,
unsigned fftlen,
mha_real_t srate )

Finds bin number of FFT bin nearest to the given frequency.

© 2005-2019 HörTech gGmbH, Oldenburg

88

CONTENTS

Parameters
frequency

The frequency for which to look. Has to be in range [-srate/2,+srate/2]

fftlen

Length of the FFT.

srate

Sampling rate of the waveform from which the FFT originates.

Returns
Bin number of the FFT bin corresponding to frequency

4.17

fshift_hilbert Namespace Reference

All types for the hilbert frequency shifter live in this namespace.

Classes
• class frequency_translator_t
• class hilbert_shifter_t

4.17.1

Detailed Description

All types for the hilbert frequency shifter live in this namespace.

4.18

gain Namespace Reference

Classes
• class gain_if_t
• class scaler_t

4.19

gtfb_analyzer Namespace Reference

Classes
• struct gtfb_analyzer_cfg_t
Configuration for Gammatone Filterbank Analyzer.

• class gtfb_analyzer_t
Gammatone Filterbank Analyzer Plugin.
© 2005-2019 HörTech gGmbH, Oldenburg

4.20

matrixmixer Namespace Reference

4.20

matrixmixer Namespace Reference

89

Classes
• class cfg_t
• class matmix_t

4.21

MHA_AC Namespace Reference

Functions and classes for Algorithm Communication (AC) support.

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. 800) class into the AC space.

• class stat_t
• class waveform_t
Insert a MHASignal::waveform_t ( p. 812) 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.
© 2005-2019 HörTech gGmbH, Oldenburg

90

4.21.1

CONTENTS

Detailed Description

Functions and classes for Algorithm Communication (AC) support.

4.22

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.

4.22.1

Function Documentation

4.22.1.1

unsigned mha_error_helpers::digits (
unsigned n )

Compute number of decimal digits required to represent an unsigned integer.
Parameters
n

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

4.22.1.2

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

© 2005-2019 HörTech gGmbH, Oldenburg

4.23

MHA_TCP Namespace Reference

4.23

MHA_TCP Namespace Reference

91

A Namespace for TCP helper classes.

Classes
• class Async_Notify
Portable Multiplexable cross-thread notification.

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

• class Connection
Connection ( p. 471) 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 OS_EVENT_TYPE
class Server
class sock_init_t
class Sockaccept_Event
class 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.
© 2005-2019 HörTech gGmbH, Oldenburg

92

CONTENTS

• 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.

Variables
• class MHA_TCP::sock_init_t sock_initializer

4.23.1

Detailed Description

A Namespace for TCP helper classes.

4.23.2
4.23.2.1
4.23.3
4.23.3.1

Typedef Documentation
typedef int MHA_TCP::SOCKET
Function Documentation
std::string MHA_TCP::STRERROR (
int err )

Portable conversion from error number to error string.
4.23.3.2

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

Portable conversion from hostname error number to error string.
4.23.3.3

int MHA_TCP::N_ERRNO ( )

Portable access to last network error number.
4.23.3.4

int MHA_TCP::H_ERRNO ( )

Portable access to last hostname error number.
© 2005-2019 HörTech gGmbH, Oldenburg

4.24

mhachain Namespace Reference

4.23.3.5

93

int MHA_TCP::G_ERRNO ( )

Portable access to last non-network error number.
4.23.3.6

double MHA_TCP::dtime ( )

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

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

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

struct timeval MHA_TCP::stime (
double d )

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

4.23.4

Variable Documentation

4.23.4.1

4.24

class MHA_TCP::sock_init_t MHA_TCP::sock_initializer

mhachain Namespace Reference

Classes
• class chain_base_t
• class mhachain_t
• class plugs_t

4.25

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.
© 2005-2019 HörTech gGmbH, Oldenburg

94

4.25.1

CONTENTS

Detailed Description

Collection of event handling classes.

4.26

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.

• 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.
© 2005-2019 HörTech gGmbH, Oldenburg

4.26

MHAFilter Namespace Reference

95

• 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.

4.26.1

Detailed Description

Namespace for IIR and FIR filter classes.
© 2005-2019 HörTech gGmbH, Oldenburg

96

4.26.2

CONTENTS

Function Documentation

4.26.2.1

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

4.26.2.2

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

4.26.2.3

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

4.26.2.4

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
Time constant
Sampling rate

tau
fs

Return values
c1
c2

Recursive filter coefficient
Non-recursive filter coefficient

4.26.2.5

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

© 2005-2019 HörTech gGmbH, Oldenburg

4.26

MHAFilter Namespace Reference

97

Parameters
f1

lower frequency

f2

upper frequency

fs

sample frequency

4.26.2.6 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

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.26.2.7

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

greatest common divisor
4.26.2.8

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.26.2.9

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

© 2005-2019 HörTech gGmbH, Oldenburg

98

CONTENTS

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

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

4.27

if no rational resampling factor can be found.

MHAIOJack Namespace Reference

JACK IO.

Classes
• class io_jack_t
Main class for JACK IO.

4.27.1

Detailed Description

JACK IO.

4.28

MHAIOJackdb Namespace Reference

Classes
• class io_jack_t
Main class for JACK IO.

4.29

MHAIOPortAudio Namespace Reference

Classes
• class device_info_t
• class io_portaudio_t
Main class for Portaudio sound IO.
© 2005-2019 HörTech gGmbH, Oldenburg

4.30

MHAJack Namespace Reference

99

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

4.29.1

Function Documentation

4.29.1.1

4.30

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

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 > get_port_capture_latency_int (const std::vector< std::string >
&ports)
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 > get_port_playback_latency_int (const std::vector< std::string >
&ports)
© 2005-2019 HörTech gGmbH, Oldenburg

100

4.30.1

CONTENTS

Detailed Description

Classes and functions for openMHA and JACK interaction.

4.30.2

Function Documentation

4.30.2.1

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.30.2.2

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.30.2.3

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

Return the JACK port latency of ports.
Parameters
ports

Ports to be tested

© 2005-2019 HörTech gGmbH, Oldenburg

4.31

MHAKernel Namespace Reference

101

Returns
Latency vector (one entry for each port)

4.30.2.4

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

Return the JACK port latency of ports.
Parameters
Ports to be tested

ports

Returns
Latency vector (one entry for each port)

4.30.2.5

4.31

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

MHAKernel Namespace Reference

Classes
• class algo_comm_class_t
• class comm_var_map_t

Functions
• algo_comm_class_t ∗ algo_comm_safe_cast (void ∗)

4.31.1

Function Documentation

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

4.32

MHAMultiSrc Namespace Reference

Collection of classes for selecting audio chunks from multiple sources.
© 2005-2019 HörTech gGmbH, Oldenburg

102

CONTENTS

Classes
• class base_t
Base class for source selection.

•
•
•
•

class channel_t
class channels_t
class spectrum_t
class waveform_t

4.32.1

Detailed Description

Collection of classes for selecting audio chunks from multiple sources.

4.33

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.

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. 616).

• class scale_var_t
© 2005-2019 HörTech gGmbH, Oldenburg

4.34

MHAOvlFilter::barkscale Namespace Reference

103

Typedefs
• typedef mha_real_t( scale_fun_t) (mha_real_t)

4.33.1

Detailed Description

Namespace for overlapping FFT based filter bank classes and functions.

4.33.2

Typedef Documentation

4.33.2.1

4.34

typedef mha_real_t( MHAOvlFilter::scale_fun_t) (mha_real_t)

MHAOvlFilter::barkscale Namespace Reference

Classes
• class bark2hz_t
• class hz2bark_t

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

4.34.1

Variable Documentation

4.34.1.1 mha_real_t MHAOvlFilter::barkscale::vfreq

4.34.1.2 mha_real_t MHAOvlFilter::barkscale::vbark

4.35

MHAOvlFilter::FreqScaleFun Namespace Reference

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

104

CONTENTS

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

•
•
•
•

mha_real_t hz2khz (mha_real_t x)
mha_real_t hz2octave (mha_real_t x)
mha_real_t hz2third_octave (mha_real_t x)
mha_real_t hz2bark (mha_real_t x)
Transformation to bark scale.

•
•
•
•

mha_real_t hz2bark_analytic (mha_real_t)
mha_real_t hz2erb (mha_real_t)
mha_real_t hz2erb_glasberg1990 (mha_real_t)
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.35.1

Detailed Description

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

4.35.2

Function Documentation

4.35.2.1 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.35.2.2 mha_real_t MHAOvlFilter::FreqScaleFun::hz2khz (
mha_real_t x )
4.35.2.3 mha_real_t MHAOvlFilter::FreqScaleFun::hz2octave (
mha_real_t x )

© 2005-2019 HörTech gGmbH, Oldenburg

4.35

MHAOvlFilter::FreqScaleFun Namespace Reference

105

4.35.2.4 mha_real_t MHAOvlFilter::FreqScaleFun::hz2third_octave (
mha_real_t x )
4.35.2.5 mha_real_t MHAOvlFilter::FreqScaleFun::hz2bark (
mha_real_t x )
Transformation to bark scale.
This function implements a critical band rate (bark) scale.
Parameters
x

Input frequency in Hz

Returns
Critical band rate in Bark

4.35.2.6 mha_real_t MHAOvlFilter::FreqScaleFun::hz2bark_analytic (
mha_real_t x )
4.35.2.7 mha_real_t MHAOvlFilter::FreqScaleFun::hz2erb (
mha_real_t x )
4.35.2.8 mha_real_t MHAOvlFilter::FreqScaleFun::hz2erb_glasberg1990 (
mha_real_t x )
4.35.2.9 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

Returns
Third octaves relative to 1000 Hz
4.35.2.10 mha_real_t MHAOvlFilter::FreqScaleFun::inv_scale (
mha_real_t y,
mha_real_t(∗)(mha_real_t) fun )

© 2005-2019 HörTech gGmbH, Oldenburg

106

4.36

CONTENTS

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.36.1

Detailed Description

Shape functions for overlapping filters.

4.36.2

Function Documentation

4.36.2.1 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).
Parameters
x

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

Returns
Weigth function in the range [0,1]

4.36.2.2 mha_real_t MHAOvlFilter::ShapeFun::linear (
mha_real_t x )
Filter shape function for sawtooth filters.
© 2005-2019 HörTech gGmbH, Oldenburg

4.37

MHAParser Namespace Reference

107

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
Input value in the range [-1,1].

x

Returns
Weigth function in the range [0,1]

4.36.2.3 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
Input value in the range [-1,1].

x

Returns
Weigth function in the range [0,1]

4.36.2.4 mha_real_t MHAOvlFilter::ShapeFun::expflt (
mha_real_t x )
4.36.2.5 mha_real_t MHAOvlFilter::ShapeFun::gauss (
mha_real_t x )

4.37

MHAParser Namespace Reference

Name space for the openMHA-Parser configuration language.

Namespaces
• StrCnv
String converter namespace.
© 2005-2019 HörTech gGmbH, Oldenburg

108

CONTENTS

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
• 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 mint_mon_t
Matrix of ints monitor.

• class monitor_t
Base class for monitors and variable nodes.

• class parser_t
© 2005-2019 HörTech gGmbH, Oldenburg

4.37

MHAParser Namespace Reference

109

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.

• 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)
© 2005-2019 HörTech gGmbH, Oldenburg

110

CONTENTS

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.37.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. 34).

4.37.2

List of valid MHAParser items

• Sub-parser: parser_t (p. 688)
• Variables:
Numeric variables: int_t (p. 664), vint_t (p. 713), float_t (p. 659), vfloat_t (p. 709),
mfloat_t (p. 677)
Other variables: string_t (p. 697), vstring_t (p. 717), kw_t (p. 669), bool_t (p. 645)
• Monitors:
Numeric monitors: int_mon_t (p. 662), vint_mon_t (p. 711), float_mon_t (p. 658),
vfloat_mon_t (p. 707)
mfloat_mon_t (p. 676)
mcomplex_mon_t (p. 672)
Other monitors: bool_mon_t (p. 644), string_mon_t (p. 696), vstring_mon_t (p. 715)

Members can be inserted into the configuration namespace by using MHAParser::insert_item()
or the insert_member() (p. 1021) macro.
© 2005-2019 HörTech gGmbH, Oldenburg

4.37

MHAParser Namespace Reference

4.37.3

111

Typedef Documentation

4.37.3.1

typedef std::string(base_t::∗ MHAParser::opact_t) (expression_t &)

4.37.3.2

typedef std::string(base_t::∗ MHAParser::query_t) (const std::string &)

4.37.3.3

typedef std::map MHAParser::opact_map_t

4.37.3.4

typedef std::map MHAParser::query_map_t

4.37.3.5

typedef std::list MHAParser::entry_map_t

4.37.3.6

typedef int(∗ MHAParser::c_parse_cmd_t) (void ∗, const char ∗, char ∗, unsigned int)

4.37.3.7

typedef const char∗(∗ MHAParser::c_parse_err_t) (void ∗, int)

4.37.4

Function Documentation

4.37.4.1

int MHAParser::get_precision ( )

4.37.4.2

std::string MHAParser::commentate (
const std::string & s )

4.37.4.3

void MHAParser::trim (
std::string & s )

4.37.4.4

std::string MHAParser::cfg_dump (
base_t ∗ p,
const std::string & pref )

4.37.4.5

std::string MHAParser::cfg_dump_short (
base_t ∗ p,
const std::string & pref )

4.37.4.6

std::string MHAParser::all_dump (
base_t ∗ p,
const std::string & pref )

4.37.4.7

std::string MHAParser::mon_dump (
base_t ∗ p,
const std::string & pref )

4.37.4.8

std::string MHAParser::all_ids (
base_t ∗ p,
const std::string & pref,
const std::string & id = "" )

4.37.4.9

void MHAParser::strreplace (
std::string & s,
const std::string & arg,
const std::string & rep )

string replace function

© 2005-2019 HörTech gGmbH, Oldenburg

112

CONTENTS

Parameters
s
arg
rep

target string
search pattern
replace pattern

4.37.4.10

4.38

void MHAParser::envreplace (
std::string & s )

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 &)
© 2005-2019 HörTech gGmbH, Oldenburg

4.38

MHAParser::StrCnv Namespace Reference

113

Convert to string.

• std::string val2str (const int &)
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::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.38.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.38.2
4.38.2.1

Function Documentation
int MHAParser::StrCnv::num_brackets (
const std::string & s )

Return number of brackets at beginning and end of string.
Parameters
s

String

© 2005-2019 HörTech gGmbH, Oldenburg

114

CONTENTS

Returns
Number of brackets, or -1 for empty string

4.38.2.2

int MHAParser::StrCnv::bracket_balance (
const std::string & s )

4.38.2.3

void MHAParser::StrCnv::str2val (
const std::string & s,
bool & v )

Convert from string.
4.38.2.4

void MHAParser::StrCnv::str2val (
const std::string & s,
float & v )

Convert from string.
4.38.2.5

void MHAParser::StrCnv::str2val (
const std::string & s,
mha_complex_t & v )

Convert from string.
4.38.2.6

void MHAParser::StrCnv::str2val (
const std::string & s,
int & v )

Convert from string.
4.38.2.7

void MHAParser::StrCnv::str2val (
const std::string & s,
MHAParser::keyword_list_t & v )

Convert from string.
4.38.2.8

void MHAParser::StrCnv::str2val (
const std::string & s,
std::string & v )

Convert from string.
4.38.2.9

template void MHAParser::StrCnv::str2val (
const std::string & s,
std::vector< arg_t > & val )

Converter for vector types.
© 2005-2019 HörTech gGmbH, Oldenburg

4.38

MHAParser::StrCnv Namespace Reference

4.38.2.10

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.38.2.11

template void MHAParser::StrCnv::str2val (
const std::string & s,
std::vector< std::vector< arg_t > > & val )

Converter for matrix types.
4.38.2.12

std::string MHAParser::StrCnv::val2str (
const bool & v )

Convert to string.
4.38.2.13

std::string MHAParser::StrCnv::val2str (
const float & v )

Convert to string.
4.38.2.14

std::string MHAParser::StrCnv::val2str (
const mha_complex_t & v )

Convert to string.
4.38.2.15

std::string MHAParser::StrCnv::val2str (
const int & v )

Convert to string.
4.38.2.16

std::string MHAParser::StrCnv::val2str (
const keyword_list_t & v )

Convert to string.
4.38.2.17

std::string MHAParser::StrCnv::val2str (
const std::string & v )

Convert to string.
4.38.2.18

115

std::string MHAParser::StrCnv::val2str (
const std::vector< float > & v )

Convert to string.
© 2005-2019 HörTech gGmbH, Oldenburg

116

4.38.2.19

CONTENTS

std::string MHAParser::StrCnv::val2str (
const std::vector< mha_complex_t > & v )

Convert to string.
4.38.2.20

std::string MHAParser::StrCnv::val2str (
const std::vector< int > & v )

Convert to string.
4.38.2.21

std::string MHAParser::StrCnv::val2str (
const std::vector< std::vector< int > > & v )

Convert to string.
4.38.2.22

std::string MHAParser::StrCnv::val2str (
const std::vector< std::string > & v )

Convert to string.
4.38.2.23

std::string MHAParser::StrCnv::val2str (
const std::vector< std::vector< float > > & v )

Convert to string.
4.38.2.24

std::string MHAParser::StrCnv::val2str (
const std::vector< std::vector< mha_complex_t > > & v )

Convert to string.

4.39

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.
© 2005-2019 HörTech gGmbH, Oldenburg

4.40

MHAPlugin_Resampling Namespace Reference

4.39.1

117

Detailed Description

Namespace for openMHA plugin class templates and thread-safe runtime configurations.

4.40

MHAPlugin_Resampling Namespace Reference

Classes
• class resampling_if_t
• class resampling_t

4.41

MHAPlugin_Split Namespace Reference

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. 751) 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

4.41.1

Detailed Description

A namespace for the split plugin. Helps testability and documentation.
© 2005-2019 HörTech gGmbH, Oldenburg

118

4.41.2

CONTENTS

Enumeration Type Documentation

4.41.2.1

anonymous enum

Invalid thread priority.
Enumerator
INVALID_THREAD_PRIORITY

4.42

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. 465))
© 2005-2019 HörTech gGmbH, Oldenburg

4.42

MHASignal Namespace Reference

119

• 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. 496))

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. 496).

• 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)
© 2005-2019 HörTech gGmbH, Oldenburg

120

CONTENTS

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)
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.
© 2005-2019 HörTech gGmbH, Oldenburg

4.42

MHASignal Namespace Reference

121

Variables
• unsigned long int signal_counter = 0
Signal counter to produce signal ID strings.

4.42.1

Detailed Description

Namespace for audio signal handling and processing classes.

4.42.2

Function Documentation

4.42.2.1

void MHASignal::scale (
mha_spec_t ∗ dest,
const mha_wave_t ∗ src )

4.42.2.2

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

The signal to limit. The signal in this wave buffer is modified.
lower limit
upper limit

4.42.2.3

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
Parameters
array

Element array

© 2005-2019 HörTech gGmbH, Oldenburg

122

CONTENTS

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.
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
© 2005-2019 HörTech gGmbH, Oldenburg

4.42

MHASignal Namespace Reference

123

Precondition
n >= 1

Returns
The median of the array elements

4.42.2.5

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

4.42.2.6

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.42.2.7

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.

© 2005-2019 HörTech gGmbH, Oldenburg

124

CONTENTS

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.42.2.8

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.
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.42.2.9

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.42.2.10

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
© 2005-2019 HörTech gGmbH, Oldenburg

4.43

MHASndFile Namespace Reference

exchanged in dest.

4.42.3

Variable Documentation

4.42.3.1

unsigned long int MHASignal::signal_counter = 0

Signal counter to produce signal ID strings.

4.43

MHASndFile Namespace Reference

Classes
• class sf_t
• class sf_wave_t

4.44

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.44.1

Detailed Description

Namespace for table lookup classes.

4.45

MHAWindow Namespace Reference

Collection of Window types.
© 2005-2019 HörTech gGmbH, Oldenburg

125

126

CONTENTS

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.45.1

Detailed Description

Collection of Window types.

4.45.2
4.45.2.1

Function Documentation
float MHAWindow::rect (
float x )

Rectangular window function.
© 2005-2019 HörTech gGmbH, Oldenburg

4.46

multibandcompressor Namespace Reference

4.45.2.2

float MHAWindow::bartlett (
float x )

Bartlett window function.
4.45.2.3

float MHAWindow::hanning (
float x )

Hanning window function.
4.45.2.4

float MHAWindow::hamming (
float x )

Hamming window function.
4.45.2.5

float MHAWindow::blackman (
float x )

Blackman window function.

4.46

multibandcompressor Namespace Reference

Classes
• class fftfb_plug_t
• class interface_t
• class plugin_signals_t

4.47

noisePowProposedScale Namespace Reference

Classes
• class interface_t
• class noisePowProposed

4.48

overlapadd Namespace Reference

Classes
• class overlapadd_if_t
• class overlapadd_t
© 2005-2019 HörTech gGmbH, Oldenburg

127

128

4.49

CONTENTS

plingploing Namespace Reference

All classes for the plingploing music generator live in this namespace.

Classes
• class if_t
Plugin class of the plingploing music generator.

• class plingploing_t
Run-time configuration of the plingploing music generator.

Functions
• double drand (double a, double b)

4.49.1

Detailed Description

All classes for the plingploing music generator live in this namespace.

4.49.2

Function Documentation

4.49.2.1

4.50

double plingploing::drand (
double a,
double b )

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. 504) structures, and report differences as an error.
© 2005-2019 HörTech gGmbH, Oldenburg

4.51

route Namespace Reference

4.50.1

129

Function Documentation

4.50.1.1

const char ∗ PluginLoader::mhastrdomain (
mha_domain_t d )

4.50.1.2

void PluginLoader::mhaconfig_compare (
const mhaconfig_t & req,
const mhaconfig_t & avail,
const std::string & pref = "" )

Compare two mhaconfig_t (p. 504) structures, and report differences as an error.
Parameters
req

Expected mhaconfig_t (p. 504) structure

avail

Available mhaconfig_t (p. 504) structure

pref

Prefix for error messages

4.51

route Namespace Reference

Classes
• class interface_t
• class process_t

4.52

shadowfilter_begin Namespace Reference

Classes
• class cfg_t
• class shadowfilter_begin_t

4.53

shadowfilter_end Namespace Reference

Classes
• class cfg_t
• class shadowfilter_end_t
© 2005-2019 HörTech gGmbH, Oldenburg

130

4.54

CONTENTS

smoothgains_bridge Namespace Reference

Classes
• class overlapadd_if_t
• class smoothspec_wrap_t

4.55

testplugin Namespace Reference

Classes
•
•
•
•

5
5.1

class ac_parser_t
class config_parser_t
class if_t
class signal_parser_t

Class Documentation
ac2lsl::ac2lsl_t Class Reference

Plugin class of ac2lsl (p. 78).
Inheritance diagram for ac2lsl::ac2lsl_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< cfg_t >

MHAPlugin::plugin_t
< cfg_t >

ac2lsl::ac2lsl_t

© 2005-2019 HörTech gGmbH, Oldenburg

5.1

ac2lsl::ac2lsl_t Class Reference

131

Public Member Functions
• ac2lsl_t (algo_comm_t iac, const char ∗chain, const char ∗algo)
• void prepare (mhaconfig_t &)
Prepare constructs the vector of bridge variables and locks the configuration, then calls update() ( p. 133).

• mha_wave_t ∗ process (mha_wave_t ∗s)
Processing fct for waveforms.

• mha_spec_t ∗ process (mha_spec_t ∗s)
Processing fct for spectra.

• void process ()
Process function.

• void release ()
Release fct.

Private Member Functions
• std::vector< std::string > get_all_names_from_ac_space (const algo_comm_t &ac)
const
Retrieves all variable names from the AC space.

• void update ()
Construct new runtime configuration.

Private Attributes
•
•
•
•
•
•
•

MHAParser::vstring_t vars
MHAParser::string_t source_id
MHAParser::bool_t rt_strict
MHAParser::bool_t activate
MHAParser::int_t skip
MHAEvents::patchbay_t< ac2lsl_t > patchbay
bool is_first_run

Additional Inherited Members

5.1.1

Detailed Description

Plugin class of ac2lsl (p. 78).
© 2005-2019 HörTech gGmbH, Oldenburg

132

5.1.2
5.1.2.1

5.1.3
5.1.3.1

CONTENTS

Constructor & Destructor Documentation
ac2lsl::ac2lsl_t::ac2lsl_t (
algo_comm_t iac,
const char ∗ chain,
const char ∗ algo )
Member Function Documentation
void ac2lsl::ac2lsl_t::prepare (
mhaconfig_t & cf ) [virtual]

Prepare constructs the vector of bridge variables and locks the configuration, then calls update() (p. 133).
Implements MHAPlugin::plugin_t< cfg_t > (p. 730).
5.1.3.2 mha_wave_t∗ ac2lsl::ac2lsl_t::process (
mha_wave_t ∗ s ) [inline]
Processing fct for waveforms.
Calls process(void) (p. 132).
5.1.3.3 mha_spec_t∗ ac2lsl::ac2lsl_t::process (
mha_spec_t ∗ s ) [inline]
Processing fct for spectra.
Calls process(void) (p. 132).
5.1.3.4

void ac2lsl::ac2lsl_t::process (
void )

Process function.
Checks once if the plugin is run in a real-time thread and throws if rt_strict is true, then forwards
to cfg_t::process() (p. 135).
5.1.3.5

void ac2lsl::ac2lsl_t::release ( ) [virtual]

Release fct.
Unlocks variable name list
Reimplemented from MHAPlugin::plugin_t< cfg_t > (p. 731).
5.1.3.6

std::vector< std::string > ac2lsl::ac2lsl_t::get_all_names_from_ac_space (
const algo_comm_t & ac ) const [private]

Retrieves all variable names from the AC space.

© 2005-2019 HörTech gGmbH, Oldenburg

5.2

ac2lsl::cfg_t Class Reference

133

Parameters
AC space

ac

Returns
Vector of variable names

5.1.3.7

void ac2lsl::ac2lsl_t::update ( ) [private]

Construct new runtime configuration.

5.1.4

Member Data Documentation

5.1.4.1 MHAParser::vstring_t ac2lsl::ac2lsl_t::vars [private]
5.1.4.2 MHAParser::string_t ac2lsl::ac2lsl_t::source_id [private]
5.1.4.3 MHAParser::bool_t ac2lsl::ac2lsl_t::rt_strict [private]
5.1.4.4 MHAParser::bool_t ac2lsl::ac2lsl_t::activate [private]
5.1.4.5 MHAParser::int_t ac2lsl::ac2lsl_t::skip [private]
5.1.4.6 MHAEvents::patchbay_t ac2lsl::ac2lsl_t::patchbay [private]
5.1.4.7

bool ac2lsl::ac2lsl_t::is_first_run [private]

The documentation for this class was generated from the following file:
• ac2lsl.cpp

5.2

ac2lsl::cfg_t Class Reference

Runtime configuration class of the ac2lsl (p. 78) plugin.

Public Member Functions
• cfg_t (const algo_comm_t &ac_, unsigned skip_, const std::string &source_id, const
std::vector< std::string > &varnames_, double rate)
C'tor of ac2lsl ( p. 78) run time configuration.

• void process ()
© 2005-2019 HörTech gGmbH, Oldenburg

134

CONTENTS

Private Member Functions
• void create_or_replace_var (const std::string &name, const comm_var_t &v)
• void check_vars ()
• void update_varlist ()

Private Attributes
• std::map< std::string, std::unique_ptr< save_var_base_t > > varlist
Maps variable name to unique ptr's of ac to lsl bridges.

• unsigned skipcnt
Counter of frames to skip.

• const unsigned skip
Number of frames to skip after each send.

• const double srate
Sampling rate of the stream.

• const std::string source_id
User configurable source id.

• const algo_comm_t & ac
Handle to the ac space.

5.2.1

Detailed Description

Runtime configuration class of the ac2lsl (p. 78) plugin.

5.2.2

Constructor & Destructor Documentation

5.2.2.1

cfg_t::cfg_t (
const algo_comm_t & ac_,
unsigned skip_,
const std::string & source_id,
const std::vector< std::string > & varnames_,
double rate )

C'tor of ac2lsl (p. 78) run time configuration.
Parameters
ac_

AC space, source of data to send over LSL

skip_

Number of frames to skip after each send

source_←LSL identifier for this data stream
id_
varnames←- Names of AC variables to send over LSL
_
rate
Rate with wich chunks of data are sent to the LSL stream. Usually the rate
© 2005-2019
HörTech
gGmbH, Oldenburg
with which process calls happen, but may be lower
due to
the subsampling
caused by skip_

5.2

ac2lsl::cfg_t Class Reference

5.2.3

Member Function Documentation

5.2.3.1

void cfg_t::create_or_replace_var (
const std::string & name,
const comm_var_t & v ) [private]

5.2.3.2

void ac2lsl::cfg_t::check_vars ( ) [private]

5.2.3.3

void cfg_t::update_varlist ( ) [private]

5.2.3.4

void cfg_t::process (
void )

5.2.4
5.2.4.1

Member Data Documentation
std::map > ac2lsl::cfg_t::varlist
[private]

Maps variable name to unique ptr's of ac to lsl bridges.
5.2.4.2

unsigned ac2lsl::cfg_t::skipcnt [private]

Counter of frames to skip.
5.2.4.3

const unsigned ac2lsl::cfg_t::skip [private]

Number of frames to skip after each send.
5.2.4.4

const double ac2lsl::cfg_t::srate [private]

Sampling rate of the stream.
5.2.4.5

const std::string ac2lsl::cfg_t::source_id [private]

User configurable source id.
5.2.4.6

135

const algo_comm_t& ac2lsl::cfg_t::ac [private]

Handle to the ac space.
The documentation for this class was generated from the following file:
• ac2lsl.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

136

5.3

CONTENTS

ac2lsl::save_var_base_t Class Reference

Interface for ac to lsl bridge variable.
Inheritance diagram for ac2lsl::save_var_base_t:

ac2lsl::save_var_base_t

ac2lsl::save_var_t< T >

ac2lsl::save_var_t
< mha_complex_t >

Public Member Functions
•
•
•
•
•
•
•

virtual void send_frame ()=0
virtual void ∗ get_buf_address () const noexcept=0
virtual void set_buf_address (void ∗data)=0
virtual lsl::stream_info info () const noexcept=0
virtual unsigned data_type () const noexcept=0
virtual unsigned num_entries () const noexcept=0
virtual ∼save_var_base_t ()=default

5.3.1

Detailed Description

Interface for ac to lsl bridge variable.

5.3.2
5.3.2.1
5.3.3
5.3.3.1

Constructor & Destructor Documentation
virtual ac2lsl::save_var_base_t::∼save_var_base_t ( ) [virtual], [default]
Member Function Documentation
virtual void ac2lsl::save_var_base_t::send_frame ( ) [pure virtual]

Implemented in ac2lsl::save_var_t< mha_complex_t > (p. 143), and ac2lsl::save_var_t<
T > (p. 140).
© 2005-2019 HörTech gGmbH, Oldenburg

5.4

ac2lsl::save_var_t< T > Class Template Reference

5.3.3.2

virtual void∗ ac2lsl::save_var_base_t::get_buf_address (
[noexcept]

137

) const [pure virtual],

Implemented in ac2lsl::save_var_t< mha_complex_t > (p. 142), and ac2lsl::save_var_t<
T > (p. 139).
5.3.3.3

virtual void ac2lsl::save_var_base_t::set_buf_address (
void ∗ data ) [pure virtual]

Implemented in ac2lsl::save_var_t< mha_complex_t > (p. 142), and ac2lsl::save_var_t<
T > (p. 139).
5.3.3.4

virtual lsl::stream_info ac2lsl::save_var_base_t::info (
[noexcept]

) const [pure virtual],

Implemented in ac2lsl::save_var_t< mha_complex_t > (p. 142), and ac2lsl::save_var_t<
T > (p. 139).
5.3.3.5

virtual unsigned ac2lsl::save_var_base_t::data_type (
[noexcept]

) const [pure virtual],

Implemented in ac2lsl::save_var_t< mha_complex_t > (p. 142), and ac2lsl::save_var_t<
T > (p. 140).
5.3.3.6

virtual unsigned ac2lsl::save_var_base_t::num_entries (
[noexcept]

) const [pure virtual],

Implemented in ac2lsl::save_var_t< mha_complex_t > (p. 142), and ac2lsl::save_var_t<
T > (p. 139).
The documentation for this class was generated from the following file:
• ac2lsl.cpp

5.4

ac2lsl::save_var_t< T > Class Template Reference

Implementation for all ac to lsl bridges except complex types.
Inheritance diagram for ac2lsl::save_var_t< T >:

ac2lsl::save_var_base_t

ac2lsl::save_var_t< T >

© 2005-2019 HörTech gGmbH, Oldenburg

138

CONTENTS

Public Member Functions
• save_var_t (const std::string &name_, const std::string &type_, unsigned num_entries_,
const mha_real_t rate_, const lsl::channel_format_t format_, const std::string &source←_id_, void ∗data_, const unsigned data_type_)
C'tor of generic ac to lsl bridge.

• virtual void ∗ get_buf_address () const noexceptoverride
Get buffer address as void pointer.

• virtual void set_buf_address (void ∗data) override
Cast the input pointer to the appropriate type and set the buffer address.

• virtual lsl::stream_info info () const noexceptoverride
Get stream info object from stream outlet.

• virtual unsigned num_entries () const noexceptoverride
Get number of entries in the stream object.

• virtual unsigned data_type () const noexceptoverride
Get data type id according MHA convention.

• virtual ∼save_var_t ()=default
• virtual void send_frame () override
Send a frame to lsl.

Private Attributes
• lsl::stream_outlet stream
LSL stream outlet.

• T ∗ buf
Pointer to data buffer of the ac variable.

• const unsigned data_type_
Data type id according to MHA convention.

5.4.1

Detailed Description

template
class ac2lsl::save_var_t< T >
Implementation for all ac to lsl bridges except complex types.
5.4.2
5.4.2.1

Constructor & Destructor Documentation
template ac2lsl::save_var_t< T >::save_var_t (
const std::string & name_,
const std::string & type_,
unsigned num_entries_,
const mha_real_t rate_,
const lsl::channel_format_t format_,
const std::string & source_id_,
void ∗ data_,
const unsigned data_type_ ) [inline]

C'tor of generic ac to lsl bridge.

© 2005-2019 HörTech gGmbH, Oldenburg

5.4

ac2lsl::save_var_t< T > Class Template Reference

139

Parameters
info

LSL stream info object containing metadata

data
data_type

Pointer to data buffer of the ac variable
Type id of the stream, in mha convention. Should be set to one if not a vector.

5.4.2.2

5.4.3

template virtual ac2lsl::save_var_t< T >::∼save_var_t ( ) [virtual],
[default]
Member Function Documentation

5.4.3.1

template virtual void∗ ac2lsl::save_var_t< T >::get_buf_address ( ) const
[inline], [override], [virtual], [noexcept]

Get buffer address as void pointer.
Returns
Adress of the data buffer
Implements ac2lsl::save_var_base_t (p. 137).
5.4.3.2

template virtual void ac2lsl::save_var_t< T >::set_buf_address (
void ∗ data ) [inline], [override], [virtual]

Cast the input pointer to the appropriate type and set the buffer address.
Parameters
data

New buffer address

Implements ac2lsl::save_var_base_t (p. 137).
5.4.3.3

template virtual lsl::stream_info ac2lsl::save_var_t< T >::info ( ) const
[inline], [override], [virtual], [noexcept]

Get stream info object from stream outlet.
Implements ac2lsl::save_var_base_t (p. 137).
5.4.3.4

template virtual unsigned ac2lsl::save_var_t< T >::num_entries ( ) const
[inline], [override], [virtual], [noexcept]

Get number of entries in the stream object.
Implements ac2lsl::save_var_base_t (p. 137).
© 2005-2019 HörTech gGmbH, Oldenburg

140

5.4.3.5

CONTENTS

template virtual unsigned ac2lsl::save_var_t< T >::data_type ( ) const
[inline], [override], [virtual], [noexcept]

Get data type id according MHA convention.
Implements ac2lsl::save_var_base_t (p. 137).
5.4.3.6

template virtual void ac2lsl::save_var_t< T >::send_frame ( ) [inline],
[override], [virtual]

Send a frame to lsl.
Implements ac2lsl::save_var_base_t (p. 136).
5.4.4

Member Data Documentation

5.4.4.1

template lsl::stream_outlet ac2lsl::save_var_t< T >::stream [private]

LSL stream outlet.
Interface to lsl
5.4.4.2

template T∗ ac2lsl::save_var_t< T >::buf [private]

Pointer to data buffer of the ac variable.
5.4.4.3

template const unsigned ac2lsl::save_var_t< T >::data_type_
[private]

Data type id according to MHA convention.
The documentation for this class was generated from the following file:
• ac2lsl.cpp

5.5

ac2lsl::save_var_t< mha_complex_t > Class Template Reference

Template specialization of the ac2lsl (p. 78) bridge to take care of complex numbers.
Inheritance diagram for ac2lsl::save_var_t< mha_complex_t >:

ac2lsl::save_var_base_t

ac2lsl::save_var_t
< mha_complex_t >

© 2005-2019 HörTech gGmbH, Oldenburg

5.5 ac2lsl::save_var_t< mha_complex_t > Class Template
Reference

141

Public Member Functions
• save_var_t (const std::string &name_, const std::string &type_, const unsigned num_←entries_, const mha_real_t rate_, const lsl::channel_format_t format_, const std::string
&source_id_, void ∗data_)
C'tor of specialization for complex types.

• virtual void ∗ get_buf_address () const noexceptoverride
• virtual void set_buf_address (void ∗data) override
• virtual lsl::stream_info info () const noexceptoverride
Get buffer address as void pointer.

• virtual unsigned num_entries () const noexceptoverride
Get number of entries in the stream object.

• virtual unsigned data_type () const noexceptoverride
Cast the input pointer to the appropriate type and set the buffer address.

• virtual ∼save_var_t ()=default
• virtual void send_frame () override
Send a frame of complex types.

Private Attributes
• lsl::stream_outlet stream
LSL stream outlet.

• mha_complex_t ∗ buf
Pointer to data buffer of the ac variable.

5.5.1

Detailed Description

template<>
class ac2lsl::save_var_t< mha_complex_t >
Template specialization of the ac2lsl (p. 78) bridge to take care of complex numbers.
This specialization is needed because lsl does not support complex numbers. Order is [re(0),
im(0), re(1), im(1), ....]

5.5.2

Constructor & Destructor Documentation

5.5.2.1 ac2lsl::save_var_t< mha_complex_t >::save_var_t (
const std::string & name_,
const std::string & type_,
const unsigned num_entries_,
const mha_real_t rate_,
const lsl::channel_format_t format_,
const std::string & source_id_,
void ∗ data_ ) [inline]
C'tor of specialization for complex types.
See generic c'tor for details.
© 2005-2019 HörTech gGmbH, Oldenburg

142

5.5.2.2

5.5.3

CONTENTS

virtual ac2lsl::save_var_t< mha_complex_t >::∼save_var_t (
[default]

) [virtual],

Member Function Documentation

5.5.3.1

virtual void∗ ac2lsl::save_var_t< mha_complex_t >::get_buf_address (
[inline], [override], [virtual], [noexcept]

) const

Implements ac2lsl::save_var_base_t (p. 137).
5.5.3.2

virtual void ac2lsl::save_var_t< mha_complex_t >::set_buf_address (
void ∗ data ) [inline], [override], [virtual]

Implements ac2lsl::save_var_base_t (p. 137).
5.5.3.3

virtual lsl::stream_info ac2lsl::save_var_t< mha_complex_t >::info (
[inline], [override], [virtual], [noexcept]

) const

Get buffer address as void pointer.
Returns
Adress of the data buffer
Implements ac2lsl::save_var_base_t (p. 137).
5.5.3.4

virtual unsigned ac2lsl::save_var_t< mha_complex_t >::num_entries (
[inline], [override], [virtual], [noexcept]

) const

Get number of entries in the stream object.
Implements ac2lsl::save_var_base_t (p. 137).
5.5.3.5

virtual unsigned ac2lsl::save_var_t< mha_complex_t >::data_type (
[inline], [override], [virtual], [noexcept]

) const

Cast the input pointer to the appropriate type and set the buffer address.
Parameters
data

New buffer address

Implements ac2lsl::save_var_base_t (p. 137).
© 2005-2019 HörTech gGmbH, Oldenburg

5.6

ac2lsl::type_info Struct Reference

5.5.3.6

143

virtual void ac2lsl::save_var_t< mha_complex_t >::send_frame (
[override], [virtual]

) [inline],

Send a frame of complex types.
Complex numbers are stored as alternating real and imaginary parts. An array of complex
numbers in memory can be reinterpreted as a vector of real numbers that correspond to real
and imaginary parts. LSL does not support complex types directly. Send one vector containing
{buf[0].re,buf[0].im,buf[1].re,buf[1].im,...} instead.
Implements ac2lsl::save_var_base_t (p. 136).

5.5.4

Member Data Documentation

5.5.4.1

lsl::stream_outlet ac2lsl::save_var_t< mha_complex_t >::stream [private]

LSL stream outlet.
Interface to lsl
5.5.4.2 mha_complex_t∗ ac2lsl::save_var_t< mha_complex_t >::buf [private]
Pointer to data buffer of the ac variable.
The documentation for this class was generated from the following file:
• ac2lsl.cpp

5.6

ac2lsl::type_info Struct Reference

Public Attributes
• const std::string name
• const lsl::channel_format_t format

5.6.1

Member Data Documentation

5.6.1.1

const std::string ac2lsl::type_info::name

5.6.1.2

const lsl::channel_format_t ac2lsl::type_info::format

The documentation for this struct was generated from the following file:
• ac2lsl.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

144

5.7

CONTENTS

ac2osc_t Class Reference

Plugin class of the ac2osc plugin.
Inheritance diagram for ac2osc_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< int >

MHAPlugin::plugin_t
< int >

ac2osc_t

Public Member Functions
• ac2osc_t (algo_comm_t iac, const char ∗chain, const char ∗algo)
C'tor of plugin class.

• void prepare (mhaconfig_t &)
• mha_wave_t ∗ process (mha_wave_t ∗s)
Processing fct for waveforms.

• mha_spec_t ∗ process (mha_spec_t ∗s)
Processing fct for spectra.

• void process ()
Process function.

• void release ()
Release frees osc related memory, does cleanup.

Private Member Functions
• void send_osc_float ()
• void update_mode ()
Start/Stop sending of messages.
© 2005-2019 HörTech gGmbH, Oldenburg

5.7

ac2osc_t Class Reference

Private Attributes
• MHAParser::string_t host
OSC server host name.

• MHAParser::string_t port
OSC server port.

• MHAParser::int_t ttl
Time-to-live of UDP packages.

• MHAParser::vstring_t vars
List of AC variables to be saved, empty for all.

• MHAParser::kw_t mode
Record mode.

• MHAParser::int_t skip
number of frames to skip after sending

• MHAParser::bool_t rt_strict
abort if used in real-time thread?

•
•
•
•
•
•
•
•

MHA_AC::acspace2matrix_t ∗ acspace
MHAEvents::patchbay_t< ac2osc_t > patchbay
bool b_record
uint8_t ∗ rtmem
float framerate
int skipcnt
lo_address lo_addr
bool is_first_run

Additional Inherited Members

5.7.1

Detailed Description

Plugin class of the ac2osc plugin.

5.7.2

5.7.2.1

Constructor & Destructor Documentation

ac2osc_t::ac2osc_t (
algo_comm_t iac,
const char ∗ chain,
const char ∗ algo )

C'tor of plugin class.
© 2005-2019 HörTech gGmbH, Oldenburg

145

146

5.7.3
5.7.3.1

CONTENTS

Member Function Documentation
void ac2osc_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< int > (p. 730).
5.7.3.2 mha_wave_t∗ ac2osc_t::process (
mha_wave_t ∗ s ) [inline]
Processing fct for waveforms.
Calls process(void) (p. 146).
5.7.3.3 mha_spec_t∗ ac2osc_t::process (
mha_spec_t ∗ s ) [inline]
Processing fct for spectra.
Calls process(void) (p. 146).
5.7.3.4

void ac2osc_t::process (
void )

Process function.
Checks once if the plugin is run in a real-time thread and throws if rt_strict is true, sends osc
messages according to config.
5.7.3.5

void ac2osc_t::release (
void ) [virtual]

Release frees osc related memory, does cleanup.
Reimplemented from MHAPlugin::plugin_t< int > (p. 731).
5.7.3.6

void ac2osc_t::send_osc_float ( ) [private]

5.7.3.7

void ac2osc_t::update_mode ( ) [private]

Start/Stop sending of messages.

5.7.4

Member Data Documentation

5.7.4.1 MHAParser::string_t ac2osc_t::host [private]
OSC server host name.
© 2005-2019 HörTech gGmbH, Oldenburg

5.7

ac2osc_t Class Reference

147

5.7.4.2 MHAParser::string_t ac2osc_t::port [private]
OSC server port.
5.7.4.3 MHAParser::int_t ac2osc_t::ttl [private]
Time-to-live of UDP packages.
5.7.4.4 MHAParser::vstring_t ac2osc_t::vars [private]
List of AC variables to be saved, empty for all.
5.7.4.5 MHAParser::kw_t ac2osc_t::mode [private]
Record mode.
5.7.4.6 MHAParser::int_t ac2osc_t::skip [private]
number of frames to skip after sending
5.7.4.7 MHAParser::bool_t ac2osc_t::rt_strict [private]
abort if used in real-time thread?
5.7.4.8 MHA_AC::acspace2matrix_t∗ ac2osc_t::acspace [private]
5.7.4.9 MHAEvents::patchbay_t ac2osc_t::patchbay [private]
5.7.4.10

bool ac2osc_t::b_record [private]

5.7.4.11

uint8_t∗ ac2osc_t::rtmem [private]

5.7.4.12

float ac2osc_t::framerate [private]

5.7.4.13

int ac2osc_t::skipcnt [private]

5.7.4.14

lo_address ac2osc_t::lo_addr [private]

5.7.4.15

bool ac2osc_t::is_first_run [private]

The documentation for this class was generated from the following file:
• ac2osc.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

148

5.8

CONTENTS

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-2019 HörTech gGmbH, Oldenburg

5.8

ac2wave_if_t Class Reference

149

Additional Inherited Members
5.8.1
5.8.1.1

5.8.2

Constructor & Destructor Documentation
ac2wave_if_t::ac2wave_if_t (
const algo_comm_t & iac,
const std::string & ith,
const std::string & ial )
Member Function Documentation

5.8.2.1 mha_wave_t ∗ ac2wave_if_t::process (
mha_spec_t ∗ )
5.8.2.2 mha_wave_t ∗ ac2wave_if_t::process (
mha_wave_t ∗ s )
5.8.2.3

void ac2wave_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< ac2wave_t > (p. 730).
5.8.2.4

void ac2wave_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< ac2wave_t > (p. 731).
5.8.2.5
5.8.3

void ac2wave_if_t::update ( ) [private]
Member Data Documentation

5.8.3.1 MHAParser::string_t ac2wave_if_t::name [private]
5.8.3.2 MHAParser::float_t ac2wave_if_t::gain_in [private]
5.8.3.3 MHAParser::float_t ac2wave_if_t::gain_ac [private]
5.8.3.4 MHAParser::int_t ac2wave_if_t::delay_in [private]
5.8.3.5 MHAParser::int_t ac2wave_if_t::delay_ac [private]
5.8.3.6 MHASignal::waveform_t∗ ac2wave_if_t::zeros [private]
5.8.3.7

bool ac2wave_if_t::prepared [private]

5.8.3.8 MHAEvents::patchbay_t ac2wave_if_t::patchbay [private]
The documentation for this class was generated from the following file:
• ac2wave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

150

5.9

CONTENTS

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
•
•
•
•
•
•
•
•
•

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

5.9.1
5.9.1.1

5.9.2

Constructor & Destructor Documentation
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_ )
Member Function Documentation

5.9.2.1 mha_wave_t ∗ ac2wave_t::process (
mha_wave_t ∗ s )
5.9.3

Member Data Documentation

5.9.3.1

unsigned int ac2wave_t::frames [private]

5.9.3.2

unsigned int ac2wave_t::channels [private]

5.9.3.3 mha_wave_t ac2wave_t::w [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.10

acConcat_wave Class Reference

151

5.9.3.4 algo_comm_t ac2wave_t::ac [private]

5.9.3.5

std::string ac2wave_t::name [private]

5.9.3.6 MHASignal::delay_wave_t ac2wave_t::delay_in [private]

5.9.3.7 MHASignal::delay_wave_t ac2wave_t::delay_ac [private]

5.9.3.8 mha_real_t ac2wave_t::gain_in [private]

5.9.3.9 mha_real_t ac2wave_t::gain_ac [private]
The documentation for this class was generated from the following file:

• ac2wave.cpp

5.10

acConcat_wave Class Reference

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

© 2005-2019 HörTech gGmbH, Oldenburg

152

CONTENTS

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_con_AC
MHAParser::int_t numchannels

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< acConcat_wave > patchbay

Additional Inherited Members

5.10.1

5.10.1.1

Constructor & Destructor Documentation

acConcat_wave::acConcat_wave (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
© 2005-2019 HörTech gGmbH, Oldenburg

5.10

acConcat_wave Class Reference

5.10.1.2
5.10.2

153

acConcat_wave::∼acConcat_wave ( )
Member Function Documentation

5.10.2.1 mha_wave_t ∗ acConcat_wave::process (
mha_wave_t ∗ signal )
Checks for the most recent configuration and defers processing to it.
5.10.2.2

void acConcat_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< acConcat_wave_config > (p. 730).
5.10.2.3

void acConcat_wave::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< acConcat_wave_config > (p. 731).
5.10.2.4
5.10.3

void acConcat_wave::update_cfg ( ) [private]
Member Data Documentation

5.10.3.1 MHAParser::int_t acConcat_wave::num_AC
5.10.3.2 MHAParser::string_t acConcat_wave::prefix_names_AC
5.10.3.3 MHAParser::vint_t acConcat_wave::samples_AC
5.10.3.4 MHAParser::string_t acConcat_wave::name_con_AC
5.10.3.5 MHAParser::int_t acConcat_wave::numchannels
5.10.3.6 MHAEvents::patchbay_t acConcat_wave::patchbay [private]
The documentation for this class was generated from the following files:
• acConcat_wave.h
• acConcat_wave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

154

5.11

CONTENTS

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.11.1

Constructor & Destructor Documentation

5.11.1.1

acConcat_wave_config::acConcat_wave_config (
algo_comm_t & ac,
const mhaconfig_t in_cfg,
acConcat_wave ∗ _concat )

5.11.1.2

acConcat_wave_config::∼acConcat_wave_config ( )

5.11.2

Member Function Documentation

5.11.2.1 mha_wave_t ∗ acConcat_wave_config::process (
mha_wave_t ∗ wave )
5.11.3

Member Data Documentation

5.11.3.1 algo_comm_t& acConcat_wave_config::ac
5.11.3.2

std::vector acConcat_wave_config::strNames_AC

5.11.3.3

std::vector acConcat_wave_config::numSamples_AC

5.11.3.4 mha_wave_t acConcat_wave_config::vGCC
5.11.3.5 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
© 2005-2019 HörTech gGmbH, Oldenburg

5.12

acmon::ac_monitor_t Class Reference

5.12

acmon::ac_monitor_t Class Reference

155

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_, algo_comm←_t ac, bool use_matrix)
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

5.12.1

Detailed Description

A class for converting AC variables to Parser monitors of correct type.
5.12.2
5.12.2.1

Constructor & Destructor Documentation
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.

© 2005-2019 HörTech gGmbH, Oldenburg

156

CONTENTS

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.12.3

Member Function Documentation

5.12.3.1

void acmon::ac_monitor_t::getvar (
algo_comm_t ac )

Update values of monitor.
Parameters
ac

Handle to algorithm communication space

5.12.4

5.12.4.1

Member Data Documentation

std::string acmon::ac_monitor_t::name

name of AC variable and parser monitor
5.12.4.2

std::string acmon::ac_monitor_t::dimstr

columns x rows
5.12.4.3 MHAParser::vfloat_mon_t acmon::ac_monitor_t::mon
Monitor used for real vectors.
5.12.4.4 MHAParser::mfloat_mon_t acmon::ac_monitor_t::mon_mat
Monitor used for real matrices.
5.12.4.5 MHAParser::vcomplex_mon_t acmon::ac_monitor_t::mon_complex
monitor used for complex vectors
© 2005-2019 HörTech gGmbH, Oldenburg

5.13

acmon::acmon_t Class Reference

157

5.12.4.6 MHAParser::mcomplex_mon_t acmon::ac_monitor_t::mon_mat_complex
monitor used for complex matrices
5.12.4.7 MHAParser::parser_t& acmon::ac_monitor_t::p_parser
parent parser to insert monitor into
5.12.4.8

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.13

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-2019 HörTech gGmbH, Oldenburg

158

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.13.1

Constructor & Destructor Documentation

5.13.1.1

acmon::acmon_t::acmon_t (
const algo_comm_t & iac,
const std::string & ith,
const std::string & ial )

5.13.1.2

acmon::acmon_t::∼acmon_t (
void )

5.13.2
5.13.2.1

Member Function Documentation
void acmon::acmon_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< int > (p. 730).
© 2005-2019 HörTech gGmbH, Oldenburg

5.13

acmon::acmon_t Class Reference

5.13.2.2

159

void acmon::acmon_t::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< int > (p. 731).
5.13.2.3 mha_spec_t ∗ acmon::acmon_t::process (
mha_spec_t ∗ s )
5.13.2.4 mha_wave_t ∗ acmon::acmon_t::process (
mha_wave_t ∗ s )
5.13.2.5

void acmon::acmon_t::save_vars ( ) [private]

5.13.2.6

void acmon::acmon_t::update_recmode ( ) [private]

5.13.3

Member Data Documentation

5.13.3.1 algo_comm_t acmon::acmon_t::ac [private]
5.13.3.2 MHAParser::vstring_mon_t acmon::acmon_t::varlist [private]
5.13.3.3 MHAParser::vstring_mon_t acmon::acmon_t::dimensions [private]
5.13.3.4 MHAParser::kw_t acmon::acmon_t::dispmode [private]
5.13.3.5 MHAParser::kw_t acmon::acmon_t::recmode [private]
5.13.3.6

std::vector acmon::acmon_t::vars [private]

5.13.3.7 MHAEvents::patchbay_t acmon::acmon_t::patchbay [private]
5.13.3.8

std::string acmon::acmon_t::chain [private]

5.13.3.9

std::string acmon::acmon_t::algo [private]

5.13.3.10

bool acmon::acmon_t::b_cont [private]

5.13.3.11

bool acmon::acmon_t::b_snapshot [private]

The documentation for this class was generated from the following file:
• acmon.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

160

5.14

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-2019 HörTech gGmbH, Oldenburg

5.14
•
•
•
•
•
•
•

acPooling_wave Class Reference

161

MHAParser::float_t alpha
MHAParser::string_t p_name
MHAParser::string_t p_biased_name
MHAParser::string_t pool_name
MHAParser::string_t max_pool_ind_name
MHAParser::string_t like_ratio_name
MHAParser::vfloat_t prob_bias

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< acPooling_wave > patchbay

Additional Inherited Members
5.14.1
5.14.1.1

Constructor & Destructor Documentation
acPooling_wave::acPooling_wave (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
5.14.1.2
5.14.2

acPooling_wave::∼acPooling_wave ( )
Member Function Documentation

5.14.2.1 mha_wave_t ∗ acPooling_wave::process (
mha_wave_t ∗ signal )
Checks for the most recent configuration and defers processing to it.
5.14.2.2

void acPooling_wave::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.

© 2005-2019 HörTech gGmbH, Oldenburg

162

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< acPooling_wave_config > (p. 730).
5.14.2.3

void acPooling_wave::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< acPooling_wave_config > (p. 731).
5.14.2.4
5.14.3

void acPooling_wave::update_cfg ( ) [private]
Member Data Documentation

5.14.3.1 MHAParser::int_t acPooling_wave::numsamples
5.14.3.2 MHAParser::int_t acPooling_wave::pooling_wndlen
5.14.3.3 MHAParser::kw_t acPooling_wave::pooling_type
5.14.3.4 MHAParser::float_t acPooling_wave::upper_threshold
5.14.3.5 MHAParser::float_t acPooling_wave::lower_threshold
5.14.3.6 MHAParser::int_t acPooling_wave::neighbourhood
5.14.3.7 MHAParser::float_t acPooling_wave::alpha
5.14.3.8 MHAParser::string_t acPooling_wave::p_name
5.14.3.9 MHAParser::string_t acPooling_wave::p_biased_name
5.14.3.10 MHAParser::string_t acPooling_wave::pool_name
5.14.3.11 MHAParser::string_t acPooling_wave::max_pool_ind_name
5.14.3.12 MHAParser::string_t acPooling_wave::like_ratio_name
5.14.3.13 MHAParser::vfloat_t acPooling_wave::prob_bias
5.14.3.14 MHAEvents::patchbay_t acPooling_wave::patchbay
[private]
The documentation for this class was generated from the following files:
• acPooling_wave.h
• acPooling_wave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.15

acPooling_wave_config Class Reference

5.15

acPooling_wave_config Class Reference

163

Public Member Functions
• acPooling_wave_config (algo_comm_t &ac, const mhaconfig_t in_cfg, acPooling←_wave ∗_pooling)
• ∼acPooling_wave_config ()
• mha_wave_t ∗ process (mha_wave_t ∗)
• void insert ()

Public Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

algo_comm_t & ac
std::string raw_p_name
MHA_AC::waveform_t p
MHA_AC::waveform_t p_biased
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
MHASignal::waveform_t prob_bias_func

5.15.1

Constructor & Destructor Documentation

5.15.1.1

acPooling_wave_config::acPooling_wave_config (
algo_comm_t & ac,
const mhaconfig_t in_cfg,
acPooling_wave ∗ _pooling )

5.15.1.2

acPooling_wave_config::∼acPooling_wave_config ( )

5.15.2

Member Function Documentation

5.15.2.1 mha_wave_t ∗ acPooling_wave_config::process (
mha_wave_t ∗ wave )
5.15.2.2

void acPooling_wave_config::insert ( )

© 2005-2019 HörTech gGmbH, Oldenburg

164

5.15.3

CONTENTS

Member Data Documentation

5.15.3.1 algo_comm_t& acPooling_wave_config::ac
5.15.3.2

std::string acPooling_wave_config::raw_p_name

5.15.3.3 MHA_AC::waveform_t acPooling_wave_config::p
5.15.3.4 MHA_AC::waveform_t acPooling_wave_config::p_biased
5.15.3.5 MHA_AC::waveform_t acPooling_wave_config::p_max
5.15.3.6 MHA_AC::waveform_t acPooling_wave_config::like_ratio
5.15.3.7 mha_wave_t acPooling_wave_config::c
5.15.3.8

unsigned int acPooling_wave_config::pooling_ind

5.15.3.9

unsigned int acPooling_wave_config::pooling_option

5.15.3.10

unsigned int acPooling_wave_config::pooling_size

5.15.3.11

float acPooling_wave_config::up_thresh

5.15.3.12

float acPooling_wave_config::low_thresh

5.15.3.13

int acPooling_wave_config::neigh

5.15.3.14

float acPooling_wave_config::alpha

5.15.3.15 MHASignal::waveform_t acPooling_wave_config::pool
5.15.3.16 MHASignal::waveform_t acPooling_wave_config::prob_bias_func
The documentation for this class was generated from the following files:

• acPooling_wave.h
• acPooling_wave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.16

acsave::acsave_t Class Reference

5.16

acsave::acsave_t Class Reference

165

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

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 ()
© 2005-2019 HörTech gGmbH, Oldenburg

166

CONTENTS

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.16.1

5.16.1.1

5.16.2

5.16.2.1

5.16.3

5.16.3.1

Member Typedef Documentation

typedef std::vector acsave::acsave_t::varlist_t [private]

Constructor & Destructor Documentation

acsave::acsave_t::acsave_t (
const algo_comm_t & iac,
const std::string & ith,
const std::string & ial )

Member Function Documentation

void acsave::acsave_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 730).

5.16.3.2

void acsave::acsave_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< cfg_t > (p. 731).
© 2005-2019 HörTech gGmbH, Oldenburg

5.16

acsave::acsave_t Class Reference

167

5.16.3.3 mha_spec_t ∗ acsave::acsave_t::process (
mha_spec_t ∗ s )
5.16.3.4 mha_wave_t ∗ acsave::acsave_t::process (
mha_wave_t ∗ s )
5.16.3.5

void acsave::acsave_t::event_start_recording ( )

5.16.3.6

void acsave::acsave_t::event_stop_and_flush ( )

5.16.3.7

void acsave::acsave_t::process (
void ) [private]

5.16.4

Member Data Documentation

5.16.4.1 MHAParser::bool_t acsave::acsave_t::bflush [private]
5.16.4.2 MHAParser::kw_t acsave::acsave_t::fileformat [private]
5.16.4.3 MHAParser::string_t acsave::acsave_t::fname [private]
5.16.4.4 MHAParser::float_t acsave::acsave_t::reclen [private]
5.16.4.5 MHAParser::vstring_t acsave::acsave_t::variables [private]
5.16.4.6 varlist_t acsave::acsave_t::varlist [private]
5.16.4.7

std::string acsave::acsave_t::chain [private]

5.16.4.8

std::string acsave::acsave_t::algo [private]

5.16.4.9

bool acsave::acsave_t::b_prepared [private]

5.16.4.10

bool acsave::acsave_t::b_flushed [private]

5.16.4.11 MHAEvents::patchbay_t acsave::acsave_t::patchbay [private]
The documentation for this class was generated from the following file:
• acsave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

168

5.17

CONTENTS

acsave::cfg_t Class Reference

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.17.1
5.17.1.1

Constructor & Destructor Documentation
cfg_t::cfg_t (
const algo_comm_t & iac,
unsigned int imax_frames,
std::vector< std::string > & var_names )

5.17.1.2
5.17.2
5.17.2.1

cfg_t::∼cfg_t ( )
Member Function Documentation
void cfg_t::store_frame ( )

This function is called in the processing thread.
5.17.2.2

void cfg_t::flush_data (
const std::string & filename,
unsigned int fmt )

This function is called in the configuration thread.
Parameters
filename

Output file name

fmt

Output file format

© 2005-2019 HörTech gGmbH, Oldenburg

5.18

acsave::mat4head_t Struct Reference

5.17.3

169

Member Data Documentation

5.17.3.1 algo_comm_t acsave::cfg_t::ac [private]
5.17.3.2

unsigned int acsave::cfg_t::nvars [private]

5.17.3.3 save_var_t∗∗ acsave::cfg_t::varlist [private]
5.17.3.4

unsigned int acsave::cfg_t::rec_frames [private]

5.17.3.5

unsigned int acsave::cfg_t::max_frames [private]

The documentation for this class was generated from the following file:
• acsave.cpp

5.18

acsave::mat4head_t Struct Reference

Public Attributes
•
•
•
•
•

int32_t t
int32_t rows
int32_t cols
int32_t imag
int32_t namelen

5.18.1

Member Data Documentation

5.18.1.1

int32_t acsave::mat4head_t::t

5.18.1.2

int32_t acsave::mat4head_t::rows

5.18.1.3

int32_t acsave::mat4head_t::cols

5.18.1.4

int32_t acsave::mat4head_t::imag

5.18.1.5

int32_t acsave::mat4head_t::namelen

The documentation for this struct was generated from the following file:
• acsave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

170

5.19

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.19.1

Constructor & Destructor Documentation

5.19.1.1

acsave::save_var_t::save_var_t (
const std::string & nm,
int n,
const algo_comm_t & iac )

5.19.1.2

acsave::save_var_t::∼save_var_t ( )

5.19.2

Member Function Documentation

5.19.2.1

void acsave::save_var_t::store_frame ( )

5.19.2.2

void acsave::save_var_t::save_txt (
FILE ∗ fh,
unsigned int writeframes )

© 2005-2019 HörTech gGmbH, Oldenburg

5.19

acsave::save_var_t Class Reference

5.19.2.3

void acsave::save_var_t::save_mat4 (
FILE ∗ fh,
unsigned int writeframes )

5.19.2.4

void acsave::save_var_t::save_m (
FILE ∗ fh,
unsigned int writeframes )

5.19.3

Member Data Documentation

5.19.3.1

double∗ acsave::save_var_t::data

5.19.3.2

std::string acsave::save_var_t::name [private]

5.19.3.3

unsigned int acsave::save_var_t::nframes [private]

5.19.3.4

unsigned int acsave::save_var_t::ndim [private]

5.19.3.5

unsigned int acsave::save_var_t::maxframe [private]

5.19.3.6 algo_comm_t acsave::save_var_t::ac [private]

5.19.3.7

unsigned int acsave::save_var_t::framecnt [private]

5.19.3.8

bool acsave::save_var_t::b_complex [private]

The documentation for this class was generated from the following file:

• acsave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

171

172

5.20

CONTENTS

acSteer Class Reference

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-2019 HörTech gGmbH, Oldenburg

5.20

acSteer Class Reference

173

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< acSteer > patchbay

Additional Inherited Members
5.20.1
5.20.1.1

Constructor & Destructor Documentation
acSteer::acSteer (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
5.20.1.2
5.20.2

acSteer::∼acSteer ( )
Member Function Documentation

5.20.2.1 mha_spec_t ∗ acSteer::process (
mha_spec_t ∗ signal )
Thos method is a NOOP.
5.20.2.2

void acSteer::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< acSteer_config > (p. 730).

© 2005-2019 HörTech gGmbH, Oldenburg

174

5.20.2.3

CONTENTS

void acSteer::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< acSteer_config > (p. 731).
5.20.2.4
5.20.3

void acSteer::update_cfg ( ) [private]
Member Data Documentation

5.20.3.1 MHAParser::string_t acSteer::steerFile
5.20.3.2 MHAParser::string_t acSteer::acSteerName1
5.20.3.3 MHAParser::string_t acSteer::acSteerName2
5.20.3.4 MHAParser::int_t acSteer::nsteerchan
5.20.3.5 MHAParser::int_t acSteer::nrefmic
5.20.3.6 MHAEvents::patchbay_t acSteer::patchbay [private]
The documentation for this class was generated from the following files:
• acSteer.h
• acSteer.cpp

5.21

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
•
•
•
•
•
•
•

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.21

acSteer_config Class Reference

5.21.1

Constructor & Destructor Documentation

5.21.1.1

acSteer_config::acSteer_config (
algo_comm_t & ac,
const mhaconfig_t in_cfg,
acSteer ∗ acSteer )

5.21.1.2

acSteer_config::∼acSteer_config ( )

5.21.2

5.21.2.1

5.21.3

175

Member Function Documentation

void acSteer_config::insert ( )

Member Data Documentation

5.21.3.1

unsigned int acSteer_config::nchan

5.21.3.2

unsigned int acSteer_config::nfreq

5.21.3.3

unsigned int acSteer_config::nsteerchan

5.21.3.4

unsigned int acSteer_config::nrefmic

5.21.3.5

unsigned int acSteer_config::nangle

5.21.3.6 MHA_AC::spectrum_t acSteer_config::specSteer1

5.21.3.7 MHA_AC::spectrum_t acSteer_config::specSteer2

The documentation for this class was generated from the following files:

• acSteer.h
• acSteer.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

176

5.22

CONTENTS

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

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.22

acTransform_wave Class Reference

177

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< acTransform_wave > patchbay

Additional Inherited Members
5.22.1
5.22.1.1

Constructor & Destructor Documentation
acTransform_wave::acTransform_wave (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
5.22.1.2
5.22.2

acTransform_wave::∼acTransform_wave ( )
Member Function Documentation

5.22.2.1 mha_wave_t ∗ acTransform_wave::process (
mha_wave_t ∗ signal )
Checks for the most recent configuration and defers processing to it.
5.22.2.2

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. 730).

© 2005-2019 HörTech gGmbH, Oldenburg

178

5.22.2.3

CONTENTS

void acTransform_wave::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< acTransform_wave_config > (p. 731).
5.22.2.4
5.22.3

void acTransform_wave::update_cfg ( ) [private]
Member Data Documentation

5.22.3.1 MHAParser::string_t acTransform_wave::ang_name
5.22.3.2 MHAParser::string_t acTransform_wave::raw_p_name
5.22.3.3 MHAParser::string_t acTransform_wave::raw_p_max_name
5.22.3.4 MHAParser::string_t acTransform_wave::rotated_p_name
5.22.3.5 MHAParser::string_t acTransform_wave::rotated_p_max_name
5.22.3.6 MHAParser::int_t acTransform_wave::numsamples
5.22.3.7 MHAParser::bool_t acTransform_wave::to_from
5.22.3.8 MHAEvents::patchbay_t acTransform_wave::patchbay
[private]
The documentation for this class was generated from the following files:
• acTransform_wave.h
• acTransform_wave.cpp

5.23

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 ∗)
© 2005-2019 HörTech gGmbH, Oldenburg

5.23

acTransform_wave_config Class Reference

179

Public Attributes
•
•
•
•
•
•
•
•
•

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

5.23.1

Constructor & Destructor Documentation

5.23.1.1

acTransform_wave_config::acTransform_wave_config (
algo_comm_t & ac,
const mhaconfig_t in_cfg,
acTransform_wave ∗ _transform )

5.23.1.2

acTransform_wave_config::∼acTransform_wave_config ( )

5.23.2

Member Function Documentation

5.23.2.1 mha_wave_t ∗ acTransform_wave_config::process (
mha_wave_t ∗ wave )
5.23.3

Member Data Documentation

5.23.3.1 algo_comm_t& acTransform_wave_config::ac
5.23.3.2

std::string acTransform_wave_config::ang_name

5.23.3.3

std::string acTransform_wave_config::raw_p_name

5.23.3.4

std::string acTransform_wave_config::raw_p_max_name

5.23.3.5 MHA_AC::waveform_t acTransform_wave_config::rotated_p
5.23.3.6 MHA_AC::int_t acTransform_wave_config::rotated_i
5.23.3.7

unsigned int acTransform_wave_config::offset

5.23.3.8

unsigned int acTransform_wave_config::resolution

5.23.3.9

unsigned int acTransform_wave_config::to_from

The documentation for this class was generated from the following files:
• acTransform_wave.h
• acTransform_wave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

180

5.24

CONTENTS

addsndfile::addsndfile_if_t Class Reference

Inheritance diagram for addsndfile::addsndfile_if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< runtime_cfg_t >

wave_reader

level_adaptor

addsndfile::addsndfile_if_t

Public Member Functions
•
•
•
•

addsndfile_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 update ()
void change_mode ()
void set_level ()
void scan_dir ()

Private Attributes
•
•
•
•

MHAParser::string_t filename
MHAParser::string_t path
MHAParser::bool_t loop
MHAParser::float_t level
© 2005-2019 HörTech gGmbH, Oldenburg

5.24

addsndfile::addsndfile_if_t Class Reference

181

• MHAParser::kw_t levelmode
• MHAParser::kw_t resamplingmode
• MHAParser::vint_t channels
• MHAParser::kw_t mode
• MHAParser::float_t ramplen
• MHAParser::int_t startpos
• MHAParser::vint_mon_t mapping
• MHAParser::int_mon_t numchannels
• MHAParser::int_mon_t mhachannels
• MHAParser::int_mon_t active
• MHAParser::string_t search_pattern
• MHAParser::vstring_mon_t search_result
• unsigned int uint_mode
• MHAEvents::patchbay_t< addsndfile_if_t > patchbay

Additional Inherited Members

5.24.1

5.24.1.1

5.24.2

Constructor & Destructor Documentation

addsndfile::addsndfile_if_t::addsndfile_if_t (
algo_comm_t iac,
const char ∗ ,
const char ∗ )

Member Function Documentation

5.24.2.1 mha_wave_t ∗ addsndfile::addsndfile_if_t::process (
mha_wave_t ∗ s )

5.24.2.2

void addsndfile::addsndfile_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< runtime_cfg_t > (p. 730).

5.24.2.3

void addsndfile::addsndfile_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< runtime_cfg_t > (p. 731).
© 2005-2019 HörTech gGmbH, Oldenburg

182

CONTENTS

5.24.2.4

void addsndfile::addsndfile_if_t::update ( ) [private]

5.24.2.5

void addsndfile::addsndfile_if_t::change_mode ( ) [private]

5.24.2.6

void addsndfile::addsndfile_if_t::set_level ( ) [private]

5.24.2.7

void addsndfile::addsndfile_if_t::scan_dir ( ) [private]

5.24.3

Member Data Documentation

5.24.3.1 MHAParser::string_t addsndfile::addsndfile_if_t::filename [private]
5.24.3.2 MHAParser::string_t addsndfile::addsndfile_if_t::path [private]
5.24.3.3 MHAParser::bool_t addsndfile::addsndfile_if_t::loop [private]
5.24.3.4 MHAParser::float_t addsndfile::addsndfile_if_t::level [private]
5.24.3.5 MHAParser::kw_t addsndfile::addsndfile_if_t::levelmode [private]
5.24.3.6 MHAParser::kw_t addsndfile::addsndfile_if_t::resamplingmode [private]
5.24.3.7 MHAParser::vint_t addsndfile::addsndfile_if_t::channels [private]
5.24.3.8 MHAParser::kw_t addsndfile::addsndfile_if_t::mode [private]
5.24.3.9 MHAParser::float_t addsndfile::addsndfile_if_t::ramplen [private]
5.24.3.10 MHAParser::int_t addsndfile::addsndfile_if_t::startpos [private]
5.24.3.11 MHAParser::vint_mon_t addsndfile::addsndfile_if_t::mapping [private]
5.24.3.12 MHAParser::int_mon_t addsndfile::addsndfile_if_t::numchannels [private]
5.24.3.13 MHAParser::int_mon_t addsndfile::addsndfile_if_t::mhachannels [private]
5.24.3.14 MHAParser::int_mon_t addsndfile::addsndfile_if_t::active [private]
5.24.3.15 MHAParser::string_t addsndfile::addsndfile_if_t::search_pattern [private]
5.24.3.16 MHAParser::vstring_mon_t addsndfile::addsndfile_if_t::search_result [private]
5.24.3.17

unsigned int addsndfile::addsndfile_if_t::uint_mode [private]

5.24.3.18 MHAEvents::patchbay_t addsndfile::addsndfile_if_t::patchbay
[private]
The documentation for this class was generated from the following file:
• addsndfile.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.25

addsndfile::level_adapt_t Class Reference

5.25

addsndfile::level_adapt_t Class Reference

183

Inheritance diagram for addsndfile::level_adapt_t:

mha_wave_t

MHASignal::waveform_t

addsndfile::level_adapt_t

Public Member Functions
• level_adapt_t (mhaconfig_t cf, mha_real_t adapt_len, mha_real_t l_new_, mha_real←_t l_old_)
• void update_frame ()
• mha_real_t get_level () const
• bool can_update () const

Private Attributes
•
•
•
•
•

unsigned int ilen
unsigned int pos
MHAWindow::fun_t wnd
mha_real_t l_new
mha_real_t l_old

Additional Inherited Members
5.25.1
5.25.1.1

Constructor & Destructor Documentation
addsndfile::level_adapt_t::level_adapt_t (
mhaconfig_t cf,
mha_real_t adapt_len,
mha_real_t l_new_,
mha_real_t l_old_ )

© 2005-2019 HörTech gGmbH, Oldenburg

184

5.25.2

CONTENTS

Member Function Documentation

5.25.2.1

void addsndfile::level_adapt_t::update_frame ( )

5.25.2.2 mha_real_t addsndfile::level_adapt_t::get_level ( ) const [inline]
5.25.2.3
5.25.3

bool addsndfile::level_adapt_t::can_update ( ) const [inline]
Member Data Documentation

5.25.3.1

unsigned int addsndfile::level_adapt_t::ilen [private]

5.25.3.2

unsigned int addsndfile::level_adapt_t::pos [private]

5.25.3.3 MHAWindow::fun_t addsndfile::level_adapt_t::wnd [private]
5.25.3.4 mha_real_t addsndfile::level_adapt_t::l_new [private]
5.25.3.5 mha_real_t addsndfile::level_adapt_t::l_old [private]
The documentation for this class was generated from the following file:
• addsndfile.cpp

5.26

addsndfile::resampled_soundfile_t Class Reference

Reads sound from file and resamples it if necessary and wanted.
Inheritance diagram for addsndfile::resampled_soundfile_t:

mha_wave_t

MHASndFile::sf_t

MHASndFile::sf_wave_t

MHASignal::waveform_t

addsndfile::waveform
_proxy_t

addsndfile::resampled
_soundfile_t

© 2005-2019 HörTech gGmbH, Oldenburg

5.26

addsndfile::resampled_soundfile_t Class Reference

185

Public Member Functions
• resampled_soundfile_t (const std::string &name, float mha_sampling_rate, addsndfile←_resampling_mode_t resampling_mode)
Reads sound from file and resamples if necessary and wanted.

Additional Inherited Members
5.26.1

Detailed Description

Reads sound from file and resamples it if necessary and wanted.
Sound data can then be used by addsndfile.

5.26.2
5.26.2.1

Constructor & Destructor Documentation
addsndfile::resampled_soundfile_t::resampled_soundfile_t (
const std::string & name,
float mha_sampling_rate,
addsndfile_resampling_mode_t resampling_mode )

Reads sound from file and resamples if necessary and wanted.
If the sound file does not specify a sampling rate, then the sound data is always used without
resampling.
Parameters
name
mha_sampling_rate

Sound file name
The sampling rate of the MHA signal processing at the point of the
addsndfile plugin

resampling_mode

DONT_RESAMPLE_STRICT: Do not resample, just use the samples
from the sound file at the current sample rate, even if the sample rate
of the sound file differs. DONT_RESAMPLE_PERMISSIVE: Do not
resample, if the sample rate of the MHA differs from the sample rate
of the sound file, raise an error. DO_RESAMPLE: Resample.

Exceptions
MHA_Error ( p. 445)

If the sampling rate of the file does not match the sampling rate of
the MHA and DONT_RESAMPLE_STRICT was requested. If
resampling failed (e.g. due to non-rational quotient of MHA sampling
rate and sound file sampling rate).

© 2005-2019 HörTech gGmbH, Oldenburg

186

CONTENTS

The documentation for this class was generated from the following file:

• addsndfile.cpp

5.27

addsndfile::sndfile_t Class Reference

Inheritance diagram for addsndfile::sndfile_t:

mha_wave_t

MHASignal::waveform_t

MHASignal::loop_wavefragment_t

addsndfile::sndfile_t

Public Member Functions
• sndfile_t (const std::string &name, bool loop, unsigned int level_mode, std::vector<
int > channels_, unsigned int nchannels, std::vector< int > &mapping, int &numchannels, unsigned int startpos, float mha_sampling_rate, addsndfile_resampling_mode_t
resampling_mode)

Additional Inherited Members

5.27.1

Constructor & Destructor Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

5.28

addsndfile::waveform_proxy_t Class Reference

5.27.1.1

187

addsndfile::sndfile_t::sndfile_t (
const std::string & name,
bool loop,
unsigned int level_mode,
std::vector< int > channels_,
unsigned int nchannels,
std::vector< int > & mapping,
int & numchannels,
unsigned int startpos,
float mha_sampling_rate,
addsndfile_resampling_mode_t resampling_mode )

The documentation for this class was generated from the following file:
• addsndfile.cpp

5.28

addsndfile::waveform_proxy_t Class Reference

Class helps to specify which instance of MHASignal_waveform_t parent instance is meant in
resampled_soundfile_t (p. 184).
Inheritance diagram for addsndfile::waveform_proxy_t:

mha_wave_t

MHASignal::waveform_t

addsndfile::waveform
_proxy_t

addsndfile::resampled
_soundfile_t

Public Member Functions
• waveform_proxy_t (unsigned frames, unsigned channels)
© 2005-2019 HörTech gGmbH, Oldenburg

188

CONTENTS

Additional Inherited Members
5.28.1

Detailed Description

Class helps to specify which instance of MHASignal_waveform_t parent instance is meant in
resampled_soundfile_t (p. 184).

5.28.2

Constructor & Destructor Documentation

5.28.2.1

addsndfile::waveform_proxy_t::waveform_proxy_t (
unsigned frames,
unsigned channels ) [inline]

The documentation for this class was generated from the following file:
• addsndfile.cpp

5.29

ADM::ADM< F > Class Template Reference

Adaptive differential microphone, working for speech frequency range.

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. 188) 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
© 2005-2019 HörTech gGmbH, Oldenburg

5.29

ADM::ADM< F > Class Template Reference

5.29.1

189

Detailed Description

template
class ADM::ADM< F >
Adaptive differential microphone, working for speech frequency range.

5.29.2
5.29.2.1

Constructor & Destructor Documentation
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.
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.29.3

Member Function Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

190

5.29.3.1

CONTENTS

template F ADM::ADM< F >::process (
const F & front,
const F & back,
const F & external_beta = F(-1) ) [inline]

ADM (p. 188) 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

5.29.3.2
5.29.4

template F ADM::ADM< F >::beta ( ) const [inline]
Member Data Documentation

5.29.4.1

template Delay ADM::ADM< F >::m_delay_front [private]

5.29.4.2

template Delay ADM::ADM< F >::m_delay_back [private]

5.29.4.3

template Linearphase_FIR ADM::ADM< F >::m_lp_bf [private]

5.29.4.4

template Linearphase_FIR ADM::ADM< F >::m_lp_result [private]

5.29.4.5

template Linearphase_FIR ADM::ADM< F >::m_decomb [private]

5.29.4.6

template F ADM::ADM< F >::m_beta [private]

5.29.4.7

template F ADM::ADM< F >::m_mu_beta [private]

5.29.4.8

template F ADM::ADM< F >::m_powerfilter_coeff [private]

5.29.4.9

template F ADM::ADM< F >::m_powerfilter_norm [private]

5.29.4.10

template F ADM::ADM< F >::m_powerfilter_state [private]

The documentation for this class was generated from the following file:
• adm.hh
© 2005-2019 HörTech gGmbH, Oldenburg

5.30

ADM::Delay< F > Class Template Reference

5.30

ADM::Delay< F > Class Template Reference

191

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

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.30.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.30.2
5.30.2.1

Constructor & Destructor Documentation
template ADM::Delay< F >::Delay (
F samples,
F f_design,
F fs )

Create a signal delay object.

© 2005-2019 HörTech gGmbH, Oldenburg

192

CONTENTS

Parameters
samples

number of samples to delay (may be non-integer)

f_design

subsampledelay is exact for this frequency

fs

sampling frequency

5.30.2.2
5.30.3

template ADM::Delay< F >::∼Delay ( )
Member Function Documentation

5.30.3.1

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.30.4

5.30.4.1

Member Data Documentation

template unsigned ADM::Delay< F >::m_fullsamples [private]

Integer part of delay.
5.30.4.2

template F ADM::Delay< F >::m_coeff [private]

coefficient for 1st order IIR lowpass filter which does the subsample delay
5.30.4.3

template F ADM::Delay< F >::m_norm [private]

normalization for the IIR subsample delay filter
5.30.4.4

template F∗ ADM::Delay< F >::m_state [private]

Ringbuffer: Delayline.
© 2005-2019 HörTech gGmbH, Oldenburg

5.31

ADM::Linearphase_FIR< F > Class Template Reference

5.30.4.5

193

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.31

ADM::Linearphase_FIR< F > Class Template Reference

An efficient linear-phase fir filter implementation.

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.31.1

Detailed Description

template
class ADM::Linearphase_FIR< F >
An efficient linear-phase fir filter implementation.

5.31.2
5.31.2.1

Constructor & Destructor Documentation
template ADM::Linearphase_FIR< F >::Linearphase_FIR (
unsigned order,
const F ∗ alphas )

Create linear-phase FIR filter.

© 2005-2019 HörTech gGmbH, Oldenburg

194

CONTENTS

Parameters
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.)

order
alphas

5.31.2.2
5.31.3

template ADM::Linearphase_FIR< F >::∼Linearphase_FIR ( )
Member Function Documentation

5.31.3.1

template F ADM::Linearphase_FIR< F >::process (
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.31.4

5.31.4.1

Member Data Documentation

template unsigned ADM::Linearphase_FIR< F >::m_order [private]

The filter order of this linear-phase FIR filter.
5.31.4.2

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
5.31.4.3

template F∗ ADM::Linearphase_FIR< F >::m_output [private]

Ringbuffer for building future output.
© 2005-2019 HörTech gGmbH, Oldenburg

5.32

adm_if_t Class Reference

5.31.4.4

195

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.32

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

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 ()
© 2005-2019 HörTech gGmbH, Oldenburg

196

CONTENTS

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.32.1

5.32.1.1

5.32.2

Constructor & Destructor Documentation

adm_if_t::adm_if_t (
const algo_comm_t & ac,
const std::string & thread_name,
const std::string & algo_name )
Member Function Documentation

5.32.2.1 mha_wave_t ∗ adm_if_t::process (
mha_wave_t ∗ in )
5.32.2.2

void adm_if_t::prepare (
mhaconfig_t & cfg ) [virtual]

Implements MHAPlugin::plugin_t< adm_rtconfig_t > (p. 730).
5.32.2.3

void adm_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< adm_rtconfig_t > (p. 731).
© 2005-2019 HörTech gGmbH, Oldenburg

5.33

adm_rtconfig_t Class Reference

5.32.2.4

void adm_if_t::update ( ) [private]

5.32.2.5

bool adm_if_t::is_prepared ( ) [inline], [private]

5.32.3

197

Member Data Documentation

5.32.3.1 MHASignal::waveform_t∗ adm_if_t::out [private]
5.32.3.2 MHAParser::vint_t adm_if_t::front_channels [private]
5.32.3.3 MHAParser::vint_t adm_if_t::rear_channels [private]
5.32.3.4 MHAParser::vfloat_t adm_if_t::distances [private]
5.32.3.5 MHAParser::int_t adm_if_t::lp_order [private]
5.32.3.6 MHAParser::int_t adm_if_t::decomb_order [private]
5.32.3.7 MHAParser::int_t adm_if_t::bypass [private]
5.32.3.8 MHAParser::float_t adm_if_t::beta [private]
5.32.3.9 MHAParser::vfloat_t adm_if_t::mu_beta [private]
5.32.3.10 MHAParser::vfloat_t adm_if_t::tau_beta [private]
5.32.3.11 MHAParser::vfloat_mon_t adm_if_t::coeff_lp [private]
5.32.3.12 MHAParser::vfloat_mon_t adm_if_t::coeff_decomb [private]
5.32.3.13

unsigned adm_if_t::input_channels [private]

5.32.3.14 mha_real_t adm_if_t::srate [private]
5.32.3.15 MHAEvents::patchbay_t adm_if_t::patchbay [private]
The documentation for this class was generated from the following file:
• adm.cpp

5.33

adm_rtconfig_t Class Reference

Public Types
• typedef ADM::ADM< mha_real_t > adm_t
© 2005-2019 HörTech gGmbH, Oldenburg

198

CONTENTS

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.33.1

5.33.1.1
5.33.2

Member Typedef Documentation

typedef ADM::ADM adm_rtconfig_t::adm_t
Constructor & Destructor Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

5.33

adm_rtconfig_t Class Reference

5.33.2.1

199

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.33.2.2
5.33.3
5.33.3.1

adm_rtconfig_t::∼adm_rtconfig_t ( ) [virtual]
Member Function Documentation
void adm_rtconfig_t::check_index (
unsigned index ) const [inline], [private]

Index checking for all internal arrays.
Exceptions
MHA_Error ( p. 445)

if index out of range.

© 2005-2019 HörTech gGmbH, Oldenburg

200

5.33.3.2

CONTENTS

size_t adm_rtconfig_t::num_adms ( ) const [inline]

5.33.3.3 adm_t& adm_rtconfig_t::adm (
unsigned index ) [inline]
Returns adm object number index.
5.33.3.4

int adm_rtconfig_t::front_channel (
unsigned index ) const [inline]

Returns index of front channel for adm number index.
5.33.3.5

int adm_rtconfig_t::rear_channel (
unsigned index ) const [inline]

Returns index of rear channel for adm number index.

5.33.4
5.33.4.1

Member Data Documentation
std::vector adm_rtconfig_t::front_channels [private]

Indices of channels containing the signals from the front microphones.
5.33.4.2

std::vector adm_rtconfig_t::rear_channels [private]

Indices of channels containing the signals from the rear microphones.
5.33.4.3 MHASignal::waveform_t∗ adm_rtconfig_t::lp_coeffs [private]
Lowpass filter coefficients.
5.33.4.4

std::vector adm_rtconfig_t::decomb_coeffs [private]

Decomb-Filter coefficients.
5.33.4.5

std::vector adm_rtconfig_t::adms [private]

ADMs.
The documentation for this class was generated from the following file:
• adm.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.34

algo_comm_t Struct Reference

5.34

algo_comm_t Struct Reference

201

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.34.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.34.2
5.34.2.1

Member Data Documentation
algo_comm_t::handle

AC variable control handle.
5.34.2.2

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.

© 2005-2019 HörTech gGmbH, Oldenburg

202

CONTENTS

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. 246)

Returns
Error code or zero on success

5.34.2.3

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

Returns
Error code or zero on success

5.34.2.4

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.34

algo_comm_t Struct Reference

5.34.2.5

203

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

5.34.2.6

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.34.2.7

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

© 2005-2019 HörTech gGmbH, Oldenburg

204

CONTENTS

Returns
1 if the variable exists, 0 otherwise

5.34.2.8

algo_comm_t::get_var

Get the variable handle of an AC variable.
This function returns the variable handle comm_var_t (p. 246) of a variable of the given name.
If no variable of that name exists, an error code is returned.
Parameters
h
n
v

AC handle
name of variable
pointer to a AC variable object

Returns
Error code or zero on success

5.34.2.9

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.34.2.10

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-2019 HörTech gGmbH, Oldenburg

5.34

algo_comm_t Struct Reference

205

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.34.2.11

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.34.2.12

algo_comm_t::get_error

Convert AC error codes into human readable error messages.
Parameters
e

Error code

© 2005-2019 HörTech gGmbH, Oldenburg

206

CONTENTS

Returns
Error message
The documentation for this struct was generated from the following files:
• mha.hh
• mha_algo_comm.cpp

5.35

alsa_base_t Class Reference

Inheritance diagram for alsa_base_t:

alsa_base_t

alsa_t< T >

Public Member Functions
• alsa_base_t ()
• virtual ∼alsa_base_t ()=default
• virtual void start ()=0
start puts alsa device in usable state

• virtual void stop ()=0
stop informs alsa device that we do not need any more samples / will not provide any more
samples

• virtual int read (mha_wave_t ∗∗)=0
read audio samples from the device into an internal mha_wave_t ( p. 496) buffer, then update
the pointer given as parameter to point to the internal structure.

• virtual int write (mha_wave_t ∗)=0
write audio samples from the given waveform buffer to the sound device.

Public Attributes
• snd_pcm_t ∗ pcm
The underlying alsa handle to this sound card.
© 2005-2019 HörTech gGmbH, Oldenburg

5.35

alsa_base_t Class Reference

5.35.1

Constructor & Destructor Documentation

5.35.1.1

alsa_base_t::alsa_base_t ( ) [inline]

5.35.1.2

virtual alsa_base_t::∼alsa_base_t ( ) [virtual], [default]

5.35.2

5.35.2.1

207

Member Function Documentation

virtual void alsa_base_t::start ( ) [pure virtual]

start puts alsa device in usable state
Implemented in alsa_t< T > (p. 211).
5.35.2.2

virtual void alsa_base_t::stop ( ) [pure virtual]

stop informs alsa device that we do not need any more samples / will not provide any more
samples
Implemented in alsa_t< T > (p. 212).
5.35.2.3

virtual int alsa_base_t::read (
mha_wave_t ∗∗ ) [pure virtual]

read audio samples from the device into an internal mha_wave_t (p. 496) buffer, then update
the pointer given as parameter to point to the internal structure.
Converts sound samples from the integer data type provided by the sound card to floating-point
values needed by the MHA in the range [-1.0,1.0]
Implemented in alsa_t< T > (p. 212).
5.35.2.4

virtual int alsa_base_t::write (
mha_wave_t ∗ ) [pure virtual]

write audio samples from the given waveform buffer to the sound device.
converts the floating point values coming from the MHA to the integer samples required by the
sound card.
Implemented in alsa_t< T > (p. 212).
© 2005-2019 HörTech gGmbH, Oldenburg

208

5.35.3

CONTENTS

Member Data Documentation

5.35.3.1

snd_pcm_t∗ alsa_base_t::pcm

The underlying alsa handle to this sound card.
The documentation for this class was generated from the following file:
• MHAIOalsa.cpp

5.36

alsa_dev_par_parser_t Class Reference

Parser variables corresponding to one alsa device.
Inheritance diagram for alsa_dev_par_parser_t:

MHAParser::base_t

MHAParser::parser_t

alsa_dev_par_parser_t

Public Member Functions
• alsa_dev_par_parser_t (snd_pcm_stream_t stream_dir)
Constructor inserts the parser variables into this sub-parser.

Public Attributes
• MHAParser::string_t device
Name of the device in the alsa world, like "hw:0.0", "default", etc.

• MHAParser::int_t nperiods
Number of buffers of fragsize to hold in the alsa buffer.

• snd_pcm_stream_t stream_dir
Remember the direction (capture/playback) of this device.
© 2005-2019 HörTech gGmbH, Oldenburg

5.36

alsa_dev_par_parser_t Class Reference

209

Additional Inherited Members
5.36.1

Detailed Description

Parser variables corresponding to one alsa device.
ALSA separates audio capture and audio playback into two different devices that have to be
opened separately. This class encapsulates the parser variables that pertain to one such direction.

5.36.2
5.36.2.1

Constructor & Destructor Documentation
alsa_dev_par_parser_t::alsa_dev_par_parser_t (
snd_pcm_stream_t stream_dir )

Constructor inserts the parser variables into this sub-parser.
Parameters
stream_dir

5.36.3

capture or playback

Member Data Documentation

5.36.3.1 MHAParser::string_t alsa_dev_par_parser_t::device
Name of the device in the alsa world, like "hw:0.0", "default", etc.
5.36.3.2 MHAParser::int_t alsa_dev_par_parser_t::nperiods
Number of buffers of fragsize to hold in the alsa buffer.
Usually 2, the minimum possible.
5.36.3.3

snd_pcm_stream_t alsa_dev_par_parser_t::stream_dir

Remember the direction (capture/playback) of this device.
The documentation for this class was generated from the following file:
• MHAIOalsa.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

210

5.37

CONTENTS

alsa_t< T > Class Template Reference

Our representation of one alsa device.
Inheritance diagram for alsa_t< T >:

alsa_base_t

alsa_t< T >

Public Member Functions
• alsa_t (const alsa_dev_par_parser_t &par, unsigned int rate, unsigned int fragsize, unsigned int channels)
Constructor receives the parameters for this device.

• ∼alsa_t ()
Destructor closes the sound device.

• void start () override
start puts alsa device in usable state

• void stop () override
stop informs alsa device that we do not need any more samples / will not provide any more
samples

• int read (mha_wave_t ∗∗) override
read audio samples from the device into an internal mha_wave_t ( p. 496) buffer, then update
the pointer given as parameter to point to the internal structure.

• int write (mha_wave_t ∗) override
write audio samples from the given waveform buffer to the sound device.

Private Attributes
•
•
•
•
•

unsigned int channels
unsigned int fragsize
T ∗ buffer
std::vector< mha_real_t > frame_data
MHASignal::waveform_t wave
internal buffer to store sound samples coming from the sound card.

•
•
•
•
•

const mha_real_t gain
const mha_real_t invgain
const mha_real_t val_min
const mha_real_t val_max
snd_pcm_format_t pcm_format
© 2005-2019 HörTech gGmbH, Oldenburg

5.37

alsa_t< T > Class Template Reference

211

Additional Inherited Members
5.37.1

Detailed Description

template
class alsa_t< T >
Our representation of one alsa device.
We can start and stop the device, and depending on the direction, read or write samples.

5.37.2
5.37.2.1

Constructor & Destructor Documentation
template alsa_t< T >::alsa_t (
const alsa_dev_par_parser_t & par,
unsigned int rate,
unsigned int fragsize,
unsigned int channels )

Constructor receives the parameters for this device.
It opens the sound device using the alsa library and selects the given parameters, but does not
yet start the sound device to perform real I/O.
Parameters

rate

our parser variable aggregator (containing direction, device name, and number
of periods to place in alsa buffer)
sampling rate in Hz

fragsize

samples per block per channel

channels

number of audio channels to open

par

5.37.2.2

template alsa_t< T >::∼alsa_t ( )

Destructor closes the sound device.

5.37.3
5.37.3.1

Member Function Documentation
template void alsa_t< T >::start ( ) [override], [virtual]

start puts alsa device in usable state
Implements alsa_base_t (p. 207).
© 2005-2019 HörTech gGmbH, Oldenburg

212

5.37.3.2

CONTENTS

template void alsa_t< T >::stop ( ) [override], [virtual]

stop informs alsa device that we do not need any more samples / will not provide any more
samples
Implements alsa_base_t (p. 207).
5.37.3.3

template int alsa_t< T >::read (
mha_wave_t ∗∗ s ) [override], [virtual]

read audio samples from the device into an internal mha_wave_t (p. 496) buffer, then update
the pointer given as parameter to point to the internal structure.
Converts sound samples from the integer data type provided by the sound card to floating-point
values needed by the MHA in the range [-1.0,1.0]
Implements alsa_base_t (p. 207).
5.37.3.4

template int alsa_t< T >::write (
mha_wave_t ∗ s ) [override], [virtual]

write audio samples from the given waveform buffer to the sound device.
converts the floating point values coming from the MHA to the integer samples required by the
sound card.
Implements alsa_base_t (p. 207).

5.37.4

Member Data Documentation

5.37.4.1

template unsigned int alsa_t< T >::channels [private]

5.37.4.2

template unsigned int alsa_t< T >::fragsize [private]

5.37.4.3

template T∗ alsa_t< T >::buffer [private]

5.37.4.4

template std::vector alsa_t< T >::frame_data [private]

5.37.4.5

template MHASignal::waveform_t alsa_t< T >::wave [private]

internal buffer to store sound samples coming from the sound card.
© 2005-2019 HörTech gGmbH, Oldenburg

5.38

altplugs_t Class Reference

213

5.37.4.6

template const mha_real_t alsa_t< T >::gain [private]

5.37.4.7

template const mha_real_t alsa_t< T >::invgain [private]

5.37.4.8

template const mha_real_t alsa_t< T >::val_min [private]

5.37.4.9

template const mha_real_t alsa_t< T >::val_max [private]

5.37.4.10

template snd_pcm_format_t alsa_t< T >::pcm_format [private]

The documentation for this class was generated from the following file:
• MHAIOalsa.cpp

5.38

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-2019 HörTech gGmbH, Oldenburg

214

CONTENTS

Private Member Functions
•
•
•
•
•
•
•

void event_set_plugs ()
void event_add_plug ()
void event_delete_plug ()
void event_select_plug ()
void update_selector_list ()
void update_ramplen ()
void 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.38.1
5.38.1.1

5.38.2
5.38.2.1

Constructor & Destructor Documentation
altplugs_t::altplugs_t (
algo_comm_t iac,
const char ∗ chain,
const char ∗ algo )
Member Function Documentation
void altplugs_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< MHAWindow::fun_t > (p. 730).
© 2005-2019 HörTech gGmbH, Oldenburg

5.38

altplugs_t Class Reference

5.38.2.2

215

void altplugs_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< MHAWindow::fun_t > (p. 731).
5.38.2.3

void altplugs_t::process (
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut )

5.38.2.4

void altplugs_t::process (
mha_spec_t ∗ sIn,
mha_wave_t ∗∗ sOut )

5.38.2.5

void altplugs_t::process (
mha_wave_t ∗ sIn,
mha_spec_t ∗∗ sOut )

5.38.2.6

void altplugs_t::process (
mha_spec_t ∗ sIn,
mha_spec_t ∗∗ sOut )

5.38.2.7

std::string altplugs_t::parse (
const std::string & arg ) [virtual]

Reimplemented from MHAParser::base_t (p. 637).
5.38.2.8

virtual void altplugs_t::parse (
const char ∗ a1,
char ∗ a2,
unsigned int a3 ) [inline], [virtual]

Reimplemented from MHAParser::base_t (p. 638).
5.38.2.9

void altplugs_t::event_set_plugs ( ) [private]

5.38.2.10

void altplugs_t::event_add_plug ( ) [private]

5.38.2.11

void altplugs_t::event_delete_plug ( ) [private]

5.38.2.12

void altplugs_t::event_select_plug ( ) [private]

5.38.2.13

void altplugs_t::update_selector_list ( ) [private]

5.38.2.14

void altplugs_t::update_ramplen ( ) [private]

© 2005-2019 HörTech gGmbH, Oldenburg

216

5.38.2.15

5.38.3

CONTENTS

void altplugs_t::proc_ramp (
mha_wave_t ∗ s ) [private]

Member Data Documentation

5.38.3.1 MHAParser::bool_t altplugs_t::use_own_ac [private]
5.38.3.2 MHAParser::vstring_t altplugs_t::parser_plugs [private]
5.38.3.3 MHAParser::string_t altplugs_t::add_plug [private]
5.38.3.4 MHAParser::string_t altplugs_t::delete_plug [private]
5.38.3.5 MHAParser::float_t altplugs_t::ramplen [private]
5.38.3.6 MHAParser::kw_t altplugs_t::select_plug [private]
5.38.3.7 MHAParser::parser_t altplugs_t::current [private]
5.38.3.8 MHAParser::vstring_mon_t altplugs_t::nondefault_labels [private]
5.38.3.9

std::vector altplugs_t::plugs [private]

5.38.3.10 mhaplug_cfg_t∗ altplugs_t::selected_plug [private]
5.38.3.11 MHAEvents::patchbay_t altplugs_t::patchbay [private]
5.38.3.12 MHASignal::waveform_t∗ altplugs_t::fallback_wave [private]
5.38.3.13 MHASignal::spectrum_t∗ altplugs_t::fallback_spec [private]
5.38.3.14 mhaconfig_t altplugs_t::cfin [private]
5.38.3.15 mhaconfig_t altplugs_t::cfout [private]
5.38.3.16

bool altplugs_t::prepared [private]

5.38.3.17

bool altplugs_t::added_via_plugs [private]

5.38.3.18

unsigned int altplugs_t::ramp_counter [private]

5.38.3.19

unsigned int altplugs_t::ramp_len [private]

The documentation for this class was generated from the following file:
• altplugs.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.39

analysepath_t Class Reference

5.39

analysepath_t Class Reference

217

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, MHA←Proc_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.39.1
5.39.1.1

Constructor & Destructor Documentation
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 )

© 2005-2019 HörTech gGmbH, Oldenburg

218

5.39.1.2
5.39.2

analysepath_t::∼analysepath_t ( ) [virtual]
Member Function Documentation

5.39.2.1

void analysepath_t::rt_process (
mha_wave_t ∗ outer_input )

5.39.2.2

int analysepath_t::svc ( ) [virtual]

5.39.3

CONTENTS

Member Data Documentation

5.39.3.1 MHAProc_wave2wave_t analysepath_t::inner_process_wave2wave [private]
5.39.3.2 MHAProc_wave2spec_t analysepath_t::inner_process_wave2spec [private]
5.39.3.3 MHASignal::waveform_t analysepath_t::inner_input [private]
5.39.3.4

void∗ analysepath_t::libdata [private]

5.39.3.5 mha_fifo_t analysepath_t::wave_fifo [private]
5.39.3.6 mha_fifo_t analysepath_t::ac_fifo [private]
5.39.3.7 MHA_AC::acspace2matrix_t analysepath_t::inner_ac_copy [private]
5.39.3.8 MHA_AC::acspace2matrix_t analysepath_t::outer_ac_copy [private]
5.39.3.9 algo_comm_t analysepath_t::outer_ac [private]
5.39.3.10 mha_domain_t analysepath_t::inner_out_domain [private]
5.39.3.11 MHA_Error analysepath_t::inner_error [private]
5.39.3.12

bool analysepath_t::has_inner_error [private]

5.39.3.13

bool analysepath_t::flag_terminate_inner_thread [private]

5.39.3.14

int analysepath_t::input_to_process [private]

5.39.3.15

pthread_mutex_t analysepath_t::ProcessMutex [private]

5.39.3.16

pthread_attr_t analysepath_t::attr [private]

5.39.3.17

struct sched_param analysepath_t::priority [private]

5.39.3.18

int analysepath_t::scheduler [private]

5.39.3.19

pthread_t analysepath_t::thread [private]

5.39.3.20

pthread_cond_t analysepath_t::cond_to_process [private]

The documentation for this class was generated from the following file:
• analysispath.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.40

analysispath_if_t Class Reference

5.40

analysispath_if_t Class Reference

219

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

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

© 2005-2019 HörTech gGmbH, Oldenburg

220

CONTENTS

Additional Inherited Members
5.40.1

Constructor & Destructor Documentation

5.40.1.1

analysispath_if_t::analysispath_if_t (
algo_comm_t iac,
std::string th,
std::string al )

5.40.1.2

analysispath_if_t::∼analysispath_if_t ( )

5.40.2

Member Function Documentation

5.40.2.1 mha_wave_t ∗ analysispath_if_t::process (
mha_wave_t ∗ s )
5.40.2.2

void analysispath_if_t::prepare (
mhaconfig_t & conf ) [virtual]

Implements MHAPlugin::plugin_t< analysepath_t > (p. 730).
5.40.2.3

void analysispath_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< analysepath_t > (p. 731).
5.40.2.4
5.40.3

void analysispath_if_t::loadlib ( ) [private]
Member Data Documentation

5.40.3.1 MHAEvents::patchbay_t< analysispath_if_t > analysispath_if_t::patchbay
[private]
5.40.3.2 MHAParser::string_t analysispath_if_t::libname [private]
5.40.3.3 MHAParser::int_t analysispath_if_t::fragsize [private]
5.40.3.4 MHAParser::int_t analysispath_if_t::fifolen [private]
5.40.3.5 MHAParser::int_t analysispath_if_t::priority [private]
5.40.3.6 MHAParser::vstring_t analysispath_if_t::vars [private]
5.40.3.7 plug_t∗ analysispath_if_t::plug [private]
5.40.3.8

std::string analysispath_if_t::chain [private]

5.40.3.9

std::string analysispath_if_t::algo [private]

5.40.3.10 MHA_AC::acspace2matrix_t∗ analysispath_if_t::acspace_template [private]
The documentation for this class was generated from the following file:
• analysispath.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.41

AuditoryProfile::fmap_t Class Reference

5.41

AuditoryProfile::fmap_t Class Reference

221

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.41.1

Detailed Description

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

5.41.2

5.41.2.1

Member Function Documentation

std::vector< mha_real_t > AuditoryProfile::fmap_t::get_frequencies ( ) const

Return configured frequencies.

5.41.2.2

std::vector< mha_real_t > AuditoryProfile::fmap_t::get_values ( ) const

Return stored values corresponding to the frequencies.

5.41.2.3

bool AuditoryProfile::fmap_t::isempty ( ) const [inline]

The documentation for this class was generated from the following files:

• auditory_profile.h
• auditory_profile.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

222

5.42

CONTENTS

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

Additional Inherited Members
5.42.1

Detailed Description

Class to make the auditory profile accessible through the parser interface.
© 2005-2019 HörTech gGmbH, Oldenburg

5.43

AuditoryProfile::parser_t::ear_t Class Reference

5.42.2

Constructor & Destructor Documentation

5.42.2.1
5.42.3

223

AuditoryProfile::parser_t::parser_t ( )
Member Function Documentation

5.42.3.1 AuditoryProfile::profile_t AuditoryProfile::parser_t::get_current_profile ( )
5.42.4

Member Data Documentation

5.42.4.1 AuditoryProfile::parser_t::ear_t AuditoryProfile::parser_t::L [private]
5.42.4.2 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

5.43

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
© 2005-2019 HörTech gGmbH, Oldenburg

224

CONTENTS

Private Attributes
• AuditoryProfile::parser_t::fmap_t HTL
• AuditoryProfile::parser_t::fmap_t UCL

Additional Inherited Members
5.43.1

Constructor & Destructor Documentation

5.43.1.1
5.43.2

AuditoryProfile::parser_t::ear_t::ear_t ( )
Member Function Documentation

5.43.2.1 AuditoryProfile::profile_t::ear_t AuditoryProfile::parser_t::ear_t::get_ear ( ) const
5.43.3

Member Data Documentation

5.43.3.1 AuditoryProfile::parser_t::fmap_t AuditoryProfile::parser_t::ear_t::HTL [private]
5.43.3.2 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.44

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-2019 HörTech gGmbH, Oldenburg

5.44

AuditoryProfile::parser_t::fmap_t Class Reference

225

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.44.1
5.44.1.1

5.44.2

Constructor & Destructor Documentation
AuditoryProfile::parser_t::fmap_t::fmap_t (
const std::string & name,
const std::string & help )
Member Function Documentation

5.44.2.1 AuditoryProfile::fmap_t AuditoryProfile::parser_t::fmap_t::get_fmap ( ) const
5.44.2.2
5.44.3

void AuditoryProfile::parser_t::fmap_t::validate ( ) [private]
Member Data Documentation

5.44.3.1 MHAEvents::patchbay_t
AuditoryProfile::parser_t::fmap_t::patchbay [private]
5.44.3.2 MHAParser::vfloat_t AuditoryProfile::parser_t::fmap_t::f [private]
5.44.3.3 MHAParser::vfloat_t AuditoryProfile::parser_t::fmap_t::value [private]
5.44.3.4

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
© 2005-2019 HörTech gGmbH, Oldenburg

226

5.45

CONTENTS

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.

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.45.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.45.2

Member Function Documentation

5.45.2.1 AuditoryProfile::profile_t::ear_t AuditoryProfile::profile_t::get_ear (
unsigned int channel ) const [inline]
Return ear information of channel number.
© 2005-2019 HörTech gGmbH, Oldenburg

5.46

AuditoryProfile::profile_t::ear_t Class Reference

5.45.3

227

Member Data Documentation

5.45.3.1 AuditoryProfile::profile_t::ear_t AuditoryProfile::profile_t::L
Left ear data.
5.45.3.2 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.46

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.46.1

Detailed Description

Class for ear-dependent parameters, e.g., audiograms or unilateral loudness scaling.

5.46.2
5.46.2.1
5.46.3

Member Function Documentation
void AuditoryProfile::profile_t::ear_t::convert_empty2normal ( )
Member Data Documentation

5.46.3.1 AuditoryProfile::fmap_t AuditoryProfile::profile_t::ear_t::HTL
5.46.3.2 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
© 2005-2019 HörTech gGmbH, Oldenburg

228

5.47

CONTENTS

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 ()

Private Attributes

• calibrator_t calib_in
• calibrator_t calib_out
• MHAParser::mhapluginloader_t plugloader
© 2005-2019 HörTech gGmbH, Oldenburg

5.48

calibrator_runtime_layer_t Class Reference

229

Additional Inherited Members
5.47.1

Constructor & Destructor Documentation

5.47.1.1

bbcalib_interface_t::bbcalib_interface_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )

5.47.1.2

bbcalib_interface_t::∼bbcalib_interface_t ( )

5.47.2

Member Function Documentation

5.47.2.1 mha_wave_t ∗ bbcalib_interface_t::process (
mha_wave_t ∗ s )
5.47.2.2

void bbcalib_interface_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< int > (p. 730).
5.47.2.3

void bbcalib_interface_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< int > (p. 731).

5.47.3

Member Data Documentation

5.47.3.1 calibrator_t bbcalib_interface_t::calib_in [private]
5.47.3.2 calibrator_t bbcalib_interface_t::calib_out [private]
5.47.3.3 MHAParser::mhapluginloader_t bbcalib_interface_t::plugloader [private]
The documentation for this class was generated from the following file:
• transducers.cpp

5.48

calibrator_runtime_layer_t Class Reference

Public Member Functions
• calibrator_runtime_layer_t (bool is_input, const mhaconfig_t &tf, calibrator_←variables_t &vars)
• mha_real_t process (mha_wave_t ∗∗)
© 2005-2019 HörTech gGmbH, Oldenburg

230

CONTENTS

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 > > &)

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.48.1
5.48.1.1

5.48.2

Constructor & Destructor Documentation
calibrator_runtime_layer_t::calibrator_runtime_layer_t (
bool is_input,
const mhaconfig_t & tf,
calibrator_variables_t & vars )
Member Function Documentation

5.48.2.1 mha_real_t calibrator_runtime_layer_t::process (
mha_wave_t ∗∗ s )
5.48.2.2

unsigned int calibrator_runtime_layer_t::firfirlen (
const std::vector< std::vector< float > > & fir ) [static], [private]

5.48.2.3

unsigned int calibrator_runtime_layer_t::firfir2fftlen (
unsigned int fragsize,
const std::vector< std::vector< float > > & fir ) [static], [private]

5.48.3

Member Data Documentation

5.48.3.1 MHAFilter::fftfilter_t calibrator_runtime_layer_t::fir [private]
5.48.3.2 MHASignal::quantizer_t calibrator_runtime_layer_t::quant [private]
5.48.3.3 MHASignal::waveform_t calibrator_runtime_layer_t::gain [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.49

calibrator_t Class Reference

231

5.48.3.4 softclipper_t calibrator_runtime_layer_t::softclip [private]
5.48.3.5

bool calibrator_runtime_layer_t::b_is_input [private]

5.48.3.6

bool calibrator_runtime_layer_t::b_use_fir [private]

5.48.3.7

bool calibrator_runtime_layer_t::b_use_clipping [private]

5.48.3.8 MHASignal::loop_wavefragment_t calibrator_runtime_layer_t::speechnoise
[private]

5.48.3.9 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.49

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

© 2005-2019 HörTech gGmbH, Oldenburg

232

CONTENTS

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)

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.49.1

5.49.1.1

5.49.2

5.49.2.1

Constructor & Destructor Documentation

calibrator_t::calibrator_t (
algo_comm_t iac,
bool is_input )
Member Function Documentation

void calibrator_t::prepare (
mhaconfig_t & tf ) [inline], [virtual]

Implements MHAPlugin::plugin_t< runtime_cfg_t > (p. 730).
5.49.2.2

void calibrator_t::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< runtime_cfg_t > (p. 731).
© 2005-2019 HörTech gGmbH, Oldenburg

5.50

calibrator_variables_t Class Reference

233

5.49.2.3 mha_wave_t ∗ calibrator_t::process (
mha_wave_t ∗ s )
5.49.2.4

void calibrator_t::update ( ) [private]

5.49.2.5

void calibrator_t::update_tau_level ( ) [private]

5.49.2.6

void calibrator_t::read_levels ( ) [private]

5.49.3

Member Data Documentation

5.49.3.1

bool calibrator_t::b_is_input [private]

5.49.3.2 MHAEvents::patchbay_t calibrator_t::patchbay [private]
5.49.3.3 calibrator_variables_t calibrator_t::vars [private]
5.49.3.4

bool calibrator_t::prepared [private]

The documentation for this class was generated from the following file:
• transducers.cpp

5.50

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

© 2005-2019 HörTech gGmbH, Oldenburg

234

5.50.1
5.50.1.1

5.50.2

CONTENTS

Constructor & Destructor Documentation
calibrator_variables_t::calibrator_variables_t (
bool is_input,
MHAParser::parser_t & parent )
Member Data Documentation

5.50.2.1 MHAParser::vfloat_t calibrator_variables_t::peaklevel
5.50.2.2 MHAParser::mfloat_t calibrator_variables_t::fir
5.50.2.3 MHAParser::int_t calibrator_variables_t::nbits
5.50.2.4 MHAParser::float_t calibrator_variables_t::tau_level
5.50.2.5 MHAParser::kw_t calibrator_variables_t::spnoise_mode
5.50.2.6 MHAParser::vint_t calibrator_variables_t::spnoise_channels
5.50.2.7 MHAParser::float_t calibrator_variables_t::spnoise_level
5.50.2.8 MHAParser::vfloat_mon_t calibrator_variables_t::rmslevel
5.50.2.9 MHAParser::parser_t calibrator_variables_t::spnoise_parser
5.50.2.10 MHAParser::float_mon_t calibrator_variables_t::srate
5.50.2.11 MHAParser::int_mon_t calibrator_variables_t::fragsize
5.50.2.12 MHAParser::int_mon_t calibrator_variables_t::num_channels
5.50.2.13 MHAParser::parser_t calibrator_variables_t::config_parser
5.50.2.14 softclipper_variables_t calibrator_variables_t::softclip
5.50.2.15 MHAParser::bool_t calibrator_variables_t::do_clipping
The documentation for this class was generated from the following file:
• transducers.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.51

cfg_t Class Reference

5.51

cfg_t Class Reference

235

Public Member Functions
•
•
•
•
•

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 ∗)
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)

Public Attributes
•
•
•
•
•

unsigned int channel
mha_real_t start_lin
mha_real_t alpha
MHAFilter::o1flt_lowpass_t attack
MHAFilter::o1flt_maxtrack_t decay

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.51.1
5.51.1.1

Constructor & Destructor Documentation
cfg_t::cfg_t (
unsigned int ichannel,
unsigned int numchannels )

5.51.1.2

cfg_t::cfg_t (
mhaconfig_t chcfg,
mha_real_t newlev,
bool replace,
mha_real_t len )

5.51.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-2019 HörTech gGmbH, Oldenburg

236

5.51.2

Member Function Documentation

5.51.2.1

void cfg_t::process (
mha_wave_t ∗ s ) [inline]

5.51.2.2

void cfg_t::process (
mha_spec_t ∗ s ) [inline]

5.51.3

5.51.3.1

CONTENTS

Member Data Documentation

unsigned int cfg_t::channel

5.51.3.2 mha_real_t cfg_t::gain_wave_ [private]

5.51.3.3 mha_real_t cfg_t::gain_spec_ [private]

5.51.3.4

bool cfg_t::replace_ [private]

5.51.3.5

bool cfg_t::use_frozen_ [private]

5.51.3.6 MHASignal::waveform_t cfg_t::frozen_noise_ [private]

5.51.3.7

unsigned int cfg_t::pos [private]

5.51.3.8 mha_real_t cfg_t::start_lin

5.51.3.9 mha_real_t cfg_t::alpha

5.51.3.10 MHAFilter::o1flt_lowpass_t cfg_t::attack

5.51.3.11 MHAFilter::o1flt_maxtrack_t cfg_t::decay
The documentation for this class was generated from the following files:

• example6.cpp
• noise.cpp
• softclip.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.52

coherence::cohflt_if_t Class Reference

5.52

coherence::cohflt_if_t Class Reference

237

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 ∗)

Private Member Functions
• void update ()

Private Attributes
• MHAEvents::patchbay_t< cohflt_if_t > patchbay
• vars_t vars
• const std::string algo
© 2005-2019 HörTech gGmbH, Oldenburg

238

CONTENTS

Additional Inherited Members

5.52.1

5.52.1.1

5.52.2

5.52.2.1

Constructor & Destructor Documentation

coherence::cohflt_if_t::cohflt_if_t (
const algo_comm_t & ac,
const std::string & th,
const std::string & al )

Member Function Documentation

void coherence::cohflt_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cohflt_t > (p. 730).

5.52.2.2

void coherence::cohflt_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< cohflt_t > (p. 731).

5.52.2.3 mha_spec_t ∗ coherence::cohflt_if_t::process (
mha_spec_t ∗ s )

5.52.2.4

5.52.3

void coherence::cohflt_if_t::update ( ) [private]

Member Data Documentation

5.52.3.1 MHAEvents::patchbay_t coherence::cohflt_if_t::patchbay [private]

5.52.3.2 vars_t coherence::cohflt_if_t::vars [private]

5.52.3.3

const std::string coherence::cohflt_if_t::algo [private]

The documentation for this class was generated from the following file:

• coherence.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.53

coherence::cohflt_t Class Reference

5.53

coherence::cohflt_t Class Reference

239

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
MHASignal::delay_wave_t gain_delay

© 2005-2019 HörTech gGmbH, Oldenburg

240
•
•
•
•
•

CONTENTS

MHASignal::spectrum_t s_out
bool bInvert
MHAFilter::o1flt_lowpass_t lp1ltg
bool b_ltg
std::vector< float > staticgain

Additional Inherited Members
5.53.1
5.53.1.1

5.53.2

Constructor & Destructor Documentation
coherence::cohflt_t::cohflt_t (
vars_t & v,
const mhaconfig_t & icf,
algo_comm_t iac,
const std::string & name )
Member Function Documentation

5.53.2.1 mha_spec_t ∗ coherence::cohflt_t::process (
mha_spec_t ∗ s )
5.53.2.2
5.53.3

void coherence::cohflt_t::insert ( )
Member Data Documentation

5.53.3.1

unsigned int coherence::cohflt_t::nbands [private]

5.53.3.2

bool coherence::cohflt_t::avg_ipd [private]

5.53.3.3 mha_complex_t coherence::cohflt_t::cg [private]
5.53.3.4

float coherence::cohflt_t::g [private]

5.53.3.5

float coherence::cohflt_t::c_scale [private]

5.53.3.6

float coherence::cohflt_t::c_min [private]

5.53.3.7 MHASignal::waveform_t coherence::cohflt_t::alpha [private]
5.53.3.8

float coherence::cohflt_t::limit [private]

5.53.3.9 MHAFilter::o1flt_lowpass_t coherence::cohflt_t::lp1r [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.54

coherence::vars_t Class Reference

241

5.53.3.10 MHAFilter::o1flt_lowpass_t coherence::cohflt_t::lp1i [private]
5.53.3.11 MHA_AC::spectrum_t coherence::cohflt_t::coh_c [private]
5.53.3.12 MHA_AC::waveform_t coherence::cohflt_t::coh_rlp [private]
5.53.3.13 MHASignal::waveform_t coherence::cohflt_t::gain [private]
5.53.3.14 MHASignal::delay_wave_t coherence::cohflt_t::gain_delay [private]
5.53.3.15 MHASignal::spectrum_t coherence::cohflt_t::s_out [private]
5.53.3.16

bool coherence::cohflt_t::bInvert [private]

5.53.3.17 MHAFilter::o1flt_lowpass_t coherence::cohflt_t::lp1ltg [private]
5.53.3.18

bool coherence::cohflt_t::b_ltg [private]

5.53.3.19

std::vector coherence::cohflt_t::staticgain [private]

The documentation for this class was generated from the following file:
• coherence.cpp

5.54

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-2019 HörTech gGmbH, Oldenburg

242

CONTENTS

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.54.1
5.54.1.1

5.54.2

Constructor & Destructor Documentation
coherence::vars_t::vars_t (
MHAParser::parser_t ∗ p )
Member Data Documentation

5.54.2.1 MHAParser::kw_t coherence::vars_t::tau_unit
5.54.2.2 MHAParser::vfloat_t coherence::vars_t::tau
5.54.2.3 MHAParser::vfloat_t coherence::vars_t::alpha
5.54.2.4 MHAParser::float_t coherence::vars_t::limit
5.54.2.5 MHAParser::vfloat_t coherence::vars_t::mapping
5.54.2.6 MHAParser::kw_t coherence::vars_t::average
5.54.2.7 MHAParser::bool_t coherence::vars_t::invert
5.54.2.8 MHAParser::bool_t coherence::vars_t::ltgcomp
5.54.2.9 MHAParser::vfloat_t coherence::vars_t::ltgtau
5.54.2.10 MHAParser::vfloat_t coherence::vars_t::staticgain
5.54.2.11 MHAParser::int_t coherence::vars_t::delay
The documentation for this class was generated from the following file:
• coherence.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.55

combc_if_t Class Reference

5.55

combc_if_t Class Reference

243

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
© 2005-2019 HörTech gGmbH, Oldenburg

244

CONTENTS

Additional Inherited Members
5.55.1

Constructor & Destructor Documentation

5.55.1.1

5.55.2

combc_if_t::combc_if_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )
Member Function Documentation

5.55.2.1

void combc_if_t::prepare (
mhaconfig_t & chcfg ) [virtual]

Implements MHAPlugin::plugin_t< combc_t > (p. 730).
5.55.2.2 mha_wave_t ∗ combc_if_t::process (
mha_wave_t ∗ s )
5.55.2.3 mha_spec_t ∗ combc_if_t::process (
mha_spec_t ∗ s )
5.55.3

Member Data Documentation

5.55.3.1 MHAParser::int_t combc_if_t::outchannels [private]
5.55.3.2 MHAParser::bool_t combc_if_t::interleaved [private]
5.55.3.3 MHAParser::string_t combc_if_t::channel_gain_name [private]
5.55.3.4 MHAParser::string_t combc_if_t::element_gain_name [private]
The documentation for this class was generated from the following file:
• combinechannels.cpp

5.56

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)
© 2005-2019 HörTech gGmbH, Oldenburg

5.56

combc_t Class Reference

245

Private Attributes
•
•
•
•
•
•
•

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_

5.56.1
5.56.1.1

5.56.2

Constructor & Destructor Documentation
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 )
Member Function Documentation

5.56.2.1 mha_wave_t ∗ combc_t::process (
mha_wave_t ∗ s )
5.56.2.2 mha_spec_t ∗ combc_t::process (
mha_spec_t ∗ s )
5.56.3

Member Data Documentation

5.56.3.1 algo_comm_t combc_t::ac_ [private]
5.56.3.2

bool combc_t::interleaved_ [private]

5.56.3.3

unsigned int combc_t::nbands [private]

5.56.3.4 MHASignal::waveform_t combc_t::w_out [private]
5.56.3.5 MHASignal::spectrum_t combc_t::s_out [private]
5.56.3.6

std::vector combc_t::channel_gains_ [private]

5.56.3.7

std::string combc_t::element_gain_name_ [private]

The documentation for this class was generated from the following file:
• combinechannels.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

246

5.57

CONTENTS

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.

5.57.1

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.57.2
5.57.2.1

Member Data Documentation
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

© 2005-2019 HörTech gGmbH, Oldenburg

5.58

cpuload_t Class Reference

5.57.2.2

247

comm_var_t::num_entries

Number of entries.
5.57.2.3

comm_var_t::stride

length of one row (C interpretation) or of one column (Fortran interpretation)
5.57.2.4

comm_var_t::data

Pointer to variable data.
The documentation for this struct was generated from the following files:

• mha.hh
• mha_algo_comm.cpp

5.58

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-2019 HörTech gGmbH, Oldenburg

248

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.58.1

5.58.1.1

5.58.2

Constructor & Destructor Documentation

cpuload_t::cpuload_t (
algo_comm_t iac,
const char ∗ ,
const char ∗ )
Member Function Documentation

5.58.2.1 mha_spec_t ∗ cpuload_t::process (
mha_spec_t ∗ s )
5.58.2.2 mha_wave_t ∗ cpuload_t::process (
mha_wave_t ∗ s )
5.58.2.3

void cpuload_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< float > (p. 730).
© 2005-2019 HörTech gGmbH, Oldenburg

5.59

db_if_t Class Reference

249

5.58.2.4

void cpuload_t::compute_something ( ) [inline], [private]

5.58.2.5

void cpuload_t::compute_something_else ( ) [inline], [private]

5.58.3

Member Data Documentation

5.58.3.1 MHAParser::float_t cpuload_t::factor [private]
5.58.3.2 MHAParser::bool_t cpuload_t::use_sine [private]
5.58.3.3

float cpuload_t::phase [private]

5.58.3.4

volatile float cpuload_t::result [private]

5.58.3.5

std::vector cpuload_t::table [private]

The documentation for this class was generated from the following file:
• cpuload.cpp

5.59

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

© 2005-2019 HörTech gGmbH, Oldenburg

250

CONTENTS

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 ()

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.59.1

Constructor & Destructor Documentation

5.59.1.1

db_if_t::db_if_t (
algo_comm_t iac,
std::string th,
std::string al )

5.59.1.2

db_if_t::∼db_if_t ( )

5.59.2

Member Function Documentation

5.59.2.1 mha_wave_t ∗ db_if_t::process (
mha_wave_t ∗ s )
5.59.2.2

void db_if_t::prepare (
mhaconfig_t & conf ) [virtual]

Implements MHAPlugin::plugin_t< db_t > (p. 730).
5.59.2.3

void db_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< db_t > (p. 731).
© 2005-2019 HörTech gGmbH, Oldenburg

5.60

db_t Class Reference

5.59.3

251

Member Data Documentation

5.59.3.1 MHAEvents::patchbay_t< db_if_t > db_if_t::patchbay [private]
5.59.3.2 MHAParser::int_t db_if_t::fragsize [private]
5.59.3.3 MHAParser::mhapluginloader_t db_if_t::plugloader [private]
5.59.3.4

std::string db_if_t::chain [private]

5.59.3.5

std::string db_if_t::algo [private]

5.59.3.6

bool db_if_t::bypass [private]

The documentation for this class was generated from the following file:
• db.cpp

5.60

db_t Class Reference

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
© 2005-2019 HörTech gGmbH, Oldenburg

252

CONTENTS

Additional Inherited Members

5.60.1

5.60.1.1

Constructor & Destructor Documentation

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.60.2

Member Function Documentation

5.60.2.1 mha_wave_t ∗ db_t::inner_process (
mha_wave_t ∗ s ) [virtual]

Implements MHASignal::doublebuffer_t (p. 771).

5.60.3

Member Data Documentation

5.60.3.1 MHAParser::mhapluginloader_t& db_t::plugloader [private]

The documentation for this class was generated from the following file:

• db.cpp

© 2005-2019 HörTech gGmbH, Oldenburg

5.61

dc::dc_if_t Class Reference

5.61

dc::dc_if_t Class Reference

253

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

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
© 2005-2019 HörTech gGmbH, Oldenburg

254

CONTENTS

Additional Inherited Members
5.61.1
5.61.1.1

5.61.2
5.61.2.1

Constructor & Destructor Documentation
dc::dc_if_t::dc_if_t (
const algo_comm_t & ac_,
const std::string & th_,
const std::string & al_ )
Member Function Documentation
void dc::dc_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< dc_t > (p. 730).
5.61.2.2 mha_wave_t ∗ dc::dc_if_t::process (
mha_wave_t ∗ s_in )
5.61.2.3 mha_spec_t ∗ dc::dc_if_t::process (
mha_spec_t ∗ s_in )
5.61.2.4

void dc::dc_if_t::update_monitors ( ) [private]

Called from within the processing routines: updates the monitor variables.
5.61.2.5

void dc::dc_if_t::update ( ) [private]

Called by MHA configuration change event mechanism: creates new runtime configuration.

5.61.3
5.61.3.1

Member Data Documentation
std::string dc::dc_if_t::algo [private]

5.61.3.2 wideband_inhib_vars_t dc::dc_if_t::wbinhib [private]
5.61.3.3 MHAEvents::patchbay_t dc::dc_if_t::patchbay [private]
The documentation for this class was generated from the following file:
• dc.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.62

dc::dc_t Class Reference

5.62

dc::dc_t Class Reference

255

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
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

© 2005-2019 HörTech gGmbH, Oldenburg

256

CONTENTS

Additional Inherited Members
5.62.1
5.62.1.1

5.62.2

Constructor & Destructor Documentation
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 )
Member Function Documentation

5.62.2.1 mha_wave_t ∗ dc::dc_t::process (
mha_wave_t ∗ s )
5.62.2.2 mha_spec_t ∗ dc::dc_t::process (
mha_spec_t ∗ s,
wb_inhib_cfg_t ∗ wbinhib )
5.62.2.3

void dc::dc_t::explicit_insert ( )

5.62.2.4

unsigned dc::dc_t::get_nbands ( ) const [inline]

Number of frequency bands accessor.
5.62.2.5

const MHASignal::waveform_t& dc::dc_t::get_level_in_db ( ) const [inline]

5.62.2.6

const MHASignal::waveform_t& dc::dc_t::get_level_in_db_adjusted (
[inline]

5.62.3
5.62.3.1

) const

Member Data Documentation
std::vector dc::dc_t::gt [private]

5.62.3.2 MHAFilter::o1flt_lowpass_t dc::dc_t::rmslevel [private]
5.62.3.3 MHAFilter::o1flt_lowpass_t dc::dc_t::attack [private]
5.62.3.4 MHAFilter::o1flt_maxtrack_t dc::dc_t::decay [private]
5.62.3.5

bool dc::dc_t::powersum [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.63

dc::dc_vars_t Class Reference

257

5.62.3.6

bool dc::dc_t::bypass [private]

5.62.3.7

unsigned int dc::dc_t::naudiochannels [private]

5.62.3.8

unsigned int dc::dc_t::nbands [private]

5.62.3.9 MHA_AC::waveform_t dc::dc_t::level_in_db [private]
5.62.3.10 MHA_AC::waveform_t dc::dc_t::level_in_db_adjusted [private]
5.62.3.11 MHA_AC::waveform_t dc::dc_t::inhib_gain [private]
5.62.3.12 MHASignal::waveform_t dc::dc_t::max_level_difference [private]
5.62.3.13

unsigned int dc::dc_t::k_nyquist [private]

The documentation for this class was generated from the following file:
• dc.cpp

5.63

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 &)
© 2005-2019 HörTech gGmbH, Oldenburg

258

CONTENTS

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
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.63.1
5.63.1.1

5.63.2

Constructor & Destructor Documentation
dc::dc_vars_t::dc_vars_t (
MHAParser::parser_t & p )
Member Data Documentation

5.63.2.1 MHAParser::bool_t dc::dc_vars_t::powersum
5.63.2.2 MHAParser::mfloat_t dc::dc_vars_t::gtdata
5.63.2.3 MHAParser::vfloat_t dc::dc_vars_t::gtmin
5.63.2.4 MHAParser::vfloat_t dc::dc_vars_t::gtstep
5.63.2.5 MHAParser::vfloat_t dc::dc_vars_t::taurmslevel

© 2005-2019 HörTech gGmbH, Oldenburg

5.63

dc::dc_vars_t Class Reference

5.63.2.6 MHAParser::vfloat_t dc::dc_vars_t::tauattack
5.63.2.7 MHAParser::vfloat_t dc::dc_vars_t::taudecay
5.63.2.8 MHAParser::string_t dc::dc_vars_t::filterbank
5.63.2.9

std::string dc::dc_vars_t::cf_name

5.63.2.10

std::string dc::dc_vars_t::ef_name

5.63.2.11

std::string dc::dc_vars_t::bw_name

5.63.2.12 MHAParser::string_t dc::dc_vars_t::chname
5.63.2.13 MHAParser::bool_t dc::dc_vars_t::bypass
5.63.2.14 MHAParser::string_t dc::dc_vars_t::clientid
5.63.2.15 MHAParser::string_t dc::dc_vars_t::gainrule
5.63.2.16 MHAParser::string_t dc::dc_vars_t::preset
5.63.2.17 MHAParser::int_mon_t dc::dc_vars_t::modified
5.63.2.18 MHAParser::mfloat_t dc::dc_vars_t::max_level_difference
5.63.2.19 MHAParser::vfloat_mon_t dc::dc_vars_t::input_level
5.63.2.20 MHAParser::vfloat_mon_t dc::dc_vars_t::filtered_level
5.63.2.21 MHAParser::vfloat_mon_t dc::dc_vars_t::center_frequencies
5.63.2.22 MHAParser::vfloat_mon_t dc::dc_vars_t::edge_frequencies
5.63.2.23 MHAParser::vfloat_mon_t dc::dc_vars_t::band_weights
5.63.2.24 MHAParser::bool_t dc::dc_vars_t::use_wbinhib
The documentation for this class was generated from the following file:
• dc.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

259

260

5.64

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.64.1

Constructor & Destructor Documentation

5.64.1.1

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.65

dc::wb_inhib_cfg_t Class Reference

Public Member Functions
• wb_inhib_cfg_t (const wideband_inhib_vars_t &vars)

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.66

dc::wideband_inhib_vars_t Class Reference

5.65.1

Constructor & Destructor Documentation

5.65.1.1

5.65.2

dc::wb_inhib_cfg_t::wb_inhib_cfg_t (
const wideband_inhib_vars_t & vars )
Member Data Documentation

5.65.2.1

std::vector dc::wb_inhib_cfg_t::weights

5.65.2.2

float dc::wb_inhib_cfg_t::dl_map_min

5.65.2.3

float dc::wb_inhib_cfg_t::dl_map_max

5.65.2.4

float dc::wb_inhib_cfg_t::dl_diff

5.65.2.5

float dc::wb_inhib_cfg_t::l_min

5.65.2.6

std::vector > dc::wb_inhib_cfg_t::g_scale

The documentation for this class was generated from the following file:
• dc.cpp

5.66

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

© 2005-2019 HörTech gGmbH, Oldenburg

261

262

CONTENTS

Public Member Functions
•
•
•
•

wideband_inhib_vars_t ()
void setchannels (unsigned int ch, unsigned int bnds)
wb_inhib_cfg_t ∗ current ()
void update ()

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.66.1
5.66.1.1
5.66.2
5.66.2.1

Constructor & Destructor Documentation
dc::wideband_inhib_vars_t::wideband_inhib_vars_t ( )
Member Function Documentation
void dc::wideband_inhib_vars_t::setchannels (
unsigned int ch,
unsigned int bnds ) [inline]

5.66.2.2 wb_inhib_cfg_t∗ dc::wideband_inhib_vars_t::current ( ) [inline]
5.66.2.3
5.66.3

void dc::wideband_inhib_vars_t::update ( )
Member Data Documentation

5.66.3.1 MHAParser::vfloat_t dc::wideband_inhib_vars_t::weights
5.66.3.2 MHAParser::float_t dc::wideband_inhib_vars_t::dl_map_min
5.66.3.3 MHAParser::float_t dc::wideband_inhib_vars_t::dl_map_max
5.66.3.4 MHAParser::float_t dc::wideband_inhib_vars_t::l_min

© 2005-2019 HörTech gGmbH, Oldenburg

5.67

dc_simple::dc_if_t Class Reference

263

5.66.3.5 MHAParser::mfloat_t dc::wideband_inhib_vars_t::g_scale
5.66.3.6 MHAEvents::patchbay_t dc::wideband_inhib_vars_t←::patchbay
5.66.3.7

unsigned int dc::wideband_inhib_vars_t::channels

5.66.3.8

unsigned int dc::wideband_inhib_vars_t::bands

The documentation for this class was generated from the following file:
• dc.cpp

5.67

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 ∗)

© 2005-2019 HörTech gGmbH, Oldenburg

264

CONTENTS

Private Member Functions
•
•
•
•
•
•

void update_dc ()
void update_level ()
void has_been_modified ()
void read_modified ()
void update_level_mon ()
void update_gain_mon ()

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.67.1
5.67.1.1

5.67.2
5.67.2.1

Constructor & Destructor Documentation
dc_simple::dc_if_t::dc_if_t (
const algo_comm_t & ac_,
const std::string & th_,
const std::string & al_ )
Member Function Documentation
void dc_simple::dc_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< runtime_cfg_t > (p. 730).
5.67.2.2

void dc_simple::dc_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< runtime_cfg_t > (p. 731).
© 2005-2019 HörTech gGmbH, Oldenburg

5.67

dc_simple::dc_if_t Class Reference

265

5.67.2.3 mha_spec_t ∗ dc_simple::dc_if_t::process (
mha_spec_t ∗ s )
5.67.2.4 mha_wave_t ∗ dc_simple::dc_if_t::process (
mha_wave_t ∗ s )
5.67.2.5

void dc_simple::dc_if_t::update_dc ( ) [private]

5.67.2.6

void dc_simple::dc_if_t::update_level ( ) [private]

5.67.2.7

void dc_simple::dc_if_t::has_been_modified ( ) [inline], [private]

5.67.2.8

void dc_simple::dc_if_t::read_modified ( ) [inline], [private]

5.67.2.9

void dc_simple::dc_if_t::update_level_mon ( ) [private]

5.67.2.10
5.67.3

void dc_simple::dc_if_t::update_gain_mon ( ) [private]

Member Data Documentation

5.67.3.1 MHAParser::string_t dc_simple::dc_if_t::clientid [private]
5.67.3.2 MHAParser::string_t dc_simple::dc_if_t::gainrule [private]
5.67.3.3 MHAParser::string_t dc_simple::dc_if_t::preset [private]
5.67.3.4 MHAParser::int_mon_t dc_simple::dc_if_t::modified [private]
5.67.3.5 MHAParser::vfloat_mon_t dc_simple::dc_if_t::mon_l [private]
5.67.3.6 MHAParser::vfloat_mon_t dc_simple::dc_if_t::mon_g [private]
5.67.3.7 MHAParser::string_t dc_simple::dc_if_t::filterbank [private]
5.67.3.8 MHAParser::vfloat_mon_t dc_simple::dc_if_t::center_frequencies [private]
5.67.3.9 MHAParser::vfloat_mon_t dc_simple::dc_if_t::edge_frequencies [private]
5.67.3.10 MHAEvents::patchbay_t dc_simple::dc_if_t::patchbay [private]
5.67.3.11

bool dc_simple::dc_if_t::prepared [private]

The documentation for this class was generated from the following file:
• dc_simple.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

266

5.68

CONTENTS

dc_simple::dc_t Class Reference

Inheritance diagram for dc_simple::dc_t:

dc_simple::dc_vars
_validator_t

dc_simple::dc_t

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< mha_real_t > expansion_threshold
std::vector< mha_real_t > limiter_threshold
std::vector< line_t > compression
std::vector< line_t > expansion
std::vector< line_t > limiter
std::vector< mha_real_t > maxgain
unsigned int nbands
© 2005-2019 HörTech gGmbH, Oldenburg

5.68

dc_simple::dc_t Class Reference

267

Additional Inherited Members
5.68.1
5.68.1.1

5.68.2

Constructor & Destructor Documentation
dc_simple::dc_t::dc_t (
const dc_vars_t & vars,
mha_real_t filter_rate,
unsigned int nch,
unsigned int fftlen )
Member Function Documentation

5.68.2.1 mha_spec_t ∗ dc_simple::dc_t::process (
mha_spec_t ∗ s,
mha_wave_t ∗ level_db )
5.68.2.2 mha_wave_t ∗ dc_simple::dc_t::process (
mha_wave_t ∗ s,
mha_wave_t ∗ level_db )
5.68.3

Member Data Documentation

5.68.3.1

std::vector dc_simple::dc_t::expansion_threshold [private]

5.68.3.2

std::vector dc_simple::dc_t::limiter_threshold [private]

5.68.3.3

std::vector dc_simple::dc_t::compression [private]

5.68.3.4

std::vector dc_simple::dc_t::expansion [private]

5.68.3.5

std::vector dc_simple::dc_t::limiter [private]

5.68.3.6

std::vector dc_simple::dc_t::maxgain [private]

5.68.3.7

unsigned int dc_simple::dc_t::nbands [private]

5.68.3.8

std::vector dc_simple::dc_t::mon_l

5.68.3.9

std::vector dc_simple::dc_t::mon_g

The documentation for this class was generated from the following file:
• dc_simple.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

268

5.69

CONTENTS

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.69.1

Constructor & Destructor Documentation

5.69.1.1

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.69.1.2

dc_simple::dc_t::line_t::line_t (
mha_real_t x1,
mha_real_t y1,
mha_real_t slope )

5.69.2

Member Function Documentation

5.69.2.1 mha_real_t dc_simple::dc_t::line_t::operator() (
mha_real_t x ) [inline]
5.69.3

Member Data Documentation

5.69.3.1 mha_real_t dc_simple::dc_t::line_t::m [private]
5.69.3.2 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-2019 HörTech gGmbH, Oldenburg

5.70

dc_simple::dc_vars_t Class Reference

5.70

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.70.1
5.70.1.1

5.70.2

Constructor & Destructor Documentation
dc_simple::dc_vars_t::dc_vars_t (
MHAParser::parser_t & p )
Member Data Documentation

5.70.2.1 MHAParser::vfloat_t dc_simple::dc_vars_t::g50
5.70.2.2 MHAParser::vfloat_t dc_simple::dc_vars_t::g80

© 2005-2019 HörTech gGmbH, Oldenburg

269

270

CONTENTS

5.70.2.3 MHAParser::vfloat_t dc_simple::dc_vars_t::maxgain

5.70.2.4 MHAParser::vfloat_t dc_simple::dc_vars_t::expansion_threshold

5.70.2.5 MHAParser::vfloat_t dc_simple::dc_vars_t::expansion_slope

5.70.2.6 MHAParser::vfloat_t dc_simple::dc_vars_t::limiter_threshold

5.70.2.7 MHAParser::vfloat_t dc_simple::dc_vars_t::tauattack

5.70.2.8 MHAParser::vfloat_t dc_simple::dc_vars_t::taudecay

5.70.2.9 MHAParser::bool_t dc_simple::dc_vars_t::bypass
The documentation for this class was generated from the following file:

• dc_simple.cpp

5.71

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)
© 2005-2019 HörTech gGmbH, Oldenburg

5.72

dc_simple::level_smoother_t Class Reference

5.71.1

271

Constructor & Destructor Documentation

5.71.1.1

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.72

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-2019 HörTech gGmbH, Oldenburg

272

CONTENTS

Additional Inherited Members

5.72.1

5.72.1.1

5.72.2

Constructor & Destructor Documentation

dc_simple::level_smoother_t::level_smoother_t (
const dc_vars_t & vars,
mha_real_t filter_rate,
mhaconfig_t buscfg )

Member Function Documentation

5.72.2.1 mha_wave_t ∗ dc_simple::level_smoother_t::process (
mha_spec_t ∗ s )

5.72.2.2 mha_wave_t ∗ dc_simple::level_smoother_t::process (
mha_wave_t ∗ s )

5.72.3

Member Data Documentation

5.72.3.1 MHAFilter::o1flt_lowpass_t dc_simple::level_smoother_t::attack [private]

5.72.3.2 MHAFilter::o1flt_maxtrack_t dc_simple::level_smoother_t::decay [private]

5.72.3.3

unsigned int dc_simple::level_smoother_t::nbands [private]

5.72.3.4

unsigned int dc_simple::level_smoother_t::fftlen [private]

5.72.3.5 MHASignal::waveform_t dc_simple::level_smoother_t::level_wave [private]

5.72.3.6 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
© 2005-2019 HörTech gGmbH, Oldenburg

5.73

delay::interface_t Class Reference

5.73

delay::interface_t Class Reference

273

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

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
© 2005-2019 HörTech gGmbH, Oldenburg

274

CONTENTS

Additional Inherited Members

5.73.1

Constructor & Destructor Documentation

5.73.1.1

5.73.2

delay::interface_t::interface_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )

Member Function Documentation

5.73.2.1

void delay::interface_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< MHASignal::delay_t > (p. 730).

5.73.2.2 mha_wave_t ∗ delay::interface_t::process (
mha_wave_t ∗ s )

5.73.2.3

5.73.3

void delay::interface_t::update ( ) [private]

Member Data Documentation

5.73.3.1 MHAParser::vint_t delay::interface_t::delays [private]

5.73.3.2 MHAEvents::patchbay_t delay::interface_t::patchbay [private]

The documentation for this class was generated from the following file:

• delay.cpp

5.74

delaysum::delaysum_if_t Class Reference

Interface class for the delaysum plugin.
© 2005-2019 HörTech gGmbH, Oldenburg

5.74

delaysum::delaysum_if_t Class Reference

275

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-2019 HörTech gGmbH, Oldenburg

276

CONTENTS

Additional Inherited Members
5.74.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.74.2
5.74.2.1

5.74.3

Constructor & Destructor Documentation
delaysum::delaysum_if_t::delaysum_if_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )
Member Function Documentation

5.74.3.1 mha_wave_t ∗ delaysum::delaysum_if_t::process (
mha_wave_t ∗ wave )
5.74.3.2

void delaysum::delaysum_if_t::prepare (
mhaconfig_t & tfcfg ) [virtual]

Implements MHAPlugin::plugin_t< delaysum_t > (p. 730).
5.74.3.3

void delaysum::delaysum_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< delaysum_t > (p. 731).
5.74.3.4
5.74.4

void delaysum::delaysum_if_t::update_cfg ( ) [private]
Member Data Documentation

5.74.4.1 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.74.4.2 MHAParser::vint_t delaysum::delaysum_if_t::delay [private]
vector of channel-specific delays, in samples.
© 2005-2019 HörTech gGmbH, Oldenburg

5.75

delaysum::delaysum_t Class Reference

277

5.74.4.3 MHAEvents::patchbay_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

5.75

delaysum::delaysum_t Class Reference

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.
© 2005-2019 HörTech gGmbH, Oldenburg

278

5.75.1

CONTENTS

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.75.2
5.75.2.1

Constructor & Destructor Documentation
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.75.3

Member Function Documentation

5.75.3.1 mha_wave_t ∗ delaysum::delaysum_t::process (
mha_wave_t ∗ signal )
5.75.4
5.75.4.1

Member Data Documentation
std::vector delaysum::delaysum_t::weights [private]

Relative weights for each channel. Order is [chan0, chan1, ...].
5.75.4.2 MHASignal::waveform_t delaysum::delaysum_t::out [private]
Output waveform.
The documentation for this class was generated from the following file:
• delaysum.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.76

doasvm_classification Class Reference

5.76

doasvm_classification Class Reference

279

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)
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

© 2005-2019 HörTech gGmbH, Oldenburg

280

CONTENTS

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< doasvm_classification > patchbay

Additional Inherited Members
5.76.1
5.76.1.1

Constructor & Destructor Documentation
doasvm_classification::doasvm_classification (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
5.76.1.2
5.76.2

doasvm_classification::∼doasvm_classification ( )
Member Function Documentation

5.76.2.1 mha_wave_t ∗ doasvm_classification::process (
mha_wave_t ∗ signal )
Checks for the most recent configuration and defers processing to it.
5.76.2.2

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. 730).

© 2005-2019 HörTech gGmbH, Oldenburg

5.77

doasvm_classification_config Class Reference

5.76.2.3

281

void doasvm_classification::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< doasvm_classification_config > (p. 731).
5.76.2.4
5.76.3

void doasvm_classification::update_cfg ( ) [private]
Member Data Documentation

5.76.3.1 MHAParser::vfloat_t doasvm_classification::angles
5.76.3.2 MHAParser::mfloat_t doasvm_classification::w
5.76.3.3 MHAParser::vfloat_t doasvm_classification::b
5.76.3.4 MHAParser::vfloat_t doasvm_classification::x
5.76.3.5 MHAParser::vfloat_t doasvm_classification::y
5.76.3.6 MHAParser::string_t doasvm_classification::p_name
5.76.3.7 MHAParser::string_t doasvm_classification::max_p_ind_name
5.76.3.8 MHAParser::string_t doasvm_classification::vGCC_name
5.76.3.9 MHAEvents::patchbay_t doasvm_classification::patchbay
[private]
The documentation for this class was generated from the following files:
• doasvm_classification.h
• doasvm_classification.cpp

5.77

doasvm_classification_config Class Reference

Public Member Functions
• doasvm_classification_config (algo_comm_t &ac,
doasvm_classification ∗_doasvm)
• ∼doasvm_classification_config ()
• mha_wave_t ∗ process (mha_wave_t ∗)
© 2005-2019 HörTech gGmbH, Oldenburg

const mhaconfig_t in_cfg,

282

CONTENTS

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.77.1

Constructor & Destructor Documentation

5.77.1.1

doasvm_classification_config::doasvm_classification_config (
algo_comm_t & ac,
const mhaconfig_t in_cfg,
doasvm_classification ∗ _doasvm )

5.77.1.2

doasvm_classification_config::∼doasvm_classification_config ( )

5.77.2

Member Function Documentation

5.77.2.1 mha_wave_t ∗ doasvm_classification_config::process (
mha_wave_t ∗ wave )

5.77.3

Member Data Documentation

5.77.3.1 algo_comm_t& doasvm_classification_config::ac

5.77.3.2 doasvm_classification∗ doasvm_classification_config::doasvm

5.77.3.3 MHA_AC::waveform_t doasvm_classification_config::p

5.77.3.4 MHA_AC::int_t doasvm_classification_config::p_max

5.77.3.5 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-2019 HörTech gGmbH, Oldenburg

5.78

doasvm_feature_extraction Class Reference

5.78

doasvm_feature_extraction Class Reference

283

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-2019 HörTech gGmbH, Oldenburg

284

CONTENTS

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< doasvm_feature_extraction > patchbay

Additional Inherited Members
5.78.1
5.78.1.1

Constructor & Destructor Documentation
doasvm_feature_extraction::doasvm_feature_extraction (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
5.78.1.2
5.78.2

doasvm_feature_extraction::∼doasvm_feature_extraction ( )
Member Function Documentation

5.78.2.1 mha_wave_t ∗ doasvm_feature_extraction::process (
mha_wave_t ∗ signal )
Checks for the most recent configuration and defers processing to it.
5.78.2.2

void doasvm_feature_extraction::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_feature_extraction_config > (p. 730).

© 2005-2019 HörTech gGmbH, Oldenburg

5.79

doasvm_feature_extraction_config Class Reference

5.78.2.3

void doasvm_feature_extraction::release (
void ) [inline], [virtual]

Reimplemented
(p. 731).
5.78.2.4
5.78.3

285

from

MHAPlugin::plugin_t<

doasvm_feature_extraction_config

>

void doasvm_feature_extraction::update_cfg ( ) [private]
Member Data Documentation

5.78.3.1 MHAParser::int_t doasvm_feature_extraction::fftlen
5.78.3.2 MHAParser::int_t doasvm_feature_extraction::max_lag
5.78.3.3 MHAParser::int_t doasvm_feature_extraction::nupsample
5.78.3.4 MHAParser::string_t doasvm_feature_extraction::vGCC_name
5.78.3.5 MHAEvents::patchbay_t
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.79

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-2019 HörTech gGmbH, Oldenburg

286

5.79.1

CONTENTS

Constructor & Destructor Documentation

5.79.1.1

doasvm_feature_extraction_config::doasvm_feature_extraction_config (
algo_comm_t & ac,
const mhaconfig_t in_cfg,
doasvm_feature_extraction ∗ _doagcc )

5.79.1.2

doasvm_feature_extraction_config::∼doasvm_feature_extraction_config ( )

5.79.2

Member Function Documentation

5.79.2.1 mha_wave_t ∗ doasvm_feature_extraction_config::process (
mha_wave_t ∗ wave )
5.79.3

Member Data Documentation

5.79.3.1 doasvm_feature_extraction∗ doasvm_feature_extraction_config::doagcc
5.79.3.2

unsigned int doasvm_feature_extraction_config::wndlen

5.79.3.3

unsigned int doasvm_feature_extraction_config::fftlen

5.79.3.4

unsigned int doasvm_feature_extraction_config::G_length

5.79.3.5

unsigned int doasvm_feature_extraction_config::GCC_start

5.79.3.6

unsigned int doasvm_feature_extraction_config::GCC_end

5.79.3.7 MHA_AC::waveform_t doasvm_feature_extraction_config::vGCC_ac
5.79.3.8 mha_fft_t doasvm_feature_extraction_config::fft
5.79.3.9 mha_fft_t doasvm_feature_extraction_config::ifft
5.79.3.10

double doasvm_feature_extraction_config::hifftwin_sum

5.79.3.11 MHASignal::waveform_t doasvm_feature_extraction_config::proc_wave
5.79.3.12 MHASignal::waveform_t doasvm_feature_extraction_config::hwin
5.79.3.13 MHASignal::waveform_t doasvm_feature_extraction_config::hifftwin
5.79.3.14 MHASignal::waveform_t doasvm_feature_extraction_config::vGCC
5.79.3.15 MHASignal::spectrum_t doasvm_feature_extraction_config::in_spec
5.79.3.16 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-2019 HörTech gGmbH, Oldenburg

5.80

droptect_t Class Reference

5.80

droptect_t Class Reference

287

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-2019 HörTech gGmbH, Oldenburg

288
•
•
•
•

CONTENTS

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.80.1

Detailed Description

Detect dropouts in a signal with a constant spectrum.

5.80.2

5.80.2.1

Constructor & Destructor Documentation

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.80.3

5.80.3.1

Member Function Documentation

void droptect_t::prepare (
mhaconfig_t & signal_info ) [virtual]

Implements MHAPlugin::plugin_t< int > (p. 730).

5.80.3.2

void droptect_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< int > (p. 731).
© 2005-2019 HörTech gGmbH, Oldenburg

5.80

droptect_t Class Reference

289

5.80.3.3 mha_spec_t ∗ droptect_t::process (
mha_spec_t ∗ signal )

5.80.4

Member Data Documentation

5.80.4.1 MHAParser::vint_mon_t droptect_t::dropouts [private]

5.80.4.2 MHAParser::vint_mon_t droptect_t::consecutive_dropouts [private]

5.80.4.3 MHAParser::int_mon_t droptect_t::blocks [private]

5.80.4.4 MHAParser::bool_t droptect_t::reset [private]

5.80.4.5 MHAParser::float_t droptect_t::threshold [private]

5.80.4.6 MHASignal::waveform_t∗ droptect_t::current_powspec [private]

5.80.4.7 MHASignal::waveform_t∗ droptect_t::filtered_powspec [private]

5.80.4.8 MHAParser::float_t droptect_t::tau [private]

5.80.4.9

5.80.4.10

std::vector droptect_t::filter_activated [private]

float droptect_t::period [private]

The period of the process callback.

5.80.4.11 MHAParser::mfloat_mon_t droptect_t::filtered_powspec_mon [private]
User access to filtered spectrum.

5.80.4.12 MHAParser::float_mon_t droptect_t::level_mon [private]
The documentation for this class was generated from the following file:

• droptect.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

290

5.81

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.81.1

Constructor & Destructor Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

5.82

dynamiclib_t Class Reference

5.81.1.1

291

ds_t::ds_t (
algo_comm_t iac,
std::string ,
std::string )

5.81.2

Member Function Documentation

5.81.2.1 mha_wave_t ∗ ds_t::process (
mha_wave_t ∗ s )
5.81.2.2

void ds_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< MHASignal::waveform_t > (p. 730).
5.81.2.3

void ds_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< MHASignal::waveform_t > (p. 731).

5.81.3

Member Data Documentation

5.81.3.1 MHAParser::int_t ds_t::ratio [private]
5.81.3.2 MHAFilter::iir_filter_t ds_t::antialias [private]
The documentation for this class was generated from the following file:
• downsample.cpp

5.82

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

© 2005-2019 HörTech gGmbH, Oldenburg

292

CONTENTS

Private Attributes
• std::string fullname
• std::string modulename
• mha_libhandle_t h

5.82.1

Constructor & Destructor Documentation

5.82.1.1

dynamiclib_t::dynamiclib_t (
const std::string & n )

5.82.1.2

dynamiclib_t::∼dynamiclib_t ( )

5.82.2

Member Function Documentation

5.82.2.1

void ∗ dynamiclib_t::resolve (
const std::string & n )

5.82.2.2

void ∗ dynamiclib_t::resolve_checked (
const std::string & n )

5.82.2.3

const std::string& dynamiclib_t::getmodulename ( ) const [inline]

5.82.2.4

const std::string& dynamiclib_t::getname ( ) const [inline]

5.82.3

Member Data Documentation

5.82.3.1

std::string dynamiclib_t::fullname [private]

5.82.3.2

std::string dynamiclib_t::modulename [private]

5.82.3.3 mha_libhandle_t dynamiclib_t::h [private]
The documentation for this class was generated from the following files:
• mha_os.h
• mha_os.cpp

5.83

DynComp::dc_afterburn_rt_t Class Reference

Real-time class for after burn effect.
© 2005-2019 HörTech gGmbH, Oldenburg

5.83

DynComp::dc_afterburn_rt_t Class Reference

293

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.83.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.83.2
5.83.2.1

5.83.3
5.83.3.1

Constructor & Destructor Documentation
DynComp::dc_afterburn_rt_t::dc_afterburn_rt_t (
const std::vector< float > & cf,
unsigned int channels,
float srate,
const dc_afterburn_vars_t & vars )
Member Function Documentation
void DynComp::dc_afterburn_rt_t::burn (
float & Gin,
float Lin,
unsigned int band,
unsigned int channel ) [inline]

gain modifier method (afterburn).
Parameters
Gin

Linear gain.

Lin
Input level (Pascal).
band
Filter band number.
channel
Channel
number.
© 2005-2019 HörTech
gGmbH,
Oldenburg

294

CONTENTS

Output level for MPO is estimated by Gin ∗ Lin.

5.83.4

Member Data Documentation

5.83.4.1

std::vector DynComp::dc_afterburn_rt_t::drain_inv [private]

5.83.4.2

std::vector DynComp::dc_afterburn_rt_t::conflux [private]

5.83.4.3

std::vector DynComp::dc_afterburn_rt_t::maxgain [private]

5.83.4.4

std::vector DynComp::dc_afterburn_rt_t::mpo_inv [private]

5.83.4.5

std::vector DynComp::dc_afterburn_rt_t::lp [private]

The documentation for this class was generated from the following files:
• dc_afterburn.h
• dc_afterburn.cpp

5.84

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.84

DynComp::dc_afterburn_t Class Reference

295

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

Additional Inherited Members
5.84.1

Detailed Description

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

5.84.2
5.84.2.1
5.84.3

Constructor & Destructor Documentation
DynComp::dc_afterburn_t::dc_afterburn_t ( )
Member Function Documentation

5.84.3.1

void DynComp::dc_afterburn_t::set_fb_pars (
const std::vector< float > & cf,
unsigned int channels,
float srate )

5.84.3.2

void DynComp::dc_afterburn_t::unset_fb_pars ( )

5.84.3.3

void DynComp::dc_afterburn_t::update_burner ( ) [inline]

© 2005-2019 HörTech gGmbH, Oldenburg

296

5.84.3.4

void DynComp::dc_afterburn_t::burn (
float & Gin,
float Lin,
unsigned int band,
unsigned int channel ) [inline]

5.84.3.5

void DynComp::dc_afterburn_t::update ( ) [private]

5.84.4

CONTENTS

Member Data Documentation

5.84.4.1 MHAEvents::patchbay_t DynComp::dc_afterburn_t::patchbay
[private]

5.84.4.2

std::vector DynComp::dc_afterburn_t::_cf [private]

5.84.4.3

unsigned int DynComp::dc_afterburn_t::_channels [private]

5.84.4.4

float DynComp::dc_afterburn_t::_srate [private]

5.84.4.5

bool DynComp::dc_afterburn_t::commit_pending [private]

5.84.4.6

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.85

DynComp::dc_afterburn_vars_t Class Reference

Variables for dc_afterburn_t (p. 294) class.
© 2005-2019 HörTech gGmbH, Oldenburg

5.85

DynComp::dc_afterburn_vars_t Class Reference

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

Additional Inherited Members
5.85.1

Detailed Description

Variables for dc_afterburn_t (p. 294) class.
© 2005-2019 HörTech gGmbH, Oldenburg

297

298

5.85.2

Constructor & Destructor Documentation

5.85.2.1

5.85.3

CONTENTS

DynComp::dc_afterburn_vars_t::dc_afterburn_vars_t ( )

Member Data Documentation

5.85.3.1 MHAParser::vfloat_t DynComp::dc_afterburn_vars_t::f

5.85.3.2 MHAParser::vfloat_t DynComp::dc_afterburn_vars_t::drain

5.85.3.3 MHAParser::vfloat_t DynComp::dc_afterburn_vars_t::conflux

5.85.3.4 MHAParser::vfloat_t DynComp::dc_afterburn_vars_t::maxgain

5.85.3.5 MHAParser::vfloat_t DynComp::dc_afterburn_vars_t::mpo

5.85.3.6 MHAParser::float_t DynComp::dc_afterburn_vars_t::taugain

5.85.3.7 MHAParser::kw_t DynComp::dc_afterburn_vars_t::commit

5.85.3.8 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.86

DynComp::gaintable_t Class Reference

Gain table class.
© 2005-2019 HörTech gGmbH, Oldenburg

5.86

DynComp::gaintable_t Class Reference

299

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

Private Attributes
•
•
•
•
•
•
•

5.86.1

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

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. 301) member function via a gain
prescription rule from an auditory profile.
© 2005-2019 HörTech gGmbH, Oldenburg

300

5.86.2
5.86.2.1

CONTENTS

Constructor & Destructor Documentation
gaintable_t::gaintable_t (
const std::vector< mha_real_t > & LInput,
const std::vector< mha_real_t > & FCenter,
unsigned int channels )

Constructor.

© 2005-2019 HörTech gGmbH, Oldenburg

5.86

DynComp::gaintable_t Class Reference

301

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.86.2.2
5.86.3
5.86.3.1

gaintable_t::∼gaintable_t ( )
Member Function Documentation
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.86.3.2 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.86.3.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

© 2005-2019 HörTech gGmbH, Oldenburg

302

CONTENTS

Parameters
band
channel

5.86.3.4

Input frequency band
Audio channel

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.86.3.5

unsigned int DynComp::gaintable_t::nbands ( ) const [inline]

Return number of frequency bands.
5.86.3.6

unsigned int DynComp::gaintable_t::nchannels ( ) const [inline]

Return number of audio channels.
5.86.3.7

std::vector< std::vector< mha_real_t > > gaintable_t::get_iofun ( ) const

Return current input-output function.
5.86.3.8

std::vector DynComp::gaintable_t::get_vL ( ) const [inline]

5.86.3.9

std::vector DynComp::gaintable_t::get_vF ( ) const [inline]

5.86.4

Member Data Documentation

5.86.4.1

unsigned int DynComp::gaintable_t::num_L [private]

5.86.4.2

unsigned int DynComp::gaintable_t::num_F [private]

5.86.4.3

unsigned int DynComp::gaintable_t::num_channels [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.87

example1_t Class Reference

303

5.86.4.4

std::vector DynComp::gaintable_t::vL [private]

5.86.4.5

std::vector DynComp::gaintable_t::vF [private]

5.86.4.6

std::vector DynComp::gaintable_t::vFlog [private]

5.86.4.7

std::vector > > DynComp::gaintable_t::data
[private]

The documentation for this class was generated from the following files:

• gaintable.h
• gaintable.cpp

5.87

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

© 2005-2019 HörTech gGmbH, Oldenburg

304

CONTENTS

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.

Additional Inherited Members
5.87.1

Detailed Description

This C++ class implements the simplest example plugin for the step-by-step tutorial.
It inherits from MHAPlugin::plugin_t (p. 728) for correct integration in the configuration language interface.

5.87.2
5.87.2.1

Constructor & Destructor Documentation
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.87.3
5.87.3.1

Member Function Documentation
void example1_t::release (
void ) [inline], [virtual]

Release may be empty.
Reimplemented from MHAPlugin::plugin_t< int > (p. 731).
5.87.3.2

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-2019 HörTech gGmbH, Oldenburg

5.88

example2_t Class Reference

305

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. 730).
5.87.3.3 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.88

example2_t Class Reference

This C++ class implements the second example plugin for the step-by-step tutorial.
© 2005-2019 HörTech gGmbH, Oldenburg

306

CONTENTS

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-2019 HörTech gGmbH, Oldenburg

5.88

example2_t Class Reference

307

Additional Inherited Members
5.88.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.88.2
5.88.2.1

Constructor & Destructor Documentation
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.88.3
5.88.3.1

Member Function Documentation
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. 730).
5.88.3.2

void example2_t::release (
void ) [virtual]

Undo restrictions posed in prepare.
Reimplemented from MHAPlugin::plugin_t< int > (p. 731).
© 2005-2019 HörTech gGmbH, Oldenburg

308

CONTENTS

5.88.3.3 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.88.4

Member Data Documentation

5.88.4.1 MHAParser::int_t example2_t::scale_ch [private]

Index of audio channel to scale.

5.88.4.2 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.89

example3_t Class Reference

A Plugin class using the openMHA Event mechanism.
© 2005-2019 HörTech gGmbH, Oldenburg

5.89

example3_t Class Reference

309

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.

Private Member Functions
•
•
•
•

void on_scale_ch_writeaccess ()
void on_scale_ch_valuechanged ()
void on_scale_ch_readaccess ()
void on_prereadaccess ()

© 2005-2019 HörTech gGmbH, Oldenburg

310

CONTENTS

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.89.1

Detailed Description

A Plugin class using the openMHA Event mechanism.
This is the third example plugin for the step-by-step tutorial.

5.89.2
5.89.2.1

Constructor & Destructor Documentation
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.

5.89.3

Member Function Documentation

5.89.3.1

void example3_t::on_scale_ch_writeaccess ( ) [private]

5.89.3.2

void example3_t::on_scale_ch_valuechanged ( ) [private]

5.89.3.3

void example3_t::on_scale_ch_readaccess ( ) [private]

5.89.3.4

void example3_t::on_prereadaccess ( ) [private]

5.89.3.5

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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.89

example3_t Class Reference

311

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. 730).
5.89.3.6

void example3_t::release (
void ) [virtual]

Bookkeeping only.
Reimplemented from MHAPlugin::plugin_t< int > (p. 731).
5.89.3.7 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.89.4

Member Data Documentation

5.89.4.1 MHAParser::int_t example3_t::scale_ch [private]
Index of audio channel to scale.
5.89.4.2 MHAParser::float_t example3_t::factor [private]
The scaling factor applied to the selected channel.
5.89.4.3 MHAParser::int_mon_t example3_t::prepared [private]
Keep Track of the prepare/release calls.
© 2005-2019 HörTech gGmbH, Oldenburg

312

CONTENTS

5.89.4.4 MHAEvents::patchbay_t example3_t::patchbay [private]
The Event connector.
The documentation for this class was generated from the following file:
• example3.cpp

5.90

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

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.
© 2005-2019 HörTech gGmbH, Oldenburg

5.90

example4_t Class Reference

313

Private Member Functions
•
•
•
•

void on_scale_ch_writeaccess ()
void on_scale_ch_valuechanged ()
void on_scale_ch_readaccess ()
void 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.90.1

Detailed Description

A Plugin class using the spectral signal.
This is the fourth example plugin for the step-by-step tutorial.

5.90.2

5.90.2.1

Constructor & Destructor Documentation

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.
© 2005-2019 HörTech gGmbH, Oldenburg

314

5.90.3

CONTENTS

Member Function Documentation

5.90.3.1

void example4_t::on_scale_ch_writeaccess ( ) [private]

5.90.3.2

void example4_t::on_scale_ch_valuechanged ( ) [private]

5.90.3.3

void example4_t::on_scale_ch_readaccess ( ) [private]

5.90.3.4

void example4_t::on_prereadaccess ( ) [private]

5.90.3.5

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.
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. 730).
5.90.3.6

void example4_t::release (
void ) [virtual]

Bookkeeping only.
Reimplemented from MHAPlugin::plugin_t< int > (p. 731).
5.90.3.7 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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.91

example5_t Class Reference

315

Returns
Returns a pointer to the input signal structure, with a the signal modified by this plugin.
(In-place processing)

5.90.4

Member Data Documentation

5.90.4.1 MHAParser::int_t example4_t::scale_ch [private]
Index of audio channel to scale.
5.90.4.2 MHAParser::float_t example4_t::factor [private]
The scaling factor applied to the selected channel.
5.90.4.3 MHAParser::int_mon_t example4_t::prepared [private]
Keep Track of the prepare/release calls.
5.90.4.4 MHAEvents::patchbay_t example4_t::patchbay [private]
The Event connector.
The documentation for this class was generated from the following file:

• example4.cpp

5.91

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
© 2005-2019 HörTech gGmbH, Oldenburg

316

5.91.1

CONTENTS

Constructor & Destructor Documentation

5.91.1.1

5.91.2

example5_t::example5_t (
unsigned int ichannel,
unsigned int numchannels,
mha_real_t iscale )
Member Function Documentation

5.91.2.1 mha_spec_t ∗ example5_t::process (
mha_spec_t ∗ spec )
5.91.3

Member Data Documentation

5.91.3.1

unsigned int example5_t::channel [private]

5.91.3.2 mha_real_t example5_t::scale [private]
The documentation for this class was generated from the following file:
• example5.cpp

5.92

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.92

example6_t Class Reference

317

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

Additional Inherited Members
5.92.1
5.92.1.1

5.92.2

Constructor & Destructor Documentation
example6_t::example6_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )
Member Function Documentation

5.92.2.1 mha_wave_t ∗ example6_t::process (
mha_wave_t ∗ wave )
5.92.2.2

void example6_t::prepare (
mhaconfig_t & tfcfg ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 730).
5.92.2.3
5.92.3

void example6_t::update_cfg ( ) [private]
Member Data Documentation

5.92.3.1 MHAParser::int_t example6_t::channel_no [private]
5.92.3.2

float example6_t::rmsdb [private]

5.92.3.3 MHAEvents::patchbay_t example6_t::patchbay [private]
The documentation for this class was generated from the following file:
• example6.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

318

5.93

CONTENTS

expression_t Class Reference

Class for separating a string into a left hand value and a right hand value.

5.93.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

5.94

fader_if_t Class Reference

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 &)
© 2005-2019 HörTech gGmbH, Oldenburg

5.94

fader_if_t Class Reference

319

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

Additional Inherited Members
5.94.1
5.94.1.1

5.94.2

Constructor & Destructor Documentation
fader_if_t::fader_if_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )
Member Function Documentation

5.94.2.1 mha_spec_t ∗ fader_if_t::process (
mha_spec_t ∗ s )
5.94.2.2

void fader_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< spec_fader_t > (p. 730).
5.94.2.3

5.94.3

void fader_if_t::update_cfg (
void ) [private]
Member Data Documentation

5.94.3.1 MHAEvents::patchbay_t fader_if_t::patchbay [private]
5.94.3.2 MHAParser::float_t fader_if_t::tau [private]
5.94.3.3 MHAParser::vfloat_t fader_if_t::newgains [private]
5.94.3.4 mha_real_t∗ fader_if_t::actgains [private]
The documentation for this class was generated from the following file:
• fader_spec.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

320

5.95

CONTENTS

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

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.95

fader_wave::fader_wave_if_t Class Reference

321

Additional Inherited Members

5.95.1

5.95.1.1

5.95.2

Constructor & Destructor Documentation

fader_wave::fader_wave_if_t::fader_wave_if_t (
algo_comm_t iac,
const char ∗ ,
const char ∗ )
Member Function Documentation

5.95.2.1 mha_wave_t ∗ fader_wave::fader_wave_if_t::process (
mha_wave_t ∗ s )
5.95.2.2

void fader_wave::fader_wave_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< runtime_cfg_t > (p. 730).
5.95.2.3

void fader_wave::fader_wave_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< runtime_cfg_t > (p. 731).
5.95.2.4
5.95.3

void fader_wave::fader_wave_if_t::set_level ( ) [private]
Member Data Documentation

5.95.3.1 MHAParser::vfloat_t fader_wave::fader_wave_if_t::gain [private]
5.95.3.2 MHAParser::float_t fader_wave::fader_wave_if_t::ramplen [private]
5.95.3.3 MHAEvents::patchbay_t fader_wave::fader_wave_if_t::patchbay
[private]
5.95.3.4

bool fader_wave::fader_wave_if_t::prepared [private]

The documentation for this class was generated from the following file:
• fader_wave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

322

5.96

CONTENTS

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

Additional Inherited Members
5.96.1
5.96.1.1

Constructor & Destructor Documentation
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_ )

© 2005-2019 HörTech gGmbH, Oldenburg

5.97

fftfbpow::fftfbpow_interface_t Class Reference

5.96.2

323

Member Function Documentation

5.96.2.1

void fader_wave::level_adapt_t::update_frame ( )

5.96.2.2

std::vector fader_wave::level_adapt_t::get_level ( ) const [inline]

5.96.2.3

bool fader_wave::level_adapt_t::can_update ( ) const [inline]

5.96.3

Member Data Documentation

5.96.3.1

unsigned int fader_wave::level_adapt_t::ilen [private]

5.96.3.2

unsigned int fader_wave::level_adapt_t::pos [private]

5.96.3.3 MHAWindow::fun_t fader_wave::level_adapt_t::wnd [private]
5.96.3.4

std::vector fader_wave::level_adapt_t::l_new [private]

5.96.3.5

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.97

fftfbpow::fftfbpow_interface_t Class Reference

Interface class for fftfbpow plugin.
Inheritance diagram for fftfbpow::fftfbpow_interface_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< fftfbpow_t >

MHAPlugin::plugin_t
< fftfbpow_t >

MHAOvlFilter::fftfb
_vars_t

fftfbpow::fftfbpow
_interface_t

© 2005-2019 HörTech gGmbH, Oldenburg

324

CONTENTS

Public Member Functions
• fftfbpow_interface_t (const algo_comm_t &ac, const std::string &, const std::string
&algo_name)
Constructor with standard MHA constructor parameters.

• void prepare (mhaconfig_t &tf)
Standard MHA plugin prepare function.

• mha_spec_t ∗ process (mha_spec_t ∗s)
Standard MHA plugin process fct.

Private Member Functions
• void update_cfg ()
Constructs new runtime configuration in thread-safe manner.

Private Attributes
• std::string name
Configured name of this plugin instance.

• MHAEvents::patchbay_t< fftfbpow_interface_t > patchbay
Patchbay to connect to MHA configuration interface.

Additional Inherited Members
5.97.1

Detailed Description

Interface class for fftfbpow plugin.

5.97.2
5.97.2.1

Constructor & Destructor Documentation
fftfbpow::fftfbpow_interface_t::fftfbpow_interface_t (
const algo_comm_t & ac,
const std::string & ,
const std::string & algo_name )

Constructor with standard MHA constructor parameters.
Parameters
ac

Handle to algorithm communication variable space

algo_name

Configured name of this plugin instance

© 2005-2019 HörTech gGmbH, Oldenburg

5.97

fftfbpow::fftfbpow_interface_t Class Reference

5.97.3

325

Member Function Documentation

5.97.3.1

void fftfbpow::fftfbpow_interface_t::prepare (
mhaconfig_t & tf ) [virtual]

Standard MHA plugin prepare function.
Ensures that the input is in the frequency domain, calls update_cfg() (p. 325) and inserts fbpow
into the AC space.
Parameters
tf

Incoming mha configuration structure, contains information about input signal

Implements MHAPlugin::plugin_t< fftfbpow_t > (p. 730).
5.97.3.2 mha_spec_t ∗ fftfbpow::fftfbpow_interface_t::process (
mha_spec_t ∗ s )
Standard MHA plugin process fct.
Polls new config and calls process() (p. 325) of the runtime configuration.
Parameters
s

Input spectrum

Returns
Unchanged input spectrum

5.97.3.3

void fftfbpow::fftfbpow_interface_t::update_cfg (
void ) [private]

Constructs new runtime configuration in thread-safe manner.

5.97.4

5.97.4.1

Member Data Documentation

std::string fftfbpow::fftfbpow_interface_t::name [private]

Configured name of this plugin instance.
© 2005-2019 HörTech gGmbH, Oldenburg

326

CONTENTS

5.97.4.2 MHAEvents::patchbay_t fftfbpow::fftfbpow_interface_t←::patchbay [private]
Patchbay to connect to MHA configuration interface.
The documentation for this class was generated from the following file:
• fftfbpow.cpp

5.98

fftfbpow::fftfbpow_t Class Reference

Run time configuration for the fftfbpow plugin.
Inheritance diagram for fftfbpow::fftfbpow_t:

mha_wave_t

MHAOvlFilter::fspacing_t

MHASignal::waveform_t

MHAOvlFilter::fftfb_t

fftfbpow::fftfbpow_t

Public Member Functions
• fftfbpow_t (MHAOvlFilter::fftfb_vars_t &vars, unsigned int nch, unsigned int nfft, mha←_real_t fs, algo_comm_t ac, std::string name)
Constructor of the run time configuration.

Public Attributes
• MHA_AC::waveform_t fbpow
AC variable containing the estimated power in each frequency band.
© 2005-2019 HörTech gGmbH, Oldenburg

5.98

fftfbpow::fftfbpow_t Class Reference

327

Additional Inherited Members
5.98.1

Detailed Description

Run time configuration for the fftfbpow plugin.

5.98.2
5.98.2.1

Constructor & Destructor Documentation
fftfbpow::fftfbpow_t::fftfbpow_t (
MHAOvlFilter::fftfb_vars_t & vars,
unsigned int nch,
unsigned int nfft,
mha_real_t fs,
algo_comm_t ac,
std::string name )

Constructor of the run time configuration.
Parameters
vars

Set of configuration variables for FFT-based overlapping filters

nch

Number of audio input channels

nfft

Length of FFT

fs

Sampling rate

ac

AC space

name

Configured name of plugin interface, used as prefix for AC variable names

5.98.3

Member Data Documentation

5.98.3.1 MHA_AC::waveform_t fftfbpow::fftfbpow_t::fbpow

AC variable containing the estimated power in each frequency band.

The documentation for this class was generated from the following file:

• fftfbpow.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

328

5.99

CONTENTS

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 >
fftfilterbank::fftfb
_interface_t

MHAOvlFilter::fftfb
_vars_t

MHAOvlFilter::overlap
_save_filterbank_t::vars_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 ∗)

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.99.1
5.99.1.1

Constructor & Destructor Documentation
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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.99

fftfilterbank::fftfb_interface_t Class Reference

329

Parameters
ac
th
al

algorithm communication handle
chain name
algorithm name

5.99.2

Member Function Documentation

5.99.2.1

void fftfilterbank::fftfb_interface_t::prepare (
mhaconfig_t & tf ) [virtual]

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. 730).
5.99.2.2

void fftfilterbank::fftfb_interface_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< fftfb_plug_t > (p. 731).
5.99.2.3 mha_spec_t ∗ fftfilterbank::fftfb_interface_t::process (
mha_spec_t ∗ s )
5.99.2.4 mha_wave_t ∗ fftfilterbank::fftfb_interface_t::process (
mha_wave_t ∗ s )
5.99.2.5

void fftfilterbank::fftfb_interface_t::update_cfg (
void ) [private]

© 2005-2019 HörTech gGmbH, Oldenburg

330

5.99.3

CONTENTS

Member Data Documentation

5.99.3.1 MHAParser::bool_t fftfilterbank::fftfb_interface_t::return_imag [private]
5.99.3.2 MHAEvents::patchbay_t fftfilterbank::fftfb_interface_t::patchbay
[private]
5.99.3.3 MHA_AC::int_t fftfilterbank::fftfb_interface_t::nchannels [private]
5.99.3.4

std::string fftfilterbank::fftfb_interface_t::algo [private]

5.99.3.5

bool fftfilterbank::fftfb_interface_t::prepared [private]

5.99.3.6

unsigned int fftfilterbank::fftfb_interface_t::nbands [private]

The documentation for this class was generated from the following file:
• fftfilterbank.cpp

5.100

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.100

fftfilterbank::fftfb_plug_t Class Reference

331

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_

Additional Inherited Members
5.100.1
5.100.1.1

5.100.2

Constructor & Destructor Documentation
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 )
Member Function Documentation

5.100.2.1 mha_spec_t ∗ fftfilterbank::fftfb_plug_t::process (
mha_spec_t ∗ s )
5.100.2.2 mha_wave_t ∗ fftfilterbank::fftfb_plug_t::process (
mha_wave_t ∗ s )
5.100.2.3
5.100.3

void fftfilterbank::fftfb_plug_t::insert ( )
Member Data Documentation

5.100.3.1 MHAOvlFilter::fftfb_ac_info_t fftfilterbank::fftfb_plug_t::fb_acinfo [private]
5.100.3.2 MHASignal::spectrum_t fftfilterbank::fftfb_plug_t::s_out [private]
5.100.3.3 MHA_AC::waveform_t fftfilterbank::fftfb_plug_t::imag [private]
5.100.3.4

bool fftfilterbank::fftfb_plug_t::return_imag_ [private]

The documentation for this class was generated from the following file:
• fftfilterbank.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

332

5.101

CONTENTS

fshift::fshift_config_t Class Reference

fshift runtime config class

Public Member Functions
• fshift_config_t (fshift_t const ∗const plug)
C'tor of the fshift plugin runtime configuration class.

• ∼fshift_config_t ()=default
• mha_spec_t ∗ process (mha_spec_t ∗)

Private Attributes
• const unsigned int kmin
FFT bin corresponding to fmin.

• const unsigned kmax
FFT bin corresponding to fmax.

• const int df
Frequency shift expressed in FFT bins.

• const mha_complex_t delta_phi
Phase advance per fft frame.

• mha_complex_t delta_phi_total
Sum of all phase advances.

5.101.1

Detailed Description

fshift runtime config class

5.101.2
5.101.2.1

Constructor & Destructor Documentation
fshift::fshift_config_t::fshift_config_t (
fshift_t const ∗const plug ) [explicit]

C'tor of the fshift plugin runtime configuration class.
Parameters
plug

ptr to the plugin interface class. Configuration information is given this way to keep the
argument list small.

© 2005-2019 HörTech gGmbH, Oldenburg

5.101

5.101.2.2

5.101.3

fshift::fshift_config_t Class Reference

333

fshift::fshift_config_t::∼fshift_config_t ( ) [default]

Member Function Documentation

5.101.3.1 mha_spec_t ∗ fshift::fshift_config_t::process (
mha_spec_t ∗ in )

5.101.4

5.101.4.1

Member Data Documentation

const unsigned int fshift::fshift_config_t::kmin [private]

FFT bin corresponding to fmin.

5.101.4.2

const unsigned fshift::fshift_config_t::kmax [private]

FFT bin corresponding to fmax.

5.101.4.3

const int fshift::fshift_config_t::df [private]

Frequency shift expressed in FFT bins.

5.101.4.4

const mha_complex_t fshift::fshift_config_t::delta_phi [private]

Phase advance per fft frame.

5.101.4.5 mha_complex_t fshift::fshift_config_t::delta_phi_total [private]

Sum of all phase advances.
The documentation for this class was generated from the following files:

• fshift.hh
• fshift.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

334

5.102

CONTENTS

fshift::fshift_t Class Reference

fshift plugin interface class
Inheritance diagram for fshift::fshift_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< fshift_config_t >

MHAPlugin::plugin_t
< fshift_config_t >

fshift::fshift_t

Public Member Functions
• fshift_t (algo_comm_t &ac, const std::string &chain_name, const std::string &algo_←name)
Constructs our plugin.

• ∼fshift_t ()
• mha_spec_t ∗ process (mha_spec_t ∗)
Checks for the most recent configuration and defers processing to it.

• void prepare (mhaconfig_t &)
Plugin preparation.

•
•
•
•

void release (void)
mha_real_t fmin () const
mha_real_t fmax () const
mha_real_t df () const

Private Member Functions
• void update_cfg ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.102

fshift::fshift_t Class Reference

335

Private Attributes
• MHAEvents::patchbay_t< fshift_t > patchbay
patch bay for connecting configuration parser events with local member functions:

• MHAParser::float_t m_fmin
• MHAParser::float_t m_fmax
upper boundary for frequency shifter

• MHAParser::float_t m_df
Shift frequency in Hz.

Additional Inherited Members
5.102.1

Detailed Description

fshift plugin interface class

5.102.2
5.102.2.1

Constructor & Destructor Documentation
fshift::fshift_t::fshift_t (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
5.102.2.2
5.102.3

fshift::fshift_t::∼fshift_t ( )
Member Function Documentation

5.102.3.1 mha_spec_t ∗ fshift::fshift_t::process (
mha_spec_t ∗ signal )
Checks for the most recent configuration and defers processing to it.
5.102.3.2

void fshift::fshift_t::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.

© 2005-2019 HörTech gGmbH, Oldenburg

336

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< fshift_config_t > (p. 730).
5.102.3.3

void fshift::fshift_t::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< fshift_config_t > (p. 731).
5.102.3.4 mha_real_t fshift::fshift_t::fmin ( ) const [inline]
5.102.3.5 mha_real_t fshift::fshift_t::fmax ( ) const [inline]
5.102.3.6 mha_real_t fshift::fshift_t::df ( ) const [inline]
5.102.3.7

5.102.4

void fshift::fshift_t::update_cfg (
void ) [private]
Member Data Documentation

5.102.4.1 MHAEvents::patchbay_t fshift::fshift_t::patchbay [private]
patch bay for connecting configuration parser events with local member functions:
5.102.4.2 MHAParser::float_t fshift::fshift_t::m_fmin [private]
5.102.4.3 MHAParser::float_t fshift::fshift_t::m_fmax [private]
upper boundary for frequency shifter
5.102.4.4 MHAParser::float_t fshift::fshift_t::m_df [private]
Shift frequency in Hz.
The documentation for this class was generated from the following files:
• fshift.hh
• fshift.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.103

fshift_hilbert::frequency_translator_t Class Reference

5.103

fshift_hilbert::frequency_translator_t Class Reference

337

Inheritance diagram for fshift_hilbert::frequency_translator_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< hilbert_shifter_t >

MHAPlugin::plugin_t
< hilbert_shifter_t >

fshift_hilbert::frequency
_translator_t

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
Vector containing the shift frequencies in Hz.

• MHAParser::float_t fmin
Lower boundary for frequency shifter.
© 2005-2019 HörTech gGmbH, Oldenburg

338

CONTENTS

• MHAParser::float_t fmax
Upper boundary for frequency shifter.

• MHAParser::int_t irslen
Maximum length of cut off filter response.

• MHAParser::kw_t phasemode
Mode of gain smoothing.

Additional Inherited Members

5.103.1

5.103.1.1

5.103.2

Constructor & Destructor Documentation

fshift_hilbert::frequency_translator_t::frequency_translator_t (
const algo_comm_t & iac,
const std::string & ith,
const std::string & ial )
Member Function Documentation

5.103.2.1 mha_spec_t ∗ fshift_hilbert::frequency_translator_t::process (
mha_spec_t ∗ s )
5.103.2.2

void fshift_hilbert::frequency_translator_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< hilbert_shifter_t > (p. 730).
5.103.2.3

void fshift_hilbert::frequency_translator_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< hilbert_shifter_t > (p. 731).
5.103.2.4
5.103.3

void fshift_hilbert::frequency_translator_t::update ( ) [private]
Member Data Documentation

5.103.3.1 MHAEvents::patchbay_t fshift_hilbert::frequency_←translator_t::patchbay [private]
5.103.3.2 MHAParser::vfloat_t fshift_hilbert::frequency_translator_t::df [private]
Vector containing the shift frequencies in Hz.
© 2005-2019 HörTech gGmbH, Oldenburg

5.104

fshift_hilbert::hilbert_shifter_t Class Reference

339

5.103.3.3 MHAParser::float_t fshift_hilbert::frequency_translator_t::fmin [private]
Lower boundary for frequency shifter.
5.103.3.4 MHAParser::float_t fshift_hilbert::frequency_translator_t::fmax [private]
Upper boundary for frequency shifter.
5.103.3.5 MHAParser::int_t fshift_hilbert::frequency_translator_t::irslen [private]
Maximum length of cut off filter response.
5.103.3.6 MHAParser::kw_t fshift_hilbert::frequency_translator_t::phasemode [private]
Mode of gain smoothing.
The documentation for this class was generated from the following file:

• fshift_hilbert.cpp

5.104

fshift_hilbert::hilbert_shifter_t Class Reference

Inheritance diagram for fshift_hilbert::hilbert_shifter_t:

mha_spec_t

MHASignal::spectrum_t

fshift_hilbert::hilbert
_shifter_t

© 2005-2019 HörTech gGmbH, Oldenburg

340

CONTENTS

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
Part of the spectrum to be frequency shifted.

• MHASignal::spectrum_t analytic
Analytic signal, defined as a(t)=x(t)+i∗H(x(t))

• MHASignal::waveform_t shifted
The frequency shifted signal in the time domain.

• MHASignal::spectrum_t mixw_shift
Helper varaible containing the coefficients used to split the spectrum.

• MHASignal::spectrum_t mixw_ref
Helper varaible containing the coefficients used to split the spectrum.

• fftw_plan plan_spec2analytic
FFT plan for the transformation of fullspec into the time domain.

• mha_fft_t mhafft
MHA wrapper object for fftw.

• MHASignal::waveform_t df
Vector holding one delta f value for every channel.

• unsigned int kmin
FFT frame that corresponds to f_min.

• unsigned int kmax
FFT frame that corresponds to f_max.

• unsigned int frameshift
Total phase advance within one fragment.

• std::vector< mha_complex_t > delta_phi
Phase advance per frame.

• std::vector< mha_complex_t > delta_phi_total
Sum of all phase advances.

Additional Inherited Members

5.104.1

Constructor & Destructor Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

5.104

fshift_hilbert::hilbert_shifter_t Class Reference

5.104.1.1

fshift_hilbert::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 )

5.104.1.2

fshift_hilbert::hilbert_shifter_t::∼hilbert_shifter_t ( )

5.104.2

5.104.2.1

5.104.3

341

Member Function Documentation

void fshift_hilbert::hilbert_shifter_t::process (
mha_spec_t ∗ s )
Member Data Documentation

5.104.3.1 MHASignal::spectrum_t fshift_hilbert::hilbert_shifter_t::fullspec [private]
Part of the spectrum to be frequency shifted.
5.104.3.2 MHASignal::spectrum_t fshift_hilbert::hilbert_shifter_t::analytic [private]
Analytic signal, defined as a(t)=x(t)+i∗H(x(t))
5.104.3.3 MHASignal::waveform_t fshift_hilbert::hilbert_shifter_t::shifted [private]
The frequency shifted signal in the time domain.
5.104.3.4 MHASignal::spectrum_t fshift_hilbert::hilbert_shifter_t::mixw_shift [private]
Helper varaible containing the coefficients used to split the spectrum.
Contains 1 for every fft bin to be frequency shifted, 0 for all others
5.104.3.5 MHASignal::spectrum_t fshift_hilbert::hilbert_shifter_t::mixw_ref [private]
Helper varaible containing the coefficients used to split the spectrum.
Contains 0 for every fft bin to be frequency shifted, 1 for all others
© 2005-2019 HörTech gGmbH, Oldenburg

342

5.104.3.6

CONTENTS

fftw_plan fshift_hilbert::hilbert_shifter_t::plan_spec2analytic [private]

FFT plan for the transformation of fullspec into the time domain.

5.104.3.7 mha_fft_t fshift_hilbert::hilbert_shifter_t::mhafft [private]
MHA wrapper object for fftw.

5.104.3.8 MHASignal::waveform_t fshift_hilbert::hilbert_shifter_t::df [private]
Vector holding one delta f value for every channel.

5.104.3.9

unsigned int fshift_hilbert::hilbert_shifter_t::kmin [private]

FFT frame that corresponds to f_min.

5.104.3.10

unsigned int fshift_hilbert::hilbert_shifter_t::kmax [private]

FFT frame that corresponds to f_max.

5.104.3.11

unsigned int fshift_hilbert::hilbert_shifter_t::frameshift [private]

Total phase advance within one fragment.

5.104.3.12

std::vector fshift_hilbert::hilbert_shifter_t::delta_phi [private]

Phase advance per frame.

5.104.3.13

std::vector fshift_hilbert::hilbert_shifter_t::delta_phi_total
[private]

Sum of all phase advances.
The documentation for this class was generated from the following file:

• fshift_hilbert.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.105

fw_t Class Reference

5.105

fw_t Class Reference

343

Inheritance diagram for fw_t:

MHAParser::base_t

MHAParser::parser_t

fw_t

mhaserver_t

Public Member Functions
• fw_t ()
• ∼fw_t ()
• bool exit_request () const

Protected Attributes
• int proc_error
• int io_error

Private Types
Private Member Functions
• void prepare ()
preparation for processing

• void start ()
start of processing

• void stop ()
© 2005-2019 HörTech gGmbH, Oldenburg

344

CONTENTS

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 ()

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.105
•
•
•
•
•
•

fw_t Class Reference

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.105.1

5.105.1.1

Member Enumeration Documentation

enum fw_t::state_t [private]

Enumerator
fw_unprepared
fw_stopped
fw_starting
fw_running
fw_stopping
fw_exiting

5.105.2

Constructor & Destructor Documentation

5.105.2.1

fw_t::fw_t ( )

5.105.2.2

fw_t::∼fw_t ( )

5.105.3

Member Function Documentation

5.105.3.1

bool fw_t::exit_request ( ) const [inline]

5.105.3.2

void fw_t::prepare (
void ) [private]

preparation for processing
5.105.3.3

void fw_t::start ( ) [private]

start of processing
© 2005-2019 HörTech gGmbH, Oldenburg

345

346

5.105.3.4

CONTENTS

void fw_t::stop ( ) [private]

stop/pause of processing
5.105.3.5

void fw_t::release ( ) [private]

release of IO device
5.105.3.6

void fw_t::quit ( ) [private]

controlled quit
5.105.3.7

static void fw_t::stopped (
void ∗ h,
int proc_err,
int io_err ) [inline], [static], [private]

5.105.3.8

static void fw_t::started (
void ∗ h ) [inline], [static], [private]

5.105.3.9

static int fw_t::process (
void ∗ h,
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [inline], [static], [private]

5.105.3.10

void fw_t::stopped (
int proc_err,
int io_err ) [private]

5.105.3.11

void fw_t::started ( ) [private]

5.105.3.12

int fw_t::process (
mha_wave_t ∗ s_in,
mha_wave_t ∗∗ s_out ) [private]

5.105.3.13

void fw_t::exec_fw_command ( ) [private]

5.105.3.14

void fw_t::load_proc_lib ( ) [private]

5.105.3.15

void fw_t::load_io_lib ( ) [private]

5.105.3.16

void fw_t::fw_sleep_cmd ( ) [private]

5.105.3.17

void fw_t::fw_until_cmd ( ) [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.105

fw_t Class Reference

5.105.3.18

void fw_t::get_input_signal_dimension ( ) [private]

5.105.3.19

void fw_t::async_read ( ) [inline], [private]

5.105.3.20

void fw_t::async_poll_msg ( ) [private]

5.105.3.21

void fw_t::get_parserstate ( ) [private]

5.105.4

Member Data Documentation

5.105.4.1 fw_vars_t fw_t::prepare_vars [private]
5.105.4.2 MHAParser::int_mon_t fw_t::nchannels_out [private]
5.105.4.3 MHAParser::string_t fw_t::proc_name [private]
5.105.4.4 MHAParser::string_t fw_t::io_name [private]
5.105.4.5 MHAParser::bool_t fw_t::exit_on_stop [private]
5.105.4.6 MHAParser::int_t fw_t::fw_sleep [private]
5.105.4.7 MHAParser::string_t fw_t::fw_until [private]
5.105.4.8 MHAParser::kw_t fw_t::fw_cmd [private]
5.105.4.9 MHAParser::string_mon_t fw_t::parserstate [private]
5.105.4.10 MHAParser::string_t fw_t::errorlog [private]
5.105.4.11 MHAParser::string_t fw_t::fatallog [private]
5.105.4.12 MHAParser::vstring_t fw_t::plugins [private]
5.105.4.13 MHAParser::vstring_t fw_t::plugin_paths [private]
5.105.4.14 MHAParser::bool_t fw_t::dump_mha [private]
5.105.4.15 MHAParser::string_t fw_t::inst_name [private]
A variable for naming MHA instances.
© 2005-2019 HörTech gGmbH, Oldenburg

347

348

CONTENTS

5.105.4.16 MHAKernel::algo_comm_class_t fw_t::ac [private]
5.105.4.17 PluginLoader::mhapluginloader_t∗ fw_t::proc_lib [private]
5.105.4.18 io_lib_t∗ fw_t::io_lib [private]
5.105.4.19 mhaconfig_t fw_t::cfin [private]
5.105.4.20 mhaconfig_t fw_t::cfout [private]
5.105.4.21 state_t fw_t::state [private]
5.105.4.22

bool fw_t::b_exit_request [private]

5.105.4.23

int fw_t::proc_error [protected]

5.105.4.24

int fw_t::io_error [protected]

5.105.4.25 MHAParser::string_mon_t fw_t::proc_error_string [private]
5.105.4.26 MHAEvents::patchbay_t fw_t::patchbay [private]
The documentation for this class was generated from the following files:
• mhafw_lib.h
• mhafw_lib.cpp

5.106

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.106

fw_vars_t Class Reference

5.106.1

Constructor & Destructor Documentation

5.106.1.1

5.106.2

fw_vars_t::fw_vars_t (
MHAParser::parser_t & p )

Member Function Documentation

5.106.2.1

void fw_vars_t::lock_srate_fragsize ( )

5.106.2.2

void fw_vars_t::lock_channels ( )

5.106.2.3

void fw_vars_t::unlock_srate_fragsize ( )

5.106.2.4

void fw_vars_t::unlock_channels ( )

5.106.3

349

Member Data Documentation

5.106.3.1 MHAParser::int_t fw_vars_t::pinchannels

5.106.3.2 MHAParser::int_t fw_vars_t::pfragmentsize

5.106.3.3 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-2019 HörTech gGmbH, Oldenburg

350

5.107

CONTENTS

gain::gain_if_t Class Reference

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-2019 HörTech gGmbH, Oldenburg

5.107

gain::gain_if_t Class Reference

351

Additional Inherited Members
5.107.1
5.107.1.1

5.107.2

Constructor & Destructor Documentation
gain::gain_if_t::gain_if_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )
Member Function Documentation

5.107.2.1 mha_wave_t ∗ gain::gain_if_t::process (
mha_wave_t ∗ s )
5.107.2.2 mha_spec_t ∗ gain::gain_if_t::process (
mha_spec_t ∗ s )
5.107.2.3

void gain::gain_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< scaler_t > (p. 730).
5.107.2.4

void gain::gain_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< scaler_t > (p. 731).
5.107.2.5

void gain::gain_if_t::update_gain ( ) [private]

5.107.2.6

void gain::gain_if_t::update_bbgain ( ) [private]

5.107.2.7

void gain::gain_if_t::update_minmax ( ) [private]

5.107.3

Member Data Documentation

5.107.3.1 MHAEvents::patchbay_t gain::gain_if_t::patchbay [private]
5.107.3.2 MHAParser::vfloat_t gain::gain_if_t::gains [private]
5.107.3.3 MHAParser::float_t gain::gain_if_t::bbgain [private]
5.107.3.4 MHAParser::float_t gain::gain_if_t::vmin [private]
5.107.3.5 MHAParser::float_t gain::gain_if_t::vmax [private]
The documentation for this class was generated from the following file:
• gain.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

352

5.108

CONTENTS

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.108.1

Constructor & Destructor Documentation

5.108.1.1

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

5.109

gtfb_analyzer::gtfb_analyzer_cfg_t Struct Reference

Configuration for Gammatone Filterbank Analyzer.
© 2005-2019 HörTech gGmbH, Oldenburg

5.109

gtfb_analyzer::gtfb_analyzer_cfg_t Struct Reference

353

Public Member Functions
• unsigned bands () const
Each band is split into this number of bands.

• unsigned channels () const
The number of separate audio channels.

• unsigned frames () const
The number of frames in one chunk.

• mha_complex_t ∗ states (unsigned channel, unsigned band)
Returns pointer to filter states for that band.

• gtfb_analyzer_cfg_t (unsigned ch, unsigned frames, unsigned ord, const std::vector<
mha_complex_t > &_coeff, const std::vector< mha_complex_t > &_norm_phase)
Create a configuration for Gammatone Filterbank Analyzer.

• ∼gtfb_analyzer_cfg_t ()
• mha_complex_t & cvalue (unsigned frame, unsigned channel, unsigned band)

Public Attributes
• unsigned order
The order of the gammatone filters.

• std::vector< mha_complex_t > coeff
The complex coefficients of the gammatone filter bands.

• std::vector< mha_complex_t > norm_phase
Combination of normalization and phase correction factor.

• mha_wave_t s_out
Storage for the (complex) output signal.

• std::vector< mha_complex_t > state
Storage for Filter state.

5.109.1

Detailed Description

Configuration for Gammatone Filterbank Analyzer.

5.109.2
5.109.2.1

Constructor & Destructor Documentation
gtfb_analyzer::gtfb_analyzer_cfg_t::gtfb_analyzer_cfg_t (
unsigned ch,
unsigned frames,
unsigned ord,
const std::vector< mha_complex_t > & _coeff,
const std::vector< mha_complex_t > & _norm_phase ) [inline]

Create a configuration for Gammatone Filterbank Analyzer.

© 2005-2019 HörTech gGmbH, Oldenburg

354

CONTENTS

Parameters
ch
frames

Number of Audio channels.
Number of Audio frames per chunk.

ord

The order of the gammatone filters.

_coeff

Complex gammatone filter coefficients.

_norm_phase

Normalization and phase correction factors.

5.109.2.2
5.109.3
5.109.3.1

gtfb_analyzer::gtfb_analyzer_cfg_t::∼gtfb_analyzer_cfg_t ( ) [inline]
Member Function Documentation
unsigned gtfb_analyzer::gtfb_analyzer_cfg_t::bands ( ) const [inline]

Each band is split into this number of bands.
5.109.3.2

unsigned gtfb_analyzer::gtfb_analyzer_cfg_t::channels ( ) const [inline]

The number of separate audio channels.
5.109.3.3

unsigned gtfb_analyzer::gtfb_analyzer_cfg_t::frames ( ) const [inline]

The number of frames in one chunk.
5.109.3.4 mha_complex_t∗ gtfb_analyzer::gtfb_analyzer_cfg_t::states (
unsigned channel,
unsigned band ) [inline]
Returns pointer to filter states for that band.
5.109.3.5 mha_complex_t& gtfb_analyzer::gtfb_analyzer_cfg_t::cvalue (
unsigned frame,
unsigned channel,
unsigned band ) [inline]
5.109.4
5.109.4.1

Member Data Documentation
unsigned gtfb_analyzer::gtfb_analyzer_cfg_t::order

The order of the gammatone filters.
5.109.4.2

std::vector gtfb_analyzer::gtfb_analyzer_cfg_t::coeff

The complex coefficients of the gammatone filter bands.
© 2005-2019 HörTech gGmbH, Oldenburg

5.110

gtfb_analyzer::gtfb_analyzer_t Class Reference

5.109.4.3

355

std::vector gtfb_analyzer::gtfb_analyzer_cfg_t::norm_phase

Combination of normalization and phase correction factor.

5.109.4.4 mha_wave_t gtfb_analyzer::gtfb_analyzer_cfg_t::s_out

Storage for the (complex) output signal.

Each of the real input audio channels is split into frequency bands with complex time signal
output. The split complex time signal is again stored in a mha_wave_t (p. 496) buffer. Each
complex time signal is stored as adjacent real and imaginary channels. Complex output from
one source channel is stored in adjacent complex output channels.

Example: If the input has 2 channels ch0 ch1, and gtfb_analyzer (p. 88) splits into 3 bands b0
b1 b2, then the order of output channels in s_out is: ch0_b0_real ch0_b0_imag ch0_b1_real
ch0_b1_imag ch0_b2_real ch0_b2_imag ch1_b0_real ch1_b1_imag ch1_b1_real ch1_b1_←imag ch1_b2_real ch1_b2_imag

5.109.4.5

std::vector gtfb_analyzer::gtfb_analyzer_cfg_t::state

Storage for Filter state.

Holds channels() (p. 354) ∗ bands() (p. 354) ∗ order complex filter states.
: state[(bands() (p. 354)∗channel+band)∗order+stage]

The documentation for this struct was generated from the following file:

• gtfb_analyzer.cpp

5.110

gtfb_analyzer::gtfb_analyzer_t Class Reference

Gammatone Filterbank Analyzer Plugin.
© 2005-2019 HörTech gGmbH, Oldenburg

Layout←-

356

CONTENTS

Inheritance diagram for gtfb_analyzer::gtfb_analyzer_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< gtfb_analyzer_cfg_t >

MHAPlugin::plugin_t
< gtfb_analyzer_cfg_t >

gtfb_analyzer::gtfb
_analyzer_t

Public Member Functions
• gtfb_analyzer_t (const algo_comm_t &, const std::string &thread_name, const std←::string &algo_name)
• mha_wave_t ∗ process (mha_wave_t ∗)
• void prepare (mhaconfig_t &)

Private Member Functions
• void update_cfg ()

Private Attributes
•
•
•
•
•

MHAEvents::patchbay_t< gtfb_analyzer_t > patchbay
bool prepared
MHAParser::int_t order
MHAParser::vcomplex_t coeff
MHAParser::vcomplex_t norm_phase
© 2005-2019 HörTech gGmbH, Oldenburg

5.110

gtfb_analyzer::gtfb_analyzer_t Class Reference

357

Additional Inherited Members
5.110.1

Detailed Description

Gammatone Filterbank Analyzer Plugin.

5.110.2
5.110.2.1

5.110.3

Constructor & Destructor Documentation
gtfb_analyzer::gtfb_analyzer_t::gtfb_analyzer_t (
const algo_comm_t & iac,
const std::string & thread_name,
const std::string & algo_name )
Member Function Documentation

5.110.3.1 mha_wave_t ∗ gtfb_analyzer::gtfb_analyzer_t::process (
mha_wave_t ∗ s )
5.110.3.2

void gtfb_analyzer::gtfb_analyzer_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< gtfb_analyzer_cfg_t > (p. 730).
5.110.3.3

5.110.4

void gtfb_analyzer::gtfb_analyzer_t::update_cfg (
void ) [private]
Member Data Documentation

5.110.4.1 MHAEvents::patchbay_t gtfb_analyzer::gtfb_analyzer_t::patchbay
[private]
5.110.4.2

bool gtfb_analyzer::gtfb_analyzer_t::prepared [private]

5.110.4.3 MHAParser::int_t gtfb_analyzer::gtfb_analyzer_t::order [private]
5.110.4.4 MHAParser::vcomplex_t gtfb_analyzer::gtfb_analyzer_t::coeff [private]
5.110.4.5 MHAParser::vcomplex_t gtfb_analyzer::gtfb_analyzer_t::norm_phase [private]
The documentation for this class was generated from the following file:
• gtfb_analyzer.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

358

5.111

CONTENTS

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.111.1

Constructor & Destructor Documentation

5.111.1.1

hanning_ramps_t::hanning_ramps_t (
unsigned int la,
unsigned int lb )

5.111.1.2

hanning_ramps_t::∼hanning_ramps_t (
void )

5.111.2
5.111.2.1

5.111.3

Member Function Documentation
void hanning_ramps_t::operator() (
MHASignal::waveform_t & b )
Member Data Documentation

5.111.3.1

unsigned int hanning_ramps_t::len_a [private]

5.111.3.2

unsigned int hanning_ramps_t::len_b [private]

5.111.3.3 mha_real_t∗ hanning_ramps_t::ramp_a [private]
5.111.3.4 mha_real_t∗ hanning_ramps_t::ramp_b [private]
The documentation for this class was generated from the following file:
• spec2wave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.112

identity_t Class Reference

5.112

identity_t Class Reference

359

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.112.1
5.112.1.1

5.112.2

Constructor & Destructor Documentation
identity_t::identity_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )
Member Function Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

360

CONTENTS

5.112.2.1 mha_wave_t ∗ identity_t::process (
mha_wave_t ∗ s )
5.112.2.2 mha_spec_t ∗ identity_t::process (
mha_spec_t ∗ s )
5.112.2.3

void identity_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< int > (p. 730).
5.112.2.4

void identity_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< int > (p. 731).
The documentation for this class was generated from the following file:
• identity.cpp

5.113

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.114

io_alsa_t Class Reference

361

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.113.1

Constructor & Destructor Documentation

5.113.1.1

5.113.2

iirfilter_t::iirfilter_t (
const algo_comm_t & ac,
const std::string & th,
const std::string & al )
Member Function Documentation

5.113.2.1

void iirfilter_t::prepare_ (
mhaconfig_t & tf )

5.113.2.2

void iirfilter_t::release_ ( ) [inline]

5.113.2.3 mha_wave_t ∗ iirfilter_t::process (
mha_wave_t ∗ s )
The documentation for this class was generated from the following file:
• iirfilter.cpp

5.114

io_alsa_t Class Reference

MHA IO interface class for ALSA IO.
Inheritance diagram for io_alsa_t:

MHAParser::base_t

MHAParser::parser_t

io_alsa_t

© 2005-2019 HörTech gGmbH, Oldenburg

362

CONTENTS

Public Member Functions
• io_alsa_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)
Constructor, receives the callback handles to interact with the MHA framework.

• template
void prepare (int, int)
Called after the framework has perpared the processing plugins and the number of input and
output channels are fixed.

• void release ()
MHA framework leaves prepared state.

• void start ()
MHA framework calls this function when signal processing should start.

• void stop ()
MHA framework calls this function when signal processing should stop.

• template<>
void prepare (int nch_in, int nch_out)
Static Public Member Functions
• static void ∗ thread_start (void ∗h)
MHAIOAlsa uses a separate thread that calls the alsa read and write functions to read and
write audio samples, these functions are blocking until samples can be read or written.

Private Member Functions
• void process ()
Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

bool b_process
unsigned int fw_fragsize
unsigned int fw_samplerate
IOProcessEvent_t proc_event
void ∗ proc_handle
IOStartedEvent_t start_event
void ∗ start_handle
IOStoppedEvent_t stop_event
void ∗ stop_handle
alsa_base_t ∗ dev_in
alsa_base_t ∗ dev_out
pthread_t proc_thread
alsa_dev_par_parser_t p_in
alsa_dev_par_parser_t p_out
MHAParser::bool_t pcmlink
MHAParser::int_t priority
MHAParser::kw_t format
MHAParser::int_mon_t alsa_start_counter
MHAEvents::patchbay_t< io_alsa_t > patchbay
© 2005-2019 HörTech gGmbH, Oldenburg

5.114

io_alsa_t Class Reference

363

Additional Inherited Members
5.114.1

Detailed Description

MHA IO interface class for ALSA IO.

5.114.2
5.114.2.1

Constructor & Destructor Documentation
io_alsa_t::io_alsa_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 )

Constructor, receives the callback handles to interact with the MHA framework.

5.114.3
5.114.3.1

Member Function Documentation
template void io_alsa_t::prepare (
int nch_in,
int nch_out )

Called after the framework has perpared the processing plugins and the number of input and
output channels are fixed.
open pcm streams
5.114.3.2

void io_alsa_t::release (
void )

MHA framework leaves prepared state.
5.114.3.3

void io_alsa_t::start ( )

MHA framework calls this function when signal processing should start.
5.114.3.4

void io_alsa_t::stop ( )

MHA framework calls this function when signal processing should stop.
© 2005-2019 HörTech gGmbH, Oldenburg

364

CONTENTS

void ∗ io_alsa_t::thread_start (
void ∗ h ) [static]

5.114.3.5

MHAIOAlsa uses a separate thread that calls the alsa read and write functions to read and
write audio samples, these functions are blocking until samples can be read or written.
This is the start function of that thread.
5.114.3.6

void io_alsa_t::process (
void ) [private]

5.114.3.7

template<> void io_alsa_t::prepare (
int nch_in,
int nch_out )

5.114.4

Member Data Documentation

5.114.4.1

bool io_alsa_t::b_process [private]

5.114.4.2

unsigned int io_alsa_t::fw_fragsize [private]

5.114.4.3

unsigned int io_alsa_t::fw_samplerate [private]

5.114.4.4 IOProcessEvent_t io_alsa_t::proc_event [private]
5.114.4.5

void∗ io_alsa_t::proc_handle [private]

5.114.4.6 IOStartedEvent_t io_alsa_t::start_event [private]
5.114.4.7

void∗ io_alsa_t::start_handle [private]

5.114.4.8 IOStoppedEvent_t io_alsa_t::stop_event [private]
5.114.4.9

void∗ io_alsa_t::stop_handle [private]

5.114.4.10 alsa_base_t∗ io_alsa_t::dev_in [private]
5.114.4.11 alsa_base_t∗ io_alsa_t::dev_out [private]
5.114.4.12

pthread_t io_alsa_t::proc_thread [private]

5.114.4.13 alsa_dev_par_parser_t io_alsa_t::p_in [private]
5.114.4.14 alsa_dev_par_parser_t io_alsa_t::p_out [private]
5.114.4.15 MHAParser::bool_t io_alsa_t::pcmlink [private]
5.114.4.16 MHAParser::int_t io_alsa_t::priority [private]
5.114.4.17 MHAParser::kw_t io_alsa_t::format [private]
5.114.4.18 MHAParser::int_mon_t io_alsa_t::alsa_start_counter [private]
5.114.4.19 MHAEvents::patchbay_t io_alsa_t::patchbay [private]
The documentation for this class was generated from the following file:
• MHAIOalsa.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.115

io_file_t Class Reference

5.115

io_file_t Class Reference

365

File IO.
Inheritance diagram for io_file_t:

MHAParser::base_t

MHAParser::parser_t

io_file_t

Public Member Functions
• 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)
• ∼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.
© 2005-2019 HörTech gGmbH, Oldenburg

366

CONTENTS

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

Additional Inherited Members
5.115.1

Detailed Description

File IO.

5.115.2
5.115.2.1

Constructor & Destructor Documentation
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 )

© 2005-2019 HörTech gGmbH, Oldenburg

5.115

5.115.2.2
5.115.3
5.115.3.1

io_file_t Class Reference

io_file_t::∼io_file_t ( )
Member Function Documentation
void io_file_t::prepare (
int nch_in,
int nch_out )

Allocate buffers, activate FILE client and install internal ports.
5.115.3.2

void io_file_t::start ( )

5.115.3.3

void io_file_t::stop ( )

5.115.3.4

void io_file_t::release (
void )

Remove FILE client and deallocate internal ports and buffers.
5.115.3.5

void io_file_t::stopped (
int proc_err,
int io_err ) [private]

5.115.3.6

void io_file_t::setlock (
bool locked ) [private]

lock or unlock all parser variables.
Used in prepare/release.
Parameters
locked

5.115.4

When true, locks. When false, unlocks.

Member Data Documentation

5.115.4.1

int io_file_t::fragsize [private]

5.115.4.2

float io_file_t::samplerate [private]

5.115.4.3

int io_file_t::nchannels_in [private]

5.115.4.4

int io_file_t::nchannels_file_in [private]

© 2005-2019 HörTech gGmbH, Oldenburg

367

368

5.115.4.5

CONTENTS

int io_file_t::nchannels_out [private]

5.115.4.6 IOProcessEvent_t io_file_t::proc_event [private]
5.115.4.7

void∗ io_file_t::proc_handle [private]

5.115.4.8 IOStartedEvent_t io_file_t::start_event [private]
5.115.4.9

void∗ io_file_t::start_handle [private]

5.115.4.10 IOStoppedEvent_t io_file_t::stop_event [private]
5.115.4.11

void∗ io_file_t::stop_handle [private]

5.115.4.12 MHAParser::string_t io_file_t::filename_input [private]
5.115.4.13 MHAParser::string_t io_file_t::filename_output [private]
5.115.4.14 MHAParser::kw_t io_file_t::output_sample_format [private]
5.115.4.15 MHAParser::int_t io_file_t::startsample [private]
5.115.4.16 MHAParser::int_t io_file_t::length [private]
5.115.4.17 MHAParser::bool_t io_file_t::strict_channel_match [private]
5.115.4.18 MHAParser::bool_t io_file_t::strict_srate_match [private]
5.115.4.19 MHASignal::waveform_t∗ io_file_t::s_in [private]
5.115.4.20 MHASignal::waveform_t∗ io_file_t::s_file_in [private]
5.115.4.21 mha_wave_t∗ io_file_t::s_out [private]
5.115.4.22

bool io_file_t::b_prepared [private]

5.115.4.23

SNDFILE∗ io_file_t::sf_in [private]

5.115.4.24

SNDFILE∗ io_file_t::sf_out [private]

5.115.4.25

SF_INFO io_file_t::sfinf_in [private]

5.115.4.26

SF_INFO io_file_t::sfinf_out [private]

5.115.4.27

sf_count_t io_file_t::total_read [private]

The documentation for this class was generated from the following file:
• MHAIOFile.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.116

io_lib_t Class Reference

5.116

io_lib_t Class Reference

369

Class for loading MHA sound IO module.
Inheritance diagram for io_lib_t:

MHAParser::base_t

MHAParser::c_ifc_parser_t

io_lib_t

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 ()
© 2005-2019 HörTech gGmbH, Oldenburg

370

CONTENTS

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.116.1

Detailed Description

Class for loading MHA sound IO module.
5.116.2
5.116.2.1

Constructor & Destructor Documentation
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.116.2.2

io_lib_t::∼io_lib_t ( )

Deinitialize and unload this MHA sound io module.
5.116.3
5.116.3.1

Member Function Documentation
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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.116

io_lib_t Class Reference

371

Parameters
inch

number of input channels

outch

number of output channels

5.116.3.2

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.116.3.3

void io_lib_t::stop ( )

5.116.3.4

void io_lib_t::release ( )

5.116.3.5

std::string io_lib_t::lib_str_error (
int err )

5.116.3.6

void io_lib_t::test_error ( ) [protected]

5.116.4
5.116.4.1

Member Data Documentation
int io_lib_t::lib_err [protected]

5.116.4.2 dynamiclib_t io_lib_t::lib_handle [protected]
5.116.4.3

void∗ io_lib_t::lib_data [protected]

5.116.4.4 IOInit_t io_lib_t::IOInit_cb [protected]
5.116.4.5 IOPrepare_t io_lib_t::IOPrepare_cb [protected]
5.116.4.6 IOStart_t io_lib_t::IOStart_cb [protected]
5.116.4.7 IOStop_t io_lib_t::IOStop_cb [protected]
5.116.4.8 IORelease_t io_lib_t::IORelease_cb [protected]
5.116.4.9 IOSetVar_t io_lib_t::IOSetVar_cb [protected]
5.116.4.10 IOStrError_t io_lib_t::IOStrError_cb [protected]
5.116.4.11 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
© 2005-2019 HörTech gGmbH, Oldenburg

372

5.117

CONTENTS

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.

Private Member Functions
• void stopped (int, int)
• void started ()
• void process_frame ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.117

io_parser_t Class Reference

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.117.1

Detailed Description

Main class for Parser IO.

5.117.2

Constructor & Destructor Documentation

5.117.2.1

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 )

5.117.2.2

io_parser_t::∼io_parser_t ( )

5.117.3
5.117.3.1

Member Function Documentation
void io_parser_t::prepare (
int nch_in,
int nch_out )

Allocate buffers, activate JACK client and install internal ports.
© 2005-2019 HörTech gGmbH, Oldenburg

373

374

5.117.3.2

void io_parser_t::start ( )

5.117.3.3

void io_parser_t::stop ( )

5.117.3.4

void io_parser_t::release (
void )

CONTENTS

Remove JACK client and deallocate internal ports and buffers.
5.117.3.5

void io_parser_t::stopped (
int proc_err,
int io_err ) [private]

5.117.3.6

void io_parser_t::started ( ) [private]

5.117.3.7

void io_parser_t::process_frame ( ) [private]

5.117.4

Member Data Documentation

5.117.4.1

unsigned int io_parser_t::fragsize [private]

5.117.4.2

unsigned int io_parser_t::nchannels_in [private]

5.117.4.3

unsigned int io_parser_t::nchannels_out [private]

5.117.4.4 IOProcessEvent_t io_parser_t::proc_event [private]
5.117.4.5

void∗ io_parser_t::proc_handle [private]

5.117.4.6 IOStartedEvent_t io_parser_t::start_event [private]
5.117.4.7

void∗ io_parser_t::start_handle [private]

5.117.4.8 IOStoppedEvent_t io_parser_t::stop_event [private]
5.117.4.9

void∗ io_parser_t::stop_handle [private]

5.117.4.10 MHAParser::mfloat_t io_parser_t::input [private]
5.117.4.11 MHAParser::mfloat_mon_t io_parser_t::output [private]
5.117.4.12 MHASignal::waveform_t∗ io_parser_t::s_in [private]
5.117.4.13 mha_wave_t∗ io_parser_t::s_out [private]
5.117.4.14

bool io_parser_t::b_fw_started [private]

5.117.4.15

bool io_parser_t::b_stopped [private]

5.117.4.16

bool io_parser_t::b_prepared [private]

5.117.4.17

bool io_parser_t::b_starting [private]

5.117.4.18 MHAEvents::patchbay_t io_parser_t::patchbay [private]
The documentation for this class was generated from the following file:
• MHAIOParser.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.118

io_tcp_fwcb_t Class Reference

5.118

io_tcp_fwcb_t Class Reference

375

TCP sound-io library's interface to the framework callbacks.

Public Member Functions
• 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.

• 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.

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.118.1

Detailed Description

TCP sound-io library's interface to the framework callbacks.
© 2005-2019 HörTech gGmbH, Oldenburg

376

5.118.2
5.118.2.1

CONTENTS

Constructor & Destructor Documentation
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.118.2.2

virtual io_tcp_fwcb_t::∼io_tcp_fwcb_t ( ) [inline], [virtual]

Do-nothing destructor.

5.118.3
5.118.3.1

Member Function Documentation
void io_tcp_fwcb_t::start ( ) [virtual]

Call the framework's start callback.
5.118.3.2

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.118.3.3

void io_tcp_fwcb_t::set_errnos (
int proc_err,
int io_err ) [virtual]

Save error numbers to use during.
© 2005-2019 HörTech gGmbH, Oldenburg

5.118

io_tcp_fwcb_t Class Reference

377

See also
stop (p. 377)
Parameters
The error number from the

proc_err

See also
process (p. 376) callback.
Parameters
io_err

The error number from the io library itself.

5.118.3.4

void io_tcp_fwcb_t::stop ( ) [virtual]

Call the frameworks stop callback.
Uses the error numbers set previously with
See also
set_errnos (p. 376).

5.118.4

Member Data Documentation

5.118.4.1 IOProcessEvent_t io_tcp_fwcb_t::proc_event [private]
Pointer to signal processing callback function.
5.118.4.2 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.
5.118.4.3 IOStoppedEvent_t io_tcp_fwcb_t::stop_event [private]
Pointer to stop notification callback function.
Called when the connection is closed.
© 2005-2019 HörTech gGmbH, Oldenburg

378

5.118.4.4

CONTENTS

void∗ io_tcp_fwcb_t::proc_handle [private]

Handles belonging to framework.
5.118.4.5

void ∗ io_tcp_fwcb_t::start_handle [private]

5.118.4.6

void ∗ io_tcp_fwcb_t::stop_handle [private]

5.118.4.7

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. 377) from that callback. Within stop (p. 377), these error numbers are read again
and transmitted to the framework.

5.118.4.8

int io_tcp_fwcb_t::io_err [private]

The documentation for this class was generated from the following file:
• MHAIOTCP.cpp

5.119

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.119

io_tcp_parser_t Class Reference

379

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
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
© 2005-2019 HörTech gGmbH, Oldenburg

380

CONTENTS

Additional Inherited Members
5.119.1

Detailed Description

The parser interface of the IOTCP library.

5.119.2
5.119.2.1

Constructor & Destructor Documentation
io_tcp_parser_t::io_tcp_parser_t ( )

Constructor initializes parser variables.
5.119.2.2

virtual io_tcp_parser_t::∼io_tcp_parser_t ( ) [inline], [virtual]

Do-nothing destructor.

5.119.3
5.119.3.1

Member Function Documentation
virtual const std::string& io_tcp_parser_t::get_local_address (
[virtual]

) const [inline],

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.119.3.2

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.119.3.3

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-2019 HörTech gGmbH, Oldenburg

5.119

io_tcp_parser_t Class Reference

381

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. 380) currently returns 0.

5.119.3.4

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. 381).

5.119.3.5

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. 381) currently returns
false.

Postcondition

See also
get_server_port_open (p. 381) returns the value (p. 53) of open.

© 2005-2019 HörTech gGmbH, Oldenburg

382

5.119.3.6

CONTENTS

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. 382).

5.119.3.7

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. 382).

Postcondition

See also
get_connected (p. 382) returns the value (p. 53) of open.

5.119.3.8

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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.119

io_tcp_parser_t Class Reference

383

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. 382) currently returns false.

Postcondition

See also
get_connected (p. 382) returns true.

5.119.3.9

5.119.4

virtual void io_tcp_parser_t::debug (
const std::string & message ) [inline], [virtual]
Member Data Documentation

5.119.4.1 MHAParser::string_t io_tcp_parser_t::local_address [private]
Lets the user set the local network interface to listen on.
5.119.4.2 MHAParser::int_t io_tcp_parser_t::local_port [private]
Lets the user choose the local tcp port to listen on.
5.119.4.3 MHAParser::int_mon_t io_tcp_parser_t::server_port_open [private]
Indicates wether the TCP server socket is currently open.
5.119.4.4 MHAParser::int_mon_t io_tcp_parser_t::connected [private]
Indicator if there currently is a sound data connection over TCP.
© 2005-2019 HörTech gGmbH, Oldenburg

384

CONTENTS

5.119.4.5 MHAParser::string_mon_t io_tcp_parser_t::peer_address [private]
Display the ip address of the currently connected sound data client.
5.119.4.6 MHAParser::int_mon_t io_tcp_parser_t::peer_port [private]
Display the tcp port used by the current sound data client.
5.119.4.7 MHAParser::string_t io_tcp_parser_t::debug_filename [private]
filename to write debugging info to (if non-empty)
5.119.4.8

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.120

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.

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. 496) structure.

• virtual std::string hton (const mha_wave_t ∗s_out)
Copy sound data from the output sound structure to a string.
© 2005-2019 HörTech gGmbH, Oldenburg

5.120

io_tcp_sound_t Class Reference

385

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.120.1

Detailed Description

Sound data handling of io tcp library.

5.120.2

Constructor & Destructor Documentation

5.120.2.1

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. 386).
Parameters
fragsize

Number of sound samples in each channel expected and returned from
processing callback.

samplerate

Number of samples per second in each channel.

© 2005-2019 HörTech gGmbH, Oldenburg

386

5.120.2.2

CONTENTS

virtual io_tcp_sound_t::∼io_tcp_sound_t ( ) [inline], [virtual]

Do-nothing destructor.

5.120.3

Member Function Documentation

5.120.3.1

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. 445)

5.120.3.2

if mha_real_t is not compatible to 32-bit float.

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.120.3.3

void io_tcp_sound_t::release (
void ) [virtual]

Called during release.
Deletes sound data storage.
5.120.3.4

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.120.3.5

std::string io_tcp_sound_t::header ( ) const [virtual]

Create the tcp sound header lines.
© 2005-2019 HörTech gGmbH, Oldenburg

5.120

io_tcp_sound_t Class Reference

387

5.120.3.6 mha_wave_t ∗ io_tcp_sound_t::ntoh (
const std::string & data ) [virtual]
Copy data received from tcp into mha_wave_t (p. 496) structure.
Doing network-to-host byte order swapping in the process.
Parameters
data

One chunk (

See also
chunkbytes_in (p. 386)) of sound data to process.

Returns
Pointer to the sound data storage.

5.120.3.7

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.120.4
5.120.4.1

Member Data Documentation
int io_tcp_sound_t::fragsize [private]

Number of sound samples in each channel expected and returned from processing callback.
5.120.4.2

float io_tcp_sound_t::samplerate [private]

Sampling rate.
Number of samples per second in each channel.
© 2005-2019 HörTech gGmbH, Oldenburg

388

5.120.4.3

CONTENTS

int io_tcp_sound_t::num_inchannels [private]

Number of input channels.
Number of channels expected from and returned by signal processing callback.
5.120.4.4

int io_tcp_sound_t::num_outchannels [private]

5.120.4.5 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.121

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]

5.121.1

Detailed Description

This union helps in conversion of floats from host byte order to network byte order and back
again.

5.121.2

Member Data Documentation

5.121.2.1

float io_tcp_sound_t::float_union::f

5.121.2.2

unsigned int io_tcp_sound_t::float_union::i

5.121.2.3

char io_tcp_sound_t::float_union::c[4]

The documentation for this union was generated from the following file:
• MHAIOTCP.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.122

io_tcp_t Class Reference

5.122

io_tcp_t Class Reference

389

The tcp sound io library.

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
•
•
•
•
•
•
•
•

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

5.122.1

Detailed Description

The tcp sound io library.
© 2005-2019 HörTech gGmbH, Oldenburg

390

5.122.2

CONTENTS

Constructor & Destructor Documentation

5.122.2.1

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.122.2.2

virtual io_tcp_t::∼io_tcp_t ( ) [inline], [virtual]

5.122.3
5.122.3.1

Member Function Documentation
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.122.3.2

void io_tcp_t::start ( )

Call frameworks start callback if there is a sound data connection at the moment.
5.122.3.3

void io_tcp_t::stop ( )

Close the current connection if there is one.
stop IO thread
5.122.3.4

void io_tcp_t::release (
void )

Close the current connection and close the server socket.
Stop IO thread and close server socket.
5.122.3.5

void io_tcp_t::accept_loop ( ) [virtual]

IO thread executes this method.
5.122.3.6

void io_tcp_t::connection_loop (
MHA_TCP::Connection ∗ c ) [virtual]

IO thread executes this method for each connection.

© 2005-2019 HörTech gGmbH, Oldenburg

5.123

latex_doc_t Class Reference

391

Parameters
c

pointer to connection. connection_loop deletes connection before exiting.

5.122.3.7

virtual void io_tcp_t::parse (
const char ∗ cmd,
char ∗ retval,
unsigned int len ) [inline], [virtual]

Parser interface.

5.122.4

Member Data Documentation

5.122.4.1 io_tcp_parser_t io_tcp_t::parser [private]
5.122.4.2 io_tcp_sound_t io_tcp_t::sound [private]
5.122.4.3 io_tcp_fwcb_t io_tcp_t::fwcb [private]
5.122.4.4 MHA_TCP::Server∗ io_tcp_t::server [private]
5.122.4.5 MHA_TCP::Thread∗ io_tcp_t::thread [private]
5.122.4.6 MHA_TCP::Async_Notify io_tcp_t::notify_start [private]
5.122.4.7 MHA_TCP::Async_Notify io_tcp_t::notify_stop [private]
5.122.4.8 MHA_TCP::Async_Notify io_tcp_t::notify_release [private]
The documentation for this class was generated from the following file:

• MHAIOTCP.cpp

5.123

latex_doc_t Class Reference

Class to access the information stored in the plugin source code's MHAPLUGIN_DOCUME←NTATION macro.
© 2005-2019 HörTech gGmbH, Oldenburg

392

CONTENTS

Public Member Functions
• latex_doc_t (const std::string &plugname, const std::string &plugin_macro)
Constructor loads the plugin into this process.

• std::string get_latex_doc ()
This method accesses the compiled-in contents of the MHAPLUGIN_DOCUMENTATION
macro and the exported interface functions of the loaded plugin to produce latex docuementation for the plugin.

• std::string get_main_category () const
• std::vector< std::string > get_categories () const

Private Member Functions
•
•
•
•
•

std::string strdom (mha_domain_t d) const
std::string get_ac (MHAKernel::algo_comm_class_t &ac, std::string txt) const
std::string parsername (std::string s) const
std::string get_parser_var (MHAParser::base_t ∗p, std::string name) const
std::string get_parser_tab (MHAParser::base_t ∗p, const std::string &prefix, const std←::string &latex_macro) const

Private Attributes
•
•
•
•
•

const std::string plugname
const std::string latex_plugname
MHAKernel::algo_comm_class_t ac
PluginLoader::mhapluginloader_t loader
const std::string plugin_macro

5.123.1

Detailed Description

Class to access the information stored in the plugin source code's MHAPLUGIN_DOCUME←NTATION macro.

5.123.2
5.123.2.1

Constructor & Destructor Documentation
latex_doc_t::latex_doc_t (
const std::string & plugname,
const std::string & plugin_macro )

Constructor loads the plugin into this process.

© 2005-2019 HörTech gGmbH, Oldenburg

5.123

latex_doc_t Class Reference

393

Parameters
plugname

Name of the MHA plugin to process

plugin_macro

name of the LaTeX section macro that documents a single plugin (e.g.
"section", "subsection", "subsubsection", ...)

5.123.3

5.123.3.1

Member Function Documentation

std::string latex_doc_t::get_latex_doc ( )

This method accesses the compiled-in contents of the MHAPLUGIN_DOCUMENTATION
macro and the exported interface functions of the loaded plugin to produce latex docuementation for the plugin.
It tentatively prepares the plugin for processing and checks the AC variables registered by the
plugin.

Returns
the complete latex documentation for this plugin

5.123.3.2

std::string latex_doc_t::get_main_category ( ) const

Returns
the first word of the categories string in the MHAPLUGIN_DOCUMENTATION macro

5.123.3.3

std::vector< std::string > latex_doc_t::get_categories ( ) const

Returns
a vector of all words in the categories string in the MHAPLUGIN_DOCUMENTATION
macro

© 2005-2019 HörTech gGmbH, Oldenburg

394

CONTENTS

5.123.3.4

std::string latex_doc_t::strdom (
mha_domain_t d ) const [private]

5.123.3.5

std::string latex_doc_t::get_ac (
MHAKernel::algo_comm_class_t & ac,
std::string txt ) const [private]

5.123.3.6

std::string latex_doc_t::parsername (
std::string s ) const [private]

5.123.3.7

std::string latex_doc_t::get_parser_var (
MHAParser::base_t ∗ p,
std::string name ) const [private]

5.123.3.8

std::string latex_doc_t::get_parser_tab (
MHAParser::base_t ∗ p,
const std::string & prefix,
const std::string & latex_macro ) const [private]

5.123.4

Member Data Documentation

5.123.4.1

const std::string latex_doc_t::plugname [private]

5.123.4.2

const std::string latex_doc_t::latex_plugname [private]

5.123.4.3 MHAKernel::algo_comm_class_t latex_doc_t::ac [private]

5.123.4.4 PluginLoader::mhapluginloader_t latex_doc_t::loader [private]

5.123.4.5

const std::string latex_doc_t::plugin_macro [private]

The documentation for this class was generated from the following file:

• generatemhaplugindoc.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.124

lpc Class Reference

5.124

lpc Class Reference

395

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-2019 HörTech gGmbH, Oldenburg

396

CONTENTS

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.124.1
5.124.1.1

Constructor & Destructor Documentation
lpc::lpc (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
5.124.1.2
5.124.2

lpc::∼lpc ( )
Member Function Documentation

5.124.2.1 mha_wave_t ∗ lpc::process (
mha_wave_t ∗ signal )
Checks for the most recent configuration and defers processing to it.
5.124.2.2

void lpc::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_config > (p. 730).
© 2005-2019 HörTech gGmbH, Oldenburg

5.124

5.124.2.3

lpc Class Reference

397

void lpc::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< lpc_config > (p. 731).

5.124.2.4

5.124.3

5.124.3.1

void lpc::update_cfg (
void ) [private]

Member Data Documentation

std::string lpc::algo_name [private]

5.124.3.2 MHAParser::int_t lpc::lpc_order [private]

5.124.3.3 MHAParser::int_t lpc::lpc_buffer_size [private]

5.124.3.4 MHAParser::bool_t lpc::shift [private]

5.124.3.5 MHAParser::int_t lpc::comp_each_iter [private]

5.124.3.6 MHAParser::bool_t lpc::norm [private]

5.124.3.7 MHAEvents::patchbay_t lpc::patchbay [private]

The documentation for this class was generated from the following files:

• lpc.h
• lpc.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

398

5.125

CONTENTS

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

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.125

lpc_bl_predictor Class Reference

399

Private Member Functions
• void update_cfg ()

Private Attributes
• MHAEvents::patchbay_t< lpc_bl_predictor > patchbay

Additional Inherited Members
5.125.1
5.125.1.1

Constructor & Destructor Documentation
lpc_bl_predictor::lpc_bl_predictor (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
5.125.1.2
5.125.2

lpc_bl_predictor::∼lpc_bl_predictor ( )
Member Function Documentation

5.125.2.1 mha_wave_t ∗ lpc_bl_predictor::process (
mha_wave_t ∗ signal )
Checks for the most recent configuration and defers processing to it.
5.125.2.2

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. 730).

© 2005-2019 HörTech gGmbH, Oldenburg

400

5.125.2.3

CONTENTS

void lpc_bl_predictor::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< lpc_bl_predictor_config > (p. 731).
5.125.2.4

5.125.3

void lpc_bl_predictor::update_cfg (
void ) [private]

Member Data Documentation

5.125.3.1 MHAParser::int_t lpc_bl_predictor::lpc_order

5.125.3.2 MHAParser::string_t lpc_bl_predictor::name_kappa

5.125.3.3 MHAParser::string_t lpc_bl_predictor::name_lpc_f

5.125.3.4 MHAParser::string_t lpc_bl_predictor::name_lpc_b

5.125.3.5 MHAParser::string_t lpc_bl_predictor::name_f

5.125.3.6 MHAParser::string_t lpc_bl_predictor::name_b

5.125.3.7 MHAEvents::patchbay_t 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.126

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 ∗)
© 2005-2019 HörTech gGmbH, Oldenburg

5.126

lpc_bl_predictor_config Class Reference

401

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.126.1

Constructor & Destructor Documentation

5.126.1.1

lpc_bl_predictor_config::lpc_bl_predictor_config (
algo_comm_t & iac,
const mhaconfig_t in_cfg,
lpc_bl_predictor ∗ _lpc )

5.126.1.2

lpc_bl_predictor_config::∼lpc_bl_predictor_config ( )

5.126.2

Member Function Documentation

5.126.2.1 mha_wave_t ∗ lpc_bl_predictor_config::process (
mha_wave_t ∗ wave )
5.126.3

Member Data Documentation

5.126.3.1 algo_comm_t lpc_bl_predictor_config::ac [private]
5.126.3.2 MHA_AC::waveform_t lpc_bl_predictor_config::f_est [private]
5.126.3.3 MHA_AC::waveform_t lpc_bl_predictor_config::b_est [private]
5.126.3.4 MHASignal::waveform_t lpc_bl_predictor_config::forward [private]
5.126.3.5 MHASignal::waveform_t lpc_bl_predictor_config::backward [private]
5.126.3.6

int lpc_bl_predictor_config::lpc_order [private]

5.126.3.7

std::string lpc_bl_predictor_config::name_km [private]

© 2005-2019 HörTech gGmbH, Oldenburg

402

CONTENTS

5.126.3.8

std::string lpc_bl_predictor_config::name_f [private]

5.126.3.9

std::string lpc_bl_predictor_config::name_b [private]

5.126.3.10 mha_wave_t lpc_bl_predictor_config::km [private]

5.126.3.11 mha_wave_t lpc_bl_predictor_config::s_f [private]

5.126.3.12 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.127

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.127

lpc_burglattice Class Reference

403

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)

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.127.1

5.127.1.1

Constructor & Destructor Documentation

lpc_burglattice::lpc_burglattice (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
© 2005-2019 HörTech gGmbH, Oldenburg

404

5.127.1.2
5.127.2

CONTENTS

lpc_burglattice::∼lpc_burglattice ( )
Member Function Documentation

5.127.2.1 mha_wave_t ∗ lpc_burglattice::process (
mha_wave_t ∗ signal )
Checks for the most recent configuration and defers processing to it.
5.127.2.2

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. 730).
5.127.2.3

void lpc_burglattice::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< lpc_burglattice_config > (p. 731).
5.127.2.4

5.127.3

void lpc_burglattice::update_cfg (
void ) [private]
Member Data Documentation

5.127.3.1 MHAParser::int_t lpc_burglattice::lpc_order
5.127.3.2 MHAParser::string_t lpc_burglattice::name_kappa
5.127.3.3 MHAParser::string_t lpc_burglattice::name_f
5.127.3.4 MHAParser::string_t lpc_burglattice::name_b
5.127.3.5 MHAParser::float_t lpc_burglattice::lambda
5.127.3.6 MHAEvents::patchbay_t lpc_burglattice::patchbay [private]
The documentation for this class was generated from the following files:
• lpc_burg-lattice.h
• lpc_burg-lattice.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.128

lpc_burglattice_config Class Reference

5.128

lpc_burglattice_config Class Reference

405

Public Member Functions
• lpc_burglattice_config (algo_comm_t &iac, const mhaconfig_t in_cfg, lpc_←burglattice ∗_lpc)
• ∼lpc_burglattice_config ()
• mha_wave_t ∗ process (mha_wave_t ∗)

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.128.1

Constructor & Destructor Documentation

5.128.1.1

lpc_burglattice_config::lpc_burglattice_config (
algo_comm_t & iac,
const mhaconfig_t in_cfg,
lpc_burglattice ∗ _lpc )

5.128.1.2

lpc_burglattice_config::∼lpc_burglattice_config ( )

5.128.2

Member Function Documentation

5.128.2.1 mha_wave_t ∗ lpc_burglattice_config::process (
mha_wave_t ∗ wave )
5.128.3

Member Data Documentation

5.128.3.1 algo_comm_t lpc_burglattice_config::ac [private]

© 2005-2019 HörTech gGmbH, Oldenburg

406

CONTENTS

5.128.3.2 MHASignal::waveform_t lpc_burglattice_config::forward [private]
5.128.3.3 MHASignal::waveform_t lpc_burglattice_config::backward [private]
5.128.3.4 MHASignal::waveform_t lpc_burglattice_config::kappa [private]
5.128.3.5 MHA_AC::waveform_t lpc_burglattice_config::kappa_block [private]
5.128.3.6 MHASignal::waveform_t lpc_burglattice_config::dm [private]
5.128.3.7 MHASignal::waveform_t lpc_burglattice_config::nm [private]
5.128.3.8 mha_real_t lpc_burglattice_config::lambda [private]
5.128.3.9

int lpc_burglattice_config::lpc_order [private]

5.128.3.10

std::string lpc_burglattice_config::name_f [private]

5.128.3.11

std::string lpc_burglattice_config::name_b [private]

5.128.3.12 mha_wave_t lpc_burglattice_config::s_f [private]
5.128.3.13 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.129

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-2019 HörTech gGmbH, Oldenburg

5.129

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.129.1

Constructor & Destructor Documentation

5.129.1.1

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.129.1.2

lpc_config::∼lpc_config ( )

5.129.2

Member Function Documentation

5.129.2.1 mha_wave_t ∗ lpc_config::process (
mha_wave_t ∗ wave )
5.129.2.2
5.129.3

void lpc_config::insert ( )
Member Data Documentation

5.129.3.1

bool lpc_config::norm [private]

5.129.3.2

bool lpc_config::shift [private]

5.129.3.3

unsigned int lpc_config::comp_each_iter [private]

© 2005-2019 HörTech gGmbH, Oldenburg

407

408

5.129.3.4

unsigned int lpc_config::order [private]

5.129.3.5

unsigned int lpc_config::lpc_buffer_size [private]

5.129.3.6

unsigned int lpc_config::N [private]

5.129.3.7

unsigned int lpc_config::comp_iter [private]

CONTENTS

5.129.3.8 mha_wave_t lpc_config::sample [private]
5.129.3.9
5.129.3.10

std::vector lpc_config::R [private]
std::vector lpc_config::A [private]

5.129.3.11 MHASignal::ringbuffer_t lpc_config::inwave [private]
5.129.3.12 MHA_AC::waveform_t lpc_config::lpc_out [private]
5.129.3.13 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.130

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.130

matrixmixer::cfg_t Class Reference

5.130.1

Constructor & Destructor Documentation

5.130.1.1

409

cfg_t::cfg_t (
std::vector< std::vector< float > > imixer,
unsigned int ci,
unsigned int co,
unsigned int fragsize,
unsigned int nfft )

5.130.2

Member Function Documentation

5.130.2.1 mha_wave_t ∗ cfg_t::process (
mha_wave_t ∗ s )

5.130.2.2 mha_spec_t ∗ cfg_t::process (
mha_spec_t ∗ s )

5.130.3

Member Data Documentation

5.130.3.1 MHASignal::waveform_t matrixmixer::cfg_t::m [private]

5.130.3.2 MHASignal::waveform_t matrixmixer::cfg_t::wout [private]

5.130.3.3 MHASignal::spectrum_t matrixmixer::cfg_t::sout [private]

The documentation for this class was generated from the following file:

• matrixmixer.cpp

© 2005-2019 HörTech gGmbH, Oldenburg

410

5.131

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-2019 HörTech gGmbH, Oldenburg

5.131

matrixmixer::matmix_t Class Reference

411

Additional Inherited Members

5.131.1

5.131.1.1

5.131.2

5.131.2.1

Constructor & Destructor Documentation

matrixmixer::matmix_t::matmix_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )

Member Function Documentation

void matrixmixer::matmix_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 730).
5.131.2.2 mha_wave_t ∗ matrixmixer::matmix_t::process (
mha_wave_t ∗ s )

5.131.2.3 mha_spec_t ∗ matrixmixer::matmix_t::process (
mha_spec_t ∗ s )

5.131.2.4

5.131.3

void matrixmixer::matmix_t::update_m (
void ) [private]

Member Data Documentation

5.131.3.1 MHAEvents::patchbay_t matrixmixer::matmix_t::patchbay [private]

5.131.3.2 MHAParser::mfloat_t matrixmixer::matmix_t::mixer [private]

5.131.3.3

unsigned int matrixmixer::matmix_t::ci [private]

5.131.3.4

unsigned int matrixmixer::matmix_t::co [private]

The documentation for this class was generated from the following file:

• matrixmixer.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

412

5.132

CONTENTS

MHA_AC::ac2matrix_helper_t Class Reference

Inheritance diagram for MHA_AC::ac2matrix_helper_t:

MHA_AC::ac2matrix_helper_t

MHA_AC::ac2matrix_t

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.132.1
5.132.1.1

5.132.2
5.132.2.1

Constructor & Destructor Documentation
MHA_AC::ac2matrix_helper_t::ac2matrix_helper_t (
algo_comm_t iac,
const std::string & iname )
Member Function Documentation
void MHA_AC::ac2matrix_helper_t::getvar ( )

© 2005-2019 HörTech gGmbH, Oldenburg

5.133

MHA_AC::ac2matrix_t Class Reference

5.132.3

Member Data Documentation

413

5.132.3.1 algo_comm_t MHA_AC::ac2matrix_helper_t::ac

5.132.3.2

std::string MHA_AC::ac2matrix_helper_t::name

5.132.3.3

std::string MHA_AC::ac2matrix_helper_t::username

5.132.3.4 MHASignal::uint_vector_t MHA_AC::ac2matrix_helper_t::size

5.132.3.5

bool MHA_AC::ac2matrix_helper_t::is_complex

5.132.3.6 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

5.133

MHA_AC::ac2matrix_t Class Reference

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

© 2005-2019 HörTech gGmbH, Oldenburg

414

CONTENTS

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.133.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. 414) function is real-time safe.

5.133.2
5.133.2.1

Constructor & Destructor Documentation
MHA_AC::ac2matrix_t::ac2matrix_t (
algo_comm_t ac,
const std::string & name )

Constructor.
Parameters
ac
name

5.133.3
5.133.3.1

AC handle
Name of AC variable to be copied

Member Function Documentation
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.
© 2005-2019 HörTech gGmbH, Oldenburg

5.134

MHA_AC::acspace2matrix_t Class Reference

5.133.3.2

415

const std::string& MHA_AC::ac2matrix_t::getname ( ) const [inline]

Return name of AC variable/matrix.
5.133.3.3

const std::string& MHA_AC::ac2matrix_t::getusername ( ) const [inline]

Return user specified name of AC variable/matrix.
5.133.3.4

void MHA_AC::ac2matrix_t::insert (
algo_comm_t ac )

Insert matrix into an AC space (other than source AC space)
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.134

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.
© 2005-2019 HörTech gGmbH, Oldenburg

416

CONTENTS

• 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)

Private Attributes
• unsigned int len
• MHA_AC::ac2matrix_t ∗∗ data
• unsigned int frameno

5.134.1

Detailed Description

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

5.134.2
5.134.2.1

Constructor & Destructor Documentation
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
names

5.134.2.2

AC handle.
Names of AC variables, or empty for all.

MHA_AC::acspace2matrix_t::acspace2matrix_t (
const MHA_AC::acspace2matrix_t & src )

Constructor with initialization from an instance.

© 2005-2019 HörTech gGmbH, Oldenburg

5.134

MHA_AC::acspace2matrix_t Class Reference

417

Parameters
Instance to be copied.

src

5.134.2.3
5.134.3

MHA_AC::acspace2matrix_t::∼acspace2matrix_t ( )
Member Function Documentation

5.134.3.1 MHA_AC::acspace2matrix_t & MHA_AC::acspace2matrix_t::operator= (
const MHA_AC::acspace2matrix_t & src )
Copy all contents (deep copy).
Parameters
src

Array of matrixes to be copied.

5.134.3.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. 418)-1.

Return values
Reference

5.134.3.3

to matrix.

const MHA_AC::ac2matrix_t& MHA_AC::acspace2matrix_t::operator[ ] (
unsigned int k ) const [inline]

Constant access operator.
Parameters
k

index into array; should not exceed size() (p. 418)-1.

Return values
Constant

reference to matrix.

© 2005-2019 HörTech gGmbH, Oldenburg

418

5.134.3.4

CONTENTS

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.134.3.5

unsigned int MHA_AC::acspace2matrix_t::size ( ) const [inline]

Number of matrixes in AC space.
5.134.3.6

unsigned int MHA_AC::acspace2matrix_t::frame ( ) const [inline]

Actual frame number.
5.134.3.7

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

5.134.4

Member Data Documentation

5.134.4.1

unsigned int MHA_AC::acspace2matrix_t::len [private]

5.134.4.2 MHA_AC::ac2matrix_t∗∗ MHA_AC::acspace2matrix_t::data [private]
5.134.4.3

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.135

MHA_AC::double_t Class Reference

Insert a double precision floating point variable into the AC space.
© 2005-2019 HörTech gGmbH, Oldenburg

5.135

MHA_AC::double_t Class Reference

419

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

5.135.1

Detailed Description

Insert a double precision floating point variable into the AC space.
The variable is automatically removed on destruction.

5.135.2

Constructor & Destructor Documentation

5.135.2.1

MHA_AC::double_t::double_t (
algo_comm_t iac,
std::string n,
double v = 0 )

5.135.2.2

MHA_AC::double_t::∼double_t ( )

5.135.3
5.135.3.1

Member Data Documentation
double MHA_AC::double_t::data

Floating point value variable.
5.135.3.2 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-2019 HörTech gGmbH, Oldenburg

420

5.136

CONTENTS

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.136.1

Detailed Description

Insert a float point variable into the AC space.
The variable is automatically removed on destruction.

5.136.2
5.136.2.1

Constructor & Destructor Documentation
MHA_AC::float_t::float_t (
algo_comm_t iac,
std::string n,
float v = 0 )

Constructor.
5.136.2.2
5.136.3
5.136.3.1

MHA_AC::float_t::∼float_t ( )
Member Data Documentation
float MHA_AC::float_t::data

Floating point value variable.
© 2005-2019 HörTech gGmbH, Oldenburg

5.137

MHA_AC::int_t Class Reference

421

5.136.3.2 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.137

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

5.137.1

Detailed Description

Insert a integer variable into the AC space.
The variable is automatically removed on destruction.

5.137.2

Constructor & Destructor Documentation

5.137.2.1

MHA_AC::int_t::int_t (
algo_comm_t iac,
std::string n,
int v = 0 )

5.137.2.2

MHA_AC::int_t::∼int_t ( )

5.137.3
5.137.3.1

Member Data Documentation
int MHA_AC::int_t::data

Integer value variable.
© 2005-2019 HörTech gGmbH, Oldenburg

422

CONTENTS

5.137.3.2 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

5.138

MHA_AC::spectrum_t Class Reference

Insert a MHASignal::spectrum_t (p. 800) 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
© 2005-2019 HörTech gGmbH, Oldenburg

5.138

MHA_AC::spectrum_t Class Reference

423

Additional Inherited Members
5.138.1

Detailed Description

Insert a MHASignal::spectrum_t (p. 800) class into the AC space.
The variable is automatically removed on destruction.

5.138.2
5.138.2.1

Constructor & Destructor Documentation
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. 425) class

channels

Number of audio channels in the waveform_t (p. 425) class

insert_now

Insert implicitely in the constructor (true) or explicitely in the insert() (p. 423)
function (false)

5.138.2.2

MHA_AC::spectrum_t::∼spectrum_t (
void ) [virtual]

Reimplemented from MHASignal::spectrum_t (p. 802).

5.138.3

5.138.3.1

Member Function Documentation

void MHA_AC::spectrum_t::insert ( )

Insert AC variable into AC space.
© 2005-2019 HörTech gGmbH, Oldenburg

424

5.138.4

CONTENTS

Member Data Documentation

5.138.4.1 algo_comm_t MHA_AC::spectrum_t::ac [protected]

5.138.4.2

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.139

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 ()

Private Attributes
• MHA_AC::waveform_t mean
• MHA_AC::waveform_t std
© 2005-2019 HörTech gGmbH, Oldenburg

5.140

MHA_AC::waveform_t Class Reference

5.139.1

Constructor & Destructor Documentation

5.139.1.1

5.139.2

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 )
Member Function Documentation

5.139.2.1

void MHA_AC::stat_t::update ( )

5.139.2.2

void MHA_AC::stat_t::insert ( )

5.139.3

425

Member Data Documentation

5.139.3.1 MHA_AC::waveform_t MHA_AC::stat_t::mean [private]
5.139.3.2 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.140

MHA_AC::waveform_t Class Reference

Insert a MHASignal::waveform_t (p. 812) 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

© 2005-2019 HörTech gGmbH, Oldenburg

mon_t

426

CONTENTS

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.

Protected Attributes
• algo_comm_t ac
• std::string name

Additional Inherited Members
5.140.1

Detailed Description

Insert a MHASignal::waveform_t (p. 812) class into the AC space.
The variable is automatically removed on destruction.

5.140.2
5.140.2.1

Constructor & Destructor Documentation
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. 425) class

channels

Number of audio channels in the waveform_t (p. 425) class

insert_now

Insert implicitely in the constructor (true) or explicitely in the insert() (p. 427)
function (false)

© 2005-2019 HörTech gGmbH, Oldenburg

5.141

mha_audio_descriptor_t Struct Reference

5.140.2.2

427

MHA_AC::waveform_t::∼waveform_t (
void ) [virtual]

Reimplemented from MHASignal::waveform_t (p. 815).

5.140.3

Member Function Documentation

5.140.3.1

void MHA_AC::waveform_t::insert ( )

Insert AC variable into AC space.

5.140.4

Member Data Documentation

5.140.4.1 algo_comm_t MHA_AC::waveform_t::ac [protected]
5.140.4.2

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.141

mha_audio_descriptor_t Struct Reference

Description of an audio fragment (planned as a replacement of mhaconfig_t (p. 504)).

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-2019 HörTech gGmbH, Oldenburg

428

5.141.1

CONTENTS

Detailed Description

Description of an audio fragment (planned as a replacement of mhaconfig_t (p. 504)).

5.141.2

Member Data Documentation

5.141.2.1

unsigned int mha_audio_descriptor_t::n_samples

Number of samples.
5.141.2.2

unsigned int mha_audio_descriptor_t::n_channels

Number of audio channels.
5.141.2.3

unsigned int mha_audio_descriptor_t::n_freqs

Number of frequency bands.
5.141.2.4

unsigned int mha_audio_descriptor_t::is_complex

Flag about sample type.
5.141.2.5 mha_real_t mha_audio_descriptor_t::dt
Time distance between samples (only equidistant samples allowed)
5.141.2.6 mha_real_t∗ mha_audio_descriptor_t::cf
Center frequencies of frequency bands.
5.141.2.7 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.hh

5.142

mha_audio_t Struct Reference

An audio fragment in the openMHA (planned as a replacement of mha_wave_t (p. 496) and
mha_spec_t (p. 465)).
© 2005-2019 HörTech gGmbH, Oldenburg

5.143

mha_channel_info_t Struct Reference

429

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. 428) is unset.

• mha_complex_t ∗ cdata
Data pointer if flag mha_audio_descriptor_t::is_complex ( p. 428) is set.

5.142.1

Detailed Description

An audio fragment in the openMHA (planned as a replacement of mha_wave_t (p. 496) and
mha_spec_t (p. 465)).
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. 496) and mha_spec_t (p. 465) data pointers into corresponding mha_audio_t (p. 428) objects.

5.142.2

Member Data Documentation

5.142.2.1 mha_audio_descriptor_t mha_audio_t::descriptor
Dimension and description of the data.
5.142.2.2 mha_real_t∗ mha_audio_t::rdata
Data pointer if flag mha_audio_descriptor_t::is_complex (p. 428) is unset.
5.142.2.3 mha_complex_t∗ mha_audio_t::cdata
Data pointer if flag mha_audio_descriptor_t::is_complex (p. 428) is set.
The documentation for this struct was generated from the following file:
• mha.hh

5.143

mha_channel_info_t Struct Reference

Channel information structure.
© 2005-2019 HörTech gGmbH, Oldenburg

430

CONTENTS

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.

5.143.1

Detailed Description

Channel information structure.

5.143.2
5.143.2.1

Member Data Documentation
int mha_channel_info_t::id

channel id
5.143.2.2

char mha_channel_info_t::idstr[32]

channel id
5.143.2.3

unsigned int mha_channel_info_t::side

side (left/right)
5.143.2.4 mha_direction_t mha_channel_info_t::dir
source direction
5.143.2.5 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.hh
© 2005-2019 HörTech gGmbH, Oldenburg

5.144

mha_complex_t Struct Reference

5.144

mha_complex_t Struct Reference

431

Type for complex floating point values.

Public Attributes
• mha_real_t re
Real part.

• mha_real_t im
Imaginary part.

5.144.1

Detailed Description

Type for complex floating point values.

5.144.2

Member Data Documentation

5.144.2.1 mha_real_t mha_complex_t::re
Real part.
5.144.2.2 mha_real_t mha_complex_t::im
Imaginary part.
The documentation for this struct was generated from the following file:
• mha.hh

5.145

mha_complex_test_array_t Struct Reference

Several places in MHA rely on the fact that you can cast an array of mha_complex_t (p. 431)
c[] to an array of mha_real_t r[] with r[0] == c[0].re r[1] == c[0].im r[2] == c[1].re ...

Public Attributes
• mha_complex_t c [2]
© 2005-2019 HörTech gGmbH, Oldenburg

432

5.145.1

CONTENTS

Detailed Description

Several places in MHA rely on the fact that you can cast an array of mha_complex_t (p. 431)
c[] to an array of mha_real_t r[] with r[0] == c[0].re r[1] == c[0].im r[2] == c[1].re ...
Check these expectations in static asserts.

5.145.2

Member Data Documentation

5.145.2.1 mha_complex_t mha_complex_test_array_t::c[2]
The documentation for this struct was generated from the following file:
• mha.hh

5.146

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.

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 &)
© 2005-2019 HörTech gGmbH, Oldenburg

5.146

mha_dblbuf_t< FIFO > Class Template Reference

433

• 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.

• 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.146.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.
© 2005-2019 HörTech gGmbH, Oldenburg

434

5.146.2
5.146.2.1

CONTENTS

Member Typedef Documentation
template typedef FIFO::value_type mha_dblbuf_t< FIFO >::value_type

The datatype exchanged by the FIFO and this doublebuffer.

5.146.3
5.146.3.1

Constructor & Destructor Documentation
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.146.3.2

5.146.4

5.146.4.1

template mha_dblbuf_t< FIFO >::∼mha_dblbuf_t ( ) [virtual]

Member Function Documentation

template virtual unsigned mha_dblbuf_t< FIFO >::get_inner_size ( ) const
[inline], [virtual]

© 2005-2019 HörTech gGmbH, Oldenburg

5.146

mha_dblbuf_t< FIFO > Class Template Reference

435

5.146.4.2

template virtual unsigned mha_dblbuf_t< FIFO >::get_outer_size ( ) const
[inline], [virtual]

5.146.4.3

template virtual unsigned mha_dblbuf_t< FIFO >::get_delay ( ) const
[inline], [virtual]

5.146.4.4

template virtual unsigned mha_dblbuf_t< FIFO >::get_fifo_size ( ) const
[inline], [virtual]

5.146.4.5

template virtual unsigned mha_dblbuf_t< FIFO >::get_input_channels ( )
const [inline], [virtual]

5.146.4.6

template virtual unsigned mha_dblbuf_t< FIFO >::get_output_channels ( )
const [inline], [virtual]

5.146.4.7

template virtual unsigned mha_dblbuf_t< FIFO >::get_input_fifo_fill_count (
) const [inline], [virtual]

5.146.4.8

template virtual unsigned mha_dblbuf_t< FIFO >::get_output_fifo_fill_count
( ) const [inline], [virtual]

5.146.4.9

template virtual unsigned mha_dblbuf_t< FIFO >::get_input_fifo_space ( )
const [inline], [virtual]

5.146.4.10

template virtual unsigned mha_dblbuf_t< FIFO >::get_output_fifo_space (
) const [inline], [virtual]

5.146.4.11

template virtual MHA_Error∗ mha_dblbuf_t< FIFO >::get_inner_error (
) const [inline], [virtual]

5.146.4.12

template void mha_dblbuf_t< FIFO >::provoke_inner_error (
const MHA_Error & error ) [virtual]

5.146.4.13

template void mha_dblbuf_t< FIFO >::provoke_outer_error (
const MHA_Error & error ) [virtual]

5.146.4.14

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-2019 HörTech gGmbH, Oldenburg

436

CONTENTS

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. 445)

5.146.4.15

When count is > outer_size as given to constructor or the underlying
fifo implementation detects an error.

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. 445)

5.146.4.16

When the underlying fifo implementation detects an error.

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.

Exceptions
MHA_Error ( p. 445)

5.146.5

When the underlying fifo implementation detects an error.

Member Data Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

5.146

mha_dblbuf_t< FIFO > Class Template Reference

5.146.5.1

437

template unsigned mha_dblbuf_t< FIFO >::outer_size [private]

The block size used by the outer process.
5.146.5.2

template unsigned mha_dblbuf_t< FIFO >::inner_size [private]

The block size used by the inner process.
5.146.5.3

template unsigned mha_dblbuf_t< FIFO >::delay [private]

The delay introduced by bidirectional buffer size adaptation.
5.146.5.4

template unsigned mha_dblbuf_t< FIFO >::fifo_size [private]

The size of each of the FIFOs.
5.146.5.5

template unsigned mha_dblbuf_t< FIFO >::input_channels [private]

The number of input channels.
5.146.5.6

template unsigned mha_dblbuf_t< FIFO >::output_channels [private]

The number of output channels.
5.146.5.7

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.146.5.8

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.146.5.9

template MHA_Error∗ mha_dblbuf_t< FIFO >::inner_error [private]

Owned copy of exception to be thrown in inner thread.
5.146.5.10

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
© 2005-2019 HörTech gGmbH, Oldenburg

438

5.147

CONTENTS

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.147.1

Detailed Description

Channel source direction structure.

5.147.2

Member Data Documentation

5.147.2.1 mha_real_t mha_direction_t::azimuth
azimuth in radiants

5.147.2.2 mha_real_t mha_direction_t::elevation
elevation in radiants

5.147.2.3 mha_real_t mha_direction_t::distance
distance in meters
The documentation for this struct was generated from the following file:

• mha.hh
© 2005-2019 HörTech gGmbH, Oldenburg

5.148

mha_drifter_fifo_t< T > Class Template Reference

5.148

mha_drifter_fifo_t< T > Class Template Reference

439

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 >

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. 445) 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. 445) 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. 441) or mha_drifter_fifo_t::write ( p. 441)
when their xrun in succession counter exceeds its limit.

• virtual void starting ()
Called by mha_drifter_fifo_t::read ( p. 441) or mha_drifter_fifo_t::write ( p. 441)
when the respective flag (mha_drifter_fifo_t::reader_started ( p. 443) or mha_drifter←_fifo_t::writer_started ( p. 443)) 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.
© 2005-2019 HörTech gGmbH, Oldenburg

440

CONTENTS

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.

• 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. 443)
and mha_drifter_fifo_t::writer_started ( p. 443) are true, then first mha_drifter_fifo←_t::desired_fill_count ( p. 443) instances of mha_drifter_fifo_t::null_data ( p. 444)
are delivered to the reader.

Additional Inherited Members
5.148.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.
© 2005-2019 HörTech gGmbH, Oldenburg

5.148

mha_drifter_fifo_t< T > Class Template Reference

5.148.2

Constructor & Destructor Documentation

5.148.2.1

441

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.
5.148.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.148.3
5.148.3.1

Member Function Documentation
template void mha_drifter_fifo_t< T >::write (
const T ∗ data,
unsigned count ) [virtual]

write data to fifo
Sets writer_started (p. 443) to true.
When processing has started, i.e. both reader_started (p. 443) and writer_started (p. 443)
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. 444) exceeds maximum_←writer_xruns_in_succession_before_stop (p. 444).
Parameters
data
count

Pointer to source data.
Number of instances to copy

Reimplemented from mha_fifo_t< T > (p. 454).
5.148.3.2

template void mha_drifter_fifo_t< T >::read (
T ∗ buf,
unsigned count ) [virtual]

Read data from fifo.
© 2005-2019 HörTech gGmbH, Oldenburg

442

CONTENTS

Sets reader_started (p. 443) to true.
When processing has started, i.e. both reader_started (p. 443) and writer_started (p. 443)
are true, then read specified ammount of data from the fifo. As long as startup_zeros (p. 445)
is > 0, null_data (p. 444) is delivered to the reader and startup_zeros (p. 445) is diminished.
Only when startup_zeros (p. 445) 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. 443), then
only so much data are read that minimum_fill_count (p. 443) entries remain in the fifo, the
missing data is replaced with null_data (p. 444), and the reader xrun counters are increased.
Processing is stopped when reader_xruns_in_succession (p. 444) exceeds maximum_←reader_xruns_in_succession_before_stop (p. 444).
Parameters
buf

Pointer to the target buffer

count

Number of instances to copy

Reimplemented from mha_fifo_t< T > (p. 455).
5.148.3.3

template unsigned mha_drifter_fifo_t< T >::get_fill_count (
[virtual]

) const

Return fill_count, adding mha_drifter_fifo_t::startup_zeros (p. 445) to the number of
samples actually in the fifo's buffer.
Reimplemented from mha_fifo_t< T > (p. 455).
5.148.3.4

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. 445) 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. 455).
5.148.3.5

template virtual unsigned mha_drifter_fifo_t< T >::get_des_fill_count ( )
const [inline], [virtual]

The desired fill count of this fifo.
5.148.3.6

template virtual unsigned mha_drifter_fifo_t< T >::get_min_fill_count ( )
const [inline], [virtual]

The minimum fill count of this fifo.
© 2005-2019 HörTech gGmbH, Oldenburg

5.148

5.148.3.7

mha_drifter_fifo_t< T > Class Template Reference

443

template void mha_drifter_fifo_t< T >::stop ( ) [virtual]

Called by mha_drifter_fifo_t::read (p. 441) or mha_drifter_fifo_t::write (p. 441)
when their xrun in succession counter exceeds its limit.
Called by read (p. 441) or write (p. 441) when their xrun in succession counter exceeds its limit.
May also be called explicitly.
5.148.3.8

template void mha_drifter_fifo_t< T >::starting ( ) [virtual]

Called by mha_drifter_fifo_t::read (p. 441) or mha_drifter_fifo_t::write (p. 441)
when the respective flag (mha_drifter_fifo_t::reader_started (p. 443) or mha_drifter_←fifo_t::writer_started (p. 443)) is about to be toggled from false to true.
The fifo's buffer is emptied, this method resets startup_zeros (p. 445) to desired_fill_count
(p. 443), and it also resets reader_xruns_since_start (p. 444) and writer_xruns_since_start
(p. 444) to 0.

5.148.4
5.148.4.1

Member Data Documentation
template const unsigned mha_drifter_fifo_t< T >::minimum_fill_count
[private]

The minimum fill count of this fifo.
5.148.4.2

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.148.4.3

template bool mha_drifter_fifo_t< T >::writer_started [private]

Flag set to true when write is called the first time.
5.148.4.4

template bool mha_drifter_fifo_t< T >::reader_started [private]

Flag set to true when read is called for the first time.
5.148.4.5

template unsigned mha_drifter_fifo_t< T >::writer_xruns_total [private]

The number of xruns seen by the writer since object instantiation.
© 2005-2019 HörTech gGmbH, Oldenburg

444

5.148.4.6

CONTENTS

template unsigned mha_drifter_fifo_t< T >::reader_xruns_total [private]

The number of xruns seen by the reader since object instantiation.
5.148.4.7

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.148.4.8

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.148.4.9

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.148.4.10

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.
5.148.4.11

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.148.4.12

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.148.4.13

template mha_fifo_t::value_type mha_drifter_fifo_t< T >::null_data
[private]

The value used in place of missing data.
© 2005-2019 HörTech gGmbH, Oldenburg

5.149

MHA_Error Class Reference

5.148.4.14

445

template unsigned mha_drifter_fifo_t< T >::startup_zeros [private]

When processing starts, that is when both mha_drifter_fifo_t::reader_started (p. 443)
and mha_drifter_fifo_t::writer_started (p. 443) are true, then first mha_drifter_fifo_t<←T>::desired_fill_count (p. 443) instances of mha_drifter_fifo_t::null_data (p. 444) are
delivered to the reader.
These null_data (p. 444) instances are not transmitted through the fifo because filling the fifo
with enough null_data (p. 444) might not be realtime safe and this filling has to be initiated by
starting (p. 443) or stop (p. 443) (this implementation: starting (p. 443)) which are be called
with realtime constraints.
The documentation for this class was generated from the following file:

• mha_fifo.h

5.149

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. 445).

•
•
•
•

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
© 2005-2019 HörTech gGmbH, Oldenburg

446

5.149.1

CONTENTS

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. 445) class holds source file name, line number and an error message.

5.149.2
5.149.2.1

Constructor & Destructor Documentation
MHA_Error::MHA_Error (
const char ∗ s_file,
int l,
const char ∗ fmt,
... )

Create an instance of a MHA_Error (p. 445).
Parameters
s_file

source file name (FILE)

l

source line (LINE)

fmt

format string for error message (as in printf)

5.149.2.2

MHA_Error::MHA_Error (
const MHA_Error & p )

5.149.2.3

MHA_Error::∼MHA_Error ( ) throw )

5.149.3

Member Function Documentation

5.149.3.1 MHA_Error & MHA_Error::operator= (
const MHA_Error & p )
5.149.3.2

const char∗ MHA_Error::get_msg ( ) const [inline]

Return the error message without source position.
5.149.3.3

const char∗ MHA_Error::get_longmsg ( ) const [inline]

Return the error message with source position.
© 2005-2019 HörTech gGmbH, Oldenburg

5.150

mha_fifo_lw_t< T > Class Template Reference

5.149.3.4

const char∗ MHA_Error::what ( ) const throw )

447

[inline]

overwrite std::execption::what()

5.149.4

Member Data Documentation

5.149.4.1

char∗ MHA_Error::msg [private]

5.149.4.2

char∗ MHA_Error::longmsg [private]

The documentation for this class was generated from the following files:
• mha_error.hh
• mha_error.cpp

5.150

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 >

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.
© 2005-2019 HörTech gGmbH, Oldenburg

448

CONTENTS

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.150.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.150.2
5.150.2.1

Constructor & Destructor Documentation
template mha_fifo_lw_t< T >::mha_fifo_lw_t (
unsigned max_fill_count ) [explicit]

Create FIFO with fixed buffer size.
5.150.2.2

template mha_fifo_lw_t< T >::∼mha_fifo_lw_t ( ) [virtual]

release synchronization object

5.150.3
5.150.3.1

Member Function Documentation
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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.150

mha_fifo_lw_t< T > Class Template Reference

449

Parameters
data
count

Pointer to source data.
Number of instances to copy.

Exceptions
MHA_Error ( p. 445)

when detecting a deadlock situation.

Reimplemented from mha_fifo_t< T > (p. 454).
5.150.3.2

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.
Parameters
buf

Pointer to the target buffer.

count

Number of instances to copy.

Exceptions
MHA_Error ( p. 445)

when detecting a deadlock situation.

Reimplemented from mha_fifo_t< T > (p. 455).
5.150.3.3

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. 445) to be thrown

5.150.4

Member Data Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

450

5.150.4.1

CONTENTS

template mha_fifo_thread_platform_t∗ mha_fifo_lw_t< T >::sync
[private]

platform specific thread synchronization
5.150.4.2

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.151

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 ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.151

mha_fifo_posix_threads_t Class Reference

451

Private Attributes
• pthread_mutex_t mutex
• pthread_cond_t decrease_condition
• pthread_cond_t increase_condition

5.151.1

Constructor & Destructor Documentation

5.151.1.1

mha_fifo_posix_threads_t::mha_fifo_posix_threads_t ( ) [inline]

5.151.1.2

virtual mha_fifo_posix_threads_t::∼mha_fifo_posix_threads_t (
[virtual]

5.151.2

5.151.2.1

) [inline],

Member Function Documentation

virtual void mha_fifo_posix_threads_t::aquire_mutex ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 459).
5.151.2.2

virtual void mha_fifo_posix_threads_t::release_mutex ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 459).
5.151.2.3

virtual void mha_fifo_posix_threads_t::wait_for_decrease ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 459).
5.151.2.4

virtual void mha_fifo_posix_threads_t::wait_for_increase ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 459).
5.151.2.5

virtual void mha_fifo_posix_threads_t::increment ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 459).
5.151.2.6

virtual void mha_fifo_posix_threads_t::decrement ( ) [inline], [virtual]

Implements mha_fifo_thread_platform_t (p. 460).
© 2005-2019 HörTech gGmbH, Oldenburg

452

5.151.3

CONTENTS

Member Data Documentation

5.151.3.1

pthread_mutex_t mha_fifo_posix_threads_t::mutex [private]

5.151.3.2

pthread_cond_t mha_fifo_posix_threads_t::decrease_condition [private]

5.151.3.3

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

5.152

mha_fifo_t< T > Class Template Reference

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.
© 2005-2019 HörTech gGmbH, Oldenburg

5.152

mha_fifo_t< T > Class Template Reference

453

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.

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.
© 2005-2019 HörTech gGmbH, Oldenburg

454

5.152.1

CONTENTS

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.152.2
5.152.2.1

Member Typedef Documentation
template typedef T mha_fifo_t< T >::value_type

The data type exchanged by this fifo.

5.152.3
5.152.3.1

Constructor & Destructor Documentation
template mha_fifo_t< T >::mha_fifo_t (
unsigned max_fill_count ) [explicit]

Create FIFO with fixed buffer size.
5.152.3.2

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.152.3.3

template mha_fifo_t< T >::mha_fifo_t (
const mha_fifo_t< T > & src )

Copy constructor.
5.152.3.4

template mha_fifo_t< T >::∼mha_fifo_t ( ) [virtual]

Destroy FIFO.

5.152.4
5.152.4.1

Member Function Documentation
template void mha_fifo_t< T >::write (
const T ∗ data,
unsigned count ) [virtual]

write specified ammount of data to the fifo.

© 2005-2019 HörTech gGmbH, Oldenburg

5.152

mha_fifo_t< T > Class Template Reference

455

Parameters
data
count

Pointer to source data.
Number of instances to copy

Exceptions
MHA_Error ( p. 445)

when there is not enough space available.

Reimplemented in mha_fifo_lw_t< T > (p. 448), and mha_drifter_fifo_t< T > (p. 441).
5.152.4.2

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. 445)

when there is not enough data available.

Reimplemented in mha_fifo_lw_t< T > (p. 449), and mha_drifter_fifo_t< T > (p. 441).
5.152.4.3

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. 442).
5.152.4.4

template unsigned mha_fifo_t< T >::get_available_space (
[virtual]

) const

Read-only access to available_space.
Reimplemented in mha_drifter_fifo_t< T > (p. 442).
5.152.4.5

template virtual unsigned mha_fifo_t< T >::get_max_fill_count (
[inline], [virtual]

The capacity of this fifo.
© 2005-2019 HörTech gGmbH, Oldenburg

) const

456

5.152.4.6

CONTENTS

template mha_fifo_t< T > & mha_fifo_t< T >::operator= (
const mha_fifo_t< T > & src )

Assignment operator.
5.152.4.7

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.152.5

Member Data Documentation

5.152.5.1

template const unsigned mha_fifo_t< T >::max_fill_count [private]

The maximum fill count of this FIFO.
5.152.5.2

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.152.5.3

template T∗ mha_fifo_t< T >::write_ptr [private]

points to location where to write next
5.152.5.4

template const T∗ mha_fifo_t< T >::read_ptr [private]

points to location where to read next
5.152.5.5

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

5.153

mha_fifo_thread_guard_t Class Reference

Simple Mutex Guard Class.
© 2005-2019 HörTech gGmbH, Oldenburg

5.154

mha_fifo_thread_platform_t Class Reference

457

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.153.1

Detailed Description

Simple Mutex Guard Class.

5.153.2

Constructor & Destructor Documentation

5.153.2.1

mha_fifo_thread_guard_t::mha_fifo_thread_guard_t (
mha_fifo_thread_platform_t ∗ sync ) [inline]

5.153.2.2

mha_fifo_thread_guard_t::∼mha_fifo_thread_guard_t ( ) [inline]

5.153.3

Member Data Documentation

5.153.3.1 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

5.154

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

© 2005-2019 HörTech gGmbH, Oldenburg

458

CONTENTS

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 &)

5.154.1

Detailed Description

Abstract base class for synchronizing multithreaded (producer/consumer) fifo operations.
Works only with single producer and single consumer.

5.154.2
5.154.2.1

Constructor & Destructor Documentation
virtual mha_fifo_thread_platform_t::∼mha_fifo_thread_platform_t (
[virtual]

) [inline],

Make destructor virtual.
5.154.2.2

mha_fifo_thread_platform_t::mha_fifo_thread_platform_t (
const mha_fifo_thread_platform_t & ) [private]

5.154.2.3

mha_fifo_thread_platform_t::mha_fifo_thread_platform_t ( ) [inline]

Make default constructor accessible.
© 2005-2019 HörTech gGmbH, Oldenburg

5.154

mha_fifo_thread_platform_t Class Reference

5.154.3

Member Function Documentation

5.154.3.1

459

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. 451).
5.154.3.2

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. 451).
5.154.3.3

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. 451).
5.154.3.4

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. 451).
5.154.3.5

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. 451).
© 2005-2019 HörTech gGmbH, Oldenburg

460

5.154.3.6

CONTENTS

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. 451).
5.154.3.7 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.155

mha_real_test_array_t Struct Reference

Public Attributes
• mha_real_t r [4]

5.155.1

Member Data Documentation

5.155.1.1 mha_real_t mha_real_test_array_t::r[4]
The documentation for this struct was generated from the following file:
• mha.hh

5.156

mha_rt_fifo_element_t< T > Class Template Reference

Object wrapper for mha_rt_fifo_t (p. 462).

Public Member Functions
• mha_rt_fifo_element_t (T ∗data)
Constructor.

• ∼mha_rt_fifo_element_t ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.156

mha_rt_fifo_element_t< T > Class Template Reference

461

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.

5.156.1

Detailed Description

template
class mha_rt_fifo_element_t< T >
Object wrapper for mha_rt_fifo_t (p. 462).

5.156.2
5.156.2.1

Constructor & Destructor Documentation
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.156.2.2

template mha_rt_fifo_element_t< T >::∼mha_rt_fifo_element_t ( )
[inline]

5.156.3
5.156.3.1

Member Data Documentation
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.
5.156.3.2

template bool mha_rt_fifo_element_t< T >::abandonned

Indicates that this element will no longer be used and may be deleted.
© 2005-2019 HörTech gGmbH, Oldenburg

462

5.156.3.3

CONTENTS

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.157

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.

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. 463) or poll_1 ( p. 464).
© 2005-2019 HörTech gGmbH, Oldenburg

5.157

mha_rt_fifo_t< T > Class Template Reference

5.157.1

Detailed Description

463

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. 464). The push operation is not real time safe,
it allocates and deallocates memory. The latest element is retrieved by calling poll (p. 463).
This operation will skip fifo elements if more than one push (p. 464) has been occured since
the last poll. To avoid skipping, call the poll_1 (p. 464) operation instead.

5.157.2

5.157.2.1

Constructor & Destructor Documentation

template mha_rt_fifo_t< T >::mha_rt_fifo_t ( ) [inline]

Construct empty fifo.
5.157.2.2

template mha_rt_fifo_t< T >::∼mha_rt_fifo_t ( ) [inline]

Destructor will delete all data currently in the fifo.

5.157.3

5.157.3.1

Member Function Documentation

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.

© 2005-2019 HörTech gGmbH, Oldenburg

464

5.157.3.2

CONTENTS

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. 463) or poll_1()
(p. 464) 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.157.3.3

template void mha_rt_fifo_t< T >::push (
T ∗ data ) [inline]

Add element to the Fifo.
Deletes abandonned elements in the fifo.
Parameters
data

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.

5.157.3.4

template void mha_rt_fifo_t< T >::remove_abandonned ( ) [inline],
[private]

Deletes abandonned elements.
5.157.3.5

template void mha_rt_fifo_t< T >::remove_all ( ) [inline], [private]

Deletes all elements.

5.157.4

5.157.4.1

Member Data Documentation

template mha_rt_fifo_element_t∗ mha_rt_fifo_t< T >::root
[private]

The first element in the fifo. Deleting elements starts here.
© 2005-2019 HörTech gGmbH, Oldenburg

5.158

mha_spec_t Struct Reference

5.157.4.2

465

template mha_rt_fifo_element_t∗ mha_rt_fifo_t< T >::current
[private]

The element most recently returned by poll (p. 463) or poll_1 (p. 464).
Searching for new elements starts here.
The documentation for this class was generated from the following file:
• mha_fifo.h

5.158

mha_spec_t Struct Reference

Spectrum signal structure.
Inheritance diagram for mha_spec_t:

mha_spec_t

MHASignal::spectrum_t

fshift_hilbert::hilbert
_shifter_t

MHA_AC::spectrum_t

MHAMultiSrc::spectrum_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
© 2005-2019 HörTech gGmbH, Oldenburg

wave2spec_t

466

5.158.1

CONTENTS

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
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.158.2

Member Data Documentation

5.158.2.1 mha_complex_t∗ mha_spec_t::buf
signal buffer
5.158.2.2

unsigned int mha_spec_t::num_channels

number of channels
5.158.2.3

unsigned int mha_spec_t::num_frames

number of frames in each channel
5.158.2.4 mha_channel_info_t∗ mha_spec_t::channel_info
detailed channel description
The documentation for this struct was generated from the following file:
• mha.hh

5.159

mha_stash_environment_variable_t Class Reference

This class changes the value of an environment variable when constructed and restores the
original state of the environment variable when destroyed.
© 2005-2019 HörTech gGmbH, Oldenburg

5.159

mha_stash_environment_variable_t Class Reference

467

Public Member Functions
• mha_stash_environment_variable_t (const std::string &variable_name, const std←::string &new_content)
• ∼mha_stash_environment_variable_t ()

Private Attributes
• const bool existed_before
Flag indicates if the environment variable existed before constructor.

• const std::string variable_name
Name of environment variable.

• const std::string original_content
Content of environment variable before constructor executed.

5.159.1

Detailed Description

This class changes the value of an environment variable when constructed and restores the
original state of the environment variable when destroyed.
Can be used for testing functionality related to environment variables.
Todo Move to collection of unit-test support classes when we have one.

5.159.2

Constructor & Destructor Documentation

5.159.2.1

mha_stash_environment_variable_t::mha_stash_environment_variable_t (
const std::string & variable_name,
const std::string & new_content ) [inline]

5.159.2.2

mha_stash_environment_variable_t::∼mha_stash_environment_variable_t ( ) [inline]

5.159.3
5.159.3.1

Member Data Documentation
const bool mha_stash_environment_variable_t::existed_before [private]

Flag indicates if the environment variable existed before constructor.
5.159.3.2

const std::string mha_stash_environment_variable_t::variable_name [private]

Name of environment variable.
© 2005-2019 HörTech gGmbH, Oldenburg

468

5.159.3.3

CONTENTS

const std::string mha_stash_environment_variable_t::original_content [private]

Content of environment variable before constructor executed.
The documentation for this class was generated from the following file:
• mha_os.h

5.160

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.160.1

Detailed Description

Portable Multiplexable cross-thread notification.
© 2005-2019 HörTech gGmbH, Oldenburg

5.161

MHA_TCP::Client Class Reference

5.160.2

Constructor & Destructor Documentation

5.160.2.1

Async_Notify::Async_Notify ( )

5.160.2.2

Async_Notify::∼Async_Notify ( ) [virtual]

5.160.3

469

Member Function Documentation

5.160.3.1

void Async_Notify::reset ( ) [virtual]

Reimplemented from MHA_TCP::Wakeup_Event (p. 495).
5.160.3.2
5.160.4

void Async_Notify::set ( ) [virtual]
Member Data Documentation

5.160.4.1

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.161

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-2019 HörTech gGmbH, Oldenburg

470

CONTENTS

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.161.1

Detailed Description

A portable class for a tcp client connections.

5.161.2
5.161.2.1

Constructor & Destructor Documentation
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. 481).

port

The port or the TCP Server (p. 481).

5.161.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.
Parameters
host

The hostname of the TCP Server (p. 481).

port
timeout_watcher

The port or the TCP Server (p. 481).
an Event watcher that implements a timeout.

The documentation for this class was generated from the following files:
• mha_tcp.hh
© 2005-2019 HörTech gGmbH, Oldenburg

5.162

MHA_TCP::Connection Class Reference

471

• mha_tcp.cpp

5.162

MHA_TCP::Connection Class Reference

Connection (p. 471) 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.

• 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="")
© 2005-2019 HörTech gGmbH, Oldenburg

472

CONTENTS

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.

Private Attributes
•
•
•
•
•
•

std::string outbuf
std::string inbuf
Sockread_Event ∗ read_event
Sockwrite_Event ∗ write_event
bool closed
struct sockaddr_in peer_addr
© 2005-2019 HörTech gGmbH, Oldenburg

5.162

MHA_TCP::Connection Class Reference

5.162.1

Detailed Description

473

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

5.162.2

Constructor & Destructor Documentation

5.162.2.1

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. 445)

5.162.2.2

If the file descriptor is < 0.

Connection::∼Connection ( ) [virtual]

Destructor closes the underlying file descriptor.

5.162.3
5.162.3.1

Member Function Documentation
void MHA_TCP::Connection::init_peer_data ( ) [private]

determine peer address and port
5.162.3.2

bool Connection::can_sysread ( ) [private]

Determine wether at least 1 byte can be read without blocking.
5.162.3.3

bool Connection::can_syswrite ( ) [private]

Determine wether at least 1 byte can be written without blocking.
5.162.3.4

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.

© 2005-2019 HörTech gGmbH, Oldenburg

474

CONTENTS

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.

5.162.3.5

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.162.3.6 Sockread_Event ∗ Connection::get_read_event ( )
5.162.3.7 Sockwrite_Event ∗ Connection::get_write_event ( )
5.162.3.8

std::string Connection::get_peer_address ( )

Get peer's IP Address.
5.162.3.9

unsigned short Connection::get_peer_port ( )

Get peer's TCP port.
5.162.3.10 SOCKET MHA_TCP::Connection::get_fd ( ) const [inline]
Return the (protected) file descriptor of the connection.
Will be required for SSL.
© 2005-2019 HörTech gGmbH, Oldenburg

5.162

MHA_TCP::Connection Class Reference

5.162.3.11

475

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.162.3.12

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.162.3.13

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.
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.162.3.14

std::string Connection::read_line (
char delim = '\n' )

Reads a single line of data from the socket.
Blocks if necessary.

© 2005-2019 HörTech gGmbH, Oldenburg

476

CONTENTS

Parameters
The line delimiter.

delim

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.162.3.15

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.

Returns
The string of characters read. The string may be shorter if EOF is encountered.

5.162.3.16

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.162.3.17

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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.162

MHA_TCP::Connection Class Reference

5.162.3.18

477

bool Connection::needs_write ( )

Checks if the internal "outgoing" buffer contains data.

5.162.3.19

unsigned Connection::buffered_incoming_bytes ( ) const

Returns the number of bytes in the internal "incoming" buffer.

5.162.3.20

unsigned Connection::buffered_outgoing_bytes ( ) const

Returns the number of bytes in the internal "outgoing" buffer.

5.162.4

Member Data Documentation

5.162.4.1

std::string MHA_TCP::Connection::outbuf [private]

5.162.4.2

std::string MHA_TCP::Connection::inbuf [private]

5.162.4.3 Sockread_Event∗ MHA_TCP::Connection::read_event [private]

5.162.4.4 Sockwrite_Event∗ MHA_TCP::Connection::write_event [private]

5.162.4.5

bool MHA_TCP::Connection::closed [private]

5.162.4.6

struct sockaddr_in MHA_TCP::Connection::peer_addr [private]

5.162.4.7 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
© 2005-2019 HörTech gGmbH, Oldenburg

478

5.163

CONTENTS

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 ()

Private Attributes
• std::set< Wakeup_Event ∗ > events
The list of events to watch.

5.163.1

Detailed Description

OS-independent event watcher, uses select on Unix and WaitForMultipleObjects on Windows.
© 2005-2019 HörTech gGmbH, Oldenburg

5.163

MHA_TCP::Event_Watcher Class Reference

5.163.2

Member Typedef Documentation

479

5.163.2.1

typedef std::set MHA_TCP::Event_Watcher::Events

5.163.2.2

typedef std::set::iterator MHA_TCP::Event_Watcher::iterator

5.163.3

5.163.3.1
5.163.4

5.163.4.1

Constructor & Destructor Documentation

Event_Watcher::∼Event_Watcher ( ) [virtual]
Member Function Documentation

void Event_Watcher::observe (
Wakeup_Event ∗ event )

Add an event to this observer.
5.163.4.2

void Event_Watcher::ignore (
Wakeup_Event ∗ event )

Remove an event from this observer.
5.163.4.3 std::set< Wakeup_Event ∗ > Event_Watcher::wait ( )
\ Wait for some event to occur.
Return all events that are ready

5.163.5

Member Data Documentation

5.163.5.1 std::set 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
© 2005-2019 HörTech gGmbH, Oldenburg

480

5.164

CONTENTS

MHA_TCP::OS_EVENT_TYPE Struct Reference

Public Types

Public Attributes
• enum MHA_TCP::OS_EVENT_TYPE:: { ... } mode
• union {
int fd
double timeout
};

5.164.1

5.164.1.1

Member Enumeration Documentation

anonymous enum

Enumerator
R
W
X
T

5.164.2

Member Data Documentation

5.164.2.1

enum { ... } MHA_TCP::OS_EVENT_TYPE::mode

5.164.2.2

int MHA_TCP::OS_EVENT_TYPE::fd

5.164.2.3

double MHA_TCP::OS_EVENT_TYPE::timeout

5.164.2.4

union { ... }

The documentation for this struct was generated from the following file:

• mha_tcp.hh
© 2005-2019 HörTech gGmbH, Oldenburg

5.165

MHA_TCP::Server Class Reference

5.165

MHA_TCP::Server Class Reference

481

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. 478).

• 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.165.1
5.165.1.1

Constructor & Destructor Documentation
Server::Server (
unsigned short port = 0,
const std::string & iface = "0.0.0.0" )

Create a TCP server socket.

© 2005-2019 HörTech gGmbH, Oldenburg

482

CONTENTS

Parameters
port

The TCP port to listen to.

iface

The network interface to bind to.

5.165.1.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.165.1.3

Server::∼Server ( )

Close the TCP server socket.

5.165.2

Member Function Documentation

5.165.2.1

void Server::initialize (
const std::string & iface,
unsigned short port ) [private]

5.165.2.2

std::string Server::get_interface ( ) const

Get the name given in the constructor for the network interface.
5.165.2.3

unsigned short Server::get_port ( ) const

Get the port that the TCP server socket currently listens to.
5.165.2.4 Sockaccept_Event ∗ Server::get_accept_event ( )
Produces an event that can be observed by an Event_Watcher (p. 478).
This event signals incoming connections that can be accepted.
© 2005-2019 HörTech gGmbH, Oldenburg

5.166

MHA_TCP::sock_init_t Class Reference

483

5.165.2.5 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.165.2.6 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.165.3

Member Data Documentation

5.165.3.1

sockaddr_in MHA_TCP::Server::sock_addr [private]

5.165.3.2 SOCKET MHA_TCP::Server::serversocket [private]
5.165.3.3

std::string MHA_TCP::Server::iface [private]

5.165.3.4

unsigned short MHA_TCP::Server::port [private]

5.165.3.5 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.166

MHA_TCP::sock_init_t Class Reference

Public Member Functions
• sock_init_t ()
© 2005-2019 HörTech gGmbH, Oldenburg

484

5.166.1

CONTENTS

Constructor & Destructor Documentation

5.166.1.1

MHA_TCP::sock_init_t::sock_init_t ( ) [inline]

The documentation for this class was generated from the following file:
• mha_tcp.cpp

5.167

MHA_TCP::Sockaccept_Event Class Reference

Inheritance diagram for MHA_TCP::Sockaccept_Event:

MHA_TCP::Wakeup_Event

MHA_TCP::Sockaccept
_Event

Public Member Functions
• Sockaccept_Event (SOCKET)

Additional Inherited Members
5.167.1
5.167.1.1

Constructor & Destructor Documentation
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
© 2005-2019 HörTech gGmbH, Oldenburg

5.168

MHA_TCP::Sockread_Event Class Reference

5.168

MHA_TCP::Sockread_Event Class Reference

485

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.

Additional Inherited Members
5.168.1

Detailed Description

Watch socket for incoming data.

5.168.2
5.168.2.1

Constructor & Destructor Documentation
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:
© 2005-2019 HörTech gGmbH, Oldenburg

486

CONTENTS

• mha_tcp.hh
• mha_tcp.cpp

5.169

MHA_TCP::Sockwrite_Event Class Reference

Inheritance diagram for MHA_TCP::Sockwrite_Event:

MHA_TCP::Wakeup_Event

MHA_TCP::Sockwrite
_Event

Public Member Functions
• Sockwrite_Event (SOCKET s)

Additional Inherited Members

5.169.1

Constructor & Destructor Documentation

5.169.1.1

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.170

MHA_TCP::Thread Class Reference

A very simple class for portable threads.
© 2005-2019 HörTech gGmbH, Oldenburg

5.170

MHA_TCP::Thread Class Reference

487

Public Types
• 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. 486) is finished.

• virtual void run ()
The internal method that delegated the new thread to the registered Thread ( p. 486) function.

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. 445) 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.
© 2005-2019 HörTech gGmbH, Oldenburg

488

CONTENTS

Private Attributes
• pthread_t thread_handle
The posix thread handle.

• pthread_attr_t thread_attr
The posix thread attribute structure.

5.170.1

Detailed Description

A very simple class for portable threads.

5.170.2
5.170.2.1

Member Typedef Documentation
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.170.3
5.170.3.1

Member Enumeration Documentation
anonymous enum

The current state of the thread.
Enumerator
PREPARED
RUNNING
FINISHED

5.170.4
5.170.4.1

Constructor & Destructor Documentation
MHA_TCP::Thread::Thread ( ) [protected]

Default constructor may only be used by derived classes that want to start the thread themselves.
5.170.4.2

Thread::Thread (
Thread::thr_f func,
void ∗ arg = 0 )

Constructor starts a new thread.

© 2005-2019 HörTech gGmbH, Oldenburg

5.170

MHA_TCP::Thread Class Reference

489

Parameters
func

The function to be executed by the thread.

arg

The argument given to pass to the thread function.

5.170.4.3

Thread::∼Thread ( ) [virtual]

The destructor should only be called when the Thread (p. 486) is finished.
There is preliminary support for forceful thread cancellation in the destructor, but probably not
very robust or portable..

5.170.5
5.170.5.1

Member Function Documentation
void Thread::run ( ) [virtual]

The internal method that delegated the new thread to the registered Thread (p. 486) function.

5.170.6
5.170.6.1

Member Data Documentation
pthread_t MHA_TCP::Thread::thread_handle [private]

The posix thread handle.
5.170.6.2

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.
5.170.6.3

void∗ MHA_TCP::Thread::arg [protected]

The argument for the client's thread function.
5.170.6.4

void∗ MHA_TCP::Thread::return_value [protected]

The return value from the client's thread function is stored here When that function returns.
5.170.6.5 Async_Notify MHA_TCP::Thread::thread_finish_event
Event will be triggered when the thread exits.
© 2005-2019 HörTech gGmbH, Oldenburg

490

5.170.6.6

CONTENTS

enum { ... } MHA_TCP::Thread::state

The current state of the thread.
5.170.6.7 thr_f MHA_TCP::Thread::thread_func
The thread function that the client has registered.
5.170.6.8

void∗ MHA_TCP::Thread::thread_arg

The argument that the client wants to be handed through to the thread function.
5.170.6.9 MHA_Error∗ MHA_TCP::Thread::error
The MHA_Error (p. 445) 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.171

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 ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.172

MHA_TCP::Timeout_Watcher Class Reference

491

Private Attributes
• double end_time

Additional Inherited Members
5.171.1

Constructor & Destructor Documentation

5.171.1.1

5.171.2

Timeout_Event::Timeout_Event (
double interval )
Member Function Documentation

5.171.2.1 OS_EVENT_TYPE Timeout_Event::get_os_event ( ) [virtual]
Reimplemented from MHA_TCP::Wakeup_Event (p. 494).

5.171.3

Member Data Documentation

5.171.3.1

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.172

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-2019 HörTech gGmbH, Oldenburg

492

CONTENTS

Public Member Functions
• Timeout_Watcher (double interval)
• virtual ∼Timeout_Watcher ()

Private Attributes
• Timeout_Event timeout

Additional Inherited Members

5.172.1

Detailed Description

OS-independent event watcher with internal fixed-end-time timeout.

5.172.2

Constructor & Destructor Documentation

5.172.2.1

Timeout_Watcher::Timeout_Watcher (
double interval ) [explicit]

5.172.2.2

Timeout_Watcher::∼Timeout_Watcher ( ) [virtual]

5.172.3

Member Data Documentation

5.172.3.1 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-2019 HörTech gGmbH, Oldenburg

5.173

MHA_TCP::Wakeup_Event Class Reference

5.173

MHA_TCP::Wakeup_Event Class Reference

493

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. 478) when this event is added to its list of observed events.

• virtual void ignored_by (Event_Watcher ∗observer)
Called by the Event_Watcher ( p. 478) 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-2019 HörTech gGmbH, Oldenburg

494

CONTENTS

Private Attributes
• std::set< class Event_Watcher ∗ > observers
A list of all Event_Watcher ( p. 478) instances that this Wakeup_Event ( p. 493) is observed by
(stored here for proper deregistering).

5.173.1

Detailed Description

A base class for asynchronous wakeup events.

5.173.2

5.173.2.1

Constructor & Destructor Documentation

Wakeup_Event::Wakeup_Event ( )

Event Constructor.
The new event has invalid state.
5.173.2.2

Wakeup_Event::∼Wakeup_Event ( ) [virtual]

Destructor deregisters from observers.

5.173.3

5.173.3.1

Member Function Documentation

void Wakeup_Event::observed_by (
Event_Watcher ∗ observer ) [virtual]

Called by the Event_Watcher (p. 478) when this event is added to its list of observed events.
5.173.3.2

void Wakeup_Event::ignored_by (
Event_Watcher ∗ observer ) [virtual]

Called by the Event_Watcher (p. 478) when this event is removed from its list of observed
events.
5.173.3.3 OS_EVENT_TYPE Wakeup_Event::get_os_event ( ) [virtual]
Get necessary information for the Event Watcher.
Reimplemented in MHA_TCP::Timeout_Event (p. 491).
© 2005-2019 HörTech gGmbH, Oldenburg

5.174

mha_tictoc_t Struct Reference

5.173.3.4

495

void Wakeup_Event::reset ( ) [virtual]

For pure notification events, reset the "signalled" status.
Reimplemented in MHA_TCP::Async_Notify (p. 469).
5.173.3.5

bool Wakeup_Event::status ( ) [virtual]

Query wether the event is in signalled state now.

5.173.4

Member Data Documentation

5.173.4.1 std::set MHA_TCP::Wakeup_Event::observers [private]
A list of all Event_Watcher (p. 478) instances that this Wakeup_Event (p. 493) is observed by
(stored here for proper deregistering).
5.173.4.2 OS_EVENT_TYPE MHA_TCP::Wakeup_Event::os_event [protected]
5.173.4.3

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.174

mha_tictoc_t Struct Reference

Public Attributes
•
•
•
•

struct timeval tv1
struct timeval tv2
struct timezone tz
float t

5.174.1

Member Data Documentation

5.174.1.1

struct timeval mha_tictoc_t::tv1

5.174.1.2

struct timeval mha_tictoc_t::tv2

5.174.1.3

struct timezone mha_tictoc_t::tz

5.174.1.4

float mha_tictoc_t::t

The documentation for this struct was generated from the following file:
• mha_profiling.h
© 2005-2019 HörTech gGmbH, Oldenburg

496

5.175

CONTENTS

mha_wave_t Struct Reference

Waveform signal structure.
Inheritance diagram for mha_wave_t:

addsndfile::level_adapt_t

MHA_AC::waveform_t

mon_t

MHAMultiSrc::waveform_t

MHAFilter::o1flt_maxtrack_t

fader_wave::level_adapt_t
MHAFilter::o1flt_lowpass_t

MHAFilter::o1flt_mintrack_t

MHAOvlFilter::overlap
_save_filterbank_t

MHAOvlFilter::overlap
_save_filterbank_analytic_t

gain::scaler_t

MHAFilter::o1_ar_filter_t

MHAOvlFilter::fftfb_t

mha_wave_t

fftfilterbank::fftfb
_plug_t

multibandcompressor
::fftfb_plug_t

MHASndFile::sf_wave_t

coherence::cohflt_t

MHASignal::async_rmslevel_t

fftfbpow::fftfbpow_t

addsndfile::waveform
_proxy_t

addsndfile::resampled
_soundfile_t

MHASignal::waveform_t

MHASignal::ringbuffer_t

MHASignal::schroeder_t

MHASignal::loop_wavefragment_t

addsndfile::sndfile_t

MHAWindow::hamming_t

MHAWindow::base_t

MHAWindow::user_t

MHAWindow::hanning_t

speechnoise_t

MHAWindow::fun_t

MHAWindow::rect_t

MHAWindow::bartlett_t

MHAWindow::blackman_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.175.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-2019 HörTech gGmbH, Oldenburg

5.176

mhachain::chain_base_t Class Reference

5.175.2

Member Data Documentation

497

5.175.2.1 mha_real_t∗ mha_wave_t::buf
signal buffer
5.175.2.2

unsigned int mha_wave_t::num_channels

number of channels
5.175.2.3

unsigned int mha_wave_t::num_frames

number of frames in each channel
5.175.2.4 mha_channel_info_t∗ mha_wave_t::channel_info
detailed channel description
The documentation for this struct was generated from the following file:
• mha.hh

5.176

mhachain::chain_base_t Class Reference

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

© 2005-2019 HörTech gGmbH, Oldenburg

498

CONTENTS

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

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.176.1
5.176.1.1

5.176.2
5.176.2.1

Constructor & Destructor Documentation
mhachain::chain_base_t::chain_base_t (
algo_comm_t iac,
const std::string & ichain,
const std::string & ialgo )
Member Function Documentation
void mhachain::chain_base_t::process (
mha_wave_t ∗ sin,
mha_wave_t ∗∗ sout )

© 2005-2019 HörTech gGmbH, Oldenburg

5.176

mhachain::chain_base_t Class Reference

5.176.2.2

void mhachain::chain_base_t::process (
mha_spec_t ∗ sin,
mha_wave_t ∗∗ sout )

5.176.2.3

void mhachain::chain_base_t::process (
mha_wave_t ∗ sin,
mha_spec_t ∗∗ sout )

5.176.2.4

void mhachain::chain_base_t::process (
mha_spec_t ∗ sin,
mha_spec_t ∗∗ sout )

5.176.2.5

void mhachain::chain_base_t::prepare (
mhaconfig_t & cf ) [virtual]

499

Implements MHAPlugin::plugin_t< mhachain::plugs_t > (p. 730).
5.176.2.6

void mhachain::chain_base_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< mhachain::plugs_t > (p. 731).
5.176.2.7
5.176.3

void mhachain::chain_base_t::update ( ) [private]
Member Data Documentation

5.176.3.1 MHAParser::bool_t mhachain::chain_base_t::bprofiling [protected]
5.176.3.2 MHAParser::vstring_t mhachain::chain_base_t::algos [protected]
5.176.3.3

std::vector mhachain::chain_base_t::old_algos [private]

5.176.3.4 MHAEvents::patchbay_t< mhachain::chain_base_t >
mhachain::chain_base_t::patchbay [private]
5.176.3.5 mhaconfig_t mhachain::chain_base_t::cfin [private]
5.176.3.6 mhaconfig_t mhachain::chain_base_t::cfout [private]
5.176.3.7

bool mhachain::chain_base_t::b_prepared [private]

5.176.3.8

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-2019 HörTech gGmbH, Oldenburg

500

5.177

CONTENTS

mhachain::mhachain_t Class Reference

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.177.1
5.177.1.1

Constructor & Destructor Documentation
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-2019 HörTech gGmbH, Oldenburg

5.178

mhachain::plugs_t Class Reference

5.178

mhachain::plugs_t Class Reference

501

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

© 2005-2019 HörTech gGmbH, Oldenburg

502

5.178.1

Constructor & Destructor Documentation

5.178.1.1

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.178.1.2

mhachain::plugs_t::∼plugs_t ( )

5.178.2

CONTENTS

Member Function Documentation

5.178.2.1

void mhachain::plugs_t::prepare (
mhaconfig_t & tf )

5.178.2.2

void mhachain::plugs_t::release (
void )

5.178.2.3

void mhachain::plugs_t::process (
mha_wave_t ∗ win,
mha_spec_t ∗ sin,
mha_wave_t ∗∗ wout,
mha_spec_t ∗∗ sout )

5.178.2.4

bool mhachain::plugs_t::prepared ( ) const [inline]

5.178.2.5

void mhachain::plugs_t::alloc_plugs (
std::vector< std::string > algos ) [private]

5.178.2.6

void mhachain::plugs_t::cleanup_plugs ( ) [private]

5.178.2.7

void mhachain::plugs_t::update_proc_load ( ) [private]

5.178.3

Member Data Documentation

5.178.3.1

bool mhachain::plugs_t::b_prepared [private]

5.178.3.2

std::vector< PluginLoader::mhapluginloader_t∗ > mhachain::plugs_t::algos
[private]

5.178.3.3 MHAParser::parser_t& mhachain::plugs_t::parser [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.178

mhachain::plugs_t Class Reference

503

5.178.3.4 algo_comm_t mhachain::plugs_t::ac [private]

5.178.3.5

std::string mhachain::plugs_t::chain [private]

5.178.3.6 MHAParser::parser_t mhachain::plugs_t::profiling [private]

5.178.3.7 MHAParser::vstring_mon_t mhachain::plugs_t::prof_algos [private]

5.178.3.8 MHAParser::vfloat_mon_t mhachain::plugs_t::prof_init [private]

5.178.3.9 MHAParser::vfloat_mon_t mhachain::plugs_t::prof_prepare [private]

5.178.3.10 MHAParser::vfloat_mon_t mhachain::plugs_t::prof_release [private]

5.178.3.11 MHAParser::vfloat_mon_t mhachain::plugs_t::prof_process [private]

5.178.3.12 MHAParser::float_mon_t mhachain::plugs_t::prof_process_tt [private]

5.178.3.13 MHAParser::vfloat_mon_t mhachain::plugs_t::prof_process_load [private]

5.178.3.14

unsigned int mhachain::plugs_t::proc_cnt [private]

5.178.3.15 mhaconfig_t mhachain::plugs_t::prof_cfg [private]

5.178.3.16 MHAEvents::connector_t mhachain::plugs_t::prof_load_con
[private]

5.178.3.17 MHAEvents::connector_t mhachain::plugs_t::prof_tt_con
[private]

5.178.3.18

bool mhachain::plugs_t::b_use_profiling [private]

5.178.3.19 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
© 2005-2019 HörTech gGmbH, Oldenburg

504

5.179

CONTENTS

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.

5.179.1

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. 427).
© 2005-2019 HörTech gGmbH, Oldenburg

5.179

mhaconfig_t Struct Reference

5.179.2

Member Data Documentation

5.179.2.1

505

unsigned int mhaconfig_t::channels

Number of audio channels.

5.179.2.2

unsigned int mhaconfig_t::domain

Signal domain (MHA_WAVEFORM or MHA_SPECTRUM)

5.179.2.3

unsigned int mhaconfig_t::fragsize

Fragment size of waveform data.

5.179.2.4

unsigned int mhaconfig_t::wndlen

Window length of spectral data.

5.179.2.5

unsigned int mhaconfig_t::fftlen

FFT length of spectral data.

5.179.2.6 mha_real_t mhaconfig_t::srate

Sampling rate in Hz.

The documentation for this struct was generated from the following file:

• mha.hh
© 2005-2019 HörTech gGmbH, Oldenburg

506

5.180

CONTENTS

MHAEvents::connector_base_t Class Reference

Inheritance diagram for MHAEvents::connector_base_t:

MHAEvents::connector
_t< mhachain::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 >

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.180.1

Constructor & Destructor Documentation

5.180.1.1

MHAEvents::connector_base_t::connector_base_t ( )

5.180.1.2

MHAEvents::connector_base_t::∼connector_base_t ( ) [virtual]

© 2005-2019 HörTech gGmbH, Oldenburg

5.180

MHAEvents::connector_base_t Class Reference

5.180.2

Member Function Documentation

5.180.2.1

507

void MHAEvents::connector_base_t::emit_event ( ) [virtual]

Reimplemented in MHAEvents::connector_t< receiver_t >
(p. 509), MHAEvents←::connector_t< MHAOvlFilter::fscale_bw_t >
(p. 509), MHAEvents::connector_t<
MHAParser::mhapluginloader_t >
(p. 509), MHAEvents::connector_t< mhachain←::mhachain::plugs_t > (p. 509), and MHAEvents::connector_t< MHAOvlFilter::fscale_t >
(p. 509).

5.180.2.2

void MHAEvents::connector_base_t::emit_event (
const std::string & ) [virtual]

Reimplemented in MHAEvents::connector_t< receiver_t >
(p. 509), MHAEvents←::connector_t< MHAOvlFilter::fscale_bw_t >
(p. 509), MHAEvents::connector_t<
MHAParser::mhapluginloader_t >
(p. 509), MHAEvents::connector_t< mhachain←::mhachain::plugs_t > (p. 509), and MHAEvents::connector_t< MHAOvlFilter::fscale_t >
(p. 509).

5.180.2.3

void MHAEvents::connector_base_t::emit_event (
const std::string & ,
unsigned int ,
unsigned int ) [virtual]

Reimplemented in MHAEvents::connector_t< receiver_t >
(p. 509), MHAEvents←::connector_t< MHAOvlFilter::fscale_bw_t >
(p. 509), MHAEvents::connector_t<
MHAParser::mhapluginloader_t >
(p. 509), MHAEvents::connector_t< mhachain←::mhachain::plugs_t > (p. 509), and MHAEvents::connector_t< MHAOvlFilter::fscale_t >
(p. 509).

5.180.2.4

5.180.3

5.180.3.1

void MHAEvents::connector_base_t::emitter_die ( )

Member Data Documentation

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-2019 HörTech gGmbH, Oldenburg

508

5.181

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)
© 2005-2019 HörTech gGmbH, Oldenburg

5.181 MHAEvents::connector_t< receiver_t > Class Template
Reference

509

Additional Inherited Members

5.181.1

Constructor & Destructor Documentation

5.181.1.1

template MHAEvents::connector_t< receiver_t >::connector_t (
emitter_t ∗ e,
receiver_t ∗ r,
void(receiver_t::∗)() rfun )

5.181.1.2

template MHAEvents::connector_t< receiver_t >::connector_t (
emitter_t ∗ e,
receiver_t ∗ r,
void(receiver_t::∗)(const std::string &) rfun )

5.181.1.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.181.1.4

template MHAEvents::connector_t< receiver_t >::∼connector_t (
)

5.181.2

5.181.2.1

Member Function Documentation

template void MHAEvents::connector_t< receiver_t >::emit_event (
) [private], [virtual]

Reimplemented from MHAEvents::connector_base_t (p. 507).

5.181.2.2

template void MHAEvents::connector_t< receiver_t >::emit_event (
const std::string & arg ) [private], [virtual]

Reimplemented from MHAEvents::connector_base_t (p. 507).

5.181.2.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. 507).
© 2005-2019 HörTech gGmbH, Oldenburg

510

5.181.3

CONTENTS

Member Data Documentation

5.181.3.1

template emitter_t∗ MHAEvents::connector_t< receiver_t
>::emitter [private]

5.181.3.2

template receiver_t∗ MHAEvents::connector_t< receiver_t
>::receiver [private]

5.181.3.3

template void(receiver_t::∗ MHAEvents::connector_t< receiver_t
>::eventhandler) () [private]

5.181.3.4

template void(receiver_t::∗ MHAEvents::connector_t< receiver_t
>::eventhandler_s) (const std::string &) [private]

5.181.3.5

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.182

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.182

MHAEvents::emitter_t Class Reference

5.182.1

Detailed Description

511

Class for emitting openMHA events.
Use the template claas MHAEvents::patchbay_t (p. 512) for connecting to an emitter.

5.182.2
5.182.2.1
5.182.3
5.182.3.1

Constructor & Destructor Documentation
MHAEvents::emitter_t::∼emitter_t ( )
Member Function Documentation
void MHAEvents::emitter_t::operator() ( )

Emit an event without parameter.
5.182.3.2

void MHAEvents::emitter_t::operator() (
const std::string & arg )

Emit an event with string parameter.
5.182.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.182.3.4

void MHAEvents::emitter_t::connect (
connector_base_t ∗ c )

5.182.3.5

void MHAEvents::emitter_t::disconnect (
connector_base_t ∗ c )

5.182.4
5.182.4.1

Member Data Documentation
std::list MHAEvents::emitter_t::connections [private]

The documentation for this class was generated from the following files:
• mha_event_emitter.h
• mha_events.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

512

5.183

CONTENTS

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

5.183.1

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. 512) 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.183.2
5.183.2.1
5.183.3
5.183.3.1

Constructor & Destructor Documentation
template MHAEvents::patchbay_t< receiver_t >::∼patchbay_t ( )
Member Function Documentation
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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.184

MHAFilter::adapt_filter_param_t Class Reference

513

Parameters
Pointer to an event emitter
Pointer to the receiver
Pointer to a member function of the receiver class

e
r
rfun

5.183.3.2

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.183.3.3

5.183.4

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 )
Member Data Documentation

5.183.4.1

template std::list∗>
MHAEvents::patchbay_t< receiver_t >::cons [private]

The documentation for this class was generated from the following file:
• mha_events.h

5.184

MHAFilter::adapt_filter_param_t Class Reference

Public Member Functions
• adapt_filter_param_t (mha_real_t imu, bool ierr_in)
© 2005-2019 HörTech gGmbH, Oldenburg

514

CONTENTS

Public Attributes
• mha_real_t mu
• bool err_in

5.184.1

Constructor & Destructor Documentation

5.184.1.1

5.184.2

MHAFilter::adapt_filter_param_t::adapt_filter_param_t (
mha_real_t imu,
bool ierr_in )
Member Data Documentation

5.184.2.1 mha_real_t MHAFilter::adapt_filter_param_t::mu
5.184.2.2

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

5.185

MHAFilter::adapt_filter_state_t Class Reference

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 W
MHASignal::waveform_t X
MHASignal::waveform_t od
MHASignal::waveform_t oy
© 2005-2019 HörTech gGmbH, Oldenburg

5.186

MHAFilter::adapt_filter_t Class Reference

5.185.1

Constructor & Destructor Documentation

5.185.1.1

5.185.2

515

MHAFilter::adapt_filter_state_t::adapt_filter_state_t (
int ntaps,
int nchannels )
Member Function Documentation

5.185.2.1

5.185.3

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 )
Member Data Documentation

5.185.3.1

int MHAFilter::adapt_filter_state_t::ntaps [private]

5.185.3.2

int MHAFilter::adapt_filter_state_t::nchannels [private]

5.185.3.3 MHASignal::waveform_t MHAFilter::adapt_filter_state_t::W [private]
5.185.3.4 MHASignal::waveform_t MHAFilter::adapt_filter_state_t::X [private]
5.185.3.5 MHASignal::waveform_t MHAFilter::adapt_filter_state_t::od [private]
5.185.3.6 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

5.186

MHAFilter::adapt_filter_t Class Reference

Adaptive filter.
Inheritance diagram for MHAFilter::adapt_filter_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< adapt_filter_state_t >

MHAPlugin::config_t
< adapt_filter_param_t >

© 2005-2019 HörTech gGmbH, Oldenburg

MHAFilter::adapt_filter_t

516

CONTENTS

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.186.1

Detailed Description

Adaptive filter.

5.186.2
5.186.2.1

5.186.3

Constructor & Destructor Documentation
MHAFilter::adapt_filter_t::adapt_filter_t (
std::string help )
Member Function Documentation

5.186.3.1

void MHAFilter::adapt_filter_t::filter (
mha_wave_t y,
mha_wave_t e,
mha_wave_t x,
mha_wave_t d )

5.186.3.2

void MHAFilter::adapt_filter_t::set_channelcnt (
unsigned int nch )

5.186.3.3

void MHAFilter::adapt_filter_t::update_mu ( ) [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.187 MHAFilter::blockprocessing_polyphase_resampling_t Class
Reference
517
5.186.3.4
5.186.4

void MHAFilter::adapt_filter_t::update_ntaps ( ) [private]
Member Data Documentation

5.186.4.1 MHAParser::float_t MHAFilter::adapt_filter_t::mu [private]
5.186.4.2 MHAParser::int_t MHAFilter::adapt_filter_t::ntaps [private]
5.186.4.3 MHAParser::bool_t MHAFilter::adapt_filter_t::err_in [private]
5.186.4.4 MHAEvents::patchbay_t MHAFilter::adapt_filter_t::connector
[private]
5.186.4.5

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.187

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.

Private Attributes
•
•
•
•

polyphase_resampling_t ∗ resampling
unsigned fragsize_in
unsigned fragsize_out
unsigned num_channels

© 2005-2019 HörTech gGmbH, Oldenburg

518

5.187.1

CONTENTS

Detailed Description

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

5.187.2
5.187.2.1

Constructor & Destructor Documentation
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.

5.187.2.2

5.187.3
5.187.3.1

virtual MHAFilter::blockprocessing_polyphase_resampling_t::∼blockprocessing_polyphase←_resampling_t ( ) [inline], [virtual]
Member Function Documentation
void MHAFilter::blockprocessing_polyphase_resampling_t::write (
mha_wave_t & signal )

Write signal to the ringbuffer.

© 2005-2019 HörTech gGmbH, Oldenburg

5.187 MHAFilter::blockprocessing_polyphase_resampling_t Class
Reference
519
Parameters
signal

input signal in original sampling rate

Exceptions
MHA_Error ( p. 445)

5.187.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

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.

Exceptions
MHA_Error ( p. 445)

5.187.3.3

Raises exception if there is not enough input signal, if the number of
channels of frames does not match.

bool MHAFilter::blockprocessing_polyphase_resampling_t::can_read ( ) const [inline]

Checks if the resampling ring buffer can produce another output signal block.

5.187.4

Member Data Documentation

5.187.4.1 polyphase_resampling_t∗ MHAFilter::blockprocessing_polyphase_resampling_t←::resampling [private]
5.187.4.2

unsigned MHAFilter::blockprocessing_polyphase_resampling_t::fragsize_in [private]

5.187.4.3

unsigned MHAFilter::blockprocessing_polyphase_resampling_t::fragsize_out [private]

5.187.4.4

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-2019 HörTech gGmbH, Oldenburg

520

5.188

CONTENTS

MHAFilter::complex_bandpass_t Class Reference

Complex bandpass filter.

Public Member Functions
• complex_bandpass_t (std::vector< mha_complex_t > A, std::vector< mha_←complex_t > B)
Constructor with filter coefficients (one 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)
void 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.188.1

Detailed Description

Complex bandpass filter.
© 2005-2019 HörTech gGmbH, Oldenburg

5.188

MHAFilter::complex_bandpass_t Class Reference

5.188.2

Constructor & Destructor Documentation

5.188.2.1

521

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.188.3

Member Function Documentation

5.188.3.1

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.188.3.2

std::vector< mha_complex_t > MHAFilter::complex_bandpass_t::creator_B (
std::vector< mha_complex_t > A,
unsigned int order ) [static]

5.188.3.3

void MHAFilter::complex_bandpass_t::set_state (
mha_real_t val )

5.188.3.4

void MHAFilter::complex_bandpass_t::set_state (
std::vector< mha_real_t > val )

5.188.3.5

void MHAFilter::complex_bandpass_t::set_state (
mha_complex_t val )

5.188.3.6

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.188.3.7

std::vector MHAFilter::complex_bandpass_t::get_weights ( ) const
[inline]

5.188.3.8

void MHAFilter::complex_bandpass_t::filter (
const mha_wave_t & X,
mha_spec_t & Y ) [inline]

Filter method for real value input.
© 2005-2019 HörTech gGmbH, Oldenburg

522

5.188.3.9

CONTENTS

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.
5.188.3.10

void MHAFilter::complex_bandpass_t::filter (
const mha_spec_t & X,
mha_spec_t & Y ) [inline]

Filter method for complex value input.
5.188.3.11

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.188.3.12
5.188.4

std::string MHAFilter::complex_bandpass_t::inspect ( ) const [inline]

Member Data Documentation

5.188.4.1

std::vector MHAFilter::complex_bandpass_t::A_ [private]

5.188.4.2

std::vector MHAFilter::complex_bandpass_t::B_ [private]

5.188.4.3

std::vector MHAFilter::complex_bandpass_t::Yn [private]

The documentation for this class was generated from the following files:
• complex_filter.h
• complex_filter.cpp

5.189

MHAFilter::diff_t Class Reference

Differentiator class (non-normalized)
Inheritance diagram for MHAFilter::diff_t:

MHAFilter::filter_t

MHAFilter::diff_t

© 2005-2019 HörTech gGmbH, Oldenburg

5.190

MHAFilter::fftfilter_t Class Reference

523

Public Member Functions
• diff_t (unsigned int ch)

Additional Inherited Members

5.189.1

Detailed Description

Differentiator class (non-normalized)

5.189.2

Constructor & Destructor Documentation

5.189.2.1

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.190

MHAFilter::fftfilter_t Class Reference

FFT based FIR filter implementation.
Inheritance diagram for MHAFilter::fftfilter_t:

MHAFilter::fftfilter_t

MHAFilter::resampling
_filter_t

© 2005-2019 HörTech gGmbH, Oldenburg

524

CONTENTS

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 ∗pw←IRS)
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 ∗ps←Weights)
Apply filter with changing coefficients to a waveform fragment.

Private Attributes
•
•
•
•
•
•
•
•
•
•
•

unsigned int fragsize
unsigned int channels
unsigned int fftlen
MHASignal::waveform_t wInput_fft
mha_wave_t wInput
MHASignal::waveform_t wOutput_fft
mha_wave_t wOutput
MHASignal::spectrum_t sInput
MHASignal::spectrum_t sWeights
MHASignal::waveform_t wIRS_fft
mha_fft_t fft

5.190.1

Detailed Description

FFT based FIR filter implementation.
The maximal number of coefficients can be FFT length - fragsize + 1.

5.190.2
5.190.2.1

Constructor & Destructor Documentation
MHAFilter::fftfilter_t::fftfilter_t (
unsigned int fragsize,
unsigned int channels,
unsigned int fftlen )

Constructor.

© 2005-2019 HörTech gGmbH, Oldenburg

5.190

MHAFilter::fftfilter_t Class Reference

525

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.190.2.2
5.190.3

MHAFilter::fftfilter_t::∼fftfilter_t ( )
Member Function Documentation

5.190.3.1

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.190.3.2

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-2019 HörTech gGmbH, Oldenburg

526

5.190.3.3

CONTENTS

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.190.3.4

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
Pointer to output signal pointer, will be set to a valid signal.

ppwOut

Parameters
psWeights

5.190.4

Pointer to filter weights structure.

Member Data Documentation

5.190.4.1

unsigned int MHAFilter::fftfilter_t::fragsize [private]

5.190.4.2

unsigned int MHAFilter::fftfilter_t::channels [private]

5.190.4.3

unsigned int MHAFilter::fftfilter_t::fftlen [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.191

MHAFilter::fftfilterbank_t Class Reference

527

5.190.4.4 MHASignal::waveform_t MHAFilter::fftfilter_t::wInput_fft [private]
5.190.4.5 mha_wave_t MHAFilter::fftfilter_t::wInput [private]
5.190.4.6 MHASignal::waveform_t MHAFilter::fftfilter_t::wOutput_fft [private]
5.190.4.7 mha_wave_t MHAFilter::fftfilter_t::wOutput [private]
5.190.4.8 MHASignal::spectrum_t MHAFilter::fftfilter_t::sInput [private]
5.190.4.9 MHASignal::spectrum_t MHAFilter::fftfilter_t::sWeights [private]
5.190.4.10 MHASignal::waveform_t MHAFilter::fftfilter_t::wIRS_fft [private]
5.190.4.11 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.191

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-2019 HörTech gGmbH, Oldenburg

528

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.191.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.191.2
5.191.2.1

Constructor & Destructor Documentation
MHAFilter::fftfilterbank_t::fftfilterbank_t (
unsigned int fragsize,
unsigned int inputchannels,
unsigned int firchannels,
unsigned int fftlen )

Constructor.

© 2005-2019 HörTech gGmbH, Oldenburg

5.191

MHAFilter::fftfilterbank_t Class Reference

529

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.191.2.2
5.191.3
5.191.3.1

MHAFilter::fftfilterbank_t::∼fftfilterbank_t ( )
Member Function Documentation
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.

5.191.3.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
s←_in

Input signal pointer.

Return values
s_out

Pointer to output signal pointer, will be set to a valid signal

© 2005-2019 HörTech gGmbH, Oldenburg

530

CONTENTS

Parameters
h

FIR coefficients

5.191.3.3

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.191.3.4

Pointer to output signal pointer, will be set to a valid signal

const mha_wave_t∗ MHAFilter::fftfilterbank_t::get_irs ( ) const [inline]

Return the current IRS.

5.191.4

Member Data Documentation

5.191.4.1

unsigned int MHAFilter::fftfilterbank_t::fragsize [private]

5.191.4.2

unsigned int MHAFilter::fftfilterbank_t::inputchannels [private]

5.191.4.3

unsigned int MHAFilter::fftfilterbank_t::firchannels [private]

5.191.4.4

unsigned int MHAFilter::fftfilterbank_t::outputchannels [private]

5.191.4.5

unsigned int MHAFilter::fftfilterbank_t::fftlen [private]

5.191.4.6 MHASignal::waveform_t MHAFilter::fftfilterbank_t::hw [private]
5.191.4.7 MHASignal::spectrum_t MHAFilter::fftfilterbank_t::Hs [private]
5.191.4.8 MHASignal::waveform_t MHAFilter::fftfilterbank_t::xw [private]
5.191.4.9 MHASignal::spectrum_t MHAFilter::fftfilterbank_t::Xs [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.192

MHAFilter::filter_t Class Reference

531

5.191.4.10 MHASignal::waveform_t MHAFilter::fftfilterbank_t::yw [private]
5.191.4.11 MHASignal::spectrum_t MHAFilter::fftfilterbank_t::Ys [private]
5.191.4.12 MHASignal::waveform_t MHAFilter::fftfilterbank_t::yw_temp [private]
5.191.4.13 MHASignal::waveform_t MHAFilter::fftfilterbank_t::tail [private]
5.191.4.14 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

5.192

MHAFilter::filter_t Class Reference

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)
© 2005-2019 HörTech gGmbH, Oldenburg

532

CONTENTS

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.

Private Attributes
•
•
•
•
•

unsigned int len_A
unsigned int len_B
unsigned int len
unsigned int channels
double ∗ state

5.192.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. 496) structs. The filter coefficients can be directly
accessed.
Todo Implement a more robust filter form.

5.192.2
5.192.2.1

Constructor & Destructor Documentation
MHAFilter::filter_t::filter_t (
unsigned int ch,
unsigned int lena,
unsigned int lenb )

Constructor.

© 2005-2019 HörTech gGmbH, Oldenburg

5.192

MHAFilter::filter_t Class Reference

Parameters
Number of channels
Number of recursive coefficients
Number of non-recursive coefficients

ch
lena
lenb

5.192.2.2

MHAFilter::filter_t::filter_t (
unsigned int ch,
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.192.2.3

MHAFilter::filter_t::filter_t (
const MHAFilter::filter_t & src )

5.192.2.4

MHAFilter::filter_t::∼filter_t ( )

5.192.3

Member Function Documentation

5.192.3.1

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-2019 HörTech gGmbH, Oldenburg

533

534

5.192.3.2

CONTENTS

void MHAFilter::filter_t::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.
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.192.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.192.3.4

unsigned int MHAFilter::filter_t::get_len_A ( ) const [inline]

Return length of recursive coefficients.
5.192.3.5

unsigned int MHAFilter::filter_t::get_len_B ( ) const [inline]

Return length of non-recursive coefficients.

5.192.4
5.192.4.1

Member Data Documentation
double∗ MHAFilter::filter_t::A

Pointer to recursive coefficients.
© 2005-2019 HörTech gGmbH, Oldenburg

5.193

MHAFilter::gamma_flt_t Class Reference

5.192.4.2

535

double∗ MHAFilter::filter_t::B

Pointer to non-recursive coefficients.
5.192.4.3

unsigned int MHAFilter::filter_t::len_A [private]

5.192.4.4

unsigned int MHAFilter::filter_t::len_B [private]

5.192.4.5

unsigned int MHAFilter::filter_t::len [private]

5.192.4.6

unsigned int MHAFilter::filter_t::channels [private]

5.192.4.7

double∗ MHAFilter::filter_t::state [private]

The documentation for this class was generated from the following files:
• mha_filter.hh
• mha_filter.cpp

5.193

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-2019 HörTech gGmbH, Oldenburg

536

CONTENTS

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.193.1

Detailed Description

Class for gammatone filter.

5.193.2
5.193.2.1

Constructor & Destructor Documentation
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.193.2.2

5.193.3

5.193.3.1

MHAFilter::gamma_flt_t::∼gamma_flt_t ( )

Member Function Documentation

void MHAFilter::gamma_flt_t::operator() (
mha_wave_t & X,
mha_spec_t & Y ) [inline]

Filter method.
© 2005-2019 HörTech gGmbH, Oldenburg

5.193

MHAFilter::gamma_flt_t Class Reference

5.193.3.2

537

void MHAFilter::gamma_flt_t::operator() (
mha_wave_t & X,
mha_wave_t & Yre,
mha_wave_t & Yim ) [inline]

Filter method.
5.193.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.193.3.4

void MHAFilter::gamma_flt_t::phase_correction (
unsigned int desired_delay,
unsigned int inchannels )

5.193.3.5

void MHAFilter::gamma_flt_t::set_weights (
std::vector< mha_complex_t > new_B )

5.193.3.6

void MHAFilter::gamma_flt_t::set_weights (
unsigned int stage,
std::vector< mha_complex_t > new_B )

5.193.3.7

std::vector MHAFilter::gamma_flt_t::get_weights (
[inline]

5.193.3.8

std::vector MHAFilter::gamma_flt_t::get_weights (
unsigned int stage ) const [inline]

5.193.3.9

std::vector MHAFilter::gamma_flt_t::get_resynthesis_gain (
[inline]

) const

) const

5.193.3.10

void MHAFilter::gamma_flt_t::reset_state ( )

5.193.3.11

const std::vector& MHAFilter::gamma_flt_t::get_A ( ) [inline]

5.193.3.12

std::string MHAFilter::gamma_flt_t::inspect ( ) const [inline]

5.193.4

Member Data Documentation

5.193.4.1

std::vector MHAFilter::gamma_flt_t::A [private]

5.193.4.2

std::vector MHAFilter::gamma_flt_t::GF [private]

© 2005-2019 HörTech gGmbH, Oldenburg

538

CONTENTS

5.193.4.3 MHASignal::delay_t∗ MHAFilter::gamma_flt_t::delay [private]

5.193.4.4

std::vector MHAFilter::gamma_flt_t::envelope_delay [private]

5.193.4.5

std::vector MHAFilter::gamma_flt_t::resynthesis_gain [private]

5.193.4.6

std::vector MHAFilter::gamma_flt_t::cf_ [private]

5.193.4.7

std::vector MHAFilter::gamma_flt_t::bw_ [private]

5.193.4.8 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.194

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)
© 2005-2019 HörTech gGmbH, Oldenburg

5.195

MHAFilter::iir_filter_t Class Reference

539

Additional Inherited Members

5.194.1

Constructor & Destructor Documentation

5.194.1.1

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

5.195

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

© 2005-2019 HörTech gGmbH, Oldenburg

540

CONTENTS

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 ()
Private Attributes
•
•
•
•

MHAParser::vfloat_t A
MHAParser::vfloat_t B
MHAEvents::patchbay_t< iir_filter_t > connector
unsigned int nchannels

Additional Inherited Members
5.195.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. 688), 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.195.2
5.195.2.1

Constructor & Destructor Documentation
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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.195

MHAFilter::iir_filter_t Class Reference

541

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
as string.

channels

The number of indipendent audio channels to process with this filter. Needed to
allocate a state vector for each audio channel.

5.195.3

Member Function Documentation

5.195.3.1

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. 542) method.

5.195.3.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. 542) method.

© 2005-2019 HörTech gGmbH, Oldenburg

542

CONTENTS

Returns
the filtered result sample.

5.195.3.3

void MHAFilter::iir_filter_t::resize (
unsigned int channels )

Change the number of channels after object creation.
Parameters
channels

5.195.3.4

5.195.4

The new number of channels. Old filter states are lost.

void MHAFilter::iir_filter_t::update_filter ( ) [private]

Member Data Documentation

5.195.4.1 MHAParser::vfloat_t MHAFilter::iir_filter_t::A [private]

5.195.4.2 MHAParser::vfloat_t MHAFilter::iir_filter_t::B [private]

5.195.4.3 MHAEvents::patchbay_t MHAFilter::iir_filter_t::connector [private]

5.195.4.4

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

5.196

MHAFilter::iir_ord1_real_t Class Reference

First order recursive filter.
© 2005-2019 HörTech gGmbH, Oldenburg

5.196

MHAFilter::iir_ord1_real_t Class Reference

543

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.196.1

Detailed Description

First order recursive filter.

5.196.2
5.196.2.1

Constructor & Destructor Documentation
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.196.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)
© 2005-2019 HörTech gGmbH, Oldenburg

544

5.196.3

CONTENTS

Member Function Documentation

5.196.3.1

void MHAFilter::iir_ord1_real_t::set_state (
mha_real_t val )

5.196.3.2

void MHAFilter::iir_ord1_real_t::set_state (
std::vector< mha_real_t > val )

5.196.3.3

void MHAFilter::iir_ord1_real_t::set_state (
mha_complex_t val )

5.196.3.4 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.196.3.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.196.3.6

void MHAFilter::iir_ord1_real_t::operator() (
const mha_wave_t & X,
mha_wave_t & Y ) [inline]

Filter method for real value input.
5.196.3.7

void MHAFilter::iir_ord1_real_t::operator() (
const mha_spec_t & X,
mha_spec_t & Y ) [inline]

Filter method for complex value input.
5.196.3.8

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-2019 HörTech gGmbH, Oldenburg

5.197

MHAFilter::o1_ar_filter_t Class Reference

5.196.4

Member Data Documentation

545

5.196.4.1

std::vector MHAFilter::iir_ord1_real_t::A_ [private]

5.196.4.2

std::vector MHAFilter::iir_ord1_real_t::B_ [private]

5.196.4.3

std::vector 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.197

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-2019 HörTech gGmbH, Oldenburg

MHAFilter::o1flt_mintrack_t

546

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. 496) data.

Protected Attributes
•
•
•
•
•

MHASignal::waveform_t c1_a
MHASignal::waveform_t c2_a
MHASignal::waveform_t c1_r
MHASignal::waveform_t c2_r
mha_real_t fs

Additional Inherited Members
5.197.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.197.2
5.197.2.1

Constructor & Destructor Documentation
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. 812).

© 2005-2019 HörTech gGmbH, Oldenburg

5.197

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.197.3

Member Function Documentation

5.197.3.1

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.197.3.2

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.197.3.3 mha_real_t MHAFilter::o1_ar_filter_t::operator() (
unsigned int ch,
mha_real_t x ) [inline]
Apply filter to value x, using state channel ch.
Parameters
ch
x

Cannel number
Input value

© 2005-2019 HörTech gGmbH, Oldenburg

547

548

CONTENTS

Returns
Output value

5.197.3.4

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. 496) data.
Parameters
in

Input signal

out

Output signal

The number of channels must match the number of filter bands.

5.197.4

Member Data Documentation

5.197.4.1 MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c1_a [protected]

5.197.4.2 MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c2_a [protected]

5.197.4.3 MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c1_r [protected]

5.197.4.4 MHASignal::waveform_t MHAFilter::o1_ar_filter_t::c2_r [protected]

5.197.4.5 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.198

MHAFilter::o1flt_lowpass_t Class Reference

First order low pass filter.
© 2005-2019 HörTech gGmbH, Oldenburg

5.198

MHAFilter::o1flt_lowpass_t Class Reference

549

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

MHAFilter::o1flt_mintrack_t

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.198.1

Detailed Description

First order low pass filter.
© 2005-2019 HörTech gGmbH, Oldenburg

550

5.198.2

CONTENTS

Constructor & Destructor Documentation

5.198.2.1

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.198.3

5.198.3.1

Vector of time constants
Sampling rate
Initial internal state value

Member Function Documentation

void MHAFilter::o1flt_lowpass_t::set_tau (
unsigned int ch,
mha_real_t tau )

change the time constant in one channel

5.198.3.2

void MHAFilter::o1flt_lowpass_t::set_tau (
mha_real_t tau )

set time constant in all channels to tau

5.198.3.3 mha_real_t MHAFilter::o1flt_lowpass_t::get_c1 (
unsigned int ch ) const [inline]

5.198.3.4 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-2019 HörTech gGmbH, Oldenburg

5.199

MHAFilter::o1flt_maxtrack_t Class Reference

5.199

MHAFilter::o1flt_maxtrack_t Class Reference

551

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.199.1

Detailed Description

First order maximum tracker.
© 2005-2019 HörTech gGmbH, Oldenburg

552

5.199.2

CONTENTS

Constructor & Destructor Documentation

5.199.2.1

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.199.3

Vector of time constants
Sampling rate
Initial internal state value

Member Function Documentation

5.199.3.1

void MHAFilter::o1flt_maxtrack_t::set_tau (
unsigned int ch,
mha_real_t tau )

change the time constant in one channel

5.199.3.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

5.200

MHAFilter::o1flt_mintrack_t Class Reference

First order minimum tracker.
© 2005-2019 HörTech gGmbH, Oldenburg

5.200

MHAFilter::o1flt_mintrack_t Class Reference

553

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.200.1

Detailed Description

First order minimum tracker.
© 2005-2019 HörTech gGmbH, Oldenburg

554

5.200.2

CONTENTS

Constructor & Destructor Documentation

5.200.2.1

5.200.3

MHAFilter::o1flt_mintrack_t::o1flt_mintrack_t (
const std::vector< mha_real_t > & tau,
mha_real_t fs_,
mha_real_t startval = 0 )
Member Function Documentation

5.200.3.1

void MHAFilter::o1flt_mintrack_t::set_tau (
unsigned int ch,
mha_real_t tau )

change the time constant in one channel
5.200.3.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.201

MHAFilter::partitioned_convolution_t Class Reference

A filter class for partitioned convolution.

Classes
• struct index_t
Bookkeeping class.

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.201

MHAFilter::partitioned_convolution_t Class Reference

555

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.

5.201.1

Detailed Description

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.201.2
5.201.2.1

Constructor & Destructor Documentation
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.

© 2005-2019 HörTech gGmbH, Oldenburg

556

CONTENTS

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.201.2.2

MHAFilter::partitioned_convolution_t::∼partitioned_convolution_t ( )

Free fftw resource allocated in constructor.

5.201.3

Member Function Documentation

5.201.3.1 mha_wave_t ∗ MHAFilter::partitioned_convolution_t::process (
const mha_wave_t ∗ s_in )
processing

5.201.4
5.201.4.1

Member Data Documentation
unsigned int MHAFilter::partitioned_convolution_t::fragsize

Audio fragment size, always equal to partition size.
5.201.4.2

unsigned int MHAFilter::partitioned_convolution_t::nchannels_in

Number of audio input channels.
5.201.4.3

unsigned int MHAFilter::partitioned_convolution_t::nchannels_out

Number of audio output channels.
5.201.4.4

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.
5.201.4.5

unsigned int MHAFilter::partitioned_convolution_t::filter_partitions

The total number of non-zero impulse response partitions.
© 2005-2019 HörTech gGmbH, Oldenburg

5.201

MHAFilter::partitioned_convolution_t Class Reference

557

5.201.4.6 MHASignal::waveform_t MHAFilter::partitioned_convolution_t::input_signal_wave
Buffer for input signal.
Has nchannels_in channels and fragsize∗2 frames
5.201.4.7

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.201.4.8 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.201.4.9 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.201.4.10

std::vector 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.
5.201.4.11

std::vector 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.201.4.12

unsigned int MHAFilter::partitioned_convolution_t::current_output_partition_index

A counter modulo output_partitions, indexing the "current" output partition.
© 2005-2019 HörTech gGmbH, Oldenburg

558

CONTENTS

5.201.4.13 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.201.4.14 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.202

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.

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.202.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.202.2
5.202.2.1

Constructor & Destructor Documentation
MHAFilter::partitioned_convolution_t::index_t::index_t (
unsigned int src,
unsigned int tgt,
unsigned int dly ) [inline]

Data constructor.

© 2005-2019 HörTech gGmbH, Oldenburg

5.203

MHAFilter::polyphase_resampling_t Class Reference

559

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.202.2.2

MHAFilter::partitioned_convolution_t::index_t::index_t ( ) [inline]

Default constructor for STL compatibility.

5.202.3

Member Data Documentation

5.202.3.1

unsigned int MHAFilter::partitioned_convolution_t::index_t::source_channel_index

The input channel index to apply the current partition to.
5.202.3.2

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.202.3.3

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.203

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-2019 HörTech gGmbH, Oldenburg

560

CONTENTS

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.203.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-2019 HörTech gGmbH, Oldenburg

5.203

MHAFilter::polyphase_resampling_t Class Reference

561

– 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.203.2

Constructor & Destructor Documentation

5.203.2.1

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
Prefill the ringbuffer with this many zero frames in samples at source
sampling rate

© 2005-2019 HörTech gGmbH, Oldenburg

562

5.203.3

CONTENTS

Member Function Documentation

5.203.3.1

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. 445)

5.203.3.2

Raises exception if there is not enough room or if the number of
channels does not match.

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. 445)

5.203.3.3

Raises exception if there is not enough input signal or if the number
of channels is too high.

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. 562) ensures that enough past samples are present to compute the next target sample.
© 2005-2019 HörTech gGmbH, Oldenburg

5.203

MHAFilter::polyphase_resampling_t Class Reference

5.203.4

Member Data Documentation

5.203.4.1

563

unsigned MHAFilter::polyphase_resampling_t::upsampling_factor [private]

Integer upsampling factor.
Interpolation rate divided by source rate.
5.203.4.2

unsigned MHAFilter::polyphase_resampling_t::downsampling_factor [private]

Integer downsampling factor.
Interpolation rate divided by target rate.
5.203.4.3

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?

5.203.4.4

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. 562) are present before calling read
(p. 562)
5.203.4.5 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. 840) 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. 840) can be altered with ∗=,
which our constructor does.
5.203.4.6 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
© 2005-2019 HörTech gGmbH, Oldenburg

564

5.204

CONTENTS

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

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.204.1

Detailed Description

Hann shaped low pass filter for resampling.
This class uses FFT filter at upsampled rate.
5.204.2
5.204.2.1

Constructor & Destructor Documentation
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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.205

MHAFilter::smoothspec_t Class Reference

565

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)

5.204.3

Member Function Documentation

5.204.3.1

5.204.4

unsigned int MHAFilter::resampling_filter_t::fragsize_validator (
unsigned int fftlen,
unsigned int irslen ) [static]
Member Data Documentation

5.204.4.1

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.205

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 ()
© 2005-2019 HörTech gGmbH, Oldenburg

566

CONTENTS

Private Member Functions
• void internal_fir (const mha_spec_t &)

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.205.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. 567) 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. 567) must correspond to the FFT
length and number of channels provided in the constructor. The function spec2fir() (p. 567)
can fill signal structures with more than window length frames.

5.205.2
5.205.2.1

Constructor & Destructor Documentation
MHAFilter::smoothspec_t::smoothspec_t (
unsigned int fftlen,
unsigned int nchannels,
const MHAWindow::base_t & window,
bool minphase,
bool linphase_asym = false )

Constructor.

© 2005-2019 HörTech gGmbH, Oldenburg

5.205

MHAFilter::smoothspec_t Class Reference

567

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

5.205.2.2
5.205.3
5.205.3.1

MHAFilter::smoothspec_t::∼smoothspec_t ( )
Member Function Documentation
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.205.3.2

Output spectrum

void MHAFilter::smoothspec_t::smoothspec (
mha_spec_t & spec ) [inline]

Create a smoothed spectrum (in place)
Parameters
spec

5.205.3.3

Spectrum to be smoothed.

void MHAFilter::smoothspec_t::spec2fir (
const mha_spec_t & spec,
mha_wave_t & fir )

Return FIR coefficients.

© 2005-2019 HörTech gGmbH, Oldenburg

568

CONTENTS

Parameters
Input spectrum

spec

Return values
FIR coefficients, minimum length is window length

fir

5.205.3.4

5.205.4

void MHAFilter::smoothspec_t::internal_fir (
const mha_spec_t & s_in ) [private]
Member Data Documentation

5.205.4.1

unsigned int MHAFilter::smoothspec_t::fftlen [private]

5.205.4.2

unsigned int MHAFilter::smoothspec_t::nchannels [private]

5.205.4.3 MHAWindow::base_t MHAFilter::smoothspec_t::window [private]
5.205.4.4 MHASignal::waveform_t MHAFilter::smoothspec_t::tmp_wave [private]
5.205.4.5 MHASignal::spectrum_t MHAFilter::smoothspec_t::tmp_spec [private]
5.205.4.6 MHASignal::minphase_t∗ MHAFilter::smoothspec_t::minphase [private]
5.205.4.7

bool MHAFilter::smoothspec_t::_linphase_asym [private]

5.205.4.8 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.206

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-2019 HörTech gGmbH, Oldenburg

5.206

MHAFilter::thirdoctave_analyzer_t Class Reference

569

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.206.1
5.206.1.1

5.206.2

Constructor & Destructor Documentation
MHAFilter::thirdoctave_analyzer_t::thirdoctave_analyzer_t (
mhaconfig_t cfg )
Member Function Documentation

5.206.2.1 mha_wave_t ∗ MHAFilter::thirdoctave_analyzer_t::process (
mha_wave_t ∗ sIn )
5.206.2.2

unsigned int MHAFilter::thirdoctave_analyzer_t::nbands ( )

5.206.2.3

unsigned int MHAFilter::thirdoctave_analyzer_t::nchannels ( )

5.206.2.4

std::vector< mha_real_t > MHAFilter::thirdoctave_analyzer_t::get_cf_hz ( )

5.206.2.5

std::vector< mha_real_t > MHAFilter::thirdoctave_analyzer_t::cf_generator (
mhaconfig_t cfg ) [static]

5.206.2.6

std::vector< mha_real_t > MHAFilter::thirdoctave_analyzer_t::bw_generator (
mhaconfig_t cfg ) [static]

5.206.2.7

std::vector< mha_real_t > MHAFilter::thirdoctave_analyzer_t::dup (
std::vector< mha_real_t > vec,
mhaconfig_t cfg ) [static]

5.206.3

Member Data Documentation

5.206.3.1 mhaconfig_t MHAFilter::thirdoctave_analyzer_t::cfg_ [private]

© 2005-2019 HörTech gGmbH, Oldenburg

570

5.206.3.2

CONTENTS

std::vector MHAFilter::thirdoctave_analyzer_t::cf [private]

5.206.3.3 MHAFilter::gamma_flt_t MHAFilter::thirdoctave_analyzer_t::fb [private]
5.206.3.4 MHASignal::waveform_t MHAFilter::thirdoctave_analyzer_t::out_chunk [private]
5.206.3.5 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.207

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-2019 HörTech gGmbH, Oldenburg

5.207

MHAFilter::transfer_function_t Struct Reference

5.207.1

Detailed Description

571

a structure containing a source channel number, a target channel number, and an impulse
response.

5.207.2

Constructor & Destructor Documentation

5.207.2.1

MHAFilter::transfer_function_t::transfer_function_t ( ) [inline]

Default constructor for STL conformity.
Not used.
5.207.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.207.3

Member Function Documentation

5.207.3.1

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.
Parameters
fragsize

partition size

Returns
number of partitions occupied by the impulse response

© 2005-2019 HörTech gGmbH, Oldenburg

572

5.207.3.2

CONTENTS

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.207.3.3

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.

5.207.4
5.207.4.1

Member Data Documentation
unsigned int MHAFilter::transfer_function_t::source_channel_index

Source audio channel index for this transfer function.
5.207.4.2

unsigned int MHAFilter::transfer_function_t::target_channel_index

Target audio channel index for this transfer function.
5.207.4.3

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.208

MHAFilter::transfer_matrix_t Struct Reference

5.208

MHAFilter::transfer_matrix_t Struct Reference

573

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. 573) 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. 573) method on every
matrix member.

5.208.1

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.208.2

5.208.2.1

Member Function Documentation

std::valarray MHAFilter::transfer_matrix_t::partitions (
unsigned fragsize ) const [inline]

Returns an array of the results of calling the partitions() (p. 573) method on every matrix member.
5.208.2.2

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. 573) method on every
matrix member.
The documentation for this struct was generated from the following file:

• mha_filter.hh
© 2005-2019 HörTech gGmbH, Oldenburg

574

5.209

CONTENTS

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

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, IOStoppedEvent←_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 get_physical_input_ports ()
void get_physical_output_ports ()
void get_all_input_ports ()
void get_all_output_ports ()
void get_delays_in ()
void get_delays_out ()
void read_get_cpu_load ()
void read_get_xruns ()
void read_get_scheduler ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.209

MHAIOJack::io_jack_t Class Reference

575

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

Additional Inherited Members
5.209.1

Detailed Description

Main class for JACK IO.
This class registers a JACK client. JACK and framework states are managed by this class.
5.209.2
5.209.2.1

5.209.3
5.209.3.1

Constructor & Destructor Documentation
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 )
Member Function Documentation
void io_jack_t::prepare (
int nch_in,
int nch_out )

Allocate buffers, activate JACK client and install internal ports.
© 2005-2019 HörTech gGmbH, Oldenburg

576

5.209.3.2

void io_jack_t::release (
void )

5.209.3.3

void io_jack_t::reconnect_inports ( ) [private]

CONTENTS

Connect the input ports when connection variable is accessed.
5.209.3.4

void io_jack_t::reconnect_outports ( ) [private]

Connect the output ports when connection variable is accessed.
5.209.3.5

void io_jack_t::get_physical_input_ports ( ) [private]

5.209.3.6

void io_jack_t::get_physical_output_ports ( ) [private]

5.209.3.7

void io_jack_t::get_all_input_ports ( ) [private]

5.209.3.8

void io_jack_t::get_all_output_ports ( ) [private]

5.209.3.9

void io_jack_t::get_delays_in ( ) [private]

5.209.3.10

void io_jack_t::get_delays_out ( ) [private]

5.209.3.11

void io_jack_t::read_get_cpu_load ( ) [private]

5.209.3.12

void io_jack_t::read_get_xruns ( ) [private]

5.209.3.13

void io_jack_t::read_get_scheduler ( ) [private]

5.209.4

Member Data Documentation

5.209.4.1

unsigned int MHAIOJack::io_jack_t::fw_fragsize [private]

5.209.4.2

float MHAIOJack::io_jack_t::fw_samplerate [private]

5.209.4.3 MHAParser::string_t MHAIOJack::io_jack_t::servername [private]
5.209.4.4 MHAParser::string_t MHAIOJack::io_jack_t::clientname [private]
5.209.4.5 MHAParser::vstring_t MHAIOJack::io_jack_t::connections_in [private]
5.209.4.6 MHAParser::vint_mon_t MHAIOJack::io_jack_t::delays_in [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.209

MHAIOJack::io_jack_t Class Reference

577

5.209.4.7 MHAParser::vstring_t MHAIOJack::io_jack_t::connections_out [private]

5.209.4.8 MHAParser::vint_mon_t MHAIOJack::io_jack_t::delays_out [private]

5.209.4.9 MHAParser::vstring_t MHAIOJack::io_jack_t::portnames_in [private]

5.209.4.10 MHAParser::vstring_t MHAIOJack::io_jack_t::portnames_out [private]

5.209.4.11 MHAParser::vstring_mon_t MHAIOJack::io_jack_t::ports_in_physical [private]

5.209.4.12 MHAParser::vstring_mon_t MHAIOJack::io_jack_t::ports_out_physical [private]

5.209.4.13 MHAParser::vstring_mon_t MHAIOJack::io_jack_t::ports_in_all [private]

5.209.4.14 MHAParser::vstring_mon_t MHAIOJack::io_jack_t::ports_out_all [private]

5.209.4.15 MHAParser::parser_t MHAIOJack::io_jack_t::ports_parser [private]

5.209.4.16 MHAParser::float_mon_t MHAIOJack::io_jack_t::state_cpuload [private]

5.209.4.17 MHAParser::int_mon_t MHAIOJack::io_jack_t::state_xruns [private]

5.209.4.18 MHAParser::int_mon_t MHAIOJack::io_jack_t::state_priority [private]

5.209.4.19 MHAParser::string_mon_t MHAIOJack::io_jack_t::state_scheduler [private]

5.209.4.20 MHAParser::parser_t MHAIOJack::io_jack_t::state_parser [private]

5.209.4.21 MHAEvents::patchbay_t MHAIOJack::io_jack_t::patchbay [private]

The documentation for this class was generated from the following file:

• MHAIOJack.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

578

5.210

CONTENTS

MHAIOJackdb::io_jack_t Class Reference

Main class for JACK IO.
Inheritance diagram for MHAIOJackdb::io_jack_t:

MHAParser::base_t

MHAParser::parser_t

MHAJack::client_t

MHAIOJackdb::io_jack_t

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, IOStoppedEvent←_t stop_event, void ∗stop_handle)
• void prepare (int, int)
Allocate buffers, activate JACK client and install internal ports.

• void release ()
• bool fail_on_async_jackerror () const

Private Member Functions
• int IOProcessEvent_inner (mha_wave_t ∗sIn, mha_wave_t ∗∗sOut)
• 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 get_physical_input_ports ()
void get_physical_output_ports ()
void get_all_input_ports ()
void get_all_output_ports ()
void read_get_cpu_load ()
void read_get_xruns ()
void read_get_scheduler ()
void set_use_jack_transport ()
void set_locate ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.210

MHAIOJackdb::io_jack_t Class Reference

579

Static Private Member Functions
• static int IOProcessEvent_inner (void ∗handle, mha_wave_t ∗sIn, mha_wave_t ∗∗s←Out)

Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

IOProcessEvent_t proc_event
void ∗ proc_handle
unsigned int mha_fragsize
float mha_samplerate
unsigned int fragsize_ratio
MHAParser::string_t servername
MHAParser::string_t clientname
MHAParser::vstring_t connections_in
MHAParser::vstring_t connections_out
MHAParser::vstring_t portnames_in
MHAParser::vstring_t portnames_out
MHAParser::bool_t fail_on_async_jackerr
MHAParser::bool_t use_jack_transport
MHAParser::float_t locate
MHAParser::float_mon_t server_srate
MHAParser::int_mon_t server_fragsize
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
MHASignal::waveform_t ∗ pwinner_out
MHAEvents::patchbay_t< io_jack_t > patchbay

Additional Inherited Members

5.210.1

Detailed Description

Main class for JACK IO.
This class registers a JACK client. JACK and framework states are managed by this class.
© 2005-2019 HörTech gGmbH, Oldenburg

580

5.210.2

5.210.2.1

5.210.3

5.210.3.1

CONTENTS

Constructor & Destructor Documentation

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 )

Member Function Documentation

void io_jack_t::prepare (
int nch_in,
int nch_out )

Allocate buffers, activate JACK client and install internal ports.

5.210.3.2

void io_jack_t::release (
void )

5.210.3.3

bool MHAIOJackdb::io_jack_t::fail_on_async_jackerror ( ) const [inline]

5.210.3.4

int io_jack_t::IOProcessEvent_inner (
void ∗ handle,
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [static], [private]

5.210.3.5

int io_jack_t::IOProcessEvent_inner (
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [private]

5.210.3.6

void io_jack_t::reconnect_inports ( ) [private]

Connect the input ports when connection variable is accessed.

5.210.3.7

void io_jack_t::reconnect_outports ( ) [private]

Connect the output ports when connection variable is accessed.
© 2005-2019 HörTech gGmbH, Oldenburg

5.210

MHAIOJackdb::io_jack_t Class Reference

5.210.3.8

void io_jack_t::get_physical_input_ports ( ) [private]

5.210.3.9

void io_jack_t::get_physical_output_ports ( ) [private]

5.210.3.10

void io_jack_t::get_all_input_ports ( ) [private]

5.210.3.11

void io_jack_t::get_all_output_ports ( ) [private]

5.210.3.12

void io_jack_t::read_get_cpu_load ( ) [private]

5.210.3.13

void io_jack_t::read_get_xruns ( ) [private]

5.210.3.14

void io_jack_t::read_get_scheduler ( ) [private]

5.210.3.15

void io_jack_t::set_use_jack_transport ( ) [private]

5.210.3.16

void io_jack_t::set_locate ( ) [private]

5.210.4

581

Member Data Documentation

5.210.4.1 IOProcessEvent_t MHAIOJackdb::io_jack_t::proc_event [private]
5.210.4.2

void∗ MHAIOJackdb::io_jack_t::proc_handle [private]

5.210.4.3

unsigned int MHAIOJackdb::io_jack_t::mha_fragsize [private]

5.210.4.4

float MHAIOJackdb::io_jack_t::mha_samplerate [private]

5.210.4.5

unsigned int MHAIOJackdb::io_jack_t::fragsize_ratio [private]

5.210.4.6 MHAParser::string_t MHAIOJackdb::io_jack_t::servername [private]
5.210.4.7 MHAParser::string_t MHAIOJackdb::io_jack_t::clientname [private]
5.210.4.8 MHAParser::vstring_t MHAIOJackdb::io_jack_t::connections_in [private]
5.210.4.9 MHAParser::vstring_t MHAIOJackdb::io_jack_t::connections_out [private]
5.210.4.10 MHAParser::vstring_t MHAIOJackdb::io_jack_t::portnames_in [private]
5.210.4.11 MHAParser::vstring_t MHAIOJackdb::io_jack_t::portnames_out [private]
5.210.4.12 MHAParser::bool_t MHAIOJackdb::io_jack_t::fail_on_async_jackerr [private]

© 2005-2019 HörTech gGmbH, Oldenburg

582

CONTENTS

5.210.4.13 MHAParser::bool_t MHAIOJackdb::io_jack_t::use_jack_transport [private]

5.210.4.14 MHAParser::float_t MHAIOJackdb::io_jack_t::locate [private]

5.210.4.15 MHAParser::float_mon_t MHAIOJackdb::io_jack_t::server_srate [private]

5.210.4.16 MHAParser::int_mon_t MHAIOJackdb::io_jack_t::server_fragsize [private]

5.210.4.17 MHAParser::vstring_mon_t MHAIOJackdb::io_jack_t::ports_in_physical [private]

5.210.4.18 MHAParser::vstring_mon_t MHAIOJackdb::io_jack_t::ports_out_physical
[private]

5.210.4.19 MHAParser::vstring_mon_t MHAIOJackdb::io_jack_t::ports_in_all [private]

5.210.4.20 MHAParser::vstring_mon_t MHAIOJackdb::io_jack_t::ports_out_all [private]

5.210.4.21 MHAParser::parser_t MHAIOJackdb::io_jack_t::ports_parser [private]

5.210.4.22 MHAParser::float_mon_t MHAIOJackdb::io_jack_t::state_cpuload [private]

5.210.4.23 MHAParser::int_mon_t MHAIOJackdb::io_jack_t::state_xruns [private]

5.210.4.24 MHAParser::int_mon_t MHAIOJackdb::io_jack_t::state_priority [private]

5.210.4.25 MHAParser::string_mon_t MHAIOJackdb::io_jack_t::state_scheduler [private]

5.210.4.26 MHAParser::parser_t MHAIOJackdb::io_jack_t::state_parser [private]

5.210.4.27 MHASignal::waveform_t∗ MHAIOJackdb::io_jack_t::pwinner_out [private]

5.210.4.28 MHAEvents::patchbay_t MHAIOJackdb::io_jack_t::patchbay
[private]
The documentation for this class was generated from the following file:

• MHAIOJackdb.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.211

MHAIOPortAudio::device_info_t Class Reference

5.211

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 ()

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
© 2005-2019 HörTech gGmbH, Oldenburg

583

584

CONTENTS

Additional Inherited Members

5.211.1

5.211.1.1
5.211.2

5.211.2.1
5.211.3

Constructor & Destructor Documentation

MHAIOPortAudio::device_info_t::device_info_t ( ) [inline]
Member Function Documentation

void MHAIOPortAudio::device_info_t::fill_info ( ) [inline]
Member Data Documentation

5.211.3.1 MHAParser::int_mon_t MHAIOPortAudio::device_info_t::numDevices
5.211.3.2 MHAParser::vint_mon_t MHAIOPortAudio::device_info_t::structVersion
5.211.3.3 MHAParser::vstring_mon_t MHAIOPortAudio::device_info_t::name
5.211.3.4 MHAParser::vint_mon_t MHAIOPortAudio::device_info_t::hostApi
5.211.3.5 MHAParser::vint_mon_t MHAIOPortAudio::device_info_t::maxInputChannels
5.211.3.6 MHAParser::vint_mon_t MHAIOPortAudio::device_info_t::maxOutputChannels
5.211.3.7 MHAParser::vfloat_mon_t MHAIOPortAudio::device_info_t::defaultLowInputLatency
5.211.3.8 MHAParser::vfloat_mon_t MHAIOPortAudio::device_info_t::defaultLowOutputLatency
5.211.3.9 MHAParser::vfloat_mon_t MHAIOPortAudio::device_info_t::defaultHighInputLatency
5.211.3.10 MHAParser::vfloat_mon_t MHAIOPortAudio::device_info_t::defaultHighOutputLatency
5.211.3.11 MHAParser::vfloat_mon_t MHAIOPortAudio::device_info_t::defaultSampleRate
The documentation for this class was generated from the following file:

• MHAIOPortAudio.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.212

MHAIOPortAudio::io_portaudio_t Class Reference

5.212

MHAIOPortAudio::io_portaudio_t Class Reference

585

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, IO←StoppedEvent_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)

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

© 2005-2019 HörTech gGmbH, Oldenburg

586
•
•
•
•
•
•
•
•
•
•
•

CONTENTS

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.212.1

Detailed Description

Main class for Portaudio sound IO.

5.212.2

Constructor & Destructor Documentation

5.212.2.1

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]

5.212.2.2

MHAIOPortAudio::io_portaudio_t::∼io_portaudio_t ( ) [inline]

5.212.3

Member Function Documentation

5.212.3.1

void MHAIOPortAudio::io_portaudio_t::device_name_updated ( ) [inline]

5.212.3.2

void MHAIOPortAudio::io_portaudio_t::device_index_updated ( ) [inline]

5.212.3.3

void MHAIOPortAudio::io_portaudio_t::cmd_prepare (
int nchannels_in,
int nchannels_out )

5.212.3.4

void MHAIOPortAudio::io_portaudio_t::cmd_start ( )

© 2005-2019 HörTech gGmbH, Oldenburg

5.212

MHAIOPortAudio::io_portaudio_t Class Reference

5.212.3.5

void MHAIOPortAudio::io_portaudio_t::cmd_stop ( )

5.212.3.6

void MHAIOPortAudio::io_portaudio_t::cmd_release ( )

5.212.3.7

int MHAIOPortAudio::io_portaudio_t::portaudio_callback (
const void ∗ input,
void ∗ output,
unsigned long frame_count,
const PaStreamCallbackTimeInfo ∗ time_info,
PaStreamCallbackFlags status_flags )

5.212.4

587

Member Data Documentation

5.212.4.1 device_info_t MHAIOPortAudio::io_portaudio_t::device_info [private]
5.212.4.2 MHASignal::waveform_t∗ MHAIOPortAudio::io_portaudio_t::s_in [private]
5.212.4.3 mha_wave_t∗ MHAIOPortAudio::io_portaudio_t::s_out [private]
5.212.4.4

float MHAIOPortAudio::io_portaudio_t::samplerate [private]

5.212.4.5

unsigned int MHAIOPortAudio::io_portaudio_t::nchannels_out [private]

5.212.4.6

unsigned int MHAIOPortAudio::io_portaudio_t::nchannels_in [private]

5.212.4.7

unsigned int MHAIOPortAudio::io_portaudio_t::fragsize [private]

5.212.4.8 IOProcessEvent_t MHAIOPortAudio::io_portaudio_t::proc_event [private]
5.212.4.9

void∗ MHAIOPortAudio::io_portaudio_t::proc_handle [private]

5.212.4.10 IOStartedEvent_t MHAIOPortAudio::io_portaudio_t::start_event [private]
5.212.4.11

void∗ MHAIOPortAudio::io_portaudio_t::start_handle [private]

5.212.4.12 IOStoppedEvent_t MHAIOPortAudio::io_portaudio_t::stop_event [private]
5.212.4.13

void∗ MHAIOPortAudio::io_portaudio_t::stop_handle [private]

5.212.4.14

PaStream∗ MHAIOPortAudio::io_portaudio_t::portaudio_stream [private]

5.212.4.15 MHAParser::string_t MHAIOPortAudio::io_portaudio_t::device_name [private]
5.212.4.16 MHAParser::int_t MHAIOPortAudio::io_portaudio_t::device_index [private]
5.212.4.17 MHAEvents::patchbay_t MHAIOPortAudio::io_portaudio_t←::patchbay [private]
The documentation for this class was generated from the following file:
• MHAIOPortAudio.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

588

5.213

CONTENTS

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

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.213

MHAJack::client_avg_t Class Reference

589

Additional Inherited Members
5.213.1

Detailed Description

Generic JACK client for averaging a system response across time.

5.213.2

Constructor & Destructor Documentation

5.213.2.1

MHAJack::client_avg_t::client_avg_t (
const std::string & name_,
const unsigned int & nrep_ )

Constructor for averaging client.
Parameters
name←- Name of JACK client
_
nrep←- Number of repetitions
_

5.213.3

Member Function Documentation

5.213.3.1

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

© 2005-2019 HörTech gGmbH, Oldenburg

590

CONTENTS

5.213.3.2

int MHAJack::client_avg_t::proc (
void ∗ handle,
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [static], [private]

5.213.3.3

void MHAJack::client_avg_t::IOStoppedEvent (
void ∗ handle,
int proc_err,
int io_err ) [static], [private]

5.213.3.4

void MHAJack::client_avg_t::proc (
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [private]

5.213.3.5

void MHAJack::client_avg_t::IOStoppedEvent ( ) [private]

5.213.4

Member Data Documentation

5.213.4.1

bool MHAJack::client_avg_t::b_stopped [private]

5.213.4.2

unsigned int MHAJack::client_avg_t::pos [private]

5.213.4.3 mha_wave_t∗ MHAJack::client_avg_t::sn_in [private]
5.213.4.4 mha_wave_t∗ MHAJack::client_avg_t::sn_out [private]
5.213.4.5

std::string MHAJack::client_avg_t::name [private]

5.213.4.6 MHASignal::waveform_t∗ MHAJack::client_avg_t::frag_out [private]
5.213.4.7

const unsigned int MHAJack::client_avg_t::nrep [private]

5.213.4.8

unsigned int MHAJack::client_avg_t::n [private]

5.213.4.9

bool MHAJack::client_avg_t::b_ready [private]

The documentation for this class was generated from the following files:

• mhajack.h
• mhajack.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.214

MHAJack::client_noncont_t Class Reference

5.214

MHAJack::client_noncont_t Class Reference

591

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-2019 HörTech gGmbH, Oldenburg

592

CONTENTS

Additional Inherited Members
5.214.1

Detailed Description

Generic client for synchronous playback and recording of waveform fragments.

5.214.2
5.214.2.1

5.214.3

Constructor & Destructor Documentation
MHAJack::client_noncont_t::client_noncont_t (
const std::string & name,
bool use_jack_transport = false )
Member Function Documentation

5.214.3.1

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.214.3.2

int MHAJack::client_noncont_t::proc (
void ∗ handle,
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [static], [private]

5.214.3.3

void MHAJack::client_noncont_t::IOStoppedEvent (
void ∗ handle,
int proc_err,
int io_err ) [static], [private]

5.214.3.4

void MHAJack::client_noncont_t::proc (
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [private]

5.214.3.5

void MHAJack::client_noncont_t::IOStoppedEvent ( ) [private]

5.214.4

Member Data Documentation

5.214.4.1

bool MHAJack::client_noncont_t::b_stopped [private]

5.214.4.2

unsigned int MHAJack::client_noncont_t::pos [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.215

MHAJack::client_t Class Reference

593

5.214.4.3 mha_wave_t∗ MHAJack::client_noncont_t::sn_in [private]
5.214.4.4 mha_wave_t∗ MHAJack::client_noncont_t::sn_out [private]
5.214.4.5

std::string MHAJack::client_noncont_t::name [private]

5.214.4.6 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.215

MHAJack::client_t Class Reference

Generic asynchronous JACK client.
Inheritance diagram for MHAJack::client_t:

MHAIOJack::io_jack_t

MHAIOJackdb::io_jack_t
MHAJack::client_t
MHAJack::client_avg_t

MHAJack::client_noncont_t

Public Member Functions
• client_t (IOProcessEvent_t proc_event, void ∗proc_handle=NULL, IOStartedEvent←_t start_event=NULL, void ∗start_handle=NULL, IOStoppedEvent_t stop_event=N←ULL, 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.
© 2005-2019 HörTech gGmbH, Oldenburg

594

CONTENTS

• 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 ()

Static Private Member Functions
• static int jack_proc_cb (jack_nframes_t, void ∗)
• static int jack_xrun_cb (void ∗)
© 2005-2019 HörTech gGmbH, Oldenburg

5.215

MHAJack::client_t Class Reference

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.215.1

Detailed Description

Generic asynchronous JACK client.
5.215.2
5.215.2.1

5.215.3
5.215.3.1

Constructor & Destructor Documentation
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 )
Member Function Documentation
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.

© 2005-2019 HörTech gGmbH, Oldenburg

595

596

CONTENTS

Parameters
client_name
nch_in

Name of this jack client
Input ports to register

nch_out

Output ports to register

5.215.3.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.215.3.3

void MHAJack::client_t::release (
void )

Remove JACK client and deallocate internal ports and buffers.
5.215.3.4

void MHAJack::client_t::start (
bool fail_on_async_jack_error = true )

5.215.3.5

void MHAJack::client_t::stop ( )

5.215.3.6

void MHAJack::client_t::connect_input (
const std::vector< std::string > & con )

Connect the input ports when connection variable is accessed.
5.215.3.7

void MHAJack::client_t::connect_output (
const std::vector< std::string > & con )

Connect the output ports when connection variable is accessed.
© 2005-2019 HörTech gGmbH, Oldenburg

5.215

MHAJack::client_t Class Reference

597

5.215.3.8

unsigned int MHAJack::client_t::get_fragsize ( ) const [inline]

5.215.3.9

float MHAJack::client_t::get_srate ( ) const [inline]

5.215.3.10

unsigned long MHAJack::client_t::get_xruns ( ) [inline]

5.215.3.11

unsigned long MHAJack::client_t::get_xruns_reset ( )

5.215.3.12

std::string MHAJack::client_t::str_error (
int err )

5.215.3.13

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.215.3.14

std::vector< std::string > MHAJack::client_t::get_my_input_ports ( )

5.215.3.15

std::vector< std::string > MHAJack::client_t::get_my_output_ports ( )

5.215.3.16

void MHAJack::client_t::set_input_portnames (
const std::vector< std::string > & names )

5.215.3.17

void MHAJack::client_t::set_output_portnames (
const std::vector< std::string > & names )

5.215.3.18

float MHAJack::client_t::get_cpu_load ( )

5.215.3.19

void MHAJack::client_t::set_use_jack_transport (
bool ut ) [inline]

5.215.3.20

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.

© 2005-2019 HörTech gGmbH, Oldenburg

598

CONTENTS

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.215.3.21

void MHAJack::client_t::internal_start ( ) [private]

5.215.3.22

void MHAJack::client_t::internal_stop ( ) [private]

5.215.3.23

void MHAJack::client_t::stopped (
int proc_err,
int io_err ) [private]

5.215.3.24

int MHAJack::client_t::jack_proc_cb (
jack_nframes_t n,
void ∗ h ) [static], [private]

5.215.3.25

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.215.3.26

int MHAJack::client_t::jack_xrun_cb (
void ∗ h ) [static], [private]

5.215.3.27

int MHAJack::client_t::jack_xrun_cb ( ) [inline], [private]

5.215.4

Member Data Documentation

5.215.4.1

unsigned long MHAJack::client_t::num_xruns [private]

5.215.4.2

unsigned int MHAJack::client_t::fragsize [private]

5.215.4.3

float MHAJack::client_t::samplerate [private]

5.215.4.4

unsigned int MHAJack::client_t::nchannels_in [private]

5.215.4.5

unsigned int MHAJack::client_t::nchannels_out [private]

5.215.4.6 IOProcessEvent_t MHAJack::client_t::proc_event [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.216

MHAJack::port_t Class Reference

5.215.4.7

599

void∗ MHAJack::client_t::proc_handle [private]

5.215.4.8 IOStartedEvent_t MHAJack::client_t::start_event [private]
5.215.4.9

void∗ MHAJack::client_t::start_handle [private]

5.215.4.10 IOStoppedEvent_t MHAJack::client_t::stop_event [private]
5.215.4.11

void∗ MHAJack::client_t::stop_handle [private]

5.215.4.12 MHASignal::waveform_t∗ MHAJack::client_t::s_in [private]
5.215.4.13 mha_wave_t∗ MHAJack::client_t::s_out [private]
5.215.4.14 MHAJack::port_t∗∗ MHAJack::client_t::inch [private]
5.215.4.15 MHAJack::port_t∗∗ MHAJack::client_t::outch [private]
5.215.4.16

jack_client_t∗ MHAJack::client_t::jc [protected]

5.215.4.17

unsigned int MHAJack::client_t::flags [private]

5.215.4.18

bool MHAJack::client_t::b_prepared [private]

5.215.4.19

bool MHAJack::client_t::use_jack_transport [private]

5.215.4.20

jack_transport_state_t MHAJack::client_t::jstate_prev [private]

5.215.4.21

std::vector MHAJack::client_t::input_portnames [private]

5.215.4.22

std::vector MHAJack::client_t::output_portnames [private]

5.215.4.23

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.216

MHAJack::port_t Class Reference

Class for one channel/port.
© 2005-2019 HörTech gGmbH, Oldenburg

600

CONTENTS

Public Types
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.216.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.216.2
5.216.2.1

Member Enumeration Documentation
enum MHAJack::port_t::dir_t

Enumerator
input
output

5.216.3
5.216.3.1

Constructor & Destructor Documentation
MHAJack::port_t::port_t (
jack_client_t ∗ jc,
dir_t dir,
int id )

© 2005-2019 HörTech gGmbH, Oldenburg

5.216

MHAJack::port_t Class Reference

Parameters
jc

JACK client.

dir

Direction (input/output).

id

Number in port name (starting with 1).

5.216.3.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.216.3.3
5.216.4

MHAJack::port_t::∼port_t ( )
Member Function Documentation

5.216.4.1

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.216.4.2

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.216.4.3

void MHAJack::port_t::mute (
unsigned int n )

© 2005-2019 HörTech gGmbH, Oldenburg

601

602

CONTENTS

Parameters
Number of samples to be muted (must be the same as reported by Jack processing
callback).

n

5.216.4.4

void MHAJack::port_t::connect_to (
const char ∗ pn )

Parameters
pn

Port name to connect to

5.216.4.5

const char ∗ MHAJack::port_t::get_short_name ( )

Return the port name.

5.216.5

Member Data Documentation

5.216.5.1 dir_t MHAJack::port_t::dir_type [private]

5.216.5.2

jack_port_t∗ MHAJack::port_t::port [private]

5.216.5.3

jack_default_audio_sample_t∗ MHAJack::port_t::iob [private]

5.216.5.4

jack_client_t∗ MHAJack::port_t::jc [private]

The documentation for this class was generated from the following files:

• mhajack.h
• mhajack.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.217

MHAKernel::algo_comm_class_t Class Reference

5.217

MHAKernel::algo_comm_class_t Class Reference

603

Inheritance diagram for MHAKernel::algo_comm_class_t:

mhaplug_cfg_t

MHAPlugin_Split::splitted
_part_t
MHAKernel::algo_comm
_class_t

plug_t

pluginloader_t

testplugin::ac_parser_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)

© 2005-2019 HörTech gGmbH, Oldenburg

604

CONTENTS

Public Attributes
• char ∗ algo_comm_id_string

Private Attributes
• algo_comm_t ac
• int algo_comm_id_string_len
• comm_var_map_t vars

5.217.1

Constructor & Destructor Documentation

5.217.1.1

MHAKernel::algo_comm_class_t::algo_comm_class_t ( )

5.217.1.2

MHAKernel::algo_comm_class_t::∼algo_comm_class_t ( ) [virtual]

5.217.2

Member Function Documentation

5.217.2.1 algo_comm_t MHAKernel::algo_comm_class_t::get_c_handle ( )
5.217.2.2

int MHAKernel::algo_comm_class_t::insert_var (
void ∗ handle,
const char ∗ name,
comm_var_t var ) [static]

5.217.2.3

int MHAKernel::algo_comm_class_t::insert_var_int (
void ∗ handle,
const char ∗ name,
int ∗ ivar ) [static]

5.217.2.4

int MHAKernel::algo_comm_class_t::insert_var_float (
void ∗ handle,
const char ∗ name,
float ∗ ivar ) [static]

5.217.2.5

int MHAKernel::algo_comm_class_t::remove_var (
void ∗ handle,
const char ∗ name ) [static]

5.217.2.6

int MHAKernel::algo_comm_class_t::remove_ref (
void ∗ handle,
void ∗ ref ) [static]

© 2005-2019 HörTech gGmbH, Oldenburg

5.217

MHAKernel::algo_comm_class_t Class Reference

5.217.2.7

int MHAKernel::algo_comm_class_t::is_var (
void ∗ handle,
const char ∗ name ) [static]

5.217.2.8

int MHAKernel::algo_comm_class_t::get_var (
void ∗ handle,
const char ∗ name,
comm_var_t ∗ var ) [static]

5.217.2.9

int MHAKernel::algo_comm_class_t::get_var_int (
void ∗ handle,
const char ∗ name,
int ∗ ivar ) [static]

605

5.217.2.10

int MHAKernel::algo_comm_class_t::get_var_float (
void ∗ handle,
const char ∗ name,
float ∗ ivar ) [static]

5.217.2.11

int MHAKernel::algo_comm_class_t::get_entries (
void ∗ handle,
char ∗ ret,
unsigned int len ) [static]

5.217.2.12

const char ∗ MHAKernel::algo_comm_class_t::get_error (
int e ) [static]

5.217.2.13

void MHAKernel::algo_comm_class_t::local_insert_var (
const char ∗ name,
comm_var_t var ) [virtual]

5.217.2.14

void MHAKernel::algo_comm_class_t::local_remove_var (
const char ∗ name ) [virtual]

5.217.2.15

void MHAKernel::algo_comm_class_t::local_remove_ref (
void ∗ addr ) [virtual]

5.217.2.16

bool MHAKernel::algo_comm_class_t::local_is_var (
const char ∗ name ) [virtual]

5.217.2.17

void MHAKernel::algo_comm_class_t::local_get_var (
const char ∗ name,
comm_var_t ∗ var ) [virtual]

5.217.2.18

std::string MHAKernel::algo_comm_class_t::local_get_entries ( ) [virtual]

© 2005-2019 HörTech gGmbH, Oldenburg

606

5.217.2.19

5.217.3

CONTENTS

MHAKernel::comm_var_map_t::size_type MHAKernel::algo_comm_class_t::size ( ) const
[virtual]

Member Data Documentation

5.217.3.1

char∗ MHAKernel::algo_comm_class_t::algo_comm_id_string

5.217.3.2 algo_comm_t MHAKernel::algo_comm_class_t::ac [private]

5.217.3.3

int MHAKernel::algo_comm_class_t::algo_comm_id_string_len [private]

5.217.3.4 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.218

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.218.1

5.218.1.1

Member Function Documentation

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.219

MHAMultiSrc::base_t Class Reference

5.219

MHAMultiSrc::base_t Class Reference

607

Base class for source selection.
Inheritance diagram for MHAMultiSrc::base_t:

MHAPlugin::config_t
< MHAMultiSrc::channels_t >

MHAMultiSrc::base_t

MHAMultiSrc::spectrum_t

MHAMultiSrc::waveform_t

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.219.1

Detailed Description

Base class for source selection.
See also
MHAMultiSrc::channel_t (p. 608)
MHAMultiSrc::channels_t (p. 609)
© 2005-2019 HörTech gGmbH, Oldenburg

608

5.219.2

CONTENTS

Constructor & Destructor Documentation

5.219.2.1

5.219.3

MHAMultiSrc::base_t::base_t (
algo_comm_t iac )
Member Function Documentation

5.219.3.1

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.
Parameters
src

List of input sources

in_channels

Number of input channels in direct input (the processed signal)

5.219.4

Member Data Documentation

5.219.4.1 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.220

MHAMultiSrc::channel_t Class Reference

Public Attributes
• std::string name
• int channel

5.220.1

Member Data Documentation

5.220.1.1

std::string MHAMultiSrc::channel_t::name

5.220.1.2

int MHAMultiSrc::channel_t::channel

The documentation for this class was generated from the following file:
• mha_multisrc.h
© 2005-2019 HörTech gGmbH, Oldenburg

5.221

MHAMultiSrc::channels_t Class Reference

5.221

MHAMultiSrc::channels_t Class Reference

609

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.221.1
5.221.1.1

Constructor & Destructor Documentation
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. 608) 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-2019 HörTech gGmbH, Oldenburg

610

5.222

CONTENTS

MHAMultiSrc::spectrum_t Class Reference

Inheritance diagram for MHAMultiSrc::spectrum_t:

mha_spec_t

MHASignal::spectrum_t

MHAPlugin::config_t
< MHAMultiSrc::channels_t >

MHA_AC::spectrum_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.222.1
5.222.1.1

5.222.2

Constructor & Destructor Documentation
MHAMultiSrc::spectrum_t::spectrum_t (
algo_comm_t iac,
std::string name,
unsigned int frames,
unsigned int channels )
Member Function Documentation

5.222.2.1 mha_spec_t ∗ MHAMultiSrc::spectrum_t::update (
mha_spec_t ∗ s )
Update data of spectrum to hold actual input data.

© 2005-2019 HörTech gGmbH, Oldenburg

5.223

MHAMultiSrc::waveform_t Class Reference

611

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.223

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

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.
© 2005-2019 HörTech gGmbH, Oldenburg

612

CONTENTS

Additional Inherited Members
5.223.1

Constructor & Destructor Documentation

5.223.1.1

5.223.2

MHAMultiSrc::waveform_t::waveform_t (
algo_comm_t iac,
std::string name,
unsigned int frames,
unsigned int channels )
Member Function Documentation

5.223.2.1 mha_wave_t ∗ MHAMultiSrc::waveform_t::update (
mha_wave_t ∗ s )
Update data of waveform to hold actual input data.
Parameters
Input signal chunk

s

Returns
Return pointer to waveform structure

The documentation for this class was generated from the following files:
• mha_multisrc.h
• mha_multisrc.cpp

5.224

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.225

MHAOvlFilter::barkscale::bark2hz_t Class Reference

5.224.1

Member Data Documentation

5.224.1.1 mha_real_t MHAOvlFilter::band_descriptor_t::cf_l
5.224.1.2 mha_real_t MHAOvlFilter::band_descriptor_t::ef_l
5.224.1.3 mha_real_t MHAOvlFilter::band_descriptor_t::cf
5.224.1.4 mha_real_t MHAOvlFilter::band_descriptor_t::ef_h
5.224.1.5 mha_real_t MHAOvlFilter::band_descriptor_t::cf_h
5.224.1.6

bool MHAOvlFilter::band_descriptor_t::low_side_flat

5.224.1.7

bool MHAOvlFilter::band_descriptor_t::high_side_flat

The documentation for this class was generated from the following file:

• mha_fftfb.hh

5.225

MHAOvlFilter::barkscale::bark2hz_t Class Reference

Inheritance diagram for MHAOvlFilter::barkscale::bark2hz_t:

MHATableLookup::table_t

MHATableLookup::xy
_table_t

MHAOvlFilter::barkscale
::bark2hz_t

© 2005-2019 HörTech gGmbH, Oldenburg

613

614

CONTENTS

Public Member Functions
• bark2hz_t ()
• ∼bark2hz_t ()

Additional Inherited Members
5.225.1

Constructor & Destructor Documentation

5.225.1.1

MHAOvlFilter::barkscale::bark2hz_t::bark2hz_t ( )

5.225.1.2

MHAOvlFilter::barkscale::bark2hz_t::∼bark2hz_t ( )

The documentation for this class was generated from the following file:
• mha_fftfb.cpp

5.226

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 ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.227

MHAOvlFilter::fftfb_ac_info_t Class Reference

615

Additional Inherited Members
5.226.1

Constructor & Destructor Documentation

5.226.1.1

MHAOvlFilter::barkscale::hz2bark_t::hz2bark_t ( )

5.226.1.2

MHAOvlFilter::barkscale::hz2bark_t::∼hz2bark_t ( )

The documentation for this class was generated from the following file:
• mha_fftfb.cpp

5.227

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.227.1
5.227.1.1

5.227.2
5.227.2.1
5.227.3

Constructor & Destructor Documentation
MHAOvlFilter::fftfb_ac_info_t::fftfb_ac_info_t (
const MHAOvlFilter::fftfb_t & fb,
algo_comm_t ac,
const std::string & prefix )
Member Function Documentation
void MHAOvlFilter::fftfb_ac_info_t::insert ( )
Member Data Documentation

5.227.3.1 MHA_AC::waveform_t MHAOvlFilter::fftfb_ac_info_t::cfv [private]
vector of nominal center frequencies / Hz
© 2005-2019 HörTech gGmbH, Oldenburg

616

CONTENTS

5.227.3.2 MHA_AC::waveform_t MHAOvlFilter::fftfb_ac_info_t::efv [private]
vector of edge frequencies / Hz
5.227.3.3 MHA_AC::waveform_t MHAOvlFilter::fftfb_ac_info_t::bwv [private]
vector of band-weigths (sum of squared fft-bin-weigths)/num_frames
5.227.3.4 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

5.228

MHAOvlFilter::fftfb_t Class Reference

FFT based overlapping filter bank.
Inheritance diagram for MHAOvlFilter::fftfb_t:

coherence::cohflt_t

fftfbpow::fftfbpow_t

MHAOvlFilter::fspacing_t
MHAOvlFilter::fftfb_t
mha_wave_t

MHASignal::waveform_t

MHAOvlFilter::overlap
_save_filterbank_t

MHAOvlFilter::overlap
_save_filterbank_analytic_t

fftfilterbank::fftfb
_plug_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.
© 2005-2019 HörTech gGmbH, Oldenburg

5.228

MHAOvlFilter::fftfb_t Class Reference

617

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.228.1

Detailed Description

FFT based overlapping filter bank.

5.228.2

Constructor & Destructor Documentation

5.228.2.1

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.228.2.2
5.228.3

MHAOvlFilter::fftfb_t::∼fftfb_t ( )
Member Function Documentation

5.228.3.1

void MHAOvlFilter::fftfb_t::apply_gains (
mha_spec_t ∗ s_out,
const mha_spec_t ∗ s_in,
const mha_wave_t ∗ gains )

5.228.3.2

void MHAOvlFilter::fftfb_t::get_fbpower (
mha_wave_t ∗ fbpow,
const mha_spec_t ∗ s_in )

© 2005-2019 HörTech gGmbH, Oldenburg

618

CONTENTS

5.228.3.3

void MHAOvlFilter::fftfb_t::get_fbpower_db (
mha_wave_t ∗ fbpow,
const mha_spec_t ∗ s_in )

5.228.3.4

std::vector< float > MHAOvlFilter::fftfb_t::get_ltass_gain_db ( ) const

5.228.3.5

unsigned int MHAOvlFilter::fftfb_t::bin1 (
unsigned int band ) const [inline]

Return index of first non-zero filter shape window.
5.228.3.6

unsigned int MHAOvlFilter::fftfb_t::bin2 (
unsigned int band ) const [inline]

Return index of first zero filter shape window above center frequency.
5.228.3.7

unsigned int MHAOvlFilter::fftfb_t::get_fftlen ( ) const [inline]

Return fft length.
5.228.3.8 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.
Parameters
k
b

Frequency index
Band index

5.228.4

Member Data Documentation

5.228.4.1

unsigned int∗ MHAOvlFilter::fftfb_t::vbin1 [private]

5.228.4.2

unsigned int∗ MHAOvlFilter::fftfb_t::vbin2 [private]

5.228.4.3 mha_real_t(∗ MHAOvlFilter::fftfb_t::shape) (mha_real_t) [private]
5.228.4.4

unsigned int MHAOvlFilter::fftfb_t::fftlen [private]

5.228.4.5 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-2019 HörTech gGmbH, Oldenburg

5.229

MHAOvlFilter::fftfb_vars_t Class Reference

5.229

MHAOvlFilter::fftfb_vars_t Class Reference

619

Set of configuration variables for FFT-based overlapping filters.
Inheritance diagram for MHAOvlFilter::fftfb_vars_t:

coherence::vars_t

fftfbpow::fftfbpow
_interface_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.
© 2005-2019 HörTech gGmbH, Oldenburg

620

CONTENTS

• 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

5.229.1

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. 619) 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.229.2
5.229.2.1

Constructor & Destructor Documentation
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.229.3

Member Data Documentation

5.229.3.1 scale_var_t MHAOvlFilter::fftfb_vars_t::fscale
Frequency scale type (lin/bark/log/erb).
5.229.3.2 scale_var_t MHAOvlFilter::fftfb_vars_t::ovltype
Filter shape (rect/lin/hann).
© 2005-2019 HörTech gGmbH, Oldenburg

5.229

MHAOvlFilter::fftfb_vars_t Class Reference

621

5.229.3.3 MHAParser::float_t MHAOvlFilter::fftfb_vars_t::plateau
relative plateau width.
5.229.3.4 MHAParser::kw_t MHAOvlFilter::fftfb_vars_t::ftype
Flag to decide wether edge or center frequencies are used.
5.229.3.5 fscale_t MHAOvlFilter::fftfb_vars_t::f
Frequency.
5.229.3.6 MHAParser::bool_t MHAOvlFilter::fftfb_vars_t::normalize
Normalize sum of channels.
5.229.3.7 MHAParser::bool_t MHAOvlFilter::fftfb_vars_t::fail_on_nonmonotonic
Fail if frequency entries are non-monotonic (otherwise sort)
5.229.3.8 MHAParser::bool_t MHAOvlFilter::fftfb_vars_t::fail_on_unique_bins
Fail if center frequencies share the same FFT bin.
5.229.3.9 MHAParser::vfloat_mon_t MHAOvlFilter::fftfb_vars_t::cf
Final center frequencies in Hz.
5.229.3.10 MHAParser::vfloat_mon_t MHAOvlFilter::fftfb_vars_t::ef
Final edge frequencies in Hz.
5.229.3.11 MHAParser::vfloat_mon_t MHAOvlFilter::fftfb_vars_t::cLTASS
Bandwidth correction for LTASS noise (level of 0 dB RMS LTASS noise)
5.229.3.12 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
© 2005-2019 HörTech gGmbH, Oldenburg

622

5.230

CONTENTS

MHAOvlFilter::fscale_bw_t Class Reference

Inheritance diagram for MHAOvlFilter::fscale_bw_t:

MHAOvlFilter::fscale_t

MHAOvlFilter::fscale_bw_t

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.231

MHAOvlFilter::fscale_t Class Reference

623

Additional Inherited Members
5.230.1

Constructor & Destructor Documentation

5.230.1.1

5.230.2

MHAOvlFilter::fscale_bw_t::fscale_bw_t (
MHAParser::parser_t & parent )
Member Function Documentation

5.230.2.1

std::vector< mha_real_t > MHAOvlFilter::fscale_bw_t::get_bw_hz ( ) const

5.230.2.2

void MHAOvlFilter::fscale_bw_t::update_hz ( ) [private]

5.230.3

Member Data Documentation

5.230.3.1 MHAParser::vfloat_t MHAOvlFilter::fscale_bw_t::bw [protected]
5.230.3.2 MHAParser::vfloat_mon_t MHAOvlFilter::fscale_bw_t::bw_hz [protected]
5.230.3.3 MHAEvents::connector_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.231

MHAOvlFilter::fscale_t Class Reference

Inheritance diagram for MHAOvlFilter::fscale_t:

MHAOvlFilter::fscale_t

MHAOvlFilter::fscale_bw_t

© 2005-2019 HörTech gGmbH, Oldenburg

624

CONTENTS

Public Member Functions
• fscale_t (MHAParser::parser_t &parent)
• std::vector< mha_real_t > get_f_hz () const

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.231.1
5.231.1.1

5.231.2

Constructor & Destructor Documentation
MHAOvlFilter::fscale_t::fscale_t (
MHAParser::parser_t & parent )
Member Function Documentation

5.231.2.1

std::vector< mha_real_t > MHAOvlFilter::fscale_t::get_f_hz ( ) const

5.231.2.2

void MHAOvlFilter::fscale_t::update_hz ( ) [private]

5.231.3

Member Data Documentation

5.231.3.1 scale_var_t MHAOvlFilter::fscale_t::unit
5.231.3.2 MHAParser::vfloat_t MHAOvlFilter::fscale_t::f
5.231.3.3 MHAParser::vfloat_mon_t MHAOvlFilter::fscale_t::f_hz
5.231.3.4 MHAEvents::connector_t MHAOvlFilter::fscale_t::updater [private]
The documentation for this class was generated from the following files:
• mha_fftfb.hh
• mha_fftfb.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.232

MHAOvlFilter::fspacing_t Class Reference

5.232

MHAOvlFilter::fspacing_t Class Reference

625

Class for frequency spacing, used by filterbank shape generator class.
Inheritance diagram for MHAOvlFilter::fspacing_t:

coherence::cohflt_t

fftfbpow::fftfbpow_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

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_
© 2005-2019 HörTech gGmbH, Oldenburg

626

5.232.1

CONTENTS

Detailed Description

Class for frequency spacing, used by filterbank shape generator class.

5.232.2
5.232.2.1

5.232.3

Constructor & Destructor Documentation
MHAOvlFilter::fspacing_t::fspacing_t (
const MHAOvlFilter::fftfb_vars_t & par,
unsigned int nfft,
mha_real_t fs )
Member Function Documentation

5.232.3.1

std::vector< unsigned int > MHAOvlFilter::fspacing_t::get_cf_fftbin ( ) const

5.232.3.2

std::vector< mha_real_t > MHAOvlFilter::fspacing_t::get_cf_hz ( ) const

5.232.3.3

std::vector< mha_real_t > MHAOvlFilter::fspacing_t::get_ef_hz ( ) const

5.232.3.4

unsigned int MHAOvlFilter::fspacing_t::nbands ( ) const [inline]

Return number of bands in filter bank.
5.232.3.5

void MHAOvlFilter::fspacing_t::fail_on_nonmonotonic_cf ( ) [protected]

5.232.3.6

void MHAOvlFilter::fspacing_t::fail_on_unique_fftbins ( ) [protected]

5.232.3.7

void MHAOvlFilter::fspacing_t::ef2bands (
std::vector< mha_real_t > vef ) [private]

5.232.3.8

void MHAOvlFilter::fspacing_t::cf2bands (
std::vector< mha_real_t > vcf ) [private]

5.232.3.9

void MHAOvlFilter::fspacing_t::equidist2bands (
std::vector< mha_real_t > vcf ) [private]

5.232.4
5.232.4.1

Member Data Documentation
std::vector MHAOvlFilter::fspacing_t::bands
[protected]

5.232.4.2 mha_real_t(∗ MHAOvlFilter::fspacing_t::symmetry_scale) (mha_real_t) [protected]
5.232.4.3

unsigned int MHAOvlFilter::fspacing_t::nfft_ [private]

5.232.4.4 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
© 2005-2019 HörTech gGmbH, Oldenburg

5.233 MHAOvlFilter::overlap_save_filterbank_analytic_t Class
Reference

5.233

627

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 ∗∗flt←Im)

Private Attributes

• MHAFilter::fftfilterbank_t imagfb
© 2005-2019 HörTech gGmbH, Oldenburg

628

CONTENTS

Additional Inherited Members

5.233.1

Constructor & Destructor Documentation

5.233.1.1

5.233.2

Member Function Documentation

5.233.2.1

5.233.3

MHAOvlFilter::overlap_save_filterbank_analytic_t::overlap_save_filterbank_analytic_t (
MHAOvlFilter::overlap_save_filterbank_t::vars_t & fbpar,
mhaconfig_t channelconfig_in )

void MHAOvlFilter::overlap_save_filterbank_analytic_t::filter_analytic (
const mha_wave_t ∗ sIn,
mha_wave_t ∗∗ fltRe,
mha_wave_t ∗∗ fltIm )

Member Data Documentation

5.233.3.1 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

5.234

MHAOvlFilter::overlap_save_filterbank_t Class Reference

A time-domain minimal phase filter bank with frequency shapes from MHAOvlFilter::fftfb_t
(p. 616).
© 2005-2019 HörTech gGmbH, Oldenburg

5.234

MHAOvlFilter::overlap_save_filterbank_t Class Reference 629

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_
Additional Inherited Members
5.234.1

Detailed Description

A time-domain minimal phase filter bank with frequency shapes from MHAOvlFilter::fftfb_t
(p. 616).
© 2005-2019 HörTech gGmbH, Oldenburg

630

5.234.2

Constructor & Destructor Documentation

5.234.2.1

5.234.3

CONTENTS

MHAOvlFilter::overlap_save_filterbank_t::overlap_save_filterbank_t (
MHAOvlFilter::overlap_save_filterbank_t::vars_t & fbpar,
mhaconfig_t channelconfig_in )
Member Function Documentation

5.234.3.1 mhaconfig_t MHAOvlFilter::overlap_save_filterbank_t::get_channelconfig (
[inline]
5.234.4

) const

Member Data Documentation

5.234.4.1 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

5.235

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)
© 2005-2019 HörTech gGmbH, Oldenburg

5.235 MHAOvlFilter::overlap_save_filterbank_t::vars_t Class
Reference

631

Public Attributes

• MHAParser::int_t fftlen
• MHAParser::kw_t phasemodel
• MHAParser::window_t irswnd

5.235.1

5.235.1.1

5.235.2

Constructor & Destructor Documentation

MHAOvlFilter::overlap_save_filterbank_t::vars_t::vars_t (
MHAParser::parser_t & p )

Member Data Documentation

5.235.2.1 MHAParser::int_t MHAOvlFilter::overlap_save_filterbank_t::vars_t::fftlen

5.235.2.2 MHAParser::kw_t MHAOvlFilter::overlap_save_filterbank_t::vars_t::phasemodel

5.235.2.3 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

© 2005-2019 HörTech gGmbH, Oldenburg

632

5.236

CONTENTS

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

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.236

MHAOvlFilter::scale_var_t Class Reference

633

Additional Inherited Members

5.236.1

5.236.1.1

5.236.2

Constructor & Destructor Documentation

MHAOvlFilter::scale_var_t::scale_var_t (
const std::string & help )

Member Function Documentation

5.236.2.1

void MHAOvlFilter::scale_var_t::add_fun (
const std::string & name,
scale_fun_t ∗ fun )

5.236.2.2

std::string MHAOvlFilter::scale_var_t::get_name ( ) const [inline]

5.236.2.3 scale_fun_t∗ MHAOvlFilter::scale_var_t::get_fun ( ) const [inline]

5.236.2.4 mha_real_t MHAOvlFilter::scale_var_t::hz2unit (
mha_real_t x ) const

5.236.2.5 mha_real_t MHAOvlFilter::scale_var_t::unit2hz (
mha_real_t x ) const

5.236.3

Member Data Documentation

5.236.3.1

std::vector MHAOvlFilter::scale_var_t::names [private]

5.236.3.2

std::vector MHAOvlFilter::scale_var_t::funs [private]

The documentation for this class was generated from the following files:

• mha_fftfb.hh
• mha_fftfb.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

634

5.237

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::mint_mon_t

MHAParser::string_mon_t

MHAParser::variable_t

MHAParser::vcomplex
_mon_t

MHAParser::vfloat_mon_t

MHAParser::vint_mon_t

MHAParser::vstring
_mon_t

alsa_dev_par_parser_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_alsa_t

io_file_t

io_parser_t

io_tcp_parser_t

MHAFilter::adapt_filter_t

MHAFilter::iir_filter_t

MHAIOJack::io_jack_t

MHAParser::parser_t

MHAIOJackdb::io_jack_t

MHAIOPortAudio::device
_info_t

MHAIOPortAudio::io
_portaudio_t

MHAParser::mhaconfig
_mon_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 >

Classes
• class replace_t
© 2005-2019 HörTech gGmbH, Oldenburg

5.237

MHAParser::base_t Class Reference

635

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-2019 HörTech gGmbH, Oldenburg

636

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.237.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. 637)
method. Parser proxy derivatives which overwrite any of the other parse() (p. 637) methods to
be the key method must make sure that the original parse() (p. 637) method utilizes the new
key method.
© 2005-2019 HörTech gGmbH, Oldenburg

5.237

MHAParser::base_t Class Reference

5.237.2

Member Typedef Documentation

5.237.2.1
5.237.3

637

typedef std::vector MHAParser::base_t::repl_list_t [private]
Constructor & Destructor Documentation

5.237.3.1

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.237.3.2

MHAParser::base_t::base_t (
const base_t & src )

5.237.3.3

MHAParser::base_t::∼base_t ( ) [virtual]

5.237.4

Member Function Documentation

5.237.4.1

std::string MHAParser::base_t::parse (
const std::string & cs ) [virtual]

Causes this node to process a command in the openMHA configuration language.
Parameters
cs

The command to parse

Returns
The response to the command, if successful
Exceptions
MHA_Error ( p. 445)

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. 883), and altplugs_t (p. 215).
© 2005-2019 HörTech gGmbH, Oldenburg

638

5.237.4.2

CONTENTS

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. 637).
Parameters
cmd

Command to be parsed

retv
len

Buffer for the result
Length of buffer

Reimplemented in altplugs_t (p. 215).
5.237.4.3

void MHAParser::base_t::parse (
const std::vector< std::string > & cs,
std::vector< std::string > & retv ) [virtual]

5.237.4.4

std::string MHAParser::base_t::op_subparse (
expression_t & ) [virtual]

Reimplemented in MHAParser::c_ifc_parser_t (p. 649), and MHAParser::parser_t (p. 691).
5.237.4.5

std::string MHAParser::base_t::op_setval (
expression_t & ) [virtual]

Reimplemented in MHAParser::mcomplex_t (p. 675), MHAParser::mfloat_t (p. 679), MH←AParser::vcomplex_t (p. 706), MHAParser::vfloat_t (p. 710), MHAParser::vint_t (p. 714),
MHAParser::complex_t (p. 655), MHAParser::float_t (p. 661), MHAParser::int_t (p. 666),
MHAParser::bool_t (p. 647), MHAParser::vstring_t (p. 718), MHAParser::string_t (p. 699),
MHAParser::kw_t (p. 671), MHAParser::variable_t (p. 701), MHAParser::c_ifc_parser_←t (p. 649), and MHAParser::parser_t (p. 691).
5.237.4.6

std::string MHAParser::base_t::op_query (
expression_t & ) [virtual]

Reimplemented in MHAParser::monitor_t (p. 687), MHAParser::c_ifc_parser_t (p. 649),
and MHAParser::parser_t (p. 691).
5.237.4.7

std::string MHAParser::base_t::query_dump (
const std::string & s ) [virtual]

Reimplemented in MHAParser::monitor_t (p. 687), and MHAParser::parser_t (p. 691).
© 2005-2019 HörTech gGmbH, Oldenburg

5.237

MHAParser::base_t Class Reference

5.237.4.8

639

std::string MHAParser::base_t::query_entries (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 691).
5.237.4.9

std::string MHAParser::base_t::query_perm (
const std::string & s ) [virtual]

Reimplemented in MHAParser::variable_t (p. 701), and MHAParser::monitor_t (p. 687).
5.237.4.10

std::string MHAParser::base_t::query_range (
const std::string & s ) [virtual]

Reimplemented in MHAParser::kw_t (p. 671), and MHAParser::range_var_t (p. 694).
5.237.4.11

std::string MHAParser::base_t::query_type (
const std::string & s ) [virtual]

Reimplemented in MHAParser::mcomplex_mon_t (p. 673), MHAParser::vcomplex_mon←_t (p. 704), MHAParser::complex_mon_t (p. 653), MHAParser::float_mon_t (p. 659), MH←AParser::mfloat_mon_t (p. 677), MHAParser::vfloat_mon_t (p. 708), MHAParser::mint←_mon_t (p. 686), MHAParser::vint_mon_t (p. 712), MHAParser::vstring_mon_t (p. 716),
MHAParser::string_mon_t (p. 697), MHAParser::bool_mon_t (p. 645), MHAParser::int←_mon_t (p. 663), MHAParser::mcomplex_t (p. 675), MHAParser::mfloat_t (p. 679), MH←AParser::vcomplex_t (p. 706), MHAParser::vfloat_t (p. 710), MHAParser::vint_t (p. 714),
MHAParser::complex_t (p. 655), MHAParser::float_t (p. 661), MHAParser::int_t (p. 666),
MHAParser::bool_t (p. 647), MHAParser::vstring_t (p. 718), MHAParser::string_t (p. 699),
MHAParser::kw_t (p. 671), and MHAParser::parser_t (p. 691).
5.237.4.12

std::string MHAParser::base_t::query_val (
const std::string & s ) [virtual]

Reimplemented in MHAParser::mcomplex_mon_t (p. 673), MHAParser::vcomplex_mon←_t (p. 704), MHAParser::complex_mon_t (p. 653), MHAParser::float_mon_t (p. 659), MH←AParser::mfloat_mon_t (p. 677), MHAParser::vfloat_mon_t (p. 708), MHAParser::mint←_mon_t (p. 686), MHAParser::vint_mon_t (p. 712), MHAParser::vstring_mon_t (p. 716),
MHAParser::string_mon_t (p. 697), MHAParser::bool_mon_t (p. 645), MHAParser::int←_mon_t (p. 663), MHAParser::mcomplex_t (p. 675), MHAParser::mfloat_t (p. 679), MH←AParser::vcomplex_t (p. 706), MHAParser::vfloat_t (p. 710), MHAParser::vint_t (p. 714),
MHAParser::complex_t (p. 655), MHAParser::float_t (p. 661), MHAParser::int_t (p. 666),
MHAParser::bool_t (p. 647), MHAParser::vstring_t (p. 718), MHAParser::string_t (p. 699),
MHAParser::kw_t (p. 671), and MHAParser::parser_t (p. 692).
5.237.4.13

std::string MHAParser::base_t::query_readfile (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 691).
© 2005-2019 HörTech gGmbH, Oldenburg

640

5.237.4.14

CONTENTS

std::string MHAParser::base_t::query_savefile (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 692).
5.237.4.15

std::string MHAParser::base_t::query_savefile_compact (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 692).
5.237.4.16

std::string MHAParser::base_t::query_savemons (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 692).
5.237.4.17

std::string MHAParser::base_t::query_listids (
const std::string & s ) [virtual]

Reimplemented in MHAParser::parser_t (p. 692).
5.237.4.18

std::string MHAParser::base_t::query_version (
const std::string & )

5.237.4.19

std::string MHAParser::base_t::query_id (
const std::string & )

5.237.4.20

std::string MHAParser::base_t::query_subst (
const std::string & s )

5.237.4.21

std::string MHAParser::base_t::query_addsubst (
const std::string & s )

5.237.4.22

std::string MHAParser::base_t::query_help (
const std::string & s )

5.237.4.23

std::string MHAParser::base_t::query_cmds (
const std::string & s )

5.237.4.24

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-2019 HörTech gGmbH, Oldenburg

5.237

MHAParser::base_t Class Reference

641

Parameters
s

The new identification string.

5.237.4.25

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.237.4.26

void MHAParser::base_t::add_parent_on_insert (
parser_t ∗ p,
std::string n )

5.237.4.27

void MHAParser::base_t::rm_parent_on_remove (
parser_t ∗ )

5.237.4.28

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.237.4.29

void MHAParser::base_t::activate_query (
const std::string & n,
query_t a ) [protected]

5.237.4.30

void MHAParser::base_t::notify ( ) [protected]

5.237.4.31

void MHAParser::base_t::add_replace_pair (
const std::string & a,
const std::string & b ) [private]

5.237.4.32

std::string MHAParser::base_t::oplist ( ) [private]

5.237.5

Member Data Documentation

5.237.5.1 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.
© 2005-2019 HörTech gGmbH, Oldenburg

642

CONTENTS

5.237.5.2 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.
5.237.5.3 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.237.5.4 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.237.5.5 query_map_t MHAParser::base_t::queries [protected]
5.237.5.6

bool MHAParser::base_t::data_is_initialized [protected]

5.237.5.7

std::string MHAParser::base_t::help [private]

5.237.5.8

std::string MHAParser::base_t::id_str [private]

5.237.5.9 opact_map_t MHAParser::base_t::operators [private]
5.237.5.10 repl_list_t MHAParser::base_t::repl_list [private]
5.237.5.11

bool MHAParser::base_t::nested_lock [private]

5.237.5.12 parser_t∗ MHAParser::base_t::parent [private]
5.237.5.13

std::string MHAParser::base_t::thefullname [private]

The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.238

MHAParser::base_t::replace_t Class Reference

5.238

MHAParser::base_t::replace_t Class Reference

643

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

5.238.1

5.238.1.1

5.238.2

Constructor & Destructor Documentation

MHAParser::base_t::replace_t::replace_t (
const std::string & ia,
const std::string & ib )
Member Function Documentation

5.238.2.1

void MHAParser::base_t::replace_t::replace (
std::string & s )

5.238.2.2

const std::string& MHAParser::base_t::replace_t::get_a ( ) const [inline]

5.238.2.3

const std::string& MHAParser::base_t::replace_t::get_b ( ) const [inline]

5.238.3

Member Data Documentation

5.238.3.1

std::string MHAParser::base_t::replace_t::a [private]

5.238.3.2

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
© 2005-2019 HörTech gGmbH, Oldenburg

644

5.239

CONTENTS

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 &)
Additional Inherited Members
5.239.1

Detailed Description

Monitor with string value.
5.239.2
5.239.2.1

Constructor & Destructor Documentation
MHAParser::bool_mon_t::bool_mon_t (
const std::string & hlp )

Create a monitor variable for string values.

© 2005-2019 HörTech gGmbH, Oldenburg

5.240

MHAParser::bool_t Class Reference

645

Parameters
hlp

A help text describing this monitor variable.

5.239.3

Member Function Documentation

5.239.3.1

std::string MHAParser::bool_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.239.3.2

std::string MHAParser::bool_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.239.4

Member Data Documentation

5.239.4.1

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.240

MHAParser::bool_t Class Reference

Variable with a boolean value ("yes"/"no")
© 2005-2019 HörTech gGmbH, Oldenburg

646

CONTENTS

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.

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.240.1

Detailed Description

Variable with a boolean value ("yes"/"no")
© 2005-2019 HörTech gGmbH, Oldenburg

5.240

MHAParser::bool_t Class Reference

5.240.2

Constructor & Destructor Documentation

5.240.2.1

647

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.240.3
5.240.3.1

Member Function Documentation
std::string MHAParser::bool_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).
5.240.3.2

std::string MHAParser::bool_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.240.3.3

std::string MHAParser::bool_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.240.4
5.240.4.1

Member Data Documentation
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-2019 HörTech gGmbH, Oldenburg

648

5.241

CONTENTS

MHAParser::c_ifc_parser_t Class Reference

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-2019 HörTech gGmbH, Oldenburg

5.241

MHAParser::c_ifc_parser_t Class Reference

649

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.241.1

Constructor & Destructor Documentation

5.241.1.1

MHAParser::c_ifc_parser_t::c_ifc_parser_t (
const std::string & modulename_ )

5.241.1.2

MHAParser::c_ifc_parser_t::∼c_ifc_parser_t ( )

5.241.2

Member Function Documentation

5.241.2.1

void MHAParser::c_ifc_parser_t::set_parse_cb (
MHAParser::c_parse_cmd_t cb,
MHAParser::c_parse_err_t strerr,
void ∗ d )

5.241.2.2

std::string MHAParser::c_ifc_parser_t::op_subparse (
MHAParser::expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 638).
5.241.2.3

std::string MHAParser::c_ifc_parser_t::op_setval (
MHAParser::expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 638).
5.241.2.4

std::string MHAParser::c_ifc_parser_t::op_query (
MHAParser::expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 638).
© 2005-2019 HörTech gGmbH, Oldenburg

650

5.241.2.5

5.241.3

CONTENTS

void MHAParser::c_ifc_parser_t::test_error ( ) [private]

Member Data Documentation

5.241.3.1

std::string MHAParser::c_ifc_parser_t::modulename [private]

5.241.3.2 c_parse_cmd_t MHAParser::c_ifc_parser_t::c_parse_cmd [private]

5.241.3.3 c_parse_err_t MHAParser::c_ifc_parser_t::c_parse_err [private]

5.241.3.4

int MHAParser::c_ifc_parser_t::liberr [private]

5.241.3.5

void∗ MHAParser::c_ifc_parser_t::libdata [private]

5.241.3.6

unsigned int MHAParser::c_ifc_parser_t::ret_size [private]

5.241.3.7

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

5.242

MHAParser::commit_t< receiver_t > Class Template Reference

Parser variable with event-emission functionality.
© 2005-2019 HörTech gGmbH, Oldenburg

5.242 MHAParser::commit_t< receiver_t > Class Template
Reference

651

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.242.1

Detailed Description

template
class MHAParser::commit_t< receiver_t >
Parser variable with event-emission functionality.
The commit_t (p. 650) variable can register an event receiver in its constructor, which is called
whenever the variable is set to "commit".
© 2005-2019 HörTech gGmbH, Oldenburg

652

5.242.2

CONTENTS

Constructor & Destructor Documentation

5.242.2.1

5.242.3

template MHAParser::commit_t< receiver_t >::commit_t (
receiver_t ∗ r,
void(receiver_t::∗)() rfun,
const std::string & help = "Variable changes action" )
Member Data Documentation

5.242.3.1

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.243

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

Public Member Functions
• complex_mon_t (const std::string &hlp)
Create a complex monitor variable.
© 2005-2019 HörTech gGmbH, Oldenburg

5.243

MHAParser::complex_mon_t Class Reference

653

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.243.1

Detailed Description

Monitor with complex value.

5.243.2

Constructor & Destructor Documentation

5.243.2.1

MHAParser::complex_mon_t::complex_mon_t (
const std::string & hlp )

Create a complex monitor variable.
Parameters
hlp

A help text describing this monitor variable.

5.243.3

5.243.3.1

Member Function Documentation

std::string MHAParser::complex_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.243.3.2

std::string MHAParser::complex_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
© 2005-2019 HörTech gGmbH, Oldenburg

654

5.243.4

CONTENTS

Member Data Documentation

5.243.4.1 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.244

MHAParser::complex_t Class Reference

Variable with complex value.
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 &="")
© 2005-2019 HörTech gGmbH, Oldenburg

5.244

MHAParser::complex_t Class Reference

655

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.244.1

Detailed Description

Variable with complex value.

5.244.2

5.244.2.1

5.244.3

5.244.3.1

Constructor & Destructor Documentation

MHAParser::complex_t::complex_t (
const std::string & h,
const std::string & v,
const std::string & rg = "" )
Member Function Documentation

std::string MHAParser::complex_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).
5.244.3.2

std::string MHAParser::complex_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.244.3.3

std::string MHAParser::complex_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
© 2005-2019 HörTech gGmbH, Oldenburg

656

5.244.4

CONTENTS

Member Data Documentation

5.244.4.1 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.245

MHAParser::entry_t Class Reference

Public Member Functions
• entry_t (const std::string &, base_t ∗)

Public Attributes
• std::string name
• base_t ∗ entry

5.245.1

5.245.1.1

5.245.2

5.245.2.1

Constructor & Destructor Documentation

MHAParser::entry_t::entry_t (
const std::string & n,
base_t ∗ e )
Member Data Documentation

std::string MHAParser::entry_t::name

5.245.2.2 base_t∗ MHAParser::entry_t::entry
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.246

MHAParser::expression_t Class Reference

5.246

MHAParser::expression_t Class Reference

657

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.246.1
5.246.1.1

Constructor & Destructor Documentation
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)

5.246.1.2
5.246.2

expression_t::expression_t ( )
Member Data Documentation

5.246.2.1

std::string MHAParser::expression_t::lval

5.246.2.2

std::string MHAParser::expression_t::rval

5.246.2.3

std::string MHAParser::expression_t::op

The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

658

5.247

CONTENTS

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

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.247.1

Detailed Description

Monitor with float value.
5.247.2
5.247.2.1

Constructor & Destructor Documentation
MHAParser::float_mon_t::float_mon_t (
const std::string & hlp )

Initialize a floating point (32 bits) monitor variable.

© 2005-2019 HörTech gGmbH, Oldenburg

5.248

MHAParser::float_t Class Reference

659

Parameters
hlp

A help text describing this monitor variable.

5.247.3

Member Function Documentation

5.247.3.1

std::string MHAParser::float_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.247.3.2

std::string MHAParser::float_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.247.4

Member Data Documentation

5.247.4.1

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.248

MHAParser::float_t Class Reference

Variable with float value.
© 2005-2019 HörTech gGmbH, Oldenburg

660

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-2019 HörTech gGmbH, Oldenburg

5.248

MHAParser::float_t Class Reference

661

Additional Inherited Members
5.248.1

Detailed Description

Variable with float value.

5.248.2
5.248.2.1

Constructor & Destructor Documentation
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.248.3
5.248.3.1

Member Function Documentation
std::string MHAParser::float_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).
5.248.3.2

std::string MHAParser::float_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.248.3.3

std::string MHAParser::float_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
© 2005-2019 HörTech gGmbH, Oldenburg

662

5.248.4

CONTENTS

Member Data Documentation

5.248.4.1

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.249

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

Public Member Functions
• int_mon_t (const std::string &hlp)
Create a monitor variable for integral values.

Public Attributes
• int data
Data field.
© 2005-2019 HörTech gGmbH, Oldenburg

5.249

MHAParser::int_mon_t Class Reference

663

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.249.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.249.2

Constructor & Destructor Documentation

5.249.2.1

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.

5.249.3

5.249.3.1

Member Function Documentation

std::string MHAParser::int_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.249.3.2

std::string MHAParser::int_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
© 2005-2019 HörTech gGmbH, Oldenburg

664

5.249.4

CONTENTS

Member Data Documentation

5.249.4.1

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

5.250

MHAParser::int_t Class Reference

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.250

MHAParser::int_t Class Reference

665

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.

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.250.1

Detailed Description

Variable with integer value.

5.250.2
5.250.2.1

Constructor & Destructor Documentation
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.

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]).
© 2005-2019 HörTech gGmbH, Oldenburg
range

666

5.250.3

CONTENTS

Member Function Documentation

5.250.3.1

std::string MHAParser::int_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).

5.250.3.2

std::string MHAParser::int_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.250.3.3

std::string MHAParser::int_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.250.4

Member Data Documentation

5.250.4.1

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.251

MHAParser::keyword_list_t Class Reference

Keyword list class.

Public Types
• typedef std::vector< std::string >::size_type size_t
© 2005-2019 HörTech gGmbH, Oldenburg

5.251

MHAParser::keyword_list_t Class Reference

667

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.251.1

Detailed Description

Keyword list class.
The stucture keyword_list_t (p. 666) defines a keyword list (vector of strings) with an index into
the list. Used as MHAParser::kw_t (p. 669), it can be used to access a set of valid keywords
through the parser (i.e. one of "pear apple banana").

5.251.2
5.251.2.1
5.251.3
5.251.3.1

Member Typedef Documentation
typedef std::vector::size_type MHAParser::keyword_list_t::size_t
Constructor & Destructor Documentation
MHAParser::keyword_list_t::keyword_list_t ( )

Constructor.
© 2005-2019 HörTech gGmbH, Oldenburg

668

5.251.4
5.251.4.1

CONTENTS

Member Function Documentation
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.251.4.2

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.
Parameters
s

Space separated entry list.

5.251.4.3

const std::string & MHAParser::keyword_list_t::get_value ( ) const

Return selected value.
5.251.4.4

const std::vector< std::string > & MHAParser::keyword_list_t::get_entries ( ) const

Return keyword list.
5.251.4.5

const MHAParser::keyword_list_t::size_t & MHAParser::keyword_list_t::get_index ( )
const

Return index of selected value.
5.251.4.6

void MHAParser::keyword_list_t::set_index (
unsigned int idx )

5.251.4.7

void MHAParser::keyword_list_t::validate ( ) const

Check if index of selected value is valid.
© 2005-2019 HörTech gGmbH, Oldenburg

5.252

MHAParser::kw_t Class Reference

5.251.4.8

5.251.5

669

void MHAParser::keyword_list_t::add_entry (
const std::string & en ) [inline]
Member Data Documentation

5.251.5.1 size_t MHAParser::keyword_list_t::index [private]
Index into list.
5.251.5.2

std::vector MHAParser::keyword_list_t::entries [private]

List of valid entries.
5.251.5.3

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

5.252

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

© 2005-2019 HörTech gGmbH, Oldenburg

MHAParser::commit_t
< receiver_t >

670

CONTENTS

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.

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.252.1

Detailed Description

Variable with keyword list value.

5.252.2
5.252.2.1

Constructor & Destructor Documentation
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.
© 2005-2019 HörTech gGmbH, Oldenburg

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.252

5.252.2.2

MHAParser::kw_t Class Reference

671

MHAParser::kw_t::kw_t (
const kw_t & src )

Copy constructor.

5.252.3
5.252.3.1

Member Function Documentation
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.252.3.2

bool MHAParser::kw_t::isval (
const std::string & testval ) const

Test if the given value is selected.
5.252.3.3

void MHAParser::kw_t::validate (
const keyword_list_t & s ) [protected]

5.252.3.4

std::string MHAParser::kw_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).
5.252.3.5

std::string MHAParser::kw_t::query_range (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.252.3.6

std::string MHAParser::kw_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.252.3.7

std::string MHAParser::kw_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
© 2005-2019 HörTech gGmbH, Oldenburg

672

5.252.4

CONTENTS

Member Data Documentation

5.252.4.1 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

5.253

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.
© 2005-2019 HörTech gGmbH, Oldenburg

5.253

MHAParser::mcomplex_mon_t Class Reference

673

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.253.1

Detailed Description

Matrix of complex numbers monitor.

5.253.2

Constructor & Destructor Documentation

5.253.2.1

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.253.3
5.253.3.1

Member Function Documentation
std::string MHAParser::mcomplex_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.253.3.2

std::string MHAParser::mcomplex_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.253.4
5.253.4.1

Member Data Documentation
std::vector< std::vector > MHAParser::mcomplex_mon_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

674

5.254

CONTENTS

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 &="")

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 &)
© 2005-2019 HörTech gGmbH, Oldenburg

5.254

MHAParser::mcomplex_t Class Reference

675

Additional Inherited Members

5.254.1

Detailed Description

Matrix variable with complex value.

5.254.2

5.254.2.1

5.254.3

5.254.3.1

Constructor & Destructor Documentation

MHAParser::mcomplex_t::mcomplex_t (
const std::string & h,
const std::string & v,
const std::string & rg = "" )
Member Function Documentation

std::string MHAParser::mcomplex_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).
5.254.3.2

std::string MHAParser::mcomplex_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.254.3.3

std::string MHAParser::mcomplex_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.254.4

5.254.4.1

Member Data Documentation

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
© 2005-2019 HörTech gGmbH, Oldenburg

676

5.255

CONTENTS

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

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.255.1

Detailed Description

Matrix of floats monitor.
5.255.2
5.255.2.1

Constructor & Destructor Documentation
MHAParser::mfloat_mon_t::mfloat_mon_t (
const std::string & hlp )

Create a matrix of floating point monitor values.

© 2005-2019 HörTech gGmbH, Oldenburg

5.256

MHAParser::mfloat_t Class Reference

677

Parameters
hlp

A help text describing this monitor variable.

5.255.3

Member Function Documentation

5.255.3.1

std::string MHAParser::mfloat_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.255.3.2

std::string MHAParser::mfloat_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.255.4

Member Data Documentation

5.255.4.1

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.256

MHAParser::mfloat_t Class Reference

Matrix variable with float value.
© 2005-2019 HörTech gGmbH, Oldenburg

678

CONTENTS

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-2019 HörTech gGmbH, Oldenburg

5.256

MHAParser::mfloat_t Class Reference

679

Additional Inherited Members
5.256.1

Detailed Description

Matrix variable with float value.

5.256.2
5.256.2.1

Constructor & Destructor Documentation
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.256.3

5.256.3.1

Member Function Documentation

std::string MHAParser::mfloat_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).

5.256.3.2

std::string MHAParser::mfloat_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.256.3.3

std::string MHAParser::mfloat_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
© 2005-2019 HörTech gGmbH, Oldenburg

680

5.256.4

CONTENTS

Member Data Documentation

5.256.4.1

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.257

MHAParser::mhaconfig_mon_t Class Reference

Inheritance diagram for MHAParser::mhaconfig_mon_t:

MHAParser::base_t

MHAParser::parser_t

MHAParser::mhaconfig
_mon_t

Public Member Functions
• mhaconfig_mon_t (const std::string &help="")
• void update (const mhaconfig_t &cf)
© 2005-2019 HörTech gGmbH, Oldenburg

5.257

MHAParser::mhaconfig_mon_t Class Reference

681

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.257.1
5.257.1.1

5.257.2
5.257.2.1

5.257.3

Constructor & Destructor Documentation
MHAParser::mhaconfig_mon_t::mhaconfig_mon_t (
const std::string & help = "" )
Member Function Documentation
void MHAParser::mhaconfig_mon_t::update (
const mhaconfig_t & cf )
Member Data Documentation

5.257.3.1 MHAParser::int_mon_t MHAParser::mhaconfig_mon_t::channels [private]
Number of audio channels.
5.257.3.2 MHAParser::string_mon_t MHAParser::mhaconfig_mon_t::domain [private]
Signal domain (MHA_WAVEFORM or MHA_SPECTRUM)
5.257.3.3 MHAParser::int_mon_t MHAParser::mhaconfig_mon_t::fragsize [private]
Fragment size of waveform data.
5.257.3.4 MHAParser::int_mon_t MHAParser::mhaconfig_mon_t::wndlen [private]
Window length of spectral data.
© 2005-2019 HörTech gGmbH, Oldenburg

682

CONTENTS

5.257.3.5 MHAParser::int_mon_t MHAParser::mhaconfig_mon_t::fftlen [private]
FFT length of spectral data.
5.257.3.6 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.258

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-2019 HörTech gGmbH, Oldenburg

5.258

MHAParser::mhapluginloader_t Class Reference

683

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.258.1

Detailed Description

Class to create a plugin loader in a parser, including the load logic.

5.258.2

Constructor & Destructor Documentation

5.258.2.1

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.258.2.2

MHAParser::mhapluginloader_t::∼mhapluginloader_t ( )

5.258.3

Member Function Documentation

5.258.3.1

void MHAParser::mhapluginloader_t::prepare (
mhaconfig_t & cf )

5.258.3.2

void MHAParser::mhapluginloader_t::release ( )

5.258.3.3

void MHAParser::mhapluginloader_t::process (
mha_wave_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [inline]

5.258.3.4

void MHAParser::mhapluginloader_t::process (
mha_spec_t ∗ sIn,
mha_spec_t ∗∗ sOut ) [inline]

© 2005-2019 HörTech gGmbH, Oldenburg

684

5.258.3.5

void MHAParser::mhapluginloader_t::process (
mha_wave_t ∗ sIn,
mha_spec_t ∗∗ sOut ) [inline]

5.258.3.6

void MHAParser::mhapluginloader_t::process (
mha_spec_t ∗ sIn,
mha_wave_t ∗∗ sOut ) [inline]

CONTENTS

5.258.3.7 mhaconfig_t MHAParser::mhapluginloader_t::get_cfin ( ) const [inline]
5.258.3.8 mhaconfig_t MHAParser::mhapluginloader_t::get_cfout ( ) const [inline]
5.258.3.9

const std::string& MHAParser::mhapluginloader_t::get_last_name ( ) const [inline]

5.258.3.10
5.258.4

void MHAParser::mhapluginloader_t::load_plug ( ) [private]

Member Data Documentation

5.258.4.1 PluginLoader::mhapluginloader_t∗ MHAParser::mhapluginloader_t::plug
[protected]
5.258.4.2 MHAParser::parser_t& MHAParser::mhapluginloader_t::parent_ [private]
5.258.4.3 MHAParser::string_t MHAParser::mhapluginloader_t::plugname [private]
5.258.4.4

std::string MHAParser::mhapluginloader_t::prefix_ [private]

5.258.4.5 MHAEvents::connector_t MHAParser::mhapluginloader_t←::connector [private]
5.258.4.6 algo_comm_t MHAParser::mhapluginloader_t::ac_ [private]
5.258.4.7

std::string MHAParser::mhapluginloader_t::last_name [private]

5.258.4.8

std::string MHAParser::mhapluginloader_t::plugname_name_ [private]

5.258.4.9 mhaconfig_t MHAParser::mhapluginloader_t::cf_in_ [private]
5.258.4.10 mhaconfig_t MHAParser::mhapluginloader_t::cf_out_ [private]
5.258.4.11

double MHAParser::mhapluginloader_t::bookkeeping [static], [private]

The documentation for this class was generated from the following files:
• mhapluginloader.h
• mhapluginloader.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.259

MHAParser::mint_mon_t Class Reference

5.259

MHAParser::mint_mon_t Class Reference

Matrix of ints monitor.
Inheritance diagram for MHAParser::mint_mon_t:

MHAParser::base_t

MHAParser::monitor_t

MHAParser::mint_mon_t

Public Member Functions
• mint_mon_t (const std::string &hlp)
Create a matrix of integer monitor values.

Public Attributes
• std::vector< 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.259.1

Detailed Description

Matrix of ints monitor.
5.259.2
5.259.2.1

Constructor & Destructor Documentation
MHAParser::mint_mon_t::mint_mon_t (
const std::string & hlp )

Create a matrix of integer monitor values.

© 2005-2019 HörTech gGmbH, Oldenburg

685

686

CONTENTS

Parameters
hlp

A help text describing this monitor variable.

5.259.3

Member Function Documentation

5.259.3.1

std::string MHAParser::mint_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.259.3.2

std::string MHAParser::mint_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.259.4

Member Data Documentation

5.259.4.1

std::vector< std::vector > MHAParser::mint_mon_t::data

Data field.
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp

5.260

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

MHAParser::float_mon_t
MHAOvlFilter::scale
_var_t

MHAParser::int_mon_t

MHAParser::base_t

MHAParser::monitor_t

MHAParser::mcomplex
_mon_t

MHAParser::bool_t

MHAParser::commit_t
< receiver_t >

MHAParser::mfloat_mon_t

MHAParser::kw_t

MHAParser::complex_t

MHAParser::mint_mon_t

MHAParser::float_t

MHAParser::string_mon_t

MHAParser::int_t

parser_int_dyn

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

MHAParser::vfloat_t

MHAParser::vint_t

© 2005-2019 HörTech gGmbH, Oldenburg

5.260

MHAParser::monitor_t Class Reference

687

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.260.1

Detailed Description

Base class for monitors and variable nodes.

5.260.2

Constructor & Destructor Documentation

5.260.2.1

MHAParser::monitor_t::monitor_t (
const std::string & h )

5.260.2.2

MHAParser::monitor_t::monitor_t (
const monitor_t & src )

5.260.3
5.260.3.1

Member Function Documentation
std::string MHAParser::monitor_t::op_query (
expression_t & x ) [virtual]

Reimplemented from MHAParser::base_t (p. 638).
5.260.3.2

std::string MHAParser::monitor_t::query_dump (
const std::string & s ) [virtual]

Reimplemented from MHAParser::base_t (p. 638).
5.260.3.3

std::string MHAParser::monitor_t::query_perm (
const std::string & s ) [virtual]

Reimplemented from MHAParser::base_t (p. 639).
Reimplemented in MHAParser::variable_t (p. 701).
The documentation for this class was generated from the following files:
• mha_parser.hh
• mha_parser.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

688

5.261

CONTENTS

MHAParser::parser_t Class Reference

Parser node class.
Inherits MHAParser::base_t.
Inherited by alsa_dev_par_parser_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_alsa_t, io_file_t, io_parser_t, io_tcp_parser_t, MHA←Filter::adapt_filter_t, MHAFilter::iir_filter_t, MHAIOJack::io_jack_t, MHAIOJackdb::io_←jack_t, MHAIOPortAudio::device_info_t, MHAIOPortAudio::io_portaudio_t, MHAParser←::mhaconfig_mon_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 >, MHA←Plugin::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 >, M←HAPlugin::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<
fftfbpow_t >, MHAPlugin::plugin_t< float >, MHAPlugin::plugin_t< fshift_config_←t >, MHAPlugin::plugin_t< gtfb_analyzer_cfg_t >, 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 >, M←HAPlugin::plugin_t< overlapadd_t >, MHAPlugin::plugin_t< plingploing_t >, MHA←Plugin::plugin_t< prediction_error_config >, MHAPlugin::plugin_t< resampling_t >,
MHAPlugin::plugin_t< rmslevel_t >, MHAPlugin::plugin_t< route::process_t >, MHA←Plugin::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< timoConfig >, MHAPlugin::plugin_t< wave2spec_t >,
MHAPlugin::plugin_t< wavwriter_t >, softclipper_variables_t, testplugin::ac_parser_t,
testplugin::config_parser_t, and testplugin::signal_parser_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-2019 HörTech gGmbH, Oldenburg

5.261

MHAParser::parser_t Class Reference

689

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.261.1

Detailed Description

Parser node class.
A parser_t (p. 688) instance is a node in the configuration tree. A parser node can contain any
number of other parser_t (p. 688) instances or configuration language variables. These items
are inserted into a parser node using the parser_t::insert_item (p. 690) method.

5.261.2
5.261.2.1

Constructor & Destructor Documentation
MHAParser::parser_t::parser_t (
const std::string & help_text = "" )

Construct detached node to be used in the configuration tree.

© 2005-2019 HörTech gGmbH, Oldenburg

690

CONTENTS

Parameters
help_text

5.261.2.2
5.261.3
5.261.3.1

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.

MHAParser::parser_t::∼parser_t ( )
Member Function Documentation
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.261.3.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.
Parameters
n

Name of parser item to be removed from list.

5.261.3.3

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.
© 2005-2019 HörTech gGmbH, Oldenburg

5.261

MHAParser::parser_t Class Reference

5.261.3.4

691

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

Address of parser item to be removed.

5.261.3.5

std::string MHAParser::parser_t::op_subparse (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 638).
5.261.3.6

std::string MHAParser::parser_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 638).
5.261.3.7

std::string MHAParser::parser_t::op_query (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 638).
5.261.3.8

std::string MHAParser::parser_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.261.3.9

std::string MHAParser::parser_t::query_dump (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 638).
5.261.3.10

std::string MHAParser::parser_t::query_entries (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.261.3.11

std::string MHAParser::parser_t::query_readfile (
const std::string & fname ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
© 2005-2019 HörTech gGmbH, Oldenburg

692

5.261.3.12

CONTENTS

std::string MHAParser::parser_t::query_savefile (
const std::string & fname ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 640).
5.261.3.13

std::string MHAParser::parser_t::query_savefile_compact (
const std::string & fname ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 640).
5.261.3.14

std::string MHAParser::parser_t::query_savemons (
const std::string & fname ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 640).
5.261.3.15

std::string MHAParser::parser_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.261.3.16

std::string MHAParser::parser_t::query_listids (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 640).
5.261.3.17

5.261.4

void MHAParser::parser_t::set_id_string (
const std::string & s ) [protected]

Member Data Documentation

5.261.4.1 entry_map_t MHAParser::parser_t::entries [private]
5.261.4.2

std::string MHAParser::parser_t::id_string [private]

identification string
5.261.4.3

std::string MHAParser::parser_t::srcfile [private]

5.261.4.4

unsigned int MHAParser::parser_t::srcline [private]

5.261.4.5

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.262

MHAParser::range_var_t Class Reference

5.262

MHAParser::range_var_t Class Reference

693

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 validate (const int &)
void validate (const float &)
void validate (const mha_complex_t &)
void validate (const std::vector< int > &)
void validate (const std::vector< float > &)
void validate (const std::vector< mha_complex_t > &)
void validate (const std::vector< std::vector< float > > &)
void validate (const std::vector< std::vector< mha_complex_t > > &)

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.
© 2005-2019 HörTech gGmbH, Oldenburg

694

CONTENTS

Additional Inherited Members
5.262.1

Detailed Description

Base class for all variables with a numeric value range.

5.262.2

Constructor & Destructor Documentation

5.262.2.1

MHAParser::range_var_t::range_var_t (
const std::string & h,
const std::string & r = "" )

5.262.2.2

MHAParser::range_var_t::range_var_t (
const range_var_t & src )

5.262.3
5.262.3.1

Member Function Documentation
std::string MHAParser::range_var_t::query_range (
const std::string & s ) [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.262.3.2

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.262.3.3

void MHAParser::range_var_t::validate (
const int & v )

5.262.3.4

void MHAParser::range_var_t::validate (
const float & v )

5.262.3.5

void MHAParser::range_var_t::validate (
const mha_complex_t & v )

5.262.3.6

void MHAParser::range_var_t::validate (
const std::vector< int > & v )

© 2005-2019 HörTech gGmbH, Oldenburg

5.262

MHAParser::range_var_t Class Reference

5.262.3.7

void MHAParser::range_var_t::validate (
const std::vector< float > & v )

5.262.3.8

void MHAParser::range_var_t::validate (
const std::vector< mha_complex_t > & v )

5.262.3.9

void MHAParser::range_var_t::validate (
const std::vector< std::vector< float > > & v )

5.262.3.10

5.262.4
5.262.4.1

695

void MHAParser::range_var_t::validate (
const std::vector< std::vector< mha_complex_t > > & v )

Member Data Documentation
float MHAParser::range_var_t::low_limit [protected]

Lower limit of range.
5.262.4.2

float MHAParser::range_var_t::up_limit [protected]

Upper limit of range.
5.262.4.3

bool MHAParser::range_var_t::low_incl [protected]

Lower limit is included (or excluded) in range.
5.262.4.4

bool MHAParser::range_var_t::up_incl [protected]

Upper limit is included (or excluded) in range.
5.262.4.5

bool MHAParser::range_var_t::check_low [protected]

Check lower limit.
5.262.4.6

bool MHAParser::range_var_t::check_up [protected]

Check upper limit.
5.262.4.7

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-2019 HörTech gGmbH, Oldenburg

696

5.263

CONTENTS

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.263.1

Detailed Description

Monitor with string value.
5.263.2
5.263.2.1

Constructor & Destructor Documentation
MHAParser::string_mon_t::string_mon_t (
const std::string & hlp )

Create a monitor variable for string values.

© 2005-2019 HörTech gGmbH, Oldenburg

5.264

MHAParser::string_t Class Reference

697

Parameters
hlp

A help text describing this monitor variable.

5.263.3

Member Function Documentation

5.263.3.1

std::string MHAParser::string_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.263.3.2

std::string MHAParser::string_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.263.4

Member Data Documentation

5.263.4.1

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.264

MHAParser::string_t Class Reference

Variable with a string value.
© 2005-2019 HörTech gGmbH, Oldenburg

698

CONTENTS

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.

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.264.1

Detailed Description

Variable with a string value.
© 2005-2019 HörTech gGmbH, Oldenburg

5.264

MHAParser::string_t Class Reference

5.264.2

Constructor & Destructor Documentation

5.264.2.1

699

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.264.3

5.264.3.1

Member Function Documentation

std::string MHAParser::string_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).
5.264.3.2

std::string MHAParser::string_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.264.3.3

std::string MHAParser::string_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.264.4

5.264.4.1

Member Data Documentation

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
© 2005-2019 HörTech gGmbH, Oldenburg

700

5.265

CONTENTS

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

parser_int_dyn

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

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.265.1

Detailed Description

Base class for variable nodes.
© 2005-2019 HörTech gGmbH, Oldenburg

5.265

MHAParser::variable_t Class Reference

5.265.2

Constructor & Destructor Documentation

5.265.2.1

5.265.3
5.265.3.1

701

MHAParser::variable_t::variable_t (
const std::string & h )
Member Function Documentation
std::string MHAParser::variable_t::op_setval (
expression_t & x ) [virtual]

Reimplemented from MHAParser::base_t (p. 638).
Reimplemented in MHAParser::mcomplex_t (p. 675), MHAParser::mfloat_t (p. 679), MH←AParser::vcomplex_t (p. 706), MHAParser::vfloat_t (p. 710), MHAParser::vint_t (p. 714),
MHAParser::complex_t (p. 655), MHAParser::float_t (p. 661), MHAParser::int_t (p. 666),
MHAParser::bool_t (p. 647), MHAParser::vstring_t (p. 718), MHAParser::string_t (p. 699),
and MHAParser::kw_t (p. 671).
5.265.3.2

std::string MHAParser::variable_t::query_perm (
const std::string & s ) [virtual]

Reimplemented from MHAParser::monitor_t (p. 687).
5.265.3.3

void MHAParser::variable_t::setlock (
const bool & b )

Lock a variable against write access.
Parameters
b

Lock state

5.265.4

5.265.4.1

Member Data Documentation

bool MHAParser::variable_t::locked [private]

The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

702

5.266

CONTENTS

MHAParser::vcomplex_mon_t Class Reference

Monitor with vector of complex values.
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.266.1

Detailed Description

Monitor with vector of complex values.
© 2005-2019 HörTech gGmbH, Oldenburg

5.266

MHAParser::vcomplex_mon_t Class Reference

5.266.2

Constructor & Destructor Documentation

5.266.2.1

MHAParser::vcomplex_mon_t::vcomplex_mon_t (
const std::string & hlp )

Create a vector of complex monitor values.

© 2005-2019 HörTech gGmbH, Oldenburg

703

704

CONTENTS

Parameters
hlp

A help text describing this monitor variable.

5.266.3

Member Function Documentation

5.266.3.1

std::string MHAParser::vcomplex_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.266.3.2

std::string MHAParser::vcomplex_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.266.4

Member Data Documentation

5.266.4.1

std::vector MHAParser::vcomplex_mon_t::data

Data field.
The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp

5.267

MHAParser::vcomplex_t Class Reference

Vector variable with complex value.
© 2005-2019 HörTech gGmbH, Oldenburg

5.267

MHAParser::vcomplex_t Class Reference

705

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 &)

Additional Inherited Members
5.267.1

Detailed Description

Vector variable with complex value.
© 2005-2019 HörTech gGmbH, Oldenburg

706

5.267.2

5.267.2.1

5.267.3

5.267.3.1

CONTENTS

Constructor & Destructor Documentation

MHAParser::vcomplex_t::vcomplex_t (
const std::string & h,
const std::string & v,
const std::string & rg = "" )

Member Function Documentation

std::string MHAParser::vcomplex_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).

5.267.3.2

std::string MHAParser::vcomplex_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.267.3.3

std::string MHAParser::vcomplex_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.267.4

5.267.4.1

Member Data Documentation

std::vector MHAParser::vcomplex_t::data

Data field.
The documentation for this class was generated from the following files:

• mha_parser.hh
• mha_parser.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.268

MHAParser::vfloat_mon_t Class Reference

5.268

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.

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.268.1

Detailed Description

Vector of floats monitor.
© 2005-2019 HörTech gGmbH, Oldenburg

707

708

5.268.2

CONTENTS

Constructor & Destructor Documentation

5.268.2.1

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.268.3

5.268.3.1

Member Function Documentation

std::string MHAParser::vfloat_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.268.3.2

std::string MHAParser::vfloat_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.268.4

5.268.4.1

Member Data Documentation

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.269

MHAParser::vfloat_t Class Reference

5.269

MHAParser::vfloat_t Class Reference

709

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

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 &)
© 2005-2019 HörTech gGmbH, Oldenburg

710

CONTENTS

Additional Inherited Members
5.269.1

Detailed Description

Vector variable with float value.

5.269.2
5.269.2.1

Constructor & Destructor Documentation
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.

•

5.269.3
5.269.3.1

Member Function Documentation
std::string MHAParser::vfloat_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).
5.269.3.2

std::string MHAParser::vfloat_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.269.3.3

std::string MHAParser::vfloat_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
© 2005-2019 HörTech gGmbH, Oldenburg

5.270

MHAParser::vint_mon_t Class Reference

5.269.4

Member Data Documentation

5.269.4.1

711

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

5.270

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.
© 2005-2019 HörTech gGmbH, Oldenburg

712

CONTENTS

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.270.1

Detailed Description

Vector of ints monitor.

5.270.2

Constructor & Destructor Documentation

5.270.2.1

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.270.3
5.270.3.1

Member Function Documentation
std::string MHAParser::vint_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.270.3.2

std::string MHAParser::vint_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.270.4
5.270.4.1

Member Data Documentation
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
© 2005-2019 HörTech gGmbH, Oldenburg

5.271

MHAParser::vint_t Class Reference

5.271

MHAParser::vint_t Class Reference

713

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.

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 &)
© 2005-2019 HörTech gGmbH, Oldenburg

714

CONTENTS

Additional Inherited Members
5.271.1

Detailed Description

Variable with vector value.

5.271.2
5.271.2.1

Constructor & Destructor Documentation
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.271.3

5.271.3.1

Member Function Documentation

std::string MHAParser::vint_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).

5.271.3.2

std::string MHAParser::vint_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.271.3.3

std::string MHAParser::vint_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
© 2005-2019 HörTech gGmbH, Oldenburg

5.272

MHAParser::vstring_mon_t Class Reference

5.271.4

Member Data Documentation

5.271.4.1

715

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

5.272

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.
© 2005-2019 HörTech gGmbH, Oldenburg

716

CONTENTS

Protected Member Functions
• std::string query_val (const std::string &)
• std::string query_type (const std::string &)

Additional Inherited Members
5.272.1

Detailed Description

Vector of monitors with string value.

5.272.2

Constructor & Destructor Documentation

5.272.2.1

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.272.3
5.272.3.1

Member Function Documentation
std::string MHAParser::vstring_mon_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).
5.272.3.2

std::string MHAParser::vstring_mon_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.272.4
5.272.4.1

Member Data Documentation
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
© 2005-2019 HörTech gGmbH, Oldenburg

5.273

MHAParser::vstring_t Class Reference

5.273

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.

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.273.1

Detailed Description

Vector variable with string values.
© 2005-2019 HörTech gGmbH, Oldenburg

717

718

5.273.2

5.273.2.1

5.273.3

5.273.3.1

CONTENTS

Constructor & Destructor Documentation

MHAParser::vstring_t::vstring_t (
const std::string & h,
const std::string & v )

Member Function Documentation

std::string MHAParser::vstring_t::op_setval (
expression_t & x ) [protected], [virtual]

Reimplemented from MHAParser::variable_t (p. 701).

5.273.3.2

std::string MHAParser::vstring_t::query_type (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.273.3.3

std::string MHAParser::vstring_t::query_val (
const std::string & s ) [protected], [virtual]

Reimplemented from MHAParser::base_t (p. 639).

5.273.4

5.273.4.1

Member Data Documentation

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.274

MHAParser::window_t Class Reference

5.274

MHAParser::window_t Class Reference

719

MHA configuration interface for a window function generator.
Inheritance diagram for MHAParser::window_t:

MHAParser::base_t

MHAParser::parser_t

MHAParser::window_t

Public Types
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
© 2005-2019 HörTech gGmbH, Oldenburg

720

CONTENTS

Additional Inherited Members
5.274.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. 835) based on the values provided by the configuration interface.
The configuration interface is derived from MHAParser::parser_t (p. 688) and can thus be
inserted into the configuration tree using the insert_item() (p. 690) 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. 838) class constructor; for the user-defined type the values from the "user"
variable are copied.

5.274.2
5.274.2.1

Member Enumeration Documentation
enum MHAParser::window_t::wtype_t

Enumerator
wnd_rect
wnd_hann
wnd_hamming
wnd_blackman
wnd_bartlett
wnd_user

5.274.3
5.274.3.1

Constructor & Destructor Documentation
MHAParser::window_t::window_t (
const std::string & help = "Window type configuration." )

Constructor to create parser class.

5.274.4

Member Function Documentation

5.274.4.1 MHAWindow::base_t MHAParser::window_t::get_window (
unsigned int len ) const
Create a window instance, use default parameters.
© 2005-2019 HörTech gGmbH, Oldenburg

5.274

MHAParser::window_t Class Reference

721

5.274.4.2 MHAWindow::base_t MHAParser::window_t::get_window (
unsigned int len,
float xmin ) const
Create a window instance.
5.274.4.3 MHAWindow::base_t MHAParser::window_t::get_window (
unsigned int len,
float xmin,
float xmax ) const
Create a window instance.
5.274.4.4 MHAWindow::base_t MHAParser::window_t::get_window (
unsigned int len,
float xmin,
float xmax,
bool minincluded ) const
Create a window instance.
5.274.4.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.274.4.6 MHAParser::window_t::wtype_t MHAParser::window_t::get_type ( ) const
Return currently selected window type.

5.274.5

Member Data Documentation

5.274.5.1 MHAParser::kw_t MHAParser::window_t::wtype [private]
5.274.5.2 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
© 2005-2019 HörTech gGmbH, Oldenburg

722

5.275

CONTENTS

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.275.1

Constructor & Destructor Documentation

5.275.1.1

mhaplug_cfg_t::mhaplug_cfg_t (
algo_comm_t iac,
const std::string & libname,
bool use_own_ac )

5.275.1.2

mhaplug_cfg_t::∼mhaplug_cfg_t ( ) throw )

[inline]

The documentation for this class was generated from the following file:
• altplugs.cpp

5.276

MHAPlugin::cfg_chain_t< runtime_cfg_t > Class Template Reference

Public Member Functions
• cfg_chain_t (runtime_cfg_t ∗id)
• ∼cfg_chain_t ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.277 MHAPlugin::config_t< runtime_cfg_t > Class Template
Reference

723

Public Attributes
• cfg_chain_t< runtime_cfg_t > ∗ next
• bool not_in_use
• runtime_cfg_t ∗ data

5.276.1

Constructor & Destructor Documentation

5.276.1.1

template MHAPlugin::cfg_chain_t< runtime_cfg_t
>::cfg_chain_t (
runtime_cfg_t ∗ id )

5.276.1.2

template MHAPlugin::cfg_chain_t< runtime_cfg_t
>::∼cfg_chain_t ( )

5.276.2

Member Data Documentation

5.276.2.1

template cfg_chain_t< runtime_cfg_t >∗
MHAPlugin::cfg_chain_t< runtime_cfg_t >::next

5.276.2.2

template bool MHAPlugin::cfg_chain_t< runtime_cfg_t
>::not_in_use

5.276.2.3

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.277

MHAPlugin::config_t< runtime_cfg_t > Class Template Reference

Template class for thread safe configuration.
© 2005-2019 HörTech gGmbH, Oldenburg

724

CONTENTS

Inheritance diagram for MHAPlugin::config_t< runtime_cfg_t >:

addsndfile::addsndfile
_if_t< level_adapt_t >

calibrator_t
MHAPlugin::config_t
< runtime_cfg_t >

addsndfile::addsndfile
_if_t< sndfile_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 >

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 ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.277 MHAPlugin::config_t< runtime_cfg_t > Class Template
Reference

725

Private Attributes
• MHAPlugin::cfg_chain_t< runtime_cfg_t > ∗ cfg_chain
• MHAPlugin::cfg_chain_t< runtime_cfg_t > ∗ cfg_chain_current
5.277.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. 107) variables into
derived runtime configuration. The constructor should fail if the configuration is invalid by any
reason.
A new runtime configuration is provided by the function push_config() (p. 726). In the processing thread, the actual configuration can be received by a call of poll_config() (p. 726).

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.

© 2005-2019 HörTech gGmbH, Oldenburg

726

5.277.2

CONTENTS

Constructor & Destructor Documentation

5.277.2.1

template MHAPlugin::config_t< runtime_cfg_t >::config_t ( )

5.277.2.2

template MHAPlugin::config_t< runtime_cfg_t >::∼config_t ( )

5.277.3

Member Function Documentation

5.277.3.1

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. 445)

5.277.3.2

if the resulting runtime configuration is NULL. This usually means
that no push_config has occured.

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.
5.277.3.3

template void MHAPlugin::config_t< runtime_cfg_t
>::push_config (
runtime_cfg_t ∗ ncfg ) [protected]

Push a new run time configuration into the configuration fifo.
© 2005-2019 HörTech gGmbH, Oldenburg

5.277 MHAPlugin::config_t< runtime_cfg_t > Class Template
Reference

727

This function adds a new run time configuration. The next time poll_config (p. 726) 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.

© 2005-2019 HörTech gGmbH, Oldenburg

728

CONTENTS

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.277.3.4

template void MHAPlugin::config_t< runtime_cfg_t
>::cleanup_unused_cfg ( ) [protected]

5.277.3.5

template void MHAPlugin::config_t< runtime_cfg_t
>::remove_all_cfg ( ) [private]

5.277.4

Member Data Documentation

5.277.4.1

template runtime_cfg_t∗ MHAPlugin::config_t< runtime_cfg_t
>::cfg [protected]

5.277.4.2

template MHAPlugin::cfg_chain_t∗
MHAPlugin::config_t< runtime_cfg_t >::cfg_chain [private]

5.277.4.3

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.278

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 >:

addsndfile::addsndfile
_if_t< sndfile_t >

MHAParser::base_t

calibrator_t< calibrator
_runtime_layer_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 >

© 2005-2019 HörTech gGmbH, Oldenburg

5.278 MHAPlugin::plugin_t< runtime_cfg_t > Class Template
Reference

729

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.

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.278.1

Detailed Description

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

© 2005-2019 HörTech gGmbH, Oldenburg

730

CONTENTS

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. 10).
The template parameter runtime_cfg_t should be the runtime configuration of the plugin.
See MHAPlugin::config_t (p. 723) for details on the thread safe communication update mechanism.

5.278.2
5.278.2.1

Constructor & Destructor Documentation
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.278.2.2

5.278.3
5.278.3.1

template MHAPlugin::plugin_t< runtime_cfg_t >::∼plugin_t (
) [virtual]
Member Function Documentation
template virtual void MHAPlugin::plugin_t< runtime_cfg_t
>::prepare (
mhaconfig_t & ) [pure virtual]

Implemented in bbcalib_interface_t
(p. 229), calibrator_t
(p. 232), addsndfile←::addsndfile_if_t (p. 181), testplugin::if_t (p. 935), analysispath_if_t (p. 220), adm_←if_t (p. 196), ac2lsl::ac2lsl_t (p. 132), overlapadd::overlapadd_if_t (p. 860), noisePow←ProposedScale::interface_t (p. 856), dc_simple::dc_if_t (p. 264), dc::dc_if_t (p. 254),
© 2005-2019 HörTech gGmbH, Oldenburg

5.278 MHAPlugin::plugin_t< runtime_cfg_t > Class Template
Reference

731

multibandcompressor::interface_t
(p. 848), plingploing::if_t
(p. 866), combc_if_←t (p. 244), gtfb_analyzer::gtfb_analyzer_t (p. 357), coherence::cohflt_if_t (p. 238),
plugin_interface_t (p. 873), example6_t (p. 317), smoothgains_bridge::overlapadd←_if_t (p. 913), MHAPlugin_Resampling::resampling_if_t (p. 734), shadowfilter_end←::shadowfilter_end_t (p. 909), ac2wave_if_t (p. 149), noise_t (p. 854), nlms_t (p. 852),
prediction_error (p. 888), fshift_hilbert::frequency_translator_t (p. 338), acPooling_wave
(p. 161), spec2wave_if_t (p. 921), mhachain::chain_base_t (p. 499), acsave::acsave_←t (p. 166), fader_wave::fader_wave_if_t (p. 321), doasvm_feature_extraction (p. 284),
fshift::fshift_t (p. 335), rmslevel_if_t (p. 893), shadowfilter_begin::shadowfilter_begin_t
(p. 906), example3_t (p. 310), example4_t (p. 314), lpc_bl_predictor (p. 399), lpc_←burglattice (p. 404), steerbf (p. 927), delaysum::delaysum_if_t (p. 276), lpc (p. 396), db←_if_t (p. 250), fader_if_t (p. 319), acConcat_wave (p. 153), acSteer (p. 173), acTransform←_wave (p. 177), wave2spec_if_t (p. 950), fftfbpow::fftfbpow_interface_t (p. 325), gain←::gain_if_t (p. 351), droptect_t (p. 288), example1_t (p. 304), sine_t (p. 911), example2_t
(p. 307), doasvm_classification (p. 280), fftfilterbank::fftfb_interface_t (p. 329), wavrec_t
(p. 954), matrixmixer::matmix_t (p. 411), route::interface_t (p. 896), altplugs_t (p. 214),
softclip_t (p. 917), ac2osc_t (p. 146), save_spec_t (p. 902), save_wave_t (p. 903),
acmon::acmon_t (p. 158), timoSmooth (p. 946), identity_t (p. 360), cpuload_t (p. 248),
delay::interface_t (p. 274), ds_t (p. 291), and us_t (p. 948).
5.278.3.2

template void MHAPlugin::plugin_t< runtime_cfg_t >::release (
) [virtual]

Reimplemented in bbcalib_interface_t (p. 229), calibrator_t (p. 232), addsndfile←::addsndfile_if_t (p. 181), analysispath_if_t (p. 220), ac2lsl::ac2lsl_t (p. 132), adm←_if_t
(p. 196), overlapadd::overlapadd_if_t
(p. 861), dc_simple::dc_if_t
(p. 264),
multibandcompressor::interface_t (p. 848), coherence::cohflt_if_t (p. 238), smoothgains←_bridge::overlapadd_if_t (p. 913), MHAPlugin_Resampling::resampling_if_t (p. 734),
ac2wave_if_t (p. 149), nlms_t (p. 852), prediction_error (p. 888), fshift_hilbert←::frequency_translator_t (p. 338), acPooling_wave (p. 162), mhachain::chain_base_t
(p. 499), acsave::acsave_t (p. 166), fader_wave::fader_wave_if_t (p. 321), doasvm_←feature_extraction (p. 285), fshift::fshift_t (p. 336), example3_t (p. 311), example4_t
(p. 314), lpc_bl_predictor (p. 400), lpc_burglattice (p. 404), steerbf (p. 928), delaysum←::delaysum_if_t (p. 276), lpc (p. 397), db_if_t (p. 250), acConcat_wave (p. 153), ac←Steer (p. 174), acTransform_wave (p. 178), droptect_t (p. 288), gain::gain_if_t (p. 351),
example2_t (p. 307), doasvm_classification (p. 281), fftfilterbank::fftfb_interface_←t (p. 329), wavrec_t (p. 954), route::interface_t (p. 896), ac2osc_t (p. 146), example1_t
(p. 304), altplugs_t (p. 215), acmon::acmon_t (p. 159), timoSmooth (p. 946), identity_t
(p. 360), ds_t (p. 291), and us_t (p. 948).
5.278.3.3

template void MHAPlugin::plugin_t< runtime_cfg_t >::prepare_ (
mhaconfig_t & cf )

5.278.3.4

template void MHAPlugin::plugin_t< runtime_cfg_t >::release_ (
)

5.278.3.5

template bool MHAPlugin::plugin_t< runtime_cfg_t
>::is_prepared ( ) const [inline]

Flag, if the prepare method is successfully called (or currently evaluated)
© 2005-2019 HörTech gGmbH, Oldenburg

732

5.278.3.6

CONTENTS

template mhaconfig_t MHAPlugin::plugin_t< runtime_cfg_t
>::input_cfg ( ) const [inline]

Current input channel configuration.
5.278.3.7

template mhaconfig_t MHAPlugin::plugin_t< runtime_cfg_t
>::output_cfg ( ) const [inline]

Current output channel configuration.

5.278.4
5.278.4.1

Member Data Documentation
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. 504) are stored in this member in the prepare() (p. 730) method.
Note
This member is likely to be removed in later versions, use input_cfg() (p. 732) and
output_cfg() (p. 732) instead.
5.278.4.2

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.278.4.3

template bool MHAPlugin::plugin_t< runtime_cfg_t
>::is_prepared_ [private]

5.278.4.4

template mhaconfig_t MHAPlugin::plugin_t< runtime_cfg_t
>::input_cfg_ [private]

5.278.4.5

template mhaconfig_t MHAPlugin::plugin_t< runtime_cfg_t
>::output_cfg_ [private]

5.278.4.6

template MHAParser::mhaconfig_mon_t
MHAPlugin::plugin_t< runtime_cfg_t >::mhaconfig_in [private]

5.278.4.7

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-2019 HörTech gGmbH, Oldenburg

5.279

MHAPlugin_Resampling::resampling_if_t Class Reference733

5.279

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-2019 HörTech gGmbH, Oldenburg

734

CONTENTS

Additional Inherited Members
5.279.1
5.279.1.1

5.279.2

Constructor & Destructor Documentation
MHAPlugin_Resampling::resampling_if_t::resampling_if_t (
algo_comm_t iac,
std::string th,
std::string al )
Member Function Documentation

5.279.2.1 mha_wave_t ∗ MHAPlugin_Resampling::resampling_if_t::process (
mha_wave_t ∗ s )
5.279.2.2

void MHAPlugin_Resampling::resampling_if_t::prepare (
mhaconfig_t & conf ) [virtual]

Implements MHAPlugin::plugin_t< resampling_t > (p. 730).
5.279.2.3

void MHAPlugin_Resampling::resampling_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< resampling_t > (p. 731).

5.279.3

Member Data Documentation

5.279.3.1 MHAParser::float_t MHAPlugin_Resampling::resampling_if_t::srate [private]
5.279.3.2 MHAParser::int_t MHAPlugin_Resampling::resampling_if_t::fragsize [private]
5.279.3.3 MHAParser::float_t MHAPlugin_Resampling::resampling_if_t::nyquist_ratio
[private]
5.279.3.4 MHAParser::float_t MHAPlugin_Resampling::resampling_if_t::irslen_outer2inner
[private]
5.279.3.5 MHAParser::float_t MHAPlugin_Resampling::resampling_if_t::irslen_inner2outer
[private]
5.279.3.6 MHAParser::mhapluginloader_t MHAPlugin_Resampling::resampling_if_t::plugloader
[private]
5.279.3.7

std::string MHAPlugin_Resampling::resampling_if_t::chain [private]

5.279.3.8

std::string MHAPlugin_Resampling::resampling_if_t::algo [private]

The documentation for this class was generated from the following file:
• resampling.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.280

MHAPlugin_Resampling::resampling_t Class Reference

5.280

MHAPlugin_Resampling::resampling_t Class Reference

735

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.280.1

5.280.1.1

5.280.2

Constructor & Destructor Documentation

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 )
Member Function Documentation

5.280.2.1 mha_wave_t ∗ MHAPlugin_Resampling::resampling_t::process (
mha_wave_t ∗ s )
5.280.3

Member Data Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

736

CONTENTS

5.280.3.1

unsigned MHAPlugin_Resampling::resampling_t::outer_fragsize [private]

5.280.3.2

unsigned MHAPlugin_Resampling::resampling_t::inner_fragsize [private]

5.280.3.3

float MHAPlugin_Resampling::resampling_t::outer_srate [private]

5.280.3.4

float MHAPlugin_Resampling::resampling_t::inner_srate [private]

5.280.3.5

unsigned MHAPlugin_Resampling::resampling_t::nchannels_in [private]

5.280.3.6

unsigned MHAPlugin_Resampling::resampling_t::nchannels_out [private]

5.280.3.7 MHAFilter::blockprocessing_polyphase_resampling_t
MHAPlugin_Resampling::resampling_t::outer2inner_resampling [private]
5.280.3.8 MHAFilter::blockprocessing_polyphase_resampling_t
MHAPlugin_Resampling::resampling_t::inner2outer_resampling [private]
5.280.3.9 MHAParser::mhapluginloader_t& MHAPlugin_Resampling::resampling_t::plugloader
[private]
5.280.3.10 MHASignal::waveform_t MHAPlugin_Resampling::resampling_t::inner_signal
[private]
5.280.3.11 MHASignal::waveform_t MHAPlugin_Resampling::resampling_t::output_signal
[private]
The documentation for this class was generated from the following file:
• resampling.cpp

5.281

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.281

MHAPlugin_Split::domain_handler_t Class Reference

737

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.

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.
© 2005-2019 HörTech gGmbH, Oldenburg

738

5.281.1

CONTENTS

Detailed Description

Handles domain-specific partial input and output signal.

5.281.2
5.281.2.1

Constructor & Destructor Documentation
MHAPlugin_Split::domain_handler_t::domain_handler_t (
const domain_handler_t & ) [private]

Disallow copy constructor.
5.281.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.
5.281.2.3

virtual MHAPlugin_Split::domain_handler_t::∼domain_handler_t (
[virtual]

) [inline],

Deallocation of signal holders.

5.281.3

Member Function Documentation

5.281.3.1 domain_handler_t& MHAPlugin_Split::domain_handler_t::operator= (
const domain_handler_t & ) [private]
Disallow assignment operator.
5.281.3.2

void MHAPlugin_Split::domain_handler_t::set_input_domain (
const mhaconfig_t & settings_in ) [inline]

Set parameters of input signal.
Parameters
settings←_in

domain and dimensions of partial input signal

© 2005-2019 HörTech gGmbH, Oldenburg

5.281

5.281.3.3

MHAPlugin_Split::domain_handler_t Class Reference

739

void MHAPlugin_Split::domain_handler_t::set_output_domain (
const mhaconfig_t & settings_out ) [inline]

Set output signal parameters.
Parameters
settings_out

5.281.3.4

domain and dimensions of partial output signal

void MHAPlugin_Split::domain_handler_t::deallocate_domains ( ) [inline]

Deallocate domain indicators and signal holders.
5.281.3.5

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. 741).
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.281.3.6

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. 741).
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-2019 HörTech gGmbH, Oldenburg

740

CONTENTS

Returns
The number of channels that were copied from the input signal

5.281.3.7

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. 741) 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.281.3.8

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. 741) 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.

Returns
The number of channels that were copied to the output signal
5.281.3.9

void MHAPlugin_Split::domain_handler_t::process (
void ) [inline], [virtual]

Call the processing method of the processor with configured input/output signal domains.
© 2005-2019 HörTech gGmbH, Oldenburg

5.282

MHAPlugin_Split::dummy_threads_t Class Reference

741

The input signal has to be stored using put_signal (p. 739) before this method may be called.
Implements MHAPlugin_Split::uni_processor_t (p. 760).

5.281.4

Member Data Documentation

5.281.4.1 MHASignal::waveform_t∗ MHAPlugin_Split::domain_handler_t::wave_in
Partial wave input signal.
5.281.4.2 mha_wave_t∗∗ MHAPlugin_Split::domain_handler_t::wave_out
Partial wave output signal.
5.281.4.3 MHASignal::spectrum_t∗ MHAPlugin_Split::domain_handler_t::spec_in
Partial spec input signal.
5.281.4.4 mha_spec_t∗∗ MHAPlugin_Split::domain_handler_t::spec_out
Partial spec input signal.
5.281.4.5 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.282

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

© 2005-2019 HörTech gGmbH, Oldenburg

742

CONTENTS

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.

Additional Inherited Members
5.282.1

Detailed Description

Dummy specification of a thread platform: This class implements everything in a single thread.

5.282.2
5.282.2.1

Constructor & Destructor Documentation
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.282.3

5.282.3.1

Member Function Documentation

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. 758).
© 2005-2019 HörTech gGmbH, Oldenburg

5.283

MHAPlugin_Split::posix_threads_t Class Reference

5.282.3.2

743

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. 758).
The documentation for this class was generated from the following file:
• split.cpp

5.283

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-2019 HörTech gGmbH, Oldenburg

744

CONTENTS

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.283.1

Detailed Description

Posix threads specification of thread platform.

5.283.2
5.283.2.1

Constructor & Destructor Documentation
MHAPlugin_Split::posix_threads_t::posix_threads_t (
uni_processor_t ∗ proc,
const std::string & thread_scheduler,
int thread_priority ) [inline]

Constructor.

© 2005-2019 HörTech gGmbH, Oldenburg

5.283

MHAPlugin_Split::posix_threads_t Class Reference

745

Parameters
proc
thread_scheduler
thread_priority

5.283.2.2

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.

MHAPlugin_Split::posix_threads_t::∼posix_threads_t ( ) [inline]

Terminate thread.

5.283.3
5.283.3.1

Member Function Documentation
void MHAPlugin_Split::posix_threads_t::kick_thread ( ) [inline], [virtual]

Start signal processing in separate thread.
Implements MHAPlugin_Split::thread_platform_t (p. 758).
5.283.3.2

void MHAPlugin_Split::posix_threads_t::catch_thread ( ) [inline], [virtual]

Wait for signal processing to finish.
Implements MHAPlugin_Split::thread_platform_t (p. 758).
5.283.3.3

static void∗ MHAPlugin_Split::posix_threads_t::thread_start (
void ∗ thr ) [inline], [static]

Thread start function.
5.283.3.4

void MHAPlugin_Split::posix_threads_t::main ( ) [inline]

Thread main loop. Wait for process/termination trigger, then act.
5.283.3.5

static std::string MHAPlugin_Split::posix_threads_t::current_thread_scheduler (
[inline], [static]

5.283.3.6

static int MHAPlugin_Split::posix_threads_t::current_thread_priority (
[static]

5.283.4
5.283.4.1

) [inline],

Member Data Documentation
pthread_mutex_t MHAPlugin_Split::posix_threads_t::mutex [private]

The mutex.
© 2005-2019 HörTech gGmbH, Oldenburg

)

746

5.283.4.2

CONTENTS

pthread_cond_t MHAPlugin_Split::posix_threads_t::kick_condition [private]

The condition for signalling the kicking and termination.
5.283.4.3

pthread_cond_t MHAPlugin_Split::posix_threads_t::catch_condition [private]

The condition for signalling the processing is finished.
5.283.4.4

pthread_attr_t MHAPlugin_Split::posix_threads_t::attr [private]

Thread attributes.
5.283.4.5

struct sched_param MHAPlugin_Split::posix_threads_t::priority [private]

Thread scheduling priority.
5.283.4.6

int MHAPlugin_Split::posix_threads_t::scheduler [private]

5.283.4.7

pthread_t MHAPlugin_Split::posix_threads_t::thread [private]

The thread object.
5.283.4.8

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.283.4.9

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.
5.283.4.10

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.284

MHAPlugin_Split::split_t Class Reference

5.284

MHAPlugin_Split::split_t Class Reference

747

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.

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 ()
© 2005-2019 HörTech gGmbH, Oldenburg

748

CONTENTS

• 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.

Additional Inherited Members
5.284.1

Detailed Description

Implements split plugin.
An instance of class split_t (p. 747) implements the split plugin functionality: The audio channels are splitted and groups of audio channels are processed by different plugins in parallel.
© 2005-2019 HörTech gGmbH, Oldenburg

5.284

MHAPlugin_Split::split_t Class Reference

5.284.2

Constructor & Destructor Documentation

5.284.2.1

749

MHAPlugin_Split::split_t::split_t (
algo_comm_t iac,
const std::string & chain_name,
const std::string & algo_name )

Plugin constructor.
5.284.2.2

MHAPlugin_Split::split_t::∼split_t ( )

Plugin destructor. Unloads nested plugins.

5.284.3
5.284.3.1

Member Function Documentation
void MHAPlugin_Split::split_t::prepare_ (
mhaconfig_t & signal_parameters )

Check signal parameters, prepare chains, and allocate output signal holders.
5.284.3.2

void MHAPlugin_Split::split_t::release_ ( )

Delete output signal holder and release chains.
5.284.3.3

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.284.3.4

void MHAPlugin_Split::split_t::update ( ) [private]

Load plugins in response to a value change in the algos variable.
5.284.3.5

void MHAPlugin_Split::split_t::clear_chains ( ) [private]

Unload the plugins.
5.284.3.6 mha_wave_t∗ MHAPlugin_Split::split_t::copy_output_wave ( ) [private]
5.284.3.7 mha_spec_t∗ MHAPlugin_Split::split_t::copy_output_spec ( ) [private]
5.284.3.8

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.
© 2005-2019 HörTech gGmbH, Oldenburg

750

5.284.3.9

CONTENTS

template void MHAPlugin_Split::split_t::collect_result (
SigType ∗ s_out ) [private]

Combine the output signal from the plugins.
5.284.3.10 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.284.3.11 MHASignal::spectrum_t∗ MHAPlugin_Split::split_t::signal_out (
mha_spec_t ∗∗ ) [inline], [private]
Spectrum domain output signal structure. Parameter is ignored.

5.284.4

Member Data Documentation

5.284.4.1 MHAEvents::patchbay_t MHAPlugin_Split::split_t::patchbay [private]
Reload plugins when the algos variable changes.
5.284.4.2 MHAParser::vstring_t MHAPlugin_Split::split_t::algos [private]
Vector of plugins to load in parallel.
5.284.4.3 MHAParser::vint_t MHAPlugin_Split::split_t::channels [private]
Number of channels to route through each plugin.
5.284.4.4 MHAParser::kw_t MHAPlugin_Split::split_t::thread_platform [private]
Thread platform chooser.
5.284.4.5 MHAParser::kw_t MHAPlugin_Split::split_t::worker_thread_scheduler [private]
Scheduler used for worker threads.
5.284.4.6 MHAParser::int_t MHAPlugin_Split::split_t::worker_thread_priority [private]
Priority of worker threads.
© 2005-2019 HörTech gGmbH, Oldenburg

5.285

MHAPlugin_Split::splitted_part_t Class Reference

751

5.284.4.7 MHAParser::string_mon_t MHAPlugin_Split::split_t::framework_thread_scheduler
[private]
Scheduler of the signal processing thread.
5.284.4.8 MHAParser::int_mon_t MHAPlugin_Split::split_t::framework_thread_priority
[private]
Priority of signal processing thread.
5.284.4.9 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.284.4.10

std::vector MHAPlugin_Split::split_t::chains [private]

Interfaces to parallel plugins.
5.284.4.11 MHASignal::waveform_t∗ MHAPlugin_Split::split_t::wave_out [private]
Combined output waveforms structure.
5.284.4.12 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

5.285

MHAPlugin_Split::splitted_part_t Class Reference

The splitted_part_t (p. 751) 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

© 2005-2019 HörTech gGmbH, Oldenburg

752

CONTENTS

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. 755).

• 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. 736) instance.

• void release ()
Delegates the release method to the plugin and deletes the MHAPlugin_Split::domain_←handler_t ( p. 736) 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.

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.
© 2005-2019 HörTech gGmbH, Oldenburg

5.285

MHAPlugin_Split::splitted_part_t Class Reference

753

Additional Inherited Members
5.285.1

Detailed Description

The splitted_part_t (p. 751) 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.285.2
5.285.2.1

Constructor & Destructor Documentation
MHAPlugin_Split::splitted_part_t::splitted_part_t (
const splitted_part_t & ) [private]

Disallow copy constructor.
5.285.2.2

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.
Parameters
plugname
parent

5.285.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).

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. 753)
instance will take ownership of this instance and release it in the destructor.

© 2005-2019 HörTech gGmbH, Oldenburg

754

5.285.2.4

CONTENTS

MHAPlugin_Split::splitted_part_t::∼splitted_part_t ( ) throw )

Destructor. Deletes the plugin plug (p. 755).

5.285.3

Member Function Documentation

5.285.3.1 splitted_part_t& MHAPlugin_Split::splitted_part_t::operator= (
const splitted_part_t & ) [private]
Disallow assignment operator.
5.285.3.2

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. 736) 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.285.3.3

void MHAPlugin_Split::splitted_part_t::release (
void )

Delegates the release method to the plugin and deletes the MHAPlugin_Split::domain_←handler_t (p. 736) instance.
Release the loaded plugin.
Plugin release.
© 2005-2019 HörTech gGmbH, Oldenburg

5.285

5.285.3.4

MHAPlugin_Split::splitted_part_t Class Reference

755

std::string MHAPlugin_Split::splitted_part_t::parse (
const std::string & str ) [inline]

Delegates parser incovation to plugin.
5.285.3.5

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.285.3.6

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.285.4

Member Data Documentation

5.285.4.1 PluginLoader::fourway_processor_t∗ MHAPlugin_Split::splitted_part_t::plug
[private]
The plugin that performs the signal processing on the prepared channels.
© 2005-2019 HörTech gGmbH, Oldenburg

756

CONTENTS

5.285.4.2 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.285.4.3 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.286

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

MHAPlugin_Split::posix
_threads_t

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().
© 2005-2019 HörTech gGmbH, Oldenburg

5.286

MHAPlugin_Split::thread_platform_t Class Reference

757

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.286.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.286.2
5.286.2.1

Constructor & Destructor Documentation
MHAPlugin_Split::thread_platform_t::thread_platform_t (
const thread_platform_t & ) [private]

Disallow copy constructor.
5.286.2.2

MHAPlugin_Split::thread_platform_t::thread_platform_t (
uni_processor_t ∗ proc ) [inline]

Constructor.
Derived classes create the thread in the constructor.
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. 751) instance.

© 2005-2019 HörTech gGmbH, Oldenburg

758

5.286.2.3

CONTENTS

virtual MHAPlugin_Split::thread_platform_t::∼thread_platform_t (
[virtual]

) [inline],

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.286.3

Member Function Documentation

5.286.3.1 thread_platform_t& MHAPlugin_Split::thread_platform_t::operator= (
const thread_platform_t & ) [private]
Disallow assignment operator.
5.286.3.2

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. 742).
5.286.3.3

(p. 745), and MHAPlugin_Split←-

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. 743).

5.286.4

(p. 745), and MHAPlugin_Split←-

Member Data Documentation

5.286.4.1 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. 759) 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
© 2005-2019 HörTech gGmbH, Oldenburg

5.287

MHAPlugin_Split::uni_processor_t Class Reference

5.287

MHAPlugin_Split::uni_processor_t Class Reference

759

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

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.287.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.287.2

5.287.2.1

Constructor & Destructor Documentation

virtual MHAPlugin_Split::uni_processor_t::∼uni_processor_t ( ) [inline], [virtual]

Classes containing virtual methods need virtual destructors.
© 2005-2019 HörTech gGmbH, Oldenburg

760

5.287.3

CONTENTS

Member Function Documentation

5.287.3.1

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. 740).
The documentation for this class was generated from the following file:

• split.cpp

5.288

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.288

mhaserver_t Class Reference

761

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

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.288.1

Detailed Description

MHA Framework listening on TCP port for commands.

5.288.2
5.288.2.1

Constructor & Destructor Documentation
mhaserver_t::mhaserver_t (
const std::string & ao,
const std::string & af,
const std::string & lf )

© 2005-2019 HörTech gGmbH, Oldenburg

762

CONTENTS

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.288.2.2
5.288.3

5.288.3.1

mhaserver_t::∼mhaserver_t ( )
Member Function Documentation

std::string mhaserver_t::received_group (
const std::string & line ) [virtual]

A line of text was received from network client.
5.288.3.2

void mhaserver_t::acceptor_started (
int status ) [virtual]

Notification: "TCP port is open".
5.288.3.3

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.288.3.4

void mhaserver_t::logstring (
const std::string & s ) [inline]

Log a message to log file.
5.288.3.5

int mhaserver_t::run (
unsigned short port,
const std::string & _interface )

Accept network connections and act on commands.
Calls acceptor_started() (p. 762) 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-2019 HörTech gGmbH, Oldenburg

5.289

MHASignal::async_rmslevel_t Class Reference

5.288.4

Member Data Documentation

5.288.4.1 MHA_TCP::Server∗ mhaserver_t::tcpserver [private]
5.288.4.2

std::string mhaserver_t::ack_ok [private]

5.288.4.3

std::string mhaserver_t::ack_fail [private]

5.288.4.4

std::string mhaserver_t::logfile [private]

5.288.4.5

unsigned short mhaserver_t::announce_port [private]

5.288.4.6 MHAParser::int_mon_t mhaserver_t::pid_mon [private]
5.288.4.7 MHAParser::int_t mhaserver_t::port
The documentation for this class was generated from the following file:
• mhamain.cpp

5.289

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

© 2005-2019 HörTech gGmbH, Oldenburg

763

764

CONTENTS

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.289.1

Detailed Description

Class for asynchronous level metering.

5.289.2
5.289.2.1

Constructor & Destructor Documentation
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.289.3

Member Function Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

5.290

MHASignal::delay_spec_t Class Reference

5.289.3.1

765

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.289.3.2

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).

5.289.3.3

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.289.4

Member Data Documentation

5.289.4.1

unsigned int MHASignal::async_rmslevel_t::pos [private]

5.289.4.2

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.290

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 ∗)
© 2005-2019 HörTech gGmbH, Oldenburg

766

CONTENTS

Private Attributes
• unsigned int delay
• MHASignal::spectrum_t ∗∗ buffer
• unsigned int pos
5.290.1

Constructor & Destructor Documentation

5.290.1.1

MHASignal::delay_spec_t::delay_spec_t (
unsigned int delay,
unsigned int frames,
unsigned int channels )

5.290.1.2

MHASignal::delay_spec_t::∼delay_spec_t ( )

5.290.2

Member Function Documentation

5.290.2.1 mha_spec_t ∗ MHASignal::delay_spec_t::process (
mha_spec_t ∗ s )
5.290.3

Member Data Documentation

5.290.3.1

unsigned int MHASignal::delay_spec_t::delay [private]

5.290.3.2 MHASignal::spectrum_t∗∗ MHASignal::delay_spec_t::buffer [private]
5.290.3.3

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.291

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.291

MHASignal::delay_t Class Reference

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

5.291.1

Detailed Description

Class to realize a simple delay of waveform streams.

5.291.2
5.291.2.1

Constructor & Destructor Documentation
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.291.2.2
5.291.3

MHASignal::delay_t::∼delay_t ( )
Member Function Documentation

5.291.3.1 mha_wave_t ∗ MHASignal::delay_t::process (
mha_wave_t ∗ s )
Processing method.

© 2005-2019 HörTech gGmbH, Oldenburg

767

768

CONTENTS

Parameters
s

Input waveform fragment, with number of channels provided in constructor.

Returns
Output waveform fragment.

5.291.3.2
5.291.4

std::string MHASignal::delay_t::inspect ( ) const [inline]
Member Data Documentation

5.291.4.1

unsigned int MHASignal::delay_t::channels [private]

5.291.4.2

unsigned int∗ MHASignal::delay_t::delays [private]

5.291.4.3

unsigned int∗ MHASignal::delay_t::pos [private]

5.291.4.4 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.292

MHASignal::delay_wave_t Class Reference

Delayline containing wave fragments.

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.293

MHASignal::doublebuffer_t Class Reference

5.292.1

Detailed Description

769

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.292.2

Constructor & Destructor Documentation

5.292.2.1

MHASignal::delay_wave_t::delay_wave_t (
unsigned int delay,
unsigned int frames,
unsigned int channels )

5.292.2.2

MHASignal::delay_wave_t::∼delay_wave_t ( )

5.292.3

Member Function Documentation

5.292.3.1 mha_wave_t ∗ MHASignal::delay_wave_t::process (
mha_wave_t ∗ s )
5.292.4

Member Data Documentation

5.292.4.1

unsigned int MHASignal::delay_wave_t::delay [private]

5.292.4.2 MHASignal::waveform_t∗∗ MHASignal::delay_wave_t::buffer [private]
5.292.4.3

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.293

MHASignal::doublebuffer_t Class Reference

Double-buffering class.
Inheritance diagram for MHASignal::doublebuffer_t:

MHASignal::doublebuffer_t

db_t

© 2005-2019 HörTech gGmbH, Oldenburg

770

CONTENTS

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.293.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. 771)
is called whenever enough data is available.

5.293.2
5.293.2.1

Constructor & Destructor Documentation
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-2019 HörTech gGmbH, Oldenburg

5.293

MHASignal::doublebuffer_t Class Reference

771

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.293.2.2
5.293.3

MHASignal::doublebuffer_t::∼doublebuffer_t ( ) [virtual]
Member Function Documentation

5.293.3.1 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.293.3.2

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.
Parameters
s

Pointer to input waveform fragment.

Returns
Pointer to output waveform fragment.

Implemented in db_t (p. 252).
© 2005-2019 HörTech gGmbH, Oldenburg

772

5.293.3.3

5.293.4

CONTENTS

unsigned int MHASignal::doublebuffer_t::min (
unsigned int a,
unsigned int b ) [inline], [private]
Member Data Documentation

5.293.4.1 waveform_t MHASignal::doublebuffer_t::outer_out [private]
5.293.4.2 mha_wave_t MHASignal::doublebuffer_t::this_outer_out [private]
5.293.4.3 waveform_t MHASignal::doublebuffer_t::inner_in [private]
5.293.4.4 waveform_t MHASignal::doublebuffer_t::inner_out [private]
5.293.4.5

unsigned int MHASignal::doublebuffer_t::k_inner [private]

5.293.4.6

unsigned int MHASignal::doublebuffer_t::k_outer [private]

5.293.4.7

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.294

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 forward (mha_spec_t ∗sIn, mha_spec_t ∗sOut)
void backward (mha_spec_t ∗sIn, mha_spec_t ∗sOut)
void wave2spec_scale (const mha_wave_t ∗, mha_spec_t ∗, bool swap)
void spec2wave_scale (const mha_spec_t ∗, mha_wave_t ∗)
void forward_scale (mha_spec_t ∗sIn, mha_spec_t ∗sOut)
void backward_scale (mha_spec_t ∗sIn, mha_spec_t ∗sOut)
© 2005-2019 HörTech gGmbH, Oldenburg

5.294

MHASignal::fft_t Class Reference

773

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.

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.294.1

Constructor & Destructor Documentation

5.294.1.1

MHASignal::fft_t::fft_t (
const unsigned int & n )

5.294.1.2

MHASignal::fft_t::∼fft_t ( )

5.294.2
5.294.2.1

Member Function Documentation
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.
5.294.2.2

void MHASignal::fft_t::spec2wave (
const mha_spec_t ∗ spec,
mha_wave_t ∗ wave )

5.294.2.3

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.

© 2005-2019 HörTech gGmbH, Oldenburg

774

5.294.2.4

void MHASignal::fft_t::forward (
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

5.294.2.5

void MHASignal::fft_t::backward (
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

5.294.2.6

void MHASignal::fft_t::wave2spec_scale (
const mha_wave_t ∗ wave,
mha_spec_t ∗ spec,
bool swap )

5.294.2.7

void MHASignal::fft_t::spec2wave_scale (
const mha_spec_t ∗ spec,
mha_wave_t ∗ wave )

5.294.2.8

void MHASignal::fft_t::forward_scale (
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

5.294.2.9

void MHASignal::fft_t::backward_scale (
mha_spec_t ∗ sIn,
mha_spec_t ∗ sOut )

5.294.2.10

CONTENTS

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.294.2.11

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.
© 2005-2019 HörTech gGmbH, Oldenburg

5.295

MHASignal::hilbert_fftw_t Class Reference

5.294.3

Member Data Documentation

5.294.3.1

unsigned int MHASignal::fft_t::nfft [private]

5.294.3.2

unsigned int MHASignal::fft_t::n_re [private]

5.294.3.3

unsigned int MHASignal::fft_t::n_im [private]

775

5.294.3.4 mha_real_t MHASignal::fft_t::scale [private]
5.294.3.5 mha_real_t∗ MHASignal::fft_t::buf_in [private]
5.294.3.6 mha_real_t∗ MHASignal::fft_t::buf_out [private]
5.294.3.7

rfftw_plan MHASignal::fft_t::fftw_plan_wave2spec [private]

5.294.3.8

rfftw_plan MHASignal::fft_t::fftw_plan_spec2wave [private]

5.294.3.9

fftw_plan MHASignal::fft_t::fftw_plan_fft [private]

5.294.3.10

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.295

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

© 2005-2019 HörTech gGmbH, Oldenburg

776

5.295.1

CONTENTS

Constructor & Destructor Documentation

5.295.1.1

5.295.2

MHASignal::hilbert_fftw_t::hilbert_fftw_t (
unsigned int len )
Member Function Documentation

5.295.2.1

5.295.3

void MHASignal::hilbert_fftw_t::hilbert (
const mha_wave_t ∗ s_in,
mha_wave_t ∗ s_out )
Member Data Documentation

5.295.3.1

unsigned int MHASignal::hilbert_fftw_t::n [private]

5.295.3.2

rfftw_plan MHASignal::hilbert_fftw_t::p1 [private]

5.295.3.3

fftw_plan MHASignal::hilbert_fftw_t::p2 [private]

5.295.3.4

fftw_real∗ MHASignal::hilbert_fftw_t::buf_r_in [private]

5.295.3.5

fftw_real∗ MHASignal::hilbert_fftw_t::buf_r_out [private]

5.295.3.6

fftw_complex∗ MHASignal::hilbert_fftw_t::buf_c_in [private]

5.295.3.7

fftw_complex∗ MHASignal::hilbert_fftw_t::buf_c_out [private]

5.295.3.8 mha_real_t MHASignal::hilbert_fftw_t::sc [private]
The documentation for this class was generated from the following file:
• mha_signal.cpp

5.296

MHASignal::hilbert_t Class Reference

Hilbert transformation of a waveform segment.
Inheritance diagram for MHASignal::hilbert_t:

MHASignal::hilbert_t

MHASignal::minphase_t

© 2005-2019 HörTech gGmbH, Oldenburg

5.296

MHASignal::hilbert_t Class Reference

777

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.

Private Attributes
• void ∗ h

5.296.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.296.2

Constructor & Destructor Documentation

5.296.2.1

MHASignal::hilbert_t::hilbert_t (
unsigned int len )

Parameters
len

Length of waveform segment

5.296.2.2
5.296.3
5.296.3.1

MHASignal::hilbert_t::∼hilbert_t ( )
Member Function Documentation
void MHASignal::hilbert_t::operator() (
const mha_wave_t ∗ s_in,
mha_wave_t ∗ s_out )

Apply Hilbert transformation on a waveform segment.
5.296.4
5.296.4.1

Member Data Documentation
void∗ MHASignal::hilbert_t::h [private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

778

5.297

CONTENTS

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

addsndfile::sndfile_t

Public Types
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. 778) 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 set_level_lin (mha_real_t l)
void set_level_db (mha_real_t l)
void rewind ()
void locate_end ()
bool is_playback_active () const
© 2005-2019 HörTech gGmbH, Oldenburg

5.297

MHASignal::loop_wavefragment_t Class Reference

779

Private Attributes
•
•
•
•

std::vector< int > playback_channels
bool b_loop
unsigned int pos
MHASignal::waveform_t intern_level

Additional Inherited Members
5.297.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.297.2
5.297.2.1

Member Enumeration Documentation
enum MHASignal::loop_wavefragment_t::level_mode_t

Switch for playback level mode.
Enumerator
relative The nominal level is applied as a gain to the source signal.
peak The nominal level is the peak level of source signal in Pascal.
rms The nominal level is the RMS level of the source signal in Pascal.
rms_limit40
5.297.2.2

enum MHASignal::loop_wavefragment_t::playback_mode_t

Switch for playback mode.
Enumerator
add Add source signal to output stream.
replace 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.297.3
5.297.3.1

Constructor & Destructor Documentation
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. 778) based on an existing waveform block.

© 2005-2019 HörTech gGmbH, Oldenburg

780

CONTENTS

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. 779) for details)

channels

Mapping of input to output channels.

startpos

Starting position

5.297.4

Member Function Documentation

5.297.4.1

std::vector< int > MHASignal::loop_wavefragment_t::get_mapping (
unsigned int channels )

5.297.4.2

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.297.4.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-2019 HörTech gGmbH, Oldenburg

5.297

MHASignal::loop_wavefragment_t Class Reference

5.297.4.4

781

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.297.4.5

void MHASignal::loop_wavefragment_t::set_level_lin (
mha_real_t l )

5.297.4.6

void MHASignal::loop_wavefragment_t::set_level_db (
mha_real_t l )

5.297.4.7

void MHASignal::loop_wavefragment_t::rewind ( ) [inline]

5.297.4.8

void MHASignal::loop_wavefragment_t::locate_end ( ) [inline]

5.297.4.9

bool MHASignal::loop_wavefragment_t::is_playback_active ( ) const [inline]

5.297.5

Member Data Documentation

5.297.5.1

std::vector MHASignal::loop_wavefragment_t::playback_channels [private]

5.297.5.2

bool MHASignal::loop_wavefragment_t::b_loop [private]

5.297.5.3

unsigned int MHASignal::loop_wavefragment_t::pos [private]

5.297.5.4 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
© 2005-2019 HörTech gGmbH, Oldenburg

782

5.298

CONTENTS

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

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.
© 2005-2019 HörTech gGmbH, Oldenburg

5.298

MHASignal::matrix_t Class Reference

783

• 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.

• 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 get_nreals () const
• unsigned int get_index (unsigned int row, unsigned int col) const
• unsigned int get_index (const MHASignal::uint_vector_t &index) const
• 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 mha_real_t ∗ get_rdata () const
Return pointer of real data.

• const mha_complex_t ∗ get_cdata () const
Return pointer of complex data.
© 2005-2019 HörTech gGmbH, Oldenburg

784

CONTENTS

Private Attributes
• uint32_t complex_ofs
• uint32_t nelements
• union {
mha_real_t ∗ rdata
mha_complex_t ∗ cdata
};

Additional Inherited Members
5.298.1

Detailed Description

n-dimensional matrix with real or complex floating point values.
Warning
The member functions imag() (p. 787) and operator() should only be called if the matrix
is defined to hold complex values.

5.298.2
5.298.2.1

Constructor & Destructor Documentation
MHASignal::matrix_t::matrix_t (
unsigned int nrows,
unsigned int ncols,
bool b_is_complex = true )

Create a two-dimensional matrix.
Parameters
nrows
ncols
b_is_complex

5.298.2.2

Number of rows
Number of columns
Add space for complex values

MHASignal::matrix_t::matrix_t (
const mha_spec_t & spec )

Create a two-dimensional matrix from a spectrum, copy values.
Parameters
spec

Source spectrum structure
© 2005-2019 HörTech gGmbH, Oldenburg

5.298

5.298.2.3

MHASignal::matrix_t Class Reference

785

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

Size vector
Add space for complex values

5.298.2.4

MHASignal::matrix_t::matrix_t (
const MHASignal::matrix_t & src )

5.298.2.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.298.2.6
5.298.3

MHASignal::matrix_t::∼matrix_t ( )
Member Function Documentation

5.298.3.1 matrix_t & MHASignal::matrix_t::operator= (
const MHASignal::matrix_t & src )
5.298.3.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. 246))

Note
The type and dimension of the AC variable must match the type and dimension of the
matrix.

© 2005-2019 HörTech gGmbH, Oldenburg

786

CONTENTS

5.298.3.3 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. 246)), valid for the life time of the matrix.

5.298.3.4

unsigned int MHASignal::matrix_t::dimension ( ) const [inline]

Return the dimension of the matrix.
Returns
Dimension of the matrix

5.298.3.5

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
5.298.3.6

unsigned int MHASignal::matrix_t::get_nelements ( ) const

Return total number of elements.
5.298.3.7

bool MHASignal::matrix_t::is_same_size (
const MHASignal::matrix_t & src )

Test if matrix has same size as other.
5.298.3.8

bool MHASignal::matrix_t::iscomplex ( ) const [inline]

Return information about complexity.
5.298.3.9 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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.298

MHASignal::matrix_t Class Reference

787

Parameters
index

Index vector

5.298.3.10 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.
Parameters
index

Index vector

5.298.3.11 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

Index vector

5.298.3.12

const 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

Index vector

5.298.3.13

const 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-2019 HörTech gGmbH, Oldenburg

788

5.298.3.14

CONTENTS

const 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

Index vector

5.298.3.15 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.298.3.16 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

Row number of element
Column number of element

5.298.3.17 mha_complex_t& MHASignal::matrix_t::operator() (
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

© 2005-2019 HörTech gGmbH, Oldenburg

5.298

MHASignal::matrix_t Class Reference

5.298.3.18

789

const 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.298.3.19

const 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.298.3.20

const mha_complex_t& MHASignal::matrix_t::operator() (
unsigned int row,
unsigned int col ) const [inline]

Access complex value of an element in a two-dimensional matrix.
Parameters
row
col

Row number of element
Column number of element

5.298.3.21

unsigned int MHASignal::matrix_t::get_nreals ( ) const [inline]

5.298.3.22

unsigned int MHASignal::matrix_t::get_index (
unsigned int row,
unsigned int col ) const

5.298.3.23

unsigned int MHASignal::matrix_t::get_index (
const MHASignal::uint_vector_t & index ) const

5.298.3.24

unsigned int MHASignal::matrix_t::numbytes ( ) const

Return number of bytes needed to store into memory.
© 2005-2019 HörTech gGmbH, Oldenburg

790

5.298.3.25

CONTENTS

unsigned int MHASignal::matrix_t::write (
uint8_t ∗ buf,
unsigned int len ) const

Copy to memory area.
5.298.3.26

const mha_real_t∗ MHASignal::matrix_t::get_rdata ( ) const [inline]

Return pointer of real data.
5.298.3.27

const mha_complex_t∗ MHASignal::matrix_t::get_cdata ( ) const [inline]

Return pointer of complex data.

5.298.4

Member Data Documentation

5.298.4.1

uint32_t MHASignal::matrix_t::complex_ofs [private]

5.298.4.2

uint32_t MHASignal::matrix_t::nelements [private]

5.298.4.3 mha_real_t∗ MHASignal::matrix_t::rdata
5.298.4.4 mha_complex_t∗ MHASignal::matrix_t::cdata
5.298.4.5

union { ... }

[private]

The documentation for this class was generated from the following files:
• mha_signal.hh
• mha_signal.cpp

5.299

MHASignal::minphase_t Class Reference

Minimal phase function.
Inheritance diagram for MHASignal::minphase_t:

MHASignal::hilbert_t

MHASignal::minphase_t

© 2005-2019 HörTech gGmbH, Oldenburg

5.299

MHASignal::minphase_t Class Reference

791

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.299.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{· · ·}.

5.299.2
5.299.2.1

Constructor & Destructor Documentation
MHASignal::minphase_t::minphase_t (
unsigned int fftlen,
unsigned int ch )

Constructor.
Parameters
fftlen

FFT length

ch

Number of channels

5.299.3
5.299.3.1

Member Function Documentation
void MHASignal::minphase_t::operator() (
mha_spec_t ∗ s )

Transform input spectrum to a minimal-phase spectrum, discarding the original phase.

© 2005-2019 HörTech gGmbH, Oldenburg

792

CONTENTS

Parameters
Spectrum to operate on.

s

5.299.4

Member Data Documentation

5.299.4.1 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

5.300

MHASignal::quantizer_t Class Reference

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.300.1

Detailed Description

Simple simulation of fixpoint quantization.

5.300.2
5.300.2.1

Constructor & Destructor Documentation
MHASignal::quantizer_t::quantizer_t (
unsigned int num_bits )

Constructor.

© 2005-2019 HörTech gGmbH, Oldenburg

5.301

MHASignal::ringbuffer_t Class Reference

793

Parameters
num_bits

5.300.3

Number of bits to simulate, or zero for limiting to [-1,1] only.

Member Function Documentation

5.300.3.1

void MHASignal::quantizer_t::operator() (
mha_wave_t & s )

Quantization of a waveform fragment.
Parameters
s

Waveform fragment to be quantized.

5.300.4

Member Data Documentation

5.300.4.1

bool MHASignal::quantizer_t::limit [private]

5.300.4.2 mha_real_t MHASignal::quantizer_t::upscale [private]

5.300.4.3 mha_real_t MHASignal::quantizer_t::downscale [private]

5.300.4.4 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

5.301

MHASignal::ringbuffer_t Class Reference

A ringbuffer class for time domain audio signal, which makes no assumptions with respect to
fragment size.
© 2005-2019 HörTech gGmbH, Oldenburg

794

CONTENTS

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.

Additional Inherited Members
5.301.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. 796) method. Individual audio samples can be accessed and altered using the value (p. 795) method. Blocks of
audio data can be deleted from the ringbuffer using the discard (p. 796) method.
© 2005-2019 HörTech gGmbH, Oldenburg

5.301

MHASignal::ringbuffer_t Class Reference

5.301.2

Constructor & Destructor Documentation

5.301.2.1

795

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. 445)

5.301.3

if prefilled_frames > frames

Member Function Documentation

5.301.3.1

unsigned MHASignal::ringbuffer_t::contained_frames ( ) const [inline]

number of currently contained frames
5.301.3.2 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. 796) method is called.
Parameters
frame
channel

frame index, 0 corresponds to oldest frame stored.
audio channel

© 2005-2019 HörTech gGmbH, Oldenburg

796

CONTENTS

Returns
reference to contained sample value
Exceptions
MHA_Error ( p. 445)

5.301.3.3

if channel or frame out of bounds.

void MHASignal::ringbuffer_t::discard (
unsigned frames ) [inline]

Discards the oldest frames.
Makes room for new write (p. 796), alters base frame index for value (p. 795)
Parameters
how many frames to discard.

frames

Exceptions
MHA_Error ( p. 445)

5.301.3.4

if frames > contained_frames (p. 795)

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. 445)

5.301.4
5.301.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
unsigned MHASignal::ringbuffer_t::next_read_frame_index [private]

Index of oldest frame in underlying storage for the ringbuffer.
© 2005-2019 HörTech gGmbH, Oldenburg

5.302

MHASignal::schroeder_t Class Reference

797

This value is added to the frame parameter of the value (p. 795) method, and this value is
altered when discard (p. 796) is called.

5.301.4.2

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.302

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
• typedef float(∗ groupdelay_t) (float f, float fmin, float fmax)
Function type for group delay definition.
© 2005-2019 HörTech gGmbH, Oldenburg

798

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.302.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.302.2
5.302.2.1

Member Typedef Documentation
typedef float(∗ MHASignal::schroeder_t::groupdelay_t) (float f, float fmin, float fmax)

Function type for group delay definition.
Parameters
f

Frequency relative to Nyquist frequency.

fmin

Minimum frequency relative to Nyquist frequency.

fmax

Maximum frequency relative to Nyquist frequency.

© 2005-2019 HörTech gGmbH, Oldenburg

5.302

MHASignal::schroeder_t Class Reference

5.302.3

Member Enumeration Documentation

5.302.3.1

799

enum 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.302.4
5.302.4.1

Constructor & Destructor Documentation
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)

5.302.4.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πτ
0
© 2005-2019 HörTech gGmbH, Oldenburg

g(f ) df,

S(f ) = eiΦ(f )

800

CONTENTS

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.302.5

Member Function Documentation

5.302.5.1

static float MHASignal::schroeder_t::identity (
float x,
float ,
float ) [inline], [static]

5.302.5.2

static float MHASignal::schroeder_t::log_up (
float x,
float fmin,
float fmax ) [inline], [static]

5.302.5.3

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.303

MHASignal::spectrum_t Class Reference

a signal processing class for spectral data (based on mha_spec_t (p. 465))
© 2005-2019 HörTech gGmbH, Oldenburg

5.303

MHASignal::spectrum_t Class Reference

801

Inheritance diagram for MHASignal::spectrum_t:

mha_spec_t

MHASignal::spectrum_t

fshift_hilbert::hilbert
_shifter_t

MHA_AC::spectrum_t

MHAMultiSrc::spectrum_t

wave2spec_t

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
© 2005-2019 HörTech gGmbH, Oldenburg

802

CONTENTS

• 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.303.1

Detailed Description

a signal processing class for spectral data (based on mha_spec_t (p. 465))

5.303.2
5.303.2.1

Constructor & Destructor Documentation
spectrum_t::spectrum_t (
const unsigned int & frames,
const unsigned int & channels )

constructor of spectrum class
Allocates buffers and initializes memory to zeros.
Parameters
frames
channels

5.303.2.2

number of frames (fft bins) in one channel. Number of Frames is usually fftlen /
2+1
number of channels

spectrum_t::spectrum_t (
const mha_spec_t & src ) [explicit]

Copy constructor.
5.303.2.3

spectrum_t::spectrum_t (
const MHASignal::spectrum_t & src )

Copy constructor.
5.303.2.4

spectrum_t::spectrum_t (
const std::vector< mha_complex_t > & src )

5.303.2.5

spectrum_t::∼spectrum_t (
void ) [virtual]

Reimplemented in MHA_AC::spectrum_t (p. 423).
© 2005-2019 HörTech gGmbH, Oldenburg

5.303

MHASignal::spectrum_t Class Reference

5.303.3

Member Function Documentation

5.303.3.1 mha_complex_t& MHASignal::spectrum_t::operator() (
unsigned int f,
unsigned int ch ) [inline]
Access to element.
Parameters
f
ch

Bin number
Channel number

Returns
Reference to element

5.303.3.2 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.303.3.3 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-2019 HörTech gGmbH, Oldenburg

803

804

5.303.3.4

CONTENTS

void spectrum_t::copy (
const mha_spec_t & src )

copy all elements from a spectrum
Parameters
src

input spectrum

5.303.3.5

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.303.3.6

void spectrum_t::export_to (
mha_spec_t & dest )

copy elements to spectrum structure
Parameters
destination spectrum structure

dest

5.303.3.7

void spectrum_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
© 2005-2019 HörTech gGmbH, Oldenburg

5.304

MHASignal::stat_t Class Reference

5.303.3.8

805

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

5.304

MHASignal::stat_t Class Reference

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
© 2005-2019 HörTech gGmbH, Oldenburg

806

5.304.1

Constructor & Destructor Documentation

5.304.1.1

5.304.2

MHASignal::stat_t::stat_t (
const unsigned int & frames,
const unsigned int & channels )
Member Function Documentation

5.304.2.1

void MHASignal::stat_t::mean (
mha_wave_t & m )

5.304.2.2

void MHASignal::stat_t::mean_std (
mha_wave_t & m,
mha_wave_t & s )

5.304.2.3

void MHASignal::stat_t::push (
const mha_wave_t & x )

5.304.2.4

void MHASignal::stat_t::push (
const mha_real_t & x,
const unsigned int & k,
const unsigned int & ch )

5.304.3

CONTENTS

Member Data Documentation

5.304.3.1 MHASignal::waveform_t MHASignal::stat_t::n [private]
5.304.3.2 MHASignal::waveform_t MHASignal::stat_t::sum [private]
5.304.3.3 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.305

MHASignal::subsample_delay_t Class Reference

implements subsample delay in spectral domain.
© 2005-2019 HörTech gGmbH, Oldenburg

5.305

MHASignal::subsample_delay_t Class Reference

807

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.305.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.305.2

Constructor & Destructor Documentation

5.305.2.1

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.
Parameters
subsample_delay

The subsample delay to apply. -0.5 <= subsample_delay <= 0.5

fftlen

FFT length

Exceptions
MHA_Error ( p. 445)

if the parameters are out of range

© 2005-2019 HörTech gGmbH, Oldenburg

808

5.305.3

CONTENTS

Member Function Documentation

5.305.3.1

void MHASignal::subsample_delay_t::process (
mha_spec_t ∗ s )

Apply the phase_gains to s to achieve the subsample delay.
5.305.3.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. 445)

5.305.4

if idx >= s->num_channels

Member Data Documentation

5.305.4.1 spectrum_t MHASignal::subsample_delay_t::phase_gains

The complex factors to apply to achieve the necessary phase shift.

5.305.4.2

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.306

MHASignal::uint_vector_t Class Reference

5.306

MHASignal::uint_vector_t Class Reference

809

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

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. 809).

• 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.
© 2005-2019 HörTech gGmbH, Oldenburg

810

CONTENTS

Protected Attributes
• uint32_t length
• uint32_t ∗ data

5.306.1

Detailed Description

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

5.306.2

Constructor & Destructor Documentation

5.306.2.1

MHASignal::uint_vector_t::uint_vector_t (
unsigned int len )

Constructor, initializes all elements to zero.
Parameters
Length of vector.

len

5.306.2.2

MHASignal::uint_vector_t::uint_vector_t (
const uint_vector_t & src )

5.306.2.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.306.2.4
5.306.3
5.306.3.1

MHASignal::uint_vector_t::∼uint_vector_t ( )
Member Function Documentation
bool MHASignal::uint_vector_t::operator== (
const uint_vector_t & src ) const

Check for equality.
© 2005-2019 HörTech gGmbH, Oldenburg

5.306

MHASignal::uint_vector_t Class Reference

811

5.306.3.2 uint_vector_t & MHASignal::uint_vector_t::operator= (
const uint_vector_t & src )
Assign from other uint_vector_t (p. 809).
Warning
This assignment will fail if the lengths mismatch.

5.306.3.3

unsigned int MHASignal::uint_vector_t::get_length ( ) const [inline]

Return the length of the vector.
5.306.3.4

const uint32_t& MHASignal::uint_vector_t::operator[ ] (
unsigned int k ) const [inline]

Read-only access to elements.
5.306.3.5

uint32_t& MHASignal::uint_vector_t::operator[ ] (
unsigned int k ) [inline]

Access to elements.
5.306.3.6

unsigned int MHASignal::uint_vector_t::numbytes ( ) const

Return number of bytes needed to store into memory.
5.306.3.7

unsigned int MHASignal::uint_vector_t::write (
uint8_t ∗ buf,
unsigned int len ) const

Copy to memory area.
5.306.3.8

const uint32_t∗ MHASignal::uint_vector_t::getdata ( ) const [inline]

Return pointer to the data field.

5.306.4

Member Data Documentation

5.306.4.1

uint32_t MHASignal::uint_vector_t::length [protected]

5.306.4.2

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
© 2005-2019 HörTech gGmbH, Oldenburg

812

5.307

CONTENTS

MHASignal::waveform_t Class Reference

signal processing class for waveform data (based on mha_wave_t (p. 496))
Inheritance diagram for MHASignal::waveform_t:

addsndfile::level_adapt_t

MHA_AC::waveform_t

mon_t

MHAMultiSrc::waveform_t

MHAFilter::o1flt_maxtrack_t

fader_wave::level_adapt_t
MHAFilter::o1flt_lowpass_t

MHAFilter::o1flt_mintrack_t

MHAOvlFilter::overlap
_save_filterbank_t

MHAOvlFilter::overlap
_save_filterbank_analytic_t

gain::scaler_t

MHAFilter::o1_ar_filter_t

MHAOvlFilter::fftfb_t

mha_wave_t

fftfilterbank::fftfb
_plug_t

multibandcompressor
::fftfb_plug_t

MHASndFile::sf_wave_t

coherence::cohflt_t

MHASignal::async_rmslevel_t

fftfbpow::fftfbpow_t

addsndfile::waveform
_proxy_t

addsndfile::resampled
_soundfile_t

MHASignal::waveform_t

MHASignal::ringbuffer_t

MHASignal::schroeder_t

MHASignal::loop_wavefragment_t

addsndfile::sndfile_t

MHAWindow::hamming_t

MHAWindow::base_t

MHAWindow::user_t

MHAWindow::hanning_t

speechnoise_t

MHAWindow::fun_t

MHAWindow::rect_t

MHAWindow::bartlett_t

MHAWindow::blackman_t

Public Member Functions
• waveform_t (const unsigned int &frames, const unsigned int &channels)
constructor of waveform_t ( p. 812)

• 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. 496) 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
© 2005-2019 HörTech gGmbH, Oldenburg

5.307

MHASignal::waveform_t Class Reference

813

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

• 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. 496) 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
© 2005-2019 HörTech gGmbH, Oldenburg

814

CONTENTS

Additional Inherited Members
5.307.1

Detailed Description

signal processing class for waveform data (based on mha_wave_t (p. 496))

5.307.2
5.307.2.1

Constructor & Destructor Documentation
waveform_t::waveform_t (
const unsigned int & frames,
const unsigned int & channels )

constructor of waveform_t (p. 812)
Allocates buffer memory and initializes values to zero.
Parameters
frames
channels

5.307.2.2

number of frames in each channel
number of channels

waveform_t::waveform_t (
const mhaconfig_t & cf ) [explicit]

Constructor to create a waveform from plugin configuration.
Parameters
cf

Plugin configuration

5.307.2.3

waveform_t::waveform_t (
const mha_wave_t & src ) [explicit]

Copy contructor for mha_wave_t (p. 496) source.
5.307.2.4

waveform_t::waveform_t (
const MHASignal::waveform_t & src )

Copy contructor.
5.307.2.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-2019 HörTech gGmbH, Oldenburg

5.307

MHASignal::waveform_t Class Reference

5.307.2.6

waveform_t::∼waveform_t (
void ) [virtual]

Reimplemented in MHA_AC::waveform_t (p. 427).

5.307.3

Member Function Documentation

5.307.3.1

void MHASignal::waveform_t::operator= (
const mha_real_t & v ) [inline]

5.307.3.2 mha_real_t& MHASignal::waveform_t::operator[ ] (
unsigned int k ) [inline]
5.307.3.3

const mha_real_t& MHASignal::waveform_t::operator[ ] (
unsigned int k ) const [inline]

5.307.3.4 mha_real_t& MHASignal::waveform_t::value (
unsigned int t,
unsigned int ch ) [inline]
Element accessor.
Parameters
t
ch

Frame number
Channel number

Returns
Reference to element

5.307.3.5 mha_real_t& MHASignal::waveform_t::operator() (
unsigned int t,
unsigned int ch ) [inline]
Element accessor.
Parameters
t
ch

Frame number
Channel number

© 2005-2019 HörTech gGmbH, Oldenburg

815

816

CONTENTS

Returns
Reference to element

5.307.3.6

const 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

5.307.3.7

const 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.307.3.8 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)

© 2005-2019 HörTech gGmbH, Oldenburg

5.307

MHASignal::waveform_t Class Reference

Returns
sum

5.307.3.9 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
Parameters
a

starting frame

b
ch

end frame (exluded)
channel number

Returns
sum

5.307.3.10 mha_real_t waveform_t::sum ( )
sum of all elements
Returns
sum of all elements

5.307.3.11 mha_real_t waveform_t::sumsqr ( )
sum of square of all elements
Returns
sum of square of all elements

5.307.3.12 mha_real_t waveform_t::sum_channel (
const unsigned int & ch )
return sum of all elements in one channel

© 2005-2019 HörTech gGmbH, Oldenburg

817

818

CONTENTS

Parameters
ch

channel number

Returns
sum

5.307.3.13

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.307.3.14

void waveform_t::assign (
const mha_real_t & val )

set all elements to value
Parameters
val

new value

5.307.3.15

void waveform_t::assign_frame (
const unsigned int & k,
const mha_real_t & val )

assign value "val" to frame k in all channels
Parameters
k
val

frame number
new value

© 2005-2019 HörTech gGmbH, Oldenburg

5.307

MHASignal::waveform_t Class Reference

5.307.3.16

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.307.3.17

void waveform_t::copy (
const std::vector< mha_real_t > & v )

5.307.3.18

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.307.3.19

void waveform_t::copy (
const mha_wave_t ∗ src )

5.307.3.20

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

© 2005-2019 HörTech gGmbH, Oldenburg

819

820

5.307.3.21

CONTENTS

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.307.3.22

void waveform_t::export_to (
mha_wave_t & dest )

copy data into allocated mha_wave_t (p. 496) structure
Parameters
dest

destination structure

5.307.3.23

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.307.3.24

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)
© 2005-2019 HörTech gGmbH, Oldenburg

5.307

MHASignal::waveform_t Class Reference

5.307.3.25

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)

5.307.3.26

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.307.3.27

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.307.3.28

void waveform_t::scale_channel (
const unsigned int & ch,
const mha_real_t & src )

scale one channel of target with a scalar

© 2005-2019 HörTech gGmbH, Oldenburg

821

822

CONTENTS

Parameters
ch
src

channel number
factor

5.307.3.29

void waveform_t::scale_frame (
const unsigned int & frame,
const mha_real_t & val )

5.307.3.30

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.308

MHASndFile::sf_t Class Reference

Inheritance diagram for MHASndFile::sf_t:

MHASndFile::sf_t

MHASndFile::sf_wave_t

addsndfile::resampled
_soundfile_t

Public Member Functions
• sf_t (const std::string &fname)
• ∼sf_t ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.309

MHASndFile::sf_wave_t Class Reference

823

Public Attributes
• SNDFILE ∗ sf

5.308.1

Constructor & Destructor Documentation

5.308.1.1

MHASndFile::sf_t::sf_t (
const std::string & fname )

5.308.1.2

MHASndFile::sf_t::∼sf_t ( )

5.308.2

Member Data Documentation

5.308.2.1

SNDFILE∗ MHASndFile::sf_t::sf

The documentation for this class was generated from the following files:
• mhasndfile.h
• mhasndfile.cpp

5.309

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

addsndfile::resampled
_soundfile_t

© 2005-2019 HörTech gGmbH, Oldenburg

824

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.309.1

Constructor & Destructor Documentation

5.309.1.1

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.310

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-2019 HörTech gGmbH, Oldenburg

5.310

MHATableLookup::linear_table_t Class Reference

825

Public Member Functions
• linear_table_t (void)
contructor creates an empty linear_table_t ( p. 824) 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.310.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-2019 HörTech gGmbH, Oldenburg

826

5.310.2
5.310.2.1

CONTENTS

Constructor & Destructor Documentation
linear_table_t::linear_table_t (
void )

contructor creates an empty linear_table_t (p. 824) 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.310.2.2

linear_table_t::∼linear_table_t (
void )

destructor

5.310.3

Member Function Documentation

5.310.3.1 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. 829).
5.310.3.2 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. 829).
© 2005-2019 HörTech gGmbH, Oldenburg

5.310

MHATableLookup::linear_table_t Class Reference

5.310.3.3

827

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.310.3.4

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.310.3.5

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;
5.310.3.6

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.
© 2005-2019 HörTech gGmbH, Oldenburg

828

5.310.3.7

CONTENTS

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. 829).

5.310.4

Member Data Documentation

5.310.4.1 mha_real_t∗ MHATableLookup::linear_table_t::vy [protected]
5.310.4.2

unsigned int MHATableLookup::linear_table_t::len [protected]

5.310.4.3

vector MHATableLookup::linear_table_t::vec_y [private]

5.310.4.4 mha_real_t MHATableLookup::linear_table_t::xmin [private]
5.310.4.5 mha_real_t MHATableLookup::linear_table_t::xmax [private]
5.310.4.6 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.311

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

MHAOvlFilter::barkscale
::hz2bark_t

© 2005-2019 HörTech gGmbH, Oldenburg

5.311

MHATableLookup::table_t Class Reference

829

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.311.1

Constructor & Destructor Documentation

5.311.1.1

table_t::table_t (
void )

5.311.1.2

table_t::∼table_t (
void ) [virtual]

5.311.2
5.311.2.1

Member Function Documentation
virtual mha_real_t MHATableLookup::table_t::lookup (
mha_real_t ) const [pure virtual]

Implemented in MHATableLookup::xy_table_t (p. 831), and MHATableLookup::linear_←table_t (p. 826).
5.311.2.2

virtual mha_real_t MHATableLookup::table_t::interp (
mha_real_t ) const [pure virtual]

Implemented in MHATableLookup::xy_table_t (p. 832), and MHATableLookup::linear_←table_t (p. 826).
5.311.2.3

virtual void MHATableLookup::table_t::clear (
void ) [protected], [pure virtual]

Implemented in MHATableLookup::xy_table_t (p. 832), and MHATableLookup::linear_←table_t (p. 828).
The documentation for this class was generated from the following files:
• mha_tablelookup.hh
• mha_tablelookup.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

830

5.312

CONTENTS

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

MHAOvlFilter::barkscale
::hz2bark_t

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.
© 2005-2019 HörTech gGmbH, Oldenburg

5.312

MHATableLookup::xy_table_t Class Reference

831

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.312.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. 832) and xy_table_t::lookup() (p. 831). 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.

5.312.2
5.312.2.1
5.312.3

Constructor & Destructor Documentation
xy_table_t::xy_table_t ( )
Member Function Documentation

5.312.3.1 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. 829).
© 2005-2019 HörTech gGmbH, Oldenburg

832

CONTENTS

5.312.3.2 mha_real_t xy_table_t::interp (
mha_real_t x ) const [virtual]
Linear interpolation function.
Parameters
x

x value

Returns
interpolated y value
Implements MHATableLookup::table_t (p. 829).
5.312.3.3

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.312.3.4

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.312.3.5

void xy_table_t::clear (
void ) [virtual]

Clear the table and transformation functions.
Implements MHATableLookup::table_t (p. 829).
© 2005-2019 HörTech gGmbH, Oldenburg

5.312

MHATableLookup::xy_table_t Class Reference

5.312.3.6

833

void xy_table_t::set_xfun (
float(∗)(float) fun )

Set transformation function for x values.
Parameters
fun

Transformation function.

5.312.3.7

void xy_table_t::set_yfun (
float(∗)(float) fun )

Set transformation function for y values during insertion.
Parameters
fun

Transformation function.

5.312.3.8

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.312.3.9

std::pair 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
5.312.4

Member Data Documentation

5.312.4.1

std::map MHATableLookup::xy_table_t::mXY [private]

5.312.4.2

float(∗ MHATableLookup::xy_table_t::xfun) (float) [private]

5.312.4.3

float(∗ MHATableLookup::xy_table_t::yfun) (float) [private]

5.312.4.4

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
© 2005-2019 HörTech gGmbH, Oldenburg

834

5.313

CONTENTS

MHAWindow::bartlett_t Class Reference

Bartlett window.
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.313.1

Detailed Description

Bartlett window.

5.313.2
5.313.2.1

Constructor & Destructor Documentation
MHAWindow::bartlett_t::bartlett_t (
unsigned int n ) [inline]

The documentation for this class was generated from the following file:
• mha_windowparser.h
© 2005-2019 HörTech gGmbH, Oldenburg

5.314

MHAWindow::base_t Class Reference

5.314

MHAWindow::base_t Class Reference

835

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.314.1

Detailed Description

Common base for window types.

5.314.2
5.314.2.1

Constructor & Destructor Documentation
MHAWindow::base_t::base_t (
unsigned int len )

Constructor.

© 2005-2019 HörTech gGmbH, Oldenburg

836

CONTENTS

Parameters
len

Window length in samples.

5.314.2.2

MHAWindow::base_t::base_t (
const MHAWindow::base_t & src )

Copy constructor.
Parameters
src

Source to be copied

5.314.3

5.314.3.1

Member Function Documentation

void MHAWindow::base_t::operator() (
mha_wave_t & s ) const

Apply window to waveform segment (reference)
5.314.3.2

void MHAWindow::base_t::operator() (
mha_wave_t ∗ s ) const

Apply window to waveform segment (pointer)
5.314.3.3

void MHAWindow::base_t::ramp_begin (
mha_wave_t & s ) const

Apply a ramp at the begining.
5.314.3.4

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.315

MHAWindow::blackman_t Class Reference

5.315

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)

Additional Inherited Members
5.315.1

Detailed Description

Blackman window.

5.315.2
5.315.2.1

Constructor & Destructor Documentation
MHAWindow::blackman_t::blackman_t (
unsigned int n ) [inline]

The documentation for this class was generated from the following file:
• mha_windowparser.h
© 2005-2019 HörTech gGmbH, Oldenburg

837

838

5.316

CONTENTS

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.

Additional Inherited Members
5.316.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.316.2
5.316.2.1

Constructor & Destructor Documentation
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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.317

MHAWindow::hamming_t Class Reference

839

Parameters
n

Window length

fun

Generator function, i.e. MHAWindow::hanning() (p. 127)

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.317

MHAWindow::hamming_t Class Reference

Hamming window.
Inheritance diagram for MHAWindow::hamming_t:

mha_wave_t

MHASignal::waveform_t

MHAWindow::base_t

MHAWindow::fun_t

MHAWindow::hamming_t

© 2005-2019 HörTech gGmbH, Oldenburg

840

CONTENTS

Public Member Functions
• hamming_t (unsigned int n)

Additional Inherited Members
5.317.1

Detailed Description

Hamming window.

5.317.2

Constructor & Destructor Documentation

5.317.2.1

MHAWindow::hamming_t::hamming_t (
unsigned int n ) [inline]

The documentation for this class was generated from the following file:
• mha_windowparser.h

5.318

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.319

MHAWindow::rect_t Class Reference

Public Member Functions
• hanning_t (unsigned int n)

Additional Inherited Members
5.318.1

Detailed Description

von-Hann window

5.318.2

Constructor & Destructor Documentation

5.318.2.1

MHAWindow::hanning_t::hanning_t (
unsigned int n ) [inline]

The documentation for this class was generated from the following file:
• mha_windowparser.h

5.319

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

© 2005-2019 HörTech gGmbH, Oldenburg

841

842

CONTENTS

Public Member Functions
• rect_t (unsigned int n)

Additional Inherited Members
5.319.1

Detailed Description

Rectangular window.

5.319.2

Constructor & Destructor Documentation

5.319.2.1

MHAWindow::rect_t::rect_t (
unsigned int n ) [inline]

The documentation for this class was generated from the following file:
• mha_windowparser.h

5.320

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-2019 HörTech gGmbH, Oldenburg

5.320

MHAWindow::user_t Class Reference

843

Public Member Functions
• user_t (const std::vector< mha_real_t > &wnd)
Constructor.

Additional Inherited Members
5.320.1

Detailed Description

User defined window.

5.320.2
5.320.2.1

Constructor & Destructor Documentation
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-2019 HörTech gGmbH, Oldenburg

844

5.321

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, MHA←Parser::parser_t &p, std::string help)
• void store ()
Additional Inherited Members
5.321.1
5.321.1.1

5.321.2
5.321.2.1

Constructor & Destructor Documentation
mon_t::mon_t (
unsigned int nch,
std::string name,
algo_comm_t ac,
std::string base,
MHAParser::parser_t & p,
std::string help )
Member Function Documentation
void mon_t::store ( )

The documentation for this class was generated from the following file:
• rmslevel.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.322

multibandcompressor::fftfb_plug_t Class Reference

5.322

multibandcompressor::fftfb_plug_t Class Reference

845

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 ()

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
© 2005-2019 HörTech gGmbH, Oldenburg

846

CONTENTS

Additional Inherited Members

5.322.1

5.322.1.1

5.322.2

5.322.2.1

5.322.3

Constructor & Destructor Documentation

multibandcompressor::fftfb_plug_t::fftfb_plug_t (
MHAOvlFilter::fftfb_vars_t & vars,
const mhaconfig_t & cfg,
algo_comm_t ac,
std::string alg )

Member Function Documentation

void multibandcompressor::fftfb_plug_t::insert ( )

Member Data Documentation

5.322.3.1 MHA_AC::waveform_t multibandcompressor::fftfb_plug_t::cfv [private]

vector of nominal center frequencies / Hz

5.322.3.2 MHA_AC::waveform_t multibandcompressor::fftfb_plug_t::efv [private]

vector of edge frequencies / Hz

5.322.3.3 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
© 2005-2019 HörTech gGmbH, Oldenburg

5.323

multibandcompressor::interface_t Class Reference

5.323

multibandcompressor::interface_t Class Reference

847

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

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

© 2005-2019 HörTech gGmbH, Oldenburg

848

CONTENTS

Additional Inherited Members
5.323.1
5.323.1.1

Constructor & Destructor Documentation
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

5.323.2

5.323.2.1

Member Function Documentation

void multibandcompressor::interface_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< fftfb_plug_t > (p. 730).
5.323.2.2

void multibandcompressor::interface_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< fftfb_plug_t > (p. 731).
5.323.2.3 mha_spec_t ∗ multibandcompressor::interface_t::process (
mha_spec_t ∗ s )
5.323.2.4

5.323.3

5.323.3.1

void multibandcompressor::interface_t::update_cfg (
void ) [private]
Member Data Documentation

int multibandcompressor::interface_t::num_channels [private]

5.323.3.2 DynComp::dc_afterburn_t multibandcompressor::interface_t::burn [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.324

multibandcompressor::plugin_signals_t Class Reference 849

5.323.3.3 MHAEvents::patchbay_t multibandcompressor::interface_t::patchbay
[private]

5.323.3.4

std::string multibandcompressor::interface_t::algo [private]

5.323.3.5 MHAParser::mhapluginloader_t multibandcompressor::interface_t::plug [private]

5.323.3.6 plugin_signals_t∗ multibandcompressor::interface_t::plug_sigs [private]

The documentation for this class was generated from the following file:

• multibandcompressor.cpp

5.324

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

Private Attributes

• MHASignal::waveform_t plug_level
• MHASignal::waveform_t gain
© 2005-2019 HörTech gGmbH, Oldenburg

850

5.324.1

5.324.1.1

5.324.2

CONTENTS

Constructor & Destructor Documentation

multibandcompressor::plugin_signals_t::plugin_signals_t (
unsigned int channels,
unsigned int bands )

Member Function Documentation

5.324.2.1

void multibandcompressor::plugin_signals_t::update_levels (
MHAOvlFilter::fftfb_t ∗ pFb,
mha_spec_t ∗ s_in )

5.324.2.2

void multibandcompressor::plugin_signals_t::apply_gains (
MHAOvlFilter::fftfb_t ∗ pFb,
DynComp::dc_afterburn_t & burn,
mha_spec_t ∗ s_out )

5.324.3

Member Data Documentation

5.324.3.1 MHASignal::waveform_t multibandcompressor::plugin_signals_t::plug_level
[private]

5.324.3.2 MHASignal::waveform_t multibandcompressor::plugin_signals_t::gain [private]

5.324.3.3 mha_wave_t∗ multibandcompressor::plugin_signals_t::plug_output

The documentation for this class was generated from the following file:

• multibandcompressor.cpp

© 2005-2019 HörTech gGmbH, Oldenburg

5.325

nlms_t Class Reference

5.325

nlms_t Class Reference

851

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 ∗)

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

© 2005-2019 HörTech gGmbH, Oldenburg

852
•
•
•
•
•
•
•

CONTENTS

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.325.1
5.325.1.1

5.325.2
5.325.2.1

Constructor & Destructor Documentation
nlms_t::nlms_t (
algo_comm_t ac,
const char ∗ ,
const char ∗ ialg )
Member Function Documentation
void nlms_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< rt_nlms_t > (p. 730).
5.325.2.2

void nlms_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< rt_nlms_t > (p. 731).
5.325.2.3 mha_wave_t ∗ nlms_t::process (
mha_wave_t ∗ s )
5.325.2.4
5.325.3

void nlms_t::update ( ) [private]
Member Data Documentation

5.325.3.1 MHAParser::float_t nlms_t::rho [private]
5.325.3.2 MHAParser::float_t nlms_t::c [private]
5.325.3.3 MHAParser::int_t nlms_t::ntaps [private]
5.325.3.4 MHAParser::string_t nlms_t::name_u [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.326

noise_t Class Reference

853

5.325.3.5 MHAParser::string_t nlms_t::name_d [private]
5.325.3.6 MHAParser::kw_t nlms_t::normtype [private]
5.325.3.7 MHAParser::kw_t nlms_t::estimtype [private]
5.325.3.8 MHAParser::float_t nlms_t::lambda_smoothing_power [private]
5.325.3.9 MHAParser::string_t nlms_t::name_e [private]
5.325.3.10 MHAParser::string_t nlms_t::name_f [private]
5.325.3.11 MHAParser::int_t nlms_t::n_no_update [private]
5.325.3.12

std::string nlms_t::algo [private]

5.325.3.13 MHAEvents::patchbay_t nlms_t::patchbay [private]
The documentation for this class was generated from the following file:
• nlms_wave.cpp

5.326

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

© 2005-2019 HörTech gGmbH, Oldenburg

854

CONTENTS

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

Additional Inherited Members

5.326.1

5.326.1.1

5.326.2

Constructor & Destructor Documentation

noise_t::noise_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )

Member Function Documentation

5.326.2.1 mha_wave_t ∗ noise_t::process (
mha_wave_t ∗ s )

5.326.2.2 mha_spec_t ∗ noise_t::process (
mha_spec_t ∗ s )

5.326.2.3

void noise_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 730).
© 2005-2019 HörTech gGmbH, Oldenburg

5.327

noisePowProposedScale::interface_t Class Reference

5.326.2.4

5.326.3

855

void noise_t::update_cfg (
void )
Member Data Documentation

5.326.3.1 MHAParser::float_t noise_t::lev [private]
5.326.3.2 MHAParser::kw_t noise_t::mode [private]
5.326.3.3 MHAParser::float_t noise_t::frozennoise_length [private]
5.326.3.4 MHAEvents::patchbay_t noise_t::patchbay [private]
The documentation for this class was generated from the following file:
• noise.cpp

5.327

noisePowProposedScale::interface_t Class Reference

Inheritance diagram for noisePowProposedScale::interface_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< noisePowProposed >

MHAPlugin::plugin_t
< noisePowProposed >

noisePowProposedScale
::interface_t

© 2005-2019 HörTech gGmbH, Oldenburg

856

CONTENTS

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

Additional Inherited Members

5.327.1

5.327.1.1

5.327.2

Constructor & Destructor Documentation

noisePowProposedScale::interface_t::interface_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & iname )

Member Function Documentation

5.327.2.1 mha_spec_t ∗ noisePowProposedScale::interface_t::process (
mha_spec_t ∗ s )

5.327.2.2

void noisePowProposedScale::interface_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< noisePowProposed > (p. 730).
© 2005-2019 HörTech gGmbH, Oldenburg

5.328 noisePowProposedScale::noisePowProposed Class
Reference
5.327.2.3

5.327.3

857

void noisePowProposedScale::interface_t::update_cfg (
void ) [private]
Member Data Documentation

5.327.3.1 MHAParser::float_t noisePowProposedScale::interface_t::alphaPH1mean [private]
5.327.3.2 MHAParser::float_t noisePowProposedScale::interface_t::alphaPSD [private]
5.327.3.3 MHAParser::float_t noisePowProposedScale::interface_t::q [private]
5.327.3.4 MHAParser::float_t noisePowProposedScale::interface_t::xiOptDb [private]
5.327.3.5

std::string noisePowProposedScale::interface_t::name [private]

5.327.3.6 MHAEvents::patchbay_t noisePowProposedScale::interface_t::patchbay
[private]
The documentation for this class was generated from the following file:
• noisePowProposedScale.cpp

5.328

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 ()

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

© 2005-2019 HörTech gGmbH, Oldenburg

858

5.328.1
5.328.1.1

5.328.2

CONTENTS

Constructor & Destructor Documentation
noisePowProposedScale::noisePowProposed::noisePowProposed (
const mhaconfig_t & cf,
algo_comm_t ac,
const std::string & name,
float alphaPH1mean,
float alphaPSD,
float q,
float xiOptDb )
Member Function Documentation

5.328.2.1

void noisePowProposedScale::noisePowProposed::process (
mha_spec_t ∗ noisyDftFrame )

5.328.2.2

void noisePowProposedScale::noisePowProposed::insert ( ) [inline]

5.328.3

Member Data Documentation

5.328.3.1 MHASignal::waveform_t noisePowProposedScale::noisePowProposed::noisyPer
[private]
5.328.3.2 MHASignal::waveform_t noisePowProposedScale::noisePowProposed::PH1mean
[private]
5.328.3.3 MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::noisePow
[private]
5.328.3.4 MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::inputPow
[private]
5.328.3.5 MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::snrPost1Debug
[private]
5.328.3.6 MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::GLRDebug
[private]
5.328.3.7 MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::PH1Debug
[private]
5.328.3.8 MHA_AC::waveform_t noisePowProposedScale::noisePowProposed::estimateDebug
[private]
5.328.3.9 MHA_AC::spectrum_t noisePowProposedScale::noisePowProposed::inputSpec
[private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.329

overlapadd::overlapadd_if_t Class Reference

859

5.328.3.10

float noisePowProposedScale::noisePowProposed::alphaPH1mean_ [private]

5.328.3.11

float noisePowProposedScale::noisePowProposed::alphaPSD_ [private]

5.328.3.12

float noisePowProposedScale::noisePowProposed::priorFact [private]

5.328.3.13

float noisePowProposedScale::noisePowProposed::xiOpt [private]

5.328.3.14

float noisePowProposedScale::noisePowProposed::logGLRFact [private]

5.328.3.15

float noisePowProposedScale::noisePowProposed::GLRexp [private]

5.328.3.16

int noisePowProposedScale::noisePowProposed::frameno [private]

The documentation for this class was generated from the following file:
• noisePowProposedScale.cpp

5.329

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

© 2005-2019 HörTech gGmbH, Oldenburg

860

CONTENTS

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 ∗)

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.329.1

Constructor & Destructor Documentation

5.329.1.1

overlapadd::overlapadd_if_t::overlapadd_if_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & ialg )

5.329.1.2

overlapadd::overlapadd_if_t::∼overlapadd_if_t ( )

5.329.2
5.329.2.1

Member Function Documentation
void overlapadd::overlapadd_if_t::prepare (
mhaconfig_t & t ) [virtual]

Implements MHAPlugin::plugin_t< overlapadd_t > (p. 730).
© 2005-2019 HörTech gGmbH, Oldenburg

5.329

overlapadd::overlapadd_if_t Class Reference

5.329.2.2

861

void overlapadd::overlapadd_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< overlapadd_t > (p. 731).
5.329.2.3 mha_wave_t ∗ overlapadd::overlapadd_if_t::process (
mha_wave_t ∗ wave_in )
5.329.2.4
5.329.3

void overlapadd::overlapadd_if_t::update ( ) [private]
Member Data Documentation

5.329.3.1 MHAEvents::patchbay_t overlapadd::overlapadd_if_t::patchbay
[private]
5.329.3.2 MHAParser::int_t overlapadd::overlapadd_if_t::nfft [private]
FFT length to be used, zero-padding is FFT length-wndlength.
5.329.3.3 MHAParser::int_t overlapadd::overlapadd_if_t::nwnd [private]
Window length to be used (overlap is 1-fragsize/wndlength)
5.329.3.4 MHAParser::float_t overlapadd::overlapadd_if_t::wndpos [private]
Relative position of zero padding (0 end, 0.5 center, 1 start)
5.329.3.5 MHAParser::window_t overlapadd::overlapadd_if_t::window [private]
5.329.3.6 MHAParser::float_t overlapadd::overlapadd_if_t::wndexp [private]
5.329.3.7 MHAParser::window_t overlapadd::overlapadd_if_t::zerowindow [private]
5.329.3.8 MHAParser::mhapluginloader_t overlapadd::overlapadd_if_t::plugloader [private]
5.329.3.9 MHAParser::float_mon_t overlapadd::overlapadd_if_t::prescale [private]
5.329.3.10 MHAParser::float_mon_t overlapadd::overlapadd_if_t::postscale [private]
5.329.3.11

std::string overlapadd::overlapadd_if_t::algo [private]

5.329.3.12 mhaconfig_t overlapadd::overlapadd_if_t::cf_in [private]
5.329.3.13 mhaconfig_t overlapadd::overlapadd_if_t::cf_out [private]
The documentation for this class was generated from the following file:
• overlapadd.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

862

5.330

CONTENTS

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 ∗)

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.330.1

Constructor & Destructor Documentation

5.330.1.1

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.330.1.2

overlapadd::overlapadd_t::∼overlapadd_t ( )

5.330.2

Member Function Documentation

5.330.2.1 mha_spec_t ∗ overlapadd::overlapadd_t::ola1 (
mha_wave_t ∗ s )

© 2005-2019 HörTech gGmbH, Oldenburg

5.330

overlapadd::overlapadd_t Class Reference

863

5.330.2.2 mha_wave_t ∗ overlapadd::overlapadd_t::ola2 (
mha_spec_t ∗ s )

5.330.3

Member Data Documentation

5.330.3.1 mha_fft_t overlapadd::overlapadd_t::fft [private]

5.330.3.2 MHAWindow::base_t overlapadd::overlapadd_t::prewnd [private]

5.330.3.3 MHAWindow::base_t overlapadd::overlapadd_t::postwnd [private]

5.330.3.4 MHASignal::waveform_t overlapadd::overlapadd_t::wave_in1 [private]

5.330.3.5 MHASignal::waveform_t overlapadd::overlapadd_t::wave_out1 [private]

5.330.3.6 MHASignal::spectrum_t overlapadd::overlapadd_t::spec_in [private]

5.330.3.7 MHASignal::waveform_t overlapadd::overlapadd_t::calc_out [private]

5.330.3.8 MHASignal::waveform_t overlapadd::overlapadd_t::out_buf [private]

5.330.3.9 MHASignal::waveform_t overlapadd::overlapadd_t::write_buf [private]

5.330.3.10

unsigned int overlapadd::overlapadd_t::n_zero [private]

5.330.3.11

unsigned int overlapadd::overlapadd_t::n_pad1 [private]

5.330.3.12

unsigned int overlapadd::overlapadd_t::n_pad2 [private]

The documentation for this class was generated from the following file:

• overlapadd.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

864

5.331

CONTENTS

parser_int_dyn Class Reference

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.331.1
5.331.1.1

Constructor & Destructor Documentation
parser_int_dyn::parser_int_dyn (
const std::string & help_text,
const std::string & initial_value,
const std::string & range ) [inline]

© 2005-2019 HörTech gGmbH, Oldenburg

5.332

plingploing::if_t Class Reference

5.331.2

Member Function Documentation

5.331.2.1

865

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.332

plingploing::if_t Class Reference

Plugin class of the plingploing music generator.
Inheritance diagram for plingploing::if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< plingploing_t >

MHAPlugin::plugin_t
< plingploing_t >

plingploing::if_t

Public Member Functions
• if_t (algo_comm_t, const char ∗, const char ∗)
• mha_wave_t ∗ process (mha_wave_t ∗)
• void prepare (mhaconfig_t &cf)

Private Member Functions
• void update ()
© 2005-2019 HörTech gGmbH, Oldenburg

866

CONTENTS

Private Attributes
• MHAEvents::patchbay_t< if_t > patchbay
• MHAParser::float_t level
Output level in dB SPL.

• MHAParser::float_t pitch
Bass pitch in Hz.

• MHAParser::float_t fun1_key
Key1.

• MHAParser::float_t fun1_range
Range1.

• MHAParser::float_t fun2_key
Key 2.

• MHAParser::float_t fun2_range
Range 2.

• MHAParser::float_t bpm
Speed in beats per minute (bpm)

• MHAParser::float_t minlen
Minimum note length in beats.

• MHAParser::float_t maxlen
Maximum note length in beats.

• MHAParser::float_t bassmod
Bass key modulation depth.

• MHAParser::float_t bassperiod
Bass key modulation period.

Additional Inherited Members
5.332.1

Detailed Description

Plugin class of the plingploing music generator.
5.332.2
5.332.2.1

5.332.3

Constructor & Destructor Documentation
plingploing::if_t::if_t (
algo_comm_t iac,
const char ∗ ,
const char ∗ )
Member Function Documentation

5.332.3.1 mha_wave_t ∗ plingploing::if_t::process (
mha_wave_t ∗ s )
5.332.3.2

void plingploing::if_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< plingploing_t > (p. 730).
© 2005-2019 HörTech gGmbH, Oldenburg

5.332

plingploing::if_t Class Reference

5.332.3.3
5.332.4

867

void plingploing::if_t::update ( ) [private]
Member Data Documentation

5.332.4.1 MHAEvents::patchbay_t plingploing::if_t::patchbay [private]
5.332.4.2 MHAParser::float_t plingploing::if_t::level [private]
Output level in dB SPL.
5.332.4.3 MHAParser::float_t plingploing::if_t::pitch [private]
Bass pitch in Hz.
5.332.4.4 MHAParser::float_t plingploing::if_t::fun1_key [private]
Key1.
5.332.4.5 MHAParser::float_t plingploing::if_t::fun1_range [private]
Range1.
5.332.4.6 MHAParser::float_t plingploing::if_t::fun2_key [private]
Key 2.
5.332.4.7 MHAParser::float_t plingploing::if_t::fun2_range [private]
Range 2.
5.332.4.8 MHAParser::float_t plingploing::if_t::bpm [private]
Speed in beats per minute (bpm)
5.332.4.9 MHAParser::float_t plingploing::if_t::minlen [private]
Minimum note length in beats.
5.332.4.10 MHAParser::float_t plingploing::if_t::maxlen [private]
Maximum note length in beats.
© 2005-2019 HörTech gGmbH, Oldenburg

868

CONTENTS

5.332.4.11 MHAParser::float_t plingploing::if_t::bassmod [private]
Bass key modulation depth.
5.332.4.12 MHAParser::float_t plingploing::if_t::bassperiod [private]
Bass key modulation period.
The documentation for this class was generated from the following file:
• plingploing.cpp

5.333

plingploing::plingploing_t Class Reference

Run-time configuration of the plingploing music generator.
Public Member Functions
• plingploing_t (mhaconfig_t, mha_real_t level, mha_real_t pitch, mha_real_t k1,
mha_real_t k2, mha_real_t i1, mha_real_t i2, mha_real_t bpm, mha_real_t minlen,
mha_real_t maxlen, mha_real_t bassmod, mha_real_t bassperiod)
• void process (mha_wave_t ∗)
Private Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

mhaconfig_t cf
mha_real_t pitch_
unsigned int bt
unsigned int t
unsigned int len
mha_real_t dur_
mha_real_t minlen_
mha_real_t maxlen_
mha_real_t bass
mha_real_t freq
mha_real_t fun1_key
mha_real_t fun1_range
mha_real_t fun1
mha_real_t fun2
mha_real_t fun2_key
mha_real_t fun2_range
mha_real_t dist
mha_real_t dist1
mha_real_t alph
mha_real_t rms
mha_real_t bassmod_
mha_real_t bassperiod_
MHAWindow::hanning_t hann1
MHAWindow::hanning_t hann2
mha_real_t level
© 2005-2019 HörTech gGmbH, Oldenburg

5.333

plingploing::plingploing_t Class Reference

5.333.1

Detailed Description

Run-time configuration of the plingploing music generator.

5.333.2
5.333.2.1

5.333.3
5.333.3.1

5.333.4

Constructor & Destructor Documentation
plingploing::plingploing_t::plingploing_t (
mhaconfig_t c,
mha_real_t level,
mha_real_t pitch,
mha_real_t k1,
mha_real_t k2,
mha_real_t i1,
mha_real_t i2,
mha_real_t bpm,
mha_real_t minlen,
mha_real_t maxlen,
mha_real_t bassmod,
mha_real_t bassperiod )
Member Function Documentation
void plingploing::plingploing_t::process (
mha_wave_t ∗ s )
Member Data Documentation

5.333.4.1 mhaconfig_t plingploing::plingploing_t::cf [private]
5.333.4.2 mha_real_t plingploing::plingploing_t::pitch_ [private]
5.333.4.3

unsigned int plingploing::plingploing_t::bt [private]

5.333.4.4

unsigned int plingploing::plingploing_t::t [private]

5.333.4.5

unsigned int plingploing::plingploing_t::len [private]

5.333.4.6 mha_real_t plingploing::plingploing_t::dur_ [private]
5.333.4.7 mha_real_t plingploing::plingploing_t::minlen_ [private]
5.333.4.8 mha_real_t plingploing::plingploing_t::maxlen_ [private]
5.333.4.9 mha_real_t plingploing::plingploing_t::bass [private]

© 2005-2019 HörTech gGmbH, Oldenburg

869

870

CONTENTS

5.333.4.10 mha_real_t plingploing::plingploing_t::freq [private]
5.333.4.11 mha_real_t plingploing::plingploing_t::fun1_key [private]
5.333.4.12 mha_real_t plingploing::plingploing_t::fun1_range [private]
5.333.4.13 mha_real_t plingploing::plingploing_t::fun1 [private]
5.333.4.14 mha_real_t plingploing::plingploing_t::fun2 [private]
5.333.4.15 mha_real_t plingploing::plingploing_t::fun2_key [private]
5.333.4.16 mha_real_t plingploing::plingploing_t::fun2_range [private]
5.333.4.17 mha_real_t plingploing::plingploing_t::dist [private]
5.333.4.18 mha_real_t plingploing::plingploing_t::dist1 [private]
5.333.4.19 mha_real_t plingploing::plingploing_t::alph [private]
5.333.4.20 mha_real_t plingploing::plingploing_t::rms [private]
5.333.4.21 mha_real_t plingploing::plingploing_t::bassmod_ [private]
5.333.4.22 mha_real_t plingploing::plingploing_t::bassperiod_ [private]
5.333.4.23 MHAWindow::hanning_t plingploing::plingploing_t::hann1 [private]
5.333.4.24 MHAWindow::hanning_t plingploing::plingploing_t::hann2 [private]
5.333.4.25 mha_real_t plingploing::plingploing_t::level [private]
The documentation for this class was generated from the following file:
• plingploing.cpp

5.334

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.334

plug_t Class Reference

871

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 ()

Additional Inherited Members

5.334.1

Constructor & Destructor Documentation

5.334.1.1

plug_t::plug_t (
const std::string & libname,
const std::string & chain,
const std::string & algo )

5.334.1.2

plug_t::∼plug_t ( ) throw )

5.334.2

[inline]

Member Function Documentation

5.334.2.1 MHAProc_wave2wave_t plug_t::get_process_wave ( )

5.334.2.2 MHAProc_wave2spec_t plug_t::get_process_spec ( )

5.334.2.3

void ∗ plug_t::get_handle ( )

5.334.2.4 algo_comm_t plug_t::get_ac ( ) [inline]

The documentation for this class was generated from the following file:

• analysispath.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

872

5.335

CONTENTS

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 ()

Private Attributes
• MHAParser::int_t scale_ch
• MHAParser::float_t factor
• MHAEvents::patchbay_t< plugin_interface_t > patchbay
© 2005-2019 HörTech gGmbH, Oldenburg

5.336

pluginbrowser_t Class Reference

873

Additional Inherited Members
5.335.1

Constructor & Destructor Documentation

5.335.1.1

5.335.2

plugin_interface_t::plugin_interface_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )
Member Function Documentation

5.335.2.1 mha_spec_t ∗ plugin_interface_t::process (
mha_spec_t ∗ spec )
5.335.2.2

void plugin_interface_t::prepare (
mhaconfig_t & tfcfg ) [virtual]

Implements MHAPlugin::plugin_t< example5_t > (p. 730).
5.335.2.3
5.335.3

void plugin_interface_t::update_cfg ( ) [private]
Member Data Documentation

5.335.3.1 MHAParser::int_t plugin_interface_t::scale_ch [private]
5.335.3.2 MHAParser::float_t plugin_interface_t::factor [private]
5.335.3.3 MHAEvents::patchbay_t plugin_interface_t::patchbay
[private]
The documentation for this class was generated from the following file:
• example5.cpp

5.336

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

© 2005-2019 HörTech gGmbH, Oldenburg

874

CONTENTS

Private Attributes
•
•
•
•

std::string plugin_extension
std::list< std::string > library_paths
std::list< plugindescription_t > plugins
std::map< std::string, pluginloader_t ∗ > p

5.336.1
5.336.1.1
5.336.2
5.336.2.1

Constructor & Destructor Documentation
pluginbrowser_t::pluginbrowser_t ( )
Member Function Documentation
void pluginbrowser_t::get_paths ( )

5.336.2.2 plugindescription_t pluginbrowser_t::scan_plugin (
const std::string & name )
5.336.2.3

void pluginbrowser_t::add_plugins ( )

5.336.2.4

void pluginbrowser_t::clear_plugins ( )

5.336.2.5

void pluginbrowser_t::scan_plugins ( )

5.336.2.6

void pluginbrowser_t::add_plugin (
const std::string & name )

5.336.2.7

std::list pluginbrowser_t::get_plugins ( ) const [inline]

5.336.3

Member Data Documentation

5.336.3.1

std::string pluginbrowser_t::plugin_extension [private]

5.336.3.2

std::list pluginbrowser_t::library_paths [private]

5.336.3.3

std::list pluginbrowser_t::plugins [private]

5.336.3.4

std::map pluginbrowser_t::p [private]

The documentation for this class was generated from the following files:
• pluginbrowser.h
• pluginbrowser.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.337

plugindescription_t Class Reference

5.337

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.337.1

Member Data Documentation

5.337.1.1

std::string plugindescription_t::name

5.337.1.2

std::string plugindescription_t::fullname

5.337.1.3

std::string plugindescription_t::documentation

5.337.1.4

std::vector plugindescription_t::categories

5.337.1.5

bool plugindescription_t::wave2wave

5.337.1.6

bool plugindescription_t::wave2spec

5.337.1.7

bool plugindescription_t::spec2wave

5.337.1.8

bool plugindescription_t::spec2spec

5.337.1.9

std::vector plugindescription_t::query_cmds

5.337.1.10

std::map plugindescription_t::queries

The documentation for this class was generated from the following file:
• pluginbrowser.h
© 2005-2019 HörTech gGmbH, Oldenburg

875

876

5.338

CONTENTS

PluginLoader::config_file_splitter_t Class Reference

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 libname
std::string configname
std::string origname
std::string configfile

5.338.1
5.338.1.1

5.338.2

Constructor & Destructor Documentation
PluginLoader::config_file_splitter_t::config_file_splitter_t (
const std::string & name )
Member Function Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

5.339

PluginLoader::fourway_processor_t Class Reference

877

5.338.2.1

const std::string& PluginLoader::config_file_splitter_t::get_configname (
[inline]

5.338.2.2

const std::string& PluginLoader::config_file_splitter_t::get_libname ( ) const [inline]

5.338.2.3

const std::string& PluginLoader::config_file_splitter_t::get_origname ( ) const [inline]

5.338.2.4

const std::string& PluginLoader::config_file_splitter_t::get_configfile ( ) const [inline]

5.338.3

) const

Member Data Documentation

5.338.3.1

std::string PluginLoader::config_file_splitter_t::libname [private]

5.338.3.2

std::string PluginLoader::config_file_splitter_t::configname [private]

5.338.3.3

std::string PluginLoader::config_file_splitter_t::origname [private]

5.338.3.4

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.339

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-2019 HörTech gGmbH, Oldenburg

plug_t

pluginloader_t

878

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. 880) are released here in fourway_processor_t::release ( p. 880).

• virtual std::string parse (const std::string &query)=0
Parser interface.

• virtual ∼fourway_processor_t ()
Classes with virtual methods need virtual destructor.

5.339.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.339.2
5.339.2.1

Constructor & Destructor Documentation
virtual PluginLoader::fourway_processor_t::∼fourway_processor_t (
[virtual]

) [inline],

Classes with virtual methods need virtual destructor.
This destructor is empty.

5.339.3
5.339.3.1

Member Function Documentation
virtual void PluginLoader::fourway_processor_t::process (
mha_wave_t ∗ s_in,
mha_wave_t ∗∗ s_out ) [pure virtual]

Pure waveform processing.

© 2005-2019 HörTech gGmbH, Oldenburg

5.339

PluginLoader::fourway_processor_t Class Reference

879

Parameters
s_in

input waveform signal

s_out

output waveform signal

Implemented in PluginLoader::mhapluginloader_t (p. 883).
5.339.3.2

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. 883).
5.339.3.3

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. 883).
5.339.3.4

virtual void PluginLoader::fourway_processor_t::process (
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

© 2005-2019 HörTech gGmbH, Oldenburg

880

CONTENTS

Implemented in PluginLoader::mhapluginloader_t (p. 883).
5.339.3.5

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. 880), settings reflects domain and dimensions of the input signal. When
fourway_processor_t::prepare (p. 880) returns, settings reflects domain and
dimensions of the output signal.

Implemented in PluginLoader::mhapluginloader_t (p. 883).
5.339.3.6

virtual void PluginLoader::fourway_processor_t::release ( ) [pure virtual]

Resources allocated for signal processing in fourway_processor_t::prepare (p. 880) are released here in fourway_processor_t::release (p. 880).
Implemented in PluginLoader::mhapluginloader_t (p. 883).
5.339.3.7

virtual std::string PluginLoader::fourway_processor_t::parse (
const std::string & query ) [pure virtual]

Parser interface.
Implemented in PluginLoader::mhapluginloader_t (p. 883).
The documentation for this class was generated from the following file:
• mhapluginloader.h

5.340

PluginLoader::mhapluginloader_t Class Reference

Inheritance diagram for PluginLoader::mhapluginloader_t:

PluginLoader::config
_file_splitter_t

MHAParser::base_t

MHAParser::c_ifc_parser_t

PluginLoader::fourway
_processor_t

mhaplug_cfg_t

PluginLoader::mhapluginloader_t

plug_t

pluginloader_t

© 2005-2019 HörTech gGmbH, Oldenburg

5.340

PluginLoader::mhapluginloader_t Class Reference

881

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

Protected Member Functions
•
•
•
•

void test_error ()
void test_version ()
void mha_test_struct_size (unsigned int s)
void 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

© 2005-2019 HörTech gGmbH, Oldenburg

882
•
•
•
•
•
•

CONTENTS

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.340.1

Constructor & Destructor Documentation

5.340.1.1

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.
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 (
[inline]

5.340.2.15

bool PluginLoader::mhapluginloader_t::is_prepared ( ) const [inline]

5.340.2.16

void PluginLoader::mhapluginloader_t::test_error ( ) [protected]

5.340.2.17

void PluginLoader::mhapluginloader_t::test_version ( ) [protected]

5.340.2.18

void PluginLoader::mhapluginloader_t::mha_test_struct_size (
unsigned int s ) [protected]

5.340.2.19

void PluginLoader::mhapluginloader_t::resolve_and_init ( ) [protected]

5.340.3
5.340.3.1

) const

Member Data Documentation
int PluginLoader::mhapluginloader_t::lib_err [protected]

5.340.3.2 algo_comm_t PluginLoader::mhapluginloader_t::ac [protected]
5.340.3.3 dynamiclib_t PluginLoader::mhapluginloader_t::lib_handle [protected]
5.340.3.4

void∗ PluginLoader::mhapluginloader_t::lib_data [protected]

5.340.3.5 MHAGetVersion_t PluginLoader::mhapluginloader_t::MHAGetVersion_cb
[protected]
5.340.3.6 MHAInit_t PluginLoader::mhapluginloader_t::MHAInit_cb [protected]
5.340.3.7 MHADestroy_t PluginLoader::mhapluginloader_t::MHADestroy_cb [protected]
5.340.3.8 MHAPrepare_t PluginLoader::mhapluginloader_t::MHAPrepare_cb [protected]
5.340.3.9 MHARelease_t PluginLoader::mhapluginloader_t::MHARelease_cb [protected]
5.340.3.10 MHAProc_wave2wave_t PluginLoader::mhapluginloader_t::MHAProc_wave2wave_cb
[protected]
5.340.3.11 MHAProc_spec2spec_t PluginLoader::mhapluginloader_t::MHAProc_spec2spec_cb
[protected]

© 2005-2019 HörTech gGmbH, Oldenburg

5.341

pluginloader_t Class Reference

885

5.340.3.12 MHAProc_wave2spec_t PluginLoader::mhapluginloader_t::MHAProc_wave2spec_cb
[protected]
5.340.3.13 MHAProc_spec2wave_t PluginLoader::mhapluginloader_t::MHAProc_spec2wave_cb
[protected]
5.340.3.14 MHASet_t PluginLoader::mhapluginloader_t::MHASet_cb [protected]
5.340.3.15 MHAStrError_t PluginLoader::mhapluginloader_t::MHAStrError_cb [protected]
5.340.3.16 mhaconfig_t PluginLoader::mhapluginloader_t::cf_input [protected]
5.340.3.17 mhaconfig_t PluginLoader::mhapluginloader_t::cf_output [protected]
5.340.3.18

std::string PluginLoader::mhapluginloader_t::plugin_documentation [protected]

5.340.3.19

std::vector PluginLoader::mhapluginloader_t::plugin_categories
[protected]

5.340.3.20

bool PluginLoader::mhapluginloader_t::b_check_version [protected]

5.340.3.21

bool PluginLoader::mhapluginloader_t::b_is_prepared [protected]

The documentation for this class was generated from the following files:
• mhapluginloader.h
• mhapluginloader.cpp

5.341

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 ()
© 2005-2019 HörTech gGmbH, Oldenburg

886

CONTENTS

Additional Inherited Members

5.341.1

Constructor & Destructor Documentation

5.341.1.1

pluginloader_t::pluginloader_t (
const std::string & name )

5.341.1.2

pluginloader_t::∼pluginloader_t ( ) throw )

The documentation for this class was generated from the following files:

• pluginbrowser.h
• pluginbrowser.cpp

5.342

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-2019 HörTech gGmbH, Oldenburg

5.342

prediction_error Class Reference

887

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.342.1
5.342.1.1

Constructor & Destructor Documentation
prediction_error::prediction_error (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
© 2005-2019 HörTech gGmbH, Oldenburg

888

5.342.1.2
5.342.2

CONTENTS

prediction_error::∼prediction_error ( )
Member Function Documentation

5.342.2.1 mha_wave_t ∗ prediction_error::process (
mha_wave_t ∗ signal )
Checks for the most recent configuration and defers processing to it.
5.342.2.2

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. 730).
5.342.2.3

void prediction_error::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< prediction_error_config > (p. 731).
5.342.2.4

5.342.3

void prediction_error::update_cfg (
void ) [private]
Member Data Documentation

5.342.3.1 MHAParser::float_t prediction_error::rho
5.342.3.2 MHAParser::float_t prediction_error::c
5.342.3.3 MHAParser::int_t prediction_error::ntaps
5.342.3.4 MHAParser::vfloat_t prediction_error::gains
5.342.3.5 MHAParser::string_t prediction_error::name_e
5.342.3.6 MHAParser::string_t prediction_error::name_f

© 2005-2019 HörTech gGmbH, Oldenburg

5.343

prediction_error_config Class Reference

889

5.342.3.7 MHAParser::string_t prediction_error::name_lpc
5.342.3.8 MHAParser::int_t prediction_error::lpc_order
5.342.3.9 MHAParser::vint_t prediction_error::pred_err_delay
5.342.3.10 MHAParser::vint_t prediction_error::delay_w
5.342.3.11 MHAParser::vint_t prediction_error::delay_d
5.342.3.12 MHAParser::int_t prediction_error::n_no_update
5.342.3.13 MHAEvents::patchbay_t prediction_error::patchbay
[private]
The documentation for this class was generated from the following files:
• prediction_error.h
• prediction_error.cpp

5.343

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
Power of input signal delayline.

•
•
•
•

std::string name_d_
std::string name_lpc_
int n_no_update_
int no_iter

© 2005-2019 HörTech gGmbH, Oldenburg

890
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

CONTENTS

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
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.343.1

Constructor & Destructor Documentation

5.343.1.1

prediction_error_config::prediction_error_config (
algo_comm_t & ac,
const mhaconfig_t in_cfg,
prediction_error ∗ pred_err )

5.343.1.2

prediction_error_config::∼prediction_error_config ( )

5.343.2

Member Function Documentation

5.343.2.1 mha_wave_t ∗ prediction_error_config::process (
mha_wave_t ∗ s_Y,
mha_real_t rho,
mha_real_t c )
5.343.2.2
5.343.3

void prediction_error_config::insert ( )
Member Data Documentation

5.343.3.1 algo_comm_t prediction_error_config::ac [private]
5.343.3.2

unsigned int prediction_error_config::ntaps [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.343

prediction_error_config Class Reference

5.343.3.3

unsigned int prediction_error_config::frames [private]

5.343.3.4

unsigned int prediction_error_config::channels [private]

891

5.343.3.5 MHA_AC::waveform_t prediction_error_config::s_E [private]
5.343.3.6 MHA_AC::waveform_t prediction_error_config::F [private]
5.343.3.7 MHASignal::waveform_t prediction_error_config::Pu [private]
Power of input signal delayline.
5.343.3.8

std::string prediction_error_config::name_d_ [private]

5.343.3.9

std::string prediction_error_config::name_lpc_ [private]

5.343.3.10

int prediction_error_config::n_no_update_ [private]

5.343.3.11

int prediction_error_config::no_iter [private]

5.343.3.12

int prediction_error_config::iter [private]

5.343.3.13 MHASignal::waveform_t prediction_error_config::v_G [private]
5.343.3.14 MHASignal::waveform_t prediction_error_config::s_U [private]
5.343.3.15 MHASignal::delay_t prediction_error_config::s_E_pred_err_delay [private]
5.343.3.16 MHASignal::delay_t prediction_error_config::s_W [private]
5.343.3.17 MHASignal::ringbuffer_t prediction_error_config::s_Wflt [private]
5.343.3.18 MHASignal::delay_t prediction_error_config::s_U_delay [private]
5.343.3.19 MHASignal::ringbuffer_t prediction_error_config::s_U_delayflt [private]
5.343.3.20 MHASignal::waveform_t prediction_error_config::F_Uflt [private]
5.343.3.21 MHASignal::delay_t prediction_error_config::s_Y_delay [private]
5.343.3.22 MHASignal::ringbuffer_t prediction_error_config::s_Y_delayflt [private]
5.343.3.23 MHASignal::ringbuffer_t prediction_error_config::UbufferPrew [private]

© 2005-2019 HörTech gGmbH, Oldenburg

892

CONTENTS

5.343.3.24 mha_wave_t prediction_error_config::s_LPC [private]
5.343.3.25 mha_wave_t prediction_error_config::UPrew [private]
5.343.3.26 mha_wave_t prediction_error_config::YPrew [private]
5.343.3.27 mha_wave_t prediction_error_config::EPrew [private]
5.343.3.28 mha_wave_t prediction_error_config::UPrewW [private]
5.343.3.29 mha_wave_t prediction_error_config::smpl [private]
5.343.3.30 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

5.344

rmslevel_if_t Class Reference

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.344

rmslevel_if_t Class Reference

893

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.344.1
5.344.1.1

5.344.2

Constructor & Destructor Documentation
rmslevel_if_t::rmslevel_if_t (
const algo_comm_t & iac,
const std::string & ith,
const std::string & ial )
Member Function Documentation

5.344.2.1 mha_spec_t ∗ rmslevel_if_t::process (
mha_spec_t ∗ s )
5.344.2.2 mha_wave_t ∗ rmslevel_if_t::process (
mha_wave_t ∗ s )
5.344.2.3

void rmslevel_if_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< rmslevel_t > (p. 730).

5.344.3
5.344.3.1

Member Data Documentation
std::string rmslevel_if_t::name [private]

The documentation for this class was generated from the following file:
• rmslevel.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

894

5.345

CONTENTS

rmslevel_t Class Reference

Public Member Functions
• rmslevel_t (unsigned int nch, algo_comm_t ac, std::string name, MHAParser::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.345.1
5.345.1.1

5.345.2

Constructor & Destructor Documentation
rmslevel_t::rmslevel_t (
unsigned int nch,
algo_comm_t ac,
std::string name,
MHAParser::parser_t & p,
unsigned int fftlen_ )
Member Function Documentation

5.345.2.1 mha_spec_t ∗ rmslevel_t::process (
mha_spec_t ∗ s )
5.345.2.2 mha_wave_t ∗ rmslevel_t::process (
mha_wave_t ∗ s )
5.345.2.3
5.345.3

void rmslevel_t::insert ( )
Member Data Documentation

5.345.3.1 mon_t rmslevel_t::level_db [private]
5.345.3.2 mon_t rmslevel_t::peak_db [private]
5.345.3.3 mon_t rmslevel_t::level [private]
5.345.3.4 mon_t rmslevel_t::peak [private]
5.345.3.5

unsigned int rmslevel_t::fftlen [private]

The documentation for this class was generated from the following file:
• rmslevel.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.346

route::interface_t Class Reference

5.346

route::interface_t Class Reference

895

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-2019 HörTech gGmbH, Oldenburg

896

CONTENTS

Additional Inherited Members
5.346.1
5.346.1.1

5.346.2
5.346.2.1

Constructor & Destructor Documentation
route::interface_t::interface_t (
algo_comm_t iac,
const std::string & ,
const std::string & ialg )
Member Function Documentation
void route::interface_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< route::process_t > (p. 730).
5.346.2.2

void route::interface_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< route::process_t > (p. 731).
5.346.2.3 mha_wave_t ∗ route::interface_t::process (
mha_wave_t ∗ s )
5.346.2.4 mha_spec_t ∗ route::interface_t::process (
mha_spec_t ∗ s )
5.346.2.5
5.346.3

void route::interface_t::update ( ) [private]
Member Data Documentation

5.346.3.1 MHAEvents::patchbay_t route::interface_t::patchbay
[private]
5.346.3.2 MHAParser::vstring_t route::interface_t::route_out [private]
5.346.3.3 MHAParser::vstring_t route::interface_t::route_ac [private]
5.346.3.4 mhaconfig_t route::interface_t::cfin [private]
5.346.3.5 mhaconfig_t route::interface_t::cfout [private]
5.346.3.6 mhaconfig_t route::interface_t::cfac [private]
5.346.3.7

bool route::interface_t::prepared [private]

5.346.3.8

bool route::interface_t::stopped [private]

5.346.3.9

std::string route::interface_t::algo [private]

The documentation for this class was generated from the following file:
• route.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.347

route::process_t Class Reference

5.347

route::process_t Class Reference

897

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 wout
MHAMultiSrc::spectrum_t sout
MHAMultiSrc::waveform_t wout_ac
MHAMultiSrc::spectrum_t sout_ac

5.347.1
5.347.1.1

5.347.2

Constructor & Destructor Documentation
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 )
Member Function Documentation

5.347.2.1 mha_wave_t ∗ route::process_t::process (
mha_wave_t ∗ s )
5.347.2.2 mha_spec_t ∗ route::process_t::process (
mha_spec_t ∗ s )
5.347.3

Member Data Documentation

5.347.3.1 MHAMultiSrc::waveform_t route::process_t::wout [private]
5.347.3.2 MHAMultiSrc::spectrum_t route::process_t::sout [private]
5.347.3.3 MHAMultiSrc::waveform_t route::process_t::wout_ac [private]
5.347.3.4 MHAMultiSrc::spectrum_t route::process_t::sout_ac [private]
The documentation for this class was generated from the following file:
• route.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

898

5.348

CONTENTS

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.

• 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
© 2005-2019 HörTech gGmbH, Oldenburg

5.348

rt_nlms_t Class Reference

5.348.1

Constructor & Destructor Documentation

5.348.1.1

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.348.1.2

rt_nlms_t::∼rt_nlms_t ( ) [inline]

5.348.2

Member Function Documentation

5.348.2.1 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.348.2.2
5.348.3

void rt_nlms_t::insert ( )
Member Data Documentation

5.348.3.1 algo_comm_t rt_nlms_t::ac [private]
5.348.3.2

unsigned int rt_nlms_t::ntaps [private]

5.348.3.3

unsigned int rt_nlms_t::frames [private]

5.348.3.4

unsigned int rt_nlms_t::channels [private]

5.348.3.5 MHA_AC::waveform_t rt_nlms_t::F [private]
5.348.3.6 MHASignal::waveform_t rt_nlms_t::U [private]
Input signal cache.
5.348.3.7 MHASignal::waveform_t rt_nlms_t::Uflt [private]
Input signal cache (second filter)
© 2005-2019 HörTech gGmbH, Oldenburg

899

900

CONTENTS

5.348.3.8 MHASignal::waveform_t rt_nlms_t::Pu [private]

Power of input signal delayline.

5.348.3.9 MHASignal::waveform_t rt_nlms_t::fu [private]

Filtered input signal.

5.348.3.10 MHASignal::waveform_t rt_nlms_t::fuflt [private]

Filtered input signal.

5.348.3.11 MHASignal::waveform_t rt_nlms_t::fu_previous [private]

5.348.3.12 MHASignal::waveform_t rt_nlms_t::y_previous [private]

5.348.3.13 MHASignal::waveform_t rt_nlms_t::P_Sum [private]

5.348.3.14

std::string rt_nlms_t::name_u_ [private]

5.348.3.15

std::string rt_nlms_t::name_d_ [private]

5.348.3.16

std::string rt_nlms_t::name_e_ [private]

5.348.3.17

int rt_nlms_t::n_no_update_ [private]

5.348.3.18

int rt_nlms_t::no_iter [private]

5.348.3.19 mha_wave_t rt_nlms_t::s_E [private]

The documentation for this class was generated from the following file:

• nlms_wave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.349

save_spec_t Class Reference

5.349

save_spec_t Class Reference

901

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

Additional Inherited Members
5.349.1
5.349.1.1

Constructor & Destructor Documentation
save_spec_t::save_spec_t (
const algo_comm_t & iac,
const std::string & ith,
const std::string & ial ) [inline]

© 2005-2019 HörTech gGmbH, Oldenburg

902

5.349.2

CONTENTS

Member Function Documentation

5.349.2.1 mha_spec_t∗ save_spec_t::process (
mha_spec_t ∗ s ) [inline]
5.349.2.2

void save_spec_t::prepare (
mhaconfig_t & tf ) [inline], [virtual]

Implements MHAPlugin::plugin_t< MHA_AC::spectrum_t > (p. 730).

5.349.3

Member Data Documentation

5.349.3.1

std::string save_spec_t::basename [private]

The documentation for this class was generated from the following file:
• save_spec.cpp

5.350

save_wave_t Class Reference

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.351

shadowfilter_begin::cfg_t Class Reference

903

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.350.1

Constructor & Destructor Documentation

5.350.1.1

5.350.2

save_wave_t::save_wave_t (
const algo_comm_t & iac,
const std::string & ith,
const std::string & ial ) [inline]
Member Function Documentation

5.350.2.1 mha_wave_t∗ save_wave_t::process (
mha_wave_t ∗ s ) [inline]
5.350.2.2

void save_wave_t::prepare (
mhaconfig_t & tf ) [inline], [virtual]

Implements MHAPlugin::plugin_t< MHA_AC::waveform_t > (p. 730).

5.350.3

Member Data Documentation

5.350.3.1

std::string save_wave_t::basename [private]

The documentation for this class was generated from the following file:
• save_wave.cpp

5.351

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-2019 HörTech gGmbH, Oldenburg

904

CONTENTS

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.351.1

5.351.1.1

Constructor & Destructor Documentation

cfg_t::cfg_t (
int nfft,
int inch,
int outch,
algo_comm_t ac,
std::string name )

5.351.2

Member Function Documentation

5.351.2.1 mha_spec_t ∗ cfg_t::process (
mha_spec_t ∗ s )

5.351.3

Member Data Documentation

5.351.3.1 MHA_AC::spectrum_t shadowfilter_begin::cfg_t::in_spec_copy [private]

5.351.3.2 MHASignal::spectrum_t shadowfilter_begin::cfg_t::out_spec [private]

5.351.3.3 MHA_AC::int_t shadowfilter_begin::cfg_t::nch [private]

5.351.3.4 MHA_AC::int_t shadowfilter_begin::cfg_t::ntracks [private]

The documentation for this class was generated from the following file:

• shadowfilter_begin.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.352

shadowfilter_begin::shadowfilter_begin_t Class Reference905

5.352

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 &)

Private Attributes
• std::string basename
• MHAParser::int_t nch
• MHAParser::int_t ntracks

Additional Inherited Members

5.352.1

Constructor & Destructor Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

906

5.352.1.1

5.352.2

CONTENTS

shadowfilter_begin::shadowfilter_begin_t::shadowfilter_begin_t (
const algo_comm_t & iac,
const std::string & ith,
const std::string & ial )
Member Function Documentation

5.352.2.1 mha_spec_t ∗ shadowfilter_begin::shadowfilter_begin_t::process (
mha_spec_t ∗ s )
5.352.2.2

void shadowfilter_begin::shadowfilter_begin_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 730).

5.352.3

Member Data Documentation

5.352.3.1

std::string shadowfilter_begin::shadowfilter_begin_t::basename [private]

5.352.3.2 MHAParser::int_t shadowfilter_begin::shadowfilter_begin_t::nch [private]
5.352.3.3 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.353

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.353

shadowfilter_end::cfg_t Class Reference

5.353.1

Constructor & Destructor Documentation

5.353.1.1

907

cfg_t::cfg_t (
int nfft_,
algo_comm_t ac_,
std::string name_ )

5.353.2

Member Function Documentation

5.353.2.1 mha_spec_t ∗ cfg_t::process (
mha_spec_t ∗ s )

5.353.3

Member Data Documentation

5.353.3.1 algo_comm_t shadowfilter_end::cfg_t::ac [private]

5.353.3.2

std::string shadowfilter_end::cfg_t::name [private]

5.353.3.3

int shadowfilter_end::cfg_t::nfft [private]

5.353.3.4

int shadowfilter_end::cfg_t::ntracks [private]

5.353.3.5

int shadowfilter_end::cfg_t::nch_out [private]

5.353.3.6 mha_spec_t shadowfilter_end::cfg_t::in_spec [private]

5.353.3.7 MHASignal::spectrum_t shadowfilter_end::cfg_t::out_spec [private]

5.353.3.8 MHA_AC::spectrum_t shadowfilter_end::cfg_t::gains [private]

The documentation for this class was generated from the following file:

• shadowfilter_end.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

908

5.354

CONTENTS

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

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.354.1
5.354.1.1

Constructor & Destructor Documentation
shadowfilter_end::shadowfilter_end_t::shadowfilter_end_t (
const algo_comm_t & iac,
const std::string & ith,
const std::string & ial )

© 2005-2019 HörTech gGmbH, Oldenburg

5.355

sine_cfg_t Struct Reference

5.354.2

Member Function Documentation

909

5.354.2.1 mha_spec_t ∗ shadowfilter_end::shadowfilter_end_t::process (
mha_spec_t ∗ s )

5.354.2.2

void shadowfilter_end::shadowfilter_end_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 730).

5.354.3

Member Data Documentation

5.354.3.1 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.355

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
© 2005-2019 HörTech gGmbH, Oldenburg

910

5.355.1

CONTENTS

Constructor & Destructor Documentation

5.355.1.1

5.355.2

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]
Member Data Documentation

5.355.2.1

double sine_cfg_t::phase_increment_div_2pi

5.355.2.2

double sine_cfg_t::amplitude

5.355.2.3

int sine_cfg_t::mix

5.355.2.4

const std::vector sine_cfg_t::channels

The documentation for this struct was generated from the following file:
• sine.cpp

5.356

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-2019 HörTech gGmbH, Oldenburg

5.356

sine_t Class Reference

911

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.356.1

Constructor & Destructor Documentation

5.356.1.1

sine_t::sine_t (
const algo_comm_t & iac,
const std::string & chain_name,
const std::string & algo_name )

5.356.1.2

sine_t::∼sine_t ( )

5.356.2

Member Function Documentation

5.356.2.1 mha_wave_t ∗ sine_t::process (
mha_wave_t ∗ s )
5.356.2.2

void sine_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< sine_cfg_t > (p. 730).
© 2005-2019 HörTech gGmbH, Oldenburg

912

5.356.2.3

5.356.3

CONTENTS

void sine_t::update_cfg (
void ) [private]
Member Data Documentation

5.356.3.1 MHAParser::float_t sine_t::lev [private]
5.356.3.2 MHAParser::float_t sine_t::frequency [private]
5.356.3.3 MHAParser::kw_t sine_t::mode [private]
5.356.3.4 MHAParser::vint_t sine_t::channels [private]
5.356.3.5

double sine_t::phase_div_2pi [private]

5.356.3.6 MHAEvents::patchbay_t sine_t::patchbay [private]
The documentation for this class was generated from the following file:
• sine.cpp

5.357

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

© 2005-2019 HörTech gGmbH, Oldenburg

5.357

smoothgains_bridge::overlapadd_if_t Class Reference

913

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 ∗)

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.357.1

Constructor & Destructor Documentation

5.357.1.1

smoothgains_bridge::overlapadd_if_t::overlapadd_if_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & ialg )

5.357.1.2

smoothgains_bridge::overlapadd_if_t::∼overlapadd_if_t ( )

5.357.2
5.357.2.1

Member Function Documentation
void smoothgains_bridge::overlapadd_if_t::prepare (
mhaconfig_t & t ) [virtual]

Implements MHAPlugin::plugin_t< smoothspec_wrap_t > (p. 730).
5.357.2.2

void smoothgains_bridge::overlapadd_if_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< smoothspec_wrap_t > (p. 731).
© 2005-2019 HörTech gGmbH, Oldenburg

914

CONTENTS

5.357.2.3 mha_spec_t ∗ smoothgains_bridge::overlapadd_if_t::process (
mha_spec_t ∗ spec )
5.357.2.4
5.357.3

void smoothgains_bridge::overlapadd_if_t::update ( ) [private]
Member Data Documentation

5.357.3.1 MHAEvents::patchbay_t smoothgains_bridge::overlapadd_if_t←::patchbay [private]
5.357.3.2 MHAParser::kw_t smoothgains_bridge::overlapadd_if_t::mode [private]
5.357.3.3 MHAParser::window_t smoothgains_bridge::overlapadd_if_t::irswnd [private]
5.357.3.4 MHAParser::float_t smoothgains_bridge::overlapadd_if_t::epsilon [private]
5.357.3.5 MHAParser::mhapluginloader_t smoothgains_bridge::overlapadd_if_t::plugloader
[private]
5.357.3.6

std::string smoothgains_bridge::overlapadd_if_t::algo [private]

5.357.3.7 mhaconfig_t smoothgains_bridge::overlapadd_if_t::cf_in [private]
5.357.3.8 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.358

smoothgains_bridge::smoothspec_wrap_t Class Reference

Public Member Functions
• smoothspec_wrap_t (mhaconfig_t spar_in, mhaconfig_t spar_out, const MHA←Parser::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 ∗)

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.358

smoothgains_bridge::smoothspec_wrap_t Class Reference
915

5.358.1

Constructor & Destructor Documentation

5.358.1.1

5.358.2

smoothgains_bridge::smoothspec_wrap_t::smoothspec_wrap_t (
mhaconfig_t spar_in,
mhaconfig_t spar_out,
const MHAParser::kw_t & mode,
const MHAParser::window_t & irswnd,
const MHAParser::float_t & epsilon )

Member Function Documentation

5.358.2.1 mha_spec_t ∗ smoothgains_bridge::smoothspec_wrap_t::proc_1 (
mha_spec_t ∗ s )

5.358.2.2 mha_spec_t ∗ smoothgains_bridge::smoothspec_wrap_t::proc_2 (
mha_spec_t ∗ s )

5.358.3

Member Data Documentation

5.358.3.1 MHASignal::spectrum_t smoothgains_bridge::smoothspec_wrap_t::spec_in_copy
[private]

Copy of input spectrum for smoothspec.

5.358.3.2 MHAFilter::smoothspec_t smoothgains_bridge::smoothspec_wrap_t::smoothspec
[private]

Smoothspec calculator.

5.358.3.3

bool smoothgains_bridge::smoothspec_wrap_t::use_smoothspec [private]

5.358.3.4

float smoothgains_bridge::smoothspec_wrap_t::smoothspec_epsilon [private]

The documentation for this class was generated from the following file:

• smoothgains_bridge.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

916

5.359

CONTENTS

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

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
© 2005-2019 HörTech gGmbH, Oldenburg

5.360

softclipper_t Class Reference

917

Additional Inherited Members
5.359.1

Constructor & Destructor Documentation

5.359.1.1

5.359.2

softclip_t::softclip_t (
const algo_comm_t & iac,
const std::string & chain,
const std::string & name )
Member Function Documentation

5.359.2.1 mha_wave_t ∗ softclip_t::process (
mha_wave_t ∗ s )
5.359.2.2

void softclip_t::prepare (
mhaconfig_t & tf ) [virtual]

Implements MHAPlugin::plugin_t< cfg_t > (p. 730).
5.359.2.3
5.359.3

void softclip_t::update ( )
Member Data Documentation

5.359.3.1 mhaconfig_t softclip_t::tftype [private]
5.359.3.2 MHAParser::float_t softclip_t::attack [private]
5.359.3.3 MHAParser::float_t softclip_t::decay [private]
5.359.3.4 MHAParser::float_t softclip_t::start_limit [private]
5.359.3.5 MHAParser::float_t softclip_t::slope_db [private]
5.359.3.6 MHAEvents::patchbay_t softclip_t::patchbay [private]
The documentation for this class was generated from the following file:
• softclip.cpp

5.360

softclipper_t Class Reference

Public Member Functions
• softclipper_t (const softclipper_variables_t &v, const mhaconfig_t &)
• mha_real_t process (mha_wave_t ∗)
© 2005-2019 HörTech gGmbH, Oldenburg

918

CONTENTS

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.360.1

5.360.1.1

5.360.2

Constructor & Destructor Documentation

softclipper_t::softclipper_t (
const softclipper_variables_t & v,
const mhaconfig_t & tf )
Member Function Documentation

5.360.2.1 mha_real_t softclipper_t::process (
mha_wave_t ∗ s )
5.360.3

Member Data Documentation

5.360.3.1 MHAFilter::o1flt_lowpass_t softclipper_t::attack [private]
5.360.3.2 MHAFilter::o1flt_maxtrack_t softclipper_t::decay [private]
5.360.3.3 MHAFilter::o1flt_lowpass_t softclipper_t::clipmeter [private]
5.360.3.4 mha_real_t softclipper_t::threshold [private]
5.360.3.5 mha_real_t softclipper_t::hardlimit [private]
5.360.3.6 mha_real_t softclipper_t::slope [private]
5.360.3.7

bool softclipper_t::linear [private]

The documentation for this class was generated from the following file:
• transducers.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.361

softclipper_variables_t Class Reference

5.361

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.361.1
5.361.1.1
5.361.2

Constructor & Destructor Documentation
softclipper_variables_t::softclipper_variables_t ( )
Member Data Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

919

920

CONTENTS

5.361.2.1 MHAParser::float_t softclipper_variables_t::tau_attack
5.361.2.2 MHAParser::float_t softclipper_variables_t::tau_decay
5.361.2.3 MHAParser::float_t softclipper_variables_t::tau_clip
5.361.2.4 MHAParser::float_t softclipper_variables_t::threshold
5.361.2.5 MHAParser::float_t softclipper_variables_t::hardlimit
5.361.2.6 MHAParser::float_t softclipper_variables_t::slope
5.361.2.7 MHAParser::bool_t softclipper_variables_t::linear
5.361.2.8 MHAParser::float_mon_t softclipper_variables_t::clipped
5.361.2.9 MHAParser::float_t softclipper_variables_t::max_clipped
The documentation for this class was generated from the following file:
• transducers.cpp

5.362

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-2019 HörTech gGmbH, Oldenburg

5.362

spec2wave_if_t Class Reference

921

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.362.1
5.362.1.1

5.362.2
5.362.2.1

Constructor & Destructor Documentation
spec2wave_if_t::spec2wave_if_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & )
Member Function Documentation
void spec2wave_if_t::prepare (
mhaconfig_t & t ) [virtual]

Implements MHAPlugin::plugin_t< spec2wave_t > (p. 730).
5.362.2.2 mha_wave_t ∗ spec2wave_if_t::process (
mha_spec_t ∗ spec_in )
5.362.2.3
5.362.3

void spec2wave_if_t::update ( ) [private]
Member Data Documentation

5.362.3.1 MHAEvents::patchbay_t spec2wave_if_t::patchbay [private]
5.362.3.2 MHAParser::float_t spec2wave_if_t::ramplen [private]
5.362.3.3 windowselector_t spec2wave_if_t::window_config [private]
The documentation for this class was generated from the following file:
• spec2wave.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

922

5.363

CONTENTS

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 ∗)

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.363.1

Constructor & Destructor Documentation

5.363.1.1

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.363.1.2

spec2wave_t::∼spec2wave_t ( )

5.363.2

Member Function Documentation

5.363.2.1 mha_wave_t ∗ spec2wave_t::process (
mha_spec_t ∗ spec_in )
5.363.3

Member Data Documentation

5.363.3.1 mha_fft_t spec2wave_t::ft [private]
FFT class.
© 2005-2019 HörTech gGmbH, Oldenburg

5.364

spec_fader_t Class Reference

5.363.3.2

923

unsigned int spec2wave_t::npad1 [private]

length of zero padding before window
5.363.3.3

unsigned int spec2wave_t::npad2 [private]

length of zero padding after window
5.363.3.4 hanning_ramps_t spec2wave_t::ramps [private]
5.363.3.5 MHASignal::waveform_t spec2wave_t::calc_out [private]
5.363.3.6 MHASignal::waveform_t spec2wave_t::out_buf [private]
5.363.3.7 MHASignal::waveform_t spec2wave_t::write_buf [private]
5.363.3.8 mha_real_t spec2wave_t::sc [private]
5.363.3.9
5.363.3.10

unsigned int spec2wave_t::nfft [private]
unsigned int spec2wave_t::nwndshift [private]

5.363.3.11 MHAWindow::base_t spec2wave_t::postwindow [private]
The documentation for this class was generated from the following file:
• spec2wave.cpp

5.364

spec_fader_t Class Reference

Public Member Functions
• spec_fader_t (unsigned int ch, mha_real_t fr, MHAParser::vfloat_t &ng, MHAParser←::float_t &t)
• ∼spec_fader_t ()

Public Attributes
• unsigned int nch
• mha_real_t ∗ gains
• unsigned int fr
© 2005-2019 HörTech gGmbH, Oldenburg

924

5.364.1

CONTENTS

Constructor & Destructor Documentation

5.364.1.1

spec_fader_t::spec_fader_t (
unsigned int ch,
mha_real_t fr,
MHAParser::vfloat_t & ng,
MHAParser::float_t & t )

5.364.1.2

spec_fader_t::∼spec_fader_t ( ) [inline]

5.364.2

Member Data Documentation

5.364.2.1

unsigned int spec_fader_t::nch

5.364.2.2 mha_real_t∗ spec_fader_t::gains
5.364.2.3

unsigned int spec_fader_t::fr

The documentation for this class was generated from the following file:

• fader_spec.cpp

5.365

speechnoise_t Class Reference

Inheritance diagram for speechnoise_t:

mha_wave_t

MHASignal::waveform_t

speechnoise_t

© 2005-2019 HörTech gGmbH, Oldenburg

5.365

speechnoise_t Class Reference

925

Public Types

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.365.1

5.365.1.1

Member Enumeration Documentation

enum speechnoise_t::noise_type_t

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
© 2005-2019 HörTech gGmbH, Oldenburg

926

5.365.2

CONTENTS

Constructor & Destructor Documentation

5.365.2.1

speechnoise_t::speechnoise_t (
float duration,
float srate,
unsigned int channels,
speechnoise_t::noise_type_t noise_type = speechnoise_t::mha )

5.365.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 )

5.365.3

Member Function Documentation

5.365.3.1

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.366

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-2019 HörTech gGmbH, Oldenburg

5.366

steerbf Class Reference

927

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.366.1
5.366.1.1

Constructor & Destructor Documentation
steerbf::steerbf (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs our plugin.
5.366.1.2
5.366.2

steerbf::∼steerbf ( )
Member Function Documentation

5.366.2.1 mha_spec_t ∗ steerbf::process (
mha_spec_t ∗ signal )
Defers to configuration class.
5.366.2.2

void steerbf::prepare (
mhaconfig_t & signal_info ) [virtual]

Plugin preparation.
An opportunity to validate configuration parameters before instantiating a configuration.

© 2005-2019 HörTech gGmbH, Oldenburg

928

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< steerbf_config > (p. 730).

5.366.2.3

void steerbf::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< steerbf_config > (p. 731).

5.366.2.4

5.366.3

void steerbf::update_cfg (
void ) [private]

Member Data Documentation

5.366.3.1 MHAParser::string_t steerbf::bf_src

5.366.3.2 parser_int_dyn steerbf::angle_ind

5.366.3.3 MHAParser::string_t steerbf::angle_src

5.366.3.4 MHAEvents::patchbay_t steerbf::patchbay [private]
The documentation for this class was generated from the following files:

• steerbf.h
• steerbf.cpp

5.367

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-2019 HörTech gGmbH, Oldenburg

5.367

steerbf_config Class Reference

929

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.367.1

Constructor & Destructor Documentation

5.367.1.1

steerbf_config::steerbf_config (
algo_comm_t & ac,
const mhaconfig_t in_cfg,
steerbf ∗ steerbf )

5.367.1.2

steerbf_config::∼steerbf_config ( )

5.367.2

Member Function Documentation

5.367.2.1 mha_spec_t ∗ steerbf_config::process (
mha_spec_t ∗ inSpec )
5.367.3

Member Data Documentation

5.367.3.1

unsigned int steerbf_config::nchan [private]

5.367.3.2

unsigned int steerbf_config::nfreq [private]

5.367.3.3 MHASignal::spectrum_t steerbf_config::outSpec [private]
5.367.3.4 mha_spec_t steerbf_config::bf_vec [private]
5.367.3.5

unsigned int steerbf_config::nangle [private]

5.367.3.6 steerbf∗ steerbf_config::_steerbf [private]
5.367.3.7 algo_comm_t& steerbf_config::ac [private]
5.367.3.8

std::string steerbf_config::bf_src_copy [private]

The documentation for this class was generated from the following files:
• steerbf.h
• steerbf.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

930

5.368

CONTENTS

testplugin::ac_parser_t Class Reference

Inheritance diagram for testplugin::ac_parser_t:

MHAParser::base_t

MHAParser::parser_t

MHAKernel::algo_comm
_class_t

testplugin::ac_parser_t

Public Types

Public Member Functions
• ac_parser_t ()
• void do_insert_var ()
Insert variable into AC space.

• void do_get_var ()

Public Attributes
•
•
•
•
•
•
•
•
•
•

MHAParser::string_t insert_var
MHAParser::string_t get_var
MHAParser::kw_t data_type
MHAParser::int_t num_entries
MHAParser::int_t stride
MHAParser::string_t char_data
MHAParser::vint_t int_data
MHAParser::vfloat_t float_data
MHAParser::vcomplex_t complex_data
MHAEvents::patchbay_t< ac_parser_t > patchbay
© 2005-2019 HörTech gGmbH, Oldenburg

5.368

testplugin::ac_parser_t Class Reference

931

Additional Inherited Members
5.368.1
5.368.1.1

Member Enumeration Documentation
enum testplugin::ac_parser_t::data_type_t

Enumerator
_MHA_AC_CHAR
_MHA_AC_INT
_MHA_AC_MHAREAL
_MHA_AC_FLOAT
_MHA_AC_DOUBLE
_MHA_AC_MHACOMPLEX
_unknown
5.368.2
5.368.2.1
5.368.3
5.368.3.1

Constructor & Destructor Documentation
testplugin::ac_parser_t::ac_parser_t ( ) [inline]
Member Function Documentation
void testplugin::ac_parser_t::do_insert_var ( ) [inline]

Insert variable into AC space.
This leaks memory by design, as the plugin is for testing only
5.368.3.2
5.368.4

void testplugin::ac_parser_t::do_get_var ( ) [inline]
Member Data Documentation

5.368.4.1 MHAParser::string_t testplugin::ac_parser_t::insert_var
5.368.4.2 MHAParser::string_t testplugin::ac_parser_t::get_var
5.368.4.3 MHAParser::kw_t testplugin::ac_parser_t::data_type
5.368.4.4 MHAParser::int_t testplugin::ac_parser_t::num_entries
5.368.4.5 MHAParser::int_t testplugin::ac_parser_t::stride
5.368.4.6 MHAParser::string_t testplugin::ac_parser_t::char_data
5.368.4.7 MHAParser::vint_t testplugin::ac_parser_t::int_data
5.368.4.8 MHAParser::vfloat_t testplugin::ac_parser_t::float_data
5.368.4.9 MHAParser::vcomplex_t testplugin::ac_parser_t::complex_data
5.368.4.10 MHAEvents::patchbay_t testplugin::ac_parser_t::patchbay
The documentation for this class was generated from the following file:
• testplugin.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

932

5.369

CONTENTS

testplugin::config_parser_t Class Reference

Inheritance diagram for testplugin::config_parser_t:

MHAParser::base_t

MHAParser::parser_t

testplugin::config
_parser_t

Public Member Functions
•
•
•
•

void setlock (const bool &b)
config_parser_t ()
mhaconfig_t get () const
void set (mhaconfig_t c)

Public Attributes
•
•
•
•
•
•

MHAParser::int_t channels
MHAParser::kw_t domain
MHAParser::int_t fragsize
MHAParser::int_t wndlen
MHAParser::int_t fftlen
MHAParser::float_t srate

Additional Inherited Members
5.369.1
5.369.1.1

Constructor & Destructor Documentation
testplugin::config_parser_t::config_parser_t ( ) [inline]

© 2005-2019 HörTech gGmbH, Oldenburg

5.369

testplugin::config_parser_t Class Reference

5.369.2

Member Function Documentation

5.369.2.1

933

void testplugin::config_parser_t::setlock (
const bool & b ) [inline]

5.369.2.2 mhaconfig_t testplugin::config_parser_t::get ( ) const [inline]

5.369.2.3

5.369.3

void testplugin::config_parser_t::set (
mhaconfig_t c ) [inline]

Member Data Documentation

5.369.3.1 MHAParser::int_t testplugin::config_parser_t::channels

5.369.3.2 MHAParser::kw_t testplugin::config_parser_t::domain

5.369.3.3 MHAParser::int_t testplugin::config_parser_t::fragsize

5.369.3.4 MHAParser::int_t testplugin::config_parser_t::wndlen

5.369.3.5 MHAParser::int_t testplugin::config_parser_t::fftlen

5.369.3.6 MHAParser::float_t testplugin::config_parser_t::srate

The documentation for this class was generated from the following file:

• testplugin.cpp

© 2005-2019 HörTech gGmbH, Oldenburg

934

5.370

CONTENTS

testplugin::if_t Class Reference

Inheritance diagram for testplugin::if_t:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< int >

MHAPlugin::plugin_t
< int >

testplugin::if_t

Public Member Functions
•
•
•
•

if_t (const algo_comm_t &iac, const std::string &ith, const std::string &ial)
mha_spec_t ∗ process (mha_spec_t ∗s_in)
mha_wave_t ∗ process (mha_wave_t ∗s_in)
void prepare (mhaconfig_t &)

Private Member Functions
• void test_prepare ()
• void test_process ()

Private Attributes
•
•
•
•
•
•
•

config_parser_t config_in
config_parser_t config_out
ac_parser_t ac
signal_parser_t signal
MHAParser::bool_t _prepare
MHAEvents::patchbay_t< if_t > patchbay
MHAParser::mhapluginloader_t plug
© 2005-2019 HörTech gGmbH, Oldenburg

5.370

testplugin::if_t Class Reference

935

Additional Inherited Members
5.370.1
5.370.1.1

5.370.2

Constructor & Destructor Documentation
testplugin::if_t::if_t (
const algo_comm_t & iac,
const std::string & ith,
const std::string & ial )
Member Function Documentation

5.370.2.1 mha_spec_t∗ testplugin::if_t::process (
mha_spec_t ∗ s_in ) [inline]
5.370.2.2 mha_wave_t∗ testplugin::if_t::process (
mha_wave_t ∗ s_in ) [inline]
5.370.2.3

void testplugin::if_t::prepare (
mhaconfig_t & ) [inline], [virtual]

Implements MHAPlugin::plugin_t< int > (p. 730).
5.370.2.4

void testplugin::if_t::test_prepare ( ) [private]

5.370.2.5

void testplugin::if_t::test_process ( ) [private]

5.370.3

Member Data Documentation

5.370.3.1 config_parser_t testplugin::if_t::config_in [private]
5.370.3.2 config_parser_t testplugin::if_t::config_out [private]
5.370.3.3 ac_parser_t testplugin::if_t::ac [private]
5.370.3.4 signal_parser_t testplugin::if_t::signal [private]
5.370.3.5 MHAParser::bool_t testplugin::if_t::_prepare [private]
5.370.3.6 MHAEvents::patchbay_t testplugin::if_t::patchbay [private]
5.370.3.7 MHAParser::mhapluginloader_t testplugin::if_t::plug [private]
The documentation for this class was generated from the following file:
• testplugin.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

936

5.371

CONTENTS

testplugin::signal_parser_t Class Reference

Inheritance diagram for testplugin::signal_parser_t:

MHAParser::base_t

MHAParser::parser_t

testplugin::signal
_parser_t

Public Member Functions
• signal_parser_t ()
Public Attributes
•
•
•
•

MHAParser::mfloat_t input_wave
MHAParser::mcomplex_t input_spec
MHAParser::mfloat_mon_t output_wave
MHAParser::mcomplex_mon_t output_spec

Additional Inherited Members
5.371.1
5.371.1.1
5.371.2

Constructor & Destructor Documentation
testplugin::signal_parser_t::signal_parser_t ( ) [inline]
Member Data Documentation

5.371.2.1 MHAParser::mfloat_t testplugin::signal_parser_t::input_wave
5.371.2.2 MHAParser::mcomplex_t testplugin::signal_parser_t::input_spec
5.371.2.3 MHAParser::mfloat_mon_t testplugin::signal_parser_t::output_wave
5.371.2.4 MHAParser::mcomplex_mon_t testplugin::signal_parser_t::output_spec
The documentation for this class was generated from the following file:
• testplugin.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.372

timo_AC Class Reference

5.372

timo_AC Class Reference

937

Public Member Functions
• timo_AC (algo_comm_t &ac, unsigned int fftlen, unsigned int nfreq, unsigned int nchan)
• void copy ()
• void insert ()

Public Attributes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

MHA_AC::waveform_t gamma_post_AC
MHA_AC::waveform_t xi_ml_AC
MHA_AC::spectrum_t lambda_ml_AC
MHA_AC::spectrum_t lambda_ml_ceps_AC
MHA_AC::waveform_t lambda_ml_smooth_AC
MHA_AC::waveform_t max_q_AC
MHA_AC::waveform_t max_val_AC
MHA_AC::waveform_t pitch_set_first_AC
MHA_AC::waveform_t pitch_set_last_AC
MHA_AC::waveform_t alpha_hat_AC
MHA_AC::waveform_t alpha_frame_AC
MHA_AC::spectrum_t lambda_ceps_AC
MHA_AC::spectrum_t log_lambda_spec_AC
MHA_AC::waveform_t lambda_spec_AC
MHA_AC::waveform_t xi_est_AC
MHA_AC::waveform_t gain_wiener_AC
MHA_AC::waveform_t winF0_AC
MHA_AC::waveform_t SPP

5.372.1
5.372.1.1

5.372.2

Constructor & Destructor Documentation
timo_AC::timo_AC (
algo_comm_t & ac,
unsigned int fftlen,
unsigned int nfreq,
unsigned int nchan ) [inline]
Member Function Documentation

5.372.2.1

void timo_AC::copy ( )

5.372.2.2

void timo_AC::insert ( )

5.372.3

Member Data Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

938

CONTENTS

5.372.3.1 MHA_AC::waveform_t timo_AC::gamma_post_AC
5.372.3.2 MHA_AC::waveform_t timo_AC::xi_ml_AC
5.372.3.3 MHA_AC::spectrum_t timo_AC::lambda_ml_AC
5.372.3.4 MHA_AC::spectrum_t timo_AC::lambda_ml_ceps_AC
5.372.3.5 MHA_AC::waveform_t timo_AC::lambda_ml_smooth_AC
5.372.3.6 MHA_AC::waveform_t timo_AC::max_q_AC
5.372.3.7 MHA_AC::waveform_t timo_AC::max_val_AC
5.372.3.8 MHA_AC::waveform_t timo_AC::pitch_set_first_AC
5.372.3.9 MHA_AC::waveform_t timo_AC::pitch_set_last_AC
5.372.3.10 MHA_AC::waveform_t timo_AC::alpha_hat_AC
5.372.3.11 MHA_AC::waveform_t timo_AC::alpha_frame_AC
5.372.3.12 MHA_AC::spectrum_t timo_AC::lambda_ceps_AC
5.372.3.13 MHA_AC::spectrum_t timo_AC::log_lambda_spec_AC
5.372.3.14 MHA_AC::waveform_t timo_AC::lambda_spec_AC
5.372.3.15 MHA_AC::waveform_t timo_AC::xi_est_AC
5.372.3.16 MHA_AC::waveform_t timo_AC::gain_wiener_AC
5.372.3.17 MHA_AC::waveform_t timo_AC::winF0_AC
5.372.3.18 MHA_AC::waveform_t timo_AC::SPP
The documentation for this class was generated from the following files:
• timoconfig.h
• timoconfig.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.373

timo_params Class Reference

5.373

timo_params Class Reference

939

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.373.1
5.373.1.1

Constructor & Destructor Documentation
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,
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]

© 2005-2019 HörTech gGmbH, Oldenburg

940

5.373.2

CONTENTS

Member Data Documentation

5.373.2.1

const mhaconfig_t timo_params::in_cfg

5.373.2.2

float timo_params::xi_min_db

5.373.2.3

float timo_params::f0_low

5.373.2.4

float timo_params::f0_high

5.373.2.5

float timo_params::delta_pitch

5.373.2.6

float timo_params::lambda_thresh

5.373.2.7

float timo_params::alpha_pitch

5.373.2.8

float timo_params::beta_const

5.373.2.9

float timo_params::kappa_const

5.373.2.10

float timo_params::prior_q

5.373.2.11

float timo_params::xi_opt_db

5.373.2.12

float timo_params::gain_min_db

5.373.2.13

std::vector timo_params::winF0

5.373.2.14

std::vector timo_params::alpha_const_vals

5.373.2.15

std::vector timo_params::alpha_const_limits_hz

5.373.2.16

std::string timo_params::noisePow_name

The documentation for this class was generated from the following file:
• timoconfig.h

5.374

timoConfig Class Reference

Public Member Functions
• timoConfig (algo_comm_t &ac, timo_params ¶ms)
• ∼timoConfig ()
• mha_spec_t ∗ process (mha_spec_t ∗)
© 2005-2019 HörTech gGmbH, Oldenburg

5.374

timoConfig Class Reference

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 winF0
float xi_min
float gain_min
MHASignal::waveform_t alpha_const
MHASignal::waveform_t alpha_prev
MHASignal::waveform_t noisePow
MHASignal::waveform_t powSpec
MHASignal::waveform_t gamma_post
MHASignal::waveform_t xi_ml
MHASignal::spectrum_t lambda_ml_full
MHASignal::spectrum_t lambda_ml_ceps
MHASignal::waveform_t lambda_ml_smooth
MHASignal::waveform_t alpha_hat
MHASignal::waveform_t alpha_frame
MHASignal::spectrum_t lambda_ceps
MHASignal::waveform_t lambda_ceps_prev
MHASignal::spectrum_t log_lambda_spec
MHASignal::waveform_t lambda_spec
MHASignal::waveform_t xi_est
MHASignal::waveform_t gain_wiener
MHASignal::spectrum_t spec_out
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 GLR

© 2005-2019 HörTech gGmbH, Oldenburg

941

942

5.374.1

Constructor & Destructor Documentation

5.374.1.1

timoConfig::timoConfig (
algo_comm_t & ac,
timo_params & params )

5.374.1.2

timoConfig::∼timoConfig ( )

5.374.2

CONTENTS

Member Function Documentation

5.374.2.1 mha_spec_t ∗ timoConfig::process (
mha_spec_t ∗ noisyFrame )
5.374.2.2

5.374.3

void timoConfig::copy_AC (
timo_AC & tAC ) [private]
Member Data Documentation

5.374.3.1 algo_comm_t timoConfig::ac [private]
5.374.3.2 timo_params timoConfig::params [private]
5.374.3.3

unsigned int timoConfig::fftlen [private]

5.374.3.4 mha_fft_t timoConfig::mha_fft [private]
5.374.3.5

unsigned int timoConfig::nfreq [private]

5.374.3.6

unsigned int timoConfig::nchan [private]

5.374.3.7 timo_AC timoConfig::tAC [private]
5.374.3.8

float timoConfig::ola_powspec_scale [private]

5.374.3.9

float timoConfig::q_low [private]

5.374.3.10

float timoConfig::q_high [private]

5.374.3.11 MHASignal::waveform_t timoConfig::winF0 [private]
5.374.3.12

float timoConfig::xi_min [private]

5.374.3.13

float timoConfig::gain_min [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.374

timoConfig Class Reference

943

5.374.3.14 MHASignal::waveform_t timoConfig::alpha_const [private]
5.374.3.15 MHASignal::waveform_t timoConfig::alpha_prev [private]
5.374.3.16 MHASignal::waveform_t timoConfig::noisePow [private]
5.374.3.17 MHASignal::waveform_t timoConfig::powSpec [private]
5.374.3.18 MHASignal::waveform_t timoConfig::gamma_post [private]
5.374.3.19 MHASignal::waveform_t timoConfig::xi_ml [private]
5.374.3.20 MHASignal::spectrum_t timoConfig::lambda_ml_full [private]
5.374.3.21 MHASignal::spectrum_t timoConfig::lambda_ml_ceps [private]
5.374.3.22 MHASignal::waveform_t timoConfig::lambda_ml_smooth [private]
5.374.3.23 MHASignal::waveform_t timoConfig::alpha_hat [private]
5.374.3.24 MHASignal::waveform_t timoConfig::alpha_frame [private]
5.374.3.25 MHASignal::spectrum_t timoConfig::lambda_ceps [private]
5.374.3.26 MHASignal::waveform_t timoConfig::lambda_ceps_prev [private]
5.374.3.27 MHASignal::spectrum_t timoConfig::log_lambda_spec [private]
5.374.3.28 MHASignal::waveform_t timoConfig::lambda_spec [private]
5.374.3.29 MHASignal::waveform_t timoConfig::xi_est [private]
5.374.3.30 MHASignal::waveform_t timoConfig::gain_wiener [private]
5.374.3.31 MHASignal::spectrum_t timoConfig::spec_out [private]
5.374.3.32

double∗ timoConfig::max_val [private]

5.374.3.33

int∗ timoConfig::max_q [private]

5.374.3.34

int∗ timoConfig::pitch_set_first [private]

5.374.3.35

int∗ timoConfig::pitch_set_last [private]

5.374.3.36

float timoConfig::priorFact [private]

5.374.3.37

float timoConfig::xiOpt [private]

5.374.3.38

float timoConfig::logGLRFact [private]

5.374.3.39

float timoConfig::GLRexp [private]

5.374.3.40 MHASignal::waveform_t timoConfig::GLR [private]
The documentation for this class was generated from the following files:
• timoconfig.h
• timoconfig.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

944

5.375

CONTENTS

timoSmooth Class Reference

Inheritance diagram for timoSmooth:

MHAParser::base_t

MHAParser::parser_t

MHAPlugin::config_t
< timoConfig >

MHAPlugin::plugin_t
< timoConfig >

timoSmooth

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 ()
© 2005-2019 HörTech gGmbH, Oldenburg

5.375

timoSmooth Class Reference

945

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.375.1
5.375.1.1

Constructor & Destructor Documentation
timoSmooth::timoSmooth (
algo_comm_t & ac,
const std::string & chain_name,
const std::string & algo_name )

Constructs the beamforming plugin.
5.375.1.2
5.375.2

timoSmooth::∼timoSmooth ( )
Member Function Documentation

5.375.2.1 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.

© 2005-2019 HörTech gGmbH, Oldenburg

946

CONTENTS

Returns
Returns a pointer to the input signal structure, with a the signal modified by this plugin.

5.375.2.2

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
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. 730).
5.375.2.3

void timoSmooth::release (
void ) [inline], [virtual]

Reimplemented from MHAPlugin::plugin_t< timoConfig > (p. 731).
5.375.2.4

void timoSmooth::update_cfg (
void ) [private]

5.375.2.5

void timoSmooth::on_model_param_valuechanged ( ) [private]

5.375.3

Member Data Documentation

5.375.3.1 MHAParser::float_t timoSmooth::xi_min_db [private]
5.375.3.2 MHAParser::float_t timoSmooth::f0_low [private]
5.375.3.3 MHAParser::float_t timoSmooth::f0_high [private]
5.375.3.4 MHAParser::float_t timoSmooth::delta_pitch [private]
5.375.3.5 MHAParser::float_t timoSmooth::lambda_thresh [private]
5.375.3.6 MHAParser::float_t timoSmooth::alpha_pitch [private]
5.375.3.7 MHAParser::float_t timoSmooth::beta_const [private]

© 2005-2019 HörTech gGmbH, Oldenburg

5.376

us_t Class Reference

947

5.375.3.8 MHAParser::float_t timoSmooth::kappa_const [private]
5.375.3.9 MHAParser::float_t timoSmooth::gain_min_db [private]
5.375.3.10 MHAParser::vfloat_t timoSmooth::win_f0 [private]
5.375.3.11 MHAParser::vfloat_t timoSmooth::alpha_const_vals [private]
5.375.3.12 MHAParser::vfloat_t timoSmooth::alpha_const_limits_hz [private]
5.375.3.13 MHAParser::string_t timoSmooth::noisePow_name [private]
5.375.3.14 MHAParser::parser_t timoSmooth::spp [private]
5.375.3.15 MHAParser::float_t timoSmooth::prior_q [private]
5.375.3.16 MHAParser::float_t timoSmooth::xi_opt_db [private]
5.375.3.17 MHAEvents::patchbay_t timoSmooth::patchbay [private]
5.375.3.18

bool timoSmooth::prepared [private]

The documentation for this class was generated from the following files:
• timosmooth.h
• timoSmooth.cpp

5.376

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

© 2005-2019 HörTech gGmbH, Oldenburg

948

CONTENTS

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

Additional Inherited Members
5.376.1
5.376.1.1

Constructor & Destructor Documentation
us_t::us_t (
algo_comm_t iac,
std::string ,
std::string )

5.376.2

Member Function Documentation

5.376.2.1 mha_wave_t ∗ us_t::process (
mha_wave_t ∗ s )
5.376.2.2

void us_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< MHASignal::waveform_t > (p. 730).
5.376.2.3

void us_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< MHASignal::waveform_t > (p. 731).

5.376.3

Member Data Documentation

5.376.3.1 MHAParser::int_t us_t::ratio [private]
5.376.3.2 MHAFilter::iir_filter_t us_t::antialias [private]
The documentation for this class was generated from the following file:
• upsample.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.377

wave2spec_if_t Class Reference

5.377

wave2spec_if_t Class Reference

949

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 ∗∗)

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

© 2005-2019 HörTech gGmbH, Oldenburg

950

CONTENTS

Additional Inherited Members
5.377.1
5.377.1.1

5.377.2
5.377.2.1

Constructor & Destructor Documentation
wave2spec_if_t::wave2spec_if_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & ialg )
Member Function Documentation
void wave2spec_if_t::prepare (
mhaconfig_t & t ) [virtual]

Implements MHAPlugin::plugin_t< wave2spec_t > (p. 730).
5.377.2.2

void wave2spec_if_t::process (
mha_wave_t ∗ wave_in,
mha_spec_t ∗∗ sout )

5.377.2.3

void wave2spec_if_t::process (
mha_wave_t ∗ wave_in,
mha_wave_t ∗∗ sout )

5.377.2.4

void wave2spec_if_t::update ( ) [private]

5.377.3

Member Data Documentation

5.377.3.1 MHAEvents::patchbay_t wave2spec_if_t::patchbay [private]
5.377.3.2 MHAParser::int_t wave2spec_if_t::nfft [private]
5.377.3.3 MHAParser::int_t wave2spec_if_t::nwnd [private]
5.377.3.4 MHAParser::float_t wave2spec_if_t::wndpos [private]
5.377.3.5 windowselector_t wave2spec_if_t::window_config [private]
5.377.3.6 MHAParser::bool_t wave2spec_if_t::return_wave [private]
5.377.3.7

std::string wave2spec_if_t::algo [private]

The documentation for this class was generated from the following file:
• wave2spec.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.378

wave2spec_t Class Reference

5.378

wave2spec_t Class Reference

951

Inheritance diagram for wave2spec_t:

mha_spec_t

MHASignal::spectrum_t

MHA_AC::spectrum_t

wave2spec_t

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
© 2005-2019 HörTech gGmbH, Oldenburg

952

CONTENTS

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.378.1

Constructor & Destructor Documentation

5.378.1.1

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 )

5.378.1.2

wave2spec_t::∼wave2spec_t ( )

5.378.2

Member Function Documentation

5.378.2.1 mha_spec_t ∗ wave2spec_t::process (
mha_wave_t ∗ wave_in )
5.378.2.2

5.378.3

void wave2spec_t::calc_pre_wnd (
MHASignal::waveform_t & dest,
const MHASignal::waveform_t & src ) [private]
Member Data Documentation

5.378.3.1

unsigned int wave2spec_t::nwnd [private]

5.378.3.2

unsigned int wave2spec_t::nwndshift [private]

5.378.3.3 mha_fft_t wave2spec_t::ft [private]
FFT class.
5.378.3.4

unsigned int wave2spec_t::npad1 [private]

length of zero padding before window
© 2005-2019 HörTech gGmbH, Oldenburg

5.379

wavrec_t Class Reference

5.378.3.5

953

unsigned int wave2spec_t::npad2 [private]

length of zero padding after window
5.378.3.6 MHAWindow::base_t wave2spec_t::window [private]
5.378.3.7 MHASignal::waveform_t wave2spec_t::calc_in [private]
5.378.3.8 MHASignal::waveform_t wave2spec_t::in_buf [private]
5.378.3.9 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

5.379

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

© 2005-2019 HörTech gGmbH, Oldenburg

954

CONTENTS

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

Additional Inherited Members
5.379.1
5.379.1.1

5.379.2

Constructor & Destructor Documentation
wavrec_t::wavrec_t (
const algo_comm_t & iac,
const std::string & ,
const std::string & algo_name )
Member Function Documentation

5.379.2.1 mha_wave_t ∗ wavrec_t::process (
mha_wave_t ∗ s )
5.379.2.2

void wavrec_t::prepare (
mhaconfig_t & cf ) [virtual]

Implements MHAPlugin::plugin_t< wavwriter_t > (p. 730).
5.379.2.3

void wavrec_t::release (
void ) [virtual]

Reimplemented from MHAPlugin::plugin_t< wavwriter_t > (p. 731).
© 2005-2019 HörTech gGmbH, Oldenburg

5.380

wavwriter_t Class Reference

5.379.2.4

5.379.3

955

void wavrec_t::start_new_session ( ) [private]

Member Data Documentation

5.379.3.1 MHAParser::bool_t wavrec_t::record [private]

5.379.3.2 MHAParser::int_t wavrec_t::fifolen [private]

5.379.3.3 MHAParser::int_t wavrec_t::minwrite [private]

5.379.3.4 MHAParser::string_t wavrec_t::prefix [private]

5.379.3.5 MHAParser::bool_t wavrec_t::use_date [private]

5.379.3.6 MHAEvents::patchbay_t wavrec_t::patchbay [private]
The documentation for this class was generated from the following file:

• wavrec.cpp

5.380

wavwriter_t Class Reference

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_)
© 2005-2019 HörTech gGmbH, Oldenburg

956

CONTENTS

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.380.1

Constructor & Destructor Documentation

5.380.1.1

wavwriter_t::wavwriter_t (
bool active,
const mhaconfig_t & cf,
unsigned int fifosize,
unsigned int minwrite,
const std::string & prefix,
bool use_date )

5.380.1.2

wavwriter_t::∼wavwriter_t ( )

5.380.2

Member Function Documentation

5.380.2.1

void wavwriter_t::process (
mha_wave_t ∗ s )

5.380.2.2

static void∗ wavwriter_t::write_thread (
void ∗ this_ ) [inline], [static], [private]

5.380.2.3

void wavwriter_t::write_thread ( ) [private]

5.380.3

Member Data Documentation

5.380.3.1

bool wavwriter_t::close_session [private]

5.380.3.2

bool wavwriter_t::act_ [private]

5.380.3.3 mhaconfig_t wavwriter_t::cf_ [private]
5.380.3.4

SNDFILE∗ wavwriter_t::sf [private]

5.380.3.5 mha_fifo_t wavwriter_t::fifo [private]
5.380.3.6

unsigned int wavwriter_t::minw_ [private]

5.380.3.7

pthread_t wavwriter_t::writethread [private]

5.380.3.8

float∗ wavwriter_t::data [private]

The documentation for this class was generated from the following file:
• wavrec.cpp
© 2005-2019 HörTech gGmbH, Oldenburg

5.381

windowselector_t Class Reference

5.381

windowselector_t Class Reference

957

A combination of mha parser variables to describe an overalapadd analysis window.

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. 958)

• 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
© 2005-2019 HörTech gGmbH, Oldenburg

958

5.381.1

CONTENTS

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. 835)
when needed.

5.381.2
5.381.2.1

Constructor & Destructor Documentation
windowselector_t::windowselector_t (
const std::string & default_type )

constructor creates the mha parser variables that describe an overlapadd analysis window.
Parameters
default_type

5.381.2.2

name of the default analysis window type. Must be one of: "rect", "bartlett",
"hanning", "hamming", "blackman"

windowselector_t::∼windowselector_t ( )

destructor frees window data that were allocated

5.381.3
5.381.3.1

Member Function Documentation
const MHAWindow::base_t & windowselector_t::get_window_data (
unsigned length )

re-computes the window if required.
Parameters
length

5.381.3.2

the desired window length in samples return the window's samples as a constref to
MHAWindow::base_t (p. 835) instance. The referenced instance lives until the
window parameters are changed, or this windowselector_t (p. 957) instance is
destroyed.

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.

© 2005-2019 HörTech gGmbH, Oldenburg

5.381

windowselector_t Class Reference

959

Parameters
p

The configuration parser where to insert the window parameters. E.g. the plugin
wave2spec's interface class.

5.381.3.3

void windowselector_t::invalidate_window_data ( ) [private]

invalidates any allocated window samples.
5.381.3.4

void windowselector_t::update_parser ( ) [private]

invoked when a parser parameter changes.
Calls invalidate_window_data() (p. 959) and emits the updated event.

5.381.4

Member Data Documentation

5.381.4.1 MHAEvents::emitter_t windowselector_t::updated
A collector event that fires when any of the window parameters managed here is written to.
5.381.4.2 MHAWindow::base_t∗ windowselector_t::wnd [private]
Storage for the window data returned by get_window_data() (p. 958)
5.381.4.3 MHAParser::kw_t windowselector_t::wndtype [private]
parser variable for window type
5.381.4.4 MHAParser::float_t windowselector_t::wndexp [private]
parser variable for window exponent
5.381.4.5 MHAParser::vfloat_t windowselector_t::userwnd [private]
parser variable for user window samples to use
5.381.4.6 MHAEvents::patchbay_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-2019 HörTech gGmbH, Oldenburg

960

6
6.1

CONTENTS

File Documentation
ac2lsl.cpp File Reference

Classes
• struct ac2lsl::type_info
• class ac2lsl::save_var_base_t
Interface for ac to lsl bridge variable.

• class ac2lsl::save_var_t< T >
Implementation for all ac to lsl bridges except complex types.

• class ac2lsl::save_var_t< mha_complex_t >
Template specialization of the ac2lsl ( p. 78) bridge to take care of complex numbers.

• class ac2lsl::cfg_t
Runtime configuration class of the ac2lsl ( p. 78) plugin.

• class ac2lsl::ac2lsl_t
Plugin class of ac2lsl ( p. 78).

Namespaces
• ac2lsl
All types for the ac2lsl ( p. 78) plugins live in this namespace.

Variables
• const std::map< int, type_info > ac2lsl::types

6.2

ac2osc.cpp File Reference

Classes
• class ac2osc_t
Plugin class of the ac2osc plugin.

6.3

ac2wave.cpp File Reference

Classes
• class ac2wave_t
• class ac2wave_if_t
© 2005-2019 HörTech gGmbH, Oldenburg

6.4

ac_monitor_type.cpp File Reference

6.4

ac_monitor_type.cpp File Reference

6.5

ac_monitor_type.hh File Reference

961

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.6

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.6.1

Macro Definition Documentation

6.6.1.1

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, &acConcat_wave::update←_cfg)

6.6.1.2

#define INSERT_PATCH(
var ) insert_member(var); PATCH_VAR(var)

6.7

acConcat_wave.h File Reference

Classes
• class acConcat_wave_config
• class acConcat_wave

6.8

acmon.cpp File Reference

Classes
• class acmon::acmon_t
© 2005-2019 HörTech gGmbH, Oldenburg

962

CONTENTS

Namespaces
• acmon
Namespace for displaying ac variables as parser monitors.

6.9

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.9.1

Macro Definition Documentation

6.9.1.1

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, &acPooling_wave::update←_cfg)

6.9.1.2

#define INSERT_PATCH(
var ) insert_member(var); PATCH_VAR(var)

6.10

acPooling_wave.h File Reference

Classes
• class acPooling_wave_config
• class acPooling_wave

6.11

acsave.cpp File Reference

Classes
•
•
•
•

class acsave::save_var_t
class acsave::cfg_t
class acsave::acsave_t
struct acsave::mat4head_t

Namespaces
• acsave
© 2005-2019 HörTech gGmbH, Oldenburg

6.12

acSteer.cpp File Reference

963

Macros
•
•
•
•
•
•

#define ACSAVE_FMT_TXT 0
#define ACSAVE_SFMT_TXT "txt"
#define ACSAVE_FMT_MAT4 1
#define ACSAVE_SFMT_MAT4 "mat4"
#define ACSAVE_FMT_M 2
#define ACSAVE_SFMT_M "m"

6.11.1

Macro Definition Documentation

6.11.1.1

#define ACSAVE_FMT_TXT 0

6.11.1.2

#define ACSAVE_SFMT_TXT "txt"

6.11.1.3

#define ACSAVE_FMT_MAT4 1

6.11.1.4

#define ACSAVE_SFMT_MAT4 "mat4"

6.11.1.5

#define ACSAVE_FMT_M 2

6.11.1.6

#define ACSAVE_SFMT_M "m"

6.12

acSteer.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this,
::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)

6.12.1

&acSteer←-

Macro Definition Documentation

6.12.1.1

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, &acSteer::update_cfg)

6.12.1.2

#define INSERT_PATCH(
var ) insert_member(var); PATCH_VAR(var)

6.13

acSteer.h File Reference

Classes
• class acSteer_config
• class acSteer
© 2005-2019 HörTech gGmbH, Oldenburg

964

6.14

CONTENTS

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.14.1

Macro Definition Documentation

6.14.1.1

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, &acTransform_wave←::update_cfg)

6.14.1.2

#define INSERT_PATCH(
var ) insert_member(var); PATCH_VAR(var)

6.15

acTransform_wave.h File Reference

Classes
• class acTransform_wave_config
• class acTransform_wave

6.16

addsndfile.cpp File Reference

Classes
• class addsndfile::waveform_proxy_t
Class helps to specify which instance of MHASignal_waveform_t parent instance is meant in
resampled_soundfile_t ( p. 184).

• class addsndfile::resampled_soundfile_t
Reads sound from file and resamples it if necessary and wanted.

• class addsndfile::sndfile_t
• class addsndfile::level_adapt_t
• class addsndfile::addsndfile_if_t

Namespaces
• addsndfile
© 2005-2019 HörTech gGmbH, Oldenburg

6.17

adm.cpp File Reference

965

Macros
• #define DEBUG(x) std::cerr << __FILE__ << ":" << __LINE__ << " " #x "=" << x <<
std::endl

Typedefs
• typedef MHAPlugin::config_t< level_adapt_t > addsndfile::level_adaptor
• typedef MHAPlugin::plugin_t< sndfile_t > addsndfile::wave_reader

Enumerations

Functions
• static unsigned addsndfile::resampled_num_frames (unsigned num_source_frames,
float source_rate, float target_rate, addsndfile_resampling_mode_t resampling_mode)

6.16.1

Macro Definition Documentation

6.16.1.1

6.17

#define DEBUG(
x ) std::cerr << __FILE__ << ":" << __LINE__ << " " #x "=" << x <<
std::endl

adm.cpp File Reference

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)
© 2005-2019 HörTech gGmbH, Oldenburg

966

6.17.1

CONTENTS

Function Documentation

6.17.1.1 MHASignal::waveform_t∗ adm_fir_lp (
unsigned int fs,
unsigned f_pass,
unsigned int f_stop,
unsigned int order )
6.17.1.2 MHASignal::waveform_t∗ adm_fir_decomb (
unsigned int fs,
float dist_m,
unsigned int order )

6.18

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.

Namespaces
• ADM

Functions
• static double ADM::subsampledelay_coeff (double samples, double f_design, double
fs=1.0)
compute IIR coefficient for subsample delay

Variables
•
•
•
•

const double ADM::PI = 3.14159265358979312
const double ADM::C = 340
const double ADM::DELAY_FREQ = 2000
const double ADM::START_BETA = 0.5
© 2005-2019 HörTech gGmbH, Oldenburg

6.19

altplugs.cpp File Reference

6.19

altplugs.cpp File Reference

967

Classes
• class mhaplug_cfg_t
• class altplugs_t

Macros
• #define MHAPLUGIN_OVERLOAD_OUTDOMAIN

6.19.1

Macro Definition Documentation

6.19.1.1

6.20

#define MHAPLUGIN_OVERLOAD_OUTDOMAIN

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)

6.20.1

Function Documentation

6.20.1.1

std::string strdom (
mha_domain_t d )

6.20.1.2

void print_ac (
MHAKernel::algo_comm_class_t & ac,
std::string txt )

6.20.1.3

int main (
int argc,
char ∗∗ argv )

6.21

analysispath.cpp File Reference

Classes
• class analysepath_t
• class plug_t
• class analysispath_if_t
© 2005-2019 HörTech gGmbH, Oldenburg

968

CONTENTS

Functions
• static void ∗ thread_start (void ∗instance)

6.21.1

Function Documentation

6.21.1.1

static void∗ thread_start (
void ∗ instance ) [static]

6.22

auditory_profile.cpp File Reference

6.23

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.24

browsemhaplugins.cpp File Reference

Macros
• #define DEBUG(x) std::cerr << __FILE__ << ":" << __LINE__ << " " << #x<<"="< dc_simple::DC
• typedef MHAPlugin::config_t< level_smoother_t > dc_simple::LEVEL

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

6.37

delay.cpp File Reference

Classes
• class delay::interface_t

Namespaces
• delay
© 2005-2019 HörTech gGmbH, Oldenburg

974

6.38

CONTENTS

delaysum.cpp File Reference

Classes
• class delaysum::delaysum_t
Runtime configuration of the delaysum plugin.

• class delaysum::delaysum_if_t
Interface class for the delaysum plugin.

Namespaces
• delaysum
This namespace contains the delaysum plugin.

6.39

doasvm_classification.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this, &doasvm_←classification::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)

6.39.1

Macro Definition Documentation

6.39.1.1

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, &doasvm_classification←::update_cfg)

6.39.1.2

#define INSERT_PATCH(
var ) insert_member(var); PATCH_VAR(var)

6.40

doasvm_classification.h File Reference

Classes
• class doasvm_classification_config
• class doasvm_classification

6.41

doasvm_feature_extraction.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this, &doasvm_←feature_extraction::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)
© 2005-2019 HörTech gGmbH, Oldenburg

6.42

doasvm_feature_extraction.h File Reference

6.41.1

975

Macro Definition Documentation

6.41.1.1

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, &doasvm_feature_←extraction::update_cfg)

6.41.1.2

#define INSERT_PATCH(
var ) insert_member(var); PATCH_VAR(var)

6.42

doasvm_feature_extraction.h File Reference

Classes
• class doasvm_feature_extraction_config
• class doasvm_feature_extraction

6.43

doc_appendix.h File Reference

6.44

doc_examples.h File Reference

6.45

doc_frameworks.h File Reference

6.46

doc_general.h File Reference

6.47

doc_kernel.h File Reference

6.48

doc_matlab.h File Reference

6.49

doc_mhamain.h File Reference

6.50

doc_parser.h File Reference

6.51

doc_plugif.cpp File Reference

6.52

doc_plugins.h File Reference

6.53

doc_system.h File Reference

6.54

doc_toolbox.h File Reference

6.55

downsample.cpp File Reference

Classes
• class ds_t
© 2005-2019 HörTech gGmbH, Oldenburg

976

6.56

CONTENTS

droptect.cpp File Reference

Classes
• class droptect_t
Detect dropouts in a signal with a constant spectrum.

6.57

example1.cpp File Reference

Classes
• class example1_t
This C++ class implements the simplest example plugin for the step-by-step tutorial.

6.58

example2.cpp File Reference

Classes
• class example2_t
This C++ class implements the second example plugin for the step-by-step tutorial.

6.59

example3.cpp File Reference

Classes
• class example3_t
A Plugin class using the openMHA Event mechanism.

6.60

example4.cpp File Reference

Classes
• class example4_t
A Plugin class using the spectral signal.

6.61

example5.cpp File Reference

Classes
• class example5_t
• class plugin_interface_t
© 2005-2019 HörTech gGmbH, Oldenburg

6.62

example6.cpp File Reference

Macros
• #define __declspec(p)

6.61.1

Macro Definition Documentation

6.61.1.1

6.62

#define __declspec(
p )

example6.cpp File Reference

Classes
• class cfg_t
• class example6_t

Macros
• #define __declspec(p)

6.62.1

Macro Definition Documentation

6.62.1.1

6.63

#define __declspec(
p )

fader_spec.cpp File Reference

Classes
• class spec_fader_t
• class fader_if_t

6.64

fader_wave.cpp File Reference

Classes
• class fader_wave::level_adapt_t
• class fader_wave::fader_wave_if_t

Namespaces
• fader_wave
© 2005-2019 HörTech gGmbH, Oldenburg

977

978

CONTENTS

Macros
• #define DEBUG(x) std::cerr << __FILE__ << ":" << __LINE__ << " " #x "=" << x <<
std::endl

Typedefs
• typedef MHAPlugin::plugin_t< level_adapt_t > fader_wave::level_adaptor

6.64.1

Macro Definition Documentation

6.64.1.1

6.65

#define DEBUG(
x ) std::cerr << __FILE__ << ":" << __LINE__ << " " #x "=" << x <<
std::endl

fftfbpow.cpp File Reference

Classes
• class fftfbpow::fftfbpow_t
Run time configuration for the fftfbpow plugin.

• class fftfbpow::fftfbpow_interface_t
Interface class for fftfbpow plugin.

Namespaces
• fftfbpow
Namespace for the fftfbpow plugin.

6.66

fftfilterbank.cpp File Reference

Classes
• class fftfilterbank::fftfb_plug_t
• class fftfilterbank::fftfb_interface_t

Namespaces
• fftfilterbank
© 2005-2019 HörTech gGmbH, Oldenburg

6.67

fshift.cpp File Reference

6.67

fshift.cpp File Reference

6.68

fshift.hh File Reference

979

Classes
• class fshift::fshift_config_t
fshift runtime config class

• class fshift::fshift_t
fshift plugin interface class

Namespaces
• fshift
All types for the fshift plugin live in this namespace.

Functions
• int fshift::fft_find_bin (mha_real_t frequency, unsigned fftlen, mha_real_t srate)
Finds bin number of FFT bin nearest to the given frequency.

6.69

fshift_hilbert.cpp File Reference

Classes
• class fshift_hilbert::hilbert_shifter_t
• class fshift_hilbert::frequency_translator_t

Namespaces
• fshift_hilbert
All types for the hilbert frequency shifter live in this namespace.

6.70

gain.cpp File Reference

Classes
• class gain::scaler_t
• class gain::gain_if_t
© 2005-2019 HörTech gGmbH, Oldenburg

980

CONTENTS

Namespaces
• gain

6.71

gaintable.cpp File Reference

Functions
• std::vector< mha_real_t > convert_f2logf (const std::vector< mha_real_t > &vF)
• bool isempty (const std::vector< std::vector< mha_real_t > > &arg)

6.71.1

Function Documentation

6.71.1.1

std::vector convert_f2logf (
const std::vector< mha_real_t > & vF )

6.71.1.2

bool isempty (
const std::vector< std::vector< mha_real_t > > & arg )

6.72

gaintable.h File Reference

Classes
• class DynComp::gaintable_t
Gain table class.

Namespaces
• DynComp
dynamic compression related classes and functions

Functions
• 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.

• 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.
© 2005-2019 HörTech gGmbH, Oldenburg

6.73

generatemhaplugindoc.cpp File Reference

6.73

generatemhaplugindoc.cpp File Reference

981

Classes
• class latex_doc_t
Class to access the information stored in the plugin source code's MHAPLUGIN_DOCUME←NTATION macro.

Functions
• std::string conv2latex (std::string s, bool iscolored=false)
Escapes various character sequences in texts not intended to be processed by LaTeX for
processing by LaTeX.

• static void print_plugin_references (const std::set< std::string > &all_categories, std←::map< std::string, std::vector< std::string > > main_category_plugins, std::map< std←::string, std::vector< std::string > > additional_category_plugins, std::ofstream &ofile,
const std::string &category_macro)
Function prints an overview of all categories and their associated plugins into the document.

• std::vector< std::string > create_latex_doc (std::map< std::string, std::string > &doc,
const std::string &plugname, const std::string &plugin_macro)
Loads the plugin, creates the latex documentation for the plugin, and adds the latex documentation for this plugin to the plugin's main category entry in doc.

• int main (int argc, char ∗∗argv)

6.73.1

Function Documentation

6.73.1.1

std::string conv2latex (
std::string s,
bool iscolored = false )

Escapes various character sequences in texts not intended to be processed by LaTeX for processing by LaTeX.
Focus is on correct display of symbols contained in these texts. E.g. the help texts of MHA
configuration variables can be processed by this function. The contents of the MHAPLUGIN←_DOCUMENTATION is already in LaTeX format and should not be processed by this function.
Returns
A copy of s with various symbols escaped for LaTeX processing
Parameters
s

Text not ready for LaTeX

iscolored

if true, the complete returned text is surrounded with "\\color{monitorcolor}{" and "}"

© 2005-2019 HörTech gGmbH, Oldenburg

982

6.73.1.2

CONTENTS

static void print_plugin_references (
const std::set< std::string > & all_categories,
std::map< std::string, std::vector< std::string > > main_category_plugins,
std::map< std::string, std::vector< std::string > > additional_category_plugins,
std::ofstream & ofile,
const std::string & category_macro ) [static]

Function prints an overview of all categories and their associated plugins into the document.
Parameters
all_categories

A sorted container with all category names

main_category_plugins

map of main categories to plugin names

additional_category_plugins

map of tags to plugin names

ofile

Latex document is produced by writing output to this stream

6.73.1.3

std::vector create_latex_doc (
std::map< std::string, std::string > & doc,
const std::string & plugname,
const std::string & plugin_macro )

Loads the plugin, creates the latex documentation for the plugin, and adds the latex documentation for this plugin to the plugin's main category entry in doc.
Returns
the vector of all categories.
Parameters
doc

plugname
plugin_macro

6.73.1.4

map of main categories to a string containint the documentation of all
plugins in that categories. The documentation of the current plugin will be
appended to the existing documentation of its main category. Will be
created if non-existant.
Name of the MHA plugin to process
name of the LaTeX section macro that documents a single plugin (e.g.
"section", "subsection", "subsubsection", ...)

int main (
int argc,
char ∗∗ argv )

6.74

gtfb_analyzer.cpp File Reference

Gammatone Filterbank Analyzer Plugin.
© 2005-2019 HörTech gGmbH, Oldenburg

6.74

gtfb_analyzer.cpp File Reference

983

Classes
• struct gtfb_analyzer::gtfb_analyzer_cfg_t
Configuration for Gammatone Filterbank Analyzer.

• class gtfb_analyzer::gtfb_analyzer_t
Gammatone Filterbank Analyzer Plugin.

Namespaces
• gtfb_analyzer

Functions
• static const mha_complex_t & filter_complex (const mha_complex_t &input, const
mha_complex_t &coeff, mha_complex_t ∗states, unsigned orders)
Filters a complex input sample with the given filter coefficient.

• static const mha_complex_t & filter_real (mha_real_t input, mha_complex_t &tmp←_complex, const mha_complex_t &coeff, mha_complex_t ∗states, unsigned orders,
const mha_complex_t &normphase)
Filters a real input sample with the given filter coefficient and applies the given normalization
with phase correction.

6.74.1

Detailed Description

Gammatone Filterbank Analyzer Plugin.

6.74.2

Function Documentation

6.74.2.1

static const mha_complex_t& filter_complex (
const mha_complex_t & input,
const mha_complex_t & coeff,
mha_complex_t ∗ states,
unsigned orders ) [inline], [static]

Filters a complex input sample with the given filter coefficient.
No normalization takes place. The implementation is tail-recursive and to exploit compiler optimization.
Parameters
input

The complex input sample

coeff

The complex filter coefficient

states

Pointer to the array of complex filter states.

orders

The filter order

© 2005-2019 HörTech gGmbH, Oldenburg

984

CONTENTS

Returns
A const ref to the filtered sample

6.74.2.2

static const mha_complex_t& filter_real (
mha_real_t input,
mha_complex_t & tmp_complex,
const mha_complex_t & coeff,
mha_complex_t ∗ states,
unsigned orders,
const mha_complex_t & normphase ) [inline], [static]

Filters a real input sample with the given filter coefficient and applies the given normalization
with phase correction.
Parameters
input

The real input sample

tmp_complex

A reference to a mha_complex_t (p. 431) used for intermediate results. No
assumptions should be made about the state of tmp_complex after the
return of filter_real. This is an optimization to reduce the number of dtor/ctor
calls of mha_complex_t (p. 431)

coeff

The complex filter coefficient

states

Pointer to the array of complex filter states.

orders
normphase

The filter order
Normalization coefficient including the phase correction

Returns
A const ref to the filtered sample

6.75

hann.cpp File Reference

Macros
• #define PI 3.14159265358979323846

Functions
• float ∗ hannf (const unsigned int N)
• double ∗ hann (const unsigned int N)
© 2005-2019 HörTech gGmbH, Oldenburg

6.76

hann.h File Reference

6.75.1

Macro Definition Documentation

6.75.1.1
6.75.2

#define PI 3.14159265358979323846
Function Documentation

6.75.2.1

float∗ hannf (
const unsigned int N )

6.75.2.2

6.76

double∗ hann (
const unsigned int N )

hann.h File Reference

Functions
• float ∗ hannf (const unsigned int N)
• double ∗ hann (const unsigned int N)

6.76.1

Function Documentation

6.76.1.1

float∗ hannf (
const unsigned int N )

6.76.1.2

6.77

double∗ hann (
const unsigned int N )

identity.cpp File Reference

Classes
• class identity_t

6.78

ifftshift.cpp File Reference

Functions
• void ifftshift (mha_wave_t ∗spec)
© 2005-2019 HörTech gGmbH, Oldenburg

985

986

6.78.1

CONTENTS

Function Documentation

6.78.1.1

void ifftshift (
mha_wave_t ∗ spec )

6.79

ifftshift.h File Reference

Functions
• void ifftshift (mha_wave_t ∗spec)

6.79.1

Function Documentation

6.79.1.1

void ifftshift (
mha_wave_t ∗ spec )

6.80

iirfilter.cpp File Reference

Classes
• class iirfilter_t

6.81

lpc.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this, &lpc::update_←cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)

Functions
• void Levinson2 (unsigned int P, const std::vector< mha_real_t > &R, std::vector< mha←_real_t > &A)
© 2005-2019 HörTech gGmbH, Oldenburg

6.82

lpc.h File Reference

6.81.1

987

Macro Definition Documentation

6.81.1.1

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, &lpc::update_cfg)

6.81.1.2

#define INSERT_PATCH(
var ) insert_member(var); PATCH_VAR(var)

6.81.2

Function Documentation

6.81.2.1

6.82

void Levinson2 (
unsigned int P,
const std::vector< mha_real_t > & R,
std::vector< mha_real_t > & A )

lpc.h File Reference

Classes
• class lpc_config
• class lpc

6.83

lpc_bl_predictor.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this,
predictor::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)

6.83.1

&lpc_bl_←-

Macro Definition Documentation

6.83.1.1

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, &lpc_bl_predictor←::update_cfg)

6.83.1.2

#define INSERT_PATCH(
var ) insert_member(var); PATCH_VAR(var)

6.84

lpc_bl_predictor.h File Reference

Classes
• class lpc_bl_predictor_config
• class lpc_bl_predictor
© 2005-2019 HörTech gGmbH, Oldenburg

988

CONTENTS

Macros
• #define EPSILON 1e-10

6.84.1

Macro Definition Documentation

6.84.1.1

6.85

#define EPSILON 1e-10

lpc_burg-lattice.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this, &lpc_burglattice←::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)

6.85.1

Macro Definition Documentation

6.85.1.1

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, &lpc_burglattice::update←_cfg)

6.85.1.2

#define INSERT_PATCH(
var ) insert_member(var); PATCH_VAR(var)

6.86

lpc_burg-lattice.h File Reference

Classes
• class lpc_burglattice_config
• class lpc_burglattice

Macros
• #define EPSILON 1e-10

6.86.1

Macro Definition Documentation

6.86.1.1

6.87

#define EPSILON 1e-10

matrixmixer.cpp File Reference

Classes
• class matrixmixer::cfg_t
• class matrixmixer::matmix_t
© 2005-2019 HörTech gGmbH, Oldenburg

6.88

mha.cpp File Reference

989

Namespaces
• matrixmixer

6.88

mha.cpp File Reference

Functions
• int mhamain (int argc, char ∗argv[ ])
• int main (int argc, char ∗argv[ ])

6.88.1

Function Documentation

6.88.1.1

int mhamain (
int argc,
char ∗ argv[ ] )

6.88.1.2

int main (
int argc,
char ∗ argv[ ] )

6.89

mha.hh File Reference

common types for MHA kernel, MHA framework applications and external plugins

Classes
• struct mha_complex_t
Type for complex floating point values.

• struct mha_complex_test_array_t
Several places in MHA rely on the fact that you can cast an array of mha_complex_t ( p. 431)
c[] to an array of mha_real_t r[] with r[0] == c[0].re r[1] == c[0].im r[2] == c[1].re ...

• struct mha_real_test_array_t
• struct mha_direction_t
Channel source direction structure.

• struct mha_channel_info_t
Channel information structure.

• 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. 504)).
© 2005-2019 HörTech gGmbH, Oldenburg

990

CONTENTS

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

• struct mhaconfig_t
MHA prepare configuration structure.

• struct comm_var_t
Algorithm communication variable structure.

• struct algo_comm_t
A reference handle for algorithm communication variables.

Macros
• #define MHA_CALLBACK_TEST(x)
Test macro to compare function type definition and declaration.

•
•
•
•

#define MHA_CALLBACK_TEST_PREFIX(prefix, x)
#define MHA_XSTRF(x) MHA_STRF( x )
#define MHA_STRF(x) #x
#define MHA_VERSION_MAJOR 4
Major version number of MHA.

• #define MHA_VERSION_MINOR 8
Minor version number of MHA.

• #define MHA_VERSION_RELEASE 0
Release number of MHA.

• #define MHA_VERSION_BUILD 0
Build number of MHA (currently unused)

• #define MHA_STRUCT_SIZEMATCH (unsigned int)((sizeof(mha_real_t)==4)+2∗(sizeof(mha←_complex_t)==8)+4∗(sizeof(mha_wave_t)==8+2∗sizeof(void∗))+8∗(sizeof(mha_spec←_t)==8+2∗sizeof(void∗))+16∗(sizeof(mhaconfig_t)==24))
Test number for structure sizes.

• #define MHA_VERSION (unsigned int)((MHA_STRUCT_SIZEMATCH | (MHA_VERS←ION_RELEASE << 8) | (MHA_VERSION_MINOR << 16) | (MHA_VERSION_MAJOR
<< 24)))
Full version number of MHA kernel.

• #define MHA_VERSION_STRING MHA_XSTRF(MHA_VERSION_MAJOR) "." MHA_←XSTRF(MHA_VERSION_MINOR)
Version string of MHA kernel (major.minor)

• #define MHA_RELEASE_VERSION_STRING MHA_XSTRF(MHA_VERSION_MAJOR)
"." MHA_XSTRF(MHA_VERSION_MINOR) "." MHA_XSTRF(MHA_VERSION_RELE←ASE)
Version string of MHA kernel (major.minor.release)

•
•
•
•
•
•

#define MHA_WAVEFORM 0
#define MHA_SPECTRUM 1
#define MHA_DOMAIN_MAX 2
#define MHA_DOMAIN_UNKNOWN MHA_DOMAIN_MAX
#define MHA_AC_UNKNOWN 0
#define MHA_AC_CHAR 1
© 2005-2019 HörTech gGmbH, Oldenburg

6.89
•
•
•
•
•
•
•

mha.hh File Reference

991

#define MHA_AC_INT 2
#define MHA_AC_MHAREAL 3
#define MHA_AC_FLOAT 4
#define MHA_AC_DOUBLE 5
#define MHA_AC_MHACOMPLEX 6
#define MHA_AC_VEC_FLOAT 51
#define MHA_AC_USER 1000

Typedefs
• typedef unsigned int mha_domain_t
• typedef float mha_real_t
openMHA type for real numbers

• typedef void ∗ mha_fft_t
Handle for an FFT object.

• typedef struct algo_comm_t algo_comm_t
• typedef unsigned int(∗ MHAGetVersion_t) (void)
• typedef int(∗ MHAInit_t) (algo_comm_t algo_comm, const char ∗chain, const char ∗algo,
void ∗∗h)
• typedef int(∗ MHAPrepare_t) (void ∗h, mhaconfig_t ∗cfg)
• typedef int(∗ MHARelease_t) (void ∗h)
• typedef void(∗ MHADestroy_t) (void ∗h)
• typedef int(∗ MHASet_t) (void ∗h, const char ∗cmd, char ∗retval, unsigned int len)
• typedef const char ∗(∗ MHAStrError_t) (void ∗h, int err)
• typedef int(∗ MHAProc_wave2wave_t) (void ∗h, mha_wave_t ∗sIn, mha_wave_t ∗∗s←Out)
• typedef int(∗ MHAProc_wave2spec_t) (void ∗h, mha_wave_t ∗sIn, mha_spec_t ∗∗s←Out)
• typedef int(∗ MHAProc_spec2wave_t) (void ∗h, mha_spec_t ∗sIn, mha_wave_t ∗∗s←Out)
• typedef int(∗ MHAProc_spec2spec_t) (void ∗h, mha_spec_t ∗sIn, mha_spec_t ∗∗sOut)
• typedef const char ∗(∗ MHAPluginDocumentation_t) (void)
• typedef const char ∗(∗ MHAPluginCategory_t) (void)

6.89.1

Detailed Description

common types for MHA kernel, MHA framework applications and external plugins

6.89.2
6.89.2.1

Macro Definition Documentation
#define MHA_CALLBACK_TEST(
x )

Test macro to compare function type definition and declaration.
© 2005-2019 HörTech gGmbH, Oldenburg

992

6.89.2.2

#define MHA_CALLBACK_TEST_PREFIX(
prefix,
x )

6.89.2.3

#define MHA_XSTRF(
x ) MHA_STRF( x )

6.89.2.4

#define MHA_STRF(
x ) #x

6.89.2.5

#define MHA_VERSION_MAJOR 4

CONTENTS

Major version number of MHA.
6.89.2.6

#define MHA_VERSION_MINOR 8

Minor version number of MHA.
6.89.2.7

#define MHA_VERSION_RELEASE 0

Release number of MHA.
6.89.2.8

#define MHA_VERSION_BUILD 0

Build number of MHA (currently unused)
6.89.2.9

#define MHA_STRUCT_SIZEMATCH (unsigned int)((sizeof(mha_real_t)==4)+2∗(sizeof(mha←_complex_t)==8)+4∗(sizeof(mha_wave_t)==8+2∗sizeof(void∗))+8∗(sizeof(mha_spec_←t)==8+2∗sizeof(void∗))+16∗(sizeof(mhaconfig_t)==24))

Test number for structure sizes.
6.89.2.10

#define MHA_VERSION (unsigned int)((MHA_STRUCT_SIZEMATCH |
(MHA_VERSION_RELEASE << 8) | (MHA_VERSION_MINOR << 16) |
(MHA_VERSION_MAJOR << 24)))

Full version number of MHA kernel.
6.89.2.11

#define MHA_VERSION_STRING MHA_XSTRF(MHA_VERSION_MAJOR) "."
MHA_XSTRF(MHA_VERSION_MINOR)

Version string of MHA kernel (major.minor)
© 2005-2019 HörTech gGmbH, Oldenburg

6.89

mha.hh File Reference

6.89.2.12

993

#define MHA_RELEASE_VERSION_STRING MHA_XSTRF(MHA_VE←RSION_MAJOR) "." MHA_XSTRF(MHA_VERSION_MINOR) "."
MHA_XSTRF(MHA_VERSION_RELEASE)

Version string of MHA kernel (major.minor.release)
6.89.2.13

#define MHA_WAVEFORM 0

6.89.2.14

#define MHA_SPECTRUM 1

6.89.2.15

#define MHA_DOMAIN_MAX 2

6.89.2.16

#define MHA_DOMAIN_UNKNOWN MHA_DOMAIN_MAX

6.89.2.17

#define MHA_AC_UNKNOWN 0

6.89.2.18

#define MHA_AC_CHAR 1

6.89.2.19

#define MHA_AC_INT 2

6.89.2.20

#define MHA_AC_MHAREAL 3

6.89.2.21

#define MHA_AC_FLOAT 4

6.89.2.22

#define MHA_AC_DOUBLE 5

6.89.2.23

#define MHA_AC_MHACOMPLEX 6

6.89.2.24

#define MHA_AC_VEC_FLOAT 51

6.89.2.25

#define MHA_AC_USER 1000

6.89.3

Typedef Documentation

6.89.3.1

typedef unsigned int mha_domain_t

6.89.3.2

typedef struct algo_comm_t algo_comm_t

6.89.3.3

typedef unsigned int(∗ MHAGetVersion_t) (void)

6.89.3.4

typedef int(∗ MHAInit_t) (algo_comm_t algo_comm, const char ∗chain, const char ∗algo, void
∗∗h)

6.89.3.5

typedef int(∗ MHAPrepare_t) (void ∗h, mhaconfig_t ∗cfg)

© 2005-2019 HörTech gGmbH, Oldenburg

994

CONTENTS

6.89.3.6

typedef int(∗ MHARelease_t) (void ∗h)

6.89.3.7

typedef void(∗ MHADestroy_t) (void ∗h)

6.89.3.8

typedef int(∗ MHASet_t) (void ∗h, const char ∗cmd, char ∗retval, unsigned int len)

6.89.3.9

typedef const char∗(∗ MHAStrError_t) (void ∗h, int err)

6.89.3.10

typedef int(∗ MHAProc_wave2wave_t) (void ∗h, mha_wave_t ∗sIn, mha_wave_t ∗∗sOut)

6.89.3.11

typedef int(∗ MHAProc_wave2spec_t) (void ∗h, mha_wave_t ∗sIn, mha_spec_t ∗∗sOut)

6.89.3.12

typedef int(∗ MHAProc_spec2wave_t) (void ∗h, mha_spec_t ∗sIn, mha_wave_t ∗∗sOut)

6.89.3.13

typedef int(∗ MHAProc_spec2spec_t) (void ∗h, mha_spec_t ∗sIn, mha_spec_t ∗∗sOut)

6.89.3.14

typedef const char∗(∗ MHAPluginDocumentation_t) (void)

6.89.3.15

typedef const char∗(∗ MHAPluginCategory_t) (void)

6.90

mha_algo_comm.cpp File Reference

Macros
• #define AC_SUCCESS 0
• #define AC_INVALID_HANDLE -1
• #define AC_INVALID_NAME -2
• #define AC_STRING_TRUNCATED -3
• #define AC_INVALID_OUTPTR -4
• #define AC_TYPE_MISMATCH -5
• #define AC_DIM_MISMATCH -6

Variables
• algo_comm_t algo_comm_default
© 2005-2019 HörTech gGmbH, Oldenburg

6.91

mha_algo_comm.h File Reference

6.90.1

995

Macro Definition Documentation

6.90.1.1

#define AC_SUCCESS 0

6.90.1.2

#define AC_INVALID_HANDLE -1

6.90.1.3

#define AC_INVALID_NAME -2

6.90.1.4

#define AC_STRING_TRUNCATED -3

6.90.1.5

#define AC_INVALID_OUTPTR -4

6.90.1.6

#define AC_TYPE_MISMATCH -5

6.90.1.7

#define AC_DIM_MISMATCH -6

6.90.2

Variable Documentation

6.90.2.1 algo_comm_t algo_comm_default

6.91

mha_algo_comm.h File Reference

Header file for Algorithm Communication.

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

• class MHA_AC::waveform_t
Insert a MHASignal::waveform_t ( p. 812) 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::stat_t
• class MHA_AC::ac2matrix_helper_t
• 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.
© 2005-2019 HörTech gGmbH, Oldenburg

996

CONTENTS

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

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

• mha_wave_t MHA_AC::get_var_waveform (algo_comm_t ac,
&name)

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.

6.91.1

Detailed Description

Header file for Algorithm Communication.

6.92

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-2019 HörTech gGmbH, Oldenburg

6.93

mha_defs.h File Reference

997

Functions
• algo_comm_class_t ∗ MHAKernel::algo_comm_safe_cast (void ∗)

Variables
• algo_comm_t algo_comm_default

6.92.1

Macro Definition Documentation

6.92.1.1
6.92.2

#define ALGO_COMM_ID_STR "MFVK3jL5rmeus1XtggEI971aXCR/GU7RRehKz4kQtrg="
Variable Documentation

6.92.2.1 algo_comm_t algo_comm_default

6.93

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

6.93.1

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.
© 2005-2019 HörTech gGmbH, Oldenburg

998

6.93.2

CONTENTS

Macro Definition Documentation

6.93.2.1

#define __MHA_FUN__ __FUNC__

6.93.2.2

#define CHECK_EXPR(
x ) {if(!(x)){throw MHA_Error(__FILE__,__LINE__,"The expression \"" #x "\" is
invalid.");}}

6.93.2.3

#define CHECK_VAR(
x ) {if(!(x)){throw MHA_Error(__FILE__,__LINE__,"The variable \"" #x "\" is not
defined.");}}

6.93.2.4

#define __declspec(
p )

6.93.2.5

#define M_PI 3.14159265358979323846

Define pi if it is not defined yet.
6.93.2.6

#define MIN(
a,
b ) (((a)<(b))?(a):(b))

Macro for minimum function.
6.93.2.7

#define MAX(
a,
b ) (((a)>(b))?(a):(b))

Macro for maximum function.
6.93.2.8

#define MHA_EAR_LEFT 0

6.93.2.9

#define MHA_EAR_RIGHT 1

6.93.2.10

#define MHA_EAR_MAX 2

6.94

mha_errno.c File Reference

Macros
• #define STRLEN 0x1000
© 2005-2019 HörTech gGmbH, Oldenburg

6.95

mha_errno.h File Reference

Functions
• const char ∗ mha_strerror (int mhaerrno)
• void mha_set_user_error (const char ∗str)

Variables
• char next_except_str [STRLEN] = ""
• const char ∗ cstr_strerror [MHA_ERR_USER]

6.94.1

Macro Definition Documentation

6.94.1.1
6.94.2

#define STRLEN 0x1000
Function Documentation

6.94.2.1

const char∗ mha_strerror (
int mhaerrno )

6.94.2.2

void mha_set_user_error (
const char ∗ str )

6.94.3

Variable Documentation

6.94.3.1

char next_except_str[STRLEN] = ""

6.94.3.2

const char∗ cstr_strerror[MHA_ERR_USER]

6.95

mha_errno.h File Reference

Macros
•
•
•
•
•
•
•

#define MHA_ERR_SUCCESS 0
#define MHA_ERR_UNKNOWN 1
#define MHA_ERR_INVALID_HANDLE 2
#define MHA_ERR_NULL 3
#define MHA_ERR_VARRANGE 4
#define MHA_ERR_VARFMT 5
#define MHA_ERR_USER 10000

Functions
• const char ∗ mha_strerror (int mhaerrno)
• void mha_set_user_error (const char ∗str)
© 2005-2019 HörTech gGmbH, Oldenburg

999

1000

6.95.1

Macro Definition Documentation

6.95.1.1

#define MHA_ERR_SUCCESS 0

6.95.1.2

#define MHA_ERR_UNKNOWN 1

6.95.1.3

#define MHA_ERR_INVALID_HANDLE 2

6.95.1.4

#define MHA_ERR_NULL 3

6.95.1.5

#define MHA_ERR_VARRANGE 4

6.95.1.6

#define MHA_ERR_VARFMT 5

6.95.1.7

#define MHA_ERR_USER 10000

6.95.2

Function Documentation

6.95.2.1

const char∗ mha_strerror (
int mhaerrno )

6.95.2.2

void mha_set_user_error (
const char ∗ str )

6.96

CONTENTS

mha_error.cpp File Reference

Implementation of openMHA error handling.

Namespaces
• mha_error_helpers

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).
© 2005-2019 HörTech gGmbH, Oldenburg

6.97

mha_error.hh File Reference

6.96.1

1001

Detailed Description

Implementation of openMHA error handling.
This file forms a seperate library.

6.97

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)
false.",#x)

if(!(x))

throw

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

is

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

• #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. 445) with the values.

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.
© 2005-2019 HörTech gGmbH, Oldenburg

1002

6.97.1

Macro Definition Documentation

6.97.1.1

6.98

CONTENTS

#define Getmsg(
e ) ((e).get_msg())

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.99

mha_events.cpp File Reference

6.100

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.

Namespaces
• MHAEvents
Collection of event handling classes.

6.101

mha_fftfb.cpp File Reference

Classes
• class MHAOvlFilter::barkscale::hz2bark_t
• class MHAOvlFilter::barkscale::bark2hz_t
© 2005-2019 HörTech gGmbH, Oldenburg

6.101

mha_fftfb.cpp File Reference

1003

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 MHAOvlFilter::FreqScaleFun::hz2khz (mha_real_t x)
mha_real_t MHAOvlFilter::FreqScaleFun::hz2octave (mha_real_t x)
mha_real_t MHAOvlFilter::FreqScaleFun::hz2third_octave (mha_real_t x)
mha_real_t MHAOvlFilter::FreqScaleFun::hz2bark (mha_real_t x)
Transformation to bark scale.

•
•
•
•

mha_real_t MHAOvlFilter::FreqScaleFun::hz2bark_analytic (mha_real_t)
mha_real_t MHAOvlFilter::FreqScaleFun::hz2erb (mha_real_t)
mha_real_t MHAOvlFilter::FreqScaleFun::hz2erb_glasberg1990 (mha_real_t)
mha_real_t MHAOvlFilter::FreqScaleFun::hz2log (mha_real_t x)
Third octave frequency scale.

• mha_real_t MHAOvlFilter::FreqScaleFun::inv_scale (mha_real_t,
t(∗)(mha_real_t))
• mha_real_t MHAOvlFilter::ShapeFun::rect (mha_real_t x)

mha_real_←-

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, MHAOvlFilter::band_descriptor_t b, mha←_real_t plateau)

Variables
• mha_real_t MHAOvlFilter::barkscale::vfreq [BARKSCALE_ENTRIES]
• mha_real_t MHAOvlFilter::barkscale::vbark [BARKSCALE_ENTRIES]
© 2005-2019 HörTech gGmbH, Oldenburg

1004

6.101.1

CONTENTS

Macro Definition Documentation

6.101.1.1
6.101.2

#define BARKSCALE_ENTRIES 50
Function Documentation

6.101.2.1 mha_real_t filtershapefun (
mha_real_t f,
MHAOvlFilter::band_descriptor_t b,
mha_real_t plateau )

6.102

mha_fftfb.hh File Reference

Classes
•
•
•
•
•

class MHAOvlFilter::band_descriptor_t
class MHAOvlFilter::scale_var_t
class MHAOvlFilter::fscale_t
class MHAOvlFilter::fscale_bw_t
class 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. 616).

• 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)
© 2005-2019 HörTech gGmbH, Oldenburg

6.103

mha_fifo.cpp File Reference

6.103

mha_fifo.cpp File Reference

6.104

mha_fifo.h File Reference

1005

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
• 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. 462).

• 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.104.1

Macro Definition Documentation

6.104.1.1

6.105

#define mha_fifo_thread_platform_implementation_t mha_fifo_posix_threads_t

mha_filter.cpp File Reference

Functions
• std::vector< mha_real_t > diff_coeffs ()
© 2005-2019 HörTech gGmbH, Oldenburg

1006

6.105.1

Function Documentation

6.105.1.1

6.106

CONTENTS

std::vector diff_coeffs ( )

mha_filter.hh File Reference

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.
© 2005-2019 HörTech gGmbH, Oldenburg

6.107

mha_generic_chain.cpp File Reference

1007

• 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.

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.106.1

Detailed Description

Header file for IIR filter classes.

6.107

mha_generic_chain.cpp File Reference

Functions
• void mhaconfig_compare (mhaconfig_t req, mhaconfig_t avail, const char ∗cpref)
© 2005-2019 HörTech gGmbH, Oldenburg

1008

6.107.1

Function Documentation

6.107.1.1

6.108

CONTENTS

void mhaconfig_compare (
mhaconfig_t req,
mhaconfig_t avail,
const char ∗ cpref )

mha_generic_chain.h File Reference

Classes
• class mhachain::plugs_t
• class mhachain::chain_base_t

Namespaces
• mhachain

Macros
• #define MHAPLUGIN_OVERLOAD_OUTDOMAIN

6.108.1

Macro Definition Documentation

6.108.1.1

6.109

#define MHAPLUGIN_OVERLOAD_OUTDOMAIN

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, IOStoppedEvent_←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-2019 HörTech gGmbH, Oldenburg

6.110

mha_multisrc.cpp File Reference

6.109.1

Typedef Documentation

1009

typedef int(∗ IOProcessEvent_t) (void ∗handle, mha_wave_t ∗sIn, mha_wave_t ∗∗sOut)

6.109.1.1

Event handler for signal stream.
This event handler needs to be realtime compatible. All signal path processing will be performed
in this callback.
typedef void(∗ IOStoppedEvent_t) (void ∗handle, int proc_err, int io_err)

6.109.1.2

Event handler for stop event.
This event handler needs to be realtime compatible. The function must return immediatly.
typedef void(∗ IOStartedEvent_t) (void ∗handle)

6.109.1.3

Event handler for start event.
This event handler needs to be realtime compatible. The function must return immediatly.
6.109.1.4

typedef int(∗ IOInit_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 ∗∗handle)

6.109.1.5

typedef int(∗ IOPrepare_t) (void ∗handle, int num_inchannels, int num_outchannels)

6.109.1.6

typedef int(∗ IOStart_t) (void ∗handle)

6.109.1.7

typedef int(∗ IOStop_t) (void ∗handle)

6.109.1.8

typedef int(∗ IORelease_t) (void ∗handle)

6.109.1.9

typedef int(∗ IOSetVar_t) (void ∗handle, const char ∗cmd, char ∗retval, unsigned int len)

6.109.1.10

typedef const char∗(∗ IOStrError_t) (void ∗handle, int err)

6.109.1.11

typedef void(∗ IODestroy_t) (void ∗handle)

6.110

mha_multisrc.cpp File Reference

Namespaces
• MHAMultiSrc
Collection of classes for selecting audio chunks from multiple sources.
© 2005-2019 HörTech gGmbH, Oldenburg

1010

6.111

CONTENTS

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

Namespaces
• MHAMultiSrc
Collection of classes for selecting audio chunks from multiple sources.

6.112

mha_os.cpp File Reference

Functions
• bool mha_hasenv (const std::string &envvar)
Checks if environment variable exists.

• std::string mha_getenv (const std::string &envvar)
Get value of environment variable.

• void mha_delenv (const std::string &envvar)
Deletes environment variable from process environment if it exists.

• int mha_setenv (const std::string &envvar, const std::string &value)
Set value of environment variable.

• std::list< std::string > mha_library_paths ()
• std::list< std::string > list_dir (const std::string &path, const std::string &pattern)

6.112.1
6.112.1.1

Function Documentation
bool mha_hasenv (
const std::string & envvar )

Checks if environment variable exists.
Parameters
envvar

Name of environment variable to check

© 2005-2019 HörTech gGmbH, Oldenburg

6.112

mha_os.cpp File Reference

1011

Returns
true if the environment has a variable of this name

6.112.1.2

std::string mha_getenv (
const std::string & envvar )

Get value of environment variable.
Parameters
Name of environment variable to retrieve

envvar

Returns
content of environment variable if it exists, empty string if the environment variable does
not exist

6.112.1.3

void mha_delenv (
const std::string & envvar )

Deletes environment variable from process environment if it exists.
Parameters
Name of environment variable to delete

envvar

6.112.1.4

int mha_setenv (
const std::string & envvar,
const std::string & value )

Set value of environment variable.
Parameters
envvar
value

Name of environment variable to set
New content for environment variable

Returns
error code: 0 on success, OS dependent error code on failure

6.112.1.5

std::list mha_library_paths ( )

© 2005-2019 HörTech gGmbH, Oldenburg

1012

6.112.1.6

6.113

CONTENTS

std::list list_dir (
const std::string & path,
const std::string & pattern )

mha_os.h File Reference

Classes
• class mha_stash_environment_variable_t
This class changes the value of an environment variable when constructed and restores the
original state of the environment variable when destroyed.

• class dynamiclib_t
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 (const std::string &envvar)
Get value of environment variable.

• bool mha_hasenv (const std::string &envvar)
Checks if environment variable exists.

• int mha_setenv (const std::string &envvar, const std::string &value)
Set value of environment variable.

• void mha_delenv (const std::string &envvar)
Deletes environment variable from process environment if it exists.

•
•
•
•
•
•
•
•

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)
© 2005-2019 HörTech gGmbH, Oldenburg

6.113

mha_os.h File Reference

6.113.1

Macro Definition Documentation

1013

6.113.1.1

#define mha_loadlib(
x ) dlopen(x,RTLD_NOW)

6.113.1.2

#define mha_freelib(
x ) dlclose(x)

6.113.1.3

#define mha_freelib_success(
x ) (x == 0)

6.113.1.4

#define mha_getlibfun(
h,
x ) x ## _cb = (x ## _t)dlsym(h,#x)

6.113.1.5

#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.113.1.6

#define mha_loadlib_error(
x ) dlerror()

6.113.1.7

#define mha_lib_extension ".so"

6.113.1.8

#define mha_msleep(
milliseconds ) usleep((milliseconds)∗1000)

6.113.1.9

#define FMTsz "%zu"

printf modifier to print integers of type size_t
6.113.1.10

#define MHA_RESOLVE(
h,
t ) t ## _cb = (t ## _t)(h->resolve(#t))

6.113.1.11

#define MHA_RESOLVE_CHECKED(
h,
t ) t ## _cb = (t ## _t)(h->resolve_checked(#t))

6.113.2
6.113.2.1
6.113.3
6.113.3.1

Typedef Documentation
typedef void∗ mha_libhandle_t
Function Documentation
std::string mha_getenv (
const std::string & envvar )

Get value of environment variable.

© 2005-2019 HörTech gGmbH, Oldenburg

1014

CONTENTS

Parameters
Name of environment variable to retrieve

envvar

Returns
content of environment variable if it exists, empty string if the environment variable does
not exist

6.113.3.2

bool mha_hasenv (
const std::string & envvar )

Checks if environment variable exists.
Parameters
Name of environment variable to check

envvar

Returns
true if the environment has a variable of this name

6.113.3.3

int mha_setenv (
const std::string & envvar,
const std::string & value )

Set value of environment variable.
Parameters
envvar
value

Name of environment variable to set
New content for environment variable

Returns
error code: 0 on success, OS dependent error code on failure

6.113.3.4

void mha_delenv (
const std::string & envvar )

Deletes environment variable from process environment if it exists.

© 2005-2019 HörTech gGmbH, Oldenburg

6.114

mha_parser.cpp File Reference

Parameters
envvar

Name of environment variable to delete

6.113.3.5

std::list mha_library_paths ( )

6.113.3.6

std::list list_dir (
const std::string & path,
const std::string & pattern )

6.113.3.7

void mha_hton (
float ∗ data,
unsigned int len ) [inline]

6.113.3.8

void mha_ntoh (
float ∗ data,
unsigned int len ) [inline]

6.113.3.9

void mha_hton (
uint32_t ∗ data,
unsigned int len ) [inline]

6.113.3.10

void mha_ntoh (
uint32_t ∗ data,
unsigned int len ) [inline]

6.113.3.11

void mha_hton (
int32_t ∗ data,
unsigned int len ) [inline]

6.113.3.12

void mha_ntoh (
int32_t ∗ data,
unsigned int len ) [inline]

6.114

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"
© 2005-2019 HörTech gGmbH, Oldenburg

1015

1016

CONTENTS

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.114.1
6.114.1.1
6.114.2

Macro Definition Documentation
#define MHAPLATFORM "undefined-linux"
Function Documentation

6.114.2.1

static std::ostream& write_float (
std::ostream & o,
const float & f ) [inline], [static]

6.114.2.2

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.114.2.3

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.

© 2005-2019 HörTech gGmbH, Oldenburg

6.115

mha_parser.hh File Reference

Parameters
s

The string to parse

v

The complex variable to fill with a value

Returns
The rest of the string.

6.115

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.
© 2005-2019 HörTech gGmbH, Oldenburg

1017

1018

CONTENTS

• 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.

• 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::mint_mon_t
Matrix 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.
© 2005-2019 HörTech gGmbH, Oldenburg

6.115

mha_parser.hh File Reference

1019

Macros
• #define DEFAULT_RETSIZE 0x100000
• #define insert_member(x) insert_item(#x,&x)
Macro to insert a member variable into a parser.

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.
© 2005-2019 HörTech gGmbH, Oldenburg

1020

CONTENTS

• 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 &)
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::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< mha_←complex_t > > &)
Convert to string.

6.115.1

Detailed Description

Header file for the MHA-Parser script language.
© 2005-2019 HörTech gGmbH, Oldenburg

6.115

mha_parser.hh File Reference

6.115.2

Macro Definition Documentation

6.115.2.1

#define DEFAULT_RETSIZE 0x100000

6.115.2.2

#define insert_member(
x ) insert_item(#x,&x)

Macro to insert a member variable into a parser.

© 2005-2019 HörTech gGmbH, Oldenburg

1021

1022

CONTENTS

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. 690).

6.116

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 __declspec(p)
#define WINAPI
#define HINSTANCE int
#define GITCOMMITHASH "independent-plugin-build"
#define MHAPLUGIN_PROC_CALLBACK_PREFIX(prefix, classname, indom, outdom)
#define MHAPLUGIN_INIT_CALLBACKS_PREFIX(prefix, classname)
#define 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) M←HAPLUGIN_PROC_CALLBACK_PREFIX(MHA_STATIC_ ## plugname ## _←,classname,indom,outdom)
• #define MHAPLUGIN_INIT_CALLBACKS(plugname, classname) MHAPLUGIN_INIT←_CALLBACKS_PREFIX(MHA_STATIC_ ## plugname ## _,classname)
• #define MHAPLUGIN_CALLBACKS(plugname, classname, indom, outdom) MHAPLU←GIN_CALLBACKS_PREFIX(MHA_STATIC_ ## plugname ## _,classname,indom,outdom)
C++ wrapper macro for the plugin interface.

• #define MHAPLUGIN_DOCUMENTATION(plugname, cat, doc) MHAPLUGIN_DOCU←MENTATION_PREFIX(MHA_STATIC_ ## plugname ## _,cat,doc)
Wrapper macro for the plugin documentation interface.
© 2005-2019 HörTech gGmbH, Oldenburg

6.116

mha_plugin.hh File Reference

1023

Functions
• __attribute__ ((unused)) static const char ∗mha_git_commit_hash
store git commit hash in every binary plgin to support reproducible research

6.116.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.116.2

Macro Definition Documentation

6.116.2.1

#define __declspec(
p )

6.116.2.2

#define WINAPI

6.116.2.3

#define HINSTANCE int

6.116.2.4

#define GITCOMMITHASH "independent-plugin-build"

6.116.2.5

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

6.116.2.6

#define MHAPLUGIN_INIT_CALLBACKS_PREFIX(
prefix,
classname )

6.116.2.7

#define MHAPLUGIN_DOCUMENTATION_PREFIX(
prefix,
cat,
doc )

6.116.2.8

#define MHAPLUGIN_PROC_CALLBACK(
plugname,
classname,
indom,
outdom ) MHAPLUGIN_PROC_CALLBACK_PREFIX(MHA_STATIC_ ##
plugname ## _,classname,indom,outdom)

© 2005-2019 HörTech gGmbH, Oldenburg

1024

6.116.2.9

6.116.3

CONTENTS

#define MHAPLUGIN_INIT_CALLBACKS(
plugname,
classname ) MHAPLUGIN_INIT_CALLBACKS_PREFIX(MHA_STATIC_
## plugname ## _,classname)
Function Documentation

6.116.3.1

__attribute__ (
(unused) ) const

store git commit hash in every binary plgin to support reproducible research

6.117

mha_profiling.c File Reference

Functions
•
•
•
•

void mha_tic (mha_tictoc_t ∗t)
void mha_platform_tic (mha_platform_tictoc_t ∗t)
float mha_toc (mha_tictoc_t ∗t)
float mha_platform_toc (mha_platform_tictoc_t ∗t)

6.117.1

Function Documentation

6.117.1.1

void mha_tic (
mha_tictoc_t ∗ t )

6.117.1.2

void mha_platform_tic (
mha_platform_tictoc_t ∗ t )

6.117.1.3

float mha_toc (
mha_tictoc_t ∗ t )

6.117.1.4

float mha_platform_toc (
mha_platform_tictoc_t ∗ t )

6.118

mha_profiling.h File Reference

Classes
• struct mha_tictoc_t

Typedefs
• typedef mha_tictoc_t mha_platform_tictoc_t
© 2005-2019 HörTech gGmbH, Oldenburg

6.119

mha_ruby.cpp File Reference

Functions
• void mha_platform_tic (mha_platform_tictoc_t ∗t)
• float mha_platform_toc (mha_platform_tictoc_t ∗t)

6.118.1

Typedef Documentation

6.118.1.1
6.118.2

typedef mha_tictoc_t mha_platform_tictoc_t
Function Documentation

6.118.2.1

void mha_platform_tic (
mha_platform_tictoc_t ∗ t )

6.118.2.2

float mha_platform_toc (
mha_platform_tictoc_t ∗ t )

6.119

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.119.1
6.119.1.1
6.119.2

Typedef Documentation
typedef VALUE(∗ rb_f_t) (...)
Function Documentation

6.119.2.1

static void mha_free (
void ∗ mha ) [static]

6.119.2.2

static VALUE mha_alloc (
VALUE klass ) [static]

© 2005-2019 HörTech gGmbH, Oldenburg

1025

1026

6.119.2.3

static VALUE mha_exit_request (
VALUE self ) [static]

6.119.2.4

static VALUE mha_parse (
VALUE self,
VALUE request ) [static]

6.119.2.5

void Init_mha_ruby ( )

6.120

CONTENTS

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)

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.
© 2005-2019 HörTech gGmbH, Oldenburg

6.120

mha_signal.cpp File Reference

1027

• 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.

• 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. 496) structure into a std::vector (interleaved order).

• std::vector< std::vector< float > > std_vector_vector_float (const mha_wave_t &w)
© 2005-2019 HörTech gGmbH, Oldenburg

1028

CONTENTS

Converts a mha_wave_t ( p. 496) 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. 465) 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.120.1

Macro Definition Documentation

6.120.1.1

#define MHA_ID_UINT_VECTOR "MHASignal::uint_vector_t"

6.120.1.2

#define MHA_ID_MATRIX "MHASignal::matrix_t"

6.120.1.3

#define ASSERT_EQUAL_DIM(
a,
b )

6.120.1.4

#define ASSERT_EQUAL_DIM_PTR(
a,
b )

6.120.2
6.120.2.1

Function Documentation
void set_minabs (
mha_spec_t & self,
const mha_real_t & m )

6.120.2.2 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-2019 HörTech gGmbH, Oldenburg

6.121

mha_signal.hh File Reference

6.120.2.3

6.121

1029

static mha_real_t intensity (
const mha_spec_t & s,
unsigned int channel,
unsigned int fftlen,
mha_real_t ∗ sqfreq_response = 0 ) [static]

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. 465))

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

• 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-2019 HörTech gGmbH, Oldenburg

1030

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. 496).

• 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.

• 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.
© 2005-2019 HörTech gGmbH, Oldenburg

6.121

mha_signal.hh File Reference

1031

• 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.

• 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.
© 2005-2019 HörTech gGmbH, Oldenburg

1032

CONTENTS

• 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. 496) 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. 496) 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. 465) 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.

• 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.
© 2005-2019 HörTech gGmbH, Oldenburg

6.121

mha_signal.hh File Reference

1033

• 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)
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].
© 2005-2019 HörTech gGmbH, Oldenburg

1034

CONTENTS

• 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. 431) variable.

• mha_complex_t mha_complex (mha_real_t real, mha_real_t imag=0)
Create a new mha_complex_t ( p. 431) 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. 431) 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. 431).

• mha_complex_t & expi (mha_complex_t &self, mha_real_t angle)
replaces the value of the given mha_complex_t ( p. 431) 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.

• 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. 431) 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)
© 2005-2019 HörTech gGmbH, Oldenburg

6.121

mha_signal.hh File Reference

1035

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. 431) with its conjugate.

• void conjugate (mha_spec_t &self)
Replace (!) the value of this mha_spec_t ( p. 465) 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)
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. 431)

• std::istream & operator>> (std::istream &i, mha_complex_t &c)
preliminary istream operator for mha_complex_t ( p. 431) without error checking

• mha_fft_t mha_fft_new (unsigned int n)
Create a new FFT handle.
© 2005-2019 HörTech gGmbH, Oldenburg

1036

CONTENTS

• 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)
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.
© 2005-2019 HörTech gGmbH, Oldenburg

6.121

mha_signal.hh File Reference

1037

• 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.121.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.121.2

Macro Definition Documentation

6.121.2.1

#define M_PI 3.14159265358979323846

6.121.2.2

#define mha_round(
x ) (int)((float)x+0.5)

6.121.3
6.121.3.1

Function Documentation
unsigned int mha_min_1 (
unsigned int a ) [inline]

6.121.3.2 mha_real_t& value (
mha_wave_t ∗ s,
unsigned int k ) [inline]
6.121.3.3 mha_complex_t& value (
mha_spec_t ∗ s,
unsigned int k ) [inline]
6.121.3.4

void set_minabs (
mha_spec_t & ,
const mha_real_t & )

6.121.3.5 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-2019 HörTech gGmbH, Oldenburg

1038

6.121.3.6

CONTENTS

std::ostream& operator<< (
std::ostream & o,
const mha_complex_t & c ) [inline]

ostream operator for mha_complex_t (p. 431)
6.121.3.7

std::istream& operator>> (
std::istream & i,
mha_complex_t & c ) [inline]

preliminary istream operator for mha_complex_t (p. 431) without error checking

6.122

mha_signal_fft.h File Reference

Classes
• class MHASignal::fft_t

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

6.123

mha_tablelookup.cpp File Reference

6.124

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.
© 2005-2019 HörTech gGmbH, Oldenburg

6.125

mha_tcp.cpp File Reference

6.124.1

Detailed Description

1039

Header file for table lookup classes.

6.125

mha_tcp.cpp File Reference

Classes
• class MHA_TCP::sock_init_t

Namespaces
• MHA_TCP
A Namespace for TCP helper classes.

Macros
•
•
•
•

#define INVALID_SOCKET (-1)
#define SOCKET_ERROR (-1)
#define closesocket(fd) (close((fd)))
#define 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)
© 2005-2019 HörTech gGmbH, Oldenburg

1040

CONTENTS

Variables
• class MHA_TCP::sock_init_t MHA_TCP::sock_initializer

6.125.1

Macro Definition Documentation

6.125.1.1

#define INVALID_SOCKET (-1)

6.125.1.2

#define SOCKET_ERROR (-1)

6.125.1.3

#define closesocket(
fd ) (close((fd)))

6.125.1.4

#define ASYNC_CONNECT_STARTED EINPROGRESS

6.125.2

Typedef Documentation

6.125.2.1
6.125.3

typedef int SOCKET
Function Documentation

6.125.3.1

static sockaddr_in host_port_to_sock_addr (
const std::string & host,
unsigned short port ) [static]

6.125.3.2

static SOCKET tcp_connect_to (
const std::string & host,
unsigned short port ) [static]

6.125.3.3

static SOCKET tcp_connect_to_with_timeout (
const std::string & host,
unsigned short port,
Timeout_Watcher & timeout_watcher ) [static]

6.125.3.4

static void∗ thread_start_func (
void ∗ thread ) [static]

6.126

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
© 2005-2019 HörTech gGmbH, Oldenburg

6.126

mha_tcp.hh File Reference

1041

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. 471) 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.

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.
© 2005-2019 HörTech gGmbH, Oldenburg

1042

6.126.1

CONTENTS

Macro Definition Documentation

6.126.1.1

#define Sleep(
x ) usleep((x)∗1000);

6.127

mha_toolbox.h File Reference

6.128

mha_windowparser.cpp File Reference

Variables
• float(∗ wnd_funs [ ])(float)

6.128.1

Variable Documentation

6.128.1.1

6.129

float(∗ wnd_funs[ ])(float)

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-2019 HörTech gGmbH, Oldenburg

6.130

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.130

mhachain.cpp File Reference

Classes
• class mhachain::mhachain_t

Namespaces
• mhachain

6.131

mhafw_lib.cpp File Reference

6.132

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-2019 HörTech gGmbH, Oldenburg

1043

1044

6.133

CONTENTS

MHAIOalsa.cpp File Reference

Classes
• class alsa_base_t
• class alsa_dev_par_parser_t
Parser variables corresponding to one alsa device.

• class alsa_t< T >
Our representation of one alsa device.

• class io_alsa_t
MHA IO interface class for ALSA IO.

Macros
•
•
•
•
•
•
•
•
•
•
•
•
•
•

#define DBG(x) fprintf(stderr,"%s:%d\n",__FILE__,__LINE__)
#define ERR_SUCCESS 0
#define ERR_IHANDLE -1
#define ERR_USER -1000
#define MAX_USER_ERR 0x500
#define IOInit MHA_STATIC_MHAIOalsa_IOInit
#define IOPrepare MHA_STATIC_MHAIOalsa_IOPrepare
#define IOStart MHA_STATIC_MHAIOalsa_IOStart
#define IOStop MHA_STATIC_MHAIOalsa_IOStop
#define IORelease MHA_STATIC_MHAIOalsa_IORelease
#define IOSetVar MHA_STATIC_MHAIOalsa_IOSetVar
#define IOStrError MHA_STATIC_MHAIOalsa_IOStrError
#define IODestroy MHA_STATIC_MHAIOalsa_IODestroy
#define dummy_interface_test MHA_STATIC_MHAIOalsa_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)
IO library initialization function, called by framework after loading this IO library into the MHA
process.

• int IOPrepare (void ∗handle, int nch_in, int nch_out)
IO library prepare function, called after the MHA prepared the processing plugins.

•
•
•
•
•
•
•

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-2019 HörTech gGmbH, Oldenburg

6.133

MHAIOalsa.cpp File Reference

1045

Variables
• static char user_err_msg [MAX_USER_ERR]
6.133.1

Macro Definition Documentation

6.133.1.1

#define DBG(
x ) fprintf(stderr,"%s:%d\n",__FILE__,__LINE__)

6.133.1.2

#define ERR_SUCCESS 0

6.133.1.3

#define ERR_IHANDLE -1

6.133.1.4

#define ERR_USER -1000

6.133.1.5

#define MAX_USER_ERR 0x500

6.133.1.6

#define IOInit MHA_STATIC_MHAIOalsa_IOInit

6.133.1.7

#define IOPrepare MHA_STATIC_MHAIOalsa_IOPrepare

6.133.1.8

#define IOStart MHA_STATIC_MHAIOalsa_IOStart

6.133.1.9

#define IOStop MHA_STATIC_MHAIOalsa_IOStop

6.133.1.10

#define IORelease MHA_STATIC_MHAIOalsa_IORelease

6.133.1.11

#define IOSetVar MHA_STATIC_MHAIOalsa_IOSetVar

6.133.1.12

#define IOStrError MHA_STATIC_MHAIOalsa_IOStrError

6.133.1.13

#define IODestroy MHA_STATIC_MHAIOalsa_IODestroy

6.133.1.14

#define dummy_interface_test MHA_STATIC_MHAIOalsa_dummy_interface_test

6.133.2
6.133.2.1

Function Documentation
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 )

IO library initialization function, called by framework after loading this IO library into the MHA
process.
Gives plugin callback functions and callback handles to interact with the MHA framework.

© 2005-2019 HörTech gGmbH, Oldenburg

1046

CONTENTS

Parameters
handle

6.133.2.2

output parameter. IO library returns pointer to void to the caller via this parameter.
All other function calls from the MHA framework will use this handle.

int IOPrepare (
void ∗ handle,
int nch_in,
int nch_out )

IO library prepare function, called after the MHA prepared the processing plugins.
6.133.2.3

int IOStart (
void ∗ handle )

6.133.2.4

int IOStop (
void ∗ handle )

6.133.2.5

int IORelease (
void ∗ handle )

6.133.2.6

int IOSetVar (
void ∗ handle,
const char ∗ command,
char ∗ retval,
unsigned int maxretlen )

6.133.2.7

const char∗ IOStrError (
void ∗ handle,
int err )

6.133.2.8

void IODestroy (
void ∗ handle )

6.133.2.9

void dummy_interface_test (
void )

6.133.3

Variable Documentation

6.133.3.1

6.134

char user_err_msg[MAX_USER_ERR] [static]

MHAIOFile.cpp File Reference

Classes
• class io_file_t
File IO.
© 2005-2019 HörTech gGmbH, Oldenburg

6.134

MHAIOFile.cpp File Reference

1047

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]

6.134.1

Macro Definition Documentation

6.134.1.1

#define DEBUG(
x ) std::cerr << __FILE__ << ":" << __LINE__ << " " << #x " = " << x <<
std::endl

6.134.1.2

#define ERR_SUCCESS 0

© 2005-2019 HörTech gGmbH, Oldenburg

1048

6.134.1.3

#define ERR_IHANDLE -1

6.134.1.4

#define ERR_USER -1000

6.134.1.5

#define MAX_USER_ERR 0x500

6.134.1.6

#define IOInit MHA_STATIC_MHAIOFile_IOInit

6.134.1.7

#define IOPrepare MHA_STATIC_MHAIOFile_IOPrepare

6.134.1.8

#define IOStart MHA_STATIC_MHAIOFile_IOStart

6.134.1.9

#define IOStop MHA_STATIC_MHAIOFile_IOStop

CONTENTS

6.134.1.10

#define IORelease MHA_STATIC_MHAIOFile_IORelease

6.134.1.11

#define IOSetVar MHA_STATIC_MHAIOFile_IOSetVar

6.134.1.12

#define IOStrError MHA_STATIC_MHAIOFile_IOStrError

6.134.1.13

#define IODestroy MHA_STATIC_MHAIOFile_IODestroy

6.134.1.14

#define dummy_interface_test MHA_STATIC_MHAIOFile_dummy_interface_test

6.134.2
6.134.2.1

Function Documentation
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.134.2.2

int IOPrepare (
void ∗ handle,
int nch_in,
int nch_out )

6.134.2.3

int IOStart (
void ∗ handle )

© 2005-2019 HörTech gGmbH, Oldenburg

6.135

MHAIOJack.cpp File Reference

6.134.2.4

int IOStop (
void ∗ handle )

6.134.2.5

int IORelease (
void ∗ handle )

6.134.2.6

int IOSetVar (
void ∗ handle,
const char ∗ command,
char ∗ retval,
unsigned int maxretlen )

6.134.2.7

const char∗ IOStrError (
void ∗ handle,
int err )

6.134.2.8

void IODestroy (
void ∗ handle )

6.134.2.9

void dummy_interface_test (
void )

6.134.3

Variable Documentation

6.134.3.1

6.135

char user_err_msg[MAX_USER_ERR] [static]

MHAIOJack.cpp File Reference

Classes
• class MHAIOJack::io_jack_t
Main class for JACK IO.

Namespaces
• MHAIOJack
JACK IO.
© 2005-2019 HörTech gGmbH, Oldenburg

1049

1050

CONTENTS

Macros
•
•
•
•
•
•
•
•
•
•
•
•
•

#define ERR_SUCCESS 0
#define ERR_IHANDLE -1
#define ERR_USER -1000
#define MAX_USER_ERR 0x500
#define IOInit MHA_STATIC_MHAIOJack_IOInit
#define IOPrepare MHA_STATIC_MHAIOJack_IOPrepare
#define IOStart MHA_STATIC_MHAIOJack_IOStart
#define IOStop MHA_STATIC_MHAIOJack_IOStop
#define IORelease MHA_STATIC_MHAIOJack_IORelease
#define IOSetVar MHA_STATIC_MHAIOJack_IOSetVar
#define IOStrError MHA_STATIC_MHAIOJack_IOStrError
#define IODestroy MHA_STATIC_MHAIOJack_IODestroy
#define 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.135.1

Macro Definition Documentation

6.135.1.1

#define ERR_SUCCESS 0

6.135.1.2

#define ERR_IHANDLE -1

6.135.1.3

#define ERR_USER -1000

6.135.1.4

#define MAX_USER_ERR 0x500

© 2005-2019 HörTech gGmbH, Oldenburg

6.135

MHAIOJack.cpp File Reference

1051

6.135.1.5

#define IOInit MHA_STATIC_MHAIOJack_IOInit

6.135.1.6

#define IOPrepare MHA_STATIC_MHAIOJack_IOPrepare

6.135.1.7

#define IOStart MHA_STATIC_MHAIOJack_IOStart

6.135.1.8

#define IOStop MHA_STATIC_MHAIOJack_IOStop

6.135.1.9

#define IORelease MHA_STATIC_MHAIOJack_IORelease

6.135.1.10

#define IOSetVar MHA_STATIC_MHAIOJack_IOSetVar

6.135.1.11

#define IOStrError MHA_STATIC_MHAIOJack_IOStrError

6.135.1.12

#define IODestroy MHA_STATIC_MHAIOJack_IODestroy

6.135.1.13

#define dummy_interface_test MHA_STATIC_MHAIOJack_dummy_interface_test

6.135.2
6.135.2.1

Function Documentation
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.135.2.2

int IOPrepare (
void ∗ handle,
int nch_in,
int nch_out )

6.135.2.3

int IOStart (
void ∗ handle )

6.135.2.4

int IOStop (
void ∗ handle )

6.135.2.5

int IORelease (
void ∗ handle )

© 2005-2019 HörTech gGmbH, Oldenburg

1052

6.135.2.6

CONTENTS

int IOSetVar (
void ∗ handle,
const char ∗ command,
char ∗ retval,
unsigned int maxretlen )

6.135.2.7

const char∗ IOStrError (
void ∗ handle,
int err )

6.135.2.8

void IODestroy (
void ∗ handle )

6.135.2.9

void dummy_interface_test (
void )

6.135.3

Variable Documentation

6.135.3.1

6.136

char user_err_msg[MAX_USER_ERR] = "" [static]

MHAIOJackdb.cpp File Reference

Classes
• class MHAIOJackdb::io_jack_t
Main class for JACK IO.

Namespaces
• MHAIOJackdb

Macros
•
•
•
•
•
•
•
•
•
•
•
•
•

#define ERR_SUCCESS 0
#define ERR_IHANDLE -1
#define ERR_USER -1000
#define MAX_USER_ERR 0x500
#define IOInit MHA_STATIC_MHAIOJackdb_IOInit
#define IOPrepare MHA_STATIC_MHAIOJackdb_IOPrepare
#define IOStart MHA_STATIC_MHAIOJackdb_IOStart
#define IOStop MHA_STATIC_MHAIOJackdb_IOStop
#define IORelease MHA_STATIC_MHAIOJackdb_IORelease
#define IOSetVar MHA_STATIC_MHAIOJackdb_IOSetVar
#define IOStrError MHA_STATIC_MHAIOJackdb_IOStrError
#define IODestroy MHA_STATIC_MHAIOJackdb_IODestroy
#define dummy_interface_test MHA_STATIC_MHAIOJackdb_dummy_interface_test
© 2005-2019 HörTech gGmbH, Oldenburg

6.136

MHAIOJackdb.cpp File Reference

1053

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.136.1

Macro Definition Documentation

6.136.1.1

#define ERR_SUCCESS 0

6.136.1.2

#define ERR_IHANDLE -1

6.136.1.3

#define ERR_USER -1000

6.136.1.4

#define MAX_USER_ERR 0x500

6.136.1.5

#define IOInit MHA_STATIC_MHAIOJackdb_IOInit

6.136.1.6

#define IOPrepare MHA_STATIC_MHAIOJackdb_IOPrepare

6.136.1.7

#define IOStart MHA_STATIC_MHAIOJackdb_IOStart

6.136.1.8

#define IOStop MHA_STATIC_MHAIOJackdb_IOStop

6.136.1.9

#define IORelease MHA_STATIC_MHAIOJackdb_IORelease

6.136.1.10

#define IOSetVar MHA_STATIC_MHAIOJackdb_IOSetVar

6.136.1.11

#define IOStrError MHA_STATIC_MHAIOJackdb_IOStrError

6.136.1.12

#define IODestroy MHA_STATIC_MHAIOJackdb_IODestroy

© 2005-2019 HörTech gGmbH, Oldenburg

1054

6.136.1.13
6.136.2
6.136.2.1

CONTENTS

#define dummy_interface_test MHA_STATIC_MHAIOJackdb_dummy_interface_test

Function Documentation
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.136.2.2

int IOPrepare (
void ∗ handle,
int nch_in,
int nch_out )

6.136.2.3

int IOStart (
void ∗ handle )

6.136.2.4

int IOStop (
void ∗ handle )

6.136.2.5

int IORelease (
void ∗ handle )

6.136.2.6

int IOSetVar (
void ∗ handle,
const char ∗ command,
char ∗ retval,
unsigned int maxretlen )

6.136.2.7

const char∗ IOStrError (
void ∗ handle,
int err )

6.136.2.8

void IODestroy (
void ∗ handle )

6.136.2.9

void dummy_interface_test (
void )

6.136.3

Variable Documentation

© 2005-2019 HörTech gGmbH, Oldenburg

6.137

MHAIOParser.cpp File Reference

6.136.3.1

6.137

1055

char user_err_msg[MAX_USER_ERR] = "" [static]

MHAIOParser.cpp File Reference

Classes
• class io_parser_t
Main class for Parser IO.

Macros
•
•
•
•
•
•
•
•
•
•
•
•
•

#define ERR_SUCCESS 0
#define ERR_IHANDLE -1
#define ERR_USER -1000
#define MAX_USER_ERR 0x500
#define IOInit MHA_STATIC_MHAIOParser_IOInit
#define IOPrepare MHA_STATIC_MHAIOParser_IOPrepare
#define IOStart MHA_STATIC_MHAIOParser_IOStart
#define IOStop MHA_STATIC_MHAIOParser_IOStop
#define IORelease MHA_STATIC_MHAIOParser_IORelease
#define IOSetVar MHA_STATIC_MHAIOParser_IOSetVar
#define IOStrError MHA_STATIC_MHAIOParser_IOStrError
#define IODestroy MHA_STATIC_MHAIOParser_IODestroy
#define dummy_interface_test MHA_STATIC_MHAIOParser_dummy_interface_test

Functions
• int IOInit (int fragsize, float, IOProcessEvent_t proc_event, void ∗proc_handle, IO←StartedEvent_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-2019 HörTech gGmbH, Oldenburg

1056

6.137.1

CONTENTS

Macro Definition Documentation

6.137.1.1

#define ERR_SUCCESS 0

6.137.1.2

#define ERR_IHANDLE -1

6.137.1.3

#define ERR_USER -1000

6.137.1.4

#define MAX_USER_ERR 0x500

6.137.1.5

#define IOInit MHA_STATIC_MHAIOParser_IOInit

6.137.1.6

#define IOPrepare MHA_STATIC_MHAIOParser_IOPrepare

6.137.1.7

#define IOStart MHA_STATIC_MHAIOParser_IOStart

6.137.1.8

#define IOStop MHA_STATIC_MHAIOParser_IOStop

6.137.1.9

#define IORelease MHA_STATIC_MHAIOParser_IORelease

6.137.1.10

#define IOSetVar MHA_STATIC_MHAIOParser_IOSetVar

6.137.1.11

#define IOStrError MHA_STATIC_MHAIOParser_IOStrError

6.137.1.12

#define IODestroy MHA_STATIC_MHAIOParser_IODestroy

6.137.1.13

#define dummy_interface_test MHA_STATIC_MHAIOParser_dummy_interface_test

6.137.2
6.137.2.1

Function Documentation
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.137.2.2

int IOPrepare (
void ∗ handle,
int nch_in,
int nch_out )

© 2005-2019 HörTech gGmbH, Oldenburg

6.138

MHAIOPortAudio.cpp File Reference

6.137.2.3

int IOStart (
void ∗ handle )

6.137.2.4

int IOStop (
void ∗ handle )

6.137.2.5

int IORelease (
void ∗ handle )

6.137.2.6

int IOSetVar (
void ∗ handle,
const char ∗ command,
char ∗ retval,
unsigned int maxretlen )

6.137.2.7

const char∗ IOStrError (
void ∗ handle,
int err )

6.137.2.8

void IODestroy (
void ∗ handle )

6.137.2.9

void dummy_interface_test (
void )

6.137.3

Variable Documentation

6.137.3.1

6.138

char user_err_msg[MAX_USER_ERR] [static]

MHAIOPortAudio.cpp File Reference

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

Namespaces
• MHAIOPortAudio
© 2005-2019 HörTech gGmbH, Oldenburg

1057

1058

CONTENTS

Macros
• #define ERR_SUCCESS 0
• #define ERR_IHANDLE -1
• #define ERR_USER -1000
• #define MAX_USER_ERR 0x500
• #define IOInit MHA_STATIC_MHAIOPortAudio_IOInit
• #define IOPrepare MHA_STATIC_MHAIOPortAudio_IOPrepare
• #define IOStart MHA_STATIC_MHAIOPortAudio_IOStart
• #define IOStop MHA_STATIC_MHAIOPortAudio_IOStop
• #define IORelease MHA_STATIC_MHAIOPortAudio_IORelease
• #define IOSetVar MHA_STATIC_MHAIOPortAudio_IOSetVar
• #define IOStrError MHA_STATIC_MHAIOPortAudio_IOStrError
• #define IODestroy MHA_STATIC_MHAIOPortAudio_IODestroy
• #define dummy_interface_test MHA_STATIC_MHAIOPortAudio_dummy_interface_←test

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 ∗user←Data)
• 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] = ""
• PaStreamCallback portaudio_callback
© 2005-2019 HörTech gGmbH, Oldenburg

6.138

MHAIOPortAudio.cpp File Reference

6.138.1

Macro Definition Documentation

1059

6.138.1.1

#define ERR_SUCCESS 0

6.138.1.2

#define ERR_IHANDLE -1

6.138.1.3

#define ERR_USER -1000

6.138.1.4

#define MAX_USER_ERR 0x500

6.138.1.5

#define IOInit MHA_STATIC_MHAIOPortAudio_IOInit

6.138.1.6

#define IOPrepare MHA_STATIC_MHAIOPortAudio_IOPrepare

6.138.1.7

#define IOStart MHA_STATIC_MHAIOPortAudio_IOStart

6.138.1.8

#define IOStop MHA_STATIC_MHAIOPortAudio_IOStop

6.138.1.9

#define IORelease MHA_STATIC_MHAIOPortAudio_IORelease

6.138.1.10

#define IOSetVar MHA_STATIC_MHAIOPortAudio_IOSetVar

6.138.1.11

#define IOStrError MHA_STATIC_MHAIOPortAudio_IOStrError

6.138.1.12

#define IODestroy MHA_STATIC_MHAIOPortAudio_IODestroy

6.138.1.13

#define dummy_interface_test MHA_STATIC_MHAIOPortAudio_dummy_interface_test

6.138.2

Function Documentation

6.138.2.1

int portaudio_callback (
const void ∗ input,
void ∗ output,
unsigned long frameCount,
const PaStreamCallbackTimeInfo ∗ timeInfo,
PaStreamCallbackFlags statusFlags,
void ∗ userData )

6.138.2.2

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-2019 HörTech gGmbH, Oldenburg

1060

6.138.2.3

int IOPrepare (
void ∗ handle,
int nch_in,
int nch_out )

6.138.2.4

int IOStart (

CONTENTS

void ∗ handle )
6.138.2.5

int IOStop (
void ∗ handle )

6.138.2.6

int IORelease (
void ∗ handle )

6.138.2.7

int IOSetVar (
void ∗ handle,
const char ∗ command,
char ∗ retval,
unsigned int maxretlen )

6.138.2.8

const char∗ IOStrError (
void ∗ handle,
int err )

6.138.2.9

void IODestroy (
void ∗ handle )

6.138.2.10

void dummy_interface_test (
void )

6.138.3

Variable Documentation

6.138.3.1

char user_err_msg[MAX_USER_ERR] = "" [static]

6.138.3.2

PaStreamCallback portaudio_callback

6.139

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.
© 2005-2019 HörTech gGmbH, Oldenburg

6.139

MHAIOTCP.cpp File Reference

1061

Macros
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

#define ERR_SUCCESS 0
#define ERR_IHANDLE -1
#define ERR_USER -1000
#define MAX_USER_ERR 0x2000
#define MHA_ErrorMsg2(x, y) MHA_Error(__FILE__,__LINE__,(x),(y))
#define MHA_ErrorMsg3(x, y, z) MHA_Error(__FILE__,__LINE__,(x),(y),(z))
#define MIN_TCP_PORT 0
#define MIN_TCP_PORT_STR "0"
#define MAX_TCP_PORT 65535
#define MAX_TCP_PORT_STR "65535"
#define IOInit MHA_STATIC_MHAIOTCP_IOInit
#define IOPrepare MHA_STATIC_MHAIOTCP_IOPrepare
#define IOStart MHA_STATIC_MHAIOTCP_IOStart
#define IOStop MHA_STATIC_MHAIOTCP_IOStop
#define IORelease MHA_STATIC_MHAIOTCP_IORelease
#define IOSetVar MHA_STATIC_MHAIOTCP_IOSetVar
#define IOStrError MHA_STATIC_MHAIOTCP_IOStrError
#define IODestroy MHA_STATIC_MHAIOTCP_IODestroy
#define dummy_interface_test MHA_STATIC_MHAIOTCP_dummy_interface_test

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]
© 2005-2019 HörTech gGmbH, Oldenburg

1062

6.139.1

CONTENTS

Macro Definition Documentation

6.139.1.1

#define ERR_SUCCESS 0

6.139.1.2

#define ERR_IHANDLE -1

6.139.1.3

#define ERR_USER -1000

6.139.1.4

#define MAX_USER_ERR 0x2000

6.139.1.5

#define MHA_ErrorMsg2(
x,
y ) MHA_Error(__FILE__,__LINE__,(x),(y))

6.139.1.6

#define MHA_ErrorMsg3(
x,
y,
z ) MHA_Error(__FILE__,__LINE__,(x),(y),(z))

6.139.1.7

#define MIN_TCP_PORT 0

6.139.1.8

#define MIN_TCP_PORT_STR "0"

6.139.1.9

#define MAX_TCP_PORT 65535

6.139.1.10

#define MAX_TCP_PORT_STR "65535"

6.139.1.11

#define IOInit MHA_STATIC_MHAIOTCP_IOInit

6.139.1.12

#define IOPrepare MHA_STATIC_MHAIOTCP_IOPrepare

6.139.1.13

#define IOStart MHA_STATIC_MHAIOTCP_IOStart

6.139.1.14

#define IOStop MHA_STATIC_MHAIOTCP_IOStop

6.139.1.15

#define IORelease MHA_STATIC_MHAIOTCP_IORelease

6.139.1.16

#define IOSetVar MHA_STATIC_MHAIOTCP_IOSetVar

6.139.1.17

#define IOStrError MHA_STATIC_MHAIOTCP_IOStrError

6.139.1.18

#define IODestroy MHA_STATIC_MHAIOTCP_IODestroy

6.139.1.19

#define dummy_interface_test MHA_STATIC_MHAIOTCP_dummy_interface_test

© 2005-2019 HörTech gGmbH, Oldenburg

6.139

MHAIOTCP.cpp File Reference

6.139.2

Function Documentation

6.139.2.1

static int copy_error (
MHA_Error & e ) [static]

6.139.2.2

static void∗ thread_startup_function (
void ∗ parameter ) [static]

6.139.2.3

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.139.2.4

int IOPrepare (
void ∗ handle,
int num_inchannels,
int num_outchannels )

6.139.2.5

int IOStart (
void ∗ handle )

6.139.2.6

int IOStop (
void ∗ handle )

6.139.2.7

int IORelease (
void ∗ handle )

6.139.2.8

int IOSetVar (
void ∗ handle,
const char ∗ cmd,
char ∗ retval,
unsigned int len )

6.139.2.9

6.139.2.10

const char∗ IOStrError (
void ∗ handle,
int err )
void IODestroy (
void ∗ handle )

© 2005-2019 HörTech gGmbH, Oldenburg

1063

1064

6.139.2.11

6.139.3

void dummy_interface_test (
void )

Variable Documentation

6.139.3.1

6.140

CONTENTS

char user_err_msg[MAX_USER_ERR] [static]

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.140.1

Function Documentation

6.140.1.1

static void jack_error_handler (
const char ∗ msg ) [static]

6.140.1.2

static int dummy_jack_proc_cb (
jack_nframes_t ,
void ∗ ) [static]

6.140.1.3

void make_friendly_number (
jack_default_audio_sample_t & x ) [inline]

6.140.2

Variable Documentation

6.140.2.1

char last_jack_err_msg[MAX_USER_ERR] = ""

6.140.2.2

int last_jack_err = 0

6.141

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.
© 2005-2019 HörTech gGmbH, Oldenburg

6.141

mhajack.h File Reference

1065

Namespaces
• MHAJack
Classes and functions for openMHA and JACK interaction.

Macros
• #define MHAJACK_FW_STARTED 1
• #define MHAJACK_STOPPED 2
• #define MHAJACK_STARTING 8
• #define IO_ERROR_JACK 11
• #define IO_ERROR_MHAJACKLIB 12
• #define MAX_USER_ERR 0x500

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]
© 2005-2019 HörTech gGmbH, Oldenburg

1066

6.141.1

Macro Definition Documentation

6.141.1.1

#define MHAJACK_FW_STARTED 1

6.141.1.2

#define MHAJACK_STOPPED 2

6.141.1.3

#define MHAJACK_STARTING 8

6.141.1.4

#define IO_ERROR_JACK 11

6.141.1.5

#define IO_ERROR_MHAJACKLIB 12

6.141.1.6

#define MAX_USER_ERR 0x500

6.141.2

Variable Documentation

6.141.2.1

6.142

CONTENTS

char last_jack_err_msg[MAX_USER_ERR]

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-2019 HörTech gGmbH, Oldenburg

6.143

mhapluginloader.cpp File Reference

6.142.1

Macro Definition Documentation

6.142.1.1

#define MAX_LINE_LENGTH 0x100000

6.142.1.2

#define HELP_TEXT

6.142.1.3

#define GREETING_TEXT

6.142.2

1067

Function Documentation

6.142.2.1

void create_lock (
unsigned int p,
std::string s )

6.142.2.2

void remove_lock (
unsigned int p )

6.142.2.3

int mhamain (
int argc,
char ∗ argv[ ] )

6.143

mhapluginloader.cpp File Reference

6.144

mhapluginloader.h File Reference

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.
© 2005-2019 HörTech gGmbH, Oldenburg

1068

CONTENTS

Functions
• const char ∗ PluginLoader::mhastrdomain (mha_domain_t)
• void PluginLoader::mhaconfig_compare (const mhaconfig_t &req, const mhaconfig←_t &avail, const std::string &pref="")
Compare two mhaconfig_t ( p. 504) structures, and report differences as an error.

6.145

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.145.1

Function Documentation

6.145.1.1

void write_wave (
const mha_wave_t & sig,
const char ∗ fname,
const float & srate,
const int & format )

6.145.1.2

unsigned int validator_channels (
std::vector< int > channel_map,
unsigned int channels )

6.145.1.3

unsigned int validator_length (
unsigned int maxlen,
unsigned int frames,
unsigned int startpos )

6.146

mhasndfile.h File Reference

Classes
• class MHASndFile::sf_t
• class MHASndFile::sf_wave_t

Namespaces
• MHASndFile
© 2005-2019 HörTech gGmbH, Oldenburg

6.147

multibandcompressor.cpp File Reference

1069

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_ENDIAN_FILE)

6.146.1

Function Documentation

6.146.1.1

6.147

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 )

multibandcompressor.cpp File Reference

Classes
• class multibandcompressor::plugin_signals_t
• class multibandcompressor::fftfb_plug_t
• class multibandcompressor::interface_t

Namespaces
• multibandcompressor

6.148

nlms_wave.cpp File Reference

Classes
• class rt_nlms_t
• class nlms_t

Macros
•
•
•
•
•
•
•

#define NORMALIZATION_TYPES "[none default sum]"
#define NORM_NONE 0
#define NORM_DEFAULT 1
#define NORM_SUM 2
#define ESTIMATION_TYPES "[previous current]"
#define ESTIM_PREV 0
#define ESTIM_CUR 1

© 2005-2019 HörTech gGmbH, Oldenburg

1070

CONTENTS

Functions
• void make_friendly_number_by_limiting (mha_real_t &x)

6.148.1

Macro Definition Documentation

6.148.1.1

#define NORMALIZATION_TYPES "[none default sum]"

6.148.1.2

#define NORM_NONE 0

6.148.1.3

#define NORM_DEFAULT 1

6.148.1.4

#define NORM_SUM 2

6.148.1.5

#define ESTIMATION_TYPES "[previous current]"

6.148.1.6

#define ESTIM_PREV 0

6.148.1.7

#define ESTIM_CUR 1

6.148.2

Function Documentation

6.148.2.1

6.149

void make_friendly_number_by_limiting (
mha_real_t & x ) [inline]

noise.cpp File Reference

Classes
• class cfg_t
• class noise_t

6.150

noisePowProposedScale.cpp File Reference

Classes
• class noisePowProposedScale::noisePowProposed
• class noisePowProposedScale::interface_t

Namespaces
• noisePowProposedScale
© 2005-2019 HörTech gGmbH, Oldenburg

6.151

overlapadd.cpp File Reference

1071

Macros
• #define POWSPEC_FACTOR 0.0025

6.150.1

Macro Definition Documentation

6.150.1.1

6.151

#define POWSPEC_FACTOR 0.0025

overlapadd.cpp File Reference

Classes
• class overlapadd::overlapadd_t
• class overlapadd::overlapadd_if_t

Namespaces
• overlapadd

6.152

plingploing.cpp File Reference

Classes
• class plingploing::plingploing_t
Run-time configuration of the plingploing music generator.

• class plingploing::if_t
Plugin class of the plingploing music generator.

Namespaces
• plingploing
All classes for the plingploing music generator live in this namespace.

Functions
• double plingploing::drand (double a, double b)
© 2005-2019 HörTech gGmbH, Oldenburg

1072

6.153

pluginbrowser.cpp File Reference

6.154

pluginbrowser.h File Reference

CONTENTS

Classes
• class plugindescription_t
• class pluginloader_t
• class pluginbrowser_t

6.155

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.155.1

Macro Definition Documentation

6.155.1.1

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this,
&prediction_error::update_cfg)

6.155.1.2

#define INSERT_PATCH(
var ) insert_member(var); PATCH_VAR(var)

6.155.2

Function Documentation

6.155.2.1

6.156

void make_friendly_number_by_limiting (
mha_real_t & x ) [inline]

prediction_error.h File Reference

Classes
• class prediction_error_config
• class prediction_error
© 2005-2019 HörTech gGmbH, Oldenburg

6.157

resampling.cpp File Reference

6.157

resampling.cpp File Reference

Classes
• class MHAPlugin_Resampling::resampling_t
• class MHAPlugin_Resampling::resampling_if_t

Namespaces
• MHAPlugin_Resampling

6.158

rmslevel.cpp File Reference

Classes
• class mon_t
• class rmslevel_t
• class rmslevel_if_t

6.159

route.cpp File Reference

Classes
• class route::process_t
• class route::interface_t

Namespaces
• route

6.160

save_spec.cpp File Reference

Classes
• class save_spec_t

6.161

save_wave.cpp File Reference

Classes
• class save_wave_t
© 2005-2019 HörTech gGmbH, Oldenburg

1073

1074

6.162

CONTENTS

shadowfilter_begin.cpp File Reference

Classes
• class shadowfilter_begin::cfg_t
• class shadowfilter_begin::shadowfilter_begin_t

Namespaces
• shadowfilter_begin

6.163

shadowfilter_end.cpp File Reference

Classes
• class shadowfilter_end::cfg_t
• class shadowfilter_end::shadowfilter_end_t

Namespaces
• shadowfilter_end

6.164

sine.cpp File Reference

Classes
• struct sine_cfg_t
• class sine_t

6.165

smoothgains_bridge.cpp File Reference

Classes
• class smoothgains_bridge::smoothspec_wrap_t
• class smoothgains_bridge::overlapadd_if_t

Namespaces
• smoothgains_bridge
© 2005-2019 HörTech gGmbH, Oldenburg

6.166

softclip.cpp File Reference

6.166

softclip.cpp File Reference

Classes
• class cfg_t
• class softclip_t

6.167

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)

6.167.1

Function Documentation

6.167.1.1

unsigned int max (
unsigned int a,
unsigned int b ) [inline]

6.167.1.2

unsigned int min (
unsigned int a,
unsigned int b ) [inline]

6.168

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-2019 HörTech gGmbH, Oldenburg

1075

1076

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.168.1

Macro Definition Documentation

6.168.1.1

#define NUM_ENTR_MHAORIG 76

6.168.1.2

#define NUM_ENTR_LTASS 25

© 2005-2019 HörTech gGmbH, Oldenburg

6.168

6.168.1.3
6.168.2

speechnoise.cpp File Reference

1077

#define NUM_ENTR_OLNOISE 49
Function Documentation

6.168.2.1

float fhz2bandno (
float x )

6.168.2.2

float erb_hz_f_hz (
float f_hz )

6.168.2.3

float hz2hz (
float 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
6.168.2.4

6.168.3

float bandw_correction (
float f,
float ldb )
Variable Documentation

6.168.3.1

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.168.3.2

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-2019 HörTech gGmbH, Oldenburg

1078

CONTENTS

6.168.3.3

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.168.3.4

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.168.3.5

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.168.3.6

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.168.3.7

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.168.3.8

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.169

speechnoise.h File Reference

Classes
• class speechnoise_t

6.170

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. 751) instance manages the plugin that performs processing on the
reduced set of channels.

• class MHAPlugin_Split::split_t
Implements split plugin.
© 2005-2019 HörTech gGmbH, Oldenburg

6.171

steerbf.cpp File Reference

1079

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
6.170.1

Detailed Description

Source code for the split plugin. The split plugin splits the audio signal by channel. The splitted
paths execute in parallel.

6.170.2

Macro Definition Documentation

6.170.2.1

#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.170.2.2

#define posixthreads 1

6.170.2.3

#define default_thread_platform_string "posix"

6.170.2.4

#define default_thread_platform_type posix_threads_t

6.171

steerbf.cpp File Reference

Macros
• #define PATCH_VAR(var) patchbay.connect(&var.valuechanged, this,
::update_cfg)
• #define INSERT_PATCH(var) insert_member(var); PATCH_VAR(var)
© 2005-2019 HörTech gGmbH, Oldenburg

&steerbf←-

1080

6.171.1

CONTENTS

Macro Definition Documentation

6.171.1.1

#define PATCH_VAR(
var ) patchbay.connect(&var.valuechanged, this, &steerbf::update_cfg)

6.171.1.2

#define INSERT_PATCH(
var ) insert_member(var); PATCH_VAR(var)

6.172

steerbf.h File Reference

Classes
• class parser_int_dyn
• class steerbf_config
• class steerbf

6.173

testalsadevice.c File Reference

Functions
• int main (int argc, char ∗∗argv)

6.173.1

Function Documentation

6.173.1.1

int main (
int argc,
char ∗∗ argv )

6.174

testplugin.cpp File Reference

Classes
•
•
•
•

class testplugin::config_parser_t
class testplugin::ac_parser_t
class testplugin::signal_parser_t
class testplugin::if_t

Namespaces
• testplugin
© 2005-2019 HörTech gGmbH, Oldenburg

6.175

timoconfig.cpp File Reference

6.175

timoconfig.cpp File Reference

1081

Macros
•
•
•
•
•

#define LPSCALE (5.2429e+007)
#define POWSPEC_FACTOR 0.0025
#define OVERLAP_FACTOR 2
#define EPSILON (1e-10)
#define 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)
© 2005-2019 HörTech gGmbH, Oldenburg

6.180

upsample.cpp File Reference

6.179.1

Typedef Documentation

1083

6.179.1.1

typedef MHAPlugin::config_t rmslevelmeter

6.179.1.2

typedef MHAPlugin::plugin_t rtcalibrator

6.179.2

Function Documentation

6.179.2.1 speechnoise_t::noise_type_t kw_index2type (
unsigned int idx )
6.179.2.2

6.180

std::vector vint_0123n1 (
unsigned int n )

upsample.cpp File Reference

Classes
• class us_t

6.181

wave2spec.cpp File Reference

Classes
• class wave2spec_t
• class wave2spec_if_t

Macros
• #define MHAPLUGIN_OVERLOAD_OUTDOMAIN

6.181.1

Macro Definition Documentation

6.181.1.1

6.182

#define MHAPLUGIN_OVERLOAD_OUTDOMAIN

wavrec.cpp File Reference

Classes
• class wavwriter_t
• class wavrec_t
© 2005-2019 HörTech gGmbH, Oldenburg

1084

CONTENTS

Macros
• #define DEBUG(x) std::cerr << __FILE__ << ":" << __LINE__ << " " << #x << "="
<< x << std::endl

6.182.1

Macro Definition Documentation

6.182.1.1

#define DEBUG(
x ) std::cerr << __FILE__ << ":" << __LINE__ << " " << #x << "=" << x
<< std::endl

6.183

windowselector.cpp File Reference

6.184

windowselector.h File Reference

Classes
• class windowselector_t
A combination of mha parser variables to describe an overalapadd analysis window.

© 2005-2019 HörTech gGmbH, Oldenburg

Index
_MHA_AC_CHAR
testplugin::ac_parser_t, 931
_MHA_AC_DOUBLE
testplugin::ac_parser_t, 931
_MHA_AC_FLOAT
testplugin::ac_parser_t, 931
_MHA_AC_INT
testplugin::ac_parser_t, 931
_MHA_AC_MHACOMPLEX
testplugin::ac_parser_t, 931
_MHA_AC_MHAREAL
testplugin::ac_parser_t, 931
__MHA_FUN__
mha_defs.h, 998
__attribute__
mha_plugin.hh, 1024
__declspec
example5.cpp, 977
example6.cpp, 977
mha_defs.h, 998
mha_plugin.hh, 1023
_cf
DynComp::dc_afterburn_t, 296
_channels
DynComp::dc_afterburn_t, 296
_conjugate
Complex arithmetics in the openMHA, 68
_linphase_asym
MHAFilter::smoothspec_t, 568
_prepare
testplugin::if_t, 935
_reciprocal
Complex arithmetics in the openMHA, 69
_srate
DynComp::dc_afterburn_t, 296
_steerbf
steerbf_config, 929
_unknown
testplugin::ac_parser_t, 931
∼Async_Notify
MHA_TCP::Async_Notify, 469
∼Connection
MHA_TCP::Connection, 473
∼Delay
ADM::Delay, 192
∼Event_Watcher
MHA_TCP::Event_Watcher, 479
∼Linearphase_FIR

ADM::Linearphase_FIR, 194
∼MHA_Error
MHA_Error, 446
∼Server
MHA_TCP::Server, 482
∼Thread
MHA_TCP::Thread, 489
∼Timeout_Watcher
MHA_TCP::Timeout_Watcher, 492
∼Wakeup_Event
MHA_TCP::Wakeup_Event, 494
∼acConcat_wave
acConcat_wave, 152
∼acConcat_wave_config
acConcat_wave_config, 154
∼acPooling_wave
acPooling_wave, 161
∼acPooling_wave_config
acPooling_wave_config, 163
∼acSteer
acSteer, 173
∼acSteer_config
acSteer_config, 175
∼acTransform_wave
acTransform_wave, 177
∼acTransform_wave_config
acTransform_wave_config, 179
∼acmon_t
acmon::acmon_t, 158
∼acspace2matrix_t
MHA_AC::acspace2matrix_t, 417
∼adm_rtconfig_t
adm_rtconfig_t, 199
∼algo_comm_class_t
MHAKernel::algo_comm_class_t, 604
∼alsa_base_t
alsa_base_t, 207
∼alsa_t
alsa_t, 211
∼analysepath_t
analysepath_t, 217
∼analysispath_if_t
analysispath_if_t, 220
∼bark2hz_t
MHAOvlFilter::barkscale::bark2hz_t, 614
∼base_t
MHAParser::base_t, 637
∼bbcalib_interface_t

1086
bbcalib_interface_t, 229
∼blockprocessing_polyphase_resampling_t
MHAFilter::blockprocessing_polyphase←_resampling_t, 518
∼c_ifc_parser_t
MHAParser::c_ifc_parser_t, 649
∼cfg_chain_t
MHAPlugin::cfg_chain_t, 723
∼cfg_t
acsave::cfg_t, 168
∼config_t
MHAPlugin::config_t, 726
∼connector_base_t
MHAEvents::connector_base_t, 506
∼connector_t
MHAEvents::connector_t, 509
∼db_if_t
db_if_t, 250
∼delay_spec_t
MHASignal::delay_spec_t, 766
∼delay_t
MHASignal::delay_t, 767
∼delay_wave_t
MHASignal::delay_wave_t, 769
∼doasvm_classification
doasvm_classification, 280
∼doasvm_classification_config
doasvm_classification_config, 282
∼doasvm_feature_extraction
doasvm_feature_extraction, 284
∼doasvm_feature_extraction_config
doasvm_feature_extraction_config, 286
∼domain_handler_t
MHAPlugin_Split::domain_handler_t, 738
∼double_t
MHA_AC::double_t, 419
∼doublebuffer_t
MHASignal::doublebuffer_t, 771
∼dynamiclib_t
dynamiclib_t, 292
∼emitter_t
MHAEvents::emitter_t, 511
∼fft_t
MHASignal::fft_t, 773
∼fftfb_t
MHAOvlFilter::fftfb_t, 617
∼fftfilter_t
MHAFilter::fftfilter_t, 525
∼fftfilterbank_t
MHAFilter::fftfilterbank_t, 529
∼filter_t

INDEX
MHAFilter::filter_t, 533
∼float_t
MHA_AC::float_t, 420
∼fourway_processor_t
PluginLoader::fourway_processor_t, 878
∼fshift_config_t
fshift::fshift_config_t, 332
∼fshift_t
fshift::fshift_t, 335
∼fw_t
fw_t, 345
∼gaintable_t
DynComp::gaintable_t, 301
∼gamma_flt_t
MHAFilter::gamma_flt_t, 536
∼gtfb_analyzer_cfg_t
gtfb_analyzer::gtfb_analyzer_cfg_t, 354
∼hanning_ramps_t
hanning_ramps_t, 358
∼hilbert_shifter_t
fshift_hilbert::hilbert_shifter_t, 341
∼hilbert_t
MHASignal::hilbert_t, 777
∼hz2bark_t
MHAOvlFilter::barkscale::hz2bark_t, 615
∼int_t
MHA_AC::int_t, 421
∼io_file_t
io_file_t, 366
∼io_lib_t
io_lib_t, 370
∼io_parser_t
io_parser_t, 373
∼io_portaudio_t
MHAIOPortAudio::io_portaudio_t, 586
∼io_tcp_fwcb_t
io_tcp_fwcb_t, 376
∼io_tcp_parser_t
io_tcp_parser_t, 380
∼io_tcp_sound_t
io_tcp_sound_t, 385
∼io_tcp_t
io_tcp_t, 390
∼linear_table_t
MHATableLookup::linear_table_t, 826
∼lpc
lpc, 396
∼lpc_bl_predictor
lpc_bl_predictor, 399
∼lpc_bl_predictor_config
lpc_bl_predictor_config, 401
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX

∼lpc_burglattice
lpc_burglattice, 403
∼lpc_burglattice_config
lpc_burglattice_config, 405
∼lpc_config
lpc_config, 407
∼matrix_t
MHASignal::matrix_t, 785
∼mha_dblbuf_t
mha_dblbuf_t, 434
∼mha_fifo_lw_t
mha_fifo_lw_t, 448
∼mha_fifo_posix_threads_t
mha_fifo_posix_threads_t, 451
∼mha_fifo_t
mha_fifo_t, 454
∼mha_fifo_thread_guard_t
mha_fifo_thread_guard_t, 457
∼mha_fifo_thread_platform_t
mha_fifo_thread_platform_t, 458
∼mha_rt_fifo_element_t
mha_rt_fifo_element_t, 461
∼mha_rt_fifo_t
mha_rt_fifo_t, 463
∼mha_stash_environment_variable_t
mha_stash_environment_variable_t, 467
∼mhaplug_cfg_t
mhaplug_cfg_t, 722
∼mhapluginloader_t
MHAParser::mhapluginloader_t, 683
PluginLoader::mhapluginloader_t, 882
∼mhaserver_t
mhaserver_t, 762
∼overlapadd_if_t
overlapadd::overlapadd_if_t, 860
smoothgains_bridge::overlapadd_if_←t, 913
∼overlapadd_t
overlapadd::overlapadd_t, 862
∼parser_t
MHAParser::parser_t, 690
∼partitioned_convolution_t
MHAFilter::partitioned_convolution_t, 556
∼patchbay_t
MHAEvents::patchbay_t, 512
∼plug_t
plug_t, 871
∼plugin_t
MHAPlugin::plugin_t, 730
∼pluginloader_t
pluginloader_t, 886
© 2005-2019 HörTech gGmbH, Oldenburg

1087

∼plugs_t
mhachain::plugs_t, 502
∼port_t
MHAJack::port_t, 601
∼posix_threads_t
MHAPlugin_Split::posix_threads_t, 745
∼prediction_error
prediction_error, 887
∼prediction_error_config
prediction_error_config, 890
∼rt_nlms_t
rt_nlms_t, 899
∼save_var_base_t
ac2lsl::save_var_base_t, 136
∼save_var_t
ac2lsl::save_var_t, 139
ac2lsl::save_var_t< mha_complex_t >,
141
acsave::save_var_t, 170
∼sf_t
MHASndFile::sf_t, 823
∼sine_t
sine_t, 911
∼smoothspec_t
MHAFilter::smoothspec_t, 567
∼spec2wave_t
spec2wave_t, 922
∼spec_fader_t
spec_fader_t, 924
∼spectrum_t
MHA_AC::spectrum_t, 423
MHASignal::spectrum_t, 802
∼split_t
MHAPlugin_Split::split_t, 749
∼splitted_part_t
MHAPlugin_Split::splitted_part_t, 753
∼steerbf
steerbf, 927
∼steerbf_config
steerbf_config, 929
∼table_t
MHATableLookup::table_t, 829
∼thread_platform_t
MHAPlugin_Split::thread_platform_t, 757
∼timoConfig
timoConfig, 942
∼timoSmooth
timoSmooth, 945
∼uint_vector_t
MHASignal::uint_vector_t, 810
∼uni_processor_t

1088
MHAPlugin_Split::uni_processor_t, 759
∼wave2spec_t
wave2spec_t, 952
∼waveform_t
MHA_AC::waveform_t, 426
MHASignal::waveform_t, 814
∼wavwriter_t
wavwriter_t, 956
∼windowselector_t
windowselector_t, 958
A
lpc_config, 408
MHAFilter::filter_t, 534
MHAFilter::gamma_flt_t, 537
MHAFilter::iir_filter_t, 542
a
MHAParser::base_t::replace_t, 643
A_
MHAFilter::complex_bandpass_t, 522
MHAFilter::iir_ord1_real_t, 545
AC_DIM_MISMATCH
mha_algo_comm.cpp, 995
AC_INVALID_HANDLE
mha_algo_comm.cpp, 995
AC_INVALID_NAME
mha_algo_comm.cpp, 995
AC_INVALID_OUTPTR
mha_algo_comm.cpp, 995
AC_STRING_TRUNCATED
mha_algo_comm.cpp, 995
AC_SUCCESS
mha_algo_comm.cpp, 995
AC_TYPE_MISMATCH
mha_algo_comm.cpp, 995
ACSAVE_FMT_MAT4
acsave.cpp, 963
ACSAVE_FMT_TXT
acsave.cpp, 963
ACSAVE_FMT_M
acsave.cpp, 963
ACSAVE_SFMT_MAT4
acsave.cpp, 963
ACSAVE_SFMT_TXT
acsave.cpp, 963
ACSAVE_SFMT_M
acsave.cpp, 963
ADM::ADM< F >, 188
ADM::ADM
ADM, 189
beta, 190
m_beta, 190

INDEX
m_decomb, 190
m_delay_back, 190
m_delay_front, 190
m_lp_bf, 190
m_lp_result, 190
m_mu_beta, 190
m_powerfilter_coeff, 190
m_powerfilter_norm, 190
m_powerfilter_state, 190
process, 189
ADM::Delay
∼Delay, 192
Delay, 191
m_coeff, 192
m_fullsamples, 192
m_norm, 192
m_now_in, 192
m_state, 192
process, 192
ADM::Delay< F >, 191
ADM::Linearphase_FIR< F >, 193
ADM::Linearphase_FIR
∼Linearphase_FIR, 194
Linearphase_FIR, 193
m_alphas, 194
m_now, 194
m_order, 194
m_output, 194
process, 194
ADM, 80
ADM::ADM, 189
C, 81
DELAY_FREQ, 81
PI, 81
START_BETA, 81
subsampledelay_coeff, 81
ALGO_COMM_ID_STR
mha_algo_comm.hh, 997
ASSERT_EQUAL_DIM_PTR
mha_signal.cpp, 1028
ASSERT_EQUAL_DIM
mha_signal.cpp, 1028
ASYNC_CONNECT_STARTED
mha_tcp.cpp, 1040
abandonned
mha_rt_fifo_element_t, 461
abs
Complex arithmetics in the openMHA, 67
abs2
Complex arithmetics in the openMHA, 67
ac
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
ac2lsl::cfg_t, 135
ac2wave_t, 150
acConcat_wave_config, 154
acPooling_wave_config, 164
acTransform_wave_config, 179
acmon::acmon_t, 159
acsave::cfg_t, 169
acsave::save_var_t, 171
doasvm_classification_config, 282
fw_t, 347
latex_doc_t, 394
lpc_bl_predictor_config, 401
lpc_burglattice_config, 405
MHA_AC::ac2matrix_helper_t, 413
MHA_AC::double_t, 419
MHA_AC::float_t, 420
MHA_AC::int_t, 421
MHA_AC::spectrum_t, 424
MHA_AC::waveform_t, 427
MHAKernel::algo_comm_class_t, 606
MHAMultiSrc::base_t, 608
MHAPlugin::plugin_t, 732
mhachain::plugs_t, 502
PluginLoader::mhapluginloader_t, 884
prediction_error_config, 890
rt_nlms_t, 899
shadowfilter_end::cfg_t, 907
steerbf_config, 929
testplugin::if_t, 935
timoConfig, 942
AC variable, 4
ac2lsl, 78
types, 78
ac2lsl.cpp, 960
ac2lsl::ac2lsl_t, 130
ac2lsl_t, 132
activate, 133
get_all_names_from_ac_space, 132
is_first_run, 133
patchbay, 133
prepare, 132
process, 132
release, 132
rt_strict, 133
skip, 133
source_id, 133
update, 133
vars, 133
ac2lsl::cfg_t, 133
ac, 135
cfg_t, 134
© 2005-2019 HörTech gGmbH, Oldenburg

1089
check_vars, 135
create_or_replace_var, 135
process, 135
skip, 135
skipcnt, 135
source_id, 135
srate, 135
update_varlist, 135
varlist, 135
ac2lsl::save_var_base_t, 136
∼save_var_base_t, 136
data_type, 137
get_buf_address, 136
info, 137
num_entries, 137
send_frame, 136
set_buf_address, 137
ac2lsl::save_var_t
∼save_var_t, 139
buf, 140
data_type, 139
data_type_, 140
get_buf_address, 139
info, 139
num_entries, 139
save_var_t, 138
send_frame, 140
set_buf_address, 139
stream, 140
ac2lsl::save_var_t< mha_complex_t >, 140
∼save_var_t, 141
buf, 143
data_type, 142
get_buf_address, 142
info, 142
num_entries, 142
save_var_t, 141
send_frame, 142
set_buf_address, 142
stream, 143
ac2lsl::save_var_t< T >, 137
ac2lsl::type_info, 143
format, 143
name, 143
ac2lsl_t
ac2lsl::ac2lsl_t, 132
ac2matrix_helper_t
MHA_AC::ac2matrix_helper_t, 412
ac2matrix_t
MHA_AC::ac2matrix_t, 414
ac2osc.cpp, 960

1090
ac2osc_t, 144
ac2osc_t, 145
acspace, 147
b_record, 147
framerate, 147
host, 146
is_first_run, 147
lo_addr, 147
mode, 147
patchbay, 147
port, 146
prepare, 146
process, 146
release, 146
rt_strict, 147
rtmem, 147
send_osc_float, 146
skip, 147
skipcnt, 147
ttl, 147
update_mode, 146
vars, 147
ac2wave.cpp, 960
ac2wave_if_t, 148
ac2wave_if_t, 149
delay_ac, 149
delay_in, 149
gain_ac, 149
gain_in, 149
name, 149
patchbay, 149
prepare, 149
prepared, 149
process, 149
release, 149
update, 149
zeros, 149
ac2wave_t, 150
ac, 150
ac2wave_t, 150
channels, 150
delay_ac, 151
delay_in, 151
frames, 150
gain_ac, 151
gain_in, 151
name, 151
process, 150
w, 150
ac_
combc_t, 245

INDEX
MHAParser::mhapluginloader_t, 684
ac_fifo
analysepath_t, 218
ac_monitor_t
acmon::ac_monitor_t, 155
ac_monitor_type.cpp, 961
ac_monitor_type.hh, 961
ac_parser_t
testplugin::ac_parser_t, 931
acConcat_wave, 151
∼acConcat_wave, 152
acConcat_wave, 152
name_con_AC, 153
num_AC, 153
numchannels, 153
patchbay, 153
prefix_names_AC, 153
prepare, 153
process, 153
release, 153
samples_AC, 153
update_cfg, 153
acConcat_wave.cpp, 961
INSERT_PATCH, 961
PATCH_VAR, 961
acConcat_wave.h, 961
acConcat_wave_config, 154
∼acConcat_wave_config, 154
ac, 154
acConcat_wave_config, 154
numSamples_AC, 154
process, 154
strNames_AC, 154
vGCC_con, 154
vGCC, 154
acPooling_wave, 160
∼acPooling_wave, 161
acPooling_wave, 161
alpha, 162
like_ratio_name, 162
lower_threshold, 162
max_pool_ind_name, 162
neighbourhood, 162
numsamples, 162
p_biased_name, 162
p_name, 162
patchbay, 162
pool_name, 162
pooling_type, 162
pooling_wndlen, 162
prepare, 161
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
prob_bias, 162
process, 161
release, 162
update_cfg, 162
upper_threshold, 162
acPooling_wave.cpp, 962
INSERT_PATCH, 962
PATCH_VAR, 962
acPooling_wave.h, 962
acPooling_wave_config, 163
∼acPooling_wave_config, 163
ac, 164
acPooling_wave_config, 163
alpha, 164
c, 164
insert, 163
like_ratio, 164
low_thresh, 164
neigh, 164
p, 164
p_biased, 164
p_max, 164
pool, 164
pooling_ind, 164
pooling_option, 164
pooling_size, 164
prob_bias_func, 164
process, 163
raw_p_name, 164
up_thresh, 164
acSteer, 172
∼acSteer, 173
acSteer, 173
acSteerName1, 174
acSteerName2, 174
nrefmic, 174
nsteerchan, 174
patchbay, 174
prepare, 173
process, 173
release, 173
steerFile, 174
update_cfg, 174
acSteer.cpp, 963
INSERT_PATCH, 963
PATCH_VAR, 963
acSteer.h, 963
acSteer_config, 174
∼acSteer_config, 175
acSteer_config, 175
insert, 175
© 2005-2019 HörTech gGmbH, Oldenburg

1091
nangle, 175
nchan, 175
nfreq, 175
nrefmic, 175
nsteerchan, 175
specSteer1, 175
specSteer2, 175
acSteerName1
acSteer, 174
acSteerName2
acSteer, 174
acTransform_wave, 176
∼acTransform_wave, 177
acTransform_wave, 177
ang_name, 178
numsamples, 178
patchbay, 178
prepare, 177
process, 177
raw_p_max_name, 178
raw_p_name, 178
release, 177
rotated_p_max_name, 178
rotated_p_name, 178
to_from, 178
update_cfg, 178
acTransform_wave.cpp, 964
INSERT_PATCH, 964
PATCH_VAR, 964
acTransform_wave.h, 964
acTransform_wave_config, 178
∼acTransform_wave_config, 179
ac, 179
acTransform_wave_config, 179
ang_name, 179
offset, 179
process, 179
raw_p_max_name, 179
raw_p_name, 179
resolution, 179
rotated_i, 179
rotated_p, 179
to_from, 179
accept
MHA_TCP::Server, 482
accept_event
MHA_TCP::Server, 483
accept_loop
io_tcp_t, 390
acceptor_started
mhaserver_t, 762

1092
ack_fail
mhaserver_t, 763
ack_ok
mhaserver_t, 763
acmon, 78
acmon.cpp, 961
acmon::ac_monitor_t, 155
ac_monitor_t, 155
dimstr, 156
getvar, 156
mon, 156
mon_complex, 156
mon_mat, 156
mon_mat_complex, 156
name, 156
p_parser, 157
use_mat, 157
acmon::acmon_t, 157
∼acmon_t, 158
ac, 159
acmon_t, 158
algo, 159
b_cont, 159
b_snapshot, 159
chain, 159
dimensions, 159
dispmode, 159
patchbay, 159
prepare, 158
process, 159
recmode, 159
release, 158
save_vars, 159
update_recmode, 159
varlist, 159
vars, 159
acmon_t
acmon::acmon_t, 158
acsave, 79
acsave.cpp, 962
ACSAVE_FMT_MAT4, 963
ACSAVE_FMT_TXT, 963
ACSAVE_FMT_M, 963
ACSAVE_SFMT_MAT4, 963
ACSAVE_SFMT_TXT, 963
ACSAVE_SFMT_M, 963
acsave::acsave_t, 165
acsave_t, 166
algo, 167
b_flushed, 167
b_prepared, 167

INDEX
bflush, 167
chain, 167
event_start_recording, 167
event_stop_and_flush, 167
fileformat, 167
fname, 167
patchbay, 167
prepare, 166
process, 166, 167
reclen, 167
release, 166
variables, 167
varlist, 167
varlist_t, 166
acsave::cfg_t, 168
∼cfg_t, 168
ac, 169
cfg_t, 168
flush_data, 168
max_frames, 169
nvars, 169
rec_frames, 169
store_frame, 168
varlist, 169
acsave::mat4head_t, 169
cols, 169
imag, 169
namelen, 169
rows, 169
t, 169
acsave::save_var_t, 170
∼save_var_t, 170
ac, 171
b_complex, 171
data, 171
framecnt, 171
maxframe, 171
name, 171
ndim, 171
nframes, 171
save_m, 171
save_mat4, 170
save_txt, 170
save_var_t, 170
store_frame, 170
acsave_t
acsave::acsave_t, 166
acspace
ac2osc_t, 147
acspace2matrix_t
MHA_AC::acspace2matrix_t, 416
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
acspace_template
analysispath_if_t, 220
act_
wavwriter_t, 956
actgains
fader_if_t, 319
activate
ac2lsl::ac2lsl_t, 133
activate_query
MHAParser::base_t, 641
active
addsndfile::addsndfile_if_t, 182
acvar
MHA_AC::ac2matrix_helper_t, 413
adapt_filter_param_t
MHAFilter::adapt_filter_param_t, 514
adapt_filter_state_t
MHAFilter::adapt_filter_state_t, 515
adapt_filter_t
MHAFilter::adapt_filter_t, 516
add
MHASignal::loop_wavefragment_t, 779
add_entry
MHAParser::keyword_list_t, 668
MHATableLookup::linear_table_t, 827
MHATableLookup::xy_table_t, 832
add_fun
MHAOvlFilter::scale_var_t, 633
add_parent_on_insert
MHAParser::base_t, 641
add_plug
altplugs_t, 216
add_plugin
pluginbrowser_t, 874
add_plugins
pluginbrowser_t, 874
add_replace_pair
MHAParser::base_t, 641
added_via_plugs
altplugs_t, 216
addsndfile, 79
addsndfile_resampling_mode_t, 80
DO_RESAMPLE, 80
DONT_RESAMPLE_PERMISSIVE, 80
DONT_RESAMPLE_STRICT, 80
level_adaptor, 80
resampled_num_frames, 80
wave_reader, 80
addsndfile.cpp, 964
DEBUG, 965
addsndfile::addsndfile_if_t, 180
© 2005-2019 HörTech gGmbH, Oldenburg

1093
active, 182
addsndfile_if_t, 181
change_mode, 182
channels, 182
filename, 182
level, 182
levelmode, 182
loop, 182
mapping, 182
mhachannels, 182
mode, 182
numchannels, 182
patchbay, 182
path, 182
prepare, 181
process, 181
ramplen, 182
release, 181
resamplingmode, 182
scan_dir, 182
search_pattern, 182
search_result, 182
set_level, 182
startpos, 182
uint_mode, 182
update, 181
addsndfile::level_adapt_t, 183
can_update, 184
get_level, 184
ilen, 184
l_new, 184
l_old, 184
level_adapt_t, 183
pos, 184
update_frame, 184
wnd, 184
addsndfile::resampled_soundfile_t, 184
resampled_soundfile_t, 185
addsndfile::sndfile_t, 186
sndfile_t, 186
addsndfile::waveform_proxy_t, 187
waveform_proxy_t, 188
addsndfile_if_t
addsndfile::addsndfile_if_t, 181
addsndfile_resampling_mode_t
addsndfile, 80
adm
adm_rtconfig_t, 200
adm.cpp, 965
adm_fir_decomb, 966
adm_fir_lp, 966

1094
adm.hh, 966
adm_fir_decomb
adm.cpp, 966
adm_fir_lp
adm.cpp, 966
adm_if_t, 195
adm_if_t, 196
beta, 197
bypass, 197
coeff_decomb, 197
coeff_lp, 197
decomb_order, 197
distances, 197
front_channels, 197
input_channels, 197
is_prepared, 197
lp_order, 197
mu_beta, 197
out, 197
patchbay, 197
prepare, 196
process, 196
rear_channels, 197
release, 196
srate, 197
tau_beta, 197
update, 196
adm_rtconfig_t, 197
∼adm_rtconfig_t, 199
adm, 200
adm_rtconfig_t, 198
adm_t, 198
adms, 200
check_index, 199
decomb_coeffs, 200
front_channel, 200
front_channels, 200
lp_coeffs, 200
num_adms, 199
rear_channel, 200
rear_channels, 200
adm_t
adm_rtconfig_t, 198
adms
adm_rtconfig_t, 200
algo
acmon::acmon_t, 159
acsave::acsave_t, 167
analysispath_if_t, 220
coherence::cohflt_if_t, 238
db_if_t, 251

INDEX
dc::dc_if_t, 254
fftfilterbank::fftfb_interface_t, 330
MHAPlugin_Resampling::resampling_if←_t, 734
multibandcompressor::interface_t, 849
nlms_t, 853
overlapadd::overlapadd_if_t, 861
route::interface_t, 896
smoothgains_bridge::overlapadd_if_←t, 914
wave2spec_if_t, 950
algo_comm_class_t
MHAKernel::algo_comm_class_t, 604
algo_comm_default
mha_algo_comm.cpp, 995
mha_algo_comm.hh, 997
algo_comm_id_string
MHAKernel::algo_comm_class_t, 606
algo_comm_id_string_len
MHAKernel::algo_comm_class_t, 606
algo_comm_safe_cast
MHAKernel, 101
algo_comm_t, 201
get_entries, 205
get_error, 205
get_var, 204
get_var_float, 204
get_var_int, 204
handle, 201
insert_var, 201
insert_var_float, 202
insert_var_int, 202
is_var, 203
mha.hh, 993
remove_ref, 203
remove_var, 202
algo_name
lpc, 397
algos
MHAPlugin_Split::split_t, 750
mhachain::chain_base_t, 499
mhachain::plugs_t, 502
all_dump
MHAParser, 111
all_ids
MHAParser, 111
alloc_plugs
mhachain::plugs_t, 502
almost
Complex arithmetics in the openMHA, 69
alph
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
plingploing::plingploing_t, 870
alpha
acPooling_wave, 162
acPooling_wave_config, 164
cfg_t, 236
coherence::cohflt_t, 240
coherence::vars_t, 242
alpha_const
timoConfig, 942
alpha_const_limits_hz
timo_params, 940
timoSmooth, 947
alpha_const_vals
timo_params, 940
timoSmooth, 947
alpha_frame
timoConfig, 943
alpha_frame_AC
timo_AC, 938
alpha_hat
timoConfig, 943
alpha_hat_AC
timo_AC, 938
alpha_pitch
timo_params, 940
timoSmooth, 946
alpha_prev
timoConfig, 943
alphaPH1mean
noisePowProposedScale::interface_t, 857
alphaPH1mean_
noisePowProposedScale::noisePow←Proposed, 858
alphaPSD_
noisePowProposedScale::noisePow←Proposed, 859
alphaPSD
noisePowProposedScale::interface_t, 857
alsa_base_t, 206
∼alsa_base_t, 207
alsa_base_t, 207
pcm, 208
read, 207
start, 207
stop, 207
write, 207
alsa_dev_par_parser_t, 208
alsa_dev_par_parser_t, 209
device, 209
nperiods, 209
stream_dir, 209
© 2005-2019 HörTech gGmbH, Oldenburg

1095
alsa_start_counter
io_alsa_t, 364
alsa_t
∼alsa_t, 211
alsa_t, 211
buffer, 212
channels, 212
fragsize, 212
frame_data, 212
gain, 212
invgain, 213
pcm_format, 213
read, 212
start, 211
stop, 211
val_max, 213
val_min, 213
wave, 212
write, 212
alsa_t< T >, 210
altplugs.cpp, 967
MHAPLUGIN_OVERLOAD_OUTDOM←AIN, 967
altplugs_t, 213
add_plug, 216
added_via_plugs, 216
altplugs_t, 214
cfin, 216
cfout, 216
current, 216
delete_plug, 216
event_add_plug, 215
event_delete_plug, 215
event_select_plug, 215
event_set_plugs, 215
fallback_spec, 216
fallback_wave, 216
nondefault_labels, 216
parse, 215
parser_plugs, 216
patchbay, 216
plugs, 216
prepare, 214
prepared, 216
proc_ramp, 215
process, 215
ramp_counter, 216
ramp_len, 216
ramplen, 216
release, 214
select_plug, 216

1096
selected_plug, 216
update_ramplen, 215
update_selector_list, 215
use_own_ac, 216
amplitude
sine_cfg_t, 910
analysemhaplugin.cpp, 967
main, 967
print_ac, 967
strdom, 967
analysepath_t, 217
∼analysepath_t, 217
ac_fifo, 218
analysepath_t, 217
attr, 218
cond_to_process, 218
flag_terminate_inner_thread, 218
has_inner_error, 218
inner_ac_copy, 218
inner_error, 218
inner_input, 218
inner_out_domain, 218
inner_process_wave2spec, 218
inner_process_wave2wave, 218
input_to_process, 218
libdata, 218
outer_ac, 218
outer_ac_copy, 218
priority, 218
ProcessMutex, 218
rt_process, 218
scheduler, 218
svc, 218
thread, 218
wave_fifo, 218
analysispath.cpp, 967
thread_start, 968
analysispath_if_t, 219
∼analysispath_if_t, 220
acspace_template, 220
algo, 220
analysispath_if_t, 220
chain, 220
fifolen, 220
fragsize, 220
libname, 220
loadlib, 220
patchbay, 220
plug, 220
prepare, 220
priority, 220

INDEX
process, 220
release, 220
vars, 220
analytic
fshift_hilbert::hilbert_shifter_t, 341
ang_name
acTransform_wave, 178
acTransform_wave_config, 179
angle
Complex arithmetics in the openMHA, 64
angle_ind
steerbf, 928
angle_src
steerbf, 928
angles
doasvm_classification, 281
announce_port
mhaserver_t, 763
antialias
ds_t, 291
us_t, 948
apply_gains
MHAOvlFilter::fftfb_t, 617
multibandcompressor::plugin_signals_t,
850
aquire_mutex
mha_fifo_posix_threads_t, 451
mha_fifo_thread_platform_t, 459
arg
MHA_TCP::Thread, 489
assign
MHASignal::waveform_t, 818
Vector and matrix processing toolbox, 49,
50
assign_channel
MHASignal::waveform_t, 818
assign_frame
MHASignal::waveform_t, 818
Async_Notify
MHA_TCP::Async_Notify, 469
async_poll_msg
fw_t, 347
async_read
fw_t, 347
async_rmslevel_t
MHASignal::async_rmslevel_t, 764
attack
cfg_t, 236
dc::dc_t, 256
dc_simple::level_smoother_t, 272
softclip_t, 917
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
softclipper_t, 918
attr
analysepath_t, 218
MHAPlugin_Split::posix_threads_t, 746
auditory_profile.cpp, 968
auditory_profile.h, 968
AuditoryProfile, 81
AuditoryProfile::fmap_t, 221
get_frequencies, 221
get_values, 221
isempty, 221
AuditoryProfile::parser_t, 222
get_current_profile, 223
L, 223
parser_t, 223
R, 223
AuditoryProfile::parser_t::ear_t, 223
ear_t, 224
get_ear, 224
HTL, 224
UCL, 224
AuditoryProfile::parser_t::fmap_t, 224
f, 225
fmap_t, 225
get_fmap, 225
name_, 225
patchbay, 225
validate, 225
value, 225
AuditoryProfile::profile_t, 226
get_ear, 226
L, 227
R, 227
AuditoryProfile::profile_t::ear_t, 227
convert_empty2normal, 227
HTL, 227
UCL, 227
average
coherence::vars_t, 242
avg_ipd
coherence::cohflt_t, 240
azimuth
mha_direction_t, 438
B
MHAFilter::filter_t, 534
MHAFilter::iir_filter_t, 542
b
doasvm_classification, 281
MHAParser::base_t::replace_t, 643
B_
MHAFilter::complex_bandpass_t, 522
© 2005-2019 HörTech gGmbH, Oldenburg

1097
MHAFilter::iir_ord1_real_t, 545
b_check_version
PluginLoader::mhapluginloader_t, 885
b_complex
acsave::save_var_t, 171
b_cont
acmon::acmon_t, 159
b_est
lpc_bl_predictor_config, 401
b_exit_request
fw_t, 348
b_flushed
acsave::acsave_t, 167
b_fw_started
io_parser_t, 374
b_is_input
calibrator_runtime_layer_t, 231
calibrator_t, 233
b_is_prepared
PluginLoader::mhapluginloader_t, 885
b_loop
MHASignal::loop_wavefragment_t, 781
b_ltg
coherence::cohflt_t, 241
b_prepared
acsave::acsave_t, 167
io_file_t, 368
io_parser_t, 374
MHAJack::client_t, 599
mhachain::chain_base_t, 499
mhachain::plugs_t, 502
b_process
io_alsa_t, 364
b_ready
MHAJack::client_avg_t, 590
b_record
ac2osc_t, 147
b_snapshot
acmon::acmon_t, 159
b_starting
io_parser_t, 374
b_stopped
io_parser_t, 374
MHAJack::client_avg_t, 590
MHAJack::client_noncont_t, 592
b_use_clipping
calibrator_runtime_layer_t, 231
b_use_fir
calibrator_runtime_layer_t, 231
b_use_profiling
mhachain::plugs_t, 503

1098
BARKSCALE_ENTRIES
mha_fftfb.cpp, 1004
bInvert
coherence::cohflt_t, 241
backward
lpc_bl_predictor_config, 401
lpc_burglattice_config, 406
MHASignal::fft_t, 774
backward_scale
MHASignal::fft_t, 774
band_weights
dc::dc_vars_t, 259
bands
dc::wideband_inhib_vars_t, 263
gtfb_analyzer::gtfb_analyzer_cfg_t, 354
MHAOvlFilter::fspacing_t, 626
bandw_correction
speechnoise.cpp, 1077
bark2hz_t
MHAOvlFilter::barkscale::bark2hz_t, 614
bartlett
MHAWindow, 126
bartlett_t
MHAWindow::bartlett_t, 834
base_t
MHAMultiSrc::base_t, 608
MHAParser::base_t, 637
MHAWindow::base_t, 835, 836
basename
save_spec_t, 902
save_wave_t, 903
shadowfilter_begin::shadowfilter_begin←_t, 906
shadowfilter_end::shadowfilter_end_←t, 909
bass
plingploing::plingploing_t, 869
bassmod
plingploing::if_t, 867
bassmod_
plingploing::plingploing_t, 870
bassperiod
plingploing::if_t, 868
bassperiod_
plingploing::plingploing_t, 870
bbcalib_interface_t, 228
∼bbcalib_interface_t, 229
bbcalib_interface_t, 229
calib_in, 229
calib_out, 229
plugloader, 229

INDEX
prepare, 229
process, 229
release, 229
bbgain
gain::gain_if_t, 351
beta
ADM::ADM, 190
adm_if_t, 197
beta_const
timo_params, 940
timoSmooth, 946
bf_src
steerbf, 928
bf_src_copy
steerbf_config, 929
bf_vec
steerbf_config, 929
bflush
acsave::acsave_t, 167
bin1
MHAOvlFilter::fftfb_t, 618
bin2
MHAOvlFilter::fftfb_t, 618
bin2freq
Vector and matrix processing toolbox, 45
blackman
MHAWindow, 127
blackman_t
MHAWindow::blackman_t, 837
blockprocessing_polyphase_resampling_t
MHAFilter::blockprocessing_polyphase←_resampling_t, 518
blocks
droptect_t, 289
bookkeeping
MHAFilter::partitioned_convolution_t, 557
MHAParser::mhapluginloader_t, 684
bool_mon_t
MHAParser::bool_mon_t, 644
bool_t
MHAParser::bool_t, 647
bpm
plingploing::if_t, 867
bprofiling
mhachain::chain_base_t, 499
bracket_balance
MHAParser::StrCnv, 114
brown
speechnoise_t, 925
browsemhaplugins.cpp, 968
DEBUG, 969
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX

1099

multibandcompressor::fftfb_plug_t, 846
bypass
adm_if_t, 197
plingploing::plingploing_t, 869
db_if_t, 251
buf
dc::dc_t, 256
ac2lsl::save_var_t, 140
dc::dc_vars_t, 259
ac2lsl::save_var_t< mha_complex_t >,
dc_simple::dc_vars_t, 270
143
DynComp::dc_afterburn_vars_t, 298
mha_fifo_t, 456
mha_spec_t, 466
C
mha_wave_t, 497
ADM, 81
buf_c_in
c
MHASignal::hilbert_fftw_t, 776
acPooling_wave_config, 164
buf_c_out
doasvm_classification_config, 282
MHASignal::hilbert_fftw_t, 776
io_tcp_sound_t::float_union, 388
buf_in
mha_complex_test_array_t, 432
MHASignal::fft_t, 775
nlms_t, 852
buf_out
prediction_error, 888
MHASignal::fft_t, 775
c1_a
buf_r_in
MHAFilter::o1_ar_filter_t, 548
MHASignal::hilbert_fftw_t, 776
c1_r
buf_r_out
MHAFilter::o1_ar_filter_t, 548
MHASignal::hilbert_fftw_t, 776
c2_a
buf_uses_placement_new
MHAFilter::o1_ar_filter_t, 548
mha_fifo_t, 456
c2_r
buffer
MHAFilter::o1_ar_filter_t, 548
alsa_t, 212
c_ifc_parser_t
MHASignal::delay_spec_t, 766
MHAParser::c_ifc_parser_t, 649
MHASignal::delay_t, 768
c_min
MHASignal::delay_wave_t, 769
coherence::cohflt_t, 240
buffered_incoming_bytes
c_parse_cmd
MHA_TCP::Connection, 477
MHAParser::c_ifc_parser_t, 650
buffered_outgoing_bytes
c_parse_cmd_t
MHA_TCP::Connection, 477
MHAParser, 111
burn
c_parse_err
DynComp::dc_afterburn_rt_t, 293
MHAParser::c_ifc_parser_t, 650
DynComp::dc_afterburn_t, 295
c_parse_err_t
multibandcompressor::interface_t, 848
MHAParser, 111
butter_stop_ord1
c_scale
MHAFilter, 96
coherence::cohflt_t, 240
bw
CHANLOOP
MHAOvlFilter::fscale_bw_t, 623
timoconfig.cpp, 1081
bw_
CHECK_EXPR
MHAFilter::gamma_flt_t, 538
mha_defs.h, 998
bw_generator
CHECK_VAR
MHAFilter::thirdoctave_analyzer_t, 569
mha_defs.h, 998
bw_hz
cLTASS
MHAOvlFilter::fscale_bw_t, 623
MHAOvlFilter::fftfb_ac_info_t, 616
bw_name
MHAOvlFilter::fftfb_vars_t, 621
dc::dc_vars_t, 259
COMPILER_ID_MAJOR
bwv
compiler_id.hh, 970
MHAOvlFilter::fftfb_ac_info_t, 616
COMPILER_ID_MINOR
main, 969

bt

© 2005-2019 HörTech gGmbH, Oldenburg

1100
compiler_id.hh, 970
COMPILER_ID_PATCH
compiler_id.hh, 970
COMPILER_ID_VENDOR
compiler_id.hh, 970
COMPILER_ID_VERSION_HELPER1
compiler_id.hh, 970
COMPILER_ID_VERSION_HELPER2
compiler_id.hh, 970
COMPILER_ID_VERSION
compiler_id.hh, 970
COMPILER_ID
compiler_id.hh, 970
calc_in
wave2spec_t, 953
calc_out
overlapadd::overlapadd_t, 863
spec2wave_t, 923
calc_pre_wnd
wave2spec_t, 952
calib_in
bbcalib_interface_t, 229
calib_out
bbcalib_interface_t, 229
calibrator_runtime_layer_t, 229
b_is_input, 231
b_use_clipping, 231
b_use_fir, 231
calibrator_runtime_layer_t, 230
fir, 230
firfir2fftlen, 230
firfirlen, 230
gain, 230
pmode, 231
process, 230
quant, 230
softclip, 230
speechnoise, 231
calibrator_t, 231
b_is_input, 233
calibrator_t, 232
patchbay, 233
prepare, 232
prepared, 233
process, 232
read_levels, 233
release, 232
update, 233
update_tau_level, 233
vars, 233
calibrator_variables_t, 233

INDEX
calibrator_variables_t, 234
config_parser, 234
do_clipping, 234
fir, 234
fragsize, 234
nbits, 234
num_channels, 234
peaklevel, 234
rmslevel, 234
softclip, 234
spnoise_channels, 234
spnoise_level, 234
spnoise_mode, 234
spnoise_parser, 234
srate, 234
tau_level, 234
can_read
MHAFilter::blockprocessing_polyphase←_resampling_t, 519
can_read_bytes
MHA_TCP::Connection, 475
can_read_line
MHA_TCP::Connection, 475
can_sysread
MHA_TCP::Connection, 473
can_syswrite
MHA_TCP::Connection, 473
can_update
addsndfile::level_adapt_t, 184
fader_wave::level_adapt_t, 323
catch_condition
MHAPlugin_Split::posix_threads_t, 746
catch_thread
MHAPlugin_Split::dummy_threads_t, 742
MHAPlugin_Split::posix_threads_t, 745
MHAPlugin_Split::thread_platform_t, 758
categories
plugindescription_t, 875
cdata
MHASignal::matrix_t, 790
mha_audio_t, 429
center_frequencies
dc::dc_vars_t, 259
dc_simple::dc_if_t, 265
cf
MHAFilter::thirdoctave_analyzer_t, 569
MHAOvlFilter::band_descriptor_t, 613
MHAOvlFilter::fftfb_vars_t, 621
mha_audio_descriptor_t, 428
plingploing::plingploing_t, 869
cf2bands
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX

1101
decay, 236
frozen_noise_, 236
gain_spec_, 236
gain_wave_, 236
matrixmixer::cfg_t, 409
pos, 236
process, 236
replace_, 236
shadowfilter_begin::cfg_t, 904
shadowfilter_end::cfg_t, 907
start_lin, 236
use_frozen_, 236

MHAOvlFilter::fspacing_t, 626
cf_
MHAFilter::gamma_flt_t, 538
wavwriter_t, 956
cf_generator
MHAFilter::thirdoctave_analyzer_t, 569
cf_h
MHAOvlFilter::band_descriptor_t, 613
cf_in
overlapadd::overlapadd_if_t, 861
smoothgains_bridge::overlapadd_if_←t, 914
cf_in_
MHAParser::mhapluginloader_t, 684
cf_input
PluginLoader::mhapluginloader_t, 885
cf_l
MHAOvlFilter::band_descriptor_t, 613
cf_name
dc::dc_vars_t, 259
cf_out
overlapadd::overlapadd_if_t, 861
smoothgains_bridge::overlapadd_if_←t, 914
cf_out_
MHAParser::mhapluginloader_t, 684
cf_output
PluginLoader::mhapluginloader_t, 885
cfac
route::interface_t, 896
cfg
MHAPlugin::config_t, 728
cfg_
MHAFilter::thirdoctave_analyzer_t, 569
cfg_chain
MHAPlugin::config_t, 728
cfg_chain_current
MHAPlugin::config_t, 728
cfg_chain_t
MHAPlugin::cfg_chain_t, 723
cfg_dump
MHAParser, 111
cfg_dump_short
MHAParser, 111
cfg_t, 235
ac2lsl::cfg_t, 134
acsave::cfg_t, 168
alpha, 236
attack, 236
cfg_t, 235
channel, 236
© 2005-2019 HörTech gGmbH, Oldenburg

cfin
altplugs_t, 216
fw_t, 348
mhachain::chain_base_t, 499
route::interface_t, 896
cfout
altplugs_t, 216
fw_t, 348
mhachain::chain_base_t, 499
route::interface_t, 896
cfv
MHAOvlFilter::fftfb_ac_info_t, 615
multibandcompressor::fftfb_plug_t, 846
cg
coherence::cohflt_t, 240
ch
MHASignal::doublebuffer_t, 772
chain
acmon::acmon_t, 159
acsave::acsave_t, 167
analysispath_if_t, 220
db_if_t, 251
MHAPlugin_Resampling::resampling_if←_t, 734
mhachain::chain_base_t, 499
mhachain::plugs_t, 503
chain_base_t
mhachain::chain_base_t, 498
chains
MHAPlugin_Split::split_t, 751
change_mode
addsndfile::addsndfile_if_t, 182
channel
cfg_t, 236
example5_t, 316
MHAMultiSrc::channel_t, 608
channel_gain_name
combc_if_t, 244
channel_gains_

1102
combc_t, 245
channel_info
mha_spec_t, 466
mha_wave_t, 497
channel_no
example6_t, 317
channelconfig_out_
MHAOvlFilter::overlap_save_filterbank_t,
630
channels
ac2wave_t, 150
addsndfile::addsndfile_if_t, 182
alsa_t, 212
dc::wideband_inhib_vars_t, 263
gtfb_analyzer::gtfb_analyzer_cfg_t, 354
MHAFilter::fftfilter_t, 526
MHAFilter::filter_t, 535
MHAParser::mhaconfig_mon_t, 681
MHAPlugin_Split::split_t, 750
MHASignal::delay_t, 768
mhaconfig_t, 505
prediction_error_config, 891
rt_nlms_t, 899
sine_cfg_t, 910
sine_t, 912
testplugin::config_parser_t, 933
Vector and matrix processing toolbox, 42
channels_t
MHAMultiSrc::channels_t, 609
char_data
testplugin::ac_parser_t, 931
chdir
mha_audio_descriptor_t, 428
check_index
adm_rtconfig_t, 199
check_low
MHAParser::range_var_t, 695
check_range
MHAParser::range_var_t, 695
check_sound_data_type
io_tcp_sound_t, 386
check_up
MHAParser::range_var_t, 695
check_vars
ac2lsl::cfg_t, 135
chname
dc::dc_vars_t, 259
chunkbytes_in
io_tcp_sound_t, 386
ci
matrixmixer::matmix_t, 411

INDEX
cleanup_plugs
mhachain::plugs_t, 502
cleanup_unused_cfg
MHAPlugin::config_t, 728
clear
MHATableLookup::linear_table_t, 827
MHATableLookup::table_t, 829
MHATableLookup::xy_table_t, 832
mha_fifo_t, 456
Vector and matrix processing toolbox, 49
clear_chains
MHAPlugin_Split::split_t, 749
clear_plugins
pluginbrowser_t, 874
Client
MHA_TCP::Client, 470
client_avg_t
MHAJack::client_avg_t, 589
client_noncont_t
MHAJack::client_noncont_t, 592
client_t
MHAJack::client_t, 595
clientid
dc::dc_vars_t, 259
dc_simple::dc_if_t, 265
clientname
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 581
clipmeter
softclipper_t, 918
clipped
softclipper_variables_t, 920
close_session
wavwriter_t, 956
closed
MHA_TCP::Connection, 477
closesocket
mha_tcp.cpp, 1040
cmd_prepare
MHAIOPortAudio::io_portaudio_t, 586
cmd_release
MHAIOPortAudio::io_portaudio_t, 587
cmd_start
MHAIOPortAudio::io_portaudio_t, 586
cmd_stop
MHAIOPortAudio::io_portaudio_t, 586
co
matrixmixer::matmix_t, 411
coeff
gtfb_analyzer::gtfb_analyzer_cfg_t, 354
gtfb_analyzer::gtfb_analyzer_t, 357
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
coeff_decomb
adm_if_t, 197
coeff_lp
adm_if_t, 197
coh_c
coherence::cohflt_t, 241
coh_rlp
coherence::cohflt_t, 241
coherence, 82
getcipd, 82
coherence.cpp, 969
coherence::cohflt_if_t, 237
algo, 238
cohflt_if_t, 238
patchbay, 238
prepare, 238
process, 238
release, 238
update, 238
vars, 238
coherence::cohflt_t, 239
alpha, 240
avg_ipd, 240
b_ltg, 241
bInvert, 241
c_min, 240
c_scale, 240
cg, 240
coh_c, 241
coh_rlp, 241
cohflt_t, 240
g, 240
gain, 241
gain_delay, 241
insert, 240
limit, 240
lp1i, 240
lp1ltg, 241
lp1r, 240
nbands, 240
process, 240
s_out, 241
staticgain, 241
coherence::vars_t, 241
alpha, 242
average, 242
delay, 242
invert, 242
limit, 242
ltgcomp, 242
ltgtau, 242
© 2005-2019 HörTech gGmbH, Oldenburg

1103
mapping, 242
staticgain, 242
tau, 242
tau_unit, 242
vars_t, 242
cohflt_if_t
coherence::cohflt_if_t, 238
cohflt_t
coherence::cohflt_t, 240
collect_result
MHAPlugin_Split::split_t, 749
MHAPlugin_Split::splitted_part_t, 755
colored_intensity
Vector and matrix processing toolbox, 57
cols
acsave::mat4head_t, 169
combc_if_t, 243
channel_gain_name, 244
combc_if_t, 244
element_gain_name, 244
interleaved, 244
outchannels, 244
prepare, 244
process, 244
combc_t, 244
ac_, 245
channel_gains_, 245
combc_t, 245
element_gain_name_, 245
interleaved_, 245
nbands, 245
process, 245
s_out, 245
w_out, 245
combinechannels.cpp, 969
comm_var_t, 246
data, 247
data_type, 246
num_entries, 246
stride, 247
commentate
MHAParser, 111
commit
DynComp::dc_afterburn_vars_t, 298
commit_pending
DynComp::dc_afterburn_t, 296
commit_t
MHAParser::commit_t, 652
Communication between algorithms, 28
get_var_float, 30
get_var_int, 30

1104
get_var_spectrum, 29
get_var_vfloat, 31
get_var_waveform, 30
comp_each_iter
lpc, 397
lpc_config, 407
comp_iter
lpc_config, 408
compiler_id.cpp, 970
compiler_id.hh, 970
COMPILER_ID_MAJOR, 970
COMPILER_ID_MINOR, 970
COMPILER_ID_PATCH, 970
COMPILER_ID_VENDOR, 970
COMPILER_ID_VERSION_HELPER1,
970
COMPILER_ID_VERSION_HELPER2,
970
COMPILER_ID_VERSION, 970
COMPILER_ID, 970
Complex arithmetics in the openMHA, 61
_conjugate, 68
_reciprocal, 69
abs, 67
abs2, 67
almost, 69
angle, 64
conjugate, 68
expi, 64, 66
mha_complex, 63
normalize, 69
operator!=, 68
operator<, 69
operator∗, 66, 67
operator∗=, 66
operator+, 65
operator+=, 65
operator-, 65, 66, 68
operator-=, 65
operator/, 67, 68
operator/=, 67
operator==, 68
reciprocal, 68
safe_div, 67
set, 63, 64
stdcomplex, 64
complex_bandpass_t
MHAFilter::complex_bandpass_t, 521
complex_data
testplugin::ac_parser_t, 931
complex_filter.cpp, 970

INDEX
complex_filter.h, 970
complex_mon_t
MHAParser::complex_mon_t, 653
complex_ofs
MHASignal::matrix_t, 790
complex_t
MHAParser::complex_t, 655
compression
dc_simple::dc_t, 267
compute_something
cpuload_t, 248
compute_something_else
cpuload_t, 249
Concept of Variables and Data Exchange in
the openMHA, 4
cond_to_process
analysepath_t, 218
config_file_splitter_t
PluginLoader::config_file_splitter_t, 876
config_in
testplugin::if_t, 935
config_out
testplugin::if_t, 935
config_parser
calibrator_variables_t, 234
config_parser_t
testplugin::config_parser_t, 932
config_t
MHAPlugin::config_t, 726
configfile
PluginLoader::config_file_splitter_t, 877
configname
PluginLoader::config_file_splitter_t, 877
configuration, 4
configuration variable, 4
conflux
DynComp::dc_afterburn_rt_t, 294
DynComp::dc_afterburn_vars_t, 298
conjugate
Complex arithmetics in the openMHA, 68
Vector and matrix processing toolbox, 60
connect
MHAEvents::emitter_t, 511
MHAEvents::patchbay_t, 512, 513
connect_input
MHAJack::client_t, 596
connect_output
MHAJack::client_t, 596
connect_to
MHAJack::port_t, 602
connected
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
io_tcp_parser_t, 383
Connection
MHA_TCP::Connection, 473
connection_loop
io_tcp_t, 390
connections
MHAEvents::emitter_t, 511
connections_in
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 581
connections_out
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 581
connector
MHAFilter::adapt_filter_t, 517
MHAFilter::iir_filter_t, 542
MHAParser::mhapluginloader_t, 684
connector_base_t
MHAEvents::connector_base_t, 506
connector_t
MHAEvents::connector_t, 509
cons
MHAEvents::patchbay_t, 513
consecutive_dropouts
droptect_t, 289
contained_frames
MHASignal::ringbuffer_t, 795
conv2latex
generatemhaplugindoc.cpp, 981
convert_empty2normal
AuditoryProfile::profile_t::ear_t, 227
convert_f2logf
gaintable.cpp, 980
copy
MHASignal::spectrum_t, 803
MHASignal::waveform_t, 819
timo_AC, 937
copy_AC
timoConfig, 942
copy_channel
MHASignal::spectrum_t, 804
MHASignal::waveform_t, 819
Vector and matrix processing toolbox, 56
copy_error
MHAIOTCP.cpp, 1063
copy_from_at
MHASignal::waveform_t, 819
copy_output_spec
MHAPlugin_Split::split_t, 749
copy_output_wave
MHAPlugin_Split::split_t, 749
© 2005-2019 HörTech gGmbH, Oldenburg

1105
copy_permuted
MHASignal, 124
corr_out
lpc_config, 408
cpuload.cpp, 971
cpuload_t, 247
compute_something, 248
compute_something_else, 249
cpuload_t, 248
factor, 249
phase, 249
prepare, 248
process, 248
result, 249
table, 249
use_sine, 249
create_latex_doc
generatemhaplugindoc.cpp, 982
create_lock
mhamain.cpp, 1067
create_or_replace_var
ac2lsl::cfg_t, 135
creator
speechnoise_t, 926
creator_A
MHAFilter::complex_bandpass_t, 521
creator_B
MHAFilter::complex_bandpass_t, 521
cstr_strerror
mha_errno.c, 999
current
altplugs_t, 216
dc::wideband_inhib_vars_t, 262
mha_rt_fifo_t, 464
current_input_signal_buffer_half_index
MHAFilter::partitioned_convolution_t, 557
current_output_partition_index
MHAFilter::partitioned_convolution_t, 557
current_powspec
droptect_t, 289
current_thread_priority
MHAPlugin_Split::posix_threads_t, 745
current_thread_scheduler
MHAPlugin_Split::posix_threads_t, 745
cvalue
gtfb_analyzer::gtfb_analyzer_cfg_t, 354
DBG
MHAIOalsa.cpp, 1045
DEBUG
addsndfile.cpp, 965
browsemhaplugins.cpp, 969

1106
fader_wave.cpp, 978
MHAIOFile.cpp, 1047
wavrec.cpp, 1084
DEFAULT_RETSIZE
mha_parser.hh, 1021
DELAY_FREQ
ADM, 81
DO_RESAMPLE
addsndfile, 80
DONT_RESAMPLE_PERMISSIVE
addsndfile, 80
DONT_RESAMPLE_STRICT
addsndfile, 80
DUPVEC
dc.cpp, 972
data
acsave::save_var_t, 171
comm_var_t, 247
DynComp::gaintable_t, 303
MHA_AC::acspace2matrix_t, 418
MHA_AC::double_t, 419
MHA_AC::float_t, 420
MHA_AC::int_t, 421
MHAParser::bool_mon_t, 645
MHAParser::bool_t, 647
MHAParser::complex_mon_t, 654
MHAParser::complex_t, 656
MHAParser::float_mon_t, 659
MHAParser::float_t, 662
MHAParser::int_mon_t, 664
MHAParser::int_t, 666
MHAParser::kw_t, 672
MHAParser::mcomplex_mon_t, 673
MHAParser::mcomplex_t, 675
MHAParser::mfloat_mon_t, 677
MHAParser::mfloat_t, 680
MHAParser::mint_mon_t, 686
MHAParser::string_mon_t, 697
MHAParser::string_t, 699
MHAParser::vcomplex_mon_t, 704
MHAParser::vcomplex_t, 706
MHAParser::vfloat_mon_t, 708
MHAParser::vfloat_t, 711
MHAParser::vint_mon_t, 712
MHAParser::vint_t, 715
MHAParser::vstring_mon_t, 716
MHAParser::vstring_t, 718
MHAPlugin::cfg_chain_t, 723
MHASignal::uint_vector_t, 811
mha_rt_fifo_element_t, 461
wavwriter_t, 956

INDEX
data_is_initialized
MHAParser::base_t, 642
data_type
ac2lsl::save_var_base_t, 137
ac2lsl::save_var_t, 139
ac2lsl::save_var_t< mha_complex_t >,
142
comm_var_t, 246
testplugin::ac_parser_t, 931
data_type_
ac2lsl::save_var_t, 140
data_type_t
testplugin::ac_parser_t, 931
db.cpp, 971
db2lin
Vector and matrix processing toolbox, 43
db_if_t, 249
∼db_if_t, 250
algo, 251
bypass, 251
chain, 251
db_if_t, 250
fragsize, 251
patchbay, 251
plugloader, 251
prepare, 250
process, 250
release, 250
db_t, 251
db_t, 252
inner_process, 252
plugloader, 252
dbspl2pa
Vector and matrix processing toolbox, 44
DC
dc_simple, 84
dc, 82
get_audiochannels, 83
dc.cpp, 971
DUPVEC, 972
dc::dc_if_t, 253
algo, 254
dc_if_t, 254
patchbay, 254
prepare, 254
process, 254
update, 254
update_monitors, 254
wbinhib, 254
dc::dc_t, 255
attack, 256
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
bypass, 256
dc_t, 256
decay, 256
explicit_insert, 256
get_level_in_db, 256
get_level_in_db_adjusted, 256
get_nbands, 256
gt, 256
inhib_gain, 257
k_nyquist, 257
level_in_db, 257
level_in_db_adjusted, 257
max_level_difference, 257
naudiochannels, 257
nbands, 257
powersum, 256
process, 256
rmslevel, 256
dc::dc_vars_t, 257
band_weights, 259
bw_name, 259
bypass, 259
center_frequencies, 259
cf_name, 259
chname, 259
clientid, 259
dc_vars_t, 258
edge_frequencies, 259
ef_name, 259
filterbank, 259
filtered_level, 259
gainrule, 259
gtdata, 258
gtmin, 258
gtstep, 258
input_level, 259
max_level_difference, 259
modified, 259
powersum, 258
preset, 259
tauattack, 258
taudecay, 259
taurmslevel, 258
use_wbinhib, 259
dc::dc_vars_validator_t, 260
dc_vars_validator_t, 260
dc::wb_inhib_cfg_t, 260
dl_diff, 261
dl_map_max, 261
dl_map_min, 261
g_scale, 261
© 2005-2019 HörTech gGmbH, Oldenburg

1107
l_min, 261
wb_inhib_cfg_t, 261
weights, 261
dc::wideband_inhib_vars_t, 261
bands, 263
channels, 263
current, 262
dl_map_max, 262
dl_map_min, 262
g_scale, 262
l_min, 262
patchbay, 263
setchannels, 262
update, 262
weights, 262
wideband_inhib_vars_t, 262
dc_afterburn.cpp, 972
mylogf, 972
dc_afterburn.h, 972
dc_afterburn_rt_t
DynComp::dc_afterburn_rt_t, 293
dc_afterburn_t
DynComp::dc_afterburn_t, 295
dc_afterburn_vars_t
DynComp::dc_afterburn_vars_t, 298
dc_if_t
dc::dc_if_t, 254
dc_simple::dc_if_t, 264
dc_simple, 83
DC, 84
force_resize, 84
LEVEL, 84
not_zero, 84
test_fail, 84
dc_simple.cpp, 973
dc_simple::dc_if_t, 263
center_frequencies, 265
clientid, 265
dc_if_t, 264
edge_frequencies, 265
filterbank, 265
gainrule, 265
has_been_modified, 265
modified, 265
mon_g, 265
mon_l, 265
patchbay, 265
prepare, 264
prepared, 265
preset, 265
process, 264, 265

1108
read_modified, 265
release, 264
update_dc, 265
update_gain_mon, 265
update_level, 265
update_level_mon, 265
dc_simple::dc_t, 266
compression, 267
dc_t, 267
expansion, 267
expansion_threshold, 267
limiter, 267
limiter_threshold, 267
maxgain, 267
mon_g, 267
mon_l, 267
nbands, 267
process, 267
dc_simple::dc_t::line_t, 268
line_t, 268
m, 268
operator(), 268
y0, 268
dc_simple::dc_vars_t, 269
bypass, 270
dc_vars_t, 269
expansion_slope, 270
expansion_threshold, 270
g50, 269
g80, 269
limiter_threshold, 270
maxgain, 269
tauattack, 270
taudecay, 270
dc_simple::dc_vars_validator_t, 270
dc_vars_validator_t, 271
dc_simple::level_smoother_t, 271
attack, 272
decay, 272
fftlen, 272
level_smoother_t, 272
level_spec, 272
level_wave, 272
nbands, 272
process, 272
dc_t
dc::dc_t, 256
dc_simple::dc_t, 267
dc_vars_t
dc::dc_vars_t, 258
dc_simple::dc_vars_t, 269

INDEX
dc_vars_validator_t
dc::dc_vars_validator_t, 260
dc_simple::dc_vars_validator_t, 271
deallocate_domains
MHAPlugin_Split::domain_handler_t, 739
debug
io_tcp_parser_t, 383
debug_file
io_tcp_parser_t, 384
debug_filename
io_tcp_parser_t, 384
decay
cfg_t, 236
dc::dc_t, 256
dc_simple::level_smoother_t, 272
softclip_t, 917
softclipper_t, 918
decomb_coeffs
adm_rtconfig_t, 200
decomb_order
adm_if_t, 197
decrease_condition
mha_fifo_posix_threads_t, 452
decrement
mha_fifo_posix_threads_t, 451
mha_fifo_thread_platform_t, 459
default_thread_platform_string
split.cpp, 1079
default_thread_platform_type
split.cpp, 1079
defaultHighInputLatency
MHAIOPortAudio::device_info_t, 584
defaultHighOutputLatency
MHAIOPortAudio::device_info_t, 584
defaultLowInputLatency
MHAIOPortAudio::device_info_t, 584
defaultLowOutputLatency
MHAIOPortAudio::device_info_t, 584
defaultSampleRate
MHAIOPortAudio::device_info_t, 584
Delay
ADM::Delay, 191
delay, 84
coherence::vars_t, 242
delaysum::delaysum_if_t, 276
MHAFilter::gamma_flt_t, 537
MHAFilter::partitioned_convolution_t←::index_t, 559
MHAPlugin_Split::split_t, 751
MHASignal::delay_spec_t, 766
MHASignal::delay_wave_t, 769
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
mha_dblbuf_t, 437
delay.cpp, 973
delay::interface_t, 273
delays, 274
interface_t, 274
patchbay, 274
prepare, 274
process, 274
update, 274
delay_ac
ac2wave_if_t, 149
ac2wave_t, 151
delay_d
prediction_error, 889
delay_in
ac2wave_if_t, 149
ac2wave_t, 151
delay_spec_t
MHASignal::delay_spec_t, 766
delay_t
MHASignal::delay_t, 767
delay_w
prediction_error, 889
delay_wave_t
MHASignal::delay_wave_t, 769
delays
delay::interface_t, 274
MHASignal::delay_t, 768
delays_in
MHAIOJack::io_jack_t, 576
delays_out
MHAIOJack::io_jack_t, 577
delaysum, 84
delaysum.cpp, 974
delaysum::delaysum_if_t, 274
delay, 276
delaysum_if_t, 276
patchbay, 276
prepare, 276
process, 276
release, 276
update_cfg, 276
weights, 276
delaysum::delaysum_t, 277
delaysum_t, 278
out, 278
process, 278
weights, 278
delaysum_if_t
delaysum::delaysum_if_t, 276
delaysum_t
© 2005-2019 HörTech gGmbH, Oldenburg

1109
delaysum::delaysum_t, 278
delete_plug
altplugs_t, 216
delta_phi
fshift::fshift_config_t, 333
fshift_hilbert::hilbert_shifter_t, 342
delta_phi_total
fshift::fshift_config_t, 333
fshift_hilbert::hilbert_shifter_t, 342
delta_pitch
timo_params, 940
timoSmooth, 946
descriptor
mha_audio_t, 429
desired_fill_count
mha_drifter_fifo_t, 443
dev_in
io_alsa_t, 364
dev_out
io_alsa_t, 364
device
alsa_dev_par_parser_t, 209
device_index
MHAIOPortAudio::io_portaudio_t, 587
device_index_updated
MHAIOPortAudio::io_portaudio_t, 586
device_info
MHAIOPortAudio::io_portaudio_t, 587
device_info_t
MHAIOPortAudio::device_info_t, 584
device_name
MHAIOPortAudio::io_portaudio_t, 587
device_name_updated
MHAIOPortAudio::io_portaudio_t, 586
df
fshift::fshift_config_t, 333
fshift::fshift_t, 336
fshift_hilbert::frequency_translator_t, 338
fshift_hilbert::hilbert_shifter_t, 342
diff_coeffs
mha_filter.cpp, 1006
diff_t
MHAFilter::diff_t, 523
digits
mha_error_helpers, 90
dimension
MHASignal::matrix_t, 786
dimensions
acmon::acmon_t, 159
dimstr
acmon::ac_monitor_t, 156

1110
dir
mha_channel_info_t, 430
dir_t
MHAJack::port_t, 600
dir_type
MHAJack::port_t, 602
discard
MHASignal::ringbuffer_t, 796
disconnect
MHAEvents::emitter_t, 511
dispmode
acmon::acmon_t, 159
dist
plingploing::plingploing_t, 870
dist1
plingploing::plingploing_t, 870
distance
mha_direction_t, 438
distances
adm_if_t, 197
dl_diff
dc::wb_inhib_cfg_t, 261
dl_map_max
dc::wb_inhib_cfg_t, 261
dc::wideband_inhib_vars_t, 262
dl_map_min
dc::wb_inhib_cfg_t, 261
dc::wideband_inhib_vars_t, 262
dm
lpc_burglattice_config, 406
do_clipping
calibrator_variables_t, 234
do_get_var
testplugin::ac_parser_t, 931
do_insert_var
testplugin::ac_parser_t, 931
doagcc
doasvm_feature_extraction_config, 286
doasvm
doasvm_classification_config, 282
doasvm_classification, 279
∼doasvm_classification, 280
angles, 281
b, 281
doasvm_classification, 280
max_p_ind_name, 281
p_name, 281
patchbay, 281
prepare, 280
process, 280
release, 280

INDEX
update_cfg, 281
vGCC_name, 281
w, 281
x, 281
y, 281
doasvm_classification.cpp, 974
INSERT_PATCH, 974
PATCH_VAR, 974
doasvm_classification.h, 974
doasvm_classification_config, 281
∼doasvm_classification_config, 282
ac, 282
c, 282
doasvm, 282
doasvm_classification_config, 282
p, 282
p_max, 282
process, 282
doasvm_feature_extraction, 283
∼doasvm_feature_extraction, 284
doasvm_feature_extraction, 284
fftlen, 285
max_lag, 285
nupsample, 285
patchbay, 285
prepare, 284
process, 284
release, 284
update_cfg, 285
vGCC_name, 285
doasvm_feature_extraction.cpp, 974
INSERT_PATCH, 975
PATCH_VAR, 975
doasvm_feature_extraction.h, 975
doasvm_feature_extraction_config, 285
∼doasvm_feature_extraction_config, 286
doagcc, 286
doasvm_feature_extraction_config, 286
fft, 286
fftlen, 286
G, 286
G_length, 286
GCC_end, 286
GCC_start, 286
hifftwin, 286
hifftwin_sum, 286
hwin, 286
ifft, 286
in_spec, 286
proc_wave, 286
process, 286
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
vGCC_ac, 286
vGCC, 286
wndlen, 286
doc_appendix.h, 975
doc_examples.h, 975
doc_frameworks.h, 975
doc_general.h, 975
doc_kernel.h, 975
doc_matlab.h, 975
doc_mhamain.h, 975
doc_parser.h, 975
doc_plugif.cpp, 975
doc_plugins.h, 975
doc_system.h, 975
doc_toolbox.h, 975
documentation
plugindescription_t, 875
domain
MHAParser::mhaconfig_mon_t, 681
MHAPlugin_Split::splitted_part_t, 755
mhaconfig_t, 505
testplugin::config_parser_t, 933
domain_handler_t
MHAPlugin_Split::domain_handler_t, 738
double_t
MHA_AC::double_t, 419
doublebuffer_t
MHASignal::doublebuffer_t, 770
down
MHASignal::schroeder_t, 799
downsample.cpp, 975
downsampling_factor
MHAFilter::polyphase_resampling_t, 563
downscale
MHASignal::quantizer_t, 793
drain
DynComp::dc_afterburn_vars_t, 298
drain_inv
DynComp::dc_afterburn_rt_t, 294
drand
plingploing, 128
dropouts
droptect_t, 289
droptect.cpp, 976
droptect_t, 287
blocks, 289
consecutive_dropouts, 289
current_powspec, 289
dropouts, 289
droptect_t, 288
filter_activated, 289
© 2005-2019 HörTech gGmbH, Oldenburg

1111
filtered_powspec, 289
filtered_powspec_mon, 289
level_mon, 289
period, 289
prepare, 288
process, 288
release, 288
reset, 289
tau, 289
threshold, 289
ds_t, 290
antialias, 291
ds_t, 290
prepare, 291
process, 291
ratio, 291
release, 291
dt
mha_audio_descriptor_t, 428
dtime
MHA_TCP, 93
dummy_interface_test
MHAIOFile.cpp, 1048, 1049
MHAIOJack.cpp, 1051, 1052
MHAIOJackdb.cpp, 1053, 1054
MHAIOParser.cpp, 1056, 1057
MHAIOPortAudio.cpp, 1059, 1060
MHAIOTCP.cpp, 1062, 1063
MHAIOalsa.cpp, 1045, 1046
dummy_jack_proc_cb
mhajack.cpp, 1064
dummy_threads_t
MHAPlugin_Split::dummy_threads_t, 742
dump_mha
fw_t, 347
dup
MHAFilter::thirdoctave_analyzer_t, 569
dupvec
Vector and matrix processing toolbox, 46
dupvec_chk
Vector and matrix processing toolbox, 47
dur_
plingploing::plingploing_t, 869
DynComp, 85
interp1, 85
interp2, 86
DynComp::dc_afterburn_rt_t, 292
burn, 293
conflux, 294
dc_afterburn_rt_t, 293
drain_inv, 294

1112
lp, 294
maxgain, 294
mpo_inv, 294
DynComp::dc_afterburn_t, 294
_cf, 296
_channels, 296
_srate, 296
burn, 295
commit_pending, 296
dc_afterburn_t, 295
fb_pars_configured, 296
patchbay, 296
set_fb_pars, 295
unset_fb_pars, 295
update, 296
update_burner, 295
DynComp::dc_afterburn_vars_t, 296
bypass, 298
commit, 298
conflux, 298
dc_afterburn_vars_t, 298
drain, 298
f, 298
maxgain, 298
mpo, 298
taugain, 298
DynComp::gaintable_t, 298
∼gaintable_t, 301
data, 303
gaintable_t, 300
get_gain, 301, 302
get_iofun, 302
get_vF, 302
get_vL, 302
nbands, 302
nchannels, 302
num_channels, 302
num_F, 302
num_L, 302
update, 301
vFlog, 303
vF, 303
vL, 302
dynamiclib_t, 291
∼dynamiclib_t, 292
dynamiclib_t, 292
fullname, 292
getmodulename, 292
getname, 292
h, 292
modulename, 292

INDEX
resolve, 292
resolve_checked, 292
EPSILON
lpc_bl_predictor.h, 988
lpc_burg-lattice.h, 988
timoconfig.cpp, 1081
EPrew
prediction_error_config, 892
ERR_IHANDLE
MHAIOFile.cpp, 1047
MHAIOJack.cpp, 1050
MHAIOJackdb.cpp, 1053
MHAIOParser.cpp, 1056
MHAIOPortAudio.cpp, 1059
MHAIOTCP.cpp, 1062
MHAIOalsa.cpp, 1045
ERR_SUCCESS
MHAIOFile.cpp, 1047
MHAIOJack.cpp, 1050
MHAIOJackdb.cpp, 1053
MHAIOParser.cpp, 1056
MHAIOPortAudio.cpp, 1059
MHAIOTCP.cpp, 1062
MHAIOalsa.cpp, 1045
ERR_USER
MHAIOFile.cpp, 1048
MHAIOJack.cpp, 1050
MHAIOJackdb.cpp, 1053
MHAIOParser.cpp, 1056
MHAIOPortAudio.cpp, 1059
MHAIOTCP.cpp, 1062
MHAIOalsa.cpp, 1045
ESTIM_CUR
nlms_wave.cpp, 1070
ESTIM_PREV
nlms_wave.cpp, 1070
ESTIMATION_TYPES
nlms_wave.cpp, 1070
ear_t
AuditoryProfile::parser_t::ear_t, 224
edge_frequencies
dc::dc_vars_t, 259
dc_simple::dc_if_t, 265
ef
MHAOvlFilter::fftfb_vars_t, 621
ef2bands
MHAOvlFilter::fspacing_t, 626
ef_h
MHAOvlFilter::band_descriptor_t, 613
ef_l
MHAOvlFilter::band_descriptor_t, 613
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
ef_name
dc::dc_vars_t, 259
efv
MHAOvlFilter::fftfb_ac_info_t, 615
multibandcompressor::fftfb_plug_t, 846
element_gain_name
combc_if_t, 244
element_gain_name_
combc_t, 245
elevation
mha_direction_t, 438
emit_event
MHAEvents::connector_base_t, 507
MHAEvents::connector_t, 509
emitter
MHAEvents::connector_t, 510
emitter_die
MHAEvents::connector_base_t, 507
emitter_is_alive
MHAEvents::connector_base_t, 507
empty_string
MHAParser::keyword_list_t, 669
end_time
MHA_TCP::Timeout_Event, 491
entries
MHAParser::keyword_list_t, 669
MHAParser::parser_t, 692
entry
MHAParser::entry_t, 656
entry_map_t
MHAParser, 111
entry_t
MHAParser::entry_t, 656
envelope_delay
MHAFilter::gamma_flt_t, 538
envreplace
MHAParser, 112
eof
MHA_TCP::Connection, 474
epsilon
smoothgains_bridge::overlapadd_if_←t, 914
equal_dim
Vector and matrix processing toolbox, 47,
48
equidist2bands
MHAOvlFilter::fspacing_t, 626
erb_hz_f_hz
speechnoise.cpp, 1077
err_in
MHAFilter::adapt_filter_param_t, 514
© 2005-2019 HörTech gGmbH, Oldenburg

1113
MHAFilter::adapt_filter_t, 517
error
MHA_TCP::Thread, 490
mha_fifo_lw_t, 450
Error handling in the openMHA, 32
MHA_ErrorMsg, 32
MHA_assert, 33
MHA_assert_equal, 33
mha_debug, 33
errorlog
fw_t, 347
estimateDebug
noisePowProposedScale::noisePow←Proposed, 858
estimtype
nlms_t, 853
event_add_plug
altplugs_t, 215
event_delete_plug
altplugs_t, 215
event_select_plug
altplugs_t, 215
event_set_plugs
altplugs_t, 215
event_start_recording
acsave::acsave_t, 167
event_stop_and_flush
acsave::acsave_t, 167
eventhandler
MHAEvents::connector_t, 510
eventhandler_s
MHAEvents::connector_t, 510
eventhandler_suu
MHAEvents::connector_t, 510
Events
MHA_TCP::Event_Watcher, 479
events
MHA_TCP::Event_Watcher, 479
example1.cpp, 976
example1_t, 303
example1_t, 304
prepare, 304
process, 305
release, 304
example2.cpp, 976
example2_t, 305
example2_t, 307
factor, 308
prepare, 307
process, 307
release, 307

1114
scale_ch, 308
example3.cpp, 976
example3_t, 308
example3_t, 310
factor, 311
on_prereadaccess, 310
on_scale_ch_readaccess, 310
on_scale_ch_valuechanged, 310
on_scale_ch_writeaccess, 310
patchbay, 311
prepare, 310
prepared, 311
process, 311
release, 311
scale_ch, 311
example4.cpp, 976
example4_t, 312
example4_t, 313
factor, 315
on_prereadaccess, 314
on_scale_ch_readaccess, 314
on_scale_ch_valuechanged, 314
on_scale_ch_writeaccess, 314
patchbay, 315
prepare, 314
prepared, 315
process, 314
release, 314
scale_ch, 315
example5.cpp, 976
__declspec, 977
example5_t, 315
channel, 316
example5_t, 316
process, 316
scale, 316
example6.cpp, 977
__declspec, 977
example6_t, 316
channel_no, 317
example6_t, 317
patchbay, 317
prepare, 317
process, 317
rmsdb, 317
update_cfg, 317
exec_fw_command
fw_t, 346
existed_before
mha_stash_environment_variable_t, 467
exit_on_stop

INDEX
fw_t, 347
exit_request
fw_t, 345
expansion
dc_simple::dc_t, 267
expansion_slope
dc_simple::dc_vars_t, 270
expansion_threshold
dc_simple::dc_t, 267
dc_simple::dc_vars_t, 270
expflt
MHAOvlFilter::ShapeFun, 107
expi
Complex arithmetics in the openMHA, 64,
66
explicit_insert
dc::dc_t, 256
export_to
MHASignal::spectrum_t, 804
MHASignal::waveform_t, 820
expression_t, 318
MHAParser::expression_t, 657
extern_connector
MHAParser::commit_t, 652
F
prediction_error_config, 891
rt_nlms_t, 899
f
AuditoryProfile::parser_t::fmap_t, 225
DynComp::dc_afterburn_vars_t, 298
io_tcp_sound_t::float_union, 388
MHAOvlFilter::fftfb_vars_t, 621
MHAOvlFilter::fscale_t, 624
f0_high
timo_params, 940
timoSmooth, 946
f0_low
timo_params, 940
timoSmooth, 946
F_Uflt
prediction_error_config, 891
f_est
lpc_bl_predictor_config, 401
f_hz
MHAOvlFilter::fscale_t, 624
FINISHED
MHA_TCP::Thread, 488
FMTsz
mha_os.h, 1013
factor
cpuload_t, 249
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
example2_t, 308
example3_t, 311
example4_t, 315
plugin_interface_t, 873
fader_if_t, 318
actgains, 319
fader_if_t, 319
newgains, 319
patchbay, 319
prepare, 319
process, 319
tau, 319
update_cfg, 319
fader_spec.cpp, 977
fader_wave, 86
level_adaptor, 86
fader_wave.cpp, 977
DEBUG, 978
fader_wave::fader_wave_if_t, 320
fader_wave_if_t, 321
gain, 321
patchbay, 321
prepare, 321
prepared, 321
process, 321
ramplen, 321
release, 321
set_level, 321
fader_wave::level_adapt_t, 322
can_update, 323
get_level, 323
ilen, 323
l_new, 323
l_old, 323
level_adapt_t, 322
pos, 323
update_frame, 323
wnd, 323
fader_wave_if_t
fader_wave::fader_wave_if_t, 321
fail_on_async_jackerr
MHAIOJackdb::io_jack_t, 581
fail_on_async_jackerror
MHAIOJackdb::io_jack_t, 580
MHAJack::client_t, 599
fail_on_nonmonotonic
MHAOvlFilter::fftfb_vars_t, 621
fail_on_nonmonotonic_cf
MHAOvlFilter::fspacing_t, 626
fail_on_unique_bins
MHAOvlFilter::fftfb_vars_t, 621
© 2005-2019 HörTech gGmbH, Oldenburg

1115
fail_on_unique_fftbins
MHAOvlFilter::fspacing_t, 626
fallback_spec
altplugs_t, 216
fallback_wave
altplugs_t, 216
Fast Fourier Transform functions, 71
mha_fft_backward, 75
mha_fft_backward_scale, 76
mha_fft_forward, 75
mha_fft_forward_scale, 76
mha_fft_free, 72
mha_fft_new, 72
mha_fft_spec2wave, 74
mha_fft_spec2wave_scale, 77
mha_fft_t, 72
mha_fft_wave2spec, 73
mha_fft_wave2spec_scale, 76
fatallog
fw_t, 347
fb
MHAFilter::thirdoctave_analyzer_t, 570
fb_acinfo
fftfilterbank::fftfb_plug_t, 331
fb_pars_configured
DynComp::dc_afterburn_t, 296
fbpow
fftfbpow::fftfbpow_t, 327
fd
MHA_TCP::Connection, 477
MHA_TCP::OS_EVENT_TYPE, 480
fft
doasvm_feature_extraction_config, 286
MHAFilter::fftfilter_t, 527
MHAFilter::fftfilterbank_t, 531
MHAFilter::partitioned_convolution_t, 558
MHAFilter::smoothspec_t, 568
overlapadd::overlapadd_t, 863
fft_find_bin
fshift, 87
fft_t
MHASignal::fft_t, 773
fftfb_ac_info_t
MHAOvlFilter::fftfb_ac_info_t, 615
fftfb_interface_t
fftfilterbank::fftfb_interface_t, 328
fftfb_plug_t
fftfilterbank::fftfb_plug_t, 331
multibandcompressor::fftfb_plug_t, 846
fftfb_t
MHAOvlFilter::fftfb_t, 617

1116
fftfb_vars_t
MHAOvlFilter::fftfb_vars_t, 620
fftfbpow, 86
fftfbpow.cpp, 978
fftfbpow::fftfbpow_interface_t, 323
fftfbpow_interface_t, 324
name, 325
patchbay, 325
prepare, 325
process, 325
update_cfg, 325
fftfbpow::fftfbpow_t, 326
fbpow, 327
fftfbpow_t, 327
fftfbpow_interface_t
fftfbpow::fftfbpow_interface_t, 324
fftfbpow_t
fftfbpow::fftfbpow_t, 327
fftfilter_t
MHAFilter::fftfilter_t, 524
fftfilterbank, 87
fftfilterbank.cpp, 978
fftfilterbank::fftfb_interface_t, 328
algo, 330
fftfb_interface_t, 328
nbands, 330
nchannels, 330
patchbay, 330
prepare, 329
prepared, 330
process, 329
release, 329
return_imag, 330
update_cfg, 329
fftfilterbank::fftfb_plug_t, 330
fb_acinfo, 331
fftfb_plug_t, 331
imag, 331
insert, 331
process, 331
return_imag_, 331
s_out, 331
fftfilterbank_t
MHAFilter::fftfilterbank_t, 528
fftlen
dc_simple::level_smoother_t, 272
doasvm_feature_extraction, 285
doasvm_feature_extraction_config, 286
MHAFilter::fftfilter_t, 526
MHAFilter::fftfilterbank_t, 530
MHAFilter::smoothspec_t, 568

INDEX
MHAOvlFilter::fftfb_t, 618
MHAOvlFilter::overlap_save_filterbank_←t::vars_t, 631
MHAParser::mhaconfig_mon_t, 681
mhaconfig_t, 505
rmslevel_t, 894
testplugin::config_parser_t, 933
timoConfig, 942
fftw_plan_fft
MHASignal::fft_t, 775
fftw_plan_ifft
MHASignal::fft_t, 775
fftw_plan_spec2wave
MHASignal::fft_t, 775
fftw_plan_wave2spec
MHASignal::fft_t, 775
fhz2bandno
speechnoise.cpp, 1077
fifo
wavwriter_t, 956
fifo_size
mha_dblbuf_t, 437
fifolen
analysispath_if_t, 220
wavrec_t, 955
fileformat
acsave::acsave_t, 167
filename
addsndfile::addsndfile_if_t, 182
filename_input
io_file_t, 368
filename_output
io_file_t, 368
fill_info
MHAIOPortAudio::device_info_t, 584
filled
MHASignal::async_rmslevel_t, 765
filter
MHAFilter::adapt_filter_state_t, 515
MHAFilter::adapt_filter_t, 516
MHAFilter::complex_bandpass_t,
521,
522
MHAFilter::fftfilter_t, 525, 526
MHAFilter::fftfilterbank_t, 529, 530
MHAFilter::filter_t, 533, 534
MHAFilter::iir_filter_t, 541
filter_activated
droptect_t, 289
filter_analytic
MHAOvlFilter::overlap_save_filterbank_←analytic_t, 628
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
filter_complex
gtfb_analyzer.cpp, 983
filter_partitions
MHAFilter::partitioned_convolution_t, 556
filter_real
gtfb_analyzer.cpp, 984
filter_t
MHAFilter::filter_t, 532, 533
filterbank
dc::dc_vars_t, 259
dc_simple::dc_if_t, 265
filtered_level
dc::dc_vars_t, 259
filtered_powspec
droptect_t, 289
filtered_powspec_mon
droptect_t, 289
filtershapefun
mha_fftfb.cpp, 1004
fir
calibrator_runtime_layer_t, 230
calibrator_variables_t, 234
firchannels
MHAFilter::fftfilterbank_t, 530
firfir2fftlen
calibrator_runtime_layer_t, 230
firfirlen
calibrator_runtime_layer_t, 230
flag_terminate_inner_thread
analysepath_t, 218
flags
MHAJack::client_t, 599
float_data
testplugin::ac_parser_t, 931
float_mon_t
MHAParser::float_mon_t, 658
float_t
MHA_AC::float_t, 420
MHAParser::float_t, 661
flush_data
acsave::cfg_t, 168
fmap_t
AuditoryProfile::parser_t::fmap_t, 225
fmax
fshift::fshift_t, 336
fshift_hilbert::frequency_translator_t, 339
fmin
fshift::fshift_t, 336
fshift_hilbert::frequency_translator_t, 338
fname
acsave::acsave_t, 167
© 2005-2019 HörTech gGmbH, Oldenburg

1117
for_each
Vector and matrix processing toolbox, 43
force_remove_item
MHAParser::parser_t, 690
force_resize
dc_simple, 84
format
ac2lsl::type_info, 143
io_alsa_t, 364
forward
lpc_bl_predictor_config, 401
lpc_burglattice_config, 405
MHASignal::fft_t, 773
forward_scale
MHASignal::fft_t, 774
fr
spec_fader_t, 924
frag_out
MHAJack::client_avg_t, 590
MHAJack::client_noncont_t, 593
fragsize
alsa_t, 212
analysispath_if_t, 220
calibrator_variables_t, 234
db_if_t, 251
io_file_t, 367
io_parser_t, 374
io_tcp_sound_t, 387
MHAFilter::fftfilter_t, 526
MHAFilter::fftfilterbank_t, 530
MHAFilter::partitioned_convolution_t, 556
MHAFilter::resampling_filter_t, 565
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 598
MHAParser::mhaconfig_mon_t, 681
MHAPlugin_Resampling::resampling_if←_t, 734
mhaconfig_t, 505
testplugin::config_parser_t, 933
fragsize_in
MHAFilter::blockprocessing_polyphase←_resampling_t, 519
fragsize_out
MHAFilter::blockprocessing_polyphase←_resampling_t, 519
fragsize_ratio
MHAIOJackdb::io_jack_t, 581
fragsize_validator
MHAFilter::resampling_filter_t, 565
frame
MHA_AC::acspace2matrix_t, 418

1118
frame_data
alsa_t, 212
framecnt
acsave::save_var_t, 171
frameno
MHA_AC::acspace2matrix_t, 418
noisePowProposedScale::noisePow←Proposed, 859
framerate
ac2osc_t, 147
frames
ac2wave_t, 150
gtfb_analyzer::gtfb_analyzer_cfg_t, 354
prediction_error_config, 890
rt_nlms_t, 899
frameshift
fshift_hilbert::hilbert_shifter_t, 342
framework_thread_priority
MHAPlugin_Split::split_t, 751
framework_thread_scheduler
MHAPlugin_Split::split_t, 750
freq
plingploing::plingploing_t, 869
freq2bin
Vector and matrix processing toolbox, 45
frequency
sine_t, 912
frequency_response
MHAFilter::partitioned_convolution_t, 557
frequency_translator_t
fshift_hilbert::frequency_translator_t, 338
front_channel
adm_rtconfig_t, 200
front_channels
adm_if_t, 197
adm_rtconfig_t, 200
frozen_noise_
cfg_t, 236
frozennoise_length
noise_t, 855
fs
MHAFilter::o1_ar_filter_t, 548
fs_
MHAOvlFilter::fspacing_t, 626
fscale
MHAOvlFilter::fftfb_vars_t, 620
fscale_bw_t
MHAOvlFilter::fscale_bw_t, 623
fscale_t
MHAOvlFilter::fscale_t, 624
fshift, 87

INDEX
fft_find_bin, 87
fshift.cpp, 979
fshift.hh, 979
fshift::fshift_config_t, 332
∼fshift_config_t, 332
delta_phi, 333
delta_phi_total, 333
df, 333
fshift_config_t, 332
kmax, 333
kmin, 333
process, 333
fshift::fshift_t, 334
∼fshift_t, 335
df, 336
fmax, 336
fmin, 336
fshift_t, 335
m_df, 336
m_fmax, 336
m_fmin, 336
patchbay, 336
prepare, 335
process, 335
release, 336
update_cfg, 336
fshift_config_t
fshift::fshift_config_t, 332
fshift_hilbert, 88
fshift_hilbert.cpp, 979
fshift_hilbert::frequency_translator_t, 337
df, 338
fmax, 339
fmin, 338
frequency_translator_t, 338
irslen, 339
patchbay, 338
phasemode, 339
prepare, 338
process, 338
release, 338
update, 338
fshift_hilbert::hilbert_shifter_t, 339
∼hilbert_shifter_t, 341
analytic, 341
delta_phi, 342
delta_phi_total, 342
df, 342
frameshift, 342
fullspec, 341
hilbert_shifter_t, 340
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
kmax, 342
kmin, 342
mhafft, 342
mixw_ref, 341
mixw_shift, 341
plan_spec2analytic, 341
process, 341
shifted, 341
fshift_t
fshift::fshift_t, 335
fspacing_t
MHAOvlFilter::fspacing_t, 626
ft
spec2wave_t, 922
wave2spec_t, 952
ftype
MHAOvlFilter::fftfb_vars_t, 621
fu
rt_nlms_t, 900
fu_previous
rt_nlms_t, 900
fuflt
rt_nlms_t, 900
fullname
dynamiclib_t, 292
MHAParser::base_t, 641
plugindescription_t, 875
fullspec
fshift_hilbert::hilbert_shifter_t, 341
fun1
plingploing::plingploing_t, 870
fun1_key
plingploing::if_t, 867
plingploing::plingploing_t, 870
fun1_range
plingploing::if_t, 867
plingploing::plingploing_t, 870
fun2
plingploing::plingploing_t, 870
fun2_key
plingploing::if_t, 867
plingploing::plingploing_t, 870
fun2_range
plingploing::if_t, 867
plingploing::plingploing_t, 870
fun_t
MHAWindow::fun_t, 838
funs
MHAOvlFilter::scale_var_t, 633
fw_cmd
fw_t, 347
© 2005-2019 HörTech gGmbH, Oldenburg

1119
fw_exiting
fw_t, 345
fw_fragsize
io_alsa_t, 364
MHAIOJack::io_jack_t, 576
fw_running
fw_t, 345
fw_samplerate
io_alsa_t, 364
MHAIOJack::io_jack_t, 576
fw_sleep
fw_t, 347
fw_sleep_cmd
fw_t, 346
fw_starting
fw_t, 345
fw_stopped
fw_t, 345
fw_stopping
fw_t, 345
fw_t, 343
∼fw_t, 345
ac, 347
async_poll_msg, 347
async_read, 347
b_exit_request, 348
cfin, 348
cfout, 348
dump_mha, 347
errorlog, 347
exec_fw_command, 346
exit_on_stop, 347
exit_request, 345
fatallog, 347
fw_cmd, 347
fw_exiting, 345
fw_running, 345
fw_sleep, 347
fw_sleep_cmd, 346
fw_starting, 345
fw_stopped, 345
fw_stopping, 345
fw_t, 345
fw_unprepared, 345
fw_until, 347
fw_until_cmd, 346
get_input_signal_dimension, 346
get_parserstate, 347
inst_name, 347
io_error, 348
io_lib, 348

1120
io_name, 347
load_io_lib, 346
load_proc_lib, 346
nchannels_out, 347
parserstate, 347
patchbay, 348
plugin_paths, 347
plugins, 347
prepare, 345
prepare_vars, 347
proc_error, 348
proc_error_string, 348
proc_lib, 348
proc_name, 347
process, 346
quit, 346
release, 346
start, 345
started, 346
state, 348
state_t, 345
stop, 345
stopped, 346
fw_unprepared
fw_t, 345
fw_until
fw_t, 347
fw_until_cmd
fw_t, 346
fw_vars_t, 348
fw_vars_t, 349
lock_channels, 349
lock_srate_fragsize, 349
pfragmentsize, 349
pinchannels, 349
psrate, 349
unlock_channels, 349
unlock_srate_fragsize, 349
fwcb
io_tcp_t, 391
G
doasvm_feature_extraction_config, 286
g
coherence::cohflt_t, 240
g50
dc_simple::dc_vars_t, 269
g80
dc_simple::dc_vars_t, 269
G_ERRNO
MHA_TCP, 92
G_length

INDEX
doasvm_feature_extraction_config, 286
g_scale
dc::wb_inhib_cfg_t, 261
dc::wideband_inhib_vars_t, 262
GCC_end
doasvm_feature_extraction_config, 286
GCC_start
doasvm_feature_extraction_config, 286
GITCOMMITHASH
mha_plugin.hh, 1023
GLRDebug
noisePowProposedScale::noisePow←Proposed, 858
GLRexp
noisePowProposedScale::noisePow←Proposed, 859
timoConfig, 943
GLR
timoConfig, 943
GREETING_TEXT
mhamain.cpp, 1067
gain, 88
alsa_t, 212
calibrator_runtime_layer_t, 230
coherence::cohflt_t, 241
fader_wave::fader_wave_if_t, 321
multibandcompressor::plugin_signals_t,
850
gain.cpp, 979
gain::gain_if_t, 350
bbgain, 351
gain_if_t, 351
gains, 351
patchbay, 351
prepare, 351
process, 351
release, 351
update_bbgain, 351
update_gain, 351
update_minmax, 351
vmax, 351
vmin, 351
gain::scaler_t, 352
scaler_t, 352
gain_ac
ac2wave_if_t, 149
ac2wave_t, 151
gain_delay
coherence::cohflt_t, 241
gain_if_t
gain::gain_if_t, 351
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
gain_in
ac2wave_if_t, 149
ac2wave_t, 151
gain_min
timoConfig, 942
gain_min_db
timo_params, 940
timoSmooth, 947
gain_spec_
cfg_t, 236
gain_wave_
cfg_t, 236
gain_wiener
timoConfig, 943
gain_wiener_AC
timo_AC, 938
gainrule
dc::dc_vars_t, 259
dc_simple::dc_if_t, 265
gains
gain::gain_if_t, 351
prediction_error, 888
shadowfilter_end::cfg_t, 907
spec_fader_t, 924
gaintable.cpp, 980
convert_f2logf, 980
isempty, 980
gaintable.h, 980
gaintable_t
DynComp::gaintable_t, 300
gamma_flt_t
MHAFilter::gamma_flt_t, 536
gamma_post
timoConfig, 943
gamma_post_AC
timo_AC, 937
gauss
MHAOvlFilter::ShapeFun, 107
gcd
MHAFilter, 97
generatemhaplugindoc.cpp, 981
conv2latex, 981
create_latex_doc, 982
main, 982
print_plugin_references, 982
get
testplugin::config_parser_t, 933
get_A
MHAFilter::gamma_flt_t, 537
get_a
MHAParser::base_t::replace_t, 643
© 2005-2019 HörTech gGmbH, Oldenburg

1121
get_ac
latex_doc_t, 394
plug_t, 871
get_accept_event
MHA_TCP::Server, 482
get_all_input_ports
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 581
get_all_names_from_ac_space
ac2lsl::ac2lsl_t, 132
get_all_output_ports
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 581
get_audiochannels
dc, 83
get_available_space
mha_drifter_fifo_t, 442
mha_fifo_t, 455
get_b
MHAParser::base_t::replace_t, 643
get_buf_address
ac2lsl::save_var_base_t, 136
ac2lsl::save_var_t, 139
ac2lsl::save_var_t< mha_complex_t >,
142
get_bw_hz
MHAOvlFilter::fscale_bw_t, 623
get_c1
MHAFilter::o1flt_lowpass_t, 550
get_c_handle
MHAKernel::algo_comm_class_t, 604
get_categories
latex_doc_t, 393
PluginLoader::mhapluginloader_t, 884
get_cdata
MHASignal::matrix_t, 790
get_cf_fftbin
MHAOvlFilter::fspacing_t, 626
get_cf_hz
MHAFilter::thirdoctave_analyzer_t, 569
MHAOvlFilter::fspacing_t, 626
get_cfin
MHAParser::mhapluginloader_t, 684
get_cfout
MHAParser::mhapluginloader_t, 684
get_channelconfig
MHAOvlFilter::overlap_save_filterbank_t,
630
get_comm_var
MHASignal::matrix_t, 785
get_configfile

1122
PluginLoader::config_file_splitter_t, 877
get_configname
PluginLoader::config_file_splitter_t, 876
get_connected
io_tcp_parser_t, 381
get_cpu_load
MHAJack::client_t, 597
get_current_profile
AuditoryProfile::parser_t, 223
get_delay
mha_dblbuf_t, 435
get_delays_in
MHAIOJack::io_jack_t, 576
get_delays_out
MHAIOJack::io_jack_t, 576
get_des_fill_count
mha_drifter_fifo_t, 442
get_documentation
PluginLoader::mhapluginloader_t, 884
get_ear
AuditoryProfile::parser_t::ear_t, 224
AuditoryProfile::profile_t, 226
get_ef_hz
MHAOvlFilter::fspacing_t, 626
get_entries
algo_comm_t, 205
MHAKernel::algo_comm_class_t, 605
MHAParser::keyword_list_t, 668
get_error
algo_comm_t, 205
MHAKernel::algo_comm_class_t, 605
get_f_hz
MHAOvlFilter::fscale_t, 624
get_fbpower
MHAOvlFilter::fftfb_t, 617
get_fbpower_db
MHAOvlFilter::fftfb_t, 617
get_fd
MHA_TCP::Connection, 474
get_fftlen
MHAOvlFilter::fftfb_t, 618
get_fifo_size
mha_dblbuf_t, 435
get_fill_count
mha_drifter_fifo_t, 442
mha_fifo_t, 455
get_fmap
AuditoryProfile::parser_t::fmap_t, 225
get_fragsize
MHAJack::client_t, 596
get_frequencies

INDEX
AuditoryProfile::fmap_t, 221
get_fun
MHAOvlFilter::scale_var_t, 633
get_gain
DynComp::gaintable_t, 301, 302
get_handle
plug_t, 871
get_index
MHAParser::keyword_list_t, 668
MHASignal::matrix_t, 789
get_inner_error
mha_dblbuf_t, 435
get_inner_size
mha_dblbuf_t, 434
get_input_channels
mha_dblbuf_t, 435
get_input_fifo_fill_count
mha_dblbuf_t, 435
get_input_fifo_space
mha_dblbuf_t, 435
get_input_signal_dimension
fw_t, 346
get_interface
MHA_TCP::Server, 482
get_iofun
DynComp::gaintable_t, 302
get_irs
MHAFilter::fftfilterbank_t, 530
get_last_name
MHAParser::mhapluginloader_t, 684
get_last_output
MHAFilter::o1flt_lowpass_t, 550
get_latex_doc
latex_doc_t, 393
get_len_A
MHAFilter::filter_t, 534
get_len_B
MHAFilter::filter_t, 534
get_length
MHASignal::uint_vector_t, 811
get_level
addsndfile::level_adapt_t, 184
fader_wave::level_adapt_t, 323
get_level_in_db
dc::dc_t, 256
get_level_in_db_adjusted
dc::dc_t, 256
get_libname
PluginLoader::config_file_splitter_t, 877
get_local_address
io_tcp_parser_t, 380
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
get_local_port
io_tcp_parser_t, 380
get_longmsg
MHA_Error, 446
get_ltass_gain_db
MHAOvlFilter::fftfb_t, 618
get_main_category
latex_doc_t, 393
get_mapping
MHASignal::loop_wavefragment_t, 780
get_max_fill_count
mha_fifo_t, 455
get_min_fill_count
mha_drifter_fifo_t, 442
get_msg
MHA_Error, 446
get_my_input_ports
MHAJack::client_t, 597
get_my_output_ports
MHAJack::client_t, 597
get_name
MHAOvlFilter::scale_var_t, 633
get_nbands
dc::dc_t, 256
get_nelements
MHASignal::matrix_t, 786
get_nreals
MHASignal::matrix_t, 789
get_origname
PluginLoader::config_file_splitter_t, 877
get_os_event
MHA_TCP::Timeout_Event, 491
MHA_TCP::Wakeup_Event, 494
get_outer_size
mha_dblbuf_t, 434
get_output_channels
mha_dblbuf_t, 435
get_output_fifo_fill_count
mha_dblbuf_t, 435
get_output_fifo_space
mha_dblbuf_t, 435
get_parser_tab
latex_doc_t, 394
get_parser_var
latex_doc_t, 394
get_parserstate
fw_t, 347
get_paths
pluginbrowser_t, 874
get_peer_address
MHA_TCP::Connection, 474
© 2005-2019 HörTech gGmbH, Oldenburg

1123
get_peer_port
MHA_TCP::Connection, 474
get_physical_input_ports
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 580
get_physical_output_ports
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 581
get_plugins
pluginbrowser_t, 874
get_port
MHA_TCP::Server, 482
get_port_capture_latency
MHAJack, 100
get_port_capture_latency_int
MHAJack, 100
get_port_playback_latency
MHAJack, 101
get_port_playback_latency_int
MHAJack, 101
get_ports
MHAJack::client_t, 597
get_precision
MHAParser, 111
get_process_spec
plug_t, 871
get_process_wave
plug_t, 871
get_rdata
MHASignal::matrix_t, 790
get_read_event
MHA_TCP::Connection, 474
get_resynthesis_gain
MHAFilter::gamma_flt_t, 537
get_server_port_open
io_tcp_parser_t, 381
get_short_name
MHAJack::port_t, 602
get_signal
MHAPlugin_Split::domain_handler_t, 740
get_size
MHASignal::waveform_t, 822
get_srate
MHAJack::client_t, 597
get_type
MHAParser::window_t, 721
get_value
MHAParser::keyword_list_t, 668
get_values
AuditoryProfile::fmap_t, 221
get_var

1124
algo_comm_t, 204
MHAKernel::algo_comm_class_t, 605
testplugin::ac_parser_t, 931
get_var_float
algo_comm_t, 204
Communication between algorithms, 30
MHAKernel::algo_comm_class_t, 605
get_var_int
algo_comm_t, 204
Communication between algorithms, 30
MHAKernel::algo_comm_class_t, 605
get_var_spectrum
Communication between algorithms, 29
get_var_vfloat
Communication between algorithms, 31
get_var_waveform
Communication between algorithms, 30
get_vF
DynComp::gaintable_t, 302
get_vL
DynComp::gaintable_t, 302
get_weights
MHAFilter::complex_bandpass_t, 521
MHAFilter::gamma_flt_t, 537
get_window
MHAParser::window_t, 720, 721
get_window_data
windowselector_t, 958
get_write_event
MHA_TCP::Connection, 474
get_xlimits
MHATableLookup::xy_table_t, 833
get_xruns
MHAJack::client_t, 597
get_xruns_reset
MHAJack::client_t, 597
getcipd
coherence, 82
getdata
MHASignal::uint_vector_t, 811
getfullname
PluginLoader::mhapluginloader_t, 883
getmodulename
dynamiclib_t, 292
Getmsg
mha_error.hh, 1002
getname
dynamiclib_t, 292
MHA_AC::ac2matrix_t, 414
getusername
MHA_AC::ac2matrix_t, 415

INDEX
getvar
acmon::ac_monitor_t, 156
MHA_AC::ac2matrix_helper_t, 412
GF
MHAFilter::gamma_flt_t, 537
groupdelay_t
MHASignal::schroeder_t, 798
gt
dc::dc_t, 256
gtdata
dc::dc_vars_t, 258
gtfb_analyzer, 88
gtfb_analyzer.cpp, 982
filter_complex, 983
filter_real, 984
gtfb_analyzer::gtfb_analyzer_cfg_t, 352
∼gtfb_analyzer_cfg_t, 354
bands, 354
channels, 354
coeff, 354
cvalue, 354
frames, 354
gtfb_analyzer_cfg_t, 353
norm_phase, 354
order, 354
s_out, 355
state, 355
states, 354
gtfb_analyzer::gtfb_analyzer_t, 355
coeff, 357
gtfb_analyzer_t, 357
norm_phase, 357
order, 357
patchbay, 357
prepare, 357
prepared, 357
process, 357
update_cfg, 357
gtfb_analyzer_cfg_t
gtfb_analyzer::gtfb_analyzer_cfg_t, 353
gtfb_analyzer_t
gtfb_analyzer::gtfb_analyzer_t, 357
gtmin
dc::dc_vars_t, 258
gtstep
dc::dc_vars_t, 258
h
dynamiclib_t, 292
MHASignal::hilbert_t, 777
H_ERRNO
MHA_TCP, 92
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
HELP_TEXT
mhamain.cpp, 1067
HINSTANCE
mha_plugin.hh, 1023
HSTRERROR
MHA_TCP, 92
HTL
AuditoryProfile::parser_t::ear_t, 224
AuditoryProfile::profile_t::ear_t, 227
hamming
MHAWindow, 127
hamming_t
MHAWindow::hamming_t, 840
handle
algo_comm_t, 201
hann
hann.cpp, 985
hann.h, 985
MHAOvlFilter::ShapeFun, 107
hann.cpp, 984
hann, 985
hannf, 985
PI, 985
hann.h, 985
hann, 985
hannf, 985
hann1
plingploing::plingploing_t, 870
hann2
plingploing::plingploing_t, 870
hannf
hann.cpp, 985
hann.h, 985
hanning
MHAWindow, 127
hanning_ramps_t, 358
∼hanning_ramps_t, 358
hanning_ramps_t, 358
len_a, 358
len_b, 358
operator(), 358
ramp_a, 358
ramp_b, 358
hanning_t
MHAWindow::hanning_t, 841
hardlimit
softclipper_t, 918
softclipper_variables_t, 920
has_been_modified
dc_simple::dc_if_t, 265
has_inner_error
© 2005-2019 HörTech gGmbH, Oldenburg

1125
analysepath_t, 218
has_key
MHAKernel::comm_var_map_t, 606
has_parser
PluginLoader::mhapluginloader_t, 883
has_process
PluginLoader::mhapluginloader_t, 883
header
io_tcp_sound_t, 386
help
MHAParser::base_t, 642
hifftwin
doasvm_feature_extraction_config, 286
hifftwin_sum
doasvm_feature_extraction_config, 286
high_side_flat
MHAOvlFilter::band_descriptor_t, 613
hilbert
MHASignal::hilbert_fftw_t, 776
hilbert_fftw_t
MHASignal::hilbert_fftw_t, 776
hilbert_shifter_t
fshift_hilbert::hilbert_shifter_t, 340
hilbert_t
MHASignal::hilbert_t, 777
host
ac2osc_t, 146
host_port_to_sock_addr
mha_tcp.cpp, 1040
hostApi
MHAIOPortAudio::device_info_t, 584
Hs
MHAFilter::fftfilterbank_t, 530
hton
io_tcp_sound_t, 387
hw
MHAFilter::fftfilterbank_t, 530
hwin
doasvm_feature_extraction_config, 286
hz2bark
MHAOvlFilter::FreqScaleFun, 105
hz2bark_analytic
MHAOvlFilter::FreqScaleFun, 105
hz2bark_t
MHAOvlFilter::barkscale::hz2bark_t, 615
hz2erb
MHAOvlFilter::FreqScaleFun, 105
hz2erb_glasberg1990
MHAOvlFilter::FreqScaleFun, 105
hz2hz
MHAOvlFilter::FreqScaleFun, 104

1126
speechnoise.cpp, 1077
hz2khz
MHAOvlFilter::FreqScaleFun, 104
hz2log
MHAOvlFilter::FreqScaleFun, 105
hz2octave
MHAOvlFilter::FreqScaleFun, 104
hz2third_octave
MHAOvlFilter::FreqScaleFun, 104
hz2unit
MHAOvlFilter::scale_var_t, 633
i
io_tcp_sound_t::float_union, 388
INSERT_PATCH
acConcat_wave.cpp, 961
acPooling_wave.cpp, 962
acSteer.cpp, 963
acTransform_wave.cpp, 964
doasvm_classification.cpp, 974
doasvm_feature_extraction.cpp, 975
lpc.cpp, 987
lpc_bl_predictor.cpp, 987
lpc_burg-lattice.cpp, 988
prediction_error.cpp, 1072
steerbf.cpp, 1080
timoSmooth.cpp, 1082
INSERT_VAR
timoSmooth.cpp, 1082
INVALID_SOCKET
mha_tcp.cpp, 1040
INVALID_THREAD_PRIORITY
MHAPlugin_Split, 118
IO_ERROR_JACK
mhajack.h, 1066
IO_ERROR_MHAJACKLIB
mhajack.h, 1066
IODestroy
MHAIOFile.cpp, 1048, 1049
MHAIOJack.cpp, 1051, 1052
MHAIOJackdb.cpp, 1053, 1054
MHAIOParser.cpp, 1056, 1057
MHAIOPortAudio.cpp, 1059, 1060
MHAIOTCP.cpp, 1062, 1063
MHAIOalsa.cpp, 1045, 1046
IODestroy_cb
io_lib_t, 371
IODestroy_t
mha_io_ifc.h, 1009
IOInit
MHAIOFile.cpp, 1048
MHAIOJack.cpp, 1050, 1051

INDEX
MHAIOJackdb.cpp, 1053, 1054
MHAIOParser.cpp, 1056
MHAIOPortAudio.cpp, 1059
MHAIOTCP.cpp, 1062, 1063
MHAIOalsa.cpp, 1045
IOInit_cb
io_lib_t, 371
IOInit_t
mha_io_ifc.h, 1009
IOPrepare
MHAIOFile.cpp, 1048
MHAIOJack.cpp, 1051
MHAIOJackdb.cpp, 1053, 1054
MHAIOParser.cpp, 1056
MHAIOPortAudio.cpp, 1059
MHAIOTCP.cpp, 1062, 1063
MHAIOalsa.cpp, 1045, 1046
IOPrepare_cb
io_lib_t, 371
IOPrepare_t
mha_io_ifc.h, 1009
IOProcessEvent_inner
MHAIOJackdb::io_jack_t, 580
IOProcessEvent_t
mha_io_ifc.h, 1009
IORelease
MHAIOFile.cpp, 1048, 1049
MHAIOJack.cpp, 1051
MHAIOJackdb.cpp, 1053, 1054
MHAIOParser.cpp, 1056, 1057
MHAIOPortAudio.cpp, 1059, 1060
MHAIOTCP.cpp, 1062, 1063
MHAIOalsa.cpp, 1045, 1046
IORelease_cb
io_lib_t, 371
IORelease_t
mha_io_ifc.h, 1009
IOSetVar
MHAIOFile.cpp, 1048, 1049
MHAIOJack.cpp, 1051
MHAIOJackdb.cpp, 1053, 1054
MHAIOParser.cpp, 1056, 1057
MHAIOPortAudio.cpp, 1059, 1060
MHAIOTCP.cpp, 1062, 1063
MHAIOalsa.cpp, 1045, 1046
IOSetVar_cb
io_lib_t, 371
IOSetVar_t
mha_io_ifc.h, 1009
IOStart
MHAIOFile.cpp, 1048
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
MHAIOJack.cpp, 1051
MHAIOJackdb.cpp, 1053, 1054
MHAIOParser.cpp, 1056
MHAIOPortAudio.cpp, 1059, 1060
MHAIOTCP.cpp, 1062, 1063
MHAIOalsa.cpp, 1045, 1046
IOStart_cb
io_lib_t, 371
IOStart_t
mha_io_ifc.h, 1009
IOStartedEvent_t
mha_io_ifc.h, 1009
IOStop
MHAIOFile.cpp, 1048
MHAIOJack.cpp, 1051
MHAIOJackdb.cpp, 1053, 1054
MHAIOParser.cpp, 1056, 1057
MHAIOPortAudio.cpp, 1059, 1060
MHAIOTCP.cpp, 1062, 1063
MHAIOalsa.cpp, 1045, 1046
IOStop_cb
io_lib_t, 371
IOStop_t
mha_io_ifc.h, 1009
IOStoppedEvent
MHAJack::client_avg_t, 590
MHAJack::client_noncont_t, 592
IOStoppedEvent_t
mha_io_ifc.h, 1009
IOStrError
MHAIOFile.cpp, 1048, 1049
MHAIOJack.cpp, 1051, 1052
MHAIOJackdb.cpp, 1053, 1054
MHAIOParser.cpp, 1056, 1057
MHAIOPortAudio.cpp, 1059, 1060
MHAIOTCP.cpp, 1062, 1063
MHAIOalsa.cpp, 1045, 1046
IOStrError_cb
io_lib_t, 371
IOStrError_t
mha_io_ifc.h, 1009
id
mha_channel_info_t, 430
id_str
MHAParser::base_t, 642
id_string
MHAParser::parser_t, 692
identity
MHASignal::schroeder_t, 800
identity.cpp, 985
identity_t, 359
© 2005-2019 HörTech gGmbH, Oldenburg

1127
identity_t, 359
prepare, 360
process, 359, 360
release, 360
idstr
mha_channel_info_t, 430
if_t
plingploing::if_t, 866
testplugin::if_t, 935
iface
MHA_TCP::Server, 483
ifft
doasvm_feature_extraction_config, 286
ifftshift
ifftshift.cpp, 986
ifftshift.h, 986
ifftshift.cpp, 985
ifftshift, 986
ifftshift.h, 986
ifftshift, 986
ignore
MHA_TCP::Event_Watcher, 479
ignored_by
MHA_TCP::Wakeup_Event, 494
iir_filter_state_t
MHAFilter::iir_filter_state_t, 539
iir_filter_t
MHAFilter::iir_filter_t, 540
iir_ord1_real_t
MHAFilter::iir_ord1_real_t, 543
iirfilter.cpp, 986
iirfilter_t, 360
iirfilter_t, 361
prepare_, 361
process, 361
release_, 361
ilen
addsndfile::level_adapt_t, 184
fader_wave::level_adapt_t, 323
im
mha_complex_t, 431
imag
acsave::mat4head_t, 169
fftfilterbank::fftfb_plug_t, 331
MHASignal::matrix_t, 787–789
imagfb
MHAOvlFilter::overlap_save_filterbank_←analytic_t, 628
impulse_response
MHAFilter::polyphase_resampling_t, 563
MHAFilter::transfer_function_t, 572

1128
in_buf
wave2spec_t, 953
in_cfg
timo_params, 940
in_spec
doasvm_feature_extraction_config, 286
shadowfilter_end::cfg_t, 907
in_spec_copy
shadowfilter_begin::cfg_t, 904
inbuf
MHA_TCP::Connection, 477
inch
MHAJack::client_t, 599
increase_condition
mha_fifo_posix_threads_t, 452
increment
mha_fifo_posix_threads_t, 451
mha_fifo_thread_platform_t, 459
index
MHAParser::keyword_list_t, 669
index_t
MHAFilter::partitioned_convolution_t←::index_t, 558, 559
info
ac2lsl::save_var_base_t, 137
ac2lsl::save_var_t, 139
ac2lsl::save_var_t< mha_complex_t >,
142
inhib_gain
dc::dc_t, 257
Init_mha_ruby
mha_ruby.cpp, 1026
init_peer_data
MHA_TCP::Connection, 473
initialize
MHA_TCP::Server, 482
inner2outer_resampling
MHAPlugin_Resampling::resampling_t,
736
inner_ac_copy
analysepath_t, 218
inner_error
analysepath_t, 218
mha_dblbuf_t, 437
inner_fragsize
MHAPlugin_Resampling::resampling_t,
736
inner_in
MHASignal::doublebuffer_t, 772
inner_input
analysepath_t, 218

INDEX
inner_out
MHASignal::doublebuffer_t, 772
inner_out_domain
analysepath_t, 218
inner_process
db_t, 252
MHASignal::doublebuffer_t, 771
inner_process_wave2spec
analysepath_t, 218
inner_process_wave2wave
analysepath_t, 218
inner_signal
MHAPlugin_Resampling::resampling_t,
736
inner_size
mha_dblbuf_t, 437
inner_srate
MHAPlugin_Resampling::resampling_t,
736
input
io_parser_t, 374
MHAJack::port_t, 600
MHASignal::loop_wavefragment_t, 779
mha_dblbuf_t, 436
input_cfg
MHAPlugin::plugin_t, 731
input_cfg_
MHAPlugin::plugin_t, 732
input_channels
adm_if_t, 197
mha_dblbuf_t, 437
input_domain
PluginLoader::mhapluginloader_t, 883
input_fifo
mha_dblbuf_t, 437
input_level
dc::dc_vars_t, 259
input_portnames
MHAJack::client_t, 599
input_signal_spec
MHAFilter::partitioned_convolution_t, 557
input_signal_wave
MHAFilter::partitioned_convolution_t, 556
input_spec
testplugin::signal_parser_t, 936
input_to_process
analysepath_t, 218
input_wave
testplugin::signal_parser_t, 936
inputPow
noisePowProposedScale::noisePow←© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
Proposed, 858
inputSpec
noisePowProposedScale::noisePow←Proposed, 858
inputchannels
MHAFilter::fftfilterbank_t, 530
insert
acPooling_wave_config, 163
acSteer_config, 175
coherence::cohflt_t, 240
fftfilterbank::fftfb_plug_t, 331
lpc_config, 407
MHA_AC::ac2matrix_t, 415
MHA_AC::acspace2matrix_t, 418
MHA_AC::spectrum_t, 423
MHA_AC::stat_t, 425
MHA_AC::waveform_t, 427
MHAOvlFilter::fftfb_ac_info_t, 615
multibandcompressor::fftfb_plug_t, 846
noisePowProposedScale::noisePow←Proposed, 858
prediction_error_config, 890
rmslevel_t, 894
rt_nlms_t, 899
timo_AC, 937
insert_item
MHAParser::parser_t, 690
insert_items
windowselector_t, 958
insert_member
mha_parser.hh, 1021
insert_var
algo_comm_t, 201
MHAKernel::algo_comm_class_t, 604
testplugin::ac_parser_t, 931
insert_var_float
algo_comm_t, 202
MHAKernel::algo_comm_class_t, 604
insert_var_int
algo_comm_t, 202
MHAKernel::algo_comm_class_t, 604
inspect
MHAFilter::complex_bandpass_t, 522
MHAFilter::gamma_flt_t, 537
MHASignal::delay_t, 768
inst_name
fw_t, 347
int_data
testplugin::ac_parser_t, 931
int_mon_t
MHAParser::int_mon_t, 663
© 2005-2019 HörTech gGmbH, Oldenburg

1129
int_t
MHA_AC::int_t, 421
MHAParser::int_t, 665
integrate
Vector and matrix processing toolbox, 48
intensity
mha_signal.cpp, 1028
interface_t
delay::interface_t, 274
multibandcompressor::interface_t, 848
noisePowProposedScale::interface_t, 856
route::interface_t, 896
interleaved
combc_if_t, 244
interleaved_
combc_t, 245
intern_level
MHASignal::loop_wavefragment_t, 781
internal_fir
MHAFilter::smoothspec_t, 568
internal_start
MHAJack::client_t, 598
internal_stop
MHAJack::client_t, 598
interp
MHATableLookup::linear_table_t, 826
MHATableLookup::table_t, 829
MHATableLookup::xy_table_t, 831
interp1
DynComp, 85
interp2
DynComp, 86
inv_scale
MHAOvlFilter::FreqScaleFun, 105
invalidate_window_data
windowselector_t, 959
invert
coherence::vars_t, 242
invgain
alsa_t, 213
inwave
lpc_config, 408
io
MHAJack, 100
MHAJack::client_avg_t, 589
MHAJack::client_noncont_t, 592
io_alsa_t, 361
alsa_start_counter, 364
b_process, 364
dev_in, 364
dev_out, 364

1130
format, 364
fw_fragsize, 364
fw_samplerate, 364
io_alsa_t, 363
p_in, 364
p_out, 364
patchbay, 364
pcmlink, 364
prepare, 363, 364
priority, 364
proc_event, 364
proc_handle, 364
proc_thread, 364
process, 364
release, 363
start, 363
start_event, 364
start_handle, 364
stop, 363
stop_event, 364
stop_handle, 364
thread_start, 363
io_err
io_tcp_fwcb_t, 378
io_error
fw_t, 348
io_file_t, 365
∼io_file_t, 366
b_prepared, 368
filename_input, 368
filename_output, 368
fragsize, 367
io_file_t, 366
length, 368
nchannels_file_in, 367
nchannels_in, 367
nchannels_out, 367
output_sample_format, 368
prepare, 367
proc_event, 368
proc_handle, 368
release, 367
s_file_in, 368
s_in, 368
s_out, 368
samplerate, 367
setlock, 367
sf_in, 368
sf_out, 368
sfinf_in, 368
sfinf_out, 368

INDEX
start, 367
start_event, 368
start_handle, 368
startsample, 368
stop, 367
stop_event, 368
stop_handle, 368
stopped, 367
strict_channel_match, 368
strict_srate_match, 368
total_read, 368
io_jack_t
MHAIOJack::io_jack_t, 575
MHAIOJackdb::io_jack_t, 580
io_lib
fw_t, 348
io_lib_t, 369
∼io_lib_t, 370
IODestroy_cb, 371
IOInit_cb, 371
IOPrepare_cb, 371
IORelease_cb, 371
IOSetVar_cb, 371
IOStart_cb, 371
IOStop_cb, 371
IOStrError_cb, 371
io_lib_t, 370
lib_data, 371
lib_err, 371
lib_handle, 371
lib_str_error, 371
prepare, 370
release, 371
start, 371
stop, 371
test_error, 371
io_name
fw_t, 347
io_parser_t, 372
∼io_parser_t, 373
b_fw_started, 374
b_prepared, 374
b_starting, 374
b_stopped, 374
fragsize, 374
input, 374
io_parser_t, 373
nchannels_in, 374
nchannels_out, 374
output, 374
patchbay, 374
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
prepare, 373
proc_event, 374
proc_handle, 374
process_frame, 374
release, 374
s_in, 374
s_out, 374
start, 373
start_event, 374
start_handle, 374
started, 374
stop, 374
stop_event, 374
stop_handle, 374
stopped, 374
io_portaudio_t
MHAIOPortAudio::io_portaudio_t, 586
io_tcp_fwcb_t, 375
∼io_tcp_fwcb_t, 376
io_err, 378
io_tcp_fwcb_t, 376
proc_err, 378
proc_event, 377
proc_handle, 377
process, 376
set_errnos, 376
start, 376
start_event, 377
start_handle, 378
stop, 377
stop_event, 377
stop_handle, 378
io_tcp_parser_t, 378
∼io_tcp_parser_t, 380
connected, 383
debug, 383
debug_file, 384
debug_filename, 384
get_connected, 381
get_local_address, 380
get_local_port, 380
get_server_port_open, 381
io_tcp_parser_t, 380
local_address, 383
local_port, 383
peer_address, 383
peer_port, 384
server_port_open, 383
set_connected, 382
set_local_port, 380
set_new_peer, 382
© 2005-2019 HörTech gGmbH, Oldenburg

1131
set_server_port_open, 381
io_tcp_sound_t, 384
∼io_tcp_sound_t, 385
check_sound_data_type, 386
chunkbytes_in, 386
fragsize, 387
header, 386
hton, 387
io_tcp_sound_t, 385
ntoh, 386
num_inchannels, 387
num_outchannels, 388
prepare, 386
release, 386
s_in, 388
samplerate, 387
io_tcp_sound_t::float_union, 388
c, 388
f, 388
i, 388
io_tcp_t, 389
∼io_tcp_t, 390
accept_loop, 390
connection_loop, 390
fwcb, 391
io_tcp_t, 390
notify_release, 391
notify_start, 391
notify_stop, 391
parse, 391
parser, 391
prepare, 390
release, 390
server, 391
sound, 391
start, 390
stop, 390
thread, 391
iob
MHAJack::port_t, 602
irslen
fshift_hilbert::frequency_translator_t, 339
irslen_inner2outer
MHAPlugin_Resampling::resampling_if←_t, 734
irslen_outer2inner
MHAPlugin_Resampling::resampling_if←_t, 734
irswnd
MHAOvlFilter::overlap_save_filterbank_←t::vars_t, 631

1132
smoothgains_bridge::overlapadd_if_←t, 914
is_complex
MHA_AC::ac2matrix_helper_t, 413
mha_audio_descriptor_t, 428
is_first_run
ac2lsl::ac2lsl_t, 133
ac2osc_t, 147
is_playback_active
MHASignal::loop_wavefragment_t, 781
is_prepared
adm_if_t, 197
MHAPlugin::plugin_t, 731
PluginLoader::mhapluginloader_t, 884
is_prepared_
MHAPlugin::plugin_t, 732
is_same_size
MHASignal::matrix_t, 786
is_var
algo_comm_t, 203
MHAKernel::algo_comm_class_t, 604
iscomplex
MHASignal::matrix_t, 786
isempty
AuditoryProfile::fmap_t, 221
gaintable.cpp, 980
MHAFilter::transfer_function_t, 572
isval
MHAParser::kw_t, 671
iter
prediction_error_config, 891
iterator
MHA_TCP::Event_Watcher, 479
jack_error_handler
mhajack.cpp, 1064
jack_proc_cb
MHAJack::client_t, 598
jack_xrun_cb
MHAJack::client_t, 598
jc
MHAJack::client_t, 599
MHAJack::port_t, 602
jstate_prev
MHAJack::client_t, 599
k_inner
MHASignal::doublebuffer_t, 772
k_nyquist
dc::dc_t, 257
k_outer
MHASignal::doublebuffer_t, 772

INDEX
kappa
lpc_burglattice_config, 406
kappa_block
lpc_burglattice_config, 406
kappa_const
timo_params, 940
timoSmooth, 946
keyword_list_t
MHAParser::keyword_list_t, 667
kick_condition
MHAPlugin_Split::posix_threads_t, 745
kick_thread
MHAPlugin_Split::dummy_threads_t, 742
MHAPlugin_Split::posix_threads_t, 745
MHAPlugin_Split::thread_platform_t, 758
kicked
MHAPlugin_Split::posix_threads_t, 746
km
lpc_bl_predictor_config, 402
kmax
fshift::fshift_config_t, 333
fshift_hilbert::hilbert_shifter_t, 342
kmin
fshift::fshift_config_t, 333
fshift_hilbert::hilbert_shifter_t, 342
kth_smallest
MHASignal, 121
kw_index2type
transducers.cpp, 1083
kw_t
MHAParser::kw_t, 670, 671
L
AuditoryProfile::parser_t, 223
AuditoryProfile::profile_t, 227
l_min
dc::wb_inhib_cfg_t, 261
dc::wideband_inhib_vars_t, 262
l_new
addsndfile::level_adapt_t, 184
fader_wave::level_adapt_t, 323
l_old
addsndfile::level_adapt_t, 184
fader_wave::level_adapt_t, 323
LEVEL
dc_simple, 84
LPSCALE
timoconfig.cpp, 1081
LTASS_combined
speechnoise_t, 925
LTASS_female
speechnoise_t, 925
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
LTASS_male
speechnoise_t, 925
lambda
lpc_burglattice, 404
lpc_burglattice_config, 406
lambda_ceps
timoConfig, 943
lambda_ceps_AC
timo_AC, 938
lambda_ceps_prev
timoConfig, 943
lambda_ml_AC
timo_AC, 938
lambda_ml_ceps
timoConfig, 943
lambda_ml_ceps_AC
timo_AC, 938
lambda_ml_full
timoConfig, 943
lambda_ml_smooth
timoConfig, 943
lambda_ml_smooth_AC
timo_AC, 938
lambda_smoothing_power
nlms_t, 853
lambda_spec
timoConfig, 943
lambda_spec_AC
timo_AC, 938
lambda_thresh
timo_params, 940
timoSmooth, 946
last_complex_bin
MHASignal::subsample_delay_t, 808
last_config
MHAPlugin::config_t, 726
last_errormsg
MHAParser::parser_t, 692
last_jack_err
mhajack.cpp, 1064
last_jack_err_msg
mhajack.cpp, 1064
mhajack.h, 1066
last_name
MHAParser::mhapluginloader_t, 684
latex_doc_t, 391
ac, 394
get_ac, 394
get_categories, 393
get_latex_doc, 393
get_main_category, 393
© 2005-2019 HörTech gGmbH, Oldenburg

1133
get_parser_tab, 394
get_parser_var, 394
latex_doc_t, 392
latex_plugname, 394
loader, 394
parsername, 394
plugin_macro, 394
plugname, 394
strdom, 393
latex_plugname
latex_doc_t, 394
len
MHA_AC::acspace2matrix_t, 418
MHAFilter::filter_t, 535
MHATableLookup::linear_table_t, 828
plingploing::plingploing_t, 869
len_A
MHAFilter::filter_t, 535
len_a
hanning_ramps_t, 358
len_B
MHAFilter::filter_t, 535
len_b
hanning_ramps_t, 358
length
io_file_t, 368
MHASignal::uint_vector_t, 811
lev
noise_t, 855
sine_t, 912
level
addsndfile::addsndfile_if_t, 182
plingploing::if_t, 867
plingploing::plingploing_t, 870
rmslevel_t, 894
level_adapt_t
addsndfile::level_adapt_t, 183
fader_wave::level_adapt_t, 322
level_adaptor
addsndfile, 80
fader_wave, 86
level_db
rmslevel_t, 894
level_in_db
dc::dc_t, 257
level_in_db_adjusted
dc::dc_t, 257
level_mode_t
MHASignal::loop_wavefragment_t, 779
level_mon
droptect_t, 289

1134
level_smoother_t
dc_simple::level_smoother_t, 272
level_spec
dc_simple::level_smoother_t, 272
level_wave
dc_simple::level_smoother_t, 272
levelmode
addsndfile::addsndfile_if_t, 182
Levinson2
lpc.cpp, 987
lib_data
io_lib_t, 371
PluginLoader::mhapluginloader_t, 884
lib_err
io_lib_t, 371
PluginLoader::mhapluginloader_t, 884
lib_handle
io_lib_t, 371
PluginLoader::mhapluginloader_t, 884
lib_str_error
io_lib_t, 371
libdata
analysepath_t, 218
MHAParser::c_ifc_parser_t, 650
liberr
MHAParser::c_ifc_parser_t, 650
libname
analysispath_if_t, 220
PluginLoader::config_file_splitter_t, 877
library_paths
pluginbrowser_t, 874
like_ratio
acPooling_wave_config, 164
like_ratio_name
acPooling_wave, 162
limit
coherence::cohflt_t, 240
coherence::vars_t, 242
MHASignal, 121
MHASignal::quantizer_t, 793
MHASignal::waveform_t, 820
limiter
dc_simple::dc_t, 267
limiter_threshold
dc_simple::dc_t, 267
dc_simple::dc_vars_t, 270
lin2db
Vector and matrix processing toolbox, 43
line_t
dc_simple::dc_t::line_t, 268
linear

INDEX
MHAOvlFilter::ShapeFun, 106
softclipper_t, 918
softclipper_variables_t, 920
linear_table_t
MHATableLookup::linear_table_t, 826
Linearphase_FIR
ADM::Linearphase_FIR, 193
list_dir
mha_os.cpp, 1011
mha_os.h, 1015
lo_addr
ac2osc_t, 147
load_io_lib
fw_t, 346
load_plug
MHAParser::mhapluginloader_t, 684
load_proc_lib
fw_t, 346
loader
latex_doc_t, 394
loadlib
analysispath_if_t, 220
local_address
io_tcp_parser_t, 383
local_get_entries
MHAKernel::algo_comm_class_t, 605
local_get_var
MHAKernel::algo_comm_class_t, 605
local_insert_var
MHAKernel::algo_comm_class_t, 605
local_is_var
MHAKernel::algo_comm_class_t, 605
local_port
io_tcp_parser_t, 383
local_remove_ref
MHAKernel::algo_comm_class_t, 605
local_remove_var
MHAKernel::algo_comm_class_t, 605
locate
MHAIOJackdb::io_jack_t, 582
locate_end
MHASignal::loop_wavefragment_t, 781
lock_channels
fw_vars_t, 349
lock_srate_fragsize
fw_vars_t, 349
locked
MHAParser::variable_t, 701
log_down
MHASignal::schroeder_t, 800
log_lambda_spec
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
timoConfig, 943
log_lambda_spec_AC
timo_AC, 938
log_up
MHASignal::schroeder_t, 800
logGLRFact
noisePowProposedScale::noisePow←Proposed, 859
timoConfig, 943
logfile
mhaserver_t, 763
logstring
mhaserver_t, 762
longmsg
MHA_Error, 447
lookup
MHATableLookup::linear_table_t, 826
MHATableLookup::table_t, 829
MHATableLookup::xy_table_t, 831
loop
addsndfile::addsndfile_if_t, 182
loop_wavefragment_t
MHASignal::loop_wavefragment_t, 779
low_incl
MHAParser::range_var_t, 695
low_limit
MHAParser::range_var_t, 695
low_side_flat
MHAOvlFilter::band_descriptor_t, 613
low_thresh
acPooling_wave_config, 164
lower_threshold
acPooling_wave, 162
lp
DynComp::dc_afterburn_rt_t, 294
lp1i
coherence::cohflt_t, 240
lp1ltg
coherence::cohflt_t, 241
lp1r
coherence::cohflt_t, 240
lp_coeffs
adm_rtconfig_t, 200
lp_order
adm_if_t, 197
lpc, 395
∼lpc, 396
algo_name, 397
comp_each_iter, 397
lpc, 396
lpc_buffer_size, 397
© 2005-2019 HörTech gGmbH, Oldenburg

1135
lpc_order, 397
norm, 397
patchbay, 397
prepare, 396
process, 396
release, 396
shift, 397
update_cfg, 397
lpc.cpp, 986
INSERT_PATCH, 987
Levinson2, 987
PATCH_VAR, 987
lpc.h, 987
lpc_bl_predictor, 398
∼lpc_bl_predictor, 399
lpc_bl_predictor, 399
lpc_order, 400
name_b, 400
name_f, 400
name_kappa, 400
name_lpc_b, 400
name_lpc_f, 400
patchbay, 400
prepare, 399
process, 399
release, 399
update_cfg, 400
lpc_bl_predictor.cpp, 987
INSERT_PATCH, 987
PATCH_VAR, 987
lpc_bl_predictor.h, 987
EPSILON, 988
lpc_bl_predictor_config, 400
∼lpc_bl_predictor_config, 401
ac, 401
b_est, 401
backward, 401
f_est, 401
forward, 401
km, 402
lpc_bl_predictor_config, 401
lpc_order, 401
name_b, 402
name_f, 401
name_km, 401
process, 401
s_b, 402
s_f, 402
lpc_buffer_size
lpc, 397
lpc_config, 408

1136
lpc_burg-lattice.cpp, 988
INSERT_PATCH, 988
PATCH_VAR, 988
lpc_burg-lattice.h, 988
EPSILON, 988
lpc_burglattice, 402
∼lpc_burglattice, 403
lambda, 404
lpc_burglattice, 403
lpc_order, 404
name_b, 404
name_f, 404
name_kappa, 404
patchbay, 404
prepare, 404
process, 404
release, 404
update_cfg, 404
lpc_burglattice_config, 405
∼lpc_burglattice_config, 405
ac, 405
backward, 406
dm, 406
forward, 405
kappa, 406
kappa_block, 406
lambda, 406
lpc_burglattice_config, 405
lpc_order, 406
name_b, 406
name_f, 406
nm, 406
process, 405
s_b, 406
s_f, 406
lpc_config, 406
∼lpc_config, 407
A, 408
comp_each_iter, 407
comp_iter, 408
corr_out, 408
insert, 407
inwave, 408
lpc_buffer_size, 408
lpc_config, 407
lpc_out, 408
N, 408
norm, 407
order, 407
process, 407
R, 408

INDEX
sample, 408
shift, 407
lpc_order
lpc, 397
lpc_bl_predictor, 400
lpc_bl_predictor_config, 401
lpc_burglattice, 404
lpc_burglattice_config, 406
prediction_error, 889
lpc_out
lpc_config, 408
ltgcomp
coherence::vars_t, 242
ltgtau
coherence::vars_t, 242
lval
MHAParser::expression_t, 657
m
dc_simple::dc_t::line_t, 268
matrixmixer::cfg_t, 409
M_PI
mha_defs.h, 998
mha_signal.hh, 1037
m_alphas
ADM::Linearphase_FIR, 194
m_beta
ADM::ADM, 190
m_coeff
ADM::Delay, 192
m_decomb
ADM::ADM, 190
m_delay_back
ADM::ADM, 190
m_delay_front
ADM::ADM, 190
m_df
fshift::fshift_t, 336
m_fmax
fshift::fshift_t, 336
m_fmin
fshift::fshift_t, 336
m_fullsamples
ADM::Delay, 192
m_lp_bf
ADM::ADM, 190
m_lp_result
ADM::ADM, 190
m_mu_beta
ADM::ADM, 190
m_norm
ADM::Delay, 192
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
m_now
ADM::Linearphase_FIR, 194
m_now_in
ADM::Delay, 192
m_order
ADM::Linearphase_FIR, 194
m_output
ADM::Linearphase_FIR, 194
m_powerfilter_coeff
ADM::ADM, 190
m_powerfilter_norm
ADM::ADM, 190
m_powerfilter_state
ADM::ADM, 190
m_state
ADM::Delay, 192
MAX_LINE_LENGTH
mhamain.cpp, 1067
MAX_TCP_PORT_STR
MHAIOTCP.cpp, 1062
MAX_TCP_PORT
MHAIOTCP.cpp, 1062
MAX_USER_ERR
MHAIOFile.cpp, 1048
MHAIOJack.cpp, 1050
MHAIOJackdb.cpp, 1053
MHAIOParser.cpp, 1056
MHAIOPortAudio.cpp, 1059
MHAIOTCP.cpp, 1062
MHAIOalsa.cpp, 1045
mhajack.h, 1066
MAX
mha_defs.h, 998
MHA_AC::ac2matrix_helper_t, 412
ac, 413
ac2matrix_helper_t, 412
acvar, 413
getvar, 412
is_complex, 413
name, 413
size, 413
username, 413
MHA_AC::ac2matrix_t, 413
ac2matrix_t, 414
getname, 414
getusername, 415
insert, 415
update, 414
MHA_AC::acspace2matrix_t, 415
∼acspace2matrix_t, 417
acspace2matrix_t, 416
© 2005-2019 HörTech gGmbH, Oldenburg

1137
data, 418
frame, 418
frameno, 418
insert, 418
len, 418
operator=, 417
operator[], 417
size, 418
update, 418
MHA_AC::double_t, 418
∼double_t, 419
ac, 419
data, 419
double_t, 419
MHA_AC::float_t, 420
∼float_t, 420
ac, 420
data, 420
float_t, 420
MHA_AC::int_t, 421
∼int_t, 421
ac, 421
data, 421
int_t, 421
MHA_AC::spectrum_t, 422
∼spectrum_t, 423
ac, 424
insert, 423
name, 424
spectrum_t, 423
MHA_AC::stat_t, 424
insert, 425
mean, 425
stat_t, 425
std, 425
update, 425
MHA_AC::waveform_t, 425
∼waveform_t, 426
ac, 427
insert, 427
name, 427
waveform_t, 426
MHA_AC_CHAR
mha.hh, 993
MHA_AC_DOUBLE
mha.hh, 993
MHA_AC_FLOAT
mha.hh, 993
MHA_AC_INT
mha.hh, 993
MHA_AC_MHACOMPLEX

1138
mha.hh, 993
MHA_AC_MHAREAL
mha.hh, 993
MHA_AC_UNKNOWN
mha.hh, 993
MHA_AC_USER
mha.hh, 993
MHA_AC_VEC_FLOAT
mha.hh, 993
MHA_AC, 89
MHA_CALLBACK_TEST_PREFIX
mha.hh, 991
MHA_CALLBACK_TEST
mha.hh, 991
MHA_DOMAIN_MAX
mha.hh, 993
MHA_DOMAIN_UNKNOWN
mha.hh, 993
MHA_EAR_LEFT
mha_defs.h, 998
MHA_EAR_MAX
mha_defs.h, 998
MHA_EAR_RIGHT
mha_defs.h, 998
MHA_ERR_INVALID_HANDLE
mha_errno.h, 1000
MHA_ERR_NULL
mha_errno.h, 1000
MHA_ERR_SUCCESS
mha_errno.h, 1000
MHA_ERR_UNKNOWN
mha_errno.h, 1000
MHA_ERR_USER
mha_errno.h, 1000
MHA_ERR_VARFMT
mha_errno.h, 1000
MHA_ERR_VARRANGE
mha_errno.h, 1000
MHA_Error, 445
∼MHA_Error, 446
get_longmsg, 446
get_msg, 446
longmsg, 447
MHA_Error, 446
msg, 447
operator=, 446
what, 446
MHA_ErrorMsg
Error handling in the openMHA, 32
MHA_ErrorMsg2
MHAIOTCP.cpp, 1062

INDEX
MHA_ErrorMsg3
MHAIOTCP.cpp, 1062
MHA_ID_MATRIX
mha_signal.cpp, 1028
MHA_ID_UINT_VECTOR
mha_signal.cpp, 1028
MHA_RELEASE_VERSION_STRING
mha.hh, 992
MHA_RESOLVE_CHECKED
mha_os.h, 1013
MHA_RESOLVE
mha_os.h, 1013
MHA_SPECTRUM
mha.hh, 993
MHA_STRUCT_SIZEMATCH
mha.hh, 992
MHA_STRF
mha.hh, 992
MHA_TCP::Async_Notify, 468
∼Async_Notify, 469
Async_Notify, 469
pipe, 469
reset, 469
set, 469
MHA_TCP::Client, 469
Client, 470
MHA_TCP::Connection, 471
∼Connection, 473
buffered_incoming_bytes, 477
buffered_outgoing_bytes, 477
can_read_bytes, 475
can_read_line, 475
can_sysread, 473
can_syswrite, 473
closed, 477
Connection, 473
eof, 474
fd, 477
get_fd, 474
get_peer_address, 474
get_peer_port, 474
get_read_event, 474
get_write_event, 474
inbuf, 477
init_peer_data, 473
needs_write, 476
outbuf, 477
peer_addr, 477
read_bytes, 476
read_event, 477
read_line, 475
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
sysread, 473
syswrite, 474
try_write, 476
write, 476
write_event, 477
MHA_TCP::Event_Watcher, 478
∼Event_Watcher, 479
Events, 479
events, 479
ignore, 479
iterator, 479
observe, 479
wait, 479
MHA_TCP::OS_EVENT_TYPE, 480
fd, 480
mode, 480
R, 480
T, 480
timeout, 480
W, 480
X, 480
MHA_TCP::Server, 481
∼Server, 482
accept, 482
accept_event, 483
get_accept_event, 482
get_interface, 482
get_port, 482
iface, 483
initialize, 482
port, 483
Server, 481, 482
serversocket, 483
sock_addr, 483
try_accept, 483
MHA_TCP::Sockaccept_Event, 484
Sockaccept_Event, 484
MHA_TCP::Sockread_Event, 485
Sockread_Event, 485
MHA_TCP::Sockwrite_Event, 486
Sockwrite_Event, 486
MHA_TCP::Thread, 486
∼Thread, 489
arg, 489
error, 490
FINISHED, 488
PREPARED, 488
RUNNING, 488
return_value, 489
run, 489
state, 489
© 2005-2019 HörTech gGmbH, Oldenburg

1139
thr_f, 488
Thread, 488
thread_arg, 490
thread_attr, 489
thread_finish_event, 489
thread_func, 490
thread_handle, 489
MHA_TCP::Timeout_Event, 490
end_time, 491
get_os_event, 491
Timeout_Event, 491
MHA_TCP::Timeout_Watcher, 491
∼Timeout_Watcher, 492
timeout, 492
Timeout_Watcher, 492
MHA_TCP::Wakeup_Event, 493
∼Wakeup_Event, 494
get_os_event, 494
ignored_by, 494
observed_by, 494
observers, 495
os_event, 495
os_event_valid, 495
reset, 494
status, 495
Wakeup_Event, 494
MHA_TCP::sock_init_t, 483
sock_init_t, 484
MHA_TCP, 91
dtime, 93
G_ERRNO, 92
H_ERRNO, 92
HSTRERROR, 92
N_ERRNO, 92
SOCKET, 92
STRERROR, 92
sock_initializer, 93
stime, 93
MHA_VERSION_BUILD
mha.hh, 992
MHA_VERSION_MAJOR
mha.hh, 992
MHA_VERSION_MINOR
mha.hh, 992
MHA_VERSION_RELEASE
mha.hh, 992
MHA_VERSION_STRING
mha.hh, 992
MHA_VERSION
mha.hh, 992
MHA_WAVEFORM

1140
mha.hh, 993
MHA_XSTRF
mha.hh, 992
MHA_assert
Error handling in the openMHA, 33
MHA_assert_equal
Error handling in the openMHA, 33
MHADestroy_cb
PluginLoader::mhapluginloader_t, 884
MHADestroy_t
mha.hh, 994
MHAEvents, 93
MHAEvents::connector_base_t, 506
∼connector_base_t, 506
connector_base_t, 506
emit_event, 507
emitter_die, 507
emitter_is_alive, 507
MHAEvents::connector_t
∼connector_t, 509
connector_t, 509
emit_event, 509
emitter, 510
eventhandler, 510
eventhandler_s, 510
eventhandler_suu, 510
receiver, 510
MHAEvents::connector_t< receiver_t >, 508
MHAEvents::emitter_t, 510
∼emitter_t, 511
connect, 511
connections, 511
disconnect, 511
operator(), 511
MHAEvents::patchbay_t
∼patchbay_t, 512
connect, 512, 513
cons, 513
MHAEvents::patchbay_t< receiver_t >, 512
MHAFilter, 94
butter_stop_ord1, 96
gcd, 97
make_friendly_number, 96
o1_lp_coeffs, 96
resampling_factors, 97
sinc, 97
spec2fir, 97
MHAFilter::adapt_filter_param_t, 513
adapt_filter_param_t, 514
err_in, 514
mu, 514

INDEX
MHAFilter::adapt_filter_state_t, 514
adapt_filter_state_t, 515
filter, 515
nchannels, 515
ntaps, 515
od, 515
oy, 515
W, 515
X, 515
MHAFilter::adapt_filter_t, 515
adapt_filter_t, 516
connector, 517
err_in, 517
filter, 516
mu, 517
nchannels, 517
ntaps, 517
set_channelcnt, 516
update_mu, 516
update_ntaps, 516
MHAFilter::blockprocessing_polyphase_←resampling_t, 517
∼blockprocessing_polyphase_resampling←_t, 518
blockprocessing_polyphase_resampling←_t, 518
can_read, 519
fragsize_in, 519
fragsize_out, 519
num_channels, 519
read, 519
resampling, 519
write, 518
MHAFilter::complex_bandpass_t, 520
A_, 522
B_, 522
complex_bandpass_t, 521
creator_A, 521
creator_B, 521
filter, 521, 522
get_weights, 521
inspect, 522
set_state, 521
set_weights, 521
Yn, 522
MHAFilter::diff_t, 522
diff_t, 523
MHAFilter::fftfilter_t, 523
∼fftfilter_t, 525
channels, 526
fft, 527
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
fftfilter_t, 524
fftlen, 526
filter, 525, 526
fragsize, 526
sInput, 527
sWeights, 527
update_coeffs, 525
wIRS_fft, 527
wInput, 527
wInput_fft, 526
wOutput, 527
wOutput_fft, 527
MHAFilter::fftfilterbank_t, 527
∼fftfilterbank_t, 529
fft, 531
fftfilterbank_t, 528
fftlen, 530
filter, 529, 530
firchannels, 530
fragsize, 530
get_irs, 530
Hs, 530
hw, 530
inputchannels, 530
outputchannels, 530
tail, 531
update_coeffs, 529
Xs, 530
xw, 530
Ys, 531
yw, 530
yw_temp, 531
MHAFilter::filter_t, 531
∼filter_t, 533
A, 534
B, 534
channels, 535
filter, 533, 534
filter_t, 532, 533
get_len_A, 534
get_len_B, 534
len, 535
len_A, 535
len_B, 535
state, 535
MHAFilter::gamma_flt_t, 535
∼gamma_flt_t, 536
A, 537
bw_, 538
cf_, 538
delay, 537
© 2005-2019 HörTech gGmbH, Oldenburg

1141
envelope_delay, 538
gamma_flt_t, 536
get_A, 537
get_resynthesis_gain, 537
get_weights, 537
GF, 537
inspect, 537
operator(), 536, 537
phase_correction, 537
reset_state, 537
resynthesis_gain, 538
set_weights, 537
srate_, 538
MHAFilter::iir_filter_state_t, 538
iir_filter_state_t, 539
MHAFilter::iir_filter_t, 539
A, 542
B, 542
connector, 542
filter, 541
iir_filter_t, 540
nchannels, 542
resize, 542
update_filter, 542
MHAFilter::iir_ord1_real_t, 542
A_, 545
B_, 545
iir_ord1_real_t, 543
operator(), 544
set_state, 544
Yn, 545
MHAFilter::o1_ar_filter_t, 545
c1_a, 548
c1_r, 548
c2_a, 548
c2_r, 548
fs, 548
o1_ar_filter_t, 546
operator(), 547, 548
set_tau_attack, 547
set_tau_release, 547
MHAFilter::o1flt_lowpass_t, 548
get_c1, 550
get_last_output, 550
o1flt_lowpass_t, 550
set_tau, 550
MHAFilter::o1flt_maxtrack_t, 551
o1flt_maxtrack_t, 552
set_tau, 552
MHAFilter::o1flt_mintrack_t, 552
o1flt_mintrack_t, 554

1142
set_tau, 554
MHAFilter::partitioned_convolution_t, 554
∼partitioned_convolution_t, 556
bookkeeping, 557
current_input_signal_buffer_half_index,
557
current_output_partition_index, 557
fft, 558
filter_partitions, 556
fragsize, 556
frequency_response, 557
input_signal_spec, 557
input_signal_wave, 556
nchannels_in, 556
nchannels_out, 556
output_partitions, 556
output_signal_spec, 557
output_signal_wave, 557
partitioned_convolution_t, 555
process, 556
MHAFilter::partitioned_convolution_t::index←_t, 558
delay, 559
index_t, 558, 559
source_channel_index, 559
target_channel_index, 559
MHAFilter::polyphase_resampling_t, 559
downsampling_factor, 563
impulse_response, 563
now_index, 563
polyphase_resampling_t, 561
read, 562
readable_frames, 562
ringbuffer, 563
underflow, 563
upsampling_factor, 563
write, 562
MHAFilter::resampling_filter_t, 564
fragsize, 565
fragsize_validator, 565
resampling_filter_t, 564
MHAFilter::smoothspec_t, 565
_linphase_asym, 568
∼smoothspec_t, 567
fft, 568
fftlen, 568
internal_fir, 568
minphase, 568
nchannels, 568
smoothspec, 567
smoothspec_t, 566

INDEX
spec2fir, 567
tmp_spec, 568
tmp_wave, 568
window, 568
MHAFilter::thirdoctave_analyzer_t, 568
bw_generator, 569
cf, 569
cf_generator, 569
cfg_, 569
dup, 569
fb, 570
get_cf_hz, 569
nbands, 569
nchannels, 569
out_chunk, 570
out_chunk_im, 570
process, 569
thirdoctave_analyzer_t, 569
MHAFilter::transfer_function_t, 570
impulse_response, 572
isempty, 572
non_empty_partitions, 571
partitions, 571
source_channel_index, 572
target_channel_index, 572
transfer_function_t, 571
MHAFilter::transfer_matrix_t, 573
non_empty_partitions, 573
partitions, 573
MHAGetVersion_cb
PluginLoader::mhapluginloader_t, 884
MHAGetVersion_t
mha.hh, 993
MHAIOFile.cpp, 1046
DEBUG, 1047
dummy_interface_test, 1048, 1049
ERR_IHANDLE, 1047
ERR_SUCCESS, 1047
ERR_USER, 1048
IODestroy, 1048, 1049
IOInit, 1048
IOPrepare, 1048
IORelease, 1048, 1049
IOSetVar, 1048, 1049
IOStart, 1048
IOStop, 1048
IOStrError, 1048, 1049
MAX_USER_ERR, 1048
user_err_msg, 1049
MHAIOJack, 98
MHAIOJack.cpp, 1049
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
dummy_interface_test, 1051, 1052
ERR_IHANDLE, 1050
ERR_SUCCESS, 1050
ERR_USER, 1050
IODestroy, 1051, 1052
IOInit, 1050, 1051
IOPrepare, 1051
IORelease, 1051
IOSetVar, 1051
IOStart, 1051
IOStop, 1051
IOStrError, 1051, 1052
MAX_USER_ERR, 1050
user_err_msg, 1052
MHAIOJack::io_jack_t, 574
clientname, 576
connections_in, 576
connections_out, 576
delays_in, 576
delays_out, 577
fw_fragsize, 576
fw_samplerate, 576
get_all_input_ports, 576
get_all_output_ports, 576
get_delays_in, 576
get_delays_out, 576
get_physical_input_ports, 576
get_physical_output_ports, 576
io_jack_t, 575
patchbay, 577
portnames_in, 577
portnames_out, 577
ports_in_all, 577
ports_in_physical, 577
ports_out_all, 577
ports_out_physical, 577
ports_parser, 577
prepare, 575
read_get_cpu_load, 576
read_get_scheduler, 576
read_get_xruns, 576
reconnect_inports, 576
reconnect_outports, 576
release, 575
servername, 576
state_cpuload, 577
state_parser, 577
state_priority, 577
state_scheduler, 577
state_xruns, 577
MHAIOJackdb, 98
© 2005-2019 HörTech gGmbH, Oldenburg

1143
MHAIOJackdb.cpp, 1052
dummy_interface_test, 1053, 1054
ERR_IHANDLE, 1053
ERR_SUCCESS, 1053
ERR_USER, 1053
IODestroy, 1053, 1054
IOInit, 1053, 1054
IOPrepare, 1053, 1054
IORelease, 1053, 1054
IOSetVar, 1053, 1054
IOStart, 1053, 1054
IOStop, 1053, 1054
IOStrError, 1053, 1054
MAX_USER_ERR, 1053
user_err_msg, 1054
MHAIOJackdb::io_jack_t, 578
clientname, 581
connections_in, 581
connections_out, 581
fail_on_async_jackerr, 581
fail_on_async_jackerror, 580
fragsize_ratio, 581
get_all_input_ports, 581
get_all_output_ports, 581
get_physical_input_ports, 580
get_physical_output_ports, 581
IOProcessEvent_inner, 580
io_jack_t, 580
locate, 582
mha_fragsize, 581
mha_samplerate, 581
patchbay, 582
portnames_in, 581
portnames_out, 581
ports_in_all, 582
ports_in_physical, 582
ports_out_all, 582
ports_out_physical, 582
ports_parser, 582
prepare, 580
proc_event, 581
proc_handle, 581
pwinner_out, 582
read_get_cpu_load, 581
read_get_scheduler, 581
read_get_xruns, 581
reconnect_inports, 580
reconnect_outports, 580
release, 580
server_fragsize, 582
server_srate, 582

1144
servername, 581
set_locate, 581
set_use_jack_transport, 581
state_cpuload, 582
state_parser, 582
state_priority, 582
state_scheduler, 582
state_xruns, 582
use_jack_transport, 581
MHAIOParser.cpp, 1055
dummy_interface_test, 1056, 1057
ERR_IHANDLE, 1056
ERR_SUCCESS, 1056
ERR_USER, 1056
IODestroy, 1056, 1057
IOInit, 1056
IOPrepare, 1056
IORelease, 1056, 1057
IOSetVar, 1056, 1057
IOStart, 1056
IOStop, 1056, 1057
IOStrError, 1056, 1057
MAX_USER_ERR, 1056
user_err_msg, 1057
MHAIOPortAudio, 98
parserFriendlyName, 99
MHAIOPortAudio.cpp, 1057
dummy_interface_test, 1059, 1060
ERR_IHANDLE, 1059
ERR_SUCCESS, 1059
ERR_USER, 1059
IODestroy, 1059, 1060
IOInit, 1059
IOPrepare, 1059
IORelease, 1059, 1060
IOSetVar, 1059, 1060
IOStart, 1059, 1060
IOStop, 1059, 1060
IOStrError, 1059, 1060
MAX_USER_ERR, 1059
portaudio_callback, 1059, 1060
user_err_msg, 1060
MHAIOPortAudio::device_info_t, 583
defaultHighInputLatency, 584
defaultHighOutputLatency, 584
defaultLowInputLatency, 584
defaultLowOutputLatency, 584
defaultSampleRate, 584
device_info_t, 584
fill_info, 584
hostApi, 584

INDEX
maxInputChannels, 584
maxOutputChannels, 584
name, 584
numDevices, 584
structVersion, 584
MHAIOPortAudio::io_portaudio_t, 585
∼io_portaudio_t, 586
cmd_prepare, 586
cmd_release, 587
cmd_start, 586
cmd_stop, 586
device_index, 587
device_index_updated, 586
device_info, 587
device_name, 587
device_name_updated, 586
fragsize, 587
io_portaudio_t, 586
nchannels_in, 587
nchannels_out, 587
patchbay, 587
portaudio_callback, 587
portaudio_stream, 587
proc_event, 587
proc_handle, 587
s_in, 587
s_out, 587
samplerate, 587
start_event, 587
start_handle, 587
stop_event, 587
stop_handle, 587
MHAIOTCP.cpp, 1060
copy_error, 1063
dummy_interface_test, 1062, 1063
ERR_IHANDLE, 1062
ERR_SUCCESS, 1062
ERR_USER, 1062
IODestroy, 1062, 1063
IOInit, 1062, 1063
IOPrepare, 1062, 1063
IORelease, 1062, 1063
IOSetVar, 1062, 1063
IOStart, 1062, 1063
IOStop, 1062, 1063
IOStrError, 1062, 1063
MAX_TCP_PORT_STR, 1062
MAX_TCP_PORT, 1062
MAX_USER_ERR, 1062
MHA_ErrorMsg2, 1062
MHA_ErrorMsg3, 1062
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
MIN_TCP_PORT_STR, 1062
MIN_TCP_PORT, 1062
thread_startup_function, 1063
user_err_msg, 1064
MHAIOalsa.cpp, 1044
DBG, 1045
dummy_interface_test, 1045, 1046
ERR_IHANDLE, 1045
ERR_SUCCESS, 1045
ERR_USER, 1045
IODestroy, 1045, 1046
IOInit, 1045
IOPrepare, 1045, 1046
IORelease, 1045, 1046
IOSetVar, 1045, 1046
IOStart, 1045, 1046
IOStop, 1045, 1046
IOStrError, 1045, 1046
MAX_USER_ERR, 1045
user_err_msg, 1046
MHAInit_cb
PluginLoader::mhapluginloader_t, 884
MHAInit_t
mha.hh, 993
MHAJACK_FW_STARTED
mhajack.h, 1066
MHAJACK_STARTING
mhajack.h, 1066
MHAJACK_STOPPED
mhajack.h, 1066
MHAJack, 99
get_port_capture_latency, 100
get_port_capture_latency_int, 100
get_port_playback_latency, 101
get_port_playback_latency_int, 101
io, 100
MHAJack::client_avg_t, 588
b_ready, 590
b_stopped, 590
client_avg_t, 589
frag_out, 590
IOStoppedEvent, 590
io, 589
n, 590
name, 590
nrep, 590
pos, 590
proc, 590
sn_in, 590
sn_out, 590
MHAJack::client_noncont_t, 591
© 2005-2019 HörTech gGmbH, Oldenburg

1145
b_stopped, 592
client_noncont_t, 592
frag_out, 593
IOStoppedEvent, 592
io, 592
name, 593
pos, 592
proc, 592
sn_in, 592
sn_out, 593
MHAJack::client_t, 593
b_prepared, 599
client_t, 595
connect_input, 596
connect_output, 596
fail_on_async_jackerror, 599
flags, 599
fragsize, 598
get_cpu_load, 597
get_fragsize, 596
get_my_input_ports, 597
get_my_output_ports, 597
get_ports, 597
get_srate, 597
get_xruns, 597
get_xruns_reset, 597
inch, 599
input_portnames, 599
internal_start, 598
internal_stop, 598
jack_proc_cb, 598
jack_xrun_cb, 598
jc, 599
jstate_prev, 599
nchannels_in, 598
nchannels_out, 598
num_xruns, 598
outch, 599
output_portnames, 599
prepare, 595, 596
prepare_impl, 597
proc_event, 598
proc_handle, 598
release, 596
s_in, 599
s_out, 599
samplerate, 598
set_input_portnames, 597
set_output_portnames, 597
set_use_jack_transport, 597
start, 596

1146
start_event, 599
start_handle, 599
stop, 596
stop_event, 599
stop_handle, 599
stopped, 598
str_error, 597
use_jack_transport, 599
MHAJack::port_t, 599
∼port_t, 601
connect_to, 602
dir_t, 600
dir_type, 602
get_short_name, 602
input, 600
iob, 602
jc, 602
mute, 601
output, 600
port, 602
port_t, 600, 601
read, 601
write, 601
MHAKernel, 101
algo_comm_safe_cast, 101
MHAKernel::algo_comm_class_t, 603
∼algo_comm_class_t, 604
ac, 606
algo_comm_class_t, 604
algo_comm_id_string, 606
algo_comm_id_string_len, 606
get_c_handle, 604
get_entries, 605
get_error, 605
get_var, 605
get_var_float, 605
get_var_int, 605
insert_var, 604
insert_var_float, 604
insert_var_int, 604
is_var, 604
local_get_entries, 605
local_get_var, 605
local_insert_var, 605
local_is_var, 605
local_remove_ref, 605
local_remove_var, 605
remove_ref, 604
remove_var, 604
size, 605
vars, 606

INDEX
MHAKernel::comm_var_map_t, 606
has_key, 606
MHAMultiSrc, 101
MHAMultiSrc::base_t, 607
ac, 608
base_t, 608
select_source, 608
MHAMultiSrc::channel_t, 608
channel, 608
name, 608
MHAMultiSrc::channels_t, 609
channels_t, 609
MHAMultiSrc::spectrum_t, 610
spectrum_t, 610
update, 610
MHAMultiSrc::waveform_t, 611
update, 612
waveform_t, 612
MHAOvlFilter, 102
scale_fun_t, 103
MHAOvlFilter::FreqScaleFun, 103
hz2bark, 105
hz2bark_analytic, 105
hz2erb, 105
hz2erb_glasberg1990, 105
hz2hz, 104
hz2khz, 104
hz2log, 105
hz2octave, 104
hz2third_octave, 104
inv_scale, 105
MHAOvlFilter::ShapeFun, 106
expflt, 107
gauss, 107
hann, 107
linear, 106
rect, 106
MHAOvlFilter::band_descriptor_t, 612
cf, 613
cf_h, 613
cf_l, 613
ef_h, 613
ef_l, 613
high_side_flat, 613
low_side_flat, 613
MHAOvlFilter::barkscale, 103
vbark, 103
vfreq, 103
MHAOvlFilter::barkscale::bark2hz_t, 613
∼bark2hz_t, 614
bark2hz_t, 614
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
MHAOvlFilter::barkscale::hz2bark_t, 614
∼hz2bark_t, 615
hz2bark_t, 615
MHAOvlFilter::fftfb_ac_info_t, 615
bwv, 616
cLTASS, 616
cfv, 615
efv, 615
fftfb_ac_info_t, 615
insert, 615
MHAOvlFilter::fftfb_t, 616
∼fftfb_t, 617
apply_gains, 617
bin1, 618
bin2, 618
fftfb_t, 617
fftlen, 618
get_fbpower, 617
get_fbpower_db, 617
get_fftlen, 618
get_ltass_gain_db, 618
samplingrate, 618
shape, 618
vbin1, 618
vbin2, 618
w, 618
MHAOvlFilter::fftfb_vars_t, 619
cLTASS, 621
cf, 621
ef, 621
f, 621
fail_on_nonmonotonic, 621
fail_on_unique_bins, 621
fftfb_vars_t, 620
fscale, 620
ftype, 621
normalize, 621
ovltype, 620
plateau, 620
shapes, 621
MHAOvlFilter::fscale_bw_t, 622
bw, 623
bw_hz, 623
fscale_bw_t, 623
get_bw_hz, 623
update_hz, 623
updater, 623
MHAOvlFilter::fscale_t, 623
f, 624
f_hz, 624
fscale_t, 624
© 2005-2019 HörTech gGmbH, Oldenburg

1147
get_f_hz, 624
unit, 624
update_hz, 624
updater, 624
MHAOvlFilter::fspacing_t, 625
bands, 626
cf2bands, 626
ef2bands, 626
equidist2bands, 626
fail_on_nonmonotonic_cf, 626
fail_on_unique_fftbins, 626
fs_, 626
fspacing_t, 626
get_cf_fftbin, 626
get_cf_hz, 626
get_ef_hz, 626
nbands, 626
nfft_, 626
symmetry_scale, 626
MHAOvlFilter::overlap_save_filterbank_←analytic_t, 627
filter_analytic, 628
imagfb, 628
overlap_save_filterbank_analytic_t, 628
MHAOvlFilter::overlap_save_filterbank_t, 628
channelconfig_out_, 630
get_channelconfig, 630
overlap_save_filterbank_t, 630
MHAOvlFilter::overlap_save_filterbank_t←::vars_t, 630
fftlen, 631
irswnd, 631
phasemodel, 631
vars_t, 631
MHAOvlFilter::scale_var_t, 632
add_fun, 633
funs, 633
get_fun, 633
get_name, 633
hz2unit, 633
names, 633
scale_var_t, 633
unit2hz, 633
MHAPLATFORM
mha_parser.cpp, 1016
MHAPLUGIN_CALLBACKS_PREFIX
The openMHA Plugins (programming interface), 9
MHAPLUGIN_CALLBACKS
The openMHA Plugins (programming interface), 9

1148

INDEX

id_str, 642
MHAPLUGIN_DOCUMENTATION_PREFIX
nested_lock, 642
mha_plugin.hh, 1023
notify, 641
MHAPLUGIN_DOCUMENTATION
op_query, 638
The openMHA Plugins (programming interface), 10
op_setval, 638
MHAPLUGIN_INIT_CALLBACKS_PREFIX
op_subparse, 638
mha_plugin.hh, 1023
operators, 642
MHAPLUGIN_INIT_CALLBACKS
oplist, 641
mha_plugin.hh, 1023
parent, 642
MHAPLUGIN_OVERLOAD_OUTDOMAIN
parse, 637, 638
altplugs.cpp, 967
prereadaccess, 642
mha_generic_chain.h, 1008
queries, 642
split.cpp, 1079
query_addsubst, 640
wave2spec.cpp, 1083
query_cmds, 640
MHAPLUGIN_PROC_CALLBACK_PREFIX
query_dump, 638
mha_plugin.hh, 1023
query_entries, 638
MHAPLUGIN_PROC_CALLBACK
query_help, 640
mha_plugin.hh, 1023
query_id, 640
MHAParser, 107
query_listids, 640
all_dump, 111
query_perm, 639
all_ids, 111
query_range, 639
c_parse_cmd_t, 111
query_readfile, 639
c_parse_err_t, 111
query_savefile, 639
cfg_dump, 111
query_savefile_compact, 640
cfg_dump_short, 111
query_savemons, 640
commentate, 111
query_subst, 640
entry_map_t, 111
query_type, 639
envreplace, 112
query_val, 639
get_precision, 111
query_version, 640
mon_dump, 111
readaccess, 642
opact_map_t, 111
repl_list, 642
opact_t, 111
repl_list_t, 637
query_map_t, 111
rm_parent_on_remove, 641
query_t, 111
set_help, 641
strreplace, 111
set_node_id, 640
trim, 111
thefullname, 642
MHAParser::StrCnv, 112
valuechanged, 641
bracket_balance, 114
writeaccess, 641
num_brackets, 113
MHAParser::base_t::replace_t, 643
str2val, 114, 115
a, 643
str2val< mha_real_t >, 114
b, 643
val2str, 115, 116
get_a, 643
MHAParser::base_t, 634
get_b, 643
∼base_t, 637
replace, 643
activate_query, 641
replace_t, 643
add_parent_on_insert, 641
MHAParser::bool_mon_t, 644
add_replace_pair, 641
bool_mon_t, 644
base_t, 637
data, 645
data_is_initialized, 642
query_type, 645
fullname, 641
query_val, 645
MHAParser::bool_t, 645
help, 642
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
bool_t, 647
data, 647
op_setval, 647
query_type, 647
query_val, 647
MHAParser::c_ifc_parser_t, 648
∼c_ifc_parser_t, 649
c_ifc_parser_t, 649
c_parse_cmd, 650
c_parse_err, 650
libdata, 650
liberr, 650
modulename, 650
op_query, 649
op_setval, 649
op_subparse, 649
ret_size, 650
retv, 650
set_parse_cb, 649
test_error, 649
MHAParser::commit_t
commit_t, 652
extern_connector, 652
MHAParser::commit_t< receiver_t >, 650
MHAParser::complex_mon_t, 652
complex_mon_t, 653
data, 654
query_type, 653
query_val, 653
MHAParser::complex_t, 654
complex_t, 655
data, 656
op_setval, 655
query_type, 655
query_val, 655
MHAParser::entry_t, 656
entry, 656
entry_t, 656
name, 656
MHAParser::expression_t, 657
expression_t, 657
lval, 657
op, 657
rval, 657
MHAParser::float_mon_t, 658
data, 659
float_mon_t, 658
query_type, 659
query_val, 659
MHAParser::float_t, 659
data, 662
© 2005-2019 HörTech gGmbH, Oldenburg

1149
float_t, 661
op_setval, 661
query_type, 661
query_val, 661
MHAParser::int_mon_t, 662
data, 664
int_mon_t, 663
query_type, 663
query_val, 663
MHAParser::int_t, 664
data, 666
int_t, 665
op_setval, 666
query_type, 666
query_val, 666
MHAParser::keyword_list_t, 666
add_entry, 668
empty_string, 669
entries, 669
get_entries, 668
get_index, 668
get_value, 668
index, 669
keyword_list_t, 667
set_entries, 668
set_index, 668
set_value, 668
size_t, 667
validate, 668
MHAParser::kw_t, 669
data, 672
isval, 671
kw_t, 670, 671
op_setval, 671
query_range, 671
query_type, 671
query_val, 671
set_range, 671
validate, 671
MHAParser::mcomplex_mon_t, 672
data, 673
mcomplex_mon_t, 673
query_type, 673
query_val, 673
MHAParser::mcomplex_t, 674
data, 675
mcomplex_t, 675
op_setval, 675
query_type, 675
query_val, 675
MHAParser::mfloat_mon_t, 676

1150
data, 677
mfloat_mon_t, 676
query_type, 677
query_val, 677
MHAParser::mfloat_t, 677
data, 680
mfloat_t, 679
op_setval, 679
query_type, 679
query_val, 679
MHAParser::mhaconfig_mon_t, 680
channels, 681
domain, 681
fftlen, 681
fragsize, 681
mhaconfig_mon_t, 681
srate, 682
update, 681
wndlen, 681
MHAParser::mhapluginloader_t, 682
∼mhapluginloader_t, 683
ac_, 684
bookkeeping, 684
cf_in_, 684
cf_out_, 684
connector, 684
get_cfin, 684
get_cfout, 684
get_last_name, 684
last_name, 684
load_plug, 684
mhapluginloader_t, 683
parent_, 684
plug, 684
plugname, 684
plugname_name_, 684
prefix_, 684
prepare, 683
process, 683, 684
release, 683
MHAParser::mint_mon_t, 685
data, 686
mint_mon_t, 685
query_type, 686
query_val, 686
MHAParser::monitor_t, 686
monitor_t, 687
op_query, 687
query_dump, 687
query_perm, 687
MHAParser::parser_t, 688

INDEX
∼parser_t, 690
entries, 692
force_remove_item, 690
id_string, 692
insert_item, 690
last_errormsg, 692
op_query, 691
op_setval, 691
op_subparse, 691
parser_t, 689
query_dump, 691
query_entries, 691
query_listids, 692
query_readfile, 691
query_savefile, 691
query_savefile_compact, 692
query_savemons, 692
query_type, 691
query_val, 692
remove_item, 690, 691
set_id_string, 692
srcfile, 692
srcline, 692
MHAParser::range_var_t, 693
check_low, 695
check_range, 695
check_up, 695
low_incl, 695
low_limit, 695
query_range, 694
range_var_t, 694
set_range, 694
up_incl, 695
up_limit, 695
validate, 694, 695
MHAParser::string_mon_t, 696
data, 697
query_type, 697
query_val, 697
string_mon_t, 696
MHAParser::string_t, 697
data, 699
op_setval, 699
query_type, 699
query_val, 699
string_t, 699
MHAParser::variable_t, 700
locked, 701
op_setval, 701
query_perm, 701
setlock, 701
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
variable_t, 701
MHAParser::vcomplex_mon_t, 702
data, 704
query_type, 704
query_val, 704
vcomplex_mon_t, 703
MHAParser::vcomplex_t, 704
data, 706
op_setval, 706
query_type, 706
query_val, 706
vcomplex_t, 706
MHAParser::vfloat_mon_t, 707
data, 708
query_type, 708
query_val, 708
vfloat_mon_t, 708
MHAParser::vfloat_t, 709
data, 711
op_setval, 710
query_type, 710
query_val, 710
vfloat_t, 710
MHAParser::vint_mon_t, 711
data, 712
query_type, 712
query_val, 712
vint_mon_t, 712
MHAParser::vint_t, 713
data, 715
op_setval, 714
query_type, 714
query_val, 714
vint_t, 714
MHAParser::vstring_mon_t, 715
data, 716
query_type, 716
query_val, 716
vstring_mon_t, 716
MHAParser::vstring_t, 717
data, 718
op_setval, 718
query_type, 718
query_val, 718
vstring_t, 718
MHAParser::window_t, 719
get_type, 721
get_window, 720, 721
user, 721
window_t, 720
wnd_bartlett, 720
© 2005-2019 HörTech gGmbH, Oldenburg

1151
wnd_blackman, 720
wnd_hamming, 720
wnd_hann, 720
wnd_rect, 720
wnd_user, 720
wtype, 721
wtype_t, 720
MHAPlugin, 116
MHAPlugin::cfg_chain_t
∼cfg_chain_t, 723
cfg_chain_t, 723
data, 723
next, 723
not_in_use, 723
MHAPlugin::cfg_chain_t< runtime_cfg_t >,
722
MHAPlugin::config_t
∼config_t, 726
cfg, 728
cfg_chain, 728
cfg_chain_current, 728
cleanup_unused_cfg, 728
config_t, 726
last_config, 726
poll_config, 726
push_config, 726
remove_all_cfg, 728
MHAPlugin::config_t< runtime_cfg_t >, 723
MHAPlugin::plugin_t
∼plugin_t, 730
ac, 732
input_cfg, 731
input_cfg_, 732
is_prepared, 731
is_prepared_, 732
mhaconfig_in, 732
mhaconfig_out, 732
output_cfg, 732
output_cfg_, 732
plugin_t, 730
prepare, 730
prepare_, 731
release, 731
release_, 731
tftype, 732
MHAPlugin::plugin_t< runtime_cfg_t >, 728
MHAPlugin_Resampling, 117
MHAPlugin_Resampling::resampling_if_←t, 733
algo, 734
chain, 734

1152
fragsize, 734
irslen_inner2outer, 734
irslen_outer2inner, 734
nyquist_ratio, 734
plugloader, 734
prepare, 734
process, 734
release, 734
resampling_if_t, 734
srate, 734
MHAPlugin_Resampling::resampling_t, 735
inner2outer_resampling, 736
inner_fragsize, 736
inner_signal, 736
inner_srate, 736
nchannels_in, 736
nchannels_out, 736
outer2inner_resampling, 736
outer_fragsize, 735
outer_srate, 736
output_signal, 736
plugloader, 736
process, 735
resampling_t, 735
MHAPlugin_Split, 117
INVALID_THREAD_PRIORITY, 118
MHAPlugin_Split::domain_handler_t, 736
∼domain_handler_t, 738
deallocate_domains, 739
domain_handler_t, 738
get_signal, 740
operator=, 738
process, 740
processor, 741
put_signal, 739
set_input_domain, 738
set_output_domain, 738
spec_in, 741
spec_out, 741
wave_in, 741
wave_out, 741
MHAPlugin_Split::dummy_threads_t, 741
catch_thread, 742
dummy_threads_t, 742
kick_thread, 742
MHAPlugin_Split::posix_threads_t, 743
∼posix_threads_t, 745
attr, 746
catch_condition, 746
catch_thread, 745
current_thread_priority, 745

INDEX
current_thread_scheduler, 745
kick_condition, 745
kick_thread, 745
kicked, 746
main, 745
mutex, 745
posix_threads_t, 744
priority, 746
processing_done, 746
scheduler, 746
termination_request, 746
thread, 746
thread_start, 745
MHAPlugin_Split::split_t, 747
∼split_t, 749
algos, 750
chains, 751
channels, 750
clear_chains, 749
collect_result, 749
copy_output_spec, 749
copy_output_wave, 749
delay, 751
framework_thread_priority, 751
framework_thread_scheduler, 750
patchbay, 750
prepare_, 749
process, 749
release_, 749
signal_out, 750
spec_out, 751
split_t, 749
thread_platform, 750
trigger_processing, 749
update, 749
wave_out, 751
worker_thread_priority, 750
worker_thread_scheduler, 750
MHAPlugin_Split::splitted_part_t, 751
∼splitted_part_t, 753
collect_result, 755
domain, 755
operator=, 754
parse, 754
plug, 755
prepare, 754
release, 754
splitted_part_t, 753
thread, 756
trigger_processing, 755
MHAPlugin_Split::thread_platform_t, 756
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
∼thread_platform_t, 757
catch_thread, 758
kick_thread, 758
operator=, 758
processor, 758
thread_platform_t, 757
MHAPlugin_Split::uni_processor_t, 759
∼uni_processor_t, 759
process, 760
MHAPluginCategory_t
mha.hh, 994
MHAPluginDocumentation_t
mha.hh, 994
MHAPrepare_cb
PluginLoader::mhapluginloader_t, 884
MHAPrepare_t
mha.hh, 993
MHAProc_spec2spec_cb
PluginLoader::mhapluginloader_t, 884
MHAProc_spec2spec_t
mha.hh, 994
MHAProc_spec2wave_cb
PluginLoader::mhapluginloader_t, 885
MHAProc_spec2wave_t
mha.hh, 994
MHAProc_wave2spec_cb
PluginLoader::mhapluginloader_t, 884
MHAProc_wave2spec_t
mha.hh, 994
MHAProc_wave2wave_cb
PluginLoader::mhapluginloader_t, 884
MHAProc_wave2wave_t
mha.hh, 994
MHARelease_cb
PluginLoader::mhapluginloader_t, 884
MHARelease_t
mha.hh, 993
MHASet_cb
PluginLoader::mhapluginloader_t, 885
MHASet_t
mha.hh, 994
MHASignal, 118
copy_permuted, 124
kth_smallest, 121
limit, 121
mean, 123
median, 122
quantile, 123
saveas_mat4, 123, 124
scale, 121
signal_counter, 125
© 2005-2019 HörTech gGmbH, Oldenburg

1153
MHASignal::async_rmslevel_t, 763
async_rmslevel_t, 764
filled, 765
peaklevel, 765
pos, 765
process, 765
rmslevel, 764
MHASignal::delay_spec_t, 765
∼delay_spec_t, 766
buffer, 766
delay, 766
delay_spec_t, 766
pos, 766
process, 766
MHASignal::delay_t, 766
∼delay_t, 767
buffer, 768
channels, 768
delay_t, 767
delays, 768
inspect, 768
pos, 768
process, 767
MHASignal::delay_wave_t, 768
∼delay_wave_t, 769
buffer, 769
delay, 769
delay_wave_t, 769
pos, 769
process, 769
MHASignal::doublebuffer_t, 769
∼doublebuffer_t, 771
ch, 772
doublebuffer_t, 770
inner_in, 772
inner_out, 772
inner_process, 771
k_inner, 772
k_outer, 772
min, 771
outer_out, 772
outer_process, 771
this_outer_out, 772
MHASignal::fft_t, 772
∼fft_t, 773
backward, 774
backward_scale, 774
buf_in, 775
buf_out, 775
fft_t, 773
fftw_plan_fft, 775

1154
fftw_plan_ifft, 775
fftw_plan_spec2wave, 775
fftw_plan_wave2spec, 775
forward, 773
forward_scale, 774
n_im, 775
n_re, 775
nfft, 775
scale, 775
sort_fftw2spec, 774
sort_spec2fftw, 774
spec2wave, 773
spec2wave_scale, 774
wave2spec, 773
wave2spec_scale, 774
MHASignal::hilbert_fftw_t, 775
buf_c_in, 776
buf_c_out, 776
buf_r_in, 776
buf_r_out, 776
hilbert, 776
hilbert_fftw_t, 776
n, 776
p1, 776
p2, 776
sc, 776
MHASignal::hilbert_t, 776
∼hilbert_t, 777
h, 777
hilbert_t, 777
operator(), 777
MHASignal::loop_wavefragment_t, 778
add, 779
b_loop, 781
get_mapping, 780
input, 779
intern_level, 781
is_playback_active, 781
level_mode_t, 779
locate_end, 781
loop_wavefragment_t, 779
mute, 779
peak, 779
playback, 780, 781
playback_channels, 781
playback_mode_t, 779
pos, 781
relative, 779
replace, 779
rewind, 781
rms, 779

INDEX
rms_limit40, 779
set_level_db, 781
set_level_lin, 781
MHASignal::matrix_t, 782
∼matrix_t, 785
cdata, 790
complex_ofs, 790
dimension, 786
get_cdata, 790
get_comm_var, 785
get_index, 789
get_nelements, 786
get_nreals, 789
get_rdata, 790
imag, 787–789
is_same_size, 786
iscomplex, 786
matrix_t, 784, 785
nelements, 790
numbytes, 789
operator(), 787–789
operator=, 785
rdata, 790
real, 786–788
size, 786
write, 789
MHASignal::minphase_t, 790
minphase_t, 791
operator(), 791
phase, 792
MHASignal::quantizer_t, 792
downscale, 793
limit, 793
operator(), 793
quantizer_t, 792
up_limit, 793
upscale, 793
MHASignal::ringbuffer_t, 793
contained_frames, 795
discard, 796
next_read_frame_index, 796
next_write_frame_index, 797
ringbuffer_t, 795
value, 795
write, 796
MHASignal::schroeder_t, 797
down, 799
groupdelay_t, 798
identity, 800
log_down, 800
log_up, 800
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
schroeder_t, 799
sign_t, 799
up, 799
MHASignal::spectrum_t, 800
∼spectrum_t, 802
copy, 803
copy_channel, 804
export_to, 804
operator(), 803
operator[], 803
scale, 804
scale_channel, 805
spectrum_t, 802
value, 803
MHASignal::stat_t, 805
mean, 806
mean_std, 806
n, 806
push, 806
stat_t, 806
sum, 806
sum2, 806
MHASignal::subsample_delay_t, 806
last_complex_bin, 808
phase_gains, 808
process, 808
subsample_delay_t, 807
MHASignal::uint_vector_t, 809
∼uint_vector_t, 810
data, 811
get_length, 811
getdata, 811
length, 811
numbytes, 811
operator=, 810
operator==, 810
operator[], 811
uint_vector_t, 810
write, 811
MHASignal::waveform_t, 812
∼waveform_t, 814
assign, 818
assign_channel, 818
assign_frame, 818
copy, 819
copy_channel, 819
copy_from_at, 819
export_to, 820
get_size, 822
limit, 820
operator(), 815, 816
© 2005-2019 HörTech gGmbH, Oldenburg

1155
operator=, 815
operator[], 815
power, 820
powspec, 821
scale, 821
scale_channel, 821
scale_frame, 822
sum, 816, 817
sum_channel, 817
sumsqr, 817
value, 815, 816
waveform_t, 814
MHASndFile, 125
MHASndFile::sf_t, 822
∼sf_t, 823
sf, 823
sf_t, 823
MHASndFile::sf_wave_t, 823
sf_wave_t, 824
MHAStrError_cb
PluginLoader::mhapluginloader_t, 885
MHAStrError_t
mha.hh, 994
MHATableLookup, 125
MHATableLookup::linear_table_t, 824
∼linear_table_t, 826
add_entry, 827
clear, 827
interp, 826
len, 828
linear_table_t, 826
lookup, 826
prepare, 827
scalefac, 828
set_xmax, 827
set_xmin, 826
vec_y, 828
vy, 828
xmax, 828
xmin, 828
MHATableLookup::table_t, 828
∼table_t, 829
clear, 829
interp, 829
lookup, 829
table_t, 829
MHATableLookup::xy_table_t, 830
add_entry, 832
clear, 832
get_xlimits, 833
interp, 831

1156
lookup, 831
mXY, 833
set_xfun, 832
set_xyfun, 833
set_yfun, 833
xfun, 833
xy_table_t, 831
xyfun, 833
yfun, 833
MHAWindow, 125
bartlett, 126
blackman, 127
hamming, 127
hanning, 127
rect, 126
MHAWindow::bartlett_t, 834
bartlett_t, 834
MHAWindow::base_t, 835
base_t, 835, 836
operator(), 836
ramp_begin, 836
ramp_end, 836
MHAWindow::blackman_t, 837
blackman_t, 837
MHAWindow::fun_t, 838
fun_t, 838
MHAWindow::hamming_t, 839
hamming_t, 840
MHAWindow::hanning_t, 840
hanning_t, 841
MHAWindow::rect_t, 841
rect_t, 842
MHAWindow::user_t, 842
user_t, 843
MIN_TCP_PORT_STR
MHAIOTCP.cpp, 1062
MIN_TCP_PORT
MHAIOTCP.cpp, 1062
MIN
mha_defs.h, 998
mXY
MHATableLookup::xy_table_t, 833
main
analysemhaplugin.cpp, 967
browsemhaplugins.cpp, 969
generatemhaplugindoc.cpp, 982
MHAPlugin_Split::posix_threads_t, 745
mha.cpp, 989
testalsadevice.c, 1080
make_friendly_number
MHAFilter, 96

INDEX
mhajack.cpp, 1064
make_friendly_number_by_limiting
nlms_wave.cpp, 1070
prediction_error.cpp, 1072
mapping
addsndfile::addsndfile_if_t, 182
coherence::vars_t, 242
matmix_t
matrixmixer::matmix_t, 411
matrix_t
MHASignal::matrix_t, 784, 785
matrixmixer, 89
matrixmixer.cpp, 988
matrixmixer::cfg_t, 408
cfg_t, 409
m, 409
process, 409
sout, 409
wout, 409
matrixmixer::matmix_t, 410
ci, 411
co, 411
matmix_t, 411
mixer, 411
patchbay, 411
prepare, 411
process, 411
update_m, 411
max
spec2wave.cpp, 1075
Vector and matrix processing toolbox, 59
max_clipped
softclipper_variables_t, 920
max_fill_count
mha_fifo_t, 456
max_frames
acsave::cfg_t, 169
max_lag
doasvm_feature_extraction, 285
max_level_difference
dc::dc_t, 257
dc::dc_vars_t, 259
max_p_ind_name
doasvm_classification, 281
max_pool_ind_name
acPooling_wave, 162
max_q
timoConfig, 943
max_q_AC
timo_AC, 938
max_val
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX

1157

MHA_AC_DOUBLE, 993
timoConfig, 943
MHA_AC_FLOAT, 993
max_val_AC
MHA_AC_INT, 993
timo_AC, 938
MHA_AC_MHACOMPLEX, 993
maxInputChannels
MHA_AC_MHAREAL, 993
MHAIOPortAudio::device_info_t, 584
MHA_AC_UNKNOWN, 993
maxOutputChannels
MHA_AC_USER, 993
MHAIOPortAudio::device_info_t, 584
MHA_AC_VEC_FLOAT, 993
maxabs
MHA_CALLBACK_TEST_PREFIX, 991
Vector and matrix processing toolbox, 57,
58
MHA_CALLBACK_TEST, 991
maxframe
MHA_DOMAIN_MAX, 993
acsave::save_var_t, 171
MHA_DOMAIN_UNKNOWN, 993
maxgain
MHA_RELEASE_VERSION_STRING,
992
dc_simple::dc_t, 267
MHA_SPECTRUM, 993
dc_simple::dc_vars_t, 269
MHA_STRUCT_SIZEMATCH, 992
DynComp::dc_afterburn_rt_t, 294
MHA_STRF, 992
DynComp::dc_afterburn_vars_t, 298
MHA_VERSION_BUILD, 992
maximum_reader_xruns_in_succession_←before_stop
MHA_VERSION_MAJOR, 992
mha_drifter_fifo_t, 444
MHA_VERSION_MINOR, 992
maximum_writer_xruns_in_succession_←MHA_VERSION_RELEASE, 992
before_stop
MHA_VERSION_STRING, 992
mha_drifter_fifo_t, 444
MHA_VERSION, 992
maxlen
MHA_WAVEFORM, 993
plingploing::if_t, 867
MHA_XSTRF, 992
maxlen_
MHADestroy_t, 994
plingploing::plingploing_t, 869
MHAGetVersion_t, 993
mcomplex_mon_t
MHAInit_t, 993
MHAParser::mcomplex_mon_t, 673
MHAPluginCategory_t, 994
mcomplex_t
MHAPluginDocumentation_t, 994
MHAParser::mcomplex_t, 675
MHAPrepare_t, 993
mean
MHAProc_spec2spec_t, 994
MHA_AC::stat_t, 425
MHAProc_spec2wave_t, 994
MHASignal, 123
MHAProc_wave2spec_t, 994
MHASignal::stat_t, 806
MHAProc_wave2wave_t, 994
mean_std
MHARelease_t, 993
MHASignal::stat_t, 806
MHASet_t, 994
median
MHAStrError_t, 994
MHASignal, 122
mha_domain_t, 993
mfloat_mon_t
mha_algo_comm.cpp, 994
MHAParser::mfloat_mon_t, 676
AC_DIM_MISMATCH, 995
mfloat_t
AC_INVALID_HANDLE, 995
MHAParser::mfloat_t, 679
AC_INVALID_NAME, 995
mha
AC_INVALID_OUTPTR, 995
speechnoise_t, 925
AC_STRING_TRUNCATED, 995
mha.cpp, 989
AC_SUCCESS, 995
main, 989
AC_TYPE_MISMATCH, 995
mhamain, 989
algo_comm_default, 995
mha.hh, 989
mha_algo_comm.h, 995
algo_comm_t, 993
mha_algo_comm.hh, 996
ALGO_COMM_ID_STR, 997
MHA_AC_CHAR, 993
© 2005-2019 HörTech gGmbH, Oldenburg

1158
algo_comm_default, 997
mha_alloc
mha_ruby.cpp, 1025
mha_audio_descriptor_t, 427
cf, 428
chdir, 428
dt, 428
is_complex, 428
n_channels, 428
n_freqs, 428
n_samples, 428
mha_audio_t, 428
cdata, 429
descriptor, 429
rdata, 429
mha_channel_info_t, 429
dir, 430
id, 430
idstr, 430
peaklevel, 430
side, 430
mha_complex
Complex arithmetics in the openMHA, 63
mha_complex_t, 431
im, 431
re, 431
mha_complex_test_array_t, 431
c, 432
mha_dblbuf_t
∼mha_dblbuf_t, 434
delay, 437
fifo_size, 437
get_delay, 435
get_fifo_size, 435
get_inner_error, 435
get_inner_size, 434
get_input_channels, 435
get_input_fifo_fill_count, 435
get_input_fifo_space, 435
get_outer_size, 434
get_output_channels, 435
get_output_fifo_fill_count, 435
get_output_fifo_space, 435
inner_error, 437
inner_size, 437
input, 436
input_channels, 437
input_fifo, 437
mha_dblbuf_t, 434
outer_error, 437
outer_size, 436

INDEX
output, 436
output_channels, 437
output_fifo, 437
process, 435
provoke_inner_error, 435
provoke_outer_error, 435
value_type, 434
mha_dblbuf_t< FIFO >, 432
mha_debug
Error handling in the openMHA, 33
mha_defs.h, 997
__MHA_FUN__, 998
__declspec, 998
CHECK_EXPR, 998
CHECK_VAR, 998
M_PI, 998
MAX, 998
MHA_EAR_LEFT, 998
MHA_EAR_MAX, 998
MHA_EAR_RIGHT, 998
MIN, 998
mha_delenv
mha_os.cpp, 1011
mha_os.h, 1014
mha_direction_t, 438
azimuth, 438
distance, 438
elevation, 438
mha_domain_t
mha.hh, 993
mha_drifter_fifo_t
desired_fill_count, 443
get_available_space, 442
get_des_fill_count, 442
get_fill_count, 442
get_min_fill_count, 442
maximum_reader_xruns_in_succession←_before_stop, 444
maximum_writer_xruns_in_succession←_before_stop, 444
mha_drifter_fifo_t, 441
minimum_fill_count, 443
null_data, 444
read, 441
reader_started, 443
reader_xruns_in_succession, 444
reader_xruns_since_start, 444
reader_xruns_total, 443
starting, 443
startup_zeros, 444
stop, 442
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
write, 441
writer_started, 443
writer_xruns_in_succession, 444
writer_xruns_since_start, 444
writer_xruns_total, 443
mha_drifter_fifo_t< T >, 439
mha_errno.c, 998
cstr_strerror, 999
mha_set_user_error, 999
mha_strerror, 999
next_except_str, 999
STRLEN, 999
mha_errno.h, 999
MHA_ERR_INVALID_HANDLE, 1000
MHA_ERR_NULL, 1000
MHA_ERR_SUCCESS, 1000
MHA_ERR_UNKNOWN, 1000
MHA_ERR_USER, 1000
MHA_ERR_VARFMT, 1000
MHA_ERR_VARRANGE, 1000
mha_set_user_error, 1000
mha_strerror, 1000
mha_error.cpp, 1000
mha_error.hh, 1001
Getmsg, 1002
mha_error_helpers, 90
digits, 90
snprintf_required_length, 90
mha_event_emitter.h, 1002
mha_events.cpp, 1002
mha_events.h, 1002
mha_exit_request
mha_ruby.cpp, 1025
mha_fft
timoConfig, 942
mha_fft_backward
Fast Fourier Transform functions, 75
mha_fft_backward_scale
Fast Fourier Transform functions, 76
mha_fft_forward
Fast Fourier Transform functions, 75
mha_fft_forward_scale
Fast Fourier Transform functions, 76
mha_fft_free
Fast Fourier Transform functions, 72
mha_fft_new
Fast Fourier Transform functions, 72
mha_fft_spec2wave
Fast Fourier Transform functions, 74
mha_fft_spec2wave_scale
Fast Fourier Transform functions, 77
© 2005-2019 HörTech gGmbH, Oldenburg

1159
mha_fft_t
Fast Fourier Transform functions, 72
mha_fft_wave2spec
Fast Fourier Transform functions, 73
mha_fft_wave2spec_scale
Fast Fourier Transform functions, 76
mha_fftfb.cpp, 1002
BARKSCALE_ENTRIES, 1004
filtershapefun, 1004
mha_fftfb.hh, 1004
mha_fifo.cpp, 1005
mha_fifo.h, 1005
mha_fifo_thread_platform_implementation←_t, 1005
mha_fifo_lw_t
∼mha_fifo_lw_t, 448
error, 450
mha_fifo_lw_t, 448
read, 449
set_error, 449
sync, 449
write, 448
mha_fifo_lw_t< T >, 447
mha_fifo_posix_threads_t, 450
∼mha_fifo_posix_threads_t, 451
aquire_mutex, 451
decrease_condition, 452
decrement, 451
increase_condition, 452
increment, 451
mha_fifo_posix_threads_t, 451
mutex, 452
release_mutex, 451
wait_for_decrease, 451
wait_for_increase, 451
mha_fifo_t
∼mha_fifo_t, 454
buf, 456
buf_uses_placement_new, 456
clear, 456
get_available_space, 455
get_fill_count, 455
get_max_fill_count, 455
max_fill_count, 456
mha_fifo_t, 454
operator=, 455
read, 455
read_ptr, 456
value_type, 454
write, 454
write_ptr, 456

1160
mha_fifo_t< T >, 452
mha_fifo_thread_guard_t, 456
∼mha_fifo_thread_guard_t, 457
mha_fifo_thread_guard_t, 457
sync, 457
mha_fifo_thread_platform_implementation_t
mha_fifo.h, 1005
mha_fifo_thread_platform_t, 457
∼mha_fifo_thread_platform_t, 458
aquire_mutex, 459
decrement, 459
increment, 459
mha_fifo_thread_platform_t, 458
operator=, 460
release_mutex, 459
wait_for_decrease, 459
wait_for_increase, 459
mha_filter.cpp, 1005
diff_coeffs, 1006
mha_filter.hh, 1006
mha_fragsize
MHAIOJackdb::io_jack_t, 581
mha_free
mha_ruby.cpp, 1025
mha_freelib
mha_os.h, 1013
mha_freelib_success
mha_os.h, 1013
mha_generic_chain.cpp, 1007
mhaconfig_compare, 1008
mha_generic_chain.h, 1008
MHAPLUGIN_OVERLOAD_OUTDOM←AIN, 1008
mha_getenv
mha_os.cpp, 1011
mha_os.h, 1013
mha_getlibfun
mha_os.h, 1013
mha_getlibfun_checked
mha_os.h, 1013
mha_hasenv
mha_os.cpp, 1010
mha_os.h, 1014
mha_hton
mha_os.h, 1015
mha_io_ifc.h, 1008
IODestroy_t, 1009
IOInit_t, 1009
IOPrepare_t, 1009
IOProcessEvent_t, 1009
IORelease_t, 1009

INDEX
IOSetVar_t, 1009
IOStart_t, 1009
IOStartedEvent_t, 1009
IOStop_t, 1009
IOStoppedEvent_t, 1009
IOStrError_t, 1009
mha_lib_extension
mha_os.h, 1013
mha_libhandle_t
mha_os.h, 1013
mha_library_paths
mha_os.cpp, 1011
mha_os.h, 1015
mha_loadlib
mha_os.h, 1013
mha_loadlib_error
mha_os.h, 1013
mha_min_1
mha_signal.hh, 1037
mha_msleep
mha_os.h, 1013
mha_multisrc.cpp, 1009
mha_multisrc.h, 1010
mha_ntoh
mha_os.h, 1015
mha_os.cpp, 1010
list_dir, 1011
mha_delenv, 1011
mha_getenv, 1011
mha_hasenv, 1010
mha_library_paths, 1011
mha_setenv, 1011
mha_os.h, 1012
FMTsz, 1013
list_dir, 1015
MHA_RESOLVE_CHECKED, 1013
MHA_RESOLVE, 1013
mha_delenv, 1014
mha_freelib, 1013
mha_freelib_success, 1013
mha_getenv, 1013
mha_getlibfun, 1013
mha_getlibfun_checked, 1013
mha_hasenv, 1014
mha_hton, 1015
mha_lib_extension, 1013
mha_libhandle_t, 1013
mha_library_paths, 1015
mha_loadlib, 1013
mha_loadlib_error, 1013
mha_msleep, 1013
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
mha_ntoh, 1015
mha_setenv, 1014
mha_parse
mha_ruby.cpp, 1026
mha_parser.cpp, 1015
MHAPLATFORM, 1016
parse_1_complex, 1016
parse_1_float, 1016
write_float, 1016
mha_parser.hh, 1017
DEFAULT_RETSIZE, 1021
insert_member, 1021
mha_platform_tic
mha_profiling.c, 1024
mha_profiling.h, 1025
mha_platform_tictoc_t
mha_profiling.h, 1025
mha_platform_toc
mha_profiling.c, 1024
mha_profiling.h, 1025
mha_plugin.hh, 1022
__attribute__, 1024
__declspec, 1023
GITCOMMITHASH, 1023
HINSTANCE, 1023
MHAPLUGIN_DOCUMENTATION_PR←EFIX, 1023
MHAPLUGIN_INIT_CALLBACKS_PRE←FIX, 1023
MHAPLUGIN_INIT_CALLBACKS, 1023
MHAPLUGIN_PROC_CALLBACK_PR←EFIX, 1023
MHAPLUGIN_PROC_CALLBACK, 1023
WINAPI, 1023
mha_profiling.c, 1024
mha_platform_tic, 1024
mha_platform_toc, 1024
mha_tic, 1024
mha_toc, 1024
mha_profiling.h, 1024
mha_platform_tic, 1025
mha_platform_tictoc_t, 1025
mha_platform_toc, 1025
mha_real_t
Vector and matrix processing toolbox, 42
mha_real_test_array_t, 460
r, 460
mha_round
mha_signal.hh, 1037
mha_rt_fifo_element_t
∼mha_rt_fifo_element_t, 461
© 2005-2019 HörTech gGmbH, Oldenburg

1161
abandonned, 461
data, 461
mha_rt_fifo_element_t, 461
next, 461
mha_rt_fifo_element_t< T >, 460
mha_rt_fifo_t
∼mha_rt_fifo_t, 463
current, 464
mha_rt_fifo_t, 463
poll, 463
poll_1, 463
push, 464
remove_abandonned, 464
remove_all, 464
root, 464
mha_rt_fifo_t< T >, 462
mha_ruby.cpp, 1025
Init_mha_ruby, 1026
mha_alloc, 1025
mha_exit_request, 1025
mha_free, 1025
mha_parse, 1026
rb_f_t, 1025
mha_samplerate
MHAIOJackdb::io_jack_t, 581
mha_set_user_error
mha_errno.c, 999
mha_errno.h, 1000
mha_setenv
mha_os.cpp, 1011
mha_os.h, 1014
mha_signal.cpp, 1026
ASSERT_EQUAL_DIM_PTR, 1028
ASSERT_EQUAL_DIM, 1028
intensity, 1028
MHA_ID_MATRIX, 1028
MHA_ID_UINT_VECTOR, 1028
safe_div, 1028
set_minabs, 1028
mha_signal.hh, 1029
M_PI, 1037
mha_min_1, 1037
mha_round, 1037
operator<<, 1037
operator>>, 1038
safe_div, 1037
set_minabs, 1037
value, 1037
mha_signal_fft.h, 1038
mha_spec_t, 465
buf, 466

1162
channel_info, 466
num_channels, 466
num_frames, 466
mha_stash_environment_variable_t, 466
∼mha_stash_environment_variable_←t, 467
existed_before, 467
mha_stash_environment_variable_t, 467
original_content, 467
variable_name, 467
mha_strerror
mha_errno.c, 999
mha_errno.h, 1000
mha_tablelookup.cpp, 1038
mha_tablelookup.hh, 1038
mha_tcp.cpp, 1039
ASYNC_CONNECT_STARTED, 1040
closesocket, 1040
host_port_to_sock_addr, 1040
INVALID_SOCKET, 1040
SOCKET_ERROR, 1040
SOCKET, 1040
tcp_connect_to, 1040
tcp_connect_to_with_timeout, 1040
thread_start_func, 1040
mha_tcp.hh, 1040
Sleep, 1042
mha_test_struct_size
PluginLoader::mhapluginloader_t, 884
mha_tic
mha_profiling.c, 1024
mha_tictoc_t, 495
t, 495
tv1, 495
tv2, 495
tz, 495
mha_toc
mha_profiling.c, 1024
mha_toolbox.h, 1042
mha_wave_t, 496
buf, 497
channel_info, 497
num_channels, 497
num_frames, 497
mha_windowparser.cpp, 1042
wnd_funs, 1042
mha_windowparser.h, 1042
mhachain, 93
mhachain.cpp, 1043
mhachain::chain_base_t, 497
algos, 499

INDEX
b_prepared, 499
bprofiling, 499
cfin, 499
cfout, 499
chain, 499
chain_base_t, 498
old_algos, 499
patchbay, 499
prepare, 499
process, 498, 499
release, 499
update, 499
mhachain::mhachain_t, 500
mhachain_t, 500
mhachain::plugs_t, 501
∼plugs_t, 502
ac, 502
algos, 502
alloc_plugs, 502
b_prepared, 502
b_use_profiling, 503
chain, 503
cleanup_plugs, 502
parser, 502
plugs_t, 502
prepare, 502
prepared, 502
proc_cnt, 503
process, 502
prof_algos, 503
prof_cfg, 503
prof_init, 503
prof_load_con, 503
prof_prepare, 503
prof_process, 503
prof_process_load, 503
prof_process_tt, 503
prof_release, 503
prof_tt_con, 503
profiling, 503
release, 502
tictoc, 503
update_proc_load, 502
mhachain_t
mhachain::mhachain_t, 500
mhachannels
addsndfile::addsndfile_if_t, 182
mhaconfig_compare
mha_generic_chain.cpp, 1008
PluginLoader, 129
mhaconfig_in
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
MHAPlugin::plugin_t, 732
mhaconfig_mon_t
MHAParser::mhaconfig_mon_t, 681
mhaconfig_out
MHAPlugin::plugin_t, 732
mhaconfig_t, 504
channels, 505
domain, 505
fftlen, 505
fragsize, 505
srate, 505
wndlen, 505
mhafft
fshift_hilbert::hilbert_shifter_t, 342
mhafw_lib.cpp, 1043
mhafw_lib.h, 1043
mhajack.cpp, 1064
dummy_jack_proc_cb, 1064
jack_error_handler, 1064
last_jack_err, 1064
last_jack_err_msg, 1064
make_friendly_number, 1064
mhajack.h, 1064
IO_ERROR_JACK, 1066
IO_ERROR_MHAJACKLIB, 1066
last_jack_err_msg, 1066
MAX_USER_ERR, 1066
MHAJACK_FW_STARTED, 1066
MHAJACK_STARTING, 1066
MHAJACK_STOPPED, 1066
mhamain
mha.cpp, 989
mhamain.cpp, 1067
mhamain.cpp, 1066
create_lock, 1067
GREETING_TEXT, 1067
HELP_TEXT, 1067
MAX_LINE_LENGTH, 1067
mhamain, 1067
remove_lock, 1067
mhaplug_cfg_t, 722
∼mhaplug_cfg_t, 722
mhaplug_cfg_t, 722
mhapluginloader.cpp, 1067
mhapluginloader.h, 1067
mhapluginloader_t
MHAParser::mhapluginloader_t, 683
PluginLoader::mhapluginloader_t, 882
mhaserver_t, 760
∼mhaserver_t, 762
acceptor_started, 762
© 2005-2019 HörTech gGmbH, Oldenburg

1163
ack_fail, 763
ack_ok, 763
announce_port, 763
logfile, 763
logstring, 762
mhaserver_t, 761
pid_mon, 763
port, 763
received_group, 762
run, 762
set_announce_port, 762
tcpserver, 763
mhasndfile.cpp, 1068
validator_channels, 1068
validator_length, 1068
write_wave, 1068
mhasndfile.h, 1068
write_wave, 1069
mhastrdomain
PluginLoader, 129
min
MHASignal::doublebuffer_t, 771
spec2wave.cpp, 1075
Vector and matrix processing toolbox, 59
minimum_fill_count
mha_drifter_fifo_t, 443
minlen
plingploing::if_t, 867
minlen_
plingploing::plingploing_t, 869
minphase
MHAFilter::smoothspec_t, 568
minphase_t
MHASignal::minphase_t, 791
mint_mon_t
MHAParser::mint_mon_t, 685
minw_
wavwriter_t, 956
minwrite
wavrec_t, 955
mix
sine_cfg_t, 910
mixer
matrixmixer::matmix_t, 411
mixw_ref
fshift_hilbert::hilbert_shifter_t, 341
mixw_shift
fshift_hilbert::hilbert_shifter_t, 341
mode
ac2osc_t, 147
addsndfile::addsndfile_if_t, 182

1164
MHA_TCP::OS_EVENT_TYPE, 480
noise_t, 855
sine_t, 912
smoothgains_bridge::overlapadd_if_←t, 914
modified
dc::dc_vars_t, 259
dc_simple::dc_if_t, 265
modulename
dynamiclib_t, 292
MHAParser::c_ifc_parser_t, 650
mon
acmon::ac_monitor_t, 156
mon_complex
acmon::ac_monitor_t, 156
mon_dump
MHAParser, 111
mon_g
dc_simple::dc_if_t, 265
dc_simple::dc_t, 267
mon_l
dc_simple::dc_if_t, 265
dc_simple::dc_t, 267
mon_mat
acmon::ac_monitor_t, 156
mon_mat_complex
acmon::ac_monitor_t, 156
mon_t, 844
mon_t, 844
store, 844
monitor variable, 4
monitor_t
MHAParser::monitor_t, 687
mpo
DynComp::dc_afterburn_vars_t, 298
mpo_inv
DynComp::dc_afterburn_rt_t, 294
msg
MHA_Error, 447
mu
MHAFilter::adapt_filter_param_t, 514
MHAFilter::adapt_filter_t, 517
mu_beta
adm_if_t, 197
multibandcompressor, 127
multibandcompressor.cpp, 1069
multibandcompressor::fftfb_plug_t, 845
bwv, 846
cfv, 846
efv, 846
fftfb_plug_t, 846

INDEX
insert, 846
multibandcompressor::interface_t, 847
algo, 849
burn, 848
interface_t, 848
num_channels, 848
patchbay, 848
plug, 849
plug_sigs, 849
prepare, 848
process, 848
release, 848
update_cfg, 848
multibandcompressor::plugin_signals_t, 849
apply_gains, 850
gain, 850
plug_level, 850
plug_output, 850
plugin_signals_t, 850
update_levels, 850
mute
MHAJack::port_t, 601
MHASignal::loop_wavefragment_t, 779
mutex
MHAPlugin_Split::posix_threads_t, 745
mha_fifo_posix_threads_t, 452
mylogf
dc_afterburn.cpp, 972
N
lpc_config, 408
n
MHAJack::client_avg_t, 590
MHASignal::hilbert_fftw_t, 776
MHASignal::stat_t, 806
N_ERRNO
MHA_TCP, 92
n_channels
mha_audio_descriptor_t, 428
n_freqs
mha_audio_descriptor_t, 428
n_im
MHASignal::fft_t, 775
n_no_update
nlms_t, 853
prediction_error, 889
n_no_update_
prediction_error_config, 891
rt_nlms_t, 900
n_pad1
overlapadd::overlapadd_t, 863
n_pad2
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
overlapadd::overlapadd_t, 863
n_re
MHASignal::fft_t, 775
n_samples
mha_audio_descriptor_t, 428
n_zero
overlapadd::overlapadd_t, 863
NORM_DEFAULT
nlms_wave.cpp, 1070
NORM_NONE
nlms_wave.cpp, 1070
NORM_SUM
nlms_wave.cpp, 1070
NORMALIZATION_TYPES
nlms_wave.cpp, 1070
NUM_ENTR_LTASS
speechnoise.cpp, 1076
NUM_ENTR_MHAORIG
speechnoise.cpp, 1076
NUM_ENTR_OLNOISE
speechnoise.cpp, 1076
name
ac2lsl::type_info, 143
ac2wave_if_t, 149
ac2wave_t, 151
acmon::ac_monitor_t, 156
acsave::save_var_t, 171
fftfbpow::fftfbpow_interface_t, 325
MHA_AC::ac2matrix_helper_t, 413
MHA_AC::spectrum_t, 424
MHA_AC::waveform_t, 427
MHAIOPortAudio::device_info_t, 584
MHAJack::client_avg_t, 590
MHAJack::client_noncont_t, 593
MHAMultiSrc::channel_t, 608
MHAParser::entry_t, 656
noisePowProposedScale::interface_t, 857
plugindescription_t, 875
rmslevel_if_t, 893
shadowfilter_end::cfg_t, 907
name_
AuditoryProfile::parser_t::fmap_t, 225
name_b
lpc_bl_predictor, 400
lpc_bl_predictor_config, 402
lpc_burglattice, 404
lpc_burglattice_config, 406
name_con_AC
acConcat_wave, 153
name_d
nlms_t, 852
© 2005-2019 HörTech gGmbH, Oldenburg

1165
name_d_
prediction_error_config, 891
rt_nlms_t, 900
name_e
nlms_t, 853
prediction_error, 888
name_e_
rt_nlms_t, 900
name_f
lpc_bl_predictor, 400
lpc_bl_predictor_config, 401
lpc_burglattice, 404
lpc_burglattice_config, 406
nlms_t, 853
prediction_error, 888
name_kappa
lpc_bl_predictor, 400
lpc_burglattice, 404
name_km
lpc_bl_predictor_config, 401
name_lpc
prediction_error, 888
name_lpc_
prediction_error_config, 891
name_lpc_b
lpc_bl_predictor, 400
name_lpc_f
lpc_bl_predictor, 400
name_u
nlms_t, 852
name_u_
rt_nlms_t, 900
namelen
acsave::mat4head_t, 169
names
MHAOvlFilter::scale_var_t, 633
nangle
acSteer_config, 175
steerbf_config, 929
naudiochannels
dc::dc_t, 257
nbands
coherence::cohflt_t, 240
combc_t, 245
dc::dc_t, 257
dc_simple::dc_t, 267
dc_simple::level_smoother_t, 272
DynComp::gaintable_t, 302
fftfilterbank::fftfb_interface_t, 330
MHAFilter::thirdoctave_analyzer_t, 569
MHAOvlFilter::fspacing_t, 626

1166
nbits
calibrator_variables_t, 234
nch
shadowfilter_begin::cfg_t, 904
shadowfilter_begin::shadowfilter_begin←_t, 906
spec_fader_t, 924
nch_out
shadowfilter_end::cfg_t, 907
nchan
acSteer_config, 175
steerbf_config, 929
timoConfig, 942
nchannels
DynComp::gaintable_t, 302
fftfilterbank::fftfb_interface_t, 330
MHAFilter::adapt_filter_state_t, 515
MHAFilter::adapt_filter_t, 517
MHAFilter::iir_filter_t, 542
MHAFilter::smoothspec_t, 568
MHAFilter::thirdoctave_analyzer_t, 569
nchannels_file_in
io_file_t, 367
nchannels_in
io_file_t, 367
io_parser_t, 374
MHAFilter::partitioned_convolution_t, 556
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 598
MHAPlugin_Resampling::resampling_t,
736
nchannels_out
fw_t, 347
io_file_t, 367
io_parser_t, 374
MHAFilter::partitioned_convolution_t, 556
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 598
MHAPlugin_Resampling::resampling_t,
736
ndim
acsave::save_var_t, 171
needs_write
MHA_TCP::Connection, 476
neigh
acPooling_wave_config, 164
neighbourhood
acPooling_wave, 162
nelements
MHASignal::matrix_t, 790
nested_lock

INDEX
MHAParser::base_t, 642
newgains
fader_if_t, 319
next
MHAPlugin::cfg_chain_t, 723
mha_rt_fifo_element_t, 461
next_except_str
mha_errno.c, 999
next_read_frame_index
MHASignal::ringbuffer_t, 796
next_write_frame_index
MHASignal::ringbuffer_t, 797
nfft
MHASignal::fft_t, 775
overlapadd::overlapadd_if_t, 861
shadowfilter_end::cfg_t, 907
spec2wave_t, 923
wave2spec_if_t, 950
nfft_
MHAOvlFilter::fspacing_t, 626
nframes
acsave::save_var_t, 171
nfreq
acSteer_config, 175
steerbf_config, 929
timoConfig, 942
nlms_t, 851
algo, 853
c, 852
estimtype, 853
lambda_smoothing_power, 853
n_no_update, 853
name_d, 852
name_e, 853
name_f, 853
name_u, 852
nlms_t, 852
normtype, 853
ntaps, 852
patchbay, 853
prepare, 852
process, 852
release, 852
rho, 852
update, 852
nlms_wave.cpp, 1069
ESTIM_CUR, 1070
ESTIM_PREV, 1070
ESTIMATION_TYPES, 1070
make_friendly_number_by_limiting, 1070
NORM_DEFAULT, 1070
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX

1167

GLRexp, 859
inputPow, 858
inputSpec, 858
insert, 858
nm
logGLRFact, 859
lpc_burglattice_config, 406
noisePow, 858
no_iter
noisePowProposed, 858
prediction_error_config, 891
noisyPer, 858
rt_nlms_t, 900
PH1Debug, 858
noise.cpp, 1070
PH1mean, 858
noise_t, 853
priorFact, 859
frozennoise_length, 855
process, 858
lev, 855
snrPost1Debug, 858
mode, 855
xiOpt, 859
noise_t, 854
noisyPer
patchbay, 855
noisePowProposedScale::noisePow←prepare, 854
Proposed, 858
process, 854
non_empty_partitions
update_cfg, 854
MHAFilter::transfer_function_t, 571
noise_type_t
MHAFilter::transfer_matrix_t, 573
speechnoise_t, 925
nondefault_labels
noisePow
altplugs_t, 216
noisePowProposedScale::noisePow←norm
Proposed, 858
lpc, 397
timoConfig, 943
lpc_config, 407
noisePow_name
norm_phase
timo_params, 940
gtfb_analyzer::gtfb_analyzer_cfg_t, 354
timoSmooth, 947
gtfb_analyzer::gtfb_analyzer_t, 357
noisePowProposed
normalize
noisePowProposedScale::noisePow←Complex arithmetics in the openMHA, 69
Proposed, 858
MHAOvlFilter::fftfb_vars_t, 621
noisePowProposedScale, 127
normtype
noisePowProposedScale.cpp, 1070
nlms_t, 853
POWSPEC_FACTOR, 1071
not_in_use
noisePowProposedScale::interface_t, 855
MHAPlugin::cfg_chain_t, 723
alphaPH1mean, 857
not_zero
alphaPSD, 857
dc_simple, 84
interface_t, 856
notify
name, 857
MHAParser::base_t, 641
patchbay, 857
notify_release
prepare, 856
io_tcp_t, 391
process, 856
notify_start
q, 857
io_tcp_t, 391
update_cfg, 856
notify_stop
xiOptDb, 857
io_tcp_t, 391
noisePowProposedScale::noisePowProposed,
857
now_index
alphaPH1mean_, 858
MHAFilter::polyphase_resampling_t, 563
alphaPSD_, 859
npad1
estimateDebug, 858
spec2wave_t, 922
frameno, 859
wave2spec_t, 952
npad2
GLRDebug, 858
NORM_NONE, 1070
NORM_SUM, 1070
NORMALIZATION_TYPES, 1070

© 2005-2019 HörTech gGmbH, Oldenburg

1168
spec2wave_t, 923
wave2spec_t, 952
nperiods
alsa_dev_par_parser_t, 209
nrefmic
acSteer, 174
acSteer_config, 175
nrep
MHAJack::client_avg_t, 590
nsteerchan
acSteer, 174
acSteer_config, 175
ntaps
MHAFilter::adapt_filter_state_t, 515
MHAFilter::adapt_filter_t, 517
nlms_t, 852
prediction_error, 888
prediction_error_config, 890
rt_nlms_t, 899
ntoh
io_tcp_sound_t, 386
ntracks
shadowfilter_begin::cfg_t, 904
shadowfilter_begin::shadowfilter_begin←_t, 906
shadowfilter_end::cfg_t, 907
null_data
mha_drifter_fifo_t, 444
num_AC
acConcat_wave, 153
num_adms
adm_rtconfig_t, 199
num_brackets
MHAParser::StrCnv, 113
num_channels
calibrator_variables_t, 234
DynComp::gaintable_t, 302
MHAFilter::blockprocessing_polyphase←_resampling_t, 519
mha_spec_t, 466
mha_wave_t, 497
multibandcompressor::interface_t, 848
num_entries
ac2lsl::save_var_base_t, 137
ac2lsl::save_var_t, 139
ac2lsl::save_var_t< mha_complex_t >,
142
comm_var_t, 246
testplugin::ac_parser_t, 931
num_F
DynComp::gaintable_t, 302

INDEX
num_frames
mha_spec_t, 466
mha_wave_t, 497
num_inchannels
io_tcp_sound_t, 387
num_L
DynComp::gaintable_t, 302
num_outchannels
io_tcp_sound_t, 388
num_xruns
MHAJack::client_t, 598
numDevices
MHAIOPortAudio::device_info_t, 584
numSamples_AC
acConcat_wave_config, 154
numbytes
MHASignal::matrix_t, 789
MHASignal::uint_vector_t, 811
numchannels
acConcat_wave, 153
addsndfile::addsndfile_if_t, 182
numsamples
acPooling_wave, 162
acTransform_wave, 178
nupsample
doasvm_feature_extraction, 285
nvars
acsave::cfg_t, 169
nwnd
overlapadd::overlapadd_if_t, 861
wave2spec_if_t, 950
wave2spec_t, 952
nwndshift
spec2wave_t, 923
wave2spec_t, 952
nyquist_ratio
MHAPlugin_Resampling::resampling_if←_t, 734
o1_ar_filter_t
MHAFilter::o1_ar_filter_t, 546
o1_lp_coeffs
MHAFilter, 96
o1flt_lowpass_t
MHAFilter::o1flt_lowpass_t, 550
o1flt_maxtrack_t
MHAFilter::o1flt_maxtrack_t, 552
o1flt_mintrack_t
MHAFilter::o1flt_mintrack_t, 554
OVERLAP_FACTOR
timoconfig.cpp, 1081
observe
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
MHA_TCP::Event_Watcher, 479
observed_by
MHA_TCP::Wakeup_Event, 494
observers
MHA_TCP::Wakeup_Event, 495
od
MHAFilter::adapt_filter_state_t, 515
offset
acTransform_wave_config, 179
ola1
overlapadd::overlapadd_t, 862
ola2
overlapadd::overlapadd_t, 862
ola_powspec_scale
timoConfig, 942
old_algos
mhachain::chain_base_t, 499
olnoise
speechnoise_t, 925
on_model_param_valuechanged
timoSmooth, 946
on_prereadaccess
example3_t, 310
example4_t, 314
on_scale_ch_readaccess
example3_t, 310
example4_t, 314
on_scale_ch_valuechanged
example3_t, 310
example4_t, 314
on_scale_ch_writeaccess
example3_t, 310
example4_t, 314
op
MHAParser::expression_t, 657
op_query
MHAParser::base_t, 638
MHAParser::c_ifc_parser_t, 649
MHAParser::monitor_t, 687
MHAParser::parser_t, 691
op_setval
MHAParser::base_t, 638
MHAParser::bool_t, 647
MHAParser::c_ifc_parser_t, 649
MHAParser::complex_t, 655
MHAParser::float_t, 661
MHAParser::int_t, 666
MHAParser::kw_t, 671
MHAParser::mcomplex_t, 675
MHAParser::mfloat_t, 679
MHAParser::parser_t, 691
© 2005-2019 HörTech gGmbH, Oldenburg

1169
MHAParser::string_t, 699
MHAParser::variable_t, 701
MHAParser::vcomplex_t, 706
MHAParser::vfloat_t, 710
MHAParser::vint_t, 714
MHAParser::vstring_t, 718
op_subparse
MHAParser::base_t, 638
MHAParser::c_ifc_parser_t, 649
MHAParser::parser_t, 691
opact_map_t
MHAParser, 111
opact_t
MHAParser, 111
operator!=
Complex arithmetics in the openMHA, 68
operator<
Complex arithmetics in the openMHA, 69
operator<<
mha_signal.hh, 1037
operator>>
mha_signal.hh, 1038
operator∗
Complex arithmetics in the openMHA, 66,
67
operator∗=
Complex arithmetics in the openMHA, 66
Vector and matrix processing toolbox, 54,
55
operator∧ =
Vector and matrix processing toolbox, 56
operator()
dc_simple::dc_t::line_t, 268
hanning_ramps_t, 358
MHAEvents::emitter_t, 511
MHAFilter::gamma_flt_t, 536, 537
MHAFilter::iir_ord1_real_t, 544
MHAFilter::o1_ar_filter_t, 547, 548
MHASignal::hilbert_t, 777
MHASignal::matrix_t, 787–789
MHASignal::minphase_t, 791
MHASignal::quantizer_t, 793
MHASignal::spectrum_t, 803
MHASignal::waveform_t, 815, 816
MHAWindow::base_t, 836
operator+
Complex arithmetics in the openMHA, 65
operator+=
Complex arithmetics in the openMHA, 65
Vector and matrix processing toolbox, 54,
55

1170
operatorComplex arithmetics in the openMHA, 65,
66, 68
operator-=
Complex arithmetics in the openMHA, 65
Vector and matrix processing toolbox, 54
operator/
Complex arithmetics in the openMHA, 67,
68
operator/=
Complex arithmetics in the openMHA, 67
Vector and matrix processing toolbox, 55
operator=
MHA_AC::acspace2matrix_t, 417
MHA_Error, 446
MHAPlugin_Split::domain_handler_t, 738
MHAPlugin_Split::splitted_part_t, 754
MHAPlugin_Split::thread_platform_t, 758
MHASignal::matrix_t, 785
MHASignal::uint_vector_t, 810
MHASignal::waveform_t, 815
mha_fifo_t, 455
mha_fifo_thread_platform_t, 460
operator==
Complex arithmetics in the openMHA, 68
MHASignal::uint_vector_t, 810
operator[]
MHA_AC::acspace2matrix_t, 417
MHASignal::spectrum_t, 803
MHASignal::uint_vector_t, 811
MHASignal::waveform_t, 815
operators
MHAParser::base_t, 642
oplist
MHAParser::base_t, 641
order
gtfb_analyzer::gtfb_analyzer_cfg_t, 354
gtfb_analyzer::gtfb_analyzer_t, 357
lpc_config, 407
original_content
mha_stash_environment_variable_t, 467
origname
PluginLoader::config_file_splitter_t, 877
os_event
MHA_TCP::Wakeup_Event, 495
os_event_valid
MHA_TCP::Wakeup_Event, 495
out
adm_if_t, 197
delaysum::delaysum_t, 278
out_buf

INDEX
overlapadd::overlapadd_t, 863
spec2wave_t, 923
out_chunk
MHAFilter::thirdoctave_analyzer_t, 570
out_chunk_im
MHAFilter::thirdoctave_analyzer_t, 570
out_spec
shadowfilter_begin::cfg_t, 904
shadowfilter_end::cfg_t, 907
outSpec
steerbf_config, 929
outbuf
MHA_TCP::Connection, 477
outch
MHAJack::client_t, 599
outchannels
combc_if_t, 244
outer2inner_resampling
MHAPlugin_Resampling::resampling_t,
736
outer_ac
analysepath_t, 218
outer_ac_copy
analysepath_t, 218
outer_error
mha_dblbuf_t, 437
outer_fragsize
MHAPlugin_Resampling::resampling_t,
735
outer_out
MHASignal::doublebuffer_t, 772
outer_process
MHASignal::doublebuffer_t, 771
outer_size
mha_dblbuf_t, 436
outer_srate
MHAPlugin_Resampling::resampling_t,
736
output
io_parser_t, 374
MHAJack::port_t, 600
mha_dblbuf_t, 436
output_cfg
MHAPlugin::plugin_t, 732
output_cfg_
MHAPlugin::plugin_t, 732
output_channels
mha_dblbuf_t, 437
output_domain
PluginLoader::mhapluginloader_t, 883
output_fifo
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
mha_dblbuf_t, 437
output_partitions
MHAFilter::partitioned_convolution_t, 556
output_portnames
MHAJack::client_t, 599
output_sample_format
io_file_t, 368
output_signal
MHAPlugin_Resampling::resampling_t,
736
output_signal_spec
MHAFilter::partitioned_convolution_t, 557
output_signal_wave
MHAFilter::partitioned_convolution_t, 557
output_spec
testplugin::signal_parser_t, 936
output_wave
testplugin::signal_parser_t, 936
outputchannels
MHAFilter::fftfilterbank_t, 530
overlap_save_filterbank_analytic_t
MHAOvlFilter::overlap_save_filterbank_←analytic_t, 628
overlap_save_filterbank_t
MHAOvlFilter::overlap_save_filterbank_t,
630
overlapadd, 127
overlapadd.cpp, 1071
overlapadd::overlapadd_if_t, 859
∼overlapadd_if_t, 860
algo, 861
cf_in, 861
cf_out, 861
nfft, 861
nwnd, 861
overlapadd_if_t, 860
patchbay, 861
plugloader, 861
postscale, 861
prepare, 860
prescale, 861
process, 861
release, 860
update, 861
window, 861
wndexp, 861
wndpos, 861
zerowindow, 861
overlapadd::overlapadd_t, 862
∼overlapadd_t, 862
calc_out, 863
© 2005-2019 HörTech gGmbH, Oldenburg

1171
fft, 863
n_pad1, 863
n_pad2, 863
n_zero, 863
ola1, 862
ola2, 862
out_buf, 863
overlapadd_t, 862
postwnd, 863
prewnd, 863
spec_in, 863
wave_in1, 863
wave_out1, 863
write_buf, 863
overlapadd_if_t
overlapadd::overlapadd_if_t, 860
smoothgains_bridge::overlapadd_if_←t, 913
overlapadd_t
overlapadd::overlapadd_t, 862
ovltype
MHAOvlFilter::fftfb_vars_t, 620
oy
MHAFilter::adapt_filter_state_t, 515
p
acPooling_wave_config, 164
doasvm_classification_config, 282
pluginbrowser_t, 874
p1
MHASignal::hilbert_fftw_t, 776
p2
MHASignal::hilbert_fftw_t, 776
P_Sum
rt_nlms_t, 900
p_biased
acPooling_wave_config, 164
p_biased_name
acPooling_wave, 162
p_in
io_alsa_t, 364
p_max
acPooling_wave_config, 164
doasvm_classification_config, 282
p_name
acPooling_wave, 162
doasvm_classification, 281
p_out
io_alsa_t, 364
p_parser
acmon::ac_monitor_t, 157
PATCH_VAR

1172
acConcat_wave.cpp, 961
acPooling_wave.cpp, 962
acSteer.cpp, 963
acTransform_wave.cpp, 964
doasvm_classification.cpp, 974
doasvm_feature_extraction.cpp, 975
lpc.cpp, 987
lpc_bl_predictor.cpp, 987
lpc_burg-lattice.cpp, 988
prediction_error.cpp, 1072
steerbf.cpp, 1080
timoSmooth.cpp, 1082
PH1Debug
noisePowProposedScale::noisePow←Proposed, 858
PH1mean
noisePowProposedScale::noisePow←Proposed, 858
POWSPEC_FACTOR
noisePowProposedScale.cpp, 1071
timoconfig.cpp, 1081
PREPARED
MHA_TCP::Thread, 488
pa22dbspl
Vector and matrix processing toolbox, 44
pa2dbspl
Vector and matrix processing toolbox, 43
params
timoConfig, 942
parent
MHAParser::base_t, 642
parent_
MHAParser::mhapluginloader_t, 684
parse
altplugs_t, 215
io_tcp_t, 391
MHAParser::base_t, 637, 638
MHAPlugin_Split::splitted_part_t, 754
PluginLoader::fourway_processor_t, 880
PluginLoader::mhapluginloader_t, 882
parse_1_complex
mha_parser.cpp, 1016
parse_1_float
mha_parser.cpp, 1016
parser
io_tcp_t, 391
mhachain::plugs_t, 502
parser_int_dyn, 864
parser_int_dyn, 864
set_max_angle_ind, 865
parser_plugs

INDEX
altplugs_t, 216
parser_t
AuditoryProfile::parser_t, 223
MHAParser::parser_t, 689
parserFriendlyName
MHAIOPortAudio, 99
parsername
latex_doc_t, 394
parserstate
fw_t, 347
partitioned_convolution_t
MHAFilter::partitioned_convolution_t, 555
partitions
MHAFilter::transfer_function_t, 571
MHAFilter::transfer_matrix_t, 573
patchbay
ac2lsl::ac2lsl_t, 133
ac2osc_t, 147
ac2wave_if_t, 149
acConcat_wave, 153
acPooling_wave, 162
acSteer, 174
acTransform_wave, 178
acmon::acmon_t, 159
acsave::acsave_t, 167
addsndfile::addsndfile_if_t, 182
adm_if_t, 197
altplugs_t, 216
analysispath_if_t, 220
AuditoryProfile::parser_t::fmap_t, 225
calibrator_t, 233
coherence::cohflt_if_t, 238
db_if_t, 251
dc::dc_if_t, 254
dc::wideband_inhib_vars_t, 263
dc_simple::dc_if_t, 265
delay::interface_t, 274
delaysum::delaysum_if_t, 276
doasvm_classification, 281
doasvm_feature_extraction, 285
DynComp::dc_afterburn_t, 296
example3_t, 311
example4_t, 315
example6_t, 317
fader_if_t, 319
fader_wave::fader_wave_if_t, 321
fftfbpow::fftfbpow_interface_t, 325
fftfilterbank::fftfb_interface_t, 330
fshift::fshift_t, 336
fshift_hilbert::frequency_translator_t, 338
fw_t, 348
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
gain::gain_if_t, 351
gtfb_analyzer::gtfb_analyzer_t, 357
io_alsa_t, 364
io_parser_t, 374
lpc, 397
lpc_bl_predictor, 400
lpc_burglattice, 404
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 582
MHAIOPortAudio::io_portaudio_t, 587
MHAPlugin_Split::split_t, 750
matrixmixer::matmix_t, 411
mhachain::chain_base_t, 499
multibandcompressor::interface_t, 848
nlms_t, 853
noise_t, 855
noisePowProposedScale::interface_t, 857
overlapadd::overlapadd_if_t, 861
plingploing::if_t, 867
plugin_interface_t, 873
prediction_error, 889
route::interface_t, 896
sine_t, 912
smoothgains_bridge::overlapadd_if_←t, 914
softclip_t, 917
spec2wave_if_t, 921
steerbf, 928
testplugin::ac_parser_t, 931
testplugin::if_t, 935
timoSmooth, 947
wave2spec_if_t, 950
wavrec_t, 955
windowselector_t, 959
path
addsndfile::addsndfile_if_t, 182
pcm
alsa_base_t, 208
pcm_format
alsa_t, 213
pcmlink
io_alsa_t, 364
peak
MHASignal::loop_wavefragment_t, 779
rmslevel_t, 894
peak_db
rmslevel_t, 894
peaklevel
calibrator_variables_t, 234
MHASignal::async_rmslevel_t, 765
mha_channel_info_t, 430
© 2005-2019 HörTech gGmbH, Oldenburg

1173
peer_addr
MHA_TCP::Connection, 477
peer_address
io_tcp_parser_t, 383
peer_port
io_tcp_parser_t, 384
period
droptect_t, 289
pfragmentsize
fw_vars_t, 349
phase
cpuload_t, 249
MHASignal::minphase_t, 792
phase_correction
MHAFilter::gamma_flt_t, 537
phase_div_2pi
sine_t, 912
phase_gains
MHASignal::subsample_delay_t, 808
phase_increment_div_2pi
sine_cfg_t, 910
phasemode
fshift_hilbert::frequency_translator_t, 339
phasemodel
MHAOvlFilter::overlap_save_filterbank_←t::vars_t, 631
PI
ADM, 81
hann.cpp, 985
pid_mon
mhaserver_t, 763
pinchannels
fw_vars_t, 349
pink
speechnoise_t, 925
pipe
MHA_TCP::Async_Notify, 469
pitch
plingploing::if_t, 867
pitch_
plingploing::plingploing_t, 869
pitch_set_first
timoConfig, 943
pitch_set_first_AC
timo_AC, 938
pitch_set_last
timoConfig, 943
pitch_set_last_AC
timo_AC, 938
plan_spec2analytic
fshift_hilbert::hilbert_shifter_t, 341

1174
plateau
MHAOvlFilter::fftfb_vars_t, 620
playback
MHASignal::loop_wavefragment_t, 780,
781
playback_channels
MHASignal::loop_wavefragment_t, 781
playback_mode_t
MHASignal::loop_wavefragment_t, 779
plingploing, 128
drand, 128
plingploing.cpp, 1071
plingploing::if_t, 865
bassmod, 867
bassperiod, 868
bpm, 867
fun1_key, 867
fun1_range, 867
fun2_key, 867
fun2_range, 867
if_t, 866
level, 867
maxlen, 867
minlen, 867
patchbay, 867
pitch, 867
prepare, 866
process, 866
update, 866
plingploing::plingploing_t, 868
alph, 870
bass, 869
bassmod_, 870
bassperiod_, 870
bt, 869
cf, 869
dist, 870
dist1, 870
dur_, 869
freq, 869
fun1, 870
fun1_key, 870
fun1_range, 870
fun2, 870
fun2_key, 870
fun2_range, 870
hann1, 870
hann2, 870
len, 869
level, 870
maxlen_, 869

INDEX
minlen_, 869
pitch_, 869
plingploing_t, 869
process, 869
rms, 870
t, 869
plingploing_t
plingploing::plingploing_t, 869
plug
analysispath_if_t, 220
MHAParser::mhapluginloader_t, 684
MHAPlugin_Split::splitted_part_t, 755
multibandcompressor::interface_t, 849
testplugin::if_t, 935
plug_level
multibandcompressor::plugin_signals_t,
850
plug_output
multibandcompressor::plugin_signals_t,
850
plug_sigs
multibandcompressor::interface_t, 849
plug_t, 870
∼plug_t, 871
get_ac, 871
get_handle, 871
get_process_spec, 871
get_process_wave, 871
plug_t, 871
plugin_categories
PluginLoader::mhapluginloader_t, 885
plugin_documentation
PluginLoader::mhapluginloader_t, 885
plugin_extension
pluginbrowser_t, 874
plugin_interface_t, 872
factor, 873
patchbay, 873
plugin_interface_t, 873
prepare, 873
process, 873
scale_ch, 873
update_cfg, 873
plugin_macro
latex_doc_t, 394
plugin_paths
fw_t, 347
plugin_signals_t
multibandcompressor::plugin_signals_t,
850
plugin_t
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
MHAPlugin::plugin_t, 730
PluginLoader, 128
mhaconfig_compare, 129
mhastrdomain, 129
PluginLoader::config_file_splitter_t, 876
config_file_splitter_t, 876
configfile, 877
configname, 877
get_configfile, 877
get_configname, 876
get_libname, 877
get_origname, 877
libname, 877
origname, 877
PluginLoader::fourway_processor_t, 877
∼fourway_processor_t, 878
parse, 880
prepare, 880
process, 878, 879
release, 880
PluginLoader::mhapluginloader_t, 880
∼mhapluginloader_t, 882
ac, 884
b_check_version, 885
b_is_prepared, 885
cf_input, 885
cf_output, 885
get_categories, 884
get_documentation, 884
getfullname, 883
has_parser, 883
has_process, 883
input_domain, 883
is_prepared, 884
lib_data, 884
lib_err, 884
lib_handle, 884
MHADestroy_cb, 884
MHAGetVersion_cb, 884
MHAInit_cb, 884
MHAPrepare_cb, 884
MHAProc_spec2spec_cb, 884
MHAProc_spec2wave_cb, 885
MHAProc_wave2spec_cb, 884
MHAProc_wave2wave_cb, 884
MHARelease_cb, 884
MHASet_cb, 885
MHAStrError_cb, 885
mha_test_struct_size, 884
mhapluginloader_t, 882
output_domain, 883
© 2005-2019 HörTech gGmbH, Oldenburg

1175
parse, 882
plugin_categories, 885
plugin_documentation, 885
prepare, 883
process, 883
release, 883
resolve_and_init, 884
test_error, 884
test_version, 884
pluginbrowser.cpp, 1072
pluginbrowser.h, 1072
pluginbrowser_t, 873
add_plugin, 874
add_plugins, 874
clear_plugins, 874
get_paths, 874
get_plugins, 874
library_paths, 874
p, 874
plugin_extension, 874
pluginbrowser_t, 874
plugins, 874
scan_plugin, 874
scan_plugins, 874
plugindescription_t, 875
categories, 875
documentation, 875
fullname, 875
name, 875
queries, 875
query_cmds, 875
spec2spec, 875
spec2wave, 875
wave2spec, 875
wave2wave, 875
pluginloader_t, 885
∼pluginloader_t, 886
pluginloader_t, 886
plugins
fw_t, 347
pluginbrowser_t, 874
plugloader
bbcalib_interface_t, 229
db_if_t, 251
db_t, 252
MHAPlugin_Resampling::resampling_if←_t, 734
MHAPlugin_Resampling::resampling_t,
736
overlapadd::overlapadd_if_t, 861
smoothgains_bridge::overlapadd_if_←-

1176
t, 914
plugname
latex_doc_t, 394
MHAParser::mhapluginloader_t, 684
plugname_name_
MHAParser::mhapluginloader_t, 684
plugs
altplugs_t, 216
plugs_t
mhachain::plugs_t, 502
pmode
calibrator_runtime_layer_t, 231
poll
mha_rt_fifo_t, 463
poll_1
mha_rt_fifo_t, 463
poll_config
MHAPlugin::config_t, 726
polyphase_resampling_t
MHAFilter::polyphase_resampling_t, 561
pool
acPooling_wave_config, 164
pool_name
acPooling_wave, 162
pooling_ind
acPooling_wave_config, 164
pooling_option
acPooling_wave_config, 164
pooling_size
acPooling_wave_config, 164
pooling_type
acPooling_wave, 162
pooling_wndlen
acPooling_wave, 162
port
ac2osc_t, 146
MHA_TCP::Server, 483
MHAJack::port_t, 602
mhaserver_t, 763
port_t
MHAJack::port_t, 600, 601
portaudio_callback
MHAIOPortAudio.cpp, 1059, 1060
MHAIOPortAudio::io_portaudio_t, 587
portaudio_stream
MHAIOPortAudio::io_portaudio_t, 587
portnames_in
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 581
portnames_out
MHAIOJack::io_jack_t, 577

INDEX
MHAIOJackdb::io_jack_t, 581
ports_in_all
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 582
ports_in_physical
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 582
ports_out_all
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 582
ports_out_physical
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 582
ports_parser
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 582
pos
addsndfile::level_adapt_t, 184
cfg_t, 236
fader_wave::level_adapt_t, 323
MHAJack::client_avg_t, 590
MHAJack::client_noncont_t, 592
MHASignal::async_rmslevel_t, 765
MHASignal::delay_spec_t, 766
MHASignal::delay_t, 768
MHASignal::delay_wave_t, 769
MHASignal::loop_wavefragment_t, 781
posix_threads_t
MHAPlugin_Split::posix_threads_t, 744
posixthreads
split.cpp, 1079
postscale
overlapadd::overlapadd_if_t, 861
postwindow
spec2wave_t, 923
postwnd
overlapadd::overlapadd_t, 863
powSpec
timoConfig, 943
power
MHASignal::waveform_t, 820
powersum
dc::dc_t, 256
dc::dc_vars_t, 258
powspec
MHASignal::waveform_t, 821
pred_err_delay
prediction_error, 889
prediction_error, 886
∼prediction_error, 887
c, 888
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
delay_d, 889
delay_w, 889
gains, 888
lpc_order, 889
n_no_update, 889
name_e, 888
name_f, 888
name_lpc, 888
ntaps, 888
patchbay, 889
pred_err_delay, 889
prediction_error, 887
prepare, 888
process, 888
release, 888
rho, 888
update_cfg, 888
prediction_error.cpp, 1072
INSERT_PATCH, 1072
make_friendly_number_by_limiting, 1072
PATCH_VAR, 1072
prediction_error.h, 1072
prediction_error_config, 889
∼prediction_error_config, 890
ac, 890
channels, 891
EPrew, 892
F, 891
F_Uflt, 891
frames, 890
insert, 890
iter, 891
n_no_update_, 891
name_d_, 891
name_lpc_, 891
no_iter, 891
ntaps, 890
prediction_error_config, 890
process, 890
Pu, 891
s_E_pred_err_delay, 891
s_LPC, 891
s_U_delay, 891
s_U_delayflt, 891
s_Usmpl, 892
s_Wflt, 891
s_Y_delay, 891
s_Y_delayflt, 891
s_E, 891
s_U, 891
s_W, 891
© 2005-2019 HörTech gGmbH, Oldenburg

1177
smpl, 892
UPrew, 892
UPrewW, 892
UbufferPrew, 891
v_G, 891
YPrew, 892
prefix
wavrec_t, 955
prefix_
MHAParser::mhapluginloader_t, 684
prefix_names_AC
acConcat_wave, 153
prepare
ac2lsl::ac2lsl_t, 132
ac2osc_t, 146
ac2wave_if_t, 149
acConcat_wave, 153
acPooling_wave, 161
acSteer, 173
acTransform_wave, 177
acmon::acmon_t, 158
acsave::acsave_t, 166
addsndfile::addsndfile_if_t, 181
adm_if_t, 196
altplugs_t, 214
analysispath_if_t, 220
bbcalib_interface_t, 229
calibrator_t, 232
coherence::cohflt_if_t, 238
combc_if_t, 244
cpuload_t, 248
db_if_t, 250
dc::dc_if_t, 254
dc_simple::dc_if_t, 264
delay::interface_t, 274
delaysum::delaysum_if_t, 276
doasvm_classification, 280
doasvm_feature_extraction, 284
droptect_t, 288
ds_t, 291
example1_t, 304
example2_t, 307
example3_t, 310
example4_t, 314
example6_t, 317
fader_if_t, 319
fader_wave::fader_wave_if_t, 321
fftfbpow::fftfbpow_interface_t, 325
fftfilterbank::fftfb_interface_t, 329
fshift::fshift_t, 335
fshift_hilbert::frequency_translator_t, 338

1178
fw_t, 345
gain::gain_if_t, 351
gtfb_analyzer::gtfb_analyzer_t, 357
identity_t, 360
io_alsa_t, 363, 364
io_file_t, 367
io_lib_t, 370
io_parser_t, 373
io_tcp_sound_t, 386
io_tcp_t, 390
lpc, 396
lpc_bl_predictor, 399
lpc_burglattice, 404
MHAIOJack::io_jack_t, 575
MHAIOJackdb::io_jack_t, 580
MHAJack::client_t, 595, 596
MHAParser::mhapluginloader_t, 683
MHAPlugin::plugin_t, 730
MHAPlugin_Resampling::resampling_if←_t, 734
MHAPlugin_Split::splitted_part_t, 754
MHATableLookup::linear_table_t, 827
matrixmixer::matmix_t, 411
mhachain::chain_base_t, 499
mhachain::plugs_t, 502
multibandcompressor::interface_t, 848
nlms_t, 852
noise_t, 854
noisePowProposedScale::interface_t, 856
overlapadd::overlapadd_if_t, 860
plingploing::if_t, 866
plugin_interface_t, 873
PluginLoader::fourway_processor_t, 880
PluginLoader::mhapluginloader_t, 883
prediction_error, 888
rmslevel_if_t, 893
route::interface_t, 896
save_spec_t, 902
save_wave_t, 903
shadowfilter_begin::shadowfilter_begin←_t, 906
shadowfilter_end::shadowfilter_end_←t, 909
sine_t, 911
smoothgains_bridge::overlapadd_if_←t, 913
softclip_t, 917
spec2wave_if_t, 921
steerbf, 927
testplugin::if_t, 935
timoSmooth, 946

INDEX
us_t, 948
wave2spec_if_t, 950
wavrec_t, 954
prepare_
iirfilter_t, 361
MHAPlugin::plugin_t, 731
MHAPlugin_Split::split_t, 749
prepare_impl
MHAJack::client_t, 597
prepare_vars
fw_t, 347
prepared
ac2wave_if_t, 149
altplugs_t, 216
calibrator_t, 233
dc_simple::dc_if_t, 265
example3_t, 311
example4_t, 315
fader_wave::fader_wave_if_t, 321
fftfilterbank::fftfb_interface_t, 330
gtfb_analyzer::gtfb_analyzer_t, 357
mhachain::plugs_t, 502
route::interface_t, 896
timoSmooth, 947
prereadaccess
MHAParser::base_t, 642
prescale
overlapadd::overlapadd_if_t, 861
preset
dc::dc_vars_t, 259
dc_simple::dc_if_t, 265
prewnd
overlapadd::overlapadd_t, 863
print_ac
analysemhaplugin.cpp, 967
print_plugin_references
generatemhaplugindoc.cpp, 982
prior_q
timo_params, 940
timoSmooth, 947
priorFact
noisePowProposedScale::noisePow←Proposed, 859
timoConfig, 943
priority
analysepath_t, 218
analysispath_if_t, 220
io_alsa_t, 364
MHAPlugin_Split::posix_threads_t, 746
prob_bias
acPooling_wave, 162
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
prob_bias_func
acPooling_wave_config, 164
proc
MHAJack::client_avg_t, 590
MHAJack::client_noncont_t, 592
proc_1
smoothgains_bridge::smoothspec_←wrap_t, 915
proc_2
smoothgains_bridge::smoothspec_←wrap_t, 915
proc_cnt
mhachain::plugs_t, 503
proc_err
io_tcp_fwcb_t, 378
proc_error
fw_t, 348
proc_error_string
fw_t, 348
proc_event
io_alsa_t, 364
io_file_t, 368
io_parser_t, 374
io_tcp_fwcb_t, 377
MHAIOJackdb::io_jack_t, 581
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 598
proc_handle
io_alsa_t, 364
io_file_t, 368
io_parser_t, 374
io_tcp_fwcb_t, 377
MHAIOJackdb::io_jack_t, 581
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 598
proc_lib
fw_t, 348
proc_name
fw_t, 347
proc_ramp
altplugs_t, 215
proc_thread
io_alsa_t, 364
proc_wave
doasvm_feature_extraction_config, 286
process
ADM::ADM, 189
ADM::Delay, 192
ADM::Linearphase_FIR, 194
ac2lsl::ac2lsl_t, 132
ac2lsl::cfg_t, 135
© 2005-2019 HörTech gGmbH, Oldenburg

1179
ac2osc_t, 146
ac2wave_if_t, 149
ac2wave_t, 150
acConcat_wave, 153
acConcat_wave_config, 154
acPooling_wave, 161
acPooling_wave_config, 163
acSteer, 173
acTransform_wave, 177
acTransform_wave_config, 179
acmon::acmon_t, 159
acsave::acsave_t, 166, 167
addsndfile::addsndfile_if_t, 181
adm_if_t, 196
altplugs_t, 215
analysispath_if_t, 220
bbcalib_interface_t, 229
calibrator_runtime_layer_t, 230
calibrator_t, 232
cfg_t, 236
coherence::cohflt_if_t, 238
coherence::cohflt_t, 240
combc_if_t, 244
combc_t, 245
cpuload_t, 248
db_if_t, 250
dc::dc_if_t, 254
dc::dc_t, 256
dc_simple::dc_if_t, 264, 265
dc_simple::dc_t, 267
dc_simple::level_smoother_t, 272
delay::interface_t, 274
delaysum::delaysum_if_t, 276
delaysum::delaysum_t, 278
doasvm_classification, 280
doasvm_classification_config, 282
doasvm_feature_extraction, 284
doasvm_feature_extraction_config, 286
droptect_t, 288
ds_t, 291
example1_t, 305
example2_t, 307
example3_t, 311
example4_t, 314
example5_t, 316
example6_t, 317
fader_if_t, 319
fader_wave::fader_wave_if_t, 321
fftfbpow::fftfbpow_interface_t, 325
fftfilterbank::fftfb_interface_t, 329
fftfilterbank::fftfb_plug_t, 331

1180
fshift::fshift_config_t, 333
fshift::fshift_t, 335
fshift_hilbert::frequency_translator_t, 338
fshift_hilbert::hilbert_shifter_t, 341
fw_t, 346
gain::gain_if_t, 351
gtfb_analyzer::gtfb_analyzer_t, 357
identity_t, 359, 360
iirfilter_t, 361
io_alsa_t, 364
io_tcp_fwcb_t, 376
lpc, 396
lpc_bl_predictor, 399
lpc_bl_predictor_config, 401
lpc_burglattice, 404
lpc_burglattice_config, 405
lpc_config, 407
MHAFilter::partitioned_convolution_t, 556
MHAFilter::thirdoctave_analyzer_t, 569
MHAParser::mhapluginloader_t, 683, 684
MHAPlugin_Resampling::resampling_if←_t, 734
MHAPlugin_Resampling::resampling_t,
735
MHAPlugin_Split::domain_handler_t, 740
MHAPlugin_Split::split_t, 749
MHAPlugin_Split::uni_processor_t, 760
MHASignal::async_rmslevel_t, 765
MHASignal::delay_spec_t, 766
MHASignal::delay_t, 767
MHASignal::delay_wave_t, 769
MHASignal::subsample_delay_t, 808
matrixmixer::cfg_t, 409
matrixmixer::matmix_t, 411
mha_dblbuf_t, 435
mhachain::chain_base_t, 498, 499
mhachain::plugs_t, 502
multibandcompressor::interface_t, 848
nlms_t, 852
noise_t, 854
noisePowProposedScale::interface_t, 856
noisePowProposedScale::noisePow←Proposed, 858
overlapadd::overlapadd_if_t, 861
plingploing::if_t, 866
plingploing::plingploing_t, 869
plugin_interface_t, 873
PluginLoader::fourway_processor_t, 878,
879
PluginLoader::mhapluginloader_t, 883
prediction_error, 888

INDEX
prediction_error_config, 890
rmslevel_if_t, 893
rmslevel_t, 894
route::interface_t, 896
route::process_t, 897
rt_nlms_t, 899
save_spec_t, 902
save_wave_t, 903
shadowfilter_begin::cfg_t, 904
shadowfilter_begin::shadowfilter_begin←_t, 906
shadowfilter_end::cfg_t, 907
shadowfilter_end::shadowfilter_end_←t, 909
sine_t, 911
smoothgains_bridge::overlapadd_if_←t, 913
softclip_t, 917
softclipper_t, 918
spec2wave_if_t, 921
spec2wave_t, 922
steerbf, 927
steerbf_config, 929
testplugin::if_t, 935
timoConfig, 942
timoSmooth, 945
us_t, 948
wave2spec_if_t, 950
wave2spec_t, 952
wavrec_t, 954
wavwriter_t, 956
process_frame
io_parser_t, 374
process_t
route::process_t, 897
ProcessMutex
analysepath_t, 218
processing_done
MHAPlugin_Split::posix_threads_t, 746
processor
MHAPlugin_Split::domain_handler_t, 741
MHAPlugin_Split::thread_platform_t, 758
prof_algos
mhachain::plugs_t, 503
prof_cfg
mhachain::plugs_t, 503
prof_init
mhachain::plugs_t, 503
prof_load_con
mhachain::plugs_t, 503
prof_prepare
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
mhachain::plugs_t, 503
prof_process
mhachain::plugs_t, 503
prof_process_load
mhachain::plugs_t, 503
prof_process_tt
mhachain::plugs_t, 503
prof_release
mhachain::plugs_t, 503
prof_tt_con
mhachain::plugs_t, 503
profiling
mhachain::plugs_t, 503
provoke_inner_error
mha_dblbuf_t, 435
provoke_outer_error
mha_dblbuf_t, 435
psrate
fw_vars_t, 349
Pu
prediction_error_config, 891
rt_nlms_t, 899
push
MHASignal::stat_t, 806
mha_rt_fifo_t, 464
push_config
MHAPlugin::config_t, 726
put_signal
MHAPlugin_Split::domain_handler_t, 739
pwinner_out
MHAIOJackdb::io_jack_t, 582

1181

query_dump
MHAParser::base_t, 638
MHAParser::monitor_t, 687
MHAParser::parser_t, 691
query_entries
MHAParser::base_t, 638
MHAParser::parser_t, 691
query_help
MHAParser::base_t, 640
query_id
MHAParser::base_t, 640
query_listids
MHAParser::base_t, 640
MHAParser::parser_t, 692
query_map_t
MHAParser, 111
query_perm
MHAParser::base_t, 639
MHAParser::monitor_t, 687
MHAParser::variable_t, 701
query_range
MHAParser::base_t, 639
MHAParser::kw_t, 671
MHAParser::range_var_t, 694
query_readfile
MHAParser::base_t, 639
MHAParser::parser_t, 691
query_savefile
MHAParser::base_t, 639
MHAParser::parser_t, 691
query_savefile_compact
MHAParser::base_t, 640
q
MHAParser::parser_t, 692
noisePowProposedScale::interface_t, 857
query_savemons
q_high
MHAParser::base_t, 640
timoConfig, 942
MHAParser::parser_t, 692
q_low
query_subst
timoConfig, 942
MHAParser::base_t, 640
quant
query_t
calibrator_runtime_layer_t, 230
MHAParser, 111
quantile
query_type
MHASignal, 123
MHAParser::base_t, 639
quantizer_t
MHAParser::bool_mon_t, 645
MHASignal::quantizer_t, 792
MHAParser::bool_t, 647
queries
MHAParser::complex_mon_t, 653
MHAParser::base_t, 642
MHAParser::complex_t, 655
plugindescription_t, 875
MHAParser::float_mon_t, 659
query_addsubst
MHAParser::float_t, 661
MHAParser::base_t, 640
MHAParser::int_mon_t, 663
query_cmds
MHAParser::int_t, 666
MHAParser::base_t, 640
MHAParser::kw_t, 671
plugindescription_t, 875
© 2005-2019 HörTech gGmbH, Oldenburg

1182
MHAParser::mcomplex_mon_t, 673
MHAParser::mcomplex_t, 675
MHAParser::mfloat_mon_t, 677
MHAParser::mfloat_t, 679
MHAParser::mint_mon_t, 686
MHAParser::parser_t, 691
MHAParser::string_mon_t, 697
MHAParser::string_t, 699
MHAParser::vcomplex_mon_t, 704
MHAParser::vcomplex_t, 706
MHAParser::vfloat_mon_t, 708
MHAParser::vfloat_t, 710
MHAParser::vint_mon_t, 712
MHAParser::vint_t, 714
MHAParser::vstring_mon_t, 716
MHAParser::vstring_t, 718
query_val
MHAParser::base_t, 639
MHAParser::bool_mon_t, 645
MHAParser::bool_t, 647
MHAParser::complex_mon_t, 653
MHAParser::complex_t, 655
MHAParser::float_mon_t, 659
MHAParser::float_t, 661
MHAParser::int_mon_t, 663
MHAParser::int_t, 666
MHAParser::kw_t, 671
MHAParser::mcomplex_mon_t, 673
MHAParser::mcomplex_t, 675
MHAParser::mfloat_mon_t, 677
MHAParser::mfloat_t, 679
MHAParser::mint_mon_t, 686
MHAParser::parser_t, 692
MHAParser::string_mon_t, 697
MHAParser::string_t, 699
MHAParser::vcomplex_mon_t, 704
MHAParser::vcomplex_t, 706
MHAParser::vfloat_mon_t, 708
MHAParser::vfloat_t, 710
MHAParser::vint_mon_t, 712
MHAParser::vint_t, 714
MHAParser::vstring_mon_t, 716
MHAParser::vstring_t, 718
query_version
MHAParser::base_t, 640
quit
fw_t, 346
R
AuditoryProfile::parser_t, 223
AuditoryProfile::profile_t, 227
lpc_config, 408

INDEX
MHA_TCP::OS_EVENT_TYPE, 480
r
mha_real_test_array_t, 460
RUNNING
MHA_TCP::Thread, 488
rad2smp
Vector and matrix processing toolbox, 46
ramp_a
hanning_ramps_t, 358
ramp_b
hanning_ramps_t, 358
ramp_begin
MHAWindow::base_t, 836
ramp_counter
altplugs_t, 216
ramp_end
MHAWindow::base_t, 836
ramp_len
altplugs_t, 216
ramplen
addsndfile::addsndfile_if_t, 182
altplugs_t, 216
fader_wave::fader_wave_if_t, 321
spec2wave_if_t, 921
ramps
spec2wave_t, 923
range
Vector and matrix processing toolbox, 42
range_var_t
MHAParser::range_var_t, 694
ratio
ds_t, 291
us_t, 948
raw_p_max_name
acTransform_wave, 178
acTransform_wave_config, 179
raw_p_name
acPooling_wave_config, 164
acTransform_wave, 178
acTransform_wave_config, 179
rb_f_t
mha_ruby.cpp, 1025
rdata
MHASignal::matrix_t, 790
mha_audio_t, 429
re
mha_complex_t, 431
read
alsa_base_t, 207
alsa_t, 212
MHAFilter::blockprocessing_polyphase←© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
_resampling_t, 519
MHAFilter::polyphase_resampling_t, 562
MHAJack::port_t, 601
mha_drifter_fifo_t, 441
mha_fifo_lw_t, 449
mha_fifo_t, 455
read_bytes
MHA_TCP::Connection, 476
read_event
MHA_TCP::Connection, 477
read_get_cpu_load
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 581
read_get_scheduler
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 581
read_get_xruns
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 581
read_levels
calibrator_t, 233
read_line
MHA_TCP::Connection, 475
read_modified
dc_simple::dc_if_t, 265
read_ptr
mha_fifo_t, 456
readable_frames
MHAFilter::polyphase_resampling_t, 562
readaccess
MHAParser::base_t, 642
reader_started
mha_drifter_fifo_t, 443
reader_xruns_in_succession
mha_drifter_fifo_t, 444
reader_xruns_since_start
mha_drifter_fifo_t, 444
reader_xruns_total
mha_drifter_fifo_t, 443
real
MHASignal::matrix_t, 786–788
rear_channel
adm_rtconfig_t, 200
rear_channels
adm_if_t, 197
adm_rtconfig_t, 200
rec_frames
acsave::cfg_t, 169
received_group
mhaserver_t, 762
receiver
© 2005-2019 HörTech gGmbH, Oldenburg

1183
MHAEvents::connector_t, 510
reciprocal
Complex arithmetics in the openMHA, 68
reclen
acsave::acsave_t, 167
recmode
acmon::acmon_t, 159
reconnect_inports
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 580
reconnect_outports
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 580
record
wavrec_t, 955
rect
MHAOvlFilter::ShapeFun, 106
MHAWindow, 126
rect_t
MHAWindow::rect_t, 842
relative
MHASignal::loop_wavefragment_t, 779
release
ac2lsl::ac2lsl_t, 132
ac2osc_t, 146
ac2wave_if_t, 149
acConcat_wave, 153
acPooling_wave, 162
acSteer, 173
acTransform_wave, 177
acmon::acmon_t, 158
acsave::acsave_t, 166
addsndfile::addsndfile_if_t, 181
adm_if_t, 196
altplugs_t, 214
analysispath_if_t, 220
bbcalib_interface_t, 229
calibrator_t, 232
coherence::cohflt_if_t, 238
db_if_t, 250
dc_simple::dc_if_t, 264
delaysum::delaysum_if_t, 276
doasvm_classification, 280
doasvm_feature_extraction, 284
droptect_t, 288
ds_t, 291
example1_t, 304
example2_t, 307
example3_t, 311
example4_t, 314
fader_wave::fader_wave_if_t, 321

1184
fftfilterbank::fftfb_interface_t, 329
fshift::fshift_t, 336
fshift_hilbert::frequency_translator_t, 338
fw_t, 346
gain::gain_if_t, 351
identity_t, 360
io_alsa_t, 363
io_file_t, 367
io_lib_t, 371
io_parser_t, 374
io_tcp_sound_t, 386
io_tcp_t, 390
lpc, 396
lpc_bl_predictor, 399
lpc_burglattice, 404
MHAIOJack::io_jack_t, 575
MHAIOJackdb::io_jack_t, 580
MHAJack::client_t, 596
MHAParser::mhapluginloader_t, 683
MHAPlugin::plugin_t, 731
MHAPlugin_Resampling::resampling_if←_t, 734
MHAPlugin_Split::splitted_part_t, 754
mhachain::chain_base_t, 499
mhachain::plugs_t, 502
multibandcompressor::interface_t, 848
nlms_t, 852
overlapadd::overlapadd_if_t, 860
PluginLoader::fourway_processor_t, 880
PluginLoader::mhapluginloader_t, 883
prediction_error, 888
route::interface_t, 896
smoothgains_bridge::overlapadd_if_←t, 913
steerbf, 928
timoSmooth, 946
us_t, 948
wavrec_t, 954
release_
iirfilter_t, 361
MHAPlugin::plugin_t, 731
MHAPlugin_Split::split_t, 749
release_mutex
mha_fifo_posix_threads_t, 451
mha_fifo_thread_platform_t, 459
remove_abandonned
mha_rt_fifo_t, 464
remove_all
mha_rt_fifo_t, 464
remove_all_cfg
MHAPlugin::config_t, 728

INDEX
remove_item
MHAParser::parser_t, 690, 691
remove_lock
mhamain.cpp, 1067
remove_ref
algo_comm_t, 203
MHAKernel::algo_comm_class_t, 604
remove_var
algo_comm_t, 202
MHAKernel::algo_comm_class_t, 604
repl_list
MHAParser::base_t, 642
repl_list_t
MHAParser::base_t, 637
replace
MHAParser::base_t::replace_t, 643
MHASignal::loop_wavefragment_t, 779
replace_
cfg_t, 236
replace_t
MHAParser::base_t::replace_t, 643
resampled_num_frames
addsndfile, 80
resampled_soundfile_t
addsndfile::resampled_soundfile_t, 185
resampling
MHAFilter::blockprocessing_polyphase←_resampling_t, 519
resampling.cpp, 1073
resampling_factors
MHAFilter, 97
resampling_filter_t
MHAFilter::resampling_filter_t, 564
resampling_if_t
MHAPlugin_Resampling::resampling_if←_t, 734
resampling_t
MHAPlugin_Resampling::resampling_t,
735
resamplingmode
addsndfile::addsndfile_if_t, 182
reset
droptect_t, 289
MHA_TCP::Async_Notify, 469
MHA_TCP::Wakeup_Event, 494
reset_state
MHAFilter::gamma_flt_t, 537
resize
MHAFilter::iir_filter_t, 542
resolution
acTransform_wave_config, 179
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
resolve
dynamiclib_t, 292
resolve_and_init
PluginLoader::mhapluginloader_t, 884
resolve_checked
dynamiclib_t, 292
result
cpuload_t, 249
resynthesis_gain
MHAFilter::gamma_flt_t, 538
ret_size
MHAParser::c_ifc_parser_t, 650
return_imag
fftfilterbank::fftfb_interface_t, 330
return_imag_
fftfilterbank::fftfb_plug_t, 331
return_value
MHA_TCP::Thread, 489
return_wave
wave2spec_if_t, 950
retv
MHAParser::c_ifc_parser_t, 650
rewind
MHASignal::loop_wavefragment_t, 781
rho
nlms_t, 852
prediction_error, 888
ringbuffer
MHAFilter::polyphase_resampling_t, 563
ringbuffer_t
MHASignal::ringbuffer_t, 795
rm_parent_on_remove
MHAParser::base_t, 641
rms
MHASignal::loop_wavefragment_t, 779
plingploing::plingploing_t, 870
rms_limit40
MHASignal::loop_wavefragment_t, 779
rmsdb
example6_t, 317
rmslevel
calibrator_variables_t, 234
dc::dc_t, 256
MHASignal::async_rmslevel_t, 764
Vector and matrix processing toolbox, 57,
58
rmslevel.cpp, 1073
rmslevel_if_t, 892
name, 893
prepare, 893
process, 893
© 2005-2019 HörTech gGmbH, Oldenburg

1185
rmslevel_if_t, 893
rmslevel_t, 894
fftlen, 894
insert, 894
level, 894
level_db, 894
peak, 894
peak_db, 894
process, 894
rmslevel_t, 894
rmslevelmeter
transducers.cpp, 1083
root
mha_rt_fifo_t, 464
rotated_i
acTransform_wave_config, 179
rotated_p
acTransform_wave_config, 179
rotated_p_max_name
acTransform_wave, 178
rotated_p_name
acTransform_wave, 178
route, 129
route.cpp, 1073
route::interface_t, 895
algo, 896
cfac, 896
cfin, 896
cfout, 896
interface_t, 896
patchbay, 896
prepare, 896
prepared, 896
process, 896
release, 896
route_ac, 896
route_out, 896
stopped, 896
update, 896
route::process_t, 897
process, 897
process_t, 897
sout, 897
sout_ac, 897
wout, 897
wout_ac, 897
route_ac
route::interface_t, 896
route_out
route::interface_t, 896
rows

1186
acsave::mat4head_t, 169
rt_nlms_t, 898
∼rt_nlms_t, 899
ac, 899
channels, 899
F, 899
frames, 899
fu, 900
fu_previous, 900
fuflt, 900
insert, 899
n_no_update_, 900
name_d_, 900
name_e_, 900
name_u_, 900
no_iter, 900
ntaps, 899
P_Sum, 900
process, 899
Pu, 899
rt_nlms_t, 899
s_E, 900
U, 899
Uflt, 899
y_previous, 900
rt_process
analysepath_t, 218
rt_strict
ac2lsl::ac2lsl_t, 133
ac2osc_t, 147
rtcalibrator
transducers.cpp, 1083
rtmem
ac2osc_t, 147
run
MHA_TCP::Thread, 489
mhaserver_t, 762
runtime configuration, 5
rval
MHAParser::expression_t, 657
s_E_pred_err_delay
prediction_error_config, 891
s_LPC
prediction_error_config, 891
s_U_delay
prediction_error_config, 891
s_U_delayflt
prediction_error_config, 891
s_Usmpl
prediction_error_config, 892
s_Wflt

INDEX
prediction_error_config, 891
s_Y_delay
prediction_error_config, 891
s_Y_delayflt
prediction_error_config, 891
s_b
lpc_bl_predictor_config, 402
lpc_burglattice_config, 406
s_E
prediction_error_config, 891
rt_nlms_t, 900
s_f
lpc_bl_predictor_config, 402
lpc_burglattice_config, 406
s_file_in
io_file_t, 368
s_in
io_file_t, 368
io_parser_t, 374
io_tcp_sound_t, 388
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 599
s_out
coherence::cohflt_t, 241
combc_t, 245
fftfilterbank::fftfb_plug_t, 331
gtfb_analyzer::gtfb_analyzer_cfg_t, 355
io_file_t, 368
io_parser_t, 374
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 599
s_U
prediction_error_config, 891
s_W
prediction_error_config, 891
sInput
MHAFilter::fftfilter_t, 527
SOCKET_ERROR
mha_tcp.cpp, 1040
SOCKET
MHA_TCP, 92
mha_tcp.cpp, 1040
SPP
timo_AC, 938
START_BETA
ADM, 81
STRERROR
MHA_TCP, 92
STRLEN
mha_errno.c, 999
sWeights
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
MHAFilter::fftfilter_t, 527
safe_div
Complex arithmetics in the openMHA, 67
mha_signal.cpp, 1028
mha_signal.hh, 1037
sample
lpc_config, 408
samplerate
io_file_t, 367
io_tcp_sound_t, 387
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 598
samples_AC
acConcat_wave, 153
samplingrate
MHAOvlFilter::fftfb_t, 618
save_m
acsave::save_var_t, 171
save_mat4
acsave::save_var_t, 170
save_spec.cpp, 1073
save_spec_t, 901
basename, 902
prepare, 902
process, 902
save_spec_t, 901
save_txt
acsave::save_var_t, 170
save_var_t
ac2lsl::save_var_t, 138
ac2lsl::save_var_t< mha_complex_t >,
141
acsave::save_var_t, 170
save_vars
acmon::acmon_t, 159
save_wave.cpp, 1073
save_wave_t, 902
basename, 903
prepare, 903
process, 903
save_wave_t, 903
saveas_mat4
MHASignal, 123, 124
sc
MHASignal::hilbert_fftw_t, 776
spec2wave_t, 923
scale
example5_t, 316
MHASignal, 121
MHASignal::fft_t, 775
MHASignal::spectrum_t, 804
© 2005-2019 HörTech gGmbH, Oldenburg

1187
MHASignal::waveform_t, 821
scale_ch
example2_t, 308
example3_t, 311
example4_t, 315
plugin_interface_t, 873
scale_channel
MHASignal::spectrum_t, 805
MHASignal::waveform_t, 821
scale_frame
MHASignal::waveform_t, 822
scale_fun_t
MHAOvlFilter, 103
scale_var_t
MHAOvlFilter::scale_var_t, 633
scalefac
MHATableLookup::linear_table_t, 828
scaler_t
gain::scaler_t, 352
scan_dir
addsndfile::addsndfile_if_t, 182
scan_plugin
pluginbrowser_t, 874
scan_plugins
pluginbrowser_t, 874
scheduler
analysepath_t, 218
MHAPlugin_Split::posix_threads_t, 746
schroeder_t
MHASignal::schroeder_t, 799
search_pattern
addsndfile::addsndfile_if_t, 182
search_result
addsndfile::addsndfile_if_t, 182
sec2smp
Vector and matrix processing toolbox, 44
select_plug
altplugs_t, 216
select_source
MHAMultiSrc::base_t, 608
selected_plug
altplugs_t, 216
send_frame
ac2lsl::save_var_base_t, 136
ac2lsl::save_var_t, 140
ac2lsl::save_var_t< mha_complex_t >,
142
send_osc_float
ac2osc_t, 146
Server
MHA_TCP::Server, 481, 482

1188
server
io_tcp_t, 391
server_fragsize
MHAIOJackdb::io_jack_t, 582
server_port_open
io_tcp_parser_t, 383
server_srate
MHAIOJackdb::io_jack_t, 582
servername
MHAIOJack::io_jack_t, 576
MHAIOJackdb::io_jack_t, 581
serversocket
MHA_TCP::Server, 483
set
Complex arithmetics in the openMHA, 63,
64
MHA_TCP::Async_Notify, 469
testplugin::config_parser_t, 933
set_announce_port
mhaserver_t, 762
set_buf_address
ac2lsl::save_var_base_t, 137
ac2lsl::save_var_t, 139
ac2lsl::save_var_t< mha_complex_t >,
142
set_channelcnt
MHAFilter::adapt_filter_t, 516
set_connected
io_tcp_parser_t, 382
set_entries
MHAParser::keyword_list_t, 668
set_errnos
io_tcp_fwcb_t, 376
set_error
mha_fifo_lw_t, 449
set_fb_pars
DynComp::dc_afterburn_t, 295
set_help
MHAParser::base_t, 641
set_id_string
MHAParser::parser_t, 692
set_index
MHAParser::keyword_list_t, 668
set_input_domain
MHAPlugin_Split::domain_handler_t, 738
set_input_portnames
MHAJack::client_t, 597
set_level
addsndfile::addsndfile_if_t, 182
fader_wave::fader_wave_if_t, 321
set_level_db

INDEX
MHASignal::loop_wavefragment_t, 781
set_level_lin
MHASignal::loop_wavefragment_t, 781
set_local_port
io_tcp_parser_t, 380
set_locate
MHAIOJackdb::io_jack_t, 581
set_max_angle_ind
parser_int_dyn, 865
set_minabs
mha_signal.cpp, 1028
mha_signal.hh, 1037
set_new_peer
io_tcp_parser_t, 382
set_node_id
MHAParser::base_t, 640
set_output_domain
MHAPlugin_Split::domain_handler_t, 738
set_output_portnames
MHAJack::client_t, 597
set_parse_cb
MHAParser::c_ifc_parser_t, 649
set_range
MHAParser::kw_t, 671
MHAParser::range_var_t, 694
set_server_port_open
io_tcp_parser_t, 381
set_state
MHAFilter::complex_bandpass_t, 521
MHAFilter::iir_ord1_real_t, 544
set_tau
MHAFilter::o1flt_lowpass_t, 550
MHAFilter::o1flt_maxtrack_t, 552
MHAFilter::o1flt_mintrack_t, 554
set_tau_attack
MHAFilter::o1_ar_filter_t, 547
set_tau_release
MHAFilter::o1_ar_filter_t, 547
set_use_jack_transport
MHAIOJackdb::io_jack_t, 581
MHAJack::client_t, 597
set_value
MHAParser::keyword_list_t, 668
set_weights
MHAFilter::complex_bandpass_t, 521
MHAFilter::gamma_flt_t, 537
set_xfun
MHATableLookup::xy_table_t, 832
set_xmax
MHATableLookup::linear_table_t, 827
set_xmin
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
MHATableLookup::linear_table_t, 826
set_xyfun
MHATableLookup::xy_table_t, 833
set_yfun
MHATableLookup::xy_table_t, 833
setchannels
dc::wideband_inhib_vars_t, 262
setlock
io_file_t, 367
MHAParser::variable_t, 701
testplugin::config_parser_t, 933
sf
MHASndFile::sf_t, 823
wavwriter_t, 956
sf_in
io_file_t, 368
sf_out
io_file_t, 368
sf_t
MHASndFile::sf_t, 823
sf_wave_t
MHASndFile::sf_wave_t, 824
sfinf_in
io_file_t, 368
sfinf_out
io_file_t, 368
shadowfilter_begin, 129
shadowfilter_begin.cpp, 1074
shadowfilter_begin::cfg_t, 903
cfg_t, 904
in_spec_copy, 904
nch, 904
ntracks, 904
out_spec, 904
process, 904
shadowfilter_begin::shadowfilter_begin_t, 905
basename, 906
nch, 906
ntracks, 906
prepare, 906
process, 906
shadowfilter_begin_t, 905
shadowfilter_begin_t
shadowfilter_begin::shadowfilter_begin←_t, 905
shadowfilter_end, 129
shadowfilter_end.cpp, 1074
shadowfilter_end::cfg_t, 906
ac, 907
cfg_t, 907
gains, 907
© 2005-2019 HörTech gGmbH, Oldenburg

1189
in_spec, 907
name, 907
nch_out, 907
nfft, 907
ntracks, 907
out_spec, 907
process, 907
shadowfilter_end::shadowfilter_end_t, 908
basename, 909
prepare, 909
process, 909
shadowfilter_end_t, 908
shadowfilter_end_t
shadowfilter_end::shadowfilter_end_←t, 908
shape
MHAOvlFilter::fftfb_t, 618
shapes
MHAOvlFilter::fftfb_vars_t, 621
shift
lpc, 397
lpc_config, 407
shifted
fshift_hilbert::hilbert_shifter_t, 341
side
mha_channel_info_t, 430
sign_t
MHASignal::schroeder_t, 799
signal
testplugin::if_t, 935
signal_counter
MHASignal, 125
signal_out
MHAPlugin_Split::split_t, 750
signal_parser_t
testplugin::signal_parser_t, 936
sin125
speechnoise_t, 925
sin1k
speechnoise_t, 925
sin250
speechnoise_t, 925
sin2k
speechnoise_t, 925
sin4k
speechnoise_t, 925
sin500
speechnoise_t, 925
sin8k
speechnoise_t, 925
sinc

1190

INDEX

irswnd, 914
MHAFilter, 97
sine.cpp, 1074
mode, 914
sine_cfg_t, 909
overlapadd_if_t, 913
amplitude, 910
patchbay, 914
channels, 910
plugloader, 914
mix, 910
prepare, 913
phase_increment_div_2pi, 910
process, 913
sine_cfg_t, 910
release, 913
sine_t, 910
update, 914
∼sine_t, 911
smoothgains_bridge::smoothspec_wrap_←t, 914
channels, 912
proc_1, 915
frequency, 912
proc_2, 915
lev, 912
mode, 912
smoothspec, 915
patchbay, 912
smoothspec_epsilon, 915
phase_div_2pi, 912
smoothspec_wrap_t, 915
prepare, 911
spec_in_copy, 915
process, 911
use_smoothspec, 915
sine_t, 911
smoothspec
update_cfg, 911
MHAFilter::smoothspec_t, 567
size
smoothgains_bridge::smoothspec_←wrap_t, 915
MHA_AC::ac2matrix_helper_t, 413
smoothspec_epsilon
MHA_AC::acspace2matrix_t, 418
smoothgains_bridge::smoothspec_←MHAKernel::algo_comm_class_t, 605
wrap_t, 915
MHASignal::matrix_t, 786
Vector and matrix processing toolbox, 48, smoothspec_t
49
MHAFilter::smoothspec_t, 566
size_t
smoothspec_wrap_t
MHAParser::keyword_list_t, 667
smoothgains_bridge::smoothspec_←wrap_t, 915
skip
smp2rad
ac2lsl::ac2lsl_t, 133
Vector and matrix processing toolbox, 45
ac2lsl::cfg_t, 135
smp2sec
ac2osc_t, 147
Vector and matrix processing toolbox, 44
skipcnt
smpl
ac2lsl::cfg_t, 135
prediction_error_config, 892
ac2osc_t, 147
sn_in
Sleep
MHAJack::client_avg_t, 590
mha_tcp.hh, 1042
slope
MHAJack::client_noncont_t, 592
softclipper_t, 918
sn_out
softclipper_variables_t, 920
MHAJack::client_avg_t, 590
slope_db
MHAJack::client_noncont_t, 593
softclip_t, 917
sndfile_t
smoothgains_bridge, 130
addsndfile::sndfile_t, 186
smoothgains_bridge.cpp, 1074
snprintf_required_length
smoothgains_bridge::overlapadd_if_t, 912
mha_error_helpers, 90
∼overlapadd_if_t, 913
snrPost1Debug
algo, 914
noisePowProposedScale::noisePow←Proposed, 858
cf_in, 914
sock_addr
cf_out, 914
MHA_TCP::Server, 483
epsilon, 914
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
sock_init_t
MHA_TCP::sock_init_t, 484
sock_initializer
MHA_TCP, 93
Sockaccept_Event
MHA_TCP::Sockaccept_Event, 484
Sockread_Event
MHA_TCP::Sockread_Event, 485
Sockwrite_Event
MHA_TCP::Sockwrite_Event, 486
softclip
calibrator_runtime_layer_t, 230
calibrator_variables_t, 234
softclip.cpp, 1075
softclip_t, 916
attack, 917
decay, 917
patchbay, 917
prepare, 917
process, 917
slope_db, 917
softclip_t, 917
start_limit, 917
tftype, 917
update, 917
softclipper_t, 917
attack, 918
clipmeter, 918
decay, 918
hardlimit, 918
linear, 918
process, 918
slope, 918
softclipper_t, 918
threshold, 918
softclipper_variables_t, 919
clipped, 920
hardlimit, 920
linear, 920
max_clipped, 920
slope, 920
softclipper_variables_t, 919
tau_attack, 919
tau_clip, 920
tau_decay, 920
threshold, 920
sort_fftw2spec
MHASignal::fft_t, 774
sort_spec2fftw
MHASignal::fft_t, 774
sound
© 2005-2019 HörTech gGmbH, Oldenburg

1191
io_tcp_t, 391
source_channel_index
MHAFilter::partitioned_convolution_t←::index_t, 559
MHAFilter::transfer_function_t, 572
source_id
ac2lsl::ac2lsl_t, 133
ac2lsl::cfg_t, 135
sout
matrixmixer::cfg_t, 409
route::process_t, 897
sout_ac
route::process_t, 897
spec2fir
MHAFilter, 97
MHAFilter::smoothspec_t, 567
spec2spec
plugindescription_t, 875
spec2wave
MHASignal::fft_t, 773
plugindescription_t, 875
spec2wave.cpp, 1075
max, 1075
min, 1075
spec2wave_if_t, 920
patchbay, 921
prepare, 921
process, 921
ramplen, 921
spec2wave_if_t, 921
update, 921
window_config, 921
spec2wave_scale
MHASignal::fft_t, 774
spec2wave_t, 922
∼spec2wave_t, 922
calc_out, 923
ft, 922
nfft, 923
npad1, 922
npad2, 923
nwndshift, 923
out_buf, 923
postwindow, 923
process, 922
ramps, 923
sc, 923
spec2wave_t, 922
write_buf, 923
spec_fader_t, 923
∼spec_fader_t, 924

1192
fr, 924
gains, 924
nch, 924
spec_fader_t, 924
spec_in
MHAPlugin_Split::domain_handler_t, 741
overlapadd::overlapadd_t, 863
wave2spec_t, 953
spec_in_copy
smoothgains_bridge::smoothspec_←wrap_t, 915
spec_out
MHAPlugin_Split::domain_handler_t, 741
MHAPlugin_Split::split_t, 751
timoConfig, 943
specSteer1
acSteer_config, 175
specSteer2
acSteer_config, 175
spectrum_t
MHA_AC::spectrum_t, 423
MHAMultiSrc::spectrum_t, 610
MHASignal::spectrum_t, 802
speechnoise
calibrator_runtime_layer_t, 231
speechnoise.cpp, 1075
bandw_correction, 1077
erb_hz_f_hz, 1077
fhz2bandno, 1077
hz2hz, 1077
NUM_ENTR_LTASS, 1076
NUM_ENTR_MHAORIG, 1076
NUM_ENTR_OLNOISE, 1076
vLTASS_combined_lev, 1078
vLTASS_female_lev, 1078
vLTASS_freq, 1077
vLTASS_male_lev, 1078
vMHAOrigFreq, 1077
vMHAOrigSpec, 1077
vOlnoiseFreq, 1078
vOlnoiseLev, 1078
speechnoise.h, 1078
speechnoise_t, 924
brown, 925
creator, 926
LTASS_combined, 925
LTASS_female, 925
LTASS_male, 925
mha, 925
noise_type_t, 925
olnoise, 925

INDEX
pink, 925
sin125, 925
sin1k, 925
sin250, 925
sin2k, 925
sin4k, 925
sin500, 925
sin8k, 925
speechnoise_t, 926
TEN_SPL_250_8k, 925
TEN_SPL_50_16k, 925
TEN_SPL, 925
white, 925
split.cpp, 1078
default_thread_platform_string, 1079
default_thread_platform_type, 1079
MHAPLUGIN_OVERLOAD_OUTDOM←AIN, 1079
posixthreads, 1079
split_t
MHAPlugin_Split::split_t, 749
splitted_part_t
MHAPlugin_Split::splitted_part_t, 753
spnoise_channels
calibrator_variables_t, 234
spnoise_level
calibrator_variables_t, 234
spnoise_mode
calibrator_variables_t, 234
spnoise_parser
calibrator_variables_t, 234
spp
timoSmooth, 947
srate
ac2lsl::cfg_t, 135
adm_if_t, 197
calibrator_variables_t, 234
MHAParser::mhaconfig_mon_t, 682
MHAPlugin_Resampling::resampling_if←_t, 734
mhaconfig_t, 505
testplugin::config_parser_t, 933
srate_
MHAFilter::gamma_flt_t, 538
srcfile
MHAParser::parser_t, 692
srcline
MHAParser::parser_t, 692
start
alsa_base_t, 207
alsa_t, 211
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
fw_t, 345
io_alsa_t, 363
io_file_t, 367
io_lib_t, 371
io_parser_t, 373
io_tcp_fwcb_t, 376
io_tcp_t, 390
MHAJack::client_t, 596
start_event
io_alsa_t, 364
io_file_t, 368
io_parser_t, 374
io_tcp_fwcb_t, 377
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 599
start_handle
io_alsa_t, 364
io_file_t, 368
io_parser_t, 374
io_tcp_fwcb_t, 378
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 599
start_limit
softclip_t, 917
start_lin
cfg_t, 236
start_new_session
wavrec_t, 954
started
fw_t, 346
io_parser_t, 374
starting
mha_drifter_fifo_t, 443
startpos
addsndfile::addsndfile_if_t, 182
startsample
io_file_t, 368
startup_zeros
mha_drifter_fifo_t, 444
stat_t
MHA_AC::stat_t, 425
MHASignal::stat_t, 806
state
fw_t, 348
gtfb_analyzer::gtfb_analyzer_cfg_t, 355
MHA_TCP::Thread, 489
MHAFilter::filter_t, 535
state_cpuload
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 582
state_parser
© 2005-2019 HörTech gGmbH, Oldenburg

1193
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 582
state_priority
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 582
state_scheduler
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 582
state_t
fw_t, 345
state_xruns
MHAIOJack::io_jack_t, 577
MHAIOJackdb::io_jack_t, 582
states
gtfb_analyzer::gtfb_analyzer_cfg_t, 354
staticgain
coherence::cohflt_t, 241
coherence::vars_t, 242
status
MHA_TCP::Wakeup_Event, 495
std
MHA_AC::stat_t, 425
std_vector_float
Vector and matrix processing toolbox, 53
std_vector_vector_complex
Vector and matrix processing toolbox, 54
std_vector_vector_float
Vector and matrix processing toolbox, 53
stdcomplex
Complex arithmetics in the openMHA, 64
steerFile
acSteer, 174
steerbf, 926
∼steerbf, 927
angle_ind, 928
angle_src, 928
bf_src, 928
patchbay, 928
prepare, 927
process, 927
release, 928
steerbf, 927
update_cfg, 928
steerbf.cpp, 1079
INSERT_PATCH, 1080
PATCH_VAR, 1080
steerbf.h, 1080
steerbf_config, 928
_steerbf, 929
∼steerbf_config, 929
ac, 929

1194
bf_src_copy, 929
bf_vec, 929
nangle, 929
nchan, 929
nfreq, 929
outSpec, 929
process, 929
steerbf_config, 929
stime
MHA_TCP, 93
stop
alsa_base_t, 207
alsa_t, 211
fw_t, 345
io_alsa_t, 363
io_file_t, 367
io_lib_t, 371
io_parser_t, 374
io_tcp_fwcb_t, 377
io_tcp_t, 390
MHAJack::client_t, 596
mha_drifter_fifo_t, 442
stop_event
io_alsa_t, 364
io_file_t, 368
io_parser_t, 374
io_tcp_fwcb_t, 377
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 599
stop_handle
io_alsa_t, 364
io_file_t, 368
io_parser_t, 374
io_tcp_fwcb_t, 378
MHAIOPortAudio::io_portaudio_t, 587
MHAJack::client_t, 599
stopped
fw_t, 346
io_file_t, 367
io_parser_t, 374
MHAJack::client_t, 598
route::interface_t, 896
store
mon_t, 844
store_frame
acsave::cfg_t, 168
acsave::save_var_t, 170
str2val
MHAParser::StrCnv, 114, 115
str2val< mha_real_t >
MHAParser::StrCnv, 114

INDEX
str_error
MHAJack::client_t, 597
strNames_AC
acConcat_wave_config, 154
strdom
analysemhaplugin.cpp, 967
latex_doc_t, 393
stream
ac2lsl::save_var_t, 140
ac2lsl::save_var_t< mha_complex_t >,
143
stream_dir
alsa_dev_par_parser_t, 209
strict_channel_match
io_file_t, 368
strict_srate_match
io_file_t, 368
stride
comm_var_t, 247
testplugin::ac_parser_t, 931
string_mon_t
MHAParser::string_mon_t, 696
string_t
MHAParser::string_t, 699
strreplace
MHAParser, 111
structVersion
MHAIOPortAudio::device_info_t, 584
subsample_delay_t
MHASignal::subsample_delay_t, 807
subsampledelay_coeff
ADM, 81
sum
MHASignal::stat_t, 806
MHASignal::waveform_t, 816, 817
sum2
MHASignal::stat_t, 806
sum_channel
MHASignal::waveform_t, 817
sumsqr
MHASignal::waveform_t, 817
sumsqr_channel
Vector and matrix processing toolbox, 59
sumsqr_frame
Vector and matrix processing toolbox, 60
svc
analysepath_t, 218
symmetry_scale
MHAOvlFilter::fspacing_t, 626
sync
mha_fifo_lw_t, 449
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
mha_fifo_thread_guard_t, 457
sysread
MHA_TCP::Connection, 473
syswrite
MHA_TCP::Connection, 474
T
MHA_TCP::OS_EVENT_TYPE, 480
t
acsave::mat4head_t, 169
mha_tictoc_t, 495
plingploing::plingploing_t, 869
tAC
timoConfig, 942
TEN_SPL_250_8k
speechnoise_t, 925
TEN_SPL_50_16k
speechnoise_t, 925
TEN_SPL
speechnoise_t, 925
table
cpuload_t, 249
table_t
MHATableLookup::table_t, 829
tail
MHAFilter::fftfilterbank_t, 531
target_channel_index
MHAFilter::partitioned_convolution_t←::index_t, 559
MHAFilter::transfer_function_t, 572
tau
coherence::vars_t, 242
droptect_t, 289
fader_if_t, 319
tau_attack
softclipper_variables_t, 919
tau_beta
adm_if_t, 197
tau_clip
softclipper_variables_t, 920
tau_decay
softclipper_variables_t, 920
tau_level
calibrator_variables_t, 234
tau_unit
coherence::vars_t, 242
tauattack
dc::dc_vars_t, 258
dc_simple::dc_vars_t, 270
taudecay
dc::dc_vars_t, 259
dc_simple::dc_vars_t, 270
© 2005-2019 HörTech gGmbH, Oldenburg

1195
taugain
DynComp::dc_afterburn_vars_t, 298
taurmslevel
dc::dc_vars_t, 258
tcp_connect_to
mha_tcp.cpp, 1040
tcp_connect_to_with_timeout
mha_tcp.cpp, 1040
tcpserver
mhaserver_t, 763
termination_request
MHAPlugin_Split::posix_threads_t, 746
test_error
io_lib_t, 371
MHAParser::c_ifc_parser_t, 649
PluginLoader::mhapluginloader_t, 884
test_fail
dc_simple, 84
test_prepare
testplugin::if_t, 935
test_process
testplugin::if_t, 935
test_version
PluginLoader::mhapluginloader_t, 884
testalsadevice.c, 1080
main, 1080
testplugin, 130
testplugin.cpp, 1080
testplugin::ac_parser_t, 930
_MHA_AC_CHAR, 931
_MHA_AC_DOUBLE, 931
_MHA_AC_FLOAT, 931
_MHA_AC_INT, 931
_MHA_AC_MHACOMPLEX, 931
_MHA_AC_MHAREAL, 931
_unknown, 931
ac_parser_t, 931
char_data, 931
complex_data, 931
data_type, 931
data_type_t, 931
do_get_var, 931
do_insert_var, 931
float_data, 931
get_var, 931
insert_var, 931
int_data, 931
num_entries, 931
patchbay, 931
stride, 931
testplugin::config_parser_t, 932

1196
channels, 933
config_parser_t, 932
domain, 933
fftlen, 933
fragsize, 933
get, 933
set, 933
setlock, 933
srate, 933
wndlen, 933
testplugin::if_t, 934
_prepare, 935
ac, 935
config_in, 935
config_out, 935
if_t, 935
patchbay, 935
plug, 935
prepare, 935
process, 935
signal, 935
test_prepare, 935
test_process, 935
testplugin::signal_parser_t, 936
input_spec, 936
input_wave, 936
output_spec, 936
output_wave, 936
signal_parser_t, 936
tftype
MHAPlugin::plugin_t, 732
softclip_t, 917
The MHA Framework interface, 27
The openMHA configuration language, 34
The openMHA Plugins (programming interface), 7
MHAPLUGIN_CALLBACKS_PREFIX, 9
MHAPLUGIN_CALLBACKS, 9
MHAPLUGIN_DOCUMENTATION, 10
The openMHA Toolbox library, 35
thefullname
MHAParser::base_t, 642
thirdoctave_analyzer_t
MHAFilter::thirdoctave_analyzer_t, 569
this_outer_out
MHASignal::doublebuffer_t, 772
thr_f
MHA_TCP::Thread, 488
Thread
MHA_TCP::Thread, 488
thread

INDEX
analysepath_t, 218
io_tcp_t, 391
MHAPlugin_Split::posix_threads_t, 746
MHAPlugin_Split::splitted_part_t, 756
thread_arg
MHA_TCP::Thread, 490
thread_attr
MHA_TCP::Thread, 489
thread_finish_event
MHA_TCP::Thread, 489
thread_func
MHA_TCP::Thread, 490
thread_handle
MHA_TCP::Thread, 489
thread_platform
MHAPlugin_Split::split_t, 750
thread_platform_t
MHAPlugin_Split::thread_platform_t, 757
thread_start
analysispath.cpp, 968
io_alsa_t, 363
MHAPlugin_Split::posix_threads_t, 745
thread_start_func
mha_tcp.cpp, 1040
thread_startup_function
MHAIOTCP.cpp, 1063
threshold
droptect_t, 289
softclipper_t, 918
softclipper_variables_t, 920
tictoc
mhachain::plugs_t, 503
timeout
MHA_TCP::OS_EVENT_TYPE, 480
MHA_TCP::Timeout_Watcher, 492
Timeout_Event
MHA_TCP::Timeout_Event, 491
Timeout_Watcher
MHA_TCP::Timeout_Watcher, 492
timeshift
Vector and matrix processing toolbox, 50
timo_AC, 937
alpha_frame_AC, 938
alpha_hat_AC, 938
copy, 937
gain_wiener_AC, 938
gamma_post_AC, 937
insert, 937
lambda_ceps_AC, 938
lambda_ml_AC, 938
lambda_ml_ceps_AC, 938
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
lambda_ml_smooth_AC, 938
lambda_spec_AC, 938
log_lambda_spec_AC, 938
max_q_AC, 938
max_val_AC, 938
pitch_set_first_AC, 938
pitch_set_last_AC, 938
SPP, 938
timo_AC, 937
winF0_AC, 938
xi_est_AC, 938
xi_ml_AC, 938
timo_params, 939
alpha_const_limits_hz, 940
alpha_const_vals, 940
alpha_pitch, 940
beta_const, 940
delta_pitch, 940
f0_high, 940
f0_low, 940
gain_min_db, 940
in_cfg, 940
kappa_const, 940
lambda_thresh, 940
noisePow_name, 940
prior_q, 940
timo_params, 939
winF0, 940
xi_min_db, 940
xi_opt_db, 940
timoConfig, 940
∼timoConfig, 942
ac, 942
alpha_const, 942
alpha_frame, 943
alpha_hat, 943
alpha_prev, 943
copy_AC, 942
fftlen, 942
GLRexp, 943
GLR, 943
gain_min, 942
gain_wiener, 943
gamma_post, 943
lambda_ceps, 943
lambda_ceps_prev, 943
lambda_ml_ceps, 943
lambda_ml_full, 943
lambda_ml_smooth, 943
lambda_spec, 943
log_lambda_spec, 943
© 2005-2019 HörTech gGmbH, Oldenburg

1197
logGLRFact, 943
max_q, 943
max_val, 943
mha_fft, 942
nchan, 942
nfreq, 942
noisePow, 943
ola_powspec_scale, 942
params, 942
pitch_set_first, 943
pitch_set_last, 943
powSpec, 943
priorFact, 943
process, 942
q_high, 942
q_low, 942
spec_out, 943
tAC, 942
timoConfig, 942
winF0, 942
xi_est, 943
xi_min, 942
xi_ml, 943
xiOpt, 943
timoSmooth, 944
∼timoSmooth, 945
alpha_const_limits_hz, 947
alpha_const_vals, 947
alpha_pitch, 946
beta_const, 946
delta_pitch, 946
f0_high, 946
f0_low, 946
gain_min_db, 947
kappa_const, 946
lambda_thresh, 946
noisePow_name, 947
on_model_param_valuechanged, 946
patchbay, 947
prepare, 946
prepared, 947
prior_q, 947
process, 945
release, 946
spp, 947
timoSmooth, 945
update_cfg, 946
win_f0, 947
xi_min_db, 946
xi_opt_db, 947
timoSmooth.cpp, 1081

1198
INSERT_PATCH, 1082
INSERT_VAR, 1082
PATCH_VAR, 1082
timoconfig.cpp, 1081
CHANLOOP, 1081
EPSILON, 1081
LPSCALE, 1081
OVERLAP_FACTOR, 1081
POWSPEC_FACTOR, 1081
timoconfig.h, 1081
timosmooth.h, 1082
tmp_spec
MHAFilter::smoothspec_t, 568
tmp_wave
MHAFilter::smoothspec_t, 568
to_from
acTransform_wave, 178
acTransform_wave_config, 179
total_read
io_file_t, 368
transducers.cpp, 1082
kw_index2type, 1083
rmslevelmeter, 1083
rtcalibrator, 1083
vint_0123n1, 1083
transfer_function_t
MHAFilter::transfer_function_t, 571
trigger_processing
MHAPlugin_Split::split_t, 749
MHAPlugin_Split::splitted_part_t, 755
trim
MHAParser, 111
try_accept
MHA_TCP::Server, 483
try_write
MHA_TCP::Connection, 476
ttl
ac2osc_t, 147
tv1
mha_tictoc_t, 495
tv2
mha_tictoc_t, 495
types
ac2lsl, 78
tz
mha_tictoc_t, 495
U
rt_nlms_t, 899
UCL
AuditoryProfile::parser_t::ear_t, 224
AuditoryProfile::profile_t::ear_t, 227

INDEX
UPrew
prediction_error_config, 892
UPrewW
prediction_error_config, 892
UbufferPrew
prediction_error_config, 891
Uflt
rt_nlms_t, 899
uint_mode
addsndfile::addsndfile_if_t, 182
uint_vector_t
MHASignal::uint_vector_t, 810
underflow
MHAFilter::polyphase_resampling_t, 563
unit
MHAOvlFilter::fscale_t, 624
unit2hz
MHAOvlFilter::scale_var_t, 633
unlock_channels
fw_vars_t, 349
unlock_srate_fragsize
fw_vars_t, 349
unset_fb_pars
DynComp::dc_afterburn_t, 295
up
MHASignal::schroeder_t, 799
up_incl
MHAParser::range_var_t, 695
up_limit
MHAParser::range_var_t, 695
MHASignal::quantizer_t, 793
up_thresh
acPooling_wave_config, 164
update
ac2lsl::ac2lsl_t, 133
ac2wave_if_t, 149
addsndfile::addsndfile_if_t, 181
adm_if_t, 196
calibrator_t, 233
coherence::cohflt_if_t, 238
dc::dc_if_t, 254
dc::wideband_inhib_vars_t, 262
delay::interface_t, 274
DynComp::dc_afterburn_t, 296
DynComp::gaintable_t, 301
fshift_hilbert::frequency_translator_t, 338
MHA_AC::ac2matrix_t, 414
MHA_AC::acspace2matrix_t, 418
MHA_AC::stat_t, 425
MHAMultiSrc::spectrum_t, 610
MHAMultiSrc::waveform_t, 612
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
MHAParser::mhaconfig_mon_t, 681
MHAPlugin_Split::split_t, 749
mhachain::chain_base_t, 499
nlms_t, 852
overlapadd::overlapadd_if_t, 861
plingploing::if_t, 866
route::interface_t, 896
smoothgains_bridge::overlapadd_if_←t, 914
softclip_t, 917
spec2wave_if_t, 921
wave2spec_if_t, 950
update_bbgain
gain::gain_if_t, 351
update_burner
DynComp::dc_afterburn_t, 295
update_cfg
acConcat_wave, 153
acPooling_wave, 162
acSteer, 174
acTransform_wave, 178
delaysum::delaysum_if_t, 276
doasvm_classification, 281
doasvm_feature_extraction, 285
example6_t, 317
fader_if_t, 319
fftfbpow::fftfbpow_interface_t, 325
fftfilterbank::fftfb_interface_t, 329
fshift::fshift_t, 336
gtfb_analyzer::gtfb_analyzer_t, 357
lpc, 397
lpc_bl_predictor, 400
lpc_burglattice, 404
multibandcompressor::interface_t, 848
noise_t, 854
noisePowProposedScale::interface_t, 856
plugin_interface_t, 873
prediction_error, 888
sine_t, 911
steerbf, 928
timoSmooth, 946
update_coeffs
MHAFilter::fftfilter_t, 525
MHAFilter::fftfilterbank_t, 529
update_dc
dc_simple::dc_if_t, 265
update_filter
MHAFilter::iir_filter_t, 542
update_frame
addsndfile::level_adapt_t, 184
fader_wave::level_adapt_t, 323
© 2005-2019 HörTech gGmbH, Oldenburg

1199
update_gain
gain::gain_if_t, 351
update_gain_mon
dc_simple::dc_if_t, 265
update_hz
MHAOvlFilter::fscale_bw_t, 623
MHAOvlFilter::fscale_t, 624
update_level
dc_simple::dc_if_t, 265
update_level_mon
dc_simple::dc_if_t, 265
update_levels
multibandcompressor::plugin_signals_t,
850
update_m
matrixmixer::matmix_t, 411
update_minmax
gain::gain_if_t, 351
update_mode
ac2osc_t, 146
update_monitors
dc::dc_if_t, 254
update_mu
MHAFilter::adapt_filter_t, 516
update_ntaps
MHAFilter::adapt_filter_t, 516
update_parser
windowselector_t, 959
update_proc_load
mhachain::plugs_t, 502
update_ramplen
altplugs_t, 215
update_recmode
acmon::acmon_t, 159
update_selector_list
altplugs_t, 215
update_tau_level
calibrator_t, 233
update_varlist
ac2lsl::cfg_t, 135
updated
windowselector_t, 959
updater
MHAOvlFilter::fscale_bw_t, 623
MHAOvlFilter::fscale_t, 624
upper_threshold
acPooling_wave, 162
upsample.cpp, 1083
upsampling_factor
MHAFilter::polyphase_resampling_t, 563
upscale

1200
MHASignal::quantizer_t, 793
us_t, 947
antialias, 948
prepare, 948
process, 948
ratio, 948
release, 948
us_t, 948
use_date
wavrec_t, 955
use_frozen_
cfg_t, 236
use_jack_transport
MHAIOJackdb::io_jack_t, 581
MHAJack::client_t, 599
use_mat
acmon::ac_monitor_t, 157
use_own_ac
altplugs_t, 216
use_sine
cpuload_t, 249
use_smoothspec
smoothgains_bridge::smoothspec_←wrap_t, 915
use_wbinhib
dc::dc_vars_t, 259
user
MHAParser::window_t, 721
user_err_msg
MHAIOFile.cpp, 1049
MHAIOJack.cpp, 1052
MHAIOJackdb.cpp, 1054
MHAIOParser.cpp, 1057
MHAIOPortAudio.cpp, 1060
MHAIOTCP.cpp, 1064
MHAIOalsa.cpp, 1046
user_t
MHAWindow::user_t, 843
username
MHA_AC::ac2matrix_helper_t, 413
userwnd
windowselector_t, 959
v_G
prediction_error_config, 891
vFlog
DynComp::gaintable_t, 303
vGCC_ac
doasvm_feature_extraction_config, 286
vGCC_con
acConcat_wave_config, 154
vGCC_name

INDEX
doasvm_classification, 281
doasvm_feature_extraction, 285
vGCC
acConcat_wave_config, 154
doasvm_feature_extraction_config, 286
vLTASS_combined_lev
speechnoise.cpp, 1078
vLTASS_female_lev
speechnoise.cpp, 1078
vLTASS_freq
speechnoise.cpp, 1077
vLTASS_male_lev
speechnoise.cpp, 1078
vMHAOrigFreq
speechnoise.cpp, 1077
vMHAOrigSpec
speechnoise.cpp, 1077
vOlnoiseFreq
speechnoise.cpp, 1078
vOlnoiseLev
speechnoise.cpp, 1078
val2str
MHAParser::StrCnv, 115, 116
val_max
alsa_t, 213
val_min
alsa_t, 213
validate
AuditoryProfile::parser_t::fmap_t, 225
MHAParser::keyword_list_t, 668
MHAParser::kw_t, 671
MHAParser::range_var_t, 694, 695
validator_channels
mhasndfile.cpp, 1068
validator_length
mhasndfile.cpp, 1068
value
AuditoryProfile::parser_t::fmap_t, 225
MHASignal::ringbuffer_t, 795
MHASignal::spectrum_t, 803
MHASignal::waveform_t, 815, 816
mha_signal.hh, 1037
Vector and matrix processing toolbox, 50–
53
value_type
mha_dblbuf_t, 434
mha_fifo_t, 454
valuechanged
MHAParser::base_t, 641
variable, 4
variable_name
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
mha_stash_environment_variable_t, 467
variable_t
MHAParser::variable_t, 701
variables, 4
acsave::acsave_t, 167
varlist
ac2lsl::cfg_t, 135
acmon::acmon_t, 159
acsave::acsave_t, 167
acsave::cfg_t, 169
varlist_t
acsave::acsave_t, 166
vars
ac2lsl::ac2lsl_t, 133
ac2osc_t, 147
acmon::acmon_t, 159
analysispath_if_t, 220
calibrator_t, 233
coherence::cohflt_if_t, 238
MHAKernel::algo_comm_class_t, 606
vars_t
coherence::vars_t, 242
MHAOvlFilter::overlap_save_filterbank_←t::vars_t, 631
vbark
MHAOvlFilter::barkscale, 103
vbin1
MHAOvlFilter::fftfb_t, 618
vbin2
MHAOvlFilter::fftfb_t, 618
vcomplex_mon_t
MHAParser::vcomplex_mon_t, 703
vcomplex_t
MHAParser::vcomplex_t, 706
vec_y
MHATableLookup::linear_table_t, 828
Vector and matrix processing toolbox, 37
assign, 49, 50
bin2freq, 45
channels, 42
clear, 49
colored_intensity, 57
conjugate, 60
copy_channel, 56
db2lin, 43
dbspl2pa, 44
dupvec, 46
dupvec_chk, 47
equal_dim, 47, 48
for_each, 43
freq2bin, 45
© 2005-2019 HörTech gGmbH, Oldenburg

1201
integrate, 48
lin2db, 43
max, 59
maxabs, 57, 58
mha_real_t, 42
min, 59
operator∗=, 54, 55
operator∧ =, 56
operator+=, 54, 55
operator-=, 54
operator/=, 55
pa22dbspl, 44
pa2dbspl, 43
rad2smp, 46
range, 42
rmslevel, 57, 58
sec2smp, 44
size, 48, 49
smp2rad, 45
smp2sec, 44
std_vector_float, 53
std_vector_vector_complex, 54
std_vector_vector_float, 53
sumsqr_channel, 59
sumsqr_frame, 60
timeshift, 50
value, 50–53
vF
DynComp::gaintable_t, 303
vfloat_mon_t
MHAParser::vfloat_mon_t, 708
vfloat_t
MHAParser::vfloat_t, 710
vfreq
MHAOvlFilter::barkscale, 103
vint_0123n1
transducers.cpp, 1083
vint_mon_t
MHAParser::vint_mon_t, 712
vint_t
MHAParser::vint_t, 714
vL
DynComp::gaintable_t, 302
vmax
gain::gain_if_t, 351
vmin
gain::gain_if_t, 351
vstring_mon_t
MHAParser::vstring_mon_t, 716
vstring_t
MHAParser::vstring_t, 718

1202
vy
MHATableLookup::linear_table_t, 828
W
MHA_TCP::OS_EVENT_TYPE, 480
MHAFilter::adapt_filter_state_t, 515
w
ac2wave_t, 150
doasvm_classification, 281
MHAOvlFilter::fftfb_t, 618
w_out
combc_t, 245
WINAPI
mha_plugin.hh, 1023
wIRS_fft
MHAFilter::fftfilter_t, 527
wInput
MHAFilter::fftfilter_t, 527
wInput_fft
MHAFilter::fftfilter_t, 526
wOutput
MHAFilter::fftfilter_t, 527
wOutput_fft
MHAFilter::fftfilter_t, 527
wait
MHA_TCP::Event_Watcher, 479
wait_for_decrease
mha_fifo_posix_threads_t, 451
mha_fifo_thread_platform_t, 459
wait_for_increase
mha_fifo_posix_threads_t, 451
mha_fifo_thread_platform_t, 459
Wakeup_Event
MHA_TCP::Wakeup_Event, 494
wave
alsa_t, 212
wave2spec
MHASignal::fft_t, 773
plugindescription_t, 875
wave2spec.cpp, 1083
MHAPLUGIN_OVERLOAD_OUTDOM←AIN, 1083
wave2spec_if_t, 949
algo, 950
nfft, 950
nwnd, 950
patchbay, 950
prepare, 950
process, 950
return_wave, 950
update, 950
wave2spec_if_t, 950

INDEX
window_config, 950
wndpos, 950
wave2spec_scale
MHASignal::fft_t, 774
wave2spec_t, 951
∼wave2spec_t, 952
calc_in, 953
calc_pre_wnd, 952
ft, 952
in_buf, 953
npad1, 952
npad2, 952
nwnd, 952
nwndshift, 952
process, 952
spec_in, 953
wave2spec_t, 952
window, 953
wave2wave
plugindescription_t, 875
wave_fifo
analysepath_t, 218
wave_in
MHAPlugin_Split::domain_handler_t, 741
wave_in1
overlapadd::overlapadd_t, 863
wave_out
MHAPlugin_Split::domain_handler_t, 741
MHAPlugin_Split::split_t, 751
wave_out1
overlapadd::overlapadd_t, 863
wave_reader
addsndfile, 80
waveform_proxy_t
addsndfile::waveform_proxy_t, 188
waveform_t
MHA_AC::waveform_t, 426
MHAMultiSrc::waveform_t, 612
MHASignal::waveform_t, 814
wavrec.cpp, 1083
DEBUG, 1084
wavrec_t, 953
fifolen, 955
minwrite, 955
patchbay, 955
prefix, 955
prepare, 954
process, 954
record, 955
release, 954
start_new_session, 954
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
use_date, 955
wavrec_t, 954
wavwriter_t, 955
∼wavwriter_t, 956
act_, 956
cf_, 956
close_session, 956
data, 956
fifo, 956
minw_, 956
process, 956
sf, 956
wavwriter_t, 956
write_thread, 956
writethread, 956
wb_inhib_cfg_t
dc::wb_inhib_cfg_t, 261
wbinhib
dc::dc_if_t, 254
weights
dc::wb_inhib_cfg_t, 261
dc::wideband_inhib_vars_t, 262
delaysum::delaysum_if_t, 276
delaysum::delaysum_t, 278
what
MHA_Error, 446
white
speechnoise_t, 925
wideband_inhib_vars_t
dc::wideband_inhib_vars_t, 262
win_f0
timoSmooth, 947
winF0
timo_params, 940
timoConfig, 942
winF0_AC
timo_AC, 938
window
MHAFilter::smoothspec_t, 568
overlapadd::overlapadd_if_t, 861
wave2spec_t, 953
window_config
spec2wave_if_t, 921
wave2spec_if_t, 950
window_t
MHAParser::window_t, 720
windowselector.cpp, 1084
windowselector.h, 1084
windowselector_t, 957
∼windowselector_t, 958
get_window_data, 958
© 2005-2019 HörTech gGmbH, Oldenburg

1203
insert_items, 958
invalidate_window_data, 959
patchbay, 959
update_parser, 959
updated, 959
userwnd, 959
windowselector_t, 958
wnd, 959
wndexp, 959
wndtype, 959
wnd
addsndfile::level_adapt_t, 184
fader_wave::level_adapt_t, 323
windowselector_t, 959
wnd_bartlett
MHAParser::window_t, 720
wnd_blackman
MHAParser::window_t, 720
wnd_funs
mha_windowparser.cpp, 1042
wnd_hamming
MHAParser::window_t, 720
wnd_hann
MHAParser::window_t, 720
wnd_rect
MHAParser::window_t, 720
wnd_user
MHAParser::window_t, 720
wndexp
overlapadd::overlapadd_if_t, 861
windowselector_t, 959
wndlen
doasvm_feature_extraction_config, 286
MHAParser::mhaconfig_mon_t, 681
mhaconfig_t, 505
testplugin::config_parser_t, 933
wndpos
overlapadd::overlapadd_if_t, 861
wave2spec_if_t, 950
wndtype
windowselector_t, 959
worker_thread_priority
MHAPlugin_Split::split_t, 750
worker_thread_scheduler
MHAPlugin_Split::split_t, 750
wout
matrixmixer::cfg_t, 409
route::process_t, 897
wout_ac
route::process_t, 897
write

1204
alsa_base_t, 207
alsa_t, 212
MHA_TCP::Connection, 476
MHAFilter::blockprocessing_polyphase←_resampling_t, 518
MHAFilter::polyphase_resampling_t, 562
MHAJack::port_t, 601
MHASignal::matrix_t, 789
MHASignal::ringbuffer_t, 796
MHASignal::uint_vector_t, 811
mha_drifter_fifo_t, 441
mha_fifo_lw_t, 448
mha_fifo_t, 454
write_buf
overlapadd::overlapadd_t, 863
spec2wave_t, 923
write_event
MHA_TCP::Connection, 477
write_float
mha_parser.cpp, 1016
write_ptr
mha_fifo_t, 456
write_thread
wavwriter_t, 956
write_wave
mhasndfile.cpp, 1068
mhasndfile.h, 1069
writeaccess
MHAParser::base_t, 641
writer_started
mha_drifter_fifo_t, 443
writer_xruns_in_succession
mha_drifter_fifo_t, 444
writer_xruns_since_start
mha_drifter_fifo_t, 444
writer_xruns_total
mha_drifter_fifo_t, 443
writethread
wavwriter_t, 956
Writing openMHA Plugins. A step-by-step tutorial, 11
wtype
MHAParser::window_t, 721
wtype_t
MHAParser::window_t, 720
X
MHA_TCP::OS_EVENT_TYPE, 480
MHAFilter::adapt_filter_state_t, 515
x
doasvm_classification, 281
xfun

INDEX
MHATableLookup::xy_table_t, 833
xi_est
timoConfig, 943
xi_est_AC
timo_AC, 938
xi_min
timoConfig, 942
xi_min_db
timo_params, 940
timoSmooth, 946
xi_ml
timoConfig, 943
xi_ml_AC
timo_AC, 938
xi_opt_db
timo_params, 940
timoSmooth, 947
xiOpt
noisePowProposedScale::noisePow←Proposed, 859
timoConfig, 943
xiOptDb
noisePowProposedScale::interface_t, 857
xmax
MHATableLookup::linear_table_t, 828
xmin
MHATableLookup::linear_table_t, 828
Xs
MHAFilter::fftfilterbank_t, 530
xw
MHAFilter::fftfilterbank_t, 530
xy_table_t
MHATableLookup::xy_table_t, 831
xyfun
MHATableLookup::xy_table_t, 833
y
doasvm_classification, 281
y0
dc_simple::dc_t::line_t, 268
y_previous
rt_nlms_t, 900
YPrew
prediction_error_config, 892
yfun
MHATableLookup::xy_table_t, 833
Yn
MHAFilter::complex_bandpass_t, 522
MHAFilter::iir_ord1_real_t, 545
Ys
MHAFilter::fftfilterbank_t, 531
yw
© 2005-2019 HörTech gGmbH, Oldenburg

INDEX
MHAFilter::fftfilterbank_t, 530
yw_temp
MHAFilter::fftfilterbank_t, 531
zeros
ac2wave_if_t, 149
zerowindow
overlapadd::overlapadd_if_t, 861

© 2005-2019 HörTech gGmbH, Oldenburg

1205



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Page Count                      : 1221
Page Mode                       : UseOutlines
Author                          : 
Title                           : 
Subject                         : 
Creator                         : LaTeX with hyperref package
Producer                        : pdfTeX-1.40.16
Create Date                     : 2019:01:23 15:48:58+01:00
Modify Date                     : 2019:01:23 15:48:58+01:00
Trapped                         : False
PTEX Fullbanner                 : This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) kpathsea version 6.2.1
EXIF Metadata provided by EXIF.tools

Navigation menu