JP3835131B2 - 自動作曲装置及び方法並びに記憶媒体 - Google Patents
自動作曲装置及び方法並びに記憶媒体 Download PDFInfo
- Publication number
- JP3835131B2 JP3835131B2 JP2000184472A JP2000184472A JP3835131B2 JP 3835131 B2 JP3835131 B2 JP 3835131B2 JP 2000184472 A JP2000184472 A JP 2000184472A JP 2000184472 A JP2000184472 A JP 2000184472A JP 3835131 B2 JP3835131 B2 JP 3835131B2
- Authority
- JP
- Japan
- Prior art keywords
- chord progression
- melody
- generating
- new
- passage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
この発明は、音楽に関する各種の条件に応じて自動的に楽曲を作曲する自動作曲装置および方法に関し、特に自動作曲のために用いられるコード進行データと楽節構成データとを適宜に組み合わせることによって、多様な曲を作曲する自動作曲装置及び方法である。
【0002】
【従来の技術】
近年、パーソナルコンピュータの普及に伴い、コンピュータを用いて楽器を演奏したり、作曲したり、編曲したり、音色を合成したりするコンピュータミュージックを用いて、誰でも音楽を自由に楽しめるようになってきた。特に、コンピュータを用いた作曲の分野では、音楽的な専門知識がない作曲初心者であっても簡単に作曲を行うことのできる自動作曲が出現している。従来の自動作曲装置としては、例えば曲テンプレートを多数、メモリに記憶しておき、メモリに記憶された各種の曲テンプレートのいずれかを選択し、選択した曲テンプレートに基づいてメロディとなる演奏データを自動的に生成することで、作曲を行うものが知られている。この場合、従来は、コード進行データと楽節構成データとを1対1に組み合わせたものを1つの曲テンプレートとしてメモリに記憶しておき、これらの曲テンプレートを任意に設定された音楽条件に基いて選択的に読み出し、これに基づいてメロディとなる演奏データを自動的に生成する。このような自動作曲装置によると、ユーザは所望の曲テンプレートを選択するだけで簡単に作曲を行うことができる。
【0003】
【発明が解決しようとする課題】
ところで、従来の自動作曲装置においては、1つの曲テンプレートはコード進行データと楽節構成データとを1対1で固定的に組み合わせてなるものであった。そのため、曲テンプレートを利用して多彩なメロディを数多く作曲するためには、コード進行データと楽節構成データとの組み合わせが異なる曲テンプレートを数多くメモリに用意しておくことが必要であった。しかし、コード進行データと楽節構成データとの組み合わせが異なる曲テンプレートを数多くメモリに用意することは、曲テンプレートの作成に手間や時間がかかる、また曲テンプレートを記憶するためのメモリに非常に大きな記憶容量が必要である、等の問題があった。例えば、ある第1の曲テンプレートの楽節構成データに対応するコード進行を別の第2の曲テンプレートにおける楽節構成データに対応させて使用したいような場合には、第1及び第2の曲テンプレートとは別に第1の曲テンプレートにおけるコード進行データと第2の曲テンプレートにおける楽節構成データとを組み合わせた第3の曲テンプレートを新たに作成してメモリに予め記憶しておく必要があった。
【0004】
本発明は上述の点に鑑みてなされたもので、ユーザが適宜にコード進行データと楽節構成データとを組み合わせて多くのバリエーションの組み合わせを簡単に作成できるようにすることで、ユーザの意向に沿う多彩な曲を容易に作曲することのできる自動作曲装置及び方法を提供しようとするものである。
【0005】
【課題を解決するための手段】
【0009】
請求項1に係る本発明の自動作曲装置は、コード進行を供給する手段と、供給されたコード進行に基づいて楽節構成を生成する手段と、楽節構成に基づいて、1ブロックが1又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成する手段と、少なくとも前記コード進行と楽節構成とブロック構成とを用いてメロディを生成する手段とを具える。こうすると、新規にコード進行が供給された場合であっても、新しいコード進行から楽節構成を生成し、該楽節構成に基づいてブロック構成を生成するので、楽節構成が変わってもブロック構成を考慮したメロディを生成することができるようになる。
また、請求項2に係る本発明の自動作曲装置は、少なくとも楽節構成とコード進行とブロック構成とに基づいてメロディを生成する自動作曲装置において、楽節構成に基づいて、1ブロックが1又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成する生成手段を具えてなり、前記生成手段は、複数の分割方法を登録した所定のテーブルに基づいて、或る分割方法に従って全体楽節構成を複数区間に分割したとき、その分割の区切りが所定の楽節記号以外の連続した同一楽節記号の途中に位置していないことを条件として、該条件を満たしている場合に当該分割方法を採用し、その採用された分割方法に従って分割された区間毎にブロック記号を割り当ててブロック構成を生成することを特徴とする。これにより、同一楽節記号が連続している場合その途中で区切ることがないようにすることができるので、適切な区間で区切ってブロック構成を生成することができる。
【0010】
さらに、請求項5に係る本発明に係る自動作曲装置は、コード進行を入力するコード進行入力手段と、メロディを入力するメロディ入力手段と、メロディに基づいて新たなコード進行を生成するコード進行生成手段と、コード進行に基づいて新たなメロディを生成するメロディ生成手段と、前記メロディ生成手段に対して、コード進行生成手段が生成した新たなコード進行あるいはコード進行入力手段から入力されたコード進行の何れかを選択的に供給するコード進行供給手段と、前記コード進行生成手段に対して、メロディ進行生成手段が生成した新たなメロディあるいはメロディ入力手段から入力されたメロディの何れかを選択的に供給するメロディ供給手段と、前記生成した新たなメロディまたは前記生成した新たなコード進行を取り出す手段とを具える。こうすると、種となる少ないコード進行またはメロディを用意して入力手段から入力するだけで、これらを元にたくさんのコード進行あるいはメロディを生成することができることから、ユーザはそれらを選択するだけで簡単に多様なメロディを生成することができるようになる。
【0011】
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはDSP等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記録媒体の形態で実施することもできる。
【0012】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【0013】
図1は、この発明に係る自動作曲装置の実施の形態を示すハード構成ブロック図である。
本実施例に示す自動作曲装置は、マイクロプロセッサユニット(CPU)1、リードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3からなるマイクロコンピュータによって制御されるようになっている。CPU1は、この自動作曲装置全体の動作を制御するものである。このCPU1に対して、データ及びアドレスバス1Dを介してリードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3、押鍵検出装置4、スイッチ検出回路5、表示回路6、音源回路7、効果回路8、外部記憶装置9、MIDIインタフェース(I/F)10および通信インタフェース11がそれぞれ接続されている。更に、CPU1には、タイマ割込み処理(インタラプト処理)における割込み時間や各種時間を計時するタイマ1Aが接続されている。すなわち、タイマ1Aは時間間隔を計数したり、作曲終了後に曲を自動演奏する際の演奏テンポを設定したりするためのテンポクロックパルスを発生する。このテンポクロックパルスの周波数は、各種スイッチ5Aの中のテンポ設定スイッチ等によって調整される。このようなタイマ1AからのテンポクロックパルスはCPU1に対して処理タイミング命令として与えられたり、あるいはCPU1に対してインタラプト命令として与えられる。CPU1は、これらの命令に従って各種処理を実行する。各種処理には、例えば自動作曲の際の画面表示処理や自動作曲した曲を演奏するための自動演奏処理等がある。
なお、この自動作曲装置は専用の装置に限られず、例えばパソコンなどの汎用装置あるいはマルチメディア機器等であってもよく、本発明に従う所定のソフトウエア又はハードウエアを用いることによって自動作曲を行うことのできるように構成した装置であればよい。
【0014】
ROM2は、CPU1により実行あるいは参照される各種プログラム(例えば、後述する「楽節構成変更処理」プログラムなど)や各種データ(例えば、コード進行データや楽節構成データ、コード進行データと楽節構成データとを適宜に組み合わせた曲テンプレート、あるいは後述する楽節構成別変更可能テーブルなど)等を格納するものである。RAM3は、作曲に関する各種音楽情報や自動演奏情報、CPU1がプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリ等として使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。鍵盤4Aは、楽音の音高を選択するための複数の鍵を備えており、各鍵に対応してキースイッチを有しており、この鍵盤4Aは楽音演奏のために使用できるのは勿論のこと、作曲の際に入力手段として使用することもできる。押鍵検出回路4は、鍵盤4Aの各鍵の押圧及び離鍵を検出し、検出出力を生じる。
スイッチ5Aはコード進行データや楽節構成データあるいは曲テンプレートを指定したり、あるいは自動演奏時における各種条件等を入力するための各種の操作子を含んで構成される。例えば、数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはパネルスイッチ等である。勿論、この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含んでいてよい。スイッチ検出回路5は、スイッチ5Aの各操作子の操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス1Dを介してCPU1に出力する。表示回路6はコード進行データや楽節構成データあるいは曲テンプレートの内容等の各種情報を、例えば液晶表示パネル(LCD)やCRT等から構成されるディスプレイ6Aに表示するのは勿論のこと、自動演奏に関する各種情報あるいはCPU1の制御状態などをディスプレイ6Aに表示する。
【0015】
音源回路7は、複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス1Dを経由して与えられた演奏情報を入力し、この演奏情報に基づいて楽音信号を発生する。音源回路7から発生された楽音信号は、サウンドシステム8Aを介して発音される。また、効果回路8は前記音源回路7から発生された楽音信号に対して各種効果を与える。前記音源回路7における楽音信号発生方式はいかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出す波形メモリ読み出し方式、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるFM方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるAM方式等の公知の方式を適宜採用してもよい。すなわち、音源回路7の方式は、波形メモリ方式、FM方式、物理モデル方式、高調波合成方式、フォルマント合成方式、VCO+VCF+VCAのアナログシンセサイザ方式、アナログシミュレーション方式等、どのような方式であってもよい。また、専用のハードウェアを用いて音源回路7を構成するものに限らず、DSPとマイクロプログラム、あるいはCPUとソフトウェアを用いて音源回路7を構成するようにしてもよい。さらに、1つの回路を時分割で使用することによって複数の発音チャンネルを形成するようなものでもよいし、1つの発音チャンネルが1つの回路で形成されるようなものであってもよい。
【0016】
外部記憶装置9は、自動作曲時に用いるコード進行データや楽節構成データあるいは曲テンプレート、CPU1が実行する各種プログラム等の制御に関するデータを記憶するものである。前記ROM2に制御プログラムが記憶されていない場合、この外部記憶装置9(例えばハードディスク)に制御プログラムを記憶させておき、それを前記RAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置9はハードディスク(HD)に限られず、フロッピィーディスク(FD)、コンパクトディスク(CD−ROM・CD−RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Diskの略)等の着脱自在な様々な形態の外部記憶媒体を利用する記憶装置であってもよい。
【0017】
MIDIインタフェース(I/F)10は、他のMIDI機器10A等からMIDI規格の演奏情報(MIDIデータ)を当該自動作曲装置へ入力したり、あるいは当該自動作曲装置からMIDI規格の演奏情報(MIDIデータ)を他のMIDI機器10A等へ出力するためのインタフェースである。他のMIDI機器10Aはユーザによる操作に応じてMIDIデータを発生する機器であり、鍵盤型、ギター型、管楽器型、打楽器型、ミブリ型等どのようなタイプの操作子を具えた(若しくは、操作形態からなる)機器であってもよい。通信インタフェース11は、例えばLANやインターネット、電話回線等の有線又は無線の通信ネットワーク11Bに接続されており、該通信ネットワーク11Bを介して、サーバコンピュータ11Aと接続され、当該サーバコンピュータ11Aから制御プログラムや各種データを自動作曲装置側に取り込むためのインタフェースである。すなわち、ROM2や外部記憶装置9(ハードディスク)等に制御プログラムや各種データが記憶されていない場合に、サーバコンピュータ11Aから制御プログラムや各種データをダウンロードするために用いられる。クライアントとなる自動作曲装置は、通信インターフェース10及び通信ネットワーク11Bを介してサーバコンピュータ11Aへと制御プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータ11Aは、このコマンドを受け、要求された制御プログラムやデータを、通信ネットワーク11Bを介して本装置へと配信し、本装置が通信インタフェース11を介して、これら制御プログラムや各種データを受信して外部記憶装置9(ハードディスク)等に蓄積することにより、ダウンロードが完了する。
【0018】
なお、MIDIインタフェース10は専用のMIDIインタフェースを用いるものに限らず、RS232−C、USB(ユニバーサル・シリアル・バス)、IEEE1394(アイトリプルイー1394)等の汎用のインタフェースを用いてMIDIインタフェース10を構成するようにしてもよい。この場合、MIDIイベントデータ以外のデータをも同時に送受信するようにしてもよい。MIDIインタフェース10として上記したような汎用のインタフェースを用いる場合には、他のMIDI機器10AはMIDIイベントデータ以外のデータも送受信できるようにしてよい。勿論、音楽情報に関するデータフォーマットはMIDI形式のデータに限らず、他の形式であってもよく、その場合はMIDIインタフェース10と他のMIDI機器10Aはそれにあった構成とする。
【0019】
ここで、ROM2やRAM3あるいは外部記憶装置9に記憶されるコード進行データ、楽節構成データ、曲テンプレートについて簡単に説明する。
コード進行データはメロディの背景となっているコード(和音)の種類を進行順に配置したデータであり、自動作曲時においては当該コード進行データを基にしてメロディの音高(ノート)が決定される。楽節構成データは楽節毎に所定の楽節記号が付されて1曲分の楽節順に並べられたデータであり、該楽節記号の並びによって1曲分の楽節構成がどのような構成になっているのかを示すデータである。楽節記号とは、楽節間の類似・非類似を表す記号である。例えば、1曲分の楽節数が4である場合(すなわち、1曲が4楽節構成)である場合に、第1楽節の楽節記号として「A」(又は「A」)、第2楽節の楽節記号として「B」(又は「A´」)、第3楽節の楽節記号として「C」(又は「B」)、第4楽節の楽節記号として「C´」(又は「B´」)が付されたとすると、楽節構成データは「ABCC´」(又は「AA´BB´」)のように表わされる。この実施例では、「A」の楽節にメロディが類似するものを「A´」のように元の記号に「´」(ダッシュ)記号を付して表わし、「A」の楽節にメロディが類似しない(非類似)のものを別の記号「B」・「C」で表わす。曲テンプレートは、コード進行データと楽節構成データとが適宜に組み合わされたデータである。後述するように、1つの曲テンプレートは、1つのコード進行データに対して複数の楽節構成データを組み合わせたもの、1つのコード進行データに対して1つの楽節構成データを組み合わせたもの、さらに1つの楽節構成データとそれに対応する複数のコード進行データを組み合わせたもの等がある。このように構成された曲テンプレートを用いることによって、コード進行データ及び楽節構成データを別々に選択することなく、音楽的に適切に組み合わされたコード進行データと楽節構成データとを簡単に選択できるので、初心者であっても音楽的に適切なメロディを簡単に作曲することができるようになっている。
【0020】
この実施の形態ではコード進行データと楽節構成データとを適宜別々に選択して組み合わせることによって、多彩なメロディを生成することができるようになっている。すなわち、この場合にはコード進行データと楽節構成データとを組み合わせた曲テンプレートを使用しない。コード進行データと楽節構成データを別々に取得する方法には各種の方法があり、以下にその方法を示す。このコード進行データと楽節構成データの取得方法において、楽節構成データを得てからコード進行データを取得する方法と、コード進行データを得てから楽節構成データを取得する方法とでは手法が異なることから、それぞれを分けて説明する。
【0021】
まず、楽節構成(データ)を特定(決定若しくは取得)してから後に、コード進行(データ)を特定(決定若しくは取得)する方法について説明する。図2は、楽節構成(データ)を特定してからコード進行(データ)を特定してメロディを生成(作曲)するまでの処理の流れを概念的に示した概念図である。
図2の例においては、まずユーザが所望の生成音楽条件(メロディ生成条件)を指定し、これに応じて楽節構成を決定(若しくは取得)した後に該楽節構成に対応するコード進行を決定(若しくは取得)し、このコード進行から各コード区間毎に利用可能音階(アヴェイラブル・ノート・スケール:以下AVNSと略称する)を検出し、この検出結果及び楽節構成及びコード進行を基にメロディを生成する。ただし、コード進行で規定される各コード区間毎に該コードに応じたAVNSを検出するか否かは、メロディ生成を行うアルゴリズムがAVNSを必要とするか否かによって変わる。したがって、AVNSが不要である場合には、AVNSを検出しなくてよい。
以下に示す(1−1)から(1−20)までの例により、楽節構成(データ)を決定(若しくは取得)してからコード進行(データ)を決定(若しくは取得)する手法についての様々な具体例を示す。
【0022】
(1−1)楽節構成を直接手で入力し、さらに対応するコード進行も直接手で入力する。すなわち、外部記憶装置9等に記憶した楽節構成(データ)やコード進行(データ)あるいはこれらを組み合わせた曲テンプレートを用いることなく、ユーザが直接に所望の楽節構成やコード進行を鍵盤4Aやスイッチ5A等を用いて入力する。例えば、ユーザが楽節構成として「ABCD」を入力した場合に、第1楽節「A」に対して「Cm・F・Cm」、第2楽節「B」に対して「C7・Cm」、第3楽節「C」に対して「Am・G7」、第4楽節「D」に対して「Cm」等のように、各楽節「A」「B」「C」「D」に対して各々コード進行が入力される。コード進行を入力する場合に、所定の音楽条件を指示すると当該音楽条件に合致するコードが複数提示され、ユーザが当該コードを適宜に選択することでコード進行を入力するようにしてもよい。例えば、音楽条件として「ダイアトニック」を指示すると「ダイアトニックコード」がディスプレイ6A上に表示され、ユーザはその中からコードを適宜に選択していくことでコード進行を入力することができるようにしてよい。また、楽節構成に合致するように、同一/同類楽節記号が付された楽節におけるコード進行の入力については、同一/同類コードを入力するように促す等の入力補助が行われるようにしてもよい。
(1−2)楽節構成を直接手で入力し、対応するコード進行を自動生成する。楽節構成を直接手で入力した後、次に示すようにして該楽節構成に対応するコード進行を自動生成する。例えば、1つの楽節を4小節、1小節を2コードで構成する曲の場合に、手で入力した楽節構成が8楽節構成であったとすると、64コード(8楽節×4小節×2コード)を自動生成する。コードはランダムに生成されてよいが、調のダイアトニックコードだけを使用してコードを生成するようにしてもよい。このとき、楽節構成を考慮して、1つの楽節ごとにまとまりがあるコード進行となるように、同一楽節記号が付された楽節においては同一コード進行を形成するようにコードを生成するとなおよい。また、本出願人が既に提案済の「コード進行生成機」(特願平10−333781)で用いたように、最初に簡単なコード進行を作成してから、これを複雑なコードを用いて変更するようにしてもよい。なお、同一楽節記号では同一コード進行にするなどのように、楽節構成を反映してコード進行を生成するとよい。
(1−3)楽節構成を直接手で入力し、一方、データベースに基本となるコード進行を記憶しておき(これをコード進行雛型テンプレートと呼ぶ)、データベースに複数記憶されたコード進行のいずれかを所定の音楽条件で選択し、選択されたコード進行が楽節構成と対応するコード進行であれば選択したコード進行をそのまま使用し、楽節構成と対応しないコード進行であれば該コード進行を修正して使用する。すなわち、楽節数(すなわち、楽節構成における楽節の数)と音楽条件(フィーリングなど)を引数とするコード進行をデータベースにストアしておいて、ユーザが入力した楽節数と音楽条件とに該当するコード進行をデータベースから選択し抽出する。直接入力された楽節構成の楽節に応じてコード進行を対応付ける際に、当該楽節の前に同一の楽節記号が付された楽節がある場合には前の楽節に対応付けされたコード進行と同一のコード進行となるように修正されてから対応付けする。当該楽節の前に同類楽節記号が付された楽節がある場合には、抽出されたコード進行の一部を(例えば前半)同類楽節記号が付された楽節に対応付けされたコード進行と同一となるように修正されてから対応付けする。反対に、異なる楽節間で同一のコード進行を対応付けた際に、同一のコード進行を対応付けた各楽節に付されている楽節記号が同一でない場合には、各楽節間に対応付けられたコード進行が同一とならないように適宜にコード進行を修正する。
(1−4)楽節構成を直接手で入力し、既存技術を利用して対応するコード進行を得て、得られたコード進行を必要に応じて修正する。既存技術を利用してコード進行を得る方法として、
A.入力された楽節構成から得られる楽節数に該当する既存メロディのMIDIデータ等を解析してコード進行を検出後、検出されたコード進行が入力された楽節構成と対応していたら該コード進行を使用し、検出されたコード進行が入力された楽節構成と対応していなかったら該コード進行を修正して使用する。
B.入力された楽節構成から得られる楽節数に該当する既存メロディを楽譜認識してMIDIデータを生成し、該MIDIデータを解析してコード進行を検出後、検出されたコード進行が入力された楽節構成と対応していたら該コード進行を使用し、検出されたコード進行が入力された楽節構成と対応していなかったら該コード進行を修正して使用する。
C.入力された楽節構成から得られる楽節数に該当する既存メロディの楽音信号をピッチ検出してMIDIデータを生成し、該MIDIデータを解析してコード進行を検出後、検出されたコード進行が入力された楽節構成と対応していたら該コード進行を使用し、検出されたコード進行が入力された楽節構成と対応していなかったら該コード進行を修正して使用する。
等の各種の方法がある。
【0023】
(1−5)楽節構成を自動生成し、対応するコード進行を直接手で入力する。楽節構成は、以下のルール1〜ルール4に基く演算を行うことによって自動的に生成される。
ルール1:楽節構成は、アルファベット大文字の列で表記すること。
ルール2:各楽節に付される楽節記号はアルファベットのAからZまでと、それぞれに「´」(ダッシュ)記号を付したものであること。
ルール3:楽節記号として出現する順序は、AからZまでのアルファベット順序に従って降順であること。ただし、アルファベット順序を飛ばして楽節を構成してはいけない(例えば、「ACD」や「BCD」等は不可)。また、「´」(ダッシュ)記号を付したアルファベット(例えば「A´」)は「´」記号を付していないアルファベット(例えば「A」)よりも後に出現するように構成すること(例えば「AA´」の順序は可であり、「A´A」の順序は不可)。ただし、「´」記号を付したアルファベットは該「´」記号を付していないアルファベットよりも後に出現すれば、どこに出現してもよい。Zよりも後であってもよい。
ルール4:出現するアルファベットは、Zまで使わなくてもよい。
以上のルールに従って自動生成される楽節構成の例を示すと、「A」(楽節数1の場合)、「AA」「AA´」「AB」(楽節数2の場合)、「AAA」「AAA´」「AAB」「AA´A」「AA´A´」「AA´B」「ABA」「ABA´」「ABB」「ABC」(楽節数3の場合)等のようになる。更に音楽条件として、「同一繰り返しなし」のように指定して楽節構成を自動生成するようにしてもよい。この場合に自動生成される楽節構成は、「AA´B」「ABA´」「ABC」(楽節数3の場合)である。なお、いくつかの楽節構成の候補をディスプレイ6A上に提示して、ユーザが選択できるように構成してもよい。
こうして自動生成された楽節構成をみて、対応するコード進行を手で入力する。勿論、コード進行を入力するための入力補助があってよい。
(1−6)楽節構成を自動生成し、対応するコード進行も自動生成する。この方法は、楽節構成の自動生成については上記(1−5)と同様であり、コード進行の自動生成については上記(1−2)と同様であることから、説明を省略する。
(1−7)楽節構成を自動生成した後に、データベースに複数記憶された基本となるコード進行(コード進行雛型テンプレート)のいずれかを所定の音楽条件で選択し、選択されたコード進行が自動生成された楽節構成と対応している場合には該コード進行を使用し、選択されたコード進行が自動生成された楽節構成と対応していない場合には該コード進行を修正して使用する。この方法は、楽節構成の自動生成については上記(1−5)と同様であり、コード進行生成については上記(1−3)と同様であることから、説明を省略する。
(1−8)楽節構成を自動生成し、既存技術を利用して対応するコード進行を得て、必要に応じて該コード進行を修正する。この方法は、楽節構成の自動生成については上記(1−5)と同様であり、コード進行生成については上記(1−4)と同様であることから、説明を省略する。
【0024】
(1−9)複数記憶された楽節構成からいずれか1つを選択し、対応するコード進行を直接手で入力する。楽節の繰り返し状態などの所定の音楽条件に応じて、複数記憶された楽節構成からいずれか1つを選択する。例えば、楽節数3で繰り返し部分1回という音楽条件が入力された場合、「AAA´」「AAB」「AA´A」「AA´A´」「ABA」「ABB」といった楽節構成が候補として選択され、この中からランダムに1つの楽節構成が選択される。その後、この楽節構成に合致すべくコード進行を手で入力する。勿論、コード進行を入力するための入力補助があってよい。
(1−10)複数記憶された楽節構成からいずれか1つを選択し、対応するコード進行を自動生成する。この場合、楽節構成生成については上記(1−9)と同様であり、コード進行の自動生成については上記(1−2)と同様であることから、説明を省略する。
(1−11)複数記憶された楽節構成からいずれか1つを選択した後に、データベースに複数記憶された基本となるコード進行(コード進行雛型テンプレート)のいずれかを所定の音楽条件で選択し、該コード進行が選択されている楽節構成と対応している場合には該コード進行をそのまま使用し、該コード進行が選択されている楽節構成と対応していない場合には該コード進行を修正して使用する。この場合、楽節構成生成については上記(1−9)と同様であり、コード進行生成については上記(1−3)と同様であることから、説明を省略する。
(1−12)複数記憶された楽節構成からいずれか1つを選択し、既存技術を利用して対応するコード進行を得て、得られたコード進行を必要に応じて修正する。この場合、楽節構成生成については上記(1−9)と同様であり、コード進行生成については上記(1−4)と同様であることから、説明を省略する。
【0025】
(1−13)データベースに複数記憶した基本となる楽節構成(これを楽節構成雛型テンプレートと呼ぶ)のいずれかを選択し修正した後に、対応するコード進行を直接手で入力する。このデータベースに複数記憶した基本となる楽節構成を選択し修正する方法については、後述する。その後、このようにして生成された楽節構成をみて、対応するコード進行を手で入力する。勿論、コード進行を入力するための入力補助があってよい。
(1−14)データベースに複数記憶した基本となる楽節構成(楽節構成雛型テンプレート)のいずれかを選択し修正した後に、対応するコード進行を自動生成する。この場合、楽節構成生成については上記(1−13)と同様であり、コード進行の自動生成については上記(1−2)と同様であることから、説明を省略する。
(1−15)データベースに複数記憶した基本となる楽節構成(楽節構成雛型テンプレート)のいずれかを選択し修正した後に、データベースに複数記憶された基本となるコード進行(コード進行雛型テンプレート)のいずれかを所定の音楽条件で選択し、該コード進行が選択されている楽節構成と対応している場合には該コード進行をそのまま使用し、該コード進行が選択されている楽節構成と対応していない場合には該コード進行を修正して使用する。この場合、楽節構成生成については上記(1−13)と同様であり、コード進行生成については上記(1−3)と同様であることから、説明を省略する。
(1−16)データベースに複数記憶した基本となる楽節構成(楽節構成雛型テンプレート)のいずれかを選択し修正した後に、既存技術を利用して対応するコード進行を得て、得られたコード進行を必要に応じて修正する。この場合、楽節構成生成については上記(1−13)と同様であり、コード進行生成については上記(1−4)と同様であることから、説明を省略する。
【0026】
(1−17)既存技術を利用して楽節構成を得た後、対応するコード進行を直接手で入力する。例えば、ユーザが楽節構成として使用したい既存曲を選択し、該既存曲の楽節構成を楽譜認識することで得た後に、対応するコード進行を直接手で入力する。楽節構成を得る際に、MIDIデータやコード進行から自動的に楽譜構成を解析するようにしてもよい。また、コード進行を入力するための入力補助があってよい。
(1−18)既存技術を利用して楽節構成を得た後、対応するコード進行を自動生成する。この場合、楽節構成生成については上記(1−17)と同様であり、コード進行の自動生成については上記(1−2)と同様であることから、説明を省略する。
(1−19)既存技術を利用して楽節構成を得た後に、データベースに複数記憶された基本となるコード進行(コード進行雛型テンプレート)のいずれかを所定の音楽条件で選択し、選択されたコード進行が生成された楽節構成と対応している場合には該コード進行を使用し、選択されたコード進行が自動生成された楽節構成と対応していない場合には該コード進行を修正して使用する。この場合、楽節構成生成については上記(1−17)と同様であり、コード進行生成については上記(1−3)と同様であることから、説明を省略する。
(1−20)既存技術を利用して楽節構成を得た後、既存技術を利用して対応するコード進行を得、必要に応じて該コード進行を修正して使用する。この場合、楽節構成生成については上記(1−17)と同様であり、コード進行生成については上記(1−4)と同様であることから、説明を省略する。
【0027】
上述した実施例では楽節構成(データ)を特定(決定若しくは取得)した後にコード進行(データ)を特定(決定若しくは取得)する方法について説明したが、これとは反対に、コード進行(データ)を特定(決定若しくは取得)した後に楽節構成(データ)を特定(決定若しくは取得)する方法がある。以下、この方法について説明する。図3は、コード進行(データ)を特定してから楽節構成(データ)を特定してメロディを生成(作曲)するまでの処理の流れを概念的に示した概念図である。
図3の例においては、まずユーザが所望の生成音楽条件(メロディ生成条件)を指定し、これに応じてコード進行を決定(若しくは取得)した後に該コード進行に基づいて楽節構成を決定(もしくは取得)し、さらに得られたコード進行からAVNS(アヴェイラブル・ノート・スケール)を検出し、この検出結果及び楽節構成及びコード進行を基にメロディを生成する。ただし、コード進行で規定される各コード区間毎に該コードに応じたAVNSを検出するか否かは、メロディ生成を行うアルゴリズムがAVNSを必要とするか否かによって変わる。したがって、AVNSが不要である場合には、AVNSを検出しなくてよい。
以下に示す(2−1)から(2−20)までの例により、コード進行(データ)を決定(若しくは取得)してから楽節構成(データ)を決定(若しくは取得)する方法についての様々な具体例を示す。
【0028】
(2−1)コード進行データを直接手で入力し、さらに対応する楽節構成を直接手で入力する。すなわち、外部記憶手段9等に記憶した楽節構成(データ)やコード進行(データ)あるいは曲テンプレートを用いることなく、ユーザが直接に所望の楽節構成やコード進行を鍵盤4Aやスイッチ5A等を用いて入力する。このように、予め記憶したデータを使用することなく、ユーザが手で直接入力した楽節構成やコード進行を使用する。この場合に、入力したコード進行から楽節の同一/同類/非同類の状態を検出し、対応する楽節記号の入力を促す等の楽節構成の入力補助を行うようにしてもよい。
(2−2)コード進行を直接手で入力し、対応する楽節構成を自動生成する。コード進行を手で入力する際に、所定の楽節区間(例えば4小節)で区切れるように楽節区間の整数倍の数だけコードを入力してコード進行を生成する。例えば、1つの楽節を4小節、1小節を2コードで構成する曲の場合に、8楽節構成のコード進行を生成するには、64個のコード(8楽節×4小節×2コード)を入力する。楽節構成の自動生成では、入力したコードを所定楽節毎に区切り、先頭楽節に付する楽節記号を「A」として、以下順番に次のルール1〜ルール3に基いて楽節毎に楽節記号を付して楽節構成を生成する。
ルール1:新たに楽節記号を付す楽節におけるコード進行と同一のコード進行が行われている楽節が既に出現していたら、該楽節に付された楽節記号と同一の記号を新たに楽節記号を付す楽節に付すること。
ルール2:新たに楽節記号を付す楽節の一部区間におけるコード進行が、既に出現した楽節の一部区間におけるコード進行と同一であるならば、該楽節に付された楽節記号に対する類似記号(例えば、「´」(ダッシュ)記号)を新たに楽節記号を付す楽節に付すること。
ルール3:新たに楽節記号を付す楽節におけるコード進行が既に出現した楽節におけるコード進行とまったく異なる場合には、アルファベット順序における降順で既に出現した楽節に付された楽節記号と異なる記号を新たに楽節記号を付す楽節に付すること。
以上のルールに従って、楽節構成を自動生成する。ただし、生成する楽節構成において繰り返しを多くしたくないような場合、コード進行が同一/同類の楽節であっても、あえて同一記号・類似記号を楽節に付さないようなアルゴリズムを用いるようにしてもよい。極端な場合として、楽節毎に全て異なる楽節記号を付するようなアルゴリズムであってもよい。この点に関しては、以下の他の方法においても同様である。ただし、以下では手で楽節毎に全て異なる楽節記号を付する場合もある。
(2−3)コード進行を直接手で入力し、一方、データベースに基本となる楽節構成(楽節構成雛型テンプレート)を記憶しておき、複数記憶された楽節構成のいずれかを所定の音楽条件で選択し、選択された楽節構成がコード進行と対応していれば選択した楽節構成をそのまま使用し、コード進行と対応していない楽節構成であれば該楽節構成を修正して使用する。コード進行を直接手で入力する場合には、楽節数を指定して(あるいは、楽節数を判定して)入力する。雛型となる楽節構成は指定した楽節数に応じて選択され、候補が複数存在した場合にはランダムに決定する。すなわち、楽節数を引数とする楽節構成をデータベースにストアしておいて、ユーザが入力した楽節数に該当する楽節構成をデータベースから選択し抽出する。例えば、楽節数「3」では「AAA」「AAA´」「AAB」「AA´A」「AA´A´」「AA´B」「ABA」「ABA´」「ABB」「ABC」が候補として選択され、この中からランダムに決定される。又は、上記したような候補をディスプレイ6A上に表示して、ユーザが選択できるようにしてもよい。こうして得られた楽節構成が入力されたコード進行と一致していない場合には、該楽節構成を修正する。この楽節構成の修正方法を修正1〜修正3として以下に示すと、
修正1:コード進行を得た結果、ある楽節と同一記号である楽節のコード進行において、楽節後半区間のコード進行を構成するコードが1つでも異なった場合には、同類楽節記号または異楽節記号へ楽節記号を変更する。楽節前半区間のコード進行を構成するコード、楽節後半区間のコード進行を構成するコードが共に1つでも異なった場合には、異楽節記号へ楽節記号を変更する。
修正2:コード修正の結果、ある楽節と同類記号であった楽節のコード進行において、楽節前半のコード進行を構成するコードが1つでも異なった場合には、異楽節記号へ楽節記号を変更する。
ただし、上記修正1及び修正2のいずれの方法においても、変更した楽節記号が既に存在する場合には未使用で最も若い楽節記号へと変更を行う。
修正3:コード修正の結果、異楽節記号であった楽節のコード進行と既存楽節のコード進行とが全く同一になった場合には、その楽節記号へ変更してもよい。
この楽節記号を変更するかしないかの決定は、ランダムに決定を行うようにしてよい。既存楽節の前半区間におけるコード進行と同一になった場合には、既存楽節記号に「´」(ダッシュ)記号を付した楽節記号に変更してもよい。ただし、既存楽節記号に「´」(ダッシュ)記号を付した楽節が既に存在していて、該楽節におけるコード進行とコード進行が異なる場合には、異楽節記号へ楽節記号を変更する。
なお、コード進行を直接手で入力する場合、楽節数を指定して入力しなくても、コード進行を楽節の整数倍になるような長さにしておき、楽節数を検出して入力するようにしてもよい。
(2−4)コード進行を直接手で入力し、既存技術を利用して対応する楽節構成を得、得られた楽節構成を必要に応じて修正する。上記(2−3)においては、データベースに基本となる楽節構成を記憶させてこれを読み出していたが、ここでは楽節構成を印刷した紙を文字認識(楽譜認識)で読み取ることによる。その後の修正の方法は、上記(2−3)で記載した修正1〜修正3と同様である。勿論、既存曲のMIDIデータやコード進行の解析結果から楽節構成を得るようにしてもよい。
【0029】
(2−5)コード進行を自動生成し、対応する楽節構成を直接手で入力する。例えば、1つの楽節を4小節、1小節を2コードで構成する曲の場合に、楽節構成が8楽節構成であったとすると、64コード(8楽節×4小節×2コード)を自動生成する。コードはまったくランダムに生成されてもよいが、調のダイアトニックコードだけを使用する等のように、所定の条件にあったコードだけを生成するようにしてもよい。このとき、楽節構成を考慮して、8コード(4小節×2コード)ごとにまとまりがあるコード進行にするとよい(1つの楽節を4小節、1小節を2コードで構成した場合)。また、本出願人が既に提案済みのコード進行生成機(特願平10−333781)で用いたように、2段階で複雑なコード進行を得るようにしてもよい。こうしてコード進行が生成された後に、該コード進行を見ながら、ユーザは手で楽節構成を入力する。この場合に、生成したコード進行から楽節の同一/同類/非同類の状態を検出し、対応する楽節記号の入力を促す等の楽節構成の入力補助を行うようにしてもよい。
(2−6)コード進行を自動生成し、対応する楽節構成も自動生成する。この方法は、コード進行の自動生成については上記(2−5)と同様であり、楽節構成の自動生成については上記(2−2)と同様であることから、説明を省略する。
(2−7)コード進行を自動生成し、一方、データベースに基本となる楽節構成を記憶しておき(楽節構成雛型テンプレート)、データベースに複数記憶された楽節構成のいずれかを所定の音楽条件で選択し、選択された楽節構成がコード進行と対応していれば選択した楽節構成をそのまま使用し、コード進行と対応していない楽節構成であれば該楽節構成を修正して使用する。この方法は、コード進行の自動生成について上記(2−5)と同様であり、楽節構成生成については上記(2−3)と同様であることから、説明を省略する。
(2−8)コード進行を自動生成し、既存技術を利用して対応する楽節構成を得て、得られた楽節構成を必要に応じて修正する。この方法は、コード進行の自動生成については上記(2−5)と同様であり、楽節構成生成については上記(2−4)と同様であることから、説明を省略する。
【0030】
(2−9)複数記憶されたコード進行からいずれか1つを選択し、対応する楽節構成を直接手で入力する。例えば、フィーリング別に複数のコード進行を記憶させておき、記憶されたコード進行の中からいずれかのコード進行を所定の条件に基づいて選択する。候補が複数存在する場合には、ランダムに選択する。このコード進行を見ながら、ユーザは手で楽節構成を入力する。データベースに記憶するコード進行は、楽節毎に区切りやすいようコード数を決めて記憶しておくと、楽節構成を求めやすい。コード進行の繰り返し状態などの所定の音楽条件に応じて、複数記憶するコード進行からいずれか1つを選択する。その後、決定したコード進行に合致すべく手で楽節構成を入力する。勿論、楽節構成を入力するための入力補助があってよい。
(2−10)複数記憶されたコード進行からいずれか1つを選択し、対応する楽節構成を自動生成する。コード進行生成については上記(2−9)と同様であり、楽節構成の自動生成については上記(2−2)と同様であることから、説明を省略する。なお、記憶されるコード進行は楽節毎に区切りやすいようにコード数を決めておくとよい。
(2−11)複数記憶されたコード進行からいずれか1つを選択し、一方、データベースに基本となる楽節構成を記憶しておき(楽節構成雛型テンプレート)、データベースに複数記憶された楽節構成のいずれかを所定の音楽条件で選択し、選択された楽節構成がコード進行と対応していれば選択した楽節構成をそのまま使用し、コード進行と対応していない楽節構成であれば該楽節構成を修正して使用する。この場合、コード進行生成については上記(2−9)と同様であり、楽節構成生成については上記(1−3)と同様であることから、説明を省略する。
(2−12)複数記憶されたコード進行からいずれか1つを選択し、既存技術を利用して対応する楽節構成を得て、得られた楽節構成を必要に応じて修正する。この場合、コード進行生成については上記(2−9)と同様であり、楽節構成生成については上記(2−4)と同様であることから、説明を省略する。
【0031】
(2−13)データベースに複数記憶した基本となるコード進行(コード進行雛型テンプレート)のいずれかを選択し修正した後に、対応するコード進行を直接手で入力する。例えば、フィーリング別に複数のコード進行雛型テンプレートを記憶しておき、所定の条件に基づいていずれかのコード進行雛型テンプレートを選択する。候補が複数存在したら、ランダムに決定する。コード進行の修正方法としては、ユーザが1つ1つのコードを手で変更する方法、あるいは所定の音楽条件に基づいて変更可能なコードの候補(例えば、「3コード」という条件で主要3和音、「ダイアトニック」という条件でダイアトニックコード、「代理コード」という条件で代理コード)を提示し選択する方法がある。修正後、このコード進行をみて、ユーザが手で楽節構成を入力する。勿論、楽節構成を入力するための入力補助があってよい。
(2−14)データベースに複数記憶した基本となるコード進行(コード進行雛型テンプレート)のいずれかを選択し修正した後に、対応する楽節構成を自動生成する。この場合、コード進行生成については上記(2−13)と同様であり、楽節構成の自動生成については上記(2−2)と同様であることから、説明を省略する。
(2−15)データベースに複数記憶した基本となるコード進行(コード進行雛型テンプレート)のいずれかを選択し修正した後に、データベースに複数記憶された基本となる楽節構成(楽節構成雛型テンプレート)のいずれかを所定の音楽条件で選択し、該楽節構成が選択されているコード進行と対応している場合には該楽節構成をそのまま使用し、該楽節構成が選択されているコード進行と対応していない場合には該楽節構成を修正して使用する。この場合、コード進行生成については上記(2−13)と同様であり、楽節構成生成については上記(2−3)と同様であることから、説明を省略する。
(2−16)データベースに複数記憶した基本となるコード進行(コード進行雛型テンプレート)のいずれかを選択し修正した後に、既存技術を利用して対応する楽節構成を得て、得られた楽節構成を必要に応じて修正する。この場合、コード進行生成については上記(2−13)と同様であり、楽節構成生成については上記(2−4)と同様であることから、説明を省略する。
【0032】
(2−17)既存技術を利用してコード進行を得た後、対応する楽節構成を直接手で入力する。例えば、ユーザがコード進行を使用したい既存曲を選択し、該既存曲のコード進行を楽譜認識することで得た後、対応する楽節構成を直接手で入力する。勿論、楽節構成を入力するための入力補助があってよい。なお、コード進行を既存曲から得る際には、MIDIデータ等を自動的に解析してコード進行を得るようにしてもよい。この場合、コード進行生成については上記(1−4)と同様であることから説明を省略する。
(2−18)既存技術を利用してコード進行を得た後、対応する楽節構成を自動生成する。この場合、コード進行生成については上記(1−4)と同様であり、楽節構成の自動生成については上記(2−2)と同様であることから、説明を省略する。
(2−19)既存技術を利用してコード進行を得た後、データベースに複数記憶された基本となる楽節構成(楽節構成雛型テンプレート)のいずれかを所定の音楽条件で選択し、該楽節構成が得られたコード進行と対応している場合には該楽節構成をそのまま使用し、該楽節構成が得られたコード進行と対応していない場合には該楽節構成を修正して使用する。この場合、コード進行生成については上記(1−4)と同様であり、楽節構成生成については上記(2−3)と同様であることから、説明を省略する。
(2−20)既存技術を利用してコード進行を得た後、既存技術を利用して対応する楽節構成を得て、得られた楽節構成を必要に応じて修正する。この場合、コード進行生成については上記(1−4)と同様であり、楽節構成生成については上記(2−4)と同様であることから、説明を省略する。
【0033】
なお、上述した実施形態において、データを得る手順として楽節構成データを決定(若しくは取得)してからコード進行データを決定(若しくは取得)する方法と、コード進行データを決定(若しくは取得)してから楽節構成データを決定(若しくは取得)する方法のいずれかをユーザが選択できるようにしてよい。
なお、楽節構成やコード進行の各決定(若しくは取得)方法をユーザが任意に選択できるようにしてもよいし、各決定(若しくは取得)方法の組み合わせのいくつかを予め用意しておき、ユーザはその中から選択するようにしてもよい。また、全組み合わせを選択可能とするものに限らず、選択できない組み合わせがあってもよい。また、特定の組み合わせのみを可能とするようにしてもよい。
【0034】
以上のように、コード進行データと楽節構成データとを適宜別々に選択して組み合わせることによって、多彩なメロディを生成することができるようになっている。すなわち、上述した各実施例においては、ユーザ自身が楽節構成(あるいはコード進行)にあわせてコード進行(あるいは楽節構成)を手で入力したり、データベースに記憶されたコード進行(あるいは楽節構成)を選択・修正して、コード進行と楽節構成とを組み合わせて、これを基にメロディ生成を行っている。しかし、上述した方法では、生成されるメロディの出来がユーザの音楽的知識等を含むメロディ作成能力に左右されることから、特に音楽的知識の乏しい初心者にとっては上述した方法によって最適なコード進行と楽節構成との組み合わせを作成することは困難である。そこで、音楽的に最適なコード進行と楽節構成を組み合わた曲テンプレートをデータベースに記憶しておき、ユーザは当該曲テンプレートのコード進行と楽節構成を使用することで、音楽的に最適なメロディを生成するようにした実施例を次に示す。
【0035】
まず、1つのコード進行と複数の楽節構成とを組み合わせて記憶した1つの曲テンプレートを所定のメロディ生成条件(音楽条件)で選択し、該曲テンプレートの複数楽節構成のいずれかの楽節構成を選択して、これらをメロディ生成に利用する方法について説明する。図4は、該曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
曲テンプレートはメロディ生成のためのコード進行データベースとして外部記憶装置9等に予め複数記憶されており、該曲テンプレートには1つのコード進行と複数の楽節構成とが組み合わされて記憶される。この複数曲テンプレートのうちのいずれかが、入力されたメロディ生成条件に従って選択される。すなわち、入力されたメロディ生成条件に基づいて曲テンプレートが検索され、当該メロディ生成条件に合致するコード進行が記憶された曲テンプレートが選択される。こうして、コード進行が取り出しされる。例えば、「楽しい」というキーワードからなるメロディ生成条件が入力された場合にはメジャーコードの多いコード進行が記憶された曲テンプレートが選択されるし、「やさしい」というキーワードからなるメロディ生成条件が入力された場合にはテンションの多いコード進行が記憶された曲テンプレートが選択される。このようにメロディ生成条件としてキーワードを用いて曲テンプレートを選択する場合には、コード進行毎に当該コード進行に対応するキーワード(例えば「楽しい」「やさしい」「悲しい」等)を登録しておき、入力されたメロディ生成条件に対応するキーワードに従って検索を行うことで適切な曲テンプレートを選択して、コード進行を抽出する。勿論、このようなキーワード検索でなく、ランダムに若しくはその他適宜の手法で曲テンプレートを選択するようにしてもよい。
【0036】
上述したように、1つの曲テンプレートには、コード進行に対して複数の楽節構成が組み合わされて記憶されている。そこで、この複数記憶された楽節構成の中からメロディ生成条件に合致する楽節構成を抽出して取り出す。すなわち、メロディ生成条件に基づいて、複数登録されている楽節構成の中から1つの楽節構成を選択する。例えば、「繰り返しが多い」というメロディ生成条件が入力された場合には繰り返しの多い楽節構成を選択するし、「3部構成」というメロディ生成条件が入力された場合には「ABC」「AA´B」などの3部構成からなる楽節構成を選択する。この楽節構成の選択に関しても、前記コード進行の選択と同様に、予め楽節構成毎に楽節構成に対応するキーワードを登録しておき、このキーワードに基づいて選択するようにすればよい。勿論、このようなキーワード検索でなく、ランダムに若しくはその他適宜の手法で選択するようにしてもよい。
こうして選択されたコード進行と楽節構成を利用して、メロディが生成される。なお、コード進行と楽節構成を利用してメロディを生成する方法は既に公知であることから、ここでの説明を省略する。
【0037】
次に、1つのコード進行と1つの楽節構成とを組み合わせて記憶した1つの曲テンプレートを所定のメロディ生成条件(音楽条件)で選択し、該曲テンプレートの楽節構成を変更して、これらをメロディ生成に利用する方法について説明する。図5は、該曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
曲テンプレートはメロディ生成のためのコード進行データベースとして外部記憶装置9等に予め複数記憶されており、該曲テンプレートには1つのコード進行と1つの楽節構成とが組み合わされて記憶される。この複数曲テンプレートのうちのいずれかが、入力されたメロディ生成条件に従って選択される。すなわち、入力されたメロディ生成条件に基づいて曲テンプレートが検索され、当該メロディ生成条件に合致するコード進行が記憶された曲テンプレートが選択される。これは、図4に示した実施例と同様である。1つの曲テンプレートには、1つのコード進行に対して1つの楽節構成が組み合わされて記憶されている。そこで、メロディ生成条件に基づいて1つの曲テンプレートを選択することで、1つのコード進行とこれに対応する1つの楽節構成とが取り出される。こうして取り出されたコード進行あるいは楽節構成に対し、メロディ生成条件に基づいてコード進行の変更あるいは楽節構成の変更が行われることがある。この場合、メロディ生成条件に基づいて、読み出されたコード進行あるいは楽節構成はその内容を変更される。例えば、「やさしい」というキーワードのメロディ生成条件が入力された場合には、コード進行に対してテンションを付加する。他にもコード進行内の各コードを代理コードやセカンダリドミナントなどに変更することもある。つまり、本出願人が既に提案している特願平10−333781の記載に見られるような変更方法を採用してよい。さらに、楽節構成の変更の際に、ユーザはどの楽節区間を変更しても良いことから、ユーザが変更する楽節区間を指定してすることができるようにしてよい。この楽節構成の変更手段は、テーブルによって変更する方法又は演算によって変更する方法の2種類の方法があり、これらについての詳細な説明は後述する。
このようにして選択された(あるいは選択・変更された)コード進行と楽節構成とを利用して、メロディを生成する。
【0038】
さらに、1つの楽節構成と複数のコード進行とを組み合わせて記憶した1つの曲テンプレートを所定のメロディ生成条件(音楽条件)で選択し、該曲テンプレートの楽節構成を変更して、これらをメロディ生成に利用する方法について説明する。図6は、該曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
曲テンプレートはメロディ生成のためのコード進行データベースとして外部記憶装置9等に予め複数記憶されており、該曲テンプレートには1つのコード進行と複数の楽節構成とが組み合わされて記憶される。この複数曲テンプレートのうちのいずれかが、入力されたメロディ生成条件に従って選択される。すなわち、入力されたメロディ生成条件に基づいて曲テンプレートが検索され、当該メロディ生成条件に合致する楽節構成が記憶された曲テンプレートが選択される。例えば、「繰り返しが多い」というメロディ生成条件が入力された場合には繰り返しの多い楽節構成を選択するし、「3部構成」というメロディ生成条件が入力された場合には「ABC」などの3部構成の楽節構成を選択する。1つの曲テンプレートには、1つの楽節構成に対して複数のコード進行が組み合わされて記憶されている。そこで、この複数記憶されたコード進行の中からメロディ生成条件に合致するコード進行を抽出して取り出す。すなわち、メロディ生成条件に基づいて、複数登録されているコード進行の中から1つのコード進行を選択する。このようにして選択されたコード進行と楽節構成を利用して、メロディを生成する。なお、図6には記載していないが、この場合においても曲テンプレートから抽出したコード進行あるいは楽節構成をメロディ生成条件に基づいて変更し、これに従ってメロディを生成するようにしてよいことは言うまでもない。
【0039】
ここで、曲テンプレートから抽出した楽節構成の変更方法について簡単に説明する。
まず、テーブルを参照して楽節構成を変更する方法について説明する。図7は、楽節構成別変更可能テーブルの一実施例を示す図である。図7では、左側に変更前の楽節構成を示し、右側に変更可能な楽節構成を変更前の楽節構成に対応するようにして示している。
楽節構成を変更する際に、この楽節構成別変更可能テーブルを参照して、当該テーブルに基づいて楽節構成の変更が行われる。すなわち、楽節構成を変更する際に、当該テーブルに基づいて変更対象となった楽節構成を参照し、それに対応する変更可能な楽節構成をランダムに(あるいはユーザが指定して)決定する。例えば、変更前の楽節構成「AA」(上から2段目参照)を変更する際には「AA´」「AB」のどちらかの楽節構成にのみ変更可能であり、変更前の楽節構成「AAB」(上から7段目参照)を変更する際には「AA´B」「ABC」のどちらかの楽節構成にのみ変更可能である。このような楽節構成別変更可能テーブルを作成する利点は、変更したい楽節構成のみを登録しておくことができることである。すなわち、理論上では変更可能な楽節構成であっても、あまり使用頻度の少ない楽節構成であるような場合には該テーブルに登録しておかないことで、効率的に楽節構成の変更を行うことができるようになる。
【0040】
この楽節構成別変更可能テーブルには、次に示すような作成基準がある。例えば、既に現れた楽節記号と同一楽節記号部分又は類似楽節記号部分のメロディは、同一又は類似が可能であるが、異なるメロディであってもかまわない。異なる楽節記号に変更すれば異ならせることができる。反対に、異なる楽節記号部分のメロディを、既に存在する楽節記号あるいは類似楽節記号に変更することはできない。異なる楽節記号部分はコード進行が異なるので、既に存在する楽節記号部分あるいは類似楽節記号部分のメロディと同一または類似にはできない。
このようなテーブル作成の基準をルール化すると、以下のようになる。
ルール1:既に現れた楽節記号(例えば、「K」)と同一の楽節記号(「K」)は、使われていない類似楽節記号(「K´」)、または使われていない最も若い記号へ変更できる(例えば、「A」〜「L」までが既に使用されている場合には「M」が最も若い記号となる)。ただし、類似記号へは不可である。
ルール2:既に現れた楽節記号(「K」)と類似の楽節記号(「K´」)は、使われていない最も若い記号へ変更できる。ただし、類似記号へは不可である。
ルール3:変更した結果、アルファベットの出現順が昇順でなくなった場合には昇順に並びかえる。例えば、「AAB」をルール1によって「ACB」と変更してしまうと昇順でなくなることから、この場合は「ABC」のように楽節記号の並べかえを行う。
このようなルールにのっとって、図7に示すような内容の楽節構成別変更可能テーブルが作成される。
【0041】
次に、演算プログラムを使用して楽節構成を変更する方法について説明する。図8は、上述した楽節記号変更ルールに基づいて演算により楽節構成を変更する方法の一実施例を示したフローチャートである。以下、図8のフローチャートに従って、当該方法における動作例を説明する。 ステップS1では、変更対象とした楽節構成の楽節記号列をロードする。楽節記号列のロード後、当該楽節構成における楽節記号の数を検出して、変数CNに代入する(ステップS2)。例えば、変更対象とした楽節構成の楽節記号列として「AAB」がロードされた場合には、変数CNには「3」が代入される。次に、当該処理で使用するカウンタnに「1」を設定する(ステップS3)。このカウンタnは、当該処理において楽節区間毎(例えば、「A」「A」「B」毎)に楽節を変更していくための指標となるカウンタである。
【0042】
ステップS4では、カウンタnに対応する順番にある変更対象とした楽節構成の楽節記号(これを元の楽節記号と呼ぶ)をロードして、当該楽節記号を所定のメモリKnに代入する。すなわち、変更対象となる元の楽節記号をロードしてメモリKnに保持しておく。このメモリKnに代入された楽節記号が、既に(当該楽節記号が現れる以前に)現れた楽節記号であるか否かを判定する(ステップS5)。既に現れた楽節記号でない場合には(ステップS5のNO)、当該楽節記号は新規に現れた楽節記号であることから変更しない。そこで、次に変更対象となる楽節記号を得るために、カウンタnに1を足してから(ステップS16)、ステップS4の処理へ戻る。このように、ここで新規に現れた楽節記号は「´」(ダッシュ)記号付きにも「異なる楽節記号」(異記号)にも変更することができない。一方、既に現れた楽節記号である場合には(ステップS5のYES)、メモリKnに代入された楽節記号が「´」(ダッシュ)記号付きであるか否かを判定する(ステップS6)。すなわち、「´」(ダッシュ)記号付きの楽節記号は当該楽節記号を「異なる楽節記号」に、「´」(ダッシュ)記号付きでない楽節記号は当該楽節記号を「´」(ダッシュ)記号付きの楽節記号、あるいは「異なる楽節記号」に変更することができるため、ステップS6でどちらかを判定する。「´」(ダッシュ)記号付きの楽節記号である場合には(ステップS6のYES)、未使用で最も若い記号Lnを候補に登録する(ステップS10)。「´」(ダッシュ)記号付きの楽節記号でない場合には(ステップS6のNO)、ステップS7へ進む。ステップS7では、当該楽節記号に「´」(ダッシュ)記号を付けた楽節記号が既に存在していないかを判定する。存在していない場合には(ステップS7のNO)、当該楽節記号に「´」(ダッシュ)記号を付した楽節記号を変更候補として登録し(ステップS8)、さらに未使用で最も若い記号Lnを候補に登録する(ステップS9)すなわち、ここでは「´」(ダッシュ)記号付きの楽節記号が未だ存在していないのであれば、「´」(ダッシュ)記号付きの楽節記号に当該楽節記号を変更することができるのでそれを候補とし、さらに「´」(ダッシュ)記号付きの楽節記号としないで「異なる楽節記号」としてもよいことから、「異なる楽節記号」も候補として登録しておく。ステップS7において、当該楽節記号に「´」(ダッシュ)記号を付けた楽節記号が既に存在している場合には(ステップS7のYES)、未使用で最も若い記号Lnを候補に登録する(ステップS10)。すなわち、n番目の楽節記号が「´」(ダッシュ)記号付きの楽節記号である場合には、「異なる楽節記号」が候補として登録される。
【0043】
ステップS11では、当該楽節記号を候補として登録された楽節記号に変更するか否かの判定を、ユーザからの指示に従って判定する。すなわち、ユーザは所定の操作子5A等を用いて楽節記号を変更するか否かを指示することができる。この際に変更対象とする楽節記号は、ユーザが適宜の楽節区間を指定して変更してよい。登録された楽節記号に変更する場合(ステップS11のYES)、候補として登録されている楽節記号を採用する(ステップS12)。この際に、複数の候補が登録されている場合には、ランダムに選択する。すなわち、変更したい場合には、候補の中から変更する。元の楽節記号が「´」(ダッシュ)記号付きの楽節記号でない場合には、「´」(ダッシュ)記号付きの楽節記号と「異なる楽節記号」の両方が候補になるので、どちらかを選択する。ランダムに選択してもよいし、入力された音楽条件(例えば、「繰り返し性のある」等)に合致する楽節記号を選択するようにしてもよい。こうして採用された楽節記号を加えて、必要に応じて元の楽節記号列を昇順に並べかえる(ステップS13)。そして、元の楽節構成を新楽節構成に更新する(ステップS14)。
ステップS15では、カウンタnが最後まで実行したか否かを判定する。すなわち、ステップS2で得られた楽節記号数を代入した変数CNまでカウンタnが進んで、変更対象とされた楽節構成における全ての楽節記号について上記処理が行われたか否かを判定する。カウンタnが変数CNまで全て終了している場合(ステップS15のYES)には当該処理を終了し、全て終了していない場合には(ステップS15のNO)カウンタnに1をたして(ステップS16)更に処理を繰り返し続ける。
【0044】
以上の演算処理によって、楽譜構成の変更が行われる際の処理動作について具体例を用いて説明する。例えば、「AAB」という楽節記号列である楽節構成を変更する際の処理動作について説明する。
第1楽節の「A」はステップS5において「NO」と判定されることから、変更対象とならない。第2楽節の「A」はステップ5において「YES」と判定されて変更対象となる。そして、ステップS6及びステップS7では共に「NO」と判定されるので、ステップS8及びステップS9の処理が行われる。ステップS8の処理では、「A´」が候補として登録される。ステップS9では、未使用の記号で最も若い記号は「C」であることから、「C」が候補として登録される。ここで、「B」は既に第3楽節として使用されていることから候補とならない。そして、ステップS12で「C」が選択された場合、楽節構成は「ACB」となるので、ステップS13で「ABC」に並べかえる。ステップS14で、この「ABC」を新規楽節とし、第3楽節の「C」の変更処理に進む。「C」ではステップS5が「NO」と判定されるために、第3楽節「C」の変更は行われない。このようにして、変更した結果の楽節構成は「ABC」となる。あるいは、ステップS12において「A´」が選択された場合には、変更した結果の楽節構成は「AA´B」となる。なお、これらの結果が、図6に示した楽節構成別テーブルの上から7番目に示した内容と一致することは勿論である。
【0045】
なお、曲テンプレートのデータ構造は上述した実施例に限られるものではない。すなわち、楽節構成やコード進行の他にもデータを保持していてよい。また、曲テンプレートは、図4〜図6に示したように楽節構成とコード進行が同一の記憶領域に記憶されているものに限らず、異なる記憶領域に散在して記憶されていてもよい。すなわち、楽節構成データとコード進行データとを別々のメモリ上に記憶しておき、各々散在するデータを連続するデータとして別途管理するようにしてもよい。例えば、楽節構成データとコード進行データとを関連づけしたテーブルを用意し、このテーブルを参照することによって曲テンプレートが決定されるようにしてよい。
【0046】
なお、メロディ生成の方法は少なくとも楽節構成とコード進行を利用する方法であればどのような方法であってもよいが、楽節構成とコード進行に加えてブロック構成を用いてメロディを生成する方法もある。曲の構造としては、例えば冒頭部は緩やかに、中間部では激しく、最後部ではまた緩やかにというように曲全体にわたって起伏を持った構造とする場合が多い。そのような場合、中間部や最後部においては冒頭部と類似させたり対比させたりする構造がとられる。このように、曲構造は所定のひとまとまりの区間における曲の起伏を表現することから、この区間を決定し、この区間毎に与えられる異なるコード進行やメロディ生成条件等を用いてメロディを生成すると非常によい曲を生成することができる。このまとまった区間のことを「ブロック」と呼び、この実施例では「a」ブロック、「b」ブロックのようにアルファベットの小文字を用いて以下表記する。すなわち、「ブロック」は所定の区間における音楽の起伏を表現するものである(楽典では「形式」という表現で表わされ、例えば3部形式である場合の曲全体のブロック構成は「aba」のように表わされる)。この「ブロック」は楽節を1つまたは複数含んで構成されていることから、楽節構成が修正されたりあるいは新たに楽節構成が生成されたような場合には、該楽節構成に対応するブロック構成を新たに生成する必要がある。そこで、本発明に係る自動作曲装置では楽節構成に基づいてブロック構成を生成する。
以下、楽節構成に基づいてブロック構成を生成する方法について説明する。
【0047】
図9は、楽節構成からブロック構成を生成する方法の一実施例を示したフローチャートである。
まず、曲全体の楽節数を検出する(ステップS21)。すなわち、上述の図2あるいは図3で説明したように、ユーザが直接入力した楽節構成、自動生成した楽節構成、選択した既存の楽節構成(楽節構成雛型テンプレート)あるいは既存の楽節構成(楽節構成雛型テンプレート)を修正して得られる楽節構成などを構成している楽節の数を検出する。例えば、楽節構成が「AB」であれば楽節数は「2」、楽節構成が「ABA´」であれば楽節数は「3」と検出される。曲全体の楽節数を検出すると、該曲全体の楽節構成は所定の楽節記号(例えば「A」)のみで表現される楽節から構成されているか否かの判定を行う(ステップS22)。曲全体の楽節構成が所定の楽節記号(例えば「A」)のみで表現される楽節から構成されている場合(ステップS22のYES)、ブロック分割テーブルを参照して曲全体楽節数に対応する最優先分割に決定する(ステップS34)。
【0048】
ここで、ブロック分割テーブルについて簡単に説明する。図10は、ブロック分割テーブルの一実施例を示す図である。ただし、ここでは曲全体の楽節数が「6」〜「8」個のものを「2」〜「4」個のブロックに分割するためのテーブルを例に示した。この実施例では、横方向に分割対象とする曲全体の楽節数を示し、縦方向にブロック分割数を示した。
上述したように、ブロックはその一塊で音楽の起伏を表現するものである。曲全体において、このブロックの数が余り多いと緩急の変化頻度が多すぎて落ち着かない曲になり、余り少ないと緩急の変化頻度が少なすぎて退屈な曲になる。そこで、ある楽節数を持つ楽曲において、その楽節数に応じて望ましいブロック分割数及び分割内楽節数を図10に示すようなブロック分割テーブルに予め決めておく。例えば、楽節数が「6」である場合の曲を2分割すると2楽節と4楽節の組み合わせからなる2ブロック構成が適切なブロック構成となるし(ブロック分割テーブルでは単に「2+4」と表記している)、楽節数が「7」である場合の曲を3分割すると2楽節と3楽節と2楽節の組み合わせからなる3ブロック構成が適切なブロック構成となる(ブロック分割テーブルでは単に「2+3+2」と表記している)。また、楽節数毎に分割に対して優先度を付加する場合がある。図10では、優先度の高い順に1から順に数字を付している(すなわち、優先順位「1」が付された分割が最優先される分割である)。例えば、楽節数が「8」である場合には、優先順位「1」の「2+2+4」の3分割が最優先であり、優先順位「2」の「2+2+2+2」の4分割がこれに続く優先度の高い分割である。さらに、優先順位「3」の「2+1+2+3」、「2+2+3+1」「2+3+1+2」の4分割が次に続く優先度の高い分割である。ただし、複数の分割に対し同一の優先順位が付されている場合には、その複数の分割の中からランダムにいずれかを選択する。
なお、このように分割に優先度を付加すると、優先度の高い分割ばかりが採用されることが多くなることから、優先度を付加せずに全分割の中からランダムに選択するようにしてもよい。あるいは、ユーザの指定に従って選択するようにしてもよい。また、ブロック分割テーブルは図10に示した構成のものに限られないことは言うまでもない。
【0049】
図9に戻り、全体楽節が所定の楽節記号(例えば「A」)のみからなる場合には(ステップS22のYES)、図10に示す2分割から4分割の全ての分割が可能であり、検出された楽節数が例えば「8」である場合には最優先分割(すなわち、優先順位「1」)の「2+2+4」の3分割に決定される。例えば、「AAAAAAAA」のように同一の8個の楽節記号からなる楽節で構成されている楽節構成を分割する場合には、図10のブロック分割テーブルに従い最も優先度の高い「2+2+4」分割に決定され、「AA/AA/AAAA」(以下、分割区間の区切りを´/´(スラッシュ記号)で表示する)のように各楽節が分割されたブロック構成となる。
【0050】
一方、曲全体の楽節が所定の楽節記号(例えば「A」)のみで構成されていない場合には(ステップS22のNO)、曲全体の楽節数に対して図10のブロック分割テーブルに従い順次に分割をロードし(ステップS23)、曲全体楽節をその分割で区切る(ステップS24)。例えば、楽節構成「AAAABACC」をブロック分割テーブルに従い「AA/AABACC」(「2+6」の2分割)に区切る。ステップS25では、こうして区切られた楽節構成において、該区切りが所定の楽節記号(例えば「A」)以外の連続した同一楽節記号の途中で行われているか否かを判定する。該区切りが所定の楽節記号(例えば「A」)以外の連続した同一楽節記号の途中で行われている場合(ステップS25のYES)、ステップS23の処理に戻り、図10のブロック分割に従って次の分割について上記処理を繰り返す。他方、該区切りが所定の楽節記号(例えば「A」)以外の連続した同一楽節記号の途中で行われていない場合には(ステップS25のNO)、ステップS26の処理へ続く。上記ステップS23からステップS25の処理を行うことで、所定の楽節記号(例えば「A」)以外の連続した同一楽節記号の途中で分割を行わないようにしている。すなわち、同一楽節記号が連続する場合には、該楽節記号の先頭から曲の起伏が変わり、該楽節記号が連続する限りその変化した起伏が続いている状態であるために、連続した同一楽節記号の途中での分割は行わない方が好ましい。例えば、楽節構成「AAAABACC」をブロック分割テーブルに従って「AA/AA/BAC/C」(「2+2+3+1」の4分割)に区切って分割すると、連続する「C」を区切って分割することになるので、このような分割は不可とする。例えば、「AA/AA/BA/CC」(「2+2+2+2」の4分割)に区切って分割した場合には、連続した同一楽節記号の途中での分割が行われていないので、このような分割は可とする。
【0051】
ステップS26では、区切った各ブロックにおいて同一楽節構成があるか否かを判定する。同一楽節構成がない場合(ステップS26のNO)、ブロック分割テーブルの曲全体楽節数に対応する最優先分割に分割を決定する(ステップS34)。すなわち、同一楽節構成がない場合、各ブロックの楽節構成は類似区間(楽節記号の1つ以上が同一の区間)であるか、あるいは全く異なる区間(その楽節記号がその区間のみに出現している)であるかであり、このような場合にはどちらを採用してもよいことから、ブロック分割テーブルに従って最優先分割を行う。同一楽節構成がある場合(ステップS26のYES)、同一楽節構成を持つブロック数をカウントする(ステップS27)。例えば、楽節構成「ABABCDCD」を「AB/AB/CDCD」(「2+2+4」の3分割)に分割した場合には同一楽節(AB)が2つとカウントされ、「AB/AB/CD/CD」(「2+2+2+2」の4分割)に分割した場合には同一楽節が4つ(ABとCDが各々2つずつ)とカウントされる。以上のステップS23〜ステップS27までの各処理を、ブロック分割テーブルの全ての分割方法に従って実施する(ステップS28のNO)。
【0052】
このようにして、ブロック分割テーブルの全ての分割方法に従って曲全体の楽節構成の分割を実施し終わると(ステップS28のYES)、同一楽節構成を持つブロック数のカウントが同じである分割があるか否かを判定する(ステップS29)。例えば、楽節構成「ABABCDCD」を「AB/AB/CDCD」(「2+2+4」の3分割)に分割した場合及び「AB/AB/CDC/D」(「2+2+3+1」の4分割)に分割した場合には同一楽節(AB)が共に2つとカウントされ、この場合には「AB/AB/CDCD」と「AB/AB/CDC/D」とはカウントが同じ分割と判定される。同カウントの分割がない場合には(ステップS29のNO)、最も分割数の多い分割に決定する(ステップS35)。すなわち、2分割よりも3分割、3分割よりも4分割に分割したものに決定する。同カウントの分割がある場合には(ステップS29のYES)、ブロック分割テーブルに従い各分割の優先度を検出し(ステップS30)、同優先度の分割が複数あるか否かを判定する(ステップS31)。同優先度の分割が複数ない場合には(ステップS31のNO)、最も分割数の多い分割に決定する(ステップS35)。同優先度の分割が複数ある場合には(ステップS31のYES)、それらの分割の中からいずれかの分割をランダムに選択し決定する(ステップS32)。このように、注目する分割区間の楽節構成が他のいずれかの分割区間の楽節構成と「同一」であるかを調べ、「同一」の楽節構成がある場合にはその個数を求める。ブロック分割テーブルに従う分割全てについて「同一」の楽節構成である分割区間の個数を各々求め、同数の分割区間の個数を持つ分割が複数存在していない場合には最も多い分割区間の個数を持つ分割に決定する。同数の分割区間の個数を持つ分割が複数存在していたら、ブロック分割テーブルに従って優先度の高い分割を採用する。ただし、優先度がない場合、あるいは同一優先度の分割が複数存在しているような場合にはランダムに選択し採用する。
【0053】
例えば、楽節構成「ABABCDCD」を「AB/AB/CDCD」(「2+2+4」の3分割)と分割した場合には同一楽節が2つ(AB)、「AB/AB/CD/CD」(「2+2+2+2」の4分割)と分割した場合には同一楽節が4つ(ABとCD)であり、この場合には後者の分割「AB/AB/CD/CD」(「2+2+2+2」の4分割)の個数が前者の分割に比べて多いことから後者の分割に決定する。また、楽節構成「ABCDABC」を「AB/CD/AB/C」(「2+2+2+1」の4分割)と分割した場合は同一楽節が2つ(AB)、「A/BC/DA/BC」(「1+2+2+2」の4分割)と分割した場合にも同一楽節が2つ(BC)であることから、この場合にはブロック分割テーブルの優先度に従って優先度の低い前者分割「AB/CD/AB/C」(優先順位「3」)よりも優先度の高い後者分割「A/BC/DA/BC」(優先順位「2」)に決定する。
【0054】
ステップS33では、こうして分割した区間毎にブロック記号を割り当てる。ブロック記号は、「a」ブロック、「b」ブロックのように記号「a」「b」を交互に割り当てる。例えば、「AB/ACD/C/AB」(「2+3+1+2」の4分割)のように分割した場合にブロック記号を交互に割り当てると「abab」のようになる。このように単純に交互に記号「a」、「b」を割り当てるのではなく、分割区間ごとに予め割り当てたブロック記号のみを割り当てるようにしてもよい。例えば、「2+3+1+2」の4分割に分割する場合には、「abab」「aaba」等の一塊のブロック記号列を予め候補として分割毎に割り当てておき、その中で優先づけて割り当てるかあるいはランダムに選択して割り当てるかするようにしてもよい。また、「同一」楽節構成の分割区間がある場合には同一記号のブロック記号を割り当てるようにしてもよい。例えば、「AB/ACD/C/AB」(「2+3+1+2」の4分割)のような場合、「abab」ではなく「abaa」のように割り当ててもよい。さらに、全ての分割区間に対しランダムに記号「a」「b」を割り当てるようにしてもよい。このときに、記号「a」と「b」の出現割合を設定できるようにしてもよい。また、記号「a」と「b」が余り偏って出現しないように(例えば、記号「a」ばかりが連続して出現しないように)してもよい。
【0055】
以上のように、いろいろな分割の割り当て方を採用することによって、いろいろな起伏を持ったブロック構成を生成することができるようになる。したがって、ユーザが直接入力した楽節構成、選択した既存の楽節構成(楽節構成雛型テンプレート)、既存の楽節構成(楽節構成雛型テンプレート)を修正して得られる楽節構成、あるいは、ユーザが直接入力したコード進行、自動生成したコード進行、選択した既存のコード進行(コード進行雛型テンプレート)あるいは既存のコード進行(コード進行雛型テンプレート)を修正して得られるコード進行に従って自動生成される新しい楽節構成に基づいたブロック構成を生成することができ、それに基づいてメロディを生成することができるようになる。
【0056】
本発明に係る自動作曲装置においては、直接手で入力したコード進行を用いるほか、自動生成したコード進行あるいは既存のコード進行(コード進行雛型テンプレート)を用いてメロディを生成する(上述した図2あるいは図3の説明参照)。既存のコード進行(コード進行雛型テンプレート)を用いる場合、予めコード進行雛型テンプレートを多数登録したデータベースの中から所望のコード進行雛型テンプレートを選択して使用する。こうした場合、たくさんの種類のコード進行を得るためには数多くのコード進行雛型テンプレートを予めデータベースに登録しておかなければならない。しかし、それには非常に多くの手間がかかり非効率的である。そこで、本発明に係る自動作曲装置は、種となる少ないコード進行雛型テンプレートまたは既存のメロディを元に新たなコード進行雛型テンプレートを生成する。こうすると、少ないコード進行雛型テンプレートまたはメロディを予め用意しておくだけで、新たなコード進行雛型テンプレートを数多く生成することから、ユーザは生成された数多くのコード進行雛型テンプレートの中から好みのものを用いてメロディを生成することが簡単にできるようになる。以下、種となる少ないコード進行雛型テンプレートまたは既存のメロディを元に新たなコード進行雛型テンプレートを生成する自動作曲装置について説明する。
【0057】
図11は、種となるコード進行雛型テンプレートあるいは既存のメロディを元にして新たにコード進行雛型テンプレートあるいはメロディを生成する自動作曲装置の一実施例を示すシステム概略図である。
本自動作曲装置は、メロディ生成機MPとコード進行生成機CPとコード進行入力切替機CSWとメロディ入力切替機MSWとを少なくとも含む構成である。メロディ生成機MPは、入力された既存のコード進行を元にメロディを生成する。コード進行生成機CPは、入力されたメロディを元にコード進行を生成する。コード進行入力切替機CSWはメロディ生成機MPに入力するコード進行を選択するものであって、種となるコード進行として、既存のコード進行を外部入力するか、コード進行生成機CPで新たに生成したコード進行を入力するかを選択する。メロディ入力切替機MSWはコード進行生成機CPに入力するメロディを選択するものであって、種となるメロディとして、既存のメロディを外部入力するか、メロディ生成機MPで新たに生成したメロディを入力するかを選択する。
【0058】
上述した自動作曲装置においては、メロディ生成機MPで生成したメロディ、あるいはコード進行生成機CPで生成したコード進行が各々出力される。そこで、該装置において行われるコード進行生成について説明する。図12は、図11に示した自動作曲装置において実行されるコード進行生成処理をフローチャートにして示した図である。
ステップS41では、メロディ生成条件が設定される。そして、コード進行入力切替機CSWにより種となるコード進行をメロディ生成機MPに外部入力すると(ステップS42)、メロディ生成機MPはメロディを複数生成する。メロディ生成条件は、例えば調、拍子、ダイナミクスなどであり、このメロディ生成条件とコード進行がメロディ生成機MPに与えられることによって、メロディ生成機MPはメロディを生成することができる。このメロディ生成機MPにおけるメロディ生成については既知であることから詳しくは説明しないが、簡単に図13を用いて説明する。図13は、メロディ生成機MPにおけるメロディ生成処理の一実施例を示すフローチャートである。この実施例に示すように、メロディ生成機MPは入力された拍子に基づいてリズムを生成し(ステップS51)、入力されたコード進行、調、ダイナミクスに基づいて、前記生成されたリズムの各打点にピッチ生成することによってメロディを生成する(ステップS52)。
【0059】
図12に戻り、複数生成されたメロディの中からコード進行を生成するために種とするメロディを1つ選択する(ステップS44)。選択されたメロディはメロディ入力切替機MSWによりコード進行生成機CPに入力されて、コード進行生成機CPはコード進行を複数生成する(ステップS45)。このコード進行生成機CPにおけるコード進行生成については既知であることから詳しくは説明しないが、簡単に図14を用いて説明する。図14は、コード進行生成機CPにおけるコード進行生成処理の一実施例を示すフローチャートである。この実施例に示すように、コード進行生成機CPは入力されたメロディを所定区間(例えば、2拍ごとあるいは1小節ごと)に区切り(ステップS61)、区切った区間の各ピッチを組合せて構成できる候補となるコードをリストアップする(ステップS62)。このリストアップされたコードの中から直前のコードを参照して該区間のコードを選択する(ステップS63)。ただし、曲の最初では直前のコードがないことから、調のダイアトニックコードを優先に決定する。複数存在する場合には、主和音、属和音、下属和音の優先で決定する。また、ダイアトニックコードが候補のコードとしてなかったら、候補のコードの中からランダムに決定する。曲途中では、直前コードに連結しやすいコードを優先に決めていく。以上のようなコード選択を最後の区間まで繰り返し行う(ステップS64)。こうすることによって、入力されたメロディを元にしてコード進行を生成することができる。
【0060】
図12に戻り、こうして複数生成されたコード進行の中からコード進行を1つ選択する(ステップS46)。そして、コード進行生成を終了するか否かを判定し(ステップS47)、コード進行生成を終了する場合には(ステップS47のYES)コード進行入力切替機CSWあるいはメロディ入力切替機MSWの何れかを外部入力に切り替えて当該処理を終了する。コード進行生成を終了しない場合には(ステップS47のNO)、ステップS43に戻り、選択したコード進行をメロディ生成機MPに入力して新たなコード進行を生成するように処理を繰り返す。すなわち、コード進行生成を終了せずに更にコード進行生成を続ける場合には、コード進行生成機CPから出力したコード進行のいずれかをメロディ生成機MPに入力するように、コード進行入力切替機CSWを切り替える。そうすると、図11に示したシステムがループを形成することになり、コード進行入力切替機CSWあるいはメロディ入力切替機MSWの何れかを外部入力に切り替えない限り、コード進行の生成を続けて行う。ユーザは、こうして生成される数多くのコード進行の中からお気に入りのコード進行を選択することができる。
【0061】
上述の実施例では種となるコード進行を入力して新たなコード進行の生成を開始する例について説明したが、種となるメロディを入力してコード進行の生成を開始するようにしてもよい。図15は、種となるメロディを入力してコード進行を生成する処理をフローチャートにして示した図である。
ステップS71では、生成条件を設定する。そして、メロディ入力切替機MSWにより種となるメロディをコード進行生成機CPに外部入力すると(ステップS72)、コード進行生成機CPはコード進行を複数生成する(ステップS73)。複数生成されたコード進行の中からいずれか1つのコード進行を選択する(ステップS74)。そして、コード進行生成を終了する場合には(ステップS75のYES)、コード進行入力切替機CSWあるいはメロディ入力切替機MSWの何れかを外部入力に切り替えて当該処理を終了する。コード進行生成を終了しない場合には(ステップS75のNO)、選択されたコード進行はコード進行入力切替機MSWによりメロディ生成機MPに入力されて、メロディ生成機MPはメロディを複数生成する(ステップS76)。複数生成したメロディの中からいずれか1つのメロディを選択し(ステップS77)、ステップS73に戻り、該選択したメロディをコード進行生成機CPに入力して新たなコード進行を生成するように処理を繰り返す。ユーザは、こうして生成される数多くのメロディの中から気に入ったメロディを選択することができる。
【0062】
なお、図11から理解できるように、本実施例においては、コード進行を生成し出力するだけでなく、メロディも生成し出力することができる。メロディ生成に主眼を置いて処理を説明するフローチャートは、コード進行生成に主眼を置いて処理を説明するために用いた上述の図12及び図15に示すコード進行生成処理の「コード進行」を「メロディ」に、「メロディ」を「コード進行」に読み替えて該処理を行えばよい。
なお、上述の実施例では、外部からのコード進行(つまり、種とするコード進行)として既存のコード進行、すなわち、コード進行雛型テンプレートを入力して用いるようにしたが、ユーザが作成したコード進行あるいは自動生成したコード進行を種とするコード進行として外部入力してもよい。また、外部からのメロディ(つまり、種とするメロディ)として既存のメロディを入力して用いるようにしたが、ユーザが作成したメロディあるいは自動生成したメロディを種とするメロディとして外部入力してもよい。
さらに、上述の実施例においては、種となるコード進行とメロディを両方入力可能、コード進行とメロディを両方出力可能としたものを示したがこれに限らず、コード進行のみを入力・出力可能とするように構成したものであってもよいし、メロディのみを入力・出力可能としたものであってもよい。すなわち、コード進行及びメロディを生成する両方の機能を必ずしも具えている必要はなく、少なくともどちらか一方を生成する単独の機能を具えていればよい。
【0063】
この自動作曲装置を電子楽器に適用する場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、音源装置、自動作曲装置等を1つの電子楽器本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらに、カラオケや自動演奏ピアノのような自動演奏装置、あるいは携帯通信端末や、該端末と有線又は無線で通信する作曲機能を有したサーバなどに適用してもよい。
【0064】
自動演奏装置に適用する場合、生成されるメロディに関する演奏データのフォーマットは、イベントの発生時刻を曲や小節内における絶対時間で表した『イベント+絶対時間』形式のもの、イベントの発生時刻を1つ前のイベントからの時間で表した『イベント+相対時間』形式のもの、音符の音高と符長あるいは休符と休符長で演奏データを表した『音高(休符)+符長』形式のもの、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域にイベントを記憶した『ベタ方式』形式のものなど、どのような形式のものでもよい。
また、複数チャンネル分の演奏データが存在する場合は、複数のチャンネルのデータが混在した形式であってもよいし、各チャンネルのデータがトラック毎に別れているような形式であってもよい。
【0065】
【発明の効果】
本発明によれば、ユーザがコード進行を入力または与えられたコード進行を修正した場合、あるいはコード進行を自動生成したような場合であっても、新しい楽節構成に基づいたブロック構成を生成し、それに基づいてメロディを生成することが可能となる。
さらに、種となる少ないコード進行またはメロディを用意しておき、それを元にたくさんのコード進行とメロディを生成するので、ユーザは簡単に多様なメロディを生成することができる。
【図面の簡単な説明】
【図1】 この発明に係る自動作曲装置の実施の形態を示すハード構成ブロック図である。
【図2】 楽節構成データを特定してからコード進行データを特定してメロディを生成するまでの処理の流れを概念的に示した概念図である。
【図3】 コード進行データを特定してから楽節構成データを特定してメロディを生成するまでの処理の流れを概念的に示した概念図である。
【図4】 1つのコード進行と複数の楽節構成とを組み合わせた曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
【図5】 1つのコード進行と1つの楽節構成とを組み合わせた曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
【図6】 1つの楽節構成と複数のコード進行とを組み合わせた曲テンプレートを使用してメロディを生成する処理の流れを概念的に示した処理フロー概念図である。
【図7】 楽節構成別変更可能テーブルの一実施例を示す概念図である。
【図8】 楽節記号変更ルールに基づいて演算により楽節構成を変更する方法の一実施例を示したフローチャートである。
【図9】 楽節構成からブロック構成を生成する方法の一実施例を示したフローチャートである。
【図10】 ブロック分割テーブルの一実施例を示す図である。
【図11】 種となるコード進行雛型テンプレートを元にして新たにコード進行雛型テンプレート及びメロディを生成する自動作曲装置のシステム概略図である。
【図12】 図11に示した自動作曲装置において実行されるコード進行生成をフローチャートにして示した図である。
【図13】 メロディ生成機におけるメロディ生成処理の一実施例を示すフローチャートである。
【図14】 コード進行生成機におけるコード進行生成処理の一実施例を示すフローチャートである。
【図15】 種となるメロディを入力してコード進行を生成する処理をフローチャートにして示した図である。
【符号の説明】
1…CPU、1A…タイマ、2…ROM、3…RAM、4…押鍵検出回路、4A…鍵盤、5…スイッチ検出回路、5A…スイッチ、6…表示回路、6A…ディスプレイ、7…音源回路、8…効果回路、8A…サウンドシステム、9…外部記憶装置、10…MIDIインタフェース、10A…他のMIDI機器、11…通信インタフェース、11A…サーバコンピュータ、11B…通信ネットワーク、1D…データ及びアドレスバス、MP…メロディ生成機、CP…コード進行生成機、CSW…コード進行入力切替機、MSW…メロディ入力切替機
Claims (15)
- コード進行を供給する手段と、
供給されたコード進行に基づいて楽節構成を生成する手段と、
楽節構成に基づいて、1ブロックが1又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成する手段と、
少なくとも前記コード進行と楽節構成とブロック構成とを用いてメロディを生成する手段と
を具える自動作曲装置。 - 少なくとも楽節構成とコード進行とブロック構成とに基づいてメロディを生成する自動作曲装置において、
楽節構成に基づいて、1ブロックが1又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成する生成手段を具えてなり、
前記生成手段は、複数の分割方法を登録した所定のテーブルに基づいて、或る分割方法に従って全体楽節構成を複数区間に分割したとき、その分割の区切りが所定の楽節記号以外の連続した同一楽節記号の途中に位置していないことを条件として、該条件を満たしている場合に当該分割方法を採用し、その採用された分割方法に従って分割された区間毎にブロック記号を割り当ててブロック構成を生成することを特徴とする自動作曲装置。 - 前記生成手段は、同じ全体楽節構成に対して前記条件を満たす複数の分割方法がある場合、前記所定のテーブルに登録された各分割方法毎の分割優先度を参照し、該優先度の高い分割方法を採用してブロック構成を生成することを特徴とする請求項2に記載の自動作曲装置。
- 前記生成手段は、同じ全体楽節構成に対して前記条件を満たす複数の分割方法がある場合、分割した複数区間内の楽節構成が同一楽節構成を持つように分割する方法を優先的に採用してブロック構成を生成することを特徴とする請求項2に記載の自動作曲装置。
- コード進行を入力するコード進行入力手段と、
メロディを入力するメロディ入力手段と、
メロディに基づいて新たなコード進行を生成するコード進行生成手段と、
コード進行に基づいて新たなメロディを生成するメロディ生成手段と、
前記メロディ生成手段に対して、コード進行生成手段が生成した新たなコード進行あるいはコード進行入力手段から入力されたコード進行の何れかを選択的に供給するコード進行供給手段と、
前記コード進行生成手段に対して、メロディ進行生成手段が生成した新たなメロディあるいはメロディ入力手段から入力されたメロディの何れかを選択的に供給するメロディ供給手段と、
前記生成した新たなメロディまたは前記生成した新たなコード進行を取り出す手段と
を具えた自動作曲装置。 - コード進行を入力するコード進行入力手段と、
コード進行に基づいて新たなメロディを生成するメロディ生成手段と、
生成したメロディに基づいて新たなコード進行を生成するコード進行生成手段と、
前記メロディ生成手段に対して、コード進行生成手段が生成した新たなコード進行あるいはコード進行入力手段から入力されたコード進行の何れかを選択的に供給するコード進行供給手段と、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出す手段と
を具えた自動作曲装置。 - メロディを入力するメロディ入力手段と、
メロディに基づいて新たなコード進行を生成するコード進行生成手段と、
生成したコード進行に基づいて新たなメロディを生成するメロディ生成手段と、
前記コード進行生成手段に対して、メロディ進行生成手段が生成した新たなメロディあるいはメロディ入力手段から入力されたメロディの何れかを選択的に供給するメロディ供給手段と、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出す手段と
を具えた自動作曲装置。 - コード進行を供給するステップと、
供給されたコード進行に基づいて楽節構成を生成するステップと、
楽節構成に基づいて、1ブロックが1又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成するステップと、
少なくとも前記コード進行と楽節構成とブロック構成とを用いてメロディを生成するステップと
を具える自動作曲方法。 - コード進行を入力するステップと、
メロディを入力するステップと、
メロディに基づいて新たなコード進行を生成するステップと、
コード進行に基づいて新たなメロディを生成するステップと、
生成した新たなコード進行あるいは入力したコード進行の何れかを選択し、該選択したコード進行に基づき前記新たなメロディを生成するステップに前記新たなメロディを生成させるステップと、
生成した新たなメロディあるいは入力したメロディの何れかを選択し、該選択したメロディに基づき前記新たなコード進行を生成するステップに前記新たなコード進行を生成させるステップと、
前記生成した新たなメロディまたは前記生成した新たなコード進行を取り出すステップと
を具える自動作曲方法。 - コード進行を入力するステップと、
コード進行に基づいて新たなメロディを生成するステップと、
生成したメロディに基づいて新たなコード進行を生成するステップと、
生成した新たなコード進行あるいは入力したコード進行の何れかを選択し、該選択したコード進行に基づき前記新たなメロディを生成するステップに前記新たなメロディを生成させるステップと、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出すステップと
を具えた自動作曲方法。 - メロディを入力するステップと、
メロディに基づいて新たなコード進行を生成するステップと、
生成したコード進行に基づいて新たなメロディを生成するステップと、
生成した新たなメロディあるいは入力したメロディの何れかを選択し、該選択したメロディに基づき前記新たなコード進行を生成するステップに前記新たなコード進行を生成させるステップと、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出すステップと
を具えた自動作曲方法。 - 機械読取り可能な記憶媒体であって、自動作曲方法をプロセッサに実行させるためのプログラムを記憶してなり、前記自動作曲方法は、
コード進行を供給するステップと、
供給されたコード進行に基づいて楽節構成を生成するステップと、
楽節構成に基づいて、1ブロックが1又は複数の楽節からなる複数のブロックで曲の構造を示すブロック構成を生成するステップと、
少なくとも前記コード進行と楽節構成とブロック構成とを用いてメロディを生成するステップと
を具備する。 - 機械読取り可能な記憶媒体であって、自動作曲方法をプロセッサに実行させるためのプログラムを記憶してなり、前記自動作曲方法は、
コード進行を入力するステップと、
メロディを入力するステップと、
メロディに基づいて新たなコード進行を生成するステップと、
コード進行に基づいて新たなメロディを生成するステップと、
生成した新たなコード進行あるいは入力したコード進行の何れかを選択し、該選択したコード進行に基づき前記新たなメロディを生成するステップに前記新たなメロディを生成させるステップと、
生成した新たなメロディあるいは入力したメロディの何れかを選択し、該選択したメロディに基づき前記新たなコード進行を生成するステップに前記新たなコード進行を生成させるステップと、
前記生成した新たなメロディまたは前記生成した新たなコード進行を取り出すステップと
を具備する。 - 機械読取り可能な記憶媒体であって、自動作曲方法をプロセッサに実行させるためのプログラムを記憶してなり、前記自動作曲方法は、
コード進行を入力するステップと、
コード進行に基づいて新たなメロディを生成するステップと、
生成したメロディに基づいて新たなコード進行を生成するステップと、
生成した新たなコード進行あるいは入力したコード進行の何れかを選択し、該選択したコード進行に基づき前記新たなメロディを生成するステップに前記新たなメロディを生成させるステップと、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出すステップと
を具備する。 - 機械読取り可能な記憶媒体であって、自動作曲方法をプロセッサに実行させるためのプログラムを記憶してなり、前記自動作曲方法は、
メロディを入力するステップと、
メロディに基づいて新たなコード進行を生成するステップと、
コード進行に基づいて新たなメロディを生成するステップと、
生成した新たなメロディあるいは入力したメロディの何れかを選択し、該選択したメロディに基づき前記新たなコード進行を生成するステップに前記新たなコード進行を生成させるステップと、
前記生成した新たなメロディあるいは前記生成した新たなコード進行を取り出すステップと
を具備する。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000184472A JP3835131B2 (ja) | 2000-06-20 | 2000-06-20 | 自動作曲装置及び方法並びに記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000184472A JP3835131B2 (ja) | 2000-06-20 | 2000-06-20 | 自動作曲装置及び方法並びに記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002006843A JP2002006843A (ja) | 2002-01-11 |
JP3835131B2 true JP3835131B2 (ja) | 2006-10-18 |
Family
ID=18684914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000184472A Expired - Fee Related JP3835131B2 (ja) | 2000-06-20 | 2000-06-20 | 自動作曲装置及び方法並びに記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3835131B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7169996B2 (en) * | 2002-11-12 | 2007-01-30 | Medialab Solutions Llc | Systems and methods for generating music using data/music data file transmitted/received via a network |
SE527425C2 (sv) * | 2004-07-08 | 2006-02-28 | Jonas Edlund | Förfarande och anordning för musikalisk avbildning av en extern process |
JP6255960B2 (ja) * | 2013-12-10 | 2018-01-10 | ヤマハ株式会社 | 音楽データ生成方法を実現するためのプログラムおよび音楽データ生成装置 |
-
2000
- 2000-06-20 JP JP2000184472A patent/JP3835131B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002006843A (ja) | 2002-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3303617B2 (ja) | 自動作曲装置 | |
US20060230910A1 (en) | Music composing device | |
JP3724376B2 (ja) | 楽譜表示制御装置及び方法並びに記憶媒体 | |
US6175072B1 (en) | Automatic music composing apparatus and method | |
JP3407626B2 (ja) | 演奏練習装置、演奏練習方法及び記録媒体 | |
JP3528654B2 (ja) | メロディ生成装置及びリズム生成装置と記録媒体 | |
US6100462A (en) | Apparatus and method for generating melody | |
JP6295583B2 (ja) | 音楽データ生成装置および音楽データ生成方法を実現するためのプログラム | |
JP2002023747A (ja) | 自動作曲方法と装置及び記録媒体 | |
US6323411B1 (en) | Apparatus and method for practicing a musical instrument using categorized practice pieces of music | |
JP2000315081A (ja) | 自動作曲装置及び方法並びに記憶媒体 | |
JP3489290B2 (ja) | 自動作曲装置 | |
JP3835131B2 (ja) | 自動作曲装置及び方法並びに記憶媒体 | |
JP3724347B2 (ja) | 自動作曲装置及び方法並びに記憶媒体 | |
JP3664126B2 (ja) | 自動作曲装置 | |
JP3783687B2 (ja) | 演奏練習装置及びプログラム | |
JP3775249B2 (ja) | 自動作曲装置及び自動作曲プログラム | |
JP2000112472A (ja) | 自動作曲装置と記録媒体 | |
JP3430895B2 (ja) | 自動伴奏装置及び自動伴奏制御プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP6525034B2 (ja) | コード進行情報生成装置およびコード進行情報生成方法を実現するためのプログラム | |
JP3800947B2 (ja) | 演奏データ処理装置及び方法並びに記憶媒体 | |
JP3669301B2 (ja) | 自動作曲装置及び方法並びに記憶媒体 | |
JPS6213677B2 (ja) | ||
JP2003271142A (ja) | 奏法表示編集装置及び方法 | |
JP3752940B2 (ja) | 自動作曲方法、自動作曲装置及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060310 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060404 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060605 |
|
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: 20060704 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060717 |
|
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: 20100804 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |