SAL
A C++ library for spatial audio.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes | Friends | List of all members
sal::BinauralMic Class Referenceabstract

#include <binauralmic.h>

Inheritance diagram for sal::BinauralMic:
sal::StereoMicrophone sal::Microphone sal::DatabaseBinauralMic sal::SphericalHeadMic sal::CipicMic sal::KemarMic

Public Member Functions

 BinauralMic (const mcl::Point &position, const mcl::Quaternion orientation, const Int update_length, const HeadRefOrientation reference_orientation=HeadRefOrientation::standard)
 
void SetUpdateLength (Int update_length) noexcept
 
void SetBypass (bool bypass) noexcept
 
virtual void Reset () noexcept
 
bool IsCoincident () const noexcept
 
Int num_channels () const noexcept
 
virtual ~BinauralMic ()
 
virtual void AddPlaneWaveRelative (const Sample *signal, const Int num_samples, const mcl::Point &point, const Int wave_id, Buffer &output_buffer) noexcept
 
- Public Member Functions inherited from sal::StereoMicrophone
 StereoMicrophone (mcl::Point position, mcl::Quaternion orientation)
 
virtual ~StereoMicrophone ()
 
- Public Member Functions inherited from sal::Microphone
 Microphone (mcl::Point position, mcl::Quaternion orientation=mcl::Quaternion::Identity())
 
mcl::Point position () const noexcept
 
virtual void SetPosition (const mcl::Point &position) noexcept
 
mcl::Quaternion orientation () const noexcept
 
virtual void SetOrientation (const mcl::Quaternion &orientation) noexcept
 
void SetHandedness (const mcl::Handedness handedness) noexcept
 
void AddPlaneWave (const MonoBuffer &signal, const mcl::Point &point, Buffer &output_buffer) noexcept
 
void AddPlaneWave (const Sample *input_data, const Int num_samples, const mcl::Point &point, Buffer &output_buffer) noexcept
 
void AddPlaneWave (const Sample input_sample, const mcl::Point &point, Buffer &output_buffer) noexcept
 
void AddPlaneWave (const MonoBuffer &input_buffer, const mcl::Point &point, const Int wave_id, Buffer &output_buffer) noexcept
 
void AddPlaneWave (const Sample input_sample, const mcl::Point &point, const Int wave_id, Buffer &output_buffer) noexcept
 
virtual void AddPlaneWave (const Sample *input_data, const Int num_samples, const mcl::Point &point, const Int wave_id, Buffer &output_buffer) noexcept
 
virtual bool IsOmni () const noexcept
 
mcl::Point GetRelativePoint (const mcl::Point &point) const noexcept
 
virtual ~Microphone ()
 
virtual void AddPlaneWaveRelative (const MonoBuffer &signal, const mcl::Point &point, const Int wave_id, Buffer &output_buffer) noexcept
 

Protected Attributes

HeadRefOrientation reference_orientation_
 

Friends

class BinauralMicInstance
 

Additional Inherited Members

- Static Public Member Functions inherited from sal::Microphone
static bool Test ()
 

Constructor & Destructor Documentation

sal::BinauralMic::BinauralMic ( const mcl::Point &  position,
const mcl::Quaternion  orientation,
const Int  update_length,
const HeadRefOrientation  reference_orientation = HeadRefOrientation::standard 
)

Constructs a Kemar microphone opject. directory contains the hrtf database.

virtual sal::BinauralMic::~BinauralMic ( )
inlinevirtual

Member Function Documentation

void sal::BinauralMic::AddPlaneWaveRelative ( const Sample input_data,
const Int  num_samples,
const mcl::Point &  point,
const Int  wave_id,
Buffer output_buffer 
)
virtualnoexcept

This is implemented by the specific type of microphones. mcl::Point in this case is relative to the microphone reference system. This is the most important function of this object. This filters the sample sample as a function of the position from where the sound is incoming point. Info for developer: the directivity should preferably have a maximum in the direction of the x-axis For anthropomorphic directivities, the facing direction is the x-axis. An arrow going from the jaw trough the skull and up should preferrably be in the direction of plus-z-axis. Other choices could be made, as long as the conventions are kept at higher levels.

Implements sal::Microphone.

bool sal::BinauralMic::IsCoincident ( ) const
inlinevirtualnoexcept

Implements sal::Microphone.

Int sal::BinauralMic::num_channels ( ) const
inlinevirtualnoexcept

Implements sal::Microphone.

void sal::BinauralMic::Reset ( )
virtualnoexcept

Resets the state of the microphone (if any).

Reimplemented from sal::Microphone.

void sal::BinauralMic::SetBypass ( bool  bypass)
noexcept

When bypass_ is true, the signals will not be filtered by the HRTF

void sal::BinauralMic::SetUpdateLength ( Int  update_length)
inlinenoexcept

Friends And Related Function Documentation

friend class BinauralMicInstance
friend

Member Data Documentation

HeadRefOrientation sal::BinauralMic::reference_orientation_
protected

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