(57)【特許請求の範囲】
【請求項１】
一連の複数の楽音を記録してなる楽音波形を表わす波形データを記憶しておき、該波形データを読み出して楽音として再生する電子楽器において、
前記波形データを記憶する記憶手段と、
前記記憶手段に記憶された波形データを所定の音符長に対応する周期で区切ったときの各周期内の波形データを、該各周期内の所定前半部分の波形データである前半波形データと該各周期内の所定の後半部分の波形データである後半波形データとに分けたときに、該前半波形データおよび該後半波形データを相互に異なる読出し速度で読み出す波形読出手段とを備えたことを特徴とする電子楽器。
【請求項２】
前記波形読出手段により読み出された後の波形データのピッチを、該波形読出手段により波形データを読み出す速度に対応したシフト量でシフトするピッチシフタを備えたことを特徴とする請求項１記載の電子楽器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音波形を表わす波形データを記憶しておき、その波形データを読み出して楽音として再生する電子楽器に関する。
【０００２】
【従来の技術】
従来より、楽曲の、例えばドラム演奏における１小節分のフレーズをサンプリングして得られた波形データ（フレーズサンプル）を複数種類記憶しておき、これら複数種類の波形データを適宜組み合わせて新たな楽曲（以下、ソングと記述する）を作成し、そのソングを自動演奏する電子楽器が知られている。
【０００３】
【発明が解決しようとする課題】
しかし、この電子楽器では、新たなソングの作成にあたり、サンプリングして得られた波形データのテンポをそのソングのテンポに合わせることは行なわれていても、サンプリングして得られた波形データのリズムのタイミングをずらすことにより、新たなソングにスイングを付与することは行なわれていなかった。
【０００４】
本発明は、上記事情に鑑み、スイングを付与することのできる電子楽器を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成する本発明の電子楽器は、一連の複数の楽音を記録してなる楽音波形を表わす波形データを記憶しておき、その波形データを読み出して楽音として再生する電子楽器において、
（１−１）上記波形データを記憶する記憶手段
（１−２）上記記憶手段に記憶された波形データを所定の音符長に対応する周期で区切ったときの各周期内の波形データを、その各周期内の所定前半部分の波形データである前半波形データとその各周期内の所定の後半部分の波形データである後半波形データとに分けたときに、前半波形データおよび後半波形データを相互に異なる読出し速度で読み出す波形読出手段
を備えたことを特徴とする。
【０００６】
本発明の電子楽器では、波形読出手段により、例えば前半波形データ，後半波形データを、それぞれ、相対的に遅い速度，相対的に速い速度で読み出すことにより、スイングを付与することができる。ここで、上記波形読出手段により読み出された後の波形データのピッチを、その波形読出手段により波形データを読み出す速度に対応したシフト量でシフトするピッチシフタを備えることが効果的である。
【０００７】
このようなピッチシフタを備えると、相互に異なる読出し速度で読み出された前半波形データおよび後半波形データのピッチをシフトできるため、読出し速度に起因する音高の変化を補正することができる。
【０００９】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
図１は、本発明の第１の電子楽器の一実施形態のハードウェア構成を示すブロック図である。
図１に示す電子楽器１０は、楽音波形を表わす波形データを記憶しておき、記憶された波形データに基づいて新たなソングを作成するとともに、そのソングにスイングを付与することにより自動演を行なう電子楽器である。先ず、スイングについて、図２，３，４，５を参照して説明する。
【００１０】
図２，３，４，５は、スイングを付与する手法を示す説明図である。
例えば、本来のリズムが、４分音符に対応する周期で区切ったときの各周期内の波形データの、図２（ａ）の◎印で示す中間にアクセントがあるリズムの場合、その◎印のタイミングを遅らせて、各周期内の波形データの、図２（ｂ）の◎印で示す後半にすると新たなリズムを得ることができる。このようにしてアクセントのタイミングをずらすことによりスイングを付与することができる。
【００１１】
波形データ（フレーズサンプル）に基づいてソングにスイングを付与するために、例えば以下の処理が行なわれる。
図２（ｃ）に示す、波形データのうちの区間［ａ−ｂ］について、
・前半区間［ａ−ａ’］では通常よりも遅い速度で波形データを読み出す（これにより前半区間［ａ−ａ’］の再生時間が延びる）。
・後半区間［ａ’−ｂ］では通常の速度よりも速い速度で波形データを読み出す（これにより後半区間［ａ’−ｂ］の再生時間が縮まる）。
・区間［ｂ−ｃ］、［ｃ−ｄ］、［ｄ−ｅ］についても、区間［ａ−ｂ］と同様にして読み出す。
【００１２】
以上により、フレーズサンプルは、そのフレーズサンプルの各点ａ’、ｂ’、ｃ’、ｄ’のタイミングがずれて、図２（ｄ）に示すように再生される。
ただし、各点ａ，ｂ，ｃ，ｄ，ｅのタイミングが変化しないようにするために、波形の読出し速度を調節する必要がある。具体的には、例えば前半区間［ａ−ａ’］の波形データを通常の速度の３／４で読み出した場合は、後半区間［ａ’−ｂ］の波形データを通常の速度の３／２で読み出すようにする。
【００１３】
ここで、読出し速度を変えることにより、本来の波形データの音高が変化してしまう。波形データの内容が、ドラムパターンの演奏音であれば、さほど問題にならないが、例えばピアノ演奏音の場合、ピアノの音高の変化は大きな問題となる。また、読出し速度を遅くしたり速くしたりすると、その都度音高の変化が生じる。
【００１４】
そこで、ピッチシフタ（音高補正手段）を用いて音高を本来の音高に戻すこととする。具体的には、読出し速度が通常の速度のＫ倍であれば、読み出されたフレーズサンプルに対して１／Ｋ（周波数比）のピッチシフトを施せばよい。
ここで、読出し速度の変化パターンを複数持つ場合の変化パターンの切り換えについて説明する。前述の例で、読出し速度について、前半区間［ａ−ａ’］を通常の速度の３／４の速度で、後半区間［ａ’−ｂ］を通常の速度の３／２の速度で読み出す例を示したが、読出し速度はこの他にもいろいろなパターンが考えられる。例えば、区間［ａ−ｂ］を読み出すパターンとして、前半区間［ａ−ａ’］を通常の速度の６／７の速度で、後半区間［ａ’−ｂ］を通常の速度の６／５の速度で読み出すパターンや、区間［ａ−ｂ］を通常の再生速度で読み出すパターン等が考えられる。さらに、読出し速度が連続的に変化するような、図３（ｅ）に示す関数（テーブル）を与えるパターンもある。これらのパターンの中から所望のパターンを選択し、同一のフレーズサンプルに適用することで、様々なリズムが得られる。
【００１５】
ところが、読出し速度のパターンを途中で切り換える場合、適切なタイミングで行なわないと、フレーズサンプルの再生が時間的にずれてしまう。
具体的な例としては、フレーズサンプルを、前半区間［ａ−ａ’］を通常の速度の３／４の速度で読み出し、後半区間［ａ’−ｂ］を通常の速度の３／２の速度で読み出し（区間［ｂ−ｃ］，［ｃ−ｄ］，［ｄ−ｅ］についても区間［ａ−ｂ］と同様に読み出す）、新たなソングとして再生している場合、ユーザの操作により、図３（ｆ）に示す▲印のタイミングで通常の再生速度のパターンに切り換えると、図３（ｇ）に示すように区間［ｂ−ｃ］が時間的に延びてしまい、本来ずれては困るｃ点やｄ点が時間的に後の方にずれてしまうことになる。そこで、特定のタイミング以外のタイミングではパターンの切り換えを行なわないように制御する必要がある。このため、図３（ｆ）に示す▲印のタイミングでユーザがパターン切り換えの指示を行なった場合であっても、図３（ｈ）に示す点ｃ（△印）まで待ってから切り換えを行なう。
【００１６】
次に、読出し速度のパターンの計算について説明する。
上述したような、前半区間［ａ−ａ’］を通常の速度の３／４で読み出し、後半区間［ａ’−ｂ］を通常の速度の３／２の速度で読み出すというように読出し速度のパターンを設定するにあたり、３／４，３／２のような値を直接決めることはユーザにとって難しく、しかも直感的ではない。
【００１７】
そこで、図４（ｉ）に示すように点ａ’のタイミングをどれだけずらすかを示す値（スイング比）を設定する方がユーザにとって容易であり、また直感的でもある。このスイング比によって読出し速度を計算することができる。図４（ｊ）に示す区間［ａ−ｂ］の波形データにおいて、
・前半区間［ａ−ａ’］の波形データを読み出す速度は、
５０／（スイング比）倍
・後半区間［ａ’−ｂ］の波形データを読み出す速度は、
５０／（１００−（スイング比））倍
となる。
【００１８】
ここで、フレーズサンプル再生時に、ピッチベンドとピッチシフタを付加してスイングを付与する場合について、図５を参照して説明する。本実施形態において、ピッチベンドとは波形データの読出し速度を変化させることであり、その結果、発生される楽音の再生ピッチが変化する。ピッチベンドの量はその再生ピッチの変化量で表され、例えば＋１２００セント（＋１オクターブ）、−１２００セント（−１オクターブ）という値は、それぞれ波形データの読出し速度にして２倍、１／２倍に対応する。尚、ピッチベンドのタイミングと量は、テーブルにあらかじめ用意されており、そのテーブルに従ってリアルタイムにピッチベンドとピッチシフトが付加される。ピッチシフト量は、ピッチベンド量の補数、即ちピッチベンド量の正負を逆にした値が与えられ、ピッチを相殺する働きをする。
【００１９】
図５（ｋ）に示す波形データは、４分音符からなるイーブンなリズム、即ちスイングしていないリズムである。これに図５（ｌ）に示すピッチベンドテーブルに従ったピッチベンド変化量を付加する．すると、図５（ｍ）に示すようなスイングが付与される。しかし、このままではピッチも変わってしまうので、ピッチベンド量の補数をピッチシフタに入力する。このようにして、ピッチが不変でスイングディレイがかかった波形データが得られる。
【００２０】
ここで、ピッチベンドテーブルを各種用意しておくと、ユーザは楽音を聞きながらいろいろなスイングフィールを試すことができる。
次に、図１に戻って電子楽器１０のブロック図について説明する。
図１に示すＣＰＵ１１は、ＲＯＭ１２に格納されたプログラムをデータバス１９を経由して読み出し、ＲＡＭ１３を作業領域として種々の処理を実行する。
【００２１】
ＲＯＭ１２には、この図１に示す電子楽器１０全体の制御を行なうためのプログラムや、楽曲の例えば１小節分のフレーズをサンプリングして得られた複数の波形データ（フレーズサンプル）等が格納されている。複数の波形データそれぞれには、後述するフレーズ番号が付与されている。
ＲＡＭ１３には、フレーズサンプルを再生するにあたり、ＣＰＵ１１が上記の複数の波形データを読み出すときに参照する情報（フレーズ制御情報）や、それぞれの波形データに対応した、読出しピッチを制御する複数のピッチベンド制御情報や、ＣＰＵ１１が種々の処理を実行するための作業領域等が備えられている。複数のピッチベンド制御情報それぞれには、後述するピッチベンド制御情報番号が付与されている。
【００２２】
楽音発生部１４には、波形読出部１５と音高補正部１６が備えられている。波形読出部１５は、ＣＰＵ１１からの指示によりＲＯＭ１２に格納されている波形データを読み出す。一方、音高補正部１６は、ＣＰＵ１１からの指示により波形データの音高を補正する。
操作パネル部１７には、詳述は後述するが、波形データの再生を指示するためのパッドや、ピッチベンド制御情報番号を変更するボタン等が備えられている。
【００２３】
表示部１８には、例えばスイング比等の必要な情報が表示される。
図６は、図１に示す操作パネル部を示す図である。
操作パネル部１７には、ピッチベンド制御情報番号ＵＰボタン２１，ピッチベンド制御情報番号ＤＯＷＮボタン２２，スイング比設定つまみ２４，スイング・ノート切り替えボタン２５，パッド２６が備えられている。
【００２４】
ピッチベンド制御情報番号ＵＰボタン２１は、現在演奏中のフレーズのフレーズ制御情報番号が示すピッチベンド制御情報番号をインクリメントする。
ピッチベンド制御情報番号ＤＯＷＮボタン２２は、現在演奏中のフレーズ制御番号が示すピッチベンド制御情報番号をデクリメントする。
スイング比設定つまみ２４は、現在演奏中のフレーズのピッチベンド制御情報番号が示すスイング比を設定する。
【００２５】
スイング・ノート切り替えボタン２５は、現在演奏中のフレーズのピッチベンド制御情報番号が示すスイング・ノート（スイングする音符の単位）を４分音符か８分音符かに切り換えるためのものである。
パッド２６は、ＲＯＭ１２に格納されている波形データのフレーズ番号に対応して複数（図には１２個のパッド２６を例示的に示す）備えられている。
【００２６】
ここで、いずれかのパッド２６が押下されると、再び同じパッド２６が押下されるまでそのパッド２６に対応するフレーズ番号の波形データがスタートアドレスから再生される。波形データが再生され（以下、フレーズ再生と称する場合がある）、エンドアドレスまで到達すると、スタートアドレスに戻る。このようにしてフレーズ再生が繰り返される。フレーズ再生中に他のパッド２６を押下すると、そのフレーズ再生は停止され、押下されたパッド２６に対応するフレーズ番号の波形データが再生される。
【００２７】
図７は、図１に示すＲＡＭの、フレーズ制御情報とピッチベンド制御情報が格納されている領域を示す模式図である。
ＲＡＭ１３の各領域３１，３２，３３，…，３ｎには、各波形データに付与されたフレーズ番号順にフレーズ制御情報１，２，３，…，ｎが格納されている。これらのフレーズ制御情報１，２，３，…，ｎは、いずれかのパッド２６（図６参照）が押下されると、押下されたパッド２６に対応するフレーズ番号のフレーズ制御情報がＣＰＵ１１により読み出され、発音を指示する命令として楽音発生部１４に送出される。各フレーズ制御情報１，２，３，…，ｎは、図の右上に示すようにスタート・アドレス３０１，エンド・アドレス３０２，テンポ３０３，ピッチベンド制御情報番号３０４から構成されている。
【００２８】
スタート・アドレス３０１およびエンド・アドレス３０２には、ＲＯＭ１２に格納されている、フレーズ制御情報１，２，３，…，ｎに対応する波形データの先頭アドレスおよび最終アドレスが格納される。
テンポ３０３には、その波形データが有するテンポ（例えば１分間当たりに演奏される４分音符の数（ＢＰＭ））が格納される。
【００２９】
ピッチベンド制御情報番号３０４には、スイングのパターン番号が格納される。
また、ＲＡＭ１３の各領域４１，４２，４３，…，４ｎには、各フレーズ制御情報１，２，３，…，ｎに付与されたピッチベンド制御情報番号順にピッチベンド制御情報１，２，３，…，ｎが格納される。各ピッチベンド制御情報１，２，３，…，ｎは、図の右下に示すようにスイング比（％）４０１、クロック数（ｃｌｏｃｋ）４０２、ピッチ降下量（ｃｅｎｔ）４０３、ピッチ上昇量（ｃｅｎｔ）４０４、スイング・ノート（ｃｌｏｃｋ）４０５から構成されている。
【００３０】
スイング比４０１には、スイングのかかる音符をどれだけ遅らせるかを示す比率が格納される。この比率は、スイングをかけないときを５０％としスイングをかける音符が次の拍に重なるときを１００％とする。通常は５０％から７５％の間をとり、スイング比設定つまみ２４を操作することで設定される。
クロック数４０２には、例えば４分音符を９６クロックとした場合、最後のクロックから何クロック前でピッチベンド制御を下降から上昇へ変えるかを示すクロック数が格納される。
【００３１】
ピッチ降下量４０３には、フレーズの先頭からクロック数４０２に格納されているクロック数までを再生するときのピッチベンド量が格納される。
ピッチ上昇量４０４には、クロック数４０２に格納されているクロック数からフレーズの最後までを再生するときのピッチベンド量が格納される。
スイング・ノート４０５には、スイングする音符の長さが格納される。
【００３２】
ここで、波形読出部１５が、ＣＰＵ１１からのフレーズ発音の指示命令を受けると、ＲＯＭ１２に格納されている、スタート・アドレス３０１に格納されている値からエンド・アドレス３０２に格納されている値までの波形データを読み出し、これによりＲＡＭ１３に格納されているピッチベンド制御情報のピッチ降下量４０３の値に従った再生ピッチで発音が行なわれる。同時に、そのフレーズ制御情報のテンポ３０３に格納されている値のタイミングでテンポ割り込みが発生し、所定のテンポラリレジスタに変数ｔとして、そのフレーズ制御情報のピッチベンド制御情報番号３０４が示すピッチベンド制御情報のスイング・ノート４０５の値が代入される。テンポ割り込み毎にこの変数ｔはデクリメントされ、変数ｔの値がクロック数４０２の値と等しくなった時点で、再生ピッチはピッチ上昇量４０４の値に従う。さらに変数ｔが０になった時点で再び再生ピッチはピッチ降下量４０３の値に従い、変数ｔとしてソング・ノート４０５の値が再度代入される。
【００３３】
次に音高補正部１６がＣＰＵ１１から指定された音高補正量すなわちピッチ下降量４０３の値もしくはピッチ上昇量４０４の値の補数（正負の符号を逆にした値）に対応する読出し速度でＲＡＭ１３に連続的に記憶された再生波形データを読み出していく。これにより波形読出部１５によって再生された波形データの音高が補正される。読出しアドレスはスタート・アドレス３０１，エンド・アドレス３０２に格納されている値により定まる領域内を巡回する。
【００３４】
音高補正部１６による読出しはＲＡＭ１３の領域内の２カ所で同時に行なわれる。各々の読出しアドレスは領域の半分の長さにあたるアドレス差を持っている。読出し速度と書込み速度が異なるために生じる波形の不連続点が現れないように、２つの読出し波形をクロス・フェードする。ここで、例えば読出し速度を１／２にすれば、波形の音高は周波数で１／２（音程で１オクターブ減）となって再生されるが、テンポは書込み速度によって決まるため、読出し速度を１／２にしても変わることはない。
【００３５】
図８は、ソングにスイングが付与される様子を示した図である。
演奏されるソングは、図８（ａ）に示す、スタートアドレスからエンドアドレスまでの、拍が均等なジャストの波形データから構成されている。この波形データに対して、テンポ割込み毎に、図８（ｂ）に示すスイング・ノートの値がデクリメントされるとともに再生ピッチがピッチ降下量に従い、さらにスイング・ノートの値がクロック数と等しくなった時点から再生ピッチがピッチ上昇量に従うため、図８（ｃ）に示すようなスイング後の演奏波形データが得られる。
【００３６】
図９は、図１に示す電子楽器のメインルーチンのフローチャートである。
図１に示す電子楽器に電源が投入されると、このルーチンが起動される。まず、ステップＳ５０１において、フラグのクリア等の初期設定が行なわれる。
次にステップＳ５０２において、パッドｎ（ｎは、押されたパッドの番号を表わす）が押されたか否かが判断される。いずれかのパッドが押されたと判断された場合は、ステップＳ５０３に進む。このステップＳ５０３は、後述する図１０に示すパッドｎ押下処理ルーチンであり、そのルーチンによる処理後、ステップＳ５０４に進む。
【００３７】
一方、ステップＳ５０２において、いずれのパッドも押されていないと判断された場合はそのままステップＳ５０４に進む。ステップＳ５０４では、プレイレジスタが０か否かが判断される。このプレイレジスタには、現在演奏が行なわれているとその演奏のパッドの番号が代入され、現在演奏が停止されていると０が代入される。プレイレジスタが０と判断された場合は演奏が停止されているため、ステップＳ５０２に戻る。一方、プレイレジスタが０でないと判断された場合は、現在演奏が行なわれているためステップＳ５０５へ進む。
【００３８】
ステップＳ５０５において、ピッチベンド制御情報番号ＵＰボタンが押されたか否かが判断される。ピッチベンド制御情報ＵＰボタンが押されたと判断された場合はステップＳ５０６へ進み、一方、ピッチベンド制御情報番号ＵＰボタンが押されていないと判断された場合はそのままステップＳ５０８へ進む。ステップＳ５０６では、ピッチベンド制御情報番号が最大値か否かが判断される。ピッチベンド制御情報番号が最大値であると判断された場合は、ステップＳ５０８に進む。一方、ピッチベンド制御情報番号が最大値でないと判断された場合は、ステップＳ５０７においてピッチベンド制御情報番号をインクリメントしてステップＳ５０８へ進む。このように、ピッチベンド制御情報番号が最大値でない場合はステップＳ５０７において、ピッチベンド制御情報番号ＵＰボタンが押されるごとにピッチベンド制御情報番号がインクリメントされる。
【００３９】
ステップＳ５０８では、ピッチベンド制御情報番号ＤＯＷＮボタンが押されたか否かが判断される。ピッチベンド制御情報番号ＤＯＷＮボタンが押されていないと判断された場合はそのままステップＳ５１１へ進む。
一方、ピッチベンド制御情報番号ＤＯＷＮボタンが押されたと判断された場合はステップＳ５０９に進み、ピッチベンド制御情報番号が最小値か否かが判断される。ピッチベンド制御情報番号が最小値であると判断された場合は、そのままステップＳ５１１に進む。一方、ピッチベンド情報番号が最小値でないと判断された場合は、ステップＳ５１０に進み、ピッチベンド制御情報番号をデクリメントしてステップＳ５１１へ進む。このように、ピッチベンド制御情報番号が最小値でない場合はステップＳ５１０において、ピッチベンド制御情報番号ＤＯＷＮボタンが押されるごとにピッチベンド制御情報がデクリメントされる。
【００４０】
ステップＳ５１１では、スイング・ノート切り替えボタンが押されたか否かが判断される。スイング・ノート切り替えボタンが押されていないと判断された場合はそのままステップＳ５１５に進む。一方、スイング・ノート切り替えボタンが押されたと判断された場合は、ステップＳ５１２に進み、スイング・ノートが９６か否かが判断される。スイング・ノートが９６であると判断された場合は、ステップＳ５１４に進み、スイング・ノートに４８を代入してステップＳ５１５に進む。一方、スイング・ノートが９６でないと判断された場合はステップＳ５１３に進み、スイング・ノートに９６を代入してステップＳ５１５に進む。このようにスイング・ノート切り替えボタンを押すごとに、スイング・ノートが４８、９６、４８、９６…と変化する。
【００４１】
ステップＳ５１５において、スイング比設定つまみが回されたか否かが判断される。スイング比設定つまみが回されたと判断された場合は、ステップＳ５１６に進む。ステップＳ５１６は、後述する図１１に示すスイング比設定つまみ処理ルーチンであり、そのルーチンによる処理後、ステップＳ５０２に戻る。一方、ステップＳ５１６において、スイング比設定つまみが回されていないと判断された場合はそのままステップＳ５０２に戻る。
【００４２】
図１０は、図９に示すパッドｎ押下処理ルーチン（ステップＳ５０３）のフローチャートである。
まずステップＳ６０１において、プレイレジスタが、押下されたパッドの番号ｎ（以下、変数ｎと記述する）と等しいか否かが判断される。プレイレジスタが変数ｎと等しいと判断された場合は、ステップＳ６０２に進む。
【００４３】
ステップＳ６０２では、プレイレジスタに０を代入しステップＳ６０３に進む。ステップＳ６０３では、テンポ割り込みを禁止してステップＳ６０４に進む。ステップＳ６０４では、ｎ番のパッドのフレーズ発音を停止し、リターンする。一方、ステップＳ６０１において、プレイレジスタが変数ｎと等しくないと判断された場合はステップＳ６０５に進む。ステップＳ６０５では、プレイレジスタが０か否かが判断される。プレイレジスタが０でないと判断された場合は、ステップＳ６０６に進み、予約レジスタに変数ｎを代入してリターンする。予約レジスタとは、フレーズ演奏中に別のパッドが押下された場合、フレーズが切り換わるまで、押下されたパッドの番号を一時的に記憶しておくレジスタである。
【００４４】
一方、ステップＳ６０５において、プレイレジスタが０と判断された場合はステップＳ６０７に進む。ステップＳ６０７では、プレイレジスタに変数ｎを代入してステップＳ６０８に進む。ステップＳ６０８では、ｎ番のパットのフレーズ発音を開始しステップＳ６０９に進む。ステップＳ６０９では、変数ｔとしてスイング・ノートを代入してステップＳ６１０に進む。ステップＳ６１０では、ｎ番のパッドのフレーズのテンポを割り込みタイミングとし、ステップＳ６１１に進む。ステップＳ６１１では、テンポ割り込みを許可してリターンする。
【００４５】
図１１は、図９に示すスイング比設定つまみ処理ルーチン（ステップ５１６）のフローチャートである。
まずステップＳ７０１において、スイング比設定つまみが右に回されたか否かが判断される。スイング比設定つまみが右に回されたと判断された場合は、ステップＳ７０４に進む。ステップＳ７０４では、スイング比が最大値に達したか否かが判断される。スイング比が最大値に達したと判断された場合はリターンする。一方、スイング比が最大値に達していないと判断された場合はステップＳ７０５に進み、スイング比をインクリメントしてリターンする。
【００４６】
一方、ステップＳ７０１において、スイング比設定つまみが左に回されたと判断された場合は、ステップＳ７０２に進む。ステップＳ７０２では、スイング比が最小値に達したか否かが判断される。スイング比が最小値に達したと判断された場合はリターンする。一方、スイング比が最小値に達していないと判断された場合は、ステップＳ７０３において、スイング比をデクリメントしてリターンする。このようにスイング比設定つまみを右回転するとスイング比が最大値に達するまでインクリメントされ、スイング比設定つまみを左回転するとスイング比が最小値に達するまでデクリメントされる。
【００４７】
図１２は、テンポ割り込みルーチンの、ＲＯＭに格納されている波形データのテンポに対応する時間毎に繰り返し実行されるフローチャートである。
ここでは、フレーズ再生と同時にスイング・ノート４０５（図７参照）の値が変数ｔとして代入されており、その変数ｔはテンポ割り込み毎にデクリメントされる。
【００４８】
まず、ステップＳ８０１において、変数ｔがスイング・ノートと等しいか否かが判断される。変数ｔがスイング・ノートと等しくないと判断された場合は、ステップＳ８０３に進む。ステップＳ８０３では、変数ｔがクロック数と等しいか否かが判断される。変数ｔがクロック数と等しいと判断された場合はステップＳ８０４に進む。ステップＳ８０４では、ピッチ上昇量に基づいてピッチベンド制御を行ないステップＳ８１６に進む。このステップＳ８０４により波形読出部１５の再生ピッチはピッチ上昇量に従い、音高補正部１６はピッチ上昇量の補数でピッチシフトを行なう。一方、ステップＳ８０３において、変数ｔがクロック数と等しくない、即ち小さいと判断された場合は、そのままステップＳ８１６に進む。
【００４９】
一方、ステップＳ８０１において、変数ｔがスイング・ノートと等しいと判断された場合は、ステップＳ８０５に進む。ステップＳ８０５では、予約レジスタが０か否かが判断される。予約レジスタが０であると判断された場合は、ステップＳ８１２に進み、予約レジスタが０でないと判断された場合は、ステップＳ８０６に進む。
【００５０】
先ず、ステップＳ８１２に進んだ場合について説明する。ここで、ピッチ降下量（単位はセント）とスイング比（単位は％）の関係は、例えば以下の式で表わすことができる。
ピッチ降下量＝１２００×ｌｏｇ２  （５０／スイング比）
ステップＳ８１２では、スイング比からピッチ降下量を計算してピッチ降下量４０３（図７参照）へ代入する。
【００５１】
次にステップＳ８１３に進む。ここで、ピッチ上昇量（単位はセント）とスイング比（単位は％）の関係は、例えば以下の式で表わすことができる。
ピッチ上昇量＝１２００×ｌｏｇ２  （５０／（１００−スイング比））
ステップＳ８１３では、スイング比からピッチ上昇量を計算してピッチ上昇量４０４（図７参照）へ代入する。
【００５２】
次にステップＳ８１４に進む。ステップＳ８１４では、スイング比からクロック数を計算してクロック数４０２（図７参照）へ代入する。ここで、クロック数（単位はクロック）とスイング比（単位は％）の関係は、例えば以下の式で表わすことができる。
クロック数＝スイングノート×（１−（スイング比／１００））
次にステップＳ８１５に進む。ステップＳ８１５では、ピッチ降下量に基づいてピッチベンド制御を実行してステップＳ８１６に進む。このステップＳ８１５により波形読出部１５の再生ピッチはピッチ降下量に従い、音高補正部１６はピッチ降下量の補数でピッチシフトを行なう。
【００５３】
一方、ステップＳ８０６に進んだ場合は、ステップＳ８０６において、プレイレジスタが示す番号のパッドのフレーズの発音を停止し、ステップＳ８０７に進む。ステップＳ８０７では、予約レジスタが示す番号のパッドのフレーズの発音を制御し、ステップＳ８０８に進む。ステップＳ８０８では、予約レジスタが示す番号をプレイレジスタに代入しステップＳ８０９に進む。ステップＳ８０９では、予約レジスタが示す番号のパッドのフレーズのテンポをテンポ割り込みのタイミングとして、ステップＳ８１０に進む。ステップＳ８１０では、変数ｔにスイング・ノートを代入してステップＳ８１１に進む。ステップＳ８１１では、予約レジスタに０を代入（予約レジスタのクリア）してステップＳ８１２に進む。
【００５４】
ステップＳ８１６では、変数ｔが０か否かが判断される。変数ｔが０と判断された場合はステップＳ８１８に進む。ステップＳ８１８では、変数ｔにスイング・ノートを代入してリターンする。一方、ステップＳ８１６において、変数ｔが０でないと判断された場合はステップＳ８１７に進む。ステップＳ８１７では、変数ｔをデクリメントしてリターンする。
【００５５】
図１３は、本発明の第２の電子楽器の一実施形態における、前半波形データの一部を重複して読み出すことにより再生時間を伸張する様子を示す図（ａ）、および後半波形データの一部を読み飛ばすことにより再生時間を圧縮する様子を示す図（ｂ）である。
ここでは、波形データの読出しにあたり、通常の読出し速度を基準として何倍の速度で波形データを読み出すかを示す読出し速度の比（ｃ）を指示することにより、ソングにスイングを付与する。例えば、読出し速度の比（ｃ）が１／２であれば、波形データの再生時間は２倍になり、読出し速度の比（ｃ）が２であれば、波形データの再生時間は１／２倍になる。
【００５６】
図１３（ａ）には、読出し速度の比が１より小さい場合（ｃ＜１）、つまり前半波形データの一部を重複して読み出すことにより再生時間を伸張する様子が示されている。前半波形データを単位長さｄ毎に区分し、それら区分毎に斜線部で示す区間ｓを設ける。前半波形データを読み出すときにこの斜線部で示す区間ｓを重複して読み出すことにより再生時間が伸張される。
【００５７】
ここで、ｓ＝ｄ（１／ｃ−１）である。
図１３（ｂ）には、読出し速度の比が１より大きい場合（ｃ＞１）、つまり後半波形データの一部を読み飛ばすことにより再生時間を圧縮する様子が示されている。後半波形データを単位長さｄ毎に区分し、それら区分毎に斜線部で示す区間ｓを設ける。後半波形データを読み出すときにこの斜線部で示す区間ｓを読み飛ばすことにより再生時間が圧縮される。
【００５８】
ここで、ｓ＝ｄ（１−１／ｃ）である。
【００５９】
【発明の効果】
以上説明したように、本発明の電子楽器によれば、ソングにスイングが付与されるため、ジャストの演奏をスイングした演奏に変更できる。
【図面の簡単な説明】
【図１】本発明の第１の電子楽器の一実施形態のハードウェア構成を示すブロック図である。
【図２】スイングを付与する手法を示す説明図（ａ）〜（ｄ）である。
【図３】スイングを付与する手法を示す説明図（ｅ）〜（ｈ）である。
【図４】スイングを付与する手法を示す説明図（ｉ），（ｊ）である。
【図５】スイングを付与する手法を示す説明図（ｋ）〜（ｍ）である。
【図６】図１に示す操作パネル部を示す図である。
【図７】図１に示すＲＡＭの、フレーズ制御情報とピッチベンド制御情報が格納されている領域を示す模式図である。
【図８】ソングにスイングが付与される様子を示した図である。
【図９】図１に示す電子楽器のメインルーチンのフローチャートである。
【図１０】図９に示すパッドｎ押下処理ルーチン（ステップＳ５０３）のフローチャートである。
【図１１】図９に示すスイング比設定つまみ処理ルーチン（ステップＳ５１６）のフローチャートである。
【図１２】テンポ割り込みルーチンの、ＲＯＭに格納されている波形データのテンポに対応する時間毎に繰り返し実行されるフローチャートである。
【図１３】本発明の第２の電子楽器の一実施形態における、前半波形データの一部を重複して読み出すことにより再生時間を伸張する様子を示す図（ａ）、および後半波形データの一部を読み飛ばすことにより再生時間を圧縮する様子を示す図（ｂ）である。
【符号の説明】
１０  電子楽器
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  楽音発生部
１５  波形読出部
１６  音高補正部
１７  操作パネル部
１８  表示部
１９  データバス
２１  ピッチベンド制御情報番号ＵＰボタン
２２  ピッチベンド制御情報番号ＤＯＷＮボタン
２４  スイング比設定つまみ
２５  スイング・ノート切り替えボタン
２６  パッド
３１，３２，３３，…，３ｎ，４１，４２，４３，…，４ｎ  ＲＡＭ１３の領域
３０１  スタート・アドレス
３０２  エンド・アドレス
３０３  テンポ
３０４  ピッチベンド制御情報番号
４０１  スイング比
４０２  クロック数
４０３  ピッチ降下量
４０４  ピッチ上昇量
４０５  スイング・ノート
【図１】
0003631854.tif 000002
【図２】
0003631854.tif 000003
【図３】
0003631854.tif 000004
【図４】
0003631854.tif 000005
【図５】
0003631854.tif 000006
【図６】
0003631854.tif 000007
【図７】
0003631854.tif 000008
【図８】
0003631854.tif 000009
【図９】
0003631854.tif 000010
【図１０】
0003631854.tif 000011
【図１１】
0003631854.tif 000012
【図１２】
0003631854.tif 000013
【図１３】
0003631854.tif 000014