Maya44 USB 音訊支援說明

注意

以下是 Rainer 補丁的原始文件,當前 maya44 程式碼基於該補丁。某些內容可能已過時,但我在此保留作為參考 -- tiwai

2008 年 2 月 14 日

Rainer Zimmermann <mail@lightshed.de>

開發狀態

此驅動程式是在 Piotr Makowski (oponek@gmail.com) 的倡議下開發,由 Lars Bergmann 資助。 由 Rainer Zimmermann (mail@lightshed.de) 進行開發。

ESI 提供了 Maya44 卡的樣品用於開發工作。

但是,不幸的是,很難獲得詳細的程式設計資訊,因此我(Rainer Zimmermann)不得不透過實驗和推測來找出一些特定於卡的資訊。 某些資訊(特別是,幾個 GPIO 位)仍然缺失。

這是 Maya44 驅動程式的第一個測試版本,已釋出到 alsa-devel 郵件列表(2008 年 2 月 5 日)。

以下功能有效,已由 Rainer Zimmermann 和 Piotr Makowski 測試

  • 所有采樣率下的播放和捕獲

  • 輸入/輸出電平

  • 交叉混音

  • 線路/麥克風開關

  • 幻象電源開關

  • 模擬監聽,又名旁路

以下功能應該有效,但未經過全面測試

  • 通道 3+4 模擬 - S/PDIF 輸入切換

  • S/PDIF 輸出

  • M/IO/DIO 擴充套件卡上的所有輸入/輸出

  • 內部/外部時鐘選擇

特別是,我們感謝任何擁有 M/IO/DIO 擴充套件卡的人員對這些功能進行測試。

似乎不起作用的事情

  • ‘alsamixer’ 中的電平表(“多軌”)似乎對訊號沒有反應(如果這是一個錯誤,則可能存在於現有的 ICE1724 程式碼中)。

  • Ardour 2.1 似乎只能透過 JACK 工作,而不能直接透過 ALSA 或透過 OSS 工作。 這仍然需要追蹤。

驅動程式詳細資訊

添加了以下檔案

  • pci/ice1724/maya44.c - Maya44 特定程式碼

  • pci/ice1724/maya44.h

  • pci/ice1724/ice1724.patch

  • pci/ice1724/ice1724.h.patch - 建議的 ice1724.h 補丁(參見取樣率)

  • i2c/other/wm8776.c - Wolfson WM8776 編解碼器的底層訪問例程

  • include/wm8776.h

請注意,wm8776.c 程式碼旨在獨立於卡,實際上並未在 ALSA 基礎結構中註冊編解碼器。 這在 maya44.c 中完成,主要是因為某些 WM8776 控制元件以 Maya44 特定的方式使用,因此應進行適當的命名。

在 pci/ice1724 中建立了以下檔案,僅包含 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

我希望這是正確的方法。

取樣率

Maya44 卡(或更準確地說,Wolfson WM8776 編解碼器)允許的最大采樣率,播放為 192 kHz,捕獲為 92 kHz。

由於 ICE1724 晶片只允許一個全域性取樣率,因此處理方式如下

  • 在 maya44 卡上的任何開啟的 PCM 裝置上設定取樣率將始終設定所有播放和捕獲通道的全域性取樣率。

  • 在驅動程式的當前狀態下,即使對於捕獲裝置,也允許設定高達 192 kHz 的速率。

避免以高於 96kHz 的速率捕獲,即使它看起來可以工作。 編解碼器實際上無法以這種速率捕獲,這意味著質量很差。

我建議一些額外的程式碼,用於限制在捕獲 PCM 裝置上設定時的取樣率。 但是,由於全域性取樣率,此邏輯將有些問題。

建議的程式碼(當前已停用)位於 ice1712.h.patch、ice1724.c 和 maya44.c (在 pci/ice1712 中)。

聲音裝置

PCM 裝置對應於以下輸入/輸出(假設 Maya44 是卡 #0)

  • hw:0,0 輸入 - 立體聲,模擬輸入 1+2

  • hw:0,0 輸出 - 立體聲,模擬輸出 1+2

  • hw:0,1 輸入 - 立體聲,模擬輸入 3+4 或 S/PDIF 輸入

  • hw:0,1 輸出 - 立體聲,模擬輸出 3+4 (和 SPDIF 輸出)

混音器控制元件的命名

(有關訊號流的更多資訊,請參考 ESI Maya44 手冊第 24 頁或 ESI windows 軟體中的框圖)。

PCM

通道 1+2 的(數字)輸出電平

PCM 1

通道 3+4 相同

麥克風幻象 +48V

用於輸入 1/2 上靜電麥克風的 +48V 幻象電源的開關。

確保在將任何其他音源連線到輸入 1/2 時未開啟此開關。 它可能會損壞音源和/或 maya44 卡。

麥克風/線路輸入

如果開關開啟,則輸入插孔 1/2 為麥克風輸入(單聲道),否則為線路輸入(立體聲)。

旁路

通道 1+2 從 ADC 輸入到輸出的模擬旁路。 與 windows 驅動程式中的“監聽”相同。

旁路 1

通道 3+4 相同。

交叉混音

從通道 1+2 到通道 3+4 的交叉混音器

交叉混音 1

從通道 3+4 到通道 1+2 的交叉混音器

IEC958 輸出

S/PDIF 輸出的開關。

ESI windows 驅動程式不支援此功能。 S/PDIF 應該輸出與通道 3+4 相同的訊號。 [未經測試!]

數字輸出選擇器

這些開關允許從 ADC 到 DAC 的直接數字路由。 每個開關確定到一個 DAC 的數字輸入資料來自哪裡。 ESI windows 驅動程式不支援它們。 對於正常操作,它們都應設定為“PCM 輸出”。

H/W

輸出源通道 1

H/W 1

輸出源通道 2

H/W 2

輸出源通道 3

H/W 3

輸出源通道 4

H/W 4 ... H/W 9

未知功能,保留用於啟用測試。

可能其中一些控制 S/PDIF 輸出。 如果這些被證明未使用,它們將在以後的驅動程式版本中消失。

每個數字輸出選擇器的可選值為

PCM 輸出

相應通道的 DAC 輸出(預設設定)

輸入 1 ... 輸入 4

從所選輸入通道的 ADC 輸出直接路由