JP3664126B2 - 自動作曲装置 - Google Patents

自動作曲装置 Download PDF

Info

Publication number
JP3664126B2
JP3664126B2 JP2001349772A JP2001349772A JP3664126B2 JP 3664126 B2 JP3664126 B2 JP 3664126B2 JP 2001349772 A JP2001349772 A JP 2001349772A JP 2001349772 A JP2001349772 A JP 2001349772A JP 3664126 B2 JP3664126 B2 JP 3664126B2
Authority
JP
Japan
Prior art keywords
phrase
section
pitch
song
information indicating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001349772A
Other languages
English (en)
Other versions
JP2002196757A (ja
Inventor
栄一郎 青木
敏夫 杉浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2001349772A priority Critical patent/JP3664126B2/ja
Publication of JP2002196757A publication Critical patent/JP2002196757A/ja
Application granted granted Critical
Publication of JP3664126B2 publication Critical patent/JP3664126B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、音楽に関する各種の条件に応じて自動的に楽曲を作成する自動作曲装置に関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータの普及に伴い、コンピュータを用いて楽器を演奏したり、作曲したり、編曲したり、音色を合成したりするコンピュータミュージックを用いて、誰でも音楽を自由に楽しめるようになってきた。特に、コンピュータを用いた作曲の分野では、音楽的な専門知識がなくても、コンピュータの指示に従い各種の音楽条件を入力設定するだけで簡単に作曲することができる。
また、最近では元となる曲のメロディを和声音と非和声音に分類し、非和声音をさらに分類することによってそのメロディの特徴を分析し、その分析結果とコード進行に従って新たなメロディを合成し、自動的に作曲を行うようなものが提案されている。
【0003】
【発明が解決しようとする課題】
ところが、従来のコンピュータミュージックにおける自動作曲は、予め入力設定された様々な音楽条件(例えばコード進行、音楽ジャンル、リズム種類など)を満たすように処理して作曲するものである。従って、通常の人的な作曲作業のように、先に作詞してから、後で作詞した歌詞に見合った曲を作曲するというようなことができなかった。
また、元となる曲のメロディの特徴を分析し、その分析結果に基づいて自動的に作曲するような自動作曲装置は、分析結果をそのまま利用するだけのものであり、分析結果に部分的に手を加えたとしても、加えた結果が自動作曲の過程でどのように作用するのかが明確でなかったため、部分的に手を加えたとしてもそれは単にランダムに分析結果を書き換えただけに過ぎず、操作者の意図する曲を自動的に作曲できるものではなかった。
【0004】
この発明は上述の点に鑑みてなされたもので、格別の音楽知識を持たないユーザーであっても気軽に自動作曲作業を行うことができる自動作曲装置を提供しようとするものである。また、ユーザーの作曲意図を容易に反映させることができるように、自動作曲を行うことができる自動作曲装置を提供しようとするものである。また、1曲を通して区間毎に起伏に富んだメロディを生成することのできる自動作曲装置を提供しようとするものである。
【0005】
【課題を解決するための手段】
この発明に係る自動作曲装置は、1つの曲を構成する複数の区間の各区間について、該区間内におけるリズムの特徴を示す情報を少なくとも含む曲テンプレート情報を提供する提供手段と、作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、前記曲テンプレート情報に含まれるリズムの特徴を示す情報と前記入力された各区間毎の音数を示す情報とを基に、各区間におけるリズムを決定する決定手段とを備える。各区間内におけるリズムの特徴を示す情報を少なくとも含む曲テンプレート情報を用いる一方で、各区間毎の音数を示す情報をユーザーによって入力し、これらに基づき各区間におけるリズムを決定するので、格別の音楽知識を持たないユーザーであっても気軽に自動作曲作業を行うことができ、また、ユーザーの作曲意図を容易に反映させることができるように、自動作曲を行うことができる。
この発明に係る別の観点に従う自動作曲装置は、1つの曲を構成する複数の区間の各区間について、該区間内におけるピッチの変動傾向を示す情報を少なくとも含む曲テンプレート情報を提供する提供手段と、作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、前記曲テンプレート情報に含まれるピッチの変動傾向を示す情報と前記入力された各区間毎の音数を示す情報とを基に、各区間におけるピッチ及びリズムを決定する決定手段とを備える。各区間内におけるピッチの変動傾向を示す情報を少なくとも含む曲テンプレート情報を用いる一方で、各区間毎の音数を示す情報をユーザーによって入力し、これらに基づき各区間におけるピッチ及びリズムを決定するので、格別の音楽知識を持たないユーザーであっても気軽に自動作曲作業を行うことができ、また、ユーザーの作曲意図を容易に反映させることができるように、自動作曲を行うことができる。更には、1曲を通して区間毎に起伏に富んだメロディを生成することができる。
この発明に係る更に別の観点に従う自動作曲装置は、1つの曲を構成する複数の区間の各区間について、該区間内におけるピッチの変動傾向を示す情報を少なくとも含む曲テンプレート情報を、複数の曲について夫々記憶したメモリ手段と、前記メモリ手段から所望の1つの曲テンプレート情報をユーザーによって選択して、該選択された曲テンプレート情報をバッファ記憶し、バッファ記憶した曲テンプレート情報の内容をユーザーの操作によって変更するテンプレートエディット手段と、作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、前記テンプレートエディット手段にバッファ記憶されている曲テンプレート情報と前記入力された各区間毎の音数を示す情報を基に、各区間におけるリズムとピッチを決定する音符決定手段とを備える。この場合も、格別の音楽知識を持たないユーザーであっても気軽に自動作曲作業を行うことができ、また、ユーザーの作曲意図を容易に反映させることができるように、自動作曲を行うことができ、更には、1曲を通して区間毎に起伏に富んだメロディを生成することができる。
【0006】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図2はこの発明に係る自動作曲装置を内蔵した電子楽器の構成を示すハードブロック図である。
電子楽器は、マイクロプロセッサユニット(CPU)1、プログラムメモリ2及びワーキングメモリ3からなるマイクロコンピュータによって制御されるようになっている。
CPU1は、この電子楽器全体の動作を制御するものである。このCPU1に対して、データ及びアドレスバス1Dを介してプログラムメモリ2、ワーキングメモリ3、演奏データメモリ(RAM)4、押鍵検出回路5、スイッチ検出回路6、表示回路7及び音源回路8がそれぞれ接続されている。
【0007】
プログラムメモリ2はCPU1の各種プログラム、各種データ、各種記号文字等を格納するものであり、リードオンリーメモリ(ROM)で構成されている。
ワーキングメモリ3は、演奏情報やCPU1がプログラムを実行する際に発生する各種データを一時的に記憶するものであり、ランダムアクセスメモリ(RAM)の所定のアドレス領域がそれぞれ割り当てられ、レジスタやフラグなどとして利用される。この発明に係る自動作曲装置の一実施例に係るコンピュータプログラムがプログラムメモリ2又はワーキングメモリ3に記憶されており、CPU1によって実行される。
演奏データメモリは、曲テンプレートやピッチパターン、リズムパターンなどのような演奏に関するデータを記憶するものである。
【0008】
鍵盤9は、発音すべき楽音の音高を選択するための複数の鍵を備えており、各鍵に対応してキースイッチを有しており、また必要に応じて押鍵速度検出装置や押圧力検出装置等のタッチ検出手段を有している。
押鍵検出回路5は、発生すべき楽音の音高を指定する鍵盤9のそれぞれの鍵に対応して設けられた複数のキースイッチからなる回路を含んで構成されており、新たな鍵が押圧されたときはキーオンイベントを出力し、鍵が新たに離鍵されたときはキーオフイベントを出力する。また、鍵押し下げ時の押鍵操作速度又は押圧力等を判別してタッチデータを生成する処理を行い、生成したタッチデータをベロシティデータとして出力する。このようにキーオン、キーオフイベント及びベロシティなどのデータはMIDI規格で表現されておりキーコードと割当てチャンネルを示すデータも含んでいる。
【0009】
テンキー&キーボード&各種スイッチ1Aは、既存曲を音楽的特徴を分析及び抽出するための分析スイッチや分析及び抽出結果に基づいて自動的に作曲を行うための編曲スイッチ、数値データ入力用のテンキーや文字データ入力用のキーボード、及び自動作曲に関する各種の音楽条件を入力するための各種の操作子を含んで構成される。なお、この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含むが、その詳細については公知なので説明を省略する。
スイッチ検出回路6は、テンキー&キーボード&各種スイッチ1Aの各操作子の操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス1Dを介してCPU1に出力する。
表示回路7はCPU1の制御状態、設定データの内容等の各種の情報をディスプレイ1Bに表示するものである。ディスプレイ1Bは液晶表示パネル(LCD)やCRT等から構成され、表示回路7によってその表示動作を制御されるようになっている。
このテンキー&キーボード&各種スイッチ1A及びディスプレイによってGUI(Graphical User Interface)が構成される。
【0010】
音源回路8は、複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス1Dを経由して与えられた演奏情報(MIDI規格に準拠したデータ)を入力し、このデータに基づき楽音信号を発生する。
音源回路8における楽音信号発生方式はいかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出すメモリ読み出し方式、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるFM方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるAM方式等の公知の方式を適宜採用してもよい。
音源回路8から発生された楽音信号は、図示しないアンプ及びスピーカからなるサウンドシステム1Cを介して発音される。
【0011】
次に、この発明に係る自動作曲装置の動作の一例を説明する。
図1は図2の電子楽器を自動作曲装置として動作させる場合のフローチャートの一例を示す図である。この自動作曲装置は、ステップ12〜ステップ15の処理によって既存曲の音楽的特徴の分析及び抽出を行い、その分析・抽出結果を曲テンプレートとして記憶する。そして、自動作曲装置はステップ17〜ステップ24の処理によって記憶されている曲テンプレートにユーザが適宜修正を加え、修正の加えられたものに基づいて自動的に作曲を行うようになっている。
【0012】
以下、図1のフローチャートに従って、この発明に係る自動作曲装置の動作例を説明する。
ステップ11では、テンキー&キーボード&各種スイッチ1A上の分析スイッチがオン操作されたかどうかを判定し、オン操作有り(YES)の場合はステップ12〜ステップ15の処理を行い、オン操作無し(NO)の場合はステップ16にジャンプする。
ステップ12では、既存曲の楽譜情報を取り込む。例えば、既存曲の曲名、曲形式、ジャンル、メロディ、コード進行、歌詞、調、拍子、テンポ、小節線やフレーズの区切りなどをGUI(テンキー&キーボード&各種スイッチ1A及びディスプレイ1B)や鍵盤9などを用いて取り込む。また、既存曲がMIDIデータとして取り込み可能な場合には、そのMIDIデータに基づいてメロディ、調、テンポなどを分析し、分析不可能な曲名、曲形式などについてはユーザがGUIを用いて入力する。
ステップ13では、前記ステップ12の処理によって取り込まれた既存曲の楽譜情報をワーキングメモリ3の所定領域に記憶する。
【0013】
ステップ14では、上述のようにして取り込まれた楽譜情報に基づいてCPU1が音楽的特徴の分析・抽出処理を行う。図3及び図4はこの音楽的特徴の分析・抽出処理の詳細を示す図である。なお、図3のステップ31〜ステップ3Bは楽譜情報を構成する各フレーズに対する処理であり、図4のステップ41〜ステップ4Aは楽譜情報全体に対する処理である。この音楽的特徴の分析・抽出処理は次のようなステップで順番に実行される。
ステップ31:ワーキングメモリ13から既存曲の楽譜情報を読み出し、その楽譜情報を構成するフレーズ数を検出し、それをフレーズ番号レジスタFNに格納する。
ステップ32:カウンタレジスタCNTに『1』をセットする。
ステップ33:カウンタレジスタCNTの値に対応するフレーズ番号を注目フレーズとし、そのフレーズに対してステップ34〜ステップ39の処理を行う。ステップ34〜ステップ36は楽譜情報からピッチに関する要素を分析・抽出する処理であり、ステップ37〜ステップ39はリズムに関する要素を分析・抽出する処理である。
【0014】
ステップ34:注目フレーズの最初の音高を基準として、そのフレーズのメロディを音高差のデータに変換する。
ステップ35:ステップ34で求められた音高差データに基づいてピッチパターンを検出する。例えば、フレーズ内の全ての音高差データを結んで得られた折れ線グラフをピッチパターンとしてもよい。しかしながら、この折れ線グラフだと、後述するピッチの対比/模倣の判定が複雑になるので、この実施の形態では、フレーズの最初及び最後の音高とフレーズ内の最高及び最低の音高との4つの音高を結んで得られた折れ線グラフをそのフレーズのピッチパターンとする。なお、フレーズの最初又は最後の音高が最高又は最低の音高に等しい場合には、2つの音高又は3つの音高をそれぞれ結んで得られる折れ線グラフをそのフレーズのピッチパターンとする。また、この他にも、全ての音高差データを結んで得られた折れ線グラフから極大及び極小となる音高を抽出し、その音高とフレーズの最初及び最後の音高とをそれぞれ結んで得られた折れ線グラフをそのフレーズのピッチパターンとしてもよい。
ステップ36:フレーズの最初と最後の音高を検出する。
【0015】
ステップ37:フレーズ内のリズムパターンから弾みとシンコペーションを除去し、原始リズムパターンを検出する。すなわち、取り込まれた楽譜情報のリズムパターンを直接そのフレーズの原始リズムパターンとしてもよいが、後述するリズムの対比/模倣の判定が複雑になるので、この実施の形態では、弾みとシンコペーションを検出するための検出パターンと、この検出パターンから弾みとシンコペーションの除去された基本パターンとの組を複数有し、フレーズのリズムパターンの中で検出パターンに一致した部分をその基本パターンにに書き換えることによって、フレーズ内のリズムパターンから弾みとシンコペーションを除去し、原始リズムパターンを作成している。
ステップ38:フレーズの前半部分と後半部分の音符数を比較し、そのフレーズの粗密状態を検出する。例えば、1フレーズが2小節で構成されている場合には、前半の1小節中に現れる音符数と後半の1小節中に現れる音符数とを比較し、その差が3個以上であれば、音符数の多い方を密とし、音符数の少ない方を粗とする。また、その差が2個以内の場合には、粗密ではなく、均等と判定する。
【0016】
ステップ39:フレーズの先頭に休符が存在するかどうか、すなわち、そのフレーズの1拍目は遅れているかどうかを判定する。
ステップ3A:カウンタレジスタCNTの値とフレーズ番号レジスタFNの値とが等しいかどうかを判定し、等しい(YES)場合には楽譜情報内の全てのフレーズに対してステップ33〜ステップ39の処理を行ったことを意味するので、図4のステップ41以下に進み、今度は楽譜情報全体に対する分析・抽出処理を行い、等しくない(NO)には、まず分析・抽出を行っていないフレーズが存在することを意味するので、ステップ3Bを経て、ステップ33にリターンする。
ステップ3B:前記ステップ3AでNOと判定されたので、カウンタレジスタCNTを『1』だけインクリメント処理して、ステップ33にリターンする。
【0017】
次に図4のステップ41〜ステップ4Aの楽譜情報全体に対する分析・抽出処理について順番に説明する。
ステップ41:全体の楽譜情報の中から最高音高と最低音高に基づいて楽譜情報全体の音域を検出する。
ステップ42:前記ステップ35で検出された折れ線グラフに基づいて各フレーズ間のピッチパターンが近似あるいは相似しているかどうかを検出する。この検出の結果、近似あるいは相似しているフレーズが存在する場合には、最先のフレーズに対してそれ以降のフレーズはピッチが対比/模倣していることとする。
【0018】
ステップ43:全体の楽譜情報の中から最もデュレーションタイムの短い音符(最短音符)と、最もデュレーションタイム長い音符(最長音符)を検出する。
ステップ44:前記ステップ37で検出された原始リズムパターンに基づいて各フレーズ間のリズムパターンが近似あるいは相似しているかどうかを検出する。この検出の結果、近似あるいは相似しているフレーズが存在する場合には、最先のフレーズに対してそれ以降のフレーズはリズムが対比/模倣していることとする。
ステップ45:前記ステップ39で検出された先頭に休符の存在するフレーズが全体の楽譜情報(曲全体)に占める割合(パーセント)を求め、その割合が0パーセントの場合には『無』、0パーセントより大きく80パーセント未満の場合には『中』、80パーセントより大きい場合には『多』とする。
ステップ46:前記ステップ37でシンコペーションの除去されたフレーズが全体の楽譜情報(曲全体)に占める割合(パーセント)を求め、その割合が0パーセントの場合には『無』、0パーセントより大きく80パーセント未満の場合には『中』、80パーセントより大きい場合には『多』とする。
【0019】
ステップ47:全体の楽譜情報の音高を平滑化してピッチカーブを検出する。例えば、各音高をスプライン曲線又はベジェ曲線で結び、それをピッチカーブとする。
ステップ48:全体の楽譜情報の音量値を平滑化して強弱カーブを検出する。例えば、各音符のベロシティ値をスプライン曲線又はベジェ曲線で結び、それを強弱カードとする。
ステップ49:前記ステップ47及びステップ48で検出されたピッチカーブと強弱カーブを加算したものを感情の起伏曲線とする。なお、ピッチカーブと強弱カーブを乗算したものや、両者を平均したものを感情の起伏曲線としてもよい。
ステップ4A:全体の楽譜情報がメロディックであるかリズミックであるかを検出する。例えば、テンポが所定値よりも大きい場合にはリズミックとし、小さい場合にはメロディックとする。また、デュレーションタイムの平均値が所定値よりも大きい場合にはメロディックとし、小さい場合にはリズミックとしてもよい。
【0020】
ステップ15では、上述のようにして分析・抽出された結果を曲テンプレートして演奏データメモリ4に記憶する。従って、演奏データメモリ4には、ユーザが独自に分析・抽出した結果が複数記憶されてることとなる。なお、特定のジャンルを代表するような曲に対して上述のような音楽的特徴の分析・抽出処理を行い、その結果を予め記憶しておいてもよい。
図5及び図6はその分析、抽出結果の一例を示す図である。
図5は曲全体に関する音楽的特徴の分析・抽出結果の一例を示す図である。この曲全体に関する音楽的特徴の分析・抽出結果は、曲の形式、全体の曲想、全体のリズム条件、全体のピッチ条件を記憶する項目からなる。
曲の形式を記憶する項目『形式』には、その曲の形式が例えば、「A−B−C−C’」や「A−A’−B−B’」などのような楽節パターンで記憶される。
【0021】
全体の曲想を記憶する項目『曲想』には、ジャンル記憶項目『ジャンル』、イメージ曲記憶項目『イメージ曲』、作曲家記憶項目『作曲家』及びメロディック/リズミック選択項目『メロディック/リズミック』などがある。
ジャンル記憶項目『ジャンル』には、作曲したい曲のジャンル名などが記憶される。図では「8ビート」が設定されているが、この他にも「ダンス&ポップス系(ラップ、ユーロビート、ポッフバラード)」、「ソウル系(ダンスファンク、ソウルバラード、R&B)」、「ロック系(ソフト8ビート、8ビート、ロックンロール)」、「ジャズ系(スィング、ジャズバラード、ジャズボサノバ)」、「ラテン系(ボサノバ、サンバ、ルンバ、ビギン、タンゴ、レゲエ)」、「マーチ系」、「演歌系」、「唱歌系」などのジャンル名が記憶される。
イメージ曲記憶項目『イメージ曲』には作曲したい曲に近いと思われる曲名が記憶される。作曲家記憶項目『作曲家』には、作曲したい曲の作曲家の氏名などが記憶される。メロディック/リズミック選択項目『メロディック/リズミック』には、図4のステップ49の分析・抽出結果が記憶される。各項目に記憶されている内容は自動作曲時にその特徴を表すようにピッチパターン及びリズムパターンに影響を与えるように作用する。
【0022】
全体のリズム条件を記憶する項目『リズム』には、拍子記憶項目『拍子』、テンポ記憶項目『テンポ』、最短音記憶項目『最短音』、1拍目の遅れの頻度記憶項目『1拍目の遅れの頻度』及びシンコペーションの頻度記憶項目『シンコペーションの頻度』などがある。
拍子記憶項目『拍子』にはその曲の拍子が記憶される。図では、「4/4」が記憶されている。テンポ記憶項目『テンポ』にはその曲のテンポをメトロノーム記号や速度標語などで表したものが記憶される。図では、1分間の4分音符の拍数を120とするメトロノーム記号が記憶されている。最短音記憶項目『最短音』には、図4のステップ43で検出された最もデュレーションタイムの小さな音符が記憶される。図では8分音符が記憶されている。1拍目の遅れの頻度記憶項目『1拍目の遅れの頻度』には、図4のステップ45で検出された1拍目が遅れる頻度が「無/中/多」の中から選択的に記憶される。シンコペーションの頻度記憶項目『シンコペーションの頻度』には、図4のステップ46で検出されたシンコペーションの頻度が「無/中/多」の中から選択的に記憶される。
【0023】
全体のピッチ条件を記憶する項目には、音域記憶項目『音域』及び調記憶項目『調』などがある。音域記憶項目『音域』には図4のステップ41で検出された音域が最高音高及び最低音高のキーコード名で記憶される。図では、「A2〜E4」が記憶されている。ここに記憶されている音域は、自動作曲時のピッチパターンの生成に影響を与える。調記憶項目『調』には図1のステップ12で分析された調がそのコード名で記憶される。図では、「Fm(ヘ短調)」が記憶されている。ここに記憶されている調は、自動作曲時の音階の生成に影響を与える。
【0024】
図6は音楽的特徴の分析・抽出結果の一例を曲の進行に従って示す図である。図6は図5の曲形式の各楽節に対応しており、曲全体の感情の起伏、各楽節を構成するフレーズ毎に分析・抽出されたピッチ及びリズムに関する音楽的特徴を記憶するようになっている。
曲全体の感情の起伏を記憶する項目『感情の起伏』には、ステップ49で得られたその曲の感情の起伏を表す曲線が記憶される。ここで記憶された感情の起伏曲線は自動作曲時のピッチパターン、リズムパターン及びボリュームに影響を与える。
【0025】
各楽節におけるフレーズ毎のピッチに関する記憶項目には、ピッチパターン記憶項目『フレーズのピッチパターン』、最初−最後音記憶項目『フレーズの最初−最後音』、躍動/静寂記憶項目『躍動/静寂』及び対比/模倣記憶項目『対比/模倣』などがある。ピッチパターン記憶項目『フレーズのピッチパターン』には、図3のステップ35で分析・抽出されたピッチパターンが記憶される。ここに記憶されたピッチパターンは、前記感情の起伏を表す曲線と乗算されて全体の抑揚に影響を与えるようになっている。
【0026】
最初−最後音記憶項目『フレーズの最初−最後音』には、図3のステップ36で分析・抽出された各フレーズの最初の音高と最後の音高がその度数(I,II,III,IV,V,VI,VII)で記憶される。躍動/静寂記憶項目『躍動/静寂』には、曲全体に渡る躍動/静寂の度合いが曲線で記憶される。この躍動/静寂の度合いを示す曲線は、各フレーズのピッチの平均値、図3のステップ37で除去された弾み及びシンコペーションの数、図3のステップ34で検出された音高差の各フレーズ毎の平均値、またはこれらの各値を種々演算した結果をスプライン曲線又はベジェ曲線で結んだものを採用する。対比/模倣記憶項目『対比/模倣』には、図4のステップ42で検出されたピッチ対比/模倣の対象となる楽節が記憶される。図では、第3楽節「C」と第4楽節「C’」が近似あるいは相似しているので、第4楽節「C’」の対比/設定項目の前半部分に「Cの前半に模倣」、後半部分に「Cの後半に模倣」が記憶されている。この他にも、歌詞のイントネーションを重視し、ピッチをその歌詞の持つイントネーションと相似するように作用させるかどうかの項目を設けてもよい。
【0027】
各楽節におけるフレーズ毎のリズムに関する記憶項目には、粗密記憶項目『粗密』、先頭の遅れ指定項目『フレーズ先頭の遅れ指定』、対比/模倣記憶項目『対比/模倣』及びシンコペーション指定項目『シンコペーション指定』などがある。粗密記憶項目『粗密』には、図3のステップ38で検出されたフレーズの粗密パターンが記憶される。図では、密の場合に編み掛け表示され、粗や均等の場合には何も表示されない。先頭の遅れ指定項目『フレーズの先頭の遅れ指定』には、図3のステップ39で検出されたフレーズ先頭に休符が有るのか無いのかが記憶される。図では、第3楽節「C」及び第4楽節の前半のフレーズで遅れ有り、それらの後半のフレーズで遅れ無しが記憶されている。対比/模倣記憶項目『対比/模倣』には、前述のピッチの場合と同様に対比/模倣される楽節が記憶される。シンコペーション指定項目『シンコペーション指定』には、図3のステップ37でシンコペーションが除去されたかどうかを示す『有』又は『無』が記憶される。
【0028】
次に、ステップ16では、テンキー&キーボード&各種スイッチ1A上の編集スイッチがオン操作されたかどうかを判定し、オン操作有り(YES)の場合はステップ17〜ステップ24の自動作曲処理を行い、オン操作無し(NO)の場合は終了する。すなわち、編集スイッチをオン操作することによって電子楽器を自動作曲装置として動作させることができる。従って、編集スイッチがオン操作された場合にはステップ17〜ステップ24の処理に従った自動作曲が行われるようになる。
ステップ16で、YESと判定され、電子楽器が自動作曲装置として動作するようになると、まず、ユーザは図1のステップ17の段階で音楽条件を設定し、ステップ18の段階で歌詞を入力する必要がある。ユーザが音楽条件を設定し、歌詞を入力すると、今度はCPU1がユーザの設定したユーザ音楽条件、歌詞及び予め内部に有する内部音楽条件に従って、ステップ19〜ステップ23の処理を行い、自動的に曲を作曲する。そして、最後のステップ24の段階で、自動的に作成された曲の修正をユーザが行うことによって、最終的な曲を完成することができる。
【0029】
まず、ステップ17において、ユーザはGUI(テンキー&キーボード&各種スイッチ1A及びディスプレイ1B)を用いて、図5及び図6に示したものと同じ画面(以下、音楽条件設定画面とする)の各項目にデータを入力することよって、ユーザ音楽条件を設定する。もちろん、この音楽条件設定画面は図5及び図6のような既存曲から分析・抽出された結果を演奏データメモリ4から読み出してそのまま使用してもよいし、読み出したものをユーザが適宜エディットしてもよいし、ユーザ自身で別途新たに作成してもよいことはいうまでもない。
次に、ステップ18において、ユーザはGUI(テンキー&キーボード&各種スイッチ1A及びディスプレイ1B)を用いて、図7に示すような画面上で歌詞データを入力する。
図7は歌詞データを入力するための画面の一例を示す図である。
図では、歌詞データを入力するための画面として、前述の曲形式で設定された楽節に対応した楽節記号の『A』と『B』だけが表示されている。従って、ユーザは楽節記号の右側に、作曲の対象となる歌詞に関する音節データ、フレーズ分割記号、小節線記号、長音記号などから構成される歌詞データを順次入力する。ここでは、各楽節の1行分が4小節に相当する。
【0030】
フレーズ(メロディとして1塊となる区間)を指定するために、そのフレーズ分割点に対応する位置に図7(B)のようなスペース記号(図では三角形記号「△」で示してある)を入力する。このスペース記号がフレーズ分割記号となる。図7(C)のように小節の区切りを指定するために小節線の位置に小節線記号「/」を入力することもできる。
図7(D)のように長音記号「ー」を音節データの後に入力することもできる。この長音記号は「ーーーー」のように連続して複数個繋げることによってその音節データに割り当てられる音符の音長を制御することができる。
【0031】
図7(E)のように音節データの所定の箇所にアクセント記号「・」を付与することもできる。このアクセント記号の付与された箇所のピッチ及びベロシティは、以後の自動作曲時において他の音節データのものよりもやや高めに設定されるようになる。
図7(F)のように音節データのイントネーションを折れ線で入力することもできる。
図7(G)のようにクライマックスとなる部分の音節データを編み掛け表示することもできる。
なお、この実施の形態では、音節データの入力と、フレーズ分割記号の設定は必ず行う必要があるが、これ以外の小節線記号「/」、長音記号「ー」、アクセント記号「・」、イントネーション、クライマックスなどに関してはユーザが任意に指定することができる。また、これ以外にも文節の区切りや韻を踏む箇所などを設定してもよい。
【0032】
このようにして入力された歌詞データは、ワーキングメモリ3内の歌詞メモリ領域に記憶される。図8(A)はこの歌詞メモリ領域の図7(D)〜(G)に対応した歌詞データの構成例を示す図である。すなわち、図7(D)のように入力された音節データ、小節線記号、フレーズ分割記号、長音記号などの歌詞データは図8(A)のようにアドレスに順番記憶される。例えば、アドレス『1』には小節線記号『/』、アドレス『2』には音節データ『は』、アドレス『3』には長音記号『ー』、アドレス『4』には音節データ『る』などのように記憶されている。
【0033】
図7(E)のようにアクセントの付された音節データのアドレス位置には、アクセント有りを示すデータ『1』が記憶され、アクセントの付されていない音節データのアドレス位置にはアクセント無しを示すデータ『0』が記憶される。
図7(F)のようにイントネーションの入力に対応して、音節データのアドレス位置には、折れ線に対応したデータ『高』、『中』、『低』が記憶される。
また、図7(G)のようにクライマックスの指定された音節データのアドレス位置にはクライマックス指定を示すデータ『1』が記憶される。なお、図8(A)では、このクライマックス指定を示すデータ『1』は図示されていないが、音節データ『ぼくのともだ/ちー』の部分にデータ『1』が存在する。
【0034】
このようにしてユーザによる音楽条件の設定及び歌詞データの入力が行われると、CPU1はユーザ音楽条件、歌詞データ及び予め内部に有する内部音楽条件に従って、ステップ19〜ステップ23の処理を行い、自動的に曲を作成する。電子楽器内部に予め設定されている内部音楽条件としては、ジャンル別・作曲家別などの特徴を出すために作用するもの、歌いやすいリズムパターンとなるように作用するもの、歌いやすいピッチパターンとなるように作用するもの、クライマックスに応じてピッチを高め、音長を長め、跳躍となるように作用するもの、韻を踏む箇所が設定されている場合には、その部分で相似のピッチパターン・リズムパターンとなるように作用するものなどがある。
【0035】
ステップ19では、上述のようにして入力された歌詞データに基づいてCPU1が小節の区切り決定処理を実行する。すなわち、ユーザは歌詞データとして音節データとフレーズ分割記号の設定は必ず行う必要があるが、それ以外の歌詞データ(小節線記号「/」、長音記号「ー」、アクセント記号「・」、イントネーション、クライマックスなど)に関しては、任意である。従って、このステップ19では、入力された歌詞データに基づいて1フレーズ区間における音節データを少なくとも2小節に区切るための処理を行う。図9及び図10はこの小節の区切り決定処理の詳細を示す図である。この小節の区切り決定処理は次のようなステップで順番に実行される。
ステップ91:フレーズ番号レジスタFNに『1』をセットする。
ステップ92:歌詞メモリからフレーズ番号レジスタFNに対応したフレーズを構成する全ての歌詞データを読み出す。例えば、図8(A)の歌詞メモリの場合には、フレーズ番号『1』の歌詞データとして、アドレス『1』の小節線記号『/』からアドレス『15』の小節線記号『/』までの15個の歌詞データが読み出される。
【0036】
ステップ93:前記ステップ92で読み出された歌詞データの数、すなわち1フレーズ中に存在する歌詞データの数をデータ数レジスタSNに格納する。
ステップ94:変数レジスタCに『1』にセットする。
ステップ95:変数レジスタCの格納値に対応するC番目の歌詞データを読み出す。
ステップ96:前記ステップ95で読み出された歌詞データが小節線記号『/』であるかどうかを判定し、小節線記号『/』(YES)の場合はステップ97に進み、そうでない(NO)場合はステップ98に進む。
ステップ97:ユーザによって小節線の位置が指定されているので、その小節線記号『/』のアドレス位置を小節線の区切りとする。
【0037】
ステップ98:前記ステップ95で読み出された歌詞データが長音記号『ー』であるかどうかを判定し、長音記号『ー』(YES)の場合はステップ99に進み、そうでない(NO)場合はステップ9Aに進む。
ステップ99:長音記号『ー』の前の歌詞データ(音節データ)の直前を小節の区切りの候補とする。
ステップ9A:前記ステップ95で読み出された歌詞データ(音節データ)にアクセントの指定有りかどうかを判定し、アクセント指定有り(YES)の場合はステップ9Bに進み、そうでない(NO)場合はステップ9Cに進む。
ステップ9B:アクセント指定有りの歌詞データの直前を小節の区切りの候補とする。
ステップ9C:次の歌詞データを読み出すために変数レジスタCを『1』だけインクリメント処理する。
ステップ9D:変数レジスタCの値がデータ数レジスタSNの値よりも大きいかどうかを判定し、大きい(YES)場合にはフレーズ内の全歌詞データの読み出しが終了したことを意味するので、図10のステップ101に進み、それ以下の場合にはまだフレーズ内に歌詞データが残っているので、ステップ95にリターンし、同様の処理を次の歌詞データに対しても行う。
【0038】
ステップ101:この実施の形態では1フレーズを2小節で構成することを前提としているので、小節線記号『/』が2個以上あるかどうかを判定し、2個以上(YES)の場合はそのままステップ108にジャンプし、1個又は0個(NO)の場合はステップ102〜ステップ106の処理を行い、小節線を決定する。
ステップ102:前記ステップ101で小節線記号『/』の数が1個又は0個だと判定されたので、ここでは、小節線記号『/』の数が1個かどうかを判定し、1個(YES)の場合はステップ103に進み、0個(NO)の場合はステップ104に進む。
ステップ103:前記ステップ102で1フレーズ内に存在する小節線記号『/』の数は1個だと判定されたので、ここでは、ステップ99又はステップ9Bの処理によって小節の区切りの候補とされた箇所が2個以上の場合にはその中のいずれか1つをランダムに選択し、小節線記号『/』で決定された小節線1箇所とランダムに抽出された1箇所との合計2箇所を小節線の位置と決定し、候補が1個の場合にはそこを小節線の位置と決定し、1個も存在しない場合には音節データの区切りからランダムに1箇所を抽出し、そこを小節線の位置と決定する。
【0039】
ステップ104:前記ステップ102で1フレーズ内に小節線記号『/』が存在しないと判定されたので、今度はステップ99又はステップ9Bの処理によって小節の区切りの候補とされた箇所が2個以上存在するかどうを判定し、2個以上存在する(YES)場合はステップ105に進み、1個又は0個(NO)の場合はステップ106に進む。
ステップ105:前記ステップ104で小節線記号『/』は1フレーズ内に存在しないが、小節線候補が2個以上存在すると判定されたので、ここでは、その2個の中から最初と最後の2つを小節線の位置と決定する。
ステップ106:前記ステップ104で1フレーズ内に存在する小節線候補の数が1個又は0個だと判定されたので、ここでは、小節線の候補が1個の場合にはそこと、音節データの区切りからランダムに抽出した箇所の2箇所を小節線の位置と決定し、小節線の候補が0個の場合には音節データの区切りからランダムに2箇所を抽出し、そこを小節線の位置と決定する。
【0040】
ステップ107:前記ステップ103、ステップ105又はステップ106のいずれかの処理によって決定された2箇所の小節線の位置に小節線記号『/』を挿入格納する。
ステップ108:フレーズ番号レジスタFNの格納値が最後のフレーズに達したかどうかを判定し、最後のフレーズ(YES)の場合はリターンし、小節の区切り決定処理を終了し、最後のフレーズでない(NO)場合はステップ109に進む。
ステップ109:前記ステップ108で最後のフレーズでないと判定されたので、フレーズ番号レジスタFNをインクリメント処理し、ステップ92にリターンし、次のフレーズに対して同様の処理を繰り返し実行する。
【0041】
以上のようなステップ19の小節の区切り決定処理が終了したら、CPU1は今度は、ステップ20の各フレーズの先頭と最後の音節の拍を決定する処理を実行する。図11及び図12はこの各フレーズの先頭と最後の音節の拍を決定する処理の詳細を示す図である。この処理は次のようなステップで順番に実行される。
ステップ111:フレーズ番号レジスタFNに『1』をセットする。
ステップ112:前記ステップ72と同様にフレーズ番号レジスタFNに対応するフレーズを構成する全ての歌詞データを歌詞メモリから読み出す。
【0042】
ステップ113:図6に示すような曲の進行に対応した音楽条件の設定画面で設定されたリズムパターンの対比/模倣の欄にリズムパターンを模倣する旨の指示があるかどうかを判定し、模倣の指示有り(YES)の場合はステップ114に進み、指示無し(NO)の場合はステップ115に進む。
ステップ114:前記ステップ113でリズムパターンの模倣指示有りと判定されたので、ここでは、その模倣の対象となるフレーズの先頭の拍を当フレーズの先頭拍に決定する。
【0043】
ステップ115:図6に示すような曲の進行に対応した音楽条件の設定画面で設定されたリズムパターンのフレーズ先頭の遅れ指定の欄に遅れ指定有りか無しかを判定し、指定有り(YES)の場合はステップ116に進み、指定無し(NO)の場合は図12のステップ120に進む。
ステップ116:前記ステップ115でフレーズ先頭の遅れ指定有りと判定されたので、ここでは、図5の曲全体の音楽条件設定画面における「1拍目の遅れの頻度」の欄の設定内容が『無』かどうかを判定し、『無』(YES)の場合は図12のステップ120に進み、『中』又は『多』(NO)の場合はステップ117に進む。
【0044】
ステップ117:前記ステップ116で遅れ頻度は『中』又は『多』であると判定されたので、ここでは、遅れ頻度が『多』であり、かつ、ランダムジェネレータの値が『20』以上であるかどうかを判定し、YESの場合はステップ119に進み、NOの場合はステップ118に進む。ランダムジェネレータは『0』〜『99』の値をランダムに発生する乱数発生器である。従って、遅れ頻度が『多』の場合にはこのステップでYESと判定される確率は80パーセントとなる。
ステップ118:前記ステップ117でNO判定されたので、今度は、遅れ頻度が『中』であり、かつ、ランダムジェネレータの値が『50』以上であるかどうかを判定し、YESの場合はステップ119に進み、NOの場合は図12のステップ120に進む。従って、遅れ頻度が『中』の場合にはこのステップでYESと判定される確率は50パーセントとなる。
このようにして、遅れ頻度『多』、『中』に応じて当該フレーズの1拍目を遅らすかどうかを決定することができる。なお、この『20』、『50』の値は一例であり、ユーザが任意に設定してもよいことは言うまでも無い。
【0045】
ステップ119:前記ステップ117又はステップ118でYESと判定されたので、当該フレーズの1拍目を遅らすために、第1拍表以外からランダムに拍(表/裏)を決定する。
ステップ120:前記ステップ115でフレーズ先頭の遅れ無し、前記ステップ116でフレーズ遅れ頻度が『無』、又は前記ステップ117及びステップ118でNOと判定されたので、ここでは、前のフレーズの余りの拍が有るかどうかを判定し、余りの拍が存在する(YES)場合はステップ122に進み、余りの拍がない(NO)場合はステップ121に進む。
ステップ121:前記ステップ116でフレーズ遅れ頻度『無』(YES)と判定され、前記ステップ120で前フレーズの余りの拍無し(NO)と判定されたので、当フレーズの1拍目は遅れさせないようにするため、第1拍の表に拍を決定する。
ステップ122:前記ステップ116でフレーズ遅れ頻度『無』(YES)と判定されたが、前記ステップ120で前フレーズの余りの拍数が有ると判定されたので、その余りの拍を含み当フレーズの第1拍目から第4拍目の範囲内でランダムに拍(表/裏)を決定する。
【0046】
ステップ123:このようにして先頭の音節の拍が決定したので、ここでは、先頭の音節の拍に応じて当フレーズの最後の音節の拍を決定する。すなわち、最後の音節が占有する拍数は、当フレーズの先頭の音節が属する小節の当フレーズの占有する拍数の余りの拍数までとする。例えば、先頭の音節が属する小節の拍数が3拍裏の場合には余りの拍数は3拍表となり、3拍表の場合には余りの拍数は2拍裏となる。
ステップ124:決定された先頭と最後の拍を歌詞メモリの対応する音節データのアドレス位置に格納する。
ステップ125:フレーズ番号レジスタFNの格納値が最後のフレーズに達したかどうかを判定し、最後のフレーズ(YES)の場合はリターンし、先頭と最後の音節の拍決定処理を終了し、最後のフレーズでない(NO)場合はステップ126に進む。
ステップ126:前記ステップ125で最後のフレーズでないと判定されたので、フレーズ番号レジスタFNを1だけインクリメントし、ステップ112にリターンし、次のフレーズに対して同様の先頭と最後の音節の拍決定処理を繰り返し実行する。
【0047】
図13は、各フレーズの先頭と最後の音節の拍を決定する処理によって決定された拍の一例を示す図である。図において、例1は1フレーズを構成する歌詞データが図7(D)の「/はーるをあいする/ひとはー」に対応し、ステップ121によって先頭の音節が1拍表に決定し、ステップ123で最後の音節が4拍裏に決定した場合を示す。例2の候補1は、1フレーズを構成する歌詞データが「はる/をあいする/ひとは」である場合に、ステップ119又はステップ122によって先頭の音節が4拍表に決定し、ステップ123で最後の音節が3拍裏に決定した場合を示す。例2の候補2は、ステップ119又はステップ122によって先頭の音節が3拍裏に決定し、ステップ123で最後の音節が3拍表に決定した場合を示す。例2の候補3は、ステップ119又はステップ122によって先頭の音節が3拍表に決定し、ステップ123で最後の音節が2拍裏に決定した場合を示す。
【0048】
このようにして音節の先頭と最後の拍が決定したら、今度はCPU1はステップ21のリズムパターン生成処理を実行する。図14はこのリズムパターン生成処理の詳細を示す図である。この処理は次のようなステップで順番に実行される。
ステップ141:フレーズ番号レジスタFNに『1』をセットする。
ステップ142:フレーズ番号レジスタFNに対応したフレーズを構成する全ての歌詞データを歌詞メモリから読み出す。
ステップ143:図6で選択又は設定された音楽条件に従ったフレーズ内の各発音タイミングにおける出現頻度に基づいて音符割当ての優先順位すなわち拍優先順位を決定する。
【0049】
すなわち、図15のような拍優先順位決定表を作成し、これに基づいて各音節の発音タイミングを決定する。すなわち、この拍優先順位決定表の各小節を構成する拍の表及び裏に対しては、頻度項目(拍重視・粗密条件・対比/模倣)の頻度が割り当てられる。図15(A)は図13の例1の候補1に対応するものである。従って、図13の例1の候補1においては、フレーズの先頭の音節は1拍表、最後の音節は4拍裏にあり、その合計小節数は『2』であるから、拍優先順位決定表は図15(A)のように第1小節の1拍表から第2小節の4拍裏に渡って作成される。
【0050】
そして、頻度項目『拍重視』の欄には、ジャンルに応じて予め設定された重み『1』の頻度が使用される。図では、各拍の表及び裏の拍重視の頻度は1拍表が『8』で、1拍裏が『4』、2拍表が『6』、2拍裏が『2』、3拍表が『7』、3拍裏が『3』、4拍表が『5』、4拍裏が『1』である。各拍の表及び裏の拍重視の値と重み『1』とが乗算され、頻度合計に加えられる。なお、この拍重視の頻度に関してはユーザが自由に作成したものを用いてもよい。
【0051】
頻度項目の『粗密条件』の欄には、図6に示すような音楽条件設定画面で選択又は設定された粗密の欄に対応した各拍の表及び裏の位置にフラグが設定される。この粗密条件の重みは『4』である。例えば、図6では楽節Aの第1フレーズの第1小節及び第2小節の前半部分は密、後半部分は粗に設定されているので、図15の拍優先順位決定表でも、第1小節及び第2小節の前半部分(すなわち1拍及び2拍の表及び裏)にフラグ『1』が設定される。粗密条件においてフラグの設定された各拍の表及び裏の頻度合計には重み『4』が加えられる。
【0052】
項目頻度の『対比/模倣』の欄には、図3のステップ37で検出されたリズムパターンに対応して各拍の表及び裏の位置にフラグが設定される。なお、図6に示すような音楽条件設定画面で、対比/模倣となる楽節が指定されている場合には、その指定された楽節のものがそのまま設定される。この対比/模倣の重みは『4』である。例えば、図6では、楽節A,B,Cは対比/模倣の対象となる楽節が存在しないので、この拍優先順位決定表においてはステップ37で検出されたリズムパターンに対応した位置にフラグが設定されるが、図では、ユーザが新たに作成した音楽条件設定画面に対応しているため、フラグの設定は存在しない。従って、音楽条件設定画面が既存曲から分析・抽出されたものか、対比/模倣の欄に対比又は模倣する旨の設定がある場合には、その対比/模倣の対象となる楽節の音符存在位置にフラグ『1』が設定される。対比/模倣においてフラグの設定された各拍の表及び裏の頻度合計には重み『4』が加えられる。
【0053】
『頻度合計』の欄には、各頻度項目(拍重視、粗密条件及び対比/模倣)の頻度の合計が格納される。図では、1拍表の頻度合計は拍重視の『8』と粗密条件の『4』との合計値『12』であり、1拍裏は『8』、2拍表が『10』、2拍裏が『6』、3拍表が『7』、3拍裏が『3』、4拍表が『5』、4拍裏が『1』である。
『各小節毎の優先順位』の欄には、その小節内において頻度合計の大きい順に番号が付される。頻度合計が同じ値の場合には、先の方が優先される。図では、第1小節と第2小節は同じ優先順位であり、1拍表が優先順位『1』、1拍裏が優先順位『3』、2拍表が優先順位『2』、2拍裏が優先順位『5』、3拍表が優先順位『4』、3拍裏が優先順位『7』、4拍表が優先順位『6』、4拍裏が優先順位『8』となる。
【0054】
図15(B)は図13の例2の候補3に対応するものである。従って、図13の例2の候補3においては、フレーズの先頭の音節は3拍表、最後の音節は2拍裏にあり、その合計小節数は『2』であるから、拍優先順位決定表は図15(B)のように第1小節の3拍表から第3小節の2拍裏に渡って作成される。
頻度項目『拍重視』、『粗密条件』、『対比/模倣』及び『頻度合計』の各欄の第1小節の3拍表から第3小節の2拍裏には、図15(A)と同じ頻度が設定される。そして、『各小節毎の優先順位』の欄には、その小節内において頻度合計の大きい順に番号が付される。従って、第1小節においては、3拍表が優先順位『1』で、3拍裏が優先順位『3』で、4拍表が優先順位『2』、4拍裏が優先順位『4』となる。第2小節においては、1拍表が優先順位『1』、1拍裏が優先順位『3』、2拍表が優先順位『2』、2拍裏が優先順位『5』、3拍表が優先順位『4』、3拍裏が優先順位『7』、4拍表が優先順位『6』、4拍裏が優先順位『8』となる。第3小節においては、1拍表が優先順位『1』、1拍裏が優先順位『3』、2拍表が優先順位『2』、2拍裏が優先順位『4』となる。
【0055】
ステップ144:このようにして作成された拍優先順位表と、その小節における音節数に従って、各音節の発音タイミングを決定する。なお、歌詞データが長音記号『ー』の場合には、その長音記号『ー』の直前の音節データ以降の数区間(1〜4区間)にわたって発音タイミングの割当てを禁止する。この割当て禁止区間の大きさは1小節内の音節数によって変化する。
【0056】
例えば、図15(A)のような拍優先順位表によれば、第1小節の音節データの数は7個である。従って、その小節内における優先順位『1』〜『7』の区間に発音タイミングが決定される。このとき、長音記号『ー』の直前の音節データ『は』以降の1区間には割当てが禁止されるので、長音記号『ー』の優先順位『3』を除く、優先順位『1』、『2』、『4』〜『8』の区間に発音タイミングが決定される。第2小節の場合は、音節データの数は3個で、長音記号『ー』を1個含むので、優先順位『1』〜『3』の区間に発音タイミングが決定される。図15(B)のような拍優先順位表によれば、第1小節の音節データの数は2個で、長音記号『ー』を1個含むので、優先順位『1』及び『2』の区間に発音タイミングが決定される。第2小節の音節データの数は5個なので優先順位『1』〜『5』の区間に発音タイミングが決定される。第3小節の音節データの数は3個で、長音記号『ー』を1個含むので、優先順位『1』〜『3』の区間に発音タイミングが決定される。
【0057】
ステップ145:前記ステップ144によって決定された発音タイミングに基づいてその音節データの音長を決定する。なお、必要に応じて休符も挿入する。この休符の挿入の頻度は図5の音楽形式設定画面の『メロディック/リズミック』のどちらか選択された方に応じて変化するようになっている。
【0058】
例えば、図15(A)のような拍優先順位表によれば、第1小節の第1の音節『は』は、発音タイミングの割り当てられていない区間を含む形で、4分音符長に決定され、第2の音節『る』から第7の音節『る』までの音長は8分音符長に決定される。第2小節の第1の音節『ひ』と第2の音節『と』は8分音符長に決定され、第3の音節『は』は、発音タイミングの割り当てられていない区間(1〜4区間)を含む形で2分音符長に決定される。なお、この第3の音節『は』に関しては、休符の挿入状態に応じて4分音符長から付点2分音符長の範囲に決定されることがある。
【0059】
また、図15(B)のような拍優先順位表によれば、第1小節の第1の音節『は』と第2の音節『る』は4分音符長に決定され、第2小節の第1の音節『を』から第4の音節『す』は8分音符長に決定され、第5の音節『る』は4分音符長に決定される。なお、この第5の音節『る』に関しては休符の挿入状態に応じて4分音符長から2分音符長の範囲に決定されることがある。第3小節の第1の音節『ひ』と第2の音節『と』は8分音符長に、第3の音節『は』は、発音タイミングの割り当てられていない区間(1〜4区間)を含む形で2分音符長に決定される。この第3の音節『は』に関しては前述と同様に休符の挿入状態に応じて4分音符長から付点2分音符長の範囲のものに決定されることがある。
【0060】
ステップ146:前記ステップ145の処理によって決定されたリズムパターンデータを曲メモリに格納する。すなわち、前記ステップ145の処理によって決定された各音節データに対する音長をデュレーションデータとして、ワーキングメモリ3内の曲メモリ領域に記憶する。図8(B)は図8(A)の歌詞メモリ内の歌詞データに対して図15(A)のような拍優先順位表に従って決定されたリズムパターンの格納された曲メモリのデータ構成の一例を示す図である。すなわち、図8(A)の歌詞メモリの内容が図14のリズムパターン生成処理によって図8(B)のように変換される。図8(B)の曲メモリにおいては、図8(A)の歌詞メモリの中から音節データと小節線記号だけが抽出された形になっている。抽出された音節データに対して図14のリズムパターン生成処理によって決定された音長すなわちデュレーションデータが格納される。図では、デュレーションデータを音符で示したが、実際には音長に対応した数値やデュレーションタイムを示す数値などが格納される。なお、この曲メモリには、後述する処理によって各音節データに対してピッチデータ、ベロシティデータ及びボリュームなどが決定され、格納されるようになっている。
【0061】
ステップ147:フレーズ番号レジスタFNの格納値が最後のフレーズに達したかどうかを判定し、最後のフレーズ(YES)の場合はリターンし、リズムパターン生成処理を終了し、最後のフレーズでない(NO)場合はステップ148に進む。
ステップ148:前記ステップ147で最後のフレーズでないと判定されたので、フレーズ番号レジスタFNを1だけインクリメントし、ステップ142にリターンし、次のフレーズに対して同様のリズムパターン生成処理を繰り返し実行する。
【0062】
このようにしてリズムパターンが決定したら、今度はCPU1はステップ22のピッチパターン生成処理を実行する。
図16はこのピッチパターン生成処理の詳細を示す図である。このピッチパターン生成処理は次のようなステップで順番に実行される。
ステップ161:フレーズ番号レジスタFNに『1』をセットする。
ステップ162:フレーズ番号レジスタFNに対応したフレーズを構成する全ての歌詞データを歌詞メモリから読み出す。
ステップ163:読み出された音節データの数をデータ数レジスタSNに格納する。
【0063】
ステップ164:フレーズ番号レジスタFNのフレーズの最初と最後の音節に対して音高(ピッチ)を決定する。すなわち、図6に示すような音楽条件設定画面の最初−最後音設定項目『フレーズの最初−最後音』内に指定された度数(I,II,III,IV,V,VI,VII)が存在する場合には、その度数に対応した音高に決定する。度数が指定されていない場合には、図6に示すような音楽条件設定画面の項目『感情の起伏』に基づいて決定する。但し、曲の最初の音高に関してはトニックコードの構成音の中から選択する。なお、図6に示すような音楽条件設定画面には示していないが、前フレーズの最初の音との繋がりを指定する項目や前フレーズの最後の音との繋がりを指定することによって、対象とする音のピッチを基準として、当フレーズの最初のピッチを決定するようにしてもよい。
【0064】
前記ステップ164でフレーズの最初と最後の音節に対する音高が決定されたので、このフレーズ内の残りの音節に対するピッチを決定するための処理をステップ165〜ステップ167で行う。
ステップ165:図6に示すような音楽条件設定画面のピッチパターン選択項目『フレーズのピッチパターン』にピッチパターンの指定が有るかどうかを判定し、指定有り(YES)の場合はステップ167に進み、指定無し(NO)の場合はステップ166に進む。
ステップ166:前記ステップ165でピッチパターンの指定無し(NO)と判定されたので、図6に示すような音楽条件設定画面の項目『感情の起伏』に示されたグラフィックパターンに最も類似したピッチパターンを図17のピッチパターンのパターン群の中から選択する。ピッチパターンのパターン群は、全部で16種類存在し、(A)〜(C)の直線的旋律、(D)〜(L)の波状的旋律、(M)及び(N)の躍動的旋律、(P)及び(Q)の和声的旋律の4種類に分類されている。この他にも種々のパターンを設けてもよいことはいうまでもない。また、タッチペンなどを用いてユーザが手書き入力した曲線をサンプリングして新たにピッチパターンとしてもよい。
【0065】
ステップ167:前記ステップ165又はステップ166によって特定されたテンプレートに基づいて最初と最後の音節以外の(SN−2)個の音節に対するピッチを決定する。例えば、音節数が9個で、図18のような形状のピッチパターンが特定されている場合には、そのピッチパターンを用いて第2の音節から第8の音節に対する音階を決定する。この場合、最初の音節と最後の音節はステップ164によって既に度数Iと度数I+1に決定されているので、ここでは、最初と最後の音節以外の第2の音節から第8の音節までをこのピッチパターンに均等に割当て、最も近い音階にクオンタイズして音階を決定する。従って、図18の場合には、第2、第4及び第7の音節は度数IVの音階となり、第3の音節は度数Vの音階となり、第5及び第6の音節は度数III の音階となり、第8の音節は度数VIの音階となる。
【0066】
なお、このように最初と最後以外の音節をテンプレート上で均等に割り当てた場合、ピッチパターンの形状に相似しない場合がある。すなわち、図19に示すように、音節数が6個で図19(A)のような形状のピッチパターンが特定された場合、最初と最後以外の4個の音節をこのテンプレート上で均等に割り当てると、その形状は元のテンプレート形状に相似したものとなる。ところが、同じテンプレートであっても、音節数が5個の場合には、最初と最後以外の3個の音節をこのテンプレートに均等に割り当てると、割当て後の形状は図19(B)の曲線17Bのように元のテンプレート形状に対して相似形ではなくなる。そこで、このような場合には、第2及び第3の音節の割当て位置を前方にずらして、曲線17Cのようにテンプレート形状の前半部分の形状に対して相似形となるように動作する。なお、このように割当て位置をずらす音節やずらす方向などは、最小二乗法などの演算を用いて適宜算出すればよい。
【0067】
このように、テンプレートに均等に割り当てる代わりに、図19(D)のようにステップ21で生成されたリズムパターンに応じてサンプリングを行ってもよい。この場合でも割当て後の形状が元のテンプレート形状に対して相似でなくなるような場合には、任意の音節の割当て位置をずらしたりすればよい。
また、ピッチパターンの振幅の度合いは、図6に示すような音楽条件設定画面の躍動/静寂設定項目『躍動/静寂』で設定された躍動/静寂パターンや図7(G)の編み掛け表示された音節データのクライマックス部分などに応じて決定される。すなわち、図18のピッチパターンでは、振幅の上死点が音階V、下死点がIII であるが、その部分で躍動/静寂パターンが躍動側に位置していたり、クライマックスが設定されている場合には、その部分の振幅の度合いが大きくなり、上死点が音階VII 、下死点が音階Iとなったりする。また、躍動/静寂パターンが静寂側に位置する場合には、逆に振幅の度合いが小さくなる。
【0068】
ステップ23では、図7(E)のように音節データの所定の箇所に付されたアクセント記号「・」に応じてベロシティを決定し、それを図8(B)に示すように曲メモリの対応する音節データのベロシティに反映させる。図では、アクセント記号「・」の付されている音節データのベロシティが『5』となり、付されていない音節データのベロシティが『4』となっている。また、図6に示すような音楽条件設定画面で設定された曲全体の感情の起伏を表す曲線に応じてボリュームを決定し、それを図8(B)に示すように曲メモリの対応する音節データのボリュームに反映させる。図では、感情の起伏を表す曲線に応じてボリュームは『5』である。
【0069】
ステップ24では、ステップ19〜ステップ23の処理によってCPU1によって作成された曲をユーザがマニュアルで修正する処理である。ここでは、曲メモリから自動作曲された曲データを読み出し、それをディスプレイ1B上に表示させる。そして、曲の全体を通してリズムとピッチの修正作業をフレーズ内及び曲全体に渡って行い、必要により、曲データの修正を行う。例えば、フレーズ間の繋がりを歌いやすいように修正する。1フレーズが長すぎる場合には、途中に息継ぎを挿入する。高音部が長く続きすぎる場合にはその部分を修正する。リズムの急激に変化する部分を修正する。曲全体を通して、跳躍が多すぎないか、1つの曲としてまとまっているかなどを実際に曲を聞いてみて修正したりする。このようにしてマニュアル修正された曲データを再び曲メモリに格納する。
以上のようなステップ17〜ステップ24の一連の処理によって、ユーザの指定した歌詞に対応した曲を自動的に作曲することができる。
【0070】
なお、上述の実施の形態では、音楽条件をユーザが記憶される場合について説明したが、既存の曲を分析し、そこから音楽条件を抽出するようにしてもよいし、抽出したものをユーザが再度変更できるようにしてもよい。
また、実施の形態では、音節データとして日本語を例に説明したが、これ以外の言語の場合にも同様に適用できることはいうまでもない。この場合、単母音、二重母音、破裂音、鼻音、側音、摩擦音、破擦音などの発音記号に基づいて音節データを決定し、決定された音節データに基づいて作曲を行えばよい。
なお、上述の実施の形態では、図6に示すような音楽条件設定画面における粗密設定項目『粗密』及び対比/模倣設定項目『対比/模倣』の設定方法として、単に発生頻度を密にするか粗にするか、対比/模倣するかしないかだけを設定する場合について説明したが、これに限らず、粗密及び対比/模倣をその度合いで設定してもよい。この場合、図15の拍優先順位決定表における頻度項目の『粗密条件』及び『対比/模倣』の欄の数値を、その度合いに応じた値、例えば『1』〜『4』とすればよい。
【0071】
【発明の効果】
以上の通り、この発明によれば、格別の音楽知識を持たないユーザーであっても気軽に自動作曲作業を行うことができる、という効果を奏する。また、ユーザーの作曲意図を容易に反映させることができるように、自動作曲を行うことができる、という効果を奏する。更には、1曲を通して区間毎に起伏に富んだメロディを生成することができる、という効果を奏する。
【図面の簡単な説明】
【図1】 この発明に係る自動作曲装置の一実施例に係るフローチャートの一例を示す図である。
【図2】 図1に示した自動作曲装置を内蔵した電子楽器の構成を示すハードブロック図である。
【図3】 図1の音楽的特徴の分析・抽出処理の前半部分の詳細を示す図である。
【図4】 図1の音楽的特徴の分析・抽出処理の後半部分の詳細を示す図である。
【図5】 曲全体に関する音楽的特徴の分析・抽出結果の一例を示す図である。
【図6】 音楽的特徴の分析・抽出結果の一例を曲の進行に従って示す図である。
【図7】 歌詞データを入力するための画面の一例を示す図である。
【図8】 図2のワーキングメモリ内における歌詞メモリ及び曲メモリのデータ構成を示す図であり、図8(A)は歌詞メモリのデータ構成を図8(B)は曲メモリのデータ構成を示す。
【図9】 図1の小節の区切り決定処理の前半部分の詳細を示す図である。
【図10】 図1の小節の区切り決定処理の後半部分の詳細を示す図である。
【図11】 図1の各フレーズの先頭と最後の音節の拍を決定する処理の前半部分の詳細を示す図である。
【図12】 図1の各フレーズの先頭と最後の音節の拍を決定する処理の後半部分の詳細を示す図である。
【図13】 図11及び図12の各フレーズの先頭と最後の音節の拍を決定する処理によって決定された拍の一例を示す図である。
【図14】 図1のリズムパターン生成処理の詳細を示す図である。
【図15】 図14のリズムパターン生成処理の中でフレーズ内の各発音タイミングにおける出現頻度を求め、音符割当ての優先順位を決定するための拍優先順位決定表の一例を示す図である。
【図16】 図1のピッチパターン生成処理の詳細を示す図である。
【図17】 図16のピッチパターン生成処理の中で選択されるピッチパターンのパターン群の一例を示す図である。
【図18】 図16のピッチパターン生成処理の中で特定されたテンプレートに基づいて最初と最後の音節以外の(SN−2)個の音節に対するピッチを決定する処理の概念を示す図である。
【図19】 図16のピッチパターン生成処理の中で最初と最後以外の音節をテンプレート上で割り当てる場合の概念を示す図である。
【符号の説明】
1…CPU、2…プログラムメモリ、3…ワーキングメモリ、4…演奏データメモリ、5…押鍵検出回路、6…スイッチ検出回路、7…表示回路、8…音源回路、9…鍵盤、1A…テンキー&キーボード&各種スイッチ、1B…ディスプレイ、1C…サウンドシステム、1D…データ及びアドレスバス

Claims (6)

  1. 1つの曲を構成する複数の区間の各区間について、該区間内におけるリズムの特徴を示す情報を少なくとも含む曲テンプレート情報を提供する提供手段と、
    作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、
    前記曲テンプレート情報に含まれるリズムの特徴を示す情報と前記入力された各区間毎の音数を示す情報とを基に、各区間におけるリズムを決定する決定手段と
    を備えた自動作曲装置。
  2. 1つの曲を構成する複数の区間の各区間について、該区間内におけるピッチの変動傾向を示す情報を少なくとも含む曲テンプレート情報を提供する提供手段と、
    作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、
    前記曲テンプレート情報に含まれるピッチの変動傾向を示す情報と前記入力された各区間毎の音数を示す情報とを基に、各区間におけるピッチ及びリズムを決定する決定手段と
    を備えた自動作曲装置。
  3. 前記ピッチの変動傾向を示す情報は、各区間における最初の音と最後の音とを夫々特定する情報と、各区間毎の最初の音と最後の音との間のピッチの変動傾向を夫々示す情報とを含み、
    前記決定手段は、前記入力された各区間毎の音数を示す情報を基に、各区間におけるリズムを夫々決定する手段と、各区間についての前記最初の音と最後の音とを夫々特定する情報とその間のピッチの変動傾向を示す情報に基づき、各区間に含まれる各音符に対してピッチを割り当てる手段とを含む請求項に記載の自動作曲装置。
  4. 前記曲テンプレート情報は、各区間における音符の粗密を示す情報を含み、前記決定手段は、該曲テンプレート情報に含まれる各区間における音符の粗密を示す情報と前記入力された各区間毎の音数を示す情報とを基に、各区間におけるリズムを決定する請求項に記載の自動作曲装置。
  5. 1つの前記区間は、複数小節からなる1フレーズに対応しており、前記曲テンプレート情報は、当該フレーズの出だしの音の拍が小節の1拍目より遅れている場合はそのことを示す遅れ指定情報を含んでおり、
    前記決定手段は、各フレーズにおける小節の区切り位置を決定する手段と、前記遅れ指定情報に基づき各フレーズの最初の拍位置と最後の拍位置とを決定する手段と、各フレーズ毎に決定された小節区切り位置と最初及び最後の拍位置に基づいて各フレーズに含まれる音符の位置と長さを決定する手段と、各フレーズのピッチの変動傾向を示す情報に基づき各フレーズに含まれる音符のピッチを決定する手段とを含む請求項に記載の自動作曲装置。
  6. 1つの曲を構成する複数の区間の各区間について、該区間内におけるピッチの変動傾向を示す情報を少なくとも含む曲テンプレート情報を、複数の曲について夫々記憶したメモリ手段と、
    前記メモリ手段から所望の1つの曲テンプレート情報をユーザーによって選択して、該選択された曲テンプレート情報をバッファ記憶し、バッファ記憶した曲テンプレート情報の内容をユーザーの操作によって変更するテンプレートエディット手段と、
    作りたい曲について、各区間毎の音数を示す情報をユーザーによって入力する入力手段と、
    前記テンプレートエディット手段にバッファ記憶されている曲テンプレート情報と前記入力された各区間毎の音数を示す情報を基に、各区間におけるリズムとピッチを決定する音符決定手段と
    を備えた自動作曲装置。
JP2001349772A 2001-11-15 2001-11-15 自動作曲装置 Expired - Fee Related JP3664126B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001349772A JP3664126B2 (ja) 2001-11-15 2001-11-15 自動作曲装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001349772A JP3664126B2 (ja) 2001-11-15 2001-11-15 自動作曲装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP22105195A Division JP3303617B2 (ja) 1995-08-07 1995-08-07 自動作曲装置

Publications (2)

Publication Number Publication Date
JP2002196757A JP2002196757A (ja) 2002-07-12
JP3664126B2 true JP3664126B2 (ja) 2005-06-22

Family

ID=19162392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001349772A Expired - Fee Related JP3664126B2 (ja) 2001-11-15 2001-11-15 自動作曲装置

Country Status (1)

Country Link
JP (1) JP3664126B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3942568B2 (ja) * 2003-09-04 2007-07-11 株式会社国際電気通信基礎技術研究所 作曲支援装置および作曲支援プログラム
JP4462368B2 (ja) * 2008-04-14 2010-05-12 ヤマハ株式会社 楽曲再生装置及び楽曲再生プログラム
JP5974436B2 (ja) * 2011-08-26 2016-08-23 ヤマハ株式会社 楽曲生成装置
JP6606844B2 (ja) * 2015-03-31 2019-11-20 カシオ計算機株式会社 ジャンル選択装置、ジャンル選択方法、プログラムおよび電子楽器
US9721551B2 (en) * 2015-09-29 2017-08-01 Amper Music, Inc. Machines, systems, processes for automated music composition and generation employing linguistic and/or graphical icon based musical experience descriptions

Also Published As

Publication number Publication date
JP2002196757A (ja) 2002-07-12

Similar Documents

Publication Publication Date Title
JP3303617B2 (ja) 自動作曲装置
JP5147389B2 (ja) 楽曲提示装置、楽曲提示プログラム、楽曲提示システム、楽曲提示方法
CN102760426B (zh) 使用表示乐音生成模式的演奏数据搜索
US5939654A (en) Harmony generating apparatus and method of use for karaoke
US6175072B1 (en) Automatic music composing apparatus and method
CN102760428B (zh) 使用表示乐音生成模式的查询的演奏数据搜索
JP2562370B2 (ja) 自動伴奏装置
US6100462A (en) Apparatus and method for generating melody
JP3528654B2 (ja) メロディ生成装置及びリズム生成装置と記録媒体
JPH04349497A (ja) 電子楽器
JP6760450B2 (ja) 自動アレンジ方法
JP2002023747A (ja) 自動作曲方法と装置及び記録媒体
JP2000315081A (ja) 自動作曲装置及び方法並びに記憶媒体
JP2806351B2 (ja) 演奏情報分析装置及びそれを用いた自動編曲装置
JP6977741B2 (ja) 情報処理装置、情報処理方法、演奏データ表示システム、およびプログラム
US20040200335A1 (en) Musical invention apparatus
JP6565528B2 (ja) 自動アレンジ装置及びプログラム
JP3489290B2 (ja) 自動作曲装置
JP3664126B2 (ja) 自動作曲装置
JP2007219139A (ja) 旋律生成方式
JP2015060200A (ja) 演奏データファイル調整装置、方法、およびプログラム
JP3724347B2 (ja) 自動作曲装置及び方法並びに記憶媒体
JP3835131B2 (ja) 自動作曲装置及び方法並びに記憶媒体
JP2000112472A (ja) 自動作曲装置と記録媒体
Khumalo Reading for ‘African Spectralism’in Latozi Mphahleni’s ‘Modokali’

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050321

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090408

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090408

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100408

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110408

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120408

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees