(57)【特許請求の範囲】
【請求項１】
同時発音可能な複数の発音トラックにそれぞれアサインされる音色の伴奏パターンを記憶しておき、再生テンポに同期してこれら伴奏パターンを読み出して各発音トラックから再生する自動伴奏装置において、
前記再生テンポに対応した補正係数を発生する係数発生手段と、
特定音色がアサインされる発音トラックにて再生される楽音についてはそのまま発音させ、一方、特定音色以外がアサインされる発音トラックにて再生される楽音については前記係数発生手段が発生する補正係数に従って発音時間を補正する再生制御手段と
を具備することを特徴とする自動伴奏装置。
【請求項２】
前記係数発生手段は、再生テンポが速くなるに連れて減少する補正係数を発生することを特徴とする請求項１記載の自動伴奏装置。
【請求項３】
前記再生制御手段は、特定音色以外がアサインされる発音トラックにて再生される楽音の発音時間を、前記係数発生手段が発生する補正係数に従って短縮することを特徴とする請求項１記載の自動伴奏装置。
【請求項４】
同時発音可能な複数の発音トラックにそれぞれアサインされる音色の伴奏パターンを記憶しておき、再生テンポに同期してこれら伴奏パターンを読み出して各発音トラックから再生する自動伴奏装置において、
前記再生テンポに応じた補正係数を各音色別に発生する係数発生手段と、
この係数発生手段が発生する補正係数を参照して、各発音トラックにてそれぞれ再生される各音色の楽音の発音時間を個々に補正する再生制御手段と
を具備することを特徴とする自動伴奏装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子楽器などに用いて好適な自動伴奏装置に関する。
【０００２】
【従来の技術】
従来より、演奏すべき各音の音高や発音タイミング等を表わすデータから構成される伴奏パターンを各種メモリ記憶しておき、この内から選択した伴奏パターンを、設定された再生テンポに同期して順次読み出して伴奏音を自動的に再生する自動伴奏装置が知られている。
【０００３】
【発明が解決しようとする課題】
ところで、従来の自動伴奏装置では、再生しようとする伴奏パターンの内容によっては再生テンポを速くすると、それに連れて同時発音する楽音が増えて行く為、とりわけ同時発音数が多くない音源を備えている場合には先に発音された楽音を強制的にリリースさせて新たな発音を割当てるようにしているが、そのようにすると発音切れを起こすなどの聴覚的な違和感や音楽的な不自然さが生じてしまう、という問題がある。
そこで本発明は、このような事情に鑑みてなされたもので、再生テンポを速くしても、聴覚的な違和感や音楽的な不自然さを生じさせることなく自動伴奏することができる自動伴奏装置を提供することを目的としている。
【０００４】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の発明では、同時発音可能な複数の発音トラックにそれぞれアサインされる音色の伴奏パターンを記憶しておき、再生テンポに同期してこれら伴奏パターンを読み出して各発音トラックから再生する自動伴奏装置において、前記再生テンポに対応した補正係数を発生する係数発生手段と、特定音色がアサインされる発音トラックにて再生される楽音についてはそのまま発音させ、一方、特定音色以外がアサインされる発音トラックにて再生される楽音については前記係数発生手段が発生する補正係数に従って発音時間を補正する再生制御手段とを具備することを特徴とする。
【０００５】
好ましい態様として、上記請求項１に従属する請求項２に記載の発明によれば、前記係数発生手段は、再生テンポが速くなるに連れて減少する補正係数を発生することを特徴とし、さらに請求項３に記載の発明によれば、前記再生制御手段は、特定音色以外がアサインされる発音トラックにて再生される楽音の発音時間を、前記係数発生手段が発生する補正係数に従って短縮することを特徴としている。
【０００６】
また、請求項４に記載の発明では、同時発音可能な複数の発音トラックにそれぞれアサインされる音色の伴奏パターンを記憶しておき、再生テンポに同期してこれら伴奏パターンを読み出して各発音トラックから再生する自動伴奏装置において、前記再生テンポに応じた補正係数を各音色別に発生する係数発生手段と、この係数発生手段が発生する補正係数を参照して、各発音トラックにてそれぞれ再生される各音色の楽音の発音時間を個々に補正する再生制御手段とを具備することを特徴とする。
【０００７】
本発明では、特定音色がアサインされる発音トラックにて再生される楽音についてはそのまま発音させ、一方、特定音色以外がアサインされる発音トラックにて再生される楽音については再生テンポに対応した補正係数に従って発音時間を補正する。したがって、発音時間を短縮しても聴覚的な違和感や音楽的な不自然さが生じない音色については再生テンポに応じて発音時間を短縮補正して同時発音トラック数の不足を回避させ、発音時間を短縮すると聴覚的な違和感や音楽的な不自然さが出てしまう音色については短縮補正させないようにする為、再生テンポを速くしても、聴覚的な違和感や音楽的な不自然さを生じさせることなく自動伴奏することが可能になる。
【０００８】
【発明の実施の形態】
本発明による自動伴奏装置は、周知の電子楽器のみならず、パーソナルコンピュータを用いたＤＴＭ装置などに適用され得る。以下では、本発明の実施の一形態による自動伴奏装置を実施例として図面を参照して説明する。
【０００９】
Ａ．第１実施例
（１）全体構成
図１は、本発明による第１実施例の全体構成を示すブロック図である。この図において、１はコンソールパネル上に配設される各種スイッチから構成されるパネルスイッチであり、各スイッチ操作に対応したイベントを発生する。このイベントは後述するＣＰＵ３のキースキャンにより取込まれる。パネルスイッチ１に配設されるスイッチ種類としては、図示されていない電源スイッチや伴奏パターンを選択するパターン選択スイッチの他、自動伴奏の開始／停止を指示するスタート／ストップスイッチ１ａおよび再生テンポをアップテンポ／スローテンポに設定するＵＰスイッチ１ｂ／ＤＯＷＮスイッチ１ｃがある。
【００１０】
２は上述したコンソールパネルに配設されるＬＣＤパネル２ａ（図示略）と、ＣＰＵ３から供給される表示制御信号に応じてＬＣＤパネル２ａを表示制御する表示ドライバ２ｂ（図示略）とから構成される表示部であり、上記パネルスイッチ１の操作に応じた動作状態などを画面表示する。ＣＰＵ３はＲＯＭ４にストアされる各種制御プログラムを実行し、キースキャンにより取込んだパネルスイッチ１の各スイッチ操作（スイッチイベント）に応じて装置各部を制御するものであり、その特徴的な処理動作については追って詳述する。
【００１１】
ＲＯＭ４はＣＰＵ３にロードされる各種制御プログラムを記憶する他、補正テーブルＴＡＢＬＥ（ＴＥＭＰ）やファクトリープリセットされる各種伴奏パターンを記憶する。
補正テーブルＴＡＢＬＥ（ＴＥＭＰ）とは図２に図示するように、再生テンポＴＥＭＰに応じた補正係数を読み出すテーブルであり、このテーブル読み出しされる補正係数は後述する再生処理にて発音時間を補正する際に用いられる。また、ＲＯＭ４に格納される伴奏パターンは、各音色（楽器音）毎に設けられており、周知の相対時間方式により各音符をイベント間隔ΔＴとイベントＥＶＥＮＴとで表現する。本実施例の場合、リズム楽器音による自動伴奏を想定しているので、イベントＥＶＥＮＴは発音時間を表わす。
【００１２】
５はＣＰＵ３の処理に用いる各種レジスタ／フラグデータを一時記憶するＲＡＭである。６はＣＰＵ３の制御の下に、自動伴奏時の再生テンポＴＥＭＰを指定するテンポクロックＴＭＰを発生するテンポクロック発生回路であり、この回路６が発生する再生テンポＴＥＭＰは上述したＵＰスイッチ１ｂあるいはＤＯＷＮスイッチ１ｃの操作に応じて可変制御される。
７は周知の波形メモリ読み出し方式で構成される音源である。この音源７では、例えば同時発音可能な発音トラック（発音チャンネル）を５つ備え、これら各発音トラックにそれぞれアサインされる「ペダルハイハット」、「ハイタム」、「ミッドタム」、「ロウタム」および「フロアタム」の伴奏パターンを、再生テンポＴＥＭＰに同期してＲＯＭ４から順次読み出して各発音トラックにて指定リズム音色の楽音を形成する。８は音源７から出力される楽音信号をＤ／Ａ変換した後に増幅してスピーカＳＰより楽音として発音させるサウンドシステムである。
【００１３】
（２）動作
次に、図３〜図６を参照して第１実施例の動作について説明する。以下では、最初に全体動作を説明した後、本発明の要旨にかかわる特徴的な動作について述べて行く。
▲１▼メインルーチンの動作（全体動作）
まず、本実施例に電源が投入されると、ＣＰＵ３はＲＯＭ４から所定の制御プログラムをロードして図３に示すメインルーチンを実行し、ステップＳＡ１に処理を進め、ＲＡＭ５に格納される各種レジスタ／フラグ類をリセットしたり、初期値セットするイニシャライズを行う。次いで、ステップＳＡ２では、コンソールパネル上に配設される各種スイッチ操作に応じた処理、例えば、自動伴奏の開始／停止を指示するスタート／ストップスイッチ１ａの操作に対応した処理や、再生テンポをアップテンポ／スローテンポに設定するＵＰスイッチ１ｂ／ＤＯＷＮスイッチ１ｃの操作に対応した処理等を実行する。
【００１４】
そして、スイッチ処理が完了すると、ＣＰＵ３はステップＳＡ３に処理を進め、設定された再生テンポＴＥＭＰに従ってＲＯＭ４に格納される伴奏パターンを順次読み出して再生する再生処理を行う。この再生処理では、前述した補正テーブルＴＡＢＬＥ（ＴＥＭＰ）を参照して発音時間を短縮補正することによって再生テンポＴＥＭＰが速くなった場合に生じる同時発音トラック数の不足を回避するが、その際に特定の音色については発音時間を短縮補正しないようにすることを特徴としている。
【００１５】
つまり、再生テンポＴＥＭＰが速くなるに連れて発音時間を短縮補正してやれば同時発音トラック数の不足を回避でき、これにより発音切れを起こす虞は無くなるものの、音色によっては発音時間を短縮することで余計に聴覚的な違和感や音楽的な不自然さを強調した形になることも考えられる。その為、この第１実施例では発音時間を短縮しても聴覚的な違和感や音楽的な不自然さが生じない音色については再生テンポＴＥＭＰに応じて発音時間を短縮補正して同時発音トラック数の不足を回避する一方、発音時間を短縮すると聴覚的な違和感や音楽的な不自然さが出てしまう音色については短縮補正させないようにしている。
【００１６】
さて、こうした本発明の要旨にかかわる再生処理が行われた後、ＣＰＵ３はステップＳＡ４に処理を進め、例えば、上述したスイッチ処理にて変更指定された伴奏パターンを選択し直したり、あるいは音色変更するなどの、その他の処理を実行する。そして以後、電源がオフ状態に設定される迄、ステップＳＡ２〜ＳＡ４を繰り返して自動伴奏を進めて行く。
【００１７】
▲２▼タイマインタラプト処理ルーチンの動作
次に、図４を参照してイベント進行タイミングを制御するタイマインタラプト処理ルーチンの動作について説明する。ＣＰＵ３は、設定された再生テンポＴＥＭＰに対応した所定周期毎にタイマインタラプト処理を実行し、ステップＳＢ１に処理を進め、レジスタｎに格納される発音トラック番号ｎをゼロリセットする。次いで、ステップＳＢ２では、後述するスイッチ処理（図５参照）にてレジスタＴＩＭＥ（ｎ）に格納される値、すなわち、発音トラック番号ｎにアサインされる伴奏パターンのイベント間隔ΔＴを１デクリメントし、続くステップＳＢ３ではレジスタＯＮＦ（ｎ）に格納されている発音フラグが「１」か否か、つまり、発音トラック番号ｎが発音中であるかどうかを判断する。
【００１８】
消音中であれば、判断結果は「ＮＯ」となり、ステップＳＢ５に進み、レジスタｎに格納される発音トラック番号ｎを１インクリメントして歩進させ、一方、発音トラック番号ｎが発音中であると、判断結果が「ＹＥＳ」となり、次のステップＳＢ４に処理を進め、後述するレジスタＯＮＴＩＭＥ（ｎ）に格納される発音時間を１デクリメントした後、ステップＳＢ５に進んで発音トラック番号ｎを１インクリメントして歩進させる。
この後、ステップＳＢ６に処理を進め、レジスタｎの値が「５」以上であるか否か、つまり、全ての発音トラックについてイベント進行タイミングを制御し終えたかどうかを判断する。そして、タイミング制御し終えていなければ、判断結果が「ＮＯ」となり、再び上記ステップＳＢ２に処理を戻して次の発音トラック番号ｎ＋１についてイベント進行タイミングを制御するが、全ての発音トラックについてタイミング制御し終えた時は一旦、本ルーチンを完了させる。
【００１９】
▲３▼スイッチ処理ルーチンの動作
次に、図５を参照してスイッチ処理ルーチンの動作について説明する。上述したメインルーチン（図３参照）のステップＳＡ２を介して本ルーチンが実行されると、ＣＰＵ３は図５に示すステップＳＣ１に処理を進め、スタート／ストップスイッチ１ａがオン操作されたか否かを判断する。
ここで、例えば、スタート／ストップスイッチ１ａがオン操作されると、判断結果は「ＹＥＳ」となり、ステップＳＣ２に処理を進め、レジスタＳＴＦに格納されるスタートフラグＳＴＦをビット反転させる。このスタートフラグＳＴＦとは、「１」の時に自動伴奏開始を表わし、一方、「０」の時に自動伴奏停止を表わす。つまり、スタート／ストップスイッチ１ａはオン操作される毎に自動伴奏開始と自動伴奏停止とを交互に指示するスイッチであるので、オン操作毎にスタートフラグＳＴＦをビット反転するのである。
【００２０】
（イ）自動伴奏開始時の動作
そして、例えば今、ビット反転されたスタートフラグＳＴＦが「１」の場合、すなわち、自動伴奏開始が指示されると、ステップＳＣ３の判断結果は「ＹＥＳ」となり、ステップＳＣ４に処理を進める。ステップＳＣ４に進むと、ＣＰＵ３はレジスタｎに格納される発音トラック番号ｎをゼロリセットし、続くステップＳＣ５では、レジスタＴＲＡＣＫ（ｎ）（０）に格納されるイベント間隔ΔＴをレジスタＴＩＭＥ（ｎ）にストアする。
なお、このレジスタＴＲＡＣＫ（ｎ）は、ＲＯＭ４から読み出した伴奏パターンを、発音トラック番号ｎに対応させて一時記憶しておく２次元配列レジスタであって、レジスタＴＲＡＣＫ（ｎ）（０）とは発音トラック番号ｎにアサインされる伴奏パターンの先頭アドレス（０）に対応するイベント間隔ΔＴを指す。
【００２１】
続いて、ステップＳＣ６に進むと、発音トラック番号ｎを１インクリメントして歩進させ、ステップＳＣ７では歩進された発音トラック番号ｎが「５」以上であるかどうか、つまり、全発音トラックについてイベント間隔ΔＴを読み出し終えたかどうかを判断する。ここで、読み出しを終えていなければ、判断結果が「ＮＯ」となり、上記ステップＳＣ５に処理を戻してイベント間隔ΔＴの読み出し操作を繰り返す。
そして、全発音トラックについてイベント間隔ΔＴを読み出し終えると、このステップＳＣ７での判断結果が「ＹＥＳ」となり、ステップＳＣ８に処理を進め、タイマインタラプト禁止を解除して本ルーチンを完了させる。これにより、上述したタイマインタラプト処理ルーチン（図４参照）が実行され、イベント進行タイミングが制御される。
【００２２】
（ロ）自動伴奏停止時の動作
一方、スタート／ストップスイッチ１ａのオン操作によりビット反転されたスタートフラグＳＴＦが「０」となり、自動伴奏停止が指示されると、上述したステップＳＣ３の判断結果は「ＮＯ」となり、ステップＳＣ９に処理を進める。ステップＳＣ９では、音源７に対して全発音トラックでの消音を指示し、この後、ステップＳＣ１０に進み、割込みマスクをセットしてタイマインタラプト処理を禁止する。
【００２３】
（ハ）再生テンポ調整時に動作
次に、再生テンポ調整時に動作について述べる。再生テンポＴＥＭＰを調整すべくＵＰスイッチ１ｂあるいはＤＯＷＮスイッチ１ｃが操作されると、上述したステップＳＣ１の判断結果が「ＮＯ」となり、ステップＳＣ１１以降を実行する。
再生テンポＴＥＭＰをアップテンポにするようＵＰスイッチ１ｂを操作した時には、このステップＳＣ１１の判断結果が「ＹＥＳ」となり、次のステップＳＣ１２に処理を進め、レジスタＴＥＭＰに格納される再生テンポ値を１インクリメントして歩進させる。
一方、再生テンポＴＥＭＰをスローテンポにするようＤＯＷＮスイッチ１ｃを操作した時には、ステップＳＣ１３の判断結果が「ＹＥＳ」となり、ステップＳＣ１４に処理を進め、レジスタＴＥＭＰに格納される再生テンポ値を１デクリメントする。
【００２４】
▲４▼再生処理ルーチンの動作
次に、図６を参照して再生処理ルーチンの動作について説明する。上述したメインルーチン（図３参照）のステップＳＡ３を介して本ルーチンが実行されると、ＣＰＵ３は図６に示すステップＳＤ１に処理を進め、レジスタＳＴＦに格納されるスタートフラグＳＴＦが「１」か否か、つまり自動伴奏を開始したかどうかを判断する。自動伴奏が開始していなければ、判断結果は「ＮＯ」となり、何も処理せずに本ルーチンを完了させるが、そうでなければ判断結果が「ＹＥＳ」となり、次のステップＳＤ２に処理を進める。
ステップＳＤ２では、レジスタｎに格納される発音トラック番号ｎをゼロリセットし、続くステップＳＤ３では、この発音トラック番号ｎに対応したレジスタＴＩＭＥ（ｎ）に格納されるイベント間隔ΔＴが「０」か否か、つまり、イベントタイミング下にあるかどうかを判断する。
【００２５】
（イ）イベントタイミング下の場合
イベントタイミング下にある場合には、ステップＳＤ３の判断結果が「ＹＥＳ」となり、ステップＳＤ４に処理を進めてレジスタＴＲＡＣＫ（ｎ）のアドレスをインクリメントして歩進させ、続くステップＳＤ５ではこの歩進されたアドレスに従って当該レジスタＴＲＡＣＫ（ｎ）からイベントＥＶＥＮＴを読み出し、このイベントＥＶＥＮＴの内容である発音時間をレジスタＯＮＴＩＭＥ（ｎ）にセットする一方、当該レジスタＴＲＡＣＫ（ｎ）にアサインされる音色名をレジスタＴＯＮＥ（ｎ）にセットする。そしてこの後、ステップＳＤ６に処理を進め、レジスタＴＯＮＥ（ｎ）にセットされた音色名が特定音色に一致しないか否かを判断する。
【００２６】
ここで、発音トラック番号ｎに特定音色がアサインされていると、判断結果は「ＮＯ」となり、後述するステップＳＤ９に処理を進めるが、特定音色でない時には判断結果が「ＹＥＳ」となり、次のステップＳＤ７に処理を進め、図２に図示した補正テーブルＴＡＢＬＥ（ＴＥＭＰ）を参照し、現在設定されている再生テンポＴＥＭＰに応じた補正係数を読み出してレジスタＨＯＳＥＩ（ｎ）にストアする。
次いで、ステップＳＤ８では、このレジスタＨＯＳＥＩ（ｎ）にストアした補正係数とレジスタＯＮＴＩＭＥ（ｎ）にストアした発音時間とを乗算して得られる補正発音時間をレジスタＯＮＴＩＭＥ（ｎ）にストアし直す。こうして、特定音色以外の音色が割当てられる発音トラックについて発音時間を補正すると、ＣＰＵ３はステップＳＤ９に処理を進め、レジスタＯＮＦ（ｎ）に格納される発音フラグを「１」にセットする。
【００２７】
この後、ステップＳＤ１０に処理を進め、音源７に対して発音トラック番号ｎの発音を指示する。これにより、音源７はレジスタＴＯＮＥ（ｎ）にセットされた音色のリズム楽器音を、レジスタＯＮＴＩＭＥ（ｎ）にセットされた発音時間（もしくは補正発音時間）で発音させる。こうした発音指示後、ＣＰＵ３はステップＳＤ１１に処理を進め、レジスタＴＲＡＣＫ（ｎ）のアドレスをインクリメントして歩進させ、続くステップＳＤ１２ではこの歩進されたアドレスに従って当該レジスタＴＲＡＣＫ（ｎ）から次のイベント間隔ΔＴを読み出してレジスタＴＩＭＥ（ｎ）にストアする。
次いで、ステップＳＤ１３に進むと、ＣＰＵ３は発音トラック番号ｎを１インクリメントして歩進させ、続くステップＳＤ１４では歩進された発音トラック番号ｎが「５」以上であるかどうか、つまり、全発音トラックについて再生処理が一巡したかどうかを判断する。ここで、処理が一巡していなければ、判断結果は「ＮＯ」となり、上記ステップＳＤ３に処理を戻し、次の発音トラックについて再生処理を進める。
【００２８】
（ロ）イベントタイミング下でないの場合
この場合、上述したステップＳＤ３の判断結果は「ＮＯ」となり、ステップＳＤ１５に処理を進め、レジスタＯＮＦ（ｎ）に格納される発音フラグが「１」か否か、つまり、発音トラック番号ｎが発音中であるかどうかを判断する。
ここで、発音中であれば判断結果は「ＹＥＳ」となり、次のステップＳＤ１６に処理を進め、レジスタＯＮＴＩＭＥの値が「０」、つまり、消音したかどうかを判断する。そして、消音していなければ、ここでの判断結果が「ＮＯ」となり、上述したステップＳＤ１３に処理を進める。
一方、消音状態になった時には上記ステップＳＤ１６の判断結果が「ＹＥＳ」となり、レジスタＯＮＦ（ｎ）に格納される発音フラグを「０」にセットし、続くステップＳＤ１８にて音源７に対して発音トラック番号ｎの消音を指示した後、上述したステップＳＤ１３に処理を進める。
【００２９】
このように、再生処理ルーチンでは、発音時間を短縮しても聴覚的な違和感や音楽的な不自然さが生じない音色の楽音については再生テンポＴＥＭＰに応じて発音時間を短縮補正し、これにより同時発音トラック数の不足を解消する一方、発音時間を短縮すると聴覚的な違和感や音楽的な不自然さが出てしまう特定音色の楽音については発音時間を短縮補正させないようにしたので、再生テンポを速くしても、聴覚的な違和感や音楽的な不自然さを生じさせることなく自動伴奏することが可能になる訳である。
【００３０】
Ｂ．第２実施例
次に、第２実施例について説明するが、第２実施例の構成は上述した第１実施例と共通するので、その説明については省略する。第２実施例が上述した第１実施例と相違する点は、第１実施例では発音時間を短縮すると聴覚的な違和感や音楽的な不自然さが出てしまう特定音色の楽音については補正テーブルＴＡＢＬＥを参照した発音時間の補正を行わないようにしたのに対し、第２実施例では各音色毎の補正テーブルＴＡＢＬＥを備え、これら補正テーブルＴＡＢＬＥを参照して再生テンポＴＥＭＰに応じて各音色毎の発音時間を補正することにある。以下、そうした特徴を備える第２実施例による再生処理ルーチンの動作について図７を参照して説明する。
【００３１】
上述した第１実施例と同様、メインルーチン（図３参照）のステップＳＡ３を介して第２実施例による再生処理ルーチンが実行されると、ＣＰＵ３は図７に示すステップＳＥ１に処理を進め、スタートフラグＳＴＦが「１」か否か、つまり自動伴奏を開始したかどうかを判断する。自動伴奏が開始していなければ、判断結果は「ＮＯ」となり、何も処理せずに本ルーチンを完了させるが、そうでなければ判断結果が「ＹＥＳ」となり、次のステップＳＥ２に処理を進める。
ステップＳＥ２では、レジスタｎに格納される発音トラック番号ｎをゼロリセットし、続くステップＳＥ３では、この発音トラック番号ｎに対応したレジスタＴＩＭＥ（ｎ）に格納されるイベント間隔ΔＴが「０」か否か、つまり、イベントタイミング下にあるかどうかを判断する。
【００３２】
（イ）イベントタイミング下にある場合
この場合、ステップＳＥ３の判断結果は「ＹＥＳ」となり、ステップＳＥ４に処理を進めてレジスタＴＲＡＣＫ（ｎ）のアドレスをインクリメントして歩進させ、続くステップＳＥ５ではこの歩進されたアドレスに従って当該レジスタＴＲＡＣＫ（ｎ）からイベントＥＶＥＮＴを読み出し、この読み出したイベントＥＶＥＮＴの内容である発音時間をレジスタＯＮＴＩＭＥ（ｎ）にセットする一方、当該レジスタＴＲＡＣＫ（ｎ）にアサインされる音色名をレジスタＴＯＮＥ（ｎ）にセットする。
【００３３】
次いで、ステップＳＥ６に進むと、２次元補正テーブルＴＡＢＬＥ（ＴＯＮＥ（ｎ），ＴＥＭＰ）を参照し、発音トラック番号ｎにアサインされた音色名と現在設定されている再生テンポＴＥＭＰとに応じた補正係数を読み出してレジスタＨＯＳＥＩ（ｎ）にストアする。そして、ステップＳＥ８ではこのレジスタＨＯＳＥＩ（ｎ）にストアされた補正係数とレジスタＯＮＴＩＭＥ（ｎ）にストアされる発音時間とを乗算して得られる補正発音時間をレジスタＯＮＴＩＭＥ（ｎ）にストアし直す。こうして、発音トラック番号ｎにアサインされた音色の楽音について再生テンポＴＥＭＰに応じた発音時間補正がなされると、ＣＰＵ３はステップＳＥ８に処理を進め、レジスタＯＮＦ（ｎ）に格納される発音フラグを「１」にセットする。
【００３４】
この後、ステップＳＥ９に処理を進め、音源７に対して発音トラック番号ｎの発音を指示する。これにより、音源７はレジスタＴＯＮＥ（ｎ）にセットされた音色のリズム楽器音を、レジスタＯＮＴＩＭＥ（ｎ）にセットされた補正発音時間で発音させる。発音指示後、ＣＰＵ３はステップＳＥ１０に処理を進め、レジスタＴＲＡＣＫ（ｎ）のアドレスをインクリメントして歩進させ、続くステップＳＥ１２ではこの歩進されたアドレスに従って当該レジスタＴＲＡＣＫ（ｎ）から次のイベント間隔ΔＴを読み出してレジスタＴＩＭＥ（ｎ）にストアする。
次いで、ステップＳＥ１３では発音トラック番号ｎを１インクリメントして歩進させ、続くステップＳＥ１４では歩進された発音トラック番号ｎが「５」以上であるかどうか、つまり、全発音トラックについて再生処理が一巡したかどうかを判断する。ここで、処理が一巡していなければ、判断結果は「ＮＯ」となり、上記ステップＳＥ３に処理を戻し、次の発音トラックについて再生処理を進める。
【００３５】
（ロ）イベントタイミング下でない場合
この場合、上述したステップＳＥ３の判断結果は「ＮＯ」となり、ステップＳＥ１４に処理を進め、レジスタＯＮＦ（ｎ）に格納される発音フラグが「１」か否か、つまり、発音トラック番号ｎが発音中であるかどうかを判断する。
発音中であると、判断結果は「ＹＥＳ」となり、次のステップＳＥ１５に処理を進めてレジスタＯＮＴＩＭＥの値が「０」、つまり、消音したかどうかを判断する。そして、消音していなければ、ここでの判断結果が「ＮＯ」となり、上述したステップＳＥ１２に処理を進める。
一方、消音状態になった時には上記ステップＳＥ１５の判断結果が「ＹＥＳ」となり、ステップＳＥ１６に進んでレジスタＯＮＦ（ｎ）に格納される発音フラグを「０」にセットし、続くステップＳＥ１７にて音源７に対して発音トラック番号ｎの消音を指示した後、上述したステップＳＥ１２に処理を進める。
【００３６】
このように、第２実施例では、２次元補正テーブルＴＡＢＬＥ（ＴＯＮＥ（ｎ），ＴＥＭＰ）を参照して再生テンポＴＥＭＰに応じて各音色毎の発音時間を補正する為、発音時間を短縮すると聴覚的な違和感や音楽的な不自然さが出てしまう音色に対応付けられた補正テーブル内容については発音時間を短縮補正しないように係数設定しておけば、再生テンポを速くした場合でも聴覚的な違和感や音楽的な不自然さを生じさせることなく自動伴奏することが可能になる。
【００３７】
なお、上述した第１および第２実施例では、リズム楽器音を自動伴奏する態様において、再生テンポに連れて変化する発音時間を音色毎に異ならせることによって、再生テンポを速くした時に生じる聴覚的な違和感や音楽的な不自然さを回避するようにしたが、これに限らず、他の楽器音（音色）でも適用可能であり、音高や音量に応じて発音時間を変化させるように組合せることも有効である。
例えば、ある楽曲を自動伴奏（あるいは自動演奏）する際に、再生テンポを速くすると、タイミング的に同時発音トラック数がどうしても不足する場合に、一定音量以下の楽音や所定音程以下の音高の楽音については発音時間を短縮させる等して、同時発音トラック数の不足を解消しつつ、聴覚的な違和感や音楽的な不自然さを回避することもできる。また、自動伴奏（あるいは自動演奏）する楽曲を形成する複数パートの内、聴覚的な違和感や音楽的な不自然さを生じさせないパートの楽音について発音時間を変化させる態様としても良い。
【００３８】
【発明の効果】
請求項１に記載の発明によれば、特定音色がアサインされる発音トラックにて再生される楽音についてはそのまま発音させ、一方、特定音色以外がアサインされる発音トラックにて再生される楽音については再生テンポに対応した補正係数に従って発音時間を補正する為、発音時間を短縮しても聴覚的な違和感や音楽的な不自然さが生じない音色については再生テンポに応じて発音時間を短縮補正して同時発音トラック数の不足を解消でき、しかも発音時間を短縮すると聴覚的な違和感や音楽的な不自然さが出てしまう音色については短縮補正させないようにするから、再生テンポを速くしても、聴覚的な違和感や音楽的な不自然さを生じさせることなく自動伴奏することができる。
請求項２，３に記載の発明によれば、特定音色以外がアサインされる発音トラックにて再生される楽音の発音時間を、再生テンポが速くなるに連れて減少する補正係数に従って短縮するので、同時発音トラック数の不足を解消できる。
請求項４に記載の発明によれば、再生テンポに応じた補正係数を各音色別に発生し、これら各音色別の補正係数を参照して、各発音トラックにてそれぞれ再生される各音色の楽音の発音時間を個々に補正するので、発音時間を短縮しても聴覚的な違和感や音楽的な不自然さが生じない音色については再生テンポに応じて発音時間を短縮補正して同時発音トラック数の不足を解消し、一方、発音時間を短縮すると聴覚的な違和感や音楽的な不自然さが出てしまう音色については短縮補正させないようにする結果、再生テンポを速くしても、聴覚的な違和感や音楽的な不自然さを生じさせることなく自動伴奏することができる。
【図面の簡単な説明】
【図１】本発明による第１実施例の全体構成を示すブロック図である。
【図２】補正テーブルＴＡＢＬＥ（ＴＥＭＰ）の内容を説明するための図である。
【図３】メインルーチンの動作を示すフローチャートである。
【図４】タイマインタラプト処理ルーチンの動作を示すフローチャートである。
【図５】スイッチ処理ルーチンの動作を示すフローチャートである。
【図６】再生処理ルーチンの動作を示すフローチャートである。
【図７】第２実施例による再生処理ルーチンの動作を示すフローチャートである。
【符号の説明】
１  パネルスイッチ
２  表示部
３  ＣＰＵ（係数発生手段、再生制御手段）
４  ＲＯＭ（係数発生手段）
５  ＲＡＭ
６  テンポクロック発生回路
７  音源
８  サウンドシテム
【図１】
0003873178.tif 000002
【図２】
0003873178.tif 000003
【図３】
0003873178.tif 000004
【図４】
0003873178.tif 000005
【図５】
0003873178.tif 000006
【図６】
0003873178.tif 000007
【図７】
0003873178.tif 000008