JP2615722B2 - 自動作曲機 - Google Patents

自動作曲機

Info

Publication number
JP2615722B2
JP2615722B2 JP62325178A JP32517887A JP2615722B2 JP 2615722 B2 JP2615722 B2 JP 2615722B2 JP 62325178 A JP62325178 A JP 62325178A JP 32517887 A JP32517887 A JP 32517887A JP 2615722 B2 JP2615722 B2 JP 2615722B2
Authority
JP
Japan
Prior art keywords
melody
harmonic
data
chord
rule
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
JP62325178A
Other languages
English (en)
Other versions
JPH01167783A (ja
Inventor
純一 南高
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP62325178A priority Critical patent/JP2615722B2/ja
Publication of JPH01167783A publication Critical patent/JPH01167783A/ja
Priority to US07/494,919 priority patent/US4982643A/en
Application granted granted Critical
Publication of JP2615722B2 publication Critical patent/JP2615722B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 [発明の技術分野] この発明は自動作曲/分析機に関する。
[背景] 自動作曲機の良否に関し、考慮すべき重要な要素の1
つは、人間がこれまで親しんできたような楽曲、換言す
れば、純機械的ではなく音楽性に富む曲を生成する潜在
能力をその作曲機がもちあわせているかどうかというこ
とである。
例えば、特願昭56−125603号(特公昭60−40027号)
には、一連の音高データ(例えば、12音階のデータ)か
ら個々の音高データをランダムにサンプルし、サンプル
したものが限られた条件を満足すれば、それをメロディ
ノートとして採択し、条件を満たさなければメロディノ
ートとしては採択せず、再度、サンプルし直して条件検
査をくり返す方式の自動作曲機が開示されている。した
がって、この自動作曲機のメロディ生成プロセスは基本
的にトライアンドエラー方式である。音高データをラン
ダムにサンプルした段階では完全に無秩序な音高の列が
できあがる。この無秩序な音高の列のままでは、全くメ
ロディとしては成立し得ない(天文学的な偶発性によっ
てよいメロディができる可能性はあるが)。そこで、こ
の無秩序になんらかの秩序をもたらすために、条件検査
という一種のフィルタリング(選別)を行っている。こ
の場合、選別の程度が重要な要素になる。選別がきつす
ぎれば、生成されるメロディはワンパターン化するであ
ろうし、ゆるすぎれば、元の無秩序性が支配的となるで
あろう。
上記の自動作曲機は、人間がなれ親しんできたメロデ
ィというよりは、作風のとらえどころがないメロディを
作曲するのに適しており、主として、聴音訓練や演奏練
習用の曲作成装置として有効である(なじみのない斬新
な曲は採譜や演奏が一般に困難になる)。この意味で冒
頭にあげた能力はもちあわせていない。
上述の問題点を解消するため、本件出願人は特願昭62
−86571号(昭和62年4月8日出願)、特願昭62−12103
7号(昭和62年5月20日出願)において、種々の特徴を
備えた自動作曲機を示している。これらの特許出願の自
動作曲機は、使用者から入力されたメロディ(モチー
フ)を分析するメロディ分析手段と、与えられたコード
進行とメロディの分析結果に基づいてメロディを合成す
るメロディ合成手段を備えている。メロディ分析手段の
なかにはメロディに含まれる非和声音を分類する非和声
音分類手段が含まれ、メロディ合成手段にはコード進行
に従う分散和音(アルペジオ)を生成する分散和音生成
手段と、生成された分散和音に非和声音を付加する非和
声音付加手段が含まれる。したがって、これらの自動作
曲機で生成されるメロディには使用者の入力したメロデ
ィ(モチーフ)の特徴が反映される。また、作曲の基本
アプローチとして、メロディを和声音と非和声音とが混
り合った音列として把えており、分散和音生成手段によ
り和声音のみの音列を完成した後、非和声音付加手段に
より非和声音を付加してメロディの音列を完成させてい
る。したがって、音楽性に富む曲が作曲される可能性が
高い。
しかし、上記非和声音分類手段がもつ非和声音分類の
知識と上記非和声音付加手段がもつ非和声音の付加の知
識は完全には同一でない。したがって、入力されたモチ
ーフと自動生成されたメロディとの間に完全な一貫性を
もたせることは困難である。
[発明の目的] 本発明は上記特許出願の発明を改良したものであり、
各非和声音の種類の意味がメロディの分析でも合成でも
同じになるようにして、入力メロディ(モチーフ)に和
声面でよく適合するメロディを合成可能とした自動作曲
/分析機を提供することを目的とする。
[発明の要点、展開] 上記の目的を達成するため、本発明によれば、メロデ
ィを入力するメロディ入力手段と、コード進行を入力す
るコード進行入力手段と、上記メロディ入力手段により
入力されたメロディを分析するメロディ分析手段と、上
記コード進行入力手段により入力されたコード進行と上
記メロディ分析手段の分析結果に基づいてメロディを合
成するメロディ合成手段と、を備え、さらに、上記メロ
ディ分析手段が上記メロディ入力手段により入力された
メロディに含まれる非和声音を分類してその分類結果を
上記分析結果の少なくとも一部として出力する非和声音
分類手段を含み、上記メロディ合成手段が、上記コード
進行入力手段により入力されたコード進行に従う分散和
音を生成する分散和音生成手段と、上記分散和音生成手
段により生成された分散和音に非和声音を付加して上記
メロディを合成する非和声音付加手段とを含んで成る自
動作曲/分析機において、メロディに含まれる非和声音
を分類するための音楽知識を蓄える知識ベース手段を設
け、上記非和声音分類手段と上記非和声音付加手段が、
この共通の知識ベース手段を使用して非和声音の分類、
付加を実行することを特徴とする自動作曲/分析機が提
供される。
一構成例において、上記知識ベース手段の知識は、複
数のルールのネットワークで表現される。各ルールは条
件部と条件部から分岐する2つの結論部とから成り、一
方の結論部には条件部が成立したときに推論を続けるべ
きルールのポインタあるいは推論を続けるべきルールが
ないときには特定の非和声音識別子(非和声音の分類結
果)が記憶され、他方の結論部には条件部が成立しない
ときに推論を続けるべきルールのポインタあるいは推論
を続けるべきルールがないときには特定の非和声音識別
子が記憶される。
条件部の成否を決定するためには、分析対象のメロデ
ィの状況を把握する必要がある。一構成例では、メロデ
ィの状況は複数の種類の関数により表現される。この複
数の種類の関数は関数演算手段により演算され、上記非
和声音分類手段と非和声音付加手段はその演算結果を使
って知識ベース手段の各条件部の成否を決定し、推論を
進めていく。
分散和音に非和声音を付加する場合、和声音と付加さ
れる非和声音との音高差が大きすぎると、結果のメロデ
ィが不自然になる。これを解消するため、一構成例で
は、非和声音の候補にする音高の範囲を与えられた分散
和音に基づいて設定する条件設定手段が設けられる。
さらに、本発明のもう1つの特徴によれば、自動作曲
/分析機は、知識ベース手段に蓄えられる非和声音の分
類知識を入力された修正データに従って修正する知識管
理手段を有する。これにより、自動作曲/分析機には、
音楽知識を「学習する」能力が与えられ、知識ベース手
段には常に使用者の希望する音楽知識が蓄えられること
になる。この結果、自動作曲/分析機は種々の音楽知識
を使ってメロディの分析と合成が可能となり、1台の自
動作曲/分析機が等価的に複数の自動作曲/分析機とし
て機能する。
一構成例では、知識管理手段(知識エディター)は、
ある音が特定の種類の非和声音(例えば経過音)と認め
るための条件を知識ベース手段に追加する条件追加手段
と、特定の種類の非和声音と認めるための条件を知識ベ
ース手段から削除する条件削除手段と、条件を満足する
非和声音の種類(非和声音の分類結果)を他の種類の非
和声音に変更する結論変更手段とから構成される。
[実施例] 以下、本発明の実施例について説明する。本実施例の
装置は、自動作曲機、メロディ分析機、音楽知識のエデ
ィターのいずれにしても機能することができる。作曲機
モードにおいて、本装置は音を和声音と非和声音とに分
けて作曲するアプローチを採用している。作曲の基礎と
なるデータとして、コード進行情報、モチーフ(使用者
から入力されるメロディ)、生成するメロディのリズム
ないし音長列の制御に用いるパルススケール、基本とな
る音階の種類が与えられる。モチーフに含まれる各音は
各区間で使用されるコード情報を用いることで、和声音
と非和声音とに識別される。モチーフから非和声音を除
いた部分はモチーフのアルペジオ(分散和音)である。
このアルペジオから、アルペジオの音型と特徴(アルペ
ジオの音型に含まれる特徴的要素)が抽出される。ま
た、和声音と非和声音との識別がつけられたモチーフに
対しては、非和声音を分類する音楽知識(これは後述す
るプロダクションルールデータメモリに記憶されてい
る)を利用することにより、モチーフに含まれる各非和
声音のタイプ(特徴)を抽出できる。すなわち、モチー
フのなかに、どのような非和声音がどのように分布して
いるかを示す情報(非和声音の特徴)が得られる。さら
にコード進行からは、曲の階層構造と調性構造とが抽出
される。
メロディの生成は、アルペジオの生成工程、非和声音
の付加工程、音長列の生成工程から成る。アルペジオの
生成工程では、コード進行情報から抽出した上記階層構
造によって、アルペジオの生成が制御される。階層構造
により新しいアルペジオの生成が指示される場合、アル
ペジオの特徴(モチーフから抽出したアルペジオの特徴
またはそれを修飾したもの)からアルペジオの音型が生
成され、生成されたアルペジオの音型に対応するコード
を適用することにより音高列で表現されるアルペジオが
生成される。このようにして生成されたアルペジオに対
して非和声音が付加される。非和声音を付加するのに上
述した音楽知識が再度利用される。非和声音付加の推論
において、付加可能な非和声音は非和声音の特徴を満た
すものであることと、音階音であることを条件とする。
ここにおける音階音は、コード進行から抽出した調性構
造に従って基本とする音階の主音(キー、調性)を転回
した音階上の音である。非和声音の分類と非和声音の付
加とにおいて、共通の音楽知識を使って推論が行われる
ため、本装置によるメロディの分析と合成との間には
「可逆性」が与えられる。完全な可逆性とは、あるメロ
ディを分析して、ある分析結果を得たとし、逆に、その
分析結果を基にしてメロディを生成した場合に、生成さ
れたメロディが当初のメロディに一致することである。
アルペジオに非和声音を付加することによりメロディの
音高列が完成する。一方、メロディの音長列の方は、次
のようにして得られる。すなわち、基本となるリズム
(音長列)を目標音符数(例えば和声音と非和声音の合
計の数)になるように、パルススケールを使って最適結
合または最適分割する。どの音符がどの位置で分割また
は結合されるかは選択したパルススケールがもつ各パル
ス点の重みに依存する。したがって一貫性のあるリズム
制御が可能である。
分析機モードでの本装置は作曲機モードにおけるメロ
ディ分析機能を使用するものである。特に、評価対象の
メロディに含まれる非和声音を分類するのに上述した音
楽知識が利用される。
音楽知識のエディターモードにおいては、本装置が作
曲、分析において使用する音楽知識を使用者が修正でき
るマンマシンインタフェースが提供される。
<全体構成> 第1図に本実施例に係る自動作曲/分析機(以下、単
に自動作曲機と呼ぶ)の全体構成図を示す。CPU1は本装
置における自動作曲機能、メロディ分析機能、知識管理
機能を実現するための制御装置である。入力装置2から
は、作曲機モード、分析機モードにおいて、モチーフ
(メロディ)、コード進行、使用するパルススケールの
種類、使用する音階の種類などが入力され、知識エディ
ターモードでは、修正の要求、修正データなどが入力さ
れる。コード進行メモリ4はコード進行情報を記憶する
メモリであり、メモリ4の情報はコード進行を分析する
場合、アルペジオを抽出または生成する場合などにCPU1
により使用される。音階データメモリ5はさまざまな種
類の音階を表わす音階データを記憶するメモリであり、
作曲に先立ち、使用者は曲で使用する音階として特定の
音階をこのメモリ5の音階セットのなかから選択するこ
とができる。プロダクションルールデータメモリ6に
は、非和声音を分類するための音楽知識が記憶される。
この音楽知識はモチーフに含まれる非和声音を分類する
場合、アルペジオに非和声音を付加する場合に利用され
る。さらに、このメモリ6にある音楽知識に修正を施し
たい場合には、知識エディターにより、使用者の要求し
た修正が実行される。そして、作曲におけるメロディの
分析、合成が修正された音楽知識に基づいて行われる。
パルススケールメモリ7は各種のパルススケール(パル
ススケールのセット)を記憶するメモリであり、作曲の
開始時、使用者は曲にもたせるリズムの特徴を考慮し
て、このパルススケールのセットのなかから所望のパル
ススケールを選択することができる。選択されたパルス
スケールはメロディのリズム(音長列)の生成に利用さ
れる。メロディデータメモリ8には完成したメロディデ
ータが記憶される。外部記憶装置はメロディデータメモ
リ8に記憶したメロディデータの写し、別の音楽知識、
別の作曲プログラムの資源として利用される。ワークメ
モリ10にはCPU1が動作中に使用する各種のデータ、例え
ば調性構造、階層構造、各種変数などが記憶される。モ
ニター11はCRT12、五線譜プリンタ13、楽音形成回路1
4、サウンドシステム15から構成され、作曲結果や分析
結果をこれらの装置を通して表示、出力できる。また、
知識エディターモードではCRT12に音楽知識またはその
一部が表示され、入力装置2により知識の修正が入力さ
れ、CPU1により修正が実行されると、修正された知識が
表示される。
<全体像> 上述したように本装置は自動作曲機、メロディ分析
機、知識エディターのいずれとしても機能し得る。第2
図はプロダクションシステムの面から本装置を把えた場
合の全体像である。図示のプロダクションシステム21
は、その構成要素として、非和声音を分類する音楽知識
を表現したプロダクションルールと、問題解決のためプ
ロダクションルールを使って推論を実行する推論エンジ
ンを少なくとも備えている。第2図の右に示す知識エデ
ィター22、分析機23、作曲機24はプロダクションシステ
ム21を資源として利用する利用装置である。例えば、作
曲機24は、アルペジオ(分散和音)の和声音間に非和声
音を付加する場合にプロダクションシステム21を利用す
る。また、知識エディター22は、プロダクションシステ
ム21内にあるプロダクションルールによって表現された
音楽知識を修正するツールとして用いられる。
<プロダクションシステムの全体機能> プロダクションシステムの全体機能を第3図に示す。
メイン31はコントローラ32に対し、実行すべき処理の種
類(例えば非和声音の分類、付加)を指示する。これに
より、コントローラ32は対応する処理を実行するため
に、その他の要素を選択的に使用する。ワークメモリ33
にはコントローラ32が処理した中間結果等が記憶され
る。知識ベース34は第1図のプロダクションルールデー
タメモリ6に対応するもので非和声音を分類するための
音楽知識が記憶されている。関数演算部35は非和声音の
分類または付加の際に、メロディの音列から抽出される
各種の関数値を演算するところである。前向推論エンジ
ン36はメロディから非和声音を分類、あるいは、アルペ
ジオに非和声音を付加するための推論を実行するところ
であり、分類の場合も付加の場合も同一の知識ベース34
を利用する。条件設定部37はアルペジオに非和声音を付
加するための条件を設定するもので、メロディに分布さ
せるべき非和声音の特徴、非和声音の音域の条件などが
この条件設定部37で設定される。知識管理部38は知識ベ
ース34に蓄積される知識を管理するもので、使用者によ
る知識の修正はこの知識管理部38を介して行われる。
<作曲ゼネラルフロー> 作曲機モードにおける本装置の全体フロー(作曲ゼネ
ラルフロー)を第4図に示す。
4−1の初期設定では、使用者より自動作曲機に対し
て、作曲のための基本的な情報が入力される。使用者が
自動作曲機に知らせる情報として、(1)BEAT、(2)
パルススケールの種類(3)音階(4)全自動かモチー
フ入力が示されている。BEATは基本単位長の音符(最短
の音符)の数で表わされる1小節の長さであり、したが
って曲の拍子を規定するものである。例えば、4拍子系
の曲に対しては、音符の基本単位長を16分音符とすると
BEAT=16を設定すれば1小節の長さは4拍となる。4−
1で選択するパルススケールは自動作曲機が作曲する曲
のリズムを一次的に制御する情報である。パルススケー
ルは、基本単位長の間隔をもつ各パルス点に、音符の結
合のしやすさまたは音符の分割のしやすさを表わす重み
が付けられたスケールであり(第11図、第16図参照)、
このパルススケールを使用することによりメロディの音
長列が制御される。したがって、パルススケールの種類
を選択するということは、自動作曲機が作曲する曲のリ
ズムの特徴を選択していることに相当する。4−1で選
択される音階の種類(例えば、ダイアトニックスケー
ル)は、自動作曲機が作曲において使用する音階であ
る。さらに初期設定4−1においては、作曲を全自動で
行うか、モチーフを基に行うかが使用者により決定され
る。全自動のときは、作曲に必要なデータとして、
(1)コード進行、(2)プロダクションルール(3)
パルススケールがワークメモリ10上に読み込まれ(4−
3)、(1)基本とするリズム(音長パターン)、
(2)アルペジオの特徴(PCi:第9図参照)、(3)非
和声音の特徴(RSi:第9図参照)から成るエッセンスが
使用者の指示に従って生成される(4−4)。一方、モ
チーフを利用する作曲モードでは、データ読み込み4−
5として上述のデータ以外にモチーフ(入力メロディ)
も読み込まれ、エッセンスとしての(1)リズム(2)
アルペジオパターン(3)アルペジオパターンの特徴、
(4)非和声音の特徴は、このモチーフから抽出される
(4−5)。特に、非和声音の特徴はプロダクションル
ールに基づく推論によって得られる。全自動、モチーフ
利用モードのいずれの場合も、コード進行評価4−7が
行われ、ここで(1)階層構造(2)調性構造(3)ス
ケールがコード進行情報から抽出される。この階層構造
はコード進行に内在する曲の一貫性と多様性を表現した
ものである。また、調性構造は各区間において使用する
音階のキー(基音)を規定するものである。「スケー
ル」で示す処理は、ある種の特殊コードの区間では、初
期設定した音階にかかわらず特定の音階を使用するため
にある。この4−7までの処理で、作曲のための「分析
的作業」が完了している。例えば、アルペジオの特徴
は、アルペジオパターンの生成に必要な情報であり、非
和声音の特徴は、アルペジオに付加する非和声音を特徴
づけるものである。プロダクションルールは、アルペジ
オに付加する非和声音が適正か否かの推論に使用され
る。また調性構造は、各区間のメロディの音の候補を制
約する。階層構造は、新たにアルペジオパターンを生成
するか否かを決めるのに利用できる。またパルススケー
ルはリズムの生成に利用される。メロディ生成4−8で
は、(1)アルペジオパターン(LLi:第9図参照)の選
択的生成、(2)アルペジオパターンの音域の設定
(3)音高表現のアルペジオの生成(4)非和声音の付
加、(5)リズムの生成が実行される。
作曲機モードの詳細については第13図〜第70図を参照
して後述する。
<分析ゼネラルフロー> 分析機モードにおける本装置の全体フロー(分析ゼネ
ラルフロー)を第5図に示す。
図示のフローは、入力されたメロディを1小節を単位
として分析する場合を示している。図中、barは小節番
号、Psは着目している小節の先頭の音符のデータ番号、
Peは着目している小節の最後の音符のデータ番号、Pss
は先頭の音符が前小節にはみ出している長さである。処
理の本体は5−6に示すメロディ分析であり、ここで、
着目している小節にあるメロディの各音がどのような性
格の音であるかをプロダクションルールを使って推論し
ている。
図示のフローは非和声音の分類に関するメロディ分析
を行っているが、階層構造や調性構造についても分析す
るようにフローを変形することは容易である。
メロディ分析の詳細については第71図〜第75図を参照
して後述する。
<知識エディターゼネラルフロー> 知識エディターモードにおける本装置の全体フローを
第6図に例示する。
知識エディターの目的は、プロダクションルールで表
現された音楽知識(非和声音を分類するための知識)を
使用者の判断に従って修正するインタフェースを提供す
ることである。わかりやすい修正の環境を与える1つの
有効な手段は、具体的な事例を現在のプロダクションル
ールによる推論で分析させ、その分析結果に対する良否
を使用者に判断させ、分析結果が使用者にとって望まし
くない場合に使用者が望む結果となるようにプロダクシ
ョンルールの知識を修正することである。第6図のフロ
ーはこれを実現するようになっている。すなわち、6−
4において、指定されたメロディの非和声音分析がプロ
ダクションルールに従って実行され、分析結果と分析結
果に至った理由が表示され、6−5において、使用者が
望むプロダクションルールの修正が適宜行われる。
第6図に示す知識エディターの動作の詳細は第76図〜
第80図を参照して後述する。
なお、プロダクションルールの全体はトリー構造の知
識となっており、これを使用者にモニターさせることも
知識修正のための有効な手段と考えられる。その詳細
は、第81図〜第82図を参照して後述する。
<変数リスト、データ形式> 後述するフローで使用される主な変数のリストを第7
図に、データ形式を第8図〜第12図に示す。なおデータ
形式は単なる例示であり、その他の任意の適当なデータ
形式が使用可能である。
《作曲機モード》 以下、本装置の作曲機モードについて詳細に説明す
る。
<初期設定> 作曲ゼネラルフロー(第4図)における初期設定4−
1の詳細を第13図に例示する。この初期設定で選択する
BEATの意味、パルススケールの種類(PULS)、音階の種
類(ISCALE)の意味、全自動又はモチーフ入力の意味は
第4図に関して説明したのでここでは省略する。PULSの
値は、パルススケールメモリ7(第1図)に記憶される
特定のパルススケールへのポインタとなり、ISCALEの値
は音階データメモリ5に記憶される特定の音階データへ
のポインタとなる。
<データ読み込み> 第4図の作曲ゼネラルフローに示すように、初期設定
の後、4−3または4−5においてデータ読み込みが実
行される。全自動の場合は、作曲の基礎データとしてモ
チーフは使用されないのでモチーフデータの読み込みは
行われない。各データの読み込みについて以下説明す
る。
第14図はコード進行メモリ4(第1図)に記憶された
コード進行データ例を示す。第15図はコード進行メモリ
4に記憶されたコード進行データをロードするフローチ
ャートである。第14図に示すメモリマップでは、コード
の種類(CDi)は偶数アドレスに置かれ、そのコードの
長さが次のアドレス(奇数アドレス)に置かれている。
例えば、16進表示で507の値をもつCDiは、G7thのコード
を表わし、10の値をもつCRiはコード長が基本時間長
(例えば16分音符)の16倍であることを表わしている。
第15図において、レジスタCDiには作曲する曲のi番
目に出現するコードが入り、CRiにはその長さが入る。
またCDNOにはコードの総数が入る。その他の点について
は第15図の記載から明らかであるので説明は省略する。
第16図にパルススケールメモリ7(第1図)に記憶さ
れるパルススケールデータ例を示す。第17図はパルスス
ケールメモリ7から初期設定において選択した種類のパ
ルススケールをロードするフローチャートである。この
例の場合、初期設定において作曲する曲のリズムの特徴
を選択するために選択したパルススケールの種類(PUL
S)は、パルススケールメモリ7における特定のアドレ
ス(例えば0)を指しており、そのアドレスには、選択
したパルススケールデータの開始アドレスが入ってい
る。この開始アドレスには、パルススケールを構成する
サブスケール(0と1の重みしかもたないスケール)の
数が記憶され、後続アドレスに各サブスケールのデータ
が記憶されている。例えばノーマルのパルススケール
は、5つのサブスケールFFFF、5555、1111、0101、0001
(16進表現)から成り、対応する2進表現を第11図に示
してある。ノーマルのパルススケールの場合、最初のパ
ルス点(第11図の一番右側の位置)の重みが最大の5と
なっており、このことは、ノーマルのパルススケールを
選択した場合、生成されるリズムの各区間(小節)の最
初の位置に最も音符が存在しやすいことを表わしてい
る。
第18図はプロダクションルールデータメモリ6(第1
図)に記憶されるプロダクションルールデータの例を示
している。第19図はこのメモリ6に記憶されたデータを
読み込むフローチャートである。プロダクションルール
の全体は、メロディに含まれる非和声音を分類するため
の音楽知識を表現したものであり、各プロダクションル
ールデータは、ルールの前提部を規定するデータとして
下限データLi、関数の種類を指示する関数指示データX
i、上限データUiを有し、ルールの結論部としてデータY
iとNiを有する。関数は分析するメロディの特徴を数値
表現したもので、その例は後述する第35図に示される。
データXiで示される関数の値FxiがLi以上でかつUi以下
である(Li≦Fxi≦Ui)というのがプロダクションルー
ルの前提部(命題)であり、この前提部が成立するとき
の結論がデータYiで示され、この前提部が不成立のとき
の結論がデータNiで示されている。そして、データYiま
たはNiが正の値をもつときは、その値が前向推論におい
て次に参照すべきプロダクションルールの番号を示し、
負の値をもつときは、その絶対値によって非和声音の種
類が表現される。前向推論は必ず1つのルールから開始
され、このルールのことをルートと呼ぶ。負の値をもつ
結論YiまたはNiをみつけたときに前向推論は終了する。
第18図に示すプロダクションルールデータのアドレス
割当の場合、各プロダクションルールのデータは下限デ
ータLiのアドレスを先頭として5つの連続するアドレス
に、記憶される。詳細には5で割り切れるアドレスにLi
が、5で割った余り1のアドレスにXiが、余り2のアド
レスにUiが、余り3のアドレスにYiが、余り4のアドレ
スにNiのデータが記憶される。
第19図においてRULENOには、プロダクションルールの
総数がセットされる。その他の点については上述の説明
とフローの記載から明らかである。
第20図はモチーフメモリ3に記載されるモチーフデー
タ(メロディデータ)の例を示す。第21図は作曲の基に
なるモチーフデータを読み込むフローチャートである。
第20図の場合、偶数アドレスに音符の音高データMDiが
その次の奇数アドレスに、その音符の音長データMRiが
記憶されている。第21図のMDNOにはモチーフの音符数が
セットされる。
以上でデータ読み込みの説明を終える。
<エッセンスの生成> モチーフを使用しない全自動の作曲モードではデータ
読み込みの後、曲のエッセンスとしてリズム、アルペジ
オパターンの特徴、非和声音の特徴を生成する(第4図
の4−4)。第22図にこのエッセンス生成のフローチャ
ートを示す。これらのエッセンス、使用者の指定あるい
は完全自動で生成される。例えば、22−1における基準
リズムパターンの設定は、自動リズムパターン生成手
段、例えば拍子として4/4拍子、パルススケールとして
ノーマルが選択されているときに を基準リズムパターンとして自動生成するような手段あ
るいは使用者が好みのリズムパターンを入力することで
行われる。22−2のアルペジオパターンの特徴設定と22
−3の非和声音の特徴設定についても自動または使用者
の入力により行われる。第23図には乱数発生等によりア
ルペジオパターンの特徴を自動設定するフローチャート
を、第24図には非和声の特徴を使用者が入力することに
より設定するフローチャートを例示する。
アルペジオパターンの特徴設定(第23図)におけるPC
1〜PC5は所定長の区間(例えば小節)内のアルペジオを
構成する和声音の数、最高音の和声音、最低音の和声
音、隣り合う和声音間の差の最大値、隣り合う和声音間
の差の最小値をそれぞれ表わす(第9図参照)。各PC
は、区間毎に生成可能であり、そのとりうる値の上限と
下限を設定し、その間で乱数を発生することで得られ
る。あるいは、曲の進行に対するPCの系列をデータベー
スに用意しておき、所望のPC系列を選択するようにして
もよい。
第24図の非和声音の特徴設定では、モニターにより、
各非和声音の種類aに対応するキーワードを表示して、
使用者の入力を促している(24−2)。RSiの配列に使
用者の入力した非和声音識別子aの系列が入る(24−
3、24−6、24−7)。入力の終りを示すコードEOIを
呼んだとき、RSNOに非和声音の数を入れてフローを抜け
る(24−8)。
<エッセンスの抽出> モチーフを利用する作曲モードではデータ読み込みの
後、モチーフから曲のエッセンス(リズム、アルペジオ
パターン、アルペジオパターンの特徴、非和声音の特
徴)が抽出される(第4図、4−6)。
モチーフのリズム評価を第25図に、アルペジオパター
ンの抽出を第29図に、アルペジオパターンの特徴抽出を
第32図に、非和声音の特徴抽出を第33図に例示する。こ
れらのフローでは、各エッセンスは区間(小節)ごとに
行っている。
第25図のリズム評価において、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拍目に音が発生するこ
とを表わしている。
Ps、Pss、Pe、Peeの算出の詳細は第26図〜第28図に示
される。Peeは、Peの次の音符、すなわち次小節の先頭
の音符が対象の小節に割り込んでいる長さを表わす。
第27図のPs、Pssの算出フローにおいて、beatは1小
節の長さ(基本時間長表現)、barは対象の小節の番号
(ユーザーの指定した小節番号を表わす。指定した小節
の番号が1より小さいか、曲の小節数(mn0)より大き
いときは入力ミスである。指定した小節が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−1
2)。S=a1が成立するときは、Sに最後に累算された
i番目の音高データの次の音符が対象の小節の頭から開
始する。したがってPs=i+1、Pss=0とする(27−
9)。一方、S>a1が成立するときは、Sに最後に加え
た音長データをもつ音符、すなわち、i番目の音符が対
象の小節の先頭の音符である。したがってPs=iとす
る。またPss=MRi−S+a1とする(27−9)。
第28図に示すPe、Peeの算出フローは第27図とよく似
た処理を行う。ただしa1には曲の冒頭から対象の小節の
後方小節線までの長さが入る、その他の点については説
明を省略する。
第29図に示すアルペジオパターンの抽出フローでは対
象の小節のモチーフからアルペジオパターン{LLi}を
抽出している。処理の概要を述べると、PsとPeで示され
る対象の小節に対し、コード進行情報における対応する
コードを使用して、モチーフデータが和声音かどうかを
判別し、和声音と判別された音に対しては、コードのな
かから対応するコード構成音をさがし出し、LLの形式の
データを得る、評細に述べると、まずモチーフデータの
なかから、評価の対象となる最初の音符(Ps)と最後の
音符(Pe)を求める(29−1)。次に、コードデータか
ら構成音データを生成する(29−2、第30図、第31
図)。第30図に示すようにコード構成音データメモリ
は、根音をCとするコードの種類別に、コード構成音を
16ビット中下位12ビットのデータで記憶している。各ビ
ット位置は各音名を表わし、最下位のビット位置がド
(C)である。例えば、cc=0091(16進)はドとミとソ
のビット位置に“1"があり、Cのメジャーの構成音を表
わす。いま、対象の区間のコードGmajだとすると、CDは
0007(16進)である。コード構成音データメモリより、
CDの上位8ビットで指定されるアドレスにあるメジャー
のコード構成音データcc(=0091)を読み出し、第31図
に示すようにその下位12ビットをCDの下位8ビットが示
す根音の値だけ左に転回することにより“1"のビット
は、ソとシとレを表わすビット位置7、11、2に移動
し、Gmajのコード構成音が表現される。このようにし
て、対象の区間のコードからコード構成音データが生成
される。次に、音階カウンタiと和声音カウンタkを初
期化する(29−3、29−4)。29−5の処理はモチーフ
の音高データMDiをコード構成音データccと同じデータ
形成に変換する処理である。例えば、“ソ”の音は、ビ
ット位置7に“1"をもつデータmmに変換される。
29−6でこの音高データmmがコード構成音か否かをチ
ェックしている。これは、音高データmmとコード構成音
データccとの論理積(mm∧cc)をとることで判別でき
る。29−7〜29−13では、コード構成音データccのビッ
ト“1"の中で、モチーフの音高データmmのビット“1"と
一致するのは何番目であるかを調べ、その結果cにモチ
ーフの音のオクターブ番号(MDi∧ff00)を加えて、ア
ルペジオパターンデータLLkとしている。29−15で次の
音符にカウンタiを進め、音符番号がPeに達するまで
(29−16)、LLを求める。29−17のLLNOには対象の区間
の和声音数(アルペジオパターンの長さ)が入る。
第32図のアルペジオパターンの特徴は、第29図のアル
ペジオパターンの抽出結果{LLi}、LLNOから導き出さ
れる。
第33図の非和声音の特徴抽出では、対象の区間のモチ
ーフに分布する非和声音の種類のパターンを求めてい
る。非和声音のカウンタと音符カウンタをセットし(33
−2、33−3)、着目している音符が非和声音の場合
(33−4)、その音符を中心とするモチーフの特徴要素
を表わす関数Fを計算し、プロダクションルールによる
前向推論を実行して非和声音の種類を求めRSjに代入す
る(33−5〜33−8)。この非和声音の分類処理をPeに
達するまで行うことにより、配列{RSj}には、対象の
区間のモチーフの非和声音の種類の並びがセットされ
る。33−11のPSNOには対象の区間の非和声音の総数が入
る。
33−4に示すMDiが非和声音かどうかの判別処理の詳
細は第34図に示される。この判別処理は、アルペジオパ
ターンの抽出(第29図)において、着目している音符が
和声音か否かを判別する処理と同様であり、対象の区間
のコードの構成音のなかに着目している音符の音名が含
まれるか否かで判別できる。
33−6における関数Fの計算では、前向推論におい
て、非和声音を分類するために必要なモチーフ(メロデ
ィ)の条件ないし要因を計算する。第35図から第43図に
その具体例を示す。この例では関数Fとして、 F1:着目している音符(非和声音)の何個先に和声音が
位置するか(後方和声音の位置) F2:着目している音符の何個手前に和声音が位置するか
(前方和声音の位置) F3:前方和声音から後方和声音までにある非和声音の数 F4:前方和声音と後方和声音との音高差 F5:前方和声音と後方和声音との間における非和声音の
高さの分布 F6:前方和声音から後方和声音までのメロディの音高が
単調に変化するか否か F7:後方和声音とその1つ前の音との音高差(後方和声
音への音程進行) F8:前方和声音とその1つ後の者との音高差(前方和声
音からの音程進行) を計算している(第35図)。この他に、弱拍か強拍かを
示す情報、音長を区別する情報を関数Fのセットに加え
てもよい。個々の関数Fの算出のフローチャートはそれ
自体の記載から明らかであるので説明は省略する。
33−7における前向推論の詳細は第44図に示す。ま
ず、ルールナンバーポインタPを、プロダクションルー
ルのなかでルートとなっているルールを指示する“1"に
セットする(44−1)。しかる後、ルールナンバーポイ
ンタPの示すルールの前提部(Lp≦Fxp≦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)。
非和声音の分類の一例として、先の関数Fの計算にお
いて、 F1=1:後方和声音は着目している非和声音より1つ後に
ある F2=−1:前方和声音は着目している非和声音の1つ前に
ある F3=1:前後の和声音間の音数は1つである F4=8:前後の和声音の音高差は8である F5=2:前後の和声音間にある非和声音は前後の和声音の
音高の中間に分布している F6=1:前方和声音から後方和声音までのメロディは音高
が単調に変化している F7=1:後方和声音へは1の音高差で進行する F8=7:前方和声音からは7の音高差で進行する が得られたとし、プロダクションルールデータとして第
18図に示すデータを使用して推論を行ってみる。
まず、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(分類された非和声音の識
別子)となる。
この例からもわかるように、任意の種類の非和声音
は、有限個の命題が成立(前提部が成立しないというこ
とは、前提部を偽とする命題が成立することに等しい)
するという音楽知識で識別可能である。この知識を表現
するために、関数Fが計算され、プロダクションルール
が作成されている。すなわち、関数Fは、非和声音を分
類するための知識において使用するメロディのチャック
項目の情報であり、プロダクションルールデータは、各
非和声音の分類結果に至るまでのルールの列をポインタ
で連結したものである。
<コード進行評価> 本実施例の装置は、作曲のためにコード進行を最大限
活用することを1つの特徴としている。すなわち、第4
図の作曲ゼネラルフローの4−7に示すコード進行評価
において、与えられたコード進行を手がかりとして曲の
階層構造、調性構造を求めている。階層構造は曲の一貫
性と多様性に係っており、後述するメロディ生成におい
てアルペジオの生成制御に利用される。一方、調性構造
は、曲の進行に伴う調性(キー)の変化を表わしてお
り、後述するメロディ生成において各区間で使用するス
ケールのキーを選択するのに利用される。さらに、コー
ド進行詳細では特殊コードの区間に対し、特殊のスケー
ルの使用を計画する処理も実行している。
以下、第45図〜第47図を参照して階層構造の抽出の詳
細を述べる。
第45図に示すフローは、楽節等の長さをもつブロック
を単位として、ブロック相互のコード進行の類似度を算
出するフローである。
まず、曲の長さSUMをコード進行情報の各コードの長
さCRiを累算することで求め(45−1)、barno(小節
数)で示されるブロックの長さを基本音長の表現に変換
してブロック長をlとし(45−2)、曲長SUMをブロッ
ク長lで割って曲に含まれるブロックの数mを計算する
(45−3)。比較するブロックの基準番号のためのカウ
ンタiを“0"に初期化する(45−4)。
45−8〜45−18において、i番目のブロックとj番目
のブロック(j≧i)とのコードの類似度Vijを算出し
ている。類似度の関数として を使用している。ここにlはブロックの長さであり、Vs
は、基準音長ごとにi番目のブロックのコードとj番目
のブロックのコードとを比較したときに得られるコード
の一致数を表わす。この類似度関数Vijは0から100まで
の値をとり、100のとき、2つのブロックのコード進行
は完全に(100%)一致し、0のときは完全に不一致で
ある。
i番目のブロック対j番目のブロックの類似度の計算
はj=iの位置から開始され(45−6)、類似度が得ら
れるごとに、j=j+1により次のブロックとの類似度
の計算に移り(45−20、45−7)最終ブロックになるま
で行ったら(45−19)、i=i+1により、i番目のブ
ロックをシフトし(45−22、45−5)、iが最終ブロッ
クになるまで処理を繰り返す。
この結果、i番目のブロックに対するj番目のブロッ
クのコードの類似度Vijとして、 が得られる。なおVij=Vji、すなわち、i番目のブロッ
クに対するj番目のブロックコード類似度と、j番目の
ブロックに対するi番目のブロックのコード類似度は等
しい。またVii=100である。
第44図のブロック間のコード一致度の算出結果{Vi
j}は、第46図の階層構造データ生成において使用され
る。
第46図において、cは階層構造の計算のためのカウン
タであり、Hjにj番目のブロックの階層構造識別子がセ
ットされる。Hjは値として、0、1、2……の整数値を
とる。これは通常の表現におけるa、a′b、b′……
に対応している(第10図のHIEi参照)。第46図のフロー
では、ある基準のブロックに対し、100%コードが一致
するブロックには基準ブロックの階層構造識別子と同じ
値(偶数値)の階層構造識別子が付き(46−10、46−1
1)、70〜100%の範囲で一致するブロックは、基準ブロ
ックのコード進行を修飾したコード進行をもつブロック
として、基準ブロックの階層構造識別子に1を加えた値
の階層構造識別子が付けられる(46−12、46−13)。ま
た、70%未満の類似度しかもたないブロックは、基準ブ
ロックとは独立の階層構造をもつブロックとして扱われ
る。最初の基準ブロックとして、曲の最初のブロックを
選んでおり(46−2)、この基準ブロックと100%ある
いは70〜100%で一致するブロックに対してはそれぞ
れ、Hj=0、Hj=1の評価値が付き、評価完了を示すた
め、これらのブロックのフラグfljは“1"にセットされ
る。この最初の評価ループ(46−2〜46−15)で評価が
確定しなかった曲のブロックのうち、一番若いブロック
が次の評価ループにおける基準ブロックとなり(46−
3、46−4、46−6)、この基準ブロックの階層構造識
別子は2となる。以下、同様に処理がくり返される。結
果として、曲のすべてのブロックに階層構造識別子Hjが
付くことになる。
第47図の処理は、第46図で求めたブロック単位の階層
構造を小節単位の階層構造データに変換する処理であ
る。すなわち、第47図のHIEaにはa番目の小節に対する
階層構造識別子がセットされる。
次に、第48図から第51図を参照して調性構造の抽出に
ついて説明する。コード進行から調性構造を抽出するた
め、本実施例では、一般の楽曲が有する調性構造の性質
を考慮している。その性質とは、 (イ)調性は曲の進行において頻繁に変化するより、同
じ調性を保つ傾向をもつ。
(ロ)コードの構成音は特定の調性の音階上にある。
(ハ)転調が生じる場合には、無関係な調に転ずるより
属調または下属調等の近親調に転じやすい。
である。
抽出する調性構造に上記の性質をもたせるため、本実
施例ではコード相互間に調性距離を定義し、現区間のコ
ードが前区間の調性から所定の距離の調性である場合に
は現区間の調性は前区間の調性と同じとみなす。
第51図にコード相互の調性距離を例示する。この図か
らわかるように、平行調の関係にあるコード(例えばAm
とC)間の調性距離はゼロであり、したがって同じ調性
(C)をもつ。また、完全5度下または完全5度上にあ
るコードとの調性距離を2または−2としている。いま
キーCのダアトニックスケール(ドレミファソラシド)
を考えると、コードCから±2の調性距離内にあるコー
ドC、Am、G、Em、F、Dmの6つのコードは、そのコー
ド構成音がすべてキーCのダイアトニックスケール上に
ある。後述するように、本実施例では、調性距離±2以
内のコード変化に対しては調性を維持するようにしてい
る。
第48図において、48−1から48−5までの処理は、コ
ード進行における各コードに、第51図に例示する調性距
離の定義に従って調性距離データを割り当てているとこ
ろである。すなわち、48−1で曲の最初のコードに対す
る調性KEY1として“0"を設定し、48−2〜48−5におい
て、後続するコードCPiの調性KEYiを最初のコードCD1
調性KEY1との距離を計算することで求めている。48−3
の調性は第50図に示されている。
50−1におけるCDi∧ooffはi番目のコードCDiの根音
データの抽出(第8図参照)であり、その結果はa1とa2
に代入される。一方stには最初のコードCD1の根音デー
タが入る。50−5に示すように、a1の根音データは50−
3〜50−6のループを一周するたびに5度上に転回さ
れ、a2の根音データは5度下に転回される(第51図に示
すリングを反時計回り、または時計回りすることに相当
する)。50−3において、a1=stが成立するのは、CDi
の根音データiを回5度上に転回したときであり、50−
4においてa2=stが成立するのはCDiの根音データをi
を回5度下に転回したときである。したがって前者に対
してはxに調性距離としてi×(−2)を入れ(50−
7)、後者に対してはxにi×2を入れる。50−9から
50−17は、最初のコードCD1と着目しているコードCDiと
が、共にメジャー系かマイナー系か、そうでないかによ
り、xを変換しているところである。例えば、CD1がAm
でCDiがGmajだとすると、50−7によりx=+4になっ
ている(根音AとGとの比較のため)。これは、第51図
によれば、x=−2にならなければならない。この場
合、第50図において、50−10から50−11、50−13と進
み、x=x−6によりx=−2が得られる。また、CD1
がCmajでCDiがBminだとすると、50−8によりx=−10
になっている。これは第5図の調性距離の定義に従え
ば、x=−4にならなければならない。この場合、第50
図において、50−14かに50−15、50−17と進み、x=x
+6により、x=−4が得られる。第50図の計算結果x
はKEYiに移される。
48−1から48−5の処理例を第49図の(1)に示す。
コード進行C、C、F、G7、Bb、F、G7、cに対し、調
性距離{KEY}として、KEY1=0、KEY2=0、KEY3=+
2、KEY4=−2、KEY5=+4、KEY6=+2、KEY7=−
2、KEY8=0が得られる。
このようにして得られた調性距離{KEY}は、続く48
−6から48−14の処理において、上述した調性の性質を
もつように変換される。すなわち、直前の調性データが
skeyに置かれ、現コードの調性データがこの直前調性デ
ータskeyから±2以内の距離にあるときは、現コードの
調性データを直前の調性データに変換して調性を維持
し、±2を越える距離にあるときにのみ転調とみなして
現コードの調性データを±2した値を最終的な調性デー
タとする。
48−6から48−14の処理側を第49図の(2)に示す。
コード進行C、C、F、G7、Bb、F、G7、Cに対する調
性{KEY}として、0、0、0、0、2、2、0、0が
得られる。
このようにして、楽曲として望ましい性質をもつ調性
構造が距離表現のデータ形式で抽出される。
第48図の48−15から48−25までは、距離表現の調性構
造データをスケールの根音を表わす音名表現に変換して
いるところである。この音名表現ではCに“0"、C♯に
“1"、……Bに“11"の数値が割り当てられる。例えば
曲の最初のコードをCmajとし、i番目のコードをFmajと
し、このFmajの調性が距離表現では“2"であるとしてみ
る。これに対応する音名表現は“5"である。この変換の
ため、処理は48−15より48−16、48−17と進んで、ここ
でa1=KEY1−KEYi×7/2が実行され、KEY1=0、KEYi=
2であるのでa1=−7となり、48−18、48−19の処理に
よりa1=5となり、これがKEYiとなる(48−20)。な
お、曲の最初のコードがメジャー系のときは、KEY1=00
ff∧CD1により最初のコード区間のスケールの根音が求
まるが、マイナー系のときは、Am=Cの関係に従って、
KEY1=(00ff∧CD1+3)mod12を実行して最初のコード
区間のスケールの根音を得ている(48−16、48−21〜48
−23)。
第49図の(3)に48−15から48−25の処理例を示す。
コード進行がC、C、F、G7、Bb、F、G7、Cであると
き、各コード区間で使用するスケールのキー(主音)
は、C、C、C、C、F、F、C、Cとなる。
後述するように、各コード区間において生成するメロ
ディの各音は以上の処理によって抽出された調性構造デ
ータを主音とするスケール上から選択される。
次にスケール評価について第52図を参照して説明す
る。この処理の目的は特殊なコードが使用される区間に
対しては、メロディ生成のためのスケールとして特殊な
スケールを使用することである。第52図において、ISCA
LEは初期設定4−1(第4図)において選択されたスケ
ールである。コードCDiがデミニッシュコード“dim"の
ときにはその区間で使用するスケールSCACEiとしてコン
ビネーションデミニッシュスケールを設定し、コードCD
iがオーギュメントコード“aug"のときにはスケールと
してホールトーンスケールを設定し、コードCDiがセブ
ンスコード“7th"のときにはスケールとしてドミナント
7thスケールを設定している。また、これらのコードの
区間の調としては先の調性構造抽出処理で求めた調性デ
ータの代りに、コードの根音を用いている。したがっ
て、これらの例外的なコード区間以外の区間ではスケー
ルとしては初期設定で選択した種類のスケールが使用さ
れ、その主音は上述の調性構造抽出処理で得た調性デー
タにより定められる。
<メロディ生成> 本実施例の装置は、外部から作曲の基礎となるデータ
が与えられ、その基礎データを内部で分析、評価した
後、メロディの生成の作業に移る。
作曲ゼネラルフロー(第4図)の4−8に示すメロデ
ィ生成の概略フローを第53図に例示する。第53図におい
て、HIEiは先のコード進行評価で抽出したコード区間毎
の階層構造データであり、53−2〜53−4に示すよう
に、この階層構造データHIEiはアルペジオパターン(L
L)の生成制御に利用される。この制御の詳細について
は後述する。さらに階層構造データは53−5、53−6に
示すようにアルペジオパターン(LL)の音域を制御する
のにも利用できる。
アルペジオパターンはメロディの音列の基本的な骨格
を形成し、アルペジオパターンの音域はメロディの音域
を基本的に規制する。本実施例ではその制御にコード進
行から得た階層構造を利用しており、これも実施例の特
徴の1つとなっている。もっとも、アルペジオパターン
の制御要因をコード進行から抽出した階層構造の情報に
のみ限定する必要はなく、例えば、階層構造と乱数のそ
れぞれに重みを付け、両データの荷重和でアルペジオパ
ターンを制御するようにし、重みを使用者が指定できる
ようにしてもよい。要するに、使用者の作曲上の意図が
アルペジオの生成に反映されるように変形することがで
きる。
アルペジオパターン(LL)はコードデータCDiを用い
ることで音高表現の形式、すなわちメロディデータ形式
(アルペジオ)に変換される(53−7)。そしてこのア
ルペジオに対し、非和声音がプロダクションルールに従
って付加される(53−8)。この非和声音の付加で使用
するプロダクションルールはモチーフに含まれる非和声
音を分類するのに用いたものと同一であり、したがっ
て、メロディの分析と合成に関して可逆性が成り立つ。
アルペジオに非和声音を付加することにより、メロデ
ィの音高列は完成する。メロディの音高列り完成後は、
メロディの音長列(リズムパターン)の生成である(53
−9)。ここでは、所定の音符数から成る基本リズムパ
ターン(エッセンス生成4−4またはエッセンス抽出4
−6において決定した音長列)が、初期設定4−1にお
いて選択されたパルススケールにより変形され、メロデ
ィの音高列と等しい音符数の音長列に変換される。
アルペジオの生成、非和声音の付加、音長データの生
成は、第53図のフローの場合、コード区間毎に実行され
る。このため、53−10ではある区間で生成したメロディ
データを連続領域に移動している。
第54図はアルペジオパターン(音型)の生成、セー
ブ、ロードの詳細なフローチャートである(第53図の53
−2、53−3、53−4の詳細)。本例では、階層構造デ
ータHIEiによるアルペジオパターンLLの制御を次のよう
にして行っている。まず、着目している楽節が、過去の
楽節と構造上異なる区間であるかどうかを着目している
楽節の階層構造データを過去の階層構造データと比較す
ることにより判別する。異なる構造をもつ区間と認めた
楽節に対してのみ、新たにアルペジオパターンLLを生成
する。この生成は、上述したアルペジオパターンの特徴
パラメータPCに基づいて行われる。同様の構造をもつ区
間と認めた楽節については、新たにアルペジオパターン
LLは生成しない。代りに、過去において生成したアルペ
ジオパターンのうち、着目している区間と同様の構造を
もつ区間において生成したアルペジオパターンを使用す
る。
例えば、いま、4つの楽節から成る曲を想定し、これ
ら4つの楽節の構造がそれぞれa、b、c、aであると
してみる。最初の楽節の構造aは過去にみられない構造
であるのでアルペジオパターンの特徴パラメータに従っ
てアルペジオパターンが生成される。同様にして第2楽
節、第3楽節も過去にない新しい構造b、cをもってい
るので、独立にアルペジオパターンか生成される。しか
し、最終楽節は曲の最初の楽節と同じ構造aである。し
たがって、最終楽節のアルペジオパターンとしては、最
初の楽節に対して生成したアルペジオパターンをそのま
ま使用する。
新しい構造をもつ楽節に対してアルペジオパターンを
新たに生成するということは、この新しい構造の楽節か
ら別のモチーフが発生することを意味する。いま、楽節
の最初の小節に対して生成したアルペジオパターンをそ
の楽節の後続する小節に対してくり返し使用したとする
と1小節の長さのモチーフが意識されよう。一般にモチ
ーフの長さは1〜数小節であり、曲の途中でモチーフの
長さが変化することも多い。第54図の例ではこのことを
考慮して、新しい構造の楽節が検知されたときに、その
楽節におけるモチーフの長さとして1または2小節を使
用することができる。2小節のモチーフが選択されたと
きは、楽節の最初の小節と2番目の小節で独立にアルペ
ジオパターンが生成され、後続する奇数番目の小節は最
初の小節のアルペジオパターンを使用し、後続する偶数
番目の小節は2番目の小節のアルペジオパターンを使用
する。
過去の区間における階層構造データへの参照、過去の
区間におけるアルペジオパターンのくり返しのために音
型(LL)データバッファが用意される。音型データバッ
ファの例を第55図に示す。
第54図に従って説明すると、54−1で楽節(第45図に
示すbarno毎の区間)内の小節カウンタを“1"にセット
する。54−2では現小節の階層構造データHIEiを直前の
小節の階層構造データHIEi−1と比較することにより、
楽節の開始か否かをチェックする。例えば、|HIEi−HIE
i−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番目の小節)に対してもアル
ペジオパターンが新たに生成されるようにする。そし
て、アルペジオパターンを生成し(第56図参照)、音型
データバッファにセーブする(54−9)。詳細には、HI
Ei×0100+小節カウンタの値×0010+モチーフの小節数
によりヘッダを作成し、音型データバッファのアドレス
0における音型の組の数Nをインクリメントし、アドレ
スNにヘッダのアドレスを書き込み、そのアドレスか
ら、ヘッダ、LLNO(生成したアルペジオパターンの長
さ)、LL1、LL2……LLLLNO(生成したアルペジオパター
ンのデータ)を書き込む。その後、その他のメロディ生
成の処理を行い(54−10)、小節カウンタをインクリメ
ントする(54−11)。
54−2において楽節が変っていないことが認められた
ときは、フラグflをチェックする(54−13)。fl=1の
ときは、現小節は2小節のモチーフを生成する楽節の2
番目の小節であるのでアルペジオパターンを再び生成し
音型データバッファにロードし(54−15)、フラグflを
“0"にリセットする(54−16)。fl=0のときは、現小
節の階層構造データHIEiに対応するヘッダをバッファか
らサーチし、そのヘッダの示すモチーフの長さの情報が
1小節のときは、そのヘッダに後続する音型データをロ
ードし、モチーフの長さが2小節のときは小節カウンタ
の2の剰余とヘッダの小節番号を比較し、一致すればそ
のヘッダに後続する音型データを現小節のアルペジオパ
ターンとしてロードする。
第54図の54−9、54−15で実行されるアルペジオパタ
ーン(音型)の生成の詳細は第56図に示す。56−1のck
noはコード構成音の数を表わす。コード構成音数は、コ
ード構成音データの16ビットのうちで“1"である数をカ
ウントすることで得られる(第30図参照)。第56図の例
では、PC1〜PC5を生成するアルペジオパターンの制御パ
ラメータとしている。r1は1〜cknoの範囲の乱数値をと
り、コード構成音番号を意味する(56−4)。r2はPC3
(アルペジオパターンの最低音)〜PC2(アルペジオパ
ターンの最高音)のオクターブコードの乱数値をとり、
生成するLLのオクターブ番号を表わす(56−5)。a=
r1+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の条件に合わない。このための予防
としてループカウンタLOOPCを用意し、ループカウンタL
OOPCがある値(例えば100)以上になったら強制的に候
補aをLLとして採用している(56−9、56−10、56−1
1)。
第57図は第56図のチェック56−8の詳細である。LLi
の候補aがPCの条件を満足するには、 (イ)a≦PC2(最高音以下であること) (ロ)a≧PC3(最低音以上であること) (ハ)|a−LLi−1|≦PC4(直前のLLとの差が最大値PC4
以下であること) (ニ)|a−LLi−1|≧PC5(直前のLLとの差が最小値PC5
以上であること) が成立しなければならない。第57図のフローではこれら
の条件が成立しないとき、フラグOKを“0"にセットして
いる(図中のoldaは直前のLLを表わす。56−13参照)。
第58図は第53図の53−7の詳細である。目的は、(オ
クターブ番号+コード構成音番号)で示されるアルペジ
オパターンLLの形式を、コード構成音データccを使って
(オクターブ番号+音名番号)で示されるメロディ音高
データの形式に変換して、MEDiに格納することである。
58−5、58−6の処理は、LLiのコード構成音番号(LLi
∧00ff)が現区間のコードのコード構成音数(CKNO)よ
り大きいときに、LLiのコード構成音番号を現区間のコ
ード構成音のうちで一番高いコード構成音番号に変更す
る処理である。図中、cはコード構成音のカウンタ、LL
i∧ff00はLLiのオクターブ番号、jは音名のカウンタで
ある。
第59図と第60図は第53図の53−8における非和声音の
付与の詳細である。この処理の目的はアルペジオに所望
の非和声音を付与してメロディの音高列を完成すること
である。非和声音の付加のために、上述した非和声音の
特徴{RSi}、コード進行評価で得た調性構造{KEY
i}、非和声音を分類する知識を表現するプロダクショ
ンルールが利用される。付加される非和声音は次の条件
を満足しなければならない。
(イ)所定の音域内の音であること (ロ)コード進行評価で得たKEYiを主音とするスケール
上の音であること (ハ)コード構成外音であること (ニ)プロダクションルールで得た結論と計画された非
和声音識別子RSiとが一致すること 第59図において、59−4〜59−18の外側のループは計
画された非和声音識別子RSiの数だけ繰り返すループで
あり、59−5〜59−16のループはアルペジオの音符の数
だけ繰り返す。59−8〜59−14では、非和声音の候補と
して、下限loから上限upまでの音域内にある各音高デー
タkが順次検査される(第61図参照)。音高データkが
音階音であってコード構成外音であるときは(59−8、
59−9)、関数Fを計算して(59−10)、プロダクショ
ンルールによる前向推論を実行し(59−11)、その結論
が計画された非和声音識別子RSiと一致するかどうかチ
ェックする(59−11)。一致するとき、音高データkは
上述した非和声音のとしての条件をすべて満足してい
る。したがって、付加される非和声数を計数するノンコ
ードトーンカウンタnctctをインクリメントし、見つけ
出された非和声音の音高データkをVMnctctに入れ、非
和声音の付加位置をPOSTnctctにセットし、関連するフ
ラグfljを“1"にセットする(59−19〜59−22)。本例
では、和声音間に高々1つの非和声音が付加されるよう
にしており、flj=0は、和声音MEDjとMEDj+1の間に非
和声音がまだ付加されていないことを示す。
59−12における結論=RSiの条件が不成立のときは、
着目している音高データkは非和声音としての条件を満
たさないので、音高データkをインクリメントして(59
−13)、処理を繰り返す。59−14においてk>UPが成立
するときは、和声音MEDjとMEDj+1の間に非和声音が付加
されなかったことを意味する。したがってjをインクリ
メントして(59−15)、次の和声音間に非和声音が付加
できるかどうかの検査に進む。
59−6における候補音の設定の詳細は第62図に示され
る。この例では、前後の和声音MEDi、MEDi+1の高い方の
音より5半音上から低い方の音より5半音下までをサー
チする音高の範囲としている(62−5〜62−7)。ただ
し、i=0のとき、すなわち、着目している区間の最初
の和声音の手前に非和声音を付加しようとするときに
は、最初の和声音の5半音上〜5半音下までを音高範囲
とし(62−1、2)、i=Vmednoのとき、すなわち着目
している区間の最後の和声音の後に非和声音を付加しよ
うとするときには、最後の和声音の5半音上〜5半音下
までを音高範囲としている(62−3、4)。
59−8における音高データkが音階音かどうかのチェ
ックの詳細を第65図に示す。図中のSCALEiは、区間iで
使用する音階の種類を表わし、第64図に示すような音階
データメモリ5のアドレスポインタとなっている。この
アドレスにある12ビット長の音階データ*SCALEiを上述
したコード進行評価で得たKEYiだけ転回する(65−
2)。例えば、SCALEiが“0"(ダイアトニックスケー
ル)の場合、そのデータはCを主音とするドレミファソ
ラシドを表わす。KEYiが“5"(F)のとき、データを5
つ転回することにより、Fを主音とする音階データaに
変換される。65−3は、音高データk(図中、MDで示さ
れている)を音階データと同じデータ形式に変換する処
理であり、その結果bと音階データaとの論理積が“0"
ならば音高データkは音階音でないと結論され、論理積
が“0"でないとき、音階音と結論される(64−5〜64−
7)。
59−10におけるFの計算の詳細を第63図に示す。本例
では、非和声音は前後の和声音間に1つだけ付加する構
成であるので、いくつかの関数(図中、F1〜F3)につい
ては所定の値にセットしている。
59−11の前向推論の詳細は上述した第44図に示され
る。
第59図の処理が完了したとき、nctctには付加された
非和声音の総数が記憶され、配列{Vi}のi番目には、
第59図の処理においてi番目に付加された非和声音の音
高データが記憶され、配列{POSTi}のi番目には第59
図の処理においてi番目に付加された非和声音の位置情
報が記憶されている。
これらのデータは、第60図の処理によって、メロディ
の音高列{VMEDi}の形式に変換される。なお配列{VME
Di}は、アルペジオ{MEDi}に初期設定されている。60
−2〜60−9は付加位置の順番に、配列{POSTi}、{V
Mi}をソートする処理である。60−10〜60−19におい
て、位置データPOSTiで示される位置に非和声音の音高
データVMiを挿入している。
なお、本例では和声音の間に非和声音を1つだけ付加
可能にしているが、複数の非和声音が付加できるように
処理を変更してもよい。
ここまでで、メロディの音高列は完成する。残る処理
はメロディの音長列の生成である。
第66図にメロディの音長列の生成のフローを示す(53
−9の詳細)。まず、エッセンス生成または抽出で得た
基準のリズムパターンの音符数を、着目している区間で
生成した音符数Vmedno(メロディの音高列のデータ数)
とを比較して、両者の差aを算出する(66−1)。生成
音符数の方が基準リズムパターンの音符数より少ないと
き(a>0のとき)は、パルススケールによる音符の最
適結合を、差の数だけ繰り返し実行する(66−2〜66−
6)。生成音符数の方が基準リズムパターンの音符数よ
り多いとき(a>0のとき)は、音符の最適分割を差の
分だけ繰り返し実行する(66−7〜66−11)。本例では
リズムパターンのデータ形式として、16ビット長のデー
タを使用し、各ビット位置を各タイミングに割り当て、
“1"の値をもつビット位置で音が発生することを表わし
ているので、最後にMERデータ形式に変換する(66−1
2)。
結合処理の詳細は第67図に示す。図中、PSCALEjは使
用するパルススケールのj番目の成分スケールを表わ
し、RRは処理対象のリズムパターンである。RRのビット
が“1"のなかで、パルススケールの重みが最小のポイン
トを“0"にすることで音符を結合する。例えば、基準リ
ズムパターンが であるときに、ノーマルノパルススケール(第11図参
照)を使って、音符を1つ結合した場合、結果は、 となる。
これは、次のようにして得られる。
まず、RRは、当初 0001 0001 0101 0001 である。一方、ノーマルのパルススケールは 1213 1214 1213 1215 である。RRのビット“1"のうちでノーマルのパルススケ
ールが最小の重みをもつポイントは、右端から7番目の
位置である。この位置のビットが“0"になる。したがっ
て、結果のRRは、 0001 0001 0001 0001 となり、これは、 を表わしている。
分割処理の詳細は第68図に示す。分割は、RRのビット
が“0"のなかでパルススケールの重みが最大のポイント
を“1"とすることで実行される。例えば、リズムパター
に対し、ノーマルのパルススケールで音符を分割したと
き、結果は、 となる。
MERデータ形式への変換66−12の詳細は第69図に示
す。図中、c1は音符のカウンタであり、c2は各音符の音
長を計測するカウンタである。この例で、MER0にはRRか
ら最初の“1"が現われるまで長さが入るので、区間の境
界線(小節線)をまたぐ音符も処理可能である(シンコ
ペーション対策)。
データ移動53−10の詳細を第70図に示す。まず、MER0
(現在の生成区間の頭の空白部分)を生成済の最後の音
符の音長データMELRmeldnoに加える。ここにmeldnoは既
に生成されている音符の数を表わす。今回生成した音高
列VMED1〜VMEDvmednoをMELDに移動し、今回生成した音
長列MER1〜MERvmednoをMELRに移動する(70−2〜70−
6)。meldnoを更新して終了する(70−7)。
<作曲機のまとめ> 以上の説明から明らかなように、自動作曲機としての
本装置は種々の特徴を備えており、そのいくつかを下記
に示す。
(A)メロディの分析と合成において音楽知識を使って
推論を行うプロダクションシステムが組み込まれてい
る。
(B)メロディに含まれる非和声音を分類する処理と、
アルペジオに非和声音を付加する処理とが同一の音楽知
識を表現するプロダクションルールデータに基づいて行
われるため、両方の処理に可逆性がある。
(C)作曲の材料として与えられるコード進行を分析し
て、曲の階層構造、調性構造を抽出することにより、曲
が計画される。
(D)抽出した調性構造は各区間で使用される音階のキ
ーを規定する。この結果、調性感に富む自然なサウンド
の曲が保証される。
(E)抽出した階層構造はアルペジオの生成制御に利用
される。これにより、生成される曲に多様性と一貫性を
盛り込むことができる。
なお 上述した実施例は単なる例示であり、種々の変
形、変更、改良が可能である。例えば、上述した実施例
ではモチーフから抽出したアルペジオパターンの特徴PC
を、アルペジオパターンLLの生成において制御データと
して使用しているが、アルペジオパターンの特徴PCを曲
の進行に伴って変化させてもよい。これは、例えば、曲
の進行位置や階層構造を変数とする関数の演算手段で実
現できる。
同様に、非和声音の特徴{RSi}に関しても、曲の進
行に伴って変化させることができる。例えば、モチーフ
から抽出した非和声音の特徴のなかの1つの非和声音識
別子を他の非和声音識別子に置換する。これは、非和声
音の識別子のセットのなかから、乱数的に1つを選択す
ることで実現できる。
また、リズムに関し、上記実施例ではパルススケール
による音符の結合、分割により、リズムの制御を行って
いるが、モチーフに含まれる支配的なミニリズムパター
ンを抽出し、これを生成するメロディの音長列のなかに
組み込むようにしてもよい。
《分析機モード》 以下、本装置の分析機モードについて詳細に説明す
る。
第71図に説明機能付き前向推論のフローを示す。これ
は分析機ゼネラルフロー(第5図)におけるメロディ分
析5−6において行われる。さらに、知識エディターゼ
ネラルフロー(第6図)の6−4でも行われる。目的
は、メロディに含まれる非和声音を前向推論により分類
し、その結論と結論に達した理由(説明文)を使用者に
知らせることである。これにより、使用者は非和声音の
分類に関する知識が容易に得られる。第71図において、
71−6では最終結論(プロダクションルールのリーフ)
に到達するまでの条件部に関するメッセージが表示され
る。71−9で最終結論のメッセージが表示される。なお
71−7に示すbとcには最終結論を結論部にもつルール
のポインタと、そのルールより1つ前のルールのポイン
タがそれぞれ記憶される。この変数b、cは後述する知
識エディット(プロダクションルールデータの修正)に
おいて利用される。71−6、71−7、71−9を除く部分
は第44図に示す前向推論と同様である。
71−6の詳細を第72図の72−1〜72−4に、71−9の
詳細を72−5に示す。説明文の例は第73図に示す。72−
1でプロダクションルールの前提部における関数の下限
のデータLpを表示し、72−2で前提部における関数の種
類Xpを表わすメッセージXDOCxpを表示し、72−3で前提
部における関数の上限データUpを表示し、72−4で前提
部の成否を示すメッセージDEARUtruを表示する。72−5
では結論−pを表わすメッセージRDOC−pを表示する。
第74図はプロダクションルールの例を示す。このルー
ルに従って推論を行った場合の説明分の表示例を第75図
に示す。例えば、コードがCmajでドレミにおけるレを分
析する場合、第74図のフローにおいて、74−1で示すル
ール(0≦f4≦0か否か)を検査したとき、 “0≦前後和声音の音高差≦0でない” が表示され、続く74−5のルール(1≦f6≦1か否か)
を検査したとき、 “1≦単調増加又は減少識別子≦1である” と、その肯定結論データ−p(=3)に対応する “経過音です” のメッセージが表示される。これから、“ドレミ”にお
ける非和声音“レ”は、前後の和声音“ド”、“ミ”の
間に音高差があり、かつ“ドレミ”の並びが単調な音高
変化であるので、経過音と結論されたことがわかる。
このように、分析機モードでは、メロディをプロダク
ションルールデータによる推論により、分析して、どの
音がどのようなタイプの非和声音であるかを導き出す。
そして、推論において使用したプロダクションルールデ
ータの意味が使用者に知らされる。次の知識エディター
モードで説明するように、使用者は分析機から与えられ
た分析結果に満足しないときは、所望の結果が得られる
ようにプロダクションルールデータを修正することがで
きる。
《知識エディター》 知識エディターモードにおいて、本装置は、メロディ
の分析と合成において使用されるプロダクションルール
データ(音楽知識)を使用者に修正させる環境を与え
る。
以下、プロダクションルールデータの修正として、知
識の追加、削除、変更の例を説明する。
<知識の追加(ノードの追加)> 第76図にノード追加のフローを、第77図にノード追加
の参考図を示す。76−1においては上述した説明機能付
き前向推論が実行される。その分析結果に対し、使用者
はノードの追加を希望する場合、ノード追加を要求する
(76−2)。前向推論における説明は例えば次のように
与えられる。
この分析結果に対し、結論RDOC−pに達するには、も
う1つルール(ノード)を追加する必要があると使用者
が考えたとしてみる。この追加ノードのルールポインタ
をPn+1で表わすと、 LPN+1≦XDOCpn+1≦Upn+1が成立するとき、または不成
立のとき、結論RDOC−pということになる。追加ノード
の条件部が成立するとき、RDOC−pが結論だとすると、
追加ノードの条件部が不成立のときには別の結論を用意
しなければならない。逆に、追加ノードの条件部が不成
立のとき、PDOC−pが結論だとすると、追加ノードの条
件部が成立するときに別の結論を用意しなければならな
い。
したがって、ノードの追加のために、使用者が入力す
る項目は、 (A)追加ノードの条件部の下限データLpn+1と上限デ
ータUpn+1 (B)追加ノードの条件部の関数の種類Xpn+1の選択 (C)追加ノードの結論部に追加する非和声音識別子の
名称 (D)追加する非和声音識別子は追加ノードの条件部が
成立のときの結論か、不成立のときの結論かの選択 である。
追加ノードの条件部の入力は76−3〜76−5で行われ
ている。すなわち、76−3で関数のリストXDOC1〜XDOCn
を表示し、76−4で使用者が選択した関数の番号をX
RULENO+1に代入する。ここに、(RULENO+1)は追加ル
ールのポインタである。そして、76−5で下限データと
上限データが使用者から入力され、LRULENO+1とU
RULENO+1にセットされる。76−6から76−10は追加する
結論の入力である。すなわち、76−6で結論のリストRD
OC1〜RDOCkornoを表示する(kornoは結論の種類の
数)。追加する結論(非和声音識別子)は、この結論リ
ストに含まれている場合と、そうでない場合がある。結
論リストに含まれている場合には、結論の番号Noを選択
する(76−7、11)。含まれていないときは、RDOCkorn
o+1に新しい結論の名称を入力する(76−7、76−
8)。そして、kornoをインクリメントし、その値をNo
に結論データとしてセットする(76−9、10)。76−12
から76−14では追加した結論が追加ルールの条件部が成
立したとき(YES側)のものか成立しないときのものか
を指示する入力を受けて−No(追加結論データ)とP
(前向推論で得た結論データ)をYRULENO+1とNRULENO
+1にセットしている。以上で、プロダクションルール
データメモリに追加ルールのデータが登録されたことに
なる。残る処理(76−15〜76−18)は、前向推論で使用
した最後のルール(リーフであったルール)と今回追加
したルールとのポインタによる連結処理である。すなわ
ち、前向推論の最後のルールの結論部を新たに追加され
たルールのポインタに変更するために、truの値によりY
bまたはNbにRULENO+1を代入する。最後にルールの数R
ULENOを更新してノードの追加処理を完了する。
<知識の削除(ノードの削除)> 第78図にノードの削除のフローを、第79図にノードの
削除の参考図を示す。本例のノード(ルール)の削除
は、その結論部(Yp、Xp)が、次のルールへのポインタ
ではなく非和声音識別子(最終結論)を表わしているノ
ードに対してのみ可能としている。すなわち、本構造の
知識の末端から削除が可能である。このため、前向推論
で使用した最終ルールの両方の結論部RDOC-Yb、RDOC-Nb
(一方が前向推論の結論)を表示する(78−3)。この
代りに、YbまたはNbが次のルールへのポインタを表わす
正の値のとき、削除不能なルールであることを直接、使
用者に知らせるようにしてもよい。削除可能なノードに
対して使用者の削除の確認が得られたときは(78−
5)、削除するノードのポインタbが、それより1つ前
にアクセスされたノードのいずれの結論部(Ycまたは
Nb)に入っているかチェックし(78−6)、削除するノ
ードのポインタをもつ方の結論部を、前向推論の結論デ
ータP(非和声音識別子)に書き替える(78−6、78−
7)。この結果、第b番目のノード(ルール)はプロダ
クションルールデータメモリから削除されたことにな
る。最後に、ルール数RULENOをデクリメントしてノード
の削除処理は完了する(78−8)。
例えば、メロディの状況としてf4=0、f7=2が与え
られているとする。ここで第74図に示すプロダクション
ルールを使って前向推論を実行すると、ルールポインタ
1のルールでその条件部0≦f4≦0は成立する。ルール
1の肯定結論部はルール2を指しており、ルール2が検
査される。ルール2の条件部1≦f7≦∞は成立する。ル
ール2の肯定結論部は負の値−1であるので、最終結論
を表わしている。この前向推論に対し、使用者はルール
2の条件1≦f7≦∞は不要であると考えたとする。使用
者は装置にノード削除を要求する。これに対し装置は、
ルール2の肯定結論部と否定結論部を使用者に通知す
る。これに対し、使用者は、両方の結論部に差を付ける
必要がないことを判断した上で装置にルール2の削除の
要求を確認したことを告げる。これに対し、装置は、削
除するルール2をアクセスしたルール1の肯定結論部
を、ルール2のポインタ値“2"から、前向推論の結論
(削除ルール2の肯定結論部)の値“−1"に書き替え
る。これにより、ルール2は、後の前向推論でアクセス
されることはなくなり、事実上削除される。なお、上記
ルール1の肯定結論部には、削除ルール2のいずれの結
論データをセットしてもよい。なぜなら、削除ルール2
の条件部の削除は、条件部の成立の有無にかかわらず同
じ結論を認めることにほかならないからである。
<結論の修正> 第80図に結論の修正のフローを示す。結論の修正は、
前向推論で得られた結論(非和声音識別子)に対して行
われる。まず、結論のリストを表示し(80−2)、結論
リスト中に使用者の希望する非和声音の種類があるかど
うかを問い合わせる(80−3)。希望する結論がリスト
中にある場合には、その結論の番号を入力し(80−
8)、ない場合にはその結論の種類を問い合わせ、使用
者から入力された非和声音のタイプをRDOCkornoにセッ
トし、結論リストのサイズkornoをインクリメントし、
インクリメントされたkornoを修正された結論データと
してNoにセットする(80−5〜7)。前向推論で使用し
た末端のルールのいずれの結論部(YbまたはNb)が前向
推論の結論であったかをtruを参照してチェックし、対
応する結論部を修正結論データ(−No)に書き替える
(80−9〜11)。
上述した知識の追加、削除、結論の修正機能により、
既存のプロダクションルールデータを任意の希望するデ
ータに修正することが可能である。これらの修正は既存
のプロダクションルールデータよって、メロディを分析
した結果の是非を使用者に判断させ、その判断に従って
行っている。したがって、使用者が一回の前向推論で見
る音楽知識はプロダクションルール全体の一部である。
これに加え、プロダクションルールの全体を木構造で表
示する手段を設けて、使用者が装置に組み込まれている
音楽知識の全体を把握できるようにするとさらに望まし
い。この木構造の音楽知識の表示手段については以下説
明する。
<知識のツリーモニター> 第81図にプロダクションルールが表現する音楽知識を
木構造の形式で表示する知識のツリーモニターのフロー
を示す。第82図にはこの知識のツリーモニターにより、
表示装置の画面に表示される音楽知識の木を例示してあ
る。この例ではプロダクションルールデータメモリ7に
ある各ルールの条件部(ノード)、または結論部を表示
する位置をXY座標上の相異なる位置に割り当てている。
全てのルールを検索するため、ルートのルールより始め
て、各ルールの条件部のYES側を辿る。YES側を検査した
ルールに対しては、後でNO側を辿るためにNO側のルール
を指示するデータ(ルールポインタ)をスタックに格納
する。1つのリーフ(非和声音識別子を示す結論)に達
っしたら、スタックからルールポインタを取り出し、処
理を続行する。スタックに残りのルールポインタがなく
なったとき、すべてのルールが検索されて表示されてい
る。
第81図に従うと、ルールデータの読み込み(87−1)
の後、表示の初期位置としてx=0、y=0(例えば、
画面の左上の位置)が選択される(81−2)。この初期
位置にはルートのルールの条件部(ノード)が表示され
ることになる。スタックのポインタPOINTを“0"に初期
化し(81−3)、ルールのポインタPにはルートのルー
ルを指す“1"を入れる(81−4)。
81−5でPが正であるとき、Pは特定のプロダクショ
ンルールを指している。そこで、表示位置(x、y)に
Pが示すルールの条件部を表示する。後で、このルール
の条件部のNO側に続くルールを入れるために、NP(ルー
ルPの否定結論部のデータ)をスタックSTKPOINTに入
れ、スタックポインタPOINTをインクリメントする(81
−7)。x=x+1によりxの位置を1つ右に移動して
次にアクセスするルールのノードまたは結論の表示装置
を決め(81−8)、今回アクセスしたルールの肯定結論
部のデータYpをルールポインタPに入れることにより、
今回のルールの条件部のYES側に続くルールが次にアク
セスされるようにする。
81−5でPが負のときは、Pはリーフ(結論)を意味
している。したがって、表示位置(x、y)に結論を表
示し(81−10)、スタックからデータSTKPOINTを取り出
して、ルールポインタPに入れ、スタックポインタPOIN
Tをデクリメントする(81−11)。上述したように、ス
タックには、YES側が検査されたルールのNO側に続くル
ールを指すデータ、あるいは後続するルールがないとき
には結論を表わすデータが入っている。xを1つ左に移
動し(81−12)、yを1つ下に移動して(81−13)、次
に表示するデータの位置を決める。ツリーモニターの処
理は81−14でスタックポインタPOINTが負になったとき
に完了する。
知識のツリーモニターにより表示された音楽知識のな
かに修正を希望する知識が含まれている場合、上述した
のと同様の知識の追加、削除、結論の修正機能を用い
て、所望の知識に変更することが可能である。例えば、
知識の追加の場合、使用者はツリーモニターにより表示
された音楽知識の末端(リーフ、結論)のなかから、条
件を加えることを希望する末端をカーソル等により指定
する。装置は指定された位置がどのルールのいずれの結
論を指しているかを検査する。これにより、前向推論
(第71図)におけるP、b、trueに対応するデータが得
られたことになる。後は、第76図の76−3以下の処理を
実行することにより、知識が追加される。
[発明の効果] 以上の説明から明らかなように、本発明の自動作曲/
分析機は、メロディの分析において非和声音を分類する
非和声音分類手段とメロディの合成において分散和音に
非和声音を付加する非和声音分散手段とが、知識ベース
手段に蓄えられた同一の音楽知識に従って推論を実行す
るように構成されている。したがって、メロディの分析
の処理における各非和声音の種類の意味と、分析結果か
らメロディを合成する処理における各非和声音の種類の
意味を同じにすることができ、結果として、入力された
メロディと自動生成されたメロディとの間に一貫性をも
たせることができる。
さらに本発明によれば、上記知識ベース手段に蓄えら
れる音楽知識を入力された修正データに従って変更する
知識管理手段が設けられる。したがって、自動作曲/分
析機が使用する音楽知識は可変であり、種々の音楽知識
に基づく様々な作曲が可能となる。
【図面の簡単な説明】
第1図は本発明の一実施例に係る自動作曲/分析機の全
体構成図、第2図はプロダクションシステムの面から把
えた装置の全体像を示す図、第3図はプロダクションシ
ステムの全体機能図、第4図は作曲機モードにおける全
体的な動作を示すフローチャート、第5図は分析機モー
ドにおける全体的な動作を示すフローチャート、第6図
は知識エディターモードにおける全体的な動作を示すフ
ローチャート、第7図は処理において使用される主な変
数のリストを示す図、第8図、第9図、第10図、第11
図、第12図は使用されるデータの形式を示す図、第13図
は初期設定のフローチャート、第14図はコード進行メモ
リに記憶されるコード進行データの例を示す図、第15図
はコード進行データの読み込みのフローチャート、第16
図はパルススケールメモリに記憶されるパルススケール
データを例示する図、第17図はパルススケールデータの
読み込みのフローチャート、第18図はプロダクションル
ールデータメモリに記憶されるプロダクションルールデ
ータを例示する図、第19図はプロダクションルールデー
タの読み込みのフローチャート、第20図はモチーフメモ
リに記憶されるメロディデータ(モチーフデータ)を例
示する図、第21図はメロディデータの読み込みのフロー
チャート、第22図はエッセンス生成のフローチャート、
第23図はアルペジオパターンの特徴を設定するフローチ
ャート、第24図は非和声音の特徴を設定するフローチャ
ート、第25図はモチーフのリズムを区間別に評価するフ
ローチャート、第26図はPs、Pe、Pss、Peeの算出のフロ
ーチャート、第27図はPs、Pssの算出のフローチャー
ト、第28図はPe、Peeの算出のフローチャート、第29図
はモチーフのアルペジオパターンを抽出するフローチャ
ート、第30図は各コードの構成音データの例を示す図、
第31図はコードデータから構成音データを生成するフロ
ーチャート、第32図はアルペジオパターンの特徴を抽出
するフローチャート、第33図は非和声音の特徴を抽出す
るフローチャート、第34図はコードに基づいてメロディ
音を和声音と非和声音とに分類するフローチャート、第
35図は分析対象のメロディの状況を表わす関数Fを計算
するフローチャート、第36図は関数F1の算出のフローチ
ャート、第37図は関数F2の算出のフローチャート、第38
図は関数F3の算出のフローチャート、第39図は関数F4
算出のフローチャート、第40図は関数F5の算出のフロー
チャート、第41図は関数F6の算出のフローチャート、第
42図は関数F7、F8の算出のフローチャート、第43図は計
算した関数Fを一時記憶するフローチャート、第44図は
非和声音の種類を推論するフローチャート、第45図はブ
ロック間のコード進行の一致度を算出するフローチャー
ト、第46図は算出された一致度から階層構造データを生
成するフローチャート、第47図はブロックの階層構造デ
ータをコード区間ごとの階層構造データに変換するフロ
ーチャート、第48図はコード進行から調性構造を抽出す
るフローチャート、第49図は調性構造の抽出過程を例示
する図、第50図は最初のコードCD1とi番目のコードCDi
との調性距離を算出するフローチャート、第51図はコー
ド間の調性距離の定義を示す図、第52図はスケール(音
階)の処理を示すフローチャート、第53図はメロディ生
成のフローチャート、第54図は音型(アルペジオパター
ン)の生成、セーブ、ロードを示すフローチャート、第
55図は音型のデータバッファを例示する図、第56図はア
ルペジオパターン生成のフローチャート、第57図はアル
ペジオパターン生成におけるチェックのフローチャー
ト、第58図はアルペジオパターンをメロディデータ形式
に変換するフローチャート、第59図と第60図はアルペジ
オに非和声音を付加するフローチャート、第61図は非和
声音付加処理の順序を示す図、第62図は非和声音の候補
とする音高の範囲を設定するフローチャート、第63図は
関数Fの計算のフローチャート、第64図は音階データメ
モリに記憶されるスケールデータの例を示す図、第65図
は音階音の識別のフローチャート、第66図はメロディの
音長データを生成するフローチャート、第67図は音符の
最適結合のフローチャート、第68図は音符の最適分割の
フローチャート、第69図は生成したリズムパターンをME
Rデータ形式に変換するフローチャート、第70図は生成
したメロディデータを連続領域に移動するフローチャー
ト、第71図は説明機能付き前向推論のフローチャート、
第72図は推論に対する説明文を表示するフローチャー
ト、第73図は説明文の例を示す図、第74図はプロダクシ
ョンルールの例を示す図、第75図は説明文の表示例を示
す図、第76図はノードの追加のフローチャート、第77図
はノードの追加によるルールデータの更新を模式的に示
す図、第78図はノードの削除のフローチャート、第79図
はノード削除によるルールデータの更新を模式的に示す
図、第80図は結論の修正のフローチャート、第81図は知
識のツリーモニターのフローチャート、第82図は知識の
ツリーモニターによる表示例を示す図である。 1……CPU、2……入力装置、3……モチーフメモリ、
4……コード進行メモリ、6……プロダクションルール
データメモリ、11……モニター。

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】メロディを入力するメロディ入力手段と、 コード進行を入力するコード進行入力手段と、 上記メロディ入力手段により入力されたメロディを分析
    するメロディ分析手段と、 上記コード進行入力手段により入力されたコード進行と
    上記メロディ分析手段の分析結果に基づいてメロディを
    合成するメロディ合成手段と、 を備え、さらに、 上記メロディ分析手段が上記メロディ入力手段により入
    力されたメロディに含まれる非和声音を分類してその分
    類結果を上記分析結果の少なくとも一部として出力する
    非和声音分類手段を含み、 上記メロディ合成手段が、上記コード進行入力手段によ
    り入力されたコード進行に従う分散和音を生成する分散
    和音生成手段と、上記分散和音生成手段により生成され
    た分散和音に非和声音を付加して上記メロディを合成す
    る非和声音付加手段とを含んで成る自動作曲/分析機に
    おいて、 メロディに含まれる非和声音を分類するための音楽知識
    を畜える知識ベース手段を設け、上記非和声音分類手段
    と上記非和声音付加手段が、この共通の知識ベース手段
    を使用して非和声音の分類、付加を実行することを特徴
    とする自動作曲/分析機。
  2. 【請求項2】特許請求の範囲第1項記載の自動作曲/分
    析機において、上記非和声音分類手段と上記非和声音付
    加手段は、上記知識ベース手段の知識を使って状況に合
    わせた推論を実行するために、メロディの状況を表現す
    る複数の種類の関数の値を演算する関数演算手段を有す
    ることを特徴とする自動作曲/分析機。
  3. 【請求項3】特許請求の範囲第1項記載の自動作曲/分
    析機において、上記知識ベース手段の知識は複数のルー
    ルのネットワークで構成され、各ルールは条件部と条件
    部から分岐する2つの結論部とから成り、一方の結論部
    には条件部が成立したときに推論を続けるべきルールの
    ポインタまたは推論を続けるべきルールがないときには
    特定の非和声音識別子が記憶され、他方の結論部には条
    件部が成立しないときに続けるべきルールのポインタま
    たは推論を続けるべきルールがないときには特定の非和
    声音識別子が記憶されることを特徴とする自動作曲/分
    析機。
  4. 【請求項4】特許請求の範囲第1項記載の自動作曲/分
    析機において、上記非和声音付加手段は、上記分岐和音
    生成手段の生成した分散和音に基づいて、非和声音の候
    補にする音高の範囲を設定する条件設定手段を有するこ
    とを特徴とする自動作曲/分析機。
  5. 【請求項5】メロディを入力するメロディ入力手段と、 コード進行を入力するコード進行入力手段と、 上記メロディ入力手段により入力されたメロディを分析
    するメロディ分析手段と、 上記コード進行入力手段により入力されたコード進行と
    上記メロディ分析手段の分析結果に基づいてメロディを
    合成するメロディ合成手段と、 を備え、さらに、 上記メロディ分析手段が上記メロディ入力手段により入
    力されたメロディに含まれる非和声音を分類してその分
    類結果を上記分析結果の少なくとも一部として出力する
    非和声音分類手段を有し、 上記メロディ合成手段が、上記コード進行入力手段によ
    り入力されたコード進行に従う分散和音を生成する分散
    和音生成手段と、上記分散和音生成手段により生成され
    た分散和音に非和声音を付加して上記メロディを合成す
    る非和声音付加手段とを有して成る自動作曲/分析機に
    おいて、 上記非和声音分類手段と上記非和声音付加手段とによっ
    て共用される資源として、メロディに含まれる非和声音
    を分類するための音楽知識を蓄える知識ベース手段を設
    け、さらに、 上記知識ベース手段に蓄えられる音楽知識を、入力され
    た修正データに従って修正する知識管理手段を 設けたことを特徴とする自動作曲/分析機。
  6. 【請求項6】特許請求の範囲第5項記載の自動作曲/分
    析機において、上記知識管理手段は、 特定の種類の非和声音が満足すべき条件を上記知識ベー
    ス手段に追加する条件追加手段と、 特定の種類の非和声音が満足すべき条件を上記知識ベー
    ス手段から削除する条件削除手段と、 条件を満足する非和声音の種類を他の種類の非和声音に
    変更する結論変更手段と、 から成ることを特徴とする自動作曲/分析機。
JP62325178A 1987-12-24 1987-12-24 自動作曲機 Expired - Fee Related JP2615722B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62325178A JP2615722B2 (ja) 1987-12-24 1987-12-24 自動作曲機
US07/494,919 US4982643A (en) 1987-12-24 1990-03-13 Automatic composer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62325178A JP2615722B2 (ja) 1987-12-24 1987-12-24 自動作曲機

Publications (2)

Publication Number Publication Date
JPH01167783A JPH01167783A (ja) 1989-07-03
JP2615722B2 true JP2615722B2 (ja) 1997-06-04

Family

ID=18173883

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62325178A Expired - Fee Related JP2615722B2 (ja) 1987-12-24 1987-12-24 自動作曲機

Country Status (1)

Country Link
JP (1) JP2615722B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3303617B2 (ja) * 1995-08-07 2002-07-22 ヤマハ株式会社 自動作曲装置
JP3266198B2 (ja) 1999-10-25 2002-03-18 オムロン株式会社 センサシステム
JP4978170B2 (ja) * 2006-11-28 2012-07-18 カシオ計算機株式会社 演奏装置、及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
コンピュートピア、1975・12月号 Vol.9 No.110 株式会社コンピュータ・エージ社

Also Published As

Publication number Publication date
JPH01167783A (ja) 1989-07-03

Similar Documents

Publication Publication Date Title
US4982643A (en) Automatic composer
Raphael et al. Functional harmonic analysis using probabilistic models
JP2010538335A (ja) 音声メロディ向けの自動伴奏
JPH02306283A (ja) メロディ分析機
US5424486A (en) Musical key determining device
JP2615722B2 (ja) 自動作曲機
US6984781B2 (en) Music formulation
JP2615720B2 (ja) 自動作曲機
JP2615721B2 (ja) 自動作曲機
JP2006201278A (ja) 楽曲の拍節構造の自動分析方法および装置、ならびにプログラムおよびこのプログラムを記録した記録媒体
JP2638905B2 (ja) 自動作曲機
JP2621266B2 (ja) 自動作曲機
JPH05181409A (ja) 自動作曲機
Bergeron et al. Structured Polyphonic Patterns.
JP3088919B2 (ja) 調判定音楽装置
JPH05346781A (ja) 調検出装置および自動編曲装置
JP2666063B2 (ja) 自動作曲機
JP3163654B2 (ja) 自動伴奏装置
JP3364940B2 (ja) 自動作曲機
Lesnick Computer-Aided Autocompletion of Cadential Harmony
Manwaring MIDI explorations
Lowe An Inverse Reinforcement Learning Approach to Generative Music
JP2689257B2 (ja) 自動作曲機
Jones A computational composer's assistant for atonal counterpoint
JP3163653B2 (ja) 調性判定装置

Legal Events

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