(57)【要約】【課題】楽器のコード演奏操作を効率的に練習できるようにする。【解決手段】任意の楽曲に関するデータを取得し、該取得したデータにおいて該楽曲中に出現する１又は複数の連続するコードからなるコード列毎の出現頻度を検出する。コード列毎の出現頻度の検出が終了すると、該検出結果に基づき、いずれかの前記コード列に関するコード演奏練習用データを提示する。こうすると、ユーザは所望の楽曲において主に練習すべきコード列、つまりコードやコード遷移パターンなどを正確に知ることができ、前記コード列に関するコード演奏練習用データの提示に基づいて、主に練習すべきコード列の演奏操作方法を集中的に効率よく練習することができるようになる。【選択図】        図２
2004233864.tif 000002
【特許請求の範囲】
【請求項１】
任意の楽曲に関するデータを取得する取得手段と、
取得したデータに基づき、該楽曲中に出現する１又は複数の連続するコードからなるコード列毎の出現頻度を検出する検出手段と、
前記検出手段の検出結果に基づき、いずれかの前記コード列に関するコード演奏練習用データを提示する練習用データ提示手段と
を具備する演奏練習装置。
【請求項２】
前記検出手段は、楽曲中のコード進行を表すコード情報データに基づいてコード列毎の出現頻度を検出することを特徴とする請求項１に記載の演奏練習装置。
【請求項３】
コード列毎の出現頻度の検出条件を設定する検出条件設定手段を具えてなり、
前記検出手段は、該設定された検出条件に従ってコード列毎の出現頻度を検出することを特徴とする請求項１又は２に記載の演奏練習装置。
【請求項４】
前記検出したコード列毎の出現頻度をコード列と共に提示する提示手段と、
該提示されたコード列の中から任意のコード列を選択する選択手段とを具えてなり、
前記練習用データ提示手段は、前記選択されたコード列に関するコード演奏練習用データを提示することを特徴とする請求項１乃至３のいずれかに記載の演奏練習装置。
【請求項５】
コード列毎の出現頻度の提示条件を設定する提示条件設定手段を具えてなり、
前記提示手段は、該設定された提示条件に従って前記コード列毎の出現頻度を提示することを特徴とする請求項４に記載の演奏練習装置。
【請求項６】
コンピュータに、
任意の楽曲に関するデータを取得する手順と、
取得したデータに基づき、該楽曲中に出現する１又は複数の連続するコードからなるコード列毎の出現頻度を検出する手順と、
前記検出手段の検出結果に基づき、いずれかの前記コード列に関するコード演奏練習用データを提示する手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、所定楽器の演奏操作の習得を支援・補助する演奏練習装置及びプログラムに関する。特に、楽器のコード演奏操作を効率的に練習することのできるようにした演奏練習装置及びプログラムに関する。
【０００２】
【従来の技術】
【特許文献１】特開２０００−６６６７７号公報
【特許文献２】特開２０００−９９０１７号公報
楽器の演奏操作の習得、例えばギター等の弦楽器でのコード演奏操作（つまりコード弾き）などを習得する場合において、単に楽譜上にコード等が記された教本などを見て実際に楽器を演奏操作しながら段階的に習得していくことは特に初心者にとって非常に難しい。そこで、ユーザに対して例えばコード演奏の際に押さえるべきギターの弦の位置及び各弦を押さえるのに用いるべき指などを指示するコード・ポジションやギターの記譜法であるタブラチュア（ＴＡＢ譜）などをディスプレイ上に提示することにより、ユーザが所望の楽曲に関して当該楽器での演奏操作を習得することができるようにしたものが従来から知られている。こうしたものの一例としては、例えばコードのルート（例えば、Ｃ、Ｅ、Ｇ♯、Ｆ、Ａなどの音名）とコードタイプ（例えば、メジャー、マイナー、セブンス、オーギュメント、ディミニッシュなど）とを表示した「コード選択画面」を所定のディスプレイ上に表示しておき、該「コード選択画面」を用いてユーザにより適宜に選択されたコードのルートとコードタイプとを組み合わせることで１つのコードを特定し（例えば、ルート「Ｃ」とコードタイプ「メジャー」とが選択された場合には「Ｃメジャーコード」にコードを特定する）、該特定した１つのコードに関しての楽器演奏操作方法（例えば、コード・ポジションなど）をディスプレイ上に表示するようにしたものがある（例えば、上記特許文献１参照）。また、ユーザ所望の楽曲に対応した楽曲データ（当該楽曲のメロディや伴奏などの演奏データ）をＴＡＢ譜に変換して表示するようにしたものもある（例えば、上記特許文献２参照）。
【０００３】
【発明が解決しようとする課題】
ところで、所望の楽曲に関しての楽器の演奏操作を早く習得するためには、所望の楽曲中において数多く出現するコード（和音）やコード進行（コード遷移）などから順番に繰り返し練習するようにした方が効率的であってよい。しかし、従来においては、所望の楽曲中においてどのコード若しくはどのようなコード進行が数多くあるいは数少なく使用されているものであるかを知り、当該コードやコード進行に関する当該楽器の演奏操作を集中的に練習するには、ユーザ自らが楽曲中でどのようなコード又はコード進行がどれくらい使われているかをディスプレイ上に表示された楽譜などを見て分析・判断しなければならず、こうしたことはユーザにとって非常に面倒であり、また数え違いなどを起こし易いことから都合が悪い、という問題点があった。さらに、例え数多くあるいは数少なく出現するコードやコード進行が分かっているような場合であっても、所望の楽曲全体の進行に沿ってでしか練習することができなかったことから、数多くあるいは数少なく出現するコードやコード進行のみを集中的に繰り返して練習することが簡単にはできなかった、という問題点もあった。
【０００４】
本発明は上述の点に鑑みてなされたもので、楽曲中に存在するコード及びコード進行をカウントしてその結果をユーザ所望の形式で提示し、さらに各コードの演奏操作方法などを提示することによって、ユーザが所望の楽曲に関してのコード演奏を効率的に練習することのできるようにした演奏練習装置及びプログラムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明に係る演奏練習装置は、任意の楽曲に関するデータを取得する取得手段と、取得したデータに基づき、該楽曲中に出現する１又は複数の連続するコードからなるコード列毎の出現頻度を検出する検出手段と、前記検出手段の検出結果に基づき、いずれかの前記コード列に関するコード演奏練習用データを提示する練習用データ提示手段とを具備するものである。
【０００６】
この発明によると、任意の楽曲について自動的に該楽曲中に出現する１又は複数の連続するコードからなるコード列毎の出現頻度を検出し、該検出したいずれかのコード列に関するコード演奏練習用データを提示する。すなわち、任意の楽曲に関するデータを取得し、該取得したデータにおいて該楽曲中に出現する１又は複数の連続するコードからなるコード列毎の出現頻度を検出する。コード列毎の出現頻度の検出が終了すると、該検出結果に基づき、いずれかの前記コード列に関するコード演奏練習用データを提示する。こうすると、ユーザは所望の楽曲において主に練習すべきコード列、つまりコードやコード遷移パターンなどを正確に知ることができ、前記コード列に関するコード演奏練習用データの提示に基づいて、主に練習すべきコード列の演奏操作方法を集中的に効率よく練習することができるようになる。
【０００７】
本発明は、装置の発明として構成し実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【０００８】
【発明の実施の形態】以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【０００９】
図１は、この発明に係る演奏練習装置を適用した電子楽器の全体構成の一実施例を示したハード構成ブロック図である。本実施例に示す電子楽器は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータによって制御される。ＣＰＵ１は、この電子楽器全体の動作を制御する。このＣＰＵ１に対して、通信バス１Ｄ（例えばデータ及びアドレスバス）を介してＲＯＭ２、ＲＡＭ３、通信インタフェース（Ｉ／Ｆ）４、入力操作部５、表示部６、外部記憶装置７、音源８がそれぞれ接続されている。ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種制御プログラム（例えば、演奏練習処理（後述する図２参照）など）や各種データ等（例えば、楽曲データなどの楽曲に関するデータ）を格納する。ＲＡＭ３は、ＣＰＵ１が所定のプログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを一時的に記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。
【００１０】
通信インタフェース（Ｉ／Ｆ）４は、例えばＬＡＮやインターネット、電話回線等の有線あるいは無線の通信ネットワークに接続されており、該通信ネットワークを介して外部機器４Ａ等と接続され、当該外部機器４Ａから制御プログラムや各種データを電子楽器本体側に取り込むためのインタフェースである。こうした通信インタフェース４は、有線あるいは無線のものいずれかでなく双方を具えていてよい。入力操作部５は楽音の音高を選択するための複数のフレット及び複数の弦を備えたギターのネックのような形状をした弦楽器型の演奏操作子、あるいは演奏練習対象とする楽曲を選択するための選択スイッチなどである。上記弦楽器型の演奏操作子は楽音演奏のために使用できるのは勿論のこと、演奏練習の対象とする楽曲や音色（例えば、アコースティックギターやエレキギターなどの楽器の音色）を選択するための入力手段などとして使用することもできる。勿論、入力操作部５はこれら以外にも数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはディスプレイ６Ａに表示される所定のポインティングデバイスを操作するために用いるマウス、ロータリーエンコーダ、スライダーなどの各種操作子を含んでいてもよい。表示部６はコード出現頻度検出と結果表示のための各種条件を設定する「条件設定画面」（後述する図４参照）やコード出現頻度検出結果及び練習メニューを表示する「結果表示画面」（後述する図５参照）、あるいは選択された練習メニューに応じた表示（例えば、コードの押さえ方、五線譜やＴＡＢ譜などの表示）を、例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成されるディスプレイ６Ａに表示するのは勿論のこと、演奏練習可能な楽曲の一覧やＣＰＵ１の制御状態などの各種情報をディスプレイ６Ａに表示する。
【００１１】
外部記憶装置７は上記したＲＯＭ２と同様に、制御プログラムや各種データなどを記憶する。前記ＲＯＭ２に制御プログラムが記憶されていない場合、この外部記憶装置７（例えばハードディスク）に制御プログラムを記憶させておき、それを前記ＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置７はハードディスク（ＨＤ）に限られず、フレキシブルディスク（ＦＤ）、コンパクトディスク（ＣＤ−ＲＯＭ・ＣＤ−ＲＡＭ）、光磁気ディスク（ＭＯ）、あるいはＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等の着脱自在な様々な形態の外部記録媒体を利用する記憶装置であってもよい。あるいは、半導体メモリなどであってもよい。
【００１２】
音源８は複数のチャンネルで楽音信号の同時発生が可能であり、通信バス１Ｄを経由して与えられた楽曲データ中の演奏情報（例えば、ノートイベントなど）や演奏操作子の操作に応じて発生される演奏情報等を入力し、これらの演奏情報に基づいて楽音信号を発生する。音源８から発生された楽音信号は、アンプやスピーカなどを含むサウンドシステム８Ａから発音される。この音源８から発生された楽音信号に対して、効果回路など（図示せず）を用いて所定の効果を付与するようにしてもよい。楽曲データの形式はＭＩＤＩ形式のようなディジタル符号化されたものであってもよいし、ＰＣＭ、ＤＰＣＭ、ＡＤＰＣＭのような波形サンプルデータ方式からなるものであってもよい。この音源８とサウンドシステム８Ａの構成には、従来のいかなる構成を用いてもよい。例えば、音源８はＦＭ、ＰＣＭ、物理モデル、フォルマント合成等の各種楽音合成方式のいずれを採用してもよく、また専用のハードウェアで構成してもよいし、ＣＰＵ１によるソフトウェア処理で構成してもよい。
【００１３】
ＲＯＭ２や外部記憶装置７等に記憶され、楽器演奏練習の際に読み出されるユーザ所望の楽曲に対応する楽曲データ（例えば当該楽曲のメロディや伴奏などの演奏データ、以下同じ）は上記したように例えばスタンダードＭＩＤＩファイルなどのＭＩＤＩ形式のデータとして記述されていてよく、また当該楽曲中におけるコード進行を表す一連のコード情報を含む。その場合、楽曲データ中に含まれるコード情報は所定のメタイベント形式により記述されていてもよいし、コードを表す何らかの他の形式により記述されていてもよい。後述する演奏練習メイン処理（図２参照）においては、楽器演奏練習対象として指定されたユーザ所望の楽曲に対応する楽曲データからコード情報を読み出し、該読み出したコード情報に基づき楽曲中におけるコードやコード列の出現頻度を検出・カウントして結果を表示する（詳細については後述する）。なお、楽曲データは必ずしも当該データ中にコード情報を含んでいる必要はなく、楽曲データとは別にコード情報のみを独立に記憶したものであってもよい。例えばコード情報を含まない楽曲データを読み込んだ後に、シーケンサ等を用いてユーザが後付けでコード情報を付加すること等により、楽曲データとコード情報とが別々に記憶されているものであってもよい。
【００１４】
なお、上述した電子楽器において、演奏操作子はギターのネック形状などのような弦楽器の形態に限らず、鍵盤楽器等の形態であってもよい。また、電子楽器は入力操作部５やディスプレイ６Ａあるいは音源８などを１つの電子楽器本体に内蔵したものに限らず、それぞれが別々に構成され、ＭＩＤＩインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことは言うまでもない。さらに、本発明に係る演奏練習装置を適用する装置は電子楽器の形態に限らず、パーソナルコンピュータ、ＰＤＡや携帯電話等の携帯型通信端末、あるいはカラオケ装置やゲーム装置など、どのような形態の装置・機器に適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバ側に持たせ、端末とサーバとからなるシステム全体として所定の機能を実現するようにしてもよい。
【００１５】
図１に示した電子楽器においては、ユーザ所望の楽曲におけるコードやコード列の出現頻度を検出・カウントして、その結果をユーザの望む形式で提示することにより、ユーザによるコード演奏の練習が効率的に行われるように支援・補助することができるようになっている。こうした演奏練習処理は、図１に示した電子楽器のＣＰＵ１が演奏練習処理を実現する所定のプログラム（ソフトウエア）を実行することにより実施される。そこで、この「演奏練習処理」の処理動作について、図２を用いて説明する。図２は、「演奏練習処理」の一実施例を示したフローチャートである。以下、図２に示したフローチャートに従って、当該処理の処理動作を説明する。
【００１６】
ステップＳ１では、ユーザにより楽器の演奏操作を習得したい楽曲の選択（つまり選曲）が行われる。ステップＳ２では、前記選択された楽曲に対応する楽曲データの読み込みを行う。すなわち、ユーザによる所定の操作子の操作による楽曲の選択に応じて、ＲＯＭ２などに記憶されている多数の楽曲データの中から選択された楽曲に対応する楽曲データを読み出して、ＲＡＭ３の所定領域に一時記憶する。この楽曲の選択及び楽曲データの読み出しでは、ユーザによる複数の楽曲の選択に伴って複数の楽曲データを読み出してもよい。すなわち、コードやコード列の出現頻度は選択された楽曲に対応する楽曲データから検索・カウントされるが、１曲分の楽曲データからだけでなく、複数の楽曲それぞれに対応する複数の楽曲データから検索・カウントするようにしてもよい。ステップＳ３では、コード出現頻度検出と結果表示のための条件設定を行う。このコード出現頻度検出と結果表示のための条件設定は、後述する「条件設定画面」（図４参照）を用いて行われる。ステップＳ４では、「コード出現頻度検出処理」（図３参照）を実行する。該処理では、楽曲中における各コード（又は複数の連続するコード列）の出現頻度をカウントする。ステップＳ５では、コード出現頻度検出結果と練習メニューの表示を実行する。このコード出現頻度検出結果と練習メニューの表示は、後述する「結果表示画面」（図５参照）を用いて行われる。
【００１７】
ここで、図２に示した「演奏練習処理」において行われる「コード出現頻度検出処理」（図２のステップＳ４参照）について説明する。図３は、「コード出現頻度検出処理」の一実施例を示すフローチャートである。以下、この図３のフローチャートに従って、「コード出現頻度検出処理」の動作について説明する。ただし、この実施例においては連続する２つのコード列の出現頻度を検出・カウントするものを示した。
【００１８】
ステップＳ２１では、コード列の出現頻度をカウントするために用いられるワーキングメモリである結果用リスト、コード１（図ではＣｈｏｒｄ１と示す）、コード２（図ではＣｈｏｒｄ２と示す）を初期化する。ステップＳ２２では、楽曲データより最初のコード情報を読み出し、該読み出したコード情報をコード１に記憶する。ステップＳ２３では、コード１に有効なコード情報が記憶されたか否かを判定する。有効なコード情報が記憶されなかった場合、例えばコード情報がなかった場合などには（ステップＳ２３のＮＯ）、当該処理を終了する。有効なコード情報が記憶されている場合には（ステップＳ２３のＹＥＳ）、楽曲データより次のコード情報を読み出し、該読み出したコード情報をコード２に記憶する（ステップＳ２４）。例えば、最初のコード情報が「Ｅｍ」であり、次のコード情報が「Ｂ７」である場合には、コード１（Ｃｈｏｒｄ１）に「Ｅｍ」、コード２（Ｃｈｏｒｄ２）に「Ｂ７」がそれぞれ記憶される。
【００１９】
ステップＳ２５では、コード２に有効なコード情報が記憶されたか否かを判定する。コード２に有効なコード情報が記憶されたと判定した場合には（ステップＳ２５のＹＥＳ）、コード１からコード２の順に並んでいるコード列が既に結果用リスト内に存在するか否かを調べる（ステップＳ２６）。既に同じコード列が結果用リスト内に存在する場合には（ステップＳ２６のＹＥＳ）、結果用リスト内の「コード１からコード２」の出現頻度を１アップする（ステップＳ２７）。同じコード列が結果用リスト内に未だに存在しない場合には（ステップＳ２６のＮＯ）、結果用リスト内にコード列として「コード１からコード２」を追加し、当該コード列の出現頻度に１をセットする（ステップＳ２８）。ステップＳ２９では、コード１の内容をコード２の内容に変更してからコード２を初期化し（ステップＳ２９）、ステップＳ２４の処理へ戻って上記ステップＳ２４〜ステップＳ２９までの各処理を繰り返し実行する。
【００２０】
上記ステップＳ２５において、コード２に有効なコード情報が記憶されなかったと判定された場合、例えば楽曲が終了することから次のコード情報がない場合などには（ステップＳ２５のＮＯ）、結果用リストが初期状態のままであるか否かを判定する。結果用リストが初期状態のままである場合、すなわち結果用リスト内にコード列が一つも記憶されていない場合には（ステップＳ３０のＹＥＳ）、当該処理を終了する。結果用リストが初期状態のままでない場合、すなわち結果用リスト内にコード列が１つでも記憶されている場合には（ステップＳ３０のＮＯ）、結果用リスト内に記憶されているコード列を出現頻度の多い順（あるいは少ない順）にソートして（ステップＳ３１）、当該処理を終了する。以上のようにして、該「コード出現頻度検出処理」では楽曲データ中におけるコード情報に基づき、コード列毎に出現頻度を検出してカウントする処理を実行する。
【００２１】
なお、「コード出現頻度検出処理」におけるコード列のカウント方法は上記した実施例のように隣り合う全てのコードの組み合わせを検索してカウントすることに限らず、例えば２小節単位毎に区切った範囲毎にコード列を検索してカウントしていくようにしてもよい。また、楽曲データ中の一部の範囲を選択可能として、該選択された範囲内においてのみコードやコード列を検索してカウントするようにしてもよい。
【００２２】
図２の説明に戻って、ステップＳ６では「コード出現頻度検出処理」（ステップＳ４）によるコード出現頻度の検出をやり直すか否かを判定する。コード出現頻度の検出をやり直すと判定した場合には（ステップＳ６のＹＥＳ）、再度「条件設定画面」による条件設定（ステップＳ３）及びコード出現頻度検出処理（ステップＳ４）を実行してコード出現頻度の検出をやり直す。一方、コード出現頻度の検出をやり直さないと判定した場合には（ステップＳ６のＮＯ）、楽器の演奏練習を終了するか否かを判定する（ステップＳ７）。ユーザ選択済みの楽曲による楽器の演奏練習を終了しないと判定した場合には（ステップＳ７のＮＯ）、ユーザにより演奏練習対象とするコード列、及び該コード列の演奏練習を行うためにどのような練習支援・補助を行うかを決定する練習メニューの選択が「結果表示画面」（後述の図５参照）から行われたか否かを判定する（ステップＳ８）。ユーザによる練習コード列及び練習メニューの選択が行われていない場合には（ステップＳ８のＮＯ）、ステップＳ６の処理に戻る。
【００２３】
一方、ユーザによる練習コード列及び練習メニューの選択が行われている場合には（ステップＳ８のＹＥＳ）、選択された練習コード列及び練習メニューに応じて練習用データの生成と提示を実行する（ステップＳ９）。ここで生成される練習用データは選択されたコード列を練習するのに最適なコード演奏練習用のデータであり、選択されたコード列に基づいて全く別の楽曲データとして新たに生成されるデータ（例えば、４分音符や全音符などから構成され、１拍単位で数回ずつ同じコード列を弾くなどの何らかのリズムを持つ演奏データなど）、所望の楽曲に対応する楽曲データ中において選択されたコード列が頻繁に使用されている一部範囲の楽曲データのみからなるデータ、あるいは予めコード列毎に用意されている専用データ、などである。これらの練習用データの提示は、該生成された練習用データに基づいてコードの押さえ方、楽譜、ＴＡＢ譜などを表示することにより行われる。表示された練習用データに従っての楽器の演奏練習が終了すると（ステップＳ１０）、ステップＳ８の処理に戻って、他のコード列や練習メニューで楽器の演奏練習を行うか否かを選択させるなどして処理を続行する。
【００２４】
ステップＳ７において、当該楽曲による楽器の演奏練習を終了すると判定した場合には（ステップＳ７のＹＥＳ）、演奏練習対象とする楽曲を変更して他の楽曲での楽器の演奏練習を続行するか否かを判定する（ステップＳ１１）。楽曲を変更して楽器の演奏練習を続けると判定した場合には（ステップＳ１１のＹＥＳ）、ステップＳ１の処理に戻って上記各処理を繰り返し実行する。楽曲を変更して楽器の演奏練習を続けないと判定した場合には（ステップＳ１１のＮＯ）、当該処理を終了する。
【００２５】
次に、「条件設定画面」及び「結果表示画面」の具体的な実施例について、それぞれ図を用いて説明する。まず、「条件設定画面」について、図４を用いて説明する。図４は、「条件設定画面」の一実施例を示す概念図である。
この図４に示す図から理解できるように、「条件設定画面」では楽器の演奏練習を行う楽曲中におけるコード出現頻度を検出する対象としたい「コード数」Ｊ１と、コード出現頻度の検出結果を表示する際の「結果表示タイプ」Ｊ２とを選択的に設定することができるようになっている。コード数Ｊ１は楽曲データに含まれるカウントすべき連続する１乃至複数個のコードの個数を設定するための条件であって、該コード数Ｊ１において「１」は単独の１つのコード、「２」は連続する２つのコード、「３」は連続する３つのコードの組み合わせ毎に出現頻度をカウントするための設定条件である。例えば、楽曲データ中のコード進行が「Ｅｍ・Ｂ７・Ｅｍ・Ｇ・Ｄ・Ｇ・Ｅｍ・Ｇ・Ｄ・Ｃ」の順であるような場合に、コード数Ｊ１が「１」に設定された場合には、「Ｅｍ」の出現頻度が３回、「Ｂ７」の出現頻度が「１」回、「Ｇ」の出現頻度が「３」回、「Ｄ」の出現頻度が「２」回、「Ｃ」の出現頻度が「１」回のようにして、それぞれのコード毎に出現頻度がカウントされる。同じコード進行である場合においてコード数Ｊ１が「２」に設定された場合には、「ＥｍからＢ７」の出現頻度が「１」回、「Ｂ７からＥｍ」の出現頻度が「１」回、「ＥｍからＧ」の出現頻度が「２」回、「ＧからＤ」の出現頻度が「２」回、「ＤからＧ」の出現頻度が「１」回、「ＧからＥｍ」の出現頻度が「１」回、「ＤからＣ」の出現頻度が「１」回のようにして、互いに連続するコード毎に出現頻度がカウントされる。「結果表示タイプ」Ｊ２は、上記したようなコード出現頻度のカウント数に応じてカウント数の「多い順」や「少ない順」などの条件でコード出現頻度の検出結果を表示する際の条件を設定する。この実施例ではカウントすべき連続する１乃至複数個のコードの個数を設定するための条件として「１」が設定され、コード出現頻度の検出結果を表示する際の条件として「多い順」が設定されている例を示した。
【００２６】
次に、コード出現頻度の結果を表示する「結果表示画面」の具体的な実施例について、図５を用いて説明する。図５は、「結果表示画面」の一実施例を示す概念図である。
図５に示す図から理解できるように、「結果表示画面」では、上述した「条件設定画面」において設定された条件に従ってコード出現頻度検出した結果を表示する。例えば、楽曲データ中のコード進行が「Ｅｍ・Ｂ７・Ｅｍ・Ｇ・Ｄ・Ｇ・Ｅｍ・Ｇ・Ｄ・Ｃ」の順である場合に、上述した「条件設定画面」においてコード数Ｊ１が「１」かつ結果表示タイプＪ２が「多い順」に設定されている場合には、結果表示Ｋ１として、コード出現頻度の多い順つまり「Ｅｍ」「Ｇ」「Ｄ」「Ｂ７」「Ｃ」の順にコード名と出現頻度とが表示される。また、こうした結果表示Ｋ１と共に、練習メニューＫ２が表示される。ユーザはこの「結果表示画面」において集中的に練習したいコードを結果表示Ｋ１から指定することができるようになっており、またその際に望みの演奏練習支援・補助方法を練習メニューＫ２から選択することができる。この実施例では練習したいコードとして「Ｇ」が指定され、練習メニューとして「コードの押さえ方」が選択されている例を示した。表示される練習メニューＫ２の一例としては、コードの押さえ方を表示することでユーザが練習を進めていくことのできるもの、ＴＡＢ譜を表示することによりユーザがＴＡＢ譜を見ながら練習を進めていくことのできるもの、楽譜（例えば五線譜）を表示することによりユーザが楽譜を見ながら練習を進めていくことのできるものなどがある。勿論、練習メニューＫ２としてはこれら以外にもリスト形式やピアノロール形式での表示などがあってよい。
【００２７】
なお、この実施例では結果表示Ｋ１と練習メニューＫ２とを同時に表示するものを示したがこれに限らず、それぞれを別々に表示するようにしてもよいことは言うまでもない。
なお、コード出現頻度検出した結果の提示は、上記の実施例に示したように多い順や少ない順などの他に、例えば出現頻度が多い方から１番目と２番目と５番目などのようにしてユーザに指定された順に表示することによって実現するようにしてもよい。他にも、例えばユーザが苦手な（あるいは集中的に練習したい）コードを予め設定しておき、そのコードを含むコード列の出現頻度のみを検出してカウントした結果を表示するようにしてもよい。また、コード出現頻度の検出結果を表示でなく、音声でユーザに対して提示するようにしてもよい。
【００２８】
ここで、練習用データの提示として「コードの押さえ方」が選択された場合について簡単に説明する。「コードの押さえ方」が選択された場合、ディスプレイ上にはギターのネックにおける一部のフレットが表示される。そして、このフレット図において各コードを演奏する際に用いる弦を押さえる指と指で押さえるべき弦の位置を指し示す。例えば、各コードを演奏する際に弦を押さえるために用いる指の種類と各指で押さえるべき弦の位置とを１つの表示形式を用いて同時に表示する。一例として、斜線などを施した楕円の表示位置により各指で押さえるべき弦の位置を示し、該楕円内に表示した数字（例えば、人差し指に対し「１」、中指に対し「２」、薬指に対し「３」、小指に対し「４」のように、各指に対応するように数字が付される）により各弦を押さえるために用いる指の種類を示すようにする。例えば、「Ｃ」をギター演奏するためには、第３フレットの第２弦を人差し指で、第４フレットの第４弦を中指で、第５フレットの第５弦を薬指で各々押さえるようにすればよいことが、ディスプレイを見るだけでユーザは簡単に理解することができる。このようにすると、ユーザは楽器演奏時にディスプレイを参照するだけでよいことから、コードについての演奏方法の確認を素早く行うことができるようになる。
【００２９】
なお、ユーザに提示するコードの押さえ方は複数のコードの押さえ方を同時に表示するようにしてもよいし、一定時間毎にコードの押さえ方の表示を自動的に変更するようにしてもよい。また、コードの押さえ方の表示を自動的に変更するようにした場合に、表示の変更スピードをユーザが適宜に設定できるようにしてよい。
なお、ユーザに提示するコードの押さえ方は、各コードに対して何弦の何フレット目を押さえるべきなのかという位置情報を予め用意しておくだけでなく、所定のアルゴリズムを用いて位置情報を割り出すようにしてもよい。また、位置情報も同じ方式だけでなく、例えばローコード群（つまり１〜３フレット目までを用いて演奏する、開放弦を利用することの多い押さえ方）や、ハイコード群（つまり開放弦を利用せず、より高いフレットを用いて演奏する押さえ方）などのように、いくつかのタイプでそれぞれにコードの押さえ方があり、ユーザはこれらの中からコードの押さえ方を選択できるようにしてもよい。
なお、ユーザに提示するコードの押さえ方は、平面図であってもよいし、３次元の図であってもよい。これらの図はビットマップ形式などのデータとしてコード毎に予め用意しておいてもよいし、所定のプログラムを用いてその時々のコード名に応じて自動的に描画するようにしてもよい。
【００３０】
なお、楽器の演奏練習時において、ＴＡＢ譜や楽譜などで表示した練習用のデータを再生して楽音を発生させるようにしてもよい。また、楽器の演奏練習対象となっている楽曲に対応する楽曲データの一部の範囲を練習用のデータとした場合には、該範囲に対応する伴奏などの他のパートを再生して楽音を発生させるようにしてもよい。
なお、練習用のデータの提示は、出現頻度で並べられたコードやコード列をユーザが選択する度に切り替えて表示するようにしてもよいし、何らかの順番で、例えば１分間などの一定時間毎に切り替えるようにしてもよい。また、ユーザが表示に従って練習用データを正しく弾くことができたか否かを判定できるようにして、正しく弾くことができた場合には次のコードの練習用データを表示するようにしてもよい。
なお、練習用データの提示について、コードの押さえ方又はＴＡＢ譜又は楽譜のいずれかの表示のみを行うものの限らず、これらを順番に、若しくは同時に表示するようにしてもよい。どちらを先に表示するか、どちらを表示するかはデフォルト固定でもよいし、ユーザが選択できるようにしてもよい。
【００３１】
なお、上述した実施例においてはコードやコード列の出現頻度を検索してカウントするものを示したが、メロディラインにおける音の配列などを検索してカウントするものに適用してもよいことは言うまでもない。
なお、上述した実施例においては練習用のデータを自動的に生成して提示する例を示したがこれに限らず、練習用のデータを提示しないようにしてもよい。すなわち、上記「結果表示画面」においてコード出現頻度を検出した結果（結果表示Ｋ１）と共に練習メニューＫ２を表示することなく、ユーザは該「結果表示画面」において集中的に練習したいコードを結果表示Ｋ１から読み取って、ユーザ自身が望みの練習用のデータを考えて作成することができるようにしてあってもよい。また、こうした場合には、練習用のデータを自動作成するか否かをユーザが選択できるようにしてよい。
【００３２】
なお、楽曲データのフォーマットは、各イベントの発生時刻を１つ前のイベントからの時間で表した「イベント＋相対時間」、イベントの発生時刻を曲や小節内における絶対時間で表した「イベント＋絶対時間」、音符の音高と符長あるいは休符と休符長で表した「音高（休符）＋符長」、演奏の最小分解能毎にメモリの領域を確保し、イベントの発生する時刻に対応するメモリ領域にイベントを記憶した「ベタ方式」等、どのような形式であってもよい。
なお、メモリ上において、時系列の楽曲データが連続する領域に記憶されていてもよいし、飛び飛びの領域に散在して記憶されている楽曲データを、連続する楽曲データとして別途管理するようにしてもよい（すなわち、時系列的に連続するデータとして管理することができればよく、メモリ上で連続して記憶されているか否かは問題ではない）。
【００３３】
【発明の効果】
この発明によれば、楽曲中に存在するコード及びコード進行をカウントしてその結果をユーザ所望の形式で提示し、さらに各コードの演奏操作方法などを提示することから、ユーザは所望の楽曲に関してのコード演奏を効率的に練習することができるようになる、という効果を得る。
【図面の簡単な説明】
【図１】この発明に係る演奏練習装置を適用した電子楽器の全体構成の一実施例を示したハード構成ブロック図である。
【図２】演奏練習処理の一実施例を示したフローチャートである。
【図３】コード出現頻度検出処理の一実施例を示すフローチャートである。
【図４】条件設定画面の一実施例を示す概念図である。
【図５】結果表示画面の一実施例を示す概念図である。
【符号の説明】
１…ＣＰＵ、２…ＲＯＭ、３…ＲＡＭ、４…通信インタフェース、４Ａ…外部機器、５…入力操作部、６…表示部、６Ａ…ディスプレイ、７…外部記憶装置、８…音源、８Ａ…サウンドシステム、１Ｄ…通信バス
【図１】
2004233864.tif 000003
【図２】
2004233864.tif 000004
【図３】
2004233864.tif 000005
【図４】
2004233864.tif 000006
【図５】
2004233864.tif 000007