JPH079587B2 - コード進行生成装置、コードパターン決定装置及び作曲機 - Google Patents

コード進行生成装置、コードパターン決定装置及び作曲機

Info

Publication number
JPH079587B2
JPH079587B2 JP1235706A JP23570689A JPH079587B2 JP H079587 B2 JPH079587 B2 JP H079587B2 JP 1235706 A JP1235706 A JP 1235706A JP 23570689 A JP23570689 A JP 23570689A JP H079587 B2 JPH079587 B2 JP H079587B2
Authority
JP
Japan
Prior art keywords
chord
pattern
music
progression
code
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
JP1235706A
Other languages
English (en)
Other versions
JPH02160296A (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 JP1235706A priority Critical patent/JPH079587B2/ja
Publication of JPH02160296A publication Critical patent/JPH02160296A/ja
Publication of JPH079587B2 publication Critical patent/JPH079587B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 [発明の技術分野] 本発明は音楽装置に関し、特にコード進行生成装置、コ
ードパターン決定装置及び作曲機に関する。
[発明の背景] 与えられたメロディに使用できるコードの列、即ちコー
ド進行を生成する装置は既に知られており、例えば、特
開昭58−87593号や本件出願人に係る特開昭58−114097
号に示されている。
この種の装置は一般に鍵盤楽器のような電子楽器に組み
込まれてきた。通常、動作の際にキーボードを弾くこと
によりメロディ情報が入力され楽器内のメモリに記録さ
れる。次いで記録されたメロディ情報を区間毎例えば小
節毎に分析してメロディによって暗示されるハーモニー
の進行即ちコード進行を求める。このようにして得たコ
ード進行は再びキーボードからメロディが演奏される際
その演奏に合わせて自動的な伴奏を付けるのに利用され
る。
動作原理上、上記のコード進行生成装置はコード進行を
得るために楽曲のメロディの情報を必要とし、メロディ
の和声付装置と呼ぶのがふさわしいものである。
メロディ情報がまったく与えられない状況の下で楽曲の
コード進行を発生する装置はメロディ和声付装置とは相
当異なるアプローチをとる必要がある。このようにメロ
ディ情報を必要とせずにコード進行を生成する装置が本
件発明者により提案され、本件出願人にかかる特願昭63
−90226号(昭和63年4月14日出願)に出願されてい
る。この特許出願に開示する装置は既存の多くの楽曲に
関するコード進行を収集する手段を持っている。収集し
たコード進行の2つのコードの順序もしくは順列の夫々
について頻度測定手段によりその第1コードから第2コ
ードへの遷移の回数を測定して2コード遷移の頻度表を
作成する。動作の際この頻度表を乱数発生器と組み合せ
てその結果に基づきコードを次々と求めてコード進行を
生成する。即ち現コードが与えられると次のコードは頻
度表におけるそのコードの頻度の大きさと乱数的に得ら
れた数値との合計が最大となるコードによって決定され
る。この乱数成分の相対的な重みはユーザーによって調
整できるようになっている。
上記の装置はメロディを必要とせずにコードの連鎖によ
ってコード進行を生成することができるが次のような欠
点がある。
(1)装置の動作が収集した(サンプルした)コード進
行の統計的なパラメータである頻度表に大きく依存する
為に、次コード決定に影響を与える乱数成分の相対的な
重みにも依存するが、同じ頻度表からコード進行をいく
つか作った場合に互いに似たようなものになってしま
う。従って実質上異なるコード進行を得るためにはコー
ド進行の収集をやり直しその収集結果から新しい頻度表
を作り直す必要がある。
(2)コード進行の生成が全自動で行われるため、ユー
ザーにとってコード進行の生成に積極的に参加したり、
ユーザーが中心となるようなコード進行生成を行う余地
がとんど残されない。
(3)次のコードが現コードからの遷移の最尤度によっ
て基本的に決定されるようになっている。これはコード
進行生成における短い長さ(2コードの長さ)の制御で
あり、音楽性をコード進行に保証するための長い長さの
制御や構造的な制御を欠いている。
[発明の目的] 従って、この発明の目的はメロディが作成されるより前
にコード進行を生成する改良されたコード進行生成装置
を提供することである。
本発明のもう1つの目的は自然さや一様性、多様性等の
豊かな音楽性を備えたコード進行を生成可能なコード進
行生成装置を提供することである。
本発明のもう1つの目的は意図する楽曲の構造的な特徴
に従ってコード進行を生成可能なコード進行生成装置を
提供することである。
更に、本発明のもう1つの目的はデータベースの手法に
従ってコード進行を生成可能なコード進行生成装置を提
供することである。
更に、本発明の目的はコード進行の生成におけるユーザ
ーの積極的な関与の度合をユーザーの好みや経験、知識
等に応じて広い範囲で変えることができるコード進行生
成装置を提供することである。
本発明のもう1つの目的は装置とユーザーとの間でとり
行われる会話ないし対話を通じてコード進行を生成可能
なコード進行生成装置を提供することである。
更に本発明の目的は本発明のコード進行生成装置を利用
することによってメロディを合成可能な自動作曲機を提
供することである。
更に本発明の目的はコードパターンを利用してコード進
行を生成可能なコード進行生成装置を提供することであ
る。
更に本発明のもう1つの目的はコード進行の一部として
使用されるコードパターンの決定を、コードパターンを
試聴させそれに対するユーザーの最良の判断に従って行
うことのできるコードパターン決定装置を提供すること
である。
[発明の構成、作用] 本発明の1つの側面によれば、楽曲のコード進行を生成
するコード進行生成装置において、複数のコードから構
成されるコードパターンの集合体を表わすデータベース
を記憶するコードパターンデータベース手段(第2図の
3D、第35図の440、450)と、前記コードパターンデータ
ベース手段と動作上結合し、該コードパターンデータベ
ース手段から複数のコードパターンを1度に1つずつ選
択するコードパターン選択手段(第3図のF6、第34図の
410、420、460、第36図の36−4)と、前記コードパタ
ーン選択手段と動作上結合し、前記複数のコードパター
ンを連結して楽曲のコード進行を生成する連結手段(第
3図のF8、第34図の410、420、480、第36図の36−9)
とから成るコード進行生成装置が提供される。
この構成によれば、何らメロディを必要とせずに楽曲に
対するコード進行を生成することが可能である。換言す
るとメロディの代わりに本装置によって生成されるコー
ド進行が音楽的な基礎乃至音楽的な材料となり、それに
基づいて本装置のユーザーあるいは自動作曲機がコード
進行に適したメロディを作ることができる。更に本装置
はコードパターンをつないでいくことによりコード進行
を生成することができる。上記データベースはコードパ
ターン源として機能し、そこから適当なコードパターン
が選び出され、コード進行として連結されていく。従っ
て、前提条件としてユーザーの方でコードパターンの学
習(学習すべきコードパターンは比較的多く従って覚え
るのに相当な時間がかかると考えられる)を行う必要は
全くない。
上記コードパターンデータベース手段(ファイル手段)
はその物理的なデータ構造、論理的なコードパターンの
組織や記録媒体の種類(内部、外部のROM、RAM、各種メ
モリカード)等に関して種々の形態を取り得る。
簡単な構成例ではコードパターンデータベース手段は単
一のファイルのコードパターンを含み、各コードパター
ンがコードの接続に関する音楽的な規制を破ることなし
にファイル上の任意のコードパターン(同じコードパタ
ーンも含む)の後につなぐことができるように構成され
る。このようなファイルは、例えばトニック(T)機能
のコードで終わるコードパターンの後には調性音楽の特
徴を損なうことなく任意のコードもしくは実質上任意の
コードをつなぐことができるという調性和声の理論を利
用することによって実現し得る。このような構成のコー
ドパターンデータベース手段は手動型のコードパターン
選択手段に有効である。なぜならデータベースからユー
ザーがどのコードパターンを選択しても前コードパター
ンとの接続に関して音楽的な妥当性が与えられるからで
あり、ユーザーはコードパターンの選択にあまり気を使
わなくてもよいことになる。さらにこのタイプのコード
パターンデータベースは自動型のコードパターン選択手
段の構成を簡略化するのに有効であり、自動コードパタ
ーン選択手段を電子的な乱数発生器を使用することで容
易に実現できる。
別の構成例のコードパターンデータベース手段は複数の
ファイルからなり各ファイルはコードパターンの集合体
を含んでいるが、その意味レベルがファイル毎に異なっ
ている。例えば第1のファイルは抽象的乃至は機能的な
レベルのコードパターンに関しており(例えばトニック
(T)、ドミナント(D)、サブドミナント(S)のよ
うな機能コードの列で表わされる)、一方、第2のファ
イルはより具体的なレベルのコードパターン、例えば各
コードが根音とタイプとで特定される(例えばCメジャ
ー、Gセブンス、Dマイナー)ような具体的なコードパ
ターンを取り扱う。第1のファイルに置かれる機能的な
各コードパターンは好ましくは第2のファイルに置かれ
る相互に異なる具体的なコードパターンのグループに対
応づけられる。各グループは少なくとも1つ(好ましく
は多数)のコードパターンからなる。データベースの用
語に従うと第1のファイル(オブジェクト)は第2のフ
ァイル(オブジェクト)に対し、一対多数の関係、階層
的関係にあり、これらのファイルは階層的なデータベー
ス、即ち複数のレベル化されたコードパターンについて
階層化されたデータベースを構成するということができ
る。このような複数のレベルを持つコードパターンデー
タベース手段は、単一レベルのコードパターンファイル
例えば上述したような簡単な例のコードパターンデータ
ベース手段は比べ、コード進行の過程において1つのコ
ードパターンを選ぶ際にその選択を比較的小さなコード
パターンのサブセットから行うことができるとともに全
体としてはコード進行の為に非常に多数のコードパター
ンの組合せが可能になるという利点がある。その理由
は、上の例でいえば第2のファイルが第1のファイルに
置かれる機能的コードパターン(ケーデンス)毎にグル
ープを持つように細分化(分類)されているからであ
る。
更に、別の構成例のコードパターンデータベース手段
は、複数のノードとノード間を結んでノード間に階層的
関係を規定する複数のリンクとを有し、前記複数のノー
ドのそれぞれが少なくとも1つのコードパターンを含
み、各ノードにおける各コードパターンが前記複数のリ
ンクのなかの関連するリンクを介して別のノードに結ば
れてなるようにしたコードパターンの階層的ネットワー
クを記憶するコードパターンネットワーク手段(第45
図)によって構成される。この場合、コードパターン選
択手段と連結手段の組合せとして前記階層的ネットワー
クの前記リンクによる案内に従って前記コードパターン
ネットワーク手段を探索しながら、探索したコードパタ
ーンを順次連結してコード進行を生成するネットワーク
探索手段(第34図410、第36図)が使用できる。このコ
ードパターンネットワーク手段は階層的なデータベース
とみることができるが上述した抽象/具体的なレベルの
データベースとは階層の方向の点で異なっている。即ち
コードパターンネットワーク手段は時間方向に階層的に
組織化されており、即ちコードパターンの意味レベル
(抽象的あるいは具体的なレベル)ではなくあるコード
の次に別コードがリンクし更に別のコードがリンクする
という方向で階層的に組織化されている。このようなコ
ードパターンの時間的な階層関係はコードパターンのノ
ード間を結ぶ複数のリンク乃至ポインタによって規定さ
れる。従って階層的ネットワーク上をあるリンクのライ
ンに沿って探索していけばコード進行を形成するような
コードパターンの連鎖が見つかることになる。
本発明のこの側面に関して、コードパターンのファイル
を記憶するコードパターンファイル手段(第34図の44
0)と、前記コードパターンファイル手段の各コードパ
ターンに対して、そのコードパターンに後続し得る次コ
ードパターン候補のセットを規定する次候補セット規定
手段(第34図の450)と、前記コードパターンファイル
手段のコードパターンを前記次候補セット規定手段に従
って連結してコード進行を得る連結手段(第34図の41
0、420、460、480、第36図36−3〜36−9)とから成る
コード進行生成装置が提供される。
このコードパターンファイル手段と次候補セット規定手
段との組合せは上述したコードパターンネットワーク手
段の構成例と考えられる。次候補セット規定手段はメモ
リ上に実現されるポインタのテーブルの形式、即ち各ポ
インタが同一のコードパターンファイル内にあるコード
パターンを指すようにしたポインタのテーブルの形式を
とるのが好ましく。この構成によれば、それ以上コード
パターンファイルを追加する必要がないので記憶容量を
大幅に節約できる。
1つの好ましい構成例にかかる連結手段は、前記コード
パターンファイル手段内のコードパターンが生成中のコ
ード進行における現コードパターンとして確定する都
度、該現コードパターンに対して前記次候補セット規定
手段により規定された次コードパターン候補のセットを
前記コードパターンファイル手段から取り出し、表示装
置(第34図の470)に表示する問合せ手段(第36図の36
−3)と、前記問合せ手段により取り出され、表示され
た前記セットのなかから候補を選択するユーザー操作可
能な入力手段(第34図の460)を含み、その候補を前記
現コードパターンに続く次コードパターンとして決定す
る次コードパターン決定手段(第36図の36−4〜36−
7)と、前記次コードパターン決定手段により決定され
た前記次コードパターンを前記コード進行に連結して該
次コードパターンを連結後のコード進行における現コー
ドパターンとして確定するコード進行延長手段(第36図
の36−9)とを有する。
この発明のもう1つの側面によれば、コード進行を生成
するコード進行生成装置において、各コードパターン発
生手段が複数の異なるコードパターンを発生可能でかつ
各コードパターン発生手段が互いに異なる種類のコード
パターンを発生する複数のコードパターン発生手段(第
15図の15−10、15−13、15−16)と、前記複数のコード
パターン発生手段から一度に1つのコードパターン発生
手段を可変に選択するコードパターン発生手段選択手段
(第15図の15−1〜15−3)と、前記コードパターン発
生手段選択手段により選択されたコードパターン発生手
段から一度に1つのコードパターンを選択するコードパ
ターン選択手段(第18図、第26図、第27図、第29図〜第
31図)とを有し、前記コードパターン発生手段選択手段
と前記コードパターン選択手段とによる選択の系列に従
って特定されるコードパターンの列によってコード進行
を生成することを特徴とするコード進行生成装置が提供
される。
この構成の場合、コード進行を異なる種類のコードパタ
ーンの選択的かつ混在的な連鎖によって構成することが
できる。したがって、単一の種類のコードパターン発生
器で達成できるよりもはるかにバラエティーに富むコー
ド進行が得られる。各種類のコードパターン発生手段は
複数の異なるコードパターンを発生可能であり、そのよ
うな複数のコードパターンのセットによってコードパタ
ーンの1つの種類が構成されるわけである。
コードパターン発生手段は、各コードが次の後続コード
に対して、トニック、ドミナント、サブドミナントのい
ずれかとして機能する比較的短いコード進行を生成する
手段を含むのが望ましい。更に、コードパターン発生手
段は各コードが次の後続コードに対してドミナントコー
ドとして働くドミナントコード進行を生成するドミナン
ト進行手段(第15図の15−16)をを含むことができ、更
には各コードが次の後続コードに対してサブドミナント
コードとして働くサブドミナントコード進行を生成する
サブドミナント進行手段(第15図の15−13)を含み得
る。
複数のコードパターン発生手段の夫々は種類を構成する
コードパターンのファイルを記憶するファイルメモリの
形態を取り得る。この代わりに処理装置と共に機能して
内蔵されるアルゴリズムもしくはルールに従ってコード
パターンを可変に算出乃至生成する演算方式又はルール
型のパターン発生器で実現することもできる。例えばド
ミナント(D)進行の種類のコードパターンはその最初
のコードと(ユーザーから供給され得る)と発生器に内
蔵されるD進行の隣り合うコード間の関係を定めるルー
ルから容易に演算することができる。
コードパターン発生手段選択手段は新たにコードパター
ンの種類を指定する入力手段、即ちコード進行の生成作
業中に必要に応じて複数のコードパターン発生器の中か
らアクティブとなる発生器を選択変更するためのユーザ
ー操作可能な入力手段を含み得る。
このセクションで説明するようなコード進行生成装置を
用いてコードパターンを連結することでコード進行を作
り出すような場合には新しいコードパターンを有効かつ
妥当に決定するのが望ましい。
本発明のこの側面によれば、コード進行の一部として用
いるべきコードパターンを決定するコードパターン決定
装置において、コードパターンのデータベースを記憶す
るコードパターンデータベース手段(第2図3D、第35図
の440、450、第45図)と、前記コードパターンデータベ
ース手段からコードパターンを選択するコードパターン
選択手段(第3図のF6、第34図410、420、460、第36図
の36−4)と、前記コードパターン選択手段の選択した
コードパターンを自動演奏する試聴手段(第34図の41
0、420、510、520、第36図の36−5)と、前記試聴手段
の演奏に対するユーザーの応答として、演奏されたコー
ドパターンの是否を示す応答を入力するユーザー操作可
能な入力手段(第34図の460)と、前記ユーザー操作可
能な入力手段からの前記ユーザー応答が是を示している
とき、前記試聴手段の演奏した前記コードパターンをコ
ード進行の一部として決定する決定手段(第34図の41
0、420、第36図の36−7、36−9)とから成るコードパ
ターン決定装置が提供される。
この構成によればユーザーは選択したコードパターンを
コード進行の一部として使用するかどうかにつき的確な
判断をそのコードパターンの試聴を通じて下すことがで
きる。選択されたコードパターンは自動的に演奏される
のでユーザーはその演奏を開くのに集中でき、生成中の
コード進行との関係において演奏されるコードパターン
を正しく評価することができる。
コードパターン選択手段は手動であってもよいし自動で
あってもよい。手動構成の場合にはコードパターンデー
タベースからコードパターンを手動で選択するためのユ
ーザー操作可能な入力装置が使用でき、自動の構成の場
合には電子的に動作する乱数発生器を用いてコードパタ
ーンデータベース中のコードパターンを特定する乱数を
発生させるようにすればよい。
入力装置を用いてユーザー自身のコードパターンの知識
に従ってユーザー自身が直接1つずつコードパターンを
入力する全手動のコードパターン選択手段を採用する構
成では上述したコードパターンデータベース手段を省略
することができる。
好ましくは、試聴手段は選択したコードパターンの演奏
に先立って(できれば直前に)コード進行の演奏を自動
的に行うとよい。これにより、ユーザーは選択したコー
ドパターンと、それに先行するコード進行の部分とを直
接に且つ連続的に比較することができ、コードパターン
をコード進行に加えるべきかどうかを一層容易かつ確実
に判断できる。
この発明のもう1つの特徴は、楽曲のコード進行の生成
のために構造的なアプローチを取るコード進行生成装置
に関している。
この発明のこの側面によれば、楽曲の少なくとも1つの
レベルにおける音楽構造を設定する音楽構造設定手段
(第3図のF1、F2、F3)と、可変のコードパターンを生
成するコードパターン生成手段(第2図の3D、第3図の
F6)と、前記コードパターン生成手段の生成した前記コ
ードパターンを、前記音楽構造設定手段の設定した前記
音楽構造に基づいて、選択的に連結して前記楽曲のコー
ド進行を得るコード進行形成手段(第3図のF8、F9、F1
0)とから成るコード進行生成装置が提供される。
この構成によれば、音楽構造設定手段の設定した音楽構
造がコード進行形成手段に対する制御信号として働き、
設定した音楽構造がコード進行形成手段の生成するコー
ド進行に反映されることになる。
音楽構造設定手段は、楽曲における少なくても1つのレ
ベルないしディメンジョンにおける音楽構造(例えば、
もっとも大きなディメンジョンにおける基本的な音楽構
造、楽節レベル等の中程度のディメンジョンにおける音
楽的な構造ないし枠組)を設定するものであれば、自動
タイプでもよければ手動のタイプであってもよい。
一構成例において、構造的アプローチによりコード進行
を生成するコード進行生成装置は、楽曲において、互に
同じコード進行をもつことになる複数のブロックを選択
する反復ブロック選択手段(第3図F2、F3)と、可変の
コードパターンを生成するコードパターン生成手段(第
2図の3D、第3図のF6)と、前記コードパターン生成手
段の生成した前記コードパターンを選択的に連結して楽
曲のコード進行を生成する連結手段(第3図のF8)と、
前記連結手段の生成した楽曲のコード進行が、前記反復
楽節選択手段の選択した前記複数のブロックのそれぞれ
に対して同じコード進行をもつように前記連結手段を制
御する反復制御手段(第3図のF10)とを備える。
上記反復ブロック選択手段は、上述した音楽構造設定手
段の一具体例と見ることができ、連結手段と反復制御手
段はコード進行形成手段の一具体例とみなせる。反復ブ
ロック選択手段は、楽曲の各楽節のタイプを表わす楽節
構造を設定する楽節構造設定手段(第3図のF2)の形態
を取り得る。これに関連し、反復制御手段は、楽節構造
設定手段の設定した楽節構造にタイプが同様な複数の楽
節が含まれる場合に、連結手段の生成したコード進行が
このタイプが同様な複数の楽節に対して、同じコード進
行を持つように連結手段を制御するように構成される。
別の構成例において、構造的アプローチによる楽曲コー
ド進行生成装置は、楽曲の各楽節について、その楽節が
開始するときの開始音楽機能とその楽節が終了するとき
の終了音楽機能とを設定することにより楽曲の各楽節を
特徴付ける楽節特徴付け手段(第3図のF3)と、コード
のミニパターンを可変に生成するミニパターン生成手段
(第2図3D、第3図のF6)と、前記ミニパターン生成手
段の生成した前記ミニパターンを連結して楽曲のコード
進行を生成する連結手段(第3図のF8)と、前記連結手
段の生成したコード進行が、楽曲の各楽節について、前
記楽節特徴付け手段の手段した前記開始音楽機能と同一
の音楽機能で開始し、かつ前記音楽特徴付け手段の設定
した前記終了音楽機能と同一の音楽機能で終了するコー
ド進行をもつように、前記連結手段を制御する開始/終
了制御手段(第3図のF9)とから構成される。
以上のような構造指向のコード進行生成装置における音
楽構造設定手段は、種々の楽曲に関する音楽構造のデー
タベースを記憶する音楽構造データベース手段と、デー
タベースから所望の任意の楽曲に関する音楽構造を選択
する自動あるいは手動タイプの選択手段とで構成するの
が好ましい。これによりユーザーはコード進行の基礎と
しての音楽構造をより簡単に決めることができ、しかも
音楽構造に関する知識はユーザー側には要求されない。
更に、この構成の場合、データベース手段に非常に多く
の音楽構造を蓄積できるので必要に応じ種々の楽曲構造
を決定することができる。
好ましい構成例に係る音楽構造データベース手段は、種
々の楽曲に関する複数の階層レベルにおける音楽構造の
データベースで構成される。このデータベースにおい
て、ある階層レベルにある各音楽構造はそれより1つ下
位の階層レベルにある音楽構造に対して1対多数ないし
階層的な関係を持つ。言い換えると、あるレベルにある
音楽構造はそれより1つ上位の階層レベルの各音楽構成
に従って分類されている。このような音楽構造データベ
ース手段(音楽構造知識記憶手段)に適する構造選択手
段では、種々の楽曲の中の任意の1つの楽曲を楽曲イン
スタンスとしてこの楽曲インスタンスに関する複数の階
層レベルの各レベルについて、音楽構造データベース手
段から音楽構造を選択する。このような楽曲インスタン
スに関する選択は、音楽の階層構造の中でもっとも広範
な構造に関する最高位のレベルから始め、次いで2番目
に高いレベルに進み、以下第3、第4というように選択
していくとよい。これは大量の情報を含むデータベース
から楽曲に関する所定の階層構造を選択するのに有効な
方法である。実はこの利点は、音楽構造データベースの
組織に基づくものである。即ち、このデータベースでは
各階層レベル(但し、最高位のレベルは除く)にある音
楽構造のセットは、それより1つ上のレベルの音楽構造
にそれぞれに対応するサブセットないしグループに細分
化(分類)されており、従って所望の音楽構造を選択す
るために、データベース全体をアクセスする必要はない
からである。
一構成例の音楽構造データベース手段は、音楽形式によ
って分類された楽節構造のファイルを記憶する楽節構造
ファイル記憶手段(第2図の3A)と、前記楽節構造によ
って分類された各楽節に対する楽節開始と楽節終了の機
能のファイルを記憶する楽節特徴ファイル記憶手段(第
2図の3B)とから構成される。
本発明のもう1つの特徴によれば、コード進行を生成す
るコード進行生成装置において、楽曲の少なくとも1つ
の部分に対し、ユーザーの指定したコードを設定してコ
ードを埋めるべき少なくとも1つの空白部がその楽曲に
残るようにしたコード設定手段(第3図のF3)と、可変
のコードパターンを生成するコードパターン生成手段
(第2図の3D、第3図のF6)と、前記少なくとも1つの
空白部に前記可変のコードパターンを選択的に適用する
ことにより、該少なくとも1つの空白部にコードを埋め
て前記楽曲に対するコード進行を完成する空白埋め手段
(第3図のF8、F9)とから成るコード進行生成装置が提
供される。
この構成によれば、2段階でコード進行が生成できる。
最初の段階でユーザー操作可能なコード設定手段により
楽曲の少なくても1つの部分に、好ましくは重要あるい
は基本的ないし目立つと考えられる部分にコードを設定
する。ここでユーザーは、このような基本的な箇所に好
みのコードパターンを割り当てることができる。第2段
段階で空白埋め手段を用いて残りの空白部にコードパタ
ーン発生手段(これは上述したようなデータベースで構
成できる)からの可変のコードパターンを選択的に適用
することにより、空白部にコードを埋めて楽曲のコード
進行を完成させる。
所望であれば、コード設定手段は各楽節について楽節が
開始するときのコードもしくはコードのパターンと、楽
節が終了するときのコードもしくはコードのパターンを
設定することにより、楽曲の各楽節を特徴付ける楽節特
徴付け手段の形態を取り得る。
更に、この発明のもう1つの側面は、装置とユーザーと
の間で取り交わされる対話や会話に基づいてコード進行
を生成するコード進行生成装置に関している。
これを達成するために、ユーザーに選択肢のリスト(そ
のなかからユーザーが1つのの選択肢を選ぶ)を提示す
る問合せ手段(第1図の6、第12図の12−19〜12−26、
第13図の13−16〜13−23、第16図の16−6〜16−13、第
33図の110、等)と、提示された選択肢のリストから選
択された選択肢を入力するユーザー操作可能な入力手段
(第1図の5、第12図の12−27、第13図の13−24、第16
図の16−14、第33図の120、等)と、前記ユーザー操作
可能な入力手段に応答し、前記選択選択肢によって特定
されるジョブを実行して対話動作の1サイクルを完了さ
せるジョブ実行手段(第13図の13−1〜13−3、第14図
の14−1〜14−13、第16図の16−16〜16−29、第33図の
130、等)と、前記ジョブ実行手段に応答し、新たな選
択肢のリストを作成して前記間合せ手段に次の対話動作
のサイクルにおいて、この新たな選択肢リストをユーザ
ーに提示させることにより、次の対話動作のサイクルを
開始させる対話継続手段(第13図の13−14、第16図の16
−1〜16−4、第18図の18−1〜18−4、第33図の14
0、等)とを具備し、以って、一連の対話動作が行わ
れ、この一連の対話動作が対話動作の(諸)サイクルに
おける前記ジョブ実行手段のくり返し動作によってなさ
れる一連のジョブを含み、この一連のジョブの結果、コ
ード進行が生成されるようにしたコード進行生成装置が
提供される。
この対話方式による構成は、上述した何れのコード進行
生成装置にも組み合わせることができる。例えば、1つ
の好ましい構成例では、種々の楽曲について、複数の構
造レベルにおける音楽階層構造を表現するデータベース
を記憶する音楽構造データベース手段(第2図の3A、3
B、第33図の150)と、コードパターンのデータベースを
記憶するコードパターンデータベース手段(第2図の3
C、3D、第33図の160)と、前記音楽構造データベースと
前記コードパターンデータベースからのデータ検索を含
み、結果としてコード進行の生成をもたらす一連の対話
動作においてユーザーとの対話を行うメニュー式インタ
ーアクティブ手段(第1図の1、2、5、6、第33図の
100)とを備え、前記メニュー式インターアクティブ手
段が、ユーザーに選択肢のリスト(第9図のPrisca
( )、第11図のform( )、第15図のway( )、
等)(そのなかからユーザーが1つの選択肢を選ぶ)を
提示する問合せ手段(第1図の6、第12図の12−19〜12
−26、第13図13−16〜13−23、第16図の16−6〜16−1
3、第33図の110、等)と、提示された選択肢のリストか
ら選択された前記選択肢を入力するユーザー操作可能な
入力手段(第1図の5、第12図の12−27、第13図の13−
24、第16図の16−14、第33図の120、等)と、前記ユー
ザー操作可能な入力手段に応答し、前記選択肢に対応す
るジョブを実行して対話動作の1サイクルを完了させる
ジョブ実行手段(第1図1、2、第13図の13−1〜13−
3、第14図14−1〜14−13、第16図の16−16〜16−29、
第33図の130、等)と、新たな選択肢のリストを作成し
て次の対話動作のサイクルにおいて前記問合せ手段に該
新たな選択肢のリストをユーザーに提供させることによ
って該次の対話動作のサイクルを開始させる対話継続手
段(第1図の1、2、第13図の13−14、第16図の16−1
〜164、第18図の18−1〜18−4、第33図の140、等)と
を有し、前記問合せ手段、前記ユーザー操作可能な入力
手段、前記ジョブ実行手段及び前記対話継続手段の組合
せにより、一連の対話動作が行われるようにし、以っ
て、前記コードパターンデータベース手段から選択した
一連のコードパターンを含み、かつ前記音楽構造データ
ベース手段から選択した音楽階層構造に適合した関係を
もつコード進行が得られるようにしたコード進行生成装
置が提供される。
好ましくは、前記選択肢のリストの代表例は、前記音楽
構造データベース手段または前記コードパターンデータ
ベース手段から選択したデータ項目のグループとともに
以前に行われた対話動作のサイクルに対応するサイクル
への復帰選択肢(“1.RETURN"):第12図の12−19第13
図の13−16、第16図の16−6、等)を含み、以って、ユ
ーザーと前記メニュー式インターアクティブ手段との間
で対話が行きつ戻りつ行われるようにするとよい。
また、前記選択肢のリストの代表例は前記音楽知識デー
タベース手段または前記コードパターンデータベース手
段から選択したデータ項目のグループとともに自動の選
択肢(“2.AUTO":第12図の12−19、第13図13−16、第16
図の16−6、等)を含んでおり、ユーザーが前記ユーザ
ー操作可能な入力手段により、前記自動の選択肢を選択
入力した場合に、前記ジョブ実行手段がユーザーのため
に前記データ項目のグループから1つのデータ項目を選
択し(第13図の13−4〜13−7、第14図の14−4〜14−
7、第16図の16−19〜16−22、等)、それに対応するジ
ョブ(第13図の13−8〜13−13、第14図の14−8〜14−
13、第16図の16−23〜16−29、等)、実行し、以って、
コード進行の生成に対するユーザーの寄与を可変にし得
るようにすると更によい。
上記メニュー式インターアクティブ手段の代りにあるい
はこれと組み合わせてユーザー主導のインターアクティ
ブ手段を設けてもよい。1つの組み合わせの例では、選
択リスト中に更にユーザー主導のモードの選択肢を追加
する。このユーザー主導のモードの選択肢が選択される
と、第2のユーザー操作可能な入力手段(これは選択リ
ストの中から1つの選択肢を選ぶための上述したユーザ
ー操作可能な入力手段と、同一の入力ハードウェアを共
有し得る)にて直接的にデータ項目(例えば、コードパ
ターン)やコマンド(例えば、対話の任意のサイクルに
ジャンプすることを指示するコマンド)を入力する。こ
れにより、ジョブ実行手段は、入力されたデータ項目あ
るいはコマンドに対応するジョブもしくはプロセスを実
行する。
このセクションで説明した何れのコード進行生成装置も
楽曲を作曲するための作曲機に応用できる。1つの好ま
しい構成例において、ある楽曲に対する1以上の構造レ
ベルにおける音楽構造を設定する音楽構造設定手段(第
3図のF1、F2、F3)と、可変のコードパターンを生成す
るコードパターン生成手段(第2図の3D、第3図のF6)
と、前記コードパターン生成手段の生成した前記コード
パターンを、前記音楽構造設定手段の設定した前記音楽
構造に基づき、選択的に連結して前記楽曲のコード進行
を得るコード進行生成手段(第3図のF8、F9、F10)
と、前記コード進行に基づき、前記楽曲のメロディを合
成するメロディ合成手段(第33図の200)とから成る作
曲機が提供される。
以上の説明及び特許請求の範囲において、図面の参照符
号を関連する要素についてかっこ入りで使用している。
これは本件の主題の特徴が手っ取り速く読者に理解され
るようにしたものであり、請求項の範囲や意味の解釈に
使用されることは意図していない。
[実施例] 以下、本発明を実施例について詳細に説明する。便宜
上、各節には見出しを付けてある。最初に、本発明の理
解を容易にすべく、本書で使用されるいくつかの用語に
ついて説明する。
用 語 「音楽構造」(全体)という用語は、音楽の動的な過程
から導かれる楽曲の階層的乃至は複数のレベルの構造の
意味で使用する。音楽の過程に従い人間の感覚と経験を
通じて似たような知覚が人間の心に引き起こされるもの
である。更に同一の用語は本発明の装置のように物理的
な装置内部で使用される場合にそのような音楽構造を表
わすデータの意味としても使用する。用語「曲形式」は
主として楽曲における最も広いレベル或は最も高いレベ
ルにおける楽曲構造(上述した全体の楽曲の一部)を指
すものとする。用語「楽節構造」は楽節レベルにおける
音楽構造を意味する。楽節構造は楽曲における各楽節の
タイプの連鎖によって表わすことができる。例えばA−
B−A−B′で示される楽節構造は第1楽節がタイプA
であり、第2楽節が第1楽節とは違っていて従ってタイ
プBであり、第3楽節が第1楽節と同じでタイプAであ
り、4番目のすなわち最後の楽節がB′であることを示
している。曲形式のレベルから言うと、このA−B−A
−B′の音楽は2部形式であると言うことができる。
即ち、最初の2つの楽節A−Bは1つの大楽節Xと見る
ことができ、この最初の大楽節X(=AB)に対し2番目
の大楽節はA−B′で異なっているのでYと呼ぶことが
できる。従って、A−B−A−B′の音楽はX−Yの形
に書き直すことができる。従って、XとY2つの部分から
成るので2部形式の音楽と言うことができる。もう1つ
の例としてA−B−C−D−A−Bで示される楽節構造
を考えてみると、X=A−B、Y=C−Dと置くことに
よりX−Y−Xの3つの部分に還元できる。従って、A
−B−C−D−A−Bの音楽は3部形式の音楽に属する
ということができる。
この発明の実施例では、音楽を形式レベルにおいて3つ
のカテゴリーに分類する。第1は1部形式、第2は2部
形式、第3は3部形成である。しかしながら音楽の曲形
式レベルでの分類としてその他の分類法が採用できる。
例えば音楽をそれ以上小さな自己完結した形式に分ける
ことのできない単純形式と複数の単純形式(例えば、楽
章)を含む複合形式とに分けることができる。
用語「楽節」は音楽の構成(シンタックス)単位の意味
で使用する。比較的大きくて2あるいはそれ以上の小さ
な楽節を含む大楽節も楽節であり、比較的短く大楽節の
一部として使用されるような小楽節も楽節である。楽節
が対をなして結合して階層構造を呈することがしばしば
ある。上述したA−B−A−B′の音楽の場合で言えば
A−Bの2楽節(それぞれ例えば4小節の長さをもつ)
で単一8小節の楽節が形成される。
用語「楽節開始機能」は、楽節が開始するときの音楽機
能(例えば、調性和声機能)であり、一方、楽節終了機
能は音節が終了するときの音楽機能である。楽節の開始
機能と終了機能との対はその楽節を特徴づける音楽要素
あるいはその楽節内での基本的な音楽構造乃至は進行を
示すと見ることができる。従って、楽曲の各楽節に対す
る1組の楽節開始終了機能によりその楽曲の楽節特徴構
造が定められる。
コードパターンはコードのパターンであり、抽象的なレ
ベル(機能レベル)あるいはより具体的なレベルで表現
することができる。例えば機能的なコードパターンは、
トニック(T)、ドミナント(D)及びサブドミナント
(S)の2つの和声機能のうち少なくとても1つを使用
した和声機能の組合せ(ケーデンス)によって表現でき
る。あるいは機能的コードパターンをローマ文字の系列
例えばIV−V−I、V(V−I)やII(II−V−I)な
どで表現してもよい。この発明の1つの側面によれば可
変のコードパターンを一度に1つずつ選択し、互いに連
結して楽曲のコード進行を形成する。したがって各コー
ドパターンは長いコード進行のユニットとして機能す
る。より具体的なコードパターンは根音とタイプを特定
するシンボルの列、例えばDmin−G7−Cmaj(ここにD
minはタイプがマイナーの3和音で根音がDのコード、
したがってその構成音はD、F、Aであり、G7はタイプ
がセブンスで根音がGのコード、したがって構成音が
G、B、D、Fのコードを指し、Cmajはタイプがメジ
ャーの3和音で根音がCのコード、したがってコード構
成音がC、E、Fのコードを指す)のような系列によっ
て表現できる。
全体構成 第1図に本実施例に係るコード進行生成装置の全体構成
を示す。同図において、1はCPUであり、プログラムメ
モリ2にあるコード進行生成プログラムに従って動作
し、コード進行を生成する。3はファイルメモリであ
り、コード進行を生成するために、各階層のファイルが
置かれている。4はワークメモリであり、CPU1の作業用
メモリとして使用され、生成されたコード進行のデータ
もここに蓄えられる。5は入力装置であり、ファイルメ
モリ3上の各種ファイル内のデータの選択のための入力
等がこれを介して行われる。表示装置6はユーザーから
の入力の選択項目(メニュー)の表示、ファイルメモリ
3上の各種ファイルのデータの表示、生成したコード進
行の表示等を行う。
ファイル偏成 次に、第2図を参照して第1図のファイルメモリ3に置
かれる各種ファイルについて説明する。楽節構造ファイ
ル3Aは楽曲の形式毎に分類された楽節構造のファイルを
持っている。図では、一部形式用と、二部形式用と三部
形成式用のサブファイルがあり、外部に示す選択された
楽曲形式によって、各形式のサブファイルが選択でき
る。つまり、選択された楽曲形式が楽節構造ファイル3A
内の各サブファイルを指示するポインタとして働く。各
形式用のサブファイルには1以上の楽節構造のグループ
が入っており、図では、第x番目の楽節構造がA−B−
A′−B′、第(x+1)番目の楽節構造がA−A−B
−Bで示されている。
この楽節構造ファイル3A内で選択した楽節構造は楽節開
始終了機能ファイル3Bへのポインタとして働く。すなわ
ち、楽節開始終了機能ファイル3Bは各楽節の開始機能と
終了機能のデータを楽節構造によって分類された形式で
有しており、1つの楽節構造に対して選択可能な1以上
の開始機能の列と終了機能の列をもっている。例えば、
A−B−C−Aの楽節構造に対しては、第1楽節Aの開
始機能がT(トニック)、第2楽節Bの開始機能がS
(サブドミナント)、第3楽節Cの開始機能がD(ドミ
ナント)、第4楽節Aの開始機能がTであることを表わ
すデータT−S−D−Tの他に、全楽節の開始機能がト
ニックであることを表わすデータT−T−T−Tを持っ
ている。したがって、楽節構造A−B−C−Aに対して
はT−S−D−Tの開始機能列か、T−T−T−Tの開
始機能の列が選択可能である。
3Cはケーデンス機能ファイルであり、ここに、楽曲のコ
ード進行の単位としてのケーデンス(ミニコードパター
ンの機能表現)のデータが記憶される。ケーデンス機能
ファイル3Cはメジャー用ファイルとマイナー用ファイル
とに分かれており、外部で選択されたモード(メジャー
/マイナー)によってそれぞれをアクセスできる。図で
はメジャー用のケーデンスのNo.1としてT−D−Tを、
No.2としてT−S−Tを示してある。
このケーデンス機能ファイル3C内で選択したケーデンス
により、コードパターンファイル3Dとリズムパターンフ
ァイル3Eにおけるケーデンス対応の機能パターンとリズ
ムパターン(コード長の列)のデータをアクセスでき
る。コードパターンファイル3Dとリズムパターンファイ
ル3Eはメジャー用とマイナー用とに分かれており、コー
ドパターンファイル3Dには1つのケーデンスに付き、1
以上の具体的なコードパターンが用意されている。例え
ば、T−D−Tの機能ケーデンスを具体的なコードのパ
ターンに変換したものとして、CMAJ−G7−CMAJ(第1候
補)、CMAJ−C#7−CMAJ(第2候補)等がある。ただ
し、後述の例では、リズムパターンファイル3Eにはケー
デンスと1対1対応のリズムパターンを持たしている。
コード進行生成機能 本実施例におけるコード進行生成の主な機能を第3図に
示す。楽曲形式選択部F1において、楽曲の形式が選択さ
れる。この選択はユーザーが入力装置5を介して直接指
定してもよければ、コード進行生成装置が自動的に選択
してもよい(他の選択要素F3、F4、F5、F6についても同
様であり、これにより、コード進行の生成に関してユー
ザーが関与する度合を広範囲に変えることができる)。
選択された曲の形式のデータは楽節構造選択部F2に送ら
れ、ここでその形式に属する楽節構造のファイル(グル
ープ)のなかから1つの楽節構造が選択される。(第2
図参照)。すなわち、楽節構造選択部F2はファイル上よ
り、選択された曲形式に属する楽節構造グループ(ファ
イル3Aの一部)を取り出し、それを表示装置6(第1
図)に表示して、ユーザーに入力装置5からの楽節構造
の選択入力をうながすか、ユーザーからの自動指示の下
でその楽節構造のグループのなかから1つの楽節構造を
自動選択する。楽節構造選択部F2により選択された楽節
構造のデータは楽節開始終了機能生成部F2に送られ、こ
こで選択された楽節構造に対する楽節開始・終了機能グ
ループ(ファイル3Bの一部)が取り出され、そのなかか
ら、各楽節の開始機能と各楽節の終了機能が選び出され
る。
F4は調性選択部であり、ここで、調整(モードと主音)
が選択され、選択されたモード(メジャー/マイナー)
はケーデンス選択部F5に送られてモードに属するケーデ
ンスグループ(ケーデンス機能ファイル3Cの一部)を特
定する。コード進行の生成実行時において、コード進行
形成部F8からケーデンスが要求される都度、ケーデンス
選択部F5は新しいケーデンスを選択する。したがって、
ケーデンス選択部F5からは可変のケーデンスの列が出力
されることになる。ケーデンス選択部F5で選択されたケ
ーデンスのデータはコードパターン選択部F6に渡され、
ここで、そのケーデンスに属するコードパターンのグル
ープ(コードパターンファイル3Dの一部)のなかから1
つのコードパターンが選択され、これがコード進行形成
部F8に入力される。更に、ケーデンス選択部F6からの選
択ケーデンスはリズムパターン選択部F7に送られてリズ
ムパターンに変換され、それがコード進行形成部F8に入
力される。
コード進行形成部F8はは曲のコード進行を楽節ごとに分
けて生成するところであり、コードパターン選択部F6か
らのコードパターンを連結してコード進行におけるコー
ド名の列を得るとともに、リズムパターン選択部F7から
のリズムパターンを連結してコード進行におけるコード
長の列を得る。コード進行を楽節によって分けるため、
コード進行形成部F8はコード進行の生成開始時に楽節構
造選択部F2より楽曲の楽節数の情報をもらい受け、生成
中は、開始/終了マッチング部F9に進行中のコード進行
の楽節番号を送り、開始/終了マッチング部F9から楽節
の境界の合図があったときはコード進行に楽節の区切り
を付け、次の楽節のコード進行の生成に移る。
開始/終了マッチング部F9はコード進行における楽節の
境界を検出するために、楽節開始終了機能生成部F3か
ら、各楽節の開始機能と終了機能のデータをもらい受
け、ケーデンス選択部F5からのケーデンスの流れ(機能
コードの列)をモニターし、そのなかに、現楽節の終了
機能を前の機能コードとし、次楽節の開始機能を後の機
能コードとする機能コードの対を見つけたときに、前の
機能コードが現楽節のコード進行の終わりであり、後の
機能コードが次の楽節のコード進行の始まりであるとし
て楽節の境界を検出する。なお、曲の最初の楽節の開始
コードのチェックと曲の最後の楽節の終了コードの検出
については単純化される。
以上の構成により、コード進行形成部F8において、楽節
開始終了機能生成部F3の指定した各楽節の開始機能と終
了機能とに一致するコード進行が得られることになる。
以上の機能によるコード進行生成例を第4図に示してあ
る。この例では楽曲形式として二部形式を選択し、二部
形式に属する楽節構造グループのなかから、A−B−A
−Bの楽節構造を選択し、このA−B−A−Bの楽節構
造に属する開始終了機能グループから開始機能としてT
−D−T−Dを選択し終了機能としてS−T−S−Tを
選択している。同図(E)に示すようにケーデンス連結
(機能レベルのコード進行の生成)は、以上の構造的特
徴に従って行われる。すなわち、第1楽節Aの第1ケー
デンスT−D−Tは、第1楽節Aの開始機能であるトニ
ックTから始まり、以下、第1ケーデンスに後続するケ
ーデンス列のなかで、第1楽節Aの終了機能であるサブ
ドミナントSと第2楽節Bの開始機能であるドミナント
Dを一致する機能コード対の境界が第1楽節Aの機能コ
ード進行と第2楽節Bの機能コード進行との境界とな
る。以下、同様にして、他の楽節の機能コード進行も区
分けされる。第4図(F)に示すのは機能レベルのコー
ド進行(E)の各ケーデンスをコードパターンに変換し
たものである(図の例ではハ長調を想定してある)。
なお、第3図では、コードパターンへの変換はケーデン
ス選択部F5で新しいケーデンスが選択される都度、コー
ドパターン選択部F6によって行っているが、第4図の
(E)、(F)から明らかなように、いったん機能レベ
ルにおいて曲のコード進行を完成させた後で具体的なコ
ード進行に変換してもよい。あるいは、機能レベルのコ
ード進行の完成をもって処理を完了させてもよい。第4
図ではコード進行の各コードの長さの列(リズム)のに
ついては示していないが、これは、第3図のリズムパタ
ーン選択部F7はなくてもよいからである。
第3図のコード進行生成機能には上述した機能以外にコ
ード進行の楽節反復機能が含まれる。これに関係する要
素は反復検査部F10である。すなわち、反復検査部F10は
楽節構造選択部F2からの楽節構造データと楽節開始終了
機能成部F3からの各楽節の開始終了の機能データを受
け、コード進行を反復すべき楽節の有無について調べ
る。反復楽節の条件は、その楽節のタイプと開始機能と
終了機能とが先行する楽節のタイプと開始機能と終了機
能とに一致することである。例えば、第4図に示す楽節
構造A−B−A−Bでは第3楽節は第1楽節と同じタイ
プAであり、第4楽節は第2楽節と同じタイプBであ
る。更に、開始終了機能に関し、第3楽節は第1楽節と
同じT−Sであり、第4楽節は第2楽節と同じD−Tで
ある。したがって、第3楽節は第1楽節の反復楽節であ
り、第4楽節は第2楽節の反復楽節である。このような
情報が、反復検査部F10からコード進行形成部F8に渡さ
れ、これを受けてコード進行形成部8は反復楽節のコー
ド進行を指定された先行楽節のコード進行に一致させて
生成する。
なお、後述するフローでは先行楽節として直前楽節のみ
を考慮しているので、第4図の楽節構造A−B−A−B
の場合はコード進行の反復は行われない。
第3図に示すコード進行生成機能はフローチャートに従
って後述する実施例におけるすべての機能を示したもの
ではなく、そのなかには、第3図に示されないものとし
て、S(サブドミナント)進行を実現する機能とD(ド
ミナント)進行を実現する機能とが含まれる。S進行と
いうのは後のコードに対して前のコードがサブドミナン
トとして機能するコードの連鎖であり、D進行というの
は後のコードに対して前のコードがドミナントとして機
能するコードの連鎖である、このS進行とD進行と上述
したケーデンスの連鎖による進行(ケーデンス進行)は
後述するフローにおいて、コード生成法の選択岐となっ
ており、使用者は曲のコード進行の生成過程において、
適宜、所望のコード生成法を選択することにより、ケー
デンス進行にD進行やS進行が付随したバリエーション
に富み、自然な感じのコード進行が得られる。
詳 細 以下、フローチャートを参照してコード進行生成プロセ
スの詳細を述べる。
<ゼネラルフロー> 第5図にコード進行生成のゼネラルフローを示す。5−
1でCPU1は初期設定を行い、5−2でファイルメモリ3
上にある各データファイルをワークメモリ4に読み込
む。5−3ではコード進行の生成における各種の項目に
関して自動で行うか使用者の指定で行うかが決められ
る。5−4で調整が決定される。次に5−6で楽曲の形
式が選択され、5−7で楽節構造が決められ、5−8で
各楽節の開始機能と終了機能が決められる。ここまで楽
曲の構造が決定され、5−10において、コード進行生成
法がケーデンス法、S進行、D進行のなかから選択さ
れ、選択されたコード進行生成法に従ってコード進行が
生成される。5−9においてすべての楽節に対するコー
ド進行が生成されたことが確認されると、5−11でその
コード進行を表示装置6に表示し、それに対するユーザ
ーの返事を入力装置5より受け取る。ユーザーの返事が
満足のときは5−5におけるOK=1が成立し、コード進
行生成処理が完了する。
なお第5図では示していないが、実際のプログラムには
コード生成作業の前段階にリターンできる機能が付いて
おり、これを利用することにより、ユーザーはいったん
選択したものを撤回してより望ましいものに変更するこ
とができる。
<データファイルの読出し> ゼネラルフローの5−2で実行されるデータファイルの
読出し処理の詳細を第6図に示す。6−1でファイルメ
モリ3上のLISTdtファイルをオープンする。このファイ
ルはデータファイルのリスト用のファイルであり、第7
図(A)に示すように各アドレスに各データファイルの
先頭アドレスの情報が入っている。詳細には最初のアド
レスには楽節構造ファイルの番地情報があり、以下、開
始機能ファイル、終了機能ファイル、ケーデンスファイ
ル、メジャーコードパターンファイル、マイナーコード
パターンファイル、リズムパターンファイルの記憶場所
が示されている。最後のアドレスにあるEOFはファイル
終了コードである。これらのデータファイルのフォーマ
ットは第7図(B)に示すようになっており、1つのフ
ァイルが1乃至複数のグループから成り、グループ間に
はグループを仕切るマーク‘No'があり、1つのグルー
プは1乃至複数の行から成り、行間マークとして‘/n'
が付いており、1つの行は1乃至複数の列から成り、列
間マークとして‘ ’が付けられる。したがって、第6
図の6−2でLISTdtファイルのアドレスポインタPを初
期化し、6−3〜6−20において、LISTdtファイルのア
ドレスを走査しながら、各データファイルのアドレスを
走査し、データファイルの各アドレスにあるデータを、
ファイル名f、グループ名g、行番号n、列番号dnで特
定されるdata(f、g、n、dn)にセットしている。
詳細には、6−3で、ポインタPの示すLISTdtファイル
上のアドレスにあるデータを読み込み、それが、ファイ
ル終了コードEOFでなければ(6−4でNo)、そのデー
タはデータファイルを指すのでそのデータファイルをオ
ープンし(6−5)、そのデータファイルの番号fをセ
ットするとともに、そのファイルのグループ名、行番
号、列番号を初期化し、そのデータファイルのポインタ
P2を初期化する(6−6、6−7)。
以下、ポインタP2で示されるデータファイル上のアドレ
スにあるデータをロードし(6−8)、そのデータファ
イルのファイル終了コードEOFが見つかるまで、ポイン
タP2をインクリメントしながら(6−17)、次の処理を
行う。すなわち、列区切りマーク‘ ’でも、行区切り
マーク‘/n'でもグループ区切りマーク“No'でもないデ
ータを読んだときには(6−10〜6−14いずれもNoの場
合)、そのデータをdata(f、g、n、dn)にセットし
(6−16)、列区切り‘ ’を読んだときには番号dnを
インクリメントし(6−11)、行区切りマーク‘/n'を
読んだときには先行する行に含まれる列のデータのをdn
max(f、g、n)にセットするとともに、列番号dnを
先頭に戻し、行番号をインクリメント(6−13)、グル
ープ区切りマーク‘No'を読んだときには先行するグル
ープに含まれる行の数をnmax(f、g)にセットし、行
番号nを先頭に戻し、グループ番号gをインクリメント
する(6−15)。6−9でデータファイルの終了コード
EOFを読んだときにはそのデータファイルに含まれるグ
ループの数をgmax(f)にセットし、そのデータファイ
ルをクローズし(6−18)、LISTdtファイルのアドレス
ポインタPをインクリメントして(6−19)、6−3に
戻る。6−4でLISTdtファイルの終了コードEOFを読ん
だときにはLISTdtファイルをクローズし(6−20)、デ
ータファイルの読出し処理を完了する。
この読出し処理で得たdata(f、g、n、dn)はファイ
ルf、グループg、行n、列dnのデータであり、dnmax
(f、g、n)はファイルf、グループg、行nに含ま
れるデータの数であり、gmax(f、g)はファイルf、
グループgに含まれる行の数であり、gmax(f)はファ
イルfに含まれるグループの数である。
以下の説明では、便宜上、なじみやすい名前を付けて、
データファイルの情報を呼ぶことにする。例えば、f=
1は楽節構造データファイルを示すので、楽節構造デー
タファイルf1と呼び、f=1、g=1は楽節構造データ
ファイルにある一部形式のグループを示すので、楽節構
造データファイルf1の一部形式のグループg1と呼ぶこと
にする。
<自動化部分決定> ゼネラルフローの5−3で実行される自動化部分決定処
理の詳細を第8図に示す。
自動化の項目には、1、調性、2、楽曲形式、3、楽節
構造、4、コード機能(楽節の開始終了機能)、5、コ
ード生成法、6、コードパターン、7、リズムパターン
があり、各項目について、自動にするかユーザーの選択
によるかの決定を第8図のフローで行っている。これ
は、8−2に示すように表示装置6に項目を表示してユ
ーザーに自動かユーザー選択かを問い合わせ、8−3に
示すように入力装置5を介して入力されたユーザーの返
事をauting(i)にセットすることによって行ってい
る。autins(i)=0はi番目の項目についてはユーザ
ー自身で選択することを意味し、auting(i)=1はi
番目の項目が自動的に行われることを意味する。なお、
この決定は最終決定ではなく、リターン機能等を用いる
ことにより、変更可能である。
<調整決定> 次にゼネラルフローの5−4で実行される調性決定を詳
細に説明する。
調整の決定処理は主音の決定とモード(メジャー/マイ
ナー)の決定とに分かれており、第9図のフローで主音
が決定され、第10図のフローでモードが決定される。
主音の決定(第9図)では、最初に、自動化部決定処理
(第8図)で調性を自動決定にしたかユーザーに選択し
たかをauting(0)の内容から確認し(9−1)、ユー
ザー選択を示しているならば、第9図の右下に示すよう
な主音選択メニューPrisca( )を表示する。番号3か
ら14が主音CからBに対応し、番号1はリターンの選択
岐であり、番号2は自動の選択岐である。これらの選択
岐のなかから、ユーザーは1つの番号を選択し、それが
CPU1によりSCALEにセットされる(9−3)。調整を自
動選択したときにはscaleには自動‘2'がセットされる
(9−1、9−4)。
9−5で、処理済判定用のフラグdummyを‘1'にセット
し、9−6から9−13において、調の主音データが決め
られる。ここに、調の主音データは‘0'がCを表わし、
‘1'がC#を表わし、以下同様にして‘11'がBを表わ
すようになっている。この数値表現は主音選択メニュー
prisca( )における番号から3引いた値をもつ。した
がって、ユーザーが主音のいずれかを選択したときに
は、9−8から9−9に進んでscaleの値を3つ減らす
処理を行う。そして、9−10では主音決定完了を示すた
めdummyに‘0'を代入する。一方、自動を選択した場合
には、9−9でscale=2が成立し、ループ9−11、9
−12で、乱数発生により、主音の選択岐に対応する数を
生成し、それをscaleに代入し(9−13)、再び9−6
に戻った後、9−7、9−8を通り、9−9で、scale
が最終的な主音の数値表現にデータ変換される主音選択
メニューprisca( )においてリターン(番号1)を選
択したときには、9−8から自動化部分決定処理(第8
図)ヘリターンする。9−6でdummy=0により、主音
が決定されたことが確認されたときは、モード決定処理
(第10図)に進む。
要約すると、主音決定のフローでは、調整の自動/ユー
ザー選択に従い、ユーザー選択の場合には、主音の選択
メニューを表示してユーザーの選択をうながし、ユーザ
ーの選択した主音を採用し、自動の場合には乱数によ
り、主音を決める。メニューにはリターンと自動の選択
岐も付いており、リターン選択したときには1つ前のプ
ロセスである自動化部分決定処理に戻ることができる。
また、自動化部分決定処理でユーザーによる指定を選択
していた場合でも、メニュー表示に対する入力の段階で
自動に変更することが可能である。このリターン機能と
自動への変更機能は他の処理段階にも付いている。
モード決定処理(第10図)のフローは調整決定処理のフ
ローとよく似ているので簡単に説明する。まず、調整が
自動かユーザー選択かを調べユーザー選択のときは、モ
ード選択メニューfuncaiを表示し、メニュー(1、リタ
ーン、2、自動、3、長調、4、短調)のなかからユー
ザーの選択したものをaoiにセットする(10−1〜10−
3)。一方、自動選択のときには乱数によってモードao
iを決める(10−1、10−4、10−7〜10−10)。モー
ド‘0'が長調(メジャー)、1が短調(マイナー)を表
わすので、aoiのデータ変換を行う(10−11〜10−1
3)。メニューのなかでリターンが選択されたときには
主音決定処理(第9図)にリターンする。
<楽曲形式の決定> 次にゼネラルフローの5−6で実行される楽曲形式の決
定処理の詳細を説明する。この処理は第11図の11−1か
ら11−11で行われる。
まず、楽曲形式が自動かユーザー選択かをauting[1]
の内容から判断し(11−1)、ユーザー選択の場合には
曲形式の選択メニューform( )を表示する(11−
2)。このメニュ−form( )は1、リターン、2、自
動、3、一部形式、4、二部形式、5、三部形式であ
る。このメニューのなかからユーザーの選択した番号を
cmnにセットする(11−3)。一方、自動の場合にはcmn
に自動‘2'を代入する(11−1、11−4)。
メニューからリターンを選択したときには、cmn=1で
あるので、11−5、11−6、11−7、11−8と進んで、
モード決定処理(第10図)へリターンする。メニューか
らいずれかの形式を選択したときは、cmnは3〜5であ
るので11−5、11−6、11−7を経て、11−12以降の楽
節構造選択処理へ進む。自動を選択したときにはcmn=
2であるので、11−6より、11−7、11−8を経て、11
−9から11−11において、乱数により、形式が選択され
てcmnにセットされ、その後、11−7に戻ってから、11
−12以降の楽節構造選択処理へ進む。
以上のように、実施例の場合、選択可能な楽曲の形式と
して、一部形式、二部形式、三部形式があり、自動生成
またはユーザーの選択した形式の情報がcmnに格納され
ることになる。
<楽節構造選択> 次にゼネラルフローの5−7で実行される楽節構造選択
処理の詳細を説明する。この処理は第11図の11−12〜11
−25、11−6と第12図の12−1〜12−7、12−8〜12−
12で行われる。
上述したように、楽節構造データファイルf1は楽曲形式
別に分類されている。したがって、上述の楽曲形式選択
処理で得た曲の形式情報(cmn−2)をgにセットし、
f=1とすることにより、楽節構造データファイルf1の
なかで選択された形式に属するグループgを呼び出す
(11−12、11−13)。ここでのn=1はそのグループg
のなかの最初の楽節構造の番号であり、dn=1はその最
初の楽節構造の最初の楽節の番号を意味する。また、NO
=3は後述する楽節構造選択メニューにおいて表示され
る最初の楽節構造候補に対する選択岐の番号を表わして
いる。次に、11−14で楽節構造の項目が自動かユーザー
選択かをauting[2]の内容から判別する。
ユーザー選択の場合には11−15から11−23において、楽
節構造の選択メニューを表示し、そのなかで、ユーザー
の選択したものを取り込む。楽節構造の選択メニュー
は、選択番号1がリターン、2が自動であり、選択番号
3以降に、楽節構造データファイルf1内の選択した曲形
式gに属する楽節構造のリストが表示される。詳細に
は、11−15で“1、リターン、2、自動”を表示し、11
−16でNOとdata(f、g、n、dn)すなわち、楽節構造
データファイルf1の形式gにおけるn番目の楽節構造デ
ータ(例えば、A−B−A−B)のdn番目の楽節のタイ
プを表示する。11−16、11−17、11−18をループして、
n番目の楽節構造のデータの読出しの完了をその楽節構
造の楽節の数dnmax(f、g、n)から検知ししたら、
楽節番号dnを先頭に戻す(11−19)。そして、11−20で
選択された形式gに含まれる全ての楽節構造の読出しが
完了したかどうかをその形式gの楽節構造の数nmax
(f、g)を参照してチェックし、完了でなければ、選
択岐の番号Noと楽節構造の番号nをインクリメントして
11−15に戻る。したがって、nmax(f、g)=nが11−
20で成立したときには、表示装置6の画面に、選択形式
gに属する楽節構造のリストが表示されていることにな
る。そして、n=1に戻し(11−22)、入力装置5か
ら、選択番号が入力されたら、それをfrnにセットす
る。frn=1はリターン、2は自動、3は形式gの1番
目の楽節構造名、4は形式gの2番目の楽節構造名(以
下同様)を表わす。
一方、11−14で楽節構造が自動になっているときは、fr
nに自動‘2'がセットされる。この自動frn=2のときに
は、第12図の12−4でYESに分岐し、12−5、12−6、1
2−7において、乱数により、選択楽節番号が生成さ
れ、frnにセットされる。
選択メニューでリターンfrn=1を選択したときには、1
2−4でNOに分岐し、楽曲形式決定処理(第11図の11−
1)へリターンする。
12−3で、3≦frn≦nmax[f、g]+2が成立すると
きは楽節構造が決定されているので、12−8から12−12
において、決定された楽節構造のデータをLIST(dn)に
セットする。これは、楽節構造データファイルf1のなか
から、選択曲形式gにおける選択構造号nの行にあるda
ta(f、g、n、dn)をdn=1〜dnmax(f、g、n)
だけ取り出して配列fLIST(dn)に移すことで行われ
る。
<楽節開始終了機能生成処理> 次に、ゼネラルフローの5−8で実行される楽節開始終
了機能成処理について詳細に述べる。この処理は楽節開
始機能生成処理と楽節終了機能生成処理とに分かれてお
り、前者は第12図の12−13〜12−29、12−2、第13図の
13−1〜13−13で行われ、後者は第13図の13−14〜13−
25と第14図において行われる。
上述したように、楽節開始機能ファイルf2と楽節終了機
能ファイルf3は楽節構造データファイルf1にある楽節構
造別に分類されている。したがって、楽節開始機能生成
処理の最初の処理は、選択された楽節構造の情報に対応
する楽節開始機能ファイルf3内のグループgを見つける
ことである。このグループに対するアドレス計算は、第
12図の12−13から12−16で行われている。すなわち、楽
節構造データファイルf1における形式xのn番目の楽節
構造に対するファイルf3のグループ番号gは、 で与えられる。ここにnmax(1、i)は楽節構造データ
ファイルf1の形式iに属する楽節構造の数を表わす。12
−17で楽節開始機能ファイルf2における選択楽節構造に
対応するグループgの先頭をセットする。
そして、12−18で楽節機能の項目が自動(auting[3]
=1)がユーザー選択(0)のいずれになっているかを
判別し、ユーザー選択の場合には、表示装置6に“1、
リターン、2、自動”に続いて、選択した楽節構造に対
する各楽節の開始機能のリスト(例えば3、T−T−T
−T、4、T−D−T−D、等)が付く選択メニューを
表示し、ユーザーから入力された選択岐の番号をsconn
にセットする(12−18〜12−27)。したがって、いずれ
かの開始機能を選んだときには、sconnには3からnmax
(f、g)+2までの値が入る。一方、楽節機能の項目
が自動化の項目になっていたきはsconnに自動‘2'をセ
ットし(12−18、12−28)、第13図の13−4の後の13−
5〜13−7で乱数により、開始機能の番号を生成し、sc
onnにセットする。なお、選択メニューでリターンsconn
=1を選んだときには、13−4より楽曲形式決定処理
(第11図の11−1)へリターンする。
楽節開始機能が決定されたことが、13−3で確認された
ときは、この決定された楽節開始機能のデータを記憶す
る。すなわち13−8から13−11において、楽節開始機能
ファイルf2の選択楽節構造に属するグループgのなかか
ら選択した楽節開始機能の行n(n=sconn−2)のデ
ータdata(f、g、n、dn)を取り出し、配列sfunc(d
n)にセットする。
楽節終了機能も楽節開始機能と同様にして選択される。
すなわち、13−14で楽節終了機能ファイルf3から呼び出
すべきグループgの先頭を決める。ここでは、グループ
名gは開始機能の番号(sconn−2)と開始機能ファイ
ルf2の選択グループから計算できるようになっている。
すなわち、終了機能は、1つの開始機能に付き、1以上
の候補があることを想定してある。以下、楽節開始機能
の生成処理の場合と同様にして、ユーザー選択の場合に
は、終了機能グループgに含まれる終了機能(例えば、
D−T−D−T)のリストがファイルf3から取り出され
て1、リターン、2自動とともにメニュー表示され、そ
のなかから、1つがユーザーによって選択される(13−
17〜13−24)。また、自動の場合には、乱数により終了
機能の番号econnが生成される(13−15、13−25、14−
4〜14−7参照)。決定された終了機能のデータは配列
efunc(dn)にセットされる(14−8〜14−11)。ま
た、メニューのなかからリターンを選択したときには楽
節開始機能の決定処理(第12図の12−1)へリターンす
る。
なお、楽節開始機能のデータと楽節終了機能のデータと
を1対1対応にした場合には、楽節開始機能生成処理と
楽節終了機能生成処理を分ける必要はなく、1つの楽節
開始終了機能ファイルにおける楽節開始終了機能データ
のフォーマットを第1楽節の開始機能→第1楽節の終了
機能→第2楽節の開始機能→第2楽節の終了機能……の
ようにストリングで構成し、決定した楽節構造に対する
各楽節の開始終了機能のリストを楽節開始終了機能ファ
イルから取りしてメニュー表示し、このリストのなかか
らユーザーが選択するようにしてもよい。
<コード進行生成法決定> 次にゼネラルフローの5−10で実行されるコード進行の
生成方法の決定処理について説明する。この処理の詳細
を第15図に示す。まず、15−1でコード生成法の項目が
自動かユーザー選択であるかをauting[4]の内容から
判別し、ユーザー選択の場合にはコード生成の選択メニ
ューWAY( )として、1、リターン、2自動、3、ケ
ーデンス、4、S進行、5、D進行を表示しユーザーか
らの選択入力をWAYNにセットする。リターンWATN=1の
ときには15−5から15−6、15−7、15−9、15−12、
15−15を経て楽節開始終了機能決定処理(第13図の13−
1)へリターンする。メニューから自動WAYN=2を選択
したときには15−7より15−8に進んでケーデンスWAYN
=3にセットし直し、15−9をYESで分岐し、15−10で
示すケーデンス進行によるコード進行生成処理を実行す
る。S進行WAYN=4を選択したときには、15−12からYE
Sで分岐して15−13に示すS進行によるコード進行生成
処理を実行する。また、D進行WAYN=5を選択したとき
には15−15からYESで分岐して15−16に示すD進行によ
るコード進行生成処理を行う。なお、15−1でコード生
形法の項目が自動になっている場合は、ケーデンスWAYN
=3となりケーデンス進行によるコード進行の生成が実
行される。
以上のように、コード進行の生成法決定処理では、コー
ド生成法としてケーデンスによる方法と、S進行による
方法とD進行による方法が選択岐としてあり、選択され
た方法がそれぞれのコード進行生成処理15−10、15−1
3、15−16で実行される。
以下、個々のコード進行生成処理について詳細に説明す
る。
<ケーデンス生成> ケーデンスによるコード進行生成処理15−10は上述した
各処理で得た楽曲の構造に関する情報(曲形式、調性、
楽節構造、楽節の開始終了機能)に従ってケーデンスフ
ァイルf4にあるケーデンスデータを連結することによ
り、コード進行を生成する処理である。この処理のルー
チンを第16図に示す。
第16図において、16−1から16−22まではケーデンスフ
ァイルf4からケーデンスを選択するための処理であり、
この選択されたケーデンスのデータ(例えばT−D−
T)は16−23から16−26において配列func(funcn)に
セットされる。そして、16−27に示す、f compair(機
能マッチング処理)において、ケーデンスの流れが各楽
節の開始、終了機能に対して調べられ、ケーデンスの流
れにおける楽節の開始、境界、終了位置等が検出され
る。更に、16−30に示すルーチンtree1( )では選択
ケーデンスに基づいてコードパターンファイルf5、f6か
らコードパターンが選択され、そのコードパターンがf
compair16−27の処理結果等に従って曲のコード進行の
コード名の配列mcp(flase、dnn)にセットされる。ル
ーチンtreel( )内のサブルーチンstrure( )では
反復楽節の有無が調べられ、反復条件を満たす楽節のコ
ード進行パターンmcp(flase、dnn)も生成される。更
に、16−32のルーチンrhythm( )では選択したケーデ
ンスに対応するリズムパターンがリズムパターンファイ
ルf7から取り出され、曲のコード進行のコード長の配列
rhmbox(flase、dnn)にセットされる。ルーチンrhyshm
( )ではファイルf7から取り出したりリズムパターン
をユーザーが自由に変更することも可能である。
以下、ケーデンス生成処理を詳細に説明する。
ケーデンス選択処理(16−1〜16−22)では、まず16−
1でモードの長/短調をaoiの内容から判別し、長調の
ときには、グループg=1、短調のときにはグループg
=1、を選び(16−2、16−3)、f=4、dn=1、n
=1、NO=3を実行する(16−4)ことにより、調性選
択処理5−4(第5図)で選択したモードgのケーデン
スファイルf4を呼び出す。次に16−5でケーデンスの項
目が自動になっているがユーザー選択になっているか
を、自動化部分決定処理5−3(第5図)で設定したau
ting[6]の内容から判別する。ユーザー選択の場合に
は、ケーデンスファイルf4から選択されているモードg
に属するケーデンスパターン(例えば(T−S−T)の
リストを取り出し、それを、ケーデンス選択メニュー
(メニュー1がリターン、2が自動であり3以降がケー
デンスのリスト)として表示する(16−6〜16−13)。
そして、この選択メニューからユーザーの選択した番号
をfuncにセットする(16−14)。この選択メニューから
リターンfunc=1を選択したときには16−18、16−19を
通ってコード進行生成法決定処理(第15図の15−1)へ
リターンする。選択メニューから自動を選択した場合、
またはauting[6]が自動のときにはfunc=2となり
(16−15参照)、16−19のYES側にある16−20〜16−22
において乱数によりケーデンス番号が生成されてfuncに
設定される。
ケーデンスが決定されると、16−18に示すチェックが成
立し、16−23から16−26において、決定されたケーデン
スのデータがfunc(funcn)に設定される。例えば決定
されたケーデンスがT−S−Tのときは、最初の機能コ
ードTはfunc(1)に入り2番目のSはfunc(2)に入
り、最後のTはfunc(3)に入る。
次にルーチンf compair16−27が実行される。この詳細
を第17図に示す。この処理は、ケーデンスの流れのなか
に曲の開始、楽節の境界、または曲の終了の条件を満足
する場所を見つけるためにある。17−1のpflag=1は
最初の楽節のコード進行を開始するときか、後述するサ
ブルーチンstructureによりある楽節のコード進行が反
復された後でその次の楽節のコード進行を開始するとき
に成立する。すなわち、新しい楽節の開始のときであ
る。17−9で、flase=dnmax(1、cmn2、frn−2)が
成立するのは現在生成中のコード進行の楽節が曲の最後
の楽節のときである。
17−1が成立するときには、今回選択したケーデンスパ
ターンfunc(funcn)のなかに、新しい楽節の開始機能
と一致する機能コード(例えばドミナントD)が含まれ
るかどうかを判別し、含まれる場合には、その位置をst
art(開始位置)にセットするとともに開始フラグfsを
1にセットし、含まれない場合には開始フラグfsを0に
リセットする(17−2〜17−8)。後者の場合は、楽節
開始の失敗が第16図の16−29で検出され、16−1に戻っ
て、再度、ケーデンスの選択をやり直すことになる。
現在の楽節が最後の楽節の場合(17−9成立時)は、今
回選択したケーデンスパターンfunc(funcn)のなかに
最後楽節の終了機能と一致する機能コード(例えばトニ
ックT)が含まれるか否かを調べ、含まれる場合はケー
デンスパターン上のその位置をend(終了位置)にセッ
トするとともに、終了フラグfeを1にセットし、含まれ
ない場合には終了フラグfeを0にリセットする(17−10
〜17−16)。
17−1と17−2のいずれも不成立の場合は、17−17から
17−24に示す楽節境界のチェックを行う。17−17に示す
last funcは第16図の16−27(f compairの次の処理)か
らわかるように、前回選択したケーデンスの最後の機能
コードである。これは、楽節の境界が、1つのケーデン
スの内部の位置だけでなく、1つのケーデンスの端即ち
2つのケーデンスの境界でも発生し得ることを考慮した
ものである。17−18から、17−24において、この前回の
機能コードとそれに続く今回のケーデンスの機能コード
の列のなかに、現在の楽節の終了機能と次の楽節の開始
機能と一致する機能コードの対が含まれるかどうかを調
べ、含まれる場合にはその対の先頭の位置をend(楽節
終了位置)にセットするとともに楽節境界フラグfbを1
にセットし、含まれない場合には楽節境界フラグfbを0
にリセットする。
なお、17−20に示すefunc(flase)は現楽節の終了機能
を表わし、17−21に示すsfunc(flase+1)は次楽節の
開始機能を表わす。これらの機能は第5図の5−8で楽
節の開始終了ファイルf2、f3から選択した機能である
(17−4、17−12についても同様である)。
このように、f compairではコード進行生成の計画にお
いて設定した各楽節の開始機能と終了機能とを目安とし
て、ケーデンスまたはケーデンスの列のなかから、各楽
節の開始、境界、終了に適した位置を調べている。
ルーチンtree1( )16−30ではケーデンス選択処理(1
6−1〜16−26)で選択したケーデンスに従ってコード
パターンを選択し、選択したコードパターンを楽節別の
コード進行の配列mcp(flase、dnn)上に連結して設定
する。この連結の際に上述の機能マッチング処理(f co
mpair16−27)の処理結果が利用される。また、次の楽
節が反復楽節がどうかについても調べられ、反復楽節の
場合には先行楽節のコード進行mcp(flase、dnn)が反
復楽節のコード進行mcp(flase+1、dnn)として繰り
返される。
ルーチンtree1( )の詳細を第18図に示す。図中、18
−1から18−24で選択したケーデンスに適したコードパ
ターンを選択している。詳細には18−1から18−4でコ
ードパターンファイルf5、f6のなかから決定済のケーデ
ンスに対する部分を呼び出している。なおf5(f=5)
はメジャー用のコードパターンファイルでありf6はマイ
ナー用のコードパターンファイルである。次に18−5で
コードパターンの項目が自動auting[6]=1になって
いるかユーザー選択になっているかを調べ、ユーザー選
択の場合にはコードパターンファイルf5、f6から選択し
たケーデンスに対するグループgにあるコードパターン
のリストを取り出してコードパターンの選択メニューを
表示してユーザーに選択メニューから1つを選択させる
(18−6〜18−15)。自動になっている場合には、その
コードグループgのなかから1つを乱数で自動選択する
(18−16、18−20〜18−24)。なお選択メニューからリ
ターンを選択した場合にはケーデンスの選択処理(第16
図の16−1)へリターンする。コードパターン(例えば
Cmaj−G7−Cmaj)が選択されると18−19で3≦cdn≦nma
x(f、g)+2(ここにcdnは選択したコードパターン
の番号、nmax(f、g)は呼び出したコードグループg
に含まれるコードパターンの総数である)が成立し、18
−25でコードパターン生成ルーチンが実行される。
このルーチン18−25の詳細を第19図に示す。
第19図において、mcp(flase、dnn)はflase番目の楽節
のdnn番目のコードを格納するコード進行の配列であ
る。flaseの値は現在の楽節番号を示し、dnnの値はこの
現楽節において次に生成するコードの楽節内の番号を表
わしている。したがってflase番目の楽節の(dnn−1)
番目のコードまではコード進行が生成済である。19−1
のkeepは後で実行されるルーチンrhythm( )において
使用されるコード長の配列rhmbox( )における楽節番
号の変数であり、dnn2はこの配列における楽節内のコー
ド番号の変数である。第19図のコードパターン生成によ
り、コード名のコード進行が生成されて、コード名の配
列mcp(flase、dnn)上の現在位置が移動するため、そ
の配列を操作する前の段階のflaseとdnnの値をそれぞ
れ、keepとdnn2に代入している(19−1)。19−4に示
すdata(f、g、n、dn)は上述のコードパターン選択
処理で選択したコードパターンのdn番目のコードを表わ
す。19−1のn=cdn−2は選択したコードパターン番
号の設定であり、dn=1は選択したコードパターン内の
コード番号を1に初期化する処理である。
通常の場合は、上述のf compair(第17図)において、
選択ケーデンスが新しい楽節の開始条件(fs=1)も、
楽節の境界条件(fb=1)も、曲の終了条件(fe=1)
のいずれも満足しないものとする。この場合、第19図に
おいて、19−2で境界または終了条件の不成立が確認さ
れ、19−3で開始条件の不成立が確認され、19−4から
19−6において、選択したコードのパターンdata(f、
g、n、dn)が先頭data(f、g、n、1)から、順
次、コード進行の配列mcp(flase、dnn)に設定され
る。これは、19−1に入る前までに生成していた楽節の
コード進行に今回選択したコードパターンをそのまま連
結したことに相当する。一方、f compairにおいて新し
い楽節の開始時に、選択ケーデンス中に楽節を開始する
機能コードが見つかった場合には、開始フラグfsが立
ち、ケーデンス上の開始コードの位置startが設定され
る。この場合、第19図において19−3で開始条件の成立
が確認されることになり、19−7で、開始位置startがd
nにセットされる。この結果、19−4から19−6の処理
では選択したコードパターンのうちで楽節開始機能と一
致するコード以降のものがコード進行の配列mcp(flas
e、dnn)に設定されることになる。
また、f compairで最終楽節のときに選択ケーデンス中
に最終楽節の終了機能と一致するコードが見つかったと
きは曲終了フラグfeが立ち、ケーデンス上の終了位置en
dが設定されるし、直前ケーデンスの最終機能とそれに
続く選択ケーデンスの中に現楽節の終了機能と次楽節の
開始機能とに一致する機能コードの対が見つかったとき
には楽節境界フラグfbが立ち、ケーデンス上の現楽節終
了位置endが設定される。この場合、第19図のフローに
おいて、19−2で楽節の境界条件または曲の終了条件の
成立が確認され、第20図に詳細するflase end( )の
ルーチン19−8が実行される。
このルーチンでは楽節終了のためにユーザーの判断を仰
いでおり、ユーザーが否定的な判断を下した場合は、ノ
ーマルとして取り扱って19−4から19−6で選択コード
パターンが先頭から現楽節のコード進行に連結されるよ
うにしている。すなわち、構造上、楽節の境界条件ある
いは曲の終了条件が成立する場合でも最終決定はユーザ
ーが行うことにしている。第20図のフローに従うと、20
−1で、現楽節終了の問い合わせを行い、ユーザーから
の返答をanswerにセットする(20−2)。20−3でユー
ザーからの返答が否定answer=0の場合にはflasend
( )のルーチンを抜けて、19−9、19−10を経て19−
4以降のコード進行配列への設定処理を行う。ユーザー
からの返答が肯定answer=1の場合は、20−4で現楽節
のコード進行に含まれるコードの数をendとdnnから計算
してdnnmax(flase)にセットし、20−5〜20−8のル
ープで現楽節のコード進行として既に生成している配列
mcp(flase、dnn)に、選択したコードパターンdata
(f、g、n、dn)を先頭(dn=1)から、終了位置
(dn=end)まで連結する。これにより、現楽節のコー
ド進行が完成するので、完成後は、現楽節番号flaseを
更新し、楽節内のコード番号dnnを先頭の1にセットす
る(20−9)。なお、20−5でend=0が成立するの
は、前回選択したコードパターンの最後のコードが現楽
節の最後のコードとなる場合であり、ここまでのコード
進行(現楽節のコード進行)は既に配列mcp(flase、dn
n)に出来上っているので、現楽節のコード進行完成処
理20−6〜20−8を行う必要はない。
次に20−10で楽節境界条件(fb=1)と曲の終了条件
(fe=1)のいずれか成立しているかを調べ、楽節境界
条件成立の場合には、詳細を第21図に示すstructure20
−11のルーチンを実行することにより、20−5〜20−8
で完成した現楽節の次の楽節が反復楽節かどうかを調べ
て、反復楽節の場合は次楽節のコード進行を先行楽節の
コード進行を反復させて生成する。曲の終了の場合に
は、最最終楽節のコード進行は20−5〜20−8で完成し
ているので、反復楽節の条件を調べる必要はなく、flas
eend( )のルーチンを抜ける。この場合、コードパタ
ーン生成(第19図)のルーチンの19−9で、answer=1
and fe=1が成立し、コードパターン生成のルーチンを
抜けることになる。すなわち、現楽節が最終楽節のとき
にf compair(第17図)で選択ケーデンス中に最終楽節
の終了機能と一致する機能コードが見つかってケーデン
ス上の曲終了位置endが書き留められ、flase end( )
ルーチンでユーザーから曲終了の確認が得られた場合
は、flase end( )ルーチン内の現楽節のコード進行
完了処理20−6〜20−8において、選択コードパターン
のend位置までのコードを配列mcp(flase、dnn)に連結
して最終楽節のコード進行を完成させている。
上述したように、20−10で楽節境界条件成立のときに
は、第21図に示す反復楽節処理ルーチンstructure
( )が実行される。第21図の場合は、次楽節(i+
1)(20−6〜20−8で完成した現楽節のコード進行の
次の楽節の意味で、処理上はflaseの番号をもつ楽節)
が現楽節iと似たタイプであって(21−2、21−3また
は21−4、21−5成立)楽節の開始機能が一致し(21−
6)、楽節の終了機能が一致する(21−7)場合を反復
楽節の条件としている。ここに、flist(x)はゼネラ
ルフロー(第5図)の楽節構造決定処理5−7で決定済
の楽節構造のデータであり、sfun(x)、efunc(x)
は楽節開始終了機能決定処理5−7で決定されている各
楽節の開始機能のデータと終了機能のデータである。
反復条件が成立するときは反復flagが立ち(21−8)、
現楽節のコード進行のデータmcp(i、x)を次楽節の
コード進行のデータmcp(i+1、x)に写しとり(21
−9〜21−12)、その後、次楽節のコード進行に含まれ
るコードの数dnnmax(i+1)を現楽節のコード進行の
コード数dnnmax(i)に一致させ(21−13)、最後に楽
節番号flaseを更新し、コード番号dnnを初期化する(21
−14)。
なお、第21図のフローに代え、flase番目の楽節が反復
楽節となる条件を、1から(flase−1)番目のいずれ
かの楽節と同様のタイプであって、同じ開始機能と終了
機能をもつ場合としてもよく、このための変形は自明で
ある。
以上のように、反復楽節検査のルーチンstructure
( )は、楽節の境界条件(fb=1)が成立し、それが
ユーザーに認められて、現楽節のコード進行を完成した
ときに、次の楽節のために実行される処理である。
この場合において、反復楽節処理21−8〜21−14が実行
されたときには、コードパターン生成(第19図)の19−
9において、反復フラグflagが立っていることが確認さ
れ、このチェック19−9をYESを分岐してコードパター
ン生成のルーチンを抜ける。この場合、ケーデンス生成
処理(第16図)の最後(第25図)においてpflagが立つ
ことになり、再びケーデンス生成処理を実行するとき
に、f compairで新しい楽節(反復楽節の次楽節)の開
始時として選択ケーデンス中に新しい楽節の開始機能の
有無が調べられることになる。
ルーチンstructure( )の実行において反復楽節の条
件が成立しなかったときは、第19図のコードパターン生
成処理のチェック19−10でfb=1かつanswer=1(楽節
の境界条件とユーザーの現楽節を終了してもよいことを
示す返答)が成立するので19−11に進み、dn=end+1
を実行する。すなわち、コードパターンdata(f、g、
n、dn)の楽節終了位置endまでのデータはflase end
( )のルーチン内の現楽節のコード進行完成処理20−
6〜20−8で現楽節のコード進行の配列mcp(flase、dn
n)に設定したので、第19図の19−4から19−6でコー
ドパターンの残りのデータを次楽節のコード進行の最初
の部分として配列mcp(flase、dnn)に設定するため、
この19−11で、コードパターン上で次楽節の開始コード
となる位置(end+1)をdnに設定しているわけであ
る。
以上でtree1( )(第18図)のルーチンとそれに関連
する動作説明を終える。
ケーデンス生成(第16図)におけるrhythm( )のルー
チン16−31はtree1( )のルーチン16−29で生成した
各コードにコード長を付ける処理である。すなわち、ル
ーチンtree1( )がコードパターンを選択し、コード
名についてのコード進行の配列mcp(flase、dnn)にコ
ード名データを設定する処理であるのに対し、ルーチン
16−31rhythm( )はリズムパターンを選択し、コード
長についてのコード進行の配列rhmbox(keep dnn)にコ
ード長データを設定する処理である。
このルーチンrhythm( )の詳細を第22図と第23図に示
す。動作は第22図のフローから始まる。第22図はリズム
パターンファイルf7から決定されたケーデンスに対応す
るリズムパターンを選択するリズムパターン選択の処理
であり、このリズムパターンの呼出しが22−1から22−
5で行われる。リズムパターンファイルf7には、1つの
ケーデンスに1つのリズムパターンを持たしてあるの
で、他の選択処理と異なり、リズムパターンのリスト
(複数のリズムパターン)から1つをユーザーが選択す
る作業と乱数により自動選択する処理はない。すなわ
ち、リズムパターンの項目がユーザー選択auting[6]
=0のときに選択メニューとして表示されるのは、リタ
ーン、2、自動、3、(決定されたケーデンスに対応す
る1つのリズムパターン、例えば )のみである(22−6〜22−10)。リズムパターンの項
目が自動auting[6]=1または選択メニューから2、
自動を選択したとき22−14でdata=2が確認され、リズ
ムパターンの選択番号data=3に変更され、フラグYES
に0がセットされる。このYES=0は第23図のユーザー
によるリズムパターンの修正処理をスキップするのに用
いている。なお1、リターンを選択した場合はdata=1
となり、コードパターンの選択処理(第18図の18−1)
へリターンする。
ユーザーがリズムパターンをメニューから選択した場合
は第23図のチェック23−1でYES=1が成立し(22−1
参照)、23−2から23−8でユーザーによるリズムパタ
ーンの修正が対話方式で行われる。すなわち、リズムパ
ターンファイルf7から取り出したリズムパターンに訂正
したいリズム(コード長)があるかどうかを問い合わ
せ、ユーザーから訂正の要求YES=1のあるときには訂
正箇所を問い合わせてユーザーの訂正箇所入力nを受け
訂正リズムの入力をうながし、ユーザーからの訂正リズ
ムの入力Vを受け付ける(23−2〜23−8)。
この後、第23図の23−9で行われるリズムパターン生成
の詳細を第24図に示す。選択したケーデンスに楽節を更
新する条件が含まれていない通常のケースでは第24図に
おいて、24−2の現楽節終了承認answer=1も24−3の
曲の開始fs=1も成立しないので24−4から24−6で今
回選択したリズムパターンのデータdata(f、g、n、
dn)を現楽節のコード進行のコード長の配列rhymbox(k
eep、dnn2)に先頭から順次連結する。なおユーザーの
指示によるリズムパターン修正処理23−2〜23−8によ
りリズムパターンのデータが修正された場合は修正され
たリズムパターンがrhymbox(keep、dnn2)に連結され
ることになる(第24図には示さないが、リズムパターン
ファイルから選択したリズムパターンdata(f、g、
n、dn)を別の配列rhym(dn)に写しとり、リズムパタ
ーンの修正処理内で修正したデータでrhym(dn)の要素
を変更し、この配列rhym(dn)を24−4〜24−6(及び
24−8〜24−10)内に示すdata(f、g、n、dn)とし
て用いればよい)。一方、新しい楽節の開始条件fs=1
が成立する場合に24−4でdnをリズムパターンにおける
楽節開始位置start(f compairで既に得られている)に
セットし、24−4から24−6で新しい楽節のコード進行
を生成するため、リズムパターン上の楽節開始位置のコ
ード長以降のコード長を配列rhymbox(keep、dnn2)に
設定する。
f compair(第17図)で選択ケーデンスに楽節の境界条
件または曲の終了条件が成立し、それに対するユーザー
の承認がflase end(第20図)で得られた場合には24−
2のanswer=1が成立するので、24−8から24−10に示
す現楽節のコード進行のリズム完成処理(第20図の20−
5〜20−8に対応する処理)を実行し、リズムパターン
を先頭から楽節終了位置endまで配列rhymbox(keep、dn
n2)に連結し、その後、楽節番号keepを更新し楽節内の
コード番号dnn2を先頭1にセットする(24−11、24−1
2)。ついで、fb=1かつflag=0が成立するかどうか
を24−13でチェックする。これが成立するのは、f comp
airで楽節の境界条件が成立し、その承認がflase endで
得られたが、structure(第21図)において次の楽節が
反復楽節でないことが判用した場合である。したがって
これが成立するときには24−4〜24−6において、次楽
節のコード進行のリズムの最初の部分を生成するため、
配列rhymbox(keep、dnn2)にリズムパターンの残りの
部分である次楽節の最初のコード(その位置はdn=end
+1で与えられる)のコード長以降のデータをセットす
る。
チェック24−13が不成立のときは24−14に進みflag=1
かどうかをチェツクする。これが成立するのは次楽節が
反復楽節の場合であるので、24−15から24−19において
現楽節のコード進行のリズムの配列rhymbox(keep−
1、dnn2)のデータの写しを次楽節のコード進行のリズ
ムの配列rhymbox(keep、dnn2)にとり、その後、楽節
番号keepの更新と楽節内のコード番号dnn2の初期化を行
う(24−18)。
24−14でflag=0となるのは曲の終了条件の成立がf co
mpairで検知され(fe=1)、その承認がflase endで得
られたときなので、そのままリズムパターン生成のルー
チンを抜ける。
最後に、次のコード進行処理のパスのために、第25図に
詳細を示すフラグ処理23−10が実行される。すなわち、
answer=1になっているときには現楽節を完了させてい
るのでanswer=0に戻し(25−1、25−2)、flag=1
になっているときは楽節の反復を行ったのでflag=0に
戻すとともに次のケーデンス生成時に新しい楽節のコー
ド進行を生成するためにpflag=1にする(25−3、25
−4)。一方、pflag=1になっているときは今回のケ
ーデンス生成で新しい楽節のコード進行を生成したので
pflag=0に戻す(25−5、25−6)。最後の25−7で
その他のフラグfs、fb、feもノーマルの値に戻す。
以上でケーデンスの連結によるコード進行生成処理の説
明を終える。
<S進行とD進行によるコード進行生成> S進行によるコード進行生成処理15−13(第15図)とD
進行によるコード進行生成処理15−16は上述したケーデ
ンスによるコード進行に付加するコード進行を生成する
ものである。広義にはS進行もD進行もコードパターン
である。したがって上述したケーデンスファイルf4にS
進行用のサブファイルとD進行用のサブファイルを追加
し、これに合わせて、コードパターンファイルf5、f6に
もS進行のサブファイルとD進行のサブファイルを追加
して、ケーデンスによるコード進行生成実行中に、適
宜、S進行またはD進行のコード進行を挿入するように
してもよいが、この実施例ではS進行、D進行専用のフ
ァイルは用意せず、ユーザーの直接的なコード指定等に
よりSまたはD進行を得るか、演算によってSまたはD
進行を得るようにしている。
このS進行によるコード進行生成処理15−13とD進行に
よるコード進行生成処理15−16は処理の上での相違はほ
とんどないので以下の説明ではD進行によるコード進行
生成(第29図〜第32図)を代表中心として述べることと
し、S進行に関しては異なる点を述べるに留める(S進
行の処理の詳細は第26図、第27図、第28図に示してあ
る)。
第29図はD進行生成処理の最初の部分を示し、ここでは
D進行の生成処理を続行するかどうかの処理と、D進行
の最初のコードの根音を選択する処理を実行している。
すなわち、29−1でコードパターン(ここではD進行の
意味)の項目が自動になっているかユーザー選択になっ
ているかをauting[5]の内容から判別し、ユーザー選
択の場合はD進行を続けるか終了するかをユーザーに問
い合わせ(29−2)、ユーザーからの応答をWAY3Nにセ
ットする。ユーザーからの返事がリターンWAY3N=1の
ときは(29−5)コード進行の生成法決定処理(第15図
の15−1)に戻り、継続WAY3N=2のときには29−6〜2
9−28に示すように、D進行の最初のコードの根音選択
処理に進む。なお、実際のプログラムは、コードパター
ンの項目が自動になっているときは初めて図示のフロー
に入るときにはWAY3N=2が与えられ、ループして再び
フローに戻るときにリターンWAY3N=1が与えられるよ
うになっている。
根音選択処理29−6〜29−28では、基本として、通常の
ときは最初のコード根音をI(ハ長調の場合のC)と
し、楽節がS機能(サブドミナントマイナー機能を含
む)で開始するときの根音はIV(F)とし、楽節がD機
能で開始するときの根音はV(G)としている。ただ
し、D進行の項目がユーザー選択auting[5]=0にな
っているときはユーザーによって他の根音に変更するこ
とができるようにしている。詳細には29−6のdnn=1
は楽節の最初のコードのときを示しており、これが成立
しないときは29−7に進み、D進行がユーザーの選択項
目auting[5]=0なら、D進行の最初のコードの根音
をIにしてよいかどうか問い合せ(29−8)、ユーザー
の応答が否data=0の場合には(29−9、29−25)、他
の根音入力をうながし(29−26)、ユーザーから指定の
あった根音をrootbox[0]に設定する(29−27、29−2
8)。ユーザーが同意したときには29−10でrootbox
[0]に設定した根音I(ここでのデータ0)が有効と
なる。D進行の項目が自動auting[5]=1、data=1
の場合も同様である(29−4、29−7、29−10、29−2
5)。これから生成するコードが楽節の最初のコードの
ときには29−6が成立し、その楽節の開始機能がS機能
ならば29−11が成立し、D機能ならば29−16が成立す
る。したがって、楽節の開始機能がS機能のときは通常
はIVがコード根音rootbox[0]として選択され(29−1
5)、楽節の開始機能がD機能のときは通常はVがコー
ド根音として選択され(29−19)、その他の機能(T機
能)の場合は通常はIがコード根音として選択される
(29−24)。
D進行の最初のコードの根音が選択されると第30図のフ
ローに進み、ここでD進行の長さ(D進行に含めるコー
ドの数)とD進行の各コードの根音が決められて表示さ
れる。すなわち、30−1でD進行の項目が自動auting
[5]=1になっているかユーザー選択になっているか
を判別し、ユーザー選択の場合には、ユーザーにD進行
の長さを入力するようにうながし(30−2)、その入力
をnにセットする(30−3)。D進行の長さがわからな
いとき、あるいは自動の場合には長さ4がnにセットさ
れる(30−4、30−5、30−6)。続いて、30−7から
30−12において、D進行の長さnだけ、rootbox[i]
の配列に前の根音より5度下(4度上)の音が次のコー
ド根音になるようにして、根音データをセットする。こ
れにより、D進行の最初のコード根音rootbox[0]よ
り5度下の音が2番目のコード根音rootbox[1]とな
り、以下、同様にして、前より5度下(4度上)のコー
ド根音が続くことになる。S進行のコード生成処理で
は、このところで、前の根音より5度上(4度下)の音
が次のコードの根音として生成される。なお、30−8〜
30−10の処理は、根音データが0〜11の範囲をとり、0
でC、1でC#、2でD、以下同様にして11でBを表現
するフォーマットに則している。
D進行のすべてのコードの根音が生成されると、それが
30−14〜30−16において表示装置6に表示される。
次に処理は第31図のフローに進み、ここで、D進行のコ
ードのタイプが決められ、配列rootbox[x]内に先の
コード根音とともにセットされ、コード名の列(例えば
A7−Dm7−G7−C7)として表示される。なお、各コード
に対するコードの長さもここで生成している。第31図の
31−1から31−17でD進行のコードのタイプが決められ
る。最初に31−1でD進行の項目がユーザー選択auting
[5]=0になっているか自動になっているかを調べ、
ユーザー選択の場合にはコードタイプの選択メニューtr
ee3( )を表示し、ユーザーからの選択入力を受け取
る(31−2、31−3)。選択メニューから1、自動を選
択した場合、あるいはD進行の項目について自動auting
[5]=1が選択されている場合には、31−6〜31−8
で乱数によりコードタイプtree3Nを生成する(31−4、
31−5参照)。31−9〜31−17の処理はtree3Nに入って
いるコータドタイプ選択データを、システムで用いてい
るコードタイプの値Yに変換する処理である。システム
のデータフォーマットでは、例えば、トライアド(長3
和音)は0で表現され、マイナートライアド(短3和
音)は1で表現される。この変換されたコードタイプデ
ータYは、31−18〜31−22において、既に得られている
コード根音データとともに配列rootbox[x]に設定さ
れる。なお、第31図のフローでは、D進行のすべてのコ
ードに1つのコードタイプを一括して設定しているが、
D進行のそれぞれのコード別にコードタイプを設定する
ようにしてもよく、この変形は自明である。この場合、
調性を考慮してコードタイプを自動的に限定することが
可能である(例えば、調のスケールにない音を含むコー
ドは除外する)。さらに図示のループ31−19〜31−22で
はD進行の各コードのコード長(D進行のリズムパター
ンrhythmbox2[x]も設定している(31−21)。ここで
のリズムパターン処理は各コードに全音符の長さ(数値
表現で16)を割り当てているだけであり、このリズムパ
ターンが気に入らない場合には第32図のフローでユーザ
ー自身による修正ができるようになっている。
D進行の各コード名のデータ(コードパターン)rootbo
x[x]は31−24〜31−26で表示され、続いて、第32図
の32−1〜32−4でD進行のリズムパターンrhythmbox2
[x]が表示される。
次に32−5でリズムパターンの項目が自動auting[6]
=1になっているか、ユーザー選択になっているかが調
べられ、ユーザー選択YES=0(32−6)の場合には訂
正リズムの有無をユーザーに問い合わせ(32−9)、ユ
ーザーから訂正入力があった場合には対応する配列rhyt
hmbox2[x]の要素を書き換える(32−10)。自動YES
=1(32−7)の場合にはリズム修正処理32−8〜32−
10は実行されない。以上の処理で、D進行のコードパタ
ーンrootbox[x]とリズムパターンrhythmbox2[x]
が得られたので、それぞれの最終的なコード進行のコー
ド名の配列mcp[flase、dnn]とコード長の配列rhmbox
[flase.dnn]に連結する(32−11〜32−15)。この
後、再び、第29図の29−1に戻り、リターンが選択され
ればこのD進行生成ルーチンを抜けてコード生成の方法
を決定する処理に戻る。
ファイルメモリ3のデータ例 実施例の欄の末尾に示す各表は第1図のファイルメモリ
3に記憶されるデータを例示したものである。“List D
t File"の表は各データファイルの名前ないしアドレス
をリストアップしたものである。データファイルは全部
で7つある。“filel dt"には曲形式によって分類され
た種々の楽曲に関する楽節構造のファイルが記憶され、
“scondt"には楽節構造によって分類された各楽節の開
始機能のファイルが記憶され、“econ dt"には楽節構造
によって分類された各楽節の終了機能のファイルが記憶
され、“function dt"には機能的コードパターン(ケー
デンス)のファイルが記憶され“caden dt"には機能的
コードパターン(ケーデンス)ごとに分類され、根音と
タイプとで特定される形式を持つメジャー用のコードパ
ターンのファイルが記憶され、“mcaden dt"には機能的
コードパターン(ケーデンス)ごとに分類され、根音と
タイプとで特定される形式のマイナー用のコードパター
ンのファイルが記憶され、“rhymfile dt"には“functi
on dt"ファイルと1対1の対応関係で各コードパターン
の時間の長さの列、即ちリズムパターンのファイルが記
憶される。“HIE-STRUCTURE"で表す表は楽節構造用の
“file 1 dt"、楽節開始機能用の“scondt"、楽節終了
機能用の“econ dt"の各ファイルのデータを例示したも
のであり、圭形式と楽節構造と楽節開始機能及び終了機
能との間に階層的な関係を定めることによって種々の楽
曲における階層的な音楽構造を表現している。例えば、
表において、2部形式に属する最初の楽曲例えばA−
A′−A−A″の楽節構造を持っている。これは第1の
楽節がAタイプで、第2の楽節がA′タイプ(第1楽節
とにている)で、第3楽節がAタイプで、第4楽節が
A″タイプであることを示している。又、第1楽節Aは
Tすなわちトニック機能で開始し、Dすなわちドミナン
ト機能で終了し、第2楽節A′はDで開始しDで終了
し、第3楽節AはTで開始しSすなわちサブドミナント
機能で終了し、第4楽節はTで開始しTで終了すること
がわかる。この“HIE-STUCTURE"に示すデータは本発明
の対話的な側面について後述する第33図の音楽構造デー
タベース150に記憶させることができる。
表“function dt"は機能的コードパターン(ケーデン
ス)のファイルであり、同表の第2行乃至第8行に示す
メジャー用のグループと第10行乃至第12行に示すマイナ
ー用のグループとに分かれている。この“function dt"
の表において、Tはトニック機能のコードを示し、Dは
ドミナント機能、Sはサブドミナント機能、Sはサブ
ドミナントマイナー機能を示している。従って、例えば
T−D−Tのパターンは1番目のコードがトニック機能
で、2番目のコードがドミナント機能で、3番目のコー
ドがトニック機能であることを示している。
表“caden dt"はメジャー用の音楽に対するより具体的
なコードパターンのファイルであり、表“mcaden dt"は
マイナー用の音楽に対するコードパターンのファイルで
ある。“caden dt"と“mcaden dt"の各ファイルは“fun
ction dt"にある各機能的コードパターン(ケーデン
ス)ごとに分類されている。例えば、“function dt"の
ファイルの最初の5つのコードパターンすなわち 0 507 0 0 501 0 0 60b 0 0 307 0 0 208 0 はメジャー用の“function dt"のファイルにおかれる最
初の機能的コードパターン(ケーデンス)T−D−Tに
属するコードパターンのグループを形成している。“ca
den dt"と“mcaden dt"の各表において、3桁又は1桁
の数字データは根音とタイプによって特定されるコード
を表わしている。1桁の表現は3桁の省略形でありその
上位2桁が0に等しい3桁表現に対するものである(例
えば、“0"=“000"、“5"=“005")。最上位の桁(実
際には16ビットワードの上位8ビット)でコードのタイ
プを表現し、16ビットワードの下位8ビットにてコード
の根音を表現したものである(表参照)。例えば、0−
507−0のデータのパターンは最初のコードがCメジャ
ーで、2番目のコードがGドミナントセブンスで、3番
目のコードがCメジャーとなるコードパターンを表わし
ている。
表“rhymfile dt"はファイル“function dt"と1対1関
係にあるコードの長さの列、すなわちコードのリズムパ
ターンのファイルであり、ファイル“rhymfile dt"にお
いて、数字データのそれぞれは基本となる音楽時間の整
数倍で表現したコードの長さを示しており、例えば数字
データ16は1小節の長さ、即ち全音符の長さに対応して
おり、データ8は1小節の半分すなわち2分音符の長さ
に対応している。
“function dt"と“caden dt"と“mcaden dt"と“rhymf
ile dt"の各ファイルは第33図のコードパターンデータ
ベース160に記憶させることができる。
実施例の特徴 以上の説明から実施例の特徴、利点は明らかである。例
えば、 (A)楽曲から計画され、抽出された特徴構造に従って
コード進行が生成されるので、音楽性、自然さ、多様
性、一貫性のあるコード進行を得ることができる。
(B)例えば、各楽節のコード進行の開始機能と終了機
能は予め構造的に計画された楽節の開始終了機能データ
と一致するように制御される。
(C)また、予め計画され設定された楽節構造データに
タイプの似た楽節が複数含まれ、設定した楽節開始終了
機能データにおけるこれらの楽節の開始と終了機能がそ
れぞれ一致する場合には、楽節のコード進行を反復させ
る機能がある。
(D)楽曲の構造に関する知識がファイルメモリ3のデ
ータによって表現できる。すなわち、ファイルメモリ3
にある楽曲の各階層レベルにおける特徴構造のデータは
有機的にリンクされたデータ構造もっている。
(E)したがって、ファイルメモリ3からどのようなデ
ータ選択を行っても、階層的に秩序づけられた音楽構造
が得られる。したがってそれによって生成されるコード
進行に音楽性が保証される。
(F)ファイルメモリ3のデータの選択はユーザーが行
うこともできれば自動で行うこともでき、その選択は項
目ごとにユーザーにまかされる。したがって、ユーザー
の好み、レベルに合わせて、コード進行生成におけるユ
ーザーの関与する度合を広範囲に変えることができる。
すなわち、完全自動のコード進行生成からユーザーの意
図が充分に反映したコード進行の生成までが可能であ
る。
(G)本コード進行生成装置を使用するユーザーは、コ
ード進行は単独で存在するものではなく、楽曲の構造な
いしダイナミズムを背景として生成(創造)されるもの
であるという、音楽も特質についての理解が得られる。
また、コード進行を機能レベルで把えることが可能にな
る。したがって、多くのユーザーにとって有用なコード
進行学習機にもなり得る。
(H)本コード進行生成装置は自動作曲機におけるコー
ド進行生成機能として利用することができる。例えば、
本件出願人はコード進行に従って楽曲のメロディを生成
する自動作曲機を出願しており(特願昭62−86571
号)、この種の自動作曲機に利用できる。
(I)本コード進行生成装置によれば、本装置とユーザ
ーとの間でメニュー方式でなされる対話を通じてコード
進行が生成されるという利点がある。
等が挙げられる。
メニュー式コード進行生成装置と作曲機への応用 マンマシーンインターフェースの観点からは本コード進
行生成装置をユーザーと対話して所望のコード進行を生
成するメニュー式のシステムと見ることができる。この
特徴を第33図の上半分に示す。即ち、メニュー式の対話
装置100と音楽構造データベース150とコードパターンデ
ータベース160とコード進行メモリ170とから成る構成で
ある。この構成において、対話装置100は音楽構造デー
タベース150とコードパターンデータベース160とから選
択的にデータを検索し、生成物であるコード進行をコー
ド進行メモリ170に記憶するようになっている。本構成
は、上述したコード進行生成装置(例えば、第2図と第
3図参照)と同一であり得る。もっとも第33図の構成
は、対話能力の側面に焦点を当てている為、一見した所
では前のものと異なるように見える。対話装置100はユ
ーザーに選択のリストを提示する問合せ部110を備えて
いる。選択リストの一例は音楽構造データベース150に
記憶される曲形式のリストであり得る。選択リストの別
の例は音楽構造データベース150から取り出した楽節構
造のグループであり得る。更に、別の例ではコードパタ
ーンデータベース160から選択した機能レベルあるいは
根音/タイプ指定レベルのコードパターンのグループで
あり得る。更には又特定の問題についてユーザーからYE
S又はNOの回答を要求する質問であり得る。代表的な選
択リストにはデータ項目(例えば、曲形式、楽節構造、
コードパターン)のグループに加え、前回の対話サイク
ルに対応するサイクルへの復帰に関する選択肢と、ユー
ザーの代りにデータ項目のグループから1つのデータ項
目の選択を自動的に行う自動の選択肢とが更に含まれ
る。この復帰機能(リターン機能)により、ユーザーと
対話装置100とを間で取り交される対話を行きつ戻りつ
行うことが可能となり、ユーザーは一旦選択したデータ
項目を自由に別のデータ項目に変更でき、よりよいコー
ド進行を見つけ出すのが容易となる。自動機能はユーザ
ーが希望するときに何時でも利用できる。全てを自分自
身で選択したいユーザーもいれば、いくつかの項目は自
分自身で選択するが、いくつかの別の項目は自動機能に
よる自動選択にまかせるユーザーもいると考えられる。
このように、選択的に動作可能な自動機能は、初心者と
経験者の双方にとって有益なユーザーインターフェース
の環境を提供することができる。
提示される選択リストはその時点におけるシステムの状
態、すなわちユーザーとシステムとの間の対話の段階に
依存す。提示された選択リストの中からユーザーは1つ
の選択肢(例えば、1つの曲形式、楽節構造、コードパ
ターン、YESの回答)を選択し、ユーザーの応答として
入力部120に入力する。次いでユーザーの入力はジョブ
実行部130に渡され、ここで、ユーザーの選択した選択
肢によって特定されるジョブあるいは選択肢に関連する
ジョブが実行される。例えば、曲形式を選択する対話サ
イクルではユーザーからの応答は特定の曲形式である。
この場合、関連するジョブとしてその特定の曲形式が楽
節構造データベース150の曲形式のセットの中から選択
されたことも確認もしくは決定し、その特定の曲形式が
コード進行を形成する為の楽曲における1番大きな構造
レベルの音楽構造として使用されるようにする。これは
その特定の曲形式のデータを対話装置100内の専用メモ
リないレジスタ(図示せず)に格納することによって実
現できる。ユーザーの応答が特定の楽節構造の場合に
は、関連するジョブとしてその特定の楽節構造が音楽構
造データベース150内において既に曲形式を選択する為
の対話サイクルにおいて、選択済の曲形式に属するグル
ープの楽節構造の中から選択されたことを決定承認し、
その特定の楽節構造がコード進行を生成する為の楽曲の
楽節レベルにおける音楽構造として使用されるようにす
る。これはその特定の楽節構造のデータを対話装置100
内の選択楽節構造記憶用のメモリ(図示せず)に格納す
ることによって実現できる。楽曲の各楽節の開始終了機
能を選択する対話サイクルでは、ユーザーの応答は既に
楽節構造選択の対話サイクルで決定済の楽節構造に属す
るグループの楽節開始終了機能の中から選び出した特定
の楽節開始終了機能となる。この場合、関連するジョブ
は対話装置100内のもう1つの専用メモリ(図示せず)
に、この特定の楽節開始終了機能のデータを記憶するこ
とによって実行される。又ユーザーの応答が機能レベ
ル、例えば、トニック、ドミナント、サブドミナント機
能で表現される機能レベルでの特定のコードパターンで
ある場合には、関連するジョブとして、その特定の機能
的コードパターン(ケーデンス)が現楽節について、そ
の時点までに生成された機能的コード進行に対して連結
されるものとして選択されたことを決定し、その特定の
機能コードパターン(ケーデンス)の中に、既に楽曲の
各楽節の開始終了機能の選択サイクルにおいて決定済の
現楽節の終了機能と一致する機能が含まれるかどうかを
調べ、成立するならば現楽節のコード進行が決定済の終
了機能と一致するこの特定のコードパターン上の位置で
終りうるようにする。
何れの場合でもジョブ実行部がユーザーの応答に関連す
るジョブを実行した後1つの対話サイクルが終了し、次
の対話サイクルが対話継続部140によって開始され、ユ
ーザーとの対話が継続される。この目的の為、対話継続
部140はジョブ実行部130のジョブ結果に基づき、選択リ
ストを作成し、それを問合せ部110に渡し、そのリスト
がユーザーに提示されるようにする。リストの作成には
音楽構造データベース150あるいはコードパターンデー
タベース160に対するデータ検索処理を選択的に含む。
一連の対話サイクルを通じてジョブ実行部130は一連の
ジョブを実行し、その結果として、楽曲のコード進行が
生成される。このコード進行はコードパターンデータベ
ース160から選択したコードパターンを連結したものか
らなり、予め音楽構造データベース150から選択した階
層的な音楽構造(例えば、曲形式、楽節構造、楽節開始
終了機能)と整合する関係を持っている。
第33図には、上述した構成をコード進行源として利用す
るメロディ合成装置(作曲部)200も示されている。こ
のメロディ合成装置200としては、本件出願人に係る特
願昭62−86571号、特願昭62−121037号、特願昭62−325
177号、特願昭62−325178号に示されるタイプのものが
使用できる。なお、これらの出願は参考文献として本書
で使用する。メロディ合成装置200は、コード進行メモ
リ170に記載されたコード進行に基づいて、メロディを
生成ないし合成するようになっている。図示のメロディ
合成装置200は、モチーフ(比較的短いメロディで最初
にユーザーから入力することができる)を記憶するモチ
ーフメモリ220を含む。モチーフ分析/パラメータ発生
部230は、モチーフを分析しメロディの特徴パラメータ
(例えば、小節等の区間毎のアルペジオ特徴パターン、
非和声音の分布、音域)を生成しメロディ発生部240に
供給する。コード分析部210(オプションである)を設
けて、コード進行メモリ170上のコード進行を評価して
付加的な特徴パラメータ(例えば、音楽の階層構造)を
生成してメロディ発生部240に供給するようにしてもよ
い。メロディ発生部240は楽曲の小節毎にコード進行メ
モリ170からのコード進行における関連するコードに基
づき関連するメロディ特徴パラメータをメロディに変換
する。例えば、アルペジオ特徴パターン即ち各和声音を
オクターブの種類を特定する数値とコード構成音の種類
を特定する数値とで表現したパターンを、各和声音がピ
ッチで(音高で)表示されるパターンに変換する為に、
供給されたコード進行中の関連するコードの音高の種類
の集まりの情報を利用する。生成された楽曲のメロディ
のデータはメロディメモリ250に記憶される。楽曲演奏
モード時に記憶されたメロディの各音符は音源300(任
意の通常のタイプである得る)に供給される。音源300
は、各音符が与えられる都度、楽節波形信号を合成し通
常のサウンドシステム400に供給し対応する音響信号を
再生させる。
変形例 以下、第34図〜第47C図を参照して楽曲のコード進行生
成装置の変形例について説明する。この変形例では、コ
ードパターンのファイルが設けられる。このファイルの
各コードパターンは、次コードパターン候補ファイルと
呼ばれる別のファイル上に示された少なくとも1つのコ
ードパターンと関係している。即ち、この少なくとも1
つのコードパターンは、それぞれが関連するコードパタ
ーンの次に続くことのできるコードパターン候補のセッ
トを構成するようにグループ化されている。この変形例
によれば、コードパターンファイル上から一旦1つのコ
ードパターンが選択され、楽曲の音楽構造進行上の現コ
ードパターンCP(i)とし決定されると(ここでは楽曲
のコード進行はCP(i)の所まで完成しているものとす
る)、次コードパターン候補ファイル上からこの現コー
ドパターンCP(i)に関連するコードパターンセットが
取り出され、CP(i)に後続する次コードパターンの選
択リストとしてユーザーに提示される。この選択リスト
のなかから1つの選択肢がユーザーにより選ばれる。最
終的に選択されたコードパターン(これはCP(i+1)
で表現することができる)は現コードパターンCP(i)
に連結される。これによりコード進行はCP(i+1)の
所まで作成されるのでCP(i+1)を現コードパターン
と呼び直すのが適当である。ここで、CP(i+1)は上
述したコードパターンファイル上に含まれるものとす
る。次いで、再びユーザーには次コードパターン候補フ
ァイル上から現コードパターンCP(i+1)に続くこと
のできるコードパターンのセットが提示されることにな
なり、このセットの中から1つのコードパターンが選択
され決定され、CP(i+2)として上述したのと同様な
仕方でCP(i+1)に連結される。以上の処理を繰り返
すことによりコードパターンの選択的な連結によって構
成される楽曲のコード進行が成長し完成する。
第34図に上で概要を説明した変形例に係るコード進行生
成装置400の全体構成を示す。
第34図において、CPU410はプログラムメモリ420に記憶
されるプログラムに従って動作する。ワークメモリ430
は、データの一時的記憶の為CPU410によって使用され
る。コードパターンファイルメモリ440には、生成すべ
き楽曲のコード進行のユニットとして働くコードパター
ンのファイルが記憶される。ファイル440上の各コード
パターンは、次コードパターン候補ファイル450上のコ
ードパターンのグループと関係しており、各グループが
関連するコードパターンに後続することのできる次コー
ドパターン候補のセットを規定するようになっている。
第35図は、コードパターンファイルメモリ440と次コー
ドパターン候補ファイルメモリ450のデータ構造と共に
両者間の関係を示したものである。コードパターンファ
イルメモリ440において、連続するアドレスに記憶する
複数のコードデータによりその順番で接続されたコード
のパターンが表現される。例えば、最初の3つの記憶場
所に記憶されるCHORD#(1)、CHORD#(2)、CHORD
#(3)の3つのコードによりファイル440上の最初の
コードパターンが構成される。ここに各コードパターン
は、2あるいはそれ以上の任意の数のコードから成って
よく、又、種々の長さのコードパターンがファイル440
に置かれても良い。
ファイル440の各コードパターンをファイル450の次コー
ドパターン候補のグループないしテーブルに間連付ける
為、ファイル440上にはポインのエリアが設けられ、こ
こに総括的にTABLE#で示すファイル450上の各テーブル
へのポインタが記憶されている。第35図では、各ポイン
タをコードパターンの終りにおいている。例えば、ファ
イル440の4番目の記憶場所に記憶されるポインタTABLE
#1は、CHORD#(1)、CHORD#(2)、CHORD#
(3)からなる第1のコードパターンCP#1をファイル
450上の同じくTABLE#1で示す次コードパターンテーブ
ルに関連付ける働きをする。ファイル450上の各テーブ
ルには、ファイル440上の関連するコードパターンの次
に続くことのできるコードパターンのグループに関する
情報が記憶される。ファイル450の記憶容量を節約する
為に、この情報は第35図に示すようにファイル440上の
コードパターンを指すポインタの形式を取るのが好まし
い。例えば、第1のコードパターンCP#1に対する次コ
ードパターンテーブルであるTABLE#1について述べる
と、このTABLE#1はN個の次コードパターン候補をADD
R OF NCP#X1〜ADDR OF NCP#Xnで示すポインタの形式
で持っている。第1のポインタであるADDR OF NCP#X1
は第1コードパターンCP#1に対する次コードパターン
の最初の候補に係るファイル440上のアドレスを指して
おり、具体的には、ファイル440上の中で次コードパタ
ーンとしての最初の候補のデータが開始する記憶場所を
指している。第35図の場合、ADDR OF NCP#X1は点線で
示されるようにファイル440上の第2のコードパターンC
P#2に対するポインタにたまたまなっている。これは
第1コードパターンCP#1の後に、第2コードパターン
CP#2を続けることができることを意味している。
ファイル450上の各テーブルには、それぞれの次コード
パターン候補の使用頻度に関する情報(総括的にFREQで
示している)も記憶される。各頻度データは、関連する
コードパターンがコード進行のユニットとして使用され
た回数の相対的な大きさを表わしている。コード進行生
成プロセスにおいてファイル450上の次コードパターン
候補テーブルからコードパターンが選択され、次コード
パターンとして決定される度にそのコードパターンの頻
度データが後述する仕方でインクリメントされる。ファ
イル450の各テーブルは、コードEOTで終っている。
第34図に戻って入力装置460は、楽曲のコード進行生成
作業の開始や終了、コード進行で使用されるコードパタ
ーンの選択等ユーザーの応答やコマンドを入力するのに
用いられる。表示装置470はユーザーが入力装置460を介
して選択肢を入力する為のコードパターン候補のリスト
等のデータやメッセージを表示するのに使用される。コ
ード進行メモリ480には生成されたコード進行が記憶さ
れるようになっている。コード構成音メモリ490には、
コード進行で使用される各コードに関するピッッチを表
わすノートナンバーの形式のコード構成音データが記憶
される。コード進行を生成する過程において、コード構
成音メモリ490はCPU410によってアクセスされ、メモリ4
80上の生成されたコード進行(ここでは、各コードは根
音とタイプとで表現されている)から音源510の動作に
適したフォーマットを持つコード演奏データに変換する
のに利用される。即ち、CPU410はコード構成音メモリ49
0を参照することにより根音とタイプで特定されるコー
ドをコード構成音の音高に分解する。
メモリ500にはその他のデータ、例えば音源510の動作に
必要なデータ(例えば、音色データ)や表示装置470の
動作に必要なデータ等が記憶される。
音源510は任意の通常のタイプでよく電子的に楽音を合
成する。コード進行の生過程においてコードパターンが
選択されると、その選択されたコードパターンに対応す
るコード演奏データと共に、その選択コードパターンに
先行するメモリ480上の生成済のコード進行又はその一
部に対応するコード演奏データがCPU410により生成され
る。次いで、CPU410は、そのコード演奏データを処理し
(デコードし)、ノートオン/オフのコマンドを含むデ
コードされた演奏データを音源510に転送し、これによ
り音源510で対応する楽音が形成され、サウンドシステ
ム520に送られ対応する音響信号が出力される。このよ
うにして、選択されたコードパターンは、それに先行す
るコードパターンの演奏に引き続いて自動演奏されるこ
とになる。この機能により、ユーザーは選択したコード
パターンをそれまでの間にメモリ480上で生成したコー
ド進行につなぐのが本当に妥当かどうかを容易に判断す
ることが可能となる。
本装置400は、第36図に示すゼネラルフローに従って楽
曲のコード進行を生成する。
まず、36−1でコード進行の生成のために装置400が初
期化され、続く36−2で曲の最初のコードパターンが決
定される。この決定は例えば次のようにして行うことが
できる。CPU410の制御のもとで、コードパターンファイ
ルメモリ440から全コードパターンを読み出して表示装
置470上に適当なフォーマットで表示する。次いで、ユ
ーザーが入力装置460により表示されているコードパタ
ーンの1つを選択する。所望であればユーザーの確認を
得る為選択したコードパターンを自動演奏することがで
きる。このようにして選択され決定されたコードパター
ンは、コード進行メモリ480に最初のコードパターンと
して記憶される。
以降の処理36−3〜36−10において、楽曲のコード進行
が配列480上で完成するまでの間1つずつコード進行が
選択され決定され連結されていく。以下の説明では、コ
ード進行配列400上の中で最後に決定され記憶されたコ
ードパターンのことを現コードパターンと呼ぶことにす
る。
36−3でメモリ450から現コードパターンに接続可能な
次コードパターン候補のテーブル(NEXT−TBL)を呼び
出しその情報を表示装置470に表示する。次に36−4で
この表示装置470に表示されたコードパターンの中から
ユーザーが1つを次コードパターンとして選択するのを
持つ。ユーザーがコードパターン(NEXT−CP)を選択す
ると、プログラムは試聴処理36−5に進み、この処理に
おいて、選択されたコードパターンと共に選択されたコ
ードパターンに先行するコード進行の少なくとも一部が
ユーザーの確認の為に演奏される(但し、36−4からの
最初のパスでは現コードパターンと、次コードパターン
として選択されたコードパターンのみが演奏される)。
試聴の後、36−6でユーザーの応答を待機する。この時
点でユーザーは再びコード演奏を、多分別の場所から聞
き直したい場合には、選択コードパターンNEXT−CPの適
否を更に調べるためにそのような演奏開始位置(LOC)
を指定する。この場合、36−7でこの位置LOCが識別さ
れ、36−5の試聴処理に戻り、ここで指定された位置LO
Cからコード演奏を行う。
選択したコードパターンが気に入らなければユーザーは
NGの応答を入力する。そしてこのことが36−7で検出さ
れ、36−4に戻って、次のコードパターンとして別のコ
ードパターンの選択を可能とする。
選択したコードパターンは問題がなければユーザーはOK
の応答を入力する。このことが36−7で確認されると36
−8に進み、ここで次コードパターンテーブル、NEXT−
TBLの配列要素を頻度順に並べ変える(ソートする)処
理を行う。次いで、36−9で選択され決定されたコード
パターンNEXT−CPをコード進行配列(CPA)に連結してN
EXT−CPがCPAの末尾に来るようにする。この結果、NEXT
−CPはコード進行の最後のコードパターン、従って現コ
ードパターンとなる。
36−10で楽曲のコード進行を完了させてよいかどうかを
ユーザーに問い合せその返事を受け取る。ユーザーの返
事がコード進行の継続を指示している場合には、36−3
に戻り、そうでなければ第36図のフローから抜ける。こ
の時間点でコード進行アレイ480には楽曲のコード進行
が完成している。
第36図のフローの個々の詳細な説明に進む前に、個々の
処理で参照される主なレジスト、メモリ類について説明
することにする。
このようなレジスタのメモリ類を第37A図と第37B図に示
す。TBLNPのレジスタは、ファイル450上の次コードパタ
ーン候補TABLE、NEXT−TBLへのポインタである。フラグ
Fは1ビット情報を記憶し試聴処理36−5で参照され
る。36−4でコードパターンNEXT−CPの選択に続けて試
聴(36−5)が行われる場合には、このフラグFは1回
目を示す(論理1)となる。36−7から戻って試聴(36
−5)が行われる場合には、フラグFは論理0、即ち1
回目でないことを示す。F=“1回目”の場合、36−5
でコード演奏を現コードパターンの所から初め、一方、
F=“1回目でない”ときには、36−6でユーザーが指
定した位置LOCからコード演奏を行う。レジスタNEXT−C
Pは次コードパターン候補テーブル、NEXT−TBLから選択
した次コードパターンへのポインタである。即ち、NEXT
−CPポインタは、コードパターンファイル440上におい
て、この次コードパターンの最初のコードデータが置か
れるアドレスを指す(第35図参照)。LOCレジスタは試
聴処理36−5で最初に演奏されるコードパターンを指す
ポインタである。
メモリPDには、試聴処理36−5で作成され演奏されるコ
ード演奏データが記憶される。データPDにはコード音の
音高もしくは音高クラスをそれぞれ示す各ノートナンバ
ーが含まれる。各ノートナンバーに関連してON/OFFビッ
トが設けられており、それによりノートナンバーで示さ
れ音高の楽音についてのノートオン又はノートオフのイ
ベントが規定される。イベントデータ(ノートナンバー
とON/OFFビット)の間には次イベントタイムのデータが
挿入される。それぞれの次イベントタイムデータは、イ
ベントからイベントまでの時間、換言すれば次のイベン
トが発生するまでの残り時間を示す。第37A図では、各
次イベントタイムデータは次のイベントデータの先頭に
位置している。
第37A図に示す全てのレジスタ、メモリ類及び第37B図に
示すレジスタCURR−Pは、第34図に示すワークメモリ43
0内に設けられている。
コード進行配列(CPA)であるメモリ480のデータ構造を
第37B図に示す。上述したように、CPAは第36図のフロー
において生成される。CPAのデータは各コードを根音と
タイプで特定する形式でコードパターンを連結したもの
である。任意のコードパターンの所からコード演奏が容
易に行えるようCPAの各コードパターンにはパターンNo
のデータが付属している。レジスタCURR−PはCPA上の
現コードパターン(最後のコードパターン)を指すポイ
ンタとして使用される。
第36図は第36図のフローのうち、次コードパターン候補
テーブル、NEXT−TBLを取り出して表示する処理36−3
の詳細を示したものである。第38図のフローは、TBLNP
のポインタで示される次コードパターン候補のテーブル
を検索して、その情報を次のコードパターン候補の選択
リストとして表示装置470に表示し、特にNEXT−TBL上の
頻度に応じて各次コードパターン候補が番号付けられる
形式で表示する。
詳細に述べると、先ずAレジスタをTBLNPに初期設定す
る(38−1)。NEXT−TBLのテーブル上からAにあるデ
ータ(例えば、第35図のTABL#1)を読み出し(38−
2)、そのデータの種類を調べる(38−3、38−4)。
もしデータがファイル440上に記憶される次コードパタ
ーンへの“ADDR"ポインタならばBレジスタをこのポイ
ンタの値に設定する(38−5)。続いて、38−6でBポ
インタで示される次コードパターンに対する番号円(A
−TBXNT)÷2+1によって求め、この番号を38−7で
表示装置470に表示する。この番号は次コードパターン
の瀕度のランクを示すようになっている。例えば、NEXT
−TBL上で1番高い頻度を持つ次コードパターンにはNo1
が付けられ、次に高い頻度を持つ次コードパターンには
No2が付くといった具合である。38−8でファイル440上
からBポインタで示されるアドレスにあるデータを読み
出す。読み出したデータがコードであれば(38−9)、
そのコードをコードネームの形式(例えば、G7、D
で表示する(38−10)。次いで、Bポインタをインクリ
メントし(38−11)、Bポインタにあるデータの読み出
しとコードの表示の処理(38−8〜38−11)を38−9で
ファイル450へのテーブルポインタが見つかるまで繰り
返す(第3図参照)。この時点で表示装置470の画面に
は、番号に続いて次のコードパターンの候補を示すコー
ドネームの列が表示されている。次いで、38−13でNEXT
−TBLのAポインタをインクリメントし38−2の処理に
戻る。
38−4でNEXT−TBLのAポインタの位置にあるデータが
頻度を示している場合には、38−12でその頻度情報を関
連するコードパターンの近くに表示し、38−13でAポイ
ンタをインクリメントする。
38−3でNEXT−TBLのAポインタにあるデータが、NEXT
−TBLのTABLEの終りを示すコードEOTである場合には
(第35図参照)第38図のフローから抜け出す。この時点
で表示装置の画面には、次コードパターン候補のリスト
が頻度付きで表示されている。
第39図は第36図のゼネラルフローにおける試聴処理36−
5の詳細を示したものである。39−1でフラグFが1回
目を示しているかどうかを調べる。これが成立するの
は、36−4での次コードパターンの選択後の最初のパス
でコード演奏を行うとする時である。従って、これが成
立する場合には、39−2でLOCを1の値、すなわち現在
の値(これはコード演奏が現コードパターンの所から開
始することを示す)にセットする。次いで、39−3でフ
ラグFを1回目でない状態に変更し、これにより36−7
からの戻りのパスで試聴処理36−5を行う場合に、その
コード演奏が36−5にてユーザーが指定した位置LOC、
多分現コードパターンの位置とは異なる位置LOCから始
まるようにする。次いで、39−4でLOC、NEXT−CP、CP
A、CURR−P、コード構成音メモリ490等を用いて第37A
図に示すようなコード演奏データPDを作成する。この詳
細を第40図に示す。第40図の40−1ではLOCとCURR−P
に基づき、最初に鳴らすべきCPA(第37B図参照)上のコ
ードパターンのアドレスを求める。例えば(LOX−1)
をCURR−Pにある現コードパターンNoから差し引くと、
この結果の数字が最初に鳴らすべきコードパターンに対
して割り当てられたコードパターンNoである。そこで、
CPA上からこの計算したコードパターンNoを記憶してい
る場所を捜し求める。求めるべきコードパターンのデー
タは(計算したコードパターンNo−1)から計算したコ
ードパターン番号が記憶される位置の間に連続的に記憶
されている。次のステップ40−2でコード演奏PDを現コ
ードパターンの所まで作成する。これは次の如く行われ
る。先ず、40−1の所でAポインタには、最初に鳴らす
べき最初のコードのデータを記憶するCPA上のアドレス
が設定されているものとする。CPA上において、この最
初のコードのうち(Aポインタの初期設定値)からCURR
−Pで特定される最後のコードの位置までにあるコード
データをコード構成音メモリ460を参照することによっ
てノートナンバーに変換する。変換後の各ノートナンバ
ーには、ON又はOFFのビットを付けてノートオン、ノー
トオフのイベントを定め、更にイベント間に次イベント
タイムデータを挿入し、現コードパターンの所までコー
ド演奏データPDを作成する(第37A図参照)。処理40−
2の詳細なフローを第41図に自明な形で示してあるので
参照されたい(その詳細な説明はここでは省略する)。
更に、コード演奏データPDは40−3で延長される。即
ち、NEXT−TBLから選択した次コードパターンNEXT−CP
に関する演奏データが含まれるように延長される。な
お、第37A図に示すPDのデータフォーマットは単なる例
示であり、当業者はこの演奏データの為に他の任意の通
常のフォーマットを採用することができる。
第39図に戻り、39−5のステップでコード演奏データに
従う音を鳴らす。35−5の処理にはPDのデータをデコー
ドし、それを音源510に送って対応する楽音を発生させ
る為の処理を含んでいる。この種の処理は自動演奏機能
を持つ電子楽器の分野では周知であるので詳細な説明は
省略する。
試聴処理36−5の機能により、ユーザーにとって選択し
たコードパターンNEXT−CPが現コードパターンにつなぐ
のに最適かどうは容易に判断できることになる。
第42図に次コードパターン候補テーブル、NEXT−TBLを
ソーティングする処理36−8(第36図)の詳細を示す。
先ず、42−1でフラグFを一回目にセットして次のパス
の36−5(第36図)にてコード演奏が現コードパターン
の所から始まるようにする。次に42−2で次コードパタ
ーンNEXT−CTが36−6のユーザーの判断により次のコー
ドパターンとして決定されたのでその頻度データをイン
クリメントする。続いて42−3でインクリメントされた
頻度データが使用フォーマットで表現可能な最大値に達
したかどうか調べる。その場合には42−4でNEXT−TBL
内にある全ての頻度データを右にシフトして全ての頻度
を2で割る。そうでない場合には42−4はスキップされ
る。ステップ42−5がNEXT−TBLのソーティング処理の
本体を構成している。このソーティングは次のようにし
て行われる。まずソーティング処理36−8に入る前にお
いてNEXT−TBL内の全ての要素はNEXT−TBLの一番上から
下に向かって頻度が減少する方向に配列されているもの
とする。42−5では42−2で更新した頻度をもつ次コー
ドパターンNEXT−CDがNEXT−TBLの一番上に位置してい
るかどうか調べ、もしこれが成立すればなにもしない。
そうでなければこのNEXT−CPの直前にあるコードパター
ンの頻度データを取り出し両頻度を比較し、NEXT−CPの
頻度の方が直前のコードパターン(ICP)の頻度より小
さければなにもしない。そうでなければ両者の位置を入
れ換え、ICPがあった位置にNEXT−CPが位置し、NEXT−C
Pがあった位置にICPが位置するようにする。以上の処理
を終了条件すなわちNEXT−CPがNEXT−TBLの一番上に達
するかNEXT−CPの頻度より高い頻度をもつICPにICPを発
見するまで続ける。
第43図は第36図の連結処理36−9の詳細を示したもので
ある。まず、ファイル440上において次のコードパター
ンのデータが開始する記憶場所を示すNEXT−CPポインタ
の値をAレジスタにセットする(43−1)。続いて43−
2〜43−5の処理でファイル440上にある次コードパタ
ーンの各コードデータを順次、コード進行配列CPAのCUR
R−Pポインタで示される位置にコピー、AポインタとC
URR−Pポインタをインクリメントし、これをファイル4
40上からテーブルポインタがみつかるまで繰り返す(43
−3)。決定された次のコードパターンはこのようにし
てコード進行配列CPAにその最後の要素として連結され
る。
この時点で次のコードパターンはCPAの最後のコードパ
ターンとなるので、このコードパターンを現コードパタ
ーンと呼び直すことになる。43−3の所で検出されるテ
ーブルポインタはフラグ450上における次のコードパタ
ーンテーブル、NEXT−TBLを指しており、その情報はコ
ード進行の継続のためにジェネラルフローの次のパスの
36−2の所で表示する必要がある。この点に鑑み、43−
6でこのTABLEポインタの内容をTBLNPポインタに格納
し、43−7にてコードパターンNoとCURR−Pポインタを
インクリメントし、43−8でインクリメントされたパタ
ーンNoをCPAのCURR−Pポインタで示される位置に格納
する。
第44図はコードパターンの木構造を例示したものでここ
では最初のコードパターンをC−Dm7−G7−Cとしてい
る。第44図に示す各矢印は1つのコードから別のコード
への接続を示している。例えばC−Dm7−G7−Cのコー
ドパターンはC−Dm7−#dim−Em7かC−Dm7−G7
Cのいずれかにつなぐことができる。理解されるように
上述したファイル440の各テーブルポインタとそれに関
連するファイル450のADDR OF NCPにより第44図の矢印が
実現される。しかしながら第44図に示すようなコードパ
ターンの論理的な構造あるいは接続関係は他のいくつか
の方法で実現することができるものである。第45図に実
現例の概要を示す。第45図においてTBL#1はコードパ
ターンCPのセットを記憶するメモリ形式の最初のコード
パターンテーブルを表わしている。各CPには次のコード
パターンテーブルを指すポインタが付いている(図中ド
ットマークで示している)。例えばTBL#1はTBL#2−
1、TBL#2−2等にリンクしている。そしてTBL#2−
1の方はTBL#31等にリンクしている。このようにして
第45図の構成は基本的にコードパターンの階層的なデー
タ構造を形成するものであるが、純粋な階層ではない。
即ち、ポインタの中にはアースに似たシンボルにつなが
ったものがありこのアースシンボルの他端は最初のコー
ドパターンテーブルTBL#1につながっている。このこ
とはアースされた格好のドットマークをもつコードパタ
ーンには最初のTBL#1内のコードパターンが後続しう
ることを示している。従って、第45図の構成には戻りの
経路が設けられており、これにより戻りの経路なしの構
成に比べ記憶容量を節約できる利点が生じる。更にアー
スされた格好のポインタは、楽曲のコード進行が終りに
達したかどうかの判定を行うのに利用できる。ここに、
アースされたポインタ(実際にはTBL#1を指すデー
タ)が付いた各コードパターンに和声的な終了や終止形
が含まれるものとする。例えば、そのようなコードパタ
ーンをコード進行アレイに連結した後で装置側からユー
ザーに対してコード進行をこの時点で終らせることがで
きる旨のメッセージを伝えることができる。このメッセ
ージに対しユーザーは更にコード進行の継続を要求する
場合にはNGの返事を、又終了を認めた場合にはOKの返事
を入力することになる。なお第37A図、37B図、39図〜41
図で説明した試聴処理36−5は単なる例示にすぎない。
状況によっては意図する楽曲にあうようなリズム(可変
のコード音の長さを持つ)付のコード演奏を行なうのが
望ましい。
第46図に基本となるコード演奏データBPDを示す。BPDは
コード進行の生成作業を始める前あるいは作業中にBPD
のセットの中から選択することができる。このBPDは第3
7A図に示すようなコード演奏データPDの基礎として機能
する。BPDのフォーマットをPDのフォーマットに変換す
るためにBPDに含まれる各構成音ID(特定のコード構成
音を示すもので例えば、1番低いコード構成音は1、2
番目に低いのは2等で表わされる)を変形にかかる試聴
処理の所で処理して特定のピッチデータすなわちノート
ナンバーに変換する。詳細にはコード構成音メモリ490
を参照してコードの各ノートナンバーを得、その中から
構成音IDによって特定されるコード構成音のノートナン
バーを選択する。PDの大きさはBPDの大きさより大きさ
よりも大きく(長く)なりうるのでこの試聴処理では矢
印付のループ46Aで示すようにBPDパターンを繰り返し読
み出しコード演奏が続けられるようにする。BPDにある
各コードチェンジデータはコードを切り換えるタイミン
グを表わしている。即ち、試聴処理においてBPDメモリ
上からコードチェンジが検出される都度CPA(NEXT−CP
を含む)上から次のコードを試聴のために選択する。次
いでこの選択したコードに基づきコード構成音IDを再び
コードチェンジがみつかるまでの間ノートナンバーに変
換する。試聴処理においてBPD上から次イベントタイム
が得られる都度それによって示される時間が経過するの
を持つ。そしてその時間の経過後に関連する構成音IDを
ノートナンバーに変換し、そのノートナンバーを含むノ
ートオン/オフコマンドを音源510に転送することによ
りイベントを実行する。上述した試聴処理の詳細なフロ
ーチャートを第47A図、47B図、47C図に示す。フローの
記載内容から明らかであるのでこれ以上の詳細な説明は
省略する。
その他の変形例 以上で実施例の説明を終えるがこの発明は上記実施例に
は限定されず、種々の変形、変更が可能である。
例えば、楽曲の構造データの選択に関し、上記実施例で
は上位の階層レベルの特徴構造から下位の階層レベルの
特徴構造に向ってデータを選択しているが、所望ならこ
の順番を任意にしてもよい。例えば、各楽節の開始終了
機能が選択されたとすると、この開始終了機能データが
開始終了機能ファイルf2、f3(3B)のどのグループ(あ
るいはどれとどれの)に属するかは容易に特定できる。
例えば、data(f2、g、n、dn)(ここにdn=1〜dnma
x(f2、g、n))に選択した開始機能のデータがあれ
ば、このときgの値が目的とするグループである。この
グループから逆に、1つ上位の特徴構造ファイルである
楽節構造ファイルf1(3A)上のアドレスを計算できる。
あるいは開始終了機能ファイルの開始終了機能データご
とに楽節構造ファイルf1へのポインタ(アドレス)を持
たしてもよい。
このアドレスにあるデータが選択された楽節構造データ
となる。選択した開始終了機能データが、開始終了機能
ファイルの複数のグループ内に存在する場合は楽節構造
ファイルには対応する楽節構造が同じ数だけある。この
場合、これらの楽節構造の候補のなかから、1つのユー
ザー指示または自動で選択すればよい。
実施例の第2図に例示するように楽曲の構造をファイル
として記憶する方式は種々の楽曲に関する構造の知識を
表現するのに有効であり、これらのファイルから音楽構
造データ(例えば、楽曲形式、楽節構造、楽節開始終了
機能)を任意に選択したとしても楽曲の特徴が得られる
という、音楽的な保証を与える。しかしながら、演算手
段(例えばルール型の推論システム)によって各階層レ
ベルの特徴構造を生成(選択)するようにすることも可
能である。例えば、その種の手段は、楽曲の形式が与え
られた場合に、その形式に関連する楽節構造生成ルール
ないしアルゴリズムに従って、複数の楽節構造を生成
し、そのなかから乱数により1つを選択する。また、ケ
ーデンス機能パターンからコードパターンを演算によっ
て生成し、そのなかから1つを選択することも可能であ
る。
あるいは、コード進行生成装置側で楽曲の特徴構造を生
成する機能をなしにしてもよい。すなわち、ユーザーが
直接、入力装置より楽節構造、楽節開始終了機能のデー
タを設定入力するわけである。
また、ファイルメモリ3に関しては、上述した楽節構造
のファイル、楽節開始終了機能のファイル以外に、長い
曲におけるより大きな構造(例えば楽章構造)のファイ
ルを設けてもよい。あるいは、楽節のその他の性格を表
わすデータのファイルを設け、この性格データによって
ケーデンス機能ファイル3Cおよび/またはコードパター
ンファイル3Dから取り出すケーデンス機能パターンある
いはコードパターンのセットに制限を加え、制限された
セットのみがコード進行に使用できるようにすることも
可能である。例えば、楽曲の進行の所定の区間(楽節構
造における各楽節と一致してもよいし一致しなくてもよ
い)において支配的な調性を表わすデータのファイルを
用意し、コード進行の生成工程において処理が新しい区
間に移ったら、それに対応する調整データを上記調性構
造のファイルから選択し、その後、ケーデンス機能ファ
イルから取り出したケーデンスパターンが現在の調性デ
ータに合うパターンの場合のみ(例えば、調性がメジャ
ーのときはメジャーケーデンスパターンであり、マイナ
ーのときはマイナーケーデンスパターンであるとき
に)、そのパターンを採用するように制御する。また現
在の調性データの主音データはケーデンスパターンを具
体的なコードパターンに変換するときに利用することが
できる。
また、コード進行の生成においてコード進行を反復させ
る場合に、楽節構造データの楽節のタイプが同じである
ことをその条件としてもよく、楽節の開始機能同士の一
致、終了機能同士の一致は調べないようにしてもよい。
更に楽節を更新するための条件に楽節の長さの項目(例
えばコードの数)を加えることもできる。例えば、楽節
の長さを管理する範囲データを記憶しておき、コード進
行生成の際、現楽節のコード進行の長さが、管理データ
の示す範囲内にあることを楽節更新の必要条件とする。
また、楽曲のコード進行を生成する場合に、ユーザーが
重要と考える場所のコード進行を決めてから残りのコー
ド進行が生成できるように変形することも容易である。
もちろん、楽曲のコード進行をいったん作成した後で部
分修正のできるエディト機能を設けることも容易であ
る。
LIST.DT FILE 1 filel.dt 2 scon.dt 3 econ.dt 4 function.dt 5 caden.dt 6 mcaden.dt 7 rhymfile.dt function.dt 1 NO.1(メジャー用) 2 T D T 3 T S T 4 T Sm T 5 T S Sm T 6 T S D T 7 T Sm D T 8 T S Sm D T 9 NO.2(マイナー用) 10 T D T 11 T S T 12 T S D T caden.dt(の1) NO.1 0 507 0 0 501 0 0 60b 0 0 307 0 0 208 0 NO.2 0 5 0 0 505 0 0 602 0 0 50b 0 0 606 0 NO.3 0 105 0 0 602 0 0 50a 0 0 508 0 0 908 0 0 901 0 NO.4 0 5 105 0 0 5 602 0 0 5 50a 0 0 5 508 0 0 5 908 0 0 5 901 0 0 505 105 0 0 505 602 0 0 505 50a 0 0 505 508 0 0 505 908 0 0 505 901 0 0 602 105 0 0 602 602 0 0 602 50a 0 0 602 508 0 0 602 908 0 0 602 901 0 注:データ***において上位の桁(上位8ビット)は
コードのタイプを表わす 0=“メジャー” 1=“マイナー” 2=“ディミニッシュ” 3=“オーギュメント” 4=“サスフォー” 5=“セブンス” 6=“マイナーセブンス” 7=“マイナー6th" 8=“6th" 9=“メジャーセブンス” 下位の桁(下位8ビット)はコードの根音を表わす 0=“C",1=“C#", 2=“D",3=“Eb", 4=“E",5=“F", 6=“F#",7=“G", 8=“Ab",9=“A", a=“Bb",b=“B". caden.dt(その2) 0 50b 105 0 0 50b 602 0 0 50b 50a 0 0 50b 508 0 0 50b 908 0 0 50b 901 0 0 606 105 0 0 606 602 0 0 606 50a 0 0 606 508 0 0 606 908 0 0 606 901 0 NO.5 0 5 507 0 0 5 1 0 0 5 60b 0 0 5 307 0 0 5 208 0 0 505 507 0 0 505 1 0 0 505 60b 0 0 505 307 0 0 505 208 0 0 602 507 0 0 602 1 0 0 602 60b 0 0 602 307 0 0 602 208 0 0 50b 507 0 0 50b 1 0 0 50b 60b 0 0 50b 307 0 0 50b 208 0 0 606 507 0 0 606 1 0 0 606 60b 0 0 606 307 0 0 606 208 0 caden.dt(その3) NO.6 0 105 507 0 0 602 507 0 0 50a 507 0 0 508 507 0 0 908 507 0 0 901 507 0 0 105 501 0 0 602 501 0 0 50a 501 0 0 508 501 0 0 908 501 0 0 901 501 0 0 105 60b 0 0 602 60b 0 0 50a 60b 0 0 508 60b 0 0 908 60b 0 0 901 60b 0 0 105 307 0 0 602 307 0 0 50a 307 0 0 508 307 0 0 908 307 0 0 901 307 0 0 105 208 0 0 602 208 0 0 50a 208 0 0 508 208 0 0 908 208 0 0 901 208 0 NO.7 0 5 105 507 0 0 5 602 507 0 0 5 50a 507 0 0 5 508 507 0 0 5 908 507 0 0 5 901 507 0 caden.dt(その4) 0 505 105 501 0 0 505 602 501 0 0 505 50a 501 0 0 505 508 501 0 0 505 908 501 0 0 505 901 501 0 0 505 105 60b 0 0 505 602 60b 0 0 505 50a 60b 0 0 505 508 60b 0 0 505 908 60b 0 0 505 901 60b 0 0 505 105 507 0 0 505 602 507 0 0 505 50a 507 0 0 505 508 507 0 0 505 908 507 0 0 505 901 507 0 0 602 105 507 0 0 602 602 507 0 0 602 50a 507 0 0 602 508 507 0 0 602 908 507 0 0 602 901 507 0 0 5 105 501 0 0 5 602 501 0 0 5 50a 501 0 0 5 508 501 0 0 5 908 501 0 0 5 901 501 0 0 5 105 60b 0 0 5 602 60b 0 0 5 50a 60b 0 0 5 508 60b 0 0 5 908 60b 0 0 5 901 60b 0 caden.dt(その5) 0 602 105 501 0 0 602 602 501 0 0 602 50a 501 0 0 602 508 501 0 0 602 908 501 0 0 602 901 501 0 0 602 105 60b 0 0 602 602 60b 0 0 602 50a 60b 0 0 602 508 60b 0 0 602 908 60b 0 0 602 901 60b 0 mcaden.dt NO.1 0 607 0 0 507 0 0 50a 0 0 501 0 NO.2 0 505 0 0 901 0 0 605 0 0 602 0 0 908 0 0 508 0 0 50a 0 NO.3 0 505 607 0 0 901 607 0 0 605 607 0 0 602 607 0 0 908 607 0 0 508 607 0 0 50a 607 0 0 505 507 0 0 901 507 0 0 605 507 0 0 602 507 0 0 908 507 0 0 508 507 0 0 50a 507 0 0 505 50a 0 0 901 50a 0 0 605 50a 0 0 602 50a 0 0 908 50a 0 0 508 50a 0 0 50a 50a 0 0 505 501 0 0 901 501 0 0 605 501 0 0 602 501 0 0 908 501 0 0 508 501 0 0 50a 501 0 rhymfile.dt 1 NO.1 2 16 8 8 3 16 8 8 4 16 8 8 5 16 8 8 16 6 16 16 16 16 7 16 8 8 16 8 16 16 8 8 16 9 NO.2 10 16 8 8 11 16 8 8 12 16 16 16 16 [発明の効果] 最後に、特許請求の範囲に記載する各請求項の発明の作
用、効果につい説明する。
請求項1、2、3、4、5、6、18、19、20に示すコー
ド進行生成装置によれば、構造的なアプローチによりコ
ード進行を生成することができる。換言すれば、予め、
コード進行の骨組ないし概略、主要部を決めておいてか
ら、その骨組等に合うコード進行をコードパターンの連
結によって形成できる。なお、これと同様な利点は請求
項17の構成からも生じ得る。請求項1の場合には、各楽
節の開始音楽機能と終了音楽機能を決めておいて、それ
に合うようにコード進行が生成される。請求項2の場合
は楽節構造を決めおき、そのなかに同様なタイプの楽節
あれば、それらの楽節に対するコード進行が同一に形成
され、いわゆるコード進行の反復を構造的なアプローチ
に基づいて実現できる。請求項3では階層的な音楽構造
記憶手段として有利なデータ構造についても言及してあ
る。請求項4は請求項3の構成における音楽の構造選択
手段として有利な構成とミニコードパターン生成手段と
しての好都合な構成とを示したものであり、これによ
り、階層的な音楽構造を大容量であり得る音楽構造記憶
手段(データベース)から、効率的に選択できるととも
に、コードパターンに関する知識の少ないユーザーでも
容易にコードパターンを選択できる。請求項18の場合
は、予め、同じコード進行とすべき複数のブロックを選
択しておきさえすれば、反復制御手段により、これらの
ブロックに対するコード進行が自動的に反復されるとい
う利点がある。
請求項7、8、9、10に共通な利点は、装置とユーザー
との間で取りかわされる対話ないしインターアクション
を通じてコード進行が生成でき、したがって、コード進
行の有効な学習機としての機能も実現できることであ
る。更に、請求項7では音楽知識源として、音楽構造デ
ータベース手段とコードパターンデータベース手段とが
装置側にあり、対話時にそのなかの必要の情報をメニュ
ー式インターアクティブ手段を介してユーザーがアクセ
ス可能であり、ユーザー自身のコード進行に関する音楽
知識は実質上要求されない。請求項8の場合は、コード
進行の進行の度合に関連する対話のサイクルを過去のサ
イクルに戻すことができるので、手直し再考の要求され
るコード進行の作成作業に極めて有利である。また、請
求項9の場合は、コード進行における各種の処理項目を
自動(装置主導)にするか手動(ユーザー主導)にする
かを処理に係り選択リスト別に選択できるので、コード
進行の作成作業におけるユーザーの関与の度合をユーザ
ーの好み、経験、知識等に合わせて自由にかえることが
でき、したがって様々なユーザーにとって有意義なコー
ド進行の作成環境を提供できる。
請求項11、12、13、14から生じ得る利点は、コードパタ
ーンの連結によりコード進行を得る場合において、適
宜、所望の種類のコードパターンを発生するコードパタ
ーン発生手段を選択し、更にそののコードパターン出力
を選択できる点にあり、したがってコードパターン発生
手段ごとに異なるコード進行生成法が提供でき、異なる
コード進行生成法の利用によるバリエーションの豊富な
コード進行を得ることができる。
請求項15はこの発明の作曲機への応用例を示したもので
あり、構造的なアプローチによって生成されたコード進
行を音楽材料としてそれに合うメロディを生成すること
により、よりよいメロディができる可能性が高まる。
請求項16ではコードパターンデータベース手段をコード
パターン源として使用し、そのなかからひとつずつコー
ドパターンを選択、連結してコード進行を生成している
ので、格別、音楽知識のないユーザーでも容易に希望す
るコード進行が得られるとともに、単なるコード利間の
遷移の頻度表等に基づくコード進行生成装置に比べ、性
格や特徴の異なる様々なコード進行を容易に構成し得
る。
請求項21、22、23、24では音楽の時間軸の方向にコード
パターンの階層的な構造をとるような特殊な構造のコー
ドパターンデータベース(コードパターンネットワーク
手段)を用い、このようなデータベース上に定義される
コードパターン間の階層的関係ないし連結可能関係を選
択的に辿ることによってコード進行を形成しているの
で、音楽的に自然でかつ、ユーザーの好みに合うコード
進行が容易に得られ、しかも、ユーザーに格別の音楽知
識は要求されない。
請求項25、26は上述したようなコードパターンの連結に
よってコード進行を得るような場合に、重要な問題の1
つとなる次のコードパターンの決定問題を有効かつ確実
に解決したものである。即ち、次コードパターンの候補
として選択したコードパターンについては、試聴手段に
より自動演奏(好ましくは、先行するコード進行の自動
演奏に続けて演奏)してユーザーに試聴させ、コードパ
ターンの採用の適否を十分に吟味できるようにしている
ので、常に満足のゆくコードパターン決定が可能とな
り、その効率もよい。
【図面の簡単な説明】
第1図はこの発明の実施例に係るコード進行生成装置の
全体構成図、 第2図は第1図のファイルメモリ3におけるファイル編
成を示す図、 第3図は第1図の実施例に組み込まれた、コード進行生
成の主な機能を示す機能ブロック図、 第4図は実施例の動作の理解に適したコード進行生成例
を示す図、 第5図は実施例の全体的動作のフローチャート、 第6図はデータファイルの読出しのフローチャート、 第7図はリストファイルとデータファイルのデータフォ
ーマットを示す図、 第8図は各処理項目につき自動/マニュアルモードを選
択するフローチャート、 第9図は調性の主音を決定するフローチャート、 第10図は調性のモードを決定するフローチャート、 第11図は楽曲形式を決定するフローチャート、 第12図は楽節構造を選択するフローチャート、 第13と第14図は楽節の開始終了機能を決定するフローチ
ャート、 第15図はコードの生成法を選択するフローチャート、 第16図はケーデンスによりコード進行の生成を行うフロ
ーチャート、 第17図、第18図、第19図、第20図、第21図、第22図、第
23図、第24図、第25図はケーデンスによるコード進行生
成に含まれるサブプロセスの詳細を示すフローチャー
ト、 第26図、第27図、第28図はS進行によるコード進行生成
の詳細を示すフローチャート、 第29図、第30図、第31図、第32図はD進行によるコード
進行生成の詳細を示すフローチャート、 第33図はユーザーと装置との間で取り行われる対話を通
して生成されたコード進行に基づいてメロディを合成す
る自動作曲機のブロック図、 第34図は本発明の変形例に係るコード進行生成装置のブ
ロック図、 第35図は第34図に示すファイル440と450のデータ構造と
共に両者の間の関係を示す図、 第36図は第34図に示す変形例の動作の全体的なフローチ
ャート、 第37A図と第37B図は第36図のフローで使用するレジスタ
メモリ部のフォーマットを示す図、 第38図は第36図のブロック36−3で行われる次コードパ
ターンテーブルの検索及び表示の処理の詳細を示すフロ
ーチャート、 第39図は第36図のブロック36−5で行われる選択したコ
ードパターンの試聴処理のフローチャート、 第40図は第39図のブロック39−4のフローチャート、 第41図は第40図のブロック40−2の詳細なフローチャー
ト、 第42図は第36図のブロック36−8で行われる次コードパ
ターンテーブルをソートする処理のフローチャート、 第43図は第36図のブロック36−9で行われる決定された
コードパターンをコード進行配列に連結する処理の詳細
なフローチャート、 第44図はコードパターンの階層的なネットワークを示す
図、 第45図は第44図に例示するコードパターンの階層的ネッ
トワークを実現するためのコードパターンのファイル組
織を模式的に示す図、 第46図は基本となるコード演奏データ(BPD)の構造を
示す図、 第47A図、第47B図及び第47C図は第39図のブロック39−
4と39−5で行われる選択されたコードパターンの試聴
のためのコード演奏処理の変形例に係るフローチャート
である。 1……CPU、2……プログラムメモリ、3……ファイル
メモリ、4……ワークメモリ、5……入力装置、6……
表示装置、3A……楽節構造ファイル、3B……楽節開始終
了機能ファイル、3C……ケーデンス機能ファイル、3D…
…コードパターンファイル、F2……楽節構造選択部、F3
……楽節開始終了機能選択部、F5……ケーデンス選択
部、F6……コードパターン選択部、F8……コード進行形
成部、F9……開始/終了機能マッチング部、F10……反
復検査部、100……対話装置、110……問合せ部、120…
…入力部、130……ジッブ実行部、140……対話継続部、
150……音楽構造データベース、160……コードパターン
データベース、170……コード進行メモリ、200……メロ
ディ合成装置、410……CPU、420……プログラムメモ
リ、440……コードパターンファイル、450……次コード
パターン候補ファイル、460……入力装置、470……表示
装置、480……コード進行メモリ、510……音源。

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】楽曲のコード進行を生成するコード進行生
    成装置において、 楽曲の各楽節について、その楽節が開始するときの開始
    音楽機能とその楽節が終了するときの終了音楽機能とを
    設定することにより楽曲の各楽節を特徴付ける楽節特徴
    付け手段(第3図のF3)と、 コードのミニパターンを可変に生成するミニパターン生
    成手段(第2図の3D、第3図のF6)と、 前記ミニパターン生成手段の生成した前記ミニパターン
    を連結して楽曲のコード進行を生成する連結手段(第3
    図のF8)と、 前記連結手段の生成したコード進行が、楽曲の各楽節に
    ついて、前記楽節特徴付け手段の設定した前記開始音楽
    機能と同一の音楽機能で開始し、かつ前記楽節特徴付け
    手段の設定した前記終了音楽機能と同一の音楽機能で終
    了するコード進行をもつように、前記連結手段を制御す
    る開始/終了制御手段(第3図のF9)と、 から成るコード進行生成装置。
  2. 【請求項2】楽曲のコード進行を生成するコード進行生
    成装置において、 楽曲の各楽節のタイプを表わす楽節構造を設定する楽節
    構造設定手段(第3図のF2)と、 コードのミニパターンを可変に生成するミニパターン生
    成手段(第2図の3D、第3図のF6)と、 前記ミニパターン生成手段の生成した前記ミニパターン
    を連結して楽曲のコード進行を生成する連結手段(第3
    図のF8)と、 前記楽節構造設定手段の設定した前記楽節構造にタイプ
    が同様な複数の楽節が含まれる場合に、前記連結手段の
    生成したコード進行が、このタイプが同様な複数の楽節
    に対して同じコード進行をもつように前記連結手段を制
    御する反復制御手段(第3図のF10)と、 から成るコード進行生成装置。
  3. 【請求項3】コード進行を生成するコード進行生成装置
    において、 ある階層レベルにある音楽構造をそれより高い階層レベ
    にある音楽構造ごとに分類した木構造のデータベースに
    よって表現した、種々の楽曲に関する、複数の階層レベ
    ルにおける音楽構造を記憶する音楽構造記憶手段(第2
    図の3A、3B)と、 前記音楽構造記憶手段から、任意の1つの楽曲インスタ
    ンスとして、この楽曲インスタンスに関する、前記複数
    の階層レベルの各々における音楽構造を選択する構造選
    択手段(第3図のF1、F2、F3)と、 コードのミニパターンを可変に生成するミニパターン生
    成手段(第2図の3D、第3図のF6)と、 前記ミニパターン生成手段の生成したミニパターンを前
    記構造選択手段の選択した楽曲インスタンスの音楽構造
    に従って連結することにより、楽曲インスタンスのコー
    ド進行を生成する連結手段(第3図のF9、F10、F8)
    と、 から成るコード進行生成装置。
  4. 【請求項4】請求項3に記載のコード進行生成装置にお
    いて、 前記構造選択手段は、 上位の階層レベルの音楽構造によって分類される、階層
    レベルの音楽構造のリストを前記音楽構造知識記憶手段
    から呼び出して出力する第1の出力手段(第1図の6、
    第11図の11−12〜11−22、第12図の12−17〜12−26、第
    13図の13−14〜13−23)と、 前記リストのなかからユーザーの選択した音楽構造を入
    力する第1の入力手段(第1図の5、第11図の11−23、
    第12図の12−27、第13図の13−24)と、 を有し、 前記ミニパターン生成手段は、 選択可能なミニパターンのリストを記憶するミニパター
    ン記憶手段(第2図の3D)と、 前記ミニパターン記憶手段から前記ミニパターンのリス
    トを呼び出して出力する第2の出力手段(第1図の6、
    第18図の18−1〜18−14)と、 前記ミニパターンのリストのなかからユーザーの選択し
    たミニパターンを入力する第2の入力手段(第1図の
    5、第18図の18−15)と、 を有することを特徴とするコード進行生成装置。
  5. 【請求項5】コード進行を生成するコード進行生成装置
    において、 音楽形式によって分類された楽節構造のファイルを記憶
    する楽節構造ファイル記憶手段(第2図の3A)と、 前記楽節構造によって分類された、各楽節に対する楽節
    開始と楽節終了の機能のファイルを記憶する楽節特徴フ
    ァイル記憶手段(第2図の3B)と、 コードパターンにおける各コードの音楽機能を表わす機
    能パターンのファイルを記憶する機能パターンファイル
    記憶手段(第2図の3C)と、 前記機能パターンによって分類されたコードパターンの
    ファイルを記憶するコードパターンファイル記憶手段
    (第2図の3D)と、 音楽形式を選択する形式選択手段(第3図のF1、第5図
    の5−6、第11図の11−2、11−3)と、 前記楽節構造ファイル記憶手段(第2図の3A)に、前記
    形式選択手段により選択された音楽形式に属するものと
    して記憶されたグループの楽節構造のなかから、1つの
    楽節構造を選択する楽節構造選択手段(第3図のF2、第
    5図の5−7、第11図の11−12〜11−23)と、 前記楽節特徴ファイル記憶手段(第2図の3B)に、前記
    楽節構造選択手段により選択された楽節構造に属するも
    のとして記憶されたグループの楽節開始と楽節終了の機
    能のなかから、各楽節に対する楽節開始と楽節終了の機
    能を選択する楽節特徴選択手段(第3図のF3、第5図の
    5−8、第12図の12−17〜12−27、第13図の13−14〜13
    −24)と、 前記機能パターンファイル記憶手段(第2図の3C)か
    ら、一度に1つずつ、機能パターンを選択する選択パタ
    ーン選択手段(第3図のF5、第16図の16−4〜16−14)
    と、 前記コードパターンファイル記憶手段(第2図の3D)
    に、前記機能パターンファイル記憶手段により選択され
    た機能パターンに属するものとして記憶されたグループ
    のコードパターンのなかから、1度に1つずつ、コード
    パターンを選択するコードパターン選択手段(第3図の
    F6、第18図の18−1〜18−15)と、 前記コードパターン選択手段の選択したコードパターン
    を連結して楽曲に対するコード進行を生成する連結手段
    (第3図のF8、第19図)と、 前記連結手段により生成されたコード進行に含まれる、
    楽曲の各楽節に対するコード進行の開始と終了時におけ
    るコードの機能(関連する機能パターンによって表現さ
    れる)がそれぞれ、前記楽節特徴選択手段の選択した楽
    節開始と楽節終了の機能と一致とするように、前記連結
    手段を制御する制御手段(第3図のF9、第17図)と、 から成るコード進行生成装置。
  6. 【請求項6】請求項5記載のコード進行生成装置におい
    て、前記楽節構造選択手段の選択した楽節構造に含まれ
    る複数の楽節が同様なタイプであり、前記楽節特徴選択
    手段がこの複数の楽節の各々に対して選択した楽節の開
    始、終了機能がこの複数の楽節の間で同じである場合、
    前記連結手段により生成されたコード進行が、この複数
    の楽節に対して同じコード進行をもつように前記連結手
    段を制御する反復制御手段(第3図のF10、第21図)を
    更に具備することを特徴とするコード進行生成装置。
  7. 【請求項7】コード進行を生成するコード進行生成装置
    において、 種々の楽曲について、複数の構造レベルにおける音楽階
    層構造を表現するデータベースを記憶する音楽構造デー
    タベース手段(第2図の3A、3B、第33図の150)と、 コードパターンのデータベースを記憶するコードパター
    ンデータベース手段(第2図の3C、3D、第33図の160)
    と、 前記音楽構造データベースと前記コードパターンデータ
    ベースからのデータ検索を含み、結果としてコード進行
    の生成をもたらす一連の対話動作においてユーザーとの
    対話を行うメニュー式インターアクティブ手段(第1図
    の1、2、5、6、第33図の100)とを備え、 前記メニュー式インターアクティブ手段が、 ユーザーに選択肢のリスト(第9図のPrisca( )、第
    11図のform( )、第15図のway( )、等)(そのな
    かからユーザーが1つの選択肢を選ぶ)を提示する問合
    せ手段(第1図の6、第12図12−19〜12−26、第13図の
    13−16〜13−23、第16図の16−6〜16−13、第33図の11
    0、等)と、 提示された選択肢のリストから選択された前記選択肢を
    入力するユーザー操作可能な入力手段(第1図の5、第
    12図12−27、第13図の13−24、第16図の16−14、第33図
    の120、等)と、 前記ユーザー操作可能な入力手段に応答し、前記選択肢
    に対応するジョブを実行して対話動作の1サイクルを完
    了させるジョブ実行手段(第1図の1と2、第13図の13
    −1〜13−3、第14図の14−1〜14−13、第16図の16−
    16〜16−29、第33図の130、等)と、 選択肢のリストを作成して次の対話動作のサイクルにお
    いて前記問合せ手段に該選択肢のリストをユーザーに提
    供させることによって該次の対話動作のサイクルを開始
    させる対話継続手段(第1図の1、2、第13図の13−1
    4、第16図の16−1〜16−4、第18図の18−1〜18−
    4、第33図の140、等)とを有し、前記問合せ手段、前
    記ユーザー操作可能な入力手段、前記ジョブ実行手段及
    び前記対話継続手段の組合せにより、一連の対話動作が
    行われるようにし、以って、前記コードパターンデータ
    ベース手段から選択した一連のコードパターンを含み、
    かつ前記音楽構造データベース手段から選択した音楽階
    層構造に適合した関係をもつコード進行が得られるよう
    にしたコード進行生成装置。
  8. 【請求項8】請求項7記載のコード進行生成装置におい
    て、前記選択肢のリストの代表例は、前記音楽構造デー
    タベース手段または前記コードパターンデータベース手
    段から選択したデータ項目のグループとともに以前に行
    われた対話動作のサイクルに対応するサイクルへの復帰
    選択肢(“1.RETURN":第12図の12−19、第13図の13−1
    6、第16図の16−6、等)を含み、以って、ユーザーと
    前記メニュー式インターアクティブ手段との間で対話が
    行きつ戻りつ行われることを特徴とするコード進行生成
    装置。
  9. 【請求項9】請求項7記載のコード進行生成装置におい
    て、前記選択肢のリストの代表例は前記音楽知識データ
    ベース手段または前記コードパターンデータベース手段
    から選択したデータ項目のグループとともに自動の選択
    肢(“2.AUTO":第12図の12−19、第13図の13−16、第16
    図の16−6、等)を含んでおり、ユーザーが前記ユーザ
    ー操作可能な入力手段により、前記自動の選択肢を選択
    入力した場合に、前記ジョブ実行手段がユーザーのため
    に前記データ項目のグループから1つのデータ項目を選
    択し(第13図の13−4〜13−7、第14図の14−4〜14−
    7、第16図の16−19〜16−22、等)、それに対応するジ
    ョブ(第13図の13−8〜13−13、第14図の14−8〜14−
    13、第16図の16−23〜16−29、等)を実行し、以って、
    コード進行の生成に対するユーザーの寄与を可変にし得
    ることを特徴とするコード進行生成装置。
  10. 【請求項10】コード進行を生成するコード進行生成装
    置において、 ユーザーに選択肢のリスト(そのなかからユーザーが1
    つの選択肢を選ぶ)を提示する問合せ手段(第1図の
    6、第12図の12−19〜12−26、第13図の13−16〜13−2
    3、第16図の16−6〜16−13、第33図の110、等)と、 提示された選択肢のリストから選択された選択肢を入力
    するユーザー操作可能な入力手段(第1図の5、第12図
    の12−27、第13図の13−24、第16図の16−14、第33図の
    120、等)と、 前記ユーザー操作可能な入力手段に応答し、前記選択肢
    によって特定されるジョブを実行して対話動作の1サイ
    クルを完了させるジョブ実行手段(第13図の13−1〜13
    −3、第14図の14−1〜14−13、第16図の16−16〜16−
    −29、第33図の130、等)と、 前記ジョブ実行手段に応答し、新たな選択肢のリストを
    作成して前記問合せ手段に次の対話動作のサイクルにお
    いて、この新たな選択肢リストをユーザーに提示させる
    ことにより、次の対話動作のサイクルを開始させる対話
    継続手段(第13図の13−14、第16図の16−1〜16−4、
    第18図の18−1〜18−4、第33図の140、等)とを具備
    し、以って、一連の対話動作が行われ、この一連の対話
    動作が対話動作の(諸)サイクルにおける前記ジョブ実
    行手段のくり返し動作によってなされる一連のジョブを
    含み、この一連のジョブの結果、コード進行が生成され
    るようにしたコード進行生成装置。
  11. 【請求項11】コード進行を生成するコード進行生成装
    置において、 複数のコードから構成されるコードパターンを発生する
    各コードパターン発生手段が複数の異なるコードパター
    ンを発生可能でかつ各コードパターン発生手段が互いに
    異なる種類のコードパターンを発生する複数のコードパ
    ターン発生手段(第15図の15−10、15−13、15−16)
    と、 前記複数のコードパターン発生手段から一度に1つのコ
    ードパターン発生手段を可変に選択するコードパターン
    発生手段選択手段(第15図の15−1〜15−3)と、 前記コードパターン発生手段選択手段により選択された
    コードパターン発生手段から一度に1つのコードパター
    ンを選択するコードパターン選択手段(第18図、第26
    図、第27図、第29図〜第31図)とを有し、 前記コードパターン発生手段選択手段と前記コードパタ
    ーン選択手段とによる選択の系列に従って特定されるコ
    ードパターンの列によってコード進行を生成することを
    特徴とするコード進行生成装置。
  12. 【請求項12】請求項11記載のコード進行生成装置にお
    いて、前記複数のコードパターン発生手段は各コードが
    次の後続コードに対して、トニック、ドミナント、サブ
    ドミナントのいずれかとして機能する比較的短いコード
    進行を生成する手段(第15図の15−10)を含むことを特
    徴とするコード進行生成装置。
  13. 【請求項13】請求項12記載のコード進行生成装置にお
    いて、前記複数のコードパターン発生手段は各コードが
    次の後続コードに対してドミナントコードとして働くド
    ミナントコード進行を生成するドミナント進行手段(第
    15図の15−16)を更に含むことを特徴とするコード進行
    生成装置。
  14. 【請求項14】請求項項13記載のコード進行生成装置に
    おいて、前記複数のコードパターン発生手段は各コード
    が次の後続コードに対してサブドミナントコードとして
    働くサブドミナントコード進行を生成するサブドミナン
    ト進行手段(第15図の15−13)を更に含むことを特徴と
    するコード進行生成装置。
  15. 【請求項15】楽曲を作曲する作曲機において、 ある楽曲に対する1以上の構造レベルにおける音楽構造
    を設定する音楽構造設定手段(第3図のF1、F2、F3)
    と、 可変のコードパターンを生成するコードパターン生成手
    段(第2図の3D、第3図のF6)と、 前記コードパターン生成手段の生成した前記コードパタ
    ーンを、前記音楽構造設定手段の設定した前記音楽構造
    に基づき、選択的に連結して前記楽曲のコード進行を得
    るコード進行生成手段(第3図のF8、F9、F10)と、 前記コード進行に基づき、前記楽曲のメロディを合成す
    るメロディ合成手段(第33図の200)と、 から成る作曲機。
  16. 【請求項16】楽曲のコード進行を生成するコード進行
    生成装置において、 複数のコードから構成されるコードパターンの集合体を
    表わすデータベースを記憶するコードパターンデータベ
    ース手段(第2図の3D、第35図の440、450)と、 前記コードパターンデータベース手段と動作上結合し、
    該コードパターンデータベース手段から複数のコードパ
    ターンを1度に1つずつ選択するコードパターン選択手
    段(第3図のF6、第34図の410、420、460、第36図の36
    −4)と、 前記コードパターン選択手段と動作上結合し、前記複数
    のコードパターンを連結して楽曲のコード進行を生成す
    る連結手段(第3図のF8、第34図の410、420、480、第3
    6図の36−9)と、 から成るコード進行生成装置。
  17. 【請求項17】コード進行を生成するコード進行生成装
    置において、 楽曲の少なくとも1つの部分に対し、ユーザーの指定し
    たコードを設定してコードを埋めるべき少なくとも1つ
    の空白部がその楽曲に残るようにしたコード設定手段
    (第3図のF3)と、 可変のコードパターンを生成するコードパターン生成手
    段(第2図の3D、第3図のF6)と、 前記少なくとも1つの空白部に前記可変のコードパター
    ンを選択的に適用することにより、該少なくとも1つの
    空白部にコードを埋めて前記楽曲に対するコード進行を
    完成する空白埋め手段(第3図のF8、F9)と、 から成るコード進行生成装置。
  18. 【請求項18】コード進行を生成するコード進行生成装
    置において、 楽曲において、互に同じコード進行をもつことになる複
    数のブロックを選択する反復ブロック選択手段(第3図
    のF2、F3)と、 可変のコードパターンを生成するコードパターン生成手
    段(第2図の3D、第3図のF6)と、 前記コードパターン生成手段の生成した前記コードパタ
    ーンを選択的に連結して楽曲のコード進行を生成する連
    結手段(第3図のF8)と、 前記連結手段の生成した楽曲のコード進行が、前記反復
    楽節選択手段の選択した前記複数のブロックのそれぞれ
    に対して同じコード進行をもつように前記連結手段を制
    御する反復制御手段(第3図のF10)と、 から成るコード進行生成装置。
  19. 【請求項19】コード進行を生成するコード進行生成装
    置において、 楽曲の少なくとも1つのレベルにおける音楽構造を設定
    する音楽構造設定手段(第3図のF1、F2、F3)と、 可変のコードパターンを生成するコードパターン生成手
    段(第2図の3D、第3図のF6)と、 前記コードパターン生成手段の生成した前記コードパタ
    ーンを、前記音楽構造設定手段の設定した前記音楽構造
    に基づいて、選択的に連結して前記楽曲のコード進行を
    得るコード進行形成手段(第3図のF8、F9、F10)と、 から成るコード進行生成装置。
  20. 【請求項20】請求項19記載のコード進行生成装置にお
    いて、 前記コードパターン発生手段は、コードパターンの集合
    体を表わすデータベースを記憶するコードパターンデー
    タベース手段(第2図の3D)と、 前記コードパターンデータベース手段に動作上結合して
    おり、該コードパターンデータベース手段から複数のコ
    ードパターンを1度に1つずつ選択するコードパターン
    選択手段(第3図のF6)と、 を有することを特徴とするコード進行生成装置。
  21. 【請求項21】コード進行を生成するコード進行生成装
    置において、 コードパターンのファイルを記憶するコードパターンフ
    ァイル手段(第34図の440)と、 前記コードパターンファイル手段の各コードパターンに
    対して、そのコードパターンに後続し得る次コードパタ
    ーン候補のセットを規定する次候補セット規定手段(第
    34図の450)と、 前記コードパターンファイル手段のコードパターンを前
    記次候補セット規定手段に従って連結してコード進行を
    得る連結手段(第34図の410、420、460、480、第36図の
    36−3〜36−9)と、 から成るコード進行生成装置。
  22. 【請求項22】請求項21記載のコード進行生成装置にお
    いて、 前記連結手段は、 前記コードパターンファイル手段内のコードパターンが
    生成中のコード進行における現コードパターンとして確
    定する都度、該現コードパターンに対して前記次候補セ
    ット規定手段により規定された次コードパターン候補の
    セットを前記コードパターンファイル手段から取り出
    し、表示装置(第34図の470)に表示する問合せ手段
    (第36図の36−3)と、 前記問合せ手段により取り出され、表示された前記セッ
    トのなかから候補を選択するユーザー操作可能な入力手
    段(第34図の460)を含み、その候補を前記現コードパ
    ターンに続く次コードパターンとして決定する次コード
    パターン決定手段(第36図の36−4〜36−7)と、 前記次コードパターン決定手段により決定された前記次
    コードパターンを前記コード進行に連結して該次コード
    パターンを連結後のコード進行における現コードパター
    ンとして確定するコード進行延長手段(第36図の36−
    9)と、 を有することを特徴とするコード進行生成装置。
  23. 【請求項23】請求項21記載のコード進行生成装置にお
    いて、前記連結手段はコード進行のコードパターンをひ
    とつずつ決定する決定手段を有し、該決定手段は、 生成済のコード進行の少なくとも一部の演奏に続いて、
    前記コードパターンファイル手段から次のコードパター
    ン候補として選択したコードパターンの演奏を行う自動
    演奏手段(第34図の410、420、510、第36図の36−5)
    と、 前記自動演奏手段の演奏に対するユーザーの応答とし
    て、演奏された前記次コードパターン候補が前記コード
    進行に新たに連結されるコードパターンとして決定され
    たかどうか示す応答を与えるユーザー操作可能な入力手
    段(第34図の460、第36図の36−6)と、 を有することを特徴とするコード進行生成装置。
  24. 【請求項24】コード進行を生成するコード進行生成装
    置において、 複数のノードとノード間を結んでノード間に階層的関係
    を規定する複数のリンクとを有し、前記複数のノードの
    それぞれが少なくとも1つのコードパターンを含み、各
    ノードにおける各コードパターンが前記複数のリンクの
    なかの関連するリンクを介して別のノードに結ばれてな
    るようにしたコードパターンの階層的ネットワークを記
    憶するコードパターンネットワーク手段(第45図、第34
    図の440、450)と、 前記階層的ネットワークの前記リンクによる案内に従っ
    て前記コードパターンネットワーク手段を探索しなが
    ら、探索したコードパターンを順次連結してコード進行
    を生成するネットワーク探索手段(第34図の410、第36
    図)と、 から成るコード進行生成装置。
  25. 【請求項25】コード進行の一部として用いるべきコー
    ドパターンを決定するコードパターン決定装置におい
    て、 コードパターンのデータベースを記憶するコードパター
    ンデータベース手段(第2図の3D、第35図の440、450、
    第45図)と、 前記コードパターンデータベース手段からコードパター
    ンを選択するコードパターン選択手段(第3図のF6、第
    34図の410、420、460、第36図の36−4)と、 前記コードパターン選択手段の選択したコードパターン
    を自動演奏する試聴手段(第34図の410、420、510、52
    0、第36図の36−5)と、 前記試聴手段の演奏に対するユーザーの応答として、演
    奏されたコードパターンの是否を示す応答を入力するユ
    ーザー操作可能な入力手段(第34図の460)と、 前記ユーザー操作可能な入力手段からの前記ユーザーの
    応答が是を示しているとき、前記試聴手段の演奏した前
    記コードパターンをコード進行の一部として決定する決
    定手段(第34図の410、420、第36図の36−7、36−9)
    と、 から成るコードパターン決定装置。
  26. 【請求項26】請求項25記載のコードパターン決定装置
    において、前記試聴手段は、前記コードパターン選択手
    段の選択したコードパターンの演奏に先立ち、前記コー
    ド進行の少なくとも一部を自動演奏することを特徴とす
    るコードパターン決定装置。
JP1235706A 1988-09-28 1989-09-13 コード進行生成装置、コードパターン決定装置及び作曲機 Expired - Fee Related JPH079587B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1235706A JPH079587B2 (ja) 1988-09-28 1989-09-13 コード進行生成装置、コードパターン決定装置及び作曲機

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP63-240660 1988-09-28
JP24066088 1988-09-28
JP1235706A JPH079587B2 (ja) 1988-09-28 1989-09-13 コード進行生成装置、コードパターン決定装置及び作曲機

Publications (2)

Publication Number Publication Date
JPH02160296A JPH02160296A (ja) 1990-06-20
JPH079587B2 true JPH079587B2 (ja) 1995-02-01

Family

ID=26532277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1235706A Expired - Fee Related JPH079587B2 (ja) 1988-09-28 1989-09-13 コード進行生成装置、コードパターン決定装置及び作曲機

Country Status (1)

Country Link
JP (1) JPH079587B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103436B2 (ja) * 1990-08-30 1994-12-14 カシオ計算機株式会社 コード進行選択装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5272213A (en) * 1975-12-12 1977-06-16 Nippon Gakki Seizo Kk Automatic accompaniment device for electronic musical instruments
JPS564187A (en) * 1979-06-25 1981-01-17 Nippon Musical Instruments Mfg Electronic musical instrument
JPS5913295A (ja) * 1982-07-15 1984-01-24 カシオ計算機株式会社 自動演奏装置におけるコード訂正装置
JPS60107080A (ja) * 1983-11-15 1985-06-12 株式会社東京コンピユーター・システム 作曲装置
JPS6380299A (ja) * 1986-09-22 1988-04-11 日本電気株式会社 自動編曲方式及び装置
JPS63192097A (ja) * 1987-02-05 1988-08-09 カシオ計算機株式会社 自動演奏装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5272213A (en) * 1975-12-12 1977-06-16 Nippon Gakki Seizo Kk Automatic accompaniment device for electronic musical instruments
JPS564187A (en) * 1979-06-25 1981-01-17 Nippon Musical Instruments Mfg Electronic musical instrument
JPS5913295A (ja) * 1982-07-15 1984-01-24 カシオ計算機株式会社 自動演奏装置におけるコード訂正装置
JPS60107080A (ja) * 1983-11-15 1985-06-12 株式会社東京コンピユーター・システム 作曲装置
JPS6380299A (ja) * 1986-09-22 1988-04-11 日本電気株式会社 自動編曲方式及び装置
JPS63192097A (ja) * 1987-02-05 1988-08-09 カシオ計算機株式会社 自動演奏装置

Also Published As

Publication number Publication date
JPH02160296A (ja) 1990-06-20

Similar Documents

Publication Publication Date Title
US5052267A (en) Apparatus for producing a chord progression by connecting chord patterns
US6297439B1 (en) System and method for automatic music generation using a neural network architecture
US6881888B2 (en) Waveform production method and apparatus using shot-tone-related rendition style waveform
US7750230B2 (en) Automatic rendition style determining apparatus and method
JP3484986B2 (ja) 自動作曲装置、自動作曲方法および記憶媒体
JPH11237881A (ja) 自動作曲装置と記録媒体
CN107301857A (zh) 一种给旋律自动配伴奏的方法及系统
CN1770258B (zh) 表演风格确定设备和方法
US6531652B1 (en) Method and apparatus for producing a waveform based on a style-of-rendition module
US6835886B2 (en) Tone synthesis apparatus and method for synthesizing an envelope on the basis of a segment template
US6365818B1 (en) Method and apparatus for producing a waveform based on style-of-rendition stream data
JPH09244648A (ja) 自動作曲機
JPH079587B2 (ja) コード進行生成装置、コードパターン決定装置及び作曲機
Laurson et al. From expressive notation to model-based sound synthesis: a case study of the acoustic guitar
JPH05181409A (ja) 自動作曲機
JPH0636151B2 (ja) 自動編曲方式及び装置
JP2615722B2 (ja) 自動作曲機
JP2615720B2 (ja) 自動作曲機
JP2002032079A (ja) 自動作曲装置及び方法並びに記憶媒体
JP3832421B2 (ja) 楽音生成装置及び方法
JP3760909B2 (ja) 楽音生成装置及び方法
JP3832422B2 (ja) 楽音生成装置及び方法
AU747557B2 (en) System and method for automatic music generation
Unemi A design of genetic encoding for breeding short musical pieces
JP3832419B2 (ja) 楽音生成装置及び方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090201

Year of fee payment: 14

LAPS Cancellation because of no payment of annual fees