Skip to content

Releases: HoerTech-gGmbH/openMHA

v4.18.0

16 May 16:41
Compare
Choose a tag to compare

DOI

openMHA 4.18.0 contains new examples and adds support for the latest versions of the supported operating systems.

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

New examples

Example 32-ci-vocoder

  • CI vocoder: Several new plugins and configurations for simulating and auralizing the (pulse-based) output of a CI for a given input signal (audio file or real-time microphone signal) are provided. Two signal processing methods have been implemented: the ACE ("advanced combination encoder", "n-of-m") strategy and the CIS ("continuous interleaved sampling") strategy. This example includes shell scripts for easy user interaction as well as numerous Matlab/Octave helper tools.

Example 33-compile-plugin-on-PHL

  • Compilation of openMHA plugins on the Portable Hearing Lab (PHL): Tools and an example have been added to easily compile single plugins directly on the PHL. Please note that the current operating system for the PHL Mahalia 4.18.0-r0 is required which has been released together with openMHA 4.18.0.

Example 34-DNN-based-speech-enhancement

  • Deep machine learning-based low-latency, real-time speech enhancement: Three approaches that use deep neural networks (DNN) trained in PyTorch for real-time speech enhancement in openMHA are provided. The methods run with an algorithmic delay of 5.4 ms using the four microphone input signals of the behind-the-ear ear-level device available with the PHL (but not using the PHL for processing). This is the first set of DNN-based algorithms provided with openMHA. This example also contains configurations for bilateral Adaptive Differential Microphones (ADM) and a binaural Minimum-Variance Distortionless-Response (MVDR) beamformer for reference.

Example 35-hearing-loss-simulation

  • Hearing loss simulation: Two effects are implemented: A level-dependent amplification in 32 frequency bands is applied to simulate loss of sensitivity and spectral smearing is introduced to simulate a reduced frequency selectivity of the impaired cochlea. Two versions of the configuration are provided, one for live signal processing, one for sound file processing. Parameters can be customized according to the user requirements.

Support for operating systems

  • Mahalia (Linux operating system for the PHL): The Mahalia 4.18.0-r0 disk image is available for download under mahalia.openmha.org.

  • Ubuntu 24.04: Support for the latest Ubuntu LTS version has been added.

  • macOS: A Homebrew formula for the installation of openMHA replaces the .pkg installer. Please note that for an upgrade from the .pkg-installed version of openMHA the uninstallation of the previous version is required - for details, see the installation manual.
    ARM-based Mac computers (Apple Silicon) are also supported by this installer.

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