SpHr_BRIR_LBS_NeumannKU100 [ flags  ] [ keywords ]


Head-Related Impulse Responses (BRIR) for the Neumann KU100 dummy head in a 'large broadcast studio ' (LBS) at Westdeutscher Rundfunk Broadcast Studios. BRIRs supplied by the Institute of Communication Systems, University of Applied Sciences. http://audiogroup.web.th-koeln.de/wdr_irc.html


Suggested Keywords

Source = speaker  Selects between several speaker sources (AD Systems, Sonic Ball)

    speaker = 1:  Center - Sonic Ball

    speaker = 2:  Center - AD Systems stack

    speaker = 3:  Left - Sonic Ball

    speaker = 4:  Left - AD Systems stack


Mount = rot      Determines how the Neumann KU100 dummy head was rotated.

    rot = 1:  Microphone stand

    rot = 2:  Full rotation mount


Optional Flags

/Deg = azimuth 

    Specifies the azimuth, in degrees, for which impulses are returned and other functions are performed. azimuth can range from -179° to 180° with 0° being between the left and right speakers. elevation may be specified but is ignored. azimuth is set as the variable V_Az. The corresponding index of the impulse is set as V_Index.


/Rad = azimuth

    Specifies the azimuth, in degrees, for which impulses are returned and other functions are performed. azimuth can range from -π/2 to π/2 with 0 being between the left and right speakers. elevation may be specified as second parameter but is ignored. azimuth is set as the variable V_Az. The corresponding index of the impulse is set as V_Index.


/Ind = index    Specifies the index for which impulses are returned and other functions are performed.


/DF = dfRef    dfRef is an optional datafolder reference. Destination waves are written to this existing datafolder, overriding any datafolder specified by destWaveName. Waves are written to the current datafolder if not specified here or in destWaveName.


/Imp = impulseDest

    Specifies the destination for impulses corresponding to directions specified by the /Deg, /Rad, or /Ind flags.


/Ramp = { on, off }

    Specifies the length of on and off ramps, in milliseconds, applied to impulses. If omitted, default ramps of 0.15 ms and 0.7 ms are used, respectively.


/Conv = { waveSrc, [ Dest ] }

    Convolves waveSrc with impulses writing the results to Dest. If Dest is omitted, waveSrc is overwritten.


/Mt = mt     If mt is set to 1, convolutions are multithreaded. A single thread is used if mt is 0. This flag only applies to the /Conv flag. The benefits of multithreading are small unless waveSrc is very long.


/Az = { azimuthsDest, [ format ]}

    Returns azimuths corresponding to DataSet in the wave specified by azimuthsDest.

    format = 0: values are in radians, ranging from 0 to 2π. (Default if format omitted).

    format = 1: values in radians are shifted so that they range from -π to π.

    format = 2: values are in degrees, ranging from 0 to 360.

    format = 3: values in degrees are shifted so that they range from -179 to 180.


/CDFC = { cdfc [, cdfcDest ] }

    cdfc = 1, Apply Common Diffuse Field Compensation filter.

    cdfc = 0, No filter is applied.

    cdfcDest  Destination wave specification for CDFC (optional).


/HPCF = { hpStr [, hpcfDest ] }

    Apply Headphone correction filter.

    hpStr must be one of the following: Beyerdynamic DT250, Beyerdynamic DT770PRO 250Ohms, Beyerdynamic DT880, Beyerdynamic DT990PRO, Sennheiser HD430, Sennheiser HD480, Sennheiser HD560ovationII, Sennheiser HD565ovation, Sennheiser HD600, Sennheiser HD650, AudioTechnica ATH M50, Shure SRH940, Presonus HD7, AKG K141MK2, AKG K240DF, AKG K240MK2, AKG K271MK2, AKG K271STUDIO, AKG K601, AKG K701, AKG K702, AKG K1000 Closed, AKG K1000 Open. Spaces may be replaced with "_". Other minor omissions or variations are also allowed.

    hpcfDest  Destination wave specification for selected HPCF (optional).


DFT output flags

/Pnts = pnts    Number of DFT points. Values shorter the length of impulses are ignored. If a non-compatible number of points is passed, the next larger compatible number of points is used.


/Mag = { MagDest [ , dB ] }

    MagDest specifies the destination wave for DFT amplitude values.

    dB = 0: output is linear (Pa)

    dB = 1: output is in dB, computed as 20*log(mag)

    dB = 2: output is in dB, referenced to 20 µPa, computed as 20*log(mag/0.00002) (Default if dB is omitted)


/Phi = { PhiDest [ , unwrap ] }

    PhiDest specifies the destination wave for DFT phase values.

    unwrap = 0: values are wrapped (Default if unwrap is omitted)

    unwrap = 1: values are unwrapped using π modulus.


/IPD = { IPDDest [ , unwrap ] }

    IPDDest specifies the destination wave interaural phase difference (IPD) values.

    unwrap = 0: IPD is computed using wrapped phase values.

    unwrap = 1: IPD is computed using unwrapped phase values. (Default if unwrap is omitted)


/ITD = { ITDDest [ , unwrap ] }

    ITDDest specifies the destination wave interaural time difference (ITD) values.

    unwrap = 0: ITD is computed as IPD/frequency, using wrapped phase values.

    unwrap = 1: ITD is computed as IPD/frequency, using unwrapped phase values. (Default if unwrap is omitted)


/Oct = Denom    DFT results are smoothed with a window of width calculated as: frequency*10^(3.0103/(10*Oct).


/XWav = xSrc    xSrc is the specification to a wave providing frequencies for which DFT values are interpolated. One may, for instance, pass a wave of filter-bank center frequencies. DFT destination waves may then be displayed vs xSrc.


/Xlog = { numPnts [,  xlogDest, firstX, lastX ] }

    DFT frequencies are interpolated so that they are logarithmically spaced.

    numPnts is the number of points for which interpolated DFT values are obtained. 

    xlogDest  Destination for a wave of interpolation frequencies. When provided, DFT results can be displayed vs  xlogDest.

    firstX  Starting interpolation frequency, limited to a value greater than the frequency of the second DFT bin.  i.e.,  firstX > 1/((numPnts-2)*(1/48,000))) 

    lastX  Last interpolation frequency, limited to < 24,000 Hz.


Optional Keywords

AzElFile = AzElFileString

    Optional full path (HFS) and file name of an Igor *.ibw binary wave indicating azimuths (in columns 0) and elevations (in columns 1).


IRsFile = IRsFileString

    Optional full path (HFS) and file name of an Igor *.ibw binary wave providing impulses. The number of columns in $IRsFileString should equal the number of rows in $AzElFileString.


Example

Function SpHr_BRIR_LBS_NeumannKU100_Example()

    // Make gaussian noise (monaural)

    SpHr_SignalGaussian/ms=50/dB=70/Sp=1/ramp=20/HP=50 48000, Noise

    // Get impulses, amplitude spectra, and convolved Noise signals

    // corresponding to 10° azimuth and 10° elevation.

    SpHr_BRIR_LBS_NeumannKU100 /Deg={10,10}/Imp=impulses/Mag=Mag/Oct=12/Conv={noise,SpatializedNoise} 

    // Display impulses

    Display/K=1 impulses[][1]/TN=right,impulses[][0]/TN=left

    ModifyGraph rgb(left)=(0,0,65535)

    // Display Spatialized noises

    Display/K=1 SpatializedNoise[][1]/TN=right,SpatializedNoise[][0]/TN=left

    ModifyGraph rgb(left)=(0,0,65535)

    // Display impulse amplitude spectra

    Display/K=1 Mag[][1]/TN=right,Mag[][0]/TN=left

    ModifyGraph rgb(left)=(0,0,65535)

End

Contact: Brian