以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本発明の実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。図1に示すように、本実施の形態にかかる電子楽器10は、CPU11、ROM12、RAM13、サウンドシステム14、表示部15、入力I/F16、鍵盤17および操作部18を備える。
CPU11は、電子楽器10全体の制御、鍵盤17の鍵の押鍵や操作部18を構成するスイッチ(図示せず)の操作の検出、鍵盤17やスイッチの操作にしたがったサウンドシステム14の制御、後述するマイク24などから入力された音声信号のサンプリング処理、自動伴奏パターンにしたがった自動伴奏の演奏、および、サンプリングした波形データの自動伴奏パターンへの割り当てなど種々の処理を実行する。
ROM12は、CPU11に実行させる自動伴奏パターンの演奏を含む演奏処理や、サンプリング処理、サンプリングした波形データの自動伴奏パターンへの割り当て処理のプログラムを記憶する。RAM13は、ROM12から読み出されたプログラムや、処理の過程で生じたデータを記憶する。また、ROM12は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを記憶している。また、RAM13も、サンプリングされた波形データを格納するサンプリングデータエリアを有する。
サウンドシステム14は、音源部21、オーディオ回路22およびスピーカ23を有する。音源部21は、たとえば、押鍵された鍵の音高情報、自動伴奏パターンに示す音高情報や音色情報をCPU11から受信すると、ROM12やRAM13のデータエリアから音色情報にしたがった波形データを読み出して、音高情報に示す音高にしたがった楽音データを生成して出力する。また、音源部21は、波形データをそのまま楽音データとして出力することもできる。オーディオ回路22は、楽音データをD/A変換して増幅する。これによりスピーカ23から音響信号が出力される。
入力I/F16には、マイク24が接続される。また、入力I/F16は、外部入力端子(図示せず)を含み、オーディオ機器(図示せず)からの信号を受け入れることができる。入力I/F16に入力された音声信号は、A/D変換されて、ディジタルデータにされる。
本実施の形態にかかる電子楽器10は、鍵盤17の鍵の押鍵に基づいて楽音を発生する。また、電子楽器10は、操作部18における自動伴奏スイッチが操作されることにより、自動伴奏パターンにしたがって、所定の音色でかつ所定の音高の楽音や、バスドラムの音色やスネアドラムの音色のドラム音が、発音され、一定の自動伴奏パターンを演奏することが可能である。
図2は、本実施の形態にかかる自動伴奏パターンのデータ構成例を示す図である。図2に示すように、本実施の形態にかかる自動伴奏パターンは、チャンネルごとにミディイベントを含む構造となっている(符号200参照)。各ミディイベントは、発音情報のレコードを含む。これら発音情報のレコードは、ROM12やRAM13に格納されている。本実施の形態においてはチャンネルごとに音色が割り当てられ、同一のチャンネルに属する楽音は同じ音色となるため、自動伴奏パターンの各チャンネルのパターンに基づいて同一の音色の楽音が発音される。また、複数チャンネルのパターンにより自動伴奏パターンが形成される。
発音情報のレコードは、音高および音色を含むミディメッセージ、発音開始時刻、発音時間、コードフラグ、次のノートを特定するためのポインタ、前のノートを特定するためのポインタを含む。たとえば、チャンネル0のミディイベントの先頭レコード(ノート0のレコード)201中、次のノートへのポインタを参照することにより、次のノートであるノート1のレコード202を特定することができる。チャンネル1においても同様に、ミディイベントの先頭レコード(ノート0のレコード)221中、次のノートへのポインタを参照することにより、ノート1のレコード222を特定することが可能となる。
ミディメッセージは、発音すべき楽音の音高およびその音色を含む(符号241、242参照)。音色は、ピアノ音色、ギター音色、バイオリンのピチカート音色、バイオリン音色、チェロ音色、コントラバス音色などが含まれる。また、音高を伴わない音色、たとえば、シンバル音色、スネア音色、バスドラム音色などを含むドラム音色も含まれる。さらに、音色として、後述する波形データメモリに格納されたサンプリング音色を指定することも可能である。
発音開始時刻は、後述するテンポを考慮した発音を開始すべき相対時刻を示す。また、発音時間(符号211、212、231、232参照)も、テンポを考慮した相対的な時間であり、たとえば、拍数を示す値を採用することができる。この発音時間(符号211、212、231、232)が、後述する発音タイミングアサイン処理において、サンプリングされた波形データを、自動伴奏パターンを構成する各チャンネルの何れにアサインするかを判断するために使用される。コードフラグは、そのレコードが示すノートがコードを構成するか否かを示すものであり、コードフラグが1であれば、当該ノートはコード構成音である。
図3は、本実施の形態にかかる電子楽器10にて実行される処理を示すフローチャートである。図2に示すように、電子楽器10のCPU11は、たとえば、処理で使われるRAM13中のフラグなどのクリアを含むイニシャライズ処理を行う(ステップ301)。イニシャライズ処理(ステップ301)が終了すると、CPU11は、操作部18のスイッチの操作を検出し、検出された操作にしたがった処理を実行するスイッチ処理を実行する(ステップ302)。スイッチ処理については後により詳細に説明する。
次いで、CPU11は、表示部15に表示すべき画像データを生成して、表示部15の画面上に表示する(ステップ303)。操作部18のスイッチに隣接して配置されたLED(図示せず)のオン・オフも、ステップ303で行われる。その後、CPU11は、入力I/F16を介して入力された音声信号をディジタル化したデータを、波形データとしてRAM13中の所定のサンプリングデータエリアに格納するサンプリング処理(ステップ304)、および、ROM12の所定のデータエリアに格納された波形データや、RAM13の所定のサンプリングデータエリアに格納された波形データを読み出して、楽音データを生成する演奏処理(ステップ305)を実行する。サンプリング処理(ステップ304)および演奏処理(ステップ305)についても、後により詳細に説明する。その後、CPU11は、その他、電子楽器10を作動させるために必要な処理を実行して(ステップ306)、ステップ302に戻る。
図4は、本実施の形態にかかるスイッチ処理の例を示すフローチャートである。図4に示すように、CPU11は、まず操作部18のうち、テンポスイッチの操作に応じた処理を行うテンポ設定処理を実行する(ステップ401)。図5は、本実施の形態にかかるテンポ設定処理の例を示すフローチャートである。CPU11は、現在のテンポをパラメータTとしてRAM13中に一時的に記憶する(ステップ501)。次いで、CPU11は、テンポスイッチの操作があったか否かを判断する(ステップ502)。ステップ502でYesと判断された場合には、CPU11は、スイッチ操作にしたがった新たなテンポをパラメータTとしてRAM13中に一時的に記憶する(ステップ503)。その後、CPU11は、パラメータB=60/Tを算出して、当該パラメータBをRAM13中に記憶する(ステップ504)。なお、本実施の形態において使用するテンポTは、一分間に含まれる8分音符の数であり、楽曲を演奏する上での「テンポ」と称しているものと同じである。したがってパラメータBは、1拍に要する時間を示す。
テンポ設定処理が終了すると、CPU11は、操作部18のうち、スタートスイッチがオンされたか否かを判断する(ステップ402)。スタートスイッチがオンされた場合(ステップ402でYes)には、CPU11は、自動伴奏開始処理を実行する(ステップ403)。自動伴奏開始処理では、CPU11は、自動伴奏パターンの演奏において楽音の発音タイミングや消音タイミングを計数するためのタイマ(図示せず)を初期化して起動し、ROM12に格納された自動伴奏パターンを読み出して、RAM13に展開して、自動伴奏パターンを構成する発音情報のレコードを読み出し可能な状態とする。また、自動伴奏パターンの動作状態を示す自動伴奏フラグBFを「1」にセットする。
ステップ402でNoと判断された場合には、CPU11は、操作部18のうち、ストップスイッチがオンされたか否かを判断する(ステップ404)。ストップスイッチがオンされた場合(ステップ404でYes)には、CPU11は、自動伴奏終了処理を実行する(ステップ405)。自動伴奏終了処理では、CPU11は、たとえば、上記タイマを停止させるとともに、自動伴奏フラグBFを「0」にリセットする。
CPU11は、操作部18のうちサンプリングスイッチが操作されたか否かを判断する(ステップ406)。CPU11は、サンプリングスイッチが操作された場合には、CPU11は、RAM13中のサンプリングフラグSFを反転させる。つまり、SF=1であれば、SF=0にし、その一方、SF=0であれば、SF=1とする。本実施の形態では、サンプリングスイッチはサイクリックに動作し、初期状態から1回オンすることで、サンプリング中を示すことになり、もう1回オンすることで、サンプリング動作が終了することになる。また、スイッチ処理においては、他のスイッチの操作も検出され、必要に応じた処理が実行される(ステップ408)。ステップ408においては、CPU11は、鍵盤のオン・オフを検出する。オンされた(押鍵された)鍵の情報、および、オフされた(離鍵された)鍵の情報は、後の演奏処理に利用するため、RAM13中に格納される。
次に、本実施の形態にかかるサンプリング処理について説明する。図6は、本実施の形態にかかるサンプリング処理の例を示すフローチャートである。図6に示すように、サンプリング処理においては、CPU11は、まず、サンプリングフラグSFが「1」であるか否かを判断する(ステップ601)。
ステップ601でYesと判断された場合には、サンプリング中であることを示すフラグSSFが「1」であるか否かを判断する(ステップ602)。ステップ601でYes、かつ、ステップ602でNoと判断された場合は、サンプリングスイッチがオンされているが、まだサンプリングが開始されていないことを示す。したがって、CPU11は、入力I/F16に入力された音声信号のレベルが所定値を超えたか否かを判断し(ステップ603)、超えている場合(ステップ603でYes)には、サンプリング中を示すフラグSSFを「1」にセットする(ステップ604)。ステップ603でNoと判断された場合には、処理を終了する。
次いで、CPU11は、入力I/F16から受け入れた音声信号データを、RAM13のサンプリングデータエリアに書き込む(ステップ605)。CPU11は、入力I/F16に入力された音声信号のレベルが所定値以下になっているか否かを判断する(ステップ606)。ステップ606でYesと判断された場合には、CPU11は、後述する発音タイミングアサイン処理(ステップ608)を実行して、サンプリングフラグSFおよびフラグSSFの双方を「0」にリセットする(ステップ609)。
ステップ606でNoと判断された場合には、CPU11は、書き込み中のRAM13のサンプリングデータエリアのアドレスを参照して、音声信号データがサンプリングデータエリアの末尾まで書き込まれているか否かを判断する(ステップ607)。ステップ607でYesと判断された場合にも、CPU11は、後述する発音タイミングアサイン処理(ステップ608)を実行して、サンプリングフラグSFおよびフラグSSFの双方を「0」にリセットする(ステップ609)。その後、サンプリング処理は終了する。
ステップ606でNo、かつ、ステップ607でNoであった場合には、発音タイミングアサイン処理およびフラグSFおよびSSFのリセットを経ることなくサンプリング処理は終了する。サンプリング処理においては、処理が終了される、つまり、音声信号レベルが所定値以下になったとき、および、サンプリングデータエリアの末尾まで波形データが格納されたときにのみ、発音タイミングアサイン処理が行われ、その後に、フラグSFおよびSSFがリセットされている。
次に、発音タイミングアサイン処理について説明する。図7は、本実施の形態にかかる発音タイミングアサイン処理の例を示すフローチャートである。図7に示すように、CPU11は、RAM13のサンプリングデータエリアに格納された波形データの時間長Lを測定する(ステップ701)。この時間長Lは、テンポに応じて変更される相対時間ではなく絶対時間である。次いで、CPU11は、現在選択されている自動伴奏パターンの発音情報のレコードを参照して、自動伴奏パターンにおいて、チャンネルごとに、その発音時間の傾向を示す指標を算出する(ステップ702)。
ステップ702においては、たとえば、CPU11は、チャンネルごとに、発音情報のレコード中の発音時間(Dmn:mはチャンネル番号、nは、ノート番号)を取得して、チャンネルごとの発音時間の平均時間を算出する。
たとえば、これにより、チャンネルmについて、
Davem=(1/p)ΣDmn(n=0,1,2,・・・,p−1)
が求められる。上述したように、発音時間は、たとえば、拍数を示す値である。したがって、1拍に要する時間BとDavemとを乗ずることにより、Tavem=B×Davemは、各チャンネルの自動伴奏パターンのテンポを考慮した発音時間(実時間)の平均値となる。
CPU11は、各チャンネルの指標(本例では、発音時間(実時間)の平均値Tavem)と、ステップ702で取得した波形データの時間長Lとを比較して、時間長Lと類似する指標が存在するか否かを判断する(ステップ703)。たとえば、CPU11は、|平均値Tavem−時間長L|が最小値となるようなチャンネルを見出し、かつ、その最小値が所定の閾値以下であるか否かを判断すれば良い。ステップ703でYesと判断された場合には、CPU11は、当該類似すると判断されたチャンネルに、サンプリングされた波形データをアサインする(ステップ704)。より具体的には、自動伴奏パターンの類似するチャンネルに属する発音情報のレコードにおいて、ミディメッセージの音色を、サンプリングされた波形データを指定するものに変更すればよい。
図8は、ステップ702〜704における処理および処理により生成されるパターンの例を示す図である。図8は、自動伴奏パターンのうち、チャンネル0〜2のパターンを表している。この例では、1小節が4拍(4/4拍子)であり、T=60であるため、B=1秒である。また、波形データ850の時間長Lは、ほぼ0.5秒(たとえば、0.48秒)であったと考える。
チャンネル0(音色A)の楽音800、801、802、・・・の発音時間D00,D01,D02、・・・は、0.5拍(8分音符)、0.75拍(符点8分音符)、0.5拍(8分音符)、0.25拍(16分音符)、0.5拍(8分音符)、0.25拍(16分音符)、0.5拍(8分音符)、0.5拍(8分音符)である。チャンネル0の発音時間の平均時間Dave0は、0.46785(拍)であり、したがって、発音時間(実時間)の平均値Tave0は、0.46785秒である。
チャンネル1(音色B)の楽音800、811、812、813、・・・の発音時間D10、D11、D12、D13は、それぞれ、0.25拍(16分音符)であるため、チャンネル0の発音時間の平均時間Dave1は、それぞれ0.25拍(16分音符)であり、演算の結果、発音時間(実時間)の平均値Tave1は、0.25秒となる。また、チャンネル2(音色C)の楽音820、821の発音時間D20、D21は、それぞれ、1.25拍(符点8分音符)であり、演算の結果、発音時間(実時間)の平均値Tave2は、0.25秒となる。
CPU11は、波形データの時間長Lと、各チャンネルの発音時間の平均値とを比較する。その結果、チャンネル0の平均値が、もっとも時間長Lとの差異が小さいと判断される。また、その差異|0.48−0.46785|=0.01215である。閾値が、32分音符に相当する時間(本例では、0.125秒)であるとすると、上記差異は閾値以下である。したがって、CPU11は、ステップ703でYesと判断し、チャンネル0の音色を、音色Aからサンプリングされた波形データの音色に変更するように、発音情報のレコードを書き換える。
ステップ703でNoと判断された場合について説明する。本実施の形態においては、自動伴奏パターン中、各チャンネルの発音時間の傾向にしたがって、発音時間の範囲と音色とを予め関連付けている。そして、波形データの時間長Lに類似する発音時間を有するような指標が存在しなかった場合には、波形データの時間長Lが、予め定められた発音時間の範囲の何れに該当するかを判断し、当該時間長Lが該当する発音時間の範囲に関連付けられた音色のチャンネルに、サンプリングされた波形データをアサインしている。
CPU11は、時間長Lと、1拍に要する時間Bとを比較し、時間長Lが、どの時間の範囲に含まれるかを判断する(ステップ705)。本実施の形態において、以下に列挙する4つの時間の範囲が設けられている。
L≦B/2
B/2<L≦B
B<L≦2B
2B<L
つまり、時間長Lが、半拍以下である場合、半拍より大きく1拍以下である場合、1拍より大きく2拍以下である場合、および、2拍より大きい場合の何れに含まれるかが判断される。
L≦B/2である場合には、CPU11は、自動伴奏パターンにおいて、ピチカート音色のチャンネルについて、ピチカート音色からサンプリングされた波形データの音色に変更するように、ピチカート音色のチャンネルの発音情報のレコードを書き換える(ステップ706)。B/2<L≦Bである場合には、CPU11は、自動伴奏パターンにおいて、バイオリン音色のチャンネルについて、バイオリン音色からサンプリングされた波形データの音色に変更するように、バイオリン音色のチャンネルの発音情報のレコードを書き換える(ステップ707)。また、B<L≦2Bである場合、CPU11は、自動伴奏パターンにおいて、チェロ音色のチャンネルについて、チェロ音色からサンプリングされた波形データの音色に変更するように、チェロ音色のチャンネルの発音情報のレコードを書き換える(ステップ708)。さらに、2B<Lである場合、CPU11は、自動伴奏パターンにおいて、コントラバス音色のチャンネルについて、コントラバス音色からサンプリングされた波形データの音色に変更するように、コントラバス音色のチャンネルの発音情報のレコードを書き換える(ステップ709)。
図9は、ステップ705〜709における処理および処理により生成されるパターンの例を示す図である。図9は、自動伴奏パターンのうち、チャンネルn〜チャンネルn+3のパターンを示している。図9に示すように、チャンネルn、n+1、n+2およびn+3は、それぞれ、ピチカート、バイオリン、チェロ、コントラバスの音色となっている。この例でも、図8と同様に、小節が4拍(4/4拍子)であり、T=60であるため、B=1秒である。また、波形データ850の時間長Lは、0.48秒であったと考える。
この例では、ピチカート音色の楽音900、901、902・・・の発音時間は、0.5拍(0.5秒)、バイオリン音色の楽音911、912、913、・・・の発音時間は、1拍(1秒)、チェロ音色の楽音921、922、923の発音時間は2拍(2秒)、コントラバス音色の発音時間は4拍(4秒)である。CPU11は、ステップ705において、L<B/2と判断する。したがって、CPU11は、チャンネルnの音色を、ピチカート音色からサンプリングされた波形データの音色に変更するように、発音情報のレコードを書き換える。
次に、本実施の形態にかかる演奏処理について説明する。図10は、本実施の形態にかかる演奏処理の例を示すフローチャートである。図10に示すように、演奏処理において、CPU11は、押鍵があったか否かを判断する(ステップ1001)。スイッチ処理(ステップ302)において、押鍵および離鍵の情報は、RAM13に格納されている。したがって、CPU11は、RAM13の所定の領域を参照して、押鍵の有無や離鍵の有無を判断することができる。ステップ1001でYesと判断された場合には、CPU11は、押鍵された鍵の音高および指定された音色を音源部21に出力する。音源部21は、受け入れた情報に基づいて楽音データを生成する(ステップ1002)。
次いで、CPU11は、離鍵があったか否かを判断する(ステップ1003)。ステップ1003でYesと判断された場合には、CPU11は、離鍵された鍵の音高を音源部21に出力する。音源部21は、受け入れた情報に基づいて消音処理を行う(ステップ1004)。また、CPU11は、自動伴奏パターンが作動中か否かを判断する(ステップ1005)。自動伴奏パターンが作動中か否かは、自動伴奏フラグBFを参照することにより判断することができる。ステップ1005でYesと判断された場合には、CPU11は、自動伴奏演奏処理を実行する(ステップ1006)。
図11は、本実施の形態にかかる自動伴奏演奏処理の例を示すフローチャートである。図11に示すように、CPU11は、処理対象となる自動伴奏パターンのチャンネルchを「0」に初期化し、次いで、当該チャンネルchの発音情報のレコード中、発音開始時刻を参照して、現在時刻が当該レコードにて示される発音開始時刻に達しているか否かを判断する(ステップ1102)。たとえば、レコード中、コードフラグが「1」であれば、同時に発音を開始すべき複数のレコードが参照される。ステップ1102でYesと判断された場合には、CPU11は、発音情報のレコードに示される音高および音色を、音源部21に指示する。音源部21は、受け入れた情報に基づいて楽音データを生成する(ステップ1103)。
次いで、CPU11は、発音情報のレコード中、発音開始時刻および発音時間を参照して、現在時刻が当該レコードにて示される消音時刻に達しているか否かを判断する(ステップ1104)。ステップ1104でYesと判断された場合には、CPU11は、消音すべき楽音の音高を音源部21に出力して消音を指示する。音源部21は、受け入れた情報に基づいて消音処理を行う(ステップ1105)。全てのチャンネルについて処理が終了していなければ(ステップ1106でNo)、CPU11は、チャンネルchをインクリメントして(ステップ1107)、ステップ1102に戻る。このようにして、自動伴奏パターンに示す楽音の発音や消音が実現される。
本実施の形態においては、チャンネルごとの発音情報のレコードを参照して、チャンネルごとの発音時間の傾向を示す指標が算出され、波形データの時間長と指標とが比較され、比較結果に基づいて、前記波形データの時間長と類似する指標を有するチャンネルを見出し、そのチャンネルの発音情報のレコードが参照されて、サンプリングされた波形データの音色とする、発音情報のレコードが生成される。これにより、自動伴奏パターンを構成する特定の音色のパターンにおいて、不自然さなくその音色をサンプリングされた波形データの音色に変更することができる。
また、本実施の形態においては、類似する指標を有するチャンネルの発音情報のレコードにおいて、その音色をサンプリングされた波形データを指定する情報に書き換えられる。すなわち、この態様では、元の音色のパターンが、サンプリング音色のパターンに切り替えられる。これにより、不自然さなく適切なパターンを、サンプリング音色で発音させることができる。
また、本実施の形態においては、テンポを考慮して、パターンを構成する楽音の発音時間の実時間による平均値を、指標として算出している。これにより、現在演奏されている、或いは、これから演奏される自動伴奏パターンのテンポを考慮して、各チャンネルのパターンを構成する楽音の発音時間の傾向を示す指標を取得することができ、サンプリングされた波形データの音色をアサインすべき、適切なチャンネルを見出すことができる。
さらに、本実施の形態においては、まず、チャンネルごとの実時間による平均値と、波形データの時間長とを比較し、平均値と波形データの時間長との差異の最小値が、所定の閾値以下であるときに、最小値にかかるチャンネルを、類似するチャンネルと判断している。これにより、チャンネルのうちもっとも発音時間の傾向が、サンプリングされた波形データの時間長と似ているものに、サンプリングされた波形データの音色をアサインすることが可能となる。
さらに、発音時間の範囲と、自動伴奏パターンのチャンネルとの関連付けをROM12やRAM13に予め記憶しておき、上記最小値が所定の閾値より大きい場合には、波形データの時間長が、発音時間の範囲のうち何れに含まれるかを判断し、波形データの時間長が含まれる範囲に関連付けられたチャンネルを見出して、そのチャンネルに、サンプリングされた波形データの音色をアサインする。したがって、最適なチャンネルが見つからなかった場合であっても、発音時間の傾向が比較的似ていると思われるチャンネルに、サンプリングされた波形データの音色をアサインすることが可能となる。
なお、前記第1の実施の形態においては、特定のチャンネルに、サンプリングされた波形データの音色(サンプリング音色)をアサインしている。したがって、そのチャンネルの発音情報のレコードにおいて、音色以外は、もとのレコードの情報と同一であり、発音情報のレコードにしたがった音高の楽音が発音される。これにより、音色以外は元のパターンと同様のパターンの楽音を発音することができる。
しかしながら、上述した構成に限定されるものではない。たとえば、発音情報のレコード中、発音時間を、波形データの時間長Lに相当する値を格納しても良い。また、発音情報のレコード中、音高として、ドラム音色の発音のように、サンプリングされた波形データをそのまま読み出すことを指定する情報を格納しても良い。波形データをそのまま読み出すことで、リズムパターンに用いる打楽器の音色に、サンプリングされた波形データの音色をアサインすることも可能である。
次に、本発明の第2の実施の形態について説明する。第1の実施の形態においては、自動伴奏パターンにおいて、波形データの時間長と、発音時間の傾向を示す指標とが類似する楽音のチャンネルに、波形データをアサインしている。したがって、そのチャンネルについては、元の自動伴奏パターンの音色が、波形データの音色(サンプリング音色)に入れ替えられる。第2の実施の形態においては、波形データの時間長と、発音時間の傾向を示す指標とが類似する楽音のチャンネルのパターンと同じパターンを、別のチャンネルに作成する。つまり、新たに1チャンネル、サンプリング音色のパターンが作られ、新たに作られたパターンを含む自動伴奏パターンが演奏されることになる。
図12は、第2の実施の形態にかかる発音タイミングアサイン処理の例を示すフローチャートである。図12において、ステップ1201〜ステップ1203は、図7のステップ701〜ステップ703と同様であるため説明を省略する。ステップ1203でYesと判断された場合に、CPU11は、類似すると判断されたチャンネルの発音情報のレコードを参照して、不使用のチャンネルについて、当該発音情報とほぼ同様なレコードを生成する(ステップ1204)。生成された発音情報のレコードはRAM13に格納される。この発音情報のレコードにおいては、音色を除き、他の情報(ミディメッセージ中の音高、発音開始時刻、発音時間、コードフラグ、ポインタなど)は、類似すると判断されたチャンネルの発音情報のレコードの内容と同一となる。したがって、類似すると判断されたチャンネルのパターンと、同じパターンの楽音が、サンプリング音色にて発音されることになる。
図13は、第2の実施の形態におけるパターンの生成例を説明する図である。図13は、自動伴奏パターンのうち、チャンネル0〜2のパターンを表している。図8の例と同様に、この例でも、1小節が4拍(4/4拍子)であり、T=60であるため、B=1秒である。また、波形データ850の時間長Lは、ほぼ0.5秒(たとえば、0.48秒)であったと考える。図8の例と同様に、ステップ1203において、チャンネル0が類似すると判断されるため、不使用チャンネルNについて、チャンネル0のパターンの発音情報のレコードと音色を除いて同一のレコードが生成される。これにより、チャンネルNにおいて、サンプリングされた波形データの音色のパターンが発音される。また、この発音開始時刻や発音時間は、チャンネル0の楽音(符号1300、1301、1302参照)と同様である(チャンネルNの楽音:符号1310、1311、1312参照)。
ステップ1203でNoと判断された場合には、図7のステップ705と同様に、CPU11は、時間長Lと、1拍に要する時間Bとを比較し、時間長Lが、どの時間の範囲に含まれるかを判断する(ステップ1205)。ステップ1205の判断の結果、L≦B/2である場合には、CPU11は、ピチカート音色のチャンネルの発音情報のレコードを参照して、不使用のチャンネルに、ピチカート音色のチャンネルの発音情報のレコードと、音色を除き同様な発音情報のレコードを生成する(ステップ1206)。生成された発音情報のレコードはRAM13に格納される。生成された発音情報のレコードは、音色を除き、他の情報(ミディメッセージ中の音高、発音開始時刻、発音時間、コードフラグ、ポインタなど)は、ピチカート音色のチャンネルの発音情報のレコードの内容と同一となる。発音情報のレコードにおいて、音色は、サンプリングされた波形データの音色(サンプリング音色)となる。
B/2<L≦Bである場合には、CPU11は、バイオリン音色のチャンネルの発音情報のレコードを参照して、不使用のチャンネルに、バイオリン音色のチャンネルの発音情報のレコードと、音色を除き同様な発音情報のレコードを生成する(ステップ1207)。B<L≦2Bである場合、CPU11は、チェロ音色のチャンネルの発音情報のレコードを参照して、不使用のチャンネルに、チェロ音色のチャンネルの発音情報のレコードと、音色を除き同様な発音情報のレコードを生成する(ステップ1208)。また、2B<Lである場合には、コントラバス音色のチャンネルの発音情報のレコードを参照して、不使用のチャンネルに、コントラバス音色のチャンネルの発音情報のレコードと、音色を除き同様な発音情報のレコードを生成する(ステップ1209)。ステップ1207〜1209のそれぞれの場合においても、生成された発音情報のレコードは、音色を除き、他の情報(ミディメッセージ中の音高、発音開始時刻、発音時間、コードフラグ、ポインタなど)は、バイオリン音色、チェロ音色、コントラバス音色のチャンネルの発音情報のレコードの内容と同一となる。当該発音情報のレコードにおいて、音色は、サンプリングされた波形データの音色(サンプリング音色)となる。
第2の実施の形態においては、類似する指標を有するチャンネルの発音情報のレコードに基づいて、未使用のチャンネルについて、その音色が前記サンプリングされた波形データを指定する情報であるような新たな発音情報のレコードが生成される。したがって、元の音色のパターンに加えて、同じパターンで音色がサンプリング音色であるようなパターンの楽音が発音される。これにより、音楽的な品質を維持しつつ、音の厚みを増した自動伴奏パターンの楽音を発音することができる。
次に、本発明の第3の実施の形態について説明する。第2の実施の形態においては、サンプリングされた波形データの音色(サンプリング音色)で、自動伴奏パターン中、特定の音色のパターンと同一のパターンを生成している。第3の実施の形態においては、自動伴奏パターンの特定の音色のパターンと同一ではなく、サンプリング音色によって、1/2小節だけずらされたようなパターンを生成する。
図14および図15は、第3の実施の形態にかかる発音タイミングアサイン処理の例を示すフローチャートである。図14において、ステップ1401〜ステップ1403は、図7のステップ701〜ステップ703と同様であるため説明を省略する。ステップ1402でYesと判断された場合に、CPU11は、類似すると判断されたチャンネルの発音情報のレコードを参照して、不使用のチャンネルに、当該類似すると判断されたチャンネルの発音情報と以下に述べるような関係を有するレコードを生成する(ステップ1404)。ステップ1404においては、CPUは、上記類似すると判断されたチャンネルの発音情報のレコードのそれぞれを参照して、音色がサンプリングされた波形データの音色(サンプリング音色)で、かつ、発音開始時刻がB/2だけ遅れたようなレコードを生成する。生成された発音情報のレコードはRAM13に格納される。
この発音情報のレコードにおいては、音色および発音開始時刻を除き、他の情報(ミディメッセージ中の音高、発音時間、コードフラグ、ポインタなど)は、類似すると判断されたチャンネルの発音情報のレコードの内容と同一となる。また、発音開始時刻は、類似すると判断された発音情報のレコード中にある発音開始時刻にB/2を加えられたものとなっている。したがって、類似すると判断されたチャンネルのパターンと、1/2小節ずれたようなパターンの楽音が、サンプリング音色にて発音されることになる。
ステップ1403でNoと判断された場合には、図7のステップ705や図12のステップ1205と同様に、と同様に、CPU11は、時間長Lと、1拍に要する時間Bとを比較し、時間長Lが、どの時間の範囲に含まれるかを判断する(ステップ1501)。
ステップ1501の判断の結果、L≦B/2である場合には、CPU11は、ピチカート音色のチャンネルの発音情報のレコードを参照して、不使用のチャンネルに、ピチカート音色のチャンネルの発音情報のレコードと、音色および発音開始時刻を除き同様な発音情報のレコードを生成する(ステップ1502)。生成された発音情報のレコードはRAM13に格納される。生成された発音情報のレコードは、音色および発音開始時刻を除き、他の情報(ミディメッセージ中の音高、発音時間、コードフラグ、ポインタなど)は、ピチカート音色のチャンネルの発音情報のレコードの内容と同一となる。発音情報のレコードにおいて音色は、サンプリングされた波形データの音色(サンプリング音色)となり、発音開始時刻は、ピチカート音色のレコードの発音開始時刻からB/2だけずれたもの(ピチカート音色のレコードの発音開始時刻+B/2)となる。
B/2<L≦Bである場合には、CPU11は、バイオリン音色のチャンネルの発音情報のレコードを参照して、不使用のチャンネルに、バイオリン音色のチャンネルの発音情報のレコードと、音色および発音開始時刻を除き同様な発音情報のレコードを生成する(ステップ1503)。B<L≦2Bである場合、CPU11は、チェロ音色のチャンネルの発音情報のレコードを参照して、不使用のチャンネルに、チェロ音色のチャンネルの発音情報のレコードと、音色および発音開始時刻を除き同様な発音情報のレコードを生成する(ステップ1504)。また、2B<Lである場合には、コントラバス音色のチャンネルの発音情報のレコードを参照して、不使用のチャンネルに、コントラバス音色のチャンネルの発音情報のレコードと、音色および発音開始時刻を除き同様な発音情報のレコードを生成する(ステップ1505)。ステップ1503〜1505のそれぞれの場合においても、生成された発音情報のレコードは、音色および発音開始時刻を除き、他の情報(ミディメッセージ中の音高、発音開始時刻、発音時間、コードフラグ、ポインタなど)は、バイオリン音色、チェロ音色、コントラバス音色のチャンネルの発音情報のレコードの内容と同一となる。当該発音情報のレコードにおいて、音色は、サンプリングされた波形データの音色(サンプリング音色)となり、また、発音開始時刻は、バイオリン音色など元となった音色のレコードの発音開始時刻からB/2だけずれたもの(元となった音色のレコードの発音開始時刻+B/2)となる。
図16は、第3の実施の形態にかかるパターンの生成例を説明する図である。図16においては、図9と同様に、自動伴奏パターンのうち、チャンネルn〜チャンネルn+3のパターンを示し、チャンネルn、n+1、n+2およびn+3は、それぞれ、ピチカート、バイオリン、チェロ、コントラバスの音色となっている。この例でも、図8と同様に、小節が4拍(4/4拍子)であり、T=60であるため、B=1秒である。また、波形データ850の時間長Lは、0.48秒であったと考える。
図9の例と同様に、図16の例においても、CPU11は、ステップ1501においてL<B/2と判断する。したがって、CPU11は、それぞれのレコードにおいて、音色はサンプリングされた波形データの音色(サンプリング音色)となり、発音開始時刻は、ピチカート音色のレコードの発音開始時刻からB/2だけずれ、それ以外は、ピチカート音色のチャンネルの発音情報のレコードの内容と同一であるような発音情報のレコードを生成する。これにより、図16において、ピチカート音色の楽音1600、1601、1602、・・・に基づき、その発音開始時刻がB/2だけずれたサンプリング音色の楽音1610、1611、1612、・・・が発音される。
第3の実施の形態においては、類似する指標を有するチャンネルの発音情報のレコードに基づいて、未使用のチャンネルについて、発音開始時刻が、類似する指標を有するチャンネルの発音情報のレコードにおける発音開始時刻と一定の関係、たとえば、B/2だけずれたような関係を有するような新たな発音情報のレコードが生成される。これにより、元の音色のパターンと、一定の時間的な関係を有するサンプリング音色のパターンの楽音を発音することができる。したがって、パターンをより多彩にすることが可能となる。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
たとえば、前記実施の形態において、発音時間の傾向を示す指標として、発音時間の平均値を使用しているがこれに限定されるものではなく、最頻値や中央値を使用しても良い。また、波形データの時間長と平均値などの指標との差異を算出して、その差異の最小値が閾値より小さい場合には、当該差異が最小値となったチャンネルを、類似する指標を有するチャンネルと判断している。しかしながら、このような構成に限定されるものではなく、波形データの時間長と指標とが完全に一致するときに、そのチャンネルを、類似する指標を有するチャンネルと判断しても良い。
また、前記第3の実施の形態においては、元となるチャンネルのパターンと比較して、発音開始時刻がB/2だけずれたような新たなパターンを示す発音情報のレコードを静止している。しかしながら、発音開始時刻のずれは上記B/2に限定されるものではなく、他の値を適用できる。特に、自動伴奏パターンの拍子に応じて変化させても良い。第3の実施の形態では、4拍子の例(図16参照)であったが、自動伴奏パターンが3拍子であれば、発音開始時刻をB/3或いは(2B)/3だけずらすように構成しても良い。