JPH05181408A - 自動作曲機 - Google Patents
自動作曲機Info
- Publication number
- JPH05181408A JPH05181408A JP3360545A JP36054591A JPH05181408A JP H05181408 A JPH05181408 A JP H05181408A JP 3360545 A JP3360545 A JP 3360545A JP 36054591 A JP36054591 A JP 36054591A JP H05181408 A JPH05181408 A JP H05181408A
- Authority
- JP
- Japan
- Prior art keywords
- melody
- pitch
- pattern
- tone
- melody pattern
- 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.)
- Granted
Links
Landscapes
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】
【目的】 システム応答が速く、音楽の進行(コード進
行その他)に合い、かつ音楽知識に支えられたメロディ
を生成可能な自動作曲機を提供する。 【構成】 前ピッチ206と乱数204とから最初の現
ピッチ候補が生成される。音所・音程列生成ブロック2
08は進行中の音楽進行(現調性210、現コード21
2)に従って現ピッチ候補の音種と前メロディ音からの
音程を分類し、現ピッチ候補とそれに先行する生成済メ
ロディとが形成するメロディパターンを評価する。マッ
チングモジュール214は評価したメロディパターンに
ついてメロディパターンルールベース216を検索す
る、検索失敗なら次候補生成モジュール220を介し
て、生成、検索を繰り返す。検索成功により現ピッチが
決定224する。
行その他)に合い、かつ音楽知識に支えられたメロディ
を生成可能な自動作曲機を提供する。 【構成】 前ピッチ206と乱数204とから最初の現
ピッチ候補が生成される。音所・音程列生成ブロック2
08は進行中の音楽進行(現調性210、現コード21
2)に従って現ピッチ候補の音種と前メロディ音からの
音程を分類し、現ピッチ候補とそれに先行する生成済メ
ロディとが形成するメロディパターンを評価する。マッ
チングモジュール214は評価したメロディパターンに
ついてメロディパターンルールベース216を検索す
る、検索失敗なら次候補生成モジュール220を介し
て、生成、検索を繰り返す。検索成功により現ピッチが
決定224する。
Description
【0001】
【産業上の利用分野】この発明は音楽装置に関し、特に
メロディを自動的に生成(compose)する自動作
曲機に関する。
メロディを自動的に生成(compose)する自動作
曲機に関する。
【0002】
【従来の技術】従来において、メロディを自動生成する
いくつかの自動作曲機が知られている(USP4,399,73
1、USP4,664,010、WO NO.86/05619、特開昭62-187
876号)。USP4,399,731の自動作曲機はメロディ音高
列の生成に乱数を用いた試行錯誤方式をメロディ生成原
理としている。したがってメロディ生成空間は無限であ
るが、作曲知識を欠くため、好ましいメロディを得るた
めの効率があまりにも低い。USP4,664,010とWO N
O.86/05619の作曲機は与えられたメロディを変換するタ
イプのメロディ生成装置であり、変換のために数学的手
法(音高列の鏡象変換、音高・音長列の2次元空間に対
する線形的変換)を使用する。したがって変換空間は限
定されており、固定的で数学的な(音楽的とはいえな
い)作曲能力しかもたない。特開昭62-187876号の作曲
機は音高列の生成にマルコフモデルを利用したメロディ
生成装置である。音高列のマルコフ過程を表わす音高の
遷移表から作成されるメロディは、遷移表に内在する音
楽スタイルに束縛される。したがってこのメロディ生成
装置は、比較的よい効率で音楽的なメロディを生成でき
るものの、限られたスタイルのメロディしか生成でき
ず、提供できる作曲空間は狭い。以上の従来技術に共通
していることは、(1)作曲機にメロディの分析、評価
能力が欠けていること、(2)メロディの分析、評価能
力をメロディの生成に利用していないこと、(3)した
がって、音楽的なメロディを生成する能力が低いこと、
である。
いくつかの自動作曲機が知られている(USP4,399,73
1、USP4,664,010、WO NO.86/05619、特開昭62-187
876号)。USP4,399,731の自動作曲機はメロディ音高
列の生成に乱数を用いた試行錯誤方式をメロディ生成原
理としている。したがってメロディ生成空間は無限であ
るが、作曲知識を欠くため、好ましいメロディを得るた
めの効率があまりにも低い。USP4,664,010とWO N
O.86/05619の作曲機は与えられたメロディを変換するタ
イプのメロディ生成装置であり、変換のために数学的手
法(音高列の鏡象変換、音高・音長列の2次元空間に対
する線形的変換)を使用する。したがって変換空間は限
定されており、固定的で数学的な(音楽的とはいえな
い)作曲能力しかもたない。特開昭62-187876号の作曲
機は音高列の生成にマルコフモデルを利用したメロディ
生成装置である。音高列のマルコフ過程を表わす音高の
遷移表から作成されるメロディは、遷移表に内在する音
楽スタイルに束縛される。したがってこのメロディ生成
装置は、比較的よい効率で音楽的なメロディを生成でき
るものの、限られたスタイルのメロディしか生成でき
ず、提供できる作曲空間は狭い。以上の従来技術に共通
していることは、(1)作曲機にメロディの分析、評価
能力が欠けていること、(2)メロディの分析、評価能
力をメロディの生成に利用していないこと、(3)した
がって、音楽的なメロディを生成する能力が低いこと、
である。
【0003】このような点に鑑み、本件発明者は特開昭
63-250696号、63-286883号において、メロディの分析、
評価能力を利用した自動作曲機を提案している。この自
動作曲機はメロディの音楽知識として、メロディを和声
音と非和声音の混合列としてとらえ、非和声音が和声音
との間に形成される関係を分析して非和声音を分類する
非和声音分類知識を有している。この非和声音分類知識
はユーザーからの入力メロディ(モチーフ)の分析に利
用される。更に、非和声音分類知識はメロディの生成に
も利用される。この作曲機はメロディを2段階で生成す
る。第1段階で和声音列(アルペジオ)を生成する(和
声音列はモチーフを基に展開して生成したアルペジオ特
徴パターンを音楽進行(進行中のコード)に適合化させ
ることにより得られる。)。第2段階で非和声音を生成
し、それらを和声音列間に挿入する(非和声音はモチー
フを基に展開して生成した非和声音特徴パターンを音楽
進行(進行中のスケール)に適合させながら、非和声音
分類知識に通すことにより得られる。)。この作曲機は
モチーフの特徴を反映した音楽的なメロディを生成する
ことができるが、次のような欠点をもっている。 (a)メロディ生成の前処理としてモチーフの分析、及
びモチーフからの生成メロディのアイデア(アルペジオ
と非和声音の特徴パターン)の作成に相当量のデータ処
理を要する。 (b)メロディを2段階で生成する方式は人間の通常の
メロディ作成プロセスとは異なる。したがって作曲の忠
実な人工知能化を実現できない。 (c)前処理と2段階メロディ生成のために、リアルタ
イムのメロディ生成が困難である。事実、この作曲機は
非実時間で1小節を単位として作曲を行っており、いっ
たん作曲を完了した後、作曲したものを音源を通して演
奏する構成になっている。この作曲の方式によれば、あ
らかじめメロディアイデア(アルペジオと非和声音の特
徴パターン)が与えられる場合においても、そのアイデ
アの具体化(メロディ生成)をリアルタイムで実行する
のが困難である。というのは、アイデアの具体化処理
(メロディの2段階生成処理)を小節線タイムのような
特定の時点で集中的に行うことになるからであり、作曲
機を演奏系と組み合わせた場合に、(コンピュータ)処
理が集中するところで演奏の時間遅れ(例えばメロディ
音の発音の遅れ)が発生してしまうからである。したが
って、(A)音楽的なメロディを1段階で生成でき、
(B)リアルタイムのメロディ生成、演奏が可能な自動
作曲機が望まれる。
63-250696号、63-286883号において、メロディの分析、
評価能力を利用した自動作曲機を提案している。この自
動作曲機はメロディの音楽知識として、メロディを和声
音と非和声音の混合列としてとらえ、非和声音が和声音
との間に形成される関係を分析して非和声音を分類する
非和声音分類知識を有している。この非和声音分類知識
はユーザーからの入力メロディ(モチーフ)の分析に利
用される。更に、非和声音分類知識はメロディの生成に
も利用される。この作曲機はメロディを2段階で生成す
る。第1段階で和声音列(アルペジオ)を生成する(和
声音列はモチーフを基に展開して生成したアルペジオ特
徴パターンを音楽進行(進行中のコード)に適合化させ
ることにより得られる。)。第2段階で非和声音を生成
し、それらを和声音列間に挿入する(非和声音はモチー
フを基に展開して生成した非和声音特徴パターンを音楽
進行(進行中のスケール)に適合させながら、非和声音
分類知識に通すことにより得られる。)。この作曲機は
モチーフの特徴を反映した音楽的なメロディを生成する
ことができるが、次のような欠点をもっている。 (a)メロディ生成の前処理としてモチーフの分析、及
びモチーフからの生成メロディのアイデア(アルペジオ
と非和声音の特徴パターン)の作成に相当量のデータ処
理を要する。 (b)メロディを2段階で生成する方式は人間の通常の
メロディ作成プロセスとは異なる。したがって作曲の忠
実な人工知能化を実現できない。 (c)前処理と2段階メロディ生成のために、リアルタ
イムのメロディ生成が困難である。事実、この作曲機は
非実時間で1小節を単位として作曲を行っており、いっ
たん作曲を完了した後、作曲したものを音源を通して演
奏する構成になっている。この作曲の方式によれば、あ
らかじめメロディアイデア(アルペジオと非和声音の特
徴パターン)が与えられる場合においても、そのアイデ
アの具体化(メロディ生成)をリアルタイムで実行する
のが困難である。というのは、アイデアの具体化処理
(メロディの2段階生成処理)を小節線タイムのような
特定の時点で集中的に行うことになるからであり、作曲
機を演奏系と組み合わせた場合に、(コンピュータ)処
理が集中するところで演奏の時間遅れ(例えばメロディ
音の発音の遅れ)が発生してしまうからである。したが
って、(A)音楽的なメロディを1段階で生成でき、
(B)リアルタイムのメロディ生成、演奏が可能な自動
作曲機が望まれる。
【0004】
【発明が解決しようとする課題】したがってこの発明の
目的は音楽分析、評価能力のサポートの下に音楽的なメ
ロディを1段階で生成できる自動作曲機を提供すること
である。更にこの発明の目的は実時間ベースでメロディ
を生成、演奏可能な自動作曲機を提供することである。
目的は音楽分析、評価能力のサポートの下に音楽的なメ
ロディを1段階で生成できる自動作曲機を提供すること
である。更にこの発明の目的は実時間ベースでメロディ
を生成、演奏可能な自動作曲機を提供することである。
【0005】
【課題を解決するための手段、作用】この発明によれ
ば、音楽進行を与える音楽進行付与手段と、メロディの
音列を音種列と音程列とでパターン化したメロディパタ
ーンのルールベースを記憶するメロディパターンルール
ベース手段と、上記音楽進行手段からの音楽進行に適合
し、かつ上記メロディパターンルールベース手段内のメ
ロディパターンルールを満たすメロディを生成するメロ
ディ生成手段と、を有することを特徴とする自動作曲機
が提供される。この構成によればメロディの生成を和声
音列の生成と非和声音列の加入とに分けずに行うことが
できる。また、生成されるメロディはそのメロディをそ
のメロディの音楽的背景である音楽進行に適合し、かつ
メロディパターンルールベース手段に置かれるルール
(メロディパターンルール)に適合するものなので、本
構成は音楽的に好ましいメロディを比較的効率よく提供
できる。即ち、生成されるメロディをそのメロディの音
楽的背景(文脈)である音楽進行(例えば進行中のコー
ド、キー、スケールのような調性和声背景で評価した場
合の特徴(音種列と音程列)がメロディパターンルール
を満足する。換言するとメロディパターンルールを作曲
すべきメロディの音楽的文脈に応じて具体化(適用)し
たものがメロディとなる。更にこの構成は、従来の技術
で述べた特開昭63-250696号、特開昭63-286883号の自動
作曲機に比べ、はるかに少ないデータ処理量でメロディ
を生成することを可能にする。したがって、実時間ベー
スでのメロディ生成、演奏の実現を容易にするものであ
る。
ば、音楽進行を与える音楽進行付与手段と、メロディの
音列を音種列と音程列とでパターン化したメロディパタ
ーンのルールベースを記憶するメロディパターンルール
ベース手段と、上記音楽進行手段からの音楽進行に適合
し、かつ上記メロディパターンルールベース手段内のメ
ロディパターンルールを満たすメロディを生成するメロ
ディ生成手段と、を有することを特徴とする自動作曲機
が提供される。この構成によればメロディの生成を和声
音列の生成と非和声音列の加入とに分けずに行うことが
できる。また、生成されるメロディはそのメロディをそ
のメロディの音楽的背景である音楽進行に適合し、かつ
メロディパターンルールベース手段に置かれるルール
(メロディパターンルール)に適合するものなので、本
構成は音楽的に好ましいメロディを比較的効率よく提供
できる。即ち、生成されるメロディをそのメロディの音
楽的背景(文脈)である音楽進行(例えば進行中のコー
ド、キー、スケールのような調性和声背景で評価した場
合の特徴(音種列と音程列)がメロディパターンルール
を満足する。換言するとメロディパターンルールを作曲
すべきメロディの音楽的文脈に応じて具体化(適用)し
たものがメロディとなる。更にこの構成は、従来の技術
で述べた特開昭63-250696号、特開昭63-286883号の自動
作曲機に比べ、はるかに少ないデータ処理量でメロディ
を生成することを可能にする。したがって、実時間ベー
スでのメロディ生成、演奏の実現を容易にするものであ
る。
【0006】リアルタイム作曲機の一態様は、上記構成
に加え、演奏テンポを指定するテンポ指定手段を有し、
上記メロディ生成手段は上記演奏テンポに従うリアルタ
イムのベースでメロディを生成するリアルタイムメロデ
ィ生成手段から成る。更に、リアルタイム作曲機は上記
リアルタイムメロディ生成手段が生成したメロディをサ
ウンドとしてリアルタイム演奏するアルタイムメロディ
演奏手段を有する。リアルタイム演奏が可能なリアルタ
イム作曲機は(a)ユーザーの作曲開始指示からメロデ
ィの演奏開始までの待ち時間(オーバーヘッドタイム)
が短いこと、及び(b)メロディの演奏が意図された演
奏テンポをキープすることが要求される。このために
は、作曲機が作曲の処理を時間軸に対して“分散”して
行うことが望まれる。即ち、一時的なデータ処理の極端
な集中を避けるようにする。これは一時に生成するメロ
ディ音数を制限する(例えば1つに制限する)ことで行
える。したがって、順次、メロディ音を決定(生成)す
る方式はリアルタイム向きである(発音時刻ごとに一音
生成しては演奏する方式であることは必ずしも必要でな
いが)。メロディ音を順次生成する自動作曲機の一態様
において、上記メロディ生成手段は、メロディ音を順次
生成するため、音程列と音種列とにより、前メロディ音
までのメロディのパターンを記憶するメロディパターン
記憶手段と、新たに生成すべき現メロディ音の第1の音
高候補を生成する音高候補生成手段と、上記第1の音高
候補の音程と音種を上記前メロディ音の音高と上記音楽
進行の現状況とに基づいて分類する音程・音種分類手段
と、分類された上記第1の音高候補の音程と音種を用い
て上記メロディパターン記憶手段を更新して、現メロデ
ィ音候補までのメロディのパターンを評価対象として形
成する評価対象メロディパターン形成手段と、評価対象
として形成されたメロディのパターンについて上記メロ
ディパターンルールベース手段を検索するルールベース
検索手段と、検索に失敗したときに、現メロディ音のた
めに別の音高候補を生成する別候補生成手段と、上記別
の音高候補について、上記音程・音種分類手段、上記評
価対象メロディパターン形成手段、上記ルールベース検
索手段の動作を繰り返す繰返手段と、検索に成功したと
きに、その検索にかかる音高候補を現メロディ音の音高
として決定する音高決定手段と、を有する。音楽進行付
与手段はコード進行を生成するコード進行生成手段と、
調性(キー、スケール)を指示する調性指示手段とで構
成することができる。更に、この発明によれば、ユーザ
ーからのメロディによって上記メロディパターンルール
ベースを拡張する機能をもつ自動作曲機が提供される。
に加え、演奏テンポを指定するテンポ指定手段を有し、
上記メロディ生成手段は上記演奏テンポに従うリアルタ
イムのベースでメロディを生成するリアルタイムメロデ
ィ生成手段から成る。更に、リアルタイム作曲機は上記
リアルタイムメロディ生成手段が生成したメロディをサ
ウンドとしてリアルタイム演奏するアルタイムメロディ
演奏手段を有する。リアルタイム演奏が可能なリアルタ
イム作曲機は(a)ユーザーの作曲開始指示からメロデ
ィの演奏開始までの待ち時間(オーバーヘッドタイム)
が短いこと、及び(b)メロディの演奏が意図された演
奏テンポをキープすることが要求される。このために
は、作曲機が作曲の処理を時間軸に対して“分散”して
行うことが望まれる。即ち、一時的なデータ処理の極端
な集中を避けるようにする。これは一時に生成するメロ
ディ音数を制限する(例えば1つに制限する)ことで行
える。したがって、順次、メロディ音を決定(生成)す
る方式はリアルタイム向きである(発音時刻ごとに一音
生成しては演奏する方式であることは必ずしも必要でな
いが)。メロディ音を順次生成する自動作曲機の一態様
において、上記メロディ生成手段は、メロディ音を順次
生成するため、音程列と音種列とにより、前メロディ音
までのメロディのパターンを記憶するメロディパターン
記憶手段と、新たに生成すべき現メロディ音の第1の音
高候補を生成する音高候補生成手段と、上記第1の音高
候補の音程と音種を上記前メロディ音の音高と上記音楽
進行の現状況とに基づいて分類する音程・音種分類手段
と、分類された上記第1の音高候補の音程と音種を用い
て上記メロディパターン記憶手段を更新して、現メロデ
ィ音候補までのメロディのパターンを評価対象として形
成する評価対象メロディパターン形成手段と、評価対象
として形成されたメロディのパターンについて上記メロ
ディパターンルールベース手段を検索するルールベース
検索手段と、検索に失敗したときに、現メロディ音のた
めに別の音高候補を生成する別候補生成手段と、上記別
の音高候補について、上記音程・音種分類手段、上記評
価対象メロディパターン形成手段、上記ルールベース検
索手段の動作を繰り返す繰返手段と、検索に成功したと
きに、その検索にかかる音高候補を現メロディ音の音高
として決定する音高決定手段と、を有する。音楽進行付
与手段はコード進行を生成するコード進行生成手段と、
調性(キー、スケール)を指示する調性指示手段とで構
成することができる。更に、この発明によれば、ユーザ
ーからのメロディによって上記メロディパターンルール
ベースを拡張する機能をもつ自動作曲機が提供される。
【0007】ルールベース拡張機能をもつ作曲機の一態
様は、ユーザからのメロディを入力するユーザーメロデ
ィ入力手段と、上記ユーザーメロディ入力手段から入力
されたメロディを上記音楽進行に従ってパターン認識し
て音種列と音程列とで表現されるメロディパターンを形
成するメロディパターン認識手段と、上記メロディパタ
ーン認識手段からのメロディパターンを追加ルールとし
て上記メロディパターンルールベース手段に追加してメ
ロディパターンルールベースを拡張するメロディパター
ンルールベース拡張手段と、を有する。この構成によれ
ば、ユーザーの好みに合うメロディ生成の能力を高める
ことができる。また、ユーザーの作曲への積極的な参加
を可能にする。メロディパターンルールベースは音楽ス
タイル別に用意してもよい。その場合、記憶量を節約す
るため、メロディパターンルールグループごとに適合す
る音楽スタイルのグループをリンクさせて、記憶の共通
化を図るのが望ましい。更に、この発明によれば、音楽
進行を与える音楽進行付与手段と、メロディの音列を音
種列と音程列とでパターン化したメロディパターンのル
ールベースを記憶するメロディパターンルールベース手
段と、生成すべきメロディの音列候補を生成する音列候
補生成手段と、上記音列候補生成手段からの音列候補を
上記音楽進行に基づいてパターン認識して、音種列と音
程列とで表現されるメロディパターンを形成するメロデ
ィパターン形成手段と、上記メロディパターン形成手段
からのメロディパターンを検索対象として上記メロディ
パターンルールベース手段を検索するルールベース検索
手段と、上記検索が成功するまで、即ち上記メロディパ
ターンルールベース手段に検索対象と一致するメロディ
パターンのルールが見つかるまで、上記音列候補生成手
段、上記メロディパターン形成手段、上記ルールベース
検索手段の動作を、音列候補を変化させながら繰り返す
繰返手段と、上記検索が成功したときに、成功に係る音
列候補を生成メロディの音列として決定する決定手段
と、を有することを特徴とする自動作曲機が提供され
る。この構成によれば、作曲機は一度に2以上のメロデ
ィ音を決定、生成可能である。
様は、ユーザからのメロディを入力するユーザーメロデ
ィ入力手段と、上記ユーザーメロディ入力手段から入力
されたメロディを上記音楽進行に従ってパターン認識し
て音種列と音程列とで表現されるメロディパターンを形
成するメロディパターン認識手段と、上記メロディパタ
ーン認識手段からのメロディパターンを追加ルールとし
て上記メロディパターンルールベース手段に追加してメ
ロディパターンルールベースを拡張するメロディパター
ンルールベース拡張手段と、を有する。この構成によれ
ば、ユーザーの好みに合うメロディ生成の能力を高める
ことができる。また、ユーザーの作曲への積極的な参加
を可能にする。メロディパターンルールベースは音楽ス
タイル別に用意してもよい。その場合、記憶量を節約す
るため、メロディパターンルールグループごとに適合す
る音楽スタイルのグループをリンクさせて、記憶の共通
化を図るのが望ましい。更に、この発明によれば、音楽
進行を与える音楽進行付与手段と、メロディの音列を音
種列と音程列とでパターン化したメロディパターンのル
ールベースを記憶するメロディパターンルールベース手
段と、生成すべきメロディの音列候補を生成する音列候
補生成手段と、上記音列候補生成手段からの音列候補を
上記音楽進行に基づいてパターン認識して、音種列と音
程列とで表現されるメロディパターンを形成するメロデ
ィパターン形成手段と、上記メロディパターン形成手段
からのメロディパターンを検索対象として上記メロディ
パターンルールベース手段を検索するルールベース検索
手段と、上記検索が成功するまで、即ち上記メロディパ
ターンルールベース手段に検索対象と一致するメロディ
パターンのルールが見つかるまで、上記音列候補生成手
段、上記メロディパターン形成手段、上記ルールベース
検索手段の動作を、音列候補を変化させながら繰り返す
繰返手段と、上記検索が成功したときに、成功に係る音
列候補を生成メロディの音列として決定する決定手段
と、を有することを特徴とする自動作曲機が提供され
る。この構成によれば、作曲機は一度に2以上のメロデ
ィ音を決定、生成可能である。
【0008】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。特徴 本実施例にかかる自動作曲機(自動メロディ生成装置)
の主な特徴は作曲の条件付機能、メロディの音高列生成
機能、及びメロディパターンルールの拡張機能である。
以下、それぞれの特徴について述べる。作曲条件付装置(図1A) 実施例に組み込まれる作曲条件付装置100の機能ブロ
ック図を図1Aに示す。作曲条件付装置100は音楽構
造データベース110とコード進行データベース(CP
DB)に基づいて選択コード進行(CP)160を生成
する。更に作曲条件付装置100は音楽構造データ11
0、曲風入力130及びリズムパターンデータベース1
50とに基づき選択リズムパターン170を生成する。
選択コード進行160の列は作曲される曲のコード進行
を表わす。選択リズムパターン170の列は作曲される
メロディのリズム(音長列)を表わす。選択コード進行
160はコード進行データベース140の中から選択音
楽構造120に適したコード進行を取ることによって得
られる。選択リズムパターン170はリズムパターンデ
ータベース150から選択音楽構造120と曲風入力1
30とに合うリズムパターンを取り出すことによって得
られる。図1Aにおいて、音楽構造データベース110
は、上位構造データベース111と下位構造データベー
ス112とからなる。上位構造データベース111は音
楽の上位構造(例えば楽節)のデータベースを記憶す
る。下位構造データベース112は音楽の下位構造(例
えば楽節内部構造)のデータベースを記憶する。例えば
下位構造データベース112の各階構造エントリーは上
位構造を8小節の楽節とみたときの8小節構造を表わす
情報をもっている。選択モジュール116は上位構造デ
ータベース111から上位構造データを取りそれを選択
上位構造121として選択音楽構造120に記憶する。
適正モジュール145は選択上位構造121に合うコー
ド進行をコード進行データベース140から取り出しそ
れを選択コード進行160として生成する。適性モジュ
ール117は下位構造データベース112の中から選択
上位構造121に合う属性をもつ下位構造列(例えば8
小節構造)を取り出しそれを選択下位構造122として
選択音楽構造120に設定する。選択下位構造122は
適性モジュール155に属性テストのために与えられ
る。曲風入力130は指定リズム131と指定ビート
(又はテンポ)132とからなる。指定リズム131と
指定ビート(又はテンポ)132は共に適性モジュール
155に属性テストのために与えられる。適性モジュー
ル155はリズムパターンデータベース150の中から
選択下位構造122に適合し、かつ指定リズム131と
指定ビート(又はテンポ)132に適合する属性をもつ
リズムパターンを探し出しそれを選択リズムパターン1
70として生成する。このようにして生成される選択リ
ズムパターン170は自動メロディの音長列(各メロデ
ィ音の発音、消音タイミング)を定める。このようにし
て作曲条件付装置100は知識の資源である各種データ
ベースとユーザーからの曲風入力に基づき適正な条件付
がなされた音楽情報(選択コード進行、選択リズムパタ
ーン)を作曲の一部として生成するものである。メロデ
ィの音長列は選択リズムパターン170から得られるの
で、後はメロディの音高列を生成することでメロディが
出来上がる。なお、図1Aの音楽構造データ110では
構造の階層レベルを上位と下位の2レベルとしているが
階層レベル数が1或いは3以上であってもよい。したが
って、選択音楽構造の階層レベル数も1以上任意の数で
あり得る。また、曲風入力を図1Aでは指定リズム13
1と指定ビート(テンポ)132とによって与えている
が他の曲風パラメータを用いてもよい。
明する。特徴 本実施例にかかる自動作曲機(自動メロディ生成装置)
の主な特徴は作曲の条件付機能、メロディの音高列生成
機能、及びメロディパターンルールの拡張機能である。
以下、それぞれの特徴について述べる。作曲条件付装置(図1A) 実施例に組み込まれる作曲条件付装置100の機能ブロ
ック図を図1Aに示す。作曲条件付装置100は音楽構
造データベース110とコード進行データベース(CP
DB)に基づいて選択コード進行(CP)160を生成
する。更に作曲条件付装置100は音楽構造データ11
0、曲風入力130及びリズムパターンデータベース1
50とに基づき選択リズムパターン170を生成する。
選択コード進行160の列は作曲される曲のコード進行
を表わす。選択リズムパターン170の列は作曲される
メロディのリズム(音長列)を表わす。選択コード進行
160はコード進行データベース140の中から選択音
楽構造120に適したコード進行を取ることによって得
られる。選択リズムパターン170はリズムパターンデ
ータベース150から選択音楽構造120と曲風入力1
30とに合うリズムパターンを取り出すことによって得
られる。図1Aにおいて、音楽構造データベース110
は、上位構造データベース111と下位構造データベー
ス112とからなる。上位構造データベース111は音
楽の上位構造(例えば楽節)のデータベースを記憶す
る。下位構造データベース112は音楽の下位構造(例
えば楽節内部構造)のデータベースを記憶する。例えば
下位構造データベース112の各階構造エントリーは上
位構造を8小節の楽節とみたときの8小節構造を表わす
情報をもっている。選択モジュール116は上位構造デ
ータベース111から上位構造データを取りそれを選択
上位構造121として選択音楽構造120に記憶する。
適正モジュール145は選択上位構造121に合うコー
ド進行をコード進行データベース140から取り出しそ
れを選択コード進行160として生成する。適性モジュ
ール117は下位構造データベース112の中から選択
上位構造121に合う属性をもつ下位構造列(例えば8
小節構造)を取り出しそれを選択下位構造122として
選択音楽構造120に設定する。選択下位構造122は
適性モジュール155に属性テストのために与えられ
る。曲風入力130は指定リズム131と指定ビート
(又はテンポ)132とからなる。指定リズム131と
指定ビート(又はテンポ)132は共に適性モジュール
155に属性テストのために与えられる。適性モジュー
ル155はリズムパターンデータベース150の中から
選択下位構造122に適合し、かつ指定リズム131と
指定ビート(又はテンポ)132に適合する属性をもつ
リズムパターンを探し出しそれを選択リズムパターン1
70として生成する。このようにして生成される選択リ
ズムパターン170は自動メロディの音長列(各メロデ
ィ音の発音、消音タイミング)を定める。このようにし
て作曲条件付装置100は知識の資源である各種データ
ベースとユーザーからの曲風入力に基づき適正な条件付
がなされた音楽情報(選択コード進行、選択リズムパタ
ーン)を作曲の一部として生成するものである。メロデ
ィの音長列は選択リズムパターン170から得られるの
で、後はメロディの音高列を生成することでメロディが
出来上がる。なお、図1Aの音楽構造データ110では
構造の階層レベルを上位と下位の2レベルとしているが
階層レベル数が1或いは3以上であってもよい。したが
って、選択音楽構造の階層レベル数も1以上任意の数で
あり得る。また、曲風入力を図1Aでは指定リズム13
1と指定ビート(テンポ)132とによって与えている
が他の曲風パラメータを用いてもよい。
【0009】音高列生成装置(図1B) 本自動作曲機に組み込まれるメロディの音高列生成装置
200を図1Bに機能ブロックで示す。音高列生成装置
200の目的はメロディの音高列を生成することであ
る。音高列生成装置200は図1Aに示すような作曲条
件付装置100と組み合わせることが出来る(必ずしも
これには限定されないが)。その場合音高列生成装置2
00は選択リズムパターン170がメロディ音の発音タ
イミングを指示する都度、決定現ピッチ224を生成す
る。決定現ピッチ224の列がメロディの音高列を定め
る。図1Bにおいて決定現ピッチ224を生成する際、
音高列生成装置200は加算器206において前ピッチ
202を乱数発生モジュール204からの乱数とを加算
して最初の現ピッチ候補をマルコフ生成する。現ピッチ
候補が入力される音種・音程列生成モジュール208は
生成音高列に現ピッチ候補を加えた音高列の音種と音程
を生成する。音種・音程列生成モジュール208は現ピ
ッチ候補の音種と音程を分類するため現調性210(キ
ー、スケール)と現コード212の情報を利用する。音
種・音程列生成モジュール208の出力は現ピッチ候補
までのメロディ音列のパターンを表わし、その情報がマ
ッチングモジュール214に与えられる。マッチングモ
ジュール214は与えられるメロディパターンについて
メロディパターンルールベース216を検索する。検索
の結果、メロディパターンルールベース216にモジュ
ール208の出力が定めるメロディパターンに相当する
エントリーが含まれない場合、検索結果判定モジュール
218でNOとなり、次候補生成モジュール220で次
の現ピッチ候補が生成される。次候補生成モジュール2
20は222に示す現ピッチ+乱数の情報を用いて次の
現ピッチ候補を生成する。再び音種・音程列生成モジュ
ール208とマッチングモジュール214の動作が繰り
返され、この新たな現ピッチ候補についてその妥当性が
評価される。メロディパターンルールベース216に音
種・音程列生成モジュール208の出力が相当するメロ
ディパターンがエントリーされていれば検索結果判定モ
ジュール218でYESが成立し、その時の現ピッチ候
補が決定現ピッチ224として生成される。次のメロデ
ィ音の生成時に226に示すように決定現ピッチ224
は前ピッチ202となり上述した動作が繰り返されて新
たな現ピッチが決定される。このようにして音高列生成
装置200はメロディパターンルールベース216を利
用することにより、メロディの音高をリアルタイムで順
次生成することが出来る。したがって音高列生成装置2
00の出力(決定ピッチ224)を実時間演奏系228
(電子音源を含む)に与えることにより作曲と演奏とを
同時にリアルタイムで実行することが出来る。すなわち
音高列生成装置200はリアルタイムの作曲能力を有す
るものである。
200を図1Bに機能ブロックで示す。音高列生成装置
200の目的はメロディの音高列を生成することであ
る。音高列生成装置200は図1Aに示すような作曲条
件付装置100と組み合わせることが出来る(必ずしも
これには限定されないが)。その場合音高列生成装置2
00は選択リズムパターン170がメロディ音の発音タ
イミングを指示する都度、決定現ピッチ224を生成す
る。決定現ピッチ224の列がメロディの音高列を定め
る。図1Bにおいて決定現ピッチ224を生成する際、
音高列生成装置200は加算器206において前ピッチ
202を乱数発生モジュール204からの乱数とを加算
して最初の現ピッチ候補をマルコフ生成する。現ピッチ
候補が入力される音種・音程列生成モジュール208は
生成音高列に現ピッチ候補を加えた音高列の音種と音程
を生成する。音種・音程列生成モジュール208は現ピ
ッチ候補の音種と音程を分類するため現調性210(キ
ー、スケール)と現コード212の情報を利用する。音
種・音程列生成モジュール208の出力は現ピッチ候補
までのメロディ音列のパターンを表わし、その情報がマ
ッチングモジュール214に与えられる。マッチングモ
ジュール214は与えられるメロディパターンについて
メロディパターンルールベース216を検索する。検索
の結果、メロディパターンルールベース216にモジュ
ール208の出力が定めるメロディパターンに相当する
エントリーが含まれない場合、検索結果判定モジュール
218でNOとなり、次候補生成モジュール220で次
の現ピッチ候補が生成される。次候補生成モジュール2
20は222に示す現ピッチ+乱数の情報を用いて次の
現ピッチ候補を生成する。再び音種・音程列生成モジュ
ール208とマッチングモジュール214の動作が繰り
返され、この新たな現ピッチ候補についてその妥当性が
評価される。メロディパターンルールベース216に音
種・音程列生成モジュール208の出力が相当するメロ
ディパターンがエントリーされていれば検索結果判定モ
ジュール218でYESが成立し、その時の現ピッチ候
補が決定現ピッチ224として生成される。次のメロデ
ィ音の生成時に226に示すように決定現ピッチ224
は前ピッチ202となり上述した動作が繰り返されて新
たな現ピッチが決定される。このようにして音高列生成
装置200はメロディパターンルールベース216を利
用することにより、メロディの音高をリアルタイムで順
次生成することが出来る。したがって音高列生成装置2
00の出力(決定ピッチ224)を実時間演奏系228
(電子音源を含む)に与えることにより作曲と演奏とを
同時にリアルタイムで実行することが出来る。すなわち
音高列生成装置200はリアルタイムの作曲能力を有す
るものである。
【0010】メロディパターンルール拡張装置(図1
C) 図1Cにメロディパターンルール拡張装置300の機能
ブロック図を示す。メロディパターンルール拡張装置3
00は図1Bに示すような音高列生成装置(自動メロデ
ィ生成装置)が参照するメロディパターンルールベース
を拡張する機能を実現するものである。メロディパター
ンルールベース330のうち330Fは自動作曲機に固
定的に組み込まれた固定メロディパターンルールベース
であり、330Eの部分がメロディパターンルールベー
スの拡張部である。メロディパターンルール拡張装置3
00によれば、この拡張部330Eのメロディパターン
ルールをユーザー入力メロディ302に基づいて作成す
ることが出来る。このルール作成を行う部分がメロディ
パターン(音種・音程列)生成ブロック310である。
ユーザー入力メロディ302はメロディパターン生成ブ
ロック310の音程分類モジュール312と音種分類モ
ジュール316に入力される。音程分類モジュール31
2はユーザー入力メロディ302の隣り合う音の間に形
成される音程を評価して音程列を形成する。例えば31
4に示すように音程分類モジュールは音種が同音(モー
ションなし)か上行順次進行か下行順次進行か上行跳躍
進行か下行跳躍進行かと言ったように音程を分類する。
316はユーザー入力メロディ302の各音の音種を分
類して音種列を形成する。音種分類モジュール316は
メロディ音の音種を分類するためにキー・スケール・コ
ード318の情報と各音種の標準ピッチクラスセット
(PCS)メモリ320の情報を利用する。例えば32
2に示すように音種分類モジュール316はメロディ音
の音種がコードトーンかスケールノートかアブェイラブ
ルノートかテンションノートかアヴォイドノートかと言
ったようにして音種を分類する。音程分類モジュール3
12の音程列出力と音種分類モジュール316の音種列
出力はユーザー入力メロディ302のパターン即ちユー
ザー入力メロディから導かれるメロディパターンのルー
ルを表わす。このルールはメロディパターンルールベー
スの拡張部330Eに記憶される。メロディ生成の際、
自動メロディ生成モジュール340(例えば図1Bの音
高列生成装置200)は拡張部330Eを含むメロディ
パターンルールベース330の全体を利用してメロディ
を生成する。このようなメロディパターンルール拡張装
置300を設けることによりユーザーが希望するメロデ
ィを生成する能力が高い自動作曲機を提供することが出
来る。
C) 図1Cにメロディパターンルール拡張装置300の機能
ブロック図を示す。メロディパターンルール拡張装置3
00は図1Bに示すような音高列生成装置(自動メロデ
ィ生成装置)が参照するメロディパターンルールベース
を拡張する機能を実現するものである。メロディパター
ンルールベース330のうち330Fは自動作曲機に固
定的に組み込まれた固定メロディパターンルールベース
であり、330Eの部分がメロディパターンルールベー
スの拡張部である。メロディパターンルール拡張装置3
00によれば、この拡張部330Eのメロディパターン
ルールをユーザー入力メロディ302に基づいて作成す
ることが出来る。このルール作成を行う部分がメロディ
パターン(音種・音程列)生成ブロック310である。
ユーザー入力メロディ302はメロディパターン生成ブ
ロック310の音程分類モジュール312と音種分類モ
ジュール316に入力される。音程分類モジュール31
2はユーザー入力メロディ302の隣り合う音の間に形
成される音程を評価して音程列を形成する。例えば31
4に示すように音程分類モジュールは音種が同音(モー
ションなし)か上行順次進行か下行順次進行か上行跳躍
進行か下行跳躍進行かと言ったように音程を分類する。
316はユーザー入力メロディ302の各音の音種を分
類して音種列を形成する。音種分類モジュール316は
メロディ音の音種を分類するためにキー・スケール・コ
ード318の情報と各音種の標準ピッチクラスセット
(PCS)メモリ320の情報を利用する。例えば32
2に示すように音種分類モジュール316はメロディ音
の音種がコードトーンかスケールノートかアブェイラブ
ルノートかテンションノートかアヴォイドノートかと言
ったようにして音種を分類する。音程分類モジュール3
12の音程列出力と音種分類モジュール316の音種列
出力はユーザー入力メロディ302のパターン即ちユー
ザー入力メロディから導かれるメロディパターンのルー
ルを表わす。このルールはメロディパターンルールベー
スの拡張部330Eに記憶される。メロディ生成の際、
自動メロディ生成モジュール340(例えば図1Bの音
高列生成装置200)は拡張部330Eを含むメロディ
パターンルールベース330の全体を利用してメロディ
を生成する。このようなメロディパターンルール拡張装
置300を設けることによりユーザーが希望するメロデ
ィを生成する能力が高い自動作曲機を提供することが出
来る。
【0011】ハードウェア構成(図2) 図1A、図1B、図1Cで述べたような機能を実現する
代表的なハードウェア構成を図2に示す。CPU2はR
OM4に記憶されるプログラムに従ってシステム全体を
制御する。ROM4にはプログラムの他、各種固定デー
タ(上述したデータベース等)を記憶する。RAM6は
種々の変数、一時データを記憶するものでCPU2のワ
ーキングメモリとして使用される。鍵盤8は通常の電子
鍵盤楽器の鍵盤で構成できユーザーのメロディ入力に使
用される。入力装置10には曲風入力装置や自動メロデ
ィ生成の開始、停止入力装置等を含む。鍵盤8と入力装
置10の状態は適宜CPU2に読み取られ対応する処理
が行われる。音源12はCPU2の制御のもとに楽音信
号を発生する。サウンドシステム14は音源12からの
楽音信号を受けそのサウンドを再生する。表示装置16
はCPU2の制御のもとにシステムの機能やメッセージ
等を表示する。表示装置16にはLEDや液晶ディスプ
レイ等が含まれる。クロック発振器18は音楽分解能時
間が経過するごとにパルスを発生してCPU2に割込み
をかけ、割込みプログラム(後述するインターラプトル
ーチン)を実行させる。
代表的なハードウェア構成を図2に示す。CPU2はR
OM4に記憶されるプログラムに従ってシステム全体を
制御する。ROM4にはプログラムの他、各種固定デー
タ(上述したデータベース等)を記憶する。RAM6は
種々の変数、一時データを記憶するものでCPU2のワ
ーキングメモリとして使用される。鍵盤8は通常の電子
鍵盤楽器の鍵盤で構成できユーザーのメロディ入力に使
用される。入力装置10には曲風入力装置や自動メロデ
ィ生成の開始、停止入力装置等を含む。鍵盤8と入力装
置10の状態は適宜CPU2に読み取られ対応する処理
が行われる。音源12はCPU2の制御のもとに楽音信
号を発生する。サウンドシステム14は音源12からの
楽音信号を受けそのサウンドを再生する。表示装置16
はCPU2の制御のもとにシステムの機能やメッセージ
等を表示する。表示装置16にはLEDや液晶ディスプ
レイ等が含まれる。クロック発振器18は音楽分解能時
間が経過するごとにパルスを発生してCPU2に割込み
をかけ、割込みプログラム(後述するインターラプトル
ーチン)を実行させる。
【0012】自動メロディ生成機能(図3) 図2の構成に組み込まれる自動メロディ生成機能のブロ
ック図を図3に示す。自動メロディ生成機能はメロディ
生成に必要な情報を入力する入力手段20、手動の音楽
データを生成する手段30、メロディの分析評価を行う
分析評価手段40、クロック発振器60、リズムカウン
タ70、メロディメモリ80、音源50を含む。入力手
段20には指定リズム種RHYを入力するリズムセレク
タ21、キーコードKCを入力する鍵盤装置22、指定
テンポTMPを入力するテンポ設定手段23を含む。な
お、入力手段20にはこの他に自動メロディ生成停止を
指示する手段とを含むが図示は省略してある。生成手段
30において構造生成手段32は音楽構造データベース
31から音楽構造データを取り出す。取り出された音楽
構造データは上位構造データとそれに合う下位構造デー
タからなる。コード生成手段34はコード進行データベ
ース33から音楽構造にあうコード進行を取り出しリズ
ムカウンタ70からの現時刻TにおけるコードCHOを
出力する。リズムパターン生成手段36はリズムパター
ンデータベース35からコード進行と曲風(指定リズム
種RHYと指定テンポTMP)に合うリズムパターンP
ATを取り出す。詳細には指定テンポTMPはテンポビ
ート対応マップ48によりビート種BEAT変換され、
これがリズムパターン生成手段36におけるリズムパタ
ーン生成の条件付の1つとしてリズムパターン生成手段
36に与えられる。このようにコード生成手段34、構
造生成手段32、リズムパターン生成手段36は図1A
で述べたような適性モジュールの機能を有している。乱
数発生手段38は乱数メモリ手段37からの乱数データ
をRANとして音高データ生成手段39に与える。音高
データ生成手段39は乱数データRANと前ピッチとか
ら現音高候補を生成する。分析評価手段40において音
種分類手段42はキーと指定リズム種RHYと音高デー
タ(音高データ生成手段39の出力或いは鍵盤装置22
の出力)を受けてその音種を標準ピッチクラスセット4
1を参照して分類する。音程分類手段43は前音高と現
音高(候補)の間に形成される音程をNTとして分類す
る。音種分類手段42と音程分類手段43の分類結果は
音種、音程列メモリ47に記憶される。固定メロディパ
ターンデータベース45は図2のROM4におかれる。
拡張メロディパターンデータベースメモリ46はメロデ
ィパターンデータベースの拡張用としてRAM6におか
れる。評価手段44は音種、音程列メモリ47からの音
種、音程列(メロディパターン)について固定メロディ
パターンデータベース45と拡張メロディパターンデー
タベースメモリ46を検索し、検索の結果、該当するル
ールがあればOKとの評価結果JDGを出力する。これ
により現音高が確定する。リズムカウンタ70はクロッ
ク発振器60から音楽分解能時間毎に与えられクロック
パルスをカウントして現時刻データTを出力するメロデ
ィメモリ80にはピットとTの列であるメロディ音列の
データが記憶される。音源50はメロディ音の発音タイ
ミングの都度、その音高データPITを受け対応する楽
音信号を発生する。
ック図を図3に示す。自動メロディ生成機能はメロディ
生成に必要な情報を入力する入力手段20、手動の音楽
データを生成する手段30、メロディの分析評価を行う
分析評価手段40、クロック発振器60、リズムカウン
タ70、メロディメモリ80、音源50を含む。入力手
段20には指定リズム種RHYを入力するリズムセレク
タ21、キーコードKCを入力する鍵盤装置22、指定
テンポTMPを入力するテンポ設定手段23を含む。な
お、入力手段20にはこの他に自動メロディ生成停止を
指示する手段とを含むが図示は省略してある。生成手段
30において構造生成手段32は音楽構造データベース
31から音楽構造データを取り出す。取り出された音楽
構造データは上位構造データとそれに合う下位構造デー
タからなる。コード生成手段34はコード進行データベ
ース33から音楽構造にあうコード進行を取り出しリズ
ムカウンタ70からの現時刻TにおけるコードCHOを
出力する。リズムパターン生成手段36はリズムパター
ンデータベース35からコード進行と曲風(指定リズム
種RHYと指定テンポTMP)に合うリズムパターンP
ATを取り出す。詳細には指定テンポTMPはテンポビ
ート対応マップ48によりビート種BEAT変換され、
これがリズムパターン生成手段36におけるリズムパタ
ーン生成の条件付の1つとしてリズムパターン生成手段
36に与えられる。このようにコード生成手段34、構
造生成手段32、リズムパターン生成手段36は図1A
で述べたような適性モジュールの機能を有している。乱
数発生手段38は乱数メモリ手段37からの乱数データ
をRANとして音高データ生成手段39に与える。音高
データ生成手段39は乱数データRANと前ピッチとか
ら現音高候補を生成する。分析評価手段40において音
種分類手段42はキーと指定リズム種RHYと音高デー
タ(音高データ生成手段39の出力或いは鍵盤装置22
の出力)を受けてその音種を標準ピッチクラスセット4
1を参照して分類する。音程分類手段43は前音高と現
音高(候補)の間に形成される音程をNTとして分類す
る。音種分類手段42と音程分類手段43の分類結果は
音種、音程列メモリ47に記憶される。固定メロディパ
ターンデータベース45は図2のROM4におかれる。
拡張メロディパターンデータベースメモリ46はメロデ
ィパターンデータベースの拡張用としてRAM6におか
れる。評価手段44は音種、音程列メモリ47からの音
種、音程列(メロディパターン)について固定メロディ
パターンデータベース45と拡張メロディパターンデー
タベースメモリ46を検索し、検索の結果、該当するル
ールがあればOKとの評価結果JDGを出力する。これ
により現音高が確定する。リズムカウンタ70はクロッ
ク発振器60から音楽分解能時間毎に与えられクロック
パルスをカウントして現時刻データTを出力するメロデ
ィメモリ80にはピットとTの列であるメロディ音列の
データが記憶される。音源50はメロディ音の発音タイ
ミングの都度、その音高データPITを受け対応する楽
音信号を発生する。
【0013】各種音楽要素の表現形式(図4〜図6) 以下の実施例の説明(特にフローの説明)において各種
音楽要素は主として文字表現(記号表現)を使用し、必
要に応じて数値表現を使用してある。以下に各種音楽要
素の文字表現と数値表現(マシンレベルの表現)との対
応関係を図4〜図6に参照して説明する。コードタイプ
の文字表現はCHO(TYPE)である。コードタイプ
MAJは数値0、MINは数値1、7THは数値2、M
IN7は数値7、MAJ7は数値4でそれぞれ数値表現
される。マシンにおけるコードタイプのデータ長は例え
ば6ビットであり、これにより最大64種類のコードタ
イプを表現可能である。コードルートとキーの文字表現
はそれぞれCHO(ROOT)とKEYである。コード
ルート又はキーはそのピッチクラスによって特定され
る。ピッチクラスCは数値0、C#は1、Dは2以下同
様にしてBは11で数値表現される。従って、コードル
ートとキーの有効データ調は4ビットである。音楽構造
(上位/下位)における上位音楽構造はSTR1Dで文
字表現され、下位音楽構造はSTR2Dで文字表現され
る。AAの上位音楽構造は1H、BBは2H、CCは4
H……によって数値表現される。下位構造aaは1H、
bbは2H、ccは4H……により数値表現される。実
施例の装置では構造データの有効長を4ビット(ニブ
ル)で表現している。リズム種はRHYで文字表現す
る、リズム種ROCK(ロック)は1H、DISC(デ
ィスコ)は2H、16BE(16ビート)は4H、SW
IN(スウィング)は8H、WALT(ワルツ)は10
Hでそれぞれ数値表現される。音高データとキーコード
はそれぞれPITとKCによって表現される。音高デー
タとキーコードはピッチクラスとオクターブとによって
特定される。実施例では数値0がC2(ピッチクラスが
Cでオクターブが第2オクターブ)のピッチを表わしピ
ッチが半音上がるごとに+1する数値でピッチを表現し
ている。音種はNTで文字表現される音種コードトーン
(CHOT)は数値0、アブェイラブルノート(AVA
I)は数値1、スケールノート(SCAL)は数値2、
テンションノート(TENS)は数値3、アヴォイドノ
ート(AVOI)は数値4で表現され、エンドマーク
(END)はFHで表現される、音程の記号表現はMT
である、同音(SAME)は数値0、上行順次進行(+
STEP)は数値1、下行順次進行(−STEP)は数
値2、上行跳躍進行(+JUNP)は数値3、下行跳躍
進行(−JUNP)は数値4で表現され区切りマーク
(SEP)はFHで表現される。評価結果はJDG(フ
ラグJDG)で文字表現され、NGの評価結果は数値
0、GOODの評価結果は数値1で表現される。USE
R MELはNOを数値0、YESを数値1で表現す
る。ピッチクラスセットの要素(ピッチクラス)は次の
ように表現される。ピッチクラスCが1H、C#が2
H、Dが4H以下同様にしてBが800Hで表現され
る。即ちピッチクラスは12ビット中のビット位置(例
えば最下位即ち第0ビット位置がC)におけるビット値
“1”によって表わされる。ピッチクラスの集合である
ピッチクラスセットはこのような12ビットデータ表現
間のビットごとの論理和で表現される。例えばCとDか
らなるピッチクラスセットは1Hと4Hとの論理和即ち
5Hによって表現される。ピッチクラスセットの各文字
表現はコードトーンのピッチクラスセットはPCS(C
T)であり、CTの代りにPN、SN、AN、AVを用
いればそれぞれテンションノート、スケールノート、ア
ブェイラブルノート、アヴォイドノートのピッチクラス
セットを文字表現する。リズムパターンの文字表現はP
ATである。リズムパターンの要素は16ビットデータ
で表現され、各ビット位置が1小節を16分割したとき
の各タイミングを表わす。リズムパターンはキーオンパ
ターン(発音タイミングのパターン)とキーオフパター
ン(消音タイミングのパターン)とからなる。小節線に
おける発音タイミング或いは消音タイミングは1Hで数
値表現される。小節線から1/16小節後における発音
・消音タイミングは2Hで表現される。以下同様であ
る。リズムパターンの要素の集合であるキーオンパター
ン或いはキーオフパターンは16ビットデータ要素間の
ビットごとの論理和によって表現される。例えば1小節
が4拍の拍子において1拍目と2拍目が発音タイミング
となるキーオンパターンは1Hと10Hの論理和11H
によって表現される。
音楽要素は主として文字表現(記号表現)を使用し、必
要に応じて数値表現を使用してある。以下に各種音楽要
素の文字表現と数値表現(マシンレベルの表現)との対
応関係を図4〜図6に参照して説明する。コードタイプ
の文字表現はCHO(TYPE)である。コードタイプ
MAJは数値0、MINは数値1、7THは数値2、M
IN7は数値7、MAJ7は数値4でそれぞれ数値表現
される。マシンにおけるコードタイプのデータ長は例え
ば6ビットであり、これにより最大64種類のコードタ
イプを表現可能である。コードルートとキーの文字表現
はそれぞれCHO(ROOT)とKEYである。コード
ルート又はキーはそのピッチクラスによって特定され
る。ピッチクラスCは数値0、C#は1、Dは2以下同
様にしてBは11で数値表現される。従って、コードル
ートとキーの有効データ調は4ビットである。音楽構造
(上位/下位)における上位音楽構造はSTR1Dで文
字表現され、下位音楽構造はSTR2Dで文字表現され
る。AAの上位音楽構造は1H、BBは2H、CCは4
H……によって数値表現される。下位構造aaは1H、
bbは2H、ccは4H……により数値表現される。実
施例の装置では構造データの有効長を4ビット(ニブ
ル)で表現している。リズム種はRHYで文字表現す
る、リズム種ROCK(ロック)は1H、DISC(デ
ィスコ)は2H、16BE(16ビート)は4H、SW
IN(スウィング)は8H、WALT(ワルツ)は10
Hでそれぞれ数値表現される。音高データとキーコード
はそれぞれPITとKCによって表現される。音高デー
タとキーコードはピッチクラスとオクターブとによって
特定される。実施例では数値0がC2(ピッチクラスが
Cでオクターブが第2オクターブ)のピッチを表わしピ
ッチが半音上がるごとに+1する数値でピッチを表現し
ている。音種はNTで文字表現される音種コードトーン
(CHOT)は数値0、アブェイラブルノート(AVA
I)は数値1、スケールノート(SCAL)は数値2、
テンションノート(TENS)は数値3、アヴォイドノ
ート(AVOI)は数値4で表現され、エンドマーク
(END)はFHで表現される、音程の記号表現はMT
である、同音(SAME)は数値0、上行順次進行(+
STEP)は数値1、下行順次進行(−STEP)は数
値2、上行跳躍進行(+JUNP)は数値3、下行跳躍
進行(−JUNP)は数値4で表現され区切りマーク
(SEP)はFHで表現される。評価結果はJDG(フ
ラグJDG)で文字表現され、NGの評価結果は数値
0、GOODの評価結果は数値1で表現される。USE
R MELはNOを数値0、YESを数値1で表現す
る。ピッチクラスセットの要素(ピッチクラス)は次の
ように表現される。ピッチクラスCが1H、C#が2
H、Dが4H以下同様にしてBが800Hで表現され
る。即ちピッチクラスは12ビット中のビット位置(例
えば最下位即ち第0ビット位置がC)におけるビット値
“1”によって表わされる。ピッチクラスの集合である
ピッチクラスセットはこのような12ビットデータ表現
間のビットごとの論理和で表現される。例えばCとDか
らなるピッチクラスセットは1Hと4Hとの論理和即ち
5Hによって表現される。ピッチクラスセットの各文字
表現はコードトーンのピッチクラスセットはPCS(C
T)であり、CTの代りにPN、SN、AN、AVを用
いればそれぞれテンションノート、スケールノート、ア
ブェイラブルノート、アヴォイドノートのピッチクラス
セットを文字表現する。リズムパターンの文字表現はP
ATである。リズムパターンの要素は16ビットデータ
で表現され、各ビット位置が1小節を16分割したとき
の各タイミングを表わす。リズムパターンはキーオンパ
ターン(発音タイミングのパターン)とキーオフパター
ン(消音タイミングのパターン)とからなる。小節線に
おける発音タイミング或いは消音タイミングは1Hで数
値表現される。小節線から1/16小節後における発音
・消音タイミングは2Hで表現される。以下同様であ
る。リズムパターンの要素の集合であるキーオンパター
ン或いはキーオフパターンは16ビットデータ要素間の
ビットごとの論理和によって表現される。例えば1小節
が4拍の拍子において1拍目と2拍目が発音タイミング
となるキーオンパターンは1Hと10Hの論理和11H
によって表現される。
【0014】各種データの記憶形式(図7〜図14) 次に各種データの例を図7〜図14を参照して説明す
る。データ長(1ワード)は16ビットである。データ
メモリの呼び名とデータメモリの先頭アドレス(先頭記
号番地)は同じ呼び名で呼ぶ。例えばコード進行データ
メモリはCPMで呼ばれ、コード進行データメモリの先
頭アドレスも同じくCPMで呼ばれる。図7に標準ピッ
チクラスセットデータベースメモリを示す。標準ピッチ
クラスセットデータベースメモリはコードトーンメモリ
CT、テンションメモリPN、オービースケールノート
SNとからなる。コードトーンメモリCTはコードタイ
プを受けてそのコードタイプの標準ピッチクラスセット
をかえすテーブルである。例えばコードトーンメモリC
Tの記号番地MAJにあるデータ91Hはコードタイプ
MAJの標準ピッチクラスセットがC、E、Gであるこ
とを示している。ここに標準ピッチクラスセットとはコ
ードルートをCとした時のピッチクラスセットのことで
ある。換言すると、標準ピッチクラスセットデータベー
スメモリは各音種のピッチクラスセットを相対的な音程
(音程構造)で表現したものである。テンションノート
メモリPNはコードタイプに対してテンションノートの
標準ピッチクラスセットをかえすテーブルである。例え
ばコードタイプMAJに対してテンションノートメモリ
PNはB、F#、A、Bが標準ピッチクラスセットであ
ることを示すデータ44Hをかえす。スケールノートメ
モリSNはリズム種(又はスケールの種類)に対してス
ケールノートの標準ピッチクラスセットデータベースメ
モリをかえすテーブルである。例えばリズム種ロック
(ROCK)に対してスケールノートメモリSNはデー
タAB5Hをかえしてスケールノートの標準ピッチクラ
スセットデータベースメモリがC、B、E、F、G、
A、Bであることを知らせる。図8に固定メロディパタ
ーンデータベースメモリMPM1と、音種、音程データ
メモリNTM、MTMを示す固定メロディパターンデー
タベースメモリMPM1は図2のROM4におかれる。
メモリMPM1はメロディパターンのルールベースを実
現するものであり、各ルールは2ワード(32ビット)
で表現される。各ルールは音種列と音程列からなる。例
えばメモリMPM1の最初のルールはコードトーン(C
HOT)から上方向順次進行(+STEP)によりアヴ
ェイラブルノート(AVAI)に進み、アヴェイラブル
ノートから上方向順次進行(+STEP)によりコード
トーン(CHOT)に進むパターンを表わしている。2
ワードのルールデータにおいて各音種、各音程は4ビッ
ト(1ニブル)で表現される。従ってこの記憶形式の場
合ルールで表現されるメロディパターンの音の数は最大
で4つである。ルールの第2ワードである音程列ワード
のSEPニブルはルールの終了マーク(ルールエントリ
ー間の区切りマーク)である。メモリMPM1の最終ア
ドレスには固定メロディパターンルールベースの終端を
示すコードENDが書かれている。MPM1と同様の記
憶形式をもつメモリMPM2はRAM6にメロディパタ
ーンルールベースの拡張用として設けられる。
る。データ長(1ワード)は16ビットである。データ
メモリの呼び名とデータメモリの先頭アドレス(先頭記
号番地)は同じ呼び名で呼ぶ。例えばコード進行データ
メモリはCPMで呼ばれ、コード進行データメモリの先
頭アドレスも同じくCPMで呼ばれる。図7に標準ピッ
チクラスセットデータベースメモリを示す。標準ピッチ
クラスセットデータベースメモリはコードトーンメモリ
CT、テンションメモリPN、オービースケールノート
SNとからなる。コードトーンメモリCTはコードタイ
プを受けてそのコードタイプの標準ピッチクラスセット
をかえすテーブルである。例えばコードトーンメモリC
Tの記号番地MAJにあるデータ91Hはコードタイプ
MAJの標準ピッチクラスセットがC、E、Gであるこ
とを示している。ここに標準ピッチクラスセットとはコ
ードルートをCとした時のピッチクラスセットのことで
ある。換言すると、標準ピッチクラスセットデータベー
スメモリは各音種のピッチクラスセットを相対的な音程
(音程構造)で表現したものである。テンションノート
メモリPNはコードタイプに対してテンションノートの
標準ピッチクラスセットをかえすテーブルである。例え
ばコードタイプMAJに対してテンションノートメモリ
PNはB、F#、A、Bが標準ピッチクラスセットであ
ることを示すデータ44Hをかえす。スケールノートメ
モリSNはリズム種(又はスケールの種類)に対してス
ケールノートの標準ピッチクラスセットデータベースメ
モリをかえすテーブルである。例えばリズム種ロック
(ROCK)に対してスケールノートメモリSNはデー
タAB5Hをかえしてスケールノートの標準ピッチクラ
スセットデータベースメモリがC、B、E、F、G、
A、Bであることを知らせる。図8に固定メロディパタ
ーンデータベースメモリMPM1と、音種、音程データ
メモリNTM、MTMを示す固定メロディパターンデー
タベースメモリMPM1は図2のROM4におかれる。
メモリMPM1はメロディパターンのルールベースを実
現するものであり、各ルールは2ワード(32ビット)
で表現される。各ルールは音種列と音程列からなる。例
えばメモリMPM1の最初のルールはコードトーン(C
HOT)から上方向順次進行(+STEP)によりアヴ
ェイラブルノート(AVAI)に進み、アヴェイラブル
ノートから上方向順次進行(+STEP)によりコード
トーン(CHOT)に進むパターンを表わしている。2
ワードのルールデータにおいて各音種、各音程は4ビッ
ト(1ニブル)で表現される。従ってこの記憶形式の場
合ルールで表現されるメロディパターンの音の数は最大
で4つである。ルールの第2ワードである音程列ワード
のSEPニブルはルールの終了マーク(ルールエントリ
ー間の区切りマーク)である。メモリMPM1の最終ア
ドレスには固定メロディパターンルールベースの終端を
示すコードENDが書かれている。MPM1と同様の記
憶形式をもつメモリMPM2はRAM6にメロディパタ
ーンルールベースの拡張用として設けられる。
【0015】音種列メモリNPMと音程列メモリMPM
は入力メロディパターン(鍵盤8からのユーザー入力メ
ロディから導かれるメロディパターン、又は自動生成メ
ロディから導かれるメロディパターン)を表現するもの
である。NPMとMPMは共にRAM6に形成される1
ワード(16ビット)音種列メモリNPMにおいて、各
音種は1ニブル(4ビット)で表わされ同様に1ワード
(16ビット)の音程列メモリMPMにおいて、各音程
データ項目は1ニブル(4ビット)で表現される。従っ
てNPM、MPMにより最大4音分の入力メロディパタ
ーンが表現される。後述するように新たなメロディ音の
生成(自動生成或いは鍵盤8からの新しいメロディ音の
入力)に対してNPMとMPMはニブルを単位とする右
シフトレジスタとして操作される。生成開始の際或いは
小節線のタイミングでNTMとMTMの内容は右端のニ
ブルがENDニブルとなるように初期化される。従って
図8に示すNTMとMTMは初期化の後3音までのパタ
ーンが入った状態を示している。メロディパターンルー
ルベースの拡張処理においてNTMとMTMの内容は追
加ルールとしてRAM6内の拡張メロディパターンルー
ルベースに追加される。メロディの自動生成処理におい
てNTMとMTMの内容はメロディパターンルールベー
スから対応するルールエントリーの有無を検索するため
に用いられる。図9にテンポ・ビット変換マップTBT
Mと乱数メモリRANMを示す。TBTMとRANMは
共にROM4におかれる。テンポ・ビット変換マップT
BTMは入力装置10からの指定テンポに対してビート
種(例えば16ビット)をかえすテーブルである。テン
ポ・ビット変換マップTBTMの出力は図1Aで述べた
ようにリズムパターンの条件付に使用される。乱数メモ
リRANMは乱数データを記憶する。乱数メモリRAN
Mはメロディの自動生成モードにおいて新たなメロディ
音の音高候補を得る際に利用される。乱数メモリRAN
Mの最終アドレスには乱数データの終端を示すエンドマ
ーク(ffffH)が記憶される。図10にコード進行
データベースメモリCPMを示す。このメモリCPMは
図2のROM4におかれる。メモリCPMはコード進行
のデータベースを実現するものである。データベースC
PMの各コード進行エントリーは次のデータ項目からな
る。第1ワードがリズム種の属性を表わす。例えば00
111の属性データはそのコード進行がリズム種ロック
(ROCK)、ディスコ(DISC)、16ビート(1
6BE)に合う属性を有することを示している。コード
進行エントリーのリズム種属性データ項目は図1Aで述
べたように指定リズム種との間の属性テストに用いられ
る。コード進行エントリーの第2ワードには上位に長
さ、下位に音楽構造属性が記憶される。例えば音楽構造
属性データ項目が101ならばそのコード進行が上位構
造AA、又はCCには合う属性をもつが上位構造BBに
は適さない属性をもつことを表わす。音楽構造属性デー
タ項目は図1Aで述べたように選択上位構造に関するコ
ード進行の適正テストで用いられる。コード進行エント
リーの第3ワード以降にはコード進行のデータ本体が記
憶される。各ワードは上位ワード(1ニブル)にコード
のルート、中位(2ニブル)にコードタイプ、下位(1
ニブル)にコード調を記憶する。各コード進行エントリ
ーの終端にはエントリー間のセパレータ(区切りマー
ク)としてワード0000Hが記憶される。コード進行
データベースメモリCPMの終端にはデータベースの終
端マークを表わすワードffffHが記憶される。
は入力メロディパターン(鍵盤8からのユーザー入力メ
ロディから導かれるメロディパターン、又は自動生成メ
ロディから導かれるメロディパターン)を表現するもの
である。NPMとMPMは共にRAM6に形成される1
ワード(16ビット)音種列メモリNPMにおいて、各
音種は1ニブル(4ビット)で表わされ同様に1ワード
(16ビット)の音程列メモリMPMにおいて、各音程
データ項目は1ニブル(4ビット)で表現される。従っ
てNPM、MPMにより最大4音分の入力メロディパタ
ーンが表現される。後述するように新たなメロディ音の
生成(自動生成或いは鍵盤8からの新しいメロディ音の
入力)に対してNPMとMPMはニブルを単位とする右
シフトレジスタとして操作される。生成開始の際或いは
小節線のタイミングでNTMとMTMの内容は右端のニ
ブルがENDニブルとなるように初期化される。従って
図8に示すNTMとMTMは初期化の後3音までのパタ
ーンが入った状態を示している。メロディパターンルー
ルベースの拡張処理においてNTMとMTMの内容は追
加ルールとしてRAM6内の拡張メロディパターンルー
ルベースに追加される。メロディの自動生成処理におい
てNTMとMTMの内容はメロディパターンルールベー
スから対応するルールエントリーの有無を検索するため
に用いられる。図9にテンポ・ビット変換マップTBT
Mと乱数メモリRANMを示す。TBTMとRANMは
共にROM4におかれる。テンポ・ビット変換マップT
BTMは入力装置10からの指定テンポに対してビート
種(例えば16ビット)をかえすテーブルである。テン
ポ・ビット変換マップTBTMの出力は図1Aで述べた
ようにリズムパターンの条件付に使用される。乱数メモ
リRANMは乱数データを記憶する。乱数メモリRAN
Mはメロディの自動生成モードにおいて新たなメロディ
音の音高候補を得る際に利用される。乱数メモリRAN
Mの最終アドレスには乱数データの終端を示すエンドマ
ーク(ffffH)が記憶される。図10にコード進行
データベースメモリCPMを示す。このメモリCPMは
図2のROM4におかれる。メモリCPMはコード進行
のデータベースを実現するものである。データベースC
PMの各コード進行エントリーは次のデータ項目からな
る。第1ワードがリズム種の属性を表わす。例えば00
111の属性データはそのコード進行がリズム種ロック
(ROCK)、ディスコ(DISC)、16ビート(1
6BE)に合う属性を有することを示している。コード
進行エントリーのリズム種属性データ項目は図1Aで述
べたように指定リズム種との間の属性テストに用いられ
る。コード進行エントリーの第2ワードには上位に長
さ、下位に音楽構造属性が記憶される。例えば音楽構造
属性データ項目が101ならばそのコード進行が上位構
造AA、又はCCには合う属性をもつが上位構造BBに
は適さない属性をもつことを表わす。音楽構造属性デー
タ項目は図1Aで述べたように選択上位構造に関するコ
ード進行の適正テストで用いられる。コード進行エント
リーの第3ワード以降にはコード進行のデータ本体が記
憶される。各ワードは上位ワード(1ニブル)にコード
のルート、中位(2ニブル)にコードタイプ、下位(1
ニブル)にコード調を記憶する。各コード進行エントリ
ーの終端にはエントリー間のセパレータ(区切りマー
ク)としてワード0000Hが記憶される。コード進行
データベースメモリCPMの終端にはデータベースの終
端マークを表わすワードffffHが記憶される。
【0016】図11に音楽構造データベースメモリを示
す。音楽構造データベースメモリは図2のROM4にお
かれる。音楽構造データベースメモリは上位構造データ
ベースメモリSTR1と下位構造データベースメモリS
TR2とからなる。上位構造データベースメモリSTR
1は曲の構造を楽節構造列として表現した上位構造列の
データベースを記憶する。従って各ワードに最大4楽節
の上位構造列データが記憶される例えば第1ニブルがA
A、第2ニブルがBB、第3ニブルがAA、第4ニブル
がENDの曲構造ワードは第1楽節がAA、第2楽節が
BB、第3楽節(最終楽節)がAAであることを示す。
上位構造データベースメモリSTR1の終端にはデータ
ベースの終端を示すワードffffHが記憶される。下
位構造データベースメモリSTR2は楽節内部構造(8
小節構造)のデータベースを記憶する。下位構造データ
ベースメモリSTR2の各下位構造エントリーは3ワー
ドからなり第1ワードが属性に割り当てられ、第2と第
3ワードが8小節の構造表現に割り当てられる。属性ワ
ード(第1ワード)はそのエントリーの楽節内部構造
(8小節の構造列)が適合する上位構造を示す情報をも
つ。例えば1100の属性データ項目はその楽節内部構
造がCCかDDの楽節には適合するがAAやBBの楽節
には適合しないものであることを表わす。下位構造デー
タベースメモリにおける属性データは図1Aで述べたよ
うに上位構造に適合する下位構造を選択するための属性
テストで用いられる。下位構造エントリーの第2と第3
ワードにおいて各小節の構造は1ニブル(4ビット)で
表現される。詳細には第2ワードの第1ニブル(最上位
4ビット)が第1小節の構造、第2ニブルは第2小節の
構造、以下同様にして第3ワードの第1ニブルは第5小
節の構造、第3ワードの第4ニブル(最下位4ビット)
が第8小節の構造を表わす。下位構造データベースメモ
リSTR2の最終アドレスにはエンドマークを示すワー
ドffffHが記憶される。
す。音楽構造データベースメモリは図2のROM4にお
かれる。音楽構造データベースメモリは上位構造データ
ベースメモリSTR1と下位構造データベースメモリS
TR2とからなる。上位構造データベースメモリSTR
1は曲の構造を楽節構造列として表現した上位構造列の
データベースを記憶する。従って各ワードに最大4楽節
の上位構造列データが記憶される例えば第1ニブルがA
A、第2ニブルがBB、第3ニブルがAA、第4ニブル
がENDの曲構造ワードは第1楽節がAA、第2楽節が
BB、第3楽節(最終楽節)がAAであることを示す。
上位構造データベースメモリSTR1の終端にはデータ
ベースの終端を示すワードffffHが記憶される。下
位構造データベースメモリSTR2は楽節内部構造(8
小節構造)のデータベースを記憶する。下位構造データ
ベースメモリSTR2の各下位構造エントリーは3ワー
ドからなり第1ワードが属性に割り当てられ、第2と第
3ワードが8小節の構造表現に割り当てられる。属性ワ
ード(第1ワード)はそのエントリーの楽節内部構造
(8小節の構造列)が適合する上位構造を示す情報をも
つ。例えば1100の属性データ項目はその楽節内部構
造がCCかDDの楽節には適合するがAAやBBの楽節
には適合しないものであることを表わす。下位構造デー
タベースメモリにおける属性データは図1Aで述べたよ
うに上位構造に適合する下位構造を選択するための属性
テストで用いられる。下位構造エントリーの第2と第3
ワードにおいて各小節の構造は1ニブル(4ビット)で
表現される。詳細には第2ワードの第1ニブル(最上位
4ビット)が第1小節の構造、第2ニブルは第2小節の
構造、以下同様にして第3ワードの第1ニブルは第5小
節の構造、第3ワードの第4ニブル(最下位4ビット)
が第8小節の構造を表わす。下位構造データベースメモ
リSTR2の最終アドレスにはエンドマークを示すワー
ドffffHが記憶される。
【0017】図12にリズムパターンデータベースメモ
リRPMを示す。リズムパターンデータベースメモリR
PMは図2のROM4におかれる。リズムパターンデー
タベースメモリRPMは自動生成されるメロディのリズ
ムパターン(音調列)のデータベースを実現するもので
ある。リズムパターンデータベースメモリRPMの各エ
ントリーは4ワードからなり第1ワードがリズム種に関
する属性を表わし、第2ワードが上位にビート種の属
性、下位に音楽の下位構造に関する属性を記憶し、第3
ワードがキーオンパターンを表わし、第4ワードがキー
オフパターンを表わす。エントリーの第1ワードにおか
れるリズム種属性データ項目が00111ならばそのエ
ントリーのリズムパターンがリズム種ロック(ROC
K)、ディスコ(DISC)、16ビート(16BE)
には適するが、スウィング(SWIN)ゃワルツ(WA
LT)には適さないことを表わす。又、リズムパターン
エントリーの第2ワード下位におかれる構造属性データ
項目が101であればそのエントリーのリズムパターン
がaa又はccの小節構造には適するがbbの小節構造
には適さないことを表わす。エントリーの第3ワードに
記憶されるキーオンパターンは1小節における各音の発
音タイミングを記述する。第4ワードにおかれるキーオ
フパターンは1小節内の各音の消音タイミングを記述す
る。リズムパターンデータベースメモリRPMの最終ア
ドレスには終端マークを表わすワードffffHが記憶
される、各リズムパターンエントリーの第1と第2ワー
ドにある属性データは図1Aで述べたようにリズムパタ
ーンデータベースから選択下位構造、指定リズム、指定
ビート(テンポ)に合うリズムパターンを検索する際の
適性テストで使用される。実施例で使用されるその他の
定数、変数について図13と図14を参照して説明す
る。MPM2はユーザー演奏による拡張メロディパター
ンデータベースないしその先頭アドレスを表わす。拡張
メロディパターンデータベースMPM2は図2のRAM
6に作成される、MPM2SIZEは拡張メロディパタ
ーンデータベースのメモリサイズを表わす。MEASは
1小節の長さを表わすCP Cはコード進行の長さのカ
ウンタ(コード長のアキュムレータ)である、Tは現時
刻を表わすリズムカウンタである、BARは小節カウン
タである、小節カウンタBARの値はT/MEASの整
数部で定められる、PMPは指定テンポを表わす、BE
ATは指定ビート種を表わすもので指定テンポPMPを
テンポ・ビート変換マップにとおすことによって得られ
る。STRD1は上位構造データベースメモリSTR1
から選択された上位構造(例えばAAの楽節構造)を表
わすSTRD2は下位構造データベースメモリSTR2
から選択した下位構造(小節構造例えばaa)を表わ
す。PTIは現在の音高を表わしPREV PITは前
音高を表わす。
リRPMを示す。リズムパターンデータベースメモリR
PMは図2のROM4におかれる。リズムパターンデー
タベースメモリRPMは自動生成されるメロディのリズ
ムパターン(音調列)のデータベースを実現するもので
ある。リズムパターンデータベースメモリRPMの各エ
ントリーは4ワードからなり第1ワードがリズム種に関
する属性を表わし、第2ワードが上位にビート種の属
性、下位に音楽の下位構造に関する属性を記憶し、第3
ワードがキーオンパターンを表わし、第4ワードがキー
オフパターンを表わす。エントリーの第1ワードにおか
れるリズム種属性データ項目が00111ならばそのエ
ントリーのリズムパターンがリズム種ロック(ROC
K)、ディスコ(DISC)、16ビート(16BE)
には適するが、スウィング(SWIN)ゃワルツ(WA
LT)には適さないことを表わす。又、リズムパターン
エントリーの第2ワード下位におかれる構造属性データ
項目が101であればそのエントリーのリズムパターン
がaa又はccの小節構造には適するがbbの小節構造
には適さないことを表わす。エントリーの第3ワードに
記憶されるキーオンパターンは1小節における各音の発
音タイミングを記述する。第4ワードにおかれるキーオ
フパターンは1小節内の各音の消音タイミングを記述す
る。リズムパターンデータベースメモリRPMの最終ア
ドレスには終端マークを表わすワードffffHが記憶
される、各リズムパターンエントリーの第1と第2ワー
ドにある属性データは図1Aで述べたようにリズムパタ
ーンデータベースから選択下位構造、指定リズム、指定
ビート(テンポ)に合うリズムパターンを検索する際の
適性テストで使用される。実施例で使用されるその他の
定数、変数について図13と図14を参照して説明す
る。MPM2はユーザー演奏による拡張メロディパター
ンデータベースないしその先頭アドレスを表わす。拡張
メロディパターンデータベースMPM2は図2のRAM
6に作成される、MPM2SIZEは拡張メロディパタ
ーンデータベースのメモリサイズを表わす。MEASは
1小節の長さを表わすCP Cはコード進行の長さのカ
ウンタ(コード長のアキュムレータ)である、Tは現時
刻を表わすリズムカウンタである、BARは小節カウン
タである、小節カウンタBARの値はT/MEASの整
数部で定められる、PMPは指定テンポを表わす、BE
ATは指定ビート種を表わすもので指定テンポPMPを
テンポ・ビート変換マップにとおすことによって得られ
る。STRD1は上位構造データベースメモリSTR1
から選択された上位構造(例えばAAの楽節構造)を表
わすSTRD2は下位構造データベースメモリSTR2
から選択した下位構造(小節構造例えばaa)を表わ
す。PTIは現在の音高を表わしPREV PITは前
音高を表わす。
【0018】STR1 Pは上位構造データベースのワ
ードポインタである、STR2 Pは下位構造データベ
ースのワード(アドレス)ポインタである。STR1
Pは上位構造要素のカウンタ(上位構造データベースメ
モリにおける曲構造を表わすワード内の楽節カウンタ)
である、STR2 Pは下位構造要素のカウンタ(下位
構造データベースメモリのエントリーにおける第2、第
3ワードにしめる8小節構造への小節カウンタ)であ
る。カウンタSTR1D PはデータベースSTR1か
ら選択した曲構造ワードの中から現在の時刻における楽
節構造を取り出す際に使用される。カウンタSTR2D
PはデータベースSTR2の中から選択したエントリ
ーに対し現在の時刻における小節構造を取り出す際に用
いられる。RPM Pはリズムパターンデータベースメ
モリRPMへのワード(アドレス)ポインタである。C
PM Pはコード進行データベースCPMへのワード
(アドレス)ポインタである。RANM Pは乱数デー
タメモリRANMへのワード(アドレス)ポインタであ
る。MODEは自動作曲機のモードを表わす。メロディ
を自動生成しない通常のモードはNORMALで示さ
れ、メロディが自動生成されるモードはRMELODY
で示される、KEYONは押鍵状態のフラグである、こ
のフラグKEYONは押鍵状態をYES、離鍵状態をN
Oで示す、PKEYONは直前のタイミングでの押鍵状
態を示すフラグであり押鍵状態をYES、離鍵状態をN
Oで示す。USER MELはユーザーの演奏が小節内
にあったかどうかを示すフラグである。このフラグUS
ER MELは自動生成モードRMELODYにおいて
ユーザーのメロディ演奏によるメロディパターンをメロ
ディパターンデータベースに追加するためのメロディパ
ターンルール拡張モード(その間メロディの自動生成は
禁止される)を設定するためのフラグとして用いられ
る。
ードポインタである、STR2 Pは下位構造データベ
ースのワード(アドレス)ポインタである。STR1
Pは上位構造要素のカウンタ(上位構造データベースメ
モリにおける曲構造を表わすワード内の楽節カウンタ)
である、STR2 Pは下位構造要素のカウンタ(下位
構造データベースメモリのエントリーにおける第2、第
3ワードにしめる8小節構造への小節カウンタ)であ
る。カウンタSTR1D PはデータベースSTR1か
ら選択した曲構造ワードの中から現在の時刻における楽
節構造を取り出す際に使用される。カウンタSTR2D
PはデータベースSTR2の中から選択したエントリ
ーに対し現在の時刻における小節構造を取り出す際に用
いられる。RPM Pはリズムパターンデータベースメ
モリRPMへのワード(アドレス)ポインタである。C
PM Pはコード進行データベースCPMへのワード
(アドレス)ポインタである。RANM Pは乱数デー
タメモリRANMへのワード(アドレス)ポインタであ
る。MODEは自動作曲機のモードを表わす。メロディ
を自動生成しない通常のモードはNORMALで示さ
れ、メロディが自動生成されるモードはRMELODY
で示される、KEYONは押鍵状態のフラグである、こ
のフラグKEYONは押鍵状態をYES、離鍵状態をN
Oで示す、PKEYONは直前のタイミングでの押鍵状
態を示すフラグであり押鍵状態をYES、離鍵状態をN
Oで示す。USER MELはユーザーの演奏が小節内
にあったかどうかを示すフラグである。このフラグUS
ER MELは自動生成モードRMELODYにおいて
ユーザーのメロディ演奏によるメロディパターンをメロ
ディパターンデータベースに追加するためのメロディパ
ターンルール拡張モード(その間メロディの自動生成は
禁止される)を設定するためのフラグとして用いられ
る。
【0019】実施例の動作概要 実施例の自動作曲機はリアルタイムで作曲を行い作曲作
業と平行して作曲したものをリアルタイム演奏する。入
力装置からの生成開始指示に対し自動作曲機の動作モー
ドは自動メロディ生成モードに移行する生成開始指示に
応答して自動作曲機は作曲にかかる曲の構造を決定す
る。この決定は音楽構造データベースから曲構造ワード
を取り出すことによって始められる。更に曲構造ワード
に含まれる最初の楽節の構造を生成開始時の構造として
選択して、選択楽節構造に適した楽節内部構造(小節構
造、下位構造)を下位構造データベースから取り出しそ
の最初の小節構造を曲の最初の小節構造として選択す
る。更に自動作曲機はコード進行データベースから楽節
の構造(上位構造)に適したコード進行を取り出し、そ
のコード進行の最初のコードを曲の最初のコードとして
決定する。更に自動作曲機は小節構造(下位構造)に合
い、かつ、入力装置からの指定リズムと指定ビートに合
うリズムパターンをリズムパターンデータベースから取
り出す。取り出したリズムパターンは1小節の長さをも
っており、その1小節における自動メロディ音の発音タ
イミング情報と消音タイミング情報がそれぞれキーオン
パターン、キーオフパターンとして書かれている。指定
テンポに従う音楽時間の進行に伴い取り出したリズムパ
ターンから各音楽時点における情報が読み出される。読
み出した情報が自動メロディ音の発音タイミングを示す
時に自動作曲機はメロディ音の音高を決定する。自動メ
ロディ音の決定は次のようにして行われる。自動作曲機
は乱数データメモリから乱数データを取り出しそれに前
メロディ音を加えて新たに生成すべきメロディ音の音高
候補を作る。次に自動作曲機は音高候補までのメロディ
パターン(音種列NTMと音程列MTMとで定められ
る)を作成し、そのメロディパターンについてメロディ
パターンルールベースMPN1、MPN2を検索する。
検索が失敗すれば別の音高候補を生成して検索を繰り返
す。検索が成功すればその時の候補が新たなメロディ音
の音高となる、このようにして新たに生成されたメロデ
ィ音の音高データは音源を通してサウンドとして再生さ
れる(演奏される)。現在の時刻におけるリズムパター
ンのタイミング情報がメロディ音の消音タイミングを示
している場合には発音中のメロディ音を音源を介して消
音する。リズムパターンデータベースから取り出したリ
ズムパターンは1小節の長さなので作曲機は1小節の音
楽時間が経過する毎に再度リズムパターンデータベース
から音楽の進行に合う適当なリズムパターンを取り出
す。即ちリズムパターンデータベースから指定リズム、
指定ビートに合い、かつ新たな小節の構造に合うリズム
パターンを取り出す。作曲機は、コード進行データベー
スから取り出したコード進行をリズムカウンタからの現
時刻に従って走査する。本実施例ではコード進行の長さ
は上位構造(楽節)の長さと同じである。選択中のコー
ド進行が終了すると(1つの楽節が終了すると)、自動
作曲機は曲構造ワードの中から次の楽節構造(上位構
造)を取り出しその楽節構造に合うコード進行をコード
進行データベースから取り出す。以上の様にしてメロデ
ィの自動生成が行われる。なお、コード進行データベー
スから取り出したコード進行に基づいて自動伴奏を行う
ことは容易である。本実施例の自動作曲機は自動メロデ
ィ生成モードにおいて鍵盤からユーザーのメロディ入力
が行われた場合にそのメロディをパターン化(ルール
化)し、それを追加ルールとしてメロディパターンルー
ルベースに追加することが出来る。これをメロディパタ
ーンルール拡張機能と呼ぶ。即ち1小節中に鍵盤で最初
の押鍵が発生すると自動作曲機のモードはメロディルー
ルベース拡張モード(USER MEL=YESで示さ
れる)に移行する。自動作曲機は鍵盤からのユーザーメ
ロディ音に対しその音種と音程を評価する。評価した音
種と音程はそれぞれ音程列メモリMTMと音種列メモリ
NTMに右シフト方式でロードされる。次の小節線のタ
イミングでNTMとMTMには1小節の間に入力したユ
ーザーのメロディをルール化したメロディパターン情報
が記憶される。そこで自動作曲機はNTMとMTMにあ
るメロディパターン情報を拡張メロディパターンルール
ベースMPM2に書き込んでメロディパターンルールベ
ースの拡張を実現する。小節線タイミングでメロディパ
ターンルールベース拡張モードは自動的に解除され、メ
ロディの自動生成が行われる自動生成モードに復帰す
る。
業と平行して作曲したものをリアルタイム演奏する。入
力装置からの生成開始指示に対し自動作曲機の動作モー
ドは自動メロディ生成モードに移行する生成開始指示に
応答して自動作曲機は作曲にかかる曲の構造を決定す
る。この決定は音楽構造データベースから曲構造ワード
を取り出すことによって始められる。更に曲構造ワード
に含まれる最初の楽節の構造を生成開始時の構造として
選択して、選択楽節構造に適した楽節内部構造(小節構
造、下位構造)を下位構造データベースから取り出しそ
の最初の小節構造を曲の最初の小節構造として選択す
る。更に自動作曲機はコード進行データベースから楽節
の構造(上位構造)に適したコード進行を取り出し、そ
のコード進行の最初のコードを曲の最初のコードとして
決定する。更に自動作曲機は小節構造(下位構造)に合
い、かつ、入力装置からの指定リズムと指定ビートに合
うリズムパターンをリズムパターンデータベースから取
り出す。取り出したリズムパターンは1小節の長さをも
っており、その1小節における自動メロディ音の発音タ
イミング情報と消音タイミング情報がそれぞれキーオン
パターン、キーオフパターンとして書かれている。指定
テンポに従う音楽時間の進行に伴い取り出したリズムパ
ターンから各音楽時点における情報が読み出される。読
み出した情報が自動メロディ音の発音タイミングを示す
時に自動作曲機はメロディ音の音高を決定する。自動メ
ロディ音の決定は次のようにして行われる。自動作曲機
は乱数データメモリから乱数データを取り出しそれに前
メロディ音を加えて新たに生成すべきメロディ音の音高
候補を作る。次に自動作曲機は音高候補までのメロディ
パターン(音種列NTMと音程列MTMとで定められ
る)を作成し、そのメロディパターンについてメロディ
パターンルールベースMPN1、MPN2を検索する。
検索が失敗すれば別の音高候補を生成して検索を繰り返
す。検索が成功すればその時の候補が新たなメロディ音
の音高となる、このようにして新たに生成されたメロデ
ィ音の音高データは音源を通してサウンドとして再生さ
れる(演奏される)。現在の時刻におけるリズムパター
ンのタイミング情報がメロディ音の消音タイミングを示
している場合には発音中のメロディ音を音源を介して消
音する。リズムパターンデータベースから取り出したリ
ズムパターンは1小節の長さなので作曲機は1小節の音
楽時間が経過する毎に再度リズムパターンデータベース
から音楽の進行に合う適当なリズムパターンを取り出
す。即ちリズムパターンデータベースから指定リズム、
指定ビートに合い、かつ新たな小節の構造に合うリズム
パターンを取り出す。作曲機は、コード進行データベー
スから取り出したコード進行をリズムカウンタからの現
時刻に従って走査する。本実施例ではコード進行の長さ
は上位構造(楽節)の長さと同じである。選択中のコー
ド進行が終了すると(1つの楽節が終了すると)、自動
作曲機は曲構造ワードの中から次の楽節構造(上位構
造)を取り出しその楽節構造に合うコード進行をコード
進行データベースから取り出す。以上の様にしてメロデ
ィの自動生成が行われる。なお、コード進行データベー
スから取り出したコード進行に基づいて自動伴奏を行う
ことは容易である。本実施例の自動作曲機は自動メロデ
ィ生成モードにおいて鍵盤からユーザーのメロディ入力
が行われた場合にそのメロディをパターン化(ルール
化)し、それを追加ルールとしてメロディパターンルー
ルベースに追加することが出来る。これをメロディパタ
ーンルール拡張機能と呼ぶ。即ち1小節中に鍵盤で最初
の押鍵が発生すると自動作曲機のモードはメロディルー
ルベース拡張モード(USER MEL=YESで示さ
れる)に移行する。自動作曲機は鍵盤からのユーザーメ
ロディ音に対しその音種と音程を評価する。評価した音
種と音程はそれぞれ音程列メモリMTMと音種列メモリ
NTMに右シフト方式でロードされる。次の小節線のタ
イミングでNTMとMTMには1小節の間に入力したユ
ーザーのメロディをルール化したメロディパターン情報
が記憶される。そこで自動作曲機はNTMとMTMにあ
るメロディパターン情報を拡張メロディパターンルール
ベースMPM2に書き込んでメロディパターンルールベ
ースの拡張を実現する。小節線タイミングでメロディパ
ターンルールベース拡張モードは自動的に解除され、メ
ロディの自動生成が行われる自動生成モードに復帰す
る。
【0020】フローの説明 以下、図15〜図36を参照して実施例を更に詳細に説
明する。メインフロー(図15) 図2のCPUが実行するメインルーチンのフローを図1
5に示す。先ず、メインルーチンはステップ15−1で
システムを初期化する。メインループ15−2〜15−
16のエントリー15−2でキースキャンを実行して鍵
盤8と入力装置10の状態を読み込む。続いて操作され
た各キーに対応して所要の処理を実行する即ち、生成開
始指示があった場合には(ステップ15−3)、生成開
始処理15−4(図18)を実行し、停止指示があった
時には(ステップ15−5)、停止処理15−6(図2
4)を実行し、鍵盤で押鍵があった時には(ステップ1
5−7)、押鍵処理15−8(図25)を実行し、鍵盤
で離鍵があった時には(ステップ15−9)、離鍵処理
15−10(図26)を実行し、入力装置10からリズ
ム切換が指示された時には(ステップ15−11)、リ
ズム切換15−12を実行してリズム種レジスタRHY
に指定されたリズム種を設定し、入力装置10からテン
ポ設定が入力された時には(15−13)、テンポ設定
15−14を実行してテンポレジスタテンポに指定され
たテンポを設定しその他の入力に対しては(ステップ1
5−15)、その他の処理15−16を実行する。インタラプトルーチン(図16) 図16にインターラプトルーチンのフローを示す。イン
ターラプトルーチンは図2のロック発振器18から音楽
分解能時間の経過を表わす信号が発生する都度起動され
る。先ず16−1でMODE=NORMALかどうか即
ちモードがノーマルかどうかを判定する。モードがノー
マルならばそのままリターンしノーマルでないならば
(自動メロディモードならば)、以下の処理を行う。即
ち、ステップ16−2で押鍵中かどうかを調べ押鍵中な
ら押鍵中の処理16−3(図27)を実行してからステ
ップ16−9に進む。押鍵中でなければステップ16−
4でUSER MEL=YESかどうか即ち現在の小節
でユーザーからのメロディ入力があったかどうか(メロ
ディパターンルールベース拡張モードかどうか)を判定
しUSER MEL=YESがそのままステップ16−
9に進み、USER MEL=YESが成立するなら、
ステップ16−5に進んでGetB(*(RPM P+
1),TmodMEAS,1)=1かどうか即ち自動メ
ロディ音の発音時刻かどうかを判定する自動メロディ音
の発音時刻であれば発音時刻の処理16−6(図33)
を実行してからステップ16−9に進む発音時刻でなけ
ればステップ16−7に進みGetB(*(RPM P
+2),TmodMEAS,1)=1かどうか即ち自動
メロディ音の消音時刻かどうかを判定する自動メロディ
音の消音時刻であれば消音時刻の処理16−8(図3
5)を実行してからステップ16−9に進み消音時刻で
なければ直ちにステップ16−9に進む。ステップ16
−9ではInc CP C,T PKEYON=KEY
ONを実行してコード進行のカウンタ、リズムカウン
タ、を更新し現在の鍵状態レジスタの内容を直前の鍵状
態レジスタに写し取る。次にステップ16−10でコー
ド進行の中間かどうかを調べコード進行達しておれば実
行して処理(図19)、コード進行生成処理(図21)
を行うステップ16−12で小説かどうかをTmodM
EAS=0から判定し小節線タイムであればステップ1
6−13を実行して下位構造生成処理(図20)リズム
パターン生成処理(図23)メロディパターンDB拡張
(図36)を実行する。
明する。メインフロー(図15) 図2のCPUが実行するメインルーチンのフローを図1
5に示す。先ず、メインルーチンはステップ15−1で
システムを初期化する。メインループ15−2〜15−
16のエントリー15−2でキースキャンを実行して鍵
盤8と入力装置10の状態を読み込む。続いて操作され
た各キーに対応して所要の処理を実行する即ち、生成開
始指示があった場合には(ステップ15−3)、生成開
始処理15−4(図18)を実行し、停止指示があった
時には(ステップ15−5)、停止処理15−6(図2
4)を実行し、鍵盤で押鍵があった時には(ステップ1
5−7)、押鍵処理15−8(図25)を実行し、鍵盤
で離鍵があった時には(ステップ15−9)、離鍵処理
15−10(図26)を実行し、入力装置10からリズ
ム切換が指示された時には(ステップ15−11)、リ
ズム切換15−12を実行してリズム種レジスタRHY
に指定されたリズム種を設定し、入力装置10からテン
ポ設定が入力された時には(15−13)、テンポ設定
15−14を実行してテンポレジスタテンポに指定され
たテンポを設定しその他の入力に対しては(ステップ1
5−15)、その他の処理15−16を実行する。インタラプトルーチン(図16) 図16にインターラプトルーチンのフローを示す。イン
ターラプトルーチンは図2のロック発振器18から音楽
分解能時間の経過を表わす信号が発生する都度起動され
る。先ず16−1でMODE=NORMALかどうか即
ちモードがノーマルかどうかを判定する。モードがノー
マルならばそのままリターンしノーマルでないならば
(自動メロディモードならば)、以下の処理を行う。即
ち、ステップ16−2で押鍵中かどうかを調べ押鍵中な
ら押鍵中の処理16−3(図27)を実行してからステ
ップ16−9に進む。押鍵中でなければステップ16−
4でUSER MEL=YESかどうか即ち現在の小節
でユーザーからのメロディ入力があったかどうか(メロ
ディパターンルールベース拡張モードかどうか)を判定
しUSER MEL=YESがそのままステップ16−
9に進み、USER MEL=YESが成立するなら、
ステップ16−5に進んでGetB(*(RPM P+
1),TmodMEAS,1)=1かどうか即ち自動メ
ロディ音の発音時刻かどうかを判定する自動メロディ音
の発音時刻であれば発音時刻の処理16−6(図33)
を実行してからステップ16−9に進む発音時刻でなけ
ればステップ16−7に進みGetB(*(RPM P
+2),TmodMEAS,1)=1かどうか即ち自動
メロディ音の消音時刻かどうかを判定する自動メロディ
音の消音時刻であれば消音時刻の処理16−8(図3
5)を実行してからステップ16−9に進み消音時刻で
なければ直ちにステップ16−9に進む。ステップ16
−9ではInc CP C,T PKEYON=KEY
ONを実行してコード進行のカウンタ、リズムカウン
タ、を更新し現在の鍵状態レジスタの内容を直前の鍵状
態レジスタに写し取る。次にステップ16−10でコー
ド進行の中間かどうかを調べコード進行達しておれば実
行して処理(図19)、コード進行生成処理(図21)
を行うステップ16−12で小説かどうかをTmodM
EAS=0から判定し小節線タイムであればステップ1
6−13を実行して下位構造生成処理(図20)リズム
パターン生成処理(図23)メロディパターンDB拡張
(図36)を実行する。
【0021】初期化(図17) メインルーチンの初期化15−11の詳細を図17に示
す。17−1でSTR1 P=STR1、STR2 P
=STR2、RPM P=RPM、CPM P=CP
M、STR1D P=0、STR2D P=0、CPM
D P=0、RANM P=RANMを実行して各種ポ
インタを初期化し、17−2でRHY=ROCK、ME
AS=16、TMP=120、BEAT=*(TBTM
+TMP)、*MPM2=f000H、KEY=C、P
REV PIT=24を実行し17−3でMODE=N
OMAL、KEYON=NOを実行してセットし、最後
に17−4でNTM=f000H、MTM=f000H
を実行して音種と音程データメモリを初期化する。生成開始処理(図18) 生成開始処理ルーチンの詳細を18に示す。このルーチ
ンは入力装置生成開始指示があった時に行われるルーチ
ンである。先ず(18−1)音楽構造を選択するために
音楽の上位構造生成(図19)と下位構造生成(図2
0)を実行する。次にコード進行生成処理18−2(図
22)を実行してコード進行データベースから上位構造
にあうコード進行を選択する。次にリズムパターン生成
処理18−3(図23)を実行してリズムパターンデー
タベースから音楽の下位構造にあい、指定リズムにあ
い、かつ指定ビートにあうリズムパターンを選択する。
次にステップ18−4でT=0によりリズムカウンタを
初期化し18−5で*NTM=f000Hにより音種メ
モリを初期化しステップ18−6で*MTM=f000
Hにより音程メモリを初期化しステップ18−7でMO
DE=RMELODYにより状態フラグを生成モードに
設定する。上位構造生成(図19) 図19に上位構造生成ルーチンの詳細なフローを示す。
このルーチンは入力装置10から生成開始指示があった
場合、或いはコード進行の終端に達したときに実行され
る。上位構造生成ルーチンの目的は、楽曲の上位構造を
生成し且つ上位構造にあう下位構造を設定することであ
る。上位構造の生成は上位構造データベースSTR1か
ら上位構造データを取り出すことで行われる。詳細に述
べると、ステップ19−1でpost=STR1D P
×4+3、STRD1=GetB(*STR1 P,p
ost,4)を実行して上位構造データベースSTR1
から上位構造(楽節構造)データSTRD1を取り出
す。続いて19−2から19−5(19A)で次回の上
位構造生成ルーチンのために次の上位構造をロケートす
る。即ち19−2でSTR1D Pをインクリメント
し、STR1D P=4(ステップ19−3)、或いは
*STR1D P=END(ステップ19−4)であれ
ばSTR1D P=0、Increment STR1
P(ステップ19−5)を実行する。次に19−6〜
19−10(19B)において、19−1で取り出した
上位構造にあう下位構造列をロケートする。ここでロケ
ートされた下位構造列の中から個々の下位構造が取り出
される(図20参照)。詳細に述べると、ステップ19
−6でSTR2 P=STR2 P+3を実行し、その
結果*STR2 P=ffffH(ステップ19−7)
が成立するならSTR2 P=STR2(ステップ19
−8)を実行し、属性テスト19−9でGetB(*S
TR2 P,STRD1,1)=1が成立するかどうか
を調べる。GetB(*STR2 P,STRD1,
1)=1が成立するならばSTR2D P=0(ステッ
プ19−10)を実行する。図11に示すように、下位
構造データベースSTR2にエントリーされる8個の下
位構造列(8小節構造)が選択上位構造にあうかどうか
はその下位構造エントリーの属性データを選択上位構造
データSTRD1(例えばAA)と比較することで判定
される。
す。17−1でSTR1 P=STR1、STR2 P
=STR2、RPM P=RPM、CPM P=CP
M、STR1D P=0、STR2D P=0、CPM
D P=0、RANM P=RANMを実行して各種ポ
インタを初期化し、17−2でRHY=ROCK、ME
AS=16、TMP=120、BEAT=*(TBTM
+TMP)、*MPM2=f000H、KEY=C、P
REV PIT=24を実行し17−3でMODE=N
OMAL、KEYON=NOを実行してセットし、最後
に17−4でNTM=f000H、MTM=f000H
を実行して音種と音程データメモリを初期化する。生成開始処理(図18) 生成開始処理ルーチンの詳細を18に示す。このルーチ
ンは入力装置生成開始指示があった時に行われるルーチ
ンである。先ず(18−1)音楽構造を選択するために
音楽の上位構造生成(図19)と下位構造生成(図2
0)を実行する。次にコード進行生成処理18−2(図
22)を実行してコード進行データベースから上位構造
にあうコード進行を選択する。次にリズムパターン生成
処理18−3(図23)を実行してリズムパターンデー
タベースから音楽の下位構造にあい、指定リズムにあ
い、かつ指定ビートにあうリズムパターンを選択する。
次にステップ18−4でT=0によりリズムカウンタを
初期化し18−5で*NTM=f000Hにより音種メ
モリを初期化しステップ18−6で*MTM=f000
Hにより音程メモリを初期化しステップ18−7でMO
DE=RMELODYにより状態フラグを生成モードに
設定する。上位構造生成(図19) 図19に上位構造生成ルーチンの詳細なフローを示す。
このルーチンは入力装置10から生成開始指示があった
場合、或いはコード進行の終端に達したときに実行され
る。上位構造生成ルーチンの目的は、楽曲の上位構造を
生成し且つ上位構造にあう下位構造を設定することであ
る。上位構造の生成は上位構造データベースSTR1か
ら上位構造データを取り出すことで行われる。詳細に述
べると、ステップ19−1でpost=STR1D P
×4+3、STRD1=GetB(*STR1 P,p
ost,4)を実行して上位構造データベースSTR1
から上位構造(楽節構造)データSTRD1を取り出
す。続いて19−2から19−5(19A)で次回の上
位構造生成ルーチンのために次の上位構造をロケートす
る。即ち19−2でSTR1D Pをインクリメント
し、STR1D P=4(ステップ19−3)、或いは
*STR1D P=END(ステップ19−4)であれ
ばSTR1D P=0、Increment STR1
P(ステップ19−5)を実行する。次に19−6〜
19−10(19B)において、19−1で取り出した
上位構造にあう下位構造列をロケートする。ここでロケ
ートされた下位構造列の中から個々の下位構造が取り出
される(図20参照)。詳細に述べると、ステップ19
−6でSTR2 P=STR2 P+3を実行し、その
結果*STR2 P=ffffH(ステップ19−7)
が成立するならSTR2 P=STR2(ステップ19
−8)を実行し、属性テスト19−9でGetB(*S
TR2 P,STRD1,1)=1が成立するかどうか
を調べる。GetB(*STR2 P,STRD1,
1)=1が成立するならばSTR2D P=0(ステッ
プ19−10)を実行する。図11に示すように、下位
構造データベースSTR2にエントリーされる8個の下
位構造列(8小節構造)が選択上位構造にあうかどうか
はその下位構造エントリーの属性データを選択上位構造
データSTRD1(例えばAA)と比較することで判定
される。
【0022】下位構造生成(図20) 図20に下位構造生成ルーチンの詳細フローを示す。こ
のルーチンは生成開始処理の最初のステップ18−1の
中で上位構造の生成ルーチンに続いて呼び出される。
又、現時刻が小節線タイムのときインターラプトルーチ
ン(図16)のステップ16−12の中で呼び出され
る。下位構造生成ルーチンの目的は新しい下位構造デー
タ(新しい小節構造データ)をうることである。詳細に
述べると、ステップ20−1でpost=(STR2D
P×4+3)mod16、STRD2=GetB(*
(STR2 P+STR2 P/4+1),post,
4)を実行して下位構造を得ている。20−2〜20−
4(20A)において下位構造生成ルーチンの次回の実
行のために次の下位構造をロケートしている。即ちステ
ップ20−2で下位構造要素カウンタSTR2D P
(8小節楽節内の小節構造へのポインタ)をインクリメ
ントしSTR2D P=8(ステップ20−3)が成立
すればSTR2D P=0(ステップ20−4)を実行
している。GetB(図21) 図21は関数命令GetBの詳細なフローである。関数
命令GetB(data、post、nbit)は1ワ
ード中の所望の部分データ項目をうる関数である。即
ち、GetB(data、post、nbit)は16
ビットの1ワードdataのpostビット目から右に
nビットのデータをとる関数命令であり、既に述べた上
位構造生成ルーチンのステップ19−1など各種ルーチ
ンにおいて適宜呼び出されて実行される。先ず、ステッ
プ21−1でx1=dataを実行し、ステップ21−
2でX1を右に(post+1−nbit)シフトし、
ステップ21−3でx2=ffffhを実行し、21−
4でX2を左にnbitシフトし、ステップ21−5で
X2を反転し、ステップ21−6でX1とX2のビット
ごとの論理積をとる。図21の動作例では16ビットの
1ワードデータからその第8ビットから右に2ビット分
(01)を取り出している。GetB関数命令の実行の
結果、この01の2ビットは16ビットワードの第1ビ
ットと第0(最下位)ビット位置に取り出される。コード進行生成ルーチン(図22) コード進行生成ルーチンの詳細を図22に示す。このル
ーチンは生成開始処理のステップ18−2、或いは1つ
のコード進行が終了する都度ステップ16−10中で呼
び出される。コード進行生成ルーチンではコード進行デ
ータベースメモリCPMの中から指定リズム種にあい且
つ上位構造にあうコード進行を取り出している。詳細に
述べると、ステップ22−1でGetB(*CPM
P,RHY,1)をチェックしてアクセスしたコード進
行が指定リズム種にあうかどうかの属性テストを行ない
この属性テストにあえばステップ22−2でGetB
((*(CPM P+1),STRD1,1)=1をチ
ェックしてそのコード進行が上位構造にあうかどうかを
判定している。22−1、22−2のいずれかの属性テ
ストに失敗した場合には、22−3〜22−6において
コード進行データベースメモリCPMから次のコード進
行をロケートしている。即ち、22−3でコード進行デ
ータメモリのワードポインタCPM Pをインクリメン
トし22−4で*CPM P=ffffH(コード進行デ
ータベースの終端)かどうかをチェックし、ステップ2
2−6で*(CPM P−1)=0H(コード進行エン
トリーの初め)かどうかをチェックし、*(CPM P
−1)=0Hが不成立なら22−3に戻り、22−4で
*CPM P=ffffHが成立するならポインタCP
M Pをコード進行データメモリの先頭CPMに戻して
ステップ22−1に戻り、ステップ22−6で*(CP
M P−1)=0Hが成立すれば同じくステップ22−
1に戻る。ステップ22−1と22−2の両方の属性テ
ストに合格した時はポインタCPM Pは適正なコード
進行をロケートしている。そこで、ステップ22−7で
CP C=0(コードポインタがコード進行の最初のコ
ードを指すように設定)を実行している。
のルーチンは生成開始処理の最初のステップ18−1の
中で上位構造の生成ルーチンに続いて呼び出される。
又、現時刻が小節線タイムのときインターラプトルーチ
ン(図16)のステップ16−12の中で呼び出され
る。下位構造生成ルーチンの目的は新しい下位構造デー
タ(新しい小節構造データ)をうることである。詳細に
述べると、ステップ20−1でpost=(STR2D
P×4+3)mod16、STRD2=GetB(*
(STR2 P+STR2 P/4+1),post,
4)を実行して下位構造を得ている。20−2〜20−
4(20A)において下位構造生成ルーチンの次回の実
行のために次の下位構造をロケートしている。即ちステ
ップ20−2で下位構造要素カウンタSTR2D P
(8小節楽節内の小節構造へのポインタ)をインクリメ
ントしSTR2D P=8(ステップ20−3)が成立
すればSTR2D P=0(ステップ20−4)を実行
している。GetB(図21) 図21は関数命令GetBの詳細なフローである。関数
命令GetB(data、post、nbit)は1ワ
ード中の所望の部分データ項目をうる関数である。即
ち、GetB(data、post、nbit)は16
ビットの1ワードdataのpostビット目から右に
nビットのデータをとる関数命令であり、既に述べた上
位構造生成ルーチンのステップ19−1など各種ルーチ
ンにおいて適宜呼び出されて実行される。先ず、ステッ
プ21−1でx1=dataを実行し、ステップ21−
2でX1を右に(post+1−nbit)シフトし、
ステップ21−3でx2=ffffhを実行し、21−
4でX2を左にnbitシフトし、ステップ21−5で
X2を反転し、ステップ21−6でX1とX2のビット
ごとの論理積をとる。図21の動作例では16ビットの
1ワードデータからその第8ビットから右に2ビット分
(01)を取り出している。GetB関数命令の実行の
結果、この01の2ビットは16ビットワードの第1ビ
ットと第0(最下位)ビット位置に取り出される。コード進行生成ルーチン(図22) コード進行生成ルーチンの詳細を図22に示す。このル
ーチンは生成開始処理のステップ18−2、或いは1つ
のコード進行が終了する都度ステップ16−10中で呼
び出される。コード進行生成ルーチンではコード進行デ
ータベースメモリCPMの中から指定リズム種にあい且
つ上位構造にあうコード進行を取り出している。詳細に
述べると、ステップ22−1でGetB(*CPM
P,RHY,1)をチェックしてアクセスしたコード進
行が指定リズム種にあうかどうかの属性テストを行ない
この属性テストにあえばステップ22−2でGetB
((*(CPM P+1),STRD1,1)=1をチ
ェックしてそのコード進行が上位構造にあうかどうかを
判定している。22−1、22−2のいずれかの属性テ
ストに失敗した場合には、22−3〜22−6において
コード進行データベースメモリCPMから次のコード進
行をロケートしている。即ち、22−3でコード進行デ
ータメモリのワードポインタCPM Pをインクリメン
トし22−4で*CPM P=ffffH(コード進行デ
ータベースの終端)かどうかをチェックし、ステップ2
2−6で*(CPM P−1)=0H(コード進行エン
トリーの初め)かどうかをチェックし、*(CPM P
−1)=0Hが不成立なら22−3に戻り、22−4で
*CPM P=ffffHが成立するならポインタCP
M Pをコード進行データメモリの先頭CPMに戻して
ステップ22−1に戻り、ステップ22−6で*(CP
M P−1)=0Hが成立すれば同じくステップ22−
1に戻る。ステップ22−1と22−2の両方の属性テ
ストに合格した時はポインタCPM Pは適正なコード
進行をロケートしている。そこで、ステップ22−7で
CP C=0(コードポインタがコード進行の最初のコ
ードを指すように設定)を実行している。
【0023】リズムパターン生成ルーチン(図23) リズムパターン生成ルーチンの詳細フローを図23に示
す。リズムパターン生成ルーチンは生成開始処理のステ
ップ18−3、小節線タイムに対するステップ16−1
3の中で呼びだされる。リズムパータン生成ルーチンの
目的はリズムパターンデータベースメモリRPMの中か
ら指定リズム種に合い、下位構造に合い、且つテンポ乃
至ビート種に合うリズムパターン(1小節リズムパター
ン)を取り出すことである。取り出されたリズムパター
ンは自動生成される1小節メロディのリズムパターン
(音長列)を定めるものである。詳細に述べると、ステ
ップ23−1でGetB(*RPM P,RHY,1)
が成立するかどうかを見ることでアクセスしたリズムパ
ターンが指定リズム種にあうかどうかを調べている。ス
テップ23−2ではGetB(*(RPM P+1),
STRD2,1)をチェックすることにより、リズムパ
ターンが下位構造に合うかどうかを調べている。23−
3と23−4(23A)ではリズムパターンがテンポに
対応するリズム種にあうかどうかを調べている。即ち、
23−3でdata=*(RPM P+1)、post
=*(TBTM+TMP)を実行し、23−4でGet
B(data,15,4)=postが成立するかどう
かをチェックする。23−1、23−2、23Aのいず
れかの属性テストに失敗した場合は23B(23−5〜
23−7)においてリズムパターンデータベースの次の
リズムパターンをロケートしている。即ち、23−5で
RPM P=RPM P+4を実行し23−6で*RPM
P=ffffHが成立してリズムパターンデータベー
スの終端が検出された時は23−7でRPM P=RP
Mを実行してリズムパターンポインタRPM Pをリズ
ムパターンデータベースの先頭RPMに戻している。全
ての属性テスト(23−1、23−2、23A)に合格
した時にはステップ23−8に進みUSER MEL=
NOを実行してメロディパターンルールデータベース拡
張モードを解除する。停止処理ルーチン(図24) 図24は停止指示15−5に応答して行なわれる停止処
理15−6の詳細である。24−1に示すようにMOD
E=NORMALを実行してシステムの状態を通常のモ
ード(メロディの自動生成が行なわれない通常の状態)
に戻している。 押鍵処理ルーチン(図25) 押鍵15−7に応答して実行される押鍵処理15−8の
詳細を図25に示す。25−1でKEYON=YESを
実行して押鍵フラグを設定し25−2でKEYBUF=
KC、PIT=KCを実行し25−3でPITを発音す
る。このように鍵盤8の押鍵に対する音源12の発音処
理はメインルーチン(図15)内の押鍵処理ステップ1
5−8内で行なわれる。
す。リズムパターン生成ルーチンは生成開始処理のステ
ップ18−3、小節線タイムに対するステップ16−1
3の中で呼びだされる。リズムパータン生成ルーチンの
目的はリズムパターンデータベースメモリRPMの中か
ら指定リズム種に合い、下位構造に合い、且つテンポ乃
至ビート種に合うリズムパターン(1小節リズムパター
ン)を取り出すことである。取り出されたリズムパター
ンは自動生成される1小節メロディのリズムパターン
(音長列)を定めるものである。詳細に述べると、ステ
ップ23−1でGetB(*RPM P,RHY,1)
が成立するかどうかを見ることでアクセスしたリズムパ
ターンが指定リズム種にあうかどうかを調べている。ス
テップ23−2ではGetB(*(RPM P+1),
STRD2,1)をチェックすることにより、リズムパ
ターンが下位構造に合うかどうかを調べている。23−
3と23−4(23A)ではリズムパターンがテンポに
対応するリズム種にあうかどうかを調べている。即ち、
23−3でdata=*(RPM P+1)、post
=*(TBTM+TMP)を実行し、23−4でGet
B(data,15,4)=postが成立するかどう
かをチェックする。23−1、23−2、23Aのいず
れかの属性テストに失敗した場合は23B(23−5〜
23−7)においてリズムパターンデータベースの次の
リズムパターンをロケートしている。即ち、23−5で
RPM P=RPM P+4を実行し23−6で*RPM
P=ffffHが成立してリズムパターンデータベー
スの終端が検出された時は23−7でRPM P=RP
Mを実行してリズムパターンポインタRPM Pをリズ
ムパターンデータベースの先頭RPMに戻している。全
ての属性テスト(23−1、23−2、23A)に合格
した時にはステップ23−8に進みUSER MEL=
NOを実行してメロディパターンルールデータベース拡
張モードを解除する。停止処理ルーチン(図24) 図24は停止指示15−5に応答して行なわれる停止処
理15−6の詳細である。24−1に示すようにMOD
E=NORMALを実行してシステムの状態を通常のモ
ード(メロディの自動生成が行なわれない通常の状態)
に戻している。 押鍵処理ルーチン(図25) 押鍵15−7に応答して実行される押鍵処理15−8の
詳細を図25に示す。25−1でKEYON=YESを
実行して押鍵フラグを設定し25−2でKEYBUF=
KC、PIT=KCを実行し25−3でPITを発音す
る。このように鍵盤8の押鍵に対する音源12の発音処
理はメインルーチン(図15)内の押鍵処理ステップ1
5−8内で行なわれる。
【0024】離鍵処理ルーチン(図26) 鍵盤8での離鍵15−9に対して行なわれる離鍵処理ス
テップ15−10の詳細を図26に示す。26−1でK
EYON=NOを実行して押鍵フラグを離鍵状態に設定
し26−2でPITを消音する。押鍵中の処理ルーチン(図27) 図27に押鍵中の処理ルーチンの詳細を示す。このルー
チンはインターラプトルーチン(図16)の中で押鍵中
16−2(KEYON=YES)が検出されたときに呼
びだされるルーチンである。押鍵中の処理ルーチンでは
小節内の最初の押鍵を合図とするメロディパターンルー
ルベース拡張モードの設定及び拡張モードにおけるユー
ザー入力メロディのパターン化(音種列、音程列の作成
作業)を行なう。詳細に述べると、27−1でMODE
=NORMALが成立すれば直ちに27−12にジャン
プしてPREV PIT=PITを実行する。MODE
=NORMAL(ステップ27−1)が不成立の場合、
即ちモードが生成モード(RMELODY)の場合ステ
ップ27−2に進みPKEYON=OFFかどうか即ち
鍵盤8で新たに押鍵が発生したかどうかを見る。押鍵が
続いている場合はステップ27−12にジャンプする。
新たな押鍵の発生時にはステップ27−3に進みUSE
R MEL=YESかどうか即ち既に拡張モードになっ
ているかどうかを調べる。既に拡張モードならばステッ
プ27−7にジャンプする。拡張モードになってなけれ
ばステップ27−4に進みUSER MEL=YESを
実行して小節中にユーザーからのメロディ入力があった
ことを記録する。次に27−5で*NTM=f000
H、*MTM=f000Hを実行して音種と音程列のメ
モリを初期化する。続いて27−6で消音命令を実行
し、発音中の自動生成メロディ音を消音する。27−3
〜27−6が拡張モード設定処理27Aを定める。27
−7でコード情報作成(図28)により現在のコード情
報を求め、27−8で音種分類(図29)を行なって押
鍵されたメロディ音の音種を分類する。27−9で分類
された結果をストアーする(図30の音種ストアー)。
27−10で音程分類(図31)を実行して(押鍵にか
かるメロディ音の前音からの音程を分類しその結果を2
7−11で音程メモリMTMにストアーする(図32の
音程ストアー)。しかる後、27−12に進みPREV
PIT=PITを実行して現ピッチレジスタの内容を
前回ピッチレジスタに移す。
テップ15−10の詳細を図26に示す。26−1でK
EYON=NOを実行して押鍵フラグを離鍵状態に設定
し26−2でPITを消音する。押鍵中の処理ルーチン(図27) 図27に押鍵中の処理ルーチンの詳細を示す。このルー
チンはインターラプトルーチン(図16)の中で押鍵中
16−2(KEYON=YES)が検出されたときに呼
びだされるルーチンである。押鍵中の処理ルーチンでは
小節内の最初の押鍵を合図とするメロディパターンルー
ルベース拡張モードの設定及び拡張モードにおけるユー
ザー入力メロディのパターン化(音種列、音程列の作成
作業)を行なう。詳細に述べると、27−1でMODE
=NORMALが成立すれば直ちに27−12にジャン
プしてPREV PIT=PITを実行する。MODE
=NORMAL(ステップ27−1)が不成立の場合、
即ちモードが生成モード(RMELODY)の場合ステ
ップ27−2に進みPKEYON=OFFかどうか即ち
鍵盤8で新たに押鍵が発生したかどうかを見る。押鍵が
続いている場合はステップ27−12にジャンプする。
新たな押鍵の発生時にはステップ27−3に進みUSE
R MEL=YESかどうか即ち既に拡張モードになっ
ているかどうかを調べる。既に拡張モードならばステッ
プ27−7にジャンプする。拡張モードになってなけれ
ばステップ27−4に進みUSER MEL=YESを
実行して小節中にユーザーからのメロディ入力があった
ことを記録する。次に27−5で*NTM=f000
H、*MTM=f000Hを実行して音種と音程列のメ
モリを初期化する。続いて27−6で消音命令を実行
し、発音中の自動生成メロディ音を消音する。27−3
〜27−6が拡張モード設定処理27Aを定める。27
−7でコード情報作成(図28)により現在のコード情
報を求め、27−8で音種分類(図29)を行なって押
鍵されたメロディ音の音種を分類する。27−9で分類
された結果をストアーする(図30の音種ストアー)。
27−10で音程分類(図31)を実行して(押鍵にか
かるメロディ音の前音からの音程を分類しその結果を2
7−11で音程メモリMTMにストアーする(図32の
音程ストアー)。しかる後、27−12に進みPREV
PIT=PITを実行して現ピッチレジスタの内容を
前回ピッチレジスタに移す。
【0025】コード情報作成ルーチン(図28) 図28にコード情報作成ルーチンの詳細フローを示す。
このルーチンはユーザーの入力メロディをパターン化す
るために押鍵中の処理ルーチン(図27)のステップ2
7−7で呼びだされると共に、自動メロディ生成のため
に後述する発音時刻の処理ルーチン(図33)のステッ
プ33−6で呼びだされる。コード情報作成ルーチンの
目的はコード進行データベースから選択しているコード
進行の中から現在の時刻におけるコード情報を取り出す
ことである。詳細に述べると、28−1でi=0により
コード長のアキュムレータを初期化し、28−2でj=
CPM P+2により選択コード進行データの先頭コー
ドをロケートする。次に28A(28−3〜28−5)
において現コード(現在時刻におけるコード)をロケー
トする。即ち、28−3でi=i+GetB(*j,
5,6)を実行し28−4でi>CP Cかどうかをチ
ェックし、不成立なら28−5でJをインクリメントす
る。現コードをロケートしたらステップ28−6に進み
CHO=*jにより現コードのデータをCHOレジスタ
に取り込む。続いて28−7でCHO(ROOT)=
(GetB(CHO,15,4)+KEY)mod1
2、CHO(TYPE)=GetB(CHO,11,
6)を実行して現コードのルートとタイプの情報をう
る。音種分類ルーチン(図29) 音種分類ルーチンの詳細を図29に示す。このルーチン
はユーザ入力メロディのパターン化のためにステップ2
7−8で呼びだされると共に、自動メロディの生成のた
めに後述する発音時刻の処理ルーチン(図33)のステ
ップ33−7の中で呼びだされる。音種分類ルーチンの
目的は着目しているメロディ音(押鍵にかかるメロディ
音或いは自動メロディ音のための音候補)の音種を分類
することである。このような音種分類のためのコード情
報作成ルーチン(図28)からのコード情報、キー情報
KEY指定リズム種情報RHY及びコードトーンスケー
ルノート、テンションノートの標準ピッチクラスセット
が使用される。詳細に述べると、ステップ29−1でp
os1=(12+PIT−CHO(ROOT))mod
12、pos2=(12+PIT−KEY)mod12
を実行する。ここにPOS1は音高PITのコードルー
トからの音程を表わしPOS2は音高PITのキーから
の音程を表わす。次に29−2でx1=*(CT+CH
O(TYPE))、x2=*(TN+CHO(TYP
E))、x3=*(SN+RHY)によりコード、テン
ション、スケールの各ピッチクラスセット(PCS)を
うる。次に29−3でGetB(x1,pos1,1)
=1(コードトーン)かどうかを調べ、成立するなら2
9−4でNT=CHOTを実行するNT=CHOTは音
高PITを有するメロディ音がコードトーンであること
を宣言したものである。ステップ29−5ではGetB
(x2,pos1,1)=1andGetB(x3,p
os2,1)=1が成立するかどうか即ちアヴェイラブ
ルノートかどうかを調べ成立するならば29−6でNT
=AVAIを実行する。NT=AVAIは着目している
メロディ音がアヴェイラブルノートであることを宣言し
たものである。ステップ29−7でGetB(x3,p
os2,1)=1により着目している音がスケールノー
トかどうかをチェックし、成立すればその旨を宣言する
ため29−8でNT=SCALを実行する。ステップ2
9−9ではGetB(x2,pos1,1)=1により
メロディ音がテンションノートかどうかをチェックし、
成立すればその旨を宣言するために29−10でNT=
TENSを実行する。29−3、29−5、29−7、
29−9がいずれも不成立であれば29−11でNT=
AVOIによりメロディ音がアヴォイドノートであるこ
とを宣言する。参照番号290の動作例ではコードがD
MAJORの時PITがF#3の音がコードトーンと
して分類される様子を示している。ベン図291に示す
ように円X1はコードトーンのPCS、円X2はテンシ
ョンノートのPCS、円X3はスケールノートのPCS
である。X1の要素と判定されるメロディ音はコードト
ーンである。集合X2とX3とが重なる部分はアヴェイ
ラブルノートとして判定される。集合X3のうち集合X
1と重ならず且つテンションノートと重ならない部分が
スケールノートと判定される領域である。集合X2のう
ち集合X3と重ならない部分がテンションノートと判定
される領域である。集合円X1、X2、X3の外部がア
ヴォイドノートとして判定される領域である。
このルーチンはユーザーの入力メロディをパターン化す
るために押鍵中の処理ルーチン(図27)のステップ2
7−7で呼びだされると共に、自動メロディ生成のため
に後述する発音時刻の処理ルーチン(図33)のステッ
プ33−6で呼びだされる。コード情報作成ルーチンの
目的はコード進行データベースから選択しているコード
進行の中から現在の時刻におけるコード情報を取り出す
ことである。詳細に述べると、28−1でi=0により
コード長のアキュムレータを初期化し、28−2でj=
CPM P+2により選択コード進行データの先頭コー
ドをロケートする。次に28A(28−3〜28−5)
において現コード(現在時刻におけるコード)をロケー
トする。即ち、28−3でi=i+GetB(*j,
5,6)を実行し28−4でi>CP Cかどうかをチ
ェックし、不成立なら28−5でJをインクリメントす
る。現コードをロケートしたらステップ28−6に進み
CHO=*jにより現コードのデータをCHOレジスタ
に取り込む。続いて28−7でCHO(ROOT)=
(GetB(CHO,15,4)+KEY)mod1
2、CHO(TYPE)=GetB(CHO,11,
6)を実行して現コードのルートとタイプの情報をう
る。音種分類ルーチン(図29) 音種分類ルーチンの詳細を図29に示す。このルーチン
はユーザ入力メロディのパターン化のためにステップ2
7−8で呼びだされると共に、自動メロディの生成のた
めに後述する発音時刻の処理ルーチン(図33)のステ
ップ33−7の中で呼びだされる。音種分類ルーチンの
目的は着目しているメロディ音(押鍵にかかるメロディ
音或いは自動メロディ音のための音候補)の音種を分類
することである。このような音種分類のためのコード情
報作成ルーチン(図28)からのコード情報、キー情報
KEY指定リズム種情報RHY及びコードトーンスケー
ルノート、テンションノートの標準ピッチクラスセット
が使用される。詳細に述べると、ステップ29−1でp
os1=(12+PIT−CHO(ROOT))mod
12、pos2=(12+PIT−KEY)mod12
を実行する。ここにPOS1は音高PITのコードルー
トからの音程を表わしPOS2は音高PITのキーから
の音程を表わす。次に29−2でx1=*(CT+CH
O(TYPE))、x2=*(TN+CHO(TYP
E))、x3=*(SN+RHY)によりコード、テン
ション、スケールの各ピッチクラスセット(PCS)を
うる。次に29−3でGetB(x1,pos1,1)
=1(コードトーン)かどうかを調べ、成立するなら2
9−4でNT=CHOTを実行するNT=CHOTは音
高PITを有するメロディ音がコードトーンであること
を宣言したものである。ステップ29−5ではGetB
(x2,pos1,1)=1andGetB(x3,p
os2,1)=1が成立するかどうか即ちアヴェイラブ
ルノートかどうかを調べ成立するならば29−6でNT
=AVAIを実行する。NT=AVAIは着目している
メロディ音がアヴェイラブルノートであることを宣言し
たものである。ステップ29−7でGetB(x3,p
os2,1)=1により着目している音がスケールノー
トかどうかをチェックし、成立すればその旨を宣言する
ため29−8でNT=SCALを実行する。ステップ2
9−9ではGetB(x2,pos1,1)=1により
メロディ音がテンションノートかどうかをチェックし、
成立すればその旨を宣言するために29−10でNT=
TENSを実行する。29−3、29−5、29−7、
29−9がいずれも不成立であれば29−11でNT=
AVOIによりメロディ音がアヴォイドノートであるこ
とを宣言する。参照番号290の動作例ではコードがD
MAJORの時PITがF#3の音がコードトーンと
して分類される様子を示している。ベン図291に示す
ように円X1はコードトーンのPCS、円X2はテンシ
ョンノートのPCS、円X3はスケールノートのPCS
である。X1の要素と判定されるメロディ音はコードト
ーンである。集合X2とX3とが重なる部分はアヴェイ
ラブルノートとして判定される。集合X3のうち集合X
1と重ならず且つテンションノートと重ならない部分が
スケールノートと判定される領域である。集合X2のう
ち集合X3と重ならない部分がテンションノートと判定
される領域である。集合円X1、X2、X3の外部がア
ヴォイドノートとして判定される領域である。
【0026】音種ストアルーチン(図30) 図30に音種ストアルーチンの詳細を示す。このルーチ
ンはユーザー入力メロディのパターン化(ステップ27
−8)と自動メロディ音の評価のための処理(ステップ
33−8内)において呼びだされる。音種ストアルーチ
ンでは音種メモリNTMを右シフトレジスタとして音種
分類NTをNTMにストアしている即ち30−1でNT
Mを4ビット右シフトし30−2でNTを12ビット左
シフトし30−3でNTとNTMの論理和をNTMに代
入している。音程分類ルーチン(図31) 図31に音程分類ルーチンの詳細を示す。音程分類ルー
チンはステップ27−1と33−7内で呼びだされる。
音程分類ルーチンでは現ピッチPITを前ピッチPRE
V PITと比較して両音の間に形成される音程(モー
ション)を分類している。即ちPIT=PREV PI
T(ステップ31−1)ならMT=SAME(ステップ
31−2)としてモーションなしを宣言しPIT−PR
EV PIT>2(ステップ31−3)ならMT=+J
UMP(ステップ31−4)により上方向の跳躍進行を
宣言しPREV PIT−PIT>2(ステップ31−
5)ならMT=−JUMP(ステップ31−6)により
下方向の跳躍進行を宣言しPIT−PREV PIT>
0(ステップ31−7)ならMT=+STEP(ステッ
プ31−8)により上方向の順次進行と宣言しPREV
PIT−PIT>0(ステップ31−9)ならMT=
−STEP(ステップ31−10)により下方向の順次
進行と宣言する。音程ストアルーチン(図32) 図32に音程ストアルーチンの詳細を示す。このルーチ
ンはステップ27−10(メロディパターンルールベー
ス拡張系)とステップ33−8(自動メロディ音生成
系)の中で呼びだされる。音程ストアルーチンは音程列
メモリMTMを右シフトレジスタとして操作し、分類結
果である音程データNTをNTMにストアする。即ち3
1−1でNTMを4ビット右シフトし31−2でNTを
12ビット左シフトし31−3でNTとNTMの論理和
をNTMに代入する。
ンはユーザー入力メロディのパターン化(ステップ27
−8)と自動メロディ音の評価のための処理(ステップ
33−8内)において呼びだされる。音種ストアルーチ
ンでは音種メモリNTMを右シフトレジスタとして音種
分類NTをNTMにストアしている即ち30−1でNT
Mを4ビット右シフトし30−2でNTを12ビット左
シフトし30−3でNTとNTMの論理和をNTMに代
入している。音程分類ルーチン(図31) 図31に音程分類ルーチンの詳細を示す。音程分類ルー
チンはステップ27−1と33−7内で呼びだされる。
音程分類ルーチンでは現ピッチPITを前ピッチPRE
V PITと比較して両音の間に形成される音程(モー
ション)を分類している。即ちPIT=PREV PI
T(ステップ31−1)ならMT=SAME(ステップ
31−2)としてモーションなしを宣言しPIT−PR
EV PIT>2(ステップ31−3)ならMT=+J
UMP(ステップ31−4)により上方向の跳躍進行を
宣言しPREV PIT−PIT>2(ステップ31−
5)ならMT=−JUMP(ステップ31−6)により
下方向の跳躍進行を宣言しPIT−PREV PIT>
0(ステップ31−7)ならMT=+STEP(ステッ
プ31−8)により上方向の順次進行と宣言しPREV
PIT−PIT>0(ステップ31−9)ならMT=
−STEP(ステップ31−10)により下方向の順次
進行と宣言する。音程ストアルーチン(図32) 図32に音程ストアルーチンの詳細を示す。このルーチ
ンはステップ27−10(メロディパターンルールベー
ス拡張系)とステップ33−8(自動メロディ音生成
系)の中で呼びだされる。音程ストアルーチンは音程列
メモリMTMを右シフトレジスタとして操作し、分類結
果である音程データNTをNTMにストアする。即ち3
1−1でNTMを4ビット右シフトし31−2でNTを
12ビット左シフトし31−3でNTとNTMの論理和
をNTMに代入する。
【0027】発音時刻の処理ルーチン(図33) 図33に発音時刻の処理ルーチンの詳細を示す。このル
ーチンは自動メロディ音の発音時刻(16−5)の時に
実行されるルーチンである。即ち、現時刻がリズムパタ
ーンのキーオンパターン中のビット“1”のタイミング
の時に呼びだされるルーチンである。発音時刻の処理ル
ーチンの目的はメロディ音の音高を決定し発音すること
である。このために発音時刻の処理ルーチンでは乱数メ
モリRANMからの乱数を前メロディ音のピッチに加え
て現メロディ音の音高候補を作りその候補までのメロデ
ィパターンをメロディパターンルールベースによって検
査する。現音高候補までのパターンに一致するエントリ
ーをルールベースがもてばその現音候補は現音のピッチ
として決定される。メロディパターンルールベースに該
当するエントリーがない場合は別の音高候補を作りルー
ルベースにより検査を繰り返される。詳細に述べると、
33−1で音種音程メモリNTM、MTNを4ビット右
シフトする。33−2により音高候補の乱数マルコフ生
成を行なう。即ち、乱数メモリからの乱数*RANM
Pに前音のピッチPREV PITを加えて現音候補を
生成する。次に、33A(33−3〜33−5)におい
て次回のルーチン実行のために次の乱数をロケートす
る。即ち、33−3で乱数ポインタRANM Pをイン
クリメントし、33−4で*RANM P=fffHに
より乱数メモリの終端が検出された時はRANM P=
RANM(ステップ33−5)により乱数ポインタを乱
数メモリの先頭に戻す。33−6でコード情報作成ルー
チンを呼びだす。ループ33−7〜33−12の入口3
3−7で音種分類ルーチン(図29)と音程分類ルーチ
ン(図31)を呼び出して音高候補ピットについてその
音種と音程を分類する。33−8で音種ストアルーチン
(図30)と音程ストアルーチン(図32)を呼び出し
て音種と音程の分類結果をそれぞれ音種別メモリNT
M、音程列メモリMTMにその右端のニブルとしてロー
ドする。ステップ33−9で評価ルーチン(図34)を
呼び出してNTMとMTMによって定められる現音高候
補PITまでのメロディパターンがメロディパターンル
ールベースにあるかどうかを検査する。ルールベースに
エントーされてなければNGとなり33B(33−10
〜33−12)において次の音高候補を生成する。即
ち、33−10でNをインクリメントし33−12でZ
=−1×Zを実行する。そして、ステップ33−7に戻
り、33Bで生成された音高候補について処理を繰り返
す。33Bは実行の都度33−2で得た最初の音高候補
±1、±2、±3……というように順次音高候補を生成
していく(ここに+1は半音上、−1は半音下、+2は
2半音上、−2は2半音下……を表わす)。評価ルーチ
ン33−9で音高候補までのメロディパータンに一致す
るエントリーがルールベースから見つかった場合にはG
OODと成り、PREV PIT=PIT(ステップ3
3−13)を実行し、33−14でKEYON=YES
によりキーオンフラグをオンに設定し決定した音高ピッ
トを発音する。このように自動メロディ生成モードにお
いてキーオンパターンからキーオンの合図があるとメロ
ディパターンルールベースノのルールに従うメロディ音
が決定され、発音される。
ーチンは自動メロディ音の発音時刻(16−5)の時に
実行されるルーチンである。即ち、現時刻がリズムパタ
ーンのキーオンパターン中のビット“1”のタイミング
の時に呼びだされるルーチンである。発音時刻の処理ル
ーチンの目的はメロディ音の音高を決定し発音すること
である。このために発音時刻の処理ルーチンでは乱数メ
モリRANMからの乱数を前メロディ音のピッチに加え
て現メロディ音の音高候補を作りその候補までのメロデ
ィパターンをメロディパターンルールベースによって検
査する。現音高候補までのパターンに一致するエントリ
ーをルールベースがもてばその現音候補は現音のピッチ
として決定される。メロディパターンルールベースに該
当するエントリーがない場合は別の音高候補を作りルー
ルベースにより検査を繰り返される。詳細に述べると、
33−1で音種音程メモリNTM、MTNを4ビット右
シフトする。33−2により音高候補の乱数マルコフ生
成を行なう。即ち、乱数メモリからの乱数*RANM
Pに前音のピッチPREV PITを加えて現音候補を
生成する。次に、33A(33−3〜33−5)におい
て次回のルーチン実行のために次の乱数をロケートす
る。即ち、33−3で乱数ポインタRANM Pをイン
クリメントし、33−4で*RANM P=fffHに
より乱数メモリの終端が検出された時はRANM P=
RANM(ステップ33−5)により乱数ポインタを乱
数メモリの先頭に戻す。33−6でコード情報作成ルー
チンを呼びだす。ループ33−7〜33−12の入口3
3−7で音種分類ルーチン(図29)と音程分類ルーチ
ン(図31)を呼び出して音高候補ピットについてその
音種と音程を分類する。33−8で音種ストアルーチン
(図30)と音程ストアルーチン(図32)を呼び出し
て音種と音程の分類結果をそれぞれ音種別メモリNT
M、音程列メモリMTMにその右端のニブルとしてロー
ドする。ステップ33−9で評価ルーチン(図34)を
呼び出してNTMとMTMによって定められる現音高候
補PITまでのメロディパターンがメロディパターンル
ールベースにあるかどうかを検査する。ルールベースに
エントーされてなければNGとなり33B(33−10
〜33−12)において次の音高候補を生成する。即
ち、33−10でNをインクリメントし33−12でZ
=−1×Zを実行する。そして、ステップ33−7に戻
り、33Bで生成された音高候補について処理を繰り返
す。33Bは実行の都度33−2で得た最初の音高候補
±1、±2、±3……というように順次音高候補を生成
していく(ここに+1は半音上、−1は半音下、+2は
2半音上、−2は2半音下……を表わす)。評価ルーチ
ン33−9で音高候補までのメロディパータンに一致す
るエントリーがルールベースから見つかった場合にはG
OODと成り、PREV PIT=PIT(ステップ3
3−13)を実行し、33−14でKEYON=YES
によりキーオンフラグをオンに設定し決定した音高ピッ
トを発音する。このように自動メロディ生成モードにお
いてキーオンパターンからキーオンの合図があるとメロ
ディパターンルールベースノのルールに従うメロディ音
が決定され、発音される。
【0028】評価ルーチン(図34) 図33のステップ33−9で呼び出される評価ルーチン
の詳細を図34に示す。評価ルーチンの目的は音種列N
TMと音程列MTMとによって定められるメロディパタ
ーンがメロディパターンルールに従うかどうかを判定す
る(メロディパターンルールベースにエントリーされた
ルールに一致するかどうかを判定する)ことである。こ
こにメロディパターンルールベースはROM4に置かれ
る固定メロディパターンルールベースMPM1とRAM
6に形成される拡張メロディパターンルールベースMP
M2とがある。評価ルーチンではこの両方のルーチンを
検索してNTMとMTMのパターンに合うルールを探し
ている。34A(34−1〜34−4)は固定メロディ
パターンルールベースの検索であり、34B(34−5
〜34−8)は拡張メロディパターンルールベースの検
索である、34−1でi=MPM1により固定メロディ
パターンルールベースの先頭をロケートし、ループ34
−2〜34−4の入口で*i=NTMand*(i+
1)=MTM(ステップ34−2)によりアクセスした
ルールの音種列と音程列がそれぞれNPMとMPMに一
致するかどうかをチェックしている。一致しなければi
=i+2(ステップ34−3)により次のルールをロケ
ートしステップ34−4で固定メロディパターンルール
ベースの終端(GetB(*i,15,4)=END)
が検出されないうちは34−2以下の処理を繰り返す。
ステップ34−2の(*i=NTMand*(i+1)
=MTM)が成立すればGOODを返す、34−3で固
定メロディパターンルールベースの終端が検出されたら
34−5でi=MPM2により拡張メロディパターンル
ールベースの先頭をロケートしループ34−6〜34−
8の入口(34−6)でアクセスしたルールの音種列と
音程列がそれぞれNTMとMTMに一致するかどうかを
調べる。一致しなければi=i+2(ステップ34−
7)により次のルールをロケートし、ステップ34−8
で拡張メロディパターンルールベースの終端(GetB
(*i,15,4)=END)が検出されなければ34
−6に戻る、34−6の条件が成立すればGOODを返
す、34−8で拡張メロディパターンルールベースの終
端に達したらNGをかえす。消音時刻の処理ルーチン(図35) 自動メロディ音の消音時刻(キーオフパターンからキー
オフを表わすビット“1”が与えられる時刻)の時にス
テップ16−8で呼びだされる消音時刻の処理ルーチン
の詳細を図35に示す。KEYON=YES(ステップ
35−1)ならば発音中なのでその音PITを消音しキ
ーオンフラグをKEYON=NOに設定する(35−
2)。メロディパターンDB拡張ルーチン(図36) 小節線タイムでステップ16−13の中で呼び出される
メロディパターンデータベース拡張メロディパターンデ
ータベース拡張ルーチンの詳細を図36に示す。このル
ーチンの目的はユーザーから入力されたメロディのパタ
ーン(1小節の間に入力されたメロディのパターン)を
RAM6のメロディパターンルールベースMPM2に追
加することである。詳しく述べると、USER MEL
=YES(ステップ36−1)が不成立であれば1小節
の間にユーザーからのメロディ入力はないのでそのまま
リターンする、USER MEL=YES(36−1)
が成立する時は36A(36−2〜36−7)において
拡張メロディパターンルールベースMPM2の終端を検
出する。即ちi=MPM2(36−2)によりポインタ
ーを拡張メロディパターンルールベースの先頭にロケー
トし、ループの入口で*i=ffffH(36−3)が
不成立ならiをインクリメントし(36−6)、36−
7でメモリーオーバー(i>MPM2+MPM2SIZ
E)かどうかをチェックする、*i=ffffH(36
−3)が成立すれば*i=*NTM、*(i+1)=*
MTM、*(i+2)=ffffH(ステップ36−
4)を実行してユーザーメロディパターンをメロディパ
ターンデータベースMPM2に書き込み*NTM=f0
00H、*MTM=f000H(ステップ36−5)に
より音種と音程列メモリを再初期化する。
の詳細を図34に示す。評価ルーチンの目的は音種列N
TMと音程列MTMとによって定められるメロディパタ
ーンがメロディパターンルールに従うかどうかを判定す
る(メロディパターンルールベースにエントリーされた
ルールに一致するかどうかを判定する)ことである。こ
こにメロディパターンルールベースはROM4に置かれ
る固定メロディパターンルールベースMPM1とRAM
6に形成される拡張メロディパターンルールベースMP
M2とがある。評価ルーチンではこの両方のルーチンを
検索してNTMとMTMのパターンに合うルールを探し
ている。34A(34−1〜34−4)は固定メロディ
パターンルールベースの検索であり、34B(34−5
〜34−8)は拡張メロディパターンルールベースの検
索である、34−1でi=MPM1により固定メロディ
パターンルールベースの先頭をロケートし、ループ34
−2〜34−4の入口で*i=NTMand*(i+
1)=MTM(ステップ34−2)によりアクセスした
ルールの音種列と音程列がそれぞれNPMとMPMに一
致するかどうかをチェックしている。一致しなければi
=i+2(ステップ34−3)により次のルールをロケ
ートしステップ34−4で固定メロディパターンルール
ベースの終端(GetB(*i,15,4)=END)
が検出されないうちは34−2以下の処理を繰り返す。
ステップ34−2の(*i=NTMand*(i+1)
=MTM)が成立すればGOODを返す、34−3で固
定メロディパターンルールベースの終端が検出されたら
34−5でi=MPM2により拡張メロディパターンル
ールベースの先頭をロケートしループ34−6〜34−
8の入口(34−6)でアクセスしたルールの音種列と
音程列がそれぞれNTMとMTMに一致するかどうかを
調べる。一致しなければi=i+2(ステップ34−
7)により次のルールをロケートし、ステップ34−8
で拡張メロディパターンルールベースの終端(GetB
(*i,15,4)=END)が検出されなければ34
−6に戻る、34−6の条件が成立すればGOODを返
す、34−8で拡張メロディパターンルールベースの終
端に達したらNGをかえす。消音時刻の処理ルーチン(図35) 自動メロディ音の消音時刻(キーオフパターンからキー
オフを表わすビット“1”が与えられる時刻)の時にス
テップ16−8で呼びだされる消音時刻の処理ルーチン
の詳細を図35に示す。KEYON=YES(ステップ
35−1)ならば発音中なのでその音PITを消音しキ
ーオンフラグをKEYON=NOに設定する(35−
2)。メロディパターンDB拡張ルーチン(図36) 小節線タイムでステップ16−13の中で呼び出される
メロディパターンデータベース拡張メロディパターンデ
ータベース拡張ルーチンの詳細を図36に示す。このル
ーチンの目的はユーザーから入力されたメロディのパタ
ーン(1小節の間に入力されたメロディのパターン)を
RAM6のメロディパターンルールベースMPM2に追
加することである。詳しく述べると、USER MEL
=YES(ステップ36−1)が不成立であれば1小節
の間にユーザーからのメロディ入力はないのでそのまま
リターンする、USER MEL=YES(36−1)
が成立する時は36A(36−2〜36−7)において
拡張メロディパターンルールベースMPM2の終端を検
出する。即ちi=MPM2(36−2)によりポインタ
ーを拡張メロディパターンルールベースの先頭にロケー
トし、ループの入口で*i=ffffH(36−3)が
不成立ならiをインクリメントし(36−6)、36−
7でメモリーオーバー(i>MPM2+MPM2SIZ
E)かどうかをチェックする、*i=ffffH(36
−3)が成立すれば*i=*NTM、*(i+1)=*
MTM、*(i+2)=ffffH(ステップ36−
4)を実行してユーザーメロディパターンをメロディパ
ターンデータベースMPM2に書き込み*NTM=f0
00H、*MTM=f000H(ステップ36−5)に
より音種と音程列メモリを再初期化する。
【0029】パターンのデータフォーマット調整(図3
7〜図39) 図37〜図39のフローはNTM、MTMとメロディパ
ターンルールベースMPM1、MPM2との間のフォー
マット調整に関する処理である。図37のルーチンは評
価ルーチン(図34)の最初のステップ(図34の34
−1)及びメロディパターンルールベース拡張ルーチン
(図36)のステップ36−4のなかで呼び出される
(ステップ36−4の詳細なフローである図39参
照)。図37のルーチンはNTMとMTMによる入力な
いし評価対象のメロディパターンのフォーマットをルー
ルベースMPM1、MPM2のルールのフォーマットに
合わせるためのものである。実施例の場合、評価ルーチ
ンの入力ないしメロディパターンルールベース拡張ルー
チンの入力でMTMにはNTM上で捨てられた過去のメ
ロディ音種からの音程データ項目が1つだけ余分に入っ
ている。これをルールベースのルールの音程列のフォー
マットに合わせるには、この余分な音程データ項目(ニ
ブル)をENDニブルに変換する必要がある。この処理
を図37のルーチンは行っている。図中、記号“∨”は
ビット毎の論理和、“∧”はビット毎の論理積を表わし
ている。図38のルーチンは評価ルーチン(図34)の
ステップ34−2、34−6の評価である。このルーチ
ン(図38)では、ルールベースMPM1、MPM2か
らのルールが示すメロディパターンの全体でなくても、
その部分パターンが評価対象のメロディパターン(NT
MとMTMとで定められる)に一致すれば、評価対象の
メロディパターンはルールに従うものとする(YESを
返す)処理を行っている(これはルールベース内のルー
ル数を節約するのに有効である)。図39はメロディパ
ターンデータベース拡張ルーチンのステップ36−4の
詳細である。以上の説明、図37〜図39自体の記載、
その他の図面の記載と明細書での説明から図37〜図3
9のルーチンの詳細は明らかであるので、これ以上の説
明は省略する。
7〜図39) 図37〜図39のフローはNTM、MTMとメロディパ
ターンルールベースMPM1、MPM2との間のフォー
マット調整に関する処理である。図37のルーチンは評
価ルーチン(図34)の最初のステップ(図34の34
−1)及びメロディパターンルールベース拡張ルーチン
(図36)のステップ36−4のなかで呼び出される
(ステップ36−4の詳細なフローである図39参
照)。図37のルーチンはNTMとMTMによる入力な
いし評価対象のメロディパターンのフォーマットをルー
ルベースMPM1、MPM2のルールのフォーマットに
合わせるためのものである。実施例の場合、評価ルーチ
ンの入力ないしメロディパターンルールベース拡張ルー
チンの入力でMTMにはNTM上で捨てられた過去のメ
ロディ音種からの音程データ項目が1つだけ余分に入っ
ている。これをルールベースのルールの音程列のフォー
マットに合わせるには、この余分な音程データ項目(ニ
ブル)をENDニブルに変換する必要がある。この処理
を図37のルーチンは行っている。図中、記号“∨”は
ビット毎の論理和、“∧”はビット毎の論理積を表わし
ている。図38のルーチンは評価ルーチン(図34)の
ステップ34−2、34−6の評価である。このルーチ
ン(図38)では、ルールベースMPM1、MPM2か
らのルールが示すメロディパターンの全体でなくても、
その部分パターンが評価対象のメロディパターン(NT
MとMTMとで定められる)に一致すれば、評価対象の
メロディパターンはルールに従うものとする(YESを
返す)処理を行っている(これはルールベース内のルー
ル数を節約するのに有効である)。図39はメロディパ
ターンデータベース拡張ルーチンのステップ36−4の
詳細である。以上の説明、図37〜図39自体の記載、
その他の図面の記載と明細書での説明から図37〜図3
9のルーチンの詳細は明らかであるので、これ以上の説
明は省略する。
【0030】
【変形例】以上で実施例の説明を終えるが、この発明の
範囲内で種々の変形、変更が可能である。例えば、メロ
ディパターンルールベース216は音楽スタイル別にメ
ロディパターン(MP)ルールベースをもつものであっ
てもよい。図40に音楽スタイル別のメロディパターン
ルールベースとその関連構成を示す。メロディパターン
ルールベースは複数(図40では3つ)の音楽スタイル
の各々に対するルールベースを有する。図40におい
て、216AはスタイルNo.1〜No.3に共通の
(いずれのスタイルでも使用できる)MPルールグルー
プを表わし、216BはスタイルNo.1とNo.2に
共通のMPルールグループを表わし、216Cはスタイ
ルNo.1に固有のMPルールグループを表わし、21
6DはスタイルNo.2に固有のMPルールグループを
表わしている。スタイルNo.3に固有のMPルールグ
ループはない。したがって、スタイルNo.1のメロデ
ィパターンルールベースは216Aと216Bと216
Cの組合せで定められ、スタイルNo.2のメロディパ
ターンルールベースは216Aと216Bと216Dと
で定められ、スタイルNo.3のメロディパターンルー
ルベースは216Aによって定められる。自動作曲機の
動作において、選択モジュール230は曲風入力(例え
ば図1の指定リズム131)に従い、指定された音楽ス
タイルに対する選択MPルールベース232を作成する
(ルールベース216から選択する)。選択MPルール
ベース232は図1Bのメロディ音高列生成装置200
のマッチング214のような評価モジュールによってア
クセスされる。図40のような構成を用いることによ
り、自動作曲機は曲風に合うメロディを更に効率よく生
成することが容易となる。また、作曲の完全なリアルタ
イム応答を支援するために、データベースからのデータ
検索を高速化することは容易である。例を図41と図4
2に示す。図41に音楽素材データベースとその検索方
式の変形例400を示す。図41において、音楽素材
(例えばリズムパターン、コード進行)のデータベース
は、インデクステーブル403と素材データベース本体
405から成る。作曲条件として401に示すように第
1属性(例えば音楽構造)が“α”、第2属性(例えば
曲風)が“β”が与えられたとする(なお属性項目数は
2に限られないが図示の便宜上、属性項目数を2として
いる)。第1属性はM種類、第2属性はN種類あるもの
とする。インデクステーブル403は素材データベース
本体405へのインデクス情報を与えるもので、各作曲
条件(属性の組み合わせ)に対して、素材データベース
本体405に置かれる、その作曲条件に合う素材の記憶
場所(の先頭アドレス)と、その素材のエントリ数を記
憶する。動作において、作曲条件4−1からブロック4
02に示すように、INDEX+(N×α+β)×2を
計算して、インデクステーブル403をアドレッシング
し、それに書かれている素材データベース本体405へ
のアドレスX(例えば第1属性が“1”で第2属性が
“1”の素材エントリ群の先頭アドレスX1)と、次ア
ドレスに書かれているエントリ数S(例えばS1)を読
む。次に検索モジュール410の411で示すように0
〜1の乱数RANを生成し、アドレスXとエントリ数S
とデータベース本体405におけるワード数/エント
リ、例えば3を用いて、412〜414により、(RA
N×S)×3+Xを計算して検索すべき音楽素材エント
リのアドレスADDRを生成する。このアドレスADD
R(及びワードル数/エントリ分の連続後続アドレス)
で音楽素材データベース本体405をアクセスすること
により所望の音楽素材、即ち作曲条件401に合う音楽
素材をデータベースから検索出来、それを作曲の一部と
して生成できる。
範囲内で種々の変形、変更が可能である。例えば、メロ
ディパターンルールベース216は音楽スタイル別にメ
ロディパターン(MP)ルールベースをもつものであっ
てもよい。図40に音楽スタイル別のメロディパターン
ルールベースとその関連構成を示す。メロディパターン
ルールベースは複数(図40では3つ)の音楽スタイル
の各々に対するルールベースを有する。図40におい
て、216AはスタイルNo.1〜No.3に共通の
(いずれのスタイルでも使用できる)MPルールグルー
プを表わし、216BはスタイルNo.1とNo.2に
共通のMPルールグループを表わし、216Cはスタイ
ルNo.1に固有のMPルールグループを表わし、21
6DはスタイルNo.2に固有のMPルールグループを
表わしている。スタイルNo.3に固有のMPルールグ
ループはない。したがって、スタイルNo.1のメロデ
ィパターンルールベースは216Aと216Bと216
Cの組合せで定められ、スタイルNo.2のメロディパ
ターンルールベースは216Aと216Bと216Dと
で定められ、スタイルNo.3のメロディパターンルー
ルベースは216Aによって定められる。自動作曲機の
動作において、選択モジュール230は曲風入力(例え
ば図1の指定リズム131)に従い、指定された音楽ス
タイルに対する選択MPルールベース232を作成する
(ルールベース216から選択する)。選択MPルール
ベース232は図1Bのメロディ音高列生成装置200
のマッチング214のような評価モジュールによってア
クセスされる。図40のような構成を用いることによ
り、自動作曲機は曲風に合うメロディを更に効率よく生
成することが容易となる。また、作曲の完全なリアルタ
イム応答を支援するために、データベースからのデータ
検索を高速化することは容易である。例を図41と図4
2に示す。図41に音楽素材データベースとその検索方
式の変形例400を示す。図41において、音楽素材
(例えばリズムパターン、コード進行)のデータベース
は、インデクステーブル403と素材データベース本体
405から成る。作曲条件として401に示すように第
1属性(例えば音楽構造)が“α”、第2属性(例えば
曲風)が“β”が与えられたとする(なお属性項目数は
2に限られないが図示の便宜上、属性項目数を2として
いる)。第1属性はM種類、第2属性はN種類あるもの
とする。インデクステーブル403は素材データベース
本体405へのインデクス情報を与えるもので、各作曲
条件(属性の組み合わせ)に対して、素材データベース
本体405に置かれる、その作曲条件に合う素材の記憶
場所(の先頭アドレス)と、その素材のエントリ数を記
憶する。動作において、作曲条件4−1からブロック4
02に示すように、INDEX+(N×α+β)×2を
計算して、インデクステーブル403をアドレッシング
し、それに書かれている素材データベース本体405へ
のアドレスX(例えば第1属性が“1”で第2属性が
“1”の素材エントリ群の先頭アドレスX1)と、次ア
ドレスに書かれているエントリ数S(例えばS1)を読
む。次に検索モジュール410の411で示すように0
〜1の乱数RANを生成し、アドレスXとエントリ数S
とデータベース本体405におけるワード数/エント
リ、例えば3を用いて、412〜414により、(RA
N×S)×3+Xを計算して検索すべき音楽素材エント
リのアドレスADDRを生成する。このアドレスADD
R(及びワードル数/エントリ分の連続後続アドレス)
で音楽素材データベース本体405をアクセスすること
により所望の音楽素材、即ち作曲条件401に合う音楽
素材をデータベースから検索出来、それを作曲の一部と
して生成できる。
【0031】図41の構成によれば、音楽素材データベ
ース405に対する所望のデータ検索を非常に高速に行
える。ただし、データベース本体405は重複したデー
タを含むことになり、メモリ効率はよくない。図42に
音楽素材データベースとその検索方式のもう1つの変形
例500を示す。この変形例500では音楽素材データ
ベースは第1と第2のインデクステーブル503、50
4とデータベース本体505から成る。この場合、デー
タベース本体405上でデータは重複しない。第1イン
デクステーブル503には第2インデクステーブル50
4へのインデクス(アドレス)情報が書き込まれる。第
1インデクステーブル503へのアクセスは、作曲条件
(第1属性=α、第2属性=β)からただちに行える。
即ち502に示すようにINDEX=1(第1インデク
ステーブル503の先頭アドレス)+(N×α+β)の
計算でただちにテーブル503をアドレッシングでき
る。511に示すように第1インデクステーブル503
から読んだデータXで第2インデクステーブル504を
アクセスする。第2インデクステーブル504には作曲
別条件にデータベース本体505における素材エントリ
数S(例えば条件1、1に対してS1)と各素材エント
リのアドレスリストが書かれている。したがって、51
2に示すようにアドレスリストの(RAN×S)番目
(ここにRANは0〜1の乱数)の項目を読み、それで
素材データベース本体505をアクセスすることにより
所望の作曲条件401に合う素材をただちに取り出すこ
とができる。図42の構成によればデータベース本体5
05におけるデータ重複を回避しつつ、設定した作曲条
件に合う音楽素材(例えばメロディのリズム、コード進
行)を高速に生成することができる。その他、種々の変
形、応用が可能である。
ース405に対する所望のデータ検索を非常に高速に行
える。ただし、データベース本体405は重複したデー
タを含むことになり、メモリ効率はよくない。図42に
音楽素材データベースとその検索方式のもう1つの変形
例500を示す。この変形例500では音楽素材データ
ベースは第1と第2のインデクステーブル503、50
4とデータベース本体505から成る。この場合、デー
タベース本体405上でデータは重複しない。第1イン
デクステーブル503には第2インデクステーブル50
4へのインデクス(アドレス)情報が書き込まれる。第
1インデクステーブル503へのアクセスは、作曲条件
(第1属性=α、第2属性=β)からただちに行える。
即ち502に示すようにINDEX=1(第1インデク
ステーブル503の先頭アドレス)+(N×α+β)の
計算でただちにテーブル503をアドレッシングでき
る。511に示すように第1インデクステーブル503
から読んだデータXで第2インデクステーブル504を
アクセスする。第2インデクステーブル504には作曲
別条件にデータベース本体505における素材エントリ
数S(例えば条件1、1に対してS1)と各素材エント
リのアドレスリストが書かれている。したがって、51
2に示すようにアドレスリストの(RAN×S)番目
(ここにRANは0〜1の乱数)の項目を読み、それで
素材データベース本体505をアクセスすることにより
所望の作曲条件401に合う素材をただちに取り出すこ
とができる。図42の構成によればデータベース本体5
05におけるデータ重複を回避しつつ、設定した作曲条
件に合う音楽素材(例えばメロディのリズム、コード進
行)を高速に生成することができる。その他、種々の変
形、応用が可能である。
【0032】
【発明の効果】以上、詳細に述べたように、この発明に
よれば音楽知識表現の工夫(メロディパターンルールベ
ースの使用)、音楽進行の利用、メロディの生成方式等
を通して、音楽進行に合い、かつ音楽知識に支えられた
良好なメロディをリアルタイムあるいはリアルタイムに
近い環境で作曲することができる。
よれば音楽知識表現の工夫(メロディパターンルールベ
ースの使用)、音楽進行の利用、メロディの生成方式等
を通して、音楽進行に合い、かつ音楽知識に支えられた
良好なメロディをリアルタイムあるいはリアルタイムに
近い環境で作曲することができる。
【図1A】この発明による自動作曲機に組み込まれる作
曲条件付け装置の機能ブロック図。
曲条件付け装置の機能ブロック図。
【図1B】自動作曲機に組み込まれるリアルタイムメロ
ディ音高列生成装置の機能ブロック図。
ディ音高列生成装置の機能ブロック図。
【図1C】自動作曲機に組み込まれるメロディパターン
ルールベース拡張装置の機能ブロック図。
ルールベース拡張装置の機能ブロック図。
【図2】自動作曲機を実現する代表的なハードウェアの
ブロック図。
ブロック図。
【図3】図2の自動作曲機に組み込まれる自動メロディ
生成装置の機能ブロック図。
生成装置の機能ブロック図。
【図4】実施例で使用する音楽要素の文字(記号)表現
と数値表現を示す図。
と数値表現を示す図。
【図5】さらに別の音楽要素の文字及び数値表現を示す
図。
図。
【図6】さらに別の音楽要素の文字及び数値表現を示す
図。
図。
【図7】標準ピッチクラスセットメモリを示す図。
【図8】固定メロディパターンデータベースメモリと音
種・音程データメモリを示す図。
種・音程データメモリを示す図。
【図9】テンポ・ビット変換マップと乱数メモリを示す
図。
図。
【図10】コード進行データベースメモリを示す図。
【図11】音楽構造データベースメモリを示す図。
【図12】リズムパターンデータベースメモリを示す
図。
図。
【図13】その他の定数及び変数を説明する図。
【図14】さらにその他の変数を説明する図。
【図15】図2のCPUが実行するメインルーチンのフ
ローチャート。
ローチャート。
【図16】図2のCPUが実行するインターラプトルー
チンのフローチャート。
チンのフローチャート。
【図17】初期化の詳細なフローチャート。
【図18】生成開始処理ルーチンのフローチャート。
【図19】上位構造生成ルーチンの詳細なフローチャー
ト。
ト。
【図20】下位構造生成ルーチンの詳細なフローチャー
ト。
ト。
【図21】GetBの詳細なフローチャートと動作例を
示す図。
示す図。
【図22】コード進行生成ルーチンの詳細なフローチャ
ート。
ート。
【図23】リズムパターン生成ルーチンの詳細なフロー
チャート。
チャート。
【図24】停止処理のフローチャート。
【図25】押鍵処理のフローチャート。
【図26】離鍵処理のフローチャート。
【図27】押鍵中の処理のフローチャート。
【図28】コード情報作成ルーチンの詳細なフローチャ
ート。
ート。
【図29】音種分類の詳細なフローチャート。
【図30】音種ストアの詳細なフローチャート。
【図31】音程分類の詳細なフローチャート。
【図32】音程ストアの詳細なフローチャート。
【図33】発音時刻の処理の詳細なフローチャート。
【図34】評価ルーチンの詳細なフローチャート。
【図35】消音時刻の処理のフローチャート。
【図36】メロディパターンデータベース拡張ルーチン
の詳細なフローチャート。
の詳細なフローチャート。
【図37】MTMフォーマット変更の詳細なフローチャ
ート。
ート。
【図38】ステップ34−2、34−6の詳細なフロー
チャート。
チャート。
【図39】ステップ36−4の詳細なフローチャート。
【図40】音楽スタイル別メロディパターンルールベー
スをそれに関連する構成を示す図。
スをそれに関連する構成を示す図。
【図41】音楽素材データベースとその検索方式の変形
例を示す図。
例を示す図。
【図42】音楽素材データベースとその検索方式のさら
に別の変形例を示す図。
に別の変形例を示す図。
200 メロディ音高列生成装置 216 メロディパターンルールベース(メロディパタ
ーンルールベース手段) 132 指定ビート又はテンポ(テンポ指定手段) 228 実時間演奏系(リアルタイムメロディ演奏手
段) 302 ユーザー入力メロディ(ユーザーメロディ入力
手段) 310 メロディパターン(音種・音程列)生成ブロッ
ク(メロディパターン認識手段) 330E メロディパターンルールベース拡張部 208 音種・音程列生成モジュール(メロディパター
ン記憶手段、音程・音種分類手段、評価対象メロディパ
ターン形成手段) 214 マッチングモジュール(ルールベース検索手
段) 220 次候補生成モジュール(別候補生成手段) 208、214、218、220 (繰り返し手段) 224 決定現ピッチ(音高決定手段) 110、116、117、120、140、145、1
60 (コード進行生成手段) 210 現調性(調性指示手段)
ーンルールベース手段) 132 指定ビート又はテンポ(テンポ指定手段) 228 実時間演奏系(リアルタイムメロディ演奏手
段) 302 ユーザー入力メロディ(ユーザーメロディ入力
手段) 310 メロディパターン(音種・音程列)生成ブロッ
ク(メロディパターン認識手段) 330E メロディパターンルールベース拡張部 208 音種・音程列生成モジュール(メロディパター
ン記憶手段、音程・音種分類手段、評価対象メロディパ
ターン形成手段) 214 マッチングモジュール(ルールベース検索手
段) 220 次候補生成モジュール(別候補生成手段) 208、214、218、220 (繰り返し手段) 224 決定現ピッチ(音高決定手段) 110、116、117、120、140、145、1
60 (コード進行生成手段) 210 現調性(調性指示手段)
Claims (6)
- 【請求項1】 音楽進行を与える音楽進行付与手段と、 メロディの音列を音種列と音程列とでパターン化したメ
ロディパターンのルールベースを記憶するメロディパタ
ーンルールベース手段と、 上記音楽進行手段からの音楽進行に適合し、かつ上記メ
ロディパターンルールベース手段内のメロディパターン
ルールを満たすメロディを生成するメロディ生成手段
と、 を有することを特徴とする自動作曲機。 - 【請求項2】 請求項1記載の自動作曲機において、 自動作曲機は演奏テンポを指定するテンポ指定手段を更
に有し、 上記メロディ生成手段は、上記テンポ指定手段からの演
奏テンポに従うリアルタイムでメロディを生成するリア
ルタイムメロディ生成手段から成り、 更に自動作曲機は、上記リアルタイムメロディ生成手段
が生成したメロディをサウンドとしてリアルタイム演奏
するリアルタイムメロディ演奏手段を有する、 ことを特徴とする自動作曲機。 - 【請求項3】 請求項1記載の自動作曲機において、 ユーザからのメロディを入力するユーザーメロディ入力
手段と、 上記ユーザーメロディ入力手段から入力されたメロディ
を上記音楽進行に従ってパターン認識して音種列と音程
列とで表現されるメロディパターンを形成するメロディ
パターン認識手段と、 上記メロディパターン認識手段からのメロディパターン
を追加ルールとして上記メロディパターンルールベース
手段に追加してメロディパターンルールベースを拡張す
るメロディパターンルールベース拡張手段と、 を更に有することを特徴とする自動作曲機。 - 【請求項4】 請求項1記載の自動作曲機において、上
記メロディ生成手段は、メロディ音を順次生成するた
め、 音程列と音種列とにより、前メロディ音までのメロディ
のパターンを記憶するメロディパターン記憶手段と、 新たに生成すべき現メロディ音の第1の音高候補を生成
する音高候補生成手段と、 上記第1の音高候補の音程と音種を上記前メロディ音の
音高と上記音楽進行の現状況とに基づいて分類する音程
・音種分類手段と、 分類された上記第1の音高候補の音程と音種を用いて上
記メロディパターン記憶手段を更新して、現メロディ音
候補までのメロディのパターンを検索対象として形成す
る評価対象メロディパターン形成手段と、 検索対象として形成されたメロディのパターンについて
上記メロディパターンルールベース手段を検索するルー
ルベース検索手段と、 検索に失敗したときに、現メロディ音のために別の音高
候補を生成する別候補生成手段と、 上記別の音高候補について、上記音程・音種分類手段、
上記評価対象メロディパターン形成手段、上記ルールベ
ース検索手段の動作を繰り返す繰返手段と、 検索に成功したときに、その検索にかかる音高候補を現
メロディ音の音高として決定する音高決定手段と、 を有することを特徴とする自動作曲機。 - 【請求項5】 請求項1記載の自動作曲機において、上
記音楽進行付与手段は、 コード進行を生成するコード進行生成手段と、 調性を指示する調性指示手段と、 を有することを特徴とする自動作曲機。 - 【請求項6】 音楽進行を与える音楽進行付与手段と、 メロディの音列を音種列と音程列とでパターン化したメ
ロディパターンのルールベースを記憶するメロディパタ
ーンルールベース手段と、 生成すべきメロディの音列候補を生成する音列候補生成
手段と、 上記音列候補生成手段からの音列候補を上記音楽進行に
基づいてパターン認識して、音種列と音程列とで表現さ
れるメロディパターンを形成するメロディパターン形成
手段と、 上記メロディパターン形成手段からのメロディパターン
を検索対象として上記メロディパターンルールベース手
段を検索するルールベース検索手段と、 上記検索が成功するまで、即ち上記メロディパターンル
ールベース手段に検索対象と一致するメロディパターン
のルールが見つかるまで、上記音列候補生成手段、上記
メロディパターン形成手段、上記ルールベース検索手段
の動作を、音列候補を変化させながら繰り返す繰返手段
と、 上記検索が成功したときに、成功に係る音列候補を生成
メロディの音列として決定する決定手段と、 を有することを特徴とする自動作曲機。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP36054591A JP3364940B2 (ja) | 1991-12-30 | 1991-12-30 | 自動作曲機 |
| US07/998,561 US5451709A (en) | 1991-12-30 | 1992-12-29 | Automatic composer for composing a melody in real time |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP36054591A JP3364940B2 (ja) | 1991-12-30 | 1991-12-30 | 自動作曲機 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05181408A true JPH05181408A (ja) | 1993-07-23 |
| JP3364940B2 JP3364940B2 (ja) | 2003-01-08 |
Family
ID=18469862
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP36054591A Expired - Fee Related JP3364940B2 (ja) | 1991-12-30 | 1991-12-30 | 自動作曲機 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3364940B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003228369A (ja) * | 2002-02-01 | 2003-08-15 | Yamaha Corp | 音声メロディ楽曲生成装置およびそれを用いた携帯端末装置 |
| WO2007091938A1 (en) * | 2006-02-06 | 2007-08-16 | Mats Hillborg | Melody generator |
-
1991
- 1991-12-30 JP JP36054591A patent/JP3364940B2/ja not_active Expired - Fee Related
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003228369A (ja) * | 2002-02-01 | 2003-08-15 | Yamaha Corp | 音声メロディ楽曲生成装置およびそれを用いた携帯端末装置 |
| WO2007091938A1 (en) * | 2006-02-06 | 2007-08-16 | Mats Hillborg | Melody generator |
| US7671267B2 (en) | 2006-02-06 | 2010-03-02 | Mats Hillborg | Melody generator |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3364940B2 (ja) | 2003-01-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5451709A (en) | Automatic composer for composing a melody in real time | |
| USRE40543E1 (en) | Method and device for automatic music composition employing music template information | |
| JP3704980B2 (ja) | 自動作曲装置と記録媒体 | |
| JP2638021B2 (ja) | 自動伴奏装置 | |
| US5052267A (en) | Apparatus for producing a chord progression by connecting chord patterns | |
| JPH05181473A (ja) | 自動メロディ生成装置 | |
| US6294720B1 (en) | Apparatus and method for creating melody and rhythm by extracting characteristic features from given motif | |
| US6100462A (en) | Apparatus and method for generating melody | |
| CN114898725A (zh) | 一种即兴伴奏生成装置 | |
| JP2000315081A (ja) | 自動作曲装置及び方法並びに記憶媒体 | |
| JP3364941B2 (ja) | 自動作曲機 | |
| JP3196604B2 (ja) | 和音分析装置 | |
| JP3364940B2 (ja) | 自動作曲機 | |
| JP3531507B2 (ja) | 楽曲生成装置および楽曲生成プログラムを記録したコンピュータで読み取り可能な記録媒体 | |
| JP3664126B2 (ja) | 自動作曲装置 | |
| Yang et al. | Research on the construction of AI composition system based on HMM | |
| JPH0636151B2 (ja) | 自動編曲方式及び装置 | |
| JPH06124088A (ja) | メロディ分析装置 | |
| JP3271332B2 (ja) | 和音付装置 | |
| JP2666063B2 (ja) | 自動作曲機 | |
| JP2958794B2 (ja) | メロディ分析機 | |
| Weijia et al. | RESEARCH ON THE CONSTRUCTION OF AI COMPOSITION SYSTEM BASED ON HMMS. | |
| JP3316547B2 (ja) | 和音付装置 | |
| JP2615721B2 (ja) | 自動作曲機 | |
| JP3088919B2 (ja) | 調判定音楽装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081101 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091101 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101101 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111101 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |