(57)【要約】      （修正有）【課題】初心者でも左右の両手の動きを協調させたリズム練習を可能にするリズム表示装置を提供する。【解決手段】ＣＰＵは、左右両手パートから構成される曲を表す演奏データから生成したリズムデータ（右）およびリズムデータ（左）に、一方のパートが消音状態で他方のパートが発音タイミング、両パートが同時に発音タイミング、一方のパートが発音中に他方のパートが発音タイミングを表す発音フラグを付与する。リズムデータ（右）およびリズムデータ（左）をリズム練習パターンとして表示する際に、当該リズム練習パターンにおけるリズムの表示形態を発音フラグの種類に応じて異ならせて両手でリズム練習する際に留意すべきタイミングをガイド表示する。【選択図】図１１
2014186163.tif 000002
【特許請求の範囲】
【請求項１】
複数パートから構成される曲を表す演奏データからパート毎のリズムデータを生成するリズムデータ生成手段と、
前記リズムデータ生成手段により生成されたパート毎のリズムデータに基づいて、発音タイミングに応じた種類の発音フラグを付与する発音フラグ付与手段と、
前記リズムデータ生成手段により生成されたパート毎のリズムデータを、それぞれ対応するパートのリズムパターンとして表示すると共に、各リズムパターンにおけるリズムの表示形態を、前記発音フラグ付与手段により付与された発音フラグの種類に応じて異ならせて、発音タイミングをガイド表示するリズム表示手段と
を具備することを特徴とするリズム表示装置。
【請求項２】
前記発音フラグ付与手段は、
ひとつのパートが消音状態で他のパートが発音タイミングとなるリズムデータに第１の発音フラグを付与する第１の付与手段と、
全パートが同時に発音タイミングとなるリズムデータに第２の発音フラグを付与する第２の付与手段と、
ひとつのパートが発音中に他のパートが発音タイミングとなるリズムデータに第３の発音フラグを付与する第３の付与手段と
を備えることを特徴とする請求項１記載のリズム表示装置。
【請求項３】
前記発音フラグ付与手段により付与された発音フラグの種類に応じた口唱文字を、前記リズム表示手段により表示されるリズムパターンに合わせて表示する口唱文字表示手段を更に備えることを特徴とする請求項１または２に記載のリズム表示装置。
【請求項４】
各パートに存在するライン毎にリズムデータを区別するためのラインフラグを付与するラインフラグ付与手段をさらに備え、
前記リズム表示手段は、前記ラインフラグ付与手段により付与されたラインフラグに応じて、各パートに存在するラインごとに前記表示されたリズムパターンを区別して表示する、
ことを特徴とする請求項１から３のいずれかに記載のリズム表示装置。
【請求項５】
リズム入力操作に応じて発生するパート毎の入力リズムデータを、それぞれ前記リズム表示手段により表示される各パートのリズムパターンに対応させて表示する入力リズム表示手段を更に備えることを特徴とする請求項１から４のいずれかに記載のリズム表示装置。
【請求項６】
前記請求項１から４のいずれかに記載のリズム表示装置と、
各パートのリズム入力操作を行わせる入力手段と、
前記入力手段によるリズム入力操作に応じた発音を行う発音手段と、
前記入力手段によるリズム入力操作に応じて発生するパート毎の入力リズムデータを、それぞれ前記リズム表示手段により表示される各パートのリズムパターンに対応させて表示する入力リズム表示手段を備えることを特徴とする電子楽器。
【請求項７】
複数パートから構成される曲を表す演奏データからパート毎のリズムデータを生成するリズムデータ生成過程と、
前記リズムデータ生成過程で生成されたパート毎のリズムデータに基づいて、発音タイミングに応じた種類の発音フラグを付与する発音フラグ付与過程と、
前記リズムデータ生成過程で生成されたパート毎のリズムデータを、それぞれ対応するパートのリズムパターンとして表示すると共に、各リズムパターンにおけるリズムの表示形態を、前記発音フラグ付与過程で付与された発音フラグの種類に応じて異ならせて、発音タイミングをガイド表示するリズム表示過程と
を具備することを特徴とするリズム表示方法。
【請求項８】
コンピュータに、
複数パートから構成される曲を表す演奏データからパート毎のリズムデータを生成するリズムデータ生成ステップと、
前記リズムデータ生成ステップで生成されたパート毎のリズムデータに基づいて、発音タイミングに応じた種類の発音フラグを付与する発音フラグ付与ステップと、
前記リズムデータ生成ステップで生成されたパート毎のリズムデータを、それぞれ対応するパートのリズムパターンとして表示すると共に、各リズムパターンにおけるリズムの表示形態を、前記発音フラグ付与ステップで付与された発音フラグの種類に応じて異ならせて、発音タイミングをガイド表示するリズム表示ステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、初心者でも左右の両手の動きを協調させたリズム練習を可能にするリズム表示装置、電子楽器、リズム表示方法およびプログラムに関する。
【背景技術】
【０００２】
音楽的な技能や知識を持たない初心者でも容易にリズム練習を可能する装置として、例えば特許文献１には、リズム練習用の楽曲データの各音符や各休符の長さを、例えば４分音符なら「タン」、４分休符なら「うん」等のように、ユーザに分かり易いリズム口唱文字列を伴う譜面に変換して画面表示することでリズム練習させるリズム練習システムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４６６６５９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、初心者が右手パートおよび左手パートのリズム練習を行う場合、単に片手パートずつのリズム練習を繰り返しても、両手の動きを協調させたリズム練習をすることが出来ない為に上手く行かないことが多い。つまり、両手の動きを協調させたリズム練習とは、具体的には両手同時に発音する箇所、一方のパートのサステイン中に他方のパートで発音する箇所、片手パートのみ発音する箇所などを意識した上で、左右両手パートの２つのシーケンスを、あたかも１つのシーケンスと捉えてリズム練習する形態であり、こうした練習形態は上記特許文献１に開示の装置では叶わず、結局、両手の動きを協調させたリズム練習を行うことが出来ない、という問題がある。
【０００５】
本発明は、このような事情に鑑みてなされたもので、初心者でも左右の両手の動きを協調させたリズム練習を行うことができるリズム表示装置、電子楽器、リズム表示方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明のリズム表示装置は、複数パートから構成される曲を表す演奏データからパート毎のリズムデータを生成するリズムデータ生成手段と、前記リズムデータ生成手段により生成されたパート毎のリズムデータに基づいて、発音タイミングに応じた種類の発音フラグを付与する発音フラグ付与手段と、前記リズムデータ生成手段により生成されたパート毎のリズムデータを、それぞれ対応するパートのリズムパターンとして表示すると共に、各リズムパターンにおけるリズムの表示形態を、前記発音フラグ付与手段により付与された発音フラグの種類に応じて異ならせて、発音タイミングをガイド表示するリズム表示手段とを具備することを特徴とする。
【０００７】
本発明の電子楽器は、上記リズム表示装置と、各パートのリズム入力操作を行わせる入力手段と、前記入力手段によるリズム入力操作に応じた発音を行う発音手段と、前記入力手段によるリズム入力操作に応じて発生するパート毎の入力リズムデータを、それぞれ前記リズム表示手段により表示される各パートのリズムパターンに対応させて表示する入力リズム表示手段を備えることを特徴とする。
【０００８】
本発明のリズム表示方法では、複数パートから構成される曲を表す演奏データからパート毎のリズムデータを生成するリズムデータ生成過程と、前記リズムデータ生成過程で生成されたパート毎のリズムデータに基づいて、発音タイミングに応じた種類の発音フラグを付与する発音フラグ付与過程と、前記リズムデータ生成過程で生成されたパート毎のリズムデータを、それぞれ対応するパートのリズムパターンとして表示すると共に、各リズムパターンにおけるリズムの表示形態を、前記発音フラグ付与過程で付与された発音フラグの種類に応じて異ならせて、発音タイミングをガイド表示するリズム表示過程とを具備することを特徴とする。
【０００９】
さらに、本発明によるプログラムでは、コンピュータに、複数パートから構成される曲を表す演奏データからパート毎のリズムデータを生成するリズムデータ生成ステップと、前記リズムデータ生成ステップで生成されたパート毎のリズムデータに基づいて、発音タイミングに応じた種類の発音フラグを付与する発音フラグ付与ステップと、前記リズムデータ生成ステップで生成されたパート毎のリズムデータを、それぞれ対応するパートのリズムパターンとして表示すると共に、各リズムパターンにおけるリズムの表示形態を、前記発音フラグ付与ステップで付与された発音フラグの種類に応じて異ならせて、発音タイミングをガイド表示するリズム表示ステップとを実行させることを特徴とする。
【発明の効果】
【００１０】
本発明では、初心者でも左右の両手の動きを協調させたリズム練習を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】実施の一形態によるリズム表示装置１００の全体構成を示すブロック図である。
【図２】ＲＯＭ１１のデータ構成を示すメモリマップである。
【図３】ＲＡＭ１２の主要データ構成を示すメモリマップである。
【図４】メインルーチンの動作を示すフローチャートである。
【図５】リズムデータ生成処理の動作を示すフローチャートである。
【図６】リズムデータ生成処理の動作を示すフローチャートである。
【図７】リズム練習処理の動作を示すフローチャートである。
【図８】入力受付処理の動作を示すフローチャートである。
【図９】入力受付処理の動作を示すフローチャートである。
【図１０】リズム練習表示処理の動作を示すフローチャートである。
【図１１】リズムデータの元となる演奏データを楽譜表示した一例およびリズム練習表示の一例（リズム練習パターン１）を示す図である。
【図１２】リズム練習表示の一例（リズム練習パターン２）を示す図である。
【図１３】リズム練習表示の一例（リズム練習パターン３）を示す図である。
【図１４】リズム練習表示の一例（リズム練習パターン４）を示す図である。
【図１５】発音フラグとラインフラグを説明するための図である。
【図１６】リズム練習表示画面におけるリズム入力表示の一例を示す図である。
【図１７】口唱文字表示の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態について説明する。
Ａ．構成
図１は、実施の一形態によるリズム表示装置１００の全体構成を示すブロック図である。この図において、ＣＰＵ１０は、ＭＩＤＩインタフェース１５を介して外部のＭＩＤＩ楽器２０から入力される演奏情報に基づき音源１６に楽音発生を指示する通常の楽器機能の他に、リズム練習機能を具備する。リズム練習機能とは、練習曲の演奏データから生成させたリズムデータに従って拍タイミングや小節タイミングをメトロノーム音でユーザに報知すると共に、表示部１４の表示画面においてリズム練習パターンやリズム口唱を表示してユーザに音符の種類と音長との対応付けを視覚的に認識させながら、左右の両手の動きを協調させたリズム練習を行わせる機能を指す。本発明の要旨に係わるＣＰＵ１０のリズム練習機能については追って詳述する。
【００１３】
ＲＯＭ１１は、図２に図示するように、プログラムエリアＰＥおよび曲情報エリアＫＤＥを備える。ＲＯＭ１１のプログラムエリアＰＥには、ＣＰＵ１０にロードされる各種の制御プログラムが記憶される。各種の制御プログラムとは、後述のメインルーチン、メインルーチンを構成するリズムデータ生成処理およびリズム練習処理を含む。なお、リズム練習処理は、入力受付処理およびリズム練習表示処理を含む。
【００１４】
ＲＯＭ１１の曲情報エリアＫＤＥには、リズム練習に供する曲の拍子データ（分母／分子）、演奏データエリアＰＤＥ、曲の各小節［０］〜［ｍ］（ｍ：小節数＋１）毎の再生開始時間を表す小節再生時間［０］〜［ｍ］および口唱文字データが記憶される。
【００１５】
演奏データエリアＰＤＥには、曲のテンポを表すＢＰＭ値と、当該曲を構成する各音符や休符を表す演奏データ［０］〜［ｎ］が記憶される。一つの演奏データは、発音時刻、発音時間（音長）、消音時刻、音高および演奏パートから構成される。演奏パートは右手パート／左手パートを区別する。口唱文字データとは、左右両手パートの２つのシーケンスを、１つのシーケンスとしてリズム表現する口唱文字「ダ」、「タ」、「ト」からなる。なお、例えば口唱文字「ダ」は両手同時に発音する箇所、口唱文字「タ」は一方のパートのサステイン中に他方のパートで発音する箇所、口唱文字「ト」は片手パートのみ発音する箇所を示す。
【００１６】
ＲＡＭ１２は、図３に図示するワークエリアＷＥを備える。このワークエリアＷＥには、後述するメインルーチンで用いられる各種変数を一時記憶するレジスタが設けられる。以下、本発明の要旨に係わる主要な変数（レジスタ）について説明する。
【００１７】
「ＢＰＭ」は、ＲＯＭ１１の演奏データエリアＰＤＥから読み出され、曲のテンポ（速さ）を表すデータ（１分間当たりの４分音符数）である。このＢＰＭは、曲頭で定義される初期ＢＰＭの他、曲内容によっては曲進行に応じて現在ＢＰＭが変化する。「現在時刻」は、メトロノーム動作を管理する現在の時刻である。「前回拍時刻」は、メトロノーム動作が前回拍頭タイミングとなった時刻である。「開始時刻」は、メトロノーム動作をスタートした時刻である。「前回小節時刻」は、メトロノーム動作が前回小節頭タイミングとなった時刻である。「再生時間」は、（現在時刻−開始時刻）×テンポ調整係数で算出される時間である。なお、テンポ調整係数は、現在ＢＰＭ値／初期ＢＭＰ値から算出される補正値である。
【００１８】
「カーソル座標」は、リズム練習表示画面（後述する）において、現在のタイミングを示すカーソルの位置座標である。「始点座標」は、リズム練習表示画面（後述する）において、リズム入力が一時的に描かれる際の始点位置座標である。「終点座標」は、リズム練習表示画面（後述する）において、リズム入力が一時的に描かれる際の終点位置座標である。「リズム練習開始小節」は、演奏データの中でリズム練習する範囲の始まりとなる小節である。「リズム練習終了小節」は、演奏データの中でリズム練習する範囲の終わりとなる小節である。
【００１９】
「最大ライン数（右）」は、右手パートのリズム練習の最大ライン数である。「最大ライン数（左）」は、左手パートのリズム練習の最大ライン数である。「音符インデクスアレイ（右）」は、リズム練習する小節内にある右手パートの音符を指定するインデクス列である。「音符インデクスアレイ（左）」は、リズム練習する小節内にある左手パートの音符を指定するインデクス列である。
【００２０】
「右手入力データ［１］〜「５」」には、右手の各指（親指［１］、人差し指［２］、中指［３］、薬指［４］および小指［５］）の入力データとして、これら各指に対応して各々設けられたリズムパッドが押下された場合に「ＯＮ状態：１」、離された場合に「ＯＦＦ状態：０」がセットされ、かつ「ＯＮ状態：１」であれば、発音時の再生時刻がストアされる。「左手入力データ［１］〜「５」」には、左手の各指（親指［１］、人差し指［２］、中指［３］、薬指［４］および小指［５］）の入力データとして、各指に対応して各々設けられたリズムパッドが押下された場合に「ＯＮ状態：１」、離された場合に「ＯＦＦ状態：０」がセットされ、かつ「ＯＮ状態：１」であれば、発音時の再生時刻がストアされる。
【００２１】
「前回右手入力データ」は、上記「右手入力データ［１］〜「５」」と同一のデータ構成であり、前回入力（最新より１つ前）された右手入力データ［１］〜「５」を保持する。「前回左手入力データ」は、上記「左手入力データ［１］〜「５」」と同一のデータ構成であり、前回入力（最新より１つ前）された左手入力データ［１］〜「５」を保持する。
【００２２】
「リズムデータアレイ（右）」には、上記「リズム練習開始小節」から「リズム練習終了小節」に含まれる、演奏データ中の右手パートの各音符から生成させたリズムデータ１〜ｎが保持される。リズムデータは、発音時刻、発音時間（音長）、始点座標、終点座標、演奏パート、発音フラグおよびラインフラグから構成される。なお、始点座標および終点座標は、リズム練習表示画面（後述する）において、手本となるリズムの入力位置を表す。演奏パートは右手パート／左手パートを区別する。発音フラグおよびラインフラグが意図するところについては追って述べる。「リズムデータアレイ（左）」には、「リズムデータアレイ（右）」と同一のデータ構成による、演奏データ中の左手パートの各音符から生成させたリズムデータ１〜ｎが保持される。
【００２３】
「入力リズムデータアレイ（右）」には、上記「右手入力データ［１］〜「５」」および「前回右手入力データ」に基づき入力受付処理（後述する）により生成される右手パートのリズムデータ列が保持される。「入力リズムデータアレイ（左）」には、上記「左手入力データ［１］〜「５」」および「前回左手入力データ」に基づき入力受付処理（後述する）により生成される左手パートのリズムデータ列が保持される。
【００２４】
一時保存リズムデータ（右）には、入力受付処理（後述する）において、入力の始点が決まっていて終点が決まっていない右手パートの入力リズムデータアレイ（右）が一時記憶される。一時保存リズムデータ（左）には、入力受付処理（後述する）において、入力の始点が決まっていて終点が決まっていない左手パートの入力リズムデータアレイ（左）が一時記憶される。
【００２５】
再び図１を参照して実施形態の構成について説明を進める。図１において、操作部１３は、装置パネルに配設される各種操作スイッチを有し、ユーザ操作されるスイッチ種に対応したスイッチイベントを発生する。操作部１３に配設される主要なスイッチとしては、例えばパワーオンオフする電源スイッチの他、リズム練習する箇所の変更を指示する変更スイッチや、押下操作に応じて「リズム練習の開始」又は「リズム練習の停止」を交互に指示するトグルスイッチとして機能するスタートストップスイッチ等がある。また、操作部１３には、リズム練習用の操作子として、左右両手の各指に対応して設けられた１０個のリズムパッド（不図示）を備える。リズムパッドは、オン操作（押下する操作）された場合にオンイベントのリズム入力信号を発生し、オフ操作（押下を離す操作）された場合にオフイベントのリズム入力信号を発生する。
【００２６】
表示部１４は、ＣＰＵ１０から供給される表示制御信号に応じて、例えば図１６に図示するリズム練習表示画面を表示する。リズム練習表示画面では、曲のテンポに応じてカーソルが移動表示され、ユーザに入力タイミングをガイドする。また、リズム練習表示画面では、画面の中央にリズム練習する小節区間Ｋがライン表示される。リズム練習表示画面においてライン表示される小節区間Ｋの上部には右手パートの手本となるリズムデータ（右）およびユーザが入力した右手パートの入力リズムアレイ（右）が表示され、一方、小節区間Ｋの下部には左手パートの手本となるリズムデータ（左）およびユーザが入力した左手パートの入力リズムアレイ（左）が表示される。
【００２７】
さらに、右手パートの手本となるリズムデータ（右）には、左右両手パートの２つのシーケンスを、１つのシーケンスとしてリズム表現する為の口唱文字データが文字表示される。具体的には、左右両手同時に発音するタイミングでは口唱文字「ダ」、一方のパートのサステイン中に他方のパートで発音するタイミングでは口唱文字「タ」、一方のパートのみ発音するタイミングでは口唱文字「ト」を表示する。
【００２８】
ＭＩＤＩインタフェース部１５は、ＣＰＵ１０の制御の下に、外部のＭＩＤＩ楽器２０から出力されるＭＩＤＩイベントを取り込む。なお、リズム練習モード下でＭＩＤＩインタフェース部１５がＭＩＤＩ楽器２０からノートイベントを取り込む場合には、リズム入力信号として扱われる。すなわちＭＩＤＩ楽器２０の鍵盤（不図示）を右手鍵域および左手鍵域に分割し、かつ右手／左手鍵域においてそれぞれ親指から小指までを割り当てた各指定鍵の押離鍵操作に応じて発生するオン／オフイベントを、上記リズムパッドの出力と同様に、リズム入力信号として取り込むようになっている。
【００２９】
音源１６は、周知の波形メモリ読み出し方式によって構成される。音源１６は、ＣＰＵ１０の指示に従い、例えば一拍経過する毎に例えば「ポッ」というメトロノーム音（副音）を発音させたり、一小節経過する毎に「ピッ」というメトロノーム音（主音）を発音させたりする他、操作部１３のリズムパッドのオンオフ操作（もしくはＭＩＤＩ楽器２０における各指定鍵の押離鍵操作）に対応したリズム音を発生する。サウンドシステム１７は、音源１６から出力される楽音データをアナログ形式の楽音信号に変換した後、その楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカより発音させる。
【００３０】
Ｂ．動作
次に、図４〜図１７を参照して上記構成によるリズム表示装置１００の動作を説明する。以下では、リズム表示装置１００のＣＰＵ１０を動作主体として、当該ＣＰＵ１０が実行するメインルーチン、メインルーチンからコールされるリズムデータ生成処理およびリズム練習処理の各動作について述べる。なお、リズム練習処理は、入力受付処理およびリズム練習表示処理を含む。
【００３１】
（１）メインルーチンの動作
図４は、メインルーチンの動作を示すフローチャートである。メインルーチンは、本発明に係るリズム練習の実行が指示された場合に実行される。ＣＰＵ１０は、先ず図４に図示するステップＳＡ１に進み、装置各部をイニシャライズ（初期化）し終えた後、リズム練習する曲の中からリズム練習開始小節とリズム練習終了小節とを設定する設定処理を実行する。
【００３２】
リズム練習する曲のリズム練習開始小節とリズム練習終了小節とを設定し終えると、ステップＳＡ２を介してリズムデータ生成処理を実行する。リズムデータ生成処理では、後述するように、ＲＯＭ１１の演奏データエリア（図２参照）から、ユーザ指定のリズム練習開始小節からリズム練習終了小節までの演奏データを読み出し、これに基づき右手パートのリズムデータ（右）および左手パートのリズムデータ（左）を生成する。
【００３３】
続いて、ステップＳＡ３では、リズム練習処理を実行する。リズム練習処理では、後述するように、リズム練習中であると、開始時刻からの経過時間（現在時刻−開始時刻）にテンポ調整係数（現在ＢＰＭ値／初期ＢＭＰ値）を乗算して得た再生時間が一拍分経過する毎に、現在時刻を前回拍時刻として記憶させて更新する一方、一拍経過を報知するメトロノーム音（例えば「ポッ」という副音）の発音を音源１６に指示する。また、再生時間が一小節分経過する毎に、現在時刻を前回小節時刻として記憶させて更新する一方、一小節分の時間経過を報知するメトロノーム音（例えば「ピッ」という主音）の発音を音源１６に指示する。さらに、再生時間に同期してカーソル（図１６参照）の座標位置を更新する。加えて、ユーザによる左右両手のリズムパッド操作で生じる入力リズムデータ（右）、（左）を取り込み、手本となるリズムデータ（右）、（左）に合わせてリズム練習表示画面に表示する。
【００３４】
そして、リズム練習開始小節からリズム練習終了小節までのリズム練習を終えてステップＳＡ４に進むと、変更スイッチ操作に応じた練習箇所変更の有無を判別する。練習箇所変更が有ると、ここでの判断結果は「ＹＥＳ」になり、上記ステップＳＡ１に処理を戻し、変更された練習箇所に応じて開始小節および終了小節を設定しなおして、再度リズムデータ生成処理（ステップＳＡ２）およびリズム練習処理（ステップＳＡ３）を繰り返す。
【００３５】
一方、練習箇所変更が無ければ、上記ステップＳＡ４の判断結果は「ＮＯ」になり、ステップＳＡ５に進む。ステップＳＡ５では、終了操作の有無を判断し、終了操作が為されていなければ、判断結果は「ＮＯ」になり、上記ステップＳＡ３に処理を戻してリズム練習を繰り返す。これに対し、ユーザが終了操作を行うと、上記ステップＳＡ５の判断結果が「ＹＥＳ」になり、本メインルーチンを終える。
【００３６】
（２）リズムデータ生成処理の動作
次に、図５を参照してリズムデータ生成処理の動作を説明する。上述したメインルーチンのステップＳＡ２（図４参照）を介して本処理が実行されると、ＣＰＵ１０は図５に図示するステップＳＢ１に進み、ポインタｉにリズム練習開始小節をセットする。続いて、ステップＳＢ２では、音符（演奏データ）を指定するポインタｊをゼロリセットする。なお、ポインタｊで指定される音符とは、ＲＯＭ１１の演奏データエリアＰＤＥ（図２参照）に記憶される演奏データ［ｊ］である。
【００３７】
次いで、ステップＳＢ３では、ポインタｊで指定される音符（演奏データ［ｊ］）が、ポインタｉで指定される小節（以後、ポインタｉで指定される小節を小節ｉと記す）に含まれるか否かを判断する。音符（演奏データ［ｊ］）が小節ｉに含まれるか否かは、ＲＯＭ１１の曲情報エリアＫＤＥ（図２参照）に記憶される小節再生時間［ｉ］に基づき判断する。
【００３８】
音符（演奏データ［ｊ］）が小節ｉに含まれなければ、上記ステップＳＢ３の判断結果が「ＮＯ」になり、ステップＳＢ７に進む。ステップＳＢ７では、ポインタｊをインクリメントして歩進させ、続くステップＳＢ８では、歩進されたポインタｊが楽曲の全ての音符数（演奏データ数）を超えたか否かを判断する。
【００３９】
楽曲の全ての音符（演奏データ）を読み出し終えていなければ、上記ステップＳＢ８の判断結果は「ＮＯ」となり、上記ステップＳＢ３に処理を戻す。そして、音符（演奏データ［ｊ］）が小節ｉに含まれると、上記ステップＳＢ３の判断結果は「ＹＥＳ」になり、ステップＳＢ４に進む。ステップＳＢ４では、音符（演奏データ［ｊ］）が右手パートであるか否かを判断する。音符（演奏データ［ｊ］）が右手パートならば、判断結果は「ＹＥＳ」になり、ステップＳＢ５に進み、ＲＡＭ１２のワークエリアＷＥ（図３参照）に設けられる音符インデクスリスト（右）に、ポインタｊの値を音符インデクスとしてストアした後、ステップＳＢ７に進む。
【００４０】
一方、音符（演奏データ［ｊ］）が左手パートであると、上記ステップＳＢ４の判断結果は「ＮＯ」になり、ステップＳＢ６に進み、ＲＡＭ１２のワークエリアＷＥ（図３参照）に設けられる音符インデクスリスト（左）に、ポインタｊの値を音符インデクスとしてストアした後、ステップＳＢ７に進み、ポインタｊをインクリメントして歩進させ、続くステップＳＢ８では、歩進されたポインタｊが楽曲の全ての音符数（演奏データ数）を超えたか否かを判断する。以後、楽曲の全ての音符（演奏データ）を読み出し終える迄、上記ステップＳＢ３〜ＳＢ８を繰り返す。すなわち、このステップＳＢ３とステップＳＢ８の判断を含む一連の処理ループにより、小節ｉの全ての音符が順次処理対象として処理されることとなる。
【００４１】
そして、小節ｉの音符（演奏データ）を読み出し終え、歩進されたポインタｊが楽曲の全ての音符数（演奏データ数）を超えると、上記ステップＳＢ８の判断結果が「ＹＥＳ」になり、ステップＳＢ９に進む。ステップＳＢ９〜ＳＢ１４では、音符インデクスリスト（右）において音符インデクスｋで指定される音符（演奏データ［ｋ］）に基づき生成させたリズムデータを、ＲＡＭ１２のワークエリアＷＥのリズムデータ（右）にセットする。
【００４２】
すなわち、先ずステップＳＢ９では、音符インデクスｋをゼロリセットし、続くステップＳＢ１０では、音符インデクスリスト（右）において、音符インデクスｋで指定される演奏データ［ｋ］からリズムデータを生成する。具体的には、生成元の演奏データから発音時刻、発音時間（音長）、音高および演奏パートを取得した後、当該発音時刻および発音時間（音長）を表示画面上の表示位置となる始点座標、終点座標に変換する。そして、こうして得られたリズムデータをリズムデータ（右）にセットする。次いで、ステップＳＢ１１では、上記ステップＳＢ１０で生成されたリズムデータについてラインフラグを設定する。
【００４３】
ラインフラグは、次の手順ａ〜ｃに従って設定する。
ａ．右手パート内で同時刻に発音する音符（演奏データ）をセレクトする。それ以外の音符（演奏データ）から生成させたリズムデータのラインフラグを「０」にセットする。
ｂ．上記ａ項でセレクトされた音符（演奏データ）の中で発音時刻と消音時刻とが一致するものは和音として同ラインと見なし、該当するリズムデータのラインフラグを「０」にセットする。
ｃ．上記ａ項でセレクトされた音符（演奏データ）の中で発音時刻と消音時刻とが一致しないものに対して音高の高い順にフラグ値を割り当てたラインフラグ「フラグ値：１〜ｎ」をセットする。
【００４４】
続いて、ステップＳＢ１２では、右手パートで判定対象とされた音符（リズムデータ）に対して他のラインが存在する場合、音高の高い順にラインフラグの値をインクリメントし、その結果に応じてＲＡＭ１２のワークエリアＷＥに格納される最大ライン数（右）を更新する。次いで、ステップＳＢ１３では、音符インデクスｋをインクリメントして歩進させ、続くステップＳＢ１４では、歩進された音符インデクスｋの値が音符インデクスリスト（右）の大きさを超えたか否かを判断する。
【００４５】
歩進された音符インデクスｋの値が音符インデクスリスト（右）の大きさを超えていなければ、上記ステップＳＢ１４の判断結果は「ＮＯ」になり、上述したステップＳＢ１０に処理を戻す。以後、音符インデクスリスト（右）に登録された１小節分の音符（演奏データ）からリズムデータを生成し終える迄、上記ステップＳＢ９〜ＳＢ１４を繰り返す。
【００４６】
そして、音符インデクスリスト（右）に登録された１小節分の音符（演奏データ）から右手パートの１小節分のリズムデータを生成し終えると、上記ステップＳＢ１４の判断結果が「ＹＥＳ」になり、図６に図示するステップＳＢ１５に処理を進める。
なお、例えば図１１（ａ）に図示する楽譜で表現される演奏データ（右手パート）の第１小節から生成されるリズムデータ（右）について、上述のステップＳＢ１１でラインフラグをセットした場合、図１５に図示するように、右手パートにおける第１小節のリズムデータには、全てラインフラグ「０」がセットされる。
【００４７】
続いて、図６に図示するステップＳＢ１５〜ＳＢ２１では、音符インデクスリスト（左）において音符インデクスＬで指定される音符（演奏データ［Ｌ］）に基づき生成させたリズムデータを、ＲＡＭ１２のワークエリアＷＥのリズムデータ（左）にセットする。
【００４８】
すなわち、先ずステップＳＢ１５では、音符インデクスＬをゼロリセットし、続くステップＳＢ１６では、音符インデクスリスト（左）において、音符インデクスＬで指定される演奏データ［Ｌ］からリズムデータを生成する。具体的には、生成元の演奏データから発音時刻、発音時間（音長）、音高および演奏パートを取得した後、当該発音時刻および発音時間（音長）を表示画面上の表示位置となる始点座標、終点座標に変換する。そして、こうして得られたリズムデータをＲＡＭ１２のワークエリアＷＥのリズムデータ（左）にセットする。次いで、ステップＳＢ１７では、上記ステップＳＢ１６で生成されたリズムデータのラインフラグを設定する。
【００４９】
ラインフラグは、前述したステップＳＢ１１と同様、次の手順ａ〜ｃに従って設定する。
ａ．左手パート内で同時刻に発音する音符（演奏データ）をセレクトする。それ以外の音符（演奏データ）から生成させたリズムデータのラインフラグを「０」にセットする。
ｂ．上記ａ項でセレクトされた音符（演奏データ）の中で発音時刻と消音時刻とが一致するものは和音として同ラインと見なし、該当するリズムデータのラインフラグを「０」にセットする。
ｃ．上記ａ項でセレクトされた音符（演奏データ）の中で発音時刻と消音時刻とが一致しないものに対して音高の高い順にフラグ値を割り当てたラインフラグ「フラグ値：１〜ｎ」をセットする。
【００５０】
続いて、ステップＳＢ１８では、左手パートで判定対象とされた音符（リズムデータ）に対して他のラインが存在する場合、音高の高い順にラインフラグの値をインクリメントし、その結果に応じてＲＡＭ１２のワークエリアＷＥに格納される最大ライン数（左）を更新する。次いで、ステップＳＢ１９では、リズムデータ（右）、（左）の発音フラグを設定してリズムデータ（右）、（左）を更新する。
【００５１】
リズムデータ（右）の発音フラグを設定する場合には、次の手順ａ〜ｃに従って行う。なお、以下の手順において、フラグ設定対象とされた音符（リズムデータ）とは音符インデクスＬで指定される音符（リズムデータ）を指す。
【００５２】
ａ．右手パートでフラグ設定対象とされた音符（リズムデータ）の発音時刻が、左手パートの何れかの音符（リズムデータ）の発音時刻または発音時間の何れにも一致しなければ、当該フラグ設定対象の音符（リズムデータ）の発音フラグを「０」にセットする。
ｂ．右手パートでフラグ設定対象とされた音符（リズムデータ）の発音時刻が、左手パートの何れかの音符（リズムデータ）の発音時刻に一致する場合に、当該フラグ設定対象の音符（リズムデータ）の発音フラグを「１」にセットする。
ｃ．右手パートでフラグ判定対象とされた音符（リズムデータ）の発音時刻が、左手パートの何れかの音符（リズムデータ）の発音時間に一致する場合に、当該フラグ設定対象の音符（リズムデータ）の発音フラグを「２」にセットする。
【００５３】
また、リズムデータ（左）の発音フラグを設定する場合には、次の手順ｄ〜ｆに従って行う。なお、以下の手順において、フラグ設定対象とされた音符（リズムデータ）とは音符インデクスＬで指定される音符（リズムデータ）を指す。
【００５４】
ｄ．左手パートでフラグ設定対象とされた音符（リズムデータ）の発音時刻が、右手パートの何れかの音符（リズムデータ）の発音時刻または発音時間の何れにも一致しなければ、当該フラグ設定対象の音符（リズムデータ）の発音フラグを「０」にセットする。
ｅ．左手パートでフラグ設定対象とされた音符（リズムデータ）の発音時刻が、右手パートの何れかの音符（リズムデータ）の発音時刻に一致する場合に、当該フラグ設定対象の音符（リズムデータ）の発音フラグを「１」にセットする。
ｆ．左手パートでフラグ判定対象とされた音符（リズムデータ）の発音時刻が、右手パートの何れかの音符（リズムデータ）の発音時間に一致する場合に、当該フラグ設定対象の音符（リズムデータ）の発音フラグを「２」にセットする。
【００５５】
さて、こうしてリズムデータ（右）、（左）の発音フラグを設定してリズムデータ（右）、（左）を更新し終えると、ステップＳＢ２０に進み、音符インデクスＬをインクリメントして歩進させ、続くステップＳＢ２１では、歩進された音符インデクスＬの値が音符インデクスリスト（左）の大きさを超えたか否かを判断する。
【００５６】
歩進された音符インデクスＬの値が音符インデクスリスト（左）の大きさを超えていなければ、上記ステップＳＢ２１の判断結果は「ＮＯ」になり、上述したステップＳＢ１６に処理を戻す。以後、音符インデクスリスト（左）に登録された１小節分の音符（演奏データ）からリズムデータを生成し終える迄、上記ステップＳＢ１６〜ＳＢ２１を繰り返す。
【００５７】
そして、音符インデクスリスト（左）に登録された１小節分の音符（演奏データ）から左手パートの１小節分のリズムデータを生成し終えると、上記ステップＳＢ２１の判断結果が「ＹＥＳ」になり、ステップＳＢ２２に進み、小節ｉをインクリメントして歩進させた後、ステップＳＢ２３に進む。ステップＳＢ２３では、歩進された小節ｉの値が、リズム練習終了小節＋１に達したか否か、すなわちリズム練習開始小節からリズム練習終了小節までの演奏データに基づいてリズムデータを生成し終えたかどうかを判断する。
【００５８】
リズムデータを生成し終えていなければ、判断結果は「ＮＯ」になり、前述したステップＳＢ２（図５参照）に処理を戻し、上述したステップＳＢ２〜ＳＢ２３を繰り返す。そして、リズム練習開始小節からリズム練習終了小節までの演奏データに基づいてリズムデータを生成し終えると、上記ステップＳＢ２３の判断結果が「ＹＥＳ」になり、本処理を終える。
【００５９】
このように、リズムデータ生成処理では、ユーザ指定のリズム練習開始小節からリズム練習終了小節までの演奏データに基づき右手パートのリズムデータ（右）および左手パートのリズムデータ（左）を生成する。生成されたリズムデータ（右）およびリズムデータ（左）には、発音フラグやラインフラグが設けられ、これらフラグを用いて両手でリズム練習する際に留意すべきタイミング（一方のパートが消音状態で他方のパートが発音タイミング、両パートが同時に発音タイミング、一方のパートが発音中に他方のパートが発音タイミング）をガイド表示したり、各パートに存在するライン別にリズムデータを区別してガイド表示したりすることが可能になっている。
【００６０】
これにより、例えば図１１（ａ）に図示する楽譜で表現される演奏データの場合、図１５に図示する一例のように、右手パートについてはラインフラグ「０」のリズムデータ（右）が発音フラグに従ってガイド表示され、一方、左手パートについてはラインフラグ「０」〜「２」に区別されたリズムデータ（左）が発音フラグに従ってガイド表示される。なお、こうしたガイド表示を行うリズム練習画面を形成するリズム練習表示処理については追って述べる。
【００６１】
（３）リズム練習処理の動作
次に、図７を参照してリズム練習処理の動作を説明する。前述したメインルーチンのステップＳＡ３（図４参照）を介して本処理が実行されると、ＣＰＵ１０は図７に図示するステップＳＣ１に処理を進め、リズム練習中であるか否かを判断する。リズム練習中であるか否かは、スタートストップスイッチの押下操作の有無で判断する。
【００６２】
なお、スタートストップスイッチは、前述したように、押下操作に応じて「リズム練習の開始」又は「リズム練習の停止」を交互に指示するトグルスイッチとして機能する。したがって、スタートストップスイッチが「リズム練習中」ではないことを指示する状態になっていた場合、上記ステップＳＣ１の判断結果は「ＮＯ」になり、ステップＳＣ２に進む。ステップＳＣ２では、スタートストップスイッチの押下操作に応じて「リズム練習の開始」が指示されて、上記のスタートストップスイッチが「リズム練習中」を指示する状態にされたかどうかを判断する。
【００６３】
スタートストップスイッチの押下操作がなく、リズム練習中ではない場合には、ここでの判断結果は「ＮＯ」となり、本処理を終える。なお、スタートストップスイッチは、より一般的なスイッチや、タッチ式の画面に表示されたボタンをタッチする形のものでも良く、この場合には、図示せぬ「リズム練習中状態フラグ」が、当該スタートストップスイッチの押下指示に応じて、「リズム練習中」と「リズム練習中で無い」の状態を交互に反転遷移するようなフラグレジスタとして構成することができる。
【００６４】
これに対し、スタートストップスイッチの押下操作に応じて「リズム練習の開始」が指示されると、上記ステップＳＣ２の判断結果は「ＹＥＳ」となり、ステップＳＣ３に進み、リズム練習表示画面の表示モードを選択する。具体的には、図１１（ｂ）に図示する一例の「リズム練習パターン１」、図１２に図示する一例の「リズム練習パターン２」、図１３に図示する一例の「リズム練習パターン３」および図１４に図示する一例の「リズム練習パターン４」の何れかを選択する。これら練習パターンが意図するところについては追って述べる。続いて、ステップＳＣ４〜ＳＣ５では、リズム練習を開始するための準備として、現在時刻を開始時刻にセットすると共に、前回拍時刻および前回小節時刻を初期化した後、ステップＳＣ７に進む。
【００６５】
さて一方、スタートストップスイッチがすでに「リズム練習中」を示す状態になっており、リズム練習中と判断された場合には、上記ステップＳＣ１の判断結果が「ＹＥＳ」となり、ステップＳＣ６に進み、開始時刻からの経過時間（現在時刻−開始時刻）にテンポ調整係数（現在ＢＰＭ値／初期ＢＭＰ値）を乗算して再生時間を算出した後、ステップＳＣ７に進む。
【００６６】
ステップＳＣ７では、再生時間が一拍分経過したか否かを判断する。一拍分の時間が経過していなければ、ここでの判断結果は「ＮＯ」になり、後述のステップＳＣ１０に進む。一方、一拍分の時間が経過すると、上記ステップＳＣ７の判断結果は「ＹＥＳ」になり、ステップＳＣ８に進み、現在時刻を前回拍時刻として記憶させて更新し、続くステップＳＣ９では、一拍経過を報知するメトロノーム音（例えば「ポッ」という副音）の発音を音源１６に指示する。これにより、リズム練習中であれば、音源１６は一拍分の時間が経過する毎に「ポッ」というメトロノーム音を発音する。
【００６７】
続いて、ステップＳＣ１０では、再生時間が一小節分経過したか否かを判断する。一小節分の時間が経過していなければ、ここでの判断結果は「ＮＯ」になり、後述のステップＳＣ１３に進む。一方、一小節分の時間が経過すると、上記ステップＳＣ１０の判断結果は「ＹＥＳ」になり、ステップＳＣ１１に進み、現在時刻を前回小節時刻として記憶させて更新し、続くステップＳＣ１２では、一小節分の時間経過を報知するメトロノーム音（例えば「ピッ」という主音）の発音を音源１６に指示する。これにより、リズム練習中であれば、音源１６は一小節分の時間が経過する毎に「ピッ」というメトロノーム音を発音する。
【００６８】
次いで、ステップＳＣ１３では、リズム練習表示画面に表示するカーソル（図１６参照）の座標位置を再生時間に同期して更新する。そして、ステップＳＣ１４では、リズム入力の有無、すなわち左右両手の各指に対応して設けられた１０個のリズムパッドの何れかをユーザが押下操作したかどうかを判断する。ユーザによるリズム入力が無ければ、判断結果は「ＮＯ」となり、後述のステップＳＣ１６に進むが、リズム入力が有ると、判断結果は「ＹＥＳ」になり、ステップＳＣ１５を介して入力受付処理を実行する。
【００６９】
入力受付処理では、後述するように、右手の親指から小指に各々対応付けられたリズムパッド毎に、「パッド押下」、「パッド押下中」、「パッドを離した」の何れであるかを入力判定し、「パッド押下」ならば、その押下された発音時刻（発音時の再生時刻）および当該発音時刻から算出される始点座標を、入力判定された指の一時保存リズムデータ（右）に一時保存する一方、左手入力データを参照して入力リズムデータ（左）、（右）の発音フラグを更新する。「パッド押下中」ならば、現在の再生時刻を暫定的に消音時刻として、算出される終点座標を、入力判定された指の一時保存リズムデータ（右）に一時保存する。「パッドを離した」ならば、消音時刻（リズムパッドを離した時の再生時刻）から算出される終点座標と、入力判定された指の一時保存リズムデータ（右）の内容とをまとめてリズムデータアレイ（右）にストアする。そして、左手についても同様の処理を施して得られるリズムデータ（発音時刻、消音時刻、始点座標、終点座標、発音フラグ）をリズムデータアレイ（左）にストアする。
【００７０】
続いて、ステップＳＣ１６では、リズム練習表示画面に、リズム練習開始小節からリズム練習終了小節までを示す小節区間Ｋと、予め選択した表示モードでリズム表示枠とを表示すると共に、手本となるリズムデータ（右）、（左）に基づき当該リズム表示枠内に発音タイミングを丸印（○印）で明示する。そして、入力リズムデータアレイ（右）および入力リズムデータアレイ（左）を、手本となるリズムデータ（右）、（左）に対比させる形で表示する。そして、さらに左右両手パートの２つのシーケンスを１つのシーケンスとしてリズム表現するための口唱文字データを、リズムデータ（右）のリズム表示枠上に表示した後、再生時間に同期した座標位置にカーソルを表示するリズム練習表示処理を実行する。
【００７１】
（４）入力受付処理の動作
次に、図８〜図９を参照して入力受付処理の動作を説明する。上述したリズム練習処理のステップＳＣ１５（図７参照）を介して本処理が実行されると、ＣＰＵ１０は図８に図示するステップＳＤ１に進み、右手の各指を指定するポインタｉに初期値「１」をセットする。なお、ポインタｉは、「１：親指」、「２：人差し指」、「３：中指」、「４：薬指」および「５：小指」をそれぞれ指定する。
【００７２】
続いて、ステップＳＤ２では、ポインタｉに応じて読み出される前回右手入力データ[ｉ]のＯＮ／ＯＦＦ状態および発音時の再生時刻と、ポインタｉに応じて読み出される右手入力データ「ｉ」のＯＮ／ＯＦＦ状態および発音時の再生時刻との比較に基づき、ポインタｉのリズムパッドが「押下された」、「押下中」および「離された」の何れであるかを入力判定する。以下、ポインタｉのリズムパッドが押下された場合、押下中の場合および離された場合に分けて動作説明を進める。
【００７３】
＜ポインタｉのリズムパッドが押下された場合＞
この場合、ステップＳＤ３の判断結果が「ＹＥＳ」になり、ステップＳＤ５に進み、押下された発音時刻（発音時の再生時刻）および当該発音時刻から算出される始点座標を、ポインタｉで指定される一時保存リズムデータ（右）［ｉ］に一時保存する。そして、ステップＳＤ６では、左手入力データを参照して、入力リズムデータ（左）、（右）の発音フラグを更新する。
【００７４】
次いで、ステップＳＤ７では、ポインタｉをインクリメントして歩進させ、続くステップＳＤ８では、歩進させたポインタｉの値が「６」に達したか否か、つまり右手の親指から小指に対応する全てのリズムパッドについて入力判定し終えたかどうかを判断する。全てのリズムパッドについて入力判定し終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＤ２に処理を戻す。一方、全てのリズムパッドについて入力判定し終えたならば、上記ステップＳＤ８の判断結果が「ＹＥＳ」になり、図９に図示するステップＳＤ１１に進む。
【００７５】
＜ポインタｉのリズムパッドが押下中の場合＞
この場合、ステップＳＤ４の判断結果が「ＹＥＳ」になり、ステップＳＤ９に進み、現在の再生時刻を暫定的に消音時刻として、算出される終点座標を、ポインタｉで指定される一時保存リズムデータ（右）［ｉ］に一時保存する。この後、ステップＳＤ７に進み、ポインタｉをインクリメントして歩進させ、続くステップＳＤ８では、歩進させたポインタｉの値が「６」に達したか否か、つまり右手の親指から小指に対応する全てのリズムパッドについて入力判定し終えたかどうかを判断する。全てのリズムパッドについて入力判定し終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＤ２に処理を戻すが、全てのリズムパッドについて入力判定し終えたならば、上記ステップＳＤ８の判断結果が「ＹＥＳ」になり、図９に図示するステップＳＤ１１に進む。
【００７６】
＜ポインタｉのリズムパッドが離された場合＞
この場合、ステップＳＤ４の判断結果が「ＮＯ」になり、ステップＳＤ１０に進み、消音時刻（リズムパッドを離した時の再生時刻）から算出される終点座標と、ポインタｉで指定される一時保存リズムデータ（右）［ｉ］の内容とをまとめてリズムデータアレイ（右）にストアする。この後、ステップＳＤ７に進み、ポインタｉをインクリメントして歩進させ、続くステップＳＤ８では、歩進させたポインタｉの値が「６」に達したか否か、つまり右手の親指から小指に対応する全てのリズムパッドについて入力判定し終えたかどうかを判断する。全てのリズムパッドについて入力判定し終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＤ２に処理を戻すが、全てのリズムパッドについて入力判定し終えたならば、上記ステップＳＤ８の判断結果が「ＹＥＳ」になり、図９に図示するステップＳＤ１１に進む。
【００７７】
そして、図９に図示するステップＳＤ１１に進むと、左手の各指を指定するポインタｊに初期値「１」をセットする。なお、ポインタｊは、「１：親指」、「２：人差し指」、「３：中指」、「４：薬指」および「５：小指」をそれぞれ指定する。次いで、ステップＳＤ１２では、ポインタｊに応じて読み出される前回左手入力データ[ｊ]のＯＮ／ＯＦＦ状態および発音時の再生時刻と、ポインタｊに応じて読み出される左手入力データ「ｊ」のＯＮ／ＯＦＦ状態および発音時の再生時刻との比較に基づき、ポインタｊのリズムパッドが「押下された」、「押下中」および「離された」の何れであるかを入力判定する。以下、ポインタｊのリズムパッドが押下された場合、押下中の場合および離された場合に分けて動作説明を進める。
【００７８】
＜ポインタｊのリズムパッドが押下された場合＞
この場合、ステップＳＤ１３の判断結果が「ＹＥＳ」になり、ステップＳＤ１５に進み、押下された発音時刻（発音時の再生時刻）および当該発音時刻から算出される始点座標を、ポインタｊで指定される一時保存リズムデータ（左）［ｊ］に一時保存する。そして、ステップＳＤ１６では、右手入力データを参照して、入力リズムデータ（左）、（右）の発音フラグを更新する。
【００７９】
次いで、ステップＳＤ１７では、ポインタｊをインクリメントして歩進させ、続くステップＳＤ１８では、歩進させたポインタｊの値が「６」に達したか否か、つまり左手の親指から小指に対応する全てのリズムパッドについて入力判定し終えたかどうかを判断する。全てのリズムパッドについて入力判定し終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＤ１２に処理を戻すが、全てのリズムパッドについて入力判定し終えたならば、上記ステップＳＤ１８の判断結果が「ＹＥＳ」になり、本処理を終える。
【００８０】
＜ポインタｊのリズムパッドが押下中の場合＞
この場合、ステップＳＤ１４の判断結果が「ＹＥＳ」になり、ステップＳＤ１９に進み、現在の再生時刻を暫定的に消音時刻として、（算出される終点座標を、ポインタｊで指定される一時保存リズムデータ（左）［ｊ］に一時保存する。この後、ステップＳＤ１７に進み、ポインタｊをインクリメントして歩進させ、続くステップＳＤ１８では、歩進させたポインタｊの値が「６」に達したか否か、つまり左手の親指から小指に対応する全てのリズムパッドについて入力判定し終えたかどうかを判断する。全てのリズムパッドについて入力判定し終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＤ１２に処理を戻すが、全てのリズムパッドについて入力判定し終えたならば、上記ステップＳＤ１８の判断結果が「ＹＥＳ」になり、本処理を終える。
【００８１】
＜ポインタｊのリズムパッドが離された場合＞
この場合、ステップＳＤ１４の判断結果が「ＮＯ」になり、ステップＳＤ２０に進み、消音時刻（リズムパッドを離した時の再生時刻）から算出される終点座標と、ポインタｊで指定される一時保存リズムデータ（左）［ｊ］の内容とをまとめてリズムデータアレイ（左）にストアする。この後、ステップＳＤ１７に進み、ポインタｊをインクリメントして歩進させ、続くステップＳＤ１８では、歩進させたポインタｊの値が「６」に達したか否か、つまり左手の親指から小指に対応する全てのリズムパッドについて入力判定し終えたかどうかを判断する。全てのリズムパッドについて入力判定し終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＤ１２に処理を戻すが、全てのリズムパッドについて入力判定し終えたならば、上記ステップＳＤ１８の判断結果が「ＹＥＳ」になり、本処理を終える。
【００８２】
このように、入力受付処理では、右手の親指から小指に各々対応付けられたリズムパッド毎に、「パッド押下」、「パッド押下中」、「パッドを離した」の何れであるかを入力判定する。「パッド押下」ならば、その押下された発音時刻（発音時の再生時刻）および当該発音時刻から算出される始点座標を、入力判定された指の一時保存リズムデータ（右）に一時保存する一方、左手入力データを参照して入力リズムデータ（左）、（右）の発音フラグを更新する。「パッド押下中」ならば、現在の再生時刻を暫定的に消音時刻として、算出される終点座標を、入力判定された指の一時保存リズムデータ（右）に一時保存する。「パッドを離した」ならば、消音時刻（リズムパッドを離した時の再生時刻）から算出される終点座標と、入力判定された指の一時保存リズムデータ（右）の内容とをまとめてリズムデータアレイ（右）にストアする。そして、左手についても同様の処理を施して得られるリズムデータ（発音時刻、消音時刻、始点座標、終点座標、発音フラグ）をリズムデータアレイ（左）にストアする。
【００８３】
（５）リズム練習表示処理の動作
次に、図１０を参照してリズム練習表示処理の動作を説明する。前述したリズム練習処理のステップＳＣ１６（図７参照）を介して本処理が実行されると、ＣＰＵ１０は図１０に図示するステップＳＥ１に進み、例えば図１６に図示するように、リズム練習表示画面において、リズム練習開始小節からリズム練習終了小節までの練習区間を示す小節区間Ｋをライン表示する。
【００８４】
続いて、ステップＳＥ２では、前述したリズム練習処理のステップＳＣ３（図７参照）において選択した表示モードに応じたリズム表示枠を画面表示すると共に、手本となるリズムデータ（右）、（左）に基づき当該リズム表示枠内に発音タイミングを丸印（○印）で明示する。
【００８５】
例えば図１１（ａ）に図示する楽譜で表現される演奏データの第１小節から第４小節をリズム練習する区間として生成させたリズムデータ（右）およびリズムデータ（左）を、「リズム練習パターン１」の表示モードで表示する場合（図１１（ｂ））には、小節区間Ｋの上部にリズムデータ（右）に対応したリズム表示枠を、小節区間Ｋの下部にリズムデータ（左）に対応したリズム表示枠をそれぞれ表示し、さらに各リズム表示枠内に発音タイミングを丸印で表示する。
【００８６】
発音タイミングを示す丸印は、発音フラグの値に応じて表示色を異ならせている。本実施形態では、一方のパートが消音状態で他方のパートが発音タイミングとなる発音フラグ「０」を白丸Ｗで示し、両パートが同時に発音タイミングとなる発音フラグ「１」を赤丸Ｒで示し、一方のパートが発音中に他方のパートが発音タイミングとなる発音フラグ「２」を緑丸Ｇで示している。このような表示形態によれば、両手でリズム練習する際に留意すべきタイミングが一目瞭然となる。
【００８７】
「リズム練習パターン２」の表示モードで表示する場合には、図１２に図示する表示形態となる。すなわち、「リズム練習パターン１」では、ラインフラグを考慮せずに左右両パートのリズムデータを表示したのに対し、「リズム練習パターン２」では、図１５に図示する通り、左手パートのリズムデータを、ラインフラグ「０」〜「２」の３ラインに分けて表示する。発音タイミングを示す丸印については、上述した「リズム練習パターン１」と同様である。
【００８８】
「リズム練習パターン３」の表示モードで表示する場合には、図１３に図示するように、「リズム練習パターン２」におけるラインフラグ「０」、「１」を一つのラインにまとめ（主ラインを音高の高い側に合わせ）たものとなる。また、「リズム練習パターン４」の表示モードで表示する場合には、図１４に図示するように、「リズム練習パターン２」におけるラインフラグ「０」、「２」を一つのラインにまとめ（主ラインを音高の低い側に合わせ）たものとなる。
【００８９】
次いで、ステップＳＥ３では、入力リズムデータアレイ（右）および入力リズムデータアレイ（左）を入力リズムデータとしてリズム練習画面に表示する。具体的には、図１６に図示するリズム練習表示画面において、リズムデータ（右）と小節区間Ｋとの間に、入力リズムデータアレイ（右）に基づく右手パートの入力リズム表示枠を表示する一方、リズムデータ（左）の下段に入力リズムデータアレイ（左）に基づく左手パートの入力リズム表示枠を表示する。左右両パートの入力リズム表示枠には、手本のリズムデータ（右）、（左）と同様に、リズムパッド押下のタイミングを丸印で表示する。この丸印は、手本のリズムデータと同様に、発音フラグの値に応じて表示色を異ならせおり、発音フラグ「０」は白丸Ｗ、発音フラグ「１」は赤丸Ｒ、発音フラグ「２」は緑丸Ｇで表示する。
【００９０】
そして、ステップＳＥ４では、発音フラグに対応付けられた口唱文字データを表示する。例えば図１１（ａ）に図示する楽譜で表現される演奏データの第１小節から第４小節をリズム練習する区間として生成させたリズムデータ（右）（左）の場合には、図１７に図示するように、第１小節が「ダダトダ」、第２小節が「ダダダ」、第３小節が「ダトトトタ」、第４小節が「ダトトトダト」と口唱文字データが表示される。なお、口唱文字データとは、左右両手パートの２つのシーケンスを、１つのシーケンスとしてリズム表現するものであり、両手パート同時発音する赤丸Ｒ（発音フラグ「１」）では口唱文字「ダ」、一方のパートが発音中に他方のパートが発音する緑丸Ｇ（発音フラグ「２」）では口唱文字「ト」、一方のパートが消音中に他方のパートが発音する白丸Ｗ（発音フラグ「０」）では口唱文字「タ」が表示される。この後、ステップＳＥ５では、前述したリズム練習処理のステップＳＣ１３（図７参照）において更新されたカーソル座標、すなわち再生時間に同期した座標位置に、現在のタイミングを示すカーソルを表示して本処理を終える。
【００９１】
このように、リズム練習表示処理では、リズム練習開始小節からリズム練習終了小節までを示す小節区間Ｋをリズム練習表示画面にライン表示した後、選択した表示モードに応じたリズム表示枠を表示すると共に、手本となるリズムデータ（右）、（左）に基づき当該リズム表示枠内に発音タイミングを○印で明示する。そして、ユーザ入力された入力リズムデータアレイ（右）および入力リズムデータアレイ（左）を、手本となるリズムデータ（右）、（左）に対比させる形で表示した後、左右両手パートの２つのシーケンスを１つのシーケンスとしてリズム表現する口唱文字データを、リズムデータ（右）のリズム表示枠上に表示した後、再生時間に同期した座標位置に、現在のタイミングを示すカーソルを表示する。
【００９２】
以上説明したように、本実施形態では、左右両手パートから構成される曲を表す演奏データの内、ユーザ指定のリズム練習開始小節からリズム練習終了小節までの演奏データから右手パートのリズムデータ（右）および左手パートのリズムデータ（左）を生成し、生成したリズムデータ（右）およびリズムデータ（左）には、両手でリズム練習する際に留意すべきタイミング（一方のパートが消音状態で他方のパートが発音タイミング、両パートが同時に発音タイミング、一方のパートが発音中に他方のパートが発音タイミング）を表す発音フラグを付与する。左右両手パートのリズムデータ（右）およびリズムデータ（左）をリズム練習パターンとして表示する際に、当該リズム練習パターンにおけるリズムの表示形態を発音フラグの種類に応じて異ならせて両手でリズム練習する際に留意すべきタイミングをガイド表示するので、初心者でも左右の両手の動きを協調させたリズム練習を行うことができる。
【００９３】
また、発音フラグの種類に応じた口唱文字を、リズム練習パターン中のリズムに合わせて表示する為、左右両手パートの２つのシーケンスを、１つのシーケンスとしてリズム表現することが出来る。さらに、各パートに存在するライン別にリズムデータを区別するラインフラグを付与し、付与されたラインフラグの種類に応じて、各パートに存在するライン別にリズム練習パターンを区別して表示する為、ラインを意識したリズム練習を行うことも出来る。
【００９４】
以上、本発明の実施の一形態について説明したが、本発明はそれに限定されるものではなく、本願出願の特許請求の範囲に記載された発明とその均等の範囲に含まれる。例えば、本発明は、３パート以上を有する曲データに対しても適用可能である。例えば右手・左手パートの他に足鍵盤を有する電子オルガンや、種々の楽器がネットワークで接続された合奏形式の場合であっても適用が可能である。このような場合、例えば、３パートであれば、発音タイプとしては、３パート同時発音、２パート同時発音、単独発音、他パート発音中に発音、などのように分類分けして、発音フラグを設定するようにすることが可能である。また、この場合、さらに具体的に２パート同時発音のケースを右と左、右と足、左と足、等に細分類したり、他の場合も同様に細分類して発音フラグを設定して、表示色等を変化させることが可能である。また、表示形態については適宜他のものを用いても良い。例えば、表示色の設定については、発音フラグに応じて、種々の色の選択が可能であるし、表示色以外に模様等を変えることによって区別させるようなものでも良い。また、「ダ」「ト」「タ」の口唱文字データについても、他の文字を用いることとしても良い。例えば、同時発音の音符については比較的強い響きの文字を用い、一パートのみ発音の音符については比較的軽い響きの文字を用いることとしても良く、例えば「ダ」「ラン」「トン」などの組み合わせでも良い。以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。
【００９５】
（付記）
［請求項１］
複数パートから構成される曲を表す演奏データからパート毎のリズムデータを生成するリズムデータ生成手段と、
前記リズムデータ生成手段により生成されたパート毎のリズムデータに基づいて、発音タイミングに応じた種類の発音フラグを付与する発音フラグ付与手段と、
前記リズムデータ生成手段により生成されたパート毎のリズムデータを、それぞれ対応するパートのリズムパターンとして表示すると共に、各リズムパターンにおけるリズムの表示形態を、前記発音フラグ付与手段により付与された発音フラグの種類に応じて異ならせて、発音タイミングをガイド表示するリズム表示手段と
を具備することを特徴とするリズム表示装置。
【００９６】
［請求項２］
前記発音フラグ付与手段は、
ひとつのパートが消音状態で他のパートが発音タイミングとなるリズムデータに第１の発音フラグを付与する第１の付与手段と、
全パートが同時に発音タイミングとなるリズムデータに第２の発音フラグを付与する第２の付与手段と、
ひとつのパートが発音中に他のパートが発音タイミングとなるリズムデータに第３の発音フラグを付与する第３の付与手段と
を備えることを特徴とする請求項１記載のリズム表示装置。
【００９７】
［請求項３］
前記発音フラグ付与手段により付与された発音フラグの種類に応じた口唱文字を、前記リズム表示手段により表示されるリズムパターンに合わせて表示する口唱文字表示手段を更に備えることを特徴とする請求項１または２に記載のリズム表示装置。
【００９８】
［請求項４］
各パートに存在するライン毎にリズムデータを区別するためのラインフラグを付与するラインフラグ付与手段をさらに備え、
前記リズム表示手段は、前記ラインフラグ付与手段により付与されたラインフラグに応じて、各パートに存在するラインごとに前記表示されたリズムパターンを区別して表示する、
ことを特徴とする請求項１から３のいずれかに記載のリズム表示装置。
【００９９】
［請求項５］
リズム入力操作に応じて発生するパート毎の入力リズムデータを、それぞれ前記リズム表示手段により表示される各パートのリズムパターンに対応させて表示する入力リズム表示手段を更に備えることを特徴とする請求項１から４のいずれかに記載のリズム表示装置。
【０１００】
［請求項６］
前記請求項１から４のいずれかに記載のリズム表示装置と、
各パートのリズム入力操作を行わせる入力手段と、
前記入力手段によるリズム入力操作に応じた発音を行う発音手段と、
前記入力手段によるリズム入力操作に応じて発生するパート毎の入力リズムデータを、それぞれ前記リズム表示手段により表示される各パートのリズムパターンに対応させて表示する入力リズム表示手段を備えることを特徴とする電子楽器。
【０１０１】
［請求項７］
複数パートから構成される曲を表す演奏データからパート毎のリズムデータを生成するリズムデータ生成過程と、
前記リズムデータ生成過程で生成されたパート毎のリズムデータに基づいて、発音タイミングに応じた種類の発音フラグを付与する発音フラグ付与過程と、
前記リズムデータ生成過程で生成されたパート毎のリズムデータを、それぞれ対応するパートのリズムパターンとして表示すると共に、各リズムパターンにおけるリズムの表示形態を、前記発音フラグ付与過程で付与された発音フラグの種類に応じて異ならせて、発音タイミングをガイド表示するリズム表示過程と
を具備することを特徴とするリズム表示方法。
【０１０２】
［請求項８］
コンピュータに、
複数パートから構成される曲を表す演奏データからパート毎のリズムデータを生成するリズムデータ生成ステップと、
前記リズムデータ生成ステップで生成されたパート毎のリズムデータに基づいて、発音タイミングに応じた種類の発音フラグを付与する発音フラグ付与ステップと、
前記リズムデータ生成ステップで生成されたパート毎のリズムデータを、それぞれ対応するパートのリズムパターンとして表示すると共に、各リズムパターンにおけるリズムの表示形態を、前記発音フラグ付与ステップで付与された発音フラグの種類に応じて異ならせて、発音タイミングをガイド表示するリズム表示ステップと
を実行させることを特徴とするプログラム。
【符号の説明】
【０１０３】
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  操作部
１４  表示部
１５  ＭＩＤＩインタフェース
１６  音源
１７  サウンドシステム
２０  ＭＩＤＩ楽器
１００  リズム表示装置
【図１】
2014186163.tif 000003
【図２】
2014186163.tif 000004
【図３】
2014186163.tif 000005
【図４】
2014186163.tif 000006
【図５】
2014186163.tif 000007
【図６】
2014186163.tif 000008
【図７】
2014186163.tif 000009
【図８】
2014186163.tif 000010
【図９】
2014186163.tif 000011
【図１０】
2014186163.tif 000012
【図１１】
2014186163.tif 000013
【図１２】
2014186163.tif 000014
【図１３】
2014186163.tif 000015
【図１４】
2014186163.tif 000016
【図１５】
2014186163.tif 000017
【図１６】
2014186163.tif 000018
【図１７】
2014186163.tif 000019