(57)【特許請求の範囲】
【請求項１】
一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データを供給する演奏データ供給手段と、
前記供給された演奏データに含まれる複数の音高情報を分析して所定の楽器を用いて各音符を演奏する際に操作すべき指を表す運指情報を自動的に生成する情報生成手段とを具えてなり、
前記情報生成手段は、前記音高情報を曲の進行順に検索して分析し、これによって前記運指情報が生成できなかった場合に、次に、前記音高情報を前記曲の進行順とは逆方向に検索して分析することによって、前記運指情報を生成することを特徴とする演奏データ処理装置。
【請求項２】
前記情報生成手段はまず前記音高情報を曲の進行順に検索して分析し、これによって運指情報を生成することができなかった場合にのみ、前記音高情報を曲の進行順とは逆方向に操作して分析することを特徴とする請求項１に記載の演奏データ処理装置。
【請求項３】
前記情報生成手段は前記音高情報を曲の進行順に検索して分析した結果と、前記音高情報を曲の進行順とは逆方向に操作して分析した結果とを比較して、より長い区間で前記運指情報を生成することができた方を選択することを特徴とする請求項１に記載の演奏データ処理装置。
【請求項４】
一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データを供給する演奏データ供給手段と、
前記供給された演奏データに含まれる複数の音高情報を分析して所定の楽器特有の音楽的な表現を楽音に付加する演奏情報を自動的に生成する情報生成手段とを具えてなり、
前記情報生成手段は、前記音高情報を演奏進行順とは逆方向に検索して分析することによって、前記演奏情報を生成することを特徴とする演奏データ処理装置。
【請求項５】
一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データを供給する演奏データ供給手段と、
前記供給された演奏データに含まれる複数の音高情報を分析して弦楽器の演奏指を表す運指情報を生成する情報生成手段とを具えてなり、
前記情報生成手段は、当該弦楽器における演奏ポジションに応じて異なる運指パターンに従って前記運指情報を生成することを特徴とする演奏データ処理装置。
【請求項６】
一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データをその供給元から処理装置に供給するステップと、
前記処理装置において、前記供給された演奏データに含まれる複数の音高情報を曲の進行順に検索して分析し、所定の楽器を用いて各音符を演奏する際に操作すべき指を表す運指情報を自動的に生成し、前記曲の進行順での検索によって前記運指情報が生成できなかった場合に、前記音高情報を前記曲の進行順とは逆方向に検索して分析することによって、前記運指情報を生成するステップと
を具えた演奏データ処理方法。
【請求項７】
一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データをその供給元から処理装置に供給するステップと、
前記処理装置において、前記供給された演奏データに含まれる複数の音高情報を演奏進行順とは逆方向に検索して分析することによって、所定の楽器特有の音楽的な表現を楽音に付加する演奏情報を自動的に生成するステップと
を具えた演奏データ処理方法。
【請求項８】
一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データをその供給元から処理装置に供給するステップと、
前記処理装置において、前記供給された演奏データに含まれる複数の音高情報を分析して弦楽器の演奏指を表す運指情報を、当該弦楽器における演奏ポジションに応じて異なる運指パターンに従って生成するステップと
を具えた演奏データ処理方法。
【請求項９】
コンピュータ読取り可能な記憶媒体であって、コンピュータに、
一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データをその供給元から該コンピュータの処理装置に供給させるステップと、
前記処理装置において、前記供給された演奏データに含まれる複数の音高情報を曲の進行順に検索して分析し、所定の楽器を用いて各音符を演奏する際に操作すべき指を表す運指情報を自動的に生成し、前記曲の進行順での検索によって前記運指情報が生成できなかった場合に、前記音高情報を前記曲の進行順とは逆方向に検索して分析することによって、前記運指情報を生成するステップと
を実行させるためのプログラムを記憶してなる記憶媒体。
【請求項１０】
コンピュータ読取り可能な記憶媒体であって、コンピュータに、
一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データをその供給元から該コンピュータの処理装置に供給させるステップと、
前記処理装置において、前記供給された演奏データに含まれる複数の音高情報を演奏進行順とは逆方向に検索して分析することによって、所定の楽器特有の音楽的な表現を楽音に付加する演奏情報を自動的に生成するステップと
を実行させるためのプログラムを記憶してなる記憶媒体。
【請求項１１】
コンピュータ読取り可能な記憶媒体であって、コンピュータに、
一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データをその供給元から該コンピュータの処理装置に供給させるステップと、
前記処理装置において、前記供給された演奏データに含まれる複数の音高情報を分析して弦楽器の演奏指を表す運指情報を、当該弦楽器における演奏ポジションンに応じて異なる運指パターンに従って生成するステップと
を実行させるためのプログラムを記憶してなる記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、演奏データに含まれる一連の音符列の各音高をそれぞれ表す複数の音高情報を分析し、所定の楽器を用いて各音符を演奏する際に操作すべき指を表す運指情報や楽音に所定の楽器特有の音楽的な表現を付加する演奏情報を自動的に生成する演奏データ処理装置および方法並びに記憶媒体に関し、特に前記運指情報や前記演奏情報を簡単な処理で生成することを可能とした演奏データ処理装置及び方法並びに記憶媒体に関する。
【０００２】
【従来の技術】
楽器の演奏方法を習得する場合、単に楽譜等が記された教本を見て実際に楽器を演奏操作しながら段階的に習得していくことは特に初心者にとって非常に難しいことである。そこで、近年においては、ディスプレイ上で楽器の演奏指示を行うことによって楽器の演奏方法を習得することが可能となっている。該楽器の演奏指示では、例えば、所定のディスプレイ上に演奏方法を習得したい楽器の一部画像を表示し、該表示した楽器上における現在の演奏操作対象となる操作子の位置を演奏曲の再生にあわせて順次指示することが行われる。すなわち、楽器をどの指で操作していけばよいかを表す運指を曲の進行と共に表示する。ユーザはディスプレイ上に表示される演奏指示に従うことで、簡単に該楽器の演奏方法を習得することができる。こうした運指をディスプレイ上に示す場合には、各音符を操作するために用いる指を表す運指情報を予め生成しておく必要がある（つまり、運指付け）。そこで、演奏データに含まれる一連の音符列の各音高をそれぞれ表す複数の音高情報を分析し、各音符毎に運指情報を自動的に生成することによって運指付けを行う装置などが従来から知られている（例えば、本出願人が既に出願済みの特開平７−２６１７５０など）。
また、演奏データを一連の音符列の各音高をそれぞれ表す複数の音高情報のみで構成すると機械的な無表情な演奏が再生されることとなり非常に不自然であるために、より自然な演奏、生々しい演奏とするためには、様々な楽器毎に特有の音楽的な表現（すなわち、楽器らしさ）を表す演奏情報を制御データとして加える必要がある（つまり、表情付け）。そこで、演奏データを分析して自動的に表情付けを行う装置などが従来から知られている（例えば、本出願人が既に出願済みの特開平１０−１０５１７３など）。
【０００３】
【発明が解決しようとする課題】
ところで、運指付けや表情付けを自動的に行う従来から知られた装置では、演奏データを曲の先頭から後方に向かって（すなわち、曲の流れに従って順方向に）検索することによって、曲の進行順に運指付けや表情付けを行っている。しかし、場合によっては後方の演奏データを参照しながら運指付けや表情付けを行う方が適切な運指付けや表情付けを行うことができることがある。そこで、従来の装置では、適切な運指付けや表情付けを行うために、一旦後方の演奏データをチェックしてから前の演奏データに戻って運指付けや表情付けを行う等の複雑な処理を行わなければならず処理効率が悪い、という問題点があった。
また、従来の装置では、特に弦楽器に対する運指付けを行う場合に、演奏時に弦を抑える際に配置する手の位置を考慮して運指付けが行われることがなかったことから、演奏時に滑らかな操作が可能な運指付けを行うことが困難である、という問題点があった。
【０００４】
本発明は上述の点に鑑みてなされたもので、複雑な処理を行うことなく簡単な処理を行うことによって、連続的な操作を行うことが可能な運指付けや種々の楽器特有の音楽的な表情付けを効率的に行うことができるようにした演奏データ処理装置及び方法並びに記憶媒体を提供しようとするものである。
【０００５】
【課題を解決するための手段】
本発明に係る演奏データ処理装置は、一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データを供給する演奏データ供給手段と、前記供給された演奏データに含まれる複数の音高情報を分析して所定の楽器を用いて各音符を演奏する際に操作すべき指を表す運指情報を自動的に生成する情報生成手段とを具えてなり、前記情報生成手段は、前記音高情報を曲の進行順に検索して分析し、これによって前記運指情報が生成できなかった場合に、次に、前記音高情報を前記曲の進行順とは逆方向に検索して分析することによって、前記運指情報を生成することを特徴とする。これによれば、演奏データを曲の進行順で検索するのみならず、逆方向にも検索するようにしたので、適切な運指付けを自動的に行うことができる。
【０００６】
更に、本発明に係る演奏データ処理装置は、一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データを供給する演奏データ供給手段と、前記供給された演奏データに含まれる複数の音高情報を分析して所定の楽器特有の音楽的な表現を楽音に付加する演奏情報を自動的に生成する情報生成手段とを具えてなり、前記情報生成手段は、前記音高情報を演奏進行順とは逆方向に検索して分析することによって、前記演奏情報を生成することを特徴とする。
情報生成手段は、演奏データに少なくとも含まれる一連の音符列の各音高をそれぞれ表す複数の音高情報を演奏進行順とは逆方向に検索し、検索により得られた音高情報を分析することによって所定の楽器特有の音楽的な表現を楽音に付加する演奏情報を生成する。すなわち、演奏データに含まれる音高情報を演奏時に最後に演奏される音高情報から演奏時に最初に演奏される音高情報へと順次に遡るようにして検索し、検索した音高情報を分析する。こうすると、後方の演奏データを参照しながら処理しないと適切に生成することができない所定の楽器特有の音楽的な表現を楽音に付加する演奏情報を、演奏データを演奏進行順と逆方向に検索するだけで生成することができるようになる。すなわち、演奏データの逆方向検索に従う音高情報の分析といった簡単な処理を行うだけで、適切な演奏情報の生成を効率的に行うことができるようになる。
【０００８】
また、本発明に係る演奏データ処理装置は、一連の音符列の各音高をそれぞれ表す複数の音高情報を少なくとも含む演奏データを供給する演奏データ供給手段と、前記供給された演奏データに含まれる複数の音高情報を分析して弦楽器の演奏指を表す運指情報を生成する情報生成手段とを具えてなり、前記情報生成手段は、当該弦楽器における演奏ポジションに応じて異なる運指パターンに従って前記運指情報を生成することを特徴とする。これによると、当該弦楽器における演奏ポジションの領域に応じて異なる運指パターンに従って前記運指情報を生成することになることから、演奏ポジションに応じて連続的な運指を行うことのできる最適な運指情報を生成することができるようになる。
【０００９】
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【００１０】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【００１１】
図１は、この発明に係る演奏データ処理装置を適用した電子楽器の実施の形態を示すハード構成ブロック図である。
この実施の形態においては、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータの制御の下に各種の処理が実行されるようになっている。この実施の形態では、１個のＣＰＵ１によって各種処理を行う電子楽器を例に説明する。ＣＰＵ１は、この電子楽器全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してリードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３、検出回路４、スイッチ検出回路５、表示回路６、音源回路７、効果回路８、外部記憶装置９、ＭＩＤＩインタフェース（Ｉ／Ｆ）１０および通信インタフェース１１がそれぞれ接続されている。更に、ＣＰＵ１には、タイマ割込み処理（インタラプト処理）における割込み時間や各種時間を計時するタイマ１Ａが接続されている。すなわち、タイマ１Ａは時間間隔を計数したり、演奏データに従う曲を自動演奏する際の演奏テンポを設定したりするためのテンポクロックパルスを発生する。このテンポクロックパルスの周波数は、各種スイッチ５Ａの中の例えばテンポ設定スイッチ等によって調整される。このようなタイマ１ＡからのテンポクロックパルスはＣＰＵ１に対して処理タイミング命令として与えられたり、あるいはＣＰＵ１に対してインタラプト命令として与えられる。ＣＰＵ１は、これらの命令に従って各種処理を実行する。各種処理には、例えば該電子楽器を操作する際に用いる指の指定に関する運指情報を生成する運指付け処理、曲に対してより自然な演奏や生々しい演奏を行うための様々な楽器毎に特有の音楽的な表現に関する演奏情報を生成する表情付け処理等がある。
なお、この演奏データ処理装置は専用の装置に限られず、例えばパソコンなどの汎用装置あるいはマルチメディア機器等であってもよく、本発明に従う所定のソフトウエア又はハードウエアを用いることによって演奏データを自動的に分析して運指付けや表情付けを行うことのできるように構成した装置であればどのようなものであってもよい。
【００１２】
ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種プログラムや各種データ等を格納するものである。ＲＡＭ３は、演奏データに基づく曲を自動演奏する際に用いる自動演奏情報やＣＰＵ１が所定のプログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。演奏操作子４Ａは楽音の音高を選択するための複数の鍵を備えた、例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子４Ａは楽音演奏のために使用できるのは勿論のこと、自動演奏を行う際に用いるメロディのピッチやリズムを入力するための入力手段として使用することもできる。勿論、これに限らず、楽音の音高を選択するための弦を備えたネック等のようなものであってもよいことは言うまでもない。検出回路４は、演奏操作子４Ａの各鍵の押圧及び離鍵を検出することによって、あるいは弦の振動を検出することによって、検出出力を生じる。パネル操作子（スイッチ等）５Ａは各種のパラメータを指定したり、あるいは自動演奏時における各種演奏条件等を入力するための各種の操作子を含んで構成される。勿論、音高、音色、効果等を選択・設定・制御するために用いる数値データ入力用のテンキーや文字データ入力用のキーボードなどの各種操作子を含んでいてよい。スイッチ検出回路５は、スイッチ５Ａの各操作子の操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス１Ｄを介してＣＰＵ１に出力する。表示回路６は演奏データに含まれる一連の音符列の各音高をそれぞれ表す複数の音高情報や運指情報等の各種情報を、例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成されるディスプレイ６Ａに表示するのは勿論のこと、自動演奏に関する各種情報あるいはＣＰＵ１の制御状態などをディスプレイ６Ａに表示する。
【００１３】
音源回路７は複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられた演奏データを入力し、この演奏データに基づいて楽音信号を発生する。音源回路７から発生された楽音信号は、サウンドシステム８Ａを介して発音される。また、効果回路８は前記音源回路７から発生された楽音信号に対して各種効果を与える。前記音源回路７における楽音信号発生方式はいかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出す波形メモリ読み出し方式、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるＦＭ方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるＡＭ方式等の公知の方式を適宜採用してもよい。すなわち、音源回路７の方式は、波形メモリ方式、ＦＭ方式、物理モデル方式、高調波合成方式、フォルマント合成方式、ＶＣＯ＋ＶＣＦ＋ＶＣＡのアナログシンセサイザ方式、アナログシミュレーション方式等、どのような方式であってもよい。また、専用のハードウェアを用いて音源回路７を構成するものに限らず、ＤＳＰとマイクロプログラム、あるいはＣＰＵとソフトウェアを用いて音源回路７を構成するようにしてもよい。さらに、１つの回路を時分割で使用することによって複数の発音チャンネルを形成するようなものでもよいし、１つの発音チャンネルが１つの回路で形成されるようなものであってもよい。
【００１４】
外部記憶装置９は、自動演奏時に用いる各種パラメータ、運指情報や演奏情報を付与する対象としての演奏データ、ＣＰＵ１が実行する各種プログラムの制御に関するデータ等を記憶するものである。前記ＲＯＭ２に制御プログラムが記憶されていない場合、この外部記憶装置９（例えばハードディスク）に制御プログラムを記憶させておき、それを前記ＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置９はハードディスク（ＨＤ）に限られず、フロッピィーディスク（ＦＤ）、コンパクトディスク（ＣＤ−ＲＯＭ・ＣＤ−ＲＡＭ）、光磁気ディスク（ＭＯ）、あるいはＤＶＤ（Ｄｉｇｉｔａｌ  ＶｅｒｓａｔｉｌｅＤｉｓｋの略）等の着脱自在な様々な形態の外部記録媒体を利用する記憶装置であってもよい。あるいは、半導体メモリなどであってもよい。
【００１５】
ＭＩＤＩインタフェース（Ｉ／Ｆ）１０は、他のＭＩＤＩ機器１０Ａ等からＭＩＤＩ規格の楽音情報（つまり、ＭＩＤＩデータ）を当該電子楽器へ入力したり、あるいは当該電子楽器からＭＩＤＩ規格の楽音情報（ＭＩＤＩデータ）を他のＭＩＤＩ機器１０Ａ等へ出力するためのインタフェースである。他のＭＩＤＩ機器１０Ａはユーザによる操作に応じてＭＩＤＩデータを発生する機器であればよく、鍵盤型、弦楽器型、管楽器型、打楽器型、ミブリ型等どのようなタイプの操作子を具えた（若しくは、操作形態からなる）機器であってもよい。通信インタフェース１１は、例えばＬＡＮやインターネット、電話回線等の有線あるいは無線の通信ネットワーク１１Ｂに接続されており、該通信ネットワーク１１Ｂを介して、サーバコンピュータ１１Ａと接続され、当該サーバコンピュータ１１Ａから制御プログラムや各種データを電子楽器側に取り込むためのインタフェースである。すなわち、ＲＯＭ２や外部記憶装置９（例えば、ハードディスク）等に制御プログラムや各種データが記憶されていない場合に、サーバコンピュータ１１Ａから制御プログラムや各種データをダウンロードするために用いられる。クライアントとなる電子楽器は、通信インターフェース１０及び通信ネットワーク１１Ｂを介してサーバコンピュータ１１Ａへと制御プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータ１１Ａは、このコマンドを受け、要求された制御プログラムやデータを、通信ネットワーク１１Ｂを介して本電子楽器へと配信し、本電子楽器が通信インタフェース１１を介して、これら制御プログラムや各種データを受信して外部記憶装置９（例えば、ハードディスク）等に蓄積することにより、ダウンロードが完了する。
【００１６】
なお、ＭＩＤＩインタフェース１０は専用のＭＩＤＩインタフェースを用いるものに限らず、ＲＳ２３２−Ｃ、ＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインタフェースを用いてＭＩＤＩインタフェース１０を構成するようにしてもよい。この場合、ＭＩＤＩイベントデータ以外のデータをも同時に送受信するようにしてもよい。ＭＩＤＩインタフェース１０として上記したような汎用のインタフェースを用いる場合には、他のＭＩＤＩ機器１０ＡはＭＩＤＩイベントデータ以外のデータも送受信できるようにしてよい。勿論、音楽情報に関するデータフォーマットはＭＩＤＩ形式のデータに限らず、他の形式であってもよく、その場合はＭＩＤＩインタフェース１０と他のＭＩＤＩ機器１０Ａはそれにあった構成とする。
【００１７】
本発明に係る演奏データ処理装置は、演奏データを自動的に分析し、運指付けや表情付けに関する各種情報（つまり、運指情報や演奏情報など）を自動的に生成する。そこで、まず運指付けに関する情報を演奏データに基づいて自動的に生成する処理について、図２を用いて説明する。図２は、該演奏データ処理装置におけるＣＰＵ１で実行する「運指付け処理」の一実施例を示したフローチャートである。ただし、この実施例では弦楽器型の電子楽器、特に弦を指で押さえることによって音の高さを決める形態の弦楽器に関する運指付けを行う場合について説明する。以下、図２のフローチャートに従って、当該処理における運指付けの処理動作を説明する。なお、以下の説明では説明を理解しやすくするために、弦楽器としてチェロを用いた場合の運指付けを例にあげて説明を行うことにする。また、チェロの場合における開放弦を「Ａ弦」「Ｄ弦」「Ｇ弦」「Ｃ弦」とし、それぞれの弦を開放状態で鳴らした場合の音高を便宜的に「Ａ２」「Ｄ２」「Ｇ１」「Ｃ１」と示すことにする。音高の後に付された数字はオクターブ上あるいはオクターブ下の関係を表すためのものであり、例えば「Ａ１」「Ａ２」「Ａ３」では順に１オクターブずつ音高が上がった「Ａ」の音を示す。
【００１８】
ステップＳ１では、第１優先順位のポジションを設定する。すなわち、運指付けの際に用いるポジションとして、予めポジション毎に付された優先順位に従って、第１優先順位のポジションを最初のポジションとして運指付けをスタートする。ここで、簡単に「ポジション」について説明する。例えばチェロのような弦を押さえて音の高さを決める弦楽器を演奏する場合、指が指板の上を動き回って該指板上の異なる位置で弦を押さえることによって異なる音高を演奏することができるようになっている。すなわち、こうした弦楽器の場合には、指板上の指（すなわち、手）の位置を決めるとそこで出せる音の高さの範囲が決まる。この指板上の手の位置を、音の低い方から順に第１ポジション、第２ポジション、第３ポジション、第４ポジションと一般的に呼んでいる。すなわち、第１ポジションとは、開放弦が奏でる音から全音（つまり２半音）上の音がなる位置に人指し指が位置し、その他の指が半音間隔の音がなる位置に位置するポジションである。第２ポジションとは、第１ポジションから半音又は２半音高音側に移動したポジションである。第３ポジションとは、第１ポジションから３半音高音側に移動したポジションである。第４ポジションとは、第１ポジションから５半音高音側に移動したポジションである。ただし、この実施例においては便宜的に第１ポジションの半音下のポジションを「ポジション２」、第１ポジションを「ポジション３」と新たに定義し、以下第１ポジションから半音上がる毎にポジション番号を１つ大きくするように番号付けして再定義する。このようにすると、この実施例では一般的に第１ポジションと呼ばれる位置を「ポジション３」、第２ポジションと呼ばれる位置を「ポジション４」、第３ポジションと呼ばれる位置を「ポジション６」、第４ポジションと呼ばれる位置を「ポジション８」と呼ぶことになる。このようなポジション毎に優先順位が予め設定されており、これに従って運指付けに用いるポジションを決定する。
【００１９】
チェロにおいてはポジション３（つまり、第１ポジション）が最も演奏しやすく、次いでポジション８（つまり、第４ポジション）が演奏しやすいポジションである、と一般的に言われる。そこで、ステップＳ１では予めポジションに付された優先順位を基に、その優先順位の中で最も優先度の高いポジションを運指付けを行う際に最初に用いるポジションとして設定する。なお、ポジションの優先順位付けとして、例えば優先順位の高い順に、ポジション３（つまり、第１ポジション）、ポジション８（つまり、第４ポジション）、ポジション４（つまり、第２ポジション）、ポジション６（つまり、第３ポジション）、…といったような優先順位付けをユーザが適宜に設定することができるようにしてよい。なお、この実施例においては、各指が拡張状態（後述）でなく基本状態（後述）にある場合における人指し指の位置を基準としてポジション番号を対応付けるものとする。また、ポジションはポジション２〜ポジション８に限らないことは言うまでもないが、一般的にチェロを用いる場合の通常の音域ではポジション９程度までが使われることが多いことから、運指付けの際にはポジション２〜ポジション９までを調べると効率的であり好ましい。ただし、曲の音域が高い場合には、ポジション９まででは演奏不能となる場合もあるので、予め曲中の最高音を調べておき、運指付けに必要なポジションを適宜設定しておくようにしてもよい。
【００２０】
ステップＳ２では、順方向運指チェック処理を行う。すなわち、上記ステップＳ１で設定したポジションに基づいて運指付けを開始する。詳しくは後述するが、ステップＳ２の順方向運指チェック処理では演奏データを曲の進行順（すなわち、順方向）に検索し、出現する音符の音高（つまり、音高情報）を上記ステップＳ１で設定したポジションで演奏可能な範囲の音高であるか否かを判定し、演奏可能な音高であれば該ポジションにおいて該当指を運指付けする。例えば、設定したポジションがポジション３であって、かつ、運指付け対象の音高が「Ｃ３」である場合には、「Ａ弦」においてポジション３の指番号「２」を用いるように該音符に対して運指付けされる。この指番号はポジションと同じように便宜的に各指に付された番号であり、指番号「１」は人指し指に、指番号「２」は中指に、指番号「３」は薬指に、指番号「４」は小指に対して各々付される。したがって、運指付け対象の音符の音高が「Ｃ３」である場合には、ポジション３の指番号「２」、すなわち「Ａ弦」を第１ポジションの状態で中指を用いて押さえるよう運指を決定する。
【００２１】
ステップＳ３では、上記ステップＳ２の順方向運指チェック処理によって、運指付け対象区間（以下、運指付けを行うべき曲の所定区間を「フレーズ」と呼ぶ）の先頭から最後まで運指付けができたか否かを判定する。当該フレーズの最後まで、すなわち該フレーズ内に存在する全ての音符に対して運指付けができた場合には（ステップＳ３のＹＥＳ）、ステップＳ４へ行く。一方、フレーズの最後まで運指付けができなかった場合、すなわちフレーズ内の途中の音符までしか運指付けができなかった場合には（ステップＳ３のＮＯ）、逆方向運指チェック処理（ステップＳ５）を行う。すなわち、上記ステップＳ１で設定したポジションに基づいて運指付けを開始する。詳しくは後述するが、ステップＳ５の逆方向運指チェック処理では演奏データを曲の進行順とは反対（すなわち、逆方向）に検索し、出現する音符の音高（つまり、音高情報）を上記ステップＳ１で設定したポジションで演奏可能な範囲の音高であるか否かを判定し、演奏可能な音高であれば該ポジションにおいて該当指を運指付けする。逆方向運指チェック処理を行った結果、順方向運指チェック処理時と同様に、フレーズの最後から先頭までの音符全てに対して運指付けができたか否かを判定する（ステップＳ６）。この逆方向運指チェック処理を行うことによって、フレーズの最後から先頭までの全ての音符に対して運指付けができた場合には（ステップＳ６のＹＥＳ）、ステップＳ４へ行く。一方、逆方向運指チェック処理を行った場合においても、フレーズ内の途中の音符までに対してしか運指付けができなかった場合には（ステップＳ６のＮＯ）、全ポジションについて順方向運指チェック処理及び逆方向運指チェック処理を行ったか否かの判定を行う（ステップＳ７）。全てのポジションにおいて上記各処理を行っていない場合には（ステップＳ７のＮＯ）、運指付けの際に用いるポジションを次の優先順位のポジションに再設定して（ステップＳ９）、ステップＳ２の処理に戻る。すなわち、新たなポジションを用いてフレーズ全体にわたる音符全てに対して運指付けを再度行うために、既に処理済のポジションに続く優先順位のポジションを用いて上記各処理を繰り返し行う。既に全てのポジションにおいて上記各処理を行っている場合には（ステップＳ７のＹＥＳ）、最も遠くまで（すなわち、数多くの音符に対して連続的に）運指付けができたポジションでの運指を選択し、後述する図３に示すようにその位置でフレーズを分割し、分割されたフレーズのうち運指付けがなされていない残りのフレーズを新たに運指付けする対象区間に再設定して（ステップＳ８）、該区間内の音符に対して運指付けを行うためにステップＳ１へ戻り、上記ステップＳ１〜ステップＳ９までの各処理を繰り返し行う。
【００２２】
ここで、上述したステップＳ８で行うフレーズ分割について図３を用いて簡単に説明する。図３は、フレーズ分割する際のフレーズ分割位置の決定方法を説明するための概念図である。図３の上段はフレーズの先頭から音符の音高をチェックして運指付けした場合（すなわち、順方向運指チェック処理による場合）を示し、図３の下段はフレーズの最後から音符の音高をチェックして運指付けした場合（すなわち、逆方向運指チェック処理による場合）を示す。これらの図において、斜線を施した部分が連続的に運指付けできたフレーズ範囲を示すものである。
上述のステップＳ８においては、最も遠くの音符まで運指付けができたポジションでの運指を選択し、その位置でフレーズを分割し、残りの部分に含まれる音符に対して新たに運指付けする。図３に示した例では、上段に示した先頭からチェックした場合の方が下段に示した最後からチェックした場合に比べて最も遠くの音符まで運指付けされている。そこで、この場合には、先頭からチェックした場合において斜線を施した範囲と斜線を施していない範囲とに分けて該フレーズを分割する。そして、斜線を施していない範囲を新たに運指付けするフレーズとして再設定し、該新フレーズ全体に対して運指付けを行うよう上記運指付け処理が繰り返し実行される。なお、ステップＳ８において、最も遠くまで運指付けができたポジションでの運指が複数存在する場合には、所定の条件に基づいていずれか１つのポジションでの運指を選択するようにしてよい。例えば、ポジションの優先順位に従う、拡張形を多用していない運指を優先する、小指を多用していない運指を優先する、等の条件を用いて選択する。
【００２３】
図２に戻り、フレーズ内の全ての音符に対して運指付けが行われた場合には（ステップＳ３のＹＥＳ）、設定したポジションでの運指に決定して（ステップＳ４）、当該運指付け処理を終了する。すなわち、当該フレーズ内に存在する全ての音高に対してポジション移動の少ない（つまり、当該フレーズの先頭から最後まで大きなポジション変化のない）運指付けができた場合には、当該運指に決定する。こうして、ポジション移動の少ない運指付けができたフレーズを組合せることによって、１曲全体の運指付けを行っていくことができる。
以上のように、本発明に係る演奏データ処理装置においては、なるべくポジション移動が少ないことを条件に、効率のよいフィンガリング（つまり、運指）を決定することができる。すなわち、フレーズ毎に最初の音符からなるべくたくさんの音符をポジション移動しなくて良いものをポジション移動回数が最少のものと決めて、以降、次にポジション移動が必要な音符から改めてポジション移動回数が最少のものを探す。こうして、１曲を通じて、ポジション移動の回数が最少数の運指を求めることができるようになる。上述した運指付け処理では、ポジション移動回数が最少のものを探す場合に曲の進行に従う順方向だけでなく曲の進行とは反対である逆方向の両方から音符を検索することから、効率的に運指付けを行うことができるようになっている。
【００２４】
次に、上述した運指付け処理において実行する順方向運指チェック処理（ステップＳ２参照）及び逆方向運指チェック処理（ステップＳ５参照）について図４を用いて説明する。図４は、順方向（又は逆方向）運指チェック処理の一実施例を示したフローチャートである。以下、図４のフローチャートに従って、当該処理における処理動作を説明する。順方向運指チェック処理と逆方向運指チェック処理とは、運指付けの際の処理方法がフレーズの先頭から最後に向かって処理するか（順方向運指チェック処理の場合：以下、単に順方向処理と呼ぶ）、フレーズの最後から先頭に向かって処理するか（逆方向運指チェック処理の場合：以下、単に逆方向処理と呼ぶ）の違いのみであることから、順方向運指チェック処理と逆方向運指チェック処理とを同じフローチャートを用いて説明する。
【００２５】
ステップＳ１１では、運指付けの対象とする音符をフレーズ先頭の音符（順方向処理の場合）あるいはフレーズ最後の音符（逆方向処理の場合）に設定する。すなわち、フレーズ分の演奏データを順方向あるいは逆方向に検索して、該演奏データに従う曲を構成する個々の音符のうち最初に検出された音符を運指付け対象の音符に設定する。ステップＳ１２では、設定されたポジションで（図２のステップＳ１あるいはステップＳ９参照）、運指付け対象に設定された音符に対して運指付けが可能であるか否かを判定する。すなわち、検出された音符の音高を鳴らすために押さえるべき指板上の所定位置に、設定されたポジションの基本状態にある各指のいずれかが位置しているか否かを判定する。設定されたポジションで運指付けが可能と判定された場合（ステップＳ１２のＹＥＳ）、該音符の運指を該運指に決定し（ステップＳ１３）、ステップＳ１４ヘ行く。一方、設定されたポジションで運指付けが可能でないと判定された場合（ステップＳ１２のＮＯ）、拡張運指での運指付けは可能であるか否かを判定する（ステップＳ１７）。すなわち、設定されたポジションにおける基本状態を用いて該音符に対して運指付けすることができない場合に、設定されたポジションにおける拡張状態を用いて該音符に対して運指付けすることができるか否かを判定する。この基本状態及び拡張状態とはローポジション（つまり、第１ポジションから第４ポジション）における左手の形を示すものであり、指が等間隔に並ぶものを「基本状態」（つまり、基本形）、人指し指と中指との間が広いものを「拡張状態」（つまり、拡張形）と呼んでいる。基本状態から拡張状態に変更する方法としては、中指、薬指、小指はそのままの位置で人指し指のみを伸ばす方法（以下、これを「上行拡張」と呼ぶ）と、人指し指はそのままの位置で中指、薬指、小指を移動する方法（以下、これを「下行拡張」と呼ぶ）とがある。そうすると、例えば、設定したポジションがポジション３である場合に基本形を用いて「Ａ弦」を押さえた場合に演奏できる音高の範囲は、「Ｂ２」「Ｃ３」「Ｃ３♯」「Ｄ３」となる。拡張形を用いて「Ａ弦」を押さえた場合に演奏できる音高の範囲は、上記「Ｂ２」「Ｃ３」「Ｃ３♯」「Ｄ３」に加えて「Ａ３♯」（上行拡張した場合）及び「Ｄ３♯」（下行拡張した場合）とが含まれることとなる。
【００２６】
この実施例では、各指の届く範囲を基本的には１半音の固定とし、例外として人指し指は１半音拡張（すなわち２半音）できるものとした。勿論、これに限らず、各ポジションに応じて、各指の届く範囲を異ならせるように構成してもよい。例えばチェロにおいては、ポジションが高くなる（つまり、駒側に近づく）につれて半音毎に異なる音を鳴らすことのできる指板上の位置の間隔が狭くなることから、ポジションが高くなるにつれてより遠い音（つまり、音高が離れた音）を鳴らすことのできる指板上の位置まで各指が届くようになる。そこで、各ポジションに応じて、各指の届く範囲を異ならせる。こうした場合には、ポジション毎に拡張できる指の範囲を設定した拡張範囲テーブルを外部記憶装置９等に予め記憶しておき、上述のステップＳ１７において、該拡張範囲テーブルに基づいて拡張運指での運指付けが可能であるか否かを判定するようにしてよい。このような拡張範囲テーブルの一実施例を示すと、図５のような構成になる。図５は、拡張範囲テーブルの一実施例を示す概念図である。
【００２７】
該拡張範囲テーブルは、ポジション毎に各指の届く範囲や拡張範囲等を設定したテーブルである。「ポジション」とは、上述したように便宜的に第１ポジションの半音下のポジションをポジション２、第１ポジションをポジション３のように再定義した場合におけるポジション番号を表す。「各指の届く範囲」とは、基本形における人指し指、中指、薬指、小指の各指が届く範囲（つまり、各指で弦を押さえることが可能な範囲）を表す。「拡張範囲」とは、人指し指を「各指の届く範囲」からさらに拡げた場合（つまり、拡張形）において弦を押さえることを可能とする許容範囲を表す。この実施例において、例えばポジション２〜６では「各指の届く範囲」が「１」であることから、基本形として人指し指、中指、薬指、小指は１半音分ずつの間隔で配置することができる。ポジション７〜１１では「各指の届く範囲」が「２」であることから、基本形として人指し指、中指、薬指、小指は１半音分あるいは２半音分ずつの間隔で配置することができる。また、各ポジションにおいて「拡張範囲」が「１」であることから、例えばポジション２〜６では人指し指については１半音分の弦を押さえることができるだけでなく（すなわち、「各指の届く範囲」が「１」である）、基本形から２半音分（つまり全音分）拡張して弦を押さえることも可能である（すなわち、「各指の届く範囲」の「１」に「拡張範囲」の「１」を足すことによって、人指し指の届く範囲を「２（１＋１）」半音分とすることができる）。
なお、図５に示す実施例はポジションと指の届く範囲などの関係を示すものであるが、チェロの場合、ポジションが高くなると人指し指と中指の間以外の部分も拡張させる場合がある。また、ポジション７以上では、一般的に小指を用いない代わりに親指を用いる場合がある。こうした場合には、親指と人指し指の間隔はかなり自在になるので、運指不可能な場合には親指に任せるように運指付けするようにしてもよい。上述した実施例においては説明を簡単にするために、こうした場合を省略して簡略化した。
【００２８】
図４に戻り、ステップＳ１７において、拡張運指での運指付けが可能であると判定された場合には（ステップＳ１７のＹＥＳ）、拡張された位置に各指を尺取（後述）移動するように設定して（ステップＳ１８）、ステップＳ１３へ行く。このステップＳ１８では、拡張運指が下行拡張である場合には現在設定されているポジションを１つアップするように、拡張運指が上行拡張である場合には現在設定されているポジションを１つダウンするようにして、ポジションを再設定する。例えば、順方向処理あるいは逆方向処理においてポジション３の下行拡張で運指した場合には、運指付けに用いるポジションをポジション３からポジション４に再設定して当該処理を続行する。順方向処理あるいは逆方向処理においてポジション３の上行拡張で運指した場合には、運指付けに用いるポジションをポジション３からポジション２に再設定して当該処理を続行する。このようにして、順方向運指チェック処理及び逆方向運指チェック処理においては、拡張運指での運指付けが可能であるか否かを判定し、可能であるならば拡張運指で運指付けしていくことにより（ステップＳ１７参照）、尺取奏法を用いた演奏ができるように運指付けを行う。例えば、ポジション３（つまり、第１ポジション）を用いてチェロの第１弦（つまり、Ａ弦）を押さえた場合、人指し指の位置はＢの音高を出す位置に位置するが、Ｂを運指中の人指し指以外の指を移動してポジションをポジション４に変更する。つまり、人指し指で「Ａ弦」を押さえたまま他の指の位置を半音分上げることによって、ポジション３の拡張形に変更する。そして、次の音符で人指し指以外の他の指が運指している間に、人指し指を拡張形から基本形に戻せば、運指を続けたままポジションを半音分シフトさせることができる。このような運指を続けた状態、すなわち隣り合うポジション間における拡張形と基本形とを繰り返し行うと、指が尺取り虫のように指板上を移動しながら演奏を行うことができるため、この実施例ではこうした尺取り虫のように指が指板上を移動して演奏する奏法を「尺取り虫奏法（略して尺取奏法）」と呼んでいる。こうした尺取奏法を行うように運指付けを行うと、ポジション移動が少ない運指で演奏を行うことが可能になる。すなわち、全ての指を同時に移動しなければならない類のポジション移動が生じることのない滑らかな運指を可能とする、連続的な運指付けを行うことができるようになる。
【００２９】
一方、ステップＳ１７において、拡張運指を用いても運指付けが可能でないと判定された場合には（ステップＳ１７のＮＯ）、運指付け失敗として（ステップＳ１９）、運指付けできた音符までの位置を記憶して（ステップＳ２０）、該チェック処理を終了する。この場合には、同一ポジションによる連続的な運指付け、あるいは尺取移動による連続的な運指付けが該運指付け対象音符までしかできないことから、連続的な運指付けのできた該音符までの位置を記憶しておく。ここで記憶された運指付けできた音符までの位置は、上述した運指付け処理においてフレーズ最後まで運指付けができたか否かを判定する際（図２のステップＳ３及びステップＳ６参照）の判定対象として用いられるし、またフレーズを分割する際（図２のステップＳ８参照）にフレーズ分割位置として用いられる。こうすると、曲全体に対して連続的な運指付けができなくても、連続的な運指付けができた複数のフレーズで１曲全体を構成することができる。つまり、ポジション移動の少ない運指付けを行うことができる。
【００３０】
設定されたポジションにおける基本形あるいは拡張形で運指付けができた場合には（ステップＳ１２のＹＥＳ又はステップＳ１７のＹＥＳ）、運指付け対象音符に付する運指として該運指に決定する（ステップＳ１３）。そして、当該フレーズの最後あるいは先頭の音符まで運指付けが終了したか否かを判定する（ステップＳ１４）。つまり、フレーズに含まれる全ての音符に対して運指付けが行われたか否かを判定する。フレーズ最後あるいは先頭の音符まで運指付けが終了していない場合（ステップＳ１４のＮＯ）、この場合にはフレーズに含まれる全ての音符に対して運指付けが行われていないことから運指付け対象音符を次に続く音符に設定し（ステップＳ１６）、ステップＳ１２の処理へ戻る。すなわち、運指付けの対象とする音符を新たに設定し、上記各処理を繰り返し行い、順次に音符に対して運指付けを行っていく。フレーズ最後あるいは先頭の音符まで運指付けが終了した場合（ステップＳ１４のＹＥＳ）、この場合にはフレーズに含まれる全ての音符に対して運指付けが行われていることから、運指付け成功として（ステップＳ１５）、該処理を終了する。
【００３１】
上述した運指付け処理及び順方向（あるいは逆方向）運指チェック処理（図２及び図４参照）によって行われる運指付けの具体例について、図６を用いて説明する。図６は運指付け処理及び順方向（あるいは逆方向）運指チェック処理を行った場合の運指付け結果の具体例を示す図であり、図６（Ａ）は順方向から運指付けをした場合（すなわち、順方向運指チェック処理）を示し、図６（Ｂ）は逆方向から運指付けした場合（すなわち、逆方向運指チェック処理）を示す。この実施例では説明を理解しやすくするために、「Ａ♯→Ｃ→Ｂ→Ｃ♯→Ｃ→Ｅ」の順に進行するフレーズを第１弦（つまり「Ａ弦」）だけを用いて演奏することができる場合におけるチェロの運指付けについて説明する。すなわち、ここではチェロの「Ａ弦」のみを用いて演奏することのできるフレーズを例として、チェロの運指付けについて説明する。図６は指板上におけるポジション毎の各指の位置を示すものであり、図の上段に運指付け対象の音符の音高を、図の左側に指板上におけるポジションを示す番号Ｐ２〜Ｐ８を（例えば、Ｐ２はポジション２を表す）、図の下段に運指として決定したポジションをそれぞれ示す。また、図中の数字１〜４は運指として決定したポジション毎の指番号を、図中の丸印は「Ａ♯→Ｃ→Ｂ→Ｃ♯→Ｃ→Ｅ」の各音を出すためにユーザが押さえなければならない「Ａ弦」の位置を便宜的に示したものである。なお、以下の説明ではポジションの優先順位付けとして、ポジション３、ポジション８、ポジション４の順に優先順位が高く設定されているものとする。
【００３２】
運指付け処理を開始すると、第１優先順位のポジション３が設定されて順方向運指チェック処理へ行く（図２のステップＳ１及びＳ２参照）。順方向運指チェック処理では、フレーズの先頭の「Ａ♯」を運指付け対象音符に設定する（図４のステップＳ１１参照）。先頭の「Ａ♯」に対する運指付けを行う場合、優先順位に従って設定されたポジション３の基本形（Ｐ３）では運指付けができないことから、ポジション３の上行拡張（Ｐ３Ｕ）で運指付けがなされる（図４のステップＳ１２及びＳ１７及びＳ１３参照）。すなわち、演奏データ中の音高情報「Ａ♯」に対して付される運指情報は「Ａ弦」「ポジション３上行」「指番号１」である。次に運指付け対象音符を次の音符、すなわち「Ａ♯」の直後に続く「Ｃ」に設定する（図４のステップＳ１４及びＳ１６参照）。この「Ｃ」に対する運指付けは、「Ａ♯」に対する運指付けの際に尺取移動（図４のステップＳ１８参照）が行われていることからポジション２で行われる。当該「Ｃ」に対してはポジション２の基本形Ｐ２で運指付けを行うことができることから、演奏データ中の音高情報「Ａ♯」の直後に続く音高情報「Ｃ」に対して付される運指情報は「Ａ弦」「ポジション２」「指番号３」となる。このようにして、「Ａ♯」以降の「Ｃ」「Ｂ」「Ｃ♯」「Ｃ」までは全てポジション２の基本形（Ｐ２）を用いて連続的に運指付けを行うことができる。すなわち、音高情報「Ｂ」に対して「Ａ弦」「ポジション２」「指番号２」、音高情報「Ｃ♯」に対して「Ａ弦」「ポジション２」「指番号４」、音高情報「Ｃ」に対して「Ａ弦」「ポジション２」「指番号３」を運指情報としてそれぞれ生成する。ところで、図６（Ａ）に示すように、最後のフレーズ最後の「Ｅ」に対してはポジション２の基本形（Ｐ２）のみならずポジション２の下行拡張（Ｐ２Ｌ）を用いたとしても「Ｅ」を鳴らすことのできる位置まで指が届くことはない。つまり、該「Ｅ」に対してはポジション２を用いては運指付けすることができないし、また尺取移動によっても運指付けすることができない。そこで、運指付け失敗として運指付けできた音符の位置を記憶し（図４のステップＳ１９及びＳ２０参照）、順方向運指チェック処理を終了する。
以上のようにして、図６（Ａ）に示すような運指を行う運指情報が生成されて、一時的にメモリ等に記憶される。
【００３３】
運指付け処理に戻ると、順方向運指チェック処理ではフレーズの最後まで運指付けができなかったことから、次に逆方向運指チェック処理を行う（図２のステップＳ３及びＳ５参照）。逆方向運指チェック処理では、フレーズの最後の「Ｅ」を運指付け対象音符に設定する（図４のステップＳ１１参照）。最後の「Ｅ」に対する運指付けを行う場合、優先順位に従って設定されたポジション３の基本形（Ｐ３）及びポジション３の拡張形（Ｐ３Ｕ及びＰ３Ｌ）では運指付けができないことから、この場合には演奏データ中の音高情報「Ｅ」に対する運指情報を生成することなしに逆方向運指チェック処理を終了し、運指付け処理に戻る。こうして、順方向運指チェック処理及び逆方向運指チェック処理を行ったにも関わらず、フレーズ最後まで運指付けできなかった場合には、次の優先順位のポジション８を設定して上記処理を繰り返して行う（図２のステップＳ７及びＳ９参照）。
【００３４】
ポジション８において順方向運指チェック処理を行った場合はフレーズ先頭の「Ａ♯」に対して運指付けすることができず、また逆方向処理を行った場合にはフレーズ最後の「Ｅ」に対してのみしか運指付けをすることができない。したがって、この場合にも次の優先順位のポジション４を設定して上記処理を繰り返して行うことになる。
ポジション４において順方向運指チェック処理を行った場合はフレーズ先頭の「Ａ♯」に対して運指付けすることができないことから、逆方向処理を行う。逆方向運指チェック処理においてフレーズの最後の「Ｅ」に対する運指付けを行う場合、優先順位に従って設定されたポジション４の基本形（Ｐ４）では運指付けができないことから、ポジション４の下行拡張（Ｐ４Ｌ）で運指付けがなされる（図４のステップＳ１２及びＳ１７及びＳ１３参照）。すなわち、演奏データ中の音高情報「Ｅ」に対して付される運指情報は「Ａ弦」「ポジション４下行」「指番号４」である。次に運指付け対象音符を次の音符、すなわち「Ｅ」の直前の「Ｃ」に設定する（図４のステップＳ１４及びＳ１６参照）。この「Ｃ」に対する運指付けは、「Ｅ」に対する運指付けの際に尺取移動（図４のステップＳ１８参照）が行われていることからポジション５で行われる。当該「Ｃ」に対してはポジション５の上行拡張（Ｐ５Ｕ）で運指付けを行うことができることから、演奏データ中の音高情報「Ｅ」の直前の音高情報「Ｃ」に対して付される運指情報は「Ａ弦」「ポジション５上行」「指番号１」となる。該「Ｃ」の直前の「Ｃ♯」に対する運指付けは、「Ｃ♯」に対する運指付けの際に尺取移動（図４のステップＳ１８参照）が行われていることからポジション４で行われる。当該「Ｃ」に対してはポジション４の基本形（Ｐ４）で運指付けを行うことができることから、演奏データ中の音高情報「Ｃ♯」に対して付される運指情報は「Ａ弦」「ポジション４」「指番号２」となる。該「Ｃ♯」の直前の「Ｂ」に対する運指付けは、ポジション４で行われる。当該「Ｂ」に対してはポジション４の上行拡張（Ｐ４Ｕ）で運指付けを行うことができることから、演奏データ中の音高情報「Ｂ」に対して付される運指情報は「Ａ弦」「ポジション４上行」「指番号１」となる。該「Ｂ」の直前の「Ｃ」に対する運指付けは、尺取移動（図４のステップＳ１８参照）が行われていることからポジション３で行われる。当該「Ｃ」に対してはポジション３の基本形（Ｐ３）で運指付けを行うことができることから、演奏データ中の音高情報「Ｃ♯」に対して付される運指情報は「Ａ弦」「ポジション３」「指番号２」となる。該「Ｃ」の直前の「Ａ♯」に対する運指付けは、尺取移動（図４のステップＳ１８参照）が行われていないことからポジション３で行われる。当該「Ａ♯」に対してはポジション３の上行拡張（Ｐ３Ｕ）で運指付けを行うことができることから、演奏データ中の音高情報「Ａ♯」に対して付される運指情報は「Ａ弦」「ポジション３上行」「指番号１」となる。こうして、ポジション４を用いてフレーズの進行順とは逆方向から運指付けを始めると、該フレーズの「Ａ♯」「Ｃ」「Ｂ」「Ｃ♯」「Ｃ」「Ｅ」の全てを連続的に運指付けすることができる。そこで、この場合には図６（Ｂ）に示すような運指に決定される（図２のステップＳ６、Ｓ４参照）。
以上のように、順方向からだけではなく逆方向から検索を行うといった単純な処理を行うだけで、連続的な運指を簡単に決定することができるようになる。
【００３５】
なお、逆方向運指チェック処理を行うことによって連続的な運指付けができた場合には、逆方向運指チェック処理で生成した運指情報の一部を変換する必要がある。すなわち、逆方向運指チェック処理で行われる上行拡張や下行拡張は、順方向からの運指では異なるポジションにおける下行拡張や上行拡張に対応するため、逆方向運指チェック処理で生成した上行拡張や下行拡張に関する運指情報を変換しなければならない。例えば、上述した具体例において、逆方向運指チェック処理において「Ｅ」から「Ｃ」に推移する際に上行拡張で運指付けし、また、「Ｃ♯」から「Ｂ」に推移する際にも上行拡張で運指付けを行っている。そこで、順方向からの運指付けに対応するようにこれらの運指情報を変換すると、「Ｃ」に対して付される運指情報は「Ａ弦」「ポジション４下行」「指番号１」となり、「Ｂ」に対して付される運指情報は「Ａ弦」「ポジション３下行」「指番号１」となる。このように、逆方向運指チェック処理において「上行拡張」「下行拡張」で運指付けした場合には、生成した運指情報を変換しなければならない。
【００３６】
次に、表情付けについて説明する。
演奏データを一連の音符列の各音高情報のみで構成すると機械的な無表情な演奏が再生されることとなり非常に不自然であるために、より自然な演奏、生々しい演奏とするためには、様々な楽器毎に特有の音楽的な表現（すなわち、楽器らしさ）を表す演奏情報を制御データとして加えた方がよい（すなわち、表情付け）。例えば、ギターのような弦楽器においてはハンマリングオンやプリングオフという奏法が知られており、このハンマリングオンやプリングオフといった奏法を普通の奏法に織り交ぜて用いることによって、ギターらしい表情を作り出すことができる。本発明に係る演奏データ処理装置は、上述したような運指付け処理によって運指情報を生成するだけでなく、楽音に音楽的な表現を付加する表情付けに関する情報も生成することができる。そこで、楽音に音楽的な表現を付加する表情付け処理について、図７を用いて説明する。図７は、表情付け処理の一実施例を示したフローチャートである。以下、図７を用いて該表情付け処理の動作について説明する。
【００３７】
ステップＳ３１では、演奏データをフレーズ分割する。この場合におけるフレーズ分割の方法としては、以下のようなルールを用いてフレーズ分割を行うとよい。例えば、無音部分があれば区間の区切りとする。予め指定された音価よりも長い音符があれば区間の区切りとする。同じ音高の音が連続したら区間の区切りとする。ただし、こうした場合には同じ音高の音符のうち、１つ目の音符は区間に含める（つまり、同じ音高の音符が連続する場合には、同じ音高の音符のうち最後の音符が次の区間の先頭になる）。連続する音符の音程が４半音以上離れたら区間の区切りとする。この場合、４半音離れる手前の音符までが区間内に含まれることになる。勿論、これら以外の方法でもよい。例えば、前述の運指評価を事前に行い、その結果、演奏弦が異なると評価された部分もフレーズ区切りとすると良い。
ステップＳ３２では、分割したフレーズのうち最初のフレーズを選択する。ステップＳ３３では、選択したフレーズ内の最後から２つの音符をペアにする。ステップＳ３４では、各ペアに表情データを付与する。例えば、ギターの場合におけるハンマリングオンやプリングオフ等を、ペアを構成する音符に付与する。ステップＳ３５では、表情データを付与したペアの前に２つ以上音符があるか否かを判定する。２つ以上音符がある場合には（ステップＳ３５のＹＥＳ）、前にある２つの音符をペアにして（ステップＳ３６）、ステップＳ３４の処理へ戻る。一方、前に２つ以上の音符がない場合には（ステップＳ３５のＮＯ）、最後のフレーズまで処理が終わったか否かを判定する（ステップＳ３７）。最後のフレーズまで処理が終わった場合（ステップＳ３７のＹＥＳ）、処理を終了する。最後のフレーズまで処理が終わっていない場合（ステップＳ３７のＮＯ）、次のフレーズを選択して（ステップＳ３８）、ステップＳ３３へ戻る。
【００３８】
以上のように、フレーズ内の音符をフレーズの最後から、つまり曲の進行順とは逆方向に順次に２つずつ組合せてペアを構成し、該ペアに対して表情データを付与していく。そして、分割したフレーズ全てについて上記表情データの付与が終わるまで上記処理を繰り返し行う。こうすることによって、十分な音楽性は得られないまでもギターらしさを表現することの可能な表情付けを、曲の進行順とは逆方向から処理することで、効率的に行うことができるようになる。このように２音ずつのペアに対して表情データを付与する場合は、フレーズの区切り位置（すなわち、フレーズ内の最後のペア）に表情データが付与されているのが好ましく、フレーズの区切り位置に単独の音符が存在しない方がよい。順方向処理の場合、フレーズ区切り位置に単独音符が存在しないことを確認（例えば、フレーズ内音符が偶数個であるなど）しなければいけないが、逆方向処理によりフレーズ内の最後の音符から２音ずつペアを構成することで、前記確認処理を省略することができる。
なお、上記実施例においてはフレーズ内の全ての音符を順次組合せてペアを構成し表情データを付与するようにしたが、こうしたフレーズ内の全ての音符を順次組合せて構成した各ペアすべてに表情データを付与するものに限らず、所定のルールに当てはまるペアのみに表情データを付与するようにしてもよい。あるいは、ユーザが設定した若しくは予め設定された付与割合に応じて、付与するペアをランダムに選択するようにしてもよい。
【００３９】
なお、上述した運指付け処理（図２参照）は１曲全体について運指付けを行ってもよいし、１曲全体を予め複数フレーズに分割し、各フレーズ毎に運指付けを行ってもよい。なお、１曲全体が１つのポジションで運指付け可能なことは稀であることから、予め複数フレーズに分割して各フレーズ毎に運指付けを行うのが効率的であり好ましい。こうした場合におけるフレーズの分割方法はどのようなものであってもよく、例えばユーザによる指定に基づいて適宜の位置で分割するマニュアル分割、所定のアルゴリズムに従って適宜の位置で分割する自動分割など、各種様々なものであってよい。また、上述した運指付け処理（図２参照）では同一ポジションの連続を優先して運指付けするようにしたが、同一弦の連続を優先して運指付けするようにしてもよい。同一弦の連続を優先して運指付けする場合には、選択する弦を制限して運指付け処理を行うようにすればよい。
なお、上述した実施例においてはチェロの運指を例に示したが、他の楽器に適用してよいことは言うまでもない。例えば、ギターの場合には、コードによる定型的な運指があるので、そうしたコード毎の定型的な運指を示すテーブルを参照することによって、よりギターらしい運指を実現することができるようになる。
【００４０】
なお、上述した実施例においては、連続する音符は必ず異なる指を使うようにして運指付けを行うようにしたが、こうすると、ポジションの連続性が途切れた場合には、その部分で大きなポジション移動を引き起こす場合がある。そこで、ポジションの連続性が切断された場合には、指をずらすことによって運指可能であるか否かを判定するとよい。連続する音符を同じ指で運指する、つまり、指を押さえたままポジションをずらすことが可能である場合には、大きなポジション移動を引き起こすことがないように運指付けをすることができるようになる。
【００４１】
この演奏データ処理装置を電子楽器に適用する場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、音源装置、演奏データ処理装置等を１つの電子楽器本体に内蔵したものに限らず、それぞれが別々に構成され、ＭＩＤＩインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらに、カラオケ装置や自動演奏ピアノのような自動演奏装置、ゲーム装置、携帯電話等の携帯型通信端末などに適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバ側に持たせ、端末とサーバとからなるシステム全体として所定の機能を実現するようにしてもよい。
【００４２】
なお、運指情報や表情情報等を自動的に付与する際の対象となる演奏データのフォーマットは、イベントの発生時刻を曲や小節内における絶対時間で表した『イベント＋絶対時間』形式のもの、イベントの発生時刻を１つ前のイベントからの時間で表した『イベント＋相対時間』形式のもの、音符の音高と符長あるいは休符と休符長で演奏データを表した『音高（休符）＋符長』形式のもの、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域にイベントを記憶した『ベタ方式』形式のものなど、どのような形式のものでもよい。また生成した演奏データの自動演奏時における処理方法は、設定されたテンポに応じて処理周期を変更する方法、処理周期は一定で１回の処理において演奏データ中のタイミングデータの計数の仕方をテンポに応じて変更する方法等、どのようなものであってもよい。また、複数チャンネル分の演奏データが存在する場合は、複数のチャンネルのデータが混在した形式であってもよいし、各チャンネルのデータがトラック毎に別れているような形式であってもよい。
【００４３】
【発明の効果】
本発明によれば、演奏データを順方向から処理するだけでなく逆方向から処理するといった簡単な処理を行うだけで連続的な操作を行うことが可能な運指付けや所定の楽器特有の音楽的な表情付けが自動的にできるようにしたことから、曲の流れに応じて滑らかに演奏可能な運指情報や楽器毎に特有な音楽的な表現を施す演奏情報を演奏データに付与することが効率的に実施できる、という効果が得られる。
また、特に弦を押さえる位置によって奏でられる音高が変化するタイプの弦楽器に対する運指付けを行う場合に、弦を抑える際に配置する手の位置を考慮しながら運指付けを行うようにしたことから、演奏時に滑らかな操作が可能である連続的な運指付けを行うことができる、という効果が得られる。
【図面の簡単な説明】
【図１】  この発明に係る演奏データ処理装置を適用した電子楽器の実施の形態を示すハード構成ブロック図である。
【図２】  該演奏データ処理装置におけるＣＰＵ１で実行する「運指付け処理」の一実施例を示したフローチャートである。
【図３】  フレーズ分割する際のフレーズ分割位置の決定方法を説明するための概念図である。
【図４】  順方向（又は逆方向）運指チェック処理の一実施例を示したフローチャートである。
【図５】  拡張範囲テーブルの一実施例を示す概念図である。
【図６】  運指付け結果の具体例を示す図であり、（Ａ）は順方向運指チェック処理により運指付けをした場合を示し、（Ｂ）は逆方向運指チェック処理により運指付けした場合を示す。
【図７】  表情付け処理の一実施例を示したフローチャートである。
【符号の説明】
１…ＣＰＵ、１Ａ…タイマ、２…ＲＯＭ、３…ＲＡＭ、４…検出回路、４Ａ…演奏操作子（鍵盤等）、５…スイッチ検出回路、５Ａ…パネル操作子（スイッチ等）、６…表示回路、６Ａ…ディスプレイ、７…音源回路、８…効果回路、８Ａ…サウンドシステム、９…外部記憶装置、１０…ＭＩＤＩインタフェース、１０Ａ…他のＭＩＤＩ機器、１１…通信インタフェース、１１Ａ…サーバコンピュータ、１１Ｂ…通信ネットワーク、１Ｄ…データ及びアドレスバス
【図１】
0003800947.tif 000002
【図２】
0003800947.tif 000003
【図３】
0003800947.tif 000004
【図４】
0003800947.tif 000005
【図５】
0003800947.tif 000006
【図６】
0003800947.tif 000007
【図７】
0003800947.tif 000008