袁明山
(廣州廣晟數(shù)碼技術(shù)有限公司)
基于C++音頻處理器控制軟件的設(shè)計(jì)
袁明山
(廣州廣晟數(shù)碼技術(shù)有限公司)
隨著科學(xué)技術(shù)的日臻成熟與完善,電子信息技術(shù)與各學(xué)科和產(chǎn)業(yè)的結(jié)合越來(lái)越多,音頻系統(tǒng)與電子信息技術(shù)的結(jié)合也不例外。這種“交叉”為電子信息技術(shù)的發(fā)展不斷提出了新的課題與挑戰(zhàn)。針對(duì)音頻處理器的數(shù)字化與可控化也成為研究音頻系統(tǒng)新技術(shù)的重要領(lǐng)域。本文就基于C++音頻處理器控制軟件的設(shè)計(jì)展開(kāi)討論,具體分析這種控制軟件的設(shè)計(jì)程序與實(shí)際可操作性,為音頻處理器控制軟件的研發(fā)提供參考。
C++;音頻處理器;控制軟件設(shè)計(jì)
音頻處理器控制軟件的作用在于協(xié)調(diào)控制、統(tǒng)一調(diào)度,減少客戶終端的操作。因此,在VisualC++6.0的系統(tǒng)下設(shè)計(jì)控制軟件時(shí),整體思路上要充分考慮到這一點(diǎn)。音頻處理器的結(jié)構(gòu)一般由輸入和輸出兩部分構(gòu)成,在一系列芯片與功能模塊的組合下,完成了對(duì)數(shù)字信號(hào)的處理。
一般的音頻控制系統(tǒng)基本上都包括增益、音頻矩陣、壓線器、均衡器四個(gè)主要板塊,每個(gè)板塊肩負(fù)著調(diào)節(jié)不同的任務(wù)效果:增益板塊負(fù)責(zé)設(shè)定控制軟件電平值的調(diào)節(jié)范圍,與音頻系統(tǒng)的失真度等數(shù)值有重要的聯(lián)系,增益的正確設(shè)定有助于音頻系統(tǒng)輸出高質(zhì)量的效果。音頻矩陣的作用在于連接輸入與輸出電路,但為避免出現(xiàn)音效的雜糅,一般情況下不會(huì)將多處輸入電路切換到輸出電路上。壓限器,顧名思義,其作用在于壓縮和限制數(shù)據(jù)的范圍,以控制音頻效果的變化。均衡器分為均衡器和參量均衡器兩種,基于二者的主要功能而言,參量均衡器的易于變化性更適合本應(yīng)用程序的設(shè)計(jì)。根據(jù)音頻系統(tǒng)各版塊的職能進(jìn)行詳細(xì)的分析與介紹來(lái)確定控制軟件的組成部分,基于C++程序設(shè)計(jì)語(yǔ)言的音頻處理器控制應(yīng)用程序的目的就在于將這四個(gè)主要板塊的職能直觀地、數(shù)字化地呈現(xiàn)在客戶終端,便于實(shí)施操作。
音頻處理器控制系統(tǒng)可設(shè)置成五個(gè)界面,一個(gè)主控界面,四個(gè)分控界面。這樣的總分結(jié)構(gòu)有助于實(shí)現(xiàn)功能的最優(yōu)化和操作的便捷化。
2.1 系統(tǒng)原理
C++音頻處理器控制軟件的設(shè)計(jì)原理如圖1所示。
圖1
音頻信號(hào)從聲音傳感系統(tǒng)經(jīng)由一系列轉(zhuǎn)化后變?yōu)閿?shù)據(jù)訊號(hào),并交由DSP的多層渠道進(jìn)行處理。芯片還掌管著對(duì)各子系統(tǒng)的協(xié)調(diào)任務(wù)。擴(kuò)展程序區(qū)Flash區(qū)域的作用在于保護(hù)數(shù)據(jù)的整體性與安全性,便于程序的編程和靈活運(yùn)用。而擴(kuò)展數(shù)據(jù)區(qū)的SRAM芯片能夠?yàn)橄到y(tǒng)的運(yùn)行提供空間使用,保障程序的高速運(yùn)行。應(yīng)用程序的全部控制流程都是由控制邏輯系統(tǒng)(EPM7128STC100)操作的,全面保障程序的正常運(yùn)行。
2.2 主控界面的設(shè)置
為方便統(tǒng)籌全局和個(gè)性化選擇,主控界面的設(shè)置必須位于應(yīng)用程序啟動(dòng)時(shí)的開(kāi)始頁(yè)面,并且全部的核心程序都要分布于主控界面上。
(1)界面美工要做到清晰了然、井然有序;功能相近的程序可被安排在同一部分,差別較大的按鈕在圖標(biāo)設(shè)計(jì)上要凸顯出來(lái),以便于用戶的識(shí)別與操作;每個(gè)相似功能所在的區(qū)域可鏈接配備一定的文字解說(shuō),要包括各自的功能和各程序之間的切換說(shuō)明。
(2)為了便于切換在不同背景下對(duì)音頻處理器音效的不同要求,還需設(shè)置模式儲(chǔ)存的功能,設(shè)定變化場(chǎng)景下的存儲(chǔ)音效模式,以便在使用時(shí)直接調(diào)用,避免重復(fù)操作。另外,為了有效處理程序錯(cuò)誤和被占用的問(wèn)題,還應(yīng)該為用戶或操作人員設(shè)計(jì)程序出現(xiàn)問(wèn)題的提示頁(yè)面,并創(chuàng)建雙線程實(shí)現(xiàn)對(duì)系統(tǒng)的讀寫操作。主控界面承載的控件數(shù)量較多,處理步驟也較多,為保證整個(gè)應(yīng)用程序的穩(wěn)定和對(duì)代碼的有效管理,對(duì)控制系統(tǒng)做進(jìn)一步的研究處理也是必不可少的。在VisualC++6.0的環(huán)境下,將全部的ID排序,并將源文件中的控件同自定義函數(shù)相聯(lián)系,保證程序代碼有序不錯(cuò)亂的同時(shí)又能便于管理。
一般情況下,音頻處理器的控制系統(tǒng)應(yīng)用程序包括了軟件登錄、增益和音頻矩陣等板塊。本文以增益模塊和音頻矩陣為例,來(lái)具體分析音頻處理系統(tǒng)控制軟件的設(shè)計(jì)。
3.1 增益模塊的界面設(shè)計(jì)
增益模塊的設(shè)置在于調(diào)節(jié)音量的高低,是由8個(gè)輸入和8個(gè)輸出電路控制的。在進(jìn)行界面設(shè)置時(shí),可使這十六個(gè)板塊均勻?qū)ΨQ地分布。并用組合框的形式根據(jù)具體功能特征進(jìn)行組合。為擴(kuò)大增益模塊的功能,建議采用CBitmap Slider類別的函數(shù)來(lái)設(shè)定諸如背景畫面、顏色等其他輔助功能。CBitmap Slider的成員函數(shù)參數(shù)如表1所示。
表1
在增益模塊界面中,滑塊需要實(shí)現(xiàn)兩個(gè)步驟的跳轉(zhuǎn)。第一步是將dB值轉(zhuǎn)化成物理電壓值,第二步將一系列浮點(diǎn)型數(shù)字轉(zhuǎn)化成可識(shí)別的數(shù)據(jù)。針對(duì)輸入和輸出的十六路小系統(tǒng),考慮到true和false兩個(gè)相反的編寫語(yǔ)句,需要分別對(duì)應(yīng)設(shè)置十六個(gè)反向按鍵和十六個(gè)靜音按鍵,以完成邏輯控制以及恢復(fù)到前一步界面狀態(tài),32個(gè)按鍵的美化可直接使用CButton基類的SetBitmap函數(shù)來(lái)實(shí)現(xiàn),無(wú)需再插入其他類別函數(shù)??丶墓ぞ呖蛭挥诮缑嫦路?,當(dāng)界面滑塊工作時(shí),工具框會(huì)實(shí)時(shí)跟蹤其位置信息。當(dāng)滑動(dòng)某一版塊時(shí),基本上就是把當(dāng)前參數(shù)經(jīng)過(guò)轉(zhuǎn)化之后傳送到相應(yīng)的對(duì)接點(diǎn)。設(shè)置后的工作界面如圖2所示。
圖2
3.2 音頻矩陣的界面設(shè)計(jì)
音頻矩陣內(nèi)部通路之間可進(jìn)行連接,以8×8路矩陣為例,則在音頻矩陣可編輯64個(gè)功能選擇按鍵,按照輸入和輸出兩種通路并列分布,64個(gè)按鍵的ID號(hào)所對(duì)應(yīng)的數(shù)值必須要按照順序排列。為避免出現(xiàn)混音狀況,每組按鍵之間應(yīng)該是不能同時(shí)選擇的,因此需要將按鍵的屬性按照Group、Tabstop、Auto分別設(shè)置。介于音頻矩陣界面按鍵較多,可以選用成員函數(shù)來(lái)設(shè)計(jì)按鍵選擇后的不同背景,包括顏色與圖片,以便于用戶識(shí)別。具體界面如圖3所示。
64個(gè)按鍵功能選擇所執(zhí)行的語(yǔ)句如下:
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;
}
}
經(jīng)過(guò)三次以上測(cè)試,均校驗(yàn)控制界面各版塊無(wú)誤后可投入正常使用。
目前來(lái)看,音頻處理器正普遍運(yùn)用于音樂(lè)廳、舞臺(tái)、學(xué)校等場(chǎng)地,不斷擴(kuò)大的市場(chǎng)容量要求音頻控制系統(tǒng)更加成熟。本文提出了音頻處理器控制軟件設(shè)計(jì)的總體方案,通過(guò)具體案例來(lái)分析實(shí)際操作的可行性,并力求實(shí)現(xiàn)音頻處理器控制系統(tǒng)的穩(wěn)定與便捷。對(duì)基于C++音頻處理器控制軟件設(shè)計(jì)的研究,有助于此項(xiàng)技術(shù)在理論與實(shí)踐上的完善,推動(dòng)音頻處理控制軟件的系統(tǒng)化。
[1]曹曉敏.數(shù)字音頻處理器控制軟件的設(shè)計(jì)[D].哈爾濱理工大學(xué),2014.
[2]王龍.基于FPGA+DSP的音頻監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[D].復(fù)旦大學(xué),2012.
[3]井瑞霞.如何合理有效地使用音頻處理器[J].西部廣播電視,2016(01):185.
TN912.3
A
1004-7344(2016)15-0286-02
2016-4-15
袁明山(1986-),男,碩士,主要從事技術(shù)管理工作。