The Open Master Hearing Aid (openMHA)  openMHA
Open community platform for hearing aid algorithm research
rmslevel::rmslevel_if_t Class Reference

Rmslevel plugin. More...

Inheritance diagram for rmslevel::rmslevel_if_t:
Inheritance graph

Public Member Functions

 rmslevel_if_t (MHA_AC::algo_comm_t &iac, const std::string &configured_name)
 Constructor of rmslevel plugin. More...
 
mha_spec_tprocess (mha_spec_t *s)
 Extract level from current STFT spectrum. More...
 
mha_wave_tprocess (mha_wave_t *s)
 Extract level from current time signal block. More...
 
void prepare (mhaconfig_t &signal_dimensions) override
 Prepare rmslevel plugin for signal processing: Resize and reinitialize monitor variables according to number of audio channels specified in parameter, publish applicable monitor variables as AC variables (depends on signal domain). More...
 
void release () override
 Release removes published AC variables from AC space. More...
 
- Public Member Functions inherited from MHAPlugin::plugin_t< UNIT >
 plugin_t (const std::string &, MHA_AC::algo_comm_t &)
 Constructor of plugin template base class. More...
 
virtual ~plugin_t ()
 Destructor of plugin template base class. More...
 
void prepare_ (mhaconfig_t &)
 
void release_ ()
 
bool is_prepared () const
 Flag, if the prepare method is successfully called (or currently evaluated) More...
 
mhaconfig_t input_cfg () const
 Current input channel configuration. More...
 
mhaconfig_t output_cfg () const
 Current output channel configuration. More...
 
- Public Member Functions inherited from MHAParser::parser_t
 parser_t (const std::string &help_text="")
 Construct detached node to be used in the configuration tree. More...
 
 ~parser_t ()
 
void insert_item (const std::string &, base_t *)
 Register a parser item into this sub-parser. More...
 
void remove_item (const std::string &)
 Remove an item by name. More...
 
void force_remove_item (const std::string &)
 Remove an item by name. More...
 
void remove_item (const base_t *)
 Remove an item by address. More...
 
- Public Member Functions inherited from MHAParser::base_t
 base_t (const std::string &)
 Constructor for base class of all parser nodes. More...
 
 base_t (const base_t &)
 Copy constructor for base_t. More...
 
base_toperator= (const base_t &)=default
 
 base_t (base_t &&)=delete
 
base_toperator= (base_t &&)=delete
 
virtual ~base_t ()
 
virtual std::string parse (const std::string &)
 Causes this node to process a command in the openMHA configuration language. More...
 
virtual void parse (const char *, char *, unsigned int)
 This function parses a command and writes the parsing result into a C character array. More...
 
virtual void parse (const std::vector< std::string > &, std::vector< std::string > &)
 
virtual std::string query_perm (const std::string &)
 
virtual std::string query_range (const std::string &)
 
std::string query_version (const std::string &)
 
std::string query_id (const std::string &)
 
std::string query_subst (const std::string &)
 
std::string query_addsubst (const std::string &)
 
std::string query_help (const std::string &)
 
std::string query_cmds (const std::string &)
 
void set_node_id (const std::string &)
 Set the identification string of this parser node. More...
 
void set_help (const std::string &)
 Set the help comment of a variable or parser. More...
 
void add_parent_on_insert (parser_t *, std::string)
 
void rm_parent_on_remove (parser_t *)
 
const std::string & fullname () const
 Return the full dot-separated path name of this parser node in the openMHA configuration tree. More...
 
- Public Member Functions inherited from MHAPlugin::config_t< runtime_cfg_t >
 config_t ()
 
 ~config_t ()
 

Private Member Functions

void update ()
 Called on write access to the configuration variable unit. More...
 
void insert_ac_variables_levels ()
 (Re-)insert AC variables for spectral processing into AC space. More...
 
void insert_ac_variables_peaks_and_levels ()
 (Re-)insert AC variables for waveform processing into AC space. More...
 
void insert_ac_variable_float_vector (std::vector< float > &v, const std::string &acname)
 (Re-)insert a single AC variable. More...
 
void remove_ac_variables ()
 Remove AC variables from AC space. More...
 

Private Attributes

MHAEvents::patchbay_t< rmslevel_if_tpatchbay
 Configuration language event dispatcher. More...
 
MHAParser::vfloat_mon_t level = {"RMS level in W/m^2"}
 Sound power. More...
 
MHAParser::vfloat_mon_t level_db = {"RMS level in dB"}
 Sound pressure level. More...
 
MHAParser::vfloat_mon_t peak = {"peak amplitude in Pa"}
 Peak amplitude. More...
 
MHAParser::vfloat_mon_t peak_db = {"peak amplitude in dB"}
 dB value corresponding to peak amplitude. More...
 
const std::string level_acname
 AC variable name for level. More...
 
const std::string level_db_acname
 AC variable name for level_db. More...
 
const std::string peak_acname
 AC variable name for peak. More...
 
const std::string peak_db_acname
 AC variable name for peak_db. More...
 
MHAParser::kw_t unit
 Configuration variable for selecting result dB scale. More...
 
std::vector< mha_real_tfreq_offsets
 freq_offsets provides the conversion of dB(SPL) to dB(HL) for every frequency bin in the stft used by coloured_intensity. More...
 

Additional Inherited Members

- Public Attributes inherited from MHAParser::base_t
MHAEvents::emitter_t writeaccess
 Event emitted on write access. More...
 
MHAEvents::emitter_t valuechanged
 Event emitted if the value has changed. More...
 
MHAEvents::emitter_t readaccess
 Event emitted on read access. More...
 
MHAEvents::emitter_t prereadaccess
 Event emitted on read access, before the data field is accessed. More...
 
- Protected Member Functions inherited from MHAParser::parser_t
std::string op_subparse (expression_t &)
 
std::string op_setval (expression_t &)
 
std::string op_query (expression_t &)
 
std::string query_type (const std::string &)
 
std::string query_dump (const std::string &)
 
std::string query_entries (const std::string &)
 
std::string query_readfile (const std::string &)
 
std::string query_savefile (const std::string &)
 
std::string query_savefile_compact (const std::string &)
 
std::string query_savemons (const std::string &)
 
std::string query_val (const std::string &)
 
std::string query_listids (const std::string &)
 
void set_id_string (const std::string &)
 
bool has_entry (const std::string &)
 
- Protected Member Functions inherited from MHAParser::base_t
void activate_query (const std::string &, query_t)
 
void notify ()
 
- Protected Member Functions inherited from MHAPlugin::config_t< runtime_cfg_t >
runtime_cfg_t * poll_config ()
 Receive the latest run time configuration. More...
 
runtime_cfg_t * peek_config () const
 Receive the latest run time configuration without changing the configuration pointer. More...
 
void push_config (runtime_cfg_t *ncfg)
 Push a new run time configuration into the configuration fifo. More...
 
void cleanup_unused_cfg ()
 To be called by the push_config() for housekeeping. More...
 
void remove_all_cfg ()
 To be called on Plugin destruction, will delete all runtime configuration list nodes and objects regardless of their in_use flag. More...
 
- Protected Attributes inherited from MHAPlugin::plugin_t< UNIT >
mhaconfig_t tftype
 Member for storage of plugin interface configuration. More...
 
MHA_AC::algo_comm_tac
 AC handle of the chain. More...
 
- Protected Attributes inherited from MHAParser::base_t
query_map_t queries
 
bool data_is_initialized
 
- Protected Attributes inherited from MHAPlugin::config_t< runtime_cfg_t >
runtime_cfg_t * cfg
 Pointer to the runtime configuration currently used by the signal processing thread. More...
 

Detailed Description

Rmslevel plugin.

Measures sound for each block and publishes measured result in monitor variables and AC variables.

Constructor & Destructor Documentation

◆ rmslevel_if_t()

rmslevel::rmslevel_if_t::rmslevel_if_t ( MHA_AC::algo_comm_t iac,
const std::string &  configured_name 
)

Constructor of rmslevel plugin.

Parameters
iacAlgorithm communication variable space, used to store extracted levels
configured_nameConfigured name of this plugins: either "rmslevel" or the name explicitly given after the colon. Used as prefix for all published AC variables.

Member Function Documentation

◆ process() [1/2]

mha_spec_t * rmslevel::rmslevel_if_t::process ( mha_spec_t s)

Extract level from current STFT spectrum.

Parameters
sinput spectrum, not modified by this method.

◆ process() [2/2]

mha_wave_t * rmslevel::rmslevel_if_t::process ( mha_wave_t s)

Extract level from current time signal block.

Parameters
sinput audio block, not modified by this method.

◆ prepare()

void rmslevel::rmslevel_if_t::prepare ( mhaconfig_t signal_dimensions)
overridevirtual

Prepare rmslevel plugin for signal processing: Resize and reinitialize monitor variables according to number of audio channels specified in parameter, publish applicable monitor variables as AC variables (depends on signal domain).

Parameters
signal_dimensionsAudio signal metadata, not modified by this method.

Implements MHAPlugin::plugin_t< UNIT >.

◆ release()

void rmslevel::rmslevel_if_t::release ( void  )
overridevirtual

Release removes published AC variables from AC space.

Reimplemented from MHAPlugin::plugin_t< UNIT >.

◆ update()

void rmslevel::rmslevel_if_t::update ( )
private

Called on write access to the configuration variable unit.

◆ insert_ac_variables_levels()

void rmslevel::rmslevel_if_t::insert_ac_variables_levels ( )
private

(Re-)insert AC variables for spectral processing into AC space.

Needs to be called during prepare() and at the end of every invocation of process() when signal domain is MHA_SPECTRUM.

◆ insert_ac_variables_peaks_and_levels()

void rmslevel::rmslevel_if_t::insert_ac_variables_peaks_and_levels ( )
private

(Re-)insert AC variables for waveform processing into AC space.

Needs to be called during prepare() and at the end of every invocation of process() when signal domain is MHA_WAVEFORM.

◆ insert_ac_variable_float_vector()

void rmslevel::rmslevel_if_t::insert_ac_variable_float_vector ( std::vector< float > &  v,
const std::string &  acname 
)
private

(Re-)insert a single AC variable.

Helper method used by insert_ac_variables_levels and insert_ac_variables_peaks_and_levels. The stride of the AC variable will be set to v.size().

Parameters
vVector of floats to insert into the AC space. Its memory at v.data() must be valid until the next call to process() or release() (whichever occurs earlier). Values may be accessed or altered by other plugins.
acnameName of the AC variable in the AC space.

◆ remove_ac_variables()

void rmslevel::rmslevel_if_t::remove_ac_variables ( )
private

Remove AC variables from AC space.

Called from release().

Member Data Documentation

◆ patchbay

MHAEvents::patchbay_t<rmslevel_if_t> rmslevel::rmslevel_if_t::patchbay
private

Configuration language event dispatcher.

◆ level

MHAParser::vfloat_mon_t rmslevel::rmslevel_if_t::level = {"RMS level in W/m^2"}
private

Sound power.

◆ level_db

MHAParser::vfloat_mon_t rmslevel::rmslevel_if_t::level_db = {"RMS level in dB"}
private

Sound pressure level.

◆ peak

MHAParser::vfloat_mon_t rmslevel::rmslevel_if_t::peak = {"peak amplitude in Pa"}
private

Peak amplitude.

◆ peak_db

MHAParser::vfloat_mon_t rmslevel::rmslevel_if_t::peak_db = {"peak amplitude in dB"}
private

dB value corresponding to peak amplitude.

◆ level_acname

const std::string rmslevel::rmslevel_if_t::level_acname
private

AC variable name for level.

◆ level_db_acname

const std::string rmslevel::rmslevel_if_t::level_db_acname
private

AC variable name for level_db.

◆ peak_acname

const std::string rmslevel::rmslevel_if_t::peak_acname
private

AC variable name for peak.

◆ peak_db_acname

const std::string rmslevel::rmslevel_if_t::peak_db_acname
private

AC variable name for peak_db.

◆ unit

MHAParser::kw_t rmslevel::rmslevel_if_t::unit
private

Configuration variable for selecting result dB scale.

◆ freq_offsets

std::vector<mha_real_t> rmslevel::rmslevel_if_t::freq_offsets
private

freq_offsets provides the conversion of dB(SPL) to dB(HL) for every frequency bin in the stft used by coloured_intensity.

Unused when not in spectral domain and unit=hl.


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