(57)【要約】【課題】  波形信号に基づいて楽音を再生する際に、タイミングずれの抑制と音質劣化の防止の両立を目的に複数の楽音を同期再生する。【解決手段】  基準信号及び波形信号の再生タイミングが基準タイミングに到達した際に、再生中の波形信号の波形位置と基準位置情報の示す波形位置とのずれを求める。基準信号及び波形信号の再生が進行し、波形信号の再生位置が補正位置情報の示す波形位置に到達してから、波形信号の再生位置をずれに従って補正する。再生位置が補正されると、補正前から補正後の波形位置に変更して波形信号を引き続き再生する。このように、基準タイミングにおいてずれを計測した場合にのみ、ずれを計測した基準タイミングでは補正を行わずに当該基準タイミングに後続するタイミングの到来を待ってからずれを補正することにより、タイミングずれを抑制するとともに音質劣化を防止しながら複数の楽音を同期再生することができる。【選択図】        図８
2014006415.tif 000002
【特許請求の範囲】
【請求項１】
波形信号と、所定の基準タイミングに再生すべき前記波形信号の波形位置を示す１乃至複数の基準位置情報と、前記基準位置情報とは異なる波形位置を示す１乃至複数の補正位置情報とを記憶する記憶手段と、
前記波形信号に対応した基準信号を再生する第１の再生手段と、
前記波形信号を再生する第２の再生手段であって、該第２の再生手段は、前記基準信号の再生と共に前記波形信号を再生するものと、
前記基準信号及び前記波形信号の再生タイミングが前記基準タイミングに到達した場合に、再生中の前記波形信号の波形位置と前記基準位置情報の示す波形位置とのずれを求める計測手段と、
前記波形信号の再生位置が前記補正位置情報の示す波形位置に到達した場合に、前記波形信号の再生位置を前記求めたずれに従って補正する補正手段と
を備え、
前記第２の再生手段は、前記波形信号の再生位置が前記求めたずれに従って補正されることに応じて、補正前の波形位置から補正後の波形位置に変更して前記波形信号を引き続き再生することを特徴とする自動演奏装置。
【請求項２】
前記記憶手段に記憶される波形信号は、所定の基本テンポに従って演奏された楽音を記録した楽音波形信号であることを特徴とする請求項１に記載の自動演奏装置。
【請求項３】
演奏テンポを設定するテンポ設定手段をさらに備えてなり、
前記第２の再生手段は、前記基本テンポと前記演奏テンポとの比に応じて楽音波形信号の時間軸伸縮制御を行い、前記設定された演奏テンポの楽音波形信号を生成することを特徴とする請求項２に記載の自動演奏装置。
【請求項４】
前記記憶手段に記憶される補正位置情報は、前記波形信号において振幅レベルが小さい波形位置を示すことを特徴とする請求項１乃至３のいずれかに記載の自動演奏装置。
【請求項５】
前記記憶手段に記憶される補正位置情報は、前記基準タイミング毎に区切られた波形信号において振幅レベルの最も小さい波形位置を示すことを特徴とする請求項４に記載の自動演奏装置。
【請求項６】
前記記憶手段に記憶される補正位置情報は、前記波形信号において振幅レベルが所定値より小さい波形位置を示すことを特徴とする請求項４に記載の自動演奏装置。
【請求項７】
前記第２の再生手段は、補正前の波形位置から補正後の波形位置に変更して前記波形信号を引き続き再生する場合に、補正前の波形位置に後続する波形信号の再生をフェードアウト制御する一方で、補正後の波形位置に後続する波形信号の再生をフェードイン制御することを特徴とする請求項１乃至６のいずれかに記載の自動演奏装置。
【請求項８】
前記第１の再生手段により再生される基準信号は、MIDIデータであることを特徴とする請求項１乃至７のいずれかに記載の自動演奏装置。
【請求項９】
前記記憶手段に記憶される波形信号は、所定の演奏パターンからなる所定長さのパターンデータであって、
前記第２の再生手段は、前記波形信号を繰り返し再生することを特徴とする請求項１乃至８のいずれかに記載の自動演奏装置。
【請求項１０】
前記記憶手段に記憶される基準位置情報は、１拍毎に再生すべき前記波形信号の波形位置を示すことを特徴とする請求項１乃至９のいずれかに記載の自動演奏装置。
【請求項１１】
コンピュータに、
波形信号と、所定の基準タイミングに再生すべき前記波形信号の波形位置を示す１乃至複数の基準位置情報と、前記基準位置情報とは異なる波形位置を示す１乃至複数の補正位置情報とを所定の記憶装置に記憶する手順と、
前記波形信号に対応した基準信号を再生する手順と、
前記基準信号の再生と共に前記波形信号を再生する手順と、
前記基準信号及び前記波形信号の再生タイミングが前記基準タイミングに到達した場合に、再生中の前記波形信号の波形位置と前記基準位置情報の示す波形位置とのずれを求める手順と、
前記波形信号の再生位置が前記補正位置情報の示す波形位置に到達した場合に、前記波形信号の再生位置を前記求めたずれに従って補正する手順と、
前記波形信号の再生位置が前記求めたずれに従って補正されることに応じて、補正前の波形位置から補正後の波形位置に変更して前記波形信号を引き続き再生する手順と
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、波形信号に基づいて楽音を再生する自動演奏装置及びプログラムに関する。特に、複数の楽音を同期して再生する技術に関する。
【背景技術】
【０００２】
従来から、例えば４小節単位などの所定単位長さからなるアルペジオパターンやベースパターンあるいはリズムパターン等を表す伴奏パターンデータを予め記憶しておき、この伴奏パターンデータに基づいて楽音の自動演奏を行う自動演奏装置が知られている。伴奏パターンデータは、コード伴奏用パートやベースパートさらにはリズムパートなどのパート別に、実際の楽器演奏や人の声あるいは自然音などをサンプリングした楽音波形信号（オーディオデータ又は波形データとも呼ぶ）で割り当てられる場合と、所定の規格に従って定義される楽音制御信号（例えばMIDI規格により定義されたMIDIデータ）で割り当てられる場合とがある。なお、この明細書において、楽音という場合、音楽的な音に限るものではなく音声あるいはその他任意の音を含んでいてもよい意味あいで用いるものとする。
【０００３】
伴奏パターンデータがMIDIデータで割り当てられている場合、自動演奏装置はイベントデータ（より詳しくはノートオンイベントやノートオフイベントなどの音符イベント）の読み出し速度を変えることによって、音高を変えることなく演奏テンポのみを変えて楽音を発生することができる。すなわち、MIDIデータに含まれる各イベントデータの読み出しタイミングを変えることで楽音の演奏テンポを変える。その一方、各イベントデータの読み出しタイミングを変えても各イベントデータのノートナンバ（音高情報）等の情報は同じままであるので、楽音の音高は変わらない。
【０００４】
他方、伴奏パターンデータがオーディオデータで割り当てられている場合に、自動演奏装置はタイムストレッチ制御を行うことにより、音高（ピッチ）を変えることなく演奏テンポのみを変えて楽音を発生することが知られている。なお、本明細書において「タイムストレッチ」とは、オーディオデータを「時間軸上で圧縮」（時間軸圧縮）することと、オーディオデータを「時間軸上で伸長」（時間軸伸長）することとを意味する。
【０００５】
ところで、伴奏パターンデータのうち一部のパートをMIDIデータで作成し、他のパートをオーディオデータで作成することがある。こうした伴奏パターンデータを用いて楽音を再生する際に、MIDIデータの演奏テンポ（イベント読み出しのテンポ)がオーディオデータの本来の(録音時の)テンポと異なるテンポに指定されることがある。そうした場合、MIDIデータに基づき再生される楽音とオーディオデータに基づき発音される楽音とでずれが生じる。そこで、オーディオデータを上述のタイムストレッチ制御により、MIDIデータの演奏テンポに合うように時間軸伸縮することが行なわれるが、このタイムストレッチ制御の際に実行する演算にも誤差があるために、オーディオデータの再生テンポはやはり指定された演奏テンポ（MIDIデータの演奏テンポ）と正確には一致せず、MIDIデータに基づき再生される楽音との間に微妙なタイミングずれが生じる。このずれは時間経過に伴い累積され、その結果として楽音の不調和が聴感上不自然な印象を与える程に無視できなくなるので問題となる。
【０００６】
そこで、上記問題を解決するために、オーディオデータに基づき発生される楽音と、MIDIデータに基づき発生される楽音とを同期して出力する技術が既に提案されている。例えば下記に示す特許文献１に記載の装置では、所定の周期毎に（例えば、１小節毎、１拍毎、1/16拍毎など）MIDIデータの再生位置に一致させるよう、各周期時点におけるオーディオデータの再生位置を当該周期に予め対応付けられた所定位置に変更するようにしている。これにより、オーディオデータに基づき発生される楽音とMIDIデータに基づき発生される楽音のタイミングが時間経過に応じて楽音に不調和の生ずるほど大きく乖離することのないように、所定周期毎にオーディオデータの再生位置の補正を行っている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2001-312277号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、従来の装置では、所定の周期その時々のタイミングずれの程度（詳しくは再生位置のずれ量）や補正後の楽音波形信号の波形状態（より具体的には補正前後の波形信号の繋がり）などを何ら考慮することなしに、単に所定周期が到来する度にオーディオデータの再生位置を補正する制御を一律に行うだけであった。そのため、聴感上の違和感が無視できないほどに楽音の音質が劣化しやすいので問題となる。
【０００９】
本発明は上述の点に鑑みてなされたもので、波形信号に基づいて楽音を再生する際に、タイミングずれの抑制と音質劣化の防止の両立を目的として、聴感上不自然な印象を与えることなく複数の楽音を同期再生する自動演奏装置及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【００１０】
本発明に係る自動演奏装置は、波形信号と、所定の基準タイミングに再生すべき前記波形信号の波形位置を示す１乃至複数の基準位置情報と、前記基準位置情報とは異なる波形位置を示す１乃至複数の補正位置情報とを記憶する記憶手段と、前記波形信号に対応した基準信号を再生する第１の再生手段と、前記波形信号を再生する第２の再生手段であって、該第２の再生手段は、前記基準信号の再生と共に前記波形信号を再生するものと、前記基準信号及び前記波形信号の再生タイミングが前記基準タイミングに到達した場合に、再生中の前記波形信号の波形位置と前記基準位置情報の示す波形位置とのずれを求める計測手段と、前記波形信号の再生位置が前記補正位置情報の示す波形位置に到達した場合に、前記波形信号の再生位置を前記求めたずれに従って補正する補正手段とを備え、前記第２の再生手段は、前記波形信号の再生位置が前記求めたずれに従って補正されることに応じて、補正前の波形位置から補正後の波形位置に変更して前記波形信号を引き続き再生することを特徴とする。
【００１１】
本発明によると、波形信号と共に、所定の基準タイミングに再生すべき前記波形信号の波形位置を示す１乃至複数の基準位置情報と、前記基準位置情報とは異なる波形位置を示す１乃至複数の補正位置情報とを記憶しておく。基準信号の再生と共に前記波形信号は再生される。これら基準信号及び波形信号の再生タイミングが基準タイミングに到達した際には、再生中の前記波形信号の波形位置と前記基準位置情報の示す波形位置とのずれを、前記記憶しておいた基準位置情報に従って求める。そして、さらに基準信号及び波形信号の再生が進行し、波形信号の再生位置が補正位置情報の示す波形位置に到達してから、波形信号の再生位置を前記求めたずれに従って補正する。波形信号の再生位置がずれに従って補正されると、補正前の波形位置から補正後の波形位置に変更して波形信号を引き続き再生する。このように、基準タイミングその時々において基準信号と波形信号との再生位置のずれの程度（ずれ量）を求めるが、このときにずれが生じていたとしても補正を行わず、さらに基準信号及び波形信号の再生が進行して波形信号の再生位置が補正位置情報の示す波形位置に到達したタイミングで補正を行うことにより、タイミングずれを抑制するとともに再生波形信号の音質劣化を防止しながら複数の楽音を同期再生することができる。すなわち、基準タイミングにおいてずれを計測した場合にのみ、ずれを計測した基準タイミングに後続するタイミングの到来を待ってずれを補正することから、従来のように聴感上の違和感が無視できないほどに楽音の音質が劣化してしまうことがない。
【００１２】
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【発明の効果】
【００１３】
本発明によれば、波形信号に基づいて楽音を再生する際に、基準タイミングにおけるずれを計測した場合に後続する補正位置にてずれを補正するようにしたことから、タイミングずれの抑制しつつ音質劣化の少ない楽音を生成することが容易にできるようになる、という効果が得られる。
【図面の簡単な説明】
【００１４】
【図１】この発明に係る自動演奏装置を適用した電子楽器のハードウエア構成例を示すブロック図である。
【図２】スタイルデータのデータ構成を示す概念図である。
【図３】オーディオパート制御情報を説明するための概念図である。
【図４】自動演奏処理の一実施例を示すフローチャートである。
【図５】割り込み処理の一実施例を示すフローチャートである。
【図６】オーディオデータの切り替え制御の一実施例を説明するための概念図である。
【図７】オーディオデータの切り替え制御の別の実施例を説明するための概念図である。
【図８】オーディオデータのタイミングずれ補正を説明するための概念図である。
【発明を実施するための形態】
【００１５】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【００１６】
図１は、この発明に係る自動演奏装置を適用した電子楽器のハードウエア構成例を示すブロック図である。本実施形態に示す電子楽器は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータの制御の下に各種の処理が実行されるようになっている。ＣＰＵ１は、この電子楽器全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してＲＯＭ２、ＲＡＭ３、記憶装置４、演奏操作子５、パネル操作子６、表示部７、オーディオ再生部８、ＭＩＤＩ音源部９、楽音制御部１０、インタフェース１１がそれぞれ接続されている。
【００１７】
更に、ＣＰＵ１には、タイマ割込み処理（インタラプト処理）における割込み時間や各種時間を計時するタイマ１Ａが接続されている。例えば、タイマ１Ａは、楽音を自動演奏する際の演奏テンポや、オーディオデータのタイムストレッチ制御を行う際の周波数などを設定するためのテンポクロックパルスを発生する。タイマ１ＡからのテンポクロックパルスはＣＰＵ１に対して処理タイミング命令として与えられたり、あるいはＣＰＵ１に対してインタラプト命令として与えられたりする。ＣＰＵ１は、これらの命令に従って各種処理を実行する。
【００１８】
ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種制御プログラムや各種データ等を格納する。ＲＡＭ３は、ＣＰＵ１が所定のプログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを一時的に記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、テンポラリメモリなどとして利用される。
【００１９】
記憶装置４には、複数のセクションデータで構成されるスタイルデータ（後述する図２参照）などの各種データ等を多数記憶することが可能な内蔵データベースが構成される。また、これらの他に、ＣＰＵ１が実行する各種制御プログラム等を記憶するようにしてもよい。なお、上述したＲＯＭ２に制御プログラムが記憶されていない場合、この記憶装置４（例えばハードディスク）に制御プログラムを記憶させておき、それをＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１に実行させることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００２０】
なお、記憶装置４はハードディスク（HD）に限られず、フレキシブルディスク（FD）、コンパクトディスク（CD‐ROM・CD‐RAM）、光磁気ディスク（MO）、あるいはDVD（Digital Versatile Disk）等の様々な形態の記憶媒体を利用する記憶装置であればどのようなものであってもよい。あるいは、フラッシュメモリなどの半導体メモリであってもよい。
【００２１】
演奏操作子５は、例えば楽音の音高を選択するための複数の鍵を備えた鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子５は演奏者自身の手弾きによるマニュアル演奏のために使用できるのは勿論のこと、コードを入力する入力手段などとして使用することもできる。勿論、演奏操作子５は鍵盤等の形態に限らず、楽音の音高を選択するための弦を備えたネック等のような形態のものなど、どのようなものであってもよい。すなわち、この自動演奏装置を電子楽器に適用する場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。
【００２２】
パネル操作子（スイッチ等）６は、例えばスタイルデータを選択する選択スイッチ、スタイルデータを構成するいずれかのセクションデータへの切り替えを指示するセクション切り替えスイッチ、演奏テンポを設定するテンポ設定スイッチ、自動演奏の開始／停止を指示する再生／停止ボタン、コードを入力する入力操作子、音色・効果などのパラメータを設定する設定スイッチ等、各種の操作子を含んで構成される。勿論、音高、音色、効果等を選択・設定・制御するための数値データ入力用のテンキーや文字データ入力用のキーボード、あるいは表示部７に表示された各種画面の位置を指定するポインタを操作するマウスなどの各種操作子を含んでいてもよい。
【００２３】
表示部７は、例えば液晶表示パネル（LCD）やCRT等から構成されるディスプレイであって、上記スイッチ操作に応じて各種画面（図示を省略したが、例えばスタイル選択画面や演奏テンポ設定画面やセクション切り替え画面など）を表示するのは勿論のこと、スタイルデータの内容などの各種情報あるいはＣＰＵ１の制御状態などを表示することもできる。演奏者は該表示部７に表示されるこれらの各種情報を参照することで、スタイルデータの選択や演奏テンポの設定さらにはセクションの切り替えなどの操作を容易に行うことができる。
【００２４】
オーディオ再生部８は、複数のトラック（パート）毎に再生波形信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられるオーディオデータに基づいて再生波形信号を生成し出力する。このとき、オーディオデータの音高を変えることなく再生時間を短くしたり長くしたりする時間軸の調整を行うことができる。このオーディオデータの時間軸の調整を行うタイムストレッチ制御の方法には種々の方法があるが、それらは公知であることからここでの詳細な説明は省略する。さらに、本実施形態において、オーディオ再生部８は、MIDIデータに基づき発生される楽音に同期した再生波形信号を生成し出力する。
【００２５】
MIDI音源部９は、複数のトラック（パート）毎に再生波形信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられるMIDIデータを入力し、このMIDIデータに含まれる各種のイベント情報に基づいて再生波形信号を生成し出力する。MIDI音源部９はコンピュータを用いて構成されており、そこにおいてMIDIデータに基づく自動演奏制御は、コンピュータが所定のアプリケーションプログラムを実行することにより実施される。
【００２６】
なお、MIDI音源部９はコンピュータプログラムの形態に限らず、DSP（ディジタル・シグナル・プロセッサ）によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウエア装置の形態で実施してもよい。さらに、MIDI音源部９の楽音合成方式は波形メモリ方式に限らず、ＦＭ方式、物理モデル方式、高調波合成方式、フォルマント合成方式等を採用してもよく、またこれらの各種楽音合成方式のいずれを単独または複数を組み合わせてもよい。
【００２７】
上記オーディオ再生部８及びMIDI音源部９は共に楽音制御部１０に接続されており、楽音制御部１０ではそれらから発生された再生波形信号に所定のディジタル信号処理を施して効果を付与するとともにこれらを混合（加算）し、スピーカなどのサウンドシステム１０Ａに出力する。すなわち、ここに示す楽音制御部１０は図示を省略したが、信号混合（加算）回路、D/A変換回路、音量制御回路などを含んで構成されてなる。
【００２８】
インタフェース１１は、当該装置と図示しない外部機器との間でスタイルデータやオーディオデータさらにはMIDIデータなどの各種データ、制御プログラムなどの各種情報を送受信するためのインタフェースである。このインタフェース１１は、例えばMIDIインタフェース，ＬＡＮ，インターネット，電話回線等であってよく、また有線あるいは無線のものいずれかでなく双方を具えていてよい。
【００２９】
なお、演奏操作子５や表示部７あるいはMIDI音源部９などを１つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことは言うまでもない。
なお、本発明に係る自動演奏装置は電子楽器に限らず、パーソナルコンピュータ、PDA（携帯情報端末）や携帯電話等の携帯通信端末、あるいはゲーム装置など、少なくともオーディオデータに基づいて楽音の自動演奏を行うことのできるものであればどのような形態の装置・機器に適用してもよい。
【００３０】
図２は、電子楽器に構成されたデータベースに記憶されるスタイルデータのデータ構成を示す概念図である。スタイルデータは、予め電子楽器内に記憶されている(つまり電子楽器のメーカが作成した)ものに限らず、ユーザが新規に作成したものを追加記憶する、メーカやその他の利用者が新規に作成し外部機器（例えばサーバ装置など）に記憶したものを取得して、既存のデータと差し替えあるいは追加記憶することもできるようになっている。
【００３１】
スタイルデータは、複数セクション（メイン、フィルイン、イントロ、エンディング等）の各セクションにつき、複数パート（コードバッキング、べース、リズム等）毎に用意された基本となる伴奏パターンデータを有する。メインセクションは１〜数小節の決まったパターンが繰り返し再生されるセクションであり、それ以外のセクションは決まったパターンが１回のみ再生されるセクションである。自動演奏制御時において、イントロセクションやフィルインセクションを再生終了した場合には自動的にメインセクションに戻って自動演奏は続けられるが、エンディングセクションを再生終了した場合にはその時点で自動演奏は終了される。ユーザは１曲の中で、選択済みの１つのスタイルデータ内のセクションを任意に切り替えながら自動演奏を実行する。典型的には、イントロセクションから自動演奏を開始し、演奏する曲長分だけメインセクションを繰り返した後にエンディングセクションに切り替えることにより自動演奏を終了する。また、メインセクションの再生中には、曲の盛り上がりや曲調の切り替わりに合わせてフィルインセクションを挿入する。なお、伴奏パターンデータはセクションごとに異なる１〜複数小節の長さであってよい。
【００３２】
スタイルデータは、伴奏パターンデータとして複数パート（又はトラック）の全てにMIDIデータを割り当ててあるMIDIスタイルと、少なくとも１つのパート（主にリズムパート）にオーディオデータを、残りのパートにMIDIデータを割り当ててあるオーディオスタイルとに分けられる。図２に示す「スタイル１」はMIDIパートのみで構成されるMIDIスタイル、「スタイルｌ」はオーディオパート１つを含むオーディオスタイルの例である。MIDIデータは音符イベント及び発音タイミング等のMIDI形式のイベント列からなる楽音制御信号であり、オーディオデータは実際の楽器演奏や人の声あるいは自然音などをサンプリングした楽音波形信号である（図３参照）。
【００３３】
MIDIデータは所定のコードに基づいて作成されており、演奏時に指定されるコードに従ってコード変換される。例えば、所定のコードはＣメジャーであり、演奏時にユーザによってコードが指定されると、伴奏パターンデータ中のノートの音高が指定のコードに合うように変換される。MIDIパート制御情報は個々のスタイルに付随される情報であり、こうしたコード変換のルールなど、MIDIデータに基づき自動演奏を制御するための制御パラメータである。
【００３４】
オーディオパート制御情報は個々のオーディオデータ毎に付随される情報であり、例えばオーディオデータ記録時のテンポ情報（基本テンポ）、拍情報（基準位置情報）、シンクポイント情報（補正位置情報）、アタック情報、オンセット情報（切替位置情報）などを含む。これらのオーディオパート制御情報は対応するオーディオデータを解析することによって得られ、個々のオーディオデータに対応付けられて予めスタイルデータに記憶される。自動演奏時には、このオーディオパート制御情報が参照されることによりオーディオデータに基づく自動演奏の制御が行われる。このオーディオパート制御情報の詳細について、図３を参照しながら説明する。
【００３５】
図３（ａ）は、オーディオスタイルのオーディオパートである１小節分のオーディオデータ（楽音波形信号）を拍情報(sb1〜sb4)及びシンクポイント情報(ss1〜ss4)の位置で分割して、分割後の各波形に対し時系列にw1から順にw8までの記号を付したものを示している。これらの波形w1〜W8に含まれる多数のサンプリング波形には、時系列順に昇順又は降順のサンプリング波形番号が付されている。拍情報(sb1〜sb4)は、オーディオデータの１小節の中で何拍目の位置に相当するかを表す再生タイミング情報（基準タイミング）であり、MIDIデータとオーディオデータの同期の基準となる位置として参照される。具体的には、オーディオデータの１小節内において複数の音楽的な拍に対応する各位置にあるサンプリング波形を示す情報（例えばサンプリング波形番号など）である。シンクポイント情報(ss1〜ss4)は波形を補正するための補正位置を示す情報であり、より具体的には振幅の小さいあるいは自己相関性の高いサンプリング波形、言い換えればタイミングずれを補正して再生波形信号を生成するときに音質劣化の生じ難い波形接続を行い得るサンプリング波形を示す情報である。この実施例では、例えば図３(ａ)に示すように、各拍で区切られた区間ごとに最も振幅レベルの小さい波形位置をシンクポイント情報としている。また、アタック情報（At1，At4等）は、分割後の各波形（w1〜w8）において音鳴り開始からピーク位置までのうちユーザに最も音として認識されやすい波形位置、例えば振幅レベルの変化量の最も大きい波形位置を示す情報である。この実施例では、最も振幅レベルが大きくなるピーク位置をアタック情報としている。
【００３６】
図３（ｂ）では、上段にメインセクション及びフィルインセクションの各１小節分のオーディオデータ（楽音波形信号）を示し、下段にオンセット情報を示してある。オンセット情報は、メインセクションとフィルインセクションを切り替える際の切り替えタイミングを制御する際に参照される情報である。図３(ｂ)に示す例では、オーディオデータに含まれる複数の各音（各ピーク波形）の立ち上がり位置がオンセット情報として定義されている。メインセクションは６つのピーク波形を有し、フィルインセクションは９つのピーク波形を有している。したがって、メインセクションにおけるピーク波形を含む６つの各波形の立ち上がり位置にある記号Mo1〜Mo6を付した各サンプリング波形が、メインセクションの当該オーディオデータのオンセット情報とされる。一方、フィルインセクションにおけるピーク波形を含む９つの各波形の立ち上がり位置にある記号Fo1〜Fo9を付した各サンプリング波形が、フィルインセクションの当該オーディオデータのオンセット情報とされる。
【００３７】
なお、スタイルデータの構成は、上述の形態に限定されない。例えば、スタイルデータの記憶場所とオーディオデータやMIDIデータの記憶場所とが異なっており、スタイルデータ内に個々のオーディオデータやMIDIデータの記憶場所を指し示す情報が記憶されていてもよい。また、MIDIパート制御情報やオーディオパート制御情報についても、各スタイル内に含まれているのではなく、別の場所で管理されていてもよい。例えば、個々のMIDIデータ、オーディーデータ、MIDIパート制御情報、オーディオパート制御情報を記憶装置４だけでなく、ＲＯＭ２やＲＡＭ３あるいはインタフェース１１を通じて接続されたサーバ装置などの別々の場所に記憶しておき、再生時にそれぞれの記憶場所からＲＡＭ３に読み込むことで本実施例と同様の機能を実現するようにしてもよい。
【００３８】
次に、ＣＰＵ１が実行する「自動演奏処理」について説明する。図４は、自動演奏処理の一実施例を示すフローチャートである。当該処理は、多数のスタイルデータの中から任意のオーディオスタイルが選択された状態で且つユーザにより自動演奏開始指示がなされた場合に開始され、ユーザによる自動演奏終了指示がなされた場合あるいはエンディングセクションの再生を終了した場合に終了される。
【００３９】
ステップＳ１は、初期化処理を実行する。初期化処理としては、例えばユーザ操作に応じた演奏テンポの設定や、選択済みのスタイルデータをMIDIデータ及びオーディオデータと共にＲＯＭ２や記憶手段４等から読み出してＲＡＭ３に記憶する処理などがある。ステップＳ２は、選択済みのスタイルデータのうち再生用に指定された任意の１つのセクションにおいて伴奏パターンデータとしてMIDIデータが割り当てられているパート（MIDIパートと呼ぶ）について、設定した演奏テンポに応じてＲＡＭ３からのMIDIデータの読み出しを開始する。これに応じて、MIDIデータに基づく楽音が再生される。
【００４０】
ステップＳ３は、設定した演奏テンポに応じて伴奏パターンデータとしてオーディオデータが割り当てられているパート（オーディオパートと呼ぶ）の再生を開始する。このとき、設定した演奏テンポが基本テンポと異なっていれば、オーディオデータのタイムストレッチ制御を行うことによって演奏テンポにあった楽音を生成するように、ＲＡＭ３に記憶したオーディオデータに基づく自動演奏の制御が行われる。これにより、オーディオデータに基づく楽音が再生される。上記ステップＳ２及びＳ３の処理によって、MIDIパートとオーディオパートのそれぞれがユーザによって設定された演奏テンポで再生される、すなわちスタイルデータの全パートが同時に再生される。
【００４１】
ステップＳ４は、ユーザ指示の受付の有無を判定する。ユーザ指示がないと判定した場合には（ステップＳ４のＮＯ）、ステップＳ２の処理に戻ってMIDIパートとオーディオパートの再生を続けながらユーザ指示を待つ。ユーザ指示があると判定した場合には（ステップＳ４のＹＥＳ）、ユーザ指示に従う各種処理を行う（ステップＳ５，Ｓ９，Ｓ１２）。この実施例では、ユーザ指示が「メインセクションからフィルインセクションへのセクション変更指示」（ステップＳ５）、「演奏テンポの変更指示」（ステップＳ９）、自動演奏の終了指示（ステップＳ１２）である場合に分けて、各指示に対応した処理を実行する。
【００４２】
ユーザ指示が「メインセクションからフィルインセクションへのセクション変更指示」である場合には（ステップＳ５のＹＥＳ）、ステップＳ６〜Ｓ８の処理を行い、その後にステップＳ２の処理に戻る。なお、メインセクションからフィルインセクションへのセクション変更指示とは、メインセクションが再生されている状態のときにユーザがパネル操作子6などの操作によってフィルインセクションを再生するよう指定したことを指す。ステップＳ６は、切り替え先のフィルインセクションのオーディオデータやオーディオデータ制御情報をロード、つまり記憶装置４に記憶されているそれらのデータをＲＡＭ３に読み込む。ステップＳ７は、切り替え先のフィルインセクションのオーディオパート制御情報よりオンセット情報を取得する。ステップＳ８は、取得したオンセット情報のうち再生中のメインセクションのオーディオデータの現在の再生位置以降で最も近い（次の）オンセット情報を「セクション切り替えタイミング」としてセットする。
【００４３】
ユーザ指示が「演奏テンポの変更指示」である場合には（ステップＳ９のＹＥＳ）、ステップＳ１０〜Ｓ１１の処理を行い、その後にステップＳ２の処理に戻る。ステップＳ１０は、オーディオデータの基本テンポと設定された演奏テンポとの変化率を求める。ステップＳ１１は、前記求めたテンポ変化率に応じてオーディオデータのタイムストレッチ制御（時間軸伸縮制御）を実行する。この際、オーディオパート制御情報のアタック情報を参照することで、音質劣化を少なくすることができる。タイムストレッチ制御については公知であるので説明を省略する。
【００４４】
ユーザ指示が「自動演奏の終了指示」である場合には（ステップＳ１２のＹＥＳ）、指示に応じた終了制御を行って本自動演奏処理を終了する。例えば「自動演奏の終了指示」がメインセクションからエンディングセクションへのセクション切り替え指示である場合には、当該指示タイミングの次小節からメインセクションのデータ再生に変えてエンディングセクションのデータ再生を開始し、当該データを最後まで再生する制御を行った後に本自動演奏処理を終了する。一方、「自動演奏の終了指示」が再生／停止ボタン操作による自動演奏の停止指示である場合には、当該停止指示がなされた時点で強制的にデータ再生終了制御を行うことにより本自動演奏処理を終了する。
【００４５】
ユーザ指示が上記した何れの指示でもない場合には（ステップＳ５，Ｓ９，Ｓ１２のいずれもがＮＯ）、ユーザ指示に応じた「その他の処理」を実行する。その他の処理を実行するユーザ指示としては、例えばメインセクションからフィルインセクション又はエンディングセクション以外へのセクション切り替え指示、再生中のパートのうち任意のパートの再生をミュート/ミュート解除する指示、スタイルデータを変更する指示、音色変更や音量変更の指示などがある。
【００４６】
次に、「割り込み処理」について説明する。図５は、割り込み処理の一実施例を示すフローチャートである。当該割り込み処理は自動演奏の開始から終了まで、クロックに応じた所定の時間間隔毎に繰り返し起動される。ここで、演奏テンポに応じてクロックあたりの時間長は変わることから、ユーザによる演奏テンポの変更指示に応じて当該処理を繰り返し起動する時間間隔（つまり割り込み処理タイミング）は当然に変わる。
【００４７】
ステップＳ２１は、再生カウンタの値を「＋１」つまりは自動演奏の開始にあわせてカウントが開始されるクロックカウント値を、本処理を起動するたびに「１」加算する。ステップＳ２２は、再生カウンタ値がセクション切り替えタイミングに到達したか否かを判定する。ここで、再生カウンタの値がセクション切り替えタイミングに到達したと判定される場合をいくつか挙げると、再生カウンタの値が「セクション切り替えタイミング」としてセットされたタイミング（図４のステップＳ８参照）に到達したとき、自動的にメインセクションへの切り替えが行われるときつまりはイントロセクションやフィルインセクションの再生が終わったとき、メインセクションから別のメインセクション又はエンディングセクションへの切り替え指示がなされたあとに、切り替え前のメインセクションの再生位置が小節区切りの位置まで到達したときなどがある。
【００４８】
再生カウンタの値がセクション切り替えタイミングに到達したと判定した場合には（ステップＳ２２のＹＥＳ）、読み出し対象のオーディオデータを切り替え先のセクションのオーディオデータに切り替える（ステップＳ２３）。つまり、ユーザがメインからフィルインへのセクション切り替え指示を行なった際（図４のステップＳ５でＹＥＳ）には、ユーザ操作に応じてすぐに切り替え先セクションであるフィルインセクションのデータが読み出されるのではなく、ステップＳ８でセットされたセクション切り替えタイミングに到達した際にフィルインセクションのデータ読み出しが開始される。この切り替え制御には、ユーザによるセクション間の切り替えタイミングに関わらず、ノイズの発生を低減する効果がある。
【００４９】
セクション間におけるオーディオデータの切り替え制御について説明する。図６及び図７は、セクション間におけるオーディオデータの切り替え制御の一実施例を説明するための概念図である。なお、ここでは図３（ｂ）に示したメインセクションからフィルインセクションへのセクション切り替え時におけるオーディオデータの切り替え制御を例に説明する。
【００５０】
まず、図６を参照しながら、図中において点線で示す１拍目の真ん中あたりのタイミングで、ユーザがセクション切り替え指示操作を行った場合について説明する。この場合、ユーザ操作に応じて即座にメインセクションのオーディオデータからフィルインセクションのオーディオデータへの切り替え制御が行われてしまうと、図３(ｂ)に示すフィルインセクションの２つ目の波形(立ち上がり位置がFo2である波形、以下Fo2波形)の途中から再生を開始することになるが（図６上段図参照）、１つの波形途中からの再生音はノイズとなって現れるので都合が悪い。
【００５１】
上述したように、オーディオ制御データのオンセット情報には、フィルインセクションのオーディオデータに含まれる各波形の立ち上がり位置（Fo1〜Fo9)が設定されている（図３（ｂ）参照）。そこで、このケースでは、ユーザ操作タイミングにあわせてすぐにセクション間におけるオーディオデータの切り替え制御を行うのではなく、ユーザ操作タイミングの直後にある切り替え先（フィルインセクション）のオンセット情報「Fo3」に従って、再生カウンタ値が「Fo3」になるまでは切り替え前のメインセクションのMo1波形の再生を維持し、再生カウンタ値が「Fo3」になるタイミングでFo3波形の先頭からフィルインセクションのオーディオデータの再生を開始するように切り替え制御を行う（図６下段図参照）。
【００５２】
これにより、切り替え後のフィルインセクションにおいては、Fo2波形の途中からではなくFo3波形の先頭から再生が開始されるので、波形途中からの再生に伴うノイズが生ずることがない。なお、実際の装置では、セクション切り替え指示操作後に切り替え先のフィルインセクションのオーディオデータのロードが開始され、そのオーディオデータのロードには時間がかかることから、再生カウンタ値がオーディオデータのロード完了後以降にある最も近いオンセット情報になるタイミングでオーディオデータの切り替えが行われる。
【００５３】
次に、図７に示すように、図中において点線で示すFo8波形の直前のタイミングで、ユーザがセクション切り替え指示操作を行った場合について説明する。この場合、ユーザ操作に応じて即座にメインセクションのオーディオデータからフィルインセクションのオーディオデータへの切り替え制御が行われてしまうと、メインセクションのMo5波形のアタック（振幅レベルが最も高い箇所）が鳴った直後にフィルインセクションのFo8波形が鳴り始めることから（図７上段図参照）、短時間の間に２つのアタック音が発生する所謂「二度鳴り」現象が生じてしまうので都合が悪い。
【００５４】
このケースにおいて、図６に示したケースと同様に、「ユーザ操作後の最初の波形立ち上がり位置でセクション間におけるオーディオデータの切り替えを行う」場合について考える。すなわち、図７中段図に示すように、ユーザ操作タイミングの直後にある切り替え先（フィルインセクション）のオンセット情報「Fo8」に従って、再生カウンタ値が「Fo8」になるまでは切り替え前のメインセクションのMo5波形の再生を維持し、再生カウンタ値が「Fo8」になるタイミングでFo8波形の先頭からフィルインセクションのオーディオデータの再生を開始するように切り替え制御を行うようにする。しかし、このケースではフィルインセクションの波形立ち上がり位置である「Fo8」のタイミングで、メインセクションからフィルインセクションへのオーディオデータの切り替えを行なったとしても、Mo5波形とFo8波形それぞれのアタックが短時間に再生されることにはかわりないので「二度鳴り」現象が起こってしまう。
【００５５】
したがって、このケースでは、オーディオ制御データのオンセット情報に、フィルインセクションのオーディオデータに含まれる各波形の立ち上がり位置（Fo1〜Fo9)ではなく、図７下段図に示すように、それらの立ち上がり位置よりも少し前の任意の波形位置「Fo1'〜Fo9'」を設定しておく。具体的には、メインセクションのMo5波形の立ち上がり位置とFo8'の位置とがほぼ同じになるよう、オンセット情報をFo8ではなくからFo8'に変更するように設定する。他のオンセット情報(Fo1、Fo2、・・・）についても、各セクションのオーディオデータに含まれる各波形を比較して、最適な位置(Fo1'、Fo2'、・・・)を設定するとよい。すなわち、オーディオ制御データのオンセット情報は波形の立ち上がり位置に設定されることに限らない。この設定によれば、上記したユーザ操作タイミングの直後にある切り替え先（フィルインセクション）のオンセット情報が「Fo8」ではなく「Fo9'」になるので、このオンセット情報「Fo9'」に従って、再生カウンタ値が「Fo9'」になるまでは切り替え前のメインセクションのMo5波形の再生を維持し、再生カウンタ値が「Fo9'」になるタイミングでフィルインセクションのオーディオデータの再生を開始するように切り替え制御を行う。こうすることにより、上記のような二度鳴りの問題を解決することができる。
【００５６】
図５の説明に戻って、ステップＳ２４は、再生カウンタの値が所定の計測タイミング（ここでは一例として１拍毎の拍タイミング）に達したか否かを判定する。再生カウンタの値が計測タイミングに達したと判定した場合には（ステップＳ２４のＹＥＳ）、現時点のオーディオデータの再生位置とオーディオ制御データの拍情報とに基づいて、MIDIデータの再生位置とオーディオデータの再生位置とのタイミングずれを計測する（ステップＳ２５）。すなわち、オーディオ制御情報は拍情報を含むことから、この拍情報によって「本来の拍タイミングで再生すべき波形位置はどのサンプリング波形であるか」がわかる。そこで、この実施形態では、拍タイミングをずれを計測するための基準タイミングとみなし、この拍タイミング毎に「実際に再生されている波形位置(サンプリング波形番号）」と拍情報に基づく「本来再生すべき波形位置(サンプリング波形番号)」とを比較することによって、MIDIデータの再生位置とオーディオデータの再生位置とのタイミングずれを計測するようにしている。ここで計測されたずれの量は、ＲＡＭ３に一時記憶される。
【００５７】
ステップＳ２６は、現在のオーディオデータの再生位置を取得する。ステップＳ２７は、取得したオーディオデータ再生位置がオーディオ制御データのシンクポイントのタイミングつまりはオーディオ制御データのシンクポイント情報で特定される波形位置の再生タイミングと一致するか否かを判定する。オーディオデータ再生位置がシンクポイントのタイミングであると判定した場合には（ステップＳ２７のＹＥＳ）、直前の計測タイミングで計測されたずれ量に応じてオーディオデータの再生位置を変更することにより、MIDIデータの再生位置とオーディオデータの再生位置とのタイミングずれを補正する（ステップＳ２８）。例えば、MIDIデータの再生位置よりもオーディオデータの再生位置が遅れた場合において、遅れを検出した計測タイミング以降の最初のシンクポイント情報で特定される波形位置にて、現在のオーディオデータの再生位置を遅れた分に対応するサンプリング波形の数だけずらし、ずらした以降のサンプリング波形からオーディオデータの再生を開始することによりタイミングずれを補正する（詳しくは後述する図８参照）。ステップＳ２９は、各パートの発音処理を実行する。つまり、現在のタイミングにMIDIイベントがあればそれに基づき楽音の発音や消音さらにはその他の楽音制御処理を行う。
【００５８】
ここで、MIDIデータの再生位置とオーディオデータの再生位置とのタイミングずれ補正について説明する。図８は、再生位置のタイミングずれ補正を説明するための概念図である。なお、ここでは図３（ａ）に示した１小節分のオーディオデータのタイムストレッチ制御を行って再生波形信号を生成する場合を例に説明する。したがって、図８に示したオーディオパートの各波形w1〜w8は時間軸伸縮した後の再生波形信号を表す。
【００５９】
上述したように、本実施形態では、各拍においてMIDIデータの再生位置とオーディオデータの再生位置のずれを計測し、ずれを計測した場合には次のシンクポイント情報に従う波形再生時において、計測したずれ量の分だけオーディオデータの再生位置を変更することによってMIDIデータの再生位置とオーディオデータの再生位置とのタイミングずれを補正するようにしている。つまり、MIDIデータはユーザの指定した演奏テンポで正確に読み出されて再生されるが、オーディオデータはタイムストレッチ処理による誤差の影響などを受けて必ずしも指定した演奏テンポで再生されるとは限らないために、MIDIデータの再生を基準信号として、オーディオデータの再生位置を基準としたMIDIデータの再生位置に合うよう調整することで、オーディオデータとMIDIデータの同期再生を図っている。図８に示すように、第１小節の１拍目のタイミング(MIDIデータの再生位置を基準に示し、図中では「1-1」と記す)においては、基準としたMIDIデータの再生位置と拍情報（sb1）に基づくオーディオデータの再生位置とに「ずれ」が発生していない。したがって、次のシンクポイント情報ss1において、オーディオデータの再生位置を変更してのタイミングずれ補正は行われない。
【００６０】
第１小節の２拍目(1-2)のタイミングでは、MIDIデータの再生位置とオーディオデータの再生位置とに「ずれ」が発生している。つまり、第１小節の２拍目(1-2)のタイミングでは、拍情報（sb2）に基づくオーディオデータの再生位置が本来波形w3の開始位置となるはずであるが、図示の例ではまだ時間軸伸縮された波形w2を引き続き再生中であって波形w3の開始位置に至っていない。そこで、第１小節の２拍目(1-2)のタイミングにおいては、拍情報（sb2）に基づく本来の波形w3の再生位置と現時点で再生中の波形w2の再生位置とのずれ量(Δt1と記す)を計測する（ステップＳ２４及びＳ２５参照）。このずれ量(Δt1)はサンプリング波形の数で表される（例えば690個など）。
【００６１】
第１小節の２拍目(1-2)のタイミング以降の最初のシンクポイント情報（ss2）で特定される波形w4の先頭波形の再生タイミングになると、当該波形w4に関して前記ずれ量（Δt1）だけ再生位置の変更を行う（ステップＳ２６及びＳ２７参照）。ただし、この時点における波形w4の先頭波形の再生タイミング（ss2）は既に遅れが発生しており、本来の再生タイミング（便宜的にss2´と記す）でない。そこで、波形w4の先頭波形の再生タイミング（ss2）では、波形w3に引き続き波形w4の先頭波形からフェードアウト制御しながら再生を開始する一方で、空きトラックを利用して波形w4の先頭波形から前記ずれ量（Δt1）だけずれた（ジャンプした）位置にあるサンプリング波形からフェードイン制御しながら再生を開始する。すなわち、各トラック毎に再生される波形をクロスフェード制御により接続することで（図中において斜線で記した箇所）、楽音が自然に遷移するようにしている。このようにして、別の空きトラックを利用してタイミングが遅れた分に対応する数のサンプリング波形の再生を飛ばして（図中において黒く塗りつぶした箇所）、再生を飛ばした以降のサンプリング波形から再生を開始させる。こうすることにより、再生タイミング（ss2）においてタイミングずれが解消されて、波形w4の再生位置が演奏テンポに応じた再生位置に戻る。
【００６２】
さらに、この例では第１小節の３拍目(1-3)でも再度「ずれ」が発生している。このずれ量をΔt2とする。この場合、第１小節の３拍目(1-3)のタイミング以降の最初のシンクポイント情報（ss3）にて、上記と同様にして、波形w6の先頭波形の再生タイミング（ss3）では、波形w5に引き続き波形w6の先頭波形からフェードアウト制御しながら再生を開始する一方で、別の発音チャンネルを利用して波形w6の先頭波形から前記ずれ量（Δt2）だけずれた（ジャンプした）位置にあるサンプリング波形からフェードイン制御しながら再生を開始することにより、再生タイミング（ss3）において波形w6の再生位置を本来の再生位置に戻す。以降についても同様であるので、ここでの説明を省略する。なお、この例ではオーディオ再生がMIDI再生よりも遅れる場合の補正方法について説明したが、オーディオ再生がMIDI再生よりも早くなってしまった場合でも同様に補正を行う。すなわち、シンクポイント情報で特定される波形位置に到達した際に、再生中の波形をフェードアウト再生する一方で、直前に計測されたずれの量だけ遅らせた波形を別のチャンネルにてフェードイン再生するようにするとよい。  
【００６３】
なお、ここでは説明を簡単にするため、直前に計測したずれをシンクポイント情報（図２参照）に従う再生タイミングの到来にあわせて補正する方法を説明したが、補正の仕方はこれに限定されない。例えば、直前とさらにその1つ前に計測したずれの平均値を補正するようにしてもよい。また、ずれの計測頻度や計測の精度に応じて、シンクポイントにおいて補正する量を適宜変更するのが好ましい。
なお、シンクポイント情報と計測ポイントの対応は1対1でなくてもよい。つまり、拍ごとに1箇所のシンクポイント情報を設定しておく必要はない。所定の基準を満たす位置（例えば振幅レベルが所定値以下）をすべてシンクポイント情報として設定しておいてもよい。
なお、シンクポイント情報は、サンプリング波形の位置で定義するのではなく、何らかの条件で定義しておいてもよい。例えば、振幅レベルが所定値以下になっ  た時点をシンクポイント情報とみなすようにしておき、再生時に振幅レベルを随時計測し、振幅レベルが所定値以下になったことを検出すればその時点でずれを補正するようにしてもよい。
【００６４】
以上のように、本発明に係る自動演奏装置によると、基準テンポに従って演奏された楽音波形信号と共に、当該楽音波形信号のうち所定の基準タイミング（上記例では１拍）毎に演奏されるべき波形位置を示す拍情報（基準位置情報）を予め記憶しておく。また、当該楽音波形信号を解析することによって得られる波形位置であって、タイミングずれを補正して再生波形信号を生成するときに音質劣化の生じ難い波形接続を行い得るサンプリング波形の波形位置を示すシンクポイント情報（補正位置情報）も記憶しておく。設定された演奏テンポに応じた再生波形信号の生成時において、前記基準タイミングにおいて、当該タイミング時に生成した再生波形信号の波形位置と、前記記憶した楽音波形信号における当該基準タイミングに演奏されるべき波形位置とのずれを、前記記憶しておいた拍情報に従って求める。例えば、拍情報が「1260」であるにも関わらず、生成した再生波形信号の波形位置が「940」であるような場合には、タイミングずれが生じたものと判断し、計測されるずれ量は「320」（1260-940）となる。
【００６５】
そして、前記求めた波形位置のずれを補正する補正位置が前記記憶したシンクポイント情報に従って特定され、該特定した補正位置に該当する再生波形信号を生成するタイミング時に前記求めたずれ量「320」だけ前記波形位置を補正する。このように、基準タイミングその時々のタイミングずれの程度（ずれ量）に従って、基準タイミング時ではなく前記シンクポイント情報に従って特定される補正位置を再生するタイミングにおいて、ずれを補正した再生波形信号を生成することにより、楽音波形信号に基づく楽音との発生タイミングにずれが生じることによる楽音の質の低下を防止することができる。すなわち、基準タイミングにおいてずれを計測した場合のみに、ずれを計測した基準タイミングに後続するタイミングの到来を待ってずれを補正するようにしたために、従来のように聴感上の違和感が無視できないほどの楽音の音質劣化を引き起こす恐れがない。
【００６６】
以上、図面に基づいて実施形態の一例を説明したが、本発明はこれに限定されるものではなく、様々な実施形態が可能であることは言うまでもない。例えば、上述した実施例では、オーディオデータとMIDIデータの同期再生を例に示したが、  オーディオデータとMIDIデータの同期再生に限らず、オーディオデータ同士の同期再生にも応用できる。例えば、複数のオーディオデータを扱うDJ用途や、複数の機器間でオーディオ再生の同期を取る際にも応用できる。
なお、同期再生するデータ同士を同時に再生開始する必要はない。一方のデータ(例えばMIDIデータ)を先に再生開始しておき、後からもう一方(例えばオーディオデータ)を再生させてもよい。その際には、小節単位に同じ拍同士で同期させる（それぞれの１拍目同士を同期させる等）ことに限らず、例えば一方のデータの２拍目と他方のデータの１拍目を同期させるなど、異なる拍位置で同期させるようにしてもよい。
なお、誤差の計測は上述した拍単位に限定されず、八分音符単位や、各拍のウラ単位など、基準の楽音(MIDI)の再生位置とオーディオデータに基づく楽音の再生位置とのずれが計測できさえすればどこであってもよい。その場合、オーディオパート制御情報には、オーディオデータの１小節内において複数の八分音符や各拍のウラに対応する各位置にあるサンプリング波形を示す情報を記憶するのは勿論である。
【符号の説明】
【００６７】
１…ＣＰＵ、１Ａ…タイマ、２…ＲＯＭ、３…ＲＡＭ、４…記憶装置、５…演奏操作子（鍵盤等）、６…パネル操作子、７…表示部、８…オーディオ再生部、９…ＭＩＤＩ音源部、１０…楽音制御部、１０Ａ…サウンドシステム、１１…インタフェース、１Ｄ…データ及びアドレスバス
【図１】
2014006415.tif 000003
【図２】
2014006415.tif 000004
【図３】
2014006415.tif 000005
【図４】
2014006415.tif 000006
【図５】
2014006415.tif 000007
【図６】
2014006415.tif 000008
【図７】
2014006415.tif 000009
【図８】
2014006415.tif 000010