(57)【特許請求の範囲】
【請求項１】
Ｍ（Ｍは１以上の整数）小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第１の種類の演奏データと、アウフタクトとそれに続くＭ小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第２の種類の演奏データとを記憶した記憶手段と、
前記記憶手段から複数個の演奏データを取得して配列する編集手段であって、前記第１または第２の種類の演奏データの後に前記第２の種類の演奏データを配列する場合に、配列順が前の演奏データに対して、当該演奏データの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする書き換え処理を施し、この書き換え処理を経た演奏データの後に該当の演奏データを配列する編集手段と
を具備することを特徴とする曲編集装置。
【請求項２】
前記編集手段は、
前記書き換え処理では、
配列順が後の演奏データの各イベントが示す音の並びの中のアウフタクトの音の演奏区間をアウフタクト演奏区間とし、配列順が前の演奏データのイベントが示す音からなる演奏区間の終端よりも前記アウフタクト演奏区間の分だけ前の時刻を基準時刻とし、配列順が前の演奏データにおける音の並びの区切りの位置に該当する各イベントの中から前記基準時刻に先行し且つ前記基準時刻に最も近い時刻を実行時刻とするイベントを選択し、この選択したイベントよりも後のイベントとタイミングデータを消去し、消去されずに残ったイベントのうち最後のイベントが示す音の消音時刻が前記基準時刻と略一致するように当該最後のイベントの実行時刻を示すタイミングデータを書き換える
ことを特徴とする請求項１に記載の曲編集装置。
【請求項３】
前記第１及び第２の種類の演奏データの各イベントのうち所定値よりも長い休符を経て発音される音のイベントにはマークが付加されており、
前記編集手段は、
前記書き換え処理では、
前記配列順が前の演奏データに含まれる各イベントのうちマークが付加されているイベントを前記区切り位置に該当する各イベントとし、当該イベントの中から前記基準時刻に先行し且つ前記基準時刻に最も近い時刻を実行時刻とするイベントを選択する
ことを特徴とする請求項２に記載の曲編集装置。
【請求項４】
１曲分の音の並びを示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む曲演奏データからＭ小節分よりも長い演奏区間の各音を示す各イベントと各イベントの実行時刻を示すタイミングデータを切り出し、切り出した各イベント及びタイミングデータを前記第２の種類の演奏データとして前記記憶手段に記憶する手段を具備することを特徴とする請求項１乃至３の何れか１の請求項に記載の曲編集装置。
【請求項５】
コンピュータに、
Ｍ（Ｍは１以上の整数）小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第１の種類の演奏データと、アウフタクトとそれに続くＭ小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第２の種類の演奏データとを記憶した記憶手段と、
前記記憶手段から複数個の演奏データを取得して配列する編集手段であって、前記第１または第２の種類の演奏データの後に前記第２の種類の演奏データを配列する場合に、配列順が前の演奏データに対して、当該演奏データの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする書き換え処理を施し、この書き換え処理を経た演奏データの後に該当の演奏データを配列する編集手段と
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数個の演奏データを組み合わせて１曲分の演奏データを生成する技術に関する。
【背景技術】
【０００２】
様々なメロディを示す演奏データを集めてデータベース化し、この中から利用者が選んだデータを合成して１曲分の曲データを生成する技術が各種提案されている。この種の技術に関する文献として、特許文献１がある。同文献に開示された自動編曲装置は、楽曲のメロディを示すデータが供給された場合に、そのデータが示すメロディを複数の区間に分割し、分割された各区間の音の起伏の度合いを示す起伏度数を算出する。そして、各区間の起伏度数に応じて各区間のメロディに割り当てる伴奏を決定し、各区間のメロディと伴奏を時間軸上において繋げた１曲分の曲データを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第２８０６３５１号公報
【特許文献２】特開２００７−２４０５６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来のこの種の技術では、データベースに収録される演奏データが１曲分の演奏データを１小節や２小節などの比較的短い単位で分割したものである場合があった。この場合、データベース内の演奏データを組合せてできる曲は似通ったものになってしまい、バリエーションの豊かな曲創作の環境を提供できないという問題があった。
本発明は、このような課題に鑑みてなされたものであり、データベースに収録された複数個の演奏データを用いてバリエーションの豊かな楽曲を創作できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、Ｍ（Ｍは１以上の整数）小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第１の種類の演奏データと、アウフタクトとそれに続くＭ小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第２の種類の演奏データとを記憶した記憶手段と、前記記憶手段から複数個の演奏データを取得して配列する編集手段であって、前記第１または第２の種類の演奏データの後に前記第２の種類の演奏データを配列する場合に、配列順が前の演奏データに対して、当該演奏データの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする書き換え処理を施し、この書き換え処理を経た演奏データの後に該当の演奏データを配列する編集手段とを具備する曲編集装置を提供する。
【０００６】
この発明において、Ｍ小節分の演奏区間の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む演奏データに対して、当該演奏データの各イベントのうち閾値よりも長い休符を経て発音される音のイベントに音の並びの区切りの位置に該当することを示すマークを付加する処理を施し、この処理を経た演奏データを第１の種類の演奏データとして前記記憶手段に記憶するとともに、Ｍ小節よりも長い演奏区間の各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む演奏データに対して、当該演奏データの各イベントのうち閾値よりも長い休符を経て発音される音のイベントに前記マークを付加する処理を施し、この処理を経た演奏データを第２の種類の演奏データとして前記記憶手段に記憶する手段を具備してもよい。
【図面の簡単な説明】
【０００７】
【図１】この発明の一実施形態である曲編集装置を示すブロック図である。
【図２】同装置のハードディスク内の演奏データのデータ構造の一例を示す図である。
【図３】同装置が実行するデータ蓄積処理を示すフローチャートである。
【図４】同装置が実行する分割処理の内容を示す図である。
【図５】同装置が実行するアウフタクト生成処理の内容を示す図である。
【図６】同装置が実行する編集処理を示すフローチャートである。
【図７】同装置が実行する評価ポイント算出処理の内容を示す図である。
【図８】同装置が実行する評価ポイント算出処理の内容を示す図である。
【図９】同装置が実行する書き換え処理の内容を示す図である。
【図１０】同装置が実行する書き換え処理の内容を示す図である。
【図１１】同装置が実行する書き換え処理の内容を示す図である。
【図１２】同装置が実行する書き換え処理の内容を示す図である。
【図１３】同装置が実行する書き換え処理の内容を示す図である。
【図１４】同装置が実行する歌唱合成処理を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、図面を参照し、この発明の実施の形態を説明する。
図１は、この発明の一実施形態である曲編集装置１０の構成を示すブロック図である。この曲編集装置１０は、様々な創作者がＭＩＤＩ（Musical Instrument Digital Interface）シーケンサを用いて作成した曲演奏データＳＭＤから、音の並びであるメロディの素材となる複数種類の演奏データＭＤを生成して当該装置１０に蓄積するとともに、当該装置１０内に蓄積された複数個の演奏データＭＤの中から選んだものを組み合わせて１曲分の曲演奏データＥＭＤを生成し、この曲演奏データＥＭＤのメロディと同じメロディを持った歌唱音声の音声信号を出力する。
【０００９】
図１に示すように、曲編集装置１０は、データ読込部１１、操作部１２、表示部１３、放音部１４、及び制御部１５を有する。データ読込部１１は、記憶媒体が装着された場合に、その媒体内の曲演奏データＳＭＤを読み出して制御部１５に供給する。図２は、曲演奏データＳＭＤのデータ構造の一例を示す図である。曲演奏データＳＭＤは、音の発音内容を示すノートオンイベントＥＶＯＮ（♯）（♯はノートナンバを示す）及びノートオフイベントＥＶＯＦＦ（♯）と、各イベントＥＶＯＮ（♯）（またはＥＶＯＦＦ（♯））の実行時刻ｔを各々の前のイベントＥＶＯＦＦ（♯）（またはＥＶＯＮ（♯））の実行時刻ｔとの時間差（ティック数）として示すタイミングデータであるデルタタイムΔＴｈ（ｈ＝１、２…）（ｈは、配列順を示すインデックスである）とをＬ個のトラックＴＲ−ｊ（ｊ＝１〜Ｌ）に分けて並べたものである。ここで、本実施形態では、各創作者は、１つの楽曲の曲演奏データＳＭＤを次のルールａ１〜ｆ１に従って作成する。
ａ１．曲演奏データ化する楽曲はハ長調のものとする。
ｂ１．曲演奏データ化する楽曲の最初の音から最後の音までの各音の発音及び消音を指示するイベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）とその実行時刻ｔを示すデルタタイムΔＴｈを曲演奏データＳＭＤ内の第１トラックＴＲ−１に記述する。
ｃ１．曲演奏データ化する楽曲の中に演奏の区切り位置がある場合は、トラックＴＲ−１における区切り位置の直前のイベントＥＶＯＮ（♯）のマークとしての役割を果たすイベント（例えば、ノートナンバ１２６のイベントＥＶＯＮ（１２６）とする）とその実行時刻ｔ（区切り位置の直前のイベントＥＶＯＮ（♯）のものと同じ実行時刻ｔ）を示すデルタタイムΔＴｈを曲演奏データＳＭＤ内の第２トラックＴＲ−２に記述する。
ｄ１．曲演奏データ化する楽曲の中に歌唱曲の最後のメロディに相応しい演奏区間がある場合は、そのことを示すマークとしての役割を果たすイベント（例えば、ノートナンバ１２５のイベントＥＶＯＮ（１２５）とする）とこのイベントＥＶＯＮ（１２５）の実行時刻ｔ（該当の演奏区間の始点の時刻）を示すデルタタイムΔＴｈを曲演奏データＳＭＤ内の第３トラックＴＲ−３に記述する。
ｅ１．曲演奏データ化する楽曲の中に歌唱曲の最初のメロディに相応しい演奏区間がある場合は、そのことを示すマークとしての役割を果たすイベント（例えば、ノートナンバ１２４のイベントＥＶＯＮ（１２４）とする）とこのイベントＥＶＯＮ（１２４）の実行時刻ｔ（該当の演奏区間の始点の時刻）を示すデルタタイムΔＴｈを曲演奏データＳＭＤ内の第３トラックＴＲ−３に記述する。
ｆ１．曲演奏データ化する楽曲の中に歌唱曲の最初と最後の何れでもない部分（中間部分）のメロディに相応しい演奏区間がある場合は、そのことを示すマークとしての役割を果たすイベント（例えば、ノートナンバ１２３のイベントＥＶＯＮ（１２３）とする）とこのイベントＥＶＯＮ（１２３）の実行時刻ｔ（該当の演奏区間の始点の時刻）を示すデルタタイムΔＴｈを曲演奏データＳＭＤ内の第３トラックＴＲ−３に記述する。
【００１０】
図１において、操作部１２は、各種情報の入力操作を受け付け、操作内容を示す信号を制御部１５に供給する。表示部１３は、制御部１５による制御の下に各種情報を表示する。放音部１４は、制御部１５から出力される音信号を音として出力する。制御部１５は、曲編集装置１０の制御中枢としての役割を果たす装置である。制御部１５は、ＣＰＵ１６、ＲＡＭ１７、ＲＯＭ１８、及びハードディスク１９を有する。ＣＰＵ１６は、ＲＡＭ１７をワークエリアとして利用しつつ、ＲＯＭ１８やハードディスク１９に記憶されたプログラムを実行する。ハードディスク１９には、素材データベースＭＤＢ、楽曲データベースＢＤＢ、音声素片データベースＰＤＢ、及び曲編集プログラムＰＲＧが記憶されている。素材データベースＭＤＢには演奏データＭＤが記憶される。楽曲データベースＢＤＢには曲演奏データＥＭＤが記憶される。音声素片データベースＰＤＢには音声素片データＰＤが記憶される。ここで、音声素片データＰＤは、単一の音素や音素間の遷移部分など、歌唱音声の素材となる各種の音声素片の波形を定義したデータである。曲編集プログラムＰＲＧは、次の３つの機能を有する。
ａ２．データ蓄積機能
これは、データ読込部１１から曲演奏データＳＭＤが供給された場合に、この曲演奏データＳＭＤから複数種類の演奏データＭＤを生成して素材データベースＭＤＢに記憶する機能である。
ｂ２．編集機能
これは、素材データベースＭＤＢから４個の演奏データＭＤを取得し、取得した演奏データＭＤを配列して１曲分の曲演奏データＥＭＤを生成する機能である。
ｃ２．歌唱合成機能
これは、曲演奏データＥＭＤのメロディと同じメロディを持った歌唱音声の音信号を合成し、この音信号を放音部１４から放音させる機能である。
【００１１】
次に、本実施形態の動作について説明する。本実施形態では、ＣＰＵ１６は、データ蓄積処理、編集処理、及び歌唱合成処理を実行する。以下、各処理について順に説明する。
【００１２】
図３は、データ蓄積処理を示すフローチャートである。図３に示す一連の処理はデータ蓄積機能の働きによって実行される処理である。図３に示す一連の処理は、データ読込部１１によって読み出された曲演奏データＳＭＤがＲＡＭ１７に書き込まれると開始される。図３に示す一連の処理の実行にあたり、利用者は、以下の３つの項目を操作部１２により設定し、各々の設定値をＲＡＭ１７に記憶させる。
ａ３．データ処理開始位置
この項目では、曲演奏データＳＭＤ内における演奏データＭＤの生成に用いる部分の先頭の小節位置Ｘを設定する。
ｂ３．アウフタクト
この項目では、アウフタクトのない演奏データＭＤのみを得たい場合は「アウフタクトなし」と設定し、アウフタクトのない演奏データＭＤ及びアウフタクトのある演奏データＭＤの両方を得たい場合は「アウフタクトあり」を設定する。
ｃ３．移調
この項目では、演奏データＭＤと同じ調（ハ長調）の演奏データＭＤのみを得たい場合は「移調なし」と設定し、演奏データＭＤと同じ調及びこれと異なる調の演奏データＭＤを得たい場合は「移調あり」と設定する。
【００１３】
図３において、ＣＰＵ１６は、分割処理を行う（Ｓ１０１）。この分割処理では、ＣＰＵ１６は、図４に示すように、ＲＡＭ１７内の曲演奏データＳＭＤにおけるＸ小節目（図４の例では、Ｘ＝２）以降の演奏区間をＭ（Ｍは１以上の整数：例えば、Ｍ＝２とする）小節毎の演奏区間Ｒ−ｉ（ｉ＝１〜Ｚ：Ｚは分割した演奏区間の総数である）に分割し、各演奏区間Ｒ−ｉ内のイベントＥＶＯＮ（♯），ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈを演奏データＭＤＲ−ｉとする。
【００１４】
次に、ＣＰＵ１６は、変数ｋの値を初期値であるｋ＝１とした後（Ｓ１０２）、ステップＳ１０１において分割した演奏データＭＤＲ−ｉ（ｉ＝１〜Ｚ）のうちｋ番目の演奏データＭＤＲ−ｋを処理対象として選択する（Ｓ１０３）。ＣＰＵ１６は、第１の判定処理を行う（Ｓ１０４）。この第１の判定処理では、ＣＰＵ１６は、演奏データＭＤＲ−ｋの第１トラックＴＲ−１における各イベントＥＶＯＮ（♯）の後のデルタタイムΔＴｈを演奏区間Ｒ−ｋ内のメロディをなす各音の音長とし、演奏区間Ｒ−ｋが下記の２つの条件ａ４及びｂ４を満たすものであるか否かを判定する。
ａ４．当該演奏区間Ｒ−ｋ内の各イベントＥＶＯＮ（♯）が示す音の中に音長が閾値ＴＨ１未満のものが１つ以上あること
ｂ４．当該演奏区間Ｒ−ｋ内の各イベントＥＶＯＮ（♯）が示す音の音長の総計が閾値ＴＨ２未満であること
【００１５】
ＣＰＵ１６は、ステップＳ１０４において、処理対象とした演奏データＭＤＲ−ｋが上記条件ａ４及びｂ４の両方を満たすと判定した場合（Ｓ１０４：Ｙｅｓ）、その演奏データＭＤＲ−ｋを破棄する（Ｓ１０５）。ここで、演奏データＭＤＲ−ｋを破棄するのは、短か過ぎる音を含むメロディや音が僅かしか含まれていないメロディは歌唱曲のメロディとして利用し難いためである。ＣＰＵ１６は、ステップＳ１０５において、演奏データＭＤＲ−ｋを破棄した後、ステップＳ１１４に進む。このステップＳ１１４の処理の内容は後述する。
【００１６】
ＣＰＵ１６は、ステップＳ１０４において、処理対象とした演奏データＭＤＲ−ｋが上記条件ａ４及びｂ４の両方または一方を満たさないと判定した場合（Ｓ１０４：Ｎｏ）、第２の判定処理を行う（Ｓ１０６）。この第２の判定処理では、ＣＰＵ１６は、設定項目ｂ３において「アウフタクトあり」が設定されているかを判定する。ＣＰＵ１６は、「アウフタクトあり」が設定されている場合（Ｓ１０６：Ｙｅｓ）、アウフタクト生成処理を行う（Ｓ１０７）。アウフタクト生成処理は、曲演奏データＳＭＤから、アウフタクトの各音とそれに続くＭ（Ｍ＝２）小節分のメロディの各音を示す各イベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）と各イベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）の実行時刻を示すデルタタイムΔＴｈとを含む演奏データＭＤＲＡ−ｋを生成する処理である。アウフタクト生成処理では、ＣＰＵ１６は、曲演奏データＳＭＤからＭ（Ｍ＝２）小節分より長い演奏区間のイベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）とデルタタイムΔＴｈを切り出し、切り出したイベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）とデルタタイムΔＴｈを演奏データＭＤＲＡ−ｋとする。より詳細に説明すると、図５に示すように、ＣＰＵ１６は、ＲＡＭ１７内の曲演奏データＳＭＤの第２トラックＴＲ−２における演奏区間Ｒ−１の１つ前の小節（図５の例では第１小節）内のイベントＥＶＯＮ（１２６）のうち演奏区間Ｒ−１に最も近いものの実行時刻ｔをアウフタクトの始点の時刻ｔSTRTとし、曲演奏データＳＭＤのトラックＴＲ−ｊ（ｊ＝１〜Ｌ）における時刻ｔSTRTから演奏区間Ｒ−１の終端までの間の各イベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）とデルタタイムΔＴｈを１番目の演奏データＭＤＲＡ−１とする。ＣＰＵ１６は、２番目の演奏データＭＤＲＡ−２，３番目の演奏データＭＤＲＡ−３…Ｚ番目の演奏データＭＤＲＡ−Ｚを同様の手順で生成する。
【００１７】
ＣＰＵ１６は、「アウフタクトなし」が設定されている場合（Ｓ１０６：Ｎｏ）、ステップＳ１０７を実行することなく、次のステップＳ１０８に進む。ＣＰＵ１６は、ステップＳ１０８では、第３の判定処理を行う。この第３の判定処理では、ＣＰＵ１６は、演奏データＭＤＲ−ｋ（ステップＳ１０７が実行されている場合は、演奏データＭＤＲ−ｋ及びＭＤＲＡ−ｋ）の第２トラックＴＲ−２にイベントＥＶＯＮ（１２６）が書き込まれているか否かを判定する。ＣＰＵ１６は、演奏データＭＤＲ−ｋの第２トラックＴＲ−２にイベントＥＶＯＮ（１２６）が書き込まれていない場合（Ｓ１０８：Ｎｏ）、第１のマーキング処理を行う（Ｓ１０９）。第１のマーキング処理では、ＣＰＵ１６は、演奏データＭＤＲ−ｋの第１トラックＴＲ−１における各イベントＥＶＯＦＦ（♯）の後のデルタタイムΔＴｈを演奏区間Ｒ−ｋ内のメロディをなす各音間の休符の長さとし、演奏区間Ｒ−ｋ内に閾値ＴＨ３以上の長さの休符があるか否かを判定する。ＣＰＵ１６は、演奏区間Ｒ−ｋ内のメロディをなす音の間に閾値ＴＨ３以上の長さの休符がある場合は、その休符を演奏の区切りの位置とみなす。この場合、ＣＰＵ１６は、演奏データＭＤＲ−ｋの第２トラックＴＲ−２にイベントＥＶＯＮ（１２６）を追記するとともに、トラックＴＲ−１における区切り位置の直前のイベントＥＶＯＦＦ（♯）を選択する。その上で、ＣＰＵ１６は、この選択したイベントＥＶＯＦＦ（♯）の実行時刻ｔと第２トラックＴＲ−２に追記したイベントＥＶＯＮ（１２６）の実行時刻ｔが同時刻になるように第２トラックＴＲ−２における追記したイベントＥＶＯＮ（１２６）の前後のデルタタイムΔＴｈを書き換える。
【００１８】
ＣＰＵ１６は、演奏データＭＤＲ−ｋの第２トラックＴＲ−２に１つ以上のイベントＥＶＯＮ（１２６）が書き込まれている場合（Ｓ１０８：Ｙｅｓ）、ステップＳ１０９を実行することなく、次のステップＳ１１０に進む。ＣＰＵ１６は、ステップＳ１１０では、第４の判定処理を行う。この第４の判定処理では、ＣＰＵ１６は、演奏データＭＤＲ−ｋ（ステップＳ１０７が実行されている場合は、演奏データＭＤＲ−ｋ及びＭＤＲＡ−ｋ）の第３トラックＴＲ−３にイベントＥＶＯＮ（１２５）、ＥＶＯＮ（１２４）、またはＥＶＯＮ（１２３）が書き込まれているか否かを判定する。ＣＰＵ１６は、ステップＳ１１０において、演奏データＭＤＲ−ｋの第３トラックＴＲ−３にイベントＥＶＯＮ（１２５）、ＥＶＯＮ（１２４）、及びＥＶＯＮ（１２３）のいずれも書き込まれていないと判定した場合（Ｓ１１０：Ｎｏ）、第２のマーキング処理を行う（Ｓ１１１）。第２のマーキング処理では、ＣＰＵ１６は、演奏データＭＤＲ−ｋの第１トラックＴＲ−１の各イベントＥＶＯＮ（♯）のうちの最後のイベントＥＶＯＮ（♯）の音を演奏区間Ｒ−ｋ内のメロディの最後の音とみなす。そして、この最後の音が次の２つの条件を満たすか否かを判定する。
ａ５．音の音名がハ長調の基音（ド）であること
ｂ５．音の音長が閾値ＴＨ４以上であること
【００１９】
ＣＰＵ１６は、２つの条件ａ５及びｂ５の両方を満たす場合、演奏データＭＤＲ−ｋが曲の最後の部分に相応しいメロディを含んでいるとみなす。この場合、ＣＰＵ１６は、演奏データＭＤＲ−ｋの第３トラックＴＲ−３の先頭にイベントＥＶＯＮ（１２５）を追記する。
【００２０】
また、ＣＰＵ１６は、条件ａ５及びｂ５のうち少なくとも一方が満たされない場合、演奏データＭＤＲ−ｋが、曲の最初の部分と、最初と最後の何れでもない部分（中間部分）に相応しいメロディを含んでいるとみなす。この場合、ＣＰＵ１６は、演奏データＭＤＲ−ｋの第３トラックＴＲ−３の先頭にイベントＥＶＯＮ（１２４）及びイベントＥＶＯＮ（１２３）を追記する。
【００２１】
ＣＰＵ１６は、ステップＳ１１０において、演奏データＭＤＲ−ｋの第３トラックＴＲ−３にイベントＥＶＯＮ（１２５）、ＥＶＯＮ（１２４）、及びＥＶＯＮ（１２３）のいずれかが書き込まれていると判定した場合（Ｓ１１０：Ｙｅｓ）、ステップＳ１１１を実行することなく次のステップＳ１１２に進む。ステップＳ１１２では、第５の判定処理を行う。この第５の判定処理では、ＣＰＵ１６は、設定項目ｃ３において「移調あり」が設定されているか否かを判定する。ＣＰＵ１６は、「移調あり」が設定されている場合（Ｓ１１２：Ｙｅｓ）、移調処理を行う（Ｓ１１３）。移調処理では、演奏データＭＤＲ−ｋ（ステップＳ１０７が実行されている場合は、演奏データＭＤＲ−ｋ及びＭＤＲＡ−ｋ）からそのメロディをハ長調と異なる調に移調した演奏データＭＤを生成する。
【００２２】
より詳細に説明すると、ＣＰＵ１６は、演奏データＭＤＲ−ｋの第１トラックＴＲ−１の各イベントＥＶＯＮ（♯）のノートナンバを短２度高いものに書き換えた演奏データＭＤＲ１−ｋを生成する。また、演奏データＭＤＲ−ｋの第１トラックＴＲ−１の各イベントＥＶＯＮ（♯）のノートナンバを長２度高いものに書き換えた演奏データＭＤＲ２−ｋを生成する。また、演奏データＭＤＲ−ｋの第１トラックＴＲ−１のイベントＥＶＯＮ（♯）のノートナンバを短３度高いものに書き換えた演奏データＭＤＲ３−ｋを生成する。また、演奏データＭＤＲ−ｋの第１トラックＴＲ−１のイベントＥＶＯＮ（♯）のノートナンバを長３度高いものに書き換えた演奏データＭＤＲ４−ｋを生成する。また、演奏データＭＤＲ−ｋの第１トラックＴＲ−１のイベントＥＶＯＮ（♯）のノートナンバを４度高いものに書き換えた演奏データＭＤＲ５−ｋを生成する。また、演奏データＭＤＲ−ｋの第１トラックＴＲ−１のイベントＥＶＯＮ（♯）のノートナンバを増４度高いものに書き換えた演奏データＭＤＲ６−ｋを生成する。また、演奏データＭＤＲ−ｋの第１トラックＴＲ−１のイベントＥＶＯＮ（♯）のノートナンバを５度高いものに書き換えた演奏データＭＤＲ７−ｋを生成する。また、演奏データＭＤＲ−ｋの第１トラックＴＲ−１のイベントＥＶＯＮ（♯）のノートナンバを増５度高いものに書き換えた演奏データＭＤＲ８−ｋを生成する。また、演奏データＭＤＲ−ｋの第１トラックＴＲ−１のイベントＥＶＯＮ（♯）のノートナンバを長６度高いものに書き換えた演奏データＭＤＲ９−ｋを生成する。また、演奏データＭＤＲ−ｋの第１トラックＴＲ−１のイベントＥＶＯＮ（♯）のノートナンバを短７度高いものに書き換えた演奏データＭＤＲ１０−ｋを生成する。また、演奏データＭＤＲ−ｋの第１トラックＴＲ−１のイベントＥＶＯＮ（♯）のノートナンバを長７度高いものに書き換えた演奏データＭＤＲ１１−ｋを生成する。ここで、以下では、ハ長調の演奏データＭＤＲ−ｋとハ長調以外の演奏データＭＤＲ１−ｋ、ＭＤＲ２−ｋ、ＭＤＲ３−ｋ、ＭＤＲ４−ｋ、ＭＤＲ５−ｋ、ＭＤＲ６−ｋ、ＭＤＲ７−ｋ、ＭＤＲ８−ｋ、ＭＤＲ９−ｋ、ＭＤＲ１０−ｋ、ＭＤＲ１１−ｋを区別しない場合は、演奏データＭＤＲ−ｋと記す。
【００２３】
ＣＰＵ１６は、「移調なし」が設定されている場合（Ｓ１１２：Ｎｏ）、ステップＳ１１３に実行することなく、ステップＳ１１４に進む。ステップＳ１１４では、変数ｋと曲演奏データＳＭＤの分割数Ｚが同じであるかを判定する。ＣＰＵ１６は、ｋ＜Ｚである場合（Ｓ１１４：Ｎｏ）、ステップＳ１１５に進んで変数ｋをｋ＝ｋ＋１にした後、ステップＳ１０３以降の処理を繰り返す。ＣＰＵ１６は、ｋ＝Ｚである場合（Ｓ１１４：Ｙｅｓ）、それまでに生成した演奏データＭＤＲ−ｋ、ＭＤＲ１−ｋ、ＭＤＲ２−ｋ、ＭＤＲ３−ｋ、ＭＤＲ４−ｋ、ＭＤＲ５−ｋ、ＭＤＲ６−ｋ、ＭＤＲ７−ｋ、ＭＤＲ８−ｋ、ＭＤＲ９−ｋ、ＭＤＲ１０−ｋ、ＭＤＲ１１−ｋ、ＭＤＲＡ−ｋ、ＭＤＲＡ１−ｋ、ＭＤＲＡ２−ｋ、ＭＤＲＡ３−ｋ、ＭＤＲＡ４−ｋ、ＭＤＲＡ５−ｋ、ＭＤＲＡ６−ｋ、ＭＤＲＡ７−ｋ、ＭＤＲＡ８−ｋ、ＭＤＲＡ９−ｋ、ＭＤＲＡ１０−ｋ、ＭＤＲＡ１１−ｋの各々を演奏データＭＤとして素材データベースＭＤＢに記憶する（Ｓ１１６）。
【００２４】
図６は、編集処理を示すフローチャートである。図６に示す一連の処理は編集機能の働きによって実行される処理である。図６に示す一連の処理は、操作部１２によって演奏データＭＤの編集が指示されると開始される。図６に示す一連の処理の実行にあたり、利用者は、以下の項目を操作部１２により設定し、その設定値をＲＡＭ１７に記憶させる。
ａ６．コード進行
この項目では、曲の８小節分のコード進行における第１〜第８小節の各コードのコードネームＣＮ１〜ＣＮ８を設定する。
【００２５】
図６において、ＣＰＵ１６は、演奏データ取得処理を行う（Ｓ２０１）。演奏データ取得処理では、ＣＰＵ１６は、曲の第１〜第２小節のメロディの素材とする演奏データＭＤ１〜２、第３〜第４小節のメロディの素材とする演奏データＭＤ３〜４、第５〜第６小節のメロディの素材とする演奏データＭＤ５〜６、及び第７〜第８小節のメロディの素材とする演奏データＭＤ７〜８を素材データベースＭＤＢ内の複数の演奏データＭＤの中から探索し、各々の探索結果をＲＡＭ１７に読み出す。より具体的には、ＣＰＵ１６は、次の４つのデータ探索処理を行う。
【００２６】
第１のデータ探索処理では、ＣＰＵ１６は、素材データベースＭＤＢ内の全演奏データＭＤのうち第３トラックＴＲ−３にイベントＥＶＯＮ（１２３）が埋め込まれているものを演奏データＭＤ１〜２の候補とし、演奏データＭＤ１〜２の候補である各演奏データＭＤと設定項目ａ５におけるコードネームＣＮ１及びＣＮ２の和音との適合度を示す評価ポイントＰを算出する。評価ポイントＰの算出の手順は次の通りである。図７に示すように、評価ポイントＰの算出対象がアウフタクトを含まない演奏データＭＤ（演奏データＭＤＲ−ｋ、ＭＤＲ１−ｋ、ＭＤＲ２−ｋ、ＭＤＲ３−ｋ、ＭＤＲ４−ｋ、ＭＤＲ５−ｋ、ＭＤＲ６−ｋ、ＭＤＲ７−ｋ、ＭＤＲ８−ｋ、ＭＤＲ９−ｋ、ＭＤＲ１０−ｋ、ＭＤＲ１１−ｋの何れか）である場合、ＣＰＵ１６は、当該演奏データＭＤの第１トラックＴＲ−１の２小節分のイベントＥＶＯＮ（♯）を評価対象とする。そして、評価対象である２つの小節のイベントＥＶＯＮ（♯）の各々の音長（ティック数）の合計値ＳＵＭTCKを求める。次に、評価対象の最初の１小節のイベントＥＶＯＮ（♯）が示す各音の音名が、コードネームＣＮ１と対応するコードの各音（図７の例では、ＣＮ１＝Ｃなので、ド、ミ、ソの３音）、及びこのコードと根音を共通にする５音音階（ペンタトニック）の各音（図７の例では、ＣＮ１＝Ｃなので、ド、レ、ミ、ソ、ラの５音）に該当するかを判定し、コードの各音と一致する音の音長（ティック数）に５ポイント、コードの各音と一致しないが５音音階の各音と一致する音の音長（ティック数）に３ポイント、それ以外の音の音長（ティック数）に１ポイントを各々乗算する。次に、評価対象の２番目の１小節のイベントＥＶＯＮ（♯）が示す各音の音名が、コードネームＣＮ２の和音（図７の例では、ＣＮ２＝Ｆなので、ファ、ラ、ドの３音）、及びこのコードと根音を共通にする５音音階（ペンタトニック）の各音（図７の例では、ＣＮ２＝Ｆなので、ファ、ソ、ラ、ド、レの５音）に該当するかを判定し、コードの各音と一致する音の音長（ティック数）に５ポイント、コードの各音と一致しないが５音音階の各音と一致する音の音長（ティック数）に３ポイント、それ以外の音の音長（ティック数）に１ポイントを各々乗算する。その上で、２つの小節のイベントＥＶＯＮ（♯）の各々における音長（ティック数）に該当のポイントを乗じた値の合計値ＳＵＭPNTを求める。そして、合計値ＳＵＭPNTで合計値ＳＵＭTCKを除算した値ＳＵＭPNT／ＳＵＭTCKを当該演奏データＭＤの評価ポイントＰとする。
【００２７】
また、図８に示すように、評価ポイントＰの算出対象がアウフタクトを含む演奏データＭＤ（ＭＤＲＡ−ｋ、ＭＤＲＡ１−ｋ、ＭＤＲＡ２−ｋ、ＭＤＲＡ３−ｋ、ＭＤＲＡ４−ｋ、ＭＤＲＡ５−ｋ、ＭＤＲＡ６−ｋ、ＭＤＲＡ７−ｋ、ＭＤＲＡ８−ｋ、ＭＤＲＡ９−ｋ、ＭＤＲＡ１０−ｋ、ＭＤＲＡ１１−ｋのいずれか）である場合、ＣＰＵ１６は、当該演奏データＭＤの第１トラックＴＲ−１におけるアウフタクトの終端以降の２小節分のイベントＥＶＯＮ（♯）を評価対象とする。そして、評価対象である２つの小節のイベントＥＶＯＮ（♯）の各々の音長（ティック数）の合計値ＳＵＭTCKを求める。次に、評価対象の最初の１小節のイベントＥＶＯＮ（♯）が示す各音の音名が、コードネームＣＮ１と対応するコードの各音（図８の例では、ＣＮ１＝Ｃなので、ド、ミ、ソの３音）、及びこのコードと根音を共通にする５音音階（ペンタトニック）の各音（図８の例では、ＣＮ１＝Ｃなので、ド、レ、ミ、ソ、ラの５音）に該当するかを判定し、コードの各音と一致する音の音長（ティック数）に５ポイント、コードの各音と一致しないが５音音階の各音と一致する音の音長（ティック数）に３ポイント、それ以外の音の音長（ティック数）に１ポイントを各々乗算する。次に、評価対象の２番目の１小節のイベントＥＶＯＮ（♯）が示す各音の音名が、コードネームＣＮ２の和音（図８の例では、ＣＮ２＝Ｆなので、ファ、ラ、ドの３音）、及びこのコードと根音を共通にする５音音階（ペンタトニック）の各音（図８の例では、ＣＮ２＝Ｆなので、ファ、ソ、ラ、ド、レの５音）に該当するかを判定し、コードの各音と一致する音の音長（ティック数）に５ポイント、コードの各音と一致しないが５音音階の各音と一致する音の音長（ティック数）に３ポイント、それ以外の音の音長（ティック数）に１ポイントを各々乗算する。その上で、２つの小節のイベントＥＶＯＮ（♯）の各々における音長（ティック数）に該当のポイントを乗じた値の合計値ＳＵＭPNTを求める。そして、合計値ＳＵＭPNTで合計値ＳＵＭTCKを除算した値ＳＵＭPNT／ＳＵＭTCKを当該演奏データＭＤの評価ポイントＰとする。
【００２８】
ＣＰＵ１６は、第１のデータ探索処理では、イベントＥＶＯＮ（１２３）が埋め込まれている演奏データＭＤの全てについて評価ポイントＰを求めた後、評価ポイントＰが最も高いものを演奏データＭＤ１〜２としてＲＡＭ１７に記憶する。
【００２９】
第２のデータ探索処理では、ＣＰＵ１６は、素材データベースＭＤＢ内の全演奏データＭＤのうち第３トラックＴＲ−３にイベントＥＶＯＮ（１２４）が埋め込まれているものを演奏データＭＤ３〜４の候補とし、演奏データＭＤ３〜４の候補である各演奏データＭＤと設定項目ａ５におけるコードネームＣＮ３及びＣＮ４の和音との適合度を評価ポイントＰに換算し、評価ポイントＰが最も高いものを演奏データＭＤ３〜４としてＲＡＭ１７に記憶する。
【００３０】
第３のデータ探索処理では、ＣＰＵ１６は、素材データベースＭＤＢ内の全演奏データＭＤのうち第３トラックＴＲ−３にイベントＥＶＯＮ（１２４）が埋め込まれているものを演奏データＭＤ５〜６の候補とし、演奏データＭＤ５〜６の候補である各演奏データＭＤと設定項目ａ５におけるコードネームＣＮ５及びＣＮ６の和音との適合度を評価ポイントＰに換算し、評価ポイントＰが最も高いものを演奏データＭＤ５〜６としてＲＡＭ１７に記憶する。
【００３１】
第４のデータ探索処理では、ＣＰＵ１６は、素材データベースＭＤＢ内の全演奏データＭＤのうち第３トラックＴＲ−３にイベントＥＶＯＮ（１２５）が埋め込まれているものを演奏データＭＤ７〜８の候補とし、演奏データＭＤ７〜８の候補である各演奏データＭＤと設定項目ａ５におけるコードネームＣＮ７及びＣＮ８の和音との適合度を評価ポイントＰに換算し、評価ポイントＰが最も高いものを演奏データＭＤ７〜８としてＲＡＭ１７に記憶する。
【００３２】
図６において、ＣＰＵ１６は、第１の配列処理を行う（Ｓ２０２）。第１の配列処理では、ＣＰＵ１６は、演奏データＭＤ５〜６の後に演奏データＭＤ７〜８を配列して曲の第５〜第８小節の４小節分のイベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）を含む演奏データＭＤ５〜８を生成する。より詳細に説明すると、ＣＰＵ１６は、配列順が相前後する２つの演奏データＭＤ５〜６及びＭＤ７〜８のうち後の演奏データＭＤ７〜８の種類がアウフタクトのない演奏データＭＤである場合とアウフタクトのある演奏データＭＤである場合の各々において次のような処理を行う。
【００３３】
ａ７．演奏データＭＤ７〜８がアウフタクトのない演奏データＭＤである場合
この場合、ＣＰＵ１６は、演奏データＭＤ５〜６の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈの後に演奏データＭＤ７〜８の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈを繋げたものを演奏データＭＤ５〜８とする。
【００３４】
ｂ７．演奏データＭＤ７〜８がアウフタクトのある演奏データＭＤである場合
この場合、ＣＰＵ１６は、演奏データＭＤ５〜６に対して、演奏データＭＤ５〜６の各イベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）が示す各音からなるメロディの終端を配列順が後の演奏データＭＤ７〜８の各イベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）が示す音からなるメロディの中のアウフタクトの分だけ短くする書き換え処理を施す。その上で、書き換え処理を経た演奏データＭＤ’５〜６の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈの後に演奏データＭＤ７〜８の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈを繋げたものを演奏データＭＤ５〜８とする。書き換え処理の詳細な手順は次の通りである。この書き換え処理では、まず、演奏データＭＤ７〜８の第１トラックＴＲ−１の各イベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）が示す音からなるメロディの中のアウフタクトの演奏区間をアウフタクト演奏区間ＲＡとし、演奏データＭＤ５〜６の第１トラックＴＲ−１のイベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）が示す音からなるメロディの演奏区間Ｒ５〜６の終端よりもアウフタクト演奏区間ＲＡの分だけ前の時刻を基準時刻ｔBASISとする（図９）。
【００３５】
次に、演奏データＭＤ５〜６の第２トラックＴＲ−２における一連のイベントＥＶＯＮ（１２６）の中から基準時刻ｔBASISに先行し且つ基準時刻ｔBASISに最も近い時刻を実行時刻ｔとするイベントＥＶＯＦＦ（１２６）を選択する（図１０）。次に、演奏データＭＤ５〜６の各トラックＴＲ−ｊにおけるこの選択したイベントＥＶＯＦＦ（１２６）よりも後のイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈを消去する（図１１）。次に、演奏データＭＤ５〜６の第１トラックＴＲ−１における消去されずに残ったイベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）のうち最後のイベントＥＶＯＦＦ（♯）を選択し、この選択したイベントＥＶＯＦＦ（♯）が示す音の消音時刻が基準時刻ｔBASISと一致するように当該イベントＥＶＯＦＦ（♯）の実行時刻ｔを示すデルタタイムΔＴｈ（すなわち、当該イベントＥＶＯＦＦ（♯）の前のデルタタイムΔＴｈ）を書き換えたものを演奏データＭＤ’５〜６とする（図１２）。後の演奏データＭＤ７〜８がアウフタクトのある演奏データＭＤである場合、以上の処理を経て得られた演奏データＭＤ’５〜６の各トラックＴＲ−ｊの後に演奏データＭＤ７〜８の各トラックＴＲ−ｊを繋げたものを演奏データＭＤ５〜８とする（図１３）。
【００３６】
図６において、ＣＰＵ１６は、第２の配列処理を行う（Ｓ２０３）。第２の配列処理では、ＣＰＵ１６は、演奏データＭＤ３〜４の後に演奏データＭＤ５〜８を配列して曲の第３〜第８小節の６小節分のイベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）を含む演奏データＭＤ３〜８を生成する。この第２の配列処理では、配列順が相前後する２つの演奏データＭＤ３〜４及びＭＤ５〜８のうち演奏データＭＤ５〜８の種類がアウフタクトのない演奏データＭＤである場合は、演奏データＭＤ３〜４の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈの後に演奏データＭＤ５〜８の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈを繋げたものを演奏データＭＤ３〜８とする。また、演奏データＭＤ５〜８の種類がアウフタクトのある演奏データＭＤである場合は、演奏データＭＤ３〜４に対して上述した書き換え処理を施す。その上で、書き換え処理を経た演奏データＭＤ’３〜４の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈの後に演奏データＭＤ５〜８の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈを繋げたものを演奏データＭＤ３〜８とする。
【００３７】
次に、ＣＰＵ１６は、第３の配列処理を行う（Ｓ２０４）。第３の配列処理では、ＣＰＵ１６は、演奏データＭＤ１〜２の後に演奏データＭＤ３〜８を配列して１曲分（第１〜第８小節の８小節分）の曲演奏データＥＭＤを生成する。第３の配列処理では、配列順が相前後する２つの演奏データＭＤ１〜２及びＭＤ３〜８のうち演奏データＭＤ３〜８の種類がアウフタクトのない演奏データＭＤである場合は、演奏データＭＤ１〜２の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈの後に演奏データＭＤ３〜８の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈを繋げたものを曲演奏データＥＭＤとする。また、演奏データＭＤ３〜８の種類がアウフタクトのある演奏データＭＤである場合は、演奏データＭＤ１〜２に対して上述した書き換え処理を施す。その上で、書き換え処理を経た演奏データＭＤ’１〜２の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈの後に演奏データＭＤ３〜８の各トラックＴＲ−ｊのイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈを繋げたものを曲演奏データＥＭＤとする。
【００３８】
次に、ＣＰＵ１６は、第１〜第３の配列処理により得られた１曲分の曲演奏データＥＭＤを楽曲データベースＢＤＢに記憶する（Ｓ２０５）。
【００３９】
図１４は、歌唱合成処理を示すフローチャートである。図１４に示す一連の処理は歌唱合成機能の働きによって実行される処理である。図１４に示す一連の処理は、操作部１２によって歌唱音声の発生が指示されると開始される。図１４に示す一連の処理の実行にあたり、利用者は、歌唱曲のメロディに乗せる歌詞をひらがな文字の文字列として入力する。
【００４０】
図１４において、ＣＰＵ１６は、歌詞として入力された文字列を一連の音声素片に変換する（Ｓ３０１）。ＣＰＵ１６は、ステップＳ３０１で得られた音声素片の各々と対応する音声素片データＰＤを音声素片データベースＰＤＢからＲＡＭ１７に読み出す（Ｓ３０２）。ＣＰＵ１６は、このＲＡＭ１７内の音声素片データＰＤを接続することにより、歌詞として入力された文字列と対応する音声信号を生成する（Ｓ３０３）。ＣＰＵ１６は、楽曲データベースＢＤＢに記憶された曲演奏データＥＭＤの１つをＲＡＭ１７に読み出す（Ｓ３０４）。ＣＰＵ１６は、ステップＳ３０４で生成した音声信号のピッチを曲演奏データＥＭＤのメロディに合わせるためのピッチ変換処理を施す（Ｓ３０５）。ＣＰＵ１６は、このピッチ変換処理を施した音声信号を放音部１４から音として放音させる（Ｓ３０６）。この歌唱合成処理の各ステップの詳細な内容については、特許文献２を参照されたい。
【００４１】
以上が、本実施形態の詳細である。本実施形態によると、次の効果が得られる。
第１に、本実施形態では、編集処理において、演奏データＭＤの後にアウフタクトのある演奏データＭＤを配列する場合、配列順が前の演奏データＭＤに対して書き換え処理を施し、書き換え処理を経た演奏データＭＤの後に該当の演奏データＭＤを配列する。よって、データベースＭＤＢに収録された複数個の演奏データＭＤを用いてバリエーションの豊かな楽曲を創作できる。
【００４２】
第２に、本実施形態では、データ蓄積処理において、ハ長調の演奏データＭＤに移調処理を施すことによりハ長調以外の調の演奏データＭＤを生成し、これらの演奏データＭＤを元のハ長調の演奏データＭＤとともに素材データベースＭＤＢに記憶する。よって、本実施形態によると、異なる調のメロディを組み合わせて多様な楽曲を創作することができる。
【００４３】
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態があり得る。例えば、以下の通りである。
（１）上記実施形態において、編集処理により得られた１曲分の曲演奏データＥＭＤを楽曲の音信号として放音部１４から放音させるようにしてもよい。
【００４４】
（２）上記実施形態では、４つの演奏データＭＤを配列して１曲分の曲演奏データＥＭＤを生成した。しかし、２〜３つの演奏データＭＤや５つ以上の演奏データＭＤを配列して１曲分の曲演奏データＥＭＤを生成してもよい。また、演奏データＭＤにおける演奏区間の長さは２小節分である必要はなく、１小節分の長さにしてもよいし、３小節分以上の長さにしてもよい。
【００４５】
（３）上記実施形態における第１のマーキング処理では、演奏区間Ｒ−ｉ内のメロディの区切り位置を決定した後、第１トラックＴＲ−ｊにおける区切り位置の直前のイベントＥＶＯＦＦ（♯）を選択し、この選択したイベントＥＶＯＦＦ（♯）と第２トラックにおけるイベントＥＶＯＮ（１２６）の実行時刻ｔが同時刻になるように当該イベントＥＶＯＮ（１２６）の前後のデルタタイムΔＴを書き換えた。しかし、第１トラックＴＲ−ｊにおける区切り位置の直後のイベントＥＶＯＮ（♯）（すなわち、閾値ＴＨ３以上の長さの休符の直後の音の発音を指示するイベントＥＶＯＮ（♯））を選択し、この選択したイベントＥＶＯＮ（♯）と第２トラックにおけるイベントＥＶＯＮ（１２６）の実行時刻ｔが同時刻になるように当該イベントＥＶＯＮ（１２６）の前後のデルタタイムΔＴを書き換えてもよい。
【００４６】
（４）上記実施形態では、第１トラックＴＲ−ｊにおける演奏の区切り位置の直前のイベントＥＶＯＦＦ（♯）のマークであるイベントＥＶＯＮ（１２６）を第２トラックＴＲ−ｊに記述した。しかし、第１トラックＴＲ−ｊにおける演奏の区切り位置の直前のイベントＥＶＯＦＦ（♯）のマークとなるイベントを第１トラックＴＲ−ｊに記述してもよい。例えば、所定種類のコントロールチェンジイベントを演奏の区切り位置の直前のイベントＥＶＯＦＦ（♯）のマークにし、第１トラックＴＲ−ｊにおける演奏の区切り位置の直前のイベントＥＶＯＦＦ（♯）とこのコントロールチェンジイベントを連続して記述してもよい。
【００４７】
（５）上記実施形態における書き換え処理では、相前後する２つの演奏データＭＤのうち配列順が前のものの第２トラックＴＲ−２における一連のイベントＥＶＯＮ（１２６）の中から基準時刻ｔBASISに先行し且つ基準時刻ｔBASISに最も近い時刻を実行時刻ｔとするイベントＥＶＯＦＦ（１２６）を選択し、当該演奏データＭＤの各トラックＴＲ−ｊにおけるこの選択したイベントＥＶＯＦＦ（１２６）よりも後のイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈを消去した。しかし、第２トラックＴＲ−２にイベントＥＶＯＮ（１２６）が１つも記されていない場合もあり得る。この場合、ＣＰＵ１６は、配列順が前の演奏データＭＤの第１トラックＴＲ−１における一連のイベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）の中から基準時刻ｔBASISの後のイベントＥＶＯＦＦ（♯）であって基準時刻ｔBASISに最も近い時刻を実行時刻ｔとするイベントＥＶＯＦＦ（♯）を選択し、当該演奏データＭＤの各トラックＴＲ−ｊにおけるこの選択したイベントＥＶＯＦＦ（♯）よりも後のイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈを消去するとよい。
【００４８】
（６）上記実施形態では、曲演奏データＳＭＤやこれを分割して得られる演奏データＭＤは、ノートオンイベントＥＶＯＮ（♯）、ノートオフイベントＥＶＯＦＦ（♯）、及びデルタタイムΔＴｈをＬ個のトラックＴＲ−ｊ（ｊ＝１〜Ｌ）に分けて並べたものであった。しかし、曲演奏データＳＭＤやこれを分割して得られる演奏データＭＤを別のデータフォーマットのものにしてもよい。例えば、演奏データＳＭＤ及びＭＤを、該当するトラックのトラック番号、音源の発音チャネル、イベントの実行時刻を示すタイミングデータ、イベントの種類、及びイベントのパラメータからなるレコードを時系列順に並べた形式（イベントリスト形式）にしてもよい。また、演奏データＳＭＤ及びＭＤを、イベントの種類とそのパラメータのみからなるレコードを時系列順に並べた形式にしてもよい。また、演奏データＳＭＤ及びＭＤを、ピアノロール形式やスコアロール形式にしてもよい。
【００４９】
（７）上記実施形態では、ノートナンバ１２６のイベントＥＶＯＮ（１２６）を曲演奏データＳＭＤ内における演奏の区切り位置を示すマークとし、ノートナンバ１２５のイベントＥＶＯＮ（１２５）を歌唱曲の最後の部分のメロディに相応しい演奏区間を示すマークとし、ノートナンバ１２４のイベントＥＶＯＮ（１２４）を歌唱曲の最初の部分のメロディに相応しい演奏区間を示すマークとし、ノートナンバ１２３のイベントＥＶＯＮ（１２３）を歌唱曲の最初でも最後でもない部分のメロディに相応しい演奏区間を示すマークとした。しかし、演奏の区切り位置や歌唱曲の各部分のメロディに相応しい演奏区間を示すマークとして、別の種類のデータを採用してもよい。また、このマークとしての役割を果たすデータはＭＩＤＩにおいてサポートされていない形式のデータであってもよい。
【００５０】
（８）上記実施形態の移調処理では、ハ長調の演奏データＭＤＲ−ｋ内の各イベントＥＶＯＮ（♯）のノートナンバを半音ずつ高いものに置き換えてハ長調と異なる１１種類の演奏データＭＤＲ１−ｋ、ＭＤＲ２−ｋ、ＭＤＲ３−ｋ、ＭＤＲ４−ｋ、ＭＤＲ５−ｋ、ＭＤＲ６−ｋ、ＭＤＲ７−ｋ、ＭＤＲ８−ｋ、ＭＤＲ９−ｋ、ＭＤＲ１０−ｋ、ＭＤＲ１１−ｋを生成した。しかし、操作部１２の操作により、調の種類を設定し、設定された種類の調の演奏データＭＤ−ｋだけを生成するようにしてもよい。また、移調処理後に、１１種類の演奏データＭＤＲ１−ｋ、ＭＤＲ２−ｋ、ＭＤＲ３−ｋ、ＭＤＲ４−ｋ、ＭＤＲ５−ｋ、ＭＤＲ６−ｋ、ＭＤＲ７−ｋ、ＭＤＲ８−ｋ、ＭＤＲ９−ｋ、ＭＤＲ１０−ｋ、ＭＤＲ１１−ｋに対して各々の譜面における調音記号を取り除く処理を施し、ハ長調のメロディを示す演奏データＭＤへとデータ内容を修正してもよい。
【００５１】
（９）上記実施形態のアウフタクト生成処理において、ＣＰＵ１６は、演奏データＭＤＲＡ−ｋを次のようにして生成してもよい。まず、演奏データＭＤＲ−ｋの複製を生成する。次に、この複製である演奏データＭＤＲ−ｋにおける演奏区間Ｒ−ｋの始点を時刻ｔ０とし、この時刻ｔ０と１／ｈ（例えば、ｈ＝２）小節分だけ後の時刻ｔＢとの間の演奏区間ＲＢ内のイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴを複製する。そして、この複製であるイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、及びデルタタイムΔＴを元の演奏データＭＤＲ−ｋの各トラックＴＲ−ｊの前に追記したものを演奏データＭＤＲＡ−ｋとする。
【００５２】
（１０）上記実施形態の演奏データ取得処理では、評価対象である一連のイベントＥＶＯＮ（♯）を、コードネームＣＮ１及びＣＮ２のコードと一致するもの、コードとは一致しないが５音音階の音と一致するもの、コード及び５音音階の何れの音とも一致しないものの３種類に分類し、各イベントＥＶＯＮ（♯）の音長（ティック数）に各々の種類に応じたポイントを乗算した。しかし、評価対象である一連のイベントＥＶＯＮ（♯）を、コードネームＣＮ１及びＣＮ２のコードと一致するもの、コードとは一致しないが５音音階の音と一致するもの、コード及び５音音階の何れの音とも一致しないいがそれ以外のハ長調音階の音と一致するもの、コード、５音音階、ハ長調音階の何れの音とも一致しないものの４種類に分類し、各イベントＥＶＯＮ（♯）の音長（ティック数）に各々の種類に応じたポイントを乗算してもよい。この場合において、３番目の種類（コード及び５音音階の何れの音とも一致しないいがそれ以外のハ長調音階の音と一致するもの）に該当する場合に１ポイントを乗算し、４番目の種類（コード及び５音音階の何れの音とも一致しないいがそれ以外のハ長調音階の音と一致するもの）に該当する場合にはポイントを乗算しないようにするとよい。
【００５３】
（１１）上記実施形態のアウフタクト生成処理では、相前後する演奏データＭＤＲＡ−ｉ及びＭＤＲＡ−（ｉ＋１）がオーバーラップ部分を有するように各演奏データＭＤＲＡ−ｉ内に含めるイベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）とデルタタイムΔＴｈの切り出し位置を決定した。しかし、例えば、曲演奏データＳＭＤにおける演奏区間Ｒ−１〜Ｒ−３内のイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、デルタタイムΔＴｈを演奏データＭＤＲＡ−１とし、演奏区間Ｒ−４〜Ｒ−６内のイベントＥＶＯＮ（♯）、ＥＶＯＦＦ（♯）、デルタタイムΔＴｈを演奏データＭＤＲＡ−２とし…というように、相前後する演奏データＭＤＲＡ−ｉ及びＭＤＲＡ−（ｉ＋１）がオーバーラップ部分を持たないように各演奏データＭＤＲＡ−ｉ内に含めるイベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）とデルタタイムΔＴｈの切り出し位置を決定してもよい。
【００５４】
（１２）上記実施形態では、曲演奏データＳＭＤ及びＭＤは、ある決まった時間長分の音の並びであるメロディにおける各音の発音内容を示すデータの配列であった。しかし、曲演奏データＳＭＤ及びＭＤを、ある決まった時間長分のハーモニーやリズムを決定づける音の並びにおける各音の発音内容を示すデータの配列としてもよい。
【００５５】
（１３）上記実施形態における第１〜第４の配列処理では、処理対象である２つの演奏データＭＤ（例えば、演奏データＭＤ５〜６及びＭＤ７〜８とする）について、配列順が前の演奏データＭＤ５〜６の第１トラックＴＲ−１における消去されずに残ったイベントＥＶＯＮ（♯）及びＥＶＯＦＦ（♯）のうち最後のイベントＥＶＯＦＦ（♯）を選択し、この選択したイベントＥＶＯＦＦ（♯）が示す音の消音時刻が基準時刻ｔBASISと一致するように当該イベントＥＶＯＦＦ（♯）の実行時刻ｔを示すデルタタイムΔＴｈを書き換えた。しかし、配列順が前の演奏データＭＤ５〜６の第１トラックＴＲ−１における消去されずに残ったイベントイベントＥＶＯＦＦ（♯）が示す音の消音時刻と基準時刻ｔBASISとの差が所定値未満になるように当該イベントＥＶＯＦＦ（♯）の実行時刻ｔを示すデルタタイムΔＴｈを書き換えてもよい。要するに、第１〜第４の配列処理では、配列順が前の演奏データＭＤに対して、当該演奏データＭＤの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする処理が実行されればよい。
【符号の説明】
【００５６】
１０…曲編集装置、１１…データ読込部、１２…操作部、１３…表示部、１４…放音部，１５…制御部、１６…ＣＰＵ、１７…ＲＡＭ、１８…ＲＯＭ、１９…ハードディスク。
【図１】
0005772485.tif 000002
【図２】
0005772485.tif 000003
【図３】
0005772485.tif 000004
【図４】
0005772485.tif 000005
【図５】
0005772485.tif 000006
【図６】
0005772485.tif 000007
【図７】
0005772485.tif 000008
【図８】
0005772485.tif 000009
【図９】
0005772485.tif 000010
【図１０】
0005772485.tif 000011
【図１１】
0005772485.tif 000012
【図１２】
0005772485.tif 000013
【図１３】
0005772485.tif 000014
【図１４】
0005772485.tif 000015