Sound Blaster Live 混音器 / 預設 DSP 程式碼¶
EMU10K1 晶片有一個 DSP 部分,可以對其進行程式設計以支援各種取樣處理方式,這裡對此進行了描述。(本文不涉及 EMU10K1 晶片的整體功能。有關更多詳細資訊,請參閱手冊部分。)
ALSA 驅動程式預設使用程式碼(以後可以更改)對此晶片的這一部分進行程式設計,該程式碼提供以下功能
IEC958 (S/PDIF) 原始 PCM¶
這個 PCM 裝置(它是給定音效卡的第 3 個 PCM 裝置(索引 2!)和第一個子裝置(索引 0))允許轉發 48kHz、立體聲、16 位小端流,而無需對數字輸出(同軸或光纖)進行任何修改。通用介面允許建立多達 8 個以 48kHz、16 位小端執行的原始 PCM 裝置。將多聲道裝置支援新增到當前程式碼很容易,但此時轉換例程僅適用於立體聲(2 聲道流)。
有關更多詳細資訊,請參見 lowlevel/emu10k1/emufx.c 中的 tram_poke 例程。
數字混音器控制元件¶
這些控制元件是使用 DSP 指令構建的。 它們提供擴充套件的功能。 這裡僅描述 ALSA 驅動程式中的預設內建程式碼。 請注意,這些控制元件用作衰減器:最大值是不改變訊號的中性位置。 請注意,如果在多個控制元件中提到相同的目標,則訊號會累積並可能被削波(設定為最大值或最小值而不檢查溢位)。
使用的縮寫的說明
- DAC
數字到模擬轉換器
- ADC
模擬到數字轉換器
- I2S
Philips Semiconductors 的單向三線序列匯流排,用於數字聲音(此標準用於連線獨立的 D/A 和 A/D 轉換器)
- LFE
低頻效果(用作低音炮訊號)
- AC97
包含模擬混音器、D/A 和 A/D 轉換器的晶片
- IEC958
S/PDIF
- FX-匯流排
EMU10K1 晶片有一個效果匯流排,其中包含 16 個累加器。 每個合成器聲音都可以將其輸出饋送到這些累加器,並且 DSP 微控制器可以使用生成的總和進行操作。
name='Wave Playback Volume',index=0¶
此控制元件用於衰減來自左右 PCM FX 匯流排累加器的取樣。 ALSA 使用累加器 0 和 1 用於左右 PCM 取樣。 結果取樣被轉發到 AC97 編解碼器的前置 DAC PCM 插槽。
name='Wave Surround Playback Volume',index=0¶
此控制元件用於衰減來自左右 PCM FX 匯流排累加器的取樣。 ALSA 使用累加器 0 和 1 用於左右 PCM 取樣。 結果取樣被轉發到後置 I2S DAC。 這些 DAC 獨立執行(它們不在 AC97 編解碼器內)。
name='Wave Center Playback Volume',index=0¶
此控制元件用於衰減來自左右 PCM FX 匯流排累加器的取樣。 ALSA 使用累加器 0 和 1 用於左右 PCM 取樣。 結果被混合為單聲道訊號(單通道)並轉發到 AC97 編解碼器的 ??rear?? 右 DAC PCM 插槽。
name='Wave LFE Playback Volume',index=0¶
此控制元件用於衰減來自左右 PCM FX 匯流排累加器的取樣。 ALSA 使用累加器 0 和 1 用於左右 PCM。 結果被混合為單聲道訊號(單通道)並轉發到 AC97 編解碼器的 ??rear?? 左 DAC PCM 插槽。
name='Wave Capture Volume',index=0, name='Wave Capture Switch',index=0¶
這些控制元件用於衰減來自左右 PCM FX 匯流排累加器的取樣。 ALSA 使用累加器 0 和 1 用於左右 PCM。 結果被轉發到 ADC 捕獲 FIFO(因此轉發到標準捕獲 PCM 裝置)。
name='Synth Playback Volume',index=0¶
此控制元件用於衰減來自左右 MIDI FX 匯流排累加器的取樣。 ALSA 使用累加器 4 和 5 用於左右 MIDI 取樣。 結果取樣被轉發到 AC97 編解碼器的前置 DAC PCM 插槽。
name='Synth Capture Volume',index=0, name='Synth Capture Switch',index=0¶
這些控制元件用於衰減來自左右 MIDI FX 匯流排累加器的取樣。 ALSA 使用累加器 4 和 5 用於左右 MIDI 取樣。 結果被轉發到 ADC 捕獲 FIFO(因此轉發到標準捕獲 PCM 裝置)。
name='Surround Playback Volume',index=0¶
此控制元件用於衰減來自左右後置 PCM FX 匯流排累加器的取樣。 ALSA 使用累加器 2 和 3 用於左右後置 PCM 取樣。 結果取樣被轉發到後置 I2S DAC。 這些 DAC 獨立執行(它們不在 AC97 編解碼器內)。
name='Surround Capture Volume',index=0, name='Surround Capture Switch',index=0¶
這些控制元件用於衰減來自左右後置 PCM FX 匯流排累加器的取樣。 ALSA 使用累加器 2 和 3 用於左右後置 PCM 取樣。 結果被轉發到 ADC 捕獲 FIFO(因此轉發到標準捕獲 PCM 裝置)。
name='Center Playback Volume',index=0¶
此控制元件用於衰減中心 PCM FX 匯流排累加器的取樣。 ALSA 使用累加器 6 用於中心 PCM 取樣。 結果取樣被轉發到 AC97 編解碼器的 ??rear?? 右 DAC PCM 插槽。
name='LFE Playback Volume',index=0¶
此控制元件用於衰減中心 PCM FX 匯流排累加器的取樣。 ALSA 使用累加器 6 用於中心 PCM 取樣。 結果取樣被轉發到 AC97 編解碼器的 ??rear?? 左 DAC PCM 插槽。
name='AC97 Playback Volume',index=0¶
此控制元件用於衰減來自 AC97 編解碼器的左右前置 ADC PCM 插槽的取樣。 結果取樣被轉發到 AC97 編解碼器的前置 DAC PCM 插槽。
注意
對於標準操作,此控制元件應為零,否則會啟用數字環回。
name='AC97 Capture Volume',index=0¶
此控制元件用於衰減來自 AC97 編解碼器的左右前置 ADC PCM 插槽的取樣。 結果被轉發到 ADC 捕獲 FIFO(因此轉發到標準捕獲 PCM 裝置)。
注意
此控制元件應為 100(最大值),否則無法捕獲(錄製)AC97 編解碼器的任何模擬輸入。
name='IEC958 TTL Playback Volume',index=0¶
此控制元件用於衰減來自左右 IEC958 TTL 數字輸入(通常由 CDROM 驅動器使用)的取樣。 結果取樣被轉發到 AC97 編解碼器的前置 DAC PCM 插槽。
name='IEC958 TTL Capture Volume',index=0¶
此控制元件用於衰減來自左右 IEC958 TTL 數字輸入(通常由 CDROM 驅動器使用)的取樣。 結果取樣被轉發到 ADC 捕獲 FIFO(因此轉發到標準捕獲 PCM 裝置)。
name='Zoom Video Playback Volume',index=0¶
此控制元件用於衰減來自左右縮放影片數字輸入(通常由 CDROM 驅動器使用)的取樣。 結果取樣被轉發到 AC97 編解碼器的前置 DAC PCM 插槽。
name='Zoom Video Capture Volume',index=0¶
此控制元件用於衰減來自左右縮放影片數字輸入(通常由 CDROM 驅動器使用)的取樣。 結果取樣被轉發到 ADC 捕獲 FIFO(因此轉發到標準捕獲 PCM 裝置)。
name='IEC958 LiveDrive Playback Volume',index=0¶
此控制元件用於衰減來自左右 IEC958 光纖數字輸入的取樣。 結果取樣被轉發到 AC97 編解碼器的前置 DAC PCM 插槽。
name='IEC958 LiveDrive Capture Volume',index=0¶
此控制元件用於衰減來自左右 IEC958 光纖數字輸入的取樣。 結果取樣被轉發到 ADC 捕獲 FIFO(因此轉發到標準捕獲 PCM 裝置)。
name='IEC958 Coaxial Playback Volume',index=0¶
此控制元件用於衰減來自左右 IEC958 同軸數字輸入的取樣。 結果取樣被轉發到 AC97 編解碼器的前置 DAC PCM 插槽。
name='IEC958 Coaxial Capture Volume',index=0¶
此控制元件用於衰減來自左右 IEC958 同軸數字輸入的取樣。 結果取樣被轉發到 ADC 捕獲 FIFO(因此轉發到標準捕獲 PCM 裝置)。
name='Line LiveDrive Playback Volume',index=0, name='Line LiveDrive Playback Volume',index=1¶
此控制元件用於衰減來自左右 I2S ADC 輸入(在 LiveDrive 上)的取樣。 結果取樣被轉發到 AC97 編解碼器的前置 DAC PCM 插槽。
name='Line LiveDrive Capture Volume',index=1, name='Line LiveDrive Capture Volume',index=1¶
此控制元件用於衰減來自左右 I2S ADC 輸入(在 LiveDrive 上)的取樣。 結果取樣被轉發到 ADC 捕獲 FIFO(因此轉發到標準捕獲 PCM 裝置)。
name='Tone Control - Switch',index=0¶
此控制元件開啟或關閉音調控制。 前置、後置和中心/LFE 輸出的取樣會受到影響。
name='Tone Control - Bass',index=0¶
此控制元件設定低音強度。 沒有中性值!! 啟用音調控制程式碼後,始終會修改取樣。 最接近純訊號的值是 20。
name='Tone Control - Treble',index=0¶
此控制元件設定高音強度。 沒有中性值!! 啟用音調控制程式碼後,始終會修改取樣。 最接近純訊號的值是 20。
name='IEC958 Optical Raw Playback Switch',index=0¶
如果此開關開啟,則 IEC958 (S/PDIF) 數字輸出的取樣僅取自原始 FX8010 PCM,否則取標準前置 PCM 取樣。
name='Headphone Playback Volume',index=1¶
此控制元件衰減耳機輸出的取樣。
name='Headphone Center Playback Switch',index=1¶
如果此開關開啟,則中心 PCM 的取樣將放入左耳機輸出(適用於沒有單獨的中心/LFE 輸出的 SB Live 音效卡)。
name='Headphone LFE Playback Switch',index=1¶
如果此開關開啟,則中心 PCM 的取樣將放入右耳機輸出(適用於沒有單獨的中心/LFE 輸出的 SB Live 音效卡)。
手冊/專利¶
ftp://opensource.creative.com/pub/doc¶
請注意,該站點已失效,但這些文件可從各種其他位置獲得。
- LM4545.pdf
AC97 編解碼器
- m2049.pdf
EMU10K1 數字音訊處理器
- hog63.ps
FX8010 - 用於音訊效果的 DSP 晶片架構
WIPO 專利¶
- WO 9901813 (A1)
具有多個非同步流的音訊效果處理器(1999 年 1 月 14 日)
- WO 9901814 (A1)
具有音訊效果指令集的處理器(1999 年 1 月 14 日)
- WO 9901953 (A1)
具有解耦指令執行和音訊資料排序的音訊效果處理器(1999 年 1 月 14 日)
美國專利 (https://www.uspto.gov/)¶
- US 5925841
採用快取儲存器的數字取樣樂器(1999 年 7 月 20 日)
- US 5928342
集成了音訊效果處理器的單晶片,帶有可併發載入多個非同步數字聲音樣本的多埠記憶體(1999年7月27日)
- US 5930158
帶有音訊效果指令集的處理器(1999年7月27日)
- US 6032235
記憶體初始化電路(Tram)(2000年2月29日)
- US 6138207
在連線到系統匯流排的快取中對音訊樣本進行插值迴圈,根據迴圈結束和最小塊大小對匯流排傳輸進行優先順序排序和修改(2000年10月24日)
- US 6151670
一種使用短期記憶體暫存器池來節省記憶體儲存的方法(2000年11月21日)
- US 6195715
透過將程式與GP暫存器關聯、定義中斷暫存器、輪詢GP暫存器以及呼叫與定義的中斷暫存器關聯的回撥例程,來實現與通用中斷通訊的多個程式的的中斷控制(2001年2月27日)