(57)【特許請求の範囲】
【請求項１】
表示手段と、
演奏曲に関する楽曲データを供給する供給手段と、
前記供給された楽曲データを分析し、演奏曲の１小節に対応する所定範囲毎に該範囲内に含まれる楽譜記号を検出すると共に前記楽譜記号を前記表示手段にて表示するために必要な表示幅を算出する分析手段と、
前記表示手段において、該表示手段上の表示領域を１小節を表示するための所定の表示幅でなる基本表示ブロックを単位として使用して、楽譜を表示させる制御を行うものであって、前記算出した表示幅と前記基本表示ブロックの所定の表示幅とを比較して、該比較結果に基づいて前記所定範囲内に含まれる楽譜記号を１乃至複数の前記基本表示ブロックに分配配置して表示する制御手段と
を具え、前記楽譜記号を前記所定範囲毎に前記基本表示ブロックを単位とした可変の表示幅を用いて表示することを特徴とする楽譜表示制御装置。
【請求項２】
表示手段と、
演奏曲に関する楽曲データを供給する供給手段と、
前記供給された楽曲データを分析し、演奏曲の１小節に対応する所定範囲毎に該範囲内に含まれる楽譜記号を検出すると共に前記楽譜記号を前記表示手段にて表示するために必要な表示幅を算出する分析手段と、
前記表示手段において、該表示手段上の表示領域を１小節を表示するための所定の表示幅でなる基本表示ブロックを単位として使用して、楽譜を表示させる制御を行うものであって、前記算出した表示幅と前記基本表示ブロックの所定の表示幅とを比較して、該比較結果に基づいて前記所定範囲内に含まれる楽譜記号を１乃至複数の前記基本表示ブロックに分配して配置することで、前記楽譜記号を前記所定範囲毎に前記基本表示ブロックを単位とした可変の表示幅を用いて表示する制御手段と、
演奏曲の演奏進行にあわせて演奏タイミングを前記楽譜記号の表示に対応するように表示する演奏タイミング表示制御手段と
を具えた楽譜表示制御装置。
【請求項３】
前記演奏タイミング表示制御手段は、演奏タイミングの表示移動速さを前記所定範囲の楽譜記号が配置された基本表示ブロックの数に応じた表示長さに基づいて変化させることを特徴とする請求項２に記載の楽譜表示制御装置。
【請求項４】
表示手段と、
演奏曲に関する楽曲データを供給する供給手段と、
前記供給された楽曲データを分析し、演奏曲の１小節に対応する所定範囲毎に該範囲内に含まれる楽譜記号を検出すると共に前記楽譜記号を前記表示手段にて表示するために必要な表示幅を算出する分析手段と、
前記表示手段において、該表示手段上の表示領域を所定の表示幅でなる基本表示ブロックを単位として使用して、楽譜を表示させる制御を行うものであって、前記算出した表示幅と前記基本表示ブロックの所定の表示幅とに基づいて前記所定範囲内に含まれる楽譜記号を１乃至複数の前記基本表示ブロックに分配して配置することで、前記楽譜記号を前記１小節に対応する所定範囲毎に前記基本表示ブロックを単位とした可変の表示幅を用いて表示する制御手段と
を具え、
前記制御手段は、前記算出した表示幅と前記基本表示ブロックの所定の表示幅との比較結果に応じて前記所定範囲内に含まれる楽譜記号を複数の基本表示ブロックに分配して配置するか否かを判定し、複数の基本表示ブロックに分配して配置する場合は、前記所定範囲に含まれる楽曲データについて拍単位で各基本表示ブロックのうち何れの基本表示ブロックに配置するかを決定することを特徴とする楽譜表示制御装置。
【請求項５】
前記制御手段は、前記所定範囲の楽曲データを複数の基本表示ブロックに分配して表示する場合は、隣り合う基本表示ブロックに各々表示する楽譜記号の表示密度がより均等になるように楽譜記号を配置することを特徴とする請求項４に記載の楽譜表示制御装置。
【請求項６】
前記制御手段は、１つの前記所定範囲内に含まれる楽譜記号のうちの一部の楽譜記号を異なる段の基本表示ブロックに配置する場合には、該異なる段の基本表示ブロックの始めに所定の楽譜記号を追加することを特徴とする請求項４又は５に記載の楽譜表示制御装置。
【請求項７】
前記制御手段は、検出した楽譜記号に所定の拍子記号が含まれる場合に該拍子記号を基本表示ブロックに配置しないことにより、前記表示手段に該拍子記号を表示しないことを特徴とする請求項４乃至６のいずれかに記載の楽譜表示制御装置。
【請求項８】
演奏曲に関する楽曲データを供給するステップと、
前記供給された楽曲データを分析し、演奏曲の１小節に対応する所定範囲毎に該範囲内に含まれる楽譜記号を検出するステップと、
前記検出した楽譜記号を表示手段にて表示するために必要な表示幅を算出するステップと、
前記表示手段において、該表示手段上の表示領域を１小節を表示するための所定の表示幅でなる基本表示ブロックを単位として使用して、楽譜を表示させる制御を行うものであって、前記算出した表示幅と前記基本表示ブロックの所定の表示幅とを比較して、該比較結果に基づいて前記所定範囲内に含まれる楽譜記号を１乃至複数の前記基本表示ブロックに分配配置して表示するステップと
を具え、前記楽譜記号を前記所定範囲毎に前記基本表示ブロックを単位とした可変の表示幅を用いて表示することを特徴とする楽譜表示制御方法。
【請求項９】
演奏曲に関する楽曲データを供給するステップと、
前記供給された楽曲データを分析し、演奏曲の１小節に対応する所定範囲毎に該範囲内に含まれる楽譜記号を検出するステップと、
前記検出した楽譜記号を表示手段にて表示するために必要な表示幅を算出するステップと、
前記表示手段において、該表示手段上の表示領域を１小節を表示するための所定の表示幅でなる基本表示ブロックを単位として使用して、楽譜を表示させる制御を行うものであって、前記算出した表示幅と前記基本表示ブロックの所定の表示幅とを比較して、該比較結果に基づいて前記所定範囲内に含まれる楽譜記号を１乃至複数の前記基本表示ブロックに分配配置して表示するステップと、
演奏曲の演奏進行にあわせて演奏タイミングを前記楽譜記号の表示に対応するように表示するステップと
を具え、前記楽譜記号を前記所定範囲毎に前記基本表示ブロックを単位とした可変の表示幅を用いて表示することを特徴とする楽譜表示制御方法。
【請求項１０】
コンピュータに、
演奏曲に関する楽曲データを供給するステップと、
前記供給された楽曲データを分析し、演奏曲の１小節に対応する所定範囲毎に該範囲内に含まれる楽譜記号を検出するステップと、
前記検出した楽譜記号を表示手段にて表示するために必要な表示幅を算出するステップと、
前記表示手段において、該表示手段上の表示領域を１小節を表示するための所定の表示幅でなる基本表示ブロックを単位として使用して、楽譜を表示させる制御を行うものであって、前記算出した表示幅と前記基本表示ブロックの所定の表示幅とを比較して、該比較結果に基づいて前記所定範囲内に含まれる楽譜記号を１乃至複数の前記基本表示ブロックに分配配置して表示するステップと
を実行させるための楽譜表示制御プログラムを記録してなり、該楽譜表示制御プログラムは前記楽譜記号を前記所定範囲毎に前記基本表示ブロックを単位とした可変の表示幅を用いて表示させることを特徴とするものである、コンピュータ読み取り可能な記憶媒体。
【請求項１１】
コンピュータに、
演奏曲に関する楽曲データを供給するステップと、
前記供給された楽曲データを分析し、演奏曲の１小節に対応する所定範囲毎に該範囲内に含まれる楽譜記号を検出するステップと、
前記表示手段において、該表示手段上の表示領域を１小節を表示するための所定の表示幅でなる基本表示ブロックを単位として使用して、楽譜を表示させる制御を行うものであって、前記算出した表示幅と前記基本表示ブロックの所定の表示幅とを比較して、該比較結果に基づいて前記所定範囲内に含まれる楽譜記号を１乃至複数の前記基本表示ブロックに分配配置して表示するステップと、
演奏曲の演奏進行にあわせて演奏タイミングを前記楽譜記号の表示に対応するように表示するステップと
を実行させるための楽譜表示制御プログラムを記録してなり、該楽譜表示制御プログラムは前記楽譜記号を前記所定範囲毎に前記基本表示ブロックを単位とした可変の表示幅を用いて表示させることを特徴とするものである、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、所定の楽曲データに基づいて演奏される楽曲の進行にあわせて該楽曲の楽譜を表示する楽譜表示制御装置及び方法並びに記憶媒体に関し、特に高度な曲構成をした楽曲の楽譜を表示する場合にユーザに対して最も視認性のよい楽譜表示を行う楽譜表示制御装置及び方法に関する。
【０００２】
【従来の技術】
従来から知られているように、電子楽器やパーソナルコンピュータ等を用いてユーザ所望の楽曲データに基づいて自動演奏（つまり、楽曲データの再生）を行う際には、所定の画面上に当該演奏曲の楽譜を自動的に表示することが行われている。すなわち、自動演奏される演奏曲にあわせて同時にピアノやギター等の楽器演奏を楽しみたい、あるいは楽器演奏の練習をしたいといったようなユーザのために、現在演奏進行中の曲部分に対応する楽譜を所定区間ずつ所定の表示態様で（例えば、４小節分の楽譜を１段に表示するものを１画面につき２段ずつ表示するなど）演奏曲の進行にあわせて順次に表示することが行われている。このようにすると、ユーザ自身がわざわざ曲毎に楽譜を用意しなくてもよいことから便利である。さらに、デモ曲などのオリジナルのアレンジなどがなされた場合には対応する楽譜がそもそも存在しないことから、こうした場合にも曲に対応する楽譜を表示することから非常に便利である。また、所定の表示形態のカーソルを演奏曲の進行にあわせて楽譜上を移動するように表示することで、ユーザに対してそのカーソルが移動した先の楽譜にあわせてピアノやギター等の楽器を操作するように指示することも、演奏曲の楽譜表示に加えて行われている。以上のようにすることで、ユーザはすぐにでも演奏曲にあわせて楽器演奏などの練習を一人で始めることができるようになっている。こうした楽譜やカーソル等の表示制御は、楽譜表示制御装置を用いることによって行われる。
【０００３】
【発明が解決しようとする課題】
ところで、従来の楽譜表示制御装置によって行われている楽譜表示は、子供や初心者向けの簡単な曲構成である楽曲の楽譜を表示することを想定した楽譜表示である場合が多いことから、所定の画面上において固定的な表示幅を持つ基本表示ブロック内に１小節分の楽曲に対応する楽譜の全てを表示するものであった（これにより、各小節を区切るための小節線は各小節毎に予め固定された所定の表示位置に表示される）。そのために、１小節内に音部記号や拍子記号や調号あるいは音符や休符といった楽譜記号が数多く存在し、該１小節内の全ての楽譜記号を表示するのに必要な表示幅が基本表示ブロックの持つ表示幅よりも大きくなってしまうような場合（例えば、音楽レベルの高いユーザ向けである高度な曲構成である楽曲の楽譜を表示するような場合）には、該基本表示ブロック内に表示しきれない楽譜記号が生じてしまうことがある、という問題点があった。このような問題点を解決する１つの方法として、高度な曲構成である楽曲の楽譜を表示する場合には、表示が前後する楽譜記号を無理やりに重ねて表示することによって、該基本表示ブロック内に１小節分の全ての楽譜記号を表示しようとする方法が従来から知られている。しかし、このように一部の楽譜記号を重ねるようにして楽譜表示を行う方法によると、ユーザにとって非常に見にくい楽譜が表示されることになる。すなわち、ユーザの楽譜の視認性という点において非常に不都合な楽譜表示が行われる、という問題点があった。
【０００４】
本発明は上述の点に鑑みてなされたもので、演奏曲の進行にあわせて該曲の楽譜を適宜に見やすい表示態様で所定の画面上に順次に表示していくことによって、１小節中に著しく多数の楽譜記号が存在する高度な曲構成をした楽曲であっても、ユーザが演奏の進行にあわせて確実に楽譜記号を視認することのできる楽譜表示制御装置及び方法を提供しようとするものである。
【０００５】
【課題を解決するための手段】
本発明に係る楽譜表示制御装置は、表示手段と、演奏曲に関する楽曲データを供給する供給手段と、前記供給された楽曲データを分析し、演奏曲の１小節に対応する所定範囲毎に該範囲内に含まれる楽譜記号を検出すると共に前記楽譜記号を前記表示手段にて表示するために必要な表示幅を算出する分析手段と、前記表示手段において、該表示手段上の表示領域を１小節を表示するための所定の表示幅でなる基本表示ブロックを単位として複数の該基本表示ブロックを使用して、楽譜を表示させる制御を行うものであって、前記算出した表示幅と前記基本表示ブロックの所定の表示幅とを比較して、該比較結果に基づいて前記所定範囲内に含まれる楽譜記号を１乃至複数の前記基本表示ブロックに分配配置して表示する制御手段とを具え、前記楽譜記号を前記所定範囲毎に前記基本表示ブロックを単位とした可変の表示幅を用いて表示することを特徴とする。
【０００６】
表示手段は、演奏曲の楽譜を表示することのできるものである。制御手段は、前記表示手段において、該表示手段上の表示領域を１小節を表示するための所定の表示幅でなる基本表示ブロックを単位として使用して、楽譜を表示させる制御を行うものである。すなわち、１つの前記基本表示ブロックは、表示領域における１小節を表示するための所定の表示幅でなり、演奏曲を構成する所定の楽譜記号を複数表示することが可能となっている。分析手段は、供給手段から供給された演奏曲に関する楽曲データを分析し、演奏曲の１小節に対応する所定範囲毎に該範囲内に含まれる楽譜記号を検出すると共に前記楽譜記号を前記表示手段にて表示するために必要な表示幅を算出する。こうして検出された前記所定範囲内に含まれる楽譜記号を表示するにあたって、制御手段は、前記算出した表示幅と前記基本表示ブロックの所定の表示幅とを比較して、該比較結果に基づいて前記所定範囲内に含まれる楽譜記号を１乃至複数の前記基本表示ブロックに分配配置することで、前記各所定範囲内に含まれる楽譜記号を所定範囲毎に前記基本表示ブロックを単位とした可変の表示幅を用いて表示する。すなわち、１つの前記所定範囲内に含まれる楽譜記号を１つの基本表示ブロック内に配置しきれないようなことが生じた場合には、検出した楽譜記号を１乃至複数の前記基本表示ブロックに分配配置する。これにより、楽譜記号を重複表示あるいは近接表示しなければならなかった演奏曲の楽譜を、重複表示あるいは近接表示することなく楽譜を表示することができることから、ユーザにとって視認性のよい楽譜表示を表示手段上で実現することができるようになる。
【０００７】
また、本発明に係る楽譜表示制御装置は、表示手段と、演奏曲に関する楽曲データを供給する供給手段と、前記供給された楽曲データを分析し、演奏曲の１小節に対応する所定範囲毎に該範囲内に含まれる楽譜記号を検出すると共に前記楽譜記号を前記表示手段にて表示するために必要な表示幅を算出する分析手段と、前記表示手段において、該表示手段上の表示領域を１小節を表示するための所定の表示幅でなる基本表示ブロックを単位として使用して、楽譜を表示させる制御を行うものであって、前記算出した表示幅と前記基本表示ブロックの所定の表示幅とを比較して、該比較結果に基づいて前記所定範囲内に含まれる楽譜記号を１乃至複数の前記基本表示ブロックに分配して配置することで、前記楽譜記号を前記所定範囲毎に前記基本表示ブロックを単位とした可変の表示幅を用いて表示する制御手段と、演奏曲の演奏進行にあわせて演奏タイミングを前記楽譜記号の表示に対応するように表示する演奏タイミング表示制御手段とを具える。これによると、楽譜表示と共に該楽譜表示の表示形態に応じて演奏タイミングを表示することから、ユーザに対して適切な演奏補助を行える点で有利である。
【０００８】
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し、実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【０００９】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【００１０】
図１は、この発明に係る楽譜表示制御装置を内蔵した電子楽器の実施の形態を示すハード構成ブロック図である。
この実施形態に示す電子楽器は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータの制御の下に各種の処理が実行されるようになっている。この実施の形態では、１つのＣＰＵ１によって楽曲データに基づいて楽曲を自動的に演奏する自動演奏処理や自動演奏される楽曲の楽譜を演奏の進行にあわせて表示する楽譜表示処理等の各種処理を行う電子楽器を例に説明する。ＣＰＵ１は、この電子楽器全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してリードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３、点灯制御回路４、検出回路５、スイッチ検出回路６、表示回路７、音源回路８、外部記憶装置９、ＭＩＤＩインタフェース（Ｉ／Ｆ）１０、通信インタフェース（Ｉ／Ｆ）１１がそれぞれ接続されている。更に、ＣＰＵ１には、タイマ割込み処理（インタラプト処理）における割込み時間や各種時間を計時するタイマ１Ａが接続されている。すなわち、タイマ１Ａは時間間隔を計数したり、自動演奏のテンポを設定したりするためのテンポクロックパルスを発生するものである。タイマ１ＡからのテンポクロックパルスはＣＰＵ１に対してインタラプト命令として与えられ、ＣＰＵ１はタイマ割込み処理（インタラプト処理）により自動演奏処理を実行する。
【００１１】
ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種プログラムや各種データ等を格納するものである。ＲＡＭ３は、自動演奏に関する各種演奏情報やＣＰＵ１がプログラムを実行する際に発生する各種パラメータなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。発光ダイオード（ＬＥＤ）４Ａは後述の演奏操作子５Ａに対応するようにして配置されており、自動演奏実行の際に楽曲の進行に従って点灯・消灯することによって、ユーザに対してユーザが次に演奏操作すべき演奏操作子５Ａを指示するためのものである。点灯制御回路４は、ＣＰＵ１の制御のもと、演奏操作子５Ａに対応するようにして配置された発光ダイオード（ＬＥＤ）４Ａ毎に、連続的またはパルス的に電圧を印加して所定の発光ダイオード（ＬＥＤ）４Ａを点灯・消灯させることができ、かつ、印加する電圧の大きさを調節してその発光ダイオード（ＬＥＤ）４Ａの輝度を任意に設定することが可能な回路である。つまり、この実施例に示した電子楽器では、ユーザに対する演奏補助を発光ダイオード（ＬＥＤ）４Ａの点灯・消灯によって行う。
【００１２】
演奏操作子５Ａは楽音の音高を選択するための複数の鍵を備えた、例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子５Ａ（鍵盤等）は楽音演奏のために使用できるのは勿論のこと、自動演奏を行う際に用いるメロディのピッチやリズムを入力するための入力手段として使用することもできる。検出回路５は、演奏操作子５Ａの各鍵の押圧及び離鍵を検出することによって検出出力を生じる。パネル操作子（スイッチ等）６Ａは自動演奏の対象となる楽曲データの選択、楽譜表示モードの選択、演奏ガイドモードの選択、自動演奏モードの選択などを行ったり、あるいは楽曲データに基づく自動演奏を行う際に用いる各種演奏条件等を入力するための各種のスイッチ等を含んで構成される。勿論、演奏操作子５Ａは、音高、音色、効果等を選択・設定・制御するために用いる数値データ入力用のテンキーや文字データ入力用のキーボードなどの各種操作子を含んでいてよい。スイッチ検出回路６は、パネル操作子６Ａの各スイッチの操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス１Ｄを介してＣＰＵ１に出力する。表示回路７は自動演奏中の楽曲に関する楽譜等の各種情報を、例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成されるディスプレイ７Ａに表示するのは勿論のこと、自動演奏を行う際における各種演奏条件あるいはＣＰＵ１の制御状態などをディスプレイ７Ａに表示する。この実施例に示す電子楽器においては、ディスプレイ７Ａ上に演奏曲の進行に応じた楽譜が適宜に表示される。
【００１３】
音源回路８は、複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられた楽曲データを入力し、このデータに基づいて楽音信号を発生する。音源回路８から発生された楽音信号は、アンプやスピーカなどを含むサウンドシステム８Ａから発音される。音源回路８から発生された楽音信号に対して、効果回路など（図示せず）を用いて所定の効果を付与するようにしてもよい。楽曲データの形式はＭＩＤＩ形式のようなディジタル符号化されたものであってもよいし、ＰＣＭ、ＤＰＣＭ、ＡＤＰＣＭのような波形サンプルデータ方式からなるものであってもよい。この音源回路８と効果回路（図示せず）とサウンドシステム８Ａの構成には、従来のいかなる構成を用いてもよい。
【００１４】
外部記憶装置９は、楽曲データなどの制御情報やＣＰＵ１が実行する各種プログラム等の制御に関するデータ等を記憶するものである。前記ＲＯＭ２に制御プログラムが記憶されていない場合、この外部記憶装置９（例えばハードディスク）に制御プログラムを記憶させておき、それを前記ＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置９はハードディスク（ＨＤ）に限られず、フロッピィーディスク（ＦＤ）、コンパクトディスク（ＣＤ−ＲＯＭ・ＣＤ−ＲＡＭ）、光磁気ディスク（ＭＯ）、あるいはＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋの略）等の着脱自在な様々な形態の外部記憶媒体を利用する記憶装置であってもよい。あるいは、半導体メモリなどであってもよい。
【００１５】
ＭＩＤＩインタフェース（Ｉ／Ｆ）１０は、他のＭＩＤＩ機器１０Ａ等からＭＩＤＩ規格の楽曲データ（ＭＩＤＩデータ）などを当該電子楽器へ入力したり、あるいは当該電子楽器からＭＩＤＩ規格の楽曲データ（ＭＩＤＩデータ）などを他のＭＩＤＩ機器１０Ａ等へ出力するためのインタフェースである。通信インタフェース１１は、例えばＬＡＮやインターネット、電話回線等の通信ネットワークＸに接続されており、概通信ネットワークＸを介して、サーバコンピュータ１１Ａと接続され、当該サーバコンピュータ１１Ａから制御プログラムや楽曲データなどの各種データを電子楽器側に取り込むためのインタフェースである。すなわち、ＲＯＭ２や外部記憶装置９（例えばハードディスクなど）に制御プログラムや各種データが記憶されていない場合に、サーバコンピュータ１１Ａから制御プログラムや各種データをダウンロードするために用いられる。クライアントとなる電子楽器は、通信インターフェース１１及び通信ネットワークＸを介してサーバコンピュータ１１Ａへと制御プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータ１１Ａは、このコマンドを受け、要求された制御プログラムや各種データを、通信ネットワークＸを介して本電子楽器へと配信し、本電子楽器が通信インタフェース１１を介して、これら制御プログラムや各種データを受信して外部記憶装置９（例えばハードディスクなど）に蓄積することにより、ダウンロードが完了する。
【００１６】
なお、ＭＩＤＩインタフェース１０は専用のＭＩＤＩインタフェースを用いるものに限らず、ＲＳ−２３２Ｃ、ＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインタフェースを用いてＭＩＤＩインタフェース１０を構成するようにしてもよい。この場合、ＭＩＤＩイベントデータ以外のデータをも同時に送受信するようにしてもよい。ＭＩＤＩインタフェース１０として上記したような汎用のインタフェースを用いる場合には、他のＭＩＤＩ機器１０ＡはＭＩＤＩイベントデータ以外のデータも送受信できるようにしてよい。勿論、音楽情報に関するデータフォーマットはＭＩＤＩ形式のデータに限らず、他の形式であってもよく、その場合はＭＩＤＩインタフェース１０と他のＭＩＤＩ機器１０Ａはそれにあった構成とする。
【００１７】
ここで、図１に示した電子楽器において自動演奏を実行する際に用いられる楽曲データの構造について、図２を用いて説明する。図２は、図１に示した電子楽器で用いられる楽曲データのデータ構造の一実施例を示した概略図である。ただし、この実施例においては、楽曲データ構造として複数の異なる曲の楽曲データ１〜楽曲データｎを連続的に記憶したものを図示した。
【００１８】
個々の楽曲データ（楽曲データ１〜ｎ）は自動演奏や楽譜表示の際に用いられる楽音発生あるいは楽譜表示のための制御情報として用いられるデータであって、該楽曲データは内容別に初期設定のためのイベントデータとノートイベントデータ（ノートイベント１…）とデュレーションデータ（デュレーション１…）及びエンドコードとに分けることができる。初期設定のためのイベントデータは、音色やテンポ、あるいは調号や拍子などの該楽曲データを再生する際に用いられる各種音楽情報に関するイベントデータである。楽譜表示の際における調号の表示は、調号が初期設定のためのイベントデータに定義されている場合には該データに従って調号を表示する。調号が初期設定のためのイベントデータに定義されていない場合には、楽曲データ全体から調号を自動的に検出し、該検出した調号を表示する。あるいは、予め定義された所定の調（例えば、「へ長調」など）に従って調号を表示する。楽譜表示の際における拍子記号の表示も上記調号の場合と同様であって、初期設定のためのイベントデータに拍子が定義されている場合には該データに従って拍子記号を表示するし、初期設定のためのイベントデータに拍子が定義されていない場合には楽曲データ全体から自動的に検出した拍子に従う拍子記号を表示する。
【００１９】
ノートイベントデータ（ノートイベント１…）は、ノートオンやノートオフなどのノート（つまり音符）に関するイベントを表す演奏イベントデータである。該ノートイベントデータは、ノート番号とゲートタイムとベロシティなどのデータから構成される。ノート番号は音程を表すために半音単位に便宜的に付けられている番号（例えば、Ｃ２に対して「４８」、Ｃ３に対して「６０」など）であり、これにより楽譜表示の際には適切な音高位置を示す表示位置に音符記号が配置される。ゲートタイムは該ノートの発音時間長さを表すデータであり、これにより楽譜表示の際に適切な音符種類の音符記号（例えば、４分音符や１６分音符など）が前記音高位置に配置されることになる。ベロシティは、音の強弱を表すデータである。デュレーションデータ（デュレーション１…）は、ノートイベントデータの発生タイミングを曲の先頭や各小節の先頭からの絶対時間、あるいは１つ前のノートイベントデータからの相対時間で示すためのデータである。これにより楽譜表示の際には、曲の先頭や小節線からの絶対的な表示位置、あるいは隣り合う音符記号との間における相対的な表示位置が決定され、該表示位置に基づいて音符記号が配置される。また、このような場合にゲートタイムとの関係から音符記号のほかに自動的に休符記号を追加して配置するようにしてもよい。勿論、休符に関するノートイベントデータを予め楽曲データ内に記憶してある場合には、こうした休符記号の自動的な追加は行わなくてよい。エンドコードは、１つの楽曲データの終了を示すデータである。すなわち、この実施例では異なる曲の楽曲データが連続して多数記憶されていることから、該エンドコードによって個々の楽曲データの終了を示すようにしている。
【００２０】
なお、上記楽曲データには複数チャンネルのデータが混在しており、各チャンネルはそれぞれ異なる演奏パート（例えば、左手で演奏するパート、右手で演奏するパート等）に対応する。そこで、楽譜表示を行う際には、各パート別に楽譜を表示するようにしてもよい。
なお、楽曲データに定義されない音部記号（つまり、ト音記号やヘ音記号など）については、楽譜を表示するパート毎のノートイベントデータ（詳しくは音高）に従って自動的に選択した音部記号を表示する。
【００２１】
上述した電子楽器においては、ＣＰＵ１によって楽曲データに基づいて自動演奏される楽曲の楽譜を表示するために各種処理が行われる。すなわち、楽譜表示などの各種処理は、ＣＰＵ１が所定のプログラム（ソフトウエア）を実行することにより実施される。勿論、コンピュータソフトウエアの形態に限らず、ＤＳＰ（ディジタル・シグナル・プロセッサ）によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路あるいはゲートアレイ等を含んで構成された専用ハードウエア装置の形態で実施してもよい。
【００２２】
そこで、まず楽譜表示や演奏ガイドあるいは自動演奏などの各種処理を含む「メイン処理」について、図３を用いて説明する。図３は、該電子楽器におけるＣＰＵ１で実行する「メイン処理」の一実施例を示したフローチャートである。該「メイン処理」は、電子楽器の電源オンと同時に開始し、電子楽器の電源オフと同時に終了する処理である。
【００２３】
ステップＳ１では、初期設定を行う。すなわち、電子楽器への電源投入により所定のプログラムの実行を開始して、ＲＡＭ３の内容をクリアするなどの各種の初期設定（つまり初期化）を行う。この実施例で行われる初期設定としては、例えばＲＡＭ３のレジスタやフラグ、テーブル、メモリあるいはパラメータ等の内容をクリアする（あるいは予め設定された初期値に戻す）、ＭＩＤＩインタフェース１０や通信インタフェース１１やタイマ１Ａ等をクリアする、さらにはディスプレイ７Ａに所定の初期画面を表示するなどがある。ステップＳ２では、「パネルスイッチ処理」を行う。この「パネルスイッチ処理」は、ユーザ選択に従って外部記憶装置９などから楽曲データを読み出す処理、楽曲の楽譜を表示するか否かを選択する処理、演奏ガイドを行うか否かを選択する処理、あるいは自動演奏の開始及び終了を指示する処理、さらには自動演奏時に用いる演奏条件を入力するなどのその他の設定処理等、該電子楽器で実行する各種処理をパネル操作子５Ａを用いて設定指示する処理である（詳しくは、後述する図４で説明する）。
【００２４】
ステップＳ３では、「楽譜表示処理」を行う。この「楽譜表示処理」は、ユーザにより選択された楽曲データに基づいて予め生成される頁毎の楽譜を、楽曲の進行に応じて順次にディスプレイ７Ａに表示する処理である（詳しくは、後述する図８で説明する）。また演奏ガイドを行う選択がなされている場合には、楽曲の進行に応じて演奏がなされている楽譜上の現在位置を指し示すように、所定の表示態様のカーソルを移動表示する。カーソルが表示中の楽譜の最後まで達した場合には、現在表示中の頁の楽譜を次の頁の楽譜とを入れ替えて表示し、カーソルを入れ替えに表示した楽譜の先頭位置に戻す。後述するように１小節内に含まれる楽譜記号が複数の基本表示ブロックに分割されて表示された場合であっても、このカーソルを１小節毎の表示長さに応じて移動速さを変化させながら表示することによって、該カーソルは常に自動演奏が行われている現在の正確な楽譜上の位置を指し示す。これにより、楽譜表示態様に関わらずユーザに対して正確に演奏タイミングを指示することができる。このように、この実施例では、ユーザに対する演奏補助をディスプレイ７Ａに表示された楽譜上のカーソルを移動することによって行う。
【００２５】
ステップＳ４では、演奏ガイド・自動演奏処理を行う。演奏ガイド処理は、ユーザ選択された楽曲データに基づき、選択された演奏ガイドモード（例えば片手ガイド、両手ガイド、ガイドなしの各モード）に応じた演奏ガイドを行う。例えば、「片手ガイドモード」として左手ガイド（あるいは右手ガイド）が選択されている場合には、楽曲データ中の左手パート（あるいは右手パート）の楽曲データに従って演奏操作子５Ａに対応して配置されている発光ダイオード（ＬＥＤ）４Ａを点灯・消灯することによって、左手（あるいは右手）で操作する演奏操作子５Ａの演奏指示をユーザに対して行うことができるようになっている。すなわち、この実施例では、ディスプレイ７Ａに表示された楽譜上をカーソルが移動することによってユーザに対する演奏補助を行うようにすると共に、演奏操作子５Ａに対応して配置された発光ダイオード（ＬＥＤ）４Ａを点灯・消灯することによってもユーザに対する演奏補助を行うことができるようになっている。上記した演奏ガイド処理と共に実行される自動演奏処理は、ユーザにより選択された楽曲データに基づき、演奏ガイドモードに応じた演奏態様で自動演奏を行う。例えば、「片手ガイドモード」として左手ガイド（あるいは右手ガイド）が選択されている場合には左手パート（あるいは右手パート）の演奏のみをミュートする（つまり楽曲データの再生は行うが発音は行われない）、「両手ガイドモード」が選択されている場合には左手パート及び右手パートの両方の演奏をミュートする、「ガイドなしモード」が選択されている場合には全てのパートの演奏を行う。ステップＳ５では、「その他の処理」を行う。すなわち、上記した以外の各種処理を行う。これらステップＳ１〜Ｓ５までの各処理は、当該電子楽器の電源がオフされるまで繰り返し実行される。
【００２６】
次に、上述した「メイン処理」において実行する「パネルスイッチ処理」（図３のステップＳ２参照）の詳細な動作について、図４を用いて説明する。図４は、「パネルスイッチ処理」の一実施例を示したフローチャートである。以下、図４のフローチャートに従って、当該処理における処理動作を説明する。
【００２７】
ステップＳ１１では、楽譜表示や演奏ガイド及び／又は自動演奏の対象となる楽曲データの選択を行う。該楽曲データの選択においては、楽譜表示や演奏ガイド及び／又は自動演奏の対象とする楽曲データとして、外部記憶手段９（例えば、ハードディスクなど）に記憶されている既存の楽曲データの中からいずれかの楽曲データを選択して使用するか、あるいは新たに楽曲データをダウンロードして使用するかを指定する。新たに楽曲データをダウンロードする場合には、ダウンロード先（例えば、他のＭＩＤＩ機器１０Ａやサーバコンピュータ１１Ａなど）を選択し、該ダウンロード先に記憶されている楽曲データの一覧からユーザ所望の楽曲データを選択する。楽曲データを選択すると、該楽曲データのダウンロードをスタートし、ダウンロード先から該電子楽器の外部記憶手段９（例えば、ハードディスクなど）などに楽曲データが送信されて記憶される。ステップＳ１２では、楽譜表示モードの選択を行う。すなわち、ユーザが演奏される楽曲の進行に応じた楽譜の表示を行うか否かのどちらを選択したかの判定を行う。楽譜表示モードが選択されている場合（つまり、ユーザが楽譜表示を行うと選択した場合）には、さらに楽譜の表示サイズの選択が行われる。この楽譜の表示サイズの選択においては、例えば２小節分の楽譜を１段として４段分を同時に表示することのできる表示サイズで（つまり８小節分の楽譜が１頁分として表示される）表示するか、４小節分の楽譜を１段として４段分を同時に表示することのできる表示サイズで（つまり１６小節分の楽譜が１頁分として表示される）表示するかのいずれかを選択することができる。
【００２８】
ステップＳ１３では、演奏ガイドモードの選択を行う。すなわち、ユーザが演奏ガイドを行うか否かのどちらを選択したかの判定を行う。演奏ガイドモードが選択されている場合（つまりユーザが演奏ガイドを行うと選択した場合）には、さらに演奏ガイドモードの種類の選択が行われる。この演奏ガイドモードの種類には、上述したように「片手ガイドモード」、「両手ガイドモード」などがある。演奏ガイドモードの種類として「片手ガイドモード」が選択された場合には、左手あるいは右手（つまり左手パート又は右手パートのいずれか１パート）のみに対する演奏ガイドが楽曲の進行に応じて行われる。演奏ガイドモードの種類として「両手ガイドモード」が選択された場合には、左手と右手の両手（つまり左手パート及び右手パートの２パート）に対する演奏ガイドが楽曲の進行に応じて行われる。ステップＳ１４では、自動演奏モードの選択を行う。すなわち、ユーザが自動演奏を行うか否かのどちらを選択したかの判定を行う。自動演奏モードが選択されている場合（つまりユーザが自動演奏を行うと選択した場合）には、自動演奏スタートスイッチを押下すると自動演奏が開始されるし、自動演奏ストップスイッチを押下すると自動演奏が停止される。ステップＳ１５では、その他の設定処理が行われる。該その他の設定処理としては、楽譜表示や演奏ガイドあるいは自動演奏のためのテンポ設定あるいは自動演奏の際に用いる各種演奏条件の設定などの、パネル操作子６Ａの操作状態の検出に従って行われる各種設定処理などがある。
【００２９】
ステップＳ１６では、自動演奏が行われていない場合に（つまり自動演奏停止中に）、自動演奏スタートスイッチが押下操作されたか否かの判定を行う。すなわち、自動演奏の開始が指示されたか否かを判定する。自動演奏スタートスイッチが押下された場合には（ステップＳ１６のＹＥＳ）、「表示楽譜データ作成処理」を行う（ステップＳ１７）。該「表示楽譜データ作成処理」では、自動演奏される楽曲の進行にあわせてディスプレイ７Ａ上に楽譜を頁単位に表示するための表示楽譜データを生成する。この「表示楽譜データ作成処理」の詳しい説明については、後述する（後述の図５参照）。ステップＳ１８では、楽曲データに基づいた自動演奏を開始すると共に、楽譜表示モードが選択されている場合には（ステップＳ１２参照）、楽譜表示を開始する。演奏ガイドモードが選択されている場合には（ステップＳ１３参照）、演奏ガイドを開始する。すなわち、楽譜表示モードが選択されている場合には、生成した表示楽譜データに基づいて最初の頁の楽譜を表示する。演奏ガイドモードが選択されている場合には、楽曲データに基づいて演奏ガイドを開始する。一方、ステップＳ１６において自動演奏スタートスイッチが押下されていない場合には（ステップＳ１６のＮＯ）、ステップＳ１９の処理へ飛ぶ。すなわち、自動演奏の開始が指示されていない場合には、自動演奏や演奏ガイドは勿論行われないし、またこうした場合には楽譜表示を行う必要もないことから表示楽譜データを生成しなくてよい。そこで、上述のステップＳ１７及びステップＳ１８の処理を実行することなく、ステップＳ１９の処理へ飛ぶ。ステップＳ１９では、楽曲データの再生中（つまり自動演奏中）に自動演奏ストップスイッチが押下されたか否かを判定する。自動演奏ストップスイッチが押下されている場合には（ステップＳ１９のＹＥＳ）、現在行われている自動演奏を停止すると共に、該自動演奏と共に行われている楽譜表示や演奏ガイドなどを同時に停止する（ステップＳ２０）。自動演奏ストップスイッチが押下されていない場合には（ステップＳ１９のＮＯ）、上記ステップＳ２０の処理は行わない。すなわち、自動演奏が行われている場合には、自動演奏、演奏ガイド、楽譜表示を引き続き実行する。
【００３０】
次に、上述した「パネルスイッチ処理」において実行する「表示楽譜データ作成処理」（図４のステップＳ１７参照）の詳細な動作について、図５を用いて説明する。図５は、「表示楽譜データ作成処理」の一実施例を示したフローチャートである。以下、図５のフローチャートに従って、当該処理における処理動作を説明する。
【００３１】
ステップＳ２１では、楽曲データに含まれる初期設定イベントデータに記載されている（あるいは自動検出された）拍子や調号を取得することで、１小節分の楽曲データに対応する調号及び拍子記号を検出する。また、該取得した拍子に基づいて１小節分に対応する楽曲データに含まれるノートイベントデータを取得して音符記号や休符記号等を検出する。例えば、初期設定イベントデータに記憶された拍子記号の値が４／４拍子であるとすると、ノートイベントデータのゲートタイム及びデュレーションデータとに基づいて４／４拍分の長さに対応する楽曲データのノートイベントデータから音符を検出したり、該検出した音符とデュレーションデータとに基づいて休符を検出したりする。これにより、１小節分の曲構成がどのようなものであるかを得ることができる。次に、こうして得られた１小節分の曲構成から、各拍毎に含まれる楽譜記号（つまり、調号、拍子記号、音符記号、休符記号など）を全て表示するのに必要とされる表示幅（例えばドット数）を求める（ステップＳ２２）。
【００３２】
ステップＳ２３では、「１小節楽譜表示の分析処理」を行う。すなわち、楽譜表示を行う場合、通常は１つの基本表示ブロックに１小節分の楽譜記号の全てを表示するのであるが、１小節内にあまりにもたくさんの楽譜記号が入っている場合には、こうした全ての楽譜記号を該基本表示ブロック内に重ねることなく収めて表示することが困難である。このような場合、１小節分の楽曲データに含まれる楽譜記号を１つの基本表示ブロックだけに配置して表示するのではなく、複数の基本表示ブロックに分割配置して表示する。この際に考慮すべき楽譜記号は、五線譜上に表示する音部記号、拍子記号、調号、音符記号（符尾情報や符頭情報などを含む）、休符記号である。そこで、これらの各記号を表示するのに必要な表示幅を各記号毎に求め、各記号の表示幅の合計が基本表示ブロック幅に収まっているかを確認し、収まっていなければ複数の基本表示ブロックに分割して配置するように、１小節分の楽譜記号を分割する。該「１小節楽譜表示の分析処理」の具体的な処理についての詳細な説明は後述する（後述の図６参照）ことから、ここでの詳細な説明を省略する。
【００３３】
ステップＳ２４では、現在分析処理中の小節番号（ＣＭＮ）に１を加算する。ステップＳ２５では、現在分析処理中の小節番号（ＣＭＮ）が楽曲データ全体の総小節数（ＳＳＮ）以下であるか否かの判定を行う。現在の小節番号（ＣＭＮ）が総小節数（ＳＳＮ）以下である場合（ステップＳ２５のＹＥＳ）、上記ステップＳ２３の処理で行った分析結果に基づいて１小節分の表示楽譜データを作成し、ＲＡＭ３の所定の記憶エリアに書き込む（ステップＳ２６）。このＲＡＭ３への表示楽譜データの書き込みが終了すると、次の小節分の表示楽譜データを作成するためにステップＳ２１の処理に戻る。一方、ステップＳ２５において、現在分析処理中の小節番号（ＣＭＮ）が総小節数（ＳＳＮ）より大きい場合には（ステップＳ２５のＮＯ）、楽曲データ全体にわたる全小節についての表示楽譜データの作成が終了していることから該「表示楽譜データ作成処理」を終了する。
こうすることによって、１小節分毎に楽曲データに基づいて楽譜表示を行う際に用いられる表示楽譜データが生成されてＲＡＭ３に記憶される。この際に、所定単位毎に頁数が付与されて表示楽譜データは記憶される。また、その際に総頁数（ＰＮ）も同時に表示楽譜データに記憶される。後述する「楽譜表示処理」（後述の図８参照）では、楽曲の進行に応じてＲＡＭ３に記憶された表示楽譜データを１頁ずつ順次に読み出すことによって楽譜表示を行っている。
【００３４】
ここで、上述した「表示楽譜データ作成処理」において実行する「１小節楽節表示の分析処理」（図５のステップＳ２３参照）の詳細な動作について、図６及び図７を用いて説明する。図６は、「１小節楽譜表示の分析処理」の一実施例を示したフローチャートである。図７は、図６に示した「１小節楽譜表示の分析処理」で使用するパラメータ等を説明するための概念図である。ただし、この図７に示した概念図は、１小節分の楽譜記号の全てが第１基本表示ブロックに収まる場合を例示的に図示したものである。
以下、図６のフローチャート及び図７の概念図に従って、当該「１小節楽譜表示の分析処理」の処理動作について簡単に説明する。
【００３５】
まず、ステップＳ３１では、上述した「表示楽譜データ作成処理」で求められた（図５のステップＳ２２参照）音部記号と調号と拍子記号とを表示するために必要な表示幅及び各拍の表示に必要な幅を各々記憶しておく。図７から理解できるように、この実施例では音部記号（図７ではト音記号）と調号（図７では記載なし）と拍子記号（図７では４／４拍子）とを表示するために必要な表示幅をヘッダー表示幅Head１（つまり、Head１＝音部記号の幅＋調号の幅＋拍子記号の幅）として、各拍内に含まれる全ての楽譜記号を表示するのに必要な幅を拍表示幅ｄ[ｎ]（ｎは拍数）（図７ではｄ［１］〜ｄ[４]）として各々記憶する。また、この他にも、１小節を表示するのに最大限確保することのできる表示幅を基本表示ブロック幅Widthとして記憶する。この他にも、表示先頭拍Startとして「１」拍を、表示終了拍Endとして１小節中における最終拍（図７では「４」拍）をそれぞれセットしておく。ステップＳ３２では、ヘッダー表示幅Head１と表示先頭拍Startから表示終了拍Endまでの全ての拍表示幅ｄ［１］〜ｄ[ｎ]とを合計した結果と基本表示ブロック幅Widthとを比較して、ヘッダー表示幅Head１と表示先頭拍Startから表示終了拍Endまでの全ての拍表示幅ｄ［１］〜ｄ[ｎ]とを合計した結果が基本表示ブロック幅Width以下であるか否かを判定する。又は、表示先頭拍Startと表示終了拍Endとが等しいか否かを判定する。
【００３６】
ヘッダー表示幅Head１と表示先頭拍Startから表示終了拍Endまでの全ての拍表示幅ｄ［１］〜ｄ[ｎ]とを合計した結果が基本表示ブロック幅Width以下であると判定された場合には（ステップＳ３２のＹＥＳ）、該基本表示ブロックに表示先頭拍Startから表示終了拍Endまでの全ての楽譜記号を表示することができるものと判定されることから、表示先頭拍Startから表示終了拍Endまでの全ての楽譜記号を該基本表示ブロックに入れる（ステップＳ３３）。又は、表示先頭拍Startと表示終了拍Endとが等しいと判定された場合（ステップＳ３２のＹＥＳ）、この場合には全ての拍の分析処理が終了したものとして、残りの最後の拍（すなわち、表示先頭拍Startと表示終了拍Endとが等しくなるため）に含まれる楽譜のみを該基本表示ブロックに入れる（ステップＳ３３）。
【００３７】
他方、ステップＳ３２において、ヘッダー表示幅Head１と表示先頭拍Startから表示終了拍Endまでの全ての拍表示幅ｄ［１］〜ｄ[ｎ]とを合計した結果が基本表示ブロック幅Width以下であると判定された場合、又は、表示先頭拍Startと表示終了拍Endとが等しくないと判定された場合（ステップＳ３２のＮＯ）、以下に示した（式２−１）〜（式２−５）の各式に従って各値を設定する（ステップＳ３４）。すなわち、
Idx＝Idx１＝Start…（式２−１）
Diff＝∞…（式２−２）
Head２＝０または（音部記号の幅と調号の幅の和）…（式２−３）
Width１＝Width−Head１…（式２−４）
Width２＝Width−Head２…（式２−５）
小節途中で該小節を分割して表示するために表示段が変わってしまう場合には、新たに音部記号や調号などを次段の先頭位置に表示しなければならない。そこで、Head２（式２−３参照）を予め算出しておく。上記式２−３で示すように、Head２に対しては０または（音部記号の幅と調号の幅の和）のいずれかがセットされる。すなわち、分配を行った際に、同じ段の基本表示ブロックに分配が行われる場合には音部記号や調号を挿入して表示する必要がないので該Head２に０をセットする。一方、異なる段の基本表示ブロックに分配が行われる場合には次段の基本表示ブロックの初めには音部記号や調号などを自動的に挿入する必要があることから、該Head２に音部記号の幅と調号の幅の和をセットする。このように予めセットしておくことで、分配が多段にわたる場合においても、各段の先頭位置に音部記号や調号などを自動的に表示することができ、楽譜表記のルールに従った楽譜表示を行うことができるようになっている。あるいは、楽曲の途中で拍子などが変わる場合（この場合には楽曲データに該当する拍子イベントデータが記憶されている）にはそうした調号や拍子記号などを楽譜に表記しなければならないことから、こうした場合においてもHead２に音部記号の幅と調号の幅の和をセットしておく。ただし、カデンツァ（すなわち、主として曲のエンディング部分に使われる無伴奏のソロ）と判断される場合には、楽曲データに拍子イベントデータが記憶されていたとしても、楽譜表記のルールに従うように調号や拍子記号などを楽譜に表記しなくてよいことから、こうした場合にはHead２に０をセットする。このカデンツァの判断は、例えば４／４拍子の曲である場合には９／４拍子以上の拍子イベントデータが現れた場合、８／８拍子の曲である場合には１７／８拍子以上の拍子イベントデータが現れた場合などにカデンツァと判断する。
【００３８】
さらに、表示先頭拍Startから拍Idxまでの拍を表示するのに必要な表示幅（これを幅Ｄ１とする）及び拍Idxの次の拍（つまりIdx＋１）から表示終了拍Endまでの拍を表示するのに必要な表示幅（これを幅Ｄ２とする）を求める（ステップＳ３５）。すなわち、表示先頭拍Startから表示終了拍Endまでを表示するのに必要な表示幅を拍Idxを区切りとして分割幅Ｄ１と分割幅Ｄ２とに分割する。
ステップＳ３６では、算出した分割幅Ｄ１と表示残幅Width１とを比較する。分割幅Ｄ１が表示残幅Width１よりも大きい場合には（ステップＳ３６のＹＥＳ）、表示先頭拍Startから拍Idx１までの拍が今の基本表示ブロックに入るように設定される（ステップＳ３７）。それと共に、表示開始拍Startに（Idx＋１）を、ヘッダー表示幅Head１にHead２をそれぞれ再設定する。このステップＳ３７の処理を終了すると、ステップＳ３２の処理へ戻る。例えば、表示先頭拍Startから拍Idx１までの拍が第１の基本表示ブロックに入るように設定された場合には、この第１の基本表示ブロックに続く第２の基本表示ブロックを新たに第１の基本表示ブロックとして、上記処理を続ける。
【００３９】
上述したステップＳ３６において、分割幅Ｄ１が表示残幅Width１よりも大きくない場合には（ステップＳ３６のＮＯ）、分割幅Ｄ２と表示残幅Width２との比較を行う（ステップＳ３８）。分割幅Ｄ２が表示残幅Width２よりも大きくない場合には（ステップＳ３８のＮＯ）、分割幅Ｄ１と分割幅Ｄ２との幅の差が変数Diff以上であるか否かが判定される（ステップＳ３９）。分割幅Ｄ１と分割幅Ｄ２との幅の差が変数Diff以上である場合には（ステップＳ３９のＹＥＳ）、上記したステップＳ３７の処理へ行き、表示先頭拍Startから拍Idx１までの拍が今の表示ブロックに入るように設定されると共に、表示開始拍Startに（Idx＋１）を、ヘッダー表示幅Head１にHead２をそれぞれ再設定する。そして、ステップＳ３２の処理へ戻る。分割幅Ｄ１と分割幅Ｄ２との幅の差が変数Diff以上でない場合には（ステップＳ３９のＮＯ）、変数Diffに分割幅Ｄ１と分割幅Ｄ２との幅の差（すなわち、差異）を設定する（ステップＳ４１）。該ステップＳ４１の処理終了後、あるいは分割幅Ｄ２が表示残幅Width２よりも大きい場合には（ステップＳ３８のＹＥＳ）、新たに拍Idx１に対して拍Idxの値を、拍Idxに対して「Idx＋１」を、それぞれ再設定（ステップＳ４０）してからステップＳ３５の処理へ戻る。
【００４０】
ここで、上述したステップＳ３２からステップＳ４１までの各処理に関する基本的な考え方を説明する。小節を構成する複数の拍に対応する楽譜表示を、拍単位で複数の基本表示ブロックに分配するときには、隣り合う２つの基本表示ブロックの楽譜表示がなるべく均等な配置密度となるように、複数通りの分配組み合わせ毎に分割幅Ｄ１と分割幅Ｄ２の幅の差（つまり、｜Ｄ１−Ｄ２｜）を求める。そして、この求めた幅の差が最も小さくなる組み合わせを選択し、選択された組み合わせに基づく分割幅Ｄ１に対応する（単数又は複数の）拍の楽譜表示を１つ目の基本表示ブロックに行うように決定する。例えば、４／４拍子のときには、分割幅Ｄ１に対応する拍と分割幅Ｄ２に対応する拍との組み合わせは、以下に示すような３つの組み合わせとなる。すなわち、第１の組み合わせは、分割幅Ｄ１に１拍目（ｄ[１]）、分割幅Ｄ２に２〜４拍目まで（ｄ[２]+ｄ[３]+ｄ[４]）である。第２の組み合わせは、分割幅Ｄ１に１拍目と２拍目（ｄ[１]+ｄ[２]）、分割幅Ｄ２に３拍目と４拍目まで（ｄ[３]+ｄ[４]）である。第３の組み合わせは、分割幅Ｄ１に１〜３拍目（ｄ[１]+ｄ[２]+ｄ[３]）、分割幅Ｄ２に４拍目（ｄ[４]）である。図６に示した「１小節楽節表示の分析処理」におけるステップＳ３５、Ｓ３６、Ｓ３８、Ｓ３９、Ｓ４１、Ｓ４０、Ｓ３５の各処理またはステップＳ３５、Ｓ３６、Ｓ３８、Ｓ４０、Ｓ３５の各処理を繰り返し処理することによって、各組み合わせ毎に分割幅Ｄ１と分割幅Ｄ２との差を求め、最少の差異となる組み合わせを選択する。
【００４１】
例えば、上記第１の組み合わせにおける分割幅Ｄ１がWidth１よりも大きくない場合（ステップＳ３６のＮＯ）であり、かつ、分割幅Ｄ２がWidth２よりも大きい場合（ステップＳ３８のＹＥＳ）に、ステップＳ３５が実行されると、分割幅Ｄ１には１拍目と２拍目の楽譜記号の合計幅（つまり、拍表示幅ｄ[１]+ｄ[２]）が、分割幅Ｄ２には３拍目と４拍目の楽譜記号の合計幅（つまり、拍表示幅ｄ[３]+ｄ[４]）がそれぞれ設定される。ステップＳ３６にて「ＹＥＳ」である場合（つまり、分割幅Ｄ１がWidth１より大きい場合）には、上記第２の組み合わせにおける分割幅Ｄ１が基本表示ブロックに入らないことになり、上記第１の組み合わせにおける分割幅Ｄ１（この場合、Start＝Idx１＝1）が選択されるべきものとなり、ステップＳ３７に進み、Start〜Idx１の拍（この場合、１拍目（ｄ[１]）のみ）を１つ目の基本表示ブロックに入れることを決定する。その後、ステップＳ３２に戻って、次の基本表示ブロック、次の拍（この場合、ｄ[２]）から再び同様のステップに基づいて処理を始める。他方、ステップＳ３６にて「ＮＯ」である場合（つまり、分割幅Ｄ１がWidth１より小さいか等しい場合）には、ステップＳ３８に進む。ステップＳ３８にて「ＮＯ」である場合（つまり、分割幅Ｄ２がWidth２より小さいか等しい場合）には、ステップＳ３９に進む。ステップＳ３９にて「ＹＥＳ」である場合（つまり、分割幅Ｄ１と分割幅Ｄ２との差が差異Diffの方が小さい場合）には、前回（つまり、Start＝Idx１＝１）の差異Diffが一番小さいということになり、第１拍（ｄ[１]）を１つ目の基本表示ブロックに入れることを決定し、ステップＳ３２に戻って、次の基本表示ブロック、次の拍（ｄ[２]）から再び同様のステップを始める。
【００４２】
一方、ステップＳ３９にて「ＮＯ」である場合(つまり、今回の差異｜Ｄ１−Ｄ２｜の方が前回の差異Diffよりも小さい場合)には、ステップＳ４１に進み、今回の差異を最小の差異Diffとする。ステップＳ４１の処理の後、またはステップＳ３８にて「ＹＥＳ」である場合（つまり、分割幅Ｄ２がWidth２より大きい場合）には、再度ステップＳ４０を実行して、上記第３の組み合わせにおける差異｜Ｄ１−Ｄ２｜を求めるために、再度ステップＳ３５に進み、同様にして処理する。このようにして、ステップＳ３３を除いてステップＳ３２〜ステップＳ４１までの各処理を繰り返し実行することにより、１小節を構成する複数拍の楽譜表示を、拍単位で、基本表示ブロックに入れていく。そして、ステップＳ３２において、残りの全拍の楽譜表示が１つの基本表示ブロックに入るか、または最後の拍に達した場合には、残りの全拍または最後の拍の楽譜表示を現在の基本表示ブロックに入れることを決定して、１小節分の分析処理を終了する。
【００４３】
以上のようにすることによって、１小節内に含まれる全ての楽譜記号が１つの基本表示ブロック内に入りきらないような場合には、１小節内に含まれる楽譜記号を複数の基本表示ブロックに表示するように拍毎に楽譜記号を分割して複数の基本表示ブロックに配置する。また、単に楽譜記号を拍毎に分割して複数の基本表示ブロックに配置するようにしただけでなく、各基本表示ブロックにおける楽譜記号の表示密度を調整しながら表示することが行われる。
【００４４】
ここで、上述した「１小節楽譜表示の分析処理」について図７を用いて具体的に説明する。
例えば、基本の音符記号（例えば、全音符、２分音符、４分音符）や休符記号を表示するために必要なドット数を１記号あたり４ドット、基本の音符記号に付加する旗（例えば、８分音符や１６分音符などで用いる旗表示）を表示するために必要なドット数を３ドット、基本の音符記号に付加する付点（例えば、付点４分音符や付点８分音符などで用いる付点表示）を表示するために必要なドット数を２ドット、臨時記号（例えば調号以外につけられる♯や♭などの、楽曲の途中で特定の音の高さを一時的に半音上または下に変化させる記号）を表示するために必要なドット数を５ドットとする。こうした場合に、図７に示した楽譜の各拍を表示するのに必要な表示幅を求めると、第１拍目（つまりｄ[1]）は２１ドット（つまり、5（臨時記号）×2＋4（音符記号）＋3（旗：付点の2ドットは旗の表示内に含まれる））、第２拍目（つまりｄ[2]）及び第３拍目（つまりｄ[3]）は共に１６ドット（つまり、4（音符記号）×4）、第４拍目（つまりｄ[4]）は１１ドット（つまり、4（音符記号）＋3（旗）＋4（休符記号））となる。したがって、図７に示したような第１小節分の楽譜を表示するのに必要な表示幅は全部で６４ドット（つまり、21＋16＋16＋11）である。上述したように、こうして算出された1小節分を表示するのに必要な表示幅が、第１基本表示ブロック幅Widthからヘッダー表示部Head1を減算した表示残幅Width1よりも小さければ、第１基本表示ブロック内に全ての楽譜記号を表示することができる。例えば、表示残幅Width1として８０ドットあるような場合には、第１小節を表示するのに必要な表示幅６４ドットが全て第１基本表示ブロック内に収まることから、こうした場合には楽譜記号を分割して表示する必要がなく全ての楽譜記号を第１基本表示ブロックに表示することができる。
【００４５】
他方、算出された1小節分を表示するのに必要な表示幅が、第１基本表示ブロック幅Widthからヘッダー表示部Head1を弾いた表示残幅Width1よりも大きければ、第１基本表示ブロック内に全ての楽譜記号を表示することができないことから、こうした場合には１小節内の楽譜記号を分割して、複数の基本表示ブロックWidthに分配する必要がある。例えば、表示残幅Width1として５０ドットしかない場合には、第１小節を表示するのに必要な表示幅６４ドットが全て収まらないために、この場合には楽譜記号を分割して表示する必要がある。こうした場合における分割としては、１拍及び２拍目の３７ドット（つまり、21＋16）を第１基本表示ブロックに分配し、３拍及び４拍目の２７（つまり、16＋11）ドットを第２基本表示ブロックに分配する。あるいは第１拍目の２１ドットを第１基本表示ブロックに、第２〜第４拍目までの４３ドット（つまり、16＋16＋11）を第２基本表示ブロックに分配してもよいが、こうした場合には第１基本表示ブロックと第２基本表示ブロックに表示される楽譜記号が偏って表示されることになり、ユーザにとって非常に見にくくなることから、こうした分配は行われない。なお、１拍〜３拍目までの５２ドット（つまり、21＋16＋16）を第１基本表示ブロックに分配し、４拍目の１１ドットのみを第２基本表示ブロックに分配することは、１拍〜３拍目までが表示残幅Width１の５０ドットを超えてしまうことから、こうした分配はできない。
【００４６】
表示残幅Width１が５０ドット、各拍の楽譜記号を表示するのに必要なドット数がそれぞれ６０、１５、１５、１５ドットであるような場合にも、第１小節内の全ての楽譜記号を表示するのに必要な表示幅１０５ドット（つまり、60＋15＋15＋15）が第１基本表示ブロック内に全て収まらないために分割して表示する必要がある。しかし、この場合に１拍目の６０ドットを第１基本表示ブロックに分配し、２拍〜４拍目までの４５ドット（つまり、15＋15＋15）を第２基本表示ブロックに分配することは、１拍目のみで表示残幅Width１の５０ドットを超えてしまうことから、こうした分配はできない。かといって、１拍及び２拍目（つまり、60＋15の７５ドット）と３拍及び４拍目（つまり、15＋1の３０ドット）、あるいは１拍〜３拍目まで（つまり、60＋15＋15の９０ドット）と４拍目のみ（１５ドット）のように分割しても初めの分割側のみで表示残幅Width１の５０ドットを超えてしまうことから、こうした分配もできない。このように１拍でも第１基本表示ブロックに入りきらないことが生じたような場合には、１拍分をそれ以上分割することができないことから、１拍目の全ての楽音記号を第１基本表示ブロックに割り当てて表示するようにする。こうした場合、１拍目の楽譜記号を表示するのに必要な表示幅は６０ドットであり、これは第１基本表示ブロックの表示残幅Width１の５０ドットを超えてしまうことから、一部分の楽譜記号は重ねて表示されることになる。
【００４７】
また、第１基本表示ブロック及び第２基本表示ブロックの表示残幅が共に５０ドットで、５／４拍子における各拍の楽譜記号を表示するのに必要なドット数がそれぞれ２０、２５、４０、２０、１０ドットであるような場合にも、第１小節を表示するのに必要な表示幅１１５ドット（つまり、20＋25＋40＋20＋10）が全て第１基本表示ブロックに収まらないために分割して表示する必要がある。しかし、この場合に１拍目の２０ドットを第１基本表示ブロックに分配し、２拍〜５拍目の９５ドット（つまり、25＋40＋20＋10）を第２基本表示ブロックに分配することは、２拍〜５拍目が第２基本表示ブロックの表示残幅Width２の５０ドットを超えてしまうことから、こうした分配はできない。１拍及び２拍目の４５ドット（つまり、20＋25）を第１基本表示ブロックに分配し、３拍〜５拍目の７０ドット（つまり、40＋20＋10）を第２基本表示ブロックに分配することは、３拍〜５拍目が第２基本表示ブロックの表示残幅Width２の５０ドットを超えてしまうことから、こうした分配もできない。さらに１拍〜３拍目の８５ドット（つまり、20＋25＋40）を第１基本表示ブロックに分配し、４拍及び５拍目の３０ドット（つまり、20＋10）を第２基本表示ブロックに分配することは、１拍〜３拍目が第１基本表示ブロックの表示残幅Width１の５０ドットを超えてしまうことから、こうした分配もできない。したがって、こうした場合には、第１基本表示ブロックに最大限入りきる拍までを第１基本表示ブロックに、残りの拍をさらに分割してその他の基本表示ブロックに分配する。すなわち、この例では、１拍及び２拍目（つまり、20＋25の４５ドット）を第１基本表示ブロックに割り当てる。残りの３拍〜５拍目（つまり、40＋20＋10の７０ドット）をさらに分割して処理すると、結果として１拍及び２拍目（つまり、20＋25の４５ドット）が第１基本表示ブロックに、３拍目（４０ドット）が第２基本表示ブロックに、４拍及び５拍目（つまり、20＋10の３０ドット）が第３基本表示ブロックにそれぞれ割り当てられることになる。
【００４８】
次に、上述した「メイン処理」において実行する「楽譜表示処理」（図２のステップＳ４参照）の詳細な動作について、図８を用いて説明する。図８は、「楽譜表示処理」の一実施例を示したフローチャートである。以下、図８のフローチャートに従って、当該処理における処理動作を説明する。
【００４９】
まず、ステップＳ５１では、ユーザ選択された楽曲データを現在再生中であるか否か、つまり自動演奏スタートスイッチが押下されて選択された楽曲データに基づく自動演奏が行われている最中であるか否かの判定を行う。楽曲データを現在再生中でない場合には（ステップＳ５１のＮＯ）、楽曲の進行にあわせて楽譜表示する必要がないことから以下に示すステップＳ５２以降の処理を行わずに、該楽譜表示処理を終了する。楽曲データを現在再生中である場合には（ステップＳ５１のＹＥＳ）、楽譜表示を行うようユーザ選択が行われているか否か（図３のステップＳ１２参照）を判定する（ステップＳ５２）。楽譜表示を行うよう選択されていない場合には（ステップＳ５２のＮＯ）、楽譜表示する必要がないことから以下に示すステップＳ５２以降の処理を行わずに、該楽譜表示処理を終了する。楽譜表示を行うよう選択されている場合には（ステップＳ５２のＹＥＳ）、所定時間が経過したか否かを判定する（ステップＳ５３）。所定時間が経過していない場合には（ステップＳ５３のＮＯ）、現在の楽譜表示を変更するタイミングでないと判断して該楽譜表示処理を終了する。すなわち、この場合にはカーソルを含めて現在表示されている状態の楽譜がそのまま表示され続ける。所定時間が経過している場合には（ステップＳ５３のＹＥＳ）、表示されている楽譜上のカーソル表示位置を所定時間分だけ移動して、現在自動演奏中の楽譜における現在位置を示すようにする（ステップＳ５４）。
【００５０】
ステップＳ５５では、カーソルが表示楽譜の最後まで達したか否かを判定する。カーソルが表示楽譜の最後まで達していない場合には（ステップＳ５５のＮＯ）、該表示楽譜を次の楽譜に変更する必要がないことから、該楽譜表示処理を終了する。カーソルが表示楽譜の最後まで達した場合には（ステップＳ５５のＹＥＳ）、該楽曲データが終了していないか否かを判定する（ステップＳ５６）。楽曲データが終了している場合には（ステップＳ５６のＮＯ）、自動演奏の終了にあわせて楽譜表示を終了する（ステップＳ６１）。楽曲データが終了していない場合には（ステップＳ５６のＹＥＳ）、現在楽譜表示中のページ数に「１」を加算する（ステップＳ５７）。すなわち、次の楽譜ページに進む。ステップＳ５７では、現在楽譜表示中のページ数が総ページ以下でない場合には（ステップＳ５７のＮＯ）、自動演奏の終了にあわせて楽譜表示を終了する（ステップＳ５９）。現在楽譜表示中のページ数が総ページ以下である場合には（ステップＳ５７のＹＥＳ）、次のページの楽譜を表示して、それと同時にカーソルを該楽譜の先頭位置に戻して表示する（ステップＳ６０）。
こうすることによって、上述した「表示楽譜データ作成処理」（図５参照）で作成されるページ毎の楽譜表示に従って楽譜表示が行われる。
【００５１】
なお、拍毎に分割を行う際において、連符に関してはなるべく分割を行わないで表示するほうがユーザの見やすさの点から望ましい。
なお、上述の実施例においては、自動演奏開始指示に従って曲全体の楽譜を頁単位に作成するようにしたがこれに限らず、自動演奏処理を行う前に楽曲データを所定区間ずつ先読みし、該先読みした楽曲データに従って曲の所定区間ずつの楽譜を生成するようにしてもよい。また、自動演奏開始指示に従って楽譜を生成するようにしたがこれに限らず、パネル操作子として楽譜表示に使用する頁単位の表示楽譜データを生成するための専用のスイッチを設けておき、該スイッチの操作に応じて予め表示楽譜データのみを生成するようにしてもよい。
なお、上述の実施例においては、１つの基本表示ブロックに１小節分の楽譜記号の全てを表示するものについて説明したがこれに限らない。例えば、１つの基本表示ブロックに１／２小節分の楽譜記号（すなわち、１小節分の楽譜記号は２つの基本表示ブロックを使用して表示される）を表示するといったように、複数の基本表示ブロックを用いて１小節分の楽譜記号を表示するようにしてもよい。こうすると、例えば１小節分の楽譜記号が多いときには３又は４つの基本表示ブロックを用いて表示を行うようにすればよいし、１小節分の楽譜記号が少ないときには１つの基本表示ブロックを用いて表示を行う、といったように適宜に１小節内に含まれる楽譜記号の全てを表示するのに必要な表示幅を可変することが簡単にできるようになることから、非常に便利である。
【００５２】
なお、上述の実施例では片手パートのみを楽譜表示した場合についてのみ説明したがこれに限らず、両手パートを楽譜表示する際にも上述した処理により楽譜表示するようにしてよい。また、こうした場合において、各拍を表示する際に必要な表示幅は大きな表示幅を必要とするものにあわせる。すなわち、大譜表を表示する場合には、上下で同じタイミングに音符がある場合には、同じ横位置に音符を配置しなければならないので、上下で拍毎の表示幅を統一する必要がある。そこで、異なる演奏パート間で同じ演奏タイミングの音符が複数ある場合には、最も大きい表示幅を必要とする音符をその時間の代表とする。例えば、右手パートが６０ドット必要であり、左手パートが２５ドット必要であるとした場合、上述の「１小節楽譜表示の分析処理」において用いる表示幅は右手パートの６０ドットになる。こうすることによって、左手パートと右手パートを演奏する際の演奏タイミングを異ならせることなく楽譜表示することができる。
【００５３】
なお、本実施例に係る楽譜表示制御装置を電子楽器に適用した場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、そのような場合に、音源装置、自動演奏装置等を１つの電子楽器本体に内蔵したものに限らず、それぞれが別々に構成され、ＭＩＤＩインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらに、カラオケ装置やゲーム装置、あるいは携帯電話等の携帯型通信端末、自動演奏ピアノ等に適用してもよい。
【００５４】
なお、楽曲データのフォーマットは上述した図２に示したようなデータ形式のものに限らず、他のどのようなデータ形式のものであってもよい。すなわち、イベントの発生時刻を曲や小節内における絶対時間で表した『イベント＋絶対時間』形式のもの、イベントの発生時刻を１つ前のイベントからの時間で表した『イベント＋相対時間』形式のもの、音符の音高と符長あるいは休符と休符長で楽曲データを表した『音高（休符）＋符長』形式のもの、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域にイベントを記憶した『ベタ方式』形式のものなど、どのような形式のものであってもよい。また、複数チャンネル分の楽曲データが存在する場合は、複数のチャンネルのデータが混在した形式であってもよいし、各チャンネルのデータがトラック毎に別れているような形式であってもよい。さらに、楽曲データの処理方法は、設定されたテンポに応じて処理周期を変更する方法、処理周期は一定で自動演奏中のタイミングデータの値を設定されたテンポに応じて変更する方法、処理周期は一定で１回の処理において楽曲データ中のタイミングデータの計数の仕方をテンポに応じて変更する方法等、どのようなものであってもよい。
また、メモリ上において、時系列の楽曲データが連続する領域に記憶されていてもよいし、飛び飛びの領域に散在して記憶されている楽曲データを、連続するデータとして別途管理するようにしてもよい。すなわち、時系列的に連続する楽曲データとして管理することができればよく、メモリ上で連続して記憶されているか否かは問題ではない。
【００５５】
【発明の効果】
本発明によれば、分割して楽譜表示するようにし、また隣り合う基本表示ブロックに表示する楽譜記号の表示を均等な密度となるようにしたことから、たとえ１小節中に著しくたくさんの楽譜記号がある楽曲であっても、ユーザは確実に楽譜を視認することができるようになる、という効果が得られる。
【図面の簡単な説明】
【図１】  この発明に係る楽譜表示制御装置を内蔵した電子楽器の実施の形態を示すハード構成ブロック図である。
【図２】  図１に示した電子楽器で用いられる楽曲データのデータ構造の一実施例を示した概略図である。
【図３】  図１に示した電子楽器におけるＣＰＵで実行する「メイン処理」の一実施例を示したフローチャートである。
【図４】  図３に示した「メイン処理」において実行する「パネルスイッチ処理」の一実施例を示したフローチャートである。
【図５】  図４に示した上述した「パネルスイッチ処理」において実行する「表示楽譜データ作成処理」の一実施例を示したフローチャートである。
【図６】  図５に示した上述した「表示楽譜データ作成処理」において実行する「１小節楽節表示の分析処理」の一実施例を示したフローチャートである。
【図７】  図６に示した「１小節楽譜表示の分析処理」で使用するパラメータ等を説明するための概念図である。
【図８】  図３に示した「メイン処理」において実行する「楽譜表示処理」の一実施例を示したフローチャートである。
【符号の説明】
１…ＣＰＵ、１Ａ…タイマ、２…ＲＯＭ、３…ＲＡＭ、４…点灯制御回路、４Ａ…ＬＥＤ、５…検出回路、５Ａ…演奏操作子（鍵盤等）、６…スイッチ検出回路、６Ａ…パネル操作子（スイッチ等）、７…表示回路、７Ａ…ディスプレイ、８…音源回路、８Ａ…サウンドシステム、９…外部記憶装置、１０…ＭＩＤＩインタフェース、１０Ａ…他のＭＩＤＩ機器、１１…通信インタフェース、１１Ａ…サーバコンピュータ、Ｘ…通信ネットワーク、１Ｄ…データ及びアドレスバス
【図１】
0003724376.tif 000002
【図２】
0003724376.tif 000003
【図３】
0003724376.tif 000004
【図４】
0003724376.tif 000005
【図５】
0003724376.tif 000006
【図６】
0003724376.tif 000007
【図７】
0003724376.tif 000008
【図８】
0003724376.tif 000009