(57)【特許請求の範囲】
【請求項１】
テーブルエリアおよび当該テーブルエリア以降に圧縮データエリアを有する記憶手段と、
少なくとも曲を構成する各音を表す曲データを、複数の区間に区切り、区切られた各区間毎に識別子を付加する付加手段と、
前記付加手段により識別子が付加された各区間の曲データの属性を、識別子に対応付けて前記記憶手段のテーブルエリアに登録すると共に、前記識別子が付加された各区間の曲データを圧縮し、当該圧縮された曲データを前記記憶手段の圧縮データエリアに登録することにより圧縮データファイルを形成するファイル形成手段と、
再生指定された区間の識別子に対応する曲データと当該曲データの属性とを前記ファイル形成手段により形成された圧縮データファイルから抽出する抽出手段と、
前記抽出手段により抽出された曲データの属性に従って設定される再生形態に基づいて前記抽出手段により抽出された曲データを解凍して再生する再生手段と
を具備することを特徴とする曲データ処理装置。
【請求項２】
前記付加手段は、所定音符数単位もしくは所定小節単位で曲データを区切ることを特徴とする請求項１記載の曲データ処理装置。
【請求項３】
前記ファイル形成手段は、先頭区間の曲データの属性だけをファイル中のテーブルに登録し、先頭以降の区間の曲データの属性については、先頭区間の曲データの属性との差分が生じる毎に、その差分を表す差分属性を対応する区間の圧縮された曲データの先頭に付加することを特徴とする請求項１記載の曲データ処理装置。
【請求項４】
前記ファイル形成手段は、先頭区間の曲データの属性と先頭以降の区間の曲データとの属性の差分が大きい区間が存在する場合、その区間の曲データの属性をファイル中のテーブルに登録することを特徴とする請求項３記載の曲データ処理装置。
【請求項５】
テーブルエリアおよび当該テーブルエリア以降に圧縮データエリアを有する記憶手段を有するコンピュータに、
少なくとも曲を構成する各音を表す曲データを、複数の区間に区切り、区切られた各区間毎に識別子を付加する付加処理と、
前記付加処理により識別子が付加された各区間の曲データの属性を、識別子に対応付けて前記記憶手段のテーブルエリアに登録すると共に、前記識別子が付加された各区間の曲データを圧縮し、当該圧縮された曲データを前記記憶手段の圧縮データエリアに登録することにより圧縮データファイルを形成するファイル形成処理と、
再生指定された区間の識別子に対応する曲データと当該曲データの属性とを前記ファイル形成処理にて形成された圧縮データファイルから抽出する抽出処理と、
前記抽出処理により抽出された曲データの属性に従って設定される再生形態に基づいて前記抽出処理にて抽出された曲データを解凍して再生する再生処理と
を実行させることを特徴とする曲データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽器などに用いて好適な曲データ処理装置および曲データ処理プログラムに関する。
【背景技術】
【０００２】
従来より、演奏すべき各音の音高や発音タイミング、あるいは音色等を表わすイベントデータから構成される曲データを、演奏パートに対応させた演奏トラック毎にメモリ記憶しておき、そのメモリに記憶された各演奏トラック毎の曲データを、設定された再生テンポに従って自動演奏する装置が知られている。この種の装置として、例えば特許文献１には、自動演奏を進行させている最中に、リピート再生実行を指示すると、その指示時点における曲データ中の小節線番号から所定小節数分遡った始端と当該始端から一定小節数分進めた終端との間にある曲データを繰り返し再生する技術が開示されている。
【０００３】
【特許文献１】特開２００２−２５１１８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ＭＩＤＩファイル（ＳＭＦ形式）に格納される曲データ（ＭＩＤＩデータ）を曲の途中から再生するには、テンポや音色等の設定内容を表す設定情報を取得する為、ファイル先頭からの読み出しが必要になる。したがって、容量削減のためにＭＩＤＩファイルがデータ圧縮されている場合には、曲の途中から再生するにしても、一旦全てを解凍した後にファイル先頭からＭＩＤＩデータを読み出さねばならず、これ故、解凍したＭＩＤＩデータを一時記憶する展開先には容量の大きい領域が必要になる、という問題が生じる。
本発明は、このような事情に鑑みてなされたもので、曲の途中から再生し得るように、ＭＩＤＩデータを圧縮でき、しかも展開先の容量を低減化することができる曲データ処理装置および曲データ処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、請求項１に記載の発明では、テーブルエリアおよび当該テーブルエリア以降に圧縮データエリアを有する記憶手段と、少なくとも曲を構成する各音を表す曲データを、複数の区間に区切り、区切られた各区間毎に識別子を付加する付加手段と、前記付加手段により識別子が付加された各区間の曲データの属性を、識別子に対応付けて前記記憶手段のテーブルエリアに登録すると共に、前記識別子が付加された各区間の曲データを圧縮し、当該圧縮された曲データを前記記憶手段の圧縮データエリアに登録することにより圧縮データファイルを形成するファイル形成手段と、再生指定された区間の識別子に対応する曲データと当該曲データの属性とを前記ファイル形成手段により形成された圧縮データファイルから抽出する抽出手段と、前記抽出手段により抽出された曲データの属性に従って設定される再生形態に基づいて前記抽出手段により抽出された曲データを解凍して再生する再生手段とを具備することを特徴とする。
【０００６】
上記請求項１に従属する請求項２に記載の発明では、前記付加手段は、所定音符数単位もしくは所定小節単位で曲データを区切ることを特徴とする。
【０００７】
上記請求項１に従属する請求項３に記載の発明では、前記ファイル形成手段は、先頭区間の曲データの属性だけをファイル中のテーブルに登録し、先頭以降の区間の曲データの属性については、先頭区間の曲データの属性との差分が生じる毎に、その差分を表す差分属性を対応する区間の圧縮された曲データの先頭に付加することを特徴とする。
【０００８】
上記請求項３に従属する請求項４に記載の発明では、前記ファイル形成手段は、先頭区間の曲データの属性と先頭以降の区間の曲データとの属性の差分が大きい区間が存在する場合、その区間の曲データの属性をファイル中のテーブルに登録することを特徴とする。
【０００９】
請求項５に記載の発明では、テーブルエリアおよび当該テーブルエリア以降に圧縮データエリアを有する記憶手段を有するコンピュータに、少なくとも曲を構成する各音を表す曲データを、複数の区間に区切り、区切られた各区間毎に識別子を付加する付加処理と、前記付加処理により識別子が付加された各区間の曲データの属性を、識別子に対応付けて前記記憶手段のテーブルエリアに登録すると共に、前記識別子が付加された各区間の曲データを圧縮し、当該圧縮された曲データを前記記憶手段の圧縮データエリアに登録することにより圧縮データファイルを形成するファイル形成処理と、再生指定された区間の識別子に対応する曲データと当該曲データの属性とを前記ファイル形成処理にて形成された圧縮データファイルから抽出する抽出処理と、前記抽出処理により抽出された曲データの属性に従って設定される再生形態に基づいて前記抽出処理にて抽出された曲データを解凍して再生する再生処理とを実行させることを特徴とする。
【発明の効果】
【００１０】
本発明では、曲データを複数の区間に区切り、区切られた各区間毎に識別子を付加して圧縮する。識別子が付加された各区間の曲データの属性を、識別子に対応付けてファイル中のテーブルに登録すると共に、当該テーブル以降に圧縮された各区間の曲データを登録して圧縮データファイルを形成する。こうして形成される圧縮データファイルにおいて、再生する区間を指定すると、再生指定された区間の識別子に対応する曲データと当該曲データの属性とを抽出し、抽出された曲データの属性に従って設定される再生形態に基づき、抽出された曲データを解凍して再生するので、曲の途中から再生し得るようにＭＩＤＩデータを圧縮でき、しかも展開先の容量を低減化することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施の形態について説明する。
［第１実施形態］  
Ａ．構成  
図１は、本発明の第１実施形態による曲データ処理装置を備える電子楽器の構成を示すブロック図である。この図において、鍵盤１０は、押離鍵操作（演奏操作）に応じたキーオン／キーオフ信号および鍵番号ＫＮ（あるいはノートナンバ）、ベロシティ等からなる演奏情報を発生する。操作部１１は、コンソールパネル上に配設される各種スイッチから構成され、これら各スイッチの操作に応じたスイッチイベントを発生する。このイベントは後述するＣＰＵ１３のキースキャンにより取込まれる。操作部１１に配設される主要なスイッチとしては、図示されていない電源スイッチの他、動作モード（後述のデータ作成モード又は演奏モード）を設定するモードスイッチ等がある。
【００１２】
表示部１２は、コンソールパネルに配設されるＬＣＤパネル（不図示）と、ＣＰＵ１３から供給される表示制御信号に応じてＬＣＤパネルを表示制御する表示ドライバとから構成され、例えば上記操作部１１のスイッチ操作に応じた動作状態や設定状態などを画面表示する。ＣＰＵ１３は、ＲＯＭ１４に格納される各種制御プログラムを実行して、キースキャンにより取込んだ操作部１１の各スイッチ操作（スイッチイベント）に応じて装置各部を制御したり、キースキャンにより取込んだ鍵盤１０の鍵イベントに対応した楽音形成を音源１６に指示する。本発明に係わるＣＰＵ１３の特徴的な処理動作、すなわち曲データ処理装置の機能を具現する動作については追って詳述する。
【００１３】
ＲＯＭ１４は、ＣＰＵ１３にロードされる各種プログラムを記憶する他、各種音色データを記憶する。ＲＯＭ１４に記憶される各種プログラムとは、後述するメインルーチン、データ作成処理、演奏処理および移動処理を含む。ＲＡＭ１５は、ワークエリアおよびデータエリアを備える。ＲＡＭ１５のワークエリアには、ＣＰＵ１３の処理に用いる各種レジスタ／フラグデータが一時記憶される。ＲＡＭ１５のデータエリアは、インタフェース部１８を介して入力されるＭＩＤＩデータを一時記憶する曲データエリアと、この曲データエリアに格納されるＭＩＤＩデータを圧縮して保存する圧縮データエリアと、この圧縮データエリアに格納される圧縮済みのＭＩＤＩデータを解凍処理するための展開データエリアとを備える。
【００１４】
音源１６は、周知の波形メモリ読み出し方式で構成される音源であり、演奏モード下では再生テンポに同期してＣＰＵ１３がＲＡＭ１５の展開データエリアから読み出すＭＩＤＩデータに対応した楽音信号を発生する。鍵操作に応じて楽音形成する通常モードの場合には、鍵イベントに対応してＣＰＵ１３が生成する楽音パラメータに従った楽音信号を発生する。サウンドシステム１７は、音源１６から出力される楽音信号をＤ／Ａ変換した後に増幅してスピーカより楽音として発音させるサウンドシステムである。
【００１５】
インタフェース部１８は、例えばＭＩＤＩインタフェースやメモリカードインタフェースを備え、ＭＩＤＩインタフェースを介して外部ＭＩＤＩ楽器から入力されるＭＩＤＩデータを、ＣＰＵ１３の制御の下に取込んでＲＡＭ１５の曲データエリアにストアしたり、メモリカードインタフェースを介してメモリカードに記憶されるＭＩＤＩデータを、ＣＰＵ１３の制御の下に取込んでＲＡＭ１５の曲データエリアにストアする。
【００１６】
Ｂ．動作
次に、図２〜図７を参照して第１実施形態の動作について説明する。以下では、最初にＣＰＵ１３が実行するメインルーチンの動作を説明した後、このメインルーチンを構成するデータ作成処理、演奏処理および移動処理の各動作を説明する。
【００１７】
（１）メインルーチンの動作
電源スイッチ操作によりパワーオンされると、ＣＰＵ１３は図２に図示するメインルーチンを実行してステップＳＡ１に処理を進め、装置各部を初期化するイニシャライズを行った後、ステップＳＡ２に進む。ステップＳＡ２では、モードスイッチ操作により設定される動作モードが「データ作成モード」又は「演奏モード」のいずれであるかを判断する。「データ作成モード」に設定されている場合には、ステップＳＡ４を介してデータ作成処理を実行する。データ作成処理では、後述するように、インタフェース部１８を介して取込んだ曲データ（ＭＩＤＩデータ）を、図４に図示したファイル構造の圧縮データに変換する。一方、「演奏モード」に設定されている場合には、ステップＳＡ３を介して演奏処理（後述する）を実行する。
【００１８】
（２）データ作成処理の動作
次に、図３を参照してデータ作成処理の動作を説明する。上述したメインルーチンのステップＳＡ４（図２参照）を介して本処理が実行されると、ＣＰＵ１３は図３に図示するステップＳＢ１に処理を進め、インタフェース部１８を介して例えば外部ＭＩＤＩ楽器もしくはメモリカードから曲データ（ＭＩＤＩデータ）を取込んでＲＡＭ１５の曲データエリアにストアする。次いで、ステップＳＢ２〜ＳＢ７では、ＲＡＭ１５の曲データエリアにストアしたＭＩＤＩデータを、図４に図示するファイル構造を有する圧縮データファイルを作成する。
【００１９】
ステップＳＢ２〜ＳＢ７の動作を説明する前に、図４を参照して圧縮データファイルの構造について説明する。この図に示すファイルは、ファイル先頭に設けられる設定テーブルＴＢＬ、曲データブロックＫＤＢ（１）〜ＫＤＢ（ｎ）およびこれら曲データブロックＫＤＢ（１）〜ＫＤＢ（ｎ）を区切るタグＴＡＧ（１）〜ＴＡＧ（ｎ）から構成される。曲データブロックＫＤＢ（１）〜ＫＤＢ（ｎ）は、ＲＡＭ１５の曲データエリアにストアしたＭＩＤＩデータを、所定データ量毎に区切り、区切られたＭＩＤＩデータをデータ圧縮したものである。データ圧縮には、公知のＬｅｍｐｅｌ−Ｚｉｖ符号化に基づくスライド辞書法や動的辞書法を用いる。
【００２０】
データ圧縮された曲データブロックＫＤＢ（１）〜ＫＤＢ（ｎ）には、区切りを表すタグＴＡＧ（１）〜ＴＡＧ（ｎ）が付加される。設定テーブルＴＢＬには、これらタグＴＡＧ（１）〜ＴＡＧ（ｎ）で区切られた曲データブロックＫＤＢ（１）〜ＫＤＢ（ｎ）の属性が登録される。曲データブロックＫＤＢの属性は、位置情報、時間情報および設定情報から構成される。位置情報は、タグＴＡＧに対応付けられた曲データブロックＫＤＢの記録アドレスを指す。時間情報は、タグＴＡＧに対応付けられた曲データブロックＫＤＢに含まれるＭＩＤＩデータの演奏開始時刻を表す。演奏開始時刻は、演奏開始時点からの経過時間で表現される。設定情報は、タグＴＡＧに対応付けられた曲データブロックＫＤＢに含まれるＭＩＤＩデータを再生する際の設定内容（音色や再生テンポ等）を表す。設定内容が変化する毎に、対応するタグＴＡＧの設定情報として登録される。
【００２１】
図３に図示するステップＳＢ２〜ＳＢ７では、このような構造の圧縮データファイルを生成する。すなわち、図３に図示するステップＳＢ２では、圧縮区切り位置を歩進させ、続くステップＳＢ３では、歩進させた圧縮区切り位置までのデータ量が閾値以上であるか否かを判断する。歩進させた圧縮区切り位置までのデータ量が閾値以上でなければ、判断結果は「ＮＯ」になり、上記ステップＳＢ２に処理を戻し、圧縮区切り位置を歩進させる。そして、歩進させた圧縮区切り位置までのデータ量が閾値以上になると、上記ステップＳＢ３の判断結果が「ＹＥＳ」になり、ステップＳＢ４に進む。
【００２２】
ステップＳＢ４では、所定データ量で区切られた一連のＭＩＤＩデータ、すなわち曲データブロックＫＤＢの先頭にタグＴＡＧを挿入する。次いで、ステップＳＢ５では、挿入したタグＴＡＧに対応する曲データブロックＫＤＢの位置情報、時間情報および設定情報を設定テーブルＴＢＬに登録する。そして、ステップＳＢ６では、タグＴＡＧが付加された曲データブロックＫＤＢを、スライド辞書法や動的辞書法にてデータ圧縮し、ＲＡＭ１５の圧縮データエリアに保存する。続いて、ステップＳＢ７では、曲の終わりに達したか否かを判断する。曲の終わりに達していなければ、判断結果は「ＮＯ」になり、上述したステップＳＢ２〜ＳＢ６を繰り返す。そして、曲の終わりに達すると、判断結果が「ＹＥＳ」になり、本処理を終える。これにより、図４に図示した構造の圧縮データファイルがＲＡＭ１５の圧縮データエリアに形成される。
【００２３】
（３）演奏処理の動作
次に、図５を参照して演奏処理の動作を説明する。上述したメインルーチンのステップＳＡ３を介して本処理が実行されると、ＣＰＵ１３は図５に図示するステップＳＣ１に処理を進める。ステップＳＣ１では、ＲＡＭ１５の圧縮データエリアに形成した圧縮データファイル（図４参照）の内から設定テーブルＴＢＬを抽出してＲＡＭ１５のワークエリアに展開する。次いで、ステップＳＣ２では、タグＴＡＧを指定するレジスタＴＡＧに初期値「１」をストアする。
【００２４】
続いて、ステップＳＣ３では、レジスタＴＡＧの値で指定されるタグＴＡＧ（１）の曲データブロックＫＤＢ（１）を、ＲＡＭ１５のワークエリアに展開された設定テーブルＴＢＬの内容を参照して解凍する展開処理を実行する。そして、ステップＳＣ４では、曲データブロックＫＤＢ（１）を解凍して得た曲データを再生する曲再生処理を実行する。なお、この曲再生処理では、レジスタＴＡＧの値で指定されるタグＴＡＧ（１）に対応付けられた設定情報を設定テーブルＴＢＬから読み出し、再生する楽音の音色や再生テンポ等を設定する。
【００２５】
次いで、ステップＳＣ５では、解凍した曲データブロック分の曲データを再生し終えたかどうかを判断する。再生し終えていなければ、上記ステップＳＣ４に処理を戻す。以後、解凍した曲データブロック分の曲データを再生し終えるまでステップＳＣ４〜ＳＣ５を繰り返す。そして、解凍した曲データブロック分の曲データを再生し終えると、ステップＳＣ５の判断結果が「ＹＥＳ」になり、ステップＳＣ６に進む。ステップＳＣ６では、曲の終わりまで曲データを再生し終えたかどうかを判断する。
【００２６】
曲の終わりまで曲データを再生し終えていなければ、ここでの判断結果は「ＮＯ」になり、ステップＳＣ７に進む。ステップＳＣ７では、再生位置を指定するユーザ操作の有無を判断する。ユーザ操作が無ければ、判断結果は「ＮＯ」になり、ステップＳＣ８に進み、レジスタＴＡＧの値を歩進させた後、上述のステップＳＣ３に処理を戻す。したがって、再生位置を指定するユーザ操作が行われなければ、タグＴＡＧ（１）の曲データブロックＫＤＢ（１）に続いて、タグＴＡＧ（２）の曲データブロックＫＤＢ（２）が、さらにタグＴＡＧ（３）の曲データブロックＫＤＢ（３）というように、タグＴＡＧの番号順に曲データブロックＫＤＢを解凍しながら、その解凍された曲データブロックＫＤＢの曲データに従って曲再生を進行させる。
【００２７】
一方、再生位置を指定するユーザ操作が行われると、上述したステップＳＣ７の判断結果が「ＹＥＳ」になり、ステップＳＣ９を介して移動処理（後述する）を実行した後、上述のステップＳＣ４に処理を戻す。以後、解凍した曲データブロック分の曲データを再生し終えるまでステップＳＣ４〜ＳＣ５を繰り返す。そして、解凍した曲データブロック分の曲データを再生し終え、曲終端に達すると、ステップＳＣ６の判断結果が「ＹＥＳ」になり、本処理を終える。
【００２８】
（４）移動処理の動作
次に、図６を参照して移動処理の動作を説明する。上述した演奏処理のステップＳＣ９（図５参照）を介して本処理が実行されると、ＣＰＵ１３は図６に図示するステップＳＤ１に処理を進める。ステップＳＤ１では、ユーザ操作により指定された再生位置が、現在再生中の曲データブロックＫＤＢと同一のブロック内であるかどうかを判断する。同じブロック内ならば、判断結果は「ＹＥＳ」になり、ステップＳＤ３に進み、指定された再生位置の設定情報を、設定テーブルＴＢＬから取得し、取得した設定情報を設定する。そして、ステップＳＤ４に進み、指定された再生位置にジャンプして本処理を終え、上述したステップＳＣ４に処理を戻す。これにより、指定された再生位置から曲再生が進行する。
【００２９】
これに対し、ユーザ操作により指定された再生位置が、現在再生中の曲データブロックＫＤＢとは異なる曲データブロックＫＤＢであると、上記ステップＳＤ１の判断結果は「ＮＯ」になり、ステップＳＤ２に進み、指定位置の曲データブロックＫＤＢを、ＲＡＭ１５のワークエリアに展開された設定テーブルＴＢＬの内容を参照して解凍する展開処理を実行する。そして、ステップＳＤ３に進み、指定された曲データブロックＫＤＢの設定情報を設定テーブルＴＢＬから取得して設定し、続くステップＳＤ４では、指定された曲データブロックＫＤＢにジャンプして本処理を終え、上述したステップＳＣ４に処理を戻す。これにより、指定された曲データブロックＫＤＢの先頭から曲再生が進行する。
【００３０】
以上のように、第１実施形態では、ＲＡＭ１５の曲データエリアに格納されるＭＩＤＩデータを、所定データ量単位の曲データブロックＫＤＢに区切り、区切られた曲データブロックＫＤＢ毎にタグＴＡＧを付加する。タグＴＡＧが付加された各曲データブロックＫＤＢの属性（位置情報、時間情報および設定情報）をタグＴＡＧの番号に対応付けて設定テーブルＴＢＬに登録すると共に、曲データブロックＫＤＢを公知のＬｅｍｐｅｌ−Ｚｉｖ符号化にてデータ圧縮する。これにより、設定テーブルＴＢＬとタグＴＡＧ毎にデータ圧縮された複数の曲データブロックとを含む圧縮データファイルが作成される。
【００３１】
そして、ユーザが再生位置を指定すると、圧縮データファイル中の設定テーブルＴＢＬの内容を参照して、再生指定された曲データブロックＫＤＢの設定情報に基づき再生形態（音色や再生テンポ）を設定する一方、再生指定された曲データブロックＫＤＢを圧縮データファイルから読み出して解凍し、解凍した曲データブロックＫＤＢのＭＩＤＩデータを再生するので、曲の途中から再生し得るように、ＭＩＤＩデータを圧縮でき、しかも展開先の容量を低減化することができる。
【００３２】
［変形例］
次に、図７を参照して第１実施形態の変形例について説明する。図７は、第１実施形態の変形例によるデータ作成処理の動作を示すフローチャートである。図７に図示する変形例によるデータ作成処理では、曲データが演奏パートに対応させた複数の処理トラックから構成される場合に、それら複数の処理トラックの内から所望の演奏パートに対応する処理トラックを指定し、指定した処理トラックの曲データを所定音符数単位もしくは所定小節単位で曲データブロックＫＤＢに区切るようになっている。以下、こうした変形例によるデータ作成処理の動作を説明する。
【００３３】
前述した第１実施形態と同様に、メインルーチンのステップＳＡ４（図２参照）を介して変形例によるデータ作成処理が実行されると、ＣＰＵ１３は図７に図示するステップＳＥ１に処理を進め、インタフェース部１８を介して例えば外部ＭＩＤＩ楽器もしくはメモリカードから複数の処理トラックから構成されるＭＩＤＩデータを取込んでＲＡＭ１５の曲データエリアにストアする。続いて、ステップＳＥ２では、複数の処理トラックから所望の演奏パートに対応する処理トラックを指定する。次いで、ステップＳＥ３では、小節番号レジスタを初期化する。
【００３４】
ステップＳＥ４では、同一小節内の音符数をカウントする。次いで、ステップＳＥ５では、カウントした音符数が閾値以上であるか否かを判断する。カウントした音符数が閾値以上ならば、判断結果は「ＹＥＳ」になり、ステップＳＥ７に進み、閾値以上の音符数を含む小節のＭＩＤＩデータからなる曲データブロックＫＤＢの先頭にタグＴＡＧを挿入する。
一方、カウントした音符数が閾値以上でなければ、上記ステップＳＥ５の判断結果は「ＮＯ」になり、ステップＳＥ６に進む。ステップＳＥ６では、タグＴＡＧを挿入していない小節数が閾値以上であるか否かを判断する。閾値以上でなければ、判断結果は「ＮＯ」になり、後述のステップＳＥ１０に進む。
【００３５】
これに対し、タグＴＡＧを挿入していない小節数が閾値以上であると、上記ステップＳＥ６の判断結果が「ＹＥＳ」になり、ステップＳＥ７に進み、閾値以上の小節数分のＭＩＤＩデータからなる曲データブロックＫＤＢの先頭にタグＴＡＧを挿入する。次いで、ステップＳＥ８では、挿入したタグＴＡＧに対応する曲データブロックＫＤＢの位置情報、時間情報および設定情報を設定テーブルＴＢＬに登録し、続くステップＳＥ９では、タグＴＡＧが付与された曲データブロックＫＤＢを、スライド辞書法や動的辞書法にてデータ圧縮し、ＲＡＭ１５の圧縮データエリアに保存する。
【００３６】
そして、ステップＳＥ１０では、小節番号レジスタの値が曲終端の値であるか、つまり曲中の全ての小節について処理し終えたかどうかを判断する。曲中の全ての小節について処理し終えていなければ、判断結果は「ＮＯ」になり、ステップＳＥ１１に進み、小節番号レジスタの値を歩進させて次の小節に移動させてから上述のステップＳＥ４に処理を戻す。以後、曲中の全ての小節について処理し終える迄、上述したステップＳＥ４〜ＳＥ１１を繰り返す。そして、曲中の全ての小節について処理し終えると、ステップＳＥ１０の判断結果が「ＹＥＳ」になり、本処理を終える。
【００３７】
このように、変形例では、複数の処理トラックから所望の演奏パートに対応する処理トラックを指定し、指定した処理トラックのＭＩＤＩデータを所定音符数単位もしくは所定小節単位で曲データブロックＫＤＢに区切ってデータ圧縮するので、例えば指定された演奏パートが演奏ガイドをパートや、ミュージックマイナスワンのマイナスワンパートであった場合、演奏者が弾くべきパートの密度に応じてタグＴＡＧが挿入されるため、反復練習により適したデータ形式となる。
【００３８】
［第２実施形態］
前述した第１実施形態では、図４に図示した構造の圧縮データファイルにおいて、タグＴＡＧが付加された曲データブロックＫＤＢ毎の設定情報を設定テーブルＴＢＬに登録する形態とした。これに対し、第２実施形態による圧縮データファイルでは、図８に図示する通り、タグＴＡＧ（１）が付加された先頭の曲データブロックＫＤＢ（１）の初期設定情報だけを設定テーブルＴＢＬに登録しておき、以降の曲データブロックＫＤＢ（２）〜ＫＤＢ（ｎ）の設定情報については、初期設定内容との差分が生じる毎に、その差分を表す差分設定情報を対応する曲データブロックＫＤＢの先頭に付加する形態としている。
【００３９】
次に、図８に図示した構造の圧縮データファイルを処理対象とした第２実施形態による移動処理の動作について図９を参照して説明する。前述した第１実施形態と同様、演奏処理のステップＳＣ９（図５参照）を介して第２実施形態による移動処理が実行されると、ＣＰＵ１３は図９に図示するステップＳＦ１に処理を進める。ステップＳＦ１では、ユーザ操作により指定された再生位置が、現在再生中の曲データブロックＫＤＢと同一のブロック内であるかどうかを判断する。同じブロック内ならば、判断結果は「ＹＥＳ」になり、ステップＳＦ２に進む。
【００４０】
ステップＳＦ２では、タグＴＡＧ（１）が付加された先頭の曲データブロックＫＤＢ（１）の初期設定情報を設定テーブルＴＢＬから取得すると共に、指定された再生位置を含む曲データブロックＫＤＢの時間情報を設定テーブルＴＢＬから取得する。続いて、ステップＳＦ３では、上記ステップＳＦ２にて設定テーブルＴＢＬから取得した初期設定情報に基づき、音色や再生テンポ等の設定内容を変更する。そして、ステップＳＦ４に進み、指定された再生位置を含む曲データブロックＫＤＢの先頭にジャンプする。次いで、ステップＳＦ５では、ブロック先頭に配設される差分設定情報に従い設定内容を更新して本処理を終える。
【００４１】
一方、ユーザ操作により指定された再生位置が、現在再生中の曲データブロックＫＤＢとは異なる曲データブロックＫＤＢであると、上記ステップＳＦ１の判断結果が「ＮＯ」になり、ステップＳＦ６に進む。ステップＳＦ６では、タグＴＡＧ（１）が付加された先頭の曲データブロックＫＤＢ（１）の初期設定情報を設定テーブルＴＢＬから取得すると共に、指定された再生位置のタグＴＡＧに対応する曲データブロックＫＤＢの位置情報および時間情報を設定テーブルＴＢＬから取得する。
【００４２】
そして、ステップＳＦ７では、上記ステップＳＦ６にて設定テーブルＴＢＬから取得した初期設定情報に基づき、音色や再生テンポ等の設定内容を変更する。この後、ステップＳＦ８に進み、該当タグＴＡＧに対応する曲データブロックＫＤＢを解凍する展開処理を実行する。次いで、ステップＳＦ５に進み、解凍された曲データブロックＫＤＢの先頭に配設される差分設定情報に従い設定内容を更新して本処理を終える。
【００４３】
以上のように、第２実施形態では、タグＴＡＧ（１）が付加された先頭の曲データブロックＫＤＢ（１）の初期設定情報だけを設定テーブルＴＢＬに登録しておき、以降の曲データブロックＫＤＢ（２）〜ＫＤＢ（ｎ）の設定情報については、初期設定内容との差分が生じる毎に、その差分を表す差分設定情報を対応する曲データブロックＫＤＢの先頭に付加するので、曲の途中から再生し得るように、ＭＩＤＩデータを圧縮でき、しかも展開先の容量を低減化することができる。
【００４４】
［変形例］
上述した第２実施形態では、タグＴＡＧ（１）が付加された先頭の曲データブロックＫＤＢ（１）の初期設定情報だけを設定テーブルＴＢＬに登録しておき、以降の曲データブロックＫＤＢ（２）〜ＫＤＢ（ｎ）の設定情報については、初期設定内容との差分が生じる毎に、その差分を表す差分設定情報を対応する曲データブロックＫＤＢの先頭に付加するようにした。これに対し、第２実施形態の変形例では、図１０に図示するように、初期設定情報との差分が小さいうちは、第２実施形態と同様に、差分を表す差分設定情報を対応する曲データブロックＫＤＢの先頭に付加するが、初期設定情報との差分が大きくなった場合には、新たな設定情報を定義して設定テーブルＴＢＬに登録する。
【００４５】
次に、図１０に図示した構造の圧縮データファイルを処理対象とした変形例による移動処理の動作について図１１〜図１２を参照して説明する。前述した第１実施形態と同様、演奏処理のステップＳＣ９（図５参照）を介して第２実施形態の変形例による移動処理が実行されると、ＣＰＵ１３は図１１に図示するステップＳＧ１に処理を進める。ステップＳＧ１では、ユーザ操作により指定された再生位置が、現在再生中の曲データブロックＫＤＢと同一のブロック内であるかどうかを判断する。同じブロック内ならば、判断結果は「ＹＥＳ」になり、ステップＳＧ２に進み、ユーザ操作により指定された再生位置に該当するタグＴＡＧの番号をレジスタＮｔａｇにストアする。
【００４６】
ステップＳＧ３では、該当タグＴＡＧに対応する曲データブロックＫＤＢの設定情報が設定テーブルＴＢＬに登録されているか否かを判断する。設定テーブルＴＢＬに登録されていなければ、判断結果は「ＮＯ」になり、ステップＳＧ４に進み、タグＴＡＧの番号をデクリメントして上記ステップＳＧ３に処理を戻し、１つ前のタグＴＡＧに対応する曲データブロックＫＤＢの設定情報が設定テーブルＴＢＬに登録されているか否かを判断する。
【００４７】
そして、例えば設定情報が設定テーブルＴＢＬに登録されていると、ステップＳＧ３の判断結果が「ＹＥＳ」になり、ステップＳＧ５に進み、設定テーブルＴＢＬから読み出した設定情報に基づき、音色や再生テンポ等の設定内容を変更する。次いで、ステップＳＧ６では、レジスタＮｔａｇにストアしたタグＴＡＧの番号を、現在のタグＴＡＧの番号に設定する。そして、ステップＳＧ７では、この現在のタグＴＡＧの番号で指定される曲データブロックＫＤＢの先頭にジャンプする。次いで、ステップＳＧ８では、ブロック先頭に配設される差分設定情報に従い設定内容を更新して本処理を終える。
【００４８】
一方、ユーザ操作により指定された再生位置が、現在再生中の曲データブロックＫＤＢとは異なる曲データブロックＫＤＢであると、上記ステップＳＧ１の判断結果が「ＮＯ」になり、図１２に図示するステップＳＧ９に進み、該当タグＴＡＧの番号を取得し、続くステップＳＧ１０では、取得したタグＴＡＧの番号をレジスタＮｔａｇにストアする。次いで、ステップＳＧ１１では、該当タグＴＡＧに対応する曲データブロックＫＤＢの設定情報が設定テーブルＴＢＬに登録されているか否かを判断する。設定テーブルＴＢＬに登録されていなければ、判断結果は「ＮＯ」になり、ステップＳＧ１２に進み、タグＴＡＧの番号をデクリメントして上記ステップＳＧ３に処理を戻し、１つ前のタグＴＡＧに対応する曲データブロックＫＤＢの設定情報が設定テーブルＴＢＬに登録されているか否かを判断する。
【００４９】
そして、例えば設定情報が設定テーブルＴＢＬに登録されていると、ステップＳＧ１１の判断結果が「ＹＥＳ」になり、ステップＳＧ１３に進み、設定テーブルＴＢＬから読み出した設定情報に基づき、音色や再生テンポ等の設定内容を変更する。次いで、ステップＳＧ１４では、レジスタＮｔａｇにストアしたタグＴＡＧの番号を、現在のタグＴＡＧの番号に設定する。そして、ステップＳＧ１５では、該当タグＴＡＧに対応する曲データブロックＫＤＢを解凍する展開処理を実行する。この後、ステップＳＧ８に進み、解凍された曲データブロックＫＤＢの先頭に配設される差分設定情報に従い設定内容を更新して本処理を終える。
【００５０】
以上のように、第２実施形態の変形例では、初期設定情報との差分が小さいうちは、差分を表す差分設定情報を対応する曲データブロックＫＤＢの先頭に付加し、初期設定情報との差分が大きくなった場合には、新たな設定情報を定義して設定テーブルＴＢＬに登録するので、曲の途中から再生し得るように、ＭＩＤＩデータを圧縮でき、しかも展開先の容量を低減化することができる。
【図面の簡単な説明】
【００５１】
【図１】本発明による第１実施形態の構成を示すブロック図である。
【図２】メインルーチンの動作を示すフローチャートである。
【図３】データ作成処理の動作を示すフローチャートである。
【図４】圧縮データファイルの構造を示す図である。
【図５】演奏処理の動作を示すフローチャートである。
【図６】移動処理の動作を示すフローチャートである。
【図７】第１実施形態の変形例によるデータ作成処理の動作を示すフローチャートである。
【図８】第２実施形態による圧縮データファイルの構造を示す図である。
【図９】第２実施形態による移動処理の動作を示すフローチャートである。
【図１０】第２実施形態の変形例による圧縮データファイルの構造を示す図である。
【図１１】第２実施形態の変形例による移動処理の動作を示すフローチャートである。
【図１２】第２実施形態の変形例による移動処理の動作を示すフローチャートである。
【符号の説明】
【００５２】
１０  鍵盤
１１  操作部
１２  表示部
１３  ＣＰＵ
１４  ＲＯＭ
１５  ＲＡＭ
１６  音源
１７  サウンドシステム
１８  インタフェース部
【図１】
0004807662.tif 000002
【図２】
0004807662.tif 000003
【図３】
0004807662.tif 000004
【図４】
0004807662.tif 000005
【図５】
0004807662.tif 000006
【図６】
0004807662.tif 000007
【図７】
0004807662.tif 000008
【図８】
0004807662.tif 000009
【図９】
0004807662.tif 000010
【図１０】
0004807662.tif 000011
【図１１】
0004807662.tif 000012
【図１２】
0004807662.tif 000013