以下、本発明の実施の形態に係る自動伴奏装置、伴奏データ生成プログラムおよび伴奏データ生成方法について図面を用いて詳細に説明する。
(1)電子音楽装置の構成
図1は本発明の実施の形態に係る自動伴奏装置を含む電子音楽装置の構成を示すブロック図である。図1の電子音楽装置1によれば、ユーザは演奏および曲の制作等を行うことができる。また、電子音楽装置1は、ユーザの演奏に自動伴奏を付与する自動伴奏装置100を含む。
電子音楽装置1は、演奏入力部2、入力I/F(インタフェース)3、設定操作子4、検出回路5、表示部6および表示回路8を備える。演奏入力部2は、鍵盤等の音高指定操作子またはマイク等を含み、入力I/F3を介してバス19に接続される。ユーザが演奏を行うことにより、ユーザの実際の演奏内容を表す演奏データが演奏入力部2により入力される。演奏データは、MIDI(Musical Instrument Digital Interface)データまたはオーディオデータからなる。設定操作子4は、オンオフ操作されるスイッチ、回転操作されるロータリエンコーダ、またはスライド操作されるリニアエンコーダ等を含み、検出回路5を介してバス19に接続される。この設定操作子4は、音量の調整、電源のオンオフおよび各種設定を行うために用いられる。表示部6は、例えば液晶ディスプレイを含み、表示回路8を介してバス19に接続される。表示部6により、演奏または設定等に関する各種情報が表示される。演奏入力部2、設定操作子4および表示部6の少なくとも一部がタッチパネルディスプレイにより構成されてもよい。
電子音楽装置1は、RAM(ランダムアクセスメモリ)9、ROM(リードオンリメモリ)10、CPU(中央演算処理装置)11、タイマ12および記憶装置13をさらに備える。RAM9、ROM10、CPU11および記憶装置13はバス19に接続され、タイマ12はCPU11に接続される。外部記憶装置15等の外部機器が通信I/F(インタフェース)14を介してバス19に接続されてもよい。RAM9、ROM10、CPU11およびタイマ12がコンピュータを構成する。
RAM9は、例えば揮発性メモリからなり、CPU11の作業領域として用いられるとともに、各種データを一時的に記憶する。ROM10は、例えば不揮発性メモリからなり、システムプログラム、伴奏データ生成プログラム等のコンピュータプログラムを記憶する。CPU11は、ROM10に記憶された伴奏データ生成プログラムをRAM9上で実行することにより後述する伴奏データ生成処理を行い、出力伴奏データを生成する。タイマ12は、現在時刻等の時間情報をCPU11に与える。
記憶装置13は、ハードディスク、光学ディスク、磁気ディスクまたはメモリカード等の記憶媒体を含み、一または複数の曲構成データを記憶する。各曲は、情景の流れに従って分割された複数の区間で表される。曲構成データは、このような複数の区間を含む曲の構成を表し、具体的には、曲中での各区間の位置および長さ(小節数または拍数)を表すとともに、各区間に対応するセクションのタイプを表す。セクションのタイプは、曲の進行上の役割を意味し、例えば、曲の先頭に挿入される「イントロ」、曲の本体部である「メイン」、小節または楽節のつなぎ目部分等に挿入される「フィルイン」、および曲の末尾に挿入される「エンディング」等を含む。曲構成データは、他の付属データとともに各曲に対応付けて記憶されてもよい。他の付属データとしては、例えば、MIDIデータまたはオーディオデータからなる曲データ、歌詞データ、楽譜表示データ、コード進行データ、主旋律および各パートのガイド用データ、コメント(メモ)データ、ならびに推奨の伴奏スタイルおよび音色等がある。曲構成データは、曲のオーディオデータまたはMIDIデータ等を分析することによって自動的に生成されてもよく、電子楽譜からリハーサルマークおよびバーライン等の位置を検出することによって自動的に生成されてもよい。あるいは、ユーザの入力に基づいて曲構成データが生成されてもよい。
記憶装置13には、一または複数の自動伴奏データがさらに記憶される。自動伴奏データの詳細については後述する。上記の伴奏データ生成プログラムが記憶装置13に記憶されてもよい。外部記憶装置15は、記憶装置13と同様に、ハードディスク、光学ディスク、磁気ディスクまたはメモリカード等の記憶媒体を含み、曲構成データ、自動伴奏データまたは伴奏データ生成プログラムを記憶してもよい。
本実施の形態における伴奏データ生成プログラムは、コンピュータが読み取り可能な記録媒体に格納された形態で提供され、ROM10または記憶装置13にインストールされてもよい。また、通信I/F14が通信網に接続されている場合、通信網に接続されたサーバから配信された伴奏データ生成プログラムがROM10または記憶装置13にインストールされてもよい。同様に、曲構成データまたは自動伴奏データが記憶媒体から取得されてもよく、通信網に接続されたサーバから取得されてもよい。
電子音楽装置1は、音源16、効果回路17およびサウンドシステム18をさらに備える。音源16および効果回路17はバス19に接続され、サウンドシステム18は効果回路17に接続される。音源16は、演奏入力部2から入力される演奏データまたはCPU11により生成される出力伴奏データ等に基づいて楽音信号を生成する。効果回路17は、音源16により生成される楽音信号に音響効果を付与する。
サウンドシステム18は、デジタルアナログ(D/A)変換回路、増幅器およびスピーカを含む。このサウンドシステム18は、音源16から効果回路17を通して与えられる楽音信号をアナログ音信号に変換し、アナログ音信号に基づく音を発生する。それにより、楽音信号が再生される。電子音楽装置1において、主として演奏入力部2、RAM9、ROM10、CPU11および記憶装置13が自動伴奏装置100を構成する。
(2)自動伴奏データ
図2は自動伴奏データの例について説明するためのブロック図である。図2に示すように、ジャズ、ロック、クラシック(図示せず)等のカテゴリー毎に1または複数の自動伴奏データADが用意される。このようなカテゴリーは階層的に設けられてもよい。例えばジャズの下位のカテゴリーとしてビックバンドおよびモダンジャズ等が設けられ、ロックの下位のカテゴリーとしてハードロックおよびプログレッシブロック等が設けられてもよい。各自動伴奏データADは、複数の基本伴奏要素データおよび複数のフィルイン伴奏要素データを含む。
複数の基本伴奏要素データは、「イントロ」セクション用、「メイン」セクション用および「エンディング」セクション用に分類される。「イントロ」、「メイン」、「エンディング」は、それぞれセクションのタイプを示し、それぞれアルファベット“I”、“M”および“E”で表される。各セクション用の1または複数の基本伴奏要素データは、雰囲気または盛り上がり度の異なる1または複数のバリエーションに対応する。基本伴奏要素データのバリエーションは、自動伴奏の雰囲気または盛り上がり度を表し、本例では、盛り上がり度に応じてアルファベット“A”(普通(静か))、“B”(少し派手)、“C”(派手)、および “D”(かなり派手)等で表される。自動伴奏の雰囲気または盛り上がり度は、例えば、伴奏パターンまたは伴奏のトラック等に依存する。
複数のフィルイン伴奏要素データは、「フィルイン」セクションで用いられる。「フィルイン」は、セクションのタイプを示し、アルファベット“F”で表される。フィルイン伴奏要素データは、他のセクション間のつなぎ(フィルイン)として用いられるので、そのバリエーションは、自動伴奏の雰囲気または盛り上がり度の変化を表し、本例では、前後のセクションの盛り上がり度の変化に対応した2つのアルファベットの組み合わせで表される。例えば、フィルイン伴奏要素データのバリエーション“AC”は、「静か」から「派手」への変化に対応する。
以下、基本伴奏要素データおよびフィルイン伴奏要素データを総称して伴奏要素データという。各伴奏要素データは、セクションのタイプを表すアルファベットとバリエーションを表すアルファベットとの組み合わせにより表される。例えば、伴奏要素データMAのセクションのタイプは「メイン」であり、バリエーションは“A”である。また、フィルイン伴奏要素データFABのセクションのタイプは「フィルイン」であり、バリエーションは“AB”である。
各伴奏要素データは、ベーストラックおよびフレーズトラック等の複数のトラック(伴奏パート)の伴奏パターンデータを含むとともに、基準コード情報および音高変換規則(音高変換テーブル情報、音域、コード変更時の再発音規則等)を含む。伴奏パターンデータは、MIDI形式の音符列またはオーディオ形式のフレーズデータであり、基準コード情報および音高変換規則に基づいて任意の音高に変換することができる。
「フィルイン」セクションとその前後のセクションとが自然につながるように、フィルイン伴奏要素データのバリエーションとその前後の基本伴奏要素データのバリエーションとの適合関係が予め定められる。本例では、フィルイン伴奏要素データのバリエーションを表す2つのアルファベットのうち先のアルファベットが、直前の基本伴奏要素データのバリエーションを表すアルファベットと一致する場合、当該フィルイン伴奏要素データのバリエーションが直前の基本伴奏要素データのバリエーションに対して適合する。また、フィルイン伴奏要素データのバリエーションを表す2つのアルファベットのうち後のアルファベットが、直後の基本伴奏要素データのバリエーションを表すアルファベットと一致する場合、当該フィルイン伴奏要素データのバリエーションが直後の基本伴奏要素データのバリエーションに対して適合する。このように予め定められた適合関係が満たされる場合、「フィルイン」セクションの前のセクションから後のセクションにかけて、自動伴奏の雰囲気または盛り上がり度が違和感なく自然につながる。
例えば、フィルイン伴奏要素データのバリエーション“AC”は、直前の基本伴奏要素データのバリエーション“A”に対して適合し、かつ直後の基本伴奏要素データのバリエーション“C”に対して適合する。なお、バリエーションは任意に選択可能であるので、前後のセクションのバリエーションが“A”および“C”でない場合でも、「フィルイン」セクションのバリエーションとして“AC”を指定することは可能である。フィルイン伴奏要素データのバリエーションとその前後の伴奏要素データのバリエーションとの適合関係は、フィルイン伴奏要素データのバリエーション毎に図1のROM10または記憶装置13に記憶される。
例えば、ユーザは図1の設定操作子4を操作して、予め登録された複数の曲から所望の曲を選択することによって一の曲構成データを指定するとともに、複数のカテゴリーから所望のカテゴリーを選択しかつそのカテゴリーに対応する一の自動伴奏データADを指定する。指定された曲構成データおよび自動伴奏データADに基づいて、自動伴奏が出力される。
(3)使用伴奏要素データ
本実施の形態では、曲の進行とともに、指定された自動伴奏データADに含まれる複数の伴奏要素データから使用すべき基本伴奏要素データおよびフィルイン伴奏要素データが使用伴奏要素データとして順次取得される。取得されている使用伴奏要素データに基づいて、出力伴奏データが生成および出力される。これにより、取得されている使用伴奏要素データに応じた自動伴奏が出力される。
図3は、使用伴奏要素データの決定について説明するための図である。図3には、曲の区間R1,R2,R3に関して、曲構成データにより表されるセクションのタイプ(以下、基本セクションタイプと呼ぶ。)、実際に使用される伴奏要素データのセクションのタイプ、および使用伴奏要素データが示される。図3において、横軸は時間軸である。時点t1で区間R1が開始し、時点t3で区間R1が終了するとともに区間R2が開始する。区間R1,R2の基本セクションタイプはいずれも「メイン」である。
本例では、基本セクションタイプに基づいて、各区間の開始時点で、使用すべき基本伴奏要素データが使用伴奏要素データとして取得される。図3の例では、区間R1の開始時点t1で使用伴奏要素データとして基本伴奏要素データMAが取得され、区間R2の開始時点t3で使用伴奏要素データとして基本伴奏要素データMCが取得される。これにより、区間R1,R2において、基本伴奏要素データMA,MCに基づく自動伴奏がそれぞれ出力される。
また、「フィルイン」セクションを挿入するか否かが予め設定される。「フィルイン」セクションを挿入する場合、区間内のフィルイン開始位置で、使用すべきフィルイン伴奏要素データが使用伴奏要素データとして取得される。フィルイン開始位置は、例えば区間の終了位置よりも一小節前の小節線に予め定められる。フィルイン開始位置は、演奏のテンポ、演奏される音符列または演奏の盛り上がり度等に基づいて決定されてもよい。取得される基本伴奏要素データおよびフィルイン伴奏要素データのバリエーションは、予め定められてもよく、略リアルタイムで指定されてもよい。バリエーションの決定方法については後述する。
本実施の形態では、上記の適合関係に基づいて、取得されたフィルイン伴奏要素データのバリエーションが、次に取得予定の基本伴奏要素データのバリエーションに対して適合するか否かが判定される。適合しない場合、フィルイン伴奏要素データが取得されてから予め定められた時間が経過した後のフィルイン切替位置において、次に取得予定の基本伴奏要素データのバリエーションに対して適合する他のフィルイン伴奏要素データが取得される。ここで、予め定められた時間は、拍を単位とする時間であってもよく、秒を単位とする実時間であってもよい。例えば、フィルイン開始位置より2拍後にフィルイン切替位置が定められる。フィルイン切替位置は、固定されていてもよく、ユーザが適宜変更可能であってもよい。
図3の例では、区間R1の末尾に「フィルイン」セクションが挿入される。この場合、時点t2でフィルイン開始位置に到達し、使用伴奏要素データとしてフィルイン伴奏要素データFABが取得される。それにより、時点t2からフィルイン伴奏要素データFABに基づく自動伴奏が出力される。フィルイン伴奏要素データFABが取得されている状態で、バリエーション“AB”が次に取得予定の基本伴奏要素データのバリエーションに対して適合するか否かが判定される。本例において、次に取得予定の基本伴奏要素データMCのバリエーションは“C”である。取得されているフィルイン伴奏要素データFABのバリエーション“AB”は、基本伴奏要素データMCのバリエーション“C”に対して適合しない。そこで、フィルイン切替位置に対応する時点t2aにおいて、取得予定の基本伴奏要素データMCのバリエーション“C”に対して適合するフィルイン伴奏要素データFBCが新たに取得される。
フィルイン切替位置の前後で取得されるフィルイン伴奏要素データのバリエーションは互いに適合することが好ましい。具体的には、先に取得されるフィルイン伴奏要素データのバリエーションを表す2つのアルファベットのうち後のアルファベットが、後に取得されるフィルイン伴奏要素データのバリエーションを表す2つのアルファベットの先のアルファベットと一致していることが好ましい。図3の例において、バリエーション“AB”とバリエーション“BC”とは互いに適合する。
演奏される曲の途中で自動伴奏の出力中に、指定される自動伴奏データADが変更されてもよい。例えば、ユーザが自動伴奏に合わせて演奏しながら図1の設定操作子4を操作することにより、指定される自動伴奏データADが変更される。この場合、新たに指定された自動伴奏データADの伴奏要素データから、基本セクションタイプ等に基づいて使用伴奏要素データが決定される。また、複数の自動伴奏データADが使用すべき区間に対応付けて予め指定されてもよい。
(4)自動伴奏装置の機能的な構成
図4は本発明の実施の形態に係る自動伴奏装置100の機能的な構成を示すブロック図である。図4に示すように、自動伴奏装置100は、曲構成データ取得部21、指定部22、伴奏要素データ取得部23、伴奏データ生成部24、演奏データ取得部25、盛り上がり度検出部26、予定取得部27、取得指示受付部28、判定部29、基本情報取得部30および開始終了検出部31を含む。図1のCPU11がROM10または記憶装置13に記憶された伴奏データ生成プログラムを実行することにより、図4の各機能部が実現される。これらの機能部は、電子回路等のハードウエアにより実現されてもよい。
曲構成データ取得部21は、ユーザにより演奏されるべき曲(以下、演奏曲と呼ぶ。)の曲構成データを取得する。指定部22は、自動伴奏データAD(図2)の指定を受け付ける。伴奏要素データ取得部23は、使用すべき基本伴奏要素データおよびフィルインデータを使用伴奏要素データとして順次取得する。本例では、指定部22により指定された自動伴奏データADから使用伴奏要素データが取得される。
伴奏データ生成部24は、取得されている使用伴奏要素データに基づいて自動伴奏を表す出力伴奏データを生成して出力する。出力伴奏データは、図1の音源16およびサウンドシステム18に与えられる。これにより、自動伴奏音が発生される。
演奏データ取得部25は、演奏入力部2により入力される演奏データを取得する。盛り上がり度検出部26は、取得された演奏データに基づいて、演奏曲の少なくとも一部の区間で、ユーザによる演奏の盛り上がり度を検出する。演奏の盛り上がり度は、例えば、演奏の音量(ベロシティ)、または音符の数もしくは密度に対応するパラメータである。盛り上がり度は、事前に取得された演奏データから検出されてもよい。また、演奏データがオーディオデータである場合には、公知の方法により、当該オーディオデータを音高および音価を含む音符情報またはMIDIデータに変換することによって盛り上がり度の検出が容易となる。伴奏要素データ取得部23は、検出された盛り上がり度に基づいて使用伴奏要素データを取得してもよい。
予定取得部27は、連続的に取得すべき複数の使用伴奏要素データを予め定めた取得予定情報を取得する。例えば、ユーザが図1の設定操作子4を操作して、演奏曲の各区間に対応するセクションのタイプおよびバリエーションを予め入力することにより、取得予定情報が取得される。取得指示受付部28は、取得すべき使用伴奏要素データを指示する取得指示を受け付ける。例えば、図1の設定操作子4が、使用伴奏要素データを指定するための指定操作子を含む。ユーザが演奏中に指定操作子を操作すると、取得指示が受け付けられる。伴奏要素データ取得部23は、取得指示に応答して、取得指示により指示される使用伴奏要素データを取得する。これにより、略リアルタイムで使用伴奏要素データが指定される。
取得予定情報が予め取得されている場合、伴奏要素データ取得部23は、取得予定情報に基づいて使用伴奏要素データを順次取得する。また、演奏中に指定操作子が操作されることによって取得指示が受け付けられた場合、伴奏要素データ取得部23は、取得指示に応答して、取得予定情報により定められた使用伴奏要素データに代えて、取得指示により指示される使用伴奏要素データを取得する。
判定部29は、使用伴奏要素データとしてフィルイン伴奏要素データが取得された場合、上記の適合関係に基づいて、取得されたフィルイン伴奏要素データのバリエーションが、使用伴奏要素データとして次に取得予定の基本伴奏要素データのバリエーションに対して適合しているか否かを判定する。すなわち、予め定められた適合関係が満たされているか否かが判定される。判定部29は、検出された盛り上がり度に基づいて、次に取得予定の基本伴奏要素データのバリエーションを特定してもよく、取得予定情報あるいは取得指示に基づいて、次に取得予定の基本伴奏要素データのバリエーションを特定してもよい。伴奏要素データ取得部23は、取得されているフィルイン伴奏要素データのバリエーションが次に取得予定の基本伴奏要素データのバリエーションに対して適合しない場合、当該基本伴奏要素データのバリエーションに対して適合する他のフィルイン伴奏要素データを取得する。これにより、フィルイン伴奏要素データのバリエーションが切り替えられる。
判定部29は、使用伴奏要素データとして次に取得予定のフィルイン伴奏要素データのバリエーションが、その直前の基本伴奏要素データのバリエーションに対して適合しているか否かを判定してもよい。伴奏要素データ取得部23は、次に取得予定のフィルイン伴奏要素データのバリエーションが直前の基本伴奏要素データのバリエーションに対して適合しない場合、当該基本伴奏要素データのバリエーションに対して適合する他のフィルイン伴奏要素データを取得する。
基本情報取得部30は、自動伴奏に関する基本情報を取得し、伴奏要素データ取得部23に与える。基本情報は、例えば、テンポ、音量(ボリューム)、「フィルイン」セクションの挿入の有無、「フィルイン」セクションのバリエーションの自動切替の有無、およびフィルイン切替位置等を含み、例えばユーザが図1の設定操作子4を操作することにより取得される。開始終了検出部31は、自動伴奏の開始および終了を検出し、伴奏要素データ取得部23に与える。例えば、図1の設定操作子4としてスタートボタンおよびストップボタンが設けられる。スタートボタンが押下されると、自動伴奏の開始が検出され、ストップボタンが押下されると、自動伴奏の終了が検出される。また、ユーザによる演奏の開始および終了が自動伴奏の開始および終了として検出されてもよい。あるいは、ユーザの演奏および自動伴奏に加えて演奏曲の歌唱音または他の伴奏音等が出力される場合に、その出力の開始および停止が自動伴奏の開始および終了として検出されてもよい。
使用される伴奏要素データの切替は、例えば、各伴奏要素データの使用の開始を指示するイベント信号に基づいて行われる。具体的には、区間の開始位置またはフィルイン開始位置でイベント信号が発生され、そのイベント信号に応答して伴奏要素データが取得され、取得された伴奏要素データおよびその後に取得されるコード情報(コードルートおよびコードタイプの組み合わせ)に基づいて、自動伴奏の出力が開始される。これにより、使用される伴奏要素データが切り替えられつつ自動伴奏が継続的に出力される。一方、曲中において少なくとも一部のパート(例えば、リズムパート以外のパート)の自動伴奏が停止される場合、特殊なコードにより出力伴奏データの生成が停止される(コードキャンセル)。コードキャンセルは、設定操作子4の操作に応答して実行されてもよく、事前に設定されたタイミングで実行されてもよい。
(5)フィルイン伴奏要素データの切替
上記のように、取得されているフィルイン伴奏要素データのバリエーションが前後の基本伴奏要素データのバリエーションに対して適合しない場合、取得されるフィルイン伴奏要素データのバリエーションが切り替えられる。以下、フィルイン伴奏要素データの切替について、図3の時点t2から時点t3までの期間に取得されるフィルイン伴奏要素データを例に説明する。
(a)第1の例
図5は、フィルイン伴奏要素データの切替の第1の例について説明するための図である。第1の例では、図4の盛り上がり度検出部26により検出される演奏の盛り上がり度に基づいて、使用伴奏要素データのバリエーションが決定される。図5において、横軸は時間を表し、縦軸は盛り上がり度を表す。盛り上がり度は、例えば、ユーザによる演奏時に予め定められた周期で検出される。
図5の例では、盛り上がり度のしきい値TH1,TH2,TH3が予め定められる。検出される盛り上がり度と各しきい値との関係に基づいて、取得されるべき基本伴奏要素データのバリエーションが決定される。決定のタイミングは、例えば、区間の開始時点である。本例において、盛り上がり度がしきい値TH1より低い場合にバリエーションが“A”に決定され、盛り上がり度がしきい値TH1以上であってしきい値TH2より低い場合にバリエーションが“B”に決定され、盛り上がり度がしきい値TH2以上であってしきい値TH3より低い場合にバリエーションが“C”に決定され、盛り上がり度がしきい値TH3以上である場合にバリエーションが“D”に決定される。
区間R1の開始時点t1での盛り上がり度は、しきい値TH1よりも低い。そのため、時点t1で基本伴奏要素データMAが取得される。フィルイン開始位置(時点t2)において、直前の基本伴奏要素データのバリエーションおよび次に取得予定の基本伴奏要素データのバリエーションに適合するフィルイン伴奏要素データが取得される。次に取得予定の基本伴奏要素データのバリエーションは、盛り上がり度に基づいて決定される。時点t2において、直前の基本伴奏要素データのバリエーションは“A”である。また、時点t2での盛り上がり度は、しきい値TH1以上であってしきい値TH2よりも低い。そのため、次に取得予定の基本伴奏要素データのバリエーションは、“B”である。したがって、時点t2において、バリエーション“A”およびバリエーション“B”に適合するフィルイン伴奏要素データFABが取得される。
その後、予め定められたフィルイン切替位置(時点t2a)において、取得されているフィルイン伴奏要素データのバリエーションが次に取得予定の基本伴奏要素データのバリエーションに対して適合しているか否かが判定される。時点t2aにおいて、盛り上がり度はしきい値TH2以上であってしきい値TH3よりも低い。そのため、次に取得予定の基本伴奏要素データのバリエーションは、“C”である。したがって、フィルイン伴奏要素データFABのバリエーション“AB”が次に取得予定の基本伴奏要素データのバリエーション“C”に対して適合しない。この場合、当該基本伴奏要素データのバリエーション“C”に対して適合する他のフィルイン伴奏要素データFBCが新たに取得される。
このように、演奏の盛り上がり度に応じた基本伴奏要素データが取得されるとともに、その基本伴奏要素データに適合するように、フィルイン伴奏要素データのバリエーションが切り替えられる。それにより、演奏の盛り上がり度に応じた自然な流れの自動伴奏が出力される。
(b)第2の例
図6は、フィルイン伴奏要素データの切替の第2の例について説明するための図である。図6および後述の図7〜図10において、横軸は時間を表す。第2の例では、取得予定情報により使用伴奏要素データが予め定められている。図6の例では、区間R1,R2での使用伴奏要素データとして、基本伴奏要素データMA、フィルイン伴奏要素データFABおよび基本伴奏要素データMCが順に定められている。この場合、時点t2において、フィルイン伴奏要素データFABが取得される。しかしながら、次に取得予定の基本伴奏要素データのバリエーションは“C”であるので、取得されているフィルイン伴奏要素データのバリエーション“AB”は適合しない。そこで、フィルイン切替位置に対応する時点t2aにおいて、バリエーション“C”に対して適合するフィルイン伴奏要素データFBCが新たに取得される。
このように、取得予定情報により定められるフィルイン伴奏要素データのバリエーションと基本伴奏要素データのバリエーションとの組み合わせが適切でない場合に、フィルイン伴奏要素データのバリエーションが適切に切り替えられる。それにより、自然な流れの自動伴奏が出力される。
(c)第3の例
図7は、フィルイン伴奏要素データの切替の第3の例について説明するための図である。第3の例では、受け付けられた取得指示に応答して、使用伴奏要素データが取得される。例えば、取得指示が受け付けられた時点の次の小節線において、指示された使用伴奏要素データが取得される。図7の例では、区間R1の開始時点t1の直前の時点t1xで、基本伴奏要素データMAの取得を指示する取得指示が受け付けられる。それにより、時点t1で基本伴奏要素データMAが取得される。また、時点t2の直前の時点t2xで、フィルイン伴奏要素データFABの取得を指示する取得指示が受け付けられる。これにより、時点t2でフィルイン伴奏要素データFABが取得される。
さらに、時点t2より後であって時点t3より前の時点t2yで、基本伴奏要素データMCの取得を指示する取得指示が受け付けられる。この場合、次に取得予定の基本伴奏要素データのバリエーションが“C”となる。そのため、取得されているフィルイン伴奏要素データFABのバリエーション“AB”が適合しない。そこで、フィルイン切替位置に対応する時点t2aにおいて、バリエーション“C”に対して適合するフィルイン伴奏要素データFBCが取得される。
このように、取得指示により指示されるフィルイン伴奏要素データのバリエーションと基本伴奏要素データのバリエーションとの組み合わせが適切でない場合に、フィルイン伴奏要素データのバリエーションが適切に切り替えられる。それにより、自然な流れの自動伴奏が出力される。
(d)第4の例
図8は、フィルイン伴奏要素データの切替の第4の例について説明するための図である。第4の例では、取得予定情報に基づいて使用伴奏要素データが取得されている状態で取得指示が受け付けられる。図8の例では、取得予定情報により、区間R1の使用伴奏要素データが基本伴奏要素データMAと定められ、区間R2の使用伴奏要素データが基本伴奏要素データMCと定められる。そのため、区間R1では、基本伴奏要素データMAが取得されている。一方、区間R1の時点t2の直前の時点t2xで、フィルイン伴奏要素データFABの取得を指示する取得指示が受け付けられる。それにより、時点t2でフィルイン伴奏要素データFABが取得される。しかしながら、次に取得予定の基本伴奏要素データのバリエーションが“C”であるので、取得されているフィルイン伴奏要素データのバリエーション“AB”が適合しない。そこで、フィルイン切替位置に対応する時点t2aにおいて、バリエーション“C”に対して適合するフィルイン伴奏要素データFBCが取得される。
このように、取得指示により指示されるフィルイン伴奏要素データのバリエーションと取得予定情報により定められる基本伴奏要素データのバリエーションとの組み合わせが適切でない場合に、フィルイン伴奏要素データのバリエーションが適切に切り替えられる。それにより、自然な流れの自動伴奏が出力される。
(e)第5および第6の例
図9は、フィルイン伴奏要素データの切替の第5の例について説明するための図である。図10は、フィルイン伴奏要素データの切替の第6の例について説明するための図である。第5および第6の例では、次に取得予定のフィルイン伴奏要素データのバリエーションが、直前の基本伴奏要素データのバリエーションに適合しない場合、他のフィルイン伴奏要素データが取得される。
第5の例では、第2の例と同様に、取得予定情報として使用伴奏要素データが予め定められている。図9の例が図6の例と異なる点を説明する。図9の例では、区間R1,R2での使用伴奏要素データとして、基本伴奏要素データMA、フィルイン伴奏要素データFBCおよび基本伴奏要素データMCが順に定められている。この場合、時点t2で取得予定のフィルイン伴奏要素データFBCのバリエーション“BC”が、直前の基本伴奏要素データMAのバリエーション“A”に対して適合しない。
そこで、時点t2において、直前の基本伴奏要素データMAのバリエーション“A” に対して適合しかつ取得予定のフィルイン伴奏要素データFBCのバリエーション“BC”に対して適合するフィルイン伴奏要素データFABが取得される。その後、フィルイン切替位置に対応する時点t2aにおいて、取得予定情報により定められるフィルイン伴奏要素データFBCが取得される。
第6の例では、図3の例と同様に、受け付けられた取得指示に応答して、使用伴奏要素データが取得される。図10の例が図7の例と異なる点を説明する。図10の例では、時点t2の直前の時点t2xで、フィルイン伴奏要素データFBCの取得を指示する取得指示が受け付けられる。この場合、フィルイン伴奏要素データFBCのバリエーション“BC”は、直前の基本伴奏要素データMAのバリエーション“A”に対して適合しない。
そこで、時点t2において、直前の基本伴奏要素データMAのバリエーション“A”に適合しかつ取得指示により指示されるフィルイン伴奏要素データFBCのバリエーション“BC”に適合するフィルイン伴奏要素データFABが取得される。その後、フィルイン切替位置に対応する時点t2aにおいて、取得指示により指示されるフィルイン伴奏要素データFBCが取得される。
このように、取得予定のフィルイン伴奏要素データのバリエーションが直前の基本伴奏要素データのバリエーションに対して適合しない場合に、当該基本伴奏要素データのバリエーションに対して適合する他のフィルイン伴奏要素データが取得され、取得予定のフィルイン伴奏要素データがその後に取得される。これにより、直前に取得される基本伴奏要素データに基づいて出力される自動伴奏と、フィルイン伴奏要素データに基づいて出力される自動伴奏とが違和感なく連結される。したがって、自然な流れの自動伴奏が出力される。
図5〜図10の例では、フィルイン開始位置から次の区間の開始位置までの間に1つのフィルイン切替位置のみが設定されるが、複数のフィルイン切替位置が設定されてもよい。例えば、フィルイン開始位置が次の区間の開始位置の1小節前である場合、フィルイン開始位置の1拍後、2拍後および3拍後にフィルイン切替位置が設定されてもよい。ただし、1つのフィルイン伴奏要素データの使用期間が短すぎると、自動伴奏の流れが不自然になることがある。そのため、自動伴奏の流れが不自然とならないように、フィルイン開始位置およびフィルイン切替位置がそれぞれ設定されることが好ましい。また、第1〜第6の例のようなフィルイン伴奏要素データの自動切替の有無をユーザが選択可能であることが好ましい。
また、第1〜第6の例のうちの2以上の例が組み合わされてもよい。例えば、第1の例のように盛り上がり度に基づいて基本伴奏要素データが取得されつつ第3の例のように取得指示に基づいてフィルイン伴奏要素データが取得されてもよい。また、取得予定情報により定められるフィルイン伴奏要素データのバリエーションが直前および直後の基本伴奏要素データのバリエーションに対して適合しない場合、第2の例のように直後の基本伴奏要素データのバリエーションに対して適合する他のフィルイン伴奏要素データが取得され、かつ第5の例のように直前の基本伴奏要素データのバリエーションに対して適合するさらに他のフィルイン伴奏要素データが取得されてもよい。
(6)伴奏データ生成処理
図11は、図4の各機能部による伴奏データ生成処理の一例を示すフローチャートである。図11の伴奏データ生成処理は、図1のCPU11がROM10または記憶装置13に記憶された伴奏データ生成プログラムを実行することに行われる。本例では、演奏曲における現時点の位置を表す「現在位置」、現時点の位置を含む区間の基本セクションタイプを表す「現在のセクションタイプ」、現時点の位置を含む区間で使用される基本伴奏要素データのバリエーションを表す「現在のバリエーション」、次の区間で使用されるべき基本伴奏要素データのバリエーションを表す「次のバリエーション」、現時点の位置を含む区間から次の区間に切り替わるタイミングを表す「次の切替タイミング」、およびフィルイン切替位置で取得されるべきフィルイン伴奏要素データのバリエーションを表す「切替用バリエーション」が図1の記憶装置13にそれぞれ記憶されている。伴奏データ生成処理の開始時には、これらの情報が例えば前回の伴奏生成処理の終了時の状態に保持されている。
ユーザは、図1の設定操作子4を操作して、曲構成データおよび自動伴奏データADを指定する。図4の曲構成データ取得部21は、曲構成データの指定を受け付け(ステップS1)、指定部22は、自動伴奏データADの指定を受け付ける(ステップS2)。曲構成データは、各演奏曲に対応して予め生成され、あるいは自動生成されてもよいし、演奏曲とは無関係に4小節あるいは8小節単位等の固定長を1フレーズの長さと仮定し、その固定長を1区間の長さとして表してもよい。
また、ユーザは、図1の設定操作子4を操作して、取得予定情報および基本情報を入力する。それにより、予定取得部27は、取得予定情報を取得し(ステップS3)、基本情報取得部30は、基本情報を取得する(ステップS4)。本例では、基本情報が、「フィルイン」セクションのバリエーションの自動切替の有無およびフィルイン切替位置を含む。取得予定情報は、曲構成データから抽出または生成されてもよい。また、ステップS1〜S4で指定または取得される曲構成データ、自動伴奏データAD、取得予定情報および基本情報として、予めデフォルトが決まっていてもよい。
次に、伴奏要素データ取得部23は、「現在位置」を更新する(ステップS5)。例えば、曲の先頭位置に「現在位置」が更新される。ユーザは、図1の設定操作子4を操作することにより、「現在位置」を変更することができる。次に、伴奏要素データ取得部23は、指定された曲構成データおよび「現在位置」に基づいて、「現在のセクションタイプ」を更新する(ステップS6)。具体的には、「現在位置」がいずれの区間に含まれるか特定され、特定された区間の基本セクションタイプに「現在のセクションタイプ」が更新される。
次に、伴奏要素データ取得部23は、指定された曲構成データおよび「現在位置」に基づいて、「次の切替タイミング」を更新する(ステップS7)。具体的には、「現在位置」が含まれる区間の終了時点に「次の切替タイミング」が更新される。次に、伴奏要素データ取得部23は、取得予定情報に基づいて、「現在のバリエーション」および「次のバリエーション」を更新する(ステップS8)。
次に、開始終了検出部31は、自動伴奏の開始を検出したか否かを判定する(ステップS9)。自動伴奏の開始が検出されるまで、開始終了検出部31は、ステップS9を繰り返す。自動伴奏の開始が検出されると、開始終了検出部31は、図1のタイマ12を起動する(ステップS10)。次に、主として伴奏要素データ取得部23、伴奏データ生成部24および判定部29が、伴奏出力処理を行う(ステップS11)。伴奏出力処理については後述する。伴奏出力処理が終了すると、開始終了検出部31は、タイマ12を停止するとともに(ステップS12)、音の発生を停止する消音処理を行う(ステップS13)。これにより、伴奏データ生成処理が終了する。
図12、図13および図14は、伴奏出力処理の一例を示すフローチャートである。図12に示すように、伴奏要素データ取得部23は、「現在のセクションタイプ」および「現在のバリエーション」に対応する伴奏要素データを使用伴奏要素データとして取得する(ステップS21)。次に、伴奏データ生成部24は、その時点で取得されている伴奏要素データに基づいて出力伴奏データを生成および出力する(ステップS22)。これにより、図1のサウンドシステム18が自動伴奏音を発生する。次に、開始終了検出部31は、自動伴奏の終了を検出したか否かを判定する(ステップS23)。
自動伴奏の停止が検出されていない場合、演奏データ取得部25は、ユーザの演奏操作を受け付けたか否かを判定する(ステップS24)。ユーザが図1の演奏入力部2を操作すると、演奏操作が受け付けられる。演奏操作が受け付けられていない場合、次のステップS25がスキップされる。演奏操作が受け付けられた場合、演奏データ取得部25は、演奏操作に基づいて演奏データを取得して出力する(ステップS25)。これにより、図1のサウンドシステム18がユーザの演奏音を発生する。
次に、伴奏要素データ取得部23は、取得された取得予定情報に基づいて、「現在位置」が含まれる区間で「フィルイン」セクションを挿入するか否かを判定する(ステップS26)。「フィルイン」セクションを挿入しない場合、伴奏要素データ取得部23は、図1のタイマ12からの時間情報に基づいて、「次の切替タイミング」が到来したか否かを判定する(ステップS27)。「次の切替タイミング」が到来していない場合、伴奏要素データ取得部23は、ステップS22に戻る。
「次の切替タイミング」が到来した場合、伴奏要素データ取得部23は、図11のステップS6と同様にして、曲構成データおよび「現在位置」に基づいて、「現在のセクションタイプ」を更新する(ステップS28)。次に、伴奏要素データ取得部23は、図11のステップS7と同様にして、曲構成データおよび「現在位置」に基づいて、「次の切替タイミング」を更新する(ステップS29)。次に、伴奏要素データ取得部23は、取得予定情報に基づいて、「現在のバリエーション」および「次のバリエーション」を更新する(ステップS30)。次に、伴奏要素データ取得部23は、「現在のセクションタイプ」および「現在のバリエーション」に対応する基本伴奏要素データを使用伴奏要素データとして取得し(ステップS31)、ステップS22に戻る。
ステップS26で「フィルイン」セクションを挿入する場合、伴奏要素データ取得部23は、その時点で「フィルイン」セクションに対応する自動伴奏が出力中であるか否かを判定する(図13のステップS41)。「フィルイン」セクションに対応する自動伴奏が出力されていない場合、伴奏要素データ取得部23は、図1のタイマ12からの時間情報に基づいて、「現在位置」がフィルイン開始位置に到達したか否かを判定する(ステップS42)。「現在位置」がフィルイン開始位置に到達していない場合、伴奏要素データ取得部23は、図12のステップS22に戻る。
「現在位置」がフィルイン開始位置に到達した場合、伴奏要素データ取得部23は、図11のステップS4で取得された基本情報に基づいて、「フィルイン」セクションのバリエーションの自動切替を行うか否かを判定する(ステップS43)。自動切替を行わない場合、伴奏要素データ取得部23は、取得予定情報により定められるフィルイン伴奏要素データを使用伴奏要素データとして取得し(ステップS48)、図12のステップS22に戻る。
自動切替を行う場合、判定部29は、取得予定情報により定められるフィルイン伴奏要素データのバリエーションが直前の基本伴奏要素データのバリエーションに対して適合しているか否かを判定する。バリエーションが適合している場合、伴奏要素データ取得部23は、取得予定情報により定められるフィルイン伴奏要素データを使用伴奏要素データとして取得し(ステップS48)、図12のステップS22に戻る。バリエーションが適合しない場合、伴奏要素データ取得部23は、直前の基本伴奏要素データのバリエーションに対して適合するバリエーションを決定するとともに(ステップS45)、「切替用バリエーション」を取得予定情報により定められるフィルイン伴奏要素データのバリエーションに更新し(ステップS46)、フィルイン切替待機状態に移行する(ステップS47)。次に、伴奏要素データ取得部23は、ステップS45で決定されたバリエーションのフィルイン伴奏要素データを使用伴奏要素データとして取得し(ステップS48)、図12のステップS22に戻る。
ステップS41で「フィルイン」セクションに対応する自動伴奏が出力されている場合、伴奏要素データ取得部23は、フィルイン切替待機状態であるか否かを判定する(図14のステップS51)。フィルイン切替待機状態である場合、伴奏要素データ取得部23は、ステップS55に進む。フィルイン切替待機状態でない場合、伴奏要素データ取得部23は、図11のステップS4で取得された基本情報に基づいて、「フィルイン」セクションのバリエーションの自動切替を行うか否かを判定する(ステップS52)。自動切替を行わない場合、伴奏要素データ取得部23は、図12のステップS27に進む。自動切替を行う場合、判定部29は、その時点で取得されているフィルイン伴奏要素データのバリエーションが次に取得予定の基本伴奏要素データのバリエーションに対して適合しているか否かを判定する(ステップS53)。バリエーションが適合している場合、伴奏要素データ取得部23は、図12のステップS27に進む。バリエーションが適合しない場合、伴奏要素データ取得部23は、「切替用バリエーション」を次に取得予定の基本伴奏要素データのバリエーションに対して適合するバリエーションに更新し(ステップS54)、フィルイン切替待機状態に移行する(ステップS55)。
次に、伴奏要素データ取得部23は、図1のタイマ12からの時間情報に基づいて、「現在位置」がフィルイン切替位置に到達したか否かを判定する(ステップS56)。「現在位置」がフィルイン切替位置に到達した場合、伴奏要素データ取得部23は、「切替用バリエーション」に対応するフィルイン伴奏要素データを使用伴奏要素データとして取得し(ステップS57)、フィルイン待機状態を解除する(ステップS58)。その後、伴奏要素データ取得部23は、図12のステップS27に進む。
ステップS55で「現在位置」がフィルイン切替位置に到達していない場合、伴奏要素データ取得部23は、図1のタイマ12からの時間情報に基づいて、「次の切替タイミング」が到来したか否かを判定する(ステップS59)。「次の切替タイミング」が到来していない場合、伴奏要素データ取得部23は、図12のステップS22に戻る。「次の切替タイミング」が到来した場合、伴奏要素データ取得部23は、フィルイン切替待機状態を解除し(ステップS60)、図12のステップS28に進む。
このようにして、基本伴奏要素データおよびフィルイン伴奏要素データが使用伴奏要素データとして順次取得され、使用伴奏要素データに基づいて出力伴奏データが継続的に生成および出力される。また、「フィルイン」セクションのバリエーションの自動切替を行う場合には、取得されているフィルイン伴奏要素データのバリエーションが適合しているか否かに応じてフィルイン伴奏要素データのバリエーションが切り替えられる。なお、本例では、取得予定情報により定められる使用伴奏要素データが順次取得されるが、図5の例のように、演奏の盛り上がり度に基づいて使用伴奏要素データが取得されてもよく、図7の例のように、取得指示に応答して使用伴奏要素データが取得されてもよい。
(7)実施の形態の効果
本実施の形態に係る自動伴奏装置100においては、使用伴奏要素データとしてフィルイン伴奏要素データが取得された場合、予め定められた適合関係に基づいて、取得されたフィルイン伴奏要素データのバリエーションが次に取得予定の基本伴奏要素データのバリエーションに対して適合するか否かが判定され、適合しないと判定された場合には、次に取得予定の基本伴奏要素データのバリエーションに対して適合する他のフィルイン伴奏要素データが取得される。これにより、フィルイン伴奏要素データに基づいて出力される自動伴奏と基本伴奏要素データに基づいて出力される自動伴奏とが違和感なく連結される。したがって、自然な流れの自動伴奏を出力することが可能となる。
(8)他の実施の形態
(a)曲構成データにより表される各区間の開始位置以外で基準伴奏要素データが取得されてもよい。例えば、曲構成データにより表される区間の開始位置が、アウフタクトの先頭位置(例えば、小節の4拍目)に設定されている場合には、区間の開始位置の次の小節線において基準伴奏要素データが取得されてもよい。また、1つの区間に1つの基準伴奏要素データが使用されるのではなく、1つの区間内で複数の基準伴奏要素データが連続的に使用されてもよい。基準伴奏要素データが区間の開始位置以外で取得される場合、その直前に取得されるフィルイン伴奏要素データの使用は、区間の終了位置以外で終了する。また、曲構成データが用いられることなく、取得予定情報または取得指示のみによって各伴奏要素データが取得されてもよい。
(b)セクションのタイプおよびバリエーションは上記の例に限定されない。例えば、基本伴奏要素データが用いられるセクションのタイプとして、「メイン」セクションの代わりに、「Aメロ」セクション、「Bメロ」セクションおよび「サビ」セクション等が用いられてもよい。
(c)自動伴奏装置100は、電子音楽装置1に限らず、パーソナルコンピュータまたはスマートデバイス(smart device)等の他の電子機器に適用されてもよい。
(9)請求項の各構成要素と実施の形態の各部との対応
以下、請求項の各構成要素と実施の形態の各部との対応の例について説明するが、本発明は下記の例に限定されない。請求項の各構成要素として、請求項に記載されている構成または機能を有する他の種々の要素を用いることができる。
上記実施の形態では、伴奏要素データ取得部23が伴奏要素データ取得手段の例であり、伴奏データ生成部24が伴奏データ生成手段の例であり、判定部29が判定手段の例であり、演奏データ取得部25が演奏データ取得部の例であり、盛り上がり度検出部26が盛り上がり度検出手段の例であり、予定取得部27が予定取得手段の例であり、取得指示受付部28が取得指示受付手段の例である。