JP3163654B2 - 自動伴奏装置 - Google Patents
自動伴奏装置Info
- Publication number
- JP3163654B2 JP3163654B2 JP18540991A JP18540991A JP3163654B2 JP 3163654 B2 JP3163654 B2 JP 3163654B2 JP 18540991 A JP18540991 A JP 18540991A JP 18540991 A JP18540991 A JP 18540991A JP 3163654 B2 JP3163654 B2 JP 3163654B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- chord
- key
- function
- accompaniment
- 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
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【産業上の利用分野】この発明は使用者から入力される
コード進行に従って伴奏を演奏する自動伴奏装置に関す
る。
コード進行に従って伴奏を演奏する自動伴奏装置に関す
る。
【0002】
【従来の技術】自動伴奏機能を有する電子楽器は既に知
られている。この種の電子楽器では鍵盤のような演奏入
力装置からキーコード(ノートナンバー)の組み合わせ
としてコードを順次指定してコード進行を入力する。電
子楽器内部には、コードセットの各コードの構成音をル
ート(コード根音)からの音程を示すようにして記憶す
るコード構成音メモリが設けられている。コードルート
/タイプ判別機能により、入力された複数のキーコード
(ノートナンバー)の1つをコードのルートと仮定して
残りのキーコードのルートからの音程を求め、コード構
成音メモリと比較可能な指定コード構成音データを生成
する。コードルート/タイプ判別機能は生成した指定コ
ード構成音データについてコード構成音メモリを検索す
る。指定コード構成音データとコード構成音メモリにお
けるあるコードタイプに対するコード構成音データとの
間での一致が発見されることによりコードのタイプとル
ートが識別される。このようにして、各コードをルート
とタイプで表現したコード進行が得られる。更に、電子
楽器内部には伴奏パターンを記憶する伴奏パターンメモ
リが設けられている。伴奏パターンは伴奏ラインの水平
(時間)情報と垂直(音高)情報とから成る。伴奏解読
機能により、識別したコードのタイプとルートに従っ
て、記憶された伴奏パターンの垂直情報(各伴奏音の垂
直データ)が具体的な音高(ピッチ)を示すデータに変
換される。
られている。この種の電子楽器では鍵盤のような演奏入
力装置からキーコード(ノートナンバー)の組み合わせ
としてコードを順次指定してコード進行を入力する。電
子楽器内部には、コードセットの各コードの構成音をル
ート(コード根音)からの音程を示すようにして記憶す
るコード構成音メモリが設けられている。コードルート
/タイプ判別機能により、入力された複数のキーコード
(ノートナンバー)の1つをコードのルートと仮定して
残りのキーコードのルートからの音程を求め、コード構
成音メモリと比較可能な指定コード構成音データを生成
する。コードルート/タイプ判別機能は生成した指定コ
ード構成音データについてコード構成音メモリを検索す
る。指定コード構成音データとコード構成音メモリにお
けるあるコードタイプに対するコード構成音データとの
間での一致が発見されることによりコードのタイプとル
ートが識別される。このようにして、各コードをルート
とタイプで表現したコード進行が得られる。更に、電子
楽器内部には伴奏パターンを記憶する伴奏パターンメモ
リが設けられている。伴奏パターンは伴奏ラインの水平
(時間)情報と垂直(音高)情報とから成る。伴奏解読
機能により、識別したコードのタイプとルートに従っ
て、記憶された伴奏パターンの垂直情報(各伴奏音の垂
直データ)が具体的な音高(ピッチ)を示すデータに変
換される。
【0003】この種の装置はコード進行における各コー
ドの機能を評価する能力を欠いている。一般に、音楽に
おいてコードのタイプとルートの情報のみから、そのコ
ードの区間で使用可能な音のピッチクラス(音高の種
類)のセットである調性を特定することはできない。例
えば、コードC MAJOR(コード構成音C、E、
G)について述べると、もし、このコードがI(トニッ
ク)の機能を有するのであれば、適合するピッチクラス
のセットとして、C、D、E、F、G、A、B(キーC
のイオニアンスケール)が望ましい。このコードC M
AJORが
ドの機能を評価する能力を欠いている。一般に、音楽に
おいてコードのタイプとルートの情報のみから、そのコ
ードの区間で使用可能な音のピッチクラス(音高の種
類)のセットである調性を特定することはできない。例
えば、コードC MAJOR(コード構成音C、E、
G)について述べると、もし、このコードがI(トニッ
ク)の機能を有するのであれば、適合するピッチクラス
のセットとして、C、D、E、F、G、A、B(キーC
のイオニアンスケール)が望ましい。このコードC M
AJORが
【外字1】 (ドミナント)の機能を有するのであれば、適合するピ
ッチクラスセットはC、D、E、F、G、A、B♭(キ
ーFのミクソリディアンスケール)である。コードC
MAJORが
ッチクラスセットはC、D、E、F、G、A、B♭(キ
ーFのミクソリディアンスケール)である。コードC
MAJORが
【外字2】 (サブドミナント)の機能を有するのであれば、C、
D、E、F♯、G、A、B(キーGのリディアンスケー
ル)がピッチクラスセットとして好ましい。即ち、音楽
的には、コードのタイプとルート及び機能が特定されな
い限り、好ましいピッチクラスセット(調性)を決定し
得ない。にもかかわらず、上述した装置はコード構成音
メモリのルートとタイプのみを使用して、伴奏パターン
を解読して伴奏音のピッチを決定する。したがって、自
動伴奏に好ましくないピッチ(高さ)の音が混ざって不
自然になる可能性がある。これを避けるには記憶される
伴奏パターンの垂直情報を例えばコード構成音のみを含
むように制限すればよいが、そうすると伴奏が単純なも
のになってしまう。
D、E、F♯、G、A、B(キーGのリディアンスケー
ル)がピッチクラスセットとして好ましい。即ち、音楽
的には、コードのタイプとルート及び機能が特定されな
い限り、好ましいピッチクラスセット(調性)を決定し
得ない。にもかかわらず、上述した装置はコード構成音
メモリのルートとタイプのみを使用して、伴奏パターン
を解読して伴奏音のピッチを決定する。したがって、自
動伴奏に好ましくないピッチ(高さ)の音が混ざって不
自然になる可能性がある。これを避けるには記憶される
伴奏パターンの垂直情報を例えばコード構成音のみを含
むように制限すればよいが、そうすると伴奏が単純なも
のになってしまう。
【0004】本件出願人に係る特願昭62−33359
5号にはコード進行の調性を判定する調性判定装置と調
性判定装置の結果を利用して伴奏を行う自動伴奏装置が
示されている。この調性判定装置はコード進行のコード
間の調性距離を評価アルゴリズムに従って評価すること
によって各コードの調性を判定している。原理上、この
調性判定装置は比較的信頼性の低い調性判定しかできな
い。
5号にはコード進行の調性を判定する調性判定装置と調
性判定装置の結果を利用して伴奏を行う自動伴奏装置が
示されている。この調性判定装置はコード進行のコード
間の調性距離を評価アルゴリズムに従って評価すること
によって各コードの調性を判定している。原理上、この
調性判定装置は比較的信頼性の低い調性判定しかできな
い。
【0005】調性判定装置と自動伴奏装置の別の例が特
開平2−29787号に示される。この調性判定装置は
与えられたコード進行の中から、特定のコードタイプパ
ターンと特定のルート差パターンをもつ部分を検索して
調を判定する。しかし、この調性判定装置ではコード進
行の先行する部分に対して既に判定した調を後続するコ
ードに対する調判定に利用したり参照したりすることは
決してない。したがって、転調(キーの変化)の検出が
遅れがちになる。このような遅れのために、コード進行
の一部では調が誤って判定されてしまう。このような調
性判定装置の応用である自動伴奏装置は既に述べた理由
から十分に満足のゆく伴奏を行い得ない。
開平2−29787号に示される。この調性判定装置は
与えられたコード進行の中から、特定のコードタイプパ
ターンと特定のルート差パターンをもつ部分を検索して
調を判定する。しかし、この調性判定装置ではコード進
行の先行する部分に対して既に判定した調を後続するコ
ードに対する調判定に利用したり参照したりすることは
決してない。したがって、転調(キーの変化)の検出が
遅れがちになる。このような遅れのために、コード進行
の一部では調が誤って判定されてしまう。このような調
性判定装置の応用である自動伴奏装置は既に述べた理由
から十分に満足のゆく伴奏を行い得ない。
【0006】最近、本件出願人は先行する調を手掛りに
して後続するコードの調を判定する調性判定装置を提案
している(特願平3−68922号、平成3年3月8日
出願)。この調性判定装置は後続するコードが先行する
調を維持するかどうかを確認する同一維持確認機能と、
後続するコードの調が先行する調に関係する調かどうか
を判定する転調検出機能を有している。したがって、こ
の調性判定装置はかなり正確にコード進行の各コードの
調性を判定することができ、特に近親調への転調は遅れ
なしに検出できる。しかし、現実の音楽における種々の
状況のすべてに満足のゆく対応ができるわけではない。
して後続するコードの調を判定する調性判定装置を提案
している(特願平3−68922号、平成3年3月8日
出願)。この調性判定装置は後続するコードが先行する
調を維持するかどうかを確認する同一維持確認機能と、
後続するコードの調が先行する調に関係する調かどうか
を判定する転調検出機能を有している。したがって、こ
の調性判定装置はかなり正確にコード進行の各コードの
調性を判定することができ、特に近親調への転調は遅れ
なしに検出できる。しかし、現実の音楽における種々の
状況のすべてに満足のゆく対応ができるわけではない。
【0007】現実の音楽のコード進行なかには、調性や
コード機能をはっきりと特定できないような部分を含む
ものがある。しかし、従来の調性判定装置はいずれもこ
のような判然としないコード進行部分はないとする誤っ
た前提に立ってコード進行を分析するか、あるいは、正
確な調性判定が困難なコード進行部分に対して、無理や
り特定の1つの調性を判定するように構成されている。
したがって、従来の調性判定装置はそのようなコード進
行部分に対する妥当な調性判定能力を明らかに欠いてい
る。妥当でない(局所的な)調性判定結果は前後の(正
しく判定された)調性に悪影響を及ぼし、音楽の調性の
全体的な流れに意図しない転調や欠陥をつくる。このよ
うな調性分析の不備はそれを利用する自動伴奏装置によ
って演奏される伴奏に必然的に現われる。
コード機能をはっきりと特定できないような部分を含む
ものがある。しかし、従来の調性判定装置はいずれもこ
のような判然としないコード進行部分はないとする誤っ
た前提に立ってコード進行を分析するか、あるいは、正
確な調性判定が困難なコード進行部分に対して、無理や
り特定の1つの調性を判定するように構成されている。
したがって、従来の調性判定装置はそのようなコード進
行部分に対する妥当な調性判定能力を明らかに欠いてい
る。妥当でない(局所的な)調性判定結果は前後の(正
しく判定された)調性に悪影響を及ぼし、音楽の調性の
全体的な流れに意図しない転調や欠陥をつくる。このよ
うな調性分析の不備はそれを利用する自動伴奏装置によ
って演奏される伴奏に必然的に現われる。
【0008】
【発明が解決しようとする課題】したがって、この発明
の目的は、調性の特定が困難なコード進行部分に対して
無理のない調性判定を行うことにより、調性の流れが自
然な伴奏を演奏可能にした自動伴奏装置が提供される。
の目的は、調性の特定が困難なコード進行部分に対して
無理のない調性判定を行うことにより、調性の流れが自
然な伴奏を演奏可能にした自動伴奏装置が提供される。
【0009】
【課題を解決するための手段、作用】この発明によれ
ば、各コードをルートとタイプで表現したコード進行を
付与するコード進行付与手段と、コード進行を分析する
ための知識ベースを記憶する知識記憶手段と、上記コー
ド進行付与手段から付与されたコード進行を上記知識ベ
ースに基づいて分析して各コードの機能名とキーノート
を判定する機能・キーノート判定手段と、分析されたコ
ード進行のなかで、上記機能・キーノート判定手段によ
り機能名とキーノートが特定された第1コードに対して
は、第1コードの区間において使用可能なピッチクラス
のセットを規定する第1調性データを、特定されたコー
ドの機能名とキーノートとに基づいて生成する第1調性
データ生成手段と、分析されたコード進行のなかで、上
記機能・キーノート判定手段により機能名とキーノート
が特定されなかった第2コードに対しては、第2コード
の区間において使用可能なピッチクラスのセットを規定
する第2調性データを、第2コードのルートとタイプに
基づいて生成する第2調性データ生成手段と、上記第1
調性データ生成手段に応答し、上記第1調性データに基
づいて上記第1コードの区間における伴奏を形成する第
1伴奏形成手段と、上記第2調性データ生成手段に応答
し、上記第2調性データに基づいて上記第2コードの区
間における伴奏を形成する第2伴奏形成手段とを有し、
更に、上記第2調性データ生成手段は、機能名とキーノ
ートが特定されなかったコードの区間において使用可能
なピッチクラスのセットを、そのコードがとり得る複数
の機能名とキーノートの可能性に対して共通して使用可
能なピッチクラスセットによって規定する手段を有する
ことを特徴とする自動伴奏装置が提供される。
ば、各コードをルートとタイプで表現したコード進行を
付与するコード進行付与手段と、コード進行を分析する
ための知識ベースを記憶する知識記憶手段と、上記コー
ド進行付与手段から付与されたコード進行を上記知識ベ
ースに基づいて分析して各コードの機能名とキーノート
を判定する機能・キーノート判定手段と、分析されたコ
ード進行のなかで、上記機能・キーノート判定手段によ
り機能名とキーノートが特定された第1コードに対して
は、第1コードの区間において使用可能なピッチクラス
のセットを規定する第1調性データを、特定されたコー
ドの機能名とキーノートとに基づいて生成する第1調性
データ生成手段と、分析されたコード進行のなかで、上
記機能・キーノート判定手段により機能名とキーノート
が特定されなかった第2コードに対しては、第2コード
の区間において使用可能なピッチクラスのセットを規定
する第2調性データを、第2コードのルートとタイプに
基づいて生成する第2調性データ生成手段と、上記第1
調性データ生成手段に応答し、上記第1調性データに基
づいて上記第1コードの区間における伴奏を形成する第
1伴奏形成手段と、上記第2調性データ生成手段に応答
し、上記第2調性データに基づいて上記第2コードの区
間における伴奏を形成する第2伴奏形成手段とを有し、
更に、上記第2調性データ生成手段は、機能名とキーノ
ートが特定されなかったコードの区間において使用可能
なピッチクラスのセットを、そのコードがとり得る複数
の機能名とキーノートの可能性に対して共通して使用可
能なピッチクラスセットによって規定する手段を有する
ことを特徴とする自動伴奏装置が提供される。
【0010】この構成の場合、コード進行のコードのな
かで、機能名とキーノートを特定できたコード(第1コ
ード)に対しては、特定した機能名とキーノートとに基
づいてそのコードの区間で使用可能なピッチクラスセッ
トを決定することにより、狭い(特定の調性を明確にす
る)調性解釈を行い、この狭い調性解釈結果を基にして
そのコード区間での伴奏を形成する。一方、機能名とキ
ーノートを特定できなかった、コード進行中のコード
(第2コード)に対しては、そのコードのタイプとルー
トとに基づいてそのコード区間で使用可能なピッチクラ
スセットを決定することにより、狭い調性解釈ではなく
広い(複数の調性の可能性を許容するような)調性解釈
を行い、この広い調性解釈結果に基づいてそのコードで
の伴奏を形成する。したがって、分析したコード進行に
調性の特定が困難な部分が含まれるような場合にも、調
性の流れが自然で、音楽の意図しない、間違った転調が
ない伴奏を提供することができる。
かで、機能名とキーノートを特定できたコード(第1コ
ード)に対しては、特定した機能名とキーノートとに基
づいてそのコードの区間で使用可能なピッチクラスセッ
トを決定することにより、狭い(特定の調性を明確にす
る)調性解釈を行い、この狭い調性解釈結果を基にして
そのコード区間での伴奏を形成する。一方、機能名とキ
ーノートを特定できなかった、コード進行中のコード
(第2コード)に対しては、そのコードのタイプとルー
トとに基づいてそのコード区間で使用可能なピッチクラ
スセットを決定することにより、狭い調性解釈ではなく
広い(複数の調性の可能性を許容するような)調性解釈
を行い、この広い調性解釈結果に基づいてそのコードで
の伴奏を形成する。したがって、分析したコード進行に
調性の特定が困難な部分が含まれるような場合にも、調
性の流れが自然で、音楽の意図しない、間違った転調が
ない伴奏を提供することができる。
【0011】
【0012】コード進行中のコードがとり得る機能名と
キーノートが複数ある場合には、この複数の可能性に対
して共通して使用可能なピッチクラスセットをそのコー
ドの区間におけるピッチクラスセットとして決定するの
が好ましい。例えば、コード進行の最初のコードである
Cメジャー(ルート=C、タイプ=メジャー)に対する
機能名・キーノート判定手段の結果が3つの可能性、す
なわち、 第1の可能性として機能名“
キーノートが複数ある場合には、この複数の可能性に対
して共通して使用可能なピッチクラスセットをそのコー
ドの区間におけるピッチクラスセットとして決定するの
が好ましい。例えば、コード進行の最初のコードである
Cメジャー(ルート=C、タイプ=メジャー)に対する
機能名・キーノート判定手段の結果が3つの可能性、す
なわち、 第1の可能性として機能名“
【外字3】 メジャー”とキーノート“C”、 第2の可能性として機能名“
【外字1】メジャー”とキーノート“F”、 第3の可能性として機能名“
【外字2】メジャー”とキーノート“G”、 を示したとする。第1の可能性に対して使用可能なピッ
チクラスセット(調性)を“C、D、E、F、G、A、
B”とし、第2の可能性に対して使用可能なピッチクラ
スセット(調性)を“C、D、E、F、G、A、B♭”
とし、第3の可能性に対して使用可能なピッチクラスセ
ット(調性)を“C、D、E、F#、G、A、B”とす
る。この3つの可能性のすべてに共通して使用可能なピ
ッチクラは“C、D、E、G、A”である。したがって
コード進行の最初のコードCメジャーに対して使用可能
なピッチクラスセットは“C、D、E、G、A”とな
る。このピッチクラスセット“C、D、E、G、A”は
上記3つの調性の共通ピッチクラスであるので最初のコ
ードCメジャーに後続するコードの区間の調がC、F、
Gのいずれであっても、その調性を損わないように働
く。
チクラスセット(調性)を“C、D、E、F、G、A、
B”とし、第2の可能性に対して使用可能なピッチクラ
スセット(調性)を“C、D、E、F、G、A、B♭”
とし、第3の可能性に対して使用可能なピッチクラスセ
ット(調性)を“C、D、E、F#、G、A、B”とす
る。この3つの可能性のすべてに共通して使用可能なピ
ッチクラは“C、D、E、G、A”である。したがって
コード進行の最初のコードCメジャーに対して使用可能
なピッチクラスセットは“C、D、E、G、A”とな
る。このピッチクラスセット“C、D、E、G、A”は
上記3つの調性の共通ピッチクラスであるので最初のコ
ードCメジャーに後続するコードの区間の調がC、F、
Gのいずれであっても、その調性を損わないように働
く。
【0013】なお、本書において、コード機能名または
単に機能名とはコード機能とコードタイプとの組み合わ
せのことをいう。
単に機能名とはコード機能とコードタイプとの組み合わ
せのことをいう。
【0014】
【0015】
【実施例】以下、図面を参照してこの発明を更に詳細に
説明する。図1(A)〜(E)にこの発明の特徴を組み
込んだ自動伴奏装置を示す。本自動伴奏装置は、大きく
分けて調性判定装置と伴奏形成装置とから成る。図1
(A)に10として調性判定装置を機能ブロック図で示
している。
説明する。図1(A)〜(E)にこの発明の特徴を組み
込んだ自動伴奏装置を示す。本自動伴奏装置は、大きく
分けて調性判定装置と伴奏形成装置とから成る。図1
(A)に10として調性判定装置を機能ブロック図で示
している。
【0016】調性判定装置10の目的はルートとタイプ
で各コードを表現したコード進行に基づき、各コードの
区間(音楽時間)において使用可能なピッチクラス(音
高の種類)のセット(集合)を定める調性データ(TO
NALITYデータ)を生成することである。調性判定
装置10は、主な要素として、コード進行入力装置2
0、キー/機能進行抽出部(30、40、50〜52か
ら成る)、コード進行知識データベース60、及び調性
データ生成部70を含む。コード進行入力装置20は、
各コードをルートとタイプとで規定したコード進行を付
与する。キー/機能進行抽出部はコード進行入力装置2
0からのコード進行における各コードが示唆するキーノ
ートとコードの機能をコード進行知識データベース60
に記憶される音楽知識に基づいて判定してコード進行に
適合するキーノート進行と機能進行を抽出する。調性デ
ータ生成部70はキー/機能進行抽出部からのキーノー
ト進行と機能進行に応答し、コード進行の各コードの区
間で使用可能なピッチクラスセットを表わす調性データ
を生成する。
で各コードを表現したコード進行に基づき、各コードの
区間(音楽時間)において使用可能なピッチクラス(音
高の種類)のセット(集合)を定める調性データ(TO
NALITYデータ)を生成することである。調性判定
装置10は、主な要素として、コード進行入力装置2
0、キー/機能進行抽出部(30、40、50〜52か
ら成る)、コード進行知識データベース60、及び調性
データ生成部70を含む。コード進行入力装置20は、
各コードをルートとタイプとで規定したコード進行を付
与する。キー/機能進行抽出部はコード進行入力装置2
0からのコード進行における各コードが示唆するキーノ
ートとコードの機能をコード進行知識データベース60
に記憶される音楽知識に基づいて判定してコード進行に
適合するキーノート進行と機能進行を抽出する。調性デ
ータ生成部70はキー/機能進行抽出部からのキーノー
ト進行と機能進行に応答し、コード進行の各コードの区
間で使用可能なピッチクラスセットを表わす調性データ
を生成する。
【0017】この実施例の特徴に従い、キー/機能進行
抽出部は、先行する区間のキーノートを手掛りとして後
続するコードのキーノートと機能を判定する第1判定部
30と、先行するキーノートを手掛りとすることなく後
続するコードと先行するコードとが形成するコードパタ
ーンを分析して後続するコードの機能とキーノートを判
定する第2判定部40を含む。図1(A)では、先行す
るキーノートを「現キーノート」と呼び、後続するコー
ドをコード進行からの「新コード」と呼んでいる。以
下、これらの用語を用いて説明する。
抽出部は、先行する区間のキーノートを手掛りとして後
続するコードのキーノートと機能を判定する第1判定部
30と、先行するキーノートを手掛りとすることなく後
続するコードと先行するコードとが形成するコードパタ
ーンを分析して後続するコードの機能とキーノートを判
定する第2判定部40を含む。図1(A)では、先行す
るキーノートを「現キーノート」と呼び、後続するコー
ドをコード進行からの「新コード」と呼んでいる。以
下、これらの用語を用いて説明する。
【0018】現キーノートを表わすデータは現キーノー
トメモリ51に記憶される。現キーノートメモリ51の
内容は、第1判定部30または第3判定部41により新
たなキーノートが検出される都度、キーノート更新部5
2を介して更新される。
トメモリ51に記憶される。現キーノートメモリ51の
内容は、第1判定部30または第3判定部41により新
たなキーノートが検出される都度、キーノート更新部5
2を介して更新される。
【0019】第1判定部30は、現キーノートが判明
(確定)している場合に動作し、現キーノートメモリ5
1からのキーノートとコード進行知識データベース60
からの音楽知識とに基づき、コード進行入力装置20か
らの新コードのキーノートと機能を判定する。
(確定)している場合に動作し、現キーノートメモリ5
1からのキーノートとコード進行知識データベース60
からの音楽知識とに基づき、コード進行入力装置20か
らの新コードのキーノートと機能を判定する。
【0020】一方、第2判定部40は、現キーノートが
不明な場合(存在しない場合を含む)や、第1判定部3
0の判定が失敗した場合(特定のキーノート、機能を判
定できなかった場合)に動作し、コード進行入力装置2
0からの新コードとそれに先行するコードとによって形
成されるコードパターンをコード進行知識データベース
60の音楽知識に従って分析して新コードのキーノート
と機能を判定する。
不明な場合(存在しない場合を含む)や、第1判定部3
0の判定が失敗した場合(特定のキーノート、機能を判
定できなかった場合)に動作し、コード進行入力装置2
0からの新コードとそれに先行するコードとによって形
成されるコードパターンをコード進行知識データベース
60の音楽知識に従って分析して新コードのキーノート
と機能を判定する。
【0021】現キーノートが確定しているか未確定(保
留)であるかの情報を記憶するために、キー保留フラグ
50を設けている。キー保留フラグ50はコード進行の
分析開始時にリセット状態(現キーノートがないことを
表わす)に初期化され、第2判定部40により特定のキ
ーノートが検出されるとセットされて現キーノートが確
定したことを表わす。いったんセット状態(キー確定状
態)になった後も、第1判定部30と第2判定部40の
いずれも、コード進行の後続コードである新コードのキ
ーノートを特定できなかったときは再びキー保留状態に
リセットされて現キーノートが不明であることを表わ
す。
留)であるかの情報を記憶するために、キー保留フラグ
50を設けている。キー保留フラグ50はコード進行の
分析開始時にリセット状態(現キーノートがないことを
表わす)に初期化され、第2判定部40により特定のキ
ーノートが検出されるとセットされて現キーノートが確
定したことを表わす。いったんセット状態(キー確定状
態)になった後も、第1判定部30と第2判定部40の
いずれも、コード進行の後続コードである新コードのキ
ーノートを特定できなかったときは再びキー保留状態に
リセットされて現キーノートが不明であることを表わ
す。
【0022】第1判定部30は、コード進行知識データ
ベース60の同一キーノート維持コードテーブル61に
記憶される音楽知識に従いコード進行入力装置20から
の新コードが現キーノートを維持するかどうかを判定す
る調維持判定能力を有する。ここに、同一キーノート維
持コードテーブル61はキーノートを同一に維持するコ
ードのセットを記憶する。記憶容量を節約するため、同
一キーノート維持コードテーブル61の各コードエント
リは、キーノートとコードルートとコードタイプとの組
合せによる表現形式ではなく、機能名の形式、即ち、コ
ード機能とコードタイプとの組合せによる形式をとるの
が好ましい。この場合、第1判定部30内の調維持判定
手段は、図示のように、機能生成部31と調維持検索部
32とで構成できる。機能生成部31は、コード進行入
力装置からの新コードを現キーノートメモリ51にある
現キーノートによって評価して新コードの機能を生成す
る。調維持検索部32は、生成された機能と(コード進
行入力装置20から与えられた)新コードのタイプとか
らなる新コードの機能名をもつコードエントリを同一キ
ーノート維持コードテーブル61から検索する。検索に
より、新コードの機能名と一致するコードエントリが見
つかった場合(33)は、機能生成部31での仮定、す
なわち、現キーノートを新コード区間におけるキーノー
トとみなした仮定が正しかったことになる。これが成立
する場合は、新コードの機能名(タイプと機能)とキー
ノートが調性データ生成部70に渡され、ここで新コー
ドの区間で使用可能なピッチクラスセットを表わす調性
データが生成される。
ベース60の同一キーノート維持コードテーブル61に
記憶される音楽知識に従いコード進行入力装置20から
の新コードが現キーノートを維持するかどうかを判定す
る調維持判定能力を有する。ここに、同一キーノート維
持コードテーブル61はキーノートを同一に維持するコ
ードのセットを記憶する。記憶容量を節約するため、同
一キーノート維持コードテーブル61の各コードエント
リは、キーノートとコードルートとコードタイプとの組
合せによる表現形式ではなく、機能名の形式、即ち、コ
ード機能とコードタイプとの組合せによる形式をとるの
が好ましい。この場合、第1判定部30内の調維持判定
手段は、図示のように、機能生成部31と調維持検索部
32とで構成できる。機能生成部31は、コード進行入
力装置からの新コードを現キーノートメモリ51にある
現キーノートによって評価して新コードの機能を生成す
る。調維持検索部32は、生成された機能と(コード進
行入力装置20から与えられた)新コードのタイプとか
らなる新コードの機能名をもつコードエントリを同一キ
ーノート維持コードテーブル61から検索する。検索に
より、新コードの機能名と一致するコードエントリが見
つかった場合(33)は、機能生成部31での仮定、す
なわち、現キーノートを新コード区間におけるキーノー
トとみなした仮定が正しかったことになる。これが成立
する場合は、新コードの機能名(タイプと機能)とキー
ノートが調性データ生成部70に渡され、ここで新コー
ドの区間で使用可能なピッチクラスセットを表わす調性
データが生成される。
【0023】更に、第1判定部30は、同一キーノート
維持コードテーブルに、現キーノートで評価した機能を
有する新コードに相当するコードが含まれない場合に、
転調の可能性を調べる転調判別手段を備えている。転調
判別手段は、コード進行知識データベース60の転調コ
ードシーケンステーブルに記憶される音楽知識に従っ
て、新コードとそれに先行するコードとによって形成さ
れるコードパターンが現キーノートからそれに関係する
キーノートへの転調を示唆するかどうかを判別する。こ
の目的のため、転調コードシーケンステーブル62は関
係キーノートへの転調を示唆するコードシーケンスのセ
ットを記憶する。テーブル62の各転調コードシーケン
スエントリは種々の形式で表現できる。一形式におい
て、各転調コードシーケンスエントリは、ピボットコー
ドとピボットコードに後続する転調後のコードを含み、
ピボットコードは転調前の機能名と関係キーノートへの
転調後の機能名とによって表現され、転調後のコードは
転調後の機能名によって表現される。この場合、転調判
定手段は図1(A)に示す関係キーノート生成部34、
機能生成部35、転調検索部36によって構成できる。
関係キーノート生成部34は現キーノートメモリ51に
ある現キーノートに関係するキーノート(関係キーノー
ト)を生成する。好ましくは、関係キーノート生成部3
4は複数の関係キーノートを生成する。機能生成部35
は関係キーノートと新コードとを受け、各々の関係キー
ノートで評価した新コードの機能を生成する。更に機能
生成部35は新コードに先行するコード(直前コード)
を現キーノートで評価した機能と、直前コードを各関係
キーノートで評価した機能を生成する。機能生成部35
で生成されたこれらの機能は新コードのタイプと直前コ
ードのタイプ、各関係キーノートのデータとともに転調
検索部36に入力される。転調検索部36は、関係キー
ノート別の入力データ(現キーノートでそれぞれ評価し
た直前コードの機能名及び現キーノートで評価した新コ
ードの機能名)と一致する転調コードシーケンスエント
リを転調コードシーケンステーブル62から検索する。
ある関係キーノートについて、転調コードシーケンステ
ーブル62がそのような転調コードシーケンスを含むな
ら、(37)、直前コードと新コードとから成るコード
パターンによって、現キーノートから上記関係キーノー
トへの転調が示唆されていることになり、機能生成部3
5で生成した新コードの関係キーノートから見た機能
は、新コードの正しい機能を表わしていることになる。
これが成立する場合、関係キーノート、新コードのタイ
プ及び関係キーノートで評価した新コードの機能が調性
データ生成部70に渡され、ここで、新コードの区間に
おいて使用可能なピッチクラスセットを表わす調性デー
タが生成される。また、関係キーノートはキーノート更
新部52にも渡され、キーノート更新部52により、現
キーノートメモリ51は関係キーノートに更新される。
維持コードテーブルに、現キーノートで評価した機能を
有する新コードに相当するコードが含まれない場合に、
転調の可能性を調べる転調判別手段を備えている。転調
判別手段は、コード進行知識データベース60の転調コ
ードシーケンステーブルに記憶される音楽知識に従っ
て、新コードとそれに先行するコードとによって形成さ
れるコードパターンが現キーノートからそれに関係する
キーノートへの転調を示唆するかどうかを判別する。こ
の目的のため、転調コードシーケンステーブル62は関
係キーノートへの転調を示唆するコードシーケンスのセ
ットを記憶する。テーブル62の各転調コードシーケン
スエントリは種々の形式で表現できる。一形式におい
て、各転調コードシーケンスエントリは、ピボットコー
ドとピボットコードに後続する転調後のコードを含み、
ピボットコードは転調前の機能名と関係キーノートへの
転調後の機能名とによって表現され、転調後のコードは
転調後の機能名によって表現される。この場合、転調判
定手段は図1(A)に示す関係キーノート生成部34、
機能生成部35、転調検索部36によって構成できる。
関係キーノート生成部34は現キーノートメモリ51に
ある現キーノートに関係するキーノート(関係キーノー
ト)を生成する。好ましくは、関係キーノート生成部3
4は複数の関係キーノートを生成する。機能生成部35
は関係キーノートと新コードとを受け、各々の関係キー
ノートで評価した新コードの機能を生成する。更に機能
生成部35は新コードに先行するコード(直前コード)
を現キーノートで評価した機能と、直前コードを各関係
キーノートで評価した機能を生成する。機能生成部35
で生成されたこれらの機能は新コードのタイプと直前コ
ードのタイプ、各関係キーノートのデータとともに転調
検索部36に入力される。転調検索部36は、関係キー
ノート別の入力データ(現キーノートでそれぞれ評価し
た直前コードの機能名及び現キーノートで評価した新コ
ードの機能名)と一致する転調コードシーケンスエント
リを転調コードシーケンステーブル62から検索する。
ある関係キーノートについて、転調コードシーケンステ
ーブル62がそのような転調コードシーケンスを含むな
ら、(37)、直前コードと新コードとから成るコード
パターンによって、現キーノートから上記関係キーノー
トへの転調が示唆されていることになり、機能生成部3
5で生成した新コードの関係キーノートから見た機能
は、新コードの正しい機能を表わしていることになる。
これが成立する場合、関係キーノート、新コードのタイ
プ及び関係キーノートで評価した新コードの機能が調性
データ生成部70に渡され、ここで、新コードの区間に
おいて使用可能なピッチクラスセットを表わす調性デー
タが生成される。また、関係キーノートはキーノート更
新部52にも渡され、キーノート更新部52により、現
キーノートメモリ51は関係キーノートに更新される。
【0024】第1判定部30において新コードに対する
キーノートと機能の判定が失敗に終った場合(調維持検
索部32と転調検索部37の検索により各々の入力デー
タと一致するエントリが同一キーノート維持コードテー
ブル61、転調コードシーケンステーブルにないことが
判明した場合)、新コードに対するキー/機能判定のタ
スクは第2判定部40に引き継がれる。さらに、第2判
定部40は現キーノートが不明なときにも新コードに対
するキー/機能判定のタスクを受けもつ。
キーノートと機能の判定が失敗に終った場合(調維持検
索部32と転調検索部37の検索により各々の入力デー
タと一致するエントリが同一キーノート維持コードテー
ブル61、転調コードシーケンステーブルにないことが
判明した場合)、新コードに対するキー/機能判定のタ
スクは第2判定部40に引き継がれる。さらに、第2判
定部40は現キーノートが不明なときにも新コードに対
するキー/機能判定のタスクを受けもつ。
【0025】第2判定部40は現キーノートの情報にた
よることなく、コード進行知識データベース60の調確
立コードシーケンステーブル63に記憶される音楽知識
に従って、新コードとそれに先行するコードとによって
形成されるコードパターンが特定のキーノートの確立を
示唆するかどうかを判定する。この目的のため、調確立
コードシーケンステーブル63は、キーノートないし調
を確立するコードシーケンス(調確立コードシーケン
ス)のセットを記憶する。テーブル63にエントリされ
る各調確立コードシーケンスは、例えば次のような表現
形式をもつ。コードシーケンスの最後のコードはコード
シーケンスが確立するキーノートで評価した機能名(機
能とタイプ)で表現され、最後のコードに先行するコー
ドはそのコードのタイプとそのコードのルートの直後の
コードのルートからの音程(ルート差)とによって表現
される。この表現形式の調確立コードシーケンステーブ
ル63わ採用した場合、第2判定部40はルート差算出
部41と調確立検索部42とで構成できる。ルート差算
出部41はコード進行入力装置20からの分析すべきコ
ードパターン、即ち新コードとそれに先行する1以上の
コードとから成るコードパターンにおける隣り合うコー
ド間のルート差を算出する。この結果、新コードをパタ
ーンの最後のコードとする分析コードパターンは、タイ
プのパターンとルート差のパターンとによって表現しな
おされたことになる。調確立検索部42は、このような
分析コードパターンをもつ調確立コードシーケンスを調
確立コードシーケンステーブル63から検索する。その
ような調確立コードシーケンスのエントリがテーブル6
3にあれば(43)、新コードを末尾とする分析コード
パターンはキーノートを確立するものであり、確立され
るキーノートの種類は、見つけ出した調確立コードシー
ケンスから与えられる最後のコードの機能とコード進行
入力装置20から与えられる新コードのルートとから特
定される。即ち、キーノートからのルートの音程を機能
の値とするキーノートが分析コードパターンによって確
立されるキーノートである。
よることなく、コード進行知識データベース60の調確
立コードシーケンステーブル63に記憶される音楽知識
に従って、新コードとそれに先行するコードとによって
形成されるコードパターンが特定のキーノートの確立を
示唆するかどうかを判定する。この目的のため、調確立
コードシーケンステーブル63は、キーノートないし調
を確立するコードシーケンス(調確立コードシーケン
ス)のセットを記憶する。テーブル63にエントリされ
る各調確立コードシーケンスは、例えば次のような表現
形式をもつ。コードシーケンスの最後のコードはコード
シーケンスが確立するキーノートで評価した機能名(機
能とタイプ)で表現され、最後のコードに先行するコー
ドはそのコードのタイプとそのコードのルートの直後の
コードのルートからの音程(ルート差)とによって表現
される。この表現形式の調確立コードシーケンステーブ
ル63わ採用した場合、第2判定部40はルート差算出
部41と調確立検索部42とで構成できる。ルート差算
出部41はコード進行入力装置20からの分析すべきコ
ードパターン、即ち新コードとそれに先行する1以上の
コードとから成るコードパターンにおける隣り合うコー
ド間のルート差を算出する。この結果、新コードをパタ
ーンの最後のコードとする分析コードパターンは、タイ
プのパターンとルート差のパターンとによって表現しな
おされたことになる。調確立検索部42は、このような
分析コードパターンをもつ調確立コードシーケンスを調
確立コードシーケンステーブル63から検索する。その
ような調確立コードシーケンスのエントリがテーブル6
3にあれば(43)、新コードを末尾とする分析コード
パターンはキーノートを確立するものであり、確立され
るキーノートの種類は、見つけ出した調確立コードシー
ケンスから与えられる最後のコードの機能とコード進行
入力装置20から与えられる新コードのルートとから特
定される。即ち、キーノートからのルートの音程を機能
の値とするキーノートが分析コードパターンによって確
立されるキーノートである。
【0026】調確立検索部42の検索の成功により、新
コードの機能とキーノートを特定できた場合、第2判定
部40は、キーが確立したことを示すためキー保留フラ
グ50をセットする。更に、第2判定部40はキーノー
ト更新部52を介して弦キーノートメモリ51を新たに
確定したキーノートに更新する。更に、第2判定部40
の判定された新コードの機能とキーノートは新コードの
タイプの情報とともに調性データ生成部70に渡され、
ここで新コードの区間で使用可能なピッチクラスセット
が決定される。
コードの機能とキーノートを特定できた場合、第2判定
部40は、キーが確立したことを示すためキー保留フラ
グ50をセットする。更に、第2判定部40はキーノー
ト更新部52を介して弦キーノートメモリ51を新たに
確定したキーノートに更新する。更に、第2判定部40
の判定された新コードの機能とキーノートは新コードの
タイプの情報とともに調性データ生成部70に渡され、
ここで新コードの区間で使用可能なピッチクラスセット
が決定される。
【0027】一方、調確立検索部42の検索の失敗によ
り新コードの機能とキーノートを特定できなかった場
合、第2判定部40はキーが不明になったことを示すた
め、キー保留フラグ50をリセットする。この場合、調
性データ生成部70は以下に述べる方法により新コード
の区間で使用可能なピッチクラスセットを規定する調性
データを生成する。
り新コードの機能とキーノートを特定できなかった場
合、第2判定部40はキーが不明になったことを示すた
め、キー保留フラグ50をリセットする。この場合、調
性データ生成部70は以下に述べる方法により新コード
の区間で使用可能なピッチクラスセットを規定する調性
データを生成する。
【0028】この実施例の特徴に従い、調性データ生成
部70は、(第1判定部30と第2判定部40を含む)
キー/機能判定手段により新コードの機能とキーノート
が特定できた場合は第1の方法で(狭い調性解釈によ
り)新コードの区間で使用可能なピッチクラスセットを
規定する調性データを生成し、新コードの機能とキーノ
ートが特定できなかった場合には第1の方法とは異なる
第2の方法で(広い調性解釈により)新コードの区間で
使用可能なピッチクラスセットを規定するデータを生成
する。
部70は、(第1判定部30と第2判定部40を含む)
キー/機能判定手段により新コードの機能とキーノート
が特定できた場合は第1の方法で(狭い調性解釈によ
り)新コードの区間で使用可能なピッチクラスセットを
規定する調性データを生成し、新コードの機能とキーノ
ートが特定できなかった場合には第1の方法とは異なる
第2の方法で(広い調性解釈により)新コードの区間で
使用可能なピッチクラスセットを規定するデータを生成
する。
【0029】キー/機能判定手段の判定により新コード
の機能とキーノートが特定できたかどうかを知るため
に、調性データ生成部70はキー保留フラグ50の状態
を読む。セット状態(キー保留解除状態)であれば、機
能とキーノートは特定されており、リセット状態(キー
保留状態)であれば特定されていない。“キー保留解除
状態”のとき、調性データ生成部70は第1判定部30
または第2判定部40で特定された新コード機能とキー
ノート、及びコード進行入力装置20から与えられる新
コードのタイプとに基づいて新コードの区間で使用可能
なピッチクラスセットを決定する。なお、新コードの機
能とキーノートとタイプとの組み合わせの代りにこれと
等価な組み合わせに基づいて使用可能なピッチクラスセ
ットを決定してもよい。一般化すると、調性データ生成
部70は新コードの機能とルートとキーノートのうち少
なくとも2つ(例えば新コードの機能とルート)と、新
コードのタイプとの組み合わせから使用可能なピッチク
ラスセットを決定することができる。このようなピッチ
クラスセットは上記の組み合わせに適したものであり、
それを用いた旋律は調性を明確にするように働く。この
ようなピッチクラスセットを得るため、調性データ生成
部70に機能名/スケール変換テーブル71を設け、新
コードの機能名(機能とタイプの組み合わせ)をスケー
ルに変換するのが好ましい。使用可能なピッチクラスセ
ットは機能名を変換したスケールとキーノートとの組み
合わせにより規定される(テーブル71内のスケールの
開始音である基音がキーノートから所定音程をもつとし
て定義されている場合)。あるいは変換されたスケール
と新コードのルートとの組み合わせによって使用可能な
ピッチクラスセットが規定される(スケールの基音=コ
ードルートとした場合)。
の機能とキーノートが特定できたかどうかを知るため
に、調性データ生成部70はキー保留フラグ50の状態
を読む。セット状態(キー保留解除状態)であれば、機
能とキーノートは特定されており、リセット状態(キー
保留状態)であれば特定されていない。“キー保留解除
状態”のとき、調性データ生成部70は第1判定部30
または第2判定部40で特定された新コード機能とキー
ノート、及びコード進行入力装置20から与えられる新
コードのタイプとに基づいて新コードの区間で使用可能
なピッチクラスセットを決定する。なお、新コードの機
能とキーノートとタイプとの組み合わせの代りにこれと
等価な組み合わせに基づいて使用可能なピッチクラスセ
ットを決定してもよい。一般化すると、調性データ生成
部70は新コードの機能とルートとキーノートのうち少
なくとも2つ(例えば新コードの機能とルート)と、新
コードのタイプとの組み合わせから使用可能なピッチク
ラスセットを決定することができる。このようなピッチ
クラスセットは上記の組み合わせに適したものであり、
それを用いた旋律は調性を明確にするように働く。この
ようなピッチクラスセットを得るため、調性データ生成
部70に機能名/スケール変換テーブル71を設け、新
コードの機能名(機能とタイプの組み合わせ)をスケー
ルに変換するのが好ましい。使用可能なピッチクラスセ
ットは機能名を変換したスケールとキーノートとの組み
合わせにより規定される(テーブル71内のスケールの
開始音である基音がキーノートから所定音程をもつとし
て定義されている場合)。あるいは変換されたスケール
と新コードのルートとの組み合わせによって使用可能な
ピッチクラスセットが規定される(スケールの基音=コ
ードルートとした場合)。
【0030】一方、キー保留フラグ50が“キー保留状
態”のとき、即ち、いずれの判定部30、40も新コー
ドの機能とキーノートを特定できなかったときは、調性
データ生成部70は(特定されない新コードの機能ある
いは新コードがとり得る複数の機能の可能性と)新コー
ドのタイプとルートに基づく広い調性解釈により新コー
ドの区間で使用可能なピッチクラスセットを規定する。
このピッチクラスセットは旋律に使用された場合に複数
の調性の可能性を許容するように働く。通常、このピッ
チクラスセットは機能を特定した場合に新コードの区間
で使用可能となるピッチクラスセットの一部である。好
ましくは、機能を特定できない場合に使用可能なピッチ
クラスセットは、新コードがとる可能性のある複数の機
能のすべてに対して共通して使用可能なピッチクラスセ
ットによって定めるのがよい。
態”のとき、即ち、いずれの判定部30、40も新コー
ドの機能とキーノートを特定できなかったときは、調性
データ生成部70は(特定されない新コードの機能ある
いは新コードがとり得る複数の機能の可能性と)新コー
ドのタイプとルートに基づく広い調性解釈により新コー
ドの区間で使用可能なピッチクラスセットを規定する。
このピッチクラスセットは旋律に使用された場合に複数
の調性の可能性を許容するように働く。通常、このピッ
チクラスセットは機能を特定した場合に新コードの区間
で使用可能となるピッチクラスセットの一部である。好
ましくは、機能を特定できない場合に使用可能なピッチ
クラスセットは、新コードがとる可能性のある複数の機
能のすべてに対して共通して使用可能なピッチクラスセ
ットによって定めるのがよい。
【0031】この方式による使用可能なピッチクラスセ
ットの決定法を図1(F)に例示する。図1(F)の方
式(共通PC方式)によれば、コードタイプから、可能
性のある複数の機能を想定し、コードタイプが各々の機
能をもつときに使用可能スケール(ピッチクラスセッ
ト)を定め、これらのスケールに共通のピッチクラスを
求め、これを機能が特定できない場合に使用可能なピッ
チクラスセットとしている。例えば、新コードのルート
がC、タイプがメジャー(Major)だとすると、タ
イプ“Major”から、新コードの取り得る機能は
ットの決定法を図1(F)に例示する。図1(F)の方
式(共通PC方式)によれば、コードタイプから、可能
性のある複数の機能を想定し、コードタイプが各々の機
能をもつときに使用可能スケール(ピッチクラスセッ
ト)を定め、これらのスケールに共通のピッチクラスを
求め、これを機能が特定できない場合に使用可能なピッ
チクラスセットとしている。例えば、新コードのルート
がC、タイプがメジャー(Major)だとすると、タ
イプ“Major”から、新コードの取り得る機能は
【外字3】か
【外字2】か
【外字1】である。コードC Majorの機能が
【外字3】のとき使用可能なピッチクラスセット(PC
S)は C、D、E、F、G、A、B であり、機能
S)は C、D、E、F、G、A、B であり、機能
【外字2】に対してはPCSは C、D、E、F#、G、A、B であり、機能
【外字1】に対してPCSは C、D、E、F、G、A、B♭ である。したがって、これらのPCSに共通なピッチク
ラスは、 C、D、E、G、A であり、これが、機能とキーノートを特定できなかった
ときの新コードC Majorの区間において使用可能
なピッチクラスセットを規定する。このピッチクラスセ
ット(C、D、E、G、A)は3つの機能
ラスは、 C、D、E、G、A であり、これが、機能とキーノートを特定できなかった
ときの新コードC Majorの区間において使用可能
なピッチクラスセットを規定する。このピッチクラスセ
ット(C、D、E、G、A)は3つの機能
【外字4】 の可能性に対するピッチクラスセット(各々が特定の調
性を明確にする性格をもつ)に共通なピッチクラスで構
成されるので、広い調性(3つの個々の調C、G、Fの
可能性)を示す。換言すると機能とキーノートを特定で
きなかったコードC Majorの区間でこのピッチク
ラスセット(C、D、E、G、A)による旋律を使用す
れば、この区間の前後の調がC、G、Fのいずれであっ
ても(調Cを明確にするピッチクラスセット(C、D、
E、F、G、A、B)による旋律、調Gを明確にするピ
ッチクラスセット(C、D、E、F#、G、A、B)に
よる旋律、調Fを明確にするピッチクラスセット(C、
D、E、F、G、A、B♭)の旋律、のいずれが使用さ
れても)、この前後の調の性格を損わないように作用す
る。例えば、後続する区間でピッチクラスセット(C、
D、E、F、G、A、B)による旋律が演奏されたとす
ると、聴者はその時点で調がCであることを明確に知
る。また、それに先立って演奏されたコードC Maj
or区間での旋律と調Cを明確にした後続の旋律との間
に転調感を経験しないので、先行する旋律の調をCであ
ることに気付く。
性を明確にする性格をもつ)に共通なピッチクラスで構
成されるので、広い調性(3つの個々の調C、G、Fの
可能性)を示す。換言すると機能とキーノートを特定で
きなかったコードC Majorの区間でこのピッチク
ラスセット(C、D、E、G、A)による旋律を使用す
れば、この区間の前後の調がC、G、Fのいずれであっ
ても(調Cを明確にするピッチクラスセット(C、D、
E、F、G、A、B)による旋律、調Gを明確にするピ
ッチクラスセット(C、D、E、F#、G、A、B)に
よる旋律、調Fを明確にするピッチクラスセット(C、
D、E、F、G、A、B♭)の旋律、のいずれが使用さ
れても)、この前後の調の性格を損わないように作用す
る。例えば、後続する区間でピッチクラスセット(C、
D、E、F、G、A、B)による旋律が演奏されたとす
ると、聴者はその時点で調がCであることを明確に知
る。また、それに先立って演奏されたコードC Maj
or区間での旋律と調Cを明確にした後続の旋律との間
に転調感を経験しないので、先行する旋律の調をCであ
ることに気付く。
【0032】このようにして、本調性判定装置では、機
能とキーノートを特定できないコードの区間に対するピ
ッチクラスセットをそのコードのタイプとルートによる
広い調性解釈に従って決定することにより、調性の流れ
に欠陥(誤った転調)をもちこまない調性データ(ピッ
チクラスセット)の列を得ることができる。これに対
し、従来の調性判定装置ではコードの機能の特定が困難
な場合でも、無理やり、音楽的根拠なしに、そのコード
の機能を特定し(そのコードがとり得る複数の機能の可
能性のなかから勝手に1つの機能を選択し)、根拠のな
いこのコード機能に対応するピッチクラスセットを転調
として決定する。その結果、コード進行から得られる調
性の進行が欠陥や誤った転調を含むおそれがある。
能とキーノートを特定できないコードの区間に対するピ
ッチクラスセットをそのコードのタイプとルートによる
広い調性解釈に従って決定することにより、調性の流れ
に欠陥(誤った転調)をもちこまない調性データ(ピッ
チクラスセット)の列を得ることができる。これに対
し、従来の調性判定装置ではコードの機能の特定が困難
な場合でも、無理やり、音楽的根拠なしに、そのコード
の機能を特定し(そのコードがとり得る複数の機能の可
能性のなかから勝手に1つの機能を選択し)、根拠のな
いこのコード機能に対応するピッチクラスセットを転調
として決定する。その結果、コード進行から得られる調
性の進行が欠陥や誤った転調を含むおそれがある。
【0033】図1(A)に戻り、調性データ生成部70
は、機能を特定できないコードの区間で使用可能なピッ
チクラスセットを生成するために、コードのタイプをス
ケールに変換するタイプ/スケール変換テーブル72を
含む。変換されたスケールとコードのルートとの組み合
わせにより使用可能なピッチクラスセットが定められ
る。所望であれば、ルート・タイプ/ピッチクラスセッ
ト変換テーブルメモリを用いて、ルートとタイプとの組
み合わせから直接的に使用可能なピッチクラスセットを
得てもよいが、記憶容量面では不利である。例えば、ル
ート・タイプ/ピッチクラスセット変換テーブルは各ル
ート・タイプ組合せ入力に対して図1(F)に例示する
ような共通PCを返すルックアップテーブルメモリによ
って実現できる。また、タイプ/スケール変換テーブル
72は、各コードタイプ入力に対し、スケール開始音を
コードルートとする、音程構造表現のスケールを返すル
ックアップテーブルによって実現できる。例えば、タイ
プ“Major”に対するスケールの音程構造表現デー
タは(0、2、4、7、9)で表現できる(ここに、
“0”がコードルートと同じピッチクラスをもつスケー
ルの基音を表わし、“2”はスケールの基音から半音
(数値“1”)の2倍の音程をもつスケールの第2音を
表わし、以下、同様である)。ピッチクラスC〜Bをそ
れぞれ“0”から“11”で表現してみる。コードのル
ートのピッチクラスが“C”即ちデータ“0”だとする
と、このコードルートデータ“0”をスケールの各音の
データに加えることにより、機能を特定できないコード
C Majorの区間において使用可能なピッチクラス
セットデータ(0、2、4、7、9)即ちピッチクラス
セット(C、D、E、G、A)が得られる。
は、機能を特定できないコードの区間で使用可能なピッ
チクラスセットを生成するために、コードのタイプをス
ケールに変換するタイプ/スケール変換テーブル72を
含む。変換されたスケールとコードのルートとの組み合
わせにより使用可能なピッチクラスセットが定められ
る。所望であれば、ルート・タイプ/ピッチクラスセッ
ト変換テーブルメモリを用いて、ルートとタイプとの組
み合わせから直接的に使用可能なピッチクラスセットを
得てもよいが、記憶容量面では不利である。例えば、ル
ート・タイプ/ピッチクラスセット変換テーブルは各ル
ート・タイプ組合せ入力に対して図1(F)に例示する
ような共通PCを返すルックアップテーブルメモリによ
って実現できる。また、タイプ/スケール変換テーブル
72は、各コードタイプ入力に対し、スケール開始音を
コードルートとする、音程構造表現のスケールを返すル
ックアップテーブルによって実現できる。例えば、タイ
プ“Major”に対するスケールの音程構造表現デー
タは(0、2、4、7、9)で表現できる(ここに、
“0”がコードルートと同じピッチクラスをもつスケー
ルの基音を表わし、“2”はスケールの基音から半音
(数値“1”)の2倍の音程をもつスケールの第2音を
表わし、以下、同様である)。ピッチクラスC〜Bをそ
れぞれ“0”から“11”で表現してみる。コードのル
ートのピッチクラスが“C”即ちデータ“0”だとする
と、このコードルートデータ“0”をスケールの各音の
データに加えることにより、機能を特定できないコード
C Majorの区間において使用可能なピッチクラス
セットデータ(0、2、4、7、9)即ちピッチクラス
セット(C、D、E、G、A)が得られる。
【0034】まとめると、図1(A)の調性判定装置1
0の主な特徴、利点は以下の通りである。 (A)従来の調性判定装置と異なり、先行する調を手掛
りにして後続するコードの区間における調性を判定する
第1調性判定機能(30、61、62、70)と、先行
する調を手掛りとすることなくコードの区間の調性を判
定する第2調性判定機能(40、63、70)の両方を
備えている。 (B)両調性判定機能は互いの弱点を補完し合う。すな
わち先行する区間の調を手掛りにすると後続区間の調を
容易に決定できるような音楽的状況に対する調性判定能
力は第1調性判定機能が高い。第2調性判定機能はこの
ような音楽的状況では後続する区間の正しい調の判定や
転調の検出が遅れがちになる。一方、先行する区間の調
を手掛りにするのが困難な音楽的状況に対する問題解決
能力(調性判定能力)は第2調性判定機能が優れてい
る。したがって、第1調性判定機能と第2調性判定機能
を組み合わせることにより、従来の調性判定装置では達
成できないような調性判定能力をもつ調性判定装置を提
供できる。 (C)調を特定できる音楽的状況(従来の調性判定装置
が前提としている状況)だけでなく調を特定できないよ
うな音楽的状況をも考慮している(50)。すなわち、
機能を特定できないコードがコード進行に含まれる状況
をも考慮している。 (D)(キー・機能判定手段30、40により)機能を
特定できたコードに対しては、そのコード区間における
調性を狭く解釈し(71)、一方、機能を特定できなか
ったコードに対してはそのコード区間における調性を広
く解釈している(72)。これにより、流れが自然な調
性進行が得られる。 (F)すなわち、機能を特定できたコードに対しては、
そのコードとタイプとルートと特定した機能、の組み合
わせ(またはこれと等価な組み合わせ)に従ってそのコ
ード区間で使用可能なピッチクラスセットを決定し、一
方、機能を特定できなかったコードに対しては、そのコ
ードのとり得る複数の機能の可能性を考慮してそのコー
ドのタイプとルートとからそのコード区間で使用可能な
ピッチクラスセットを決定している。
0の主な特徴、利点は以下の通りである。 (A)従来の調性判定装置と異なり、先行する調を手掛
りにして後続するコードの区間における調性を判定する
第1調性判定機能(30、61、62、70)と、先行
する調を手掛りとすることなくコードの区間の調性を判
定する第2調性判定機能(40、63、70)の両方を
備えている。 (B)両調性判定機能は互いの弱点を補完し合う。すな
わち先行する区間の調を手掛りにすると後続区間の調を
容易に決定できるような音楽的状況に対する調性判定能
力は第1調性判定機能が高い。第2調性判定機能はこの
ような音楽的状況では後続する区間の正しい調の判定や
転調の検出が遅れがちになる。一方、先行する区間の調
を手掛りにするのが困難な音楽的状況に対する問題解決
能力(調性判定能力)は第2調性判定機能が優れてい
る。したがって、第1調性判定機能と第2調性判定機能
を組み合わせることにより、従来の調性判定装置では達
成できないような調性判定能力をもつ調性判定装置を提
供できる。 (C)調を特定できる音楽的状況(従来の調性判定装置
が前提としている状況)だけでなく調を特定できないよ
うな音楽的状況をも考慮している(50)。すなわち、
機能を特定できないコードがコード進行に含まれる状況
をも考慮している。 (D)(キー・機能判定手段30、40により)機能を
特定できたコードに対しては、そのコード区間における
調性を狭く解釈し(71)、一方、機能を特定できなか
ったコードに対してはそのコード区間における調性を広
く解釈している(72)。これにより、流れが自然な調
性進行が得られる。 (F)すなわち、機能を特定できたコードに対しては、
そのコードとタイプとルートと特定した機能、の組み合
わせ(またはこれと等価な組み合わせ)に従ってそのコ
ード区間で使用可能なピッチクラスセットを決定し、一
方、機能を特定できなかったコードに対しては、そのコ
ードのとり得る複数の機能の可能性を考慮してそのコー
ドのタイプとルートとからそのコード区間で使用可能な
ピッチクラスセットを決定している。
【0035】以上述べたような調性判定装置を伴奏形成
装置と組み合わせれば、調性感が豊かで調性の流れが自
然な伴奏をコード進行の入力に合わせて演奏する自動伴
奏装置を提供できる。
装置と組み合わせれば、調性感が豊かで調性の流れが自
然な伴奏をコード進行の入力に合わせて演奏する自動伴
奏装置を提供できる。
【0036】図1(A)に示すような調性判定装置を利
用して伴奏を形成する伴奏形成装置は種々の態様で実現
できる。その基本構成を図1(B)に機能ブロック図で
示す。
用して伴奏を形成する伴奏形成装置は種々の態様で実現
できる。その基本構成を図1(B)に機能ブロック図で
示す。
【0037】図1(B)において、伴奏形成装置90は
コード進行の中で機能を特定できたコード区間における
伴奏を形成する第1伴奏形成装置190と、機能を特定
できなかったコード区間における伴奏を形成する第2伴
奏形成装置290とから成る。この目的のため、第1伴
奏形成装置190はキー保留フラグ50(図1(A)の
調性判定装置10に含まれるものであるがわかりやすく
するため図1(B)にも示した)が“キー保留解除”状
態のときに動作し、コードの機能とタイプとキーノート
との組み合わせに基づいて伴奏を形成する。ここに、コ
ードの機能とキーノートは図1(A)の第1判定部30
または第2判定部40から与えられるものであり(各判
定部30、40においてそのコードの機能とキーノート
を特定できた場合に)、コードのタイプはコード進行入
力装置20から与えられる。第1伴奏形成装置190
は、コードの機能とタイプとキーノートとの組み合わせ
の代りに、その組み合わせと等価な情報をもつ組み合わ
せ(例えば、コードの機能とタイプとルート)を受ける
ような構成でもよい。あるいは、調性データ生成部70
からの(そのコード、即ち機能が特定されたコードの区
間において)使用可能なピッチクラスセットの情報を受
けるようにしてもよい。いずれの場合も、第1伴奏形成
装置は機能が特定されたコードの音楽時間において使用
可能なピッチクラスセットに含まれるピッチクラスの音
高をもつ伴奏を結果として形成する。したがってコード
の機能、タイプ、キーノートの組み合わせあるいはこれ
と等価な組み合わせを受ける構成の第1伴奏形成装置1
90は、明示的であれ暗示的であれ、内部になんらかの
かたちで、調性データ生成部70の一部に相当するも
の、即ち上記のような組み合わせから機能が特定された
コードの区間で使用可能なピッチクラスセットを決定な
いし定義する調性ピッチクラスセット手段を含むことに
なる。例えば、コード機能、タイプ、キーノートのある
組み合わせに対して使用可能なピッチクラスセットから
選んだピッチクラスで伴奏音を構成した伴奏データを記
憶するメモリがあるとし、外部からその組み合わせの情
報が与えられた場合に上記メモリを選択して伴奏データ
を出力するように第1伴奏形成装置を構成したとする。
この構成の場合、調性ピッチクラスセット手段はメモリ
と、組合せ情報に従ってメモリを選択する手段とで実現
されていることになる。また、上記のメモリを音楽スタ
イル別に構成した場合には、上記の組合せ以外に音楽ス
タイルをも考慮して調性ピッチクラスセットを規定する
手段が実現されることになる。
コード進行の中で機能を特定できたコード区間における
伴奏を形成する第1伴奏形成装置190と、機能を特定
できなかったコード区間における伴奏を形成する第2伴
奏形成装置290とから成る。この目的のため、第1伴
奏形成装置190はキー保留フラグ50(図1(A)の
調性判定装置10に含まれるものであるがわかりやすく
するため図1(B)にも示した)が“キー保留解除”状
態のときに動作し、コードの機能とタイプとキーノート
との組み合わせに基づいて伴奏を形成する。ここに、コ
ードの機能とキーノートは図1(A)の第1判定部30
または第2判定部40から与えられるものであり(各判
定部30、40においてそのコードの機能とキーノート
を特定できた場合に)、コードのタイプはコード進行入
力装置20から与えられる。第1伴奏形成装置190
は、コードの機能とタイプとキーノートとの組み合わせ
の代りに、その組み合わせと等価な情報をもつ組み合わ
せ(例えば、コードの機能とタイプとルート)を受ける
ような構成でもよい。あるいは、調性データ生成部70
からの(そのコード、即ち機能が特定されたコードの区
間において)使用可能なピッチクラスセットの情報を受
けるようにしてもよい。いずれの場合も、第1伴奏形成
装置は機能が特定されたコードの音楽時間において使用
可能なピッチクラスセットに含まれるピッチクラスの音
高をもつ伴奏を結果として形成する。したがってコード
の機能、タイプ、キーノートの組み合わせあるいはこれ
と等価な組み合わせを受ける構成の第1伴奏形成装置1
90は、明示的であれ暗示的であれ、内部になんらかの
かたちで、調性データ生成部70の一部に相当するも
の、即ち上記のような組み合わせから機能が特定された
コードの区間で使用可能なピッチクラスセットを決定な
いし定義する調性ピッチクラスセット手段を含むことに
なる。例えば、コード機能、タイプ、キーノートのある
組み合わせに対して使用可能なピッチクラスセットから
選んだピッチクラスで伴奏音を構成した伴奏データを記
憶するメモリがあるとし、外部からその組み合わせの情
報が与えられた場合に上記メモリを選択して伴奏データ
を出力するように第1伴奏形成装置を構成したとする。
この構成の場合、調性ピッチクラスセット手段はメモリ
と、組合せ情報に従ってメモリを選択する手段とで実現
されていることになる。また、上記のメモリを音楽スタ
イル別に構成した場合には、上記の組合せ以外に音楽ス
タイルをも考慮して調性ピッチクラスセットを規定する
手段が実現されることになる。
【0038】図1(B)では、第1伴奏形成装置190
をコードの機能とタイプから、その組み合わせに適した
伴奏パターンを発生する第1伴奏パターン発生部192
と、この発生部192から出力される伴奏パターンのピ
ッチデータをキーノートまたはコードルートのデータと
加算して実際に演奏される伴奏音ピッチを発生する加算
器196(音高発生手段)とで構成している。第1伴奏
パターン発生部192のピッチデータをキーノートから
の音程で表現した場合にはそれにキーノートを加えるこ
とで実伴奏ピッチが得られる。この代りに第1伴奏パタ
ーン発生部192のピッチデータをコードルートからの
音程で表現した場合はそれにコードルートを加えること
で実伴奏ピッチが得られる。
をコードの機能とタイプから、その組み合わせに適した
伴奏パターンを発生する第1伴奏パターン発生部192
と、この発生部192から出力される伴奏パターンのピ
ッチデータをキーノートまたはコードルートのデータと
加算して実際に演奏される伴奏音ピッチを発生する加算
器196(音高発生手段)とで構成している。第1伴奏
パターン発生部192のピッチデータをキーノートから
の音程で表現した場合にはそれにキーノートを加えるこ
とで実伴奏ピッチが得られる。この代りに第1伴奏パタ
ーン発生部192のピッチデータをコードルートからの
音程で表現した場合はそれにコードルートを加えること
で実伴奏ピッチが得られる。
【0039】一方、第2伴奏形成装置290は、キー保
留フラグ50が“キー保留”状態のとき(コードの機能
を特定できなかったことを表わす)動作し、機能を特定
できなかったコードのタイプとルートに基づいて伴奏を
形成する。タイプのルートの組み合わせの代りに、調性
データ生成部70で生成される、そのコード区間で使用
可能なピッチクラスセットの情報を受けるように第2伴
奏形成装置290を構成してもよい。いずれにしても、
第2伴奏形成装置はそのようなピッチクラスセットに含
まれるピッチクラスの音高をもつ伴奏を形成する。した
がって、タイプとルートの組み合わせを受ける構成の第
2伴奏形成装置は内部になんらかのかたちで調性データ
生成部70の一部に相当するもの、即ち、機能を特定で
きないコードの区間において使用可能なピッチクラスセ
ットを広い調性解釈に従ってそのコードのタイプとルー
トから決定、定義する手段を含むことになる。
留フラグ50が“キー保留”状態のとき(コードの機能
を特定できなかったことを表わす)動作し、機能を特定
できなかったコードのタイプとルートに基づいて伴奏を
形成する。タイプのルートの組み合わせの代りに、調性
データ生成部70で生成される、そのコード区間で使用
可能なピッチクラスセットの情報を受けるように第2伴
奏形成装置290を構成してもよい。いずれにしても、
第2伴奏形成装置はそのようなピッチクラスセットに含
まれるピッチクラスの音高をもつ伴奏を形成する。した
がって、タイプとルートの組み合わせを受ける構成の第
2伴奏形成装置は内部になんらかのかたちで調性データ
生成部70の一部に相当するもの、即ち、機能を特定で
きないコードの区間において使用可能なピッチクラスセ
ットを広い調性解釈に従ってそのコードのタイプとルー
トから決定、定義する手段を含むことになる。
【0040】図1(B)では第2伴奏形成装置290を
コードのタイプに従って伴奏パターンを発生する第2伴
奏パターン発生部292と、発生した伴奏パターンのピ
ッチデータ(ルートからの音程を表現する)にコードル
ートのデータを加算して、実伴奏音ピッチを発生する加
算器276とで構成している。
コードのタイプに従って伴奏パターンを発生する第2伴
奏パターン発生部292と、発生した伴奏パターンのピ
ッチデータ(ルートからの音程を表現する)にコードル
ートのデータを加算して、実伴奏音ピッチを発生する加
算器276とで構成している。
【0041】図1(C)は第1伴奏パターン発生部19
2の構成例を明らかにした第1伴奏形成装置190Mで
あり、図1(D)は第2伴奏パターン発生部292の構
成例を明らかにした第2伴奏形成装置290Mである。
図1(C)に示す第1伴奏形成装置190Mはコードの
機能・タイプ(またはスケール)別に用意された複数の
伴奏パターンメモリ193−1〜193−n(全体を9
1で示す)を有する。各伴奏パターンメモリは、特定の
機能・タイプ組合せ(または特定のスケール)に適合す
るピッチ内容(ピッチライン)をもつ伴奏パターンを記
憶する。例えば第1の伴奏パターンメモリ193−1は
機能が
2の構成例を明らかにした第1伴奏形成装置190Mで
あり、図1(D)は第2伴奏パターン発生部292の構
成例を明らかにした第2伴奏形成装置290Mである。
図1(C)に示す第1伴奏形成装置190Mはコードの
機能・タイプ(またはスケール)別に用意された複数の
伴奏パターンメモリ193−1〜193−n(全体を9
1で示す)を有する。各伴奏パターンメモリは、特定の
機能・タイプ組合せ(または特定のスケール)に適合す
るピッチ内容(ピッチライン)をもつ伴奏パターンを記
憶する。例えば第1の伴奏パターンメモリ193−1は
機能が
【外字3】(トニック)でタイプがメジャーのコードあ
るいはイオニアンスケールに適合するピッチ内容の伴奏
パターンを記憶する。更に、伴奏形成装置190Mは選
択部194を有する。この選択部194は調性判定装置
10からのコードの機能・タイプ(またはスケール)に
従って、複数の伴奏パターンメモリ193−1〜193
−nのなかから同一のコード機能・タイプ(または同一
のスケール)に関する伴奏パターンを選択する。複数の
伴奏パターンメモリ193−1〜193−nの伴奏音ピ
ッチデータP1〜Pnのなかで選択部194により選択
された伴奏音ピッチデータをPsで示してある。選択さ
れたピッチデータPsは加算器196により調性判定装
置10からのキーノートまたはコードルートを表わすデ
ータと加算される。加算器196の出力データが最終的
な伴奏音のピッチを表わす。複数の伴奏パターンメモリ
193と選択部194が図1(B)の第1伴奏パターン
発生部192の構成例であることがわかる。
るいはイオニアンスケールに適合するピッチ内容の伴奏
パターンを記憶する。更に、伴奏形成装置190Mは選
択部194を有する。この選択部194は調性判定装置
10からのコードの機能・タイプ(またはスケール)に
従って、複数の伴奏パターンメモリ193−1〜193
−nのなかから同一のコード機能・タイプ(または同一
のスケール)に関する伴奏パターンを選択する。複数の
伴奏パターンメモリ193−1〜193−nの伴奏音ピ
ッチデータP1〜Pnのなかで選択部194により選択
された伴奏音ピッチデータをPsで示してある。選択さ
れたピッチデータPsは加算器196により調性判定装
置10からのキーノートまたはコードルートを表わすデ
ータと加算される。加算器196の出力データが最終的
な伴奏音のピッチを表わす。複数の伴奏パターンメモリ
193と選択部194が図1(B)の第1伴奏パターン
発生部192の構成例であることがわかる。
【0042】図1(C)の第1伴奏形成装置190Mで
は、複数の伴奏パターンメモリ193−1〜193−n
における複数の伴奏パターンが有するリズム成分(伴奏
音の長さのシーケンス)を互に独立にできる。換言すれ
ば、図1(C)の第1伴奏形成装置190Mは調性判定
装置10からのスケール(またはコードの機能とタイプ
の組合せ)に依存したリズムを有する伴奏ラインを形成
可能である。したがって、コード進行におけるコードの
変化に伴ってリズムが変化する伴奏を行うことができ
る。
は、複数の伴奏パターンメモリ193−1〜193−n
における複数の伴奏パターンが有するリズム成分(伴奏
音の長さのシーケンス)を互に独立にできる。換言すれ
ば、図1(C)の第1伴奏形成装置190Mは調性判定
装置10からのスケール(またはコードの機能とタイプ
の組合せ)に依存したリズムを有する伴奏ラインを形成
可能である。したがって、コード進行におけるコードの
変化に伴ってリズムが変化する伴奏を行うことができ
る。
【0043】図1(D)の第2伴奏形成装置290Mで
も同様の手法により、複数の伴奏パターンメモリ293
−1〜293−m(全体を293で示す)と選択部29
4とを用いて図1(B)の第2伴奏パターン発生部29
2を実現している。ただし、各伴奏パターンメモリ29
3−1〜293−mの伴奏パターンは個々のコードタイ
プ(またはスケール)に適合するピッチ内容をもつ。選
択部294はコード進行入力装置20から与えられるコ
ードタイプ(またはタイプ/スケール変換テーブル72
から与えられるスケール)に従って伴奏パターンを選択
する。図1(E)に伴奏形成装置のもう1つの構成例を
90Mとして示す。
も同様の手法により、複数の伴奏パターンメモリ293
−1〜293−m(全体を293で示す)と選択部29
4とを用いて図1(B)の第2伴奏パターン発生部29
2を実現している。ただし、各伴奏パターンメモリ29
3−1〜293−mの伴奏パターンは個々のコードタイ
プ(またはスケール)に適合するピッチ内容をもつ。選
択部294はコード進行入力装置20から与えられるコ
ードタイプ(またはタイプ/スケール変換テーブル72
から与えられるスケール)に従って伴奏パターンを選択
する。図1(E)に伴奏形成装置のもう1つの構成例を
90Mとして示す。
【0044】図1(E)において伴奏形成装置90Mは
伴奏スタイル別に基準の伴奏パターンを記憶する伴奏パ
ターンメモリ91を備える。記憶される伴奏パターンは
(図示しない)読出部によって繰り返し読み出される。
伴奏パターンメモリ91から読み出した伴奏音の基準ピ
ッチをPで図示してある。伴奏形成装置90は更に、ピ
ッチ変更データテーブルメモリ94を含む。ピッチ変更
データテーブルメモリ94内の各テーブル要素には伴奏
パターンメモリ91からのピッチデータPを変更するた
め差分ピッチデータ△Pが記憶される。ピッチ変更デー
タテーブルメモリ94のテーブル要素は、スケールと変
更すべき伴奏音のピッチとの組み合わせによって特定
(アドレス指定)される。調性データ生成部70からの
スケールを表わすデータと伴奏パターンメモリ91から
の伴奏音基準ピッチデータがアドレス部95に入力さ
れ、ここでピッチ変更データテーブルメモリ94のテー
ブル要素を指すアドレスが生成される。ここにアドレス
部93に入力されるスケールは、機能を特定できたコー
ドの場合には、機能名/スケール変換テーブル71から
与えられる機能名対応スケールであるのに対し、機能を
特定できなかったコードの場合にはタイプ/スケール変
換テーブル72から与えられるタイプ対応スケールであ
る。したがって、このようなスケールを受ける代りに、
キー保留解除時(コード機能確定時)には機能とタイプ
を受け、キー保留時(コード機能不確定時)にはタイプ
を受けるようにアドレス部93を変形してもよい。アド
レス指定されたテーブル要素にあるピッチ変更データ△
Pは加算器95により伴奏パターンメモリ91からの基
準ピッチデータPに加算される。加算器95から出力さ
れるピッチデータは、キー保留解除時には、機能名対応
スケールに適合するピッチ内容(例えばキーノートから
の音程で表現される)をもち、キー保留時にはタイプ対
応スケールに適合するピッチ内容(コードルートからの
音程で表現される)をもつ。このピッチデータは、更に
第2の加算器96により選択部97からのデータと加算
されて実際の伴奏音のピッチとなる。選択部97はキー
保留解除時(キー確定時)には現キーノートメモリ52
からのキーノートを選択し、キー保留時にはコード進行
入力装置20からのコードルートを選択する。なお、キ
ー保留解除の場合もキー保留時と同様に加算器95から
出力されるデータがコードルートからの音程を表わすよ
うに、ピッチ変更テーブルメモリ94の内容を設定して
おけば、選択器97は不要であり、キーの保留、解除に
かかわらずコードルートを加算器95の出力に加算すれ
ば実伴奏音ピッチが得られる。
伴奏スタイル別に基準の伴奏パターンを記憶する伴奏パ
ターンメモリ91を備える。記憶される伴奏パターンは
(図示しない)読出部によって繰り返し読み出される。
伴奏パターンメモリ91から読み出した伴奏音の基準ピ
ッチをPで図示してある。伴奏形成装置90は更に、ピ
ッチ変更データテーブルメモリ94を含む。ピッチ変更
データテーブルメモリ94内の各テーブル要素には伴奏
パターンメモリ91からのピッチデータPを変更するた
め差分ピッチデータ△Pが記憶される。ピッチ変更デー
タテーブルメモリ94のテーブル要素は、スケールと変
更すべき伴奏音のピッチとの組み合わせによって特定
(アドレス指定)される。調性データ生成部70からの
スケールを表わすデータと伴奏パターンメモリ91から
の伴奏音基準ピッチデータがアドレス部95に入力さ
れ、ここでピッチ変更データテーブルメモリ94のテー
ブル要素を指すアドレスが生成される。ここにアドレス
部93に入力されるスケールは、機能を特定できたコー
ドの場合には、機能名/スケール変換テーブル71から
与えられる機能名対応スケールであるのに対し、機能を
特定できなかったコードの場合にはタイプ/スケール変
換テーブル72から与えられるタイプ対応スケールであ
る。したがって、このようなスケールを受ける代りに、
キー保留解除時(コード機能確定時)には機能とタイプ
を受け、キー保留時(コード機能不確定時)にはタイプ
を受けるようにアドレス部93を変形してもよい。アド
レス指定されたテーブル要素にあるピッチ変更データ△
Pは加算器95により伴奏パターンメモリ91からの基
準ピッチデータPに加算される。加算器95から出力さ
れるピッチデータは、キー保留解除時には、機能名対応
スケールに適合するピッチ内容(例えばキーノートから
の音程で表現される)をもち、キー保留時にはタイプ対
応スケールに適合するピッチ内容(コードルートからの
音程で表現される)をもつ。このピッチデータは、更に
第2の加算器96により選択部97からのデータと加算
されて実際の伴奏音のピッチとなる。選択部97はキー
保留解除時(キー確定時)には現キーノートメモリ52
からのキーノートを選択し、キー保留時にはコード進行
入力装置20からのコードルートを選択する。なお、キ
ー保留解除の場合もキー保留時と同様に加算器95から
出力されるデータがコードルートからの音程を表わすよ
うに、ピッチ変更テーブルメモリ94の内容を設定して
おけば、選択器97は不要であり、キーの保留、解除に
かかわらずコードルートを加算器95の出力に加算すれ
ば実伴奏音ピッチが得られる。
【0045】以上の説明からわかるように図1(E)の
伴奏形成装置90Mも、図1(B)に示す第1伴奏形成
装置190と第2伴奏形成装置290に相当する機能を
有するものである。図1(E)の構成の場合、伴奏形成
に必要な記憶容量を最小化できる利点がある。
伴奏形成装置90Mも、図1(B)に示す第1伴奏形成
装置190と第2伴奏形成装置290に相当する機能を
有するものである。図1(E)の構成の場合、伴奏形成
に必要な記憶容量を最小化できる利点がある。
【0046】以下、図2から図33を参照して具体的な
実施例を詳細に説明する。図2は、具体的な実施例に係
る自動伴奏装置のハードウェアのブロック図である。C
PU100は自動伴奏装置全体の制御を行う。ROM1
02には、CPU100の実行するプログラムと固定デ
ータ(コード進行知識データベースを含む)が記憶され
る。RAM104はCPU100の制御の下にワークメ
モリとして使用される。入力装置106はメロディとコ
ードを入力するための鍵盤を含む。楽音生成装置108
はCPU100の制御の下に楽音信号を生成する。サウ
ンドシステム110は楽音信号を受け、外部に放音す
る。タイマー112は所定の時間の経過を計時し、CP
U100に対し、タイマーインターラプトルーチン(図
4)を起動するためのタイマー割込信号を与える。表示
装置114はコード進行、コード進行に対応する機能進
行、キーノート進行、調性(ピッチクラスセット)の進
行を表示可能である。
実施例を詳細に説明する。図2は、具体的な実施例に係
る自動伴奏装置のハードウェアのブロック図である。C
PU100は自動伴奏装置全体の制御を行う。ROM1
02には、CPU100の実行するプログラムと固定デ
ータ(コード進行知識データベースを含む)が記憶され
る。RAM104はCPU100の制御の下にワークメ
モリとして使用される。入力装置106はメロディとコ
ードを入力するための鍵盤を含む。楽音生成装置108
はCPU100の制御の下に楽音信号を生成する。サウ
ンドシステム110は楽音信号を受け、外部に放音す
る。タイマー112は所定の時間の経過を計時し、CP
U100に対し、タイマーインターラプトルーチン(図
4)を起動するためのタイマー割込信号を与える。表示
装置114はコード進行、コード進行に対応する機能進
行、キーノート進行、調性(ピッチクラスセット)の進
行を表示可能である。
【0047】図3は図1(A)のCPU100の動作の
メインフローを示す。パワーオン時に、CPU100は
調性判定システムを初期化する(3−1)。この初期設
定処理3−1には、後述する一時変数(図6(A)、
(B)、(C))を所定の値に設定する処理が含まれ
る。3−2でCPU100は入力装置106を通常の仕
方でキースキャンする。3−3でCPU100は鍵盤の
メロディ入力領域から入力されたメロディ鍵情報に基づ
いて楽音生成装置108を制御して、メロディ音を発生
させる。3−4でCPU100は表示装置114を制御
して入力されたコード進行の評価結果(例えば、ピッチ
クラスセットの進行)を表示する。例えば、使用可能な
ピッチクラスセットを鍵盤の鍵に対応してナビゲータ表
示することにより、使用者によるアドリブ演奏が容易に
なる。
メインフローを示す。パワーオン時に、CPU100は
調性判定システムを初期化する(3−1)。この初期設
定処理3−1には、後述する一時変数(図6(A)、
(B)、(C))を所定の値に設定する処理が含まれ
る。3−2でCPU100は入力装置106を通常の仕
方でキースキャンする。3−3でCPU100は鍵盤の
メロディ入力領域から入力されたメロディ鍵情報に基づ
いて楽音生成装置108を制御して、メロディ音を発生
させる。3−4でCPU100は表示装置114を制御
して入力されたコード進行の評価結果(例えば、ピッチ
クラスセットの進行)を表示する。例えば、使用可能な
ピッチクラスセットを鍵盤の鍵に対応してナビゲータ表
示することにより、使用者によるアドリブ演奏が容易に
なる。
【0048】図4にタイマー112のタイムアウトによ
って周期的に起動され、CPU100により実行される
タイマーインターラプトルーチンを示す。4−1でCP
U100は伴奏鍵情報(キースキャン4−2で取り込ま
れている)を調べ、指定されたコードのタイプとルート
を周知の仕方で判別する。新たなコードが検出されると
(4−2)、CPU100はその新コードの機能とキー
ノートを判定する(4−3)。次に、CPU100は新
コードの区間で使用可能なピッチクラスセットを表わす
調性データを生成する(4−4)。最後にCPU100
は調性データに基づいて伴奏データを形成し、楽音生成
装置108を制御して伴奏音信号を生成させる。
って周期的に起動され、CPU100により実行される
タイマーインターラプトルーチンを示す。4−1でCP
U100は伴奏鍵情報(キースキャン4−2で取り込ま
れている)を調べ、指定されたコードのタイプとルート
を周知の仕方で判別する。新たなコードが検出されると
(4−2)、CPU100はその新コードの機能とキー
ノートを判定する(4−3)。次に、CPU100は新
コードの区間で使用可能なピッチクラスセットを表わす
調性データを生成する(4−4)。最後にCPU100
は調性データに基づいて伴奏データを形成し、楽音生成
装置108を制御して伴奏音信号を生成させる。
【0049】図5はROM102に置かれるコード構成
音テーブルCKTである。コード構成音テーブルCKT
には各コードタイプに対するコード構成音のセットが記
憶される。“0”の構成音データが根音を表わす。他の
構成音は根音との間の音程によって表わされる。“1”
が半音(短2度)の音程を表わし、“2”は全音(長2
度)の音程を表わし、以下、同様にして“11”が長7
度の音程を表わす。“15”のデータはダミーであり、
コード構成音テーブルCKTにおける各コードに対する
記憶場所の数を4に統一するために、3つの構成音から
成るトライアドコードに対して使用される。コード構成
音テーブルCKTはコード判別4−1において、コード
タイプを特定するときにも使用することができる。
音テーブルCKTである。コード構成音テーブルCKT
には各コードタイプに対するコード構成音のセットが記
憶される。“0”の構成音データが根音を表わす。他の
構成音は根音との間の音程によって表わされる。“1”
が半音(短2度)の音程を表わし、“2”は全音(長2
度)の音程を表わし、以下、同様にして“11”が長7
度の音程を表わす。“15”のデータはダミーであり、
コード構成音テーブルCKTにおける各コードに対する
記憶場所の数を4に統一するために、3つの構成音から
成るトライアドコードに対して使用される。コード構成
音テーブルCKTはコード判別4−1において、コード
タイプを特定するときにも使用することができる。
【0050】図6(A)、(B)、(C)は後述するフ
ローチャートで使用、参照される一時変数(RAM10
4に置かれる)のリストである。変数(レジスタ)CD
Nはコード判別4−1で得られた新コードを表わす。C
DNは新コードのルート(のピッチクラス)を表わす部
分CDNrと新コードのタイプを表わす部分CDNtと
から成っている。例えば、C MAJORの新コードは
CDNr=0、CDNt=0で表現される。変数(レジ
スタ)CDBは新コードの1つ前のコード(直前コー
ド)を表わす。CDBは直前コードのルートを表わす部
分CDBrと直前コードのタイプを表わす部分CDBt
とから成る。変数(レジスタ)FDNは新コードの機能
名を表わす。FDNは新コードを現在のキーノートで評
価したスケール度数(機能)を表わす部分FDNdと新
コードのタイプを表わす部分FDNt(CDNtと同じ
データ)とから成る。例えば、
ローチャートで使用、参照される一時変数(RAM10
4に置かれる)のリストである。変数(レジスタ)CD
Nはコード判別4−1で得られた新コードを表わす。C
DNは新コードのルート(のピッチクラス)を表わす部
分CDNrと新コードのタイプを表わす部分CDNtと
から成っている。例えば、C MAJORの新コードは
CDNr=0、CDNt=0で表現される。変数(レジ
スタ)CDBは新コードの1つ前のコード(直前コー
ド)を表わす。CDBは直前コードのルートを表わす部
分CDBrと直前コードのタイプを表わす部分CDBt
とから成る。変数(レジスタ)FDNは新コードの機能
名を表わす。FDNは新コードを現在のキーノートで評
価したスケール度数(機能)を表わす部分FDNdと新
コードのタイプを表わす部分FDNt(CDNtと同じ
データ)とから成る。例えば、
【外字5】 の機能名はFDNd=2、FDNt=0で示される。変
数(レジスタ)FDBは直前のコードの機能名を表わ
し、直前のコードを現キーノートで評価したスケール度
数(機能)を表わす部分FDBdと直前コードのタイプ
を表わす部分FDBt(CDBtと同じデータ)とから
成る。変数(レジスタ)TDNはキーノートが特定され
ている状況の下で現在の調性を表わし、現在のキーノー
トを表わす部分TDNkと現在のスケールを表わす部分
TDNsとから成る。TDNkとTDNsとにより、機
能を特定できたコード区間において使用可能なピッチク
ラスセットが規定される。例えば、C、D、E、F、
G、A、Bのピッチクラスから成るC Ionianの
調性はTDNk=0、TDNs=0で表現される。一
方、機能を特定できなかったコード区間において使用可
能なピッチクラスセットはCDNrとTDNsとにより
規定される。変数(テーブル)TDKは複数(ここでは
4種類の)関係調性を記憶する。テーブルTDKの各調
性データTDK[i]はキーノートを表わす部分TDK
k[i]とスケールを表わす部分TDKs[i]とから
成る。テーブルTDKの最初のアドレスにある最初の調
性データTDK[0]のキーノート部は現キーノートの
ドミナント(属調)である関係キーノートを表わす。同
様にしてTDK[1]、TDK[2]、TDK[3]の
各キーノート部には現キーノートのサブドミナント(下
属調)、ドミナントのドミナント、サブドミナントのサ
ブドミナントを表わすキーノートデータが記憶される。
変数(テーブル)FDKは各関係キーノートTDKk
[i]で評価した新コードCDNと直前コードCDBの
機能名を記憶する。各機能名FDK[i]はコードのス
ケール度数を表わす部分FDKd[i]とコードタイプ
を表わす部分FDKt[i]から成る。テーブルFDK
の偶数アドレスには各関係キーノートで評価した新コー
ドの機能名が記憶され、奇数アドレスには各関係キーノ
ートで評価した直前コードの機能名が記憶される。詳細
には、テーブルFDKのアドレス0にあるデータFDK
[0]は新コードを現キーノートのドミナントで評価し
たスケール度数と新コードのタイプとから成る。アドレ
ス1にあるデータFDK[1]は直前コードのドミナン
トキーにおける機能名を表わす。同様にして、FDK
[2]、FDK[3]はサブドミナントキーにおける新
コードの機能名、直前コードの機能名をそれぞれ表わ
し、FDK[4]、FDK[5]はドミナントのドミナ
ントキーで評価した新コードと直前コードの機能名を表
わし、FDK[6]、FDK[7]はサブドミナントの
サブドミナントキーで評価した新コードと直前コードの
各機能名を表わす。関係キーノートについて、関係調性
テーブルTDKのアドレスiは、テーブルFDKのアド
レス2i(新コードに対して)とアドレス(2i+1)
(直前コードに対して)に対応している。変数iは各種
テーブル上の要素に対するポインタとして使用される。
変数(レジスタ)CDFはCDNより2つ前のコードを
表わし、ルートCDFrとタイプCDFtから成る。変
数(レジスタ)CDGはCDNより3つ前のコードを表
わし、ルートCDGrとタイプCDGtから成る。主音
保留フラグCAOSはキーが確定しているか(分析した
コードの機能が特定されているか)どうかを示す。コー
ド進行の入力を開始する際に主音保留フラグCAOSは
“キー保留状態”(CAOS=1)に初期設定される。
コード進行の入力中、主音保留フラグCAOSはキーノ
ート・機能判定ルーチン4−3で新コードの機能を特定
できたときに“キー確定状態”となり、ルーチン4−3
でコードの機能を特定できなかったときに“キー保留状
態”となる。変数RDTbは新コードと1つ前のコード
とのルート差を表わす。同様に変数RDTfは1つ前の
コードと2つ前のコードとのルート差を表わし、変数R
DTgは2つ前のコードと3つ前のコードとのルート差
を表わす。変数ANTは実際に演奏される伴奏音のピッ
チを表わす。
数(レジスタ)FDBは直前のコードの機能名を表わ
し、直前のコードを現キーノートで評価したスケール度
数(機能)を表わす部分FDBdと直前コードのタイプ
を表わす部分FDBt(CDBtと同じデータ)とから
成る。変数(レジスタ)TDNはキーノートが特定され
ている状況の下で現在の調性を表わし、現在のキーノー
トを表わす部分TDNkと現在のスケールを表わす部分
TDNsとから成る。TDNkとTDNsとにより、機
能を特定できたコード区間において使用可能なピッチク
ラスセットが規定される。例えば、C、D、E、F、
G、A、Bのピッチクラスから成るC Ionianの
調性はTDNk=0、TDNs=0で表現される。一
方、機能を特定できなかったコード区間において使用可
能なピッチクラスセットはCDNrとTDNsとにより
規定される。変数(テーブル)TDKは複数(ここでは
4種類の)関係調性を記憶する。テーブルTDKの各調
性データTDK[i]はキーノートを表わす部分TDK
k[i]とスケールを表わす部分TDKs[i]とから
成る。テーブルTDKの最初のアドレスにある最初の調
性データTDK[0]のキーノート部は現キーノートの
ドミナント(属調)である関係キーノートを表わす。同
様にしてTDK[1]、TDK[2]、TDK[3]の
各キーノート部には現キーノートのサブドミナント(下
属調)、ドミナントのドミナント、サブドミナントのサ
ブドミナントを表わすキーノートデータが記憶される。
変数(テーブル)FDKは各関係キーノートTDKk
[i]で評価した新コードCDNと直前コードCDBの
機能名を記憶する。各機能名FDK[i]はコードのス
ケール度数を表わす部分FDKd[i]とコードタイプ
を表わす部分FDKt[i]から成る。テーブルFDK
の偶数アドレスには各関係キーノートで評価した新コー
ドの機能名が記憶され、奇数アドレスには各関係キーノ
ートで評価した直前コードの機能名が記憶される。詳細
には、テーブルFDKのアドレス0にあるデータFDK
[0]は新コードを現キーノートのドミナントで評価し
たスケール度数と新コードのタイプとから成る。アドレ
ス1にあるデータFDK[1]は直前コードのドミナン
トキーにおける機能名を表わす。同様にして、FDK
[2]、FDK[3]はサブドミナントキーにおける新
コードの機能名、直前コードの機能名をそれぞれ表わ
し、FDK[4]、FDK[5]はドミナントのドミナ
ントキーで評価した新コードと直前コードの機能名を表
わし、FDK[6]、FDK[7]はサブドミナントの
サブドミナントキーで評価した新コードと直前コードの
各機能名を表わす。関係キーノートについて、関係調性
テーブルTDKのアドレスiは、テーブルFDKのアド
レス2i(新コードに対して)とアドレス(2i+1)
(直前コードに対して)に対応している。変数iは各種
テーブル上の要素に対するポインタとして使用される。
変数(レジスタ)CDFはCDNより2つ前のコードを
表わし、ルートCDFrとタイプCDFtから成る。変
数(レジスタ)CDGはCDNより3つ前のコードを表
わし、ルートCDGrとタイプCDGtから成る。主音
保留フラグCAOSはキーが確定しているか(分析した
コードの機能が特定されているか)どうかを示す。コー
ド進行の入力を開始する際に主音保留フラグCAOSは
“キー保留状態”(CAOS=1)に初期設定される。
コード進行の入力中、主音保留フラグCAOSはキーノ
ート・機能判定ルーチン4−3で新コードの機能を特定
できたときに“キー確定状態”となり、ルーチン4−3
でコードの機能を特定できなかったときに“キー保留状
態”となる。変数RDTbは新コードと1つ前のコード
とのルート差を表わす。同様に変数RDTfは1つ前の
コードと2つ前のコードとのルート差を表わし、変数R
DTgは2つ前のコードと3つ前のコードとのルート差
を表わす。変数ANTは実際に演奏される伴奏音のピッ
チを表わす。
【0051】図7にインターラプトルーチン(図4)に
おけるキーノート機能判定4−3の詳細を示す。まず7
−1でCPU100はキーが保留かどうか、即ち現キー
ノートが確定しているかどうかを検査する。詳細には、
図8に示すように、主音保留フラグCAOSが“1”の
とき現キーノートは不確定であり、CAOS=0なら現
キーノートは確定している。現キーノートが確定してい
る場合、CPU100は新コードを現キーノートで評価
した機能名に変更する(7−2)。詳細には、図9に示
すように、新コードのタイプCDNtをFDNtにセッ
トし(9−1)、新コードのルート(のピッチクラス)
CDNrを現キーノートTDNkからのスケール度数F
DNdに変換する(9−2)。
おけるキーノート機能判定4−3の詳細を示す。まず7
−1でCPU100はキーが保留かどうか、即ち現キー
ノートが確定しているかどうかを検査する。詳細には、
図8に示すように、主音保留フラグCAOSが“1”の
とき現キーノートは不確定であり、CAOS=0なら現
キーノートは確定している。現キーノートが確定してい
る場合、CPU100は新コードを現キーノートで評価
した機能名に変更する(7−2)。詳細には、図9に示
すように、新コードのタイプCDNtをFDNtにセッ
トし(9−1)、新コードのルート(のピッチクラス)
CDNrを現キーノートTDNkからのスケール度数F
DNdに変換する(9−2)。
【0052】次のルーチン7−3でCPU100は、新
コードの機能名(機能表現)FDNについて、同一キー
ノート維持コードテーブルを検索する。同一キーノート
維持コードテーブルはROM102に置かれ、その一例
がOFTとして図10に示される。同一キーノート維持
コードテーブルOFTは、キーノートを維持するコード
のセットを記憶する。記憶される各コードデータは機能
名の形式であり、スケール度数(機能)を表わす部分と
コードタイプを表わす部分とから成る。例えば、同一キ
ーノート維持コードテーブルOFTのアドレス14にあ
るデータ(7、9)はコード機能名
コードの機能名(機能表現)FDNについて、同一キー
ノート維持コードテーブルを検索する。同一キーノート
維持コードテーブルはROM102に置かれ、その一例
がOFTとして図10に示される。同一キーノート維持
コードテーブルOFTは、キーノートを維持するコード
のセットを記憶する。記憶される各コードデータは機能
名の形式であり、スケール度数(機能)を表わす部分と
コードタイプを表わす部分とから成る。例えば、同一キ
ーノート維持コードテーブルOFTのアドレス14にあ
るデータ(7、9)はコード機能名
【外字6】 を表わす。なお、テーブルOFTの最終アドレス(ここ
では28)にはテーブルの終りを示すデータ“15”が
記憶される。
では28)にはテーブルの終りを示すデータ“15”が
記憶される。
【0053】同一キーノート維持コードテーブルOFT
が新コードの機能名FDNに一致するコードを含むなら
ば、7−2での仮定、即ち、新コードに対するキーノー
トを現キーノートとした仮定は正しかったことになり、
新コードは現キーノートを維持する(機能を有する)コ
ードであるということができる。検索ルーチン7−3の
詳細は図11に示される。最初に(11−1)同一キー
ノート維持コードテーブルOFTに対するポインタiを
先頭位置“0”に初期化する。ポインタiで示される同
一キーノート維持コードテーブルOFTの要素OFT
[i]を現キーノートで評価した新コードの機能名FD
Nと比較する(11−3)。一致するならば、検索ルー
チン7−3は成功で終了し、その確認(7−4)後、キ
ーノート機能判定フロー(図7)も終了する。このと
き、新コード区間におけるキーノートは現キーノートと
同一であり、TDNkによって示される。また新コード
の正しい機能がFDNによって示される。不一致の場合
は、次のテーブル要素OFT[i]と機能名を比較する
ために、ポインタiをインクリメントする。同一キーノ
ート維持コードテーブルOFT[i]に新コードの機能
名FDNと一致する要素が含まれないときは、11−2
で、テーブル終了条件OFT[i]=15が成立し、処
理は図7の7−4を通って7−5に進む。
が新コードの機能名FDNに一致するコードを含むなら
ば、7−2での仮定、即ち、新コードに対するキーノー
トを現キーノートとした仮定は正しかったことになり、
新コードは現キーノートを維持する(機能を有する)コ
ードであるということができる。検索ルーチン7−3の
詳細は図11に示される。最初に(11−1)同一キー
ノート維持コードテーブルOFTに対するポインタiを
先頭位置“0”に初期化する。ポインタiで示される同
一キーノート維持コードテーブルOFTの要素OFT
[i]を現キーノートで評価した新コードの機能名FD
Nと比較する(11−3)。一致するならば、検索ルー
チン7−3は成功で終了し、その確認(7−4)後、キ
ーノート機能判定フロー(図7)も終了する。このと
き、新コード区間におけるキーノートは現キーノートと
同一であり、TDNkによって示される。また新コード
の正しい機能がFDNによって示される。不一致の場合
は、次のテーブル要素OFT[i]と機能名を比較する
ために、ポインタiをインクリメントする。同一キーノ
ート維持コードテーブルOFT[i]に新コードの機能
名FDNと一致する要素が含まれないときは、11−2
で、テーブル終了条件OFT[i]=15が成立し、処
理は図7の7−4を通って7−5に進む。
【0054】7−5でCPU100は直前コードの機能
名FDBを現キーノートTDNkに従って生成する。詳
細には、CPU100はタイプ変数FDNtを直前コー
ドのタイプCDBtにセットし、直前コードのスケール
度数の変数FDNdを(CDBr+12−TDNk)m
od12に従って求める。
名FDBを現キーノートTDNkに従って生成する。詳
細には、CPU100はタイプ変数FDNtを直前コー
ドのタイプCDBtにセットし、直前コードのスケール
度数の変数FDNdを(CDBr+12−TDNk)m
od12に従って求める。
【0055】次に、CPU100は、直前コードの機能
名FDBと新コードの機能名とから成るコードシーケン
ス(機能コードパターン)について、平行調コードシー
ケンステーブルを検索する(7−6)。平行調コードシ
ーケンステーブルはROM102に置かれ、その一例を
MCSTとして図12に示す。平行調コードシーケンス
テーブルMCSTには同一の調号(Key signature)内
における長調から短調への変化(例えば、CからAmへ
の変化)を示唆する機能コードパターンのセットが記憶
される。図12のメモリマップでは(フォーマット参
照)、平行調コードシーケンステーブルの各々2つの連
続するアドレスに平行短調への変化を支持する1つの機
能コード対が記憶され、偶数アドレスには機能コード対
の最初のコードの機能名(スケール度数とコードタイ
プ)が記憶され、奇数アドレスにはコード対の後のコー
ドの機能名が記憶される。また、テーブルMCSTの最
終アドレス(ここでは84)にはテーブル終了を示すデ
ータ“15”が記憶される。
名FDBと新コードの機能名とから成るコードシーケン
ス(機能コードパターン)について、平行調コードシー
ケンステーブルを検索する(7−6)。平行調コードシ
ーケンステーブルはROM102に置かれ、その一例を
MCSTとして図12に示す。平行調コードシーケンス
テーブルMCSTには同一の調号(Key signature)内
における長調から短調への変化(例えば、CからAmへ
の変化)を示唆する機能コードパターンのセットが記憶
される。図12のメモリマップでは(フォーマット参
照)、平行調コードシーケンステーブルの各々2つの連
続するアドレスに平行短調への変化を支持する1つの機
能コード対が記憶され、偶数アドレスには機能コード対
の最初のコードの機能名(スケール度数とコードタイ
プ)が記憶され、奇数アドレスにはコード対の後のコー
ドの機能名が記憶される。また、テーブルMCSTの最
終アドレス(ここでは84)にはテーブル終了を示すデ
ータ“15”が記憶される。
【0056】平行調コードシーケンステーブルMCST
内に、直前コードの機能名と新コードの機能名とから成
る機能コードパターンと一致する機能コードパターン
(コード対)が含まれるならば、直前コードと新コード
との組み合わせによって同一調号内における長調から短
調への変化が示唆されていると結論できる。
内に、直前コードの機能名と新コードの機能名とから成
る機能コードパターンと一致する機能コードパターン
(コード対)が含まれるならば、直前コードと新コード
との組み合わせによって同一調号内における長調から短
調への変化が示唆されていると結論できる。
【0057】平行調コードシーケンステーブルMCST
に対する検索ルーチン7−6の詳細を図13に示す。ま
ず13−1で、ポインタiを“0”に初期化する。直前
コードの機能名FDBをポインタiで示されるテーブル
要素MCST[i]と比較し、新コードの機能名FDN
を次のテーブル要素MCST[i+1]と比較して機能
コードパターンの一致/不一致をテストする(14−
3)。一致すれば、検索ルーチン7−7は成功で終了
し、その確認後(7−7)キーノート、機能判定フロー
(図13)も終了する。この結果、新コード区間に対す
るキーノート(ここでは調号)は現キーノートTDNk
で示され、新コードの正しい機能はFDNで示されてい
る。マッチングテスト13−3が不一致のときは、次の
機能コードパターンのマッチングテストを行うためにテ
ーブルアドレスポインタiを2つインクリメントする。
平行調コードシーケンステーブルMCSTに、直前コー
ドの機能名FDBと新コードの機能名FDNから成る機
能コードパターンと同一のものが含まれない場合には、
13−2でテーブル終了(MCST[i]=15)が検
出され、処理は図7の7−7を分岐して7−8に示すピ
ボット転調検査ルーチンに進む。
に対する検索ルーチン7−6の詳細を図13に示す。ま
ず13−1で、ポインタiを“0”に初期化する。直前
コードの機能名FDBをポインタiで示されるテーブル
要素MCST[i]と比較し、新コードの機能名FDN
を次のテーブル要素MCST[i+1]と比較して機能
コードパターンの一致/不一致をテストする(14−
3)。一致すれば、検索ルーチン7−7は成功で終了
し、その確認後(7−7)キーノート、機能判定フロー
(図13)も終了する。この結果、新コード区間に対す
るキーノート(ここでは調号)は現キーノートTDNk
で示され、新コードの正しい機能はFDNで示されてい
る。マッチングテスト13−3が不一致のときは、次の
機能コードパターンのマッチングテストを行うためにテ
ーブルアドレスポインタiを2つインクリメントする。
平行調コードシーケンステーブルMCSTに、直前コー
ドの機能名FDBと新コードの機能名FDNから成る機
能コードパターンと同一のものが含まれない場合には、
13−2でテーブル終了(MCST[i]=15)が検
出され、処理は図7の7−7を分岐して7−8に示すピ
ボット転調検査ルーチンに進む。
【0058】ピボット転調検査では、直前コードと新コ
ードとにより、現キーノートから別のキーノートへの転
調の可能性を調べる。このために、ROM102に転調
コードシーケンステーブルが設けられる。転調コードシ
ーケンステーブルは、図14のピボットコードテーブル
PDBと図15の転調後コードテーブルMDBから成
る。ピボットコードテーブルPDBには転調前のキーノ
ートにおいて使用可能なコードの機能名(度数とタイ
プ)のセットが記憶される。転調後コードテーブルMD
Bには転調後のキーノートにおいて使用可能なコードの
機能名(度数とタイプ)セットが記憶される。
ードとにより、現キーノートから別のキーノートへの転
調の可能性を調べる。このために、ROM102に転調
コードシーケンステーブルが設けられる。転調コードシ
ーケンステーブルは、図14のピボットコードテーブル
PDBと図15の転調後コードテーブルMDBから成
る。ピボットコードテーブルPDBには転調前のキーノ
ートにおいて使用可能なコードの機能名(度数とタイ
プ)のセットが記憶される。転調後コードテーブルMD
Bには転調後のキーノートにおいて使用可能なコードの
機能名(度数とタイプ)セットが記憶される。
【0059】ピボット転調検査ルーチン7−8の詳細を
図16に示す。まず、16−1で、CPU100は、現
在キーノートTDNkに関係する4種類の関係キーノー
ト(ドミナント、サブドミナント、ドミナントのドミナ
ント、サブドミナントのサブドミナント)を生成する。
この結果TDKk[0]がドミナントキーノート、TD
Kk[1]がサブドミナントキーノート、TDKk
[2]がドミナントのドミナントキーノート、TDKk
[3]がサブドミナントのサブドミナントキーノートの
各ピッチクラスを表わす。次に、CPU100は、16
−2〜16−5において、4種の関係キーノートの各々
によって評価した新コードの機能名と直前コードの機能
名を生成する。この結果、FDK[0]が最初の関係キ
ーノート、即ちドミナントキーノートで評価した新コー
ドの機能名(スケール度数FDKk[0]とタイプFD
Kd[0])を表わし、FDK[1]がドミナントキー
ノートで評価した直前コードの機能名を表わし、FDK
[2]とFDK[3]が第2の関係キーノート(サブド
ミナントキーノート)で評価した新コードと直前コード
の各機能名を表わし、FDK[4]とFDK[5]が第
3の関係キーノート(ドミナントのドミナントキーノー
ト)で評価した新コードと直前コードの各機能名を表わ
し、FDK[6]とFDK[7]が第4の関係キーノー
ト(サブドミナントのサブドミナントキーノート)で評
価した新コードと直前コードの各機能名を表わす。第
(i+1)番目の関係キーノートで評価した新コードの
スケール度数FDKd[i×2]は、新コードのルート
CDNrと第(i+1)番目の関係キーノートTDKk
[i]とを用いて(CDNr+12−TDKk[i])
mod12で与えられ、同様に第(i+1)番目の関係
キーノートで評価した直前コードの機能、即ち、直前コ
ードのルートCDBrの、第(i+1)番目の関係キー
ノートTDKk[i]からのスケール度数FDKd[i
×2+1]は、(CDBr+12−TDKk[i])m
od12で与えられる。
図16に示す。まず、16−1で、CPU100は、現
在キーノートTDNkに関係する4種類の関係キーノー
ト(ドミナント、サブドミナント、ドミナントのドミナ
ント、サブドミナントのサブドミナント)を生成する。
この結果TDKk[0]がドミナントキーノート、TD
Kk[1]がサブドミナントキーノート、TDKk
[2]がドミナントのドミナントキーノート、TDKk
[3]がサブドミナントのサブドミナントキーノートの
各ピッチクラスを表わす。次に、CPU100は、16
−2〜16−5において、4種の関係キーノートの各々
によって評価した新コードの機能名と直前コードの機能
名を生成する。この結果、FDK[0]が最初の関係キ
ーノート、即ちドミナントキーノートで評価した新コー
ドの機能名(スケール度数FDKk[0]とタイプFD
Kd[0])を表わし、FDK[1]がドミナントキー
ノートで評価した直前コードの機能名を表わし、FDK
[2]とFDK[3]が第2の関係キーノート(サブド
ミナントキーノート)で評価した新コードと直前コード
の各機能名を表わし、FDK[4]とFDK[5]が第
3の関係キーノート(ドミナントのドミナントキーノー
ト)で評価した新コードと直前コードの各機能名を表わ
し、FDK[6]とFDK[7]が第4の関係キーノー
ト(サブドミナントのサブドミナントキーノート)で評
価した新コードと直前コードの各機能名を表わす。第
(i+1)番目の関係キーノートで評価した新コードの
スケール度数FDKd[i×2]は、新コードのルート
CDNrと第(i+1)番目の関係キーノートTDKk
[i]とを用いて(CDNr+12−TDKk[i])
mod12で与えられ、同様に第(i+1)番目の関係
キーノートで評価した直前コードの機能、即ち、直前コ
ードのルートCDBrの、第(i+1)番目の関係キー
ノートTDKk[i]からのスケール度数FDKd[i
×2+1]は、(CDBr+12−TDKk[i])m
od12で与えられる。
【0060】16−6〜16−9において、CPU10
0は現キーノートから第1〜第4番目(i=0〜3)の
関係キーノートのそれぞれへの転調の可能性を調べてい
る。直前コードCDBと新コードCDNとから成るコー
ドシーケンスが、現キーノートTDNkから第(i+
1)番目の関係キーノートTDKk[i]への転調を示
唆するための条件は次の通りである。第1に現キーノー
トTDKkで評価した直前コードの機能名FDBがピボ
ットコードテーブルPDB[ ]に含まれること、第2
に関係キーノートTDKk[i]で評価した直前コード
の機能名FDK[i×2+1]が転調後コードテーブル
MDB[ ]に含まれること、第3に関係キーノートT
DKk[i]で評価した新コードの機能名FDK[i×
2]が転調後コードテーブルMDB[ ]に含まれるこ
とである(16−7)。これらの条件がすべて成立する
場合、ピボット転調検査ルーチン(図16)は「適合す
る」で終了する。この時点で、新コード区間に対するキ
ーノート(条件を成立させた関係キーノート)はTDK
k[i]に記憶されている。また新コードの正しい機能
はFDK[i×2]に記憶されている。そこで、CPU
100は図7の7−9から7−10に進み、その詳細を
図17に示すように、TDNkにTDKk[i]をセッ
トして現キーノートを更新し(17−1)、FDNにF
DK[i×2]の内容をセットする(17−2)。
0は現キーノートから第1〜第4番目(i=0〜3)の
関係キーノートのそれぞれへの転調の可能性を調べてい
る。直前コードCDBと新コードCDNとから成るコー
ドシーケンスが、現キーノートTDNkから第(i+
1)番目の関係キーノートTDKk[i]への転調を示
唆するための条件は次の通りである。第1に現キーノー
トTDKkで評価した直前コードの機能名FDBがピボ
ットコードテーブルPDB[ ]に含まれること、第2
に関係キーノートTDKk[i]で評価した直前コード
の機能名FDK[i×2+1]が転調後コードテーブル
MDB[ ]に含まれること、第3に関係キーノートT
DKk[i]で評価した新コードの機能名FDK[i×
2]が転調後コードテーブルMDB[ ]に含まれるこ
とである(16−7)。これらの条件がすべて成立する
場合、ピボット転調検査ルーチン(図16)は「適合す
る」で終了する。この時点で、新コード区間に対するキ
ーノート(条件を成立させた関係キーノート)はTDK
k[i]に記憶されている。また新コードの正しい機能
はFDK[i×2]に記憶されている。そこで、CPU
100は図7の7−9から7−10に進み、その詳細を
図17に示すように、TDNkにTDKk[i]をセッ
トして現キーノートを更新し(17−1)、FDNにF
DK[i×2]の内容をセットする(17−2)。
【0061】いずれの関係キーノートについても転調条
件が成立しないときはピボット転調検査ルーチン(図1
6)は「適合しない」で終了し、処理は7−9から分岐
してキー確立コードシーケンステーブル検索ルーチン7
−11に進む。現キーノートが不確定の場合(7−1)
もこのルーチン7−11が実行される。
件が成立しないときはピボット転調検査ルーチン(図1
6)は「適合しない」で終了し、処理は7−9から分岐
してキー確立コードシーケンステーブル検索ルーチン7
−11に進む。現キーノートが不確定の場合(7−1)
もこのルーチン7−11が実行される。
【0062】検索ルーチン7−11が参照するキー確立
コードシーケンステーブルにはキーを確立ないし示唆す
るコードシーケンスのセットが記憶される。一般にキー
確立コードシーケンスは、そのコードシーケンスを構成
する複数のコードの構成音によって特定の調を示唆する
ようなピッチクラスセットが得られることによって特徴
づけられる。例えば、コードパターンDminor→G
7th→CMAJORにおいて最初のコードDmino
rの構成音はD、F、A、2番目のコードG7thの構
成音はG、B、D、F、3番目のコードC MAJOR
の構成音はC、E、Gであり、これらの構成音を集める
とピッチクラスセット(C、D、E、F、G、A、B)
が得られる。このピッチクラスセットはキーがCである
ハ長調を明確にしている。したがって、このコードパタ
ーンは特定のキーを確立するコードシーケンスである。
ちなみにキーノートCによりこのコードパターンを機能
名パターンに変換すると、
コードシーケンステーブルにはキーを確立ないし示唆す
るコードシーケンスのセットが記憶される。一般にキー
確立コードシーケンスは、そのコードシーケンスを構成
する複数のコードの構成音によって特定の調を示唆する
ようなピッチクラスセットが得られることによって特徴
づけられる。例えば、コードパターンDminor→G
7th→CMAJORにおいて最初のコードDmino
rの構成音はD、F、A、2番目のコードG7thの構
成音はG、B、D、F、3番目のコードC MAJOR
の構成音はC、E、Gであり、これらの構成音を集める
とピッチクラスセット(C、D、E、F、G、A、B)
が得られる。このピッチクラスセットはキーがCである
ハ長調を明確にしている。したがって、このコードパタ
ーンは特定のキーを確立するコードシーケンスである。
ちなみにキーノートCによりこのコードパターンを機能
名パターンに変換すると、
【外字7】 となる。
【0063】逆に上記のような(ルート・タイプ表現
の)コードパターンが与えられた場合に、それによって
示唆されるキーノートを判定するために、次のような音
楽ルール(キー確立コードシーケンス知識)を用意して
みる。音楽ルール:{条件部}2つ前のコード→1つ前
のコード→新コードから成るコードパターンにおいて、
(a)新コードのタイプが“MAJOR”であり、
(b)1つ前のコードのタイプが“7th”であり、
(c)1つ前のコードのルートが新コードのルートより
“完全5度上”であり、(d)2つ前のコードのタイプ
が“minor”であり、(e)2つ前のコードのルー
トが1つ前のコードのルートより“完全4度下”である
ならば、{結論部}新コードの機能は
の)コードパターンが与えられた場合に、それによって
示唆されるキーノートを判定するために、次のような音
楽ルール(キー確立コードシーケンス知識)を用意して
みる。音楽ルール:{条件部}2つ前のコード→1つ前
のコード→新コードから成るコードパターンにおいて、
(a)新コードのタイプが“MAJOR”であり、
(b)1つ前のコードのタイプが“7th”であり、
(c)1つ前のコードのルートが新コードのルートより
“完全5度上”であり、(d)2つ前のコードのタイプ
が“minor”であり、(e)2つ前のコードのルー
トが1つ前のコードのルートより“完全4度下”である
ならば、{結論部}新コードの機能は
【外字8】 である。上記コードパターンDminor→G7th→
C MAJORはこのルールの条件部を満たすもので、
新コードC MAJORの機能は
C MAJORはこのルールの条件部を満たすもので、
新コードC MAJORの機能は
【外字8】と結論づけられる。更に、この機能
【外字8】と新コードのルート“C”とからコードパタ
ーンが示唆するキーノートは“C”であると結論づけら
れる。(以上の説明は、この実施例におけるキー確立コ
ードシーケンステーブル検索によるキーノート・機能判
定の概要を述べたものである。)
ーンが示唆するキーノートは“C”であると結論づけら
れる。(以上の説明は、この実施例におけるキー確立コ
ードシーケンステーブル検索によるキーノート・機能判
定の概要を述べたものである。)
【0064】ドミナント進行やサブドミナント進行のコ
ードシーケンスはキー確立コードシーケンスの代表的な
ものである。表1〜表3にドミナント進行に属するキー
確立コードシーケンスを、表4〜表6にサブドミナント
進行に属するキー確立コードシーケンスを示す。
ードシーケンスはキー確立コードシーケンスの代表的な
ものである。表1〜表3にドミナント進行に属するキー
確立コードシーケンスを、表4〜表6にサブドミナント
進行に属するキー確立コードシーケンスを示す。
【表1】
【表2】
【表3】
【表4】
【表5】
【表6】
【0065】図18に検索ルーチン7−11で参照され
るキー確立コードシーケンステーブルCPDのメモリフ
ォーマットを示す。キー確立コードシーケンステーブル
CPDは表1〜表6に示すようなコードシーケンスを含
むキー確立コードシーケンスを含むキー確立コードシー
ケンスのセットを記憶する。図示のメモリフォーマット
によれば、各キー確立コードシーケンスエントリの最初
のアドレスCPD[i]はそのタイプ部CPDt[i]
にキー確立コードシーケンスの最後のコード(コード進
行入力装置からの新コードと比較されることになるコー
ド)のタイプを記憶し、次アドレスCPD[i+1]は
そのタイプ部CPDt[i+1]に1つ前のルートのコ
ードのタイプを記憶し、そのルート部CPPr[i+
1]に1つ前のルートの最後のコードのルートとの差を
記憶する。以下同様にして、後続アドレスはキー確立コ
ードシーケンスの最初のコードの条件(そのタイプ及び
そのルートの次のルートとの差)までを記憶し、その次
のアドレスはタイプ部(上位桁)にキー確立コードシー
ケンスのデータ終了マーク“100”を記憶し、ルート
部(下位桁)に結論としてコードシーケンスの最後のコ
ードの機能を記憶する。このキー確立コードシーケンス
テーブルCPDは最も長いキー確立コードシーケンスと
して4つのコードから成るコードシーケンスを含んでい
る(もちろん、これに限定されるものではない)。
るキー確立コードシーケンステーブルCPDのメモリフ
ォーマットを示す。キー確立コードシーケンステーブル
CPDは表1〜表6に示すようなコードシーケンスを含
むキー確立コードシーケンスを含むキー確立コードシー
ケンスのセットを記憶する。図示のメモリフォーマット
によれば、各キー確立コードシーケンスエントリの最初
のアドレスCPD[i]はそのタイプ部CPDt[i]
にキー確立コードシーケンスの最後のコード(コード進
行入力装置からの新コードと比較されることになるコー
ド)のタイプを記憶し、次アドレスCPD[i+1]は
そのタイプ部CPDt[i+1]に1つ前のルートのコ
ードのタイプを記憶し、そのルート部CPPr[i+
1]に1つ前のルートの最後のコードのルートとの差を
記憶する。以下同様にして、後続アドレスはキー確立コ
ードシーケンスの最初のコードの条件(そのタイプ及び
そのルートの次のルートとの差)までを記憶し、その次
のアドレスはタイプ部(上位桁)にキー確立コードシー
ケンスのデータ終了マーク“100”を記憶し、ルート
部(下位桁)に結論としてコードシーケンスの最後のコ
ードの機能を記憶する。このキー確立コードシーケンス
テーブルCPDは最も長いキー確立コードシーケンスと
して4つのコードから成るコードシーケンスを含んでい
る(もちろん、これに限定されるものではない)。
【0066】図19にキー確立コードシーケンステーブ
ルCPDを検索する検索ルーチン7−11の詳細を示
す。まず、i=0によりキー確立コードシーケンステー
ブルCPDの先頭をロケートし(19−1)、RDTb
=CDNr−CDBrにより、新コードのルートと1つ
前のコードのルートとの差を算出する(19−2)。な
お、図示のフローでは、他のルート差RDTf(1つ前
のコードのルートCDBrと2つ前のコードのルートC
DFrとの差)、RDTg(2つ前のコードのルートC
DFrと3つ前のコードのルートCDGrとの差)の算
出をループ内で行っているが(19−6、19−1
0)、検索速度を上げるため実際のプログラムではこの
段階でいっかつしてルート差RDTb、RDTf、RD
Tgを算出している。続く19−3〜19−16で、新
コードを末尾とする入力コードパターンと一致するキー
確立コードシーケンスを捜している。
ルCPDを検索する検索ルーチン7−11の詳細を示
す。まず、i=0によりキー確立コードシーケンステー
ブルCPDの先頭をロケートし(19−1)、RDTb
=CDNr−CDBrにより、新コードのルートと1つ
前のコードのルートとの差を算出する(19−2)。な
お、図示のフローでは、他のルート差RDTf(1つ前
のコードのルートCDBrと2つ前のコードのルートC
DFrとの差)、RDTg(2つ前のコードのルートC
DFrと3つ前のコードのルートCDGrとの差)の算
出をループ内で行っているが(19−6、19−1
0)、検索速度を上げるため実際のプログラムではこの
段階でいっかつしてルート差RDTb、RDTf、RD
Tgを算出している。続く19−3〜19−16で、新
コードを末尾とする入力コードパターンと一致するキー
確立コードシーケンスを捜している。
【0067】新コードと1つ前のコードから成る(長さ
2の)入力コードパターンがキー確立コードシーケンス
テーブルCPD中の長さ2のキー確立コードシーケンス
の条件を満足する場合、19−3と19−4が成立す
る。即ち、CDNt=CPDt[i]、CDBt=CP
Dt[i+1]、RDTb=CPDr[i+1]、CP
Dt[i+2]=100が成立する。この場合、検索ル
ーチンは19−5へ進んで、i=i+2により、そのキ
ー確立コードシーケンスの結論(特定された新コードの
機能)をロケートし、“適合する”をキーノート・機能
判定ルーチンに返す。
2の)入力コードパターンがキー確立コードシーケンス
テーブルCPD中の長さ2のキー確立コードシーケンス
の条件を満足する場合、19−3と19−4が成立す
る。即ち、CDNt=CPDt[i]、CDBt=CP
Dt[i+1]、RDTb=CPDr[i+1]、CP
Dt[i+2]=100が成立する。この場合、検索ル
ーチンは19−5へ進んで、i=i+2により、そのキ
ー確立コードシーケンスの結論(特定された新コードの
機能)をロケートし、“適合する”をキーノート・機能
判定ルーチンに返す。
【0068】新コードと1つ前のコードと2つ前のコー
ドから成る(長さ3の)入力コードパターンがキー確立
コードシーケンステーブルCPD中の(長さが3の)あ
るキー確立コードシーケンスの条件を満足する場合、1
9−3成立、19−4不成立、19−7(CDFt=C
PDt[i+2]、RDTf=CPDr[i+2])と
19−8(CPDt[i+3]=100)成立となる。
この場合、検索ルーチンは19−9へ進み、i=i+3
によりそのキー確立コードシーケンスの結論をロケート
し、“適合する”で終了する。
ドから成る(長さ3の)入力コードパターンがキー確立
コードシーケンステーブルCPD中の(長さが3の)あ
るキー確立コードシーケンスの条件を満足する場合、1
9−3成立、19−4不成立、19−7(CDFt=C
PDt[i+2]、RDTf=CPDr[i+2])と
19−8(CPDt[i+3]=100)成立となる。
この場合、検索ルーチンは19−9へ進み、i=i+3
によりそのキー確立コードシーケンスの結論をロケート
し、“適合する”で終了する。
【0069】同様に、新コードから3つ前のコードまで
の長さ4の入力コードパターンがテーブルCPD中の
(長さが4の)あるキー確立コードシーケンスの条件を
満足する場合、19−3成立、19−4不成立、19−
7成立、19−8不成立、19−11(CDGt=CP
Dt[i+3]、RDTg=CPDr[i+3])成立
となる。そこで検索ルーチンは19−12でi=i+4
によりそのキー確立コードシーケンスの結論をロケート
し、“適合する”で終了する。
の長さ4の入力コードパターンがテーブルCPD中の
(長さが4の)あるキー確立コードシーケンスの条件を
満足する場合、19−3成立、19−4不成立、19−
7成立、19−8不成立、19−11(CDGt=CP
Dt[i+3]、RDTg=CPDr[i+3])成立
となる。そこで検索ルーチンは19−12でi=i+4
によりそのキー確立コードシーケンスの結論をロケート
し、“適合する”で終了する。
【0070】入力コードパターンが着目しているキー確
立コードシーケンスの条件を満足しない場合、19−3
か19−7か19−11が不成立となる。この場合、検
索ルーチンは、19−13〜19−16により、次のキ
ー確立コードシーケンスをロケートし、このシーケンス
と入力コードパターンとのマッチングテストのために1
9−3にリターンして検索をつづける。入力コードパタ
ーンがキー確立コードシーケンステーブルCPDにある
どのキー確立コードシーケンスにも適合しない場合、1
9−16でテーブルCPDの検索終了が検出され、検索
ルーチンは“適合しない”をキーノート・機能判定ルー
チンに返す。
立コードシーケンスの条件を満足しない場合、19−3
か19−7か19−11が不成立となる。この場合、検
索ルーチンは、19−13〜19−16により、次のキ
ー確立コードシーケンスをロケートし、このシーケンス
と入力コードパターンとのマッチングテストのために1
9−3にリターンして検索をつづける。入力コードパタ
ーンがキー確立コードシーケンステーブルCPDにある
どのキー確立コードシーケンスにも適合しない場合、1
9−16でテーブルCPDの検索終了が検出され、検索
ルーチンは“適合しない”をキーノート・機能判定ルー
チンに返す。
【0071】キーノート・機能判定ルーチン(図7)は
7−12でキー確立コードシーケンステーブル検索ルー
チンが“適合する”で終ったかどうかをチェックし、
“適合する”であれば、キー保留解除7−13と調設定
7−14を実行する。すなわち、図21に示すようにC
AOS=0によりキーの保留状態を解除し、図22に示
すように、新コードのルートと、検索ルーチン7−11
で見つけたキー確立コードシーケンスの結論(最後のコ
ードの機能)とからTDNk=CDNr+12−CPD
r[i]mod12により、キーノートTDNkを求め
(22−1)、FDNd=CPDr[i]により、キー
確立コードシーケンスの結論を新コードの機能FDNd
とする(22−2)。一方、キー確立コードシーケンス
テーブル検索ルーチンが“適合しない”で終った場合
は、キーノート・機能判定ルーチンはCAOS=1によ
り(図20)、キーの保留状態を設定する(7−1
5)。
7−12でキー確立コードシーケンステーブル検索ルー
チンが“適合する”で終ったかどうかをチェックし、
“適合する”であれば、キー保留解除7−13と調設定
7−14を実行する。すなわち、図21に示すようにC
AOS=0によりキーの保留状態を解除し、図22に示
すように、新コードのルートと、検索ルーチン7−11
で見つけたキー確立コードシーケンスの結論(最後のコ
ードの機能)とからTDNk=CDNr+12−CPD
r[i]mod12により、キーノートTDNkを求め
(22−1)、FDNd=CPDr[i]により、キー
確立コードシーケンスの結論を新コードの機能FDNd
とする(22−2)。一方、キー確立コードシーケンス
テーブル検索ルーチンが“適合しない”で終った場合
は、キーノート・機能判定ルーチンはCAOS=1によ
り(図20)、キーの保留状態を設定する(7−1
5)。
【0072】図23にスケール判定ルーチン4−4のフ
ローを示す。スケール判定ルーチン4−4はキーノート
・機能判定ルーチン4−3(図7)の次に実行される。
図7のフローからわかるように、キーノート・機能判定
ルーチン4−3で新コードの機能を特定できた場合に
は、キー保留フラグCAOSはキー保留解除状態“0”
となり、新コードの機能を特定できなかった場合には、
キー保留フラグCAOSはキー保留状態“1”となる。
前者の場合(23−1)、スケール判定ルーチンは調性
を狭く解釈するために機能名/スケール変換テーブルに
よって新コードの区間におけるスケールを決定する(2
3−2)。後者の場合、スケール判定ルーチンは調性を
広く解釈するためにコードタイプ/スケール変換テーブ
ルによって新コードの区間におけるスケールを決定する
(23−3)。
ローを示す。スケール判定ルーチン4−4はキーノート
・機能判定ルーチン4−3(図7)の次に実行される。
図7のフローからわかるように、キーノート・機能判定
ルーチン4−3で新コードの機能を特定できた場合に
は、キー保留フラグCAOSはキー保留解除状態“0”
となり、新コードの機能を特定できなかった場合には、
キー保留フラグCAOSはキー保留状態“1”となる。
前者の場合(23−1)、スケール判定ルーチンは調性
を狭く解釈するために機能名/スケール変換テーブルに
よって新コードの区間におけるスケールを決定する(2
3−2)。後者の場合、スケール判定ルーチンは調性を
広く解釈するためにコードタイプ/スケール変換テーブ
ルによって新コードの区間におけるスケールを決定する
(23−3)。
【0073】図24に機能名/スケール変換テーブルの
構成例をSCTとして示す。機能名/スケール変換テー
ブルSCTには、コードの機能名(機能とタイプ)とス
ケールとの対応が記憶される。図24のメモリマップの
場合(フォーマット参照)、テーブルSCTの各々、2
つの連続アドレスのなかの偶数アドレスに1つのコード
機能名(スケール度数とタイプ)が記憶され、次アドレ
スである奇数アドレスにその機能名に適合するスケール
名が記憶される。例えば、アドレス6、7には機能名
構成例をSCTとして示す。機能名/スケール変換テー
ブルSCTには、コードの機能名(機能とタイプ)とス
ケールとの対応が記憶される。図24のメモリマップの
場合(フォーマット参照)、テーブルSCTの各々、2
つの連続アドレスのなかの偶数アドレスに1つのコード
機能名(スケール度数とタイプ)が記憶され、次アドレ
スである奇数アドレスにその機能名に適合するスケール
名が記憶される。例えば、アドレス6、7には機能名
【外字9】 (データ7、0)に適合するスケールとしてミクソリデ
ィアンMIXOLYDIAN(データ2)が示されてい
る。ただし、アドレス60、62、64に示されるよう
に特殊なコードタイプ(コードタイプAug、dim、
及び
ィアンMIXOLYDIAN(データ2)が示されてい
る。ただし、アドレス60、62、64に示されるよう
に特殊なコードタイプ(コードタイプAug、dim、
及び
【外字6】SUS4以外のSUS4)のコードについて
は、そのコードのルートのキーノートからのスケール度
数とは無関係に適合するスケールが定められる性質があ
る。この性質(機能)を示すため、これらの特殊コード
の度数エリア(機能部)にはデータ“14”が記憶され
る。換言すると、これらのコードに対するスケールはタ
イプ/スケール変換で得ている。またテーブルSCTの
最終アドレス(ここでは66)にはテーブル終了を示す
符号“15”が記憶される。
は、そのコードのルートのキーノートからのスケール度
数とは無関係に適合するスケールが定められる性質があ
る。この性質(機能)を示すため、これらの特殊コード
の度数エリア(機能部)にはデータ“14”が記憶され
る。換言すると、これらのコードに対するスケールはタ
イプ/スケール変換で得ている。またテーブルSCTの
最終アドレス(ここでは66)にはテーブル終了を示す
符号“15”が記憶される。
【0074】機能名/スケール変換ルーチン23−2の
詳細なフローを図25に示す。このフローに入る時点で
FDNにはキーノート・機能判定処理(図7)の結果と
して、新コードの正しい機能名が記憶されており、FD
Ndが新コードのスケール度数(機能)を表わし、FD
Ntが新コードのタイプを表わしている。まず25−1
でCPU100は機能名/スケール変換テーブルSCT
に対するポインタiを“0”に初期化する。ポインタi
は25−2〜25−5のループにおいて、テーブル先頭
(i=0)からテーブル終了(SCTd[i]=15)
まで、2ずつインクリメントされる。新コードの機能名
FDNをポインタiの指すテーブル要素SCT[i]と
比較し(25−4)、一致すれば、次のテーブル要素S
CT[i+1]に記憶されるスケール識別データを調性
データメモリTDNのスケール部TDNsにセットする
(25−7)。タイプのみによってスケールを特定する
特殊コードが新コードの場合には、新コードのタイプF
DNtと一致するデータSCTt[i]をもち、特殊コ
ードであることを示すデータSCTd[i]=14をも
つテーブル要素SCTd[i]が発見される(25−
3)。その場合、次のテーブル要素SCT[i+1]に
記憶されるスケール識別データを調性データメモリTD
Nのスケール部TDNsにセットする(25−6)。
詳細なフローを図25に示す。このフローに入る時点で
FDNにはキーノート・機能判定処理(図7)の結果と
して、新コードの正しい機能名が記憶されており、FD
Ndが新コードのスケール度数(機能)を表わし、FD
Ntが新コードのタイプを表わしている。まず25−1
でCPU100は機能名/スケール変換テーブルSCT
に対するポインタiを“0”に初期化する。ポインタi
は25−2〜25−5のループにおいて、テーブル先頭
(i=0)からテーブル終了(SCTd[i]=15)
まで、2ずつインクリメントされる。新コードの機能名
FDNをポインタiの指すテーブル要素SCT[i]と
比較し(25−4)、一致すれば、次のテーブル要素S
CT[i+1]に記憶されるスケール識別データを調性
データメモリTDNのスケール部TDNsにセットする
(25−7)。タイプのみによってスケールを特定する
特殊コードが新コードの場合には、新コードのタイプF
DNtと一致するデータSCTt[i]をもち、特殊コ
ードであることを示すデータSCTd[i]=14をも
つテーブル要素SCTd[i]が発見される(25−
3)。その場合、次のテーブル要素SCT[i+1]に
記憶されるスケール識別データを調性データメモリTD
Nのスケール部TDNsにセットする(25−6)。
【0075】なお、特殊コードについても機能名/スケ
ール変換を行うようにテーブルSCTを変形することが
できる。また、図示のテーブルSCTでは機能名とスケ
ールを1対1対応にしていないが、(スケール表示では
なく)伴奏に利用する場合には1対1対応、即ち、機能
名ごとに固有のスケール名を返すようにテーブルSCT
を構成して機能名ごとに異なる(ピッチラインをもつ)
伴奏が得られるようにすることが望ましい。
ール変換を行うようにテーブルSCTを変形することが
できる。また、図示のテーブルSCTでは機能名とスケ
ールを1対1対応にしていないが、(スケール表示では
なく)伴奏に利用する場合には1対1対応、即ち、機能
名ごとに固有のスケール名を返すようにテーブルSCT
を構成して機能名ごとに異なる(ピッチラインをもつ)
伴奏が得られるようにすることが望ましい。
【0076】図26にコードタイプ/スケール変換テー
ブルの構成例をCFDとして示す。コードタイプ/スケ
ール変換テーブルCFDは各コードタイプに対するスケ
ーるを記憶する。そのようなスケールは図1(F)に関
して述べたような共通PC方式に従って定めることがで
きる。したがって、コードタイプ/スケール変換ルーチ
ン23−2では図27に示すように、TDNs=CFD
[CDNt]により、変換テーブルCFDから新コード
のタイプCDNtに対するスケールデータを取り出して
TDNsにセットしている。
ブルの構成例をCFDとして示す。コードタイプ/スケ
ール変換テーブルCFDは各コードタイプに対するスケ
ーるを記憶する。そのようなスケールは図1(F)に関
して述べたような共通PC方式に従って定めることがで
きる。したがって、コードタイプ/スケール変換ルーチ
ン23−2では図27に示すように、TDNs=CFD
[CDNt]により、変換テーブルCFDから新コード
のタイプCDNtに対するスケールデータを取り出して
TDNsにセットしている。
【0077】伴奏処理4−5(図4)の詳細を図28に
示す。このフローで音楽スタイル別に使用される基準伴
奏パターンの例を図29に示す。この伴奏パターンはキ
ーノートとしてC、コード機能名として
示す。このフローで音楽スタイル別に使用される基準伴
奏パターンの例を図29に示す。この伴奏パターンはキ
ーノートとしてC、コード機能名として
【外字10】 を想定している。図30に示す伴奏パターンメモリAM
(ROM102内)に図29の伴奏パターンを表わすデ
ータが記憶される。詳細には、伴奏パターンメモリAM
のアドレスにあるデータはピッチ部(第1部分)AMP
と図31に示すピッチチェンジテーブルPCTのテーブ
ル列番号を表わす部分(第2部分)AMTとから成る。
図28のフローに従って、CPU100は伴奏パターン
メモリAMを繰り返し読み出す。読み出したデータの第
1部分がピッチを表わす場合に、CPU100はそのピ
ッチを調性に適合させるため、ピッチチェンジテーブル
PCTを介して変更し、変更されたピッチのデータを楽
音生成装置108に送って、楽音信号を生成させる。
(ROM102内)に図29の伴奏パターンを表わすデ
ータが記憶される。詳細には、伴奏パターンメモリAM
のアドレスにあるデータはピッチ部(第1部分)AMP
と図31に示すピッチチェンジテーブルPCTのテーブ
ル列番号を表わす部分(第2部分)AMTとから成る。
図28のフローに従って、CPU100は伴奏パターン
メモリAMを繰り返し読み出す。読み出したデータの第
1部分がピッチを表わす場合に、CPU100はそのピ
ッチを調性に適合させるため、ピッチチェンジテーブル
PCTを介して変更し、変更されたピッチのデータを楽
音生成装置108に送って、楽音信号を生成させる。
【0078】図31に示すピッチチェンジテーブルPC
Tは伴奏パターンメモリAMからのピッチを調性に適合
させるための差ピッチデータを記憶する。このテーブル
PCTの各列は基準伴奏パターンの各ピッチを表わし、
動作時に伴奏パターンメモリAMから読み出したピッチ
に関連する列ポインタAMTによって特定の列が指定さ
れる。テーブルPCTの各行は各スケールを表わし、動
作時にスケール判定ルーチン4−4からのスケールデー
タにより特定の行が指定される。列と行の交点に(行と
列が指定されたアドレスに)、その列が表わすピッチを
その行が表わすスケールに従って変更するのに用いる差
ピッチデータが記憶される。ピッチチェンジテーブルP
CTは大きく分けて、機能対応スケール群とタイプ対応
スケール群とに分かれる。機能対応スケール群は機能名
/スケール変換テーブルSCTから得られるスケール群
に対応し、タイプ対応スケール群はタイプ/スケール変
換テーブルCFDから得られるスケール群に対応する。
ただし、両テーブルSCT、CFDとも無判定コードを
含むのでこれらのコードに対応するピッチチェンジテー
ブルPCTの領域は共通化されている。
Tは伴奏パターンメモリAMからのピッチを調性に適合
させるための差ピッチデータを記憶する。このテーブル
PCTの各列は基準伴奏パターンの各ピッチを表わし、
動作時に伴奏パターンメモリAMから読み出したピッチ
に関連する列ポインタAMTによって特定の列が指定さ
れる。テーブルPCTの各行は各スケールを表わし、動
作時にスケール判定ルーチン4−4からのスケールデー
タにより特定の行が指定される。列と行の交点に(行と
列が指定されたアドレスに)、その列が表わすピッチを
その行が表わすスケールに従って変更するのに用いる差
ピッチデータが記憶される。ピッチチェンジテーブルP
CTは大きく分けて、機能対応スケール群とタイプ対応
スケール群とに分かれる。機能対応スケール群は機能名
/スケール変換テーブルSCTから得られるスケール群
に対応し、タイプ対応スケール群はタイプ/スケール変
換テーブルCFDから得られるスケール群に対応する。
ただし、両テーブルSCT、CFDとも無判定コードを
含むのでこれらのコードに対応するピッチチェンジテー
ブルPCTの領域は共通化されている。
【0079】図28のフローにおいて、CPU100は
最初に、伴奏パターンポインタjを1つ進め(28−
1)、jが伴奏パターンメモリAMのサイズ(図30の
場合16)に達したら(28−2)、jを伴奏パターン
メモリAMの先頭を指す“0”に戻す(28−3)。次
にCPU100はポインタjの指す伴奏パターンメモリ
AMの第1データ部AMP[j]がピッチを示すデータ
かどうか調べる(28−4)。これが成立しないときは
なにもせずに伴奏処理ルーチンを終了する。AM
P[j]がピッチを表わしている場合には、28−5〜
28−8で伴奏音のピッチデータを生成する。
最初に、伴奏パターンポインタjを1つ進め(28−
1)、jが伴奏パターンメモリAMのサイズ(図30の
場合16)に達したら(28−2)、jを伴奏パターン
メモリAMの先頭を指す“0”に戻す(28−3)。次
にCPU100はポインタjの指す伴奏パターンメモリ
AMの第1データ部AMP[j]がピッチを示すデータ
かどうか調べる(28−4)。これが成立しないときは
なにもせずに伴奏処理ルーチンを終了する。AM
P[j]がピッチを表わしている場合には、28−5〜
28−8で伴奏音のピッチデータを生成する。
【0080】詳細には、現キー状態がキー保留状態でな
く(28−5)、新コード(現コード)が無判定コード
でない(28−6)場合には、28−7に示すように、 ANT=AMP[j]+PCT(TDNS)(AMN[j])+TDNK により、実際に演奏される伴奏音のピッチを表わすデー
タANTを生成する。即ち、伴奏パターンメモリAMか
らの基準ピッチデータAMP[j]に、ピッチチェンジ
テーブルPCTの第TDNS行、AMN[j]列にある差
ピッチデータを加え、更にその結果に現キーノートTD
NKを加えて実伴奏ピッチデータANTを得る。ここに
差ピッチデータPCT(TDNS)(AMN[j])はキ
ーノートC、コード機能名
く(28−5)、新コード(現コード)が無判定コード
でない(28−6)場合には、28−7に示すように、 ANT=AMP[j]+PCT(TDNS)(AMN[j])+TDNK により、実際に演奏される伴奏音のピッチを表わすデー
タANTを生成する。即ち、伴奏パターンメモリAMか
らの基準ピッチデータAMP[j]に、ピッチチェンジ
テーブルPCTの第TDNS行、AMN[j]列にある差
ピッチデータを加え、更にその結果に現キーノートTD
NKを加えて実伴奏ピッチデータANTを得る。ここに
差ピッチデータPCT(TDNS)(AMN[j])はキ
ーノートC、コード機能名
【外字10】に適合するように書かれた基準伴奏パター
ンのピッチAMP[j]を、キーノート・機能判定ルー
チン(図7)で特定した現コードの機能名(ないしこの
機能名に対応するスケール)に適合するように変更する
ためのものである。したがって、AMP[j]+PCT
(TDNS)(AMN[j])の項は、キーノートがCで
機能名が現コードの機能名の場合の伴奏ピッチを表わ
す。したがってこの項に現キーノートのデータTDNS
を加えれば、現在の音楽状況に適合する伴奏ピッチ、即
ち現キーノートと現コード機能名に適合する伴奏ピッチ
が得られる。
ンのピッチAMP[j]を、キーノート・機能判定ルー
チン(図7)で特定した現コードの機能名(ないしこの
機能名に対応するスケール)に適合するように変更する
ためのものである。したがって、AMP[j]+PCT
(TDNS)(AMN[j])の項は、キーノートがCで
機能名が現コードの機能名の場合の伴奏ピッチを表わ
す。したがってこの項に現キーノートのデータTDNS
を加えれば、現在の音楽状況に適合する伴奏ピッチ、即
ち現キーノートと現コード機能名に適合する伴奏ピッチ
が得られる。
【0081】現キー状態がキー保留状態である場合には
28−8に示すように、 ANT=AMP[j]+PCT(TDNS)(AMN[j])+CDNr により、実伴奏ピッチデータANTを生成する。即ち、
伴奏パターンメモリAMからの基準ピッチデータにピッ
チチェンジテーブルPCTの第TDNS行、AMN[j]
列にある差ピッチデータを加え、更にその結果に現コー
ドルートCDNrを加えて実伴奏ピッチデータANTを
得る。この場合の差ピッチデータはコードルートCと同
じピッチクラスの基音Cで始まるスケール“IONIA
N”、即ち、ピッチクラスセット(C、D、E、F、
G、A、B)に適合するように書かれた基準伴奏パター
ンのピッチAMP[j]を、現コードのタイプを広い調
性で解釈したスケールに適合するように変更するための
ものである。したがって、この式のAMP[j]+PC
T(TDNS)(AMN[j])の項は、基音がC(コー
ドルートがC)で現コードのタイプに対応するスケール
の場合のピッチを表わす。したがって、この項に現コー
ドルートのデータCDNrを加えれば、現在の音楽状況
に適した伴奏音ピッチ、即ち現コードのルートとタイプ
から広い調性解釈に従って定められる使用可能なピッチ
クラスセットに適合する伴奏音ピッチが得られる。
28−8に示すように、 ANT=AMP[j]+PCT(TDNS)(AMN[j])+CDNr により、実伴奏ピッチデータANTを生成する。即ち、
伴奏パターンメモリAMからの基準ピッチデータにピッ
チチェンジテーブルPCTの第TDNS行、AMN[j]
列にある差ピッチデータを加え、更にその結果に現コー
ドルートCDNrを加えて実伴奏ピッチデータANTを
得る。この場合の差ピッチデータはコードルートCと同
じピッチクラスの基音Cで始まるスケール“IONIA
N”、即ち、ピッチクラスセット(C、D、E、F、
G、A、B)に適合するように書かれた基準伴奏パター
ンのピッチAMP[j]を、現コードのタイプを広い調
性で解釈したスケールに適合するように変更するための
ものである。したがって、この式のAMP[j]+PC
T(TDNS)(AMN[j])の項は、基音がC(コー
ドルートがC)で現コードのタイプに対応するスケール
の場合のピッチを表わす。したがって、この項に現コー
ドルートのデータCDNrを加えれば、現在の音楽状況
に適した伴奏音ピッチ、即ち現コードのルートとタイプ
から広い調性解釈に従って定められる使用可能なピッチ
クラスセットに適合する伴奏音ピッチが得られる。
【0082】なお、現キー状態がキー保留解除状態であ
っても現コードが調無判定コードの場合にはキー保留状
態に準じて実伴奏音ピッチデータANTを得ている(2
8−8)。最後に、CPU100はこのようにして生成
された伴奏音のピッチデータを含むノートオンコマンド
を楽音生成装置108に送って、対応するピッチの楽音
を生成させる(28−7)。
っても現コードが調無判定コードの場合にはキー保留状
態に準じて実伴奏音ピッチデータANTを得ている(2
8−8)。最後に、CPU100はこのようにして生成
された伴奏音のピッチデータを含むノートオンコマンド
を楽音生成装置108に送って、対応するピッチの楽音
を生成させる(28−7)。
【0083】図32は本装置による伴奏例を示したもの
である。コード進行として、C Major→F Ma
jor→G Major→C Majorが使用されて
いる。このコード進行から、キーノート・機能判定(図
7)により、キーノートが“C”で、機能名進行が
である。コード進行として、C Major→F Ma
jor→G Major→C Majorが使用されて
いる。このコード進行から、キーノート・機能判定(図
7)により、キーノートが“C”で、機能名進行が
【外字11】 の分析結果が得られる(このコード進行に先行する区間
のキーノートとしてCが与えられた場合)。したがっ
て、C Majorの区間の伴奏は、伴奏パターンメモ
リAMのピッチ内容が変更されずに形成される。しか
し、コードF Majorの区間では記憶される基準伴
奏パターンのピッチラインC5→E5→B4→E5→A
4→E5→B4→E5のうち、E5がピッチ変更テーブ
ルPCTのピッチ変更データ“1”に従って半音上げら
れ(コード機能名
のキーノートとしてCが与えられた場合)。したがっ
て、C Majorの区間の伴奏は、伴奏パターンメモ
リAMのピッチ内容が変更されずに形成される。しか
し、コードF Majorの区間では記憶される基準伴
奏パターンのピッチラインC5→E5→B4→E5→A
4→E5→B4→E5のうち、E5がピッチ変更テーブ
ルPCTのピッチ変更データ“1”に従って半音上げら
れ(コード機能名
【外字12】 なので、C5→F5→B4→F5→A4→F5→B4→
F5のピッチラインが形成される。また、コードG M
ajorの区間ではそのコード機能名が
F5のピッチラインが形成される。また、コードG M
ajorの区間ではそのコード機能名が
【外字9】なので、ピッチ変更テーブルPCTに従い基
準伴奏パターンのピッチラインにおけるC5がピッチ変
更データ“1”によりB4に半音下げられE5、B4、
A4がピッチ変更データ“2”により全音下げられてD
5、A4、G4に変更され、その結果、B4→D5→A
4→D5→G4→D5→A4→D5のピッチラインが形
成される。
準伴奏パターンのピッチラインにおけるC5がピッチ変
更データ“1”によりB4に半音下げられE5、B4、
A4がピッチ変更データ“2”により全音下げられてD
5、A4、G4に変更され、その結果、B4→D5→A
4→D5→G4→D5→A4→D5のピッチラインが形
成される。
【0084】図33に本装置によるキー保留時の伴奏例
を示す。詳細には、図33はキーが保留の状態の下で
(現キーノートが存在しないか不明な音楽状況下で)、
コードC Majorが与えられた場合に、このコード
の区間において演奏される伴奏を示したものである。こ
のような音楽状況の下で与えられるコードCMajor
に対し、キーノート・機能判定ルーチン(図7)はコー
ドC Majorの機能を特定することはできない。し
たがって、コードC Majorの区間で使用可能なピ
ッチクラスセットはC、D、E、G、Aとなる(図1
(F)参照)。この場合、タイプ/スケール変換ルーチ
ンの実行結果としてピッチチェンジテーブルPCTのS
CALE1の行(タイプMajorに対応する行)が基
準伴奏パターンメモリAMからのピッチを変更するため
に選択される。結果として基準伴奏パターンのピッチラ
イン、C5→E5→B4→E5→A4→E5→B4→E
5は、ピッチクラスセットC、D、E、G、Aに適合す
るピッチライン(図33の伴奏のピッチライン)C5→
E5→G4→E5→A4→E5→G4→E5に変更され
る。両ピッチラインを比較してみると、基準伴奏ピッチ
B4がG4に変化していることがわかる(これはテーブ
ルPCTのSCALE1行、2列のデータ“−4”をB
4のピッチデータに加えた結果である)。変更の理由は
ピッチB4のピッチクラスBが使用可能なピッチクラス
セットC、D、E、G、Aに含まれないからである。図
33の伴奏は3つの調C、F、Gの可能性を秘めている
ので後続する伴奏が調C、調F、調Gのいずれを明確に
するようなものであっても、その調性を損わないように
作用する。
を示す。詳細には、図33はキーが保留の状態の下で
(現キーノートが存在しないか不明な音楽状況下で)、
コードC Majorが与えられた場合に、このコード
の区間において演奏される伴奏を示したものである。こ
のような音楽状況の下で与えられるコードCMajor
に対し、キーノート・機能判定ルーチン(図7)はコー
ドC Majorの機能を特定することはできない。し
たがって、コードC Majorの区間で使用可能なピ
ッチクラスセットはC、D、E、G、Aとなる(図1
(F)参照)。この場合、タイプ/スケール変換ルーチ
ンの実行結果としてピッチチェンジテーブルPCTのS
CALE1の行(タイプMajorに対応する行)が基
準伴奏パターンメモリAMからのピッチを変更するため
に選択される。結果として基準伴奏パターンのピッチラ
イン、C5→E5→B4→E5→A4→E5→B4→E
5は、ピッチクラスセットC、D、E、G、Aに適合す
るピッチライン(図33の伴奏のピッチライン)C5→
E5→G4→E5→A4→E5→G4→E5に変更され
る。両ピッチラインを比較してみると、基準伴奏ピッチ
B4がG4に変化していることがわかる(これはテーブ
ルPCTのSCALE1行、2列のデータ“−4”をB
4のピッチデータに加えた結果である)。変更の理由は
ピッチB4のピッチクラスBが使用可能なピッチクラス
セットC、D、E、G、Aに含まれないからである。図
33の伴奏は3つの調C、F、Gの可能性を秘めている
ので後続する伴奏が調C、調F、調Gのいずれを明確に
するようなものであっても、その調性を損わないように
作用する。
【0085】このように、本自動伴奏装置では、コード
の機能を特定できないときに、そのコードのタイプとル
ートから広い調性を許容するような伴奏をそのコード区
間で演奏することにより、曲の伴奏全体の調性の流れを
自然なものにすることができる。
の機能を特定できないときに、そのコードのタイプとル
ートから広い調性を許容するような伴奏をそのコード区
間で演奏することにより、曲の伴奏全体の調性の流れを
自然なものにすることができる。
【0086】
【変形例】以上で実施例の説明を終えるが、この発明の
範囲内で種々の変形が可能である。例えば、複数の調性
判定モジュールをコード進行の同一コードの調性判定の
ためにすべて動作させその結果得られる複数の調性判定
結果に基づいて最終的な調性判定を行うようにすること
ができる。例えば、先行区間の調が判明している状況に
おいて、先行調情報を新コードの機能判定に利用する第
1判定部30だけでなく、先行調情報を手掛りとしない
で新コードの機能を判定する第2判定部40も動作させ
る。そして第1判定部30の結果と第2判定部40の結
果とを所定の論理に従って組み合わせて最終的な調性を
決定する。所定の組み合わせ論理として次のようなもの
が使用できる。(a)複数の判定部のうち1つの判定部
(例えば第1判定部)のみが新コードの機能を特定でき
(判定成功で)、他の判定部(第2判定部)は判定失敗
の場合は、判定成功の判定部の結果を最終的な調性の決
定に用い、(b)複数の判定部が判定成功で新コードの
機能として同じ判定結果を出したときはその判定結果を
最終的な調性の決定に用い、(c)複数の判定部が判定
に成功したが新コードの機能として異なる判定結果を出
したときには、下記の(c1)あるいは(c2)の方法
で最終的な調性を決定する。(c1)判定に成功した複
数の判定モジュールの判定結果のなかで、その判定に利
用したコードシーケンスの長さが最長である判定結果を
最終的な調性の決定に用いる。例えば、第1判定部の判
定結果が機能
範囲内で種々の変形が可能である。例えば、複数の調性
判定モジュールをコード進行の同一コードの調性判定の
ためにすべて動作させその結果得られる複数の調性判定
結果に基づいて最終的な調性判定を行うようにすること
ができる。例えば、先行区間の調が判明している状況に
おいて、先行調情報を新コードの機能判定に利用する第
1判定部30だけでなく、先行調情報を手掛りとしない
で新コードの機能を判定する第2判定部40も動作させ
る。そして第1判定部30の結果と第2判定部40の結
果とを所定の論理に従って組み合わせて最終的な調性を
決定する。所定の組み合わせ論理として次のようなもの
が使用できる。(a)複数の判定部のうち1つの判定部
(例えば第1判定部)のみが新コードの機能を特定でき
(判定成功で)、他の判定部(第2判定部)は判定失敗
の場合は、判定成功の判定部の結果を最終的な調性の決
定に用い、(b)複数の判定部が判定成功で新コードの
機能として同じ判定結果を出したときはその判定結果を
最終的な調性の決定に用い、(c)複数の判定部が判定
に成功したが新コードの機能として異なる判定結果を出
したときには、下記の(c1)あるいは(c2)の方法
で最終的な調性を決定する。(c1)判定に成功した複
数の判定モジュールの判定結果のなかで、その判定に利
用したコードシーケンスの長さが最長である判定結果を
最終的な調性の決定に用いる。例えば、第1判定部の判
定結果が機能
【外字3】であり、その判定のために長さ2(コード数
2)のコードシーケンス知識を用いたとし、第2判定部
の判定結果が機能
2)のコードシーケンス知識を用いたとし、第2判定部
の判定結果が機能
【外字1】であり、その判定のために長さ3のコードシ
ーケンス知識を用いたとすれば、第2判定部の判定結果
“新コードの機能
ーケンス知識を用いたとすれば、第2判定部の判定結果
“新コードの機能
【外字1】”を最終的な調性の決定に用いる。(c2)
判定に成功した複数の判定モジュールの判定結果である
複数の異なる機能を可能性として許容するような調性を
決定する(なお、(c1)のケースで判定の基礎にした
コードシーケンス長が同じ場合も(c2)の論理を使用
できる)。例えば、コードC Majorに対し第1判
定部がこのコードの機能を
判定に成功した複数の判定モジュールの判定結果である
複数の異なる機能を可能性として許容するような調性を
決定する(なお、(c1)のケースで判定の基礎にした
コードシーケンス長が同じ場合も(c2)の論理を使用
できる)。例えば、コードC Majorに対し第1判
定部がこのコードの機能を
【外字3】と判定し、第2判定部がこのコードの機能を
【外字1】と判定した場合に、機能
【外字3】に対して使用可能なピッチクラスセットC、
D、E、F、G、A、Bと機能
D、E、F、G、A、Bと機能
【外字1】に対して使用可能なピッチクラスセットC、
D、E、F、G、A、B♭の両方に共通なピッチクラス
C、D、E、F、G、AをコードC Majorの区間
で使用可能なピッチクラスセットとして決定する。
D、E、F、G、A、B♭の両方に共通なピッチクラス
C、D、E、F、G、AをコードC Majorの区間
で使用可能なピッチクラスセットとして決定する。
【0087】コード進行知識ベース60のデータ構造な
いしプログラム構造は種々の形式をとり得る。例えば、
同一キーノート維持コードテーブル61として、タイプ
と機能の組み合わせで指定される各ビットメモリに、そ
の組み合わせが同一キーノートを維持するか(ビット
“1”)しないか(ビット“0”)を示す1ビット情報
を記憶しておく。例えば、タイプの総数E16機能の総
数を12とした場合、1ワードが16ビットのメモリ
(各アドレスに16ビットを記憶するメモリ)であれば
連続する12のアドレスのメモリで同一キーノート維持
テーブル61を実現できる。この場合、同一キーノート
検索ルーチンは入力コードのタイプと機能とから、それ
に対応するアドレスと、そのアドレスのワード中のビッ
ト位置(入力コードのタイプと機能が同一キーノートを
維持するかどうかの情報を記憶している場所)を直接計
算できるので、高速の検索、高速の同一キーノート判定
を達成できる。
いしプログラム構造は種々の形式をとり得る。例えば、
同一キーノート維持コードテーブル61として、タイプ
と機能の組み合わせで指定される各ビットメモリに、そ
の組み合わせが同一キーノートを維持するか(ビット
“1”)しないか(ビット“0”)を示す1ビット情報
を記憶しておく。例えば、タイプの総数E16機能の総
数を12とした場合、1ワードが16ビットのメモリ
(各アドレスに16ビットを記憶するメモリ)であれば
連続する12のアドレスのメモリで同一キーノート維持
テーブル61を実現できる。この場合、同一キーノート
検索ルーチンは入力コードのタイプと機能とから、それ
に対応するアドレスと、そのアドレスのワード中のビッ
ト位置(入力コードのタイプと機能が同一キーノートを
維持するかどうかの情報を記憶している場所)を直接計
算できるので、高速の検索、高速の同一キーノート判定
を達成できる。
【0088】あるいは、各テーブルメモリ内のデータを
順序づけ、バイナリサーチ(2分木サーチ)のような高
速検索が行えるようにすれば、調性判定の処理速度を一
段と上げることができ、実時間処理のアプリケーション
にとって望ましい。例えば、調確立コードシーケンステ
ーブル63をバイナリサーチに適合させるため、テーブ
ルエントリする調確立コードシーケンスを、シーケンス
の終端のコードのタイプを示すデータの昇順に並べ、終
端コードのタイプが同じものについては第1ルート差
(1つ前のコードのルートと終端コードのルートとの
差)を表わすデータの昇順に並べ、以下、同様にして調
確立コードシーケンス順序づける。各調確立コードシー
ケンスメモリは、例えば最初のアドレスの第2部に終端
コードのタイプ、次アドレスの第1部に第1ルート差第
2部に1つ前のコードのタイプ、以下同様にして最後の
アドレスの第1部にシーケンス終了マーク、第2部に終
端コードの機能を記憶するようなフォーマットをとる。
シーケンス開始インデクステーブルを設け、これに、調
確立コードシーケンステーブルの各アドレスに対しその
アドレスに一部として記憶しているコードシーケンスが
開始する調確立コードシーケンステーブル上のアドレス
を示すシーケンス開始インデクスを記憶させる。動作に
おいて、調確立検索ルーチンは、(A1)最初に調確立
コードシーケンステーブルの真中にある調確立コードシ
ーケンスを取り出す(テーブルサイズ×1/2をインデ
クステーブルで変換して)。(A2)そのシーケンスの
終端のコードのタイプデータx1と、入力コードパター
ンの新コードのタイプデータy1を比較する。(A3)
x1>y1なら、調確立コードシーケンステーブルの前
半分の中央にある調確立コードシーケンスを取り出し
(現アドレス×1/2をインデクステーブルで変換し
て)、(A4)x1<y1なら調確立コードシーケンス
テーブルの後半分の中央にある調確立コードシーケンス
を取り出す(現アドレス+(テーブルサイズ−現アドレ
ス)×1/2をインデクステーブルで変換して)。x1
=y1なら、シーケンスの第1ルート差データx2と入
力コードパターンの第1ルート差データy2を比較し、
x2>y2なら(A3)を実行、x2<y2なら(A
4)を実行し、x1=y1、x2=y2ならシーケンス
の1つ前のコードのタイプデータx3と入力コードパタ
ーンの1つ前のコードのタイプデータy3を比較しx3
>y3なら(x1、x2、x3>y1、y2、y3と表
記する)、(A3)を実行、x3<y3(x1、x2、
x3<y1、y2、y3)なら(A4)を実行する。同
様にして、x1、x2、x3……>y1、y2、y3…
…なら(A3)をx1、x2、x3……<y1、y2、
y3……なら(A4)を実行する。(A5)次に(A
3)または(A4)で取り出した調確立コードシーケン
スを再び入力コードパターンと比較し、x1……>y1
……なら前方にあるテーブルの1/4エリアの中央の調
確立コードシーケンスを取り出し、x1……<y1……
なら後方にあるテーブルの1/4エリアの中央の調確立
コードシーケンスを取り出す。以上の処理を続けること
により、検索エリアは1、1/2、1/4、 1/8…
…と収束していくことになる。検索終了条件は、(r
1)入力コードパターンと調確立シーケンスの条件部と
の比較が一致したままでそのシーケンスの終了マークを
みたとき、“適合する”であり、(r2)今回の調確立
コードシーケンスのアドレスが前回の検索パスにおける
調確立コードシーケンスのアドレスと同一の場合に“適
合しない”である。このような2分木サーチを行なえ
ば、127のキー確立コードシーケンスをもつテーブル
に対する検索を、高々7回程度の比較(入力コードパタ
ーンと調確立シーケンスとの比較)で終了することがで
きる。
順序づけ、バイナリサーチ(2分木サーチ)のような高
速検索が行えるようにすれば、調性判定の処理速度を一
段と上げることができ、実時間処理のアプリケーション
にとって望ましい。例えば、調確立コードシーケンステ
ーブル63をバイナリサーチに適合させるため、テーブ
ルエントリする調確立コードシーケンスを、シーケンス
の終端のコードのタイプを示すデータの昇順に並べ、終
端コードのタイプが同じものについては第1ルート差
(1つ前のコードのルートと終端コードのルートとの
差)を表わすデータの昇順に並べ、以下、同様にして調
確立コードシーケンス順序づける。各調確立コードシー
ケンスメモリは、例えば最初のアドレスの第2部に終端
コードのタイプ、次アドレスの第1部に第1ルート差第
2部に1つ前のコードのタイプ、以下同様にして最後の
アドレスの第1部にシーケンス終了マーク、第2部に終
端コードの機能を記憶するようなフォーマットをとる。
シーケンス開始インデクステーブルを設け、これに、調
確立コードシーケンステーブルの各アドレスに対しその
アドレスに一部として記憶しているコードシーケンスが
開始する調確立コードシーケンステーブル上のアドレス
を示すシーケンス開始インデクスを記憶させる。動作に
おいて、調確立検索ルーチンは、(A1)最初に調確立
コードシーケンステーブルの真中にある調確立コードシ
ーケンスを取り出す(テーブルサイズ×1/2をインデ
クステーブルで変換して)。(A2)そのシーケンスの
終端のコードのタイプデータx1と、入力コードパター
ンの新コードのタイプデータy1を比較する。(A3)
x1>y1なら、調確立コードシーケンステーブルの前
半分の中央にある調確立コードシーケンスを取り出し
(現アドレス×1/2をインデクステーブルで変換し
て)、(A4)x1<y1なら調確立コードシーケンス
テーブルの後半分の中央にある調確立コードシーケンス
を取り出す(現アドレス+(テーブルサイズ−現アドレ
ス)×1/2をインデクステーブルで変換して)。x1
=y1なら、シーケンスの第1ルート差データx2と入
力コードパターンの第1ルート差データy2を比較し、
x2>y2なら(A3)を実行、x2<y2なら(A
4)を実行し、x1=y1、x2=y2ならシーケンス
の1つ前のコードのタイプデータx3と入力コードパタ
ーンの1つ前のコードのタイプデータy3を比較しx3
>y3なら(x1、x2、x3>y1、y2、y3と表
記する)、(A3)を実行、x3<y3(x1、x2、
x3<y1、y2、y3)なら(A4)を実行する。同
様にして、x1、x2、x3……>y1、y2、y3…
…なら(A3)をx1、x2、x3……<y1、y2、
y3……なら(A4)を実行する。(A5)次に(A
3)または(A4)で取り出した調確立コードシーケン
スを再び入力コードパターンと比較し、x1……>y1
……なら前方にあるテーブルの1/4エリアの中央の調
確立コードシーケンスを取り出し、x1……<y1……
なら後方にあるテーブルの1/4エリアの中央の調確立
コードシーケンスを取り出す。以上の処理を続けること
により、検索エリアは1、1/2、1/4、 1/8…
…と収束していくことになる。検索終了条件は、(r
1)入力コードパターンと調確立シーケンスの条件部と
の比較が一致したままでそのシーケンスの終了マークを
みたとき、“適合する”であり、(r2)今回の調確立
コードシーケンスのアドレスが前回の検索パスにおける
調確立コードシーケンスのアドレスと同一の場合に“適
合しない”である。このような2分木サーチを行なえ
ば、127のキー確立コードシーケンスをもつテーブル
に対する検索を、高々7回程度の比較(入力コードパタ
ーンと調確立シーケンスとの比較)で終了することがで
きる。
【0089】また、AND.OR形式の音楽ルールでコ
ードシーケンステーブルを構成すれば、その記憶容量を
節約できる。例えば、(a)(終端コードのタイプがt
1で)かつ(第1ルート差がr1かつ1つ前のコードタ
イプがt2)または(第1ルート差がr2かつ1つ前の
コードタイプがt3)ならば終端コードの機能はf1で
ある、といったAND.OR形式の音楽ルールは、デー
タt1、r1、t2、f1とシーケンス終了マーク(ま
たはシーケンスの長さ)とAND/ORの識別マークビ
ットで記憶できる。したがってAND形式の2つの音楽
ルールは(b)(終端コードのタイプがt1で)かつ
(第1ルート差がr1)かつ(1つ前のコードタイプが
t2)ならば終端コードの機能はf1である、と(c)
(終端コードのタイプがt1で)かつ(第1ルート差が
r2)かつ(1つ前のコードタイプがt3)ならば終端
コードの機能はf1である、に比べ終端コードのタイプ
t1と機能f1、終了マークのためのデータの繰り返し
を避けることができる。
ードシーケンステーブルを構成すれば、その記憶容量を
節約できる。例えば、(a)(終端コードのタイプがt
1で)かつ(第1ルート差がr1かつ1つ前のコードタ
イプがt2)または(第1ルート差がr2かつ1つ前の
コードタイプがt3)ならば終端コードの機能はf1で
ある、といったAND.OR形式の音楽ルールは、デー
タt1、r1、t2、f1とシーケンス終了マーク(ま
たはシーケンスの長さ)とAND/ORの識別マークビ
ットで記憶できる。したがってAND形式の2つの音楽
ルールは(b)(終端コードのタイプがt1で)かつ
(第1ルート差がr1)かつ(1つ前のコードタイプが
t2)ならば終端コードの機能はf1である、と(c)
(終端コードのタイプがt1で)かつ(第1ルート差が
r2)かつ(1つ前のコードタイプがt3)ならば終端
コードの機能はf1である、に比べ終端コードのタイプ
t1と機能f1、終了マークのためのデータの繰り返し
を避けることができる。
【0090】
【発明の効果】以上詳細に説明したように、この発明の
調性判定装置では、コード進行のなかで、機能・キーノ
ート判定手段が機能名とキーノートとを特定できたコー
ドに対しては、第1伴奏形成手段によりコードの機能名
とキーノートとに基づき特定の調性をサポートする伴奏
を形成し、機能名とキーノートとを特定できなかったコ
ードに対しては、第2伴奏形成手段によりコードのルー
トとタイプとに基づき複数の調性の可能性を秘めた伴奏
を形成しているので、コード進行から調性の流れが自然
で違和感のある転調を生じない伴奏を行うことができ
る。
調性判定装置では、コード進行のなかで、機能・キーノ
ート判定手段が機能名とキーノートとを特定できたコー
ドに対しては、第1伴奏形成手段によりコードの機能名
とキーノートとに基づき特定の調性をサポートする伴奏
を形成し、機能名とキーノートとを特定できなかったコ
ードに対しては、第2伴奏形成手段によりコードのルー
トとタイプとに基づき複数の調性の可能性を秘めた伴奏
を形成しているので、コード進行から調性の流れが自然
で違和感のある転調を生じない伴奏を行うことができ
る。
【図1(A)】この発明による調性判定装置の一態様を
示す機能ブロック図である。
示す機能ブロック図である。
【図1(B)】(A)に示すような調性判定装置の判定
結果を利用して伴奏を形成する伴奏形成装置の機能ブロ
ック図である。
結果を利用して伴奏を形成する伴奏形成装置の機能ブロ
ック図である。
【図1(C)】(B)に示す第1伴奏形成装置の構成例
を示す機能ブロック図である。
を示す機能ブロック図である。
【図1(D)】(B)に示す第2伴奏形成装置の機能ブ
ロック図である。
ロック図である。
【図1(E)】伴奏形成装置の別の構成例の機能ブロッ
ク図である。
ク図である。
【図1(F)】機能を特定できないコードの区間で使用
可能なピッチクラスセットを得るために共通PC法を適
用したテーブルを示す図である。
可能なピッチクラスセットを得るために共通PC法を適
用したテーブルを示す図である。
【図2】この発明の具体的な実施例に係る自動伴奏装置
のハードウェアのブロック図である。
のハードウェアのブロック図である。
【図3】図2のCPUにより実行されるメインプログラ
ムのフローチャートである。
ムのフローチャートである。
【図4】図2のCPUにより実行されるインタラプトル
ーチンのフローチャートである。
ーチンのフローチャートである。
【図5】コード構成音テーブルを示す図である。
【図6(A)】一時変数のリストの一部を示す図であ
る。
る。
【図6(B)】一時変数のリストの一部を示す図であ
る。
る。
【図6(C)】一時変数のリストの一部を示す図であ
る。
る。
【図7】キーノート・機能判定のフローチャートであ
る。
る。
【図8】現キー保留検査のフローチャートである。
【図9】新コードの機能生成のフローチャートである。
【図10】同一キーノート維持コードテーブルを例示す
る図である。
る図である。
【図11】新コードについて同一キーノート維持コード
テーブルを検索するフローチャートである。
テーブルを検索するフローチャートである。
【図12】平行調コードシーケンステーブルを例示する
図である。
図である。
【図13】直前コードと新コードとから成るコード対に
ついて平行調コードシーケンステーブルを検索するフロ
ーチャートである。
ついて平行調コードシーケンステーブルを検索するフロ
ーチャートである。
【図14】ピボットコードテーブルを例示する図であ
る。
る。
【図15】転調後コードテーブルを例示する図である。
【図16】直前コードと新コードとから成るコード対に
ついてピボットコードテーブルと転調後コードテーブル
の検索を含むピボット転調検査のフローチャートであ
る。
ついてピボットコードテーブルと転調後コードテーブル
の検索を含むピボット転調検査のフローチャートであ
る。
【図17】キーノート更新のフローチャートである。
【図18】キー確立コードシーケンステーブルを例示す
る図である。
る図である。
【図19】新コードを含む入力コードパターンについて
キー確立コードシーケンステーブルをを検索するフロー
チャートである。
キー確立コードシーケンステーブルをを検索するフロー
チャートである。
【図20】キー保留設定のフローチャートである。
【図21】キー保留解除のフローチャートである。
【図22】調設定のフローチャートである。
【図23】スケール判定のフローチャートである。
【図24】機能名/スケール変換テーブルを例示する図
である。
である。
【図25】機能名/スケール変換ルーチンのフローチャ
ートである。
ートである。
【図26】コードタイプ/スケール変換テーブルを例示
する図である。
する図である。
【図27】コードタイプ/スケール変換ルーチンのフロ
ーチャートである。
ーチャートである。
【図28】伴奏処理のフローチャートである。
【図29】伴奏パターン例の楽譜を示す図である。
【図30】図29の伴奏パターンを記憶する伴奏パター
ンメモリを示す図である。
ンメモリを示す図である。
【図31】ピッチチェンジテーブルを示す図である。
【図32】伴奏例の楽譜を示す図である。
【図33】キー保留時の伴奏例の楽譜を示す図である。
10 調性判定装置 90、90M 伴奏形成装置 20 コード進行入力装置 30 第1判定部(現キーノートを手掛りにして新コー
ドの機能とキーノートを判定する) 40 第2判定部(現キーノートを手掛りにすることな
く新コードの機能とキーノートを判定する) 60 コード進行知識データベース 50 キー保留フラグ(現キーノートが不明かどうかを
示す) 51 現キーノートメモリ 52 キーノート更新部 70 調性データ生成部(各コードの区間で使用可能な
ピッチクラスセットを決定する) 71 機能名/スケール変換テーブル(機能を特定でき
たコードの区間で使用可能なスケールを返す) 73 タイプ/スケール変換テーブル(機能を特定でき
なかったコードの区間で使用可能なスケールを返す) 190 第1伴奏形成装置(機能を特定できたコードの
区間の伴奏を形成する) 290 第2伴奏形成装置(機能を特定できなかったコ
ードの区間の伴奏を形成する) 100 CPU 102 ROM 104 RAM 106 入力装置
ドの機能とキーノートを判定する) 40 第2判定部(現キーノートを手掛りにすることな
く新コードの機能とキーノートを判定する) 60 コード進行知識データベース 50 キー保留フラグ(現キーノートが不明かどうかを
示す) 51 現キーノートメモリ 52 キーノート更新部 70 調性データ生成部(各コードの区間で使用可能な
ピッチクラスセットを決定する) 71 機能名/スケール変換テーブル(機能を特定でき
たコードの区間で使用可能なスケールを返す) 73 タイプ/スケール変換テーブル(機能を特定でき
なかったコードの区間で使用可能なスケールを返す) 190 第1伴奏形成装置(機能を特定できたコードの
区間の伴奏を形成する) 290 第2伴奏形成装置(機能を特定できなかったコ
ードの区間の伴奏を形成する) 100 CPU 102 ROM 104 RAM 106 入力装置
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−83591(JP,A) 特開 平2−29787(JP,A) 特開 平1−173099(JP,A) 特開 昭58−95396(JP,A) 特開 平2−135496(JP,A) 実開 平1−169280(JP,U) 特公 昭63−22313(JP,B2) (58)調査した分野(Int.Cl.7,DB名) G10H 1/36 - 1/42 G10H 1/00 101 - 102
Claims (1)
- 【請求項1】 各コードをルートとタイプで表現したコ
ード進行を付与するコード進行付与手段と、 コード進行を分析するための知識ベースを記憶する知識
記憶手段と、 上記コード進行付与手段から付与されたコード進行を上
記知識ベースに基づいて分析して各コードの機能名とキ
ーノートを判定する機能・キーノート判定手段と、 分析されたコード進行のなかで、上記機能・キーノート
判定手段により機能名とキーノートが特定された第1コ
ードに対しては、第1コードの区間において使用可能な
ピッチクラスのセットを規定する第1調性データを、特
定されたコードの機能名とキーノートとに基づいて生成
する第1調性データ生成手段と、 分析されたコード進行のなかで、上記機能・キーノート
判定手段により機能名とキーノートが特定されなかった
第2コードに対しては、第2コードの区間において使用
可能なピッチクラスのセットを規定する第2調性データ
を、第2コードのルートとタイプに基づいて生成する第
2調性データ生成手段と、 上記第1調性データ生成手段に応答し、上記第1調性デ
ータに基づいて上記第1コードの区間における伴奏を形
成する第1伴奏形成手段と、 上記第2調性データ生成手段に応答し、上記第2調性デ
ータに基づいて上記第2コードの区間における伴奏を形
成する第2伴奏形成手段と、 を有し、 更に、上記第2調性データ生成手段は、機能名とキーノ
ートが特定されなかったコードの区間において使用可能
なピッチクラスのセットを、そのコードがとり得る複数
の機能名とキーノートの可能性に対して共通して使用可
能なピッチクラスセットによって規定する手段を有す
る、 ことを特徴とする自動伴奏装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18540991A JP3163654B2 (ja) | 1991-06-29 | 1991-06-29 | 自動伴奏装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18540991A JP3163654B2 (ja) | 1991-06-29 | 1991-06-29 | 自動伴奏装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0511766A JPH0511766A (ja) | 1993-01-22 |
JP3163654B2 true JP3163654B2 (ja) | 2001-05-08 |
Family
ID=16170290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18540991A Expired - Fee Related JP3163654B2 (ja) | 1991-06-29 | 1991-06-29 | 自動伴奏装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3163654B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3744366B2 (ja) * | 2001-03-06 | 2006-02-08 | ヤマハ株式会社 | 楽曲データに基づく音楽記号自動決定装置、楽曲データに基づく楽譜表示制御装置、および、楽曲データに基づく音楽記号自動決定プログラム |
JP5168297B2 (ja) * | 2010-02-04 | 2013-03-21 | カシオ計算機株式会社 | 自動伴奏装置および自動伴奏プログラム |
-
1991
- 1991-06-29 JP JP18540991A patent/JP3163654B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0511766A (ja) | 1993-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3704980B2 (ja) | 自動作曲装置と記録媒体 | |
JP3557917B2 (ja) | 自動作曲装置および記憶媒体 | |
JP3666577B2 (ja) | コード進行修正装置、コード進行修正方法及び同装置に適用されるプログラムを記録したコンピュータ読取り可能な記録媒体 | |
US6395970B2 (en) | Automatic music composing apparatus that composes melody reflecting motif | |
JP2000514571A (ja) | 自動即興演奏システム及び方法 | |
JP3528654B2 (ja) | メロディ生成装置及びリズム生成装置と記録媒体 | |
EP0715295A1 (en) | Automatic playing apparatus substituting available pattern for absent pattern | |
JP3637775B2 (ja) | メロディ生成装置と記録媒体 | |
JP3163654B2 (ja) | 自動伴奏装置 | |
JP3163653B2 (ja) | 調性判定装置 | |
JP3364941B2 (ja) | 自動作曲機 | |
JP3216529B2 (ja) | 演奏データ分析装置および演奏データ分析方法 | |
JPH0511763A (ja) | 調性判定装置及び自動伴奏装置 | |
JP3591444B2 (ja) | 演奏データ分析装置 | |
JP3271331B2 (ja) | メロディ分析装置 | |
JPH05346781A (ja) | 調検出装置および自動編曲装置 | |
JP3364940B2 (ja) | 自動作曲機 | |
JP2002032079A (ja) | 自動作曲装置及び方法並びに記憶媒体 | |
JP3548871B2 (ja) | 楽音音高解読機能付音楽装置 | |
JP3807333B2 (ja) | メロディ検索装置およびメロディ検索プログラム | |
JP3054242B2 (ja) | 自動伴奏装置 | |
JP6525034B2 (ja) | コード進行情報生成装置およびコード進行情報生成方法を実現するためのプログラム | |
JPH0561465A (ja) | 調性判定装置及び自動伴奏装置 | |
JP3271332B2 (ja) | 和音付装置 | |
JP2000163064A (ja) | 楽曲生成装置および楽曲生成プログラムを記録した記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090302 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100302 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110302 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |