(57)【特許請求の範囲】
【請求項１】
波形を表す波形データを、該波形中の音楽的タイミング位置を示すタイミングデータとともに記憶する記憶手段と、
前記記憶手段からの前記波形データの読出開始を指示する読出開始指示手段と、
演奏情報に基づく演奏の演奏タイミングを規定するタイミングクロックを、その演奏情報に基づく演奏の演奏開始を規定するスタートメッセージが入力された時点から計数し、その計数値に基づき所定の音楽的タイミングを検出するタイミング検出手段と、
前記読出開始指示手段からの読出開始指示を受けて、前記タイミングデータが表す波形中の音楽的タイミング位置が前記タイミング検出手段により検出された音楽的タイミングに一致するように、前記記憶手段に記憶された波形データを読み出して波形を再生する波形再生手段とを備え、
前記波形再生手段は、前記波形の先頭から該波形中の最初の音楽的タイミング位置までの時間Ａと、前記読出開始指示手段による前記波形データの読出開始指示タイミングから、前記波形データの読出開始指示タイミング以降最初に前記タイミング検出手段により検出された音楽的タイミングまでの時間Ｂとについて、Ａ≦Ｂの場合には、前記波形中の最初の音楽的タイミング位置と前記波形データの読出開始指示タイミング以降最初に前記タイミング検出手段により検出された音楽的タイミングとが一致するように前記波形を先頭から再生し、Ａ＞Ｂの場合には、前記波形中の最初の音楽的タイミング位置と前記波形データの読出開始指示タイミング以降最初に前記タイミング検出手段により検出された音楽的タイミングより後の音楽的タイミングとが一致するように前記波形を先頭から再生するものであることを特徴とする波形再生装置。
【請求項２】
前記記憶手段に記憶された、波形中の音楽的タイミング位置を示すタイミングデータが、波形中の離散的な複数の音楽的タイミング位置を示すタイミングデータであって、前記波形再生手段は、前記記憶手段に記憶された波形データが表す波形を、前記タイミングデータが表す、波形中の複数の音楽的タイミング位置それぞれが前記タイミング検出手段により順次検出される複数の音楽的タイミングそれぞれに一致するように時間軸方向に圧縮あるいは伸長する手段を含むものであることを特徴とする請求項１記載の波形再生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶された波形データを読み出して波形を再生する波形再生装置に関する。
【０００２】
【従来の技術】
従来より、波形再生装置において、外部もしくは内部に備えられた自動演奏装置により楽曲の演奏（伴奏等）が行なわれている途中から、その楽曲の拍や小節等の音楽的タイミングに一致するように、鍵盤等の操作子を操作して波形データを読み出して波形を再生するということが行なわれている。
【０００３】
【発明が解決しようとする課題】
ここで、リズム感がない（拍や小節の概念がなくテンポをもっていない）波形データのある一部を読み出して、自動演奏装置で演奏される楽曲の拍や小節の先頭に一致させるように波形を再生したい場合がある。例えば、ドラムロールの次にシンバル音が記憶されている波形データを読み出して波形を再生したい場合、操作子で波形再生の指示を行なうと、単純にドラムロールが発音し次いでシンバル音が発生する。このため、自動演奏装置で演奏されている楽曲の途中で、最初にドラムロールが発音し、シンバル音が次の小節の先頭で発生するように操作することは困難である。
【０００４】
また、リズム感はある（拍や小節の概念がありテンポをもっている）が、先頭から最初の拍のタイミングまでにプリビートと称する部分を有する波形データの拍・小節のタイミングと、自動演奏装置で演奏される楽曲の拍・小節のタイミングとが一致するように、その波形データを読み出して波形を再生したい場合がある。しかし、プリビートの再生が終了した時点で、波形データの最初の拍のタイミングが、自動演奏装置で演奏される楽曲の拍のタイミングに一致するように、波形再生の開始を指示することは困難である。
【０００５】
本発明は、上記事情に鑑み、自動演奏装置等で演奏される楽曲の音楽的タイミングに一致するように波形を再生することができる波形再生装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成する本発明の波形再生装置は、
（１）波形を表す波形データを、その波形中の音楽的タイミング位置を示すタイミングデータとともに記憶する記憶手段
（２）上記記憶手段からの上記波形データの読出開始を指示する読出開始指示手段
（３）繰り返し発生する音楽的タイミングを検出するタイミング検出手段
（４）上記読出開始指示手段からの読出開始指示を受けて、上記タイミングデータが表す波形中の音楽的タイミング位置が上記タイミング検出手段により検出された音楽的タイミングに一致するように、上記記憶手段に記憶された波形データを読み出して波形を再生する波形再生手段
を備えたことを特徴とする。
【０００７】
本発明の波形再生装置は、波形中の音楽的タイミング位置が上記タイミング検出手段により検出された音楽的タイミングに一致するように、上記記憶手段に記憶された波形データを読み出して波形を再生するものであるため、例えば、ドラムロールの次にシンバル音が記憶されている波形データを読み出して波形を再生したい場合、自動演奏装置で演奏されている楽曲の途中で、最初にドラムロールを表すデータを読み出し、次の小節の先頭に一致するようにシンバル音を表すデータを読み出すことにより、自動演奏装置で演奏されている楽曲の途中で、最初にドラムロールが発音し、次の小節の先頭でシンバル音を発音させることができる。また、プリビートを有する波形データ中の最初の拍のタイミングが、自動演奏装置で演奏される楽曲の拍のタイミングに一致するように、予めプリビートの部分が読み出されるため、プリビートの再生が終了した時点で、上記タイミングどうしを一致させるような困難な操作を行なう必要はない。
【０００８】
また、本発明は、波形中に複数のタイミング位置が設定されている場合、それら複数のタイミング位置のうちのいずれか１つのタイミング位置が、上記検出された音楽的タイミングのいずれかに一致するように波形再生を開始するものであればよい。さらに、本発明では、波形を最初から再生するものに限定されず、例えば波形の途中から、予め演奏されている楽曲の音楽的タイミングに波形中のタイミング位置を一致させるようにして再生してもよい。
【０００９】
ここで、上記波形再生手段は、上記読出開始指示手段からの読出開始指示を受けて、上記タイミングデータが表す波形中の音楽的タイミング位置を、その読出開始指示を受けたタイミング以降の上記タイミング検出手段により最初に検出される音楽的タイミングに一致させた波形再生が可能か否かを判定し、その判定結果に応じて、その波形中の音楽的タイミング位置が、それぞれ、その最初に検出される音楽的タイミングに一致するように、あるいはその最初に検出される音楽的タイミングよりも後に検出される音楽的タイミングに一致するように、波形を再生するものであることが好ましい。
【００１０】
このような波形再生手段を備えると、プリビートの時間の長短や読出開始指示のタイミングにかかわらず、どの波形の音楽的タイミング位置から検出された音楽的タイミングに一致するように、波形が再生される。尚、ここでいう「後に検出される音楽的タイミング」とは、最初に検出される音楽的タイミング以降のものであればいずれの音楽的タイミングであってもよいが、最初に検出される音楽的タイミングの直後に検出される音楽的タイミングを採用して波形を再生するのが望ましい。
【００１１】
また、上記記憶手段に記憶された、波形中の音楽的タイミング位置を示すタイミングデータが、波形中の離散的な複数の音楽的タイミング位置を示すタイミングデータであって、上記波形再生手段は、上記記憶手段に記憶された波形データが表す波形を、上記タイミングデータが表す、波形中の複数の音楽的タイミング位置それぞれが上記タイミング検出手段により順次検出される複数の音楽的タイミングそれぞれに一致するように時間軸方向に圧縮あるいは伸長する手段を含むものであることも好ましい態様である。
【００１２】
波形再生手段が、このような時間軸方向に圧縮あるいは伸長する手段を含むものであると、圧縮処理あるいは伸長処理される波形中の音楽的タイミング位置が、自動演奏装置で演奏される楽曲の音楽的タイミングに一致するように、波形を再生することができる。
【００１３】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
【００１４】
図１は、本発明の一実施形態の波形再生装置を含む電子楽器のブロック図である。
【００１５】
図１に示す電子楽器には、本実施形態の波形再生装置１００と、シーケンサ２００と、ＭＩＤＩ音源３００と、混合器４００と、増幅器５００と、スピーカ６００とが備えられている。
【００１６】
シーケンサ２００は、ＭＩＤＩ信号のうちの、後述するスタートメッセージＦＡおよびタイミングクロックＦ８を波形再生装置１００に出力する。タイミングクロックＦ８は、シーケンサ２００による演奏が停止している状態であっても波形再生装置１００に出力され続ける。
【００１７】
ＭＩＤＩ音源３００は、シーケンサ２００からの演奏情報に基づいてオーディオ波形を出力する。
【００１８】
波形再生装置１００は、詳細は後述するが、鍵盤等の読出開始指示手段により波形データの読出開始が指示された場合に、上記スタートメッセージＦＡおよびタイミングクロックＦ８に基づいて音楽的タイミング（ここでは拍の先頭）を検出し、予め記憶された波形データが表す波形中の音楽的タイミング位置が、検出された音楽的タイミングに一致するように、波形データを読み出してオーディオ波形を再生する。
【００１９】
混合器４００は、ＭＩＤＩ音源３００から出力されたオーディオ波形と、波形再生装置１００から出力されたオーディオ波形とを混合（ミックス）して、増幅器５００に向けて出力する。
【００２０】
増幅器５００は、混合器４００からのオーディオ波形を増幅する。
【００２１】
スピーカ６００は、増幅器５００で増幅されたオーディオ波形を空間に音として出力する。
【００２２】
図２は、図１に示す波形再生装置の構成図である。
【００２３】
図１に示す波形再生装置１００には、フレーズデータＲＯＭ１１と、ＣＰＵ１２と、プログラムＲＯＭ１３と、ワ―キングＲＡＭ１４と、操作子群１５と、ＭＩＤＩインターフェース１６と、Ｄ／Ａ変換器１７とが備えられている。これらフレーズデータＲＯＭ１１，ＣＰＵ１２，プログラムＲＯＭ１３，ワ―キングＲＡＭ１４，操作子群１５，ＭＩＤＩインターフェース１６，Ｄ／Ａ変換器１７は、バス１８により相互に接続されている。
【００２４】
フレーズデータＲＯＭ１１には、波形を表す波形データが、その波形中の音楽的タイミング位置を示すタイミングデータとともに記憶されている。
【００２５】
プログラムＲＯＭ１３には、波形再生装置１００全体の制御を行なうためのプログラムが格納されている。
【００２６】
ワ―キングＲＡＭ１４には、ＣＰＵ１２が種々の処理を実行するための作業領域等が備えられている。
【００２７】
操作子群１５には、フレーズデータＲＯＭ１１からの波形データの読出開始を指示する、本発明にいう読出開始指示手段が備えられている。
【００２８】
ＭＩＤＩインターフェース１６は、図１に示すシーケンサ２００からスタートメッセージＦＡおよびタイミングクロックＦ８を入力し、バス１８を介してＣＰＵ１２に伝達する。
【００２９】
ＣＰＵ１２は、プログラムＲＯＭ１３に格納されたプログラムを読み出して実行することにより、この図１に示す波形再生装置１００全体の制御を行なう。また、このＣＰＵ１２は、本発明にいうタイミング検出手段の役割を担うものであり、具体的には、ＭＩＤＩインターフェース１６を介してタイミングクロックＦ８を入力して拍をカウントする拍カウンタの機能を有し、この拍カウンタで、繰り返し発生する音楽的タイミング（拍の先頭）を検出する。また、ＣＰＵ１２は、本発明にいう波形再生手段の役割を担うものでもあり、読出開始指示手段からの読出開始指示を受けて、フレーズデータＲＯＭ１１に格納されたタイミングデータが表す波形中の音楽的タイミング位置が、このＣＰＵ１２により検出された音楽的タイミングに一致するように、フレーズデータＲＯＭ１１に格納された波形データを読み出してディジタルの波形を再生する、
Ｄ／Ａ変換器１７は、ＣＰＵ１２で再生されたディジタルの波形をＤ／Ａ変換してアナログのオーディオ波形として、前述した図１に示す増幅器５００に向けて出力する。
【００３０】
図３は、フレーズデータＲＯＭに格納される波形データの構造を示す図である。
【００３１】
図３（ａ）に示す波形データ３０には、その波形データ３０の先端に拍の先頭を表す第１マーク位置３１＿１が設けられており、以下、順次、第２マーク位置３１＿２，…，最終マーク位置３１＿ｎが設けられている。これら第１マーク位置３１＿１，第２マーク位置３１＿２，…，最終マーク位置３１＿ｎが、本発明にいう音楽的タイミング位置に相当する。また、波形データ３０の後端には、この波形データ３０の終了を示す波形データ終了位置３２も設けられている。
【００３２】
一方、図３（ｂ）に示す波形データ４０には、先頭部分にプリビート４３が設けられおり、このプリビート４３が終了した時点から、図３（ａ）に示す波形データ３０と同様にして、順次、拍の先頭を表す第１マーク位置４１＿１，第２マーク位置４１＿２，…，最終マーク位置４１＿ｎ、および波形データ４０の終了を示す波形データ終了位置４２が設けられている。本実施形態の波形再生装置１００では、このような構造を持つ波形データ３０，４０が取り扱われる。以下、詳細に説明する。
【００３３】
図４は、図３（ａ）に示す波形データが表す波形を再生する様子を示す図である。
【００３４】
図４に示すビート情報には、複数の拍が刻まれている。これら複数の拍は、スタートメッセージＦＡが入力された時点から、ＣＰＵ１２により実現される拍カウンタに２４個のタイミングクロックＦ８が入力される度に１つづつカウントされることにより検出される。
【００３５】
また、図４に示す時間ｔ０は、１拍分のタイミングクロックＦ８の数（２４個）に相当する時間である。さらに、時間ｔ１は、拍の先頭から読出開始指示手段で読出開始指示されるまでのタイミングクロックＦ８の数に相当する時間である。また、時間ｔ２は、読出開始が指示されてから波形データ３０の読出しが開始されるまでのタイミングクロックＦ８の数に相当する時間である。
【００３６】
ここで、図４に示すビート情報における最初の拍の先頭から時間ｔ１経過後、読出開始指示手段で、フレーズデータＲＯＭ１１に記憶された波形データ３０の読出開始が指示される。すると、時間ｔ２経過後、波形データ３０の先頭を表す第１マーク位置３１＿１が、ビート情報の２番目の拍の先頭に一致するように、その波形データ３０が読み出されて波形（シラブルＡ）が再生される。
【００３７】
次に、図３（ｂ）に示す、プリビートが設けられた波形データが表す波形を再生する様子について、図５〜図８を参照して説明する。
【００３８】
図５は、第１の時間を有するプリビートが設けられた波形データが表す波形を再生する様子を示す図である。
【００３９】
図５に示す第１の時間ｔ３は、時間ｔ０（１拍分のタイミングクロックＦ８の数（２４個）に相当する時間）から時間ｔ１（ビート情報の最初の拍の先頭から読出開始指示されるまでのタイミングクロックＦ８の数に相当する時間）を引き算した時間以下（ｔ３≦ｔ０−ｔ１）の、比較的短い時間である。
【００４０】
ここで、ビート情報の最初の拍の先頭から時間ｔ１経過後、波形データ４０の読出開始が指示される。すると、ＣＰＵ１２では、この読出開始指示を受けて、プリビート４３が終了した時点（拍の先頭を表す第１マーク位置４１＿１）を、読出開始指示を受けたタイミング以降であって、最初に検出されるビート情報の拍（２番目の拍）の先頭に合わせたシラブルＡの再生が可能か否かが判定される。ここでは、プリビート４３の時間ｔ３は、時間ｔ０−ｔ１以下であるため、この時間ｔ０−ｔ１内でプリビート４３を再生することができると判定される。従って、ビート情報の２番目の拍の先頭に第１マーク位置４１＿１が一致するように、先ず時間ｔ２経過後プリビート４３が再生され、次いでシラブルＡが再生される。
【００４１】
図６は、第２の時間を有するプリビートが設けられた波形データが表す波形を再生する様子を示す図である。
【００４２】
この第２の時間ｔ３は、時間ｔ０から時間ｔ１を引き算した値を超える時間（ｔ３＞ｔ０−ｔ１）である。
【００４３】
図６に示すビート情報の最初の拍の先頭から時間ｔ１経過後、波形データ４０の読出開始が指示される。すると、この読出開始の指示を受けて、プリビート４３が終了した時点（拍の先頭を表す第１マーク位置４１＿１）を、読出開始指示を受けたタイミング以降であって、最初に検出されるビート情報の拍（２番目の拍）の先頭に合わせたシラブルＡの再生が可能か否かが判定される。ここでは、プリビート４３の時間ｔ３は、時間ｔ０−ｔ１を超える時間であるため、この時間ｔ０−ｔ１内ではプリビート４３を再生することはできず、従ってビート情報の２番目の拍の先頭に合わせてシラブルＡを再生することは不可能であると判定される。そこで、ビート情報の３番目の拍の先頭に第１マーク位置４１＿１が一致するように、先ずビート情報の２番目の拍の先頭から時間ｔ２経過後プリビート４３が再生され、次いでシラブルＡが再生される。
【００４４】
図７は、第３の時間を有するプリビートが設けられた波形データが表す波形を再生する様子を示す図である。
【００４５】
第３の時間は、前述した図５に示す第１の時間ｔ３（ｔ３≦ｔ０−ｔ１）に２拍分の時間が加算された時間である。
【００４６】
図７に示すビート情報の最初の拍の先頭から時間ｔ１経過後、波形データ４０の読出開始が指示される。ここでは、プリビート４３の時間は、第１の時間ｔ３（ｔ３≦ｔ０−ｔ１）に２拍分の時間が加算された時間であるため、ビート情報の４番目の拍の先頭に第１マーク位置４１＿１が一致するように、先ずビート情報の最初の拍における時間ｔ２経過後から２番目，３番目の拍にわたりプリビート４３が再生され、次いでシラブルＡが再生される。
【００４７】
図８は、第２の時間を有するプリビートが設けられた波形データが表す波形を再生するにあたり、図６に示す波形再生とは異なる波形再生の様子を示す図である。
【００４８】
図８に示すプリビート４３の時間は、１拍分の時間ｔ０から読出開始が指示されるまでの時間ｔ１を引き算した値を超える時間（前述した図６に示すプリビート４３の時間と同じ時間）である。図６では、プリビート４３の時間は、時間ｔ０−ｔ１を超える時間であるため、ビート情報の２番目の拍の先頭に合わせた波形再生は不可能であると判定して、ビート情報の３番目の拍の先頭に第１マーク位置４１＿１が一致するように、シラブルＡを再生したが、ここでは以下に説明するようにして、ビート情報の２番目の拍の先頭に第１マーク位置４１＿１が一致するようにシラブルＡを再生する。
【００４９】
読出開始指示がなされていない状態にあっては、各拍内の経過時間が、１拍分の時間ｔ０−プリビート４３の時間に一致する度に波形データが読み出されており、読み出されたデータを表す波形が音量レベル０で出力されている。即ち、波形データは読み出されているものの発音されていない状態にある。このような状態において、次の拍までに読出開始指示がなされない場合は、次の拍に移行した際に読み出しを停止し、次の拍内の経過時間が、時間ｔ０−プリビート４３の時間に一致したら再び最初から波形データを読み出すということが繰り返される。
【００５０】
ここで、次の拍までに読出開始指示がなされた場合は、読み出されている波形データに所定のエンベロープを付与して発音させ、読出停止指示が行われるまで波形データが順次読み出される。このようにして、プリビート４３の時間が、時間ｔ０−ｔ１を超える時間であっても、図８に示すように時間ｔ１の途中からビート情報の最初の拍の終了に合わせてプリビート４３の再生が終了するように、即ちビート情報の２番目の拍の先頭に第１マーク位置４１＿１が一致するように先ずプリビート４３が再生され、次いでシラブルＡが再生される。
【００５１】
図９は、図２に示す波形再生装置のメインルーチンのフローチャートである。
【００５２】
図２に示す波形再生装置１００に電源が投入されると、このメインルーチンが実行される。尚、ここでは、プリビートが設けられた波形データが表す波形再生について説明する。先ず、ステップＳ１１において、波形データの読出アドレスの設定や、拍カウンタのリセット等の初期設定を行ない、ステップＳ１２に進む。ステップＳ１２では、プリビートの長さを表す、拍カウンタに入力されるタイミングクロックＦ８の個数に相当する時間ｔ３を算出する。時間ｔ３は、以下のようにして算出する。
【００５３】
タイミングクロックＦ８の実時間
＝６０（ｓｅｃ）／ＴＥＭＰＯ（ｂｐｓ）／２４（ｓｅｃ）
とする。また。
【００５４】
プリビートの実時間
＝プリビートのサンプル数×（１／サンプルレート）（ｓｅｃ）
とする。
【００５５】
さらに、プリビートに対するタイミングクロックＦ８の個数をｔ３’とすると、
ｔ３’＝プリビートの実時間／タイミングクロックＦ８の実時間
となる。
【００５６】
ここで、１）ｔ３’＜２４の場合、Ｔ３＝ｔ３’
２）ｔ３’＝０またはｔ３’＝２４の場合、Ｔ３＝０
３）ｔ３’＞２４の場合、Ｔ３＝ｔ３’／２４の余り
となる。上記Ｔ３（タイミングクロックＦ８の個数）を時間に換算して、時間ｔ３を算出する。
【００５７】
次に、ステップＳ１３において、拍カウンタの値ＣＮＴを‘０’（リセット）にする。さらに、ステップＳ１４において、発音開始指示フラグＶＯＩＣＥをオフ状態にする。この発音開始指示フラグＶＯＩＣＥは、波形データの読出開始指示があってから発音を開始するにあたり、波形データのプリビート時間が比較的短い場合、その読出開始指示があった拍からプリビートの発音を開始することを示すフラグである。次にステップＳ１５に進む。ステップＳ１５では、発音開始指示フラグＶＯＩＣＥ２をオフ状態にする。この発音開始指示フラグＶＯＩＣＥ２は、波形データの読出開始指示があってから発音を開始するにあたり、波形データのプリビート時間が比較的長い場合、その読出開始指示があった拍より後の拍からプリビートの発音を開始することを示すフラグである。その後、このルーチンを終了する。
【００５８】
図１０は、拍の先頭にタイミングクロックＦ８を同期させるためのルーチンのフローチャートである。
【００５９】
このルーチンは、前述した図９に示すメインルーチンに引き続いて実行される。先ず、ステップＳ２１において、ＭＩＤＩ信号のうちのスタートメッセージＦＡが受信されたか否かが判定される。スタートメッセージＦＡが受信されたと判定された場合は、ステップＳ２２に進み、拍カウンタの値ＣＮＴを‘０’にして、このルーチンを終了する。一方、スタートメッセージＦＡが受信されていないと判定された場合は、そのままこのルーチンを終了する。
【００６０】
図１１は、発音指示ルーチンのフローチャートである。
【００６１】
このルーチンは、読出開始指示手段により波形データが読み出されると実行されるルーチンである。
【００６２】
先ず、ステップＳ３１において、発音指示が行なわれたか否か（イベントがあるか否か）が判定される。発音指示が行なわれていないと判定された場合は、何もせずこのルーチンを終了する。一方、発音指示が行なわれていると判定された場合は、ステップＳ３２に進む。ステップＳ３２では、ｔ２＝ｔ０−ｔ３−(ＣＮＴ)の演算を行なう。即ち、１拍のタイミングクロックＦ８の数に相当する時間ｔ０から、プリビート分のタイミングクロックＦ８の数に相当する時間ｔ３および拍カウンタの値に相当する時間（ＣＮＴ）を引き算して、読出指示されてからプリビートの再生が開始されるまでのタイミングクロックＦ８の数に相当する待ち時間ｔ２を求める。
【００６３】
次に、ステップＳ３３において、待ち時間ｔ２が０未満か否かが判定される。待ち時間ｔ２が０未満でない、即ち０以上であると判定された場合は、その拍内でプリビートを再生することができるためステップＳ３４に進む。ステップＳ３４では、発音開始指示フラグＶＯＩＣＥをオン状態にして、このルーチンを終了する。一方、待ち時間ｔ２が０未満であると判定された場合は、その拍内でプリビートを再生することができないためステップＳ３５に進む。ステップＳ３５では、ｔ２＝ｔ０−ｔ３の演算を行なう。即ち、１拍のタイミングクロックＦ８の数に相当する時間ｔ０から、プリビート分のタイミングクロックＦ８の数に相当する時間ｔ３を引き算して待ち時間ｔ２を求める。次に、ステップＳ３６において、読出開始指示があった拍より後の拍で発音が行なわれることを示す発音開始指示フラグＶＯＩＣＥ２をオン状態にして、このルーチンを終了する。
【００６４】
図１２は、タイミングクロックＦ８により発生する割込み処理ルーチンのフローチャートである。
【００６５】
このルーチンは、タイミングクロックＦ８が入力される度に発生する割込みにより起動されるルーチンである。
【００６６】
先ず、ステップＳ４１において、拍カウンタの値ＣＮＴが最大数（この実施形態では拍単位での説明であるため、最大数は２４個であるが、小節単位の場合は、２４個×拍子の数が最大数となる）か否かが判定される。拍カウンタの値ＣＮＴが最大数でないと判定された場合は、後述するステップＳ４５に進む。一方、拍カウンタの値ＣＮＴが最大数であると判定された場合は、ステップＳ４２に進み、拍カウンタの値ＣＮＴを‘０’する。次に、ステップＳ４３において、発音開始指示フラグＶＯＩＣＥ２がオン状態か否かが判定される。発音開始指示フラグＶＯＩＣＥ２がオン状態でないと判定された場合は、ステップＳ４５に進む。一方、発音開始指示フラグＶＯＩＣＥ２がオン状態であると判定された場合はステップＳ４４に進む。ステップＳ４４では、発音開始指示フラグＶＯＩＣＥをオン状態にしてステップＳ４５に進む。
【００６７】
ステップＳ４５では、発音開始指示フラグＶＯＩＣＥがオン状態か否かが判定される。発音開始指示フラグＶＯＩＣＥがオン状態でないと判定された場合は、発音を行なう必要がないため、ステップＳ５０に進む。一方、発音開始指示フラグＶＯＩＣＥがオン状態でないと判定された場合は、ステップＳ４６に進む。
【００６８】
ステップＳ４６では、拍カウンタの値に相当する時間（ＣＮＴ）が待ち時間ｔ２に一致したか否か、即ち発音開始できるか否かが判定される。拍カウンタの値に相当する時間（ＣＮＴ）が待ち時間ｔ２に一致していないと判定された場合は、ステップＳ５０に進む。一方、拍カウンタの値に相当する時間（ＣＮＴ）が待ち時間ｔ２に一致したと判定された場合は、ステップＳ４７に進み発音を開始する。次にステップＳ４８において、発音開始指示フラグＶＯＩＣＥをオフ状態にし、さらにステップＳ４９において、発音開始指示フラグＶＯＩＣＥ２もオフ状態にして、ステップＳ５０に進む。ステップＳ５０では、拍カウンタの値ＣＮＴをインクリメントしてこのルーチンを終了する。
【００６９】
次に、本発明の一実施形態の、上述した波形再生装置１００とは異なる波形再生装置について説明する。
【００７０】
この波形再生装置は、上述した波形再生装置１００と比較し、フレーズデータＲＯＭ１１に記憶された、波形中の音楽的タイミング位置を示すタイミングデータが、波形中の離散的な複数の音楽的タイミング位置を示すタイミングデータであって、ＣＰＵ１２（波形再生手段）は、フレーズデータＲＯＭ１１に記憶された波形データが表す波形を、上記タイミングデータが表す、波形中の複数の音楽的タイミング位置それぞれがＣＰＵ１２（タイミング検出手段）により順次検出される複数の音楽的タイミングそれぞれに一致するように時間軸方向に圧縮あるいは伸長する手段を含むものである。以下、詳細に説明する。
【００７１】
この波形再生装置に接続されたシーケンサには、再生速度を設定するためのテンポ設定操作子と、演奏をスタート，ストップさせるためのスタート操作子，ストップ操作子が備えられており、スタート操作子が操作されるとテンポ設定操作子によって設定されているテンポで演奏情報（ＭＩＤＩ情報）をＭＩＤＩ音源に出力する。また、シーケンサは、演奏が停止している状態であっても本実施形態の波形再生装置に対してテンポ情報を出力し続ける。
【００７２】
また、本実施形態の波形再生装置には、複数の波形データを備え、波形選択操作子によって再生しようとする波形を選択できるようになっている。各波形データには、録音した際のテンポ情報と、音楽的な時間軸上のタイミング（拍の先頭、小節の先頭）を表すマーク位置（第１マーク位置、第２マーク位置、…）が設定されている。ここでは波形データの先頭から第１マーク位置までの間をプリビートとする。このプリビートは読出開始指示手段（鍵盤）からの読出開始指示に応じて、第１マークからの演奏（拍の先頭、小節の先頭）に先だって再生される部分である。
【００７３】
ここでは説明を簡単にするために、ノンリアルタイムのタイムストレッチ処理について説明する。電源が投入された場合、あるいはシーケンサが非動作時にテンポ設定操作子が操作された場合、シーケンサから送られてくるテンポ情報と、波形選択操作子によって選択されている波形データに設定されたテンポ情報に応じて、選択されている波形データにタイムストレッチ処理を行ない、シーケンサのテンポに応じた時間的な長さの波形データを生成する。タイムストレッチ処理とは、音声信号を間引いたり補間することにより、ピッチを変化させずに時間軸を圧縮したり伸長したりする処理をいう。このようなタイムストレッチ処理には種々の方法があり、それらは公知であるのでここでの詳細説明は省略する。
【００７４】
波形の再生が指示されると、テンポ値に応じたプリビートの長さ時間ｔ３（タイムストレッチ処理後の波形データの先頭から第１マーク位置までの長さ時間）を計算し、
１）プリビートの長さ時間ｔ３≦拍の長さ時間ｔ０−その拍内での経過時間ｔ１の場合は、
待ち時間ｔ２＝ｔ０−（ｔ１＋ｔ３）を計算し、待ち時間ｔ２だけ待ってからタイムストレッチ処理されたプリビートが再生され、次の拍のタイミングに第１マーク位置の再生タイミングが一致するようにタイムストレッチ処理された波形が再生されるようにする。
【００７５】
２）プリビートの長さ時間ｔ３＞拍の長さ時間ｔ０−その拍内での経過時間ｔ１の場合は、
待ち時間ｔ２＝ｔ０−（ｔ１＋ｔ３）を計算し、待ち時間ｔ２だけ待ってからタイムストレッチ処理されたプリビートが再生され、次の次の拍のタイミングに第１マーク位置の再生タイミングが一致するようにタイムストレッチ処理された波形が再生されるようにする。
【００７６】
このような処理を施すことでシーケンサが非動作時に、テンポ設定操作子によってテンポ値を変化させたとしても、それに同期してピッチを変化させることなく波形データの第１マーク位置の再生タイミングが拍（小節）のタイミングに一致するように波形を再生することができる。
【００７７】
尚、リアルタイムのタイムストレッチ処理を行なうようにすれば、シーケンサが動作している状態でテンポ設定操作子が操作された場合であっても、テンポに合わせた波形再生を行なうことができる。具体的には、シーケンサから送られてくるテンポクロックの間隔幅からテンポ値をリアルタイムに計算して算出し、算出されたシーケンサのテンポ情報と、読出開始指示手段（鍵盤）により読出開始指示された波形のテンポ情報とから波形データにタイムストレッチ処理を施して再生するようにすればよい。このようなリアルタイムのタイムストレッチ処理を行なえば、シーケンサが動作している状態であっても波形の再生を追従させることができる。
【００７８】
尚、本実施形態の波形再生装置では、シーケンサから受信したＭＩＤＩクロック（タイミングクロックＦ８）を計数することにより音楽的タイミングである、拍，小節を検出したが、波形再生装置に自動演奏装置又は自動伴奏装置が組み込まれている場合には、その波形再生装置自身が発生するタイミングにより、拍，小節を検出することができる。
【００７９】
【発明の効果】
以上説明したように、本発明によれば、自動演奏装置等で演奏される楽曲の音楽的タイミングに一致するように波形を再生することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態の波形再生装置を含む電子楽器のブロック図である。
【図２】図１に示す波形再生装置の構成図である。
【図３】図２に示すフレーズデータＲＯＭに格納される波形データの構造を示す図である。
【図４】図３（ａ）に示す波形データが表す波形を再生する様子を示す図である。
【図５】第１の時間を有するプリビートが設けられた波形データが表す波形を再生する様子を示す図である。
【図６】第２の時間を有するプリビートが設けられた波形データが表す波形を再生する様子を示す図である。
【図７】第３の時間を有するプリビートが設けられた波形データが表す波形を再生する様子を示す図である。
【図８】第２の時間を有するプリビートが設けられた波形データが表す波形を再生するにあたり、図６に示す波形再生とは異なる波形再生の様子を示す図である。
【図９】図２に示す波形再生装置のメインルーチンのフローチャートである。
【図１０】拍の先頭にタイミングクロックＦ８を同期させるためのルーチンのフローチャートである。
【図１１】発音指示ルーチンのフローチャートである。
【図１２】タイミングクロックＦ８により発生する割込み処理ルーチンのフローチャートである。
【符号の説明】
１１    フレーズデータＲＯＭ
１２    ＣＰＵ
１３    プログラムＲＯＭ
１４    ワ―キングＲＡＭ
１５    操作子群
１６    ＭＩＤＩインターフェース
１７    Ｄ／Ａ変換器
１８    バス
３０，４０    波形データ
３１＿１，４１＿１    第１マーク位置
３１＿２，４１＿２    第２マーク位置
３１＿ｎ，４１＿ｎ    最終マーク位置
３２，４２    波形データ終了位置
４３    プリビート
１００    波形再生装置
２００    シーケンサ
３００    ＭＩＤＩ音源
４００    混合器
５００    増幅器
６００    スピーカ
【図１】
0004170524.tif 000002
【図２】
0004170524.tif 000003
【図３】
0004170524.tif 000004
【図４】
0004170524.tif 000005
【図５】
0004170524.tif 000006
【図６】
0004170524.tif 000007
【図７】
0004170524.tif 000008
【図８】
0004170524.tif 000009
【図９】
0004170524.tif 000010
【図１０】
0004170524.tif 000011
【図１１】
0004170524.tif 000012
【図１２】
0004170524.tif 000013