專利名稱:一種隨音樂變化振動效果的實現(xiàn)方法
技術領域:
本發(fā)明涉及一種振動實現(xiàn)方法,特別是涉及一種隨音樂變化振動效果的實現(xiàn)方法。
背景技術:
目前帶有播放音樂功能的電子產(chǎn)品,如手機、MP3、MP4等,此類電子產(chǎn)品的振動功 能應用越來越廣泛,有些振動利用音箱實現(xiàn),有些振動利用馬達實現(xiàn),而隨著技術的發(fā)展, 越來越多的生產(chǎn)商選擇采用馬達代替音箱進行硬件電路的設計。但現(xiàn)在用馬達來驅動振動的電子產(chǎn)品在實現(xiàn)振動方面只是單純的重復節(jié)奏的振 動,并不能根據(jù)音頻文件中的振動節(jié)奏驅動電子產(chǎn)品進行有節(jié)奏的振動,不能滿足人們對 于不同音樂不同振動節(jié)奏的要求。
發(fā)明內容
本發(fā)明的目的在于克服現(xiàn)有技術的不足,提供一種隨音樂變化振動效果的實現(xiàn)方 法,用于所有帶有播放音樂功能的電子產(chǎn)品,在音頻文件解碼之后而未進行數(shù)字/模擬轉 換之前對中斷進行分析,采用分析脈碼調制PCM(英文Pulse Code Modulation的縮寫)數(shù) 據(jù)的方法,根據(jù)音量的大小,以及變化的強弱和各頻率給人耳帶來感覺體驗的不同,來計算 馬達的強弱繼而驅動馬達振動,使得電子產(chǎn)品根據(jù)音樂節(jié)奏變化有節(jié)奏的振動,帶給人們 愉快的體驗。為了達到上述目的,本發(fā)明采用的技術方案是,一種隨音樂變化振動效果的實現(xiàn) 方法,有兩種方案實現(xiàn)方案一為判斷PCM_Level_L大于零計數(shù),小于零中斷后開始分析一 個周期的信息情況;方案二為判斷PCM_Level_L小于零計數(shù),大于零中斷后開始分析一個 周期的信息情況。方案一的步驟如下該方法涉及以下數(shù)據(jù),周期為T,從PCM緩沖器中讀取的PCM數(shù)據(jù)用PCM_Level_ L來表示,一個周期內采樣點的數(shù)量為SubCount,SubCount的最大值為MaxSubCount,一個 中斷中幅度最大值MaxV_tmp,幅度參考值設置為常數(shù)VLowLimit,采樣點參考值設置為常 數(shù)FLowLimit,一個采樣周期內所有中斷點幅度的最大值為MaxV,有效周期個數(shù)即頻率為 ICoimt,設幅度最小參考值為MinV_T,采樣周期的時間由實現(xiàn)著根據(jù)產(chǎn)品特性設定。步驟1、對音頻文件解碼后未在PCM數(shù)據(jù)轉化成最終聲音模擬波形前,截取PCM的 數(shù)據(jù),從PCM緩沖器中讀每個PCM_Level_L ;步驟2、判斷PCM_Level_L是否大于零;步驟3、PCM_Level_L > 0,則執(zhí)行步驟 3. 1,PCM_Level_L 彡 0,則執(zhí)行步驟 3. 2 ;步驟3. U PCM_Level_L > 0,則開始計數(shù),得到一個子周期內采樣點的數(shù)量 SubCount,并記下此時的幅度最大值MaxV_tmp,跳至步驟5 ;步驟3. 2、PCM_Level_L< 0,則開始分析一個中斷讀取PCM緩沖器中正幅度的SubCount 和 MaxV_tmp,并執(zhí)行步驟 4 ;步驟4、同時滿足 SubCount < FLowLimit,MaxV_tmp < VLowLimit 的,則判斷為高 頻噪聲并過濾掉,不進行統(tǒng)計,為無效周期,統(tǒng)計出SUbC0Unt、MaXV_tmp的最大值;步驟5、統(tǒng)計出一個采樣周期MaxV_tmp的最大值MaxV,SubCount中的最大值 MaxSubCount,并統(tǒng)計出一個采樣周期內的MaxV、MaxSubCount,并統(tǒng)計出有效周期ICount 的數(shù)量;步驟6、比較一個采樣周期內前后兩次采樣得到的最大值MaxV,設差值為MaxV_L ;步驟7、判斷MaxV_L是否小于_MinV_T ;步驟8、MaxV_L < -MinV_T,則執(zhí)行步驟 8. 1,MaxV_L 彡-MinV_T,則執(zhí)行步驟 8. 2 ;步驟8. 1、MaxV_L < -MinV_T,則直接設MaxV_L = 0,馬達停止振動;步驟8. 2、MaxV_L 彡-MinV_T,則執(zhí)行步驟 9 ;步驟9、程序結束,繼續(xù)進行下一輪判斷。上述步驟1中的音頻文件指現(xiàn)有格式的音頻文件,如mp3文件、wav文件、wma文 件、midi 文件、winamp 等。方案二的步驟如下該方法涉及以下數(shù)據(jù),周期為T,從PCM緩沖器中讀取的PCM數(shù)據(jù)用PCM_Level_L 來表示,每當一個采樣點由正轉負為一個采樣子周期,子周期內采樣點的數(shù)量為SubCoimt, SubCount的最大值為MaxSubCount,一個中斷中幅度最大值MaxV_tmp,幅度參考值設置為 常數(shù)VLowLimit,采樣點參考值設置為常數(shù)FLowLimit,一個周期內所有中斷點幅度的最大 值為MaxV,有效周期即頻率為ICount,設幅度最小參考值為MinV_T步驟1、對音頻文件解碼后未在PCM數(shù)據(jù)轉化成最終聲音模擬波形前,截取PCM的 數(shù)據(jù),從PCM緩沖器中讀每個PCM_Level_L ;步驟2、判斷PCM_Leve 1_L是否小于零;步驟3、PCM_Level_L < 0,則執(zhí)行步驟 3. 1,PCM_Level_L 彡 0,則執(zhí)行步驟 3. 2 ;步驟3. 1、PCM_Level_L < 0,則開始計數(shù),得到一個周期內采樣點的數(shù)量 SubCount,并記下此時的幅度最大值MaxV_tmp,跳至步驟5 ;步驟3. 2、PCM_Level_L彡0,則開始分析一個中斷讀取PCM緩沖器中負幅度的 SubCount 和 MaxV_tmp,并執(zhí)行步驟 4 ;步驟4、同時滿足 SubCount < FLowLimit,MaxV_tmp < VLowLimit 的,則判斷為高 頻噪聲并過濾掉,不進行統(tǒng)計,為無效周期,統(tǒng)計出SubCoimt、MaXV_tmp的最大值;步驟5、統(tǒng)計出一個采樣周期內MaxV_tmp的最大值MaxV,SubCount中的最大值 MaxSubCount,并統(tǒng)計出一個周期內的MaxV、MaxSubCount,并統(tǒng)計出有效周期ICount的數(shù) 量;步驟6、比較一個采樣周期內前后兩次采樣得到的最大值MaxV,設差值為MaxV_L ;步驟7、判斷MaxV_L是否小于_MinV_T ;步驟8、MaxV_L < -MinV_T,則執(zhí)行步驟 8. 1,MaxV_L 彡-MinV_T,則執(zhí)行步驟 8. 2 ;步驟8. 1、MaxV_L < _MinV_T,則直接設MaxV_L = 0,馬達停止振動;步驟8. 2、MaxV_L 彡-MinV_T,則執(zhí)行步驟 9 ;步驟9、程序結束,進行下一輪判斷。
上述步驟1中的音頻文件指現(xiàn)有格式的音頻文件,如mp3文件、wav文件、wma文 件、midi 文件、winamp 等。以上方法用于所有帶有播放音樂功能的電子產(chǎn)品,能同時分析左右聲道,也能單 獨分析左右聲道、立體聲。與現(xiàn)有技術相比,本發(fā)明的有益效果是采用PCM數(shù)據(jù)的方法,根據(jù)音量的大小, 以及變化的強弱和各頻率給人耳帶來感覺體驗的不同,來計算馬達的強弱繼而驅動馬達振 動,使得電子產(chǎn)品根據(jù)音樂節(jié)奏變化有節(jié)奏的振動,帶給人們愉快的體驗,另外本發(fā)明只是 針對PCM數(shù)據(jù)進行分析,不受電子產(chǎn)品中的平臺的限制。
圖1為本發(fā)明的實施例1的程序流程圖;圖2為本發(fā)明的實施例2的程序流程圖。
具體實施例方式本發(fā)明的中心思想在于克服現(xiàn)有技術的不足,提供一種隨音樂變化振動效果的實 現(xiàn)方法,采用分析脈碼調制PCM數(shù)據(jù)的方法,根據(jù)音量的大小,以及變化的強弱和各頻率給 人耳帶來感覺體驗的不同,來計算馬達的強弱繼而驅動馬達振動,使得電子產(chǎn)品根據(jù)音樂 節(jié)奏變化有節(jié)奏的振動。下面結合實施例參照附圖進行詳細說明,以便對本發(fā)明的技術特 征及優(yōu)點進行更深入的詮釋。一種隨音樂變化振動效果的實現(xiàn)方法,有兩種方案實現(xiàn)方案一為判斷PCM_ Level_L大于零計數(shù),小于零中斷后開始分析一個周期的信息情況;方案二為判斷PCM_ Level_L小于零計數(shù),大于零中斷后開始分析一個周期的信息情況。實施例1本發(fā)明的程序流程圖如圖1所示,一種隨音樂變化振動效果的實現(xiàn)方法,其步驟 如下該方法涉及以下數(shù)據(jù),周期為T,從PCM緩沖器中讀取的PCM數(shù)據(jù)用PCM_Level_ L來表示,一個周期內采樣點的數(shù)量為SubCount,SubCount的最大值為MaxSubCount,一個 中斷中幅度最大值MaxV_tmp,幅度參考值設置為常數(shù)VLowLimit,采樣點參考值設置為常 數(shù)FLowLimit,一個采樣周期內所有中斷點幅度的最大值為MaxV,有效周期個數(shù)即頻率為 ICoimt,設幅度最小參考值為MinV_T,采樣周期的時間由實現(xiàn)著根據(jù)產(chǎn)品特性設定。步驟1、對音頻文件解碼后未在PCM數(shù)據(jù)轉化成最終聲音模擬波形前,截取PCM的 數(shù)據(jù),從PCM緩沖器中讀每個PCM_Level_L ;步驟2、判斷PCM_Level_L是否大于零;步驟3、PCM_Level_L > 0,則執(zhí)行步驟 3. 1,PCM_Level_L 彡 0,則執(zhí)行步驟 3. 2 ;步驟3. 1、PCM_Leve 1_L > 0,則開始計數(shù),得到一個子周期內采樣點的數(shù)量 SubCount,并記下此時的幅度最大值MaxV_tmp,跳至步驟5 ;步驟3. 2、PCM_Level_L彡0,則開始分析一個中斷讀取PCM緩沖器中正幅度的 SubCount 和 MaxV_tmp,并執(zhí)行步驟 4 ;步驟4、同時滿足 SubCount < FLowLimit,MaxV_tmp < VLowLimit 的,則判斷為高
6頻噪聲并過濾掉,不進行統(tǒng)計,為無效周期,統(tǒng)計出SUbC0Unt、MaXV_tmp的最大值;步驟5、統(tǒng)計出一個采樣周期MaxV_tmp的最大值MaxV,SubCount中的最大值 MaxSubCount,并統(tǒng)計出一個采樣周期內的MaxV、MaxSubCount,并統(tǒng)計出有效周期ICount 的數(shù)量;步驟6、比較一個采樣周期內前后兩次采樣得到的最大值MaxV,設差值為MaxV_L ;步驟7、判斷MaxV_L是否小于_MinV_T ;步驟8、MaxV_L < -MinV_T,則執(zhí)行步驟 8. 1,MaxV_L 彡-MinV_T,則執(zhí)行步驟 8. 2 ;步驟8. 1、MaxV_L < _MinV_T,則直接設MaxV_L = 0,馬達停止振動;步驟8. 2、MaxV_L 彡-MinV_T,則執(zhí)行步驟 9 ;步驟9、程序結束,繼續(xù)進行下一輪判斷。上述步驟1中的音頻文件指現(xiàn)有格式的音頻文件,如mp3文件、wav文件、wma文 件、midi 文件、winamp 等。實施例2該方法也適用于判斷PCM_Level_L小于零時的計數(shù),PCM_Level_L大于零時中斷 分析一個周期的信息,其軟件流程圖如圖2所示,步驟如下該方法涉及以下數(shù)據(jù),周期為T,從PCM緩沖器中讀取的PCM數(shù)據(jù)用PCM_Level_ L來表示,一個周期內采樣點的數(shù)量為SubCount,SubCount的最大值為MaxSubCount,一個 中斷中幅度最大值MaxV_tmp,幅度參考值設置為常數(shù)VLowLimit,采樣點參考值設置為常 數(shù)FLowLimit,一個采樣周期內所有中斷點幅度的最大值為MaxV,有效周期個數(shù)即頻率為 ICoimt,設幅度最小參考值為MinV_T,采樣周期的時間由實現(xiàn)著根據(jù)產(chǎn)品特性設定。步驟1、對音頻文件解碼后未在PCM數(shù)據(jù)轉化成最終聲音模擬波形前,截取PCM的 數(shù)據(jù),從PCM緩沖器中讀每個PCM_Level_L ;步驟2、判斷PCM_Leve 1_L是否小于零;步驟3、PCM_Level_L < 0,則執(zhí)行步驟 3. 1,PCM_Level_L ≥ 0,則執(zhí)行步驟 3. 2 ;步驟3. 1、PCM_Level_L < 0,則開始計數(shù),得到一個周期內采樣點的數(shù)量 SubCount,并記下此時的幅度最大值MaxV_tmp,跳至步驟5 ;步驟3. 2、PCM_Level_L≥0,則開始分析一個中斷讀取PCM緩沖器中負幅度的 SubCount 和 MaxV_tmp,并執(zhí)行步驟 4 ;步驟4、同時滿足 SubCount < FLowLimit,MaxV_tmp < VLowLimit 的,則判斷為高 頻噪聲并過濾掉,不進行統(tǒng)計,為無效周期,統(tǒng)計出SubCount、MaXV_tmp的最大值;步驟5、統(tǒng)計出一個采樣周期內MaxV_tmp的最大值MaxV,SubCount中的最大值 MaxSubCount,并統(tǒng)計出一個周期內的MaxV、MaxSubCount,并統(tǒng)計出有效周期ICount的數(shù) 量;步驟6、比較一個采樣周期內前后兩次采樣得到的最大值MaxV,設差值為MaxV_L ;步驟7、判斷MaxV_L是否小于_MinV_T ;步驟8、MaxV_L < -MinV_T,則執(zhí)行步驟 8. 1,MaxV_L ≥-MinV_T,則執(zhí)行步驟 8. 2 ;步驟8. 1、MaxV_L < _MinV_T,則直接設MaxV_L = 0,馬達停止振動;步驟8. 2、MaxV_L ≥-MinV_T,則執(zhí)行步驟 9 ;步驟9、程序結束,進行下一輪判斷。
上述步驟1中的音頻文件指現(xiàn)有格式的音頻文件,如mp3文件、wav文件、wma文 件、midi 文件、winamp 等。在具體工作時,采用分析脈碼調制PCM數(shù)據(jù)的方法,根據(jù)音量的大小,以及變化的 強弱和各頻率給人耳帶來感覺體驗的不同,來計算馬達的強弱繼而驅動馬達振動。由于對 聲音變化起主要作用的音源相同,所以一個周期內大多數(shù)聲音都是同一個頻率,因此用一 個周期內回到原軌的個數(shù),以及每個波形跨過原軌所用的時間,來推算當前的音源頻率;過 濾掉幅度不高,頻率很高的雜波;最后再根據(jù)微調得出音樂的變化節(jié)奏,對人耳的影響進行 最終振幅增強或者衰減,對馬達特性進行細節(jié)調試,根據(jù)某個區(qū)間內的幅度進行增強、衰減 或者突變,輸出電壓驅動馬達,使得帶有音樂播放功能的電子產(chǎn)品根據(jù)音樂節(jié)奏變化有節(jié) 奏的振動,帶給人們愉快的體驗。盡管本發(fā)明通過具體實施例對隨音樂變化振動效果的實現(xiàn)方法作出了清晰而完 整的描述,但是本發(fā)明不僅僅限于所述實施例,通過簡單的數(shù)據(jù)或程序變動來達到隨音樂 變化振動效果的目的是可能發(fā)生的并且都包括在本發(fā)明之中。
權利要求
1.一種隨音樂變化振動效果的實現(xiàn)方法,其步驟如下該方法涉及以下數(shù)據(jù),周期為T,從PCM緩沖器中讀取的PCM數(shù)據(jù)用PCM_Level_L來 表示,一個周期內采樣點的數(shù)量為SubCount,SubCount的最大值為MaxSubCount,一個中 斷中幅度最大值MaXV_tmp,幅度參考值設置為常數(shù)VLowLimit,采樣點參考值設置為常 數(shù)FLowLimit,一個采樣周期內所有中斷點幅度的最大值為MaxV,有效周期個數(shù)即頻率為 ICoimt,設幅度最小參考值為MinV_T,采樣周期的時間由實現(xiàn)著根據(jù)產(chǎn)品特性設定步驟1、對音頻文件解碼后未在PCM數(shù)據(jù)轉化成最終聲音模擬波形前,截取PCM的數(shù)據(jù), 從PCM緩沖器中讀每個PCM_Level_L ;步驟2、判斷PCM_Level_L是否大于零;步驟3、PCM_Level_L > O,則執(zhí)行步驟3. 1,PCM_Level_L彡O,則執(zhí)行步驟3. 2 ; 步驟3. 1、PCM_Level_L > 0,則開始計數(shù),得到一個子周期內采樣點的數(shù)量SubCount, 并記下此時的幅度最大值MaXV_tmp,跳至步驟5 ;步驟3. 2、PCM_Level_L彡0,則開始分析一個中斷讀取PCM緩沖器中正幅度的 SubCount 和 MaxV_tmp,并執(zhí)行步驟 4 ;步驟4、同時滿足SubCount < FLowLimit,MaxV_tmp < VLowLimit的,則判斷為高頻噪 聲并過濾掉,不進行統(tǒng)計,為無效周期,統(tǒng)計出SubCount、MaXV_tmp的最大值;步驟5、統(tǒng)計出一個采樣周期MaxV_tmp的最大值MaxV,SubCount中的最大值 MaxSubCount,并統(tǒng)計出一個采樣周期內的MaxV、MaxSubCount,并統(tǒng)計出有效周期ICount 的數(shù)量;步驟6、比較一個采樣周期內前后兩次采樣得到的最大值MaxV,設差值為MaxV_L ; 步驟7、判斷MaxV_L是否小于-MinV_T ;步驟8、MaxV_L < -MinV_T,則執(zhí)行步驟8. 1,MaxV_L彡-MinV_T,則執(zhí)行步驟8. 2 ; 步驟8. 1、MaxV_L < _MinV_T,則直接設MaxV_L = 0,馬達停止振動; 步驟8. 2、MaxV_L彡_MinV_T,則執(zhí)行步驟9 ; 步驟9、程序結束,繼續(xù)進行下一輪判斷。
2.根據(jù)權利要求1所述的隨音樂變化振動效果的實現(xiàn)方法,其特征在于上述步驟1 中的音頻文件指現(xiàn)有格式的音頻文件。
3.一種隨音樂變化振動效果的實現(xiàn)方法,其特征在于,步驟如下該方法涉及以下數(shù)據(jù),周期為T,從PCM緩沖器中讀取的PCM數(shù)據(jù)用PCM_Level_L來 表示,一個周期內采樣點的數(shù)量為SubCount,SubCount的最大值為MaxSubCount,一個中 斷中幅度最大值MaXV_tmp,幅度參考值設置為常數(shù)VLowLimit,采樣點參考值設置為常 數(shù)FLowLimit,一個采樣周期內所有中斷點幅度的最大值為MaxV,有效周期個數(shù)即頻率為 ICoimt,設幅度最小參考值為MinV_T,采樣周期的時間由實現(xiàn)著根據(jù)產(chǎn)品特性設定步驟1、對音頻文件解碼后未在PCM數(shù)據(jù)轉化成最終聲音模擬波形前,截取PCM的數(shù)據(jù), 從PCM緩沖器中讀每個PCM_Level_L ;步驟2、判斷PCM_Level_L是否小于零;步驟3、PCM_Level_L < O,則執(zhí)行步驟3. 1,PCM_Level_L彡O,則執(zhí)行步驟3. 2 ; 步驟3. 1、PCM_Level_L < 0,則開始計數(shù),得到一個周期內采樣點的數(shù)量SubCoimt,并 記下此時的幅度最大值MaXV_tmp,跳至步驟5 ;步驟3. 2、PCM_Level_L彡O,則開始分析一個中斷讀取PCM緩沖器中負幅度的 SubCount 和 MaxV_tmp,并執(zhí)行步驟 4 ;步驟4、 同時滿足SubCount < FLowLimit,MaxV_tmp < VLowLimit的,則判斷為高頻噪 聲并過濾掉,不進行統(tǒng)計,為無效周期,統(tǒng)計出SubCount、MaXV_tmp的最大值;步驟5、統(tǒng)計出一個采樣周期內MaxV_tmp的最大值MaxV,SubCount中的最大值 MaxSubCount,并統(tǒng)計出一個周期內的MaxV、MaxSubCount,并統(tǒng)計出有效周期ICount的數(shù) 量;步驟6、比較一個采樣周期內前后兩次采樣得到的最大值MaxV,設差值為MaxV_L ; 步驟7、判斷MaxV_L是否小于-MinV_T ;步驟8、MaxV_L < -MinV_T,則執(zhí)行步驟8. 1,MaxV_L彡-MinV_T,則執(zhí)行步驟8. 2 ; 步驟8. 1、MaxV_L < _MinV_T,則直接設MaxV_L = 0,馬達停止振動; 步驟8. 2、MaxV_L彡_MinV_T,則執(zhí)行步驟9 ; 步驟9、程序結束,進行下一輪判斷。
4.根據(jù)權利要求3所述的隨音樂變化振動效果的實現(xiàn)方法,其特征在于上述步驟1 中的音頻文件指現(xiàn)有格式的音頻文件。
全文摘要
一種隨音樂變化振動效果的實現(xiàn)方法,采用分析脈碼調制PCM數(shù)據(jù)的方法,根據(jù)音量的大小、變化的強弱及頻率來計算馬達的強弱繼而驅動馬達振動。由于對聲音變化起主要作用的音源相同,所以一個周期內大多數(shù)聲音都是同一個頻率,因此用一個周期內回到原軌的個數(shù),以及每個波形跨過原軌所用的時間,來推算當前的音源頻率;過濾掉幅度不高,頻率很高的雜波;最后再根據(jù)微調得出音樂的變化節(jié)奏,對人耳的影響進行最終振幅增強或者衰減,對馬達特性進行細節(jié)調試,根據(jù)某個區(qū)間內的幅度進行增強、衰減或者突變,輸出電壓驅動馬達,使得帶有音樂播放功能的電子產(chǎn)品根據(jù)音樂節(jié)奏變化有節(jié)奏的振動,帶給人們愉快的體驗。
文檔編號G10L19/00GK102064832SQ201010546550
公開日2011年5月18日 申請日期2010年11月11日 優(yōu)先權日2010年11月11日
發(fā)明者楊晨鵬, 蘇豫 申請人:廣東歐珀移動通信有限公司