(57)【要約】 【課題】オーディオデータを自動伴奏として再生する際、演奏者の鍵操作に応じて適切なオーディオデータの読み出しを実現する。【解決手段】押鍵タイミングが、正規のタイミングより遅いと判断された場合、オーディオデータにおいて、押鍵タイミングから時系列的に未来でかつ直近の第１ゼロクロスポイントを見出す。そして、第１ゼロクロスポイントより以前のゼロクロスポイントのうち、発音されている楽音の音高に整合した周期に比例する区間の終点に対応した位置に存在する第２ゼロクロスポイントを見出し、この第１及び第２ゼロクロスポイント間のオーディオデータを繰り返し読み出す。この最中に押鍵が行われると、このタイミングから時系列的に未来にある直近の第３ゼロクロスポイントを検出し、この第３ゼロクロスポイントから第１ゼロクロスポイントにオーディオデータの読み出しをジャンプさせ、それ以降、オーディオデータの読み出しを継続させる。【選択図】図１９
2015158686.tif 000002
【特許請求の範囲】
【請求項１】
楽曲を構成する楽音の音高および発音タイミングを示す時間情報を含む曲データ、および、前記曲データにかかる楽曲の伴奏データであるオーディオデータを格納した記憶手段と、
並列に配置され演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段と、
前記曲データに含まれる時間情報に基づく経過時間にしたがって、前記オーディオデータを前記記憶手段から読み出して再生するオーディオデータ再生手段と、
前記演奏操作子の操作にかかる曲データにおける正規の発音タイミングに基づき、当該正規の発音タイミングから時系列的に未来にある直近の第１のゼロクロスポイントを、前記オーディオデータから検出するジャンプ先検出手段と、
前記曲データに示す発音タイミング経過までに、当該発音タイミングに対応する音高の楽音を発生させる前記演奏操作子が操作されたか否かを判断する操作判断手段と、
この操作判断手段にて前記演奏操作子が操作されていないと判断された場合に、前記第１のゼロクロスポイントを始点として、当該ゼロクロスポイントより以前のゼロクロスポイントのうち、発音されている楽音の音高に整合した周期に対応する区間の終点の位置に存在する第２のゼロクロスポイントを検出するループ先検出手段と、
この第２ゼロクロスポイントと前記第１のゼロクロスポイントとの間の区間をループ区間として前記オーディオデータを繰り返し読み出すループ読み出し手段と、
このループ読み出し手段により読み出しが開始された後に前記操作判断手段により前記演奏操作子が操作されたと判断された場合に、当該演奏操作子の操作タイミングから時系列的に未来にある直近の第３のゼロクロスポイントを、前記オーディオデータから検出するジャンプ元検出手段と、
前記検出された第３のゼロクロスポイントから前記検出された第１のゼロクロスポイントに、オーディオデータの読み出しをジャンプさせ、それ以降、通常のオーディオデータの読み出しを継続するように、前記オーディオデータ再生手段を制御する制御手段と、
を有する楽音生成装置。
【請求項２】
前記オーディオデータ再生手段が、前記第３のゼロクロスポイントから、前記第１のゼロクロスポイントにオーディオデータの読み出しをジャンプさせるときに、前記正規の発音タイミングに基づく経過時間に更新し、前記更新された経過時間にしたがって、前記オーディオデータを読み出す請求項１に記載の楽音生成装置。
【請求項３】
前記オーディオデータにおいて、前記楽音の発音タイミングに対応するタイミングにおいて、所定の位相のゼロクロスポイントが位置し、
前記ジャンプ先検出手段が、前記正規の発音タイミングに対応する所定の位相の第１のゼロクロスポイントを検出する請求項１に記載の楽音生成装置。
【請求項４】
楽曲を構成する楽音の音高および発音タイミングを示す時間情報を含む曲データ、および、前記曲データにかかる楽曲の伴奏データであるオーディオデータを格納した記憶手段と、並列に配置され演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段と、前記曲データに含まれる時間情報に基づく経過時間にしたがって、前記オーディオデータを前記記憶手段から読み出して再生するオーディオデータ再生手段と、を備えたコンピュータに、
前記演奏操作子の操作にかかる曲データにおける正規の発音タイミングに基づき、当該正規の発音タイミングから時系列的に未来にある直近の第１のゼロクロスポイントを、前記オーディオデータから検出するジャンプ先検出ステップと、
前記曲データに示す発音タイミング経過までに、当該発音タイミングに対応する音高の楽音を発生させる前記演奏操作子が操作されたか否かを判断する操作判断ステップと、
前記演奏操作子が操作されていないと判断された場合に、前記第１のゼロクロスポイントを始点として、当該ゼロクロスポイントより以前のゼロクロスポイントのうち、発音されている楽音の音高に整合した周期に対応する区間の終点の位置に存在する第２のゼロクロスポイントを検出するループ先検出ステップと、
この第２ゼロクロスポイントと前記第１のゼロクロスポイントとの間の区間をループ区間として前記オーディオデータを繰り返し読み出すループ読み出しステップと、
このループ読み出しステップにより読み出しが開始された後、前記演奏操作子が操作されたと判断された場合に、当該演奏操作子の操作タイミングから時系列的に未来にある直近の第３のゼロクロスポイントを、前記オーディオデータから検出するジャンプ元検出ステップと、
前記検出された第３のゼロクロスポイントから前記検出された第１のゼロクロスポイントに、オーディオデータの読み出しをジャンプさせ、それ以降、通常のオーディオデータの読み出しを継続するように、前記オーディオデータ再生手段を制御する制御ステップと、
を実行させる楽音生成プログラム。
【請求項５】
演奏操作子と、
請求項１の楽音生成装置と、
前記楽音生成装置からの楽音データ及びオーディオデータに基づいた音響信号を出力するオーディオ手段と、
を有する電子楽器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、押鍵に基づく楽音データとオーディオデータとが協働する楽音生成装置、楽音生成プログラム及び電子楽器に関する。
【背景技術】
【０００２】
電子楽器においては、いわゆる「自動伴奏」という機能が良く知られている。自動伴奏の機能の中には、所定の楽曲の自動伴奏パターンのデータが格納され、所定のテンポにしたがってそのデータが順次読み込まれて自動伴奏を構成する楽音が発音される。演奏者は、この自動伴奏を聴きつつ、所定のパート（一般的にはメロディ）を楽曲に規定されたタイミングで押鍵することにより、完成された楽曲の楽音が発音される。
【０００３】
自動伴奏パターンにおいては、所定のコードの構成音に相当する楽音が、自動伴奏パターンが示す伴奏シーケンスにしたがった発音タイミングで発音される。また、自動伴奏パターンには、メロディ音の対旋律などを構成するオブリガート音、および、リズム音も含まれ得る。
【０００４】
このような自動伴奏は、演奏者の鍵操作による楽音の発生と同様の発音形態を有している。すなわち、伴奏シーケンスにしたがった発音タイミングで、音高および音色を含むノートオンイベントが音源部に送信され、音源部が、波形データを格納したＲＯＭから、指定された音色のデータを音高にしたがった速度で波形データを読み出すことで、所定の音色および音高の楽音波形データを出力している。
【０００５】
このような自動伴奏機能を有する電子楽器において、演奏者はその楽曲の演奏に熟練しているとは限らず、正規の押鍵タイミングで鍵を押鍵出来ない場合や、誤った鍵を押鍵してしまう場合がある。特許文献１、２に開示された電子楽器では、このような場合に、自動伴奏パターンの読み出しを適切化して、勝手に伴奏だけが進んで言ってしまうような事態が生じることを防止している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２０６９６５号公報
【特許文献２】特開２００７−１１４５３９号公報
【特許文献３】特開昭６２−１３９５８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一方、オーディオプレーヤなど他の音響機器からのオーディオデータを受け入れ、或いは、マイクなどからの音響信号をサンプリングしたオーディオデータを受け入れ、そのようなオーディオデータと、音源部から発せられた楽音波形データの双方の再生が可能な電子楽器が提案されている。
【０００８】
たとえば、オーディオデータを自動伴奏として再生して、メロディ音を演奏者の鍵操作に基づき音源部により生成された楽音波形データとする装置を考えることができる。この場合に、オーディオデータは、所定のサンプリング周波数で読み出されるため、演奏者が正規の押鍵タイミングで押鍵出来なかった場合にも、オーディオデータの読み出しを演奏者の演奏に合わせて制御するのが困難であるという問題点があった。
【０００９】
本発明は、オーディオデータを自動伴奏として再生する際に、演奏者の鍵操作に応じて適切なオーディオデータの読み出しを実現できる楽音生成装置、楽音生成プログラム及び電子楽器を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の目的は、楽曲を構成する楽音の音高および発音タイミングを示す時間情報を含む曲データ、および、前記曲データにかかる楽曲の伴奏データであるオーディオデータを格納した記憶手段と、
並列に配置され演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段と、
前記曲データに含まれる時間情報に基づく経過時間にしたがって、前記オーディオデータを前記記憶手段から読み出して再生するオーディオデータ再生手段と、
前記演奏操作子の操作にかかる曲データにおける正規の発音タイミングに基づき、当該正規の発音タイミングから時系列的に未来にある直近の第１のゼロクロスポイントを、前記オーディオデータから検出するジャンプ先検出手段と、
前記曲データに示す発音タイミング経過までに、当該発音タイミングに対応する音高の楽音を発生させる前記演奏操作子が操作されたか否かを判断する操作判断手段と、
この操作判断手段にて前記演奏操作子が操作されていないと判断された場合に、前記第１のゼロクロスポイントを始点として、当該ゼロクロスポイントより以前のゼロクロスポイントのうち、発音されている楽音の音高に整合した周期に対応する区間の終点の位置に存在する第２のゼロクロスポイントを検出するループ先検出手段と、
この第２ゼロクロスポイントと前記第１のゼロクロスポイントとの間の区間をループ区間として前記オーディオデータを繰り返し読み出すループ読み出し手段と、
このループ読み出し手段により読み出しが開始された後に前記操作判断手段により前記演奏操作子が操作されたと判断された場合に、当該演奏操作子の操作タイミングから時系列的に未来にある直近の第３のゼロクロスポイントを、前記オーディオデータから検出するジャンプ元検出手段と、
前記検出された第３のゼロクロスポイントから前記検出された第１のゼロクロスポイントに、オーディオデータの読み出しをジャンプさせ、それ以降、通常のオーディオデータの読み出しを継続するように、前記オーディオデータ再生手段を制御する制御手段と、
を有する楽音生成装置により達成される。
【発明の効果】
【００１１】
本発明によれば、オーディオデータを自動伴奏として再生する際に、演奏者の鍵操作に応じて適切なオーディオデータの読み出しを実現できる楽音生成装置、楽音生成プログラム及び電子楽器を提供することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施の形態にかかる電子楽器の外観を示す図である。
【図２】図２は、本発明の実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。
【図３】図３は、本実施の形態において、ソング伴奏が行われているときの曲データおよびその押鍵タイミングの例を示す図である。
【図４】図４は、本実施の形態において、ソング伴奏が行われているときの曲データおよびその押鍵タイミングの例を示す図である。
【図５】図５は、本実施の形態において、ソング伴奏が行われているときの曲データおよびその押鍵タイミングの例を示す図である。
【図６】図６（ａ）は、本実施の形態にかかる曲データのデータ構成例を示す図、図６（ｂ）は、処理の過程で設定されるデータを格納したレジスタ群の例を示す図である。
【図７】図７（ａ）は、本実施の形態にかかる電子楽器において実行されるメインフローの例を示すフローチャート、図７（ｂ）は、本実施の形態にかかる大麻割り込み処理の例を示すフローチャートである。
【図８】図８は、本実施の形態にかかる鍵盤処理の例をより詳細に示すフローチャートである。
【図９】図９は本実施の形態にかかるレッスン鍵盤処理の例を示すフローチャートである。
【図１０】図１０は本実施の形態にかかるソング処理の例を示すフローチャートである。
【図１１】図１１は、本実施の形態にかかるソング開始処理の例を示すフローチャートである。
【図１２】図１２は、本実施の形態にかかるソング楽音再生処理の例を示すフローチャートである。
【図１３】図１３は、本実施の形態にかかるループポイントサーチ処理の例を示すフローチャートである。
【図１４】図１４は、本実施の形態にかかるループポイントの検出の例を説明する図である。
【図１５】図１５は、本実施の形態にかかるソングオーディオ再生処理の例を示すフローチャートである。
【図１６】図１６は、本実施の形態にかかるソングオーディオ再生処理の例を示すフローチャートである。
【図１７】図１７は、本実施の形態にかかる音源発音処理の例を示すフローチャートである。
【図１８】図１８は、本実施の形態において、楽曲における押鍵（ノートオン）および離鍵（ノートオフ）のタイミングとオーディオデータの例である。
【図１９】図１９は、演奏者による早押しがあった場合のオーディオデータの例を示す図である。
【図２０】図２０は、本発明の他の実施の形態にかかる曲データのデータ構成例を示す図である。
【図２１】図２１は、他の実施の形態にかかるループポイントサーチ処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して、本発明の実施の形態について説明する。図１は、本実施の形態にかかる電子楽器の外観を示す図である。図１に示すように、本実施の形態にかかる電子楽器１０は、鍵盤１１を有する。また、鍵盤１１の上部には、音色の指定、後述するオーディオデータにしたがったソング伴奏の開始・終了などを行なうためのスイッチ（符号１２、１３参照）や、演奏される楽曲に関する種々の情報、たとえば、音色、楽譜などを表示する表示部１５を有する。本実施の形態にかかる電子楽器１０は、たとえば、６１個の鍵（Ｃ２〜Ｃ７）を有する。
【００１４】
図２は、本発明の実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。図２に示すように、本実施の形態にかかる電子楽器１０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、サウンドシステム２４、鍵盤１１、入力インタフェース（Ｉ／Ｆ）１４、表示部１５、および、上記スイッチ１１、１２を有するスイッチ群１６を備える。
【００１５】
ＣＰＵ２１は、電子楽器１０全体の制御、鍵盤１１の鍵の押鍵やスイッチ群１６を構成するスイッチ（たとえば、図１の符号１２、１３参照）の操作の検出、鍵やスイッチの操作にしたがったサウンドシステム２４の制御、オーディオデータにしたがったソング伴奏など、種々の処理を実行する。
【００１６】
ＲＯＭ２２は、ＣＰＵ２１に実行させる種々の処理、たとえば、スイッチの操作、鍵盤の何れかの鍵の押鍵、押鍵に応じた楽音の発音、オーディオデータにしたがったソング伴奏などのプログラムを記憶する。また、ＲＯＭ２２は、ピアノ、ギター、ヴァイオリン、ギター、トランペット、クラリネットなど種々の音色の楽音を生成するための波形データを格納した波形データエリア、押鍵すべき鍵およびその押鍵タイミングを含む曲データを格納した曲データエリア、並びに、オーディオデータを格納したオーディオデータエリアを有する。ＲＡＭ２３は、ＲＯＭ２２から読み出されたプログラムや、処理の過程で生じたデータを記憶する。なお、ＲＡＭ２３にも、入力Ｉ／Ｆ１４を介して他の音響機器３０から受け入れたオーディオデータを格納するオーディオデータエリアを有する。オーディオデータは、所定のサンプリング周波数でサンプリングされた、たとえば、ＰＣＭデータであり、オーディオデータエリアの開始アドレスからデータ値が順次格納されている。
【００１７】
入力Ｉ／Ｆ１４は、他の音響機器３０と接続可能であり、他の音響機器３０からのオーディオデータを受け入れることができる。オーディオデータは、ＣＰＵ２１によりＲＡＭ２３のオーディオデータエリアに格納される。また、オーディオデータは、先頭アドレスのデータからの経過時間と対応付けられている。
【００１８】
サウンドシステム２４は、音源部２６、オーディオ回路２７、スピーカ２８およびオーディオデータ再生部２９を有する。音源部２６は、たとえば、押鍵された鍵についての情報或いは自動伴奏パターンについての情報をＣＰＵ２１から受信すると、ＲＯＭ２２の波形データエリアから所定の波形データを読み出して、所定の音高の楽音データを生成して出力する。また、音源部２６は、波形データ、特に、スネアドラム、バスドラム、シンバルなど打楽器の音色の波形データを、そのまま楽音データとして出力することもできる。また、オーディオデータ再生部２９は、オーディオデータエリアに格納されたオーディオデータを、サンプリング周波数にしたがって、また、曲データに含まれる時間情報に基づく経過時間にしたがって読み出す。また、オーディオデータ再生部２９は、後述するように、２つのループポイント（ループ元時刻およびループ先時刻）を受け入れて、ループポイント間のオーディオデータのループ再生ができる。オーディオ回路２７は、楽音データおよびオーディオデータを合成し、合成されたデータをＤ／Ａ変換して増幅する。これによりスピーカ２８から音響信号が出力される。
【００１９】
図３〜図５は、本実施の形態において、ソング伴奏が行われているときの曲データおよびその押鍵タイミングの例を示す図である。図３において、正規タイミングの曲データでは、最初の休符（時間ｔ０）の後、押鍵（キーオン）がされ、時間ｔ１（１）の後に離鍵し、さらに、時間ｔ２（１）の後、次の押鍵（押鍵時間（ｔ１（２））がなされることになっている。実際の押鍵動作（符号３２０）においては、最初の押鍵および離鍵は適切になされている。しかしながら、離鍵後にｔ２（１）だけ経過して時刻Ｔ（符号３２２参照）にて次の鍵を押鍵すべきところ、ｔ２’（＜ｔ２（１））だけ経過して（符号３１０参照）時刻Ｔ’（符号３２１参照）にて次の押鍵が行われている。すなわち、Ｔ−Ｔ’（＝ｔ２（１）−ｔ２’）だけ押鍵が早まっている。したがって、それ以降、曲データの読み込みは、Ｔ−Ｔ’だけ早める必要がある（符号３１１参照）。
【００２０】
図４においても、実際の押鍵動作（符号４２０）においては、最初の押鍵および離鍵は適切になされている。しかしながら、図４の例では、最初の鍵の離鍵後、ｔ２（１）が経過した後も次の鍵の押鍵がなされない（符号４１０参照）。たとえば、図５に示すように、最初の鍵の離鍵後、時間ｔ”（＞ｔ２（１））だけ経過した後、時刻Ｔ”（符号５２１参照）において押鍵がなされたと考える。この場合には、ｔ”−ｔ２（１）だけ押鍵が遅れている。したがって、曲データの読み込みは、ｔ”−ｔ２（１）だけ遅らせる必要がある（符号５１２参照）。また、符号５１１に示す時間においては、オーディオデータの新たなアドレスのデータを読み出すことができない。
【００２１】
本実施の形態においては、後述するように、押鍵による楽音の発生は音源部２６により生成される楽音であるが、ソング伴奏は、オーディオデータの再生により実現されるため、図３や図５に示すように、押鍵が早まり、或いは、遅くなった場合に、オーディオデータの読み出しを適切化する必要がある。本実施の形態では、後述するような手法で読み出しの適切化を実現している。
【００２２】
図６（ａ）は、本実施の形態にかかる曲データのデータ構成例を示す図、図６（ｂ）は、処理の過程で設定されるデータを格納したレジスタ群の例を示す図である。図６（ａ）に示すように、曲データ６００は、時間間隔を示すタイムのレコード（符号６０１、６０３、６０５参照）、押鍵すべき鍵の音高を含むノートオンイベントのレコード（符号６０２参照）および離鍵すべき鍵の音高を含むノートオフイベントのレコード（符号６０４参照）を含む。
【００２３】
最初のタイムのレコードは、最初の押鍵までの間の時間ｔ０を格納している。この時間ｔ０は、楽曲のイントロの時間に相当する。また、ノートオンイベントのレコードと、ノートオフイベントのレコードとの間のタイムのレコードに格納された時間ｔ１は、押鍵時間を示している。また、ノートオフイベントのレコードと、ノートオンイベントのレコードとの間のタイムのレコードに格納された時間ｔ２は、ある鍵が離鍵されてから次の鍵を押鍵するまでの時間間隔を示している。
【００２４】
図６（ｂ）に示すように、ＲＡＭ２３中のレジスタ群６１０は、経過時間レジスタ、時間情報レジスタ、今回音高情報レジスタ、次回音高情報レジスタ、ソング経過時間レジスタ、正解フラグ、スタータスレジスタ、ループ再生フラグを有する。経過時間レジスタには、ソング処理間で経過する時間が格納される。時間情報レジスタには、ノートオンイベント間の時間間隔（Δｔ＝ｔ１＋ｔ２）が格納される。今回音高情報レジスタおよび次回音高レジスタには、ノートオンイベントのレコードに含まれる音高情報が格納される。また、ソング経過時間レジスタは、ソングが開始されてからの経過時間が格納される。ステータスレジスタには、電子楽器１０の演奏ステータスが格納される。
【００２５】
以下、本実施の形態にかかる電子楽器１０において実行される処理について説明する。図７（ａ）は、本実施の形態にかかる電子楽器において実行されるメインフローの例を示すフローチャートである。また、図７（ｂ）は、本実施の形態にかかるタイマ割り込み処理の例を示すフローチャートである。タイマ割り込み処理においては、図７（ａ）に示すメインフローが実行されているときに、所定の時間間隔で、割込カウンタである経過時間カウンタおよびソング経過時間カウンタのカウンタ値が、それぞれインクリメントされる（ステップ７１１、７１２）。なお、タイマ割り込み処理は、ＣＰＵ２１の指示によりカウンタの停止が可能である。
【００２６】
図７（ａ）に示すように、電子楽器１０のＣＰＵ２１は、電子楽器１０の電源が投入されると、ＲＡＭ２３中のデータや、表示部１５の画像のクリアクリアを含むイニシャル処理（初期化処理）を実行する（ステップ７０１）。イニシャル処理（ステップ７０１）が終了すると、ＣＰＵ２１は、スイッチ群１６を構成するスイッチのそれぞれの操作を検出し、検出された操作にしたがった処理を実行するスイッチ処理を実行する（ステップ７０２）。
【００２７】
たとえば、スイッチ処理（ステップ７０２）においては、音色指定スイッチや、ソング伴奏のための曲データの指定スイッチ、ソング再生スイッチの操作が検出される。たとえば、ソング再生スイッチがオンになると、ＣＰＵ２１は、レジスタ群６１０中のステータスレジスタに所定の値を格納する。また、ソング再生スイッチがオフとなると、ステータスレジスタに、ソング再生オフ状態を示す値を格納する。
【００２８】
スイッチ処理（ステップ７０２）が終了すると、ＣＰＵ２１は、鍵盤処理を実行する（ステップ７０３）。図８は、本実施の形態にかかる鍵盤処理の例をより詳細に示すフローチャートである。鍵盤処理において、ＣＰＵ２１は、鍵盤１１の鍵を走査する（ステップ８０１）。鍵の走査結果であるイベント（ノートオン或いはノートオフ）は、ＲＡＭ２３に一時的に記憶される。ＣＰＵ２１は、ＲＡＭ２３に記憶された鍵の走査結果を参照して、ある鍵について新規なイベントが有るか否かを判断する（ステップ８０２）。ステップ８０２でＹｅｓと判断された場合には、ＣＰＵ２１はステータスレジスタを参照して、演奏ステータスが、「ソング再生中」であるかを判断する（ステップ８０３）。
【００２９】
ステップ８０３でＹｅｓと判断された場合には、レッスン鍵盤処理が実行される（ステップ８０４）。その一方、ステップ８０３でＮｏと判断された場合には、通常の鍵盤処理が実行される（ステップ８０５）。ステップ８０５においては、ＣＰＵ２１は、鍵イベントがノートオン（押鍵）であるかノートオフ（離鍵）であるかを判断する。ノートオンであれば、ＣＰＵ２１は、押鍵された鍵の音高の情報を含むノートオンイベントを生成して音源部２６に出力する。ノートオフであれば、離鍵された鍵の音高の情報を含むノートオフイベントを生成して音源部２６に出力する。
【００３０】
次に、レッスン鍵盤処理（ステップ８０４）について説明する。図９は本実施の形態にかかるレッスン鍵盤処理の例を示すフローチャートである。図９に示すように、ＣＰＵ２１は、鍵イベントが新規のノートオンであるかを判断する（ステップ９０１）。ステップ９０１でＹｅｓと判断された場合には、ＣＰＵ２１は、押鍵された鍵の音高の情報を含むノートオンイベントを生成して音源部２６に出力する（ステップ９０２）。また、ステップ９０１でＮｏと判断された場合には、離鍵された鍵の音高の情報を含むノートオフイベントを生成して音源部２６に出力する（ステップ９０３）。ステップ９０３の後、レッスン鍵盤処理は終了する。
【００３１】
ステップ９０２が実行された後、ＣＰＵ２１は、新規なノートオンにかかる鍵の音高が、次回音高情報レジスタ中に格納されたものと一致するかを判断する（ステップ９０４）。ステップ９０４でＮｏと判断された場合には、レッスン鍵盤処理を終了する。ステップ９０４でＹｅｓと判断された場合には、ステップ９０４でＹｅｓと判断された場合には、ＣＰＵ２１は、レジスタ群中の正解フラグを「１」にセットする（ステップ９０５）。この正解フラグは、演奏者による押鍵が、次に押鍵すべき鍵と一致した場合に「１」にセットされるものである。
【００３２】
次いで、ＣＰＵ２１は、現在、ソング伴奏データであるオーディオデータがループ再生中であるかを判断する（ステップ９０６）。ループ再生中であるかは、レジスタ群中のループ再生フラグが「１」であるかを判断すればよい。ステップ９０６でＮｏと判断された場合には、ＣＰＵ２１は、早押し対応のジャンプ元時刻をサーチし（ステップ９０７）、ステップ９０６でＹｅｓと判断された場合には、ＣＰＵ２１は、遅押し対応のジャンプ元時刻をサーチする（ステップ９０８）。ジャンプ元時刻は、押鍵タイミングから時系列的に未来でかつ直近の所定の位相（たとえば、データ値が負から正に移行する）のゼロクロスポイントである。
【００３３】
鍵盤処理（ステップ７０３）が終了すると、ＣＰＵ２１はソング処理を実行する（ステップ７０４）。図１０は本実施の形態にかかるソング処理の例を示すフローチャートである。図１０に示すように、ＣＰＵ２１は、ステータスレジスタを参照して、演奏ステータスが「ソング再生中」を示しているかを判断する（ステップ１００１）。ステップ１００４でＮｏと判断された場合には、ＣＰＵ２１は、ステータスレジスタを参照して、演奏スタータスが「ソング開始」を示しているかを判断する（ステップ１００２）。ステップ１００２でＮｏと判断された場合には、ソング処理を終了する。ステップ１００２でＹｅｓと判断された場合には、ＣＰＵ２１は、ソング開始処理を実行する（ステップ１００３）。
【００３４】
図１１は、本実施の形態にかかるソング開始処理の例を示すフローチャートである。図１１に示すように、ＣＰＵ２１は、ＲＯＭ２２に格納された曲データの先頭のレコードから、タイムｔ０を取得する（ステップ１１０１）。このタイムｔ０は、初期的な時間情報Δｔとして、レジスタ群中、時間情報レジスタに格納される。ＣＰＵ２１は、次のアドレスのレコードからノートオンイベントを取得して、ノートオンイベントに含まれる音高情報を、今回音高情報レジスタに格納する（ステップ１１０２）。また、ＣＰＵ２１は、次のノートオンイベントのレコードを取得して、当該次のノートオンイベントに含まれる音高情報を、時間音高情報レジスタに格納する（ステップ１１０３）。
【００３５】
また、ＣＰＵ２１は、タイマ割り込み処理によるソング経過時間カウンタの動作を許可し、ソング経過時間の計測を開始する（ステップ１１０４）とともに、オーディオデータ再生の開始をオーディオデータ再生部２９に指示する（ステップ１１０５）。また、ＣＰＵ２１は、ステータスレジスタに、演奏ステータスとして「ソング再生中」を示す情報を格納する（ステップ１１０６）。
【００３６】
ステップ１００１でＹｅｓと判断された場合には、ＣＰＵ２１は、ソング楽音再生処理を実行する（ステップ１００４）。図１２は、本実施の形態にかかるソング楽音再生処理の例を示すフローチャートである。図１２に示すように、ＣＰＵ２１は、経過時間レジスタのレジスタ値を取得する（ステップ１２０１）。次いで、ＣＰＵ２は、時間情報Δｔを算出すべきであるかを判断する（ステップ１２０２）。ステップ１２０２でＹｅｓと判断された場合には、今回押鍵された鍵についてのノートオンイベントのレコードの次のレコード中のタイムｔ１と、ノートオフイベントのレコードの次のレコード中のタイムｔ２とを加算して、加算値ｔ１＋ｔ２を、時間情報Δｔとして時間情報レジスタに格納する（ステップ１２０３）。なお、ステップ１２０２において時間情報Δｔを算出すべき場合とは、今回音高情報レジスタおよび次回音高情報レジスタの値が変更された場合である。
【００３７】
次いで、ＣＰＵ２１は、Δｔ−経過時間を算出する（ステップ１２０４）。ステップ１２０１〜１２０４において、前回の押鍵（ノートオン）の時刻からの経過時間が、Δｔだけ経過して、次の押鍵（ノートオン）の時刻に達しているかを判断している。ステップ１２０５で、ステップ１２０４での結果を参照して、前回の押鍵の時刻からΔｔだけ経過している場合には（ステップ１２０５でＹｅｓ）、次の押鍵をすべき時刻に達しているのに、押鍵がまだされていないことを示している。したがって、ステップ１２０５でＹｅｓと判断された場合には、ＣＰＵ２１は、ループポイントサーチ処理を実行する（ステップ１２０６）。
【００３８】
図１３は、本実施の形態にかかるループポイントサーチ処理の例を示すフローチャートである。図１３に示すように、ＣＰＵ２１は、今回音高レジスタ中の今回音高情報に基づき、当該音高の周期であるループ周期を算出する（ステップ１３０１）。このループ周期が、オーディオデータのループの基本周期となる。ＣＰＵ２１は、オーディオデータにおいて現在再生中のアドレスから過去に遡ってゼロクロスポイントをサーチする（ステップ１３０２）。ＣＰＵ２１は、ゼロクロスポイント間の平均周期を算出する（ステップ１３０３）。なお、ここで、サーチされるゼロクロスポイントは、すべて同じ位相のゼロクロスポイントである。すなわち、最初に見出されたゼロクロスポイントが、立ち上がり（データ値が負から正に移行する）ゼロクロスポイントであれば、他の見出されるゼロクロスポイントも、すべて立ち上がりのゼロクロスポイントとなる。
【００３９】
ＣＰＵ２１は、ループ周期と平均周期との差異の絶対値が、許容範囲内（つまり、所定の閾値より小さい）か、を判断する（ステップ１３０４）。ステップ１３０４でＮｏと判断された場合には、ＣＰＵ２１は、さらにオーディオデータの時系列を遡って次のゼロクロスポイントをサーチする（ステップ１３０２）。その一方、ステップ１３０４でＹｅｓと判断された場合には、ＣＰＵ２１は、上記差異の絶対値が許容範囲となったゼロクロスポイントを、オーディオデータのループポイントのうち、ループ先のポイントとしてＲＡＭ２３に格納する（ステップ１３０５）。なお、ループポイントはループ先のポイントおよびループ元のポイントがある。本実施の形態においては、ループ先のポイントを示す情報として、上記ゼロクロスポイントに対応する時刻（ループ先時刻）が格納される。また、後述するように、本実施の形態においては、正規の押鍵タイミングは、所定の位相（立ち上がり、つまりデータ値が負から正に移行する）のゼロクロスポイントと一致している。したがって、ループ元のポイントは、正規の押鍵タイミングに対応するポイントである。そこで、本実施の形態においては、ループ元のポイントを示す情報として、正規の押鍵タイミングに対応する時刻（ループ元時刻）が格納される。
【００４０】
その後、ＣＰＵ２１は、レジスタ群中のループ再生フラグを「２」にセットする（ステップ１３０６）。なお、ループ再生フラグは、オーディオデータのループ再生状態を示すものであり、フラグが「２」であることはループ再生開始状態であることを示す。また、フラグが「１」であることは、ループ再生状態、フラグが「０」であることは、ループ再生がされていない状態を、それぞれ示す。
【００４１】
図１４は、本実施の形態にかかるループポイントの検出の例を説明する図である。図１４において、ノートオフ（離鍵）のタイミングは符号１４０１で示し、本来の次のノートオン（押鍵）のタイミングが符号１４０２で示されている。ある鍵のノートオンから次のノートオンまでの時間はΔｔである（符号１４００参照）。また、ソング伴奏としてのオーディオデータは符号１４００で示されている。なお、上記既に押鍵および離鍵（符号１４０１）された件の音高はＡ４＝４４０Ｈｚであり、ループ周期は約２．２７ｍｓｅｃである。
【００４２】
図１４において、本来の次のノートオンで実際の押鍵がなされなかった場合には、ＣＰＵ２１は、オーディオデータのゼロクロスポイント（同位相のゼロクロスポイント）間の周期を計測する。最初の処理では、本来のノートオンのタイミングから時系列に遡って、１組のゼロクロスポイントが特定され、その間の波形（符号１４１１参照）の平均周期は２．２２ｍｓｅｃである。たとえば、本実施の形態において、Ａ４の音高に関する閾値を０．０１ｍｓｅｃとすると、｜２．２７−２．２２｜≧閾値であるため、図１３のステップ１３０４でＮｏと判断され、次のステップ１３０２では、さらに時系列に遡って、２組のゼロクロスポイントが特定される。
【００４３】
それぞれの間の２つの波形（符号１４１１、１４１２）の平均周期（２．２４５ｍｓｅｃ）が算出される。ここでも、｜２．２７−２．２４５｜≧閾値であるため、再度、ステップ１３０２に戻る。ステップ１３０２では、さらに時系列を遡って、３組のゼロクロスポイントが特定される。それぞれの間の３つの波形（符号１４１１〜１４１３参照）の平均周期（２．２６３ｍｓｅｃ）が算出される。ここでも、｜２．２７−２．２６３｜≧閾値であるため、再度、ステップ１３０２に戻る。
【００４４】
ステップ１３０２では、さらに時系列を遡って、４組のゼロクロスポイントが特定される。それぞれの間の４つの波形（符号１４１１〜１４１４参照）の平均周期（２．２７ｍｓｅｃ）が算出される。ここでは、｜２．２７−２．２７｜＜閾値であるため、ステップ１３０４においてＹｅｓと判断され、４つの波形１４１１〜１４１４からなる区間（符号１４２０参照）がループ区間となり、その始点および終点（符号１４２２、１４２１参照）がループポイントとなる。本実施の形態おいては、上記始点が、ループ先時刻に対応し、終点がループ元時刻に対応する。
【００４５】
このようにして、現在発音中の楽音の音高に整合した周期の波形の区間が得られ、当該区間の波形が繰り返し読み出されることで、演奏者にとって違和感のないソング伴奏音を出力することが可能となる。
【００４６】
ソング楽音再生処理（ステップ１００４）が終了すると、ＣＰＵ２１は、ソングオーディオ再生処理を実行する（ステップ１００５）。図１５および図１６は、本実施の形態にかかるソングオーディオ再生処理の例を示すフローチャートである。図１５に示すように、ＣＰＵ２１は、ループ再生フラグが「２」であるかを判断する（ステップ１５０１）。ループ再生フラグが「２」であることは、ループ再生開始状態であることを示している。ステップ１５０１でＹｅｓと判断された場合には、図１６（ｂ）のステップ１６１１に進む。ステップ１５０１でＮｏと判断された場合には、ＣＰＵ２１は、ループ再生フラグが「１」であるかを判断する（ステップ１５０２）。ループ再生フラグが「１」であることはループ再生状態であることを示している。ステップ１５０２でＹｅｓと判断された場合には、ＣＰＵ２１は、図１６（ａ）のステップ１６０１に進む。
【００４７】
ステップ１５０２でＮｏと判断された場合、すなわち、再生フラグが「０」である場合（ループ再生がされていない場合）には、ＣＰＵ２１は、正解フラグが「１」であるかを判断する（ステップ１５０３）。ステップ１５０３でＮｏと判断された場合には、ソングオーディオ再生処理を終了する。ステップ１５０３でＹｅｓと判断された場合は、演奏者が次に押鍵すべき鍵を、正規の押鍵タイミングより早く押鍵したこと（早押し）を示している。この場合には、ＣＰＵ２１は、経過時間カウンタを参照して、ジャンプ元時刻に到達しているかを判断する（ステップ１５０４）。ステップ１５０４でＮｏと判断された場合には、ソングオーディオ処理を終了する。
【００４８】
ジャンプ元時刻は、押鍵された鍵の押鍵タイミングから、時系列的に未来でかつ直近のゼロクロスポイントである。したがって、本実施例においては、ゼロクロスポイントを検出して、オーディオデータの継ぎ目を平滑にすることを可能にしている。ステップ１５０４でＹｅｓと判断された場合には、ＣＰＵ２１は、正解フラグを「０」にリセットする（ステップ１５０５）。また、ＣＰＵ２１は、ソング経過時間を、ジャンプ元時刻に基づき更新する（ステップ１５０６）。すなわち、ジャンプ元時刻と、本実施の形態におけるジャンプ先時刻に対応する、次の押鍵すべき鍵の正規の押鍵タイミングとを一致させることで、継ぎ目が円滑でかつ演奏者の早押しに対応したオーディオデータの再生が実現される。その後、ＣＰＵ２１は、曲データを参照して、今回音高情報、時間情報Δｔおよび次回音高情報をそれぞれ更新する（ステップ１５０７〜１５０９）。
【００４９】
次に、ステップ１５０２でＹｅｓと判断された場合について説明する。ステップ１５０２でＹｅｓと判断された場合には、ループ再生が既に行われている状態である。この場合には、ＣＰＵ２１は、正解フラグが「１」であるかを判断する（ステップ１６０１）。ステップ１６０２でＮｏと判断された場合には、ソングオーディオ再生処理を終了する。
【００５０】
ステップ１６０１でＹｅｓと判断された場合には、演奏者が次に押鍵すべき鍵を、正規の押鍵タイミングより遅く押鍵したこと（遅押し）を示している。ステップ１６０１でＹｅｓと判断された場合には、ＣＰＵ２１は、経過時間カウンタを参照して、ジャンプ元時刻に到達しているかを判断する（ステップ１６０２）。ステップ１６０２でＮｏと判断された場合には、ソングオーディオ処理を終了する。ステップ１６０２でＹｅｓと判断された場合には、ＣＰＵ２１は、ループ再生フラグを「０」にリセットする（ステップ１６０３）。その後、ステップ１５０５〜１５０９の処理が実行される。
【００５１】
次に、ステップ１５０１でＮｏと判断された場合について説明する。ステップ１５０１でＹｅｓと判断された場合には、ＣＰＵ２１は、図１３のステップ１３０５で設定された２つのループポイント（ループ元時刻およびループ先時刻）をオーディオデータ再生部２９に出力する（ステップ１６１１）。また、ＣＰＵ２１は、タイマ割り込み処理によるソング経過時間カウンタのカウントを停止する（ステップ１６１２）とともに、経過時間カウンタのカウントも停止する（ステップ１６１３）。これは、ループ再生中では、ループ元時刻とループ先時刻との間でオーディオデータがループ再生され、曲データ自体の進行は伴わないからである。また、ＣＰＵ２１はループ再生フラグを「１」にセットする（ステップ１６１４）。その後、ソングオーディオ再生処理は終了する。
【００５２】
ソング処理（ステップ７０４）が終了すると、ＣＰＵ２１は、音源発音処理を実行する（ステップ７０５）。図１７は、本実施の形態にかかる音源発音処理の例を示すフローチャートである。図１７の音源発音処理において、ステップ１７０１〜１７１２は、ＣＰＵ２１からの指示および受け入れた情報に基づいてオーディオデータ再生部２９が実行する。また、ステップ１７１３は、音源部２６が実行する。
【００５３】
図１７に示すように、オーディオデータ再生部２９は、ループ再生フラグが「１」であるかを判断する（ステップ１７０１）。ステップ１７０１でＮｏと判断された場合には、通常のオーディオデータの読み出しがなされる。すなわち、オーディオデータ再生部２９は、サンプリングレートにしたがったデータ読み出し時刻に到達したかを判断する（ステップ１７０２）。ステップ１７０２でＹｅｓと判断された場合には、オーディオデータ再生部２９は、オーディオデータのデータ読み出しアドレスに基づいてオーディオデータを読み出し（ステップ１７０３）、オーディオ回路２７に出力する（ステップ１７０４）。次いで、オーディオデータ再生部２９は、オーディオデータエリアのデータ読み出しアドレスを歩進する（ステップ１７０５）。
【００５４】
ステップ１７０１でＹｅｓと判断された場合には、オーディオデータ再生部２９は、オーディオデータのデータ読み出しアドレスが、ループ元時刻に対応する値に到達しているかを判断する（ステップ１７０６）。ステップ１７０６でＹｅｓと判断された場合には、オーディオデータ再生部２９は、データ読み出しアドレスをジャンプ時刻に応答する値に変更する（ステップ１７０７）。なお、ジャンプ先時刻は、押鍵された鍵の正規の押鍵タイミングに相当する時刻である。
【００５５】
次いで、オーディオデータ再生部２９は、サンプリングレートにしたがったデータ読み出し時刻に到達したかを判断する（ステップ１７０８）。ステップ１７０８でＹｅｓと判断された場合には、オーディオデータ再生部２９は、オーディオデータのデータ読み出しアドレスに基づいてオーディオデータを読み出し（ステップ１７０９）、時間の経過とともに減衰するエンベロープと乗算する（ステップ１７１０）。その後、オーディオデータ再生部２９は、乗算されたオーディオデータをオーディオ回路２７に出力する（ステップ１７１１）。また、オーディオデータ再生部２９は、オーディオデータエリアのデータ読み出しアドレスを歩進する（ステップ１７１２）。
【００５６】
このようにして、通常のオーディオデータの再生或いはオーディオデータのループ再生が行われると、音源部２６による楽音データ発音処理が実行される（ステップ１７０３）。無論、ステップ１７０１〜１７１２と、ステップ１７１３とは並列的に実行されても良い。楽音データ発音処理において、音源部２６は、ＣＰＵ２１からノートオンイベントを受け入れていれば、ノートオンイベントにしたがった音色の波形データをＲＯＭ２２から、音高にしたがった速度で読み出し、読み出された波形データに所定のエンベロープを乗算して、乗算されたデータをオーディオ回路２７に出力する。また、ＣＰＵ２１からノートオフイベントを受け入れていれば、ノートオフイベントにしたがった音高のデータの消音を実行する。
【００５７】
音源発音処理（ステップ７０５）が終了すると、ＣＰＵ２１は、その他の処理（たとえば、表示部１５への画像表示など：ステップ７０６）を実行して、ステップ７０２に戻る。
【００５８】
図１８は、本実施の形態において、楽曲における押鍵（ノートオン）および離鍵（ノートオフ）のタイミングとオーディオデータの例、図１９は、演奏者による早押しがあった場合のオーディオデータの例を示す図である。図１８に示すように、本実施の形態においては、予め曲データ１８００の押鍵タイミングが、オーディオデータ１８１０の所定の位相（この例ではデータ値が負から正に移行する）のゼロクロスポイントと一致するようになっている（符合１８１１、１８１２参照）。この例では、最初の正規の押鍵タイミングでの押鍵（符号１８１１参照）と次の正規の押鍵タイミングでの押鍵との間の波形は、同位相のゼロクロスポイントにて画定されている（符号１８２１）。同様に次の正規の押鍵タイミングでの押鍵とその次の正規の押鍵タイミングとの間の波形も、同位相のゼロクロスポイントにより画定されている。なお、本実施の形態においては正規の押鍵タイミングが、オーディオデータの所定の位相のゼロクロスポイントと一致するように構成されているがこれに限定されるものではない。
【００５９】
図１９において、演奏者が、最初の押鍵を、正規タイミングより早いタイミングで行っている（符合１９１１参照）。この場合には、オーディオデータにおいて、演奏者による押鍵タイミングから、時系列的に未来でかつ直近のゼロクロスポイントが見出される（符号１９３１参照）。そこで、上記ゼロクロスポイントで、最初の正規の押鍵タイミングでの押鍵（符号１８１１参照）と次の正規の押鍵タイミングでの押鍵との間の波形（符号１９４１）がつなぎ合わされる。なお、図１９において、タイミング１９３１と１９１２との間の波形１９４１は、図１８の波形１８２１と一致し、タイミング１９１２と１９１３との間の波形１９４２は、図１８の波形１８２２と一致する。
【００６０】
このように本実施の形態においては、演奏者による早押しがあった場合に、オーディオデータにおいて、時系列的に未来でかつ直近のゼロクロスポイントが見出され、そこから、データ値がゼロから開始する、正規の押鍵タイミングに対応するオーディオデータが継ぎ合わされて、再生される。したがって、正規の押鍵タイミングより早い押鍵があっても、当該早い押鍵にしたがったオーディオデータの読み出しがなされ、かつ、その継ぎ目も滑らかであり、不快なノイズが生ずることがない。
【００６１】
また、演奏者により正規のタイミングで押鍵が無かった場合には、押鍵の無い間、図１４を参照して説明したように、ループ先時刻（符号１４２２）とループ元時刻（符号１４２１）との間でオーディオデータのループ再生が行われる。その後、ユーザによる押鍵すべき鍵の押鍵が行われると、押鍵タイミングから時系列的に未来でかつ直近のゼロクロスポイントに対応するジャンプ元時刻から、押鍵された鍵の正規の押鍵タイミングに相当する時刻であるジャンプ先時刻に、オーディオデータの読み出しアドレスが切り換えられる。したがって、早押しのときと同様に、遅い押鍵にしたがったオーディオデータの読み出しがなされ、かつ、その継ぎ目も滑らかであり、不快なノイズが生ずることがない。
【００６２】
なお、本実施の形態においては、鍵の正規の押鍵タイミングが、オーディオデータの所定の位相のゼロクロスポイントとが一致するようにオーディオデータが構成されていたが、これに限定されるものではない。この場合には、上記ジャンプ先時刻として、鍵の正規の押鍵タイミングに対応するオーディオデータから時系列的に未来でかつ直近の、所定の位相のゼロクロスポイントを用いればよい。
【００６３】
本実施の形態においては、ＣＰＵ２１は、鍵の押鍵タイミングが、曲データに規定される発音タイミングより早かったと判断された場合に、オーディオデータにおいて、鍵の押鍵タイミングから時系列的に一方向にある直近でかつ所定の位相の第１のゼロクロスポイントを見出す。また、上記押鍵操作にかかる曲データにおける正規の発音タイミングに基づき、正規の発音タイミングから時系列的に一方向にある直近でかつ所定の位相の第２のゼロクロスポイントを見出す。ＣＰＵ２１は、上記第１のゼロクロスポイントの情報および第２のゼロクロスポイントの情報をオーディオデータ再生部２９に出力する。オーディオデータ再生部２９は、第１のゼロクロスポイントから第２のゼロクロスポイントに、オーディオデータの読み出しをジャンプさせ、それ以降、通常のオーディオデータの読み出しを継続する。
【００６４】
これにより、早押しの押鍵があった場合であっても、その押鍵の正規の発音タイミング（押鍵タイミング）に対応するオーディオデータの再生が可能であり、演奏者による押鍵と、オーディオデータの再生との間にずれが生じることを防止できる。また、同位相のゼロクロスポイントを連結させたオーディオデータの読み出しを実現することにより、オーディオデータの継ぎ目においてノイズが発生することを防止できる。
【００６５】
また、本実施の形態においては、第１のゼロクロスポイントから、第２のゼロクロスポイントにオーディオデータの読み出しをジャンプさせるときに、ＣＰＵ２１は、正規の発音タイミングに基づく経過時間に更新し、更新された経過時間にしたがって、オーディオデータ再生部３９は、オーディオデータを読み出す。したがって、演奏者による早押しがあった場合にも、経過時間を適切化することが可能である。
【００６６】
また、本実施の形態においては、ＣＰＵは、鍵の押鍵タイミングから時系列的に未来でかつ直近の第１のゼロクロスポイントを見出すとともに、正規の発音タイミング（押鍵タイミング）に基づき、当該正規の発音タイミングから時系列的に未来でかつ直近の第２のゼロクロスポイントを見出す。第１のゼロクロスポイントとして、押鍵タイミングから時系列的に未来でかつ直近のものを見出すことで、処理時間を考慮しつつ、適切に第１のゼロクロスポイントから第２のゼロクロスポイントへの移行が実現できる。
【００６７】
特に、本実施の形態においては、オーディオデータにおいて、楽音の発音タイミング（押鍵タイミング）に対応するタイミングにおいて、所定の位相のゼロクロスポイントが位置する。ＣＰＵ２１は、正規の発音タイミング（押鍵タイミング）に対応する所定の位相の第２のゼロクロスポイントを検出する。これにより、第２の押鍵タイミングの検出を容易にすることが可能となる。
【００６８】
本発明は以上の実施の形態に限定されるものではない。たとえば、前記実施の形態において、現在発音中の楽音の音高情報（今回音高情報）に基づいたループ周期に、その平均周期が近似する複数のループ波形を特定している。しかしながらこれに限定されるものではない。たとえば、曲データにコード名が付加されていれば、現在発音中の楽音に関連付けられたコード名に基づき、その根音に基づくループ周期と、オーディオデータのループ波形の周期とを比較しても良い。
【００６９】
図２０は、本発明の他の実施の形態にかかる曲データのデータ構成例を示す図である。図２０に示すように、他の実施の形態においては、曲データ２０００のノートオンイベント（符号２００１、２０１１参照）のそれぞれに関連付けられて、コード情報（符号２００２、２０１２参照）のレコードが設けられる。コード情報は、たとえば、ＣＭ７、Ｃｍ７、Ａｍ７、Ｄ７など、根音を示す情報を含む。
【００７０】
図２１は、図１３は、本実施の形態にかかるループポイントサーチ処理の例を示すフローチャートである。図２１に示すように、ＣＰＵ２１は、今回音高レジスタ中の今回音高情報に関連付けられた、曲データ中のコード情報を取得する（ステップ２１０１）。次いで、ＣＰＵ２１は、コード情報に含まれる根音に基づき、根音の周期であるループ周期を算出する（ステップ２１０２）。たとえば、コード情報が、ＡＭ７、Ａｍ７など、根音がＡであれば、例示的にＡ３（２２０ＫＨｚ）に基づくループ周期（４．５４５４ｍｓｅｃ）が算出される。ここでは、オクターブを考慮して、根音は比較的低めの音高が採用される。
【００７１】
引き続くステップ２１０３、２１０４は、図１３のステップ１３０２、１３０３と同様である。次いで、ＣＰＵ２１は、ループ周期と平均周期のｎ倍（ｎ＝１、２、４）との差異の絶対値が、許容範囲内（つまり、所定の閾値より小さい）か、を判断する（ステップ２１０５）。ステップ２１０５では、オーディオデータが、上記根音の１オクターブ、２オクターブ高い楽音である可能性を考慮している。
【００７２】
ステップ２１０５でＮｏと判断された場合には、ＣＰＵ２１は、さらにオーディオデータの時系列を遡って次のゼロクロスポイントをサーチする（ステップ２１０３）。ステップ２１０５でＹｅｓと判断された場合には、ＣＰＵ２１は、上記差異の絶対値が許容範囲となったゼロクロスポイントを、オーディオデータのループポイントのうち、ループ先のポイントとしてＲＡＭ２３に格納する（ステップ２１０６）とともに、ループ再生フラグを「２」にセットする（ステップ２１０７）。
【００７３】
以上、本発明の実施の形態について詳細に説明したが、本発明の範囲は上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明およびその均等の範囲が、本発明の範囲内に包含される。以下、本出願の願書に最初に添付した特許請求の範囲に記載された発明を付記する。なお、付記に記載した請求項の項番は、本出願の願書に最初に添付した特許請求の範囲の項番に相当する。
【００７４】
［付記］
請求項１に記載された発明は、楽曲を構成する楽音の音高および発音タイミングを示す時間情報を含む曲データ、および、前記曲データにかかる楽曲の伴奏データであるオーディオデータを格納した記憶手段と、
並列に配置され演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段と、
前記曲データに含まれる時間情報に基づく経過時間にしたがって、前記オーディオデータを読み出すオーディオデータ再生手段と、を備えた楽音生成装置であって、
前記演奏操作子の操作にかかる曲データにおける正規の発音タイミングに基づき、当該正規の発音タイミングから時系列的に一方向にある直近の第１のゼロクロスポイントを、前記オーディオデータから検出するジャンプ先検出手段と、
前記曲データに示す発音タイミング経過までに、当該発音タイミングに対応する音高の楽音を発生させる前記演奏操作子が操作されたか否かを判断する操作判断手段と、
この操作判断手段にて前記演奏操作子が操作されていないと判断された場合に、前記第１のゼロクロスポイントを始点として、当該ゼロクロスポイントより以前のゼロクロスポイントのうち、発音されている楽音の音高に整合した周期に比例する区間の終点に対応した位置に存在する第２のゼロクロスポイントを検出するループ先検出手段と、
この第２ゼロクロスポイントと前記第１のゼロクロスポイントとの間の区間をループ区間として前記オーディオデータを繰り返し読み出すループ読み出し手段と、
このループ読み出し手段により読み出しが開始された後に前記操作判断手段により前記演奏操作子が操作されたと判断された場合に、当該演奏操作子の操作タイミングから時系列的に一方向にある直近の第３のゼロクロスポイントを、前記オーディオデータから検出するジャンプ元検出手段と、
前記検出された第３のゼロクロスポイントから前記検出された第１のゼロクロスポイントに、オーディオデータの読み出しをジャンプさせ、それ以降、通常のオーディオデータの読み出しを継続するように、前記オーディオデータ再生手段を制御する制御手段と、を有する楽音生成装置である。
【００７５】
請求項２に記載された発明は、前記オーディオデータ再生手段が、前記第３のゼロクロスポイントから、前記第１のゼロクロスポイントにオーディオデータの読み出しをジャンプさせるときに、前記正規の発音タイミングに基づく経過時間に更新し、前記更新された経過時間にしたがって、前記オーディオデータを読み出すように構成されたことを特徴とする請求項１に記載の楽音生成装置である。
【００７６】
請求項３に記載された発明は、前記ジャンプ元検出手段が、前記演奏操作子の操作タイミングから時系列的に未来でかつ直近の第３のゼロクロスポイントを見出すように構成され、前記ジャンプ先検出手段が、前記正規の発音タイミングに基づき、当該正規の発音タイミングから時系列的に未来でかつ直近の第１のゼロクロスポイントを検出するように構成された楽音生成装置である。
【００７７】
請求項４に記載された発明は、前記オーディオデータにおいて、前記楽音の発音タイミングに対応するタイミングにおいて、所定の位相のゼロクロスポイントが位置し、前記ジャンプ先検出手段が、前記正規の発音タイミングに対応する所定の位相の第１のゼロクロスポイントを検出する請求項１に記載の楽音生成装置である。
【００７８】
請求項５に記載された発明は、楽曲を構成する楽音の音高および発音タイミングを示す時間情報を含む曲データ、および、前記曲データにかかる楽曲の伴奏データであるオーディオデータを格納した記憶手段と、並列に配置され演奏操作子の操作に基づいて、所定の楽音の楽音データを生成する楽音データ生成手段と、前記曲データに含まれる時間情報に基づく経過時間にしたがって、前記オーディオデータを読み出すオーディオデータ再生手段と、を備えたコンピュータに、
前記演奏操作子の操作にかかる曲データにおける正規の発音タイミングに基づき、当該正規の発音タイミングから時系列的に一方向にある直近の第１のゼロクロスポイントを、前記オーディオデータから検出するジャンプ先検出ステップと、
前記曲データに示す発音タイミング経過までに、当該発音タイミングに対応する音高の楽音を発生させる前記演奏操作子が操作されたか否かを判断する操作判断ステップと、
前記演奏操作子が操作されていないと判断された場合に、前記第１のゼロクロスポイントを始点として、当該ゼロクロスポイントより以前のゼロクロスポイントのうち、発音されている楽音の音高に整合した周期に比例する区間の終点に対応した位置に存在する第２のゼロクロスポイントを検出するループ先検出ステップと、
この第２ゼロクロスポイントと前記第１のゼロクロスポイントとの間の区間をループ区間として前記オーディオデータを繰り返し読み出すループ読み出しステップと、
このループ読み出しステップにより読み出しが開始された後、前記演奏操作子が操作されたと判断された場合に、当該演奏操作子の操作タイミングから時系列的に一方向にある直近の第３のゼロクロスポイントを、前記オーディオデータから検出するジャンプ元検出ステップと、
前記検出された第３のゼロクロスポイントから前記検出された第１のゼロクロスポイントに、オーディオデータの読み出しをジャンプさせ、それ以降、通常のオーディオデータの読み出しを継続するように、前記オーディオデータ再生手段を制御する制御ステップと、
を実行させる楽音生成プログラムである。
【符号の説明】
【００７９】
１０        電子楽器
１１        鍵盤
１２、１３  スイッチ
１５        表示部
２１        ＣＰＵ
２２        ＲＯＭ
２３        ＲＡＭ
２４        サウンドシステム
２５        スイッチ群
２６        音源部
２７        オーディオ回路
２８        スピーカ
２９        オーディオデータ再生部
【図１】
2015158686.tif 000003
【図２】
2015158686.tif 000004
【図３】
2015158686.tif 000005
【図４】
2015158686.tif 000006
【図５】
2015158686.tif 000007
【図６】
2015158686.tif 000008
【図７】
2015158686.tif 000009
【図８】
2015158686.tif 000010
【図９】
2015158686.tif 000011
【図１０】
2015158686.tif 000012
【図１１】
2015158686.tif 000013
【図１２】
2015158686.tif 000014
【図１３】
2015158686.tif 000015
【図１４】
2015158686.tif 000016
【図１５】
2015158686.tif 000017
【図１６】
2015158686.tif 000018
【図１７】
2015158686.tif 000019
【図１８】
2015158686.tif 000020
【図１９】
2015158686.tif 000021
【図２０】
2015158686.tif 000022
【図２１】
2015158686.tif 000023
【手続補正書】
【提出日】平成27年5月25日(2015.5.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
楽曲を構成する楽音の音高および発音タイミングを示す時間情報を含む曲データ、および、前記曲データにかかる楽曲の伴奏データであるオーディオデータを格納した記憶手段から、前記曲データに含まれる時間情報に基づく経過時間にしたがって前記オーディオデータを読み出すオーディオデータ読み出し手段と、
演奏操作子の操作にかかる曲データにおける正規の発音タイミングに基づき、当該正規の発音タイミングから時系列的に未来でかつ直近であり、さらに前記演奏操作子の操作タイミング時と同位相の第１のゼロクロスポイントを、前記オーディオデータから検出するジャンプ先検出手段と、
前記曲データに示す発音タイミング経過までに、当該発音タイミングに対応する音高の楽音を発生させる前記演奏操作子が操作されたか否かを判断する操作判断手段と、
この操作判断手段にて前記演奏操作子が操作されていないと判断された場合に、前記第１のゼロクロスポイントを始点として、当該ゼロクロスポイントより以前のゼロクロスポイントのうち、発音されている楽音の音高に整合した周期に対応する区間の終点の位置と同一もしくは直近にあり、かつ前記第１のゼロクロスポイントと同位相の第２のゼロクロスポイントを検出するループ先検出手段と、
この第２ゼロクロスポイントと前記第１のゼロクロスポイントとの間の区間をループ区間として前記オーディオデータを繰り返し読み出すループ読み出し手段と、
このループ読み出し手段により読み出しが開始された後に前記操作判断手段により前記演奏操作子が操作されたと判断された場合に、当該演奏操作子の操作タイミングから時系列的に未来でかつ直近にあり、さらに前記演奏操作子の操作タイミング時と同位相の第３のゼロクロスポイントを、前記オーディオデータから検出するジャンプ元検出手段と、
前記検出された第３のゼロクロスポイントから前記検出された第１のゼロクロスポイントに、オーディオデータの読み出しをジャンプさせ、それ以降、通常のオーディオデータの読み出しを継続するように、前記オーディオデータ読み出し手段を制御する制御手段と、
を有する楽音生成装置。
【請求項２】
前記オーディオデータ読み出し手段が、前記第３のゼロクロスポイントから、前記第１のゼロクロスポイントにオーディオデータの読み出しをジャンプさせるときに、前記正規の発音タイミングに基づく経過時間に更新し、前記更新された経過時間にしたがって、前記オーディオデータを読み出す請求項１に記載の楽音生成装置。
【請求項３】
楽曲を構成する楽音の音高および発音タイミングを示す時間情報を含む曲データ、および、前記曲データにかかる楽曲の伴奏データであるオーディオデータを格納した記憶手段から、前記曲データに含まれる時間情報に基づく経過時間にしたがって、前記オーディオデータを読み出すオーディオデータ読み出し手段と、を備えたコンピュータに、
前記演奏操作子の操作にかかる曲データにおける正規の発音タイミングに基づき、当該正規の発音タイミングから時系列的に未来でかつ直近にあり、さらに前記演奏操作子の操作タイミング時と同位相の第１のゼロクロスポイントを、前記オーディオデータから検出するジャンプ先検出ステップと、
前記曲データに示す発音タイミング経過までに、当該発音タイミングに対応する音高の楽音を発生させる前記演奏操作子が操作されたか否かを判断する操作判断ステップと、
前記演奏操作子が操作されていないと判断された場合に、前記第１のゼロクロスポイントを始点として、当該ゼロクロスポイントより以前のゼロクロスポイントのうち、発音されている楽音の音高に整合した周期に対応する区間の終点の位置と同一もしくは直近にあり、かつ前記第１のゼロクロスポイントと同位相の第２のゼロクロスポイントを検出するループ先検出ステップと、
この第２ゼロクロスポイントと前記第１のゼロクロスポイントとの間の区間をループ区間として前記オーディオデータを繰り返し読み出すループ読み出しステップと、
このループ読み出しステップにより読み出しが開始された後、前記演奏操作子が操作されたと判断された場合に、当該演奏操作子の操作タイミングから時系列的に未来でかつ直近にあり、さらに前記演奏操作子の操作タイミング時と同位相の第３のゼロクロスポイントを、前記オーディオデータから検出するジャンプ元検出ステップと、
前記検出された第３のゼロクロスポイントから前記検出された第１のゼロクロスポイントに、オーディオデータの読み出しをジャンプさせ、それ以降、通常のオーディオデータの読み出しを継続するように、前記オーディオデータ読み出し手段を制御する制御ステップと、
を実行させる楽音生成プログラム。
【請求項４】
演奏操作子と、
請求項１の楽音生成装置と、
前記楽音生成装置からの楽音データ及びオーディオデータに基づいた音響信号を出力するオーディオ手段と、
を有する電子楽器。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明の目的は、楽曲を構成する楽音の音高および発音タイミングを示す時間情報を含む曲データ、および、前記曲データにかかる楽曲の伴奏データであるオーディオデータを格納した記憶手段から、前記曲データに含まれる時間情報に基づく経過時間にしたがって前記オーディオデータを読み出すオーディオデータ読み出し手段と、
演奏操作子の操作にかかる曲データにおける正規の発音タイミングに基づき、当該正規の発音タイミングから時系列的に未来でかつ直近であり、さらに前記演奏操作子の操作タイミング時と同位相の第１のゼロクロスポイントを、前記オーディオデータから検出するジャンプ先検出手段と、
前記曲データに示す発音タイミング経過までに、当該発音タイミングに対応する音高の楽音を発生させる前記演奏操作子が操作されたか否かを判断する操作判断手段と、
この操作判断手段にて前記演奏操作子が操作されていないと判断された場合に、前記第１のゼロクロスポイントを始点として、当該ゼロクロスポイントより以前のゼロクロスポイントのうち、発音されている楽音の音高に整合した周期に対応する区間の終点の位置と同一もしくは直近にあり、かつ前記第１のゼロクロスポイントと同位相の第２のゼロクロスポイントを検出するループ先検出手段と、
この第２ゼロクロスポイントと前記第１のゼロクロスポイントとの間の区間をループ区間として前記オーディオデータを繰り返し読み出すループ読み出し手段と、
このループ読み出し手段により読み出しが開始された後に前記操作判断手段により前記演奏操作子が操作されたと判断された場合に、当該演奏操作子の操作タイミングから時系列的に未来でかつ直近にあり、さらに前記演奏操作子の操作タイミング時と同位相の第３のゼロクロスポイントを、前記オーディオデータから検出するジャンプ元検出手段と、
前記検出された第３のゼロクロスポイントから前記検出された第１のゼロクロスポイントに、オーディオデータの読み出しをジャンプさせ、それ以降、通常のオーディオデータの読み出しを継続するように、前記オーディオデータ読み出し手段を制御する制御手段と、
を有する楽音生成装置により達成される。