(57)【要約】【課題】演奏操作のミスが有っても演奏が乱れずに、楽器の操作に不慣れな者であっても安心して演奏を楽しめる電子楽器を提供する。【解決手段】今回のノートオンメッセージの入力タイミングと前回のノートオンメッセージの入力タイミングの時間差を算出する。この時間差が所定の閾値未満であれば、時間差に基づいてテンポを決定する。決定したテンポで演奏曲データを読み出し、各楽音の発音指示データを決定する。時間差が所定の閾値未満であれば、演奏操作のミスによる打鍵であると判断して、今回のノートオンメッセージの入力を無視し、テンポ決定を行わない。【選択図】図４
2007256631.tif 000002
【特許請求の範囲】
【請求項１】
使用者の演奏操作により、自動演奏の演奏タイミングの指示情報を含む演奏操作情報を発生する演奏操作子と、
各楽音の音符情報のシーケンスデータからなる演奏曲データを記憶する記憶手段と、
前記演奏操作情報の発生毎に、その前に発生した演奏操作情報との時間差に基づいて自動演奏のテンポを算出し、このテンポで前記演奏曲データを前記記憶手段から読み出す演奏制御手段と、
を備えた演奏制御装置であって、
前記演奏制御手段は、前記演奏操作情報の発生時間差が所定の閾値未満であれば、今回発生した演奏操作情報を前記テンポの算出対象から除外する演奏制御装置。
【請求項２】
前記演奏制御手段は、前記発生時間差に基づいて前記閾値を更新する請求項１に記載の演奏制御装置。
【請求項３】
前記演奏制御手段は、前記発生時間差が前記閾値未満であった場合、今回発生した演奏操作情報を操作ミスによる演奏操作情報であるとしてカウントし、前記記憶手段にその発生回数を含む情報を記録する請求項１、または請求項２に記載の演奏制御装置。
【請求項４】
前記演奏制御部は、前記記憶手段に記録された操作ミスによる演奏操作情報の回数を含む情報に基づいて前記閾値を決定する請求項３に記載の演奏制御装置。
【請求項５】
前記演奏操作子は、複数の鍵を有する演奏操作子であって、使用者の演奏操作により、各鍵毎に異なるノートナンバを有する演奏操作情報を発生し、
前記演奏制御手段は、前記演奏操作情報の発生時間差が所定の閾値未満で、かつ、今回発生した演奏操作情報のノートナンバが、前回発生した演奏操作情報のノートナンバと隣接する場合、今回発生した演奏操作情報を前記テンポの算出対象から除外する請求項１乃至請求項４のいずれかに記載の演奏制御装置。
【請求項６】
前記演奏操作子は、前記使用者の演奏操作毎に、当該演奏操作の開始時にノートオンメッセージを、当該演奏操作の終了時にノートオフメッセージを、前記演奏操作情報に含めて発生し、
前記演奏制御手段は、前記演奏操作情報の発生時間差が所定の閾値未満で、かつ、前回発生した演奏操作情報のノートオフメッセージが発生していない場合に、今回発生した演奏操作情報を前記テンポの算出対象から除外する請求項１乃至請求項５のいずれかに記載の演奏制御装置。
【請求項７】
使用者の演奏操作により、自動演奏の演奏タイミングの指示情報を含む演奏操作情報を発生する演奏操作子と、
各楽音の音符情報のシーケンスデータからなる演奏曲データを記憶する記憶手段と、を備えた演奏制御装置に、
前記演奏操作情報の発生毎に、その前に発生した演奏操作情報との時間差に基づいて自動演奏のテンポを算出し、このテンポで前記演奏曲データを前記記憶手段から読み出す処理と、
前記演奏操作子が発生した演奏操作情報の発生時間差が所定の閾値未満であれば、今回発生した演奏操作情報を無視する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、演奏者の操作に基づいて、演奏曲データを所定時間長シーケンスし、自動演奏を行う演奏制御装置、およびプログラムに関する。
【背景技術】
【０００２】
従来より、演奏者の操作に対して楽音を発生する電子楽器が知られている。このような電子楽器は、例えばピアノ等をモデルとしており、自然楽器のピアノと同様の演奏操作を行うものが一般的であった。この様な電子楽器は演奏に熟練を要し、習熟に時間がかかるものである。
【０００３】
電子楽器（電子ピアノ）は、演奏者の打鍵の速度を検出し、この打鍵の速度に応じた楽音を発音する。電子ピアノは、打鍵の速度を検出するためのセンサを各鍵に設けている。このセンサは、複数の接点のオン／オフ時間を測定したり、弾性変形する部材を接点に用いてその挙動を利用することで打鍵の速度を検出する。しかし、センサに接点を用いることでチャタリング（オン／オフの繰り返し挙動）が発生してしまう。そこで、閾値範囲内の短時間のオン／オフ切替えであればこれを無視するという方法（特許文献１参照）が提案されている。
【０００４】
一方、電子楽器は、熟練者から初心者まで幅広い演奏者が使用するものである。熟練者は、自然楽器のように演奏操作に応じた様々な演奏表現をすることができる電子楽器を望んでいる。逆に初心者は容易な操作で演奏することができる電子楽器を望んでいる。
【０００５】
そこで、演奏者が簡易な操作（手で振る操作）を行うと、ある程度の長さの楽音（例えば１／２小節程度）が自動演奏されるもの（特許文献２参照）が提案されている。特許文献２には、複数の子機と１台の親機とで構成される楽器が記載されている。この様な電子楽器は、演奏者の演奏操作態様に応じて楽音を発音する。すなわち、演奏者が操作子を用いて演奏操作を行うと、子機から親機に、演奏者の演奏操作の速度等の情報が送信され、親機においては、その子機に割り当てたパートの楽音データを読み出し、上記の演奏者速度に基づいて楽音の音色等を決定する。
【０００６】
また、演奏操作速度に上限値を設け、所定の閾値以上の速度で演奏操作がされた場合、上限値の速度として処理する装置（特許文献３参照）が提案されている。この閾値を可変とすることで、演奏操作に対する追従度を可変とし、習熟度に合わせて音楽特性制御の難易度（安定度または音楽表現力）を調節することができるものである。
【特許文献１】特開２００２−２４４６６２号公報
【特許文献２】特開２０００−２７６１４１号公報
【特許文献３】特許第３７２０００４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように、近年は楽器の操作に不慣れな者が容易に演奏することができる楽器を実現することが望まれており、上記特許文献２の装置のような電子楽器において、各子機を電子ピアノとして用いることも考えられる。
【０００８】
しかし、各子機を電子ピアノとすると、初心者が演奏操作のミス（誤って隣の鍵を略同時に打鍵すること）をすることが考えられる。特許文献１の装置は、打鍵チャタリングを防止するものであり、演奏操作のミスを防止するものではない。また、この様な鍵盤は接点構造が複雑であり、判定アルゴリズムが複雑である。
【０００９】
特許文献３の電子楽器は、所定の閾値以上の速度で演奏操作がされた場合、上限値の速度として処理し、テンポの変化を緩和するものであるが、やはり上記のような演奏操作のミスを防止するものではなく、略同時に打鍵が有るとテンポが大きく変化し、演奏が乱れてしまう。
【００１０】
この発明は、演奏操作のミスが有っても演奏が乱れずに、楽器の操作に不慣れな者であっても安心して演奏を楽しめる演奏装置、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
この発明の演奏制御装置は、使用者の演奏操作により、自動演奏の演奏タイミングの指示情報を含む演奏操作情報を発生する演奏操作子と、各楽音の音符情報のシーケンスデータからなる演奏曲データを記憶する記憶手段と、前記演奏操作情報の発生毎に、その前に発生した演奏操作情報との時間差に基づいて自動演奏のテンポを算出し、このテンポで前記演奏曲データを前記記憶手段から読み出す演奏制御手段と、を備えた演奏制御装置であって、前記演奏制御手段は、前記演奏操作情報の発生時間差が所定の閾値未満であれば、今回発生した演奏操作情報を前記テンポの算出対象から除外することを特徴とする。
【００１２】
この発明では、演奏操作子を用いて演奏者が演奏操作（例えば打鍵）を行うと、演奏タイミングの指示情報を含む操作信号を発生する。この演奏タイミングは、１拍毎、２拍毎、１／２拍毎等、一定間隔毎に、例えばガイド役であるファシリテータの指揮で示される。演奏制御装置は、操作信号と演奏曲データ（例えばＭＩＤＩデータ）に基づいて、各楽音の音量、音質等を決定する。ここで、演奏操作により操作信号が生成されたとき、前回操作信号が生成されてからの時間差を算出する。この算出した時間差が所定の閾値以上であれば、この時間差に基づいて楽音のテンポを決定し、各楽音の音量、強さ等を決定する。閾値未満であれば操作ミスによる連続打鍵であると判断し、上記各楽音の音量、強さ等の決定を行わない。
【００１３】
この発明は、さらに、前記演奏制御手段は、前記時間差に基づいて前記閾値を更新することを特徴とする。
【００１４】
この発明では、演奏中であっても前回操作信号が生成されてからの時間差に基づいて閾値を更新する。例えば、時間差の半分を閾値とすればよい。
【００１５】
この発明は、さらに、前記演奏制御手段は、前記発生時間差が前記閾値未満であった場合、今回発生した演奏操作情報を操作ミスによる演奏操作情報であるとしてカウントし、前記記憶手段にその発生回数を含む情報を記録することを特徴とする。
【００１６】
この発明では、時間差が閾値未満である操作ミスの回数をカウントし、ログとして記録しておく。例えばファシリテータは、このログを参照すれば操作ミスの回数を知ることができ、演奏者毎の習熟度を把握することができる。なお、操作ミスの回数以外にもその操作ミスの発生時刻、その鍵（ノートナンバ）、打鍵速度（ベロシティ）、その時の演奏曲、等の情報を記録するようにしてもよい。
【００１７】
この発明は、さらに、前記演奏制御部は、前記記憶手段に記録された操作ミスによる演奏操作情報の回数を含む情報に基づいて前記閾値を決定することを特徴とする。
【００１８】
この発明では、具体的には、ログとして記録されている操作ミスの回数に基づいて閾値を決定する。例えば操作ミスの多い場合は、閾値を大きくして、操作ミスによるテンポ変化が無く演奏が乱れないようにする。
【００１９】
この発明は、さらに、前記演奏操作子は、複数の鍵を有する演奏操作子であって、使用者の演奏操作により、各鍵毎に異なるノートナンバを有する演奏操作情報を発生し、前記演奏制御手段は、前記演奏操作情報の発生時間差が所定の閾値未満で、かつ、今回発生した演奏操作情報のノートナンバが、前回発生した演奏操作情報のノートナンバと隣接する場合、今回発生した演奏操作情報を前記テンポの算出対象から除外することを特徴とする。
【００２０】
この発明では、演奏操作子は複数の鍵を有する。演奏者が各鍵を打鍵すると、それぞれの鍵に応じたノートナンバが上記操作信号に含まれて発生する。ここで、演奏操作により操作信号が生成されたとき、前回操作信号が生成されてからの時間差を算出する。この算出した時間差が所定の閾値以上であれば、この時間差に基づいて楽音のテンポを決定し、各楽音の音量、強さ等を決定する。閾値未満であればさらに、今回の操作信号におけるノートナンバと前回の操作信号におけるノートナンバを比較し、ノートナンバが隣接していなければ、操作ミスによる打鍵でないとしてこの時間差に基づいて楽音のテンポを決定し、各楽音の音量、強さ等を決定する。操作ミスで誤打鍵される場合は、隣接する鍵が押されるため、操作ミスの判断を前回の打鍵の隣接鍵に限定すればよい。
【００２１】
この発明は、さらに、前記演奏操作子は、前記使用者の演奏操作毎に、当該演奏操作の開始時にノートオンメッセージを、当該演奏操作の終了時にノートオフメッセージを、前記演奏操作情報に含めて発生し、前記演奏制御手段は、前記演奏操作情報の発生時間差が所定の閾値未満で、かつ、前回発生した演奏操作情報のノートオフメッセージが発生していない場合に、今回発生した演奏操作情報を前記テンポの算出対象から除外することを特徴とする。
【００２２】
この発明では、演奏者が各鍵を打鍵すると、ノートオンメッセージが発生し、演奏者が鍵を離すと、ノートオフメッセージが発生する。ここで、演奏操作により操作信号が生成されたとき、前回操作信号が生成されてからの時間差を算出する。この算出した時間差が所定の閾値以上であれば、この時間差に基づいて楽音のテンポを決定し、各楽音の音量、強さ等を決定する。閾値未満であればさらに、前回の演奏操作時のノートオフメッセージが発生しているかを判断し、ノートオフメッセージが発生していなければ、操作ミスによる連続打鍵であると判断し、上記各楽音の音量、強さ等の決定を行わない。操作ミスで誤打鍵される場合は、隣接する鍵が略同時で押されるため、操作ミスの判断を前回の演奏操作時のノートオフメッセージが発生していない場合に限定すればよい。
【００２３】
この発明のプログラムは、使用者の演奏操作により、自動演奏の演奏タイミングの指示情報を含む演奏操作情報を発生する演奏操作子と、各楽音の音符情報のシーケンスデータからなる演奏曲データを記憶する記憶手段と、を備えた演奏制御装置に、前記演奏操作情報の発生毎に、その前に発生した演奏操作情報との時間差に基づいて自動演奏のテンポを算出し、このテンポで前記演奏曲データを前記記憶手段から読み出す処理と、前記演奏操作子が発生した演奏操作情報の発生時間差が所定の閾値未満であれば、今回発生した演奏操作情報を無視する処理と、を実行させることを特徴とする。
【発明の効果】
【００２４】
この発明によれば、演奏操作間の時間差を検出し、この時間差が閾値未満であれば操作ミスによる連続打鍵であると判断し、この演奏操作を無視して楽音のテンポ等の決定処理を行わない構成としたことで、演奏操作のミスが有っても演奏が乱れずに、楽器の操作に不慣れな者であっても安心して演奏を楽しむことができる。
【発明を実施するための最良の形態】
【００２５】
図面を参照して、本発明の実施形態に係る合奏システムについて説明する。図１は、本実施形態に係る合奏システムの構成を示すブロック図である。この合奏システムは、コントローラ１と、コントローラ１にＭＩＤＩインタフェースボックス３を介して接続される複数（同図においては６台）の演奏端末２（２Ａ〜２Ｆ）と、を備えている。この実施形態では、ＭＩＤＩインタフェースボックス３を介することで、コントローラ１に各演奏端末２が別々のＭＩＤＩ系統で接続されている。なお、ＭＩＤＩインタフェースボックス３はコントローラ１とＵＳＢで接続されている。
【００２６】
本実施形態に係る合奏システムでは、コントローラ１が各演奏端末２Ａ〜２Ｆで異なった演奏パートの自動演奏を行うように各演奏端末２の演奏を制御し、これによって合奏が行われる。演奏パートとは、同一の合奏曲を構成する各旋律等である。演奏パートは、例えば、１または複数のメロディパート、リズムパート、異なった楽器による複数の伴奏パート等がある。
【００２７】
本合奏システムでは、各演奏端末２が完全に自動演奏を行うのではなく、各演奏パートの所定時間長のデータ毎（例えば１／２小節の区分データ毎）に各演奏端末２の演奏者による演奏操作によって音量、強さ、タイミング、及びテンポの指示等が行われる。本合奏システムでは、各演奏者が特定の操作タイミングで演奏操作を行った場合に、好適な演奏タイミングで合奏が行われるようになっている。
【００２８】
この操作タイミングは各演奏端末２で共通にしてもよく、例えばガイド役であるファシリテータ（例えば演奏端末２Ａの演奏者）の演奏操作、或いは手足等の身体表現を用いた指揮によって操作タイミングを各演奏者に示すようにしてもよい。示された操作タイミングに従って各演奏者が演奏操作を行うことができた場合に、好適な合奏が行われる。
【００２９】
演奏端末２は、例えば電子ピアノ等の電子鍵盤楽器により構成される。演奏端末２は、演奏者の演奏操作（例えば鍵盤におけるいずれか１つの鍵を打鍵する操作）を受け付ける。演奏端末２は、コントローラ１との通信機能を備え、操作情報（例えばＭＩＤＩデータにおけるノートオンメッセージ）を示す操作信号をコントローラ１に送信する。この操作情報には、音高を示す情報が含まれているが、本実施形態のコントローラ１は、音高を示す情報は無視する（フィルタをかける）ことで、操作情報を演奏操作のタイミングを示すものとして用いる。このため、何れの鍵が打鍵されても同じ強さで打鍵された場合には同一の操作信号がコントローラ１に送信される。これによって、演奏者は何れか１の鍵を打鍵するだけで演奏を行うことができ、鍵盤楽器の演奏に不慣れな演奏者であっても演奏を行うことが可能になっている。
【００３０】
コントローラ１は、例えばパーソナルコンピュータにより構成され、このパーソナルコンピュータに搭載されたソフトウェアによって各演奏端末２の演奏動作の制御を行う。具体的には、コントローラ１は複数の演奏パートからなる演奏曲データを記憶している。コントローラ１は、合奏スタート前に、各演奏パート（または複数の演奏パート）を予め各演奏端末２Ａ〜２Ｆに割り当てる。コントローラ１は各演奏端末２との通信機能を備え、演奏端末２から演奏操作を示す操作信号を入力したときに、この操作信号に基づいて、出力元の演奏端末２に割り当てられている演奏パートのテンポ・タイミングを決定する。そして、この決定したテンポ・タイミングで割り当てられた演奏パートの所定時間長の演奏曲データをシーケンスし、発音指示データとして演奏端末２に送信する。発音指示データには、発音すべきタイミング、音長、音量、音色、効果、音高変化（ピッチベンド）や、テンポ等が含まれる。
【００３１】
各演奏端末２では、内蔵音源を用いて、発音指示データに従って異なった演奏パートの自動演奏が行われる。これによって、各演奏者が演奏操作によって指示した強さで、かつコントローラ１によって割り当てられた演奏パートで各演奏端末２によって演奏が行われ、この結果として合奏が行われる。なお、演奏端末２は電子ピアノに限らず、電子ギター等他の形態の電子楽器であってもよい。無論、外観上は自然楽器に限らず単にボタン等の操作子を備えた端末であってもよい。
【００３２】
なお、演奏端末２が音源を内蔵する必要はなく、独立した音源をコントローラ１に接続してもよい。この場合、コントローラ１に接続する音源の数は１つであってもよいし、演奏端末２と同じ数であってもよい。演奏端末２と同じ数の音源を接続する場合、コントローラ１はそれぞれの音源と演奏端末２を対応付けて演奏曲データの各パートを割り当てるようにすればよい。
【００３３】
次に、コントローラ１と演奏端末２の構成について詳細に説明する。
図２は、コントローラ１の構成を示すブロック図である。同図に示すように、コントローラ１は、通信部１１、制御部１２、ＨＤＤ１３、ＲＡＭ１４、操作部１５、および表示部１６を備えている。制御部１２には通信部１１、ＨＤＤ１３、ＲＡＭ１４、操作部１５、および表示部１６が接続されている。
【００３４】
通信部１１は、演奏端末２と通信を行う回路部であり、ＵＳＢインタフェースを有している。このＵＳＢインタフェースには、ＭＩＤＩインタフェースボックス３が接続され、通信部１１はこのＭＩＤＩインタフェースボックス３及びＭＩＤＩケーブルを介して６台の演奏端末２と通信する。ＨＤＤ１３は、コントローラ１の動作用プログラムや、複数パートからなる演奏曲データを記憶している。
【００３５】
制御部１２は、ＨＤＤ１３に記憶されている動作用プログラムを読み出してワークメモリであるＲＡＭ１４に展開し、パート割り当て５０、シーケンス５１、および発音指示５２等の処理を実行する。パート割り当て５０は、演奏曲データの各演奏パートを複数の演奏端末２に割り当てる。シーケンス５１は、各演奏端末２から受信した操作信号に応じてテンポ・タイミングを決定し、決定したテンポ・タイミングで演奏曲データの各演奏パートをシーケンス（各音の音量、音色等を決定）する。発音指示５２は、シーケンス５１で決定した各音の音量、音色等を発音指示データとして演奏端末２に送信する。
【００３６】
操作部１５は、演奏者（主にファシリテータ）がこの演奏システムの動作指示を行うためのものである。ファシリテータは、操作部１５を操作し、例えば演奏する演奏曲データを指定したり、各演奏端末２の演奏パートを割り当てたりする。表示部１６は、所謂ディスプレイ（モニタ）であり、ファシリテータや各演奏者はこの表示部１６を見ながら演奏操作を行う。表示部１６には合奏を行うための演奏タイミング等が表示される。
【００３７】
制御部１２は、演奏操作のタイミングから次の演奏操作のタイミングに基づいて発音指示データのテンポを決定する。すなわち、各演奏端末２から受信した操作信号のうちノートオンメッセージの入力時間差に基づいてテンポを決定する。  なお、複数回（直近から数回前）の演奏操作について、移動平均を算出し、これに時間による重み付けを行うようにしてもよい。直近の演奏操作について最も重み付けを大きくし、過去の演奏操作になるほど重み付けを小さくする。このようにしてテンポを決定することで、ある演奏操作の時のみ前回との間隔が大きく変化したとしても突然にテンポが変化せず、曲の流れに応じて違和感無くテンポ変化を行うことができる。
【００３８】
図３は、演奏端末２の構成を示すブロック図である。同図に示すように、演奏端末２は、通信部２１、制御部２２、演奏操作子である鍵盤２３、音源２４、およびスピーカ２５を備えている。制御部２２には通信部２１、鍵盤２３、および音源２４が接続されている。また、音源２４にはスピーカ２５が接続されている。
【００３９】
通信部２１は、ＭＩＤＩインタフェースであり、ＭＩＤＩケーブルを介してコントローラ１と通信する。制御部２２は、演奏端末２を統括的に制御する。
鍵盤２３は、例えば６１鍵や８８鍵の鍵数を有し、５〜７オクターブの音域の演奏が可能であるが、この合奏システムでは鍵を区別せずにノートオン／ノートオフメッセージ、打鍵強さのデータを用いる。すなわち各鍵は、オン／オフを検出するセンサと打鍵強さを検出するセンサが内蔵されており、鍵盤２３は各鍵の操作態様（どの鍵がどのような強さで打鍵されたか等）に応じて操作信号を制御部２２に出力する。制御部２２は、入力された操作信号に基づき、通信部２１を介してコントローラ１にノートオンメッセージやノートオフメッセージを送信する。
【００４０】
音源２４は、制御部２２の制御（すなわち発音指示データ）に応じて楽音波形を生成し、音声信号としてスピーカ２５に出力するものである。スピーカ２５は、音源２４から入力された音声信号を再生し、楽音を発音する。なお、上述したように、音源とスピーカは演奏端末２に内蔵していなくともよい。音源とスピーカをコントローラ１に接続し、演奏端末２と異なる場所から楽音が発音されるようにしてもよい。各演奏端末２と同じ数の音源をコントローラ１に接続してもよいが、単一の音源を用いてもよい。
【００４１】
上記の動作では、鍵盤２３の各鍵を打鍵したとき、制御部２２はノートオン／ノートオフメッセージをコントローラ１に送信し、鍵盤２３によるノートメッセージではなく、コントローラ１からの指示に応じて楽音を発音（ローカルオフ）するが、上記の様な動作とは別に、一般的な電子楽器として使用することも無論可能である。鍵盤２３の各鍵を打鍵したとき、制御部２２はノートメッセージをコントローラ１に送信せずに、当該ノートメッセージに基づいて音源２４に楽音を発音（ローカルオン）するように指示することも可能である。ローカルオン、ローカルオフは使用者がコントローラ１の操作部１５を用いて切替えてもよいし、演奏端末２の端末操作部（図示せず）で切替えてもよい。また、一部の鍵のみローカルオフし、他の鍵はローカルオンとなるように設定することも可能である。
【００４２】
従来、コントローラ１の制御部１２は、ノートオンメッセージの受信時間差に基づいてテンポを決定していた。しかし、初心者が鍵盤２３のうち１つの鍵を打鍵すると、誤って隣の鍵まで打鍵してしまうことが多かった。この場合、短時間の間に複数のノートオンメッセージが送信され、極端にテンポが変更されることとなっていた。本実施形態は、ノートオンメッセージの受信時間差に閾値を設け、この閾値未満となる連続打鍵を無視することで演奏操作のミスが有ってもテンポが乱れずに、楽器の操作に不慣れな者であっても安心して演奏を楽しめることが特徴である。
【００４３】
以下、本実施形態における発音指示データの決定動作について説明する。図４は、演奏曲データ、演奏者の打鍵、ノートオンの受信時間差の関係を示す図である。同図において紙面横方向は時間の流れを示す。演奏者が演奏端末２の鍵盤２３の各鍵を打鍵すると、ノートオンメッセージがコントローラ１に送信され、これにより所定長（例えば１拍分）の発音指示データが決定され、楽音が発音される。
【００４４】
制御部１２は、ノートオンメッセージを受信すると、前回のノートオンメッセージ受信タイミング（打鍵１のタイミング）と今回のノートオンメッセージ受信タイミング（打鍵２のタイミング）の時間差Δｔ２を算出する。この時間差Δｔ２を所定の閾値Δｔ５（後に説明する）と比較する。打鍵間の時間差Δｔ２が所定の閾値Δｔ５以上であれば、今回の打鍵を正しい演奏操作であると判断し、タイミング・テンポを決定する。テンポは、時間差Δｔ２に基づいて決定しても良いが、前回の時間差Δｔ１との平均値としてもよいし、さらに過去の時間差を平均化してもよい。また、上述したように直近の時間差について最も重み付けを大きくし、過去の演奏操作による時間差になるほど重み付けを小さくするようにしてもよい。
【００４５】
そして決定したタイミング・テンポで１拍分の演奏曲データを読み出し、発音指示データを決定する。決定した発音指示データは演奏端末２に送信される。また、制御部１２は、時間差Δｔ２に基づいて閾値を更新する。更新した閾値が次回ノートオンメッセージが入力されたときの閾値Δｔ６となる。例えばΔｔ６＝Δｔ２／２とすればよい。すなわち、打鍵２の時に時間差Δｔ２と比較した閾値Δｔ５は、Δｔ５＝Δｔ１／２で表され、打鍵１のときに更新されていたものである。なお、閾値の更新方法は直近の打鍵時間差に基づいて求める例に限らず、過去の打鍵時間差の平均値に基づいて求めるようにしてもよい。また、１曲の演奏で固定であってもよいし、この固定値をファシリテータがマニュアルで変更できるようにしてもよい。
【００４６】
次に、同図において誤打鍵１（打鍵２の演奏操作をしたときに誤って打鍵されたもの）によるノートオンメッセージが入力されたとき、上記と同様に、前回のノートオンメッセージの受信タイミング（打鍵２のタイミング）と今回のノートオンメッセージの受信タイミング（誤打鍵１のタイミング）の時間差Δｔ４を算出する。この時間差Δｔ４を閾値Δｔ６と比較する。時間差Δｔ４が閾値Δｔ６未満であれば、操作ミスであると判断して今回のノートオンメッセージを無視する。したがって、このノートオンメッセージにおいてはテンポ・タイミングの決定がされず、発音指示データの決定もされない。無論、閾値の更新も行われない。
【００４７】
次の打鍵３によるノートオンメッセージが入力されたときは、打鍵２と打鍵３の時間差Δｔ３を算出し、この時間差Δｔ３と閾値Δｔ６を比較する。時間差Δｔ３が閾値Δｔ６以上であれば、この打鍵を正しい演奏操作であると判断し、タイミング・テンポを決定する。その結果、打鍵３によって発音指示データが決定される。また、時間差Δｔ３に基づいて閾値を更新する。次回のノートオンメッセージが入力されたときの閾値Δｔ７は、Δｔ７＝Δｔ３／２で更新される。
【００４８】
以上の制御部１２の発音指示データ決定動作についてフローチャートを用いて説明する。図５は、発音指示データ決定動作を示すフローチャートである。演奏端末２からノートオンメッセージが入力されることが、この動作のトリガとなる。まず、入力されたノートオンメッセージのタイミングと前回のノートオンメッセージの入力タイミングの時間差を算出する（ｓ１１）。なお、演奏開始時点の最初のノートオンメッセージの入力がされた場合、通常、前回のノートオンメッセージは入力されていないが、本実施形態においては以下のようにして、演奏開始時点の最初のノートオンメッセージの入力がされた場合の前回との時間差を算出する。
【００４９】
すなわち、合奏スタート前に各演奏パートを各演奏端末２Ａ〜２Ｆに割り当てられた後、ファシリテータの指示によって各演奏者が打鍵するとき、最初の数回の演奏タイミング（例えば４回分の打鍵）は、演奏曲データの読み出しをせずに、打鍵しても楽音を発しない（または「コン」というリズム音のみ発音する）ようにし、テンポ決定のためのノートオンメッセージの入力とする。この場合、後述する発音指示データ決定処理（ｓ１５）においては発音指示データの決定を行わない（または上記リズム音を発音するように決定する）ものである。したがって、５回目の演奏タイミングで初めて演奏曲データの読み出しをし、発音指示データが決定され、演奏が進行することとなる。なお、上記テンポ決定の動作のためのノートオンメッセージの入力のうち、最先のものについては、前回の演奏タイミングが存在しないため、ｓ１１で時間差算出はされない。
【００５０】
次に、制御部１２は、ｓ１１で算出した時間差が、所定の閾値以上であるか否かを判断する（ｓ１２）。閾値は、前回の演奏タイミングで更新された値によって決定（後述、ｓ１７の処理）されるようにしてもよいし、１曲の演奏で固定であってもよい。閾値以上であれば、今回の打鍵を正しい演奏操作であると判断し、ｓ１３〜ｓ１７の処理を行う。閾値未満であれば、操作ミスであると判断して図５の動作を終える。なお、上述したように、演奏パート割り当て後の最初のノートオンメッセージの入力（上記テンポ決定の動作のためのノートオンメッセージの入力のうち、最先のもの）については、前回の演奏タイミングが存在しないため、この判断においては正しい演奏操作であるとして、ｓ１３〜ｓ１７の処理を行う。
【００５１】
次に、制御部１２は、ノートオンメッセージ入力タイミングの時間差の移動平均を算出する（ｓ１３）。上述したように、直近の演奏操作について最も重み付けを大きくし、過去の演奏操作になるほど重み付けを小さくする重み付き移動平均を算出すればよい。その後、算出した移動平均値に基づいて所定時間長（例えば１拍分）のテンポ・タイミングを決定する（ｓ１４）。この決定したテンポ・タイミングで所定時間長の演奏曲データを読み出し、発音すべき楽音の音長、音量、音色、効果、音高変化や、テンポ等が含まれる発音指示データを決定する（ｓ１５）。この決定した発音指示データを演奏端末２に送信する（ｓ１６）。なお、上記テンポ決定の動作のためのノートオンメッセージ入力である場合は、発音指示データの決定を行わない（または上記リズム音を発音するように決定する）ものである。この場合、無論ｓ１４のテンポ決定はされない。
【００５２】
最後に、算出した移動平均値から閾値を更新する（ｓ１７）。上述したように、移動平均値の半分の時間を閾値として更新すればよい。なお、演奏パート割り当て後の最初のノートオンメッセージの入力については、移動平均値が算出されていないため、閾値の更新は行わない。あるいは、予め定めた所定の値に更新するようにしてもよい。また、１曲の演奏で固定である場合はこの閾値更新処理は実行しない。また、演奏曲データに記載されているテンポデータに基づいて、閾値の初期値が予め設定されるようにしてもよいし、ファシリテータがマニュアルで閾値の初期値を設定するようにしてもよい。この場合、最初の打鍵が検出されたタイミングより所定時間（例えば閾値の２倍）前に、仮想的に前回の打鍵が有ったとすればよい。このようにすることで、最初の打鍵時から誤打鍵検出を行うことができる。したがって、各演奏者は、最初の打鍵から演奏操作のミスを気にすることなく演奏を楽しめる。
【００５３】
以上のようにして、ノートオンメッセージ入力タイミングの時間差に閾値を設け、ノートオンメッセージの入力タイミングの時間差がこの閾値未満である場合はｓ１３〜ｓ１７の処理を行わない（すなわち無視する）ことで演奏操作のミスが有ってもテンポが乱れずに、楽器の操作に不慣れな者であっても安心して演奏を楽しめる。
【００５４】
なお、本実施形態は、以下のような変形例が可能である。図６は、変形例における演奏曲データ、演奏者の打鍵、ノートオンの受信時間差の関係を示す図である。同図（Ａ）は、演奏端末２から送信される音高を示す情報（ノートナンバ）を用いて操作ミスを検出する例について説明する図である。図５に示した時間関係と共通する部分については同一の時間記号（Δｔ１〜Δｔ７）を付し、その説明を省略する。
【００５５】
演奏者が演奏端末２の鍵盤２３の各鍵を打鍵すると、ノートオンメッセージがコントローラ１に送信される。このノートオンメッセージには、ノートナンバの情報が含まれている。例えば、打鍵１、打鍵２のノートオンメッセージにはノートナンバ６８の情報が含まれている。
【００５６】
制御部１２は、ノートオンメッセージを受信すると、前回のノートオンメッセージ受信タイミング（打鍵１のタイミング）と今回のノートオンメッセージ受信タイミング（打鍵２のタイミング）の時間差Δｔ２を算出する。この時間差Δｔ２を所定の閾値Δｔ５と比較する。打鍵間の時間差Δｔ２が所定の閾値Δｔ５以上であれば、今回の打鍵を正しい演奏操作であると判断し、タイミング・テンポを決定する。
【００５７】
そして決定したタイミング・テンポで１拍分の演奏曲データを読み出し、発音指示データを決定する。決定した発音指示データは演奏端末２に送信される。また、制御部１２は、時間差Δｔ２に基づいて閾値を更新する。更新した閾値が次回ノートオンメッセージが入力されたときの閾値Δｔ６となる。
【００５８】
次に、同図において誤打鍵１（打鍵２の演奏操作をしたときに誤って打鍵されたもの）によるノートオンメッセージが入力されたとき、上記と同様に、前回のノートオンメッセージの受信タイミング（打鍵２のタイミング）と今回のノートオンメッセージの受信タイミング（誤打鍵１のタイミング）の時間差Δｔ４を算出する。この時間差Δｔ４を閾値Δｔ６と比較する。時間差Δｔ４が閾値Δｔ６未満であれば、さらに、今回のノートオンメッセージ（誤打鍵１）に含まれるノートナンバを前回のノートオンメッセージ（打鍵２）に含まれるノートナンバと比較する。その結果、今回のノートオンメッセージ（誤打鍵１）のノートナンバが、前回の打鍵２のノートナンバ６８に隣接するノートナンバ６９（または６７）であれば、操作ミスであると判断して今回のノートオンメッセージを無視する。
【００５９】
次の打鍵３によるノートオンメッセージが入力されたときは、打鍵２と打鍵３の時間差Δｔ３を算出し、この時間差Δｔ３と閾値Δｔ６を比較する。時間差Δｔ３が閾値Δｔ６以上であれば、この打鍵を正しい演奏操作であると判断し、タイミング・テンポを決定する。その結果、打鍵３によって発音指示データが決定される。また、時間差Δｔ３に基づいて閾値を更新する。次回のノートオンメッセージが入力されたときの閾値Δｔ７は、Δｔ７＝Δｔ３／２で更新される。
【００６０】
次に、打鍵４によるノートオンメッセージが入力されたときは、打鍵３と打鍵４の時間差Δｔ８を算出し、この時間差Δｔ８と閾値Δｔ７を比較する。時間差Δｔ８が閾値Δｔ７未満であれば、さらに、今回のノートオンメッセージ（打鍵４）に含まれるノートナンバを前回のノートオンメッセージ（打鍵３）に含まれるノートナンバと比較する。その結果、今回のノートオンメッセージ（打鍵４）のノートナンバが、前回の打鍵３のノートナンバ６８に隣接しないノートナンバ（同図においては３８）であれば、正しい演奏操作であると判断してタイミング・テンポを決定する。その結果、打鍵４によって発音指示データが決定される。
【００６１】
このように、ノートオンメッセージの入力タイミングの時間差だけでなく、ノートナンバが隣接するか否かで操作ミスを検出するようにしてもよい。操作ミスで誤打鍵される場合は、隣接する鍵が押されるため、操作ミスの判断を前回の打鍵の隣接鍵に限定すればよい。このようにすることで、誤打鍵の判断をより正確に行うことができる。
【００６２】
図６（Ｂ）は、演奏端末２から送信されるノートオフメッセージを用いて操作ミスを検出する例について説明する図である。図６（Ａ）に示した時間関係と共通する部分については同一の時間記号（Δｔ１〜Δｔ８）を付し、その説明を省略する。
【００６３】
演奏者が演奏端末２の鍵盤２３の各鍵を打鍵すると、ノートオンメッセージがコントローラ１に送信され、演奏者が上記打鍵した鍵を離すと、ノートオフメッセージがコントローラ１に送信される。
【００６４】
制御部１２は、ノートオンメッセージを受信すると、前回のノートオンメッセージ受信タイミング（打鍵１のタイミング）と今回のノートオンメッセージ受信タイミング（打鍵２のタイミング）の時間差Δｔ２を算出する。この時間差Δｔ２を所定の閾値Δｔ５と比較する。打鍵間の時間差Δｔ２が所定の閾値Δｔ５以上であれば、今回の打鍵を正しい演奏操作であると判断し、タイミング・テンポを決定する。
【００６５】
そして決定したタイミング・テンポで１拍分の演奏曲データを読み出し、発音指示データを決定する。決定した発音指示データは演奏端末２に送信される。また、制御部１２は、時間差Δｔ２に基づいて閾値を更新する。更新した閾値が次回ノートオンメッセージが入力されたときの閾値Δｔ６となる。
【００６６】
次に、同図において誤打鍵１（打鍵２の演奏操作をしたときに誤って打鍵されたもの）によるノートオンメッセージが入力されたとき、上記と同様に、前回のノートオンメッセージの受信タイミング（打鍵２のタイミング）と今回のノートオンメッセージの受信タイミング（誤打鍵１のタイミング）の時間差Δｔ４を算出する。この時間差Δｔ４を閾値Δｔ６と比較する。時間差Δｔ４が閾値Δｔ６未満であれば、さらに、前回の打鍵２のノートオフメッセージを受信済みであるか否かを判断する。前回の打鍵２のノートオフメッセージが受信されていなければ、操作ミスであると判断して今回のノートオンメッセージを無視する。
【００６７】
次の打鍵３によるノートオンメッセージが入力されたときは、打鍵２と打鍵３の時間差Δｔ３を算出し、この時間差Δｔ３と閾値Δｔ６を比較する。時間差Δｔ３が閾値Δｔ６以上であれば、この打鍵を正しい演奏操作であると判断し、タイミング・テンポを決定する。その結果、打鍵３によって発音指示データが決定される。また、時間差Δｔ３に基づいて閾値を更新する。次回のノートオンメッセージが入力されたときの閾値Δｔ７は、Δｔ７＝Δｔ３／２で更新される。
【００６８】
次に、打鍵４によるノートオンメッセージが入力されたときは、打鍵３と打鍵４の時間差Δｔ８を算出し、この時間差Δｔ８と閾値Δｔ７を比較する。時間差Δｔ８が閾値Δｔ７未満であれば、さらに、前回の打鍵３のノートオフメッセージを受信済みであるか否かを判断する。前回の打鍵３のノートオフメッセージを受信済みであれば、正しい演奏操作であると判断してタイミング・テンポを決定する。その結果、打鍵４によって発音指示データが決定される。
【００６９】
このように、前回の打鍵によるノートオフメッセージが入力されているか否かで操作ミスを検出するようにしてもよい。操作ミスで誤打鍵される場合は、隣接する鍵が略同時で押されるため、操作ミスの判断を前回の打鍵のノートオフメッセージが受信されていない場合に限定すればよい。このようにすることで、誤打鍵の判断をより正確に行うことができる。
【００７０】
また、発生時間差やノートナンバの差、ノートオフメッセージの有無だけでなく、打鍵／離鍵のロジック（すなわち、打鍵、離鍵の順）を誤打鍵の判断基準としてもよい。例えば、ある１つの鍵が打鍵された後、その鍵が離鍵する前に、他の鍵の打鍵が続けて複数された場合、誤打鍵と判断する、等である。
【００７１】
また、さらに、演奏端末２から送信される操作信号に含まれる打鍵の強さを示す情報（ベロシティ）を用いて操作ミスを検出するようにしてもよい。上記のように、ノートオンメッセージの入力タイミングの時間差が閾値未満であった場合、さらに前回の打鍵のベロシティと今回の打鍵のベロシティを比較し、今回の打鍵のベロシティが前回の打鍵のベロシティと略同一（ベロシティ値の差が所定の値内）であれば、今回の打鍵を操作ミスとして判断するようにしてもよい。
【００７２】
なお、コントローラ１の制御部１２は、操作ミスによる打鍵の回数を各演奏端末２毎に集計し、１曲の演奏を終えた後に、これをログとしてＨＤＤ１３に記録しておくこともできる。ファシリテータは、このログを参照することで、各演奏者の習熟度を把握することができる。さらに、制御部１２は、ログに記録されている操作ミスによる打鍵回数に基づいて閾値を決定する。操作ミスによる打鍵回数が多い演奏端末２（演奏者が初心者である場合等）については閾値を大きく設定し、操作ミスによるテンポ変化が無く演奏が乱れないようにする。逆に操作ミスによる打鍵回数が少ない演奏端末２（演奏者が初心者である場合等）については閾値を小さく設定し、大きなテンポ変化の演奏表現を実現できるようにする。
【００７３】
なお、本実施形態の合奏システムは、ノートオンからノートオフまでのゲートタイムをテンポ決定に考慮することで、以下のような演奏表現を実現することもできる。例えば、コントローラ１の制御部１２（シーケンス部５１）は、ある打鍵の時のみ短くポンと押された場合、その拍分の各音の音長を短く決定し、一方でゆったりと押された場合その拍分の各音の音長を長く決定する。これにより、演奏端末２によって、テンポは大きく変化しないが各音の歯切れをよくする演奏表現（スタッカート）を実現したり、テンポを大きく変化させずに音の長さを保つ演奏表現（テヌート）を実現したりすることができる。
【００７４】
なお、スタッカートやテヌートが効く鍵と効かない鍵とが鍵盤２３において分けられてもよい。コントローラ１は、特定の鍵（例えばE3）からのノートオンメッセージ、ノートオフメッセージが入力された場合のみ、テンポを保ちながら音長を変化させるようにすればよい。
【図面の簡単な説明】
【００７５】
【図１】合奏システムの構成を示すブロック図
【図２】コントローラ１の構成を示すブロック図
【図３】演奏端末２の構成を示すブロック図
【図４】演奏曲データ、演奏者の拍打ベロシティ、ボリューム指定値の関係を示す図
【図５】発音指示データ決定動作を示すフローチャート
【図６】変形例に係る演奏曲データ、演奏者の拍打ベロシティ、ボリューム指定値の関係を示す図
【符号の説明】
【００７６】
１−コントローラ
２（２Ａ〜２Ｆ）−演奏端末
【図１】
2007256631.tif 000003
【図２】
2007256631.tif 000004
【図３】
2007256631.tif 000005
【図４】
2007256631.tif 000006
【図５】
2007256631.tif 000007
【図６】
2007256631.tif 000008