樂音生成裝置的製作方法
2023-07-05 10:28:26
專利名稱:樂音生成裝置的製作方法
技術領域:
本發明涉及通過按鍵樂音數據和音頻數據協作的樂音生成裝置。
背景技術:
在電子樂器中,所謂的「自動伴奏」的功能為人們熟知。在自動伴奏的功能中,存 儲有預定的樂曲的自動伴奏模式的數據,按照預定拍子,依次讀入其數據,發出構成自動伴奏的樂音。演奏者一邊聽該自動伴奏,一邊在由樂曲規定的時刻,按動預定的部分(一般為旋律)的鍵,由此,發出完成的樂曲的樂音。在自動伴奏模式中,在符合自動伴奏模式所示的伴奏序列的發音時刻,發出相當於預定的代碼的組成音的樂音。另外,在自動伴奏模式中,還包含構成旋律音的對旋律等的伴奏音與節奏音。這樣的自動伴奏具有與演奏者通過操作按鍵產生樂音相同的發音形式。S卩,在按照伴奏序列的發音時刻,將包含音高和音色的音符開事件(note on event)發送給音源部,音源部從存儲有波形數據的ROM,對於指定的音色的數據,按照符合音高的速度,讀取波形數據,由此,輸出預定的音色和音高的樂音波形數據。在具有這樣的自動伴奏功能的電子樂器中,並不限於演奏者熟練地進行樂曲的演奏,具有沒有在標準的按鍵時刻,按鍵的情況或者按鍵錯誤的情況。在日本特開2000-206965號文獻或日本特開2007-114539號文獻中公開的電子樂器中,此時,使自動伴奏模式的讀取恰當,防止產生僅伴奏隨便地進行的情況。另一方面,人們提出了下述的電子樂器,其接收來自音頻播放器等其它的音響設備的音頻數據,或接收對來自麥克風等的音響信號進行採用得到的音頻數據,可以再生這樣的音頻數據和從音源部發出的樂音波形數據雙方。例如,可考慮下述的裝置,將音頻數據作為自動伴奏進行再生,使旋律音成為根據演奏者的鍵操作通過音源部形成的樂音波形數據。此時,因為按照預定的採樣頻率讀取音頻數據,所以具有下述的問題,難以在演奏者無法在標準的按鍵時刻按鍵時,與演奏者的演奏相配合地控制音頻數據的讀取。
發明內容
本發明的目的在於提供一種樂音生成裝置,在作為自動伴奏再生音頻數據時,能夠對應於演奏者的鍵操作,實現恰當的音頻數據的讀出。本發明的目的通過下述的樂音生成裝置實現,該樂音生成裝置具備
存儲單元,其存儲樂曲數據以及作為上述樂曲數據的樂曲的伴奏數據的音頻數據,上述樂曲數據包含構成樂曲的樂音的音高和表不發音時刻的時間信息;樂音數據生成單元,其根據多個演奏操作鍵的操作,生成預定的樂音的樂音數據;以及音頻數據再生單元,其按照基於上述樂曲數據中包含的時間信息的經過時間,讀取並再生上述音頻數據,上述音頻數據再生單元具備操作判斷單元,其判斷上述多個演奏操作鍵中的某個演奏操作鍵的操作時刻是否與上述樂曲數據所示的發音時刻一致;
再生控制單元,其在通過該操作判斷單元判定不一致時,將上述音頻數據的讀取位置從與上述操作時刻相對應的零交叉點跳到與上述發音時刻對應的零交叉點,之後繼續進行通常的音頻數據的讀出再生。
圖I為表示本實施方式的電子樂器的外觀的圖;圖2為表示本發明的實施方式的電子樂器的結構的方框圖;圖3為在本實施方式中,進行歌曲伴奏時的樂曲數據和其按鍵時刻的例子的圖;圖4為在本實施方式中,進行歌曲伴奏時的樂曲數據以及其按鍵時刻的例子的圖;圖5為在本實施方式中,進行歌曲伴奏時的樂曲數據和其按鍵時刻的例子的圖;圖6A為表示本實施方式的樂曲數據的數據結構例子的圖,圖6B為存儲在處理的過程中設定的數據的寄存器組的例子的圖;圖7A為表示在本實施方式的電子樂器中進行的主流程的例子的流程圖,圖7B為表示本實施方式的計時器中斷處理的例子的流程圖;圖8為更具體地表示本實施方式的鍵盤處理的例子的流程圖;圖9為表示本實施方式的課程鍵盤處理的例子的流程圖;圖10為表示本實施方式的歌曲處理的例子的流程圖;圖11為表示本實施方式的歌曲開始處理的例子的流程圖;圖12為表示本實施方式的樂音再生處理的例子的流程圖;圖13為表示本實施方式的循環點查找處理的例子的流程圖;圖14為說明本實施方式的循環點的檢測的例子的圖;圖15為表示本實施方式的歌曲音頻再生處理的例子的流程圖;圖16A以及圖16B為表示本實施方式的歌曲音頻再生處理的例子的流程圖;圖17為表示本實施方式的音源發音處理的例子的流程圖;圖18為表不在本實施方式中,樂曲的按鍵(音符開)和離開鍵(音符關)的時刻和音頻數據的例子的圖;圖19為表示演奏者的提前按鍵時的音頻數據的例子的圖;圖20為表示本發明的另一實施方式的樂曲數據的數據結構例子的圖;圖21為表不另一實施方式的循環點查找處理的例子的流程圖。
用於準備的實施例的具體描述下面參照附圖,對本發明的實施方式進行說明。圖I為表示本實施方式的電子樂器的外觀的圖。如圖I所示的那樣,本實施方式的電子樂器10具有鍵盤11。另外,在鍵盤11的上部,具有用於進行音色指定,後述的按照音頻數據的歌曲伴奏的開始./結束等的開關(參照標號12,13),顯示與演奏的樂曲有關的各種的信息,比如,音色,樂譜等的顯示部15。本實施方式的電子樂器10例如具有61個鍵(C2 C7)。圖2為表示本發明的實施方式的電子樂器的結構的方框圖。如圖2所示,本實施方式的電子樂器10包括CPU21,R0M22, RAM23,音響系統24,鍵盤11,輸入接口(I/F)14,顯示部15,與具有上述開關11,12的開關組16。CPU21進行電子樂器10的整體的控制,鍵盤11的鍵的按動,構成開關組16的開關(比如,參照圖I的標號12,13)的操作的檢測、按照鍵或開關的操作的音響系統24的控 制,符合音頻數據的歌曲伴奏等的各種處理。R0M22存儲CPU21進行的各種的處理,比如,開關的操作,鍵盤中的某個鍵的按鍵,與按鍵相對應的樂音的發音,符合音頻數據的歌曲伴奏等的程序。另外,R0M22具有存儲用於生成鋼琴、吉他、小提琴、喇叭、單簧管等各種音色的樂音的波形數據的波形數據區域;存儲包含應按動的鍵和該按鍵時刻的樂曲數據的樂曲數據區域;以及存儲音頻數據的音頻數據區域。RAM23存儲從R0M22讀出的程序、在處理的過程中產生的數據。另外,在RAM23中還具有存儲經由輸入I/F14,從其它的音響裝置30接收的音頻數據的音頻數據區域。音頻數據是按照預定的採樣頻率進行採樣得到的,例如PCM數據,從音頻數據區域的開始地址依次存儲數據值。輸入I/F 14能夠與其它的音響裝置30連接,可接受來自其它的音響裝置30的音頻數據。音頻數據通過CPU21,存儲在RAM23的音頻數據區域。此外,音頻數據與從起始地址的數據開始的經過時間相對應。音響系統24包括音源部26,音頻電路27,揚聲器28和音頻數據再生部29。音源部26例如在從CPU21接收到有關按動的鍵的信息或自動伴奏模式的信息時,從R0M22的波形數據區域讀出預定的波形數據,生成並輸出預定的音高的樂音數據。另外,音源部26也可將波形數據,特別是小鼓、低音大鼓、鐃鈸等打擊樂器的音色的波形數據原樣不變地作為樂音數據輸出。另外,音頻數據再生部29按照採樣頻率,另外依照基於樂曲數據中包含的時間信息的經過時間,讀出在音頻數據區域中存儲的音頻數據。另外,音頻數據再生部29如後所述,接受2個循環點(循環源時刻和循環目的地時刻),能夠進行循環點之間的音頻數據的循環再生。音頻電路27將樂音數據和音頻數據合成,對合成後的數據進行D/A變換處理後對其進行放大。由此,從揚聲器28輸出聲音信號。圖3 圖5是表示在本實施方式中,進行歌曲伴奏時的樂曲數據和其按鍵時刻的例子的圖。在圖3中,在標準時刻的樂曲數據中,在最初的休止符(時間t0)後,按鍵(接通),在時間tl (I)後離鍵,並且在時間t2 (I)後,進行下一個按鍵(按鍵時間tl (2))。在實際的按鍵動作(標號320)中,適當地進行了最初的按鍵和離鍵。但是,在離鍵後經過t2(l),在時刻T(參照標號322),應當按動下一個鍵,但是經過t2』 ( < t2(l))(參照標號310),在時刻T』(參照標號321),進行了下一次的按鍵。即,按鍵提前了 T-T』( = t2(l)-t2』)。因此,在此以後,樂曲數據的讀入需要提前T-T』(參照標號311)。
在圖4中,在實際的按鍵動作(標號420)中,適當地進行了最初的按鍵和離鍵。但是,在圖4的例子中,在最初的離鍵後,即使經過了 t2(l)後也沒有按動下一個鍵(參照標號410)。例如,如圖5所示的那樣,認為在最初的鍵的離鍵後,在經過時間t」 ( > t2(l))後,在時刻T」(參照標號521)進行了按鍵。此時,按鍵延遲了 t」-t2(l)。因此,樂曲數據的讀入需要延遲t」-t2(l)(參照標號512)。另外,在標號511所示的時間,無法讀出音頻數據的新的地址的數據。在本實施方式中,如後述的那樣,通過按動按鍵而產生樂音是通過音源部26生成的樂音,但是,歌曲伴奏通過音頻數據的再生來實現,所以如圖3或圖5所示的那樣,在按鍵提前或延遲時,需要使音頻數據的讀出適當化。在本實施方式中,通過後述的方式,實現讀出的適當化。圖6A為表示本實施方式的樂曲數據的數據結構例子的圖,圖6B為存儲在處理過程中設定的數據的寄存器組的例子的圖。如圖6A所示的那樣,樂曲數據600包括表示時間間隔的時間的記錄(參照標號601,603,605),具有應按動的鍵的音高的音符開事件的記錄 (參照標號602)和具有應離鍵的音高的音符關事件的記錄(參照標號604)。最初的時間的記錄存儲直到最初的按鍵為止的期間的時間t0。該時間t0相當於樂曲的前奏的時間。另外,在音符開事件的記錄與音符關事件的記錄之間的時間的記錄中存儲的時間tl表示按鍵時間。另外,在音符關事件的記錄和音符開事件的記錄之間的時間的記錄中存儲的時間t2表示從離開某個鍵開始,到按壓下一個鍵的時間間隔。如圖6B所示的那樣,RAM23中的寄存器組610具有經過時間寄存器,時間信息寄存器,本次音高信息寄存器,下次音高信息寄存器,歌曲經過時間寄存器,正解標誌,狀態寄存器,循環再生標誌。在經過時間寄存器中,存儲有在歌曲處理期間經過的時間。在時間信息寄存器中,存儲音符開事件之間的時間間隔(A t = tl+t2)。在本次音高信息寄存器和下次高信息寄存器中,存儲在音符開事件的記錄中包含的音高信息。另外,歌曲經過時間寄存器存儲有從歌曲開始起的經過時間。在狀態寄存器中存儲有電子樂器10的演奏狀態。下面對在本實施方式的電子樂器10中進行的處理進行說明。圖7A表示在本實施方式的電子樂器中進行的主流程的例子的流程圖。另外,圖7B為表示本實施方式的計時器中斷處理的例子的流程圖。在計時器中斷處理中,進行圖7A所示的主流程時,按照預定的時間間隔,分別使作為中斷計數器的經過時間計數器與歌曲經過時間計數器的計數值增加(步驟711,712)。另外,計時器中斷處理可通過CPU21的指示,停止計數器。如圖7A所示的那樣,電子樂器10的CPU21在接通了電子樂器10的電源時,進行包括RAM23中的數據,顯示部15的圖像的清除的初始化處理(初期化處理)(步驟701)。當初始化處理(步驟701)結束時,CPU21檢測構成開關組16的各個開關的操作,實施開關處理,該開關處理執行按照檢測出的操作的處理(步驟702)。例如,在開關處理(步驟702)中,檢測音色指定開關,歌曲伴奏用的樂曲數據的指定開關,歌曲再生開關的操作。例如,當歌曲再生開關接通時,CPU21將規定值存儲在寄存器組610中的狀態寄存器中。另外,當歌曲再生開關斷開時,在狀態寄存器中,存儲表示歌曲再生停止狀態的值。當開關處理(步驟702)結束時,CPU21進行鍵盤處理(步驟703)。圖8為更詳細地表示本實施方式的鍵盤處理的例子的流程圖。在鍵盤處理中,CPU21對鍵盤11的鍵進行掃描(步驟801)。把作為鍵的掃描結果的事件(音符開或音符關)臨時存儲於RAM23中。CPU21參照存儲於RAM23中的鍵的掃描結果,判斷某個鍵是否具有新的事件(步驟802)。當在步驟802判斷為「是」時,CPU21參照狀態寄存器,判斷演奏狀態是否為「正在再生歌曲」(步驟803)。當在步驟803判斷為「是」時,進行課程鍵盤處理(步驟804)。另一方面,當在步驟803判斷為「否」時,執行普通的鍵盤處理 (步驟805)。在步驟805,CPU21判定鍵事件是音符開(按鍵),還是音符關(離開鍵)。如果是音符開,則CPU21生成包含被按動的鍵的音高的信息的音符開事件,將其輸出給音源部26。如果是音符關,則生成包含離開的鍵的音高的信息的音符關事件,將其輸出給音源部26。接著,對課程鍵盤處理(步驟804)進行說明。圖9為表示本實施方式的課程鍵盤處理的例子的流程圖。如圖9所示的那樣,CPU21判斷鍵事件是否是新的音符開(步驟901)。當在步驟901判斷為「是」時,CPU21生成包含被按動的鍵的音高的信息的音符開事件,將其輸出給音源部26 (步驟902)。另外,當在步驟901判斷為「否」時,生成包含離開的鍵的音高的信息的音符關事件,將其輸出給音源部26 (步驟903)。在該步驟903後,課程鍵盤處理結束。在進行步驟902後,CPU21判斷新的音符開的鍵的音高是否與存儲在下次音高信息寄存器中的音高一致(步驟904)。當在步驟904判定為「否」時,結束課程鍵盤處理。當在步驟904判斷為「是」時,CPU21將寄存器組中的正解標誌設定為「I」(步驟905)。該正解標誌是在演奏者進行的按鍵與下次應該按動的鍵一致時,設定為「 I」的標誌。然後,CPU21判斷當前,作為歌曲伴奏數據的音頻數據是否正在循環再生(步驟906)。關於是否正在循環再生,判斷寄存器組中的循環再生標誌是否為「I」即可。當在步驟906判定為「否」時,CPU21查找提前按動對應的跳動源時刻(步驟907),當在步驟906判定為「是」時,CPU21查找延遲按動對應的跳動源時刻(步驟908)。跳動源時刻是從按鍵時刻開始,按照時間序列未來並且附近的預定的相位(例如,數據值從負轉移為正)的零交叉點。當鍵盤處理(步驟703)結束時,CPU21進行歌曲處理(步驟704)。圖10為表示本實施方式的歌曲處理的例子的流程圖。如圖10所示的那樣,CPU21參照狀態寄存器,判斷演奏狀態是否表示「正在再生歌曲」(步驟1001)。當在步驟1004判定為「否」時,CPU21參照狀態寄存器,判斷演奏狀態是否表示「歌曲開始」(步驟1002)。當在步驟1002判定為「否」時,結束歌曲處理。當在步驟1002判定為「是」時,CPU21進行歌曲開始處理(步驟1003)。圖11是表示本實施方式的歌曲開始處理的例子的流程圖。如圖11所示,CPU21根據存儲於R0M22中的樂曲數據的起始的記錄,獲得時間t0 (步驟1101)。該時間t0作為初始的時間信息At,存儲於寄存器組中的時間信息寄存器中。CPU21從下一地址的記錄中取得音符開事件,將音符開事件中包含的音高信息存儲於本次音高信息寄存器中(步驟1102)。另外,CPU21取得下一音符開事件的記錄,將該下一音符開事件中包含的音高信息存儲於時間音高信息寄存器中(步驟1103)。另外,CPU21允許基於計時器中斷處理的歌曲經過時間計數器的動作,開始歌曲經過時間的測量(步驟1104),並且將音頻數據再生的開始指示給音頻數據再生部29(步驟1105)。另外,CPU21在狀態寄存器中存儲表示「正在再生歌曲」的信息,來作為演奏狀態(步驟 1106)。當在步驟1001判定為「是」時,CPU21進行歌曲樂音再生處理(步驟1004)。圖12為表示本實施方式的歌曲樂音再生處理的例子的流程圖。如圖12所示,CPU21取得經過時間寄存器的寄存值(步驟1201)。接著,CPU21判斷是否應該計算時間信息At(步驟1202)。當在步驟1202判定為「是」時,將關於本次按動的鍵的音符開事件的記錄的下一記錄中的時間tl,與音符關事件的記錄中的下一記錄中的時間t2相加,將加法運算值tl+t2存儲於時間信息寄存器中(步驟1203)來作為時間信息At。另外,當在步驟1202中應該計算時間信息At時,是變更了本次音高信息寄存器和下次音高信息寄存器的值的情況。接著,CPU21計算A t-經過時間(步驟1204)。在步驟1201 1204,判斷從上次按鍵(音符開)的時刻開始的經過時間經歷At,是否到達了下次的按鍵(音符開)的時亥IJ。在步驟1205中,參照步驟1204的結果,表示了在從上次的按鍵的時刻開始經過了 At時(在步驟1205中為「是」),雖然到達了應進行下次按鍵的時刻,但還未按鍵。因此,當在 步驟1205判定為「是」時,CPU21進行循環點查找處理(步驟1206)。圖13為表示本實施方式的循環點查找處理的例子的流程圖。如圖13所示,CPU21根據本次音高寄存器中的本次音高信息,計算作為該音高的周期的循環周期(步驟1301)。該循環周期為音頻數據的循環的基本周期。CPU21在音頻數據中,從當前正在再生的地址追溯過去,來查找零交叉點(步驟1302)。CPU21計算零交叉點間的平均周期(步驟1303)。另外,在此,查找的零交叉點全部為相位相同的零交叉點。即,如果最初發現的零交叉點為上升(數據值從負轉為正的)零交叉點,則其它發現的零交叉點也全部為上升的零交叉點。CPU21判斷循環周期和平均周期的差異的絕對值是否在允許範圍內(即,小於預定的閾值)(步驟1304)。當在步驟1304判定為「否」時,CPU21進一步追溯音頻數據的時間序列查找下一零交叉點(步驟1302)。另一方面,當在步驟1304判定為「是」時,CPU21將上述差異的絕對值在允許範圍內的零交叉點作為音頻數據的循環點中的循環目的地的點,存儲在RAM23中(步驟1305)。另外,循環點存在循環目的地的點和循環源的點。在本實施方式中,存儲與上述零交叉點對應的時刻(循環目的地時刻),來作為表示循環目的地的點的信息。另外,如後所述,在本實施方式中,標準的按鍵時刻與規定的相位(上升,即數據值從負轉為正)的零交叉點一致。因此,循環源的點是與標準的按鍵時刻對應的點。因此,在本實施方式中,存儲與標準的按鍵時刻對應的時刻(循環源時刻)來作為表示循環源的點的信息。然後,CPU21將寄存器組中的循環再生標誌設定為「2」(步驟1306)。另外,循環再生標誌表示音頻數據的循環再生狀態,標誌為「2」的情況表示循環再生開始狀態。另外,標誌為「 I」的情況表示循環再生狀態,標誌為「0」的情況表示沒有進行循環再生的狀態。圖14為說明本實施方式的循環點的檢測的例子的圖。在圖14中,音符關(離鍵)的時刻由標號1401表不,本來的下一個音符開(按鍵)的時刻由標號1402表不。從某個鍵的音符開到下一音符開的時間為At(參照標號1400)。另外,作為歌曲伴奏的音頻數據由標號1400表示。此外,上述的已按動以及離開的(標號1401)的鍵的音高為A4 = 440Hz,循環周期為2. 27msec。在圖14中,當在本來的下一音符開中沒有進行實際的按鍵時,CPU21測量音頻數據的零交叉點(相同相位的零交叉點)之間的周期。在最初的處理中,從本來的音符開的時刻,按照時間序列進行追溯,確定I組的零交叉點,此間的波形(參照標號1411)的平均周期為2. 22msec0例如在本實施方式中,當把與A4的音高有關的閾值設為0. Olmsec時,因為|2. 27-2.22|彡閾值,所以在圖13的步驟1304判定為「否」,在下一步驟1302,進一步按照時間序列進行追溯,確定2組的零交叉點。計算各自之間的2個波形(標號1411,1412)的平均周期(2. 245msec)。在此,因為12.27-2. 245|彡閾值,所以再次返回步驟1302。在步驟1302,進一步按照時間序列進行追溯,確定3組的零交叉點,計算各自之間的3個波形(參照標號1411 1413)的平均周期(2.263msec)。在此,由於2. 27-2. 263彡閾值,所以再次返回步驟1302。在步驟1302,進一步按時間序列追溯,確定4組的零交叉點。計算各自之間的4個波形(參照標號1411 1414)的平均周期(2. 27msec)。在此,由於| 2. 27-2. 27 <閾值,所以在步驟1304中判定為「是」,由4個波形1411 1414構成的區間(參照標號1420)為 循環區間,其起點和終點(參照標號1422,1421)為循環點。在本實施方式中,上述起點與循環目的地時刻對應,終點與循環源時刻對應。如此獲得與當前發音中的樂音的音高匹配的周期的波形的區間,反覆讀取該區間的波形,由此,能夠輸出對於演奏者來說沒有不適感的歌曲伴奏音。當歌曲樂音再生處理(步驟1004)結束時,CPU21進行歌曲音頻再生處理(步驟1005)。圖15和圖16A以及圖16B為表示本實施方式的歌曲音頻再生處理的例子的流程圖。如圖15所示,CPU21判斷循環再生標誌是否為「2」(步驟1501)。循環再生標誌為「2」表示循環再生開始狀態。當在步驟1501判定為「是」時,進入圖16B的步驟1611。當在步驟1501判定為「否」時,CPU21判斷循環再生標誌是否為「I」(步驟1502)。循環再生標誌為「I」表示循環再生狀態。當在步驟1502判定為「是」時,CPU21進入圖16A的步驟1601。當在步驟1502判定為「否」時,即,在再生標誌為「0」時(沒進行循環再生時),CPU21判斷正解標誌是否為「I」 (步驟1503)。當在步驟1503判定為「否」時,結束歌曲音頻再生處理。當在步驟1503判定為「是」時,表示演奏者早於標準的按鍵時刻,按動了下一個應按動的鍵(提前按鍵)。此時,CPU21參照經過時間計數器,判斷是否到達了跳動源時刻(步驟1504)。當在步驟1504判定為「否」時,結束歌曲音頻處理。跳動源時刻是從已按動的鍵的按鍵時刻開始,按照時間序列未來且臨近的零交叉點。因此,在本實施方式中,可檢測零交叉點,使音頻數據的接縫平滑。當在步驟1504判定為「是」時,CPU21將正解標誌重新設定為「0」 (步驟1505)。另外,CPU21根據跳動源時刻,更新歌曲經過時間(步驟1506)。即,通過使跳動源時刻與本實施方式的跳動目的地時刻所對應的下一應該按動的鍵的標準的按鍵時刻一致,實現接縫平滑,並且與演奏者的提前按鍵相對應的音頻數據的再生。然後,CPU21參照樂曲數據,分別對本次音高信息,時間信息A t和下次音高信息進行更新(步驟1507 1509)。然後說明在步驟1502中判定為「是」情況。當在步驟1502判定為「是」時,是已經進行了循環再生的狀態。此時,CPU21判定正解標誌是否為「I」(步驟1601)。當在步驟1602中判定為「否」時,結束歌曲音頻數據再生處理。當在步驟1601判定為「是」時,表示演奏者晚於標準的按鍵時刻按動了下一應按壓的鍵(延遲按動)。當在步驟1601判定為「是」時,CPU21參照經過時間計數器,判斷是否到達跳動源時刻(步驟1602)。當在步驟1602判定為「否」時,結束歌曲音頻處理。當在步驟1602判定為「是」時,CPU21將循環再生標誌重新設定為「0」 (步驟1603)。然後,進行步驟1505 1509的處理。然後,說明在步驟1501中判定為「否」情況。當在步驟1501判定為「是」時,CPU21把在圖13的步驟1305設定的2個循環點(循環源時刻和循環目的地時刻)輸出給音頻數據再生部29 (步驟1611)。另外,CPU21停止基於計時器中斷處理的歌曲經過時間計數器的計數(步驟1612),並且還停止經過時間計數器的計數(步驟1613)。其原因在於,在循環再生中,在循環源時刻和循環目的地時刻之間,對音頻數據進行循環再生,不伴隨樂曲數據自身的行進。另外,CPU21將循環再生標誌設定為「I」(步驟1614)。然後,歌曲音頻再生處理結束。當歌曲處理(步驟704)結束時,CPU21執行音源發音處理(步驟705)。圖17為表示本實施方式的音源發音處理的例子的流程圖。在圖17的音源發音處理中,音頻數據再生部29根據來自CPU21的指示和接收的信息,執行步驟1701 1712。另外,音源部26執 行步驟1713。如圖17所示,音頻數據再生部29判斷循環再生標誌是否為「I」(步驟1701)。當在步驟1701判定為「否」的場合,進行通常的音頻數據的讀出。即,音頻數據再生部29判斷是否到達了按照採樣率的數據讀出時刻(步驟1702)。當在步驟1702判定為「是」時,音頻數據再生部29根據音頻數據的數據讀出地址,讀出音頻數據(步驟1703),將其輸出給音頻電路27(步驟1704)。接著,音頻數據再生部29使音頻數據區域的數據讀出地址步進(步驟 1705)。當在步驟1701判定為「是」時,音頻數據再生部29判斷音頻數據的數據讀出地址是否到達了與循環源時刻對應的值(步驟1706)。當在步驟1706判定為「是」時,音頻數據再生部29將數據讀出地址變更為在跳動時刻進行應答的值(步驟1707)。另外,跳動目的地時刻是與已按動的鍵的標準的按鍵時刻相當的時刻。接著,音頻數據再生部29判斷是否到達按照採樣率的數據讀出時刻(步驟1708)。當在步驟1708判定為「是」時,音頻數據再生部29根據音頻數據的讀出地址,讀出音頻數據(步驟1709),使其與隨著時間經過而衰減的包絡線(envelop)進行乘法運算(步驟1710)。然後,音頻數據再生部29將乘法運算後的音頻數據輸出給音頻電路27 (步驟1711)。另外,音頻數據再生部29使音頻數據區域的數據讀出地址步進(步驟1712)。如此,當進行通常的音頻數據的再生或音頻數據的循環再生時,執行音源部26的樂音數據發音處理(步驟1703)。步驟1701 1712與步驟1713可以並列地執行。在樂音數據發音處理中,音源部26如果從CPU21接收音符開事件,則從R0M22通過按照音高的速度,讀出按照音符開事件的音色的波形數據,將規定的包絡線與讀出的波形數據相乘,將乘法運算後的數據輸出給音頻電路27。另外,如果從CPU21接收音符關事件,則進行按照音符關事件的音高的數據的消音。當音源發音處理(步驟705)結束時,CPU21執行其它的處理(例如,向顯示部15的圖像顯示等步驟706),然後返回到步驟702。圖18表不在本實施方式中,樂曲的按鍵(音符開)和離鍵(音符關)的時刻和音頻數據的例子,圖19表示演奏者提前按鍵時的音頻數據的例子。如圖18所示,在本實施方式中,樂曲數據1800的按鍵時刻預先與音頻數據1810的規定相位(在本例子中,數據值從負轉為正)的零交叉點一致(參照標號1811,1812)。在本例子中,最初的標準的按鍵時刻的按鍵(參照標號1811)和下一標準的按鍵時刻的按鍵之間的波形由相同相位的零交叉點來限定(標號1821)。同樣,下一標準的按鍵時刻的按鍵與其下一標準的按鍵時刻之間的波形也由相同相位的零交叉點限定。另外,在本實施方式中,標準的按鍵時刻與音頻數據的規定的相位的零交叉點一致,但是,並不限於此。在圖19中,演奏者在早於標準時刻的時刻進行了最初的按鍵(參照標號1911)。此時,在音頻數據中,發現從演奏者的按鍵時刻,按照時間序列未來並且臨近的零交叉點(參照標號1931)。因此,在上述零交叉點,最初的標準的按鍵時刻的按鍵(參照標號1811)和下一標準的按鍵時刻的按鍵之間的波形(標號1941)接合。另外,在圖19中,時刻1931和1912之間的波形1941與圖18的波形1821 —致,時刻1912和時刻1913之間的波形1942與圖18的波形1822 —致。如此在本實施方式中,在演奏者提前按鍵時,在音頻數據中發現按照時間序列未 來並且臨近的零交叉點,由此,接合數據值從零而開始的與標準的按鍵時刻相對應的音頻數據來進行再生。因此,即使具有早於標準的按鍵時刻的按鍵,進行符合該提前按鍵的音頻數據的讀出,並且其接縫也平滑,沒有產生深的噪音。另外,在演奏者在標準的時刻沒有按鍵的情況下,在沒有按鍵的期間,如參照圖14說明的那樣,在循環目的地時刻(標號1422)和循環源時刻(標號1421)之間,進行音頻數據的循環再生。然後,當用戶進行了應按動的鍵的按動時,從與從按鍵時刻開始按照時間序列未來並且臨近的零交叉點所對應的跳動源時刻開始,在與已按動的鍵的標準的按鍵時刻相當的時刻即跳動目的地時刻,切換音頻數據的讀出地址。因此,與提前按動時相同,進行按照延遲按鍵的音頻數據的讀出,並且其接縫也平滑,不會產生不快的噪音。此外,在本實施方式中,以鍵的標準的按鍵時刻與音頻數據的預定的相位的零交叉點一致的方式構成音頻數據,但是,並不限於此。此時,上述跳動目的地時刻,可採用從與鍵的標準的按鍵時刻對應的音頻數據開始按照時間序列未來並且臨近的預定相位的零交叉點。在本實施方式中,在CPU21判斷鍵的按鍵時刻早於在樂曲數據中規定的發音時刻時,在音頻數據中發現從鍵的按鍵時刻開始按照時間序列位於一個方向上臨近的並且預定相位的第I零交叉點。另外,根據上述按鍵操作的樂曲數據的標準的發音時刻,發現從標準的發音時刻按照時間序列位於一個方向上臨近的並且預定相位的第2零交叉點。CPU21將上述第I零交叉點的信息和第2零交叉點的信息輸出給音頻數據再生部29。音頻數據再生部29使音頻數據的讀出從第I零交叉點跳到第2零交叉點,其後繼續通常的音頻數據的讀出。由此,即使在存在提前按鍵的情況下,也能夠進行與該按鍵的標準的發音時刻(按鍵時刻)對應的音頻數據的再生,可防止在演奏者的按鍵與音頻數據的再生之間產生偏差的情況。另外,通過實現將相同相位的零交叉點連接的音頻數據的讀出,可防止在音頻數據的接縫中產生噪音的情況。此外,在本實施方式中,在使音頻數據的讀出從第I零交叉點跳到第2零交叉點時,CPU21更新為基於標準的發音時刻的經過時間,按照更新後的經過時間,音頻數據再生部39讀出音頻數據。因此,即使在演奏提前按鍵的情況下,也能夠使經過時間恰當化。另外,在本實施方式中,CPU發現從按鍵時刻開始按照時間序列未來的並且臨近的第I零交叉點,並且根據標準的發音時刻(按鍵時刻),發現從該標準的發音時刻開始按照時間序列未來的並且臨近的第2零交叉點。通過發現從按鍵時刻開始按照時間序列未來的並且臨近的零交叉點作為第I零交叉點,由此可一邊考慮處理時間一邊適合地實現從第I零交叉點向第2零交叉點的轉移。特別是在本實施方式中,在音頻數據中,預定相位的零交叉點位於與樂音的發音時刻(按鍵時刻)對應的時刻。CPU21檢測與標準的發音時刻(按鍵時刻)對應的規定相位的第2零交叉點。由此,可容易檢測第2按鍵時刻。本發明並不限於以上的實施方式。例如,在上述實施方式中,在基於當前正在發音的樂音的音高信息(本次音高信息)的循環周期中,確定其平均周期近似的多個循環波形。但是,並不限於此。例如如果在樂曲數據中附加了代碼名,則也可根據與當前正在發音的樂 音相關聯的代碼名,將基於其根音的循環周期與音頻數據的循環波形的周期進行比較。圖20是表示本發明的另一實施方式的樂曲數據的數據結構例的圖。如圖20所示,在另一實施方式中,分別與樂曲數據2000的音符開事件(參照標號2001,2011)相關聯,設置代碼信息(參照標號2002,2012)的記錄。代碼信息例如包括CM7,Cml, kml, D7等表示根音的信息。圖21是表示本實施方式的循環點查找處理的例子的流程圖。如圖21所示,CPU21獲得與本次音高寄存器中的本次音高信息相關聯的樂曲數據中的記錄信息(步驟
2101)。接著,CPU21根據代碼信息中包含的根音,計算作為根音的周期的循環周期(步驟
2102)。例如,如果代碼信息為AM7,Am7等根音為A,示例地計算基於A3(220KHz)的循環周期(4.5454msec)。在此,考慮八度音,根音採用較低的音高。後續的步驟2103,2104與圖13的步驟1302,1303相同。接著,CPU21判斷循環周期和平均周期的n倍(n = 1,2,4)的差異的絕對值是否在允許範圍內(即,小於規定的閾值(步驟2105)。在步驟2105中,考慮音頻數據為上述根音的I個八度音,2個八度音高樂音的可能性。當在步驟2105判定為「否」時,CPU21進一步追溯音頻數據的時間序列,查找下一零交叉點(步驟2103)。當在步驟2105判定為「是」時,CPU21將上述差異的絕對值在允許範圍內的零交叉點作為音頻數據的循環點中的,循環目的地的點存儲在RAM23中(步驟2106),並且將循環再生標誌設定為「2」(步驟2107)。以上對本發明的實施方式進行了具體說明,但是,本發明的範圍並不限於上述實施方式,在本發明的範圍內包含記載於權利要求書中的發明及其等同的範圍。
權利要求
1.一種樂音生成裝置,其具備 存儲單元,其存儲樂曲數據以及作為上述樂曲數據的樂曲的伴奏數據的音頻數據,上述樂曲數據包含構成樂曲的樂音的音高和表不發音時刻的時間信息; 樂音數據生成單元,其根據多個演奏操作鍵的操作,生成預定的樂音的樂音數據;以及音頻數據再生單元,其按照基於上述樂曲數據中包含的時間信息的經過時間,讀取並再生上述音頻數據, 上述音頻數據再生單元具備 操作判斷單元,其判斷上述多個演奏操作鍵中的某個演奏操作鍵的操作時刻是否與上述樂曲數據所示的發音時刻一致; 再生控制單元,其在通過該操作判斷單元判定不一致時,將上述音頻數據的讀取位置 從與上述操作時刻相對應的零交叉點跳到與上述發音時刻對應的零交叉點,之後繼續進行通常的音頻數據的讀取再生。
2.根據權利要求I所述的樂音生成裝置, 上述操作判斷單元判斷上述操作時刻是否早於上述發音時刻; 上述再生控制單元具備 跳動源檢測單元,其在上述操作時刻早於上述發音時刻時,在上述音頻數據中,發現從上述演奏操作鍵的操作時刻開始按時間序列在一方向上的相近並且預定相位的第I零交叉點; 跳動目的地檢測單元,其根據基於上述演奏操作鍵的操作的樂曲數據的標準的發音時亥IJ,發現從該標準的發音時刻開始按時間序列在一方向上的相近並且預定相位的第2零交叉點; 讀取控制單元,其使音頻數據的讀取從上述跳動源檢測單元檢測的第I零交叉點跳到上述跳動目的地檢測單元檢測的第2零交叉點,之後繼續進行通常的音頻數據的讀取。
3.根據權利要求2所述的樂音生成裝置,其中 上述音頻數據再生單元在使音頻數據的讀取從上述第I零交叉點跳到上述第2零交叉點時,更新為基於上述標準的發音時刻的經過時間,按照上述更新後的經過時間,讀取上述音頻數據。
4.根據權利要求2所述的樂音生成裝置,其中 上述跳動源檢測單元發現從上述演奏操作鍵的操作時刻開始按時間序列是未來的並且相近的第I零交叉點, 上述跳動目的地檢測單元根據上述標準的發音時刻,發現從該標準的發音時刻開始按時間序列是未來的並且相近的第2零交叉點。
5.根據權利要求I所述的樂音生成裝置,其中 在上述音頻數據中,預定相位的零交叉點位於與上述樂音的發音時刻對應的時刻, 上述跳動目的地檢測單元檢測與上述標準的發音時刻對應的預定相位的第2零交叉點。
6.根據權利要求I所述的樂音生成裝置,其中上述操作判斷單元還判斷在經過上述發音時刻之前,是否對上述演奏操作鍵進行了操作,上述再生控制單元具備 跳動目的地檢測單元,其根據基於上述演奏操作鍵的操作的樂曲數據的標準的發音時亥IJ,從上述音頻數據檢測從該標準的發音時刻開始按時間序列在一方向的相近的第I零交叉點; 操作判斷單元,其判斷在上述樂曲數據所示的發音時刻經過之前,是否操作了產生與該發音時刻對應的音高的樂音的上述演奏操作鍵; 循環目的地檢測單元,其在通過上述操作判斷單元判斷沒有操作上述演奏操作鍵時,檢測所述第一零交叉點之前的零交叉點中的、位於將上述第I零交叉點作為起點的區間的終點所對應的位置的第2零交叉點,所述區間與發出的樂音的音高所匹配的周期成比例; 循環讀取單元,其將該第2零交叉點和上述第I零交叉點之間的區間作為循環區間,反覆讀取上述音頻數據; 跳動源檢測單元,其在該循環讀取單元開始讀取後,通過上述操作判斷單元判定操作了上述演奏操作鍵時,從上述音頻數據檢測從該演奏操作鍵的操作時刻開始按時間序列位於一方向上的相近的第3零交叉點;以及 控制單元,控制上述音頻數據再生單元,使音頻數據的讀取從上述檢測到的第3零交叉點跳到上述檢測到的第I零交叉點,在此之後繼續通常的音頻數據的讀取。
7.根據權利要求6所述的樂音生成裝置,其中 上述音頻數據再生單元在使音頻數據的讀取從上述第3零交叉點跳到上述第I零交叉點時,更新為基於上述標準的發音時刻的經過時間,按照上述更新後的經過時間,讀取上述音頻數據。
8.根據權利要求6所述的樂音生成裝置,其中 上述跳動源檢測單元發現從上述演奏操作鍵的操作時刻開始按時間序列是未來的並且相近的第3零交叉點, 上述跳動目的地檢測單元根據上述標準的發音時刻,檢測從上述標準的發音時刻開始按時間序列是未來的並且相近的第I零交叉點。
9.根據權利要求6所述的樂音生成裝置,其中 在上述音頻數據中,預定相位的零交叉點位於與上述樂音的發音時刻對應的時刻, 上述跳動目的地檢測單元檢測與上述標準的發音時刻相對應的預定相位的第I零交叉點。
全文摘要
本發明提供一種樂音生成裝置,CPU(21)按照基於樂曲數據中包含的時間信息的經過時間,讀取並再生上述音頻數據。接著,判斷多個演奏操作鍵中的某個演奏操作鍵的操作時刻是否與上述樂曲數據所示的發音時刻一致。當在此判定為不一致時,將音頻數據的讀取位置從與操作時刻對應的零交叉點,跳到與發音時刻相對應的零交叉點,在此以後,繼續進行普通的音頻數據的讀取再生。
文檔編號G10H1/00GK102800307SQ201210184809
公開日2012年11月28日 申請日期2012年4月6日 優先權日2011年4月6日
發明者松本光廣 申請人:卡西歐計算機株式會社