← Documents Documentation/sound/cards/maya44.rst GitHub 원문 ↗

Linux 6.18.37 · Sound

Maya44 USB 오디오 지원 참고 사항

Maya44 USB의 개발 상태, ICE1724 전역 표본률, PCM 매핑, phantom·bypass·crossmix·S/PDIF 출력 제어를 설명합니다.

Source pathDocumentation/sound/cards/maya44.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

maya44.rst:1-186

Maya44 USB의 개발 상태, ICE1724 전역 표본률, PCM 매핑, phantom·bypass·crossmix·S/PDIF 출력 제어를 설명합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 =================================
2 Notes on Maya44 USB Audio Support
3 =================================
4
5 .. note::
6 The following is the original document of Rainer's patch that the
7 current maya44 code based on. Some contents might be obsoleted, but I
8 keep here as reference -- tiwai
9
10 Feb 14, 2008
11
12 Rainer Zimmermann <[email protected]>
13
14 STATE OF DEVELOPMENT
15 ====================
16
17 This driver is being developed on the initiative of Piotr Makowski ([email protected]) and financed by Lars Bergmann.
18 Development is carried out by Rainer Zimmermann ([email protected]).
19
20 ESI provided a sample Maya44 card for the development work.
21
22 However, unfortunately it has turned out difficult to get detailed programming information, so I (Rainer Zimmermann) had to find out some card-specific information by experiment and conjecture. Some information (in particular, several GPIO bits) is still missing.
23
24 This is the first testing version of the Maya44 driver released to the alsa-devel mailing list (Feb 5, 2008).
25
26
27 The following functions work, as tested by Rainer Zimmermann and Piotr Makowski:
28
29 - playback and capture at all sampling rates
30 - input/output level
31 - crossmixing
32 - line/mic switch
33 - phantom power switch
34 - analogue monitor a.k.a bypass
35
36
37 The following functions *should* work, but are not fully tested:
38
39 - Channel 3+4 analogue - S/PDIF input switching
40 - S/PDIF output
41 - all inputs/outputs on the M/IO/DIO extension card
42 - internal/external clock selection
43
44
45 *In particular, we would appreciate testing of these functions by anyone who has access to an M/IO/DIO extension card.*
46
47
48 Things that do not seem to work:
49
50 - The level meters ("multi track") in 'alsamixer' do not seem to react to signals in (if this is a bug, it would probably be in the existing ICE1724 code).
51
52 - Ardour 2.1 seems to work only via JACK, not using ALSA directly or via OSS. This still needs to be tracked down.
53
54
55 DRIVER DETAILS
56 ==============
57
58 the following files were added:
59
60 * pci/ice1724/maya44.c - Maya44 specific code
61 * pci/ice1724/maya44.h
62 * pci/ice1724/ice1724.patch
63 * pci/ice1724/ice1724.h.patch - PROPOSED patch to ice1724.h (see SAMPLING RATES)
64 * i2c/other/wm8776.c - low-level access routines for Wolfson WM8776 codecs
65 * include/wm8776.h
66
67
68 Note that the wm8776.c code is meant to be card-independent and does not actually register the codec with the ALSA infrastructure.
69 This is done in maya44.c, mainly because some of the WM8776 controls are used in Maya44-specific ways, and should be named appropriately.
70
71
72 the following files were created in pci/ice1724, simply #including the corresponding file from the alsa-kernel tree:
73
74 * wtm.h
75 * vt1720_mobo.h
76 * revo.h
77 * prodigy192.h
78 * pontis.h
79 * phase.h
80 * maya44.h
81 * juli.h
82 * aureon.h
83 * amp.h
84 * envy24ht.h
85 * se.h
86 * prodigy_hifi.h
87
88
89 *I hope this is the correct way to do things.*
90
91
92 SAMPLING RATES
93 ==============
94
95 The Maya44 card (or more exactly, the Wolfson WM8776 codecs) allow a maximum sampling rate of 192 kHz for playback and 92 kHz for capture.
96
97 As the ICE1724 chip only allows one global sampling rate, this is handled as follows:
98
99 * setting the sampling rate on any open PCM device on the maya44 card will always set the *global* sampling rate for all playback and capture channels.
100
101 * In the current state of the driver, setting rates of up to 192 kHz is permitted even for capture devices.
102
103 *AVOID CAPTURING AT RATES ABOVE 96kHz*, even though it may appear to work. The codec cannot actually capture at such rates, meaning poor quality.
104
105
106 I propose some additional code for limiting the sampling rate when setting on a capture pcm device. However because of the global sampling rate, this logic would be somewhat problematic.
107
108 The proposed code (currently deactivated) is in ice1712.h.patch, ice1724.c and maya44.c (in pci/ice1712).
109
110
111 SOUND DEVICES
112 =============
113
114 PCM devices correspond to inputs/outputs as follows (assuming Maya44 is card #0):
115
116 * hw:0,0 input - stereo, analog input 1+2
117 * hw:0,0 output - stereo, analog output 1+2
118 * hw:0,1 input - stereo, analog input 3+4 OR S/PDIF input
119 * hw:0,1 output - stereo, analog output 3+4 (and SPDIF out)
120
121
122 NAMING OF MIXER CONTROLS
123 ========================
124
125 (for more information about the signal flow, please refer to the block diagram on p.24 of the ESI Maya44 manual, or in the ESI windows software).
126
127
128 PCM
129 (digital) output level for channel 1+2
130 PCM 1
131 same for channel 3+4
132
133 Mic Phantom+48V
134 switch for +48V phantom power for electrostatic microphones on input 1/2.
135
136 Make sure this is not turned on while any other source is connected to input 1/2.
137 It might damage the source and/or the maya44 card.
138
139 Mic/Line input
140 if switch is on, input jack 1/2 is microphone input (mono), otherwise line input (stereo).
141
142 Bypass
143 analogue bypass from ADC input to output for channel 1+2. Same as "Monitor" in the windows driver.
144 Bypass 1
145 same for channel 3+4.
146
147 Crossmix
148 cross-mixer from channels 1+2 to channels 3+4
149 Crossmix 1
150 cross-mixer from channels 3+4 to channels 1+2
151
152 IEC958 Output
153 switch for S/PDIF output.
154
155 This is not supported by the ESI windows driver.
156 S/PDIF should output the same signal as channel 3+4. [untested!]
157
158
159 Digital output selectors
160 These switches allow a direct digital routing from the ADCs to the DACs.
161 Each switch determines where the digital input data to one of the DACs comes from.
162 They are not supported by the ESI windows driver.
163 For normal operation, they should all be set to "PCM out".
164
165 H/W
166 Output source channel 1
167 H/W 1
168 Output source channel 2
169 H/W 2
170 Output source channel 3
171 H/W 3
172 Output source channel 4
173
174 H/W 4 ... H/W 9
175 unknown function, left in to enable testing.
176
177 Possibly some of these control S/PDIF output(s).
178 If these turn out to be unused, they will go away in later driver versions.
179
180 Selectable values for each of the digital output selectors are:
181
182 PCM out
183 DAC output of the corresponding channel (default setting)
184 Input 1 ... Input 4
185 direct routing from ADC output of the selected input channel
186
187

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

문서 성격과 개발 상태

1-54

이 문서는 현재 Maya44 코드의 기반이 된 Rainer 패치의 2008-02-14 원문이다. 일부 내용은 오래됐을 수 있지만 참고용으로 보존되어 있다. 개발은 Piotr Makowski의 제안과 Lars Bergmann의 지원으로 시작됐고 Rainer Zimmermann이 수행했으며, ESI는 개발용 Maya44 샘플 카드를 제공했다.

상세 프로그래밍 정보 확보가 어려워 카드별 정보 일부는 실험과 추정으로 알아냈고, 특히 여러 GPIO 비트 정보는 여전히 빠져 있다. 이 문서는 2008-02-05 alsa-devel 메일링 리스트에 공개된 첫 테스트 버전을 설명한다.

시험 결과 모든 표본률의 재생·캡처, 입출력 레벨, crossmixing, line/mic 전환, phantom power, analog monitor 즉 bypass가 동작했다. 채널 3+4의 analog/S/PDIF 입력 전환, S/PDIF 출력, M/IO/DIO 확장 카드의 모든 입출력, 내부·외부 클록 선택은 동작해야 하지만 충분히 시험되지 않았다. 문서는 M/IO/DIO 확장 카드 사용자의 시험을 특별히 요청한다.

동작하지 않는 것으로 보인 항목도 있다. `alsamixer`의 `multi track` 레벨 미터는 입력 신호에 반응하지 않으며 기존 ICE1724 코드의 버그일 수 있다. Ardour 2.1은 ALSA 직접 또는 OSS 경로가 아니라 JACK을 통해서만 동작하는 것으로 보여 추가 조사가 필요하다.

Maya44 개발 상태
상태기능
동작 확인모든 표본률 재생·캡처, 레벨, crossmix, line/mic, phantom, analog bypass
미완전 검증3+4 analog/S/PDIF 입력, S/PDIF 출력, M/IO/DIO I/O, clock 선택
문제alsamixer multi track meter, Ardour 2.1의 JACK 외 경로

원문이 구분한 검증 수준별 기능이다.

=================================
Notes on Maya44 USB Audio Support
=================================

.. note::
   The following is the original document of Rainer's patch that the
   current maya44 code based on.  Some contents might be obsoleted, but I
   keep here as reference -- tiwai

Feb 14, 2008

Rainer Zimmermann <[email protected]>
 
STATE OF DEVELOPMENT
====================

This driver is being developed on the initiative of Piotr Makowski ([email protected]) and financed by Lars Bergmann.
Development is carried out by Rainer Zimmermann ([email protected]).

ESI provided a sample Maya44 card for the development work.

However, unfortunately it has turned out difficult to get detailed programming information, so I (Rainer Zimmermann) had to find out some card-specific information by experiment and conjecture. Some information (in particular, several GPIO bits) is still missing.

This is the first testing version of the Maya44 driver released to the alsa-devel mailing list (Feb 5, 2008).


The following functions work, as tested by Rainer Zimmermann and Piotr Makowski:

- playback and capture at all sampling rates
- input/output level
- crossmixing
- line/mic switch
- phantom power switch
- analogue monitor a.k.a bypass


The following functions *should* work, but are not fully tested:

- Channel 3+4 analogue - S/PDIF input switching
- S/PDIF output
- all inputs/outputs on the M/IO/DIO extension card
- internal/external clock selection


*In particular, we would appreciate testing of these functions by anyone who has access to an M/IO/DIO extension card.*


Things that do not seem to work:

- The level meters ("multi track") in 'alsamixer' do not seem to react to signals in (if this is a bug, it would probably be in the existing ICE1724 code).

- Ardour 2.1 seems to work only via JACK, not using ALSA directly or via OSS. This still needs to be tracked down.

드라이버 파일과 전역 표본률

55-110

추가된 파일은 `pci/ice1724/maya44.c`, `pci/ice1724/maya44.h`, `pci/ice1724/ice1724.patch`, 제안 패치 `pci/ice1724/ice1724.h.patch`, Wolfson WM8776 저수준 접근용 `i2c/other/wm8776.c`, `include/wm8776.h`다. `wm8776.c`는 카드 독립 코드를 의도하며 ALSA에 codec을 직접 등록하지 않는다. Maya44에서 WM8776 제어를 카드 특유 방식으로 사용하고 적절한 이름을 붙여야 하므로 등록은 `maya44.c`가 한다.

`pci/ice1724`에는 ALSA 커널 트리의 대응 파일을 단순히 포함하는 `wtm.h`, `vt1720_mobo.h`, `revo.h`, `prodigy192.h`, `pontis.h`, `phase.h`, `maya44.h`, `juli.h`, `aureon.h`, `amp.h`, `envy24ht.h`, `se.h`, `prodigy_hifi.h`도 만들었다. 작성자는 이것이 올바른 방식이기를 바란다고 덧붙였다.

Maya44 관련 소스
그룹파일
카드 전용pci/ice1724/maya44.c, maya44.h, ice1724.patch, ice1724.h.patch
WM8776i2c/other/wm8776.c, include/wm8776.h
alsa-kernel 포함 래퍼wtm.h, vt1720_mobo.h, revo.h, prodigy192.h, pontis.h, phase.h, maya44.h, juli.h, aureon.h, amp.h, envy24ht.h, se.h, prodigy_hifi.h

카드 전용·codec 저수준·포함 래퍼 파일을 구분한다.

Maya44, 정확히는 Wolfson WM8776 codec은 재생 최대 192kHz, 캡처 최대 92kHz를 허용한다고 원문은 적는다. ICE1724는 전역 표본률 하나만 허용하므로 열린 Maya44 PCM 장치 하나에서 표본률을 설정하면 모든 재생·캡처 채널의 전역 표본률이 바뀐다.

현재 드라이버는 캡처 장치에도 최대 192kHz 설정을 허용하지만 96kHz를 넘는 캡처는 피해야 한다. 동작하는 것처럼 보여도 codec이 실제로 그 속도로 캡처할 수 없어 품질이 나쁘다. 캡처 PCM에서 표본률을 제한하는 추가 코드를 제안했지만 전역 표본률 때문에 논리가 까다롭다. 비활성화된 제안 코드는 원문 표기상 `ice1712.h.patch`, `ice1724.c`, `pci/ice1712`의 `maya44.c`에 있다.

Maya44 전역 표본률
임의의 열린 PCM에서 표본률 설정ICE1724 전역 표본률 변경모든 재생·캡처 채널에 적용
캡처 >96kHz 허용codec 실제 지원 밖겉보기 동작 가능낮은 품질이므로 피해야 함

PCM 하나의 설정이 모든 채널에 적용되는 ICE1724 제약이다.

DRIVER DETAILS
==============

the following files were added:

* pci/ice1724/maya44.c - Maya44 specific code
* pci/ice1724/maya44.h
* pci/ice1724/ice1724.patch
* pci/ice1724/ice1724.h.patch - PROPOSED patch to ice1724.h (see SAMPLING RATES)
* i2c/other/wm8776.c - low-level access routines for Wolfson WM8776 codecs 
* include/wm8776.h


Note that the wm8776.c code is meant to be card-independent and does not actually register the codec with the ALSA infrastructure.
This is done in maya44.c, mainly because some of the WM8776 controls are used in Maya44-specific ways, and should be named appropriately.


the following files were created in pci/ice1724, simply #including the corresponding file from the alsa-kernel tree:

* wtm.h
* vt1720_mobo.h
* revo.h
* prodigy192.h
* pontis.h
* phase.h
* maya44.h
* juli.h
* aureon.h
* amp.h
* envy24ht.h
* se.h
* prodigy_hifi.h


*I hope this is the correct way to do things.*


SAMPLING RATES
==============

The Maya44 card (or more exactly, the Wolfson WM8776 codecs) allow a maximum sampling rate of 192 kHz for playback and 92 kHz for capture.

As the ICE1724 chip only allows one global sampling rate, this is handled as follows:

* setting the sampling rate on any open PCM device on the maya44 card will always set the *global* sampling rate for all playback and capture channels.

* In the current state of the driver, setting rates of up to 192 kHz is permitted even for capture devices.

*AVOID CAPTURING AT RATES ABOVE 96kHz*, even though it may appear to work. The codec cannot actually capture at such rates, meaning poor quality.


I propose some additional code for limiting the sampling rate when setting on a capture pcm device. However because of the global sampling rate, this logic would be somewhat problematic.

The proposed code (currently deactivated) is in ice1712.h.patch, ice1724.c and maya44.c (in pci/ice1712).

PCM 장치와 믹서 제어 이름

111-186

Maya44가 카드 0이라고 가정하면 `hw:0,0` 입력은 analog 1+2 스테레오, 출력은 analog 1+2 스테레오다. `hw:0,1` 입력은 analog 3+4 또는 S/PDIF 입력이고, 출력은 analog 3+4와 S/PDIF 출력이다.

Maya44 PCM 매핑
PCM입력출력
hw:0,0analog 1+2 stereoanalog 1+2 stereo
hw:0,1analog 3+4 또는 S/PDIFanalog 3+4 및 S/PDIF

카드 0의 입력·출력 장치를 물리 채널과 대응시킨다.

신호 흐름은 ESI Maya44 매뉴얼 24쪽 블록 다이어그램 또는 ESI Windows 소프트웨어를 참고한다. `PCM`은 채널 1+2의 디지털 출력 레벨, `PCM 1`은 채널 3+4의 레벨이다.

`Mic Phantom+48V`는 입력 1/2의 정전식 마이크용 +48V phantom power 스위치다. 다른 소스가 입력 1/2에 연결된 상태에서 켜면 소스나 Maya44 카드가 손상될 수 있으므로 절대 켜지 않는다. `Mic/Line input`을 켜면 입력 잭 1/2가 mono microphone 입력, 끄면 stereo line 입력이다.

`Bypass`는 채널 1+2의 ADC 입력을 출력으로 보내는 analog bypass이며 Windows 드라이버의 `Monitor`와 같다. `Bypass 1`은 채널 3+4에 해당한다. `Crossmix`는 채널 1+2를 3+4로, `Crossmix 1`은 채널 3+4를 1+2로 교차 혼합한다.

`IEC958 Output`은 S/PDIF 출력 스위치다. ESI Windows 드라이버는 지원하지 않으며 S/PDIF는 채널 3+4와 같은 신호를 출력해야 하지만 시험되지 않았다.

Digital output selector는 ADC에서 DAC로 직접 디지털 라우팅한다. 각 스위치는 특정 DAC의 디지털 입력 데이터 출처를 정하며 Windows 드라이버는 지원하지 않는다. 정상 동작에서는 모두 `PCM out`으로 둔다. `H/W`, `H/W 1`, `H/W 2`, `H/W 3`은 각각 출력 소스 채널 1~4이고, `H/W 4`~`H/W 9`는 시험을 위해 남긴 기능 미상 제어다. 일부는 S/PDIF 출력을 제어할 수 있으며 미사용으로 확인되면 향후 제거될 수 있다.

각 digital output selector의 값 `PCM out`은 해당 채널의 DAC 출력이며 기본값이다. `Input 1`~`Input 4`는 선택한 입력 채널의 ADC 출력을 직접 라우팅한다.

Maya44 믹서 제어
제어기능
PCM / PCM 1채널 1+2 / 3+4 디지털 출력 레벨
Mic Phantom+48V입력 1/2 +48V, 다른 소스 연결 시 손상 위험
Mic/Line inputon: mono mic, off: stereo line
Bypass / Bypass 1ADC 1+2 / 3+4 analog monitor
Crossmix / Crossmix 11+2→3+4 / 3+4→1+2
IEC958 OutputS/PDIF 출력, 미검증
H/W ~ H/W 3출력 소스 채널 1~4
H/W 4 ~ H/W 9기능 미상, 시험용

원문의 제어 이름과 신호 경로를 보존한다.

SOUND DEVICES
=============

PCM devices correspond to inputs/outputs as follows (assuming Maya44 is card #0):

* hw:0,0 input - stereo, analog input 1+2
* hw:0,0 output - stereo, analog output 1+2
* hw:0,1 input - stereo, analog input 3+4 OR S/PDIF input
* hw:0,1 output - stereo, analog output 3+4 (and SPDIF out)


NAMING OF MIXER CONTROLS
========================

(for more information about the signal flow, please refer to the block diagram on p.24 of the ESI Maya44 manual, or in the ESI windows software).


PCM
    (digital) output level for channel 1+2
PCM 1
    same for channel 3+4

Mic Phantom+48V
    switch for +48V phantom power for electrostatic microphones on input 1/2.

    Make sure this is not turned on while any other source is connected to input 1/2.
    It might damage the source and/or the maya44 card.

Mic/Line input
    if switch is on, input jack 1/2 is microphone input (mono), otherwise line input (stereo).

Bypass
    analogue bypass from ADC input to output for channel 1+2. Same as "Monitor" in the windows driver.
Bypass 1
    same for channel 3+4.

Crossmix
    cross-mixer from channels 1+2 to channels 3+4
Crossmix 1
    cross-mixer from channels 3+4 to channels 1+2

IEC958 Output
    switch for S/PDIF output.

    This is not supported by the ESI windows driver.
    S/PDIF should output the same signal as channel 3+4. [untested!]


Digital output selectors
    These switches allow a direct digital routing from the ADCs to the DACs.
    Each switch determines where the digital input data to one of the DACs comes from.
    They are not supported by the ESI windows driver.
    For normal operation, they should all be set to "PCM out".

H/W
    Output source channel 1
H/W 1
    Output source channel 2
H/W 2
    Output source channel 3
H/W 3
    Output source channel 4

H/W 4 ... H/W 9
    unknown function, left in to enable testing.

    Possibly some of these control S/PDIF output(s).
    If these turn out to be unused, they will go away in later driver versions.

Selectable values for each of the digital output selectors are:

PCM out
        DAC output of the corresponding channel (default setting)
Input 1 ... Input 4
        direct routing from ADC output of the selected input channel