Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Scroll Documents: Update page title prefix

Overview

ST Headphone Virtualization module

Discussion

The HPV module provides functions to handle audio virtualization on headphones. Goals of this module are to have a virtualization effect and to feel sounds less aggressively for the ears. Front channels (from stereo or multichannel files) are not heard on the side close to the ears but are narrowed in front of the listener, while surround and rear sounds are played around the listener. Some reverberation and Out of Head effects inside the algorithm gives greater virtualization and allows feeling smoother sounds (attenuation of HP vibrations).

The HPV module supports 1.0, 2.0, 5.1 and 7.1 interleaved 32-bit I/O data at a 48 kHz sampling frequency, with a minimum input frame size of 2ms (96 samples per channel). For MIPS optimization reasons, frame length must be a multiple of 4 samples.

Type Definition

Code Block
typedef struct _ModuleSTHeadphoneVirt
{
    ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
    INT32 nAPIResult;                             // Return status for last call into the ST API
    INT32 audioMode;                              // Audio mode 1 - C, 2 - L,R, 7 - L,R,C,Ls,Rs, 11 - L,R,C,Ls,Rs,Csl,Csr
    INT32 lfeEnable;                              // Enable LFE on input stream
    INT32 enable;                                 // Block enable
    INT32 strength;                               // Strength (0 - 100)
    INT32 enableHeadTracking;                     // Enable head tracking
    INT32 azimuth;                                // Head rotation (-179 - 180) degrees
    void * pGlobals;                              // Points to the global variables structure
} ModuleSTHeadphoneVirtClass;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

nAPIResult

int

state

0

0

Unrestricted

audioMode

int

const

0

2

Unrestricted

lfeEnable

int

const

0

0

Unrestricted

enable

int

parameter

0

1

0:1:1

strength

int

parameter

0

0

0:1:100

enableHeadTracking

int

parameter

0

0

0:1:1

azimuth

int

parameter

0

0

-179:1:180

degrees

pGlobals

void *

const

1

Unrestricted

Pins

Input Pins

Name: in

Description: audio input

...

Sample rate range: 48000

Complex support: Real

Output Pins

Name: out

Description: audio output

Data type: fract32

MATLAB Usage

File Name: st_hpv_module.m

...