-
Notifications
You must be signed in to change notification settings - Fork 75
/
prerelease_combination.cfg
1110 lines (1036 loc) · 71.6 KB
/
prerelease_combination.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# This file is part of the HörTech Open Master Hearing Aid (openMHA)
# Copyright © 2013 2017 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 <http://www.gnu.org/licenses/>.
# openMHA is a software platform to process audio signals with hearing
# aid signal processing algorithms. Signal processing algorihtms are
# implemented as plug-ins that are loaded into the MHA process at
# runtime.
#
# The openMHA framework itself and also the MHA plugins support
# configuration of their settings through a text-based configuration
# language. This file is an example configuration that can be used to
# configure an MHA to perform signal processing with with an adaptive
# differential microphone, followed by a binaural coherence filter,
# followed by dynamic compression to compensate for sensorineural
# hearing loss.
# Besides configuring the MHA, this file also has comments explaining
# every setting. We have left out some of the more advanced settings
# which have been left to their default value, because explaining all
# the possible options that are not actually used here might only
# distract from understanding this configuration.
# We have to tell the MHA how many audio channels to process. Think
# of the number of audio channels as the number of microphones that
# your hearing support system uses to pick up sound. If you wore a
# hearing aid device on each ear, and each hearing aid device had a
# signal microphone to pick up sound, then your number of audio input
# channels would be two. If each of the hearing aid devices had not
# only one, but two microphones at slightly different positions, then
# you would configure the number of input audio channels to be
# four. This is what we do here with the "nchannels_in" setting.
#
# This "nchannels_in" variable accepts values of type integer in the
# range 1 to INT_MAX. This is sometimes denoted like this in MHA:
#
# int:[1,[
nchannels_in = 4
# Note that the corresponding "nchannels_out" variable is not
# writable, but is read-only. We call read-only variable a "monitor
# variable", or shorter, a "monitor". The number of output channels
# is auto-deduced by the MHA and can be read from the "nchannels_out"
# monitor.
# When we perform real-time signal processing, we process the signal
# in small chunks of data: Take a chunk from the sound card capture
# channels, process it, and output the result to the sound card output
# channels.
#
# MHA always operates like this, processing data in small chunks, even
# when the processed sound data comes from sound files. The setting
# "fragsize" tells the MHA how many audio sample per channel are to be
# processed in each chunk.
#
# int:[1,[
fragsize = 64
# MHA processes discrete-time digital audio signals with a fixed
# sampling rate. The sampling rate tells MHA how many samples per
# second have been digitized in each audio channel. Note that we use a
# floating point data type here, so you can use a non-integer sampling
# rate if you have to and your sound card supports it. The sampling
# rate 44100 that we use here is the standard sampling rate used on
# audio CDs and is supported by most sound cards.
#
# sampling rate in Hz
# float:]0,[
srate = 44100
# The MHA framework can load a single MHA plugin to process the data.
# We tell the MHA which plugin to load with the "mhalib" variable
# (historical reasons). Note that the data type of the "mhalib"
# variable is string.
#
# When the assignment "mhalib = transducers" below is executed by the
# MHA, then the MHA framework will look for a dynamic library file in
# the file system with the name "transducers.so" (on linux, on windows
# the extension would be .dll, on mac it would be .dylib). The path
# where MHA searches for this file is either the standard path for
# shared libraries on the system, or, if the environment variable
# "MHA_LIBRARY_PATH" is set, then MHA searches the directories listed
# in this environment variable.
#
# Usually MHA configurations consist of more than just one plugin.
# MHA provides structuring plugins that can themselves load other
# plugins for this purpose.
#
# The transducers plugin that we load here can be used for calibration of
# input and output sounds, see below.
#
# MHA library name
# string
mhalib = transducers
# MHA supports different audio back-ends: Sound can come from and go
# to either
# - sound cards,
# - the Jack audio server,
# - sound files, or
# - the network.
#
# Users select the desired audio backend by loading the respective MHA
# IO library into the MHA process. Similar to processing plugins, IO
# libraries are loaded as dynamic libraries into the process when the
# assignment to the "iolib" variable below is executed, and the same
# search path and file name extensions are used, as when processing
# plugins are loaded. But because MHA IO libraries are the ultimate
# sources and sinks of sound in the MHA, they export a different
# interface to the MHA. Here we load the IO library that reads from
# and writes to sound files.
#
# IO plugin library name
# string
iolib = MHAIOFile
# In the future you may have several MHA processes running on the same
# computer, performing different signal processing tasks. You can use
# this MHA variable to describe what the purpose of this instance of
# the MHA is, so that you can tell to which MHA instance you are
# currently connected and not get confused.
#
# Name of this mha instance
# string
instance = allplugins
# parser "mha":
#
# Remember that above, we loaded the transducers plugin into the MHA
# with the assignment "mhalib = transducers". When the MHA executed
# this assignment, it loaded the transducers plugin into the MHA
# process. For historical reasons, MHA makes the configuration
# variables of this plugin available to the sub-"parser" "mha". We
# call the hierarchy layers in the MHA configuration tree "parsers"
# because, besides providing hierarchy, they also perform the text
# parsing of the configuration commands.
#
# So in the following, we will see how some variables of the transducers
# plugin are getting set.
# The transducers plugin is responsible for the correct calibration of
# the sound in the MHA. Remember that the MHA is a platform for
# hearing aid signal processing algorithms, and that hearing aids
# usually 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,
# algorithms have to be able to determine the absolute physical sound
# pressure level corresponding to a digital signal given to any MHA
# plugin for processing. Inside the MHA, we achieve this with a
# convention.
#
# The convention that we use in the MHA is that the single-precision
# floating point time-domain sound signal samples, that we process
# inside the MHA plugins, have the physical unit Pascal (1 Pa = 1 N /
# m^2). With this convention in place, all plugins can determine the
# absolute physical sound pressure level from the sound samples that
# they process.
#
# However, when one just connects a microphone to a sound card and
# uses that sound card to feed sound samples to the MHA, these sound
# samples do not automatically follow the MHA level convention. The
# same is true when using sound files instead of sound cards for input
# and output. Different microphones have different sensitivities.
# Sound cards have adjustable amplification settings. Sound files may
# have been "normalized" before they have been saved to disk. To be
# able to implement our level convention, we need to be able to adjust
# for arbitrary physical level to digital level mappings in the MHA.
# We do this with the transducers plugin, which is the only plugin
# that may not rely on this convention, because it is the one plugin
# that has to make sure that all other plugins may rely on this
# convention. For this reason, it is usually loaded as the first plugin
# into the MHA using the "mhalib = transducers" assignment.
#
# transducers
# Remember that the configuration settings of the first plugin loaded
# into the MHA process, which here is the "transducers" plugin, can be
# accessed under the sub-parser named "mha". "transducers" has a
# configuration variable "plugin_name". When a string is written to
# this configuration variable, then the transducers plugin will itself
# load another MHA plugin into the MHA process, which receives the
# calibrated input signal from transducers, and which sends its still
# calibrated output signal to the transducers plugin to adjust for the
# physical outputs.
#
# Here, transducers loads an mhachain, which is an MHA plugin that
# itself can load several other signal processing plugins and arrange
# them in a signal processing chain.
#
# Plugin name
# string
mha.plugin_name = mhachain
# After the above assignment is executed, the configuration settings
# of the mhachain plugins are accessible through the hierarchy
# "mha.mhachain", i.e. here, the individual plugin name gets reused as
# the hierarchy name.
# parser "mha.calib_in":
#
# calibration module
#
# The transducers plugin seperates input calibration settings and
# output calibration settings in two different sub-"parsers", named
# "calib_in" and "calib_out".
#
# To adjust the input signals to influences like microphone
# sensitivities, analogue amplifiers, and sound card A/D converter
# sensitivities, we write channel-specific "peak levels" into the
# transducers plugin's "calib_in.peaklevel" configuration variable,
# which is a vector of floats. Each element specifies the "peak
# level" for the corresponding audio channel. With peak level, we
# refer to the physical sound pressure level which would cause the
# sound card to transmit to the MHA a digitized signal with a digital
# level of 0 dB re full scale (dB FS).
#
# Of course, this is only a theoretical consideration: A digital
# signal with 0 dB FS would be some rectangular waveform with maximum
# possible amplitude, and if you ever saw such a digital signal for real,
# the obvious suspicion would be that you were seeing was caused by
# massive clipping.
#
# Instead, we suggest that you produce a known sound level of static
# noise at the place of your microphones with the help of calibrated
# measurement equipment. The calibrated measurement equipment should
# tell you the sound level in dB SPL Freefield with linear or Zero
# (Z-) frequency weighting. No A-, B-, C- or D- Weighting should be
# applied.
#
# This known sound level should be loud enough clearly to dominate
# other ambient noises (use a sound-proof booth for low ambient
# noises!), but still soft enough that no clipping occurs when the
# sound is digitized. Of course, all your equipment should behave as
# linear as possible.
#
# Then, your peak level for each channel is the physical level that
# you measured minus the corresponding digital level in dB FS of the
# signal produced by your sound card. (The digital level in dB FS is
# always negative, therefore, the peaklevel is always higher than the
# physical sound level that you have used for calibration.)
#
# Yes, calibration is complicated (and we are not even finished, yet,
# see next variable "fir"). But for hearing aid applications, it is
# crucial to get it right.
#
# The peaklevels given in the following assignment are just example
# values. Note that a vector value is written with square brackets
# surrounding the element values, which are separated by spaces.
#
# Reference peak level in dB (0 dB FS corresponds to this SPL level)
# vector<float>
mha.calib_in.peaklevel = [100 100 100 100]
# Measuring and computing the correct peak level as above is not
# enough to calibrate a hearing aid system. Microphones (or any other
# component in your audio recording path) may have a non-flat
# frequency response, which has to be compensated for with a filter,
# before MHA plugins can actually rely on the level convention in the
# MHA. For this purpose, you can specify a matrix of FIR filter
# coefficients, with one filter per row. Rows are separated by
# semicola.
#
# If your microphones' frequency responses, you can either leave out
# the fir coefficients, or, as done here, provide FIR coefficients
# that do not actually alter the signal. These non-modifying FIR
# coefficients are included here to demonstrate the matrix data
# format.
#
# FIR filter coefficients, one row for each channel
# matrix<float>
mha.calib_in.fir = [[1 0 0];[1 0 0];[1 0 0];[1 0 0]]
# parser "mha.calib_out":
#
# Output calibration follows. The peaklevel and fir entries have the
# same meaning as for input calibration: physical level in dB SPL Free
# Field corresponding to a digital signal with 0 dB re full scale
# digital level, and filter to correct the frequency responses of the
# output amplifiers and transducers. When thinking of hearing aid
# applications where the output sound is produced not in the free
# field but in the ear canal of the hearing impaired listener with
# hearing aid receivers, output calibration becomes more involved than
# input calibration because effects like lost open ear gain may have
# to be taken into account and suitable couplers simulating the
# impedance of actual ears have to be used for physical measurements.
#
# Reference peak level in dB (0 dB FS corresponds to this SPL level)
# vector<float>
mha.calib_out.peaklevel = [100 100]
# FIR filter coefficients, one row for each channel
# matrix<float>
mha.calib_out.fir = [[]]
# parser "mha.calib_out.softclip":
# 'Hardware' softclipper
#
# When hearing aid algorithms apply gains to amplify sounds for the
# hearing impaired, the desired output signal may be louder than is
# physically possible to produce with the given equipment. If this
# situation is left unhandled, then the physical signal will be
# clipped by the sound card, producing very unpleasant sound
# artifacts. It is always better to adapt and configure the hearing
# aid algorithms in such a way that output signal is never in danger
# of clipping. Given the realities of such a flexible platform as the
# master hearing aid, where the hearing support algorithm can be
# connected to many different sound output transducers, we realize
# that this is not always possible. In order to lighten the burden of
# unpleasant clipping sound artifacts on the hearing impaired user
# testing a configuration, we have introduced a softclipper that will
# attenuate the overall signal with slower time constants when it is
# in danger of clipping. Note that this solution is still sub-optimal,
# because the prescribed output levels are not achieved, and because
# the softclipper may still produce unpleasant artifacts a little less
# harsh, but the solution is still better than hard clipping.
#
# The attack time constant, given in seconds, determines how quickly
# the softclipper can react to rising sound levels that are in danger
# of reaching hard clipping. Note that only a time constant of 0 can
# guarantee that no hard clipping occurs in the operating range of the
# softclipper.
#
# Note that the transducers plugin expects the values for these time
# constants to be specified in units of seconds, even though typical
# values for these settings are in the milliseconds range. In MHA
# configuration, we prefer that physical quantities be specified in SI
# units whenever possible.
#
# attack filter time constant / s
# float:[0,]
mha.calib_out.softclip.tau_attack = 0.002
# The decay time constant, in seconds, determines how quickly the
# softclipper can follow falling sound levels to leave its operating
# range when engaged.
#
# decay filter time constant / s
# float:[0,]
mha.calib_out.softclip.tau_decay = 0.005
# Lower end of the operating range of the softclipper. This is some
# value between 0 and one and denotes the amplitude of sound samples
# with respect to full scale of the sound card at which the
# softclipper engages and starts attenuating the signal.
#
# start point on linear scale (hard clipping at 1.0)
# float:[0,]
mha.calib_out.softclip.threshold = 0.6
# The compression rate of the softclipper. This value of 0.5 means,
# for every full dB that the mha output signal would be above the soft
# clipper threshold if no clipping would occur, output only this many
# dBs above that threshold.
#
# compression factor
# float:[0,1]
mha.calib_out.softclip.slope = 0.5
# The softclipper measures the ratio of the number of samples that
# were attenuated by it vs the number of unaffected samples, with a
# time averaging performed by low pass filtering ones and zeros with
# this time constant.
#
# clipping meter time constant / s
# float:[0,]
mha.calib_out.softclip.tau_clip = 1
# When configuring an MHA, you can set a limit on the maximum clipped
# ratio that you are willing to accept. MHA will stop signal
# processing with an error if this ratio is ever exceeded, and would
# need to be restartet manually. This is intended to be used in
# scenarios where the hearing aid processing does not take into
# account limitations of the sound output hardware, and you want to
# stop measurements when it becomes clear that you cannot perform some
# measurements either due to the limitations of the output hardware or
# due to the severity of the hearing loss of the subject.
#
# maximum allowed clipped ratio
# float:[0,1]
mha.calib_out.softclip.max_clipped = 1
# All the clipping described above is disabled by default and has to
# be enabled here if desired.
#
# Will the soft/ hard clipping be executed
# bool
mha.calib_out.do_clipping = no
# parser "mha.mhachain":
#
# MHA Chain
#
# Above, we have loaded an "mhachain" plugin into the transducers
# plugin to process the calibrated signal. The configuration settings
# of this mhachain can be accessed below the hierarchy mha.mhachain.
# An mhachain plugin can load several plugins in the specified order,
# where each plugin processes the output signal of the previous
# plugin. Child plugins are loaded into an mhachain by assigning to
# its "algos" variable a vector of strings, where each string is the
# name of one child plugin. Here, we load two plugins, an adaptive
# differential microphone (adm), and an overlapadd plugin.
#
# list of plugins
# vector<string>
mha.mhachain.algos = [adm overlapadd]
# parser "mha.mhachain.adm":
#
# Adaptive differential microphone
#
# The adm plugin implements one or more independent adaptive
# differential microphones by combining the signal from two
# omnidirectional microphones (cf. Elko 1985). In hearing aids, the
# adaptive differential microphone algorithm can be applied to combine
# the signal of two distinct omnidirectional microphones inside a
# single hearing aid device, a front microphone and a rear microphone.
# The adaptive algorithm is then used to steer a spatial zero so that
# the sound source with the highest intensity in the rear hemisphere
# of the hearing aid wearer's head is attenuated.
#
# The adm plugin needs to know which audio channels should be combined
# to form each computed adaptive differential microphone, because
# there is no default ordering of 4 channels. With the following
# assignments, we specify that the ordering (i.e. which microphone is
# connected to which sound card channel) is in this case:
# - channel index 0 = front microphone on the left hearing aid device
# - channel index 1 = front microphone on the right hearing aid device
# - channel index 2 = rear microphone on the left hearing aid device
# - channel index 3 = rear microphone on the right hearing aid device
# Both left channels will be combined by the ADM to form an adaptive
# differential microphone. Independently, the same will be done for
# both right channels.
#
# Channel indices for front microphones
# vector<int>:[0,[
mha.mhachain.adm.front_channels = [0 1]
# Channel indices for rear microphones
# vector<int>:[0,[
mha.mhachain.adm.rear_channels = [2 3]
# The adaptive differential microphone algorithm needs to know the
# physical distance between front and rear microphone. The physical
# distance is given in meters for each microphone pair in the
# following vector variable. The unit here is meters even though
# typical distances are more in the range of millimeters, because in
# the MHA configuration we prefer that physical quantities be
# specified in SI units whenever possible.
#
# distance between front and rear microphones
# vector<float>:[0.00079999998,0.0799999982]
mha.mhachain.adm.distances = [0.0149 0.0149]
# The adaptation process of this adaptive differential microphone
# algorithm adapts on low-pass filtered signals. This variable
# determines the filter order used for the low-pass filter. Higher
# filter orders result in better spatial adaptation.
#
# Filter order of FIR lowpass filter
# int:[46,128]
mha.mhachain.adm.lp_order = 128
# The output signal of the adaptive differential microphone shows a
# comb filter effect with regular notches in the spectrum. For
# typical microphone distances in the order of 1cm, only the lowest
# notch is relevant for speech spectrum. To compensate the lowest
# notch, a filter is applied that amplifies low frequencies. This
# variable specifies the filter order of this filter. Higher filter
# orders result in better output signal quality.
#
# Filter order of FIR comb compensation filter
# int:[46,128]
mha.mhachain.adm.decomb_order = 128
# Adaptive differential microphones combine the signal from two audio
# input channels into a single audio output channel. Even with the
# adm plugin in the signal path, users may want to switch from active
# directional filtering to omnidirectional microphone and back,
# depending on the acoustical environment they find themselves in. By
# changing this variable at run time, users can select what the output
# of the adm plugin should be:
#
# - For bypass = 0, the adm will not be bypassed, which means it will
# carry out its adaptive directional filtering.
# - For bypass = 1, adm plugin will output the audio signals from the
# front microphones without modification.
# - For bypass = 2, adm plugin will output the audio signals from the
# rear microphones without modification.
#
# In all three cases, the number of output channels will be the same,
# namely, half the number of input channels.
#
# if 1, output front microphones directly, if 2, output rear microphones
# int:[0,2]
mha.mhachain.adm.bypass = 0
# parser "mha.mhachain.overlapadd":
#
# overlapadd is one of the MHA plugins that perform conversion between
# time domain and spectral domain as a service for algorithms that
# process a series of short time fourier transform signals. In this
# way, not every MHA plugin that processes spectral signal has to
# perform its own spectral analysis. overlapadd performs both, the
# forward and the backward transform, and can load another MHA plugin
# which analyses and modifies the signal while in the spectral domain.
# The plugin performs the standard process of collecting the input
# signal, windowing, zero-padding, fast fourier transform, inverse
# fast fourier transform, additional windowing, and overlap-add time
# signal output.
#
# The hop size, how much the analysis window is advanced from one
# processing invocation to the next, is not controlled by the
# overlapadd plugin itself, but is determined by the number of audio
# samples per channel and processing block. In this example
# configuration, the hop size is determined by the "fragsize" setting
# of the MHA itself. This setting can be found near the top of this
# configuration file.
#
# All other common overlap-add (OLA) and weighted overlap-add (WOLA)
# settings can be configured by setting the configuration variables of
# this overlapadd plugin.
#
# Waveform to spectrum overlap add and FFT method.
# Audio data is collected up to wndlen, than windowed with
# the given window function, zero padded up to fftlength
# (symmetric zero padding or asymmetric zero padding possible),
# and Fast-Fourier-transformed.
# All parameter changes take effect after the next prepare call.
# The overlapadd plugin again loads one plugin that processes the
# signal in the spectral domain. The plugin loaded here will receive
# the STFT signal and produce a possibly modified version of the STFT
# signal, which is then subjected to inverse FFT transform by the
# overlapadd plugin and finally the overlap-add operation is performed
# to produce the time-domain output signal.
#
# In this configuration, we use again an mhachain plugin to process
# the signal. Note that mhachain was used before in this
# configuration file to form a signal processing chain of two
# algorithms that pass on time-domain signal. Here, we want it to
# form a chain of algorithms that pass on spectral STFT signal to each
# next plugin. Some plugins in the MHA, like mhachain, can adapt to
# the domain of the input signal that they receive. Should you happen
# to configure a plugin to be loaded at a place where it cannot
# process the input signal that it receives, that plugin will raise an
# error, and processing cannot start.
#
# Plugin name
# string
mha.mhachain.overlapadd.plugin_name = mhachain
# The FFT length, in samples, to use for spectral analysis. The FFT
# length must be at least as large as the analysis window length,
# which is configured later. Note that for efficient FFT computation
# the FFT length should be a product of powers of small primes. The
# openMHA uses MIT's FFTW library version 2 internally, which supports
# efficient analysis also for small primes other than 2, therefore,
# you are not restricted to powers of 2 in the choice of FFT length.
#
# FFT length int:[1,]
mha.mhachain.overlapadd.fftlen = 256
# parser "mha.mhachain.overlapadd.wnd":
#
# The window properties are specified in the sub-hierarchy wnd.
#
# Window type.
#
# The data type of the variable wnd.type is keyword_list. The
# variable offers a choice of predefined symbolic names, one of which
# can be selected. Most window types offered here should be
# self-explanatory for users with a signal processing background.
# Only the "user" window is a special case where the the window shape
# can be specified sample-by-sample by the user. For the example
# configuration here we use the hanning window.
#
# keyword_list:[rect hanning hamming blackman bartlett user]
mha.mhachain.overlapadd.wnd.type = hanning
# If wnd.type above is user, then the window shape would have to be
# specified here sample-by-sample in the vector wnd.user. The value
# of each sample would typically between 0 and 1.
#
# User provided window (used if window type==user).
# vector<float>
mha.mhachain.overlapadd.wnd.user = []
# The window length, in samples. The window length should be at least
# as long as the hop size (determined by the fragsize setting outside
# of the overlapadd plugin), and must be at most as long as the FFT
# length. A typical value would be for the window size to be either
# exactly two (like here) or four times the hop size, to achieve 50%
# or 75% overlap, respectively. If the signal is not only analyzed in
# the spectral domain, but also modified with frequency-dependent
# gains, it is recommended to choose the window length shorter than
# the FFT length to have some zero padding to pick up the time-domain
# convolution from the corresponding frequency-domain modifications.
#
# window length/samples
# int:[1,]
mha.mhachain.overlapadd.wnd.len = 128
# If the fft length is greater than the window length, then this
# variable determines the relative placement of the window inside the
# fft analysis buffer.
#
# window position
# (0 = beginning, 0.5 = symmetric zero padding, 1 = end)
# float:[0,1]
mha.mhachain.overlapadd.wnd.pos = 0.5
# In common overlap-add processing, the window would be applied as an
# analysis window before transforming to the frequency domain.
# However, there are other use cases (namely WOLA, weighted
# overlap-add), where one commonly restricts the resynthesized time
# signal that is produced by the inverse FFT with a synthesis window
# to the original extent of the analysis window to restrict filter
# "ringing". You would usually split one of the common analysis
# window used in overlap-add processing, by applying an exponent of
# 0.5 to all the window samples and apply the analysis window before
# the FFT and apply the synthesis window after the inverse FFT. Note
# that this is not commonly done in hearing aid signal processing, but
# the MHA supports it should you need it.
#
# An exponent of 1 here means that the window is completely applied
# before the FFT is performed. Values lesser than one mean that all
# window weights are exponentiated by this exponent (named wnd.exp
# here) before the weights are applied to the input signal. Then, the
# exponent (1-wnd.exp) is applied to the window weights before it is
# applied as a synthesis window to the time signal that is produced by
# the inverse FFT.
#
# If you perform standard overlap-add processing (OLA), and not
# weighted overlap-add (WOLA), then leave this at its default value,
# 1.
#
# window exponent to be applied to all elements of window function
# float
mha.mhachain.overlapadd.wnd.exp = 1
# parser "mha.mhachain.overlapadd.zerownd":
#
# The settings in the sub-parser "zerownd" define a weighting
# operation performed on the regions of the FFT buffer that are
# pre-filled with the zero-padding. If the signal is modified in the
# spectral domain, then these regions of the FFT buffer usually
# contain non-zero signal samples after the inverse FFT has been
# performed. This is caused by the convolution with the impulse
# response that corresponds to the spectral changes that the spectral
# algorithms have performed.
#
# If the effective impulse response exceeds the length of the
# zero-padding regions in the FFT buffer, then this will cause
# temporal aliasing effects that may be perceptible to the hearing
# impaired user. To improve the perceptual consequences, one might
# apply a post-window to attenuate the signal energy in the
# zero-padding area. You can choose the shape of this post-window
# with the configuration setting zerowind.type. This window will be
# split in two and each part applied to the respective zero-padding
# regions at the beginning and at the end of the FFT buffer. Note
# that a rectangular window will have a weight of one everywhere and
# therefore will not affect these regions and will not improve the
# temporal aliasing artifacts. The default setting is a rectangular
# window with no effect.
#
# zero padding post window type
# Window type.
# keyword_list:[rect hanning hamming blackman bartlett user]
mha.mhachain.overlapadd.zerownd.type = rect
# If the window type selected in zerownd.type is "user", then the weigths
# of the desired window have to be specified here.
#
# User provided window (used if window type==user).
# vector<float>
mha.mhachain.overlapadd.zerownd.user = []
# parser "mha.mhachain.overlapadd.mhachain":
#
# This mhachain plugin instance forms a signal processing chain in the
# spectral domain: It's input signal is the STFT signal produced by
# the overlapadd plugin, and its output signal is processed by the
# same overlapadd instance to resynthesize it to a time domain signal.
#
# MHA Chain
#
# The plugins used to form a signal processing chain are loaded by the
# mhachain plugin when the assignment to the configuration parameter
# algos is executed. This is a vector of strings, where the vector
# value is delimited by square brackets, and the vector's elements are
# separated by spaces.
#
# list of plugins
# vector<string>
mha.mhachain.overlapadd.mhachain.algos = [coherence fftfilterbank dc combinechannels]
# parser "mha.mhachain.overlapadd.mhachain.coherence":
#
# The coherence filter is a binaural algorithm that attenuates parts
# of the spectrum that show low correlation between left and right
# side of the head. It processes STFT signal, and internally, it
# forms frequency bands where the correlation analysis is performed,
# by grouping sets of FFT bins into frequency bands.
#
# Further below we will specify the center frequencies of these
# frequency bands. Here, we specify in what units we want to give the
# frequencies below. The default unit to specify frequencies in the
# MHA is Hertz [Hz], but at some places, users have the choice of
# selecting different frequency units. Here, we choose that we want
# to specify the frequencies as the index number of third-octave
# bands: Index 0 is the reference point of this scale, it corresponds
# to 1000 Hz. Index 1 is a third-octave above 1000 Hz,
# i.e. approx. 1260Hz, while an Index of -1 would correspond to a
# third-octave below 1000 Hz.
#
# Frequency unit
# keyword_list:[Hz kHz Oct Oct/3 Bark Erb ERB_Glasberg1990]
mha.mhachain.overlapadd.mhachain.coherence.unit = Oct/3
# The configuration setting f of the coherence plugin expects a vector
# with the center frequencies of the individual frequency bands where
# the coherence algorithm performs its analysis. Because above we
# specified that our unit for frequency should be third-octave bands,
# the numbers here correspond to indexes of third-octave bands
# relative to 1000 Hz, i.e. index 0 means a center frequency of 1000
# Hz.
#
# Frequencies
# vector<float>
mha.mhachain.overlapadd.mhachain.coherence.f = [-6 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9]
# The frequency bands that the coherence filter does its analysis in
# can have different shapes along the frequency axis. The shapes and
# also the cross-over frequencies between adjacent frequency bands can
# be computed on different frequency scales, e.g. linear or
# logarithmic scales. Here we choose the linear frequency scale,
# which is also the default.
#
# frequency scale of filter bank
# keyword_list:[linear bark log erb ERB_Glasberg1990]
mha.mhachain.overlapadd.mhachain.coherence.fscale = linear
# Frequency bands in the coherence filter can have different shapes
# along the frequency axis. Here we select a rectangular shape, which
# also has the effect that frequency bands will not overlap,
# i.e. every frequency bin is part of only exactly one frequency band.
#
# filter overlap type
# keyword_list:[rect linear hanning exp gauss]
mha.mhachain.overlapadd.mhachain.coherence.ovltype = rect
# Above, when setting the configuration variable f, we used center
# frequencies. We could also have specified the edge frequencies if
# we did the respective setting here. When we specify center
# frequencies, then the cross-over frequencies between adjacent
# frequency bands are computed as the mean between the adjacent center
# frequencies on the frequency scale specified by the variable fscale.
# Also, in center frequency mode, the lowest frequency band always
# extends to frequency 0Hz, while the highest frequency band always
# extends to the Nyquist frequency.
#
# frequency entry type
# keyword_list:[center edge]
mha.mhachain.overlapadd.mhachain.coherence.ftype = center
# With the help of the setting "fail_on_nonmonotonic", users creating
# MHA configurations can include an additional safeguard to protect
# them from unintentionally specifying frequencies in the "f" vector
# that are not sorted. Beware that MHA will sort the frequencies
# given in the f vector if this setting here is "no", which can cause
# unexpected ordering of frequency bands.
#
# Fail if frequency entries are non-monotonic (otherwise sort)
# bool
mha.mhachain.overlapadd.mhachain.coherence.fail_on_nonmonotonic = yes
# With the help of the setting "fail_on_unique_bins", users creating
# MHA configurations can include an additional safeguard to protect
# them from unintentionally specifying a set of frequency bands which
# cannot be achieved given the frequency resolution of the FFT in use.
#
# Fail if center frequencies share the same FFT bin.
# bool
mha.mhachain.overlapadd.mhachain.coherence.fail_on_unique_bins = yes
# The binaural coherence filter low-pass filters a phase vector in
# each frequency band. The time constants for this low pass filtering
# are given below in the configuraion setting "tau". Here, in the
# configuration setting "tau_unit", we can specify the time unit that
# we want the tau values to be interpreted in.
#
# tau unit
# keyword_list:[seconds periods]
mha.mhachain.overlapadd.mhachain.coherence.tau_unit = seconds
# The binaural coherence filter low-pass filters a phase vector in
# each frequency band. The time constants for this low pass filtering
# are given here in the configuraion setting "tau". Above, in the
# configuration setting "tau_unit", we specified the time unit that we
# want the tau values to be interpreted in. The "tau" setting is
# given as a vector, with each value specifying the filter time
# constant of the respective frequency band.
#
# Averaging time constant
# vector<float>:[0,]
mha.mhachain.overlapadd.mhachain.coherence.tau = [0.0697999969 0.268000007 0.197999999 0.115999997 0.0776000023 0.0399999991 0.0465999991 0.0582000017 0.0697999969 0.0504000001 0.0399999991 0.0399999991 0.0189999994 0.0109000001 0.00349000003]
# When deducing the attenuation from the correlation coefficient, an
# exponentiation is performed in the coherence filtering algorithm,
# see Eq. 5 in Grimm et al. 2009. The "alpha" setting is given as a
# vector, with each value specifying the exponent used in the
# respective frequency band.
#
# Gain exponent
# vector<float>:[0,]
mha.mhachain.overlapadd.mhachain.coherence.alpha = [0 0.296999991 0.56400001 0.504999995 0.652999997 0.949999988 1.07000005 1.34000003 1.15999997 0.890999973 0.535000026 0.326999992 0.208000004 0.178000003 0.119000003]
# The binaural coherence filtering algorithm performs
# frequency-dependent attenuation of the signal depending on the
# binaural correlation in the respective frequency band. Too strong
# attenuation may lead to audible artifacts, therefore, you may want
# to restrict the attenuation by giving the minimum permissible gain
# here in dB.
#
# gain limit / dB (zero: no limit)
# float:[,0]
mha.mhachain.overlapadd.mhachain.coherence.limit = -20
# @TODO: Giso write a paragraph.
#
# average mode
# keyword_list:[ipd spec]
mha.mhachain.overlapadd.mhachain.coherence.average = spec
# parser "mha.mhachain.overlapadd.mhachain.fftfilterbank":
#
# FFT based filterbank with overlapping filters
#
# For the dynamic compression which adapts the signal levels in the
# different frequency bands for better audibility of the hearing
# impaired opemMHA users, the signal has to be split into frequency
# band. We do this here with the help of the MHA plugin fftfilterbank,
# which separates our (here) 2 broadband audio channels and produces
# (here) 2*9 narrowband audio channel, with 9 frequency bands
# produced for each input broadband audio channel.
#
# FFT filterbank is not limited to 2 input channels, the above
# paragraph just uses the current settings used here as an example.
# fftfilterbank groups sets of FFT bins into frequency bands.
#
# Further below we will specify the center frequencies of these frequency
# bands. Here, we specify in what units we want to give the
# frequencies below. The default unit to specify frequencies in the
# MHA is Hertz [Hz], but at some places, users have the choice of
# selecting different frequency units. Here, we choose that we want
# to specify the frequencies in Hertz.
#
# Frequency unit
# keyword_list:[Hz kHz Oct Oct/3 Bark Erb ERB_Glasberg1990]
mha.mhachain.overlapadd.mhachain.fftfilterbank.unit = Hz
# The configuration setting f of the fftfilterbank plugin expects a
# vector with the center frequencies of the individual frequency
# bands. The unit for the frequencies is Hertz.
#
# Frequencies
# vector<float>
mha.mhachain.overlapadd.mhachain.fftfilterbank.f = [177 297 500 841 1414 2378 4000 6727 11314]
# The frequency bands that the fftfilterbank plugin produces can have
# different shapes along the frequency axis. The shapes and also the
# cross-over frequencies between adjacent frequency bands can be
# computed on different frequency scales, e.g. linear or logarithmic
# scales. Here we choose the logarithmic frequency scale.
#
# frequency scale of filter bank
# keyword_list:[linear bark log erb ERB_Glasberg1990]
mha.mhachain.overlapadd.mhachain.fftfilterbank.fscale = log
# Frequency bands in the fftfilterbank can have different shapes
# along the frequency axis. Here we select a rectangular shape, which
# also has the effect that frequency bands will not overlap,
# i.e. every frequency bin is part of only exactly one frequency band.
#
# filter overlap type
# keyword_list:[rect linear hanning exp gauss]
mha.mhachain.overlapadd.mhachain.fftfilterbank.ovltype = rect
# Above, when setting the configuration variable f, we used center
# frequencies. We could also have specified the edge frequencies if
# we did the respective setting here. When we specify center
# frequencies, then the cross-over frequencies between adjacent
# frequency bands are computed as the mean between the adjacent center
# frequencies on the frequency scale specified by the variable fscale.
# Also, in center frequency mode, the lowest frequency band always
# extends to frequency 0Hz, while the highest frequency band always
# extends to the Nyquist frequency.
#
# keyword_list:[center edge]
mha.mhachain.overlapadd.mhachain.fftfilterbank.ftype = center
# parser "mha.mhachain.overlapadd.mhachain.dc":
#
# dynamic compression
#
# Our standard dynamic compression algorithm measures the input sound
# level in each frequency band and looks up the gain to be applied in
# a gain table, and applies the gain to the signal in each respective
# band.
# Dynamic compression works by amplifying the signal with gains that
# depend on the level of the input signal itself. Multi-band dynamic
# compression performs input signal level measurement in each
# frequency band to deduce the gain applicable to the respective
# frequency band. Applicable gains would usually be higher for low
# input levels, and lower for high input levels, to compress the
# dynamimc range of the input signal into a smaller dynamic range at
# the output of the compressor.
#
# Because the applicable gain depends on the frequency band as well as
# on the input level, we use a 2-dimensional matrix to specify
# applicable gains. The gaintable matrix has one row of gains for each
# frequency band from the left audio channel, followed by one row of
# gains for each frequency band from the right audio channel. The
# gains given are in dB. Rows are enclosed by square brackets and
# separated by semicola. The entire matrix is enclosed in an
# additional pair of square brackets.
#
# The first element in each row (i.e., taken together, the first
# column) specifies the gain in dB to be applied if the input level in
# the respective frequency band is equal to the value of the gtmin
# element given for that respective band (see gtmin description
# further below).
#
# The following elements in each row specify the gains in dB to be
# applied for other input values, where the input level difference
# between the individual elements in each row of the matrix is
# determined by the value of gtstep for the respective band (see
# gtstep description further below).
#
# This way, each row specifies the gains to be applied to the
# respective frequency bands for certain discrete input levels. The
# actual input levels of the signal will regularly be different from
# any of these discrete input levels. Therefore, the gain values in
# the rows are interpolated as well as extrapolated.
#
# The gain values that we use here in this example corrects the sound
# perception for a hearing impaired listener with a very uncommon
# mid-frequenc hearing loss. Users of the openMHA may change the
# values given here using their own rationale to help hearing-impaired
# users.
#
# Note that we do not apply gains to the highest frequency bands here
# on both sides (9th and 18th row). Having the highest frequency band
# here at all is just a trick to limit the extent of the
# second-highest frequency band, so that it does not extend up to the
# Nyquist frequency.
#
# gaintable data in dB gains
# matrix<float>
mha.mhachain.overlapadd.mhachain.dc.gtdata = [[3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.25217652 3.19876051 3.14534426 3.09192824 3.03851223 2.98509598 2.93167996 2.87826395 2.8248477 2.77143168 2.71801567 2.66459942 2.6111834 2.55776739 2.50435138 2.45093513 2.39751911 2.3441031 2.29068685 2.23727083 2.18385482 2.13043857 2.07702255 2.02360654 1.97019041 1.91677427 1.86335826 1.80994213 1.75652599 1.70310998 1.64969385 1.59627771 1.54297626 1.49012649 1.43776131 1.38589346 1.33453643 1.28370404 1.23341095 1.18367231 1.13450432 1.08592355 1.03794777 0.99059552 0.94388628 0.897840559 0.852479994 0.807827473 0.763907194 0.720744669 0.678367019 0.636802971 0.596083105 0.556239843 0.517307878 0.479324162 0.442328304 0.406362623 0.371472687 0.3377074 0.305119574 0.273766279 0.243709296 0.215015784 0.187758908 0.162018597 0.137882486 0.115447015 0.0948186591 0.0761155114 0.0594691075 0.0450266786 0.032953918 0.0234383717 0.0166937187 0.0129651679 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091];[3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 3.0213232 2.97184587 2.92236876 2.87289166 2.82341456 2.77393746 2.72446012 2.67498302 2.62550592 2.57602882 2.52655172 2.47707462 2.42759728 2.37812018 2.32864308 2.27916598 2.22968888 2.18021154 2.13073444 2.08125734 2.03178024 1.98230302 1.93282592 1.8833487 1.8338716 1.7843945 1.73491728 1.68544018 1.63596308 1.58648586 1.53700876 1.48756051 1.43826199 1.38936996 1.34091103 1.29289711 1.24534023 1.19825315 1.15164924 1.10554242 1.05994761 1.01488006 0.970356047 0.926392674 0.883007944 0.840220809 0.798051357 0.756520808 0.715651631 0.67546761 0.635994017 0.597257793 0.559287488 0.52211374 0.485769123 0.450288653 0.415709794 0.382072896 0.349421382 0.317802191 0.287266105 0.25786829 0.229668856 0.202733368 0.177133754 0.152949139 0.13026692 0.109184042 0.0898086056 0.072261773 0.0566801801 0.0432189405 0.032055527 0.0233947728 0.0174755491 0.0145144099 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602];[2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.30672717 2.2694428 2.23215842 2.19487429 2.15758991 2.12030554 2.08302116 2.04573679 2.00845265 1.97116816 1.93388391 1.89659953 1.85931516 1.8220309 1.78474653 1.74746227 1.7101779 1.67289352 1.63560927 1.59832489 1.56104052 1.52375627 1.48647189 1.44918752 1.41190326 1.37461889 1.33733451 1.30005026 1.26276588 1.22548163 1.18819726 1.15103126 1.11412394 1.07748282 1.04111588 1.00503123 0.969237447 0.933743715 0.89855957 0.863695025 0.82916081 0.794968128 0.761128902 0.727655649 0.694561839 0.661861658 0.629570127 0.597703457 0.566278815 0.53531456 0.50483036 0.474847436 0.445388436 0.416477948 0.388142437 0.360410541 0.333313495 0.306885153 0.28116262 0.256186485 0.232001469 0.208656847 0.186207309 0.164713696 0.144244105 0.124875084 0.106693283 0.0897972956 0.0743002072 0.0603327081 0.0480471887 0.0376231745 0.0292746015 0.0232598148 0.0198956672 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162];[19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 19.1121063 18.7857933 18.4594803 18.1331673 17.8068542 17.4805412 17.1542282 16.8279152 16.5016022 16.1752892 15.8489761 15.5226631 15.1963501 14.8700371 14.5437241 14.217411 13.891098 13.564785 13.238472 12.9121599 12.5858469 12.2595339 11.9332209 11.6069078 11.2805948 10.9542818 10.6279688 10.3016558 9.97542858 9.65052128 9.32738686 9.00611687 8.68681049 8.36954117 8.05438232 7.74141598 7.43072701 7.12240744 6.81655359 6.51327181 6.21267271 5.91487789 5.62001753 5.32823086 5.03967094 4.75450182 4.47290373 4.19507265 3.92122245 3.65158939 3.38643384 3.12604356 2.87073946 2.62087941 2.37686658 2.13915539 1.9082638 1.68478417 1.46940088 1.26291084 1.06625164 0.880539 0.707118213 0.54763639 0.404147387 0.279268205 0.176423103 0.10024336 0.0572652221 0.0492985435 0.0462042913 0.0435788818 0.0414761975 0.0399613008 0.0391140021 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993];[27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.6649914 27.1973724 26.7297535 26.2621326 25.7945137 25.3268929 24.8592739 24.391655 23.9240341 23.4564152 22.9887962 22.5211754 22.0535564 21.5859356 21.1183167 20.6506977 20.1830769 19.7154579 19.247839 18.7802181 18.3125992 17.8449783 17.3773594 16.9097404 16.4421196 15.9745007 15.5068808 15.0392609 14.5716925 14.1056728 13.6419687 13.1806612 12.721839 12.2655935 11.8120241 11.3612347 10.9133368 10.4684505 10.0267038 9.58823299 9.1531868 8.72172356 8.29401493 7.87024641 7.45062065 7.03535604 6.62469339 6.218894 5.81824636 5.423069 5.03371382 4.65057182 4.27408075 3.90473247 3.543082 3.18975997 2.84548926 2.51110268 2.18756986 1.87603021 1.57783771 1.29462206 1.02837479 0.781572819 0.557362139 0.359842569 0.194530517 0.069157958 -0.0048323404 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519];[25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 25.3383598 24.8360844 24.3338108 23.8315353 23.3292599 22.8269863 22.3247108 21.8224354 21.3201599 20.8178864 20.3156109 19.8133354 19.3110619 18.8087864 18.3065109 17.8042374 17.3019619 16.7996864 16.2978039 15.7973957 15.2985764 14.801403 14.3059359 13.8122396 13.3203821 12.830554 12.3439026 11.8608093 11.3814192 10.9058857 10.4343758 9.96706676 9.50414848 9.04582977 8.59233189 8.14389801 7.70079136 7.26329851 6.83173418 6.40644312 5.98780537 5.57624197 5.17222071 4.77626324 4.38895702 4.01096439 3.64303946 3.28604579 2.94098115 2.60900903 2.291502 1.990098 1.70678294 1.44400609 1.20485449 0.993323147 0.813695967 0.651051402 0.499632657 0.361191154 0.237987593 0.133026883 0.0504541956 -0.00372779137 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0392351188 -0.465695798 -0.892156482 -1.31861722];[20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 19.7131367 19.3039474 18.8947563 18.4855652 18.0763741 17.6671848 17.2579937 16.8488026 16.4396114 16.0304222 15.6212311 15.2120399 14.8028498 14.3936586 13.9844685 13.5752773 13.1660862 12.756896 12.3477049 11.9385147 11.5305195 11.1249981 10.7220383 10.3217335 9.92418385 9.52949524 9.13778114 8.74916172 8.36376572 7.98173237 7.60320997 7.22835779 6.85734797 6.49036694 6.12761641 5.76931524 5.41570234 5.06703806 4.72360897 4.38572884 4.05374527 3.72804356 3.40905237 3.09725237 2.79318357 2.4974575 2.21077132 1.93392396 1.66784048 1.41360021 1.17247617 0.945986867 0.735968888 0.544678271 0.374938756 0.23036401 0.115707062 0.0374370888 0.0047570765 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 -0.899999976 -1.89999998 -2.9000001 -3.9000001];[16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.6800957 16.4302292 16.1803608 15.9304934 15.6806259 15.4307575 15.1808901 14.9310226 14.6811552 14.4312878 14.1814203 13.9315519 13.6816845 13.4318171 13.1819496 12.9320822 12.6822138 12.4323463 12.1824789 11.9326115 11.682744 11.4328756 11.1830082 10.9331408 10.6832733 10.4334059 10.1835384 9.93367004 9.6838026 9.43393517 9.18406773 8.93420029 8.68433189 8.43446445 8.18459702 7.93474483 7.6853404 7.43659925 7.18854475 6.94120407 6.69483709 6.4498868 6.20641756 5.96448898 5.72416592 5.4855175 5.24861765 5.01354647 4.78039074 4.54924345 4.32020521 4.09338713 3.86890793 3.64689922 3.42750502 3.21088386 2.99721074 2.7866807 2.57951045 2.37594366 2.17625523 1.9807564 1.78980362 1.60380685 1.42324257 1.24866939 1.08075047 0.920282662 0.768239021 0.625829041 0.494590551 0.376532674 0.274374843 0.191972852 0.125285476 0.0681087598 0.0229965281 -0.00609694468 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518];[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];[7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.38468933 7.26314068 7.14159155 7.0200429 6.89849377 6.77694464 6.65539598 6.53384686 6.4122982 6.29074907 6.16919994 6.04765129 5.92610216 5.80455303 5.68300438 5.56145525 5.4399066 5.31835747 5.19680834 5.07525969 4.95371056 4.8321619 4.71061277 4.58906364 4.46751499 4.34596586 4.22441673 4.10286808 3.98131895 3.85977006 3.73822117 3.61667228 3.49538398 3.37512374 3.25596595 3.13794017 3.02107668 2.90540695 2.79096437 2.67778373 2.56590128 2.45535517 2.34618568 2.23843503 2.13214755 2.02736998 1.92415154 1.82254422 1.72260308 1.62438631 1.52795541 1.43337595 1.34071732 1.25005352 1.16146338 1.07503104 0.990846455 0.909006178 0.829613686 0.752780378 0.678626418 0.607281625 0.538886607 0.473594159 0.411570817 0.352998406 0.298076421 0.247024238 0.20008418 0.157524943 0.119645841 0.0867819265 0.0593102127 0.037657477 0.0223099403 0.0138255749 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091 0.0122906091];[7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 7.10151148 6.98494339 6.8683753 6.75180721 6.63523912 6.51867104 6.40210295 6.28553438 6.16896629 6.0523982 5.93583012 5.81926203 5.70269394 5.58612585 5.46955729 5.3529892 5.23642111 5.11985302 5.00328493 4.88671684 4.77014875 4.65358019 4.5370121 4.42044401 4.30387592 4.18730783 4.07073975 3.95417142 3.83760333 3.72103524 3.60446692 3.48797727 3.37185597 3.25668788 3.14253473 3.02942419 2.91738486 2.80644655 2.69664073 2.5880003 2.48056006 2.37435627 2.26942706 2.16581273 2.06355548 1.96270013 1.86329401 1.76538706 1.66903234 1.57428586 1.48120725 1.38985991 1.30031157 1.21263433 1.12690532 1.04320693 0.961628199 0.882264197 0.805217862 0.730600297 0.658531904 0.589143455 0.522577465 0.45898971 0.398551136 0.341449976 0.287894309 0.238115311 0.192371041 0.150951162 0.114182845 0.0824382529 0.0561440624 0.035793975 0.0219653901 0.0151647292 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602 0.0140045602];[6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.22494793 6.12379742 6.02264738 5.92149687 5.82034636 5.71919632 5.61804581 5.51689529 5.41574526 5.31459475 5.21344423 5.1122942 5.01114368 4.90999317 4.80884314 4.70769262 4.60654211 4.50539207 4.40424156 4.30309105 4.20194101 4.1007905 3.99963999 3.89848971 3.79733944 3.69618893 3.59503865 3.49388838 3.39273787 3.29158759 3.19043732 3.08960795 2.98948026 2.89007497 2.79141355 2.69351768 2.59641123 2.50011873 2.40466595 2.31008053 2.21639109 2.12362814 2.03182411 1.9410131 1.85123134 1.76251745 1.67491245 1.58845985 1.50320649 1.41920209 1.33650017 1.25515807 1.17523754 1.09680498 1.01993227 0.944697142 0.871184289 0.799485624 0.729701817 0.661942959 0.596330285 0.532997668 0.472093254 0.413782269 0.358249366 0.305702299 0.256376028 0.210538164 0.168495417 0.13060233 0.0972723886 0.0689926147 0.0463433899 0.0300256032 0.0208988544 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162 0.0193100162];[20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 20.0989552 19.7565575 19.4141579 19.0717602 18.7293625 18.3869629 18.0445652 17.7021675 17.3597679 17.0173702 16.6749725 16.3325729 15.9901752 15.6477766 15.305378 14.9629803 14.6205816 14.278183 13.9357843 13.5933867 13.250988 12.9085894 12.5661917 12.223793 11.8813944 11.5389967 11.1965981 10.8541994 10.5118866 10.1708937 9.83167458 9.49436951 9.15914154 8.82606316 8.49521542 8.16668129 7.84054995 7.51691723 7.19588423 6.87756062 6.56206274 6.24951649 5.9400568 5.63382912 5.33099174 5.03171492 4.73618555 4.4446063 4.15719843 3.87420678 3.59589958 3.3225739 3.05456042 2.79222775 2.53599024 2.28631496 2.04373288 1.80885136 1.58237064 1.36510527 1.15801215 0.96222806 0.779121876 0.610367179 0.458047092 0.324811637 0.214122444 0.130653352 0.0809893832 0.0669967681 0.0586022325 0.0514796413 0.0457751714 0.0416653454 0.0393666662 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993 0.0389664993];[30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.8797073 30.3579006 29.8360939 29.3142872 28.7924805 28.2706718 27.7488651 27.2270584 26.7052517 26.183445 25.6616383 25.1398315 24.6180248 24.0962181 23.5744114 23.0526047 22.530798 22.0089893 21.4871826 20.9653759 20.4435692 19.9217625 19.3999557 18.878149 18.3563423 17.8345356 17.3127289 16.7909222 16.2691708 15.7491398 15.2316885 14.7169065 14.2048922 13.6957474 13.1895819 12.686512 12.1866636 11.6901684 11.1971703 10.7078209 10.2222843 9.74073982 9.26337624 8.79040241 8.32204151 7.85853958 7.4001627 6.94720364 6.49998379 6.05885744 5.62421703 5.19649887 4.77619076 4.36384106 3.96006823 3.56557608 3.18117023 2.80777979 2.446486 2.09856033 1.76551294 1.44916272 1.15173244 0.875987172 0.625439942 0.404670477 0.219843134 0.0796023607 -0.00325054047 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519 -0.0175450519];[21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.8739223 21.4402618 21.0066013 20.5729427 20.1392822 19.7056236 19.2719631 18.8383026 18.404644 17.9709835 17.5373249 17.1036644 16.6700058 16.2363453 15.8026857 15.3690262 14.9353657 14.5017061 14.0683842 13.6363373 13.2056618 12.7764063 12.3486252 11.9223728 11.4977083 11.0747957 10.6546259 10.2375288 9.82362938 9.41305923 9.00596333 8.60249329 8.20281601 7.80710936 7.41556501 7.02839327 6.64582062 6.26809549 5.89548874 5.52829885 5.16685343 4.81151581 4.46268988 4.1208272 3.7864337 3.46008205 3.14242268 2.83420181 2.53628039 2.24966359 1.97553611 1.7153126 1.47070742 1.24383545 1.03736222 0.854737222 0.699659228 0.559243858 0.428520024 0.308999807 0.202634901 0.112019524 0.0407323353 -0.00604441436 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0206778552 -0.0392351188 -0.465695798 -0.892156482 -1.31861722];[20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 20.1223278 19.7131367 19.3039474 18.8947563 18.4855652 18.0763741 17.6671848 17.2579937 16.8488026 16.4396114 16.0304222 15.6212311 15.2120399 14.8028498 14.3936586 13.9844685 13.5752773 13.1660862 12.756896 12.3477049 11.9385147 11.5305195 11.1249981 10.7220383 10.3217335 9.92418385 9.52949524 9.13778114 8.74916172 8.36376572 7.98173237 7.60320997 7.22835779 6.85734797 6.49036694 6.12761641 5.76931524 5.41570234 5.06703806 4.72360897 4.38572884 4.05374527 3.72804356 3.40905237 3.09725237 2.79318357 2.4974575 2.21077132 1.93392396 1.66784048 1.41360021 1.17247617 0.945986867 0.735968888 0.544678271 0.374938756 0.23036401 0.115707062 0.0374370888 0.0047570765 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 0.00447404897 -0.899999976 -1.89999998 -2.9000001 -3.9000001];[17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.5215282 17.2559662 16.9904041 16.7248421 16.4592819 16.1937199 15.9281588 15.6625967 15.3970356 15.1314735 14.8659124 14.6003504 14.3347893 14.0692272 13.8036661 13.5381041 13.272543 13.0069809 12.7414198 12.4758577 12.2102966 11.9447346 11.6791735 11.4136114 11.1480503 10.8824883 10.6169271 10.3513651 10.085804 9.82024193 9.55468082 9.28911877 9.02355766 8.75799561 8.4924345 8.22689342 7.96197176 7.69796467 7.43490601 7.17283201 6.91196966 6.65269661 6.39508104 6.13919258 5.88510323 5.63289261 5.3826437 5.13444805 4.88840389 4.64461708 4.40320253 4.16428614 3.92800474 3.69450784 3.46396017 3.23654342 3.01245904 2.7919302 2.57520747 2.36257172 2.15434027 1.95087469 1.75258839 1.55995941 1.37354445 1.19399869 1.02210295 0.858799815 0.705245614 0.562886655 0.433573693 0.319744438 0.224729255 0.153304011 0.0991647765 0.0527466349 0.0161228776 -0.00749626243 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518 -0.0135336518];[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]
# Vector of input sound pressure levels for which the gains in the
# leftmost column of the matrix "gtdata" above should be applied.
# Each input sound level given here belongs to a different frequency
# band. If only one value is given here, then this only value will
# apply to all matrix rows / frequency bands.
#
# input level for first gain entry in dB SPL
# vector<float>
mha.mhachain.overlapadd.mhachain.dc.gtmin = [0]
# Vector of step sizes in dB between discrete sound pressure levels
# that determine the supporting points in the mapping from input sound
# levels to applicable gains in matrix "gtdata" above. Each entry in
# this vector specifies the step size for a different row of gtdata.
# If only one value is given here, then this only value will apply to
# all rows / frequency bands.
#
# Each input sound level given here belongs to a different frequency
# band. If only one value is given here, then this only value will
# apply to all frequency bands.
#