(57)【要約】【課題】  楽曲の自動演奏を指示する演奏データにより、ユーザの意図する自動演奏が行われるか否かを容易に確認可能とする手段を提供する。【解決手段】  生成期間算出部３０８は、演奏データ処理部３０３および音色データ処理部３０７から、それぞれ演奏データおよび音色データを受け取る。生成期間算出部３０８は、演奏データに含まれるノートデータに応じて発音されるべき楽音の波形エンベロープを、当該ノートデータに対応する音色データに基づき生成し、楽音の発音開始時期を示すノートオンタイミングデータとともに表示処理部３０４に送る。表示処理部３０４は、ノートオンタイミングデータおよび波形エンベロープにより特定される時間軸方向の位置に、楽音の発音期間を示すエンベロープを表示する。【選択図】      図２
2005266350.tif 000002
【特許請求の範囲】
【請求項１】
楽曲演奏を構成する個々の楽音に関し、当該楽音の発音開始時期および発音終了時期を指定する発音指示データを含む演奏データを記憶する演奏データ記憶手段と、
前記演奏データにおける発音指示データに対応した楽音信号の生成を楽音生成装置に指示した場合に当該楽音生成装置によって生成される楽音信号の生成期間を算出する生成期間算出手段と、
前記楽曲演奏を構成する１の楽音に関し、当該楽音に対応した発音指示データによって指定される発音開始時期および発音終了時期を示す第１の表示を行うとともに、前記生成期間算出手段によって算出された当該楽音の生成期間の少なくとも終期を示す第２の表示を行う表示手段と
を具備することを特徴とする演奏情報表示装置。
【請求項２】
前記演奏データは、前記楽曲演奏を構成する個々の楽音に関し、当該楽音の音量の時間的変化を指定する音量指示データをさらに含み、
前記生成期間算出手段は、前記楽曲演奏を構成する１の楽音に関し、当該楽音に対応した音量指示データに基づき、当該楽音の生成期間を算出する
ことを特徴とする請求項１に記載の演奏情報表示装置。
【請求項３】
前記表示手段は、前記楽曲演奏を構成する１の楽音に関し、当該楽音の音量の時間的変化を示すエンベロープを表示することにより前記第２の表示を行う
ことを特徴とする請求項１に記載の演奏情報表示装置。
【請求項４】
前記演奏データに応じた楽音信号の生成において必要となる前記楽音生成装置のリソース量を、前記生成期間算出手段によって算出された前記楽曲演奏を構成する個々の楽音の生成期間に基づき算出する必要リソース量算出手段と、
前記必要リソース量算出手段により算出された個々の時期において必要となるリソース量が、前記楽音生成装置が有するリソース量を上回る期間をリソースの不足期間として算出する不足期間算出手段と
をさらに具備し、
前記表示手段は、前記不足期間算出手段によって算出されたリソースの不足期間を示す表示を行う
ことを特徴とする請求項１に記載の演奏情報表示装置。
【請求項５】
楽曲演奏を構成する個々の楽音に関し、当該楽音の発音開始時期および発音終了時期を指定する発音指示データを含む演奏データを記憶する演奏データ記憶手順と、
前記演奏データにおける発音指示データに対応した楽音信号の生成を楽音生成装置に指示した場合に当該楽音生成装置によって生成される楽音信号の生成期間を算出する生成期間算出手順と、
前記楽曲演奏を構成する１の楽音に関し、当該楽音に対応した発音指示データによって指定される発音開始時期および発音終了時期を示す第１の表示を行うとともに、前記生成期間算出手順において算出された当該楽音の生成期間の少なくとも終期を示す第２の表示を行う表示手順と
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏データの表示技術に関する。
【背景技術】
【０００２】
楽曲に含まれる楽音の音高および発音期間等を示すノートデータを複数含む演奏データを用いて、自動演奏装置に楽曲の自動演奏を行わせる技術がある。自動演奏装置に用いられる演奏データの内容表示や編集には、通常、オーサリングツールと呼ばれる装置が用いられる。
【０００３】
図１７は、オーサリングツールにより演奏データの内容が表示されている様子を示す図である。図１７に示される表示形式は、一般にピアノロール表示と呼ばれ、ピアノロール表示においてはノートバーと呼ばれる棒状の図形により、演奏データに含まれる各ノートデータの内容が示される。ピアノロール表示の上下方向は音高軸、左右方向は時間軸に対応しており、例えば、図１７におけるノートバー１８０１は、音高がＣ３の楽音を、第１小節の１．５拍目から３拍目まで発音することを示すノートデータを表している。ピアノロール表示の可能なオーサリングツールにおいては、ユーザがノートバーの所定の位置をドラッグ等してその位置および長さを変更することにより、ノートデータの内容を変更することができる。
【０００４】
上記のピアノロール表示の技術を開示している文献として、例えば特許文献１がある。
【特許文献１】特開２００２−４９３７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、自動演奏装置が同時に発音可能な楽音の数には、自動演奏装置が有するプロセッサの能力、メモリ容量、データバスのデータ転送容量等（以下、「リソース」と呼ぶ）により上限がある（以下、その上限を「最大発音数」と呼ぶ）。自動演奏装置は、最大発音数を超える数の楽音の発音指示を受け取った場合、通常、現在発音中の楽音のうち最も早期に発音を開始したものの発音を中止し、その楽音の発音に用いられていたリソースを、新たに発音指示がなされた楽音の発音に割り当てる。このように、限られたリソースを異なる楽音の発音のために次々と割り当て直す技術は「ＤＶＡ」（Ｄｙｎａｍｉｃ  Ｖｏｉｃｅ  Ａｌｌｏｃａｔｉｏｎ）と呼ばれる。
【０００６】
ＤＶＡによれば、先行する楽音の発音のために全てのリソースが使用されている場合に後続の楽音が発音されない、といった不都合が回避される。しかしながら、先行する楽音の発音が後続の楽音のために強制的に中止されてしまうと、かえって演奏が不自然となる場合がある。例えば、伴奏パートの楽音を発音するために、メロディパートの楽音の発音が中止されてしまう場合などである。そのような不都合をなくすために、演奏データの制作者は、通常、演奏データに最大発音数を超える楽音の発音指示が含まれていないかを確認し、必要に応じて重要度の低いものを削除等している。
【０００７】
しかし、オーサリングツールによりピアノロール表示形式で表示されるノートバーの時間軸方向の両端は、対応するノートデータのノートオンタイミングおよびノートオフタイミングを示しており、ノートバーにより示される期間は、自動演奏装置により発音される楽音の実際の発音期間とは、以下の理由により通常一致しない。
【０００８】
ピアノの鍵盤操作を用いて説明すると、ノートオンタイミングおよびノートオフタイミングは、それぞれ、鍵盤を押下するタイミングおよび鍵盤を押下していた指を鍵盤から離すタイミングに対応している。通常、ピアノの楽音は鍵盤から指が離された後も残響音部（以下、「リリース部」と呼ぶ）を有している。ピアノ以外の楽器の楽音も同様である。従って、自動演奏装置の多くは、ノートオフタイミングの後も暫くの間、リリース部を発音し続けるように設計されている。そして、リリース部の継続時間は音色、音高、音強等により異なる。
【０００９】
例えば、図１７において、ノートバー１８０１に対応するノートデータのノートオフタイミングは第１小節の３拍目であるが、このノートデータに従い自動演奏装置により発音される楽音は、第１小節の３拍目以降も鳴り続けている可能性がある。
【００１０】
このように、オーサリングツールにおいて表示されるノートオンタイミングおよびノートオフタイミングは、実際に発音される楽音の発音期間を示すものではないため、演奏データの制作者は、演奏データの編集と再生を繰り返すことにより、演奏される発音が意図に反して途切れることがないかを確認する必要があった。例えば、図１７において、ノートバー１８０１とノートバー１８０２の示す期間に重複部分はない。しかしながら、ノートバー１８０１に従って発音される楽音のリリース部の発音が、ノートバー１８０２に従った楽音を発音するために中止されてしまう可能性があるが、制作者はそのことを演奏データの再生以外の方法では確認することができなかった。なお、オーサリングツールの多くは、ピアノロール表示以外にスタッフ表示、リスト表示等の他の形式による演奏データの表示を行うことができるが、いずれの表示形式においても上記の事情は同じであった。
【００１１】
上記の状況に鑑み、本発明は、演奏データの制作者が、演奏データにより意図する自動演奏が行われるか否かを容易に確認可能とする手段を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を達成するために、本発明は、楽曲演奏を構成する個々の楽音に関し、当該楽音の発音開始時期および発音終了時期を指定する発音指示データを含む演奏データを記憶する演奏データ記憶手段と、前記演奏データにおける発音指示データに対応した楽音信号の生成を楽音生成装置に指示した場合に当該楽音生成装置によって生成される楽音信号の生成期間を算出する生成期間算出手段と、前記楽曲演奏を構成する１の楽音に関し、当該楽音に対応した発音指示データによって指定される発音開始時期および発音終了時期を示す第１の表示を行うとともに、前記生成期間算出手段によって算出された当該楽音の生成期間の少なくとも終期を示す第２の表示を行う表示手段とを具備することを特徴とする演奏情報表示装置を提供する。このような構成の演奏情報表示装置によれば、ユーザは、演奏データの内容を確認すると同時に、その演奏データに応じて発音される楽音の実際の発音期間を容易に確認することができる。
【００１３】
なお、本発明に係る演奏情報表示装置の好ましい態様として、前記演奏データは、前記楽曲演奏を構成する個々の楽音に関し、当該楽音の音量の時間的変化を指定する音量指示データをさらに含み、前記生成期間算出手段は、前記楽曲演奏を構成する１の楽音に関し、当該楽音に対応した音量指示データに基づき、当該楽音の生成期間を算出するように構成されていてもよい。このような構成の演奏情報表示装置によれば、ユーザは、演奏データに楽音の音量の時間的変化を指定するデータが含まれている場合であっても、演奏データの内容を確認すると同時に、その演奏データに応じて発音される楽音の実際の発音期間を容易に確認することができる。
【００１４】
また、本発明に係る演奏情報表示装置の好ましい態様として、前記表示手段は、前記楽曲演奏を構成する１の楽音に関し、当該楽音の音量の時間的変化を示すエンベロープを表示することにより前記第２の表示を行うように構成されていてもよい。このような構成の演奏情報表示装置によれば、ユーザは、演奏データに応じて発音される楽音が、それぞれの時点で実際にどの程度の音量で発音されるかを容易に確認することができる。
【００１５】
また、本発明に係る演奏情報表示装置の他の好ましい態様として、前記演奏データに応じた楽音信号の生成において必要となる前記楽音生成装置のリソース量を、前記生成期間算出手段によって算出された前記楽曲演奏を構成する個々の楽音の生成期間に基づき算出する必要リソース量算出手段と、前記必要リソース量算出手段により算出された個々の時期において必要となるリソース量が、前記楽音生成装置が有するリソース量を上回る期間をリソースの不足期間として算出する不足期間算出手段とをさらに具備し、前記表示手段は、前記不足期間算出手段によって算出されたリソースの不足期間を示す表示を行うように構成されていてもよい。このような構成の演奏情報表示装置によれば、ユーザは、演奏データによる発音指示が、楽音生成装置の発音能力を超えている期間を容易に確認することができる。
【００１６】
さらに、本発明は、楽曲演奏を構成する個々の楽音に関し、当該楽音の発音開始時期および発音終了時期を指定する発音指示データを含む演奏データを記憶する演奏データ記憶手順と、前記演奏データにおける発音指示データに対応した楽音信号の生成を楽音生成装置に指示した場合に当該楽音生成装置によって生成される楽音信号の生成期間を算出する生成期間算出手順と、前記楽曲演奏を構成する１の楽音に関し、当該楽音に対応した発音指示データによって指定される発音開始時期および発音終了時期を示す第１の表示を行うとともに、前記生成期間算出手順において算出された当該楽音の生成期間の少なくとも終期を示す第２の表示を行う表示手順とをコンピュータに実行させることを特徴とするプログラムを提供する。このような構成のプログラムによれば、ユーザはコンピュータを用いて、演奏データの内容を確認すると同時に、その演奏データに応じて発音される楽音の実際の発音期間を容易に確認可能とする演奏情報表示装置を実現することができる。
【発明の効果】
【００１７】
本発明に係る演奏情報表示装置およびプログラムによれば、演奏データの制作者は、自動演奏装置が演奏データに従い発音する楽音に関し、その実際の発音期間を容易に確認することができる。従って、自動演奏装置により演奏データの制作者の意図に反した演奏が行われる、という不都合が回避される。
【発明を実施するための最良の形態】
【００１８】
［１．実施形態］
［１．１．構成］
図１は、この発明の一実施形態にかかる演奏情報表示機能を備え、さらに演奏データの編集および再生を行う装置（以下、「オーサリングツール１０」と呼ぶ）を実現するコンピュータ１の構成を示したブロック図である。コンピュータ１は、一般的なコンピュータと同様に、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３、ＨＤ（Ｈａｒｄ  Ｄｉｓｋ）１０４、ディスプレイ１０５、キーボード１０６およびマウス１０７を有している。なお、コンピュータ１は発振器（図略）を有しており、ＣＰＵ１０１、楽音生成部１０８、サウンドシステム１０９等は発振器から共通のクロック信号を取得することにより、基準時点からの経過時間を正確に算出可能であるとともに、構成部間の同期処理を行うことが可能である。
【００１９】
コンピュータ１は、さらに、楽音を示すデジタルオーディオデータを生成するＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）である楽音生成部１０８、Ｄ／Ａ（Ｄｉｇｉｔａｌ  ｔｏ  Ａｎａｌｏｇ）コンバータおよびアンプ等を備え楽音生成部１０８により生成されたデジタルオーディオデータをアナログオーディオ信号に変換して出力するサウンドシステム１０９、サウンドシステム１０９により出力されたアナログオーディオ信号を音として発音するスピーカ１１０、そして各種の外部機器との間でデータの送受信を行うデータ入出力Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１１１を有している。
【００２０】
楽音生成部１０８は、ＣＰＵ１０１の指示に従い、ＨＤ１０４等に記憶されている波形データや音色パラメータデータ等の音色データを用いて各種の楽音を示すデジタルオーディオデータを生成する。楽音生成部１０８は、ＣＰＵ１０１からの指示の内容およびＨＤ１０４等に記憶されている音色データの内容に応じて、ＦＭ（Ｆｒｅｑｕｅｎｃｙ  Ｍｏｄｕｌａｔｉｏｎ）音源方式、ＰＣＭ（Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）音源方式、物理モデル音源方式等の様々な方式によってデジタルオーディオデータの生成を行うことができる。ただし、以下の例においては、楽音生成部１０８がＦＭ音源方式によりデジタルオーディオデータを生成する場合を説明する。また、楽音生成部１０８は同時に最大１６のオペレータを備え、それらのオペレータを２つもしくは４つ組み合わせることにより、１つの楽音を生成する。
【００２１】
データ入出力Ｉ／Ｆ１１１は、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、無線ＬＡＮ等の各種のデータ送受信規格に従ったＩ／Ｆ機能を備えており、図１は、ＭＩＤＩ楽器２０１、携帯電話２０２および楽曲配信サーバ２０３がデータ入出力Ｉ／Ｆ１１１に接続されている様子を例示している。また、コンピュータ１において、サウンドシステム１０９およびスピーカ１１０以外の構成部はバス１１２を介して接続されており、相互にデータの送受信が可能である。
【００２２】
ＣＰＵ１０１は、ＨＤ１０４に記憶された特定のアプリケーションを実行することにより、本実施形態にかかるオーサリングツール１０としての機能を実現する。図２は、オーサリングツール１０の機能構成を示したブロック図である。ただし、オーサリングツール１０が備える演奏データの編集および再生に関する機能構成については、一般的なオーサリングツールの機能と同様であるため、図２においては省略されている。
【００２３】
操作部３０１は、キーボード１０６およびマウス１０７により実現され、ユーザがオーサリングツール１０に対し指示を与える際に用いられる。演奏データ記憶部３０２および音色データ記憶部３０６は、ＲＯＭ１０２もしくはＨＤ１０４により実現され、それぞれ演奏データおよび音色データを記憶する。
【００２４】
演奏データは、各楽音の発音等を指示するノートデータ、各楽器パートの楽音に関し音量等の変更を指示するチャンネルイベントデータ、そして全ての楽音に関し音量等の変更を指示するソングイベントデータから構成されている。なお、一般的に「チャンネル」とは演奏データを複数のグループに区分した各グループを指す言葉であり、必ずしも１つのチャンネルに１つの楽器パートが対応付けられる必要はないが、以下の説明においては、各チャンネルは各楽器パートに１対１で対応付けられているものとする。
【００２５】
図３は、演奏データに含まれるノートデータの例をリスト表示形式で示した図である。リストの各行により示される各ノートデータは、各ノートデータを識別するためのノートデータ番号、楽音が属するチャンネルを示すチャンネル番号、楽音の音高を示す音高指示データ、楽音の発音指示の期間を示す発音指示データおよび楽音の強さ、すなわちベロシティを示すベロシティデータを含んでいる。また、発音指示データは、楽音のノートオンタイミングを示すノートオンタイミングデータと、楽音のノートオフタイミングを示すノートオフタイミングデータから構成されている。
【００２６】
音高指示データは、「Ｃ２」、「Ｄ＃４」、「Ｂ♭３」等のアルファベット、記号および数値の組合せにより表現される。発音指示データは、小節番号、拍番号および拍中のタイミングを示す３つの数値の組合せによりノートオンタイミングおよびノートオフタイミングを示す。例えば、図３に示されるノートデータ番号「１」のノートデータ（以下、「ノートデータ１」のように呼ぶ）のノートオンタイミングデータは「１：１：００１」であり、第１小節の第１拍の先頭から、１単位時間だけ経過後のタイミングを示している。ここで、単位時間とは、１分間を、後述するソングイベントデータにより指定される分解能とテンポを乗じた数で除した時間である。なお、リストにおいて、ノートデータはノートオンタイミングの早い順に並べられている。ベロシティデータは、０〜１２７のいずれかの整数値であり、数値が大きいほど楽音の音強が強いことを示す。ベロシティデータは、楽音の音量を指示する音量指示データの一種であるが、各楽音に対し１つ与えられる。
【００２７】
図４は、演奏データに含まれるチャンネルイベントデータの例をリスト表示形式で示した図である。リストの各行により示されるチャンネルイベントデータは、各チャンネルイベントデータを識別するためのイベント番号、音量等の変更タイミングを示す変更タイミングデータ、変更指示の対象のチャンネルを示すチャンネル番号、変更指示の内容を示すタイプデータ、変更後の音量等の値を示すバリューデータおよびバリューデータにより示される内容をテキストで示す備考データを含んでいる。変更タイミングデータの形式は、上記のノートオンタイミングデータの形式と同様である。
【００２８】
本実施形態において、タイプデータとしては、「チャンネルボリューム」、「エクスプレッション」および「音色」の３種類が用いられる。「チャンネルボリューム」および「エクスプレッション」は、そのチャンネルイベントデータが、チャンネル単位の音量変更指示を行うデータであることを示す。タイプデータが「チャンネルボリューム」もしくは「エクスプレッション」であるチャンネルイベントデータは、ともにチャンネル単位で楽音の音量を指示する音量指示データの一種であるが、「エクスプレッション」は、主として抑揚等の部分的な音楽表現に用いられる点で、「チャンネルボリューム」とは異なる。タイプデータが「チャンネルボリューム」もしくは「エクスプレッション」である場合のバリューデータは、変更後の音量を示す０〜１２７のいずれかの整数値であり、数値が大きいほど楽音の音量が大きいことを示す。また、タイプデータが「音色」であるチャンネルイベントデータは、音色の指定および変更を指示する音色指示データであり、そのバリューデータは、各音色に対応する１〜１２８のいずれかの整数値である。その場合、備考データには、バリューデータに対応する音色の名称が示される。なお、リストにおいて、チャンネルイベントデータは変更タイミングの早い順に並べられている。
【００２９】
図５は、演奏データに含まれるソングイベントデータの例をリスト表示形式で示した図である。リストの各行により示されるソングイベントデータは、各ソングイベントデータを識別するためのイベント番号、音量等の変更タイミングを示す変更タイミングデータ、変更指示の内容を示すタイプデータおよび変更後の音量等の値を示すバリューデータを含んでいる。変更タイミングデータの形式は、上記のノートオンタイミングデータの形式と同様である。本実施形態において、ソングイベントデータのタイプデータとしては、「拍子」、「分解能」、「テンポ」および「マスターボリューム」の４種類が用いられる。「拍子」は、そのソングイベントデータが楽曲の拍子の指定および変更を指示するデータであることを示す。「分解能」は、そのソングイベントデータが、１拍に含まれる単位時間の数の指定および変更を指示するデータであることを示す。「テンポ」は、そのソングイベントデータが、楽曲のテンポを１分間に含まれる拍数により指定し、もしくは変更を指示するデータであることを示す。
【００３０】
タイプデータが「拍子」、「分解能」もしくは「テンポ」であるソングイベントデータは、それぞれ、楽曲における各種タイミングの決定に用いられるデータであり、以下、「タイミング基本データ」と呼ぶ。「マスターボリューム」は、そのソングイベントデータが、楽曲全体の音量の指定および変更を指示するデータであることを示す。タイプデータが「マスターボリューム」であるソングイベントデータは音量指示データの一種であり、そのバリューデータは、ベロシティデータと同様に音量を示す０〜１２７のいずれかの整数値である。
【００３１】
図６は、音色データ記憶部３０６が記憶する音色データの例を示した図である。リストの各行により示される音色データは、各音色データを識別するための音色番号、各オペレータ間の信号の入出力関係、すなわちアルゴリズムを示すアルゴリズムデータ、アルゴリズムデータにより示されるアルゴリズムの実行に必要なオペレータ数、そして各オペレータに関し、その出力レベルの時間的変化を特定するためのパラメータ群である出力レベルパラメータ群を含んでいる。
【００３２】
音色番号は、タイプデータが「音色」であるチャンネルイベントデータのバリューデータと１対１で対応しており、例えば音色番号「７４」の音色データ（以下、「音色データ７４」のように呼ぶ）はフルートの音色を示す。アルゴリズムデータにおいて示される各ボックスはオペレータを示す。例えば、音色データ１におけるアルゴリズムにおいて、オペレータ２はキャリア、オペレータ１はオペレータ２に対し変調をかけるモジュレータを示している。なお、アルゴリズムデータにより示されるアルゴリズムの内容は、一般的なＦＭ音源におけるものと同様であるので、その説明を省略する。
【００３３】
オペレータ数は、２または４のいずれかである。音色データは、オペレータ数が２の場合はオペレータ１および２のそれぞれに関し、またオペレータ数が４の場合はオペレータ１〜４のそれぞれに関し、出力レベルパラメータ群を有している。出力レベルパラメータ群は、出力レベルの時間的変化を示すエンベロープ（以下、「ＡＤＳＲエンベロープ」と呼ぶ）の基本形状を決定するためのパラメータ群と、音高に応じてＡＤＳＲエンベロープの基本形状に対し修正を加えるためのパラメータ群を含んでいる。
【００３４】
出力レベルパラメータ群に含まれるトータルレベルＴＬ、サスティーンレベルＳＬ、アタックレートＡＲ、ディケイレートＤＲ、サスティーンレートＳＲおよびリリースレートＲＲは、ＡＤＳＲエンベロープの基本形状を決定するためのパラメータである。図７は、それぞれのパラメータにより決定されるＡＤＳＲエンベロープの基本形状を示した図であり、横軸が時間、縦軸が出力レベルを示している。トータルレベルＴＬおよびサスティーンレベルＳＬは、出力レベルを示し、アタックレートＡＲ、ディケイレートＤＲ、サスティーンレートＳＲおよびリリースレートＲＲは、出力レベルの時間的変化率の絶対値（以下、「レート」と呼ぶ）を示している。なお、図６においては、トータルレベルＴＬは０〜６３、サスティーンレベルＳＬ、アタックレートＡＲ、ディケイレートＤＲ、サスティーンレートＳＲおよびリリースレートＲＲは０〜１５のいずれかの整数値である場合のデータ例が示されており、それらの数値は大きいほどレベルもしくはレートが大きいことを示す。
【００３５】
出力レベルパラメータ群に含まれるレベルキースケールＫＳＬおよびレートキースケールＫＳＲは、音高に応じてＡＤＳＲエンベロープの基本形状に修正を加えるためのパラメータである。通常、楽器が発する楽音は、音高が高くなるに従い、発音される音のレベルが低くなり、またレベルの時間的変化が速くなる。レベルキースケールＫＳＬは、音高の変化に伴いＡＤＳＲエンベロープのレベルを変化させる場合の変化の程度を指定するパラメータであり、０〜３のいずれかの整数値である。図８は、レベルキースケールＫＳＬの値のそれぞれに応じて、音高とレベルの減衰量（ｄＢ）との関係が変化する様子を模式的に例示したグラフであり、横軸が音高、縦軸が減衰量を示している。同様に、レートキースケールＫＳＬは、音高の変化に伴いＡＤＳＲエンベロープのレートを変化させる場合の変化の程度を指定するパラメータであり、０〜３のいずれかの整数値である。図９は、レートキースケールＫＳＲの値のそれぞれに応じて、音高とレートの増加率との関係が変化する様子を模式的に例示したグラフであり、横軸が音高、縦軸が増加率を示している。
【００３６】
なお、各オペレータに関するパラメータは上記の出力レベルパラメータ群に限られず、例えばビブラート等の音響効果の付加に関するパラメータを含むようにしてもよい。また、以下の説明において、各オペレータが出力する信号の波形は全て正弦波であり、またフィードバック変調度は例えばπ／４で固定されているものとするため、音色データは波形およびフィードバック変調度に関するパラメータを含まないが、これらのパラメータを音色データに含ませるようにしてもよい。
【００３７】
図２に戻り、オーサリングツール１０の構成部の説明を続ける。演奏データ処理部３０３および音色データ処理部３０７は、ＣＰＵ１０１およびＣＰＵ１０１のワークエリアとして用いられるＲＡＭ１０３により実現され、それぞれ演奏データおよび音色データを演奏データ記憶部３０２および音色データ記憶部３０６から読み出し、必要な加工を施して出力する。
【００３８】
生成期間算出部３０８は、ＣＰＵ１０１、楽音生成部１０８およびそれらのワークエリアとして用いられるＲＡＭ１０３により実現され、楽音生成部１０８が演奏データに応じて楽音を示すデジタルオーディオデータを生成する場合の、デジタルオーディオデータの生成期間、すなわち楽音が実際に発音される期間を示す生成期間データを、演奏データおよび音色データに基づき生成する。必要リソース量算出部３０９は、ＣＰＵ１０１およびＣＰＵ１０１のワークエリアとして用いられるＲＡＭ１０３により実現され、音色データおよび生成期間データを用いて、楽音の発音に要するリソース量を算出する。不足期間算出部３１０もまた、ＣＰＵ１０１およびＣＰＵ１０１のワークエリアとして用いられるＲＡＭ１０３により実現され、楽音の発音に要するリソース量と楽音生成部１０８のリソース量を比較し、発音されるべき楽音がリソース不足のために発音されない期間を算出し、その結果を不足期間データおよび短縮期間データとして生成する。
【００３９】
表示処理部３０４は、ＣＰＵ１０１およびＣＰＵ１０１のワークエリアとして用いられるＲＡＭ１０３により実現され、生成期間データ、不足期間データおよび短縮期間データの内容を、演奏データの内容とともに表示するための画像データを生成する。表示部３０５は、ディスプレイ１０５により実現され、表示処理部３０４により生成された画像データに基づき、画面の表示を行う。
【００４０】
上述したオーサリングツール１０の備える各構成部の機能および各データの利用方法の詳細については、説明の重複を避けるため以下の動作説明において併せて説明する。なお、本実施形態においては、上述したように、オーサリングツール１０はコンピュータ１がアプリケーションを実行することにより実現されるものとするが、図２に示した各構成部の機能をそれぞれ実行可能なプロセッサ等の組合せにより構成された専用のハードウェアとして実現されてもよい。
【００４１】
［１．２．動作］
図１０は、オーサリングツール１０の表示部３０５に、図３、図４および図５に例示した演奏データをピアノロール表示させた場合の画面を例示した図である。ただし、図１０においては、演奏データのうち音高指示データおよび発音指示データに関する情報のみが表示されている。また、図１０において各ノートバーの上に示される数字は、各ノートバーに対応するノートデータのノートデータ番号を示しており、実際の画面には表示されなくてもよい。また、図１０においてチャンネル１のノートデータを示すノートバーは黒、チャンネル２のノートデータを示すノートバーは白で表示されている。ユーザは、画面下部の「ファイル名」欄に演奏データのファイル名を入力し、「開く」ボタンをクリックすることにより、希望する演奏データの内容をピアノロール表示させることができる。また、ユーザは、「スタッフ表示」ボタンをクリックすることにより、同じ演奏データの内容をスタッフ表示形式（楽譜表示形式）で表示させることもできる。
【００４２】
演奏データ処理部３０３および表示処理部３０４は、演奏データが表示部３０５により表示されている場合、ノートバーもしくは音符の表示位置とノートデータの対応関係、コマンドボタンの表示位置とその機能の対応関係等を示すデータを一時的に記憶しており、例えばユーザにより特定のノートバーやコマンドボタンがクリックされると、その位置を示す位置データに基づき、ユーザにより指定されたノートデータや機能を特定することができる。これらのオーサリングツール１０による演奏データの表示等の動作は従来技術によるものと同様であるので、その説明を省略する。
【００４３】
オーサリングツール１０は、従来技術によるオーサリングツールと異なり、ユーザにより指定されたノートデータに関し、楽音生成部１０８がそのノートデータに従った楽音を発音する際の実際の発音期間を示す表示を行う機能（以下、「発音期間表示機能」と呼ぶ）を有している。以下、オーサリングツール１０により発音期間表示機能が提供される際の動作を、図２を参照しつつ説明する。
【００４４】
例えば、ユーザが図１０に示されるノートバー１１０１に対応する楽音の実際の発音期間を知りたいとする。その場合、ユーザはノートバー１１０１を右クリックする。そのユーザの操作に応じて、操作部３０１は右クリックされたノートバー１１０１の位置を示す位置データを演奏データ処理部３０３および表示処理部３０４に送る（ステップＳ１０１およびＳ１０２）。表示処理部３０４は受け取った位置データに基づき、表示部３０５に、ノートバー１１０１の近傍に「エンベロープ表示」および「リリースバー表示」の選択肢を含むポップアップメニューを表示するように指示する（ステップＳ１０３）。
【００４５】
ここで、エンベロープ表示とは、図１１の上段のように、楽音の波形のエンベロープを表示する態様である。一方、リリースバー表示とは、図１１の下段のように、楽音のリリース部の継続期間を示す線（以下、「リリースバー」と呼ぶ）を表示する態様である。
【００４６】
表示部３０５は、表示処理部３０４の指示に従い、図１０に示されるポップアップメニューを表示する。ユーザがポップアップメニューに対し、「エンベロープ表示」もしくは「リリースバー表示」を選択する操作を行うと、操作部３０１は選択された選択肢の位置を示す位置データを表示処理部３０４に送る（ステップＳ１０４）。表示処理部３０４は、受け取った位置データに基づき、ユーザにより「エンベロープ表示」および「リリースバー表示」のいずれが選択されたかを特定し、ユーザによる選択結果を示す選択結果データを一時的に記憶する。
【００４７】
一方、ステップＳ１０１においてノートバー１１０１の位置を示す位置データを受け取った演奏データ処理部３０３は、受け取った位置データに基づき、ノートデータ１８が選択されたことを特定する。演奏データ処理部３０３は、演奏データ記憶部３０２から演奏データを読み出し（ステップＳ１０５）、まず、ノートデータ１８（図３参照）に含まれる以下のデータを特定する。
＜音高指示データ：「Ｂ３」＞
＜発音指示データ：ノートオンタイミング「２：２：００６」＞
＜発音指示データ：ノートオフタイミング「２：２：４７７」＞
【００４８】
続いて、演奏データ処理部３０３は、ノートデータ１８に含まれるチャンネル番号「２」およびノートオンタイミング「２：２：００６」に基づき、ノートデータ１８に対応する音色指示データを特定する。すなわち、演奏データ処理部３０３は、チャンネルイベントデータ（図４参照）のうち、チャンネル番号が「２」であり、タイプデータが「音色」であり、変更タイミングデータにより示されるタイミングが「２：２：００６」以前かつ最も遅いものを検索する。その結果、演奏データ処理部３０３は以下のデータを特定する。
＜音色指示データ：「２」＞
【００４９】
さらに、演奏データ処理部３０３は、ノートデータ１８に含まれるノートオンタイミングデータ「２：２：００６」およびノートオフタイミングデータ「２：２：４７７」に基づき、ソングイベントデータ（図５参照）のうち、タイプデータが「拍子」、「分解能」もしくは「テンポ」であるもの、すなわちタイミング基本データに関し、変更タイミングデータにより示されるタイミングが「２：２：００６」以前かつ最も遅いもの（初期値）および「２：２：００６」と「２：２：４７７」の間に含まれるものを検索する。その結果、演奏データ処理部３０３はノートデータ１８に対応するタイミング基本データとして、以下のデータを特定する。
＜タイミング基本データ：拍子「４／４」（初期値）＞
＜タイミング基本データ：分解能「４８０」（初期値）＞
＜タイミング基本データ：テンポ「８０」（初期値）＞
【００５０】
演奏データ処理部３０３は、上記のように音高指示データ、発音指示データ、音色指示データおよびタイミング基本データを特定すると、特定したデータを、ノートバー１１０１に対応するノートデータを識別するノートデータ番号「１８」とともに、音色データ処理部３０７に送る（ステップＳ１０６）。
【００５１】
音色データ処理部３０７は、音高指示データ等を受け取ると、受け取った音色指示データ「２」に基づき、音色データ記憶部３０６から音色データ２（図６参照）を読み出す（ステップＳ１０７）。続いて、音色データ処理部３０７は、音色データ２により示される各オペレータに関し、レベルキースケールＫＳＬの値に応じた音高とレベルの減衰量との関係（図８参照）に基づき、受け取った音高指示データ「Ｂ３」に対応する出力レベルの減衰量を特定する。音色データ処理部３０７は、特定した出力レベルの減衰量を示すデータ（以下、「減衰量データ」と呼ぶ）を一時的に記憶する。
【００５２】
同様に、音色データ処理部３０７は、音色データ２により示される各オペレータに関し、レートキースケールＫＳＲの値に応じた音高とＡＤＳＲエンベロープのレートの増加率との関係（図９参照）に基づき、受け取った音高指示データ「Ｂ３」に対応するレートの増加率を特定する。音色データ処理部３０７は、特定したレートの増加率を示すデータ（以下、「増加率データ」と呼ぶ）を一時的に記憶する。
【００５３】
音色データ処理部３０７は、以上の処理を完了すると、音色データ２に含まれるアルゴリズムデータ、各オペレータに関する出力レベルパラメータ群（レベルキースケールＫＳＬおよびレートキースケールＫＳＲを除く）、そして一時的に記憶した減衰量データおよび増加率データを、先に受け取ったノートデータ番号、音高指示データ、発音指示データおよびタイミング基本データとともに、生成期間算出部３０８に送る（ステップＳ１０８）。なお、音高指示データ、発音指示データおよびタイミング基本データは、ステップＳ１０８において音色データ処理部３０７から生成期間算出部３０８に送られる代わりに、ステップＳ１０６と同時に、演奏データ処理部３０３から生成期間算出部３０８に送られるようにしてもよい。
【００５４】
生成期間算出部３０８は、アルゴリズムデータ、出力レベルパラメータ群等のデータを受け取ると、受け取ったデータに基づき、楽音を示す波形データを生成する。生成期間算出部３０８はまず、アルゴリズムデータにより示される各オペレータに関し、トータルレベルＴＬおよびサスティーンレベルＳＬにより示される出力レベルから、減衰量データにより示される減衰量を減じたレベルを算出する。続いて、生成期間算出部３０８は、アタックレートＡＲ、ディケイレートＤＲ、サスティーンレートＳＲおよびリリースレートＲＲにより示されるレートを、増加率データにより示される増加率分だけ増加させる。
【００５５】
生成期間算出部３０８は、発音指示データにより示されるノートオンタイミングとノートオフタイミングを基準タイミングとして、上記のように減衰量データおよび増加率データにより修正を加えた出力レベルパラメータ群に基づき、ＡＤＳＲエンベロープを生成する。その際、生成期間算出部３０８は、先に受け取ったタイミング基本データを用いて、ノートオンタイミングとノートオフタイミングを特定する。生成期間算出部３０８は生成したＡＤＳＲエンベロープに従い、アルゴリズムデータにより示される各オペレータの出力レベルを時間的に変化させることにより、キャリアが生成する正弦波に音量および音色の時間的変化を加えた波形データを出力する。その際、各オペレータにより生成される正弦波の周波数は、音高指示データにより示される音高により決定される。以上のようにしてＡＤＳＲエンベロープに基づき生成された波形データを、以下「標準波形データ」と呼ぶ。
【００５６】
続いて、生成期間算出部３０８は、生成した標準波形データのエンベロープ（以下、「標準波形エンベロープ」と呼ぶ）を生成する。すなわち、生成期間算出部３０８は標準波形データに対しローパスフィルタ処理等を行うことにより、標準波形データの振幅の包絡線を標準波形エンベロープとして算出する。なお、ＦＭ音源方式の場合、標準波形データのエンベロープはキャリアのＡＤＳＲエンベロープとほぼ一致するので、標準波形データを生成することなく、キャリアのＡＤＳＲエンベロープをそのまま標準波形エンベロープとして用いるようにしてもよい。
【００５７】
上記のように生成された標準波形エンベロープにより示される楽音の発音期間の終期は、キャリアのリリースレートＲＲが無限大でない限り、リリース部の長さだけ、ノートオフタイミングよりも遅くなる。以下、標準波形エンベロープにより示される発音期間の終期、すなわちリリース部の終期を「サウンドオフタイミング」と呼び、サウンドオフタイミングを示すデータを「サウンドオフタイミングデータ」と呼ぶ。以下、例として、ノートデータ１８に対応するサウンドオフタイミングデータを「２：３：１８７」とする。
【００５８】
生成期間算出部３０８は、標準波形エンベロープを生成すると、生成した標準波形エンベロープのノートオンタイミングデータ、サウンドオフタイミングデータおよびノートデータ番号を演奏データ処理部３０３に送る（ステップＳ１０９）。演奏データ処理部３０３は、ノートオンタイミングデータ等のデータを受け取ると、受け取ったノートデータ番号に基づき、ノートデータ１８（図３参照）に含まれるベロシティデータを、音量指示データとして以下のように特定する。
＜音量指示データ：ベロシティ「５８」＞
【００５９】
また、演奏データ処理部３０３は、チャンネルイベントデータ（図４参照）のうち、チャンネル番号が「２」であり、タイプデータが「チャンネルボリューム」であり、変更タイミングデータにより示されるタイミングがノートオンタイミング「２：２：００６」以前かつ最も遅いものを、ノートデータ１８に対応するチャンネルボリュームの初期値を示すデータとして特定する。なお、この場合、特定されるチャンネルイベントデータは、イベント番号「１７」のチャンネルイベントデータ（以下、「チャンネルイベントデータ１７」のように呼ぶ）である。
＜音量指示データ：チャンネルボリューム「１０５」（初期値）＞
【００６０】
また、演奏データ処理部３０３は、チャンネルイベントデータのうち、チャンネル番号が「２」であり、タイプデータが「チャンネルボリューム」であり、変更タイミングデータにより示されるタイミングがノートオンタイミング「２：２：００６」とサウンドオフタイミング「２：３：１８７」の間に含まれるものを検索する。その結果、演奏データ処理部３０３はノートデータ１８に対応するチャンネルボリュームの変更を示すデータとして、以下のデータを特定する。なお、この場合、特定されるチャンネルイベントデータはチャンネルイベントデータ２０である。
＜音量指示データ：チェンネルボリューム「７８」（変更タイミング「２：２：２４０」）＞
【００６１】
続いて、演奏データ処理部３０３は、タイプデータが「エクスプレッション」であるチャンネルイベントデータに関しても、タイプデータが「チャンネルボリューム」であるチャンネルイベントデータと同様の処理を行い、ノートデータ１８に対応するエクスプレッションの初期値および変更を示すデータとして、以下のデータを特定する。なお、この場合、チャンネルイベントデータ１２および２２が特定される。
＜音量指示データ：エクスプレッション「８３」（初期値）＞
＜音量指示データ：エクスプレッション「１１５」（変更タイミング「２：２：３８５」）＞
【００６２】
さらに、演奏データ処理部３０３は、ソングイベントデータ（図５参照）のうち、タイプデータが「マスターボリューム」であるものに関して、上記の「チャンネルボリューム」および「エクスプレッション」に関するチャンネルイベントデータと同様の処理を行い、ノートデータ１８に対応するマスターボリュームの初期値および変更を示すデータとして、以下のデータを特定する。なお、この場合、特定されるソングイベントデータは、イベント番号「６」および「７」のソングイベントデータである。
＜音量指示データ：マスターボリューム「９０」（初期値）＞
＜音量指示データ：マスターボリューム「９８」（変更タイミング「２：２：３１５」）＞
【００６３】
演奏データ処理部３０３は、上記のように各種の音量指示データを特定すると、特定した音量指示データをノートデータ番号とともに生成期間算出部３０８に送る（ステップＳ１１０）。生成期間算出部３０８は、各種の音量指示データを受け取ると、先に生成した標準波形エンベロープに対し、音量指示データに従った音量調整を施す。以下、音量指示データによる音量調整の施された波形エンベロープを「調整後波形エンベロープ」と呼ぶ。式１は、生成期間算出部３０８が任意の時点Ｐにおける標準波形エンベロープの値から、時点Ｐにおける調整後波形エンベロープの値を算出するための算出式の一例を示したものである。なお、式１は例示であり、他の様々な算出式が利用可能である。
式１・・・（時点Ｐにおける調整後波形エンベロープの値）＝（時点Ｐにおける標準波形エンベロープの値）×（ベロシティ／１２７）×（チェンネルボリューム／１２７）×（エクスプレッション／１２７）×（マスターボリューム／１２７）。
【００６４】
図１２は、式１により調整後波形エンベロープが生成される場合における、各種音量指示データ、標準波形エンベロープの値に乗算される比率（以下、「減衰率」と呼ぶ）、標準波形エンベロープおよび調整後波形エンベロープの関係を模式的に示した図である。すなわち、生成期間算出部３０８は、標準波形エンベロープの各時点における値に対し、各時点における減衰率を乗ずることにより、音量調整の施された楽音の波形エンベロープを示す調整後波形エンベロープを生成する。なお、生成期間算出部３０８は、上記のように標準波形エンベロープから調整後波形エンベロープを生成する代わりに、標準波形データに対し音量指示データに基づく音量調整を施し、音量調整後の波形データのエンベロープを調整後波形エンベロープとして生成するようにしてもよい。
【００６５】
生成期間算出部３０８は、上記のように調整後波形エンベロープを生成すると、生成した調整後波形エンベロープを、ノートデータ番号およびノートオンタイミングデータとともに表示処理部３０４に送る（ステップＳ１１１）。表示処理部３０４に送られる調整後波形エンベロープおよびノートオンタイミングデータは、楽音が実際に発音される期間、すなわち楽音生成部１０８により発音を示すデジタルオーディオデータの生成開始時期および生成終了時期を示す生成期間データとしての役割を果たす。表示処理部３０４は、受け取った調整後波形エンベロープおよびノートオンタイミングデータに基づき、エンベロープもしくはリリースバーを表示する時間軸方向の位置および長さを決定する。また、表示処理部３０４は、受け取ったノートデータ番号に基づき、エンベロープもしくはリリースバーを表示する音高軸方向の位置を決定する。
【００６６】
表示処理部３０４は、上記のように表示位置および長さの決定を行うと、表示部３０５に対し、先に一時的に記憶しておいた選択結果データが「エンベロープ表示」である場合には調整後波形エンベロープを、また選択結果データが「リリースバー表示」である場合にはリリースバーを、決定した表示位置に決定した長さで表示させる（ステップＳ１１２）。その結果、図１０に示されるノートバー１１０１に対し、図１１に示されるエンベロープ１１０２ａもしくはリリースバー１１０２ｂが付加表示される。
【００６７】
以上のように、オーサリングツール１０によりエンベロープもしくはリリースバーが表示される結果、ユーザは、ノートバー１１０１により示されるノートデータに従い自動演奏が行われた際の、実際の楽音の発音期間を容易に確認することができる。また、オーサリングツール１０によりエンベロープが表示された場合、ユーザは楽音の発音期間に加え、楽音の音量の時間的変化を確認することもできる。
【００６８】
さらに、ユーザは図１０に示されるオーサリングツール１０の画面において、スタッフ表示形式により演奏データの内容が表示されている場合においても、実際の楽音の発音期間に関する情報を表示させることができる。図１３は、オーサリングツール１０により、あるノートデータを示す音符１４０１に対し、調整後波形エンベロープを示すエンベロープ１４０２ａおよび調整後波形エンベロープのリリース部の期間を示すリリースバー１４０２ｂが表示される場合の表示態様を示した図である。なお、表示形式はピアノロール表示およびスタッフ表示に限られず、エンベロープやリリースバーを表示可能な時間軸を有する表示形式であれば、いずれの表示形式であってもよい。また、リリースバーの代わりに、サウンドオフタイミングを示すマークを示す等、他の形式により発音期間に関する情報を示すようにしてもよい。
【００６９】
また、上述した実施形態は、ＦＭ音源方式により生成される波形データを例として説明したが、オーサリングツール１０は、各音源方式に応じて生成される波形データを上記の標準波形データとして用いることにより、いずれの音源方式の自動演奏装置により用いられる演奏データについても、同様にエンベロープ、リリースバー等の表示を行うことができる。
【００７０】
以上のように、本実施形態によれば、ユーザは上記のように各ノートデータにより発音される楽音の実際の発音期間を表示させることができるので、演奏データの再生時に発音される楽音の各時点における同時発音数を容易に知ることができる。従って、ユーザは自動演奏装置のリソース不足により楽音の発音が途中で強制的に中止されてしまう現象（以下、「音切れ」と呼ぶ）を予測することができ、意図せぬ演奏が行われることを防止することができる。そして、オーサリングツール１０は、ユーザによる音切れの発見をより容易にするため、以下に説明する音切れチェック機能をさらに備えている。
【００７１】
ユーザは、音切れの有無を確認したいと思う場合、図１０に示される画面において、「音切れチェック」ボタンをクリックする。そのユーザの操作に応じて、操作部３０１は「音切れチェック」ボタンの位置を示す位置データを演奏データ処理部３０３および表示処理部３０４に送る（ステップＳ２０１およびＳ２０２）。演奏データ処理部３０３および表示処理部３０４は受け取った位置データに基づき、音切れチェック機能の実行が指示されたことを特定する。
【００７２】
演奏データ処理部３０３は、音切れチェック機能の実行が指示されたことを特定すると、上述したステップＳ１０５以降の一連の処理を、演奏データに含まれる全てのノートデータに関し行う（ステップＳ１０５、Ｓ１０６およびＳ１１０）。演奏データ処理部３０３の処理に応じて、音色データ処理部３０７および生成期間算出部３０８もまた、上述した一連の処理を全てのノートデータに関して行う（ステップＳ１０７、Ｓ１０８、Ｓ１０９およびＳ１１１）。その結果、表示処理部３０４は、生成期間算出部３０８から、演奏データに含まれる全てのノートデータの各々に関し、調整後波形エンベロープおよびノートオンタイミングデータをノートデータ番号とともに受け取る。
【００７３】
音色データ処理部３０７は、上述したステップＳ１０７およびＳ１０８の処理に加え、各ノートデータの音色指示データに対応する音色データ（図６参照）に含まれるオペレータ数を、各ノートデータのノートデータ番号とともに必要リソース量算出部３０９に送る（ステップＳ２０３）。また、生成期間算出部３０８は、上述したステップＳ１０９およびＳ１１１の処理に加え、ステップＳ１１１において表示処理部３０４に送ったデータと同様のデータ、すなわち調整後波形エンベロープおよびノートオンタイミングデータを、各ノートデータのノートデータ番号とともに必要リソース量算出部３０９に送る（ステップＳ２０４）。
【００７４】
必要リソース量算出部３０９は、受け取った調整後波形エンベロープおよびノートオンタイミングデータに基づき、各ノートデータに関するサウンドオフタイミングを算出し、その結果をサウンドオフタイミングデータとして生成する。続いて、必要リソース量算出部３０９は、ノートデータ番号、ノートオンタイミングデータ、サウンドオフタイミングデータおよびオペレータ数を用いて、オペレータの不足による音切れの発生を検出するためのデータリスト（以下、「音切れ検出用データリスト」と呼ぶ）を生成する。図１４は、必要リソース量算出部３０９により生成される音切れ検出用データリストを例示した図である。音切れ検出用データリストにおいて、各行のデータは、データを識別するための行番号、ノートデータ番号、ノートオンタイミングかサウンドオフタイミングかの区別を示すノートオン／サウンドオフ、新たに使用もしくは解放されるオペレータの数を示すオペレータ数、ノートオンタイミングもしくはサウンドオフタイミングを示すタイミングデータ、タイミングデータにより示されるタイミングにおいて発音が指示されているノートデータの番号を示す発音ノート番号、そして発音ノート番号により示されるノートデータにより発音を行う際に必要なオペレータの総数を示す総オペレータ数を含んでいる。なお、音切れ検出用データリストにおいて、各行のデータはタイミングの早い順に並んでいる。また、オペレータ数において、括弧が付されていないものは新たに使用されるオペレータ数を、また括弧が付されているものは新たに解放されるオペレータ数を示している。
【００７５】
必要リソース量算出部３０９は、音色データ処理部３０７および生成期間算出部３０８から受け取ったデータを整理することにより、音切れ検出用データリストにおけるノートデータ番号、ノートオン／サウンドオフ、オペレータ数およびタイミングデータの各項目のデータを生成する。続いて、必要リソース量算出部３０９は、ノートオン／サウンドオフが「ノートオン」であるデータ行に関しては、そのデータ行のノートデータ番号を１つ上のデータ行の発音ノート番号に加え、ノートオン／サウンドオフが「サウンドオフ」であるデータ行に関しては、そのデータ行のノートデータ番号を１つ上のデータ行の発音ノート番号から削除することにより、発音ノート番号のデータを生成する。また、必要リソース量算出部３０９は、オペレータ数に括弧が付されていないデータ行に関しては、そのデータ行のオペレータ数を１つ上のデータ行の総オペレータ数に加算し、オペレータ数に括弧が付されているデータ行に関しては、そのデータ行のオペレータ数を１つ上のデータ行の総オペレータ数から減算することにより、総オペレータ数のデータを生成する。必要リソース量算出部３０９は、上記のように生成したデータを含む音切れ検出用データリストを不足期間算出部３１０に送る（ステップＳ２０５）。
【００７６】
不足期間算出部３１０は、受け取った音切れ検出用データリストをオリジナルの音切れ検出用データリストとして一時的に記憶する。続いて、不足期間算出部３１０は音切れ検出用データリストに含まれる総オペレータ数が、利用可能なオペレータの数、すなわち、楽音生成部１０８において利用可能なオペレータの数である１６を超えていないかを、行番号１のデータ行（以下、「データ１」のように呼ぶ）から下方向に順次、各データ行に関し判定する。図１４のデータ例の場合、不足期間算出部３１０は、まず、データ１３の総オペレータ数が１６を超えていると判定する。その場合、不足期間算出部３１０は、データ１３に含まれる発音ノート番号の最初に示されるノート番号「５」を特定する。このノート番号「５」は、オペレータ不足のためにノートデータ５により発音されている楽音の発音が中止されることを示している。従って、不足期間算出部３１０は、データ１３から下方向に各データ行を参照しながら、ノートデータ番号が「５」であり、ノートオン／サウンドオフが「サウンドオフ」であるデータ行を検索する。この場合、データ１４が検索される。不足期間算出部３１０は、データ１４に含まれるタイミングデータを、データ１３のタイミングデータの内容で変更した更新版の音切れ検出用データリストを作成する。
【００７７】
不足期間算出部３１０は、更新版の音切れ検出用データリストを必要リソース量算出部３０９に送る（ステップＳ２０６）。必要リソース量算出部３０９は、更新版の音切れ検出用データリストに含まれるデータについてタイミングによるソートを行った後、上述した発音ノート番号および総オペレータ数のデータ生成を再実行し、その結果を反映した更新版の音切れ検出用データリストを不足期間算出部３１０に送る（ステップＳ２０５）。必要リソース量算出部３０９および不足期間算出部３１０は、更新版の音切れ検出用データリストに含まれるいずれのデータ行に関しても、総オペレータ数が１６以下となるまで、音切れ検出用データリストの受け渡し（ステップＳ２０５および２０６）およびデータの変更処理を繰り返す。図１５は、必要リソース量算出部３０９および不足期間算出部３１０がデータの変更処理を終えた際の更新版の音切れ検出用データリストを例示した図である。図１４に示したオリジナルの音切れ検出用データリストと比較し、図１５に示した更新版の音切れ検出用データリストにおいては、データ１４およびデータ３９のタイミングデータがそれぞれ変更され、総オペレータ数がいずれのデータ行に関しても１６以下となっている。
【００７８】
続いて、不足期間算出部３１０は、オリジナルの音切れ検出用データリストにおいて総オペレータ数が１６を超えているデータ行を検索し、検索したデータ行およびそれに続くデータ行のタイミングデータに基づき、オペレータが不足する期間を示す不足期間データを、以下のように生成する。
＜不足期間データ：「１：２：２４７」〜「１：２：４３２」＞
＜不足期間データ：「２：２：２５１」〜「２：３：１５２」＞
【００７９】
さらに、不足期間算出部３１０は、更新版の音切れ検出用データリストをオリジナルの音切れ検出用データリストと比較することにより、発音期間が短縮されたノートデータ番号および短縮された発音期間を示す短縮期間データを、以下のように生成する。
＜短縮期間データ：「５」，「１：２：４３２」→「１：２：２４７」＞
＜短縮期間データ：「１７」，「２：３：１６８」→「２：２：２５１」＞
【００８０】
不足期間算出部３１０は、上記のようにして生成した不足期間データおよび短縮期間データを表示処理部３０４に送る（ステップＳ２０７）。なお、必要リソース量算出部３０９および不足期間算出部３１０は、上記以外の方法、例えば各オペレータに対応するフラグをノートオンタイミングおよびサウンドオフタイミングに応じて上げ下げし、上がっているフラグの数をカウントする方法等により、不足期間データおよび短縮期間データを生成するようにしてもよい。
【００８１】
表示処理部３０４は、不足期間算出部３１０から不足期間データおよび短縮期間データを受け取ると、ステップＳ１１１において生成期間算出部３０８から受け取った各ノートデータに関する調整後波形エンベロープおよびノートオンタイミングデータと、必要リソース量算出部３０９から受け取った不足期間データおよび短縮期間データに基づき、表示部３０５に対し、各ノートデータに対応するノートバーに発音期間を示す線（以下、「発音期間バー」と呼ぶ）を付加するとともに、オペレータの不足期間を示す範囲の背景色を変更するように指示する（ステップＳ２０８）。その際、表示処理部３０４は、発音期間が短縮されたノートデータに関する発音期間バーについては、短縮期間に対応する部分を太く表示するように指示する。その結果、表示部３０５は、図１０に示した画面の表示を図１６に示す画面に変更する。
【００８２】
図１６に示されるように、オーサリングツール１０は、オペレータが不足する期間、そしてオペレータの不足により発音期間が短縮された部分を表示するため、ユーザは容易に音切れの発生を予測することができ、また音切れによる問題を解決するための対応策を発見することができる。なお、図１６に示したオペレータの不足期間および発音の短縮期間の表示態様は例示であって、他の様々な表示態様が可能であることは言うまでもない。例えば、不足期間に対応する表示の色を変える代わりに、不足期間に発音される楽音に対応するノートバーの形状を変更したり、表示を点滅させる等の方法も考えられる。また、発音期間バーを表示する代わりに、エンベロープ等を表示させてもよいし、スタッフ表示形式等の他の表示形式において不足期間および短縮期間を表示させてもよい。
【００８３】
また、上記の実施形態においては、オペレータの数を自動演奏装置のリソース量の例として説明したが、オーサリングツール１０は、他の種類のリソース量、例えば処理可能な波形データの総サイズ、ＤＳＰの処理速度等に関しても、それらに応じた条件によりリソース不足の判定を行うことにより、上記と同様にリソースの不足期間および短縮期間の表示を行うことができる。また、アルゴリズムに必要なオペレータの数を、例えば、「２」（または「４」）に固定し、総オペレータ数１６に対して８個（または４個）の発音数（発音子）を持つものとし、その８個（または４個）の発音数（発音子）をリソース量として用いてもよい。
【００８４】
なお、上述したように、オーサリングツール１０は演奏データの表示機能に加え、一般的なオーサリングツールと同様の演奏データの編集機能を備えており、オーサリングツール１０は演奏データを変更すると、上記の演奏データの表示処理を再実行し、変更後の演奏データに応じて表示を更新する。さらに、オーサリングツール１０は一般的なオーサリングツールと同様の演奏データの再生機能も備えており、ユーザの再生指示に応じて、演奏データに基づき楽音生成部１０８による自動演奏を行うこともできる。従って、ユーザは音切れによる問題を演奏データの編集により容易に解消することができるとともに、その結果を即座に確認することができる。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施形態にかかるオーサリングツールを実現するコンピュータの構成を示したブロック図である。
【図２】本発明の実施形態にかかるオーサリングツールの機能構成を示したブロック図である。
【図３】本発明の実施形態を説明するためのノートデータを示した図である。
【図４】本発明の実施形態を説明するためのチャンネルイベントデータを示した図である。
【図５】本発明の実施形態を説明するためのソングイベントデータを示した図である。
【図６】本発明の実施形態を説明するための音色データを示した図である。
【図７】本発明の実施形態を説明するためのＡＤＳＲエンベロープの基本形状を示した図である。
【図８】本発明の実施形態におけるレベルキースケールに応じた音高とレベルの減衰量との関係を模式的に示したグラフである。
【図９】本発明の実施形態におけるレートキースケールに応じた音高とレートの増加率との関係を模式的に示したグラフである。
【図１０】本発明の実施形態にかかるオーサリングツールの表示部に表示される画面を例示した図である。
【図１１】本発明の実施形態にかかるオーサリングツールの表示部に表示される発音期間の表示態様を例示した図である。
【図１２】本発明の実施形態にかかる音量指示データ、減衰率、標準波形エンベロープおよび調整後波形エンベロープの関係を模式的に示した図である。
【図１３】本発明の実施形態にかかるオーサリングツールの表示部に表示される発音期間の表示態様を例示した図である。
【図１４】本発明の実施形態にかかる音切れ検出用データリストを例示した図である。
【図１５】本発明の実施形態にかかる音切れ検出用データリストを例示した図である。
【図１６】本発明の実施形態にかかるオーサリングツールの表示部に表示される画面を例示した図である。
【図１７】従来技術におけるオーサリングツールの表示部に表示される画面を例示した図である。
【符号の説明】
【００８６】
１…コンピュータ、１０…オーサリングツール、１０１…ＣＰＵ、１０２…ＲＯＭ、１０３…ＲＡＭ、１０４…ＨＤ、１０５…ディスプレイ、１０６…キーボード、１０７…マウス、１０８…楽音生成部、１０９…サウンドシステム、１１０…スピーカ、１１１…データ入出力Ｉ／Ｆ、１１２…バス、２０１…ＭＩＤＩ楽器、２０２…携帯電話、２０３…楽曲配信サーバ、３０１…操作部、３０２…演奏データ記憶部、３０３…演奏データ処理部、３０４…表示処理部、３０５…表示部、３０６…音色データ記憶部、３０７…音色データ処理部、３０８…生成期間算出部、３０９…必要リソース量算出部、３１０…不足期間算出部。
【図１】
2005266350.tif 000003
【図２】
2005266350.tif 000004
【図３】
2005266350.tif 000005
【図４】
2005266350.tif 000006
【図５】
2005266350.tif 000007
【図６】
2005266350.tif 000008
【図７】
2005266350.tif 000009
【図８】
2005266350.tif 000010
【図９】
2005266350.tif 000011
【図１０】
2005266350.tif 000012
【図１１】
2005266350.tif 000013
【図１２】
2005266350.tif 000014
【図１３】
2005266350.tif 000015
【図１４】
2005266350.tif 000016
【図１５】
2005266350.tif 000017
【図１６】
2005266350.tif 000018
【図１７】
2005266350.tif 000019