波形寫入裝置、方法、電子樂器以及存儲介質與流程

            文檔序號:11178883閱讀:523來源:國知局
            波形寫入裝置、方法、電子樂器以及存儲介質與流程

            相關申請參照

            本申請基于并主張2016年3月23日提出的日本專利特愿2016-058773的優先權,將該基礎申請的內容全部并入本申請。

            本發明涉及波形寫入裝置、方法、使用了該裝置的電子樂器以及存儲介質。



            背景技術:

            在通過波形寫入方式產生樂音波形的音源裝置中,為了能夠利用更多的更長時間的波形數據,有時采用將不使用的波形數據預先保存在例如rom(一級存儲裝置)中、僅將要使用的波形數據向音源裝置能夠直接存取的作為波形存儲器發揮功能的ram(二級存儲裝置)轉送并使其發音的系統。即,可以說是一種將高價的ram具有的存儲容量以上的存儲容量的波形數據預先保存在廉價的rom中,僅在需要的情況下移動并用于發音的在成本上有效的方法。

            在為這種系統的情況下,在從rom向ram上寫入新的音色波形時ram上的空閑的空間不足的情況下,在被寫入了別的音色的波形的ram上的存儲區域中進行覆寫。

            作為用于進行這種控制的現有技術,已知有如下的技術(例如專利文獻1記載的技術)。rom中按每個音色保存有1個以上的波形數據。音源lsi(大規模集成電路)參照所指定的曲的曲數據,在這些波形數據中確定樂音的發音所需的數據,將確定為需要的波形數據從rom讀出后向ram轉送并使其保存。由此,提供能夠在為了生成要發音的樂音的峰值而將波形數據保存于ram的情況下進一步抑制其數據量的樂音產生裝置。

            專利文獻1:日本特開2007-271827號公報

            另外,一般來說,即使是1個音色中具有多個波形數據的情況,1個波形數據斷開地配置在ram上的情況在音源lsi的讀出構造上也是不允許的,必然需要連續地配置。即,在選擇新的音色并配置在ram上時需要準備各波形數據連續配置的量的空閑空間。

            但是,現有技術中,由于反復進行波形的寫入或覆寫,ram上的波形的使用區域和未使用區域的配置變得無秩序,作為由此發生的問題,有即使丟棄寫入到ram上的不需要的音色波形而在容量上確保被認為充分的空閑空間,若沒有連續性則波形也不能寫入的情況。例如即使400kb(千字節)的空閑空間有10處,也不能裝載500kb的波形。因此,產生進一步犧牲ram上的音色波形而進行所期望的音色的波形的寫入的需要。若這樣則不光存在ram的使用效率變得非常差的情況,還產生即使使ram上存在相同的音色的波形也難以預測是否寫入某種音色這樣的操作難度。在例如a、b、c這樣的音色處于ram上的情況下,想要將d這樣的音色從rom新寫入到ram的情況下,難以預測在某種情況下原樣寫入、在其他的情況需要將a覆寫、進而在其他的情況下需要將a、b覆寫等。

            一般的計算機上等也同樣具有一級存儲裝置、二級存儲裝置,因此會發生相同的問題,但為了解決該問題,還有將各文件正使用的存儲區域集中到一處的所謂的碎片整理或垃圾回收這樣的處理,在像樂器這樣不始終要求實時性的計算機的世界,也有時由用戶有意識地進行上述處理。

            但是,這些處理是非常需要時間的處理,因此有在電子樂器中進行了音色選擇那樣的時候不能執行的課題。另外,在不演奏時由用戶執行也給用戶帶來了多余的精神負擔,有作為樂器不是優選的這樣的課題。



            技術實現要素:

            因此,本發明的優點是,在二級存儲裝置上不存在波形的音色被選擇而將新的音色波形數據從一級存儲裝置寫入到二級存儲裝置時能夠可靠地寫入新的波形,從而避免在具有比想要寫入的波形的容量大得多的空閑空間的同時卻不能寫入這樣的非效率的狀態。

            技術方案的一例為一種波形寫入裝置,包含處理器,上述處理器進行以下的處理:

            區段組信息取得處理,按具有存儲在一級存儲裝置中的多個波形數據的音色波形數據中的上述多個波形數據的每個波形數據,分別取得與上述多個波形數據分別建立對應地存儲在上述一級存儲裝置中的多個區段組信息;

            組波形數據取得處理,取得與通過上述區段組信息取得處理取得的上述區段組信息相對應的組波形數據,其中,所取得的上述組波形數據是(1)共用上述區段組信息的2個以上的波形數據、以及(2)不共用上述區段組信息的1個波形數據中的至少一方;以及

            寫入處理,將通過上述組波形數據取得處理取得的上述組波形數據作為1個組,向二級存儲裝置中的多個區段中的某一區段寫入,該多個區段分別是尺寸被預先確定的存儲區域。

            技術方案的另一例為一種波形寫入方法,包括:

            區段組信息取得步驟,按具有存儲在一級存儲裝置中的多個波形數據的音色波形數據中的上述多個波形數據的每個波形數據,分別取得與上述多個波形數據分別建立對應地存儲在上述一級存儲裝置中的多個區段組信息;

            組波形數據取得步驟,取得與通過上述區段組信息取得步驟取得的上述區段組信息相對應的組波形數據,其中,所取得的上述組波形數據是(1)共用上述區段組信息的2個以上的波形數據、以及(2)不共用上述區段組信息的1個波形數據中的至少一方;以及

            寫入步驟,將通過上述組波形數據取得步驟取得的上述組波形數據作為1個組,向二級存儲裝置中的多個區段中的某一區段寫入,該多個區段分別是尺寸被預先確定的存儲區域。

            技術方案的另外一例為一種電子樂器,具備:

            權利要求1中記載的波形寫入裝置;

            上述一級存儲裝置;

            上述二級存儲裝置;以及

            根據寫入到上述二級存儲裝置中的上述波形數據生成樂音的音源。

            技術方案的另外又一例為一種存儲介質,是非暫時性地存儲有波形寫入裝置的計算機可執行的程序的、計算機可讀取的存儲介質,上述程序使計算機執行以下的處理:

            區段組信息取得處理,按具有存儲在一級存儲裝置中的多個波形數據的音色波形數據中的上述多個波形數據的每個波形數據,分別取得與上述多個波形數據分別建立對應地存儲在上述一級存儲裝置中的多個區段組信息;

            組波形數據取得處理,取得與通過上述區段組信息取得處理取得的上述區段組信息相對應的組波形數據,其中,所取得的上述組波形數據是(1)共用上述區段組信息的2個以上的波形數據、以及(2)不共用上述區段組信息的1個波形數據中的至少一方;以及

            寫入處理,將通過上述組波形數據取得處理取得的上述組波形數據作為1個組,向二級存儲裝置中的多個區段中的某一區段寫入,該多個區段分別是尺寸被預先確定的存儲區域。

            附圖說明

            在結合以下的附圖來考慮以下的詳細的記述時,能夠得到本申請的更深刻的理解。

            圖1是本發明的電子鍵盤樂器的實施方式的外觀圖。

            圖2是表示電子鍵盤樂器的實施方式的硬件構成例的圖。

            圖3是說明本實施方式中的波形數據區段的概念的圖。

            圖4a及圖4b是表示閃存音色信息表和音色選擇優先級表的數據結構例的圖。

            圖5a至圖5c是說明每個音色的波形數據的從大容量閃存向波形存儲器的轉送動作的圖。

            圖6是波形分割(split)的說明圖。

            圖7是表示存儲在rom中的構造體的常數數據的例子的圖。

            圖8是表示存儲在ram中的變量數據的例子的圖。

            圖9是表示控制處理的整體處理的例子的主程序(mainroutine)的流程圖。

            圖10是表示初始化處理的詳細例的流程圖。

            圖11是表示音色切換處理的詳細例的流程圖。

            圖12a及圖12b是表示ram波形數據調查程序(routine)以及波形區域確保程序的詳細例的流程圖。

            圖13是表示空閑區段數調查程序的詳細例的流程圖。

            圖14是表示波形區域開放程序的詳細例的流程圖。

            圖15是表示波形寫入指示程序的詳細例的流程圖。

            圖16是表示波形寫入處理的詳細例的流程圖。

            圖17是表示波形轉送程序的詳細例的流程圖。

            圖18是表示按鍵處理的詳細例的流程圖。

            圖19是表示分割波形檢索程序的詳細例的流程圖。

            圖20是表示區段內波形檢索程序的詳細例的流程圖。

            具體實施方式

            以下,參照附圖詳細說明用于實施本發明的方式(以下記載為“本實施方式”)。本實施方式以如下的樂音產生裝置作為對象,該樂音產生裝置是,適用于例如電子鍵盤樂器的、為了再現音色根據音高(鍵區域)或音量(力度(velocity):敲鍵的速度)等演奏信息變化的情況而將每個音高或每個音量的波形數據(以下將其稱為“分割波形”)從大容量的一級存儲裝置(例如閃存)向二級存儲裝置(例如基于ram的波形存儲器)寫入的樂音產生裝置。本實施方式實現了在這樣的樂音產生裝置中在二級存儲裝置上不存在波形的音色被選擇而將新的音色波形數據從一級存儲裝置向二級存儲裝置寫入時、能夠可靠地寫入新的波形并且能夠避免在具有比想要寫入的波形的容量大得多的空閑空間的同時卻不能寫入這樣的非效率的狀態的電子樂器。

            圖1是本發明的電子鍵盤樂器的實施方式的外觀圖。本實施方式作為電子鍵盤樂器100被實施。電子鍵盤樂器100具備:作為演奏操作鍵的由多個鍵構成的鍵盤101、由作為音色選擇操作鍵的用于進行音色選擇的音色選擇按鈕102以及進行音色以外的各種功能選擇的功能選擇按鈕103構成的開關面板、附加彎音或震音(tremolo)、顫音(vibrato)等各種轉調(modulation,演奏效果)的彎音/轉調輪104、顯示音色或音色以外的各種設定信息的lcd(liquidcrystaldisplay:液晶顯示器)105等。并且,雖沒有特別圖示,但電子鍵盤樂器100在里面部、側面部或背面部等具備對通過演奏生成的樂音進行放音的揚聲器。

            音色選擇按鈕102如圖1所示是用于選擇鋼琴(圖中“piano”)、電子鋼琴(圖中“e.piano”)、風琴(圖中“organ”)、吉他(圖中“guitar)等各種音色的類別的按鈕群。用戶通過按下該音色選擇按鈕102能夠選擇例如16音色中的任意音色。

            圖2是表示圖1的電子鍵盤樂器100的實施方式的硬件構成例的圖。圖2中,電子鍵盤樂器100具備cpu(中央運算處理裝置)201、rom(只讀存儲器)202、ram(隨機存取存儲器)203、大容量閃存(flash)存儲器204、連接波形存儲器206的音源lsi(大規模集成電路)205、連接圖1的鍵盤101和由圖1的音色選擇按鈕102以及功能選擇按鈕103構成的開關面板的鍵掃描器207、連接圖1的彎音/轉調輪104的a/d變換器210、連接圖1的lcd105的lcd控制器209、以及受理midi(musicalinstrumentdigitalinterface)輸入的midii/f(接口)213分別被連接到系統總線214的構成。并且,從音源lsi205輸出的數字樂音波形數據通過d/a變換器208被變換為模擬樂音波形信號,通過放大器211放大后,從沒有特別圖示的揚聲器或輸出端子輸出。

            cpu201通過邊將ram203作為工作存儲器使用邊執行存儲在rom202中的控制程序,來執行圖1的電子鍵盤樂器100的控制動作。并且,rom202存儲上述控制程序以及各種固定數據。

            大容量閃存存儲器204(一級存儲裝置)是構成多個音色的波形數據等大容量數據的保存區域,通過連續的存取而被依次存取。另一方面,音源lsi205上連接由展開波形數據的ram構成的波形存儲器206(二級存儲裝置),所發音的樂音的波形數據必然需要配置在該波形存儲器206上。cpu201將與通過用戶操作圖1的音色選擇按鈕102而指定的音色相對應的1組以上的波形數據從大容量閃存存儲器204連續地讀出,并經由音源lsi205將其轉送到波形存儲器206,從而能夠更換音色數據。

            lcd控制器209是控制lcd105的ic(集成電路)。鍵掃描器207是掃描鍵盤101、音色選擇按鈕102或功能選擇按鈕103等開關面板的狀態并通知cpu201的ic。a/d變換器208是檢測彎音/轉調輪104的操作位置的集成電路。

            首先說明具有以上的構成的電子鍵盤樂器100的實施例中的動作樣式的概要。

            首先,說明用戶界面。在本實施方式的電子鍵盤樂器100中,通過用戶按下圖1的音色選擇按鈕102,能夠選擇例如16音色中的任意音色來演奏。

            接著,說明波形數據的寫入轉送動作。圖3是說明本實施方式中的波形數據區段的概念的圖。在波形存儲器(ram)上不被進行區段管理的以往的電子鍵盤樂器中,如作為數據配置301而示出的那樣,若反復進行波形數據的寫入,則使用區域和空閑區域變成無秩序的配置,即使合計具有充足的空閑區域,也可能發生只是因為沒有連續性而不能確保寫入空間的情況。

            對此,本實施方式中具有作為302而示出的數據配置。在該數據配置中,在波形存儲器206的存儲區域中以一定的間隔設置不能跨越的邊界線。本實施方式中,將該相鄰的邊界線與邊界線之間的區域稱為區段。該1區段的數據尺寸全部相同,且被設定為不低于構成各音色的1個以上的波形數據中尺寸最大的波形數據。本實施方式中,以該區段為單位而執行從大容量閃存存儲器204向波形存儲器206的波形數據的寫入。本實施方式中,1個音色具有1個或多個波形數據。在1個音色的1個以上的波形數據的寫入中,以1個或多個區段為單位,確保波形存儲器206的存儲區域(區段確保處理),執行寫入。在該情況下,所確保的多個區段不需要連續配置。并且,1個區段中能夠寫入多個相同音色的波形數據,但以不同的音色的波形數據不混合寫入的方式執行控制。

            大容量閃存存儲器204上記錄有例如全16音色的波形數據組,通過將其中構成用戶指定的音色的1個以上的波形數據向音源lsi205的波形存儲器206寫入,從而能夠發音。該音色信息通過存儲在圖2的rom202中的閃存音色信息表來管理。圖4a是表示閃存音色信息表的數據結構例的圖。在作為圖4a的表例示的閃存音色信息表的作為第2行以后的各行而表示的各音色的記錄(entries)中,存儲有如圖4a的表的第1行所示、表示音色編號的“編號”項目值、“音色名”項目值、表示從大容量閃存存儲器204的波形存儲區域的開頭起的存儲地址的偏移(16進制數)的“波形地址偏移”項目值、表示該音色中包含的波形數據組的合計的波形尺寸(16進制數)的“波形尺寸”項目值、和這些波形數據組使用的“使用區段數”項目值。

            上述16音色分別為,每1音色最大由例如64種波形數據構成,并被連續地保存在大容量閃存存儲器204中。音色內的各波形數據中的、被向波形存儲器206內的1個區段內轉送的1個以上的波形數據被分組為1個組。被向波形存儲器206內的1個區段內轉送的波形數據在大容量閃存存儲器204上也必然連續。1個音色的各波形數據的信息,通過存儲在圖2的rom202中的音色波形信息表來管理。圖4b是表示對每1音色最大64種波形數據進行管理的音色波形信息表的數據結構例的圖。在作為圖4b的表例示的音色波形信息表的作為第2行以后的各行表示的各波形數據的記錄中,存儲有如圖4b的表的第1行所示那樣、從0到63的“波形編號”項目值。并且該記錄存儲有“最低力度”項目值、“最高力度”項目值、“最低琴鍵(key)編號”項目值、以及“最高琴鍵編號”項目值,作為用于判斷根據演奏時所演奏的琴鍵或力度(強度)將哪個波形讀出并使其發音的信息(分割區塊參數)。并且在該記錄中存儲有表示該波形數據從轉送目的地的波形存儲器206的區段的哪個地址被存儲的“區段開頭起的地址”項目值、和表示該波形數據的尺寸的“波形尺寸”項目值。另外,對值的右端賦予的記號“h”表示該值是16進制數。進而在該記錄中存儲有表示包含該波形數據的組的“區段組”項目值。

            本實施方式中,在構成由用戶指定的音色的波形數據組沒有被存儲在波形存儲器206上的情況下,執行接下來的控制處理。首先,以區段為單位,在波形存儲器206上搜索并確保(區段確保處理)從大容量閃存存儲器204新寫入到波形存儲器206的構成音色的1個以上的波形數據組所需的數量的區段的空閑區域。所需的區段數通過參照存儲在rom202中的圖4a所例示的閃存音色信息表中的、與所指定的音色對應的記錄的“使用區段數”項目值來決定。在波形存儲器206上沒有所需的數量的空閑區段的情況下,依次開放并確保與按從早到晚的順序使用的音色相對應的區段,直到確保了所需的區段數為止。

            接著,存儲在大容量閃存存儲器204中的與被指定的音色相對應的波形數據組被依次轉送到波形存儲器206上所確保的空閑區段。此時,與指定的音色相對應的rom202中存儲的圖4b所例示的音色波形信息表中,“區段組”項目值按(從0開始)從小到大的順序且具有相同值的波形數據組被轉送到波形存儲器206上的(編號從小到大順序的)1個空閑區段。圖5a~圖5c是說明每個音色的波形數據的從大容量閃存存儲器204向波形存儲器206的轉送動作的圖。在例如圖5a所示的構成guitar音色的大容量閃存存儲器204上的第0個到第10個波形數據組被轉送到圖5b的波形存儲器206的情況下,“區段組”項目值=0的第0個到第2個的連續的3組波形數據組被轉送到圖5b的波形存儲器206上的空閑區段=seg0,“區段組”項目值=1的第3個到第5個的連續的3組波形數據組被轉送到波形存儲器206上的空閑區段=seg4,“區段組”項目值=2的第6個到第8個的連續的3組波形數據組被轉送到波形存儲器206上的空閑區段=seg6,“區段組”項目值=3的第9個和第10個的連續的2組波形數據組被轉送到波形存儲器206上的空閑區段=seg63。另一方面例如,在例如圖5c所示的構成saxophone音色的大容量閃存存儲器204上的第0個到第8個波形數據組被轉送到圖5b的波形存儲器206的情況下,“區段組”項目值=0的第0個到第2個的連續的3組波形數據組被轉送到圖5b的波形存儲器206上的空閑區段=seg2,“區段組”項目值=1的第3個到第5個的連續的3組波形數據組被轉送到波形存儲器206上的空閑區段=seg3,“區段組”項目值=2的第6個和第7個的連續的2組波形數據組被轉送到波形存儲器206上的空閑區段=seg5,“區段組”項目值=3的第8個的1組波形數據組被轉送到波形存儲器206上的空閑區段=seg7。與轉送目的地的區段建立對應地、在例如ram203(圖2)中存儲與被轉送到該區段的波形數據對應的“區段組”項目值。

            各區段具有如上所述那樣與尺寸最大的波形數據相匹配的例如100000h(“h”表示16進制數)字節=1mb(兆字節)的尺寸。從而,能夠使1個波形數據必然被轉送到1個區段內的存儲區域。合計為例如1mb以下的具有相同的“區段組”項目值的連續的多個波形數據也能夠轉送到1個區段。由此,依賴于偶然性而不能寫入尺寸遠遠小于空閑容量的波形數據的情況不會發生。

            在構成由用戶指定的音色的波形數據組被存儲在波形存儲器206上的情況下,這些波形數據組不需要從大容量閃存存儲器204再次寫入,因此能夠原樣用于發音處理。此時,雖然不發生寫入,但履歷上作為最新的音色被記錄。

            圖6是發生了按鍵的情況下的發音處理時的波形分割的說明圖。本實施方式中,如圖6所例示的那樣,演奏時的琴鍵編號和力度(演奏強度)最大以2維方式被分割到64區域中,各個被分割的區域(分割空間)中,分別被分配如上所述那樣轉送到波形存儲器206的、每1個音色有1組以上且最大64組的波形數據。圖2中,cpu201在經由鍵掃描器207檢測出鍵盤101中的按鍵的發生時,在與當前演奏中的音色相對應的rom202(圖2)內的圖4b所例示的音色波形信息表的記錄中,搜索按鍵發生時的琴鍵編號值包含在“最低琴鍵編號”項目值到“最高琴鍵編號”項目值的范圍中、且按鍵發生時的力度包含在“最低力度”項目值到“最高力度”項目值的范圍中的記錄。此外,從與搜索出的該記錄的“區段組”項目值相同的區段組的值建立了對應的波形存儲器206上的區段內的、與該記錄的“從區段開頭開始的地址”項目值對應的地址起的、與該記錄的“波形尺寸”項目值對應的波形尺寸大小的波形數據,以與按鍵發生時的琴鍵編號相對應的速度被讀出后以與按鍵發生時的力度相對應的強度發音。

            在構成由用戶指定的音色的波形數據組沒有被存儲在波形存儲器206上的情況下,cpu201將這些波形數據組從大容量閃存存儲器204轉送到波形存儲器206,但該波形轉送作為后臺處理按每1組的波形數據而分割地執行。從而,按鍵發生時cpu201判別分割空間并向音源lsi205指示將與該空間對應的波形數據從波形存儲器206讀出時,是相應的波形數據從大容量閃存存儲器204向波形存儲器206的轉送的過程中的情況下,由于波形數據還沒有被聚齊到波形存儲器206上,因此音源lsi205不進行發音。

            rom202(圖2)中存儲的圖4a的例子的閃存音色信息表以及圖4b的例子的音色波形信息表,作為構造體的常數數據能夠從cpu201(圖2)執行的控制程序上存取。圖7是表示存儲在rom202中的構造體的常數數據的例子的圖。

            首先,圖4a中例示的閃存音色信息表通過圖7所示的構造體tone_inf[16]([]內的數字表示索引)、構成該構造體的作為成員常數的排列常數name[16]([]內的數字表示索引)、常數wave_total_size、以及常數num_seg構成。構造體tone_inf[16]例如作為tone_inf[t]通過ram203(圖2)上的變量t來存取。變量t例如取0到15的值域,從而指定圖4a的閃存音色信息表中的“編號”項目值為0到15的各音色的記錄。成員常數name[16]保存與圖4a的例子的“音色名”項目值相對應的直到16字符的音色顯示名。例如通過ram203上的變量i,以tone_inf[t].name[i]的格式對該成員常數存取。變量i取例如0到15的值域,從而表示與變量t的值相對應的音色的音色顯示名(第0~15個字符)。成員常數wave_total_size保存與圖4a的“波形尺寸”項目值相對應的音色內的波形數據的合計尺寸。例如以tone_inf[t].wave_total_size的格式對該成員常數存取。這表示與變量t的值相對應的音色的波形數據的合計尺寸。成員常數num_seg保存與圖4a的“使用區段數”項目值相對應的音色內的波形數據使用的區段數。例如以tone_inf[t].num_seg的格式對該成員常數存取。這表示與變量t的值相對應的音色的使用區段數。

            接著,圖4b中例示的音色波形信息表通過圖7所示的上位構造體tone_inf[16]([]內的數字表示索引)、構成該構造體的成員構造體即中位構造體wave[64]([]內的數字表示索引)、構成該中位構造體的成員常數即常數vel_lo、vel_hi、key_lo、key_hi、flash_adrs、seg_adrs、size、seg_group、以及下位構造體tg_inf構成。關于上位構造體tone_inf[16]如以上所述的那樣。中位構造體wave[64]例如作為wave[w],通過ram203(圖2)上的變量w來存取。變量w取例如0到63的值域,從而指定圖4b的音色波形信息表中的“波形編號”項目值為0到63的各波形數據的記錄。成員常數vel_lo以及vel_hi分別對應于圖4b的“最低力度”項目值以及“最高力度”項目值,保存波形數據發音的范圍的本來的最低力度以及最高力度的各值。例如以tone_inf[t].wave[w].vel_lo或tone_inf[t].wave[w].vel_hi這樣的格式對這些成員常數存取。這表示與變量t的值相對應的音色的、與變量w的值相對應的波形數據的、最低力度或最高力度。成員常數key_lo以及key_hi分別對應于圖4b的“最低琴鍵編號”項目值以及“最高琴鍵編號”項目值,保存波形數據發音的范圍的本來的最低琴鍵編號以及最高琴鍵編號的各值。例如以tone_inf[t].wave[w].key_lo或tone_inf[t].wave[w].key_hi這樣的形式對這些成員常數存取。這表示與變量t的值對應的音色的、與變量w的值對應的波形數據的、最低琴鍵編號或最高琴鍵編號。成員常數flash_adrs在圖4b中沒有被明示,但保存波形數據的開頭在大容量閃存存儲器204上的地址。例如以tone_inf[t].wave[w].flash_adrs這樣的格式對該成員常數存取。這表示與變量t的值相對應的音色的、與變量w的值相對應的波形數據的、開頭在大容量閃存存儲器204上的地址。成員常數seg_adrs對應于圖4b的“區段開頭開始的地址”項目值,保存波形數據應當寫入到波形存儲器206上的區段的開頭起的地址偏移。例如以tone_inf[t].wave[w].seg_adrs這樣的格式對該成員常數存取。這表示與變量t的值相對應的音色的、與變量w的值相對應的波形數據的、應當寫入到波形存儲器206上的區段的開頭起的地址偏移。成員常數size對應于圖4b的“波形尺寸”項目值,保存波形數據的尺寸。例如以tone_inf[t].wave[w].size這樣的格式對該成員常數存取。這表示與變量t的值相對應的音色的、與變量w的值相對應的波形數據的尺寸。tone_inf[t].wave[w].size=0時,表示波形數據不存在。成員常數seg_group對應于圖4b的“區段組”項目值,保存當波形數據被向波形存儲器206上的1個區段轉送時對該區段賦予的區段組的值。例如以tone_inf[t].wave[w].seg_group這樣的格式向該成員常數存取。這表示與變量t的值相對應的音色的、與變量w的值相對應的波形數據的區段組值。tone_inf[t].wave[w].seg_group的值相同的波形數據被轉送到波形存儲器206上的相同的區段。成員構造體tg_inf將音源lsi205(圖2)對被轉送到波形存儲器206上的1個區段的波形數據執行發音處理的情況下的各種參數,作為該構造體的成員常數(圖4a及圖4b中省略)來存儲。這些參數例如是波形數據的讀出的開始地址、表示反復位置的循環地址、表示結束位置的結束地址、音量、調諧信息等。

            圖8是表示在cpu201(圖2)執行的控制處理中使用的ram203所存儲的主要的變量的一覽的圖。變量timestamp保存按用戶操作音色選擇按鈕102(圖1)而發生的每個音色選擇事件各增加1的履歷編號。在區段被分配時,保存在后述的構造體成員變量seg_inf[s].timestamp中。變量cur_tone保存為了當前演奏而選擇的音色編號。該值為“-1”的情況表示無相符、即沒有進行當前演奏。變量transder_wave在當前后臺處理中保存波形轉送中的波形數據的波形編號。該值為“-1”的情況表示全部完成轉送。

            接著,通過構造體seg_inf[64]([]內的數字表示索引)和構成該構造體的成員變量tone、seg_group、以及timestamp保存波形存儲器206中的每個區段的信息。構造體seg_inf[64]例如作為seg_inf[s],通過ram203(圖2)上的變量s來存取。變量s取例如0到63的值域,由此指定波形存儲器206上的0到63的64區段的每一個區段。成員變量tone保存該區段被分配的音色編號。該值為“-1”的情況表示該區段為空狀態(未使用)。例如以seg_inf[s].tone這樣的格式對該成員變量存取。這表示被分配到與變量s的值相對應的區段的音色編號。對執行向該區段的波形轉送時的音色編號進行保存的ram203上的變量t值被復制到成員變量tone。成員變量seg_group保存被分配到該區段的音色的區段組值。例如以seg_inf[s].seg_group這樣的形式對該成員變量存取。這表示被分配到與變量s的值相對應的區段的音色的區段組的值。與轉送到該區段的波形數據相對應的、rom202中存儲的圖4b的音色波形信息表中的“區段組”項目值即圖7的tone_inf[t].wave[w].seg_group的值被復制到成員變量seg_group中。是區段組信息取得處理。成員變量timestamp保存使用該區段的履歷編號。例如以seg_inf[s].timestamp這樣的格式對該成員變量存取。這表示使用與變量s的值相對應的區段的履歷編號。按通過用戶操作音色選擇按鈕102(圖1)而發生的每個音色選擇事件,復制在該定時每次增加1的變量timestamp的值。以相同的定時被分配的區段具有相同的timestamp值。

            接著,與在波形存儲器206中的各區段內保存的1組以上的波形數據有關的信息,通過上位構造體seg_inf[64]([]內的數字表示索引)、構成該構造體的成員構造體即中位構造體wave_inf[64]([]內的數字表示索引)、構成該中位構造體的成員變量wave、wave_num、seg_adrs以及size來保存。關于上位構造體seg_inf[64],如上所述那樣。中位構造體wave_inf[64]例如作為wave_inf[i],通過ram203(圖2)上的變量i來存取。變量i取例如0到63的值域,從而指定1個區段內的0到63的各波形數據。成員變量wave保存該區段中的該波形數據的有無,該值為0時表示沒有波形數據,該值為1時表示有波形數據(完成轉送)。例如以seg_inf[s].wave_inf[i].wave這樣的格式對該成員變量存取。這表示與變量s的值相對應的區段的、與變量i的值相對應的波形數據的有無。成員變量wave的值,在被指示了向該區段轉送該波形數據時被設為值0,在通過之后的后臺轉送完成向該區段的該波形數據的轉送時被設為值1。成員變量wave_num保存該區段中的該波形數據的音色中的波形編號,若該值為“-1”,則表示沒有波形數據的分配。例如以seg_inf[s].wave_inf[i].wave_num這樣的格式對該成員變量存取。這表示與變量s的值相對應的區段的、與變量i的值相對應的波形數據的音色中的波形編號。成員變量seg_adrs保存該區段中的該波形數據的地址偏移。例如以seg_inf[s].wave_inf[i].seg_adrs這樣的格式向該成員變量存取。與被轉送到該區段的波形數據相對應的、rom202中存儲的圖4b的音色波形信息表中的“區段開頭起的地址”項目值即圖7的tone_inf[t].wave[w].seg_adrs的值被復制到成員變量seg_adrs中。成員變量size保存該區段中的該波形數據的尺寸。例如以seg_inf[s].wave_inf[i].size這樣的形式對該成員變量存取。與被轉送到該區段的波形數據相對應、rom202中存儲的圖4b的音色波形信息表中的“波形尺寸”項目值即圖7的tone_inf[t].wave[w].size的值被復制成員變量size中。

            以下,說明為了實現上述的動作而由cpu201執行的控制處理的詳細例。

            圖9是表示cpu201執行的控制處理的整體處理的例子的主程序的流程圖。該處理例是cpu201執行存儲在rom202中的控制程序的處理例。

            cpu201在首先將ram203的內容初始化后(步驟s901),進入到步驟s902到s911的一系列的處理所示的固定循環處理。

            固定循環處理中,cpu201首先執行用戶界面處理(圖中表示為“用戶i/f”)(步驟s902)。這里,cpu201經由圖2的鍵掃描器207取得圖1的音色選擇按鈕102的狀態。

            接著,cpu201根據步驟s902的處理的結果,判斷是否因用戶操作音色選擇按鈕102而發生了音色選擇事件(指定處理,步驟s903)。

            然后,cpu201在發生了音色選擇事件的情況下(步驟s903的判斷為“是”的情況下)執行音色切換處理(步驟s904)。若步驟s903的判斷為“否”,則cpu201跳過步驟s904的處理。

            接著,cpu201執行波形轉送處理(步驟s905)。這里,cpu201執行圖2的從大容量閃存存儲器204向波形存儲器206的基于后臺處理的波形轉送。

            接著,cpu201執行鍵盤讀入處理(步驟s906)。這里,cpu201經由圖2的鍵掃描器207取得圖1的鍵盤101的按鍵狀態。

            接著,cpu201根據步驟s906的處理的結果,判斷是否因用戶對鍵盤101上的任意的鍵進行按鍵而發生了按鍵事件(步驟s907)。

            然后,cpu201在發生了按鍵事件的情況下(步驟s907的判斷為“是”的情況下)執行按鍵處理(步驟s908)。若步驟s907的判斷為“否”,則cpu201跳過步驟s908的處理。

            接著,cpu201根據步驟s906的處理的結果,判斷是否因用戶對鍵盤101上的任意的按鍵中的鍵進行了離鍵操作而發生了離鍵事件(步驟s909)。

            然后,cpu201在發生了離鍵事件的情況下(步驟s909的判斷為“是”的情況下)執行離鍵處理(步驟s910)。若步驟s909的判斷為“否”,則cpu201跳過步驟s910的處理。

            之后,cpu201執行音源固定服務處理(步驟s911)。這里,執行與按壓了例如圖1的功能選擇按鈕103的情況相對應的處理、與操作了圖1的彎音/轉調輪104的情況相對應的處理等的、對于電子鍵盤樂器100的一般的處理。

            之后,cpu201返回到步驟s90即固定循環處理的開頭。

            圖10是表示圖9的步驟s901的初始化處理的詳細例的流程圖。

            首先,cpu201使ram203上的圖8所示的變量的值全部為“0”(步驟s1001)。

            接著,cpu201在用于保存為了當前演奏而選擇的音色編號的ram203上的變量cur_tone(參照圖8)中,保存表示無相符的值“-1”(步驟s1002)。

            接著,cpu201在用于保存在當前后臺處理中正在波形轉送中的波形數據的波形編號的ram203上的變量transfer_wave中,保存表示全部轉送完成的值“-1”(步驟s1003)。

            接著,cpu201對于用于計數區段的ram203上的變量s,在步驟s1004中初始設定為值“0”后,邊在步驟s1011中每次增加1,邊反復執行步驟s1005到步驟s1009的處理,直到在步驟s1010中判斷為達到值“63”為止。

            在該反復處理中,cpu201首先在表示被分配到與變量s的值相對應的區段中的音色編號的變量seg_inf[s].tone中,保存表示該區段為空狀態(未使用)的值“-1”(步驟s1005)。

            接著,cpu201關于用于計數區段內的波形數據的次序的ram203上的變量i,在步驟s1006中初始設定為值“0”后,邊在步驟s1009中每次增加1,邊反復執行步驟s1007的處理直到在步驟s1008中判斷為達到值“63”為止。即,cpu201在該步驟s1007中,在保存與變量s的值相對應的區段內的第i個(變量i表示的值)波形數據的音色中的波形編號的變量seg_inf[s].wave_inf[i].wave_num中,保存表示沒有波形數據的分配的值“-1”。

            在以上的反復處理之后,若步驟s1010的判斷為“是”,則cpu201結束圖10的流程圖所示的圖9的步驟s901的初始化處理。

            圖11是表示圖9的音色選擇事件發生時(步驟s903的判斷為“是”時)的步驟s904的音色切換處理的詳細例的流程圖。在該處理的執行時,ram203上的音色編號變量t的值被交付。音色編號變量t中,在圖10的步驟s1001的執行時如上述那樣保存初始值“0”,在圖9的步驟s904的執行時,保存基于用戶對圖1的音色選擇按鈕102的操作而在圖9的步驟s902的用戶界面處理中獲取的由用戶選擇的音色的音色編號。

            在圖11的音色切換處理的流程圖中,cpu201首先判斷用于保存為了當前演奏而選擇的音色編號的變量cur_tone的值是否與保存在ram203的變量t中的、由用戶新指定的音色編號的值相等(步驟s1101)。

            若步驟s1101的判斷為“是”,則由于已作為選擇音色選擇完成或當前正在從大容量閃存存儲器204向波形存儲器206轉送相符的音色的波形數據,因此將圖11的流程圖所示的圖9的步驟s904的音色切換處理原樣結束。

            若步驟s1101的判斷為“否”,則cpu201將保存履歷編號的變量timestamp的值增加1(步驟s1102)。

            接著,cpu201在保存為了當前演奏而選擇的音色編號的變量cur_tone中,保存在ram203的變量t中保存的由用戶新指定的音色編號的值(步驟s1103)。

            接著,cpu201執行ram波形數據調查程序的處理(判別處理,步驟s1104)。cpu201將在ram203上的變量t中保存的新指定的音色編號作為自變量而交付到該程序。cpu201根據該程序的處理的結果,在ram203上的變量r中得到表示與所指定的音色編號相對應的音色的波形數據是否存在于波形存儲器206上的返回值(如果值是0為不存在,如果值是1為存在)(步驟s1104)。關于該處理的詳細情況,在后面敘述。

            cpu201判斷變量r的值是否為1(步驟s1105)。

            若步驟s1105的判斷為“是”,則不需要將與所指定的音色編號相對應的音色的波形數據新轉送到波形存儲器206,cpu201將圖11的流程圖所示的圖9的步驟s904的音色切換處理原樣結束。

            若步驟s1105的判斷為“否”,則cpu201執行波形區域確保程序的處理(步驟s1106)。cpu201將在ram203上的變量t中保存的新指定的音色編號作為自變量而交付到該程序。cpu201根據該程序的處理的結果,在波形存儲器206上確保從大容量閃存存儲器204轉送與所指定的音色編號相對應的音色的波形數據所需的數量的空閑區段。關于該處理的詳細情況,在后面敘述。

            之后,cpu201執行波形轉送指示程序的處理(步驟s1107)。cpu201將在ram203上的變量t中保存的新指定的音色編號作為自變量而交付到該程序。cpu201在該程序的處理中,執行用于將與所指定的音色編號相對應的音色的波形數據通過圖9的步驟s905的波形轉送處理從大容量閃存存儲器204向波形存儲器206轉送的準備處理。

            圖12a是表示圖11的步驟s1104的ram波形數據調查程序的詳細例的流程圖。

            首先,cpu201將用于對調查的區段進行計數的ram203上的變量s復位為0(步驟s1201)。

            接著,cpu201判斷保存有被分配到與變量s的值相對應的區段的音色編號的ram203上的變量seg_inf[s].tone(參照圖8)的值、與保存有作為自變量而被交付的新指定的音色編號的值的ram203上的變量t的值是否相等(步驟s1202)。

            若步驟s1202的判斷為“否”,則cpu201邊在步驟s1203中將變量s的值每次增加1,邊對由變量s指定的各區段反復執行步驟s1202的判斷處理,直到在步驟s1204中判斷為變量s的值達到64為止(步驟s1203→s1204的判斷為“否”→s1202→s1203的處理的反復)。

            在從上述步驟s1202到s1204的處理的反復中,若步驟s1202的判斷為“是”,則cpu201首先在表示使用了與變量s的值相對應的區段的履歷編號的變量seg_inf[s].timestamp中,保存基于本次的音色選擇事件而增加的ram203上的變量timestamp的值(參照圖11的步驟s1102),更新該區段的履歷編號(步驟s1205)。

            接著,由于判斷出在與變量s相對應的區段中保存有與所指定的音色編號對應的音色的波形數據,因此cpu201在ram203上的變量r中保存表示在波形存儲器206上有與所指定的音色編號相對應的音色的波形數據的返回值1(步驟s1206)。之后,cpu201結束圖12a的流程圖所示的圖11的步驟s1104的ram波形數據調查程序的處理。

            在從步驟s1202到s1204的處理的反復中,若變量s對區段的指定到達末尾而步驟s1204的判斷成為“是”,則判斷出與所指定的音色編號相對應的音色的波形數據沒有保存在任何區段,因此cpu201在ram203上的變量r中保存表示在波形存儲器206上沒有與所指定的音色編號相對應的音色的波形數據的返回值0(步驟s1207)。之后,cpu201結束圖12a的流程圖所示的圖11的步驟s1104的ram波形數據調查程序的處理。

            圖12b是表示圖11的步驟s1106的波形區域確保程序的詳細例的流程圖。該程序如上述所述那樣、在判斷出在波形存儲器206上的任何區段中都沒有與通過圖11的步驟s1104的ram波形數據調查程序指所定的音色編號的音色的波形數據的情況下被執行。

            cpu201首先將rom202上的常數值tone_inf[t].num_seg(參照圖7)保存在ram203上的變量u中,rom202上的常數值tone_inf[t].num_seg中保存與ram203上的變量t的值相對應的音色的使用區段數,ram203中保存有作為自變量被交付的、所指定的音色編號(步驟s1210)。

            接著cpu201執行空閑區段數調查程序。通過該程序取得波形存儲器206上沒有被使用的空閑區段的數量。cpu201根據該程序的處理的結果,在ram203上的變量r中得到空閑區段數的值(步驟s1211)。關于該處理的詳細情況在后面敘述。

            cpu201判斷變量r中得到的空閑區段數是否為步驟s1210中在變量u中保存的與所指定的音色編號相對應的音色的使用區段數以上(步驟s1212)。

            若步驟s1212的判斷為“否”,則cpu201執行波形區域開放程序(步驟s1213)。在該程序中,將波形存儲器206上具有最早的履歷編號的音色的區段開放。關于該處理的詳細情況在后面敘述。

            之后,cpu201返回步驟s1211,再次執行空閑區段數調查程序,判斷變量r中得到的空閑區段數是否為步驟s1210中在變量u中保存的使用區段數以上(步驟s1212)。

            根據以上的步驟s1211到步驟s1213的反復處理的結果,若變量r中得到的空閑區段數為與所指定的音色編號相對應的音色的使用區段數以上、從而步驟s1212的判斷成為“是”,則由于能夠確保需要的空閑區段,因此cpu201結束圖12b的流程圖所示的圖11的步驟s1106的波形區域確保程序。

            圖13是表示圖12b的步驟s1211的空閑區段數調查程序的詳細例的流程圖。如上述所述,在該程序中,取得波形存儲器206上的空閑區段的數量。

            cpu201首先將用于計數區段的ram203上的變量s復位為0,并且將保存返回值即空閑區段數的ram203上的變量r的值復位為0(步驟s1301)。

            接著,cpu201邊在步驟s1304中將變量s的值每次增加1,邊按通過變量s的值指定的每個區段反復執行步驟s1302和s1303的處理,直到在步驟s1305中判斷為變量s的值達到64為止。

            在上述的反復處理中,cpu201首先判斷保存有被分配到與變量s的值相對應的區段的音色編號的變量seg_inf[s].tone的值是否等于表示該區段為空狀態(未使用)的值“-1”(步驟s1302)。

            若根據該區段為空狀態而步驟s1302的判斷成為“是”,則cpu201將保存返回值即空閑區段數的ram203上的變量r的值增加1(步驟s1303)。

            若步驟s1302的判斷為“否”,則cpu201跳過步驟s1303的處理。

            在以上的反復處理后,若步驟s1305的判斷成為“是”,則cpu201結束圖13的流程圖所示的圖11的步驟s1211的空閑區段數調查程序的處理。其結果,在ram203上的變量r中得到波形存儲器206上的空閑區段的數量。

            圖14是表示圖12b的步驟s1213的波形區域開放程序的詳細例的流程圖。如上所述,在該程序中,波形存儲器206上具有最早的履歷編號的音色的區段被開放。

            cpu201首先將用于計數區段的ram203上的變量s復位為0,并且在保存比較用的履歷編號的ram203上的變量t中設置足夠大的值例如ffffffffh(末尾的“h”表示其左側是16進制數)(步驟s1401)。

            接著,cpu201邊在步驟s1405中將變量s的值每次增加1,邊按通過變量s的值指定的每個區段來反復執行步驟s1402到s1404的一系列的處理,直到在步驟s1406中判斷為變量s的值達到64為止。

            在上述的反復處理中,cpu201首先判斷保存有被分配到與變量s的值相對應的區段中的音色編號的變量seg_inf[s].tone的值是否等于表示該區段為空狀態(未使用)的值“-1”(步驟s1402)。

            若步驟s1402的判斷為“是”,則cpu201向步驟s1405轉移,轉移到下一個區段的反復處理。

            若步驟s1402的判斷為“否”,則cpu201判斷表示使用了與變量s的值相對應的區段的履歷編號的變量seg_inf[s].timestamp的值是否小于保存比較用的履歷編號的ram203上的變量t的值(步驟s1403)。

            若步驟s1403的判斷為“是”,則cpu201在保存比較用的履歷編號的ram203上的變量t中保存表示使用了與變量s的值相對應的區段的履歷編號的變量seg_inf[s].timestamp的值(步驟s1404)。其結果,在當前時刻根據音色指定而使用了與變量s的值相對應的區段的履歷編號作為最早的履歷編號被保存在變量t中。

            若步驟s1403的判斷為“否”,則cpu201跳過步驟s1404的處理,維持當前的變量t的值。

            以上的反復處理的結果,若與全部的區段的履歷編號的比較完成而步驟s1406的判斷成為“是”,則在變量t中得到最小即最早的履歷編號。

            接著,cpu201在步驟s1407中將用于計數區段的變量s的值復位為0后,邊在步驟s1410中將變量s的值每次增加1,邊按由變量s的值指定的每個區段,執行將具有變量t中得到的最早的履歷編號的區段開放的處理作為步驟s1408和s1409的反復處理,直到在步驟s1411中判斷為變量s的值達到64為止。

            在上述的反復處理中,cpu201首先判斷表示使用了與變量s的值相對應的區段的履歷編號的變量seg_inf[s].timestamp的值是否等于變量t中保存的最早的履歷編號的值(步驟s1408)。

            若步驟s1408的判斷為“是”,則cpu201在保存有被分配到與變量s的值相對應的區段中的音色編號的變量seg_inf[s].tone中,保存表示該區段為空狀態(未使用)的值“-1”(步驟s1409)。由此,該區段被開放。

            若步驟s1408的判斷為“否”,則cpu201跳過步驟s1409的處理,與變量s的值相對應的區段不開放。

            以上的反復理的結果,若步驟s1411的判斷為“是”,則cpu201結束圖14的流程圖所示的圖12b的步驟s1213的波形區域開放程序。其結果,具有最早的履歷編號的1個以上的區段被開放。

            圖15是表示圖11的步驟s1107的波形轉送指示程序的詳細例的流程圖。如上所述,在該程序中,執行用于將與所指定的音色編號相對應的音色的波形數據通過圖9的步驟s905的波形轉送處理從大容量閃存存儲器204向波形存儲器206轉送的準備處理。該準備處理是如下處理,即:對構成與從大容量閃存存儲器204轉送了波形數據的波形存儲器206上的空閑區段相對應的ram203上的seg_inf構造體的各成員變量(參照圖8)設置需要的信息,并且將控制轉送的ram203上的變量transfer_wave所表示的波形編號設置為初始值0。

            cpu201首先將用于計數所轉送的波形數據的區段組的ram203上的變量g的值、用于計數所轉送的波形數據的在新指定的音色中的波形編號的ram203的變量w的值、和用于計數波形存儲器206上的區段的ram203上的變量s的值分別復位為0(步驟s1501)。

            接著,cpu201邊在步驟s1511中將變量s的值每次增加1,邊按通過變量s的值指定的每個區段來反復執行步驟s1502到s1510的一系列的處理,直到在步驟s1512中判斷為變量s的值達到64為止。

            在上述的反復處理中,cpu201首先判斷保存有被分配到與變量s的值相對應的區段中的音色編號的變量seg_inf[s].tone的值是否等于表示該區段為空狀態(未使用)的值“-1”(步驟s1502)。

            若步驟s1502的判斷為“否”,則該區段不是空閑區段,因此cpu201向步驟s1511轉移,向下一個區段的反復處理轉移。

            若步驟s1502的判斷為“是”,則cpu201在與對應于變量s的值的空閑區段對應地保存音色編號的ram203上的變量seg_inf[s].tone中,保存作為自變量而交付的ram203上的變量t中所保存的新指定的音色編號的值。并且,cpu201在保存與對應于變量s的值的空閑區段對應地使用了區段的履歷編號的變量seg_inf[s].timestamp中,保存基于本次的音色選擇事件而被增加的ram203上的變量timestamp的值(參照圖11的步驟s1102),并更新該區段的履歷編號。進而,cpu201在保存與對應于變量s的值的空閑區段對應的音色的區段組值的變量seg_inf[s].seg_group中,保存變量g所保存的當前進行轉送的波形數據的區段組值(以上,為步驟s1503)。

            之后,cpu201將對被轉送到與變量s的值對應的當前的區段中的波形數據進行計數的ram203上的變量i的值復位為0(步驟s1504)。

            接著,cpu201邊在步驟s1506中將對被轉送到與變量s的值對應的當前的區段中的波形數據進行計數的變量i的值、和用于對所轉送的波形數據的新指定的音色中的波形編號進行計數的變量w的值分別每次增加1,邊反復執行步驟s1505的處理,直到通過步驟s1507以及s1508判斷為區段組已變化為止。即,在步驟s1505中,cpu201首先在與對應于變量s的值的當前區段中的第i個(=變量i的值)波形數據相對應的、表示波形數據是否完成轉送的變量seg_inf[s].wave_inf[i].wave中,設置表示還沒有轉送波形的值0。接著,cpu201在與對應于變量s的值的當前區段中的第i個波形數據相對應的、表示所指定的音色中的波形編號的變量seg_inf[s].wave_inf[i].wave_num中,設置ram203上的變量w表示的當前轉送中的波形數據的所指定的音色中的波形編號。接著,cpu201在與對應于變量s的值的當前區段中的第i個波形數據相對應的、保存該區段中的該波形數據的地址偏移的變量seg_inf[s].wave_inf[i].seg_adrs中,設置與被轉送到該區段的音色編號t(=變量t的值)的音色中的第w個(=變量w的值)波形數據相對應的、rom202中的常數tone_inf[t].wave[w].seg_adrs(參照圖7)的地址偏移值。進而,cpu201在保存與變量s的值相對應的當前區段中的第i個波形數據的尺寸的變量seg_inf[s].wave_inf[i].size中,設置與被轉送到該區段的音色編號t(=變量t的值)的音色中的第w個(=變量w的值)波形數據相對應的、rom202中的常數tone_inf[t].wave[w].size(參照圖7)的尺寸值(以上,為步驟s1505)。

            在上述步驟s1505的設置處理之后,cpu201將對被轉送到與變量s的值相對應的當前區段中的波形數據進行計數的變量i的值、和用于對所轉送的波形數據的新指定的音色中的波形編號進行計數的變量w的值分別每次增加1(步驟s1506)。

            之后,cpu201將與被轉送到該區段中的音色編號t(=變量t的值)的音色中的新指定的第w個(=變量w的值)波形數據相對應的、rom202中的常數tone_inf[t].wave[w].seg_group的區段組值設置到ram203上的變量a中。并且,cpu201將與被轉送到該區段的音色編號t(=變量t的值)的音色中的前一個的第w-1個(=變量w的值-1)波形數據相對應的、rom202中的常數tone_inf[t].wave[w-1].seg_group的區段組值設置到ram203上的變量b中(以上,為步驟s1507,區段組信息取得處理)。

            然后,cpu201判斷變量a所示的新指定的音色中的第w個波形數據的區段組的值是否等于變量b所示的前一個的第w-1個波形數據的區段組的值(步驟s1508)。

            若步驟s1508的判斷為“是”,則能夠進一步將波形數據轉送到相同的區段中,因此返回到步驟s1505的處理繼續進行與新的波形數據相對應的設置處理。

            若步驟s1508的判斷為“否”,則cpu201將保存在變量g中的區段組的值增加1(步驟s1509)。

            之后,cpu201判斷變量g的值是否達到與音色編號t(=變量t的值)相對應的常數tone_inf[t].num_seg的使用區段數的值(步驟s1510)。

            若步驟s1510的判斷為“否”,則cpu201向步驟s1511的處理轉移,繼續進行對下一個空閑區段的轉送處理。

            若步驟s1510的判斷為“是”,則與所指定的音色編號t(=變量t的值)相對應的全部使用區段數的波形數據的轉送處理結束,因此cpu201在表示當前轉送中的波形編號的ram203上的變量transfer_wave中設置為初始值0(步驟s1513)。之后,cpu201結束圖15的流程圖所示的圖11的步驟s1107的波形轉送指示程序的處理。

            圖16是表示圖9的步驟s905的波形轉送處理的詳細例的流程圖。如上所述,這里cpu201執行從圖2的大容量閃存存儲器204向波形存儲器206的基于后臺處理的波形轉送。作為結果,共用在一級存儲裝置即大容量閃存存儲器204中存儲的區段組的組波形數據作為1個組,被轉送到二級存儲裝置即波形存儲器206的區段。這里,所謂組波形數據是,(1)共用區段組信息的2個以上的波形數據、以及(2)不共用區段組信息的1個波形數據中的至少一方。然后,將上述組波形數據作為1個組,向二級存儲裝置中的多個區段中的某一區段寫入,該多個區段分別是尺寸被預先確定的存儲區域。

            cpu201首先判斷ram203上的變量transfer_wave的值是否是表示全部轉送完成的值“-1”(步驟s1601)。

            若步驟s1601的判斷為“是”,則不需要執行波形轉送處理,因此cpu201將圖16的流程圖所示的圖9的步驟s905的波形轉送處理原樣結束。

            若步驟s1601的判斷為“否”,則cpu201將變量transfer_wave表示的在所指定的音色中接下來應當轉送的波形編號的值保存到表示ram203上的當前正在轉送的音色中的波形編號的變量w內(步驟s1602)。

            接著,cpu201將對區段進行計數的ram203上的變量s的值在步驟s1603中復位為0后,邊在步驟s1605中每次增加1,邊執行基于步驟s1604的判斷的搜索處理。在步驟s1604中,cpu201判斷表示被分配了與變量s相對應的區段的音色編號的變量seg_inf[s].tone的值是否等于ram203上的變量cur_tone中所保存的為了當前演奏而選擇的音色編號(參照圖11的步驟s1103),并且被分配了變量seg_inf[s].seg_group中設置的與變量s相對應的區段的區段組的值是否等于rom202上的常數tone_inf[cur_tone].wave[w].seg_group中保存的變量cur_tone對應的音色的變量w表示的當前正在轉送的音色中的波形編號所對應的波形數據的區段組的值。

            通過預先執行上述的波形轉送指示程序內的步驟s1503的處理,從而在步驟s1604和步驟s1605的反復處理中步驟s1604的判斷必然成為“是”。若步驟s1604的判斷成為“是”,則cpu201在將對變量s的值表示的區段內的波形數據的次序進行計數的ram203上的變量i的值在步驟s1606中復位為0后,邊在步驟s1608中每次增加1,邊執行基于步驟s1607的判斷的搜索處理。步驟s1607中,cpu201判斷變量seg_inf[s].wave_inf[i].wave_num中所保存的、變量s的值表示的區段內的第i個(=變量i的值)波形數據在所指定的音色中的波形編號,是否等于變量w表示的當前正在轉送的波形數據在所指定的音色中的波形編號。

            通過預先執行上述的波形轉送指示程序內的步驟s1505的處理,在步驟s1607和步驟s1608的反復處理中步驟s1607的判斷必然成為“是”。若步驟s1607的判斷成為“是”,則cpu201執行將大容量閃存存儲器204中的變量cur_tone的值表示的音色中的變量w的值所表示的波形編號的波形數據作為波形存儲器206中的變量s的值所表示的區段內的第i個(=變量i表示的值)波形數據而轉送的波形轉送程序(步驟s1609)。此時,cpu201將ram203上的變量fa、sa、l以及s分別設置為自變量。cpu201在變量fa中設置通過變量cur_tone和變量w參照的rom202上的常數tone_inf[cur_tone].wave[w].seg_adrs的值,作為被轉送的波形數據的轉送源的大容量閃存存儲器204上的地址。并且,cpu201在變量sa中設置通過變量s和變量i參照的ram203上的變量seg_inf[s].wave_inf[i].seg_adrs的值,作為波形數據被轉送的轉送目的地的波形存儲器206中的地址偏移。進而,cpu201在變量l中設置通過變量s和變量i參照的ram203上的變量seg_inf[s].wave_inf[i].size的值,作為被轉送的波形數據的尺寸。然后,cpu201在變量s中設置變量s的值。關于波形轉送程序的詳細情況在后面敘述。

            在步驟s1609的波形轉送程序的處理之后,cpu201在與對應于變量s的值的當前區段中的第i個(=變量i的值)波形數據相對應的、表示是否完成波形數據轉送的變量seg_inf[s].wave_inf[i].wave中設置表示波形已被轉送的值1(步驟s1610)。

            進而,cpu201將表示音色中接下來應當轉送的波形編號的值的變量transfer_wave的值增加1(步驟s1611)。

            之后,cpu201判斷與變量cur_tone表示的音色中的變量w表示的波形編號的波形數據相對應的常數tone_inf[cur_tone].wave[w].seg_group的區段組的值是否達到了與變量cur_tone表示的音色相對應的常數tone_inf[cur_tone].num_seg中所保存的使用區段數(步驟s1612)。

            若步驟s1612的判斷為“否”,則cpu201將變量transfer_wave的值維持為在步驟s1611中增加后的值,并結束圖16的流程圖所示的圖9的步驟s905的波形轉送處理。其結果,接下來在執行步驟s905的波形轉送處理的定時,執行對變量transfer_wave的新的值的波形編號的波形數據的轉送。

            另一方面,若步驟s1612的判斷為“是”,則新指定的音色的波形數據的轉送全部結束,因此cpu201在變量transfer_wave中保存表示全部轉送結束的值“-1”。之后,cpu201結束圖16的流程圖所示的圖9的步驟s905的波形轉送處理。

            圖17是表示圖16的步驟s1609的波形轉送程序的詳細例的流程圖。

            首先,cpu201在對大容量閃存存儲器204的讀出地址進行指定的ram203上的變量rp(讀指針)中設置在圖16的步驟s1609的開始時作為ram203上的變量fa而被交付的轉送的波形數據的轉送源的大容量閃存存儲器204上的地址(步驟s1701)。

            接著,cpu201在對向波形存儲器206的寫入地址進行指定的ram203上的變量wp(寫指針)中,設置基于圖16的步驟s1609的開始時作為ram203上的變量s以及sa而被分別交付的區段編號以及區段內地址、通過下式計算的內容(步驟s1702)。

            wp=100000h×s+sa

            在該式中,1區段的尺寸如上所述是例如100000h字節,因此變量s表示的區段編號的區段的開頭的字節地址在波形存儲器206上為100000h×s。進而,本次的波形數據被轉送的地址為,相對于該地址偏移了作為變量sa而交付的區段內地址后的地址。

            之后,cpu201將指定所轉送的字節數據數的ram203上的變量c的值在步驟s1703中復位為0后,邊在步驟s1706中每次增加1個采樣,邊反復執行步驟s1704和s1705的處理,直到在步驟s1707中判斷為達到作為ram203上的變量l而交付的數據尺寸為止。

            首先,cpu201根據大容量閃存存儲器204上的將變量rp的值和變量c的值相加得到的地址,讀出波形數據的采樣(字節值)并設置到ram203上的變量a中(步驟s1704)。

            然后,cpu201在波形存儲器206上的將變量wp的值和變量c的值相加得到的地址中,寫入變量a所保存的數據(步驟s1705)。

            以上的反復處理的結果,若步驟s1707的判斷為“是”,則cpu201結束圖17的流程圖所示的圖16的步驟s1609的波形轉送程序的處理。

            圖18是表示圖9的步驟s908的按鍵處理的詳細例的流程圖。

            首先,cpu201判斷在ram203上的變量cur_tone中是否保存有表示沒有選擇音色的無效值“-1”(步驟1801)。

            若步驟s1801的判斷為“是”,則cpu201結束圖18的流程圖所示的圖9的步驟s908的按鍵處理,不執行發音處理。

            若步驟s1801的判斷為“否”,則cpu201判斷ram203上的變量transfer_wave的值是否為表示完成了波形轉送的值“-1”(步驟s1802)。

            若步驟s1802的判斷為“否”,則cpu201結束圖18的流程圖所示的圖9的步驟s908的按鍵處理,不執行發音處理。即,cpu201在波形轉送結束而變量transfer_wave的值成為“-1”之前,不執行發音處理。

            若步驟s1802的判斷為“是”,則cpu201執行分割波形檢索程序(步驟s1803)。該情況下,cpu201將圖9的步驟s902中取得的琴鍵編號和力度分別作為自變量并保存到ram203上的變量k以及v中。通過該程序的處理,判別例如圖6的分割空間內的一個,在ram203上的變量tw中得到當前的音色內的波形編號作為返回值。另外,作為變量tw的返回值而設置“-1”的情況是無相符的分割空間的情況。

            接著,cpu201判斷變量tw的返回值是否為“-1”(步驟s1804)。

            若步驟s1804的判斷為“是”,則cpu201結束圖18的流程圖所示的圖9的步驟s908的按鍵處理,不執行發音處理。

            若步驟s1804的判斷為“否”,則cpu201執行區段內波形檢索程序(步驟s1805)。此時,cpu201交付保存在變量tw中的音色內的波形編號作為自變量。通過該程序的處理,在ram203上的變量s得到區段編號,作為返回值。該變量s的返回值為64的情況是不存在相符的波形數據的情況。并且,在ram203上的變量sw中得到區段內的波形編號,作為返回值。

            在步驟s1805的區段內波形檢索程序的處理之后,cpu201判斷變量s的返回值是否為64(步驟s1806)。

            若步驟s1806的判斷為“是”,則cpu201結束圖18的流程圖所示的圖9的步驟s908的按鍵處理,不執行發音處理。

            若步驟s1806的判斷為“否”,則cpu201在ram203上的變量a中設置由下式計算的地址,作為向音源lsi205通知的波形數據的地址(步驟s1807)。

            a=s×10000h

            +seg_inf[s].wave_inf[sw].seg_adrs

            與圖17的步驟s1702的情況同樣,變量s所示的區段編號的區段的開頭的字節地址在波形存儲器206上為100000h×s。對該值加上了常數seg_inf[s].wave_inf[sw].seg_adrs中保存的變量s表示的區段的變量sw所示的波形編號的波形數據的區段內偏移地址的值后得到的值,為音源lsi205應當讀出的波形存儲器206中的開頭地址。

            之后,cpu201對音源lsi205執行發音程序(步驟s1808)。此時,cpu201將變量k所保存的琴鍵編號、變量v所保存的力度、和變量a所保存的地址值作為自變量向音源lsi205交付。并且,cpu201將由常數tone_inf[cur_tone].wave[sw].tg_inf表示的參數組(參照圖7)作為自變量向音源lsi205交付,來作為其他波形信息。音源lsi205的處理由于是既存的處理,所以對其詳細情況進行省略,但基于上述自變量,從波形存儲器206讀出波形數據而執行發音處理。

            圖19是表示圖18的步驟s1803的分割波形檢索程序的詳細例的流程圖。

            cpu201將表示音色內的波形編號的ram203上的變量w的值在步驟s1901中復位為0后,邊在步驟s1906中每次增加1,邊反復執行步驟s1902到s1905的一系列的判斷處理,直到在步驟s1907中判斷為達到64為止。

            在上述的反復處理中,cpu201首先判斷作為變量v而交付的力度是否為通過變量cur_tone和變量w參照的rom202上的常數tone_inf[cur_tone].wave[w].vel_lo的最低力度值以上(步驟s1902)。

            若步驟s1902的判斷為“否”,則向步驟s1906的處理轉移而轉移到接下來的波形編號的處理。

            若步驟s1902的判斷為“是”,則接著由cpu201判斷作為變量v而交付的力度是否為通過變量cur_tone和變量w參照的rom202上的常數tone_inf[cur_tone].wave[w].vel_hi的最高力度值以下(步驟s1903)。

            若步驟s1903的判斷為“否”,則向步驟s1906的處理轉移而轉移到接下來的波形編號的處理。

            若步驟s1903的判斷為“是”,則接著由cpu201判斷作為變量k而交付的琴鍵編號是否為通過變量cur_tone和變量w參照的rom202上的常數tone_inf[cur_tone].wave[w].key_lo的最低琴鍵編號以上(步驟s1904)。

            若步驟s1904的判斷為“否”,則向步驟s1906的處理轉移而轉移到接下來的波形編號的處理。

            若步驟s1904的判斷為“是”,則接著由cpu201判斷作為變量k而交付的琴鍵編號是否為通過變量cur_tone和變量w參照的rom202上的常數tone_inf[cur_tone].wave[w].key_hi的最高琴鍵編號以下(步驟s1905)。

            若步驟s1905的判斷為“否”,則向步驟s1906的處理轉移而轉移到接下來的波形編號的處理。

            若步驟s1905的判斷為“是”,則cpu201將變量w的值作為音色內波形編號的返回值而設置到變量tw。之后,cpu201結束圖19的流程圖所示的圖18的步驟s1803的分割波形檢索程序。

            若步驟s1905的判斷為“否”,則向步驟s1906的處理轉移而轉移到接下來的波形編號的處理。

            步驟s1902到s1907的反復處理的結果,若步驟s1907的判斷為“是”,則cpu201在變量tw中設置表示無相符的值“-1”。之后,cpu201結束圖19的流程圖所示的圖18的步驟s1803的分割波形檢索程序。

            圖20是表示圖18的步驟s1805的區段內波形檢索程序的詳細例的流程圖。

            cpu201在將計數區段的ram203上的變量s的值在步驟s2001中復位為0后,邊在步驟s2009中每次增加1,邊反復執行步驟s2002到s2008的一系列的處理,直到在步驟s2010中判斷為達到64為止。

            上述的反復處理中,cpu201首先判斷作為ram203上的變量seg_inf[s].tone(參照圖8)的值而設定在與變量s的值相對應的區段中的音色編號是否等于作為ram203上的變量cur_tone(參照圖8)的值而當前正在選擇的音色編號(步驟s2002)。

            若步驟s2002的判斷為“否”,則cpu201向步驟s2009的處理轉移而轉移到對下一個區段的處理。

            若步驟s2002的判斷為“是”,則cpu201在將對區段內的波形編號進行保存的ram203上的變量sw的值在步驟s2003中復位為0后,邊在步驟s2007中每次增加1,邊反復執行步驟s2004到s2007的一系列的處理,直到在步驟s2008中判斷為達到64為止。

            在上述的反復處理中,cpu201首先將基于變量s以及變量sw而作為變量seg_inf[s].wave_inf[sw].wave_num的值被參照的與變量s的值相對應的區段內的第sw個(=變量sw的值)波形數據的音色內的波形編號保存在ram203上的變量w中(步驟s2004)。

            接著,cpu201判斷變量w的值是否等于作為自變量而交付的ram203上的變量tw所表示的音色內的波形編號(步驟s2005)。

            若步驟s2005的判斷為“否”,則判斷變量tw的值是否為“-1”(步驟s2006)。

            若步驟s2006的判斷為“否”,則cpu201向步驟s2007轉移而轉移到對下一個區段內波形編號的波形數據的處理。

            若步驟s2006的判斷為“是”,則cpu201向步驟s2009轉移而轉移到對下一個區段的處理。

            在上述的反復處理中,若步驟s2005的判斷為“是”,則cpu201將此時的變量s的值和變量sw的值分別作為區段的返回值以及區段內波形編號的返回值而設置,并結束圖20的流程圖所示的圖18的步驟s1805的區段內波形檢索程序的處理。

            在上述的反復處理中,若步驟s2010的判斷為“是”,則cpu201將變量s的返回值設置為表示無相符的值,結束圖20的流程圖所示的圖18的步驟s1805的區段內波形檢索程序的處理。

            通過以上說明過的實施方式,在波形存儲器上不存在波形的音色被選擇而將新的音色波形數據向波形存儲器寫入時,若將區段相同的使用數的音色開放,則能夠可靠地寫入新的波形。例如,在選擇了使用3區段的音色波形時,只要對使用3區段以上的音色進行覆寫即可。

            由此能夠避免雖然具有比希望寫入的波形的容量大得多的空閑空間但卻不能寫入那樣的非效率的狀態,因此從需要進行如對演奏造成障礙那樣的花費時間的垃圾回收等存儲器整理中解放出來。

            并且,若寫入到波形存儲器上的音色的組合是相同的,則用于寫入所選擇的音色的波形的條件、例如若覆寫以該狀態寫入的某音色則能夠寫入等,能夠與過去寫入波形的順序無關地預測,因此能夠實現容易管理的電子樂器。

            此外,本發明不限定于上述的實施方式,在實施階段在不脫離其主旨的范圍內能夠進行各種變形。并且,由上述的實施方式執行的功能只要可能也可以適當組合來實施。在上述的實施方式中包含有各種階段,通過公開的基于多個構成要件的適宜的組合能夠提取各種發明。例如,即使從實施方式所示的全部構成要件中刪除一些構成要件,若能夠得到效果,則該刪除了構成要件的構成也能夠作為發明而提取。

            額外的優勢和變更對于本領域技術人員是容易發生的。因此,本發明在其更廣泛的方面不僅限于具體細節和具體實施例所示的和所描述的。因此,這些實施方式及其變形都包含在發明的范圍和主旨中,并且包含在權利要求的范圍所記載的發明及與其等同的范圍中。

            當前第1頁1 2 
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品