JP3088919B2 - Tone judgment music device - Google Patents

Tone judgment music device

Info

Publication number
JP3088919B2
JP3088919B2 JP06335330A JP33533094A JP3088919B2 JP 3088919 B2 JP3088919 B2 JP 3088919B2 JP 06335330 A JP06335330 A JP 06335330A JP 33533094 A JP33533094 A JP 33533094A JP 3088919 B2 JP3088919 B2 JP 3088919B2
Authority
JP
Japan
Prior art keywords
data
code
chord
chord progression
key
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
JP06335330A
Other languages
Japanese (ja)
Other versions
JPH07306676A (en
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP06335330A priority Critical patent/JP3088919B2/en
Publication of JPH07306676A publication Critical patent/JPH07306676A/en
Application granted granted Critical
Publication of JP3088919B2 publication Critical patent/JP3088919B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】この発明は音楽装置に関し、特に
調判定が可能な音楽装置に関する。 【0002】 【従来の技術】従来において音楽の各区間の調を判定す
ることができる音楽装置は知られていない。 【0003】 【発明が解決しようとする課題】したがってこの発明の
目的は、音楽の各区間の調を自動的に判定できる調判定
音楽装置を提供することである。 【0004】 【手段、作用】この発明によれば、コード進行を付与す
るコード進行付与手段と、上記コード進行付与手段から
付与されるコード進行における各コードの区間における
調をコード進行の時間軸に沿って、当該コードまでの
コード進行の来歴に従って順次判定する調判定手段と、
を有することを特徴とする調性判定音楽装置が提供され
る。この構成によれば、コード進行における各コードの
区間の調を後続区間の調を利用することなく判定するこ
とができる。さらに、この発明によれば、コード進行を
付与するコード進行付与手段と、上記コード進行付与手
段から付与されるコード進行における各コードの区間に
おける調をコード進行の時間軸に沿ってコード進行の来
歴に従って順次判定する調判定手段と、を有し、この調
判定手段は、(a)コード進行の先頭コードが属する先
頭区間の調を決定する先頭調決定手段と、(b)コード
進行の先頭コード以外の各コードを先頭コードと比較
し、その比較結果を各コード毎に各コードの区間の調と
先頭区間の調との差(調性距離という)として算出する
調性距離算出手段と、(c)現区間のコードについて算
出された調性距離を直前区間のコードについて決定され
た調性距離と比較し、比較結果に応じて当該現区間のコ
ードについて算出された調性距離を変更することにより
現区間の調性距離を決定する決定手段と、(d)決定さ
れた現区間の調性距離を決定された先頭区間の調に基づ
いて調に変換して現区間の調を判定する変換手段と、を
有することを特徴とする調性判定音楽装置が提供され
る。以下説明する実施例は、この発明の調判定音楽装置
を自動作曲機に適用したものである。 【0005】 【実施例】以下、本発明の実施例について説明する。本
自動作曲装置は音を和声音と非和声音とに分けて作曲す
るアプローチを採用している。作曲の基礎となるデータ
として、コード進行情報、モチーフ(使用者から入力さ
れるメロディ)、生成するメロディのリズムないし音長
列の制御に用いるパルススケール、基本となる音階の種
類が与えられる。モチーフに含まれる各音は各区間で使
用されるコード情報を用いることで、和声音と非和声音
とに識別される。モチーフから非和声音を除いた部分は
モチーフのアルペジオ(分散和音)である。このアルペ
ジオから、アルペジオの特徴と(アルペジオの音型に含
まれる特徴的要素)が抽出される。また、和声音と非和
声音との識別がつけられたモチーフに対しては、非和声
音を分類する音楽知識(これは後述するプロダクション
ルールデータメモリに記憶されている)を利用すること
により、モチーフに含まれる各非和声音のタイプ(特
徴)を抽出できる。すなわち、モチーフのなかに、どの
ような非和声音がどのように分布しているかを示す情報
(非和声音の特徴)が得られる。さらにコード進行から
は、曲の階層構造と調性構造とが抽出される。 【0006】メロディの生成は、アルペジオの生成工
程、非和声音の付加工程、音長列の生成工程から成る。
アルペジオの生成工程では、コード進行情報から抽出し
た上記階層構造によって、アルペジオの生成が制御され
る。階層構造により新しいアルペジオの生成が指示され
る場合、アルペジオの特徴(モチーフから抽出したアル
ペジオの特徴またはそれを修飾したもの)からアルペジ
オの音型が生成され、生成されたアルペジオの音型に対
応するコードを適用することにより音高列で表現される
アルペジオが生成される。このようにして生成されたア
ルペジオに対して非和声音が付加される。非和声音を付
加するのに上述した音楽知識が再度利用される。非和声
音付加の推論において、付加可能な非和声音は非和声音
の特徴を満たすものであることと、音階音であることを
条件とする。ここにおける音階音は、コード進行から抽
出した調性構造に従って基本とする音階の主音(キー、
調性)を転回した音階上の音である。非和声音の分類と
非和声音の付加とにおいて、共通の音楽知識を使って推
論が行われるため、本装置によるメロディの分析と合成
との間には「可逆性」が与えられる。完全な可逆性と
は、あるメロディを分析して、ある分析結果を得たと
し、逆に、その分析結果を基にしてメロディを生成した
場合に、生成されたメロディが当初のメロディに一致す
ることである。アルペジオに非和声音を付加することに
よりメロディの音高列が完成する。一方、メロディの音
長列の方は、次のようにして得られる。すなわち、基本
となるリズム(音長列)を目標音符数(例えば和声音と
非和声音の合計の数)になるように、パルススケールを
使って最適結合または最適分割する。どの音符がどの位
置で分割または結合されるかは選択したパルススケール
がもつ各パルス点の重みに依存する。したがって一貫性
のあるリズム制御が可能である。 【0007】<全体構成>図1に本実施例に係る自動作
曲機の全体構成図を示す。CPU1は本装置における自
動作曲機能を実現するための制御装置である。入力装置
2からは、モチーフ(メロディ)、コード進行、使用す
るパルススケールの種類、使用する音階の種類などが入
力される。コード進行メモリ4はコード進行情報を記憶
するメモリであり、メモリ4の情報はコード進行を分析
する場合、アルペジオを抽出または生成する場合などに
CPU1により使用される。音階データメモリ5はさま
ざまな種類の音階を表わす音階データを記憶するメモリ
であり、作曲に先立ち、使用者は曲で使用する音階とし
て特定の音階をこのメモリ5の音階セットのなかから選
択することができる。プロダクションルールデータメモ
リ6には、非和声音を分類するための音楽知識が記憶さ
れる。この音楽知識はモチーフに含まれる非和声音を分
類する場合、アルペジオに非和声音を付加する場合に利
用される。パルススケールメモリ7は各種のパルススケ
ール(パルススケールのセット)を記憶するメモリであ
り、作曲の開始時、使用者は曲にもたせるリズムの特徴
を考慮して、このパルススケールのセットのなかから所
望のパルススケールを選択することができる。選択され
たパルススケールはメロディのリズム(音長列)の生成
に利用される。メロディデータメモリ8には完成したメ
ロディデータが記憶される。外部記憶装置はメロディデ
ータメモリ8に記憶したメロディデータの写し、別の音
楽知識、別の作曲プログラムの資源として利用される。
ワークメモリ10にはCPU1が動作中に使用する各種
のデータ、例えば調性構造、階層構造、各種変数などが
記憶される。モニター11はCRT12、五線譜プリン
タ13、楽音形成回路14、サウンドシステム15から
構成され、作曲結果や分析結果をこれらの装置を通して
表示、出力できる。 【0008】<作曲ゼネラルフロー>作曲機モードにお
ける本装置の全体フロー(作曲ゼネラルフロー)を図2
に示す。4−1の初期設定では、使用者より自動作曲機
に対して、作曲のための基本的な情報が入力される。使
用者が自動作曲機に知らせる情報として、(1)BEA
T、(2)パルススケールの種類(3)音階(4)全自
動かモチーフ入力が示されている。BEATは基本単位
長の音符(最短の音符)の数で表わされる1小節の長さ
であり、したがって曲の拍子を規定するものである。例
えば、4拍子系の曲に対しては、音符の基本単位長を1
6分音符とするとBEAT=16を設定すれば1小節の
長さは4拍となる。4−1で選択するパルススケールは
自動作曲機が作曲する曲のリズムを一次的に制御する情
報である。パルススケールは、基本単位長の間隔をもつ
各パルス点に、音符の結合のしやすさまたは音符の分割
のしやすさを表わす重みが付けられたスケールであり
(図7、図12参照)、このパルススケールを使用する
ことによりメロディの音長列が制御される。したがっ
て、パルススケールの種類を選択するということは、自
動作曲機が作曲する曲のリズムの特徴を選択しているこ
とに相当する。4−1で選択される音階の種類(例え
ば、ダイアトニックスケール)は、自動作曲機が作曲に
おいて使用する音階である。さらに初期設定4−1にお
いては、作曲を全自動で行うか、モチーフを基に行うか
が使用者により決定される。全自動のときは、作曲に必
要なデータとして、(1)コード進行、(2)プロダク
ションルール(3)パルススケールがワークメモリ10
上に読み込まれ(4−3)、(1)基本とするリズム
(音長パターン)、(2)アルペジオの特徴(PCi:
図5参照)、(3)非和声音の特徴(RSi:図5参
照)から成るエッセンスが使用者の指示に従って生成さ
れる(4−4)。一方、モチーフを利用する作曲モード
では、データ読み込み4−5として上述のデータ以外に
モチーフ(入力メロディ)も読み込まれ、エッセンスと
しての(1)リズム(2)アルペジオパターン(3)ア
ルペジオパターンの特徴、(4)非和声音の特徴は、こ
のモチーフから抽出される(4−5)。特に、非和声音
の特徴はプロダクションルールに基づく推論によって得
られる。全自動、モチーフ利用モードのいずれの場合
も、コード進行評価4−7が行われ、ここで(1)階層
構造(2)調性構造(3)スケールがコード進行情報か
ら抽出される。この階層構造はコード進行に内在する曲
の一貫性と多様性を表現したものである。また、調性構
造は各区間において使用する音階のキー(基音)を規定
するものである。「スケール」で示す処理は、ある種の
特殊コードの区間では、初期設定した音階にかかわらず
特定の音階を使用するためにある。この4−7までの処
理で、作曲のための「分析的作業」が完了している。例
えば、アルペジオの特徴は、アルペジオパターンの生成
に必要な情報であり、非和声音の特徴は、アルペジオに
付加する非和声音を特徴づけるものである。プロダクシ
ョンルールは、アルペジオに付加する非和声音が適正か
否かの推論に使用される。また調性構造は、各区間のメ
ロディの音の候補を制約する。階層構造は、新たにアル
ペジオパターンを生成するか否かを決めるのに利用でき
る。またパルススケールはリズムの生成に利用される。
メロディ生成4−8では、(1)アルペジオパターン
(LLi:図5参照)の選択的生成、(2)アルペジオ
パターンの音域の設定(3)音高表現のアルペジオの生
成(4)非和声音の付加、(5)リズムの生成が実行さ
れる。 【0009】<変数リスト、データ形式>後述するフロ
ーで使用される主な変数のリストを図3に、データ形式
を図4〜図8に示す。なおデータ形式は単なる例示であ
り、その他の任意の適当なデータ形式が使用可能であ
る。 【0010】<初期設定>作曲ゼネラルフロー(図2)
における初期設定4−1の詳細を図9に例示する。この
初期設定で選択するBEATの意味、パルススケールの
種類(PULS)、音階の種類(ISCALE)の意
味、全自動又はモチーフ入力の意味は図2に関して説明
したのでここでは省略する。PULSの値は、パルスス
ケールメモリ7(図1)に記憶される特定のパルススケ
ールへのポインタとなり、ISCALEの値は音階デー
タメモリ5に記憶される特定の音階データへのポインタ
となる。 【0011】<データ読み込み>図2の作曲ゼネラルフ
ローに示すように、初期設定の後、4−3または4−5
においてデータ読み込みが実行される。全自動の場合
は、作曲の基礎データとしてモチーフは使用されないの
でモチーフデータの読み込みは行われない。各データの
読み込みについて以下説明する。 【0012】図10はコード進行メモリ4(図1)に記
憶されたコード進行データ例を示す。図11はコード進
行メモリ4に記憶されたコード進行データをロードする
フローチャートである。図10に示すメモリマップで
は、コードの種類(CDi)は偶数アドレスに置かれ、
そのコードの長さが次のアドレス(奇数アドレス)に置
かれている。例えば、16進表示で507の値をもつC
Diは、G7thのコードを表わし、10の値をもつCR
iはコード長が基本時間長(例えば16分音符)の16
倍であることを表わしている。 【0013】図11において、レジスタCDiには作曲
する曲のi番目に出現するコードが入り、CRiにはそ
の長さが入る。またCDNOにはコードの総数が入る。
その他の点については図11の記載から明らかであるの
で説明は省略する。 【0014】図12にパルススケールメモリ7(図1)
に記憶されるパルススケールデータ例を示す。図13は
パルススケールメモリ7から初期設定において選択した
種類のパルススケールをロードするフローチャートであ
る。この例の場合、初期設定において作曲する曲のリズ
ムの特徴を選択するために選択したパルススケールの種
類(PULS)は、パルススケールメモリ7における特
定のアドレス(例えば0)を指しており、そのアドレス
には、選択したパルススケールデータの開始アドレスが
入っている。この開始アドレスには、パルススケールを
構成するサブスケール(0と1の重みしかもたないスケ
ール)の数が記憶され、後続アドレスに各サブスケール
のデータが記憶されている。例えばノーマルのパルスス
ケールは、5つのサブスケールFFFF、5555、1
111、0101、0001(16進表現)から成り、
対応する2進表現を図7に示してある。ノーマルのパル
ススケールの場合、最初のパルス点(図7の一番右側の
位置)の重みが最大の5となっており、このことは、ノ
ーマルのパルススケールを選択した場合、生成されるリ
ズムの各区間(小節)の最初の位置に最も音符が存在し
やすいことを表わしている。 【0015】図14はプロダクションルールデータメモ
リ6(図1)に記憶されるプロダクションルールデータ
の例を示している。図15はこのメモリ6に記憶された
データを読み込むフローチャートである。プロダクショ
ンルールの全体は、メロディに含まれる非和声音を分類
するための音楽知識を表現したものであり、各プロダク
ションルールデータは、ルールの前提部を規定するデー
タとして下限データLi、関数の種類を指示する関数指
示データXi、上限データUiを有し、ルールの結論部
としてデータYiとNiを有する。関数は分析するメロ
ディの特徴を数値表現したもので、その例は後述する図
31に示される。データXiで示される関数の値Fxi
がLi以上でかつUi以下である(Li≦Fxi≦U
i)というのがプロダクションルールの前提部(命題)
であり、この前提部が成立するときの結論がデータYi
で示され、この前提部が不成立のときの結論がデータN
iで示されている。そして、データYiまたはNiが正
の値をもつときは、その値が前向推論において次に参照
すべきプロダクションルールの番号を示し、負の値をも
つときは、その絶対値によって非和声音の種類が表現さ
れる。前向推論は必ず1つのルールから開始され、この
ルールのことをルートと呼ぶ。負の値をもつ結論Yiま
たはNiをみつけたときに前向推論は終了する。 【0016】図14に示すプロダクションルールデータ
のアドレス割当の場合、各プロダクションルールのデー
タは下限データLiのアドレスを先頭として5つの連続
するアドレスに、記憶される。詳細には5で割り切れる
アドレスにLiが、5で割った余り1のアドレスにXi
が、余り2のアドレスにUiが、余り3のアドレスにY
iが、余り4のアドレスにNiのデータが記憶される。 【0017】図15においてRULENOには、プロダ
クションルールの総数がセットされる。その他の点につ
いては上述の説明とフローの記載から明らかである。 【0018】図16はモチーフメモリ3に記憶されるモ
チーフデータ(メロディデータ)の例を示す。図17は
作曲の基になるモチーフデータを読み込むフローチャー
トである。図16の場合、偶数アドレスに音符の音高デ
ータMDiがその次の奇数アドレスに、その音符の音長
データMRiが記憶されている。図17のMDNOには
モチーフの音符数がセットされる。以上でデータ読み込
みの説明を終える。 【0019】<エッセンスの生成>モチーフを使用しな
い全自動の作曲モードではデータ読み込みの後、曲のエ
ッセンスとしてリズム、アルペジオパターンの特徴、非
和声音の特徴を生成する(図2の4−4)。図18にこ
のエッセンス生成のフローチャートを示す。これらのエ
ッセンスは、使用者の指定あるいは完全自動で生成され
る。例えば、22−1における基準リズムパターンの設
定は、自動リズムパターン生成手段、例えば拍子として
4/4拍子、パルススケールとしてノーマルが選択されて
いるときに 【外1】 を基準リズムパターンとして自動生成するような手段あ
るいは使用者が好みのリズムパターンを入力することで
行われる。22−2のアルペジオパターンの特徴設定と
22−3の非和声音の特徴設定についても自動または使
用者の入力により行われる。図19には乱数発生等によ
りアルペジオパターンの特徴を自動設定するフローチャ
ートを、図20には非和声の特徴を使用者が入力するこ
とにより設定するフローチャートを例示する。 【0020】アルペジオパターンの特徴設定(図19)
におけるPC1〜PC5は所定長の区間(例えば小節)内
のアルペジオを構成する和声音の数、最高音の和声音、
最低音の和声音、隣り合う和声音間の差の最大値、隣り
合う和声音間の差の最小値をそれぞれ表わす(図5参
照)。各PCは、区間毎に生成可能であり、そのとりう
る値の上限と下限を設定し、その間で乱数を発生するこ
とで得られる。あるいは、曲の進行に対するPCの系列
をデータベースに用意しておき、所望のPC系列を選択
するようにしてもよい。 【0021】図20の非和声音の特徴設定では、モニタ
ーにより、各非和声音の種類aに対応するキーワードを
表示して、使用者の入力を促している(24−2)。R
Siの配列に使用者の入力した非和声音識別子aの系列
が入る(24−3、24−6、24−7)。入力の終り
を示すコードEOIを呼んだとき、RSNOに非和声音
の数を入れてフローを抜ける(24−8)。 【0022】<エッセンスの抽出>モチーフを利用する
作曲モードではデータ読み込みの後、モチーフから曲の
エッセンス(リズム、アルペジオパターン、アルペジオ
パターンの特徴、非和声音の特徴)が抽出される(図
2、4−6)。モチーフのリズム評価を図21に、アル
ペジオパターンの抽出を図25に、アルペジオパターン
の特徴抽出を図28に、非和声音の特徴抽出を図29に
例示する。これらのフローでは、各エッセンスは区間
(小節)ごとに行っている。 【0023】図21のリズム評価において、25−1に
おけるPsには対象の小節の先頭の音符が曲の何番目の
音符であるかを示す位置情報が入り、PssにはPsで
示される小節の先頭の音符が前小節にはみ出している長
さ(基本時間表現)が入り、Peには対象の小節の最後
の音符(次小節の先頭の音符より1つ前の音符)の位置
情報が入る。25−2に示すrrは対象の小節のリズム
パターンを格納する16ビットのレジスタであり、1小
節の長さを16とすると、レジスタrrの最初のビット
位置は、小節の最初の基本時間を表わし、同様にN番目
のビット位置は小節の頭からN番目の基本時間を表わ
す。25−3〜25−9までの処理は、モチーフの音符
Psから音符Peまでにある音符の位置をモチーフ音長
データMRiを使って求め、レジスタrrの対応するビ
ット位置に記入する処理である。例えば、rrとして、 0001000100010001 の結果が得られたとすると、このパターンrrは対象の
小節の1拍目、2拍目、3拍目、4拍目に音が発生する
ことを表わしている。 【0024】Ps、Pss、Pe、Peeの算出の詳細
は図22〜図24に示される。Peeは、Peの次の音
符、すなわち次小節の先頭の音符が対象の小節に割り込
んでいる長さを表わす。 【0025】図23のPs、Pssの算出フローにおい
て、beatは1小節の長さ(基本時間長表現)、ba
rは対象の小節の番号(ユーザーの指定した小節番号を
表わす。指定した小節の番号が1より小さいが、曲の小
節数(mno)より大きいときは入力ミスである。指定
した小節が1のときは、Ps=1、Pss=0にする
(27−4、27−5)。Ps=1になる理由は、最初
の小節の場合、小節の先頭の音符は曲の最初の音符ない
し全モチーフデータの最初の音符にほかならないからで
あり、Pss=0になる理由は、先行小節が存在しない
からである。27−2で求めたa1は曲の頭から対象の
小節の前方小節線までの長さであり、この長さa1をモ
チーフの音長データMRiを先頭から累算して得た長さ
Sと比較する(27−7、27−8、27−10、27
−12)。S=a1が成立するときは、Sに最後に累算
されたi番目の音高データの次の音符が対象の小節の頭
から開始する。したがってPs=i+1、Pss=0と
する(27−9)。一方、S>a1が成立するときは、
Sに最後に加えた音長データをもつ音符、すなわち、i
番目の音符が対象の小節の先頭の音符である。したがっ
てPs=iとする。またPss=MRi−S+a1とす
る(27−9)。 【0026】図24に示すPe、Peeの算出フローは
図23とよく似た処理を行う。ただしa1には曲の冒頭
から対象の小節の後方小節線までの長さが入る、その他
の点については説明を省略する。 【0027】図25に示すアルペジオパターンの抽出フ
ローでは対象の小節のモチーフからアルペジオパターン
{LLi}を抽出している。処理の概要を述べると、P
sとPeで示される対象の小節に対し、コード進行情報
における対応するコードを使用して、モチーフデータが
和声音かどうかを判別し、和声音と判別された音に対し
ては、コードのなかから対応するコード構成音をさがし
出し、LLの形式のデータを得る、評細に述べると、ま
ずモチーフデータのなかから、評価の対象となる最初の
音符(Ps)と最後の音符(Pe)を求める(29−
1)。次に、コードデータから構成音データを生成する
(29−2、図26、図27)。図26に示すようにコ
ード構成音データメモリは、根音をCとするコードの種
類別に、コード構成音を16ビット中下位12ビットの
データで記憶している。各ビット位置は各音名を表わ
し、最下位のビット位置がド(C)である。例えば、c
c=0091(16進)はドとミとソのビット位置に
“1”があり、Cのメジャーの構成音を表わす。いま、
対象の区間のコードGmajだとすると、CDは000
7(16進)である。コード構成音データメモリより、
CDの上位8ビットで指定されるアドレスにあるメジャ
ーのコード構成音データcc(=0091)を読み出
し、図27に示すようにその下位12ビットをCDの下
位8ビットが示す根音の値だけ左に転回することにより
“1”のビットは、ソとシとレを表わすビット位置7、
11、2に移動し、Gmajのコード構成音が表現され
る。このようにして、対象の区間のコードからコード構
成音データが生成される。次に、音階カウンタiと和声
音カウンタkを初期化する(29−3、29−4)。2
9−5の処理はモチーフの音高データMDiをコード構
成音データccと同じデータ形成に変換する処理であ
る。例えば、“ソ”の音は、ビット位置7に“1”をも
つデータmmに変換される。 【0028】29−6でこの音高データmmがコード構
成音か否かをチェックしている。これは、音高データm
mとコード構成音データccとの論理積 【外2】 をとることで判別できる。29−7〜29−13では、
コード構成音データccのビット“1”の中で、モチー
フの音高データmmのビット“1”と一致するのは何番
目であるかを調べ、その結果cにモチーフの音のオクタ
ーブ番号 【外3】 を加えて、アルペジオパターンデータLLkとしてい
る。29−15で次の音符にカウンタiを進め、音符番
号がPeに達するまで(29−16)、LLを求める。
29−17のLLNOには対象の区間の和声音数(アル
ペジオパターンの長さ)が入る。 【0029】図28のアルペジオパターンの特徴は、図
25のアルペジオパターンの抽出結果{LLi}、LL
NOから導き出される。 【0030】図29の非和声音の特徴抽出では、対象の
区間のモチーフに分布する非和声音の種類のパターンを
求めている。非和声音のカウンタと音符カウンタをセッ
トし(33−2、33−3)、着目している音符が非和
声音の場合(33−4)、その音符を中心とするモチー
フの特徴要素を表わす関数Fを計算し、プロダクション
ルールによる前向推論を実行して非和声音の種類を求め
RSjに代入する(33−5〜33−8)。この非和声
音の分類処理をPeに達するまで行うことにより、配列
{RSj}には、対象の区間のモチーフの非和声音の種
類の並びがセットされる。33−11のPSNOには対
象の区間の非和声音の総数が入る。 【0031】33−4に示すMDiが非和声音かどうか
の判別処理の詳細は図30に示される。この判別処理
は、アルペジオパターンの抽出(図25)において、着
目している音符が和声音か否かを判別する処理と同様で
あり、対象の区間のコードの構成音のなかに着目してい
る音符の音名が含まれるか否かで判別できる。 【0032】33−6における関数Fの計算では、前向
推論において、非和声音を分類するために必要なモチー
フ(メロディ)の条件ないし要因を計算する。図31か
ら図39にその具体例を示す。この例では関数Fとし
て、 F1:着目している音符(非和声音)の何個先に和声音
が位置するか(後方和声音の位置) F2:着目している音符の何個手前に和声音が位置する
か(前方和声音の位置) F3:前方和声音から後方和声音までにある非和声音の
数 F4:前方和声音と後方和声音との音高差 F5:前方和声音と後方和声音との間における非和声音
の高さの分布 F6:前方和声音から後方和声音までのメロディの音高
が単調に変化するか否か F7:後方和声音とその1つ前の音との音高差(後方和
声音への音程進行) F8:前方和声音とその1つ後の者との音高差(前方和
声音からの音程進行) を計算している(図31)。この他に、弱拍か強拍かを
示す情報、音長を区別する情報を関数Fのセットに加え
てもよい。個々の関数Fの算出のフローチャートはそれ
自体の記載から明らかであるので説明は省略する。 【0033】33−7における前向推論の詳細は図40
に示す。まず、ルールナンバーポインタPを、プロダク
ションルールのなかでルートとなっているルールを指示
する“1”にセットする(44−1)。しかる後、ルー
ルナンバーポインタPの示すルールの前提部(Lp≦F
xp≦Up)が成立するかどうかをチェックし、成立す
るときはそのルールの肯定結論部のデータYpを次のル
ールへのポインタとして使用し、不成立のときはそのル
ールの否定結論部のデータNpを次のルールへのポイン
タとして使用する。ただし、データYp、Npが、負の
値のときは、最終結論に達しているので、その絶対値
(−Yp、−Np)を非和声音の種類の識別子として結
論レジスタにセットする。フローに従うと、44−3の
条件Lp>Fxpか44−5の条件Fxp>Upが成立
するとき、ルールPの前提部Lp≦Fxp≦Upは不成
立であるのでそのルールの否定結論部のデータNpをa
に代入し(44−4、44−6)、それ以外の場合は前
提部成立なので、aにはルールPの肯定結論部のデータ
Ypが入る(44−2)。このaをPに代入し(44−
7)、Pが正値のときは、次のルールナンバーポインタ
として次のルールの検査に戻り、Pが負のときは、−P
を非和声音の分類結果とする(44−8、44−9)。 【0034】非和声音の分類の一例として、先の関数F
の計算において、 F1=1:後方和声音は着目している非和声音より1つ
後にある F2=−1:前方和声音は着目している非和声音の1つ
前にある F3=1:前後の和声音間の音数は1つである F4=8:前後の和声音の音高差は8である F5=2:前後の和声音間にある非和声音は前後の和声
音の音高の中間に分布している F6=1:前方和声音から後方和声音までのメロディは
音高が単調に変化している F7=1:後方和声音へは1の音高差で進行する F8=7:前方和声音からは7の音高差で進行する が得られたとし、プロダクションルールデータとして図
14に示すデータを使用して推論を行ってみる。 【0035】まず、P=1(ルート)のときは、その前
提部 0≦F2≦0 は、F2=−1であるため不成立である。したがって、
ルートの否定結論部N1=3が次に検査するルールのポ
インタとなる。P=3において、ルール3の前提部 0≦F1≦0 は、F1=1であるので不成立である。したがって、N3
=5が次のルールのポインタとなる。P=5において、
ルール5の前提部 0≦F4≦0 は、F4=8であるので成立しない。したがって、N5
6がPとなる。P=6において、ルール6の前提部 1≦F6≦1 は、F6=1であるので成立する。したがって、ルール
6の肯定結論部のデータY6=7が次にアクセスするル
ールのポインタPとなる。P=7において、ルール7の
前提部 3≦F8≦∞ はF8=7であるので成立する。ここでY7=−2(負)
である。したがって、結論=2(分類された非和声音の
識別子)となる。 【0036】この例からもわかるように、任意の種類の
非和声音は、有限個の命題が成立(前提部が成立しない
ということは、前提部を偽とする命題が成立することに
等しい)するという音楽知識で識別可能である。この知
識を表現するために、関数Fが計算され、プロダクショ
ンルールが作成されている。すなわち、関数Fは、非和
声音を分類するための知識において使用するメロディの
チェック項目の情報であり、プロダクションルールデー
タは、各非和声音の分類結果に至るまでのルールの列を
ポインタで連結したものである。 【0037】<コード進行評価>本実施例の装置は、作
曲のためにコード進行を最大限活用することを1つの特
徴としている。すなわち、図2の作曲ゼネラルフローの
4−7に示すコード進行評価において、与えられたコー
ド進行を手がかりとして曲の階層構造、調性構造を求め
ている。階層構造は曲の一貫性と多様性に係っており、
後述するメロディ生成においてアルペジオの生成制御に
利用される。一方、調性構造は、曲の進行に伴う調性
(キー)の変化を表わしており、後述するメロディ生成
において各区間で使用するスケールのキーを選択するの
に利用される。さらに、コード進行詳細では特殊コード
の区間に対し、特殊のスケールの使用を計画する処理も
実行している。 【0038】以下、図41〜図43を参照して階層構造
の抽出の詳細を述べる。図41に示すフローは、楽節等
の長さをもつブロックを単位として、ブロック相互のコ
ード進行の類似度を算出するフローである。まず、曲の
長さSUMをコード進行情報の各コードの長さCRiを
累算することで求め(45−1)、barno(小節
数)で示されるブロックの長さを基本音長の表現に変換
してブロック長をlとし(45−2)、曲長SUMをブ
ロック長lで割って曲に含まれるブロックの数mを計算
する(45−3)。比較するブロックの基準番号のため
のカウンタiを“0”に初期化する(45−4)。 【0039】45−8〜45−18において、i番目の
ブロックとj番目のブロック(j≧i)とのコードの類
似度Vijを算出している。類似度の関数として、 【数1】 を使用している。ここにlはブロックの長さであり、V
sは、基準音長ごとにi番目のブロックのコードとj番
目のブロックのコードとを比較したときに得られるコー
ドの一致数を表わす。この類似度関数Vijは0から1
00までの値をとり、100のとき、2つのブロックの
コード進行は完全に(100%)一致し、0のときは完
全に不一致である。 【0040】i番目のブロック対j番目のブロックの類
似度の計算はj=iの位置から開始され(45−6)、
類似度が得られるごとに、j=j+1により次のブロッ
クとの類似度の計算に移り(45−20、45−7)最
終ブロックになるまで行ったら(45−19)、i=i
+1により、i番目のブロックをシフトし(45−2
2、45−5)、iが最終ブロックになるまで処理を繰
り返す。 【0041】この結果、i番目のブロックに対するj番
目のブロックのコードの類似度Vijとして、 【外4】 が得られる。なおVij=Vji、すなわち、i番目の
ブロックに対するj番目のブロックコード類似度と、j
番目のブロックに対するi番目のブロックのコード類似
度は等しい。またVii=100である。 【0042】図40のブロック間のコード一致度の算出
結果{Vij}は、図42の階層構造データ生成におい
て使用される。 【0043】図42において、cは階層構造の計算のた
めのカウンタであり、Hjにj番目のブロックの階層構
造識別子がセットされる。Hjは値として、0、1、2
……の整数値をとる。これは通常の表現におけるa、
a′b、b′……に対応している(図6のHIEi参
照)。図42のフローでは、ある基準のブロックに対
し、100%コードが一致するブロックには基準ブロッ
クの階層構造識別子と同じ値(偶数値)の階層構造識別
子が付き(46−10、46−11)、70〜100%
の範囲で一致するブロックは、基準ブロックのコード進
行を修飾したコード進行をもつブロックとして、基準ブ
ロックの階層構造識別子に1を加えた値の階層構造識別
子が付けられる(46−12、46−13)。また、7
0%未満の類似度しかもたないブロックは、基準ブロッ
クとは独立の階層構造をもつブロックとして扱われる。
最初の基準ブロックとして、曲の最初のブロックを選ん
でおり(46−2)、この基準ブロックと100%ある
いは70〜100%で一致するブロックに対してはそれ
ぞれ、Hj=0、Hj=1の評価値が付き、評価完了を
示すため、これらのブロックのフラグfljは“1”に
セットされる。この最初の評価ループ(46−2〜46
−15)で評価が確定しなかった曲のブロックのうち、
一番若いブロックが次の評価ループにおける基準ブロッ
クとなり(46−3、46−4、46−6)、この基準
ブロックの階層構造識別子は2となる。以下、同様に処
理がくり返される。結果として、曲のすべてのブロック
に階層構造識別子Hjが付くことになる。 【0044】図43の処理は、図42で求めたブロック
単位の階層構造を小節単位の階層構造データに変換する
処理である。すなわち、図43のHIEaにはa番目の
小節に対する階層構造識別子がセットされる。 【0045】次に、図44から図47を参照して調性構
造の抽出について説明する。コード進行から調性構造を
抽出するため、本実施例では、一般の楽曲が有する調性
構造の性質を考慮している。その性質とは、 (イ)調性は曲の進行において頻繁に変化するより、同
じ調性を保つ傾向をもつ。 (ロ)コードの構成音は特定の調性の音階上にある。 (ハ)転調が生じる場合には、無関係な調に転ずるより
属調または下属調等の近親調に転じやすい。 である。 【0046】抽出する調性構造に上記の性質をもたせる
ため、本実施例ではコード相互間に調性距離を定義し、
現区間のコードが前区間の調性から所定の距離の調性で
ある場合には現区間の調性は前区間の調性と同じとみな
す。 【0047】図47にコード相互の調性距離を例示す
る。この図からわかるように、平行調の関係にあるコー
ド(例えばAmとC)間の調性距離はゼロであり、した
がって同じ調性(C)をもつ。また、完全5度下または
完全5度上にあるコードとの調性距離を2または−2と
している。いまキーCのダアトニックスケール(ドレミ
ファソラシド)を考えると、コードCから±2の調性距
離内にあるコードC、Am、G、Em、F、Dmの6つ
のコードは、そのコード構成音がすべてキーCのダイア
トニックスケール上にある。後述するように、本実施例
では、調性距離±2以内のコード変化に対しては調性を
維持するようにしている。 【0048】図44において、48−1から48−5ま
での処理は、コード進行における各コードに、図47に
例示する調性距離の定義に従って調性距離データを割り
当てているところである。すなわち、48−1で曲の最
初のコードに対する調性KEY1として“0”を設定
し、48−2〜48−5において、後続するコードCP
iの調性KEYiを最初のコードCD1の調性KEY1
の距離を計算することで求めている。48−3の調性は
第46図に示されている。 【0049】50−1における 【外5】 はi番目のコードCDiの根音データの抽出(図4参
照)であり、その結果はa1とa2に代入される。一方s
tには最初のコードCD1の根音データが入る。50−
5に示すように、a1の根音データは50−3〜50−
6のループを一周するたびに5度上に転回され、a2
根音データは5度下に転回される(図47に示すリング
を反時計回り、または時計回りすることに相当する)。
50−3において、a1=stが成立するのは、CDi
の根音データiを回5度上に転回したときであり、50
−4においてa2=stが成立するのはCDiの根音デ
ータをiを回5度下に転回したときである。したがって
前者に対してはxに調性距離としてi×(−2)を入れ
(50−7)、後者に対してはxにi×2を入れる。5
0−9から50−17は、最初のコードCD1と着目し
ているコードCDiとが、共にメジャー系かマイナー系
か、そうでないかにより、xを変換しているところであ
る。例えば、CD1がAmでCDiがGmajだとする
と、50−7によりx=+4になっている(根音AとG
との比較のため)。これは、図47によれば、x=−2
にならなければならない。この場合、図46において、
50−10から50−11、50−13と進み、x=x
−6によりx=−2が得られる。また、CD1がCma
jでCDiがBminだとすると、50−8によりx=
−10になっている。これは図47の調性距離の定義に
従えば、x=−4にならなければならない。この場合、
図46において、50−14かに50−15、50−1
7と進み、x=x+6により、x=−4が得られる。第
46図の計算結果xはKEYiに移される。 【0050】48−1から48−5の処理例を図45の
(1)に示す。コード進行C、C、F、G7、Bb、
F、G7、cに対し、調性距離{KEY}として、KE
1=0、KEY2=0、KEY3=+2、KEY4=−
2、KEY5=+4、KEY6=+2、KEY7=−2、
KEY8=0が得られる。 【0051】このようにして得られた調性距離{KE
Y}は、続く48−6から48−14の処理において、
上述した調性の性質をもつように変換される。すなわ
ち、直前の調性データがskeyに置かれ、現コードの
調性データがこの直前調性データskeyから±2以内
の距離にあるときは、現コードの調性データを直前の調
性データに変換して調性を維持し、±2を越える距離に
あるときにのみ転調とみなして現コードの調性データを
±2した値を最終的な調性データとする。 【0052】48−6から48−14の処理側を図45
の(2)に示す。コード進行C、C、F、G7、Bb、
F、G7、Cに対する調性{KEY}として、0、0、
0、0、2、2、0、0が得られる。このようにして、
楽曲として望ましい性質をもつ調性構造が距離表現のデ
ータ形式で抽出される。 【0053】図44の48−15から48−25まで
は、距離表現の調性構造データをスケールの根音を表わ
す音名表現に変換しているところである。この音名表現
ではCに“0”、C#に“1”、……Bに“11”の数
値が割り当てられる。例えば曲の最初のコードをCma
jとし、i番目のコードをFmajとし、このFmaj
の調性が距離表現では“2”であるとしてみる。これに
対応する音名表現は“5”である。この変換のため、処
理は48−15より48−16、48−17と進んで、
ここでa1=KEY1−KEYi×7/2が実行され、KE
1=0、KEYi=2であるのでa1=−7となり、4
8−18、48−19の処理によりa1=5となり、こ
れがKEYiとなる(48−20)。なお、曲の最初の
コードがメジャー系のときは、 【外6】 により最初のコード区間のスケールの根音が求まるが、
マイナー系のときは、Am=Cの関係に従って、 【外7】 を実行して最初のコード区間のスケールの根音を得てい
る(48−16、48−21〜48−23)。 【0054】図45の(3)に48−15から48−2
5の処理例を示す。コード進行がC、C、F、G7、B
b、F、G7、Cであるとき、各コード区間で使用する
スケールのキー(主音)は、C、C、C、C、F、F、
C、Cとなる。 【0055】後述するように、各コード区間において生
成するメロディの各音は以上の処理によって抽出された
調性構造データを主音とするスケール上から選択され
る。 【0056】次にスケール評価について図48を参照し
て説明する。この処理の目的は特殊なコードが使用され
る区間に対しては、メロディ生成のためのスケールとし
て特殊なスケールを使用することである。図48におい
て、ISCALEは初期設定4−1(図2)において選
択されたスケールである。コードCDiがデミニッシュ
コード“dim”のときにはその区間で使用するスケー
ルSCACEiとしてコンビネーションデミニッシュス
ケールを設定し、コードCDiがオーギュメントコード
“aug”のときにはスケールとしてホールトーンスケ
ールを設定し、コードCDiがセブンスコード“7t
h”のときにはスケールとしてドミナント7thスケー
ルを設定している。また、これらのコードの区間の調と
しては先の調性構造抽出処理で求めた調性データの代り
に、コードの根音を用いている。したがって、これらの
例外的なコード区間以外の区間ではスケールとしては初
期設定で選択した種類のスケールが使用され、その主音
は上述の調性構造抽出処理で得た調性データにより定め
られる。 【0057】<メロディ生成>本実施例の装置は、外部
から作曲の基礎となるデータが与えられ、その基礎デー
タを内部で分析、評価した後、メロディの生成の作業に
移る。作曲ゼネラルフロー(図2)の4−8に示すメロ
ディ生成の概略フローを図49に例示する。図49にお
いて、HIEiは先のコード進行評価で抽出したコード
区間毎の階層構造データであり、53−2〜53−4に
示すように、この階層構造データHIEiはアルペジオ
パターン(LL)の生成制御に利用される。この制御の
詳細については後述する。さらに階層構造データは53
−5、53−6に示すようにアルペジオパターン(L
L)の音域を制御するのにも利用できる。 【0058】アルペジオパターンはメロディの音列の基
本的な骨格を形成し、アルペジオパターンの音域はメロ
ディの音域を基本的に規制する。本実施例ではその制御
にコード進行から得た階層構造を利用しており、これも
実施例の特徴の1つとなっている。もっとも、アルペジ
オパターンの制御要因をコード進行から抽出した階層構
造の情報にのみ限定する必要はなく、例えば、階層構造
と乱数のそれぞれに重みを付け、両データの荷重和でア
ルペジオパターンを制御するようにし、重みを使用者が
指定できるようにしてもよい。要するに、使用者の作曲
上の意図がアルペジオの生成に反映されるように変形す
ることができる。 【0059】アルペジオパターン(LL)はコードデー
タCDiを用いることで音高表現の形式、すなわちメロ
ディデータ形式(アルペジオ)に変換される(53−
7)。そしてこのアルペジオに対し、非和声音がプロダ
クションルールに従って付加される(53−8)。この
非和声音の付加で使用するプロダクションルールはモチ
ーフに含まれる非和声音を分類するのに用いたものと同
一であり、したがって、メロディの分析と合成に関して
可逆性が成り立つ。 【0060】アルペジオに非和声音を付加することによ
り、メロディの音高列は完成する。メロディの音高列り
完成後は、メロディの音長列(リズムパターン)の生成
である(53−9)。ここでは、所定の音符数から成る
基本リズムパターン(エッセンス生成4−4またはエッ
センス抽出4−6において決定した音長列)が、初期設
定4−1において選択されたパルススケールにより変形
され、メロディの音高列と等しい音符数の音長列に変換
される。 【0061】アルペジオの生成、非和声音の付加、音長
データの生成は、図49のフローの場合、コード区間毎
に実行される。このため、53−10ではある区間で生
成したメロディデータを連続領域に移動している。 【0062】図50はアルペジオパターン(音型)の生
成、セーブ、ロードの詳細なフローチャートである(図
49の53−2、53−3、53−4の詳細)。本例で
は、階層構造データHIEiによるアルペジオパターン
LLの制御を次のようにして行っている。まず、着目し
ている楽節が、過去の楽節と構造上異なる区間であるか
どうかを着目している楽節の階層構造データを過去の階
層構造データと比較することにより判別する。異なる構
造をもつ区間と認めた楽節に対してのみ、新たにアルペ
ジオパターンLLを生成する。この生成は、上述したア
ルペジオパターンの特徴パラメータPCに基づいて行わ
れる。同様の構造をもつ区間と認めた楽節については、
新たにアルペジオパターンLLは生成しない。代りに、
過去において生成したアルペジオパターンのうち、着目
している区間と同様の構造をもつ区間において生成した
アルペジオパターンを使用する。 【0063】例えば、いま、4つの楽節から成る曲を想
定し、これら4つの楽節の構造がそれぞれa、b、c、
aであるとしてみる。最初の楽節の構造aは過去にみら
れない構造であるのでアルペジオパターンの特徴パラメ
ータに従ってアルペジオパターンが生成される。同様に
して第2楽節、第3楽節も過去にない新しい構造b、c
をもっているので、独立にアルペジオパターンか生成さ
れる。しかし、最終楽節は曲の最初の楽節と同じ構造a
である。したがって、最終楽節のアルペジオパターンと
しては、最初の楽節に対して生成したアルペジオパター
ンをそのまま使用する。 【0064】新しい構造をもつ楽節に対してアルペジオ
パターンを新たに生成するということは、この新しい構
造の楽節から別のモチーフが発生することを意味する。
いま、楽節の最初の小節に対して生成したアルペジオパ
ターンをその楽節の後続する小節に対してくり返し使用
したとすると1小節の長さのモチーフが意識されよう。
一般にモチーフの長さは1〜数小節であり、曲の途中で
モチーフの長さが変化することも多い。図50の例では
このことを考慮して、新しい構造の楽節が検知されたと
きに、その楽節におけるモチーフの長さとして1または
2小節を使用することができる。2小節のモチーフが選
択されたときは、楽節の最初の小節と2番目の小節で独
立にアルペジオパターンが生成され、後続する奇数番目
の小節は最初の小節のアルペジオパターンを使用し、後
続する偶数番目の小節は2番目の小節のアルペジオパタ
ーンを使用する。 【0065】過去の区間における階層構造データへの参
照、過去の区間におけるアルペジオパターンのくり返し
のために音型(LL)データバッファが用意される。音
型データバッファの例を図51に示す。 【0066】図50に従って説明すると、54−1で楽
節(図41に示すbarno毎の区間)内の小節カウン
タを“1”にセットする。54−2では現小節の階層構
造データHIEiを直前の小節の階層構造データHIE
i−1と比較することにより、楽節の開始か否かをチェ
ックする。例えば、|HIEi−HIEi−1|≧2が
成立するときが楽節の開始である。楽節の開始と判別さ
れたときは楽節内の小節カウンタを“1”にリセットす
る(54−3)。続いて音型データバッファをサーチし
て、現楽節がアルペジオパターンを新たに生成すべき楽
節かどうかを調べる(54−4)。音型データバッファ
のサーチは次のようにして行われる。まず、音型データ
バッファのアドレス0にあるデータ(既に何組の音型が
生成されているかを示すデータ)を読み、後続するアド
レス1からNまで示されるデータをアドレスとするとこ
ろのデータ(各音型のヘッダ情報)を順次、読み、その
上位8ビットに示される階層構造データを現小節の階層
構造データHIEiと比較する。音型データバッファ内
に現小節の階層構造データHIEiと同様な階層構造デ
ータ(例えば、HIEiと同じ値または(HIEi−
1)の値をもつデータ)がないとき、現小節はアルペジ
オパターンを新たに生成すべき楽節の最初の小節であ
る。同様の階層構造データをもつヘッダが見つかったと
きは、後続するアルペジオパターンを現小節のアルペジ
オパターンとしてロードする。新しい楽節の場合は、ま
ずモチーフを何小節の構成にするかを決定する(54−
5)。この決定は例えば乱数発生で実現できる。2小節
モチーフとなったときは、フラグflを“1”にセット
して(54−7、54−8)、次の小節(楽節の2番目
の小節)に対してもアルペジオパターンが新たに生成さ
れるようにする。そして、アルペジオパターンを生成し
(図52参照)、音型データバッファにセーブする(5
4−9)。詳細には、HIEi×0100+小節カウン
タの値×0010+モチーフの小節数によりヘッダを作
成し、音型データバッファのアドレス0における音型の
組の数Nをインクリメントし、アドレスNにヘッダのア
ドレスを書き込み、そのアドレスから、ヘッダ、LLN
O(生成したアルペジオパターンの長さ)、LL1、L
2……LLLLNO(生成したアルペジオパターンのデー
タ)を書き込む。その後、その他のメロディ生成の処理
を行い(54−10)、小節カウンタをインクリメント
する(54−11)。 【0067】54−2において楽節が変っていないこと
が認められたときは、フラグflをチェックする(54
−13)。fl=1のときは、現小節は2小節のモチー
フを生成する楽節の2番目の小節であるのでアルペジオ
パターンを再び生成し音型データバッファにロードし
(54−15)、フラグflを“0”にリセットする
(54−16)。fl=0のときは、現小節の階層構造
データHIEiに対応するヘッダをバッファからサーチ
し、そのヘッダの示すモチーフの長さの情報が1小節の
ときは、そのヘッダに後続する音型データをロードし、
モチーフの長さが2小節のときは小節カウンタの2の剰
余とヘッダの小節番号を比較し、一致すればそのヘッダ
に後続する音型データを現小節のアルペジオパターンと
してロードする。 【0068】図50の54−9、54−15で実行され
るアルペジオパターン(音型)の生成の詳細を図52に
示す。56−1のcknoはコード構成音の数を表わ
す。コード構成音数は、コード構成音データの16ビッ
トのうちで“1”である数をカウントすることで得られ
る(図26参照)。図52の例では、PC1〜PC5を生
成するアルペジオパターンの制御パラメータとしてい
る。r1は1〜cknoの範囲の乱数値をとり、コード
構成音番号を意味する(56−4)。r2はPC3(アル
ペジオパターンの最低音)〜PC2(アルペジオパター
ンの最高音)のオクターブコードの乱数値をとり、生成
するLLのオクターブ番号を表わす(56−5)。a=
1+r2×0100により生成するLLの候補を計算し
(56−7)、この候補aが、PCの条件を満足すると
き、候補aはLLとして採用される(56−8、56−
12、56−14)。ただし、PCの値によっては、先
行するLL(例えば一番目のLL1)が決定された後、
後続するLL2の候補は永久にPCの条件を満たさなく
可能性がある。例えば、PC2=501(アルペジオの
最高音は第5オクターブの第1コード構成音)、PC3
=401(アルペジオの最低音は第4オクターブの第1
コード構成音)、PC4=3(隣り合うLLの差の最大
値はコード構成音3つ分)、PC5=3(隣り合うLL
の差の最小値はコード構成音3つ分)のときにLL1
して、LL1=403(最初のLLは第4オクターブの
第1コード構成音)が得られたとするとPC4、PC5
条件に合わせるには、LL2=503または303(構
成音数3のとき)となり、これはPC2、PC3の条件に
合わない。このための予防としてループカウンタLOO
PCを用意し、ループカウンタLOOPCがある値(例
えば100)以上になったら強制的に候補aをLLとし
て採用している(56−9、56−10、56−1
1)。 【0069】図53は図52のチェック56−8の詳細
である。LLiの候補aがPCの条件を満足するには、 (イ)a≦PC2(最高音以下であること) (ロ)a≧PC3(最低音以上であること) (ハ)|a−LLi−1|≦PC4(直前のLLとの差
が最大値PC4以下であること) (ニ)|a−LLi−1|≧PC5(直前のLLとの差
が最小値PC5以上であること) が成立しなければならない。図53のフローではこれら
の条件が成立しないとき、フラグOKを“0”にセット
している(図中のoldaは直前のLLを表わす。56
−13参照)。 【0070】図54は図49の53−7の詳細である。
目的は、(オクターブ番号+コード構成音番号)で示さ
れるアルペジオパターンLLの形式を、コード構成音デ
ータccを使って(オクターブ番号+音名番号)で示さ
れるメロディ音高データの形式に変換して、MEDiに
格納することである。58−5、58−6の処理は、L
Liのコード構成音番号 【外8】 が現区間のコードのコード構成音数(CKNO)より大
きいときに、LLiのコード構成音番号を現区間のコー
ド構成音のうちで一番高いコード構成音番号に変更する
処理である。図中、cはコード構成音のカウンタ、 【外9】 はLLiのオクターブ番号、jは音名のカウンタであ
る。 【0071】図55と図56は図49の53−8におけ
る非和声音の付与の詳細である。この処理の目的はアル
ペジオに所望の非和声音を付与してメロディの音高列を
完成することである。非和声音の付加のために、上述し
た非和声音の特徴{RSi}、コード進行評価で得た調
性構造{KEYi}、非和声音を分類する知識を表現す
るプロダクションルールが利用される。付加される非和
声音は次の条件を満足しなければならない。 (イ)所定の音域内の音であること (ロ)コード進行評価で得たKEYiを主音とするスケ
ール上の音であること (ハ)コード構成外音であること (ニ)プロダクションルールで得た結論と計画された非
和声音識別子RSiとが一致すること 【0072】図55において、59−4〜59−18の
外側のループは計画された非和声音識別子RSiの数だ
け繰り返すループであり、59−5〜59−16のルー
プはアルペジオの音符の数だけ繰り返す。59−8〜5
9−14では、非和声音の候補として、下限loから上
限upまでの音域内にある各音高データkが順次検査さ
れる(図57参照)。音高データkが音階音であってコ
ード構成外音であるときは(59−8、59−9)、関
数Fを計算して(59−10)、プロダクションルール
による前向推論を実行し(59−11)、その結論が計
画された非和声音識別子RSiと一致するかどうかチェ
ックする(59−11)。一致するとき、音高データk
は上述した非和声音のとしての条件をすべて満足してい
る。したがって、付加される非和声数を計数するノンコ
ードトーンカウンタnctctをインクリメントし、見
つけ出された非和声音の音高データkをVMnctctに入
れ、非和声音の付加位置jをPOSTnctctにセット
し、関連するフラグfljを“1”にセットする(59
−19〜59−22)。本例では、和声音間に高々1つ
の非和声音が付加されるようにしており、flj=0
は、和声音MEDjとMEDj+1の間に非和声音がまだ
付加されていないことを示す。 【0073】59−12における結論=RSiの条件が
不成立のときは、着目している音高データkは非和声音
としての条件を満たさないので、音高データkをインク
リメントして(59−13)、処理を繰り返す。59−
14においてk>UPが成立するときは、和声音MED
jとMEDj+1の間に非和声音が付加されなかったこと
を意味する。したがってjをインクリメントして(59
−15)、次の和声音間に非和声音が付加できるかどう
かの検査に進む。 【0074】59−6における候補音の設定の詳細は図
58に示される。この例では、前後の和声音MEDi、
MEDi+1の高い方の音より5半音上から低い方の音よ
り5半音下までをサーチする音高の範囲としている(6
2−5〜62−7)。ただし、i=0のとき、すなわ
ち、着目している区間の最初の和声音の手前に非和声音
を付加しようとするときには、最初の和声音の5半音上
〜5半音下までを音高範囲とし(62−1、2)、i=
Vmednoのとき、すなわち着目している区間の最後の和
声音の後に非和声音を付加しようとするときには、最後
の和声音の5半音上〜5半音下までを音高範囲としてい
る(62−3、4)。 【0075】59−8における音高データkが音階音か
どうかのチェックの詳細を図61に示す。図中のSCA
LEiは、区間iで使用する音階の種類を表わし、図6
0に示すような音階データメモリ5のアドレスポインタ
となっている。このアドレスにある12ビット長の音階
データ*SCALEiを上述したコード進行評価で得た
KEYiだけ転回する(65−2)。例えば、SCAL
Eiが“0”(ダイアトニックスケール)の場合、その
データはCを主音とするドレミファソラシドを表わす。
KEYiが“5”(F)のとき、データを5つ転回する
ことにより、Fを主音とする音階データaに変換され
る。65−3は、音高データk(図中、MDで示されて
いる)を音階データと同じデータ形式に変換する処理で
あり、その結果bと音階データaとの論理積が“0”な
らば音高データkは音階音でないと結論され、論理積が
“0”でないとき、音階音と結論される(64−5〜6
4−7)。 【0076】59−10におけるFの計算の詳細を図5
9に示す。本例では、非和声音は前後の和声音間に1つ
だけ付加する構成であるので、いくつかの関数(図中、
1〜F3)については所定の値にセットしている。59
−11の前向推論の詳細は上述した図40に示される。 【0077】図55の処理が完了したとき、nctct
には付加された非和声音の総数が記憶され、配列{V
i}のi番目には、図55の処理においてi番目に付加
された非和声音の音高データが記憶され、配列{POS
Ti}のi番目には図55の処理においてi番目に付加
された非和声音の位置情報が記憶されている。 【0078】これらのデータは、図56の処理によっ
て、メロディの音高列{VMEDi}の形式に変換され
る。なお配列{VMEDi}は、アルペジオ{MED
i}に初期設定されている。60−2〜60−9は付加
位置の順番に、配列{POSTi}、{VMi}をソー
トする処理である。60−10〜60−19において、
位置データPOSTiで示される位置に非和声音の音高
データVMiを挿入している。 【0079】なお、本例では和声音の間に非和声音を1
つだけ付加可能にしているが、複数の非和声音が付加で
きるように処理を変更してもよい。ここまでで、メロデ
ィの音高列は完成する。残る処理はメロディの音長列の
生成である。 【0080】図62にメロディの音長列の生成のフロー
を示す(53−9の詳細)。まず、エッセンス生成また
は抽出で得た基準のリズムパターンの音符数を、着目し
ている区間で生成した音符数Vmedno(メロディの音高
列のデータ数)とを比較して、両者の差aを算出する
(66−1)。生成音符数の方が基準リズムパターンの
音符数より少ないとき(a>0のとき)は、パルススケ
ールによる音符の最適結合を、差の数だけ繰り返し実行
する(66−2〜66−6)。生成音符数の方が基準リ
ズムパターンの音符数より多いとき(a>0のとき)
は、音符の最適分割を差の分だけ繰り返し実行する(6
6−7〜66−11)。本例ではリズムパターンのデー
タ形式として、16ビット長のデータを使用し、各ビッ
ト位置を各タイミングに割り当て、“1”の値をもつビ
ット位置で音が発生することを表わしているので、最後
にMERデータ形式に変換する(66−12)。 【0081】結合処理の詳細は図63に示す。図中、P
SCALEjは使用するパルススケールのj番目の成分
スケールを表わし、RRは処理対象のリズムパターンで
ある。RRのビットが“1”のなかで、パルススケール
の重みが最小のポイントを“0”にすることで音符を結
合する。例えば、基準リズムパターンが 【外10】 であるときに、ノーマルノパルススケール(図11参
照)を使って、音符を1つ結合した場合、結果は、 【外1】となる。 【0082】これは、次のようにして得られる。まず、
RRは、当初 0001 0001 0101 0001 である。一方、ノーマルのパルススケールは 1213 1214 1213 1215 である。RRのビット“1”のうちでノーマルのパルス
スケールが最小の重みをもつポイントは、右端から7番
目の位置である。この位置のビットが“0”になる。し
たがって、結果のRRは、 0001 0001 0001 0001 となり、これは、 【外1】を表わしている。 【0083】分割処理の詳細は図64に示す。分割は、
RRのビットが“0”のなかでパルススケールの重みが
最大のポイントを“1”とすることで実行される。例え
ば、リズムパターン 【外11】 に対し、ノーマルのパルススケールで音符を分割したと
き、結果は、 【外12】 となる。 【0084】MERデータ形式への変換66−12の詳
細は図65に示す。図中、c1は音符のカウンタであ
り、c2は各音符の音長を計測するカウンタである。こ
の例で、MERoにはRRから最初の“1”が現われる
まで長さが入るので、区間の境界線(小節線)をまたぐ
音符も処理可能である(シンコペーション対策)。 【0085】データ移動53−10の詳細を図66に示
す。まず、MERo(現在の生成区間の頭の空白部分)
を生成済の最後の音符の音長データMELRmeldnoに加
える。ここにmeldnoは既に生成されている音符の数を表
わす。今回生成した音高列VMED1〜VMEDvmedno
をMELDに移動し、今回生成した音長列MER1〜M
ERvmednoをMELRに移動する(70−2〜70−
6)。meldnoを更新して終了する(70−7)。 【0086】<作曲機のまとめ>以上の説明から明らか
なように、自動作曲機としての本装置は種々の特徴を備
えており、そのいくつかを下記に示す。 (A)メロディの分析と合成において音楽知識を使って
推論を行うプロダクションシステムが組み込まれてい
る。 (B)メロディに含まれる非和声音を分類する処理と、
アルペジオに非和声音を付加する処理とが同一の音楽知
識を表現するプロダクションルールデータに基づいて行
われるため、両方の処理に可逆性がある。 (C)作曲の材料として与えられるコード進行を分析し
て、曲の階層構造、調性構造を抽出することにより、曲
が計画される。 (D)抽出した調性構造は各区間で使用される音階のキ
ーを規定する。この結果、調性感に富む自然なサウンド
の曲が保証される。 (E)抽出した階層構造はアルペジオの生成制御に利用
される。これにより、生成される曲に多様性と一貫性を
盛り込むことができる。 【0087】なお、上述した実施例は単なる例示であ
り、種々の変形、変更、改良が可能である。例えば、上
述した実施例ではモチーフから抽出したアルペジオパタ
ーンの特徴PCを、アルペジオパターンLLの生成にお
いて制御データとして使用しているが、アルペジオパタ
ーンの特徴PCを曲の進行に伴って変化させてもよい。
これは、例えば、曲の進行位置や階層構造を変数とする
関数の演算手段で実現できる。 【0088】同様に、非和声音の特徴{RSi}に関し
ても、曲の進行に伴って変化させることができる。例え
ば、モチーフから抽出した非和声音の特徴のなかの1つ
の非和声音識別子を他の非和声音識別子に置換する。こ
れは、非和声音の識別子のセットのなかから、乱数的に
1つを選択することで実現できる。 【0089】また、リズムに関し、上記実施例ではパル
ススケールによる音符の結合、分割により、リズムの制
御を行っているが、モチーフに含まれる支配的なミニリ
ズムパターンを抽出し、これを生成するメロディの音長
列のなかに組み込むようにしてもよい。 【0090】 【発明の効果】以上、詳細に説明したように、この発明
によれば、コード進行から曲に内在する調性構造を抽出
することができる。特に、コード進行の各コード区間の
調判定をコード進行の時間軸に沿ってコード進行の来歴
に従って順次行っているので、ある区間の調を決定する
上で後続する区間の調を参照する必要がない。また、抽
出した調情報を音楽の生成に利用することにより、調か
らはずれない自然な音楽の生成が可能になる。
DETAILED DESCRIPTION OF THE INVENTION [0001] BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a music device, and more particularly to a music device.
The present invention relates to a music device capable of determining a key. [0002] 2. Description of the Related Art Conventionally, the key of each section of music is determined.
No known music device is known. [0003] SUMMARY OF THE INVENTION
The purpose is to determine the key of each section of the music automatically
It is to provide a music device. [0004] According to the present invention, a chord progression is provided.
From the chord progression providing means
In the section of each chord in the chord progression given
The key,Along the timeline of chord progression, Up to the code
Key determination means for sequentially determining according to the history of chord progression;
A tonality judgment music device characterized by having
You. According to this configuration, each chord in chord progression
To determine the key of the section without using the key of the following section
Can be. Furthermore, according to the present invention, the chord progression
Code progress giving means for giving, and the above-mentioned code progress giving means
In each chord section in the chord progression given from the column
Chord progression along the time axis of chord progression
Key determination means for sequentially determining according to the history.
The determining means determines (a) the destination of the head code of the code progression;
A leading key determining means for determining a key of a head section, and (b) a code
Compare each code except the first code of progress with the first code
And compare the comparison result with the key of the section of each code for each code.
Calculated as the difference from the key of the first section (referred to as tonal distance)
Tonality distance calculation means and (c) calculation for the code of the current section
The tonality distance issued is determined for the code of the immediately preceding section.
Tonality distance, and according to the comparison result,
By changing the tonality distance calculated for the
Determining means for determining the tonality distance of the current section;
Based on the key of the determined first section
Conversion means for converting to a key and determining the key of the current section.
A tonality determination music device characterized by having
You. An embodiment described below is a key determination music apparatus according to the present invention.
Is applied to an automatic composer. [0005] Embodiments of the present invention will be described below. Book
Automatic composer divides sound into harmony and non-harmony
Approach. Basic data for composition
As chord progress information, motif (entered by user
Melody), melody rhythm or duration
The pulse scale used to control the train, the seed of the underlying scale
Kind is given. Each sound included in the motif is used in each section.
By using the chord information used, harmony and non-harmony
And identified. The part of the motif excluding the non-harmonic sounds
A motif arpeggio (dispersed chord). This alpe
From the geo, the characteristics of the arpeggio and the
Characteristic elements) are extracted. Also, harmony and non-harmony
For motifs that are distinguished from vocal sounds, non-harmonic
Music knowledge to classify sounds (this is the production
(Stored in the rule data memory)
The type of each non-harmonic tone included in the motif (special
Sign) can be extracted. In other words, which motif
Information indicating how such non-harmonic sounds are distributed
(Characteristics of non-harmonic sounds) is obtained. Further chord progression
Extracts the hierarchical structure and tonality structure of the song. A melody is generated by an arpeggio generation process.
The process comprises a non-harmonic sound adding step and a note length sequence generating step.
In the arpeggio generation process, it is extracted from the chord progression information.
The above hierarchical structure controls the generation of arpeggios
You. The hierarchical structure dictates the generation of new arpeggios
Arpeggio features (algorithms extracted from motifs)
Apegio features or modified versions of apegios)
Is generated, and the generated arpeggio is generated.
Expressed as a pitch sequence by applying the corresponding chord
An arpeggio is generated. The generated
A non-harmonic tone is added to the lupezio. With non-harmonic sound
The music knowledge described above is used again to add. Unharmony
In inference of sound addition, non-harmonic sounds that can be added are non-harmonic sounds
That it satisfies the characteristics of
Conditions. The scale note here is extracted from the chord progression.
According to the tonality structure issued, the main tones (keys,
This is the sound on the scale with the tonality turned. Classification of non-harmonic sounds
In addition to non-harmonic sounds, use common musical knowledge
Analysis and synthesis of melody by this device
"Reversibility" is given between. Complete reversibility and
Analyzed a certain melody and obtained a certain analysis result.
And on the contrary, a melody was generated based on the analysis results.
If the generated melody matches the original melody
Is Rukoto. To add a non-harmonic sound to the arpeggio
The melody pitch train is completed. Meanwhile, the melody sound
The long sequence is obtained as follows. That is, the basic
Rhythm (length sequence) becomes the target number of notes (for example,
Pulse scale so that the total number of non-harmonics)
Use optimal join or optimal split. Which notes are how much
Pulse scale selected or split
Depends on the weight of each pulse point. Therefore consistency
Rhythm control with a sense is possible. <Overall Configuration> FIG. 1 shows an automatic operation according to this embodiment.
1 shows an overall configuration diagram of a music machine. CPU 1 is the
This is a control device for realizing the operation music function. Input device
From 2, motif (melody), chord progression, use
The type of pulse scale used and the type of scale used are entered.
Is forced. Chord progression memory 4 stores chord progression information
The memory in the memory 4 analyzes the chord progression
To extract or generate arpeggios
Used by CPU1. Scale data memory 5
Memory for storing scale data representing various types of scales
Prior to composition, the user should select the scale to use in the song.
To select a specific scale from the scale set of this memory 5.
You can choose. Production rule data memo
Re6 stores musical knowledge for classifying non-harmonic sounds.
It is. This musical knowledge separates the non-harmonic sounds contained in the motif.
For example, when adding a non-harmonic sound to the arpeggio,
Used. The pulse scale memory 7 stores various pulse schedules.
Memory (set of pulse scales)
At the beginning of composition, the rhythm feature that the user gives to the song
From the pulse scale set
The desired pulse scale can be selected. Selected
Pulse scales generate melody rhythms
Used for The completed melody data memory 8 contains
Lody data is stored. External storage device is melody
Of the melody data stored in the data memory 8 and another sound
Used as a resource for easy knowledge and another composition program.
The work memory 10 stores various types of data used by the CPU 1 during operation.
Data, such as tonal structure, hierarchical structure, and various variables
It is memorized. Monitor 11 is CRT12, stave pudding
, The tone generation circuit, and the sound system 15
Composed, and composed and analyzed results through these devices
Can be displayed and output. <Composition General Flow>
Fig. 2 shows the general flow (composition general flow) of this device
Shown in In the initial setting of 4-1, the user sets the automatic
, Basic information for composition is input. Use
The information that the user notifies the automatic composer includes (1) BEA
T, (2) Type of pulse scale (3) Scale (4) All self
The motion motif input is shown. BEAT is a basic unit
The length of one measure expressed by the number of long notes (shortest notes)
And thus defines the time signature of the song. An example
For example, for a four-time tune, the basic unit length of a note is 1
If BEAT = 16 is set as 6th note, one bar
The length is four beats. The pulse scale selected in 4-1 is
Information that temporarily controls the rhythm of songs composed by an automatic composer
Information. The pulse scale has an interval of the basic unit length
At each pulse point, ease of combining notes or dividing notes
Is a weighted scale that represents
(See FIGS. 7 and 12), using this pulse scale
This controls the melody pitch sequence. Accordingly
Therefore, selecting the type of pulse scale is
Make sure that the rhythm feature of the song that the composer composes is selected.
And Type of scale selected in 4-1 (for example,
For example, diatonic scale)
This is the scale to use. In addition, initial setting 4-1
Is the composition performed automatically or based on motifs?
Is determined by the user. When fully automatic,
Important data are (1) chord progression, (2) product
(3) The pulse scale is the work memory 10
Read on (4-3), (1) Basic rhythm
(Duration pattern), (2) Arpeggio features (PCi:
(See FIG. 5), (3) Non-harmonic features (RSi: see FIG. 5)
Essence) is generated according to the user's instructions.
(4-4). On the other hand, composition mode using motifs
Then, as data reading 4-5, besides the above data,
The motif (input melody) is also read, and the essence and
(1) Rhythm (2) Arpeggio pattern (3) A
The characteristics of the lupegio pattern and (4) the characteristics of the non-harmonic
(4-5). In particular, non-harmonic sounds
Are obtained by inference based on production rules.
Can be Full automatic or motif use mode
Is also evaluated for chord progression 4-7, where (1) hierarchy
Structure (2) Tonality structure (3) Whether the scale is chord progression information
Extracted from This hierarchical structure is the song underlying the chord progression
It expresses the coherence and diversity of Also, the tonality structure
Tsukuri stipulates the key (fundamental tone) of the scale used in each section.
Is what you do. The process denoted by “scale” is a kind of
In the special chord section, regardless of the default scale
There is to use a specific scale. This process up to 4-7
The "analytical work" for composition has been completed. An example
For example, the arpeggio feature is the generation of arpeggio patterns
Information that is necessary for the arpeggio
This characterizes the non-harmonic sound to be added. Productivity
Is the non-harmonic sound added to the arpeggio appropriate?
Used to infer no. Also, the tonality structure
Constrain the candidate for Lody. Hierarchical structure
Can be used to decide whether or not to generate
You. The pulse scale is used for generating a rhythm.
In melody generation 4-8, (1) arpeggio pattern
(LLi: see FIG. 5), (2) arpeggio
Setting the range of the pattern (3) Creating an arpeggio for pitch expression
(4) Add non-harmonic sound, (5) Generate rhythm
It is. <Variable list and data format>
Fig. 3 shows a list of the main variables used in the data format.
Are shown in FIGS. The data format is just an example.
And any other suitable data format can be used.
You. <Initial setting> Composition general flow (Fig. 2)
FIG. 9 illustrates details of the initial setting 4-1 in FIG. this
Meaning of BEAT selected in the initial setting, pulse scale
Type (PULS), scale type (ISCALE)
The meaning of taste, fully automatic or motif input is explained with reference to FIG.
Therefore, the description is omitted here. The value of PULS is
A specific pulse scale stored in the scale memory 7 (FIG. 1)
Pointer, and the value of ISCALE is the scale data.
Pointer to specific scale data stored in data memory 5
Becomes <Data reading> The composition of FIG. 2
After initialization, 4-3 or 4-5
The data reading is executed at. Fully automatic
Does not use motifs as the basic data for composition
Does not read the motif data. Of each data
The reading will be described below. FIG. 10 shows a code progression memory 4 (FIG. 1).
An example of stored chord progression data is shown. Figure 11 shows the code
Load chord progression data stored in row memory 4
It is a flowchart. In the memory map shown in FIG.
Indicates that the code type (CDi) is placed at an even address,
The length of the code is placed at the next address (odd address).
Have been. For example, C with a value of 507 in hexadecimal notation
Di is G7thAnd has a value of 10
i has a chord length of 16 which is a basic time length (for example, a sixteenth note)
It means that it is double. [0013] In FIG. 11, a composer is included in the register CDi.
Enter the chord that appears at the i-th of the song
Enter the length. CDNO contains the total number of codes.
The other points are clear from the description of FIG.
The description is omitted. FIG. 12 shows a pulse scale memory 7 (FIG. 1).
2 shows an example of pulse scale data stored in the memory. FIG.
Selected in the initial setting from the pulse scale memory 7
5 is a flowchart for loading a pulse scale of various types.
You. In the case of this example, the song
The pulse scale seed selected to select the system characteristics
(PULS) is a special feature of the pulse scale memory 7.
Points to a fixed address (for example, 0)
Contains the start address of the selected pulse scale data.
Is in. This start address has a pulse scale
Construct subscale (a scale with only 0 and 1 weights)
The number of sub-scales is stored in each subsequent address.
Is stored. For example, normal pulse
Kale has five subscales FFFF, 5555, 1
111, 0101, 0001 (hexadecimal notation),
The corresponding binary representation is shown in FIG. Normal Pal
In the case of scale, the first pulse point (the rightmost point in FIG. 7)
Position) has a maximum weight of 5, which means that
If you select the normal pulse scale, the generated resources
The first note in each section (measure) of music
It indicates that it is easy. FIG. 14 is a production rule data memo.
Production rule data stored in Re6 (Fig. 1)
Is shown. FIG. 15 shows the data stored in the memory 6.
It is a flowchart which reads data. Production
The entire rule classifies the non-harmonic sounds contained in the melody
It expresses the musical knowledge required to perform
Option rule data is data that defines the premise of the rule.
Function data indicating the lower limit data Li and the type of function
Data Xi, upper limit data Ui, and the conclusion part of the rule.
As data Yi and Ni. Function is melody to analyze
It is a numerical representation of the characteristics of the day, an example of which is
Shown at 31. Function value Fxi represented by data Xi
Is not less than Li and not more than Ui (Li ≦ Fxi ≦ U
i) is the premise of the production rules (proposition)
And the conclusion when this premise is satisfied is the data Yi
And the conclusion when this premise is not satisfied is the data N
Indicated by i. Then, the data Yi or Ni is correct.
If the value has the value of
Indicates the number of the production rule to be used and may be negative.
The type of non-harmonic sound is expressed by its absolute value.
It is. Forward-looking inference always starts with one rule.
The rule is called a route. Conclusion Yi with negative value
The forward inference ends when Ni is found. The production rule data shown in FIG.
Address assignment for each production rule
Are five consecutive numbers starting from the address of the lower limit data Li.
Is stored at the address. Divisible by 5 in detail
The address is Li and the remainder 1 divided by 5 is Xi
However, Ui is in the address of remainder 2, and Yi is in the address of remainder 3.
For i, the data of Ni is stored at the address of the remainder 4. In FIG. 15, RULENO contains a product.
The total number of action rules is set. Other points
It is clear from the above description and the description of the flow. FIG. 16 shows the mode stored in the motif memory 3.
An example of chief data (melody data) is shown. FIG.
Flowchart that reads motif data that is the basis of composition
It is. In the case of FIG. 16, note pitch data is stored in even addresses.
Data MDi is stored in the next odd address,
Data MRi is stored. In the MDNO of FIG.
The number of notes in the motif is set. Read data
I'll finish my explanation. <Generation of Essence>
In full automatic composition mode, after reading data,
Rhythm, arpeggio pattern features,
The feature of the harmony is generated (4-4 in FIG. 2). Figure 18
Is shown in the flowchart of the essence generation of FIG. These d
Licenses can be specified by the user or generated automatically.
You. For example, setting the reference rhythm pattern in 22-1
Set the rhythm pattern generation means, for example,
4/4 time signature, normal selected as pulse scale
When you are [Outside 1] Automatically generate a reference rhythm pattern.
Or, the user can enter a favorite rhythm pattern
Done. 22-2 Arpeggio pattern feature setting and
22-3.
Performed by user input. FIG. 19 shows random number generation and the like.
Flow that automatically sets the characteristics of the arpeggio pattern
The user inputs the non-harmonic features in FIG.
And FIG. Arpeggio pattern feature setting (FIG. 19)
PC in1~ PCFiveIs within a section of a certain length (eg, bar)
The number of harmony sounds that make up the arpeggio, the highest harmony sound,
The lowest harmony, the maximum difference between adjacent harmony, the next
Represents the minimum value of the difference between matching chords (see FIG. 5).
See). Each PC can be generated for each section.
Set the upper and lower limits of the value, and generate random numbers between them.
And obtained. Or a series of PCs for the progress of the song
Is prepared in the database and the desired PC series is selected.
You may make it. In the characteristic setting of the non-harmonic sound shown in FIG.
The keyword corresponding to each non-harmonic tone type a
It is displayed to prompt the user for input (24-2). R
Sequence of non-harmonic tone identifier a input by the user in the array of Si
(24-3, 24-6, 24-7). End of input
When the code EOI indicating the
And exit the flow (24-8). <Extraction of Essence> Utilizing a motif
In the composition mode, after reading the data,
Essence (rhythm, arpeggio pattern, arpeggio
Pattern features, non-harmonic features) are extracted (Fig.
2, 4-6). Fig. 21 shows the rhythm evaluation of the motif.
Fig. 25 shows the extraction of the aeggio pattern.
FIG. 28 shows the feature extraction of non-harmonic sounds, and FIG. 29 shows the feature extraction of non-harmonic sounds.
For example. In these flows, each essence is a section
(Every measure). In the rhythm evaluation shown in FIG.
In Ps, the first note of the target bar is
Position information indicating whether the note is a note is entered, and Ps is represented by Ps.
The length of the note at the beginning of the indicated bar protruding into the previous bar
(Basic time expression) is entered, and Pe is the end of the target bar.
Position of the note (note before the first note of the next bar)
Enter information. Rr shown in 25-2 is the rhythm of the target bar
A 16-bit register for storing patterns.
If the node length is 16, the first bit of register rr
The position represents the first basic time of the measure, and similarly the Nth
Bit position represents the Nth basic time from the beginning of the measure
You. The processing from 25-3 to 25-9 is the musical note of the motif.
The position of the note from Ps to the note Pe is the motif length
Using the data MRi, the corresponding
This is the process of filling in the slot position. For example, as rr: 0001000100010001 Is obtained, this pattern rr is
Sound is generated at the first beat, second beat, third beat, and fourth beat of the bar
It represents that. Details of calculation of Ps, Pss, Pe, and Pee
Are shown in FIGS. Pee is the next sound of Pe
Note, the first note of the next bar interrupts the target bar
Indicates the length of the step. In the calculation flow of Ps and Pss in FIG.
And beat is the length of one measure (basic time length expression), ba
r is the number of the measure (the measure number specified by the user is
Express. The specified measure number is smaller than 1, but the song
If it is greater than the number of nodes (mno), it is an input error. Designation
If the number of bars is 1, set Ps = 1 and Pss = 0
(27-4, 27-5). The reason for Ps = 1 is first
Measure, the first note in the measure is not the first note in the song
Because it is nothing but the first note of all motif data
Yes, the reason for Pss = 0 is that there is no preceding bar
Because. A obtained in 27-21Is the target from the beginning of the song
This is the length of the bar to the front bar line, and this length a1The
Length obtained by accumulating chief duration data MRi from the beginning
S (27-7, 27-8, 27-10, 27
-12). S = a1Holds, the last accumulation in S
The next note after the i-th pitch data
Start with. Therefore, Ps = i + 1 and Pss = 0
(27-9). On the other hand, S> a1Holds when
A note having the duration data added last to S, ie, i
The second note is the first note of the target bar. Accordingly
Let Ps = i. Also, Pss = MRi-S + a1Toss
(27-9). The calculation flow of Pe and Pee shown in FIG.
Processing similar to that in FIG. 23 is performed. Where a1Is the beginning of the song
The length from to the bar at the end of the target bar is included, etc.
The description of this point is omitted. The extraction of the arpeggio pattern shown in FIG.
In the low, the arpeggio pattern from the motif of the target bar
{LLi} is extracted. To summarize the processing, P
chord progression information for the measures indicated by s and Pe
Using the corresponding code in the motif data
Determine whether the sound is a harmony,
Search for the corresponding chord component sound from the chords.
To get the data in the form of LL.
Of motif data, the first to be evaluated
Find the note (Ps) and the last note (Pe) (29-
1). Next, component sound data is generated from the chord data.
(29-2, FIG. 26, FIG. 27). As shown in FIG.
The constituent sound data memory is a type of chord whose root is C.
By class, the chord constituent tones are
It is stored as data. Each bit position represents each note name
The lowest bit position is C (C). For example, c
c = 0091 (hexadecimal) is in the bit position of do, mi and so
There is “1”, which represents the constituent sound of C major. Now
If it is the code Gmaj of the target section, the CD is 000
7 (hexadecimal). From the chord configuration sound data memory,
Measure at address specified by upper 8 bits of CD
Cc (= 0091) is read out.
Then, as shown in FIG.
By turning to the left by the root value indicated by the 8 bits
The bit of “1” is bit position 7, which indicates “so”, “shi” and “re”,
Go to 11 and 2 and the Gmaj chord constituent sound is expressed
You. In this way, the code structure of the target section
Generated sound data is generated. Next, the scale counter i and the harmony
The sound counter k is initialized (29-3, 29-4). 2
The processing of 9-5 is to convert the pitch data MDi of the motif into a code structure.
This is the process of converting to the same data formation as the sound data cc.
You. For example, the sound of “S” has “1” in bit position 7.
Is converted to data mm. At 29-6, the pitch data mm is converted to the chord structure.
Checking whether or not it is a sound. This is the pitch data m
Logical product of m and chord data cc [Outside 2] Can be determined. In 29-7 to 29-13,
In bit “1” of chord configuration sound data cc,
What number matches the bit "1" of the pitch data mm
The eye is examined to see if it is an eye,
Probe number [Outside 3] To create arpeggio pattern data LLk.
You. At 29-15, the counter i is advanced to the next note, and
LL is determined until the signal reaches Pe (29-16).
The LLNO of 29-17 indicates the number of chords (al
Enter the length of the pegio pattern). The characteristics of the arpeggio pattern shown in FIG.
Extraction results of 25 arpeggio patterns {LLi}, LL
Derived from NO. In the feature extraction of the non-harmonic sound shown in FIG.
Patterns of non-harmonic types distributed in section motifs
I'm asking. Set the non-harmonic counter and note counter
(33-2, 33-3), the note of interest is non-sum
In the case of a voice sound (33-4), a mochi centered on the note
Function F representing the characteristic element of the
Perform forward inference with rules to find the type of non-harmonic sound
Substitute into RSj (33-5 to 33-8). This non-harmony
By performing sound classification processing until Pe is reached,
{RSj} contains the non-harmonic tone of the motif in the target section
The sort order is set. 33-11 PSNO
Contains the total number of non-harmonic sounds in the elephant section. Whether MDi shown in 33-4 is a non-harmonic sound
30 is shown in detail in FIG. This discriminating process
In the extraction of the arpeggio pattern (FIG. 25),
This is the same as the process for determining whether the note
Yes, and focus on the notes that make up the chords in the target section.
Can be determined based on whether or not the note name of the note to be included is included. In the calculation of the function F in 33-6,
Motivation needed to classify non-harmonics in inference
Calculate the conditions or factors of the melody. Fig. 31
FIG. 39 shows a specific example thereof. In this example, the function F
hand, F1: Harmonic sound ahead of the note (non-harmonic sound) of interest
Is located (the position of the rear chord) FTwo: The harmony is located before the note of interest
Or (position of forward harmony) FThree: Non-harmonic tones from forward to backward
number FFour: Pitch difference between forward and backward harmony FFive: Non-harmonic sound between forward and backward harmony
Height distribution F6: The pitch of the melody from the front harmony to the rear harmony
Whether or not changes monotonically F7: Pitch difference between back chord sound and previous sound (back sum
Pitch progression to voice) F8: Pitch difference between the forward harmony and the succeeding one
Pitch progression from voice) Is calculated (FIG. 31). Besides this, whether it ’s a weak beat or a strong beat
Information and information for distinguishing the duration are added to the set of functions F.
You may. The flowchart for calculating each function F
The description is omitted because it is clear from the description of itself. Details of forward inference in 33-7 are shown in FIG.
Shown in First, the rule number pointer P is
Specify the rule that is the root in the application rules
Is set to "1" (44-1). After a while, Lou
Of the rule indicated by the number pointer P (Lp ≦ F
xp ≦ Up) is checked, and it is satisfied
The data Yp of the positive conclusion of the rule
Used as a pointer to the
The data Np of the rule's negative conclusion to the next rule
Used as However, when the data Yp and Np are negative
Value, the absolute conclusion has been reached, so its absolute value
(-Yp, -Np) as non-harmonic tone type identifier
Set in the logic register. According to the flow,
Condition Lp> Fxp or condition Fxp> Up of 44-5 is satisfied
, The premise Lp ≦ Fxp ≦ Up of the rule P is not satisfied.
Therefore, the data Np of the negative conclusion part of the rule is a
(44-4, 44-6), otherwise the previous
Since the advisory department is established, a is the data of the positive conclusion of rule P.
Yp enters (44-2). This a is substituted into P (44-
7) If P is a positive value, the next rule number pointer
Returns to the inspection of the next rule, and when P is negative, −P
Is the classification result of the non-harmonic sound (44-8, 44-9). As an example of the classification of non-harmonic sounds, the function F
In the calculation of F1= 1: One back-harmonic sound is the non-harmonic sound of interest
After FTwo= -1: The forward harmony is one of the non-harmonys of interest
In front FThree= 1: The number of notes between the preceding and following harmony is one FFour= 8: The pitch difference between the front and rear harmony is 8. FFive= 2: The non-harmonic sound between the preceding and following harmony is the preceding and following harmony
Distributed in the middle of the pitch of the sound F6= 1: The melody from the front harmony to the rear harmony is
The pitch is changing monotonically F7= 1: Progression to the back harmony with a pitch difference of 1 F8= 7: Proceeds with a pitch difference of 7 from the forward harmony Is obtained, and the production rule data
An inference is made using the data shown in FIG. First, when P = 1 (route),
Plaque 0 ≦ FTwo≤0 Is FTwo= −1, it is not established. Therefore,
Negative conclusion of route N1= 3 is the next rule to check
Become an interchange. For P = 3, premise of rule 3 0 ≦ F1≤0 Is F1= 1, it is not established. Therefore, NThree
= 5 is the pointer for the next rule. At P = 5,
Premise of Rule 5 0 ≦ FFour≤0 Is FFour= 8, so it does not hold. Therefore, NFive=
6 becomes P. At P = 6, premise of rule 6 1 ≦ F6≦ 1 Is F6= 1 holds. Therefore, the rule
Positive conclusion data Y of 66= 7 is the next access le
Pointer P of the rule. At P = 7, rule 7
Premise 3 ≦ F8≤∞ Is F8= 7 holds. Where Y7= -2 (negative)
It is. Therefore, conclusion = 2 (for the classified non-harmonic
Identifier). As can be seen from this example, any kind of
For non-harmonic sounds, a finite number of propositions hold (the premise does not hold)
This means that the proposition that makes the premise false is established.
Can be identified by the musical knowledge of "equal". This knowledge
Function F is calculated to express the sense
Rules have been created. That is, the function F is
Melody used in knowledge to classify vocal sounds
Check item information, production rule data
The rule sequence up to the classification result of each non-harmonic
They are linked by pointers. <Evaluation of Chord Progression>
One of the special features is to make the most of the chord progression for the song.
It is a sign. That is, in the composition general flow of FIG.
In the chord progress evaluation shown in 4-7,
Search for the hierarchical structure and tonality structure of the song based on the progress of the song
ing. The hierarchy is related to the consistency and diversity of the song,
For arpeggio generation control in melody generation described later
Used. On the other hand, the tonality structure
(Key) change, melody generation described later
Select the scale key to use for each section in
Used for In addition, special code
The process of planning to use a special scale for sections of
Running. Hereinafter, a hierarchical structure will be described with reference to FIGS.
Is described in detail. The flow shown in FIG.
Block with the length of
5 is a flowchart for calculating the similarity of the code progress. First, the song
The length SUM is the length CRi of each code in the code progress information.
It is obtained by accumulating (45-1), barno (measure
) Is converted to the basic pitch
And set the block length to 1 (45-2) and set the song length SUM to
Calculate the number m of blocks included in the song by dividing by the lock length l
(45-3). For the reference number of the block to compare
Is initialized to "0" (45-4). In 45-8 to 45-18, the i-th
Class of code between block and j-th block (j ≧ i)
The similarity Vij is calculated. As a function of similarity, (Equation 1) You are using Where l is the length of the block and V
s is the code of the i-th block and j-th
The code obtained when comparing with the code of the eye block
Indicates the number of matches of the key. The similarity function Vij is 0 to 1
It takes values up to 00, and when it is 100, two blocks
The chord progression is completely (100%) identical, and when it is 0, it is complete
All disagreements. Class of i-th block vs. j-th block
The calculation of the similarity is started from the position of j = i (45-6),
Each time the similarity is obtained, the next block is determined by j = j + 1.
(45-20, 45-7)
After going to the last block (45-19), i = i
The i-th block is shifted by +1 (45-2).
2, 45-5) and repeat until i becomes the last block.
Return. As a result, the j-th block for the i-th block
As the similarity Vij of the code of the eye block, [Outside 4] Is obtained. Note that Vij = Vji, that is, i-th
J-th block code similarity to the block, j
Code similarity of i-th block to i-th block
The degrees are equal. Also, Vii = 100. Calculation of code matching degree between blocks in FIG.
The result {Vij} is used for generating the hierarchical structure data shown in FIG.
Used. In FIG. 42, c represents the calculation of the hierarchical structure.
And a hierarchical structure of the j-th block in Hj.
The structure identifier is set. Hj is 0, 1, 2
Takes the integer value of ...... This is a,
a′b, b ′... (see HIEi in FIG. 6).
See). In the flow of FIG.
In addition, the block with 100% code match
Of the same value (even value) as the hierarchical structure identifier of the network
With child (46-10, 46-11), 70-100%
The block that matches in the range of
As a block with a line-qualified chord progression,
Hierarchical structure identification of the value obtained by adding 1 to the lock hierarchical structure identifier
A child is attached (46-12, 46-13). Also, 7
Blocks with a similarity of less than 0% are used as reference blocks.
The block is treated as a block having a hierarchical structure independent of the block.
Select the first block of the song as the first reference block
(46-2), 100% of this reference block
Or for blocks that match 70-100%
The evaluation values of Hj = 0 and Hj = 1 are attached, and the evaluation is completed.
Therefore, the flag flj of these blocks is set to “1”.
Set. This first evaluation loop (46-2 to 46)
Of the song blocks whose evaluation was not finalized in -15),
The youngest block is the reference block in the next evaluation loop.
(46-3, 46-4, 46-6)
The hierarchical structure identifier of the block is 2. The same applies to
It makes sense. As a result, every block of the song
Is assigned a hierarchical structure identifier Hj. The processing in FIG. 43 corresponds to the block obtained in FIG.
Convert unit hierarchy to bar-based hierarchical data
Processing. That is, HIEa in FIG.
The hierarchical structure identifier for the bar is set. Next, referring to FIG. 44 to FIG.
The structure extraction will be described. From tonal structure to chord progression
In this embodiment, the tonality of a general music piece is
The nature of the structure is taken into account. Its nature is (B) The tonality does not change frequently in the progress of the song,
It tends to maintain tonality. (B) The constituent sounds of a chord are on a musical scale of a specific tonality. (C) When transposition occurs, rather than turning to an unrelated key
It is easy to turn into relatives such as genus or lower genus. It is. The tonality structure to be extracted has the above properties.
Therefore, in this embodiment, a tonality distance is defined between the codes,
The code of the current section is at a predetermined distance from the previous section.
In some cases, the tonality of the current section is considered to be the same as that of the previous section.
You. FIG. 47 shows an example of the tonality distance between the chords.
You. As can be seen from FIG.
The tonality distance between C (eg Am and C) is zero and
Therefore, it has the same tonality (C). Also, 5 degrees below or
The tonality distance to the chord that is completely 5 degrees above is 2 or -2
are doing. Now Key C Datonic Scale (Doremi
Fasoraside), the tonality distance of ± 2 from code C
Six of the codes C, Am, G, Em, F, and Dm that are located apart from each other
The chords of which the chord constituent sounds are all
On the tonic scale. As described later, this embodiment
Then, the tonality will be
I try to keep it. In FIG. 44, 48-1 to 48-5
In FIG. 47, the processing in
Divide the tonality distance data according to the definition of the tonality distance
I'm guessing. That is, 48-1
Key key for the first chord1Set "0" as
Then, in 48-2 to 48-5, the following code CP
i key tones KEYi with the first code CD1Tonality KEY1When
Is calculated by calculating the distance. The tonality of 48-3 is
This is shown in FIG. In 50-1 [Outside 5] Is the extraction of the root data of the i-th chord CDi (see FIG. 4).
And the result is a1And aTwoIs assigned to While s
t is the first code CD1Contains the root note data. 50-
As shown in FIG.1Root sound data is 50-3 to 50-
Each time the circuit goes around the loop of No. 6, it is turned up five times.Twoof
The root data is turned down 5 degrees (the ring shown in FIG. 47).
Counterclockwise or clockwise).
50-3.1= St holds for CDi
When the root sound data i is turned up 5 times
At -4Two= St holds for CDi
When the data is turned down 5 times i. Therefore
For the former, put ix (-2) as the tonality distance in x.
(50-7) For the latter, ix2 is inserted into x. 5
0-9 to 50-17 are the first code CD1And focus on
Code CDi is major or minor
Depending on whether or not x is being converted
You. For example, CD1Is Am and CDi is Gmaj
And x = + 4 due to 50-7 (root sounds A and G
And for comparison). This is, according to FIG. 47, x = −2.
Have to become In this case, in FIG.
Go from 50-10 to 50-11, 50-13, and x = x
-6 gives x = -2. Also CD1Is Cma
If CDi is Bmin in j, x = 50 by 50-8
It is -10. This corresponds to the definition of the tonality distance in FIG.
Therefore, x = -4 must be satisfied. in this case,
In FIG. 46, 50-15, 50-15, 50-1
7 and x = -4 is obtained by x = x + 6. No.
The calculation result x in FIG. 46 is transferred to KEYi. The processing example of 48-1 to 48-5 is shown in FIG.
This is shown in (1). Chord progression C, C, F, G7, Bb,
F, G7, C, as the tonal distance {KEY}, KE
Y1= 0, KEYTwo= 0, KEYThree= + 2, KEYFour= −
2, KEYFive= + 4, KEY6= + 2, KEY7= -2,
KEY8= 0 is obtained. The tonality distance ΔKE thus obtained
Y} in the subsequent processing from 48-6 to 48-14
It is converted so as to have the tonality property described above. Sand
The tonality data immediately before is placed in the key and the current code
The tonality data is within ± 2 from this immediately preceding tonality data skey
At the distance of
Converted to gender data to maintain tonality and to distances exceeding ± 2
The tonality data of the current code
The value ± 2 is used as final tonal data. The processing side from 48-6 to 48-14 is shown in FIG.
(2). Chord progression C, C, F, G7, Bb,
F, G7, C, 0, 0,
0, 0, 2, 2, 0, 0 are obtained. In this way,
The tonality structure that has the desired properties for music
Data format. From 48-15 to 48-25 in FIG.
Represents the tonal structure data of distance expression
It is being converted into a sound name expression. This note name expression
Here, the number of “0” for C, the number of “1” for C #,.
A value is assigned. For example, change the first chord of the song to Cma
j, the i-th code is Fmaj, and this Fmaj
Let's assume that the tonality is “2” in the distance expression. to this
The corresponding note name expression is “5”. For this conversion,
The process goes from 48-15 to 48-16, 48-17,
Where a1= KEY1−KEYi × 7/2 is executed, and KEi
Y1= 0 and KEYi = 2, so a1= -7, 4
By the processing of 8-18 and 48-19, a1= 5 and this
This becomes KEYi (48-20). The first of the song
If the chord is major, [Outside 6] Gives the root of the scale of the first chord section,
In the case of a minor system, according to the relationship of Am = C, [Outside 7] To get the root note of the scale of the first chord section.
(48-16, 48-21 to 48-23). In FIG. 45 (3), 48-15 to 48-2
5 shows a processing example. Chord progression is C, C, F, G7, B
b, F, G7, C, use in each code section
The keys of the scale (tonic) are C, C, C, C, F, F,
C, C. As will be described later, the raw
Each sound of the resulting melody was extracted by the above processing
Selected from a scale with tonality data
You. Next, the scale evaluation will be described with reference to FIG.
Will be explained. The purpose of this process is to use special codes
Is used as a scale for melody generation.
And use a special scale. FIG. 48
ISCALE is selected in the initial setting 4-1 (Fig. 2).
This is the selected scale. Code CDi is Deminish
When the code is “dim”, the scale used in that section
Combination Deminish as Le SCACEi
Set the scale and code CDi is the augment code
When "aug", the whole tone scale
And set the code CDi to 7th code “7t”
h ”for dominant 7th scale
Is set. Also, the key of the section of these chords
Instead of the tonality data obtained in the previous tongue structure extraction process.
Uses the root of the chord. Therefore, these
The first scale in sections other than exceptional code sections
The scale of the type selected in the period setting is used
Is determined by the tonality data obtained in the tongue structure extraction process described above.
Can be <Melody Generation> The apparatus of this embodiment is
Provides the basic data of the composition
After analyzing and evaluating the data internally,
Move on. Melodies shown in 4-8 of the composition general flow (Fig. 2)
FIG. 49 illustrates a schematic flow of the generation of a di. In FIG.
HIEi is the code extracted in the previous chord progression evaluation.
Hierarchical structure data for each section, 53-2 to 53-4
As shown, the hierarchical data HIEi is arpeggio data.
It is used for controlling the generation of the pattern (LL). Of this control
Details will be described later. Furthermore, the hierarchical structure data is 53
-5 and 53-6, the arpeggio pattern (L
It can also be used to control the range of L). The arpeggio pattern is the basis of the melody sequence.
A fundamental skeleton is formed, and the range of the arpeggio pattern is melody
Basically regulate the range of D. In this embodiment, the control
Uses the hierarchical structure obtained from the chord progression,
This is one of the features of the embodiment. Arpeggi
Hierarchical structure that extracts control factors of pattern from chord progression
It is not necessary to limit only to the structure information, for example, the hierarchical structure
And random numbers, and weighted sum of both data
Control the lupeggio pattern and let the user
You may enable it to be specified. In short, the composition of the user
Transform the above intentions into the arpeggio generation
Can be The arpeggio pattern (LL) is a code data
By using CDi, the pitch expression format,
Is converted to a data format (arpeggios) (53-
7). A non-harmonic sound is produced by this arpeggio.
It is added according to the action rules (53-8). this
The production rules used for adding non-harmonic sounds are mochi.
Same as those used to classify non-harmonic sounds
And therefore the melody analysis and synthesis
Reversibility holds. By adding a non-harmonic tone to the arpeggio
The melody pitch train is completed. Melody pitch line
After completion, generation of melody length sequence (rhythm pattern)
(53-9). Here, it consists of a predetermined number of notes
Basic rhythm pattern (essence generation 4-4 or essence
The length sequence determined in the sense extraction 4-6) is the initial setting.
Deformed by the pulse scale selected in Rule 4-1
Is converted to a sequence of note lengths equal to the pitch sequence of the melody.
Is done. Generation of arpeggio, addition of non-harmonic sound, duration
In the case of the flow of FIG. 49, the data is generated for each code section.
Is executed. For this reason, in 53-10,
The created melody data is moved to the continuous area. FIG. 50 shows a raw arpeggio pattern (sound pattern).
It is a detailed flowchart of generation, save, and load (Figure
49, 53-2, 53-3, 53-4). In this example
Is an arpeggio pattern based on the hierarchical structure data HIEi
The control of LL is performed as follows. First, pay attention
Is the section that is structurally different from the past section?
The hierarchical structure data of the passage of interest
It is determined by comparing with the layer structure data. Different composition
New arpeggios only for passages recognized as
A geopattern LL is generated. This generation is based on the
Performed based on the feature parameter PC of the lupe-geo pattern
It is. For passages recognized as having the same structure,
No new arpeggio pattern LL is generated. Instead,
Focus on arpeggio patterns generated in the past
Generated in the section with the same structure as the section
Use an arpeggio pattern. For example, consider a song composed of four passages.
And the structure of these four passages is a, b, c,
Let's assume it is a. The structure of the first passage is in the past
Features of the arpeggio pattern
An arpeggio pattern is generated according to the data. Likewise
And the second and third passages have new structures b and c
Arpeggio pattern or generated independently
It is. However, the last passage has the same structure as the first passage of the song.
It is. Therefore, the arpeggio pattern of the last passage
Arpeggio pattern generated for the first passage
Use the An arpeggio for a phrase with a new structure
Creating a new pattern means this new structure.
It means that another motif arises from the style passage.
Now, the arpeggio created for the first bar of the passage
Repeat use of the turn for subsequent measures of the passage
If you do, you will notice a motif that is one bar long.
Generally, the length of a motif is one to several measures,
The length of the motif often changes. In the example of FIG.
Taking this into account, it is assumed that a new structure passage has been detected.
The length of the motif in the passage is 1 or
Two measures can be used. Two bar motif selected
When selected, the first and second measures of the passage are independent.
An arpeggio pattern is generated at the beginning, followed by an odd number
Measures use the arpeggio pattern of the first measure,
The even-numbered bar that follows is the arpeggio pattern of the second bar.
Use Reference to Hierarchical Structure Data in Past Section
, Repeat arpeggio pattern in the past section
For this purpose, a sound (LL) data buffer is prepared. sound
FIG. 51 shows an example of the type data buffer. Referring to FIG. 50, it is easy to write 54-1.
Bar count within a bar (section for each barno shown in FIG. 41)
Is set to "1". 54-2 shows the hierarchical structure of the current bar.
Structured data HIEi is converted to the hierarchical structure data HIE of the immediately preceding bar.
Compare with i-1 to see if it is the beginning of a passage.
Click. For example, | HIEi-HIEi-1 |
The time when it is established is the start of the passage. The start of the passage is determined
Resets the bar counter in the passage to "1"
(54-3). Then search the sound data buffer
The current passage should generate a new arpeggio pattern.
It is checked whether it is a node (54-4). Sound data buffer
Is performed as follows. First, the sound pattern data
The data at address 0 of the buffer (how many sets of
Data that indicates whether it has been generated)
Address 1 to N is an address.
And then read the data (header information of each sound type) sequentially.
The hierarchical structure data indicated by the upper 8 bits is assigned to the level of the current bar.
Compare with the structure data HIEi. In sound type data buffer
The hierarchical structure data similar to the hierarchical structure data HIEi of the current bar
Data (for example, the same value as HIEi or (HIEi-
When there is no data with the value of 1), the current bar is arpeggiated.
This is the first measure of the passage for which a new pattern is to be generated.
You. If a header with similar hierarchical data is found
When the following arpeggio pattern is
Load as pattern. For new passages,
The number of bars in the motif is determined (54-
5). This determination can be realized by random number generation, for example. 2 bars
If it becomes a motif, set flag fl to “1”
(54-7, 54-8) and the next bar (the second
A new arpeggio pattern is generated for
To be And generate an arpeggio pattern
(See FIG. 52), and saves the data in the sound pattern data buffer (5
4-9). In detail, HIEi x 0100 + measure count
The header is created based on the value of data × 0010 + the number of measures in the motif.
Of the sound pattern at address 0 of the sound data buffer.
The number N of pairs is incremented, and the header N is added to the address N.
Write the address, and from that address, header, LLN
O (length of generated arpeggio pattern), LL1, L
LTwo... LLLLNO(Data of generated arpeggio pattern
Write). After that, other melody generation processing
(54-10) and increment the bar counter
(54-11). The phrase is not changed in 54-2.
Is found, the flag fl is checked (54).
-13). When fl = 1, the current bar is a two-bar mochi
Arpeggio because it is the second measure of the passage that generates the
Generate the pattern again and load it into the sound data buffer.
(54-15), the flag fl is reset to "0"
(54-16). When fl = 0, the hierarchical structure of the current bar
Search for buffer corresponding to data HIEi from buffer
And the length information of the motif indicated by the header is one measure
At that time, load the following sound pattern data into the header,
If the length of the motif is two measures, the remainder of the measure counter is 2
Compare the remainder with the measure number of the header, and if they match, the header
And the arpeggio pattern of the current bar
And load. The processing is executed at 54-9 and 54-15 in FIG.
Fig. 52 shows the details of generating arpeggio patterns (sound patterns).
Show. The ckno of 56-1 indicates the number of chord constituent sounds.
You. The number of chord constituent sounds is 16 bits of chord constituent sound data.
By counting the number of "1"
(See FIG. 26). In the example of FIG.1~ PCFiveRaw
Arpeggio pattern control parameters
You. r1Takes a random value in the range of 1 to ckno and codes
It means the constituent sound number (56-4). rTwoIs PCThree(Al
The lowest note of the pegio pattern) ~ PCTwo(Arpeggio putter
Octave chord random number value
(56-5). a =
r1+ RTwoCalculate LL candidates generated by × 0100
(56-7), when this candidate a satisfies the condition of PC
Candidate a is adopted as LL (56-8, 56-
12, 56-14). However, depending on the value of PC,
LL to execute (for example, first LL1) Is decided,
Subsequent LLTwoNo longer satisfies PC requirements
there is a possibility. For example, PCTwo= 501 (of the arpeggio
The highest note is the first chord component of the fifth octave), PCThree
= 401 (The lowest note of the arpeggio is the first of the fourth octave
Chord composition sound), PCFour= 3 (maximum difference between adjacent LLs)
The value is for 3 chords), PCFive= 3 (adjacent LL
Is LL when the minimum value of1When
Then LL1= 403 (the first LL is the fourth octave
Assuming that the first chord component sound is obtained, the PCFour, PCFiveof
To meet the conditions, LLTwo= 503 or 303 (composition
When the number of sounds is 3), this is the PCTwo, PCThreeOn the condition
Do not fit. To prevent this, the loop counter LOO
Prepare a PC and set the loop counter LOOPC to a certain value (example
For example, when it becomes 100) or more, the candidate a is forcibly set to LL.
(56-9, 56-10, 56-1
1). FIG. 53 shows details of the check 56-8 in FIG.
It is. In order for LLi candidate a to satisfy the condition of PC, (B) a ≦ PCTwo(Below the highest note) (B) a ≧ PCThree(Must be at least the lowest note) (C) | a-LLi-1 | ≤PCFour(Difference from previous LL
Is the maximum value PCFourBelow) (D) | a-LLi-1 | ≥PCFive(Difference from previous LL
Is the minimum value PCFiveAbove) Must be established. In the flow of FIG.
Flag OK is set to "0" when the condition of
(Olda in the figure represents the immediately preceding LL. 56
-13). FIG. 54 shows the details of 53-7 in FIG.
The purpose is indicated by (octave number + chord number)
The format of the arpeggio pattern LL
Using data cc (octave number + note name number)
Melody pitch data format and convert it to MEDi
It is to store. The processing of 58-5 and 58-6 is L
Li chord composition tone number [Outside 8] Is greater than the number of chord components (CKNO) of the chord in the current section
At the time, the code number of the LLi chord
Change to the highest chord component number
Processing. In the figure, c is a counter of chord constituent sounds, [Outside 9] Is the octave number of LLi, and j is the note name counter
You. FIGS. 55 and 56 are the same as those in FIG.
7 shows details of the addition of a non-harmonic sound. The purpose of this process is
Add the desired non-harmonic sound to Pesio to create a melody pitch train
It is to be completed. To add a non-harmonic tone,
Of non-harmonic tones {RSi}, tones obtained by chord progression evaluation
Gender structure {KEYi}, expresses knowledge to classify non-harmonic sounds
Production rules are used. Discord added
The voice must meet the following conditions: (B) Sound within the specified range (B) A schedule with KEYi as the main tone obtained in the chord progression evaluation
Sound (C) Sound outside the chord configuration (D) Conclusions and planned non-
Match with harmony identifier RSi In FIG. 55, 59-4 to 59-18
The outer loop is the number of planned non-harmonic identifiers RSi
It is a loop that repeats
The loop repeats the number of arpeggio notes. 59-8-5
In 9-14, as a candidate for a non-harmonic tone,
Each pitch data k within the range up to the limit up is sequentially examined.
(See FIG. 57). If the pitch data k is a scale tone and
(59-8, 59-9), the sound
Calculate the number F (59-10) and get the production rule
(59-11), and the conclusion is
Check whether the selected non-harmonic tone identifier RSi matches
(59-11). When they match, the pitch data k
Satisfies all of the above conditions for non-harmonic sounds
You. Therefore, the non-core that counts the number of added non-harmony
The tone tone counter nctct is incremented and checked.
The pitch data k of the found non-harmonic tone is input to VMnctct.
And set the non-harmonic sound addition position j to POSTnctct
And the associated flag fljIs set to “1” (59
-19 to 59-22). In this example, at most one
Non-harmonic sound is added, and flj= 0
Is the harmony MEDj and MEDj + 1A non-harmonic sound is still in between
Indicates that it has not been added. Conclusion at 59-12 = The condition of RSi is
If not established, the pitch data k of interest is a non-harmonic tone
Does not satisfy the condition as
Is incremented (59-13), and the process is repeated. 59-
14, when k> UP is satisfied, the harmony MED
j and MEDj + 1That no non-harmonic sounds were added during
Means Therefore, j is incremented (59
−15), whether non-harmonic sounds can be added between the next harmonic sounds
Proceed to inspection. Details of the setting of candidate sounds in 59-6 are shown in FIG.
At 58 is shown. In this example, the front and rear chords MEDi,
MEDi + 1Lower than 5 semitones higher than the higher sound
The search range is up to 5 semitones below (6
2-5 to 62-7). However, when i = 0,
Before the first harmony of the section of interest,
Is to be added, 5 semitones above the first harmony
The pitch range is set to up to 5 semitones below (62-1, 2), i =
In the case of Vmedno, that is, the last sum of the section of interest
When trying to add a non-harmonic sound after the voice,
Pitch range from 5 semitones to 5 semitones below
(62-3, 4). Whether the pitch data k in 59-8 is a scale tone
The details of the check are shown in FIG. SCA in the figure
LEi represents the type of the scale used in the section i.
Address pointer of scale data memory 5 as shown at 0
It has become. 12-bit length scale at this address
Data * SCALEi was obtained by the above-described chord progression evaluation
Turn by KEYi (65-2). For example, SCAL
If Ei is “0” (diatonic scale)
Data represents Doremifasoraside with C as the tonic.
When KEYi is "5" (F), five data turns
By this, it is converted to scale data a with F as the tonality
You. 65-3 is pitch data k (indicated by MD in the figure)
Is converted to the same data format as the scale data.
And the logical product of the result b and the scale data a is "0".
It is concluded that the pitch data k is not a scale sound, and the logical product is
If it is not "0", it is concluded that the scale is (64-5-6).
4-7). The details of the calculation of F in 59-10 are shown in FIG.
It is shown in FIG. In this example, there is one non-harmony between the previous and next
Is added, so some functions (in the figure,
F1~ FThreeIs set to a predetermined value. 59
Details of the forward inference of −11 are shown in FIG. 40 described above. When the processing of FIG. 55 is completed, nctct
Stores the total number of added non-harmonic tones, and the array {V
The ith of} is added to the ith in the processing of FIG.
Pitch data of the selected non-harmonic tones are stored in the array {POS
The i-th of Ti} is added to the i-th in the processing of FIG.
The position information of the selected non-harmonic sound is stored. These data are obtained by the processing of FIG.
Is converted to the melody pitch sequence {VMEDi}
You. The sequence {VMEDi} is the arpeggio {MED
i} is initially set. 60-2 to 60-9 are added
Array {POSTi}, {VMi} in order of position
This is the process to be performed. In 60-10 to 60-19,
Non-harmonic pitch at the position indicated by the position data POSTi
Data VMi is inserted. In this example, one non-harmonic sound is added between harmonic sounds.
Only one non-harmonic sound can be added.
The processing may be changed so that it can be performed. So far, Melody
The row of pitches is completed. The rest of the processing is
Generation. FIG. 62 shows a flow of generating a melody note length sequence.
Is shown (details of 53-9). First, essence generation or
Pays attention to the number of notes of the reference rhythm pattern obtained by extraction.
Note number Vmedno (melody pitch)
To calculate the difference a between the two.
(66-1). The number of generated notes is
When the number is smaller than the number of notes (when a> 0), the pulse schedule
The best combination of notes by the number of differences
(66-2 to 66-6). The number of generated notes is
More than the number of notes in the rhythm pattern (when a> 0)
Performs the optimal division of the note repeatedly by the difference (6
6-7 to 66-11). In this example, the rhythm pattern data
16-bit data is used as the data format.
A position with a value of “1” is assigned to each timing.
This indicates that sound is generated at the
(66-12). FIG. 63 shows the details of the combining process. In the figure, P
SCALEj is the jth component of the pulse scale used
Where RR is the rhythm pattern to be processed
is there. Pulse scale when RR bit is “1”
By setting the point with the smallest weight to “0”, notes are connected.
Combine. For example, if the reference rhythm pattern is [Outside 10] , The normal no pulse scale (see FIG. 11)
)), The result of combining one note is [1] This is obtained as follows. First,
RR initially 0001 0001 0101 0001 It is. On the other hand, the normal pulse scale is 1213 1214 1213 1215 It is. Normal pulse in bit "1" of RR
The point with the smallest weight on the scale is number 7 from the right end.
Eye position. The bit at this position becomes “0”. I
Thus, the resulting RR is 0001 0001 0001 0001 And this is ## EQU1 ## FIG. 64 shows the details of the division process. The split is
When the RR bit is "0", the pulse scale weight is
This is executed by setting the maximum point to “1”. example
Rhythm pattern [Outside 11] On the other hand, if you divide the note with the normal pulse scale
And the result is [Outside 12] Becomes Details of Conversion to MER Data Format 66-12
The details are shown in FIG. In the figure, c1Is a note counter
And cTwoIs a counter for measuring the duration of each note. This
In the above example, the first “1” appears from RR in MERo
Spans the boundary (bar line) of the section
Notes can also be processed (measures against syncopation). FIG. 66 shows the details of data movement 53-10.
You. First, MERo (the blank part at the beginning of the current generation section)
Is added to the duration data MELRmeldno of the last note that has been generated.
I can. Here meldno shows the number of notes already generated.
I forgot. The pitch sequence VMED generated this time1~ VMEDvmedno
Is moved to the MELD, and the duration string MER generated this time is moved.1~ M
Move ERvmedno to MELR (70-2 to 70-
6). After updating meldno, the process ends (70-7). <Summary of Composer> It is clear from the above description.
Thus, this device as an automatic composer has various features.
Some of them are shown below. (A) Using music knowledge in melody analysis and synthesis
A production system that performs inference
You. (B) a process of classifying non-harmonic sounds included in the melody;
The same process as adding non-harmonic sounds to arpeggios
Based on production rule data
Therefore, both processes are reversible. (C) Analyze the chord progression given as the composition material
By extracting the hierarchical structure and tonality structure of the song,
Is planned. (D) The extracted tonal structure is the key of the scale used in each section.
Stipulate. This results in a natural sound with a rich tonality
Songs are guaranteed. (E) The extracted hierarchical structure is used for controlling arpeggio generation
Is done. This adds variety and consistency to the resulting song
Can be included. The above-described embodiment is merely an example.
Various modifications, changes, and improvements are possible. For example, on
In the described embodiment, the arpeggio pattern extracted from the motif
The feature PC is used to generate the arpeggio pattern LL.
Is used as control data.
May be changed as the music progresses.
This is, for example, using the progress position of the song or the hierarchical structure as variables
It can be realized by means of calculating functions. Similarly, regarding the characteristic {RSi} of the non-harmonic sound
However, it can be changed as the music progresses. example
One of the characteristics of non-harmonic tones extracted from motifs
Is replaced with another non-harmonic identifier. This
This is randomized from a set of non-harmonic identifiers.
This can be realized by selecting one. Further, with respect to the rhythm,
Rhythm control by combining and dividing notes with scale
The dominant miniri included in the motif
Extracts the rhythm pattern and generates the melody's duration
You may make it incorporate in a row. [0090] As described in detail above, the present invention
According to the chord progression, the tonal structure inherent in the song is extracted
can do.In particular, each chord section of chord progression
Chord progression history along the time axis of chord progression
To determine the key of a certain section
There is no need to refer to the key of the following section above.Also, extraction
By using the generated key information to generate music,
Natural music that does not deviate can be generated.

【図面の簡単な説明】 【図1】本発明の一実施例に係る自動作曲機の全体構成
図。 【図2】作曲機モードにおける全体的な動作を示すフロ
ーチャート。 【図3】処理において使用される主な変数のリストを示
す図。 【図4】使用されるデータの形式を示す図。 【図5】使用されるデータの形式を示す図。 【図6】使用されるデータの形式を示す図。 【図7】使用されるデータの形式を示す図。 【図8】使用されるデータの形式を示す図。 【図9】初期設定のフローチャート。 【図10】コード進行メモリに記憶されるコード進行デ
ータの例を示す図。 【図11】コード進行データの読み込みのフローチャー
ト。 【図12】パルススケールメモリに記憶されるパルスス
ケールデータを例示する図。 【図13】パルススケールデータの読み込みのフローチ
ャート。 【図14】プロダクションルールデータメモリに記憶さ
れるプロダクションルールデータを例示する図。 【図15】プロダクションルールデータの読み込みのフ
ローチャート。 【図16】モチーフメモリに記憶されるメロディデータ
(モチーフデータ)を例示する図。 【図17】メロディデータの読み込みのフローチャー
ト。 【図18】エッセンス生成のフローチャート。 【図19】アルペジオパターンの特徴を設定するフロー
チャート。 【図20】非和声音の特徴を設定するフローチャート。 【図21】モチーフのリズムを区間別に評価するフロー
チャート。 【図22】Ps、Pe、Pss、Peeの算出のフロー
チャート。 【図23】Ps、Pssの算出のフローチャート。 【図24】Pe、Peeの算出のフローチャート。 【図25】モチーフのアルペジオパターンを抽出するフ
ローチャート。 【図26】各コードの構成音データの例を示す図。 【図27】コードデータから構成音データを生成するフ
ローチャート。 【図28】アルペジオパターンの特徴を抽出するフロー
チャート。 【図29】非和声音の特徴を抽出するフローチャート。 【図30】コードに基づいてメロディ音を和声音と非和
声音とに分類するフローチャート。 【図31】分析対象のメロディの状況を表わす関数Fを
計算するフローチャート。 【図32】関数F1の算出のフローチャート。 【図33】関数F2の算出のフローチャート。 【図34】関数F3の算出のフローチャート。 【図35】関数F4の算出のフローチャート。 【図36】関数F5の算出のフローチャート。 【図37】関数F6の算出のフローチャート。 【図38】関数F7、F8の算出のフローチャート。 【図39】計算した関数Fを一時記憶するフローチャー
ト。 【図40】非和声音の種類を推論するフローチャート。 【図41】ブロック間のコード進行の一致度を算出する
フローチャート。 【図42】算出された一致度から階層構造データを生成
するフローチャート。 【図43】ブロックの階層構造データをコード区間ごと
の階層構造データに変換するフローチャート。 【図44】コード進行から調性構造を抽出するフローチ
ャート。 【図45】調性構造の抽出過程を例示する図。 【図46】最初のコードCD1とi番目のコードCDi
との調性距離を算出するフローチャート。 【図47】コード間の調性距離の定義を示す図。 【図48】スケール(音階)の処理を示すフローチャー
ト。 【図49】メロディ生成のフローチャート。 【図50】音型(アルペジオパターン)の生成、セー
ブ、ロードを示すフローチャート。 【図51】音型のデータバッファを例示する図。 【図52】アルペジオパターン生成のフローチャート。 【図53】アルペジオパターン生成におけるチェックの
フローチャート。 【図54】アルペジオパターンをメロディデータ形式に
変換するフローチャート。 【図55】アルペジオに非和声音を付加するフローチャ
ート。 【図56】アルペジオに非和声音を付加するフローチャ
ート。 【図57】非和声音付加処理の順序を示す図。 【図58】非和声音の候補とする音高の範囲を設定する
フローチャート。 【図59】関数Fの計算のフローチャート。 【図60】音階データメモリに記憶されるスケールデー
タの例を示す図。 【図61】音階音の識別のフローチャート。 【図62】メロディの音長データを生成するフローチャ
ート。 【図63】音符の最適結合のフローチャート。 【図64】音符の最適分割のフローチャート。 【図65】生成したリズムパターンをMERデータ形式
に変換するフローチャート。 【図66】生成したメロディデータを連続領域に移動す
るフローチャート。 【符号の説明】 1 CPU 4 コード進行メモリ CDi i番目のコード KEYi i番目のコード区間における調
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is an overall configuration diagram of an automatic music composer according to an embodiment of the present invention. FIG. 2 is a flowchart showing an overall operation in a composer mode. FIG. 3 is a diagram showing a list of main variables used in processing. FIG. 4 is a diagram showing a format of data used. FIG. 5 is a diagram showing a format of data used. FIG. 6 is a diagram showing a format of data used. FIG. 7 is a diagram showing a format of data used. FIG. 8 is a diagram showing a format of data used. FIG. 9 is a flowchart of initialization. FIG. 10 is a diagram showing an example of chord progression data stored in a chord progression memory. FIG. 11 is a flowchart of reading chord progression data. FIG. 12 is a diagram illustrating pulse scale data stored in a pulse scale memory; FIG. 13 is a flowchart of reading pulse scale data. FIG. 14 is a view exemplifying production rule data stored in a production rule data memory. FIG. 15 is a flowchart of reading production rule data. FIG. 16 is a diagram illustrating melody data (motif data) stored in a motif memory; FIG. 17 is a flowchart of reading melody data. FIG. 18 is a flowchart of essence generation. FIG. 19 is a flowchart for setting characteristics of an arpeggio pattern. FIG. 20 is a flowchart for setting characteristics of non-harmonic sounds. FIG. 21 is a flowchart for evaluating the rhythm of a motif for each section. FIG. 22 is a flowchart for calculating Ps, Pe, Pss, and Pee. FIG. 23 is a flowchart for calculating Ps and Pss. FIG. 24 is a flowchart for calculating Pe and Pee. FIG. 25 is a flowchart for extracting an arpeggio pattern of a motif. FIG. 26 is a diagram showing an example of constituent sound data of each chord. FIG. 27 is a flowchart for generating constituent sound data from chord data. FIG. 28 is a flowchart for extracting features of an arpeggio pattern. FIG. 29 is a flowchart for extracting characteristics of non-harmonic sounds. FIG. 30 is a flowchart for classifying melody sounds into harmony sounds and non-harmony sounds based on codes. FIG. 31 is a flowchart for calculating a function F representing a melody situation to be analyzed; Flow chart of the calculation of Figure 32 functions F 1. Flow chart of the calculation of Figure 33 functions F 2. Figure 34 is a flowchart of the calculation of the function F 3. Figure 35 is a flowchart of the calculation of the function F 4. Figure 36 is a flowchart of the calculation of the function F 5. FIG. 37 is a flowchart of calculating a function F 6 . FIG. 38 is a flowchart for calculating functions F 7 and F 8 . FIG. 39 is a flowchart for temporarily storing a calculated function F; FIG. 40 is a flowchart for inferring types of non-harmonic sounds. FIG. 41 is a flowchart for calculating the degree of coincidence of chord progression between blocks. FIG. 42 is a flowchart for generating hierarchical structure data from the calculated degree of coincidence. FIG. 43 is a flowchart of converting hierarchical structure data of a block into hierarchical structure data for each code section. FIG. 44 is a flowchart for extracting a tonal structure from a chord progression. FIG. 45 is a view exemplifying a tonal structure extraction process. FIG. 46: First code CD 1 and i-th code CDi
9 is a flowchart for calculating a tonality distance between the two. FIG. 47 is a diagram showing a definition of a tonality distance between chords. FIG. 48 is a flowchart showing scale (scale) processing. FIG. 49 is a flowchart of melody generation. FIG. 50 is a flowchart showing generation, saving, and loading of a sound pattern (arpeggio pattern); FIG. 51 is a diagram illustrating a sound data buffer; FIG. 52 is a flowchart of arpeggio pattern generation. FIG. 53 is a flowchart of a check in arpeggio pattern generation. FIG. 54 is a flowchart for converting an arpeggio pattern into a melody data format. FIG. 55 is a flowchart for adding a non-harmonic sound to an arpeggio. FIG. 56 is a flowchart for adding a non-harmonic sound to an arpeggio. FIG. 57 is a view showing the order of non-harmonic sound addition processing. FIG. 58 is a flowchart for setting a range of pitches that are candidates for non-harmonic sounds. FIG. 59 is a flowchart for calculating a function F; FIG. 60 is a diagram showing an example of scale data stored in a scale data memory. FIG. 61 is a flowchart of identification of scale sounds. FIG. 62 is a flowchart for generating melody tone length data. FIG. 63 is a flowchart of the optimal combination of notes. FIG. 64 is a flowchart of optimal note division. FIG. 65 is a flowchart for converting a generated rhythm pattern into a MER data format. FIG. 66 is a flowchart of moving generated melody data to a continuous area. [Description of Signs] 1 CPU 4 Chord progression memory CDi i-th code KEYi Key in i-th code section

Claims (1)

(57)【特許請求の範囲】 1.コード進行を付与するコード進行付与手段と、 上記コード進行付与手段から付与されるコード進行にお
ける各コードの区間における調をコード進行の時間軸
に沿って、当該コードまでのコード進行の来歴に従って
順次判定する調判定手段と、 を有することを特徴とする調性判定音楽装置。 2.コード進行を付与するコード進行付与手段と、 上記コード進行付与手段から付与されるコード進行にお
ける各コードの区間における調をコード進行の時間軸に
沿ってコード進行の来歴に従って順次判定する調判定手
段と、 を有し、 この調判定手段は、 (a)コード進行の先頭コードが属する先頭区間の調を
決定する先頭調決定手段と、 (b)コード進行の先頭コード以外の各コードを先頭コ
ードと比較し、その比較結果を各コード毎に各コードの
区間の調と先頭区間の調との差(調性距離という)とし
て算出する調性距離算出手段と、 (c)現区間のコードについて算出された調性距離を直
前区間のコードについて決定された調性距離と比較し、
比較結果に応じて当該現区間のコードについて算出され
た調性距離を変更することにより現区間の調性距離を決
定する決定手段と、(d)決定された現区間の調性距離
を決定された先頭区間の調に基づいて調に変換して現区
間の調を判定する変換手段と、 を有することを特徴とする調性判定音楽装置。
(57) [Claims] A chord progression providing means for providing a chord progression, the tone in the interval of each chord in the chord progression that is applied from the chord progression providing means, along the time axis of the chord progression sequentially according provenance of chord progression to the code A tonality determination music device, comprising: a tonality determination means for determining. 2. Chord progression imparting means for imparting a chord progression; and key judging means for sequentially judging the key in each chord section in the chord progression imparted from the chord progression imparting means according to the history of the chord progression along the time axis of the chord progression. The key determining means includes: (a) a leading key determining means for determining a key of a leading section to which a leading code of a chord progression belongs; and (b) each code other than the leading code of the chord progression is referred to as a leading code. Tonality distance calculating means for comparing and comparing the comparison result for each code as a difference (referred to as tonality distance) between the key of the section of each code and the key of the first section; (c) calculating for the code of the current section The tonality distance thus determined is compared with the tonality distance determined for the code in the immediately preceding section,
Determining means for determining the tonality distance of the current section by changing the tonality distance calculated for the code of the current section according to the comparison result; and (d) determining the tonality distance of the determined current section. Conversion means for converting to a key based on the key of the leading section to determine the key of the current section, and a tonality determination music device.
JP06335330A 1994-12-22 1994-12-22 Tone judgment music device Expired - Fee Related JP3088919B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06335330A JP3088919B2 (en) 1994-12-22 1994-12-22 Tone judgment music device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06335330A JP3088919B2 (en) 1994-12-22 1994-12-22 Tone judgment music device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP62325177A Division JP2615721B2 (en) 1987-12-24 1987-12-24 Automatic composer

Publications (2)

Publication Number Publication Date
JPH07306676A JPH07306676A (en) 1995-11-21
JP3088919B2 true JP3088919B2 (en) 2000-09-18

Family

ID=18287317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06335330A Expired - Fee Related JP3088919B2 (en) 1994-12-22 1994-12-22 Tone judgment music device

Country Status (1)

Country Link
JP (1) JP3088919B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7375302B2 (en) * 2019-01-11 2023-11-08 ヤマハ株式会社 Acoustic analysis method, acoustic analysis device and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
菊本哲也「新しい音楽通論」1975−4−10,株式会社 全音譜出版社 P159〜161

Also Published As

Publication number Publication date
JPH07306676A (en) 1995-11-21

Similar Documents

Publication Publication Date Title
US4982643A (en) Automatic composer
JP2638021B2 (en) Automatic accompaniment device
JP3704980B2 (en) Automatic composer and recording medium
US20160148606A1 (en) Automatic composition apparatus, automatic composition method and storage medium
JP2671495B2 (en) Melody analyzer
JP2000148141A (en) Automatic composing device and storage medium
JPH07219536A (en) Automatic arrangement device
JP3132099B2 (en) Scale discriminator
JP3196604B2 (en) Chord analyzer
US6984781B2 (en) Music formulation
JP3088919B2 (en) Tone judgment music device
Yust Periodicity-based descriptions of rhythms and Steve Reich's rhythmic style
JP2615720B2 (en) Automatic composer
JP2615722B2 (en) Automatic composer
JP2006201278A (en) Method and apparatus for automatically analyzing metrical structure of piece of music, program, and recording medium on which program of method is recorded
JPH05181409A (en) Automatic music composing machine
JP2615721B2 (en) Automatic composer
JP2666063B2 (en) Automatic composer
JP2621266B2 (en) Automatic composer
Bergeron et al. Structured Polyphonic Patterns.
Sutcliffe et al. The C@ merata task at MediaEval 2016: Natural Language Queries Derived from Exam Papers, Articles and Other Sources against Classical Music Scores in MusicXML.
JP3531507B2 (en) Music generating apparatus and computer-readable recording medium storing music generating program
JP2638905B2 (en) Automatic composer
JPH05346781A (en) Key detecting device and automatic music arranging device
JPH049893A (en) Melody analyzer

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees