(57)【特許請求の範囲】
【請求項１】
複数の小節からなる曲データの小節を順次読み出す読出し手段と、
この読出し手段により読み出された小節に転調を指示する調号があるか否かを検出する転調検出手段と、
この転調検出手段によって調号が検出されない場合には、上段及び下段の夫々に所定数までの小節の楽譜画像を表示可能な表示手段において、前記調号が検出されない小節のひとつ前の小節に対応する楽譜画像を表示している段に前記所定数の小節の楽譜画像が表示されているか否か判別する判別手段と、
この判別手段により、前記段に前記所定数の小節の楽譜画像が表示されていると判別された場合は、当該段と異なる段に前記調号が検出されない小節に対応する楽譜画像を表示させるとともに、前記段に前記所定数の小節の楽譜画像が表示されていないと判別された場合は、前記ひとつ前の小節に対応する楽譜画像と同一の段に前記調号が検出されない小節に対応する楽譜画像を表示させる第１の表示制御手段と、
前記転調検出手段によって調号が検出された場合には当該調号がある小節に対応する楽譜画像を、前記表示手段の上下段のうち、前記調号のある小節のひとつ前の小節に対応する楽譜画像が表示されている段とは異なる段の先頭に表示させる第２の表示制御手段と、
を有することを特徴とする楽譜表示制御装置。
【請求項２】
複数の小節からなる曲データの小節を順次読み出す読出しステップと、
読み出された小節に転調を指示する調号があるか否かを検出する転調検出ステップと、
調号が検出されない場合には、上段及び下段の夫々に所定数までの小節の楽譜画像を表示可能な表示手段において、前記調号が検出されない小節のひとつ前の小節に対応する楽譜画像を表示している段に前記所定数の小節の楽譜画像が表示されているか否か判別する判別ステップと、
前記段に前記所定数の小節の楽譜画像が表示されていると判別された場合は、当該段と異なる段に前記調号が検出されない小節に対応する楽譜画像を表示させるとともに、前記段に前記所定数の小節の楽譜画像が表示されていないと判別された場合は、前記ひとつ前の小節に対応する楽譜画像と同一の段に前記調号が検出されない小節に対応する楽譜画像を表示させる第１の表示制御ステップと、
調号が検出された場合には当該調号がある小節に対応する楽譜画像を、前記表示手段の上下段のうち、前記調号のある小節のひとつ前の小節に対応する楽譜画像が表示されている段とは異なる段の先頭に表示させる第２の表示制御ステップと、
をコンピュータで実行させることを特徴とする楽譜表示処理のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽譜表示制御装置及び楽譜表示処理のプログラムに関する。
【０００２】
【従来の技術】
曲データの演奏をガイドする演奏教習装置においては、ＬＣＤ等の表示装置に曲データの楽譜画像を表示して、演奏すべき音符の画像を強調して表示させたり、カーソルを演奏すべき音符の進行に伴って移動されたりして、演奏のガイドを行っている。また、通常の演奏装置において、メモリ等に記憶された模範の曲データを再生しながら楽譜画像を表示することにより、発音される楽音と表示された楽譜との関係を把握して演奏技術の向上を図ることもできる。
このため、曲データの再生に伴って対応する音符、コード、その他の楽譜画像を表示する楽譜表示制御装置が提案されている。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来の技術においては、曲の途中で他の調に転調する場合には、表示された楽譜画像の調号をユーザが認識できないことが多い。楽譜画像は音符の画像だけでなく、休符の画像、音の強弱を表す記号、スラー記号、スタッカート記号、コード記号等のように、多種の画像が表示されるので、曲の基本の調については認識できるが、途中の調号を見逃してしまう場合が多いのである。
曲が転調したことが認識できない場合には、曲データの演奏ガイドや、発音される楽音と楽譜との関係を把握することに大きな支障をきたしてしまうという問題があった。
【０００４】
また、従来の技術においては、曲データを楽譜画像に変換して表示する処理が装置のＣＰＵ等の制御手段にとって相当に重い負荷になるので、楽譜画像の画像処理をする間はほかの仕事することが困難である。このため、例えば、その間にユーザの演奏が行われた場合には、その演奏操作に対応することができず、発音が遅れてしまうなどという問題があった。
【０００５】
本発明の第１の課題は、曲の途中で他の調に転調して楽譜画像にその調号が表示されたことをユーザが十分に認識できるようにすることである。
また、本発明の第２の課題は、楽譜画像の画像処理のために発音処理に支障をきたすのを防止することである。
【０００６】
【課題を解決するための手段】
請求項１に記載の楽譜表示制御装置は、複数の小節からなる曲データの小節を順次読み出す読出し手段と、この読出し手段により読み出された小節に転調を指示する調号があるか否かを検出する転調検出手段と、この転調検出手段によって調号が検出されない場合には、上段及び下段の夫々に所定数までの小節の楽譜画像を表示可能な表示手段において、前記調号が検出されない小節のひとつ前の小節に対応する楽譜画像を表示している段に前記所定数の小節の楽譜画像が表示されているか否か判別する判別手段と、この判別手段により、前記段に前記所定数の小節の楽譜画像が表示されていると判別された場合は、当該段と異なる段に前記調号が検出されない小節に対応する楽譜画像を表示させるとともに、前記段に前記所定数の小節の楽譜画像が表示されていないと判別された場合は、前記ひとつ前の小節に対応する楽譜画像と同一の段に前記調号が検出されない小節に対応する楽譜画像を表示させる第１の表示制御手段と、前記転調検出手段によって調号が検出された場合には当該調号がある小節に対応する楽譜画像を、前記表示手段の上下段のうち、前記調号のある小節のひとつ前の小節に対応する楽譜画像が表示されている段とは異なる段の先頭に表示させる第２の表示制御手段を有する構成になっている。
【０００７】
請求項２に記載の楽譜表示処理のプログラムは、複数の小節からなる曲データの小節を順次読み出す読出しステップと、読み出された小節に転調を指示する調号があるか否かを検出する転調検出ステップと、調号が検出されない場合には、上段及び下段の夫々に所定数までの小節の楽譜画像を表示可能な表示手段において、前記調号が検出されない小節のひとつ前の小節に対応する楽譜画像を表示している段に前記所定数の小節の楽譜画像が表示されているか否か判別する判別ステップと、前記段に前記所定数の小節の楽譜画像が表示されていると判別された場合は、当該段と異なる段に前記調号が検出されない小節に対応する楽譜画像を表示させるとともに、前記段に前記所定数の小節の楽譜画像が表示されていないと判別された場合は、前記ひとつ前の小節に対応する楽譜画像と同一の段に前記調号が検出されない小節に対応する楽譜画像を表示させる第１の表示制御ステップと、調号が検出された場合には当該調号がある小節に対応する楽譜画像を、前記表示手段の上下段のうち、前記調号のある小節のひとつ前の小節に対応する楽譜画像が表示されている段とは異なる段の先頭に表示させる第２の表示制御ステップとを有する。
【０００９】
【発明の実施の形態】
以下、本発明による楽譜表示制御装置の実施形態について、図を参照して説明する。
図１は、実施形態における楽譜表示制御装置の構成を示すブロック図である。図１において、ＣＰＵ１はシステムバス２を介して、プログラムＲＯＭ３、ワークＲＡＭ４、表示部５、曲メモリ６、鍵盤７、スイッチ部８、音源９、及びＶＲＡＭ１０に接続され、これら各部との間でコマンド及びデータを授受してこの装置全体を制御する。また、音源９には、Ｄ／Ａ変換器、アンプ、スピーカ等からなる発音回路１１が接続されている。
【００１０】
プログラムＲＯＭ３には、楽譜表示処理のプログラムや、電源投入時のイニシャライズにおける初期データが格納されている。ワークＲＡＭ４は、ＣＰＵ１によって処理される各種のデータを一時的に記憶する。表示部５には、曲データに対応する楽譜画像が表示される。曲メモリ６には、複数の曲データが記憶されている。曲データの構成については後述する。鍵盤７は、演奏操作に応じてその演奏データをＣＰＵ１に入力する。スイッチ部８は、複数のスイッチで構成され、その操作に応じてコマンドやデータをＣＰＵ１に入力する。
音源９は、鍵盤７で演奏操作で入力された演奏データに応じて生成した楽音波形データを発音回路１０に送出して発音させる。また、曲メモリ６から読み出された曲の再生データに対して、スイッチ部１８のボリューム操作に応じて音量調整を施して発音回路１１に送出して発音させる。ＶＲＡＭ１０は、表示部５に表示する画像データを１画面分のビットマップに展開して記憶し、所定の表示タイミングで表示部５に画像データを送出して表示する。
【００１１】
図２は、このＶＲＡＭ１０の記憶エリア及びワークＲＡＭ４の一部のエリア、並びに曲メモリ６に記憶された曲データの構成を示している。ＶＲＡＭ１０は、表示部５の画面の上段の領域及び下段の領域に表示するための上段画像及び下段画像をそれぞれ記憶する。各段の画像データは、曲データにかかわらず変化しない背景（ＢＧ）となる五線譜やト音記号の画像を記憶するエリアと、曲データごとに変化する楽譜画像を記憶するエリアがある。ワークＲＡＭ４の一部であるＲＡＭＡ及びＲＡＭＢのエリアは、それぞれ上段画像及び下段画像に展開する画像を一時的に記憶するエリアである。
【００１２】
曲メモリ６に記憶された曲データは、複数の小節（１）〜（ｎ）で構成され、各小節の最後は小節線のデータになっている。曲データの最初の小節（１）においては、その曲の調号のデータ、その小節のコードのデータに続いて、通常は複数の音符データがある。また、小節（２）のように、休符データが含まれる場合もある。さらに、この図には示さないが、転調する場合の調号、音の強弱を表す記号、スラー記号、スタッカート記号等のデータが適宜含まれる。
【００１３】
次に、図１の楽譜表示制御装置における楽譜表示処理の動作について、図３〜図８及び図１３〜図１７に示すＣＰＵ１のフローチャート、図９〜図１２に示す曲データ、ワークＲＡＭのエリア、ＶＲＡＭ１０のエリア、変数の関係を示す図に基づいて説明する。
図３はメインフローであり、所定のイニシャライズ（ステップＡ１）の後、所定タイミングに達したか否かを判別する（ステップＡ２）。このタイミングに達したときは、楽器処理を実行する（ステップＡ３）。一方、このタイミングに達していない時間帯においては、後述するフラグＧＦが「１」か否かを判別する（ステップＡ４）。ここでＧＦが「１」ならば楽譜表示生成処理を実行する（ステップＡ５）。ＧＦが「１」でないならばステップＡ２に戻る。楽器処理又は楽譜表示生成処理の後は、ステップＡ２に戻って所定タイミングに達したか否かを判別する。
ステップＡ３の楽器処理は、図４に示すように、スイッチ処理（ステップＢ１）、再生処理（ステップＢ２）、鍵盤処理（ステップＢ３）、その他の処理（ステップＢ４）を実行する。
【００１４】
図５及び図６は、図４のステップＢ１におけるスイッチ処理のフローである。まず、スタートスイッチがオンされたか否かを判別し（ステップＣ１）、このスイッチがオンでない場合には、他のスイッチがオンされたか否かを判別する（ステップＣ２）。他のスイッチがオンされたときは、そのスイッチに対応する他の処理を行って（ステップＣ３）、図４のフローに戻る。
一方、スタートスイッチがオンされたときは、スタートフラグＳＴＦを反転する（ステップＣ４）。そして、ＳＴＦの値が「１（再生）」であるか否かを判別する（ステップＣ５）。ＳＴＦが「１」である場合には、初期楽譜表示処理を実行する（ステップＣ６）。
【００１５】
次に、アドレスレジスタＡＤに曲データのスタートアドレスをセットし、変数Ｄに「１」をセットする（ステップＣ７）。変数Ｄは曲データの再生により、現在読み取られている小節の小節番号をセットするレジスタである。この後、ＡＤで指定される曲データ（ＡＤ）が調号であるか否かを判別する（ステップＣ８）。曲データ（ＡＤ）が調号である場合には、レジスタＫＥＹにその調号をストアする（ステップＣ９）。次に、ＡＤをインクリメントして（ステップＣ１０）、曲データ（ＡＤ）がコードであるか否かを判別する（ステップＣ１１）。コードである場合には、コード処理を実行する（ステップＣ１２）。ステップＣ５において、ＳＴＦが「０（再生停止）」である場合には、消音処理を行い（ステップＣ１３）、楽譜表示を消去して（ステップＣ１４）、図４のフローに戻る。
【００１６】
ステップＣ１１において曲データ（ＡＤ）がコードでない場合には、図６のフローにおいて、曲データ（ＡＤ）が休符であるか否かを判別する（ステップＣ１５）。休符である場合には、その休符長をレジスタＴＩＭＥにストアする（ステップＣ１６）。そして、図４のフローに戻る。ステップＣ１５において曲データ（ＡＤ）が休符でない場合には、曲データ（ＡＤ）が音符であるか否かを判別する（ステップＣ１７）。音符である場合には、その音高をレジスタＮＯＴＥにストアする（ステップＣ１８）。次に、ＫＥＹの調号に基づきＮＯＴＥの音高を変換して（ステップＣ１９）、音源９に発音指示を行う（ステップＣ２０）。そして、音符長すなわち発音時間をＴＩＭＥにストアして（ステップＣ２１）、図４のフローに戻る。ステップＣ１７において曲データ（ＡＤ）が音符でない場合には、その他の処理を行って、図４のフローに戻る。
【００１７】
図７及び図８は、図５のステップＣ６における初期楽譜生成処理のフローである。この処理では、スタートスイッチがオンされたときに、曲が再生される前に最初の楽譜を表示する処理である。
なお、このフローにおいて、ワークＲＡＭのエリアＲＡＭＡ及びＲＡＭＢにストアされる画像データの小節番号、ＶＲＡＭの上段及び下段エリアに記憶される画像データの小節番号、並びに各種の変数Ａ、Ｂ、Ｃ、Ｅ、Ｆの値（小節番号）が、曲データの小節１，２，３，４の内容（調号の有無）に応じて変化する様子を図９〜図１２に示す。この場合において、変数Ａは変曲データの小節番号を指定するポインタである。変数Ｂは表示部の上段に表示されている最終小節の小節番号の次の小節番号を示す。変数Ｃは表示部の下段に表示されている最終小節の小節番号の次の小節番号を示す。変数ＥはＲＡＭＡに記憶されていて、楽譜データへの変換が終了した小節の小節番号を示す。変数ＦはＲＡＭＢに記憶されていて、楽譜データへの変換が終了した小節の小節番号を示す。
【００１８】
図７において、まず、Ａに「１」をセットする（ステップＤ１）。すなわち曲の最初の小節番号をセットする。そして、次の小節（Ａ＋１）に転調を指示する調号があるか否かを判別する（ステップＤ２）。その小節に調号がある場合には、さらにその次の小節（Ａ＋２）に転調を指示する調号があるか否かを判別する（ステップＤ３）。
この小節（Ａ＋２）に調号がある場合には、小節（Ａ）を楽譜データに変換し（ステップＤ４）、ＲＡＭＡにストアする（ステップＤ５）。また、小節（Ａ＋１）を楽譜データに変換し（ステップＤ６）、ＲＡＭＢにストアする（ステップＤ７）。そして、変数Ｅ及びＢにＡ＋１の値をストアし、ＡにＡ＋２の値をストアする（ステップＤ８）。
【００１９】
この場合の曲データの構成は、図９（ａ）に示すようになっている。ここで、「○」印がある小節は調号がある小節である。なお、曲データの最初の小節１には必ず調号があるものとする。すなわち、ハ長調及びハ短調の曲データをも含めて小節１には「○」印がある。２番目以降の小節に調号がある場合には、曲の基本の調が他の調に転調した場合である。すなわち、２番目以降の小節の調号は転調を指示するものである。このことは後述する図１０〜図１２においても共通である。
したがって、図９（ａ）の曲データの場合には、小節２及び小節３に調号がある。この場合には、ステップＤ５及びＤ７の処理によって、図９（ｂ）のＲＡＭＡのエリアに小節１の画像データがストアされ、ＲＡＭＢのエリアに小節２の画像データがストアされる。また、ステップＤ８の処理によって、図９（ｄ）の変数Ａ、Ｂ、Ｅには、それぞれ「３」、「２」、「２」の値がストアされる。
【００２０】
ステップＤ３において小節（Ａ＋１）に調号がない場合には、小節（Ａ）を楽譜データに変換し（ステップＤ９）、ＲＡＭＡにストアする（ステップＤ１０）。また、小節（Ａ＋１）及び（Ａ＋２）を楽譜データに変換し（ステップＤ１１）、ＲＡＭＢにストアする（ステップＤ１２）。そして、変数Ｅ及びＢにＡ＋１の値をストアし、ＡにＡ＋３の値をストアする（ステップＤ１３）。
この場合には、図１０（ａ）の曲データにおいて「○」印のある小節２に調号があり、「×」印のある小節３には調号がない。この場合には、ステップＤ１６及びＤ１８の処理によって、図１０（ｂ）のＲＡＭＡのエリアに小節１の画像データがストアされ、ＲＡＭＢのエリアに小節２及び小節３の２小節分の画像データがストアされる。また、ステップＤ１９の処理によって、図１０（ｄ）の変数Ａ、Ｂ、Ｅには、それぞれ「４」、「２」、「２」の値がストアされる。
【００２１】
ステップＤ２において小節（Ａ＋１）に調号がない場合には、図８のフローにおいて、小節（Ａ＋２）に転調を指示する調号があるか否かを判別する（ステップＤ１４ａ）。その小節に調号がある場合には、さらに、小節（Ａ＋３）に転調を指示する調号があるか否かを判別する（ステップＤ１４ｂ）。その小節に調号がある場合には、小節（Ａ）及び（Ａ＋１）を楽譜データに変換し（ステップＤ１５）、ＲＡＭＡにストアする（ステップＤ１６）。また、小節（Ａ＋２）を楽譜データに変換し（ステップＤ１７）、ＲＡＭＢにストアする（ステップＤ１８）。そして、変数Ｅ及びＢにＡ＋２の値をストアし、ＡにＡ＋３の値をストアする（ステップＤ１９）。
この場合には、図１１（ａ）の曲データにおいて「○」印のある小節３及び小節４に調号があり、「×」印のある小節２には調号がない。この場合には、ステップＤ１６及びＤ１８の処理によって、図１１（ｂ）のＲＡＭＡのエリアに小節１及び小節２の２小節分の画像データがストアされ、ＲＡＭＢのエリアに小節３の画像データがストアされる。また、ステップＤ１９の処理によって、図１１（ｄ）の変数Ａ、Ｂ、Ｅには、それぞれ「４」、「３」、「３」の値がストアされる。
【００２２】
ステップＤ１４ａにおいて小節（Ａ＋２）に調号がない場合には、小節（Ａ＋３）に転調を指示する調号があるか否かを判別する（ステップＤ２０ａ）。この小節に調号がない場合には、小節（Ａ）及び（Ａ＋１）を楽譜データに変換し（ステップＤ２０ｂ）、ＲＡＭＡにストアする（ステップＤ２１）。また、小節（Ａ＋２）及び（Ａ＋３）を楽譜データに変換し（ステップＤ２２）、ＲＡＭＢにストアする（ステップＤ２３）。そして、変数Ｅ及びＢにＡ＋２の値をストアし、ＡにＡ＋４の値をストアする（ステップＤ２４）。
この場合には、図１２（ａ）の曲データにおいて「×」印のある小節２、小節３及び小節４には調号がない。この場合には、ステップＤ２１及びＤ２３の処理によって、図１２（ｂ）のＲＡＭＡのエリアに小節１及び小節２の２小節分の画像データがストアされ、ＲＡＭＢのエリアに小節３及び小節４の２小節分の画像データがストアされる。また、ステップＤ２４の処理によって、図１２（ｄ）の変数Ａ、Ｂ、Ｅには、それぞれ「５」、「３」、「３」の値がストアされる。
【００２３】
ステップＤ１４ｂにおいて、小節（Ａ＋３）に調号がない場合には、曲データにおいて小節３に調号があり、小節２及び小節４には調号がない。この場合には、ステップＤ２０ｂに移行して、Ｄ２４までの処理を行う。したがって、ステップＤ２１及びＤ２３の処理によって、ＲＡＭＡのエリアに小節１及び小節２の２小節分の画像データがストアされ、ＲＡＭＢのエリアに小節３及び小節４の２小節分の画像データがストアされる。また、ステップＤ２４の処理によって、変数Ａ、Ｂ、Ｅには、それぞれ「５」、「３」、「３」の値がストアされる。
【００２４】
ステップＤ２０ａにおいて、小節（Ａ＋３）に調号がある場合には、曲データにおいて小節４に調号があり、小節２及び小節３には調号がない。この場合には、ステップＤ１５に移行して、ステップＤ１９までの処理を行う。したがって、ステップＤ１６及びＤ１８の処理によって、ＲＡＭＡのエリアに小節１及び小節２の２小節分の画像データがストアされ、ＲＡＭＢのエリアに小節３の画像データがストアされる。また、ステップＤ１９の処理によって、変数Ａ、Ｂ、Ｅには、それぞれ「４」、「３」、「３」の値がストアされる。
【００２５】
ステップＤ８、Ｄ１３、Ｄ１９又はＤ２４において、変数Ｅ及びＢに小節番号をストアし、変数Ａの小節番号を更新した後は、図８のステップＤ２５において、変数Ｆ及びＣに変数Ａの小節番号をストアする（ステップＤ２５）。したがって、図９〜図１２の（ｄ）に示すように、変数Ｃ及びＦにＡの値がストアされる。
次に、ＲＡＭＡ及びＲＡＭＢの画像データをＶＲＡＭに転送する（ステップＤ２６）。そして、ＶＲＡＭに展開された楽譜画像の最初の音符にカーソルを表示する（ステップＤ２７）。この後、フラグＧＦに「０（表示終了）」をセットし、フラグＡＦに「１（上段）」をセットして（ステップＤ２８）、図５のフローに戻ってステップＣ７に移行する。したがって、図９〜図１２の（ｃ）に示すように、ＶＲＡＭの上段及び下段に該当する小節の楽譜画像のデータがストアされて、表示部に表示される。
【００２６】
図１３〜図１５は、図４の楽器処理のフローにおけるステップＢ２の再生処理のフローである。図１３において、ＳＴＦの値が「１（再生）」であるか否かを判別し（ステップＥ１）、この値が「１」である場合には、所定の最小時間が経過したか否かを判別する（ステップＥ２）。最小時間が経過したときは、ＴＩＭＥの値をデクリメントする（ステップＥ３）。そして、ＴＩＭＥの値が「０」に達したか否かを判別する（ステップＥ４）。この値が「０」に達していない場合、又は、ステップＥ１においてＳＴＦの値が「０（再生停止）」である場合、若しくはステップＥ２において最小時間がまだ経過していない場合には、このフローを終了する。
【００２７】
ステップＥ４においてＴＩＭＥの値が「０」に達したときは、ＡＤの値すなわち曲データのアドレスをインクリメントする（ステップＥ５）。そして、ＡＤで指定した曲データである曲データ（ＡＤ）がデータなしであるか否かを判別する（ステップＥ６）。データなしである場合には、フラグＧＦ及びＳＴＦをともに「０」に戻し（ステップＥ７）、音源９に対して消音指示をして（ステップＥ８）、表示を消去する（ステップＥ９）。そして、図４のフローに戻る。
ステップＥ６において曲データ（ＡＤ）がデータなしでない場合には、図１４のフローにおいて、曲データ（ＡＤ）が調号であるか否かを判別する（ステップＥ１０）。曲データ（ＡＤ）が調号である場合には、レジスタＫＥＹにその調号をストアする（ステップＥ１１）。曲データ（ＡＤ）が調号でない場合には、曲データ（ＡＤ）がコードであるか否かを判別する（ステップＥ１２）。コードである場合には、コード処理を実行する（ステップＥ１３）。
【００２８】
曲データ（ＡＤ）がコードでない場合には、曲データ（ＡＤ）が小節線であるか否かを判別する（ステップＥ１４）。小節線である場合には、再生により現在読み取りの終了した小節の小節番号をストアしている変数Ｄの値をインクリメントする（ステップＥ１５）。そして、変数Ｄの小節番号と変数Ｂの小節番号とが一致するか否かを判別する（ステップＥ１６）。すなわち、再生により現在読み取りの終了した小節の小節番号と、表示部５の画面の上段に表示されている最終小節の小節番号とが一致しているか否かを判別する。言い換えれば、画面の上段に表示されている楽譜画像に対応する曲データの再生が終了したか否かを判別する。
変数Ｄの小節番号と変数Ｂの小節番号とが一致する場合には、ＲＡＭＡの内容をＶＲＡＭの上段に転送する（ステップＥ１７）。そして、変数Ｅの小節番号を変数Ｂにストアする（ステップＥ１８）。また、次に続く小節の楽譜変換処理が必要であることを示すＧＦを「１（表示変更）」にセットする（ステップＥ１９）。この後は、図１３のステップＥ５に戻ってＡＤをインクリメントして次の曲データ（ＡＤ）を指定する。
【００２９】
ステップＥ１６において、変数Ｄの小節番号と変数Ｂの小節番号とが一致しない場合には、変数Ｄの小節番号と変数Ｃの小節番号とが一致するか否かを判別する（ステップＥ２０）。すなわち、再生により現在読み取りの終了した小節の小節番号と、表示部５の画面の下段に表示されている最終の小節番号とが一致しているか否かを判別する。言い換えれば、画面の下段に表示されている楽譜画像に対応する曲データの再生が終了したか否かを判別する。
変数Ｄの小節番号と変数Ｃの小節番号とが一致する場合には、ＲＡＭＢの内容をＶＲＡＭの下段に転送する（ステップＥ２１）。そして、変数Ｆの小節番号を変数Ｃにストアする（ステップＥ１８）。これにより、また次の小節の楽譜への変換が必要となるため、ＧＦを「１（表示変更）」にセットする（ステップＥ１９）。この後は、図１３のステップＥ５に戻ってＡＤをインクリメントして次の曲データ（ＡＤ）を指定する。
【００３０】
図１４のステップＥ１４において、曲データ（ＡＤ）が小節線でない場合には、図１５のフローにおいて、曲データ（ＡＤ）が休符であるか否かを判別する（ステップＥ２３）。休符である場合には、音源９に消音指示をして（ステップＥ２４）、その休符長をレジスタＴＩＭＥにストアする（ステップＥ２５）。そして、図４のフローに戻る。
ステップＥ２３において曲データ（ＡＤ）が休符でない場合には、曲データ（ＡＤ）が音符であるか否かを判別する（ステップＥ２６）。音符である場合には、その音高をレジスタＮＯＴＥにストアする（ステップＥ２７）。次に、ＫＥＹの調号に基づきＮＯＴＥの音高を変換して（ステップＥ２８）、音源９に発音指示を行う（ステップＥ２９）。そして、音符長すなわち発音時間をＴＩＭＥにストアして（ステップＥ３０）、カーソルを対応する音符に移動する（ステップＥ３１）。そして、図４のフローに戻る。ステップＥ２６において曲データ（ＡＤ）が音符でない場合には、その他の処理を行って、図４のフローに戻る。
【００３１】
図１６及び図１７は、図３のメインフローにおける楽譜表示生成処理のフローである。図１６において、フラグＰＦの値が「０」であるか否かを判別する（ステップＦ１）。ＰＦは曲データを楽譜データに変換する処理が開始するときに「１」にセットされ、変換が終了すると「０」に戻るフラグである。
初期値すなわち曲データの最初はＰＦの値は「０」である。ＰＦの値が「０」である場合には、変数Ａ（初期値は「１」）で指定される小節（Ａ）にデータがあるか否かを判別する（ステップＦ２）。データがある場合には、次の小節（Ａ＋１）にデータがあるか否かを判別する（ステップＦ３）。データがある場合には、さらにこの同じ小節（Ａ＋１）に転調を指示する調号があるか否かを判別する（ステップＦ４）。
小節（Ａ＋１）にデータがない場合、又は小節（Ａ＋１）に調号がある場合には、フラグＫＦの値を「１」にセットし（ステップＦ５）、フラグＰＦの値を「１」にセットする（ステップＦ６）。小節（Ａ＋１）に調号がない場合には、ステップＦ６においＰＦの値だけを「１」にセットする。ステップＦ６においてＰＦの値を「１」にセットした後、又はステップＦ１においてＰＦが「１」である場合には、ＫＦの値が「０」であるか否かを判別する（ステップＦ７）。
【００３２】
ＫＦの値が「０」である場合には、小節（Ａ＋１）にデータがあり且つ調号がない場合である。この場合には、小節（Ａ）と小節（Ａ＋１）とを連結して同じ段に表示する。一方、ＫＦの値が「１」である場合には、小節（Ａ＋１）にデータがない場合か、又は小節（Ａ＋１）に調号がある場合である。この場合には、小節（Ａ）と小節（Ａ＋１）とは別の段に表示する。
ステップＦ７において、ＫＦの値が「０」である場合には、フラグＡＦの値が「１（上段表示）」であるか否かを判別する（ステップＦ８）。ＡＦの値が「１」である場合には、小節（Ａ）及び小節（Ａ＋１）からなる２小節を楽譜データに変換してＲＡＭＡにストアする（ステップＦ９）。一方、ＡＦの値が「０（下段表示）」である場合には、小節（Ａ）及び小節（Ａ＋１）からなる２小節を楽譜データに変換してＲＡＭＢにストアする（ステップＦ１０）。
ステップＦ７において、ＫＦの値が「１」である場合には、ＡＦの値が「１」であるか否かを判別する（ステップＦ１１）。ＡＦの値が「１」である場合には、小節（Ａ）の１小節のみを楽譜データに変換してＲＡＭＡにストアする（ステップＦ１２）。一方、ＡＦの値が「０」である場合には、小節（Ａ）の１小節のみを楽譜データに変換してＲＡＭＢにストアする（ステップＦ１３）。
【００３３】
ステップＦ２において小節（Ａ）にデータがない場合には、図１７のフローにおいて、指定した小節の変換が終了したか否かを判別する（ステップＦ１４）。終了していない場合、すなわち、指定した小節にまだ変換していないデータが残っている場合には、このフローを終了する。指定した小節の変換が終了したときは、ＰＦの値を「０」に戻す（ステップＦ１５）。次に、ＫＦの値が「０」であるか否かを判別する（ステップＦ１６）。この値が「０」である場合には、さらにＡＦの値が「０」であるか否かを判別する（ステップＦ１７）。
ＡＦの値が「１」である場合には、変数Ｅに「Ａ＋１」の値をストアする（ステップＦ１８）。すなわち、ＲＡＭＡに記憶されていて、楽譜データへの変換が終了した小節の小節番号を更新する。ＡＦの値が「０」である場合には、変数Ｆに「Ａ＋１」の値をストアする（ステップＦ１９）。すなわち、ＲＡＭＢに記憶されていて、楽譜データへの変換が終了した小節の小節番号を更新する。変数Ｅ又はＦの値を更新した後は、次に指定する小節番号のポインタである変数Ａの値に「２」を加算して更新する（ステップＦ）。
【００３４】
ステップＦ１６においてＫＦの値が「１」である場合には、さらにＡＦの値が「０」であるか否かを判別する（ステップＦ２１）。ＡＦの値が「１」である場合には、変数Ｅに「Ａ」の値をストアする（ステップＦ２２）。ＡＦの値が「０」である場合には、変数Ｆに「Ａ」の値をストアする（ステップＦ２３）。変数Ｅ又はＦの値を更新した後は、次に指定する小節番号のポインタである変数Ａの値に「１」を加算して更新する（ステップＦ２４ａ）。ステップＦ２４ａにおいてＡの値を更新した後は、ＫＦの値を「０」に戻す（ステップＦ２４ｂ）。この後、又はステップＦ２０においてＡの値を更新した後は、ＡＦの値を反転し（ステップＦ２５）、必要な楽譜データへの変換が終了したことを示すために、ＧＦの値を「０」に戻す（ステップＦ２６）。そして、図３のメインフローに戻る。
【００３５】
図１８〜図２０に、実施形態における楽譜表示処理の具体例を示す。図１８において、調号がイ長調の曲データの小節１１及び１２の楽譜画像が上段に表示され、小節１３及び小節１４が下段に表示されている状態で、上段の再生が終了したときは、図１９に示すように、上段に表示されている小節１１及び１２の楽譜画像が、小節１４に続く小節１５及び小節１６の楽譜画像に自動的に変更される。すなわち、曲データに調号がない場合には、上段及び下段にそれぞれ２小節分の楽譜画像が表示される。
次に、上段に表示する予定の小節９１及び小節９２の２小節の曲データの後の小節９２に調号がある場合には、図２０に示すように、上段には小節９１のみの楽譜画像を表示し、（イ長調から変ホ長調への）調号がある小節９２は、下段の先頭に表示される。
【００３６】
以上のように、上記実施形態によれば、２小節以上の任意の所定小節数においていずれの小節にも調号がない場合には、その所定小節数の最初の小節から最後の小節までに対応する楽譜画像を一括して表示し、所定小節数の任意の小節に調号がある場合には、その所定小節数の最初の小節から調号がある小節の１つ前の小節までに対応する楽譜画像を一括して表示し、調号のある小節からそれ以降の小節に対応する楽譜画像を一括して表示する。また、表示されている楽譜画像に対応する曲データの再生が終了したときは、その楽譜画像を次に再生する曲データに対応する楽譜画像に変更する。したがって、曲の途中で他の調に転調して楽譜画像にその調号が表示されたことをユーザが十分に認識することができる。
また、上記実施形態によれば、外部からの楽音発生指令の入力に応じて楽音発生処理を実行していない時間帯において、楽譜表示処理を実行する。したがって、楽譜画像の画像処理のために発音処理に支障をきたすのを防止することが可能になる。
【００３７】
なお、上記実施形態においては、表示部５の画面において、上段及び下段には最大２小節分の楽譜画像を表示する構成にしたが、３小節以上の複数の小節を各段に表示するように構成できることはもちろんである。この場合には、ユーザが調号を見落とす可能性がずっと高くなるので、本発明の効果を著しく発揮できる。
【００３８】
【発明の効果】
本発明によれば、曲の途中で他の調に転調して楽譜画像にその調号が表示されたことをユーザが十分に認識することができる。また、楽譜画像の画像処理のために発音処理に支障をきたすのを防止することが可能になる。
【図面の簡単な説明】
【図１】本発明の実施形態における楽譜表示制御装置の構成を示すブロック図。
【図２】図１のワークＲＡＭ、ＶＲＡＭ１０、及び曲メモリのデータ構成を示す図。
【図３】図１のＣＰＵのメインフローチャート。
【図４】図３における楽器処理のフローチャート。
【図５】図４におけるスイッチ処理のフローチャート。
【図６】図５に続くスイッチ処理のフローチャート。
【図７】図５における初期楽譜表示処理のフローチャート。
【図８】図７に続く初期楽譜表示処理のフローチャート。
【図９】初期楽譜表示処理における曲データの内容に応じて楽譜表示が変化する様子を説明する図。
【図１０】初期楽譜表示処理における曲データの内容に応じて楽譜表示が変化する様子を説明する図。
【図１１】初期楽譜表示処理における曲データの内容に応じて楽譜表示が変化する様子を説明する図。
【図１２】初期楽譜表示処理における曲データの内容に応じて楽譜表示が変化する様子を説明する図。
【図１３】図４における再生処理のフローチャート。
【図１４】図１３に続く再生処理のフローチャート。
【図１５】図１４に続く再生処理のフローチャート。
【図１６】図３における楽譜表示生成処理のフローチャート。
【図１７】図１６に続く楽譜表示生成処理のフローチャート。
【図１８】実施形態における楽譜表示処理の具体例を示す図。
【図１９】実施形態における楽譜表示処理の具体例を示す図。
【図２０】実施形態における楽譜表示処理の具体例を示す図。
【符号の説明】
１  ＣＰＵ
３  ＲＯＭ
４  ＲＡＭ
５  表示部
６  曲メモリ
７  鍵盤
８  スイッチ部
９  音源
１０  ＶＲＡＭ
１１  発音回路
【図１】
0004453233.tif 000002
【図２】
0004453233.tif 000003
【図３】
0004453233.tif 000004
【図４】
0004453233.tif 000005
【図５】
0004453233.tif 000006
【図６】
0004453233.tif 000007
【図７】
0004453233.tif 000008
【図８】
0004453233.tif 000009
【図９】
0004453233.tif 000010
【図１０】
0004453233.tif 000011
【図１１】
0004453233.tif 000012
【図１２】
0004453233.tif 000013
【図１３】
0004453233.tif 000014
【図１４】
0004453233.tif 000015
【図１５】
0004453233.tif 000016
【図１６】
0004453233.tif 000017
【図１７】
0004453233.tif 000018
【図１８】
0004453233.tif 000019
【図１９】
0004453233.tif 000020
【図２０】
0004453233.tif 000021