(57)【特許請求の範囲】
【請求項１】
１つの曲を構成する複数の区間の各区間について、該区間内におけるリズムの特徴を示す情報を少なくとも含む曲テンプレート情報を提供する提供手段と、
作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、
前記曲テンプレート情報に含まれるリズムの特徴を示す情報と前記入力された各区間毎の音数を示す情報とを基に、各区間におけるリズムを決定する決定手段と
を備えた自動作曲装置。
【請求項２】
１つの曲を構成する複数の区間の各区間について、該区間内におけるピッチの変動傾向を示す情報を少なくとも含む曲テンプレート情報を提供する提供手段と、
作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、
前記曲テンプレート情報に含まれるピッチの変動傾向を示す情報と前記入力された各区間毎の音数を示す情報とを基に、各区間におけるピッチ及びリズムを決定する決定手段と
を備えた自動作曲装置。
【請求項３】
前記ピッチの変動傾向を示す情報は、各区間における最初の音と最後の音とを夫々特定する情報と、各区間毎の最初の音と最後の音との間のピッチの変動傾向を夫々示す情報とを含み、
前記決定手段は、前記入力された各区間毎の音数を示す情報を基に、各区間におけるリズムを夫々決定する手段と、各区間についての前記最初の音と最後の音とを夫々特定する情報とその間のピッチの変動傾向を示す情報に基づき、各区間に含まれる各音符に対してピッチを割り当てる手段とを含む請求項２に記載の自動作曲装置。
【請求項４】
前記曲テンプレート情報は、各区間における音符の粗密を示す情報を含み、前記決定手段は、該曲テンプレート情報に含まれる各区間における音符の粗密を示す情報と前記入力された各区間毎の音数を示す情報とを基に、各区間におけるリズムを決定する請求項２に記載の自動作曲装置。
【請求項５】
１つの前記区間は、複数小節からなる１フレーズに対応しており、前記曲テンプレート情報は、当該フレーズの出だしの音の拍が小節の１拍目より遅れている場合はそのことを示す遅れ指定情報を含んでおり、
前記決定手段は、各フレーズにおける小節の区切り位置を決定する手段と、前記遅れ指定情報に基づき各フレーズの最初の拍位置と最後の拍位置とを決定する手段と、各フレーズ毎に決定された小節区切り位置と最初及び最後の拍位置に基づいて各フレーズに含まれる音符の位置と長さを決定する手段と、各フレーズのピッチの変動傾向を示す情報に基づき各フレーズに含まれる音符のピッチを決定する手段とを含む請求項２に記載の自動作曲装置。
【請求項６】
１つの曲を構成する複数の区間の各区間について、該区間内におけるピッチの変動傾向を示す情報を少なくとも含む曲テンプレート情報を、複数の曲について夫々記憶したメモリ手段と、
前記メモリ手段から所望の１つの曲テンプレート情報をユーザーによって選択して、該選択された曲テンプレート情報をバッファ記憶し、バッファ記憶した曲テンプレート情報の内容をユーザーの操作によって変更するテンプレートエディット手段と、
作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、
前記テンプレートエディット手段にバッファ記憶されている曲テンプレート情報と前記入力された各区間毎の音数を示す情報を基に、各区間におけるリズムとピッチを決定する音符決定手段と
を備えた自動作曲装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、音楽に関する各種の条件に応じて自動的に楽曲を作成する自動作曲装置に関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータの普及に伴い、コンピュータを用いて楽器を演奏したり、作曲したり、編曲したり、音色を合成したりするコンピュータミュージックを用いて、誰でも音楽を自由に楽しめるようになってきた。特に、コンピュータを用いた作曲の分野では、音楽的な専門知識がなくても、コンピュータの指示に従い各種の音楽条件を入力設定するだけで簡単に作曲することができる。
また、最近では元となる曲のメロディを和声音と非和声音に分類し、非和声音をさらに分類することによってそのメロディの特徴を分析し、その分析結果とコード進行に従って新たなメロディを合成し、自動的に作曲を行うようなものが提案されている。
【０００３】
【発明が解決しようとする課題】
ところが、従来のコンピュータミュージックにおける自動作曲は、予め入力設定された様々な音楽条件（例えばコード進行、音楽ジャンル、リズム種類など）を満たすように処理して作曲するものである。従って、通常の人的な作曲作業のように、先に作詞してから、後で作詞した歌詞に見合った曲を作曲するというようなことができなかった。
また、元となる曲のメロディの特徴を分析し、その分析結果に基づいて自動的に作曲するような自動作曲装置は、分析結果をそのまま利用するだけのものであり、分析結果に部分的に手を加えたとしても、加えた結果が自動作曲の過程でどのように作用するのかが明確でなかったため、部分的に手を加えたとしてもそれは単にランダムに分析結果を書き換えただけに過ぎず、操作者の意図する曲を自動的に作曲できるものではなかった。
【０００４】
この発明は上述の点に鑑みてなされたもので、格別の音楽知識を持たないユーザーであっても気軽に自動作曲作業を行うことができる自動作曲装置を提供しようとするものである。また、ユーザーの作曲意図を容易に反映させることができるように、自動作曲を行うことができる自動作曲装置を提供しようとするものである。また、１曲を通して区間毎に起伏に富んだメロディを生成することのできる自動作曲装置を提供しようとするものである。
【０００５】
【課題を解決するための手段】
この発明に係る自動作曲装置は、１つの曲を構成する複数の区間の各区間について、該区間内におけるリズムの特徴を示す情報を少なくとも含む曲テンプレート情報を提供する提供手段と、作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、前記曲テンプレート情報に含まれるリズムの特徴を示す情報と前記入力された各区間毎の音数を示す情報とを基に、各区間におけるリズムを決定する決定手段とを備える。各区間内におけるリズムの特徴を示す情報を少なくとも含む曲テンプレート情報を用いる一方で、各区間毎の音数を示す情報をユーザーによって入力し、これらに基づき各区間におけるリズムを決定するので、格別の音楽知識を持たないユーザーであっても気軽に自動作曲作業を行うことができ、また、ユーザーの作曲意図を容易に反映させることができるように、自動作曲を行うことができる。
この発明に係る別の観点に従う自動作曲装置は、１つの曲を構成する複数の区間の各区間について、該区間内におけるピッチの変動傾向を示す情報を少なくとも含む曲テンプレート情報を提供する提供手段と、作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、前記曲テンプレート情報に含まれるピッチの変動傾向を示す情報と前記入力された各区間毎の音数を示す情報とを基に、各区間におけるピッチ及びリズムを決定する決定手段とを備える。各区間内におけるピッチの変動傾向を示す情報を少なくとも含む曲テンプレート情報を用いる一方で、各区間毎の音数を示す情報をユーザーによって入力し、これらに基づき各区間におけるピッチ及びリズムを決定するので、格別の音楽知識を持たないユーザーであっても気軽に自動作曲作業を行うことができ、また、ユーザーの作曲意図を容易に反映させることができるように、自動作曲を行うことができる。更には、１曲を通して区間毎に起伏に富んだメロディを生成することができる。
この発明に係る更に別の観点に従う自動作曲装置は、１つの曲を構成する複数の区間の各区間について、該区間内におけるピッチの変動傾向を示す情報を少なくとも含む曲テンプレート情報を、複数の曲について夫々記憶したメモリ手段と、前記メモリ手段から所望の１つの曲テンプレート情報をユーザーによって選択して、該選択された曲テンプレート情報をバッファ記憶し、バッファ記憶した曲テンプレート情報の内容をユーザーの操作によって変更するテンプレートエディット手段と、作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、前記テンプレートエディット手段にバッファ記憶されている曲テンプレート情報と前記入力された各区間毎の音数を示す情報を基に、各区間におけるリズムとピッチを決定する音符決定手段とを備える。この場合も、格別の音楽知識を持たないユーザーであっても気軽に自動作曲作業を行うことができ、また、ユーザーの作曲意図を容易に反映させることができるように、自動作曲を行うことができ、更には、１曲を通して区間毎に起伏に富んだメロディを生成することができる。
【０００６】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図２はこの発明に係る自動作曲装置を内蔵した電子楽器の構成を示すハードブロック図である。
電子楽器は、マイクロプロセッサユニット（ＣＰＵ）１、プログラムメモリ２及びワーキングメモリ３からなるマイクロコンピュータによって制御されるようになっている。
ＣＰＵ１は、この電子楽器全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してプログラムメモリ２、ワーキングメモリ３、演奏データメモリ（ＲＡＭ）４、押鍵検出回路５、スイッチ検出回路６、表示回路７及び音源回路８がそれぞれ接続されている。
【０００７】
プログラムメモリ２はＣＰＵ１の各種プログラム、各種データ、各種記号文字等を格納するものであり、リードオンリーメモリ（ＲＯＭ）で構成されている。
ワーキングメモリ３は、演奏情報やＣＰＵ１がプログラムを実行する際に発生する各種データを一時的に記憶するものであり、ランダムアクセスメモリ（ＲＡＭ）の所定のアドレス領域がそれぞれ割り当てられ、レジスタやフラグなどとして利用される。この発明に係る自動作曲装置の一実施例に係るコンピュータプログラムがプログラムメモリ２又はワーキングメモリ３に記憶されており、ＣＰＵ１によって実行される。
演奏データメモリは、曲テンプレートやピッチパターン、リズムパターンなどのような演奏に関するデータを記憶するものである。
【０００８】
鍵盤９は、発音すべき楽音の音高を選択するための複数の鍵を備えており、各鍵に対応してキースイッチを有しており、また必要に応じて押鍵速度検出装置や押圧力検出装置等のタッチ検出手段を有している。
押鍵検出回路５は、発生すべき楽音の音高を指定する鍵盤９のそれぞれの鍵に対応して設けられた複数のキースイッチからなる回路を含んで構成されており、新たな鍵が押圧されたときはキーオンイベントを出力し、鍵が新たに離鍵されたときはキーオフイベントを出力する。また、鍵押し下げ時の押鍵操作速度又は押圧力等を判別してタッチデータを生成する処理を行い、生成したタッチデータをベロシティデータとして出力する。このようにキーオン、キーオフイベント及びベロシティなどのデータはＭＩＤＩ規格で表現されておりキーコードと割当てチャンネルを示すデータも含んでいる。
【０００９】
テンキー＆キーボード＆各種スイッチ１Ａは、既存曲を音楽的特徴を分析及び抽出するための分析スイッチや分析及び抽出結果に基づいて自動的に作曲を行うための編曲スイッチ、数値データ入力用のテンキーや文字データ入力用のキーボード、及び自動作曲に関する各種の音楽条件を入力するための各種の操作子を含んで構成される。なお、この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含むが、その詳細については公知なので説明を省略する。
スイッチ検出回路６は、テンキー＆キーボード＆各種スイッチ１Ａの各操作子の操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス１Ｄを介してＣＰＵ１に出力する。
表示回路７はＣＰＵ１の制御状態、設定データの内容等の各種の情報をディスプレイ１Ｂに表示するものである。ディスプレイ１Ｂは液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成され、表示回路７によってその表示動作を制御されるようになっている。
このテンキー＆キーボード＆各種スイッチ１Ａ及びディスプレイによってＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）が構成される。
【００１０】
音源回路８は、複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられた演奏情報（ＭＩＤＩ規格に準拠したデータ）を入力し、このデータに基づき楽音信号を発生する。
音源回路８における楽音信号発生方式はいかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出すメモリ読み出し方式、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるＦＭ方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるＡＭ方式等の公知の方式を適宜採用してもよい。
音源回路８から発生された楽音信号は、図示しないアンプ及びスピーカからなるサウンドシステム１Ｃを介して発音される。
【００１１】
次に、この発明に係る自動作曲装置の動作の一例を説明する。
図１は図２の電子楽器を自動作曲装置として動作させる場合のフローチャートの一例を示す図である。この自動作曲装置は、ステップ１２〜ステップ１５の処理によって既存曲の音楽的特徴の分析及び抽出を行い、その分析・抽出結果を曲テンプレートとして記憶する。そして、自動作曲装置はステップ１７〜ステップ２４の処理によって記憶されている曲テンプレートにユーザが適宜修正を加え、修正の加えられたものに基づいて自動的に作曲を行うようになっている。
【００１２】
以下、図１のフローチャートに従って、この発明に係る自動作曲装置の動作例を説明する。
ステップ１１では、テンキー＆キーボード＆各種スイッチ１Ａ上の分析スイッチがオン操作されたかどうかを判定し、オン操作有り（ＹＥＳ）の場合はステップ１２〜ステップ１５の処理を行い、オン操作無し（ＮＯ）の場合はステップ１６にジャンプする。
ステップ１２では、既存曲の楽譜情報を取り込む。例えば、既存曲の曲名、曲形式、ジャンル、メロディ、コード進行、歌詞、調、拍子、テンポ、小節線やフレーズの区切りなどをＧＵＩ（テンキー＆キーボード＆各種スイッチ１Ａ及びディスプレイ１Ｂ）や鍵盤９などを用いて取り込む。また、既存曲がＭＩＤＩデータとして取り込み可能な場合には、そのＭＩＤＩデータに基づいてメロディ、調、テンポなどを分析し、分析不可能な曲名、曲形式などについてはユーザがＧＵＩを用いて入力する。
ステップ１３では、前記ステップ１２の処理によって取り込まれた既存曲の楽譜情報をワーキングメモリ３の所定領域に記憶する。
【００１３】
ステップ１４では、上述のようにして取り込まれた楽譜情報に基づいてＣＰＵ１が音楽的特徴の分析・抽出処理を行う。図３及び図４はこの音楽的特徴の分析・抽出処理の詳細を示す図である。なお、図３のステップ３１〜ステップ３Ｂは楽譜情報を構成する各フレーズに対する処理であり、図４のステップ４１〜ステップ４Ａは楽譜情報全体に対する処理である。この音楽的特徴の分析・抽出処理は次のようなステップで順番に実行される。
ステップ３１：ワーキングメモリ１３から既存曲の楽譜情報を読み出し、その楽譜情報を構成するフレーズ数を検出し、それをフレーズ番号レジスタＦＮに格納する。
ステップ３２：カウンタレジスタＣＮＴに『１』をセットする。
ステップ３３：カウンタレジスタＣＮＴの値に対応するフレーズ番号を注目フレーズとし、そのフレーズに対してステップ３４〜ステップ３９の処理を行う。ステップ３４〜ステップ３６は楽譜情報からピッチに関する要素を分析・抽出する処理であり、ステップ３７〜ステップ３９はリズムに関する要素を分析・抽出する処理である。
【００１４】
ステップ３４：注目フレーズの最初の音高を基準として、そのフレーズのメロディを音高差のデータに変換する。
ステップ３５：ステップ３４で求められた音高差データに基づいてピッチパターンを検出する。例えば、フレーズ内の全ての音高差データを結んで得られた折れ線グラフをピッチパターンとしてもよい。しかしながら、この折れ線グラフだと、後述するピッチの対比／模倣の判定が複雑になるので、この実施の形態では、フレーズの最初及び最後の音高とフレーズ内の最高及び最低の音高との４つの音高を結んで得られた折れ線グラフをそのフレーズのピッチパターンとする。なお、フレーズの最初又は最後の音高が最高又は最低の音高に等しい場合には、２つの音高又は３つの音高をそれぞれ結んで得られる折れ線グラフをそのフレーズのピッチパターンとする。また、この他にも、全ての音高差データを結んで得られた折れ線グラフから極大及び極小となる音高を抽出し、その音高とフレーズの最初及び最後の音高とをそれぞれ結んで得られた折れ線グラフをそのフレーズのピッチパターンとしてもよい。
ステップ３６：フレーズの最初と最後の音高を検出する。
【００１５】
ステップ３７：フレーズ内のリズムパターンから弾みとシンコペーションを除去し、原始リズムパターンを検出する。すなわち、取り込まれた楽譜情報のリズムパターンを直接そのフレーズの原始リズムパターンとしてもよいが、後述するリズムの対比／模倣の判定が複雑になるので、この実施の形態では、弾みとシンコペーションを検出するための検出パターンと、この検出パターンから弾みとシンコペーションの除去された基本パターンとの組を複数有し、フレーズのリズムパターンの中で検出パターンに一致した部分をその基本パターンにに書き換えることによって、フレーズ内のリズムパターンから弾みとシンコペーションを除去し、原始リズムパターンを作成している。
ステップ３８：フレーズの前半部分と後半部分の音符数を比較し、そのフレーズの粗密状態を検出する。例えば、１フレーズが２小節で構成されている場合には、前半の１小節中に現れる音符数と後半の１小節中に現れる音符数とを比較し、その差が３個以上であれば、音符数の多い方を密とし、音符数の少ない方を粗とする。また、その差が２個以内の場合には、粗密ではなく、均等と判定する。
【００１６】
ステップ３９：フレーズの先頭に休符が存在するかどうか、すなわち、そのフレーズの１拍目は遅れているかどうかを判定する。
ステップ３Ａ：カウンタレジスタＣＮＴの値とフレーズ番号レジスタＦＮの値とが等しいかどうかを判定し、等しい（ＹＥＳ）場合には楽譜情報内の全てのフレーズに対してステップ３３〜ステップ３９の処理を行ったことを意味するので、図４のステップ４１以下に進み、今度は楽譜情報全体に対する分析・抽出処理を行い、等しくない（ＮＯ）には、まず分析・抽出を行っていないフレーズが存在することを意味するので、ステップ３Ｂを経て、ステップ３３にリターンする。
ステップ３Ｂ：前記ステップ３ＡでＮＯと判定されたので、カウンタレジスタＣＮＴを『１』だけインクリメント処理して、ステップ３３にリターンする。
【００１７】
次に図４のステップ４１〜ステップ４Ａの楽譜情報全体に対する分析・抽出処理について順番に説明する。
ステップ４１：全体の楽譜情報の中から最高音高と最低音高に基づいて楽譜情報全体の音域を検出する。
ステップ４２：前記ステップ３５で検出された折れ線グラフに基づいて各フレーズ間のピッチパターンが近似あるいは相似しているかどうかを検出する。この検出の結果、近似あるいは相似しているフレーズが存在する場合には、最先のフレーズに対してそれ以降のフレーズはピッチが対比／模倣していることとする。
【００１８】
ステップ４３：全体の楽譜情報の中から最もデュレーションタイムの短い音符（最短音符）と、最もデュレーションタイム長い音符（最長音符）を検出する。
ステップ４４：前記ステップ３７で検出された原始リズムパターンに基づいて各フレーズ間のリズムパターンが近似あるいは相似しているかどうかを検出する。この検出の結果、近似あるいは相似しているフレーズが存在する場合には、最先のフレーズに対してそれ以降のフレーズはリズムが対比／模倣していることとする。
ステップ４５：前記ステップ３９で検出された先頭に休符の存在するフレーズが全体の楽譜情報（曲全体）に占める割合（パーセント）を求め、その割合が０パーセントの場合には『無』、０パーセントより大きく８０パーセント未満の場合には『中』、８０パーセントより大きい場合には『多』とする。
ステップ４６：前記ステップ３７でシンコペーションの除去されたフレーズが全体の楽譜情報（曲全体）に占める割合（パーセント）を求め、その割合が０パーセントの場合には『無』、０パーセントより大きく８０パーセント未満の場合には『中』、８０パーセントより大きい場合には『多』とする。
【００１９】
ステップ４７：全体の楽譜情報の音高を平滑化してピッチカーブを検出する。例えば、各音高をスプライン曲線又はベジェ曲線で結び、それをピッチカーブとする。
ステップ４８：全体の楽譜情報の音量値を平滑化して強弱カーブを検出する。例えば、各音符のベロシティ値をスプライン曲線又はベジェ曲線で結び、それを強弱カードとする。
ステップ４９：前記ステップ４７及びステップ４８で検出されたピッチカーブと強弱カーブを加算したものを感情の起伏曲線とする。なお、ピッチカーブと強弱カーブを乗算したものや、両者を平均したものを感情の起伏曲線としてもよい。
ステップ４Ａ：全体の楽譜情報がメロディックであるかリズミックであるかを検出する。例えば、テンポが所定値よりも大きい場合にはリズミックとし、小さい場合にはメロディックとする。また、デュレーションタイムの平均値が所定値よりも大きい場合にはメロディックとし、小さい場合にはリズミックとしてもよい。
【００２０】
ステップ１５では、上述のようにして分析・抽出された結果を曲テンプレートして演奏データメモリ４に記憶する。従って、演奏データメモリ４には、ユーザが独自に分析・抽出した結果が複数記憶されてることとなる。なお、特定のジャンルを代表するような曲に対して上述のような音楽的特徴の分析・抽出処理を行い、その結果を予め記憶しておいてもよい。
図５及び図６はその分析、抽出結果の一例を示す図である。
図５は曲全体に関する音楽的特徴の分析・抽出結果の一例を示す図である。この曲全体に関する音楽的特徴の分析・抽出結果は、曲の形式、全体の曲想、全体のリズム条件、全体のピッチ条件を記憶する項目からなる。
曲の形式を記憶する項目『形式』には、その曲の形式が例えば、「Ａ−Ｂ−Ｃ−Ｃ’」や「Ａ−Ａ’−Ｂ−Ｂ’」などのような楽節パターンで記憶される。
【００２１】
全体の曲想を記憶する項目『曲想』には、ジャンル記憶項目『ジャンル』、イメージ曲記憶項目『イメージ曲』、作曲家記憶項目『作曲家』及びメロディック／リズミック選択項目『メロディック／リズミック』などがある。
ジャンル記憶項目『ジャンル』には、作曲したい曲のジャンル名などが記憶される。図では「８ビート」が設定されているが、この他にも「ダンス＆ポップス系（ラップ、ユーロビート、ポッフバラード）」、「ソウル系（ダンスファンク、ソウルバラード、Ｒ＆Ｂ）」、「ロック系（ソフト８ビート、８ビート、ロックンロール）」、「ジャズ系（スィング、ジャズバラード、ジャズボサノバ）」、「ラテン系（ボサノバ、サンバ、ルンバ、ビギン、タンゴ、レゲエ）」、「マーチ系」、「演歌系」、「唱歌系」などのジャンル名が記憶される。
イメージ曲記憶項目『イメージ曲』には作曲したい曲に近いと思われる曲名が記憶される。作曲家記憶項目『作曲家』には、作曲したい曲の作曲家の氏名などが記憶される。メロディック／リズミック選択項目『メロディック／リズミック』には、図４のステップ４９の分析・抽出結果が記憶される。各項目に記憶されている内容は自動作曲時にその特徴を表すようにピッチパターン及びリズムパターンに影響を与えるように作用する。
【００２２】
全体のリズム条件を記憶する項目『リズム』には、拍子記憶項目『拍子』、テンポ記憶項目『テンポ』、最短音記憶項目『最短音』、１拍目の遅れの頻度記憶項目『１拍目の遅れの頻度』及びシンコペーションの頻度記憶項目『シンコペーションの頻度』などがある。
拍子記憶項目『拍子』にはその曲の拍子が記憶される。図では、「４／４」が記憶されている。テンポ記憶項目『テンポ』にはその曲のテンポをメトロノーム記号や速度標語などで表したものが記憶される。図では、１分間の４分音符の拍数を１２０とするメトロノーム記号が記憶されている。最短音記憶項目『最短音』には、図４のステップ４３で検出された最もデュレーションタイムの小さな音符が記憶される。図では８分音符が記憶されている。１拍目の遅れの頻度記憶項目『１拍目の遅れの頻度』には、図４のステップ４５で検出された１拍目が遅れる頻度が「無／中／多」の中から選択的に記憶される。シンコペーションの頻度記憶項目『シンコペーションの頻度』には、図４のステップ４６で検出されたシンコペーションの頻度が「無／中／多」の中から選択的に記憶される。
【００２３】
全体のピッチ条件を記憶する項目には、音域記憶項目『音域』及び調記憶項目『調』などがある。音域記憶項目『音域』には図４のステップ４１で検出された音域が最高音高及び最低音高のキーコード名で記憶される。図では、「Ａ２〜Ｅ４」が記憶されている。ここに記憶されている音域は、自動作曲時のピッチパターンの生成に影響を与える。調記憶項目『調』には図１のステップ１２で分析された調がそのコード名で記憶される。図では、「Ｆｍ（ヘ短調）」が記憶されている。ここに記憶されている調は、自動作曲時の音階の生成に影響を与える。
【００２４】
図６は音楽的特徴の分析・抽出結果の一例を曲の進行に従って示す図である。図６は図５の曲形式の各楽節に対応しており、曲全体の感情の起伏、各楽節を構成するフレーズ毎に分析・抽出されたピッチ及びリズムに関する音楽的特徴を記憶するようになっている。
曲全体の感情の起伏を記憶する項目『感情の起伏』には、ステップ４９で得られたその曲の感情の起伏を表す曲線が記憶される。ここで記憶された感情の起伏曲線は自動作曲時のピッチパターン、リズムパターン及びボリュームに影響を与える。
【００２５】
各楽節におけるフレーズ毎のピッチに関する記憶項目には、ピッチパターン記憶項目『フレーズのピッチパターン』、最初−最後音記憶項目『フレーズの最初−最後音』、躍動／静寂記憶項目『躍動／静寂』及び対比／模倣記憶項目『対比／模倣』などがある。ピッチパターン記憶項目『フレーズのピッチパターン』には、図３のステップ３５で分析・抽出されたピッチパターンが記憶される。ここに記憶されたピッチパターンは、前記感情の起伏を表す曲線と乗算されて全体の抑揚に影響を与えるようになっている。
【００２６】
最初−最後音記憶項目『フレーズの最初−最後音』には、図３のステップ３６で分析・抽出された各フレーズの最初の音高と最後の音高がその度数（I,II,III,IV,V,VI,VII）で記憶される。躍動／静寂記憶項目『躍動／静寂』には、曲全体に渡る躍動／静寂の度合いが曲線で記憶される。この躍動／静寂の度合いを示す曲線は、各フレーズのピッチの平均値、図３のステップ３７で除去された弾み及びシンコペーションの数、図３のステップ３４で検出された音高差の各フレーズ毎の平均値、またはこれらの各値を種々演算した結果をスプライン曲線又はベジェ曲線で結んだものを採用する。対比／模倣記憶項目『対比／模倣』には、図４のステップ４２で検出されたピッチ対比／模倣の対象となる楽節が記憶される。図では、第３楽節「Ｃ」と第４楽節「Ｃ’」が近似あるいは相似しているので、第４楽節「Ｃ’」の対比／設定項目の前半部分に「Ｃの前半に模倣」、後半部分に「Ｃの後半に模倣」が記憶されている。この他にも、歌詞のイントネーションを重視し、ピッチをその歌詞の持つイントネーションと相似するように作用させるかどうかの項目を設けてもよい。
【００２７】
各楽節におけるフレーズ毎のリズムに関する記憶項目には、粗密記憶項目『粗密』、先頭の遅れ指定項目『フレーズ先頭の遅れ指定』、対比／模倣記憶項目『対比／模倣』及びシンコペーション指定項目『シンコペーション指定』などがある。粗密記憶項目『粗密』には、図３のステップ３８で検出されたフレーズの粗密パターンが記憶される。図では、密の場合に編み掛け表示され、粗や均等の場合には何も表示されない。先頭の遅れ指定項目『フレーズの先頭の遅れ指定』には、図３のステップ３９で検出されたフレーズ先頭に休符が有るのか無いのかが記憶される。図では、第３楽節「Ｃ」及び第４楽節の前半のフレーズで遅れ有り、それらの後半のフレーズで遅れ無しが記憶されている。対比／模倣記憶項目『対比／模倣』には、前述のピッチの場合と同様に対比／模倣される楽節が記憶される。シンコペーション指定項目『シンコペーション指定』には、図３のステップ３７でシンコペーションが除去されたかどうかを示す『有』又は『無』が記憶される。
【００２８】
次に、ステップ１６では、テンキー＆キーボード＆各種スイッチ１Ａ上の編集スイッチがオン操作されたかどうかを判定し、オン操作有り（ＹＥＳ）の場合はステップ１７〜ステップ２４の自動作曲処理を行い、オン操作無し（ＮＯ）の場合は終了する。すなわち、編集スイッチをオン操作することによって電子楽器を自動作曲装置として動作させることができる。従って、編集スイッチがオン操作された場合にはステップ１７〜ステップ２４の処理に従った自動作曲が行われるようになる。
ステップ１６で、ＹＥＳと判定され、電子楽器が自動作曲装置として動作するようになると、まず、ユーザは図１のステップ１７の段階で音楽条件を設定し、ステップ１８の段階で歌詞を入力する必要がある。ユーザが音楽条件を設定し、歌詞を入力すると、今度はＣＰＵ１がユーザの設定したユーザ音楽条件、歌詞及び予め内部に有する内部音楽条件に従って、ステップ１９〜ステップ２３の処理を行い、自動的に曲を作曲する。そして、最後のステップ２４の段階で、自動的に作成された曲の修正をユーザが行うことによって、最終的な曲を完成することができる。
【００２９】
まず、ステップ１７において、ユーザはＧＵＩ（テンキー＆キーボード＆各種スイッチ１Ａ及びディスプレイ１Ｂ）を用いて、図５及び図６に示したものと同じ画面（以下、音楽条件設定画面とする）の各項目にデータを入力することよって、ユーザ音楽条件を設定する。もちろん、この音楽条件設定画面は図５及び図６のような既存曲から分析・抽出された結果を演奏データメモリ４から読み出してそのまま使用してもよいし、読み出したものをユーザが適宜エディットしてもよいし、ユーザ自身で別途新たに作成してもよいことはいうまでもない。
次に、ステップ１８において、ユーザはＧＵＩ（テンキー＆キーボード＆各種スイッチ１Ａ及びディスプレイ１Ｂ）を用いて、図７に示すような画面上で歌詞データを入力する。
図７は歌詞データを入力するための画面の一例を示す図である。
図では、歌詞データを入力するための画面として、前述の曲形式で設定された楽節に対応した楽節記号の『Ａ』と『Ｂ』だけが表示されている。従って、ユーザは楽節記号の右側に、作曲の対象となる歌詞に関する音節データ、フレーズ分割記号、小節線記号、長音記号などから構成される歌詞データを順次入力する。ここでは、各楽節の１行分が４小節に相当する。
【００３０】
フレーズ（メロディとして１塊となる区間）を指定するために、そのフレーズ分割点に対応する位置に図７（Ｂ）のようなスペース記号（図では三角形記号「△」で示してある）を入力する。このスペース記号がフレーズ分割記号となる。図７（Ｃ）のように小節の区切りを指定するために小節線の位置に小節線記号「／」を入力することもできる。
図７（Ｄ）のように長音記号「ー」を音節データの後に入力することもできる。この長音記号は「ーーーー」のように連続して複数個繋げることによってその音節データに割り当てられる音符の音長を制御することができる。
【００３１】
図７（Ｅ）のように音節データの所定の箇所にアクセント記号「・」を付与することもできる。このアクセント記号の付与された箇所のピッチ及びベロシティは、以後の自動作曲時において他の音節データのものよりもやや高めに設定されるようになる。
図７（Ｆ）のように音節データのイントネーションを折れ線で入力することもできる。
図７（Ｇ）のようにクライマックスとなる部分の音節データを編み掛け表示することもできる。
なお、この実施の形態では、音節データの入力と、フレーズ分割記号の設定は必ず行う必要があるが、これ以外の小節線記号「／」、長音記号「ー」、アクセント記号「・」、イントネーション、クライマックスなどに関してはユーザが任意に指定することができる。また、これ以外にも文節の区切りや韻を踏む箇所などを設定してもよい。
【００３２】
このようにして入力された歌詞データは、ワーキングメモリ３内の歌詞メモリ領域に記憶される。図８（Ａ）はこの歌詞メモリ領域の図７（Ｄ）〜（Ｇ）に対応した歌詞データの構成例を示す図である。すなわち、図７（Ｄ）のように入力された音節データ、小節線記号、フレーズ分割記号、長音記号などの歌詞データは図８（Ａ）のようにアドレスに順番記憶される。例えば、アドレス『１』には小節線記号『／』、アドレス『２』には音節データ『は』、アドレス『３』には長音記号『ー』、アドレス『４』には音節データ『る』などのように記憶されている。
【００３３】
図７（Ｅ）のようにアクセントの付された音節データのアドレス位置には、アクセント有りを示すデータ『１』が記憶され、アクセントの付されていない音節データのアドレス位置にはアクセント無しを示すデータ『０』が記憶される。
図７（Ｆ）のようにイントネーションの入力に対応して、音節データのアドレス位置には、折れ線に対応したデータ『高』、『中』、『低』が記憶される。
また、図７（Ｇ）のようにクライマックスの指定された音節データのアドレス位置にはクライマックス指定を示すデータ『１』が記憶される。なお、図８（Ａ）では、このクライマックス指定を示すデータ『１』は図示されていないが、音節データ『ぼくのともだ／ちー』の部分にデータ『１』が存在する。
【００３４】
このようにしてユーザによる音楽条件の設定及び歌詞データの入力が行われると、ＣＰＵ１はユーザ音楽条件、歌詞データ及び予め内部に有する内部音楽条件に従って、ステップ１９〜ステップ２３の処理を行い、自動的に曲を作成する。電子楽器内部に予め設定されている内部音楽条件としては、ジャンル別・作曲家別などの特徴を出すために作用するもの、歌いやすいリズムパターンとなるように作用するもの、歌いやすいピッチパターンとなるように作用するもの、クライマックスに応じてピッチを高め、音長を長め、跳躍となるように作用するもの、韻を踏む箇所が設定されている場合には、その部分で相似のピッチパターン・リズムパターンとなるように作用するものなどがある。
【００３５】
ステップ１９では、上述のようにして入力された歌詞データに基づいてＣＰＵ１が小節の区切り決定処理を実行する。すなわち、ユーザは歌詞データとして音節データとフレーズ分割記号の設定は必ず行う必要があるが、それ以外の歌詞データ（小節線記号「／」、長音記号「ー」、アクセント記号「・」、イントネーション、クライマックスなど）に関しては、任意である。従って、このステップ１９では、入力された歌詞データに基づいて１フレーズ区間における音節データを少なくとも２小節に区切るための処理を行う。図９及び図１０はこの小節の区切り決定処理の詳細を示す図である。この小節の区切り決定処理は次のようなステップで順番に実行される。
ステップ９１：フレーズ番号レジスタＦＮに『１』をセットする。
ステップ９２：歌詞メモリからフレーズ番号レジスタＦＮに対応したフレーズを構成する全ての歌詞データを読み出す。例えば、図８（Ａ）の歌詞メモリの場合には、フレーズ番号『１』の歌詞データとして、アドレス『１』の小節線記号『／』からアドレス『１５』の小節線記号『／』までの１５個の歌詞データが読み出される。
【００３６】
ステップ９３：前記ステップ９２で読み出された歌詞データの数、すなわち１フレーズ中に存在する歌詞データの数をデータ数レジスタＳＮに格納する。
ステップ９４：変数レジスタＣに『１』にセットする。
ステップ９５：変数レジスタＣの格納値に対応するＣ番目の歌詞データを読み出す。
ステップ９６：前記ステップ９５で読み出された歌詞データが小節線記号『／』であるかどうかを判定し、小節線記号『／』（ＹＥＳ）の場合はステップ９７に進み、そうでない（ＮＯ）場合はステップ９８に進む。
ステップ９７：ユーザによって小節線の位置が指定されているので、その小節線記号『／』のアドレス位置を小節線の区切りとする。
【００３７】
ステップ９８：前記ステップ９５で読み出された歌詞データが長音記号『ー』であるかどうかを判定し、長音記号『ー』（ＹＥＳ）の場合はステップ９９に進み、そうでない（ＮＯ）場合はステップ９Ａに進む。
ステップ９９：長音記号『ー』の前の歌詞データ（音節データ）の直前を小節の区切りの候補とする。
ステップ９Ａ：前記ステップ９５で読み出された歌詞データ（音節データ）にアクセントの指定有りかどうかを判定し、アクセント指定有り（ＹＥＳ）の場合はステップ９Ｂに進み、そうでない（ＮＯ）場合はステップ９Ｃに進む。
ステップ９Ｂ：アクセント指定有りの歌詞データの直前を小節の区切りの候補とする。
ステップ９Ｃ：次の歌詞データを読み出すために変数レジスタＣを『１』だけインクリメント処理する。
ステップ９Ｄ：変数レジスタＣの値がデータ数レジスタＳＮの値よりも大きいかどうかを判定し、大きい（ＹＥＳ）場合にはフレーズ内の全歌詞データの読み出しが終了したことを意味するので、図１０のステップ１０１に進み、それ以下の場合にはまだフレーズ内に歌詞データが残っているので、ステップ９５にリターンし、同様の処理を次の歌詞データに対しても行う。
【００３８】
ステップ１０１：この実施の形態では１フレーズを２小節で構成することを前提としているので、小節線記号『／』が２個以上あるかどうかを判定し、２個以上（ＹＥＳ）の場合はそのままステップ１０８にジャンプし、１個又は０個（ＮＯ）の場合はステップ１０２〜ステップ１０６の処理を行い、小節線を決定する。
ステップ１０２：前記ステップ１０１で小節線記号『／』の数が１個又は０個だと判定されたので、ここでは、小節線記号『／』の数が１個かどうかを判定し、１個（ＹＥＳ）の場合はステップ１０３に進み、０個（ＮＯ）の場合はステップ１０４に進む。
ステップ１０３：前記ステップ１０２で１フレーズ内に存在する小節線記号『／』の数は１個だと判定されたので、ここでは、ステップ９９又はステップ９Ｂの処理によって小節の区切りの候補とされた箇所が２個以上の場合にはその中のいずれか１つをランダムに選択し、小節線記号『／』で決定された小節線１箇所とランダムに抽出された１箇所との合計２箇所を小節線の位置と決定し、候補が１個の場合にはそこを小節線の位置と決定し、１個も存在しない場合には音節データの区切りからランダムに１箇所を抽出し、そこを小節線の位置と決定する。
【００３９】
ステップ１０４：前記ステップ１０２で１フレーズ内に小節線記号『／』が存在しないと判定されたので、今度はステップ９９又はステップ９Ｂの処理によって小節の区切りの候補とされた箇所が２個以上存在するかどうを判定し、２個以上存在する（ＹＥＳ）場合はステップ１０５に進み、１個又は０個（ＮＯ）の場合はステップ１０６に進む。
ステップ１０５：前記ステップ１０４で小節線記号『／』は１フレーズ内に存在しないが、小節線候補が２個以上存在すると判定されたので、ここでは、その２個の中から最初と最後の２つを小節線の位置と決定する。
ステップ１０６：前記ステップ１０４で１フレーズ内に存在する小節線候補の数が１個又は０個だと判定されたので、ここでは、小節線の候補が１個の場合にはそこと、音節データの区切りからランダムに抽出した箇所の２箇所を小節線の位置と決定し、小節線の候補が０個の場合には音節データの区切りからランダムに２箇所を抽出し、そこを小節線の位置と決定する。
【００４０】
ステップ１０７：前記ステップ１０３、ステップ１０５又はステップ１０６のいずれかの処理によって決定された２箇所の小節線の位置に小節線記号『／』を挿入格納する。
ステップ１０８：フレーズ番号レジスタＦＮの格納値が最後のフレーズに達したかどうかを判定し、最後のフレーズ（ＹＥＳ）の場合はリターンし、小節の区切り決定処理を終了し、最後のフレーズでない（ＮＯ）場合はステップ１０９に進む。
ステップ１０９：前記ステップ１０８で最後のフレーズでないと判定されたので、フレーズ番号レジスタＦＮをインクリメント処理し、ステップ９２にリターンし、次のフレーズに対して同様の処理を繰り返し実行する。
【００４１】
以上のようなステップ１９の小節の区切り決定処理が終了したら、ＣＰＵ１は今度は、ステップ２０の各フレーズの先頭と最後の音節の拍を決定する処理を実行する。図１１及び図１２はこの各フレーズの先頭と最後の音節の拍を決定する処理の詳細を示す図である。この処理は次のようなステップで順番に実行される。
ステップ１１１：フレーズ番号レジスタＦＮに『１』をセットする。
ステップ１１２：前記ステップ７２と同様にフレーズ番号レジスタＦＮに対応するフレーズを構成する全ての歌詞データを歌詞メモリから読み出す。
【００４２】
ステップ１１３：図６に示すような曲の進行に対応した音楽条件の設定画面で設定されたリズムパターンの対比／模倣の欄にリズムパターンを模倣する旨の指示があるかどうかを判定し、模倣の指示有り（ＹＥＳ）の場合はステップ１１４に進み、指示無し（ＮＯ）の場合はステップ１１５に進む。
ステップ１１４：前記ステップ１１３でリズムパターンの模倣指示有りと判定されたので、ここでは、その模倣の対象となるフレーズの先頭の拍を当フレーズの先頭拍に決定する。
【００４３】
ステップ１１５：図６に示すような曲の進行に対応した音楽条件の設定画面で設定されたリズムパターンのフレーズ先頭の遅れ指定の欄に遅れ指定有りか無しかを判定し、指定有り（ＹＥＳ）の場合はステップ１１６に進み、指定無し（ＮＯ）の場合は図１２のステップ１２０に進む。
ステップ１１６：前記ステップ１１５でフレーズ先頭の遅れ指定有りと判定されたので、ここでは、図５の曲全体の音楽条件設定画面における「１拍目の遅れの頻度」の欄の設定内容が『無』かどうかを判定し、『無』（ＹＥＳ）の場合は図１２のステップ１２０に進み、『中』又は『多』（ＮＯ）の場合はステップ１１７に進む。
【００４４】
ステップ１１７：前記ステップ１１６で遅れ頻度は『中』又は『多』であると判定されたので、ここでは、遅れ頻度が『多』であり、かつ、ランダムジェネレータの値が『２０』以上であるかどうかを判定し、ＹＥＳの場合はステップ１１９に進み、ＮＯの場合はステップ１１８に進む。ランダムジェネレータは『０』〜『９９』の値をランダムに発生する乱数発生器である。従って、遅れ頻度が『多』の場合にはこのステップでＹＥＳと判定される確率は８０パーセントとなる。
ステップ１１８：前記ステップ１１７でＮＯ判定されたので、今度は、遅れ頻度が『中』であり、かつ、ランダムジェネレータの値が『５０』以上であるかどうかを判定し、ＹＥＳの場合はステップ１１９に進み、ＮＯの場合は図１２のステップ１２０に進む。従って、遅れ頻度が『中』の場合にはこのステップでＹＥＳと判定される確率は５０パーセントとなる。
このようにして、遅れ頻度『多』、『中』に応じて当該フレーズの１拍目を遅らすかどうかを決定することができる。なお、この『２０』、『５０』の値は一例であり、ユーザが任意に設定してもよいことは言うまでも無い。
【００４５】
ステップ１１９：前記ステップ１１７又はステップ１１８でＹＥＳと判定されたので、当該フレーズの１拍目を遅らすために、第１拍表以外からランダムに拍（表／裏）を決定する。
ステップ１２０：前記ステップ１１５でフレーズ先頭の遅れ無し、前記ステップ１１６でフレーズ遅れ頻度が『無』、又は前記ステップ１１７及びステップ１１８でＮＯと判定されたので、ここでは、前のフレーズの余りの拍が有るかどうかを判定し、余りの拍が存在する（ＹＥＳ）場合はステップ１２２に進み、余りの拍がない（ＮＯ）場合はステップ１２１に進む。
ステップ１２１：前記ステップ１１６でフレーズ遅れ頻度『無』（ＹＥＳ）と判定され、前記ステップ１２０で前フレーズの余りの拍無し（ＮＯ）と判定されたので、当フレーズの１拍目は遅れさせないようにするため、第１拍の表に拍を決定する。
ステップ１２２：前記ステップ１１６でフレーズ遅れ頻度『無』（ＹＥＳ）と判定されたが、前記ステップ１２０で前フレーズの余りの拍数が有ると判定されたので、その余りの拍を含み当フレーズの第１拍目から第４拍目の範囲内でランダムに拍（表／裏）を決定する。
【００４６】
ステップ１２３：このようにして先頭の音節の拍が決定したので、ここでは、先頭の音節の拍に応じて当フレーズの最後の音節の拍を決定する。すなわち、最後の音節が占有する拍数は、当フレーズの先頭の音節が属する小節の当フレーズの占有する拍数の余りの拍数までとする。例えば、先頭の音節が属する小節の拍数が３拍裏の場合には余りの拍数は３拍表となり、３拍表の場合には余りの拍数は２拍裏となる。
ステップ１２４：決定された先頭と最後の拍を歌詞メモリの対応する音節データのアドレス位置に格納する。
ステップ１２５：フレーズ番号レジスタＦＮの格納値が最後のフレーズに達したかどうかを判定し、最後のフレーズ（ＹＥＳ）の場合はリターンし、先頭と最後の音節の拍決定処理を終了し、最後のフレーズでない（ＮＯ）場合はステップ１２６に進む。
ステップ１２６：前記ステップ１２５で最後のフレーズでないと判定されたので、フレーズ番号レジスタＦＮを１だけインクリメントし、ステップ１１２にリターンし、次のフレーズに対して同様の先頭と最後の音節の拍決定処理を繰り返し実行する。
【００４７】
図１３は、各フレーズの先頭と最後の音節の拍を決定する処理によって決定された拍の一例を示す図である。図において、例１は１フレーズを構成する歌詞データが図７（Ｄ）の「／はーるをあいする／ひとはー」に対応し、ステップ１２１によって先頭の音節が１拍表に決定し、ステップ１２３で最後の音節が４拍裏に決定した場合を示す。例２の候補１は、１フレーズを構成する歌詞データが「はる／をあいする／ひとは」である場合に、ステップ１１９又はステップ１２２によって先頭の音節が４拍表に決定し、ステップ１２３で最後の音節が３拍裏に決定した場合を示す。例２の候補２は、ステップ１１９又はステップ１２２によって先頭の音節が３拍裏に決定し、ステップ１２３で最後の音節が３拍表に決定した場合を示す。例２の候補３は、ステップ１１９又はステップ１２２によって先頭の音節が３拍表に決定し、ステップ１２３で最後の音節が２拍裏に決定した場合を示す。
【００４８】
このようにして音節の先頭と最後の拍が決定したら、今度はＣＰＵ１はステップ２１のリズムパターン生成処理を実行する。図１４はこのリズムパターン生成処理の詳細を示す図である。この処理は次のようなステップで順番に実行される。
ステップ１４１：フレーズ番号レジスタＦＮに『１』をセットする。
ステップ１４２：フレーズ番号レジスタＦＮに対応したフレーズを構成する全ての歌詞データを歌詞メモリから読み出す。
ステップ１４３：図６で選択又は設定された音楽条件に従ったフレーズ内の各発音タイミングにおける出現頻度に基づいて音符割当ての優先順位すなわち拍優先順位を決定する。
【００４９】
すなわち、図１５のような拍優先順位決定表を作成し、これに基づいて各音節の発音タイミングを決定する。すなわち、この拍優先順位決定表の各小節を構成する拍の表及び裏に対しては、頻度項目（拍重視・粗密条件・対比／模倣）の頻度が割り当てられる。図１５（Ａ）は図１３の例１の候補１に対応するものである。従って、図１３の例１の候補１においては、フレーズの先頭の音節は１拍表、最後の音節は４拍裏にあり、その合計小節数は『２』であるから、拍優先順位決定表は図１５（Ａ）のように第１小節の１拍表から第２小節の４拍裏に渡って作成される。
【００５０】
そして、頻度項目『拍重視』の欄には、ジャンルに応じて予め設定された重み『１』の頻度が使用される。図では、各拍の表及び裏の拍重視の頻度は１拍表が『８』で、１拍裏が『４』、２拍表が『６』、２拍裏が『２』、３拍表が『７』、３拍裏が『３』、４拍表が『５』、４拍裏が『１』である。各拍の表及び裏の拍重視の値と重み『１』とが乗算され、頻度合計に加えられる。なお、この拍重視の頻度に関してはユーザが自由に作成したものを用いてもよい。
【００５１】
頻度項目の『粗密条件』の欄には、図６に示すような音楽条件設定画面で選択又は設定された粗密の欄に対応した各拍の表及び裏の位置にフラグが設定される。この粗密条件の重みは『４』である。例えば、図６では楽節Ａの第１フレーズの第１小節及び第２小節の前半部分は密、後半部分は粗に設定されているので、図１５の拍優先順位決定表でも、第１小節及び第２小節の前半部分（すなわち１拍及び２拍の表及び裏）にフラグ『１』が設定される。粗密条件においてフラグの設定された各拍の表及び裏の頻度合計には重み『４』が加えられる。
【００５２】
項目頻度の『対比／模倣』の欄には、図３のステップ３７で検出されたリズムパターンに対応して各拍の表及び裏の位置にフラグが設定される。なお、図６に示すような音楽条件設定画面で、対比／模倣となる楽節が指定されている場合には、その指定された楽節のものがそのまま設定される。この対比／模倣の重みは『４』である。例えば、図６では、楽節Ａ，Ｂ，Ｃは対比／模倣の対象となる楽節が存在しないので、この拍優先順位決定表においてはステップ３７で検出されたリズムパターンに対応した位置にフラグが設定されるが、図では、ユーザが新たに作成した音楽条件設定画面に対応しているため、フラグの設定は存在しない。従って、音楽条件設定画面が既存曲から分析・抽出されたものか、対比／模倣の欄に対比又は模倣する旨の設定がある場合には、その対比／模倣の対象となる楽節の音符存在位置にフラグ『１』が設定される。対比／模倣においてフラグの設定された各拍の表及び裏の頻度合計には重み『４』が加えられる。
【００５３】
『頻度合計』の欄には、各頻度項目（拍重視、粗密条件及び対比／模倣）の頻度の合計が格納される。図では、１拍表の頻度合計は拍重視の『８』と粗密条件の『４』との合計値『１２』であり、１拍裏は『８』、２拍表が『１０』、２拍裏が『６』、３拍表が『７』、３拍裏が『３』、４拍表が『５』、４拍裏が『１』である。
『各小節毎の優先順位』の欄には、その小節内において頻度合計の大きい順に番号が付される。頻度合計が同じ値の場合には、先の方が優先される。図では、第１小節と第２小節は同じ優先順位であり、１拍表が優先順位『１』、１拍裏が優先順位『３』、２拍表が優先順位『２』、２拍裏が優先順位『５』、３拍表が優先順位『４』、３拍裏が優先順位『７』、４拍表が優先順位『６』、４拍裏が優先順位『８』となる。
【００５４】
図１５（Ｂ）は図１３の例２の候補３に対応するものである。従って、図１３の例２の候補３においては、フレーズの先頭の音節は３拍表、最後の音節は２拍裏にあり、その合計小節数は『２』であるから、拍優先順位決定表は図１５（Ｂ）のように第１小節の３拍表から第３小節の２拍裏に渡って作成される。
頻度項目『拍重視』、『粗密条件』、『対比／模倣』及び『頻度合計』の各欄の第１小節の３拍表から第３小節の２拍裏には、図１５（Ａ）と同じ頻度が設定される。そして、『各小節毎の優先順位』の欄には、その小節内において頻度合計の大きい順に番号が付される。従って、第１小節においては、３拍表が優先順位『１』で、３拍裏が優先順位『３』で、４拍表が優先順位『２』、４拍裏が優先順位『４』となる。第２小節においては、１拍表が優先順位『１』、１拍裏が優先順位『３』、２拍表が優先順位『２』、２拍裏が優先順位『５』、３拍表が優先順位『４』、３拍裏が優先順位『７』、４拍表が優先順位『６』、４拍裏が優先順位『８』となる。第３小節においては、１拍表が優先順位『１』、１拍裏が優先順位『３』、２拍表が優先順位『２』、２拍裏が優先順位『４』となる。
【００５５】
ステップ１４４：このようにして作成された拍優先順位表と、その小節における音節数に従って、各音節の発音タイミングを決定する。なお、歌詞データが長音記号『ー』の場合には、その長音記号『ー』の直前の音節データ以降の数区間（１〜４区間）にわたって発音タイミングの割当てを禁止する。この割当て禁止区間の大きさは１小節内の音節数によって変化する。
【００５６】
例えば、図１５（Ａ）のような拍優先順位表によれば、第１小節の音節データの数は７個である。従って、その小節内における優先順位『１』〜『７』の区間に発音タイミングが決定される。このとき、長音記号『ー』の直前の音節データ『は』以降の１区間には割当てが禁止されるので、長音記号『ー』の優先順位『３』を除く、優先順位『１』、『２』、『４』〜『８』の区間に発音タイミングが決定される。第２小節の場合は、音節データの数は３個で、長音記号『ー』を１個含むので、優先順位『１』〜『３』の区間に発音タイミングが決定される。図１５（Ｂ）のような拍優先順位表によれば、第１小節の音節データの数は２個で、長音記号『ー』を１個含むので、優先順位『１』及び『２』の区間に発音タイミングが決定される。第２小節の音節データの数は５個なので優先順位『１』〜『５』の区間に発音タイミングが決定される。第３小節の音節データの数は３個で、長音記号『ー』を１個含むので、優先順位『１』〜『３』の区間に発音タイミングが決定される。
【００５７】
ステップ１４５：前記ステップ１４４によって決定された発音タイミングに基づいてその音節データの音長を決定する。なお、必要に応じて休符も挿入する。この休符の挿入の頻度は図５の音楽形式設定画面の『メロディック／リズミック』のどちらか選択された方に応じて変化するようになっている。
【００５８】
例えば、図１５（Ａ）のような拍優先順位表によれば、第１小節の第１の音節『は』は、発音タイミングの割り当てられていない区間を含む形で、４分音符長に決定され、第２の音節『る』から第７の音節『る』までの音長は８分音符長に決定される。第２小節の第１の音節『ひ』と第２の音節『と』は８分音符長に決定され、第３の音節『は』は、発音タイミングの割り当てられていない区間（１〜４区間）を含む形で２分音符長に決定される。なお、この第３の音節『は』に関しては、休符の挿入状態に応じて４分音符長から付点２分音符長の範囲に決定されることがある。
【００５９】
また、図１５（Ｂ）のような拍優先順位表によれば、第１小節の第１の音節『は』と第２の音節『る』は４分音符長に決定され、第２小節の第１の音節『を』から第４の音節『す』は８分音符長に決定され、第５の音節『る』は４分音符長に決定される。なお、この第５の音節『る』に関しては休符の挿入状態に応じて４分音符長から２分音符長の範囲に決定されることがある。第３小節の第１の音節『ひ』と第２の音節『と』は８分音符長に、第３の音節『は』は、発音タイミングの割り当てられていない区間（１〜４区間）を含む形で２分音符長に決定される。この第３の音節『は』に関しては前述と同様に休符の挿入状態に応じて４分音符長から付点２分音符長の範囲のものに決定されることがある。
【００６０】
ステップ１４６：前記ステップ１４５の処理によって決定されたリズムパターンデータを曲メモリに格納する。すなわち、前記ステップ１４５の処理によって決定された各音節データに対する音長をデュレーションデータとして、ワーキングメモリ３内の曲メモリ領域に記憶する。図８（Ｂ）は図８（Ａ）の歌詞メモリ内の歌詞データに対して図１５（Ａ）のような拍優先順位表に従って決定されたリズムパターンの格納された曲メモリのデータ構成の一例を示す図である。すなわち、図８（Ａ）の歌詞メモリの内容が図１４のリズムパターン生成処理によって図８（Ｂ）のように変換される。図８（Ｂ）の曲メモリにおいては、図８（Ａ）の歌詞メモリの中から音節データと小節線記号だけが抽出された形になっている。抽出された音節データに対して図１４のリズムパターン生成処理によって決定された音長すなわちデュレーションデータが格納される。図では、デュレーションデータを音符で示したが、実際には音長に対応した数値やデュレーションタイムを示す数値などが格納される。なお、この曲メモリには、後述する処理によって各音節データに対してピッチデータ、ベロシティデータ及びボリュームなどが決定され、格納されるようになっている。
【００６１】
ステップ１４７：フレーズ番号レジスタＦＮの格納値が最後のフレーズに達したかどうかを判定し、最後のフレーズ（ＹＥＳ）の場合はリターンし、リズムパターン生成処理を終了し、最後のフレーズでない（ＮＯ）場合はステップ１４８に進む。
ステップ１４８：前記ステップ１４７で最後のフレーズでないと判定されたので、フレーズ番号レジスタＦＮを１だけインクリメントし、ステップ１４２にリターンし、次のフレーズに対して同様のリズムパターン生成処理を繰り返し実行する。
【００６２】
このようにしてリズムパターンが決定したら、今度はＣＰＵ１はステップ２２のピッチパターン生成処理を実行する。
図１６はこのピッチパターン生成処理の詳細を示す図である。このピッチパターン生成処理は次のようなステップで順番に実行される。
ステップ１６１：フレーズ番号レジスタＦＮに『１』をセットする。
ステップ１６２：フレーズ番号レジスタＦＮに対応したフレーズを構成する全ての歌詞データを歌詞メモリから読み出す。
ステップ１６３：読み出された音節データの数をデータ数レジスタＳＮに格納する。
【００６３】
ステップ１６４：フレーズ番号レジスタＦＮのフレーズの最初と最後の音節に対して音高（ピッチ）を決定する。すなわち、図６に示すような音楽条件設定画面の最初−最後音設定項目『フレーズの最初−最後音』内に指定された度数（I,II,III,IV,V,VI,VII）が存在する場合には、その度数に対応した音高に決定する。度数が指定されていない場合には、図６に示すような音楽条件設定画面の項目『感情の起伏』に基づいて決定する。但し、曲の最初の音高に関してはトニックコードの構成音の中から選択する。なお、図６に示すような音楽条件設定画面には示していないが、前フレーズの最初の音との繋がりを指定する項目や前フレーズの最後の音との繋がりを指定することによって、対象とする音のピッチを基準として、当フレーズの最初のピッチを決定するようにしてもよい。
【００６４】
前記ステップ１６４でフレーズの最初と最後の音節に対する音高が決定されたので、このフレーズ内の残りの音節に対するピッチを決定するための処理をステップ１６５〜ステップ１６７で行う。
ステップ１６５：図６に示すような音楽条件設定画面のピッチパターン選択項目『フレーズのピッチパターン』にピッチパターンの指定が有るかどうかを判定し、指定有り（ＹＥＳ）の場合はステップ１６７に進み、指定無し（ＮＯ）の場合はステップ１６６に進む。
ステップ１６６：前記ステップ１６５でピッチパターンの指定無し（ＮＯ）と判定されたので、図６に示すような音楽条件設定画面の項目『感情の起伏』に示されたグラフィックパターンに最も類似したピッチパターンを図１７のピッチパターンのパターン群の中から選択する。ピッチパターンのパターン群は、全部で１６種類存在し、（Ａ）〜（Ｃ）の直線的旋律、（Ｄ）〜（Ｌ）の波状的旋律、（Ｍ）及び（Ｎ）の躍動的旋律、（Ｐ）及び（Ｑ）の和声的旋律の４種類に分類されている。この他にも種々のパターンを設けてもよいことはいうまでもない。また、タッチペンなどを用いてユーザが手書き入力した曲線をサンプリングして新たにピッチパターンとしてもよい。
【００６５】
ステップ１６７：前記ステップ１６５又はステップ１６６によって特定されたテンプレートに基づいて最初と最後の音節以外の（ＳＮ−２）個の音節に対するピッチを決定する。例えば、音節数が９個で、図１８のような形状のピッチパターンが特定されている場合には、そのピッチパターンを用いて第２の音節から第８の音節に対する音階を決定する。この場合、最初の音節と最後の音節はステップ１６４によって既に度数Ｉと度数Ｉ＋１に決定されているので、ここでは、最初と最後の音節以外の第２の音節から第８の音節までをこのピッチパターンに均等に割当て、最も近い音階にクオンタイズして音階を決定する。従って、図１８の場合には、第２、第４及び第７の音節は度数IVの音階となり、第３の音節は度数Ｖの音階となり、第５及び第６の音節は度数III の音階となり、第８の音節は度数VIの音階となる。
【００６６】
なお、このように最初と最後以外の音節をテンプレート上で均等に割り当てた場合、ピッチパターンの形状に相似しない場合がある。すなわち、図１９に示すように、音節数が６個で図１９（Ａ）のような形状のピッチパターンが特定された場合、最初と最後以外の４個の音節をこのテンプレート上で均等に割り当てると、その形状は元のテンプレート形状に相似したものとなる。ところが、同じテンプレートであっても、音節数が５個の場合には、最初と最後以外の３個の音節をこのテンプレートに均等に割り当てると、割当て後の形状は図１９（Ｂ）の曲線１７Ｂのように元のテンプレート形状に対して相似形ではなくなる。そこで、このような場合には、第２及び第３の音節の割当て位置を前方にずらして、曲線１７Ｃのようにテンプレート形状の前半部分の形状に対して相似形となるように動作する。なお、このように割当て位置をずらす音節やずらす方向などは、最小二乗法などの演算を用いて適宜算出すればよい。
【００６７】
このように、テンプレートに均等に割り当てる代わりに、図１９（Ｄ）のようにステップ２１で生成されたリズムパターンに応じてサンプリングを行ってもよい。この場合でも割当て後の形状が元のテンプレート形状に対して相似でなくなるような場合には、任意の音節の割当て位置をずらしたりすればよい。
また、ピッチパターンの振幅の度合いは、図６に示すような音楽条件設定画面の躍動／静寂設定項目『躍動／静寂』で設定された躍動／静寂パターンや図７（Ｇ）の編み掛け表示された音節データのクライマックス部分などに応じて決定される。すなわち、図１８のピッチパターンでは、振幅の上死点が音階Ｖ、下死点がIII であるが、その部分で躍動／静寂パターンが躍動側に位置していたり、クライマックスが設定されている場合には、その部分の振幅の度合いが大きくなり、上死点が音階VII 、下死点が音階Ｉとなったりする。また、躍動／静寂パターンが静寂側に位置する場合には、逆に振幅の度合いが小さくなる。
【００６８】
ステップ２３では、図７（Ｅ）のように音節データの所定の箇所に付されたアクセント記号「・」に応じてベロシティを決定し、それを図８（Ｂ）に示すように曲メモリの対応する音節データのベロシティに反映させる。図では、アクセント記号「・」の付されている音節データのベロシティが『５』となり、付されていない音節データのベロシティが『４』となっている。また、図６に示すような音楽条件設定画面で設定された曲全体の感情の起伏を表す曲線に応じてボリュームを決定し、それを図８（Ｂ）に示すように曲メモリの対応する音節データのボリュームに反映させる。図では、感情の起伏を表す曲線に応じてボリュームは『５』である。
【００６９】
ステップ２４では、ステップ１９〜ステップ２３の処理によってＣＰＵ１によって作成された曲をユーザがマニュアルで修正する処理である。ここでは、曲メモリから自動作曲された曲データを読み出し、それをディスプレイ１Ｂ上に表示させる。そして、曲の全体を通してリズムとピッチの修正作業をフレーズ内及び曲全体に渡って行い、必要により、曲データの修正を行う。例えば、フレーズ間の繋がりを歌いやすいように修正する。１フレーズが長すぎる場合には、途中に息継ぎを挿入する。高音部が長く続きすぎる場合にはその部分を修正する。リズムの急激に変化する部分を修正する。曲全体を通して、跳躍が多すぎないか、１つの曲としてまとまっているかなどを実際に曲を聞いてみて修正したりする。このようにしてマニュアル修正された曲データを再び曲メモリに格納する。
以上のようなステップ１７〜ステップ２４の一連の処理によって、ユーザの指定した歌詞に対応した曲を自動的に作曲することができる。
【００７０】
なお、上述の実施の形態では、音楽条件をユーザが記憶される場合について説明したが、既存の曲を分析し、そこから音楽条件を抽出するようにしてもよいし、抽出したものをユーザが再度変更できるようにしてもよい。
また、実施の形態では、音節データとして日本語を例に説明したが、これ以外の言語の場合にも同様に適用できることはいうまでもない。この場合、単母音、二重母音、破裂音、鼻音、側音、摩擦音、破擦音などの発音記号に基づいて音節データを決定し、決定された音節データに基づいて作曲を行えばよい。
なお、上述の実施の形態では、図６に示すような音楽条件設定画面における粗密設定項目『粗密』及び対比／模倣設定項目『対比／模倣』の設定方法として、単に発生頻度を密にするか粗にするか、対比／模倣するかしないかだけを設定する場合について説明したが、これに限らず、粗密及び対比／模倣をその度合いで設定してもよい。この場合、図１５の拍優先順位決定表における頻度項目の『粗密条件』及び『対比／模倣』の欄の数値を、その度合いに応じた値、例えば『１』〜『４』とすればよい。
【００７１】
【発明の効果】
以上の通り、この発明によれば、格別の音楽知識を持たないユーザーであっても気軽に自動作曲作業を行うことができる、という効果を奏する。また、ユーザーの作曲意図を容易に反映させることができるように、自動作曲を行うことができる、という効果を奏する。更には、１曲を通して区間毎に起伏に富んだメロディを生成することができる、という効果を奏する。
【図面の簡単な説明】
【図１】  この発明に係る自動作曲装置の一実施例に係るフローチャートの一例を示す図である。
【図２】  図１に示した自動作曲装置を内蔵した電子楽器の構成を示すハードブロック図である。
【図３】  図１の音楽的特徴の分析・抽出処理の前半部分の詳細を示す図である。
【図４】  図１の音楽的特徴の分析・抽出処理の後半部分の詳細を示す図である。
【図５】  曲全体に関する音楽的特徴の分析・抽出結果の一例を示す図である。
【図６】  音楽的特徴の分析・抽出結果の一例を曲の進行に従って示す図である。
【図７】  歌詞データを入力するための画面の一例を示す図である。
【図８】  図２のワーキングメモリ内における歌詞メモリ及び曲メモリのデータ構成を示す図であり、図８（Ａ）は歌詞メモリのデータ構成を図８（Ｂ）は曲メモリのデータ構成を示す。
【図９】  図１の小節の区切り決定処理の前半部分の詳細を示す図である。
【図１０】  図１の小節の区切り決定処理の後半部分の詳細を示す図である。
【図１１】  図１の各フレーズの先頭と最後の音節の拍を決定する処理の前半部分の詳細を示す図である。
【図１２】  図１の各フレーズの先頭と最後の音節の拍を決定する処理の後半部分の詳細を示す図である。
【図１３】  図１１及び図１２の各フレーズの先頭と最後の音節の拍を決定する処理によって決定された拍の一例を示す図である。
【図１４】  図１のリズムパターン生成処理の詳細を示す図である。
【図１５】  図１４のリズムパターン生成処理の中でフレーズ内の各発音タイミングにおける出現頻度を求め、音符割当ての優先順位を決定するための拍優先順位決定表の一例を示す図である。
【図１６】  図１のピッチパターン生成処理の詳細を示す図である。
【図１７】  図１６のピッチパターン生成処理の中で選択されるピッチパターンのパターン群の一例を示す図である。
【図１８】  図１６のピッチパターン生成処理の中で特定されたテンプレートに基づいて最初と最後の音節以外の（ＳＮ−２）個の音節に対するピッチを決定する処理の概念を示す図である。
【図１９】  図１６のピッチパターン生成処理の中で最初と最後以外の音節をテンプレート上で割り当てる場合の概念を示す図である。
【符号の説明】
１…ＣＰＵ、２…プログラムメモリ、３…ワーキングメモリ、４…演奏データメモリ、５…押鍵検出回路、６…スイッチ検出回路、７…表示回路、８…音源回路、９…鍵盤、１Ａ…テンキー＆キーボード＆各種スイッチ、１Ｂ…ディスプレイ、１Ｃ…サウンドシステム、１Ｄ…データ及びアドレスバス
【図１】
0003664126.tif 000002
【図２】
0003664126.tif 000003
【図３】
0003664126.tif 000004
【図４】
0003664126.tif 000005
【図５】
0003664126.tif 000006
【図６】
0003664126.tif 000007
【図７】
0003664126.tif 000008
【図８】
0003664126.tif 000009
【図９】
0003664126.tif 000010
【図１０】
0003664126.tif 000011
【図１１】
0003664126.tif 000012
【図１２】
0003664126.tif 000013
【図１３】
0003664126.tif 000014
【図１４】
0003664126.tif 000015
【図１５】
0003664126.tif 000016
【図１６】
0003664126.tif 000017
【図１７】
0003664126.tif 000018
【図１８】
0003664126.tif 000019
【図１９】
0003664126.tif 000020