(57)【特許請求の範囲】
【請求項１】
利用者の操作を受け付ける入力装置から入力されるデータを受け取る入力部と、
前記入力部が前記入力装置から受け取ったデータに応じて、複数の演奏パートのうち１以上の演奏パートを検索対象の演奏パートとして特定する特定部と、
検索対象となる音発生パターンを示すクエリーパターンを取得するクエリー取得部と、
１以上の演奏パートの各々のパート演奏データを含む演奏データであって、当該１以上のパート演奏データのうちの少なくとも１のパート演奏データが音発生パターンを含む演奏データを複数セット記憶する記憶装置から、前記検索対象の演奏パートのパート演奏データであって、前記クエリーパターンにマッチする音発生パターンを含むパート演奏データを含む演奏データを検索する検索部と、
前記検索部により検索された演奏データを用いて所定の処理を行う処理部と
を備える装置。
【請求項２】
前記検索部は、前記クエリーパターンと一致する音発生パターン、もしくは前記クエリーパターンとの間で類似の度合いが高いことを示す所定の条件を満たす音発生パターンを、前記クエリーパターンにマッチする音発生パターンとして検索する
請求項１に記載の装置。
【請求項３】
前記特定部は、利用者による検索対象の演奏パートの選択のための入力操作に応じて、前記検索対象の演奏パートの特定を行う
請求項１または２に記載の装置。
【請求項４】
前記クエリー取得部は、利用者による任意の音発生パターンの入力操作に応じて、前記クエリーパターンを取得する
請求項１乃至３のいずれかに記載の装置。
【請求項５】
前記利用者による任意の音発生パターンの入力操作は、リズムパターン及びメロディ進行の少なくとも一方の入力操作を含み、
前記クエリーパターンは、リズムパターン及びメロディ進行の少なくとも一方を示すパターンである
請求項４に記載の装置。
【請求項６】
利用者の操作を受け付ける複数の領域を提供する入力装置から入力されるデータを受け取る入力部と、
前記１以上の演奏パートの各々と前記複数の領域との対応関係を示す対応関係データを記憶する記憶部と
を備え、
前記特定部は、前記対応関係データを参照し、利用者により操作された前記入力装置の領域に対応する演奏パートを前記検索対象の演奏パートとして特定する
請求項１乃至５のいずれかに記載の装置。
【請求項７】
予め定められた長さの期間において時間を進行させるとともに、当該時間の経過を利用者に通知する通知部を備え、
前記音発生パターンは、前記予め定められた長さの期間において発音される１以上の音の各々の発音時刻を示すリズムパターンであり、
前記クエリー取得部は、前記通知部により前記期間において時間が進行されているときに前記特定部により特定された演奏パートについて利用者により入力されるリズムパターンを前記クエリーパターンとして取得する
請求項１乃至６のいずれかに記載の装置。
【請求項８】
予め定められた長さの期間において時間を進行させるとともに、当該時間の経過を利用者に通知する通知部を備え、
前記音発生パターンは、前記予め定められた長さの期間において発音される１以上の音の各々の音長および音高の経時変化を示すメロディパターンであり、
前記クエリー取得部は、前記通知部により前記期間において時間が進行されているときに前記特定部により特定された演奏パートについて利用者により入力されるメロディパターンを前記クエリーパターンとして取得する
請求項１乃至６のいずれかに記載の装置。
【請求項９】
装置が、利用者の操作を受け付ける入力装置から入力されるデータを受け取るステップと、
前記装置が、前記入力装置から入力されたデータに応じて、複数の演奏パートのうち１以上の演奏パートを検索対象の演奏パートとして特定するステップと、
前記装置が、検索対象となる音発生パターンを示すクエリーパターンを取得するステップと、
前記装置が、１以上の演奏パートの各々のパート演奏データを含む演奏データであって、当該１以上のパート演奏データのうちの少なくとも１のパート演奏データが音発生パターンを含む演奏データを複数セット記憶する記憶装置から、前記クエリーパターンにマッチする音発生パターンを含む前記検索対象の演奏パートのパート演奏データを検索し、当該検索したパート演奏データを含む演奏データを抽出するステップと
を備える方法。
【請求項１０】
コンピュータに、
利用者の操作を受け付ける入力装置から入力されるデータを受け取る処理と、
前記入力装置から入力されたデータに応じて、複数の演奏パートのうち１以上の演奏パートを検索対象の演奏パートとして特定する処理と、
検索対象となる音発生パターンを示すクエリーパターンを取得する処理と、
１以上の演奏パートの各々のパート演奏データを含む演奏データであって、当該１以上のパート演奏データのうちの少なくとも１のパート演奏データが音発生パターンを含む演奏データを複数セット記憶する記憶装置から、前記クエリーパターンにマッチする音発生パターンを含む前記検索対象の演奏パートのパート演奏データを検索し、当該検索したパート演奏データを含む演奏データを抽出する処理と
を実行させるためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者が入力したクエリーパターンにマッチする楽音発生パターンを持つ演奏データを検索する技術に関し、特に、そのような検索技術を使用した装置及び方法に関する。なお、本発明において「楽音」とは楽器音に限らず、音声、スクラッチ音、ノイズ、効果音、環境音など、音全般を包含する用語である。
【背景技術】
【０００２】
電子楽器において、いわゆる「自動伴奏」という機能が良く知られている。自動伴奏においては、一般的に、利用者の操作によって指定された構成音に相当する楽音が、自動伴奏データの示す伴奏シーケンスにしたがって発音される。この自動伴奏データには、単一或いは複数の楽音によるメロディ音やリズム音が含まれ得る。こうした自動伴奏の機能を用いることによって、一人の演奏者でも、コード音（和音）やリズム音を含む豊富な楽音の演奏を実現することが可能である。例えば特許文献１には、利用者が、楽曲名、アーティスト名、アルバム名、音楽ジャンル、テンポ、拍子、あるいはその他のキーワード等のいずれかを用いて自動伴奏データを検索し、当該自動伴奏データの示す伴奏シーケンスにしたがった楽音に合わせて演奏を行うことが可能な技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１０２０７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の検索方法では、データベースに記憶された多数の自動伴奏データから任意の自動伴奏データを検索するにあたって、データベースに含まれる音源データの容量が膨大なものであると、利用者が望む自動伴奏データを探し出すのに時間と労力が掛かってしまう。また、特許文献１に記載のような検索方法であると、利用者は、上述した楽曲名等の情報を予め知っているうえで当該情報を入力する必要があり、直感的に、且つ効率良く自動伴奏データを検索するということが不可能である。また、自動伴奏データは、ベース、ドラム、キーボード等の複数のパートが組み合わさることで成り立っているが、特許文献１に記載のような検索方法であると、特定のパートについてのフレーズを思いついたときに、このパートについてのフレーズを用いて検索を行うというようなことが不可能である。
本発明は上述の背景を鑑みてなされたものであり、利用者が入力したクエリーパターンにマッチする楽音発生パターンを持つ演奏データを検索することを主たる目的とする。より詳しくは、利用者が指定したパートについて、意図する楽音のパターンとの類似の度合いが決められた条件を満たすような楽音のパターンで構成されたフレーズを持つ自動伴奏に関する楽音データを検索することを目的とする。
【課題を解決するための手段】
【０００５】
上述の課題を解決するため、本発明は、利用者の操作を受け付ける入力装置から入力されるデータを受け取る入力部と、前記入力部が前記入力装置から受け取ったデータに応じて、複数の演奏パートのうち１以上の演奏パートを検索対象の演奏パートとして特定する特定部と、検索対象となる音発生パターンを示すクエリーパターンを取得するクエリー取得部と、１以上の演奏パートの各々のパート演奏データを含む演奏データであって、当該１以上のパート演奏データのうちの少なくとも１のパート演奏データが音発生パターンを含む演奏データを複数セット記憶する記憶装置から、前記検索対象の演奏パートのパート演奏データであって、前記クエリーパターンにマッチする音発生パターンを含むパート演奏データを含む演奏データを検索する検索部と、前記検索部により検索された演奏データを用いて所定の処理を行う処理部とを備える装置を提供する。
【０００６】
本発明の好ましい態様において、前記検索部は、前記クエリーパターンと一致する音発生パターン、もしくは前記クエリーパターンとの間で類似の度合いが高いことを示す所定の条件を満たす音発生パターンを、前記クエリーパターンにマッチする音発生パターンとして検索する。
他の好ましい態様において、前記特定部は、利用者による検索対象の演奏パートの選択のための入力操作に応じて、前記検索対象の演奏パートの特定を行う。
また、他の好ましい態様において、前記クエリー取得部は、利用者による任意の音発生パターンの入力操作に応じて、前記クエリーパターンを取得する。
また、他の好ましい態様において、前記利用者による任意の音発生パターンの入力操作は、リズムパターン及びメロディ進行の少なくとも一方の入力操作を含み、前記クエリーパターンは、リズムパターン及びメロディ進行の少なくとも一方を示すパターンである。
また、他の好ましい態様において、利用者の操作を受け付ける複数の領域を提供する入力装置から入力されるデータを受け取る入力部と、前記１以上の演奏パートの各々と前記複数の領域との対応関係を示す対応関係データを記憶する記憶部とを備え、前記特定部は、前記対応関係データを参照し、利用者により操作された前記入力装置の領域に対応する演奏パートを前記検索対象の演奏パートとして特定する。
また、他の好ましい態様において、予め定められた長さの期間において時間を進行させるとともに、当該時間の経過を利用者に通知する通知部を備え、前記音発生パターンは、前記予め定められた長さの期間において発音される１以上の音の各々の発音時刻を示すリズムパターンであり、前記クエリー取得部は、前記通知部により前記期間において時間が進行されているときに前記特定部により特定された演奏パートについて利用者により入力されるリズムパターンを前記クエリーパターンとして取得する。
また、他の好ましい態様において、予め定められた長さの期間において時間を進行させるとともに、当該時間の経過を利用者に通知する通知部を備え、前記音発生パターンは、前記予め定められた長さの期間において発音される１以上の音の各々の音長および音高の経時変化を示すメロディパターンであり、前記クエリー取得部は、前記通知部により前記期間において時間が進行されているときに前記特定部により特定された演奏パートについて利用者により入力されるメロディパターンを前記クエリーパターンとして取得する。
【０００７】
また、本発明は、装置が、利用者の操作を受け付ける入力装置から入力されるデータを受け取るステップと、前記装置が、前記入力装置から入力されたデータに応じて、複数の演奏パートのうち１以上の演奏パートを検索対象の演奏パートとして特定するステップと、前記装置が、検索対象となる音発生パターンを示すクエリーパターンを取得するステップと、前記装置が、１以上の演奏パートの各々のパート演奏データを含む演奏データであって、当該１以上のパート演奏データのうちの少なくとも１のパート演奏データが音発生パターンを含む演奏データを複数セット記憶する記憶装置から、前記クエリーパターンにマッチする音発生パターンを含む前記検索対象の演奏パートのパート演奏データを検索し、当該検索したパート演奏データを含む演奏データを抽出するステップとを備える方法を提供する。
【０００８】
また、本発明は、コンピュータに、利用者の操作を受け付ける入力装置から入力されるデータを受け取る処理と、前記入力装置から入力されたデータに応じて、複数の演奏パートのうち１以上の演奏パートを検索対象の演奏パートとして特定する処理と、検索対象となる音発生パターンを示すクエリーパターンを取得する処理と、１以上の演奏パートの各々のパート演奏データを含む演奏データであって、当該１以上のパート演奏データのうちの少なくとも１のパート演奏データが音発生パターンを含む演奏データを複数セット記憶する記憶装置から、前記クエリーパターンにマッチする音発生パターンを含む前記検索対象の演奏パートのパート演奏データを検索し、当該検索したパート演奏データを含む演奏データを抽出する処理とを実行させるためのプログラムを記録した記録媒体を提供する。
【０００９】
本発明によれば、利用者は、検索対象とするパートに対応付けて、検索対象とする所望の楽音発生パターンをクエリーパターンとして入力することで、感覚的な操作で容易に検索クエリーの入力を行うことができ、かつ、利用者の感覚に合った望ましい検索結果を得ることが可能となる。
【００１０】
なお、本発明は、上述の装置に関する発明として構成され実施されるのみでなく、方法に関する発明として構成され実施されてもよい。さらに、本発明は、コンピュータやＤＳＰ（Digital Signal Processor）などのプロセッサにより実行されるソフトウェアプログラムとして、もしくはそのようなソフトウェアプログラムを非一時的に記録した記録媒体として提供され実施されてもよい。その場合、プログラムは記録媒体に記録した状態でユーザに提供され、ユーザのコンピュータにインストールされてもよいし、通信ネットワークを介してサーバ装置からクライアント装置であるコンピュータに配信され、そのクライアント装置であるコンピュータにインストールされてもよい。さらに、本発明において用いられるプロセッサは、コンピュータや必要なソフトウェアプログラムを実行可能なその他の汎用的なプロセッサであってもよいことは言うまでもないが、ハードウェアに組み込まれた専用の論理回路を備える専用のプロセッサであってもよい。
以下に本発明の実施形態を説明するが、本発明は以下に説明する実施形態により限定されるものではなく、その基本的な原理から離れない限り様々に変形され得る。従って、本発明の範囲は本願の請求の範囲によってのみ画定される。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るシステムの構成図
【図２】リズム入力装置を表す模式図
【図３】情報処理装置のハードウェア構成を表すブロック図
【図４Ａ】自動伴奏ＤＢの内容を表す模式図
【図４Ｂ】自動伴奏ＤＢの内容を表す模式図
【図４Ｃ】自動伴奏ＤＢの内容を表す模式図
【図５】自動伴奏ＤＢの内容を表す模式図
【図６】自動伴奏ＤＢの内容を表す模式図
【図７】情報処理装置の機能構成を表すブロック図
【図８】リズムパターン検索部及び検索情報処理部が行う検索処理のフロー図
【図９Ａ】オンセット時刻間隔の分布表を表す図
【図９Ｂ】オンセット時刻間隔の分布表を表す図
【図９Ｃ】オンセット時刻間隔の分布表を表す図
【図１０】リズムパターンにおけるズレの計算を説明するための模式図
【図１１Ａ】自動伴奏データについての検索結果の一覧を表した模式図
【図１１Ｂ】自動伴奏データについての検索結果の一覧を表した模式図
【図１１Ｃ】自動伴奏データについての検索結果の一覧を表した模式図
【図１２】変形例２に係る自動伴奏ＤＢの内容を表す模式図
【図１３】変形例２に係る自動伴奏ＤＢの内容を表す模式図
【図１４】変形例６において自動伴奏データにおける各構成音に対してフェードアウトが適用された場合を表す模式図
【図１５】オンセット時刻間隔テーブルの一例を表す図
【図１６】類似度距離参照表の一例を表す図
【図１７】オンセット時刻テーブルの一例を表す図
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態について説明する。
＜実施形態＞
＜構成＞
図１は、本発明の実施形態に係るシステムの構成図である。
この楽音データ処理システム１００は、リズム入力装置１０、及び情報処理装置２０を備えており、各々が通信線により接続されて相互に通信ができるようになっている。この通信は、無線によって実現されてもよい。本実施形態において、リズム入力装置１０は、入力手段として例えば鍵盤を備えている。利用者が、リズム入力装置１０に設けられた鍵盤を押鍵することにより、リズム入力装置１０は、押鍵されたこと、すなわち演奏操作がなされたことを示すトリガーデータと、押鍵の強度、すなわち当該演奏操作の強度を示すベロシティデータとを、１小節を単位として、情報処理装置２０に入力する。ここで、トリガーデータは、利用者が鍵盤を押鍵する毎に生成されるものであって、トリガーデータの各々にはベロシティデータが対応付けられている。１小節内に生成されたトリガーデータとベロシティデータの集合は、この１小節において、利用者がリズム入力装置１０を用いて入力したリズムのパターン（入力リズムパターンという）を表している。このように、リズム入力装置１０は、利用者による演奏操作が入力される入力装置の一例である。また、リズム入力装置１０は、検索用のクエリーパターンとして、利用者によって任意の楽音発生パターンを入力するための操作装置としても使用される。
【００１３】
情報処理装置２０は、例えばＰＣ（Personal Computer）である。情報処理装置２０は、自動伴奏データを複数含んだデータベースを備えている。この自動伴奏データは、各々が固有のリズムパターンを持つ複数のパートで構成されている。そして情報処理装置２０は、このデータベースから、利用者が指定したパートについて、リズム入力装置１０から入力された入力リズムパターンと同一又は類似したリズムパターンを持つ自動伴奏データを検索し、検索結果の自動伴奏データの名称等を一覧表示する。そして情報処理装置２０は、一覧から利用者によって選択された自動伴奏データに基づく音を出力する。このとき、情報処理装置２０は、検索結果の自動伴奏データに基づく音を繰り返し再生する。なお、検索機能は、利用者が操作部２５（後述）を操作することによってそのＯＮ／ＯＦＦが切り替えられる。検索対象となる自動伴奏データは、リズムパターンに限らず、アルペジオパターンであってもよく、その他任意の音楽演奏パターンであってもよい。この場合、リズムパターンであれば、トリガーデータとそのタイミングとベロシティについて検索で考慮するが、アルペジオパターンであれば、さらに音高の並びあるいは隣接するトリガーデータに対応する音高差を検索で考慮するようになる。なお、上記データベース（後述の自動伴奏データベース２２１）は、情報処理装置２０の外部に設けられていて、通信ネットワークを介して情報処理装置２０と通信し得るようになっていてもよい。
【００１４】
図２は、リズム入力装置１０を表す模式図である。
リズム入力装置１０は、入力手段として鍵盤２００及び入力パッド１４を備えている。利用者はこれらの入力手段を用いて、検索対象となる任意の楽音発生パターン（典型的にはリズムパターン）を検索用のクエリーパターンとして入力することができる。情報処理装置２０は、入力された検索用のクエリーパターン（典型的にはリズムパターン）に基づいて、複数セットの演奏データを記憶している記憶装置（例えば、後述の自動演奏データベース２２１）から、該クエリーパターンにマッチする楽音発生パターン（例えばリズムパターンあるいはメロディパターン）を持つ演奏データ（例えば自動伴奏データ）を検索する。１セットの演奏データの一例としての１セットの自動伴奏データは、公知のように、ベース、和音からなるコード、単音からなるフレーズ、バスドラム、スネアドラム、ハイハット、及びシンバルといった各々異なるパートの組み合わせによって構成されている。リズム入力装置１０における鍵盤２００の所定の範囲又は入力パッド１４の種類には、各々異なる上記パートの何れかが対応付けられている。例えば、鍵盤２００の全範囲のうち、ベース入力音域鍵盤１１にはベースのパートが対応付けられており、コード入力音域鍵盤１２には和音からなるコードのパートが対応付けられており、フレーズ入力音域鍵盤１３には単音からなるフレーズのパートが対応付けられている。また、バスドラム入力パッド１４ａには、バスドラムのパートが対応付けられており、スネアドラム入力パッド１４ｂには、スネアドラムのパートが対応付けられており、ハイハット入力パッド１４ｃには、ハイハットのパートが対応付けられており、シンバル入力パッド１４ｄには、シンバルのパートが対応付けられている。利用者は、リズム入力装置１０において、押鍵する鍵盤２００の位置又は押下する入力パッド１４の種類を指定して演奏操作を行うことで、指定した入力手段に対応付けられたパートを基準として自動伴奏データを検索することが可能である。このように、鍵盤２００及び入力パッド１４が存在する各々の領域が、鍵盤２００及び入力パッド１４といった演奏操作子の各々と対応することとなる。なお、所定の鍵域に複数のパートを対応付けるようにしてもよい。例えば、鍵域１３にコードのパート及びフレーズのパートを対応付けるようにしてもよい。その場合、例えば、複数鍵が同時に押下されていたらコードのパートと判定し、単一鍵が押下されていたらフレーズのパートと判定することができ、そのようにして、いずれか１つのパートを自動的に特定するようにしてもよい。あるいは、複数のパートの対応付けられた鍵域において何らかの鍵が押下されたならば、それに対応する複数のパートを同時に特定する入力がなされたものとして処理が行われてもよい。
【００１５】
例えば、利用者が、ベース入力音域鍵盤１１に相当する鍵盤を押鍵してリズムパターンを入力すると、情報処理装置２０は、当該リズムパターンと同一又は類似の度合の高いリズムパターンを持つベースのフレーズを特定し、この特定されたベースのフレーズを構成要素として持つ自動伴奏データを検索結果として表示する。以降において、利用者がリズムパターンを入力する際に操作する対象であることから、ベース入力音域鍵盤１１、コード入力音域鍵盤１２、フレーズ入力音域鍵盤１３、バスドラム入力パッド１４ａ、スネアドラム入力パッド１４ｂ、ハイハット入力パッド１４ｃ、及びシンバル入力パッド１４ｄのことを、演奏操作子と呼ぶ場合がある。利用者がリズム入力装置１０における或る演奏操作子を操作すると、リズム入力装置１０は、当該操作に応じたＭＩＤＩ（Musical Instrument Digital Interface）形式の情報（以下、ＭＩＤＩ情報という）を情報処理装置２０に入力する。ここでＭＩＤＩ情報には、上述したトリガーデータ及びベロシティデータのほかに、演奏操作子が鍵盤であればノートナンバーが含まれ、演奏操作子がパッドであればチャンネル情報が含まれる。情報処理装置２０は、受け取ったＭＩＤＩ情報から、対象のパートを特定する。
【００１６】
図３は情報処理装置２０のハードウェア構成を表すブロック図である。
情報処理装置２０は、制御部２１、記憶部２２、入出力インターフェース部２３、表示部２４、操作部２５、及び音声出力部２６を備えており、各部がバスを介して接続されている。制御部２１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory
）、ＲＡＭ（Random Access Memory）などを有する。ＣＰＵは、ＲＯＭや記憶部２２に記憶されているアプリケーションプログラムを読み出して、ＲＡＭにロードして実行することにより、情報処理装置２０の各部をバス経由で制御する。また、ＲＡＭは、ＣＰＵがデータの加工などを行う際のワークエリアとして機能する。
【００１７】
記憶部２２は、複数セットの演奏データを記憶する記憶装置の一例として自動伴奏ＤＢ（Database）２２１を有している。１セットの演奏データ（例えば自動伴奏データ）は、１又は複数のパートで構成され、それぞれのパートはパート演奏データで構成され、１パートについての前記パート演奏データは、楽音発生パターン（例えばリズムパターンあるいはメロディパターン）と、該楽音発生パターンに対応する楽音データとを含む。一例として、自動伴奏ＤＢ２２１は、自動伴奏データの少なくとも一部をＭＩＤＩ情報のフォーマットで記憶している。入出力インターフェース部２３は、リズム入力装置１０が出力するデータを情報処理装置２０に入力するともに、制御部２１の指示に従って、リズム入力装置１０を制御する各種信号をリズム入力装置１０に出力する。表示部２４は、例えばディスプレイであり、利用者に対する対話画面などを表示する。操作部２５は、例えばマウスやキーボードであり、利用者の操作に応じた信号を制御部２１に受け渡す。制御部２１は受け取った信号に応じて各部を制御する。音声出力部２６は、ＤＡＣ（Digital Analog Converter）、アンプ、及びスピーカを備えている。音声出力部２６は、制御部２１により自動伴奏ＤＢ２２１から検索されたＭＩＤＩ情報に基づくデジタルの楽音データを、ＤＡＣによってアナログの楽音データに変換して、それをさらにアンプで増幅し、スピーカから増幅後のアナログの音声信号に応じた音を出力させる。
【００１８】
図４Ａ〜図４Ｃ、図５、図６は、自動伴奏ＤＢ２２１の内容を表す模式図である。
自動伴奏ＤＢ２２１には、パートテーブル、楽器種類テーブル、リズムカテゴリテーブル、リズムパターンテーブル及びスタイルテーブルが含まれている。図４Ａはパートテーブルの一例を表したものである。「パートＩＤ」は、楽音データを構成するパートを一意に識別するための識別子であり、例えば２桁の数字で表される。「パート」は、パートの種類を表す名称であり、上述した「ベース」、「コード」、「フレーズ」、「バスドラム」、「スネアドラム」、「ハイハット」、及び「シンバル」といった異なるパート毎に、パートＩＤが対応付けられてパートテーブルに記述されている。「ノートナンバー」は、各パートが、鍵盤においてどの範囲に割り当てられているかを表すＭＩＤＩ情報である。ＭＩＤＩ情報では、鍵盤における「中央ハ」にノートナンバー「６０」が割り当てられる。このノートナンバーを基準として、例えば図４Ａに示されるように、「ベース」のパートには、ノートナンバーが第１の閾値「４５」以下のノートナンバーが割り当てられ、「フレーズ」のパートには、ノートナンバーが第２の閾値「７５」以上のノートナンバーが割り当てられ、「コード」のパートには、ノートナンバーが「４６」以上であって「７４」以下のノートナンバーが割り当てられている。なお、上述した第１の閾値及び第２の閾値は一例であり、この値に限ったものではない。また、第１の閾値及び第２の閾値は利用者により変更可能としてもよい。
【００１９】
「チャンネル情報」は、各パートが、どの入力パッドに割り当てられているかを表すＭＩＤＩ情報である。例えば図４Ａに示されるように、「バスドラム」のパートには「１４ａ」のチャンネル情報が割り当てられ、「スネアドラム」のパートには「１４ｂ」のチャンネル情報が割り当てられ、「ハイハット」のパートには「１４ｃ」のチャンネル情報が割り当てられ、「シンバル」のパートには「１４ｄ」のチャンネル情報が割り当てられている。このように、自動伴奏ＤＢ２２１におけるパートテーブルは、複数のパートの各々と入力装置１０における各々の操作子との対応関係を記憶する対応関係テーブルの一例である。
【００２０】
図４Ｂは楽器種類テーブルの一例を表したものである。「パートＩＤ」は上述したとおりである。「楽器種類ＩＤ」は、楽器の種類を一意に識別するための識別子であり、例えば３桁の数字で表される。「楽器種類」は、楽器の種類を表す名称であり、例えば「ウッドベース」、「エレキベース」、「スラップベース」といった、異なる楽器の種類毎に、楽器種類ＩＤが対応付けられて楽器種類テーブルに記述されている。例えば楽器種類「ウッドベース」は、「００１」の楽器種類ＩＤに対応付けられて楽器種類テーブルに記述されている。その他の楽器種類についても、同様に各楽器種類ＩＤに対応付けられて、楽器種類テーブルに記述されている。なお、「楽器種類」は図４Ｂに表された内容に限ったものではない。また、「楽器種類」とは、音色データ（音色ＩＤ）でもある。
【００２１】
図４Ｃは、リズムカテゴリテーブルの一例を表したものである。「リズムカテゴリＩＤ」は、リズムパターンのカテゴリ（リズムカテゴリという）を一意に識別するための識別子であり、例えば２桁の数字で表される。ここでリズムパターンとは、予め定められた長さの期間において各々の音が発音される時刻の並びを表す。特に本実施形態において、リズムパターンとは、１小節において各々の音が発音される時刻の並びを表す。「リズムカテゴリ」は、リズムカテゴリを表す名称であり、例えば「８分」、「１６分」、「８分３連」といった、異なるリズムカテゴリ毎に、リズムカテゴリＩＤが対応付けられてリズムカテゴリテーブルに記述されている。例えば「８分」のリズムカテゴリは、「０１」というリズムカテゴリＩＤが対応付けられてリズムカテゴリテーブルに記述されている。なお、「リズムカテゴリ」は図４Ｃに表された内容に限ったものではない。例えば、拍子やジャンルといった大まかなカテゴリ分けをしたり、一つのリズムパターンごとに一つの別のカテゴリＩＤを割り当てるなど、より細かなカテゴリ分けをしても良い。
【００２２】
図５は、リズムパターンテーブルの一例を表したものである。リズムパターンテーブルには、パートを一意に識別するパートＩＤ毎にグループ化されたリズムパターンレコード（パート演奏データ）が複数記憶されている。図５においては、リズムパターンテーブルの一例として、パートが「ベース」（パートＩＤが「０１」）である複数のリズムパターンレコードが表されている。１件のリズムパターンレコード（パート演奏データ）は、「パートＩＤ」、「楽器種類ＩＤ」、「リズムパターンＩＤ」、「リズムカテゴリＩＤ」、「リズムパターンデータ」、及び「アタック強度パターンデータ」といった複数の項目からなる。上述したように「楽器種類ＩＤ」は、楽器の種類を一意に識別するための識別子である。同一のパートＩＤを持つリズムパターンレコードは、楽器種類ＩＤ毎にグループ化されており、利用者はリズム入力装置１０を用いてリズムの入力を行う前に、操作部２５を用いて楽器の種類を選択することが可能である。利用者によって選択された楽器の種類は、ＲＡＭに記憶される。「リズムパターンＩＤ」は、各々のリズムパターンレコードを一意に識別するための識別子であり、例えば４桁の数字からなる。「リズムカテゴリＩＤ」は、各々のリズムパターンレコードが、前述したリズムカテゴリのうち、どのリズムカテゴリに属するかを識別するための識別子である。例えば、図５において「リズムカテゴリＩＤ」が「０１」であるリズムパターンレコードは、図４Ｃのリズムカテゴリテーブルに表されるように、「８分」のリズムカテゴリに属する。
【００２３】
「リズムパターンデータ」は、１小節を構成するフレーズにおける各構成音の発音開始時刻が記録されたデータファイルを含み、例えばテキストファイルに、各構成音の発音開始時刻が記述されたものである。この「リズムパターンデータ」は、リズムパターン（楽音発生パターン）を示すデータである。リズムパターンデータにおける上記発音開始時刻は、後述するマッチングの際に、入力リズムパターン（検索用に入力されたクエリーパターン）における、演奏操作がなされたことを示すトリガーデータに対応付けられる。ここで、リズムパターンデータにおける各構成音の発音開始時刻は、予め１小節の長さを１として正規化されている。つまり、「リズムパターンデータ」に記述される各構成音の発音開始時刻は、０から１の間の値を取る。この実施形態では、リズムパターン（楽音発生パターン）に対応する楽音データ（波形データ）は、別の記憶領域に記憶されており、同じパートの楽器種類ＩＤによって該楽音データ（波形データ）が特定される。別の例として、後述するように、このリズムパターンテーブルに記憶する「リズムパターンデータ」として、リズムパターン（楽音発生パターン）のみならず、該リズムパターン（楽音発生パターン）に対応する楽音データ（波形データ）をさらに記憶してもよい。その場合、リズムパターンデータは、後述するような各種の音声ファイルフォーマットのオーディオデータからなる。また、楽音データ（波形データ）は、パート毎に記憶されていてもよいし、別の例として、複数パート（例えば１スタイルを構成する全パート）の楽音データ（波形データ）がまとめて１ファイルとして記憶されていてもよい。
このように自動伴奏ＤＢ２２１に含まれるリズムパターンテーブル及びそれに関連する楽音データ記憶領域は、予め定められた長さの期間（ここでは１小節）における複数の楽音発生パターンであって、各々の音が発音される発音時刻の並びを表すものである。
【００２４】
なお、リズムパターンデータは、予め以下のようにして作成されてもよい。リズムパターンデータを作成する者（以下、オペレーターという）は、構成音開始時刻が波形に埋め込まれた、市販のオーディオループ素材から構成音開始時刻を抽出する。次にオペレーターは、抽出した構成音開始時刻から、ゴーストノートなどの無視ができる範囲の不要な構成音開始時刻を除外する。この不要な構成音開始時刻が除外された後のデータが、リズムパターンデータとして用いられても良い。
【００２５】
なお、リズムパターンデータは、上述のように、オペレーターによって市販のオーディオループ素材からゴーストノートが除外されることで作成される方法に限らず、予めコンピュータによって自動的にゴーストノートが除外されることで抽出されてもよい。例えば、リズムパターンデータの抽出元のデータがＭＩＤＩ形式の場合、コンピュータによって以下のような方法でリズムパターンデータが作成されてもよい。コンピュータのＣＰＵは、ＭＩＤＩ形式のデータから、チャンネルごとの構成音開始時刻を1小節の間、抽出し、リズム入力と判断しづらいゴーストノート（例えば、極端に小さなベロシティデータを持つものなど）を除外する。そしてコンピュータのＣＰＵは、ゴーストノートを除外した後のＭＩＤＩ形式のデータにおいて、和音入力のように一定時間内に複数の入力があった場合、これら複数の入力を1つのリズム入力にまとめる処理を行うことで、リズムパターンデータの作成を自動で行う。
【００２６】
また、ドラムスパートに関しては、１つのチャンネル内にバスドラム、スネアドラム、シンバルといった複数の楽器音が存在する場合もある。このような場合、コンピュータのＣＰＵは、以下のようにしてリズムパターンデータの抽出を行う。ドラムスの場合、ノートナンバーごとに対応している楽器音が決まっている場合が多い。例えば、ドラムスパートでノートナンバー４０にスネアドラムの音色が割り当てられているとする。これに基づいてコンピュータのＣＰＵは、伴奏音源のドラムスパートが収録されたチャンネルにおいて、スネアドラムの音が割り当てられているノートナンバーの構成音開始時刻を抽出することで、スネアドラムのリズムパターンデータの抽出を行う。
【００２７】
「アタック強度パターンデータ」は、１小節を構成するフレーズにおける各構成音のアタック強度が記録されたデータファイルであり、例えばテキストファイルに上記各構成音のアタック強度が数値として記述されたものである。このアタック強度は、入力リズムパターンにおける、演奏操作の強度を示すものであるベロシティデータに相当する。つまり、アタック強度とは、各構成音の強度を意味する。アタック強度は、ＭＩＤＩ情報のベロシティデータそのものとしてテキストファイルに記述されてもよい。図５においては、パートが“ベース”であるリズムパターンレコードを一例として表したが、実際にはリズムパターンテーブルには、図５に、その一部を表しているように、複数の種類のパート（コード、フレーズ、バスドラム、スネアドラム、ハイハット、シンバル）に応じたリズムパターンレコードが記述されている。
【００２８】
図６は、スタイルテーブルの一例を表したものである。
ここで“スタイル”とは、複数の異なる種類の自動伴奏が存在するときに、これら自動伴奏の種類を特定するとともに同一種類の自動伴奏における各々を一意に区別するものである。スタイルテーブルには、自動伴奏を構成する各パートの情報をスタイル毎に対応付けたものであるスタイルレコードが複数記述されている。図６においては、スタイルテーブルの一例として、「ジャンル名」が「ＪＡＺＺ」である複数のスタイルレコードが表されている。１件のスタイルレコードは、「スタイルＩＤ」、「ジャンル名」、「スタイル名」、「キー」、「ＢＰＭ（Beats Per Minute）」、「ベースリズムパターンＩＤ」、「コードリズムパターンＩＤ」、「フレーズリズムパターンＩＤ」、「バスドラムリズムパターンＩＤ」、「スネアドラムリズムパターンＩＤ」、「ハイハットリズムパターンＩＤ」、及び「シンバルリズムパターンＩＤ」といった複数の項目からなる。「スタイルＩＤ」は、スタイルレコードを一意に識別するための識別子である。「ジャンル名」は各スタイルレコードが属する音楽のジャンルを表す。「スタイル名」は、各スタイルレコードを一意に識別する名称である。「キー」は、各スタイルレコードにおける調を表す。「ＢＰＭ」は、各スタイルレコードに基づく音が再生される際のテンポを表す。
【００２９】
各々のスタイルレコードには、上述したパートの全てについて、パート毎のリズムパターンが１対１で対応付けて記憶されている。例えば図６において「スタイルＩＤ」が「０００１」のスタイルレコードは、「ベースリズムパターンＩＤ」として「０００１」の値を持っている。これは、リズムパターンテーブルにおいて、パートＩＤが「０１」（ベース）であり、且つ、リズムパターンＩＤが「０００１」であって、「リズムパターンデータ」が「ＷｏｏｄＢａｓｓ１Ｒｈｙｔｈｍ．ｔｘｔ」であるリズムパターンレコードと、「スタイルＩＤ」が「０００１」のスタイルレコードとが対応付けられていることを表す。各々のスタイルレコードには、ベース以外のパートのリズムパターンについても、同様の対応付けが記述されている。
【００３０】
自動伴奏ＤＢが上述したような構成になっているので、利用者は以下のような検索が可能となる。利用者が、リズム入力装置１０において或るパートに対応した演奏操作子を操作してリズムパターンを入力すると、情報処理装置２０は、演奏操作子に対応付けられたパート及び入力リズムパターンに基づいて、リズムパターンテーブルから少なくとも１つ以上のリズムパターンレコードを特定する。そして情報処理装置２０は、当該リズムパターンレコードが保持するパートＩＤ及びリズムパターンＩＤに基づいてスタイルテーブルを検索し、当該リズムパターンレコードをそのパートとして含むスタイルレコードを抽出し、抽出した１以上のスタイルレコードを表示部２４に表示する。利用者が、表示された１以上のスタイルレコードから、任意のものを選択すると、選択されたスタイルレコードに基づく楽音データ（つまり自動伴奏データ）が音声出力部２６から音として出力される。このように、利用者は、検索対象とするパートに対応付けて、検索対象とする所望のリズムパターン（楽音発生パターン）をクエリーパターンとして入力することで、感覚的な操作で容易に検索クエリーの入力を行うことができ、かつ、利用者の感覚に合った望ましい検索結果（自動伴奏）を得ることが可能となる。
【００３１】
図７は、情報処理装置２０の機能構成を表すブロック図である。
制御部２１は、ＲＯＭや記憶部２２に記憶されたプログラムをＲＡＭに読み出して実行することにより、小節線クロック出力部２１１、入力リズムパターン記憶部２１２、パート特定部２１３、リズムパターン検索部２１４、検索情報処理部２１５、及び再生制御部２１６の各機能を実現する。以降において、これら各部を主体として処理の説明を行うことがあるが、処理の主体の実体は、制御部２１である。なお、以降の説明において「オンセット」とは、リズム入力装置１０における入力状態がオフからオンに切り替わることを指す。例えば、「オンセット」とは、リズム入力装置１０の入力手段が鍵盤であれば鍵盤が押鍵された状態のことであり、リズム入力装置１０の入力手段がパッドであればパッドを叩かれた状態のことであり、リズム入力装置１０の入力手段がボタンであればボタンが押下された状態のことである。また、以降の説明において「オンセット時刻」とは、リズム入力装置１０における入力状態がオフからオンに切り替わった時の各々の時刻を表す。換言すれば、「オンセット時刻」とは、リズム入力装置１０においてトリガーデータが発生した時刻を表す。また、以降の説明において「オンセット情報」とは、オンセット時刻においてリズム入力装置１０から情報処理装置２０へ入力される情報である。「オンセット情報」には、上述したトリガーデータ以外に、鍵盤のノートナンバーやチャンネル情報等が含まれている。
【００３２】
小節線クロック出力部２１１は、１小節の長さを１として正規化した場合に、進行中の時間軸において、現在時刻が１小節中のどこに位置するかを、数十ｍｓｅｃ（ミリ秒）ごとにクロック信号（以降において小節線クロックという）として入力リズムパターン記憶部２１２に出力する。つまり、小節線クロックは、０から１の間の値をとる。小節線クロック出力部２１１は、利用者が操作部２５を介して指定したＢＰＭに基づいて小節線クロックを生成する。そして、入力リズムパターン記憶部（ＲＡＭ）２１２は、小節線クロックを基準として、リズム入力装置１０から入力される、トリガーデータが発生した時刻、すなわちオンセット時刻を１小節毎に記憶する。このようにして、１小節を単位として、ＲＡＭに記憶されたオンセット時刻の並びが、入力リズムパターン（検索用のクエリーパターン）となる。ここで記憶されるオンセット時刻は、小節線クロックに基づいているため、上記小節線クロックと同様に、０から１の間の値をとる。このように、小節線クロック出力部２１１は、予め定められた長さの期間（ここでは１小節）において時間を進行させるとともに、当該時間の経過を利用者に通知する通知手段の一例である。あるいは、小節線クロック出力部２１１、再生制御部２１６、音声出力部２６は、利用者に対して、検索用のクエリーパターン入力の際の補助となるテンポを通知するための通知部に相当する。また、入力リズムパターン記憶部２１２は、通知手段である小節線クロック出力部２１１により予め定められた長さの期間（ここでは１小節）において時間が進行させられているときに、特定されたパートについて利用者によって入力される、楽音に関するパターンを表す楽音パターンであって、各々の音が発音される発音時刻（ここではオンセット時刻）の並びを表す楽音発生パターン（検索用のクエリーパターン）を取得する取得手段の一例である。なお、上述の、小節線クロック出力部２１１により進行される予め定められた長さの期間は、繰り返されてもよいし、繰り返されなくともよい。また、小節線クロックは、外部から情報処理装置２０に入力されるものを用いてもよい。
【００３３】
また、利用者が、１小節を単位としたリズムパターンを正確に入力できるように、情報処理装置２０から利用者に対して小節線が開始する時刻をフィードバックする必要がある。これは、例えばメトロノームのように、小節や拍の時刻で、情報処理装置２０が、音や光を発したり画面の表示内容を変更したりすることで、利用者に対して視覚的或いは聴覚的に小節線の位置が伝えられればよい。また、その他の方法として、小節線クロックにあわせて、予め小節線の位置を付加した伴奏音源を再生制御部２１６が再生してもよい。この場合、利用者は、伴奏音源から自らが感じる小節線に合わせて、リズムパターンを入力する。
【００３４】
パート特定部２１３は、リズム入力装置１０から入力されるオンセット情報（そのなかでもＭＩＤＩ情報）と自動伴奏ＤＢ２２１に含まれるパートテーブルとに基づいて、利用者によって操作されたのはどの演奏操作子であるか、すなわち、楽音データを構成する複数のパートのうちどのパートを指定して入力が行われたか、を特定する。具体的には、パート特定部２１３は、受け取ったＭＩＤＩ情報がノートナンバーである場合、当該ノートナンバーとパートテーブルの記述内容とを比較して、利用者による操作が、ベース入力音域鍵盤１１、コード入力音域鍵盤１２、或いはフレーズ入力音域鍵盤１３のいずれに対するものであるかを特定する。また、パート特定部２１３は、受け取ったＭＩＤＩ情報がチャンネル情報である場合、当該ノートナンバーとパートテーブルの記述内容とを比較して、利用者による操作が、バスドラム入力パッド１４ａ、スネアドラム入力パッド１４ｂ、ハイハット入力パッド１４ｃ、或いはシンバル入力パッド１４ｄのいずれに対するものであるかを特定する。パート特定部２１３は、特定したパートに対応するパートＩＤをリズムパターン検索部２１４に出力する。なお、パート特定部２１３は、１パートに限らず、複数パートを検索対象パートとして特定することが可能である。
【００３５】
リズムパターン検索部２１４は、ＲＡＭに記憶された入力リズムパターン（クエリーパターン）を用いて自動伴奏ＤＢ２２１におけるリズムパターンテーブルを検索し、入力リズムパターンとの類似の度合いが高いリズムパターンデータを持つリズムパターンレコードを、検索結果としてＲＡＭに記憶させるとともに、検索情報処理部２１５に出力する。すなわち、リズムパターン検索部２１４は、特定されたパートにマッチし、かつ、クエリーパターンにマッチするリズムパターンを、記憶装置（自動伴奏ＤＢ２２１）から検索する。検索情報処理部２１５は、入力されたリズムパターンレコードが保持するパートＩＤ及びリズムパターンＩＤに基づいてスタイルテーブルを検索し、検索結果のスタイルレコードをＲＡＭに記憶させる。ここで検索結果のスタイルレコードには、伴奏の音源を表すデータそのもののほかに、「ジャンル名」、「スタイル名」、「キー」及び「ＢＰＭ」といった、伴奏の音源に関する情報が含まれている。検索情報処理部２１５は、このような伴奏の音源に関する情報を、表示部２４に出力して表示させる。また、検索情報処理部２１５は、利用者が操作部２５を介して指定した「ＢＰＭ」や「楽器種類ＩＤ」に基づいて、検索結果のスタイルレコードに対して更に絞込み検索を行うことが可能である。このように、リズムパターン検索部２１４及び検索情報処理部２１５は、記憶手段に記憶されている楽音データのなかから、特定されたパートについて取得手段である入力リズムパターン記憶部２１２により取得された楽音パターンすなわちリズムパターンと類似の度合いが高いことを示す条件を満たすリズムパターンに対応付けられた楽音データを検索する検索手段の一例である。再生制御部２１６は、ＲＡＭに記憶された検索結果のスタイルレコードを再生対象として、小節線クロックと同期しながら、このスタイルレコードに基づく楽音データを音声出力部２６に供給する。音声出力部２６は、この楽音データに基づく音声を放音する。
【００３６】
なお、ここでリズムパターンデータはＭＩＤＩ形式であるため、利用者は、操作部２５を介して、スタイルレコードにおけるＢＰＭ（Beats Per Minute）を変更することが可能である。この場合、再生制御部２１６は、変更後のＢＰＭで小節線クロックと同期しながら、検索結果のスタイルレコードに基づく楽音データを音声出力部２６に供給する。また、リズムパターンデータがＷＡＶＥ（RIFF waveform Audio Format）やｍｐ３（MPEG Audio Layer-3）といった音声ファイルフォーマットからなるオーディオデータである場合でも、再生制御部２１６が、音程を変えずにテンポを変更する機能であるタイムストレッチ機能を備えることで、利用者は、操作部２５を介して、スタイルレコードにおけるＢＰＭを変更することが可能である。このように、情報処理装置２０は、利用者が指定したパートについて、意図するリズムパターンとの類似の度合いが決められた条件を満たすようなリズムパターンで構成されたフレーズを持つ自動伴奏に関する楽音データを検索結果として出力する楽音データ処理装置の一例である。
【００３７】
＜動作＞
次に、図８〜図１０を用いて、検索機能がＯＮの状態において、リズムパターン検索部２１４及び検索情報処理部２１５が、入力リズムパターンに基づいて、スタイルテーブルから特定のスタイルレコードを検出する一連の処理について説明を行う。
【００３８】
図８は、リズムパターン検索部２１４及び検索情報処理部２１５が行う検索処理のフロー図である。初めに、リズムパターン検索部２１４は、リズムパターンテーブルに記述された全てのリズムパターンを用いて、リズムカテゴリ毎にオンセット時刻間隔の分布を計算する（ステップＳ１）。ここで、リズムパターンレコードにおけるリズムパターンデータには、１小節の長さを１として正規化された各構成音の発音開始時刻、すなわちオンセット時刻が含まれている。ここでオンセット時刻間隔とは、時間軸上で隣り合うオンセット時刻どうしの間隔であり、０から１の間の数値で表される。また、ここにおいて、上述したオンセット時刻間隔の分布は、１小節を４８の時刻で均等に区切った場合に、各々の時刻に相当するオンセット時刻間隔の個数で表される。なお、本実施形態において１小節を４８の時刻で区切る理由は、４拍子系のリズムを前提として一拍を１２等分すれば、８分、８分３連、１６分といった複数の異なるリズムカテゴリを識別するのに適した分解能となるためである。ここで、分解能とは、シーケンサーや、本実施形態におけるアプリケーションプログラムのようなシーケンスソフトで表現できる、最も短い長さの音符のことである。本実施形態における分解能は、１小節で４８であるため、１つの四分音符を１２に分割可能な設定となっている。
【００３９】
なお、以降の説明では、入力リズムパターンに対する説明においても、リズムパターンレコードと対応する意味で、「オンセット時刻間隔」という言葉を用いる。つまり、入力リズムパターンにおいては、時間軸上で隣り合うオンセット時刻どうしの間隔が、オンセット時刻間隔に相当する。ステップＳ１で求められるリズムカテゴリ毎のオンセット時刻間隔の分布は、後述するステップＳ３で求められる入力リズムパターンにおけるオンセット時刻間隔の分布との、比較対象となるものである。処理フローの冒頭において、ステップＳ１の計算を行うのは、処理の対象となるリズムパターンレコード及びリズムカテゴリが変更されることがなく同一である場合、ステップＳ１で求められるオンセット時刻間隔の分布は一定であって、一度計算で求めてしまえば、その後計算をやり直す必要がなくなるためである。従って、ステップＳ１における計算は、情報処理装置２０の電源がＯＮされたときや、検索処理の起動時に行われるようにしてもよい。また、ステップＳ１で求められるオンセット時刻間隔の分布についてのデータを、制御部２１が、予め計算してＲＯＭ等に記憶しておくことで、検索処理の起動時に上記データを読み込むようにしてもよい。
【００４０】
ここで、具体的なオンセット時刻の数値を用いて、ステップＳ１におけるオンセット時刻間隔の分布を計算する方法を説明する。一例として、以下の（i）で表される８分のリズムパターンが、リズムパターンレコードにおけるリズムパターンデータに記述されていたとする。
（i）０，０．２５，０．３７５，０．５，０．６２５，０．７５，０．８７５
リズムパターン検索部２１４は、（i）の入力リズムパターンから、以下の（ii）で表されるオンセット時刻間隔を算出する。
（ii）０．２５，０．１２５，０．１２５，０．１２５，０．１２５，０．１２５
次にリズムパターン検索部２１４は、（ii）で算出された各々のオンセット時刻間隔に４８を乗算し、さらに０．５を加算した数値の小数点以下を切り捨てる処理（クオンタイズという）を行うことで、以下の（iii）で表す数値群を算出する。
（iii）１２，６，６，６，６，６
ここでクオンタイズとは、リズムパターン検索部２１４が、各オンセット時刻間隔を分解能にあわせて補正することを意味している。クオンタイズを行う理由は、以下のとおりである。リズムパターンテーブルにおけるリズムパターンデータに記述された発音開始時刻は、分解能（ここでは４８）に従ったものとなっている。よって、オンセット時刻間隔を用いてリズムパターンテーブルを検索する際には、検索に用いるオンセット時刻間隔も分解能に従ったものでないと、検索の精度が低くなってしまう。このような理由により、リズムパターン検索部２１４は、（ii）で表される各々のオンセット時刻間隔に対して、上述したクオンタイズの処理を施す。
【００４１】
上述の例に従って、例えば以下のような８分のリズムパターン、１６分のリズムパターン、及び８分３連のリズムパターンが２つずつ、各リズムパターンレコードにおけるリズムパターンデータに記述されている場合を考える。
・８分カテゴリ
（Ａ）０，０．２５，０．３７５，０．５，０．６２５，０．７５，０．８７５
（Ｂ）０，０．１２１，０．２５２，０．３７，０．５１，０．６２５，０．７４９，０．８７６
・１６分カテゴリ
（Ｃ）０，０．１２５，０．１８７５，０．２５１，０．３７４，０．４３２５，０．５，０．６２５，０．６８７５，０．７５，０．８７６，０．９３２５
（Ｄ）０，０．６２５，０．１２５，０．１８７５，０．２５１，０．３１２５，０．３７５，０．４３２５，０．５，０．５６２５，０．６２５，０．６８７５，０．７５，０．８１２５，０．８７５，０．９３２５
・８分３連カテゴリ
（Ｅ）０，０．０８３３，０．１６６６，０．２５，０．３３３３，０．４１６６，０．５，０．５８３３，０．６６６６，０．７５，０．８３３３，０．９１６６６
（Ｆ）０，０．１６６６，０．２５，０．３３３３，０．４１６６，０．５，０．６６６６，０．７５，０．８３３３，０．９１６６６
リズムパターン検索部２１４は、上記（Ａ）〜（Ｆ）に対して上述したのと同様の計算方法を用いて、リズムカテゴリ毎にオンセット時刻間隔の分布を求める。図９Ａは、リズムパターン検索部２１４がリズムカテゴリ毎に計算したオンセット時刻間隔の分布を、分布表に割り当てたものである。
【００４２】
ステップＳ１の次に、リズムパターン検索部２１４は、パート特定部２１３から入力されたパートＩＤ及びＲＡＭに記憶されている楽器種類ＩＤを用いて、リズムパターンテーブルを検索する（ステップＳ２）。この楽器種類ＩＤは利用者が操作部２５を用いて楽器種類を予め指定することでＲＡＭに記憶されたものである。なお、楽器種類の指定は必須ではなく、楽器種類が利用者により指定されなかった場合、リズムパターン検索部２１４は、入力されたパートＩＤのみに従ってリズムパターンテーブルを検索する。以降の処理において、リズムパターン検索部２１４は、このステップＳ２における検索結果のリズムパターンレコードを処理の対象とする。
【００４３】
ここで、上述したように、入力リズムパターンには、１小節の長さを１として正規化されたオンセット時刻が含まれている。ステップＳ２の次に、リズムパターン検索部２１４は、ＲＡＭに記憶された入力リズムパターンにおける、オンセット時刻間隔の分布をステップＳ１と同様の方法で計算する（ステップＳ３）。ここにおいて、入力リズムパターンは、上述した（i）のようなものであり、（ii）で算出された各々のオンセット時刻間隔にクオンタイズ処理が施されることで、入力リズムパターンについて、（iii）のような数値群が算出されるものとする。図９Ｂは、リズムパターン検索部２１４が入力リズムパターンについて計算したオンセット時刻間隔の分布を、分布表に割り当てたものである。
【００４４】
ここで、図９Ａ〜図９Ｃに示された分布表を参照しながらオンセット時刻間隔の分布についてさらに説明を行う。
図９Ｂは入力リズムパターンにおけるオンセット時刻間隔の分布表である。
図９Ｂにおいて、横軸は、１小節を４８の時刻で区切ったときの時刻の間隔（時刻間隔という）を表し、縦軸は、横軸で表された各々の時刻間隔に相当する、クオンタイズされたオンセット時刻間隔の個数の比率を表す。図９Ｂでは、入力リズムパターンに基づく、上述した（iii）の数値群が分布表に割り当てられている。この個数比率は、合計が１となるようにリズムパターン検索部２１４によって正規化されている。図９Ｂでは、クオンタイズされたオンセット時刻間隔である（iii）の数値群において、最も個数が多い「６」の時刻間隔に分布のピークがあることが分かる。
【００４５】
ステップＳ３の次に、リズムパターン検索部２１４は、リズムパターンテーブルに記述されたリズムカテゴリ毎のリズムパターンに基づくオンセット時刻間隔の分布表（ここでは図９Ａ）と、入力リズムパターンに基づくオンセット時刻間隔の分布表（ここでは図９Ｂ）とを用いて、両者の類似の度合いを表す指標値（以降において「類似度距離」という）を算出する（ステップＳ４）。図９Ｃは、リズムパターンテーブルに記述されたリズムカテゴリ毎のリズムパターンに基づくオンセット時刻間隔の分布（図９Ａ）と、入力リズムパターンに基づくオンセット時刻間隔の分布（図９Ｂ）との差分を表す分布表である。ステップＳ４における類似度距離の算出方法は以下のようなものである。まず、リズムパターン検索部２１４は、リズムパターンテーブルに記述されたリズムカテゴリ毎のリズムパターンに基づくオンセット時刻間隔の分布表と、入力リズムパターンに基づくオンセット時刻間隔の分布表とにおいて、両分布表における同一の時刻間隔毎に、個数比率の差分の絶対値を求める。そしてリズムパターン検索部２１４は、各リズムカテゴリについて、上述の時刻間隔毎に求めた絶対値を全て足し合わせた値の平方根を算出する。この算出された平方根で表される値が類似度距離となる。この類似度距離は、値が小さいほど類似の度合いが高く、値が大きいほど類似の度合いが低いことを表す。図９Ｃでは、８分のリズムカテゴリにおいて、図９Ａと図９Ｂとに基づく個数比率の差分が最も小さい。これは、上述の算出方法に従って、分布表に表された８分、１６分、８分３連のリズムカテゴリのうち、８分のリズムカテゴリと入力リズムパターンとが、最も上記類似度距離が小さいことを表している。
【００４６】
ステップＳ４の次に、リズムパターン検索部２１４は、リズムパターンテーブルに記述されたリズムカテゴリのうち、類似度距離が最も小さいリズムカテゴリを、入力リズムパターンが該当するリズムカテゴリである、と判定する（ステップＳ５）。つまり、ここでは、リズムパターン検索部２１４は、入力リズムパターンのリズムカテゴリが８分であると特定することになる。このように、リズムパターン検索部２１４は、ステップＳ２〜ステップＳ５を通じて、入力リズムパターンの該当する可能性が高いリズムカテゴリを特定する。このように、リズムパターン検索部２１４は、ユーザにより入力されたリズムパターンが表す発音時刻間隔の度数分布を表す入力時刻間隔ヒストグラム（本実施形態では図９Ａ）と、データベースに予め記憶されたリズムパターンにおける発音時刻間隔の度数分布をリズム分類識別子（本実施形態におけるリズムカテゴリ）ごとに表すリズム分類ヒストグラム（本実施形態では図９Ｂ）との差分の絶対値を、リズム分類識別子ごとに求め、当該絶対値が最も小さいリズム分類識別子と対応付けられたリズムパターンのうち、類似の度合いが高いことを示す条件を満たすリズムパターンに対応付けられた楽音データを検索している。
【００４７】
次にリズムパターン検索部２１４は、リズムパターンテーブルに記述されたリズムパターンのうち、入力リズムパターンに対して、類似の度合いが高いリズムパターンを特定するために、リズムパターンテーブルに記述された全てのリズムパターンと入力リズムパターンとのズレの大きさを計算する（ステップＳ６）。ここで、ズレの大きさとは、入力リズムパターンにおける各オンセット時刻と、リズムパターンテーブルに記述された各々のリズムパターンにおける各オンセット時刻とがどれだけ離れているかを表す。つまり、上記ズレの大きさが小さい程、入力リズムパターンとリズムパターンテーブルに記述されたリズムパターンとにおける類似の度合いが高いこととなる。
【００４８】
また、ステップＳ５までの処理において、入力リズムパターンに該当する可能性が高いリズムカテゴリを特定する一方で、ステップＳ６の処理において全てのリズムカテゴリに属するリズムパターンレコードを計算の対象としている。その理由は、以下のとおりである。リズムパターンレコードに含まれるリズムパターンデータにおいては、１小節内に８分のオンセット時刻間隔と１６分のオンセット時刻間隔がほぼ同数ある場合等のように、どちらのリズムカテゴリに属するのかが紙一重であるものが存在する。このような場合に、ステップＳ５において仮に入力リズムパターンに対するリズムカテゴリが正しく判定されなかったとしても、ステップＳ６において全てのリズムカテゴリに属するリズムパターンレコードを計算の対象とすることで、利用者が意図していたリズムパターンが正しく検出される可能性が高くなる。
【００４９】
ここで、ステップＳ６における処理を、図１０を参照して説明する。図１０は、リズムパターンにおけるズレの計算を説明するための模式図である。図１０で示されるように、入力リズムパターンをＡとして、リズムパターンレコードに記述されたリズムパターンをＢとすると、ＡとＢにおけるズレの大きさの計算は、以下の手順で行われる。
（１）リズムパターン検索部２１４は、リズムパターンＡにおける各オンセット時刻を基準として、リズムパターンＢにおける最も近いオンセット時刻との時刻差の絶対値を算出する（図１０における（１））。
（２）リズムパターン検索部２１４は、（１）で算出した各絶対値の積分値を算出する。（３）リズムパターン検索部２１４は、リズムパターンＢにおける各オンセット時刻を基準として、リズムパターンＡにおける最も近いオンセット時刻との時刻差の絶対値を算出する（図１０における（３））。
（４）リズムパターン検索部２１４は、（３）で算出した各絶対値の積分値を算出する。（５）リズムパターン検索部２１４は、（２）で算出した積分値と（４）で算出した積分値との平均値を、リズムパターンＡとリズムパターンＢとのズレとして算出する。
【００５０】
なお、実施形態においては、充分な数のリズムパターンを用意していないため、図１０（３）に記載されているように、リズムパターン検索部２１４は、時刻差の絶対値が基準間隔（ここでは８分なので０．１２５）より大きいものは積分値を算出する際に用いないという処理を行っているが、充分な数のリズムパターンを用意できる場合には、上記処理は不要となる。リズムパターン検索部２１４は、リズムパターンテーブルに含まれる全てのリズムパターンレコードにおけるリズムパターンについて、上述した（１）〜（５）の計算を行う。このように、リズムパターン検索部２１４は、取得手段である入力リズムパターン記憶部２１２により取得されたリズムパターンが表す各発音時刻と、記憶手段に記憶されたリズムパターンが表す各発音時刻のうち、取得手段により取得されたリズムパターンが表す各発音時刻に対して時間軸において最も近い発音時刻との差分についての積分値を算出し、当該積分値が最も小さく算出されたリズムパターンを、類似の度合いが高いことを示す条件を満たすリズムパターンとして、当該リズムパターンに対応付けられた楽音データを前記記憶手段から検索する検索手段の一例である。
【００５１】
次に、リズムパターン検索部２１４は、ステップＳ４でリズムカテゴリ毎に算出した類似度距離と、ステップＳ６で算出したリズムパターンのズレとを乗算することで、リズムパターンテーブルに含まれる、特定されたパートにマッチするパートのパートＩＤを持つ全てのリズムパターンレコードについて、入力リズムパターンとの類似度距離を算出する（ステップＳ７）。ここで上述したように、入力リズムパターンをＡとし、Ｎ番目のリズムパターンレコードにおけるリズムパターンをＢとしたとき、ステップＳ７を式で表すと以下のようになる。なお、特定されたパートにマッチするパートとは、ユーザが検索対象として入力した１又は複数のパートに一致する１又は複数のパートに限られるものではなく、ユーザが検索対象として入力した少なくとも１パートに類似する１又は複数のパートをも含み得る。
ＡとＢのリズムパターンの類似度距離＝Ａと、Ｂが所属するリズムカテゴリとの類似度距離×ＡとＢとのリズムパターンのズレ
ここで、ＡとＢのリズムパターンの類似度距離が小さいほど、ＢのリズムパターンがＡのリズムパターンに類似している度合いが高いことを意味している。つまりここでは、ＡとＢのリズムパターンの類似度距離が、類似の度合いを表している。以降、このリズムパターンの類似度距離が小さいことを、「類似の度合いが高い」ということがある。なお、この計算に際して、基本的には、ステップＳ５で入力リズムパターンが該当すると判定されたリズムカテゴリ内から、検索結果が出力されるように、以下のような処理が行われる。リズムパターン検索部２１４は、ステップＳ５で判定されたリズムカテゴリと、リズムパターンＢの属するリズムカテゴリとが一致するかを判定し、一致しない場合には、上記計算式によって求められた類似度距離に予め定められた定数（例えば０．５）を加算する。このようにすれば、ステップＳ５で判定されたリズムカテゴリと一致しないリズムカテゴリに属するリズムパターンレコードについては、リズムパターン同士の類似度距離が大きく算出されるため、ステップＳ５で入力リズムパターンが該当すると判定されたリズムカテゴリ内から、検索結果が出力されやすくなる。
【００５２】
そして、リズムパターン検索部２１４は、入力リズムパターンとの類似度距離が小さい順番で、上記類似度距離が小さいリズムパターンデータを持つリズムパターンレコードを、所定個数だけ検索結果として出力し、これらをＲＡＭに記憶させる（ステップＳ８）。この所定個数は、パラメータとして記憶部２２に記憶されており、ユーザが操作部２５を用いて変更可能としてもよい。次に検索情報処理部２１５は、ステップＳ８でＲＡＭに記憶されたリズムパターンレコードにおけるリズムパターンＩＤとパートＩＤとに基づいてスタイルテーブルを検索し、特定したスタイルレコードを検索結果としてＲＡＭに記憶させる（ステップＳ９）。例えばステップＳ８において、パートＩＤが「０２」（コード）であり、リズムパターンＩＤが「０００４」のリズムパターンレコードがＲＡＭに記憶されると、これを受けて検索情報処理部２１５は、スタイルテーブルから、コードリズムパターンＩＤが「０００４」のスタイルレコードを検索結果としてＲＡＭに記憶させる。
【００５３】
図１１Ａ〜図１１Ｃは、自動伴奏についての検索結果の一覧を表した模式図である。
図１１Ａは、利用者がコード入力音域鍵盤１２を用いて入力したリズムパターンに基づいて、検索情報処理部２１５が検索結果として出力したスタイルレコードが、表示部２４に表示された場合を表している。図１１Ａ〜図１１Ｃにおいて、参考項目「類似度」は入力リズムパターンと、検索結果であるスタイルレコードのリズムパターンとの間の類似度距離を表している。すなわち、「類似度」で表される数値が小さいほど、入力リズムパターンに類似する度合いが高いことを意味している。図１１Ａに示されるように、「類似度」の数値（ステップＳ７で算出されたリズムパターン同士の類似度距離）が小さい順番で、すなわち入力リズムパターンに対する類似の度合いが高い順番で、スタイルレコードが表示されている。ここにおいて利用者は、「キー」、「ジャンル」又は「ＢＰＭ」のすくなくともいずれか１の項目を用いて、この検索結果をフィルタリングして表示させることが可能である。図１１Ａにおいて、利用者が任意のスタイルレコードを選択すると、情報処理装置２０は、利用者がリズムパターンを入力した際のＢＰＭ（以降において入力ＢＰＭという）で、当該スタイルレコードに基づく音を音声出力部２６から出力する。なお、検索結果を表示するにあたっては、必ずしも図１１Ａ〜図１１Ｃに示されたように全ての参考項目（「類似度」、「キー」、「ジャンル」、「ＢＰＭ」）を表示する必要はなく、一部の参考項目のみを表示する、あるいは全ての参考項目を表示しないようにしてもよい。検索結果（スタイルレコード）をフィルタリングして表示する場合も同様に、全ての参考項目（「類似度」、「キー」、「ジャンル」、「ＢＰＭ」）を表示する必要はなく、一部の参考項目のみを表示する、あるいは全ての参考項目を表示しないようにしてもよい。
【００５４】
なお、制御部２１は、利用者が入力ＢＰＭに近いＢＰＭを持つスタイルレコードのみを検索結果として出力するためのフィルタリング機能を備えており、利用者は、操作部２５を介して上記フィルタリング機能を任意にＯＮ／ＯＦＦすることが可能である。具体的には、上述したように各スタイルレコードには「ＢＰＭ」が含まれているから、上記フィルタリング機能がＯＮである場合、制御部２１は、入力ＢＰＭの例えば０．７倍〜１．４倍のＢＰＭを持つスタイルレコードのみを検索結果として表示する。なお、入力ＢＰＭに適用する上記係数の値０．７〜１．４は一例であり、その他の値であってもよい。
【００５５】
制御部２１がこのようなフィルタリング機能を備える理由は、以下のようなものである。制御部２１は、入力ＢＰＭと同一のＢＰＭで、スタイルレコードに基づく楽音データを供給する。このとき、制御部２１によって、スタイルレコードに基づく楽音データが本来のＢＰＭとは大幅に異なるＢＰＭで供給されると、上記楽音データに基づく音が音声出力部２６によって放音される際に、利用者に違和感を与えてしまうことがある。例えば、利用者が、ＢＰＭ２４０のテンポでリズムパターンを入力し、制御部２１が上記リズムパターンを持つスタイルレコードを検索した結果、検索結果のスタイルレコードの本来のＢＰＭが６０であった場合を考える。この場合、検索結果のスタイルレコードに基づく音は、本来のＢＰＭの４倍のＢＰＭで音声出力部２６によって放音されることになるため、音が本来のＢＰＭの４倍速で早送り再生された状態となり、結果として利用者に違和感を与えることとなる。このような問題を解決するために、制御部２１は、フィルタリング機能を備えているわけである。
【００５６】
図１１Ｂは、図１１Ａの状態から、利用者が、フィルタリング機能をＯＮにした状態を表している。図１１Ｂでは、上述した０．７〜１．４という係数を用いて制御部２１がフィルタリングを行っている。つまり、図１１Ｂでは、入力ＢＰＭが１００であるため、７０〜１４０のＢＰＭを持つスタイルレコードが、フィルタリングの結果として表示されている。このようにすることで、利用者は、入力ＢＰＭと近いＢＰＭを持つスタイルレコードを検索結果として得ることができ、検索結果に対してより納得感を持てるようになる。
【００５７】
また、利用者は、初めに或るパートを指定して、入力リズムパターンに近いリズムパターンを持つスタイルレコードを検索（１回目の検索）した後に、初めに指定したパートと異なるパートを指定してリズムパターンを入力し、再び検索（２回目の検索）を行うことで、１回目の検索で出力されたスタイルレコードが２回目の検索によって絞り込まれた検索結果を得ることが可能である。例えば図１１Ｃは、図１１Ａの検索結果が表示された状態において、利用者がパートにハイハットを指定してリズムパターンを入力した結果の表示内容を表している。図１１Ｃにおける「類似度」は、各々のスタイルレコードにおいて、対象パートが「コード」である場合の類似度距離と、対象パートが「ハイハット」である場合の類似度距離とが加算された値となっている。なお、図１１においては、「第１検索パート」及び「第２検索パート」という項目で表されるように、２つのパートを用いて検索可能なことを示しているが、検索の際に指定できるパートの数はこれに限ったものではない。また、利用者が、或るパートを指定して検索を行った後に、初めに指定したパート（第１検索パート）と異なるパート（第２検索パート）を指定してリズムパターンを入力した場合、情報処理装置２０は、第１検索パートを用いた検索結果に関わらず、第２検索パートのみを用いた検索結果を出力（上書き検索という）するようにしてもよい。このような絞り込み検索と上書き検索とは、情報処理装置２０の操作部２５を介して、利用者により切り替え可能としてもよい。
以上が、検索機能がＯＮの状態において、リズムパターン検索部２１４及び検索情報処理部２１５が、入力リズムパターンに基づいて、スタイルテーブルから特定のスタイルレコードを検索結果として出力する一連の処理についての説明である。
【００５８】
このように、本実施形態の情報処理装置２０によれば、利用者が指定したパートについて、意図するリズムパターンとの類似の度合いが決められた条件を満たすようなリズムパターンで構成されたフレーズを持つ自動伴奏データを検索することができる。このとき、利用者は、複数の演奏操作子に対応付けられた各々異なるパートのうち任意のパートを指定してリズムパターンを入力するため、特定のパートについてのリズムパターンを思いついたときに、このパートについてのリズムパターンを入力して検索を行うことが可能となる。また、検索にあたり、利用者は、パートを指定してリズムパターンを入力するだけでよいため、直感的かつ効率良く自動伴奏データを検索することが可能となる。
【００５９】
＜変形例＞
以上の実施形態は次のように変形可能である。尚、以下の変形例は適宜組み合わせて実施しても良い。
【００６０】
＜変形例１＞
実施形態においては、利用者が、複数の異なるパートを指定してリズムパターンを入力した場合、リズムパターン検索部２１４は、初めに指定されたパートに関する入力リズムパターンでスタイルレコードを検索（１回目の検索）した後に、１回目の検索結果として出力されたスタイルレコードに対して、初めに指定されたパートとは異なるパートに関する入力リズムパターンを用いて絞り込み検索（２回目の検索）を行っていたが、複数の異なるパートが指定された場合の検索方法は、これに限らない。実施形態における上述の処理は、利用者による演奏操作が、パート毎に順番に行われることを想定としていたが、利用者が、異なる複数のパートを同時に指定して演奏操作を行った場合、次のようにすればよい。リズムパターン検索部２１４は、利用者により指定された各パートのパートＩＤを持つリズムパターンレコードと、当該パートの入力リズムパターンとに基づいて、両者の類似の度合いを各々算出する。次にリズムパターン検索部２１４は、指定された各パートのリズムパターンレコードについて算出された類似の度合いを、上記リズムパターンレコードと対応付けられた共通のスタイルレコードごとに加算する。そして表示部２４は、加算後の類似の度合いが一番高い（すなわち数値が最も小さい）スタイルレコードから昇順で表示する。例えば利用者が、バスドラムとスネアドラムのパートについて同時に演奏操作を行ってリズムパターンを入力した場合、リズムパターン検索部２１４は、バスドラムの類似の度合いとスネアドラムの類似の度合いをそれぞれ算出すると、共通のスタイルレコードごとに両者を加算する。このようにすれば、利用者は、複数のパートを同時に指定して、意図するリズムパターンとの類似の度合いが決められた条件を満たすようなリズムパターンで構成されたフレーズを持つ自動伴奏データを検索することができる。
【００６１】
＜変形例２＞
実施形態においては、利用者がパートを指定してリズムパターンを入力することで、情報処理装置２０は自動伴奏データを検索結果として出力していたが、これに限らず、利用者がパートを指定して入力したメロディパターンによって検索が行われるようにしてもよい。この場合、自動伴奏ＤＢ２１１には、メロディパターンテーブルなるテーブルが新たに含まれる。図１２及び図１３は、変形例２に係る自動伴奏ＤＢの内容を表す模式図である。図１２はメロディパターンテーブルを表している。メロディパターンテーブルは、「パートＩＤ」、「楽器種類ＩＤ」、「メロディパターンＩＤ」、及び「メロディパターンデータ」という複数の項目からなる。「パートＩＤ」及び「楽器種類ＩＤ」は上述したものと同様である。「メロディパターンＩＤ」は、メロディパターンレコードを一意に識別する識別子であり、例えば４桁の数字からなる。メロディパターンデータは、１小節を構成するフレーズにおける各構成音の、音高及び音長の経時に沿った変化が記録されたデータファイルであり、例えばテキストファイルに、構成音の音高及び音長の並びが記述されたものである。図１３は変形例２に係るスタイルテーブルを表している。図１３において、各スタイルレコードには、各パートについてのリズムパターンＩＤとともに、各パートについてのメロディパターンＩＤが含まれている。ここで、情報処理装置２０がメロディパターンを検索するときには周知の方法のいずれかを用いればよい。例えば、利用者がパートにコードを指定して、「Ｃ−Ｄ−Ｅ」というコードシーケンスを入力した場合、情報処理装置２０の制御部２１は、当該コードシーケンスにおける音高の進行を「０−２−４」という相対的な数値で表したメロディパターンデータを持つメロディパターンレコードを検索結果として出力する。そして制御部２１は、検索結果のメロディパターンレコードと対応付けられたスタイルレコードを表示部２４に表示させる。
【００６２】
また、例えば利用者がパートにフレーズを指定して、「Ｄ−Ｄ−Ｅ−Ｇ」という単音のメロディパターンを入力した場合、制御部２１は、入力されたメロディパターンを表すＭＩＤＩ情報を生成する。このＭＩＤＩ情報には、メロディパターンを構成する各構成音の音長及び音高に関する情報が含まれている。制御部２１は、メロディパターンテーブルにおいて、この生成したＭＩＤＩ情報と同一又は類似したメロディパターンデータを持つメロディパターンレコードを検索結果として出力する。そして制御部２１は、検索結果のメロディパターンレコードと対応付けられたスタイルレコードを表示部２４に表示させる。このようなメロディパターンによる検索と、実施形態のようなリズムパターンによる検索とは、その検索のモードを、情報処理装置２０の操作部２５を介して利用者により切り替え可能としてもよい。この更なる変形例として、利用者が入力するクエリーパターンは、メロディパターンを構成する各構成音の音高及びその発生順序のみを特定する（つまり、個々のノートの音長は詳しく特定せずに、大まかなメロディ進行のみを特定する）ものであってもよい。
【００６３】
＜変形例３＞
情報処理装置２０が検索を行うにあたって、入力リズムパターンにおける音色と同一又は類似の度合いが高い音色を持つフレーズを持つ自動伴奏データを検索するようにしてもよい。この場合、リズムパターンテーブルの各リズムパターンレコードには、項目「音色ＩＤ」が追加される。利用者は、演奏操作子を用いてリズムパターンを入力する際に、音色を指定する。利用者が演奏操作を行うと、演奏操作が行われた際に指定された音色のＩＤが、ＭＩＤＩ情報の一部として情報処理装置２０に入力される。情報処理装置２０は、入力された音色ＩＤに基づく音の音色と、リズムパターンテーブルにおける指定されたパートの各リズムパターンレコードにおける音色ＩＤに基づく音の音色を比較し、比較結果における類似の度合いが予め定められた閾値よりも高いリズムパターンレコードを特定する。ここで、音色の比較については、各々の音の波形におけるスペクトラムを比較するなど、周知の方法を用いればよい。そして情報処理装置２０は、特定したリズムパターンレコードのリズムパターンＩＤ及びパートＩＤに基づいてスタイルテーブルを検索し、スタイルレコードを特定する。このようにすれば、リズムパターンが類似していることに加え、指定したパートについて音色が類似した自動伴奏データを利用者は得ることが可能となる。
【００６４】
＜変形例４＞
実施形態においては、自動伴奏ＤＢにおける音のデータはＭＩＤＩ情報として記述されていたが、音そのものについてのデータであるオーディオファイルの格納場所が記述されていてもよい。この場合、オーディオファイルは、例えばＷＡＶＥ（RIFF waveform Audio Format）やｍｐ３（MPEG Audio Layer-3）といった音声ファイルフォーマットからなり、リズムパターンテーブルにおける各リズムパターンレコードに、オーディオファイルのファイルパスが記述される。そして、検索結果から、利用者によって或るスタイルレコードが再生対象として選択されると、このスタイルレコードにおける各パートについてのオーディオファイルが同期を取って再生される。このようにすれば、ＭＩＤＩ情報を用いる場合と比較して、利用者は、より高い音質の自動伴奏を得ることが出来る。
【００６５】
＜変形例５＞
自動伴奏データの再生にあたって、利用者が、操作部２５を通じて操作を行うか、あるいはリズム入力装置１０に設けられたフェーダー、つまみ、ホイール、ボタン等の操作子を操作することで、自動伴奏データを小節の頭から再生する頭出し再生機能を、情報処理装置２０が備えていても良い。この場合、利用者により上記操作が行われると、再生制御部２１６が、自動伴奏データを小節の頭から再生するように制御する。この頭出し再生機能は、利用者が、自動伴奏音の先頭部分がどこなのかを確認したり、自動伴奏音の一部分だけを繰り返し再生対象とさせたりする場合に用いられる。
【００６６】
＜変形例６＞
自動伴奏データによっては、構成音の終了付近で波形の振幅（パワー）が０近くに収束されていないものがあり、この場合、構成音に基づく音声が出力された後に、クリップノイズが発生する場合がある。これを防ぐために、再生制御部２１６が、構成音の開始及び終了付近の一定範囲を自動でフェードイン又はフェードアウトする機能を有していてもよい。ここで利用者は、上記フェードイン又はフェードアウトを適用させるかどうかを、操作部２５あるいはリズム入力装置１０に設けられた何らかの操作子を介して選択可能である。
図１４は、自動伴奏データにおける各構成音に対して、フェードアウトが適用された場合を表す模式図である。図１４に示されるように、“フェード”と矢印で示された箇所に、フェードアウトが適用されることで、該当する箇所の波形の振幅が徐々に小さくなり、構成音の終了時刻においては振幅がほぼ０となっている。なお、各構成音について、フェードアウトが適用される期間は、数ｍｓｅｃから数十ｍｓｅｃ程度の範囲内で、利用者により調整可能である。また、このフェードアウトを適用する処理は、利用者による演奏操作の前処理として行われてもよいし、リアルタイムの処理、又は後処理として行われてもよい。
【００６７】
＜変形例７＞
利用者が自動伴奏とともに行った演奏の結果を、再生制御部２１６が録音し、この録音した内容を、一般的に音源ループ素材で用いられているようなファイルフォーマットで出力可能としてもよい。このように自身の演奏を記録する機能があると、楽曲制作において、利用者は、自動伴奏とともに自らが行った演奏の結果を、データとして手に入れることが可能となる。
【００６８】
＜変形例８＞
実施形態においては、利用者の演奏操作によるトリガーデータと、自動伴奏ＤＢ２２１に記憶されたリズムパターンデータとの比較によって、リズムパターン検索部２１４が特定のリズムパターンレコードを検出していたが、これに限らず、リズムパターン検索部２１４は、利用者の演奏操作によるトリガーデータ及びベロシティデータの双方を用いて自動伴奏ＤＢ２２１を検索するようにしてもよい。この場合、同じリズムパターンを持つリズムパターンデータが２つ存在した場合に、各構成音のアタック強度が、利用者の演奏操作によるベロシティデータに、より近いリズムパターンデータと対応付けられたスタイルレコードが検索結果として検出される。このようにすれば、アタック強度についても、利用者がイメージしていたものに近い自動伴奏データが、検索結果として出力されることが可能となる。
【００６９】
＜変形例９＞
実施形態における、リズムパターン同士の類似度距離の計算方法は一例に過ぎず、異なる計算方法を用いてもよい。例えば、確実にリズムカテゴリが一致したリズムパターンレコードが検索結果として出力されるように、入力リズムパターンに該当するリズムカテゴリを判定した後、判定結果のリズムカテゴリに属するリズムパターンレコードのみを対象として、リズムパターンのズレの計算（ステップＳ６）、及びリズムパターン同士の類似度距離の計算（ステップＳ７）が行われるようにしてもよい。このようにした場合、実施形態と比較して検索の精度は落ちるが、計算量が少なくてすむため、情報処理装置２０における負荷が下がるとともに、利用者にとっての応答時間も短くなる。
【００７０】
＜変形例１０＞
また、リズムパターン検索部２１４が自動伴奏ＤＢ２２１を検索するにあたって、トリガーデータ及びベロシティデータに加えて、同一の音が鳴り続ける長さを表すデュレーションデータを用いてもよい。ここで、各構成音におけるデュレーションデータは、オフセット時刻から直前のオンセット時刻を差し引いた時間の長さで表される。デュレーションデータは、リズム入力装置１０における入力手段が鍵盤である場合に、情報処理装置２０がオフセット時刻を明確に取得することが可能であるため、特に有効に活用することができる。この場合、図５のリズムパターンテーブルにおいて、「デュレーションパターンデータ」という項目が追加されることとなる。デュレーションパターンデータは、１小節を構成するフレーズにおける各構成音の鳴り続ける長さが記録されたデータファイルであり、例えばテキストファイルに、各構成音の鳴り続ける長さが記述されたものである。この場合、情報処理装置２０は、利用者により入力された、１小節におけるデュレーションのパターンを用いて、リズムパターンテーブルから、上記入力されたデュレーションのパターンと最も類似するデュレーションパターンデータを持つリズムパターンレコードを検索結果として出力するようにすればよい。このようにすれば、類似したリズムパターンを持つリズムパターンレコードが複数存在しても、情報処理装置２０が、スラー（伸ばす）のあるリズムパターンや、スタッカート（はねる）のあるリズムパターン等を識別して検索結果として出力することが可能となる。
【００７１】
＜変形例１１＞
なお、実施形態（図９Ａ、図９Ｂ）においては、入力時刻間隔ヒストグラムと発音時刻間隔ヒストグラムとの差分の絶対値が最も小さいことを、入力時刻間隔ヒストグラムに対する発音時刻間隔ヒストグラムの類似の度合いが高いと判断していたが、両者の類似の度合いが高いことを示す条件は、上記のような両ヒストグラムの差分の絶対値に限らず、両ヒストグラムの各時刻間隔成分の積などの相関度が最も大きいとか閾値を超えるといったことや、両ヒストグラムの差分の２乗が最も小さいとか閾値未満であるといったこと、両ヒストグラムの各時刻間隔成分における値が類似していることを示すような条件であれば、どのような条件を用いてもよい。
【００７２】
＜変形例１２＞
実施形態においては、リズム入力装置１０から入力されたリズムパターンに従って、情報処理装置２０が、当該リズムパターンに類似するリズムパターンを持つリズムパターンレコードを検索し、このリズムパターンレコードに対応付けられたスタイルレコードを検索結果として出力していたが、次のようにしてもよい。例えば、上記実施形態に相当する内容をウェブサービスによって実施する場合、実施形態において情報処理装置２０が備える機能を、当該ウェブサービスを提供するサーバ装置が備えることとなる。そして、利用者の操作によって、クライアント装置である自端末（例えばＰＣ）が、インターネットや専用線等を介して、指定されたパートについての入力リズムパターンを上記サーバ装置に送信する。サーバ装置は、受信したパートと入力リズムパターンとに基づいて、記憶手段から当該入力リズムパターンに類似するリズムパターンを持つリズムパターンレコードを検索し、このリズムパターンレコードと対応付けられたスタイルレコードを検索結果として自端末に送信する。そして自端末は、受信したスタイルレコードに基づく音を出力する。なお、この場合、サーバ装置の提供するウェブサイトやアプリケーションにおいて、小節線クロックが利用者に提示されるようにすればよい。
【００７３】
＜変形例１３＞
リズム入力装置１０における演奏操作子は、利用者が演奏操作したときに、少なくともトリガーデータを出力するものであれば、鍵盤及びパッドのような形状に限らず、弦楽器、吹奏楽器、あるいはボタンなどの形状であってもよい。また、その他に演奏操作子はタッチパネルであってもよく、この場合、タッチパネルを備えたタブレットＰＣ、スマートフォン、携帯電話等がリズム入力装置１０に代わる入力装置となる。
【００７４】
ここで、演奏操作子がタッチパネルである場合の例を考える。タッチパネルにおいては、その画面上に複数のアイコンが表示されることがある。ここで、各アイコンに楽器や楽器の操作子（鍵盤など）の画像が表示されるようにすれば、利用者は、どのアイコンをタッチすればどのような楽器や楽器の操作子に基づく楽音が発せされるのかが分かるようになる。このようにした場合、タッチパネルにおいて上記各アイコンが表示される各々の領域が、実施形態における演奏操作子の各々と対応することとなる。換言すれば、リズム入力装置１０としてタッチパネルを使用する場合は、タッチパネルの表示画面を複数領域に分割し、分割された各領域に対して１又は複数のパートを割り当てるようにし、ユーザがタッチした領域に割り当てられている１又は複数のパートをクエリーパートとして特定するようにしてもよい。
また、リズム入力装置１０における演奏操作子として、ピッチベンドホイールを用いてもよい。別の例として、リズム入力装置１０（クエリーパターン入力装置）としては、手動操作可能な演奏操作子からなるものに限らず、マイクロホンを用いた音声入力装置あるいは光信号発生装置などを用いてもよい。その場合、ユーザによる音声発音タイミングに応じた入力リズムパターン（クエリーパターン）が生成される、あるいは、ユーザ操作による光信号発生タイミングに応じた入力リズムパターン（クエリーパターン）が生成される。更に、リズム入力装置１０（クエリーパターン入力装置）としては、メトロノーム等のテンポ情報に合わせてリアルタイムにリズムパターン（クエリーパターン）を入力する方式に限らず、エディタ画面上で所望のリズムパターン（クエリーパターン）をグラフィカルに入力する（例えば、画面上に表示された時間軸上で所望のタイミングをグラフィカルに指摘する、又は所望のパターンをグラフィカルに入力する）ようにしてもよい。
さらに、クエリーパターンを入力する形態は、ユーザが直接指定するものに限られない。例えば、リズム入力装置１０が操作子としてボタンを備える場合、リズム入力装置１０の表示画面に提示される自動伴奏データの中からユーザに所望の自動伴奏データをボタンで選択させ、その選択されたデータのパターンをクエリーパターンとして検索を行う構成が採用されてもよい。また、選択する対象として、自動伴奏データの一部のパートのパート演奏データをボタンで選択するようにしてもよい。あるいは、入力リズムパターンやその名前などを表示し、入力リズムパターンを直接ボタンで指定させるようにしてもよい。
【００７５】
＜変形例１４＞
実施形態では、入力ＢＰＭと同一のＢＰＭで、制御部２１によってスタイルレコードに基づく楽音データが供給されていた。これに対して、スタイルレコードには本来のＢＰＭが情報として含まれているから、利用者は、操作部２５を介した操作により、スタイルレコードに基づく楽音データを、本来のＢＰＭで制御部２１から供給させるようにしてもよい。また、検索結果から特定のスタイルレコードが利用者により選択されると、選択された直後は、制御部２１が、入力ＢＰＭと同一のＢＰＭでスタイルレコードに基づく楽音データを供給し、時間の経過に伴って、ＢＰＭがスタイルレコードの持つ本来のものに徐々に近づくようにして、スタイルレコードに基づく楽音データを供給するようにしてもよい。
【００７６】
＜変形例１５＞
実施形態においては、制御部２１が、利用者が入力ＢＰＭに近いＢＰＭを持つスタイルレコードを検索結果として出力するためのフィルタリング機能を備えていた。利用者が検索結果に対してより納得感を持てるようにするための方法はこれに限ったものではない。例えば、入力リズムパターンとリズムパターンテーブルに含まれるリズムパターンレコードとの類似度距離を求める算出式に、入力ＢＰＭとスタイルレコードの持つＢＰＭとの近さに基づく重み付けを導入してもよい。ここで、ａを予め定められた定数とし、入力リズムパターンとリズムパターンテーブルに含まれるリズムパターンレコードとの類似度距離をＬとすると、上記重み付けを導入した図１１における類似度距離を求める計算式は、例えば以下のように表せる。
類似度距離＝Ｌ＋｜入力ＢＰＭ−スタイルレコードの持つＢＰＭ｜／ａ
なお、上記類似度距離を求める計算式は上記に限ったものではなく、入力ＢＰＭとスタイルレコードの持つＢＰＭとが近いほど類似度距離が小さくなる（すなわち類似の度合いが高くなる）ような計算式であればよい。
【００７７】
＜変形例１６＞
リズム入力装置１０が入力パッド１４を備えない場合、リズム入力装置１０が次のような構成を取ってもよい。この場合、デフォルトの状態では鍵盤２００には、ベース入力音域鍵盤１１、コード入力音域鍵盤１２、及びフレーズ入力音域鍵盤１３が所定の範囲に各々割り当てられている。ここで利用者が、操作部２５を介してドラムのパートの入力を行う旨を指示すると、制御部２１は、鍵盤２００の所定の範囲にドラムのパートを割り当てる。例えば、制御部２１は、Ｃ３にバスドラムのパートを割り当て、Ｄ３にスネアドラムのパートを割り当て、Ｅ３にハイハットのパートを割り当て、Ｆ３にシンバルのパートを割り当てる、といった具合である。なお、この場合、制御部２１は、鍵盤２００の全範囲における操作子（すなわち各鍵）に、各々異なる楽器音を割り当てることが可能である。ここで制御部２１が、鍵盤２００における各操作子（各鍵）の上部や下部に、割り当てられる楽器音に関する画像（例えばスネアドラムの画像）を表示するようにしてもよい。
【００７８】
＜変形例１７＞
利用者が、どの操作子を操作すれば、どのパートが制御部２１によって検索されるのかを視覚的に分かりやすくするために、次のようにしてもよい。例えば、制御部２１が、鍵盤２００における各操作子（各鍵）の上部や下部に、割り当てられるパートに関する画像（例えば、ギターのコードが押さえられた画像、ピアノが単音で演奏されている画像（例えば単一の鍵が指で押さえられている画像）、又はスネアドラムの画像等）を表示する。また、制御部２１が、上述の画像を各操作子の上部や下部に表示するに限らず、表示部２４に表示させてもよい。この場合、表示部２４には、例えば鍵盤２００を模した鍵盤の画像が表示されるとともに、実際の鍵盤２００の各範囲に割り当てられているのと同じ割り当て状態で、鍵盤の画像の各範囲に対して割り当てられたパートの画像が表示される。
または、利用者が、どの操作子を操作すれば、どのパートが制御部２１によって検索されるのかを聴覚的に分かりやすくするために、次のようにしてもよい。例えば、利用者がベース入力音域鍵盤１１に対して入力を行うと、制御部２１は、音声出力部２６からベースの音声を出力させる。
このようにすれば、利用者は、どの操作子を操作すれば、どのパートが検索されるのかを視覚的又は聴覚的に判別可能となるため、操作入力が容易なものとなり、結果として自らが望む伴奏音源を得やすくなる。
【００７９】
＜変形例１８＞
実施形態では、図８の処理フローにおいて、リズムカテゴリ毎のオンセット時刻間隔の分布を計算（ステップＳ１）した後に、入力リズムパターンにおけるオンセット時刻間隔の分布を計算していた（ステップＳ３）が、ステップＳ１とステップＳ３の順番を入れ替えてもよい。また、処理ステップの入れ替えに関わらず、リズムパターン検索部２１４が、リズムカテゴリ毎のオンセット時刻間隔の分布を計算した後、計算結果をＲＡＭや記憶部２２に記憶させるようにしてもよい。このようにすれば、リズムパターン検索部２１４は一度計算した結果を再度計算する必要がなく、処理速度の向上を見込むことが可能となる。
【００８０】
＜変形例１９＞
例えば、利用者がベース入力音域鍵盤１１において、和音となるように鍵盤を押下したとき等のように、利用者が所定時間内において複数の操作子を操作してリズムパターンを入力する場合には、次のような問題がある。例えば、１小節において、利用者が「０．２５」のタイミングでリズムを入力したかったとする。ここで、利用者が、自身では同一のタイミングのつもりで複数の操作子を操作しても、実際には、或る操作子が「０．２５」のオンセット時刻で操作され、他の操作子が「０．２６」のオンセット時刻で操作された場合、制御部２１は、これらのオンセット時刻のとおりに入力リズムパターンを記憶してしまう。このような場合、利用者が意図していたものとは異なる検索結果が出力される可能性があり、利用者にとっては操作性がよいものとはいえない。これに対して、次のようにしてもよい。
【００８１】
変形例１９において、パート特定部２１３は、リズム入力装置１０から入力されるオンセット情報と、自動伴奏ＤＢ２１１に含まれるパートテーブルとに基づいて、同一のタイミングにおいて同じパートにおける複数の操作子に対して操作が行われたか否かを判定する。例えば、パート特定部２１３は、ベース入力音域鍵盤１１に含まれる操作子のうち、或る操作子のオンセット時刻と他の操作子のオンセット時刻との差分が所定時間内に収まる場合、これらの操作子が同一のタイミングで操作されたと判定する。ここで所定時間とは、例えば５０ｍｓｅｃ（ミリ秒）である。そしてパート特定部２１３は、上記判定の結果、これらの操作子に対する操作を同一のタイミングにおける操作であるとみなす旨の情報を、該当するオンセット時刻を持つトリガーデータと対応付けてリズムパターン検索部２１４に出力する。リズムパターン検索部２１４は、同一のタイミングにおける操作であるとみなす旨の情報が対応付けられたトリガーデータのうち、開始時刻が遅い方のオンセット時刻を持つトリガーデータを除外した入力リズムパターンを用いてリズムパターン検索を行う。つまり、この場合、利用者の所定時間内の操作に基づくオンセット時刻のうち、開始時刻が早い方のオンセット時刻がリズムパターン検索に用いられることとなる。また、これに限らず、利用者の所定時間内の操作に基づくオンセット時刻のうち、開始時刻が遅い方のオンセット時刻がリズムパターン検索に用いられるようにしてもよい。つまり、リズムパターン検索部２１４は、利用者の所定時間内の操作に基づく複数のオンセット時刻のいずれかを用いてリズムパターン検索を行うようにすればよい。また、リズムパターン検索部２１４が、利用者の所定時間内の操作に基づく複数のオンセット時刻の平均を求め、この平均値を、上記利用者の所定時間内の操作におけるオンセット時刻として、リズムパターン検索を行うようにしてもよい。このようにすれば、利用者が所定時間内において複数の操作子を用いてリズム入力を行った場合であっても、利用者が意図していたものと近い検索結果が出力されるようにすることが可能となる。
【００８２】
＜変形例２０＞
入力リズムパターン記憶部２１２が小節単位で入力リズムパターンを記憶するタイミングを、小節線クロックに基づく小節の切り替えタイミングと同じものすると、以下のような問題が生じることがある。例えば、利用者の操作によってリズムパターンが入力される場合、利用者が自身で感じている時刻間隔と小節線クロックとのズレによって、利用者が意図していたリズムパターンと実際のオンセット時刻との間に数ｍｓｅｃ〜数十ｍｓｅｃの誤差が生じる。従って、例えば、利用者が小節頭の拍を入力しているつもりでも、上記誤差によって１つ前の小節のリズム入力として扱われてしまうことがあり、この場合、このリズム入力は入力リズムパターンとして記憶されないことがある。このような場合、利用者が意図していたものと異なる検索結果が出力されてしまい、利用者にとって操作性がよいとはいえない。このような問題に対しては、入力リズムパターン記憶部２１２がＲＡＭに入力リズムパターンを記憶させる際に、小節の頭よりも数十ｍｓｅｃ早い時点（すなわち直前の小節における最後の数十ｍｓｅｃ）から、最後の数十ｍｓｅｃを除く小節の終わりまでを処理の対象範囲とすればよい。つまり、入力リズムパターン記憶部２１２は、ＲＡＭに記憶させる入力リズムパターンの対象範囲を数十ｍｓｅｃ分だけ前にずらすこととなる。このようにすれば、利用者が意図していたものと異なる検索結果が出力されることを少なくすることができる。
【００８３】
＜変形例２１＞
リズムパターン検索部２１４がリズムパターン検索を行うタイミングを、小節線クロックに基づく小節の切り替えタイミングと同じものすると、以下のような問題が生じることがある。例えば、本発明における検索方法は、検索結果の楽音データが、リズム入力の直後の小節で小節線クロックと同期して再生されるようなプレイバック機能を備えた楽音データ処理装置にも応用可能である。この場合、リズム入力の直後の小節における頭から検索結果の楽音データが再生されるには、上記小節の頭の時点より以前、つまりリズム入力が行われた小節内で検索結果が出力される必要がある。また、ＲＡＭの記憶容量の問題等により、事前に再生対象である楽音データを予め読み込んでＲＡＭに記憶させておくことが不可能な場合には、リズム入力が行われた小節内で検索結果の楽音データを読み込んでＲＡＭに記憶させる必要がある。このような問題に対しては、リズムパターン検索部２１４がリズムパターン検索を行うタイミングを、小節の切り替えタイミングよりも、例えば数十ｍｓｅｃ早いものとすればよい。このようにすれば、小節の切り替えが行われる前に検索が行われ、検索結果の楽音データがＲＡＭに記憶されることで、リズム入力の直後の小節における頭から検索結果の楽音データが再生されることが可能となる。
【００８４】
＜変形例２２＞
実施形態においては、入力リズムパターンを１小節単位としたが、複数小節（Ｎ小節とする）に跨るリズムパターンを検索できるように、以下のようにしてもよい。この場合、例えば、リズムパターン検索部２１４が、Ｎ小節のまとまりを持った入力リズムパターンを用いてリズムパターンテーブルを検索する方法がある。しかしこの方法では、利用者が、小節線クロックに合わせてリズムパターンを入力する際に、１小節目がどこかを指定する必要がある。また、検索結果がＮ小節後に出力されるため、検索結果が出力されるまでに時間がかかってしまう。これに対して、次のようにしてもよい。
【００８５】
変形例２２において、自動伴奏ＤＢ２２１におけるリズムパターンテーブルには、Ｎ小節に跨るリズムパターンデータを持つリズムパターンレコードが含まれている。また、利用者は、操作部２５を用いて、検索するリズムパターンの小節数を指定する。この指定内容は、例えば表示部２４に表示される。ここで例えば、利用者が、検索するリズムパターンの小節を「２小節」と指定したとする。利用者によって操作子を用いてリズムが入力されると、リズムパターン記憶部２１２は、まず、１小節目の入力リズムパターンを記憶する。そしてリズムパターン検索部２１４が、１小節目の入力リズムパターンに基づいてリズムパターンを検索する。この検索の手順は以下のようなものである。リズムパターン検索部２１４は、２小節に跨るリズムパターンデータを持つリズムパターンレコードを対象として、１小節目の入力リズムパターンと、各リズムパターンデータにおける１小節目のリズムパターン及び２小節目のリズムパターンとの類似度距離を算出する。そしてリズムパターン検索部２１４は、各リズムパターンデータについて算出した、１小節目の入力リズムパターンと上記１小節目のリズムパターンとの類似度距離、及び１小節目の入力リズムパターンと上記２小節目のリズムパターンとの類似度距離のうち、それぞれ小さい方の類似度距離を、リズムパターンデータごとにＲＡＭに記憶させる。リズムパターン検索部２１４は、２小節目の入力リズムパターンについても同様の処理を行う。そしてリズムパターン検索部２１４は、ＲＡＭに記憶された上記類似度距離をリズムパターンデータごとに加算すると、加算後の値を、各リズムパターンデータにおける入力リズムパターンに対する類似度距離を表すスコアとする。そして検索情報処理部２１５が、上記スコアが予め定められた閾値以下であるリズムパターンを、スコアの小さい順に並べ替えて検索結果として出力する。このようにすれば、複数小節に跨るリズムパターンを検索することが可能となる。このとき、１小節ごとに入力リズムパターンとリズムパターンデータとの類似度距離が算出されるため、利用者は１小節目がどこかを指定する必要がなく、また、検索結果が出力されるまでに時間がかかることもない。
【００８６】
＜変形例２３＞
変形例２において、利用者がパートを指定して入力したメロディパターンによって検索が行われるものとしたが、これに限らず、利用者がパートを指定して入力したリズムパターンによって検索が行われた結果のうち、上記メロディパターンがより類似したスタイルレコードが検索結果として出力されるようにしてもよい。変形例２３のスタイルテーブルにおける各スタイルレコードは、変形例２と同様、図１３に示されるように、各パートについてのリズムパターンＩＤとともに、各パートについてのメロディパターンＩＤを含んでいる。また、前述したように、オンセット情報には、トリガーデータ以外に鍵盤のノートナンバーが含まれている。このうち、トリガーデータにおけるオンセット時刻の並びが入力リズムパターンに相当し、鍵盤のノートナンバーの並びが入力メロディパターンに相当する。
【００８７】
変形例２３では、図８のリズムパターン検索部２１４及び検索情報処理部２１５が行う検索処理のフロー図において、次のような処理が追加される。例えば利用者が、ベース入力音域鍵盤１１における鍵盤を操作して、「ドミソミ」というメロディを、４分のリズムで入力していたとする。このときの入力メロディパターンは、例えば「６０，６４，６７，６４」というノートナンバーの並びで表される。ここでは、パートがベースであるため、リズムパターン検索部２１４は、ステップＳ６において、メロディパターンテーブルのうち、パートＩＤが「０１（ベース）」であるメロディパターンレコードを比較対象として、比較対象のメロディパターンレコードに含まれるメロディパターンデータと、入力メロディパターンとのズレを算出する。
【００８８】
リズムパターン検索部２１４は、入力メロディパターンと、パートＩＤが「０１（ベース）」である各メロディパターンレコードに含まれるメロディパターンデータが表すメロディパターン（以降、音源のメロディパターンという）との音高の差分の分散を求める。これは、両者の音高の差分にバラつきが少ないほど、メロディパターンが類似しているとみなせる、という考えに基づいている。例えば、入力メロディパターンが上述したように「６０，６４，６７，６４」で表され、或る音源のメロディパターンが「５７，６０，６４，６０」で表されたとする。すると、以下の式（１）で音高の差分の平均値を求めることで、式（２）により音高の差分の分散を求めることができる。
（（｜６０−５７｜）＋（｜６４−６０｜）＋（｜６７−６４｜）＋（｜６４−６０｜））／４＝３．５・・・式（１）
（（｜３．５−３｜）2＋（｜３．５−４｜）2＋（｜３．５−３｜）2＋（｜３．５−
４｜）2）／４＝０．２５・・・式（２）
上記式で表されるように、「６０，６４，６７，６４」で表される入力メロディパターンと、「５７，６０，６４，６０」で表される音源のメロディパターンとの音高の差分の分散は、「０．２５」となる。リズムパターン検索部２１４は、このような音高の差分の分散を、音源のメロディパターンの全てについて算出する。
【００８９】
次に、ステップＳ７において、リズムパターン検索部２１４は、メロディパターンを考慮した場合の、入力リズムパターンと検索結果のリズムパターンとの類似の度合いを求める。ここで、メロディパターンを考慮しない場合の、入力リズムパターンと検索結果のリズムパターンとの類似の度合いをＳと定義し、上記音高の差分の分散をＶと定義すると、メロディパターンを考慮した場合の、入力リズムパターンと検索結果のリズムパターンとの類似の度合いＳｐは、変数ｘ、定数ｙを用いて以下の式（３）で表せる。ここで、０＜ｘ＜１であり、ｙ＞０である。
Ｓｐ＝（１−ｘ）Ｓ+ｘｙＶ・・・式（３）
変数ｘが０の場合、上記式は「Ｓｐ＝Ｓ」となるため、求められる類似の度合いは、メロディパターンを考慮しない場合のものとなる。一方、ｘが１に近づくにつれて、上記式で求められる類似の度合いは、よりメロディパターンを考慮した場合のものとなる。変数ｘの大きさは、利用者が操作部２５を用いて変更可能としてもよい。なお、式（３）においては、上記音高の差分の分散に代えて、音高の差分の平均誤差を用いてもよい。そして検索情報処理部２１５は、検索結果であるスタイルレコードを、メロディパターンを考慮した場合の、検索結果のリズムパターンと入力リズムパターンとの類似の度合いが高い（類似度距離が小さい）順番で並び替えると、ＲＡＭに記憶させる。
【００９０】
また、入力メロディパターンにおけるオンセット時刻及びオンセットの個数と、音源のメロディパターンを構成する各ノートのオンセット時刻及びノートの個数とが一致するとは限らない。このような場合、リズムパターン検索部２１４は、以下のようにして、入力メロディパターンの各オンセットに、音源メロディパターンのどのノートが対応しているかを決定する。
（１）リズムパターン検索部２１４は、入力メロディパターンの各ノートのオンセット時刻を基準として、音源のメロディパターンにおける最も近いオンセット時刻のノートとの音高の差分を算出する。
（２）リズムパターン検索部２１４は、音源のメロディパターンの各ノートのオンセット時刻を基準として、入力メロディパターンにおける最も近いオンセット時刻のノートとの音高の差分を算出する。
（３）リズムパターン検索部２１４は、（１）で算出した差分と（２）で算出した差分との平均値を、入力メロディパターンと音源のメロディパターンとの音高の差分として算出する。
なお、計算量を抑えるために、上記（１）若しくは（２）のいずれかのみを用いて音高の差分が算出されるようにしてもよい。
【００９１】
このようにすれば、利用者が意図したリズムパターンのみならず、メロディパターンについても利用者が意図したものと近いスタイルレコードが検索結果として出力されることとなる。利用者は、入力リズムパターンとリズムパターンは同じだが、メロディパターンが異なるようなスタイルレコードを検索結果として得ることが可能となる。
【００９２】
＝入力リズムパターンとリズムカテゴリとの類似度距離の算出方法＝
入力リズムパターンとリズムカテゴリとの類似度距離の算出方法は一例に過ぎず、異なる計算方法を用いてもよい。以下には、その算出方法のバリエーションを記載する。
＜カテゴリに特有の入力時刻間隔の個数＞
＜変形例２４＞
変形例２４において、制御部２１は、入力リズムパターンにおいて比較対象のリズムカテゴリを象徴するオンセット時刻間隔が含まれる個数に基づいて、入力リズムパターンと各リズムカテゴリとの類似度距離を算出する。図１５は、オンセット時刻間隔テーブルの一例を表す図である。オンセット時刻間隔テーブルは記憶部２２に予め記憶されている。オンセット時刻間隔テーブルは、リズムカテゴリの分類を示す名称と、各リズムカテゴリにおいて対象となるオンセット時刻間隔との組み合わせからなる。なお、ここでは１小節を４８に等分して正規化したものとしてオンセット時刻間隔テーブルの内容が予め決められている。
【００９３】
例えば、ここで、上述した方法により、制御部２１が、入力リズムパターンにおけるオンセット時刻からオンセット時刻間隔を算出し、算出結果にクオンタイズを施した結果、以下の（ａ）で表す数値群を算出したとする。
（ａ）１２，６，６，６，６，６
制御部２１は、算出した数値群と、図１５に示すオンセット時刻間隔テーブルとに従って、４分のオンセット時刻間隔が１個、８分のオンセット時刻間隔が５個であると特定する。そして制御部２１は、以下の式（４）に従って、入力リズムパターンと各リズムカテゴリとの類似度距離を算出する。
入力リズムパターンとリズムカテゴリＮとの類似度距離＝１−（入力リズムパターンにおけるリズムカテゴリＮの対象となるオンセット時刻間隔の個数／入力リズムパターンにおけるオンセット時刻間隔の総数）・・・（４）
上述した式は一例であり、対象となるオンセット時刻間隔がより多く含まれているリズムカテゴリほど、入力リズムパターンとの類似度距離が小さく算出されるものであればよい。式（４）に従った結果、制御部２１は、例えば入力リズムパターンと８分のリズムカテゴリとの類似度距離を、０．１６６と算出する。また、式（４）に従った結果、制御部２１は、例えば入力リズムパターンと４分のリズムカテゴリとの類似度距離を、０．８３３と算出する。制御部２１は、このようにして入力リズムパターンと各リズムカテゴリとの類似度距離を算出し、最も類似度距離が小さく算出されたリズムカテゴリに入力リズムパターンが属する、と判定する。
【００９４】
＜ＤＢリズムカテゴリと入力リズムカテゴリとのマトリクス＞
＜変形例２５＞
入力リズムパターンとリズムカテゴリとの類似度距離の算出方法は、上述したものに限らず、次のようにしてもよい。変形例２５では、類似度距離参照表なるものを記憶部２２が記憶している。図１６は、類似度距離参照表の一例を表す図である。類似度距離参照表では、入力リズムパターンの属し得るリズムカテゴリと、自動伴奏ＤＢ２２２に記憶された各リズムパターンレコードが属し得るリズムカテゴリとの類似度距離が、マトリクス状に表されている。例えば、制御部２１が、入力リズムパターンが属するリズムカテゴリを８分と判定したとする。制御部２１は、判定結果である入力リズムパターンが属するリズムカテゴリと、類似度距離参照表とに基づいて、入力リズムパターンと各リズムカテゴリとの類似度距離を特定する。例えば、この場合、制御部２１は、入力リズムパターンと４分のリズムカテゴリとの類似度距離を「０．８」と特定し、入力リズムパターンと８分のリズムカテゴリとの類似度距離を「０」と特定する。これにより、制御部２１は、８分のリズムカテゴリが入力リズムパターンと最も類似度距離が小さいと判定する。
【００９５】
＜カテゴリに特有の入力時刻とスコアに基づく＞
＜変形例２６＞
入力リズムパターンとリズムカテゴリとの類似度距離の算出方法は、上述したものに限らず、次のようにしてもよい。変形例２６において、制御部２１は、入力リズムパターンにおいて比較対象のリズムカテゴリを象徴するオンセット時刻が含まれる個数に基づいて、入力リズムパターンと各リズムカテゴリとの類似度距離を算出する。図１７は、オンセット時刻テーブルの一例を表す図である。オンセット時刻テーブルは記憶部２２に予め記憶されている。オンセット時刻テーブルは、リズムカテゴリの分類を示す名称と、各リズムカテゴリにおいて対象となるオンセット時刻と、入力リズムパターンに対象となるオンセット時刻が含まれる場合に加算するスコアとの組み合わせからなる。なお、ここでは１小節を４８に等分して正規化したものとしてオンセット時刻テーブルの内容が予め決められている。
【００９６】
例えば、制御部２１が、入力リズムパターンから、（ｂ）で示すオンセット時刻を得たとする。
（ｂ）０，１２，１８，２４，３０，３６，４２
制御部２１は、このオンセット時刻とオンセット時刻テーブルとに基づいて、各リズムカテゴリに対する入力リズムパターンのスコアを算出する。ここでは、制御部２１は、４分のリズムカテゴリに対するスコアとして「８」を算出し、８分のリズムカテゴリに対するスコアとして「１０」を算出し、８分３連のリズムカテゴリに対するスコアとして「４」を算出し、１６分のリズムカテゴリに対するスコアとして「７」を算出する。そして制御部２１は、算出したスコアが最も高いリズムカテゴリを、入力リズムパターンとの類似度距離が最も小さいリズムカテゴリであると判定する。ここでは、制御部２１は、入力リズムパターンが８分のリズムカテゴリと最も類似度距離が小さいと判定する。
以上が、入力リズムパターンとリズムカテゴリとの類似度距離の算出方法のバリエーションについての説明である。
【００９７】
＜変形例２７＞
本発明は、楽音データ処理装置以外にも、これらを実現するための方法や、コンピュータに図４に示した機能を実現させるためのプログラムとしても把握される。かかるプログラムは、これを記憶させた光ディスク等の記録媒体の形態で提供されたり、インターネット等を介して、コンピュータにダウンロードさせ、これをインストールして利用させるなどの形態でも提供されたりする。
【００９８】
＜その他の変形例＞
実施形態においては、ステップＳ６におけるリズムパターンのズレの計算において、Ａを基準としたＢの時刻差と、Ｂを基準としたＡの時刻差との２つを用いていたが（ｓｙｍｍｅｔｒｉｃ  Ｄｉｓｔａｎｃｅ方式という）、これに限らず、両者のうちどちらか一方のみを用いて計算を行ってもよい。
また、ＭＩＤＩデータを用いて検索又は再生を行う場合、マルチトラックで複数のパートの演奏データを再生するものにおいて、特定のトラックに対して検索を行うようにしてもよい。
また、リズムカテゴリの判定（ステップＳ２〜ステップＳ５）を省略して、リズムパターンのズレの計算（ステップＳ６）の結果のみを用いて、ステップＳ７におけるリズムパターン同士の類似度距離の算出を行ってもよい。
また、リズムパターンのズレの計算（ステップＳ６）において、算出されたズレの値に、相当する構成音のアタック強度を乗算することで、より強いアタック強度を持つ構成音を含むリズムパターンレコードが、検索結果の候補から外れやすくなるようにしてもよい。
実施形態においては、自動伴奏データに１小節のものを用いていたが、音声の長さはこれに限る必要はない。
また、実施形態においては、利用者が或る演奏操作子を用いて入力を行うと、この演奏操作子と対応したパートに基づいてスタイルレコードが検索されていたが、これに限らず、利用者が演奏操作子に拠らずに操作部２５を用いてパートを指定可能としてもよい。この場合、利用者が、パートを指定したあとに演奏操作子を操作すると、指定されたパートの入力が行われることとなる。例えば、利用者が、操作部２５を用いて「ベース」のパートを指定すると、その後にコード入力音域鍵盤１２を操作しても、制御部２１は、これを「ベース」のパートの入力とみなす、といった具合である。
また、実施形態においては、リズム入力装置１０において、バスドラム入力パッド１４ａ、スネアドラム入力パッド１４ｂ、ハイハット入力パッド１４ｃ、シンバル入力パッド１４ｄというように、音色の異なる各々のリズムパートにパッドをひとつずつ割り当てていたが、これに限らず、音色の異なる複数のリズムパートについて単独のパッドで入力可能としてもよい。この場合、利用者は、操作部２５を用いて、リズムパートの音色を指定することが可能である。
また、実施形態においては、操作子に対応させるパート、あるいは自動伴奏データとして使用しているパートは、コード、フレーズ、バスドラム、スネアドラム、ハイハット、シンバルとしたが、これに限らない。さらに、パートの区切り方は楽器名等に限らず、例えば、発音帯域で分けるようにしてもよい。例えば、ドラム（高域）、ドラム（中域）、ドラム（低域）等に分けて、高域にはハイハットやシンバル等、中域にはスネアドラム等、低域にはバスドラム等が入るようにしてもよい。
また、パートの数は実施形態に例示のものから増減させてよいし、パートの構成も実施形態に例示のものに限られず、種々のものが採用可能できる。例えば、和音演奏を行うコードパートに替えて、アルペジオ演奏を行うアルペジオパートを用いる、あるいはコードパートにアルペジオパートを追加する構成が採用されてもよい。
また、音の種類は上述の実施形態に説明している楽器の音に限られない。上述の楽器以外の楽器の音、あるいは楽器以外の音が用いられても。例えば、ドラムやハイハット、シンバルのようなリズムパートには、それらの楽器の音に加えて、もしくはそれらに代えて、人や動物の音声、楽器でない物を叩いた音など、種々のものが利用可能である。
上記実施形態では、楽音データが波形データであるとして、本発明に係る検索技術を楽音発生パターンに対応付けられた楽音データ（波形データ）の検索のために使用しているが、本発明の応用はこれに限定されない。例えば、本発明に係る検索技術は、楽音発生パターンに対応付けられた音色データ（音色ＩＤあるいは楽器種類ＩＤ）の検索のために、あるいは楽音発生パターンに対応付けられたその他のタイプの楽音データの検索のために、使用することができる。すなわち、本発明における楽音データとは、波形データに限らず、音色データあるいはその他のタイプの楽音関連データを含む広い概念を包括するものである。
上記実施形態では、パート演奏データの検出を行った後でそれを利用する処理として、パート演奏データを含む自動伴奏データを表示・再生する処理として示したが、それ以外の検出結果を利用した処理でもよい。例えば、自動伴奏データでなく、パート演奏データそのものを表示処理、あるいは再生処理したり、検索したパート演奏データを組み合わせて自動伴奏データを作成する処理で利用してもよい。
【符号の説明】
【００９９】
１０…リズム入力装置、１１…ベース入力音域鍵盤、１２…コード入力音域鍵盤、１３…フレーズ入力音域鍵盤、１４…入力パッド、１４ａ…バスドラム入力パッド、１４ｂ…スネアドラム入力パッド、１４ｃ…ハイハット入力パッド、１４ｄ…シンバル入力パッド、２０…情報処理装置、２１…制御部、２２…記憶部、２３…入出力インターフェース部、２４…表示部、２５…操作部、２６…音声出力部、１００…楽音データ処理システム、２００…鍵盤、２１１…小節線クロック出力部、２１２…入力リズムパターン記憶部、２１３…パート特定部、２１４…リズムパターン検索部、２１５…検索情報処理部、２２１…自動伴奏ＤＢ
【図１】
0005982980.tif 000002
【図２】
0005982980.tif 000003
【図３】
0005982980.tif 000004
【図４Ａ】
0005982980.tif 000005
【図４Ｂ】
0005982980.tif 000006
【図４Ｃ】
0005982980.tif 000007
【図５】
0005982980.tif 000008
【図６】
0005982980.tif 000009
【図７】
0005982980.tif 000010
【図８】
0005982980.tif 000011
【図９Ａ】
0005982980.tif 000012
【図９Ｂ】
0005982980.tif 000013
【図９Ｃ】
0005982980.tif 000014
【図１０】
0005982980.tif 000015
【図１１Ａ】
0005982980.tif 000016
【図１１Ｂ】
0005982980.tif 000017
【図１１Ｃ】
0005982980.tif 000018
【図１２】
0005982980.tif 000019
【図１３】
0005982980.tif 000020
【図１４】
0005982980.tif 000021
【図１５】
0005982980.tif 000022
【図１６】
0005982980.tif 000023
【図１７】
0005982980.tif 000024