Skip to content

Releases: HoerTech-gGmbH/openMHA

Release 4.17.0

25 Feb 14:30
Compare
Choose a tag to compare

DOI

openMHA 4.17.0 provides several updates, extensions, and new features such as enhanced lsl support, a re-worked adaptive feedback cancelling framework which implements a simple NLMS method (see example 31-adaptive-feedback-canceller), compatibility with GCC-11, and more support for mac developers.

Please note that a new publication on openMHA the openMHA software is available, see here for details and please cite it when publishing your openMHA-based research.

Detailed Changelog 4.17.0

New and changed plugins

  • MHAIODummy: new IO plugin for testing configurations, generates zero samples as fast as openMHA can process them and discards openMHA output.
  • ac2xdf: new plugin, writes AC variables into XDF files as used by the the LSL community. It functions much like acrec, but can record multiple variables.
  • trigger2lsl: new plugin, sends LSL messages when audio data passes simple threshold criteria.
  • adaptive_feedback_canceller: now implements a simple NLMS adaptive feedback cancelling algorithm, supports arbitrary fragsize and allows to load other plugins for hearing aid processing
    • Examples for this plugin are available in example directory 31-adaptive-feedback-canceller.
  • prediction_error: The previous implementation of adaptive_feedback_canceller is still available in plugin prediction_error (the original name of the plugin).
    • Examples for this plugin are still available in example directory 08-feedback-suppression.
  • sine: additional check for valid channel indices.
  • acmon: Add capability to handle AC variables containing strings.
  • lsl2ac: make time correction variable the same size as the timestamp variable.
    • Enable lsl2ac to receive marker streams.
  • rmslevel: correct rmslevel AC variable handling and documentation.
  • ac2lsl: respect the stride of AC variables.

Changes for developers

  • Document how to run automated tests on self-compiled openMHA in COMPILATION.md, including potential issues.
  • Avoid duplication of first paragraph in dev manual section 3.2
  • Extend support for Mac developers:
    • Build dependencies are also found when installed through Homebrew instead of MacPorts.
    • ./configure and compilation now works for ARM-based Macs. We cannot yet provide ARM binaries in our pkg installers, however.
    • Extended .gitignore with more macOS build and packaging artifacts.
  • Algorithm communication variables:
    • Replace C interface to AC variables space with C++ interface.
      • All included openMHA plugins have been updated to reflect this change.
    • Replace portions of the AC variables space implementation that were not strictly real-time safe with a real-time safe solution.
    • Interface change: AC variable names now have to be passed through const std::string & parameters.
    • Violations of best practices and non-realtime-safe AC space usages are now detected and exceptions are raised if they are tried. Please refer to AC variables best practices in the developer manual.
    • Convenience classes for publishing numeric scalars as AC variables have been extended with an insert-now flag which allows to use these classes in plugin runtime configuration in more cases than before.
    • Combine both algo_comm header files into a single header file (merged mha_algo_comm.h into mha_algo_comm.hh).
    • Document stride of AC variables containing audio signals.

Updates regarding installation of pre-compiled openMHA installers

  • Windows
    • Windows openMHA installer was built with Jack 1.9.20. Earlier versions of Jack may be incompatible. Please remove your previous Jack installation and install Jack 1.9.20 for Windows if you want to use openMHA with Jack.
    • Update of compiler used to generate binaries from GCC-10 to GCC-11.
    • Plugins using open sound control and labstreaminglayer were accidentally missing from the previous Windows installer. This release contains them again.
  • Linux
    • The package signing key has been extended to be valid until 2025.
    • URL for downloading key the public key has changed to http://apt.hoertech.de/openmha-packaging.pub (see INSTALLATION.md).
    • openMHA deb packages now depend on a keyring package that will automatically update our users' apt to the latest version of this key.
    • Fix starting MHA instances from Octave in Ubuntu 20.04
      • The openMHA deb package for Ubuntu 20.04 contains an extra file for Octave 5.2.0 which fixes a bug in the ubuntu Octave package for that release, see https://savannah.gnu.org/bugs/?59310

Documentation updates

  • Rename manual documents.
  • Consolidate plugin tags (visible in the plugin documentation):
    • Change plugin tag "level" to "level-meter" or "level-modification".
    • Merge plugin tags "beamforming" and "beamformer" into "beamforming".
  • Update example 17 (config as used on Mahalia) after bugfix in Mahalia
  • Update openMHA reference publication.
  • Correct rmslevel AC variable handling and documentation in plugin rmslevel.
  • Several documentation improvements for users and developers.

Robustness and reproducibility

  • Add Wimplicit-fallthrough to Clang compiler flags to have the same compiler checks with clang as with GCC.
  • Ensure that liblo and liblsl have been found as dependencies before creating a Windows installer.
  • Remove unused preprocessor definitions.
  • Make openMHA GCC-11 compatible.
  • Improve liblo inclusion on Windows for compiling OSC plugins.
  • Extend reproducibility checks during tests:
    • Check that exactly the expected git hash is present.
    • Check that each of the expected files actually contains a hash.

Release 4.16.1

20 Sep 15:58
Compare
Choose a tag to compare

DOI

openMHA 4.16.1 is a bugfix release

  • fix: mha_start() in newer Matlab versions on Linux throws error
  • fix: gtfb_analyzer throws error if prepare() is called after release()
  • fix: changes of softclipper configuration variables during runtime are not effective
  • documentation: gtfb_analyzer will run into subnormal processing in case of perfect silence
  • documentation: extended inline documentation for commercial fitting rule wrappers and .m-files

Release 4.16.0

17 Jun 16:01
Compare
Choose a tag to compare

openMHA 4.16.0 provides support of NAL-NL2 and DSLmio5 fitting rules

In this release of openMHA, the openMHA fitting tools (mhagui_fitting.m and mhagui_fitting_offline.m) were extended to work with NAL-NL2 and DSLmio5 gain prescription rules in case these are available on the user's computer. For details, see corresponding README files:
NAL-NL2 DSLmio5.
Further, a template file for the implementation of own fitting rules was added to the tool set.

Another extension of the openMHA tool set is a new graphical user interface for Matlab that can be used to control the generic hearing aid setup provided with the Mahalia operating system for the Portable Hearing Laboratory (see Hardware).

The PortAudio audio IO-library was made more flexible in order to extend audio interface support, in particular for portable hardware platforms.

An example how to interface openMHA with the Python language has been added.

Release 4.15.0

31 Mar 07:59
Compare
Choose a tag to compare

DOI

openMHA 4.15.0 extends the tool set for using Matlab code with openMHA

In this release of openMHA, spectral domain support for the Matlab Coder integration, released with version 4.14.0, was added. This enables the utilization of openMHA's short-term Fourier Transform framework for the implementation of new plugins in Matlab in the spectral domain. The manual was updated accordingly and two new examples (27 and 28) were added that demonstrate the functionality.
Furthermore, state keeping capabilities in context with the application of the Matlab Coder integration were enhanced.

In addition to some further documentation updates and code improvements, the MHAIOPortAudio IO plugin for audio capturing and playback using the PortAudio library was extended towards more flexibility regarding different input and output devices and support of real-time scheduling under Linux systems.

Release 4.14.0

01 Mar 11:00
Compare
Choose a tag to compare

DOI

openMHA 4.14.0 provides a new tool set for using Matlab code with openMHA

The main feature of openMHA release 4.14.0 is a set of documentation, tools and examples that allow the integration of signal processing implemented in Matlab in the openMHA framework based in the Matlab Coder. The Matlab Coder offers two ways to integrate Matlab code into openMHA:

I. It can be used to convert Matlab code into C/C++ that can be compiled by the user with the openMHA software to generate a native openMHA plugin. An code example that can serve as a template for own developments is available.

II. A shared library can be generated from Matlab code that can be loaded by a wrapper plugin into an openMHA configuration - the matlab_wrapper plugin. In this case the user is not required to compile the code by himself. A simple example is available that can be used as template for own plugins as well as an advanced example which is described in detail in the Matlab Coder Integration manual.

This first version of the tool set supports signal processing in the time domain. An extension to spectral processing within openMHA's overlapadd framework is in preparation and will be released soon.

Release 4.13.0

27 Nov 19:23
Compare
Choose a tag to compare

Release 4.13.0

Release 4.12.0

11 Jun 15:23
Compare
Choose a tag to compare

Release 4.12.0

Release 4.11.0

03 Dec 14:44
Compare
Choose a tag to compare
v4.11.0

Release 4.11.0

v4.10.0

27 Jun 21:09
Compare
Choose a tag to compare

Release 4.10.0

v4.9.0

27 Mar 13:30
Compare
Choose a tag to compare

Release 4.9.0