(57)【要約】 【課題】演奏者が鍵盤の押鍵によって曲データの再生のテンポを制御する演奏制御において、演奏者が飽きることなくその鍵盤を使った演奏を楽しめるようにする。【手段】演奏制御装置１０のＣＰＵ２０は、曲データｍｄにおけるＮ個の演奏制御トラックデータの中から拍を実行タイミングとする「ノートオン」のイベントデータを最も多く含む演奏制御トラックデータを選択する。次に、その選択した演奏制御トラックデータの複製に基づいて、「ノートオン」のイベントデータと単位演奏時間Ｔに相当するティック数のデルタタイムを交互に配した押鍵案内制御トラックデータを生成する。そして、押鍵案内制御トラックデータにおけるイベントデータに従って電子ピアノ５０のＬＥＤ３−ｉ（ｉ＝１〜８８）を発光させ、演奏制御トラックデータにおけるイベントデータに従って音源５３から演奏音を発音させる。【選択図】図１
2010271436.tif 000002
【特許請求の範囲】
【請求項１】
音源の制御を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した一又または複数の演奏制御トラックデータを含む曲データを記憶する曲データ記憶手段と、
前記曲データに含まれる一又は複数の演奏制御トラックデータの中から一又は複数の演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索し、探索したイベントデータに基づいて、複数の鍵のうち押鍵を要する鍵を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した押鍵案内制御トラックデータを生成する曲データ編集手段と、
前記曲データの前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの各々のイベントデータを順に出力する手段であって、前記押鍵案内制御トラックデータのイベントデータを出力した後、そのイベントデータによって押鍵を指示した鍵が押鍵された場合に前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの次のイベントデータを出力する演奏制御手段と
を具備することを特徴とする演奏制御装置。
【請求項２】
前記曲データ編集手段は、前記演奏制御トラックデータの最初のタイミングデータをより遅い実行タイミングを指示するタイミングデータに置き換えることを特徴とする請求項１に記載の演奏制御装置。
【請求項３】
前記曲データは、複数の演奏制御トラックデータを含んでおり、
前記曲データ編集手段は、前記複数の演奏制御トラックデータのうち拍に相当するタイミングを実行タイミングとするイベントデータを最も多く含む一つの演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索する
ことを特徴とする請求項１または２に記載の演奏制御装置。
【請求項４】
音源の制御を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した一又または複数の演奏制御トラックデータを含む曲データを記憶する曲データ記憶手段と、
前記曲データに含まれる一又は複数の演奏制御トラックデータの中から一又は複数の演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索し、探索したイベントデータに基づいて、複数の鍵のうち押鍵を要する鍵を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した押鍵案内制御トラックデータを生成する曲データ編集手段と
を具備することを特徴とする曲データ編集装置。
【請求項５】
コンピュータを、
音源の制御を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した一又または複数の演奏制御トラックデータを含む曲データを記憶する曲データ記憶手段と、
前記曲データに含まれる一又は複数の演奏制御トラックデータの中から一又は複数の演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索し、探索したイベントデータに基づいて、複数の鍵のうち押鍵を要する鍵を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した押鍵案内制御トラックデータを生成する曲データ編集手段と、
前記曲データの前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの各々のイベントデータを順に出力する手段であって、前記押鍵案内制御トラックデータのイベントデータを出力した後、そのイベントデータによって押鍵を指示した鍵が押鍵された場合に前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの次のイベントデータを出力する演奏制御手段と
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、押鍵操作によって曲データの再生の態様を制御する技術に関する。
【背景技術】
【０００２】
曲データを演奏操作子の操作に合わせたテンポで再生する自動演奏システムの中には鍵盤を演奏操作子としているものがある。たとえば、特許文献１に開示された合奏システムは、鍵盤を各々有する複数の演奏端末とそれらの演奏端末と接続されるコントローラとから構成されており、コントローラは、各演奏端末に割り当てた演奏パートの曲データの再生のテンポをそれらの演奏端末における押鍵のテンポに合わせて制御する。この合奏システムにおける各演奏端末は、各々の鍵盤における鍵のいずれかが押鍵されると操作情報をコントローラに送信する。コントローラは、各演奏端末に割り当てた演奏パートの各々の曲データであるＭＩＤＩ（Musical Instrument Digital Interface）イベントデータ列を記憶しており、各演奏端末から操作情報が送信されるたびそれらの演奏パートの曲データをなすＭＩＤＩイベントデータを順に読みだして音源に出力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−９３８２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示された技術の場合、コントローラは、演奏端末の鍵が押鍵されればその鍵がどれであっても曲の再生を進行させるようになっている。よって、演奏者は、自らの演奏パートの音の音名と対応する正しい鍵を押鍵したか否かにかかわらず同じように曲を進行させることができてしまい、その演奏端末を使った曲の演奏にすぐ飽きてしまうという問題があった。
本発明は、このような背景の下に案出されたものであり、演奏者の鍵盤の押鍵によって曲データの再生のテンポを制御する演奏制御において、演奏者が飽きることなくその鍵盤を使った演奏を楽しめるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、音源の制御を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した一又または複数の演奏制御トラックデータを含む曲データを記憶する曲データ記憶手段と、前記曲データに含まれる一又は複数の演奏制御トラックデータの中から一又は複数の演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索し、探索したイベントデータに基づいて、複数の鍵のうち押鍵を要する鍵を指示するイベントデータとそれらのイベントデータの実行タイミングを指示するタイミングデータとを配列した押鍵案内制御トラックデータを生成する曲データ編集手段と、前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの各々のイベントデータを順に出力する手段であって、前記押鍵案内制御トラックデータのイベントデータを出力した後、そのイベントデータによって押鍵を指示した鍵が押鍵された場合に前記演奏制御トラックデータおよび前記押鍵案内制御トラックデータの次のイベントデータを出力する演奏制御手段とを具備する演奏制御装置を提供する。
【０００６】
この演奏制御装置は、押鍵案内制御トラックデータのイベントデータを取得した場合はそのイベントデータの指示に従って各鍵盤と各々対応する発光体を発光させ、演奏制御トラックデータのイベントデータを取得した場合はそのイベントデータの指示に従って音源から音波形を発生させる第１の処理と、各鍵のうち押鍵された鍵を演奏制御装置に通知する第２の処理とを行う電子楽器とともに利用する。そして、演奏制御装置は、曲データに含まれる一又は複数の演奏制御トラックデータの中から選択した演奏制御トラックデータに基づいて、押鍵案内制御トラックデータを生成し、この押鍵案内制御トラックデータと元の曲データに含まれる演奏制御トラックデータのイベントデータを電子楽器へ順に出力し、電子楽器における発光体の発光と音波形の発生とを制御する。これにより、演奏者は、鍵盤における各鍵のうちの正しい鍵を１拍間隔で押鍵しさえすれば曲を進行させることができ、鍵盤を使った演奏を飽きることなく楽しむことができる。
【図面の簡単な説明】
【０００７】
【図１】この発明の一実施形態である演奏制御装置を含む演奏システムを示すブロック図である。
【図２】図１に示す演奏制御システムにおける曲データのデータ構造図である。
【図３】図１に示す演奏制御システムの演奏制御装置が実行する曲データ編集処理を示すフローチャートである。
【図４】図１に示す演奏制御システムの演奏制御装置が実行する非ノートオンイベントデータ消去処理の具体的な処理内容を示す図である。
【図５】図１に示す演奏制御システムの演奏制御装置が実行するノートオンイベント修正処理の具体的な処理内容を示す図である。
【図６】図１に示す演奏制御システムの演奏制御装置が実行する演奏制御処理を示すフローチャートである。
【図７】図６の演奏制御処理に従った演奏の内容を示す図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照し、この発明の実施の形態を説明する。
図１は、この発明の一実施形態である演奏制御装置１０を含む演奏システムを示すブロック図である。この演奏システムは、本実施形態による演奏制御装置１０と電子ピアノ５０とにより構成されている。
【０００９】
電子ピアノ５０の筐体の上面には８８個の鍵１−ｉ（ｉ＝１〜８８）が配列されており、鍵１−ｉ（ｉ＝１〜８８）の各々には、「１」〜「８８」の鍵番号ｉが割り振られている。鍵１−ｉ（ｉ＝１〜８８）の各々の下には、押鍵検出センサとしての光センサ２−ｉ（ｉ＝１〜８８）が、各々の前（演奏者からみて奥）には、押鍵すべき鍵を演奏者に知らせるためのＬＥＤ３−ｉ（ｉ＝１〜８８）が設けられている。各光センサ２−ｉは、各々の真上の鍵１−ｉに向かって光を照射するとともに鍵１−ｉで反射した反射光を受光し、その反射光の受光量を示すアナログ信号を制御部５５に出力する。各ＬＥＤ３−ｉは、制御部５５から駆動信号が出力されている間、発光する。
【００１０】
音源５３は、ＭＩＤＩ音源である。この音源５３は、当該音源５３の発音チャネルｃｈ（ｃｈ＝１〜１２７）のいずれかを供給先とするＭＩＤＩのイベントデータを受け取り、そのイベントデータの指示に従って、該当の発音チャネルｃｈの音色の音波形を生成してスピーカ５４へ出力する。
本実施形態では、この音源５３の発音チャネルｃｈ（ｃｈ＝１〜１２７）のうち発音チャネル１２７を供給先とするイベントデータを、押鍵を要する鍵１−ｉを指示するイベントデータとして取り扱う。
【００１１】
制御部５５は、電子ピアノ５０の制御中枢である。この制御部５５は、ＲＯＭ５８、ＲＡＭ５９、およびＣＰＵ６０を有する。
ＲＯＭ５８は、制御プログラム６２を記憶した読み出し専用メモリである。ＣＰＵ６０は、ＲＡＭ５９をワークエリアとして利用しつつ、制御プログラム６２を実行する。
【００１２】
制御プログラム６２は、以下に示す２つの処理をＣＰＵ６０に実行させるプログラムである。
ａ１．押鍵検出処理
これは、光センサ２−ｉ（ｉ＝１〜８８）から出力されるアナログ信号に基づいて押鍵された鍵１−ｉを検出し、押鍵された鍵１−ｉの鍵番号ｉをノートナンバＮｕｍに変換し、そのノートナンバＮｕｍをインターフェース５１を介して演奏制御装置１０に出力する処理である。
ｂ１．ＬＥＤ・音源制御処理
これは、演奏制御装置１０から各発音チャネルｃｈ（ｃｈ＝１〜１２７）を供給先とするイベントデータをインターフェース５２を介して取得し、発音チャネル１２７を供給先とするイベントデータを取得したときはそのイベントデータに基づいてＬＥＤ３−ｉ（ｉ＝１〜８８）の発光を制御し、発音チャネルｃｈ（ｃｈ≠１２７）を供給先とするイベントデータを取得したときはそのイベントデータに基づいて音源５３から演奏音を発音させる処理である。
【００１３】
演奏制御装置１０の曲データ記憶メモリ１７は、曲データｍｄを記憶したメモリである。曲データｍｄは、合奏曲の総譜を構成するＮ個のパート譜の各々に従った音源５３の制御手順をＳＭＦ（Standard MIDI File）形式で表したデータである。曲データｍｄのデータ構造について、図２を参照して説明する。図２に示すように、曲データｍｄは、Ｎ個の各パート譜と各々対応する演奏制御トラックデータであるＮ個のトラックデータＴｒａｃｋにより構成される。曲データｍｄを構成する各トラックデータＴｒａｃｋには、「１」〜「Ｎ」のトラック番号が割り当てられている。
【００１４】
曲データｍｄにおけるＮ個のトラックデータＴｒａｃｋは、ＭＩＤＩのイベントデータを時系列的に並べるとともに、各イベントデータの前にそのイベントデータの実行タイミングを示すタイミングデータであるデルタタイムを付加したシーケンスデータである。
より具体的に説明すると、デルタタイムは、直前のイベントデータの実行タイミングとその直後のイベントデータの実行タイミングの間の時間差をティック数により示すデータである。
【００１５】
イベントデータは、音源５３の制御を指示するデータであり、チャネル番号、イベント種、およびパラメータの３種類のデータから構成される。トラック番号「１」、「２」…「Ｎ」の各トラックデータＴｒａｃｋにおけるイベントデータは、各々のトラック番号と同じ数である「１」、「２」…「Ｎ」の各チャネル番号ｃｈ（ｃｈ＝１〜Ｎ）を有する。
イベント種は、実行すべき音源５３の制御の種類を示し、パラメータは、その制御の具体的な内容を示す。たとえば、イベントデータのイベント種がある音名に相当するピッチの音波形を発生させる「ノートオン」である場合、そのパラメータは、音名を指定するノートナンバＮｕｍ（１≦Ｎｕｍ≦１２７）、そのレベルを指定するベロシティＶｅｌ（１≦Ｖｅｌ≦１２７）、およびその発生時間長を指定するゲートタイムＧｔｍ（１≦Ｇｔｍ）となる。イベントデータの種類は、「ノートオン」のほかにも、ある時間長をかけて音波形のレベルを変化させる「エクスプレッション」やある時間長をかけて音波形のピッチを変化させる「ピッチベンド」などの様々なものがあり、そのパラメータも各々の種類に応じて変わる。
【００１６】
図２の例では、ピアノのパート譜の一部が最上部に例示され、その下にトラック番号「１」のトラックデータＴｒａｃｋの一部の内容が示されている。図示のパート譜の最初の一小節では、音名Ｃ４（ノートナンバＮｕｍ＝６０）、音名Ｅ４（ノートナンバＮｕｍ＝６２）、音名Ｇ４（ノートナンバＮｕｍ＝６４）の３つの４分音符からなる和音が最初に記述され、その和音の後に休符を挟むことなく音名Ｃ４の４分音符が記述されている。このため、トラック番号「１」のトラックデータＴｒａｃｋの最初の部分の内容は、「デルタタイム＝０」→「イベントデータ＝チャネル番号：１，イベント種：ノートオン，Ｎｕｍ：６０，Ｖｅｌ：１００，Ｇｔｍ：４８０」→「デルタタイム＝０」→「イベントデータ＝チャネル番号：１，イベント種：ノートオン，Ｎｕｍ：６２，Ｖｅｌ：１００，Ｇｔｍ：４８０」→「デルタタイム＝０」→「イベントデータ＝チャネル番号：１，イベント種：ノートオン，Ｎｕｍ：６４，Ｖｅｌ：１００，Ｇｔｍ：４８０」→「デルタタイム＝４８０」→「イベントデータ＝チャネル番号：１，イベント種：ノートオン，Ｎｕｍ：６０，Ｖｅｌ：１００，Ｇｔｍ：４８０」となる。
【００１７】
図１において、制御部１５は、演奏制御装置１０の制御中枢である。制御部１５は、ＲＯＭ１８、ＲＡＭ１９、およびＣＰＵ２０を有する。
ＲＯＭ１８は、制御プログラム２２を記憶した読み出し専用メモリである。ＣＰＵ２０は、ＲＡＭ１９をワークエリアとして利用しつつ、制御プログラム２２を実行する。
【００１８】
制御プログラム２２は、以下に示す２種類の処理をＣＰＵ２０に実行させるプログラムである。
ａ２．曲データ編集処理
これは、曲データｍｄに含まれるＮ個の演奏制御トラックデータの中から１つの演奏制御トラックデータを選択し、選択した演奏制御トラックデータにおける一連のイベントデータの中から拍を実行タイミングとするイベントデータを探索し、探索したイベントデータに基づいて、複数の鍵１−ｉ（ｉ＝１〜８８）のうち押鍵を要する鍵１−ｉを指示するイベントデータとそれらのイベントデータの実行タイミングを指示するデルタタイムとを配列した押鍵案内制御トラックデータを生成する処理である。
ｂ２．演奏制御処理
これは、押鍵案内制御トラックデータにおける一連のイベントデータを電子ピアノ５０へ順に出力して光センサ２−ｉを発光させるとともに、光センサ２−ｉによって押鍵が指示された鍵１−ｉが押鍵される度に、演奏制御トラックデータにおける指定された演奏時間（以下、「単位演奏時間Ｔ」という）分のイベントデータを電子ピアノ５０へ出力して音源５３から各パート譜の演奏音を発音させる処理である。
【００１９】
操作部１３は、単位演奏時間指定操作を受け付ける。この単位演奏時間指定操作では、演奏者は、単位演奏時間Ｔの長さを音符の種類とその個数とによって指定する。たとえば、光センサ２−ｉの発光によって指示された鍵１−ｉが押鍵される度に各パート譜における４分音符１つ分の演奏音を発音させたい場合は「４分音符＊１」と指定し、４分音符２つ分の演奏音を発音させたい場合は「４分音符＊２」と指定する。
【００２０】
次に、本実施形態の動作を説明する。演奏制御装置１０のＣＰＵ２０は、操作部１３の操作により、処理対象である曲データｍｄが指定され、曲データ編集処理の実行指示が与えられたとき、図３に示す一連の処理を実行する。
図３において、ＣＰＵ２０は、トラック番号「１」〜「Ｎ＋１」と各々対応する記憶領域ＴＲｎ（ｎ＝１〜Ｎ＋１）をＲＡＭ１９に確保するとともに、曲データ記憶メモリ１７の曲データｍｄにおけるＮ個のトラックデータＴｒａｃｋを同メモリ１７から取得し、取得したＮ個のトラックデータＴｒａｃｋをＲＡＭ１９の記憶領域ＴＲ２〜ＴＲＮ＋１に各々格納する（Ｓ１００）。
【００２１】
次に、ＣＰＵ２０は、トラックデータ選択処理を行う（Ｓ１１０）。トラックデータ選択処理は、記憶領域ＴＲ２〜ＴＲＮ＋１に格納したトラックデータＴｒａｃｋの各々について、拍のタイミングに位置する「ノートオン」のイベントデータの数を集計し、記憶領域ＴＲ２〜ＴＲＮ＋１に格納したトラックデータＴｒａｃｋのうち集計した数が最も多かったものを選択する処理である。
【００２２】
ある１つの記憶領域ＴＲｎに格納された１つのトラックデータＴｒａｃｋに着目すると、このトラックデータ選択処理では、ＣＰＵ２０は、記憶領域ＴＲｎのトラックデータＴｒａｃｋの先頭からデルタタイムを順次累算した累算値ＡＣＭｋを求めていき、その累算値ＡＣＭｋが単位演奏時間Ｔの整数倍の長さに相当するティック数と一致する度に、その累算値ＡＣＭｋに最後に加えたデルタタイムの直後の「ノートオン」のイベントデータを拍のタイミングに位置する「ノートオン」のイベントデータであると判定し、カウント値ＣＮＴｋを１だけ増加する。この処理をトラックデータＴｒａｃｋの最後のデルタタイムの累算を終えるまで継続し、最後のデルタタイムを累算し終えた時点におけるカウント値ＣＮＴｋを、当該トラックデータＴｒａｃｋにおける拍のタイミングに対応した「ノートオン」のイベントデータの個数とする。このような処理を、記憶領域ＴＲ２〜ＴＲＮ＋１の各トラックデータＴｒａｃｋについて、実行する。そして、トラックデータ選択処理では、ＣＰＵ２０は、記憶領域ＴＲ２〜ＴＲＮ＋１に格納したトラックデータＴｒａｃｋのうち「ノートオン」のイベントデータの最終的なカウント値ＣＮＴｋが最も多かったものを選択する。
【００２３】
次に、ＣＰＵ２０は、ステップＳ１１０で選択したトラックデータＴｒａｃｋの複製をＲＡＭ１９の記憶領域ＴＲ１に格納し（Ｓ１２０）、非ノートオンイベント消去処理を行う（Ｓ１３０）。非ノートオンイベント消去処理は、記憶領域ＴＲ１における「ノートオン」でないイベントデータのすべてを消去する処理である。非ノートオンイベント消去処理では、ＣＰＵ２０は、図４に示すように、記憶領域ＴＲ１における「ノートオン」でないイベントデータの直前のデルタタイムをその直後のデルタタイムに加算するとともに、そのイベントデータと直前のデルタタイムを消去する。
【００２４】
次に、ＣＰＵ２０は、ノートオンイベント修正処理を行う（Ｓ１４０）。ノートオンイベント修正処理は、記憶領域ＴＲ１における「ノートオン」のイベントデータの中から各拍のタイミングに対応した「ノートオン」のイベントデータを探索し、ある拍のタイミングに対応した「ノートオン」のイベントデータが複数ある場合にはそれらのうち１つを除いた残りのイベントデータを消去し、ある拍のタイミングに対応した「ノートオン」のイベントデータが欠けている場合にはその欠けている拍のタイミングに対応した「ノートオン」のイベントデータを補う処理である。
【００２５】
より具体的に説明すると、ノートオンイベント修正処理では、ＣＰＵ２０は、ある拍のタイミングに対応した「ノートオン」のイベントデータの数が２つ以上である場合、それらの複数のイベントデータのうち２番目以降に記述されたイベントデータと各々の直前のデルタタイムを消去する。また、ノートオンイベント修正処理では、ＣＰＵ２０は、ある拍のタイミングに対応した「ノートオン」のイベントデータの数が０である場合、図５に示すように、その拍の１つ前の拍のタイミングに対応した「ノートオン」のイベントデータの後に、単位演奏時間Ｔと同じ長さのティック数を示すデルタタイム（図５の例では、Ｔ＝４８０ティックとする）と当該１つ前の拍のタイミングに対応した「ノートオン」のイベントデータの複製を挿入し、挿入したイベントデータの直後のデルタタイムから単位演奏時間Ｔに相当するティック数を減算する。
【００２６】
次に、ＣＰＵ２０は、記憶領域ＴＲ２〜ＴＲＮ＋１における最初のデルタタイムを単位演奏時間Ｔの半分の時間だけ長いティック数を示すデルタタイムに書き換える（Ｓ１５０）。すなわち、記憶領域ＴＲ２〜ＴＲＮ＋１における一連のイベントデータの各々の実行タイミングを記憶領域ＴＲ１における一連のイベントデータの各々の実行タイミングに対して半拍分だけ遅らせる操作を行う。
ＣＰＵ２０は、記憶領域ＴＲ１におけるすべてのイベントデータのチャネル番号を、音源５３の発音チャネル１２７のチャネル番号である「１２７」に置き換える（Ｓ１６０）。
【００２７】
以上の処理が終了すると、演奏者は、操作部１３の操作により、演奏制御処理の実行を指示する。演奏制御装置１０のＣＰＵ２０は、演奏制御処理の実行指示が与えられたとき、１ティックの時間長Ｔｉｃｋの初期値（たとえば、この初期値を１／４８０（秒）とする）を決定する。以後、ＣＰＵ２０は、時間長Ｔｉｃｋが経過する度にティック数をカウントし、このティック数を用いて記憶領域ＴＲｎ（ｎ＝１〜Ｎ＋１）の各々におけるデルタタイムの経過を監視しつつ図６に示す一連の処理を実行する。
【００２８】
図６において、ＣＰＵ２０は、電子ピアノ５０におけるＬＥＤ３−ｉ（ｉ＝１〜８８）のうち最初に押鍵すべき鍵１−ｉと対応するＬＥＤ３−ｉを発光させる（Ｓ２００）。より具体的には、ＣＰＵ２０は、記憶領域ＴＲ１における一連のイベントデータ（発音チャネル１２７を供給先とするイベントデータ）のうちの最初のイベントデータをその直前のデルタタイムが示す実行タイミングに合わせて電子ピアノ５０に供給する。
【００２９】
電子ピアノ５０のＣＰＵ６０は、演奏制御装置１０から発音チャネル１２７を供給先とするイベントデータを取得すると、そのイベントデータからノートナンバＮｕｍとゲートタイムＧｔｍを取り出し、ゲートタイムＧｔｍが示す時間長の間、ノートナンバＮｕｍを変換した鍵番号の鍵１−ｉと対応するＬＥＤ３−ｉへ駆動信号を出力し、ＬＥＤ３−ｉを発光させる。
【００３０】
演奏者は、ＬＥＤ３−ｉ（ｉ＝１〜８８）のうちのいずれかのＬＥＤ３−ｉが発光すると、そのＬＥＤ３−ｉが指示する鍵１−ｉを押鍵する。電子ピアノ５０のＣＰＵ６０は、鍵１−ｉ（ｉ＝１〜８８）のうちのいずれかが押鍵されたとき、押鍵された鍵１−ｉの下の光センサ２−ｉから出力されるアナログ信号に基づいてその鍵１−ｉを検出し、検出した鍵１−ｉの鍵番号を変換したノートナンバＮｕｍをインターフェース５１を介して演奏制御装置１０へ返信する。
【００３１】
ＣＰＵ２０は、発音チャネル１２７を供給先とするイベントデータを電子ピアノ５０へ供給した後、押鍵待ちステートに遷移する（Ｓ２１０）。押鍵待ちステートでは、ＣＰＵ２０は、ティック数のカウントを中断し、発音チャネル１２７を供給先として電子ピアノ５０へ供給したイベントデータのノートナンバＮｕｍと同じノートナンバＮｕｍが演奏制御装置１０から返信されるのを待つ。そして、ＣＰＵ２０は、電子ピアノ５０へ出力したイベントデータのものと同じノートナンバＮｕｍが返信されると、ティック数のカウントを再開し、テンポ調整処理を行う（Ｓ２２０）。
【００３２】
テンポ調整処理は、光センサ２−ｉの最新の発光によって押鍵が指示された鍵１−ｉを演奏者が押鍵した時刻とその前の発光によって押鍵が指示された鍵１−ｉを演奏者が押鍵した時刻との時間差を求め、この時間差と単位演奏時間Ｔに相当するティック数とが等しくなるように１ティックの時間長Ｔｉｃｋを伸縮する処理である。ここで、演奏制御処理が開始された直後は光センサ２−ｉの発光回数が１回であるため、鍵１−ｉを演奏者が押鍵した時刻の時間差が求まらない。よって、ＣＰＵ２０は、演奏制御処理が開始された後の最初のステップＳ２２０をスキップし、時間長Ｔｉｃｋの初期値（１／４８０（秒））を維持したまま次のステップに進み、次回以降のステップＳ２２０においてテンポ調整処理による時間長Ｔｉｃｋの更新を行う。
【００３３】
ＣＰＵ２０は、記憶領域ＴＲ２〜ＴＲＮ＋１における一連のイベントデータの中に未だ電子ピアノ５０へ供給されていないイベントデータがあるかを判断する（Ｓ２３０）。
ＣＰＵ２０は、ステップＳ２３０において、記憶領域ＴＲ２〜ＴＲＮ＋１におけるすべてのイベントデータを電子ピアノ５０へ供給したと判断した場合（Ｓ２３０：Ｎｏ）、演奏制御処理を終了する。また、ＣＰＵ２０は、ステップＳ２３０において、未だ電子ピアノ５０へ供給されていないイベントデータがあると判断した場合（Ｓ２３０：Ｙｅｓ）、ステップＳ２４０とステップＳ２５０を実行してからステップＳ２１０に戻り、以降の処理を繰り返す。
【００３４】
ステップＳ２４０において、ＣＰＵ２０は、電子ピアノ５０における音源５３に演奏音を発音させる（Ｓ２４０）。より具体的に説明すると、ＣＰＵ２０は、演奏制御処理が開始された後の最初のステップＳ２４０では、記憶領域ＴＲ２〜ＴＲＮ＋１における一連のイベントデータ（発音チャネルｃｈ（ｃｈ≠１２７）を供給先とするイベントデータ）のうちの最初の単位演奏時間Ｔ分のイベントデータをそれらの直前のデルタタイムが示す実行タイミングに合わせて電子ピアノ５０へ供給する。そして、次回以降のステップＳ２４０では、記憶領域ＴＲ２〜ＴＲＮ＋１における後続のイベントデータへと処理対象を単位演奏時間Ｔ分ずつシフトさせながら同様の処理を行う。
【００３５】
電子ピアノ５０のＣＰＵ６０は、演奏制御装置１０から発音チャネルｃｈ（ｃｈ≠１２７）を供給先とするイベントデータを取得すると、そのイベントデータを音源５３へそのまま転送し、音源５３にそのイベントデータの指示に従った発音チャネルｃｈ（ｃｈ≠１２７）の音を発生させる。
【００３６】
ステップＳ２５０において、ＣＰＵ６０は、電子ピアノ５０におけるＬＥＤ３−ｉ（ｉ＝１〜８８）のうち次に押鍵すべき鍵１−ｉと対応するＬＥＤ３−ｉを発光させる（Ｓ２５０）。より具体的に説明すると、ＣＰＵ２０は、演奏制御処理が開始された後の最初のステップＳ２５０では、記憶領域ＴＲ１における一連のイベントデータ（発音チャネル１２７を供給先とするイベントデータ）のうち２番目のイベントデータをその直前のデルタタイムが示す実行タイミングに合わせて電子ピアノ５０へ供給する。そして、次回以降のステップＳ２５０では、記憶領域ＴＲ１における後続のイベントデータへと処理対象を１つずつシフトさせながら同様の処理を行う。
【００３７】
電子ピアノ５０のＣＰＵ６０が、演奏制御装置１０から発音チャネル１２７を供給先とするイベントデータを取得する度にそのノートナンバＮｕｍを変換した鍵番号の鍵１−ｉの前のＬＥＤ３−ｉを発光させることは、上述した通りである。
【００３８】
ＣＰＵ６０は、ステップＳ２１０→ステップＳ２２０→ステップＳ２３０→ステップＳ２４０→ステップＳ２５０→ステップＳ２１０というループ処理をステップＳ２３０の判断結果が「Ｎｏ」となるまで繰り返す。
図７に示すように、このループ処理が繰り返されている間、電子ピアノ５０では、記憶領域ＴＲ１における一連のイベントデータをノートナンバＮｕｍを変換した鍵番号ｉのＬＥＤ−ｉが順に発光する。そして、ＬＥＤ−ｉの発光によって押鍵が指示された鍵１−ｉを演奏者が押鍵する度に、記憶領域ＴＲ２〜ＴＲＮ＋１における一連のイベントデータの指示に従った演奏音が、音源５３における発音チャネルｃｈ（ｃｈ≠１２７）の音として単位演奏時間Ｔ（図７の例では、単位演奏時間Ｔは４分音符２つ分の長さとする）分ずつ発音される。よって、演奏者は、和音などの難しい演奏箇所を含む曲を自分自身が演奏しているかのような気分を味わうことができ、飽きることなくその演奏を楽しむことができる。
【００３９】
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態があり得る。例えば、以下の通りである。
（１）上記実施形態における曲データ編集処理では、ＣＰＵ２０は、記憶領域ＴＲ２〜ＴＲＮ＋１に格納した演奏制御トラックデータの各々について、拍のタイミングに位置する「ノートオン」のイベントデータの数を集計し、記憶領域ＴＲ２〜ＴＲＮ＋１に格納した演奏制御トラックデータのうち集計数が最も多かったものを選択し、この選択した演奏制御トラックデータの複製に基づいて押鍵案内制御トラックデータを生成した。しかし、打楽器のような明らかに拍の数が少ない楽器や限られた時間帯しか演奏されない楽器のパート譜の演奏制御トラックデータを前もって選択候補から除外し、その種のパート譜の演奏制御トラックデータを除いた残りの演奏制御トラックデータのなかから拍のタイミングに位置する「ノートオン」のイベントデータの集計数が最も多かったものを選択してもよい。
【００４０】
（３）上記実施形態におけるノートオンイベント修正処理では、ＣＰＵ２０は、ある拍のタイミングに対応した「ノートオン」のイベントデータの数が２つ以上である場合、それらの複数のイベントデータのうち２番目以降に記述されたイベントデータと各々の直前のデルタタイムを消去した。しかし、それら複数のうち最も高音（または、低音）の音名のノートナンバＮｕｍを含むイベントデータを選択し、その選択したイベントデータ以外のイベントデータを消去してもよい。また、複数のイベントデータのうち最も高音の音名のノートナンバＮｕｍと最も低音の音名のノートナンバＮｕｍを含むイベントデータのいずれを消去せずに残すかを操作部１３の操作によって指定できるようにしてもよい。
【００４１】
（４）上記実施形態において、１つの演奏制御トラックデータのみを有する曲データｍｄを曲データ記憶メモリ１７に記憶してもよい。この場合、曲データ編集処理では、この曲データｍｄの唯一の演奏制御トラックデータの複製に基づいて押鍵案内制御トラックデータを生成してもよい。
【００４２】
（５）上記実施形態において、演奏制御装置１０の制御プログラム２２を、曲データ編集処理だけをＣＰＵ２３に実行させるプログラムとしてもよい。そして、このプログラムを実装した演奏制御装置１０は、曲データ編集処理では、曲データｍｄに含まれるＮ個の演奏制御トラックデータの中の１つの演奏制御トラックデータを選択し、選択した演奏制御トラックデータに基づいて押鍵案内制御トラックデータを生成し、曲データｍｄにおけるＮ個の演奏制御トラックデータに押鍵案内制御トラックデータを追加した曲データｍｄ’を生成するとよい。
【００４３】
（６）上記実施形態では、曲データｍｄにおける「ノートオン」のイベントデータは、ノートナンバＮｕｍ，ベロシティＶｅｌ，ゲートタイムＧｔｍの３種類のパラメータを含んでいた。しかし、「ノートオン」のイベントデータをノートナンバＮｕｍとベロシティＶｅｌの２つのパラメータのみを含むデータとし、曲データｍｄにおいて「ノートオン」のイベントデータと「ノートオフ」のイベントデータの各対をゲートタイムＧｔｍに相当するデルタタイムをあけて記述するようにしてもよい。この場合における非ノートオンイベント消去処理では、記憶領域ＴＲ１における「ノートオン」と「ノートオフ」以外のイベントデータのすべてを消去するとよい。
【符号の説明】
【００４４】
１…鍵、２…光センサ、３…ＬＥＤ、１０…演奏制御装置、１１，１２，５１，５２…インターフェース，１３…操作部、１５，５５…制御部、１８，５８…ＲＯＭ、１９，５９…ＲＡＭ、２０，６０…ＣＰＵ、２２，６２…制御プログラム、５０…電子ピアノ、５３…音源、５４…スピーカ
【図１】
2010271436.tif 000003
【図２】
2010271436.tif 000004
【図３】
2010271436.tif 000005
【図４】
2010271436.tif 000006
【図５】
2010271436.tif 000007
【図６】
2010271436.tif 000008
【図７】
2010271436.tif 000009