JPH05181409A - 自動作曲機 - Google Patents
自動作曲機Info
- Publication number
- JPH05181409A JPH05181409A JP3360546A JP36054691A JPH05181409A JP H05181409 A JPH05181409 A JP H05181409A JP 3360546 A JP3360546 A JP 3360546A JP 36054691 A JP36054691 A JP 36054691A JP H05181409 A JPH05181409 A JP H05181409A
- Authority
- JP
- Japan
- Prior art keywords
- melody
- music
- database
- chord progression
- attribute
- 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)【要約】
【目的】 システム応答が速く、音楽性を有しかつユー
ザーの要求に沿う作曲が可能な自動作曲機を提供する。 【構成】 音楽進行データベース110から選択モジュ
ール116と適性モジュールを介し、選択音楽構造12
0(第1の作曲条件)が得られる。曲風入力130によ
り第2の作曲条件が定められる。適性モジュール155
とリズムパターンデータベース150から作曲条件に合
うリズムパターンを検索し、メロディの音長列(選択リ
ズムパターン170)を生成する。同様に適性モジュー
ル145はコード進行データベース140から作曲条件
に合うコード進行を作曲の一部である選択コード進行1
60として検索、生成する。
ザーの要求に沿う作曲が可能な自動作曲機を提供する。 【構成】 音楽進行データベース110から選択モジュ
ール116と適性モジュールを介し、選択音楽構造12
0(第1の作曲条件)が得られる。曲風入力130によ
り第2の作曲条件が定められる。適性モジュール155
とリズムパターンデータベース150から作曲条件に合
うリズムパターンを検索し、メロディの音長列(選択リ
ズムパターン170)を生成する。同様に適性モジュー
ル145はコード進行データベース140から作曲条件
に合うコード進行を作曲の一部である選択コード進行1
60として検索、生成する。
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 NO.8
6/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 NO.8
6/05619の作曲機は与えられたメロディを変換するタイ
プのメロディ生成装置であり、変換のために数学的手法
(音高列の鏡象変換、音高・音長列の2次元空間に対す
る線形的変換)を使用する。したがって変換空間は限定
されており、固定的で数学的な(音楽的とはいえない)
作曲能力しかもたない。特開昭62-187876の作曲機は音
高列の生成にマルコフモデルを利用したメロディ生成装
置である。音高列のマルコフ過程を表わす音高の遷移表
から作成されるメロディは、遷移表に内在する音楽スタ
イルに束縛される。したがってこのメロディ生成装置
は、比較的よい効率で音楽的なメロディを生成できるも
のの、限られたスタイルのメロディしか生成できず、提
供できる作曲空間は狭い。以上の従来技術に共通してい
ることは、(1)音楽の背景や音楽の進行(例えば曲
風、音楽構造、コード進行)を考慮しない作曲機である
こと、(2)作曲機にメロディの分析、評価能力、知識
が欠けていること、(3)したがって、音楽的なメロデ
ィを生成する能力が低いこと、である。
【0003】このような点に鑑み、本件発明者は特開昭
63-250696号、特開昭63-286883号において、機械的でな
く人間的な音楽の作曲能力を課題とする自動作曲機を提
案している。この自動作曲機は音楽の進行に従ってメロ
ディを生成するタイプの先駆である。この作曲機はメロ
ディの音列を和声音と非和声音の混合列としてとらえ、
非和声音が和声音との間に形成する特徴的な関係によっ
て非和声音を分類する音楽知識を有しており、この音楽
知識をユーザーからの入力メロディ(モチーフ)の分析
に用いるとともに、モチーフに続くメロディの生成(合
成)にも利用している。更にこの作曲機は基本リズム
(モチーフのリズム)に発音タイミングを挿入あるいは
削除することにより、即ち基本リズムを変形してメロデ
ィのリズム(音長列)を生成する。基本リズムの変形は
パルススケールと呼ばれるリズム制御データ(小節のよ
うな音間区間内の各タイミングに重みをつけたデータ)
に基づいて処理している。この作曲機はモチーフの特徴
を展開した音楽的なメロディを生成することができるが
次のような欠点がある。 (A)作曲のためのデータ処理量が多い。 (B)したがって限られた処理能力のコンピュータで作
曲機を実現した場合に、応答が遅く作曲は非実時間ペー
スで行われる。 (C)リズムパターンの生成能力に限界がある(音数が
同一でも、微妙に異なるリズムパターンの生成等)。 (D)コード進行は入力装置から入力しており、音楽知
識の乏しいユーザー向きでない。 (E)作曲の条件付けに本来、作曲の一部であるべきモ
チーフとコード進行(共にユーザー入力)を必要する。
63-250696号、特開昭63-286883号において、機械的でな
く人間的な音楽の作曲能力を課題とする自動作曲機を提
案している。この自動作曲機は音楽の進行に従ってメロ
ディを生成するタイプの先駆である。この作曲機はメロ
ディの音列を和声音と非和声音の混合列としてとらえ、
非和声音が和声音との間に形成する特徴的な関係によっ
て非和声音を分類する音楽知識を有しており、この音楽
知識をユーザーからの入力メロディ(モチーフ)の分析
に用いるとともに、モチーフに続くメロディの生成(合
成)にも利用している。更にこの作曲機は基本リズム
(モチーフのリズム)に発音タイミングを挿入あるいは
削除することにより、即ち基本リズムを変形してメロデ
ィのリズム(音長列)を生成する。基本リズムの変形は
パルススケールと呼ばれるリズム制御データ(小節のよ
うな音間区間内の各タイミングに重みをつけたデータ)
に基づいて処理している。この作曲機はモチーフの特徴
を展開した音楽的なメロディを生成することができるが
次のような欠点がある。 (A)作曲のためのデータ処理量が多い。 (B)したがって限られた処理能力のコンピュータで作
曲機を実現した場合に、応答が遅く作曲は非実時間ペー
スで行われる。 (C)リズムパターンの生成能力に限界がある(音数が
同一でも、微妙に異なるリズムパターンの生成等)。 (D)コード進行は入力装置から入力しており、音楽知
識の乏しいユーザー向きでない。 (E)作曲の条件付けに本来、作曲の一部であるべきモ
チーフとコード進行(共にユーザー入力)を必要する。
【0004】
【発明が解決しようとする課題】したがって、この発明
の主目的は音楽的な作曲能力と応答性能との総合力を従
来技術が達成し得ないレベルで達成する自動作曲機を提
供することである。更にこの発明の目的は実時間ベース
でメロディを生成、演奏可能な自動作曲機を提供するこ
とである。この発明の特定の目的はユーザーが関与して
設定される作曲条件に合わせた作曲をすばやく行える自
動作曲機を提供することである。更にこの発明の特定の
目的は自然でユーザーの要求に沿うようなリズムをもつ
メロディを少ないデータ処理量で生成できる自動作曲機
を提供することである。更にこの発明の特定の目的はユ
ーザーに格別の音楽知識を必要とすることなしに、自然
でユーザーの要求に沿うようなコード進行を効率よく生
成できる自動作曲機を提供することである。
の主目的は音楽的な作曲能力と応答性能との総合力を従
来技術が達成し得ないレベルで達成する自動作曲機を提
供することである。更にこの発明の目的は実時間ベース
でメロディを生成、演奏可能な自動作曲機を提供するこ
とである。この発明の特定の目的はユーザーが関与して
設定される作曲条件に合わせた作曲をすばやく行える自
動作曲機を提供することである。更にこの発明の特定の
目的は自然でユーザーの要求に沿うようなリズムをもつ
メロディを少ないデータ処理量で生成できる自動作曲機
を提供することである。更にこの発明の特定の目的はユ
ーザーに格別の音楽知識を必要とすることなしに、自然
でユーザーの要求に沿うようなコード進行を効率よく生
成できる自動作曲機を提供することである。
【0005】
【課題を解決するための手段、作用】この発明によれ
ば、メロディを自動生成する自動作曲機において、作曲
のための音楽素材のデータベースを記憶する音楽素材デ
ータベース手段と、作曲条件を設定する作曲条件設定手
段と、上記音楽素材データベース手段から設定した作曲
条件に合う音楽素材を検索する検索手段と、検索した音
楽素材を作曲の一部として生成する生成手段と、を有す
ることを特徴とする自動作曲機が提供される。この構成
によれば作曲条件に合う音楽素材(例えばリズム、コー
ド進行)を作曲の一部として提供できる。また、この構
成は多くデータ処理量を必要とせず、すばやい(例えば
完全な実時間ベースでの)システム応答を可能にする。
上記検索手段と生成手段は、例えば、上記音楽素材デー
タベース手段から音楽素材をアクセスするアクセス手段
と、アクセスした音楽素材が設定した作曲条件に合うか
どうかを検査する検査手段と、上記検査に合格するま
で、上記アクセス手段と上記検査手段の動作を、アクセ
スする音楽素材を変えながら繰り返す繰返手段と、上記
検査に合格した音楽素材を作曲の一部として生成する生
成手段と、で構成される。
ば、メロディを自動生成する自動作曲機において、作曲
のための音楽素材のデータベースを記憶する音楽素材デ
ータベース手段と、作曲条件を設定する作曲条件設定手
段と、上記音楽素材データベース手段から設定した作曲
条件に合う音楽素材を検索する検索手段と、検索した音
楽素材を作曲の一部として生成する生成手段と、を有す
ることを特徴とする自動作曲機が提供される。この構成
によれば作曲条件に合う音楽素材(例えばリズム、コー
ド進行)を作曲の一部として提供できる。また、この構
成は多くデータ処理量を必要とせず、すばやい(例えば
完全な実時間ベースでの)システム応答を可能にする。
上記検索手段と生成手段は、例えば、上記音楽素材デー
タベース手段から音楽素材をアクセスするアクセス手段
と、アクセスした音楽素材が設定した作曲条件に合うか
どうかを検査する検査手段と、上記検査に合格するま
で、上記アクセス手段と上記検査手段の動作を、アクセ
スする音楽素材を変えながら繰り返す繰返手段と、上記
検査に合格した音楽素材を作曲の一部として生成する生
成手段と、で構成される。
【0006】更にこの発明の一態様によれば、メロディ
を自動生成する自動作曲機において、リズムパターンの
データベースを記憶するリズムパターンデータベース手
段と、生成すべきメロディの音長列の属性を設定する属
性設定手段と、上記リズムパターンデータベース手段か
ら上記属性設定手段の設定した属性をもつリズムパター
ンを選択してメロディの音長列を生成するメロディ音長
列生成手段と、を有することを特徴とする自動作曲機が
提供される。この構成の場合、従来のパルススケールに
よるメロディ音長列生成方式(特開昭63-286883号)に
比べ、音長列生成のためのデータ処理量を格段に少なく
できる。かつ、生成音長列はリズムパターンデータベー
スからとり出されるので、リズムの自然さを確保するこ
とができる。更に、属性設定を介してユーザーの意図に
沿うようなメロディリズムを効率よく提供できる。一構
成例において、上記属性設定手段は、曲風を設定する曲
風設定手段と、音楽構造を設定する音楽構造設定手段
と、を有し、上記メロディ音高列生成手段は、上記リズ
ムパターンデータベース手段からリズムパターンをアク
セスするリズムパターンアクセス手段と、アクセスした
リズムパターンが設定した曲風と音楽構造に合うかどう
かを検査する属性検査手段と、上記検査に合格するま
で、上記リズムパターンアクセス手段と上記属性検査手
段の動作を、アクセスするリズムパターンを変えながら
繰り返す繰返手段と、上記検査に合格したリズムパター
ンを上記メロディの音長列として決定する決定手段と、
を有する。
を自動生成する自動作曲機において、リズムパターンの
データベースを記憶するリズムパターンデータベース手
段と、生成すべきメロディの音長列の属性を設定する属
性設定手段と、上記リズムパターンデータベース手段か
ら上記属性設定手段の設定した属性をもつリズムパター
ンを選択してメロディの音長列を生成するメロディ音長
列生成手段と、を有することを特徴とする自動作曲機が
提供される。この構成の場合、従来のパルススケールに
よるメロディ音長列生成方式(特開昭63-286883号)に
比べ、音長列生成のためのデータ処理量を格段に少なく
できる。かつ、生成音長列はリズムパターンデータベー
スからとり出されるので、リズムの自然さを確保するこ
とができる。更に、属性設定を介してユーザーの意図に
沿うようなメロディリズムを効率よく提供できる。一構
成例において、上記属性設定手段は、曲風を設定する曲
風設定手段と、音楽構造を設定する音楽構造設定手段
と、を有し、上記メロディ音高列生成手段は、上記リズ
ムパターンデータベース手段からリズムパターンをアク
セスするリズムパターンアクセス手段と、アクセスした
リズムパターンが設定した曲風と音楽構造に合うかどう
かを検査する属性検査手段と、上記検査に合格するま
で、上記リズムパターンアクセス手段と上記属性検査手
段の動作を、アクセスするリズムパターンを変えながら
繰り返す繰返手段と、上記検査に合格したリズムパター
ンを上記メロディの音長列として決定する決定手段と、
を有する。
【0007】好ましい記憶形態として、リズムパターン
データベース手段におけるリズムパターンデータに発音
タイミング情報、消音タイミング情報とともに属性を表
わす属性情報をもたせるとよい。この種の記憶形態はデ
ータベースを含む装置全体の記憶データ量の節約(同一
リズムパターンの重復記憶の回避)、属性検査の容易
化、データベース構築の容易化を可能にする。更にこの
発明の一態様によれば、メロディとコード進行を自動生
成する自動作曲機において、コード進行のデータベース
を記憶するコード進行データベース手段と、生成すべき
コード進行の属性を設定する属性設定手段と、上記コー
ド進行データベース手段から上記属性設定手段の設定し
た属性をもつコード進行を選択してコード進行を生成す
るコード進行生成手段と、を有することを特徴とする自
動作曲機が提供される。この構成によれば、ユーザーの
要求に沿うような自然で変化に富むコード進行を効率よ
く生成することができる。
データベース手段におけるリズムパターンデータに発音
タイミング情報、消音タイミング情報とともに属性を表
わす属性情報をもたせるとよい。この種の記憶形態はデ
ータベースを含む装置全体の記憶データ量の節約(同一
リズムパターンの重復記憶の回避)、属性検査の容易
化、データベース構築の容易化を可能にする。更にこの
発明の一態様によれば、メロディとコード進行を自動生
成する自動作曲機において、コード進行のデータベース
を記憶するコード進行データベース手段と、生成すべき
コード進行の属性を設定する属性設定手段と、上記コー
ド進行データベース手段から上記属性設定手段の設定し
た属性をもつコード進行を選択してコード進行を生成す
るコード進行生成手段と、を有することを特徴とする自
動作曲機が提供される。この構成によれば、ユーザーの
要求に沿うような自然で変化に富むコード進行を効率よ
く生成することができる。
【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小節構造への小節カウンタ)であ
る。カウンタSTRD1 PはデータベースSTR1か
ら選択した曲構造ワードの中から現在の時刻における楽
節構造を取り出す際に使用される。カウンタSTRD2
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小節構造への小節カウンタ)であ
る。カウンタSTRD1 PはデータベースSTR1か
ら選択した曲構造ワードの中から現在の時刻における楽
節構造を取り出す際に使用される。カウンタSTRD2
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】音楽素材データベースとその検索方式のさら
に別の変形例を示す図。
に別の変形例を示す図。
150 リズムパターンデータベース(リズムパターン
データベース手段、音楽素材データベース手段) 110、116、117、120、130 (属性設定
手段;作曲条件設定手段) 110 音楽構造データベース 116 選択モジュール 117 適性検査モジュール 120 選択音楽構造 110、116、117、120 (音楽構造設定手
段) 130 曲風入力(曲風設定手段) 155、170 (メロディ音長列生成手段;検索手
段;生成手段) 155 適性(属性)検査モジュール(リズムパターン
アクセス手段、属性検査手段、繰返手段、決定手段;ア
クセス手段、属性検査手段、繰返手段、生成手段) 170 選択リズムパターン 140 コード進行データベース(コード進行データベ
ース手段;音楽素材データベース手段) 145、160 (コード進行生成手段;検索手段;生
成手段) 145 適性(属性)検査モジュール(コード進行アク
セス手段、属性検査手段、繰返手段、決定手段;アクセ
ス手段、検査手段、繰返手段、生成手段) 160 選択コード進行 23−1〜23−8 リズムパターン生成ルーチン 22−1〜22−7 コード進行生成ルーチン
データベース手段、音楽素材データベース手段) 110、116、117、120、130 (属性設定
手段;作曲条件設定手段) 110 音楽構造データベース 116 選択モジュール 117 適性検査モジュール 120 選択音楽構造 110、116、117、120 (音楽構造設定手
段) 130 曲風入力(曲風設定手段) 155、170 (メロディ音長列生成手段;検索手
段;生成手段) 155 適性(属性)検査モジュール(リズムパターン
アクセス手段、属性検査手段、繰返手段、決定手段;ア
クセス手段、属性検査手段、繰返手段、生成手段) 170 選択リズムパターン 140 コード進行データベース(コード進行データベ
ース手段;音楽素材データベース手段) 145、160 (コード進行生成手段;検索手段;生
成手段) 145 適性(属性)検査モジュール(コード進行アク
セス手段、属性検査手段、繰返手段、決定手段;アクセ
ス手段、検査手段、繰返手段、生成手段) 160 選択コード進行 23−1〜23−8 リズムパターン生成ルーチン 22−1〜22−7 コード進行生成ルーチン
Claims (8)
- 【請求項1】 メロディを自動生成する自動作曲機にお
いて、 リズムパターンのデータベースを記憶するリズムパター
ンデータベース手段と、 生成すべきメロディの音長列の属性を設定する属性設定
手段と、 上記リズムパターンデータベース手段から上記属性設定
手段の設定した属性をもつリズムパターンを選択してメ
ロディの音長列を生成するメロディ音長列生成手段と、 を有することを特徴とする自動作曲機。 - 【請求項2】 請求項1記載の自動作曲機において、 上記属性設定手段は、 曲風を設定する曲風設定手段と、 音楽構造を設定する音楽構造設定手段と、を有し、 上記メロディ音高列生成手段は、 上記リズムパターンデータベース手段からリズムパター
ンをアクセスするリズムパターンアクセス手段と、 アクセスしたリズムパターンが設定した曲風と音楽構造
に合うかどうかを検査する属性検査手段と、 上記検査に合格するまで、上記リズムパターンアクセス
手段と上記属性検査手段の動作を、アクセスするリズム
パターンを変えながら繰り返す繰返手段と、 上記検査に合格したリズムパターンを上記メロディの音
長列として決定する決定手段と、 を有することを特徴とする自動作曲機。 - 【請求項3】 請求項1記載の自動作曲機において、上
記リズムパターンデータベース手段に記憶されるリズム
パターンのデータは発音タイミング情報、消音タイミン
グ情報、及び属性を表わす属性情報を有することを特徴
とする自動作曲機。 - 【請求項4】 メロディとコード進行を自動生成する自
動作曲機において、 コード進行のデータベースを記憶するコード進行データ
ベース手段と、 生成すべきコード進行の属性を設定する属性設定手段
と、 上記コード進行データベース手段から上記属性設定手段
の設定した属性をもつコード進行を選択してコード進行
を生成するコード進行生成手段と、 を有することを特徴とする自動作曲機。 - 【請求項5】 請求項4記載の自動作曲機において、 上記属性設定手段は、 曲風を設定する曲風設定手段と、 音楽構造を設定する音楽構造設定手段と、を有し、 上記コード進行生成手段は、 上記コード進行データベース手段からコード進行をアク
セスするコード進行アクセス手段と、 アクセスしたコード進行が設定した曲風と音楽構造に合
うかどうかを検査する属性検査手段と、 上記検査に合格するまで、上記コード進行アクセス手段
と上記属性検査手段の動作を、アクセスするコード進行
を変えながら繰り返す繰返手段と、 上記検査に合格したコード進行を生成コード進行として
決定する決定手段と、 を有することを特徴とする自動作曲機。 - 【請求項6】 請求項4記載の自動作曲機において、上
記コード進行データベース手段に記憶されるコード進行
のデータは、ルートとタイプを特定したコードの列を表
わす情報と属性を表わす情報とを含むことを特徴とする
自動作曲機。 - 【請求項7】 メロディを自動生成する自動作曲機にお
いて、 作曲のための音楽素材のデータベースを記憶する音楽素
材データベース手段と、 作曲条件を設定する作曲条件設定手段と、 上記音楽素材データベース手段から音楽素材をアクセス
するアクセス手段と、 アクセスした音楽素材が設定した作曲条件に合うかどう
かを検査する検査手段と、 上記検査に合格するまで、上記アクセス手段と上記検査
手段の動作を、アクセスする音楽素材を変えながら繰り
返す繰返手段と、 上記検査に合格した音楽素材を作曲の一部として生成す
る生成手段と、 を有することを特徴とする自動作曲機。 - 【請求項8】 メロディを自動生成する自動作曲機にお
いて、 作曲のための音楽素材のデータベースを記憶する音楽素
材データベース手段と、 作曲条件を設定する作曲条件設定手段と、 上記音楽素材データベース手段から設定した作曲条件に
合う音楽素材を検索する検索手段と、 検索した音楽素材を作曲の一部として生成する生成手段
と、 を有することを特徴とする自動作曲機。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36054691A JP3364941B2 (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 |
---|---|---|---|
JP36054691A JP3364941B2 (ja) | 1991-12-30 | 1991-12-30 | 自動作曲機 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05181409A true JPH05181409A (ja) | 1993-07-23 |
JP3364941B2 JP3364941B2 (ja) | 2003-01-08 |
Family
ID=18469866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36054691A Expired - Fee Related JP3364941B2 (ja) | 1991-12-30 | 1991-12-30 | 自動作曲機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3364941B2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11119774A (ja) * | 1997-10-14 | 1999-04-30 | Yamaha Corp | 自動作曲装置および記録媒体 |
JP2008506150A (ja) * | 2004-07-08 | 2008-02-28 | ヨナス エドルンド | 音楽生成システム |
JP2014219580A (ja) * | 2013-05-09 | 2014-11-20 | 和彦 外山 | 環境音生成装置、環境音生成プログラム、音環境形成方法及び記録媒体 |
JP2016053746A (ja) * | 2016-01-22 | 2016-04-14 | 和彦 外山 | 環境音生成装置、環境音生成プログラム及び音環境形成方法 |
JP2017090927A (ja) * | 2017-01-18 | 2017-05-25 | 和彦 外山 | 環境音生成装置、環境音生成プログラム及び音環境形成方法 |
CN109785818A (zh) * | 2018-12-18 | 2019-05-21 | 武汉西山艺创文化有限公司 | 一种基于深度学习的音乐编曲方法和系统 |
CN113035159A (zh) * | 2021-02-26 | 2021-06-25 | 王福庆 | 一种智能作曲系统 |
-
1991
- 1991-12-30 JP JP36054691A patent/JP3364941B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11119774A (ja) * | 1997-10-14 | 1999-04-30 | Yamaha Corp | 自動作曲装置および記録媒体 |
JP2008506150A (ja) * | 2004-07-08 | 2008-02-28 | ヨナス エドルンド | 音楽生成システム |
JP2014219580A (ja) * | 2013-05-09 | 2014-11-20 | 和彦 外山 | 環境音生成装置、環境音生成プログラム、音環境形成方法及び記録媒体 |
JP2016053746A (ja) * | 2016-01-22 | 2016-04-14 | 和彦 外山 | 環境音生成装置、環境音生成プログラム及び音環境形成方法 |
JP2017090927A (ja) * | 2017-01-18 | 2017-05-25 | 和彦 外山 | 環境音生成装置、環境音生成プログラム及び音環境形成方法 |
CN109785818A (zh) * | 2018-12-18 | 2019-05-21 | 武汉西山艺创文化有限公司 | 一种基于深度学习的音乐编曲方法和系统 |
CN113035159A (zh) * | 2021-02-26 | 2021-06-25 | 王福庆 | 一种智能作曲系统 |
Also Published As
Publication number | Publication date |
---|---|
JP3364941B2 (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 | |
JP3271282B2 (ja) | 自動メロディ生成装置 | |
JP2638021B2 (ja) | 自動伴奏装置 | |
US5052267A (en) | Apparatus for producing a chord progression by connecting chord patterns | |
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 | |
JPH02306283A (ja) | メロディ分析機 | |
JPH07219536A (ja) | 自動編曲装置 | |
JP3364941B2 (ja) | 自動作曲機 | |
JP3152123B2 (ja) | 自動作曲機 | |
JPH0990952A (ja) | 和音分析装置 | |
JP3364940B2 (ja) | 自動作曲機 | |
JP3664126B2 (ja) | 自動作曲装置 | |
JP3531507B2 (ja) | 楽曲生成装置および楽曲生成プログラムを記録したコンピュータで読み取り可能な記録媒体 | |
JP3271331B2 (ja) | メロディ分析装置 | |
JP3163654B2 (ja) | 自動伴奏装置 | |
JP2002032079A (ja) | 自動作曲装置及び方法並びに記憶媒体 | |
JPH05346781A (ja) | 調検出装置および自動編曲装置 | |
JP2666063B2 (ja) | 自動作曲機 | |
Yang et al. | RESEARCH ON THE CONSTRUCTION OF AI COMPOSITION SYSTEM BASED ON HMM | |
Weijia et al. | RESEARCH ON THE CONSTRUCTION OF AI COMPOSITION SYSTEM BASED ON HMMS. | |
JP2615720B2 (ja) | 自動作曲機 | |
JP3271332B2 (ja) | 和音付装置 | |
JP2615721B2 (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 |