(57)【要約】【課題】指揮棒の振り周期が変化した場合に、音楽出力部の演奏速度を変化した振り周期と再び同期するように素早く修正する。【解決手段】楽曲データ記憶部１８には、旋律を記述する旋律データに拍タイミング毎に演奏すべき旋律データ上の位置を特定する拍データを付加した楽曲データが記憶されている。進行位置特定部２０は、拍タイミング検出部１２が検出する指揮棒の拍タイミングに演奏されている音の旋律データ上の進行位置を特定する。テンポ算出部２２は、特定された進行位置から次の拍データが示す旋律データ上の位置までの旋律データに含まれる音の合計音長を指揮棒の振り周期で演奏できるテンポを算出する。拍タイミングの検出時点で新たなテンポを算出し、そのテンポで旋律データを演奏させる。次の拍タイミングの検出時には拍タイミングと旋律データの演奏を再び同期させることができる。【選択図】図１
2007163668.tif 000002
【特許請求の範囲】
【請求項１】
旋律を再生又は演奏する演奏装置であり、
演奏装置の外部から旋律を再生又は演奏する演奏速度を指示する指示部の動きを示すデータを入力し、指示部の周期的な動きのなかから特定の拍を示す動きを抽出して拍タイミングを検出する拍タイミング検出部と、
拍タイミング検出部によって検出された今回の拍タイミングと前回の拍タイミングの時間差から、指示部の動きの周期を算出する周期算出部と、
音の音階と音長を時系列的に記述している旋律データに、拍タイミング毎に再生又は演奏すべき旋律データ上の位置を特定する拍データを付加した楽曲データを記憶している楽曲データ記憶部と、
旋律データを指定された演奏速度で再生又は演奏する音楽出力部と、
拍タイミング検出部によって検出された今回の拍タイミングにおいて、音楽出力部が再生又は演奏している音の旋律データ上での進行位置を特定する進行位置特定部と、
楽曲データ記憶部に記憶されている旋律データのうち、進行位置特定部で特定された進行位置から、拍データによって特定される次回の拍タイミングに演奏すべき旋律データ上の位置までの旋律データを読み出し、読み出された旋律データに含まれる音の合計音長を周期算出部によって算出された周期で音楽出力部に再生又は演奏させるための演奏速度を算出する演奏速度算出部と、
音楽出力部に、楽曲データ記憶部に記憶されている旋律データと、演奏速度算出部によって算出された演奏速度を指令する演奏制御部と、
を備えることを特徴とする演奏装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、旋律を再生又は演奏する演奏装置に関する。
【背景技術】
【０００２】
例えばＭＩＤＩ（Musical  Instrument  Digital  Interface）形式で記述されている旋律データに従って、その旋律データが記述している旋律を再生又は演奏させる技術が知られている。このとき、例えば指揮者が振る指揮棒の動きなど、演奏装置の外部から旋律を再生又は演奏する演奏速度を指示する指示部の動きに同期するように演奏速度を制御しながら、旋律データが記述している旋律を音楽出力部によって再生又は演奏させる技術が特許文献１に記載されている。
ここでいう音楽出力部は、例えばＭＩＤＩ形式の旋律データを指令された演奏速度でスピーカから出力するシンセサイザ等の電子音合成出力装置であり、あるいは、実際の楽器とその楽器を演奏するアクチュエータの組合せであって、旋律データを指令された演奏速度で演奏することができる演奏機能付きの楽器をいう。例えば、自動演奏ピアノ、あるいは人工指と人工唇が装着されている吹奏楽器等が含まれる。演奏速度を制御する対象となる音楽出力部は、旋律データを再生する装置の場合もあれば、旋律データを演奏する装置の場合もある。以下では、再生と演奏の両者を総称して演奏ということがある。
また「演奏装置の外部から旋律を再生又は演奏する演奏速度を指示する指示部」は、上述したように指揮者の振る指揮棒の場合もあれば、演奏する速度を機械的に提示する装置の場合もある。
【０００３】
【特許文献１】特開２００４−３０２０１１号公報
【０００４】
特許文献１の技術は、音の音階と音長を時系列的に記述している旋律データを利用する。なお、旋律を楽譜上で示すと音符と休止符で表現される。各音符によって各音の音階とその音の持続期間が指定され、各休止符によって演奏を休止する持続期間が指定される。音符や休止符が指定する持続期間は実際の時間を特定しない。各音符や休止符の期間の比率を示しているにすぎない。例えば４分音符は８分音符の２倍の持続期間を示す。４分音符は８分休止符の２倍の持続期間を示す。本明細書では、音符や休止符が示す持続期間を音長と称する。休止符は音階を示すものではないが、本明細書では、楽譜上で音符と休止符で表現される旋律をデータ化したものを「音の音階と音長を時系列的に記述している旋律データ」と称する。即ち、旋律データには、休止符が示す演奏を休止する持続期間も含まれる。
【０００５】
旋律が演奏されるときに楽譜上の各音符や各休止符が示す持続期間の実際の持続時間は演奏速度によって特定される。本明細書でいう演奏速度とは、音楽用語上の「テンポ」であってもよいし、旋律データを実際に演奏するときの４分音符や８分休止符などの音符や休止符の持続時間（休止符の場合は演奏の休止時間）であってもよい。なお、音楽用語上のテンポとは、基準となる音符（例えば４分の４拍子の場合は４分音符）が１分間に繰り返すことのできる回数で表現される。基準となる音符は、旋律データ上で予め設定されている。音楽用語上の「テンポ」が判れば４分音符や８分休止符の実際の持続時間も判る。音楽用語上の「テンポ」と、旋律データを実際に演奏（再生）するときの４分音符や８分休止符などの音符や休止符の持続時間（休止符の場合は演奏の休止時間）は、演奏する速度を指定するという意味では等価である。
【０００６】
実際の演奏時には、外部から旋律を再生又は演奏する演奏速度を指示する指示部の動きから拍タイミングを特定する。旋律には４分の２拍子あるいは４分の４拍子といった拍子が存在する。本明細書でいう拍タイミングは、各拍子のなかの特定の拍（例えば指示部が指揮者の振る指揮棒であれば、指揮棒が振り下ろされたときに示される拍）を意味する。
実際の演奏時には、ある拍タイミングから次の拍タイミングまでの時間（周期）を知る。その周期から各音符が示す音長の実際の持続時間を求める。このときに、拍タイミングから次の拍タイミングまでに含まれる音の合計音長（休止符が示す演奏の休止期間を含む）を知り、合計音長を周期で除することによって１基準音符の持続時間を知る。１基準音符の持続時間から各音符の持続時間を求める。例えば、基準音符を４分音符とし、周期が２秒でその間の音符の合計音長が４分音符４個分である場合には、基準音符である４分音符の持続期間は０．５秒となることが判る。４分音符の持続時間が０．５秒であれば、８分音符や８分休止符の持続時間は０．２５秒となる。即ち演奏速度が判る。
例えば指示部が指揮者の振る指揮棒である場合、指揮者が高速に指揮棒を振れば周期が短くなり、各音符が示す持続時間は短くなる。演奏速度が高速となる。
【０００７】
特許文献１の技術は、音の音階と音長を時系列的に記述している旋律データに、拍タイミング毎に演奏すべき音を示す拍データを付加した楽曲データを記憶する記憶部を備えている。旋律データは、時間的に変化する音階を記述するものであり、演奏の進行とともにその時点で演奏するべき音（休止の場合を含む）を示すデータが変化する。旋律データを記憶している記憶部内で、音の時間的変化がアドレスの順に記憶されていれば、演奏の進行とともに、その時点で演奏すべき音を示すデータが記憶されているアドレスが変化する。本明細書では、演奏中の現時点で演奏されている音（休止の場合を含む）の旋律データ上の位置を進行位置という。従って進行位置は、演奏の進行とともに時々刻々と変化する。音の時間的変化がアドレスの順に記憶されていれば、進行位置はアドレスで特定される。拍データは、例えば、拍タイミング毎に演奏すべき音を示すデータが記憶されているアドレスを示すデータとして表現できる。拍データを付加することによって、夫々の拍タイミング毎に演奏すべき音の旋律データ上の位置を特定することができる。
【０００８】
特許文献１の技術では、指示部である指揮棒が振り下ろされたときを拍タイミングとして特定する。そして、特定された拍タイミングに合わせて演奏すべき音を拍データによって特定する。拍タイミングと、拍データによって特定された音が実際に演奏されたタイミングとの時間差を計測する。前者が後者よりも早ければ、その時間差に相当する分だけ演奏速度を高速化する。前者が後者よりも遅ければ、その時間差に相当するだけ演奏速度を低速化する。これによって、次の拍タイミングと、その拍タイミングに合わせて演奏すべき音が実際に演奏されるタイミングを一致させる。このようにして、指揮棒の動きに演奏を同期させる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特許文献１の技術では、拍タイミング（指揮棒が振り下ろされたタイミング）と、その拍タイミングに合わせて演奏すべき音が実際に演奏されたタイミングの時間差を計測することから、拍タイミングと、そのタイミングに合わせて演奏すべき音が演奏されたタイミングのうちの遅い方のタイミングまでの間は、それまでの演奏速度を維持する。
前者が後者よりも遅い場合には、特別の問題が生じない。しかしながら、前者が後者よりも早い場合には、改良の余地を残している。
前者が後者よりも早い場合には、拍タイミングを特定した時点で演奏が遅れていることがわかる。しかしながら、従来の技術では、どれだけ遅れているかを知るために、拍タイミングに合わせて演奏すべき音が実際に演奏されるタイミングまで待ち、それから演奏速度を修正する。拍タイミングを特定した時点で演奏が遅れていることが判明しても、その時点では対策せず、それから遅れたタイミングで演奏を高速化する処理を実行する。従来の技術では、演奏が遅れていることが判明してから、その遅れを取り戻す処理を実行するまでの間に、タイムラグが存在する。
実際に演奏してみると、このタイムラグが演奏品質に微妙に影響することが判明した。このタイムラグを解消し、演奏が遅れていることが判明した時点で直ちにその遅れを取り戻す処理を実行できれば演奏品質が向上することが判明した。演奏速度を指示する指示部の動きをよりよく反映した演奏が可能であることが判明した。
演奏の途中で指揮棒の振り周期が早くなった場合、あるいは何らかの理由で演奏が遅れた場合には、それが判明した時点で遅滞なく（即ちタイムラグなく）、演奏速度を高速化する処理を実行し、より迅速に指示部が示す演奏速度（例えば指揮棒の振りの早さ）と演奏を再び同期させる技術が望まれている。
【課題を解決するための手段】
【００１０】
本発明では、演奏装置の外部から旋律を再生又は演奏する速度を指示する指示部の動きを示すデータを入力し、指示部の周期的な動きのなかから特定の拍を示す動きを抽出して拍タイミングを検出する。本発明では、検出された拍タイミングにおいて、旋律データ上での進行位置を特定する。
拍タイミングを検出すると、前回の拍タイミングと今回の拍タイミングの時間差から、指示部の動きの周期が特定できる。周期が特定できれば、次の拍タイミングを予測することができる。
一方、本発明では、音の音階と音長を時系列的に記述している旋律データに、拍タイミング毎に音楽出力部が再生又は演奏すべき旋律データ上の位置を特定する拍データを付加した楽曲データを利用する。この拍データによって、今回の拍タイミングが検出された時点で、その時点から次の拍タイミングまでに演奏すべき旋律データを特定することができる。即ち、拍タイミングが検出された時点において、その時点で演奏している音の旋律データ上での進行位置から次の拍タイミングに演奏すべき音の旋律データ上の位置までの旋律データを特定することができる。拍タイミングを検出した時点で、次回の拍タイミングにおいて、その次回の拍タイミングに合わせて演奏すべき音を演奏させるのに必要な演奏速度の高速化の程度を知ることができる。
本発明では、拍タイミングに合わせて演奏すべき音よりも早く拍タイミングが検出された場合には、即ち演奏が遅れている場合には、その拍タイミングに合わせて演奏すべき音が実際に演奏されるのを待たないで、演奏速度の高速化処理を実施する。本発明によると、演奏速度の修正過程からタイムラグなくすことができる。
【００１１】
本発明では、特許文献１の技術のように、指示部である指揮棒が振り下ろされるタイミング（即ち拍タイミング）と、そのタイミングに合わせて演奏するべき音が実際に演奏されるタイミングまでの時間差を計測しない。拍タイミングに合わせて演奏すべき音が実際に演奏されるのを待たないで、演奏速度を高速化する。指揮棒の動きの周期が早くなってから高速化処理を実行するまでの間にタイムラグがないために、早くなった周期に対して次の拍タイミングまでに演奏を追いつかせるための時間間隔を長くとることができる。そのために、演奏速度を高速化する際の増加分を小さく抑えることができる。指示部の動きの周期が早くなっときに、その周期が示す演奏速度にできるだけ近い速度で演奏を続けて次の拍タイミングに演奏を再び同期させることができる。
【００１２】
本発明は、旋律を再生又は演奏する演奏装置に具現化することができる。
この演奏装置は、拍タイミング検出部と、周期算出部と、楽曲データ記憶部と、音楽出力部と、進行位置特定部と、演奏速度算出部と、演奏制御部を備えている。
拍タイミング検出部は、演奏装置の外部から旋律を再生又は演奏する速度を指示する指示部の動きを示すデータを入力し、指示部の周期的な動きのなかから特定の拍を示す動きを抽出して拍タイミングを検出する。
周期算出部は、拍タイミング検出部によって検出された今回の拍タイミングと前回の拍タイミングの時間差から、指示部の動きの周期を算出する。
楽曲データ記憶部は、音の音階と音長を時系列的に記述している旋律データに、拍タイミング毎に再生又は演奏すべき旋律データ上の位置を特定する拍データを付加した楽曲データを記憶している。
音楽出力部は、旋律データを指定された演奏速度で再生又は演奏する。
進行位置特定部は、拍タイミング検出部によって検出された今回の拍タイミングにおいて、音楽出力部が再生又は演奏している音の旋律データ上での進行位置を特定する。
演奏速度算出部は、楽曲データ記憶部に記憶されている旋律データのうち、進行位置特定部で特定された進行位置から、拍データによって特定される次回の拍タイミングに演奏すべき旋律データ上の位置までの旋律データを読み出す。読み出された旋律データに含まれる音の合計音長を周期算出部によって算出された周期で音楽出力部に再生又は演奏させるための演奏速度を算出する。
演奏制御部は、音楽出力部に対して、楽曲データ記憶部に記憶されている旋律データと、演奏速度算出部によって算出された演奏速度を指令する。
ここでいう「演奏装置の外部から旋律を再生又は演奏する速度を指示する指示部」とは、例えば指揮者の振る指揮棒の場合もあれば、演奏する速度を機械的に提示する装置の場合もある。
また、「指示部の周期的な動き」とは、指示部を例えば指揮者の振る指揮棒と仮定すると、２拍子や３拍子や４拍子などの拍子を１周期とするとともに、音楽規則上で規定されている指揮棒の動きをいう。「拍タイミング」とは、例えば３拍子中の１番目の拍や、４拍子中の２番目の拍など、指揮棒の周期的な動きの中の特定の動きで指定されるタイミングを言う。例えば、指揮棒を勢いよく振り下ろす動作の最下点で示される拍子の１拍目のタイミング等のことをいう。指示部が指揮者の振る指揮棒ではなく、演奏する速度を機械的に提示する装置の場合も同様である。
「音楽出力部」は、旋律データを音として再生する再生装置であってもよいし、演奏機械と組み合わされている楽器であってもよい。
「旋律データ上での進行位置」とは、演奏の進行とともに各時点で演奏する音を記憶している旋律データ上での位置をいう。旋律データを記憶している記憶部内で、音の時間的変化がアドレスの順に記憶されていれば、演奏の進行とともに、時点毎に演奏する音を示すデータを記憶しているアドレスが変化する。本明細書では、現時点で演奏されている音の旋律データ上の位置を進行位置という。進行位置は演奏の進行に伴って時々刻々と変化する。具体的には、現時点で第ｉ番目の小節の第ｊ番目の音符というように特定できる。
演奏速度算出部が読み出した旋律データに含まれる音の合計音長には、拍データによって特定される次回の拍タイミングに演奏すべき旋律データ上の位置に存在する音（休止の場合を含む）の音長は含まない。次回の拍タイミングに演奏すべき旋律データ上の位置に存在する音は、次回の拍タイミング以後まで音が持続するからである。その意味では、演奏速度算出部が読み出す「進行位置特定部で特定された進行位置から、拍データによって特定される次回の拍タイミングに演奏すべき旋律データ上の位置までの旋律データ」との表現は、「進行位置特定部で特定された進行位置から、拍データによって特定される次回の拍タイミングに演奏し終えているべき旋律データ上の位置までの旋律データ」と表現することも可能である。この場合でも「拍タイミング毎に音楽出力部が再生又は演奏すべき旋律データ上の位置を特定する拍データ」から「次回の拍タイミングに演奏し終えているべき旋律データ上の位置」を特定することが可能である。旋律データを記憶している記憶部内で、音の時間的変化がアドレスの順に記憶されていれば、「次回の拍タイミングに演奏し終えているべき旋律データ上の位置」は、拍データが特定する旋律データ上の位置を示すアドレスのひとつ前のアドレスに相当するからである。
拍タイミング検出部と、周期算出部と、楽曲データ記憶部と、進行位置特定部と、演奏速度算出部と、演奏制御部は、夫々別体の装置で実現してもよいし、一つのコンピュータが兼用していてもよい。例えば、コンピュータが拍タイミングを検出するプログラムモジュールを実行する場合には、そのコンピュータによって拍タイミング検出部が実現され、コンピュータが周期を算出するプログラムモジュールを実行する場合には、そのコンピュータによって周期算出部が実現される。
【００１３】
上記の演奏装置では、音の音階と音長を時系列的に記述している旋律データに、拍タイミング毎に音楽出力部が再生又は演奏すべき旋律データ上の位置を特定する拍データを付加した楽曲データを利用する。即ち、夫々の拍タイミング毎に対応付けられた拍データによって、夫々の拍タイミングで演奏すべき旋律データ上の位置を特定することできる。
また、拍タイミング検出部によって、拍タイミングが検出される。例えば指示部が指揮者の振る指揮棒の場合、その指揮棒の動きをカメラで撮影し、撮影した映像データを解析し、指揮棒が特定の動きをした時点（例えば指揮棒が振り下ろされた時点）を抽出し、その特定動作のタイミングを拍タイミングとして検出することができる。あるいは指揮棒内に加速度センサを内蔵し、加速度センサの出力から指揮棒の動きを検出し、指揮棒が特定の動きをした時点を抽出することによって拍タイミングを検出することができる。
また、指示部が演奏速度を指示する外部の機械である場合も同様に、指示部の動きをカメラで撮影することによって、拍タイミングを検出することができる。指示部が光の点滅によって演奏速度を提示する場合も同様である。
周期算出部によって、拍タイミング検出部が検出した今回の拍タイミングと前回の拍タイミングの時間差から指示部の動きの周期を算出する。指示部の動きの周期は、指示部が意図する演奏の速度を示すものであり、指示部の動きの早さによって変化する。
また、進行位置特定部によって、今回の拍タイミングにおいて、音楽出力部が再生又は演奏している音の旋律データ上での進行位置を特定する。旋律データはどのような形式であっても、楽譜上で音符と休止符の時系列として表現される旋律をデータ化したものなので、ある時点で音楽出力部が再生又は演奏している音の旋律データ上の進行位置を特定することができる。
進行位置特定部は、拍タイミング検出部によって検出された今回の拍タイミングにおいて、音楽出力部が再生又は演奏している音の旋律データ上での進行位置を特定する。
演奏速度算出部は、楽曲データ記憶部に記憶されている旋律データのうち、進行位置特定部で特定された進行位置から、拍データによって特定される次回の拍タイミングに演奏すべき旋律データ上の位置までの旋律データを読み出し、読み出された旋律データに含まれる音の合計音長を周期算出部によって算出された周期で音楽出力部に再生又は演奏させるための演奏速度を算出する。今回検出した拍タイミングをｎ番目の拍タイミングとすると、次回の拍タイミングはｎ＋１番目の拍タイミングとなる。ｎ番目の拍タイミングが検出された時点で演奏が遅れている場合、ｎ＋１番目の拍タイミングまでに演奏の遅れを取り戻すためには、本来ｎ番目の拍タイミングまでに演奏されるべきであったがｎ番目の拍タイミングでは未演奏となってしまった旋律データを含む多くの旋律データを演奏しなければならない。ｎ番目の拍タイミングが検出された時点で演奏が進みすぎている場合、ｎ＋１番目の拍タイミングまでに演奏の進みすぎを修正するためには、ｎ＋１番目の拍タイミングまでに早く演奏してしまった旋律データを除外した少量の旋律データを演奏しなければならない。ｎ＋１番目の拍タイミングに演奏すべき旋律データ上の位置は、ｎ＋１番目の拍タイミングに対応するｎ＋１番目の拍データによって特定される。
演奏速度算出部は、ｎ＋１番目の拍タイミングにおいてその拍タイミングに合わせて演奏すべき音が演奏されるような演奏速度を算出する。即ち、ｎ番目の拍タイミングでの旋律データ上の進行位置からｎ＋１番目の拍タイミングで演奏されるべき旋律データ上の位置までの旋律データに含まれる音の音長を、指示部の動きの周期で演奏するための各音の音長の時間を算出する。即ち遅れを取り戻すための演奏速度を算出する。演奏が遅れていれば各音の音長の持続時間は短くなる。即ち、それまでよりも早い演奏速度が算出される。演奏が速すぎれば各音の音長の持続時間は長くなる。即ち、それまでよりも遅い演奏速度が算出される。
演奏制御部は、音楽出力部に対して、楽曲データ記憶部に記憶されている旋律データと、演奏速度算出部によって算出された演奏速度を指令する。その際、演奏制御部は、音楽出力部に対して楽曲データ記憶部に記憶されている旋律データの全てを最初に指令する一方、演奏速度算出部が演奏速度を算出する毎に算出された演奏速度を指令すればよい。あるいは、演奏制御部は、音楽出力部に対して演奏速度算出部が読み出した旋律データとその旋律データを演奏する演奏速度を合わせて順次指令してもよい。
前記したように、ｎ番目の拍タイミングと演奏の間にはズレが生じている場合がある。演奏速度算出部は、ズレの発生に関わらず、拍タイミングが検出される毎に、その拍タイミングにおける旋律データ上の進行位置から次の拍タイミングで演奏されるべき旋律データ上の位置までの旋律データに含まれる音の合計音長を周期算出部が算出した周期で演奏する演奏速度を算出する。算出された演奏速度を音楽出力部に指令することによって、音楽出力部は、ｎ＋１番目の拍タイミングにおいてその拍タイミングに合わせて演奏すべき音を演奏するようになる。即ち、ｎ番目の拍タイミングにおいてその拍タイミングと演奏にズレが生じている場合でもｎ＋１番目の拍タイミングではその拍タイミングと演奏が再び同期するように音楽出力部の演奏速度を修正することができる。特にｎ番目の拍タイミングにおいて演奏が遅れている場合に、演奏速度の増分を最小限に抑えて次のｎ＋１番目の拍タイミングに演奏の遅れを取り戻すことができる。
【００１４】
本発明では、特許文献１の技術とは相違し、拍タイミングとその拍タイミングに合わせて演奏するべき音が実際に演奏されたタイミングの時間差を計測しない。その代わりに、拍タイミングの検出時点において、その時に演奏されている音の旋律データ上の進行位置を特定し、それを利用して演奏速度を高速化する処理を直ちに実行する。指示部の動きの周期が早まった場合には、その周期が早まったことが判明した時点で、演奏がその周期に追いつくように演奏速度を高速化させる。特許文献１とは相違し、指示部の動きの周期が早まったことが判明した時点から演奏速度を高速化するまでの間にタイムラグがない。
なお、次の拍タイミングを検出した際に算出した周期が、前回算出した周期と異なる場合には、前述した動作を繰り返せば良い。前述の動作を繰り返すことによって、指示部の動きの周期の連続的な変化に対して追従するように演奏速度を修正することができる。指示部の動きの周期の変化に素早く追従する演奏装置を実現することができる。
【発明の効果】
【００１５】
本発明によれば、演奏の途中であっても、演奏装置の外部から演奏速度を指示する指示部の動きの周期が変化しても、その周期を算出した時点で音楽出力部が旋律を再生又は演奏する演奏速度を修正することができる。特に、指示部が示す周期がそれ以前の周期よりも早くなった場合には、演奏装置が周期の早くなったことを特定した時点で音楽出力部が旋律データを再生又は演奏する演奏速度を修正することができる。これによって、旋律の再生又は演奏の演奏速度を修正するまでにタイムラグが発生することがない。
【実施例】
【００１６】
図面を参照して本発明の実施例に係る演奏装置を詳細に説明する。図１は演奏装置１０のブロック図である。
本実施例の演奏装置１０は、音楽出力部４０として、旋律データを再生するシンセサイザ等の楽曲再生器４２及びスピーカ４４を有する。
本実施例の演奏装置１０は、音楽出力部４０が旋律データを再生する際の演奏速度を、指揮者が振る指揮棒３２の動きに合わせる装置である。即ち、本実施例では、指揮者３０の振る指揮棒３２が、演奏装置の外部から旋律を再生又は演奏する速度を指示する指示部に相当する。
以下では、「再生」という語を主として用いるが、各部の説明中には「演奏」という語を用いる場合もある。「再生」と「演奏」という言葉は、音楽出力部に依存して使い分ける言葉であるが、演奏装置１０の説明上では、「旋律データを音という物理量として音楽出力部に出力させること」という意味で「再生」と「演奏」を同義的に用いる。
また以下では、「演奏速度」という表現の代わりに「テンポ」という表現を用いることにする。ここでは「テンポ」と「演奏速度」は同義の意味である。
演奏装置１０は、楽曲データ記憶部１８を備える。まず、楽曲データ記憶部１８に記憶されている楽曲データについて、図３を参照して説明する。楽曲データ５４は、演奏する楽曲の旋律を記述した旋律データ５０と、拍データが記されているサブデータ５２から構成されている。旋律データ５０とサブデータ５２は、実際にはＭＩＤＩ形式などで記述されているがここでは説明のため、楽譜（五線譜）の形式で示してある。楽曲データ記憶部１８内に記憶される楽曲データはデジタルデータであるが、そのデータが示す内容は、図３に示した楽譜の内容と等価である。図３に示す旋律データ５０は、４分の４拍子の旋律を示している。例として旋律データ５０の各小節には４分音符を４つずつ記してある。
楽譜上の各音符は、音の音階と、その音の相対的な持続期間を表す。音の相対的な持続期間とは、例えば８分音符は４分音符の０．５倍の持続期間を表し、２分音符は４分音符の２倍の持続期間を表す。図３には例示していないが、休止符は音を出さない持続期間の相対的な長さを表す。例えば、４分休止符は８分休止符の２倍の持続期間を表し、２分休止符の０．５倍の持続期間を表す。なお４分音符と４分休止符の持続期間は同じである。本実施例では、４分音符や４分休止符が表す音の持続期間（休止符の場合は音を出さない期間）を音長という。旋律は五線譜の左から右へ向って演奏される。従って旋律データは、音の音階と音長を時系列的に記述しているデータである。
【００１７】
サブデータ５２は、旋律データ５０に記述された旋律と同時並列的に演奏される別のパートの旋律を記述するための五線譜で表されている。拍データは、符号ｈ１、ｈ２、ｈ３、ｈ４、ｈ５に示すように、サブデータ５２の五線譜上の音符で示される。拍データは、拍タイミング毎に演奏されるべき旋律データ上の位置を特定する。各拍データは夫々の拍タイミングに対応付けられている。後述するように拍タイミングを拍タイミングｔ１、拍タイミングｔ２・・・拍タイミングｔｎ・・・と表すと、夫々の拍タイミングに対して拍データｈ１、拍データｈ２、・・・拍データｈｎ・・・が対応する。
図３では、例えば拍データｈ１で特定される旋律データ５０上の位置は破線Ｌ１で示される。旋律データ５０上の音符であり、破線Ｌ１上の音符でもある音符ａ１が、拍データｈ１に対応する拍タイミングが検出された時点に演奏されるべき音に相当する。本実施例では、指揮棒の動きが４分の４拍子中の第１拍目を示す時点を拍タイミングとしている。
拍タイミングの検出時点に演奏されている音の旋律データ５０上の位置（即ち進行位置）と、その拍タイミングに対応する拍データが示す旋律データ上の位置が一致すれば指揮棒３２の動きと演奏が同期していることになる。
【００１８】
旋律データ５０は、音符（音階とその音階の音長）と休止符の時系列データであり、演奏の進行とともにその時点で演奏するべき音（休止符の場合を含む）を示すデータが変化する。楽曲データ記憶部１８内で、音符や休止符の時系列データがアドレスの順に記憶されていれば、演奏の進行とともに、その時点で演奏すべき音を示すデータが記憶されているアドレスが変化する。本明細書では、現時点（例えば拍タイミングの検出時点）で再生（演奏）されている音の旋律データの位置を進行位置という。音階の時間的変化がアドレスの順に記憶されていれば、進行位置はアドレスで特定される。拍データは、図３の五線譜上で示せば、旋律データ５０に記述された旋律と同時並列的に演奏される別のパートの旋律を記述するための五線譜で表すことができる。楽曲データ記憶部１８内では、拍データは、例えば、拍タイミング毎に演奏すべき音を示すデータが記憶されているアドレスを示すアドレスポインタのデータとして表現できる。
【００１９】
図１に戻り、演奏装置１０の説明を続ける。演奏装置１０は、楽曲データ記憶部１８の他に、拍タイミング検出部１２と、周期算出部１４と、演奏制御部１６と、進行位置特定部２０と、テンポ算出部２２（演奏速度算出部）を備える。
演奏制御部１６は楽曲データ記憶部１８から楽曲データを読み出して、読み出した楽曲データ中の旋律データに記述された旋律を所定のテンポ（演奏速度）で音楽出力部４０に再生させる。所定のテンポとは、旋律データの再生開始時にはプリセットされたテンポであり、再生開始後は後述するテンポ算出部２２が算出するテンポである。
本実施例では、音楽出力部４０は、楽曲再生器４２とスピーカ４４を備える。楽曲再生器４２とスピーカ４４によって、旋律データは音という物理量として再生される。
図１では演奏制御部１６が音楽出力部４０へ出力する旋律データを送る信号線を符号２４で示してある。
【００２０】
拍タイミング検出部１２は、指揮者３０が振る指揮棒３２の動きを撮影するカメラ３４から指揮棒３２の動きを撮影した映像データが入力される。拍タイミング検出部１２内には、映像データ処理器（不図示）が内蔵されており、指揮棒３２の映像データから指揮棒３２の動きを解析する。本実施例では、演奏される旋律データは図３に示したように４分の４拍子である。指揮者３０は、図５に示すように、音楽の規則により決められている４分の４拍子を表す軌跡１００を指揮棒３２の先端が描くように指揮棒３２を動かす。図５に矢印１で示す軌跡の位置は、４拍子の１拍目を示す位置である。同様に、矢印２、矢印３、矢印４の夫々が示す軌跡１００の位置は、４拍子の２拍目、３拍目、４拍目を示す位置である。拍タイミング検出部１２は、入力された映像データから図５に示す軌跡１００を解析し、特定の拍が示される時点を検出する。本実施例では、拍タイミング検出部１２は、指揮棒３２の先端が図５の矢印１で示す４拍子の１拍目を示した時を検出する。拍タイミング検出部１２が、指揮棒３２の先端の動きが４拍子の１拍目を示した時を検出した時点を拍タイミングと称する。
拍タイミング検出部１２は、指揮棒３２の先端の動きが図５に示す軌跡１００を周期的に繰り返し、指揮棒３２の先端が図５に示す矢印１の位置を示すごとに拍タイミングを検出する。拍タイミングを符号ｔで表すと、拍タイミング検出部１２は、拍タイミングを検出する毎にｔ１、ｔ２・・・ｔｎ・・・というように演奏の開始からの順序を示す添え字「ｎ」を添えたデータを出力する。以下では今回検出された拍タイミングを拍タイミングｔｎと表す。次回検出される拍タイミングを拍タイミングｔ（ｎ＋１）と表す。拍タイミングｔｎや拍タイミングｔ（ｎ＋１）との表現は、夫々の拍タイミングを識別すると同時に、その拍タイミングが検出された時刻を表すものとする。
【００２１】
検出された拍タイミングｔｎは周期算出部１４と進行位置特定部２０へと出力される。
周期算出部１４では、拍タイミング検出部１２によって検出された今回の拍タイミングｔｎと前回の拍タイミングｔ（ｎ−１）の時間差Ｔｎを求める。この時間差Ｔｎが指揮棒３２の動きの周期となる。以下では、指揮棒３２の動きの周期を振り周期と称することにする。
【００２２】
一方、進行位置特定部２０には、拍タイミングｔｎの他に、演奏制御部１６が音楽出力部４０に出力している旋律データが入力される。そのことを示すために図１では演奏制御部１６が出力する旋律データを送る信号線２４が進行位置特定部２０にも接続されている。また、進行位置特定部２０は楽曲データ記憶部１８に記憶された楽曲データを参照する。進行位置特定部２０は、拍タイミングｔｎが入力されると、その時点で演奏制御部１６が音楽出力部４０に出力している旋律データと、楽曲データ記憶部１８に記憶された楽曲データを照合する。そして拍タイミングｔｎの入力時点で演奏制御部１６が音楽出力部４０に対して出力している旋律データ上の進行位置を特定する。即ち、進行位置特定部２０は、今回の拍タイミングｔｎにおいて音楽出力部４０が再生している音の旋律データ上の進行位置を特定する。特定した旋律データ上の進行位置は、テンポ算出部２２に送られる。なお、拍タイミングｔｎにおいて特定された旋律データ上の進行位置を進行位置Ｓｎと称する。
【００２３】
テンポ算出部２２には、進行位置特定部２０が特定した旋律データ上の進行位置Ｓｎが入力されるとともに、周期算出部１４が算出した振り周期Ｔｎが入力される。テンポ算出部２２は、入力された進行位置Ｓｎの添え字「ｎ」から、進行位置Ｓｎが拍タイミングｔｎに対応していることを識別する。テンポ算出部２２は、楽曲データ記憶部１８に記憶されている楽曲データを参照して、今回検出した拍タイミングｔｎの次の拍タイミングｔ（ｎ＋１）に対応する拍データｈ（ｎ＋１）によって特定される旋律データ上の位置Ｌｎを特定する。旋律データ上の位置Ｌｎは、次回の拍タイミングｔ（ｎ＋１）に音楽出力部４０が再生すべき旋律データ上の位置である。
次にテンポ算出部２２は、旋律データ上の進行位置Ｓｎから位置Ｌｎまでに含まれる音の合計音長を求める。ここで、合計音長は、例えば、旋律データ上の進行位置Ｓｎから位置Ｌｎまでの旋律データ上に４分音符が４個含まれる、あるいは８分音符が８個含まれる等というように、音符が示す音長の長さの合計数で表現される。旋律データ上に休止符を含む場合には、その休止符が表す休止の持続期間に相当する音符の長さ（４分休止符であれば４分音符であり、８分休止符であれば８分音符）として加算する。以下では合計音長を４分音符の個数で表すことにする。例えば、旋律データ上の進行位置Ｓｎから位置Ｌｎまでに、４分音符が３個、８分音符が１個含まれる場合には、合計音長は４分音符の個数４．５と表す。
今、求めた合計音長が４分音符の個数Ｋであるとする。進行位置特定部２０によって特定された進行位置Ｓｎは、楽曲の再生の途中で特定される旋律データ上の進行位置であるため、ある音が再生されている途中となる場合もある。従ってテンポ算出部２２が求める合計音長である４分音符の個数Ｋという場合の値Ｋは、小数で表される場合もある。また、前述したように音長を４分音符の個数で表す場合、８分音符は４分音符０．５個分の音長に相当し、１６分音符は４分音符０．２５個分の音長に相当する。合計音長を表す際の４分音符の個数Ｋの値Ｋが小数であってもかまわない。テンポ算出部２２は、求めた合計音長（４分音符個数Ｋ）を振り周期Ｔｎで演奏するためのテンポを求める。４分の４拍子の場合、音楽用語としての「テンポ」は６０秒の間に演奏する４分音符の数で表される。従って、振り周期Ｔｎの単位を「秒」とすると、求めた合計音長（４分音符の個数Ｋ）を振り周期Ｔｎで演奏するためのテンポＢｎは、Ｂｎ＝｛Ｋ／Ｔｎ｝×６０で求められる。
本実施例でいう「テンポ」とは、音楽用語上の「テンポ」を意味する。なお、「テンポ」の定義は、４分音符や８分休符などの実際の再生時間（休止符の場合は無音時間）を意味するものであってもよい。４分の４拍子の場合、４分音符１個の実際の再生時間は、音楽用語でいうテンポＢｎの逆数で表すことができる。従って音楽用語の「テンポ」と、先に定義した、４分音符や８分休符などの実際の再生時間（休止符の場合は無音時間）を意味する「テンポ」は等価の関係にある。前者の定義による「テンポ」も後者の定義による「テンポ」もともに「演奏速度」を表す一例である。
【００２４】
テンポ算出部２２が求めたテンポＢｎは演奏制御部１６に送られる。演奏制御部１６は、得られたテンポＢｎで音楽出力部４０が旋律データの再生を継続するように、音楽出力部４０に対して旋律データの再生テンポをテンポＢｎに修正するように指令する。
【００２５】
なお、拍タイミング検出部１２、周期算出部１４、演奏制御部１６、進行位置特定部２０、テンポ算出部２２は夫々別個の装置で構成されてもよいし、それらの一部あるいは全部はコンピュータによって処理されるプログラムモジュールとして構成されていてもよい。例えば、コンピュータが拍タイミングを検出するプログラムモジュールを実行する場合には、そのコンピュータによって拍タイミング検出部が実現され、コンピュータが周期を算出するプログラムモジュールを実行する場合には、そのコンピュータによって周期算出部が実現される。
旋律データを再生する際のテンポの調整が音楽出力部４０ではなく、演奏制御部１６が音楽出力部４０へ順次出力する旋律データの転送速度によって規定される場合には、演奏制御部１６は、音楽出力部４０へ順次出力する旋律データの転送速度を、テンポ算出部２２が算出したテンポＢｎとなるように制御する。例えば、演奏制御部１６が、図１に示す楽曲再生器４２を内蔵しており、音楽出力部４０が単にスピーカ４４であるとする。この場合には、演奏制御部１６に内蔵された楽曲再生器４２は、スピーカ４４から出力される音のテンポがテンポ算出部２２で算出されたテンポＢｎとなるように、スピーカ４４へ転送する音声信号の転送速度を制御する。
【００２６】
次に上記に説明した演奏装置１０の処理を図２のフローチャートを参照して説明する。
まずステップＳ２００では、演奏制御部１６がプリセットされたテンポＢ０で音楽出力部４０に対して旋律データの再生を開始させる。
次にステップＳ２０２では、拍タイミング検出部１２によって今回の拍タイミングｔｎを検出する。
検出された拍タイミングｔｎは、周期算出部１４へ送られる。周期算出部１４では、前回の拍タイミングｔ（ｎ−１）と今回の拍タイミングｔｎの時間差から振り周期Ｔｎを求める（ステップＳ２０４）。
また、ステップＳ２０２で検出された拍タイミングｔｎは進行位置特定部２０へ送られる。進行位置特定部２０では、拍タイミングｔｎにおいて音楽出力部４０が再生している音の旋律データ上の進行位置Ｓｎを特定する（ステップＳ２０６）。なお、拍タイミングｔｎにおいて音楽出力部４０がある音の再生途中である場合には、進行位置特定部２０は、その音の次の音の旋律データ上での位置と、拍タイミングｔｎにおいてその音の未再生分の音長を特定する。
特定された旋律データ上の進行位置Ｓｎは、テンポ算出部２２へ送られる。テンポ算出部２２では、楽曲データ記憶部１８に記憶された楽曲データを参照して、今回の拍タイミングｔｎの次の拍タイミングｔ（ｎ＋１）に対応する拍データｈ（ｎ＋１）が示す旋律データ上の位置Ｌｎを特定する。そして旋律データ上の進行位置Ｓｎから位置Ｌｎまでに含まれる音の合計音長（４分音符の個数Ｋ）を特定する（ステップＳ２０８）。このとき、進行位置特定部２０が拍タイミングｔｎにおいて音の未再生分の音長を特定していた場合には、その音長も合計音長に加算する。以下では、４分音符の個数Ｋのときの合計音長を合計音長Ｋと表すことにする。
次にテンポ算出部２２は、ステップＳ２０８で求めた合計音長ＫをステップＳ２０４で求めた振り周期Ｔｎで演奏するテンポＢｎを算出する（ステップＳ２１０）。テンポＢｎの算出式は前述した通りである。
テンポ算出部２２が求めたテンポＢｎは、演奏制御部１６に送られる。演奏制御部１６は、テンポＢｎで旋律データを再生するように音楽出力部４０にテンポＢｎの指令を出力する（ステップＳ２１２）。その結果、音楽出力部４０は、テンポＢｎで旋律データの再生を継続する。
最後にステップＳ２１４では、旋律データの再生が終了したか否かを判断する。再生が終了していない場合（ステップＳ２１４：ＮＯ）には、ステップＳ２０２に戻り、以下同じ処理を繰り返す。一方、ステップＳ２１４で再生が終了したと判断された場合（ステップＳ２１４：ＹＥＳ）には処理を終了する。
【００２７】
以上の処理では、拍タイミングｔｎで振り周期Ｔｎが算出される。拍タイミングｔｎにおいて音楽出力部４０が再生している旋律データ上の進行位置Ｓｎから、次の拍タイミングｔ（ｎ＋１）に対応する拍データｈ（ｎ＋１）によって特定される旋律データ上の位置Ｌｎまでに含まれる音の合計音長Ｋを算出された振り周期Ｔｎで再生するテンポＢｎが算出される。算出されたＢｎは直ちに音楽出力部４０へ指令される。音楽出力部４０は、指令されたテンポＢｎで旋律データの再生を継続する。今回の拍タイミングｔｎから次回の拍タイミングｔ（ｎ＋１）までの振り周期Ｔｎが、今回算出された振り周期Ｔｎと同じである場合には、次回の拍タイミングｔ（ｎ＋１）において再生される旋律データ上の進行位置Ｓ（ｎ＋１）は、拍データｈ（ｎ＋１）が示す位置Ｌ（ｎ＋１）と一致する。即ち、拍タイミングｔｎにおいて指揮棒３２の振り周期と旋律データの再生が同期していなくとも、次回の拍タイミングｔ（ｎ＋１）では、その拍タイミングでの旋律データ上の進行位置Ｓ（ｎ＋１）とその拍タイミングで再生されるべき旋律データ上の位置Ｌ（ｎ＋１）を一致させることができる。指揮棒３２の振り周期が変化しても素早くその変化に追従するように旋律データが再生されるテンポが修正される。
【００２８】
このとき、旋律データを再生するテンポの修正値が音楽出力部４０に指令されるのは、振り周期が特定された時点である。即ち拍タイミングｔｎの時点である。拍タイミングｔｎで振り周期がそれまでより早くなった場合、拍タイミングｔｎにおいて再生している旋律データ上の進行位置Ｓｎは、拍タイミングｔｎに対応する拍データｈｎが示す旋律データ上の位置Ｌｎ（即ち、拍タイミングｔｎにおいて再生するべき旋律データ上の位置）よりも早くなってしまう。しかし、拍タイミングｔｎで、次の拍タイミングｔ（ｎ＋１）において再生するべき旋律データ上の位置Ｌ（ｎ＋１）（即ち、拍タイミングｔ（ｎ＋１）に対応する拍データが示す旋律データ上の位置）が拍タイミングｔ（ｎ＋１）に追いつくようにテンポが修正される。特許文献１に開示された技術のように、拍タイミングｔｎが検出された後も、早まる以前の振り周期で旋律データの再生が継続され、拍タイミングｔｎに対応する拍データｈｎが示す位置まで旋律データの再生が進んでからテンポが修正されることがない。即ち、拍タイミングｔｎからテンポ修正までのタイムラグを無くすことができる。タイムラグを無くすことによって、早くなった振り周期に旋律データの再生を追いつかせるための時間を長く確保することができる。次の拍タイミングｔ（ｎ＋１）に、拍データｈ（ｎ＋１）が示す旋律データ上の位置Ｌｎまで再生を進行させるためのテンポの増分を小さくすることができる。指揮棒３２の振り周期が早くなった場合にも、指揮棒３２の振り周期が示すテンポに近いテンポで次の拍タイミングｔ（ｎ＋１）で再び指揮棒３２の動きと旋律データの再生を同期させることができる。
【００２９】
上記に説明した演奏装置１０の動作を具体例を挙げて説明する。図３は旋律データ５０と、拍データｈ１からｈ５が付加されたサブデータ５２からなる楽曲データ５４の模式図である。楽曲データ５４のうち、旋律データ５０は４分の４拍子であり、例として１小節に４分音符を４個ずつ示してある。１小節に含まれる音符には２分音符や８分休止符などが含まれていてもよい。４分の４拍子では、１小節に含まれる音符の合計の音長が４分音符４個分となればよい。
拍データｈ１からｈ５は、各小節の１拍目を示すように設定されている。図３に示す破線Ｌ１は、拍データｈ１によって特定される旋律データ５０上の位置を示す。破線Ｌ２からＬ５も同様である。Ｂ１からＢ５は夫々の矢印が示す範囲でのテンポを示す。なお、Ｂ３とＢ４が重複している理由は後述する。符号Ｓ１は、拍タイミングｔ１において音楽出力部４０が再生している音の旋律データ５０上の進行位置を示す。符号Ｓ１で示される進行位置を進行位置Ｓ１と称する。Ｓ２からＳ５も同様である。
図４は指揮棒３２の動きの模式図である。なお、図４のグラフ５６は、指揮棒３２の動きを模式的に単純化してある。即ち、図５に符号１００で示す４拍子を表す指揮棒３２の１周期の動きを単純な正弦波の１周期に置き換えて示してある。従って図４のグラフ５６の横軸は時間であるが、縦軸には物理的に意味はない。但し、グラフ５６の正弦波の下死点が、図５に示す４拍子の指揮棒の軌跡１００のうちの第１拍目（図５に符号１で示す位置）を示すものとする。即ち、グラフ５６の正弦波の各周期の下死点が拍タイミングを示す。従って、図５に示すｔ１からｔ５が各振り周期における拍タイミングの検出時点である。なお、符号ｔ１で示される拍タイミングの検出時点を拍タイミングｔ１と称する。Ｔ２は拍タイミングｔ２とその前の拍タイミングｔ１との時間差を示す。従ってＴ２は、拍タイミングｔ２において特定される指揮棒３２の振り周期でもある。Ｔ１、及びＴ３からＴ５も同様である。
【００３０】
本実施例では、音楽出力部４０に旋律データ５０の再生を開始させる際に、演奏制御部１６にプリセットされたテンポＢ０は１２０である。旋律データ５０は４分の４拍子で旋律を表しているため、テンポ１２０とは、１分間に４分音符を１２０回再生（演奏）する早さである。これは、１小節（４分音符４個分）を再生する時間が２秒となることを示すとともに４分音符（４分休止符）の実際の持続時間が０．５秒となることを示す。この場合、８分音符（８分休止符）の実際の持続時間は０．２５秒となり、２分音符（２分休止符）の実際の持続時間は１．０秒となる。
【００３１】
拍タイミングｔ１から拍タイミングｔ３までは指揮棒３２はテンポ１２０で振られているとする。拍タイミングｔ１において音楽出力部４０が再生している音の旋律データ５０上の位置は、図３の進行位置Ｓ１となる。進行位置Ｓ１は、拍データｈ１が示す旋律データ５０上の位置Ｌ１と一致している。即ち、拍タイミングｔ１では、指揮棒３２の動きと音楽出力部４０が再生している旋律の旋律データ５０上の進行位置Ｓ１は同期している。
【００３２】
拍タイミング検出部１２が拍タイミングｔ２を検出すると、周期算出部１４が拍タイミングｔ２と前回の拍タイミングｔ１の時間差から振り周期Ｔ２を算出する。拍タイミングｔ２においては旋律データ５０上の進行位置Ｓ２まで音楽出力部４０が旋律データ５０を再生している。進行位置Ｓ２は、進行位置特定部２０によって特定される。進行位置Ｓ２は、拍タイミングｔ２に対応する拍データｈ２が特定する旋律データ５０上の位置Ｌ２と一致している。即ち、拍タイミングｔ２においても指揮棒３２の振りと音楽出力部４０が再生している旋律データ５０上の位置は同期している。拍タイミングｔ２と拍タイミングｔ１は指揮棒３２がテンポ１２０で振られているときの拍タイミングであるので、その時間差Ｔ２は２秒である。
テンポ算出部２２は、拍タイミングｔ２において再生されている旋律データ５０上の進行位置Ｓ２（進行位置Ｓ２は拍データｈ２が示す旋律データ５０上の位置Ｌ２と一致している）から、次の拍データｈ３によって特定される旋律データ５０上の位置Ｌ３までの旋律データ５０に含まれる音の合計音長を算出する。このときの合計音長には、旋律データ５０上の位置Ｌ３に位置する音符ａ３は含まれない。旋律データ５０上の位置Ｌ３に位置する音符ａ３の音の持続時間は位置Ｌ３を超えるからである。従って旋律データ５０上の進行位置Ｓ２から位置Ｌ３までの旋律データ５０上での旋律データに含まれる合計音長は、音符ａ２から数えて音符ａ３の前までの４分音符４個分である。テンポ算出部２２は、拍タイミングｔ２において、その時点に再生されている旋律データ５０上の進行位置Ｓ２から次の拍タイミングｔ３に対応する拍データｈ３が示す旋律データ５０上の位置Ｌ３までの旋律データを再生する際のテンポＢ２を算出する。Ｂ２は、前述した式によって、Ｂ２＝｛（４分音符数）／（振り周期）｝×６０＝｛４／２｝×６０＝１２０となる。換言すれば、４分音符の実際の持続時間は０．５秒となる。なお、振り周期Ｔ２は秒を単位としている。拍タイミングｔ２で、上記の処理が実行され、テンポ算出部２２は、演奏制御部１６に対して算出したテンポＢ２＝１２０を出力する。演奏制御部１６は、拍タイミングｔ２において、そのときの旋律データ５０上での進行位置Ｓ２以降の旋律データをテンポＢ２＝１２０で再生するように音楽出力部４０にテンポＢ２＝１２０を指令する。この場合、拍タイミングｔ２において算出した振り周期Ｔ２がテンポＢ２＝１２０に相当する２秒であり、拍タイミングｔ２で再生している旋律データ５０上の進行位置Ｓ２と拍データｈ２が示す旋律データ５０上の位置Ｌ２が一致するので、拍タイミングｔ２に演奏制御部１６から音楽出力部４０へ指令出力されるテンポＢ２は以前と同じ１２０となる。換言すれば、拍タイミングの検出時に指揮棒３２の動きとその時に再生している旋律データ５０上の進行位置が一致しており、指揮棒３２の振り周期も以前と変化がなければ、演奏制御部１６は、拍タイミング検出時以降も同じテンポで旋律データ５０を再生するように音楽出力部４０に対してテンポの指令が出力される。その結果、拍タイミングの検出時以降も同じ振り周期で指揮棒３２が動かされれば、次の拍タイミングの検出時でも音楽出力部４０が再生する旋律データ５０上の進行位置は指揮棒３２の動きと同期する。
拍タイミングｔ３においても、振り周期Ｔ３は２秒（即ち、テンポ１２０に相当する時間）であるとする。従って拍タイミングｔ２のときと同様に、拍タイミングｔ３においてテンポ算出部２２が算出するテンポＢ３は１２０となる。
【００３３】
次に、拍タイミングｔ４において周期算出部１４が算出した振り周期Ｔ４がそれまでの振り周期Ｔ３よりも短いとする。このとき、拍タイミングｔ４における旋律データ５０上の進行位置Ｓ４が図３に示すように音符ａ６の位置であったとする。この場合には、テンポ算出部２２が算出する合計音長は、拍タイミングｔ４に対応する旋律データ５０上の進行位置Ｓ４から拍タイミングｔ４の次の拍タイミングｔ５に対応する拍データｈ５によって特定される旋律データ５０上の位置Ｌ５までに含まれる音の合計音長となる。即ち、合計音長は、音符ａ６から次の拍データｈ５が示す位置Ｌ５上の音符ａ５の前までの４分音符５個分となる。また、周期算出部１４が算出する拍タイミングｔ４での振り周期Ｔ４は、１．５秒となる。振り周期Ｔ４が１．５秒と特定できるのは以下の理由による。本来は、周期算出部１４は拍タイミングｔ４とその前の拍タイミングｔ３の時間差から振り周期Ｔ４を求める。しかし、説明の都合上、拍タイミングｔ４における旋律データ５０上の進行位置Ｓ４を４分音符ａ５が演奏される位置であるとした。テンポ１２０の場合、４分音符の再生時間（持続時間）は０．５秒である。従って進行位置Ｓ４ではその前の拍タイミングｔ３における旋律データ５０上の進行位置Ｓ３から４分音符で３個分の時間が経過することになる。即ち、拍タイミングｔ３から拍タイミングｔ４までの振り周期Ｔ４はテンポ１２０の早さで４分音符３個分、つまり１．５秒となる。
【００３４】
テンポ算出部２２は、音符ａ６から次の拍データｈ５が示す位置Ｌ５上の音符ａ５の前までの４分音符５個分を振り周期Ｔ４（＝１．５秒）で演奏するテンポＢ４を求める。そのテンポＢ４の具体的数値は、Ｂ４＝｛（４分音符の数）／（振り周期）｝×６０＝｛５／１．５｝×６０＝２００となる。テンポＢ４＝２００は、４分音符の再生時の実際の持続時間が０．３秒であることを表す。
演奏制御部１６は、拍タイミングｔ４が検出された時点、別言すれば、旋律データ５０上で進行位置Ｓ４に位置する音符ａ６が音楽出力部４０によって再生された時点で、テンポ算出部２２が算出したテンポＢ４＝２００を音楽出力部４０に指令出力する。拍タイミングｔ４から次の拍タイミングｔ５までの振り周期Ｔ５がその前の振り周期Ｔ４と同じであれば、拍タイミングｔ５が検出される時点に再生される旋律データ５０上の位置は、拍タイミングｔ５に対応する拍データｈ５が示す位置Ｌ５となる。即ち、拍タイミングｔ５においては、その拍タイミングｔ５で再生されるべき旋律データ５０上の位置Ｌ５（拍データｈ５によって特定される旋律データ５０上の位置）が再生されることになる。拍タイミングｔ４で演奏制御部１６が音楽出力部４０に対して旋律データ５０を再生するテンポをＢ４＝２００と指令出力することで、次の拍タイミングｔ５が検出される時点には指揮棒３２の振りのタイミングと再生される旋律データ５０上の位置（拍データｈ５が示す旋律データ５０上の位置Ｌ５）が同期することになる。
【００３５】
振り周期Ｔ４が１．５秒であるということは、指揮棒３２の動きが示すテンポは、［４分音符の個数（４個）］／［１小節分の周期（１．５秒）］×６０＝１６０となる。演奏制御部１６が音楽出力部４０へ指令出力するテンポＢ４＝２００は指揮棒３２の動きが示すテンポよりは早くなる。しかしテンポＢ４＝２００は指揮棒３２の動きが示すテンポに対して音楽出力部４０が再生する音の旋律データ５０上の位置を追いつかせるために必要な最小限のテンポである。このテンポＢ４＝２００は、特許文献１に示された技術によるテンポよりは実際に指揮棒３２が示すテンポに近い値である。比較のため、次に特許文献１に開示された技術によるテンポの修正値を計算する。
【００３６】
特許文献１に開示された技術のように、図３に示す拍データｈ４までテンポ１２０で旋律データ５０が再生された後に次の拍タイミングｔ５において拍データｈ５が示す旋律データ５０上の位置Ｌ５が再生されるようにするためのテンポＢ５は次のように算出される。拍タイミングｔ４（このときの旋律データ５０上の進行位置は進行位置Ｓ４である）から、拍タイミングｔ４に対応する拍データｈ４が再生されるまでのタイムラグはそれまでのテンポ１２０で再生される４分音符１個分、即ち０．５秒となる。指揮棒３２は旋律データ５０上での進行位置Ｓ４から振り周期Ｔ４（＝１．５秒）で動き続けている。従って、拍データｈ４が示す旋律データ５０上の位置Ｌ４から次の拍データｈ５が示す位置Ｌ５まで旋律データ５０を再生する時間は振り周期Ｔ４（＝１．５秒）−タイムラグ（０．５秒）＝１．０秒となる。次の拍データｈ５が示す旋律データ５０上の位置Ｌ５が次の拍タイミングｔ５の時に再生されるようにするためのテンポＢ５は、Ｂ５＝［｛４分音符の個数（＝４個）｝／｛振り周期Ｔ４（＝１．５秒）−タイムラグ（＝０．５秒）｝］×６０＝２４０となる。テンポ２４０とは、旋律データ５０の再生時の４分音符の持続時間が０．２５秒であることを意味する。
図３で説明すると、旋律データ５０上の進行位置Ｓ３までは指揮棒３２が示すテンポは１２０であったものが進行位置Ｓ３以降はテンポ１６０に早まった場合、本実施例の演奏装置１０によれば、進行位置Ｓ４の時点で演奏制御部１６が音楽出力部４０に対して旋律データ５０の再生テンポＢ４＝２００を指令出力する。そうすることによって、次の拍タイミングｔ５においてそのときの指揮棒３２の動きと旋律データ５０の進行位置Ｓ５を一致させることができる。
一方、特許文献１の技術によると、拍データｈ４が示す旋律データ５０上の位置Ｌ４まで再生が進行した時点で音楽出力部４０に対して旋律データ５０の再生テンポＢ５＝２４０を指令出力しなければ、拍データｈ５が示す旋律データ５０上の位置Ｌ５の再生時点と次の指揮棒３２が振られる時点（拍タイミングｔ５）を同期させることができない。
このように本実施例の演奏装置１０によれば、旋律データに記述された旋律の再生中に指揮棒３２の振り周期が早まった場合に、より指揮棒３２の振り周期に近いテンポで再び指揮棒３２の振り周期と旋律データの再生を同期させることができる。
【００３７】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
【００３８】
例えば、実施例では音楽出力部４０として旋律データ５０を再生する楽曲再生器４２とスピーカ４４を例とした。音楽出力部はこれに限らず、例えば旋律データに従って楽器を演奏する演奏機械であってもよい。
また、実施例の拍タイミング検出部１２は、指揮棒３２の動きを撮影するカメラ３４の映像データを解析して拍タイミングを検出した。拍タイミングの検出はカメラの映像データに基づく装置に限らない。例えば、指揮棒３２の中に加速度センサを内蔵させ、拍タイミング検出部には加速度センサの出力を入力し、加速度センサの出力によって指揮棒３２の周期的な動きの中から特定の拍を示す拍タイミングを検出するように構成してもよい。
また、実施例では、演奏装置の外部から旋律を再生又は演奏する演奏速度を指示する指示部として指揮者が振る指揮棒を例とした。指示部は、指揮者の振る指揮棒に限定されず、演奏装置の外部から、演奏装置が再生又は演奏する際の演奏速度を指示するものであれば機械であってもよい。その例としては、例えば指揮者の動きを模擬する指揮ロボットなどが挙げられる。
また、実施例では、演奏速度を規定する変数として音楽用語上の「テンポ」を用いた。演奏速度を規定する変数は、音楽用語上の「テンポ」に限らず、例えば４分音符や８分休止符などの夫々の音記号（休止符を含む）が実際に演奏される際の各音記号が示す音の音長の持続期間を規定するものであってもよい。
【００３９】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００４０】
【図１】実施例の演奏装置のブロック図である。
【図２】実施例の演奏装置が実行する処理のフローチャート図である。
【図３】楽曲データの例を示す模式図である。
【図４】指揮棒の動きを示す模式的グラフである。
【図５】４拍子を表す指揮棒の先端の軌跡を示す図である。
【符号の説明】
【００４１】
１０：演奏装置
１２：拍タイミング検出部
１４：周期算出部
１６：演奏制御部
１８：楽曲データ記憶部
２０：進行位置特定部
２２：テンポ算出部（演奏速度算出部）
３０：指揮者
３２：指揮棒
４０：音楽出力部
４２：楽曲再生器
４４：スピーカ
５０：旋律データ
５２：サブデータ
５４：楽曲データ
５６：指揮棒の動きの模式的グラフ
１００：４拍子のときの指揮棒先端の軌跡
【図１】
2007163668.tif 000003
【図２】
2007163668.tif 000004
【図３】
2007163668.tif 000005
【図４】
2007163668.tif 000006
【図５】
2007163668.tif 000007