しかし第34話のラストシーンでは、再生デバイス→プロパティを見ると、残念ながら16bitしか選択肢が表示されず、24bitや32bitが表示されませんでした.(windows7にて)
そこで今回はdescriptorを見直しました.書き換えたdescriptorファイルをこちらにupしておきました.動作保証なんかせんぞ.
↓16bit/24bitが表示されるようになりました.32bitが表示されないのはわたしのwin7が何かの病気に罹っているせいだと思いひとまずスルーします.他のDACやDCCでも32bitが表示されないんでね.32bitを見たことがない.
-------
16/24bitが表示されるようになるために、descriptorの重要なところを説明します.
【VID/PID】
3つ記述して2つをコメントアウトしてあります.
1つ目はFX2LPのVID/PIDなのでDACじゃないので使えないのは当然.
2つ目はTI PCM2704のVID/PID.動作がどことなく変なのでやめとく.
3つ目はYAMAHAの何かのVID/PID.C:\Windows\inf\wdma_usb.inf内に登録されているので拝借しました.
;;Cypress FX2LP
; dw 0B404H ;; Vendor ID
; dw 0410H ;; Product ID (Sample Device)
; dw 0000H ;; Product version ID
;;TI 2704
; dw 0BB08H ;; Vendor ID -- "Texas Instruments Japan"
; dw 0427H ;; Product ID (0x2704 for PCM2704)
; dw 0001H ;; Product version ID / bcdDevice 0x0100
;;0499&PID_1001 yamaha?
dw 9949H ;; Vendor ID 0499
dw 0130H ;; Product ID 3001
dw 0000H
【interface descriptor】
AlternateSetting1、2,3を設ける.それぞれが16bit、24bit、32bitに対応します.
;; Audio Stream I/F Alt. Setting 1
;; 16bit
db 09H ;; bLength
db 04H ;; bDescriptorType
db 01H ;; bInterfaceNumber (Interface #1)
db 1 ;; bAlternateSetting
;; Audio Stream I/F Alt. Setting 2
;; 24bit
db 09H ;; bLength
db 04H ;; bDescriptorType
db 01H ;; bInterfaceNumber (Interface #1)
db 2 ;; bAlternateSetting
;; Audio Stream I/F Alt. Setting 3
;; 32bit
db 09H ;; bLength
db 04H ;; bDescriptorType
db 01H ;; bInterfaceNumber (Interface #1)
db 3 ;; bAlternateSetting
【Audio Streaming Format Type Descriptor】
AlternateSetting1、2,3の配下に、24bit/192kHzなどを記述する.
;; 16bit
db 2 ;; bSubframeSize
db 16 ;; bBitResolution ;; 16bit
db 05H ;; bSamFreqType
db 00,7DH,00 ;; tSamFreq[1] 0x007D00 (32000 Hz)
db 44H,0ACh,00 ;; tSamFreq[2] 0x00AC44 (44100 Hz)
db 80h,0BBh,00 ;; tSamFreq[3] 0x00BB80 (48000 Hz)
db 00h,077h,01h ;; tSamFreq[4] 0x017700 (96000 Hz)
db 00h,0EEh,02h ;; tSamFreq[5] 0x02EE00 (192000 Hz)
;; 24bit
db 3 ;; bSubframeSize
db 24 ;; bBitResolution ;; 24bit
;; 32bit
db 4 ;; bSubframeSize
db 32 ;; bBitResolution ;; 32bit
2-16bit、3-24bit、4-32bitという対応関係がある.これは2BYTE-16bit、3BYTE-24bit、4BYTE-32bitの関係である.4BYTE-24bitにするとwindowsデバドラに却下されるみたい.
ここは重要かなと思ったところは以上です.
次はEndPointが動くようにします.かしこ
→INDEXページへ
0 件のコメント:
コメントを投稿