SpHr_BRIR_CR7_NeumannKU100 [ flags  ] [ keywords ]


Head-Related Impulse Responses (BRIR) for the Neumann KU100 dumy head in 'Control Room 7' (CR7) 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 one of two speakers (Genelec 8260a)

    speaker = 1:  Left speaker

    speaker = 2:  Right speaker


Mount = rot      Determines how the Neumann KU100 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 (and elevation) are set as variables V_Az. The corresponding index of the impulse is set as V_Index.


/Rad = { azimuth [, elevation] }

    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 but is ignored. azimuth (and elevation) are set as variables 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 destWaveNames. Waves are written to the current datafolder if not specified here or in destWaveNames.


/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 are in degrees, ranging from 0 to 360.

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

    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 [, hpcfDestWave ] }

    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.

    hpcfDestWave  Destination wave specification for selected HPCF (optional).

    Another option is to use an app like Rogue Amoeba's SoundSource:  https://rogueamoeba.com/soundsource/


DFT output flags

/Pnts = pnts    Number of DFT points. Values shorter the length of BRIRCR7NeumannKU100s 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).


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

    Obtains logarithmically spaced frequency values for interpolation.

    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.


/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_CR7_NeumannKU100_Example()

    // Make gaussian noise (monaural)

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

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

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

    SpHr_BRIR_CR7_NeumannKU100 /Deg={0,0}/Imp=impulses/Mag=impulseMag/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 impulseMag[][1]/TN=right,impulseMag[][0]/TN=left

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

End

Contact: Brian