(57)【要約】【課題】ソングデータのサイズを抑えつつ、含まれている可変長サイズのイベントデータを編集できる電子楽器、電子楽器の制御方法、及びプログラムを提供する。【解決手段】電子楽器は、少なくとも第１イベントと、第１イベントの後にメモリから読み込まれる第２イベントと、を有する複数のイベントを含む曲データから、少なくとも第１イベントを識別可能な第１識別子に応じた第１イベントのサイズを示す第１サイズ情報と、第２イベントを識別可能な第２識別子に応じた第２イベントのサイズを示す第２サイズ情報と、を含むイベントサイズテーブルを生成する生成処理と、曲データを編集する際に、生成処理により生成されたイベントサイズテーブルを参照することにより、複数のイベントのなかのいずれかのイベントが示す内容を表示部に表示する表示処理と、を実行する。【選択図】図１
2019179215.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１イベントと、前記第１イベントの後にメモリから読み込まれる第２イベントと、を有する複数のイベントを含む曲データから、少なくとも前記第１イベントを識別可能な第１識別子に応じた前記第１イベントのサイズを示す第１サイズ情報と、前記第２イベントを識別可能な第２識別子に応じた前記第２イベントのサイズを示す第２サイズ情報と、を含むイベントサイズテーブルを生成する生成処理と、
前記曲データを編集する際に、前記生成処理により生成された前記イベントサイズテーブルを参照することにより、前記複数のイベントのなかのいずれかのイベントが示す内容を表示部に表示する表示処理と、
を実行する電子楽器。
【請求項２】
読み込みポインタにより指定された前記メモリの読み込み位置から前記第２イベントを読み込むことにより、前記第２イベントが示す情報が前記表示部に表示されている際に前記第１イベントが指定された場合、前記第２識別子から前記第１識別子を特定し、前記特定された前記第１識別子に基づいて前記イベントサイズテーブルから前記第１サイズ情報を取得する取得処理と、
前記取得処理により取得された前記第１サイズ情報に応じて前記読み込みポインタの位置を変更する変更処理と、
を実行し、
前記表示処理は、前記変更処理により変更された前記読み込みポインタの位置に応じて前記第１イベントを読み込むことにより前記第１イベントが示す情報を前記表示部に表示する請求項１に記載の電子楽器。
【請求項３】
前記メモリに記憶される曲データに含まれる前記複数のイベントは、それぞれサイズ情報を含まない、
請求項１または２に記載の電子楽器。
【請求項４】
前記イベントサイズテーブルにおける前記第１識別子及び前記第２識別子は、前記複数のイベントに含まれる先頭イベントからの通し番号である請求項１乃至３のいずれか１項に記載の電子楽器。
【請求項５】
前記曲データを編集する際に前記第１イベントと前記第２イベントの間に第３イベントが挿入された場合、前記第３イベントのサイズを示す第３サイズ情報を含めるように前記イベントサイズテーブルが更新され、前記第２識別子に応じた通し番号も更新される更新処理、を実行する請求項４に記載の電子楽器。
【請求項６】
前記曲データを編集する際に前記第１イベントと前記第２イベントの間の第３イベントが削除された場合、前記第３イベントのサイズを示す第３サイズ情報を削除するように前記イベントサイズテーブルが更新され、前記第２識別子に応じた通し番号も更新される更新処理、を実行する請求項４に記載の電子楽器。
【請求項７】
電子楽器のコンピュータに、
少なくとも第１イベントと、前記第１イベントの後にメモリから読み込まれる第２イベントと、を有する複数のイベントを含む曲データから、少なくとも前記第１イベントを識別可能な第１識別子に応じた前記第１イベントのサイズを示す第１サイズ情報と、前記第２イベントを識別可能な第２識別子に応じた前記第２イベントのサイズを示す第２サイズ情報と、を含むイベントサイズテーブルを生成する生成処理と、
前記曲データを編集する際に、前記生成処理により生成された前記イベントサイズテーブルを参照することにより、前記複数のイベントのなかのいずれかのイベントが示す内容を表示部に表示する表示処理と、
を実行させる方法。
【請求項８】
電子楽器のコンピュータに、
少なくとも第１イベントと、前記第１イベントの後にメモリから読み込まれる第２イベントと、を有する複数のイベントを含む曲データから、少なくとも前記第１イベントを識別可能な第１識別子に応じた前記第１イベントのサイズを示す第１サイズ情報と、前記第２イベントを識別可能な第２識別子に応じた前記第２イベントのサイズを示す第２サイズ情報と、を含むイベントサイズテーブルを生成する生成処理と、
前記曲データを編集する際に、前記生成処理により生成された前記イベントサイズテーブルを参照することにより、前記複数のイベントのなかのいずれかのイベントが示す内容を表示部に表示する表示処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、電子楽器、電子楽器の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
電子楽器の演奏データを機器間でデジタル転送するため、世界共通規格であるＭＩＤＩ（Musical Instrument Digital Interface）が用いられている。
【０００３】
特許文献１は、ＭＩＤＩ規格で作成されたソングデータにおいて、編集ポイントとして設定された位置に対して編集ポイント指示イベントとして定義したメタイベントを挿入する機能を有する電子楽器を開示する。イベント情報の配列としては、編集ポイントを基点として形成されるデータ区間を再生した場合には適正な演奏結果が得られるような形態とされている。編集装置側では、編集ポイント指示イベントに基づいて編集ポイントを識別し、この編集ポイントにより区切られるデータ区間を利用してデータの連結等を行うようにして、楽曲演奏情報に対する編集処理を実行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１７５０６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された電子楽器に限らず、電子楽器で編集を行う際、ソングデータに含まれるイベントのデータサイズが固定長である場合、固定長サイズ分アドレスをずらすことで、前方または後方サーチを行うことができる。一方、イベントのデータサイズが可変長である場合、サイズ情報をデータ自体に埋め込み、サイズ情報で示されるサイズ分アドレスをずらすことで前方または後方サーチできる。サイズ情報をソングデータ自体に埋め込むと、可変長のイベントサイズを含むソングデータを扱うことはできるが、ソングデータ自体のサイズが増えるため、メモリの制約がある場合にこの方法を採用することが難しいという問題がある。また、特許文献１に開示された電子楽器では、編集ポイントを示すデータをソングデータに含める必要があるため、メモリの制約がある場合にこの方法を採用することが難しいという問題がある。
【０００６】
この発明の目的は、ソングデータのサイズを抑えつつ、含まれている可変長サイズのイベントデータを編集できる電子楽器、電子楽器の制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、上記目的を達成するため、本発明の第１の観点に係る電子楽器は、
少なくとも第１イベントと、前記第１イベントの後にメモリから読み込まれる第２イベントと、を有する複数のイベントを含む曲データから、少なくとも前記第１イベントを識別可能な第１識別子に応じた前記第１イベントのサイズを示す第１サイズ情報と、前記第２イベントを識別可能な第２識別子に応じた前記第２イベントのサイズを示す第２サイズ情報と、を含むイベントサイズテーブルを生成する生成処理と、
前記曲データを編集する際に、前記生成処理により生成された前記イベントサイズテーブルを参照することにより、前記複数のイベントのなかのいずれかのイベントが示す内容を表示部に表示する表示処理と、
を実行する。
【発明の効果】
【０００８】
本発明によれば、ソングデータのサイズを抑えつつ、含まれている可変長サイズのイベントデータを編集できる電子楽器、電子楽器の制御方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係る電子楽器の構成例を示す概略ブロック図である。
【図２】本発明の実施の形態に係るソングＤＢに格納されるデータの一例を示す図である。
【図３】本発明の実施の形態に係るソングＤＢに格納されるデータの一例を示す図である。
【図４】本発明の実施の形態に係る電子楽器の表示部の例を示す図である。
【図５】本発明の実施の形態に係るイベントサイズテーブルに格納されるデータの一例を示す図である。
【図６】本発明の実施の形態に係るイベントサイズテーブル生成処理のフローチャートである。
【図７】本発明の実施の形態に係るイベント選択処理のフローチャートである。
【図８】本発明の実施の形態に係るイベント挿入処理のフローチャートである。
【図９】本発明の実施の形態に係るイベント削除処理のフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１１】
本発明の実施の形態に係る電子楽器１００は、図１に示すように、制御部１１０と、記憶部１２０と、操作部１３０と、表示部１４０と、ＲＡＭ（Random Access Memory）１５０を含んでいる。
【００１２】
制御部１１０は、ＣＰＵ（Central Processing Unit）を含む。制御部１１０において、ＣＰＵが、記憶部１２０に格納されたプログラム及びデータを読み出し、ＲＡＭ１５０をワークエリアとして用いることにより、電子楽器１００を統括制御する。
【００１３】
記憶部１２０は、フラッシュメモリ、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）といった不揮発性の半導体メモリであって、いわゆる二次記憶装置又は補助記憶装置としての役割を担う。記憶部１２０は、制御部１１０が各種処理を行うために使用するプログラム及びデータ、並びに、制御部１１０が各種処理を行うことにより生成又は取得するデータを記憶する。本実施形態において、記憶部１２０は、ソングデータ（曲データ）を記憶するソングＤＢ（Database）１２１を格納する。
【００１４】
ソングＤＢ１２１には、図２に示すように、複数のソングデータを記憶する。ソングデータは、例えば、１つの楽曲を示すデータを含む。ソングデータは、一例としてＭＩＤＩ（Musical Instrument Digital Interface）規格に準拠しているデータ構造を有するものである。ソングデータは、ヘッドデータと、複数のトラックと、を含む。ヘッドデータは、トラック数などの情報を含む。トラックは、楽器の演奏トラックを含み、例えば、ピアノの演奏トラック、ギターの演奏トラックなどを含む。トラックは、図３に示すように、複数のイベントデータを含む。イベントデータはノートオン、ノートオフ、音色データ、パン値などがある。ノートは、音程、ベロシティなどのデータを含む。音色データは、ピアノの音色、ギターの音色等の楽器の音色データを含む。パン値は、音像定位位置を規定するものである。イベントデータは、イベントの種類を示すＩＤ（番号）とイベントのデータとデルタタイムの情報を含む。イベントデータは可変長サイズデータである。なお、イベントデータは自身のデータサイズを示すデータを含んでいない。
【００１５】
操作部１３０は、キーボード、マウス、タッチパッド、ボタン等の入力装置である。操作部１３０は、ユーザからの入力操作を受け付けて、その操作内容を表す入力信号を制御部１１０に出力する。また、操作部１３０は、複数の白鍵及び黒鍵を有する鍵盤であってもよい。
【００１６】
表示部１４０は、ＬＣＤ（Liquid Crystal Display）パネル、有機ＥＬ（Electro Luminescence）パネル、ＬＥＤ（Light Emitting Diode）パネル等の表示パネルと表示コントローラを備える。また、表示部１４０は、制御部１１０からの制御信号に従って、画像を表示する。本実施の形態においては、例えば、選択対象のイベントの種類やパラメーターの値等を表示する。なお、操作部１３０と表示部１４０とは、これらが互いに重ねられて配置されたタッチパネル又はタッチスクリーンであってもよい。表示部１４０の一例を図４に示す。この表示部１４０に表示される０６０Ｎｏｔｅは、音程のＣ４を示すものである。ＭＥＡＳＵＲＥ  ８９、ＢＥＡＴ  ３、Ｔｉｃｋ  ５６は、８９小節目、３拍目、５６Ｔｉｃｋの位置に対象イベントが存在することを示す。
【００１７】
図１に示すＲＡＭ１５０は、揮発性メモリであり、制御部１１０が各種処理を行うためのプログラムを実行するための作業領域として用いられる。ＲＡＭ１５０は、読み込み対象のイベントデータの先頭イベントからのイベントポインタＰＩと、イベントポインタＰＩが指示するイベントデータの先頭データの論理アドレスを示すデータアドレスポインタＰＤＡを記憶する。また、ＲＡＭ１５０は、図５に示すように、イベントデータの通し番号とイベントデータのデータサイズとを紐付けるイベントサイズテーブル１５１を記憶する。
【００１８】
次に、実施形態に係る電子楽器１００の制御部１１０について説明する。図１に示すように、制御部１１０は、ＣＰＵが記憶部１２０に格納されたプログラム及びデータを読み出して実行することにより、ソングデータ取得部（曲データ取得部）１１１、イベントサイズテーブル生成部１１２、及びイベント編集部１１３として機能する。
【００１９】
ソングデータ取得部１１１は、記憶部１２０のソングＤＢ１２１からソングデータを取得するソングデータ取得処理を実行する。例えば、制御部１１０は、操作部１３０を介して、ソングＤＢ１２１に記憶されたソングデータからユーザにより選択されたソングデータを取得する。
【００２０】
イベントサイズテーブル生成部１１２は、ユーザにより選択された編集対象トラック内のイベントデータのデータサイズ（サイズ情報）とイベントデータの通し番号とを紐付けしたイベントサイズテーブル１５１を生成する。図３に示すように、各イベントデータはそのサイズデータを含んでいない。イベントデータのサイズが不明な状態では、イベントのサーチに時間がかかり、編集対象のイベントのサーチ及び選択が困難となる。そこで、イベントサイズテーブル生成部１１２は、トラックが選択される際に、そのトラックに含まれるイベントとそのサイズとを対応付けるイベントサイズテーブル１５１を参照する。なお、イベントデータの通し番号は、イベントデータを識別可能にする識別子として機能する。具体的には、イベントサイズテーブル生成部１１２は、ユーザにより指定された編集対象トラックを選択する。イベントサイズテーブル生成部１１２は、編集対象トラックに含まれるイベントデータの通し番号ｉの先頭アドレスＡａを取得する。つぎに、イベントサイズテーブル生成部１１２は、イベントデータの通し番号ｉ＋１の先頭アドレスＡｂを取得する。イベントサイズテーブル生成部１１２は、両アドレスの差Ａｂ−Ａａを算出し、差Ａｂ−Ａａを図５に示すイベントサイズテーブル１５１の通し番号ｉのエントリに登録する。
【００２１】
イベント編集部１１３は、イベントポインタＰＩにより指定されたイベントデータを修正、追加、削除する等の編集処理を行う。この編集処理の前提として、処理対象のイベントをサーチし、選択する必要がある。そこで、イベント編集部１１３は、編集対象のイベントを選ぶための、操作部１３０への操作を受け付ける。
この選択処理のため、イベント編集部１１３は、イベントポインタＰＩにより指定されたイベントデータの通し番号ｉとそのときのデータアドレスポインタＰＤＡの値を取得する。イベント編集部１１３は、操作部１３０を介してデータアドレスポインタＰＤＡを進める指示を受け付けると、イベントサイズテーブル１５１を参照し、通し番号ｉのイベントデータのデータサイズＡＣを取得する。つぎに、イベント編集部１１３は、データサイズＡＣをデータアドレスポインタＰＤＡの値に加算して、アクセス対象のイベントデータの先頭の論理アドレスを進めると共にイベントポインタＰＩの値ｉを＋１だけインクリメントする。
一方、イベント編集部１１３は、操作部１３０を介してイベントポインタＰＩを戻す指示を受け付けると、イベントサイズテーブル１５１を参照し、通し番号（ｉ−１）のイベントデータのデータサイズＡＤを取得する。つぎに、イベント編集部１１３は、データアドレスポインタＰＤＡの値からデータサイズＡＤを減算して、アクセス対象のデータの先頭の論理アドレスを戻すと共にイベントポインタＰＩの値ｉを１だけデクリメントする。
また、イベント編集部１１３は、操作部１３０を介して、ユーザにより入力されたイベントを編集対象トラックに挿入する。つぎに、イベント編集部１１３は、挿入したイベントのデータサイズを取得し、イベントサイズテーブル１５１に挿入したイベントのデータサイズを挿入した位置の通し番号に紐付けして記憶する。つぎに、イベント編集部１１３は、イベントを挿入した以降のイベントデータの通し番号を繰り下げる。また、イベント編集部１１３は、操作部１３０を介して、ユーザにより指定されたイベントを編集対象トラックから削除し、イベントを挿入した以降のイベントデータの通し番号を繰り上げる。
【００２２】
つぎに、電子楽器１００が実行するイベントサイズテーブル生成処理について説明する。
【００２３】
制御部１１０は、図６に示すように、例えば本処理の開始を表す操作入力を、操作部１３０を介して受け付けたことを契機として開始する。
【００２４】
ソングデータ取得部１１１は、操作部１３０を介して、ソングＤＢ１２１に記憶されたソングデータからユーザにより選択されたソングデータを取得する（ステップＳ１０１）。
【００２５】
つぎに、イベントサイズテーブル生成部１１２は、ユーザにより選択された編集対象トラックを選択する（ステップＳ１０２）。
【００２６】
つぎに、イベントサイズテーブル生成部１１２は、編集対象トラックに含まれるイベントデータの数ｎを取得する（ステップＳ１０３）。
【００２７】
つぎに、イベントサイズテーブル生成部１１２は、イベントデータの通し番号ｉ＝１に設定する（ステップＳ１０４）。
【００２８】
つぎに、イベントサイズテーブル生成部１１２は、イベントデータの通し番号１の先頭アドレスＡａを取得する。（ステップＳ１０５）。
【００２９】
つぎに、イベントサイズテーブル生成部１１２は、イベントデータの通し番号１＋１＝２の先頭アドレスＡｂを取得する。（ステップＳ１０６）。
【００３０】
つぎに、イベントサイズテーブル生成部１１２は、Ａｂ−Ａａを算出し、Ａｂ−Ａａを図５に示すイベントサイズテーブル１５１の通し番号１に登録する（ステップＳ１０７）。
【００３１】
つぎに、イベントサイズテーブル生成部１１２は、ｉ＝ｎであるか否かを判定する（ステップＳ１０８）。
【００３２】
ｉ＝ｎでないと判定されると（ステップＳ１０８；Ｎｏ）、ｉをインクリメントし（ステップＳ１０９）、ステップＳ１０５に戻る。ｉ＝ｎになるまで、ステップＳ１０５〜ステップＳ１０９を繰り返す。ｉ＝ｎであると判定されると（ステップＳ１０８；Ｎｏ）イベントサイズテーブル生成処理を終了する。
【００３３】
つぎに、イベントサイズテーブル生成処理を終了した後で、電子楽器１００が編集対象のイベントを選択するために実行するイベント選択処理について説明する。
【００３４】
制御部１１０は、例えば本処理の開始を表す操作入力を操作部１３０を介して受け付けたことを契機として図７に示すイベント選択処理を開始する。なお、この入力操作は、イベントポインタＰＩが示すイベント以外のイベントをユーザが選択する場合に行われる。
【００３５】
イベント編集部１１３は、読み込みイベントポインタＰＩが指示するイベントデータの通し番号ｉを取得する。また、データアドレスポインタＰＤＡの値を取得する（ステップＳ２０１）。
【００３６】
つぎに、イベント編集部１１３は、操作部１３０を介して読み込みイベントポインタＰＩを戻す指示を受け付けたか否かを判定する（ステップＳ２０２）。
【００３７】
読み込みイベントポインタＰＩを戻す指示を受け付けていないと判定すると（ステップＳ２０２；Ｎｏ）、イベント編集部１１３は、操作部１３０を介して読み込みイベントポインタＰＩを進める指示を受け付けたか否かを判定する（ステップＳ２０３）。
【００３８】
読み込みイベントポインタＰＩを進める指示を受け付けたと判定すると（ステップＳ２０３；Ｙｅｓ）、イベント編集部１１３は、図５に示すイベントサイズテーブルを参照し、通し番号ｉのイベントデータのデータサイズＡＣを取得する（ステップＳ２０４）。
【００３９】
つぎに、イベント編集部１１３は、データサイズＡＣだけデータアドレスポインタＰＤＡの位置を進める（ステップＳ２０５）。つぎに、イベント編集部１１３は、ｉをインクリメントする（ステップＳ２０６）。
【００４０】
つぎに、イベント編集部１１３は、イベント選択処理を終了する指示を受け付けたか否かを判定する（ステップＳ２０７）。
【００４１】
イベント選択処理を終了する指示を受け付けていないと判定すると（ステップＳ２０７；Ｎｏ）、ステップＳ２０２に戻る。
【００４２】
読み込みイベントポインタＰＩを戻す指示を受け付けたと判定すると（ステップＳ２０２；Ｙｅｓ）、イベント編集部１１３は、図５に示すイベントサイズテーブル１５１を参照し、通し番号ｉ−１のイベントデータのデータサイズＡＤを取得する（ステップＳ２０８）。
【００４３】
つぎに、イベント編集部１１３は、データサイズＡＤだけ読み込みアドレスポインタＰＤＡの位置を戻す（ステップＳ２０９）。つぎに、イベント編集部１１３は、ｉをデクリメントする（ステップＳ２１０）。
【００４４】
つぎに、イベント編集部１１３は、イベント選択処理を終了する指示を受け付けたか否かを判定する（ステップＳ２０７）。
【００４５】
つぎに、イベント選択処理を終了する指示を受け付けたと判定すると（ステップＳ２０７；Ｙｅｓ）、イベント選択処理を終了する。イベント選択処理が終了した後、イベント選択処理で選択されたイベントは、操作部１３０を介して入力された指示に基づいて編集される。
【００４６】
つぎに、イベントサイズテーブル生成処理を終了した後で、電子楽器１００が実行するイベント挿入処理について説明する。
【００４７】
制御部１１０は、図８に示すように、例えば本処理の開始を表す操作入力を、操作部１３０を介して受け付けたことを契機として開始する。
【００４８】
イベント編集部１１３は、操作部１３０を介して、ユーザにより入力されたイベントを編集対象トラックに挿入する（ステップＳ３０１）。
【００４９】
つぎに、イベント編集部１１３は、挿入したイベントのデータサイズを取得する（ステップＳ３０２）。
【００５０】
つぎに、イベント編集部１１３は、イベントサイズテーブル１５１に挿入したイベントのデータサイズを挿入した位置の通し番号に紐付けして記憶する（ステップＳ３０３）。
【００５１】
つぎに、イベント編集部１１３は、イベントを挿入した以降のイベントデータの通し番号を、挿入したイベントの数だけ繰り下げる（ステップＳ３０４）。その後、イベント挿入処理を終了する。
【００５２】
つぎに、イベントサイズテーブル生成処理を終了した電子楽器１００が実行するイベント削除処理について説明する。
【００５３】
制御部１１０は、図９に示すように、例えば本処理の開始を表す操作入力を、操作部１３０を介して受け付けたことを契機として開始する。
【００５４】
イベント編集部１１３は、操作部１３０を介して、ユーザにより指定されたイベントを編集対象トラックから削除する（ステップＳ４０１）。
【００５５】
つぎに、イベント編集部１１３は、イベントを挿入した以降のイベントデータの通し番号を繰り上げる（ステップＳ４０２）。その後、イベント削除処理を終了する。
【００５６】
以上説明したように、本実施形態に係る電子楽器１００は、ソングデータに含まれるイベントデータごとにサイズ情報を含んでいない。これにより１イベントデータごとに１バイトのデータ量を削減できる。例えば、ソングデータに４万個のイベントデータが含まれている場合、従来例より４０Ｋバイトの削減が可能になる。１曲のソングデータのサイズは、従来３６０Ｋバイトだとすると、本発明によれば３２０Ｋバイトに削減できる。編集する際に、生成済みのイベントサイズテーブル１５１を参照することにより、各イベントデータのサイズ情報を得ることができる。従って、ソングデータに含まれる各イベントのデータが可変長の場合であっても、良好にイベントデータを編集できる。
これに対して、ソングデータに含まれる各イベントデータにサイズ情報を含むと、１曲あたり４０Ｋバイトの記憶容量が余分に必要となる。曲データの再生時には、曲データはＲＡＭに展開されてＲＡＭの領域を使用する。また一般に電子楽器には５０曲の曲データが内蔵されているので、記憶する曲データの数が増えるにつれてフラッシュメモリ（ＲＯＭ）の領域を使用する。
【００５７】
なお、本発明は、上記実施の形態に限られるものではなく、様々な変更が可能である。
上記実施の形態では、イベントを１つずつ順次戻し或いは進めて選択する例を説明したが、複数のイベントをジャンプすることも可能である。例えば、ｍ個のイベントをジャンプする場合には、ジャンプするｍ個のイベントのデータサイズを合計してデータ量を求め、そのデータ量をデータアドレスポインタＰＤＡの値に加算又は減算し、イベントポインタＰＩの値にｍを加算又は減算すればよい。
【００５８】
また、上記の実施の形態では、制御部１１０を含む機器として、電子楽器１００を例に挙げて説明したが、携帯電話、ＰＣ（Personal Computer）、ＰＤＡ（Personal Digital Assistant）等の電子機器であってもよい。
【００５９】
また、上記の実施の形態では、制御部１１０のＣＰＵが、制御動作を行う例を説明した。しかし、制御動作は、ＣＰＵによるソフトウェア制御に限られるものではない。制御動作の一部又は全部が専用の論理回路などのハードウェア構成を用いてなされても良い。
【００６０】
また、以上の説明では、本発明の処理に係るプログラムを記憶するコンピュータ読み取り可能な媒体としてフラッシュメモリなどの不揮発性メモリからなる記憶部１２０を例に挙げて説明した。しかし、コンピュータ読み取り可能な媒体は、これらに限定されず、ＨＤＤ（Hard Disk Drive）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）やＤＶＤ（Digital Versatile Disc）などの可搬型記録媒体を適用してもよい。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウェーブ（搬送波）も本発明に適用される。
【００６１】
その他、上記実施の形態で示した構成、制御手順や表示例などの具体的な細部は、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
【００６２】
本発明のいくつかの実施形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記の番号は、この出願の願書に最初に添付した特許請求の範囲の通りである。
【００６３】
（付記１）
少なくとも第１イベントと、前記第１イベントの後にメモリから読み込まれる第２イベントと、を有する複数のイベントを含む曲データから、少なくとも前記第１イベントを識別可能な第１識別子に応じた前記第１イベントのサイズを示す第１サイズ情報と、前記第２イベントを識別可能な第２識別子に応じた前記第２イベントのサイズを示す第２サイズ情報と、を含むイベントサイズテーブルを生成する生成処理と、
前記曲データを編集する際に、前記生成処理により生成された前記イベントサイズテーブルを参照することにより、前記複数のイベントのなかのいずれかのイベントが示す内容を表示部に表示する表示処理と、
を実行する電子楽器。
【００６４】
（付記２）
読み込みポインタにより指定された前記メモリの読み込み位置から前記第２イベントを読み込むことにより、前記第２イベントが示す情報が前記表示部に表示されている際に前記第１イベントが指定された場合、前記第２識別子から前記第１識別子を特定し、前記特定された前記第１識別子に基づいて前記イベントサイズテーブルから前記第１サイズ情報を取得する取得処理と、
前記取得処理により取得された前記第１サイズ情報に応じて前記読み込みポインタの位置を変更する変更処理と、
を実行し、
前記表示処理は、前記変更処理により変更された前記読み込みポインタの位置に応じて前記第１イベントを読み込むことにより前記第１イベントが示す情報を前記表示部に表示する付記１に記載の電子楽器。
【００６５】
（付記３）
前記メモリに記憶される曲データに含まれる前記複数のイベントは、それぞれサイズ情報を含まない、
付記１または２に記載の電子楽器。
【００６６】
（付記４）
前記イベントサイズテーブルにおける前記第１識別子及び前記第２識別子は、前記複数のイベントに含まれる先頭イベントからの通し番号である付記１乃至３のいずれか１つに記載の電子楽器。
【００６７】
（付記５）
前記曲データを編集する際に前記第１イベントと前記第２イベントの間に第３イベントが挿入された場合、前記第３イベントのサイズを示す第３サイズ情報を含めるように前記イベントサイズテーブルが更新され、前記第２識別子に応じた通し番号も更新される更新処理、を実行する付記４に記載の電子楽器。
【００６８】
（付記６）
前記曲データを編集する際に前記第１イベントと前記第２イベントの間の第３イベントが削除された場合、前記第３イベントのサイズを示す第３サイズ情報を削除するように前記イベントサイズテーブルが更新され、前記第２識別子に応じた通し番号も更新される更新処理、を実行する付記４に記載の電子楽器。
【００６９】
（付記７）
電子楽器のコンピュータに、
少なくとも第１イベントと、前記第１イベントの後にメモリから読み込まれる第２イベントと、を有する複数のイベントを含む曲データから、少なくとも前記第１イベントを識別可能な第１識別子に応じた前記第１イベントのサイズを示す第１サイズ情報と、前記第２イベントを識別可能な第２識別子に応じた前記第２イベントのサイズを示す第２サイズ情報と、を含むイベントサイズテーブルを生成する生成処理と、
前記曲データを編集する際に、前記生成処理により生成された前記イベントサイズテーブルを参照することにより、前記複数のイベントのなかのいずれかのイベントが示す内容を表示部に表示する表示処理と、
を実行させる方法。
【００７０】
（付記８）
電子楽器のコンピュータに、
少なくとも第１イベントと、前記第１イベントの後にメモリから読み込まれる第２イベントと、を有する複数のイベントを含む曲データから、少なくとも前記第１イベントを識別可能な第１識別子に応じた前記第１イベントのサイズを示す第１サイズ情報と、前記第２イベントを識別可能な第２識別子に応じた前記第２イベントのサイズを示す第２サイズ情報と、を含むイベントサイズテーブルを生成する生成処理と、
前記曲データを編集する際に、前記生成処理により生成された前記イベントサイズテーブルを参照することにより、前記複数のイベントのなかのいずれかのイベントが示す内容を表示部に表示する表示処理と、
を実行させるプログラム。
【符号の説明】
【００７１】
１００…電子楽器、１１０…制御部、１２０…記憶部、１３０…操作部、１４０…表示部、１１１…ソングデータ取得部、１１２…イベントサイズテーブル生成部、１１３…イベント編集部、１２１…ソングＤＢ、１５０…ＲＡＭ、１５１…イベントサイズテーブル
【図１】
2019179215.tif 000003
【図２】
2019179215.tif 000004
【図３】
2019179215.tif 000005
【図４】
2019179215.tif 000006
【図５】
2019179215.tif 000007
【図６】
2019179215.tif 000008
【図７】
2019179215.tif 000009
【図８】
2019179215.tif 000010
【図９】
2019179215.tif 000011