出版時間:2012-6-1 出版社:中國水利水電出版社 作者:曹強 頁數(shù):458
Tag標簽:無
內容概要
《數(shù)字音頻規(guī)范與程序設計:基于Visual C++開發(fā)》是作者根據(jù)多年的工作經(jīng)驗而總結出來的有關Windows平臺下數(shù)字音頻規(guī)范與程序設計的一手資料,由淺入深地介紹了當今多數(shù)主流音頻相關的技術規(guī)范與編程實現(xiàn),適合于對數(shù)字音頻感興趣、準備或正在從事數(shù)字音頻相關工作和開發(fā)的用戶?! ”緯卜?1章,涵蓋了Windows平臺下數(shù)字音頻相關規(guī)范與編程的許多方面,詳細介紹了Windows系統(tǒng)下高層與底層的多媒體音頻接口(API);WAVE音頻的全面解析、播放與錄音;MIDI音樂的全面解析、播放與錄制;USBMIDI驅動設計;MP3的格式與編解碼;樂音的基頻檢測;音頻混音器原理與編程;低延遲ASIO音頻驅動開發(fā);普通音頻插件與VST(i)插件的設計;游戲開發(fā)中經(jīng)常使用的DirectSound播放與錄制等?! 稊?shù)字音頻規(guī)范與程序設計:基于Visual C++開發(fā)》最大的特色是不但針對多媒體音頻應用程序的開發(fā)做了較全面的介紹,可以滿足大部分常規(guī)音頻編程用戶的需求,而且對音頻驅動的開發(fā)也做了較多的切入。其中一部分是作者近幾年獨自研究的成果,對于有這方面需求的讀者來說都是很寶貴的參考資料?! ”緯Y構清晰,邏輯嚴密,內容具體且涉及面廣泛,不但是從事多媒體(音頻)開發(fā)與應用的廣大開發(fā)人員的技術指導書,同時也可作為各高等院校相關專業(yè)、非相關專業(yè)師生重要的參考讀物?! ”緯忻空露继峁┝艘粋€或多個經(jīng)典的編程實例程序,附帶在光盤中贈送,光盤中提供了所有章節(jié)中實例程序的VisualC++源代碼。
書籍目錄
推薦序一 推薦序二 前言 第1章Windows音頻體系與Visualc++開發(fā)基礎 導讀 1.1認識聲音與音頻 1.2Windows音頻體系層次結構 1.2.1用戶模式與內核模式 1.2.2關于聲音的延遲問題及解決方法 1.3VisualC++開發(fā)基礎 1.3.1區(qū)分C、C++和VisualC++三者的關系 1.3.2事件驅動與消息處理 1.3.3開發(fā)環(huán)境概述 1.3.4MFC概述 1.3.5利用向導創(chuàng)建一個簡單的對話框程序 第2章MCI與MMAPI多媒體編程接口 2.1 MCI簡介 2.1.1 MCI邏輯結構 2.1.2 MCI接口、函數(shù)與命令 2.1.3 MCI消息與宏定義 2.2 MCI編程步驟 2.3 MCI編程實例 2.3.1播放CD 2.3.2 WAVE播放與錄音 2.3.3基于MCIWnd的多媒體播放器 2.4 MMAPl簡介 2.4.1四種多媒體文件I/O 2.4.2波形音頻處理 2.4.3 MIDI的流緩沖區(qū)與非流 緩沖區(qū)處理 2.4.4多媒體定時器 第3章WAVE格式及播放與錄制 3.1認識WAVE 3.2 WAV文件結構 3.3采樣點與采樣幀的區(qū)別 3.4 WAVE中常用的一些塊 3.4.1格式塊 3.4.2數(shù)據(jù)塊 3.4.3提示塊 3.4.4播放列表塊 3.4.5關聯(lián)數(shù)據(jù)塊 3.4.6采樣塊 3.5多媒體波形音頻函數(shù) 3.6波形音頻處理的回調機制 3.7 WAVE播放 3.7.1 WAVE播放基本流程 3.7.2雙緩沖播放機制 3.7.3關于死鎖的問題 3.8 WAVE錄音 3.9編程實例 3.9.1 WAV文件解析及分離與合并 3.9.2 WAVE播放器 3.9.3 WAVE錄音機 …… 第4章MIDI相關標準與程序設計 第5章數(shù)字音樂合成 第6章音頻混音器編程 第7章音頻插件設計 第8章基音的時頻域檢測 第9章ASIO音頻驅動設計 第10章MP3格式與編解碼 第11章DirectSound開發(fā)與應用 附錄 參考文獻
章節(jié)摘錄
版權頁: 插圖: (1)MIDI解碼。音源驅動根據(jù)不同的MIDI信息類型進入對應的處理模塊。比如MIDI發(fā)音信息,需要解析其通道、音高與力度,然后進入聲音處理單元。對于控制信息,需要解析其控制號,然后進入相應的控制單元。 (2)聲音預處理。波表合成不是簡單的樣本回放,它還需要一些重要音色參數(shù)的控制,包括音高、音量、包絡處理、濾波處理等。音源驅動得到開音相關信息后,將根據(jù)當前的音色號、音高和力度到音色庫中查找其對應的樣本(一個或多個),找到每個樣本對應的音色參數(shù),然后再根據(jù)這些參數(shù)進行一定的運算,并將部分運算結果傳遞給DSP做進一步處理。 (3)DSP處理。DSP根據(jù)音源驅動提供的樣本地址取出樣本數(shù)據(jù),并根據(jù)音源驅動計算出來的部分音色參數(shù)調整波形數(shù)據(jù)的回放速率和放大系數(shù)等。 (4)數(shù)模轉換。從DSP出來的數(shù)字信息就是最終的波形數(shù)據(jù),經(jīng)過數(shù)模(D/A)轉換器將數(shù)字信號轉換為模擬信號后通過揚聲器,于是我們最終聽到了MIDl音符的發(fā)聲。 從圖5.9中可以看出,波表合成主要由如下幾個功能模塊組成:邏輯控制模塊;發(fā)音控制模塊;發(fā)音處理模塊。邏輯控制模塊主要是指音源驅動的MIDl解碼與樣本選擇(尋址)。發(fā)音控制模塊主要是指音源驅動對音色參數(shù)的解析與運算(比如包絡運算、LFO運算、濾波運算等),并將部分計算結果傳遞給DSP進行處理。發(fā)音處理模塊主要是根據(jù)音源驅動提供的參數(shù)(如樣本存儲地址、Loop點信息、包絡信息等)進行波形數(shù)據(jù)的回放,當然,回放不是簡單的播放,回放時需要進行回放速率的控制、去除噪聲、數(shù)字放大等處理。 與FM相比,波表(Wave Table)合成確實使電子音樂的發(fā)展取得了歷史性的進步,雖然它的核心思想并不復雜,但通過對真實樂器的數(shù)字化錄音與回放,使MIDl音樂聽起來更接近自然、更具真實感。當然,波表合成也有它的缺點,雖然通過音色參數(shù)的一些調整可以使原聲發(fā)生一些變化,但相比于FM波表合成較難產(chǎn)生新的音色。 5.4.2波表合成的關鍵技術 首先我們來看兩個問題,第一個問題是,是不是每個音色都應該像前面所舉的例子(見圖5.8)一樣,每個音高(鍵位)都需要一個對應的采樣樣本昵?答案是否定的,因為使用頻率變換技術可以用已有的樣本模擬出其相鄰音高的音。如圖5.10所示,從c2到B6共有4個八度,但只用了5個采樣樣本(a.wav為G2采樣樣本,b.wav為A3采樣樣本,c.way為G4采樣樣本,d.wav為D5采樣樣本,e.wav為E6采樣樣本),其他鍵位的音高都是根據(jù)這5個樣本變換出來的,比如C2的發(fā)音是通過a.wav變換出來的,C4的發(fā)音是通過b.wav變換出來的,86的發(fā)音是通過e.wav變換出來的。也就是說,一個或多個樣本將整個音高劃分了N個區(qū)域,每個區(qū)域內的其他鍵位都通過該樣本變換發(fā)聲。假設當前制作的音色為原聲鋼琴,那么只需要錄制真實鋼琴5個鍵位的樣本就可以了,所以,在波表合成器中,并不是每個音色都需要為每個音高采集樣本。事實上,很少有音色為每個鍵位都分配一個樣本,因為這樣的話,一個音色占用的樣本容量就太大了,當然,整個音高區(qū)域只使用一個樣本也是不好的,因為頻率變換也有精度的問題,關于頻率變換的相關信息請參考5 4.3節(jié)。
編輯推薦
《數(shù)字音頻規(guī)范與程序設計:基于Visual C++開發(fā)》結構清晰,邏輯嚴密,內容具體且涉及面廣泛,不但是從事多媒體(音頻)開發(fā)與應用的廣大開發(fā)人員的技術指導書,同時也可作為各高等院校相關專業(yè)、非相關專業(yè)師生重要的參考讀物。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載