(57)【特許請求の範囲】
【請求項１】
（ａ）演奏者によるフレーズ選択用操作子の操作に応じてフレーズを選択する工程と、
（ｂ）フレーズ単位で記憶されている演奏データのうちから前記選択されたフレーズの演奏データを読み出して楽音信号を生成する工程と、
（ｃ）フレーズ単位で記憶されている画像データのうちから前記選択されたフレーズの画像データを読み出して画像信号を生成する工程と
を含む楽音信号生成方法。
【請求項２】
さらに、演奏者による効果用操作子の操作に応じて、前記楽音信号に効果を付与するための効果付与信号を生成する工程を含み、
前記効果付与信号を生成する工程は、前記演奏者による効果用操作子の操作の継続中繰り返して効果付与信号を生成する請求項１記載の楽音信号生成方法。
【請求項３】
（ａ）演奏者によるフレーズ選択用操作子の操作に応じてフレーズを選択する手順と、
（ｂ）フレーズ単位で記憶されている演奏データのうちから前記選択されたフレーズの演奏データを読み出して楽音信号を生成する手順と、
（ｃ）フレーズ単位で記憶されている画像データのうちから前記選択されたフレーズの画像データを読み出して画像信号を生成する手順と
を含む楽音信号生成手順をコンピュータに実行させるためのプログラムを記録した媒体。
【請求項４】
さらに、演奏者による効果用操作子の操作に応じて、前記楽音信号に効果を付与するための効果付与信号を生成する手順を含み、
前記効果付与信号を生成する手順は、前記演奏者による効果用操作子の操作の継続中繰り返して効果付与信号を生成する請求項３記載のプログラムを記録した媒体。
【請求項５】
フレーズ単位で演奏データと画像データを記憶する記憶手段と、
演奏者によるフレーズ選択用操作子の操作に応じてフレーズを選択する選択手段と、
前記選択されたフレーズの演奏データを前記記憶手段から読み出して楽音信号を生成する楽音信号生成手段と、
前記選択されたフレーズの画像データを前記記憶手段から読み出して画像信号を生成する画像信号生成手段と
を有する楽音信号生成装置。
【請求項６】
さらに、演奏者による効果用操作子の操作に応じて、前記楽音信号に効果を付与するための効果付与信号を生成する効果付与信号生成手段を有し、
前記効果付与信号生成手段は、前記演奏者による効果用操作子の操作の継続中繰り返して効果付与信号を生成する請求項５記載の楽音信号生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音信号生成技術に関し、特にユーザの操作に応じて楽音信号を生成する技術に関する。
【０００２】
【従来の技術】
自動伴奏機能を有する電子楽器は、演奏者が伴奏のタイプを指定すれば、そのタイプの自動伴奏を行う。演奏者は、自動伴奏に合わせて、鍵盤を操作することによりメロディパートを演奏することができる。演奏者は、自動伴奏機能を用いれば、伴奏パートを演奏する必要がなく、メロディパートのみを演奏することにより、容易に合奏を行うことができる。
【０００３】
しかし、初級者にとっては、メロディパートのみを演奏することも困難である。すなわち、鍵盤を用いて、楽譜上の各音符に応じて押鍵操作するには、ある程度の演奏技術を必要とする。演奏者が鍵盤操作に慣れるには、通常、所定の練習を必要とする。初級者がより容易に合奏を楽しむことができる装置が望まれている。
【０００４】
また、自動伴奏機能を用いた場合、バンド演奏のように複数の演奏者が同時に演奏を行い合奏を行うことが困難である。ＭＩＤＩケーブルを用いて、電子楽器を接続すれば合奏を行うことは可能であるが、システムが大きくなり、コストが高くなる。
【０００５】
一方、近年、種々のゲーム機が普及している。ゲーム機の普及率は高い。ゲーム機は、ゲームパッドを操作子として有する。ユーザは、ゲームパッドを操作することにより、種々のゲームを楽しむことができる。ゲームパッドを用いて、合奏を行うことができれば、便利である。
【０００６】
しかし、ゲームパッドは、鍵盤に比べて、操作可能なキーの数がかなり少ない。鍵盤は、例えば６４鍵、８８鍵等の鍵、音量キー、音色選択キー等を有する。ゲームパッドは、多くても１０個程度のキーしか有さない。ゲームパッドは、操作キーの数が少ないので、ゲームパッドを用いて演奏を行うことは困難である。
【０００７】
【発明が解決しようとする課題】
本発明の目的は、簡単な操作で演奏を実現することができる楽音信号生成方法、楽音信号生成装置又はプログラムを記録した媒体を提供することである。
【０００８】
【課題を解決するための手段】
本発明の一観点によれば、楽音信号生成方法は、（ａ）演奏者によるフレーズ選択用操作子の操作に応じてフレーズを選択する工程と、（ｂ）フレーズ単位で記憶されている演奏データのうちから前記選択されたフレーズの演奏データを読み出して楽音信号を生成する工程と、（ｃ）フレーズ単位で記憶されている画像データのうちから前記選択されたフレーズの画像データを読み出して画像信号を生成する工程とを含む。
【０００９】
ユーザは、操作子でフレーズを切り替えて選択することにより、即興演奏を行うことができる。複数の音の集まりであるフレーズを選択するので、操作速度はゆっくりしたものでよい。フレーズは、各々音楽的性質を示すので、初心者にも曲の流れに沿うフレーズの選択が容易である。鍵盤の押鍵操作に比べ、簡単な操作で演奏を行うことができる。
【００１０】
【発明の実施の形態】
図１は、本発明の実施例による楽音信号生成装置の構成図である。
【００１１】
楽音信号生成装置は、３つのゲームパッド１ａ，１ｂ，１ｃとコンピュータ２と音源３とスピーカ４を有する。以下、ゲームパッド１ａ，１ｂ，１ｃの個々をまたは全てをゲームパッド１という。
【００１２】
ゲームパッド１は、ユーザが演奏操作又は演奏設定を行うための操作キーを有する。ユーザは、ゲームパッド１を操作することにより、所望の演奏を行うことができる。コンピュータ２に、３つのゲームパッド１ａ，１ｂ，１ｃが接続される場合を示すが、ゲームパッド１は、３つに限定されず、１つでもよい。
【００１３】
例えば、３つのゲームパッド１ａ，１ｂ，１ｃを用意すれば、３人のユーザが合奏を行うことができる。１つのゲームパッド１には、１人のユーザが割り当てられる。
【００１４】
楽音信号生成装置は、バンド演奏を行うことができる。バンド演奏は、バック演奏とソロ演奏に分けることができる。バック演奏は、例えばドラム、ベース等のリズムパートに相当する。ソロ演奏は、例えばギター、サックス、キーボード等のメロディパートに相当する。
【００１５】
バック演奏は、コンピュータ２により自動演奏される。ソロ演奏は、ユーザがゲームパッド１を操作することにより行われる。各ゲームパッドには、所望のソロ演奏用楽器を割り当てることができる。例えば、ゲームパッド１ａにギター、ゲームパッド１ｂにサックス、ゲームパッド１ｃにキーボードを割り当てることができる。
【００１６】
さらに、ユーザは、その楽器演奏のキャラクタを選択することができる。キャラクタは、例えば第１ギター又は第２ギター、男性プレーヤ又は女性プレーヤである。
【００１７】
コンピュータ２は、上記の楽器及びキャラクタ別に、例えば２４個のフレーズの演奏データを記憶する。ユーザは、２４個のフレーズの中から所定のフレーズ番号をゲームパッド１で順次切り替えて選択する。ユーザがフレーズ番号を選択すれば、そのフレーズ番号に応じたフレーズの演奏がリアルタイムで開始する。ユーザは、フレーズのシーケンス及び各フレーズの開始タイミングを指定するだけで、即興演奏を行うことができる。フレーズは、長さのいかんにかかわらず、ひとつながりのまとまりのある旋律、あるいはそのような楽音様態である。
【００１８】
コンピュータ２は、自動演奏によりバック演奏用楽音パラメータを出力し、ゲームパッド１の操作に応じてソロ演奏用楽音パラメータを出力する。それらの楽音パラメータは、音源３に供給される。
【００１９】
また、ユーザは、ゲームパッド１を用いて楽音に効果（例えばピッチベンド）を付与することができる。コンピュータ２は、ゲームパッド１の操作に応じて、効果パラメータを音源３に供給する。
【００２０】
音源３は、例えばＰＣＭ音源、ＦＭ音源、物理モデル音源、フォルマント音源等であり、上記の楽音パラメータや効果パラメータに応じて楽音信号を生成する。楽音信号は、スピーカ４に供給される。
【００２１】
スピーカ４は、楽音信号をデジタル形式からアナログ形式に変換し、楽音を発音する。バック演奏とソロ演奏の合奏音がスピーカ４から発せられる。
【００２２】
図２は、本実施例による楽音信号生成装置を用いた演奏例を示す。横軸は時間を示す。
【００２３】
バック演奏ＢＫは、ユーザが曲の再生開始を指示することにより開始され、ゲームパッド１の操作とは無関係に進行する。
【００２４】
第１のユーザは、ゲームパッド１ａを用いて、所定時間経過後に、フレーズ２の再生を指示し、その後にフレーズ１の再生を指示するものとする。その際、ユーザは、ゲームパッド１ａを用いてピッチベンドイベントを発生させ、音高を変化させることもできる。
【００２５】
第２のユーザは、ゲームパッド１ｂを用いて、フレーズ３の再生を指示し、その後にフレーズ６の再生を指示するものとする。
【００２６】
第３のユーザは、ゲームパッド１ｃを用いて、フレーズ３、フレーズ１０、フレーズ２３、フレーズ１、フレーズ２４の再生を順次指示するものとする。フレーズ２４の再生時には、ユーザは、ゲームパッド１ｃを用いてピッチベンドイベントを発生させ、音高を変化させるものとする。
【００２７】
図３は、ゲームパッド１の操作ボタンを示す図である。
ゲームパッド１は、「Ｌ」、「Ｒ」、「Ｍ」、「Ａ」、「Ｂ」、「Ｃ」、「Ｘ」、「Ｙ」、「Ｚ」ボタン及び方向キー５を有する。
【００２８】
まず、演奏モードにおけるフレーズ番号の指定方法を説明する。フレーズ１〜２４は、４種類に分けることができる。
【００２９】
フレーズ１〜６は、第１の楽曲フレーズであり、フレーズ７〜１２は、第２の楽曲フレーズである。楽曲フレーズは、楽曲に必要なフレーズである。フレーズ１３〜１８は、第１の奏法フレーズであり、フレーズ１９〜２４は、第２の奏法フレーズである。奏法フレーズは、コードカッティング等の楽器特有の奏法のフレーズである。
【００３０】
フレーズ１〜６を指定するには、「Ｌ」ボタン及び「Ｒ」ボタンの両者を離したまま、表１に示すボタンを押す。フレーズ１〜６は、第１の楽曲フレーズであり、比較的短くて簡単なフレーズである。
【００３１】
フレーズ７〜１２を指定するには、「Ｌ」ボタンを押しながら、表１に示すボタンを押す。フレーズ７〜１２は、第２の楽曲フレーズであり、比較的長くて複雑なフレーズである。
【００３２】
フレーズ１３〜１８を指定するには、「Ｒ」ボタンを押しながら、表１に示すボタンを押す。フレーズ１３〜１８は、第１の奏法フレーズであり、基本的な奏法フレーズである。例えば、コードカッティング、アルペジオ、ミュートカッティング等である。
【００３３】
フレーズ１９〜２４を指定するには、「Ｌ」ボタン及び「Ｒ」ボタンを押しながら、表１に示すボタンを押す。フレーズ１９〜２４は、第２の奏法フレーズであり、特殊な奏法フレーズである。例えば、スライドダウン／アップ、トレモロアーム、ハーモニクス等である。
【００３４】
【表１】
0003632411.tif 000002
【００３５】
方向キー５は、十字形キーになっており、８方向に操作することができる。演奏モードにおいて、方向キー５を操作することにより、表２に示すように、楽音に効果を付与することができる。方向キー５を上方向に操作すればピッチベンドをアップさせ、下方向に操作すればピッチベンドをダウンさせることができる。方向キー５を右方向に操作すればテンポをアップさせ、左方向に操作すればテンポをダウンさせることができる。ピッチベンドやテンポの他、ボリュームや定位等を変化させてもよい。
【００３６】
また、ユーザが選択した楽器及びキャラクタに応じて、方向キー５の機能を自動的に設定してもよい。
【００３７】
【表２】
0003632411.tif 000003
【００３８】
「Ｍ」ボタンは、モード切り換えボタンであり、演奏モードや初期設定モード等を指定するためのボタンである。モードに応じて、他のボタンの機能を変更することもできる。
【００３９】
ユーザは、「Ｍ」ボタンを押すことにより、バック演奏の自動演奏を開始させることができる。また、ユーザは、フレーズを指定することにより、そのフレーズのソロ演奏を開始させることができる。
【００４０】
図４は、コンピュータ２の構成を示す図である。
バス１６には、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、外部記憶装置１５、操作子１７、、表示器１８、ゲームパッドインターフェース１４、ＭＩＤＩインターフェース１９、通信インターフェース２２が接続される。
【００４１】
ゲームパッドインターフェース１４には、例えば３個のゲームパッド１ａ，１ｂ，１ｃが接続される。ユーザがゲームパッド１を操作すると、操作情報がバス１６上に供給される。
【００４２】
外部記憶装置１５は、ハードディスクドライブ、フロッピディスクドライブ、ＣＤ−ＲＯＭドライブ等である。外部記憶装置は、複数曲の演奏データを記憶することができる。演奏データは、ソロ演奏データ及びバック演奏データを含む。
【００４３】
表示器１８には、外部記憶装置１５に記憶されている複数曲の演奏データを一覧表として表示することができる。ユーザは、曲の一覧表の中から、ゲームパッド１を用いて演奏曲を選択することができる。表示器１８は、ソロ演奏やバック演奏等の設定情報を表示することもできる。
【００４４】
ユーザが演奏曲、楽器及びキャラクタを選択すると、外部記憶装置１５内の演奏データは、ＲＡＭ１３にコピーされる。
【００４５】
また、表示器１８には、演奏プレーヤの画像が表示される。画像は、静止画でも動画でもよい。例えば、表示器１８には、バンド演奏を行う複数人のプレーヤが表示される。表示器上のプレーヤは、楽器を操作する動作やステージ上を動く動作を行う。
【００４６】
ＲＯＭ１２は、コンピュータプログラムおよび各種パラメータを記憶している。ＣＰＵ１１は、ＲＯＭ１２に記憶されているコンピュータプログラムに従い、楽音パラメータや効果パラメータの生成等を行う。ＲＡＭ１３は、レジスタ、フラグ、バッファを含むＣＰＵ１１のワーキングエリアを有する。
【００４７】
タイマ２０は、時間情報をＣＰＵ１１に供給する。ＣＰＵ１１は、その時間情報に応じて、割り込み処理を行うことができる。
【００４８】
ＭＩＤＩインターフェース１９は、上記の楽音パラメータや効果パラメータをＭＩＤＩ形式で音源３（図１）に出力する。音源は、コンピュータ２に内蔵してもよい。
【００４９】
外部記憶装置１５は動作プログラムや演奏データ等の各種データを記憶することができる。ＲＯＭ１２に動作プログラムが記憶されていない場合、この外部記憶装置１５に動作プログラムを記憶させておき、それをＲＡＭ１３に読み込むことにより、ＲＯＭ１２に動作プログラムを記憶している場合と同様の動作をＣＰＵ１１にさせることができる。このようにすると、動作プログラムの追加やバージョンアップ等が容易に行える。ＣＤ−ＲＯＭ（コンパクトディスク−リード・オンリィ・メモリ）ドライブは、ＣＤ−ＲＯＭに記憶されている動作プログラムや各種データを読み出す装置である。読み出した動作プログラムや各種データは、ハードディスクにストアされる。動作プログラムの新規インストールやバージョンアップ等が容易に行える。なお、ＣＤ−ＲＯＭドライブ以外にも、光磁気ディスク（ＭＯ）装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【００５０】
通信インターフェース２２はＬＡＮ（ローカルエリアネットワーク）やインターネット、電話回路等の通信ネットワーク２４に接続されており、該通信ネットワーク２４を介して、サーバコンピュータ２３と接続される。外部記憶装置１５内に上記動作プログラムや各種データが記憶されていない場合、サーバコンピュータ２３からプログラムやデータをダウンロードすることができる。クライアントとなるコンピュータ２は、通信インターフェース２２及び通信ネットワーク２４を介してサーバコンピュータ２３へと動作プログラムやデータのダウンロードを要求するコマンドを通信する。ユーザは、操作子１７を用いて当該コマンドを通信することができる。サーバコンピュータ２３は、このコマンドを受け、要求された動作プログラムやデータを、通信ネットワーク２４を介してコンピュータ２へと配信し、コンピュータ２が通信インターフェース２２を介して、これらプログラムやデータを受信して外部記憶装置１５に蓄積することにより、ダウンロードが完了する。
【００５１】
なお、本実施例は、本実施例に対応する動作プログラムや各種データをインストールした市販のパーソナルコンピュータ等によって、実施させるようにしてもよい。その場合には、本実施例に対応する動作プログラムや各種データを、ＣＤ−ＲＯＭやフロッピディスク等の、パーソナルコンピュータが読み込むことができる記憶媒体に記憶させた状態で、ユーザーに提供してもよい。そのパーソナルコンピュータ等が、ＬＡＮ、インターネット、電話回線等の通信ネットワークに接続されている場合には、通信ネットワークを介して、動作プログラムや各種データ等をパーソナルコンピュータ等に提供してもよい。
【００５２】
図５（Ａ）は、外部記憶装置又はＲＡＭに記憶されるソロ演奏データ３１を示す。ソロ演奏データ３１は、曲、楽器、キャラクタ毎に設けられる。例えば、ギター用演奏データとサックス用演奏データは異なる。ソロ演奏データ３１は、フレーズ１〜２４の演奏データを有する。
【００５３】
ソロ演奏データ３１は、スタンダードＭＩＤＩファイル形式で外部記憶装置に記憶される。スタンダードＭＩＤＩファイルは、ＭＩＤＩ規格に準拠した標準的なファイル形式である。スタンダードＭＩＤＩファイルの場合、演奏データ３１は、図５（Ｃ）に示すように、イベント３０ａとインターバル３０ｂを１単位として構成される。イベント３０ａは、例えばノートオンイベントである。インターバル３０ｂは、当該イベント発生から次のイベント発生までの時間間隔である。
【００５４】
図５（Ｂ）は、外部記憶装置又はＲＡＭに記憶されるソロ画像データ３２を示す。ソロ画像データ３２は、曲、楽器、キャラクタ毎に設けられる。ソロ画像データ３２は、フレーズ１〜２４の画像データを有し、演奏データ３１（図５（Ａ））に対応したデータである。各フレーズの演奏データ３１と画像データ３２は、再生時間が同じであり、フレーズの開始が指示されると両者はほぼ同時に再生開始される。
【００５５】
図６（Ａ）は、外部記憶装置又はＲＡＭに記憶されるバック演奏データ３３を示す。バック演奏データ３３は、曲毎に設けられる。１曲につき、複数種類のバック演奏データ３３を設けてもよい。バック演奏データ３３は、フレーズに別れておらず、連続して自動演奏される１曲分のデータである。バック演奏データ３３も、スタンダードＭＩＤＩファイル形式で外部記憶装置に記憶される。
【００５６】
図６（Ｂ）は、外部記憶装置又はＲＡＭに記憶されるバック演奏画像データ３４を示す。バック演奏画像データ３４は、１曲分の画像データを有し、演奏データ３３（図６（Ａ））に対応したデータである。バック演奏画像データ３４は、曲毎に設けても、１曲につき複数種類設けてもよい。
【００５７】
図７（Ａ）は、ＲＡＭに記憶されるフレーズ開始アドレス群３５を示す。ソロ演奏データ３１（図５（Ａ））は、フレーズ１〜２４を有する。開始アドレス群３５は、各フレーズの開始アドレスを有する。ユーザがフレーズ番号を指定したときには、この開始アドレスを参照することにより、図５（Ａ）に示す所定フレーズの演奏データ３１の再生を行うことができる。
【００５８】
図７（Ｂ）は、ＲＡＭに記憶される画像データ開始アドレス群３６を示す。ソロ画像データ３２（図５（Ｂ））は、フレーズ１〜２４を有する。開始アドレス群３６は、各フレーズの画像データ開始アドレスを有する。ユーザがフレーズ番号を指定したときには、この開始アドレスを参照することにより、図５（Ｂ）に示す所定フレーズの画像データ３２の再生を行うことができる。
【００５９】
図８（Ａ）は、外部記憶装置又はＲＡＭに記憶される補間演奏データ３７を示す。補間演奏データ３７は、フレーズが切り換わる際に２つのフレーズ間を補間する演奏データである。補間演奏データ３７を用いることにより、あるフレーズから次のフレーズにスムーズに移行することができる。補間演奏データ３７は、例えばグリッサンドやフィルイン等のデータである。補間演奏データ３７についても、図７（Ａ）と同様な開始アドレス群が用意される。
【００６０】
図８（Ｂ）は、外部記憶装置又はＲＡＭに記憶される補間画像データ３８を示す。補間画像データ３８は、フレーズが切り換わる際に２つのフレーズ間を補間する画像データである。補間画像データ３８を用いることにより、あるフレーズから次のフレーズに画像をスムーズに移行することができる。補間画像データ３８についても、図７（Ｂ）と同様な開始アドレス群が用意される。
【００６１】
図９は、ＣＰＵが行う全体処理を示すフローチャートである。
ステップＳＡ１では、演奏曲を決定する。演奏曲は、ユーザがゲームパッドを用いて選択することができる。
【００６２】
ステップＳＡ２では、ソロプレーヤを決定する。ユーザは、ゲームパッドを用いてソロプレーヤを選択する。ユーザが複数の場合は、各ユーザが異なるソロプレーヤを選択することできる。選択されたソロプレーヤが、自己のゲームパッドに割り当てられる。ソロプレーヤの決定は、楽器の決定とキャラクタの決定を含む。
【００６３】
ステップＳＡ３では、バック演奏を決定する。ステップＳＡ１で曲が決まると、ユーザは、その曲用のバック演奏の中から所望のものを選択することができる。
【００６４】
ステップＳＡ４では、演奏を行う。バック演奏は自動演奏され、ソロ演奏はユーザの操作により演奏される。ユーザは、ゲームパッドを用いて、所望のフレーズのソロ演奏を行うことができる。その際、ピッチベンド等の効果を付与することもできる。詳細は、後に説明する。
【００６５】
ステップＳＡ５では、上記の演奏操作情報を保存するか否かをユーザに問い合わせる。ユーザが保存を希望すれば、ステップＳＡ６で保存処理を行い、終了する。ユーザが保存を希望しなければ、保存せずに終了する。ステップＳＡ６の保存処理は、フレーズのシーケンス、発生タイミング及び効果付与情報等を外部記憶装置に記録する処理である。
【００６６】
図１０は、ＣＰＵが行う割り込み処理を示すフローチャートである。ＣＰＵは、タイマから供給される時間情報に応じて、所定時間間隔で割り込み処理を行う。この処理により、時間が設定され、バック演奏及びソロ演奏が行われる。ステップＳＢ１では、レジスタｉｎｔｅｒｖａｌの値をデクリメントし、割り込み前の処理に戻る。レジスタｉｎｔｅｒｖａｌには、図５（Ｃ）に示すインターバル３０ｂに応じた時間情報が格納され、その後、ステップＳＢ１でデクリメントされる。レジスタｉｎｔｅｒｖａｌが０になったところで、次のイベントを再生すればよい。
【００６７】
なお、タイマから供給される時間情報の代わりに、外部からＭＩＤＩインターフェースに供給されるＭＩＤＩクロック等を用いて、上記の割り込み処理を行ってもよい。
【００６８】
図１１は、バック演奏処理を示すフローチャートである。
ステップＳＣ１では、レジスタｉｎｔｅｒｖａｌが０であるか否かをチェックする。０でないときには、未だイベントの再生タイミングでないことを意味するので、ｎｏの矢印に従い、処理を終了する。
【００６９】
レジスタｉｎｔｅｒｖａｌが０であるときには、イベントの再生タイミングであることを意味するので、ｙｅｓの矢印に従い、ステップＳＣ２へ進む。
【００７０】
ステップＳＣ２では、バック演奏用カレントポインタ（読み出しポインタ）から１タイミング分だけバック演奏データ３３（図６（Ａ））を読み出して再生する。具体的には、演奏データ３３を音源に供給し、スピーカから発音させる。続いて、読み出しポインタを、次のイベントのアドレスにセットする。
【００７１】
ステップＳＣ３では、バック演奏画像用カレントポインタ（読み出しポインタ）から１タイミング分だけバック演奏用画像データ３４（図６（Ｂ））を読み出して表示器に描画する。続いて、読み出しポインタを、次のイベント用画像データのアドレスにセットする。
【００７２】
ステップＳＣ４では、インターバル３０ｂ（図５（Ｃ））とレジスタｔｅｍｐｏとから新たなインターバルを算出し、そのインターバルをレジスタｉｎｔｅｒｖａｌにセットする。インターバル３０ｂは、現在のイベントから次のイベントまでの時間間隔を示す。レジスタｔｅｍｐｏは、曲のテンポ値を格納し、ゲームパッドを用いて変更可能である。その後、ステップＳＣ１へ戻り、上記の処理を繰り返す。
【００７３】
図１２は、第１のキーイベント処理を示すフローチャートである。この処理は、上記の表１に従い、ゲームパッドの操作に応じてフレーズ番号１〜２４を決定する処理である。フレーズ番号１〜２４に応じて、レジスタｐｈｒａｓｅに０〜２３が記憶される。レジスタｐｈｒａｓｅには、フレーズ番号−１の値が格納される。
【００７４】
ステップＳＤ１では、「Ｌ，Ｒ，Ａ，Ｂ，Ｃ，Ｘ，Ｙ，Ｚ」のうちのいずれかが押されたか否かをチェックする。押されたときには、ｙｅｓの矢印に従い、ステップＳＤ２へ進む。
【００７５】
ステップＳＤ２では、「Ｌ」ボタンが押されたか否かをチェックする。押されたときには、ステップＳＤ１３においてレジスタｏｆｆｓｅｔの値を６だけ増加し、処理を終了する。すなわち、「Ｌ」ボタンを押せば、フレーズ７〜１２を選択可能であることを意味する。レジスタｏｆｆｓｅｔの初期値は０である。
【００７６】
「Ｌ」ボタンが押されていないときには、ステップＳＤ３で「Ｒ」ボタンが押されたか否かをチェックする。押されたときには、ステップＳＤ１４においてレジスタｏｆｆｓｅｔの値を１２だけ増加し、処理を終了する。すなわち、「Ｒ」ボタンを押せば、フレーズ１３〜１８を選択可能であることを意味し、「Ｌ」ボタンと「Ｒ」ボタンを押せば、まず６が加算され続いて１２が加算され、フレーズ１９〜２４を選択可能であることを意味する。
【００７７】
「Ｒ」ボタンが押されていないときには、ステップＳＤ４で「Ａ」ボタンが押されたか否かをチェックする。押されたときには、ステップＳＤ１５においてレジスタｏｆｆｓｅｔに０を加算した値をレジスタｐｈｒａｓｅに格納し、ステップＳＤ２１へ進む。
【００７８】
「Ａ」ボタンが押されていないときには、ステップＳＤ５で「Ｂ」ボタンが押されたか否かをチェックする。押されたときには、ステップＳＤ１６においてレジスタｏｆｆｓｅｔに１を加算した値をレジスタｐｈｒａｓｅに格納し、ステップＳＤ２１へ進む。
【００７９】
「Ｂ」ボタンが押されていないときには、ステップＳＤ６で「Ｃ」ボタンが押されたか否かをチェックする。押されたときには、ステップＳＤ１７においてレジスタｏｆｆｓｅｔに２を加算した値をレジスタｐｈｒａｓｅに格納し、ステップＳＤ２１へ進む。
【００８０】
「Ｃ」ボタンが押されていないときには、ステップＳＤ７で「Ｘ」ボタンが押されたか否かをチェックする。押されたときには、ステップＳＤ１８においてレジスタｏｆｆｓｅｔに３を加算した値をレジスタｐｈｒａｓｅに格納し、ステップＳＤ２１へ進む。
【００８１】
「Ｘ」ボタンが押されていないときには、ステップＳＤ８で「Ｙ」ボタンが押されたか否かをチェックする。押されたときには、ステップＳＤ１９においてレジスタｏｆｆｓｅｔに４を加算した値をレジスタｐｈｒａｓｅに格納し、ステップＳＤ２１へ進む。
【００８２】
「Ｙ」ボタンが押されていないときには、「Ｚ」ボタンが押されたことを意味するので、ステップＳＤ２０においてレジスタｏｆｆｓｅｔに５を加算した値をレジスタｐｈｒａｓｅに格納し、ステップＳＤ２１へ進む。
【００８３】
ステップＳＤ２１では、レジスタｐｈｒａｓｅが示すフレーズ番号のソロ演奏データの開始アドレス３５（図７（Ａ））を読み出しポインタｔｏｐ＿ｐｏｉｎｔｅｒ＿ｔｏ＿ｐｈｒａｓｅにセットする。
【００８４】
次に、レジスタｐｈｒａｓｅが示すフレーズ番号のソロ画像データの開始アドレス３６（図７（Ｂ））を読み出しポインタｔｏｐ＿ｐｏｉｎｔｅｒ＿ｔｏ＿ｐｈｒａｓｅ＿ｇｒａｐｈｉｃにセットする。
【００８５】
次に、フレーズ切り替えのフラグを１にする。その後、処理を終了する。
ステップＳＤ１で「Ｌ，Ｒ，Ａ，Ｂ，Ｃ，Ｘ，Ｙ，Ｚ」のうちのいずれも押されていないときには、ｎｏの矢印に従い、ステップＳＤ９へ進む。
【００８６】
ステップＳＤ９では、「Ｌ，Ｒ」のどちらかが離されたか否かをチェックする。離されていないときにはｎｏの矢印に従い処理を終了し、離されたときにはｙｅｓの矢印に従いステップＳＤ１０へ進む。
【００８７】
ステップＳＤ１０では、「Ｌ」が離されたか否かをチェックする。「Ｌ」が離されたときには、ｙｅｓの矢印に従い、ステップＳＤ１２でレジスタｏｆｆｓｅｔから６を減算して、処理を終了する。「Ｌ」が離されていないときには、「Ｒ」が離されたことを意味するので、ｎｏの矢印に従い、ステップＳＤ１１でレジスタｏｆｆｓｅｔから１２を減算して、処理を終了する。
【００８８】
以上の処理により、レジスタｐｈｒａｓｅにフレーズ番号が格納され、演奏データ及び画像データの読み出しポインタがセットされる。
【００８９】
図１３は、第２のキーイベント処理を示すフローチャートである。この処理は、上記の表２に従い、ゲームパッドの操作に応じて楽音に効果を付与する処理である。レジスタｐｉｔｃｈｂｅｎｄは、ピッチベンド値を格納する。レジスタｔｅｍｐｏは、テンポ値を格納する。
【００９０】
ステップＳＥ１では、「↑」キーがオンになっているか否かをチェックする。オンになっているときには、ピッチベンドのアップが指示されたことを意味するので、ステップＳＥ５でレジスタｐｉｔｃｈｂｅｎｄをインクリメントし、ステップＳＥ９へ進む。
【００９１】
ステップＳＥ２では、「↓」キーがオンになっているか否かをチェックする。オンになっているときには、ピッチベンドのダウンが指示されたことを意味するので、ステップＳＥ６でレジスタｐｉｔｃｈｂｅｎｄをデクリメントし、ステップＳＥ９へ進む。
【００９２】
ステップＳＥ９では、レジスタｐｉｔｃｈｂｅｎｄの値をピッチベンドデータとして音源に送信し、「↑」キー又は「↓」キーの情報を表示処理用ソロ画像モジュールに送信する。音源は、ピッチベンドデータに応じて楽音信号を生成する。表示器には、ピッチベンドデータに応じた画像が表示される。その後、処理を終了する。
【００９３】
ステップＳＥ３では、「→」キーがオンになっているか否かをチェックする。オンになっているときには、テンポのアップが指示されたことを意味するので、ステップＳＥ７でレジスタｔｅｍｐｏをインクリメントし、処理を終了する。
【００９４】
ステップＳＥ４では、「←」キーがオンになっているか否かをチェックする。オンになっているときには、テンポのダウンが指示されたことを意味するので、ステップＳＥ８でレジスタｔｅｍｐｏをデクリメントし、処理を終了する。
【００９５】
レジスタｔｅｍｐｏの値は、バック演奏及びソロ演奏のテンポ値を示す。バック演奏のテンポは、上記の図１１のステップＳＣ４で決められる。ソロ演奏のテンポは、後に説明する図１４のステップＳＦ６で決められる。
【００９６】
上記の方向キーの操作は、オートリピート機能を有する。すなわち、キーを押し続ければ、上記の処理を繰り返し、ピッチベンド値又はテンポ値が変化し続ける。
【００９７】
なお、ピッチベンド値又はテンポ値は、１づつ変化する場合に限定されず、２以上のステップで変化させてもよい。
【００９８】
図１４は、ソロ演奏処理を示すフローチャートである。
ステップＳＦ１では、フレーズ切り替えのフラグが１か否かをチェックする。ユーザがフレーズの切り替えを指示すると、上記の図１２のステップＳＤ２１でフレーズ切り替えのフラグが１になる。フラグが１であれば、ｙｅｓの矢印に従い、ステップＳＦ８へ進む。
【００９９】
ステップＳＦ８では、ポインタｔｏｐ＿ｐｏｉｎｔｅｒ＿ｔｏ＿ｐｈｒａｓｅ＿ｇｒａｐｈｉｃが示す画像データと現在描画中の画像データを比較する。すなわち、切り替え前の画像データと切り替え後の画像データとを比較する。ポインタｔｏｐ＿ｐｏｉｎｔｅｒ＿ｔｏ＿ｐｈｒａｓｅ＿ｇｒａｐｈｉｃは、図１２のステップＳＤ２１で切り替え後の読み出しポインタとしてセットされている。その後、ステップＳＦ９へ進む。
【０１００】
なお、演奏の開始時には、切り替え前のフレーズが存在しないので、ステップＳＦ８及びＳＦ９を素通りして、ステップＳＦ１０へ進む。
【０１０１】
ステップＳＦ９では、連続再生可能か否かをチェックする。例えば、切り替え前の画像データと切り替え後の画像データとが大きく異なるときには、画像の切り替えが不自然になるので、連続再生不可能と判断し、補間を行うためステップＳＦ１１へ進む。一方、画像データが大きく異ならないときには、連続再生可能であると判断し、ステップＳＦ１０へ進む。
【０１０２】
ステップＳＦ１０では、ソロ演奏用読み出しポインタとして、ポインタｔｏｐ＿ｐｏｉｎｔｅｒ＿ｔｏ＿ｐｈｒａｓｅをセットし、ソロ演奏用画像読み出しポインタとして、ポインタｔｏｐ＿ｐｏｉｎｔｅｒ＿ｔｏ＿ｐｈｒａｓｅ＿ｇｒａｐｈｉｃをセットする。こららのポインタは、図１２のステップＳＤ２１で決定済みである。続いて、フレーズ切り替えのフラグを０にし、フレーズ切り替え処理が終了したことを記録する。その後、ステップＳＦ４へ進む。
【０１０３】
ステップＳＦ４では、ソロ演奏用読み出しポインタから１タイミング分だけソロ演奏データ３１（図５（Ａ））を読み出して再生する。具体的には、演奏データ３１を音源に供給し、スピーカから発音させる。続いて、読み出しポインタを、次のイベントのアドレスにセットする。フレーズ終了のときには、次のイベントがないので、読み出しポインタにエンドマークをセットする。
【０１０４】
ステップＳＦ５では、ソロ演奏用画像読み出しポインタから１タイミング分だけソロ演奏用画像データ３２（図５（Ｂ））を読み出して表示器に描画する。続いて、読み出しポインタを、次のイベント用画像データのアドレスにセットする。フレーズ終了のときには、次のイベントがないので、読み出しポインタにエンドマークをセットする。
【０１０５】
ステップＳＦ６では、インターバル３０ｂ（図５（Ｃ））とレジスタｔｅｍｐｏとから新たなインターバルを算出し、そのインターバルをレジスタｉｎｔｅｒｖａｌにセットする。インターバル３０ｂは、現在のイベントから次のイベントまでの時間間隔を示す。レジスタｉｎｔｅｒｖａｌは、バック演奏及び各ソロパート毎に別に設けられるが、説明の簡単のため、全てレジスタｉｎｔｅｒｖａｌで表す。レジスタｔｅｍｐｏは、曲のテンポ値を格納し、ゲームパッドを用いて変更可能である。一人のユーザがテンポの変更を指示した場合には、そのユーザが演奏するソロ演奏パートのテンポのみを変更してもよいし、全てのソロ演奏パートのテンポを変更してもよい。その後、ステップＳＦ１へ戻る。
【０１０６】
上記のステップＳＦ９で連続再生可能でないと判断されたときには、補間を行うため、ステップＳＦ１１へ進む。
【０１０７】
ステップＳＦ１１では、現在補間中であるか否かをチェックする。すなわち、補間用演奏データ及び補間用画像データを再生中であるか否かをチェックする。補間中でないときにはｎｏの矢印に従いステップＳＦ１２へ進み、補間中であるときにはｙｅｓの矢印に従いステップＳＦ１５へ進む。
【０１０８】
ステップＳＦ１２では、連続再生不可能を示すエラーコードより補間画像データ用ポインタ（開始アドレス）及び補間演奏データ用ポインタ（開始アドレス）を得る。
【０１０９】
ステップＳＦ１３では、ソロ演奏用読み出しポインタとして、上記の補間演奏データ用ポインタをセットし、ソロ演奏用画像読み出しポインタとして、上記の補間画像データ用ポインタをセットする。
【０１１０】
ステップＳＦ１４では、補間フラグを１にセットする。この補間フラグを参照することにより、上記のステップＳＦ１１で補間中であるか否かをチェックすることができる。その後、ステップＳＦ４へ進み、上記の処理を行う。
【０１１１】
上記のステップＳＦ１１で補間中であると判断されたときには、ステップＳＦ１５へ進む。
【０１１２】
ステップＳＦ１５では、補間が終了したか否かをチェックする。全ての補間データの読み出しが終了すれば、補間が終了したことを意味する。補間が終了していないときには、ステップＳＦ４へ進み、上記の処理を行う。補間が終了しているときには、ステップＳＦ１６で補間フラグを０にクリアし、ステップＳＦ１へ戻る。
【０１１３】
ステップＳＦ１でフレーズ切り替えのフラグが０であると判断されると、フレーズの切り替えが行われていないことを意味するので、ステップＳＦ２へ進む。
【０１１４】
ステップＳＦ２では、レジスタｉｎｔｅｒｖａｌが０であるか否かをチェックする。０でないときには、未だイベントの再生タイミングでないことを意味するので、ｎｏの矢印に従い、ステップＳＦ１へ戻る。
【０１１５】
レジスタｉｎｔｅｒｖａｌが０であるときには、イベントの再生タイミングであることを意味するので、ｙｅｓの矢印に従い、ステップＳＦ３へ進む。
【０１１６】
ステップＳＦ３では、フレーズが終了したか否かをチェックする。フレーズが終了していないときには、ｎｏの矢印に従い、ステップＳＦ４へ進み、上記の処理を行う。フレーズが終了しているときには、ｙｅｓの矢印に従い、ステップＳＦ７へ進む。
【０１１７】
ステップＳＦ７では、演奏曲が終了したか否かをチェックする。演奏曲が終了していないときには、ｎｏの矢印に従い、ステップＳＦ１へ戻る。演奏曲が終了しているときには、ｙｅｓの矢印に従い、処理を終了する。
【０１１８】
本実施例によれば、ユーザがゲームパッドを用いてフレーズを切り替えて選択するだけで、簡単に即興演奏を行うことができる。フレーズを指定して演奏を行うことにより、鍵盤を用いて演奏を行う場合に比べ、簡単な演奏操作ですむ。
【０１１９】
ユーザは、楽器や音楽の知識や技術がなくても、ゲームパッドのボタンを押すタイミングを制御するだけで、簡単にソロ演奏や合奏を行うことができる。
【０１２０】
バック演奏は自動演奏されるので、ユーザがゲームパッドを用いてソロ演奏を行えば、簡単に合奏を行うことができる。ゲームパッドを複数用意すれば、複数のユーザが合奏を行うことができる。
【０１２１】
なお、ゲームパッドの代わりに、鍵盤やコンピュータ用キーボードを用いてもよい。その場合も、ユーザはフレーズを選択するだけでよい。
【０１２２】
更に発音ボタンを設け、これを押しているときにパターン（演奏データ）を再生させ、離すと停止させることもできる。これらの操作方法によりバリエーション豊かな演奏が可能になる。また離した後に再度発音ボタンを押した場合、停止した箇所から再スタートさせてもよいし、パターンの最初から開始させてもよい。また設定により両者を切り替えたり、更に他のボタンを設けて逐次切り替えられるようにすると、さらにバリエーションを増やすことができる。前述の発音ボタンをパターン切り替えスイッチと兼用していても構わない。
【０１２３】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【０１２４】
【発明の効果】
以上説明したように、本発明によれば、操作子でフレーズを切り替えて選択することにより、即興演奏を行うことができる。楽器の知識や技術がない初級者でも簡単な操作で演奏を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施例による楽音信号生成装置の構成図である。
【図２】楽音信号生成例を示すタイミングチャートである。
【図３】ゲームパッド上のボタンの配置を示す図である。
【図４】コンピュータの構成図である。
【図５】図５（Ａ）はソロ演奏データ、図５（Ｂ）はソロ演奏用画像データ、図５（Ｃ）はスタンダードＭＩＤＩファイル形式の演奏データを示す図である。
【図６】図６（Ａ）はバック演奏データ、図６（Ｂ）はバック演奏用画像データを示す図である。
【図７】図７（Ａ）はソロ演奏データ開始アドレス群、図７（Ｂ）はソロ演奏用画像データ開始アドレス群を示す図である。
【図８】図８（Ａ）は補間用演奏データ、図８（Ｂ）は補間用画像データを示す図である。
【図９】ＣＰＵが行う全体処理を示すフローチャートである。
【図１０】割り込み処理を示すフローチャートである。
【図１１】バック演奏処理を示すフローチャートである。
【図１２】第１のキーイベント処理を示すフローチャートである。
【図１３】第２のキーイベント処理を示すフローチャートである。
【図１４】ソロ演奏処理を示すフローチャートである。
【符号の説明】
１  ゲームパッド、    ２  コンピュータ、    ３  音源、    ４  スピーカ、    ５  方向キー、    １１  ＣＰＵ、    １２  ＲＯＭ、    １３  ＲＡＭ、    １４  ゲームパッドインタフェース、    １５  外部記憶装置、    １６  バス、    １７  操作子、    １８  表示器、    １９  ＭＩＤＩインターフェース、    ２０  タイマ、    ２２  通信インターフェース、    ２３  サーバコンピュータ、    ２４  通信ネットワーク、    ３０ａ  イベント、    ３０ｂ  インターバル、    ３１  ソロ演奏データ、    ３２  ソロ演奏用画像データ、    ３３  バック演奏データ、    ３４  バック演奏用画像データ、  ３５  演奏データ開始アドレス群、    ３６  画像データ開始アドレス群、  ３７  補間用演奏データ、    ３８  補間用画像データ、    ＢＫ  バック演奏
【図１】
0003632411.tif 000004
【図２】
0003632411.tif 000005
【図３】
0003632411.tif 000006
【図４】
0003632411.tif 000007
【図５】
0003632411.tif 000008
【図６】
0003632411.tif 000009
【図７】
0003632411.tif 000010
【図８】
0003632411.tif 000011
【図９】
0003632411.tif 000012
【図１０】
0003632411.tif 000013
【図１１】
0003632411.tif 000014
【図１２】
0003632411.tif 000015
【図１３】
0003632411.tif 000016
【図１４】
0003632411.tif 000017