(57)【要約】【課題】小型電子機器に内蔵されている音源は発音数（チャンネル数）が少ない場合があり、ＳＭＦに対してＤＶＡを行うと発音数を超えるようなコンテンツを再生する際には、非常な負荷がかかりやすくなる。この発明は、小型電子機器での負荷を軽減することが出来る演奏情報処理方法、演奏情報処理装置およびプログラムを提供する。【解決手段】複数のイベントによって構成される演奏情報を再生する電子機器の最大発音数を設定する発音数設定過程（ＳＰ１００）と、同時に発音される楽音に係るイベント数が前記最大発音数を超える場合、所定の規則に従って、前記イベントからトランケートするトランケートイベントを検出するトランケートイベント検出過程（ＳＰ１３０）と、同時に発音される楽音の数が前記最大発音数以下になるように、前記演奏情報を、前記トランケートイベントに応じて変換する変換過程（ＳＰ１３５、ＳＰ１４０）とを有する。【選択図】  図５
2004157350.tif 000002
【特許請求の範囲】
【請求項１】
電子機器に内蔵される音源により再生される複数のイベントを有する演奏情報を変換する演奏情報処理方法において、
同時に発音されるイベント数が所定の最大発音数を超える場合、所定の優先ルールに従って、前記イベントからトランケートするトランケートイベントを検出するトランケートイベント検出過程と、
同時に発音される楽音の数が前記最大発音数以下になるように、前記演奏情報を、前記トランケートイベントに応じて変換する変換過程と
を有することを特徴とする演奏情報処理方法。
【請求項２】
前記最大発音数の設定を行う最大発音数設定過程を有することを特徴とする請求項１記載の演奏情報処理方法。
【請求項３】
複数の異なる優先方式から前記優先ルールを選択する優先ルール選択過程を含むことを特徴とする請求項１記載の演奏情報処理方法。
【請求項４】
前記トランケートイベント検出過程は、前記同時に発音される楽音に係るイベント数が前記最大発音数を超える場合に、最も古いイベントをトランケートイベントとして検出する過程であり、
前記変換過程は、該トランケートイベントに係る発音期間の最後部分を短縮するように前記演奏情報を修正する過程である
ことを特徴とする請求項１記載の演奏情報処理方法。
【請求項５】
前記同時に発音される楽音に係るイベント数が前記最大発音数を超えた時点に、前記トランケートイベントに対応したノートオフイベントを新たに挿入し、元のノートオフイベントを削除することによって最後部分を短縮することを特徴とする請求項４記載の演奏情報処理方法。
【請求項６】
前記トランケートイベント検出過程は、ノートオンとノートオフとの時間差が実質的に無い場合において、これらイベントの双方を、前記トランケートイベントとして検出する過程であり、
前記変換過程は、前記トランケートイベントを削除する過程である
ことを特徴とする請求項１記載の演奏情報処理方法。
【請求項７】
請求項１ないし６の何れかに記載の演奏情報処理方法を実行することを特徴とする演奏情報処理装置。
【請求項８】
放音する電子機器に前記演奏情報を出力する前に、請求項１記載の演奏情報処理方法を実行するように構成されていることを特徴とする演奏情報処理装置。
【請求項９】
請求項１ないし６の何れかに記載の演奏情報処理方法を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、小型電子機器に用いて好適な演奏情報処理方法、演奏情報処理装置およびプログラムに関する。
【０００２】
【従来の技術】
携帯電話、携帯情報ツールなどの小型の電子機器には簡易な音源が内蔵されており、着信メロディ、効果音などの楽音を発生させている。
一方、異なるシーケンサ、シーケンスソフトウェア間で演奏データの互換性を取り、相互にデータを利用するための標準フォーマットとしてスタンダードＭＩＤＩフォーマット（ＳＭＦ）が知られている。なお、コンテンツ（たとえば、演奏情報）は専用のオーサリングツール（編集ツール）を用いて制作される場合が一般的であり、該コンテンツに一定の制限をかけることが出来る。また、特許文献１には、新たなノートオンが入力されたとき、発音中のノートイベントの中から同一または類似の発音を検出して加工する方法が開示されている。
【０００３】
【特許文献１】特開平１１−２３７８７９号公報
【０００４】
【発明が解決しようとする課題】
しかし、小型電子機器に内蔵されている音源は最大発音数（チャンネル数）が少ない場合があり、小型電子機器内部でＳＭＦに対してＤＶＡ（ｄｙｎａｍｉｃ  Ｖｏｉｃｅ  Ａｌｌｏｃａｔｉｏｎ）を行うと発音数を超えるようなコンテンツを再生する際には、非常な負荷がかかり、発音再生の遅れ、いわゆるもたりや、再生がとぎれるなどの問題が起こりやすくなる。ここで、ＤＶＡとは音源の最大発音数を超えた場合に、音切れが生じないように各パートの発音優先順位や主要パートの発音する音数をあらかじめ動的に確保する機能をいう。さらに、携帯電話では、楽音合成に費やすことの出来る処理負荷がＣＰＵパワーの１０％程度に制限されるなどの制約もある。また、特許文献１の方法において発音数を削減しても、音源の同時発音数を超えることがある。
この発明は、上述した事情に鑑みてなされたものであり、小型電子機器での負荷を軽減することが出来る演奏情報処理方法、演奏情報処理装置およびプログラムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、かっこ内は例示である。
請求項１記載の演奏情報処理方法においては、電子機器（携帯電話機、携帯情報端末）に内蔵される音源により再生される複数のイベントを有する演奏情報（ＳＭＦファイル）を変換する演奏情報処理方法において、同時に発音されるイベント数が所定の最大発音数を超える場合、所定の優先ルールに従って、前記イベントからトランケートするトランケートイベントを検出するトランケートイベント検出過程と、同時に発音される楽音の数が前記最大発音数以下になるように、前記演奏情報を、前記トランケートイベントに応じて変換する変換過程とを有することを特徴とする。
さらに、請求項２記載の演奏情報処理方法にあっては、前記最大発音数の設定を行う最大発音数設定過程を有することを特徴とする。
さらに、請求項３記載の演奏情報処理方法にあっては、複数の異なる優先方式から前記優先ルールを選択する優先ルール選択過程を含むことを特徴とする。
また、請求項４記載の演奏情報処理方法にあっては、前記トランケートイベント検出過程は、前記同時に発音される楽音に係るイベント数が前記最大発音数を超える場合に、最も古いイベントをトランケートイベントとして検出する過程であり、前記変換過程は、該トランケートイベントに係る発音期間の最後部分を短縮するように前記演奏情報（ＳＭＦファイルにおけるＤＵＲＡＴＩＯＮ）を修正する過程であることを特徴とする。
さらに、請求項５記載の演奏情報処理方法にあっては、前記同時に発音される楽音に係るイベント数が前記最大発音数を超えた時点に、前記トランケートイベントに対応したノートオフイベントを新たに挿入し、元のノートオフイベントを削除することによって最後部分を短縮することを特徴とする。
また、請求項６記載の演奏情報処理方法にあっては、前記トランケートイベント検出過程は、ノートオンとノートオフとの時間差が実質的に無い場合において、これらイベントの双方を、前記トランケートイベントとして検出する過程であり、前記変換過程は、前記トランケートイベントを削除する過程であることを特徴とする。
また、請求項７記載の演奏情報処理装置にあっては、請求項１ないし６の何れかに記載の演奏情報処理方法を実行することを特徴とする。
また、請求項８記載の演奏情報処理装置にあっては、放音する電子機器に前記演奏情報を出力する前に、請求項１記載の演奏情報処理方法を実行するように構成されていることを特徴とする。
また、請求項９記載のプログラムにあっては、請求項１ないし６の何れかに記載の演奏情報処理方法を実行させることを特徴とする。
【０００６】
【発明の実施の形態】
１．  実施形態の構成
本発明の一実施形態である演奏情報処理装置の構成を図１を参照して説明する。
１０は液晶表示パネルであり、最大発音数などの条件設定を行う画面が表示される。２０はＩ／Ｏ制御部であり、ポインティングデバイス、ＵＳＢインターフェース、ＭＩＤＩインターフェース、携帯電話専用ケーブルが含まれる。ここで、ＵＳＢインターフェースは、携帯情報端末とのインターフェース、楽音機器とのインターフェースに使用される。３０はＦＤＤ部であり、ＳＭＦファイルを交換するためのフレキシブルディスクのリード／ライトを行う。４０はＨＤＤ部であり、処理前後の演奏情報を保管する。５０はＣＰＵであり、各部を制御する。６０はＲＯＭであり、プログラム、パラメータが記憶されている。７０はＲＡＭであり、ワークエリア、バッファとして使用される。９０はバスラインであり、各部を接続する。以上の構成要素により、本実施形態の演奏情報処理装置１００が構成される。
【０００７】
２．  実施形態の動作
（１）ＳＭＦファイルの構造
ＳＭＦファイルにおいては、ＭＩＤＩ情報内の発音開始（ノートオンイベント）、発音停止（ノートオフイベント）などの情報に発生時間情報が付加される。図２（ｃ）にＳＭＦの各イベントでのデータ表記を示す。先頭はＤＵＲＡＴＩＯＮデータであり、一つ前のイベントの開始時刻から次のイベントの開始時刻までの時間を示している。次のデータの集合は、ステータス、ノートナンバ、ベロシティの各データが設定される。ここで、ステータスは、ｎをチャンネル番号として、ノートオンメッセージの場合は「９ｎ」であり、ノートオフメッセージの場合は「８ｎ」である。ノートナンバは、音高を表し、ベロシティは、音量を表す。
【０００８】
（２）同時に５チャンネルの音を発音し、所定時間後、同時に消音する場合
図２（ｂ）における長方形の長辺（横方向）は音の長さを表している。それ故、図２（ｂ）においては、同時に５チャンネルの音を発音し、所定時間後、同時に消音する場合の入力データの内容が示されている。この場合において、ＳＭＦデータには、ＤＵＲＡＴＩＯＮ「０」のデータおよびノートオンイベントデータの組み合わせが、第０チャンネルから第４チャンネルまでの５種類設けられる。そして、これらの発音時間に応じた任意のＤＵＲＡＴＩＯＮデータが設けられ、その後に第０チャンネルのノートオフイベントデータが設けられ、さらに、他のチャンネルについて、ＤＵＲＡＴＩＯＮ「０」のデータおよびノートオフイベントデータの組み合わせが４種類設けられる。この場合において、ＳＭＦファイルが使用される電子機器の最大発音数が４音であれば、第４チャンネルのノートオンが出来ないため、第０チャンネルのノートオンをすぐにノートオフする必要がある。この結果、第０チャンネルの音が発音されることなく、第１チャンネルから第４チャンネルの音が発音されることになる。係る場合には電子機器におけるＣＰＵの稼働時間を少なくするために、第０チャンネルのノートオンイベントデータおよびノートオフイベントデータを予め削除しておくことが望ましい。そこで、本実施形態においては、かかるイベントの削除（トランケート処理）が行われる。
【０００９】
図２（ｂ）に示す発音状態に対しては、具体的には図３（ａ）のようなＳＭＦファイルが形成される。第１番目のデータは、ＤＵＲＡＴＩＯＮ「０」のデータである。２番目のデータは０チャンネルのノートオンイベントデータであり、ノートナンバ「６０」、ベロシティ「７Ｆ」を表している。３番目のデータは、ＤＵＲＡＴＩＯＮ「０」のデータである。４番目のデータは第１チャンネルのノートオンイベントデータであり、ノートナンバ「５０」、ベロシティ「７Ｆ」を表している。５番目から１０番目のデータについても同様であるが、１１番目のデータは、ＤＵＲＡＴＩＯＮ「１０」のデータ、１２番目のデータはノートナンバ「６０」、ベロシティ「７Ｆ」、第０チャンネルのノートオフイベントデータである。さらに、１３番目のＤＵＲＡＴＩＯＮデータ、第１チャンネルのノートオフデータ等が続く。
【００１０】
以下、上述したトランケート処理の詳細を説明する。
まず、演奏情報処理装置１００において所定の操作が行われると、ＨＤＤ部４０に保管された処理前のＳＭＦファイルのデータが読み込まれ、ＲＡＭ７０のワークエリアにて所定の処理がなされる。そして、ＳＭＦファイルは処理後ＨＤＤ部４０に再度保管される。
図５のルーチンが起動すると、ステップＳＰ１００においては、図４に示される画面が液晶表示パネル１０上に表示され、優先モードの確認、最大発音数「４」の確認、（最大発音数＋１）個分のバッファ確保が行われる。なお、詳細は後述するが、ノートオンイベントが発生すると、該イベントが該バッファに書き込まれ、ノートオフイベントが発生すると該バッファから対応するノートオンイベントが削除される。これにより、該バッファは各タイミングにおいて、発音中の楽音を表すデータが記憶されることになる。なお、優先モードの確認については、後着優先方式、先着優先方式、ドラム優先方式の選定がポインティングデバイスの設定により行われる。そして、処理はステップＳＰ１０５に進む。
【００１１】
ここで、後着優先方式とは、後から転送されたデータを優先的に発音して、古いデータの発音を停止する方式をいう。具体的には、図２（ａ）の場合において、最大発音数が４音の場合、第４チャンネルのイベントデータが転送されたときに、第０チャンネルの発音を強制的にａ点で停止する方式をいう。それに対して、先着優先方式とは、第４チャンネルのイベントを発音させない方式である。ドラム優先方式とは、ドラムの音色を指定したイベントデータが転送されることによって、他の音色のイベントをノートオフさせる方式である。発音数確認においては、適用される電子機器の同時発音数に設定される。ここで、現在の音源の最大発音数は１６音、３２音、６４音などがあるが、説明を簡単にするために以下「４」を最大発音数として説明する。
【００１２】
ステップＳＰ１０５においては、ＳＭＦファイルの未だ読み込まれていないイベントデータあるいはＤＵＲＡＴＩＯＮデータのうち先頭のデータの読み込みが行われる。したがって、初回実行時には、第１番目のＳＭＦデータの読み込みが行われる。そして、処理はステップＳＰ１１０に進む。ステップＳＰ１１０においては、データの種類が判定される。具体的には、ＤＵＲＡＴＩＯＮデータであるのか、ノートオンイベントデータであるのか、ノートオフイベントデータであるのかが判定される。ここで、第１番目のデータはＤＵＲＡＴＩＯＮ「０」のデータであるので、ステップＳＰ１１２に進み、該ＤＵＲＡＴＩＯＮデータがワークエリアに書き込まれる。そして、処理はステップＳＰ１０５に戻る。
【００１３】
そして、第２番目のＳＭＦデータの読み込みが行われる。第２番目のデータは第０チャンネルのノートオンイベントデータであるので、ステップＳＰ１１０を介して、処理はステップＳＰ１１６に進む。ステップＳＰ１１６においては、該ノートオンイベントデータがワークエリアに書き込まれ、さらに、バッファに格納される。なお、該バッファに書き込まれたデータの順番がメモリに記憶されており、一番古く書き込まれたデータが把握される。そして、処理はステップＳＰ１２０に進む。ステップＳＰ１２０においては、同時に発音される発音数が最大発音数を超えているか否かが判定される。現時点では、バッファ内のノートオンイベントデータ数が「１」であり、最大発音数「４」を超えないため、「ＮＯ」と判定され、処理はステップＳＰ１４５に進む。ステップＳＰ１４５においてはＳＭＦデータの転送が終了しているか否かが判定される。転送が終了していないため、「ＮＯ」と判定され、処理はステップＳＰ１０５に戻る。
【００１４】
同様に、第１チャンネル、第２チャンネル、第３チャンネルのＤＵＲＡＴＩＯＮデータ、ノートオンイベントがワークエリアに書き込まれ、さらに、バッファに格納される。そして、第４チャンネルのＤＵＲＡＴＩＯＮデータがワークエリアに書き込まれ、処理はステップＳＰ１０５に戻る。
【００１５】
次に、第１０番目のデータは第４チャンネルのノートオンイベントデータであるので、処理はステップＳＰ１０５、ＳＰ１１０を介して、ステップＳＰ１１６に進み、該ノートオンイベントデータがワークエリアに書き込まれ、さらにバッファに書き込まれる（図３（ｂ））。ここで、図３（ｂ）はバッファの状態を表している。そして、ステップＳＰ１２０において、同時に発音される発音数が最大発音数を超えているか否かが判定される。この時点では、バッファ内のノートオンイベントデータの数が５つであり、最大発音数「４」を超えているため、「ＹＥＳ」と判定され、処理はステップＳＰ１３０に進む。
【００１６】
ステップＳＰ１３０においては、トランケートするイベントが決定される。ここで、トランケートとは、ＳＭＦデータを編集する段階で、同時発音数を最大発音数以下に抑えるためにデータを追加／削除し、不要なデータを削除し、あるいはＤＵＲＡＴＩＯＮを変更・短縮することである。具体的には、同時に発音されるイベント数が最大発音数を超える場合、後着優先方式においては、最も古いイベントをトランケートイベントとし、先着優先方式においては、最も新しいイベントをトランケートイベントとする。また、ノートオンとノートオフとの時間がほとんど無いイベントの双方を、トランケートイベントとする。図２（ｂ）の場合、トランケートするイベントは最も古いイベントである第０チャンネルのノートオンイベントであると決定され、処理はステップＳＰ１３５に進む。
【００１７】
ステップＳＰ１３５においては、ステップＳＰ１３０において決定したイベントデータを削除するために、ワークエリアにおいて、ノートオフデータの作成、またはＤＵＲＡＴＩＯＮの変更処理が行われる。この場合、第４チャンネルのイベントデータが転送されたとき、後着優先方式においては、第０チャンネルの発音を短縮するためにノートオフイベントデータが挿入される。すなわち、同時に発音される楽音の数が最大発音数以下になるように処理される。具体的には、ＤＵＲＡＴＩＯＮ「０」のデータおよびノートナンバ「６０」、ベロシティ「７Ｆ」、第０チャンネルのノートオフイベントデータがワークエリアに追加される（図３（ｃ）参照）。ここで、図３（ｃ）から図３（ｅ）は、ワークエリア内のデータ構造を時系列的に示している。そして、処理はステップＳＰ１４０に進む。
【００１８】
ステップＳＰ１４０においては、無駄なデータが削除され、データの整理が行われる。具体的には、ノートオンとノートオフとの時間差が実質的に無い場合において、これらのイベントが削除され、さらに、バッファ内の整理が行われる。すなわち、第０チャンネルのノートオンイベントデータがバッファから削除される。さらに、ワークエリア内で第０チャンネルのノートオンイベントデータおよび追加されたノートオフイベントデータおよびそれらの前に設けられている値「０」のＤＵＲＡＴＩＯＮデータが削除される（図３（ｄ））。そして、処理はステップＳＰ１４５に進む。ステップＳＰ１４５において、転送が終了していないので、「ＮＯ」と判定され、処理はステップＳＰ１０５に戻る。
【００１９】
以下同様に、１１番目のデータはＤＵＲＡＴＩＯＮ「１０」のデータであるから、ステップＳＰ１１２において、該ＤＵＲＡＴＩＯＮデータがワークエリアに書き込まれる（図３（ｄ））。次に、第１２番目のデータは第０チャンネルのノートオフイベントデータであるので、処理はステップＳＰ１１４に進む。ステップＳＰ１１４においては、ワークエリアに該ノートオフイベントデータが書き込まれ、バッファ内の対応するノートオンイベントデータが削除される。ただし、バッファ内に対応するノートオンイベントデータが無い場合は、ワークエリアへの書き込みが行われない。今回の実行時においては、バッファ内から対応する第０チャンネルのノートオンイベントデータが削除されているため、該ノートオフイベントデータがワークエリアに書き込まれない（図３（ｄ））。そして、ステップＳＰ１４５においては、ＳＭＦデータの転送が終了していないので「ＮＯ」と判定され、処理はステップＳＰ１０５に戻る。
【００２０】
次に、１３番目のＳＭＦデータはＤＵＲＡＴＩＯＮ「０」のデータであるので、ステップＳＰ１１２を介して、該ＤＵＲＡＴＩＯＮデータがワークエリアに書き込まれる（図３（ｄ））。ここで、１３番目のＤＵＲＡＴＩＯＮデータをそのまま書き込むと、第１１番目のＤＵＲＡＴＩＯＮデータと第１３番目のＤＵＲＡＴＩＯＮデータとが隣接配置されることになる。このように複数のＤＵＲＡＴＩＯＮデータが隣接することは、データ量を無意味に増加させることになるため、これらＤＵＲＡＴＩＯＮデータが一のＤＵＲＡＴＩＯＮデータにまとめられる。すなわち、第１３番目のデータであるＤＵＲＡＴＩＯＮデータの値に、ワークエリア内に記憶されている第１１番目のＤＵＲＡＴＩＯＮデータの値が加算される。そして、第１３番目のデータであるＤＵＲＡＴＩＯＮデータがワークエリアに書き込まれる。このとき、第１１番目のデータであるＤＵＲＡＴＩＯＮデータは削除される。
【００２１】
さらに、１４番目のＳＭＦデータは第１チャンネルのノートオフイベントであるので、処理はステップＳＰ１１４に進む。この場合、該ノートオフイベントに対応する第１チャンネルのノートオンイベントデータがバッファ内に書き込まれているので、ワークエリアに該ノートオフイベントデータが書き込まれ（図３（ｄ））、さらに、バッファに書き込まれている第１チャンネルのノートオンイベントデータが削除される。
【００２２】
以下同様に、１５番目以降のデータが処理され、ワークエリア内に図３（ｅ）の演奏情報（ＳＭＦファイル）が生成される。そして、生成されたＳＭＦファイルが、一旦、ＨＤＤ部４０に保管された後、Ｉ／Ｏ制御部を介して、電子機器に入力され、あるいは、フレキシブルディスクに記憶される。
【００２３】
（３）  各発音チャンネルごとに発音開始時刻が異なる場合
図２（ａ）においては、第０チャンネルから第４チャンネルの５チャンネルが順番に発音開始し、一定時間発音後、順番に消音していく入力データの内容が示されている。この入力データを再生する場合も電子機器の発音チャンネルは４チャンネルしか用意されていないので、５チャンネル同時に発音することは出来ない。後着優先方式を採用すれば、第４チャンネルのノートオンデータが転送されるときに、最も古い第０チャンネルのノートオフタイミングが強制的にｂ点よりａ点に変更され、発音時間が短縮される。
【００２４】
この場合に入力されるＳＭＦファイルは、第１番目のデータとして、ＤＵＲＡＴＩＯＮ「０」のデータが設けられ、２番目のデータとして第０チャンネルのノートオンイベントデータが設けられる。次に、第３番目のデータとして、一定時間（すなわち、第１チャンネルの発音から第２チャンネルの発音までの時間）のＤＵＲＡＴＩＯＮデータが送られ、第４番目のデータとして第１チャンネルのノートオンイベントが設けられる。同様に、第２チャンネル、第３チャンネル、第４チャンネルについて、所定時間のＤＵＲＡＴＩＯＮデータ、ノートオンイベントデータが設けられる。さらに、第１１番目のデータとして、一定時間（すなわち、第４チャンネルの発音から第０チャンネルの消音までの時間）のＤＵＲＡＴＩＯＮデータが設けられ、１２番目のデータとして第０チャンネルのノートオフデータが設けられる。同様に、第１チャンネル、第２チャンネル、第３チャンネル、第４チャンネルについて、所定時間のＤＵＲＡＴＩＯＮデータ、ノートオフイベントデータが設けられる。
【００２５】
演奏情報処理装置１００において所定の操作が行われると、図５のルーチンが起動する。ステップＳＰ１００において後着優先モードの確認、最大発音数「４」の確認、（最大発音数＋１）個のバッファの確保が行われ、処理はステップＳＰ１０５に進む。
【００２６】
初回実行時には、ステップＳＰ１０５、ＳＰ１１０を介して、第１番目のＳＭＦデータの読み込みが行われ、データの種類が判定される。第１番目のデータはＤＵＲＡＴＩＯＮ「０」のデータであるので、ワークエリアに該ＤＵＲＡＴＩＯＮデータが書き込まれる。さらに、第２番目のデータは、第０チャンネルのノートオンイベントデータであるので、ステップＳＰ１１６において、該ノートオンイベントデータがワークエリアに書き込まれ、さらにバッファに書き込まれる。そして、ステップＳＰ１２０およびステップＳＰ１４５において、「ＮＯ」と判定され、処理はステップＳＰ１０５に戻る。
【００２７】
同様に、第１チャンネル、第２チャンネル、第３チャンネルのノートオンイベントがワークエリアに書き込まれ、さらに、バッファに書き込まれる。さらに、ＤＵＲＡＴＩＯＮデータがワークエリアに書き込まれ、処理はステップＳＰ１０５に戻る。
【００２８】
次の実行時に、１０番目のデータは第４チャンネルのノートオンイベントデータであるので、ステップＳＰ１１６において、該ノートオンイベントデータがワークエリアに書き込まれ、さらに、バッファに書き込まれる。そして、ステップＳＰ１２０において、バッファ内のノートオンイベントデータが「５」であり、最大発音数「４」を超えているので「ＹＥＳ」と判定される。次に、処理がステップＳＰ１３０に進むと、トランケートするイベントは最も古いイベントである第０チャンネルのイベントであると決定される。
【００２９】
そして、ステップＳＰ１３５において、第０チャンネルについてのノートオフイベントデータの作成がワークエリア内で行われる。すなわち、該ノートオフイベントデータは、９番目のデータであるＤＵＲＡＴＩＯＮデータ（第３チャンネルのノートオンから第４チャンネルのノートオンまでの時間Ｔ（図２（ａ）参照））の後に追加される。したがって、第０チャンネルにおけるノートオフタイミングが時間Ｔ移動される。さらに、値「０」のＤＵＲＡＴＩＯＮデータが、第４チャンネルのノートオンイベントの前、すなわち、新しく追加された第０チャンネルのノートオフイベントデータの後に設けられる。そして、ステップＳＰ１４０において、バッファ内の第０チャンネルについてのデータが削除される。そして、ステップＳＰ１４５を介して、処理はステップＳＰ１０５に戻る。
【００３０】
次の実行時、第１１番目のデータは所定時間のＤＵＲＡＴＩＯＮデータであるので、ワークエリアに該ＤＵＲＡＴＩＯＮデータが書き込まれる。次に、１２番目のデータは第０チャンネルのノートオフイベントデータであるが、バッファ内に対応するノートオンイベントデータが存在しないので、ステップＳＰ１１４において、該ノートオフイベントデータはワークエリアに書き込まれない。
【００３１】
次の実行時、第１３番目のデータであるＤＵＲＡＴＩＯＮデータがワークエリアに書き込まれる。この場合、第１３番目のデータであるＤＵＲＡＴＩＯＮデータの値に、ワークエリア内に記憶されている第１１番目のＤＵＲＡＴＩＯＮデータの値が加算され、加算結果であるＤＵＲＡＴＩＯＮデータがワークエリアに書き込まれる。このとき、第１１番目のデータであるＤＵＲＡＴＩＯＮデータは削除される。
【００３２】
同様に、第１５番目、第１７番目のＤＵＲＡＴＩＯＮデータおよび第２チャンネル、第３チャンネルのノートオフイベントデータがワークエリアに書き込まれ、さらに、バッファ内の対応するノートオンイベントが削除される。そして、ステップＳＰ１４５において、ＳＭＦデータの転送が終了しているので本ルーチンが終了する。そして、生成されたＳＭＦファイルが、一旦ＨＤＤ部４０に保管された後、Ｉ／Ｏ制御部を介して、電子機器に入力され、あるいは、フレキシブルディスクに記憶される。
【００３３】
３．  変形例
本発明は上述した実施形態に限定されるものではなく、例えば以下のような種々の変形が可能であり、全て本発明の範疇に含まれる。
（１）上記実施形態は、ＳＭＦファイルに対して処理を行ったが、メーカー専用のエクスクルーシブメッセージファイルに対して処理を行ってもよい。
（２）上記実施形態は、ＲＯＭ６０に格納されたプログラムによって演奏情報処理方法を実行したが、パーソナルコンピュータ上で動作するアプリケーションプログラムによっても実行することが出来る。アプリケーションプログラムあるいは演奏情報処理方法を実行して得た演奏情報をＣＤ−ＲＯＭ、フレキシブルディスク等の記憶媒体に格納して頒布し、あるいは電気通信回線を通じて頒布してもよい。
【００３４】
【発明の効果】
以上説明したように本発明によれば、同時に発音される楽音の数が前記最大発音数以下になるように、演奏情報を変換する変換過程を有しているので、同時に発音される楽音に係るイベント数が電子機器の最大発音数を超える演奏情報を最大発音数内に変換することが出来る。さらに、放音する電子機器に出力する前に、演奏情報を変換する構成によれば、該電子機器のＣＰＵ負荷を軽減することが出来る。
【図面の簡単な説明】
【図１】本発明の一実施形態である演奏情報処理装置の構成図である。
【図２】本発明の一実施形態である演奏情報処理方法を説明するための図およびイベント構造を説明するための図である。
【図３】本発明の一実施形態である演奏情報処理方法の具体例を示す図である。
【図４】操作パネル図である。
【図５】フローチャートを示す図である。
【符号の説明】
１０…液晶表示パネル、２０…Ｉ／Ｏ制御部、３０…ＦＤＤ部、４０…ＨＤＤ部、５０…ＣＰＵ、６０…ＲＯＭ、７０…ＲＡＭ、９０…バスライン、１００…演奏情報処理装置、２００…イベント
【図１】
2004157350.tif 000003
【図２】
2004157350.tif 000004
【図３】
2004157350.tif 000005
【図４】
2004157350.tif 000006
【図５】
2004157350.tif 000007