How to Build and Use Microphone Arrays for Windows Vista February 3, 2012


Firmware for Windows Vista–Supported USB Microphone Arrays



Download 0.57 Mb.
Page2/10
Date05.08.2017
Size0.57 Mb.
#26643
1   2   3   4   5   6   7   8   9   10

Firmware for Windows Vista–Supported USB Microphone Arrays


This section contains general guidelines on how to create the firmware for a Windows Vista–supported USB microphone array. For a detailed example of a descriptor for a 4-element linear microphone array, see Appendix A.

Microphone Array Geometry Descriptor Format


USB Audio microphone arrays must describe themselves to the system that is using them. This means that the parameters that are required to describe the array must be embedded in the device itself. Geometry information is retrieved from the device by using a GET_MEM request. The addressable entity identifier (ID) that the device returns is the input terminal that describes itself as the microphone array and the associated control interface. The offset of the information must be 0. For a detailed example, see the input terminal descriptor sample in Appendix A.

Note: The GET_MEM request is defined by the USB Audio 1.0 specification, sections 5.2.1.2 and 5.2.4.1.2.

To interpret the descriptor data, the USB Audio device geometry information must have a standard format. USB microphone arrays that are intended to work with the Windows Vista USB Audio class driver must use the microphone array information format that is defined in the following table.



Microphone Array Information

Offset

Field

Size

Value

Description

0

guidMicArrayID

16

Globally unique identifier (GUID)

A unique ID that marks the beginning of the microphone array information in memory ( {07FE86C1-8948-4db5-B184-C5162D4AD314} ).

16

wDescriptorLength

2

Number

The length in bytes of the microphone array information, including the GUID and length fields.

18

wVersion

2

Binary coded decimal (BCD)

The version number of the microphone array specification, followed by this descriptor.

20

wMicArrayType

2

Number

The following values are defined:

00: Linear.

01: Planar.

02: 3-Dimensional (3D).



03-FFFF: Reserved

22

wWorkVertAngBeg

2

Number

The start of the work volume vertical angle.

24

wWorkVertAngEnd

2

Number

The end of the work volume vertical angle.

26

wWorkHorAngBeg

2

Number

The beginning of the work volume horizontal angle.

28

wWorkHorAngEnd

2

Number

The end of the work volume horizontal angle.

30

wWorkFreqBandLo

2

Number

The lower bound of the work frequency range.

32

wWorkFreqBandHi

2

Number

The upper bound of the work frequency range.

34

wNumberOfMics

2

Number

The number of individual microphone definitions that follow.

36

wMicrophoneType(0)

2

Number

A number that uniquely identifies the type of microphone 0:
00: Omni-Directional
01: SubCardioid
02: Cardioid
03: SuperCardioid
04: HyperCardioid
05: 8 Shaped
0F - FF: Vendor defined

38

wXCoordinate(0)

2

Number

The x-coordinate of microphone 0.

40

wYCoordinate(0)

2

Number

The y-coordinate of microphone 0.

42

wZCoordinate(0)

2

Number

The z-coordinate of microphone 0.

44

wMicVertAngle(0)

2

Number

The main response axis (MRA) vertical angle of microphone 0.

46

wMicHorAngle(0)

2

Number

The MRA horizontal angle of microphone 0.









Microphone definitions 1 - n-2.

34+((n-1)*12)

wMicType(n-1)

2

Number

A number that uniquely identifies the type of microphone n-1:
00: Omni-Directional
01: SubCardioid
02: Cardioid
03: SuperCardioid
04: HyperCardioid
05: 8 Shaped
0F - FF: Vendor defined

36+((n-1)*12)

wXCoordinate(n-1)

2

Number

The x-coordinate of microphone n-1.

38+((n-1)*12)

wYCoordinate(n-1)

2

Number

The y-coordinate of microphone n-1.

40+((n-1)*12)

wZCoordinate(n-1)

2

Number

The z-coordinate of microphone n-1.

42+((n-1)*12)

wMicVertAngle(n-1)

2

Number

The MRA vertical angle of microphone n-1.

44+((n-1)*12)

wMicHorAngle(n-1)

2

Number

The MRA horizontal angle of microphone n-1.


Notes:

  • Including a version number in the microphone array allows this structure to be updated after the original specifications are implemented while still maintaining backward compatibility. The version number is a BCD value. For example, the current version (1.0) is represented as 0x0100.

  • The offset and size values are in bytes.

  • All angles are expressed in units of 1/10000 radians. For example 3.1416 radians is expressed as 31416. The value can range from -31416 to 31416, inclusive.

  • X-y-z coordinates are expressed in millimeters. The value can range from  32767 to 32767, inclusive.

  • The coordinate system’s orientation, axes, and the positive directions of the angles are shown in Appendix B.

  • Frequency values are expressed in Hz. The range of frequency values is bounded only by the size of the field and assumes that only reasonable values are used.





Download 0.57 Mb.

Share with your friends:
1   2   3   4   5   6   7   8   9   10




The database is protected by copyright ©ininet.org 2024
send message

    Main page