JP2806351B2 - 演奏情報分析装置及びそれを用いた自動編曲装置 - Google Patents

演奏情報分析装置及びそれを用いた自動編曲装置

Info

Publication number
JP2806351B2
JP2806351B2 JP8061695A JP6169596A JP2806351B2 JP 2806351 B2 JP2806351 B2 JP 2806351B2 JP 8061695 A JP8061695 A JP 8061695A JP 6169596 A JP6169596 A JP 6169596A JP 2806351 B2 JP2806351 B2 JP 2806351B2
Authority
JP
Japan
Prior art keywords
section
sections
data
melody
phrase
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP8061695A
Other languages
English (en)
Other versions
JPH09230857A (ja
Inventor
知之 船木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP8061695A priority Critical patent/JP2806351B2/ja
Publication of JPH09230857A publication Critical patent/JPH09230857A/ja
Application granted granted Critical
Publication of JP2806351B2 publication Critical patent/JP2806351B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Auxiliary Devices For Music (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は入力された旋律デ
ータの音楽的特性を分析する演奏情報分析装置に関す
る。この発明は演奏情報分析装置によって分析された結
果に基づいてその旋律データに適した伴奏パターンを付
与する自動編曲装置に関する。
【0002】
【従来の技術】従来、入力された演奏情報すなわち旋律
データを所定の分割ルールに従って部分旋律に分割し、
分割された部分旋律の順番と類似度に応じて、各部分旋
律を曲想の展開上の旋律構造「起」、「承」、「転」、
「結」のいずれに相当するか決定し、決定された曲想の
展開に応じて前奏、間奏、コーラス等の編曲データを作
成するようにした自動編曲装置(特開平1−31038
4号公報)が知られている。
【0003】
【発明が解決しようとする課題】ところが、従来のもの
は、分割された部分旋律をその順番と類似度に応じて
「起承転結」という単純な旋律構造(曲構造)に当ては
めているだけなので、「起承転結」以外の旋律構造から
なる旋律データに対しては適用することができないとい
う問題を有していた。第1の発明は上述の点に鑑みてな
されたものであり、入力された演奏情報の曲構造を分析
することのできる演奏情報分析装置を提供するものであ
る。第2の発明は上述の点に鑑みてなされたものであ
り、入力された演奏情報の曲構造に適した伴奏パターン
を付与することのできる自動編曲装置を提供するもので
ある。
【0004】
【課題を解決するための手段】この発明に係る演奏情報
分析装置は、音高及び音長を少なくとも含んで構成され
る旋律データを供給するデータ供給手段と、前記データ
供給手段から供給される前記旋律データから曲構造を解
析して前記旋律データを複数の区間に分割する曲構造解
析手段と、前記曲構造解析手段によって分割された各区
間の起伏度数を算出する起伏度数算出手段とを備えたも
のである。旋律データは音高データや音長データで構成
される音符データが連続的に進行して構成されたもので
ある。通常、音楽の世界では一般的に「A−A’−B−
C」などのように表される情景の流れに従って曲は完成
している。曲構造解析手段は旋律データから曲構造を解
析して旋律データを前述のような情景の流れに従った複
数の区間(セクション)に分割する。ここでは、曲構造
を解析する場合に旋律データの音高の流れに従って解析
しているので、自然で適切な解析を行うことができる。
また、分割によって得られた各区間が「起承転結」とい
うような単純な情景の流れに従っている場合もあれば、
これ以外の情景の流れに従っている場合もある。そこ
で、この発明では起伏度数算出手段で分割された各区間
の起伏度数を算出し、算出された起伏度数に基づいて旋
律データの各区間の情景の流れを分析するようにした。
なお、起伏度数の算出方法としては、単位長当たりの音
符数の平均値、音高の平均値、音高の上下の方向転換
率、音高の上下の平均幅、音符長の変化率、強拍及び弱
拍の位置におけるキーオン出現度数、同じ形で展開する
フレーズの回数の少なくとも1つに基づいてその各区間
毎に算出することによって得られる。このようにして得
られた起伏度数は曲の感情的盛り上がりを数値的に示す
ことになる。従って、このようにして算出された起伏度
数を参照すれば、曲の持つ情景の流れを容易に把握する
ことが可能となる。
【0005】この発明に係る自動編曲装置は、音高及び
音長を少なくとも含んで構成される旋律データを供給す
るデータ供給手段と、前記データ供給手段から供給され
る前記旋律データから曲構造を解析して前記旋律データ
を複数の区間に分割する曲構造解析手段と、前記曲構造
解析手段によって分割された各区間の起伏度数を算出す
る起伏度数算出手段と、前記起伏度数算出手段によって
算出された起伏度数に従って前記各区間に伴奏パターン
を割り当てる割当手段とを備えたものである。この自動
編曲装置では、前記演奏情報分析装置の分析結果、すな
わち各区間の起伏度数に基づいて各区間に伴奏パターン
を割り当てている。前述のように起伏度数は曲の感情的
な盛り上がりを数値的に表したものなので、それに従っ
て伴奏パターンを割り当てることによって、曲の持つ情
景の流れに即した編曲を自動的に行うことができるよう
になる。
【0006】この発明に係る演奏情報分析装置は、複数
の区間に分割された旋律データを供給するデータ供給手
段と、二つの音が異なるタイミングで発生した場合に感
じられる2音間終止感度数をそれぞれの2音間毎に数値
化された変換テーブルを用いて前記データ供給手段から
供給される前記旋律データのそれぞれの区間の終止感度
数を算出する終止感度数算出手段とを備えたものであ
る。旋律データは音高データや音長データで構成される
音符データが連続的に進行して構成されたものであり、
予め複数の区間(フレーズ)に分割されている。旋律デ
ータをフレーズに分割する作業は、操作者が人為的に行
ってもよいし、別の演奏情報分析装置などが機械的に行
ってもよい。フレーズとは、音楽の世界では「音程の流
れ」を意味するものであり、いわゆるメロディの断片で
あり、メロディに応じた長さを有し、音楽的な意味を初
めて感じ取れる最小の区間のことである。この発明の終
止感度数算出手段は、二つの音が異なるタイミングで発
生した場合に感じられる2音間終止感度数をそれぞれの
2音間毎に数値化された変換テーブルを用いて各区間
(フレーズ)の終止感度数を算出している。この変換テ
ーブルは、操作者が予め作成したものを用いてもよい
し、所定の理論(例えば「プロンプとヘーベルの実験結
果」)を用いて計算によって作成したものを用いてもよ
い。なお、終止感度数の算出方法としては、区間(フレ
ーズ)の最終音符と、その前方に位置する所定数の音符
との間におけるそれぞれの2音間終止感度数を求め、求
められた2音間終止感度数を合計することによって算出
してもよい。また、求められた2音間終止感度数にその
2音間の距離に応じた重み付けを行い、それを合計する
ことによってその区間(フレーズ)の終止感度数を算出
してもよいし、求められた2音間終止感度数に最終音符
の音長に応じた重み付けを行い、それを合計することに
よってその区間の終止感度数を算出してもよい。このよ
うにして算出された各区間(フレーズ)の終止感度数を
参照することによって、前述の演奏情報分析装置の曲構
造解析手段は、旋律データから曲構造を解析して旋律デ
ータを前述のような情景の流れに従った複数の区間(セ
クション)に分割することが可能となる。
【0007】この発明に係る演奏情報分析装置は、複数
の区間に分割された旋律データを供給するデータ供給手
段と、前記データ供給手段から供給される前記旋律デー
タの中から音楽的なまとまりを示す前記区間の連続した
複数をグループ化することによって区間グループの複数
を作成するものであって、前記複数の区間のそれぞれに
ついて少なくとも前記区間グループの先頭に『なり得
る』のか、『なり得ない』のか、又は『不明』なのかを
第1の条件に従って決定し、前記『不明』と決定された
区間について前記区間グループの先頭に『なり得る』の
か、『なり得ない』のかを第2の条件に従って決定し、
最終的に『なり得る』と決定された区間を前記区間グル
ープの先頭としてグループ化を行うグループ化手段とを
備えたものである。旋律データは音高データや音長デー
タで構成される音符データが連続的に進行して構成され
たものであり、予め複数の区間(フレーズ)に分割され
ている。この旋律データのフレーズ分割は、操作者が人
為的に行ってもよいし、別の演奏情報分析装置などが機
械的に行ってもよい。この発明のグループ化手段は、旋
律データの中から音楽的なまとまりを示す区間(フレー
ズ)の連続した複数をグループ化、すなわち一つにまと
めることによって区間グループ(ブロック)の複数を作
成する。ここで区間グループ(ブロック)とは「響きの
流れ」を意味するものであり、その基本長はだいたい4
小節である。これは人間が響きを追いかける上で感じる
1つの単位長と考えられるからである。もちろん、旋律
データによって構成される曲によっては、区間グループ
(ブロック)の基本長が小節半であったり、5小節であ
ったりすることはある。この区間グループ(ブロック)
は主にコードの進行に大きく関わるものであり、この区
間グループ(ブロック)毎に適切なコードが割り当てら
れる場合が多い。この発明のグループ化手段は、まず第
1の条件に従って複数の区間(フレーズ)のそれぞれに
ついて少なくとも区間グループ(ブロック)の先頭に
『なり得る』のか、『なり得ない』のか、又は『不明』
なのかを決定する。この決定の結果、『不明』と決定さ
れた区間について、今度は第2の条件に従って区間グル
ープ(ブロック)の先頭に『なり得る』のか、『なり得
ない』のかを決定し、最終的に『なり得る』と決定され
た区間を区間グループ(ブロック)の先頭としてグルー
プ化を行う。なお、グループ化手段は、第2の条件に従
った決定として、第1の条件に従って『なり得る』と決
定された区間の前後所定小節数範囲内に存在する区間に
ついては『なり得ない』と決定する第1の決定方式、前
述の演奏情報分析装置の終止感度数算出手段によって算
出された終止感度数に基づいて、所定小節数範囲内に存
在する区間の中で最も終止感度数の低い区間の次の区間
については『なり得ない』と決定する第2の決定方式、
第1の条件に従って『なり得る』と決定された区間の旋
律データと一致度の高い区間については『なり得る』と
決定する第3の決定方式、第1の条件に従って『なり得
ない』と決定された区間の最終音符の音長が所定値より
も大きい区間については『なり得る』と決定する第4の
決定方式、の少なくとも一つの決定方式を実行してもよ
い。また、グループ化手段は、第4の決定方式によって
『なり得る』と決定された区間の旋律データと一致度の
高い区間については『なり得る』と決定してもよい。こ
のようにしてグループ化された区間グループ(ブロッ
ク)を参照することによって、前述の演奏情報分析装置
の曲構造解析手段は、旋律データから曲構造を解析して
旋律データを前述のような情景の流れに従った複数の区
間(セクション)に分割することが可能となる。
【0008】この発明に係る演奏情報分析装置は、複数
の区間に分割された旋律データを供給するデータ供給手
段と、前記データ供給手段から供給される前記旋律デー
タの中から音楽的なまとまりを示す前記区間の連続した
複数をグループ化することによって区間グループの複数
を作成するものであって、前記複数の区間のそれぞれに
ついて一致度を算出し、算出された一致度に基づいて前
記複数の区間を種類別に分類し、同じ種類に分類された
区間が連続する場合にはその連続する複数の区間を前記
区間グループの一つとしてグループ化を行うグループ化
手段とを備えたものである。旋律データは音高データや
音長データで構成される音符データが連続的に進行して
構成されたものであり、予め複数の区間(ブロック)に
分割されている。この旋律データのブロック分割は、操
作者が人為的に行ってもよいし、前記演奏情報分析装置
などが機械的に行ってもよい。この発明のグループ化手
段は、旋律データの中から音楽的なまとまりを示す区間
(ブロック)の連続した複数をグループ化、すなわち一
つにまとめることによって区間グループ(セクション)
の複数を作成する。ここでセクションとは音楽の世界で
一般的にメロディラインを「A−A’−B−C」などで
表示した場合の「A」とか「A’」とかで表される区間
のことであり、メロディ全体として起承転結といった
「情景や雰囲気の流れ」を作り出すことを目的としたも
のである。この発明のグループ化手段は、データ供給手
段から供給される旋律データの中から音楽的なまとまり
を示す区間(ブロック)の連続した複数をグループ化す
ることによって区間グループ(フクション)の複数を作
成するものであり、複数の区間(ブロック)のそれぞれ
について一致度を算出し、算出された一致度に基づいて
複数の区間(ブロック)を種類別、例えば「A」とか
「B」とかに分類し、同じ種類に分類された区間(ブロ
ック)が連続する場合にはその連続する複数の区間(ブ
ロック)を区間グループ(セクション)の一つとしてグ
ループ化を行う。このようにしてグループ化された区間
グループ(セクション)を参照することによって、前述
の演奏情報分析装置の起伏度数算出手段は、各区間グル
ープ(セクショ)の起伏度数を算出することが可能とな
る。
【0009】この発明に係る演奏情報分析装置は、複数
の区間に分割された旋律データを供給するデータ供給手
段と、前記データ供給手段から供給される前記旋律デー
タの中から音楽的なまとまりを示す前記区間の連続した
複数をグループ化することによって区間グループの複数
を作成するものであって、前記複数の区間のそれぞれに
ついて一致度を算出し、前記複数の区間を前記一致度に
基づいて分類し、前記複数の区間の中の所定数の区間の
並びに対応した分類のパターン列と同じパターン列とな
る部分を検出し、同じパターン列が検出された場合には
前記所定数の区間を前記区間グループの一つとしてグル
ープ化を行うグループ化手段とを備えたものである。こ
の発明のグループ化手段は、データ供給手段から供給さ
れる旋律データの中から音楽的なまとまりを示す区間
(ブロック)の連続した複数をグループ化することによ
って区間グループ(セクション)の複数を作成するもの
であり、複数の区間(ブロック)のそれぞれについて一
致度を算出し、算出された一致度に基づいて複数の区間
(ブロック)を種類別、例えば「A」とか「B」とかに
分類する。ここまでは、前述のグループ化手段と同じで
ある。そして、この発明では、複数の区間の中の所定数
の区間の並びに対応した分類のパターン列と同じパター
ン列となる部分を検出し、同じパターン列が検出された
場合にはその所定数の区間を区間グループ(セクショ
ン)の一つとしてグループ化を行う。例えば、複数の区
間(ブロック)が「A−B−C−D−A−B−C−D−
E−F」のような分類パターン列であった場合には、
「A−B」及び「C−D」が同じパターン列なので、こ
のパターン列が一つの区間グループ(セクション)とな
るので、前述の分類パターン列は「A−B−A−B−
C」となる。このようにしてグループ化された区間グル
ープ(セクション)を参照することによって、前述の演
奏情報分析装置の起伏度数算出手段は、各区間グループ
(セクショ)の起伏度数を算出することが可能となる。
【0010】この発明の自動編曲装置は、複数の区間に
分割された旋律データであって、各区間毎に起伏度数を
有するものを供給するデータ供給手段と、予め複数の伴
奏パターンの割り振り割合を決定しておき、前記複数の
伴奏パターンが割り振られる各区間の長さの割合と前記
起伏度数を考慮して、各区間に割り振られる伴奏パター
ンの割り振り割合が、前記割り振り割合に最も近づくよ
うに、前記伴奏パターンを割り振る割当手段とを備えた
ものである。旋律データは音高データや音長データで構
成される音符データが連続的に進行して構成されたもの
であり、予め複数の区間(セクション)に分割されてお
り、各区間毎に起伏度数を有するものである。この旋律
データのセクション分割及び各区間(セクション)毎の
起伏度数の付与は、操作者が人為的に行ってもよいし、
前記演奏情報分析装置などが機械的に行ってもよい。こ
の自動編曲装置は、各区間(セクション)の起伏度数に
基づいて各区間に伴奏パターンを割り当てる場合に、予
め決定された伴奏パターンの割り振り割合に最も近づく
ように各区間(セクション)の長さの割合と起伏度数を
考慮しているので、曲の感情的な盛り上がりを数値的に
表した起伏度数に従って伴奏パターンが割り当てられ、
曲の持つ情景の流れに即した編曲を自動的に行うことが
できるようになる。なお、割当手段は、伴奏パターンを
割り振る各区間(セクション)のタイプすなわち一致度
の割合に基づいたセクションの分類が、例えば「A−
A’−A”」のような同じタイプの場合には、起伏度数
を考慮することなく無条件に後の区間(「A”」)に高
ぶる演奏パターンを割り当てるようにしてもよい。ま
た、割当手段は、伴奏パターンを割り振る区間が一つの
タイプで構成されている場合、例えば「A」だけの場合
には、絶対起伏度数に対する起伏度数の大きさを考慮し
て、伴奏パターンを割り当てればよい。
【0011】
【発明の実施の形態】以下、この発明の実施の形態を添
付図面に従って詳細に説明する。図2はこの発明に係る
演奏情報分析装置及び自動編曲装置を内蔵した電子楽器
の構成を示すハードブロック図である。この電子楽器
は、マイクロプロセッサユニット(CPU)1、プログ
ラムメモリ2及びワーキングメモリ3からなるマイクロ
コンピュータによって制御されるようになっている。C
PU1は、この電子楽器全体の動作を制御するものであ
る。このCPU1に対して、データ及びアドレスバス1
Dを介してプログラムメモリ2、ワーキングメモリ3、
演奏データメモリ(RAM)4、押鍵検出回路5、スイ
ッチ検出回路6、表示回路7及び音源回路8がそれぞれ
接続されている。プログラムメモリ2はCPU1の各種
プログラム、各種データ等を格納するものであり、リー
ドオンリーメモリ(ROM)で構成されている。ワーキ
ングメモリ3は、演奏情報(メロディデータ)やCPU
1がプログラムを実行する際に発生する各種データを一
時的に記憶するものであり、ランダムアクセスメモリ
(RAM)の所定のアドレス領域がそれぞれ割り当てら
れ、レジスタやフラグなどとして利用される。
【0012】演奏データメモリは、曲テンプレート、ピ
ッチパターン、リズムパターンなどのような伴奏演奏に
関する種々のデータ(伴奏パターンデータ)を記憶する
ものである。鍵盤9は、発音すべき楽音の音高を選択す
るための複数の鍵を備えており、各鍵に対応してキース
イッチを有しており、また必要に応じて押鍵速度検出装
置や押圧力検出装置等のタッチ検出手段を有している。
押鍵検出回路5は、発生すべき楽音の音高を指定する鍵
盤9のそれぞれの鍵に対応して設けられた複数のキース
イッチからなる回路を含んで構成されており、新たな鍵
が押圧されたときはキーオンイベントを出力し、鍵が新
たに離鍵されたときはキーオフイベントを出力する。ま
た、鍵押し下げ時の押鍵操作速度又は押圧力等を判別し
てタッチデータを生成する処理を行い、生成したタッチ
データをベロシティデータとして出力する。このように
キーオン、キーオフイベント及びベロシティなどのデー
タはMIDI規格で表現されておりキーコードと割当て
チャンネルを示すデータも含んでいる。
【0013】テンキー&キーボード&各種スイッチ1A
は、演奏情報(メロディデータ)の音楽的特徴を分析及
び検出するための分析スイッチや分析及び検出結果に基
づいて自動的に編曲を行うための編曲スイッチ、数値デ
ータ入力用のテンキーや文字データ入力用のキーボー
ド、及び自動編曲に関する各種の音楽条件を入力するた
めの各種の操作子を含んで構成される。なお、この他に
も音高、音色、効果等を選択・設定・制御するための各
種操作子を含むが、その詳細については公知なので説明
を省略する。スイッチ検出回路6は、テンキー&キーボ
ード&各種スイッチ1Aの各操作子の操作状態を検出
し、その操作状態に応じたスイッチ情報をデータ及びア
ドレスバス1Dを介してCPU1に出力する。表示回路
7はCPU1の制御状態、設定データの内容等の各種の
情報をディスプレイ1Bに表示するものである。ディス
プレイ1Bは液晶表示パネル(LCD)やCRT等から
構成され、表示回路7によってその表示動作を制御され
るようになっている。このテンキー&キーボード&各種
スイッチ1A及びディスプレイによってGUI(Gra
phical User Interface)が構成
される。
【0014】音源回路8は、複数チャンネルで楽音信号
の同時発生が可能であり、データ及びアドレスバス1D
を経由して与えられた演奏情報(MIDI規格に準拠し
たデータ)を入力し、このデータに基づき楽音信号を発
生する。音源回路8において複数チャンネルで楽音信号
を同時に発音させる構成としては、1つの回路を時分割
で使用することによって複数の発音チャンネルを形成す
るようなものや、1つの発音チャンネルが1つの回路で
構成されるような形式のものであってもよい。また、音
源回路8における楽音信号発生方式はいかなるものを用
いてもよい。例えば、発生すべき楽音の音高に対応して
変化するアドレスデータに応じて波形メモリに記憶した
楽音波形サンプル値データを順次読み出すメモリ読み出
し方式(波形メモリ方式)、又は上記アドレスデータを
位相角パラメータデータとして所定の周波数変調演算を
実行して楽音波形サンプル値データを求めるFM方式、
あるいは上記アドレスデータを位相角パラメータデータ
として所定の振幅変調演算を実行して楽音波形サンプル
値データを求めるAM方式等の公知の方式を適宜採用し
てもよい。また、これらの方式以外にも、自然楽器の発
音原理を模したアルゴリズムにより楽音波形を合成する
物理モデル方式、基本波に複数の高調波を加算すること
で楽音波形を合成する高調波合成方式、特定のスペクト
ル分布を有するフォルマント波形を用いて楽音波形を合
成するフォルマント合成方式、VCO、VCF及びVC
Aを用いたアナログシンセサイザ方式等を採用してもよ
い。また、専用のハードウェアを用いて音源回路を構成
するものに限らず、DSPとマイクロプログラムを用い
て音源回路を構成するようにしてもよいし、CPUとソ
フトウェアのプログラムで音源回路を構成するようにし
てもよい。音源回路8から発生された楽音信号は、図示
しないアンプ及びスピーカからなるサウンドシステム1
Cを介して発音される。
【0015】次に、この発明に係る演奏情報分析装置及
びそれを用いた自動編曲装置の動作の一例を説明する。
図1は図2の電子楽器が演奏情報分析装置及びそれを用
いた自動編曲装置として動作する場合のフローチャート
の一例を示す図である。この電子楽器ではワーキングメ
モリ3に一時的に記憶されているメロディデータの曲構
造を分析し、その分析結果に基づいて演奏データメモリ
4から適当な伴奏パターンデータを読み出して、そのメ
ロディデータの伴奏データとして自動的に割り当てるよ
うになっている。以下、図1のフローチャートに従っ
て、この発明に係る電子楽器の動作例を説明する。CP
U1は最初のステップでMIDIデータからなるメロデ
ィデータをワーキングメモリ3内に取り込み記憶する。
このMIDIデータは例えばGUI(テンキー&キーボ
ード&各種スイッチ1A及びディスプレイ1B)や鍵盤
9などを用いて取り込んだり、図示していないCD−R
OMプレーヤやフロッピーディスクドライブ(FD
D)、公衆回線やMIDIなどの通信手段などを用いて
取り込んでもよい。CPU1はメロディデータの取り込
みが終了すると、今度は取り込んだメロディデータのテ
ンポを取り込む。なお、CPU1は取り込まれたMID
Iデータに基づいてテンポを分析してもよいし、ユーザ
がGUIを用いて入力するのを待ってもよい。また、メ
ロディデータ中にテンポを示す情報が含まれている場合
は、それを検出してもよい。CPU1はメロディデータ
及びテンポの入力が終了したので、入力したメロディデ
ータの曲構造を解析する処理(曲構造解析処理)を行
う。この曲構造解析処理の詳細については後述する。C
PU1は曲構造解析処理が終了したら、その解析結果に
基づいてメロディデータに適した伴奏パターンを割当て
る処理(伴奏パターン割当て処理)を行う。この伴奏パ
ターン割当て処理の詳細についても後述する。
【0016】図3は図1の曲構造解析処理の詳細例を示
すフローチャート図である。曲というものは、ある音符
の集合体から成り立っていると言えるが、これを時間方
向で見たとき、一般的に楽曲は自由気ままに音符を並べ
て作ったものではなく、構成を意識したものである。も
し、構成をもっていない自由気ままな曲を作った場合、
そのような曲は人間の感覚では理解しにくく覚えにくい
ものと判断され、あまり歓迎されないものとなる。故
に、作曲や編曲を行う側もそういう構成を意識しながら
曲を作り上げているのが現状である。ポピュラーな音楽
は特にこのような考えを基準に作られている。まず、曲
には、音色の違いによってその意味の違いを感じさせる
「主楽音の流れ」と呼ばれるものがある。この「主楽音
の流れ」は一般的な考えとして「イントロ」、「1
番」、「間奏」、「2番」、「エンディング」などとい
った語で表されるものである。例えば、ポピュラーソン
グの場合には特にヴォーカル部分を中心にして、「主楽
音の流れ」ができ上がっており、その他の楽音は「1
番」及び「2番」を引き立たせる役割をする場合が多
い。このような「主楽音の流れ」を構成する各区間を本
明細書中ではディビジョンと呼ぶことにする。主楽音の
代表的なボーカルに焦点をあてると、ディビジョンはさ
らにこれよりも小さなセクションと呼ばれる区間から構
成されている。もちろん、他の主楽音についても同様に
セクションは存在する。ここでセクションとは音楽の世
界で一般的にメロディラインを「A−A’−B−C」な
どで表示した場合の「A」とか「A’」とかで表される
区間のことであり、メロディ全体として起承転結といっ
た「情景や雰囲気の流れ」を作り出すことを目的とした
ものである。編曲者はこのセクションを見分け、セクシ
ョンが持つ情景や雰囲気を感じ取り、その情景や雰囲気
にあった伴奏を与えることによって編曲作業を行ってい
る。そういう意味では、このセクションを知らずしてメ
ロディにマッチした伴奏パターンを付与したり、楽器構
成を考えたりすることはできないと言える。さらに、
「A−A’−B−C」などで表される各セクションの内
部に着目すると、セクションはそれよりも小さなブロッ
クと呼ばれる区間で構成されている。ここでブロックと
は「響きの流れ」を意味するものである。このブロック
の基本長はだいたい4小節である。これは人間が響きを
追いかける上で感じる1つの単位長と考えられるからで
ある。もちろん、曲によっては、ブロックの基本長が小
節半であったり、5小節であったりすることはある。こ
のブロックは主にコードの進行に大きく関わるものであ
る。編曲者はこのブロック毎に適切なコードを探し出す
場合が多い。なお、曲によっては「情景や雰囲気の流
れ」表すセクションと「響きの流れ」を表すブロックが
だいたい同じ区間となる場合がある。すなわち、「A−
B−C」というセクションからなる曲が、4小節−4小
節−4小節という長さで進行し、その1つ1つがコード
進行のまとまりである場合にセクションとブロックは同
じ区間ということになる。さらに、ブロックの内部に着
目すると、このブロックはそれよりも小さなフレーズと
呼ばれる区間で構成されている。このフレーズとは「音
程の流れ」を意味するものであり、いわゆるメロディの
断片である。音楽は1つや2つの音では成り立たないも
のである。従って、メロディに応じた長さで音楽的な意
味を初めて感じ取れる最小の区間がこのフレーズという
ことになる。
【0017】図3の曲構造解析処理はメロディデータか
らディビジョン、セクション、ブロック、フレーズを検
出することによって、その曲の構造を解析するものであ
る。以下この曲構造解析処理の詳細について図3のステ
ップ順に説明する。 ステップ31:演奏データメモリ4に取り込まれたメロ
ディデータを音色、音符長に応じてディビジョンに分割
する。メロディデータをディビジョンに分割するために
は、メロディデータがどのように保存されていて、どの
ような情報を与えているかに応じて行われなくてはなら
ない。メロディデータの保存方法としては、次の3通り
がある。第1の保存方法はメロディデータが複数トラッ
クに分かれて保存してある場合であり、第2の保存方法
は楽音の変わり目やメロディの切れ目を示す情報が付加
されてメロディデータが1つのトラックに詰め込んで保
存してある場合であり、第3の保存方法は楽音の変わり
目もメロディの切れ目を示す情報も付加されずにメロデ
ィデータのみが1つのトラックに詰め込んである場合で
ある。
【0018】通常、メロディ主体で構成を検出するに
は、元となるメロディがどのような形で存在するかを特
定(想定)しておく必要があり、主旋律をとる楽音の違
い(イントロ、1番、間奏・・・)によって、完全に別
々のトラックか、2トラック程度に割り振って保存する
第1の保存方法にて保存するのが普通である。通常はメ
ロディデータを主メロディと副メロディの2つに分け、
別々のトラックに保存してある。主メロディとはその曲
のメインの楽音が受け持つメロディのことをいい、副メ
ロディとはメイン以外の楽音が受け持つメロディのこと
をいう。図4は一般的なメロディの保存方法である主メ
ロディと副メロディが2つのトラックに分かれて保存さ
れている場合の概念を示す図である。図では、主メロデ
ィがディビジョンの「1番」、「2番」の部分を受持
ち、副メロディが「イントロ」、「間奏」、「エンディ
ング」の部分を受け持っている。以下の説明では、図4
(A)のように2つのトラックに別々に主メロディと副
メロディの保存された、すわなち第1の保存方法で保存
されたメロディデータについて曲構造分析処理を行う場
合について説明する。
【0019】主メロディ及び副メロディを受け持ってい
る2つのトラック全体から休符データを検出し、その休
符データの長さを直前の音符長に加算する。これによっ
て、メロディデータの中から休符データを消去する。図
3ではこの処理のことを休符吸収と称している。この休
符吸収処理によって曲の先頭の休符データ以外は、メロ
ディデータの中には休符データが存在しなくなる。従っ
て、これ以降はメロディデータは音高(音程)データと
音符長データの2種類のデータから構成されることにな
るので、それに基づいて分析処理を行えばよい。なお、
一般的な曲データ(スタンダードMIDIファイルな
ど)は休符という概念を持たず、音が存在する場所にそ
の音を示す情報を持つだけのものが多い。このようなも
のについては、例えば、キーオフタイミングを次の音の
キーオンタイミングまで遅らせることにより音が存在し
ない期間を無くすようにすればよい。休符吸収処理が終
了したら、今度は主メロディを受け持っているトラック
に対して、最初の音符データを検出し、それを第1区間
の先頭データとする。次に最初の音符データ以降に存在
する音符データの中から、ある小節長以上の音符長を持
つ音符データを検出する。ここでは、例えば3小節以上
の音符長を検出することとする。一般的には3小節以上
の音符長を有する音符が存在することはまれであるが、
前述の休符吸収処理により、例えば本来は間奏部分のた
めに長い休符であったものが、長い音符になることがあ
る。ここでは、このような音符を検出するのである。音
符長が3小節以上の音符データが検出できたら、音符長
3小節以上の音符データの次の音符データを第2区間の
先頭データとする。そして、次に検出された音符データ
を第3区間の先頭データとする。以下、該当するトラッ
クの全ての音符データに対して同様の処理を行い、先頭
データの検出を行う。以上の処理を今度は副メロディを
受け持っているトラックに対して行う。このようにして
検出された先頭データが各トラックの楽音の切り替わり
部分となる。また、メロディデータの中に音色変更イベ
ント(一般的にはプログラムチェンジ)を検出したら、
そこを先頭データとしてもよい。この場合の先頭データ
もトラックの楽音の切り替わる部分となる。このように
して、メロディデータを複数のディビジョンに分割す
る。図4(B)には、このようにして検出された先頭位
置が示してある。先頭位置M1及びM2は主メロディに
おける楽音切り替わり部分であり、先頭位置S1〜S3
は副メロディにおける楽音切り替わり部分である。な
お、図4(A)及び(B)の点線部分は実線部分の最終
音符が継続している状態を示すものである。
【0020】ステップ32:メロディデータをグリッド
化する。すなわち、メロディデータの中から単位音符長
を検出し、小節の先頭を基準として検出された単位音符
長で各音符を分割する。ここで、単位音符長とは、メロ
ディデータの中で最も音符長の小さい音符データ又は付
点音符を音符の足し算として表した場合における最も音
符長の小さい音符データのいずれか小さいものとする。
なお、単位音符長はメロディデータの中から検出しても
よいし、8分音符長、16分音符長、32分音符長など
のような予め指定した音符長を用いてもよい。また、連
符を除外した中で単位音符長を検出してもよい。図4
(C)に示すようなサンプルメロディデータをグリッド
化すると、図4(D)に示すようなデータ構成になる。
図4(D)のデータ構成の中で「位置」にはグリッド化
されたアドレスが書き込まれる。「押鍵」にはそのグリ
ッドがキーオンに対応している場合には『1』が、そう
でない場合には『0』が書き込まれる。「音長」にはキ
ーオンされたその音がグリッド数でいくつ分に相当する
のかが、キーオンのあったグリッドのみに書き込まれて
いる。なお、一般的な曲データの最小分解能は例えば4
分音符当たり96などと、非常に細かい場合が多く、特
にリアルタイム記録した曲データにおいては、押鍵タイ
ミングが正規の拍タイミングと比べて若干前後すること
が多い。このため、グリッド化した時、本来の位置から
ずれた位置に、押鍵位置が来ることも考えられる。この
ような不都合をなくすために、あらかじめメロディデー
タに対して、単位音符長にてクオンタイズしておくとよ
い。「音高」はキーオンされたその音のノート番号が書
き込まれる。「小節」にはそのグリッドが1小節に対し
てどれくらいの長さであるかが書き込まれる。例えば、
8分音符がそのメロディデータの単位音符長であったと
すると、4拍子の場合は1小節を8等分することによっ
てグリッド化でき、3拍子の場合は1小節を6等分する
ことによってグリッド化することができる。従って、8
分音符でグリッド化した場合の1グリッドが1小節に占
める長さは、1小節の長さを1とすれば、4拍子で0.
125となり、3拍子で0.167となる。16分音符
でグリッド化した場合の1グリッドが1小節に占める長
さは、4拍子で約0.063となり、3拍子で約0.0
83となる。32分音符でグリッド化した場合の1グリ
ッドが1小節に占める長さは、4拍子で約0.031と
なり、3拍子で約0.042となる。変拍子が含まれた
メロディの場合は、変拍子位置において1グリッドが1
小節に占める長さは変化する。
【0021】このグリッド化は、キーオンの部分だけに
注目すると、実は音符の情報である音高データと音符長
を単に示しているに過ぎず、小節線を消した音符列とも
考えられる。また、グリッド化したことで、音符長の違
いを吸収し、かつ一般化及び簡素化したアルゴリズムで
メロディを分析することができるようになる。このこと
から、拍子を限定することなく、どのような拍子であっ
ても、所定の単位音符長を基準に分割することによって
実現することができる。また、メロディデータの途中か
ら拍子が変化した場合でも処理としては同じことを行え
ばよくなるので、メロディデータを図4(D)のような
グリッド化されたデータフォーマットで表すことがこれ
以降の処理を行う上でも最も望ましい。また、通常メロ
ディを分析する場合には、時間を単位として分析処理を
行ったり、小節を単位として分析処理を行ったりする。
時間は特別な場合を除きグリッド量と比例すると考えら
れるが、小節長はグリッド量からは判断できないものに
なっている。しかし、メロディ分析において、小節長を
用いた長さの判断はとても重要である。これは、人間の
感覚が小節長を自然に数える(感じ取る)機能をもって
いるからである。従って、図4(D)のようにメロディ
データをグリッド化することによって、小節長の計算を
する際でも「小節」に書き込まれた値を順次累計してい
ったその累計値がそのまま小節数となるため、拍子が変
わった場合のその変わり目を含んだ領域でも有効とな
り、処理の簡素化及び一般化を容易に実現することがで
きる。なお、ステップ31のディビジョン分割処理をス
テップ32のグリッド化処理の後に行ってもよいことは
いうまでもない。
【0022】ステップ33:グリッド化された各ディビ
ジョンの音符データを、パターンマッチング法を用いて
フレーズに分割する。このフレーズ分割処理の詳細は本
願発明者が先に出願した特願平7−123105号に記
載してあるので、ここでは簡単に説明する。まず、所定
のディビジョンを構成する音符データの音符長に基づい
て平均音符長(音符長の平均値)を算出する。算出した
平均音符長に所定係数K(1以上の値であり、例えば
2)を乗じる。ディビジョンを構成する音符データの音
符長の中から乗算値以上のものが存在する場合には、そ
の音符データの後にフレーズの区切りを示す区切りデー
タを挿入する。区切りデータによって区切られたフレー
ズに順番に仮フレーズ番号を付与する。この仮フレーズ
番号は後の処理で削除されたり変更されたりする。今度
は、仮フレーズ番号の付与された各フレーズ毎に平均音
符長を算出する。算出した平均音符長に所定係数L(1
以上の値であり、例えば2)を乗じる。フレーズの最後
の音符データの音符長すなわち終端音符長がこの乗算値
よりも小さい場合には、そのフレーズの最終音符データ
の後に挿入されているフレーズ区切りデータを削除す
る。終端音符長が乗算値以上の場合には何もしない。こ
のようなフレーズ削除処理を全フレーズに対して行う。
【0023】フレーズ区切りデータを削除する処理が終
了したら、あるフレーズとメロディ同一の部分を含む他
のフレーズを検出し、検出されたフレーズにおいてメロ
ディ同一部分以外の残部がフレーズの最小長さ(例えば
2拍)以上かどうかを判定し、この判定結果が肯定的で
あればメロディ同一部とその残部とをそれぞれ別のフレ
ーズとして分割する。また、判定結果が否定的であれば
アウフタクト(弱起)と判断し、分割しない。同様に、
フレーズ内でメロディが同一となる小節をパターンマッ
チング法によって検出し、検出されたメロディ同一の小
節をそれぞれフレーズとして分割する。なお、メロディ
の同一性を判断するには、時間軸方向の単位音符長(例
えば8分音符長)毎に音高一致を検出するパターンマッ
チング法(これも特願平7−123105号に記載され
ている。)を用いる。音符長に応じて機械的に挿入され
たフレーズ区切りデータはパターンマッチング法によっ
て人間のフレーズ感に最も近い形のフレーズとして分割
されるようになる。
【0024】ステップ34:前記ステップ33の処理に
よって得られた各フレーズの終止感度数を終止感度数テ
ーブルに基づいて算出する。前記ステップ33の処理に
よって得られたフレーズは、人間の感覚に合った音符の
集合であり、1つの響きの中で展開されているものであ
る。よって、このフレーズの途中から響きが変わったよ
うに人間が聞き取ることはまずないといっていい。ま
た、上述のフレーズ分割処理によって得られたフレーズ
は響きの流れが止まったように感じる可能性を持つ部分
を全て検出したものである。メロディが持つ響きは、あ
る区間を決めないと決まらないものである。しかしなが
ら、区間を決める方法が響きを中心とした情報に基づい
ているため、どちらを先に決めるかは困難である。そこ
で、前記ステップ33では、音符長やメロディの繰り返
しを利用することよって、メロディデータを所定の区間
(フレーズ)に区切り、その部分を響きの切れ目の候補
とした。このようにして得られたフレーズの切れ目を響
きの切れ目の候補として考えた場合、その中から実際に
響きが途切れるというような感触を人間が感じると思わ
れる部分すなわちブロックを、主にフレーズの終止感度
数に基づいて検出する。このステップ34ではブロック
を検出する前に前記ステップ33によって得られた各フ
レーズの終止感度数を求めている。
【0025】メロディはそれ自体が終止感という一時的
にメロディの進行が止まったように感じる部分を持って
いる。すなわち、メロディは安定状態/不安定状態とい
う複数段階のレベルを揺れながら進行しているものなの
で、この安定/不安定があるパターンで発生した場合に
人間は終止感を感じる。この安定/不安定の感じをフレ
ーズ毎に数値化することによって、フレーズの終止感度
数を算出することができる。以下、フレーズの終止感度
数の算出方法について説明する。まず、2つの音の進行
がどれくらいの終止感度数となるのかを示した終止感度
数テーブルを作成する。この終止感度数テーブルを作成
する方法としては、第1に人間が2つの音を聞いて、終
止感があるかないかを例えば100点満点で評価し、そ
れを12音×12音分特定するという経験則に基づく方
法と、理論的に算出する方法とがある。以下、理論的に
終止感度数テーブルを作成する方法について説明する。
まず、ある1つの音について「落ち着く音」であるかど
うかを見分ける必要がある。この「落ち着く音」とは、
その曲の響きに対してしっくりくるかどうか、すなわち
「調和」するかどうかということである。一方、「曲の
響き」とは、ある関係を持った音の集合体であり、音楽
的にいえば「調」である。従って、ある音が「落ち着く
音」であるかどうかは、その「調」に調和する音である
かどうかによって判断できる。ある音がその「調」にど
のくらい調和しているかを示す調和度数を算出すること
によって、終止感度数を算出することができる。
【0026】通常、音響学的には調和とは倍音の一致で
あるといわれている。しかしながら、倍音関係がわずか
にずれた2つの音の調和度数をどのようにして算出すれ
ばよいかが問題となる。これを解決するために「プロン
プとヘーベルの実験結果」を利用する。この実験結果は
それぞれ異なる周波数の音を人間が聴取した場合、その
非調和が唸りによるものであるとし、3半音の違いで一
番非調和の度合いが高くなるようなカーブを示してい
る。また、この実験結果の中には、2つの音の調和曲線
も示されている。この調和曲線において、曲線の最も突
起した部分が調の構成音に非常に近い結果を表してい
る。従って、ある音とある音との調和とは「唸りを考慮
に入れた倍音関係の一致」であり、調とは基音に対して
調和する音の集合であると言える。なお、この「プロン
プとヘーベルの実験結果」は、例えば日経サイエンス社
出版のジョン・R・ピアース著(村上陽一郎訳)「音楽
の科学クラシックからコンピュータ音楽まで」に詳しく
記載されている。この「プロンプとヘーベルの実験結
果」から、調との調和とは、調の基音との調和を意味
し、調和とは唸りを考慮した倍音同士の周波数軸での重
なり具合であることが理解される。すなわち、ある調に
おいての各音の調和度数は、その基音との調和度数とい
うことになる。そして、「プロンプとヘーベルの実験結
果」の調和曲線がその調和度数を示している。
【0027】しかしながら、ここで問題となることがあ
る。それは「プロンプとヘーベルの実験結果」が、例え
ば「C5」の音に対しては、「C♯5」、「D5」、
「D♯5」、「E5」・・・というように高音側の音に
関する調和だけを示しており、「C5」の音に対する
「B4」、「A♯4」、「A3」・・・というような低
音側の音に関する調和を示していないことである。そこ
で、ここでは同様にして低音側の調和度数を算出してい
る。その結果、例えばハ長調における、ある音に対して
高い音の調和度数は、図5(A)のようになり、ある音
に対して低い音の調和度数は、図5(B)のようにな
る。これらの数値は、ある調における上昇/下降別の調
和度数である。図5(A)の「ある音に対して高い音の
調和度数」は高い音から基準となるC4の方向を向いた
場合の調和度数なので、下降の場合の調和度数を示し、
逆に図5(B)の「ある音に対して低い音の調和度数」
は低い音から基準となるC4の方向を向いた場合、つま
り上昇の場合の調和度数を示すことになる。ここで、終
止とは、あくまで進行の元に発生する現象であり、1つ
の音では終止感は生じない。そこで、図5の調和度数を
2つの音の進行について考えると、安定感のある音同士
が連続すると、そこに終止感を感じやすくなり、終止感
度数は大きくなる。そこで、図5の調和度数を2つの音
の進行とした場合の終止感度数を、上昇の場合と下降の
場合とに分けて別々に算出し、それを終止感度数テーブ
ルとする。なお、終止感度数の算出は前の音の調和度数
と後の音の調和度数を乗算することによって得られる。
例えば、E3からA3へと上昇する場合は図5(B)の
度数を用い、97(E3)×89(A3)=86の演算
により、EからAへ上昇する時の終止感度数が決定され
る。このようにして得られた終止感度数テーブルを図6
に示す。図6(A)は上昇の場合の終止感度数であり、
図6(B)は下降の場合の終止感度数である。この終止
感度数テーブルは縦横どちらを先にみても後にみても結
果は同じである。なお、ここでは単純に乗算にて終止感
度数を算出する場合について説明したが、複雑な方程式
を用いてもよいことはいうまでもない。また、経験則に
基づいて得られた終止感度数テーブルの値と図6の終止
感度数テーブルの値とをそれぞれ加算したり、乗算した
りしてもよいことはいうまでもない。
【0028】このようにして得られた図6のような終止
感度数テーブルに従ってフレーズの終止感度数がどのよ
うにして算出されるのかを図7を用いて説明する。な
お、図7において、サンプルフレーズは図4(C)のサ
ンプルメロディデータに対応している。従って、この時
点では既に8分音符でグリッド化されていることにな
る。各音符の下側にはその音高に対応したノート番号が
示されている。まず、フレーズ内の最終音符の拡張を行
う。すなわち、最終音符の直前が同じ音高の音符の場
合、最終音符はその音符データの音符長を取り込んだ形
で扱うことにする。この処理は、違う音高が見つかるま
でさかのぼって行う。ここで取り込んだ形で扱うという
ことは、最終音符のスタート位置が取り込まれた音符の
中の最先のもののスタート位置となることを意味する。
すなわち、最終音符の音符長に直前の音符データの音符
長を順次足し込んでいき、最終音符の音符長を見かけ上
長くすることである。図7の場合はサンプルフレーズの
最終音符はスラーで結ばれた音高「67」の4分音符と
2分音符であり、この4分音符の直前は異なる音高「6
5」の8分音符なので、ここではフレーズの最終音符の
拡張は行われないことになる。次に、最終音符の先頭グ
リッドを基準にして、このグリッドよりも前に存在する
所定数のグリッドの音符から最終音符に至る2つの音高
の進行状態を検出する。ここでは8グリッド分の音符に
対してそれぞれ2つの音高の進行状態を検出する。検出
された2つの音高の進行状態が図7の「進行」の欄に示
されている。この「進行」の欄では右側に最終音符の音
高「67」が示され、左側に8グリッド前に逆上った場
合の各グリッドの音高が示されている。
【0029】検出された2つの音高の進行状態の中の音
高情報からオクターブ情報を削除する。すなわち、各グ
リッドの音高情報はオクターブ情報を含むものなので、
この情報を削除し音階の音名情報(例えば、C,D,E
など)に基づいた進行状態に変換する。変換された音名
情報の進行状態は図7の「音階」の欄に示されている。
このようにして得られた2つの音名情報の進行状態に基
づいて、音高が上昇しているのか、下降しているのか、
又は同じなのかを調べる。上昇の場合には「UP」の文
字が、下降の場合には「DN」の文字が、同じ音高の場
合には「=」がそれぞれ図7の「上下」の欄に示されて
いる。なお、図7では下降の場合が存在しないので、
「DN」は示されていない。検出された各音名情報をC
を主音とする調の音名に変換する。例えば、G長調の場
合の音名C,Eはそれぞれ音名F,Aに変換する。メロ
ディデータの調の検出は、公知の調検出手法(例えば、
特開昭63−80299号公報参照)を適用すればよ
い。なお、図7におけるサンプルフレーズは、もともと
C長調であるので、ここでは音名変換は行わない。音名
の進行状態が上昇なのか下降なのかに応じて、図6の上
昇又は下降の終止感度数テーブルを選択し、変換された
2つの音名を選択された終止感度数テーブルに当てはめ
て、その終止感度数を読み出す。なお、進行状態が同じ
場合には上昇の場合も下降の場合も終止感度数は「10
0」となる。なお、進行状態が同じ場合、上昇と下降の
各終止感度数の平均値を用いてもよい。このようにして
テーブル変換された各進行状態の終止感度数は図7の
「終止感」の欄に示されている。
【0030】最終音符からの距離に応じた重み付けを行
う。すなわち、最終音符に至るまでの距離(すなわちグ
リッド数又は時間)が大きいほど、終止感に与える影響
は小さくなるので、それに応じた重み付けを行う。ここ
では、グリッド数で「1」の距離だけ離れている場合の
重みを「8」とし、グリッド数で「8」の距離だけ離れ
ている場合の重みを「1」とするような直線的な重み付
けを行っている。この重みは図7の「重み」の欄に示さ
れている。なお、この重み付けは一例であって、他の様
々な重み付けを行ってもよいことはいうまでもない。例
えば、グリッド数で離れるに従って指数関数的に重みが
小さくなるようにしてもよいし、それ以外の非線型的な
重み付けを行ってもよい。このように重み付けを行った
結果の各進行状態における値が図7の「点数」の欄に示
されている。この「点数」の欄の各値を合計し、その合
計値に最終音符の音符長に対応した重み付けを行うこと
によって、最終的にフレーズの終止感度数が算出され
る。この最終音符の音符長に応じて重み付けを行うの
は、最終音符の音符長が長い場合に終止感度数の低い2
音進行で一旦終止したとしても、最終音符の継続時間に
従って人間はその終止感を徐々に感じるからである。ま
た、最終音符の音符長を取り込んだ形で表示する方が他
のフレーズの最終音の終止感度数と比較する上での参考
となるからである。図7のサンプルフレーズの場合、最
終音符の音符長はグリッド数で6個分なので、図7の点
数の合計値「3332」にグリッド数6を乗じた結果の
乗算値「19992」が図7のサンプルフレーズの終止
感度数となる。なお、上述のような一連の処理によって
算出された各フレーズの終止感度数の最大値を100と
して他のフレーズの終止感度数を正規化してもよい。ま
た、C調の終止感度数テーブルのみを用意し、フレーズ
の音名をC調に変換することにより、終止感度数を求め
たが、調毎に終止感度数テーブルを用意し、フレーズの
調により、いずれか1つを選択して適用することで、フ
レーズの音名はそのままで終止感度数を求めるようにし
てもよい。
【0031】ステップ35:前記ステップ34で算出さ
れた各フレーズの終止感度数やパターンマッチング法及
びブロック最小長などに基づいて複数フレーズを結合し
てブロックを組み立てる。これまでの処理ではフレーズ
の切れ目を響きの切れ目の候補としてメロディデータを
フレーズに分割し、分割されたフレーズの終止感度数を
算出したので、今度はそのフレーズの中から実際に人間
が響きの途切れるような感触を感じる部分を探し出し、
そこをブロックの最終フレーズとすることによって、ブ
ロックを検出する。前記ステップ33で分割されたフレ
ーズはその終端部分で響きの途切れ感を多かれ少なかれ
もっている。その響きの途切れ感を数値で表したものが
前記ステップ34で算出した各フレーズの終止感度数で
ある。従って、最も単純にブロックを検出するために
は、ある絶対レベル以上の終止感度数を有するフレーズ
を検出したり、平均偏差に換算したあるレベル以上の終
止感度数を有するフレーズを検出したりして、検出され
たフレーズをブロックの最終フレーズとしてブロックの
組み立て(ブロック化)を行えばよい。しかしながら、
実際問題として、終止感度数の高いフレーズが短い区間
に並んで存在している場合には先のフレーズの終止感は
後のフレーズの終止感によって薄れてしまう傾向があ
る。逆に、全体的に低い終止感度数のフレーズが短い区
間に並んで存在している場合、先のフレーズの終止感度
数が低く、後のフレーズの終止感度数がこれよりも比較
的大きい場合には、絶対的な終止感度数は低くても終止
感が強調される傾向がある。また、終止感を人間が感じ
る上でもう1つ重要なことは、人間がメロディを終止/
緊張の連続的変化として聴いているときに、ある時に感
じられた終止感度数の程度によって、その後のある一定
時間の間は終止感を感じる力が薄れる。すなわち、人間
には、強い終止感を感じた後のある一定時間(数小節
間)は終止感を感じにくくなるという傾向がある。従っ
て、この実施の形態では、ある長さ以上の時間(実時間
又は小節区間)が経過しないと新たに高い終止感は感じ
得ないという人間の特性に着目し、その時間間隔を3小
節と設定した。このように3小節以上経過しないと新た
な終止感を感じないものとすることによって、必然的に
ブロックの最小長が3小節となる。この3小節のことを
ブロック最小長と呼ぶ。なお、この3小節という値は一
例であり、これ以上又は以下の値でもよいことはいうま
でもない。以下、ブロック最小長と終止感度数に基づい
てフレーズを順次結合していき、ブロックの組み立てを
行う。なお、この実施の形態ではこの他にも、前述のパ
ターンマッチング法を用いたり、キーオンイベントの間
隔などを参照しながらブロックの組み立てを行ってい
る。
【0032】図8は図4(B)の主メロディの中の先頭
位置M1から始まるディビジョンを構成するフレーズに
対応するものであり、図8(A)はステップ32〜ステ
ップ34の処理によって分割されたフレーズの先頭位置
M1から17個分のフレーズ情報、終止感度数及びブロ
ック先頭フラグFGを示し、図8(B)〜(D)はステ
ップ35のブロック化に対応したブロック先頭フラグF
Gの変化の様子を示し、図8(E)はステップ35のブ
ロック化によって最終的に組み立てられたブロックの範
囲を模式的に示すものである。図8(A)において、フ
レーズ情報は「フレーズ番号」、「先頭グリッド」、
「グリッド長」及び「小節長」の欄から構成される。
「フレーズ番号」の欄は先頭位置M1から順番に付与さ
れる番号、すなわちそのディビジョンにおけるアドレス
である。図では先頭位置M1から17個分のフレーズ番
号0〜16が示されている。「先頭グリッド」の欄は3
2分音符長でグリッド化された場合のフレーズの先頭グ
リッドのアドレスである。「グリッド長」の欄はそのフ
レーズの長さがグリッドで何個分に相当するのかを示す
ものである。従って、フレーズの先頭グリッドにそのフ
レーズのグリッド長を加算した値が次の先頭グリッドと
等しくなっている。「小節長」の欄は1小節の長さを1
00とした場合において、そのフレーズがどの程度の長
さであるかを示すものである。従って、この小節長が1
00以下の場合は1小節以下の長さと判断され、100
以上の場合は1小節以上の長さと判断される。なお、こ
こでは、32分音符でグリッド化されているので、1グ
リッドが1小節に占める長さは、4拍子で約0.031
である。従って、小節長は0.031×100にグリッ
ド長の値を乗算することによって得られる。また、「終
止感度数」の欄はステップ34の処理によって算出され
た終止感度数を用いて、そのディビジョンを構成するフ
レーズの終止感度数の最大値を100として他のフレー
ズの終止感度数を正規化して表示したものである。「ブ
ロック先頭フラグFG」の欄はブロックの先頭かどうか
を示すものであり、「−1」、「0」又は「1」のいず
れかの値がセットされる。なお、初期状態では全てのブ
ロック先頭フラグFGには「0」が設定され、後述の判
定処理によってブロックの先頭と成り得る場合には
「1」が設定され、ブロックの先頭に成り得ない場合に
は「−1」が設定されるようになっている。但し、ブロ
ック先頭フラグFGが一旦「1」又は「−1」に設定さ
れた場合には、その後の処理ではその部分には「1」や
「−1」は書き込めないようになっている。
【0033】以下、フレーズをどのようにしてブロック
に組み立てて行くのか、すなわちブロック先頭フラグF
Gにどのようにして「1」又は「−1」を設定していく
のか、説明する。なお、このブロック先頭フラグFGに
「1」又は「−1」を設定する処理は以下の第1のフラ
グ設定処理から第8のフラグ設定処理によって行われ
る。ただし、これらの処理の前にディビジョンの最初の
フレーズのブロック先頭フラグFGには図8(A)のよ
うに無条件に「1」が設定され、それ以後の3小節以内
のフレーズ番号1及び2のブロック先頭フラグFGに
「−1」が設定されている。フレーズ番号1及び2のブ
ロック先頭フラグFGに「−1」を設定するのは、最小
単位小節数(例えば3小節)以下のブロックを作らない
ためである。まず、第1のフラグ設定処理では、所定区
間、例えば前後3小節以内における各フレーズの終止感
度数の最も終止感度数の低いフレーズの次のフレーズの
ブロック先頭フラグFGに「−1」を設定する。すなわ
ち、所定区間内で終止感度数が最も低いということは、
そのフレーズは次のフレーズと結合する可能性が高いこ
とを意味するので、次のフレーズはブロック先頭に成り
得ない。従って、その終止感度数の低いフレーズの結合
対象である次のフレーズのブロック先頭フラグFGに
「−1」が設定される。所定区間が前後3小節以内とい
うことは、小節長の合計が600以下のフレーズの組み
合わせでなければならない。図8ではフレーズ番号0〜
6の小節長の合計が「558」なので、このフレーズ番
号0〜6の中で最も終止感度数の低いフレーズ番号3の
次のフレーズ番号4のブロック先頭フラグFGに「−
1」が設定される。次に小節長の合計が600以下のフ
レーズの組み合わせフレーズ番号1〜6、フレーズ番号
2〜8、フレーズ番号3〜8について同様の判定を行っ
ても最も終止感度数の低いのはフレーズ番号3である。
従って、次のフレーズの組み合わせとなるフレーズ番号
4〜10の中で最も終止感度数の低いフレーズ番号8の
次のフレーズ番号9のブロック先頭フラグFGに「−
1」が設定される。以下同様にして、フレーズ番号12
及び15のブロック先頭フラグFGに「−1」が設定さ
れる。このようにして「−1」の設定されたブロック先
頭フラグFGの様子が図8(B)に示されている。
【0034】次に、第2のフラグ設定処理では、前述の
パターンマッチング法によって、ディビジョンの先頭か
ら所定範囲(例えば3小節分)のメロディデータと一致
度の高い(例えば70パーセント以上の)フレーズを検
出し、その検出結果に基づいてブロック先頭フラグFG
に「1」及び「−1」を設定する。一致度が高いという
ことは、同じメロディに聞こえる可能性が高いというこ
とを意味するので、同じメロディだと判断し、そのフレ
ーズ番号のブロック先頭フラグFGに「1」を設定す
る。そして、このブロック先頭フラグFGに「1」の設
定されたフレーズの先頭から前後3小節以内にフレーズ
の先頭が存在する場合には、そのフレーズのブロック先
頭フラグFGに「−1」を設定する。これは、前述と同
様に最小単位小節数(例えば3小節)以下のブロックを
作らないためである。図8では、各フレーズの小節長は
1小節に満たないものがほとんどなので、対象となるフ
レーズにそれ以降のフレーズを順次加え合わせて、3小
節分を合成し、ディビジョンの先頭から3小節分(フレ
ーズ番号0〜4を加え合わせたもの)とこれ以降に生成
された3小節分とを順次パターンマッチング法にて検出
する。その結果、図8ではフレーズ番号5のフレーズを
先頭とするフレーズ番号5〜8の3小節がディビジョン
の先頭から3小節に対して一致する度合いすなわち一致
度が80パーセントであり、フレーズ番号14のフレー
ズを先頭とするフレーズ番号15〜16の3小節がディ
ビジョンの先頭から3小節に対して一致する度合いすな
わち一致度が75パーセントであったとする。この結
果、そのフレーズ番号5のブロック先頭フラグFGに
「1」が設定され、それ以前の3小節以内のフレーズ番
号2〜4及びそれ以後の3小節以内のフレーズ番号6及
び7のブロック先頭フラグFGに「−1」が設定され
る。また、フレーズ番号14のブロック先頭フラグFG
に「1」が設定され、それ以前の3小節以内のフレーズ
番号12,13及びそれ以後の3小節以内のフレーズ番
号15,16のブロック先頭フラグFGに「−1」が設
定される。なお、フレーズ番号2及び4には既に「−
1」が設定されているので、今回のフラグ設定処理では
フレーズ番号3,6,7のブロック先頭フラグFGに
「−1」が設定される。このようにして「1」及び「−
1」の設定されたブロック先頭フラグFGの様子が図8
(C)に示されている。
【0035】第3のフラグ設定処理では、フレーズの最
終音符の中からキーオンイベントの間隔が長い箇所を検
出し、その検出結果に基づいてブロック先頭フラグFG
に「1」、「−1」を設定する。キーオンイベントの間
隔が長いということは、その音符の音符長が長いことを
意味するので、各フレーズの最終音符の前後所定範囲
(例えば1〜3小節)の平均音符長を算出し、最終音符
の音符長がその平均音符長よりも所定レベル以上の場合
には、その最終音符はメロディを中断するだけの長さを
持つと判断し、その最終音符の後に存在するフレーズ番
号のブロック先頭フラグFGに「1」を設定する。ま
た、「1」の設定されたフレーズと同じメロディをパタ
ーンマッチング法によって検出し、そのブロック先頭フ
ラグFGにも「1」を設定する。そして、このブロック
先頭フラグFGに「1」の設定されたフレーズの先頭か
ら前後3小節以内にフレーズの先頭が存在する場合に
は、そのフレーズのブロック先頭フラグFGに「−1」
を設定する。これは、前述と同様に最小単位小節数(例
えば3小節)以下のブロックを作らないためである。図
8ではフレーズ番号9の最終音符の音符長が平均音符長
よりも所定レベル以上であったと仮定する。すると、そ
のフレーズ番号9の次のフレーズ番号10のブロック先
頭フラグFGに「1」が設定され、それ以前の3小節以
内のフレーズ番号7〜9及びそれ以後の3小節以内のフ
レーズ番号11,12のブロック先頭フラグFGに「−
1」が設定される。なお、フレーズ番号7、9及び12
には前のフラグ設定処理で既に「−1」が設定されてい
るので、今回のフラグ設定処理ではフレーズ番号8,1
1のブロック先頭フラグFGに「−1」が設定される。
このようにして「1」及び「−1」の設定されたブロッ
ク先頭フラグFGの様子が図8(D)に示されている。
【0036】第4のフラグ設定処理では、前述のパター
ンマッチング法を用いて、各フレーズの先頭から所定範
囲(例えば3小節分)のメロディデータと一致度の高い
(例えば70パーセント以上の)フレーズを検出し、そ
の検出結果に基づいてブロック先頭フラグFGに
「1」、「−1」を設定する。上述の第2のフラグ設定
処理では、ディビジョンの先頭から所定範囲のメロディ
データと一致度の高いフレーズを検出したが、ここでは
ディビジョンの先頭以外の任意のフレーズの先頭から所
定範囲(3小節分)のメロディデータと一致度の高いフ
レーズを検出し、検出された両フレーズの先頭位置が小
節長で3小節以上離れている場合には両フレーズのブロ
ック先頭フラグFGに「1」を設定し、両フレーズの先
頭位置が3小節以上離れていない場合には先のフレーズ
のブロック先頭フラグFGに「1」を設定し、後のフレ
ーズのブロック先頭フラグFGには「−1」を設定す
る。そして、このブロック先頭フラグFGに「1」の設
定されたフレーズの先頭から前後3小節以内にフレーズ
の先頭が存在する場合には、そのフレーズのブロック先
頭フラグFGに「−1」を設定する。これも、前述と同
様に最小単位小節数(例えば3小節)以下のブロックを
作らないためである。図8では第4のフラグ設定処理に
よってメロディの一致するフレーズは検出されなかった
ものとする。
【0037】第5のフラグ設定処理では、前述のパター
ンマッチング法を用いて、各フレーズの先頭から所定範
囲(例えば3小節分)のメロディデータを移調し、その
移調したものと一致度の高い(例えば70パーセント以
上の)フレーズを検出し、その検出結果に基づいてブロ
ック先頭フラグFGに「1」、「−1」を設定する。上
述の第4のフラグ設定処理では、メロディデータの音高
同士を比較して一致度を算出したが、ここでは移調した
場合におけるメロディデータの一致度を算出し、以後第
4のフラグ設定処理と同様にして「1」、「−1」を設
定する。ここで、移調する方法としては、直前の音符デ
ータの音高に対する音高差を順次算出して音高差のデー
タ列に変換する方法と、先頭の音符データの音高に対す
る音高差を順次算出して音高差のデータ列に変換する方
法との2通りを行う。図8では第5のフラグ設定処理に
よって音高差のデータ列の一致するフレーズは検出され
なかったものとする。第6のフラグ設定処理では、メロ
ディデータをある音符データを基準とした度数のデータ
列に変換し、変換されたものと一致度の高いフレーズを
検出し、その検出結果に基づいてブロック先頭フラグF
Gに「1」、「−1」を設定する。すなわち、上述の第
5のフラグ設定処理ではメロディデータをある音符デー
タの音高を基準とした音高差のデータ列に変換してから
一致度を算出しているが、ここではメロディデータをあ
る音符データを基準とした度数のデータ列に変換してか
ら一致度を算出するようにした。ここで、度数のデータ
列に変換する方法としては、直前の音符データを基準と
した度数を順次算出する方法と、先頭の音符データを基
準とした度数を順次算出する方法との2通りで行う。図
8では第5のフラグ設定処理によって度数列の一致する
フレーズは検出されなかったものとする。
【0038】第7のフラグ設定処理では、先頭部分のメ
ロディが同じで、互いに長さの異なるブロック同士を検
出し、その検出結果に基づいてブロック先頭フラグFG
に「1」、「−1」を設定する。すなわち、前述の第1
から第6までのフラグ設定処理の結果、ブロック先頭フ
ラグFGに「1」の設定されたフレーズから、次のブロ
ック先頭フラグFGに「1」の設定されたフレーズまで
が1つのブロックであると暫定的に考えられるので、こ
のような暫定的なブロックの中からパターンマッチング
法を用いて一致度の高いブロック同士を検出する。検出
された2つのブロックの長さがそれぞれ異なる場合に
は、長い方のブロックは短いブロックの後に他のブロッ
クが付加しているという考え方ができる。そこで、検出
された2つのブロック長を比較し、長いブロックの中か
ら短いブロックの最後尾のフレーズに対応するものを検
出する。検出されたフレーズの終止感度数が所定のしき
い値(そのフレーズの前後3小節内に存在するフレーズ
の終止感度数の平均値)よりも大きいかどうかを判断す
る。この判断の結果が肯定的な場合には、今度は長いブ
ロックから短いブロックを除去した残りの部分の長さが
ブロックになり得る長さ(例えば3小節分)だけ存在す
るかどうかを判断する。そして、この判断の結果が肯定
的な場合には、残りの部分の先頭のフレーズのブロック
先頭フラグFGに「1」を設定する。そして、ブロック
先頭フラグFGに「1」の設定されたフレーズの先頭か
ら前後3小節以内にフレーズの先頭が存在する場合に
は、そのフレーズのブロック先頭フラグFGに「−1」
を設定する。一方、検出されたフレーズの終止感度数が
所定のしきい値以下の場合や残りの部分の長さがブロッ
クとして扱えない場合には何もしない。図8では第7の
フラグ設定処理によってメロディの一致するブロックは
検出されなかったものとする。
【0039】第8のフラグ設定処理では、ステップ34
で求められた終止感度数を用いて最後のブロック化を行
う。すなわち、第1から第7までの処理では終止感度数
の低い部分や非常に長い音符やメロディの繰り返し感に
よってブロック先頭フラグFGに「1」を設定したが、
これらの一連のフラグ設定処理によって「1」又は「−
1」の設定されなかったフレーズについては終止感度数
とその変化の割合に基づいて判断する。まず、第1から
第7までの一連のフラグ設定処理によって、ブロック先
頭フラグFGに「1」が設定されたフレーズから、次の
ブロック先頭フラグFGに「1」が設定されたフレーズ
までが1つのブロックであると暫定的に考えられるか
ら、その暫定的な1つのブロックを構成する複数フレー
ズの中にブロック先頭フラグFGが初期値「0」のまま
であるフレーズが存在するかどうかを検出する。暫定的
なブロックを構成する複数フレーズの中に初期値「0」
のフレーズが存在しない場合には、そのブロック化は終
了したことになるので、次の暫定的なブロックについて
初期値「0」のフレーズが存在するかどうかを検出す
る。
【0040】検出の結果、暫定的なブロックを構成する
フレーズの中に初期値「0」のフレーズが存在する場合
には、そのフレーズのブロック先頭フラグFGに「1」
又は「−1」を設定しなければならない。そこで、その
ブロック内に初期値「0」のフレーズが幾つ存在するの
か検出する。初期値「0」のフレーズが1つの場合には
そのフレーズのブロック先頭フラグFGに「1」を設定
する。初期値「0」のフレーズが複数の場合には、次の
ようにしてそのフレーズのブロック先頭フラグFGに
「1」又は「−1」を設定する。まず、そのブロック内
で最初に現れる初期値「0」のフレーズ(第1番目のフ
レーズ)について、そのフレーズの先頭終止感度数(す
なわち、初期値「0」のフレーズの直前フレーズの終止
感度数)がその前後3小節以内に存在するフレーズの先
頭終止感度数の平均値よりも大きいかどうかを判断し、
肯定的な(大きい)場合にはその第1番目のフレーズの
ブロック先頭フラグFGに「1」を設定し、そのフレー
ズの先頭から前後3小節以内に初期値「0」のフレーズ
が存在する場合には、そのフレーズのブロック先頭フラ
グFGに「−1」を設定する。一方、否定的(大きくな
い)場合には次に現れる初期値「0」のフレーズ(第2
番目のフレーズ)に対して同様の処理を行う。この処理
を初期値「0」のフレーズ全部に対して行った結果、新
たにブロック先頭フラグFGに「1」が設定されたフレ
ーズが存在した場合には、以前として初期値「0」のま
まであるフレーズのブロック先頭フラグFGに「−1」
を設定する。また、この一連の処理を初期値「0」のフ
レーズ全部に対して行った結果、ブロック先頭フラグF
Gに「1」が新たに設定されなかった場合には第1番目
のフレーズのブロック先頭フラグFGに「1」を、残り
のフレーズのブロック先頭フラグFGに「−1」を無条
件に設定する。
【0041】このように初期値「0」のフレーズが複数
存在する場合に行う処理で重要なことは、その中で先頭
終止感度数が一番大きな部分をブロックの先頭とするの
ではなく、そのフレーズの前後における終止感度数の値
に応じてブロックの先頭を決定している点である。例え
ば、暫定的ブロック内に初期値「0」のフレーズが3つ
あり、それぞれの先頭終止感度数が順番に85、90、
75という具合に並んでいた場合、この先頭終止感度数
だけから判断すれば、先頭終止感度数90のフレーズが
ブロックの先頭となりそうだが、上述の処理では必ずし
もそうとはならない場合がある。なぜなら、先頭終止感
度数85のフレーズが前述の条件を満たし、それ以外の
フレーズが満たさないことがあるからである。なお、フ
レーズの先頭終止感度数(すなわち、初期値「0」のフ
レーズの直前フレーズの終止感度数のことである)がそ
の前後3小節以内に存在するフレーズの先頭終止感度数
の平均値よりも大きいかどうかで判断する場合について
説明したが、前3小節以内の終止感度数の平均値に対す
る偏差値がある所定値以上であるかどうかに基づいて判
断してもよい。上述の第1から第8までのフラグ設定処
理によって、全てのフレーズのブロック先頭フラグFG
に「1」又は「−1」の設定が完了すると、ディビジョ
ンのブロック化は終了したことになる。ここで、1つの
ブロックはブロック先頭フラグFGが「1」のところか
ら次のブロック先頭フラグFGが「1」であるフレーズ
の直前のフレーズまでとなる。なお、図8の場合には第
1から第3までのフラグ設定処理によって図8(D)の
ようにブロック化が終了したことになる。なお、図8
(E)は図8(D)のブロック先頭フラグFGによるブ
ロック化のようすを模式的に示したものである。なお、
第1から第8までのフラグ設定処理全てを行ってブロッ
ク化する場合について説明したが、これらのフラグ設定
処理を全て行わなくてもこれらのフラグ設定処理を適宜
組み合わせけブロック化を行うようにしてもよい。
【0042】ステップ36:前記ステップ35のブロッ
ク化処理によって得られたブロックをその類似度に基づ
いてセクションを組み立てる。前述したように、セクシ
ョンとは「雰囲気の流れ」を意味し、作曲家はそれを意
識して曲(メロディ)を作る。このようにして作成され
たメロディに対しては編曲者もその「雰囲気の流れ」に
沿ったアレンジを行う。この雰囲気の変化を促す要素
を、メロディそのものが持っているのは確かであるが、
それ以上に人間の生理的な欲求として「変化」を期待す
る。そういう面では、編曲者は変化の期待に答えるべく
アレンジを行う。そこで、問題となるのは、セクション
とは何を基準にして長さが決定されるのかということで
ある。人間であれば、雰囲気そのものを感じて変わり目
を知るということができるが、機械はそれができない。
従って、ブロック検出の場合と同じように、とりあえず
セクションに対応した区間を特定してやらなければなら
ない。その方法として、まず、ステップ35によって得
られたブロックの情報を用い、ブロックの1つ又は複数
の組み合わせを持って1つのセクションとすれば、響き
を中断させないセクション検出が可能となり、検出され
たセクションは人間の感覚に非常に近いものとなる。
【0043】以下、どのようにしてブロックを結合して
セクションを組み立てて行くのか、そのセクション化処
理について説明する。ブロックを結合することによって
セクションを構築する場合に問題となるのが、ブロック
をどの程度すなわちどれだけの数のブロックを結合する
かということである。仮に、セクションの長さが小節数
に強く依存すると考えた場合、ある所定の小節数(例え
ば4小節)となるようにブロックを組み立てることによ
って容易にセクションを構築することは可能である。し
かしながら、実際の曲は1つのセクションが4小節であ
ったり、次のセクションが8小節であったりして、小節
数だけでは定まらない場合が多い。では、実時間に基づ
いて考察すると、ゆっくりの曲はセクションとなり得る
小節数が少なく、早い曲は小節数が多いことに気づく。
人間は、セクションの切り替わりのタイミングを実時間
に重きをおいて感じている。すなわち、人間はメロディ
がある実時間を経過すると、その部分でセクションの変
わり目をそろそろ感じたいと欲求する可能性が高いとい
うことである。そこで、まず実時間のみから小節数を割
り出し、そこをセクションとすればよい。例えば、実時
間で15秒以上経過したら、そこでセクションが決定す
ると考える。テンポが一定であれば、15秒経過するた
めの小節数は容易に計算可能である。また、テンポのふ
らつく場合であっても、ある起点から15秒経過した場
所は容易に計算することができる。従って、この実時間
経過情報を利用してセクションの基本小節数又は起点か
らの小節数を特定して、セクションを組み立てることに
する。実際には、この実時間の経過に加えて、曲全体の
小節数や音符の出現頻度などによって微妙に変化する場
合がある。
【0044】まず、上述のように実時間で15秒経過し
た場合に1セクションを感じるものと仮定すると、テン
ポ一定の場合には1小節に費やす時間は一定となるの
で、1ブロックに費やす時間の平均値を求めればよい。
すなわち、ディビジョンの合計小節数に1小節に費やす
時間を乗じ、それをディビジョンを構成するブロック数
で除してやれば、1ブロックに費やす時間の平均値が求
められる。この1ブロックに費やす時間の平均値が仮に
9秒だとすると、15秒経過するためには2ブロックが
必要となる。従って、これ以降は1セクションが2ブロ
ックで構築されることになる。なお、上記15秒は一例
であり、他の値でもよい。又、テンポに応じて変化する
ような値でもよい。その前に、ディビジョンを構成する
全てのブロックについてパターンマッチング法を用いて
一致の度合いをチェックする。ここでは、移調を考慮し
た差分メロディにおける一致や調による度数差分メロデ
ィによる一致も考慮するものとする。
【0045】例えば、ステップ35の結果、ディビジョ
ンが全部で11個のブロックで構成されている場合、そ
のパターンマッチングの結果、次のようなブロックパタ
ーンBP1が得られたとする。 BP1=『a−a−b−a−b−c−d−a−b−c−
d』 次に『a−a』や『b−b』のように同じブロックが連
続する部分を探し出し、その部分を『aa』や『bb』
に書き換える。なお、『aa』や『bb』は長さに関し
ては2ブロック分とし、『a』と同等に扱うこととす
る。この結果、ブロックパターンBP1は次のようなブ
ロックパターンBP2になる。 BP2=『aa−b−a−b−c−d−a−b−c−
d』 繰り返しパターンを検出し、そこに暫定的なセクション
の区切りを設定する。そのためには、できるだけ大きい
まとまりとなるように繰り返しパターンを検出する。こ
の繰り返しパターン検出の結果、『a−b−c−d』が
検出されるので、その前後にセクションの区切り『/』
を設定することによって、上記ブロックパターンBP2
は次のブロックパターンBP3のようになる。 BP3=『aa−b/a−b−c−d/a−b−c−
d』 さらに、大きなまとまりを意識しつつ、内外で同じ繰り
返しパターンを検出する。すると、上記ブロックパター
ンBP3において、『aa−b』と『a−b−c−d』
の中の『a−b』という同じ繰り返しパターンが検出さ
れるので、その前後にセクションの区切り『/』を設定
する。この結果、上記ブロックパターンBP3は5つの
セクションから構築される次のようなブロックパターン
BP4のようになる。 BP4=『aa−b/a−b/c−d/a−b/c−
d』 このブロックパターンBP4に示されるように各セクシ
ョンの長さは2ブロックの2倍以下なので、これでセク
ションの組み立ては完了したことになる。このブロック
パターンBP4において、『aa−b』が『A』、『a
−b』が『A’』、『c−d』が『B』となるので、ブ
ロックパターンBP4は『A−A’−B−A’−B』の
ようなセクションパターンとして表されることになる。
【0046】別の例として、ステップ35の結果、ディ
ビジョンが全部で10個のブロックで構成された、次の
ようなブロックパターンBP5が得られたとする。 BP5=『a−b−c−d−a−b−c−d−e−f』 次に『a−a』や『b−b』のように同じブロックが連
続する部分を探し出し、その部分を『aa』や『bb』
に書き換える。このブロックパターンには同じブロック
が連続する部分は存在しない。次に、大きなまとまりの
繰り返しパターンを検出し、そこに暫定的なセクション
の区切りを設定する。ブロックパターンBP5の中に
『a−b−c−d』が検出されるので、その前後にセク
ションの区切り『/』を設定することによって、上記ブ
ロックパターンBP5は次のようなブロックパターンB
P6になる。 BP6=『a−b−c−d/a−b−c−d/e−f』 さらに、大きなまとまりを意識しつつ、内外で同じ繰り
返しパターンを検出しても、このブロックパターンBP
6において『a−b−c−d』と『e−f』の中には同
じ繰り返しパターンは存在しないので、ブロックパター
ンBP6のままとなる。ところが、このブロックパター
ンBP6において、セクションの長さが2ブロックの2
倍以上となる部分が存在するので、そのようなセクショ
ンを分割する必要がある。そこで、今度はブロック数に
基づいてセクションの区切りを設定する。すなわち、セ
クションを構成するブロック数が基準ブロック数(ここ
では2ブロック)の整数倍ならば、その基準ブロック数
毎に先頭から順番にセクションの区切り『/』を設定す
る。従って、ブロックパターンBP6は次のようなブロ
ックパターンBP7になり、セクションの組み立ては完
了したことになる。 BP7=『a−b/c−d/a−b/c−d/e−f』 このブロックパターンBP7において、『a−b』が
『A』、『c−d』が『B』、『e−f』が『C』とな
るので、ブロックパターンBP7は『A−B−A−B−
C』のようなセクションパターンとして表されることに
なる。
【0047】なお、セクションを構成するブロック数が
基準ブロック数の整数倍でない場合には次のようにすれ
ばよい。別の例として、ステップ35の結果、ディビジ
ョンが全部で12個のブロックで構成された、次のよう
なブロックパターンBP8が得られたとする。 BP8=『a−b−c−d−e−a−b−c−d−e−
f−g』 すると、前述と同様の書き換えや繰り返しパターンの検
出によって、このブロックパターンBP8は次のような
ブロックパターンBP9になる。 BP9=『a−b−c−d−e/a−b−c−d−e/
f−g』 次は、ブロック数に基づいてセクションの区切りを設定
する。ところが、セクションを構成するブロック数が基
準ブロック数(ここでは2ブロック)の整数倍ではな
い。このような場合には、そのセクション『a−b−c
−d−e』を 『a−b/c−d−e』 『a−b−c/d−e』 の2通りに暫定的に分け、その区切り部分における終止
感度数の高い方を採用する。この場合では前者の区切り
部分の方が終止感度数が高いとする。従って、上記ブロ
ックパターンBP9は次のようなブロックパターンBP
10になる。 BP10=『a−b/c−d−e/a−b/c−d−e
/f−g』 また、セクションを構成するブロック数が基準ブロック
数(ここでは2ブロック)の整数倍ではない、例えば
『a−b−c−d−e−f−g』のような場合には、そ
れを 『a−b/c−d/e−f−g』 『a−b/c−d−e/f−g』 『a−b−c/d−e/f−g』 の3通りに暫定的に分け、その区切り部分における終止
感度数の高い方を採用する。この場合は、最初の区切り
部分においてはブロックbとブロックcの終止感度数の
うち高い方を選択し、2番めの区切り部分においてはブ
ロックdとブロックeの終止感度数のうち高い方を選択
する。以上のステップ31〜36の曲構造解析処理を行
うことによって、メロディデータを所定のセクションに
分割することができる。
【0048】CPU1は図3のステップ31〜36の曲
構造解析処理が終了したら、その解析結果に基づいてメ
ロディデータに適した伴奏パターンの割当て処理を行
う。メロディ優先で曲を完成させる場合、曲全体を知る
ことは重要なことである。一般的に、曲というものは人
間の感情の起伏に似たものを持っているので、その起伏
に合わせて伴奏を付与する(すなわち編曲する)ことが
メロディを引き立たせる有力な手法となる。従って、メ
ロディ優先で曲を完成させる場合には、そのメロディの
持つ起伏、すなわちパワーの集中している部分を検出し
て、それに見合った伴奏を付与することになる。従っ
て、以下説明する伴奏パターン割当て処理では、曲構造
解析処理によって検出されたセクション毎にメロディの
持つパワーの度合いを算出し、複数の伴奏パターンのバ
リエーションの中からそのパワーに対応したものを選択
し、割り当てることによって、メロディの起伏に合致し
たアレンジを行うようにしている。図9は図1の伴奏パ
ターン割当て処理の詳細例を示すフローチャート図であ
る。この伴奏パターン割当て処理では図3の曲構造解析
処理によって検出されたセクションを利用して行う。こ
のセクションは「情景の流れ」を意識して検出したもの
であり、そのセクションは「ある感情」を表したものに
なっている。そこで、この伴奏パターン割当て処理では
メロディが持つパワーの度合い(以下「起伏度数」とす
る)をセクション毎に算出し、算出された起伏度数に基
づいて伴奏パターンの割当てを行っている。
【0049】以下、この伴奏パターン割当て処理の詳細
について図9のステップ順に説明する。 ステップ91:図3の曲構造解析処理によって検出され
た各セクションに対してパターンマッチング法による一
致度を算出し、算出された一致度が所定値(例えば70
パーセント)以上のものを検出し、それを同じセクショ
ンと見なして排除し、異なるタイプのセクションからな
るセクションパターンを検出する。例えば、各セクショ
ンが8小節で構成されたセクションパターン『A−A’
−B−C』の場合、『A』と『A’』が一致度70パー
セント以上であれば、『A’』は『A』と同じと見なさ
れ、そのセクションパターンから排除される。このとき
『A’』の8小節のセクション長は『A』に吸収され
る。従って、結果としてセクションパターンは『A(1
6小節)−B(8小節)−C(8小節)』の3タイプか
ら構成されることになる。
【0050】ステップ92〜97の処理は、前記ステッ
プ91で検出されたそれぞれ異なるタイプのセクション
に対して起伏度数を算出する処理である。なお、これ以
降の処理では、休符データを検出し、その休符データの
長さを直前の音符長に加算するという休符吸収処理の施
されたメロディデータに対して処理を行う。ただし、セ
クションの最終音の音長は、その直後の小節線までとす
る。これは、図4に示すように各ディビジョンの最終音
は3小節以上の音符長を有するので、これをそのまま扱
うと、最終音の音符長が長くなるからである。 ステップ92:各セクションにおける単位長あたりの音
符数の平均値を求める。「単位長当たりの音符数の平均
値」を求めるのは、音が細かいほど音のパワーが集中し
ているため、感情の高ぶりに対応すると考えられるから
である。すなわち、ステップ91によって検出されたそ
れぞれ異なるタイプのセクションに対して、そのセクシ
ョンを構成する音符数をそのセクション長で除すること
によって、各セクションにおける単位長あたりの音符数
の平均値を求める。なお、このようにして求めた平均値
の中から各ディビジョン内の最大値を100とし、他の
セクションに関してはそれに対する割合となるように正
規化処理を行う。 ステップ93:各セクションにおける音高の平均を求め
る。「音高の平均」を求めるのは、高い音ほど音のパワ
ーが高く、高い音が多いと感情の高ぶりに対応すると考
えられるからである。すなわち、ステップ91によって
検出されたそれぞれ異なるタイプのセクションに対し
て、そのセクションを構成する全ての音符の音高情報
(ノート情報)を合計し、それを音符数で除することに
よって、音高の平均値を求める。なお、この音高の平均
に対しても同様の正規化処理を行う。
【0051】ステップ94:各セクションにおける音高
の上下の方向転換率を求める。「音高の上下の方向転換
率」を求めるのは、上下の動きが少ないほどパワーが集
中しており、感情の高ぶりに対応すると考えられるから
である。すなわち、ステップ91によって検出されたそ
れぞれ異なるタイプのセクションに対して、そのセクシ
ョンのメロディの進行上において音高が上昇から下降に
転じる回数又は下降から上昇に転じる回数を累算してい
き、その累算回数を音符数で除することによって、方向
転換率を求める。なお、この音高の上下の方向転換率に
対しても同様に正規化処理を行う。 ステップ95:各セクションにおける音高の上下の平均
幅を求める。「音高の上下の平均幅」を求めるのは、音
高の変化幅が小さいほど、音のパワーが集中しており、
感情の高ぶりに対応すると考えられるからである。すな
わち、ステップ91によって検出されたそれぞれ異なる
タイプのセクションに対して、そのセクションのメロデ
ィの進行上において音高の差分を合計していき、それを
全音符数から1を引いた値で除することによって、音高
の上下の平均幅を求める。なお、この音高の上下の平均
幅に対しても同様の正規化処理を行う。 ステップ96:各セクションにおける音符長の変化率を
求める。「音符長の変化率」を求めるのは、変化率が小
さいほど音のパワーが集中しており、感情の高ぶりに対
応すると考えられるからである。すなわち、ステップ9
1によって検出されたそれぞれ異なるタイプのセクショ
ンに対して、そのセクションのメロディの進行上におい
て音符長が変化する回数を累算していき、その累算値を
全音符数から1を引いた値で除することによって、音符
長の変化率を求める。なお、この音符長の変化率に対し
ても同様の正規化処理を行う。 ステップ97:各セクションにおける起伏度数を求め
る。すなわち、ステップ92〜96の処理によって求め
られた各値に所定の重み付け(例えば、音符数の平均
値:2、音高の平均:2、音高の上下転換率:1、音高
の上下幅:1、音符長の変化率:1)を行い、その値を
合計することによってそのセクションの起伏度数を算出
する。このようにして求められたセクションの起伏度数
がそのセクションの「感情の高ぶり」を示すことにな
る。すなわち、この起伏度数が大きい場合には「感情の
高ぶり」も大きく、小さい場合には「感情の高ぶり」は
小さいとなる。なお、ステップ92〜96の処理以外に
も、そのセクションにおける強拍、弱拍の位置において
キーオンが出現する度数や、又は同じ形で展開するフレ
ーズの回数をそのセクション長で除したものを覚えやす
さを基準にした度数などを起伏度数の算出に利用しても
よい。また、上述のような各度数を適宜組み合わせても
よい。 ステップ98:前記ステップ97で算出された起伏度数
を基に、各セクション又はブロックに伴奏パターンを割
り当てる。以下、起伏度数を用いてどのようにして演奏
のバリエーションすなわち伴奏パターンを割当てるの
か、セクションの個数とタイプの個数が次のような3通
りの場合について説明する。なお、ここでは、バリエー
ションのタイプすなわち伴奏パターンが伴奏パターンP
TN1と伴奏パターンPTN2の2種類であり、伴奏パ
ターンPTN2の方が伴奏パターンPTN1に比べて
「高ぶる演奏」であり、伴奏パターンPTN1を約60
パーセント、伴奏パターンPTN2を約40パーセント
の割合となるように割り当てるものとする。ここで、6
0:40という比率としたのは次のような理由による。
通常の曲は「感情が高ぶる部分(サビ)」が半分以下、
かつ、0以上であることが多い、一例として、サビが曲
全体の40%を占めると考え、60:40とした。
【0052】まず、第1の場合として、対象区間(ディ
ビジョン)が複数のセクション及び複数のタイプで構成
されている場合について説明する。例えば、ステップ9
1によって検出されたそれぞれ異なるタイプのセクショ
ンパターンが『A(16小節)−B(8小節)−C(8
小節)』の3タイプから構成されている場合に、ステッ
プ92〜96の処理によって各タイプの起伏度数が図1
0のように算出されたとする。すなわちタイプA(16
小節長)の起伏度数は「483」、タイプB(8小節
長)の起伏度数は「328」、タイプC(8小節長)の
起伏度数は「739」であったとする。これらの各セク
ションを起伏度数の大きい順番に並べると、『C(8小
節)』→『A(16小節)』→『B(8小節)』とな
る。起伏度数の最も大きいセクション『C(8小節)』
に無条件に伴奏パターンPTN2が割り当てられる。こ
の時点での伴奏パターンPTN2の使用率は、8小節/
32小節=0.25(25パーセント)であり、未だ伴
奏パターンPTN2の割当て割合40パーセトには満た
ないので、次に起伏度数の大きいセクション『A(16
小節)』に伴奏パターンPTN2が割り当てられる。こ
の時点での伴奏パターンPTN2の使用率は、24小節
/32小節=0.75(75パーセント)である。従っ
て、前回の使用率25パーセントか又は今回の使用率7
5パーセントのいずれか一方を選択しなければならな
い。そこで、割当ての割合40パーセントに対する絶対
偏差を求めると、使用率25パーセントの場合が絶対偏
差15パーセントとなり、使用率75パーセントの場合
は絶対偏差35パーセントとなり、使用率25パーセン
トの方が割当て割合40パーセントに近いと判定され
る。従って、ここでは、セクション『C(8小節)』の
みに伴奏パターンPTN2が割り当てられ、セクション
『A(16小節)』及び『B(8小節)』には伴奏パタ
ーンPTN1が割り当てられるようになる。すなわち、
このように対象区間(ディビジョン)が複数のセクショ
ン及び複数のタイプで構成されている場合における伴奏
パターン割当て処理では、起伏度数の高い方から選択的
に伴奏パターンPTN2を割り当てていき、伴奏パター
ンPTN2の割当て割合40パーセントを越える直前に
おける伴奏パターンPTN2の使用率と、越えた直後の
伴奏パターンPTN2の使用率とを算出し、両使用率の
うち割当て割合に近い方を選択し、伴奏パターンPTN
2の割当てを行う。
【0053】次に、第2の場合として、対象区間(ディ
ビジョン)が複数のセクションで構成されているが、各
セクションのタイプが全て同じ場合について説明する。
例えば、ステップ91によって検出されたセクションパ
ターンが『A(8小節)−A’(8小節)−A”(8小
節)』のように同じタイプで構成されているとする。こ
のような場合には、最後のセクション『A”(8小
節)』に無条件に伴奏パターンPTN2が割り当てられ
る。この時点での伴奏パターンPTN2の使用率は、8
小節/24小節=0.33(33パーセント)であり、
未だ伴奏パターンPTN2の割当ての割合40パーセト
には満たないので、次に最後のセクションの前のセクシ
ョン『A’(8小節)』に対しても同様に伴奏パターン
が割り当てられる。この時点での伴奏パターンPTN2
の使用率は、16小節/24小節=0.67(67パー
セント)である。従って、前回の使用率33パーセント
か又は今回の使用率67パーセントのいずれか一方を選
択しなければならない。そこで、割当ての割合40パー
セントに対する絶対偏差を求めると、使用率33パーセ
ントの場合が絶対偏差7パーセントとなり、使用率67
パーセントの場合は絶対偏差27パーセントとなり、使
用率33パーセントの方が割当て割合40パーセントに
近いと判定される。従って、ここでは、セクション
『A”(8小節)』のみに伴奏パターンPTN2が割り
当てられ、セクション『A’(8小節)』及び『A(8
小節)』には伴奏パターンPTN1が割り当てられるよ
うになる。すなわち、このように対象区間(ディビジョ
ン)が複数のセクションで構成されているが、タイプが
同じ場合には、最後のセクションから選択的に伴奏パタ
ーンPTN2を割り当てていき、伴奏パターンPTN2
の割当て割合40パーセントを越える直前における伴奏
パターンPTN2の使用率と、越えた直後の伴奏パター
ンPTN2の使用率とを算出し、両使用率のうち割当て
割合に近い方を選択し、伴奏パターンPTN2の割当て
を行う。
【0054】次に、第3の場合として、対象区間(ディ
ビジョン)が1つのセクションで構成されている(当然
タイプも1つである)場合について説明する。このよう
な場合は非常に特殊な場合であり、伴奏パターンPTN
1及び伴奏パターンPTN2を同時に割り当てることは
不可能である。そこで、このような場合には、伴奏パタ
ーンPTN1か又は伴奏パターンPTN2のいずれか一
方を割り当てるしかない。その割当ての方法としては、
例えば、起伏度数切り替えのための絶対起伏度数レベル
(例えば起伏度数で「500」など)を設定しておき、
そのセクションの起伏度数がその絶対起伏度数レベル以
上の場合には伴奏パターンPTN2を割当て、それより
も小さい場合には伴奏パターンPTN1を割り当てるよ
うにしてもよい。また、他のトラックのメロディを同じ
ようにセクション分けして、その起伏度数の高さに応じ
て決定してもよい。例えば、他のトラックのメロディの
セクションの起伏度数が図10のような値である場合、
伴奏パターンPTN1の割り当てられたセクション『C
(8小節)』の起伏度数「739」と、伴奏パターンP
TN2の割り当てられたセクション『A(16小節)』
の起伏度数「483」との間の平均値「611」を算出
し、その平均値「611」を絶対起伏度数レベルとして
伴奏パターンPTN1又は伴奏パターンPTN2の割当
てを行う。なお、上述のような伴奏パターンPTN1及
び伴奏パターンPTN2の割当て処理を全トラックのメ
ロディ(例えば図4の主メロディ及び副メロディ)に対
して同じように行ってもよいし、又は全トラックのメロ
ディの中から最も長いディビジョン(最長ディビジョ
ン)に対して伴奏パターンPTN1及び伴奏パターンP
TN2の割当て処理を行い、他のディビジョンに対して
はその割当て結果を利用して行うようにしてもよい。例
えば、最長ディビジョンに対して伴奏パターンPTN1
及び伴奏パターンPTN2の割当てを行った場合に検出
されたそれぞれ異なるタイプと同じタイプが他のディビ
ジョンに存在するかどうかを検出し、同じタイプが存在
する場合にはそれと同じ伴奏パターンを割り当てるよう
にし、同じタイプが存在しない場合には前述のように最
長ディビジョンの起伏度数から絶対起伏度数レベルを算
出し、それに基づいて伴奏パターンの割当てを行えばよ
い。
【0055】また、上述の説明では、演奏パターンのバ
リエーションが2種類の場合について説明したが、バリ
エーションが3種類以上存在する場合も割当て方法は前
述の場合と同じように行う。例えば、バリエーションの
タイプすなわち伴奏パターンが伴奏パターンPTN1と
伴奏パターンPTN2と伴奏パターンPTN3の3種類
であり、伴奏パターンPTN3が最も「高ぶる演奏」で
あり、伴奏パターンPTN1が「穏やかな演奏」であ
る。そして、割当て割合として、伴奏パターンPTN1
を約40パーセント、伴奏パターンPTN2を約30パ
ーセント、伴奏パターンPTN3を約30パーセントの
割合となるように割り当てるものとする。この場合、ま
ず割当て割合30パーセントとなるように伴奏パターン
PTN3を割り当てる。そして、この伴奏パターンPT
N3の割当て割合30パーセントと伴奏パターンPTN
2の割当て割合30パーセントの合計値60パーセント
となるセクションを検出し、その中で既に伴奏パターン
PTN3の割り当てられていない部分に伴奏パターンP
TN2を割り当てる。そして、残ったセクションに伴奏
パターンPTN1を割り当てる。このようにして、バリ
エーションが3種類以上の場合でもその割当て割合に応
じて適切な割当てを行うことができる。
【0056】なお、上述の実施の形態で使用した数値や
個数などは例示であり、これらに限定されないことはい
うまでもない。
【0057】
【発明の効果】第1の発明の演奏情報分析装置によれ
ば、メロディデータを入力するだけで自動的にその曲の
構造すなわちセクションパターンを分析することができ
るという効果がある。第2の発明の自動編曲装置によれ
ば、第1の発明の演奏情報分析装置によって分析された
結果に基づいて自動的に伴奏パターンを割り当てる自動
編曲を容易に行うことができるという効果がある。
【図面の簡単な説明】
【図1】 図2の電子楽器を自動編曲装置として動作さ
せる場合のメインフローチャートの一例を示す図であ
る。
【図2】 この発明に係る自動編曲装置を内蔵した電子
楽器の構成を示すハードブロック図である。
【図3】 図1の曲構造解析処理の詳細例を示す図であ
る。
【図4】 一般的なメロディの保存方法を模式的に示す
図であり、図4(A)は主メロディと副メロディが2つ
のトラックに分かれて保存されている様子を示し、図4
(B)は楽音の変化によって切り替わる先頭位置を示
し、図4(C)は主メロディの一部分のサンプルメロデ
ィデータを示し、図4(D)はそのサンプルメロディの
グリッド化された場合のデータ構成を示す。
【図5】 ハ長調における調和度数を示す図であり、図
5(A)はある音に対して高い音の調和度数を示し、図
5(B)はある音に対して低い音の調和度数を示す。
【図6】 終止感度数テーブルを示す図であり、図6
(A)は上昇の場合の終止感度数を示し、図6(B)は
下降の場合の終止感度数を示す。
【図7】 図6の終止感度数テーブルに従ってサンプル
フレーズの終止感度数がどのようにして算出されるのか
を示す図である。
【図8】 図8は図4(B)の主メロディの中の先頭位
置M1から始まるディビジョンに対応したものであり、
図8(A)はステップ32〜34の処理によって分割さ
れたフレーズの17個分のフレーズ情報、終止感度数及
びブロック先頭フラグFGを示し、図8(B)〜(D)
はブロック先頭フラグFGの変化の様子を示し、図8
(E)は組み立てられたブロックの範囲を模式的に示す
図である。
【図9】 図1の伴奏パターン割当て処理の詳細例を示
すフローチャート図である。
【図10】 ステップ92〜96の処理によって各タイ
プの起伏度数が図10のように算出さ
【符号の説明】
1…CPU、2…プログラムメモリ、3…ワーキングメ
モリ、4…演奏データメモリ、5…押鍵検出回路、6…
スイッチ検出回路、7…表示回路、8…音源回路、9…
鍵盤、1A…テンキー&キーボード&各種スイッチ、1
B…ディスプレイ、1C…サウンドシステム、1D…デ
ータ及びアドレスバス
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G10G 1/00 G10G 3/00 G09B 15/00 G10H 1/00

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 音高及び音長を少なくとも含んで構成さ
    れる旋律データを供給するデータ供給手段と、 前記データ供給手段から供給される前記旋律データから
    曲構造を解析して前記旋律データを複数の区間に分割す
    る曲構造解析手段と、 前記曲構造解析手段によって分割された各区間の起伏度
    数を算出する起伏度数算出手段とを備えた演奏情報分析
    装置。
  2. 【請求項2】 音高及び音長を少なくとも含んで構成さ
    れる旋律データを供給するデータ供給手段と、 前記データ供給手段から供給される前記旋律データから
    曲構造を解析して前記旋律データを複数の区間に分割す
    る曲構造解析手段と、 前記曲構造解析手段によって分割された各区間の起伏度
    数を算出する起伏度数算出手段と、 前記起伏度数算出手段によって算出された起伏度数に従
    って前記各区間に伴奏パターンを割り当てる割当手段と
    を備えたことを特徴とする自動編曲装置。
  3. 【請求項3】 複数の区間に分割された旋律データを供
    給するデータ供給手段と、 二つの音が異なるタイミングで発生した場合に感じられ
    る2音間終止感度数をそれぞれの2音間毎に数値化され
    た変換テーブルを用いて前記データ供給手段から供給さ
    れる前記旋律データのそれぞれの区間の終止感度数を算
    出する終止感度数算出手段とを備えた演奏情報分析装
    置。
  4. 【請求項4】 前記終止感度数算出手段は、前記区間の
    最終音符と、その前方に位置する所定数の音符との間に
    おけるそれぞれの2音間終止感度数を求め、求められた
    2音間終止感度数を合計することによって前記区間の終
    止感度数を算出することを特徴とする請求項3に記載の
    演奏情報分析装置。
  5. 【請求項5】 前記終止感度数算出手段は、求められた
    2音間終止感度数にその2音間の距離に応じた重み付け
    を行い、それを合計することによってその区間の終止感
    度数を算出することを特徴とする請求項4に記載の演奏
    情報分析装置。
  6. 【請求項6】 前記終止感度数算出手段は、求められた
    2音間終止感度数に最終音符の音長に応じた重み付けを
    行い、それを合計することによってその区間の終止感度
    数を算出することを特徴とする請求項4に記載の演奏情
    報分析装置。
  7. 【請求項7】 複数の区間に分割された旋律データを供
    給するデータ供給手段と、 前記データ供給手段から供給される前記旋律データの中
    から音楽的なまとまりを示す前記区間の連続した複数を
    グループ化することによって区間グループの複数を作成
    するものであって、前記複数の区間のそれぞれについて
    少なくとも前記区間グループの先頭に『なり得る』の
    か、『なり得ない』のか、又は『不明』なのかを第1の
    条件に従って決定し、前記『不明』と決定された区間に
    ついて前記区間グループの先頭に『なり得る』のか、
    『なり得ない』のかを第2の条件に従って決定し、最終
    的に『なり得る』と決定された区間を前記区間グループ
    の先頭としてグループ化を行うグループ化手段とを備え
    た演奏情報分析装置。
  8. 【請求項8】 前記グループ化手段は、前記第2の条件
    に従った決定として、 前記第1の条件に従って『なり得る』と決定された区間
    の前後所定小節数範囲内に存在する区間については『な
    り得ない』と決定する第1の決定方式、 請求項3から7までのいずれか1の演奏情報分析装置に
    よって算出された終止感度数に基づいて、所定小節数範
    囲内に存在する区間の中で最も前記終止感度数の低い区
    間の次の区間については『なり得ない』と決定する第2
    の決定方式、 前記第1の条件に従って『なり得る』と決定された区間
    の旋律データと一致度の高い区間については『なり得
    る』と決定する第3の決定方式、 前記第1の条件に従って『なり得ない』と決定された区
    間の最終音符の音長が所定値よりも大きい区間について
    は『なり得る』と決定する第4の決定方式、 の少なくとも一つの決定方式を実行することを特徴とす
    る請求項7に記載の演奏情報分析装置。
  9. 【請求項9】 前記グループ化手段は、前記第4の決定
    方式によって『なり得る』と決定された区間の旋律デー
    タと一致度の高い区間については『なり得る』と決定す
    ることを特徴とする請求項8に記載の演奏情報分析装
    置。
  10. 【請求項10】 複数の区間に分割された旋律データを
    供給するデータ供給手段と、 前記データ供給手段から供給される前記旋律データの中
    から音楽的なまとまりを示す前記区間の連続した複数を
    グループ化することによって区間グループの複数を作成
    するものであって、前記複数の区間のそれぞれについて
    一致度を算出し、算出された一致度に基づいて前記複数
    の区間を種類別に分類し、同じ種類に分類された区間が
    連続する場合にはその連続する複数の区間を前記区間グ
    ループの一つとしてグループ化を行うグループ化手段と
    を備えた演奏情報分析装置。
  11. 【請求項11】 複数の区間に分割された旋律データを
    供給するデータ供給手段と、 前記データ供給手段から供給される前記旋律データの中
    から音楽的なまとまりを示す前記区間の連続した複数を
    グループ化することによって区間グループの複数を作成
    するものであって、前記複数の区間のそれぞれについて
    一致度を算出し、前記複数の区間を前記一致度に基づい
    て分類し、前記複数の区間の中の所定数の区間の並びに
    対応した分類のパターン列と同じパターン列となる部分
    を検出し、同じパターン列が検出された場合には前記所
    定数の区間を前記区間グループの一つとしてグループ化
    を行うグループ化手段とを備えた演奏情報分析装置。
  12. 【請求項12】 複数の区間に分割された旋律データを
    供給するデータ供給手段と、 前記データ供給手段から供給される前記旋律データに基
    づいて、単位長当たりの音符数の平均値、音高の平均
    値、音高の上下の方向転換率、音高の上下の平均幅、音
    符長の変化率、強拍及び弱拍の位置におけるキーオン出
    現度数、同じ形で展開するフレーズの回数のうち少なく
    とも1つに応じて前記各区間の起伏度数を算出する起伏
    度数算出手段とを備えた演奏情報分析装置。
  13. 【請求項13】 複数の区間に分割された旋律データで
    あって、各区間毎に起伏度数を有するものを供給するデ
    ータ供給手段と、 予め複数の伴奏パターンの割り振り割合を決定してお
    き、前記複数の伴奏パターンが割り振られる各区間の長
    さの割合と前記起伏度数を考慮して、各区間に割り振ら
    れる伴奏パターンの割り振り割合が、前記割り振り割合
    に最も近づくように、前記伴奏パターンを割り振る割当
    手段とを備えた自動編曲装置。
JP8061695A 1996-02-23 1996-02-23 演奏情報分析装置及びそれを用いた自動編曲装置 Expired - Fee Related JP2806351B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8061695A JP2806351B2 (ja) 1996-02-23 1996-02-23 演奏情報分析装置及びそれを用いた自動編曲装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8061695A JP2806351B2 (ja) 1996-02-23 1996-02-23 演奏情報分析装置及びそれを用いた自動編曲装置

Publications (2)

Publication Number Publication Date
JPH09230857A JPH09230857A (ja) 1997-09-05
JP2806351B2 true JP2806351B2 (ja) 1998-09-30

Family

ID=13178655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8061695A Expired - Fee Related JP2806351B2 (ja) 1996-02-23 1996-02-23 演奏情報分析装置及びそれを用いた自動編曲装置

Country Status (1)

Country Link
JP (1) JP2806351B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3620240B2 (ja) * 1997-10-14 2005-02-16 ヤマハ株式会社 自動作曲装置および記録媒体
JP3580210B2 (ja) * 2000-02-21 2004-10-20 ヤマハ株式会社 作曲機能を備えた携帯電話機
WO2006003848A1 (ja) * 2004-06-30 2006-01-12 Matsushita Electric Industrial Co., Ltd. 楽曲情報算出装置及び楽曲再生装置
DE102004047069A1 (de) * 2004-09-28 2006-04-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Ändern einer Segmentierung eines Audiostücks
DE102004047032A1 (de) * 2004-09-28 2006-04-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Bezeichnen von verschiedenen Segmentklassen
CN101203904A (zh) * 2005-04-18 2008-06-18 Lg电子株式会社 音乐谱写设备的操作方法
KR100658869B1 (ko) * 2005-12-21 2006-12-15 엘지전자 주식회사 음악생성장치 및 그 운용방법
JP4748395B2 (ja) * 2006-11-08 2011-08-17 カシオ計算機株式会社 楽曲構造分析装置および楽曲構造分析処理プログラム
JP2011138153A (ja) * 2011-02-18 2011-07-14 Casio Computer Co Ltd 楽曲構造分析装置および楽曲構造分析処理プログラム
JP2013037274A (ja) * 2011-08-10 2013-02-21 Sony Corp 信号処理装置および方法、信号処理システム、並びにプログラム
JP6625202B2 (ja) * 2016-03-31 2019-12-25 Pioneer DJ株式会社 楽曲構造解析装置、楽曲構造解析方法および楽曲構造解析プログラム
KR101887996B1 (ko) * 2017-02-17 2018-08-13 연세대학교 산학협력단 기계 학습 기반의 음악 편곡 장치 및 방법
CN113571030B (zh) * 2021-07-21 2023-10-20 浙江大学 一种基于听感和谐度评估的midi音乐修正方法和装置

Also Published As

Publication number Publication date
JPH09230857A (ja) 1997-09-05

Similar Documents

Publication Publication Date Title
JP3209156B2 (ja) 自動伴奏パターン発生装置及び方法
USRE40543E1 (en) Method and device for automatic music composition employing music template information
US5939654A (en) Harmony generating apparatus and method of use for karaoke
CN112382257B (zh) 一种音频处理方法、装置、设备及介质
JP2806351B2 (ja) 演奏情報分析装置及びそれを用いた自動編曲装置
US7750228B2 (en) Tone processing apparatus and method
US6525255B1 (en) Sound signal analyzing device
JP6175812B2 (ja) 楽音情報処理装置及びプログラム
JP3669129B2 (ja) 音信号分析装置及び方法
JP3489503B2 (ja) 音信号分析装置、音信号分析方法及び記憶媒体
JP3279204B2 (ja) 音信号分析装置及び演奏情報発生装置
JP2000315081A (ja) 自動作曲装置及び方法並びに記憶媒体
JP2583809B2 (ja) 電子楽器
JP2745865B2 (ja) 楽音合成装置
JP4134961B2 (ja) 音信号分析装置及び方法
JP3664126B2 (ja) 自動作曲装置
JPH01288900A (ja) 歌声伴奏装置
JP2002032079A (ja) 自動作曲装置及び方法並びに記憶媒体
JP3888372B2 (ja) 音信号分析装置及び方法
JP3888371B2 (ja) 音信号分析装置及び方法
JP3888370B2 (ja) 音信号分析装置及び方法
JP6036800B2 (ja) 音信号生成装置及びプログラム
JP5659501B2 (ja) 電子音楽装置及びプログラム
JP5776205B2 (ja) 音信号生成装置及びプログラム
JPH06282268A (ja) 自動伴奏装置

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090724

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090724

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100724

Year of fee payment: 12

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100724

Year of fee payment: 12

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110724

Year of fee payment: 13

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110724

Year of fee payment: 13

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 14

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees