專利名稱:一種midi音樂播放裝置的制作方法
技術領域:
本實用新型涉及一種音頻數據播放裝置,特別是一種MIDI音樂播放的裝置。
技術背景MIDI是Musical Instrument Digital Interface的首寫字母組合詞,可譯成“電子樂器數字接口”。用于在音樂合成器(music synthesizers)、樂器(musical instruments)和計算機之間交換音樂信息的一種標準協議。MIDI文件沒有記錄聲音本身,而是對樂曲的描述,比如說“在什么時候,使用什么樂器,以什么音符開始,以什么音調結束,加以什么伴奏”。也就是說它只記錄了樂曲的信息。所以播放MIDI就需要一些音樂合成手段,其中一種方法為波表合成方法。波表合成方法是在MIDI播放時,根據MIDI記錄的樂曲信息向波表發出命令,從表格中找出對應的聲音信息,經過合成、加工后回放出來。而音樂合成器通常有自己獨特的指令,所以需要預先把輸入的MIDI文件或別的格式的MIDI音樂轉換為控制音樂合成器的指令格式。現有的MIDI音樂播放裝置一般為采用一個中央控制器(CPU)讀入MIDI文件,并轉換成可控制音樂合成器的MIDI指令數據;然后由一個序列器(sequencer)定時從這些指令中取出一條指令送入一個音樂合成器合成樂曲。而現有的這種MIDI音樂播放裝置都只能每次讀入一路MIDI文件,進行一路MIDI音樂的合成。隨著人們需求的提高,同時播放多路MIDI音樂,獲得更豐富的視聽享受也將成為人們的需求趨勢。
實用新型內容本實用新型的目的是針對現有技術的不足,提供一種簡單實用,且可實現同時播放多路MIDI音樂播放裝置。
為了解決上述技術問題,本實用新型所采取的技術方案是一種MIDI音樂播放裝置,包括音樂合成器,還包括仲裁器以及多路序列器,所述多路序列器用于分別輸入多路MIDI數據指令,并按該MIDI數據指令的執行時間輸出;所述仲裁器用于對多路序列器作出仲裁選擇,從而使其中一路序列器所輸出的MIDI數據指令傳輸至所述音樂合成器內。
還可以包括用于緩存MIDI數據指令的多路緩存器,且每路緩存器的輸出端對應連接至一路序列器的輸入端。
還可以包括通道分配器,用于接收序列器輸出的MIDI數據指令,并為其分配正確的音樂合成器的通道后,將所述MIDI數據指令輸入所述音樂合成器內。
還可以包括中央控制器,用于讀入MIDI文件,并將其轉換成可控制音樂合成器的MIDI數據指令后,輸入對應的緩存器內。
還可以包括模數轉換器,用于將所述音樂合成器輸出的數字信號的MIDI音樂轉換成模擬信號,以進行播放。
所述仲裁器可以采用選擇電路實現。
在上述技術方案中,本實用新型通過采用多路序列器并列獲取MIDI數據指令,并通過仲裁選擇的方法選取其中一路輸出到音樂合成器內合成,從而實現了多路MIDI音樂并發播放的目的,獲得更好的音樂播放的效果;并且,由于多路序列器共享一個音樂合成器,則可以最大限度的利用好音樂合成器資源,簡化系統結構、縮小裝置的體積,并可降低成本。另外,在序列器前設置緩存器緩存MIDI數據指令可減少序列器的工作負荷;在音樂合成器前設置通道分配器進行合成器通道的配置則可更有效的利用音樂合成器的通道。相對現有技術,本實用新型具有資源配置合理、結構簡單,可實現多路MIDI音樂同時播放,播放效果好等特點。
附圖1為本實用新型一種MIDI音樂播放裝置的結構原理方框圖;附圖2為本實用新型的一種較佳實施例的MIDI音樂播放裝置的結構原理方框圖;附圖3為本實用新型的一種較佳實施例的MIDI音樂播放時的流程圖。
具體實施方式
下面將結合說明書附圖及具體實施例對本實用新型作進一步詳細說明。
參考附圖1,本實用新型提供的一種MIDI音樂播放裝置,包括音樂合成器、仲裁器以及多路序列器,所述多路序列器用于分別輸入多路MIDI數據指令,并按該MIDI數據指令的執行時間輸出;所述仲裁器用于對多路序列器作出仲裁選擇,從而使其中一路序列器的MIDI數據指令傳輸至所述音樂合成器。
圖2、3給出本實用新型的一個較佳實施例。
如圖2,本實施例中給出具有兩路序列器的MIDI音樂播放裝置的結構,具有兩路以上序列器的MIDI音樂播放裝置的結構以及工作原理均與此類似。本實用新型包括但不局限于本實施例。
本實施例的MIDI音樂播放裝置包括中央控制器(CPU)、多路緩存器、多路序列器、仲裁器、通道分配器、音樂合成器及模數轉換器。其中各個模塊的具體結構均可采用現有技術的結構實現,如序列器可采用狀態機實現,仲裁器可采用選擇電路實現等,該現有技術為本技術領域內的技術人員所公知的技術方案,本專利中不再詳細描述。
本實施例的結構中,所述中央控制器用于讀入所有MIDI文件,并將其轉換成可控制音樂合成器的MIDI數據指令后,輸入對應的緩存器。
每路緩存器的輸出端對應連接至一路序列器的輸入端,用于緩存MIDI數據指令。
所述序列器用于首先自所述緩存器內預取MIDI數據指令的部分數據,其中包括該指令的執行時間數據。當該指令的執行時間到達,并且該序列器獲得仲裁許可時,該序列器再從所述緩存器內取出該MIDI數據指令的全部數據,并傳輸至所述音樂合成器。由此可見,序列器不必如現有技術中,預先存取所有的MIDI數據指令,消耗過多的系統資源。當然,在MIDI數據指令較短的情況下,亦可對本實施例作出修改,去掉多路緩存器,使多路序列器直接從中央控制器中獲得全部的MIDI數據指令。
所述仲裁器用于根據預先設定的優先級,選擇優先級最高的一路序列器輸出MIDI數據指令。
所述通道分配器用于接收序列器輸出的MIDI數據指令,并為其分配正確的音樂合成器的通道,控制相應通道合成音樂。
所述模數轉換器用于將所述音樂合成器輸出的數字信號的MIDI音樂轉換成模擬信號,以進行播放。
下面對照圖4說明本實施例的具體的工作流程。
首先我們假定一種應用場景在通過手機上網玩游戲時,手機的背景音樂是一路MIDI音樂,當按下按鍵時會發出按鍵音,這是另一路MIDI音樂,這兩路MIDI音樂需要同時播放,而且預先規定按鍵音的優先級高于背景音樂。
當需要播放背景音樂文件的時候,CPU從MIDI文件1讀入MIDI文件,作分析處理,將MIDI指令轉變為可以控制音樂合成器的指令,然后將該指令送入緩存器1,當要播放按鍵音時CPU就讀入MIDI文件2,作同樣的處理,將處理結果送入緩存器2。緩存器1和緩存器2是兩個緩沖區,用來緩沖CPU送入的數據。序列器1和序列器2是兩個相同的序列器,當緩沖區中有數據的時候,序列器從緩沖區中取出部分MIDI數據指令,其中包含了該命令的執行時間,序列器等待該執行時間,當時間到達后序列器向仲裁器發出仲裁請求。如果只有一路序列器向仲裁器發出仲裁請求,則直接將該路序列器的MIDI數據指令發送給通道分配器。而當序列器1和序列器2同時向仲裁器發送仲裁請求時,由于設定序列器2的優先級高于序列器1的優先級,序列器2的MIDI數據指令將被仲裁器選擇送給通道分配器,序列器1則要等到序列器2發送完MIDI指令后才能發送。由于音樂合成器可以有16、64等多個通道,通道分配器需要為來自仲裁器的MIDI指令選擇正確的合成器通道,控制相應通道的合成器合成音樂。當命令送入音樂合成器后就開始合成音樂,從音樂合成器輸出合成的MIDI音樂,再經過一個模數轉換模塊將數字信號變成模擬信號,就得到了兩路MIDI音樂。
以上僅為本實用新型的一個具體實施例。而在實際實施過程中,還可根據實際應用作出相應的調整,如仲裁器的實施結構以及進行仲裁選擇的方法可以按照不同的應用環境、不同的MIDI指令等因素作出相應的改變;再如通道分配器的功能亦可在CPU內完成。因此,凡依本實用新型技術方案所作的改變,所產生的功能作用未超出本實用新型技術方案的范圍時,均屬于本實用新型的保護范圍。
權利要求1.一種MIDI音樂播放裝置,包括音樂合成器,其特征在于還包括仲裁器以及多路序列器,所述多路序列器用于分別輸入多路MIDI數據指令,并按該MIDI數據指令的執行時間輸出;所述仲裁器用于對多路序列器作出仲裁選擇,從而使其中一路序列器所輸出的MIDI數據指令傳輸至所述音樂合成器內。
2.如權利要求1所述MIDI音樂播放裝置,其特征在于還包括用于緩存MIDI數據指令的多路緩存器,且每路緩存器的輸出端對應連接至一路序列器的輸入端。
3.如權利要求1或2所述MIDI音樂播放裝置,其特征在于還包括通道分配器,用于接收序列器輸出的MIDI數據指令,并為其分配正確的音樂合成器的通道后,將所述MIDI數據指令輸入所述音樂合成器內。
4.如權利要求3所述MIDI音樂播放裝置,其特征在于還包括中央控制器,用于讀入MIDI文件,并將其轉換成可控制音樂合成器的MIDI數據指令后,輸入對應的緩存器內。
5.如權利要求4所述MIDI音樂播放裝置,其特征在于還包括模數轉換器,用于將所述音樂合成器輸出的數字信號的MIDI音樂轉換成模擬信號,以進行播放。
6.如權利要求5所述MIDI音樂播放裝置,其特征在于所述仲裁器采用選擇電路實現。
專利摘要本實用新型公開了一種MIDI音樂播放裝置,包括音樂合成器、仲裁器以及多路序列器,所述多路序列器用于分別輸入多路MIDI數據指令,并按該MIDI數據指令的執行時間輸出;所述仲裁器用于對多路序列器作出仲裁選擇,從而使其中一路序列器所輸出的MIDI數據指令傳輸至所述音樂合成器內。相對現有技術,本實用新型具有資源配置合理、結構簡單,可實現多路MIDI音樂同時播放,播放效果好等特點。
文檔編號G10H1/00GK2758924SQ20042011554
公開日2006年2月15日 申請日期2004年11月15日 優先權日2004年11月15日
發明者金傳恩, 董欣, 戴春泉 申請人:北京中星微電子有限公司