JP3669177B2 - Vibrato generating apparatus and method - Google Patents
Vibrato generating apparatus and method Download PDFInfo
- Publication number
- JP3669177B2 JP3669177B2 JP27830798A JP27830798A JP3669177B2 JP 3669177 B2 JP3669177 B2 JP 3669177B2 JP 27830798 A JP27830798 A JP 27830798A JP 27830798 A JP27830798 A JP 27830798A JP 3669177 B2 JP3669177 B2 JP 3669177B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- data
- vibrato
- template
- 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
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】
また、従来の典型的なビブラート付与技術は、波形メモリから楽音波形を読み出す速度をビブラート周波数に従って周期的に変調するようにしたものであり、単調なビブラート音しか発生することができなかった。他方、元々ビブラートが付与された原波形をメモリに記録し、これを再生読出することも考えられるが、それでは、再生時の制御性に乏しかった。また、メモリの記録容量も増してしまう。
【0009】
この発明は上述の点に鑑みてなされたもので、高品質なビブラート音を制御性豊かに発生することができ、かつ、データ記憶容量も節約することのできるビブラート発生装置及び方法を提供しようとするものである。また、電子楽器や電子的装置を用いて楽音(前述の通り音楽的な音に限らずその他の一般的な音をも含む)を発生する場合において、“アーティキュレーション”のリアルな再現を実現すると共にその制御を容易にし、電子楽器やマルチメディア機器等においてユーザーの自由な音作りと編集操作を許容するインタラクティブな高品質楽音作成技術を提供し、そのような技術に基づく波形生成の際に、高品質なビブラート音を効率的に発生することができるビブラート発生装置及び方法を提供しようとするものである。
【0010】
なお、本明細書において“アーティキュレーション”(articulation)の語は、通常知られている意味で用いるものとし、例えば、「音節」、「音と音のつながり」、「複数の音のかたまり(フレーズ)」、「音の部分的な特徴」、「発音の手法」、「奏法」、「演奏表現」等の概念を全て含む広い概念で用いるものとする。
【0011】
【課題を解決するための手段】
この発明に係るビブラート発生装置は、ビブラートが付与された原波形のビブラート1周期から分散的に取り出された複数の波形データを記憶した記憶手段と、前記波形データの1つを繰返し読み出しし、かつ読み出すべき波形データを順番に切り替えることで、所定の読み出しシーケンスを実行し、かつこの読み出しシーケンスを繰返すことで複数周期にわたるビブラートを実現する読出手段と、ビブラート1周期の間のピッチの時間的変化を示す制御データを発生する制御データ発生手段とを備え、前記読出手段は、この制御データに応じて前記波形データの読み出し速度を時間的に変化することを特徴とする。
【0012】
これにより、原波形のビブラート1周期から複数の波形データを分散的に取り出して記憶することで、原波形を全部記憶する場合に比べて、記憶手段に記憶する波形データの記憶容量を節約することができ、かつ、分散的な取り出しによって、原波形におけるビブラートの特徴をできる限り反映している高品質なビブラート用の波形データを得ることができる。そして、この波形データの1つを繰返し読み出しし、かつ読み出すべき波形データを順番に切り替えることで、所定の読み出しシーケンスを実行し、かつこの読み出しシーケンスを繰返すことで複数周期にわたるビブラートを実現することができる。分散的に取り出された各波形データは、原波形におけるビブラートの特徴を反映しているものであるので、これらの繰り返しと組合せによって得られる楽音波形は、原波形におけるビブラートに匹敵する高品質なビブラートを含むものとなる。ここで、記憶手段からの各波形データの読み出し方を種々可変制御することにより、ビブラート周期等種々のビブラート要素の制御を多様に行なうことができる。従って、この発明によれば、高品質なビブラート音を制御性豊かに発生することができ、かつ、データ記憶容量も節約することができる、という優れた効果を奏する。
【0013】
また、ビブラート1周期の間のピッチの時間的変化を示す制御データを発生し、この制御データに応じて前記波形データの読み出し速度を時間的に変化するようにしているので、ビブラート態様の制御も多様に行える。また、読み出しシーケンスに対応して振幅の時間的変化を示す制御データを発生する制御データ発生手段と、前記読出手段によって読み出された波形データの振幅をこの制御データに応じて時間的に制御する振幅制御手段とを更に備えてもよい。これによって、ビブラートの深さやそれに伴う振幅変動を制御することができる。また、ビブラート1周期の時間を制御する時間制御データを発生する制御データ発生手段を更に具備し、読出手段において1つの波形データを繰返し読み出しする時間をこの記時間制御データにより可変制御することで、読み出しシーケンスの時間を制御し、ビブラート周期を可変制御するようにしてもよい。また、先行する波形データと後続する波形データとをそれぞれ所定の間で繰返し読み出ししつつ両者をクロスフェード合成するクロスフェード合成手段を具備してもよい。
【0014】
この発明の別の観点に従うビブラート発生装置は、ビブラートの複数周期にわたる範囲に対応して、該範囲内の各ビブラート1周期につき複数分散的に取り出した波形データを記憶した記憶手段と、前記各波形データの各ビブラート1周期内における相対的時間位置を保ちつつ、各波形データの属すべきビブラート周期の前記範囲内における位置を入れ替えることにより、ビブラートの複数周期にわたる各波形データの読み出し順序を任意に可変設定する設定手段と、前記記憶手段から波形データを繰返し読み出しし、かつ読み出すべき波形データを前記設定された読み出し順序で順番に切り替えることで、複数周期にわたるビブラートを実現する読出手段とを備えるものである。このように、各波形データのビブラート1周期内における相対的時間位置を保ちつつ、各波形データの属すべきビブラート周期の前記範囲内における位置を入れ替えることにより、違和感を与えることなく、多様な組合せでビブラート音の合成を行なうことができる。
【0015】
この発明に係る楽音データ作成及び楽音合成の技術は、音のアーティキュレーションを分析し、アーティキュレーションエレメントを単位として楽音編集及び合成処理を行うことにより、音のアーティキュレーションをモデルして楽音合成を行うものである。従って、この技術をSAEM(Sound Articulation Element Modeling)技術と呼ぶことにする。
この発明は、方法発明として構成し、実施することができるのみならず、装置発明として構成し、実施することもできる。また、この発明は、コンピュータプログラムの形態で実施することができるし、そのようなコンピュータプログラムを記憶した記録媒体の形態で実施することもできる。更に、この発明は、新規なデータ構造からなる波形又は楽音データを記憶した記録媒体の形態で実施することもできる。
なお、この発明で提案するビブラート音の発生技術は、アーティキュレーションを含む高品質な波形に限らず、その他の一般的な波形からなる楽音波形に対しても適用することができる。
【0016】
【発明の実施の形態】
以下、添付図面を参照してこの発明の実施の形態を詳細に説明しよう。
〔楽音データベースの作成例〕
前述の通り、ピアノ、バイオリン、サックス等の任意の自然楽器についての熟練した演奏家が該楽器によって一連の楽曲フレーズを演奏する場合、その演奏音の内容は、例えば同じ楽器で演奏されているとはいえ、一様なものではなく、各音毎に、あるいは音と音のつながりにおいて、あるいは音の立上り部や持続部または立下り部等の部分において、曲想に応じてあるいは演奏家の感性等に応じて、微妙に異なる“アーティキュレーション”で演奏される。そのような“アーティキュレーション”の存在が、聴者に本当に良い音としての印象を与える。
楽器演奏の場合、一般に、“アーティキュレーション”は、演奏家による「奏法」若しくは「演奏表現」の反映として顕れる。従って、以下の説明では、「奏法」若しくは「演奏表現」と“アーティキュレーション”の語がどちらも実質的に同義のことを指して使用されることがあることを予めことわっておく。たとえば、「奏法」には、スタカート、テヌート、スラー、ビブラート、トレモロ、クレッシェンド、デクレッシェンドなど、その他様々なものがある。演奏家が楽器によって一連の楽曲フレーズを演奏する場合、楽譜の指示に従って、あるいは自らの感性に従って、各演奏局面で様々な奏法が使用され、それぞれの奏法に応じた“アーティキュレーション”を生み出す。
【0017】
この発明に従う楽音データベースの作成手順の一例が図1に示されている。
最初のステップS1は、1又は複数の楽音からなる一連の演奏音をサンプリングするステップである。ここでは、例えば、或る特定の自然楽器についての熟練した演奏家が、該楽器によって所定の一連の楽曲フレーズを演奏する。この一連の演奏音をマイクロフォンでピックアップし、所定のサンプリング周波数にしたがってサンプリングし、該演奏フレーズ全体についてのPCM符号化された波形データを得る。この波形データは、音楽的にも優れた、高品質なデータである。説明のために、このステップS1でのサンプリングのために演奏される一連の楽曲フレーズの楽譜例を、図2(a)に示す。図2(a)の楽譜の上側に付記された「奏法記号」は、この楽譜に示された楽曲フレーズがどのような奏法で演奏されるかを例示的に示すものである。このような「奏法記号」付きの楽譜は、このステップS1でのサンプリングの際に不可欠なものではない。通常の楽譜に従って演奏家が該楽曲フレーズを演奏し、その後での、サンプリングした波形データの分析によって、時間経過に従う各演奏局面での奏法を判断し、このような奏法記号付きの楽譜を作成するようにしてよい。追って説明するように、このような奏法記号付きの楽譜は、ステップS1でのサンプリングの際に役立つというよりは、むしろ、ここでサンプリングしたデータに基づいて作成されたデータベースから一般のユーザーが所望のデータを引き出しそれらを接続して所望の演奏音を作成する際に、該一般ユーザーにとって大いに手助けとなると思われるものである。しかし、図2(a)の楽譜で示すフレーズがどのように演奏されたかを例示的に説明するために、同図において例示された奏法記号の意味についてここで説明しておく。
【0018】
最初の小節における3つの音符に対応して描かれた黒丸の奏法記号は「スタカート」奏法を示し、黒丸の大きさは音量の程度を示している。
その次の音符に対応して「Atack-Mid, No-Vib」の文字と共に描かれた奏法記号は、「中程度のアタックで、ビブラートはつけない」奏法を記述している。
2小節目の後半のスラーで結ばれた音符に対応して「Atk-Fast, Vib-Soon-Fast, Release-Smoothly」の文字で描かれた奏法記号は、「アタックは素速く立上り、ビブラートはすぐに速くし、リリースはスムーズに」という奏法を記述している。
3小節目における楕円の黒丸からなる奏法記号は「テヌート」奏法を示す。また、3小節目には音量を徐々に小さくすることを示す奏法記号や、音の末尾にビブラートをつけることを指示する奏法記号も記載されている。
このように、3小節程度の長さの楽曲フレーズにあっても、多様な奏法若しくは演奏表現すなわちアーティキュレーションが用いられることが理解できる。
なお、これらの奏法記号の表わし方は、これに限るものではなく、要するに奏法を何らかの形で表現しうるものであればよい。或る程度の奏法を表現する記号は従来の楽譜表記においても用いられているが、この発明の実施にあたっては、従来にないより精密な奏法記号を採用することが望ましい。
【0019】
図1において、次のステップS2は、サンプリングした一連の演奏音をその演奏表現上の特徴(すなわちアーティキュレーション)に応じてそれぞれ可変の長さからなる複数の時間区間に分割するステップである。これは、例えばフーリエ解析で知られているような規則的な一定の時間フレーム毎に波形データを分割し分析するようなやり方とは全く異なるものである。すなわち、サンプリングした一連の演奏音の中に存在するアーティキュレーションには多様性があるので、個々のアーティキュレーションに対応する音の時間的範囲は、一様な時間長ではなく、任意の可変の長さからなっている。従って、サンプリングした一連の演奏音をその演奏表現上の特徴(すなわちアーティキュレーション)に応じて複数の時間区間に分割することは、その結果分割された各時間区間の長さは可変的なものとなる。
【0020】
図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は、音の部分であって演奏表現の異なる個所、典型的にはアタック部、ボディ部(音の定常的な特徴を示す比較的安定した部分)、リリース部、音と音のつながりの部分など、に対応している。
【0021】
例えば、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を他の音と音とをつなげる部分にも使用することにより、これらの音をスラーでつなげるようにすることもできる。
【0022】
図2(d)に示したようなアーティキュレーション最小単位AS#1〜AS#8が、ステップS2の処理で分割される複数の時間区間に相当する。以下では、このようなアーティキュレーション最小単位をアーティキュレーションエレメントとも呼ぶことにする。なお、アーティキュレーション最小単位の分割の仕方は上記例に限らないので、アーティキュレーション最小単位すなわちアーティキュレーションエレメントが必ずしも音の部分のみに対応しているとは限らない。
【0023】
図1において、次のステップS3は、分割した各時間区間(アーティキュレーション最小単位AS#1〜AS#8すなわちアーティキュレーションエレメント)毎の波形データを所定の複数の楽音要素について分析し、分析した各楽音要素の特性を示すデータを生成するステップである。分析する楽音要素としては、例えば、波形(音色)、振幅(音量)、ピッチ(音高)、時間などの要素がある。これらの楽音要素は、当該時間区間における波形データの構成要素(エレメント)であると共に、当該時間区間におけるアーティキュレーションの構成要素(エレメント)でもある。
次のステップS4では、生成した各要素の特性を示すデータをデータベースに蓄積する。データベースでは、蓄積したこれらのデータをテンプレートデータとして、楽音合成に際して、利用可能にする。
これらの楽音要素の分析の仕方の一例を示すと次のようであり、各楽音要素の特性を示すデータ(テンプレートデータ)の一例を示すと図3のようである。また、図2(e)にも、1つのアーティキュレーション最小単位から分析される各楽音要素の種類が例示されている。
【0024】
▲1▼ 波形(音色)要素については、当該時間区間(アーティキュレーションエレメント)におけるオリジナルのPCM波形データをそのまま取り出す。これを波形テンプレート(Timbre テンプレート)としてデータベースに記憶する。この波形(音色)要素を示す記号として、“Timbre”を用いることにする。
▲2▼ 振幅(音量)要素については、当該時間区間(アーティキュレーションエレメント)におけるオリジナルのPCM波形データの音量エンベロープ(時間経過に従う音量振幅変化)を抽出し、振幅エンベロープデータを得る。これを振幅テンプレート(Amp テンプレート)としてデータベースに記憶する。この振幅(音量)要素を示す記号として、“Amp”(Amplitudeの略)を用いることにする。
▲3▼ ピッチ(音高)要素については、当該時間区間(アーティキュレーションエレメント)におけるオリジナルのPCM波形データのピッチエンベロープ(時間経過に従うピッチ変化)を抽出し、ピッチエンベロープデータを得る。これをピッチテンプレート(Pitch テンプレート)としてデータベースに記憶する。このピッチ要素を示す記号として、“Pitch”を用いることにする。
【0025】
▲4▼ 時間要素については、当該時間区間(アーティキュレーションエレメント)におけるオリジナルのPCM波形データの時間長をそのまま用いる。従って、当該区間のオリジナルの時間長(可変値である)を比「1」で示すこととすれば、データベース作成時においてこの時間長をあえて分析・測定する必要はない。その場合、時間要素についてのデータすなわち時間テンプレート(TSCテンプレート)はどの区間(アーティキュレーションエレメント)でも同じ値“1”であるから、これをテンプレートデータベースにあえて記憶しておかなくてもよい。勿論、これに限らず、この実際の時間長を分析・測定し、これを時間テンプレートデータとしてデータベースに記憶するようにする変形例も実施可能である。
【0026】
ところで、波形データのオリジナルの時間長を可変制御する技術として、該波形データのピッチに影響を与えることなく該波形データを時間軸方向に伸張または圧縮する制御が、未公開ではあるが、「Time Stretch & Compress」制御(略して「TSC制御」)として本発明者によって既に提案されている。本実施例においてもそのような「TSC制御」を利用するものとしており、時間要素の記号として使用するTSCはこの略号である。楽音合成時において、このTSC値を“1”に固定せずに、その他の適宜の値に設定することにより、再生波形信号の時間長を可変制御することができる。その場合、そのTSC値は、時間的に変化する値(例えばエンベロープ等適宜の時間関数)として与えるようにしてもよい。なお、このTSC制御は、オリジナル波形におけるビブラートやスラー等の特殊な奏法がかけられた部分の時間長を自在に可変制御する場合などに役立てることができる。
【0027】
以上説明したような処理を、様々な自然楽器について、様々な奏法で(様々な楽曲フレーズについて)、それぞれ行い、各自然楽器毎に多数のアーティキュレーションエレメントについての各楽音要素毎のテンプレートを作成し、これらをデータベースに蓄積する。また、自然楽器に限らず、人の声や雷の音など、自然界に存在する様々な音について、上記のようなサンプリングとアーティキュレーション分析の処理を行い、その結果得られる各要素毎の多様なテンプレートデータをデータベースに蓄積するようにしてよい。勿論、サンプリングのために生演奏するフレーズは、上記例のような数小節からなるフレーズに限らず、必要に応じてもっと短いフレーズ(例えば図2(b)に示したような1つのフレージング小単位)のみであってもよいし、あるいは反対に1つの曲全部であってもよい。
【0028】
データベースDBの構成は、例えば図4に示すように、テンプレートデータベースTDBとアーティキュレーションデータベースADBとに大別される。なお、データベースDBのハードウェアとしては周知のようにハードディスク装置や光磁気ディスク装置などの読み書き可能な記憶媒体(好ましくは大容量媒体)が用いられる。
テンプレートデータベースTDBは、上記のようにして作成された多数のテンプレートデータを蓄積するものである。なお、テンプレートデータベースTDBに記憶するテンプレートデータは、必ずしもその全てが上記のような演奏音又は自然音のサンプリングと分析に基づくものである必要はなく、要するに、テンプレート(出来合いのデータ)として予め用意されたものであればよく、データ編集作業によって人為的に任意に作成したものであってもよい。例えば、時間要素についてのTSCテンプレートは、サンプリングした演奏音に基づくものである限りは上述のように通常は“1”であるが、自由な変化パターン(エンベロープ)で作成することができるものであるから、様々なTSC値又はその時間的変化のエンベロープ波形をTSCテンプレートデータとして作成し、データベースに記憶させておくようにしてよい。また、テンプレートデータベースTDBに記憶するテンプレートの種類も、上記のようなオリジナル波形から分析した特定の要素に対応するものに限らず、楽音合成の際の便宜を図るためにその他の種類のものを適宜増加してよい。例えば、楽音合成の際にフィルタを使用して音色制御を行う場合、フィルタ係数セット(時変動フィルタ係数セットを含む)をテンプレートデータとして多数用意し、これをテンプレートデータベースTDBに記憶しておくようにしてよい。勿論、このようなフィルタ係数セットは、オリジナル波形の分析に基づき作成するようにしてもよいし、その他適宜の手段で作成するようにしてもよい。
【0029】
テンプレートデータベースTDBに記憶された各テンプレートデータのデータ構成は、図3に例示したような各テンプレートデータの内容そのものを表わすデータからなる。例えば、波形(Timbre)テンプレートは、PCM波形データそのものである。また、振幅(Amp)エンベロープやピッチ(Pitch)エンベロープ、TSCエンベロープなどのエンベロープ波形も、そのエンベロープ形状をPCM符号化したものであってよい。しかし、テンプレートデータベースTDBにおけるエンベロープ波形状のテンプレートのデータ記憶構成を圧縮するために、エンベロープ波形を折線近似するためのパラメータデータ(公知のように各折線の傾きレートと目標レベルあるいは時間等を示すデータのセットからなる)の形式でこれらのテンプレートデータを記憶してもよい。
【0030】
また、波形(Timbre)テンプレートも、PCM波形データ以外の適宜のデータ圧縮された形式で記憶するようにしてもよい。また、その他の適宜のデータ形式で波形すなわち音色(Timbre)テンプレートデータを記憶するようにしてもよい。すなわち、波形(Timbre)テンプレートデータは、例えばDPCM又はADPCM等、PCM形式以外のデータ圧縮化したコード化形式からなる波形データであってもよいし、あるいは、波形サンプル値を直接示していない波形形成用データすなわち波形合成用のパラメータ、からなるものであってよい。その種のパラメータによる波形合成方式としては、フーリエ合成あるいはFM(周波数変調)合成あるいはAM(振幅変調)合成あるいは物理モデル音源あるいはSMS波形合成(確定成分と不確定成分とを用いて波形合成する技術)など、種々知られているので、これらのいずれかの波形合成方式を採用し、そのための波形合成用パラメータを波形(Timbre)テンプレートデータとしてデータベースに記憶するようにしてよい。その場合、波形(Timbre)テンプレートデータ、つまり波形合成用パラメータ、に基づく波形形成処理は、それに対応する波形合成用の演算装置又はプログラム等によって行われるのは勿論である。その場合、所望形状の波形を形成するための波形合成用パラメータセットを、1つのアーティキュレーションエレメント、つまり時間区間、に対応して複数セット記憶しておき、波形合成に使用するパラメータセットを時間経過に従って切り替えることにより、1アーティキュレーションエレメント内での波形形状の時変動を実現するようにしてもよい。
【0031】
また、波形(Timbre)テンプレートを、PCM波形データで記憶する場合であっても、公知のループ読出し技術を採用できる場合(例えばボディ部のように音色波形が安定していて余り時間変化しないような部分についての波形データ)は、当該区間の波形を全部記憶せずにその一部の波形データのみを記憶しておくようにしてよい。また、サンプリングと分析の結果得られた異なる時間区間すなわちアーティキュレーションエレメントについてのテンプレートデータの内容が、同一か似通っている場合は、それぞれのテンプレートデータをデータベースTDBに記憶することなく、1つだけを記憶しておき、楽音合成時にこれを共用することにより、データベースTDBの記憶量を節約することができる。また、テンプレートデータベースTDBの構成は、基本のデータベースの供給者(例えば電子楽器メーカー)が予め作成したプリセット領域と、ユーザーが自由に追加作成できるユーザー領域等を含んでいてもよい。
【0032】
アーティキュレーションデータベース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)のいくつかに対応していてもよい。
【0033】
アーティキュレーション・エレメント・ベクトルAEVQは、その楽器音(Instrument 1)についてテンプレートデータベースTDBで用意(蓄積)されている全てのアーティキュレーションエレメントについての各楽音要素毎のテンプレートデータのインデックスを、個々のテンプレートを指示するベクトルデータの形式で(例えばテンプレートデータベースTDBから所要のテンプレートを引き出すためのアドレスデータの形式で)、記憶しているものである。例えば、図2(d)(e)の例に示されるように、或るアーティキュレーションエレメントAS#1に対応して、そのアーティキュレーションエレメントに相当する部分的楽音を構成する各要素(波形、振幅、ピッチ、時間)についての4つのテンプレートTimbre, Amp, Pitch, TSCをそれぞれ具体的に指示するベクトルデータ(これをエレメントベクトルという)を記憶している。
【0034】
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つのアーティキュレーションエレメントのシーケンスからなる、ということを示している。各アーティキュレーションエレメントのインデックス記号の意味は次の通りである。
【0035】
ATT−Norは「ノーマルアタック」(アタック部が標準的に立ち上がる奏法)を示す。
BOD−Vib−norは「ボディ・ノーマルビブラート」(ボディ部に標準的なビブラートが付けられる奏法)を示す。
BOD−Vib−dep1は「ボディ・ビブラートディプス1」(ボディ部に標準よりも1段階深いビブラートが付けられる奏法)を示す。
BOD−Vib−dep2は「ボディ・ビブラートディプス2」(ボディ部に標準よりも2段階深いビブラートが付けられる奏法)を示す。
REL−Norは「ノーマルリリース」(リリース部が標準的に立ち下がる奏法)を示す。
【0036】
従って、シーケンスAESEQ#1は、ノーマルアタックで始まり、ボディ部では最初はノーマルビブラートがつけられ、次にそのビブラートが少し深くなり、次いでさらにビブラートが深くなり、最後にリリース部では標準的な音の立ち下がりをみせる、というアーティキュレーションからなっている。
例示的に示された他のシーケンスAESEQ#2〜AESEQ#6についても、同様に、図5(a)におけるアーティキュレーションエレメントの記号表現から、そのアーティキュレーションが理解できるであろう。
参考のために図5(a)に示された他のいくつかのアーティキュレーションエレメントの記号の意味について説明すると次の通りである。
【0037】
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は「リリース・ベンドダウンノーマル」(リリース部のピッチを標準的な深さと速さでベンドダウンする奏法)を示す。
【0038】
従って、シーケンスAESEQ#2は、ノーマルアタックで始まり、ボディ部では最初はノーマルビブラートがつけられ、次にそのビブラートスピードが少し速くなり、次いでさらにビブラートスピードが速くなり、最後にリリース部では標準的な音の立ち下がりをみせる、という変化を示すアーティキュレーション(奏法)に対応している。
また、シーケンスAESEQ#3は、ビブラートの深さを徐々に深くすると共に、スピードも徐々に速くする、という変化を示すアーティキュレーション(奏法)に対応している。
また、シーケンスAESEQ#4は、ビブラート時の波形の音質(音色)を変化させるアーティキュレーション(奏法)に対応している。
シーケンスAESEQ#5は、クレッシェンドをつけるアーティキュレーション(奏法)に対応している。
シーケンスAESEQ#6は、アタック部のピッチがベッドアップする(ピッチが徐々に上がる)アーティキュレーション(奏法)に対応している。
シーケンスAESEQ#7は、リリース部のピッチがベッドダウンする(ピッチが徐々に下がる)アーティキュレーション(奏法)に対応している。
アーティキュレーションエレメントシーケンス(奏法シーケンス)には、上記に限らず、更に多数種類有りうるが、特に詳しく図示しない。
【0039】
図5の(b)は、いくつかのアーティキュレーションエレメントに関するアーティキュレーションエレメントベクトルAEVQの構成例を示している。この図の読み方について説明すると、括弧内において、各要素に対応するテンプレートを指示するベクトルデータが記述されている。各ベクトルデータにおいて先頭の記号はそのテンプレートの種類を示している。すなわち、Timbは波形(Timbre)テンプレートであることを示し、Ampは振幅(Amp)テンプレートであることを示し、Pitはピッチ(Pitch)テンプレートであることを示し、TSCは時間(TSC)テンプレートであることを示す。
【0040】
例えば、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つのテンプレートによって波形合成されるものである、ということを示している。
【0041】
別の例を示すと、「ボディ・ビブラートディプス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つのテンプレートによって波形合成される。
【0042】
なお、アーティキュレーションの編集を容易にするために、各アーティキュレーションエレメントシーケンスの特徴を概略的に説明する属性情報ATRを、各アーティキュレーションエレメントシーケンスAESEQに付属して記憶しておくようにするとよい。同様に、各アーティキュレーションエレメントの特徴を概略的に説明する属性情報ATRを、各アーティキュレーションエレメントベクトルAEVQに付属して記憶しておくようにするとよい。
要するに、このような属性情報ATRは、各アーティキュレーションエレメント(図2(d)に示したようなアーティキュレーション最小単位)の特徴を説明するものである。アタック部に関連するアーティキュレーションエレメントを例にして、そのアーティキュレーションエレメントの記号(インデックス)と、それぞれの属性情報ATRの内容、及び各楽音要素のテンプレートを指示する各ベクトルデータの一例を図6に示す。
【0043】
図6の例では、属性情報ATRも階層化されて管理されている。すなわち、アタック部に関連するアーティキュレーションエレメントにはすべて共通の「アタック」という属性情報が付与され、そのうちの標準のエレメントに対しては「ノーマル」という属性情報が更に付与され、また、そのうちのベンドアップ奏法が適用されるエレメントに対しては「ベンドアップ」という属性情報が付与され、ベンドダウン奏法が適用されるエレメントに対しては「ベンドダウン」という属性情報が付与される。更に、ベンドアップ奏法が適用されるエレメントのうち、標準的なものに対しては「ノーマル」という属性情報が付与され、標準よりベンドの深さが浅いものに対しては「ディプス・浅い」という属性情報が付与され、標準よりベンドの深さが深いものに対しては「ディプス・深い」という属性情報が付与され、標準よりベンドのスピードが遅いものに対しては「スピード・遅い」という属性情報が付与され、標準よりベンドのスピードが速いものに対しては「スピード・速い」という属性情報が付与される。図示を省略したが、ベンドダウン奏法が適用されるエレメントに対しても、同様に、更に細分化された属性情報が付与される。
【0044】
図6においては、また、異なるアーティキュレーションエレメント間においてテンプレートデータが共用されるものがあることが示されている。図6において、奏法の各インデックス(アーティキュレーションエレメントインデックス)の欄に記載された4種のテンプレートのベクトルデータ(換言すればテンプレートインデックス)が、該アーティキュレーションエレメントの部分的音を形成するためのテンプレートを指示するベクトルデータを示しており、この読み方は図5(b)と同様である。ここで、ベンドアップの属性を持つエレメントにおいて、=記号を記したものは、そのノーマル時のテンプレートと同じものを使用することを意味している。例えば、ベンドアップ奏法用の波形(Timbre)テンプレートは、すべてベンドアップノーマル用の波形テンプレートTimb−A−bupと同じものを使用する。また、ベンドアップ奏法用の振幅(Amp)テンプレートは、すべてベンドアップノーマル用の振幅テンプレートAmp−A−bupと同じものを使用する。これは、ベンドアップ奏法が微妙に変化してもその波形や振幅エンベロープは変えることなく共通のものを使用しても音質上差し支えないからである。これに対して、ピッチ(Pitch)テンプレートは、ベンドアップ奏法におけるディプスの程度に合わせて異なるものを使用しなければならない。例えば、「ディプス・浅い」の属性を持つアーティキュレーションエレメントATT−Bup−dp1においては、それに相応するピッチ(Pitch)テンプレート(浅いベンドアップ特性に対応するピッチエンベロープのテンプレート)を指示するために、浅いベンドアップ特性に対応するピッチエンベロープのテンプレートを指示するベクトルデータPit−A−dp1が使用される。
【0045】
このようにテンプレートデータの共用化を図ることによりテンプレートデータベースTDBの記憶量を節約することができる。また、データベース作成時において、すべての奏法について生演奏を録音する必要がない。
なお、図6を参照すると、ベンドアップ奏法のスピードは、時間(TSC)テンプレートを異ならせることによって調整されることが理解できる。ピッチベンドのスピードは、所定の初期ピッチから目標ピッチまで到達するのに要する時間に対応しているから、オリジナルの波形データが所定のピッチベンド特性(或る時間内に所定の初期ピッチから目標ピッチまでベンドするという特性)を持っている場合、そのオリジナルの波形データの時間長をTSC制御によって可変制御すれば、初期ピッチから目標ピッチまで到達するのに要する時間つまりベンドのスピードを調整することができる。このような時間(TSC)テンプレートによる波形時間長可変制御は、楽音立ち上がりのスピードや、スラーのスピード、ビブラートのスピードなど、各種奏法のスピードの調整に適している。例えば、スラーにおけるピッチの変化は、ピッチ(Pitch)テンプレートによっても実現することができるが、時間(TSC)テンプレートを用いてTSC制御を行った方が自然なスラー変化を実現することができる。
【0046】
アーティキュレーションデータベースADBにおけるアーティキュレーションエレメントベクトルAEVQは、アーティキュレーションエレメントインデックスによってアドレッシングされることができるのは勿論であり、また、属性情報ATRによってアドレッシングされることができるものとする。これによって、所望の属性情報ATRをキーワードとしてアーティキュレーションデータベースADBに検索をかけることにより、該キーワードに該当する属性を持つアーティキュレーションエレメントとしてどのようなものがあるかを検索することができ、ユーザーによるデータ編集作業に便利である。このような属性情報ATRは、アーティキュレーションエレメントシーケンスAESEQにも付加しておくとよい。これによって、所望の属性情報ATRをキーワードとしてアーティキュレーションデータベースADBに検索をかけることにより、該キーワードに該当する属性を持つアーティキュレーションエレメントを含んでいるアーティキュレーションエレメントシーケンスAESEQを検索することができる。
なお、アーティキュレーションデータベースADBにおけるアーティキュレーションエレメントベクトルAEVQをアドレッシングするためのアーティキュレーションエレメントインデックスは、アーティキュレーションエレメントシーケンスAESEQの読出しに従って与えられるようになっているのは勿論であるが、編集作業のためにあるいはリアルタイムの自由な音作りのために、所望のアーティキュレーションエレメントインデックスを単独でアドレス入力してもよいようにするのがよい。
【0047】
アーティキュレーションデータベースADBにおいては、ユーザーが所望のアーティキュレーションエレメントシーケンスを作成しこれを記憶保存しておくことができるように、ユーザーアーティキュレーションエレメントシーケンスURSEQを記憶するエリアも有している。このようなユーザーエリアにおいては、ユーザーが作成したアーティキュレーションエレメントベクトルデータをも記憶しておくようにしてよい。
アーティキュレーションデータベースADBにおいては、アーティキュレーションエレメントベクトルAEVQの下位のベクトルデータとしてパーシャルベクトルPVQを記憶している。アーティキュレーションエレメントベクトルAEVQで指定されたテンプレートデータが、テンプレートデータベースTDBにおいて当該アーティキュレーションエレメントの全時間区間のデータとしてではなく、一部のデータとして記憶されている場合、この一部のデータからなるテンプレートデータをループ読出し(繰り返し読出し)して当該アーティキュレーションエレメントの全時間区間のデータを再生するようになっている。そのようなループ読出しに必要なデータがパーシャルベクトルPVQとして記憶されている。その場合、例えば、アーティキュレーションエレメントベクトルAEVQには、上記各テンプレートデータのほかにパーシャルベクトルPVQを指示するデータを記憶しており、このパーシャルベクトル指示データによってパーシャルベクトルPVQのデータを読み出し、このパーシャルベクトルPVQのデータによってループ読出しを制御する。従って、パーシャルベクトルPVQは、ループ読出し制御のために必要なループ開始アドレスやループ終了アドレス等を指示するデータを含んでいる。
【0048】
更に、アーティキュレーションデータベースADBにおいては、楽音合成時において時間的に隣接するアーティキュレーションエレメント間での波形データの接続の際のルールを記述したルールデータRULEを記憶している。例えば、時間的に隣接するアーティキュレーションエレメント間で波形のクロスフェード補間を行って滑らかに接続するとか、クロスフェード補間を行わずに直接的に接続するとか、あるいはクロスフェード波形補間をおこう場合にどのようなクロスフェード法を使用するか、等のルールを、各シーケンスに対応して、あるいはシーケンス内の各アーティキュレーションエレメントに対応して、記憶している。この接続ルールも、ユーザーによるデータ編集の対象とすることができる。
アーティキュレーションデータベースADBにおいては、以上例示的に説明したようなデータ構成からなるアーティキュレーションデータベースを各楽器音(自然楽器音色)毎に設け、また、各種の人声音(若い女性の声、若い男性の声、バリトン、ソプラノ等)毎に設け、また、各種の自然音(雷の音、波の音等々)毎に、等々、各種設ける。
【0049】
〔楽音合成の概略〕
上記のようにして作成されたデータベースDBを利用して楽音を合成する手順の概略を図7に示す。
まず、発生しようとする楽音演奏(複数音からなる演奏フレーズ又は1音でもよい)に対応する所要の奏法シーケンスを指示する(ステップS11)。この奏法シーケンスの指示は、アーティキュレーションデータベースADBに記憶されている所望の楽器音(又は人声音又は自然音等)のアーティキュレーションエレメントシーケンスAESEQ又はURSEQの1つを選択的に指示することからなっていてよい。
【0050】
このような奏法シーケンス(すなわちアーティキュレーションエレメントシーケンス)の指示は、ユーザーによるリアルタイム演奏操作に基づいて与えることができるようになっていてもよいし、あるいは自動演奏データに基づいて与えることができるようになっていてもよい。前者の場合は、例えば、鍵盤やその他の演奏操作子に対して各種の奏法シーケンスを予め割り当てておき、該操作子の操作に応じてそこに割り当てられている奏法シーケンス指示データを発生するようにすることができる。後者の場合、1つの手法として、図8の(a)に略示するように、所望の楽曲に対応するMIDI形式等の自動演奏シーケンスデータの中にイベントデータとして奏法シーケンス指示データをそれぞれ組み込んで記憶しておき、自動演奏再生時に所定の各イベント再生時点で各奏法シーケンス指示データが読み出されるようにすることができる。なお、図8で、DURは次のイベントまでの時間間隔を示すデュレーションデータ、EVENTはイベントデータ、MIDIは当該イベントデータに付属する演奏データがMIDI形式のデータであること、AESEQは当該イベントデータに付属する演奏データが奏法シーケンス指示データであること、を示す。この場合は、MIDI形式等の自動演奏データに基づく自動演奏と本発明に従う奏法シーケンスに基づく自動演奏とのアンサンブルを行うことができる。その場合、例えば、メインのソロ若しくはメロディ演奏楽器パートを本発明に従う奏法シーケンスすなわちアーティキュレーションエレメント合成で演奏し、他の楽器パートをMIDIデータに基づく自動演奏で行う、といった形態をとることができる。
【0051】
また、後者の別の手法として、図8の(b)に略示するように、所望の楽曲に対応して複数の奏法シーケンス指示データAESEQのみをイベントデータ形式で記憶しておき、これを所定の各イベント再生時点で読み出すようにしてもよい。これによって、従来にはなかった、楽曲のアーティキュレーションシーケンス自動演奏を行うことができる。
更に、後者の別の手法として、所望の楽曲に対応するMIDI形式等の自動演奏シーケンスデータのみを記憶しておき、この自動演奏シーケンスデータを演奏解釈プログラムによって分析することにより、各フレーズ又は音符毎の奏法すなわちアーティキュレーションを自動的に解析し、この解析結果として奏法シーケンス指示データを発生するようにしてもよい。
また、奏法シーケンスの別の指示方法としては、ユーザーが所望の1又は複数の属性情報を入力し、これをキーワードとしてアーティキュレーションデータベースADBに検索を掛けることにより、1又は複数のアーティキュレーションエレメントシーケンスAESEQを自動的にリストアップし、その中から所望のシーケンスを選択指定するようにしてもよい。
【0052】
図7において、選択されたアーティキュレーションエレメントシーケンスAESEQ又はURSEQにおいては、所定の演奏順序に従ってアーティキュレーションエレメント(AE)インデックスを読み出す(ステップS12)。
そして、読み出されたアーティキュレーションエレメント(AE)インデックスに対応するアーティキュレーションエレメントベクトル(AEVQ)を読み出す(ステップS13)。
そして、読み出されたアーティキュレーションエレメントベクトル(AEVQ)によって指示された各テンプレートデータをテンプレートデータベースTDBから読み出す(ステップS14)。
【0053】
そして、読み出された各テンプレートデータに従って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が適用される場合は、必要なループ読み出し制御もなされる。
【0054】
次に、以上のように波形合成された各アーティキュレーションエレメントの波形データを順次接続する処理が行われ、その結果、複数のアーティキュレーションエレメントの時系列的組み合わせからなる一連の演奏音が発生される(ステップS16)。ここでの接続処理は、アーティキュレーションデータベースADBに記憶されているルールデータRULEに従って制御される。例えば、ルールデータRULEが直接接続を指示している場合は、ステップS15で合成された各アーティキュレーションエレメントの波形データをただその発生順序に従って順次切り換えて発音するだけでよい。また、ルールデータRULEが所定のクロスフェード補間を指示している場合は、指示された補間形式に従って、先行するアーティキュレーションエレメントの終わりの部分の波形データと後続するアーティキュレーションエレメントの始まりの部分の波形データとをクロスフェード補間合成し、波形が滑らかにつながるようにする。例えば、サンプリングしたオリジナル波形そのままに接続される場合は、元々各アーティキュレーションエレメント同士は滑らかにつながることが保証されているので、ルールデータRULEは直接接続を指示していてよい。それ以外の場合は、アーティキュレーションエレメント同士が滑らかにつながることは保証されていないので、何らかの補間合成を行うのがよい。後述するように、複数種のクロスフェード補間形式のいずれかをルールデータRULEによって任意に選択することができるようになっている。
【0055】
ステップS11〜S16に略示したような一連の演奏音合成処理は、1つの楽器音(又は人声音又は自然音)について1つの楽音合成チャンネルで行われる。複数の楽器音(又は人声音又は自然音)についての演奏音合成処理を同時並行的に行う場合は、ステップS11〜S16に略示したような一連の演奏音合成処理を複数チャンネルで時分割的に又は並列的に行うようにすればよい。なお、後述するように、クロスフェード合成処理を用いて楽音波形を形成する場合は、1つの楽音合成チャンネルにつき、2つの波形発生チャンネル(フェードアウトする波形を発生するチャンネルと、フェードインする波形を発生するチャンネル)を使用する。
【0056】
図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)の各テンプレートデータに基づいて合成された波形データからなっている。
【0057】
図10は、1つの楽音合成チャンネルにおいて、複数のアーティキュレーションエレメントに対応する部分音波形を順次発生しクロスフェード接続する処理の具体例を示すタイムチャートである。1つの楽音合成チャンネルにつき、2つのエレメント波形をクロスフェード合成するために、具体的には2つの波形発生チャンネルを使用する。図10(a)は第1の波形発生チャンネルでの波形発生例を示し、(b)は第2の波形発生チャンネルでの波形発生例を示す。(a)及び(b)において、夫々の上段に示された「合成された波形データ」とは、当該アーティキュレーションエレメントに対応する部分音波形として上述のように波形(Timbre),振幅(Amp),ピッチ(Pitch),時間(TSC)等の各テンプレートデータに基づいて合成された波形データ(例えば図7のステップS15で合成される波形データ)を示しており、それぞれの下段に示された「クロスフェード制御波形」とは、各エレメントに対応する部分音波形同士をクロスフェード接続するために使用される制御波形を示している。この「クロスフェード制御波形」は、例えば図7のフローでは、ステップS16の処理の過程で形成される。それぞれのチャンネルの下段のクロスフェード制御波形によって上段のエレメント波形データの振幅を制御し、各チャンネル(第1及び第2の波形発生チャンネル)のクロスフェード振幅制御済みの波形データを加算することにより、クロスフェード合成が完了する。
【0058】
1つの奏法シーケンスを開始するとき、シーケンススタートトリガSSTが与えられ、これに応じて該シーケンスの最初のアーティキュレーションエレメント(仮にA#1とする)に対応する部分音波形の合成が開始される。すなわち、当該アーティキュレーションエレメントについての波形(Timbre),振幅(Amp),ピッチ(Pitch),時間(TSC)等の各テンプレートデータに基づいて波形データを合成する。よって、図において、「合成された波形データ」は単純にブロックで示されているが、実際は、波形(Timbre)テンプレートデータに対応する波形と、振幅(Amp)テンプレートデータに対応する振幅エンベロープと、ピッチ(Pitch)テンプレートデータに対応するピッチとその時間的変化と、時間(TSC)テンプレートデータに対応する時間長とを有している。
クロスフェード制御波形の立ち上がりは、シーケンスの最初のアーティキュレーションエレメント波形については、図示のようにフルレベルですぐに立ち上がるようにしてよい。しかし、もし、その前のシーケンスの演奏音の末尾の波形とクロスフェード合成したいならば、シーケンスの最初のクロスフェード制御波形の立ち上がりに適当な傾きのフェードイン特性をもたせればよい。このフェードインの傾きはフェードインレートFIR#1によって設定される。
【0059】
シーケンスの最初のアーティキュレーションエレメント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に含まれていると考えてよい。なお、これらの接続制御情報は、各アーティキュレーションエレメント毎に夫々設けられている。
【0060】
図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へとクロスフェードされて波形が滑らかに接続される。
【0061】
図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のフェードイン期間とが重複し、両者を加算することによりクロスフェード合成が完成する。
以下、同様に、順次クロスフェードしながら、各アーティキュレーションエレメントがシーケンスの時系列順に接続される。
【0062】
なお、上記の例では、各テンプレートに基づいて合成したエレメント波形に対してクロスフェード合成を行うようにしている。しかし、これに限らず、各テンプレートデータ毎にクロスフェード処理を行い、クロスフェード処理済みのテンプレートデータに基づき各エレメント波形の合成を行うようにしてもよい。その場合は、同じエレメントであっても、各テンプレート毎に異なる接続ルールを適用するようにすることができる。すなわち、上記の各接続制御情報(フェードインレートFIR,ネクストチャンネルスタートポイントNCSP,フェードアウトスタートポイントFOSP,フェードアウトレートFOR)が、当該エレメントの波形(Timbre),振幅(Amp),ピッチ(Pitch),時間(TSC)等の各楽音要素に対応するテンプレート毎に夫々用意される。このようにすれば、各テンプレート毎にそれに応じた最適の接続ルールに従ってクロスフェード接続を行うことができ、効果的である。
【0063】
〔編集〕
図11は、データ編集処理の一例を模式的に示すものである。図11においては、アタック部の属性を持つ或るアーティキュレーションエレメントA#1と、ボディ部の属性を持つ或るアーティキュレーションエレメントB#1と、リリース部の属性を持つ或るアーティキュレーションエレメントR#1とからなるアーティキュレーションエレメントシーケンスAESEQ#xのデータを基にして編集を行う例を示している。勿論、ここで述べるデータ編集を実施するにあたっては、所要の編集プログラムをコンピュータが実行し、ディスプレイに表示される各種データの状態を見ながら、キーボードやマウスによってユーザーが所望の操作を行う、というような適当な実現手段を用いて実施される。
基となるシーケンスAESEQ#xは、アーティキュレーションデータベースADBに記憶されている多数のシーケンスAESEQ(例えば図5(a)参照)から選択することができる。アーティキュレーションデータの編集は、大別すると、シーケンス内におけるアーティキュレーションエレメントの差し替えあるいは追加又は削除と、エレメント内におけるテンプレートの差し替えあるいは既存テンプレートのデータ値修正による新規テンプレートの作成とを含む。
【0064】
図11の編集の欄には、基となるシーケンスAESEQ#xにおけるリリース部のアーティキュレーションエレメントR#1が比較的なだらかに立ち下がる振幅エンベロープ特性を持っており、これを比較的素速く立ち下がる振幅エンベロープ特性を持つエレメントR#xに差し替える例が示されている。差し替えに限らず、所望のエレメントの追加(例えばボディ部エレメントの追加あるいは装飾音用のエレメントの追加など)や削除(ボディ部が複数ある場合はそのうちいずりかを削除することなど)も可能である。差し替えに使用するエレメントR#xは、アーティキュレーションデータベースADBに記憶されている多数のアーティキュレーションエレメントベクトルAEVQ(例えば図5(b)参照)から選択することができる。その場合、属性情報ATRを参照して同じ属性のエレメント群の中から、差し替えに使用する所望のエレメントR#xを、選択することができる。
【0065】
次に、所望のエレメント(例えば差し替えたエレメントR#x)の中の所望の楽音要素に対応するテンプレートデータを該楽音要素に関する別のテンプレートデータに差し替える。図11の例では、エレメントR#xのピッチ(Pitch)テンプレートを別のピッチテンプレートPitch’(例えばピッチベンド特性を持つピッチテンプレート)に差し替えることが示されている。これにより、作成された新たなリリース部のエレメントR#x’は、比較的素速く立ち下がる振幅エンベロープ特性を持つと共にピッチベンドダウン特性を持つものとなる。なお、テンプレートの差し替えの場合も、属性情報ATRを参照して、多数のアーティキュレーションエレメントベクトルAEVQ(例えば図5(b))における同じ属性のエレメント群の各テンプレート(ベクトルデータ)の中から、差し替えに使用する所望のテンプレート(ベクトルデータ)を、選択することができる。
なお、一部のテンプレートの差し替えによって作成された新たなエレメントR#x’は、新たなインデックスと所要の属性情報を付与して、アーティキュレーションデータベースADBのアーティキュレーションエレメントベクトルAEVQ(図4参照)のエリアに追加登録するとよい。
【0066】
所望のテンプレートの具体的データ内容を修正することも可能である。その場合は、編集中のエレメントについての所望のテンプレートの具体的データ内容をテンプレートデータベースTDBから読み出し、これをディスプレイ等で表示してキーボードやマウス等の操作によってそのデータ内容を適宜変更する。所望のデータ修正が終了すると、該修正されたテンプレートデータに新たなインデックスを付けてテンプレートデータベースTDBに追加登録すると共に、該修正されたテンプレートデータに対して新たなベクトルデータを割り当て、この新たなベクトルデータを含む新たなエレメント(例えばR#x’)に対して新たなインデックスと所要の属性情報を付与してアーティキュレーションデータベースADBのアーティキュレーションエレメントベクトルAEVQ(図4参照)のエリアに追加登録するようにするとよい。
【0067】
以上のようにして、基となるシーケンスAESEQ#xの内容を適宜変更して新たなシーケンスデータを作成するデータ編集処理を行うことができる。このようなデータ編集処理によって作成された新たなシーケンスデータは、ユーザーアーティキュレーションエレメントシーケンスURSEQとして新たなシーケンス番号(例えばURSEQ#x)と属性情報を付与し、アーティキュレーションデータベースADBに登録する。以後、楽音合成時には、そのシーケンス番号URSEQ#xを用いてアーティキュレーションデータベースADBからユーザーアーティキュレーションエレメントシーケンスURSEQのデータを読み出すことができる。
なお、データ編集の形態は図11で例示したものに限らず、種々の形態があり得る。例えば、基となるシーケンスAESEQを呼び出すことなく、所望のエレメントをエレメントベクトルAEVQから順次選択し、これによってユーザーシーケンスURSEQを作り上げるようにしてもよい。
【0068】
図12は、上述したようなデータ編集処理を実行しうるコンピュータプログラムの概略を示すフロー図である。
ステップS21では、所望の奏法を指定する。この指定は、コンピュータのキーボードやマウスを用いて、シーケンスAESEQ又はURSEQの番号を直接入力するようにしてもよいし、所望の楽器音色と属性情報を入力することによって行うようにしてもよい。
次のステップS22では、指定された奏法に一致するシーケンスがアーティキュレーションデータベースADB内のAESEQ又はURSEQに存在しているかどうかを検索し、該当するシーケンスAESEQ又はURSEQを選択する。この場合、シーケンスAESEQ又はURSEQの番号を直接入力した場合は、該当するものが直接引き出される。属性情報を入力した場合は、該属性情報に該当するシーケンスAESEQ及び/又はURSEQが検索される。属性情報は複数入力可能であり、複数入力した場合は、例えばAND論理で検索することとすればよい。勿論、これに限らずOR論理で検索してもよい。検索結果はコンピュータのディスプレイで表示し、複数のシーケンスAESEQ及び/又はURSEQが検索された場合は、そのうち所望のものを選択できるようにする。
【0069】
ステップ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に行く。
【0070】
ステップ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と差し替える。
【0071】
必要に応じて、アーティキュレーションエレメントの追加及び削除もステップS25で行う。望みのエレメントベクトルデータの差し替え及び/又は追加、削除を終えると、新規のアーティキュレーションエレメントシーケンスが作成されたことになる(ステップS26)。
アーティキュレーションエレメントの差し替え及び/又は追加、削除によって、新規作成されたアーティキュレーションエレメントシーケンス内におけるエレメント間の波形のつながりが保証されないものとなったので、次のステップS27において、接続ルールデータRULEを設定する。次のステップS28では、設定した接続ルールデータRULEでよいかどうかを確認する。OKでなければ、ステップS27に戻り、接続ルールデータRULEを設定し直す。設定した接続ルールデータRULEでOKであれば、ステップS29に行く。
ステップS29では、編集処理を続行するかどうかを問い合わせる。編集処理を続行しない場合は、ステップS30に行き、新規作成されたアーティキュレーションエレメントシーケンスをユーザーシーケンスURSEQとしてアーティキュレーションデータベースADBに登録する。編集処理を続行したければ、ステップS29でYESとして、ステップS24又はS31に行く。この場合、アーティキュレーションエレメントの差し替え及び/又は追加、削除に戻りたい場合はステップS24に戻るものとし、テンプレートデータの編集に移りたい場合はステップS31に行く。
【0072】
ステップ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とする)に差し替える。
【0073】
こうして、BOD−Vib−nor(ボディ・ノーマルビブラート)の各テンプレートのうち、時間テンプレートベクトルをTSC−B−vibからTSC−B−sp2に差し替えた新たなアーティキュレーションエレメントが作成される(ステップS33)。また、シーケンスAESEQ#6のボディ部用のエレメントを、この新たに作成されたアーティキュレーションエレメントに差し替えてなる、新たなアーティキュレーションエレメントシーケンスが作成される(ステップS33)。
続くステップS34,S35,S36は前述のステップS27,S28,S29と同様の処理からなる。すなわち、差し替えたテンプレートデータによって、新規作成されたアーティキュレーションエレメントシーケンス内におけるエレメント間の波形のつながりが保証されないものとなったので、前述と同様に接続ルールデータRULEを設定し直す。
【0074】
ステップS36では、編集処理を続行するかどうかを問い合わせる。編集処理を続行しない場合は、ステップS37に行き、新規作成されたアーティキュレーションエレメント(AE)をユーザーアーティキュレーションエレメントベクトル(AEVQ)としてアーティキュレーションデータベースADBに登録する。編集処理を続行したければ、ステップS36でYESとして、ステップS31又はS38に行く。この場合、テンプレートベクトルの差し替えに戻りたい場合はステップS31に戻るものとし、テンプレートデータの具体的内容の編集に移りたい場合はステップS38に行く。
ステップS38では、データ内容を編集したい所要のアーティキュレーションエレメント(AE)内のテンプレートを選択する。次のステップS39では、選択されたテンプレートのデータをテンプレートデータベースTDBから読み出し、その具体的データ内容を適宜変更する。
【0075】
例えば、アーティキュレーションシーケンスの検索条件の属性として、「アタック・ベンドアップ・ノーマル」と、「かなり遅いビブラート」と、「リリース・ノーマル」がステップ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とする)を割り当てる。
【0076】
こうして、新規の時間テンプレートデータとそのベクトルデータTSC−B−sp0が作成される(ステップS40)。また、時間テンプレートベクトルを新規のベクトルに変更した新たなアーティキュレーションエレメント(AE)が作成され、また、シーケンスAESEQ#6のボディ部用のエレメントを、この新たに作成されたアーティキュレーションエレメント(AE)に差し替えてなる、新たなアーティキュレーションエレメントシーケンスが作成される(ステップS40)。
続くステップS41,S42,S43は前述のステップS27,S28,S29と同様の処理からなる。すなわち、データ修正したテンプレートデータによって、新規作成されたアーティキュレーションエレメントシーケンス内におけるエレメント間の波形のつながりが保証されないものとなったので、前述と同様に接続ルールデータRULEを設定し直す。
【0077】
ステップS43では、編集処理を続行するかどうかを問い合わせる。編集処理を続行しない場合は、ステップS44に行き、新規作成されたテンプレートデータをテンプレートデータベースTDBに登録する。編集処理を続行したければ、ステップS43でYESとして、ステップS38に戻る。ステップS44の後、ステップS37に行き、新規作成されたアーティキュレーションエレメント(AE)をユーザーアーティキュレーションエレメントベクトル(AEVQ)としてアーティキュレーションデータベースADBに登録する。更に、ステップS30に行き、新規作成されたアーティキュレーションエレメントシーケンスをユーザーシーケンスURSEQとしてアーティキュレーションデータベースADBに登録する。
編集処理の手順は図12に限定されるものではなく、適宜別の手順で処理してもよい。また、前述のように、基となるシーケンスAESEQを呼び出すことなく、所望のエレメントをエレメントベクトルAEVQから順次選択し、各エレメント内のテンプレートデータを適宜差し替えたりデータ修正したりして、これに基づきユーザーシーケンスURSEQを作り上げるようにしてもよい。また、特に、図示しなかったが、編集処理の適宜の段階において、編集中のアーティキュレーションエレメントの波形に対応する音を発音し、ユーザーが耳で確認できるようにするとよい。
【0078】
〔パーシャルベクトルの説明〕
図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を有することを示す識別データを、登録しておくものとする。
【0079】
パーシャルベクトルPVQは、各部分的なテンプレートデータPT1〜PT4毎に、該データのテンプレートデータベースTDBでの記憶位置を示すデータ(例えばループスタートアドレスに相当)と、該データの幅Wを示すデータ(例えばループエンドアドレスに相当)と、該データを繰返す期間LTを示すデータとを含んでいる。図では、便宜上、幅Wと期間LTがどの部分的データPT1〜PT4でも共通しているかのように図示しているが、これは各データPT1〜PT4毎に任意である。また、部分的テンプレートデータPT1〜PT4の数も、4個に限らず、任意である。
パーシャルベクトルPVQに基づく各部分的テンプレートデータPT1〜PT4をそれぞれその繰返し期間(LT)の分だけループ読み出しし、読み出された各ループを接続することにより(a)に示したような全区間のデータを再現することができる。この再現処理をデコード処理ということにする。このデコード処理法としては、一例として、それぞれの部分的テンプレートデータPT1〜PT4をその繰返し期間LTの分だけ単純にループ読出しするようにするだけでもよいし、別の例として、相前後する2つの波形をループ読出しながらクロスフェード合成するようにしてもよい。後者の方が各ループのつながりが良くなるので、好ましい。
【0080】
図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つのループ読出波形の位相とピッチが適切に合うように処理する。
【0081】
図14は、パーシャルベクトルPVQを考慮したテンプレート読出し処理の一例を示すフロー図である。ここに示されたステップS13〜S14cは、図7のステップS13,S14の部分の処理に対応している。ステップS13では、アーティキュレーションエレメントベクトルAEVQのデータ群の中から指定されたエレメントに対応する各テンプレートのベクトルデータを読み出す。ステップS14aでは、パーシャルベクトルPVQを有することを示す識別データに基づきパーシャルベクトルPVQが有るか否かをチェックする。パーシャルベクトルPVQがなければ、ステップS14bに行き、テンプレートデータベースTDBから各テンプレートデータを読み出す。パーシャルベクトルPVQが有れば、ステップS14cに行き、そのパーシャルベクトルPVQに基づき上述の「デコード処理」を行う。これにより、該エレメントについての全区間のテンプレートデータを再現(デコード)する。
【0082】
なお、或るアーティキュレーションエレメントにパーシャルベクトルPVQを適用する場合、そのアーティキュレーションエレメントの全ての楽音要素についてのテンプレートを部分的テンプレートとする必要はなく、部分的テンプレートとしてループ読出しするのに適した種類の楽音要素に関してのみ部分的テンプレートとすればよい。
また、パーシャルベクトルPVQに基づく、当該エレメントについての全区間のテンプレートデータの再生方法としては、上述のような単純なループ読出しに限らず、その他適宜の方法を用いてよい。例えば、該パーシャルベクトルPVQに対応する所定長の部分的テンプレートを必要なだけ時間軸伸張する、あるいは限られた複数の部分的テンプレートをランダムに又は所定のシーケンスで組み合わせて当該エレメントについての全区間または必要な区間にわたって配置する、などの方法を用いてよい。
【0083】
〔ビブラート合成の説明〕
ここでは、ビブラート合成の仕方についての新しいアイディアについていくつか説明する。
図15は、ビブラート成分を持つボディ部の波形データをパーシャルベクトルPVQの考え方を適用してデータ圧縮する例と、そのデコード例とを概略的に示す図である。(a)は、ビブラートを含むオリジナル波形Aを例示する。このオリジナル波形においては、ビブラートの1周期において波形ピッチが変動しているのみならず、振幅も変動している。(b)は(a)のオリジナル波形から分散的に複数の波形a1,a2,a3,a4を取り出した状態を例示する。これらの波形a1〜a4としては、波形形状(音色)がそれぞれ異なっているものを選び、また、1波長(波形1周期)を同じデータサイズ(アドレス数)としてそれぞれ1又は複数波で取り出す。これらの波形a1〜a4を部分的テンプレートデータ(つまりループ波形データ)としてテンプレートデータベースTDBに記憶する。この読出し法は、各波形a1〜a4を順次ループ読出しすると共にクロスフェード合成することにより行う。
【0084】
図15(c)はビブラート1周期の間にピッチが変動するピッチテンプレートを示している。なお、このピッチテンプレートのピッチ変化パターンは図示では高ピッチから始まって低ピッチに移行し、最後に高ピッチに戻るパターンであるが、これに限らず、他のパターン(例えば低ピッチから高ピッチに移行し、低ピッチに戻るパターンや、中間のピッチから始まって高ピッチ→低ピッチ→中間ピッチに戻るパターンなど)であってもよい。
【0085】
図15(d)はループ読出した各波形a1〜a4に対するクロスフェード制御波形を例示している。(c)のピッチテンプレートに従うピッチで最初は波形a1とa2をそれぞれループ読出し(繰返し読出し)し、ループ読出した波形a1に対してはフェードアウト、ループ読出した波形a2に対してはフェードインの振幅制御をして両者を合成する。これにより、波形a1からa2に向かってその波形形状がクロスフェードして順次変化していき、かつそのクロスフェード合成波形のピッチがピッチテンプレートに従うピッチで順次変化する。以下、同様に波形を順次切換えて、a2とa3とで、次にa3とa4とで、次にa4とa1とで、クロスフェード合成をそれぞれ行う。
【0086】
図15(e)は合成された波形データA’を示す。この波形データA’は、ビブラート1周期の間で、その波形形状が波形a1から順にa4まで滑らかにクロスフェードされて変化していき、かつ、そのピッチはピッチテンプレートに従って変化していくことによりビブラートが付けられたものである。上記のようなビブラート1周期分の波形データA’の合成処理を繰り返すことにより、複数のビブラート周期にわたる波形データを合成することができる。その場合、(c)に示すようなビブラート1周期分のピッチテンプレートを必要なビブラート周期数分だけループさせればよい。そのために、パーシャルベクトルPVQの構造が階層的になっていてよい。すなわち、ビブラート1周期分の波形合成のために波形a1〜a4が上記のように個々にループ読出しされると共に、その全体(ビブラート1周期分)がピッチテンプレートのルーピングに従って更に繰り返されるような階層構造となっていてよい。
なお、ビブラート合成のためにオリジナル波形から分散的に取り出す波形の数は図15(b)のような4個に限らず、何個でもよい。また、その各波形の取り出し間隔は等間隔でなくてもよい。更に、図15(b)のようにビブラート1周期の範囲から取り出すことに限らず、複数ビブラート周期あるいはビブラート1周期未満の範囲から適宜分散的に取り出すようにしてもよい。
【0087】
図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の時間的位置を入れ替えて、クロスフェード合成の対象となる波形を任意に組み合わせることにより、ビブラートにおける波形音色変化のバリエーションを多様な組合せで得ることができるようにしている点である。
【0088】
例えば、各波形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乗の組合せがある。従って、ビブラートにおける波形音色変化のバリエーションが極めて多様なものとなる。どの組合せパターンを採用するかはランダム選択するようにすればよい。
【0089】
図15又は図16に示すような手法で作成されたビブラート特性を持つ波形(例えば図15(e)のA’)あるいはその他の手法で作成されたビブラート特性を持つ波形に対しては、ピッチ(Pitch)テンプレート、振幅(Amp)テンプレート、時間(TSC)テンプレートによって、そのビブラート特性を可変制御することができる。例えば、ピッチ(Pitch)テンプレートによってビブラートの深さを制御することができ、振幅(Amp)テンプレートによってビブラートと共に付加される振幅変調の深さを制御することができ、時間(TSC)テンプレートによってビブラート1周期を構成する波形の時間長を伸縮制御することによりビブラートの速さを制御する(ビブラート周期を制御する)ことができる。
【0090】
例えば図15においては、(d)に示す各クロスフェード区間の時間長を所望の時間(TSC)テンプレートに応じて時間軸伸縮制御(TSC制御)することにより、楽音再生ピッチ(波形読出アドレスの変化レート)を変化させずに該TSC制御を行なった場合は、ビブラート1周期の時間長を伸縮制御することができ、これにより、ビブラート周波数の制御が行なえる。なお、その場合、TSCテンプレートを、(c)に示すようようなピッチテンプレートと同様にビブラート1周期分に対応して用意した場合は、ビブラート1周期分の該TSCテンプレートを必要なビブラート周期数分だけループさせればよい。なお、TSCテンプレートに応じた波形の時間軸伸縮制御に連動して、ピッチ(Pitch)テンプレート及び振幅(Amp)テンプレートも時間軸伸縮制御するようにすれば、これらの楽音要素を連動して時間軸伸縮制御することができる。
なお、ピッチテンプレートが示すピッチ変化エンベロープ特性を上下にシフトすることにより、ビブラート波形の楽音再生ピッチを可変制御することもできる。その場合、TSCテンプレートによる波形の時間軸制御は行わないようにすることにより、楽音再生ピッチにかかわらず、ビブラート1周期の時間長を一定に維持するよう制御することができる。
【0091】
〔接続ルールRULEの説明〕
次に、アーティキュレーションエレメント同士の接続の仕方を記述するルールデータRULEの具体例について説明する。
各楽音要素別に、例えば、下記のような接続ルールがある。
(1)波形(Timbre)テンプレートの接続ルール
ルール1:直接接続。プリセットされた奏法シーケンス(アーティキュレーションエレメントシーケンスAESEQ)のように、各アーティキュレーションエレメント同士の滑らかな接続が予め保証されている場合は、補間を行うことなく、直接的に接続することで問題ない。
ルール2:先行エレメントの波形Aの終端部分を引き延ばした補間。この補間例は図17(a)に示すような形態であり、先行エレメントの波形Aの終端部分を引き延ばして接続用波形C1を合成する。後続エレメントの波形Bはそのまま使用し、先行エレメントの波形Aの末尾に延びた接続用波形C1をフェードアウト、後続エレメントの波形Bの始まり部分をフェードインで、クロスフェード合成する。接続用波形C1は、先行エレメントの波形Aの終端部分の1周期波形または複数周期波形を必要な長さだけ繰り返して形成する。
【0092】
ルール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制御によってその分だけ時間軸圧縮処理を施すものとする。
【0093】
ルール5:図17(d)に示すように、先行エレメントの波形Aと後続エレメントの波形Bとの間に、予め用意した接続用波形Cを挿入する。その際、先行エレメントの波形Aの終端部分と後続エレメントの波形Bの先端部分は、接続用波形Cの分だけ一部除去する。あるいは、先行エレメントの波形Aの終端部分と後続エレメントの波形Bの先端部分を削除することなく、接続用波形Cを挿入してもよいが、その場合は、合成された波形全体の時間が延びることになるので、TSC制御によってその分だけ時間軸圧縮処理を施すものとする。
ルール6:図17(e)に示すように、先行エレメントの波形Aと後続エレメントの波形Bとの間に、予め用意した接続用波形Cを挿入し、その際、先行エレメントの波形Aの終端部分と接続用波形Cの前半部をクロスフェードロスフェード合成し、後続エレメントの波形Bの先端部分と接続用波形Cの後半部をクロスフェードロスフェード合成する。この場合も、もし、合成された波形全体の時間が延びるか縮むかした場合は、TSC制御によってその分だけ時間軸圧縮処理を施すものとする。
【0094】
(2)その他のテンプレートの接続ルール
波形(Timbre)テンプレート以外の他のテンプレート(振幅、ピッチ、時間)のデータは、エンベロープ波形状のシンプルな形態をとるので、2チャンネルのクロスフェード制御波形を使用した複雑な補間処理を使用せずに、もっとシンプルな補間処理で滑らかな接続を実現することができる。特に、エンベロープ波形状のテンプレートデータの補間合成にあたっては、補間結果を本来のテンプレートデータ値に対する差分値(正負符号付き)で生成するようにするのが好ましい。そうすれば、リアルタイムでテンプレートデータベースTDBから読み出した本来のテンプレートデータ値に対して、補間結果たる差分値(正負符号付き)を加算するだけで、滑らかな接続のための補間演算を達成することができることになり、極めて簡単である。
ルール1:直接接続。この例を図18(a)に示す。1番目のエレメントのテンプレート(エンベロープ波形)AE1の末尾と2番目のエレメントのテンプレート(エンベロープ波形)AE2−aの先頭のレベルが一致しており、2番目のエレメントのテンプレート(エンベロープ波形)AE2−aの末尾と3番目のエレメントのテンプレート(エンベロープ波形)AE3の先頭のレベルも一致しているので、補間の必要がない。
【0095】
ルール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’を加算するだけで、滑らかな接続のための補間演算を達成することができることになり、極めて簡単である。
【0096】
このルール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に漸近する。
【0097】
図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に対する差分値からなるものとする。
【0098】
ルール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の全区間に対応して得る。
【0099】
図20(b)は、中間のエレメントAEnの全区間でデータ変更を行うと共に、中間のエレメントAEnの終端部分の所定領域RCFTと後続エレメントAEn+1の先端部分の所定領域FCFTとにおいて補間を行う例を示している。
まず、上記と同様に、先行するエレメントAEn-1の終了点のテンプレートデータ値EP0と中間のエレメントAEnの本来の開始点のテンプレートデータ値SPとの差に応じて、該エレメントAEnのテンプレートデータ値の軌跡E1をシフトして、軌跡EaからなるテンプレートデータをエレメントAEnの全区間に対応して作成する。
【0100】
次に、この軌跡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に漸近する。
【0101】
図20(c)は、中間のエレメントAEnの全区間でデータ変更を行うと共に、先行エレメントAEn-1の終端部分の所定領域RCFTと中間エレメントAEnの先端部分の所定領域FCFTとにおいて補間を行い、かつ、中間のエレメントAEnの終端部分の所定領域RCFTと後続エレメントAEn+1の先端部分の所定領域FCFTとにおいて補間を行う例を示している。
まず、中間のエレメントAEnのテンプレートデータ値の本来の軌跡E1を適当なオフセット量OFSTだけシフトして、軌跡EcからなるテンプレートデータをエレメントAEnの全区間に対応して作成する。
【0102】
次に、先行エレメント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に対する差分値からなるものとする。
【0103】
〔接続処理を含む楽音合成処理の概念的説明〕
図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を供給する。
【0104】
ルールデーコード処理ブロックRB1,RB2,RB3,RB4では、当該アーティキュレーションエレメントに関する各楽音要素毎の接続ルールTimbRULE,AmpRULE,PitRULE,TSCRULEをデコードし、デコードした接続ルールに従って図17〜図20を参照して説明したような接続処理を実行する。例えば、波形テンプレート用のルールデーコード処理ブロックRB1では、図17を参照して説明したような接続処理(直接接続又はクロスフェード補間)を実行するための処理を行う。
【0105】
また、振幅テンプレート用のルールデーコード処理ブロックRB2では、図18〜図20を参照して説明したような接続処理(直接接続又は補間)を実行するための処理を行う。この場合、補間結果は前述の通り差分値(正負符号付き)で与えられるので、ブロックRB2から出力された差分値からなる補間データが、加算部AD2において、テンプレートデータ供給ブロックTB2から供給される本来のテンプレートデータ値に対して加算されるようになっている。同様の理由で、他のルールデーコード処理ブロックRB3,RB4の各出力と、各テンプレートデータ供給ブロックTB3,TB4から供給される本来のテンプレートデータ値をそれぞれ加算するための加算部AD3,AD4が設けられている。
【0106】
こうして、各加算部AD2,AD3,AD4からは、隣接するエレメント間での所要の接続処理を施してなるテンプレートデータAmp,Pitch,TSCがそれぞれ出力される。ピッチ制御ブロックCB3は、ピッチテンプレートデータPitchに従って波形読出し速度を制御するものである。波形テンプレートそのものがオリジナルのピッチ情報を含んでいるため、ラインL1を介して該オリジナルのピッチ情報(オリジナルのピッチエンベロープ)をデータベースから受け取り、該オリジナルのピッチエンベロープとピッチテンプレートデータPitchとの偏差で波形読出し速度を制御する。例えば、オリジナルのピッチエンベロープとピッチテンプレートデータPitchとが同じ場合は、一定の波形読出し速度で読出しを行えばよいし、オリジナルのピッチエンベロープとピッチテンプレートデータPitchとが異なっている場合はその偏差分だけ波形読出し速度を可変制御すればよい。また、ピッチ制御ブロックCB3は、ノート指示データを受け付け、該ノート指示データによっても波形読出し速度を制御する。例えば、波形テンプレートデータのオリジナルのピッチがノートC4のピッチを基本としているとし、ノートD4の音もこのノートC4のオリジナルピッチを持つ波形テンプレートデータを利用して発生するものとすると、ノート指示データのノートD4とオリジナルのピッチのノートC4との偏差に応じて波形読出し速度を制御することとなる。このようなピッチ制御の細部は、公知技術を応用できるため、特に詳しく説明しない。
【0107】
波形アクセス制御ブロックCB1では、基本的には、ピッチ制御ブロックCB3から出力される波形読出し速度制御情報に応じて、波形テンプレートデータの各サンプルを順次読み出す。このとき、時間テンプレートデータとして与えられるTSC制御情報に従って波形読出し態様を制御し、発生音のピッチはピッチ制御ブロックCB3から与えられる波形読出し速度制御情報に応じて決定しつつ、トータルの波形読出し時間はTSC制御情報に従って可変制御されるようにする。例えば、オリジナルの波形データの時間長よりも発音時間長を伸張する場合は、波形読出し速度はそのままにして、一部の波形部分が重複して読み出されるようにすれば、所望のピッチを維持しつつ発音時間長を伸張することができる。また、オリジナルの波形データの時間長よりも発音時間長を圧縮する場合は、波形読出し速度はそのままにして、一部の波形部分が飛び越されて読み出されるようにすれば、所望のピッチを維持しつつ発音時間長を圧縮することができる。
波形アクセス制御ブロックCB1とクロスフェード制御ブロックCB2とでは、波形テンプレート用のルールデーコード処理ブロックRB1の出力に従って図17を参照して説明したような接続処理(直接接続又はクロスフェード補間)を実行するための処理を行う。クロスフェード制御ブロックCB2は、パーシャルベクトルPVQに従って部分的波形テンプレートをループ読出しながらクロスフェード処理する場合にも利用される。また、上記TSC制御の際に波形接続を滑らかにする場合にも利用される。
【0108】
振幅制御ブロックCB4は、発生された波形データに対して振幅テンプレートAmpに応じた振幅エンベロープを付与する。この場合も、波形テンプレートそのものがオリジナルの振幅エンベロープ情報を含んでいるため、ラインL2を介して該オリジナルの振幅エンベロープ情報をデータベースから受け取り、該オリジナルの振幅エンベロープと振幅テンプレートデータAmpとの偏差で波形データの振幅を制御する。例えば、オリジナルの振幅エンベロープと振幅テンプレートデータAmpとが同じ場合は、振幅制御ブロックCB4では実質的な振幅制御を行わずに波形データを素通りさせるだけでよい。オリジナルの振幅エンベロープと振幅テンプレートデータAmpとが異なっている場合はその偏差分だけ振幅レベルを可変制御すればよい。
【0109】
〔楽音合成装置の具体例〕
図22は、この発明の実施例に係る楽音合成装置のハードウェア構成例を示すブロック図である。この楽音合成装置は、電子楽器あるいはカラオケ装置又は電子ゲーム装置又はその他のマルチメディア機器又はパーソナルコンピュータ等、任意の製品応用形態をとっていてよい。
図22に示す構成によれば、ソフトウェア音源を利用してこの発明の実施例に係る楽音合成処理を実行する。この発明に係る楽音データの作成及び楽音合成処理を実現するようにソフトウェアシステムを構築すると共に、付属のメモリ装置に所要のデータベースDBを構築する、若しくは外部(ホスト)において構築されたデータベースDBに通信回線を介してアクセスする、といった実施形態をとる。
【0110】
図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を介して接続されている。
【0111】
図23は、波形インタフェース18の詳細例とRAM12内の波形バッファの構成例を示している。波形インタフェース18は、波形データの取り込み(サンプリング)と出力の両方を制御するものであり、外部からマイクロフォン等によって入力された波形データをサンプリングしてアナログ/ディジタル変換するアナログ/ディジタル変換器(ADC)23と、サンプリングのための第1のDMAC(ダイレクトメモリアクセスコントローラ)24と、所定の周波数のサンプリングクロックFsを発生するサンプリングクロック発生回路25と、波形データの出力を制御する第2のDMAC(ダイレクトメモリアクセスコントローラ)26と、出力波形データをディジタル/アナログ変換するディジタル/アナログ変換器(DAC)27とを含んでいる。なお、第2のDMAC26は、サンプリングクロックFsに基づき絶対時刻情報を作成し、CPUのバス22に与える働きもする。
【0112】
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,…)を使用してもよい。
【0113】
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変換された楽音波形データはサウンドシステム(図示せず)に与えられ、空間的に発音される。
【0114】
図8(a)に示したように、MIDIデータからなる自動演奏シーケンスデータの中に本発明に従う奏法シーケンス(アーティキュレーションエレメントシーケンスAESEQ)のデータが組み込まれているものとして以下説明を行う。なお、図8(a)では特に詳しく述べなかったが、奏法シーケンス(アーティキュレーションエレメントシーケンスAESEQ)のデータは、MIDIフォーマットの形態で、例えばMIDIのエクスクルーシブデータとして組み込むことができる。
【0115】
図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の所定の途中の位置から書き込まれるようになっている。
【0116】
なお、「波形生成」における波形サンプルデータの生成演算の方式は、通常のMIDIのノートオンイベントに基づく自動演奏音(これを「通常演奏」音ということにする)と、アーティキュレーションエレメントシーケンスAESEQのオンイベントに基づく演奏音(これを「奏法演奏」音ということにする)とでは、異なっている。通常のMIDIのノートオンイベントに基づく「通常演奏」処理と、アーティキュレーションエレメントシーケンスAESEQのオンイベントに基づく「奏法演奏」処理は、図29及び図30に示すような、それぞれ別々の処理ルーチンで実行される。例えば、伴奏パートを通常のMIDIのノートオンイベントに基づく「通常演奏」で行い、特定のソロ演奏パートをアーティキュレーションエレメントシーケンスAESEQに基づく「奏法演奏」で行う、といった使い分けを行うと、効果的である。
【0117】
図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に滑らかに接続されるように所定の接続処理を施す。
【0118】
図26は、図22のCPU10が実行する楽音合成処理のメインルーチンを示すフローチャートである。このメインルーチンの「自動演奏処理」によって、自動演奏シーケンスデータのイベントに基づく処理が行われる。まず、ステップS50では、RAM12上での各種バッファ領域の確保等、必要な各種の初期設定処理を行う。次に、ステップS51では、下記の各起動要因が発生しているか否かのチェックを行う。
起動要因▲1▼:インターフェース20,21を介してMIDI演奏データまたはその他の通信入力データが入力されたこと。
起動要因▲2▼:自動演奏処理タイミングが到来したこと。自動演奏における次のイベントの発生時間をチェックするために、この自動演奏処理タイミングは規則的に発生する。
起動要因▲3▼:1フレーム単位の波形生成タイミングが到来したこと。1フレーム単位でまとめて波形サンプルデータを生成するために、この波形生成タイミングは1フレーム周期で(たとえばフレーム区間の終わりのタイミングで)発生する。
起動要因▲4▼:入力操作装置17でキーボート又はマウス等のスイッチ操作(メインルーチンの終了指示操作を除く)が行われたこと。
起動要因▲5▼:ディスクドライブ13〜15や表示器16からの割込み要求があったこと。
起動要因▲6▼:入力操作装置17でメインルーチンの終了指示操作が行われたこと。
【0119】
ステップS52では、いずれかの起動要因▲1▼〜▲6▼が発生したかを判断する。NOであれば、ステップS51,S52を繰り返し、YESとなったら、ステップS53で、どの起動要因が発生したのかを判定する。起動要因▲1▼が発生した場合はステップS54で所定の「通信入力処理」を行う。起動要因▲2▼が発生した場合はステップS55で所定の「自動演奏処理」(その一例を図27に示す)を行う。起動要因▲3▼が発生した場合はステップS56で所定の「音源処理」(その一例を図28に示す)を行う。起動要因▲4▼が発生した場合はステップS57で所定の「SW処理」(操作されたスイッチに対応する処理)を行う。起動要因▲5▼が発生した場合はステップS58で所定の「その他処理」(割込み要求に応じた処理)を行う。起動要因▲6▼が発生した場合はステップS59で所定の「終了処理」(このメインルーチンを終了させる処理)を行う。
【0120】
なお、ステップS53において、起動要因▲1▼乃至▲6▼のうちの2以上の起動要因が同時的に発生していると判断された場合には、所定の優先順位で(例えば起動要因▲1▼,▲2▼,▲3▼,▲4▼,▲5▼,▲6▼の順)処理されるものとする。その場合、対等の優先順位の処理があってもよい。また、ステップS51〜S53は、擬似マルチタスク処理におけるタスク管理を仮想的に示したものであり、実際には、いずれかの起動要因の発生に基づいて処理を実行している途中で、それよりも優先順位の高い起動要因が発生したことにより、割込みで別の処理を実行すること(例えば、起動要因▲3▼の発生に基づいて「音源処理」を実行している途中で、起動要因▲2▼が発生したことにより、割込みで「自動演奏処理」を実行すること等)がある。
【0121】
図27により、「自動演奏処理」(ステップS55)の具体例につき説明する。まず、ステップS60では、DMAC26(図23)から与えられる絶対時刻情報を、曲データの次のイベントタイミングとを比較する処理を行う。図8に示すように、曲データつまり自動演奏データにおいては、イベントデータEVENTに先行してデュレーションデータDURが存在している。例えば、デュレーションデータDURが読み出されたときに、そのときの絶対時刻情報とデュレーションデータDURを加算して次イベント到来時刻を示す絶対時刻情報を作成し、ストアしておく。そして、この次イベント到来時刻を示す絶対時刻情報と現時点での絶対時刻情報と図27のステップS60で比較する。
【0122】
ステップS61では、現時点の絶対時刻が次イベント到来時刻に一致又は経過したか否かを判定する。まだ次イベント到来時刻になっていなければ、図27の処理を直ちに終了する。次イベント到来時刻になったならば、ステップS62に行き、該イベントの種類が、通常演奏のイベント(つまり通常のMIDIイベント)であるか、奏法演奏のイベント(つまりアーティキュレーションエレメントシーケンスイベント)であるかを調べる。通常演奏であれば、ステップS63に行き、そのイベントに応じた通常のMIDIイベント処理を行い、音源制御データを生成する。次のステップS64では、当該イベントに係る楽音合成チャンネル(図では「音源ch」と略記してある)を検出し、該チャンネルの番号をチャンネル番号レジスタiに登録する。例えば、ノートオンイベントの場合は、該ノートの発生を割り当てるチャンネルを決定し、該チャンネルをレジスタiに登録する。また、ノートオフイベントの場合は、該ノートの発生が割り当てられていチャンネルを検出し、該チャンネルをレジスタiに登録する。次のステップS65では、レジスタiによって指示されたチャンネル番号のトーンバッファTBUF(i)に、ステップS63で生成した音源制御データと制御タイミングデータとを格納する。なお、制御タイミングとは、当該イベントに係る制御を行うタイミングであり、ノートオンイベントの場合は発音開始タイミング、ノートオフイベントの場合はリリース開始タイミング等である。この実施例では、ソフトウェア処理によって楽音波形を発生するようにしているため、MIDIデータのイベント発生タイミングとそれに対応する実際の処理のタイミングが少しずれるので、そのずれを考慮して、発音開始タイミング等、実際の制御タイミングを指示し直しているのである。
【0123】
ステップ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に戻り、該サブシーケンスを個別テンプレートを指示可能なベクトルデータのレベルまで更に分解する。
【0124】
アーティキュレーションエレメントシーケンス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が特定されるようになっている場合もある。
【0125】
ステップ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)に書き込む。
【0126】
次に、図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に従って波形サンプルデータが規則的サンプリング周期で再生読み出しされることになる。
【0127】
図28のステップS79の処理の詳細例が図29に示されている。図29は、「通常演奏」についての「1フレーム分の波形データ生成処理」の一例を示すフロー図であって、MIDI演奏データに基づく通常の楽音合成処理がここで行われる。この処理では、ステップS90〜S98のループを1回行う毎に、1サンプルの波形データの生成が行われる。従って、現在処理中のサンプルが1フレームの何番目のサンプルかを示すアドレスポインタ管理がなされるが、その点は特に詳しく説明しない。まず、ステップS90では、制御タイミングが到来したかどうかをチェックする。この制御タイミングは図27のステップS65で指示し直されたタイミングであり、例えば、発音開始タイミングあるいはリリース開始タイミング(発音終了タイミング)などである。現在処理中のフレームに関して、なんらかの制御タイミングがある場合は、該制御タイミングの時刻に対応するアドレスポインタ値に対応して、このステップS90がYESとなり、ステップS91に行き、音源制御データに基づく必要な波形発生開始処理を行う。現アドレスポインタ値が制御タイミングに対応していない場合は、ステップS91をジャンプしてステップS92に行く。ステップS92では、ビブラート等に必要な低周波信号(LFO)を形成する処理を行う。次のステップS93では、ピッチ制御用のエンベロープ信号(EG)を形成する処理を行う。
【0128】
次のステップS94では、上記音源制御データに基づき、「通常演奏」音のための波形メモリ(図示せず)から所定の音色の波形サンプルデータを、指定された楽音ピッチに対応するレートで読み出し、読み出した波形サンプルデータの値をサンプル間補間する処理を行う。ここでは、通常知られた波形メモリ読み出し技術とサンプル間補間技術とを適宜使用すればよい。ここで指定される楽音ピッチは、ノートオンイベントに係るノート(音高)の正規のピッチを、前ステップS92,93で形成されたビブラート信号やピッチ制御エンベロープ値などによって可変制御したものである。次のステップS95では、振幅エンベロープ(EG)を形成する処理を行う。次のステップS96では、ステップS94で生成した1サンプルの波形データの音量レベルを、ステップS95で形成された振幅エンベロープ値によって可変制御し、これを、現アドレスポインタが指示する波形バッファW−BUFのアドレス箇所に既に格納されている波形サンプルデータに足し込む。つまり、同じサンプル点についての他のチャンネルの波形サンプルデータに加算・アキュムレートする。次に、ステップS97では、1フレーム分の処理が完了したかどうかを調べ。まだ完了していなければ、ステップS98に行き、次サンプルを準備する(アドレスポインタを次に進める)。
【0129】
上記の構成により、フレームの途中から発音を開始する場合は、該発音開始位置に対応する波形バッファW−BUFの中間的なアドレスから波形サンプルデータが格納されることになる。勿論、1フレーム区間の全体にわたって発音を持続する場合は、波形バッファW−BUFの全アドレスに波形サンプルデータが格納される。
なお、ステップS93,S95におけるエンベロープ形成処理は、エンベロープ波形メモリを読み出すことによって行うようにしてもよいし、所定のエンベロープ関数を計算することによって行うようにしてもよい。エンベロープ関数としては、周知の、比較的シンプルな1次の折線関数を演算する方式を用いてよい。なお、後述する「奏法演奏」とは異なり、この「通常演奏」では、発音中の波形の差し替えや、エンベロープの差し替え、あるいは波形の時間軸伸縮制御等、複雑な処理は行わなくてもよい。
【0130】
図28のステップS80の処理の詳細例が図30に示されている。図30は、「奏法演奏」についての「1フレーム分の波形データ生成処理」の一例を示すフロー図であって、アーティキュレーション(奏法)シーケンスデータに基づく楽音合成処理がここで行われる。また、この図30の処理では、各テンプレートデータに基づくアーティキュレーションエレメントの楽音波形処理や、エレメント波形間の接続処理等が既に述べた要領で実行される。図29と同様に、図30の処理でも、ステップS100〜S108のループを1回行う毎に、1サンプルの波形データの生成が行われる。従って、現在処理中のサンプルが1フレームの何番目のサンプルかを示すアドレスポインタ管理がなされるが、その点は特に詳しく説明しない。なお、この図30の処理では、相前後するアーティキュレーションエレメントを滑らかに接続するために、2系列の各種テンプレートデータ(波形テンプレートを含む)をクロスフェード合成したり、時間軸伸縮制御のために2系列の波形サンプルデータをクロスフェード合成したりすることが行われる。よって、1つのサンプル点について、クロスフェード合成のための2系列分の各種データ処理が行われることになる。
【0131】
まず、ステップS100では、制御タイミングが到来したかどうかをチェックする。この制御タイミングは図27のステップS74で書き込まれたタイミングであり、例えば、各アーティキュレーションエレメントAE#1〜AE#5の開始タイミングや接続処理の開始タイミングなどである。現在処理中のフレームに関して、なんらかの制御タイミングがある場合は、該制御タイミングの時刻に対応するアドレスポインタ値に対応して、このステップS100がYESとなり、ステップS101に行き、該制御タイミングに対応するエレメントベクトルE−VECや接続制御データなどに基づく必要な制御を行う。現アドレスポインタ値が制御タイミングに対応していない場合は、ステップS101をジャンプしてステップS102に行く。
【0132】
ステップS102では、エレメントベクトルE−VECによって指定された特定のエレメントについてのタイムテンプレート(図ではテンプレートをTMPと略記)を生成する処理を行う。タイムテンプレートとは図3に示した時間テンプレート(TSCテンプレート)のことである。この実施例において、タイムテンプレート(TSCテンプレート)は、振幅テンプレートやピッチテンプレートと同様に、時間的に変化するエンベロープ状のデータとして与えられるものとする。従って、このステップS102では、タイムテンプレートのエンベロープを形成する処理を行う。
ステップS103では、エレメントベクトルE−VECによって指定された特定のエレメントについてのピッチ(Pitch)テンプレートを生成する処理を行う。ピッチテンプレートも図3に例示したように時間的に変化するエンベロープ状のデータとして与えられる。
ステップS105では、エレメントベクトルE−VECによって指定された特定のエレメントについての振幅(Amp)テンプレートを生成する処理を行う。振幅テンプレートも図3に例示したように時間的に変化するエンベロープ状のデータとして与えられる。
【0133】
各ステップS102,S103,S105におけるエンベロープ形成法は、上記と同様に、エンベロープ波形メモリを読み出すことによって行うようにしてもよいし、所定のエンベロープ関数を計算することによって行うようにしてもよく、また、そのエンベロープ関数としては、比較的シンプルな1次の折線関数を演算する方式を用いてよい。また、図18〜図20を用いて説明したように、所定のエレメント接続箇所に対応して、2系列でテンプレートを形成し(先行するエレメントのテンプレートと後続するエレメントのテンプレート)、両者を接続制御データに従ってクロスフェード合成して接続する処理や、オフセット処理などもこれらのステップS102,S103,S105で行う。どのような接続ルールに従って接続処理を行うかは、それぞれに対応する接続制御データに応じて異なる。
【0134】
ステップS104では、基本的には、エレメントベクトルE−VECによって指定された特定のエレメントについての波形(Timbre)テンプレートを、指定された楽音ピッチに対応するレートで読み出す処理を行う。ここで指定される楽音ピッチは、前ステップS103で形成されたピッチテンプレート(ピッチ制御エンベロープ値)などによって可変制御されるものである。なお、タイムテンプレート(TSCテンプレート)に応じて、楽音ピッチとは独立に、波形サンプルデータの存在時間を時間軸に沿って伸張または圧縮する制御つまりTSC制御も、このステップS104で行う。また、時間軸伸縮制御に伴って、波形の連続性が損なわれることのないように、2系列で波形サンプルデータ(同じ波形テンプレート内の異なる時点に対応する2つの波形サンプルデータ)を読み出し、これをクロスフェード合成する処理も、このステップS104で行う。また、「通常演奏」の場合と同様に、波形サンプル間の補間演算処理も、このステップS104で行う。更に、図17を用いて説明したように、所定のエレメント接続箇所に対応して、2系列で波形テンプレートを読み出し(先行するエレメントの波形テンプレートと後続するエレメントの波形テンプレート)、両者をクロスフェード合成して接続する処理も、このステップS104で行う。更に、図13〜図16を用いて説明したような、波形テンプレートをループ読み出し(繰り返し読み出し)する処理と、その際に、2系列のループ読み出し波形をクロスフェード合成する処理も、このステップS104で行う。
なお、使用する波形(Timbre)テンプレートが、オリジナル波形における時間的ピッチ変動成分をそのまま保っているものである場合、ピッチテンプレートの値は、オリジナルのピッチ変動に対する変化量(差分値又は比)で与えるようにするとよい。つまり、オリジナルの時間的ピッチ変動そのままにするときは、ピッチテンプレートの値を一定値(例えば「1」)に維持する。
【0135】
次のステップS105では、振幅テンプレートを形成する処理を行う。次のステップS106では、ステップS104で生成した1サンプルの波形データの音量レベルを、ステップS105で形成された振幅エンベロープ値によって可変制御し、これを、現アドレスポインタが指示する波形バッファW−BUFのアドレス箇所に既に格納されている波形サンプルデータに足し込む。つまり、同じサンプル点についての他のチャンネルの波形サンプルデータに加算・アキュムレートする。次に、ステップS107では、1フレーム分の処理が完了したかどうかを調べ。まだ完了していなければ、ステップS108に行き、次サンプルを準備する(アドレスポインタを次に進める)。
なお、上述と同様に、使用する波形(Timbre)テンプレートが、オリジナル波形における時間的振幅変動成分をそのまま保っているものである場合、振幅(Amp)テンプレートの値は、オリジナルの振幅変動に対する変化量(差分値又は比)で与えるようにするとよい。つまり、オリジナルの時間的振幅変動そのままにするときは、振幅テンプレートの値を一定値(例えば「1」)に維持する。
【0136】
次に、時間軸伸縮制御(TSC制御)の一例について説明する。
複数周期波形からなる高品質な、つまり特定のアーティキュレーション特性を具備する、そして、一定のデータ量(サンプル数若しくはアドレス数)からなる波形データを、その楽音再生ピッチとは独立に、また、該波形の全体的特徴を損なうことなく、時間軸上におけるその存在時間長を任意に可変制御することは、本出願人が別出願(例えば特願平9−130394号)で提案した時間軸伸縮制御(TSC制御)を用いることによって実現できる。このTSC制御の要点を述べれば、一定の波形データ量からなる複数周期波形を、一定の再生サンプリング周波数と所定の再生ピッチを維持しつつ、その時間軸上の波形データ存在時間長を伸縮するために、圧縮する場合は、波形データの適宜の部分を飛び越して読み出しを行ない、伸張する場合は、波形データの適宜の部分を繰り返し読み出しするようにし、そして、飛び越し若しくは部分的繰り返し読み出しによる波形データの不連続性を除去するためにクロスフェード合成を行なうようにしたものである。
【0137】
図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が一致している。
【0138】
実読出アドレスRADは、波形テンプレートから実際に波形サンプルデータを読み出すために使用するアドレスであり、所望のピッチ情報に従う一定の変化レートで変化する。例えば、所望のピッチに対応する周波数ナンバを規則的に累算することにより、該ピッチに対応する一定の傾きを持つ実読出アドレスRADを得ることができる。仮想読出アドレスVADは、波形データの時間軸上の長さの所望の伸張又は圧縮制御した状態を想定し、所望の時間軸伸張又は圧縮を達成するためには、現時点でどのアドレス位置から波形サンプルデータを読み出すべきかを指示するアドレスである。そのために、所望のピッチ情報と時間軸伸縮比データCRateとを用いて、該ピッチ情報に従う傾きを伸縮比データCRateによって修正した傾きで変化するアドレスデータを、仮想読出アドレスVADとして発生する。実読出アドレスRADと仮想読出アドレスVADとを比較し、実読出アドレスRADの仮想読出アドレスVADからのかい離幅が所定幅を越えたとき、実読出アドレスRADの値を切替えることを指示し、この切替指示に従って、実読出アドレスRADの仮想読出アドレスVADに対するかい離を解消するよう、適宜アドレス数だけ実読出アドレスRADの数値をシフト制御する。
【0139】
図33は、図31(b)と同様の状態を拡大して示す図である。一点鎖線は、ピッチ情報に従う本来のアドレス進行を例示するもので、図31(c)の実線に対応するものである。太い破線は、仮想読出アドレスVADのアドレス進行を例示する。伸縮比データCRateが1であれば、仮想読出アドレスVADのアドレス進行は、一点鎖線の本来のアドレス進行に一致し、時間軸の変化はない。時間軸を圧縮する場合、伸縮比データCRateは1以上の適宜の値をとり、図示のように、仮想読出アドレスVADのアドレス進行の傾きが相対的に大きくなる。太い実線は、実読出アドレスRADのアドレス進行を例示する。この実読出アドレスRADのアドレス進行の傾きは、一点鎖線で示したピッチ情報に従う本来のアドレス進行の傾きに一致している。この場合、仮想読出アドレスVADのアドレス進行の傾きが相対的に大きいが故に、時間経過に従って次第に実読出アドレスRADのアドレス進行が仮想読出アドレスVADのアドレス進行よりも遅れてくる。そして、そのかい離幅が所定以上になったとき、切替指示(図中、矢印で示す)が出され、図示のように、該かい離を解消する方向に、実読出アドレスRADを適量シフトする。これによって、実読出アドレスRADのアドレス進行は、ピッチ情報に従う傾きを維持しつつ、仮想読出アドレスVADのアドレス進行に沿って変化し、時間軸方向に圧縮された特性を示す。従って、このような実読出アドレスRADに従って波形テンプレートの波形サンプルデータを読み出すことにより、再生する楽音のピッチは変更せずに、時間軸方向に波形を圧縮した波形信号を得ることができる。
【0140】
図34は、図31(d)と同様の状態を拡大して示す図である。この場合、伸縮比データCRateは1未満であり、太い破線にて示す仮想読出アドレスVADのアドレス進行の傾きは相対的に小さい。従って、時間経過に伴い次第に実読出アドレスRADのアドレス進行が仮想読出アドレスVADのアドレス進行よりも進んできて、そのかい離幅が所定以上になったとき、切替指示(図中、矢印で示す)が出され、図示のように、該かい離を解消する方向に、実読出アドレスRADが適量シフトされる。これによって、実読出アドレスRADのアドレス進行は、ピッチ情報に従う傾きを維持しつつ、仮想読出アドレスVADのアドレス進行に沿って変化し、時間軸方向に伸張された特性を示す。従って、このような実読出アドレスRADに従って波形テンプレートの波形サンプルデータを読み出すことにより、再生する楽音のピッチは変更せずに、時間軸方向に波形を伸張した波形信号を得ることができる。
【0141】
なお、前記かい離を解消する方向への実読出アドレスRADのシフトは、このシフトによって、シフト直前に読み出していた波形データと、シフト直後に読み出す波形データとが滑らかにつながるようにすることが好ましい。また、図中、波線で示すように、切替時の適宜期間で、クロスフェード合成を行うようにするとよい。波線は、クロスフェード副系列用実読出アドレスRAD2のアドレス進行を示す。このクロスフェード副系列用実読出アドレスRAD2は、図示の通り、上記切替指示が出されたとき、シフト前の実読出アドレスRADのアドレス進行の延長上に、実読出アドレスRADと同じレート(つまり傾き)で生成する。適宜のクロスフェード期間において、副系列用実読出アドレスRAD2に対応して読み出される波形から主系列用実読出アドレスRADに対応して読み出される波形まで滑らかに波形が移行するようにクロスフェード合成がなされる。この例の場合、少なくとも所要のクロスフェード期間の間でのみ副系列用実読出アドレスRAD2を生成するようにすればよい。
なお、上記のように一部分でクロスフェード合成を行うTSC制御例に限らず、時間軸伸縮比CRateの値に応じた態様のクロスフェード合成処理を常に行うようにしたTSC制御を採用してもよい。
【0142】
図13〜図15に示したようなパーシャルベクトルPVQの波形テンプレート(つまりループ波形)を繰り返し読み出すことで波形サンプルデータを生成する場合においては、基本的には、ループ回数を可変することによって、比較的簡単に、楽音再生ピッチとは独立に、ループ読み出し波形全体の時間長を可変制御することができる。つまり、クロスフェード区間長を指定するデータによって特定のクロスフェードカーブが特定されると、それに伴ってクロスフェード区間長(時間長若しくはループ回数)が決まってくる。ここで、このクロスフェードカーブの傾きをタイムテンプレートが示す時間軸伸縮比によって可変制御することにより、クロスフェードの速さが可変制御され、結局、クロスフェード区間の時間長が可変制御される。その間、楽音再生ピッチには影響を与えないので、結局、ループ回数が可変制御されることで当該クロスフェード区間の時間長が可変制御される。
【0143】
ところで、時間軸伸縮制御によって、再生波形データの時間軸での存在時間が伸縮制御される場合、この伸縮制御にあわせて、ピッチテンプレート及び振幅テンプレートの時間軸も伸縮制御してやることが望ましい。従って、図30のステップS103,S105においては、ステップS102で作成されたタイムテンプレートに応じて、該ステップで作成するピッチテンプレート及び振幅テンプレートの時間軸を伸縮制御するようにするものとする。
【0144】
なお、楽音合成機能のすべてをソフトウェア音源によって構成せずに、ソフトウェア音源とハードウェア音源のハイブリッドタイプとしてもよい。また、ハードウェア音源装置のみでこの発明に係る楽音合成処理を行うようにしてもよい。あるいは、DSP(ディジタル・シグナル・プロセッサ)を用いてこの発明に係る楽音合成処理を行うようにしてもよい。また、ソフトウェア音源またはハードウェア音源またはそのハイブリッドタイプのいずれの音源方式を用いる場合でも、その波形形成方式は、単純なPCM波形メモリ読み出し方式に限らず、前述の通り、各種のデータ圧縮技術を用いた方式や、各種の波形合成アルゴリズムに従うパラメータ演算による方式など、適宜のものを使用することができる。
【0145】
【発明の効果】
以上の通り、この発明によれば、ビブラートが付与された原波形から分散的に取り出された複数の波形データを記憶した記憶手段と、前記波形データの1つを所定の間で繰返し読み出しし、かつ読み出すべき波形データを順番に切り替えることで、所定の読み出しシーケンスを実行し、かつこの読み出しシーケンスを繰返すことで複数周期にわたるビブラートを実現する読出手段とを備えるものであるから、原波形のビブラート1周期又は複数周期あるいは1周期未満等適宜の範囲から複数の波形データを分散的に取り出して記憶することで、原波形を全部記憶する場合に比べて、記憶手段に記憶する波形データの記憶容量を節約することができ、かつ、分散的な取り出しによって、原波形におけるビブラートの特徴をできる限り反映している高品質なビブラート用の波形データを得ることができる。このように、分散的に取り出された各波形データは、原波形におけるビブラートの特徴を反映しているものであるので、これらの繰り返しと組合せによって得られる楽音波形は、原波形におけるビブラートに匹敵する高品質なビブラートを含むものとなり、また、記憶手段からの各波形データの読み出し方を種々可変制御することにより、ビブラート周期等種々のビブラート要素の制御を多様に行なうことができるので、高品質なビブラート音を制御性豊かに発生することができ、かつ、データ記憶容量も節約することができる、という優れた効果を奏する。
【0146】
また、波形データの読み出し速度を時間的に変化したり、読み出しシーケンスに対応して読み出された波形データの振幅を時間的に変化することにより、ビブラートの深さやそれに伴う振幅変動を制御することができる。また、ビブラート1周期の時間を制御する時間制御データを発生する制御データ発生手段を更に具備し、読出手段において1つの波形データを繰返し読み出しする時間をこの記時間制御データにより可変制御することで、読み出しシーケンスの時間を制御し、ビブラート周期を可変制御することができる。
【0147】
更に、ビブラートの複数周期に対応して、複数の分散的な波形データを記憶した記憶手段と、前記各波形データのビブラート1周期内における相対的時間位置を保ちつつ、各波形データの属するビブラート周期位置を入れ替えることにより、ビブラートの複数周期にわたる各波形データの読み出し順序を任意に可変設定する設定手段と、前記記憶手段から波形データを所定の間で繰返し読み出しし、かつ読み出すべき波形データを前記設定された読み出し順序で順番に切り替えることで、複数周期にわたるビブラートを実現する読出手段とを備えることにより、各波形データのビブラート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 データ及びアドレスバス[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a vibrato generating apparatus and method, for example, related to a technique capable of synthesizing a high-quality musical sound waveform having articulation, and is not limited to an electronic musical instrument. -It can be widely applied as a vibrato generating device and / or method for musical sound or sound generating equipment for various uses such as media equipment.
In this specification, the term “musical sound” is not limited to music sounds, but is used in a broad sense including general sounds such as human voice sounds, various sound effects, and sounds in nature. To do.
[0002]
[Prior art]
In a sound source of a waveform memory reading method (PCM: pulse code modulation method) used for an electronic musical instrument or the like, waveform data of one or a plurality of cycles corresponding to a predetermined tone color is stored in a memory, and the waveform data A continuous musical sound waveform is generated by repeatedly reading at a desired reading speed corresponding to a desired pitch (pitch) of a musical sound to be generated. Also, by storing all waveform data from the start to end of tone generation in a memory and reading out the waveform data at a desired reading speed corresponding to the desired pitch (pitch) of the tone to be generated. One sound is also generated and generated.
In this kind of PCM sound source, when the waveform stored in the memory is simply read out as a musical tone, it is not necessary to generate a musical tone. Conventionally, control has been made for musical tone elements of three categories, timbre. With respect to the pitch, a pitch modulation effect such as vibrato or attack pitch is imparted by appropriately modulating the reading speed according to an arbitrary pitch envelope. Regarding the volume, it is possible to give a volume amplitude envelope according to a required envelope waveform to the read waveform data, or to give a tremolo effect or the like by periodically modulating the volume amplitude of the read waveform data. Done. As for the timbre, appropriate timbre control is performed by filtering the read waveform data.
[0003]
In addition, continuous live performance sounds (phrases) that are actually played live are sampled together and pasted (recorded) on one recording track, and each phrase waveform pasted on multiple tracks is recorded separately. There is also known a multi-track sequencer that reproduces and reproduces an automatic performance sound based on the sequence performance data.
In addition, recording all the musical sound waveform data of an actually played live music as PCM data and reproducing it simply is well known as a music recording method on a CD (compact disc).
[0004]
[Problems to be solved by the invention]
By the way, when a skilled performer of an arbitrary natural musical instrument such as a piano, violin, saxophone, etc. plays a series of musical composition phrases with the musical instrument, the content of the performance sound is not necessarily played with the same musical instrument. , Not uniform, for each sound, at the connection between sounds, or at the rising, continuing or falling part of the sound, depending on the music or the sensitivity of the performer Played with a slightly different “articulation”. The existence of such “articulation” gives the listener the impression of a really good sound.
The music recording method performed by a skilled performer, such as the music recording method in CD, can be reproduced as a complete PCM waveform data, so that a live performance can be reproduced in real and high quality. The “articulation” of the street can be realistically reproduced. However, since it can only be used as a playback device for fixed songs (songs as recorded), it is an interactive device that allows users to create and edit sound freely in electronic musical instruments and multimedia devices. It cannot be used as music creation technology.
[0005]
On the other hand, in the PCM sound source technology known for electronic musical instruments and the like, as described above, it allows the user to create a sound and can give a certain level of expressive power to the generated musical sound. is there. However, in terms of both sound quality and expressiveness, it was insufficient to realize natural “articulation”. For example, generally, in this type of PCM tone generator technology, the waveform data stored in the memory only stores a sample of a single tone played with a natural instrument, so that the tone quality of the generated musical tone is limited. In particular, articulation of the connection between sound and sound during performance or a performance method could not be expressed with high quality. For example, in the case of a slur playing method that smoothly changes from the preceding sound to the next sound, in conventional electronic musical instruments, etc., the volume of the waveform data read speed from the memory is simply changed or the volume to be given to the generated sound It only relies on techniques such as controlling the envelope, and could not achieve articulation or performance with a sound quality comparable to a live performance of a natural instrument. Also, even with the same pitch of the same instrument, depending on the difference in song phrases, or even on the same song phrase, depending on the performance opportunities, etc. However, it has not been possible to express such a subtle articulation difference in the PCM sound source technology known for electronic musical instruments and the like.
[0006]
In addition, the control of generated musical sounds according to performance expressions is relatively monotonous in conventional electronic musical instruments and the like, and is not sufficient. For example, it is known to perform musical tone control according to a performance touch such as a key, but in that case as well, it is only a level that can control the change characteristics of the volume and the characteristics of the timbre filter according to the touch, For example, it has not been possible to freely control the musical sound characteristics for each partial section of the whole sounding section from the rising edge to the falling edge of the musical sound. As for the tone control of the generated sound, once a tone color is selected prior to performance, the waveform data corresponding to the selected tone color is read from the memory. Accordingly, the waveform data corresponding to the timbre was only variably controlled by a filter or the like, so that the timbre change corresponding to the performance expression was not sufficient. In addition, the control envelope waveform such as pitch and volume is controlled by setting the shape and the like with a series of envelopes from the rise to the fall of the envelope as one unit, and operations such as partial replacement of the envelope are free. It is not designed to do so.
[0007]
On the other hand, in the method such as the multi-track sequencer, since the phrase waveform data of the live performance is only pasted, partial editing processing (partial replacement, characteristic control, etc.) of the phrase waveform cannot be performed at all. Also, this could not be used as an interactive musical sound creation technique that allows users to create free sounds in electronic musical instruments, multimedia devices, and the like.
Also, not only musical performance sounds, but also general sounds that exist in nature include abundant subtle “articulations” according to their time courses, etc., but with conventional technology, The articulation of the existing sound could not be skillfully reproduced.
[0008]
Further, the conventional typical vibrato imparting technique is such that the speed at which the musical sound waveform is read from the waveform memory is periodically modulated according to the vibrato frequency, and only a monotonous vibrato sound can be generated. On the other hand, it is conceivable to record the original waveform to which vibrato was originally added to the memory and to reproduce and read it, but in that case, the controllability during reproduction was poor. In addition, the recording capacity of the memory increases.
[0009]
The present invention has been made in view of the above points, and is intended to provide a vibrato generating apparatus and method capable of generating high-quality vibrato sound with rich controllability and saving data storage capacity. To do. Realistic reproduction of “articulation” when musical sounds (including musical sounds as well as other general sounds) are generated using electronic musical instruments and electronic devices. In addition, we provide interactive high-quality music creation technology that allows users to freely create and edit sound in electronic musical instruments and multimedia devices, and at the time of waveform generation based on such technology An object of the present invention is to provide a vibrato generating apparatus and method capable of efficiently generating a high-quality vibrato sound.
[0010]
In the present specification, the term “articulation” is used in a generally known meaning, for example, “syllable”, “connection between sounds”, “a group of multiple sounds ( Phrase) "," partial characteristics of sound "," pronunciation technique "," performance technique "," performance expression ", etc.
[0011]
[Means for Solving the Problems]
The vibrato generating device according to the present invention is an original waveform to which vibrato is applied. 1 cycle of vibrato Storage means for storing a plurality of waveform data taken out in a distributed manner, and one of the waveform data Repeat Read means for performing return reading and executing predetermined read sequence by sequentially switching waveform data to be read, and realizing vibrato over a plurality of cycles by repeating this read sequence Control data generating means for generating control data indicating a temporal change in pitch during one vibrato period; With The reading means temporally changes the reading speed of the waveform data in accordance with the control data. .
[0012]
This makes the vibrato one round of the original waveform Period Therefore, the storage capacity of the waveform data stored in the storage means can be saved compared with the case where all the original waveforms are stored, and the waveform data is distributed and extracted. Thus, high-quality vibrato waveform data reflecting the vibrato characteristics of the original waveform as much as possible can be obtained. And one of these waveform data Repeat A predetermined read sequence is executed by sequentially switching the waveform data to be read and read, and a vibrato over a plurality of cycles can be realized by repeating this read sequence. Since each waveform data extracted in a distributed manner reflects the characteristics of the vibrato in the original waveform, the tone waveform obtained by repeating and combining these is a high-quality vibrato comparable to the vibrato in the original waveform. Will be included. Here, various control of various vibrato elements such as a vibrato cycle can be performed by variously controlling how to read out each waveform data from the storage means. Therefore, according to the present invention, it is possible to generate a high-quality vibrato sound with high controllability and to save data storage capacity.
[0013]
Also, during one vibrato cycle Generates control data indicating the change in pitch over time And According to this control data, the reading speed of the waveform data is changed with time. As a result, the vibrato mode can be controlled in various ways. . Further, control data generating means for generating control data indicating temporal changes in amplitude corresponding to the read sequence, and the amplitude of the waveform data read by the read means are temporally controlled according to the control data. An amplitude control means may be further provided. This makes it possible to control the vibrato depth and the accompanying amplitude fluctuation. Further, it further comprises control data generating means for generating time control data for controlling the time of one cycle of vibrato, and the time for repeatedly reading one waveform data in the reading means is variably controlled by this recording time control data, The read sequence time may be controlled to variably control the vibrato cycle. Further, cross-fade synthesizing means may be provided for cross-fade synthesizing both the preceding waveform data and the subsequent waveform data while repeatedly reading them between predetermined times.
[0014]
According to another aspect of the present invention, there is provided a vibrato generating device for a plurality of cycles of vibrato. Over a range Correspondingly, A plurality of vibrato cycles in the range were taken out in a distributed manner. Storage means for storing waveform data, and each waveform data each Each waveform data belongs while maintaining the relative time position within one vibrato period. Should Vibrato cycle Within the above range Setting means for arbitrarily variably setting the readout order of each waveform data over a plurality of cycles of vibrato by exchanging positions, and waveform data from the storage means Repeat Readout means is provided, and reading means that realizes vibrato over a plurality of cycles by sequentially switching the waveform data to be read out in the set reading order. In this way, each waveform data belongs while maintaining the relative time position within one vibrato cycle of each waveform data. Should Vibrato cycle Within the above range By exchanging positions, it is possible to synthesize vibrato sounds in various combinations without giving a sense of incongruity.
[0015]
The musical sound data creation and musical tone synthesis technology according to the present invention analyzes a musical articulation, performs musical tone editing and synthesis processing in units of articulation elements, and models the musical articulation as a musical tone. It is a composition. Therefore, this technique is referred to as SAEM (Sound Articulation Element Modeling) technique.
The present invention can be configured and implemented not only as a method invention but also as a device invention. In addition, the present invention can be implemented in the form of a computer program or in the form of a recording medium storing such a computer program. Furthermore, the present invention can also be implemented in the form of a recording medium storing waveform or musical tone data having a novel data structure.
The vibrato sound generation technique proposed in the present invention is not limited to a high-quality waveform including articulation, but can be applied to a musical sound waveform composed of other general waveforms.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[Example of creating a musical sound database]
As described above, when a skilled performer of an arbitrary natural musical instrument such as a piano, violin, saxophone performs a series of music phrases using the musical instrument, the content of the performance sound is, for example, being played by the same musical instrument. Nonetheless, it is not uniform, for each sound, at the connection between sounds, or at the rising, continuing, or falling part of the sound, depending on the music or the sensitivity of the performer Depending on the performance, it is played with a slightly different “articulation”. The existence of such “articulation” gives the listener the impression of a really good sound.
In the case of musical instrument performance, “articulation” generally appears as a reflection of the “performance method” or “performance expression” by the performer. Therefore, in the following description, it is preliminarily understood that the terms “performance style” or “performance expression” and “articulation” may both be used to mean substantially the same thing. For example, there are various other “playing styles” such as staccato, tenuto, slur, vibrato, tremolo, crescendo, decrescendo. When a performer plays a series of musical phrases with an instrument, various performance methods are used in each performance phase according to the instructions of the score or according to his / her sensibility, and “articulation” corresponding to each performance method is generated.
[0017]
An example of a procedure for creating a musical sound database according to the present invention is shown in FIG.
The first step S1 is a step of sampling a series of performance sounds composed of one or a plurality of musical sounds. Here, for example, a skilled performer of a specific natural musical instrument plays a predetermined series of musical phrases with the musical instrument. The series of performance sounds are picked up by a microphone and sampled according to a predetermined sampling frequency to obtain PCM-encoded waveform data for the entire performance phrase. This waveform data is high-quality data that is excellent in terms of music. For the sake of explanation, FIG. 2A shows an example of a musical score of a series of music phrases played for sampling in step S1. “Performance symbols” added to the upper side of the score in FIG. 2A exemplarily show how the music phrase shown in the score is played. Such a musical score with “performance style symbols” is not indispensable for the sampling in step S1. A performer plays the musical phrase according to a normal score, and then analyzes the sampled waveform data to determine the performance method in each performance phase according to the passage of time, and creates a score with such performance symbols. You may do it. As will be described later, such a score with a performance style symbol is not useful for sampling in step S1, but rather is desired by a general user from a database created based on the data sampled here. It is thought that it will greatly help the general user in extracting data and connecting them to create a desired performance sound. However, in order to exemplarily explain how the phrase shown in the score of FIG. 2 (a) is played, the meaning of the rendition style symbols illustrated in FIG. 2 will be described here.
[0018]
A black circle performance symbol drawn corresponding to the three notes in the first measure indicates a “stacart” performance, and the size of the black circle indicates the volume level.
The rendition symbol drawn with the letters “Atack-Mid, No-Vib” corresponding to the next note describes a rendition of “medium attack, no vibrato”.
The rendition symbols drawn with the letters “Atk-Fast, Vib-Soon-Fast, Release-Smoothly” corresponding to the notes connected by slurs in the second half of the second measure are “attack quickly rises, vibrato The performance technique is described as “Immediately fast and release smoothly”.
A rendition style symbol consisting of an oval black circle in the 3rd bar indicates a “tenuto” performance style. In the third measure, a performance style symbol indicating that the volume is gradually decreased and a performance style symbol indicating that a vibrato is added at the end of the sound are also described.
As described above, it can be understood that various performance methods or performance expressions, that is, articulations are used even in a musical phrase having a length of about three measures.
In addition, how to express these performance style symbols is not restricted to this, and what is necessary is just to be able to express the performance style in some form. Symbols that represent a certain level of performance style are also used in conventional musical score notation, but it is desirable to employ more precise performance style symbols than in the past in the practice of the present invention.
[0019]
In FIG. 1, the next step S2 is a step of dividing a series of sampled performance sounds into a plurality of time sections each having a variable length according to the characteristics (ie, articulation) in the performance expression. This is completely different from the method of dividing and analyzing the waveform data at regular regular time frames as known in, for example, Fourier analysis. In other words, since articulation that exists in a series of sampled performance sounds is diverse, the time range of the sound corresponding to each articulation is not a uniform time length, but can be arbitrarily variable. It consists of a length of Therefore, dividing a series of sampled performance sounds into multiple time intervals according to the characteristics (ie, articulation) of the performance expression means that the length of each divided time interval is variable. It becomes.
[0020]
(B), (c), and (d) of FIG. 2 exemplify the division example of such a time section hierarchically. FIG. 2B shows a relatively large mass of articulation (this is called “articulation unit” for the sake of convenience, and is indicated by the
[0021]
For example, AS # 1, AS # 2 and AS # 3 are applied to the attack part, first body part, and second body part of one sound (slur's preceding sound) constituting the
[0022]
Articulation minimum units AS # 1 to
[0023]
In FIG. 1, the next step S3 analyzes the waveform data for each of the divided time intervals (articulation minimum units AS # 1 to
In the next step S4, data indicating the characteristics of each generated element is accumulated in the database. In the database, these accumulated data can be used as template data for musical tone synthesis.
An example of how to analyze these musical tone elements is as follows. An example of data (template data) indicating the characteristics of each musical tone element is as shown in FIG. FIG. 2E also illustrates the types of musical tone elements that are analyzed from one minimum articulation unit.
[0024]
{Circle around (1)} For the waveform (tone color) element, the original PCM waveform data in the time interval (articulation element) is taken out as it is. This is stored in the database as a waveform template (Timbre template). “Timbre” is used as a symbol indicating the waveform (timbre) element.
(2) For the amplitude (volume) element, the volume envelope (change in volume amplitude over time) of the original PCM waveform data in the time interval (articulation element) is extracted to obtain amplitude envelope data. This is stored in the database as an amplitude template (Amp template). “Amp” (abbreviation of Amplitude) is used as a symbol indicating the amplitude (volume) element.
{Circle around (3)} For the pitch (pitch) element, the pitch envelope data (pitch change according to the passage of time) of the original PCM waveform data in the time interval (articulation element) is extracted to obtain pitch envelope data. This is stored in the database as a pitch template. “Pitch” is used as a symbol indicating the pitch element.
[0025]
(4) For the time element, the time length of the original PCM waveform data in the time interval (articulation element) is used as it is. Therefore, if the original time length (variable value) of the section is indicated by the ratio “1,” it is not necessary to analyze and measure this time length when creating the database. In this case, since the data about the time element, that is, the time template (TSC template) has the same value “1” in any section (articulation element), it may not be stored in the template database. Of course, the present invention is not limited to this, and it is possible to implement a modification in which the actual time length is analyzed and measured and stored in the database as time template data.
[0026]
By the way, as a technique for variably controlling the original time length of the waveform data, a control for expanding or compressing the waveform data in the time axis direction without affecting the pitch of the waveform data has not been disclosed yet. The present inventors have already proposed “Stretch & Compress” control (“TSC control” for short). In this embodiment, such “TSC control” is used, and TSC used as a symbol of a time element is this abbreviation. At the time of musical tone synthesis, the time length of the reproduced waveform signal can be variably controlled by setting the TSC value to another appropriate value without fixing the TSC value to “1”. In that case, the TSC value may be given as a time-varying value (for example, an appropriate time function such as an envelope). Note that this TSC control can be used when, for example, the time length of a portion of the original waveform to which a special performance method such as vibrato or slur is applied is variably controlled.
[0027]
The processing described above is performed for various natural musical instruments with various performance methods (various musical phrases), and a template is created for each musical sound element for each of the many articulation elements for each natural musical instrument. These are stored in the database. In addition to natural instruments, various sounds that exist in nature, such as human voices and thunder sounds, are subjected to the sampling and articulation analysis processes described above. Template data may be stored in a database. Of course, the phrase that is played live for sampling is not limited to a phrase consisting of several measures as in the above example, but a shorter phrase (for example, one phrasing unit as shown in FIG. 2B) if necessary. ), Or on the contrary, one whole piece of music.
[0028]
As shown in FIG. 4, for example, the configuration of the database DB is roughly divided into a template database TDB and an articulation database ADB. As is well known, the database DB hardware is a readable / writable storage medium (preferably a large capacity medium) such as a hard disk device or a magneto-optical disk device.
The template database TDB stores a large number of template data created as described above. Note that the template data stored in the template database TDB does not necessarily have to be based on the performance sound or natural sound sampling and analysis as described above. In short, the template data is prepared in advance as a template (prepared data). It may be anything that has been created, and may be created arbitrarily by data editing work. For example, a TSC template for a time element is normally “1” as described above as long as it is based on a sampled performance sound, but can be created with a free change pattern (envelope). Therefore, various TSC values or envelope waveforms of their temporal changes may be created as TSC template data and stored in the database. Also, the template types stored in the template database TDB are not limited to those corresponding to specific elements analyzed from the original waveform as described above, and other types of templates are appropriately selected for the convenience of tone synthesis. May increase. For example, when tone color control is performed using a filter at the time of musical tone synthesis, a large number of filter coefficient sets (including time-varying filter coefficient sets) are prepared as template data and stored in the template database TDB. It's okay. Of course, such a filter coefficient set may be created based on the analysis of the original waveform, or may be created by other appropriate means.
[0029]
The data structure of each template data stored in the template database TDB includes data representing the contents of each template data as illustrated in FIG. For example, a waveform (Timbre) template is PCM waveform data itself. In addition, envelope waveforms such as an amplitude (Amp) envelope, a pitch (Pitch) envelope, and a TSC envelope may also be obtained by PCM encoding the envelope shape. However, in order to compress the data storage configuration of the template of the envelope waveform shape in the template database TDB, parameter data for approximating the envelope waveform to a polygonal line (data indicating the slope rate of each polygonal line and the target level or time as known in the art) These template data may be stored in the form of
[0030]
The waveform (Timbre) template may also be stored in an appropriate data compressed format other than PCM waveform data. Further, the waveform, that is, the timbre template data may be stored in another appropriate data format. That is, the waveform (Timbre) template data may be, for example, waveform data in a compressed format other than the PCM format, such as DPCM or ADPCM, or a waveform formation that does not directly indicate the waveform sample value. Data, that is, parameters for waveform synthesis. Waveform synthesis methods using such parameters include Fourier synthesis, FM (frequency modulation) synthesis, AM (amplitude modulation) synthesis, physical model sound source, or SMS waveform synthesis (waveform synthesis using deterministic and uncertain components). In this case, any one of these waveform synthesis methods may be employed, and the waveform synthesis parameters for this may be stored in the database as waveform (Timbre) template data. In this case, the waveform forming process based on the waveform (Timbre) template data, that is, the waveform synthesis parameter, is naturally performed by a corresponding waveform synthesis arithmetic device or program. In that case, a plurality of waveform synthesis parameter sets for forming a waveform of a desired shape are stored corresponding to one articulation element, that is, a time interval, and the parameter set used for waveform synthesis is stored in time. By switching according to the progress, the time variation of the waveform shape in one articulation element may be realized.
[0031]
Even when the waveform (Timbre) template is stored as PCM waveform data, when a known loop reading technique can be employed (for example, the timbre waveform is stable and does not change much time as in the body portion). As for the waveform data for the portion, only a part of the waveform data may be stored without storing all the waveforms in the section. Also, if the contents of the template data for different time intervals, ie, articulation elements, obtained as a result of sampling and analysis are the same or similar, each template data is not stored in the database TDB, but only one Is stored, and is shared during musical tone synthesis, so that the storage amount of the database TDB can be saved. The configuration of the template database TDB may include a preset area created in advance by a basic database supplier (for example, an electronic musical instrument manufacturer), a user area that can be freely created by the user, and the like.
[0032]
The articulation database ADB provides data describing articulations (ie, data describing a series of performances by a combination of one or more articulation elements) to build a performance that includes one or more articulations. And data describing each articulation element) corresponding to various performance cases and performance methods.
In the block of FIG. 4, a database configuration for a certain instrument sound named “
[0033]
The articulation element vector AEVQ is an index of template data for each musical tone element for all articulation elements prepared (accumulated) in the template database TDB for the instrument sound (Instrument 1). This is stored in the form of vector data indicating a template (for example, in the form of address data for extracting a required template from the template database TDB). For example, as shown in the examples of FIGS. 2D and 2E, each element (waveform) constituting a partial musical tone corresponding to an articulation element AS # 1 corresponding to a certain articulation element AS # 1. , Amplitude, pitch, time) vector data (this is referred to as an element vector) that specifically designates four templates Timbre, Amp, Pitch, and TSC.
[0034]
In one articulation element sequence (performance style sequence) AESEQ, indexes of a plurality of articulation elements are described in the order of performance, and a set of templates constituting each articulation element described therein is as follows. It can be derived by referring to the articulation element vector AEVQ.
FIG. 5A shows an example of several articulation element
[0035]
ATT-Nor indicates “normal attack” (a playing technique in which the attack part rises normally).
BOD-Vib-nor indicates “body normal vibrato” (a performance method in which a standard vibrato is attached to the body portion).
BOD-Vib-dep1 indicates “
BOD-Vib-dep2 indicates “
REL-Nor indicates “normal release” (a performance method in which the release part falls as a standard).
[0036]
Therefore, the
For the other
For reference, the meanings of the symbols of some other articulation elements shown in FIG. 5A will be described as follows.
[0037]
BOD-Vib-spd1 indicates “
BOD-Vib-spd2 indicates “
BOD-Vib-d & s1 indicates "body vibrato depth &
BOD-Vib-bri indicates “body vibrato brilliant” (a performance method in which vibrato is added to the body portion and the tone is flashy).
BOD-Vib-mld1 indicates “body vibrato mild 1” (a performance method in which vibrato is added to the body portion and the tone is slightly mild).
BOD-Cre-nor indicates “body normal crescendo” (a performance method in which a standard crescendo is added to the body portion).
BOD-Cre-vol1 indicates “
ATT-Bup-nor indicates “attack bend-up normal” (playing method in which the pitch of the attack portion is bent up at a standard depth and speed).
REL-Bdw-nor indicates “release bend down normal” (playing method in which the pitch of the release portion is bent down at a standard depth and speed).
[0038]
Therefore, the
Further, the
The
The
The
The
The articulation element sequence (playing style sequence) is not limited to the above, and there may be many types, but not shown in detail.
[0039]
FIG. 5B shows a configuration example of the articulation element vector AEVQ related to several articulation elements. How to read this figure will be described. In parentheses, vector data indicating a template corresponding to each element is described. The head symbol in each vector data indicates the type of the template. That is, Timb indicates a waveform (Timbre) template, Amp indicates an amplitude (Amp) template, Pit indicates a pitch template, and TSC is a time (TSC) template. It shows that.
[0040]
For example, ATT-Nor = (Timb-A-nor, Amp-A-nor, Pit-A-nor, TSC-A-nor) is an articulation element ATT-Nor having the meaning of "normal attack" Timb-A-nor (standard waveform template of attack part), Amp-A-nor (standard amplitude template of attack part), Pit-A-nor (standard pitch template of attack part), TSC- It shows that the waveform is synthesized by four templates of A-nor (standard TSC template of the attack part).
[0041]
As another example, the articulation element BOD-Vib-dep1 having the meaning of “
As another example, the articulation element REL-Bdw-nor having the meaning of “release bend down normal” is Timb-R-bdw (waveform template for bend down of the release part), Amp-R. -Bdw (amplitude template for bend down of release part), Pit-R-bdw (pitch template for bend down of release part), TSC-R-bdw (TSC template for bend down of release part) Waveform synthesis is performed by the template.
[0042]
In order to facilitate editing of articulation, attribute information ATR that schematically explains the characteristics of each articulation element sequence is stored in association with each articulation element sequence AESEQ. Good. Similarly, attribute information ATR that schematically explains the characteristics of each articulation element may be stored in association with each articulation element vector AEVQ.
In short, such attribute information ATR describes the characteristics of each articulation element (the minimum unit of articulation as shown in FIG. 2D). An example of the articulation element related to the attack part is an example of each vector data indicating the symbol (index) of the articulation element, the contents of each attribute information ATR, and the template of each musical element. It is shown in FIG.
[0043]
In the example of FIG. 6, the attribute information ATR is also managed hierarchically. That is, all the articulation elements related to the attack part are given the common attribute information “attack”, the attribute information “normal” is further given to the standard elements, and of those, The attribute information “bend up” is assigned to the element to which the bend-up performance is applied, and the attribute information “bend down” is assigned to the element to which the bend-down performance is applied. Furthermore, among the elements to which the bend-up technique is applied, the attribute information “normal” is given to the standard element, and “depth / shallow” is given to the element whose bend depth is shallower than the standard element. Attribute information is added, attribute information "depth / deep" is given to those with a deeper bend than standard, and attribute "speed / slow" is given to those with a slower bend speed than standard Information is given, and attribute information of “speed / fast” is given to those whose bend speed is faster than the standard. Although illustration is omitted, further subdivided attribute information is similarly given to elements to which the bend down performance method is applied.
[0044]
FIG. 6 also shows that some template data is shared between different articulation elements. In FIG. 6, vector data (in other words, template index) of four types of templates described in each index (articulation element index) column of rendition form a partial sound of the articulation element. The vector data designating the template is shown in the same manner as FIG. 5B. Here, in an element having a bend-up attribute, an element with a = sign means that the same template as that in the normal state is used. For example, the bend-up performance waveform templates (Timbre) are all the same as the bend-up normal waveform template Timb-A-bup. Also, the same amplitude (Amp) template for bend-up performance as the amplitude template Amp-A-bup for bend-up normal is used. This is because even if the bend-up performance changes slightly, the waveform or amplitude envelope does not change, and it is possible to use a common one in terms of sound quality. On the other hand, different pitch templates must be used according to the depth of bend-up performance. For example, in the articulation element ATT-Bup-dp1 having the attribute of “depth / shallow”, in order to indicate a corresponding pitch template (a template of a pitch envelope corresponding to a shallow bend-up characteristic), Vector data Pit-A-dp1 indicating a pitch envelope template corresponding to a shallow bend-up characteristic is used.
[0045]
Thus, by sharing the template data, the storage amount of the template database TDB can be saved. Moreover, it is not necessary to record live performances for all performance methods when creating a database.
Referring to FIG. 6, it can be understood that the speed of the bend-up performance is adjusted by changing the time (TSC) template. Since the pitch bend speed corresponds to the time required to reach the target pitch from the predetermined initial pitch, the original waveform data is bent from the predetermined initial pitch to the target pitch within a certain time. If the time length of the original waveform data is variably controlled by TSC control, the time required to reach the target pitch from the initial pitch, that is, the bend speed can be adjusted. Waveform time length variable control using such a time (TSC) template is suitable for adjusting the speed of various performance methods such as the speed at which a musical sound rises, the speed of a slur, and the speed of vibrato. For example, a pitch change in a slur can be realized by a pitch template, but a natural slur change can be realized by performing TSC control using a time (TSC) template.
[0046]
The articulation element vector AEVQ in the articulation database ADB can of course be addressed by the articulation element index, and can be addressed by the attribute information ATR. Thus, by searching the articulation database ADB using the desired attribute information ATR as a keyword, it is possible to search for an articulation element having an attribute corresponding to the keyword, Convenient for user data editing work. Such attribute information ATR may be added to the articulation element sequence AESEQ. Thus, by searching the articulation database ADB using desired attribute information ATR as a keyword, an articulation element sequence AESEQ including an articulation element having an attribute corresponding to the keyword can be searched. it can.
Of course, the articulation element index for addressing the articulation element vector AEVQ in the articulation database ADB is given according to the reading of the articulation element sequence AESEQ. The desired articulation element index may be addressed alone for work or for free real-time sound creation.
[0047]
The articulation database ADB also has an area for storing a user articulation element sequence URSEQ so that the user can create a desired articulation element sequence and store it. In such a user area, articulation element vector data created by the user may be stored.
In the articulation database ADB, a partial vector PVQ is stored as vector data subordinate to the articulation element vector AEVQ. If the template data specified by the articulation element vector AEVQ is stored as a part of the data in the template database TDB, not as a part of the entire time interval of the articulation element, The template data is loop-read (repeatedly read) to reproduce the data for the entire time section of the articulation element. Data necessary for such loop reading is stored as a partial vector PVQ. In that case, for example, the articulation element vector AEVQ stores data indicating the partial vector PVQ in addition to the above template data, and the partial vector PVQ data is read by this partial vector instruction data. The loop readout is controlled by the data of the vector PVQ. Therefore, the partial vector PVQ includes data indicating a loop start address and a loop end address necessary for loop read control.
[0048]
Further, the articulation database ADB stores rule data RULE describing rules for connecting waveform data between temporally adjacent articulation elements at the time of musical tone synthesis. For example, when connecting cross-fade waveforms between adjacent articulation elements for smooth connection, connecting directly without performing cross-fade interpolation, or performing cross-fade waveform interpolation The rules such as what crossfade method to use are stored for each sequence or each articulation element in the sequence. This connection rule can also be a target of data editing by the user.
In the articulation database ADB, an articulation database having a data structure as described above is provided for each instrument sound (natural instrument tone), and various human voices (young female voice, young female voice) It is provided for each male voice, baritone, soprano, etc., and for each natural sound (thunder, wave, etc.).
[0049]
[Outline of music synthesis]
FIG. 7 shows an outline of a procedure for synthesizing musical sounds using the database DB created as described above.
First, a required performance style sequence corresponding to a musical tone performance to be generated (a performance phrase consisting of a plurality of sounds or a single sound) may be instructed (step S11). This rendition sequence instruction is directed to selectively indicating one of the articulation element sequences AESEQ or URSEQ of a desired musical instrument sound (or human voice sound or natural sound) stored in the articulation database ADB. It may be.
[0050]
Such a performance style sequence (ie, articulation element sequence) instruction may be given based on a real-time performance operation by the user, or may be given based on automatic performance data. It may be. In the former case, for example, various performance style sequences are pre-assigned to the keyboard and other performance operators, and the performance style sequence instruction data assigned thereto is generated according to the operation of the operator. can do. In the latter case, as one method, as shown schematically in FIG. 8A, rendition style sequence instruction data is incorporated as event data in the automatic performance sequence data in the MIDI format or the like corresponding to the desired music piece. It is possible to memorize and to read out each rendition style sequence instruction data at each predetermined event playback time during automatic performance playback. In FIG. 8, DUR is duration data indicating a time interval until the next event, EVENT is event data, MIDI is performance data attached to the event data in MIDI format, and AESEQ is the event data. Indicates that the attached performance data is rendition style sequence instruction data. In this case, an ensemble between an automatic performance based on automatic performance data such as MIDI format and an automatic performance based on a performance style sequence according to the present invention can be performed. In this case, for example, the main solo or melody performance musical instrument part can be performed by a performance sequence according to the present invention, that is, the articulation element synthesis, and the other musical instrument part can be performed by automatic performance based on MIDI data. .
[0051]
As another method of the latter, as schematically shown in FIG. 8B, only a plurality of rendition style sequence instruction data AESEQ corresponding to a desired music piece is stored in an event data format, and this is stored in a predetermined manner. You may make it read at each event reproduction | regeneration time. As a result, it is possible to perform an articulation sequence automatic performance of music, which was not possible in the past.
Further, as another method of the latter, only automatic performance sequence data such as MIDI format corresponding to the desired music is stored, and this automatic performance sequence data is analyzed by a performance interpretation program, so that each phrase or note is recorded. The rendition style, that is, articulation, may be automatically analyzed, and rendition style sequence instruction data may be generated as a result of this analysis.
As another method for instructing a rendition style sequence, the user inputs one or more desired attribute information, and searches the articulation database ADB using this as a keyword to search for one or more articulation elements. The sequence AESEQ may be automatically listed, and a desired sequence may be selected and specified from the list.
[0052]
In FIG. 7, in the selected articulation element sequence AESEQ or URSEQ, an articulation element (AE) index is read according to a predetermined performance order (step S12).
Then, an articulation element vector (AEVQ) corresponding to the read articulation element (AE) index is read (step S13).
Then, each template data designated by the read articulation element vector (AEVQ) is read from the template database TDB (step S14).
[0053]
Then, waveform data (partial sound) of one articulation element (AE) is synthesized in accordance with each read template data (step S15). This waveform synthesis method basically reads PCM waveform data corresponding to waveform (Timbre) template data from a template database TDB at a reading speed according to a pitch template and a time length according to a time (TSC) template, The amplitude envelope of the read PCM waveform data is controlled according to an amplitude (Amp) template. In this embodiment, the waveform (Timbre) template data stored in the template database TDB has the pitch, amplitude envelope, and time length of the sampled original waveform as they are, so that the pitch (Pitch) template, amplitude ( Amp) template and time (TSC) template, if not changed from the sampled original waveform, the PCM waveform data corresponding to the waveform (Timbre) template data stored in the template database TDB is read as it is What becomes the waveform data for the articulation element. When one of the pitch (Pitch) template, amplitude (Amp) template, and time (TSC) template is changed from the sampled original waveform by data editing to be described later, according to the change amount, The reading speed of the waveform (Timbre) template data stored in the template database TDB is variably controlled (when the pitch template is changed), or the reading time length is variably controlled (when the time template is changed). The amplitude envelope for the readout waveform is variably controlled (when the amplitude template is changed).
When the above partial vector PVQ is applied to the articulation element AE, necessary loop read control is also performed.
[0054]
Next, the process of sequentially connecting the waveform data of each articulation element synthesized as described above is performed, and as a result, a series of performance sounds consisting of time-series combinations of a plurality of articulation elements is generated. (Step S16). The connection process here is controlled according to the rule data RULE stored in the articulation database ADB. For example, when the rule data RULE directs direct connection, the waveform data of each articulation element synthesized in step S15 need only be switched in sequence according to the generation order. If the rule data RULE indicates a predetermined crossfade interpolation, the waveform data at the end of the preceding articulation element and the beginning of the subsequent articulation element are in accordance with the specified interpolation format. The waveform data is cross-fade interpolated and synthesized so that the waveforms are smoothly connected. For example, when the sampled original waveform is connected as it is, since it is guaranteed that the articulation elements are connected smoothly from each other, the rule data RULE may instruct direct connection. In other cases, it is not guaranteed that the articulation elements are smoothly connected to each other, and it is preferable to perform some kind of interpolation synthesis. As will be described later, one of a plurality of types of cross-fade interpolation can be arbitrarily selected by rule data RULE.
[0055]
A series of performance sound synthesis processes as schematically shown in steps S11 to S16 are performed on one musical sound synthesis channel for one instrument sound (or human voice sound or natural sound). When performing performance sound synthesis processing for a plurality of instrument sounds (or human voice sounds or natural sounds) in parallel, a series of performance sound synthesis processing as schematically shown in steps S11 to S16 is time-divisionally performed on a plurality of channels. Or in parallel. As will be described later, when a musical sound waveform is formed using a cross-fade synthesis process, two waveform generation channels (a channel that generates a fade-out waveform and a waveform that fades in) are generated for each musical tone synthesis channel. Channel).
[0056]
FIG. 9 schematically shows examples of combinations of articulation elements in several performance style sequences. The rendition
[0057]
FIG. 10 is a time chart showing a specific example of processing for sequentially generating partial sound waveforms corresponding to a plurality of articulation elements and cross-fade connection in one musical tone synthesis channel. Specifically, two waveform generation channels are used in order to crossfade two element waveforms for one tone synthesis channel. FIG. 10A shows an example of waveform generation in the first waveform generation channel, and FIG. 10B shows an example of waveform generation in the second waveform generation channel. In (a) and (b), the “synthesized waveform data” shown in the upper part of each is a waveform (Timbre), amplitude (Amp) as a partial sound waveform corresponding to the articulation element. ), Pitch (Pitch), time (TSC), and the like, which are synthesized based on template data (for example, waveform data synthesized in step S15 in FIG. 7), are shown in the lower part of each. “Crossfade control waveform” indicates a control waveform used to crossfade partial sound waveforms corresponding to each element. This “cross fade control waveform” is formed in the process of step S16 in the flow of FIG. 7, for example. By controlling the amplitude of the upper element waveform data by the lower crossfade control waveform of each channel, and adding the waveform data after the crossfade amplitude control of each channel (first and second waveform generation channels), Crossfade synthesis is complete.
[0058]
When one rendition style sequence is started, a sequence start trigger SST is given, and in response to this, synthesis of a partial sound waveform corresponding to the first articulation element (assuming A # 1) of the sequence is started. . That is, the waveform data is synthesized based on each template data such as the waveform (Timbre), amplitude (Amp), pitch (Pitch), time (TSC), etc. for the articulation element. Therefore, in the figure, “synthesized waveform data” is simply shown as a block, but actually, a waveform corresponding to the waveform (Timbre) template data, an amplitude envelope corresponding to the amplitude (Amp) template data, and It has a pitch corresponding to the pitch (Pitch) template data, its temporal change, and a time length corresponding to the time (TSC) template data.
The rise of the crossfade control waveform may rise immediately at the full level as shown in the figure for the first articulation element waveform of the sequence. However, if it is desired to crossfade with the last waveform of the performance sound of the previous sequence, a fade-in characteristic with an appropriate slope may be provided at the rising edge of the first crossfade control waveform of the sequence. The slope of this fade-in is set by the fade-in
[0059]
Corresponding to the first articulation
[0060]
When the generation process of the element
After the waveform data of the preceding articulation
[0061]
When the generation process of the element
Hereinafter, similarly, each articulation element is connected in order of the time series of the sequence while sequentially crossfading.
[0062]
In the above example, crossfade synthesis is performed on the element waveform synthesized based on each template. However, the present invention is not limited to this, and crossfade processing may be performed for each template data, and the element waveforms may be synthesized based on the template data that has been subjected to crossfade processing. In that case, it is possible to apply different connection rules for each template even for the same element. That is, the above connection control information (fade in rate FIR, next channel start point NCSP, fade out start point FOSP, fade out rate FOR) is the waveform (Timbre), amplitude (Amp), pitch (Pitch), time of the element concerned. It is prepared for each template corresponding to each musical tone element such as (TSC). In this way, cross-fade connection can be performed according to the optimum connection rule corresponding to each template, which is effective.
[0063]
[Edit]
FIG. 11 schematically shows an example of the data editing process. In FIG. 11, an articulation
The base sequence AESEQ # x can be selected from a number of sequences AESEQ (see, for example, FIG. 5A) stored in the articulation database ADB. The articulation data editing broadly includes replacement or addition or deletion of articulation elements in the sequence, and creation of a new template by replacing a template in the element or modifying data values of an existing template.
[0064]
In the edit column of FIG. 11, the articulation
[0065]
Next, the template data corresponding to the desired musical tone element in the desired element (for example, the replaced element R # x) is replaced with another template data related to the musical tone element. The example of FIG. 11 shows that the pitch (Pitch) template of the element R # x is replaced with another pitch template Pitch ′ (for example, a pitch template having pitch bend characteristics). As a result, the newly created element R # x ′ of the release part has an amplitude envelope characteristic that falls relatively quickly and a pitch bend down characteristic. In the case of template replacement, referring to the attribute information ATR, from among each template (vector data) of element groups having the same attribute in many articulation element vectors AEVQ (for example, FIG. 5B), A desired template (vector data) to be used for replacement can be selected.
Note that a new element R # x ′ created by replacing a part of the template is given a new index and necessary attribute information, and the articulation element vector AEVQ in the articulation database ADB (see FIG. 4). It is good to register additionally in the area.
[0066]
It is also possible to modify the specific data content of the desired template. In this case, the specific data content of the desired template for the element being edited is read from the template database TDB, displayed on a display or the like, and the data content is appropriately changed by operating the keyboard or mouse. When the desired data correction is completed, a new index is added to the corrected template data and additionally registered in the template database TDB, and new vector data is assigned to the corrected template data. A new index and necessary attribute information are assigned to a new element including data (for example, R # x ′), and additionally registered in the area of the articulation element vector AEVQ (see FIG. 4) of the articulation database ADB. It is good to do.
[0067]
As described above, the data editing process for creating new sequence data by appropriately changing the content of the base sequence AESEQ # x can be performed. New sequence data created by such data editing processing is given a new sequence number (for example, URSEQ # x) and attribute information as a user articulation element sequence URSEQ, and is registered in the articulation database ADB. Thereafter, at the time of tone synthesis, the data of the user articulation element sequence URSEQ can be read from the articulation database ADB using the sequence number URSEQ # x.
Note that the form of data editing is not limited to that illustrated in FIG. 11, and there may be various forms. For example, a desired sequence may be sequentially selected from the element vector AEVQ without calling up the base sequence AESEQ, thereby creating a user sequence URSEQ.
[0068]
FIG. 12 is a flowchart showing an outline of a computer program that can execute the data editing process as described above.
In step S21, a desired performance style is designated. This designation may be made by directly inputting the sequence AESEQ or URSEQ number using a computer keyboard or mouse, or by inputting desired instrument tone color and attribute information.
In the next step S22, it is searched whether or not a sequence that matches the designated rendition style exists in AESEQ or URSEQ in the articulation database ADB, and the corresponding sequence AESEQ or URSEQ is selected. In this case, when the number of the sequence AESEQ or URSEQ is directly input, the corresponding one is directly extracted. When attribute information is input, a sequence AESEQ and / or URSEQ corresponding to the attribute information is searched. A plurality of pieces of attribute information can be input. If a plurality of pieces of attribute information are input, the search may be performed using AND logic, for example. Of course, the search is not limited to this, and OR logic may be used. The search result is displayed on a computer display, and when a plurality of sequences AESEQ and / or URSEQ are searched, a desired one can be selected.
[0069]
In step S23, the user is inquired whether or not to continue the editing work. If NO (not continuing), the user goes to the exit and ends the editing process. If the contents of the sequence selected or searched in step S22 are as desired and there is no need for editing, the editing process is terminated. If it is desired to continue the editing process, “YES” is determined in the step S23, and the process proceeds to the step S24. In addition, even if it is not possible to search for a performance method specified in step S22, it is determined to continue YES in step S23, and the process goes to step S24.
An example of the search based on the attribute information will be described with reference to an example in which data as shown in FIGS. 5 and 6 is stored in the articulation database ADB. For example, it is assumed that “attack / bend-up / normal”, “body / normal”, and “release / normal” are input as attributes of the search condition of the articulation sequence. In this case, since it matches the attribute of the sixth
[0070]
In step S24, if the sequence corresponding to the performance style specified in step S21 has not yet been selected, the sequence closest thereto is selected. For example, it is assumed that “attack / bend-up / normal”, “vibrato / normal”, and “release / normal” are input in step S21 as attributes of the search condition of the articulation sequence. If there are only seven types of sequence AESEQ shown in FIG. 5A, a sequence satisfying this cannot be searched, and the
In step S25, a process of replacing vector data (index) indicating a desired articulation element (AE) in the selected sequence with vector data (index) indicating another articulation element is performed. For example, in the case of the above example, the element configuration of the
[0071]
If necessary, articulation elements are added and deleted in step S25. When the replacement and / or addition / deletion of the desired element vector data is completed, a new articulation element sequence is created (step S26).
Since the articulation element replacement and / or addition / deletion cannot guarantee the waveform connection between the elements in the newly created articulation element sequence, in the next step S27, the connection rule data RULE Set. In the next step S28, it is confirmed whether the set connection rule data RULE is acceptable. If not OK, the process returns to step S27 and the connection rule data RULE is reset. If the set connection rule data RULE is OK, the process goes to step S29.
In step S29, an inquiry is made as to whether or not to continue the editing process. When the editing process is not continued, the process goes to step S30, and the newly created articulation element sequence is registered in the articulation database ADB as the user sequence URSEQ. If it is desired to continue the editing process, “YES” is determined in the step S29, and the process proceeds to the step S24 or S31. In this case, if it is desired to return to replacement and / or addition / deletion of the articulation element, the process returns to step S24, and if it is desired to move to editing template data, the process goes to step S31.
[0072]
In step S31, an articulation element (AE) whose template data is to be edited is selected. In the next step S32, the template vector data corresponding to the desired musical tone element in the selected articulation element (AE) is replaced with another template vector data relating to the musical tone element.
For example, “attack bend-up normal”, “slightly slow vibrato”, and “release normal” are specified and input in step S21 as attributes of the search conditions for the articulation sequence, as shown in FIG. It is assumed that
[0073]
Thus, a new articulation element is created by replacing the time template vector from TSC-B-vib to TSC-B-sp2 in each template of BOD-Vib-nor (body normal vibrato) (step S33). ). Also, a new articulation element sequence is created by replacing the element for the body part of the
Subsequent steps S34, S35, and S36 are the same processes as steps S27, S28, and S29 described above. That is, since the replaced template data does not guarantee the waveform connection between the elements in the newly created articulation element sequence, the connection rule data RULE is reset as described above.
[0074]
In step S36, an inquiry is made as to whether or not to continue the editing process. If the editing process is not continued, the process goes to step S37, and the newly created articulation element (AE) is registered in the articulation database ADB as a user articulation element vector (AEVQ). If it is desired to continue the editing process, “YES” is determined in the step S36, and the process proceeds to the step S31 or S38. In this case, if it is desired to return to the replacement of the template vector, the process returns to step S31, and if it is desired to proceed to editing the specific contents of the template data, the process goes to step S38.
In step S38, a template in a required articulation element (AE) whose data content is to be edited is selected. In the next step S39, the data of the selected template is read from the template database TDB, and the specific data content is appropriately changed.
[0075]
For example, “attack / bend-up / normal”, “pretty slow vibrato”, and “release / normal” are designated and input in step S21 as attributes of the search condition of the articulation sequence, as shown in FIG. It is assumed that
However, if the desired “pretty slow vibrato” is not yet realized with the time template indicated by this time template vector TSC-B-sp1, this time template vector TSC-B-sp1 is selected in step S38, and step 39 Then, the specific data content is changed to a content that realizes a slower vibrato. Also, new vector data (for example, TSC-B-sp0) is assigned to a new time template created by the change.
[0076]
Thus, new time template data and its vector data TSC-B-sp0 are created (step S40). Also, a new articulation element (AE) in which the time template vector is changed to a new vector is created, and the element for the body part of the
Subsequent steps S41, S42, and S43 are the same processes as steps S27, S28, and S29 described above. That is, since the data-corrected template data does not guarantee the waveform connection between the elements in the newly created articulation element sequence, the connection rule data RULE is reset as described above.
[0077]
In step S43, an inquiry is made as to whether or not to continue the editing process. If the editing process is not continued, the process goes to step S44, and the newly created template data is registered in the template database TDB. If the editing process is to be continued, “YES” is determined in the step S43, and the process returns to the step S38. After step S44, the process goes to step S37, where the newly created articulation element (AE) is registered in the articulation database ADB as a user articulation element vector (AEVQ). In step S30, the newly created articulation element sequence is registered in the articulation database ADB as a user sequence URSEQ.
The procedure of the editing process is not limited to that shown in FIG. Further, as described above, a desired element is sequentially selected from the element vector AEVQ without calling the base sequence AESEQ, and template data in each element is appropriately replaced or data corrected, and the user is based on this. The sequence URSEQ may be created. Although not particularly shown, it is preferable that a sound corresponding to the waveform of the articulation element being edited is generated at an appropriate stage of the editing process so that the user can confirm it by ear.
[0078]
[Explanation of partial vector]
FIG. 13 conceptually shows the concept of the partial vector PVQ. FIG. 13A schematically shows data of all sections (that is, normal template data) analyzed for a certain musical tone element (for example, a waveform) for an articulation element of a certain section. FIG. 13B schematically shows partial template data PT1, PT2, PT3, and PT4 that are extracted in a distributed manner from the data of all sections shown in FIG. The partial template data PT1, PT2, PT3, and PT4 are stored in the template database TDB as template data of the musical tone element. One template vector for this template data is assigned in the same manner as usual (similar to the case of storing data of all sections as template data as it is). For example, if the template vector for this template data is “Timb-B-nor”, the template vector of each partial data PT1, PT2, PT3, PT4 is “Timb-B-nor” and is common. ing. In this case, identification data indicating that the partial vector PVQ is included is registered as data attached to the template vector “Timb-B-nor”.
[0079]
For each partial template data PT1 to PT4, the partial vector PVQ includes data indicating the storage position of the data in the template database TDB (for example, corresponding to a loop start address) and data indicating the width W of the data (for example, Data corresponding to a loop end address) and data indicating a period LT in which the data is repeated. In the figure, for convenience, the width W and the period LT are illustrated as if they are common to all partial data PT1 to PT4, but this is arbitrary for each data PT1 to PT4. Further, the number of partial template data PT1 to PT4 is not limited to four and is arbitrary.
Each partial template data PT1 to PT4 based on the partial vector PVQ is loop-read for the repetition period (LT), and the read loops are connected to connect all the loops as shown in (a). The data can be reproduced. This reproduction process is called a decoding process. As an example of this decoding processing method, each partial template data PT1 to PT4 may be simply loop-read for the repetition period LT, or as another example, You may make it cross-synthesize | combine, loop-reading a waveform. The latter is preferable because the connection between the loops is improved.
[0080]
FIGS. 13C and 13D show examples of decoding processing by such cross-fade synthesis. (C) shows an example of the crossfade control waveform in the first channel for crossfade synthesis, and (d) shows an example of the crossfade control waveform in the second channel for crossfade synthesis. That is, the first partial template data PT1 is faded out during the period LT with the fade-out control waveform CF11 shown in (c), and at the same time, the next partial template data PT2 is faded-in control waveform CF21 shown in (d). And fade in during period LT. By adding the data PT1 subjected to the fade-out control and the data PT2 subjected to the fade-in control, the loop reading for crossfading from the data PT1 to the data PT2 is performed during the period LT. Next, the data PT1 is switched to the data PT3 and the control waveform thereof is switched to the fade-in waveform CF12, the control waveform of the data PT2 is switched to the fade-out waveform CF22, and crossfade synthesis is performed. Thereafter, cross-fade synthesis is performed by sequentially switching as shown in the figure. Note that when performing cross-fade synthesis, processing is performed so that the phase and pitch of the two loop readout waveforms are properly matched.
[0081]
FIG. 14 is a flowchart showing an example of a template read process in consideration of the partial vector PVQ. Steps S13 to S14c shown here correspond to the processing of steps S13 and S14 in FIG. In step S13, vector data of each template corresponding to the designated element is read from the data group of the articulation element vector AEVQ. In step S14a, it is checked whether or not there is a partial vector PVQ based on identification data indicating that it has a partial vector PVQ. If there is no partial vector PVQ, the process goes to step S14b to read each template data from the template database TDB. If there is a partial vector PVQ, the process goes to step S14c, and the above-described “decoding process” is performed based on the partial vector PVQ. As a result, the template data of the entire section for the element is reproduced (decoded).
[0082]
When a partial vector PVQ is applied to a certain articulation element, it is not necessary to use a template for all musical tone elements of the articulation element as a partial template, and it is suitable for loop reading as a partial template. A partial template may be used only for certain types of musical elements.
Further, the reproduction method of the template data of the entire section for the element based on the partial vector PVQ is not limited to the simple loop reading as described above, and other appropriate methods may be used. For example, a partial template having a predetermined length corresponding to the partial vector PVQ is extended in time axis as necessary, or a limited number of partial templates are combined randomly or in a predetermined sequence to obtain an entire interval for the element or A method may be used such as arranging over a necessary section.
[0083]
[Explanation of vibrato synthesis]
Here are some new ideas on how to compose vibrato.
FIG. 15 is a diagram schematically illustrating an example in which waveform data of a body portion having a vibrato component is compressed by applying the concept of a partial vector PVQ, and a decoding example thereof. (A) illustrates the original waveform A including vibrato. In this original waveform, not only the waveform pitch fluctuates in one cycle of vibrato but also the amplitude fluctuates. (B) illustrates a state in which a plurality of waveforms a1, a2, a3, a4 are dispersedly extracted from the original waveform of (a). As these waveforms a1 to a4, those having different waveform shapes (tone colors) are selected, and one wavelength (one waveform period) is extracted as one or a plurality of waves with the same data size (number of addresses). These waveforms a1 to a4 are stored in the template database TDB as partial template data (that is, loop waveform data). This readout method is performed by sequentially reading out the waveforms a1 to a4 in a loop and performing cross-fade synthesis.
[0084]
FIG. 15 (c) shows a pitch template in which the pitch varies during one vibrato period. Note that the pitch change pattern of this pitch template is a pattern that starts from a high pitch, shifts to a low pitch, and finally returns to a high pitch in the drawing, but is not limited to this, but other patterns (for example, from a low pitch to a high pitch) A pattern that shifts and returns to a low pitch, or a pattern that starts from an intermediate pitch and returns to a high pitch → low pitch → intermediate pitch).
[0085]
FIG. 15D illustrates a crossfade control waveform for each of the waveforms a1 to a4 read out by the loop. At first, the waveforms a1 and a2 are loop read (repeated read) at a pitch according to the pitch template of (c), and the amplitude control of fade-in is performed for the waveform a1 read out of the loop and faded-in for the waveform a2 read out of the loop. To synthesize both. As a result, the waveform shape cross-fades from waveform a1 to a2 and changes sequentially, and the pitch of the cross-fade composite waveform changes sequentially at a pitch according to the pitch template. Similarly, the waveforms are sequentially switched, and cross-fade synthesis is performed at a2 and a3, then at a3 and a4, and then at a4 and a1.
[0086]
FIG. 15E shows the synthesized waveform data A ′. The waveform data A ′ has a waveform shape that is smoothly cross-faded from the waveform a1 to a4 in one cycle of the vibrato and is changed in accordance with the pitch template. Is attached. By repeating the synthesis process of the waveform data A ′ for one cycle of vibrato as described above, waveform data over a plurality of vibrato cycles can be synthesized. In that case, a pitch template for one period of vibrato as shown in (c) may be looped by the required number of vibrato periods. Therefore, the structure of the partial vector PVQ may be hierarchical. That is, in order to synthesize a waveform for one cycle of vibrato, the waveforms a1 to a4 are individually loop-read as described above, and the whole (one cycle of vibrato) is further repeated according to the looping of the pitch template. It may be.
Note that the number of waveforms to be extracted in a distributed manner from the original waveform for vibrato synthesis is not limited to four as shown in FIG. 15B, and may be any number. Further, the intervals at which the waveforms are extracted need not be equal. Furthermore, it is not limited to taking out from the range of one vibrato period as shown in FIG. 15B, but may be taken out in a distributed manner from a range of plural vibrato periods or less than one vibrato period.
[0087]
FIG. 16 is a diagram showing another example of another vibrato synthesis. In this example, a plurality of waveforms a1 to a4, b1 to b4, and c1 to c4 are taken out from sections A, B and C over a plurality of vibrato periods of the original waveform including vibrato. As for the waveforms a1 to a4, b1 to b4, and c1 to c4, those having different waveform shapes (tone colors) are selected as described above, and one wavelength (one waveform period) is the same data size (number of addresses). ) As one or a plurality of waves. These waveforms a1 to a4, b1 to b4, and c1 to c4 are stored in the template database TDB as partial template data. This readout method basically reads out the waveforms a1 to a4, b1 to b4, and c1 to c4 sequentially in a loop and performs cross-fade synthesis as in the above example, but differs from the above example. In the example of FIG. 16, by changing the temporal positions of the waveforms a1 to a4, b1 to b4, and c1 to c4 and arbitrarily combining the waveforms to be crossfade synthesized, variations in waveform timbre changes in vibrato can be obtained. It is a point that can be obtained in various combinations.
[0088]
For example, if the positions of the waveforms a1 to a4, b1 to b4, and c1 to c4 are changed without changing the relative time positions within one vibrato period, for example, a1 → b2 → c3 → a4. → b1 → c2 → a3 → b4 → c1 → a2 → b3 → c4 The waveform position replacement pattern can be obtained. If vibrato synthesis processing by crossfade synthesis similar to FIG. 15 is performed according to such a waveform position replacement pattern, timbre changes differ from vibrato obtained by vibrato synthesis processing by crossfade synthesis according to the original waveform position pattern. You can get vibrato. The reason why the positions of these waveforms a1 to a4, b1 to b4, and c1 to c4 are changed without changing the relative time positions within one vibrato period is the unnaturalness due to the replacement. This is to prevent the occurrence of the problem.
In the case of the twelve waveforms a1 to a4, b1 to b4, and c1 to c4 shown in FIG. 16, there are 3 4 = 81 combinations for one cycle of vibrato. In 3 periods, there are 81 cubes. Therefore, the variation of the waveform tone color change in vibrato becomes extremely diverse. What combination pattern is adopted may be selected at random.
[0089]
For a waveform having a vibrato characteristic (for example, A ′ in FIG. 15 (e)) created by the technique shown in FIG. 15 or FIG. 16 or a waveform having a vibrato characteristic created by another technique, the pitch ( The vibrato characteristics can be variably controlled by a Pitch template, an amplitude (Amp) template, and a time (TSC) template. For example, the depth of vibrato can be controlled by a pitch template, the depth of amplitude modulation added with vibrato can be controlled by an amplitude template, and
[0090]
For example, in FIG. 15, the time length of each crossfade section shown in (d) is subjected to time axis expansion / contraction control (TSC control) in accordance with a desired time (TSC) template, so that the tone reproduction pitch (change in waveform readout address) is obtained. When the TSC control is performed without changing the rate), the time length of one cycle of vibrato can be controlled to expand / contract, thereby controlling the vibrato frequency. In this case, when TSC templates are prepared corresponding to one vibrato period as in the pitch template as shown in (c), the TSC templates for one vibrato period are provided for the number of necessary vibrato periods. Just loop. If the pitch template and the amplitude (Amp) template are also controlled in time axis expansion / contraction in conjunction with the waveform time axis expansion / contraction control corresponding to the TSC template, these musical sound elements are interlocked in time axis. Expansion and contraction can be controlled.
Note that the tone reproduction pitch of the vibrato waveform can be variably controlled by shifting the pitch change envelope characteristic indicated by the pitch template up and down. In that case, by not performing the time axis control of the waveform by the TSC template, it is possible to control the time length of one vibrato period to be kept constant regardless of the tone reproduction pitch.
[0091]
[Explanation of connection rule RULE]
Next, a specific example of rule data RULE describing how to connect the articulation elements will be described.
For example, there are the following connection rules for each musical tone element.
(1) Waveform (Timbre) template connection rules
Rule 1: Direct connection. If a smooth connection between articulation elements is guaranteed in advance, such as a preset performance method sequence (articulation element sequence AESEQ), it is a problem to connect them directly without interpolation. Absent.
Rule 2: Interpolation by extending the end portion of the waveform A of the preceding element. This interpolation example has a form as shown in FIG. 17A, and the terminal waveform C1 of the preceding element is extended to synthesize the connection waveform C1. The waveform B of the succeeding element is used as it is, and the connection waveform C1 extending to the end of the waveform A of the preceding element is faded out, and the beginning portion of the waveform B of the succeeding element is faded in to perform cross-fade synthesis. The connection waveform C1 is formed by repeating a one-cycle waveform or a plurality of cycle waveforms at the end portion of the waveform A of the preceding element by a necessary length.
[0092]
Rule 3: Interpolation by extending the tip of the waveform B of the subsequent element. This interpolation example has a form as shown in FIG. 17B, and the connection waveform C2 is synthesized by extending the tip of the waveform B of the subsequent element. The waveform A of the preceding element is used as it is, and the end portion of the waveform A of the preceding element is faded out, and the connection waveform C2 is faded in to perform cross-fade synthesis. Also in this case, the connection waveform C2 is formed by repeating a one-cycle waveform or a plurality of cycle waveforms at the tip of the waveform B of the subsequent element by a necessary length.
Rule 4: Interpolation in which both the end portion of the waveform A of the preceding element and the tip portion of the waveform B of the succeeding element are extended. This interpolation example has a form as shown in FIG. 17 (c), and a connection waveform C1 synthesized by extending the end portion of the waveform A of the preceding element and a connection synthesized by extending the tip portion of the waveform B of the succeeding element. Crossfade synthesis with the waveform C2 is performed. In the case of this
[0093]
Rule 5: As shown in FIG. 17D, a connection waveform C prepared in advance is inserted between the waveform A of the preceding element and the waveform B of the succeeding element. At that time, the end portion of the waveform A of the preceding element and the tip portion of the waveform B of the succeeding element are partially removed by the connection waveform C. Alternatively, the connection waveform C may be inserted without deleting the terminal portion of the waveform A of the preceding element and the tip portion of the waveform B of the subsequent element. In this case, the time of the entire synthesized waveform is extended. Therefore, it is assumed that the time axis compression processing is performed correspondingly by the TSC control.
Rule 6: As shown in FIG. 17E, a connection waveform C prepared in advance is inserted between the waveform A of the preceding element and the waveform B of the succeeding element, and at that time, the end of the waveform A of the preceding element The portion and the first half of the connection waveform C are subjected to cross-fade loss fade synthesis, and the tip portion of the waveform B of the subsequent element and the latter half of the connection waveform C are subjected to cross-fade loss fade synthesis. Also in this case, if the time of the entire synthesized waveform is extended or shortened, the time axis compression processing is performed by that amount by the TSC control.
[0094]
(2) Other template connection rules
The data of other templates (amplitude, pitch, time) other than the waveform (Timbre) template takes a simple form of an envelope waveform, so that complicated interpolation processing using a 2-channel crossfade control waveform is not used. In addition, a smooth connection can be realized by a simpler interpolation process. In particular, in the interpolation synthesis of template data having an envelope waveform shape, it is preferable to generate an interpolation result with a difference value (with a plus / minus sign) from the original template data value. Then, the interpolation calculation for smooth connection can be achieved only by adding the difference value (with plus / minus sign) as the interpolation result to the original template data value read from the template database TDB in real time. It will be possible and it is very simple.
Rule 1: Direct connection. An example of this is shown in FIG. The level of the first element template (envelope waveform) AE1 and the second element template (envelope waveform) AE2-a coincide with each other, and the second element template (envelope waveform) AE2-a. Since the level of the end of the template and the beginning of the template (envelope waveform) AE3 of the third element also coincide, no interpolation is required.
[0095]
Rule 2: Interpolation is performed to smooth the local range around the connection point. An example of this is shown in FIG. The transition from AE1 to AE2-b is smoothly performed within a predetermined range CFT1 at the end portion of the template (envelope waveform) AE1 of the first element and the tip portion of the template (envelope waveform) AE2-b of the second element. Perform interpolation processing. Further, the transition from AE2-b to AE3 is smoothly performed within a predetermined range CFT2 at the end portion of the template (envelope waveform) AE2-b of the second element and the tip portion of the template (envelope waveform) AE3 of the third element. Interpolation processing is performed as follows.
The data E1 ′, E2 ′, and E3 ′ obtained as a result of interpolation are assumed to be composed of difference values (with positive and negative signs) for the original template values (envelope values) E1, E2, and E3 of each element. In that case, as described above, the difference values E1 ′, E2 ′, and E3 ′ as the interpolation results are simply added to the original template data values E1, E2, and E3 read from the template database TDB in real time. Interpolation for smooth connection can be achieved and is very simple.
[0096]
Specific examples of the
In the example of FIG. 19A, the end value of the preceding element AEn is set with the target level being the level MP intermediate between the template data value EP of the end point of the preceding element AEn and the template data value SP of the starting point of the succeeding
[0097]
In the example of FIG. 19B, the template data value SP at the start point of the subsequent element AEn + 1 is set as the target value, and the template data value of the preceding element AEn is set as the target value in the interpolation region RCFT at the end portion of the preceding element AEn. Interpolation is performed to asymptotically approach SP. As a result, the trajectory of the template data of the preceding element AEn changes as indicated by the original lines E1 to E1 ″. In this case, there is no interpolation area FCFT at the tip of the subsequent
In the example of FIG. 19C, in the interpolation area FCFT at the tip of the subsequent
Also in FIG. 19, the data indicating the respective trajectories E1 ′, E2 ′, E1 ″, E2 ″ obtained as a result of the interpolation is assumed to be a difference value with respect to the original template data values E1, E2.
[0098]
Rule 3: Interpolation processing is performed for smoothing over the entire section of the element. An example of this is shown in FIG. The template (envelope waveform) AE1 of the first element and the template (envelope waveform) AE3 of the third element are not changed, and the data of the template (envelope waveform) AE2-b of the second element in the middle is not changed. The leading end of the template (envelope waveform) AE1 matches the end of the first element template (envelope waveform) AE1, and the end thereof matches the top of the third element template (envelope waveform) AE3. In this case as well, the data E2 ′ obtained as a result of the interpolation is assumed to be a difference value (with a plus / minus sign) with respect to the original template value (envelope value) E2.
Specific examples of the
FIG. 20A shows an example in which interpolation is performed only with the intermediate element AEn. E1 indicates the original trajectory of the template data value of the element AEn. In accordance with the difference between the template data value EP0 at the end point of the preceding element AEn-1 and the template data value SP at the original start point of the intermediate element AEn, the locus E1 of the template data value of the element AEn is shifted. Template data consisting of the locus Ea is created corresponding to all the sections of the element AEn. The locus E1 of the template data value of the element AEn is shifted according to the difference between the template data value EP of the original end point of the intermediate element AEn and the template data value SP1 of the start point of the subsequent
[0099]
In FIG. 20B, data is changed in the entire section of the intermediate element AEn, and interpolation is performed between the predetermined area RCFT at the end of the intermediate element AEn and the predetermined area FCFT at the end of the subsequent
First, in the same manner as described above, the template data value of the element AEn is determined according to the difference between the template data value EP0 at the end point of the preceding element AEn-1 and the template data value SP at the original start point of the intermediate element AEn. The locus E1 is shifted, and template data composed of the locus Ea is created corresponding to all the sections of the element AEn.
[0100]
Next, in a predetermined region RCFT at the end portion of the preceding element AEn, with the target level being an intermediate level MPa between the template data value EPa at the end point of the locus Ea and the template data value SP at the start point of the succeeding
[0101]
In FIG. 20 (c), data is changed in the entire section of the intermediate element AEn, and interpolation is performed between the predetermined area RCFT at the end portion of the preceding element AEn-1 and the predetermined area FCFT at the end portion of the intermediate element AEn. In addition, an example is shown in which interpolation is performed between the predetermined region RCFT at the end portion of the intermediate element AEn and the predetermined region FCFT at the tip portion of the subsequent
First, the original trajectory E1 of the template data value of the intermediate element AEn is shifted by an appropriate offset amount OFST, and template data consisting of the trajectory Ec is created corresponding to all the sections of the element AEn.
[0102]
Next, in the predetermined region RCFT at the end portion of the preceding element AEn-1 and the predetermined region FCFT at the tip portion of the intermediate element AEn, an interpolation process is performed so that the trajectories E0 and Ec of both template data are smoothly connected, Trajectories E0 ′ and Ec ′ as interpolation results are obtained in the interpolation region. Further, interpolation processing is performed so that the traces Ec and E2 of both template data are smoothly connected in the predetermined region RCFT at the end of the intermediate element AEn and the predetermined region FCFT at the tip of the subsequent
Also in FIG. 20, the data indicating the respective trajectories E1 ′, Ea, Ea ′, E2 ′, Ec, Ec ′, Ec ″, E0 ′ obtained as a result of interpolation correspond to the original template data values E1, E2, E0. It shall consist of a difference value.
[0103]
[Conceptual explanation of tone synthesis processing including connection processing]
FIG. 21 is a block diagram conceptually illustrating the configuration of a musical tone synthesizing apparatus that performs the above connection processing for each template data corresponding to each musical tone element, and performs musical tone synthesis processing based on the template data that has been connected. It is.
In template data supply blocks TB1, TB2, TB3, and TB4, waveform template data Timb-Tn, amplitude template data Amp-Tn, pitch template data Pit-Tn, time template data TSC-Tn relating to the preceding articulation element, Then, waveform template data Timb-Tn + 1, amplitude template data Amp-Tn + 1, pitch template data Pit-Tn + 1, and time template data TSC-Tn + 1 related to the following articulation elements are supplied.
[0104]
In the rule data code processing blocks RB1, RB2, RB3, and RB4, the connection rules TimbRULE, AmpRULE, PitRULE, and TSCRULE for each musical tone element relating to the articulation element are decoded, and referring to FIGS. 17 to 20 according to the decoded connection rules The connection process as described above is executed. For example, in the rule data code processing block RB1 for the waveform template, processing for executing connection processing (direct connection or cross-fade interpolation) as described with reference to FIG. 17 is performed.
[0105]
Further, in the rule data code processing block RB2 for the amplitude template, processing for executing connection processing (direct connection or interpolation) as described with reference to FIGS. 18 to 20 is performed. In this case, since the interpolation result is given as a difference value (with a plus / minus sign) as described above, the interpolation data composed of the difference value output from the block RB2 is originally supplied from the template data supply block TB2 in the adder AD2. Is added to the template data value. For the same reason, adders AD3 and AD4 are provided for adding the outputs of the other rule data code processing blocks RB3 and RB4 and the original template data values supplied from the template data supply blocks TB3 and TB4, respectively. It has been.
[0106]
Thus, template data Amp, Pitch, and TSC obtained by performing required connection processing between adjacent elements are output from the adders AD2, AD3, and AD4, respectively. The pitch control block CB3 controls the waveform reading speed according to the pitch template data Pitch. Since the waveform template itself contains the original pitch information, the original pitch information (original pitch envelope) is received from the database via the line L1, and the waveform is determined by the deviation between the original pitch envelope and the pitch template data Pitch. Control the reading speed. For example, when the original pitch envelope and the pitch template data Pitch are the same, the reading may be performed at a constant waveform reading speed, and when the original pitch envelope and the pitch template data Pitch are different, only the deviation is necessary. The waveform reading speed may be variably controlled. The pitch control block CB3 receives note instruction data, and controls the waveform reading speed based on the note instruction data. For example, if the original pitch of the waveform template data is based on the pitch of the note C4, and the sound of the note D4 is generated using the waveform template data having the original pitch of the note C4, The waveform reading speed is controlled according to the deviation between the note D4 and the note C4 having the original pitch. Details of such pitch control will not be described in detail because known techniques can be applied.
[0107]
In the waveform access control block CB1, basically, each sample of the waveform template data is sequentially read according to the waveform reading speed control information output from the pitch control block CB3. At this time, the waveform readout mode is controlled according to the TSC control information given as time template data, and the pitch of the generated sound is determined according to the waveform readout speed control information given from the pitch control block CB3, while the total waveform readout time is Variable control is performed according to the TSC control information. For example, when the sound generation time length is extended beyond the time length of the original waveform data, the desired pitch can be maintained if the waveform reading speed is kept as it is and a part of the waveform portion is read out redundantly. It is possible to extend the pronunciation time length. In addition, when compressing the sound generation time length rather than the time length of the original waveform data, the desired pitch can be maintained if the waveform reading speed is kept as it is and some waveform portions are skipped and read out. In addition, the pronunciation time length can be compressed.
The waveform access control block CB1 and the crossfade control block CB2 execute connection processing (direct connection or crossfade interpolation) as described with reference to FIG. 17 according to the output of the rule data code processing block RB1 for waveform templates. Process. The cross-fade control block CB2 is also used when cross-fading is performed while loop reading out a partial waveform template according to the partial vector PVQ. It is also used when the waveform connection is made smooth during the TSC control.
[0108]
The amplitude control block CB4 gives an amplitude envelope corresponding to the amplitude template Amp to the generated waveform data. Also in this case, since the waveform template itself includes the original amplitude envelope information, the original amplitude envelope information is received from the database via the line L2, and the waveform is determined by the deviation between the original amplitude envelope and the amplitude template data Amp. Control the amplitude of the data. For example, when the original amplitude envelope and the amplitude template data Amp are the same, the amplitude control block CB4 need only pass the waveform data without performing substantial amplitude control. If the original amplitude envelope and the amplitude template data Amp are different, the amplitude level may be variably controlled by the deviation.
[0109]
[Specific example of musical tone synthesizer]
FIG. 22 is a block diagram showing an example of the hardware configuration of the tone synthesizer according to the embodiment of the present invention. This musical tone synthesizing apparatus may take any product application form such as an electronic musical instrument, a karaoke apparatus, an electronic game apparatus, other multimedia equipment, or a personal computer.
According to the configuration shown in FIG. 22, the tone synthesis process according to the embodiment of the present invention is executed using a software sound source. A software system is constructed so as to realize creation of musical tone data and musical tone synthesis processing according to the present invention, and a necessary database DB is constructed in an attached memory device, or communicated with a database DB constructed externally (host) An embodiment in which access is made via a line is taken.
[0110]
In the musical tone synthesizing apparatus shown in FIG. 22, a CPU (central processing unit) 10 is used as a main control unit. Under the control of the
The
[0111]
FIG. 23 shows a detailed example of the
[0112]
The
[0113]
Under the control of the
[0114]
As shown in FIG. 8 (a), the following description will be given on the assumption that the performance method sequence (articulation element sequence AESEQ) according to the present invention is incorporated in the automatic performance sequence data composed of MIDI data. Although not described in detail in FIG. 8A, rendition style sequence (articulation element sequence AESEQ) data can be incorporated in the MIDI format, for example, as MIDI exclusive data.
[0115]
FIG. 24 is a time chart showing an outline of the tone generation process executed by the software sound source based on the performance data in the MIDI format. “Performance timing” shown in (a) includes MIDI note-on event, note-off event or other event (EVENT (MIDI) in FIG. 8A), and articulation element sequence event (FIG. 8A). The event occurrence timing of each
[0116]
The waveform sample data generation calculation method in “waveform generation” includes an automatic performance sound based on a normal MIDI note-on event (hereinafter referred to as a “normal performance” sound) and an articulation element sequence AESEQ. This is different from the performance sound based on the on-event (which will be referred to as the “performance performance” sound). The “normal performance” processing based on the normal MIDI note-on event and the “performance performance” processing based on the on-event of the articulation element sequence AESEQ are performed in separate processing routines as shown in FIGS. Executed. For example, it is effective to use the accompaniment part by “normal performance” based on the normal MIDI note-on event and the specific solo performance part by “performance performance” based on the articulation element sequence AESEQ. It is.
[0117]
FIG. 25 is a time chart showing an outline of the “performance performance” process (articulation element musical tone synthesis process) based on the performance sequence (articulation element sequence AESEQ) data according to the present invention. The “phrase preparation command” and the “phrase start command” are included in the MIDI performance data as “articulation element sequence event EVENT (AESEQ)” as shown in FIG. That is, the event data of one articulation element sequence AESEQ (referred to as “phrase” in FIG. 25) includes a “phrase preparation command” and a “phrase start command”. “Phrase preparation command”, which is the preceding event data, designates an articulation element sequence AESEQ (that is, a phrase) to be reproduced, and indicates that preparation for performing the reproduction is to be performed. The sequence AESEQ is given by a predetermined time before the start of sound generation. In the “preparation processing” process indicated by
[0118]
FIG. 26 is a flowchart showing a main routine of the tone synthesis process executed by the
Activation factor {circle around (1)}: MIDI performance data or other communication input data is input via the
Activation factor (2): Automatic performance processing timing has arrived. In order to check the occurrence time of the next event in the automatic performance, the automatic performance processing timing is regularly generated.
Activation factor (3): Waveform generation timing of one frame unit has arrived. In order to collectively generate waveform sample data in units of one frame, this waveform generation timing is generated in one frame period (for example, at the end of the frame period).
Activation factor {circle over (4)}: A switch operation such as a keyboard or a mouse (excluding a main routine end instruction operation) was performed by the
Activation factor {circle around (5)}: There was an interrupt request from the disk drives 13 to 15 and the
Activation factor {circle around (6)}: The main routine end instruction operation has been performed by the
[0119]
In step S52, it is determined which of the activation factors (1) to (6) has occurred. If NO, steps S51 and S52 are repeated. If YES, it is determined in step S53 which activation factor has occurred. If the activation factor (1) occurs, a predetermined “communication input process” is performed in step S54. When the activation factor (2) occurs, a predetermined “automatic performance process” (an example thereof is shown in FIG. 27) is performed in step S55. If the activation factor {circle over (3)} occurs, a predetermined “sound source processing” (an example thereof is shown in FIG. 28) is performed in step S56. If the activation factor (4) occurs, a predetermined “SW process” (process corresponding to the operated switch) is performed in step S57. If the activation factor (5) occurs, predetermined “other processing” (processing in response to the interrupt request) is performed in step S58. When the activation factor {circle around (6)} occurs, a predetermined “end process” (process for ending this main routine) is performed in step S59.
[0120]
In step S53, if it is determined that two or more activation factors among the activation factors (1) to (6) are generated at the same time (for example, activation factor (1)). ▼, (2), (3), (4), (5), (6) in this order). In that case, there may be equal priority processing. Steps S51 to S53 are virtual representations of task management in the pseudo multitasking process. In practice, the process is being executed based on the occurrence of one of the activation factors. Since another activation factor with a higher priority occurs, another process is executed by an interrupt (for example, while the “sound source processing” is being executed based on the occurrence of the activation factor (3), the activation factor (2) may cause “automatic performance processing” to be executed by interruption).
[0121]
A specific example of the “automatic performance process” (step S55) will be described with reference to FIG. First, in step S60, the absolute time information given from the DMAC 26 (FIG. 23) is compared with the next event timing of the song data. As shown in FIG. 8, in the music data, that is, the automatic performance data, the duration data DUR exists prior to the event data EVENT. For example, when the duration data DUR is read, the absolute time information indicating the arrival time of the next event is created and stored by adding the absolute time information at that time and the duration data DUR. Then, the absolute time information indicating the arrival time of the next event is compared with the absolute time information at the present time in step S60 of FIG.
[0122]
In step S61, it is determined whether or not the current absolute time matches or has passed the next event arrival time. If the next event arrival time has not yet come, the processing of FIG. 27 is immediately terminated. When the next event arrival time is reached, the process goes to step S62, where the event type is a normal performance event (that is, a normal MIDI event) or a performance performance event (that is, an articulation element sequence event). Find out if there is. If it is a normal performance, the process goes to step S63, where a normal MIDI event process corresponding to the event is performed, and sound source control data is generated. In the next step S64, a tone synthesis channel (abbreviated as “sound source ch” in the figure) related to the event is detected, and the channel number is registered in the channel number register i. For example, in the case of a note-on event, a channel to which the occurrence of the note is assigned is determined, and the channel is registered in the register i. In the case of a note-off event, the channel to which the note is assigned is detected and the channel is registered in the register i. In the next step S65, the sound source control data and control timing data generated in step S63 are stored in the tone buffer TBUF (i) of the channel number designated by the register i. The control timing is a timing for performing control related to the event, such as a sounding start timing in the case of a note-on event, a release start timing in the case of a note-off event, and the like. In this embodiment, the musical sound waveform is generated by software processing. Therefore, the event generation timing of MIDI data and the actual processing timing corresponding to the MIDI data are slightly shifted. The actual control timing is instructed again.
[0123]
If it is determined in step S62 that the event is a performance performance performance, the process goes to step S66 to check whether it is a "phrase preparation command" or a "phrase start command" (see FIG. 25). If it is a “phrase preparation command”, the routine of steps S67 to S71 is executed. The routine of steps S67 to S71 corresponds to the “preparation process” indicated by the
[0124]
An example in which the articulation element sequence AESEQ includes a subsequence is shown in FIG. As shown in FIG. 32, the articulation element sequence AESEQ may have a hierarchical structure. That is, in the figure, if the “performance
[0125]
In step S70, the data of each expanded element vector (abbreviated as “E-VEC” in the figure), together with data indicating the control timing by relative time, the tone buffer TBUF (i) of the channel number indicated by the register i. To store. In this case, the control timing is the start timing of each articulation element as shown in FIG. In the next step S71, referring to the tone buffer TBUF (i), necessary template data is loaded from the database DB into the
If the current event is a “phrase start command” (see FIG. 25), the routine of steps S72 to S74 is executed. In this step S72, the channel assigned to reproduce the phrase performance is detected, and the channel number is registered in the register i. In the next step S73, all the control timing data stored in the tone buffer TBUF (i) of the channel number designated by the register i is converted into absolute time expression data. In other words, the absolute time information given from the DMAC 26 when the “phrase start command” is generated is used as an initial value, and the initial value is added to the relative time of each control timing data, whereby each control timing data is converted into the absolute time information. Can be converted to representation data. In the next step S74, the contents of the tone buffer TBUF (i) are rewritten according to the converted absolute time of each control timing. That is, the start time and end time of each element vector E-VEC constituting the rendition style sequence, connection control data between the element vectors, and the like are written in the tone buffer TBUF (i).
[0126]
Next, a specific example of “sound source processing” (step S56 in FIG. 26) will be described with reference to FIG. As described above, this “sound source processing” is activated every frame. First, in step S75, a predetermined waveform generation preparation process is performed. For example, the contents of the waveform buffer W-BUF that has been reproduced and read in the previous frame section are cleared, and data can be written to the waveform buffer W-BUF in the current frame section. In the next step S76, it is checked whether there is a channel on which sound generation processing is to be performed. If not, the process does not need to be continued, and the process jumps to step S83. If there is, go to step S77 to identify one of the channels to be sounded and prepare to perform waveform sample data generation processing for that channel. In the next step S78, it is checked whether the type of musical sound assigned to the prepared channel is the “normal performance” sound or the “performance performance” sound. If it is a “normal performance” sound, the process goes to step S79 to perform processing for generating waveform sample data for one frame for the channel as a “normal performance” sound. If it is a “performance performance” sound, the process goes to step S80 to generate a waveform performance data for one frame for the channel as a “performance performance” sound. Next, in step S81, it is checked whether there is a remaining (unprocessed) channel among the channels to be subjected to the sound generation process. If there is, the flow goes to step S82 to identify the channel to be processed next from the remaining (unprocessed) channels, and prepare to perform the waveform sample data generation processing for the channel. Then, the process returns to step S78, and the same processes of steps S78 to 80 as described above are executed for the new channel. When the processes in steps S78 to S80 are completed for all the channels to be subjected to the sound generation process, there are no remaining (unprocessed) channels, so step S81 is NO and the process goes to step S83. In this state, generation of waveform sample data for one frame for all channels to be sounded is completed, and each sample is added (accumulated) and stored in the waveform buffer W-BUF. . In step S83, the data in the waveform buffer W-BUF is delivered under the control of the waveform input / output (I / O) driver. Thus, in the next one frame period, the waveform buffer W-BUF is in the reading mode, accessed by the DMAC 26, and the waveform sample data is reproduced and read out at a regular sampling period according to the predetermined sampling clock Fs.
[0127]
A detailed example of the process of step S79 of FIG. 28 is shown in FIG. FIG. 29 is a flowchart showing an example of “one-frame waveform data generation processing” for “normal performance”, and normal musical tone synthesis processing based on MIDI performance data is performed here. In this process, each time the loop of steps S90 to S98 is performed once, one sample of waveform data is generated. Therefore, although address pointer management is performed to indicate the number of samples in one frame, the currently processed sample is not described in detail. First, in step S90, it is checked whether the control timing has come. This control timing is a timing re-instructed in step S65 of FIG. 27, and is, for example, a sound generation start timing or a release start timing (sound generation end timing). If there is any control timing for the frame currently being processed, this step S90 becomes YES corresponding to the address pointer value corresponding to the time of the control timing, the process goes to step S91, and the necessary control based on the sound source control data is required. Perform waveform generation start processing. If the current address pointer value does not correspond to the control timing, the process jumps to step S91 and goes to step S92. In step S92, processing for forming a low frequency signal (LFO) necessary for vibrato or the like is performed. In the next step S93, processing for forming an envelope signal (EG) for pitch control is performed.
[0128]
In the next step S94, based on the sound source control data, waveform sample data of a predetermined tone color is read from a waveform memory (not shown) for the “normal performance” sound at a rate corresponding to the designated musical tone pitch, A process of interpolating between the values of the read waveform sample data is performed. Here, a generally known waveform memory reading technique and inter-sample interpolation technique may be appropriately used. The musical tone pitch specified here is obtained by variably controlling the normal pitch of the note (pitch) related to the note-on event according to the vibrato signal or the pitch control envelope value formed in the previous steps S92 and S93. In the next step S95, processing for forming an amplitude envelope (EG) is performed. In the next step S96, the volume level of the waveform data of one sample generated in step S94 is variably controlled by the amplitude envelope value formed in step S95, and this is controlled by the waveform buffer W-BUF indicated by the current address pointer. Adds to the waveform sample data already stored at the address location. In other words, the waveform sample data of other channels for the same sample point is added and accumulated. Next, in step S97, it is checked whether or not processing for one frame has been completed. If not completed yet, go to step S98 to prepare the next sample (advance the address pointer next).
[0129]
With the above configuration, when sound generation is started in the middle of a frame, waveform sample data is stored from an intermediate address of the waveform buffer W-BUF corresponding to the sound generation start position. Of course, when sound generation is continued throughout the entire frame period, waveform sample data is stored at all addresses of the waveform buffer W-BUF.
The envelope forming process in steps S93 and S95 may be performed by reading out the envelope waveform memory or may be performed by calculating a predetermined envelope function. As the envelope function, a known method of calculating a relatively simple linear polygonal line function may be used. Unlike the “performance performance” described later, this “normal performance” does not require complicated processing such as replacement of a waveform during sound generation, replacement of an envelope, or time-axis expansion / contraction control of a waveform.
[0130]
A detailed example of the process of step S80 of FIG. 28 is shown in FIG. FIG. 30 is a flowchart showing an example of “one-frame waveform data generation processing” for “performance performance”, in which musical tone synthesis processing based on articulation (performance method) sequence data is performed. In the processing of FIG. 30, the musical tone waveform processing of the articulation element based on each template data, the connection processing between element waveforms, and the like are executed as already described. Similarly to FIG. 29, in the process of FIG. 30, waveform data of one sample is generated every time the loop of steps S100 to S108 is performed once. Therefore, although address pointer management is performed to indicate the number of samples in one frame, the currently processed sample is not described in detail. In the process of FIG. 30, in order to smoothly connect successive articulation elements, two series of template data (including waveform templates) are cross-fade synthesized, and for time axis expansion / contraction control. Cross-fade synthesis of two series of waveform sample data is performed. Accordingly, various data processing for two series for cross-fade synthesis is performed for one sample point.
[0131]
First, in step S100, it is checked whether the control timing has come. This control timing is the timing written in step S74 of FIG. 27, for example, the start timing of each articulation
[0132]
In step S102, a process of generating a time template (in the figure, the template is abbreviated as TMP) for a specific element designated by the element vector E-VEC is performed. The time template is the time template (TSC template) shown in FIG. In this embodiment, the time template (TSC template) is assumed to be given as envelope-like data that changes with time, like the amplitude template and the pitch template. Accordingly, in this step S102, processing for forming an envelope of the time template is performed.
In step S103, a process of generating a pitch template for a specific element designated by the element vector E-VEC is performed. The pitch template is also given as envelope-like data that changes with time as illustrated in FIG.
In step S105, a process of generating an amplitude (Amp) template for a specific element designated by the element vector E-VEC is performed. The amplitude template is also given as envelope-like data that changes with time as illustrated in FIG.
[0133]
The envelope forming method in each of steps S102, S103, and S105 may be performed by reading out the envelope waveform memory in the same manner as described above, or may be performed by calculating a predetermined envelope function. As the envelope function, a relatively simple method of calculating a first-order polygonal line function may be used. Also, as described with reference to FIGS. 18 to 20, templates are formed in two lines corresponding to predetermined element connection locations (the template of the preceding element and the template of the subsequent element), and connection control is performed for both. A process of connecting by cross-fading according to data and an offset process are also performed in these steps S102, S103, and S105. Which connection rule is used for connection processing differs depending on the corresponding connection control data.
[0134]
In step S104, basically, a waveform (Timbre) template for a specific element designated by the element vector E-VEC is read at a rate corresponding to the designated musical tone pitch. The musical tone pitch designated here is variably controlled by the pitch template (pitch control envelope value) formed in the previous step S103. Note that, in accordance with the time template (TSC template), control for expanding or compressing the existing time of the waveform sample data along the time axis, that is, TSC control, is performed in this step S104 independently of the tone pitch. In addition, waveform sample data (two waveform sample data corresponding to different time points in the same waveform template) is read in two series so that the continuity of the waveform is not lost with the time axis expansion / contraction control. The processing for cross-fading is also performed in step S104. Further, as in the case of “normal performance”, interpolation calculation processing between waveform samples is also performed in step S104. Furthermore, as described with reference to FIG. 17, waveform templates are read in two series corresponding to predetermined element connection locations (the waveform template of the preceding element and the waveform template of the subsequent element), and both are cross-fade synthesized. Thus, the connection process is also performed in step S104. Further, the process of loop reading (repeated reading) the waveform template as described with reference to FIGS. 13 to 16 and the process of cross-fading the two series of loop read waveforms at this time are also performed in this step S104. Do.
If the waveform (Timbre) template to be used maintains the temporal pitch fluctuation component in the original waveform as it is, the value of the pitch template is given by the amount of change (difference value or ratio) with respect to the original pitch fluctuation. It is good to do so. That is, when the original temporal pitch fluctuation is left as it is, the value of the pitch template is maintained at a constant value (for example, “1”).
[0135]
In the next step S105, processing for forming an amplitude template is performed. In next step S106, the volume level of the waveform data of one sample generated in step S104 is variably controlled by the amplitude envelope value formed in step S105, and this is controlled by the waveform buffer W-BUF indicated by the current address pointer. Adds to the waveform sample data already stored at the address location. In other words, the waveform sample data of other channels for the same sample point is added and accumulated. Next, in step S107, it is checked whether or not processing for one frame has been completed. If not completed yet, go to step S108 to prepare the next sample (advance the address pointer next).
Similarly to the above, when the waveform (Timbre) template to be used maintains the temporal amplitude fluctuation component in the original waveform as it is, the value of the amplitude (Amp) template is the amount of change with respect to the original amplitude fluctuation. It is good to give by (difference value or ratio). That is, when the original temporal amplitude fluctuation is left as it is, the value of the amplitude template is maintained at a constant value (for example, “1”).
[0136]
Next, an example of time axis expansion / contraction control (TSC control) will be described.
High-quality waveform consisting of multiple periodic waveforms, that is, having specific articulation characteristics, and waveform data consisting of a certain amount of data (number of samples or number of addresses), independent of the tone reproduction pitch, The time length expansion and contraction proposed by the present applicant in another application (for example, Japanese Patent Application No. 9-130394) can be variably controlled without losing the overall characteristics of the waveform. This can be realized by using control (TSC control). The main point of this TSC control is to expand and contract the waveform data existence time length on the time axis of a multi-period waveform having a constant waveform data amount while maintaining a constant reproduction sampling frequency and a predetermined reproduction pitch. In the case of compression, the appropriate part of the waveform data is skipped for reading, and in the case of expansion, the appropriate part of the waveform data is repeatedly read, and the waveform data by the skipping or partial repeated reading is read. In order to remove discontinuities, crossfade synthesis is performed.
[0137]
FIG. 31 is a diagram conceptually showing an outline of this time axis expansion / contraction process (TSC control). (A) shows an example of a time template that changes over time. The time template is composed of data indicating the time axis expansion / contraction ratio (this is called CRate), the vertical axis is the data CRate, and the horizontal axis is time t. The time axis expansion / contraction ratio data CRate indicates a ratio based on “1”. When “1”, the time axis expansion / contraction is not performed. When the time axis expansion / contraction ratio data CRate is larger than “1”, the time axis expansion / contraction is indicated. When it is smaller than “1”, it indicates the extension of the time axis. FIGS. 31B to 31D show examples in which time axis expansion / contraction control according to the time axis expansion / contraction ratio data CRate is performed using the virtual read address VAD and the real read address RAD. A solid line indicates a real read address RAD, and a broken line indicates a virtual read address VAD. (B) shows an example of time axis compression control corresponding to the time axis expansion / contraction ratio data CRate (> 1) at point P1 in the time template of (a), and (c) shows the time template in the time template of (a). An example in which the time axis expansion / contraction ratio data CRate (= 1) at the point P2 is not expanded or contracted is shown. (D) shows the time axis expansion ratio data CRate (<1) at the point P3 in the time template of (a). A corresponding example of time axis extension control is shown. In (c), the solid line indicates the progress of the original waveform read address according to the pitch information, and the real read address RAD and the virtual read address VAD match.
[0138]
The actual read address RAD is an address used for actually reading waveform sample data from the waveform template, and changes at a constant change rate according to desired pitch information. For example, by regularly accumulating frequency numbers corresponding to a desired pitch, an actual read address RAD having a certain slope corresponding to the pitch can be obtained. The virtual read address VAD assumes a desired expansion or compression control state of the length of the waveform data on the time axis, and in order to achieve the desired time axis expansion or compression, the waveform sample from which address position is currently selected. This is an address indicating whether data should be read out. Therefore, using the desired pitch information and the time axis expansion / contraction ratio data CRate, address data that changes with the inclination obtained by correcting the inclination according to the pitch information by the expansion / contraction ratio data CRate is generated as a virtual read address VAD. The real read address RAD and the virtual read address VAD are compared, and when the separation width of the real read address RAD from the virtual read address VAD exceeds a predetermined width, it is instructed to switch the value of the real read address RAD. In accordance with the instruction, the numerical value of the actual read address RAD is shift-controlled as appropriate so as to eliminate the separation of the actual read address RAD from the virtual read address VAD.
[0139]
FIG. 33 is an enlarged view showing the same state as FIG. The alternate long and short dash line exemplifies the original address progression according to the pitch information, and corresponds to the solid line in FIG. A thick broken line illustrates the address progression of the virtual read address VAD. If the expansion / contraction ratio data CRate is 1, the address progress of the virtual read address VAD coincides with the original address progress of the one-dot chain line, and there is no change in the time axis. When compressing the time axis, the expansion / contraction ratio data CRate takes an appropriate value of 1 or more, and the inclination of the address progress of the virtual read address VAD becomes relatively large as shown in the figure. A thick solid line illustrates the address progression of the actual read address RAD. The inclination of the address progression of the actual read address RAD coincides with the original inclination of the address progression according to the pitch information indicated by the one-dot chain line. In this case, since the inclination of the address progress of the virtual read address VAD is relatively large, the address progress of the actual read address RAD gradually lags behind the address progress of the virtual read address VAD as time elapses. Then, when the separation width exceeds a predetermined value, a switching instruction (indicated by an arrow in the figure) is issued, and the actual read address RAD is shifted by an appropriate amount in the direction to eliminate the separation as shown in the figure. As a result, the address progress of the actual read address RAD changes along the address progress of the virtual read address VAD while maintaining the inclination according to the pitch information, and exhibits a characteristic compressed in the time axis direction. Therefore, by reading the waveform sample data of the waveform template in accordance with such an actual read address RAD, it is possible to obtain a waveform signal in which the waveform is compressed in the time axis direction without changing the pitch of the musical sound to be reproduced.
[0140]
FIG. 34 is an enlarged view showing the same state as that in FIG. In this case, the expansion / contraction ratio data CRate is less than 1, and the inclination of the address progress of the virtual read address VAD indicated by the thick broken line is relatively small. Therefore, when the address progress of the real read address RAD gradually progresses more than the address progress of the virtual read address VAD as time elapses and the separation width becomes a predetermined width or more, a switching instruction (indicated by an arrow in the figure) is issued. As shown in the figure, the actual read address RAD is shifted by an appropriate amount in the direction to eliminate the separation. As a result, the address progress of the real read address RAD changes along the address progress of the virtual read address VAD while maintaining the inclination according to the pitch information, and exhibits a characteristic expanded in the time axis direction. Therefore, by reading the waveform sample data of the waveform template in accordance with such an actual read address RAD, it is possible to obtain a waveform signal in which the waveform is expanded in the time axis direction without changing the pitch of the musical sound to be reproduced.
[0141]
Note that the shift of the actual read address RAD in the direction to eliminate the separation is preferably such that the waveform data read immediately before the shift and the waveform data read immediately after the shift are smoothly connected by this shift. In addition, as indicated by the wavy line in the figure, it is preferable to perform cross-fade synthesis in an appropriate period at the time of switching. The wavy line indicates the address progress of the actual read address RAD2 for the crossfade subsequence. As shown in the figure, this crossfade subsequence actual read address RAD2 has the same rate as that of the actual read address RAD (ie, the inclination) on extension of the address progression of the actual read address RAD before the shift when the switching instruction is issued. ). In an appropriate cross-fade period, cross-fade synthesis is performed so that the waveform smoothly transitions from the waveform read corresponding to the sub-sequence actual read address RAD2 to the waveform read corresponding to the main-sequence actual read address RAD. The In this example, the sub-sequence actual read address RAD2 may be generated only during at least the required cross-fade period.
Note that the TSC control is not limited to the TSC control example in which the cross-fade synthesis is partially performed as described above, and the TSC control in which the cross-fade synthesis process according to the value of the time axis expansion / contraction ratio CRate is always performed may be employed. .
[0142]
In the case of generating waveform sample data by repeatedly reading the waveform template (that is, loop waveform) of the partial vector PVQ as shown in FIGS. 13 to 15, basically, the comparison is made by changing the number of loops. The time length of the entire loop readout waveform can be variably controlled independently of the tone reproduction pitch. That is, when a specific crossfade curve is specified by data designating the crossfade interval length, the crossfade interval length (time length or loop count) is determined accordingly. Here, the speed of the crossfade is variably controlled by variably controlling the slope of the crossfade curve according to the time axis expansion / contraction ratio indicated by the time template. Eventually, the time length of the crossfade interval is variably controlled. In the meantime, since the musical tone reproduction pitch is not affected, the time length of the crossfade section is variably controlled by variably controlling the number of loops.
[0143]
By the way, when the time on the time axis of the reproduction waveform data is expanded / contracted by the time axis expansion / contraction control, it is desirable to perform expansion / contraction control of the time axis of the pitch template and the amplitude template in accordance with the expansion / contraction control. Therefore, in steps S103 and S105 in FIG. 30, the time axis of the pitch template and amplitude template created in the step is subjected to expansion / contraction control according to the time template created in step S102.
[0144]
In addition, it is good also as a hybrid type of a software sound source and a hardware sound source, without comprising all the musical tone synthesis functions with a software sound source. Further, the tone synthesis process according to the present invention may be performed only by the hardware tone generator. Alternatively, the tone synthesis process according to the present invention may be performed using a DSP (digital signal processor). In addition, regardless of whether a software sound source, a hardware sound source, or a hybrid type sound source method is used, the waveform forming method is not limited to a simple PCM waveform memory reading method, and various data compression techniques are used as described above. Any appropriate method can be used, such as a method based on parameter calculation according to various waveform synthesis algorithms.
[0145]
【The invention's effect】
As described above, according to the present invention, the storage means for storing a plurality of waveform data taken out in a distributed manner from the original waveform to which vibrato is applied, and one of the waveform data is repeatedly read out between predetermined times, Further, since the waveform data to be read is switched in order, a predetermined read sequence is executed, and a read means that realizes vibrato over a plurality of cycles by repeating this read sequence is provided. Compared to the case where all the original waveforms are stored, the storage capacity of the waveform data stored in the storage means can be reduced by extracting and storing a plurality of waveform data from an appropriate range such as a cycle or a plurality of cycles or less than one cycle. It is possible to save and to reflect as much as possible the characteristics of the vibrato in the original waveform by decentralized extraction. Waveform data for high-quality vibrato can be obtained. In this way, since each waveform data taken out in a distributed manner reflects the characteristics of vibrato in the original waveform, the tone waveform obtained by repeating and combining these is comparable to the vibrato in the original waveform. High quality vibrato is included and various vibrato elements such as vibrato cycle can be controlled in various ways by variably controlling how to read each waveform data from the storage means. The vibrato sound can be generated with high controllability, and the data storage capacity can be saved.
[0146]
In addition, the vibrato depth and associated amplitude fluctuations can be controlled by changing the waveform data readout speed over time or by changing the amplitude of the waveform data read out corresponding to the readout sequence over time. Can do. Further, it further comprises control data generating means for generating time control data for controlling the time of one cycle of vibrato, and the time for repeatedly reading one waveform data in the reading means is variably controlled by this recording time control data, The read sequence time can be controlled, and the vibrato cycle can be variably controlled.
[0147]
Further, a storage means for storing a plurality of distributed waveform data corresponding to a plurality of vibrato cycles, and a vibrato cycle to which each waveform data belongs while maintaining a relative time position within one vibrato cycle of each waveform data. By changing the position, setting means for arbitrarily variably setting the reading order of each waveform data over a plurality of cycles of vibrato, and reading the waveform data from the storage means repeatedly between predetermined times, and setting the waveform data to be read By virtue of switching in order according to the read order, the reading means for realizing vibrato over a plurality of periods is provided, so that the relative time position within one vibrato period of each waveform data is maintained and the vibrato period to which each waveform data belongs Various unions without changing the position by giving a sense of incongruity In can be carried out the synthesis of vibrato sound, it exhibits an excellent effect that.
[Brief description of the drawings]
FIG. 1 is a flowchart showing an example of a musical sound database creation procedure according to a musical sound data creation method related to the present invention.
FIG. 2 is a diagram schematically showing an example of a musical score of a series of music phrases, an example of division of a performance section in units of articulations corresponding thereto, and an example of analysis of musical sound elements constituting the articulation elements.
FIG. 3 is a diagram showing a specific example of a plurality of musical tone elements analyzed from a waveform corresponding to one articulation element.
FIG. 4 is a diagram showing a configuration example of a database.
5 is a diagram showing a specific example of an articulation sequence AESEQ and an articulation element vector AEVQ in the articulation database ADB of FIG.
FIG. 6 is a diagram showing a specific example of an articulation element vector AEVQ including attribute information.
FIG. 7 is a flowchart showing an example of a tone synthesis procedure according to the tone data creation method according to the present invention.
FIG. 8 is a view showing a configuration example of automatic performance sequence data adopting a musical tone synthesis method according to a musical tone data creating method according to the present invention.
FIG. 9 is a diagram showing specific examples of several performance style sequences according to the present invention.
FIG. 10 is a diagram showing an example of connection processing by cross-fade synthesis between articulation elements in one rendition style sequence.
FIG. 11 is a diagram outlining an example of editing a rendition style sequence (articulation element sequence).
FIG. 12 is a flowchart showing an example of an editing tree of a rendition style sequence (articulation element sequence).
FIG. 13 is a diagram showing the concept of partial vectors.
FIG. 14 is a flowchart partially showing a musical sound synthesis processing procedure of an articulation element including a partial vector.
FIG. 15 is a diagram showing an example of vibrato synthesis processing.
FIG. 16 is a diagram showing another example of vibrato synthesis processing.
FIGS. 17A and 17B are diagrams showing some rules of a waveform template connection process example; FIGS.
FIGS. 18A and 18B are diagrams illustrating some rules of a connection processing example of template data other than a waveform template (template data having an envelope waveform shape). FIGS. .
FIG. 19 is a diagram showing some implementation means of the connection rule shown in FIG.
FIG. 20 is a diagram showing some implementation means of the connection rule shown in FIG.
FIG. 21 is a block diagram showing an outline of various template data connection processing and musical tone synthesis processing based on template data.
FIG. 22 is a block diagram showing a hardware configuration example of a musical tone synthesis apparatus according to an embodiment of the present invention.
23 is a block diagram showing a detailed example of a waveform interface in FIG. 22 and a configuration example of a waveform buffer in a RAM.
FIG. 24 is a time chart showing an outline of a tone generation process executed based on MIDI performance data.
FIG. 25 is a time chart showing an outline of a performance style performance process (articulation element musical sound synthesis process) executed based on data of a performance style sequence (articulation element sequence AESEQ).
FIG. 26 is a flowchart showing a main routine of musical tone synthesis processing executed by the CPU of FIG. 22;
FIG. 27 is a flowchart showing an example of “automatic performance processing” in FIG. 26;
FIG. 28 is a flowchart showing an example of “sound source processing” in FIG. 26;
FIG. 29 is a flowchart showing an example of “one-waveform waveform data generation processing” for “normal performance” in FIG. 28;
FIG. 30 is a flowchart showing an example of “one-frame waveform data generation processing” for “performance performance” in FIG. 28;
FIG. 31 is a diagram conceptually showing an outline of time axis expansion / contraction processing (TSC control).
FIG. 32 is a diagram for explaining a hierarchical structure of a rendition style sequence.
FIG. 33 is a diagram showing an example of a temporal progress state of a waveform read address when time axis compression is performed by time axis expansion / contraction control.
FIG. 34 is a diagram showing an example of a temporal progress state of a waveform read address when the time axis is extended by the time axis expansion / contraction control.
[Explanation of symbols]
ADB Articulation Database
TDB template database
10 CPU
11 ROM (Read Only Memory)
12 RAM (Random Access Memory)
13 Hard disk devices
14,15 Removable disk device
16 Display
17
18 Waveform interface
19 Timer
20 Network interface
21 MIDI interface
22 Data and address bus
Claims (9)
前記波形データの1つを繰返し読み出しし、かつ読み出すべき波形データを順番に切り替えることで、所定の読み出しシーケンスを実行し、かつこの読み出しシーケンスを繰返すことで複数周期にわたるビブラートを実現する読出手段と、
ビブラート1周期の間のピッチの時間的変化を示す制御データを発生する制御データ発生手段と
を備え、前記読出手段は、この制御データに応じて前記波形データの読み出し速度を時間的に変化することを特徴とするビブラート発生装置。Storage means for storing a plurality of waveform data dispersedly extracted from one period of vibrato of the original waveform to which vibrato is applied;
Aforementioned Repetitive flashing reads one of the waveform data, and waveform data to be read out by switching sequentially, and reading means for executing a predetermined reading sequence, and to achieve a vibrato over multiple cycles by repeating this read sequence ,
Control data generating means for generating control data indicating a temporal change in pitch during one period of vibrato , and the reading means sets the reading speed of the waveform data according to the control data in terms of time. A vibrato generating device characterized by changing to
前記読出手段によって読み出された波形データの振幅をこの制御データに応じて時間的に制御する振幅制御手段と
を更に備えた請求項1又は2に記載のビブラート発生装置。Control data generating means for generating control data indicating a temporal change in amplitude corresponding to the read sequence;
The vibrato generating device according to claim 1 or 2, further comprising amplitude control means for temporally controlling the amplitude of the waveform data read by the reading means in accordance with the control data.
前記メモリから前記波形データを繰返し読み出しし、かつ読み出すべき波形データを順番に切り替えることで、所定の読み出しシーケンスを実行し、かつこの読み出しシーケンスを繰返すことで複数周期にわたるビブラートを実現するステップと、
ビブラート1周期の間のピッチの時間的変化を示す制御データを発生するステップと
を備え、前記制御データに応じて前記メモリからの前記波形データの読み出し速度を時間的に変化することを特徴とするビブラート発生方法。Extracting a plurality of distributed waveform data from one vibrato period of the original waveform to which vibrato is applied, and storing the data in a memory;
Aforementioned Repetitive flashing reads the waveform data from the memory, and the waveform data to be read out by switching sequentially the steps of: running a predetermined readout sequence, and to achieve a vibrato over multiple cycles by repeating this read sequence,
Generating control data indicating a temporal change in pitch during one vibrato period, and temporally changing the readout speed of the waveform data from the memory in accordance with the control data A vibrato generating method characterized by
前記各波形データの各ビブラート1周期内における相対的時間位置を保ちつつ、各波形データの属すべきビブラート周期の前記範囲内における位置を入れ替えることにより、ビブラートの複数周期にわたる各波形データの読み出し順序を任意に可変設定する設定手段と、
前記記憶手段から波形データを繰返し読み出しし、かつ読み出すべき波形データを前記設定された読み出し順序で順番に切り替えることで、複数周期にわたるビブラートを実現する読出手段と
を備えるビブラート発生装置。In response to a range over a plurality of cycles of vibrato, memory means for storing waveform data retrieved plurality distributed manner for each one vibrato period within the range,
While maintaining the relative time position in each of one vibrato period of each waveform data, by switching the position within the range of vibrato periods should belong of each waveform data, the reading order of the waveform data over a plurality of cycles of vibrato Setting means for arbitrarily variably setting;
It said storage means and Repetitive flashing reads waveform data from, and the waveform data to be read out by switching sequentially in the set reading sequence, vibrato generating device comprising a read means for implementing a vibrato over multiple cycles.
前記各波形データのビブラート1周期内における相対的時間位置を保ちつつ、各波形データの属すべきビブラート周期の前記範囲内における位置を入れ替えることにより、ビブラートの複数周期にわたる各波形データの読み出し順序を任意に可変設定するステップと、
前記メモリから波形データを繰返し読み出しし、かつ読み出すべき波形データを前記設定された読み出し順序で順番に切り替えることで、複数周期にわたるビブラートを実現するステップと
を備えるビブラート発生方法。A step corresponding to a range over a plurality of cycles of vibrato, taking out a plurality of dispersive waveform data for each one vibrato period within the range, stores it in the memory,
By changing the position of the vibrato period to which each waveform data should belong within the above range while maintaining the relative time position of each waveform data within one period of vibrato, the reading order of each waveform data over a plurality of periods of vibrato is arbitrary Variable setting step,
The memory waveform data read-back therein from, and the waveform data to be read out by switching the order in the set reading sequence, vibrato generating method comprising the steps of realizing the vibrato over multiple cycles.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27830798A JP3669177B2 (en) | 1997-09-30 | 1998-09-30 | Vibrato generating apparatus and method |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9-284423 | 1997-09-30 | ||
JP28442397 | 1997-09-30 | ||
JP10-244421 | 1998-08-13 | ||
JP24442198 | 1998-08-13 | ||
JP27830798A JP3669177B2 (en) | 1997-09-30 | 1998-09-30 | Vibrato generating apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000122664A JP2000122664A (en) | 2000-04-28 |
JP3669177B2 true JP3669177B2 (en) | 2005-07-06 |
Family
ID=27333241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27830798A Expired - Fee Related JP3669177B2 (en) | 1997-09-30 | 1998-09-30 | Vibrato generating apparatus and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3669177B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4826276B2 (en) * | 2006-02-20 | 2011-11-30 | ヤマハ株式会社 | Musical sound synthesizer and program |
JP4816441B2 (en) * | 2006-12-22 | 2011-11-16 | ヤマハ株式会社 | Musical sound synthesizer and program |
-
1998
- 1998-09-30 JP JP27830798A patent/JP3669177B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000122664A (en) | 2000-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6150598A (en) | Tone data making method and device and recording medium | |
JP3644263B2 (en) | Waveform forming apparatus and method | |
JP3744216B2 (en) | Waveform forming apparatus and method | |
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 (en) | Waveform generation method and apparatus | |
JP3675184B2 (en) | Waveform forming apparatus and method | |
JP3724222B2 (en) | Musical sound data creation method, musical sound synthesizer, and recording medium | |
JP3520781B2 (en) | Apparatus and method for generating waveform | |
JP3669177B2 (en) | Vibrato generating apparatus and method | |
JP3829780B2 (en) | Performance method determining device and program | |
US6835886B2 (en) | Tone synthesis apparatus and method for synthesizing an envelope on the basis of a segment template | |
JP3724223B2 (en) | Automatic performance apparatus and method, and recording medium | |
JP3873985B2 (en) | Musical sound data editing method and apparatus | |
JP3654084B2 (en) | Waveform generation method and apparatus | |
JP3562341B2 (en) | Editing method and apparatus for musical sound data | |
JP3904012B2 (en) | Waveform generating apparatus and method | |
JP3613191B2 (en) | Waveform generation method and apparatus | |
JP3726765B2 (en) | Waveform forming apparatus and method | |
JP3760909B2 (en) | Musical sound generating apparatus and method | |
JP3933162B2 (en) | Waveform generation method and apparatus | |
JP3832422B2 (en) | Musical sound generating apparatus and method | |
JP4007374B2 (en) | Waveform generation method and apparatus |
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 |
|
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: 20050322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050404 |
|
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: 20090422 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090422 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100422 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110422 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120422 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130422 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140422 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |