自動作曲裝置、方法【專利說明】自動作曲裝置、方法[0001]本申請基于2014年11月20日提出申請的日本申請第2014-235235號主張優先權,并援引該在先申請的全部內容。
技術領域:
[0002]本發明涉及自動作曲裝置以及方法。【
背景技術:
】[0003]已知根據由多個音符(note)數據構成的樂旨旋律(motifmelody)進行自動作曲的技術。例如,已知如下那樣的現有技術(例如特開2002-32080號公報中記載的技術)。如果從存儲有特定調的和弦進行(chordprogress1n)的數據庫中選擇規定的和弦進行,并將樂旨(motif)以規定的調輸入,貝Ij從輸入樂旨檢測出樂旨調(motifkey)。基于檢測出的樂旨調將和弦進行數據變調為樂旨調,在旋律生成中,基于輸入樂旨以及向樂旨調變調后的和弦進行,生成樂旨調的旋律。此外,基于檢測出的樂旨調將樂旨變調為特定調,根據特定調的和弦進行以及變調后樂旨生成特定調的旋律,然后,變調為樂旨調的旋律。[0004]此外,還已知如下那樣的現有技術(例如特開平10-105169號公報中記載的技術)。從樂曲數據的卡拉OK演奏用數據和引導(guide)旋律數據提取4分音符以上的長度的音符,統計其音調名稱(Pitchname)(C?B)的出現頻度的分布。比較該頻度分布和大調判斷音階及小調判斷音階,將分布形狀最一致處判斷為作為主音(音階音(scalenote))的調,根據該調判斷結果和引導旋律數據生成和聲數據,并根據該和聲數據形成和聲聲音信號。[0005]但是,上述現有技術是從樂旨中提取某些精華(essences)并進行變形的例子。通常,雖然也有樂旨旋律和副歌(refrain)旋律相似而具有共通的特征的情況,但不這樣的情況較多。即,分別根據獨立的創作意圖來制作樂旨和副歌旋律的情況較多。因而,如果如上述現有技術那樣強行從樂旨自動生成副歌旋律,則在通常的意義上具有大多得不到自然的旋律的課題。[0006]另一方面,還已知有輸入樂旨和副歌旋律雙方而進行自動生成的現有技術,但輸入方法等復雜,不適合作為使初學者簡單地享受作曲的方法。【
發明內容】[0007]因此,本發明的目的在于,使樂旨和副歌旋律的對比能夠自動生成自然的旋律。[0008]根據實施方式的一例,具備自動作曲裝置,其具備:輸入部,將含有多個音符數據的樂句(phrase)作為輸入樂旨來輸入,并將所輸入的上述樂句的類別輸入;以及處理部,執行:檢索處理,從存儲將類別分別不同的多個樂句進行了組合的多種樂句集合的樂句集合數據庫中,檢索包含與所指定的上述類別相同且與上述輸入樂旨相對類似度高的樂句的樂句集合;以及旋律生成處理,基于所檢索的上述樂句集合生成旋律。【附圖說明】[0009]圖1是自動作曲裝置的實施方式的框圖。[0010]圖2是表示本實施方式中被自動作曲的樂曲的構造例的圖。[0011]圖3是輸入樂旨108與和弦進行數據的適合動作例。[0012]圖4是表示輸入樂旨的數據結構例的圖。[0013]圖5是表示伴奏/和弦進行DB的數據結構例的圖。[0014]圖6是表示I個記錄中的曲構造數據的數據結構例的圖。[0015]圖7是表示標準音級集合表(tandardpitchclasssettable)的數據結構例的圖。[0016]圖8是有關音符類型、鄰接音程(adjacenttone)、以及音符類型與鄰接音程的數組變量(arrayvariable)數據的說明圖。[0017]圖9是表示音符連接規則的數據結構例的圖。[0018]圖10是和弦進行選擇部102的動作說明圖。[0019]圖11是表示樂句集合DB的數據結構例的圖。[0020]圖12是旋律變形處理以及旋律優化處理的動作說明圖。[0021]圖13是旋律優化處理的詳細動作說明圖。[0022]圖14是表示自動作曲裝置的硬件結構例的圖。[0023]圖15A是表示各種變量數據、數組變量數據、以及常數數據的列表的圖(其I)。[0024]圖15B是表示各種變量數據、數組變量數據、以及常數數據的列表的圖(其2)。[0025]圖16是表示自動作曲處理的例子的流程圖。[0026]圖17是表示和弦進行選擇處理的詳細例的流程圖。[0027]圖18是表示和弦設計數據制作處理的詳細例的流程圖。[0028]圖19是表示輸入樂旨與和弦進行的適合度(matchinglevel)檢查處理的詳細例的流程圖。[0029]圖20是表示檢查處理的詳細例的流程圖。[0030]圖21是表示與輸入樂旨的當前的音符的定時相對應的和弦信息的取得處理的詳細例的圖。[0031]圖22是表示音符類型取得處理的詳細例的圖。[0032]圖23是表示音符連接性檢查處理的詳細例的圖。[0033]圖24是表示旋律生成處理的詳細例的圖。[0034]圖25是表示旋律生成I處理的詳細例的圖。[0035]圖26是表示樂句集合DB檢索處理的詳細例的圖。[0036]圖27是表示旋律變形處理的詳細例的圖。[0037]圖28是表示旋律優化處理的詳細例的圖。[0038]圖29是表示旋律生成2處理的詳細例的圖。【具體實施方式】[0039]以下,參照附圖詳細說明用于實施本發明的方式。圖1是自動作曲裝置100的實施方式的框圖。該自動作曲裝置100具備樂旨輸入部101、和弦進行選擇部102、伴奏/和弦進行數據庫(以下,將“數據庫”稱為“DB”)103、規則DB104、旋律生成部105、樂句集合DB106以及輸出部107。[0040]樂旨輸入部101使用戶將所謂A旋律(Amelody)、B旋律、C旋律(副歌旋律)等決定曲調的特征性旋律部分中的某一個作為輸入樂旨108來輸入。輸入樂旨108是A旋律部分的樂旨即樂旨A、B旋律部分的樂旨即樂旨B、或者C旋律(副歌旋律)部分的樂旨即樂旨C中的某一個,例如具有各旋律部分的開頭的2小節的長度。樂旨輸入部101例如具備用戶通過鍵盤將旋律輸入的鍵盤輸入部101-1、用戶從麥克風通過歌聲將旋律輸入的聲音輸入部101-2、用戶從鍵盤等將構成旋律的音符的數據輸入的音符輸入部101—3中的任I個以上的機構。此外,輸入部101具有將A旋律、B旋律、C旋律(副歌旋律)等樂旨的類別輸入的、獨立的操作單元等。[0041]和弦進行選擇部102按照在伴奏/和弦進行DB103中存儲的多個和弦進行數據的每個,一邊參照規則DB104,一邊計算表示該和弦進行數據與從樂旨輸入部101輸入的輸入樂旨108以何種程度適合的適合度,輸出適合度高的例如分別指示上位3個和弦進行數據的#0、#1、#2的和弦進行候選指示數據(圖1中顯示為“和弦進行候選”)109。[0042]旋律生成部105例如使用戶選擇與和弦進行選擇部102輸出的#0、#1、#2的和弦進行候選指示數據109對應的3個和弦進行候選中的I個。或者,旋律生成部105也可以使得自動地按順序選擇與#0、#1、#2的和弦進行候選指示數據109的某一個對應的和弦進行候選。結果,旋律生成部105將與所選擇的和弦進行候選對應的曲構造數據從伴奏/和弦進行DB103讀入。旋律生成部105按照由該曲構造數據表示的小節的每個樂句,一邊參照輸入樂旨108和登記在樂句集合DB106中的樂句集合、以及規則DB104,一邊自動生成該樂句的旋律。旋律生成部105遍及樂曲整體的小節而執行旋律的自動生成處理,將自動生成的旋律110輸出。[0043]輸出部107具備:樂譜顯示部107—I,根據旋律生成部105自動生成的旋律數據110來顯示旋律的樂譜;樂音再現部107-2,根據旋律數據110以及從伴奏/和弦進行DB103取得的伴奏用MIDI(MusicalInstrumentDigitalInterface)數據,執行旋律及伴奏的再現。[0044]接著,對具有圖1的功能結構的自動作曲裝置100的動作概略進行說明。圖2是表示在本實施方式中被自動作曲的樂曲的構造例的圖。樂曲通常由序曲(introduct1n)、A旋律、B旋律、間奏、C旋律(副歌旋律)、尾聲(ending)等的樂句構成。序曲是僅由旋律開始前的伴奏構成的前奏部分。A旋律通常是指在序曲之后出現的樂句,在曲中通常演奏平穩后的旋律。B旋律是指在A旋律之后出現的樂句,多為與A旋律相比稍微激烈的曲調。對于C旋律而言,在B旋律之后出現的樂句的情況較多,日本的曲子中C旋律為曲子中最激烈的副歌旋律的情況較多。尾聲與序曲相反,是指曲子的結尾的樂句。間奏例如是I曲目和2曲目之間的不存在旋律的僅樂器演奏的樂句。圖2所示的樂曲的構造例中,按照序曲、A旋律、B旋律、A旋律、間奏、A旋律、B旋律、C旋律、尾聲的順序構成樂曲。[0045]本實施方式中,用戶例如能夠將樂曲中最初出現的A旋律的例如開頭2小節的旋律從樂旨輸入部101(參照圖1)輸入以作為圖2的(a)的樂旨A(圖1的輸入樂旨108的一例)。或者,用戶例如能夠將樂曲中最初出現的B旋律的例如開頭2小節的旋律從樂旨輸入部101(參照圖1)輸入以作為圖2的(b)的樂旨B(圖1的輸入樂旨108的另一例)。或者,用戶例如能夠將樂曲中最初出現的C旋律(副歌旋律)的例如開頭2小節的旋律從樂旨輸入部101(參照圖1)輸入以作為圖2的(c)的樂旨C(圖1的輸入樂旨108的又一例[0046]圖3A是表示如上述那樣輸入的輸入樂旨108的音符例的圖。這樣,作為輸入樂旨108,例如被指定2小節的旋律。[0047]對于這樣的輸入,和弦進行選擇部102(參照圖1)從在伴奏/和弦進行DB103中登記的和弦進行數據之中,提取例如上位3位的由適合的和弦及調、音階構成的和弦進行數據。構成和弦進行數據的和弦以及調、音階如圖2的(f)以及圖2的(g)所示,遍及樂曲整體被設定。[0048]圖3B是表示由到上位3位為止的和弦進行數據表示的和弦進行(和弦以及調、音階)#0,#1,#2的例子的圖。[0049]圖1的旋律生成部105根據這些信息,將輸入樂旨108被輸入的圖2的(a)、圖2的(b)、或圖2的(C)的某一個的樂句部分以外的圖2的(d)所示的樂句部分對應的旋律自動生成,并與輸入樂旨108的旋律一起作為旋律110輸出。并且,圖1的輸出部107進行與自動生成的旋律110對應的樂譜顯示或放音。另外,關于伴奏,與伴奏/和弦進行DB103中被最終選擇的和弦進行對應地登記的伴奏用MIDI數據被依次讀出,基于該數據如圖2的(e)所示那樣遍及樂曲整體進行伴奏。[0050]圖4是表示在圖1的樂旨輸入部101中基于用戶輸入而生成的輸入樂旨108的數據結構例的圖。如圖4A所示,輸入樂旨108由#0、#1、..?等多個音符數據構成,在最后存儲終端和弦。各音符數據例如對應于構成圖3A中例示的輸入樂旨108的例如2小節的各個音符,是指示成為樂旨的旋律音的發音的數據。如圖4B所示,I個音符數據由以下數據構成:將與該音符數據對應的音符的發音定時例如作為從輸入樂旨108的開頭起的經過時間而表示的“時間”數據、表示音符的長度的“長度”數據、表示音符的強度的“強度”數據、和表示音符的音高的“音高”數據。通過這些數據,表示圖3A中例示那樣的2小節的輸入樂旨108中的I個音符。[0051]圖5是表示圖1的伴奏/和弦進行DB103的數據結構例的圖。如圖5A所示,和弦進行DB中,存儲有I個記錄(record)(圖5A的I行)由和弦進行數據、伴奏用MIDI數據以及曲構造數據構成的、#0、#1、..?等多個記錄,在最后存儲有終端和弦。[0052]I個記錄中的和弦進行數據表示樂曲的I曲的和弦進行。圖5A所示的和弦進行DB中,例如存儲有50記錄=50曲的和弦進行數據。I記錄中(=I曲)的和弦進行數據如圖5B所示,由#0、#1、...等多個和弦數據構成,在最后存儲有終端和弦。和弦數據中,有指定某定時中的調以及音階的數據(圖5C)、和指定某定時中的和弦的數據(圖f5D)(參照圖3B)。指定調以及音階的數據如圖5C所示,由表示該調以及音階開始的定時的“時間”數據、“調”數據、和“音階”數據構成。指定和弦的數據如圖f5D所示,由表示該和弦開始的定時的“時間”數據、表示和弦的基音(root)的“基音”數據、以及表示和弦的類型(種類)的“類型”數據構成。和弦進行數據例如作為MIDI規格的元數據(metadata)被存儲。[0053]圖5A所示的伴奏/和弦進行DB103的I記錄中(=I曲分)的曲構造數據具有圖6所示的數據結構例。該曲構造數據按I曲中的每小節形成I個記錄(圖6的I行)。曲構造數據中的I個記錄中,存儲與該小節對應的樂句的類別以及表示在該樂句中是否存在旋律的信息。[0054]圖6所示的曲構造數據中,在「(Measure)」項目中,登記有表示各記錄的數據是樂曲中的第幾小節的值。以后,將「Measure」項目的值為M的記錄作為第M記錄,將該記錄表示的小節作為第M+1小節。例如「Measure」項目的值為O時該記錄為第O記錄/第I小節,其值為I時該記錄為第I記錄/第2小節。[0055]圖6所示的曲構造數據中,「PartName[M]」項目以及「iPartID[M]」項目(「M」是「Measure(小節)」項目的值)中分別登記有第M記錄/第M+1小節的樂句的類別以及表示與該類別對應的識別值的數據。例如,第O記錄(第I小節)的「PartName[Μ]」項目以及「iPartID[M]」項目的值「Null」以及「O」表示該小節是無聲的。第1、2記錄(第2、3小節)的「PartName[M]」項目以及「iPartID[M]」項目的值「Intro」以及「I」表示該小節是序曲樂句。第3?10、28?34記錄(第4?11、29?35小節)的「PartName[M]」項目以及「iPartID[M]」項目的值「A」以及「11」表示該小節是A旋律的樂句。第11?18記錄(第12?19小節)的「PartName[M]」項目以及「iPartID[M]」項目的值「B」以及「12」表示該小節是B旋律的樂句。第19?27記錄(第20?28小節)的「PartName[M]」項目以及「iPartID[M]」項目的值「C」以及「13」表示該小節是C旋律(或副歌旋律)的樂句。第35記錄(第36小節)的「PartName[M]J項目以及「iPartID[M]J項目的值「Ending」以及「3」表示該小節是尾聲的樂句。[0056]此外,圖6所示的曲構造數據中,ΓExistMelody[M]」項目(「M」是「Measure」項目的值)中,登記有表示第M記錄(第M+1小節)的樂句中是否存在旋律的值。如果旋律存在則登記值「1」,如果不存在則登記值「O」。例如,M=0、1、2、或35(第0、1、2、35記錄(第1、2、3、36小節))的「PartName[M]J項目為「Null」、「Intro」、或「Ending」的各樂句的「ExistMelody[M]」項目中登記有值「O」,表示不存在旋律。PartName[M]=「Null」的情況下是無聲的,PartName[M]=「Intro」、或「Ending」的情況下僅存在伴奏。[0057]此外,圖6所示的曲構造數據中,「iPartTime[M]」項目(「M」是「Measure」項目的值)中,登記有與第M記錄對應的第M+1小節的小節開始時間數據。圖6中雖然為空欄,但在各記錄中保存實際的時間值。[0058]以上的圖6所示的曲構造數據例如作為MIDI規格的元數據被存儲。[0059]如在圖2中描述過的那樣,用戶例如能夠將在圖6的曲構造數據中最初出現的A旋律的例如開頭2小節即第3、4記錄(第4、5小節)的旋律作為樂旨A(參照圖2的(a))從樂旨輸入部101(參照圖1)輸入。或者,用戶例如能夠將在圖6的曲構造數據中最初出現的B旋律的例如開頭2小節即第11、12記錄(第12、13小節)的旋律作為樂旨B(參照圖2的(b))從樂旨輸入部101輸入。或者,用戶例如能夠將在圖6的曲構造數據中最初出現的C旋律(副歌旋律)的例如開頭2小節即第19、20記錄(第20、21小節)的旋律作為樂旨C(參照圖2的(c))從樂旨輸入部101輸入。[0060]和弦進行選擇部102按照在伴奏/和弦進行DB103中存儲的每個和弦進行數據(以下記作“評價對象和弦進行數據”),計算表示該評價對象和弦進行數據與從樂旨輸入部101輸入的輸入樂旨108以何種程度相適合的適合度。[0061]在本實施方式中,將評價對象和弦進行數據對輸入樂旨108的適合度,使用音樂理論中的有效音符音階(availablenotescale)的概念來計算。有效音符音階在提供了和弦進行時將能夠在旋律中使用的音表示為音階。作為構成有效音符音階的音符的種類(以下稱作“音符類型”),例如有和弦音(chordtone)、有效音符(availablenote)、音階音符(scalenote)、延伸音符(tens1nnote)、避免音符(avoidnote)。和弦音是成為音階的基礎的和弦的構成音,是優選使用I個音作為旋律的音符類型。有效音符是在旋律中通常能夠使用的音符類型。音階音符是音階的構成音,如果將該音用較長的音等相加,則會與原本的和弦聲沖突,所以是在處理中需要注意的音符類型。延伸音符是疊加于和弦音的在和弦的延伸中使用的音,是越是高次的延伸則聲的緊張感越增加而成為色彩豐富的聲的音符類型。避免音符是與和弦不和諧的音,是希望避免使用或在較短的音符中使用的音符類型。本實施方式中,關于構成輸入樂旨108的各音符(圖3A的各音符),根據與該音符的發音定時對應的評價對象和弦進行數據中的調及音階與和弦的基音及和弦類型,計算該音符的該和弦進行上的音符類型。[0062]為了取得上述的構成輸入樂旨108的各音符(圖3A的各音符)的音符類型,在本實施方式中,使用標準音級集合表(standardpitchclasssettable)。圖7是表示標準音級集合表的數據結構例的圖。標準音級集合表設置在和弦進行選擇部102內的存儲區域(例如后述的圖4的ROM1402內)。標準音級表由圖7A中例示的和弦音表、圖7B中例示的延伸音符表、以及圖7C中例示的音階音符表構成。[0063]在圖7A、圖7B或圖7C的表中,與其I行對應的I組的音級集合由對將和弦或音階的基音設為第O音(第O位)的音階構成音時的構成I個八度(octave)的半音階的第O音(第O位)(圖中的行的右端)到第11音(當前第1頁1 2 3 4 5 6