JP4007374B2 - 波形生成方法及び装置 - Google Patents
波形生成方法及び装置 Download PDFInfo
- Publication number
- JP4007374B2 JP4007374B2 JP2005099110A JP2005099110A JP4007374B2 JP 4007374 B2 JP4007374 B2 JP 4007374B2 JP 2005099110 A JP2005099110 A JP 2005099110A JP 2005099110 A JP2005099110 A JP 2005099110A JP 4007374 B2 JP4007374 B2 JP 4007374B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- data
- sample data
- sample
- vector
- 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
Description
また、上述の全波形の波形データを記憶する方式では、自然楽器固有の各種奏法(若しくはアーティキュレーション)による音色変化を忠実に表現することが可能であるが、記憶した波形データの通りしか楽音を再生することができないので、制御性に乏しく、また、編集性にも乏しかった。例えば、所望の奏法(若しくはアーティキュレーション)に対応する波形データを演奏データに応じた時間軸制御等の特性制御を行うことが非常に困難であった。
これによれば、生成すべき波形を指示するサンプル識別情報を受け取る際に波形を修正するための補正情報も受け取り、記憶手段に記憶したサンプルデータを該サンプル識別情報に応じて読み出し、このサンプルデータにおける各代表点のサンプルデータの時間位置及びレベルの少なくとも一方を補正情報に応じて修正することで、目的とする波形を生成するようにしたことにより、精巧な波形再現性を確保し、かつ、波形生成の際の特性制御を容易かつ簡便にかつ制御性豊かに行うことができる。
代表点指示データに基づくサンプルデータの補正のやり方は、適宜であってよい。例えば、或る補正情報に応じて、サンプルデータのうち代表点指示データによって指示された代表的サンプル点のデータを修正し、他のサンプル点のデータをこの代表的サンプル点の変更に追従して変更するようなやり方を採用してよい。あるいは、或る補正情報に応じて、サンプルデータのうち代表点指示データによって指示された代表的サンプル点のデータのみを修正し、他のサンプル点のデータは変更しない、というようなやり方であってもよい。
ステップS1では、後述する奏法テーブル及びコードブックを記憶するためのデータベースを準備する。このデータベースとなる媒体としては、例えばハードディスク109を使用する。そして、様々な自然楽器の様々な演奏態様による波形データを収集する(ステップS2)。すなわち、様々な自然楽器の様々な実際の演奏音を外部波形入力(例えば、マイクロフォン等)から波形取込部107を介して取り込み、それらの演奏音の波形データ(オリジナル波形データ)をハードディスク109の所定のエリアに記憶する。この際に取り込む演奏音の波形データは演奏全体の波形データであってもよいし、あるフレーズ、あるいは1音、あるいはアタック部やリリース部といった特徴のある演奏の一部の波形データだけであってもよい。次に、こうして得られた自然楽器固有の様々な演奏態様による演奏音の波形データを特徴的な部分毎に切り分けて、チューニング及びファイル名付けする(ステップS3)。すなわち、取り込んだオリジナル波形データを波形形状の変化を代表する一部の波形(例えば、アタック部波形、ボディ部波形、リリース部波形、ジョイント部波形等)毎に分離して((1) 切り分け)、分離した1周期乃至複数周期の波形データがそれぞれいかなるピッチであるかを判定し((2) チューニング)、さらにそれぞれ分離した波形データに対してファイル名を付与する((3) ファイル名付け)。ただし、アタック部分やリリース部分といった演奏の一部の波形データを取り込んでいる場合には、このような波形の分離((1) 切り分け)を省略できる。
次に、周波数分析による成分分離を行う(ステップS4)。すなわち、ステップS3で分離生成された一部の波形データをFFT(高速フーリエ変換)分析して複数成分に分離し(この実施例では、調和成分と調和外成分に分離する)、さらに各成分(調和成分、調和外成分等)から波形、ピッチ、振幅の各要素毎の特徴抽出、つまり特徴分離を行う(ただし、調和成分と調和外成分に分離する場合、調和外成分はピッチを持たないものであることから調和外成分についてのピッチ分離は行わなくてよい)。例えば「波形」(Timbre)要素は、ピッチと振幅をノーマライズした波形形状のみ特徴を抽出したものである。「ピッチ」(Pitch)要素は、基準ピッチに対するピッチ変動特性を抽出したものである。「振幅」(Amplitude)要素は、振幅エンベロープ特性を抽出したものである。
なお、上述の「波形データベース作成処理」において、奏法モジュールを任意に追加・削除したり、あるいは奏法モジュールのデータ等の編集を行うことができるようにしてもよい。
奏法モジュールはハードディスク109上にデータベース化されて構成される奏法テーブルに記憶され、1つの奏法モジュールは「奏法ID」と「奏法パラメータ」の組み合わせによって指定することができるようになっている。「奏法ID」は、その中に楽器情報及びモジュールパーツ名を含む。例えば、「奏法ID」は次のように定義される。例えば、1つの「奏法ID」が32ビット(第0〜31ビット)列で表現されているとすると、そのうちの6ビットを使用して楽器情報を表現する。例えば、当該6ビット列が「000000」であればAltoSax(アルト・サックス)を示し、「001000」であればViolin(バイオリン)を示す楽器情報である。この楽器情報は前記6ビット列のうち上位3ビット列を楽器種類の大分類に使用し、下位3ビット列を楽器種類の小分類のために使用するなどしてよい。また、32ビット列の別の6ビットを使用してモジュールパーツ名を表現する。例えば、当該6ビット列が「000000」であればNormalAttack、「000001」であればBendAttack、「000010」であればGraceNoteAttack、「001000」であればNormalShortBody、「001001」であればVibBody、「001010」であればNormalLongBody、「010000」であればNormalRelease、「011000」であればNormalJoint、「011001」であればGraceNoteJointを示すモジュールパーツ名である。勿論、上述した構成に限られないことは言うまでもない。
このように、奏法モジュールを「奏法ID」と「奏法パラメータ」で指定できるようにすることで、例えばAltoSax [NormalAttack]であればアルトサックスのノーマルアタック部を示す複数データ(後述する要素データ)の中から所望の奏法パラメータに応じたデータを指定することができるし、Violin[BendAttack]であればバイオリンのベンドアタック部を示す複数データ(後述する要素データ)の中から所望の奏法パラメータに応じたデータを指定することができる。
データ1:奏法モジュールのサンプル長。
データ2:ノートオンタイミングの位置。
データ3:調和成分の振幅(Amplitude)要素のベクトルIDと代表点値列。
データ4:調和成分のピッチ(Pitch)要素のベクトルIDと代表点値列。
データ5:調和成分の波形(Timbre)要素のベクトルID。
データ6:調和外成分の振幅(Amplitude)要素のベクトルIDと代表点値列。
データ7:調和外成分の波形(Timbre)要素のベクトルID。
データ8:調和成分の波形(Timbre)要素の塊部の開始位置。
データ9:調和成分の波形(Timbre)要素の塊部の終了位置(調和成分の波形(Timbre)要素のループ部の開始位置)。
データ10:調和外成分の波形(Timbre)要素の塊部の開始位置。
データ11:調和外成分の波形(Timbre)要素の塊部の終了位置(調和外成分の波形(Timbre)要素のループ部の開始位置)。
データ12:調和外成分の波形(Timbre)要素のループ部の終了位置。
図3は、当該奏法モジュールに対応する実波形区間を構成する各成分及び要素の一例を模式的に示す図であり、上から当該区間における調和成分の振幅(Amplitude)要素、調和成分のピッチ(Pitch)要素、調和成分の波形(Timbre)要素、調和外成分の振幅(Amplitude)要素、調和外成分の波形(Timbre)要素の一例を示す。なお、図に示している数字は上記各データの番号に対応するように付してある。
1は、当該奏法モジュールに該当する波形のサンプル長(波形区間長)である。例えば、当該奏法モジュールの基となったオリジナル波形データの全体の時間長さに対応している。2はノートオンタイミングの位置であり、当該奏法モジュールのどの時間位置にも可変に設定することが可能である。原則的には、このノートオンタイミングの位置から当該波形に従った演奏音の発音が開始されるが、ベンドアタックなどの奏法によってはノートオンタイミングよりも波形成分の立ち上がり開始時点が先行する場合がある。3は、コードブックに記憶された調和成分の振幅(Amplitude)要素のベクトルデータを指し示すためのベクトルID及び代表点値列を示す(図において、黒く塗りつぶした正方形で示す2点が代表点を示す)。4は、調和成分のピッチ(Pitch)要素のベクトルデータを指し示すためのベクトルID及び代表点値列を示す。6は、調和外成分の振幅(Amplitude)要素のベクトルデータを指し示すためのベクトルID及び代表点値列を示す。代表点値列データはベクトルIDによって指示されるベクトルデータ(複数サンプル列からなる)を変更制御するためのデータであり、代表的サンプル点のいくつかを指示(特定)するものである。特定された代表的サンプル点に関してその時間位置(横軸)とレベル軸(縦軸)を変更若しくは補正することにより、他の残りのサンプル点も連動して変更し、もってベクトルの形状を変更する。例えば、そのサンプル数より少ない数の分散的サンプルを示すデータであるが、勿論これに限らず、代表点値列データはサンプルとサンプルの間の中間位置のデータであってもよいし、あるいは所定の範囲(連続的な複数サンプル)にわたるデータであってもよい。また、サンプル値そのものでなく、差分や乗数等のデータであってもよい。この代表点を横軸及び/又は縦軸(時間軸)に移動することによって、各ベクトルデータの形状を変えることができる。つまり、エンベロープ波形の形状を変えることができる。5は、調和成分の波形(Timbre)要素のベクトルデータを指し示すためのベクトルIDである。7は、調和外成分の波形(Timbre)要素のベクトルデータを指し示すためのベクトルIDである。8は、調和成分の波形(Timbre)要素の波形の塊部の開始位置である。9は、調和成分の波形(Timbre)要素の波形の塊部の終了位置(あるいは、調和成分の波形(Timbre)要素の波形のループ部の開始位置)である。すなわち、8から開始する三角形は特徴のある波形形状が連続的に記憶されているノンループ波形の部分を示し、その後に続く9から開始する長方形は繰り返し読み出しすることのできるループ波形の部分を示す。ノンループ波形は、奏法(若しくはアーティキュレーション)等の特徴を有する高品質な波形である。ループ波形は、1周期または適当な複数周期分の波形からなる比較的単調な音部分の単位波形である。10は、調和外成分の波形(Timbre)要素の波形の塊部の開始位置である。11は、調和外成分の波形(Timbre)要素の波形の塊部の終了位置(あるいは、調和外成分の波形(Timbre)要素の波形のループ部の開始位置)である。12は、調和外成分の波形(Timbre)要素の波形のループ部の終了位置である。上記データ3〜データ7は各成分要素毎にコードブックに記憶されているベクトルデータを指し示すための識別情報のデータであり、上記データ2及びデータ8〜データ12はベクトルデータから元の(分離前の)波形を組み立てるための時間情報のデータである。このように、奏法モジュールのデータはベクトルデータを指し示すためのデータと時間情報のデータとから構成される。このような奏法テーブルに記憶されている奏法モジュールのデータを使用することにより、コードブックに記憶されている波形の素材(ベクトルデータ)を使って、波形を自由に組み立てることができることになる。つまり、奏法モジュールは、奏法(若しくはアーティキュレーション)に応じて生成する波形の挙動を表すデータである。なお、奏法モジュールのデータの種類や数は各奏法モジュール毎に異なっていてよい。また、上述したデータ以外にも他の情報等を具えていてよい。例えば、波形の時間軸を伸長/圧縮制御するためのデータなどを持っていてもよい。
曲データ再生部101Aは、奏法記号付き曲データの再生処理を行う(ステップS11)。最初に、曲データ再生部101Aは奏法記号付き曲データ(演奏情報)を受信する。通常の楽譜には、そのままではMIDIデータとならないような強弱記号(クレッシェンドやデクレッシェンド等)、テンポ記号(アレグロやリタルダンド等)、スラー記号、テヌート記号、アクセント記号等の音楽記号が付されている。そこで、これらの記号を「奏法記号」としてデータ化して、この「奏法記号」を含むMIDI曲データが「奏法記号付き曲データ」である。「奏法記号」は、チャートIDとチャートパラメータとから構成する。チャートIDは楽譜に記載される音楽記号を示すIDであり、チャートパラメータはチャートIDで示される音楽記号の内容の程度を示すパラメータである。例えば、チャートIDが"ビブラート"を示す場合にはビブラートの速さや深さ等がチャートパラメータとして付与され、チャートIDが"クレッシェンド"を示す場合にはクレッシェンドのスタート時の音量、クレシェンドのエンド時の音量、音量変化する時間長等がチャートパラメータとして付与される。
次に、波形合成部101Dはパケットストリームに応じてコードブックからベクトルデータを取り出し、該ベクトルデータをベクトルパラメータに応じて変形し、変形したベクトルデータに基づいて波形を合成する(ステップS14)。それから、他パートの波形生成処理を行う(ステップS15)。ここで、他パートとは、複数の演奏パートのうち奏法合成処理を行わない、通常の楽音波形合成処理が適用される演奏パートである。例えば、これらの他のパートは通常の波形メモリ音源方式で楽音生成を行う。この「他パートの波形生成処理」は、専用のハードウエア音源(外部の音源ユニットやコンピュータに装着可能な音源カード)に行わせてもよい。説明を簡略化するために、この実施例では奏法(若しくはアーティキュレーション)に応じた楽音生成を行うのは1パートのみの場合とする。勿論、複数パートで奏法再生してもよい。
奏法合成部101Cは、楽譜解釈部101Bからの奏法指定(奏法ID+奏法パラメータ)と時刻情報のデータに基づいて、波形合成部101Dに供給する各種パケットストリームを作成する。奏法合成部101Cで各音色毎に使用している奏法モジュールは固定的ではなく、ユーザが新たに奏法モジュールを使用中の奏法モジュールに追加したり、使用している奏法モジュールの一部の奏法モジュールの使用を中止したりすることができる。また、奏法合成部101Cでは、選択された要素データと奏法パラメータの値との間のズレ分を補正するための補正情報を作成する処理や、前後の奏法モジュールの波形特性を滑らかに接続する接続部の平滑化などの処理も行う(詳しくは後述する)。
なお、標準的には楽譜解釈部101Bから奏法合成部101Cに対してデータが与えられるがそれに限らず、前述のとおり、楽譜解釈部101Bにより既に解釈の終わっている奏法指定付き曲データ乃至人間が楽譜の解釈をして奏法IDや奏法パラメータを付与した奏法指定付き曲データを用意して、それを再生したデータを奏法合成部101Cに供給するようにしてもよい。
奏法合成部101Cは、奏法ID及び奏法パラメータに応じて奏法テーブルから奏法モジュールの選択を行う(ステップS21)。すなわち、楽譜解釈部101Bから送信された奏法ID(楽器情報+モジュールパーツ名)と奏法パラメータに応じて1つの奏法モジュールを選択する。この際に、楽譜解釈部101Bは楽譜を解釈する前に楽器情報の示す音色に対応してどのようなモジュールパーツが奏法テーブルに存在するかを予めデータベースをチェックして確認し、存在しているパーツの範囲で奏法IDを指定する。なお、存在しないパーツが指定された場合には、その代わりに類似の特性を有する奏法IDが選択されるようにしてもよい。次に、該指定された奏法IDと奏法パラメータに応じて複数の要素データを選択する(ステップS22)。すなわち、指定された奏法IDと奏法パラメータとにより奏法テーブルを参照することにより、奏法モジュールを特定し、該モジュールから該奏法パラメータに対応した複数の要素データを選択する。この際に、奏法モジュール中に奏法パラメータに完全一致する要素データが存在しない場合には、その値に近い奏法パラメータに対応した要素データが選択される。
なお、上記ステップS23では、上記奏法パラメータのような補正情報によって、上記時刻情報が示す時間位置を補正するようにしてもよい。例えば、演奏データに基づいて得られる時間位置と上記時刻情報が示す時間位置とが一致しない場合に、演奏データに基づいて得られる時間位置に近い時間位置を示す時刻情報を選択して、そこで取得した時刻位置情報を演奏データに応じて補正することで、演奏データの意図する時刻位置情報を得ることができる。また、演奏データがタッチやベロシティのような可変制御ファクタを含む場合は、その可変制御ファクタに応じて時刻位置情報を補正することで、演奏データに応じた時刻位置情報の可変制御を行うことができる。補正情報は、このような時刻位置補正を行うための情報を含む。
この際、前の奏法モジュールの「リンク開始点」から、後の奏法モジュールの「リンク終了点」までの範囲で調整を行う。すなわち、「リンク開始点」から「リンク終了点」の範囲内にある代表点を「歩みより率」に基づいて調整する。この「歩みより率」は、前の奏法モジュールと後の奏法モジュールからそれぞれどれだけ歩み寄ったところで接続するかを制御するためのパラメータであり、後述するように前後の奏法モジュールの組み合わせに従って決定される。また、前後の奏法モジュールを接続した際に、波形の接続がうまく行かない場合には、前後いずれかの奏法モジュールでその波形特性のベクトルIDを間引くことにより接続を滑らかにする。この間引きを実現するために、「奏法モジュール組み合わせテーブル」と、これから参照される「間引き実行パラメータ範囲テーブル」と、さらにこれから参照される「間引き時間テーブル」を用意する。
この他にも、以下のような楽譜解釈部101Bにおけるリンク処理により波形特性を滑らかに接続することができる。例えば、奏法モジュールとは関係なく、奏法パラメータ(ダイナミクス値、ピッチパラメータ値等)の不連続部分を滑らかに接続する。あるいは、ビブラートからリリースへと移行する場合にビブラートを早めに減少させることにより、滑らかに接続する。
前の奏法モジュールと後の奏法モジュールとの接続部における代表点の値の不連続により両者間の接続点に段差が生じている場合、まずダイナミクス接続点(Amplitudeの場合)あるいはピッチ接続点(Pitchの場合)の目標値を、前後どちらの奏法モジュール側の値により近づけるかという指標の「歩みより率」を決定する。本実施例では「歩みより率」が図示のようなテーブルによって与えられるとする。例えば前の奏法モジュールのベクトルIDが「3」であり、後の奏法モジュールのベクトルIDが「7」である場合の「歩みより率」はテーブルから「30」と決定される。こうして決定された「歩みより率」により前の奏法モジュールの「リンク開始点」から「奏法モジュールの終了点」まで、徐々に目標値に向けてエンベロープ形状を変形する。また、後の奏法モジュールの「リンク終了点」から「奏法モジュール開始点」まで、徐々に目標値に向けてエンベロープ形状を変形する。例えば「歩みより率」が「30」と決定された場合、前の奏法モジュールに対する目標値は「30」であり、前の奏法モジュールは後の奏法モジュール側に「30」%歩みよりを行う(本実施例では、前の奏法モジュールにおける最後の代表点が下方に「30」%歩みよりする)。一方、後の奏法モジュールは前の奏法モジュール側に「70」(100−30)%歩みよりを行う(本実施例では、後の奏法モジュールにおける最初の代表点が上方に「70」%歩みよりする)。また、リンク開始点からリンク終了点までに存在する前後の奏法モジュールの複数代表点が上記歩みよりに伴って各々上下に歩みよりを行う。このように、歩みよりは前後する奏法モジュールの複数の代表点で行われる。なお、リンク開始点とリンク終了点は適宜定めてよいが、リンク開始点やリンク終了点を所望の代表点と同一の点に設定すると、図に示したようなリンク開始点やリンク終了点におけるエンベロープ形状の折れ曲がりがなくなるので望ましい。勿論、リンク開始点やリンク終了点を所望の代表点と同一の点に設定していない場合でも、エンベロープ形状に折れ曲がりが生じないように歩みよりを行うようにしてよいことは言うまでもない。
波形に関する要素データの調整(つまり、波形のリンク処理)の方法には種々あるが、その一例として、例えばアタック部あるいはジョイント部の奏法モジュールとボディ部の奏法モジュールとの接続(あるいは、ボディ部の奏法モジュールとリリース部あるいはジョイント部の奏法モジュールとの接続)において、波形の部分的間引きにより滑らかに接続する方法を提案する。波形と波形とを接続する際に、クロスフェード合成することはよく知られている。しかし、図8Aの例の場合のように、接続時点から最初のループ波形L1の開始位置までの時間tが短い場合、短い時間t内で急なクロスフェード合成をしなければならなくなる。そのような急なクロスフェード波形合成、つまり接続する波形と波形との間の時間が非常に接近している場合に当該波形間でクロスフェード波形合成を行うと、それに伴って大きなノイズを発生する波形を生ずることになり、好ましくない。そこで、波形の一部を間引き(削除)して接続する波形と波形との時間間隔を広げることにより、急なクロスフェード波形合成を行わないようにする。この場合に、アタック部やリリース部あるいはジョイント部における波形は1つの塊であって、波形を間引くことができないので、この場合はボディ部側のループ波形の間引きを行う。図8A及び図8Bでは、黒く塗りつぶした長方形で示したループ波形L1、L6・を間引きする。例えば、図8Aでは接続時点からの時間差が比較的長い2番目のループ波形L2とアタック部波形の末尾波形とをクロスフェード合成し、最初のループ波形L1は使用しない。同様に、図8Bではループ波形L5・とリリース部波形との間でクロスフェード合成を行い、波形L6・は使用しない。
なお、ジョイント部とは音と音の間(又は音部分と音部分の間)を任意の奏法でつなぐ波形区間のことである。
この場合には、アタック部あるいはリリース部等の奏法モジュールが波形間引きできる場合とできない場合とがある。アタック部の奏法モジュールが波形間引きできる例としてはベンドアタック部(後半にいくつかのループ波形を持つ)がある。また、前半にいくつかのループ波形を持つリリース部の場合も波形間引きが行える。このように、波形間引きできる側の奏法モジュールを波形間引きする。例えば、ベンドアタック部とリリース部とを接続する場合には、図8Cに示すようにベンドアタック部側のループ波形を間引きする(図8Cでは、ベンドアタック部側の黒く塗りつぶした長方形で示したループ波形を1つ間引きする)。また、ノーマルアタック部とループ波形を有するリリース部とを接続する場合には図8Dに示すようにリリース部側のループ波形を間引きする(図8Dでは、リリース部側の黒く塗りつぶした長方形で示したループ波形を1つ間引きする)。
なお、間引く対象とするループ波形は奏法モジュールと奏法モジュールとの接続部に最も近いループ波形(先頭あるいは最後に位置するループ波形)とすることに限らず、複数ループ波形から所定の優先順位に従って間引く対象とするループ波形を特定するようにしてもよい。
A.Sax [BendUpAttack]モジュールは、時刻t0から開始される。また、時刻t1は当該モジュール内のノートオンのタイミングであり、指示されたノートオンタイミングにあわせる。また、当該モジュールのパケットストリームの内容は、上記note、dynamics、depth等の奏法パラメータに基づいて制御される。A.Sax[NormalShortBody]モジュールは、アタックモジュール直後の時刻t2から開始される。時刻t3は、接続部において、その途中からビブラート奏法がスタートしているタイミングである。このタイミングは、例えば、曲データに付与されたビブラート記号の開始タイミングに基づいて決定される。時刻t5は、A.Sax[NormalRelease] モジュール内のノートオフタイミングであり、指示されたノートオフタイミングにあわせる。A.Sax[NormalRelease]モジュールの始まりの時刻t4はそれに応じて特定される。すなわち、時刻t1においてノートオンされ、時刻t5においてノートオフされることから、実際に当該パケットストリームから生成される波形に従って発音される時間は時刻t1から時刻t5までの時間である。このようなパケットストリームの場合に、時刻t2から時刻t4までの時間長と、その間のA.Sax[NormalRelease] モジュールとA.Sax[VibratoBody] モジュールの各サンプル長lengthの合計が合わないことが多く、適切に対処する必要が生ずる。このような場合、同じ奏法モジュールを繰り返すことによってサンプル長lengthの合計を前記時間長にあわせるか、奏法モジュールのサンプル長を可変して前記時間長に合わせるか、あるいは前記両方を組み合わせて用いて前記時間長を合わせる。このようにして、各モジュール間で調節して波形接続を行うようになっている。上述の例では、A.Sax[NormalShortBody]モジュールを繰り返すことにより、その後に続くA.Sax[VibratoBody] モジュールと波形接続を行っている。同様に、A.Sax[VibratoBody] モジュールを繰り返すことにより、その後に続くA.Sax[NormalRelease]モジュールとの波形接続を行っている。
奏法合成部101Cは、上述したようにパケットストリームを各成分(調和成分及び調和外成分)毎に生成する。これらのパケットストリームは複数個のパケットで構成されてなり、1個1個のパケットはベクトルIDとパケットの時刻情報とを具える。それに加えて、調和成分の振幅(Amplitude)要素、ピッチ(Pitch)要素、調和外成分の振幅(Amplitude)要素の場合には各代表点の確定値などを具える。勿論、これに限られるものではなく、ベクトルIDとパケットの時刻情報に加えて他の情報を具えていてよい。このような1つ1つのパケットの内容に従って、各成分毎にパケットストリームが構成されている。このように、パケットストリームには複数のパケット及びその各パケットの時刻情報(開始時刻)が含まれる。
なお、楽器の種類等によってパケットストリームの数が異なっていてよいことは言うまでもない。
奏法合成部(アーティキュレーター)101Cで作成された各成分要素毎のパケットストリームは、波形合成部101Dにおける各成分要素毎に対応して設けられる所定のパケットキューバッファ21〜25に順次にパケット入力(つまり、パケット単位での入力)される。入力されたパケットはパケットキューバッファ21〜25に蓄積され、順次所定の順番でベクトルローダ20に送られる。ベクトルローダ20ではパケット内のベクトルIDを参照して、当該ベクトルIDに対応するオリジナルのベクトルデータをコードブック26から読出し(ロード)する。読出しされたベクトルデータは、各成分要素毎に対応して設けられる所定のベクトルデコーダ31〜35へ送られ、ベクトルデコーダ31〜35で各成分要素毎の波形が生成される。さらに、ベクトルデコーダ31〜35では、生成された各成分要素毎の波形を各ベクトルデコーダ31〜35間で同期しながら各成分毎(調和成分及び調和外成分)の波形を生成する。こうして生成された各成分毎の波形は、ミキサ38に送られる。奏法合成部(アーティキュレーター)101Cでは、パケットキューバッファ21〜25に対してパケットを入力する他、ストリーム管理(個々のベクトルデータの生成や削除あるいはベクトルデータ間の接続に関する管理)や再生コントロール(所望の波形生成の実行あるいは生成された所望の波形の再生/停止などのコントロール)などの各種の制御を波形合成部101Dに対して実行する。
なお、この実施例において、調和成分と調和外成分の同期または非同期を選択できるように構成し、同期が選択された場合にのみにおいて、上述の調和成分の波形(Timbre)要素のベクトルパケットに基づいて生成される調和成分の波形合成の時間を基準として、それに同期して調和外成分の波形(Timbre)要素のベクトルパケットに基づいて生成される調和外成分の波形を合成するようにしてもよい。
図16は、ベクトルデータのデータ構造の一実施例を概念的に示す概念図である。例えば、ベクトルデータの読み出し位置の単位は[SEC]で、読み出し速度を等速とした場合、ベクトルデータ上での1サンプルは出力波形の1サンプルと一致する。また、読み出し速度の単位は1/1200[cent](=2のn乗)で、指数nが0だと等速、1.0だと2倍(例えば、波形(Timbre)要素の場合には1オクターブ上がる)、-1.0だと0.5倍(例えば、波形(Timbre)要素の場合には1オクターブ下がる)となる(図16の上段図参照)。また、コードブック26には実際のベクトルデータが格納される。例えば、振幅(Amplitude)要素のベクトルデータあるいはピッチ(Pitch)要素のベクトルデータはVECTORPOINT構造体の配列と、代表点データとからなっている。VECTORPOINT構造体の配列には各点のサンプル位置と値が順番に入っており、例えば振幅(Amplitude)要素のベクトルデータの値は[db]単位であり、ピッチ(Pitch)要素のベクトルデータの値はMIDIのノートナンバ0を0.0としたときの1/1200[cent]単位である。また、代表点データはDWORD型の配列で、代表点となるVECTORPOINT構造体の配列のインデックス番号が格納されている(図16の下段図参照)。勿論、上述した例に限られるものでないことは言うまでもない。
102 リードオンリメモリ(ROM)
103 ランダムアクセスメモリ(RAM)
104 パネルスイッチ
105 パネル表示器
106 ドライブ
106A 外部記憶メディア
107 波形取込部
108 波形出力部
108A サウンドシステム
109 ハードディスク
111 通信インタフェース
BL バスライン
101A 曲データ再生部
101B 楽譜解釈部
101C 奏法合成部
101D 波形合成部
20 ベクトルローダ
31(32〜35) ベクトルデコーダ
36(37) ベクトルオペレータ
38 ミキサ
Claims (4)
- 楽音の波形、振幅、ピッチ等の特性を制御するための波形を生成するための波形生成方法であって、
サンプル識別情報と時刻位置情報と補正情報とを受け取るステップと、
波形の複数のサンプルデータと、該複数のサンプルデータの各々について当該サンプルデータ中の複数の代表点を指示する代表点指示データとを記憶した記憶手段から、前記受け取ったサンプル識別情報の示すサンプルデータ及び該サンプルデータに対応する代表点指示データを読み出すステップと、
前記受け取った時刻位置情報に従って前記代表点指示データが指示する各代表点のサンプルデータを時間軸上に配置するとともに該各代表点のサンプルデータの間に位置する他のサンプルデータを配置するステップと、
前記受け取った補正情報に従って、前記代表点指示データが指示する前記各代表点のサンプルデータの時間位置及びレベルの少なくとも一方を修正するステップと、
前記修正するステップによる前記代表点サンプルデータの値の修正に連動して、該各代表点サンプルデータの間に位置する前記他のサンプルデータの時間位置及びレベルの少なくとも一方を補正するステップと、
前記時間軸上に配置されかつ前記修正及び補正がなされた前記各サンプルデータに基づいて波形を生成するステップと
を具備する波形生成方法。 - 前記記憶手段においては、サンプル識別情報に対応付けて調和成分と調和外成分の各々についてのサンプルデータと当該サンプルデータ中の複数の代表点を指示する代表点指示データとを記憶しており、
前記読み出すステップは、受け取ったサンプル識別情報により前記記憶手段から調和成分の前記サンプルデータ及び前記代表点指示データと調和外成分の前記サンプルデータ及び前記代表点指示データとを読み出し、
前記配置するステップは、前記受け取った時刻位置情報に従って、前記調和成分についての前記代表点指示データが指示する各代表点のサンプルデータを時間軸上に配置するとともに該各代表点のサンプルデータの間に位置する他のサンプルデータを配置し、かつ、前記調和外成分についての前記代表点指示データが指示する各代表点のサンプルデータを時間軸上に配置するとともに該各代表点のサンプルデータの間に位置する他のサンプルデータを配置し、
前記修正するステップ及び補正するステップでは、前記調和成分と調和外成分のそれぞれについて前記修正と補正を行い、
前記生成するステップでは、前記時間軸上に配置されかつ前記修正及び補正がなされた前記調和成分と調和外成分のそれぞれについての前記各サンプルデータに基づいて調和成分と調和外成分の波形をそれぞれ生成することを特徴とする請求項1に記載の波形生成方法。 - 前記サンプル識別情報は、所定の奏法を特徴付ける奏法パラメータに応じて決定されたものであり、前記補正情報は、該決定されたサンプル識別情報の示すサンプルデータと該奏法パラメータとの間のずれ分を補正するように決定されたものであることを特徴とする請求項1に記載の波形生成方法。
- 楽音の波形、振幅、ピッチ等の特性を制御するための波形を生成するための波形生成装置であって、
サンプル識別情報と時刻位置情報と補正情報とを受け取る手段と、
波形の複数のサンプルデータと、該複数のサンプルデータの各々について当該サンプルデータ中の複数の代表点を指示する代表点指示データとを記憶した記憶手段と、
前記受け取ったサンプル識別情報の示すサンプルデータ及び該サンプルデータに対応する代表点指示データを読み出す手段と、
前記受け取った時刻位置情報に従って前記代表点指示データが指示する各代表点のサンプルデータを時間軸上に配置するとともに該各代表点のサンプルデータの間に位置する他のサンプルデータを配置する手段と、
前記受け取った補正情報に従って、前記代表点指示データが指示する前記各代表点のサンプルデータの時間位置及びレベルの少なくとも一方を修正する手段と、
前記代表点サンプルデータの値の修正に連動して、該各代表点サンプルデータの間に位置する前記他のサンプルデータの時間位置及びレベルの少なくとも一方を補正する手段と、
前記時間軸上に配置されかつ前記修正及び補正がなされた前記各サンプルデータに基づいて波形を生成する手段と
を具備する波形生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005099110A JP4007374B2 (ja) | 2005-03-30 | 2005-03-30 | 波形生成方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005099110A JP4007374B2 (ja) | 2005-03-30 | 2005-03-30 | 波形生成方法及び装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27317799A Division JP2001100760A (ja) | 1999-09-27 | 1999-09-27 | 波形生成方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005234598A JP2005234598A (ja) | 2005-09-02 |
JP4007374B2 true JP4007374B2 (ja) | 2007-11-14 |
Family
ID=35017530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005099110A Expired - Fee Related JP4007374B2 (ja) | 2005-03-30 | 2005-03-30 | 波形生成方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4007374B2 (ja) |
-
2005
- 2005-03-30 JP JP2005099110A patent/JP4007374B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005234598A (ja) | 2005-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7259315B2 (en) | Waveform production method and apparatus | |
JP3975772B2 (ja) | 波形生成装置及び方法 | |
JP2001100760A (ja) | 波形生成方法及び装置 | |
JP3601371B2 (ja) | 波形生成方法及び装置 | |
JP3654079B2 (ja) | 波形生成方法及び装置 | |
JP3654083B2 (ja) | 波形生成方法及び装置 | |
JP3654080B2 (ja) | 波形生成方法及び装置 | |
US7816599B2 (en) | Tone synthesis apparatus and method | |
JP3654082B2 (ja) | 波形生成方法及び装置 | |
JP3654084B2 (ja) | 波形生成方法及び装置 | |
JP3630107B2 (ja) | 音データ転送方法、音データ転送装置およびプログラム | |
JP4007374B2 (ja) | 波形生成方法及び装置 | |
JP3933162B2 (ja) | 波形生成方法及び装置 | |
JP3933161B2 (ja) | 波形生成方法及び装置 | |
JP3674527B2 (ja) | 波形生成方法及び装置 | |
JP3630106B2 (ja) | 音データ転送方法、音データ転送装置およびプログラム | |
JP3552675B2 (ja) | 波形生成方法及び装置 | |
JP3613191B2 (ja) | 波形生成方法及び装置 | |
JP3674526B2 (ja) | 波形合成方法、音データ転送装置およびプログラム | |
JP3829707B2 (ja) | 波形生成装置及び方法 | |
JP3778036B2 (ja) | 波形生成装置及び方法 | |
JP3649141B2 (ja) | 音データ転送方法、音データ転送装置およびプログラム | |
JP3876896B2 (ja) | 波形生成方法及び装置 | |
JP3552676B2 (ja) | 波形生成方法及び装置 | |
JP2008176043A (ja) | 楽音合成装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070403 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070529 |
|
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: 20070807 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070820 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100907 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100907 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110907 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120907 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130907 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |