袁明山
(廣州廣晟數碼技術有限公司)
基于C++音頻處理器控制軟件的設計
袁明山
(廣州廣晟數碼技術有限公司)
隨著科學技術的日臻成熟與完善,電子信息技術與各學科和產業的結合越來越多,音頻系統與電子信息技術的結合也不例外。這種“交叉”為電子信息技術的發展不斷提出了新的課題與挑戰。針對音頻處理器的數字化與可控化也成為研究音頻系統新技術的重要領域。本文就基于C++音頻處理器控制軟件的設計展開討論,具體分析這種控制軟件的設計程序與實際可操作性,為音頻處理器控制軟件的研發提供參考。
C++;音頻處理器;控制軟件設計
音頻處理器控制軟件的作用在于協調控制、統一調度,減少客戶終端的操作。因此,在VisualC++6.0的系統下設計控制軟件時,整體思路上要充分考慮到這一點。音頻處理器的結構一般由輸入和輸出兩部分構成,在一系列芯片與功能模塊的組合下,完成了對數字信號的處理。
一般的音頻控制系統基本上都包括增益、音頻矩陣、壓線器、均衡器四個主要板塊,每個板塊肩負著調節不同的任務效果:增益板塊負責設定控制軟件電平值的調節范圍,與音頻系統的失真度等數值有重要的聯系,增益的正確設定有助于音頻系統輸出高質量的效果。音頻矩陣的作用在于連接輸入與輸出電路,但為避免出現音效的雜糅,一般情況下不會將多處輸入電路切換到輸出電路上。壓限器,顧名思義,其作用在于壓縮和限制數據的范圍,以控制音頻效果的變化。均衡器分為均衡器和參量均衡器兩種,基于二者的主要功能而言,參量均衡器的易于變化性更適合本應用程序的設計。根據音頻系統各版塊的職能進行詳細的分析與介紹來確定控制軟件的組成部分,基于C++程序設計語言的音頻處理器控制應用程序的目的就在于將這四個主要板塊的職能直觀地、數字化地呈現在客戶終端,便于實施操作。
音頻處理器控制系統可設置成五個界面,一個主控界面,四個分控界面。這樣的總分結構有助于實現功能的最優化和操作的便捷化。
2.1 系統原理
C++音頻處理器控制軟件的設計原理如圖1所示。

圖1
音頻信號從聲音傳感系統經由一系列轉化后變為數據訊號,并交由DSP的多層渠道進行處理。芯片還掌管著對各子系統的協調任務。擴展程序區Flash區域的作用在于保護數據的整體性與安全性,便于程序的編程和靈活運用。而擴展數據區的SRAM芯片能夠為系統的運行提供空間使用,保障程序的高速運行。應用程序的全部控制流程都是由控制邏輯系統(EPM7128STC100)操作的,全面保障程序的正常運行。
2.2 主控界面的設置
為方便統籌全局和個性化選擇,主控界面的設置必須位于應用程序啟動時的開始頁面,并且全部的核心程序都要分布于主控界面上。
(1)界面美工要做到清晰了然、井然有序;功能相近的程序可被安排在同一部分,差別較大的按鈕在圖標設計上要凸顯出來,以便于用戶的識別與操作;每個相似功能所在的區域可鏈接配備一定的文字解說,要包括各自的功能和各程序之間的切換說明。
(2)為了便于切換在不同背景下對音頻處理器音效的不同要求,還需設置模式儲存的功能,設定變化場景下的存儲音效模式,以便在使用時直接調用,避免重復操作。另外,為了有效處理程序錯誤和被占用的問題,還應該為用戶或操作人員設計程序出現問題的提示頁面,并創建雙線程實現對系統的讀寫操作。主控界面承載的控件數量較多,處理步驟也較多,為保證整個應用程序的穩定和對代碼的有效管理,對控制系統做進一步的研究處理也是必不可少的。在VisualC++6.0的環境下,將全部的ID排序,并將源文件中的控件同自定義函數相聯系,保證程序代碼有序不錯亂的同時又能便于管理。
一般情況下,音頻處理器的控制系統應用程序包括了軟件登錄、增益和音頻矩陣等板塊。本文以增益模塊和音頻矩陣為例,來具體分析音頻處理系統控制軟件的設計。
3.1 增益模塊的界面設計
增益模塊的設置在于調節音量的高低,是由8個輸入和8個輸出電路控制的。在進行界面設置時,可使這十六個板塊均勻對稱地分布。并用組合框的形式根據具體功能特征進行組合。為擴大增益模塊的功能,建議采用CBitmap Slider類別的函數來設定諸如背景畫面、顏色等其他輔助功能。CBitmap Slider的成員函數參數如表1所示。

表1
在增益模塊界面中,滑塊需要實現兩個步驟的跳轉。第一步是將dB值轉化成物理電壓值,第二步將一系列浮點型數字轉化成可識別的數據。針對輸入和輸出的十六路小系統,考慮到true和false兩個相反的編寫語句,需要分別對應設置十六個反向按鍵和十六個靜音按鍵,以完成邏輯控制以及恢復到前一步界面狀態,32個按鍵的美化可直接使用CButton基類的SetBitmap函數來實現,無需再插入其他類別函數。控件的工具框位于界面下方,當界面滑塊工作時,工具框會實時跟蹤其位置信息。當滑動某一版塊時,基本上就是把當前參數經過轉化之后傳送到相應的對接點。設置后的工作界面如圖2所示。

圖2
3.2 音頻矩陣的界面設計
音頻矩陣內部通路之間可進行連接,以8×8路矩陣為例,則在音頻矩陣可編輯64個功能選擇按鍵,按照輸入和輸出兩種通路并列分布,64個按鍵的ID號所對應的數值必須要按照順序排列。為避免出現混音狀況,每組按鍵之間應該是不能同時選擇的,因此需要將按鍵的屬性按照Group、Tabstop、Auto分別設置。介于音頻矩陣界面按鍵較多,可以選用成員函數來設計按鍵選擇后的不同背景,包括顏色與圖片,以便于用戶識別。具體界面如圖3所示。
64個按鍵功能選擇所執行的語句如下:
Protected:
//{{AFX_MSG(CDsp Editor View)
//}}AFX_MSG
void On Radio Button(UINT ID);//
DECLARE_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(CRouter Dlg,CDialog)
ON_CONTROL_RANGE(BN_CLICKED,1068,1131,On Radio Button)

圖3
END_MESSAGE_MAP()
void CRouter Dlg::On Radio Button(UINT ID)
{
switch(ID)
{
case 1068:
break;
case 1069:
break;
case 1070:
break
…
…
case 1131:
break;
}
}
經過三次以上測試,均校驗控制界面各版塊無誤后可投入正常使用。
目前來看,音頻處理器正普遍運用于音樂廳、舞臺、學校等場地,不斷擴大的市場容量要求音頻控制系統更加成熟。本文提出了音頻處理器控制軟件設計的總體方案,通過具體案例來分析實際操作的可行性,并力求實現音頻處理器控制系統的穩定與便捷。對基于C++音頻處理器控制軟件設計的研究,有助于此項技術在理論與實踐上的完善,推動音頻處理控制軟件的系統化。
[1]曹曉敏.數字音頻處理器控制軟件的設計[D].哈爾濱理工大學,2014.
[2]王龍.基于FPGA+DSP的音頻監測系統設計[D].復旦大學,2012.
[3]井瑞霞.如何合理有效地使用音頻處理器[J].西部廣播電視,2016(01):185.
TN912.3
A
1004-7344(2016)15-0286-02
2016-4-15
袁明山(1986-),男,碩士,主要從事技術管理工作。