曲編集装置およびプログラム
【課題】データベース化された複数個の演奏データを用いてバリエーションの豊かな楽曲の創作を提供する。
【解決手段】曲編集装置10のCPU16は、素材データベースMDBから4個の演奏データを取得し、取得した4個の演奏データを配列して1曲分の演奏データを生成する。CPU16は、演奏データの後に配列する演奏データがアウフタクトを含む種類のものである場合、配列順が前の演奏データに対して、当該演奏データの各イベントが示す各音からなるメロディの終端を配列順が後の演奏データの各イベントが示す音からなるメロディの中の略アウフタクトの分だけ短くする書き換え処理を施す。
【解決手段】曲編集装置10のCPU16は、素材データベースMDBから4個の演奏データを取得し、取得した4個の演奏データを配列して1曲分の演奏データを生成する。CPU16は、演奏データの後に配列する演奏データがアウフタクトを含む種類のものである場合、配列順が前の演奏データに対して、当該演奏データの各イベントが示す各音からなるメロディの終端を配列順が後の演奏データの各イベントが示す音からなるメロディの中の略アウフタクトの分だけ短くする書き換え処理を施す。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数個の演奏データを組み合わせて1曲分の演奏データを生成する技術に関する。
【背景技術】
【0002】
様々なメロディを示す演奏データを集めてデータベース化し、この中から利用者が選んだデータを合成して1曲分の曲データを生成する技術が各種提案されている。この種の技術に関する文献として、特許文献1がある。同文献に開示された自動編曲装置は、楽曲のメロディを示すデータが供給された場合に、そのデータが示すメロディを複数の区間に分割し、分割された各区間の音の起伏の度合いを示す起伏度数を算出する。そして、各区間の起伏度数に応じて各区間のメロディに割り当てる伴奏を決定し、各区間のメロディと伴奏を時間軸上において繋げた1曲分の曲データを生成する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第2806351号公報
【特許文献2】特開2007−240564号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、従来のこの種の技術では、データベースに収録される演奏データが1曲分の演奏データを1小節や2小節などの比較的短い単位で分割したものである場合があった。この場合、データベース内の演奏データを組合せてできる曲は似通ったものになってしまい、バリエーションの豊かな曲創作の環境を提供できないという問題があった。
本発明は、このような課題に鑑みてなされたものであり、データベースに収録された複数個の演奏データを用いてバリエーションの豊かな楽曲を創作できるようにすることを目的とする。
【課題を解決するための手段】
【0005】
本発明は、M(Mは1以上の整数)小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第1の種類の演奏データと、アウフタクトとそれに続くM小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第2の種類の演奏データとを記憶した記憶手段と、前記記憶手段から複数個の演奏データを取得して配列する編集手段であって、前記第1または第2の種類の演奏データの後に前記第2の種類の演奏データを配列する場合に、配列順が前の演奏データに対して、当該演奏データの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする書き換え処理を施し、この書き換え処理を経た演奏データの後に該当の演奏データを配列する編集手段とを具備する曲編集装置を提供する。
【0006】
この発明において、M小節分の演奏区間の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む演奏データに対して、当該演奏データの各イベントのうち閾値よりも長い休符を経て発音される音のイベントに音の並びの区切りの位置に該当することを示すマークを付加する処理を施し、この処理を経た演奏データを第1の種類の演奏データとして前記記憶手段に記憶するとともに、M小節よりも長い演奏区間の各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む演奏データに対して、当該演奏データの各イベントのうち閾値よりも長い休符を経て発音される音のイベントに前記マークを付加する処理を施し、この処理を経た演奏データを第2の種類の演奏データとして前記記憶手段に記憶する手段を具備してもよい。
【図面の簡単な説明】
【0007】
【図1】この発明の一実施形態である曲編集装置を示すブロック図である。
【図2】同装置のハードディスク内の演奏データのデータ構造の一例を示す図である。
【図3】同装置が実行するデータ蓄積処理を示すフローチャートである。
【図4】同装置が実行する分割処理の内容を示す図である。
【図5】同装置が実行するアウフタクト生成処理の内容を示す図である。
【図6】同装置が実行する編集処理を示すフローチャートである。
【図7】同装置が実行する評価ポイント算出処理の内容を示す図である。
【図8】同装置が実行する評価ポイント算出処理の内容を示す図である。
【図9】同装置が実行する書き換え処理の内容を示す図である。
【図10】同装置が実行する書き換え処理の内容を示す図である。
【図11】同装置が実行する書き換え処理の内容を示す図である。
【図12】同装置が実行する書き換え処理の内容を示す図である。
【図13】同装置が実行する書き換え処理の内容を示す図である。
【図14】同装置が実行する歌唱合成処理を示すフローチャートである。
【発明を実施するための形態】
【0008】
以下、図面を参照し、この発明の実施の形態を説明する。
図1は、この発明の一実施形態である曲編集装置10の構成を示すブロック図である。この曲編集装置10は、様々な創作者がMIDI(Musical Instrument Digital Interface)シーケンサを用いて作成した曲演奏データSMDから、音の並びであるメロディの素材となる複数種類の演奏データMDを生成して当該装置10に蓄積するとともに、当該装置10内に蓄積された複数個の演奏データMDの中から選んだものを組み合わせて1曲分の曲演奏データEMDを生成し、この曲演奏データEMDのメロディと同じメロディを持った歌唱音声の音声信号を出力する。
【0009】
図1に示すように、曲編集装置10は、データ読込部11、操作部12、表示部13、放音部14、及び制御部15を有する。データ読込部11は、記憶媒体が装着された場合に、その媒体内の曲演奏データSMDを読み出して制御部15に供給する。図2は、曲演奏データSMDのデータ構造の一例を示す図である。曲演奏データSMDは、音の発音内容を示すノートオンイベントEVON(♯)(♯はノートナンバを示す)及びノートオフイベントEVOFF(♯)と、各イベントEVON(♯)(またはEVOFF(♯))の実行時刻tを各々の前のイベントEVOFF(♯)(またはEVON(♯))の実行時刻tとの時間差(ティック数)として示すタイミングデータであるデルタタイムΔTh(h=1、2…)(hは、配列順を示すインデックスである)とをL個のトラックTR−j(j=1〜L)に分けて並べたものである。ここで、本実施形態では、各創作者は、1つの楽曲の曲演奏データSMDを次のルールa1〜f1に従って作成する。
a1.曲演奏データ化する楽曲はハ長調のものとする。
b1.曲演奏データ化する楽曲の最初の音から最後の音までの各音の発音及び消音を指示するイベントEVON(♯)及びEVOFF(♯)とその実行時刻tを示すデルタタイムΔThを曲演奏データSMD内の第1トラックTR−1に記述する。
c1.曲演奏データ化する楽曲の中に演奏の区切り位置がある場合は、トラックTR−1における区切り位置の直前のイベントEVON(♯)のマークとしての役割を果たすイベント(例えば、ノートナンバ126のイベントEVON(126)とする)とその実行時刻t(区切り位置の直前のイベントEVON(♯)のものと同じ実行時刻t)を示すデルタタイムΔThを曲演奏データSMD内の第2トラックTR−2に記述する。
d1.曲演奏データ化する楽曲の中に歌唱曲の最後のメロディに相応しい演奏区間がある場合は、そのことを示すマークとしての役割を果たすイベント(例えば、ノートナンバ125のイベントEVON(125)とする)とこのイベントEVON(125)の実行時刻t(該当の演奏区間の始点の時刻)を示すデルタタイムΔThを曲演奏データSMD内の第3トラックTR−3に記述する。
e1.曲演奏データ化する楽曲の中に歌唱曲の最初のメロディに相応しい演奏区間がある場合は、そのことを示すマークとしての役割を果たすイベント(例えば、ノートナンバ124のイベントEVON(124)とする)とこのイベントEVON(124)の実行時刻t(該当の演奏区間の始点の時刻)を示すデルタタイムΔThを曲演奏データSMD内の第3トラックTR−3に記述する。
f1.曲演奏データ化する楽曲の中に歌唱曲の最初と最後の何れでもない部分(中間部分)のメロディに相応しい演奏区間がある場合は、そのことを示すマークとしての役割を果たすイベント(例えば、ノートナンバ123のイベントEVON(123)とする)とこのイベントEVON(123)の実行時刻t(該当の演奏区間の始点の時刻)を示すデルタタイムΔThを曲演奏データSMD内の第3トラックTR−3に記述する。
【0010】
図1において、操作部12は、各種情報の入力操作を受け付け、操作内容を示す信号を制御部15に供給する。表示部13は、制御部15による制御の下に各種情報を表示する。放音部14は、制御部15から出力される音信号を音として出力する。制御部15は、曲編集装置10の制御中枢としての役割を果たす装置である。制御部15は、CPU16、RAM17、ROM18、及びハードディスク19を有する。CPU16は、RAM17をワークエリアとして利用しつつ、ROM18やハードディスク19に記憶されたプログラムを実行する。ハードディスク19には、素材データベースMDB、楽曲データベースBDB、音声素片データベースPDB、及び曲編集プログラムPRGが記憶されている。素材データベースMDBには演奏データMDが記憶される。楽曲データベースBDBには曲演奏データEMDが記憶される。音声素片データベースPDBには音声素片データPDが記憶される。ここで、音声素片データPDは、単一の音素や音素間の遷移部分など、歌唱音声の素材となる各種の音声素片の波形を定義したデータである。曲編集プログラムPRGは、次の3つの機能を有する。
a2.データ蓄積機能
これは、データ読込部11から曲演奏データSMDが供給された場合に、この曲演奏データSMDから複数種類の演奏データMDを生成して素材データベースMDBに記憶する機能である。
b2.編集機能
これは、素材データベースMDBから4個の演奏データMDを取得し、取得した演奏データMDを配列して1曲分の曲演奏データEMDを生成する機能である。
c2.歌唱合成機能
これは、曲演奏データEMDのメロディと同じメロディを持った歌唱音声の音信号を合成し、この音信号を放音部14から放音させる機能である。
【0011】
次に、本実施形態の動作について説明する。本実施形態では、CPU16は、データ蓄積処理、編集処理、及び歌唱合成処理を実行する。以下、各処理について順に説明する。
【0012】
図3は、データ蓄積処理を示すフローチャートである。図3に示す一連の処理はデータ蓄積機能の働きによって実行される処理である。図3に示す一連の処理は、データ読込部11によって読み出された曲演奏データSMDがRAM17に書き込まれると開始される。図3に示す一連の処理の実行にあたり、利用者は、以下の3つの項目を操作部12により設定し、各々の設定値をRAM17に記憶させる。
a3.データ処理開始位置
この項目では、曲演奏データSMD内における演奏データMDの生成に用いる部分の先頭の小節位置Xを設定する。
b3.アウフタクト
この項目では、アウフタクトのない演奏データMDのみを得たい場合は「アウフタクトなし」と設定し、アウフタクトのない演奏データMD及びアウフタクトのある演奏データMDの両方を得たい場合は「アウフタクトあり」を設定する。
c3.移調
この項目では、演奏データMDと同じ調(ハ長調)の演奏データMDのみを得たい場合は「移調なし」と設定し、演奏データMDと同じ調及びこれと異なる調の演奏データMDを得たい場合は「移調あり」と設定する。
【0013】
図3において、CPU16は、分割処理を行う(S101)。この分割処理では、CPU16は、図4に示すように、RAM17内の曲演奏データSMDにおけるX小節目(図4の例では、X=2)以降の演奏区間をM(Mは1以上の整数:例えば、M=2とする)小節毎の演奏区間R−i(i=1〜Z:Zは分割した演奏区間の総数である)に分割し、各演奏区間R−i内のイベントEVON(♯),EVOFF(♯)、及びデルタタイムΔThを演奏データMDR−iとする。
【0014】
次に、CPU16は、変数kの値を初期値であるk=1とした後(S102)、ステップS101において分割した演奏データMDR−i(i=1〜Z)のうちk番目の演奏データMDR−kを処理対象として選択する(S103)。CPU16は、第1の判定処理を行う(S104)。この第1の判定処理では、CPU16は、演奏データMDR−kの第1トラックTR−1における各イベントEVON(♯)の後のデルタタイムΔThを演奏区間R−k内のメロディをなす各音の音長とし、演奏区間R−kが下記の2つの条件a4及びb4を満たすものであるか否かを判定する。
a4.当該演奏区間R−k内の各イベントEVON(♯)が示す音の中に音長が閾値TH1未満のものが1つ以上あること
b4.当該演奏区間R−k内の各イベントEVON(♯)が示す音の音長の総計が閾値TH2未満であること
【0015】
CPU16は、ステップS104において、処理対象とした演奏データMDR−kが上記条件a4及びb4の両方を満たすと判定した場合(S104:Yes)、その演奏データMDR−kを破棄する(S105)。ここで、演奏データMDR−kを破棄するのは、短か過ぎる音を含むメロディや音が僅かしか含まれていないメロディは歌唱曲のメロディとして利用し難いためである。CPU16は、ステップS105において、演奏データMDR−kを破棄した後、ステップS114に進む。このステップS114の処理の内容は後述する。
【0016】
CPU16は、ステップS104において、処理対象とした演奏データMDR−kが上記条件a4及びb4の両方または一方を満たさないと判定した場合(S104:No)、第2の判定処理を行う(S106)。この第2の判定処理では、CPU16は、設定項目b3において「アウフタクトあり」が設定されているかを判定する。CPU16は、「アウフタクトあり」が設定されている場合(S106:Yes)、アウフタクト生成処理を行う(S107)。アウフタクト生成処理は、曲演奏データSMDから、アウフタクトの各音とそれに続くM(M=2)小節分のメロディの各音を示す各イベントEVON(♯)及びEVOFF(♯)と各イベントEVON(♯)及びEVOFF(♯)の実行時刻を示すデルタタイムΔThとを含む演奏データMDRA−kを生成する処理である。アウフタクト生成処理では、CPU16は、曲演奏データSMDからM(M=2)小節分より長い演奏区間のイベントEVON(♯)及びEVOFF(♯)とデルタタイムΔThを切り出し、切り出したイベントEVON(♯)及びEVOFF(♯)とデルタタイムΔThを演奏データMDRA−kとする。より詳細に説明すると、図5に示すように、CPU16は、RAM17内の曲演奏データSMDの第2トラックTR−2における演奏区間R−1の1つ前の小節(図5の例では第1小節)内のイベントEVON(126)のうち演奏区間R−1に最も近いものの実行時刻tをアウフタクトの始点の時刻tSTRTとし、曲演奏データSMDのトラックTR−j(j=1〜L)における時刻tSTRTから演奏区間R−1の終端までの間の各イベントEVON(♯)及びEVOFF(♯)とデルタタイムΔThを1番目の演奏データMDRA−1とする。CPU16は、2番目の演奏データMDRA−2,3番目の演奏データMDRA−3…Z番目の演奏データMDRA−Zを同様の手順で生成する。
【0017】
CPU16は、「アウフタクトなし」が設定されている場合(S106:No)、ステップS107を実行することなく、次のステップS108に進む。CPU16は、ステップS108では、第3の判定処理を行う。この第3の判定処理では、CPU16は、演奏データMDR−k(ステップS107が実行されている場合は、演奏データMDR−k及びMDRA−k)の第2トラックTR−2にイベントEVON(126)が書き込まれているか否かを判定する。CPU16は、演奏データMDR−kの第2トラックTR−2にイベントEVON(126)が書き込まれていない場合(S108:No)、第1のマーキング処理を行う(S109)。第1のマーキング処理では、CPU16は、演奏データMDR−kの第1トラックTR−1における各イベントEVOFF(♯)の後のデルタタイムΔThを演奏区間R−k内のメロディをなす各音間の休符の長さとし、演奏区間R−k内に閾値TH3以上の長さの休符があるか否かを判定する。CPU16は、演奏区間R−k内のメロディをなす音の間に閾値TH3以上の長さの休符がある場合は、その休符を演奏の区切りの位置とみなす。この場合、CPU16は、演奏データMDR−kの第2トラックTR−2にイベントEVON(126)を追記するとともに、トラックTR−1における区切り位置の直前のイベントEVOFF(♯)を選択する。その上で、CPU16は、この選択したイベントEVOFF(♯)の実行時刻tと第2トラックTR−2に追記したイベントEVON(126)の実行時刻tが同時刻になるように第2トラックTR−2における追記したイベントEVON(126)の前後のデルタタイムΔThを書き換える。
【0018】
CPU16は、演奏データMDR−kの第2トラックTR−2に1つ以上のイベントEVON(126)が書き込まれている場合(S108:Yes)、ステップS109を実行することなく、次のステップS110に進む。CPU16は、ステップS110では、第4の判定処理を行う。この第4の判定処理では、CPU16は、演奏データMDR−k(ステップS107が実行されている場合は、演奏データMDR−k及びMDRA−k)の第3トラックTR−3にイベントEVON(125)、EVON(124)、またはEVON(123)が書き込まれているか否かを判定する。CPU16は、ステップS110において、演奏データMDR−kの第3トラックTR−3にイベントEVON(125)、EVON(124)、及びEVON(123)のいずれも書き込まれていないと判定した場合(S110:No)、第2のマーキング処理を行う(S111)。第2のマーキング処理では、CPU16は、演奏データMDR−kの第1トラックTR−1の各イベントEVON(♯)のうちの最後のイベントEVON(♯)の音を演奏区間R−k内のメロディの最後の音とみなす。そして、この最後の音が次の2つの条件を満たすか否かを判定する。
a5.音の音名がハ長調の基音(ド)であること
b5.音の音長が閾値TH4以上であること
【0019】
CPU16は、2つの条件a5及びb5の両方を満たす場合、演奏データMDR−kが曲の最後の部分に相応しいメロディを含んでいるとみなす。この場合、CPU16は、演奏データMDR−kの第3トラックTR−3の先頭にイベントEVON(125)を追記する。
【0020】
また、CPU16は、条件a5及びb5のうち少なくとも一方が満たされない場合、演奏データMDR−kが、曲の最初の部分と、最初と最後の何れでもない部分(中間部分)に相応しいメロディを含んでいるとみなす。この場合、CPU16は、演奏データMDR−kの第3トラックTR−3の先頭にイベントEVON(124)及びイベントEVON(123)を追記する。
【0021】
CPU16は、ステップS110において、演奏データMDR−kの第3トラックTR−3にイベントEVON(125)、EVON(124)、及びEVON(123)のいずれかが書き込まれていると判定した場合(S110:Yes)、ステップS111を実行することなく次のステップS112に進む。ステップS112では、第5の判定処理を行う。この第5の判定処理では、CPU16は、設定項目c3において「移調あり」が設定されているか否かを判定する。CPU16は、「移調あり」が設定されている場合(S112:Yes)、移調処理を行う(S113)。移調処理では、演奏データMDR−k(ステップS107が実行されている場合は、演奏データMDR−k及びMDRA−k)からそのメロディをハ長調と異なる調に移調した演奏データMDを生成する。
【0022】
より詳細に説明すると、CPU16は、演奏データMDR−kの第1トラックTR−1の各イベントEVON(♯)のノートナンバを短2度高いものに書き換えた演奏データMDR1−kを生成する。また、演奏データMDR−kの第1トラックTR−1の各イベントEVON(♯)のノートナンバを長2度高いものに書き換えた演奏データMDR2−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを短3度高いものに書き換えた演奏データMDR3−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを長3度高いものに書き換えた演奏データMDR4−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを4度高いものに書き換えた演奏データMDR5−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを増4度高いものに書き換えた演奏データMDR6−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを5度高いものに書き換えた演奏データMDR7−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを増5度高いものに書き換えた演奏データMDR8−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを長6度高いものに書き換えた演奏データMDR9−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを短7度高いものに書き換えた演奏データMDR10−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを長7度高いものに書き換えた演奏データMDR11−kを生成する。ここで、以下では、ハ長調の演奏データMDR−kとハ長調以外の演奏データMDR1−k、MDR2−k、MDR3−k、MDR4−k、MDR5−k、MDR6−k、MDR7−k、MDR8−k、MDR9−k、MDR10−k、MDR11−kを区別しない場合は、演奏データMDR−kと記す。
【0023】
CPU16は、「移調なし」が設定されている場合(S112:No)、ステップS113に実行することなく、ステップS114に進む。ステップS114では、変数kと曲演奏データSMDの分割数Zが同じであるかを判定する。CPU16は、k<Zである場合(S114:No)、ステップS115に進んで変数kをk=k+1にした後、ステップS103以降の処理を繰り返す。CPU16は、k=Zである場合(S114:Yes)、それまでに生成した演奏データMDR−k、MDR1−k、MDR2−k、MDR3−k、MDR4−k、MDR5−k、MDR6−k、MDR7−k、MDR8−k、MDR9−k、MDR10−k、MDR11−k、MDRA−k、MDRA1−k、MDRA2−k、MDRA3−k、MDRA4−k、MDRA5−k、MDRA6−k、MDRA7−k、MDRA8−k、MDRA9−k、MDRA10−k、MDRA11−kの各々を演奏データMDとして素材データベースMDBに記憶する(S116)。
【0024】
図6は、編集処理を示すフローチャートである。図6に示す一連の処理は編集機能の働きによって実行される処理である。図6に示す一連の処理は、操作部12によって演奏データMDの編集が指示されると開始される。図6に示す一連の処理の実行にあたり、利用者は、以下の項目を操作部12により設定し、その設定値をRAM17に記憶させる。
a6.コード進行
この項目では、曲の8小節分のコード進行における第1〜第8小節の各コードのコードネームCN1〜CN8を設定する。
【0025】
図6において、CPU16は、演奏データ取得処理を行う(S201)。演奏データ取得処理では、CPU16は、曲の第1〜第2小節のメロディの素材とする演奏データMD1〜2、第3〜第4小節のメロディの素材とする演奏データMD3〜4、第5〜第6小節のメロディの素材とする演奏データMD5〜6、及び第7〜第8小節のメロディの素材とする演奏データMD7〜8を素材データベースMDB内の複数の演奏データMDの中から探索し、各々の探索結果をRAM17に読み出す。より具体的には、CPU16は、次の4つのデータ探索処理を行う。
【0026】
第1のデータ探索処理では、CPU16は、素材データベースMDB内の全演奏データMDのうち第3トラックTR−3にイベントEVON(123)が埋め込まれているものを演奏データMD1〜2の候補とし、演奏データMD1〜2の候補である各演奏データMDと設定項目a5におけるコードネームCN1及びCN2の和音との適合度を示す評価ポイントPを算出する。評価ポイントPの算出の手順は次の通りである。図7に示すように、評価ポイントPの算出対象がアウフタクトを含まない演奏データMD(演奏データMDR−k、MDR1−k、MDR2−k、MDR3−k、MDR4−k、MDR5−k、MDR6−k、MDR7−k、MDR8−k、MDR9−k、MDR10−k、MDR11−kの何れか)である場合、CPU16は、当該演奏データMDの第1トラックTR−1の2小節分のイベントEVON(♯)を評価対象とする。そして、評価対象である2つの小節のイベントEVON(♯)の各々の音長(ティック数)の合計値SUMTCKを求める。次に、評価対象の最初の1小節のイベントEVON(♯)が示す各音の音名が、コードネームCN1と対応するコードの各音(図7の例では、CN1=Cなので、ド、ミ、ソの3音)、及びこのコードと根音を共通にする5音音階(ペンタトニック)の各音(図7の例では、CN1=Cなので、ド、レ、ミ、ソ、ラの5音)に該当するかを判定し、コードの各音と一致する音の音長(ティック数)に5ポイント、コードの各音と一致しないが5音音階の各音と一致する音の音長(ティック数)に3ポイント、それ以外の音の音長(ティック数)に1ポイントを各々乗算する。次に、評価対象の2番目の1小節のイベントEVON(♯)が示す各音の音名が、コードネームCN2の和音(図7の例では、CN2=Fなので、ファ、ラ、ドの3音)、及びこのコードと根音を共通にする5音音階(ペンタトニック)の各音(図7の例では、CN2=Fなので、ファ、ソ、ラ、ド、レの5音)に該当するかを判定し、コードの各音と一致する音の音長(ティック数)に5ポイント、コードの各音と一致しないが5音音階の各音と一致する音の音長(ティック数)に3ポイント、それ以外の音の音長(ティック数)に1ポイントを各々乗算する。その上で、2つの小節のイベントEVON(♯)の各々における音長(ティック数)に該当のポイントを乗じた値の合計値SUMPNTを求める。そして、合計値SUMPNTで合計値SUMTCKを除算した値SUMPNT/SUMTCKを当該演奏データMDの評価ポイントPとする。
【0027】
また、図8に示すように、評価ポイントPの算出対象がアウフタクトを含む演奏データMD(MDRA−k、MDRA1−k、MDRA2−k、MDRA3−k、MDRA4−k、MDRA5−k、MDRA6−k、MDRA7−k、MDRA8−k、MDRA9−k、MDRA10−k、MDRA11−kのいずれか)である場合、CPU16は、当該演奏データMDの第1トラックTR−1におけるアウフタクトの終端以降の2小節分のイベントEVON(♯)を評価対象とする。そして、評価対象である2つの小節のイベントEVON(♯)の各々の音長(ティック数)の合計値SUMTCKを求める。次に、評価対象の最初の1小節のイベントEVON(♯)が示す各音の音名が、コードネームCN1と対応するコードの各音(図8の例では、CN1=Cなので、ド、ミ、ソの3音)、及びこのコードと根音を共通にする5音音階(ペンタトニック)の各音(図8の例では、CN1=Cなので、ド、レ、ミ、ソ、ラの5音)に該当するかを判定し、コードの各音と一致する音の音長(ティック数)に5ポイント、コードの各音と一致しないが5音音階の各音と一致する音の音長(ティック数)に3ポイント、それ以外の音の音長(ティック数)に1ポイントを各々乗算する。次に、評価対象の2番目の1小節のイベントEVON(♯)が示す各音の音名が、コードネームCN2の和音(図8の例では、CN2=Fなので、ファ、ラ、ドの3音)、及びこのコードと根音を共通にする5音音階(ペンタトニック)の各音(図8の例では、CN2=Fなので、ファ、ソ、ラ、ド、レの5音)に該当するかを判定し、コードの各音と一致する音の音長(ティック数)に5ポイント、コードの各音と一致しないが5音音階の各音と一致する音の音長(ティック数)に3ポイント、それ以外の音の音長(ティック数)に1ポイントを各々乗算する。その上で、2つの小節のイベントEVON(♯)の各々における音長(ティック数)に該当のポイントを乗じた値の合計値SUMPNTを求める。そして、合計値SUMPNTで合計値SUMTCKを除算した値SUMPNT/SUMTCKを当該演奏データMDの評価ポイントPとする。
【0028】
CPU16は、第1のデータ探索処理では、イベントEVON(123)が埋め込まれている演奏データMDの全てについて評価ポイントPを求めた後、評価ポイントPが最も高いものを演奏データMD1〜2としてRAM17に記憶する。
【0029】
第2のデータ探索処理では、CPU16は、素材データベースMDB内の全演奏データMDのうち第3トラックTR−3にイベントEVON(124)が埋め込まれているものを演奏データMD3〜4の候補とし、演奏データMD3〜4の候補である各演奏データMDと設定項目a5におけるコードネームCN3及びCN4の和音との適合度を評価ポイントPに換算し、評価ポイントPが最も高いものを演奏データMD3〜4としてRAM17に記憶する。
【0030】
第3のデータ探索処理では、CPU16は、素材データベースMDB内の全演奏データMDのうち第3トラックTR−3にイベントEVON(124)が埋め込まれているものを演奏データMD5〜6の候補とし、演奏データMD5〜6の候補である各演奏データMDと設定項目a5におけるコードネームCN5及びCN6の和音との適合度を評価ポイントPに換算し、評価ポイントPが最も高いものを演奏データMD5〜6としてRAM17に記憶する。
【0031】
第4のデータ探索処理では、CPU16は、素材データベースMDB内の全演奏データMDのうち第3トラックTR−3にイベントEVON(125)が埋め込まれているものを演奏データMD7〜8の候補とし、演奏データMD7〜8の候補である各演奏データMDと設定項目a5におけるコードネームCN7及びCN8の和音との適合度を評価ポイントPに換算し、評価ポイントPが最も高いものを演奏データMD7〜8としてRAM17に記憶する。
【0032】
図6において、CPU16は、第1の配列処理を行う(S202)。第1の配列処理では、CPU16は、演奏データMD5〜6の後に演奏データMD7〜8を配列して曲の第5〜第8小節の4小節分のイベントEVON(♯)及びEVOFF(♯)を含む演奏データMD5〜8を生成する。より詳細に説明すると、CPU16は、配列順が相前後する2つの演奏データMD5〜6及びMD7〜8のうち後の演奏データMD7〜8の種類がアウフタクトのない演奏データMDである場合とアウフタクトのある演奏データMDである場合の各々において次のような処理を行う。
【0033】
a7.演奏データMD7〜8がアウフタクトのない演奏データMDである場合
この場合、CPU16は、演奏データMD5〜6の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD7〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを演奏データMD5〜8とする。
【0034】
b7.演奏データMD7〜8がアウフタクトのある演奏データMDである場合
この場合、CPU16は、演奏データMD5〜6に対して、演奏データMD5〜6の各イベントEVON(♯)及びEVOFF(♯)が示す各音からなるメロディの終端を配列順が後の演奏データMD7〜8の各イベントEVON(♯)及びEVOFF(♯)が示す音からなるメロディの中のアウフタクトの分だけ短くする書き換え処理を施す。その上で、書き換え処理を経た演奏データMD’5〜6の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD7〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを演奏データMD5〜8とする。書き換え処理の詳細な手順は次の通りである。この書き換え処理では、まず、演奏データMD7〜8の第1トラックTR−1の各イベントEVON(♯)及びEVOFF(♯)が示す音からなるメロディの中のアウフタクトの演奏区間をアウフタクト演奏区間RAとし、演奏データMD5〜6の第1トラックTR−1のイベントEVON(♯)及びEVOFF(♯)が示す音からなるメロディの演奏区間R5〜6の終端よりもアウフタクト演奏区間RAの分だけ前の時刻を基準時刻tBASISとする(図9)。
【0035】
次に、演奏データMD5〜6の第2トラックTR−2における一連のイベントEVON(126)の中から基準時刻tBASISに先行し且つ基準時刻tBASISに最も近い時刻を実行時刻tとするイベントEVOFF(126)を選択する(図10)。次に、演奏データMD5〜6の各トラックTR−jにおけるこの選択したイベントEVOFF(126)よりも後のイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを消去する(図11)。次に、演奏データMD5〜6の第1トラックTR−1における消去されずに残ったイベントEVON(♯)及びEVOFF(♯)のうち最後のイベントEVOFF(♯)を選択し、この選択したイベントEVOFF(♯)が示す音の消音時刻が基準時刻tBASISと一致するように当該イベントEVOFF(♯)の実行時刻tを示すデルタタイムΔTh(すなわち、当該イベントEVOFF(♯)の前のデルタタイムΔTh)を書き換えたものを演奏データMD’5〜6とする(図12)。後の演奏データMD7〜8がアウフタクトのある演奏データMDである場合、以上の処理を経て得られた演奏データMD’5〜6の各トラックTR−jの後に演奏データMD7〜8の各トラックTR−jを繋げたものを演奏データMD5〜8とする(図13)。
【0036】
図6において、CPU16は、第2の配列処理を行う(S203)。第2の配列処理では、CPU16は、演奏データMD3〜4の後に演奏データMD5〜8を配列して曲の第3〜第8小節の6小節分のイベントEVON(♯)及びEVOFF(♯)を含む演奏データMD3〜8を生成する。この第2の配列処理では、配列順が相前後する2つの演奏データMD3〜4及びMD5〜8のうち演奏データMD5〜8の種類がアウフタクトのない演奏データMDである場合は、演奏データMD3〜4の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD5〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを演奏データMD3〜8とする。また、演奏データMD5〜8の種類がアウフタクトのある演奏データMDである場合は、演奏データMD3〜4に対して上述した書き換え処理を施す。その上で、書き換え処理を経た演奏データMD’3〜4の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD5〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを演奏データMD3〜8とする。
【0037】
次に、CPU16は、第3の配列処理を行う(S204)。第3の配列処理では、CPU16は、演奏データMD1〜2の後に演奏データMD3〜8を配列して1曲分(第1〜第8小節の8小節分)の曲演奏データEMDを生成する。第3の配列処理では、配列順が相前後する2つの演奏データMD1〜2及びMD3〜8のうち演奏データMD3〜8の種類がアウフタクトのない演奏データMDである場合は、演奏データMD1〜2の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD3〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを曲演奏データEMDとする。また、演奏データMD3〜8の種類がアウフタクトのある演奏データMDである場合は、演奏データMD1〜2に対して上述した書き換え処理を施す。その上で、書き換え処理を経た演奏データMD’1〜2の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD3〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを曲演奏データEMDとする。
【0038】
次に、CPU16は、第1〜第3の配列処理により得られた1曲分の曲演奏データEMDを楽曲データベースBDBに記憶する(S205)。
【0039】
図14は、歌唱合成処理を示すフローチャートである。図14に示す一連の処理は歌唱合成機能の働きによって実行される処理である。図14に示す一連の処理は、操作部12によって歌唱音声の発生が指示されると開始される。図14に示す一連の処理の実行にあたり、利用者は、歌唱曲のメロディに乗せる歌詞をひらがな文字の文字列として入力する。
【0040】
図14において、CPU16は、歌詞として入力された文字列を一連の音声素片に変換する(S301)。CPU16は、ステップS301で得られた音声素片の各々と対応する音声素片データPDを音声素片データベースPDBからRAM17に読み出す(S302)。CPU16は、このRAM17内の音声素片データPDを接続することにより、歌詞として入力された文字列と対応する音声信号を生成する(S303)。CPU16は、楽曲データベースBDBに記憶された曲演奏データEMDの1つをRAM17に読み出す(S304)。CPU16は、ステップS304で生成した音声信号のピッチを曲演奏データEMDのメロディに合わせるためのピッチ変換処理を施す(S305)。CPU16は、このピッチ変換処理を施した音声信号を放音部14から音として放音させる(S306)。この歌唱合成処理の各ステップの詳細な内容については、特許文献2を参照されたい。
【0041】
以上が、本実施形態の詳細である。本実施形態によると、次の効果が得られる。
第1に、本実施形態では、編集処理において、演奏データMDの後にアウフタクトのある演奏データMDを配列する場合、配列順が前の演奏データMDに対して書き換え処理を施し、書き換え処理を経た演奏データMDの後に該当の演奏データMDを配列する。よって、データベースMDBに収録された複数個の演奏データMDを用いてバリエーションの豊かな楽曲を創作できる。
【0042】
第2に、本実施形態では、データ蓄積処理において、ハ長調の演奏データMDに移調処理を施すことによりハ長調以外の調の演奏データMDを生成し、これらの演奏データMDを元のハ長調の演奏データMDとともに素材データベースMDBに記憶する。よって、本実施形態によると、異なる調のメロディを組み合わせて多様な楽曲を創作することができる。
【0043】
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態があり得る。例えば、以下の通りである。
(1)上記実施形態において、編集処理により得られた1曲分の曲演奏データEMDを楽曲の音信号として放音部14から放音させるようにしてもよい。
【0044】
(2)上記実施形態では、4つの演奏データMDを配列して1曲分の曲演奏データEMDを生成した。しかし、2〜3つの演奏データMDや5つ以上の演奏データMDを配列して1曲分の曲演奏データEMDを生成してもよい。また、演奏データMDにおける演奏区間の長さは2小節分である必要はなく、1小節分の長さにしてもよいし、3小節分以上の長さにしてもよい。
【0045】
(3)上記実施形態における第1のマーキング処理では、演奏区間R−i内のメロディの区切り位置を決定した後、第1トラックTR−jにおける区切り位置の直前のイベントEVOFF(♯)を選択し、この選択したイベントEVOFF(♯)と第2トラックにおけるイベントEVON(126)の実行時刻tが同時刻になるように当該イベントEVON(126)の前後のデルタタイムΔTを書き換えた。しかし、第1トラックTR−jにおける区切り位置の直後のイベントEVON(♯)(すなわち、閾値TH3以上の長さの休符の直後の音の発音を指示するイベントEVON(♯))を選択し、この選択したイベントEVON(♯)と第2トラックにおけるイベントEVON(126)の実行時刻tが同時刻になるように当該イベントEVON(126)の前後のデルタタイムΔTを書き換えてもよい。
【0046】
(4)上記実施形態では、第1トラックTR−jにおける演奏の区切り位置の直前のイベントEVOFF(♯)のマークであるイベントEVON(126)を第2トラックTR−jに記述した。しかし、第1トラックTR−jにおける演奏の区切り位置の直前のイベントEVOFF(♯)のマークとなるイベントを第1トラックTR−jに記述してもよい。例えば、所定種類のコントロールチェンジイベントを演奏の区切り位置の直前のイベントEVOFF(♯)のマークにし、第1トラックTR−jにおける演奏の区切り位置の直前のイベントEVOFF(♯)とこのコントロールチェンジイベントを連続して記述してもよい。
【0047】
(5)上記実施形態における書き換え処理では、相前後する2つの演奏データMDのうち配列順が前のものの第2トラックTR−2における一連のイベントEVON(126)の中から基準時刻tBASISに先行し且つ基準時刻tBASISに最も近い時刻を実行時刻tとするイベントEVOFF(126)を選択し、当該演奏データMDの各トラックTR−jにおけるこの選択したイベントEVOFF(126)よりも後のイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを消去した。しかし、第2トラックTR−2にイベントEVON(126)が1つも記されていない場合もあり得る。この場合、CPU16は、配列順が前の演奏データMDの第1トラックTR−1における一連のイベントEVON(♯)及びEVOFF(♯)の中から基準時刻tBASISの後のイベントEVOFF(♯)であって基準時刻tBASISに最も近い時刻を実行時刻tとするイベントEVOFF(♯)を選択し、当該演奏データMDの各トラックTR−jにおけるこの選択したイベントEVOFF(♯)よりも後のイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを消去するとよい。
【0048】
(6)上記実施形態では、曲演奏データSMDやこれを分割して得られる演奏データMDは、ノートオンイベントEVON(♯)、ノートオフイベントEVOFF(♯)、及びデルタタイムΔThをL個のトラックTR−j(j=1〜L)に分けて並べたものであった。しかし、曲演奏データSMDやこれを分割して得られる演奏データMDを別のデータフォーマットのものにしてもよい。例えば、演奏データSMD及びMDを、該当するトラックのトラック番号、音源の発音チャネル、イベントの実行時刻を示すタイミングデータ、イベントの種類、及びイベントのパラメータからなるレコードを時系列順に並べた形式(イベントリスト形式)にしてもよい。また、演奏データSMD及びMDを、イベントの種類とそのパラメータのみからなるレコードを時系列順に並べた形式にしてもよい。また、演奏データSMD及びMDを、ピアノロール形式やスコアロール形式にしてもよい。
【0049】
(7)上記実施形態では、ノートナンバ126のイベントEVON(126)を曲演奏データSMD内における演奏の区切り位置を示すマークとし、ノートナンバ125のイベントEVON(125)を歌唱曲の最後の部分のメロディに相応しい演奏区間を示すマークとし、ノートナンバ124のイベントEVON(124)を歌唱曲の最初の部分のメロディに相応しい演奏区間を示すマークとし、ノートナンバ123のイベントEVON(123)を歌唱曲の最初でも最後でもない部分のメロディに相応しい演奏区間を示すマークとした。しかし、演奏の区切り位置や歌唱曲の各部分のメロディに相応しい演奏区間を示すマークとして、別の種類のデータを採用してもよい。また、このマークとしての役割を果たすデータはMIDIにおいてサポートされていない形式のデータであってもよい。
【0050】
(8)上記実施形態の移調処理では、ハ長調の演奏データMDR−k内の各イベントEVON(♯)のノートナンバを半音ずつ高いものに置き換えてハ長調と異なる11種類の演奏データMDR1−k、MDR2−k、MDR3−k、MDR4−k、MDR5−k、MDR6−k、MDR7−k、MDR8−k、MDR9−k、MDR10−k、MDR11−kを生成した。しかし、操作部12の操作により、調の種類を設定し、設定された種類の調の演奏データMD−kだけを生成するようにしてもよい。また、移調処理後に、11種類の演奏データMDR1−k、MDR2−k、MDR3−k、MDR4−k、MDR5−k、MDR6−k、MDR7−k、MDR8−k、MDR9−k、MDR10−k、MDR11−kに対して各々の譜面における調音記号を取り除く処理を施し、ハ長調のメロディを示す演奏データMDへとデータ内容を修正してもよい。
【0051】
(9)上記実施形態のアウフタクト生成処理において、CPU16は、演奏データMDRA−kを次のようにして生成してもよい。まず、演奏データMDR−kの複製を生成する。次に、この複製である演奏データMDR−kにおける演奏区間R−kの始点を時刻t0とし、この時刻t0と1/h(例えば、h=2)小節分だけ後の時刻tBとの間の演奏区間RB内のイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔTを複製する。そして、この複製であるイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔTを元の演奏データMDR−kの各トラックTR−jの前に追記したものを演奏データMDRA−kとする。
【0052】
(10)上記実施形態の演奏データ取得処理では、評価対象である一連のイベントEVON(♯)を、コードネームCN1及びCN2のコードと一致するもの、コードとは一致しないが5音音階の音と一致するもの、コード及び5音音階の何れの音とも一致しないものの3種類に分類し、各イベントEVON(♯)の音長(ティック数)に各々の種類に応じたポイントを乗算した。しかし、評価対象である一連のイベントEVON(♯)を、コードネームCN1及びCN2のコードと一致するもの、コードとは一致しないが5音音階の音と一致するもの、コード及び5音音階の何れの音とも一致しないいがそれ以外のハ長調音階の音と一致するもの、コード、5音音階、ハ長調音階の何れの音とも一致しないものの4種類に分類し、各イベントEVON(♯)の音長(ティック数)に各々の種類に応じたポイントを乗算してもよい。この場合において、3番目の種類(コード及び5音音階の何れの音とも一致しないいがそれ以外のハ長調音階の音と一致するもの)に該当する場合に1ポイントを乗算し、4番目の種類(コード及び5音音階の何れの音とも一致しないいがそれ以外のハ長調音階の音と一致するもの)に該当する場合にはポイントを乗算しないようにするとよい。
【0053】
(11)上記実施形態のアウフタクト生成処理では、相前後する演奏データMDRA−i及びMDRA−(i+1)がオーバーラップ部分を有するように各演奏データMDRA−i内に含めるイベントEVON(♯)及びEVOFF(♯)とデルタタイムΔThの切り出し位置を決定した。しかし、例えば、曲演奏データSMDにおける演奏区間R−1〜R−3内のイベントEVON(♯)、EVOFF(♯)、デルタタイムΔThを演奏データMDRA−1とし、演奏区間R−4〜R−6内のイベントEVON(♯)、EVOFF(♯)、デルタタイムΔThを演奏データMDRA−2とし…というように、相前後する演奏データMDRA−i及びMDRA−(i+1)がオーバーラップ部分を持たないように各演奏データMDRA−i内に含めるイベントEVON(♯)及びEVOFF(♯)とデルタタイムΔThの切り出し位置を決定してもよい。
【0054】
(12)上記実施形態では、曲演奏データSMD及びMDは、ある決まった時間長分の音の並びであるメロディにおける各音の発音内容を示すデータの配列であった。しかし、曲演奏データSMD及びMDを、ある決まった時間長分のハーモニーやリズムを決定づける音の並びにおける各音の発音内容を示すデータの配列としてもよい。
【0055】
(13)上記実施形態における第1〜第4の配列処理では、処理対象である2つの演奏データMD(例えば、演奏データMD5〜6及びMD7〜8とする)について、配列順が前の演奏データMD5〜6の第1トラックTR−1における消去されずに残ったイベントEVON(♯)及びEVOFF(♯)のうち最後のイベントEVOFF(♯)を選択し、この選択したイベントEVOFF(♯)が示す音の消音時刻が基準時刻tBASISと一致するように当該イベントEVOFF(♯)の実行時刻tを示すデルタタイムΔThを書き換えた。しかし、配列順が前の演奏データMD5〜6の第1トラックTR−1における消去されずに残ったイベントイベントEVOFF(♯)が示す音の消音時刻と基準時刻tBASISとの差が所定値未満になるように当該イベントEVOFF(♯)の実行時刻tを示すデルタタイムΔThを書き換えてもよい。要するに、第1〜第4の配列処理では、配列順が前の演奏データMDに対して、当該演奏データMDの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする処理が実行されればよい。
【符号の説明】
【0056】
10…曲編集装置、11…データ読込部、12…操作部、13…表示部、14…放音部,15…制御部、16…CPU、17…RAM、18…ROM、19…ハードディスク。
【技術分野】
【0001】
本発明は、複数個の演奏データを組み合わせて1曲分の演奏データを生成する技術に関する。
【背景技術】
【0002】
様々なメロディを示す演奏データを集めてデータベース化し、この中から利用者が選んだデータを合成して1曲分の曲データを生成する技術が各種提案されている。この種の技術に関する文献として、特許文献1がある。同文献に開示された自動編曲装置は、楽曲のメロディを示すデータが供給された場合に、そのデータが示すメロディを複数の区間に分割し、分割された各区間の音の起伏の度合いを示す起伏度数を算出する。そして、各区間の起伏度数に応じて各区間のメロディに割り当てる伴奏を決定し、各区間のメロディと伴奏を時間軸上において繋げた1曲分の曲データを生成する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第2806351号公報
【特許文献2】特開2007−240564号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、従来のこの種の技術では、データベースに収録される演奏データが1曲分の演奏データを1小節や2小節などの比較的短い単位で分割したものである場合があった。この場合、データベース内の演奏データを組合せてできる曲は似通ったものになってしまい、バリエーションの豊かな曲創作の環境を提供できないという問題があった。
本発明は、このような課題に鑑みてなされたものであり、データベースに収録された複数個の演奏データを用いてバリエーションの豊かな楽曲を創作できるようにすることを目的とする。
【課題を解決するための手段】
【0005】
本発明は、M(Mは1以上の整数)小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第1の種類の演奏データと、アウフタクトとそれに続くM小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第2の種類の演奏データとを記憶した記憶手段と、前記記憶手段から複数個の演奏データを取得して配列する編集手段であって、前記第1または第2の種類の演奏データの後に前記第2の種類の演奏データを配列する場合に、配列順が前の演奏データに対して、当該演奏データの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする書き換え処理を施し、この書き換え処理を経た演奏データの後に該当の演奏データを配列する編集手段とを具備する曲編集装置を提供する。
【0006】
この発明において、M小節分の演奏区間の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む演奏データに対して、当該演奏データの各イベントのうち閾値よりも長い休符を経て発音される音のイベントに音の並びの区切りの位置に該当することを示すマークを付加する処理を施し、この処理を経た演奏データを第1の種類の演奏データとして前記記憶手段に記憶するとともに、M小節よりも長い演奏区間の各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む演奏データに対して、当該演奏データの各イベントのうち閾値よりも長い休符を経て発音される音のイベントに前記マークを付加する処理を施し、この処理を経た演奏データを第2の種類の演奏データとして前記記憶手段に記憶する手段を具備してもよい。
【図面の簡単な説明】
【0007】
【図1】この発明の一実施形態である曲編集装置を示すブロック図である。
【図2】同装置のハードディスク内の演奏データのデータ構造の一例を示す図である。
【図3】同装置が実行するデータ蓄積処理を示すフローチャートである。
【図4】同装置が実行する分割処理の内容を示す図である。
【図5】同装置が実行するアウフタクト生成処理の内容を示す図である。
【図6】同装置が実行する編集処理を示すフローチャートである。
【図7】同装置が実行する評価ポイント算出処理の内容を示す図である。
【図8】同装置が実行する評価ポイント算出処理の内容を示す図である。
【図9】同装置が実行する書き換え処理の内容を示す図である。
【図10】同装置が実行する書き換え処理の内容を示す図である。
【図11】同装置が実行する書き換え処理の内容を示す図である。
【図12】同装置が実行する書き換え処理の内容を示す図である。
【図13】同装置が実行する書き換え処理の内容を示す図である。
【図14】同装置が実行する歌唱合成処理を示すフローチャートである。
【発明を実施するための形態】
【0008】
以下、図面を参照し、この発明の実施の形態を説明する。
図1は、この発明の一実施形態である曲編集装置10の構成を示すブロック図である。この曲編集装置10は、様々な創作者がMIDI(Musical Instrument Digital Interface)シーケンサを用いて作成した曲演奏データSMDから、音の並びであるメロディの素材となる複数種類の演奏データMDを生成して当該装置10に蓄積するとともに、当該装置10内に蓄積された複数個の演奏データMDの中から選んだものを組み合わせて1曲分の曲演奏データEMDを生成し、この曲演奏データEMDのメロディと同じメロディを持った歌唱音声の音声信号を出力する。
【0009】
図1に示すように、曲編集装置10は、データ読込部11、操作部12、表示部13、放音部14、及び制御部15を有する。データ読込部11は、記憶媒体が装着された場合に、その媒体内の曲演奏データSMDを読み出して制御部15に供給する。図2は、曲演奏データSMDのデータ構造の一例を示す図である。曲演奏データSMDは、音の発音内容を示すノートオンイベントEVON(♯)(♯はノートナンバを示す)及びノートオフイベントEVOFF(♯)と、各イベントEVON(♯)(またはEVOFF(♯))の実行時刻tを各々の前のイベントEVOFF(♯)(またはEVON(♯))の実行時刻tとの時間差(ティック数)として示すタイミングデータであるデルタタイムΔTh(h=1、2…)(hは、配列順を示すインデックスである)とをL個のトラックTR−j(j=1〜L)に分けて並べたものである。ここで、本実施形態では、各創作者は、1つの楽曲の曲演奏データSMDを次のルールa1〜f1に従って作成する。
a1.曲演奏データ化する楽曲はハ長調のものとする。
b1.曲演奏データ化する楽曲の最初の音から最後の音までの各音の発音及び消音を指示するイベントEVON(♯)及びEVOFF(♯)とその実行時刻tを示すデルタタイムΔThを曲演奏データSMD内の第1トラックTR−1に記述する。
c1.曲演奏データ化する楽曲の中に演奏の区切り位置がある場合は、トラックTR−1における区切り位置の直前のイベントEVON(♯)のマークとしての役割を果たすイベント(例えば、ノートナンバ126のイベントEVON(126)とする)とその実行時刻t(区切り位置の直前のイベントEVON(♯)のものと同じ実行時刻t)を示すデルタタイムΔThを曲演奏データSMD内の第2トラックTR−2に記述する。
d1.曲演奏データ化する楽曲の中に歌唱曲の最後のメロディに相応しい演奏区間がある場合は、そのことを示すマークとしての役割を果たすイベント(例えば、ノートナンバ125のイベントEVON(125)とする)とこのイベントEVON(125)の実行時刻t(該当の演奏区間の始点の時刻)を示すデルタタイムΔThを曲演奏データSMD内の第3トラックTR−3に記述する。
e1.曲演奏データ化する楽曲の中に歌唱曲の最初のメロディに相応しい演奏区間がある場合は、そのことを示すマークとしての役割を果たすイベント(例えば、ノートナンバ124のイベントEVON(124)とする)とこのイベントEVON(124)の実行時刻t(該当の演奏区間の始点の時刻)を示すデルタタイムΔThを曲演奏データSMD内の第3トラックTR−3に記述する。
f1.曲演奏データ化する楽曲の中に歌唱曲の最初と最後の何れでもない部分(中間部分)のメロディに相応しい演奏区間がある場合は、そのことを示すマークとしての役割を果たすイベント(例えば、ノートナンバ123のイベントEVON(123)とする)とこのイベントEVON(123)の実行時刻t(該当の演奏区間の始点の時刻)を示すデルタタイムΔThを曲演奏データSMD内の第3トラックTR−3に記述する。
【0010】
図1において、操作部12は、各種情報の入力操作を受け付け、操作内容を示す信号を制御部15に供給する。表示部13は、制御部15による制御の下に各種情報を表示する。放音部14は、制御部15から出力される音信号を音として出力する。制御部15は、曲編集装置10の制御中枢としての役割を果たす装置である。制御部15は、CPU16、RAM17、ROM18、及びハードディスク19を有する。CPU16は、RAM17をワークエリアとして利用しつつ、ROM18やハードディスク19に記憶されたプログラムを実行する。ハードディスク19には、素材データベースMDB、楽曲データベースBDB、音声素片データベースPDB、及び曲編集プログラムPRGが記憶されている。素材データベースMDBには演奏データMDが記憶される。楽曲データベースBDBには曲演奏データEMDが記憶される。音声素片データベースPDBには音声素片データPDが記憶される。ここで、音声素片データPDは、単一の音素や音素間の遷移部分など、歌唱音声の素材となる各種の音声素片の波形を定義したデータである。曲編集プログラムPRGは、次の3つの機能を有する。
a2.データ蓄積機能
これは、データ読込部11から曲演奏データSMDが供給された場合に、この曲演奏データSMDから複数種類の演奏データMDを生成して素材データベースMDBに記憶する機能である。
b2.編集機能
これは、素材データベースMDBから4個の演奏データMDを取得し、取得した演奏データMDを配列して1曲分の曲演奏データEMDを生成する機能である。
c2.歌唱合成機能
これは、曲演奏データEMDのメロディと同じメロディを持った歌唱音声の音信号を合成し、この音信号を放音部14から放音させる機能である。
【0011】
次に、本実施形態の動作について説明する。本実施形態では、CPU16は、データ蓄積処理、編集処理、及び歌唱合成処理を実行する。以下、各処理について順に説明する。
【0012】
図3は、データ蓄積処理を示すフローチャートである。図3に示す一連の処理はデータ蓄積機能の働きによって実行される処理である。図3に示す一連の処理は、データ読込部11によって読み出された曲演奏データSMDがRAM17に書き込まれると開始される。図3に示す一連の処理の実行にあたり、利用者は、以下の3つの項目を操作部12により設定し、各々の設定値をRAM17に記憶させる。
a3.データ処理開始位置
この項目では、曲演奏データSMD内における演奏データMDの生成に用いる部分の先頭の小節位置Xを設定する。
b3.アウフタクト
この項目では、アウフタクトのない演奏データMDのみを得たい場合は「アウフタクトなし」と設定し、アウフタクトのない演奏データMD及びアウフタクトのある演奏データMDの両方を得たい場合は「アウフタクトあり」を設定する。
c3.移調
この項目では、演奏データMDと同じ調(ハ長調)の演奏データMDのみを得たい場合は「移調なし」と設定し、演奏データMDと同じ調及びこれと異なる調の演奏データMDを得たい場合は「移調あり」と設定する。
【0013】
図3において、CPU16は、分割処理を行う(S101)。この分割処理では、CPU16は、図4に示すように、RAM17内の曲演奏データSMDにおけるX小節目(図4の例では、X=2)以降の演奏区間をM(Mは1以上の整数:例えば、M=2とする)小節毎の演奏区間R−i(i=1〜Z:Zは分割した演奏区間の総数である)に分割し、各演奏区間R−i内のイベントEVON(♯),EVOFF(♯)、及びデルタタイムΔThを演奏データMDR−iとする。
【0014】
次に、CPU16は、変数kの値を初期値であるk=1とした後(S102)、ステップS101において分割した演奏データMDR−i(i=1〜Z)のうちk番目の演奏データMDR−kを処理対象として選択する(S103)。CPU16は、第1の判定処理を行う(S104)。この第1の判定処理では、CPU16は、演奏データMDR−kの第1トラックTR−1における各イベントEVON(♯)の後のデルタタイムΔThを演奏区間R−k内のメロディをなす各音の音長とし、演奏区間R−kが下記の2つの条件a4及びb4を満たすものであるか否かを判定する。
a4.当該演奏区間R−k内の各イベントEVON(♯)が示す音の中に音長が閾値TH1未満のものが1つ以上あること
b4.当該演奏区間R−k内の各イベントEVON(♯)が示す音の音長の総計が閾値TH2未満であること
【0015】
CPU16は、ステップS104において、処理対象とした演奏データMDR−kが上記条件a4及びb4の両方を満たすと判定した場合(S104:Yes)、その演奏データMDR−kを破棄する(S105)。ここで、演奏データMDR−kを破棄するのは、短か過ぎる音を含むメロディや音が僅かしか含まれていないメロディは歌唱曲のメロディとして利用し難いためである。CPU16は、ステップS105において、演奏データMDR−kを破棄した後、ステップS114に進む。このステップS114の処理の内容は後述する。
【0016】
CPU16は、ステップS104において、処理対象とした演奏データMDR−kが上記条件a4及びb4の両方または一方を満たさないと判定した場合(S104:No)、第2の判定処理を行う(S106)。この第2の判定処理では、CPU16は、設定項目b3において「アウフタクトあり」が設定されているかを判定する。CPU16は、「アウフタクトあり」が設定されている場合(S106:Yes)、アウフタクト生成処理を行う(S107)。アウフタクト生成処理は、曲演奏データSMDから、アウフタクトの各音とそれに続くM(M=2)小節分のメロディの各音を示す各イベントEVON(♯)及びEVOFF(♯)と各イベントEVON(♯)及びEVOFF(♯)の実行時刻を示すデルタタイムΔThとを含む演奏データMDRA−kを生成する処理である。アウフタクト生成処理では、CPU16は、曲演奏データSMDからM(M=2)小節分より長い演奏区間のイベントEVON(♯)及びEVOFF(♯)とデルタタイムΔThを切り出し、切り出したイベントEVON(♯)及びEVOFF(♯)とデルタタイムΔThを演奏データMDRA−kとする。より詳細に説明すると、図5に示すように、CPU16は、RAM17内の曲演奏データSMDの第2トラックTR−2における演奏区間R−1の1つ前の小節(図5の例では第1小節)内のイベントEVON(126)のうち演奏区間R−1に最も近いものの実行時刻tをアウフタクトの始点の時刻tSTRTとし、曲演奏データSMDのトラックTR−j(j=1〜L)における時刻tSTRTから演奏区間R−1の終端までの間の各イベントEVON(♯)及びEVOFF(♯)とデルタタイムΔThを1番目の演奏データMDRA−1とする。CPU16は、2番目の演奏データMDRA−2,3番目の演奏データMDRA−3…Z番目の演奏データMDRA−Zを同様の手順で生成する。
【0017】
CPU16は、「アウフタクトなし」が設定されている場合(S106:No)、ステップS107を実行することなく、次のステップS108に進む。CPU16は、ステップS108では、第3の判定処理を行う。この第3の判定処理では、CPU16は、演奏データMDR−k(ステップS107が実行されている場合は、演奏データMDR−k及びMDRA−k)の第2トラックTR−2にイベントEVON(126)が書き込まれているか否かを判定する。CPU16は、演奏データMDR−kの第2トラックTR−2にイベントEVON(126)が書き込まれていない場合(S108:No)、第1のマーキング処理を行う(S109)。第1のマーキング処理では、CPU16は、演奏データMDR−kの第1トラックTR−1における各イベントEVOFF(♯)の後のデルタタイムΔThを演奏区間R−k内のメロディをなす各音間の休符の長さとし、演奏区間R−k内に閾値TH3以上の長さの休符があるか否かを判定する。CPU16は、演奏区間R−k内のメロディをなす音の間に閾値TH3以上の長さの休符がある場合は、その休符を演奏の区切りの位置とみなす。この場合、CPU16は、演奏データMDR−kの第2トラックTR−2にイベントEVON(126)を追記するとともに、トラックTR−1における区切り位置の直前のイベントEVOFF(♯)を選択する。その上で、CPU16は、この選択したイベントEVOFF(♯)の実行時刻tと第2トラックTR−2に追記したイベントEVON(126)の実行時刻tが同時刻になるように第2トラックTR−2における追記したイベントEVON(126)の前後のデルタタイムΔThを書き換える。
【0018】
CPU16は、演奏データMDR−kの第2トラックTR−2に1つ以上のイベントEVON(126)が書き込まれている場合(S108:Yes)、ステップS109を実行することなく、次のステップS110に進む。CPU16は、ステップS110では、第4の判定処理を行う。この第4の判定処理では、CPU16は、演奏データMDR−k(ステップS107が実行されている場合は、演奏データMDR−k及びMDRA−k)の第3トラックTR−3にイベントEVON(125)、EVON(124)、またはEVON(123)が書き込まれているか否かを判定する。CPU16は、ステップS110において、演奏データMDR−kの第3トラックTR−3にイベントEVON(125)、EVON(124)、及びEVON(123)のいずれも書き込まれていないと判定した場合(S110:No)、第2のマーキング処理を行う(S111)。第2のマーキング処理では、CPU16は、演奏データMDR−kの第1トラックTR−1の各イベントEVON(♯)のうちの最後のイベントEVON(♯)の音を演奏区間R−k内のメロディの最後の音とみなす。そして、この最後の音が次の2つの条件を満たすか否かを判定する。
a5.音の音名がハ長調の基音(ド)であること
b5.音の音長が閾値TH4以上であること
【0019】
CPU16は、2つの条件a5及びb5の両方を満たす場合、演奏データMDR−kが曲の最後の部分に相応しいメロディを含んでいるとみなす。この場合、CPU16は、演奏データMDR−kの第3トラックTR−3の先頭にイベントEVON(125)を追記する。
【0020】
また、CPU16は、条件a5及びb5のうち少なくとも一方が満たされない場合、演奏データMDR−kが、曲の最初の部分と、最初と最後の何れでもない部分(中間部分)に相応しいメロディを含んでいるとみなす。この場合、CPU16は、演奏データMDR−kの第3トラックTR−3の先頭にイベントEVON(124)及びイベントEVON(123)を追記する。
【0021】
CPU16は、ステップS110において、演奏データMDR−kの第3トラックTR−3にイベントEVON(125)、EVON(124)、及びEVON(123)のいずれかが書き込まれていると判定した場合(S110:Yes)、ステップS111を実行することなく次のステップS112に進む。ステップS112では、第5の判定処理を行う。この第5の判定処理では、CPU16は、設定項目c3において「移調あり」が設定されているか否かを判定する。CPU16は、「移調あり」が設定されている場合(S112:Yes)、移調処理を行う(S113)。移調処理では、演奏データMDR−k(ステップS107が実行されている場合は、演奏データMDR−k及びMDRA−k)からそのメロディをハ長調と異なる調に移調した演奏データMDを生成する。
【0022】
より詳細に説明すると、CPU16は、演奏データMDR−kの第1トラックTR−1の各イベントEVON(♯)のノートナンバを短2度高いものに書き換えた演奏データMDR1−kを生成する。また、演奏データMDR−kの第1トラックTR−1の各イベントEVON(♯)のノートナンバを長2度高いものに書き換えた演奏データMDR2−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを短3度高いものに書き換えた演奏データMDR3−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを長3度高いものに書き換えた演奏データMDR4−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを4度高いものに書き換えた演奏データMDR5−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを増4度高いものに書き換えた演奏データMDR6−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを5度高いものに書き換えた演奏データMDR7−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを増5度高いものに書き換えた演奏データMDR8−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを長6度高いものに書き換えた演奏データMDR9−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを短7度高いものに書き換えた演奏データMDR10−kを生成する。また、演奏データMDR−kの第1トラックTR−1のイベントEVON(♯)のノートナンバを長7度高いものに書き換えた演奏データMDR11−kを生成する。ここで、以下では、ハ長調の演奏データMDR−kとハ長調以外の演奏データMDR1−k、MDR2−k、MDR3−k、MDR4−k、MDR5−k、MDR6−k、MDR7−k、MDR8−k、MDR9−k、MDR10−k、MDR11−kを区別しない場合は、演奏データMDR−kと記す。
【0023】
CPU16は、「移調なし」が設定されている場合(S112:No)、ステップS113に実行することなく、ステップS114に進む。ステップS114では、変数kと曲演奏データSMDの分割数Zが同じであるかを判定する。CPU16は、k<Zである場合(S114:No)、ステップS115に進んで変数kをk=k+1にした後、ステップS103以降の処理を繰り返す。CPU16は、k=Zである場合(S114:Yes)、それまでに生成した演奏データMDR−k、MDR1−k、MDR2−k、MDR3−k、MDR4−k、MDR5−k、MDR6−k、MDR7−k、MDR8−k、MDR9−k、MDR10−k、MDR11−k、MDRA−k、MDRA1−k、MDRA2−k、MDRA3−k、MDRA4−k、MDRA5−k、MDRA6−k、MDRA7−k、MDRA8−k、MDRA9−k、MDRA10−k、MDRA11−kの各々を演奏データMDとして素材データベースMDBに記憶する(S116)。
【0024】
図6は、編集処理を示すフローチャートである。図6に示す一連の処理は編集機能の働きによって実行される処理である。図6に示す一連の処理は、操作部12によって演奏データMDの編集が指示されると開始される。図6に示す一連の処理の実行にあたり、利用者は、以下の項目を操作部12により設定し、その設定値をRAM17に記憶させる。
a6.コード進行
この項目では、曲の8小節分のコード進行における第1〜第8小節の各コードのコードネームCN1〜CN8を設定する。
【0025】
図6において、CPU16は、演奏データ取得処理を行う(S201)。演奏データ取得処理では、CPU16は、曲の第1〜第2小節のメロディの素材とする演奏データMD1〜2、第3〜第4小節のメロディの素材とする演奏データMD3〜4、第5〜第6小節のメロディの素材とする演奏データMD5〜6、及び第7〜第8小節のメロディの素材とする演奏データMD7〜8を素材データベースMDB内の複数の演奏データMDの中から探索し、各々の探索結果をRAM17に読み出す。より具体的には、CPU16は、次の4つのデータ探索処理を行う。
【0026】
第1のデータ探索処理では、CPU16は、素材データベースMDB内の全演奏データMDのうち第3トラックTR−3にイベントEVON(123)が埋め込まれているものを演奏データMD1〜2の候補とし、演奏データMD1〜2の候補である各演奏データMDと設定項目a5におけるコードネームCN1及びCN2の和音との適合度を示す評価ポイントPを算出する。評価ポイントPの算出の手順は次の通りである。図7に示すように、評価ポイントPの算出対象がアウフタクトを含まない演奏データMD(演奏データMDR−k、MDR1−k、MDR2−k、MDR3−k、MDR4−k、MDR5−k、MDR6−k、MDR7−k、MDR8−k、MDR9−k、MDR10−k、MDR11−kの何れか)である場合、CPU16は、当該演奏データMDの第1トラックTR−1の2小節分のイベントEVON(♯)を評価対象とする。そして、評価対象である2つの小節のイベントEVON(♯)の各々の音長(ティック数)の合計値SUMTCKを求める。次に、評価対象の最初の1小節のイベントEVON(♯)が示す各音の音名が、コードネームCN1と対応するコードの各音(図7の例では、CN1=Cなので、ド、ミ、ソの3音)、及びこのコードと根音を共通にする5音音階(ペンタトニック)の各音(図7の例では、CN1=Cなので、ド、レ、ミ、ソ、ラの5音)に該当するかを判定し、コードの各音と一致する音の音長(ティック数)に5ポイント、コードの各音と一致しないが5音音階の各音と一致する音の音長(ティック数)に3ポイント、それ以外の音の音長(ティック数)に1ポイントを各々乗算する。次に、評価対象の2番目の1小節のイベントEVON(♯)が示す各音の音名が、コードネームCN2の和音(図7の例では、CN2=Fなので、ファ、ラ、ドの3音)、及びこのコードと根音を共通にする5音音階(ペンタトニック)の各音(図7の例では、CN2=Fなので、ファ、ソ、ラ、ド、レの5音)に該当するかを判定し、コードの各音と一致する音の音長(ティック数)に5ポイント、コードの各音と一致しないが5音音階の各音と一致する音の音長(ティック数)に3ポイント、それ以外の音の音長(ティック数)に1ポイントを各々乗算する。その上で、2つの小節のイベントEVON(♯)の各々における音長(ティック数)に該当のポイントを乗じた値の合計値SUMPNTを求める。そして、合計値SUMPNTで合計値SUMTCKを除算した値SUMPNT/SUMTCKを当該演奏データMDの評価ポイントPとする。
【0027】
また、図8に示すように、評価ポイントPの算出対象がアウフタクトを含む演奏データMD(MDRA−k、MDRA1−k、MDRA2−k、MDRA3−k、MDRA4−k、MDRA5−k、MDRA6−k、MDRA7−k、MDRA8−k、MDRA9−k、MDRA10−k、MDRA11−kのいずれか)である場合、CPU16は、当該演奏データMDの第1トラックTR−1におけるアウフタクトの終端以降の2小節分のイベントEVON(♯)を評価対象とする。そして、評価対象である2つの小節のイベントEVON(♯)の各々の音長(ティック数)の合計値SUMTCKを求める。次に、評価対象の最初の1小節のイベントEVON(♯)が示す各音の音名が、コードネームCN1と対応するコードの各音(図8の例では、CN1=Cなので、ド、ミ、ソの3音)、及びこのコードと根音を共通にする5音音階(ペンタトニック)の各音(図8の例では、CN1=Cなので、ド、レ、ミ、ソ、ラの5音)に該当するかを判定し、コードの各音と一致する音の音長(ティック数)に5ポイント、コードの各音と一致しないが5音音階の各音と一致する音の音長(ティック数)に3ポイント、それ以外の音の音長(ティック数)に1ポイントを各々乗算する。次に、評価対象の2番目の1小節のイベントEVON(♯)が示す各音の音名が、コードネームCN2の和音(図8の例では、CN2=Fなので、ファ、ラ、ドの3音)、及びこのコードと根音を共通にする5音音階(ペンタトニック)の各音(図8の例では、CN2=Fなので、ファ、ソ、ラ、ド、レの5音)に該当するかを判定し、コードの各音と一致する音の音長(ティック数)に5ポイント、コードの各音と一致しないが5音音階の各音と一致する音の音長(ティック数)に3ポイント、それ以外の音の音長(ティック数)に1ポイントを各々乗算する。その上で、2つの小節のイベントEVON(♯)の各々における音長(ティック数)に該当のポイントを乗じた値の合計値SUMPNTを求める。そして、合計値SUMPNTで合計値SUMTCKを除算した値SUMPNT/SUMTCKを当該演奏データMDの評価ポイントPとする。
【0028】
CPU16は、第1のデータ探索処理では、イベントEVON(123)が埋め込まれている演奏データMDの全てについて評価ポイントPを求めた後、評価ポイントPが最も高いものを演奏データMD1〜2としてRAM17に記憶する。
【0029】
第2のデータ探索処理では、CPU16は、素材データベースMDB内の全演奏データMDのうち第3トラックTR−3にイベントEVON(124)が埋め込まれているものを演奏データMD3〜4の候補とし、演奏データMD3〜4の候補である各演奏データMDと設定項目a5におけるコードネームCN3及びCN4の和音との適合度を評価ポイントPに換算し、評価ポイントPが最も高いものを演奏データMD3〜4としてRAM17に記憶する。
【0030】
第3のデータ探索処理では、CPU16は、素材データベースMDB内の全演奏データMDのうち第3トラックTR−3にイベントEVON(124)が埋め込まれているものを演奏データMD5〜6の候補とし、演奏データMD5〜6の候補である各演奏データMDと設定項目a5におけるコードネームCN5及びCN6の和音との適合度を評価ポイントPに換算し、評価ポイントPが最も高いものを演奏データMD5〜6としてRAM17に記憶する。
【0031】
第4のデータ探索処理では、CPU16は、素材データベースMDB内の全演奏データMDのうち第3トラックTR−3にイベントEVON(125)が埋め込まれているものを演奏データMD7〜8の候補とし、演奏データMD7〜8の候補である各演奏データMDと設定項目a5におけるコードネームCN7及びCN8の和音との適合度を評価ポイントPに換算し、評価ポイントPが最も高いものを演奏データMD7〜8としてRAM17に記憶する。
【0032】
図6において、CPU16は、第1の配列処理を行う(S202)。第1の配列処理では、CPU16は、演奏データMD5〜6の後に演奏データMD7〜8を配列して曲の第5〜第8小節の4小節分のイベントEVON(♯)及びEVOFF(♯)を含む演奏データMD5〜8を生成する。より詳細に説明すると、CPU16は、配列順が相前後する2つの演奏データMD5〜6及びMD7〜8のうち後の演奏データMD7〜8の種類がアウフタクトのない演奏データMDである場合とアウフタクトのある演奏データMDである場合の各々において次のような処理を行う。
【0033】
a7.演奏データMD7〜8がアウフタクトのない演奏データMDである場合
この場合、CPU16は、演奏データMD5〜6の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD7〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを演奏データMD5〜8とする。
【0034】
b7.演奏データMD7〜8がアウフタクトのある演奏データMDである場合
この場合、CPU16は、演奏データMD5〜6に対して、演奏データMD5〜6の各イベントEVON(♯)及びEVOFF(♯)が示す各音からなるメロディの終端を配列順が後の演奏データMD7〜8の各イベントEVON(♯)及びEVOFF(♯)が示す音からなるメロディの中のアウフタクトの分だけ短くする書き換え処理を施す。その上で、書き換え処理を経た演奏データMD’5〜6の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD7〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを演奏データMD5〜8とする。書き換え処理の詳細な手順は次の通りである。この書き換え処理では、まず、演奏データMD7〜8の第1トラックTR−1の各イベントEVON(♯)及びEVOFF(♯)が示す音からなるメロディの中のアウフタクトの演奏区間をアウフタクト演奏区間RAとし、演奏データMD5〜6の第1トラックTR−1のイベントEVON(♯)及びEVOFF(♯)が示す音からなるメロディの演奏区間R5〜6の終端よりもアウフタクト演奏区間RAの分だけ前の時刻を基準時刻tBASISとする(図9)。
【0035】
次に、演奏データMD5〜6の第2トラックTR−2における一連のイベントEVON(126)の中から基準時刻tBASISに先行し且つ基準時刻tBASISに最も近い時刻を実行時刻tとするイベントEVOFF(126)を選択する(図10)。次に、演奏データMD5〜6の各トラックTR−jにおけるこの選択したイベントEVOFF(126)よりも後のイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを消去する(図11)。次に、演奏データMD5〜6の第1トラックTR−1における消去されずに残ったイベントEVON(♯)及びEVOFF(♯)のうち最後のイベントEVOFF(♯)を選択し、この選択したイベントEVOFF(♯)が示す音の消音時刻が基準時刻tBASISと一致するように当該イベントEVOFF(♯)の実行時刻tを示すデルタタイムΔTh(すなわち、当該イベントEVOFF(♯)の前のデルタタイムΔTh)を書き換えたものを演奏データMD’5〜6とする(図12)。後の演奏データMD7〜8がアウフタクトのある演奏データMDである場合、以上の処理を経て得られた演奏データMD’5〜6の各トラックTR−jの後に演奏データMD7〜8の各トラックTR−jを繋げたものを演奏データMD5〜8とする(図13)。
【0036】
図6において、CPU16は、第2の配列処理を行う(S203)。第2の配列処理では、CPU16は、演奏データMD3〜4の後に演奏データMD5〜8を配列して曲の第3〜第8小節の6小節分のイベントEVON(♯)及びEVOFF(♯)を含む演奏データMD3〜8を生成する。この第2の配列処理では、配列順が相前後する2つの演奏データMD3〜4及びMD5〜8のうち演奏データMD5〜8の種類がアウフタクトのない演奏データMDである場合は、演奏データMD3〜4の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD5〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを演奏データMD3〜8とする。また、演奏データMD5〜8の種類がアウフタクトのある演奏データMDである場合は、演奏データMD3〜4に対して上述した書き換え処理を施す。その上で、書き換え処理を経た演奏データMD’3〜4の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD5〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを演奏データMD3〜8とする。
【0037】
次に、CPU16は、第3の配列処理を行う(S204)。第3の配列処理では、CPU16は、演奏データMD1〜2の後に演奏データMD3〜8を配列して1曲分(第1〜第8小節の8小節分)の曲演奏データEMDを生成する。第3の配列処理では、配列順が相前後する2つの演奏データMD1〜2及びMD3〜8のうち演奏データMD3〜8の種類がアウフタクトのない演奏データMDである場合は、演奏データMD1〜2の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD3〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを曲演奏データEMDとする。また、演奏データMD3〜8の種類がアウフタクトのある演奏データMDである場合は、演奏データMD1〜2に対して上述した書き換え処理を施す。その上で、書き換え処理を経た演奏データMD’1〜2の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThの後に演奏データMD3〜8の各トラックTR−jのイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを繋げたものを曲演奏データEMDとする。
【0038】
次に、CPU16は、第1〜第3の配列処理により得られた1曲分の曲演奏データEMDを楽曲データベースBDBに記憶する(S205)。
【0039】
図14は、歌唱合成処理を示すフローチャートである。図14に示す一連の処理は歌唱合成機能の働きによって実行される処理である。図14に示す一連の処理は、操作部12によって歌唱音声の発生が指示されると開始される。図14に示す一連の処理の実行にあたり、利用者は、歌唱曲のメロディに乗せる歌詞をひらがな文字の文字列として入力する。
【0040】
図14において、CPU16は、歌詞として入力された文字列を一連の音声素片に変換する(S301)。CPU16は、ステップS301で得られた音声素片の各々と対応する音声素片データPDを音声素片データベースPDBからRAM17に読み出す(S302)。CPU16は、このRAM17内の音声素片データPDを接続することにより、歌詞として入力された文字列と対応する音声信号を生成する(S303)。CPU16は、楽曲データベースBDBに記憶された曲演奏データEMDの1つをRAM17に読み出す(S304)。CPU16は、ステップS304で生成した音声信号のピッチを曲演奏データEMDのメロディに合わせるためのピッチ変換処理を施す(S305)。CPU16は、このピッチ変換処理を施した音声信号を放音部14から音として放音させる(S306)。この歌唱合成処理の各ステップの詳細な内容については、特許文献2を参照されたい。
【0041】
以上が、本実施形態の詳細である。本実施形態によると、次の効果が得られる。
第1に、本実施形態では、編集処理において、演奏データMDの後にアウフタクトのある演奏データMDを配列する場合、配列順が前の演奏データMDに対して書き換え処理を施し、書き換え処理を経た演奏データMDの後に該当の演奏データMDを配列する。よって、データベースMDBに収録された複数個の演奏データMDを用いてバリエーションの豊かな楽曲を創作できる。
【0042】
第2に、本実施形態では、データ蓄積処理において、ハ長調の演奏データMDに移調処理を施すことによりハ長調以外の調の演奏データMDを生成し、これらの演奏データMDを元のハ長調の演奏データMDとともに素材データベースMDBに記憶する。よって、本実施形態によると、異なる調のメロディを組み合わせて多様な楽曲を創作することができる。
【0043】
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態があり得る。例えば、以下の通りである。
(1)上記実施形態において、編集処理により得られた1曲分の曲演奏データEMDを楽曲の音信号として放音部14から放音させるようにしてもよい。
【0044】
(2)上記実施形態では、4つの演奏データMDを配列して1曲分の曲演奏データEMDを生成した。しかし、2〜3つの演奏データMDや5つ以上の演奏データMDを配列して1曲分の曲演奏データEMDを生成してもよい。また、演奏データMDにおける演奏区間の長さは2小節分である必要はなく、1小節分の長さにしてもよいし、3小節分以上の長さにしてもよい。
【0045】
(3)上記実施形態における第1のマーキング処理では、演奏区間R−i内のメロディの区切り位置を決定した後、第1トラックTR−jにおける区切り位置の直前のイベントEVOFF(♯)を選択し、この選択したイベントEVOFF(♯)と第2トラックにおけるイベントEVON(126)の実行時刻tが同時刻になるように当該イベントEVON(126)の前後のデルタタイムΔTを書き換えた。しかし、第1トラックTR−jにおける区切り位置の直後のイベントEVON(♯)(すなわち、閾値TH3以上の長さの休符の直後の音の発音を指示するイベントEVON(♯))を選択し、この選択したイベントEVON(♯)と第2トラックにおけるイベントEVON(126)の実行時刻tが同時刻になるように当該イベントEVON(126)の前後のデルタタイムΔTを書き換えてもよい。
【0046】
(4)上記実施形態では、第1トラックTR−jにおける演奏の区切り位置の直前のイベントEVOFF(♯)のマークであるイベントEVON(126)を第2トラックTR−jに記述した。しかし、第1トラックTR−jにおける演奏の区切り位置の直前のイベントEVOFF(♯)のマークとなるイベントを第1トラックTR−jに記述してもよい。例えば、所定種類のコントロールチェンジイベントを演奏の区切り位置の直前のイベントEVOFF(♯)のマークにし、第1トラックTR−jにおける演奏の区切り位置の直前のイベントEVOFF(♯)とこのコントロールチェンジイベントを連続して記述してもよい。
【0047】
(5)上記実施形態における書き換え処理では、相前後する2つの演奏データMDのうち配列順が前のものの第2トラックTR−2における一連のイベントEVON(126)の中から基準時刻tBASISに先行し且つ基準時刻tBASISに最も近い時刻を実行時刻tとするイベントEVOFF(126)を選択し、当該演奏データMDの各トラックTR−jにおけるこの選択したイベントEVOFF(126)よりも後のイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを消去した。しかし、第2トラックTR−2にイベントEVON(126)が1つも記されていない場合もあり得る。この場合、CPU16は、配列順が前の演奏データMDの第1トラックTR−1における一連のイベントEVON(♯)及びEVOFF(♯)の中から基準時刻tBASISの後のイベントEVOFF(♯)であって基準時刻tBASISに最も近い時刻を実行時刻tとするイベントEVOFF(♯)を選択し、当該演奏データMDの各トラックTR−jにおけるこの選択したイベントEVOFF(♯)よりも後のイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔThを消去するとよい。
【0048】
(6)上記実施形態では、曲演奏データSMDやこれを分割して得られる演奏データMDは、ノートオンイベントEVON(♯)、ノートオフイベントEVOFF(♯)、及びデルタタイムΔThをL個のトラックTR−j(j=1〜L)に分けて並べたものであった。しかし、曲演奏データSMDやこれを分割して得られる演奏データMDを別のデータフォーマットのものにしてもよい。例えば、演奏データSMD及びMDを、該当するトラックのトラック番号、音源の発音チャネル、イベントの実行時刻を示すタイミングデータ、イベントの種類、及びイベントのパラメータからなるレコードを時系列順に並べた形式(イベントリスト形式)にしてもよい。また、演奏データSMD及びMDを、イベントの種類とそのパラメータのみからなるレコードを時系列順に並べた形式にしてもよい。また、演奏データSMD及びMDを、ピアノロール形式やスコアロール形式にしてもよい。
【0049】
(7)上記実施形態では、ノートナンバ126のイベントEVON(126)を曲演奏データSMD内における演奏の区切り位置を示すマークとし、ノートナンバ125のイベントEVON(125)を歌唱曲の最後の部分のメロディに相応しい演奏区間を示すマークとし、ノートナンバ124のイベントEVON(124)を歌唱曲の最初の部分のメロディに相応しい演奏区間を示すマークとし、ノートナンバ123のイベントEVON(123)を歌唱曲の最初でも最後でもない部分のメロディに相応しい演奏区間を示すマークとした。しかし、演奏の区切り位置や歌唱曲の各部分のメロディに相応しい演奏区間を示すマークとして、別の種類のデータを採用してもよい。また、このマークとしての役割を果たすデータはMIDIにおいてサポートされていない形式のデータであってもよい。
【0050】
(8)上記実施形態の移調処理では、ハ長調の演奏データMDR−k内の各イベントEVON(♯)のノートナンバを半音ずつ高いものに置き換えてハ長調と異なる11種類の演奏データMDR1−k、MDR2−k、MDR3−k、MDR4−k、MDR5−k、MDR6−k、MDR7−k、MDR8−k、MDR9−k、MDR10−k、MDR11−kを生成した。しかし、操作部12の操作により、調の種類を設定し、設定された種類の調の演奏データMD−kだけを生成するようにしてもよい。また、移調処理後に、11種類の演奏データMDR1−k、MDR2−k、MDR3−k、MDR4−k、MDR5−k、MDR6−k、MDR7−k、MDR8−k、MDR9−k、MDR10−k、MDR11−kに対して各々の譜面における調音記号を取り除く処理を施し、ハ長調のメロディを示す演奏データMDへとデータ内容を修正してもよい。
【0051】
(9)上記実施形態のアウフタクト生成処理において、CPU16は、演奏データMDRA−kを次のようにして生成してもよい。まず、演奏データMDR−kの複製を生成する。次に、この複製である演奏データMDR−kにおける演奏区間R−kの始点を時刻t0とし、この時刻t0と1/h(例えば、h=2)小節分だけ後の時刻tBとの間の演奏区間RB内のイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔTを複製する。そして、この複製であるイベントEVON(♯)、EVOFF(♯)、及びデルタタイムΔTを元の演奏データMDR−kの各トラックTR−jの前に追記したものを演奏データMDRA−kとする。
【0052】
(10)上記実施形態の演奏データ取得処理では、評価対象である一連のイベントEVON(♯)を、コードネームCN1及びCN2のコードと一致するもの、コードとは一致しないが5音音階の音と一致するもの、コード及び5音音階の何れの音とも一致しないものの3種類に分類し、各イベントEVON(♯)の音長(ティック数)に各々の種類に応じたポイントを乗算した。しかし、評価対象である一連のイベントEVON(♯)を、コードネームCN1及びCN2のコードと一致するもの、コードとは一致しないが5音音階の音と一致するもの、コード及び5音音階の何れの音とも一致しないいがそれ以外のハ長調音階の音と一致するもの、コード、5音音階、ハ長調音階の何れの音とも一致しないものの4種類に分類し、各イベントEVON(♯)の音長(ティック数)に各々の種類に応じたポイントを乗算してもよい。この場合において、3番目の種類(コード及び5音音階の何れの音とも一致しないいがそれ以外のハ長調音階の音と一致するもの)に該当する場合に1ポイントを乗算し、4番目の種類(コード及び5音音階の何れの音とも一致しないいがそれ以外のハ長調音階の音と一致するもの)に該当する場合にはポイントを乗算しないようにするとよい。
【0053】
(11)上記実施形態のアウフタクト生成処理では、相前後する演奏データMDRA−i及びMDRA−(i+1)がオーバーラップ部分を有するように各演奏データMDRA−i内に含めるイベントEVON(♯)及びEVOFF(♯)とデルタタイムΔThの切り出し位置を決定した。しかし、例えば、曲演奏データSMDにおける演奏区間R−1〜R−3内のイベントEVON(♯)、EVOFF(♯)、デルタタイムΔThを演奏データMDRA−1とし、演奏区間R−4〜R−6内のイベントEVON(♯)、EVOFF(♯)、デルタタイムΔThを演奏データMDRA−2とし…というように、相前後する演奏データMDRA−i及びMDRA−(i+1)がオーバーラップ部分を持たないように各演奏データMDRA−i内に含めるイベントEVON(♯)及びEVOFF(♯)とデルタタイムΔThの切り出し位置を決定してもよい。
【0054】
(12)上記実施形態では、曲演奏データSMD及びMDは、ある決まった時間長分の音の並びであるメロディにおける各音の発音内容を示すデータの配列であった。しかし、曲演奏データSMD及びMDを、ある決まった時間長分のハーモニーやリズムを決定づける音の並びにおける各音の発音内容を示すデータの配列としてもよい。
【0055】
(13)上記実施形態における第1〜第4の配列処理では、処理対象である2つの演奏データMD(例えば、演奏データMD5〜6及びMD7〜8とする)について、配列順が前の演奏データMD5〜6の第1トラックTR−1における消去されずに残ったイベントEVON(♯)及びEVOFF(♯)のうち最後のイベントEVOFF(♯)を選択し、この選択したイベントEVOFF(♯)が示す音の消音時刻が基準時刻tBASISと一致するように当該イベントEVOFF(♯)の実行時刻tを示すデルタタイムΔThを書き換えた。しかし、配列順が前の演奏データMD5〜6の第1トラックTR−1における消去されずに残ったイベントイベントEVOFF(♯)が示す音の消音時刻と基準時刻tBASISとの差が所定値未満になるように当該イベントEVOFF(♯)の実行時刻tを示すデルタタイムΔThを書き換えてもよい。要するに、第1〜第4の配列処理では、配列順が前の演奏データMDに対して、当該演奏データMDの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする処理が実行されればよい。
【符号の説明】
【0056】
10…曲編集装置、11…データ読込部、12…操作部、13…表示部、14…放音部,15…制御部、16…CPU、17…RAM、18…ROM、19…ハードディスク。
【特許請求の範囲】
【請求項1】
M(Mは1以上の整数)小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第1の種類の演奏データと、アウフタクトとそれに続くM小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第2の種類の演奏データとを記憶した記憶手段と、
前記記憶手段から複数個の演奏データを取得して配列する編集手段であって、前記第1または第2の種類の演奏データの後に前記第2の種類の演奏データを配列する場合に、配列順が前の演奏データに対して、当該演奏データの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする書き換え処理を施し、この書き換え処理を経た演奏データの後に該当の演奏データを配列する編集手段と
を具備することを特徴とする曲編集装置。
【請求項2】
前記編集手段は、
前記書き換え処理では、
配列順が後の演奏データの各イベントが示す音の並びの中のアウフタクトの音の演奏区間をアウフタクト演奏区間とし、配列順が前の演奏データのイベントが示す音からなる演奏区間の終端よりも前記アウフタクト演奏区間の分だけ前の時刻を基準時刻とし、配列順が前の演奏データにおける音の並びの区切りの位置に該当する各イベントの中から前記基準時刻に先行し且つ前記基準時刻に最も近い時刻を実行時刻とするイベントを選択し、この選択したイベントよりも後のイベントとタイミングデータを消去し、消去されずに残ったイベントのうち最後のイベントが示す音の消音時刻が前記基準時刻と略一致するように当該最後のイベントの実行時刻を示すタイミングデータを書き換える
ことを特徴とする請求項1に記載の曲編集装置。
【請求項3】
前記第1及び第2の種類の演奏データの各イベントのうち所定値よりも長い休符を経て発音される音のイベントにはマークが付加されており、
前記編集手段は、
前記書き換え処理では、
前記配列順が前の演奏データに含まれる各イベントのうちマークが付加されているイベントを前記区切り位置に該当する各イベントとし、当該イベントの中から前記基準時刻に先行し且つ前記基準時刻に最も近い時刻を実行時刻とするイベントを選択する
ことを特徴とする請求項2に記載の曲編集装置。
【請求項4】
1曲分の音の並びを示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む曲演奏データからM小節分よりも長い演奏区間の各音を示す各イベントと各イベントの実行時刻を示すタイミングデータを切り出し、切り出した各イベント及びタイミングデータを前記第2の種類の演奏データとして前記記憶手段に記憶する手段を具備することを特徴とする請求項1乃至3の何れか1の請求項に記載の曲編集装置。
【請求項5】
コンピュータに、
M(Mは1以上の整数)小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第1の種類の演奏データと、アウフタクトとそれに続くM小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第2の種類の演奏データとを記憶した記憶手段と、
前記記憶手段から複数個の演奏データを取得して配列する編集手段であって、前記第1または第2の種類の演奏データの後に前記第2の種類の演奏データを配列する場合に、配列順が前の演奏データに対して、当該演奏データの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする書き換え処理を施し、この書き換え処理を経た演奏データの後に該当の演奏データを配列する編集手段と
を実現させるプログラム。
【請求項1】
M(Mは1以上の整数)小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第1の種類の演奏データと、アウフタクトとそれに続くM小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第2の種類の演奏データとを記憶した記憶手段と、
前記記憶手段から複数個の演奏データを取得して配列する編集手段であって、前記第1または第2の種類の演奏データの後に前記第2の種類の演奏データを配列する場合に、配列順が前の演奏データに対して、当該演奏データの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする書き換え処理を施し、この書き換え処理を経た演奏データの後に該当の演奏データを配列する編集手段と
を具備することを特徴とする曲編集装置。
【請求項2】
前記編集手段は、
前記書き換え処理では、
配列順が後の演奏データの各イベントが示す音の並びの中のアウフタクトの音の演奏区間をアウフタクト演奏区間とし、配列順が前の演奏データのイベントが示す音からなる演奏区間の終端よりも前記アウフタクト演奏区間の分だけ前の時刻を基準時刻とし、配列順が前の演奏データにおける音の並びの区切りの位置に該当する各イベントの中から前記基準時刻に先行し且つ前記基準時刻に最も近い時刻を実行時刻とするイベントを選択し、この選択したイベントよりも後のイベントとタイミングデータを消去し、消去されずに残ったイベントのうち最後のイベントが示す音の消音時刻が前記基準時刻と略一致するように当該最後のイベントの実行時刻を示すタイミングデータを書き換える
ことを特徴とする請求項1に記載の曲編集装置。
【請求項3】
前記第1及び第2の種類の演奏データの各イベントのうち所定値よりも長い休符を経て発音される音のイベントにはマークが付加されており、
前記編集手段は、
前記書き換え処理では、
前記配列順が前の演奏データに含まれる各イベントのうちマークが付加されているイベントを前記区切り位置に該当する各イベントとし、当該イベントの中から前記基準時刻に先行し且つ前記基準時刻に最も近い時刻を実行時刻とするイベントを選択する
ことを特徴とする請求項2に記載の曲編集装置。
【請求項4】
1曲分の音の並びを示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む曲演奏データからM小節分よりも長い演奏区間の各音を示す各イベントと各イベントの実行時刻を示すタイミングデータを切り出し、切り出した各イベント及びタイミングデータを前記第2の種類の演奏データとして前記記憶手段に記憶する手段を具備することを特徴とする請求項1乃至3の何れか1の請求項に記載の曲編集装置。
【請求項5】
コンピュータに、
M(Mは1以上の整数)小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第1の種類の演奏データと、アウフタクトとそれに続くM小節分の音の並びにおける各音の発音内容を示す各イベントと各イベントの実行時刻を示すタイミングデータとを含む第2の種類の演奏データとを記憶した記憶手段と、
前記記憶手段から複数個の演奏データを取得して配列する編集手段であって、前記第1または第2の種類の演奏データの後に前記第2の種類の演奏データを配列する場合に、配列順が前の演奏データに対して、当該演奏データの各イベントが示す各音からなる音の並びの終端を配列順が後の演奏データの各イベントが示す音の並びの中の略アウフタクトの分だけ短くする書き換え処理を施し、この書き換え処理を経た演奏データの後に該当の演奏データを配列する編集手段と
を実現させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2013−88585(P2013−88585A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−228390(P2011−228390)
【出願日】平成23年10月18日(2011.10.18)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願日】平成23年10月18日(2011.10.18)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
[ Back to top ]