(57)【要約】      （修正有）【課題】演奏構成を自由かつ簡単に組むことが可能となる演奏データ生成装置を提供する。【解決手段】音楽コンテンツデータとして、コード譜データが取得され、これに対応する演奏構成が読み出され、表示画面９ａが表示された状態で、ユーザが演奏開始を指示すると、演奏構成の「演奏順」に従って各構成データによって指定される伴奏パターンデータが演奏されて行く。最初の構成データでは、ある伴奏パターンデータの演奏が指定され、コード譜データの“１３”小節と“１６”小節がそれぞれ「開始位置」と「終了位置」に指定され、「繰り返し回数」として“１”回、さらに「テンポ」として“１２０”が指定されている。このため、当該伴奏パターンデータが“Ｃｍａｊ”，“Ｃｍａｊ”，“Ｆｍａｊ  Ｃｍａｊ”および“Ｇ７  Ｃｍａｊ”のコード進行に合わせて変換され、変換後の伴奏パターンデータがテンポ“１２０”で“１”回演奏される。【選択図】図２
2015075574.tif 000002
【特許請求の範囲】
【請求項１】
音楽コンテンツデータを取得する取得手段と、
複数の構成からなる演奏構成を指定する指定手段と、
前記指定手段によって指定された演奏構成の各構成について、演奏条件を設定する設定手段と、
演奏データの生成開始の指示に応じて、前記指定された演奏構成の各構成を当該設定された演奏条件に従わせつつ、前記取得手段によって取得された音楽コンテンツデータを基に、演奏データを生成する生成手段と
を有することを特徴とする演奏データ生成装置。
【請求項２】
前記取得された音楽コンテンツデータを表示する表示手段と、
前記表示手段上に表示された音楽コンテンツデータ中、前記生成手段によって生成されている演奏データの基になっている部分の表示態様を変更するように前記表示手段を制御する制御手段と
をさらに有することを特徴とする請求項１に記載の演奏データ生成装置。
【請求項３】
前記生成手段が演奏データの生成に用いている現在の構成を次の構成に移行させる指示がなされたときには、前記生成手段は、当該現在の構成を用いた演奏データの生成を終了させた後、前記指示された次の構成を当該次の構成に設定された演奏条件に従わせつつ、前記取得された音楽コンテンツデータを基に、演奏データを生成することを特徴とする請求項１または２に記載の演奏データ生成装置。
【請求項４】
演奏データ生成方法をコンピュータに実行させるためのプログラムであって、
前記演奏データ生成方法は、
演奏データの生成開始の指示に応じて、複数の構成からなる演奏構成を指定する指定手段によって指定された演奏構成の各構成を当該設定された演奏条件に従わせつつ、取得手段によって取得された音楽コンテンツデータを基に、演奏データを生成する生成ステップを有する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音楽コンテンツデータに基づいて演奏データを生成する演奏データ生成装置および演奏データ生成方法を実現するためのプログラムに関する。
【背景技術】
【０００２】
演奏データを生成する演奏データ生成装置は、従来から知られている。
【０００３】
このような装置として、演奏データの一種である伴奏スタイルシーケンスデータを作成（編集）するようにした演奏データ編集装置がある（たとえば、特許文献１参照）。伴奏スタイルシーケンスデータは、伴奏スタイルデータ内のセクションを時系列順に並べて構成され、メロディなどのソングデータの自動演奏時に、その自動伴奏を行うために用いられる。この従来の演奏データ編集装置によって伴奏スタイルシーケンスデータを作成する場合、特許文献１の図６に示されるように、ユーザは、ソングデータ中、伴奏スタイルデータを挿入したい区間（スタイルデータの発音時間）を指定すると、その指定区間が破線で描かれたブロックで表示される。そして、ユーザがスタイル選択画面にて、スタイル名とセクション名を選択すると、特許文献１の図８に示されるように、このブロック内に選択されたセクション名が表示され、ブロックの輪郭が実線で表示される。このようにして作成された各ブロックの示す、ソングデータ中の区間（開始時間から終了時間）で当該選択された伴奏スタイルのセクションによる自動伴奏が、ソングデータによる楽曲再生に合わせてなされる。
【０００４】
また、演奏データを作成あるいは編集する際にユーザの使い勝手のよい表示を行うようにした演奏データ処理装置もある（たとえば、特許文献２参照）。この従来の演奏データ処理装置では、特許文献２の図１０に示されるように、横軸を時間とし、縦軸をパート（トラック）とした表示画面に、演奏データの存在する区間がパート別に矩形で表示される。そして、トラックの最上段に、再生を管理するためのマスタトラックが設けられ、ユーザは、マスタートラック上、小節線の位置に合わせて反復記号やマーカを設定することにより、設定区間の繰り返し演奏が可能になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許３３８１５８１号公報
【特許文献２】特許３７４０９０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、前記従来の演奏データ編集装置では、ソングデータが時系列に表示された画面上で、伴奏スタイルのセクションが選択されたブロックを時系列に配置して行くため、ユーザは、１曲を通して（つまり、ソングデータ全体に亘って）各ブロックに選択設定された伴奏スタイルのセクションの配置関係を一度に見ることができなかった。このため、ユーザは、同じメロディに対して同じ伴奏スタイルのセクションを選択設定した区間（ブロック）を確認するのにさえ、表示画面を時間軸方向にスクロールして行かなければならなかった。
【０００７】
また、既に選択設定された伴奏スタイルのセクションと同じ伴奏スタイルのセクションを、同じソングデータ中の場所を変更して設定したい場合があるが、この場合に、前記従来の演奏データ編集装置では、ユーザは、該当する区間を表示切り替えしながら何度も探して設定するという作業を行わなければならず、作業に手間がかかる。
【０００８】
さらに前記従来の演奏データ編集装置では、各ブロックに選択設定された伴奏スタイルのセクションを自動伴奏データとして展開するには、コード情報が必要であるので、ユーザは、１曲分のコード情報を１つ１つ入力して行かなければならなかった。
【０００９】
一方、前記従来の演奏データ処理装置では、反復記号などにより演奏データを再生する際の繰り返し区間を指定することができたとしても、楽譜に準じた反復記号をユーザ自身が入力するには、ユーザは、記譜の知識がある程度必要となってしまう。また、繰り返し区間の設定や順番は楽譜のルールに基づくため、ユーザが自由な区間設定および順番設定を望んだとしても、その要望に応えることができないことがある。あるいは、その要望に応えることができたとしても、その要望を実現するには、あらゆる反復記号を駆使して複雑な組み合わせをしなければならない場合も考えられる。この場合には、その表示も難解なものになる虞がある。
【００１０】
本発明は、この点に着目してなされたものであり、ユーザの望む演奏データを簡単な操作で得るとともに、楽譜の知識をほとんど持ち合わせていないユーザであっても、演奏構成を自由かつ簡単に組むことが可能となる演奏データ生成装置および演奏データ生成方法を実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、請求項１に記載の演奏データ生成装置は、音楽コンテンツデータを取得する取得手段と、複数の構成からなる演奏構成を指定する指定手段と、前記指定手段によって指定された演奏構成の各構成について、演奏条件を設定する設定手段と、演奏データの生成開始の指示に応じて、前記指定された演奏構成の各構成を当該設定された演奏条件に従わせつつ、前記取得手段によって取得された音楽コンテンツデータを基に、演奏データを生成する生成手段とを有することを特徴とする。
【００１２】
請求項２に記載の演奏データ生成装置は、請求項１の演奏データ生成装置において、前記取得された音楽コンテンツデータを表示する表示手段と、前記表示手段上に表示された音楽コンテンツデータ中、前記生成手段によって生成されている演奏データの基になっている部分の表示態様を変更するように前記表示手段を制御する制御手段とをさらに有することを特徴とする。
【００１３】
請求項３に記載の演奏データ生成装置は、請求項１または２の演奏データ生成装置において、前記生成手段が演奏データの生成に用いている現在の構成を次の構成に移行させる指示がなされたときには、前記生成手段は、当該現在の構成を用いた演奏データの生成を終了させた後、前記指示された次の構成を当該次の構成に設定された演奏条件に従わせつつ、前記取得された音楽コンテンツデータを基に、演奏データを生成することを特徴とする。
【００１４】
上記目的を達成するため、請求項４に記載のプログラムは、請求項１と同様の技術的思想によって実現できる。
【発明の効果】
【００１５】
請求項１または４に記載の発明によれば、演奏データの生成開始の指示に応じて、指定手段によって指定された演奏構成の各構成を当該設定された演奏条件に従わせつつ、取得手段によって取得された音楽コンテンツデータを基に、演奏データが生成されるので、つまり、音楽コンテンツデータの取得、演奏構成の指定および演奏構成の各構成に対する演奏条件の設定という簡単な操作だけで、自動的に演奏データが生成されるので、ユーザの望む演奏データを簡単な操作で得ることができる。また、上記各操作に楽譜の知識はほとんど必要ないので、楽譜の知識をほとんど持ち合わせていないユーザであっても、演奏構成を自由かつ簡単に組むことができる。
【００１６】
請求項２に記載の発明によれば、表示手段上に表示された音楽コンテンツデータ中、生成手段によって生成されている演奏データの基になっている部分の表示態様を変更して表示されるので、ユーザは、音楽コンテンツデータのどの部分が現在生成中の演奏データの基礎になっているかを一目で知ることができる。また、音楽コンテンツデータの表示が対象曲全体に亘っている場合には、ユーザは、この表示から曲全体のイメージを的確に把握することができる。
【００１７】
請求項３に記載の発明によれば、生成手段が演奏データの生成に用いている現在の構成を次の構成に移行させる指示がなされたときには、当該現在の構成を用いた演奏データの生成を終了させた後、前記指示された次の構成を当該次の構成に設定された演奏条件に従わせつつ、前記取得された音楽コンテンツデータを基に、演奏データが生成されるので、ユーザの指示に応じて変更された演奏構成で、演奏データを生成することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施の形態に係る演奏データ生成装置の概略構成を示すブロック図である。
【図２】演奏データ生成の基礎とするために取得した音楽コンテンツデータの一例を図１中の表示部に表示させたときの表示画面を示す図である。
【図３】生成する演奏データの演奏構成の一例を図１の表示部に表示させたときの表示画面を示す図である。
【図４Ａ】図１の演奏データ生成装置、特にＣＰＵが実行する自動伴奏データ生成処理の手順を示すフローチャートである。
【図４Ｂ】図４Ａの自動伴奏データ生成処理の続きの手順を示すフローチャートである。
【図５】図４Ｂ中の再生位置管理処理の詳細な手順を示すフローチャートである。
【図６】図４Ｂ中の再生処理の詳細な手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２０】
図１は、本発明の一実施の形態に係る演奏データ生成装置の概略構成を示すブロック図である。
【００２１】
同図に示すように、本実施の形態の演奏データ生成装置は、ユーザの演奏操作に応じた演奏情報（音声情報も含む）を入力する演奏入力部１と、各種情報を入力するための複数のスイッチを含む設定操作子２と、演奏入力部１から入力された演奏情報を電気信号に変換して装置内に取り込む入力インターフェース（Ｉ／Ｆ）３と、設定操作子２の操作状態を検出する検出回路４と、装置全体の制御を司るＣＰＵ（central processing unit）５と、該ＣＰＵ５が実行する制御プログラムや各種テーブルデータ等を記憶するＲＯＭ（read only memory）６と、演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ（random access memory）７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえばＬＣＤ（liquid crystal display）およびＬＥＤ（light emitting diode）等を備えた表示部９と、前記制御プログラムを含む各種アプリケーションプログラムや各種音楽コンテンツデータ、各種演奏構成、各種伴奏パターンデータ、各種楽曲データ（ソングデータ）、各種データ等を記憶する記憶装置１０と、外部記憶装置１００を接続し、この外部記憶装置１００から音楽コンテンツデータや演奏構成等を取得するための通信インターフェース（Ｉ／Ｆ）１１と、オーディオデータを再生して楽音波形信号を生成するオーディオ再生部１２と、入力されたＭＩＤＩ（musical instrument digital interface）データ（イベントデータ）に基づいて楽音波形信号を生成するＭＩＤＩ音源部１３と、オーディオ再生部１２およびＭＩＤＩ音源部１３から供給される楽音波形信号に各種効果を付与するとともに混合（加算）して出力する楽音制御回路１４と、この楽音制御回路１４からの楽音信号を音響に変換する、たとえば、ＤＡＣ（digital-to-analog converter）やアンプ、スピーカ等のサウンドシステム１５とにより構成されている。
【００２２】
上記構成要素３〜１４は、バス１６を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、通信Ｉ／Ｆ１１には外部記憶装置１００が接続され、楽音制御回路１４にはオーディオ再生部１２、ＭＩＤＩ音源部１３およびサウンドシステム１５が接続されている。
【００２３】
演奏入力部１は、ユーザの押離鍵操作に応じて音高情報および強度情報を含む押離鍵情報を入力する鍵盤や、ユーザが発した音声を集音してアナログ音声信号に変換するマイクロフォン（以下、「マイク」と略して言う）等によって構成されている。
【００２４】
入力Ｉ／Ｆ３は、鍵盤から入力された押離鍵情報を演奏データ、たとえばＭＩＤＩデータ（イベントデータ）に変換して、イベントデータを一時的に保存するためのイベントバッファ（図示せず）に格納したり、マイクから入力されたアナログ音声信号をデジタル音声信号（音声データ）に変換して、音声データを一時的に保存するための音声データバッファ（図示せず）に格納したりする。
【００２５】
記憶装置１０は、たとえば、フレキシブルディスク（ＦＤ）、ハードディスク（ＨＤ）、ＣＤ−ＲＯＭ、ＤＶＤ（digital versatile disc）、光磁気ディスク（ＭＯ）および半導体メモリなどの記憶媒体とその駆動装置である。記憶媒体は駆動装置から着脱可能であってもよいし、記憶装置１０自体が本実施の形態の演奏データ生成装置から着脱可能であってもよい。あるいは、記憶媒体も記憶装置１０も着脱不可能であってもよい。なお記憶装置１０（の記憶媒体）には、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、この記憶装置１０に制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００２６】
通信Ｉ／Ｆ１１としては、たとえば、ＵＳＢ（universal serial bus）やＩＥＥＥ１３９４などの汎用近距離有線Ｉ／Ｆ、Ｅｔｈｅｒｎｅｔ（登録商標）などの汎用ネットワークＩ／Ｆ、無線ＬＡＮ（local area network）やＢｌｕｅｔｏｏｔｈ（登録商標）などの汎用近距離無線Ｉ／Ｆを挙げることができる。本実施の形態では、通信Ｉ／Ｆ１１としてＥｔｈｅｒｎｅｔを採用し、通信Ｉ／Ｆ１１には、インターネット上の外部記憶装置１００、たとえば、サーバコンピュータに接続された外部記憶装置１００が接続されている。サーバコンピュータ（の外部記憶装置１００）は、本実施の形態では、音楽コンテンツデータや演奏構成の供給元として機能するが、これに加えて、記憶装置１０に前記各プログラムや各種パラメータが記憶されていなければ、その供給元として機能させてもよい。この場合、クライアントとなる演奏データ生成装置は、通信Ｉ／Ｆ１１および通信ネットワークを介してサーバコンピュータへとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワークを介して演奏データ生成装置へと配信し、演奏データ生成装置が通信Ｉ／Ｆ１１を介して、これらプログラムやパラメータを受信して記憶装置１０に蓄積することにより、ダウンロードが完了する。
【００２７】
オーディオ再生部１２は、複数のトラックを備え、トラック毎に楽音波形信号を同時に生成することができるように構成されている。オーディオ再生部１２は、オーディオデータをトラック毎（パート毎）に書き込むことができる一時記憶部（図示せず）を備えている。この一時記憶部は、本実施の形態では、オーディオデータを古く書き込まれた順に読み出し、読み出した分だけ空き領域が増加するＦＩＦＯ（First-In First-Out）メモリを採用している。そしてオーディオ再生部１２は、所定の読み出し速度（たとえば、所定のテンポに応じた速度）で一時記憶部からオーディオデータを読み出して楽音波形信号を生成する。したがって、一時記憶部へのオーディオデータの書き込み速度を変更することにより、所定の範囲内で任意のテンポの楽音波形信号を生成することができる。ただし、オーディオデータの書き込み速度を単純に変更しただけでは、生成後の楽音波形信号の音高が元のオーディオデータの音高と変わってしまうので、当該書き込み速度を変更したオーディオデータに対してタイムストレッチ処理を施した後に、一時記憶部へ書き込む必要がある。なお、タイムストレッチ処理は、一般的によく使われており、本実施の形態でも、公知のものを使用すればよいので、その処理内容についての説明は省略する。
【００２８】
ＭＩＤＩ音源部１３も、複数のトラックを備え、トラック毎に楽音波形信号を同時に生成することができるように構成されている。ＭＩＤＩ音源部１３は、たとえば、ＲＯＭ６に予め記憶された制御プログラムをＣＰＵ５に実行させることによって実現され、前述のように、入力されたＭＩＤＩデータ（イベントデータ）に含まれる各種情報に基づいて楽音波形信号を生成する。なお、ＭＩＤＩ音源部１３は、このようにソフトウェアのみによって実現されるものに限らず、ハードウェアのみによって実現してもよいし、一部はソフトウェアにより、残りはハードウェアによって実現してもよい。さらに、楽音波形信号の生成方式も、波形メモリ方式やＦＭ方式、物理モデル方式など、楽音波形信号を生成できるものであれば、どのような方式を採用してもよい。
【００２９】
なお、本実施の形態の演奏データ生成装置は、上述の構成から分かるように電子鍵盤楽器上に構築されたものであるが、これに限らず、鍵盤を外部接続した汎用的なパーソナルコンピュータ上に構築してもよい。また、鍵盤を必須の構成とせずに本発明を実現できるので、弦楽器タイプや管楽器タイプ等の形態を採用するようにしてもよい。さらに電子楽器に限らず、カラオケ機器やゲーム機器、通信機器などの電子機器にも本発明を適用することができる。
【００３０】
図２は、演奏データ生成の基礎とするために取得した音楽コンテンツデータの一例を表示部９のＬＣＤに表示させたときの表示画面９ａを示す図であり、音楽コンテンツデータとして、コード譜データが挙げられている。
【００３１】
図示例のコード譜データには、ある曲の３２小節分のコード進行列に対し、まずその中のある数小節分（たとえば、第１３小節から第１６小節までの４小節分）
のコード進行をどのパートが何回、どの伴奏スタイルデータ（のどのセクション）で演奏し、続いてその３２小節中のどの区間のコード進行をどのパートが何回、どの伴奏スタイルデータ（のどのセクション）で演奏し、…などの演奏構成を自由に設定できるようになっている。音楽コンテンツデータがコード譜データであるということは、音楽コンテンツデータは、これを用いて表示すると図２のようなコード譜が表示されるという意味である。つまり、音楽コンテンツデータは、そのまま表示部９に供給すると、コード譜が表示される種の画像データである必要はなく、コード譜を表示可能なコード進行列を規定するものであればよい。その具体例としては、文字列か数値か記号、あるいはこれらの組み合わせで、コード進行列を構成する各コードのコードネームを特定できる情報がそれぞれ、その発生タイミングを示すタイミング情報とセットになって記憶されているデータが挙げられる。また、コード進行とタイミング情報の列がデータで供給されていない場合には、つまり、たとえば、コード譜を印刷するためのテキストデータで供給されている場合には、このテキストデータを読み込み、これを解析することにより、コード進行とタイミング情報の列を抽出するようにしてもよい。
【００３２】
音楽コンテンツデータは、コード譜データ以外にも、たとえば、演奏データや画像データ列、文字列データ列、記号データ列、あるいはこれらの組み合わせであってもよい。いずれの場合も、名前やＩＤ（identification）などでユーザが指定できるようになっている必要がある。また、ユーザがその場で作成した音楽コンテンツデータであってもよい。なお、音楽コンテンツデータが演奏データの場合は、楽譜の態様で表示すればよい。
【００３３】
演奏データの具体例としては、ＭＩＤＩデータかオーディオデータで、メロディパート／コードパート／ベースパート／リズムパート／その他のパートなどの１つのパートか複数パートの組み合わせを挙げることができる。
【００３４】
画像データ列の具体例としては、写真やイラストなどの画像データの列が表示順に記憶されているものを挙げることができる。各画像データには、表示すべきタイミング情報が対応付けて記憶されていたり、あるいは、たとえば１０秒毎や１小節毎になどの表示すべきタイミングを検出する基になるルールが画像データ列に対応付けられて記憶されていたりして、各画像データの表示タイミングが確定できるようになっている必要がある。この表示タイミングは、画像データ列を指定する際に、ユーザが自由に設定できるようになっていてもよい。
【００３５】
文字列データ列の具体例としては、歌詞データ（語句単位、文章単位、フレーズ単位など）列やタイトル列（楽曲名、文書名、画像名など）、キーワード列などを挙げることができる。各歌詞データ／タイトル／キーワードに対応付けて、それぞれが表示されるべきタイミング情報が記憶される。ただし歌詞データ列以外では、画像データ列と同様に、表示の時間間隔を決めるルールにより各表示タイミングが検出される仕組みであってもよい。
【００３６】
記号データ列の具体例としては、歌詞データやタイトルやキーワードをそれぞれ特定する記号列が記憶されているものを挙げることができる。各記号と対応するデータは、たとえばテーブルデータなどによって対応付けられる。テーブルデータは、装置内（のＲＯＭ６や記憶装置１０）に予め記憶されたものや、ユーザが新規に作成したものなどが考えられる。表示すべきタイミング情報は、上記文字列データ列についてのものと同様のものを用いればよい。
【００３７】
音楽コンテンツデータは、本実施の形態では、記憶装置１０（またはＲＯＭ６）に各種音楽コンテンツデータが記憶され、その中からユーザが選択するものとするが、これに限らず、記憶装置１０内に、ユーザの好みの音楽コンテンツデータがないなどの事情がある場合には、通信Ｉ／Ｆ１１を介して外部記憶装置１００から取得するようにしてもよい。
【００３８】
図３は、生成する演奏データの演奏構成の一例を表示部９のＬＣＤに表示させたときの表示画面９ｂを示す図である。図示例の演奏構成は、図２の音楽コンテンツデータに対応して作成されたものである。
【００３９】
演奏構成は、演奏条件を設定する構成データを１つ以上登録できるようにしたものであり、本実施の形態では図３に示すように、イントロ（Intro）からエンディング（Ending）に至るまで複数の演奏シーンを表す構成データが登録されている。各構成データは、名前やＩＤ、シリアル番号などの識別情報と、演奏条件を表す情報によって構成されている。図示例の各構成データは、演奏条件として、「伴奏スタイル名」、「セクション名」、「演奏者」、「開始位置」、「終了位置」、「繰り返し回数」、「テンポ」および「演奏順」の各項目を設定できるようになっている。
【００４０】
「伴奏スタイル名」は、演奏目的の伴奏スタイルデータの名称であり、「セクション名」は、当該伴奏スタイルデータを構成する複数のセクションのうちのいずれか１つの名称である。記憶装置１０や外部記憶装置１００には、名称の異なる数多くの伴奏スタイルデータが記憶され、各伴奏スタイルデータは、名称の異なる複数のセクションにそれぞれ属する伴奏パターンデータによって構成されているので、「伴奏スタイル名」と「セクション名」が決まると、演奏すべき伴奏パターンデータが一意的に決まる。各伴奏パターンデータは、１つ以上のパートからなり、各パートは、本実施の形態では、ＭＩＤＩデータおよびオーディオデータのうちのいずれかによって構成されている。したがって、複数のパートからなる伴奏パターンデータであれば、ＭＩＤＩデータからなるパート（以下、「ＭＩＤＩパート」という）とオーディオデータからなるパート（以下、「オーディオパート」という）が混在するものがある。もちろん、複数のパートからなる伴奏パターンデータであっても、ＭＩＤＩパートのみ、あるいはオーディオパートのみからなるものもあり得る。さらに、１つのパートにＭＩＤＩデータとオーディオデータが混在するものも考えられるが、このような構成の伴奏パターンデータについての再生処理は複雑化するので、本実施の形態では説明の都合上、このような構成の伴奏パターンデータを取り扱わない。また、伴奏パターンデータを構成するデータのフォーマットも、ＭＩＤＩ形式とオーディオ形式に限らず、他の形式も考えられるが、これも説明の都合上、本実施の形態で扱う伴奏パターンデータは、ＭＩＤＩデータおよび／またはオーディオデータからなるものに限るとする。
【００４１】
「演奏者」は、自動伴奏に合わせて実際に演奏する人を意味する。
【００４２】
「開始位置」は、対応する（ここでは、図２の）音楽コンテンツデータ中の演奏開始位置を示し、「終了位置」は、当該音楽コンテンツデータ中の演奏終了位置を示している。なお、図３の例では、「開始位置」も「終了位置」も小節番号で表現しているが、これに限らず、フレーズ記号（番号）で表現してもよいし、拍単位や演奏時間で表現してもよい。
【００４３】
「繰り返し回数」は、当該構成データによって指定される伴奏パターンデータの演奏を繰り返す回数を示し、「Ｎ以下」（ただし、“Ｎ”は“２”以上の整数）は、「最大Ｎ回繰り返す」ことを意味し、Ｎ回繰り返される前に演奏者から次の構成データへの移行指示があると、終了位置まで演奏した後、次の構成データに移行する。なお“Ｎ”自体は、デフォルトで、たとえば“５”などに設定されていてもよい。また、図示例の他に、「未定」（移行指示があるまで当該伴奏パターンデータの演奏を繰り返す）や「Ｎ回以上」（まず当該伴奏パターンデータの演奏をＮ回繰り返し、その後は移行指示があるまで当該伴奏パターンデータの演奏を繰り返す）なども考えられる。
【００４４】
「テンポ」は、当該構成データによって指定される伴奏パターンデータを再生するテンポを示し、本実施の形態では、１分間当たりの拍数（ＢＰＭ）で表現している。
【００４５】
「演奏順」は、当該構成データの演奏構成内での演奏順序を示すが、構成データの演奏順が常に、演奏構成への登録順である場合には、「演奏順」の項目を設ける必要はない。また「演奏順」として、当該構成データを演奏構成内で何番目に演奏するかを示す数値ではなく、当該構成データの次に移行させるべき構成データを示すポインタを入れるようにしてもよい。図３の演奏構成では、登録された構成データはすべて、演奏対象となっているが、これに限らず、登録された構成データであっても、演奏対象としない設定ができるようにしてもよい。具体的には、演奏条件として、演奏するかどうかのフラグ的な情報を設定できる項目を各構成データに追加することが考えられる。この項目に「演奏しない」という設定がなされていた場合に、当該構成データが演奏対象になると、ただちにその次に演奏対象になっている構成データに移行するようにすればよい。
【００４６】
なお、構成データによって指定される伴奏パターンデータが複数のパートからなるものである場合、そのすべてのパートを演奏（再生）対象にするのではなく、その一部を対象にできるように、演奏条件の中に「再生パート」の項目を追加するようにしてもよい。
【００４７】
演奏構成に登録される構成データの識別情報は、図３の例のように、演奏シーンを表すものに限らず、ユーザ演奏や自動演奏などによって発生する楽音に付与する効果や、楽曲名やフレーズ名を表すものであってもよい。
【００４８】
構成データの識別情報が付与する効果（ユーザ設定かデフォルト設定）を表すものである場合、演奏条件としては、たとえば、ボリューム値やエフェクト名やパン情報、音楽コンテンツデータにおける「開始位置」と「終了位置」（あるいは、音楽コンテンツデータ内の対応する音符やコードのデータ）、「繰り返し回数」および「再生テンポ」などが設定される。
【００４９】
構成データの識別情報が楽曲名やフレーズ名を表すものである場合、演奏条件としては、たとえば、識別情報に対応する楽曲／フレーズの演奏データを特定する情報もしくは演奏データ実体、音楽コンテンツデータにおける「開始位置」と「終了位置」、「繰り返し回数」および「再生テンポ」などが設定される。
【００５０】
演奏条件としてさらに、次の構成データに移行する際にフィル（Fill）を自動的に挿入するかどうかの条件（ＯＮ／ＯＦＦ）を追加してもよい。あるいは、繰り返す直前の小節をフィルにするようにしてもよい。たとえば、ある伴奏スタイルデータの“Main A”セクションで数回繰り返す構成データが再生対象になっている場合、繰り返す直前の終了位置小節では同じ伴奏スタイルデータの“FillIn AA”が再生され、繰り返し回数の再生を行ったときの終了位置小節では次に移行する構成データの指定するセクションタイプ（AやB）に合わせた“FillIn”を再生する。たとえば、次に移行するセクションが“Main B”の場合は“FillIn AB”を再生すると、より自然な構成変化となる。
【００５１】
後述する図４以降の説明で、たとえば（２ｇ）やステップＳ７あるいは図５のステップＳ４０などで、これから使う予定の伴奏パターンデータを用意する際に（構成データの演奏条件による）、終了位置小節で使用する“FillIn”セクションの伴奏パターンデータも一緒に用意して、終了位置の小節で読み出す伴奏パターンデータを切り替えるようにすれば、フィルが自動で入るようになる。
【００５２】
以上のように構成された演奏データ生成装置が実行する制御処理を、まず図２および図３を参照してその概要を説明し、次に図４〜図６を参照して詳細に説明する。
【００５３】
音楽コンテンツデータ、つまり図２のコード譜データが取得され、このコード譜データに対応する演奏構成が読み出され、たとえば表示画面９ａが表示部９のＬＣＤ上に表示された状態で、ユーザが演奏開始を指示すると、ＣＰＵ５は、演奏構成の「演奏順」に従って各構成データによって指定される伴奏パターンデータを演奏して行く。図３の演奏構成では、まず構成名“Intro”の構成データによって指定される伴奏パターンデータが演奏される。この構成データでは、伴奏スタイル名“Pop1”でセクション名“Intro C”の伴奏パターンデータの演奏が指定され、図２の音楽コンテンツデータの“１３”小節と“１６”小節がそれぞれ「開始位置」と「終了位置」に指定され、「繰り返し回数」として“１”回、さらに「テンポ」として“１２０”が指定されている。このためＣＰＵ５は、当該伴奏パターンデータを“Ｃｍａｊ”，“Ｃｍａｊ”，“Ｆｍａｊ  Ｃｍａｊ”および“Ｇ７  Ｃｍａｊ”のコード進行（図２のコード譜データの第４段目のコード進行）に合わせて変換し、変換後の伴奏パターンデータをテンポ“１２０”で“１”回演奏する。このときＣＰＵ５は、コード譜表示（表示画面９ａ）上、現在演奏中の小節（図示例では、“｜”から次の“｜”までの区間が１小節に相当する）を「再生中」の表示態様（図示例では「斜線」の施された矩形状の表示態様であるが、これは図面の描き易さを考慮してのものであり、ハイライト表示であれば、表示態様はどのようなものであってもよい）に切り替える。これにより、「再生中」の表示態様が第１３小節から第１６小節まで順に移動して行く。
【００５４】
第１６小節に対する当該伴奏パターンデータの演奏が終了すると、ＣＰＵ５は、次の構成名“Theme A”の構成データに移行して、上述の処理と同様の処理を当該構成データによって指定される伴奏パターンデータについて行う。これにより、「再生中」の表示態様が第１小節から第１６小節まで順に移動して行く。
【００５５】
第１６小節に対する当該伴奏パターンデータ（構成名“Theme A”の構成データによって指定されたもの）の演奏が終了すると、ＣＰＵ５は、次の構成名“Theme B”の構成データに移行して、上述の処理と同様の処理を当該構成データによって指定される伴奏パターンデータについて行う。その結果、「再生中」の表示態様が第１７小節から第３２小節まで順に移動して行く。
【００５６】
その後ＣＰＵ５は、構成名“Solo 1”の構成データに移行して、第１小節から第１６小節までの繰り返しに入る。これにより、「再生中」の表示態様は第１小節から第１６小節まで順に移動して行き、第１６小節に至ると第１小節に戻り、繰り返しが終了するまで、その動作が繰り返される。
【００５７】
そしてＣＰＵ５は、最後の構成データ、図示例では構成名“Ending”の構成データの最後の繰り返し回数まで上述の処理と同様の処理を行うと、演奏処理を終了する。
【００５８】
このように本実施の形態では、ユーザが演奏したい幅広い楽曲の伴奏データを簡単な操作で得ることができる。たとえば、バンド演奏の目的で、ある楽曲をアレンジして演奏する際にアレンジ内容を容易にシミュレートできる環境があると、バンドのメンバにもイメージが効率よく伝わる。コード進行だけ決めてＡメロに、たとえばある伴奏スタイルデータの“Main A”セクション、サビに、たとえば同じ（別の）伴奏スタイルデータの“Main C”セクション、などの構成とそれぞれの繰り返し回数や演奏パートなどを設定するだけで多様なアレンジの伴奏データの生成が可能になる。
【００５９】
また本実施の形態では、楽譜の知識がなくとも自由に演奏構成を簡単に組むことができるので、より多くのユーザがより多くの楽曲の演奏を伴奏付きで楽しむことができるようになる。
【００６０】
さらに本実施の形態では、音楽コンテンツデータを１画面で表示するようにしたので、対象の曲全体をイメージ的に容易に把握することができる。
【００６１】
また本実施の形態では、元が同じ音楽コンテンツデータであれば、演奏構成による全再生時間の違いが出ても表示画面には基本的に同じ情報（コード譜）が表示されるので、演奏構成の変化に関わらず、楽曲ごとに共通なイメージで表示することができる。
【００６２】
さらに本実施の形態では、音楽コンテンツデータの表示上の再生位置がハイライト表示され、そのハイライト表示の位置の順番は、演奏構成によって決まるので、ユーザは現在の再生位置を一目で確認することができる。
【００６３】
次に、この制御処理を詳細に説明する。
【００６４】
図４Ａおよび図４Ｂは、本実施の形態の演奏データ生成装置、特にＣＰＵ５が実行する自動伴奏データ生成処理の手順を示すフローチャートである。
【００６５】
本自動伴奏データ生成処理は、主として、
（１）起動時処理（ステップＳ１〜Ｓ７）；
（２）再生開始時処理（ステップＳ１４）；
（３）再生位置管理処理（ステップＳ２２）；
（４）再生処理（ステップＳ２４）；
（５）ユーザ演奏処理（ステップＳ１６〜Ｓ１８）；
（６）演奏構成内容変更時処理（ステップＳ９→Ｓ１０→Ｓ５→Ｓ６→Ｓ７）；
（７）終了処理（ステップＳ１２）；
によって構成されている。
【００６６】
本自動伴奏データ生成処理は、ユーザによる起動指示に応じて起動される。起動指示は、具体的には、前記設定操作子２に含まれる所定のスイッチのオン操作や、表示部９のＬＣＤがタッチパネル方式のものである場合に、その画面に表示されたボタンのタッチ操作などが考えられる。
【００６７】
本自動伴奏データ生成処理が起動されると、ＣＰＵ５は、上記（１）の起動時処理を１回実行した後、再生開始の指示があるまで待機状態となり（ステップＳ８→Ｓ１１→Ｓ１３→Ｓ１５→Ｓ１９→Ｓ８）、再生開始の指示があると、上記（２）の再生開始時処理を実行し（ステップＳ１３→Ｓ１４）、これに続いて上記（３）の再生位置管理処理を実行し（ステップＳ１９→Ｓ２０→Ｓ２２）、その後、所定のタイミングになると上記（４）の再生処理を実行する（ステップＳ２３→Ｓ２４）。そして、ＣＰＵ５は（３）再生位置管理処理および（４）再生処理を繰り返し実行し（ステップＳ２４→Ｓ８）、この間にユーザが演奏操作子を用いて演奏を行うと、ＣＰＵ５は上記（５）のユーザ演奏処理を実行する（ステップＳ１５→Ｓ１６）。一方、ユーザが演奏構成内容を変更すると、ＣＰＵ５は上記（６）の演奏構成内容変更時処理を実行し（ステップＳ８→Ｓ９）、ユーザが終了操作を行うと、ＣＰＵ５は上記（７）の終了処理を実行した（ステップＳ１１→Ｓ１２）後、本自動伴奏データ生成処理を終了する（ステップＳ１２→終了）。
【００６８】
（１）起動時処理では、まずＣＰＵ５は、初期化処理（ステップＳ１）を実行する。この初期化処理では、ＣＰＵ５は、前記ＲＡＭ７上に次の各領域および各フラグを確保して初期化する。すなわち、
音楽コンテンツデータ格納領域：選択された音楽コンテンツデータを格納するための領域である；
演奏構成格納領域：選択された音楽コンテンツデータに対応した演奏構成を格納するための領域である；
現在小節カウンタ：音楽コンテンツデータ上、現在再生中の小節を示すためにカウントするソフトウェアカウンタ（カウント領域）であり、このカウント値によって示される小節を、以下「現在の小節」という；
リピート回数カウンタ：音楽コンテンツデータ上、ある小節からある小節まで現在繰り返している回数を示すためにカウントするソフトウェアカウンタ（カウント領域）である；
現在コード格納領域：音楽コンテンツデータ上、現在の再生タイミングに有効なコード情報を書き込むための領域であり、この領域に書き込まれたコード情報を、以下「現在のコード」という；
直前コード格納領域：音楽コンテンツデータ上、現在の再生タイミングに有効なコード情報の直前のコード情報を書き込むための領域であり、この領域に書き込まれたコード情報を、以下「直前のコード」という；
現在の構成データ格納領域：音楽コンテンツデータに対応する演奏構成中、現在再生の対象になっている構成データを示す情報（たとえば、構成名）を格納するための領域であり、この領域に格納されている構成名が示す構成データを、以下「現在の構成データ」という；
再生テンポ格納領域：現在の再生テンポを格納するための領域であり、この領域に格納されているテンポ値を、以下「再生テンポ」という；
自動伴奏データ格納領域：生成した自動伴奏データ（本実施の形態では、ＭＩＤＩ形式のものおよび／またはオーディオ形式のものからなる）を必要パート分書き込むための領域である；
ユーザ演奏格納領域：ユーザ演奏を必要パート分書き込んで、録音しておくための領域である；
の各領域をクリアするとともに、
ＲＵＮフラグ：再生中にセット（“１”）され、それ以外にリセット（“０”）されるフラグである；
移行指示フラグ：次の構成データへの移行指示がなされたときにセットされ、それ以外にリセットされるフラグである；
の各フラグをリセットする。
【００６９】
次にＣＰＵ５は、たとえば、ユーザの指示に応じて表示部９のＬＣＤに各種音楽コンテンツデータの（名称の）一覧を表示し、ユーザがその一覧の中からいずれかを選択すると、選択された音楽コンテンツデータをその記憶先から読み出して、前記音楽コンテンツデータ格納領域に格納することで、ユーザの好みの音楽コンテンツデータを取得する（ステップＳ２）。本実施の形態では、音楽コンテンツデータとして、コード譜データが取得される。
【００７０】
次にＣＰＵ５は、当該音楽コンテンツデータ、つまり音楽コンテンツデータ格納領域に格納された音楽コンテンツデータを表示部９のＬＣＤ上に表示する（ステップＳ３）。これにより、図２に示すようなコード譜（ただし、「再生中」の表示態様がいずれの小節についても表示されていない状態）の表示画面９ａが表示される。
【００７１】
そしてＣＰＵ５は、当該音楽コンテンツデータに対応する演奏構成をその記憶先から読み出して前記演奏構成格納領域に格納した後、その演奏構成を表示部９のＬＣＤ上に表示する（ステップＳ４）。これにより、図３に示すような演奏構成の表示画面９ｂが表示される。なお本実施の形態では、当該音楽コンテンツデータに対応する演奏構成は、この時点では既に作成され、たとえば記憶装置１０に記憶されているとするが、これに限らず、対応する演奏構成が未だ作成されていない場合には、ユーザが何もない状態から新規に作成するようにすればよい。
【００７２】
なお、表示画面９ａと表示画面９ｂは、ＬＣＤの表示画面が十分広い場合には、１画面内に同時に表示するようにすればよいし、それほど広くない場合には、たとえば表示モードを変更することで、いずれか一方の画面を切り替えて表示すればよい。
【００７３】
次にユーザが表示画面９ｂ上で演奏構成を編集すると、ＣＰＵ５は、演奏構成格納領域に格納されている演奏構成を、編集後の演奏構成で更新する（ステップＳ５）。このように本実施の形態の演奏データ生成装置では、演奏構成を自由に編集することができるようになっている。以下、「演奏構成」は、演奏構成格納領域に格納されている演奏構成を意味するものとする。
【００７４】
次にＣＰＵ５は、演奏構成を構成する複数の構成データ中、「演奏順」として“１”が設定されている構成データ（本実施の形態では、先頭の構成データ）の名称を前記現在の構成データ格納領域に格納する（ステップＳ６）。
【００７５】
そしてＣＰＵ５は、「現在の構成データ」によって指定される、つまり「現在の構成データ」に設定された「伴奏スタイル名」および「セクション名」によって指定される伴奏パターンデータ（通常は複数パートからなる）にオーディオパートがあれば、「現在の構成データ」に設定された「開始位置」から「終了位置」までのコード進行を音楽コンテンツデータから抽出し、この抽出したコード進行に合うように当該オーディオパートの伴奏パターンデータをピッチ調整して、前記ＲＡＭ７上に確保したオーディオデータ格納領域に書き込む（ステップＳ７）。このように伴奏パターンデータの再生前にオーディオパートのデータについてのみ、予めピッチ調性をしておくのは、再生時には再生テンポに合わせるテンポ調整処理を行う必要があるので、テンポ調整処理とピッチ調整処理を並行して行うのは、ＣＰＵ５に対する負荷が過大になるからである。なお、ピッチ調整の方法は、公知のものを用いればよいので、その説明は省略する。また、伴奏パターンデータにオーディオパートが複数ある場合には、ＣＰＵ５は、パート毎にピッチ調性を行い、パート毎にオーディオデータ格納領域に書き込んでおく。さらに、伴奏パターンデータにオーディオパートがない場合もあるが、その場合には、ステップＳ７の処理は行わない。このため、図４Ａ中、ステップＳ７の枠は破線で描かれている。
【００７６】
前記（２）再生開始時処理では、ＣＰＵ５は、
（２ａ）ＲＵＮフラグをセット（“１”）；
（２ｂ）前記タイマ８に対する計時の開始を指示；
（２ｃ）「現在の構成データ」に設定された「開始位置」を現在小節カウンタに設定；
（２ｄ）図２の表示画面９ａのコード譜上、「現在の小節」部分の表示態様を「再生中」の表示態様に変更；
（２ｅ）リピート回数カウンタをリセット（“０”）；
（２ｆ）移行指示フラグをリセット（“０”）；
（２ｇ）「現在の構成データ」によって指定される伴奏パターンデータを読み出し可能状態に設定（具体的には、伴奏パターンデータにＭＩＤＩパートがあれば、ＲＡＭ７上に確保したＭＩＤＩデータ格納領域に、当該ＭＩＤＩパートの伴奏パターンデータを書き出し、ＭＩＤＩデータの読み出しポインタを先頭のデータ位置に合わせ、オーディオデータ格納領域にオーディオパートの伴奏パターンデータが格納されていれば、その読み出し区間をサーチしておく）；
（２ｈ）「現在の構成データ」に設定された「テンポ」を再生テンポ格納領域に格納；
の各処理を行う。
【００７７】
この（２）再生開始時処理で、ＲＵＮフラグが“１”にセットされると、この時点ではユーザは構成データの移行指示を行っていないので、ＣＰＵ５は処理を前記（３）の再生位置管理処理に進める（ステップＳ１９→Ｓ２０→Ｓ２２）。
【００７８】
図５は、この再生位置管理処理の詳細な手順を示すフローチャートであり、同図に示すように、本再生位置管理処理は、「現在の小節」が終了するタイミングで実行され（ステップＳ３１→Ｓ３２）、それ以外のタイミングでは直ぐに終了する（ステップＳ３１→リターン）。このように本再生位置管理処理は、ＲＵＮフラグがセット状態のときには常に起動されるものの、その実質的な処理は、「現在の小節」が終了するタイミングでのみ実行されるので、本再生位置管理処理の以下の説明では、特に明示しなくても、このタイミングにおける処理についてのものである。ここで「現在の小節」が終了するタイミングであるかどうかは、たとえば、現在のタイミング（再生タイミング）を計時するタイミングカウンタをＲＡＭ７上に確保し、このタイミングカウンタの値に基づいて判定するようにすればよい。より具体的には、タイミングカウンタは、タイマ８が所定の時間間隔を計時する度に起動されて実行されるタイマ割込処理中でカウントされ、各小節の先頭でリセットされるものとすれば、タイミングカウンタは、各小節の先頭から末尾までの経過時間を間接的に示すカウンタとして機能する。したがって、現在のタイミングカウンタの値をチェックすれば、現在のタイミングが当該小節の先頭からの経過時間（に応じたカウント値）として検出される。各小節の時間長は小節によって区々であるが、各小節について拍数とテンポ値が明確に決まっているため、各小節の時間長、つまり各小節の先頭から末尾までの経過時間は、当該拍数とテンポ値によって一意的に決まるので、この各小節の時間長をカウント値に換算することで、タイミングカウンタの値から、現在のタイミングが「現在の小節」が終了するタイミングであるかどうかを判定することができる。ただしこの場合、タイミングカウンタからでは「現在の小節」を知ることはできないが、「現在の小節」は、現在小節カウンタの値を見れば知ることができるので、問題は生じない。なお「現在の小節」が終了するタイミングであるかどうかの判定方法は、これに限らず、どのような方法を用いてもよい。
【００７９】
本再生位置管理処理では、まずＣＰＵ５は、図２の表示画面９ａのコード譜上、「現在の小節」部分の「再生中」の表示態様を通常の状態、つまりハイライト表示でない状態に変更する（ステップＳ３２）。そしてＣＰＵ５は、現在のタイミングが次のどのタイミングであるかに応じて、それぞれの処理を実行する。
（３１）「現在の小節」が「現在の構成データ」に設定された「終了位置」でない場合：現在小節カウンタを“１”インクリメントして、次の小節を示すようにし（ステップＳ３４）、表示画面９ａのコード譜上、「現在の小節」部分の表示態様を「再生中」の態様に変更した（ステップＳ４４）後、本再生位置管理処理を終了する（リターン）；
（３２）「現在の小節」が「現在の構成データ」に設定された「終了位置」である場合：
（３２１）移行指示フラグがセット状態（“１”）である場合（＝「現在の構成データ」の「繰り返し回数」に前記「Ｎ以下」が設定され、繰り返し回数が“Ｎ”回になる前に、ユーザが次に演奏予定の構成データへの移行指示を行った場合）：移行指示フラグをリセットした（ステップＳ３６）後、次のステップＳ３７の処理（これ以降の処理の詳細については、後述する）に進む；
（３２２）移行指示フラグがリセット状態（“０”）である場合：リピート回数カウンタを“１”インクリメントし（ステップＳ４１）；
（３２２１）「現在の構成データ」に設定された「繰り返し回数」に“１”以外が設定され、リピート回数カウンタ値＜「繰り返し回数」である場合（＝設定された複数回の繰り返し回数が繰り返されていない場合）：「現在の構成データ」に設定された「開始位置」を現在小節カウンタに設定し（ステップＳ４３）、表示画面９ａのコード譜上、「現在の小節」部分の表示態様を「再生中」の態様に変更した（ステップＳ４４）後、本再生位置管理処理を終了する（リターン）；
（３２２２）「現在の構成データ」の「繰り返し回数」に“１”が設定されている場合（＝繰り返し指定がされていない場合）、あるいは「繰り返し回数」に“１”以外が設定され、リピート回数カウンタ値＝「繰り返し回数」である場合（＝設定された複数回の繰り返し回数が繰り返された場合）：「現在の構成データ」の次に演奏予定の構成データの構成名を読み出して、前記現在の構成データ格納領域に格納することで、「現在の構成データ」に設定し（ステップＳ３７）、リピート回数カウンタをリセット（“０”）し（ステップＳ３８）、「現在の構成データ」に設定された「テンポ」を再生テンポ格納領域に格納することで、「再生テンポ」を設定し（ステップＳ３９）、「現在の構成データ」に設定された「伴奏スタイル名」および「セクション名」によって指定される伴奏パターンデータを、前記ステップＳ６の処理と同様にして読み出し可能状態に設定した（ステップＳ４０）後、前記（３２２１）の場合の処理に進む。
【００８０】
なお本再生位置管理処理では、「現在の構成データ」の「繰り返し回数」に「Ｎ以下」が設定され、繰り返し回数が“Ｎ”回になる前に、ユーザが次に演奏予定の構成データへの移行指示を行った場合、移行指示後直ぐに次の構成データへ移行させるのではなく、「現在の小節」が現在の繰り返し回数における「終了位置」に至ってから次の構成データへ移行させるようにした（ステップＳ３３，Ｓ３５参照）が、これに限らず、移行指示後直ぐに次の構成データへ移行させるようにしてもよい。
【００８１】
また「繰り返し回数」に「Ｎ以下」ではなく、数値が設定されているときでも、繰り返し回数がその数値に到達する前に移行指示が行われた場合、同様な動き（終了位置まで再生して次の構成データに移行／ただちに次の構成データに移行）をすればよい。
【００８２】
図４Ｂに戻り、ＲＵＮフラグがセット状態で、自動伴奏データを音源に渡すタイミングが到来すると、ＣＰＵ５は、処理を前記（４）の再生処理に進める（ステップＳ２３→Ｓ２４）。自動伴奏データは、本実施の形態では、所定の時間間隔（たとえば、数ｍから数十ｍｓｅｃやテンポに応じた音符長）毎に渡すようにしているので、上記「自動伴奏データを音源に渡すタイミング」とは、当該時間間隔が経過したタイミングを意味する。なお「音源」とは、前記オーディオ再生部１２およびＭＩＤＩ音源部１３の両方を意味し、渡すべき自動伴奏データがＭＩＤＩ形式のものであればＭＩＤＩ音源部１３に渡され、オーディオ形式のものであればオーディオ再生部１２に渡される。
【００８３】
図６は、この再生処理の詳細な手順を示すフローチャートであり、本再生処理は、「現在の構成データ」によって指定され、ＭＩＤＩデータ格納領域および／またはオーディオデータ格納領域に格納されている伴奏パターンデータを再生し（読み出し）、音源に渡すべき自動伴奏データを生成するものである。
【００８４】
本再生処理は、
（４１）「現在のコード」および「直前のコード」取得処理（ステップＳ５１〜Ｓ５５）；
（４２）自動伴奏データ生成処理（ステップＳ５６）；
によって構成されている。
【００８５】
上記（４１）の「現在のコード」および「直前のコード」取得処理は、現在のタイミング（再生タイミング）に基づいて音楽コンテンツデータ、つまりコード譜データから「現在のコード」と「直前のコード」を取得（抽出）し、これら「現在のコード」と「直前のコード」を、次の（４２）自動伴奏データ生成処理中、ＭＩＤＩ形式の自動伴奏データを生成する際の基礎にしようというものである。したがって、「現在のコード」と「直前のコード」は、オーディオ形式の自動伴奏データを生成する際には必要とされない。オーディオ形式の自動伴奏データを生成する際に基礎とするオーディオデータは、前述のように、既にコード譜データに記載の各コードに合うようにピッチ調整された状態でオーディオデータ格納領域に書き込まれているからである。
【００８６】
（４１）「現在のコード」および「直前のコード」取得処理では、まずＣＰＵ５は、音楽コンテンツデータ（コード譜データ）の「現在の小節」に対応するコード情報のうち、現在のタイミングに有効なコード情報を取得（抽出）し、これを前記現在コード格納領域に格納することで、「現在のコード」を設定する（ステップＳ５１）。ここで、現在のタイミングの判定は、前記タイミングカウンタの値に基づいて行うようにする。コード譜データは、図２を用いて前述したように、コード進行列を構成する各コードのコードネームを特定できる情報がそれぞれ、その発生タイミングを示すタイミング情報とセットになって記憶されているものであるので、タイミングカウンタの現在の値と、各コードにセットになって記憶されているタイミング情報の値を（そのまま、あるいは適宜換算して）比較することで、目的のコード情報を取得することができる。
【００８７】
次にＣＰＵ５は、現在のタイミングが「現在の構成データ」に設定された「開始位置」の先頭であるかどうかを判定する（ステップＳ５２）。この判定は、現在のタイミングが「現在の構成データ」によって指定される伴奏パターンデータによる自動伴奏が開始するタイミングであるかどうかを判定するものである。この判定により、現在のタイミングが当該伴奏パターンデータによる自動伴奏が開始するタイミングであることが判定されると、「直前のコード」を取得する意味はないので、つまり、もし「直前のコード」を取得すると、その「直前のコード」は当該伴奏パターンデータの１つ前に設定された伴奏パターンデータで用いられたコードであり、（別の）伴奏パターンデータに切り替わるタイミングでは「直前のコード」は必要ないので、ＣＰＵ５は、「直前のコード」を「現在のコード」と同じに設定する（ステップＳ５５）。
【００８８】
一方、ステップＳ５２の判定で、現在のタイミングが当該伴奏パターンデータの先頭でないことが判定されると、コードチェンジタイミングと一致するかどうかを判定する（ステップＳ５３）。現在のタイミングがコードチェンジタイミングと一致しないときは、「直前のコード」は「現在のコード」と同じであり、「直前のコード」を改めて取得する必要がないので、ＣＰＵ５は、処理を前記ステップＳ５５に進める（ステップＳ５３→Ｓ５５）。
【００８９】
一方、現在のタイミングがコードチェンジタイミングと一致したときは、現在のタイミングと「現在の小節」と「現在のコード」に基づいて、コード譜データから「直前のコード」を取得した（ステップＳ５４）後、処理を前記（４２）自動伴奏データ生成処理に進める。
【００９０】
（４２）自動伴奏データ生成処理では、ＣＰＵ５は、音源に受け渡すべき自動伴奏データがＭＩＤＩ形式の場合とオーディオ形式の場合とで、次のように異なった処理を行う。すなわち、
（４２１）ＭＩＤＩ形式の場合：伴奏パターンデータから現在のタイミングに合うイベントデータを読み出し、「現在のコード」に合う音高に変更したイベントデータを生成し、ＭＩＤＩ音源部１３に出力する。ただし、伴奏パターンデータの設定によっては、「現在のコード」と「直前のコード」が異なる場合に、既に発音中の伴奏音（「直前のコード」に合う音高）を消音し、「現在のコード」に合う音高の伴奏音（を発音させるイベントデータ）を生成して再発音させる処理を行う場合、あるいは、既に発音中の伴奏音に何も手を加えないと判断する場合もある；
（４２２）オーディオ形式の場合：オーディオデータ格納領域内のオーディオデータのうち、該当する区間のデータを再生テンポに合うように読み出し、タイムストレッチ処理を施して、オーディオ再生部１２に出力する。ただし、該当する区間とは、オーディオ再生部１２の前記一時記憶部の空き領域に格納するデータの区間である。
【００９１】
この自動伴奏データ生成処理では、処理の対象となる伴奏パターンデータが複数パートからなる場合には、すべてのパートに亘ってパート毎に上記（４２１）または（４２２）のいずれかの処理が行われる。
【００９２】
また自動伴奏データ生成処理では、生成したパート毎の自動伴奏データ（ＭＩＤＩデータおよび／またはオーディオデータ）は、音源に受け渡されるとともに、自動伴奏データ格納領域の対応するパートのトラック領域に書き込まれる。これは、生成した自動伴奏データを録音するためである。自動伴奏データ格納領域に書き込まれた自動伴奏データは、後述するように、必要に応じて保存される。また、この自動伴奏データに基づいて楽譜データを生成し、これを表示するようにしてもよいし、さらにこの楽譜データを保存するようにしてもよい。このように楽譜データを生成して表示する場合には、自動伴奏データの生成時に発音しないようにしてもよい。もちろん、発音するようにしてもよい。発音／非発音をユーザが選択できるようにしてもよい。
【００９３】
図４Ｂに戻り、ＲＵＮフラグがセット（“１”）された状態で、ユーザによる構成データの移行指示がなされると、ＣＰＵ５は、移行指示フラグをセットした（ステップＳ２１）後、処理を前記（３）の再生位置管理処理に進める。移行指示の具体例としては、フットスイッチのオン操作、ユーザのジェスチャーの検出（ソロの受け渡し：ソリストが次のソリストに手を向ける；４バース(BARS)：指で４；テーマに戻る：頭を指差す；曲を終わらせる：楽器を振りかぶる；など）、演奏情報を解析して判断（ボーカルやフロントのボリュームが一定時間以上下がったらソロが終わったとみなし移行指示を出す；細かい複雑なフレーズが減り、ベースラインを演奏し始めたらソロが終わったとみなし移行指示を出す；など）などを挙げることができる。また、演奏情報を解析することで現在の構成データの種類を認識することができる。たとえば、ソリストが４小節フレーズを弾いて、ドラムパート以外何も演奏しなくなったらドラムの４バースと認識；ドラムパート以外何も演奏しなくなったらドラムソロと認識；フロントが４小節ごとに入れ替わるフレーズを弾いていたらフロント４バースと認識；などである。さらに、変化するときに移行指示を出すようにしてもよい。
【００９４】
また、本自動伴奏データ生成処理の実行中に、ユーザによる演奏操作がなされると、ＣＰＵ５は、処理を前記（５）のユーザ演奏処理に進める（ステップＳ１５→Ｓ１６）。
【００９５】
本ユーザ演奏処理では、まずＣＰＵ５は、ユーザ演奏操作に応じた演奏処理を実行する（ステップＳ１６）。本実施の形態では、主な演奏操作子として鍵盤を想定しているので、ユーザ演奏操作とは、鍵盤に対する押離鍵操作である。この押離鍵操作が検出されると、ＣＰＵ５は、当該操作に応じたイベントデータ（具体的には、押鍵操作の場合にはキーオンイベントデータであり、離鍵操作の場合にはキーオフイベントデータである）を生成して、ＭＩＤＩ音源部１３に出力する。
【００９６】
次にＣＰＵ５は、ＲＵＮフラグの状態を判定し（ステップＳ１７）、その判定の結果、ＲＵＮフラグがリセット状態のときには、ＣＰＵ５は、本ユーザ演奏処理を終了する一方、ＲＵＮフラグがセット状態のときには、ＣＰＵ５は、演奏処理に合わせた録音処理を実行する（ステップＳ１８）。この録音処理では、ＣＰＵ５は、上記ステップＳ１６の演奏処理によって生成されたイベントデータを前記ユーザ演奏格納領域に書き込むことで、ユーザ演奏を録音する。このとき、イベントデータは、その発生タイミングを示すタイミング情報とセットで書き込まれる。タイミング情報は、典型的には、隣接して書き込まれたイベント間の相対時間を示すデルタタイムであるが、もちろん、これに限られる訳ではなく、絶対時間を示すものであってもよい。なおタイミング情報は、タイマ８によって計時された時間に基づいて生成すればよい。
【００９７】
また、本自動伴奏データ生成処理の実行中に、ユーザによって演奏構成内容の変更が指示されると、ＣＰＵ５は、処理を前記（６）の演奏構成内容変更時処理に進める（ステップＳ８→Ｓ９）。
【００９８】
本演奏構成内容変更時処理では、まずＣＰＵ５は、再生停止処理を実行する（ステップＳ９）。再生停止処理では、ＣＰＵ５は、
（６ａ）タイマ８に対する計時の停止を指示；
（６ｂ）ＲＵＮフラグをリセット（“０”）；
（６ｃ）オーディオ再生部１２およびＭＩＤＩ音源部１３への消音指示；
（６ｄ）自動伴奏データ格納領域およびユーザ演奏格納領域の初期化；
などの処理を実行する。なお、上記（６ｄ）の初期化を実行する前に、ユーザに当該領域に書き込まれた録音データを保存するかどうかを問い合わせ、保存が指示されたときには、録音データを、たとえば記憶装置１０に記憶するようにした方が好ましい。
【００９９】
次にＣＰＵ５は、音楽コンテンツデータの表示上で、「再生中」の表示態様になっている小節の表示態様を初期状態に戻した（ステップＳ１０）後、処理をステップＳ５に進める。ステップＳ５〜Ｓ７の各処理の実行により、本演奏構成内容変更時処理は終了し、その後、ユーザによる再生開始の指示があるまで待機状態になる。なお、ステップＳ５〜Ｓ７の各処理の詳細は、前記（１）の起動時処理の中で説明したので、ここでは繰り返さない。
【０１００】
さらに、本自動伴奏データ生成処理の実行中に、ユーザによる終了操作がなされると、ＣＰＵ５は、処理を前記（７）の終了処理に進める（ステップＳ１１→Ｓ１２）。
【０１０１】
本終了処理では、ＣＰＵ５は、
（７ａ）タイマ８に対する計時の停止を指示；
（７ｂ）オーディオ再生部１２およびＭＩＤＩ音源部１３への消音指示；
（７ｃ）自動伴奏データ格納領域およびユーザ演奏格納領域に書き込まれた録音データを必要に応じて保存；
（７ｄ）演奏構成格納領域に格納されている演奏構成を必要に応じて、音楽コンテンツデータに対応付けて保存；
（７ｅ）自動伴奏データ格納領域およびユーザ演奏格納領域を解放；
（７ｆ）オーディオデータ格納領域およびＭＩＤＩデータ格納領域を解放；
などの処理を実行する。
【０１０２】
なお本自動伴奏データ生成処理では、演奏構成の編集を完成させた（図４ＡのステップＳ５）後、再生を開始し（図４ＢのステップＳ１４）、演奏構成の内容を変更したい場合には、一旦再生を止めて（図４ＡのステップＳ９）、演奏構成を編集するようにしている。しかし、これは説明を簡単化するであり、たとえ再生中であっても、まだ再生対象になっていない先の構成データに関する編集であれば、演奏構成を表示してユーザが編集可能に構成してもよい。これを実現するためには、たとえば、図４ＡのステップＳ８の判定の結果、“ＹＥＳ”の場合には、現在のステップＳ９とＳ１０の各処理に代えて、「まだ再生対象になっていない構成データのみが編集可能状態である演奏構成編集画面（ステップＳ５の画面と同様の画面であるが、再生中あるいは再生済みの構成データは編集不可となっているもの）を表示」し、「ユーザによる編集内容をこれから再生される予定で該当する各構成データに反映」させた後、ステップＳ１１に進むようにすればよい。ステップＳ８の判定の結果、“ＮＯ”の場合も、ステップＳ１１に進む。
【０１０３】
また本自動伴奏データ生成処理では、最初に取得した音楽コンテンツデータは、その後、他の音楽コンテンツデータに変更することができないように構成されている。つまり、ユーザが現在の音楽コンテンツデータを他の音楽コンテンツデータに変更したい場合には、本自動伴奏データ生成処理を終了させた後、再度起動させ、その起動時処理で当該他の音楽コンテンツデータを取得しなければならないように構成されている。さらに、最初に取得した音楽コンテンツデータのその後の変更もできないように構成されている。このように構成したのは、専ら処理内容を簡単化するためであるので、たとえば、図４ＡのステップＳ８，Ｓ１１，Ｓ１３などのように、再生中であってもなくても、表示された音楽コンテンツデータを取得後変更あるいは編集する操作を受け付けることができるようにし、当該音楽コンテンツデータについての変更あるいは編集を行うことができるようにしてもよい。
【０１０４】
また音楽コンテンツデータを編集した場合には、再生終了後、必要に応じて保存する処理を設けておくと便利である。
【０１０５】
さらに再生中、演奏構成に拘わらず、たとえば演奏パートの音量調整を行うようにしてもよい。これを実現するためには、ユーザ演奏操作の受け付け（図４ＢのステップＳ１５）と同様に、音量などの調整操作を受け付け、制御する処理を追加すればよい。
【０１０６】
なお本実施の形態では、演奏構成として、伴奏パターンデータを指定する構成データを登録するものを例に挙げたので、音楽コンテンツデータとして、表示部９にはコード譜か楽譜（音符込み）が表示される。ユーザは、この表示を見て、コードそのものか、フレーズなどの自分のパート（楽器／歌唱）を演奏する。あるいは演奏はせず、再生のみさせて構成の移行指示のみ行うということもある。
【０１０７】
表示部９に表示される表示内容は、演奏構成に登録される構成データによって、つまり、構成データが指定するものによって変動する。具体的には、構成データの演奏条件として、
音量や効果の調節が設定されている場合：楽譜が表示される。ユーザは、表示を見て自分のパート（楽器／歌唱）を演奏する。あるいは演奏はせず、再生のみさせて構成の移行の指示のみ行うということもある；
楽曲名やフレーズ名が設定されている場合：アルバムのインデックスや文書のタイトル、曲名などが表示される。ユーザは、繰り返し回数が「未定」の構成から次の構成への移行指示を行う。この場合、構成別に演奏条件に設定され特定される演奏データが再生されると共に、たとえば、対応する映像が（別の表示エリアに）順次切り替え表示される／対応する歌詞が（別の表示エリアに）１行もしくは１ページ分ずつ表示される／対応するお話の音声が再生される／対応する文書の内容が（別の表示エリアに）１ページ分ずつ表示される／表示されたタイトル（あるいはキーワード）をユーザが見てしゃべる、などが考えられる。
【０１０８】
ユーザが複数人いる場合、演奏構成（各構成データ）は共有し、それぞれ自分のところで他のユーザと同じ表示を見る。構成が移行する際に、次に演奏するユーザを指定するようにすると、教習やゲームとして活用することができる。次に演奏するユーザの指定は、特定のユーザが行ってもよいし、現在演奏中のユーザが行うようにしてもよい。
【０１０９】
ユーザが見る表示（楽譜やコード譜やインデックスなど）は、基になる音楽コンテンツデータから自動生成したものであってもよい。
【０１１０】
生成される演奏データは、本実施の形態で例示したように、演奏構成に従った自動伴奏データのみでもよいし、それに合わせたユーザ演奏をミックスしたもの、さらに録音したものであってもよい。あるいは、音楽コンテンツデータがコード進行情報でない、楽譜や映像などの場合でも、演奏構成に従ったユーザの演奏を録音したものや、演奏構成で各構成の演奏条件に設定された曲（フレーズ）データを、その構成データ内の他の演奏条件（テンポ、音量、時間など）に従って再生したデータであってもよい。
【０１１１】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１１２】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１３】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【０１１４】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１１５】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【０１１６】
２…設定操作子（指定手段、設定手段），５…ＣＰＵ（取得手段、指定手段、設定手段、生成手段、表示手段、制御手段），７…ＲＡＭ（取得手段），９…表示部（表示手段）
【図１】
2015075574.tif 000003
【図２】
2015075574.tif 000004
【図３】
2015075574.tif 000005
【図４Ａ】
2015075574.tif 000006
【図４Ｂ】
2015075574.tif 000007
【図５】
2015075574.tif 000008
【図６】
2015075574.tif 000009