JP3724223B2 - 自動演奏装置及び方法並びに記録媒体 - Google Patents

自動演奏装置及び方法並びに記録媒体 Download PDF

Info

Publication number
JP3724223B2
JP3724223B2 JP27583798A JP27583798A JP3724223B2 JP 3724223 B2 JP3724223 B2 JP 3724223B2 JP 27583798 A JP27583798 A JP 27583798A JP 27583798 A JP27583798 A JP 27583798A JP 3724223 B2 JP3724223 B2 JP 3724223B2
Authority
JP
Japan
Prior art keywords
data
waveform
template
performance
articulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP27583798A
Other languages
English (en)
Other versions
JP2000122648A (ja
Inventor
秀雄 鈴木
真雄 坂間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP27583798A priority Critical patent/JP3724223B2/ja
Publication of JP2000122648A publication Critical patent/JP2000122648A/ja
Application granted granted Critical
Publication of JP3724223B2 publication Critical patent/JP3724223B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、アーティキュレーションのついた高品質な楽音波形を用いて自動演奏を行なうことができる自動演奏装置及び方法並びに記録媒体に関し、電子楽器に限らず、ゲーム機やパーソナルコンピュータその他マルチ・メディア機器等、各種の用途の楽音又はサウンド発生機器における音楽等の自動演奏装置及び方法として広範囲に応用できるものである。
なお、この明細書において、「楽音」とは、音楽の音に限られるものではなく、人声音や各種効果音、自然界にある音など、音(サウンド)一般を含む広義の概念で用いるものとする。
【0002】
【従来の技術】
電子楽器などに用いられている波形メモリ読み出し方式(PCM:パルス符号変調方式)の音源においては、所定の音色に対応する1又は複数周期の波形のデータをメモリに記憶しておき、この波形データを発生しようとする楽音の所望の音高(ピッチ)に対応する所望の読出し速度で繰返し読み出すことにより、持続的な楽音波形を生成することが行われている。また、楽音の発音開始から終了までの全波形のデータをメモリに記憶しておき、この波形データを発生しようとする楽音の所望の音高(ピッチ)に対応する所望の読出し速度で読み出すことにより、1つの音を発音生成することも行われている。
この種のPCM音源において、メモリに記憶した波形を単にそのまま読み出したものを楽音として発生するだけではなく、何らかの変更を加えて、発生楽音に表現力を持たせようとする場合、音高、音量、音色という3つのカテゴリの楽音要素に関して制御を行うことが従来より為されている。音高に関しては、任意のピッチエンベロープに従って読み出し速度を適宜変調することにより、ビブラートやアタックピッチ等のピッチ変調効果を付与することが為される。音量に関しては、読み出した波形データに対して所要のエンベロープ波形に従う音量振幅エンベロープを付与することや、読み出した波形データの音量振幅を周期的に変調制御することによりトレモロ効果等を付与することなどが為される。また、音色に関しては、読み出した波形データをフィルタ処理することにより、適当な音色制御がなされる。
【0003】
また、実際に生演奏された連続的な演奏音(フレーズ)を一括してサンプリングして1つの記録トラックに貼り付け(記録し)、こうして複数のトラックに貼り付けた各フレーズ波形を、別途記録したシーケンス演奏データに基づく自動演奏音と共に組み合わせて再生発音するようにしたマルチトラックシーケンサも知られている。
また、実際に生演奏された1曲の楽音波形データ全部をPCMデータにて記録し、これを単純に再生するものは、CD(コンパクトディスク)における音楽記録方式としてよく知られている。
【0004】
【発明が解決しようとする課題】
ところで、ピアノ、バイオリン、サックス等の任意の自然楽器についての熟練した演奏家が該楽器によって一連の楽曲フレーズを演奏する場合、その演奏音の内容は、たとえ同じ楽器で演奏されているとはいえ、一様なものではなく、各音毎に、あるいは音と音のつながりにおいて、あるいは音の立上り部や持続部または立下り部等の部分において、曲想に応じてあるいは演奏家の感性等に応じて、微妙に異なる“アーティキュレーション”で演奏される。そのような“アーティキュレーション”の存在が、聴者に本当に良い音としての印象を与える。
CDにおける音楽記録方式のように、熟練した演奏家が行った音楽演奏を全部そっくりPCM波形データとして記録する方式は、生演奏のリアルで高品質な再生が可能であるから、演奏家が演奏した通りの“アーティキュレーション”をリアルに再現することができる。しかし、決まった曲(記録した通りの曲)の単なる再生装置としてしか利用することができないものであるため、電子楽器やマルチメディア機器等においてユーザーの自由な音作りや編集操作を許容するインタラクティブな楽音作成技術としては利用することができない。
【0005】
これに対して、電子楽器等で公知のPCM音源技術においては、上述のように、ユーザーによる音作りを許容するものであり、発生楽音に或る程度の表現力を持たせることができるものである。しかし、音質と表現力の両面において、自然な“アーティキュレーション”を実現するには、不十分なものであった。例えば、一般にこの種のPCM音源技術においては、メモリに記憶する波形データは、自然楽器で演奏した単音をサンプリングしたものを記憶するだけであるので、発生楽音の音質に限度があった。特に、演奏時における音と音のつながりのアーティキュレーション若しくは奏法を高品質に表現することはできなかった。例えば、先行する音からその次の音に滑らかに変化させるようなスラー奏法の場合、従来の電子楽器等では、単にメモリからの波形データ読み出し速度を滑らかに変化させたり、発生音に付与する音量エンべロープを制御する等の手法に頼っているにすぎず、自然楽器の生演奏に匹敵するような音質のアーティキュレーション若しくは奏法を実現することはできなかった。また、同じ楽器の同じ音高の音であっても、曲フレーズの違いに応じて、あるいは同じ曲フレーズであっても演奏機会の違い等に応じて、その立上り部等の部分において異なるアーティキュレーションを示すことがあるが、そのような微妙なアーティキュレーションの違いを表現することも、電子楽器等で公知のPCM音源技術においては実現することができなかった。
【0006】
また、演奏表現に応じた発生楽音の制御も、従来の電子楽器等においては比較的単調なものであり、十分とは言えなかった。例えば、鍵等の演奏タッチに応じた楽音制御を行うことが知られているが、その場合も、タッチに応じて音量の変化特性や音色フィルタの特性を制御することができる程度にすぎず、例えば楽音の立ち上がりから立ち下がりまでの全発音区間のうちの各部分的区間毎に楽音特性の制御を自由に行うようなことはできなかった。また、発生音の音色制御に関しては、演奏に先立って一旦1つの音色が選択されると、その選択された音色に対応する波形データがメモリから読み出され、以後、発音中は様々な演奏表現に応じて該音色に対応する波形データがフィルタ等で可変制御されるだけであったので、演奏表現に応じた音色変化が十分ではなかった。また、ピッチや音量等の制御エンベロープ波形は、エンベロープの立ち上がりから立ち下がりまでの一連のエンベロープを1単位としてその形状等の設定制御がなされており、部分的にエンベロープを入れ替える等の操作が自由に行えるようにはなっていない。
【0007】
一方、上記マルチトラックシーケンサのような方式では、生演奏のフレーズ波形データを貼り付けるだけであったので、フレーズ波形の部分的な編集処理(部分的差し替えや特性制御など)を行うことは全くできず、これも、電子楽器やマルチメディア機器等においてユーザーの自由な音作りを許容するインタラクティブな楽音作成技術としては利用することができなかった。
また、音楽的な演奏音に限らず、自然界に存在する一般的な音も、その時間的経過等に従って、繊細な“アーティキュレーション”を豊富に含んでいるが、従来の技術では、自然界に存在する音の“アーティキュレーション”を制御可能に巧みに再現することはできなかった。
【0008】
この発明は上述の諸点に鑑みてなされたもので、電子楽器や電子的装置を用いて楽音(前述の通り音楽的な音に限らずその他の一般的な音をも含む)を発生する場合において、“アーティキュレーション”のリアルな再現を実現すると共にその制御を容易にし、電子楽器やマルチメディア機器等においてユーザーの自由な音作りと編集操作を許容するインタラクティブな高品質楽音作成技術を提供し、そのような技術に基づく自動演奏装置及び方法並びに記録媒体を提供しようとするものである。
なお、本明細書において“アーティキュレーション”(articulation)の語は、通常知られている意味で用いるものとし、例えば、「音節」、「音と音のつながり」、「複数の音のかたまり(フレーズ)」、「音の部分的な特徴」、「発音の手法」、「奏法」、「演奏表現」等の概念を全て含む広い概念で用いるものとする。
【0009】
【課題を解決するための手段】
この発明の自動演奏装置は、アタック部、ボディ部、リリース部などの音の部分についての複数のアーティキュレーションエレメントの時系列的シーケンスからなる奏法シーケンスデータを、演奏順に順序付けて複数記憶してなる記憶装置と、前記記憶装置から奏法シーケンスデータを演奏順に読み出す読出部と、読み出された奏法シーケンスデータに応じて、該奏法シーケンスを構成している各アーティキュレーションエレメントに対応する前記音の部分の波形データを順次生成する波形生成部とを具え、前記各奏法シーケンスデータは、各アーティキュレーションエレメントを指示するインデックスデータを含んでおり、前記記憶装置は、前記各インデックスデータに対応して当該アーティキュレーションエレメントに対応する部分的音波形を構成する1または複数の楽音要素の内容を指示するベクトルデータを記憶する部分と、楽音要素の内容を具体的に表現する複数のテンプレートデータを記憶する部分とを更に持っており、前記波形生成部では、前記読出部によって読み出された奏法シーケンスデータにおける各アーティキュレーションエレメントのインデックスデータを順次読み出し、読み出したインデックスデータに応じて前記楽音要素に対応する前記ベクトルデータを読み出し、読み出したベクトルデータに応じて前記テンプレートデータを読み出し、読み出したテンプレートデータに基づき当該アーティキュレーションエレメントに対応する部分的音波形を生成することを特徴とする。これにより、一連の音楽の自動演奏にあたって、複数のアーティキュレーションエレメントの時系列的シーケンスで記述してなる奏法シーケンスデータを用いることにより、"アーティキュレーション"を含む高品質な楽音にてその音楽を再生演奏することができるのものとなる。また、アーティキュレーションエレメントの時系列的シーケンスを任意に組み替えることにより、自動演奏内容の自由な編集が可能である。従って、従来にない、"アーティキュレーション"を含む高品質な音楽演奏の自動再生を、ユーザーによるインタラクティブな制御を可能にしつつ、実現することができる。
【0010】
また、本発明によれば、各奏法シーケンスデータは、各アーティキュレーションエレメントを指示するインデックスデータを含んでおり、このインデックスデータに応じて前記楽音要素に対応する前記ベクトルデータを読み出し、読み出したベクトルデータに応じて前記テンプレートデータを読み出し、読み出したテンプレートデータに基づき当該アーティキュレーションエレメントに対応する部分的音波形を生成するので、各アーティキュレーションエレメントに対応する部分的音波形のデータを、各楽音要素を単位として記憶することにより、簡素化した記憶構成とすることができると共に、楽音要素を単位として変更・編集等を任意に行なうことがし易いものとなる。また、データの共用により記憶容量の削減を図ることができる。
【0011】
更に、この発明の実施態様によれば前記記憶装置は、更に、所定のコードで表現されたノート演奏情報をその演奏順に順次記憶してな前記読出部は、時間経過に従って前記記憶装置から奏法シーケンスデータ及びノート演奏情報を読み出し、読み出されたノート演奏情報に応じて指定されたノートの楽音信号を発生するノート音発生部を更に具えたことを特徴とする。これにより、奏法シーケンスデータに基づく自動演奏と、例えばMIDIデータ等のノート演奏情報に基づく自動演奏とを組み合わせて実行することができる。従って、例えば演奏パートに応じたこれらの使い分けによって、品質のよい自動演奏を効率的に行なうことができる。
【0012】
この発明に係る楽音データ作成及び楽音合成の技術は、音のアーティキュレーションを分析し、アーティキュレーションエレメントを単位として楽音編集及び合成処理を行うことにより、音のアーティキュレーションをモデルして楽音合成を行うものである。従って、この技術をSAEM(Sound Articulation Element Modeling)技術と呼ぶことにする。
【0013】
この発明は、方法発明として構成し、実施することができるのみならず、装置発明として構成し、実施することもできる。また、この発明は、コンピュータプログラムの形態で実施することができるし、そのようなコンピュータプログラムを記憶した記録媒体の形態で実施することもできる。更に、この発明は、新規なデータ構造からなる波形又は楽音データを記憶した記録媒体の形態で実施することもできる。
【0014】
【発明の実施の形態】
以下、添付図面を参照してこの発明の実施の形態を詳細に説明しよう。
〔楽音データベースの作成例〕
前述の通り、ピアノ、バイオリン、サックス等の任意の自然楽器についての熟練した演奏家が該楽器によって一連の楽曲フレーズを演奏する場合、その演奏音の内容は、例えば同じ楽器で演奏されているとはいえ、一様なものではなく、各音毎に、あるいは音と音のつながりにおいて、あるいは音の立上り部や持続部または立下り部等の部分において、曲想に応じてあるいは演奏家の感性等に応じて、微妙に異なる“アーティキュレーション”で演奏される。そのような“アーティキュレーション”の存在が、聴者に本当に良い音としての印象を与える。
楽器演奏の場合、一般に、“アーティキュレーション”は、演奏家による「奏法」若しくは「演奏表現」の反映として顕れる。従って、以下の説明では、「奏法」若しくは「演奏表現」と“アーティキュレーション”の語がどちらも実質的に同義のことを指して使用されることがあることを予めことわっておく。たとえば、「奏法」には、スタカート、テヌート、スラー、ビブラート、トレモロ、クレッシェンド、デクレッシェンドなど、その他様々なものがある。演奏家が楽器によって一連の楽曲フレーズを演奏する場合、楽譜の指示に従って、あるいは自らの感性に従って、各演奏局面で様々な奏法が使用され、それぞれの奏法に応じた“アーティキュレーション”を生み出す。
【0015】
この発明に従う楽音データベースの作成手順の一例が図1に示されている。
最初のステップS1は、1又は複数の楽音からなる一連の演奏音をサンプリングするステップである。ここでは、例えば、或る特定の自然楽器についての熟練した演奏家が、該楽器によって所定の一連の楽曲フレーズを演奏する。この一連の演奏音をマイクロフォンでピックアップし、所定のサンプリング周波数にしたがってサンプリングし、該演奏フレーズ全体についてのPCM符号化された波形データを得る。この波形データは、音楽的にも優れた、高品質なデータである。
説明のために、このステップS1でのサンプリングのために演奏される一連の楽曲フレーズの楽譜例を、図2(a)に示す。図2(a)の楽譜の上側に付記された「奏法記号」は、この楽譜に示された楽曲フレーズがどのような奏法で演奏されるかを例示的に示すものである。このような「奏法記号」付きの楽譜は、このステップS1でのサンプリングの際に不可欠なものではない。通常の楽譜に従って演奏家が該楽曲フレーズを演奏し、その後での、サンプリングした波形データの分析によって、時間経過に従う各演奏局面での奏法を判断し、このような奏法記号付きの楽譜を作成するようにしてよい。追って説明するように、このような奏法記号付きの楽譜は、ステップS1でのサンプリングの際に役立つというよりは、むしろ、ここでサンプリングしたデータに基づいて作成されたデータベースから一般のユーザーが所望のデータを引き出しそれらを接続して所望の演奏音を作成する際に、該一般ユーザーにとって大いに手助けとなると思われるものである。しかし、図2(a)の楽譜で示すフレーズがどのように演奏されたかを例示的に説明するために、同図において例示された奏法記号の意味についてここで説明しておく。
【0016】
最初の小節における3つの音符に対応して描かれた黒丸の奏法記号は「スタカート」奏法を示し、黒丸の大きさは音量の程度を示している。
その次の音符に対応して「Atack-Mid, No-Vib」の文字と共に描かれた奏法記号は、「中程度のアタックで、ビブラートはつけない」奏法を記述している。
2小節目の後半のスラーで結ばれた音符に対応して「Atk-Fast, Vib-Soon-Fast, Release-Smoothly」の文字で描かれた奏法記号は、「アタックは素速く立上り、ビブラートはすぐに速くし、リリースはスムーズに」という奏法を記述している。
3小節目における楕円の黒丸からなる奏法記号は「テヌート」奏法を示す。また、3小節目には音量を徐々に小さくすることを示す奏法記号や、音の末尾にビブラートをつけることを指示する奏法記号も記載されている。
このように、3小節程度の長さの楽曲フレーズにあっても、多様な奏法若しくは演奏表現すなわちアーティキュレーションが用いられることが理解できる。
なお、これらの奏法記号の表わし方は、これに限るものではなく、要するに奏法を何らかの形で表現しうるものであればよい。或る程度の奏法を表現する記号は従来の楽譜表記においても用いられているが、この発明の実施にあたっては、従来にないより精密な奏法記号を採用することが望ましい。
【0017】
図1において、次のステップS2は、サンプリングした一連の演奏音をその演奏表現上の特徴(すなわちアーティキュレーション)に応じてそれぞれ可変の長さからなる複数の時間区間に分割するステップである。これは、例えばフーリエ解析で知られているような規則的な一定の時間フレーム毎に波形データを分割し分析するようなやり方とは全く異なるものである。すなわち、サンプリングした一連の演奏音の中に存在するアーティキュレーションには多様性があるので、個々のアーティキュレーションに対応する音の時間的範囲は、一様な時間長ではなく、任意の可変の長さからなっている。従って、サンプリングした一連の演奏音をその演奏表現上の特徴(すなわちアーティキュレーション)に応じて複数の時間区間に分割することは、その結果分割された各時間区間の長さは可変的なものとなる。
【0018】
図2の(b),(c),(d)は、そのような時間区間の分割例を階層的に例示するものである。図2(b)は、比較的大きなアーティキュレーションのかたまり(これを便宜上、「アーティキュレーション大単位」といい、AL#1,AL#2,AL#3,AL#4なる記号で示す)に分割する例を示している。このようなアーティキュレーション大単位は、例えば大まかな演奏表現が共通しているフレージングの小単位毎に区分するとよい。図2(c)は、1つのアーティキュレーション大単位(図ではAL#3)を、更にアーティキュレーション中単位(便宜上、AM#1,AM#2なる記号で示す)に分割する例を示している。このアーティキュレーション中単位AM#1,AM#2は、例えば、大まかに1つの音を単位として区分する。図2(d)は、1つのアーティキュレーション中単位(図ではAM#1,AM#2)を、更にアーティキュレーション最小単位(便宜上、AS#1〜AS#8なる記号で示す)に分割する例を示している。このアーティキュレーション最小単位AS#1〜AS#8は、音の部分であって演奏表現の異なる個所、典型的にはアタック部、ボディ部(音の定常的な特徴を示す比較的安定した部分)、リリース部、音と音のつながりの部分など、に対応している。
【0019】
例えば、AS#1,AS#2,AS#3がアーティキュレーション中単位AM#1を構成する1つの音(スラーの先行音)のアタック部、第1のボディ部、第2のボディ部にそれぞれ対応し、AS#5,AS#6,AS#7,AS#8が次のアーティキュレーション中単位AM#2を構成する1つの音(スラーの後続音)第1のボディ部、第2のボディ部、第3のボディ部、リリース部にそれぞれ対応している。第1及び第2のボディ部というように、複数のボディ部がある理由は、同じ音のボディ部であってもアーティキュレーションが異なっている(例えばビブラートの速さ等が変化している)場合があり、そのような場合に対応している。AS#4は、スラー変化による音と音のつながりの部分に対応している。この部分AS#4は、2つのアーティキュレーション中単位AM#1,AM#2の切り出し方によっていずれか一方(AM#1の終わりの部分又はAM#2の始まりの部分)から取り出せばよい。あるいは、このようなスラー変化による音と音のつながりの部分AS#4は、始めからアーティキュレーション中単位として取り出すようにしてもよい。その場合は、アーティキュレーション大単位AL#3は、3つのアーティキュレーション中単位に分割されることになり、真中のアーティキュレーション中単位つまり音と音のつながりの部分は、そのままアーティキュレーション最小単位AS#4に相当することになる。このようにスラー変化による音と音のつながりの部分AS#4を単独で取り出すようにした場合は、該部分AS#4を他の音と音とをつなげる部分にも使用することにより、これらの音をスラーでつなげるようにすることもできる。
【0020】
図2(d)に示したようなアーティキュレーション最小単位AS#1〜AS#8が、ステップS2の処理で分割される複数の時間区間に相当する。以下では、このようなアーティキュレーション最小単位をアーティキュレーションエレメントとも呼ぶことにする。なお、アーティキュレーション最小単位の分割の仕方は上記例に限らないので、アーティキュレーション最小単位すなわちアーティキュレーションエレメントが必ずしも音の部分のみに対応しているとは限らない。
【0021】
図1において、次のステップS3は、分割した各時間区間(アーティキュレーション最小単位AS#1〜AS#8すなわちアーティキュレーションエレメント)毎の波形データを所定の複数の楽音要素について分析し、分析した各楽音要素の特性を示すデータを生成するステップである。分析する楽音要素としては、例えば、波形(音色)、振幅(音量)、ピッチ(音高)、時間などの要素がある。これらの楽音要素は、当該時間区間における波形データの構成要素(エレメント)であると共に、当該時間区間におけるアーティキュレーションの構成要素(エレメント)でもある。
次のステップS4では、生成した各要素の特性を示すデータをデータベースに蓄積する。データベースでは、蓄積したこれらのデータをテンプレートデータとして、楽音合成に際して、利用可能にする。
これらの楽音要素の分析の仕方の一例を示すと次のようであり、各楽音要素の特性を示すデータ(テンプレートデータ)の一例を示すと図3のようである。また、図2(e)にも、1つのアーティキュレーション最小単位から分析される各楽音要素の種類が例示されている。
【0022】
▲1▼ 波形(音色)要素については、当該時間区間(アーティキュレーションエレメント)におけるオリジナルのPCM波形データをそのまま取り出す。これを波形テンプレート(Timbre テンプレート)としてデータベースに記憶する。この波形(音色)要素を示す記号として、“Timbre”を用いることにする。
▲2▼ 振幅(音量)要素については、当該時間区間(アーティキュレーションエレメント)におけるオリジナルのPCM波形データの音量エンベロープ(時間経過に従う音量振幅変化)を抽出し、振幅エンベロープデータを得る。これを振幅テンプレート(Amp テンプレート)としてデータベースに記憶する。この振幅(音量)要素を示す記号として、“Amp”(Amplitudeの略)を用いることにする。
▲3▼ ピッチ(音高)要素については、当該時間区間(アーティキュレーションエレメント)におけるオリジナルのPCM波形データのピッチエンベロープ(時間経過に従うピッチ変化)を抽出し、ピッチエンベロープデータを得る。これをピッチテンプレート(Pitch テンプレート)としてデータベースに記憶する。このピッチ要素を示す記号として、“Pitch”を用いることにする。
【0023】
▲4▼ 時間要素については、当該時間区間(アーティキュレーションエレメント)におけるオリジナルのPCM波形データの時間長をそのまま用いる。従って、当該区間のオリジナルの時間長(可変値である)を比「1」で示すこととすれば、データベース作成時においてこの時間長をあえて分析・測定する必要はない。その場合、時間要素についてのデータすなわち時間テンプレート(TSCテンプレート)はどの区間(アーティキュレーションエレメント)でも同じ値“1”であるから、これをテンプレートデータベースにあえて記憶しておかなくてもよい。勿論、これに限らず、この実際の時間長を分析・測定し、これを時間テンプレートデータとしてデータベースに記憶するようにする変形例も実施可能である。
【0024】
ところで、波形データのオリジナルの時間長を可変制御する技術として、該波形データのピッチに影響を与えることなく該波形データを時間軸方向に伸張または圧縮する制御が、未公開ではあるが、「Time Stretch & Compress」制御(略して「TSC制御」)として本発明者によって既に提案されている。本実施例においてもそのような「TSC制御」を利用するものとしており、時間要素の記号として使用するTSCはこの略号である。楽音合成時において、このTSC値を“1”に固定せずに、その他の適宜の値に設定することにより、再生波形信号の時間長を可変制御することができる。その場合、そのTSC値は、時間的に変化する値(例えばエンベロープ等適宜の時間関数)として与えるようにしてもよい。なお、このTSC制御は、オリジナル波形におけるビブラートやスラー等の特殊な奏法がかけられた部分の時間長を自在に可変制御する場合などに役立てることができる。
【0025】
以上説明したような処理を、様々な自然楽器について、様々な奏法で(様々な楽曲フレーズについて)、それぞれ行い、各自然楽器毎に多数のアーティキュレーションエレメントについての各楽音要素毎のテンプレートを作成し、これらをデータベースに蓄積する。また、自然楽器に限らず、人の声や雷の音など、自然界に存在する様々な音について、上記のようなサンプリングとアーティキュレーション分析の処理を行い、その結果得られる各要素毎の多様なテンプレートデータをデータベースに蓄積するようにしてよい。勿論、サンプリングのために生演奏するフレーズは、上記例のような数小節からなるフレーズに限らず、必要に応じてもっと短いフレーズ(例えば図2(b)に示したような1つのフレージング小単位)のみであってもよいし、あるいは反対に1つの曲全部であってもよい。
【0026】
データベースDBの構成は、例えば図4に示すように、テンプレートデータベースTDBとアーティキュレーションデータベースADBとに大別される。なお、データベースDBのハードウェアとしては周知のようにハードディスク装置や光磁気ディスク装置などの読み書き可能な記憶媒体(好ましくは大容量媒体)が用いられる。
テンプレートデータベースTDBは、上記のようにして作成された多数のテンプレートデータを蓄積するものである。なお、テンプレートデータベースTDBに記憶するテンプレートデータは、必ずしもその全てが上記のような演奏音又は自然音のサンプリングと分析に基づくものである必要はなく、要するに、テンプレート(出来合いのデータ)として予め用意されたものであればよく、データ編集作業によって人為的に任意に作成したものであってもよい。例えば、時間要素についてのTSCテンプレートは、サンプリングした演奏音に基づくものである限りは上述のように通常は“1”であるが、自由な変化パターン(エンベロープ)で作成することができるものであるから、様々なTSC値又はその時間的変化のエンベロープ波形をTSCテンプレートデータとして作成し、データベースに記憶させておくようにしてよい。また、テンプレートデータベースTDBに記憶するテンプレートの種類も、上記のようなオリジナル波形から分析した特定の要素に対応するものに限らず、楽音合成の際の便宜を図るためにその他の種類のものを適宜増加してよい。例えば、楽音合成の際にフィルタを使用して音色制御を行う場合、フィルタ係数セット(時変動フィルタ係数セットを含む)をテンプレートデータとして多数用意し、これをテンプレートデータベースTDBに記憶しておくようにしてよい。勿論、このようなフィルタ係数セットは、オリジナル波形の分析に基づき作成するようにしてもよいし、その他適宜の手段で作成するようにしてもよい。
【0027】
テンプレートデータベースTDBに記憶された各テンプレートデータのデータ構成は、図3に例示したような各テンプレートデータの内容そのものを表わすデータからなる。例えば、波形(Timbre)テンプレートは、PCM波形データそのものである。また、振幅(Amp)エンベロープやピッチ(Pitch)エンベロープ、TSCエンベロープなどのエンベロープ波形も、そのエンベロープ形状をPCM符号化したものであってよい。しかし、テンプレートデータベースTDBにおけるエンベロープ波形状のテンプレートのデータ記憶構成を圧縮するために、エンベロープ波形を折線近似するためのパラメータデータ(公知のように各折線の傾きレートと目標レベルあるいは時間等を示すデータのセットからなる)の形式でこれらのテンプレートデータを記憶してもよい。
【0028】
また、波形(Timbre)テンプレートも、PCM波形データ以外の適宜のデータ圧縮された形式で記憶するようにしてもよい。また、その他の適宜のデータ形式で波形すなわち音色(Timbre)テンプレートデータを記憶するようにしてもよい。すなわち、波形(Timbre)テンプレートデータは、例えばDPCM又はADPCM等、PCM形式以外のデータ圧縮化したコード化形式からなる波形データであってもよいし、あるいは、波形サンプル値を直接示していない波形形成用データすなわち波形合成用のパラメータ、からなるものであってよい。その種のパラメータによる波形合成方式としては、フーリエ合成あるいはFM(周波数変調)合成あるいはAM(振幅変調)合成あるいは物理モデル音源あるいはSMS波形合成(確定成分と不確定成分とを用いて波形合成する技術)など、種々知られているので、これらのいずれかの波形合成方式を採用し、そのための波形合成用パラメータを波形(Timbre)テンプレートデータとしてデータベースに記憶するようにしてよい。その場合、波形(Timbre)テンプレートデータ、つまり波形合成用パラメータ、に基づく波形形成処理は、それに対応する波形合成用の演算装置又はプログラム等によって行われるのは勿論である。その場合、所望形状の波形を形成するための波形合成用パラメータセットを、1つのアーティキュレーションエレメント、つまり時間区間、に対応して複数セット記憶しておき、波形合成に使用するパラメータセットを時間経過に従って切り替えることにより、1アーティキュレーションエレメント内での波形形状の時変動を実現するようにしてもよい。
【0029】
また、波形(Timbre)テンプレートを、PCM波形データで記憶する場合であっても、公知のループ読出し技術を採用できる場合(例えばボディ部のように音色波形が安定していて余り時間変化しないような部分についての波形データ)は、当該区間の波形を全部記憶せずにその一部の波形データのみを記憶しておくようにしてよい。また、サンプリングと分析の結果得られた異なる時間区間すなわちアーティキュレーションエレメントについてのテンプレートデータの内容が、同一か似通っている場合は、それぞれのテンプレートデータをデータベースTDBに記憶することなく、1つだけを記憶しておき、楽音合成時にこれを共用することにより、データベースTDBの記憶量を節約することができる。また、テンプレートデータベースTDBの構成は、基本のデータベースの供給者(例えば電子楽器メーカー)が予め作成したプリセット領域と、ユーザーが自由に追加作成できるユーザー領域等を含んでいてもよい。
【0030】
アーティキュレーションデータベースADBは、1又は複数のアーティキュレーションを含む演奏を構築するために、アーティキュレーションを記述するデータ(すなわち1又は複数のアーティキュレーションエレメントの組合せによって一連の演奏を記述するデータ及び各アーティキュレーションエレメントを記述するデータ)を、多様な演奏ケース及び奏法に対応して、それぞれ記憶しているものである。
図4のブロック中には、「Instrument 1」と名付けた或る1つの楽器音についてのデータベース構成が例示されている。アーティキュレーション・エレメント・シーケンスAESEQは、1又は複数のアーティキュレーションを含む演奏フレーズ(すなわちアーティキュレーション演奏フレーズ)を、1又は複数のアーティキュレーションエレメントを順次に指示するシーケンスデータの形式で記述するものである。例えば、このアーティキュレーションエレメントシーケンスは、前記サンプリングと分析の工程において分析された図2(d)に示したようなアーティキュレーション最小単位(アーティキュレーションエレメント)の時系列的順序に相当するものである。その楽器音を演奏する場合に有り得る様々な奏法を網羅しうるように、多数のアーティキュレーションエレメントシーケンスAESEQを記憶している。なお、1つのアーティキュレーションエレメントシーケンスAESEQは、図2(b)に示したような「フレージングの小単位」(アーティキュレーション大単位AL#1,AL#2,AL#3,AL#4)の1つであってもよいし、若しくはこれらの「フレージングの小単位」(AL#1,AL#2,AL#3,AL#4)のいくつかからなっていてもよいし、あるいは図2(c)に示したような「アーティキュレーション中単位」(AM#1,AM#2)の1つであってもよいし、あるいはこれらの「アーティキュレーション中単位」(AM#1,AM#2)のいくつかに対応していてもよい。
【0031】
アーティキュレーション・エレメント・ベクトルAEVQは、その楽器音(Instrument 1)についてテンプレートデータベースTDBで用意(蓄積)されている全てのアーティキュレーションエレメントについての各楽音要素毎のテンプレートデータのインデックスを、個々のテンプレートを指示するベクトルデータの形式で(例えばテンプレートデータベースTDBから所要のテンプレートを引き出すためのアドレスデータの形式で)、記憶しているものである。例えば、図2(d)(e)の例に示されるように、或るアーティキュレーションエレメントAS#1に対応して、そのアーティキュレーションエレメントに相当する部分的楽音を構成する各要素(波形、振幅、ピッチ、時間)についての4つのテンプレートTimbre, Amp, Pitch, TSCをそれぞれ具体的に指示するベクトルデータ(これをエレメントベクトルという)を記憶している。
【0032】
1つのアーティキュレーションエレメントシーケンス(奏法シーケンス)AESEQにおいては、複数のアーティキュレーションエレメントのインデックスが演奏順に従って記述されており、そこに記述された各アーティキュレーションエレメントを構成するテンプレートのセットは、アーティキュレーションエレメントベクトルAEVQを参照することにより引き出すことができるようになっている。
図5の(a)は、いくつかのアーティキュレーションエレメントシーケンスAESEQ#1〜AESEQ#7の一例を示している。この図の読み方について説明すると、例えば、AESEQ#1=(ATT−Nor,BOD−Vib−nor,BOD−Vib−dep1,BOD−Vib−dep2,REL−Nor)は、シーケンス番号1のシーケンスAESEQ#1は、ATT−Nor,BOD−Vib−nor,BOD−Vib−dep1,BOD−Vib−dep2,REL−Norという5つのアーティキュレーションエレメントのシーケンスからなる、ということを示している。各アーティキュレーションエレメントのインデックス記号の意味は次の通りである。
【0033】
ATT−Norは「ノーマルアタック」(アタック部が標準的に立ち上がる奏法)を示す。
BOD−Vib−norは「ボディ・ノーマルビブラート」(ボディ部に標準的なビブラートが付けられる奏法)を示す。
BOD−Vib−dep1は「ボディ・ビブラートディプス1」(ボディ部に標準よりも1段階深いビブラートが付けられる奏法)を示す。
BOD−Vib−dep2は「ボディ・ビブラートディプス2」(ボディ部に標準よりも2段階深いビブラートが付けられる奏法)を示す。
REL−Norは「ノーマルリリース」(リリース部が標準的に立ち下がる奏法)を示す。
【0034】
従って、シーケンスAESEQ#1は、ノーマルアタックで始まり、ボディ部では最初はノーマルビブラートがつけられ、次にそのビブラートが少し深くなり、次いでさらにビブラートが深くなり、最後にリリース部では標準的な音の立ち下がりをみせる、というアーティキュレーションからなっている。
例示的に示された他のシーケンスAESEQ#2〜AESEQ#6についても、同様に、図5(a)におけるアーティキュレーションエレメントの記号表現から、そのアーティキュレーションが理解できるであろう。
参考のために図5(a)に示された他のいくつかのアーティキュレーションエレメントの記号の意味について説明すると次の通りである。
【0035】
BOD−Vib−spd1は「ボディ・ビブラートスピード1」(ボディ部に標準よりも1段階速いビブラートが付けられる奏法)を示す。
BOD−Vib−spd2は「ボディ・ビブラートスピード2」(ボディ部に標準よりも2段階速いビブラートが付けられる奏法)を示す。
BOD−Vib−d&s1は「ボディ・ビブラートディプス&スピード1」(ボディ部に付けるビブラートの深さと速さをそれぞれ標準より1段階上げる奏法)を示す。
BOD−Vib−briは「ボディ・ビブラートブリリアント」(ボディ部にビブラートを付け、かつその音色を派手にする奏法)を示す。
BOD−Vib−mld1は「ボディ・ビブラートマイルド1」(ボディ部にビブラートを付け、かつその音色を少しマイルドにする奏法)を示す。
BOD−Cre−norは「ボディ・ノーマルクレッシェンド」(ボディ部に標準的なクレッシェンドを付ける奏法)を示す。
BOD−Cre−vol1は「ボディ・クレッシェンドボリューム1」(ボディ部に付けるクレッシェンドのボリュームを1段階上げた奏法)を示す。
ATT−Bup−norは「アタック・ベンドアップノーマル」(アタック部のピッチを標準的な深さと速さでベンドアップする奏法)を示す。
REL−Bdw−norは「リリース・ベンドダウンノーマル」(リリース部のピッチを標準的な深さと速さでベンドダウンする奏法)を示す。
【0036】
従って、シーケンスAESEQ#2は、ノーマルアタックで始まり、ボディ部では最初はノーマルビブラートがつけられ、次にそのビブラートスピードが少し速くなり、次いでさらにビブラートスピードが速くなり、最後にリリース部では標準的な音の立ち下がりをみせる、という変化を示すアーティキュレーション(奏法)に対応している。
また、シーケンスAESEQ#3は、ビブラートの深さを徐々に深くすると共に、スピードも徐々に速くする、という変化を示すアーティキュレーション(奏法)に対応している。
また、シーケンスAESEQ#4は、ビブラート時の波形の音質(音色)を変化させるアーティキュレーション(奏法)に対応している。
シーケンスAESEQ#5は、クレッシェンドをつけるアーティキュレーション(奏法)に対応している。
シーケンスAESEQ#6は、アタック部のピッチがベッドアップする(ピッチが徐々に上がる)アーティキュレーション(奏法)に対応している。
シーケンスAESEQ#7は、リリース部のピッチがベッドダウンする(ピッチが徐々に下がる)アーティキュレーション(奏法)に対応している。
アーティキュレーションエレメントシーケンス(奏法シーケンス)には、上記に限らず、更に多数種類有りうるが、特に詳しく図示しない。
【0037】
図5の(b)は、いくつかのアーティキュレーションエレメントに関するアーティキュレーションエレメントベクトルAEVQの構成例を示している。この図の読み方について説明すると、括弧内において、各要素に対応するテンプレートを指示するベクトルデータが記述されている。各ベクトルデータにおいて先頭の記号はそのテンプレートの種類を示している。すなわち、Timbは波形(Timbre)テンプレートであることを示し、Ampは振幅(Amp)テンプレートであることを示し、Pitはピッチ(Pitch)テンプレートであることを示し、TSCは時間(TSC)テンプレートであることを示す。
【0038】
例えば、ATT−Nor=(Timb−A−nor,Amp−A−nor,Pit−A−nor,TSC−A−nor)は、「ノーマルアタック」の意味を持つアーティキュレーションエレメントATT−Norは、Timb−A−nor(アタック部の標準的な波形テンプレート),Amp−A−nor(アタック部の標準的な振幅テンプレート),Pit−A−nor(アタック部の標準的なピッチテンプレート),TSC−A−nor(アタック部の標準的なTSCテンプレート)という4つのテンプレートによって波形合成されるものである、ということを示している。
【0039】
別の例を示すと、「ボディ・ビブラートディプス1」の意味を持つアーティキュレーションエレメントBOD−Vib−dep1は、Timb−B−vib(ボディ部のビブラート用の波形テンプレート),Amp−B−dp3(ボディ部のビブラート深さ3用の振幅テンプレート),Pit−B−dp3(ボディ部のビブラート深さ3用のピッチテンプレート),TSC−B−vib(ボディ部のビブラート用のTSCテンプレート)という4つのテンプレートによって波形合成される。
更に別の例を示すと、「リリース・ベンドダウンノーマル」の意味を持つアーティキュレーションエレメントREL−Bdw−norは、Timb−R−bdw(リリース部のベンドダウン用の波形テンプレート),Amp−R−bdw(リリース部のベンドダウン用の振幅テンプレート),Pit−R−bdw(リリース部のベンドダウン用のピッチテンプレート),TSC−R−bdw(リリース部のベンドダウン用のTSCテンプレート)という4つのテンプレートによって波形合成される。
【0040】
なお、アーティキュレーションの編集を容易にするために、各アーティキュレーションエレメントシーケンスの特徴を概略的に説明する属性情報ATRを、各アーティキュレーションエレメントシーケンスAESEQに付属して記憶しておくようにするとよい。同様に、各アーティキュレーションエレメントの特徴を概略的に説明する属性情報ATRを、各アーティキュレーションエレメントベクトルAEVQに付属して記憶しておくようにするとよい。
要するに、このような属性情報ATRは、各アーティキュレーションエレメント(図2(d)に示したようなアーティキュレーション最小単位)の特徴を説明するものである。アタック部に関連するアーティキュレーションエレメントを例にして、そのアーティキュレーションエレメントの記号(インデックス)と、それぞれの属性情報ATRの内容、及び各楽音要素のテンプレートを指示する各ベクトルデータの一例を図6に示す。
【0041】
図6の例では、属性情報ATRも階層化されて管理されている。すなわち、アタック部に関連するアーティキュレーションエレメントにはすべて共通の「アタック」という属性情報が付与され、そのうちの標準のエレメントに対しては「ノーマル」という属性情報が更に付与され、また、そのうちのベンドアップ奏法が適用されるエレメントに対しては「ベンドアップ」という属性情報が付与され、ベンドダウン奏法が適用されるエレメントに対しては「ベンドダウン」という属性情報が付与される。更に、ベンドアップ奏法が適用されるエレメントのうち、標準的なものに対しては「ノーマル」という属性情報が付与され、標準よりベンドの深さが浅いものに対しては「ディプス・浅い」という属性情報が付与され、標準よりベンドの深さが深いものに対しては「ディプス・深い」という属性情報が付与され、標準よりベンドのスピードが遅いものに対しては「スピード・遅い」という属性情報が付与され、標準よりベンドのスピードが速いものに対しては「スピード・速い」という属性情報が付与される。図示を省略したが、ベンドダウン奏法が適用されるエレメントに対しても、同様に、更に細分化された属性情報が付与される。
【0042】
図6においては、また、異なるアーティキュレーションエレメント間においてテンプレートデータが共用されるものがあることが示されている。図6において、奏法の各インデックス(アーティキュレーションエレメントインデックス)の欄に記載された4種のテンプレートのベクトルデータ(換言すればテンプレートインデックス)が、該アーティキュレーションエレメントの部分的音を形成するためのテンプレートを指示するベクトルデータを示しており、この読み方は図5(b)と同様である。ここで、ベンドアップの属性を持つエレメントにおいて、=記号を記したものは、そのノーマル時のテンプレートと同じものを使用することを意味している。例えば、ベンドアップ奏法用の波形(Timbre)テンプレートは、すべてベンドアップノーマル用の波形テンプレートTimb−A−bupと同じものを使用する。また、ベンドアップ奏法用の振幅(Amp)テンプレートは、すべてベンドアップノーマル用の振幅テンプレートAmp−A−bupと同じものを使用する。これは、ベンドアップ奏法が微妙に変化してもその波形や振幅エンベロープは変えることなく共通のものを使用しても音質上差し支えないからである。これに対して、ピッチ(Pitch)テンプレートは、ベンドアップ奏法におけるディプスの程度に合わせて異なるものを使用しなければならない。例えば、「ディプス・浅い」の属性を持つアーティキュレーションエレメントATT−Bup−dp1においては、それに相応するピッチ(Pitch)テンプレート(浅いベンドアップ特性に対応するピッチエンベロープのテンプレート)を指示するために、浅いベンドアップ特性に対応するピッチエンベロープのテンプレートを指示するベクトルデータPit−A−dp1が使用される。
【0043】
このようにテンプレートデータの共用化を図ることによりテンプレートデータベースTDBの記憶量を節約することができる。また、データベース作成時において、すべての奏法について生演奏を録音する必要がない。
なお、図6を参照すると、ベンドアップ奏法のスピードは、時間(TSC)テンプレートを異ならせることによって調整されることが理解できる。ピッチベンドのスピードは、所定の初期ピッチから目標ピッチまで到達するのに要する時間に対応しているから、オリジナルの波形データが所定のピッチベンド特性(或る時間内に所定の初期ピッチから目標ピッチまでベンドするという特性)を持っている場合、そのオリジナルの波形データの時間長をTSC制御によって可変制御すれば、初期ピッチから目標ピッチまで到達するのに要する時間つまりベンドのスピードを調整することができる。このような時間(TSC)テンプレートによる波形時間長可変制御は、楽音立ち上がりのスピードや、スラーのスピード、ビブラートのスピードなど、各種奏法のスピードの調整に適している。例えば、スラーにおけるピッチの変化は、ピッチ(Pitch)テンプレートによっても実現することができるが、時間(TSC)テンプレートを用いてTSC制御を行った方が自然なスラー変化を実現することができる。
【0044】
アーティキュレーションデータベースADBにおけるアーティキュレーションエレメントベクトルAEVQは、アーティキュレーションエレメントインデックスによってアドレッシングされることができるのは勿論であり、また、属性情報ATRによってアドレッシングされることができるものとする。これによって、所望の属性情報ATRをキーワードとしてアーティキュレーションデータベースADBに検索をかけることにより、該キーワードに該当する属性を持つアーティキュレーションエレメントとしてどのようなものがあるかを検索することができ、ユーザーによるデータ編集作業に便利である。このような属性情報ATRは、アーティキュレーションエレメントシーケンスAESEQにも付加しておくとよい。これによって、所望の属性情報ATRをキーワードとしてアーティキュレーションデータベースADBに検索をかけることにより、該キーワードに該当する属性を持つアーティキュレーションエレメントを含んでいるアーティキュレーションエレメントシーケンスAESEQを検索することができる。
なお、アーティキュレーションデータベースADBにおけるアーティキュレーションエレメントベクトルAEVQをアドレッシングするためのアーティキュレーションエレメントインデックスは、アーティキュレーションエレメントシーケンスAESEQの読出しに従って与えられるようになっているのは勿論であるが、編集作業のためにあるいはリアルタイムの自由な音作りのために、所望のアーティキュレーションエレメントインデックスを単独でアドレス入力してもよいようにするのがよい。
【0045】
アーティキュレーションデータベースADBにおいては、ユーザーが所望のアーティキュレーションエレメントシーケンスを作成しこれを記憶保存しておくことができるように、ユーザーアーティキュレーションエレメントシーケンスURSEQを記憶するエリアも有している。このようなユーザーエリアにおいては、ユーザーが作成したアーティキュレーションエレメントベクトルデータをも記憶しておくようにしてよい。
アーティキュレーションデータベースADBにおいては、アーティキュレーションエレメントベクトルAEVQの下位のベクトルデータとしてパーシャルベクトルPVQを記憶している。アーティキュレーションエレメントベクトルAEVQで指定されたテンプレートデータが、テンプレートデータベースTDBにおいて当該アーティキュレーションエレメントの全時間区間のデータとしてではなく、一部のデータとして記憶されている場合、この一部のデータからなるテンプレートデータをループ読出し(繰り返し読出し)して当該アーティキュレーションエレメントの全時間区間のデータを再生するようになっている。そのようなループ読出しに必要なデータがパーシャルベクトルPVQとして記憶されている。その場合、例えば、アーティキュレーションエレメントベクトルAEVQには、上記各テンプレートデータのほかにパーシャルベクトルPVQを指示するデータを記憶しており、このパーシャルベクトル指示データによってパーシャルベクトルPVQのデータを読み出し、このパーシャルベクトルPVQのデータによってループ読出しを制御する。従って、パーシャルベクトルPVQは、ループ読出し制御のために必要なループ開始アドレスやループ終了アドレス等を指示するデータを含んでいる。
【0046】
更に、アーティキュレーションデータベースADBにおいては、楽音合成時において時間的に隣接するアーティキュレーションエレメント間での波形データの接続の際のルールを記述したルールデータRULEを記憶している。例えば、時間的に隣接するアーティキュレーションエレメント間で波形のクロスフェード補間を行って滑らかに接続するとか、クロスフェード補間を行わずに直接的に接続するとか、あるいはクロスフェード波形補間をおこう場合にどのようなクロスフェード法を使用するか、等のルールを、各シーケンスに対応して、あるいはシーケンス内の各アーティキュレーションエレメントに対応して、記憶している。この接続ルールも、ユーザーによるデータ編集の対象とすることができる。
アーティキュレーションデータベースADBにおいては、以上例示的に説明したようなデータ構成からなるアーティキュレーションデータベースを各楽器音(自然楽器音色)毎に設け、また、各種の人声音(若い女性の声、若い男性の声、バリトン、ソプラノ等)毎に設け、また、各種の自然音(雷の音、波の音等々)毎に、等々、各種設ける。
【0047】
〔楽音合成の概略〕
上記のようにして作成されたデータベースDBを利用して楽音を合成する手順の概略を図7に示す。
まず、発生しようとする楽音演奏(複数音からなる演奏フレーズ又は1音でもよい)に対応する所要の奏法シーケンスを指示する(ステップS11)。この奏法シーケンスの指示は、アーティキュレーションデータベースADBに記憶されている所望の楽器音(又は人声音又は自然音等)のアーティキュレーションエレメントシーケンスAESEQ又はURSEQの1つを選択的に指示することからなっていてよい。
【0048】
このような奏法シーケンス(すなわちアーティキュレーションエレメントシーケンス)の指示は、ユーザーによるリアルタイム演奏操作に基づいて与えることができるようになっていてもよいし、あるいは自動演奏データに基づいて与えることができるようになっていてもよい。前者の場合は、例えば、鍵盤やその他の演奏操作子に対して各種の奏法シーケンスを予め割り当てておき、該操作子の操作に応じてそこに割り当てられている奏法シーケンス指示データを発生するようにすることができる。後者の場合、1つの手法として、図8の(a)に略示するように、所望の楽曲に対応するMIDI形式等の自動演奏シーケンスデータの中にイベントデータとして奏法シーケンス指示データをそれぞれ組み込んで記憶しておき、自動演奏再生時に所定の各イベント再生時点で各奏法シーケンス指示データが読み出されるようにすることができる。なお、図8で、DURは次のイベントまでの時間間隔を示すデュレーションデータ、EVENTはイベントデータ、MIDIは当該イベントデータに付属する演奏データがMIDI形式のデータであること、AESEQは当該イベントデータに付属する演奏データが奏法シーケンス指示データであること、を示す。この場合は、MIDI形式等の自動演奏データに基づく自動演奏と本発明に従う奏法シーケンスに基づく自動演奏とのアンサンブルを行うことができる。その場合、例えば、メインのソロ若しくはメロディ演奏楽器パートを本発明に従う奏法シーケンスすなわちアーティキュレーションエレメント合成で演奏し、他の楽器パートをMIDIデータに基づく自動演奏で行う、といった形態をとることができる。
【0049】
また、後者の別の手法として、図8の(b)に略示するように、所望の楽曲に対応して複数の奏法シーケンス指示データAESEQのみをイベントデータ形式で記憶しておき、これを所定の各イベント再生時点で読み出すようにしてもよい。これによって、従来にはなかった、楽曲のアーティキュレーションシーケンス自動演奏を行うことができる。
更に、後者の別の手法として、所望の楽曲に対応するMIDI形式等の自動演奏シーケンスデータのみを記憶しておき、この自動演奏シーケンスデータを演奏解釈プログラムによって分析することにより、各フレーズ又は音符毎の奏法すなわちアーティキュレーションを自動的に解析し、この解析結果として奏法シーケンス指示データを発生するようにしてもよい。
また、奏法シーケンスの別の指示方法としては、ユーザーが所望の1又は複数の属性情報を入力し、これをキーワードとしてアーティキュレーションデータベースADBに検索を掛けることにより、1又は複数のアーティキュレーションエレメントシーケンスAESEQを自動的にリストアップし、その中から所望のシーケンスを選択指定するようにしてもよい。
【0050】
図7において、選択されたアーティキュレーションエレメントシーケンスAESEQ又はURSEQにおいては、所定の演奏順序に従ってアーティキュレーションエレメント(AE)インデックスを読み出す(ステップS12)。
そして、読み出されたアーティキュレーションエレメント(AE)インデックスに対応するアーティキュレーションエレメントベクトル(AEVQ)を読み出す(ステップS13)。
そして、読み出されたアーティキュレーションエレメントベクトル(AEVQ)によって指示された各テンプレートデータをテンプレートデータベースTDBから読み出す(ステップS14)。
【0051】
そして、読み出された各テンプレートデータに従って1つのアーティキュレーションエレメント(AE)の波形データ(部分的音)を合成する(ステップS15)。この波形合成の仕方は、基本的には、波形(Timbre)テンプレートデータに該当するPCM波形データをテンプレートデータベースTDBからピッチ(Pitch)テンプレートに従う読み出し速度でかつ時間(TSC)テンプレートに従う時間長で読み出し、読み出したPCM波形データの振幅エンベロープを振幅(Amp)テンプレートに従って制御することからなる。なお、この実施例では、テンプレートデータベースTDBに記憶する波形(Timbre)テンプレートデータはサンプリングしたオリジナル波形のピッチと振幅エンベロープ及び時間長をそのまま持っているものとしているので、ピッチ(Pitch)テンプレート、振幅(Amp)テンプレート、時間(TSC)テンプレートのそれぞれがサンプリングしたオリジナル波形のものから変更されていない場合は、テンプレートデータベースTDBに記憶されている波形(Timbre)テンプレートデータに対応するPCM波形データをそのまま読み出したものが当該アーティキュレーションエレメントについての波形データとなる。追って説明するデータ編集等によって、ピッチ(Pitch)テンプレート、振幅(Amp)テンプレート、時間(TSC)テンプレートのいずれかが、サンプリングしたオリジナル波形のものから変更された場合は、その変化分に応じて、テンプレートデータベースTDBに記憶されている波形(Timbre)テンプレートデータの読み出し速度が可変制御されたり(ピッチテンプレートが変更された場合)、その読み出し時間長が可変制御されたり(時間テンプレートが変更された場合)、読み出し波形に対する振幅エンベロープが可変制御されたり(振幅テンプレートが変更された場合)する。
なお、当該アーティキュレーションエレメントAEについて前述のパーシャルベクトルPVQが適用される場合は、必要なループ読み出し制御もなされる。
【0052】
次に、以上のように波形合成された各アーティキュレーションエレメントの波形データを順次接続する処理が行われ、その結果、複数のアーティキュレーションエレメントの時系列的組み合わせからなる一連の演奏音が発生される(ステップS16)。ここでの接続処理は、アーティキュレーションデータベースADBに記憶されているルールデータRULEに従って制御される。例えば、ルールデータRULEが直接接続を指示している場合は、ステップS15で合成された各アーティキュレーションエレメントの波形データをただその発生順序に従って順次切り換えて発音するだけでよい。また、ルールデータRULEが所定のクロスフェード補間を指示している場合は、指示された補間形式に従って、先行するアーティキュレーションエレメントの終わりの部分の波形データと後続するアーティキュレーションエレメントの始まりの部分の波形データとをクロスフェード補間合成し、波形が滑らかにつながるようにする。例えば、サンプリングしたオリジナル波形そのままに接続される場合は、元々各アーティキュレーションエレメント同士は滑らかにつながることが保証されているので、ルールデータRULEは直接接続を指示していてよい。それ以外の場合は、アーティキュレーションエレメント同士が滑らかにつながることは保証されていないので、何らかの補間合成を行うのがよい。後述するように、複数種のクロスフェード補間形式のいずれかをルールデータRULEによって任意に選択することができるようになっている。
【0053】
ステップS11〜S16に略示したような一連の演奏音合成処理は、1つの楽器音(又は人声音又は自然音)について1つの楽音合成チャンネルで行われる。複数の楽器音(又は人声音又は自然音)についての演奏音合成処理を同時並行的に行う場合は、ステップS11〜S16に略示したような一連の演奏音合成処理を複数チャンネルで時分割的に又は並列的に行うようにすればよい。なお、後述するように、クロスフェード合成処理を用いて楽音波形を形成する場合は、1つの楽音合成チャンネルにつき、2つの波形発生チャンネル(フェードアウトする波形を発生するチャンネルと、フェードインする波形を発生するチャンネル)を使用する。
【0054】
図9は、いくつかの奏法シーケンスについて、該シーケンスにおけるアーティキュレーションエレメントの組合せ例を略示するものである。(a)に示す奏法シーケンス#1は、最も単純な組合せ例を示しており、アタック部のアーティキュレーションエレメントA#1、ボディ部のアーティキュレーションエレメントB#1、リリース部のアーティキュレーションエレメントR#1が順次接続されてなるものであり、各エレメント間の接続部分はクロスフェード補間されるようになっている。(b)に示す奏法シーケンス#2は、主要音の前に装飾音が付加されるアーティキュレーション組合せ例を示しており、装飾音用のアタック部のアーティキュレーションエレメントA#2、装飾音用のボディ部のアーティキュレーションエレメントB#2、主要音用のアタック部のアーティキュレーションエレメントA#3、主要音用のボディ部のアーティキュレーションエレメントB#3、主要音用のリリース部のアーティキュレーションエレメントR#3が順次接続されてなるものであり、各エレメント間の接続部分はクロスフェード補間される。(c)に示す奏法シーケンス#3は、先行音と後続音がスラーで結ばれるアーティキュレーション組合せ例を示しており、先行音用のアタック部のアーティキュレーションエレメントA#4、先行音用のボディ部のアーティキュレーションエレメントB#4、スラー用部分音のボディ部のアーティキュレーションエレメントB#5、後続音用のボディ部のアーティキュレーションエレメントB#6、後続音用のリリース部のアーティキュレーションエレメントR#6が順次接続されてなるものであり、各エレメント間の接続部分はクロスフェード補間される。なお、図において、各アーティキュレーションエレメントに対応する部分音波形は、便宜上、エンベロープのみで略示されているが、実際は、上述のように波形(Timbre),振幅(Amp),ピッチ(Pitch),時間(TSC)の各テンプレートデータに基づいて合成された波形データからなっている。
【0055】
図10は、1つの楽音合成チャンネルにおいて、複数のアーティキュレーションエレメントに対応する部分音波形を順次発生しクロスフェード接続する処理の具体例を示すタイムチャートである。1つの楽音合成チャンネルにつき、2つのエレメント波形をクロスフェード合成するために、具体的には2つの波形発生チャンネルを使用する。図10(a)は第1の波形発生チャンネルでの波形発生例を示し、(b)は第2の波形発生チャンネルでの波形発生例を示す。(a)及び(b)において、夫々の上段に示された「合成された波形データ」とは、当該アーティキュレーションエレメントに対応する部分音波形として上述のように波形(Timbre),振幅(Amp),ピッチ(Pitch),時間(TSC)等の各テンプレートデータに基づいて合成された波形データ(例えば図7のステップS15で合成される波形データ)を示しており、それぞれの下段に示された「クロスフェード制御波形」とは、各エレメントに対応する部分音波形同士をクロスフェード接続するために使用される制御波形を示している。この「クロスフェード制御波形」は、例えば図7のフローでは、ステップS16の処理の過程で形成される。それぞれのチャンネルの下段のクロスフェード制御波形によって上段のエレメント波形データの振幅を制御し、各チャンネル(第1及び第2の波形発生チャンネル)のクロスフェード振幅制御済みの波形データを加算することにより、クロスフェード合成が完了する。
【0056】
1つの奏法シーケンスを開始するとき、シーケンススタートトリガSSTが与えられ、これに応じて該シーケンスの最初のアーティキュレーションエレメント(仮にA#1とする)に対応する部分音波形の合成が開始される。すなわち、当該アーティキュレーションエレメントについての波形(Timbre),振幅(Amp),ピッチ(Pitch),時間(TSC)等の各テンプレートデータに基づいて波形データを合成する。よって、図において、「合成された波形データ」は単純にブロックで示されているが、実際は、波形(Timbre)テンプレートデータに対応する波形と、振幅(Amp)テンプレートデータに対応する振幅エンベロープと、ピッチ(Pitch)テンプレートデータに対応するピッチとその時間的変化と、時間(TSC)テンプレートデータに対応する時間長とを有している。
クロスフェード制御波形の立ち上がりは、シーケンスの最初のアーティキュレーションエレメント波形については、図示のようにフルレベルですぐに立ち上がるようにしてよい。しかし、もし、その前のシーケンスの演奏音の末尾の波形とクロスフェード合成したいならば、シーケンスの最初のクロスフェード制御波形の立ち上がりに適当な傾きのフェードイン特性をもたせればよい。このフェードインの傾きはフェードインレートFIR#1によって設定される。
【0057】
シーケンスの最初のアーティキュレーションエレメントA#1に対応して、接続制御情報として、上記フェードインレートFIR#1と、ネクストチャンネルスタートポイント情報NCSP#1と、フェードアウトスタートポイント情報FOSP#1と、フェードアウトレートFOR#1とを有している。ネクストチャンネルスタートポイント情報NCSP#1は、次のアーティキュレーションエレメント(例えばB#1とする)の波形発生を開始するポイントを指示する。フェードアウトスタートポイント情報FOSP#1は、自らの波形のフェードアウトを開始するポイントを指示する。図示のように、クロスフェード制御波形は、フェードアウトスタートポイントまではフラットにフルレベルを指示しているが、フェードアウトスタートポイント以降は、設定されたフェードアウトレートFOR#1に従う傾きで、そのレベルが徐々に立ち下がる。なお、このエレメントA#1に対応する前記ルールデータRULEが、クロスフェード接続をしない直接接続を指示している場合は、これらの情報NCSP#1,FOSP#1は、合成された当該アーティキュレーションエレメント波形の末尾を指示するようになっていてよい。しかし、対応するルールデータRULEが、クロスフェード接続をしない直接接続を指示している場合は、これらの情報NCSP#1,FOSP#1は、図示のように、当該アーティキュレーションエレメント波形の末尾よりも前の適切に設定されたポイントをそれぞれ指示する。従って、これらの情報NCSP#1,FOSP#1,FIR#1,FOR#1が当該エレメントA#1についてのルールデータRULEに含まれていると考えてよい。なお、これらの接続制御情報は、各アーティキュレーションエレメント毎に夫々設けられている。
【0058】
図10(a)に示す第1の波形発生チャンネルにおけるエレメント波形A#1の発生プロセスが、ネクストチャンネルスタートポイント情報NCSP#1で指示されるポイントに到ると、ネクストチャンネルスタートトリガNCS#1が図10(b)に示す第2の波形発生チャンネルに対して与えられ、該第2の波形発生チャンネルにおいて2番目のアーティキュレーションエレメントB#1に対応する部分音波形の発生を開始する。また、該アーティキュレーションエレメントB#1に対応するクロスフェード制御波形が、それに対応するフェードインレートFIR#2によって設定された傾きでフェードインする(徐々に立ち上がる)。こうして、先行するアーティキュレーションエレメントA#1のフェードアウト期間と、後続するアーティキュレーションエレメントB#1のフェードイン期間とが重複し、両者を加算することによりクロスフェード合成が完成する。
先行するアーティキュレーションエレメントA#1の波形データがフェードアウトした後は、後続するアーティキュレーションエレメントB#1のみとなる。こうして、先行するアーティキュレーションエレメントA#1から後続するアーティキュレーションエレメントB#1へとクロスフェードされて波形が滑らかに接続される。
【0059】
図10(b)に示す第2の波形発生チャンネルにおけるエレメント波形B#1の発生プロセスが、フェードアウトスタートポイント情報FOSP#2で指示されるポイントに到ると、図示のように、クロスフェード制御波形は、設定されたフェードアウトレートFOR#2に従う傾きで、そのレベルが徐々に立ち下がる。また、エレメント波形B#1の発生プロセスが、ネクストチャンネルスタートポイント情報NCSP#2で指示されるポイントに到ると、ネクストチャンネルスタートトリガNCS#2が図10(a)に示す第1の波形発生チャンネルに対して与えられ、該第1の波形発生チャンネルにおいて3番目のアーティキュレーションエレメントR#1に対応する部分音波形の発生を開始する。また、該アーティキュレーションエレメントR#1に対応するクロスフェード制御波形が、それに対応するフェードインレートFIR#3によって設定された傾きでフェードインする(徐々に立ち上がる)。こうして、先行するアーティキュレーションエレメントB#1のフェードアウト期間と、後続するアーティキュレーションエレメントR#1のフェードイン期間とが重複し、両者を加算することによりクロスフェード合成が完成する。
以下、同様に、順次クロスフェードしながら、各アーティキュレーションエレメントがシーケンスの時系列順に接続される。
【0060】
なお、上記の例では、各テンプレートに基づいて合成したエレメント波形に対してクロスフェード合成を行うようにしている。しかし、これに限らず、各テンプレートデータ毎にクロスフェード処理を行い、クロスフェード処理済みのテンプレートデータに基づき各エレメント波形の合成を行うようにしてもよい。その場合は、同じエレメントであっても、各テンプレート毎に異なる接続ルールを適用するようにすることができる。すなわち、上記の各接続制御情報(フェードインレートFIR,ネクストチャンネルスタートポイントNCSP,フェードアウトスタートポイントFOSP,フェードアウトレートFOR)が、当該エレメントの波形(Timbre),振幅(Amp),ピッチ(Pitch),時間(TSC)等の各楽音要素に対応するテンプレート毎に夫々用意される。このようにすれば、各テンプレート毎にそれに応じた最適の接続ルールに従ってクロスフェード接続を行うことができ、効果的である。
【0061】
〔編集〕
図11は、データ編集処理の一例を模式的に示すものである。図11においては、アタック部の属性を持つ或るアーティキュレーションエレメントA#1と、ボディ部の属性を持つ或るアーティキュレーションエレメントB#1と、リリース部の属性を持つ或るアーティキュレーションエレメントR#1とからなるアーティキュレーションエレメントシーケンスAESEQ#xのデータを基にして編集を行う例を示している。勿論、ここで述べるデータ編集を実施するにあたっては、所要の編集プログラムをコンピュータが実行し、ディスプレイに表示される各種データの状態を見ながら、キーボードやマウスによってユーザーが所望の操作を行う、というような適当な実現手段を用いて実施される。
基となるシーケンスAESEQ#xは、アーティキュレーションデータベースADBに記憶されている多数のシーケンスAESEQ(例えば図5(a)参照)から選択することができる。アーティキュレーションデータの編集は、大別すると、シーケンス内におけるアーティキュレーションエレメントの差し替えあるいは追加又は削除と、エレメント内におけるテンプレートの差し替えあるいは既存テンプレートのデータ値修正による新規テンプレートの作成とを含む。
【0062】
図11の編集の欄には、基となるシーケンスAESEQ#xにおけるリリース部のアーティキュレーションエレメントR#1が比較的なだらかに立ち下がる振幅エンベロープ特性を持っており、これを比較的素速く立ち下がる振幅エンベロープ特性を持つエレメントR#xに差し替える例が示されている。差し替えに限らず、所望のエレメントの追加(例えばボディ部エレメントの追加あるいは装飾音用のエレメントの追加など)や削除(ボディ部が複数ある場合はそのうちいずりかを削除することなど)も可能である。差し替えに使用するエレメントR#xは、アーティキュレーションデータベースADBに記憶されている多数のアーティキュレーションエレメントベクトルAEVQ(例えば図5(b)参照)から選択することができる。その場合、属性情報ATRを参照して同じ属性のエレメント群の中から、差し替えに使用する所望のエレメントR#xを、選択することができる。
【0063】
次に、所望のエレメント(例えば差し替えたエレメントR#x)の中の所望の楽音要素に対応するテンプレートデータを該楽音要素に関する別のテンプレートデータに差し替える。図11の例では、エレメントR#xのピッチ(Pitch)テンプレートを別のピッチテンプレートPitch’(例えばピッチベンド特性を持つピッチテンプレート)に差し替えることが示されている。これにより、作成された新たなリリース部のエレメントR#x’は、比較的素速く立ち下がる振幅エンベロープ特性を持つと共にピッチベンドダウン特性を持つものとなる。なお、テンプレートの差し替えの場合も、属性情報ATRを参照して、多数のアーティキュレーションエレメントベクトルAEVQ(例えば図5(b))における同じ属性のエレメント群の各テンプレート(ベクトルデータ)の中から、差し替えに使用する所望のテンプレート(ベクトルデータ)を、選択することができる。
なお、一部のテンプレートの差し替えによって作成された新たなエレメントR#x’は、新たなインデックスと所要の属性情報を付与して、アーティキュレーションデータベースADBのアーティキュレーションエレメントベクトルAEVQ(図4参照)のエリアに追加登録するとよい。
【0064】
所望のテンプレートの具体的データ内容を修正することも可能である。その場合は、編集中のエレメントについての所望のテンプレートの具体的データ内容をテンプレートデータベースTDBから読み出し、これをディスプレイ等で表示してキーボードやマウス等の操作によってそのデータ内容を適宜変更する。所望のデータ修正が終了すると、該修正されたテンプレートデータに新たなインデックスを付けてテンプレートデータベースTDBに追加登録すると共に、該修正されたテンプレートデータに対して新たなベクトルデータを割り当て、この新たなベクトルデータを含む新たなエレメント(例えばR#x’)に対して新たなインデックスと所要の属性情報を付与してアーティキュレーションデータベースADBのアーティキュレーションエレメントベクトルAEVQ(図4参照)のエリアに追加登録するようにするとよい。
【0065】
以上のようにして、基となるシーケンスAESEQ#xの内容を適宜変更して新たなシーケンスデータを作成するデータ編集処理を行うことができる。このようなデータ編集処理によって作成された新たなシーケンスデータは、ユーザーアーティキュレーションエレメントシーケンスURSEQとして新たなシーケンス番号(例えばURSEQ#x)と属性情報を付与し、アーティキュレーションデータベースADBに登録する。以後、楽音合成時には、そのシーケンス番号URSEQ#xを用いてアーティキュレーションデータベースADBからユーザーアーティキュレーションエレメントシーケンスURSEQのデータを読み出すことができる。
なお、データ編集の形態は図11で例示したものに限らず、種々の形態があり得る。例えば、基となるシーケンスAESEQを呼び出すことなく、所望のエレメントをエレメントベクトルAEVQから順次選択し、これによってユーザーシーケンスURSEQを作り上げるようにしてもよい。
【0066】
図12は、上述したようなデータ編集処理を実行しうるコンピュータプログラムの概略を示すフロー図である。
ステップS21では、所望の奏法を指定する。この指定は、コンピュータのキーボードやマウスを用いて、シーケンスAESEQ又はURSEQの番号を直接入力するようにしてもよいし、所望の楽器音色と属性情報を入力することによって行うようにしてもよい。
次のステップS22では、指定された奏法に一致するシーケンスがアーティキュレーションデータベースADB内のAESEQ又はURSEQに存在しているかどうかを検索し、該当するシーケンスAESEQ又はURSEQを選択する。この場合、シーケンスAESEQ又はURSEQの番号を直接入力した場合は、該当するものが直接引き出される。属性情報を入力した場合は、該属性情報に該当するシーケンスAESEQ及び/又はURSEQが検索される。属性情報は複数入力可能であり、複数入力した場合は、例えばAND論理で検索することとすればよい。勿論、これに限らずOR論理で検索してもよい。検索結果はコンピュータのディスプレイで表示し、複数のシーケンスAESEQ及び/又はURSEQが検索された場合は、そのうち所望のものを選択できるようにする。
【0067】
ステップS23では編集作業を続行するか否かをユーザーに問い合わせし、NO(続行しない)であれば、出口に行き、編集処理を終了する。ステップS22で選択又は検索されたシーケンスの内容が望み通りのものであり、編集の必要がない場合は、編集処理を終了する。編集処理を続行したい場合は、ステップS23でYESとし、ステップS24に行く。また、ステップS22で指定された奏法に該当するものが検索できなかった場合も、ステップS23で続行YESと判定し、ステップS24に行く。
属性情報による検索の一例を図5及び図6のようなデータがアーティキュレーションデータベースADBに記憶されている場合を例にして説明する。例えば、アーティキュレーションシーケンスの検索条件の属性として、「アタック・ベンドアップ・ノーマル」と、「ボディ・ノーマル」と、「リリース・ノーマル」が入力されたとする。この場合、図5(a)に示された6番目のシーケンスAESEQ#6の属性に一致するので、ステップS22でシーケンスAESEQ#6が検索され、選択される。これで満足であれば、ステップS23でNOとして、編集処理を終了する。編集処理を続行したければ、ステップS23でYESとして、ステップS24に行く。
【0068】
ステップS24では、ステップS21で指定した奏法に該当するシーケンスがまだ選択されていないならば、それに一番近いシーケンスを選択する。例えば、アーティキュレーションシーケンスの検索条件の属性として、前記ステップS21で「アタック・ベンドアップ・ノーマル」と、「ビブラート・ノーマル」と、「リリース・ノーマル」が入力されたとする。シーケンスAESEQが図5(a)に示す7種類しかないとすると、これを満足するシーケンスは検索できず、ステップS24でそれに一番近いシーケンスAESEQ#6が選択される。
ステップS25では、選択されたシーケンスにおける所望のアーティキュレーションエレメント(AE)を指示するベクトルデータ(インデックス)を別のアーティキュレーションエレメントを指示するベクトルデータ(インデックス)に差し替える処理を行う。例えば、上記例の場合、ステップS24で一番近いシーケンスとして選択されたシーケンスAESEQ#6のエレメント構成は、ATT−Nor,BOD−Nor,REL−Norという3つのエレメントベクトルからなっているので(図5(a)参照)、ボディ部用のエレメントBOD−Nor(ノーマルボディ)をビブラート用のボディ部のエレメントに差し替えればよい。そのために、アーティキュレーションエレメントベクトルAEVQ(例えば図5(b))を参照して、BOD−Vib−nor(ボディ・ノーマルビブラート)のエレメントベクトルデータ(インデックス)を引き出して、これをBOD−Norと差し替える。
【0069】
必要に応じて、アーティキュレーションエレメントの追加及び削除もステップS25で行う。望みのエレメントベクトルデータの差し替え及び/又は追加、削除を終えると、新規のアーティキュレーションエレメントシーケンスが作成されたことになる(ステップS26)。
アーティキュレーションエレメントの差し替え及び/又は追加、削除によって、新規作成されたアーティキュレーションエレメントシーケンス内におけるエレメント間の波形のつながりが保証されないものとなったので、次のステップS27において、接続ルールデータRULEを設定する。次のステップS28では、設定した接続ルールデータRULEでよいかどうかを確認する。OKでなければ、ステップS27に戻り、接続ルールデータRULEを設定し直す。設定した接続ルールデータRULEでOKであれば、ステップS29に行く。
ステップS29では、編集処理を続行するかどうかを問い合わせる。編集処理を続行しない場合は、ステップS30に行き、新規作成されたアーティキュレーションエレメントシーケンスをユーザーシーケンスURSEQとしてアーティキュレーションデータベースADBに登録する。編集処理を続行したければ、ステップS29でYESとして、ステップS24又はS31に行く。この場合、アーティキュレーションエレメントの差し替え及び/又は追加、削除に戻りたい場合はステップS24に戻るものとし、テンプレートデータの編集に移りたい場合はステップS31に行く。
【0070】
ステップS31では、テンプレートデータを編集したいアーティキュレーションエレメント(AE)を選択する。次のステップS32では、選択されたアーティキュレーションエレメント(AE)の中の所望の楽音要素に対応するテンプレートベクトルデータを該楽音要素に関する別のテンプレートベクトルデータに差し替える。
例えば、アーティキュレーションシーケンスの検索条件の属性として、「アタック・ベンドアップ・ノーマル」と、「少し遅いビブラート」と、「リリース・ノーマル」がステップS21で指定入力され、図5(a)に示されたシーケンスAESEQのうち一番近いシーケンスとしてAESEQ#6がステップS24で選択されたとする。前述の通り、このシーケンスAESEQ#6のボディ部用のエレメントはBOD−Nor(ノーマルボディ)であるから、これをステップS25でビブラート用のボディ部のエレメント例えばBOD−Vib−nor(ボディ・ノーマルビブラート)に差し替える。そして、ステップS31で、このBOD−Vib−nor(ボディ・ノーマルビブラート)のエレメントを選択し、これを編集の対象とする。そして、望みの「少し遅いビブラート」を実現するために、ステップS32において、BOD−Vib−nor(ボディ・ノーマルビブラート)の各テンプレートベクトルのうち、時間テンプレートのベクトルTSC−B−vibを、ビブラートスピードを少し遅くする時間テンプレートのベクトル(例えばTSC−B−sp2とする)に差し替える。
【0071】
こうして、BOD−Vib−nor(ボディ・ノーマルビブラート)の各テンプレートのうち、時間テンプレートベクトルをTSC−B−vibからTSC−B−sp2に差し替えた新たなアーティキュレーションエレメントが作成される(ステップS33)。また、シーケンスAESEQ#6のボディ部用のエレメントを、この新たに作成されたアーティキュレーションエレメントに差し替えてなる、新たなアーティキュレーションエレメントシーケンスが作成される(ステップS33)。
続くステップS34,S35,S36は前述のステップS27,S28,S29と同様の処理からなる。すなわち、差し替えたテンプレートデータによって、新規作成されたアーティキュレーションエレメントシーケンス内におけるエレメント間の波形のつながりが保証されないものとなったので、前述と同様に接続ルールデータRULEを設定し直す。
【0072】
ステップS36では、編集処理を続行するかどうかを問い合わせる。編集処理を続行しない場合は、ステップS37に行き、新規作成されたアーティキュレーションエレメント(AE)をユーザーアーティキュレーションエレメントベクトル(AEVQ)としてアーティキュレーションデータベースADBに登録する。編集処理を続行したければ、ステップS36でYESとして、ステップS31又はS38に行く。この場合、テンプレートベクトルの差し替えに戻りたい場合はステップS31に戻るものとし、テンプレートデータの具体的内容の編集に移りたい場合はステップS38に行く。
ステップS38では、データ内容を編集したい所要のアーティキュレーションエレメント(AE)内のテンプレートを選択する。次のステップS39では、選択されたテンプレートのデータをテンプレートデータベースTDBから読み出し、その具体的データ内容を適宜変更する。
【0073】
例えば、アーティキュレーションシーケンスの検索条件の属性として、「アタック・ベンドアップ・ノーマル」と、「かなり遅いビブラート」と、「リリース・ノーマル」がステップS21で指定入力され、図5(a)に示されたシーケンスAESEQのうち一番近いシーケンスとしてAESEQ#6がステップS24で選択されたとする。前述の通り、このシーケンスAESEQ#6のボディ部用のエレメントはBOD−Nor(ノーマルボディ)であるから、これをステップS25でビブラート用のボディ部のエレメント例えばBOD−Vib−nor(ボディ・ノーマルビブラート)に差し替える。そして、ステップS31で、このBOD−Vib−nor(ボディ・ノーマルビブラート)のエレメントを選択し、これを編集の対象とする。そして、望みの「かなり遅いビブラート」を実現するために、ステップS32において、BOD−Vib−nor(ボディ・ノーマルビブラート)の各テンプレートベクトルのうち、時間テンプレートのベクトルTSC−B−vibを、既存の時間テンプレートのうちビブラートスピードを最も遅くする時間テンプレートのベクトル(例えばTSC−B−sp1とする)に差し替える。
しかし、この時間テンプレートベクトルTSC−B−sp1で指示された時間テンプレートでは、望みの「かなり遅いビブラート」がまだ実現できない場合、ステップS38でこの時間テンプレートベクトルTSC−B−sp1を選択し、ステップ39でその具体的データ内容を更に遅いビブラートを実現する内容に変更する。また、変更によって作成された新たな時間テンプレートに対して新規のベクトルデータ(例えばTSC−B−sp0とする)を割り当てる。
【0074】
こうして、新規の時間テンプレートデータとそのベクトルデータTSC−B−sp0が作成される(ステップS40)。また、時間テンプレートベクトルを新規のベクトルに変更した新たなアーティキュレーションエレメント(AE)が作成され、また、シーケンスAESEQ#6のボディ部用のエレメントを、この新たに作成されたアーティキュレーションエレメント(AE)に差し替えてなる、新たなアーティキュレーションエレメントシーケンスが作成される(ステップS40)。
続くステップS41,S42,S43は前述のステップS27,S28,S29と同様の処理からなる。すなわち、データ修正したテンプレートデータによって、新規作成されたアーティキュレーションエレメントシーケンス内におけるエレメント間の波形のつながりが保証されないものとなったので、前述と同様に接続ルールデータRULEを設定し直す。
【0075】
ステップS43では、編集処理を続行するかどうかを問い合わせる。編集処理を続行しない場合は、ステップS44に行き、新規作成されたテンプレートデータをテンプレートデータベースTDBに登録する。編集処理を続行したければ、ステップS43でYESとして、ステップS38に戻る。ステップS44の後、ステップS37に行き、新規作成されたアーティキュレーションエレメント(AE)をユーザーアーティキュレーションエレメントベクトル(AEVQ)としてアーティキュレーションデータベースADBに登録する。更に、ステップS30に行き、新規作成されたアーティキュレーションエレメントシーケンスをユーザーシーケンスURSEQとしてアーティキュレーションデータベースADBに登録する。
編集処理の手順は図12に限定されるものではなく、適宜別の手順で処理してもよい。また、前述のように、基となるシーケンスAESEQを呼び出すことなく、所望のエレメントをエレメントベクトルAEVQから順次選択し、各エレメント内のテンプレートデータを適宜差し替えたりデータ修正したりして、これに基づきユーザーシーケンスURSEQを作り上げるようにしてもよい。また、特に、図示しなかったが、編集処理の適宜の段階において、編集中のアーティキュレーションエレメントの波形に対応する音を発音し、ユーザーが耳で確認できるようにするとよい。
【0076】
〔パーシャルベクトルの説明〕
図13は、パーシャルベクトルPVQの考え方を概念的に示すものである。図13(a)は、或る区間のアーティキュレーションエレメントについて、或る楽音要素(例えば波形)について分析された全区間のデータ(つまり通常のテンプレートデータ)を模式的に示したものである。図13(b)は、(a)に示す全区間のデータから分散的に取り出した部分的なテンプレートデータPT1,PT2,PT3,PT4を模式的に示すものである。この部分的なテンプレートデータPT1,PT2,PT3,PT4が、当該楽音要素のテンプレートデータとしてテンプレートデータベースTDBに記憶される。このテンプレートデータについてのテンプレートベクトルは、通常と同様に(全区間のデータをそのままテンプレートデータとして記憶する場合と同様に)、1つ割り当てられる。例えば、このテンプレートデータについてのテンプレートベクトルが「Timb−B−nor」であるとすると、各部分的なデータPT1,PT2,PT3,PT4のテンプレートベクトルは「Timb−B−nor」であり、共通している。なお、この場合、このテンプレートベクトル「Timb−B−nor」に付属するデータとして、パーシャルベクトルPVQを有することを示す識別データを、登録しておくものとする。
【0077】
パーシャルベクトルPVQは、各部分的なテンプレートデータPT1〜PT4毎に、該データのテンプレートデータベースTDBでの記憶位置を示すデータ(例えばループスタートアドレスに相当)と、該データの幅Wを示すデータ(例えばループエンドアドレスに相当)と、該データを繰返す期間LTを示すデータとを含んでいる。図では、便宜上、幅Wと期間LTがどの部分的データPT1〜PT4でも共通しているかのように図示しているが、これは各データPT1〜PT4毎に任意である。また、部分的テンプレートデータPT1〜PT4の数も、4個に限らず、任意である。
パーシャルベクトルPVQに基づく各部分的テンプレートデータPT1〜PT4をそれぞれその繰返し期間(LT)の分だけループ読み出しし、読み出された各ループを接続することにより(a)に示したような全区間のデータを再現することができる。この再現処理をデコード処理ということにする。このデコード処理法としては、一例として、それぞれの部分的テンプレートデータPT1〜PT4をその繰返し期間LTの分だけ単純にループ読出しするようにするだけでもよいし、別の例として、相前後する2つの波形をループ読出しながらクロスフェード合成するようにしてもよい。後者の方が各ループのつながりが良くなるので、好ましい。
【0078】
図13(c),(d)は、そのようなクロスフェード合成によるデコード処理例を示している。(c)はクロスフェード合成用の第1のチャンネルにおけるクロスフェード制御波形例を示し、(d)はクロスフェード合成用の第2のチャンネルにおけるクロスフェード制御波形例を示す。すなわち、最初の部分的テンプレートデータPT1を(c)に示すフェードアウト用制御波形CF11で期間LTの間にフェードアウトし、同時に、次の部分的テンプレートデータPT2を(d)に示すフェードイン用制御波形CF21で期間LTの間にフェードインする。フェードアウト制御されたデータPT1とフェードイン制御されたデータPT2とを加算することにより、期間LTの間でデータPT1からデータPT2にクロスフェードするループ読出しが行われる。次に、データPT1をデータPT3に切換える共にその制御波形をフェードイン波形CF12に切換え、データPT2の制御波形をフェードアウト波形CF22に切換え、クロスフェード合成を行う。以後、図示のように順次切換えてクロスフェード合成を行う。なお、クロスフェード合成を行うに際しては、2つのループ読出波形の位相とピッチが適切に合うように処理する。
【0079】
図14は、パーシャルベクトルPVQを考慮したテンプレート読出し処理の一例を示すフロー図である。ここに示されたステップS13〜S14cは、図7のステップS13,S14の部分の処理に対応している。ステップS13では、アーティキュレーションエレメントベクトルAEVQのデータ群の中から指定されたエレメントに対応する各テンプレートのベクトルデータを読み出す。ステップS14aでは、パーシャルベクトルPVQを有することを示す識別データに基づきパーシャルベクトルPVQが有るか否かをチェックする。パーシャルベクトルPVQがなければ、ステップS14bに行き、テンプレートデータベースTDBから各テンプレートデータを読み出す。パーシャルベクトルPVQが有れば、ステップS14cに行き、そのパーシャルベクトルPVQに基づき上述の「デコード処理」を行う。これにより、該エレメントについての全区間のテンプレートデータを再現(デコード)する。
【0080】
なお、或るアーティキュレーションエレメントにパーシャルベクトルPVQを適用する場合、そのアーティキュレーションエレメントの全ての楽音要素についてのテンプレートを部分的テンプレートとする必要はなく、部分的テンプレートとしてループ読出しするのに適した種類の楽音要素に関してのみ部分的テンプレートとすればよい。
また、パーシャルベクトルPVQに基づく、当該エレメントについての全区間のテンプレートデータの再生方法としては、上述のような単純なループ読出しに限らず、その他適宜の方法を用いてよい。例えば、該パーシャルベクトルPVQに対応する所定長の部分的テンプレートを必要なだけ時間軸伸張する、あるいは限られた複数の部分的テンプレートをランダムに又は所定のシーケンスで組み合わせて当該エレメントについての全区間または必要な区間にわたって配置する、などの方法を用いてよい。
【0081】
〔ビブラート合成の説明〕
ここでは、ビブラート合成の仕方についての新しいアイディアについていくつか説明する。
図15は、ビブラート成分を持つボディ部の波形データをパーシャルベクトルPVQの考え方を適用してデータ圧縮する例と、そのデコード例とを概略的に示す図である。(a)は、ビブラートを含むオリジナル波形Aを例示する。このオリジナル波形においては、ビブラートの1周期において波形ピッチが変動しているのみならず、振幅も変動している。(b)は(a)のオリジナル波形から分散的に複数の波形a1,a2,a3,a4を取り出した状態を例示する。これらの波形a1〜a4としては、波形形状(音色)がそれぞれ異なっているものを選び、また、1波長(波形1周期)を同じデータサイズ(アドレス数)としてそれぞれ1又は複数波で取り出す。これらの波形a1〜a4を部分的テンプレートデータ(つまりループ波形データ)としてテンプレートデータベースTDBに記憶する。この読出し法は、各波形a1〜a4を順次ループ読出しすると共にクロスフェード合成することにより行う。
【0082】
図15(c)はビブラート1周期の間にピッチが変動するピッチテンプレートを示している。なお、このピッチテンプレートのピッチ変化パターンは図示では高ピッチから始まって低ピッチに移行し、最後に高ピッチに戻るパターンであるが、これに限らず、他のパターン(例えば低ピッチから高ピッチに移行し、低ピッチに戻るパターンや、中間のピッチから始まって高ピッチ→低ピッチ→中間ピッチに戻るパターンなど)であってもよい。
【0083】
図15(d)はループ読出した各波形a1〜a4に対するクロスフェード制御波形を例示している。(c)のピッチテンプレートに従うピッチで最初は波形a1とa2をそれぞれループ読出し(繰返し読出し)し、ループ読出した波形a1に対してはフェードアウト、ループ読出した波形a2に対してはフェードインの振幅制御をして両者を合成する。これにより、波形a1からa2に向かってその波形形状がクロスフェードして順次変化していき、かつそのクロスフェード合成波形のピッチがピッチテンプレートに従うピッチで順次変化する。以下、同様に波形を順次切換えて、a2とa3とで、次にa3とa4とで、次にa4とa1とで、クロスフェード合成をそれぞれ行う。
【0084】
図15(e)は合成された波形データA’を示す。この波形データA’は、ビブラート1周期の間で、その波形形状が波形a1から順にa4まで滑らかにクロスフェードされて変化していき、かつ、そのピッチはピッチテンプレートに従って変化していくことによりビブラートが付けられたものである。上記のようなビブラート1周期分の波形データA’の合成処理を繰り返すことにより、複数のビブラート周期にわたる波形データを合成することができる。その場合、(c)に示すようなビブラート1周期分のピッチテンプレートを必要なビブラート周期数分だけループさせればよい。そのために、パーシャルベクトルPVQの構造が階層的になっていてよい。すなわち、ビブラート1周期分の波形合成のために波形a1〜a4が上記のように個々にループ読出しされると共に、その全体(ビブラート1周期分)がピッチテンプレートのルーピングに従って更に繰り返されるような階層構造となっていてよい。
【0085】
図16は別のビブラート合成の別の例を示す図である。この例では、ビブラートを含むオリジナル波形の複数のビブラート周期にわたる区間A,B,Cから分散的に複数の波形a1〜a4,b1〜b4,c1〜c4を取り出す。これらの波形a1〜a4,b1〜b4,c1〜c4は、前述と同様に、波形形状(音色)が異なっているものを選び、また、1波長(波形1周期)を同じデータサイズ(アドレス数)としてそれぞれ1又は複数波で取り出す。これらの波形a1〜a4,b1〜b4,c1〜c4を部分的テンプレートデータとしてテンプレートデータベースTDBに記憶する。この読出し法は、基本的には、上記例と同様に、各波形a1〜a4,b1〜b4,c1〜c4を順次ループ読出しすると共にクロスフェード合成するものであるが、上記例と異なるのは、図16の例では各波形a1〜a4,b1〜b4,c1〜c4の時間的位置を入れ替えて、クロスフェード合成の対象となる波形を任意に組み合わせることにより、ビブラートにおける波形音色変化のバリエーションを多様な組合せで得ることができるようにしている点である。
【0086】
例えば、各波形a1〜a4,b1〜b4,c1〜c4の1ビブラート周期内における相対的時間位置は変えずに、これらの波形の位置の入れ替えを行うと、例えば、a1→b2→c3→a4→b1→c2→a3→b4→c1→a2→b3→c4というような波形位置の入れ替えパターンを得ることができる。このような波形位置の入れ替えパターンに従って上記図15と同様のクロスフェード合成によるビブラート合成処理を行えば、オリジナルの波形位置パターンに従うクロスフェード合成によるビブラート合成処理によって得られるビブラートとは異なる音色変化からなるビブラートを得ることができる。なお、各波形a1〜a4,b1〜b4,c1〜c4の1ビブラート周期内における相対的時間位置は変えずに、これらの波形の位置の入れ替えを行うようにした理由は、入れ替えによる不自然さが生じないようにするためである。
このような波形位置の入れ替えパターンは、図16に示した12個の波形a1〜a4,b1〜b4,c1〜c4の場合、ビブラート1周期につき3の4乗=81通りの組合せがあり、ビブラート3周期では、81の3乗の組合せがある。従って、ビブラートにおける波形音色変化のバリエーションが極めて多様なものとなる。どの組合せパターンを採用するかはランダム選択するようにすればよい。
【0087】
図15又は図16に示すような手法で作成されたビブラート特性を持つ波形(例えば図15(e)のA’)あるいはその他の手法で作成されたビブラート特性を持つ波形に対しては、ピッチ(Pitch)テンプレート、振幅(Amp)テンプレート、時間(TSC)テンプレートによって、そのビブラート特性を可変制御することができる。例えば、ピッチ(Pitch)テンプレートによってビブラートの深さを制御することができ、振幅(Amp)テンプレートによってビブラートと共に付加される振幅変調の深さを制御することができ、時間(TSC)テンプレートによってビブラート1周期を構成する波形の時間長を伸縮制御することによりビブラートの速さを制御する(ビブラート周期を制御する)ことができる。
【0088】
例えば図15においては、(d)に示す各クロスフェード区間の時間長を所望の時間(TSC)テンプレートに応じて時間軸伸縮制御(TSC制御)することにより、楽音再生ピッチ(波形読出アドレスの変化レート)を変化させずに該TSC制御を行なった場合は、ビブラート1周期の時間長を伸縮制御することができ、これにより、ビブラート周波数の制御が行なえる。なお、その場合、TSCテンプレートを、(c)に示すようようなピッチテンプレートと同様にビブラート1周期分に対応して用意した場合は、ビブラート1周期分の該TSCテンプレートを必要なビブラート周期数分だけループさせればよい。なお、TSCテンプレートに応じた波形の時間軸伸縮制御に連動して、ピッチ(Pitch)テンプレート及び振幅(Amp)テンプレートも時間軸伸縮制御するようにすれば、これらの楽音要素を連動して時間軸伸縮制御することができる。
なお、ピッチテンプレートが示すピッチ変化エンベロープ特性を上下にシフトすることにより、ビブラート波形の楽音再生ピッチを可変制御することもできる。その場合、TSCテンプレートによる波形の時間軸制御は行わないようにすることにより、楽音再生ピッチにかかわらず、ビブラート1周期の時間長を一定に維持するよう制御することができる。
【0089】
〔接続ルールRULEの説明〕
次に、アーティキュレーションエレメント同士の接続の仕方を記述するルールデータRULEの具体例について説明する。
各楽音要素別に、例えば、下記のような接続ルールがある。
(1)波形(Timbre)テンプレートの接続ルール
ルール1:直接接続。プリセットされた奏法シーケンス(アーティキュレーションエレメントシーケンスAESEQ)のように、各アーティキュレーションエレメント同士の滑らかな接続が予め保証されている場合は、補間を行うことなく、直接的に接続することで問題ない。
ルール2:先行エレメントの波形Aの終端部分を引き延ばした補間。この補間例は図17(a)に示すような形態であり、先行エレメントの波形Aの終端部分を引き延ばして接続用波形C1を合成する。後続エレメントの波形Bはそのまま使用し、先行エレメントの波形Aの末尾に延びた接続用波形C1をフェードアウト、後続エレメントの波形Bの始まり部分をフェードインで、クロスフェード合成する。接続用波形C1は、先行エレメントの波形Aの終端部分の1周期波形または複数周期波形を必要な長さだけ繰り返して形成する。
【0090】
ルール3:後続エレメントの波形Bの先端部分を引き延ばした補間。この補間例は図17(b)に示すような形態であり、後続エレメントの波形Bの先端部分を引き延ばして接続用波形C2を合成する。先行エレメントの波形Aはそのまま使用し、先行エレメントの波形Aの終端部分をフェードアウト、接続用波形C2をフェードインで、クロスフェード合成する。この場合も、接続用波形C2は、後続エレメントの波形Bの先端部分の1周期波形または複数周期波形を必要な長さだけ繰り返して形成する。
ルール4:先行エレメントの波形Aの終端部分と後続エレメントの波形Bの先端部分の双方を引き延ばした補間。この補間例は図17(c)に示すような形態であり、先行エレメントの波形Aの終端部分を引き延ばして合成した接続用波形C1と、後続エレメントの波形Bの先端部分を引き延ばして合成した接続用波形C2とをクロスフェード合成する。なお、このルール4の場合は、C1とC2のクロスフェード合成期間の分だけ、合成された波形全体の時間が延びることになるので、TSC制御によってその分だけ時間軸圧縮処理を施すものとする。
【0091】
ルール5:図17(d)に示すように、先行エレメントの波形Aと後続エレメントの波形Bとの間に、予め用意した接続用波形Cを挿入する。その際、先行エレメントの波形Aの終端部分と後続エレメントの波形Bの先端部分は、接続用波形Cの分だけ一部除去する。あるいは、先行エレメントの波形Aの終端部分と後続エレメントの波形Bの先端部分を削除することなく、接続用波形Cを挿入してもよいが、その場合は、合成された波形全体の時間が延びることになるので、TSC制御によってその分だけ時間軸圧縮処理を施すものとする。
ルール6:図17(e)に示すように、先行エレメントの波形Aと後続エレメントの波形Bとの間に、予め用意した接続用波形Cを挿入し、その際、先行エレメントの波形Aの終端部分と接続用波形Cの前半部をクロスフェードロスフェード合成し、後続エレメントの波形Bの先端部分と接続用波形Cの後半部をクロスフェードロスフェード合成する。この場合も、もし、合成された波形全体の時間が延びるか縮むかした場合は、TSC制御によってその分だけ時間軸圧縮処理を施すものとする。
【0092】
(2)その他のテンプレートの接続ルール
波形(Timbre)テンプレート以外の他のテンプレート(振幅、ピッチ、時間)のデータは、エンベロープ波形状のシンプルな形態をとるので、2チャンネルのクロスフェード制御波形を使用した複雑な補間処理を使用せずに、もっとシンプルな補間処理で滑らかな接続を実現することができる。特に、エンベロープ波形状のテンプレートデータの補間合成にあたっては、補間結果を本来のテンプレートデータ値に対する差分値(正負符号付き)で生成するようにするのが好ましい。そうすれば、リアルタイムでテンプレートデータベースTDBから読み出した本来のテンプレートデータ値に対して、補間結果たる差分値(正負符号付き)を加算するだけで、滑らかな接続のための補間演算を達成することができることになり、極めて簡単である。
ルール1:直接接続。この例を図18(a)に示す。1番目のエレメントのテンプレート(エンベロープ波形)AE1の末尾と2番目のエレメントのテンプレート(エンベロープ波形)AE2−aの先頭のレベルが一致しており、2番目のエレメントのテンプレート(エンベロープ波形)AE2−aの末尾と3番目のエレメントのテンプレート(エンベロープ波形)AE3の先頭のレベルも一致しているので、補間の必要がない。
【0093】
ルール2:接続個所前後の局所的な範囲でスムーズ化する補間処理を行う。この例を図18(b)に示す。1番目のエレメントのテンプレート(エンベロープ波形)AE1の終端部分と2番目のエレメントのテンプレート(エンベロープ波形)AE2−bの先端部分における所定の範囲CFT1で、AE1からAE2−bに滑らかに移行するように補間処理を行う。また、2番目のエレメントのテンプレート(エンベロープ波形)AE2−bの終端部分と3番目のエレメントのテンプレート(エンベロープ波形)AE3の先端部分における所定の範囲CFT2で、AE2−bからAE3に滑らかに移行するように補間処理を行う。
なお、補間の結果得られたデータE1’,E2’,E3’は、各エレメントの本来のテンプレート値(エンベロープ値)E1,E2,E3に対する差分値(正負符号付き)からなるものとする。そのようにすれば、前述の通り、リアルタイムでテンプレートデータベースTDBから読み出した本来のテンプレートデータ値E1,E2,E3に対して、補間結果たる差分値E1’,E2’,E3’を加算するだけで、滑らかな接続のための補間演算を達成することができることになり、極めて簡単である。
【0094】
このルール2の補間処理の具体例は、図19(a)(b)(c)に示すように、複数通りのバリエーションがある。
図19(a)の例では、先行エレメントAEnの終了点のテンプレートデータ値EPと後続エレメントAEn+1の開始点のテンプレートデータ値SPとの中間のレベルMPを目標値として、先行エレメントAEnの終端部分の補間領域RCFTにおいて、該先行エレメントAEnのテンプレートデータ値を目標値MPに漸近させるよう補間を行う。その結果、先行エレメントAEnのテンプレートデータの軌跡が、本来のラインE1からE1’に示すように変わる。また、後続エレメントAEn+1の先端部分の補間領域FCFTにおいて、該後続エレメントAEn+1のテンプレートデータ値を上記中間値MPから開始させ、ラインE2で示す本来のテンプレートデータ値の軌跡に漸近させるよう補間を行う。その結果、補間領域FCFTにおける後続エレメントAEn+1のテンプレートデータ値の軌跡がラインE2’に示すように本来の軌跡E2に漸近する。
【0095】
図19(b)の例では、後続エレメントAEn+1の開始点のテンプレートデータ値SPを目標値として、先行エレメントAEnの終端部分の補間領域RCFTにおいて、該先行エレメントAEnのテンプレートデータ値を目標値SPに漸近させるよう補間を行う。その結果、先行エレメントAEnのテンプレートデータの軌跡が、本来のラインE1からE1'’に示すように変わる。この場合は、後続エレメントAEn+1の先端部分の補間領域FCFTは存在しない。
図19(c)の例では、後続エレメントAEn+1の先端部分の補間領域FCFTにおいて、該後続エレメントAEn+1のテンプレートデータ値を上記先行エレメントAEnの終了点のテンプレートデータ値EPから開始させ、ラインE2で示す本来のテンプレートデータ値の軌跡に漸近させるよう補間を行う。その結果、補間領域FCFTにおける後続エレメントAEn+1のテンプレートデータ値の軌跡がラインE2'’に示すように本来の軌跡E2に漸近する。この場合は、先行エレメントAEnの後端部分の補間領域RCFTは存在しない。
図19においても、補間の結果得た各軌跡E1’,E2’,E1'',E2''を示すデータは、本来のテンプレートデータ値E1,E2に対する差分値からなるものとする。
【0096】
ルール3:エレメントの全区間にわたってスムーズ化する補間処理を行う。この例を図18(c)に示す。1番目のエレメントのテンプレート(エンベロープ波形)AE1と、3番目のエレメントのテンプレート(エンベロープ波形)AE3は変更せずに、その中間の2番目のエレメントのテンプレート(エンベロープ波形)AE2−bのデータを全体的に補間し、その先端は1番目のエレメントのテンプレート(エンベロープ波形)AE1の末尾に一致し、その終端は3番目のエレメントのテンプレート(エンベロープ波形)AE3の先頭に一致するようにする。なお、この場合も、補間の結果得られたデータE2’は、本来のテンプレート値(エンベロープ値)E2に対する差分値(正負符号付き)からなるものとする。
このルール3の補間処理の具体例は、図20(a)(b)(c)に示すように、複数通りのバリエーションがある。
図20(a)は、中間のエレメントAEnのみで補間を行う例を示している。E1は、該エレメントAEnのテンプレートデータ値の本来の軌跡を示す。先行するエレメントAEn-1の終了点のテンプレートデータ値EP0と中間のエレメントAEnの本来の開始点のテンプレートデータ値SPとの差に応じて、該エレメントAEnのテンプレートデータ値の軌跡E1をシフトして、軌跡EaからなるテンプレートデータをエレメントAEnの全区間に対応して作成する。また、中間のエレメントAEnの本来の終了点のテンプレートデータ値EPと後続するエレメントAEn+1の開始点のテンプレートデータ値SP1との差に応じて、該エレメントAEnのテンプレートデータ値の軌跡E1をシフトして、軌跡EbからなるテンプレートデータをエレメントAEnの全区間に対応して作成する。次に、軌跡Eaのテンプレートデータと軌跡Ebのテンプレートデータとを、EaからEbに滑らかに変化するようにクロスフェード補間し、軌跡E1'からなる補間済みのテンプレートデータをエレメントAEnの全区間に対応して得る。
【0097】
図20(b)は、中間のエレメントAEnの全区間でデータ変更を行うと共に、中間のエレメントAEnの終端部分の所定領域RCFTと後続エレメントAEn+1の先端部分の所定領域FCFTとにおいて補間を行う例を示している。
まず、上記と同様に、先行するエレメントAEn-1の終了点のテンプレートデータ値EP0と中間のエレメントAEnの本来の開始点のテンプレートデータ値SPとの差に応じて、該エレメントAEnのテンプレートデータ値の軌跡E1をシフトして、軌跡EaからなるテンプレートデータをエレメントAEnの全区間に対応して作成する。
【0098】
次に、この軌跡Eaの終了点のテンプレートデータ値EPaと後続エレメントAEn+1の開始点のテンプレートデータ値SPとの中間のレベルMPaを目標値として、先行エレメントAEnの終端部分の所定領域RCFTにおいて、該先行エレメントAEnの軌跡Eaのテンプレートデータ値を目標値MPaに漸近させるよう補間を行う。その結果、先行エレメントAEnのテンプレートデータの軌跡Eaが、本来の軌跡からEa’に示すように変わる。また、後続エレメントAEn+1の先端部分の所定領域FCFTにおいて、該後続エレメントAEn+1のテンプレートデータ値を上記中間値MPaから開始させ、ラインE2で示す本来のテンプレートデータ値の軌跡に漸近させるよう補間を行う。その結果、補間領域FCFTにおける後続エレメントAEn+1のテンプレートデータ値の軌跡がラインE2’に示すように本来の軌跡E2に漸近する。
【0099】
図20(c)は、中間のエレメントAEnの全区間でデータ変更を行うと共に、先行エレメントAEn-1の終端部分の所定領域RCFTと中間エレメントAEnの先端部分の所定領域FCFTとにおいて補間を行い、かつ、中間のエレメントAEnの終端部分の所定領域RCFTと後続エレメントAEn+1の先端部分の所定領域FCFTとにおいて補間を行う例を示している。
まず、中間のエレメントAEnのテンプレートデータ値の本来の軌跡E1を適当なオフセット量OFSTだけシフトして、軌跡EcからなるテンプレートデータをエレメントAEnの全区間に対応して作成する。
【0100】
次に、先行エレメントAEn-1の終端部分の所定領域RCFTと中間エレメントAEnの先端部分の所定領域FCFTとにおいて、両者のテンプレートデータの軌跡E0とEcとが滑らかにつながるように補間処理を行い、補間結果としての軌跡E0’とEc’とを該補間領域において得る。また、中間エレメントAEnの終端部分の所定領域RCFTと後続エレメントAEn+1の先端部分の所定領域FCFTとにおいて、両者のテンプレートデータの軌跡EcとE2とが滑らかにつながるように補間処理を行い、補間結果としての軌跡Ec''とE2''とを該補間領域において得る。
図20においても、補間の結果得た各軌跡E1’,Ea,Ea’,E2’,Ec,Ec’,Ec'',E0’を示すデータは、本来のテンプレートデータ値E1,E2,E0に対する差分値からなるものとする。
【0101】
〔接続処理を含む楽音合成処理の概念的説明〕
図21は、各楽音要素に対応するテンプレートデータ毎に上述の接続処理を行い、接続処理済みのテンプレートデータに基づき楽音合成処理を行うようにした楽音合成装置の構成を概念的に説明するブロック図である。
テンプレートデータ供給ブロックTB1,TB2,TB3,TB4では、それぞれ、先行するアーティキュレーションエレメントに関する波形テンプレートデータTimb−Tn,振幅テンプレートデータAmp−Tn,ピッチテンプレートデータPit−Tn,時間テンプレートデータTSC−Tnと、後続するアーティキュレーションエレメントに関する波形テンプレートデータTimb−Tn+1,振幅テンプレートデータAmp−Tn+1,ピッチテンプレートデータPit−Tn+1,時間テンプレートデータTSC−Tn+1を供給する。
【0102】
ルールデーコード処理ブロックRB1,RB2,RB3,RB4では、当該アーティキュレーションエレメントに関する各楽音要素毎の接続ルールTimbRULE,AmpRULE,PitRULE,TSCRULEをデコードし、デコードした接続ルールに従って図17〜図20を参照して説明したような接続処理を実行する。例えば、波形テンプレート用のルールデーコード処理ブロックRB1では、図17を参照して説明したような接続処理(直接接続又はクロスフェード補間)を実行するための処理を行う。
【0103】
また、振幅テンプレート用のルールデーコード処理ブロックRB2では、図18〜図20を参照して説明したような接続処理(直接接続又は補間)を実行するための処理を行う。この場合、補間結果は前述の通り差分値(正負符号付き)で与えられるので、ブロックRB2から出力された差分値からなる補間データが、加算部AD2において、テンプレートデータ供給ブロックTB2から供給される本来のテンプレートデータ値に対して加算されるようになっている。同様の理由で、他のルールデーコード処理ブロックRB3,RB4の各出力と、各テンプレートデータ供給ブロックTB3,TB4から供給される本来のテンプレートデータ値をそれぞれ加算するための加算部AD3,AD4が設けられている。
【0104】
こうして、各加算部AD2,AD3,AD4からは、隣接するエレメント間での所要の接続処理を施してなるテンプレートデータAmp,Pitch,TSCがそれぞれ出力される。ピッチ制御ブロックCB3は、ピッチテンプレートデータPitchに従って波形読出し速度を制御するものである。波形テンプレートそのものがオリジナルのピッチ情報を含んでいるため、ラインL1を介して該オリジナルのピッチ情報(オリジナルのピッチエンベロープ)をデータベースから受け取り、該オリジナルのピッチエンベロープとピッチテンプレートデータPitchとの偏差で波形読出し速度を制御する。例えば、オリジナルのピッチエンベロープとピッチテンプレートデータPitchとが同じ場合は、一定の波形読出し速度で読出しを行えばよいし、オリジナルのピッチエンベロープとピッチテンプレートデータPitchとが異なっている場合はその偏差分だけ波形読出し速度を可変制御すればよい。また、ピッチ制御ブロックCB3は、ノート指示データを受け付け、該ノート指示データによっても波形読出し速度を制御する。例えば、波形テンプレートデータのオリジナルのピッチがノートC4のピッチを基本としているとし、ノートD4の音もこのノートC4のオリジナルピッチを持つ波形テンプレートデータを利用して発生するものとすると、ノート指示データのノートD4とオリジナルのピッチのノートC4との偏差に応じて波形読出し速度を制御することとなる。このようなピッチ制御の細部は、公知技術を応用できるため、特に詳しく説明しない。
【0105】
波形アクセス制御ブロックCB1では、基本的には、ピッチ制御ブロックCB3から出力される波形読出し速度制御情報に応じて、波形テンプレートデータの各サンプルを順次読み出す。このとき、時間テンプレートデータとして与えられるTSC制御情報に従って波形読出し態様を制御し、発生音のピッチはピッチ制御ブロックCB3から与えられる波形読出し速度制御情報に応じて決定しつつ、トータルの波形読出し時間はTSC制御情報に従って可変制御されるようにする。例えば、オリジナルの波形データの時間長よりも発音時間長を伸張する場合は、波形読出し速度はそのままにして、一部の波形部分が重複して読み出されるようにすれば、所望のピッチを維持しつつ発音時間長を伸張することができる。また、オリジナルの波形データの時間長よりも発音時間長を圧縮する場合は、波形読出し速度はそのままにして、一部の波形部分が飛び越されて読み出されるようにすれば、所望のピッチを維持しつつ発音時間長を圧縮することができる。
波形アクセス制御ブロックCB1とクロスフェード制御ブロックCB2とでは、波形テンプレート用のルールデーコード処理ブロックRB1の出力に従って図17を参照して説明したような接続処理(直接接続又はクロスフェード補間)を実行するための処理を行う。クロスフェード制御ブロックCB2は、パーシャルベクトルPVQに従って部分的波形テンプレートをループ読出しながらクロスフェード処理する場合にも利用される。また、上記TSC制御の際に波形接続を滑らかにする場合にも利用される。
【0106】
振幅制御ブロックCB4は、発生された波形データに対して振幅テンプレートAmpに応じた振幅エンベロープを付与する。この場合も、波形テンプレートそのものがオリジナルの振幅エンベロープ情報を含んでいるため、ラインL2を介して該オリジナルの振幅エンベロープ情報をデータベースから受け取り、該オリジナルの振幅エンベロープと振幅テンプレートデータAmpとの偏差で波形データの振幅を制御する。例えば、オリジナルの振幅エンベロープと振幅テンプレートデータAmpとが同じ場合は、振幅制御ブロックCB4では実質的な振幅制御を行わずに波形データを素通りさせるだけでよい。オリジナルの振幅エンベロープと振幅テンプレートデータAmpとが異なっている場合はその偏差分だけ振幅レベルを可変制御すればよい。
【0107】
〔楽音合成装置の具体例〕
図22は、この発明の実施例に係る楽音合成装置のハードウェア構成例を示すブロック図である。この楽音合成装置は、電子楽器あるいはカラオケ装置又は電子ゲーム装置又はその他のマルチメディア機器又はパーソナルコンピュータ等、任意の製品応用形態をとっていてよい。
図22に示す構成によれば、ソフトウェア音源を利用してこの発明の実施例に係る楽音合成処理を実行する。この発明に係る楽音データの作成及び楽音合成処理を実現するようにソフトウェアシステムを構築すると共に、付属のメモリ装置に所要のデータベースDBを構築する、若しくは外部(ホスト)において構築されたデータベースDBに通信回線を介してアクセスする、といった実施形態をとる。
【0108】
図22の楽音合成装置においては、メイン制御部としてCPU(中央処理部)10を使用し、このCPU10の制御の下で、この発明に係る楽音データの作成及び楽音合成処理を実現するソフトウェアのプログラムを実行すると共に、ソフトウェア音源のプログラムを実行する。勿論、CPU10は、更にはその他の適宜のプログラムも、並行して実行することができる。
CPU10には、ROM(リードオンリーメモリ)11,RAM(ランダムアクセスメモリ)12,ハードディスク装置13,第1のリムーバブルディスク装置(例えばCD−ROMドライブ若しくはMOドライブ)14,第2のリムーバブルディスク装置(例えばフロッピーディスクドライブ)15,表示器16,キーボード及びマウス等の入力操作装置17,波形インタフェース18,タイマ19,ネットワークインタフェース20,MIDIインタフェース21等が、データ及びアドレスバス22を介して接続されている。
【0109】
図23は、波形インタフェース18の詳細例とRAM12内の波形バッファの構成例を示している。波形インタフェース18は、波形データの取り込み(サンプリング)と出力の両方を制御するものであり、外部からマイクロフォン等によって入力された波形データをサンプリングしてアナログ/ディジタル変換するアナログ/ディジタル変換器(ADC)23と、サンプリングのための第1のDMAC(ダイレクトメモリアクセスコントローラ)24と、所定の周波数のサンプリングクロックFsを発生するサンプリングクロック発生回路25と、波形データの出力を制御する第2のDMAC(ダイレクトメモリアクセスコントローラ)26と、出力波形データをディジタル/アナログ変換するディジタル/アナログ変換器(DAC)27とを含んでいる。なお、第2のDMAC26は、サンプリングクロックFsに基づき絶対時刻情報を作成し、CPUのバス22に与える働きもする。
【0110】
RAM12においては、複数の波形バッファW−BUFを有する。1つの波形バッファW−BUFは、1フレーム分の波形サンプルデータを蓄積する記憶容量(アドレス数)を持つ。例えば、サンプリングクロックFsに基づく再生サンプリング周波数が48kHz、1フレーム区間の時間が10ミリ秒であるとすると、1つの波形バッファW−BUFは、480サンプルの波形サンプルデータを記憶する容量を持つ。少なくとも2つの波形バッファW−BUF(A,B)が使用され、1つの波形バッファW−BUFが読み出しモードとされて波形インタフェース18のDMAC26によってアクセスされるとき、他の波形バッファW−BUFは書き込みモードとされ、生成した波形サンプルデータを書き込む。この実施例に係る楽音合成処理プログラムにおいては、各楽音合成チャンネル毎に、1フレーム分の複数サンプルからなる波形サンプルデータを一括して生成し、書き込みモードとなっている1つの波形バッファW−BUFの各サンプル位置(アドレス位置)に各チャンネルの波形サンプルデータが足し込まれる(アキュムレート)される。例えば、1フレームが480サンプルからなるとすると、第1の楽音合成チャンネルについての480サンプルの波形サンプルデータが一括演算され、これが波形バッファW−BUFの各サンプル位置(アドレス位置)にそれぞれストアされる。次に、第2の楽音合成チャンネルについての480サンプルの波形サンプルデータが一括演算され、これが同じ波形バッファW−BUFの各サンプル位置(アドレス位置)にそれぞれ足し込まれる(アキュムレート)される。以下、同様である。従って、全チャンネルについての1フレーム分の波形サンプルデータの生成演算を終了したとき、書き込みモードとなっている1つの波形バッファW−BUFの各サンプル位置(アドレス位置)には、全チャンネルの波形サンプルデータを各サンプル毎にアキュムレートした合計波形サンプルデータが蓄積されている。例えば、最初はAの波形バッファW−BUFに1フレーム分の合計波形サンプルデータの書き込みを行い、次に、Bの波形バッファW−BUFに1フレーム分の合計波形サンプルデータの書き込みを行う。Aの波形バッファW−BUFは、書き込みが終わり次第、次のフレーム区間の始まりから読み出しモードに移行し、当該フレーム区間の間で、サンプリングクロックFsに基づく所定の再生サンプリング周期で規則的に読み出される。従って、基本的には、2つの波形バッファW−BUF(A,B)の読み書きモードを交互に切り替えて使用すればよいが、数フレーム分先行して書き込みを行えるよう余裕を持たせる場合は、3以上の波形バッファW−BUF(A,B,C,…)を使用してもよい。
【0111】
CPU10の制御の下で、この発明に係る楽音データの作成及び楽音合成処理を実現するソフトウェアプログラムは、ROM11,RAM12あるいはハードディスク装置13あるいはリムーバブルディスク装置14,15のいずれに記憶しておくようにしてもよい。また、ネットワークインタフェース20を介して通信ネットワークに接続し、外部のサーバコンピュータ(図示せず)から、上記“この発明に係る楽音データの作成及び楽音合成処理を実現するプログラム”やデータベースDBのデータ等を受け取って、内部のRAM12又はハードディスク13又はリムーバブルディスク装置14,15等に格納するようにしてもよい。CPU10は、例えばRAM12に記憶されている“この発明に係る楽音データの作成及び楽音合成処理を実現するプログラム”を実行して、奏法シーケンスに従う楽音を合成し、合成した楽音波形データをRAM12内の波形バッファW−BUFに一時記憶する。DMAC26の制御によって、RAM12内の波形バッファW−BUFから波形データを読み出してディジタル/アナログ変換器(DAC)27に送り、D/A変換する。D/A変換された楽音波形データはサウンドシステム(図示せず)に与えられ、空間的に発音される。
【0112】
図8(a)に示したように、MIDIデータからなる自動演奏シーケンスデータの中に本発明に従う奏法シーケンス(アーティキュレーションエレメントシーケンスAESEQ)のデータが組み込まれているものとして以下説明を行う。なお、図8(a)では特に詳しく述べなかったが、奏法シーケンス(アーティキュレーションエレメントシーケンスAESEQ)のデータは、MIDIフォーマットの形態で、例えばMIDIのエクスクルーシブデータとして組み込むことができる。
【0113】
図24は、MIDIフォーマットの演奏データに基づいてソフトウェア音源によって実行される楽音生成処理の概略を示すタイムチャートである。(a)に示す「演奏タイミング」は、MIDIのノートオンイベントやノートオフイベントあるいはその他のイベント(図8(a)におけるEVENT(MIDI))、及びアーティキュレーションエレメントシーケンスイベント(図8(a)におけるEVENT(AESEQ))などの各イベント#1〜#4の発生タイミングを例示している。(b)は、波形サンプルデータの生成演算を行うタイミング(「波形生成」)と、その再生タイミング(「波形再生」)との関係を例示するものである。上段の「波形生成」の欄は、各楽音合成チャンネル毎に1フレーム分の複数サンプルからなる波形サンプルデータを一括して生成して書き込みモードとなっている1つの波形バッファW−BUFの各サンプル位置(アドレス位置)に各チャンネルの波形サンプルデータを足し込む(アキュムレートする)処理が行われるタイミングを例示している。下段の「波形再生」の欄は、1フレーム区間の間でサンプリングクロックFsに基づく所定の再生サンプリング周期で波形バッファW−BUFから波形サンプルデータを規則的に読み出す処理を行うタイミングを示している。それぞれに付記したA,Bの表示は、書き込み又は読み出しの対象となっている波形バッファW−BUFがどれであるかを区別する記号である。FR1,FR2,FR3,…は、仮に付けた各フレームの番号である。例えば、フレームFR1のときに波形生成演算がなされた或る1フレーム分の波形サンプルデータがAの波形バッファW−BUFに書き込まれ、これが、次のフレームFR2において該Aの波形バッファW−BUFから読み出される。次の1フレーム分の波形サンプルデータはフレームFR2において生成演算がなされ、Bの波形バッファW−BUFに書き込まれる。このBの波形バッファW−BUFに記憶した1フレーム分の波形サンプルデータが、更に次のフレームFR3において該Bの波形バッファW−BUFから読み出される。(a)に示すイベント#1,#2,#3は、1フレームの時間内で起こっており、これらのイベント#1,#2,#3に対応する波形サンプルデータの生成演算は、(b)のフレームFR3において開始される。従って、これらのイベント#1,#2,#3に対応する楽音の立上り(発音開始)は、その次のフレームFR4において開始される。Δtは、MIDI演奏データとして与えられたイベント#1,#2,#3の発生タイミングと、それに対応する楽音が発音開始されるタイミングとのずれを示している。この時間ずれΔtは、1乃至数フレーム分だけなので、聴感上問題ない。なお、発音開始時の波形サンプルデータは、波形バッファW−BUFの初めから書き込まれるのではなく、開始時点に対応する波形バッファW−BUFの所定の途中の位置から書き込まれるようになっている。
【0114】
なお、「波形生成」における波形サンプルデータの生成演算の方式は、通常のMIDIのノートオンイベントに基づく自動演奏音(これを「通常演奏」音ということにする)と、アーティキュレーションエレメントシーケンスAESEQのオンイベントに基づく演奏音(これを「奏法演奏」音ということにする)とでは、異なっている。通常のMIDIのノートオンイベントに基づく「通常演奏」処理と、アーティキュレーションエレメントシーケンスAESEQのオンイベントに基づく「奏法演奏」処理は、図29及び図30に示すような、それぞれ別々の処理ルーチンで実行される。例えば、伴奏パートを通常のMIDIのノートオンイベントに基づく「通常演奏」で行い、特定のソロ演奏パートをアーティキュレーションエレメントシーケンスAESEQに基づく「奏法演奏」で行う、といった使い分けを行うと、効果的である。
【0115】
図25は、本発明に従う奏法シーケンス(アーティキュレーションエレメントシーケンスAESEQ)のデータに基づく「奏法演奏」処理(アーティキュレーションエレメントの楽音合成処理)の概略を示すタイムチャートである。「フレーズ準備コマンド」と「フレーズスタートコマンド」は、図8(a)に示すように「アーティキュレーションエレメントシーケンスイベントEVENT(AESEQ)」として、MIDI演奏データの中に含まれているものである。すなわち、1つのアーティキュレーションエレメントシーケンスAESEQ(図25では「フレーズ」と称している)のイベントデータは、「フレーズ準備コマンド」と「フレーズスタートコマンド」とからなっている。先行するイベントデータである「フレーズ準備コマンド」は、再生すべきアーティキュレーションエレメントシーケンスAESEQ(すなわちフレーズ)を指定し、その再生を行う準備をすべきことを指示するもので、当該アーティキュレーションエレメントシーケンスAESEQの発音開始時点よりも所定時間だけ先行して与えられる。ブロック30で示した「準備処理」のプロセスでは、「フレーズ準備コマンド」に応じて、指定されたアーティキュレーションエレメントシーケンスAESEQを再生するために必要なすべてのデータをデータベースDBから取り出し、RAM12の所定のバッファエリアにダウンロードし、該アーティキュレーションエレメントシーケンスAESEQを展開して即座に該アーティキュレーションエレメントシーケンスの再生処理が行えるように、必要な準備を行う。また、この「準備処理」のプロセスでは、指定されたアーティキュレーションエレメントシーケンスAESEQを解釈し、相前後するアーティキュレーションエレメントを接続するルール等を設定若しくは決定して、必要な接続制御データ等を形成する処理も行う。例えば、指定されたアーティキュレーションエレメントシーケンスAESEQが、図示のように5つのアーティキュレーションエレメントAE#1〜AE#5からなるとすると、それぞれの接続箇所(接続1〜接続4として指摘した箇所)における接続ルールを確定し、そのための接続制御データを形成する。また、各アーティキュレーションエレメントAE#1〜AE#5の開始時刻を示すデータを、フレーズ開始時からの相対時間表現で準備する。「フレーズ準備コマンド」に後続するイベントデータである「フレーズスタートコマンド」は、当該アーティキュレーションエレメントシーケンスAESEQの発音開始を指示するものである。この「フレーズスタートコマンド」に応じて、前記「準備処理」で準備された各アーティキュレーションエレメントAE#1〜AE#5を順次再生する。すなわち各アーティキュレーションエレメントAE#1〜AE#5の開始時刻が到来したら、該当するアーティキュレーションエレメントAE#1〜AE#5の再生を開始し、かつ、それぞれの接続箇所(接続1〜接続4)で、予め準備した接続制御データに従って、先行するアーティキュレーションエレメントAE#1〜AE#4に滑らかに接続されるように所定の接続処理を施す。
【0116】
図26は、図22のCPU10が実行する楽音合成処理のメインルーチンを示すフローチャートである。このメインルーチンの「自動演奏処理」によって、自動演奏シーケンスデータのイベントに基づく処理が行われる。まず、ステップS50では、RAM12上での各種バッファ領域の確保等、必要な各種の初期設定処理を行う。次に、ステップS51では、下記の各起動要因が発生しているか否かのチェックを行う。
起動要因▲1▼:インターフェース20,21を介してMIDI演奏データまたはその他の通信入力データが入力されたこと。
起動要因▲2▼:自動演奏処理タイミングが到来したこと。自動演奏における次のイベントの発生時間をチェックするために、この自動演奏処理タイミングは規則的に発生する。
起動要因▲3▼:1フレーム単位の波形生成タイミングが到来したこと。1フレーム単位でまとめて波形サンプルデータを生成するために、この波形生成タイミングは1フレーム周期で(たとえばフレーム区間の終わりのタイミングで)発生する。
起動要因▲4▼:入力操作装置17でキーボート又はマウス等のスイッチ操作(メインルーチンの終了指示操作を除く)が行われたこと。
起動要因▲5▼:ディスクドライブ13〜15や表示器16からの割込み要求があったこと。
起動要因▲6▼:入力操作装置17でメインルーチンの終了指示操作が行われたこと。
【0117】
ステップS52では、いずれかの起動要因▲1▼〜▲6▼が発生したかを判断する。NOであれば、ステップS51,S52を繰り返し、YESとなったら、ステップS53で、どの起動要因が発生したのかを判定する。起動要因▲1▼が発生した場合はステップS54で所定の「通信入力処理」を行う。起動要因▲2▼が発生した場合はステップS55で所定の「自動演奏処理」(その一例を図27に示す)を行う。起動要因▲3▼が発生した場合はステップS56で所定の「音源処理」(その一例を図28に示す)を行う。起動要因▲4▼が発生した場合はステップS57で所定の「SW処理」(操作されたスイッチに対応する処理)を行う。起動要因▲5▼が発生した場合はステップS58で所定の「その他処理」(割込み要求に応じた処理)を行う。起動要因▲6▼が発生した場合はステップS59で所定の「終了処理」(このメインルーチンを終了させる処理)を行う。
【0118】
なお、ステップS53において、起動要因▲1▼乃至▲6▼のうちの2以上の起動要因が同時的に発生していると判断された場合には、所定の優先順位で(例えば起動要因▲1▼,▲2▼,▲3▼,▲4▼,▲5▼,▲6▼の順)処理されるものとする。その場合、対等の優先順位の処理があってもよい。また、ステップS51〜S53は、擬似マルチタスク処理におけるタスク管理を仮想的に示したものであり、実際には、いずれかの起動要因の発生に基づいて処理を実行している途中で、それよりも優先順位の高い起動要因が発生したことにより、割込みで別の処理を実行すること(例えば、起動要因▲3▼の発生に基づいて「音源処理」を実行している途中で、起動要因▲2▼が発生したことにより、割込みで「自動演奏処理」を実行すること等)がある。
【0119】
図27により、「自動演奏処理」(ステップS55)の具体例につき説明する。まず、ステップS60では、DMAC26(図23)から与えられる絶対時刻情報を、曲データの次のイベントタイミングとを比較する処理を行う。図8に示すように、曲データつまり自動演奏データにおいては、イベントデータEVENTに先行してデュレーションデータDURが存在している。例えば、デュレーションデータDURが読み出されたときに、そのときの絶対時刻情報とデュレーションデータDURを加算して次イベント到来時刻を示す絶対時刻情報を作成し、ストアしておく。そして、この次イベント到来時刻を示す絶対時刻情報と現時点での絶対時刻情報と図27のステップS60で比較する。
【0120】
ステップS61では、現時点の絶対時刻が次イベント到来時刻に一致又は経過したか否かを判定する。まだ次イベント到来時刻になっていなければ、図27の処理を直ちに終了する。次イベント到来時刻になったならば、ステップS62に行き、該イベントの種類が、通常演奏のイベント(つまり通常のMIDIイベント)であるか、奏法演奏のイベント(つまりアーティキュレーションエレメントシーケンスイベント)であるかを調べる。通常演奏であれば、ステップS63に行き、そのイベントに応じた通常のMIDIイベント処理を行い、音源制御データを生成する。次のステップS64では、当該イベントに係る楽音合成チャンネル(図では「音源ch」と略記してある)を検出し、該チャンネルの番号をチャンネル番号レジスタiに登録する。例えば、ノートオンイベントの場合は、該ノートの発生を割り当てるチャンネルを決定し、該チャンネルをレジスタiに登録する。また、ノートオフイベントの場合は、該ノートの発生が割り当てられていチャンネルを検出し、該チャンネルをレジスタiに登録する。次のステップS65では、レジスタiによって指示されたチャンネル番号のトーンバッファTBUF(i)に、ステップS63で生成した音源制御データと制御タイミングデータとを格納する。なお、制御タイミングとは、当該イベントに係る制御を行うタイミングであり、ノートオンイベントの場合は発音開始タイミング、ノートオフイベントの場合はリリース開始タイミング等である。この実施例では、ソフトウェア処理によって楽音波形を発生するようにしているため、MIDIデータのイベント発生タイミングとそれに対応する実際の処理のタイミングが少しずれるので、そのずれを考慮して、発音開始タイミング等、実際の制御タイミングを指示し直しているのである。
【0121】
ステップS62で奏法演奏のイベントであると判定された場合は、ステップS66に行き、それが「フレーズ準備コマンド」と「フレーズスタートコマンド」(図25参照)のどちらであるのかを調べる。「フレーズ準備コマンド」であれば、ステップS67〜S71のルーチンを実行する。このステップS67〜S71のルーチンは、図25でブロック30で示した「準備処理」に相当する。まず、ステップS67では、当該フレーズ(つまりアーティキュレーションエレメントシーケンスAESEQ)を再生する楽音合成チャンネル(図では「音源ch」と略記)を決定し、そのチャンネル番号をレジスタiに登録する。次のステップS68では、当該フレーズ(つまりアーティキュレーションエレメントシーケンスAESEQ)の奏法シーケンス(図では「奏法SEQ」と略記)を展開する。すなわち、当該アーティキュレーションエレメントシーケンスAESEQを個別テンプレートを指示可能なベクトルデータのレベルまで分解し、解析して、各アーティキュレーションエレメント(図25のAE#1〜AE#5)の接続箇所(接続1〜接続4)における接続ルールを確定し、そのための接続制御データを形成する。ステップS69では、サブシーケンス(図では「サブSEQ」と略記)があるかを調べ、あれば、ステップS68に戻り、該サブシーケンスを個別テンプレートを指示可能なベクトルデータのレベルまで更に分解する。
【0122】
アーティキュレーションエレメントシーケンスAESEQがサブシーケンスを含む一例を図32に示す。図32に示すように、アーティキュレーションエレメントシーケンスAESEQは階層化構造を具備していてよい。すなわち、図で、「奏法SEQ#2」が、MIDI演奏情報の中に組み込まれたアーティキュレーションエレメントシーケンスAESEQのデータによって指定されたものであるとすると、この指定されたシーケンス「奏法SEQ#2」は、「奏法SEQ#6」と「エレメントベクトルE−VEC#5」とによって特定される。この「奏法SEQ#6」がサブシーケンスに相当する。このサブシーケンスを解析することにより、「奏法SEQ#6」が、エレメントベクトルE−VEC#2とE−VEC#3とによって特定される。こうして、MIDI演奏情報の中に組み込まれたアーティキュレーションエレメントシーケンスAESEQのデータによって指定された「奏法SEQ#2」が展開され、これが、エレメントベクトルE−VEC#2、E−VEC#3、E−VEC#5によって特定されるものであることが解析される。前述の通り、このとき、あわせて、各アーティキュレーションエレメントを接続するための接続制御データも必要に応じて形成される。なお、エレメントベクトルE−VECとは、個別のアーティキュレーションエレメントを具体的に特定するデータのことである。勿論、このような階層化構造を持つ場合に限らず、MIDI演奏情報の中に組み込まれたアーティキュレーションエレメントシーケンスAESEQのデータによって指定された「奏法SEQ#2」によって、初めから、各エレメントベクトルE−VEC#2、E−VEC#3、E−VEC#5が特定されるようになっている場合もある。
【0123】
ステップS70では、展開された各エレメントベクトル(図では「E−VEC」と略記)のデータをその制御タイミングを相対時刻によって示すデータと共に、レジスタiによって指示されたチャンネル番号のトーンバッファTBUF(i)に、格納する。この場合、制御タイミングは、図25に示したような、各アーティキュレーションエレメントの開始タイミングである。次のステップS71では、トーンバッファTBUF(i)を参照して、必要なテンプレートデータをデータベースDBからRAM12にロードする。
今回のイベントが「フレーズスタートコマンド」(図25参照)である場合は、ステップS72〜S74のルーチンを実行する。このステップS72では、当該フレーズ演奏を再生することが割り当てられているチャンネルを検出し、そのチャンネル番号をレジスタiに登録する。次のステップS73では、レジスタiによって指示されたチャンネル番号のトーンバッファTBUF(i)に格納されている全ての制御タイミングデータを絶対時刻表現のデータに変換する。すなわち、当該「フレーズスタートコマンド」が発生したときにDMAC26から与えられた絶対時刻情報を初期値として、各制御タイミングデータの相対時刻に該初期値を加算することで、各制御タイミングデータを絶対時刻表現のデータに変換することができる。次のステップS74では、トーンバッファTBUF(i)の内容を変換された各制御タイミングの絶対時刻に応じて書き直す。すなわち、該奏法シーケンスを構成する各エレメントベクトルE−VECの開始時刻と終了時刻、各エレメントベクトル間の接続制御データ等をトーンバッファTBUF(i)に書き込む。
【0124】
次に、図28により、「音源処理」(図26のステップS56)の具体例につき説明する。前述の通り、この「音源処理」は1フレーム毎に起動される。まず、ステップS75では、所定の波形生成準備処理を行う。例えば、前フレーム区間において再生読み出しが完了した波形バッファW−BUFの内容をクリアし、今回のフレーム区間において該波形バッファW−BUFにデータを書き込むことができるようにする。次のステップS76では、発音処理を行うべきチャンネルが存在しているかどうかを調べる。なければ、処理を続ける必要がないので、ステップS83にジャンプする。あれば、ステップS77に行き、発音処理を行うべきチャンネルのうちの1つのチャンネルを特定し、該チャンネルについて波形サンプルデータ生成処理を行う準備をする。次のステップS78では、該準備したチャンネルに割り当てられている楽音の種類が、「通常演奏」音と「奏法演奏」音のどちらであるかを調べる。「通常演奏」音であれば、ステップS79に行き、当該チャンネルについての1フレーム分の波形サンプルデータを、「通常演奏」音として、生成する処理を行う。「奏法演奏」音であれば、ステップS80に行き、当該チャンネルについての1フレーム分の波形サンプルデータを、「奏法演奏」音として、生成する処理を行う。次に、ステップS81では、発音処理を行うべきチャンネルのうち残りの(未処理の)チャンネルがあるかどうかを調べる。あれば、ステップS82に行き、残りの(未処理の)チャンネルの中から次に処理すべきチャンネルを特定し、該チャンネルについて波形サンプルデータ生成処理を行う準備をする。それから、前記ステップS78に戻り、前述と同様のステップS78〜80の処理を新たなチャンネルに関して実行する。発音処理を行うべき全てのチャンネルに関してステップS78〜80の処理を完了すると、残りの(未処理の)チャンネルが無しと成るので、ステップS81はNOとなり、ステップS83に行く。この状態では、発音すべき全チャンネルについての1フレーム分の波形サンプルデータの生成が終了し、それらが各サンプル毎に足し込まれて(アキュムレートされ)、波形バッファW−BUFに格納されている。ステップS83では、該波形バッファW−BUFのデータを波形入出力(I/O)ドライバの管理下に引き渡す。かくして、次の1フレーム区間において、該波形バッファW−BUFが読み出しモードとなり、DMAC26によってアクセスされて、所定のサンプリングクロックFsに従って波形サンプルデータが規則的サンプリング周期で再生読み出しされることになる。
【0125】
図28のステップS79の処理の詳細例が図29に示されている。図29は、「通常演奏」についての「1フレーム分の波形データ生成処理」の一例を示すフロー図であって、MIDI演奏データに基づく通常の楽音合成処理がここで行われる。この処理では、ステップS90〜S98のループを1回行う毎に、1サンプルの波形データの生成が行われる。従って、現在処理中のサンプルが1フレームの何番目のサンプルかを示すアドレスポインタ管理がなされるが、その点は特に詳しく説明しない。まず、ステップS90では、制御タイミングが到来したかどうかをチェックする。この制御タイミングは図27のステップS65で指示し直されたタイミングであり、例えば、発音開始タイミングあるいはリリース開始タイミング(発音終了タイミング)などである。現在処理中のフレームに関して、なんらかの制御タイミングがある場合は、該制御タイミングの時刻に対応するアドレスポインタ値に対応して、このステップS90がYESとなり、ステップS91に行き、音源制御データに基づく必要な波形発生開始処理を行う。現アドレスポインタ値が制御タイミングに対応していない場合は、ステップS91をジャンプしてステップS92に行く。ステップS92では、ビブラート等に必要な低周波信号(LFO)を形成する処理を行う。次のステップS93では、ピッチ制御用のエンベロープ信号(EG)を形成する処理を行う。
【0126】
次のステップS94では、上記音源制御データに基づき、「通常演奏」音のための波形メモリ(図示せず)から所定の音色の波形サンプルデータを、指定された楽音ピッチに対応するレートで読み出し、読み出した波形サンプルデータの値をサンプル間補間する処理を行う。ここでは、通常知られた波形メモリ読み出し技術とサンプル間補間技術とを適宜使用すればよい。ここで指定される楽音ピッチは、ノートオンイベントに係るノート(音高)の正規のピッチを、前ステップS92,93で形成されたビブラート信号やピッチ制御エンベロープ値などによって可変制御したものである。次のステップS95では、振幅エンベロープ(EG)を形成する処理を行う。次のステップS96では、ステップS94で生成した1サンプルの波形データの音量レベルを、ステップS95で形成された振幅エンベロープ値によって可変制御し、これを、現アドレスポインタが指示する波形バッファW−BUFのアドレス箇所に既に格納されている波形サンプルデータに足し込む。つまり、同じサンプル点についての他のチャンネルの波形サンプルデータに加算・アキュムレートする。次に、ステップS97では、1フレーム分の処理が完了したかどうかを調べ。まだ完了していなければ、ステップS98に行き、次サンプルを準備する(アドレスポインタを次に進める)。
【0127】
上記の構成により、フレームの途中から発音を開始する場合は、該発音開始位置に対応する波形バッファW−BUFの中間的なアドレスから波形サンプルデータが格納されることになる。勿論、1フレーム区間の全体にわたって発音を持続する場合は、波形バッファW−BUFの全アドレスに波形サンプルデータが格納される。
なお、ステップS93,S95におけるエンベロープ形成処理は、エンベロープ波形メモリを読み出すことによって行うようにしてもよいし、所定のエンベロープ関数を計算することによって行うようにしてもよい。エンベロープ関数としては、周知の、比較的シンプルな1次の折線関数を演算する方式を用いてよい。なお、後述する「奏法演奏」とは異なり、この「通常演奏」では、発音中の波形の差し替えや、エンベロープの差し替え、あるいは波形の時間軸伸縮制御等、複雑な処理は行わなくてもよい。
【0128】
図28のステップS80の処理の詳細例が図30に示されている。図30は、「奏法演奏」についての「1フレーム分の波形データ生成処理」の一例を示すフロー図であって、アーティキュレーション(奏法)シーケンスデータに基づく楽音合成処理がここで行われる。また、この図30の処理では、各テンプレートデータに基づくアーティキュレーションエレメントの楽音波形処理や、エレメント波形間の接続処理等が既に述べた要領で実行される。図29と同様に、図30の処理でも、ステップS100〜S108のループを1回行う毎に、1サンプルの波形データの生成が行われる。従って、現在処理中のサンプルが1フレームの何番目のサンプルかを示すアドレスポインタ管理がなされるが、その点は特に詳しく説明しない。なお、この図30の処理では、相前後するアーティキュレーションエレメントを滑らかに接続するために、2系列の各種テンプレートデータ(波形テンプレートを含む)をクロスフェード合成したり、時間軸伸縮制御のために2系列の波形サンプルデータをクロスフェード合成したりすることが行われる。よって、1つのサンプル点について、クロスフェード合成のための2系列分の各種データ処理が行われることになる。
【0129】
まず、ステップS100では、制御タイミングが到来したかどうかをチェックする。この制御タイミングは図27のステップS74で書き込まれたタイミングであり、例えば、各アーティキュレーションエレメントAE#1〜AE#5の開始タイミングや接続処理の開始タイミングなどである。現在処理中のフレームに関して、なんらかの制御タイミングがある場合は、該制御タイミングの時刻に対応するアドレスポインタ値に対応して、このステップS100がYESとなり、ステップS101に行き、該制御タイミングに対応するエレメントベクトルE−VECや接続制御データなどに基づく必要な制御を行う。現アドレスポインタ値が制御タイミングに対応していない場合は、ステップS101をジャンプしてステップS102に行く。
【0130】
ステップS102では、エレメントベクトルE−VECによって指定された特定のエレメントについてのタイムテンプレート(図ではテンプレートをTMPと略記)を生成する処理を行う。タイムテンプレートとは図3に示した時間テンプレート(TSCテンプレート)のことである。この実施例において、タイムテンプレート(TSCテンプレート)は、振幅テンプレートやピッチテンプレートと同様に、時間的に変化するエンベロープ状のデータとして与えられるものとする。従って、このステップS102では、タイムテンプレートのエンベロープを形成する処理を行う。
ステップS103では、エレメントベクトルE−VECによって指定された特定のエレメントについてのピッチ(Pitch)テンプレートを生成する処理を行う。ピッチテンプレートも図3に例示したように時間的に変化するエンベロープ状のデータとして与えられる。
ステップS105では、エレメントベクトルE−VECによって指定された特定のエレメントについての振幅(Amp)テンプレートを生成する処理を行う。振幅テンプレートも図3に例示したように時間的に変化するエンベロープ状のデータとして与えられる。
【0131】
各ステップS102,S103,S105におけるエンベロープ形成法は、上記と同様に、エンベロープ波形メモリを読み出すことによって行うようにしてもよいし、所定のエンベロープ関数を計算することによって行うようにしてもよく、また、そのエンベロープ関数としては、比較的シンプルな1次の折線関数を演算する方式を用いてよい。また、図18〜図20を用いて説明したように、所定のエレメント接続箇所に対応して、2系列でテンプレートを形成し(先行するエレメントのテンプレートと後続するエレメントのテンプレート)、両者を接続制御データに従ってクロスフェード合成して接続する処理や、オフセット処理などもこれらのステップS102,S103,S105で行う。どのような接続ルールに従って接続処理を行うかは、それぞれに対応する接続制御データに応じて異なる。
【0132】
ステップS104では、基本的には、エレメントベクトルE−VECによって指定された特定のエレメントについての波形(Timbre)テンプレートを、指定された楽音ピッチに対応するレートで読み出す処理を行う。ここで指定される楽音ピッチは、前ステップS103で形成されたピッチテンプレート(ピッチ制御エンベロープ値)などによって可変制御されるものである。なお、タイムテンプレート(TSCテンプレート)に応じて、楽音ピッチとは独立に、波形サンプルデータの存在時間を時間軸に沿って伸張または圧縮する制御つまりTSC制御も、このステップS104で行う。また、時間軸伸縮制御に伴って、波形の連続性が損なわれることのないように、2系列で波形サンプルデータ(同じ波形テンプレート内の異なる時点に対応する2つの波形サンプルデータ)を読み出し、これをクロスフェード合成する処理も、このステップS104で行う。また、「通常演奏」の場合と同様に、波形サンプル間の補間演算処理も、このステップS104で行う。更に、図17を用いて説明したように、所定のエレメント接続箇所に対応して、2系列で波形テンプレートを読み出し(先行するエレメントの波形テンプレートと後続するエレメントの波形テンプレート)、両者をクロスフェード合成して接続する処理も、このステップS104で行う。更に、図13〜図16を用いて説明したような、波形テンプレートをループ読み出し(繰り返し読み出し)する処理と、その際に、2系列のループ読み出し波形をクロスフェード合成する処理も、このステップS104で行う。
なお、使用する波形(Timbre)テンプレートが、オリジナル波形における時間的ピッチ変動成分をそのまま保っているものである場合、ピッチテンプレートの値は、オリジナルのピッチ変動に対する変化量(差分値又は比)で与えるようにするとよい。つまり、オリジナルの時間的ピッチ変動そのままにするときは、ピッチテンプレートの値を一定値(例えば「1」)に維持する。
【0133】
次のステップS105では、振幅テンプレートを形成する処理を行う。次のステップS106では、ステップS104で生成した1サンプルの波形データの音量レベルを、ステップS105で形成された振幅エンベロープ値によって可変制御し、これを、現アドレスポインタが指示する波形バッファW−BUFのアドレス箇所に既に格納されている波形サンプルデータに足し込む。つまり、同じサンプル点についての他のチャンネルの波形サンプルデータに加算・アキュムレートする。次に、ステップS107では、1フレーム分の処理が完了したかどうかを調べ。まだ完了していなければ、ステップS108に行き、次サンプルを準備する(アドレスポインタを次に進める)。
なお、上述と同様に、使用する波形(Timbre)テンプレートが、オリジナル波形における時間的振幅変動成分をそのまま保っているものである場合、振幅(Amp)テンプレートの値は、オリジナルの振幅変動に対する変化量(差分値又は比)で与えるようにするとよい。つまり、オリジナルの時間的振幅変動そのままにするときは、振幅テンプレートの値を一定値(例えば「1」)に維持する。
【0134】
次に、時間軸伸縮制御(TSC制御)の一例について説明する。
複数周期波形からなる高品質な、つまり特定のアーティキュレーション特性を具備する、そして、一定のデータ量(サンプル数若しくはアドレス数)からなる波形データを、その楽音再生ピッチとは独立に、また、該波形の全体的特徴を損なうことなく、時間軸上におけるその存在時間長を任意に可変制御することは、本出願人が別出願(例えば特願平9−130394号)で提案した時間軸伸縮制御(TSC制御)を用いることによって実現できる。このTSC制御の要点を述べれば、一定の波形データ量からなる複数周期波形を、一定の再生サンプリング周波数と所定の再生ピッチを維持しつつ、その時間軸上の波形データ存在時間長を伸縮するために、圧縮する場合は、波形データの適宜の部分を飛び越して読み出しを行ない、伸張する場合は、波形データの適宜の部分を繰り返し読み出しするようにし、そして、飛び越し若しくは部分的繰り返し読み出しによる波形データの不連続性を除去するためにクロスフェード合成を行なうようにしたものである。
【0135】
図31は、この時間軸伸縮処理(TSC制御)の概略を概念的に示す図である。(a)は、時間的に変化するタイムテンプレートの一例を示している。タイムテンプレートは、時間軸伸縮比を示すデータ(これをCRateという)からなっており、縦軸が該データCRate、横軸が時間tである。時間軸伸縮比データCRateは、「1」を基準とする比を示しており、「1」のとき時間軸伸縮をしないことを示し、「1」よりも大きいとき時間軸の圧縮を示し、「1」よりも小さいとき時間軸の伸張を示す。図31の(b)〜(d)は、仮想読出アドレスVADと実読出アドレスRADを用いて、時間軸伸縮比データCRateに応じた時間軸伸縮制御を行う例を示している。実線が実読出アドレスRAD、破線が仮想読出アドレスVADを示す。(b)は、(a)のタイムテンプレートにおけるP1点の時間軸伸縮比データCRate(>1)に応じた時間軸圧縮制御例を示しており、(c)は、(a)のタイムテンプレートにおけるP2点の時間軸伸縮比データCRate(=1)に応じた時間軸伸縮しない例を示し、(d)は、(a)のタイムテンプレートにおけるP3点の時間軸伸縮比データCRate(<1)に応じた時間軸伸張制御例を示している。(c)においては実線は、ピッチ情報に従う本来の波形読出アドレスの進行状態を示しており、実読出アドレスRADと仮想読出アドレスVADが一致している。
【0136】
実読出アドレスRADは、波形テンプレートから実際に波形サンプルデータを読み出すために使用するアドレスであり、所望のピッチ情報に従う一定の変化レートで変化する。例えば、所望のピッチに対応する周波数ナンバを規則的に累算することにより、該ピッチに対応する一定の傾きを持つ実読出アドレスRADを得ることができる。仮想読出アドレスVADは、波形データの時間軸上の長さの所望の伸張又は圧縮制御した状態を想定し、所望の時間軸伸張又は圧縮を達成するためには、現時点でどのアドレス位置から波形サンプルデータを読み出すべきかを指示するアドレスである。そのために、所望のピッチ情報と時間軸伸縮比データCRateとを用いて、該ピッチ情報に従う傾きを伸縮比データCRateによって修正した傾きで変化するアドレスデータを、仮想読出アドレスVADとして発生する。実読出アドレスRADと仮想読出アドレスVADとを比較し、実読出アドレスRADの仮想読出アドレスVADからのかい離幅が所定幅を越えたとき、実読出アドレスRADの値を切替えることを指示し、この切替指示に従って、実読出アドレスRADの仮想読出アドレスVADに対するかい離を解消するよう、適宜アドレス数だけ実読出アドレスRADの数値をシフト制御する。
【0137】
図33は、図31(b)と同様の状態を拡大して示す図である。一点鎖線は、ピッチ情報に従う本来のアドレス進行を例示するもので、図31(c)の実線に対応するものである。太い破線は、仮想読出アドレスVADのアドレス進行を例示する。伸縮比データCRateが1であれば、仮想読出アドレスVADのアドレス進行は、一点鎖線の本来のアドレス進行に一致し、時間軸の変化はない。時間軸を圧縮する場合、伸縮比データCRateは1以上の適宜の値をとり、図示のように、仮想読出アドレスVADのアドレス進行の傾きが相対的に大きくなる。太い実線は、実読出アドレスRADのアドレス進行を例示する。この実読出アドレスRADのアドレス進行の傾きは、一点鎖線で示したピッチ情報に従う本来のアドレス進行の傾きに一致している。この場合、仮想読出アドレスVADのアドレス進行の傾きが相対的に大きいが故に、時間経過に従って次第に実読出アドレスRADのアドレス進行が仮想読出アドレスVADのアドレス進行よりも遅れてくる。そして、そのかい離幅が所定以上になったとき、切替指示(図中、矢印で示す)が出され、図示のように、該かい離を解消する方向に、実読出アドレスRADを適量シフトする。これによって、実読出アドレスRADのアドレス進行は、ピッチ情報に従う傾きを維持しつつ、仮想読出アドレスVADのアドレス進行に沿って変化し、時間軸方向に圧縮された特性を示す。従って、このような実読出アドレスRADに従って波形テンプレートの波形サンプルデータを読み出すことにより、再生する楽音のピッチは変更せずに、時間軸方向に波形を圧縮した波形信号を得ることができる。
【0138】
図34は、図31(d)と同様の状態を拡大して示す図である。この場合、伸縮比データCRateは1未満であり、太い破線にて示す仮想読出アドレスVADのアドレス進行の傾きは相対的に小さい。従って、時間経過に伴い次第に実読出アドレスRADのアドレス進行が仮想読出アドレスVADのアドレス進行よりも進んできて、そのかい離幅が所定以上になったとき、切替指示(図中、矢印で示す)が出され、図示のように、該かい離を解消する方向に、実読出アドレスRADが適量シフトされる。これによって、実読出アドレスRADのアドレス進行は、ピッチ情報に従う傾きを維持しつつ、仮想読出アドレスVADのアドレス進行に沿って変化し、時間軸方向に伸張された特性を示す。従って、このような実読出アドレスRADに従って波形テンプレートの波形サンプルデータを読み出すことにより、再生する楽音のピッチは変更せずに、時間軸方向に波形を伸張した波形信号を得ることができる。
【0139】
なお、前記かい離を解消する方向への実読出アドレスRADのシフトは、このシフトによって、シフト直前に読み出していた波形データと、シフト直後に読み出す波形データとが滑らかにつながるようにすることが好ましい。また、図中、波線で示すように、切替時の適宜期間で、クロスフェード合成を行うようにするとよい。波線は、クロスフェード副系列用実読出アドレスRAD2のアドレス進行を示す。このクロスフェード副系列用実読出アドレスRAD2は、図示の通り、上記切替指示が出されたとき、シフト前の実読出アドレスRADのアドレス進行の延長上に、実読出アドレスRADと同じレート(つまり傾き)で生成する。適宜のクロスフェード期間において、副系列用実読出アドレスRAD2に対応して読み出される波形から主系列用実読出アドレスRADに対応して読み出される波形まで滑らかに波形が移行するようにクロスフェード合成がなされる。この例の場合、少なくとも所要のクロスフェード期間の間でのみ副系列用実読出アドレスRAD2を生成するようにすればよい。
なお、上記のように一部分でクロスフェード合成を行うTSC制御例に限らず、時間軸伸縮比CRateの値に応じた態様のクロスフェード合成処理を常に行うようにしたTSC制御を採用してもよい。
【0140】
図13〜図15に示したようなパーシャルベクトルPVQの波形テンプレート(つまりループ波形)を繰り返し読み出すことで波形サンプルデータを生成する場合においては、基本的には、ループ回数を可変することによって、比較的簡単に、楽音再生ピッチとは独立に、ループ読み出し波形全体の時間長を可変制御することができる。つまり、クロスフェード区間長を指定するデータによって特定のクロスフェードカーブが特定されると、それに伴ってクロスフェード区間長(時間長若しくはループ回数)が決まってくる。ここで、このクロスフェードカーブの傾きをタイムテンプレートが示す時間軸伸縮比によって可変制御することにより、クロスフェードの速さが可変制御され、結局、クロスフェード区間の時間長が可変制御される。その間、楽音再生ピッチには影響を与えないので、結局、ループ回数が可変制御されることで当該クロスフェード区間の時間長が可変制御される。
【0141】
ところで、時間軸伸縮制御によって、再生波形データの時間軸での存在時間が伸縮制御される場合、この伸縮制御にあわせて、ピッチテンプレート及び振幅テンプレートの時間軸も伸縮制御してやることが望ましい。従って、図30のステップS103,S105においては、ステップS102で作成されたタイムテンプレートに応じて、該ステップで作成するピッチテンプレート及び振幅テンプレートの時間軸を伸縮制御するようにするものとする。
【0142】
なお、楽音合成機能のすべてをソフトウェア音源によって構成せずに、ソフトウェア音源とハードウェア音源のハイブリッドタイプとしてもよい。また、ハードウェア音源装置のみでこの発明に係る楽音合成処理を行うようにしてもよい。あるいは、DSP(ディジタル・シグナル・プロセッサ)を用いてこの発明に係る楽音合成処理を行うようにしてもよい。また、ソフトウェア音源またはハードウェア音源またはそのハイブリッドタイプのいずれの音源方式を用いる場合でも、その波形形成方式は、単純なPCM波形メモリ読み出し方式に限らず、前述の通り、各種のデータ圧縮技術を用いた方式や、各種の波形合成アルゴリズムに従うパラメータ演算による方式など、適宜のものを使用することができる。
【0143】
【発明の効果】
以上の通り、この発明によれば、1つの演奏フレーズを複数のアーティキュレーションエレメントの時系列的シーケンスで記述してなる奏法シーケンスデータを、複数の演奏フレーズについてその演奏順に順次記憶し、記憶した奏法シーケンスデータを順次読み出し、読み出された奏法シーケンスデータに応じて、該奏法シーケンスを構成している各アーティキュレーションエレメントに対応する波形データを順次生成するようにしたので、一連の音楽の自動演奏にあたって、複数のアーティキュレーションエレメントの時系列的シーケンスで記述してなる奏法シーケンスデータを用いることにより、“アーティキュレーション”を含む高品質な楽音にてその音楽を再生演奏することができるのものとなる。また、アーティキュレーションエレメントの時系列的シーケンスを任意に組み替えることにより、自動演奏内容の自由な編集が可能である。従って、従来にない、“アーティキュレーション”を含む高品質な音楽演奏の自動再生を、ユーザーによるインタラクティブな制御を可能にしつつ、実現することができる、という優れた効果を奏する。また、電子楽器やマルチメディア機器等においてユーザーの自由な音作りと編集操作を許容するインタラクティブな高品質の自動演奏技術を提供することができる、という優れた効果を奏する。
【図面の簡単な説明】
【図1】 この発明に係る楽音データ作成方法に従う楽音データベース作成手順の一例を示すフロー図。
【図2】 一連の楽曲フレーズの楽譜例と、それに対応するアーティキュレーション単位での演奏区間の分割例と、アーティキュレーションエレメントを構成する楽音要素の分析例とを模式的に示す図。
【図3】 1つのアーティキュレーションエレメントに対応する波形から分析された複数の楽音要素の具体例を示す図。
【図4】 データベースの構成例を示す図。
【図5】 図4のアーティキュレーションデータベースADBにおけるアーティキュレーションシーケンスAESEQとアーティキュレーションエレメントベクトルAEVQの具体例を示す図。
【図6】 属性情報を含むアーティキュレーションエレメントベクトルAEVQの具体例を示す図。
【図7】 この発明に係る楽音データ作成方法に従う楽音合成手順の一例を示すフロー図。
【図8】 この発明に係る楽音データ作成方法に従う楽音合成手法を採用した自動演奏シーケンスデータの構成例を示す図。
【図9】 この発明に従ういくつかの奏法シーケンスの具体例を示す図。
【図10】 1つの奏法シーケンス内における各アーティキュレーションエレメント相互のクロスフェード合成による接続処理の一例を示す図。
【図11】 奏法シーケンス(アーティキュレーションエレメントシーケンス)の編集例を概観する図。
【図12】 奏法シーケンス(アーティキュレーションエレメントシーケンス)の編集手樹の一例を示すフロー図。
【図13】 パーシャルベクトルの考え方を示す図。
【図14】 パーシャルベクトルを含むアーティキュレーションエレメントの楽音合成処理手順を部分的に示すフロー図。
【図15】 ビブラート合成処理の一例を示す図。
【図16】 ビブラート合成処理の別の例を示す図。
【図17】 波形テンプレートの接続処理例のいくつかのルールを示す図。
【図18】 波形テンプレート以外のテンプレートデータ(エンベロープ波形状のテンプレートデータ)の接続処理例のいくつかのルールを示す図。。
【図19】 図18(b)に示す接続ルールのいくつかの具体化手段を示す図。
【図20】 図18(c)に示す接続ルールのいくつかの具体化手段を示す図。
【図21】 各種テンプレートデータの接続処理とテンプレートデータに基づく楽音合成処理の概略を示すブロック図。
【図22】 この発明の実施例に係る楽音合成装置のハードウェア構成例を示すブロック図。
【図23】 図22における波形インタフェースの詳細例とRAM内の波形バッファの構成例を示すブロック図。
【図24】 MIDI演奏データに基づいて実行される楽音生成処理の概略を示すタイムチャート。
【図25】 奏法シーケンス(アーティキュレーションエレメントシーケンスAESEQ)のデータに基づいて実行される奏法演奏処理(アーティキュレーションエレメント楽音合成処理)の概略を示すタイムチャート。
【図26】 図22のCPUが実行する楽音合成処理のメインルーチンを示すフローチャート。
【図27】 図26における「自動演奏処理」の一例を示すフローチャート。
【図28】 図26における「音源処理」の一例を示すフローチャート。
【図29】 図28における「通常演奏」についての「1フレーム分の波形データ生成処理」の一例を示すフローチャート。
【図30】 図28における「奏法演奏」についての「1フレーム分の波形データ生成処理」の一例を示すフローチャート。
【図31】 時間軸伸縮処理(TSC制御)の概略を概念的に示す図。
【図32】 奏法シーケンスの階層化構造を説明する図。
【図33】 時間軸伸縮制御によって時間軸圧縮する場合の波形読出アドレスの時間的進行状態の一例を示す図。
【図34】 時間軸伸縮制御によって時間軸伸張する場合の波形読出アドレスの時間的進行状態の一例を示す図。
【符号の説明】
ADB アーティキュレーションデータベース
TDB テンプレートデータベース
10 CPU
11 ROM(リードオンリーメモリ)
12 RAM(ランダムアクセスメモリ)
13 ハードディスク装置
14,15 リムーバブルディスク装置
16 表示器
17 キーボード及びマウス等の入力操作装置17
18 波形インタフェース
19 タイマ
20 ネットワークインタフェース
21 MIDIインタフェース
22 データ及びアドレスバス

Claims (7)

  1. アタック部、ボディ部、リリース部などの音の部分についての複数のアーティキュレーションエレメントの時系列的シーケンスからなる奏法シーケンスデータを、演奏順に順序付けて複数記憶してなる記憶装置と、
    前記記憶装置から奏法シーケンスデータを演奏順に読み出す読出部と、
    読み出された奏法シーケンスデータに応じて、該奏法シーケンスを構成している各アーティキュレーションエレメントに対応する前記音の部分の波形データを順次生成する波形生成部とを具え、
    前記各奏法シーケンスデータは、各アーティキュレーションエレメントを指示するインデックスデータを含んでおり、
    前記記憶装置は、前記各インデックスデータに対応して当該アーティキュレーションエレメントに対応する部分的音波形を構成する1または複数の楽音要素の内容を指示するベクトルデータを記憶する部分と、楽音要素の内容を具体的に表現する複数のテンプレートデータを記憶する部分とを更に持っており、
    前記波形生成部では、前記読出部によって読み出された奏法シーケンスデータにおける各アーティキュレーションエレメントのインデックスデータを順次読み出し、読み出したインデックスデータに応じて前記楽音要素に対応する前記ベクトルデータを読み出し、読み出したベクトルデータに応じて前記テンプレートデータを読み出し、読み出したテンプレートデータに基づき当該アーティキュレーションエレメントに対応する部分的音波形を生成することを特徴とする自動演奏装置。
  2. 前記記憶装置において前記各奏法シーケンスデータはその演奏タイミングを示す時間データと共にそれぞれ記憶されている請求項1に記載の自動演奏装置。
  3. 前記記憶装置は、更に、所定のコードで表現されたノート演奏情報をその演奏順に順次記憶してなり、
    前記読出部は、時間経過に従って前記記憶装置から奏法シーケンスデータ及びノート演奏情報を読み出し、
    読み出されたノート演奏情報に応じて指定されたノートの楽音信号を発生するノート音発生部を更に具えたことを特徴とする請求項1又は2に記載の自動演奏装置。
  4. 前記奏法シーケンスを構成している複数のアーティキュレーションエレメントのうちの1つを選択し、これを別のアーティキュレーションエレメントに差し替える手段を更に具える請求項1に記載の自動演奏装置。
  5. アタック部、ボディ部、リリース部などの音の部分についての複数のアーティキュレーションエレメントの時系列的シーケンスからなる奏法シーケンスデータを、演奏順に順序付けて複数記憶してなる記憶装置を使用して自動演奏を行う方法であって、
    前記記憶装置から前記奏法シーケンスデータを演奏順に読み出すステップと、
    読み出された奏法シーケンスデータに応じて、該奏法シーケンスを構成している各アーティキュレーションエレメントに対応する前記音の部分の波形データを順次生成するステップとを具え、
    前記各奏法シーケンスデータは、各アーティキュレーションエレメントを指示するインデックスデータを含んでおり、
    前記記憶装置は、前記各インデックスデータに対応して当該アーティキュレーションエレメントに対応する部分的音波形を構成する1または複数の楽音要素の内容を指示するベクトルデータを記憶する部分と、楽音要素の内容を具体的に表現する複数のテンプレートデータを記憶する部分とを更に持っており、
    前記生成するステップでは、前記読み出すステップで読み出された奏法シーケンスデータにおける各アーティキュレーションエレメントのインデックスデータを順次読み出し、読み出したインデックスデータに応じて前記楽音要素に対応する前記ベクトルデータを読み出し、読み出したベクトルデータに応じて前記テンプレートデータを読み出し、読み出したテンプレートデータに基づき当該アーティキュレーションエレメントに対応する部分的音波形を生成することを特徴とする自動演奏方法。
  6. 前記奏法シーケンスを構成している複数のアーティキュレーションエレメントのうちの1つを選択し、これを別のアーティキュレーションエレメントに差し替えるステップを更に具える請求項5に記載の自動演奏方法。
  7. コンピュータ読み取り可能な記録媒体であって、該記録媒体は、アタック部、ボディ部、リリース部などの音の部分についての複数のアーティキュレーションエレメントの時系列的シーケンスからなる奏法シーケンスデータを、演奏順に順序付けて複数記憶してなる記憶装置を使用して自動演奏を行うためのプログラムを記憶してなり、該プログラムは、コンピュータに、
    前記記憶装置から前記奏法シーケンスデータを演奏順に読み出す手順と、
    読み出された奏法シーケンスデータに応じて、該奏法シーケンスを構成している各アーティキュレーションエレメントに対応する前記音の部分の波形データを順次生成する手順と
    を実行させる命令群からなり、
    前記各奏法シーケンスデータは、各アーティキュレーションエレメントを指示するインデックスデータを含んでおり、
    前記記憶装置は、前記各インデックスデータに対応して当該アーティキュレーションエレメントに対応する部分的音波形を構成する1または複数の楽音要素の内容を指示するベクトルデータを記憶する部分と、楽音要素の内容を具体的に表現する複数のテンプレートデータを記憶する部分とを更に持っており、
    前記生成する手順では、前記読み出すステップで読み出された奏法シーケンスデータにおける各アーティキュレーションエレメントのインデックスデータを順次読み出し、読み出したインデックスデータに応じて前記楽音要素に対応する前記ベクトルデータを読み出し、読み出したベクトルデータに応じて前記テンプレートデータを読み出し、読み出したテンプレートデータに基づき当該アーティキュレーションエレメントに対応する部分的音波形を生成することを特徴とする。
JP27583798A 1997-09-30 1998-09-29 自動演奏装置及び方法並びに記録媒体 Expired - Fee Related JP3724223B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27583798A JP3724223B2 (ja) 1997-09-30 1998-09-29 自動演奏装置及び方法並びに記録媒体

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP28442497 1997-09-30
JP24442198 1998-08-13
JP9-284424 1998-08-13
JP10-244421 1998-08-13
JP27583798A JP3724223B2 (ja) 1997-09-30 1998-09-29 自動演奏装置及び方法並びに記録媒体

Publications (2)

Publication Number Publication Date
JP2000122648A JP2000122648A (ja) 2000-04-28
JP3724223B2 true JP3724223B2 (ja) 2005-12-07

Family

ID=27333238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27583798A Expired - Fee Related JP3724223B2 (ja) 1997-09-30 1998-09-29 自動演奏装置及び方法並びに記録媒体

Country Status (1)

Country Link
JP (1) JP3724223B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020024277A (ko) * 2002-02-20 2002-03-29 김정민 분할단위별 이동이 자유로운 디지털 음악파일 제작 방법

Also Published As

Publication number Publication date
JP2000122648A (ja) 2000-04-28

Similar Documents

Publication Publication Date Title
US6150598A (en) Tone data making method and device and recording medium
JP3644263B2 (ja) 波形形成装置及び方法
JP3744216B2 (ja) 波形形成装置及び方法
US5990407A (en) Automatic improvisation system and method
US6403871B2 (en) Tone generation method based on combination of wave parts and tone-generating-data recording method and apparatus
JP3601371B2 (ja) 波形生成方法及び装置
JP3675184B2 (ja) 波形形成装置及び方法
JP3724222B2 (ja) 楽音データ作成方法及び楽音合成装置並びに記録媒体
JP3829780B2 (ja) 奏法決定装置及びプログラム
JP3520781B2 (ja) 波形生成装置及び方法
US6835886B2 (en) Tone synthesis apparatus and method for synthesizing an envelope on the basis of a segment template
JP3669177B2 (ja) ビブラート発生装置及び方法
JP3724223B2 (ja) 自動演奏装置及び方法並びに記録媒体
JP3654084B2 (ja) 波形生成方法及び装置
JP3873985B2 (ja) 楽音データの編集方法及び装置
JP3562341B2 (ja) 楽音データの編集方法及び装置
JP3904012B2 (ja) 波形生成装置及び方法
JP3613191B2 (ja) 波形生成方法及び装置
JP3726765B2 (ja) 波形形成装置及び方法
JP3760909B2 (ja) 楽音生成装置及び方法
JP3832421B2 (ja) 楽音生成装置及び方法
JP3933162B2 (ja) 波形生成方法及び装置
JP3832422B2 (ja) 楽音生成装置及び方法
JP4007374B2 (ja) 波形生成方法及び装置
JP2007219448A (ja) 楽音合成装置及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050322

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050523

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050711

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050912

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090930

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100930

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100930

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110930

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120930

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130930

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees