(57)【要約】【課題】演奏に不慣れな演奏者であっても、自身が所望する楽曲の再生乃至演奏を楽しむことが可能な仕組みを提供する。【解決手段】図４（ａ）に示すように、この楽曲は、ノートナンバ（音高）が６０，６２，６４，６７，６５，６４，６２，６４，６０，６２，・・・の四分音符の楽音によって構成されている。ここで、演奏者が、自動演奏ピアノ１００の鍵１のうち、図４（ｂ）に示すようにノートナンバ６０に対応する鍵１を押鍵した後に、ノートナンバ６２に対応する鍵１を押鍵すると、その演奏内容は、図４（ａ）の楽曲の一部（点線Ｇ１で囲んだノートナンバ６０，６２の区間）に一致する。この場合、自動演奏ピアノ１００は、その一致区間に含まれる複数のノートナンバのうち最後のノートナンバのイベント時刻を特定し、そのイベント時刻に後続するイベント時刻から（つまり、同図（ａ）に示した時期Ｔ１から）、楽曲の自動演奏を開始する。【選択図】図４
2008250020.tif 000002
【特許請求の範囲】
【請求項１】
複数の演奏部材のうち演奏者によって順次操作された演奏部材と、それら各々の演奏部材が操作された順番とを特定する特定手段と、
楽音の音高とその発音時期とを表す楽曲データに基づいて発音順に並べられた複数の楽音のうち、前記特定手段によって特定された演奏部材に対応する音高の楽音が前記特定手段によって特定された順番で並べられている区間を検索する検索手段と、
前記検索手段によって検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音する発音手段と
を備えることを特徴とする楽音発生装置。
【請求項２】
前記楽曲データが表す楽音の音高を所定の音程だけ隔てた音程変更楽曲データを生成する生成手段を備え、
前記検索手段は、前記楽曲データと前記生成手段によって生成された音程変更楽曲データとのそれぞれに基づいて発音順に並べられた複数の楽音のうち、前記特定された演奏部材に対応する音高の楽音が前記特定された順番で並べられている区間を検索する
ことを特徴とする請求項１記載の楽音発生装置。
【請求項３】
前記発音手段は、
前記音程変更楽曲データに基づいて発音順に並べられた複数の楽音のうち、前記特定された演奏部材に対応する音高の楽音が前記特定された順番で並べられている区間が前記検索手段により検索された場合には、
前記楽曲データに代えて、当該音程変調データによって表される音高の楽音をその発音時期に従って発音する
ことを特徴とする請求項２記載の楽音発生装置。
【請求項４】
前記特定手段は、演奏者によって各々の演奏部材が操作された時期を特定し、
前記発音手段は、前記検索手段によって検索された区間に含まれる楽音の発音時期と、前記特定手段によって特定された時期とが一致するようなテンポで、前記楽曲データによって表される音高の楽音を発音する
ことを特徴とする請求項１記載の楽音発生装置。
【請求項５】
演奏者によって各々の演奏部材が操作された時間間隔を特定する特定手段と、
楽音の音高とその発音時期とを表す楽曲データに基づいてその発音時期に従った時間間隔で並べられた複数の楽音のうち、前記特定手段によって特定された時間間隔で楽音が並べられている区間を検索する検索手段と、
前記検索手段によって検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音する発音手段と
を備えることを特徴とする楽音発生装置。
【請求項６】
前記検索手段によって複数の区間が検索された場合に、それら複数の区間のうちのいずれか１つを選択する選択手段を備え、
前記発音手段は、前記選択手段によって選択された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音する
を備えることを特徴とする請求項１又は５に記載の楽音発生装置。
【請求項７】
複数の楽曲のうちいずれか１つを選択する選択手段を備え、
前記検索手段は、前記選択手段によって選択された楽曲データに対して前記検索を行う
ことを特徴とする請求項１又は５に記載の楽音発生装置。
【請求項８】
複数の演奏部材のうち演奏者によって順次操作された演奏部材と操作された順番とを特定し、楽音の音高とその発音時期とを表す楽曲データに基づいて発音順に並べられた複数の楽音のうち、特定された前記演奏部材に対応する音高の楽音が、特定された前記順番で並べられている区間を検索し、検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音する第１の楽音発生手段と、
演奏者によって各々の演奏部材が操作された時間間隔を特定し、楽音の音高とその発音時期とを表す楽曲データに基づいてその発音時期に従った時間間隔で並べられた複数の楽音のうち、特定された前記時間間隔で楽音が並べられている区間を検索し、検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音する第２の楽音発生手段と、
前記第１の楽音発生手段又は前記第２の楽音発生手段のいずれか一方によって楽音を発音させる発音制御手段と
を備えることを特徴とする楽音発生装置。
【請求項９】
前記発音制御手段は、
演奏者によって順次操作された演奏部材が異なる音高に対応する演奏部材である場合には、前記第１の楽音発生手段に楽音を発生させ、
演奏者によって順次操作された演奏部材が同一の音高に対応する演奏部材である場合には、前記第２の楽音発生手段に楽音を発生させる
ことを特徴とする請求項８記載の楽音発生装置。
【請求項１０】
コンピュータを、
複数の演奏部材のうち演奏者によって順次操作された演奏部材と、それら各々の演奏部材が操作された順番とを特定する特定手段と、
楽音の音高とその発音時期とを表す楽曲データに基づいて発音順に並べられた複数の楽音のうち、前記特定手段によって特定された演奏部材に対応する音高の楽音が前記特定手段によって特定された順番で並べられている区間を検索する検索手段と、
前記検索手段によって検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音手段に発音させる発音制御手段と
して機能させるプログラム。
【請求項１１】
コンピュータを、
演奏者によって各々の演奏部材が操作された時間間隔を特定する特定手段と、
楽音の音高とその発音時期とを表す楽曲データに基づいてその発音時期に従った時間間隔で並べられた複数の楽音のうち、前記特定手段によって特定された間隔で楽音が並べられている区間を検索する検索手段と、
前記検索手段によって検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音手段に発音させる発音制御手段と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲データに基づいて発音する技術に関する。
【背景技術】
【０００２】
例えばピアノなどの鍵盤楽器においては、演奏者が次に押鍵すべき鍵を報知することによりその演奏者の演奏を支援するというものがある（例えば特許文献１参照）。演奏者は、この種の演奏支援を利用することで、自身がうろ覚えの楽曲であっても、おおよそ楽譜どおりに演奏することが可能となる。また、別の演奏支援としては、演奏者が間違った鍵を弾いた場合であっても、楽譜に基づいて特定される正しい鍵の音を発音するものが知られている（例えば特許文献２参照）。
【特許文献１】特開２００１−１９５０６３号公報
【特許文献１】特開２００３−２５５９４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところが、鍵盤楽器にほとんど触れたことがない演奏者にとっては、上記のような演奏支援機能の助けを借りたとしても、楽曲をスムーズに演奏することは難しい。
【０００４】
本発明は、このような背景に鑑みてなされたものであり、その目的は、演奏に不慣れな演奏者であっても、所望する楽曲の演奏乃至再生を楽しむことが可能な仕組みを提供することにある。
【課題を解決するための手段】
【０００５】
上述した課題を解決するため、本発明は、複数の演奏部材のうち演奏者によって順次操作された演奏部材と、それら各々の演奏部材が操作された順番とを特定する特定手段と、楽音の音高とその発音時期とを表す楽曲データに基づいて発音順に並べられた複数の楽音のうち、前記特定手段によって特定された演奏部材に対応する音高の楽音が前記特定手段によって特定された順番で並べられている区間を検索する検索手段と、前記検索手段によって検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音する発音手段とを備えることを特徴とする楽音発生装置を提供する。
【０００６】
本発明の好ましい態様において、前記楽曲データが表す楽音の音高を所定の音程だけ隔てた音程変更楽曲データを生成する生成手段を備え、前記検索手段は、前記楽曲データと前記生成手段によって生成された音程変更楽曲データとのそれぞれに基づいて発音順に並べられた複数の楽音のうち、前記特定された演奏部材に対応する音高の楽音が前記特定された順番で並べられている区間を検索する。この態様において、さらに、前記発音手段は、前記音程変更楽曲データに基づいて発音順に並べられた複数の楽音のうち、前記特定された演奏部材に対応する音高の楽音が前記特定された順番で並べられている区間が前記検索手段により検索された場合には、前記楽曲データに代えて、当該音程変調データによって表される音高の楽音をその発音時期に従って発音するようにしてもよい。
【０００７】
また、本発明の別の好ましい態様において、前記特定手段は、演奏者によって各々の演奏部材が操作された時期を特定し、前記発音手段は、前記検索手段によって検索された区間に含まれる楽音の発音時期と、前記特定手段によって特定された時期とが一致するようなテンポで、前記楽曲データによって表される音高の楽音を発音する。
【０００８】
また、本発明は、演奏者によって各々の演奏部材が操作された時間間隔を特定する特定手段と、楽音の音高とその発音時期とを表す楽曲データに基づいてその発音時期に従った時間間隔で並べられた複数の楽音のうち、前記特定手段によって特定された時間間隔で楽音が並べられている区間を検索する検索手段と、前記検索手段によって検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音する発音手段とを備えることを特徴とする楽音発生装置を提供する。
【０００９】
上述した本発明において、前記検索手段によって複数の区間が検索された場合に、それら複数の区間のうちのいずれか１つを選択する選択手段を備え、前記発音手段は、前記選択手段によって選択された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音するようにしてもよい。また、複数の楽曲のうちいずれか１つを選択する選択手段を備え、前記検索手段は、前記選択手段によって選択された楽曲データに対して前記検索を行うようにしてもよい。
【００１０】
また、本発明は、複数の演奏部材のうち演奏者によって順次操作された演奏部材と操作された順番とを特定し、楽音の音高とその発音時期とを表す楽曲データに基づいて発音順に並べられた複数の楽音のうち、特定された前記演奏部材に対応する音高の楽音が、特定された前記順番で並べられている区間を検索し、検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音する第１の楽音発生手段と、演奏者によって各々の演奏部材が操作された時間間隔を特定し、楽音の音高とその発音時期とを表す楽曲データに基づいてその発音時期に従った時間間隔で並べられた複数の楽音のうち、特定された前記時間間隔で楽音が並べられている区間を検索し、検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音する第２の楽音発生手段と、前記第１の楽音発生手段又は前記第２の楽音発生手段のいずれか一方によって楽音を発音させる発音制御手段とを備えることを特徴とする楽音発生装置を提供する。
【００１１】
前記発音制御手段は、前記発音制御手段は、演奏者によって順次操作された演奏部材が異なる音高に対応する演奏部材である場合には、前記第１の楽音発生手段に楽音を発生させ、演奏者によって順次操作された演奏部材が同一の音高に対応する演奏部材である場合には、前記第２の楽音発生手段に楽音を発生させるようにしてもよい。
【００１２】
また、本発明は、コンピュータを、複数の演奏部材のうち演奏者によって順次操作された演奏部材と、それら各々の演奏部材が操作された順番とを特定する特定手段と、楽音の音高とその発音時期とを表す楽曲データに基づいて発音順に並べられた複数の楽音のうち、前記特定手段によって特定された演奏部材に対応する音高の楽音が前記特定手段によって特定された順番で並べられている区間を検索する検索手段と、前記検索手段によって検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音手段に発音させる発音制御手段として機能させるプログラムを提供する。
【００１３】
また、本発明は、コンピュータを、演奏者によって各々の演奏部材が操作された時間間隔を特定する特定手段と、楽音の音高とその発音時期とを表す楽曲データに基づいてその発音時期に従った時間間隔で並べられた複数の楽音のうち、前記特定手段によって特定された間隔で楽音が並べられている区間を検索する検索手段と、前記検索手段によって検索された区間に含まれる楽音、又は、当該区間に後続する楽音から、前記楽曲データによって表される音高の楽音をその発音時期に従って発音手段に発音させる発音制御手段として機能させるプログラムを提供する。
【発明の効果】
【００１４】
本発明によれば、演奏に不慣れな演奏者であっても、自身が所望する楽曲の一部を演奏するだけで、その演奏に続く楽曲の再生乃至演奏を楽しむことができる。
【発明を実施するための最良の形態】
【００１５】
（１）第１実施形態
図１は、本発明の第１実施形態に係る自動演奏ピアノ１００の外観を示す斜視図である。自動演奏ピアノ１００の前面には、演奏者によって操作される鍵１が複数配列されるとともに、ディスクドライブ１２０が設けられている。ディスクドライブ１２０は、例えばＤＶＤ（Digital Versatile Disk）やＣＤ（Compact Disk）などの記録媒体に記録された楽曲データを読み出し、読み出した楽曲データを自動演奏ピアノ１００に供給する手段である。自動演奏ピアノ１００の上面にはディスプレイ１３０が設けられている。このディスプレイ１３０は、タッチパネル形式の液晶ディスプレイであり、楽譜などの各種情報を表示する表示手段として機能するとともに、演奏者がこの自動演奏ピアノ１００に対して各種の動作モードの設定や処理の指示を行うための操作手段として機能する。
【００１６】
図２は、自動演奏ピアノ１００の主要部の機械的構成と電気的構成を示す図である。
同図の上段に示すように、自動演奏ピアノ１００には、鍵１の運動をハンマ２に伝達するアクションメカニズム３と、ハンマ２によって打撃される弦４と、鍵１を駆動するソレノイドユニット５と、弦４の振動を止めるためのダンパ６と、打弦後のハンマ２の暴れを防止するためのバックチェック７と、鍵１のそれぞれに対応して設けられた複数の鍵センサ２６のほか、ハンマ２の打弦を阻止する不図示のストッパなどが設けられている。また、同図の下段に示すように、自動演奏ピアノ１００は、前述したディスプレイ１３０のほか、コントローラ１１と、サーボコントローラ１２と、電子楽音発生部２５とを備えている。
【００１７】
複数のソレノイドユニット５は、演奏者から見て各鍵１の後端側（図の左側）の下方にそれぞれ配置されている。このソレノイドユニット５に対してサーボコントローラ１２から駆動電流が供給されると、ブランジャが上昇して鍵１の後端を突き上げ、その鍵１をバランスピンＰを中心に回動させる。これにより、鍵１の前端側が下に押し下げられることになる。さらに、この動きに連動してアクションメカニズム３が作動し、ダンパ６が弦４から離れるとともに、ハンマ２が回動して打弦して発音する。このような作用を利用して楽曲データに応じた楽音を発生させることを、自動演奏という。また、演奏者が自ら鍵１を押鍵した場合も、アクションメカニズム３の作用によってハンマ２が弦４を打撃することで発音がなされる。これを手動演奏という。
【００１８】
複数の鍵センサ２６は、各鍵１の前端側（図の右側）の下方に、それぞれ配置されている、各々の鍵センサ２６は、対応する鍵１の操作状態を監視しており、いずれかの鍵１が押鍵されると、その鍵１に応じた検出信号をコントローラ１１に出力する。この鍵センサ２６は、演奏者によってどの鍵１がどの順番で押鍵されたかを特定するためのものであるから、対応する鍵１が押鍵状態であるか又は押鍵されていない状態であるかを少なくとも検出することができればよい。
【００１９】
コントローラ１１は、ＣＰＵ（Central Processing Unit）などの演算装置と、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）或いはフラッシュメモリなどの記憶装置とを備えている。コントローラ１１は、ＲＯＭやフラッシュメモリなどに記憶されている制御プログラムや制御データに基づいて、自動演奏ピアノ１００の各部を制御する。楽曲データは、上述した記録媒体に限らず、コントローラ１１のフラッシュメモリに記憶されていてもよい。コントローラ１１は、自動演奏時において鍵１を駆動する際には、どの鍵１をどのタイミングで動作させるかを算出して各鍵１の軌道データを生成し、その軌道データに基づいて、鍵１を振動させるための駆動信号をサーボコントローラ１２に供給する。この駆動信号には、各時刻における鍵１の位置に対応した速度を示す速度指示値Ｖrが含まれている。サーボコントローラ１２は、駆動信号に含まれる速度指示値Ｖrに応じた励磁電流をソレノイドユニット５に供給することで、ソレノイドユニット５のブランジャを上昇させる。さらに、サーボコントローラ１２は、ソレノイドユニット５から供給されるフィードバック信号としての出力速度Ｖｙと速度指示値Ｖrを比較し、両者が一致するようにサーボ制御を行う。これにより、コントローラ１１が指示したとおりに鍵１が駆動されることになる。電子楽音発生部２５は、コントローラ１１の制御に基づいて電子的な楽音を発生するものであり、音源やスピーカ等から構成されている。
【００２０】
楽曲データは、ＭＩＤＩ（Musical Instrument Digital Interface）に従って記述されている。図３は、このＭＩＤＩ形式の楽曲データの構造を示した図である。この楽曲データは、図３上段に示すように、ヘッダチャンク及びトラックチャンクによって構成されている。ヘッダチャンクには、チャンクタイプ等のＳＭＦの属性情報が含まれている。トラックチャンクには、実体となるＭＩＤＩデータが含まれている。同図中段に示すように、トラックチャンクには、演奏を指示するイベントと、先行するイベントと後発のイベントとの発生時間間隔を示すデルタタイムとが含まれている。コントローラ１１は、このデルタタイムを累算することで、各イベントの発生時刻（イベント時刻）を算出することができる。そして、同図下段に示すように、イベントには、発音又は消音すべき旨を示すノートオン・ノートオフと、発音すべき音の高さ（音高）を示すノートナンバと、発音の強弱を示すベロシティとが含まれている。このように、楽曲データには、楽音の音高とその発音時期とが含まれているので、コントローラ１１は、この楽曲データに含まれる各イベントのノートナンバ（音高）をその発音順に並べることができる。
【００２１】
この自動演奏ピアノ１００において、演奏者が所望する楽曲を演奏したい場合には、その演奏者自身が知っている楽曲の一部分の旋律を弾くだけで、自動演奏ピアノ１００がその旋律に続く旋律を自動演奏する。
例えば図４（ａ）は、或る楽曲の楽曲データを楽譜によって表現した図である。図に示すように、この楽曲は、ノートナンバ（音高）が「６０，６２，６４，６７，６５，６４，６２，６４，６０，６２，・・・」の楽音によって構成されている。ここで、演奏者が、図４（ｂ）に示すように、ノートナンバ６０に対応する鍵１を押鍵した後に、ノートナンバ６２に対応する鍵１を押鍵すると、その演奏内容は、図４（ａ）の楽曲の一部の区間（点線Ｇ１で囲んだノートナンバ６０，６２の区間）に一致する。この場合、自動演奏ピアノ１００は、その一致区間に後続する楽音から楽曲の自動演奏を開始する。より具体的には、コントローラ１１は、図４（ａ）の点線Ｇ１で囲んだ一致区間に含まれる複数のノートナンバのうち、最後のノートナンバのイベント時刻を特定し、そのイベント時刻に後続するイベント時刻の楽音から（つまり、同図（ａ）に示した時期Ｔ１から）、楽曲の自動演奏を開始することになる。
【００２２】
また、図４（ｃ）に示すように、演奏者がノートナンバ６５に対応する鍵１を押鍵した後に、ノートナンバ６４に対応する鍵１を押鍵したとする。この場合、その演奏内容は、図４（ａ）の点線Ｇ２で囲んだ区間に一致する。よって、自動演奏ピアノ１００は、同図（ａ）に示した時期Ｔ２から楽曲の自動演奏を開始する。
【００２３】
楽器の演奏に不慣れな演奏者であっても、楽曲の始まりの旋律部分とか、さびの旋律部分とか、複数回繰り返される旋律部分であれば、おおよそ間違えずに弾けることが少なくない。自動演奏ピアノ１００は、このような演奏者のわずかな演奏を契機として、それに続いて楽曲の自動演奏を開始する。自動演奏が開始されると、それ以降は、演奏者は自らの演奏を止めてその自動演奏を楽しむだけでよいから、演奏を間違ってしまうことを恐れることなく、気軽に演奏を試みることができる。
【００２４】
次に、図５に示すフローチャートを参照しながら、自動演奏ピアノ１００の動作を説明する。
演奏者が自動演奏ピアノ１００のディスプレイ１３０を操作して、選曲画面を表示する旨を指示すると、自動演奏ピアノ１００のコントローラ１１は、その操作を受け付ける。そして、コントローラ１１は、記録媒体又はフラッシュメモリに記憶されている複数の楽曲データのうちのいずれかを選択するための選曲画面データを生成し、ディスプレイ１３０に表示する（ステップＳ１）。この選曲画面には、各々の楽曲データが表す楽曲のタイトルの一覧が記されている。
【００２５】
演奏者は、この選曲画面を参照しながら、ディスプレイ１３０をタッチして、そのタイトル一覧の中からいずれか１つのタイトルを選択する。コントローラ１１は、この選曲操作を検出すると（ステップＳ２；Ｙｅｓ）、選択されたタイトルの楽曲データを記録媒体又はフラッシュメモリから読み出してＲＡＭにロードする（ステップＳ３）。次に、コントローラ１１は、読み出した楽曲データが表す楽曲に含まれる楽音の音高を所定の音程だけ隔てた複数の音程変更楽曲データをＲＡＭ上に生成する（ステップＳ４）。ここでは、自動演奏ピアノ１００によって実現可能な８８音階の範囲内で、楽曲に含まれる楽音を半音ずつ高く又は低くした複数の音程変更楽曲データが生成される。このように、オリジナルの楽曲データ以外に、その音程を変更した音程変更楽曲データを用意する理由は、演奏者が楽曲を本来の音程で弾くことができなかった場合であっても、演奏者が意図する区間を検索できるようにするためである。演奏者によっては、本来の楽曲の旋律と例えば１音違いとか１オクターブ違いの旋律を演奏することもあるが、本実施形態によれば、そのような場合であっても、演奏と楽曲との一致区間を特定することが可能となる。コントローラ１１は、これらの音程変更楽曲データを生成すると、演奏者による演奏を促すメッセージをディスプレイ１３０に表示する（ステップＳ５）。
【００２６】
この表示に応じて演奏者が鍵１を押鍵すると、鍵１が押鍵されたことを意味する検出信号が鍵センサ２６からコントローラ１１に供給される。この押鍵を意味する検出信号が２回、コントローラ１１に供給されると、コントローラ１１は、その検出信号の供給回数（つまり２回）だけ演奏者による押鍵がなされたと判断する（ステップＳ６；Ｙｅｓ）。そして、コントローラ１１は、演奏者による演奏と、楽曲データ又は音程変更楽曲データとが一致する区間を検索する（ステップＳ７）。具体的には以下のとおりである。
【００２７】
コントローラ１１は、まず、ＲＡＭ上の楽曲データに含まれるノートナンバを、そのイベント時刻の順番に並べた音高数列ＴiをＲＡＭ上に生成する。例えば、図４（ａ）に示すような旋律の場合、その音高数列Ｔiは、「６０，６２，６４，６７，６５，６４，６２，６４，６０，６２，・・・」となる。また、その楽曲の音程を変更したものとして、同図（ｅ）に示すような音程変更楽曲データがある場合には、その音高数列Ｔi(1)は、「６５，６７，６９，７１，７０，６９，６７，６９，６５，６７，・・・」となる。なお、図示はしてないが、この音高数列Ｔi(1)以外にも、自動演奏ピアノ１００によって演奏可能な範囲内で生成された複数の音程変更楽曲データに基づいて、複数の音高数列Ｔi(2)〜音高数列Ｔi(X)がＲＡＭ上で生成される。なお、「Ｘ」は音程変更楽曲データの個数である。
【００２８】
次に、コントローラ１１は、演奏者によって押鍵された鍵１に対応するノートナンバを、その押鍵順に並べた音高数列Ｕiを生成する。例えば、図４（ｂ）に示すような演奏がなされた場合、音高数列Ｕiは、「６０，６２」となる。そして、コントローラ１１は、次式によって表される評価関数Ｅt,pに、音高数列Ｔi及び音高数列Ｔi(1)〜音高数列Ｔi(X)と、音高数列Ｕiとを代入して評価値をそれぞれ算出する。この評価関数Ｅt,pは、要するに、音高数列Ｔi及び音高数列Ｔi(1)〜音高数列Ｔi(X)のそれぞれと音高数列Ｕiとの差分の積分値を求めるものである。
【００２９】
【数１】
2008250020.tif 000003
上記の式において、「Ｎu」は、各イベントに割り当てられたイベントＩＤ（ＭＩＤＩで規定されたステップ数）である。楽曲の先頭のイベントにＮu＝０が割り当てられ、以降、それに続くイベントに対してはＮuが昇順で割り当てられる。このように、Ｎuは「０」から始まるので、Ｎuの最大値は、１つの楽曲に含まれるイベントの総数から「１」だけ小さい値となる。また、「Ｔi+P(t)」の「Ｐ」は楽曲中の位置をイベントＩＤを表しており、「Ｔi+P(t)」の「ｔ」は、音程変更楽曲データに対応することを意味している。
【００３０】
コントローラ１１は、評価関数Ｅt,pによる評価値が「ゼロ」になる区間、即ち、
音高数列Ｔi及び音高数列Ｔi(1)〜音高数列Ｔi(X)のうち、音高数列Ｕiと一致する区間があるか否かを判断する（ステップＳ８）。次に、コントローラ１１は、その一致区間が複数ある場合には（ステップＳ９；Ｙｅｓ）、それらの複数の一致区間のうちのいずれか１つを選択する（ステップＳ１０）。
【００３１】
このときの選択基準は以下のとおりである。
例えば、一致区間として、音高数列Ｔi及び音高数列Ｕiの一致区間と、音高数列Ｔi(1)〜音高数列Ｔi(X)及び音高数列Ｕiの一致区間とがある場合には、音高数列Ｔi及び音高数列Ｕiとの一致区間が、音高数列Ｔi(1)〜音高数列Ｔi(X)及び音高数列Ｕiの一致区間よりも、優先的に選択される。
さらに、その音高数列Ｔi及び音高数列Ｕiの一致区間が複数ある場合には、イベント時刻が早いほうの一致区間、つまり楽曲の先頭に近い一致区間が優先的に選択される。演奏者によって例えば図４（ｂ）のような演奏がなされた場合、図４（ａ）に示す楽曲との一致区間として、点線Ｇ１と点線Ｇ３によってそれぞれ囲まれた２つの一致区間がある。そのときには、楽曲の先頭に近い、点線Ｇ１で囲まれた一致区間が選択されることになる。
【００３２】
また、音高数列Ｔi及び音高数列Ｕiの一致区間は無いが、音高数列Ｔi(1)〜音高数列Ｔi(X)及び音高数列Ｕiの一致区間が複数ある場合には、それら音高数列Ｔi(1)〜音高数列Ｔi(X)のうち、音高数列Ｔiとの音程の差が小さいほうの音高数列との一致区間が優先的に選択される。
また、音高数列Ｔi(1)〜音高数列Ｔi(X)のうちのいずれか１つの音高数列と、音高数列Ｕiとの一致区間が複数ある場合には、イベント時刻が早いほうの一致区間、つまり楽曲の先頭に近い一致区間が優先的に選択される。演奏者によって例えば図４（ｄ）のような演奏がなされた場合、図４（ｅ）に示すように音程変更された楽曲との一致区間として、点線Ｇ４と点線Ｇ５によってそれぞれ囲まれた２カ所の一致区間がある。このときには、楽曲の先頭に近い、点線Ｇ４で囲まれた一致区間が選択されることになる。
【００３３】
なお、ステップＳ７において一致区間がまったく検索されなかった場合には（ステップＳ８；Ｎｏ）、コントローラ１１の処理はステップＳ６に戻る。そして、演奏者によってさらに鍵１が押鍵されると、鍵１が押鍵されたことを意味する検出信号が再び鍵センサ２６からコントローラ１１に供給される。このとき、押鍵を意味する検出信号が合計で３回供給されたことになるので、コントローラ１１は、演奏者による押鍵が３回なされたと判断し（ステップＳ６；Ｙｅｓ）、上記と同様の方法に従って、演奏者による押鍵３回分の演奏と、楽曲データ又は音程変更楽曲データとが一致する区間を検索する（ステップＳ７）。
【００３４】
このようにしてステップＳ１０において一致区間が選択された場合、又は、ステップＳ９において一致区間が１カ所だけだった場合には（ステップＳ９；Ｎｏ）、コントローラ１１の処理はステップＳ１１に進む。コントローラ１１は、その一致区間に含まれる複数のノートナンバのうち最後のノートナンバのイベント時刻を特定し、そのイベント時刻に後続するイベント時刻から、楽曲データ又は音程変更楽曲データに基づいた楽音を順次発生させる。具体的には、コントローラ１１は、楽曲データに従って、どの鍵１をどのタイミングで動作させるかを算出し、各鍵１の軌道データを生成する。そして、その軌道データに基づいて、鍵１を振動させるための駆動信号をサーボコントローラ１２に供給する。サーボコントローラ１２は、駆動信号に応じた励磁電流をソレノイドユニット５に供給することで、ソレノイドユニット５のブランジャを上昇させる。これにより、アクションメカニズム３が作動してハンマ２により弦４が打撃されて楽音が発生する。これにより、例えば図４（ａ）に示す楽曲に対して、演奏者の演奏が同図（ｂ）に示すようなものである場合には、同図（ａ）に示した時期Ｔ１から、楽曲データに基づいた自動演奏が開始される。また、例えば図４（ａ）に示す楽曲に対して、演奏者の演奏が同図（ｄ）に示すようなものである場合には、同図（ｅ）に示した時期Ｔ３から音程変更楽曲データに基づいた自動演奏が開始される。
このような楽曲データ又は音程変更楽曲データに基づいた自動演奏が終了すると（ステップＳ１２；Ｙｅｓ）、コントローラ１１の処理も終了する。
【００３５】
上述した第１実施形態によれば、自動演奏ピアノ１００は、演奏者による楽曲の一部分だけの演奏を契機として、それに続く旋律を自動演奏する。演奏に不慣れな演奏者であっても、楽曲の一部の旋律だけは自身で弾くことが可能な場合があるから、そのような一部だけの演奏に基づいて自動演奏が開始されると、演奏者にとっては便利である。また、演奏者によっては、本来の楽曲の旋律と例えば１音違いとか１オクターブ違いの旋律を演奏することもあるが、第１実施形態によれば、そのような場合であっても、演奏と楽曲との一致区間を特定し、そこから自動演奏を開始することが可能となる。
【００３６】
（２）第２実施形態
次に、本発明の第２実施形態を説明する。
この第２実施形態において、自動演奏ピアノ１００の構成は、図１,２に示した第１実施形態と同様である。また、その自動演奏ピアノ１００の動作も、図５に示したステップＳ７の詳細が第１実施形態とは異なるだけであり、そのほかは共通の内容である。
要するに、第１実施形態では、楽曲データにおいて、演奏者によって演奏された楽音の音高とその発音順が一致する区間を検索していたが、この第２実施形態では、演奏者によって演奏された楽音の発音時期が一致する区間を検索するというものである。
【００３７】
ここで、図６（ａ）は、或る楽曲の楽曲データを楽譜によって表現した図である。この楽曲の音符は、先頭から順に、四分音符、四分音符、八分音符、八分音符、四分音符、八分音符、八分音符、四分音符、四分音符、八分音符、八分音符、四分音符・・・という並びになっている。ここで、演奏者が、自動演奏ピアノ１００の複数の鍵１のうち、ある特定の鍵１を図６（ｂ）に示すように、四分音符、八分音符、八分音符、四分音符、八分音符、八分音符、というリズムで弾いたとする。この演奏による各楽音の発音時期は、図６（ａ）の点線Ｇ６で囲んだ区間に含まれる各楽音の発音時期に一致する。
【００３８】
より具体的には、ステップＳ７において、コントローラ１１は、まず、演奏者によって各々の鍵１が押鍵された時間間隔を特定する。次に、コントローラ１１は、楽曲データに基づいてその発音時期に従った時間間隔で並べた複数の楽音のうち、演奏に基づいて特定した時間間隔で楽音が並べられている区間を検索する。このとき、たとえ演奏者が楽曲データのとおりに演奏したとしても、その鍵１が押鍵された時間間隔と楽曲データに基づく時間間隔とが完全に一致することは少ない。そこで、コントローラ１１は、両者の間に所定範囲の誤差を許容することで、一致する範囲に幅を待たせるようにしてもよい。
【００３９】
これにより、演奏者の演奏内容と楽曲データとの一致区間が検索されることになる。そして、コントローラ１１は、その一致区間に含まれる複数のノートナンバのうち最後のノートナンバのイベント時刻を特定し、そのイベント時刻に後続するイベント時刻から、楽曲データ又は音程変更楽曲データに基づいた楽音を順次発生させる。これにより、図６（ａ）に示した時期Ｔ４から楽曲の自動演奏が開始されることになる。
【００４０】
この第２実施形態によれば、自動演奏ピアノ１００は、第１実施形態と同様に、演奏者による楽曲の一部分だけの演奏を契機として、それに続く旋律を自動演奏する。演奏者は、楽曲の一部の旋律のリズムだけを覚えておき、それを弾けばいいだけであるから、便利である。
【００４１】
（３）変形例
上述した実施形態を次のように変形してもよい。以下の変形例は適宜組み合わせることができる。
（３−１）変形例１
第１実施形態では、演奏者の演奏内容と楽曲データとが一致する場合には、その楽曲データに基づいた自動演奏がなされるし、演奏者の演奏内容と音程変更楽曲データとが一致する場合には、その音程変更楽曲データに基づいた自動演奏がなされていた。
これに限らず、演奏者の演奏内容と音程変更楽曲データとが一致する場合には、その音程変更楽曲データではなく、そもそもの音程である楽曲データに基づいて自動演奏を行うようにしてもよい。このようにすれば、演奏者の演奏が本来の楽曲の音程とずれていても、その楽曲の本来の音程で自動演奏することができる。
【００４２】
（３−２）変形例２
第１実施形態では、楽音の音高とその発音順とを比較するだけであったが、さらに第２実施形態で説明したように、楽音の発音時期をも比較するようにしてもよい。
より具体的には、図５のステップＳ７において、まず、コントローラ１１は、評価関数Ｅt,pによる評価値が「ゼロ」になる区間を検索する。次に、コントローラ１１は、その検索によって得られた一致区間について、第２実施形態で述べたように、演奏者によって各々の鍵１が押鍵された時間間隔と、楽曲データに基づいて特定される楽音の時間間隔とを比較し、両者が一致する区間を検索する。このようにすれば、演奏者が演奏した楽音の音高、発音順及び発音時期の全てが一致する区間から楽曲の自動演奏を開始することができる。
なお、評価値を求める数式は実施形態で説明したものに限らず、楽曲データと演奏内容とが一致する区間をもとめることができるものであれば、どのようなものであってもよい。
【００４３】
（３−３）変形例３
第１実施形態において、自動演奏される楽曲のテンポを、演奏者による演奏のテンポに一致させるようにしてもよい。例えば四分音符は１分間について１２０回のテンポであるから、１つの四分音符に相当する時間は、６０（ｓ）／１２０＝０．５（ｓ）である。これに対し、演奏者の演奏において、本来は四分音符のテンポで演奏すべきところがそれよりも速く、１つの四分音符に相当する時間が０．４（ｓ）であったとする。この場合、コントローラ１１は、一致区間を検索した後に、演奏内容と楽曲データと間で同一の音符に相当する時間を算出する。例えばコントローラ１１が、演奏における押鍵の時間間隔に基づいて、その演奏中の四分音符に相当する時間として、０．４（ｓ）を算出したとする。この場合、コントローラ１１は、楽曲データに含まれる各デルタタイムに対して、０．４（ｓ）／０．５（ｓ）＝０．８を乗じて各イベント時刻を算出し、そのイベント時刻に基づいて楽音を発生させる。このようにすれば、演奏者の演奏のテンポと、その後に続いて演奏される楽曲のテンポとを合わせることができる。
【００４４】
（３−４）変形例４
自動演奏ピアノ１００の動作モードとして、第１実施形態で説明した原理で一致区間を検索する動作モードと、第２実施形態で説明した原理で一致区間を検索する動作モードとを用意し、それらを必要に応じて切り替えるようにしてもよい。
つまり、第１の動作モードでは、コントローラ１１は、複数の鍵１のうち演奏者によって順次押鍵された鍵１と、各々の鍵１が押鍵された順番を特定する。次に、コントローラ１１は、楽曲データにおいて時系列に並べられた複数の楽音のうち、特定した鍵１に対応する音高の楽音が特定された順番のとおりに並べられている区間を検索する。そして、コントローラ１１は、その検索された区間から、楽曲データに基づいた楽音を順次発生させる。
一方、第２の動作モードでは、コントローラ１１は、演奏者によって鍵１が押鍵された時間間隔を特定する。次に、コントローラ１１は、楽曲データにおいて時系列に並べられた複数の楽音のうち、特定した時間間隔で楽音が並べられている区間を検索する。そして、コントローラ１１は、検索された区間から、楽曲データに基づいた楽音を順次発生させる。
コントローラ１１は、この第１の動作モードと第２の動作モードとのいずれかを、自動演奏ピアノ１００の動作モードとして選択する。その選択基準としては、例えば演奏者がディスプレイ１３０を操作して指定した方の動作モードを選択するというものがある。また、コントローラ１１が、演奏者からの指定を待つことなく、適切な動作モードを自動で選択するものであってもよい。具体的には、図５のステップＳ６において、演奏者によって順次押鍵された複数の鍵１が、それぞれ異なる音高に対応する鍵１である場合には、コントローラ１１は、音高に基づく検索を行う第１の動作モードを選択する。一方、図５のステップＳ６において、演奏者によって順次押鍵された複数の鍵１が、全て同一の音高に対応する鍵１である場合には、コントローラ１１は、鍵１が押鍵された時間間隔に基づく検索を行う第２の動作モードを選択する。
さらに次のようにしてもよい。
コントローラ１１は、図５のステップＳ６において、演奏者によって順次押鍵された複数の鍵１が、それぞれ異なる音高に対応する鍵１である場合には、通常の手動演奏と同様に、押鍵された鍵１に応じたピアノ楽音を発生させる。一方、演奏者によって順次押鍵された少なくとも２つの鍵１が同一の音高に対応する鍵１であった場合には、押鍵された鍵１に応じたピアノ楽音を発生させずに、電子楽音発生部２５から、その押鍵に応じたタイミングで打楽器の楽音を発生させる。第２の動作モードは、鍵１が押鍵された時間間隔に基づく検索であるが、打楽器による楽音は、その動作モードを演奏者に連想させることができ、より好ましい。なお、押鍵された鍵１に応じたピアノ楽音を発生させたくない場合には、ストッパによってハンマ２の打弦を阻止すればよい。
【００４５】
（３−５）変形例５
第１及び第２実施形態において、一致区間に続いて楽曲を自動演奏するのではなく、電子楽音発生部２５によってその楽曲を再生するものであってもよい。いずれにしろ、一致区間に続いて、楽曲データに基づいた楽音を発生させるものである。
電子楽音発生部２５により楽曲を再生する場合、コントローラ１１は、楽曲データのイベントをデルタタイムに従って電子楽音発生部２５に順次供給する。電子楽音発生部２５は、そのイベントによって指示された音を、ピアノの演奏音で表現したオーディオ信号を生成し、これを増幅してスピーカから出力させる。
【００４６】
（３−６）変形例６
第１及び第２実施形態の図５のステップＳ１０で、コントローラ１１が、複数の一致区間のうちのいずれか１つを選択していたが、この選択基準は上述した実施形態の内容に限定されない。
例えば、楽曲の小節などの所定の区間単位で予め設定された重み値を、その楽曲データに対応付けて記録媒体やフラッシュメモリに記憶しておく。例えば楽曲の始まりの旋律部分とか、さびの旋律部分とか、複数回繰り返される旋律部分に相当する区間ついては、それ以外の区間よりも大きい重み値が設定されている。コントローラ１１は、ステップＳ７にて検索した一致区間のうち、それら一致区間に対応する重み値が最も大きいものを選択する。このようにすれば、楽曲の始まりの旋律部分とか、さびの旋律部分とか、複数回繰り返される旋律部分などから楽曲を自動演奏することができる。
【００４７】
（３−７）変形例７
第１及び第２実施形態においては、図５のステップＳ１，２にて最初に楽曲を選択するようになっていたが、この選曲処理は必須ではない。コントローラ１１の処理能力が十分に高ければ、演奏対象となる全ての楽曲データを検索対象とすることが可能である。このようにすれば、演奏者は楽曲を選択することなく、最初の演奏を行うことが可能となる。
【００４８】
（３−８）変形例８
第１及び第２実施形態では、本発明に係る楽音発生装置の一例として、自動演奏ピアノ１００を例に挙げて説明したが、楽音発生装置の具体的態様はこれに限らない。
本発明に係る楽音発生装置は、複数の演奏部材のうち演奏者によって順次操作された演奏部材と、それら各々の演奏部材が操作された順番とを特定し、楽音の音高とその発音時期とを表す楽曲データに基づいて発音順に並べられた複数の楽音のうち、特定された演奏部材に対応する音高の楽音が特定された順番で並べられている区間を検索し、その検索された区間から、楽曲データによって表される音高の楽音をその発音時期に従って発音するものであればよい。また、本発明に係る楽音発生装置は、演奏者によって各々の演奏部材が操作された時間間隔を特定し、楽音の音高とその発音時期とを表す楽曲データに基づいてその発音時期に従った時間間隔で並べられた複数の楽音のうち、特定した時間間隔で楽音が並べられている区間を検索し、その検索された区間から、楽曲データによって表される音高の楽音をその発音時期に従って発音するものであればよい。
【００４９】
（３−９）変形例９
第１及び第２実施形態では、一致区間に後続する楽音から楽曲の自動演奏を開始していたが、これに限らず、一致区間に含まれる楽音のいずれかの楽音から楽曲の自動演奏を開始するようにしてもよい。例えば、一致区間に含まれる楽音のうち、先頭の楽音（つまり一致区間においてイベント時刻が最も早い楽音）から、楽曲の自動演奏を開始するようにしてもよい。このようにすれば、演奏者によって演奏された区間が自動演奏ピアノ１００によって再び繰り返されてから、その後に続く楽曲を自動演奏することができる。
【００５０】
（３−１０）変形例１０
上述したコントローラ１１が実行するプログラムは、磁気テープ、磁気ディスク、フレキシブルディスク、光記録媒体、光磁気記録媒体、コンパクトディスク、ＤＶＤ（Digital Versatile Disk）、ＲＡＭなどの記録媒体に記録した状態で提供し得る。即ち、本発明をプログラムとして実現することもできる。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施形態に係る自動演奏ピアノの外観を示す斜視図である。
【図２】自動演奏ピアノの主要部の構成を示す図である。
【図３】楽曲データの構成を示す図である。
【図４】楽曲内容と演奏内容とを楽譜で表現した図である。
【図５】コントローラの動作を示すフローチャートである。
【図６】楽曲内容と演奏内容とを楽譜で表現した図である。
【符号の説明】
【００５２】
１……鍵、２……ハンマ、３……アクションメカニズム、４……弦、５……ソレノイドユニット、１１……コントローラ、２５……電子楽音発生部、２６……鍵センサ。
【図１】
2008250020.tif 000004
【図２】
2008250020.tif 000005
【図３】
2008250020.tif 000006
【図４】
2008250020.tif 000007
【図５】
2008250020.tif 000008
【図６】
2008250020.tif 000009