JP3760909B2 - 楽音生成装置及び方法 - Google Patents
楽音生成装置及び方法 Download PDFInfo
- Publication number
- JP3760909B2 JP3760909B2 JP2002330662A JP2002330662A JP3760909B2 JP 3760909 B2 JP3760909 B2 JP 3760909B2 JP 2002330662 A JP2002330662 A JP 2002330662A JP 2002330662 A JP2002330662 A JP 2002330662A JP 3760909 B2 JP3760909 B2 JP 3760909B2
- Authority
- JP
- Japan
- Prior art keywords
- sound
- envelope
- segment
- segment template
- characteristic change
- 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
【発明の属する技術分野】
この発明は、楽音あるいは音声若しくはその他任意の音の楽音を生成する楽音生成装置及び方法に関する。特に、波形データの各種エンベロープを奏法に対応して制御させることにより、表現力豊かな楽音波形を生成する楽音生成装置及び方法に関する。この発明は、電子楽器は勿論のこと、自動演奏装置、コンピュータ、電子ゲーム装置その他のマルチメディア機器等、楽音あるいは音声若しくはその他任意の音を発生する機能を有するあらゆる分野の機器若しくは装置または方法において広範囲に応用できるものである。なお、この明細書において、楽音波形という場合、音楽的な音の波形に限るものではなく、音声あるいはその他任意の音の波形を含んでいてもよい意味合いで用いるものとする。
【0002】
【従来の技術】
PCM(パルス符号変調)あるいはDPCM(差分PCM)又はADPCM(適応差分PCM)等の任意の符号化方式で符号化した1又は複数周期の波形データを波形メモリに記憶しておき、これを所望のピッチに対応して繰り返し読み出すことによって適宜の楽音波形を生成するようにした、いわゆる「波形メモリ読み出し」技術は既に公知であり、また、様々なタイプの「波形メモリ読み出し」技術が知られている。こうした「波形メモリ読み出し」技術を用いた音源においては、単にメモリに記憶した波形データをそのまま読み出したものを楽音として出力するだけでなく、読み出した波形データを音高、音量、音色などの楽音要素毎に制御することによって、表現力豊かな楽音波形を生成することが従来から行われている。こうした音源において波形制御を行うものとして、例えば音源に内蔵されるピッチEGやアンプ(振幅)EGあるいはフィルタEGなどの各種EG(Envelope Generator)がある。ピッチEGは音高(つまりピッチ)に関するピッチエンベロープを制御するものであり、任意のピッチエンベロープに従って波形データの読み出し速度を適宜に変更することによって、ピッチが経時変化する楽音波形を生成する。アンプEGは音量に関する所要のエンベロープ波形(つまり音量振幅エンベロープ)を形成し、読み出した波形データに該音量振幅エンベロープを付与することによって、発音開始から終了までの音量を制御する。また、フィルタEGは音色制御用のフィルタ特性を制御するものであり、読み出した波形データをその特性がフィルタEGで制御されたフィルタにより処理することによって、音色が経時変化する楽音波形を生成する。
【0003】
上述した各種EG以外に波形制御を行うものとして、曲中で演奏の抑揚(例えば、expression(エクスプレッション)、Pitch bend(ピッチベンド)、Modulation depth(モジュレーションデプス)、Modulation Speed(モジュレーションスピード)など)を変化させたい適宜の時間にユーザがその都度所定の操作子等(例えば、expression pedal(イクスプレッションペダル)、bend wheel(ベンドホイール)、modulation wheel(モジュレーションホイール)など)を操作することによって、音高・音量・音色等を連続的に変化するように制御を行うコンティニュアス・コントロールが従来から知られている。このコンティニュアス・コントロールにより設定された各種の制御値はシーケンサに記憶することができ、また記憶した各種の制御値をシーケンサ上で適宜に編集することができる。この他にも、シーケンサが独自機能として提供する奏法テンプレート機能による波形制御が従来から知られている。これは、音楽記号を指定すると、予め用意されている各音楽記号に対応するマクロパターンデータ(若しくは奏法テンプレートとも呼ぶ)を楽曲データに付加することによって、音高・音量・音色等を制御するものである。奏法テンプレートが用意される音楽記号としては、例えば強弱記号(例えばクレッシェンド、ディミニュエンド、ピアノ、メゾ・フォルテなど)や終止記号(例えばフェルマータなど)や速度変化記号(例えばアッチェレランド、リタルダンドなど)、あるいは演奏・奏法記号(例えばグリッサンド、ポルタメント、チョーキング、トレモロ、スタッカート、アクセントなど)などがある。さらに波形制御を行うものとして、1音の立ち上がりから立下りまでの全発音期間にわたる楽音のピッチ変調波形を予め複数記憶しておき(例えばアタックピッチ、ビブラート、ポルタメントなどに関してのピッチ変調波形)、オンされているピッチ変調波形のみを合成して、合成されたピッチ変調波形に基づき楽音の音高(つまりピッチ)を変更することによって制御を行うようにしたものが、本出願人により既に出願済みである(特開昭60−60693号)。
【0004】
【発明が解決しようとする課題】
しかし、上述したような各種の波形制御に従って楽音波形を生成するものは、以下の点においてそれぞれ問題がある。すなわち、各種EGによる波形制御においては、1音の立ち上がり立下りなどの1音単位の制御を行うのが普通であるために、フレーズ単位(例えば1小節単位など)における波形の緩やかな変化等をうまく制御することができない、という問題点がある。コンティニュアス・コントロールによる波形制御においては、コンティニュアス・コントロールは演奏される音符とは独立した制御であるために、音のアタック部といった所定の部分区間についてのみ制御を行ったり、1音や1つのフレーズについてのみ制御を行ったりすることが困難である、という問題点がある。シーケンサの奏法テンプレート機能による波形制御においては、全ての奏法テンプレートが同じ時間長さを持つものである(つまり、時間長さで階層化されたテンプレートを複数用いて変化カーブを合成するようなものではない)ために、所望の部分区間毎に表現を変えたいような場合に用いることができず柔軟性がない、という問題点がある。また、奏法テンプレートはコンティニュアス・コントロールを生成するものであるため、複数エレメントからなるボイス(音色波形)を制御する場合にはエレメント毎に個性ある奏法を付与することができない、という問題点もある。全発音期間にわたる楽音のピッチ変調波形による波形制御においては、オンオフできるピッチ変調波形はそれぞれ1音の立ち上がりから立下りまでの1音全体について制御を行うものであり、アタック部だけの制御とかフレーズにわたっての制御を行うことができない、という問題点がある。
このように、従来知られた音源のほとんどは1音内の所定区間毎に多くの変化をする楽音を生成するための波形制御や、複数の音にわたって適宜に変化する楽音を生成するための波形制御を行うことは非常に難しいことであった。
【0005】
本発明は上述の点に鑑みてなされたもので、1音単位での波形制御だけでなく、1音内における部分的区間に対しての波形制御、あるいは複数の音にわたっての波形制御を簡単に行いながら楽音を生成することのできる楽音生成装置及び方法を提供しようとするものである。例えば、1音内における一部区間に付与すべき特性変化カーブからなるテンプレートを適宜に用いてエンベロープを合成し、該合成したエンベロープに従って楽音波形を生成することで、部分的区間における波形制御を簡単に行うことができるようにした楽音生成装置及び方法に関する。
【0006】
【課題を解決するための手段】
本発明に係る楽音生成装置は、演奏情報を供給する演奏情報供給手段と、部分的な特性変化カーブと位置情報とを含むセグメントテンプレートを供給するセグメントテンプレート供給手段と、前記演奏情報に基づき少なくとも1音についての基本エンベロープを生成し、該演奏情報に基づく時間軸上に前記位置情報に従って前記セグメントテンプレートの特性変化カーブを配置し、配置された特性変化カーブと前記基本エンベロープとを合成することによって少なくとも1音についての合成エンベロープを形成するエンベロープ合成手段と、形成された合成エンベロープを用いて、前記演奏情報に対応する楽音を生成する楽音生成手段とを具備するものである。
【0007】
これによれば、演奏情報に基づき生成される少なくとも1音についての基本エンベロープに対して、セグメントテンプレートの部分的な特性変化カーブがその位置情報に応じた配置で組み合わされることで、合成エンベロープが形成される。従って、セグメントテンプレートを用いるだけで、簡単に、1音内の一部区間において細かな制御を施すことのできる合成エンベロープを形成することができ、これを用いることにより、奏法に対応した表現力豊かな楽音波形を生成することが行い易くなる。すなわち、ユーザは複雑な変化をする楽音を、セグメントテンプレートを用いるだけで簡単に生成することができるようになる。
【0008】
本発明は、装置の発明として構成し実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはDSP等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【0009】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【0010】
図1は、この発明に係る楽音生成装置のハードウエア構成例を示すブロック図である。ここに示されたハードウエア構成例はコンピュータを用いて構成されており、そこにおいて、楽音生成処理は、コンピュータがこの発明に係る楽音生成処理を実現する所定のソフトウエア・プログラムを実行することにより実施される。勿論、この楽音生成処理はコンピュータソフトウエアの形態に限らず、DSP(Digital Signal Processor)によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウエア装置の形態で実施してもよい。また、この楽音生成装置は、電子楽器あるいはカラオケ装置又は電子ゲーム装置又はその他のマルチメディア機器又はパーソナルコンピュータ等、任意の製品応用形態をとっていてよい。
なお、上記した楽音生成装置はこれら以外のハードウェアを有する場合もあるが、ここでは必要最小限の資源を用いた場合について説明する。
【0011】
図1に示されたハードウエア構成例においては、コンピュータのメイン制御部としてのCPU1に対して、バスラインBL(データあるいはアドレスバス等)を介してリードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3、入力装置4、表示装置5、ドライブ6、波形取込部7、音源部8、ハードディスク9、入出力インターフェース10がそれぞれ接続されている。CPU1は、「楽音生成処理」(後述する図2参照)などの各種処理を所定のプログラムに基づいて実行する。これらのプログラムは、入出力インターフェース10を介した通信ネットワークに接続された外部の電子楽器、あるいはドライブ6に装着されたCDやMO等の外部記憶メディア6A等から供給されてハードディスク9に記憶される。そして、実行時にハードディスク9からRAM3にロードされる。あるいは、ROM2にプログラムが予め記録されていてもよい。
【0012】
ROM2は、CPU1により実行あるいは参照される各種プログラムや各種データ等を格納するものである。RAM3は、CPU1がプログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリとして使用されるものである。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。入力装置4は、楽音をサンプリングする指示やサンプリングされた波形データのエディット(つまり波形制御)や該波形制御の際に用いる各種セグメント・テンプレートの選択(詳しくは後述する)、あるいは各種情報の入力等を行うための各種の操作子を含んで構成される。例えば、各種セグメント・テンプレート選択用のスイッチや、数値データ入力用のテンキー、文字データ入力用のキーボード、あるいはマウス等のポインティングデバイスなどである。この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含んでいてよい。表示装置5は、入力装置4により入力された各種情報、サンプリングされた波形データや波形制御後の波形データ、あるいは各種セグメント・テンプレート等を表示する、例えば液晶表示パネル(LCD)やCRT等のディスプレイである。
【0013】
波形取込部7は図示しないA/D変換器を内蔵し、例えばマイクロフォンなどから外部波形入力されたアナログ楽音信号をサンプリングしてデジタルデータに変換し、該デジタルデータをオリジナル波形データ(つまり、生成すべき楽音波形の素材となる波形データ)としてハードディスク9上に取り込む。該取り込まれたオリジナル波形データは、所定の処理に従ってベクトルデータ及び奏法モジュールとして、それぞれ「波形データベース」と「奏法データベース」に記憶される。ベクトルデータは取り込んだオリジナル波形データをそのままではなく、取り込んだオリジナル波形の形状を代表する一部の波形(例えば、アタック部波形、ボディ部波形、リリース部波形、ジョイント部波形など)毎に、階層的な圧縮手法を用いてデータ圧縮した形で波形データベースに記憶したものである。奏法モジュールは、ベクトルデータを指定するためのデータと、圧縮された形で記憶されたベクトルデータを元の波形形状の波形データに戻すために必要なデータなどを具える。したがって、奏法モジュールは、Entrance(エントランス)系モジュール、Finish(フィニッシュ)系モジュール、Joint(ジョイント)系モジュール、Body(ボディ)系モジュールのいずれかとして奏法データベースに記憶される。すなわち、Entrance系モジュールはアタック部のような1音における立ち上がりの演奏区間を表すベクトルデータを指し示すものであって、Finish系モジュールはリリース部のような1音における立下りの演奏区間を表すベクトルデータを指し示すものであって、Joint系モジュールは音と音とをつなぐ演奏区間を表すベクトルデータを指し示すものであって、Body系モジュールは前記Entrance系モジュールと前記Finish系モジュールとの間の演奏区間を表すベクトルデータを指し示すものである。Entrance系、Finish系、Joint系の各奏法モジュールは奏法(若しくはアーティキュレーション)等の特徴を有する高品質な波形から生成されたベクトルデータを指し示すものであり、Body系モジュールはNSB(Normal Short Body:ノーマルショートボディ)やVB(Vibrato Body:ビブラートボディ)などといった1周期または適当な複数周期分の波形からなる比較的単調な音部分の単位波形(つまりループ波形)から生成されたベクトルデータを指し示すものである。なお、波形を形成するためのベクトルデータは、波形(timbre)ベクトル、振幅(amplitude)エンベロープベクトル、ピッチ(pitch)エンベロープベクトル、時間(time)ベクトル、などの要素で構成される。
【0014】
音源部8は、「波形データベース」から読み出したベクトルデータを複数接続して波形合成することで一連の楽音波形を生成することができ、生成した楽音波形をサウンドシステム8Aに送出する。この楽音波形生成の際に、音源部8は「セグメントデータベース」から読み出した各種セグメント・テンプレート(後述する)を用いて、1音内における一部区間に対する楽音波形の制御を行うことができるようになっている。これについての詳細は後述することから、ここでの説明を省略する。サウンドシステム8Aでは、音源部8から出力された楽音信号をD/A変換してアナログ信号に変換して外部に出力する。勿論、複数の楽音信号の同時出力が可能である。ハードディスク9は、各種奏法モジュールを蓄積した奏法データベースや各種セグメント・テンプレートを蓄積したセグメントデータベースやベクトルデータを蓄積した波形データベースなどの各種データベースや、前記CPU1が実行する各種プログラム等などを記憶する記憶装置である。
なお、前記音源部8は、ソフトウエアにより楽音を生成するいわゆるソフトウエア音源により実現するようにしてもよいことは言うまでもない。
【0015】
ドライブ6は、各種奏法モジュールや各種セグメント・テンプレートなどの各種データや、前記CPU1が実行する各種プログラム等を記憶するための着脱可能な外部記憶メディア6Aを駆動するものである。該ドライブ6により駆動される外部記憶メディア6Aは、フレキシブルディスク(FD)、コンパクトディスク(CD−ROM・CD−RW)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の着脱自在な様々な形態の外部記憶媒体を利用するメディアであればどのようなものであってもよい。若しくは、半導体メモリなどであってもよい。各種プログラムを記憶した外部記憶メディア6Aをドライブ6にセットした場合、その記憶内容(つまりプログラム)をハードディスク9に落とすことなく直接RAM3にロードするようにしてもよい。なお、外部記憶メディア6Aを用いて、あるいは入出力インターフェース10を介してプログラムを提供するやり方は、プログラムの追加やバージョンアップ等を容易に行うことができるので好都合である。
【0016】
入出力インターフェース10は、例えばLANやインターネット、電話回線等の通信ネットワーク(図示せず)に接続されており、該通信ネットワークを介してサーバコンピュータ等(図示せず)と接続され、当該サーバコンピュータ等からプログラムや各種奏法モジュールや各種セグメント・テンプレート、あるいは演奏情報などを楽音生成装置側に取り込むための通信インターフェースである。すなわち、ROM2やハードディスク9にプログラムや各種奏法モジュールや各種セグメント・テンプレートなどが記憶されていない場合に、サーバコンピュータからプログラムや各種奏法モジュールや各種セグメント・テンプレートなどをダウンロードするために用いられる。クライアントとなる楽音生成装置は、入出力インターフェース10を介してサーバコンピュータへとプログラムや各種奏法モジュールや各種セグメント・テンプレートなどのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムや各種奏法モジュールや各種セグメント・テンプレートなどを入出力インターフェース10を介してハードディスク9に蓄積することにより、ダウンロードが完了する。なお、入出力インターフェース10はMIDIインターフェースであってもよく、そうした場合にはシーケンサや電子楽器などの外部MIDI機器との間でMIDI演奏情報の入出力を行う。また、MIDIインターフェースとした場合には、音楽演奏用キーボードや演奏操作機器を接続して、これらを用いてMIDI演奏情報をリアルタイムに該楽音生成装置に対して供給するようにしてもよい。
【0017】
上述の図1に示した楽音生成装置において、楽音生成はコンピュータが楽音生成処理を実現する所定のソフトウエア・プログラムを実行することにより実施される。あるいは、こうしたプログラムの形態に限らず、楽音生成処理を専用ハードウエア装置の形態で実施するようにしてもよい。そこで、本発明に係る楽音生成装置で実行する楽音生成処理について、図2を用いて説明する。図2は、楽音生成処理を専用ハードウエア装置の形態で構成した場合の一実施例を示すブロック図である。この図2を用いて、楽音生成処理全体の動作概要について簡単に説明する。
【0018】
曲データ再生部1Aは、奏法記号付き曲データの再生処理を行う。すなわち、まず最初に曲データ再生部1Aは奏法記号付き曲データ(つまり演奏情報)を受信する。通常の楽譜においては、そのままではMIDIデータとすることができないような強弱記号(例えばクレッシェンドやデクレッシェンド等)、テンポ記号(例えばアレグロやリタルダンド等)、スラー記号、テヌート記号、アクセント記号等の音楽記号が付されている。そこで、これらの音楽記号を「奏法記号」としてデータ化する。この「奏法記号」を含むMIDI曲データが「奏法記号付き曲データ」であり、曲データ再生部1Aはこのような奏法記号付き曲データを受信する。楽譜解釈部(プレーヤー)1Bでは、楽譜解釈処理を行う。具体的には、受信した奏法記号付き曲データに含まれるMIDIデータと上記「奏法記号」を所定の奏法指定情報(例えば、奏法IDと奏法パラメータ)に変換し、時刻情報とともに奏法合成部(アーティキュレーター)1Cに出力する。楽譜解釈部(プレーヤー)1Bでは奏法指定情報を生成する際に、演奏情報に基づくオリジナルなエンベロープ(これを「入力エンベロープ」または「基本エンベロープ」ということにする)を生成し、かつ、ユーザ選択あるいは自動選択処理に従ってセグメントデータベースから読み出された各種セグメント・テンプレートとこの「入力エンベロープ」(すなわち「基本エンベロープ」)とを加算して合成エンベロープを生成し、該生成した合成エンベロープを奏法合成部(アーティキュレーター)1Cに奏法パラメータとして出力する。一般的に、同じ音楽記号でも演奏者や楽器により該音楽記号の解釈が異なって、演奏者毎や楽器毎に異なった演奏方法(すなわち、奏法若しくはアーティキュレーション)で演奏が行われることがある。あるいは、音符の並び方等によっても、演奏者毎や楽器毎に異なった演奏方法で演奏が行われることもある。そこで、そのような楽譜上の記号(音楽記号や音符の並び方等)を解釈する知識をエキスパートシステム化したものが楽譜解釈部1Bであり、楽譜解釈部1Bは所定の基準に従った解釈を楽譜に対して行う。この際に、楽譜解釈部1Bは、ユーザからのプレーヤー指定(例えば、誰の演奏かあるいはどの楽器かなどの指定)に応じて、楽譜の解釈方法を異ならせて楽譜を解釈する。こうした複数プレーヤーに対応した異なる楽譜解釈方法の1つとして、セグメントデータベースに複数の各種セグメント・テンプレートが蓄積されており、楽譜解釈部1Bはユーザからのプレーヤー指定あるいは楽器指定に応じて用いるべきセグメント・テンプレートを決定する。
【0019】
奏法合成部(アーティキュレーター)1Cは楽譜解釈部(プレーヤー)1Bにより変換された所定の奏法指定情報(奏法IDと奏法パラメータ)に基づいて奏法データベースを参照して、該奏法指定情報に応じたパケットストリーム及び奏法パラメータに応じた該ストリームに関するベクトルパラメータを生成し、波形合成部1Dに供給する。パケットストリームとして波形合成部1Dに供給されるデータは、ベクトルID、時刻情報等である。この際に、奏法合成部(アーティキュレーター)1Cでは、所定の奏法指定情報に基づき奏法データベースから奏法モジュールを読み出し、該奏法モジュールを時間軸上に配置してパケットストリームを生成し、時間軸上に配置した奏法モジュールに対して楽譜解釈部(プレーヤー)1Bにより生成された合成エンベロープを配分する。奏法モジュールはハードディスク9上の「奏法データベース」に記憶されており、例えば1つの奏法モジュールは「奏法ID」によって特定される。「奏法ID」に応じて特定された所定の奏法モジュールの内容は、該奏法モジュールに対応する波形データを特徴付ける若しくは制御する奏法パラメータとして与えられる。波形合成部1Dは生成されたパケットストリームに応じて波形データベースからベクトルデータを順次に取り出し、該ベクトルデータをベクトルパラメータに応じて変形し、変形した各ベクトルデータを波形接続し、該接続した一連のベクトルデータに基づいて任意の楽音波形を生成する。サウンドシステム8Aでは、生成した楽音波形に基づき楽音を出力する。
【0020】
ここで、上述した楽譜解釈部(プレーヤー)1Bが入力エンベロープを合成する際に用いるセグメント・テンプレートについて、図3を参照しながら説明する。図3はセグメント・テンプレートのデータ構成の一実施例を示した概念図であり、図3(a)はNote(ノート)セグメント・テンプレートを示す。図3(b)はEntranceセグメント・テンプレートを指定するテーブル、図3(c)はFinishセグメント・テンプレートを指定するテーブルの一実施例を示したものである。これらの各セグメント・テンプレートは、テーブル化された「セグメントデータベース」としてそれぞれハードディスク9などに予め記憶されている。勿論、これらの実施例は一例であり、これに限られないことは言うまでもない。
【0021】
Noteセグメント・テンプレート(以下、単にNoteセグメントと呼ぶ)は1音全体の抑揚を表現するために用いる制御データであり、図3(a)に示すように、Noteセグメントはハードディスク9上にテーブル化されて構成される。テーブルを構成する1つ1つのNoteセグメントは、1音全体に付与すべき特性変化カーブからなる。すなわち、1つ1つのNoteセグメントは所定のテーブル番号毎に所定形状の特性変化カーブを持つデータである。各Noteセグメントは、それぞれが持つ特性変化カーブの形状にあわせていくつかのタイプ別に分類される。例えば、この実施例では大きく6つのタイプ別に分類されている。すなわち、テーブル番号0〜7まではほぼ真っ直ぐな形状の特性変化カーブを持つNoteセグメント、テーブル番号8〜15までは右肩上がりの形状の特性変化カーブを持つNoteセグメント、テーブル番号16〜23までは右肩下がりの形状の特性変化カーブを持つNoteセグメント、テーブル番号24〜31までは山型の形状の特性変化カーブを持つNoteセグメント、テーブル番号32〜39までは谷型の形状の特性変化カーブを持つNoteセグメント、テーブル番号40〜47までは飛ばし型の形状の特性変化カーブを持つNoteセグメントである。
【0022】
こうしたタイプ別に分類された各々のNoteセグメントは、それぞれのタイプに属する特徴的な形状の特性変化カーブをもつ。例えば、右肩上がりタイプに分類されたテーブル番号8のNoteセグメントは一定の傾きで右肩上がりの特性変化カーブを持つデータであるし、テーブル番号9のNoteセグメントは前半部分の傾斜に比較して後半部分から傾斜が急に右肩上がりとなる特性変化カーブを持つデータである。また、山型タイプに分類されたテーブル番号24のNoteセグメントは前半部分に山型のピークがある特性変化カーブを持つデータであるし、テーブル番号25のNoteセグメントは中央部分に山型のピークがある特性変化カーブを持つデータである。なお、この実施例におけるテーブル番号0のNoteセグメントはデフォルトで用いられるデータとして設定されるものであり、該Noteセグメントはその形状が完全なフラット形状である。つまり、テーブル番号0のNoteセグメントを入力エンベロープを変更する際に用いた場合には、オリジナルの入力エンベロープ波形が再現されることになる。
なお、図示しないPhraseセグメント・テンプレートは1つのフレーズ(例えば、1小節など)の抑揚を表現するために用いる制御データであり、上記Noteセグメント・テンプレートとは時間長が異なるだけのものであって、その他のデータ構成及び特性変化カーブ形状などは上記Noteセグメント・テンプレートと類似であることから説明を省略する。
【0023】
他方、Entranceセグメント・テンプレート及びFinishセグメント・テンプレート(以下、単にEntranceセグメント及びFinishセグメント)は、上述のNoteセグメント・テンプレートと比較してその時間長が短いデータであり、Entranceセグメントは1音の鳴り始め部分の所定区間における抑揚を表現するため、Finishセグメントは1音の鳴り終わり部分の所定区間における抑揚を表現するために用いる制御データであり、Entranceセグメント及びFinishセグメントは上述したNoteセグメントと同様にハードディスク9上にテーブル化されて構成される。テーブルを構成する1つ1つのEntranceセグメントは、1音内における鳴り初めの所定区間に付与すべき特性変化カーブと位置データ(詳しくはノートオンタイミング)とからなるデータである。一方、テーブルを構成する1つ1つのFinishセグメントは、1音内における鳴り終わりの所定区間に付与すべき特性変化カーブと位置データ(詳しくはノートオフタイミング)とからなるデータである。すなわち、1つ1つのEntranceセグメント及びFinishセグメントは、所定のテーブル番号毎に所定形状の特性変化カーブ(図示省略)を持つデータである。前記位置データは、Entranceセグメント及びFinishセグメントにおける各特性変化カーブの形状に応じた位置に設定されるデータである。例えば、Entranceセグメントにおいて、立ち上がりがゆっくりである音の場合における位置データはEntranceセグメントの後半よりの適宜の位置に設定されるし、立ち上がりが急である音の場合における位置データはEntranceセグメントの前半よりの適宜の位置に設定される。このように位置データを設定すると、Entranceセグメント及びFinishセグメントをそれぞれノートオン付近やノートオフ付近の時間軸上に配置することができ(後述する図6に示す各セグメント・テンプレートの時間軸上への配置参照)、これによりユーザがアタック音やリリース音などを感じる適切な位置でアタック音やリリース音などを発生させることができるようになっている。
【0024】
Entranceセグメントが持つ特性変化カーブは、Entranceセグメントにおいては音価(4分音符以下・2分音符以下・全音符以下・全音符以上)、前音との関係(Finish・Joint)及び引っ掛けの強さ(強・中・弱・スラー)によって指定される。引っ掛けの強さとは、バイオリンなどの弦楽器でいえば弓を弾き始める時に弦の上に弓を置く強さ、サックスなどの管楽器でいえばタンギングの強さ、ピアノなどの鍵盤楽器でいえば押鍵の強さを表す。図3(b)に示した実施例において、例えばEntranceセグメントを適用する対象となる音価が「4分音符以下」であり、前音との関係が「Joint」であり、引っ掛けの強さが「中」であるような場合には、テーブル番号68のEntranceセグメントが適用するEntranceセグメントとして選択されることになる。一方、Finishセグメントが持つ特性変化カーブは、音価(4分音符以下・2分音符以下・全音符以下・全音符以上)、後音との関係(Entrance・Joint)及びタイプ(ねっとり・ふつう・あっさり・スラー)によって指定される。図3(c)に示した実施例において、例えばFinishセグメントを適用する対象となる音価が「全音符以下」であり、後音との関係が「Entrance」であり、タイプが「あっさり」であるような場合には、テーブル番号48のFinishセグメントが適用するFinishセグメントとして選択されることになる。なお、Noteセグメント・テンプレートと同様に、Entranceセグメント・テンプレート及びFinishセグメント・テンプレートにおいても、それらテーブル番号0のEntrance及びFinishセグメントはデフォルトで用いられるデータとして設定されるものであり、該テーブル番号0のEntrance及びFinishセグメントを入力エンベロープを変更する際に用いた場合には、オリジナル波形が再現されることになる。
【0025】
これらPhrase/Note/Entrance/Finishの各セグメント・テンプレートは、dynamics(持続的演奏強度)/Pitch(ピッチ)/vibrato depth(ビブラートデプス)/vibrato Speed(ビブラートスピード)の各特性変化カーブをセットで持つ。ただし、上述した実施例では説明を簡単にするために、代表としてdynamicsに関してのセグメント・テンプレートのみを示した。すなわち、図3(a)はdynamicsを制御する特性変化カーブを例示的に示したものであり、このdynamicsに関する各セグメント・テンプレートに対応するようにして、各テーブル番号毎に図示を省略したPitch/vibrato depth/vibrato Speedに関する各セグメント・テンプレートが予めテーブル化されてハードディスク9上に記憶されている。Phrase/Note/Entrance/Finishの各セグメント・テンプレートがそれぞれdynamics/Pitch/vibrato depth/vibrato Speedの各特性変化カーブの計4種をセットで持つことによって、dynamicsを徐々に上げながらPitchを下げるといった、異なる楽音要素のエンベロープを相互に関連づけながら制御すること、を同時に行うことができるようになっている。こうしたdynamics/Pitch/vibrato depth/vibrato Speedに関する各特性変化カーブをセットで持つPhrase/Note/Entrance/Finishの各セグメント・テンプレートを、この実施例ではSAT(Segment Articulation Template)と呼び、こうしたSATを1奏者毎あるいは1楽器毎にそれぞれセグメントデータベースに記憶する。こうすると、同じテーブル番号のSATを指定しても奏者毎あるいは楽器毎に異なるSATを用いることができるし、また、Phrase/Note/Entrance/Finishの各セグメント・テンプレートを指定するだけでdynamics/Pitch/vibrato depth/vibrato Speedの各特性変化カーブを全て同時に指定することができることから、1つ1つをわざわざ指定しなくてよく便利である。
【0026】
上述したように、Phrase/Note/Entrance/Finishの各セグメント・テンプレートは時間長毎に階層的に構成されているデータであり、これらの各セグメント・テンプレートを適宜に組み合わせて、演奏情報が所持するオリジナルなエンベロープである入力エンベロープと合成することで、フレーズ毎や1音毎における細やかなエンベロープ制御を行うことができる。すなわち、本発明に係る楽音生成装置では、Phraseセグメント及びNoteセグメントを重ねて用いることによって各特性変化カーブを入力エンベロープと合成し、該合成エンベロープに基づいてフレーズ毎及び1音1音毎に波形制御を行い任意の楽音波形を生成する。また、EntranceセグメントをNoteセグメントの開始部分の所定区間に、FinishセグメントをNoteセグメントの終了部分の所定区間にそれぞれ重ねて用いることによって各特性変化カーブを入力エンベロープと合成し、該合成エンベロープに基づいて1音内における所定の部分区間毎に波形制御を行い任意の楽音波形を生成する。すなわち、異なる時間長さからなる階層的構造のセグメント・テンプレートを適宜に組み合わせて用いることで、フレーズ毎及び1音1音毎に、あるいは1音内における所定区間毎に波形制御を行うことができ、これにより微妙な変化のある楽音波形を生成することができるようになっている。そこで、こうしたセグメント・テンプレートによる波形制御について、具体例を用いて説明する。
【0027】
まず、各セグメント・テンプレートの決定処理について説明する。Phrase及びNoteセグメント・テンプレートは、ユーザ選択に従って決定される。Phraseセグメント・テンプレートの場合、Phraseセグメント・テンプレートを使用する指定があった後の所定演奏区間毎における最初(同時刻を含む)のノートオンイベントデータから始まる所定演奏区間に対してのみ該Phraseセグメント・テンプレートは有効であることから、ユーザは各演奏区間毎に用いるべきPhraseセグメント・テンプレートを適宜に選択する。こうした選択が行われなかった所定演奏区間に対しては、デフォルトとして予め決められたPhraseセグメント・テンプレートを使用する。一方、Noteセグメント・テンプレートの場合、Noteセグメント・テンプレートを使用する指定があった後の最初(同時刻を含む)のノートオンイベントデータから始まる1音に対してのみ該Noteセグメント・テンプレートは有効であることから、ユーザは1音1音の各音毎に用いるべきNoteセグメント・テンプレートを適宜に選択する。こうした選択が行われなかった1音に対しては、デフォルトとして予め決められたNoteセグメント・テンプレートを使用する。例えば、上述の図3(a)に示すようなテーブル番号0の完全なフラット形状の特性変化カーブを持つNoteセグメント・テンプレートがデフォルトとして決められている場合には、該Noteセグメント・テンプレートを使用する。
【0028】
他方、Entrance及びFinishセグメント・テンプレートは1音毎に、ユーザ選択が行われている場合には該選択に従って決定され、ユーザ選択が行われていない場合には所定の処理に従って自動的に決定される。そこで、こうしたEntrance及びFinishセグメント・テンプレートの決定処理について、図4及び図5を用いて説明する。Entranceセグメント・テンプレートを決定する処理について、図4を用いて説明する。図4は、「Entranceセグメント・テンプレート自動決定処理」の一実施例を示すフローチャートである。
【0029】
ステップS1では、Entranceセグメント・テンプレートがテーブル番号等により選択的に指定されているか否かを判定する。Entranceセグメント・テンプレートが指定されている場合には(ステップS1のYES)、指定されたテーブル番号等に従うEntranceセグメント・テンプレートに決定する(ステップS2)。Entranceセグメント・テンプレートが指定されていない場合には(ステップS1のNO)、該NoteにおいてEntranceセグメント・テンプレートが必要でないか否か、つまり音の立ち上がり区間に対する制御を行う必要がないか否かを判定する(ステップS3)。Entranceセグメント・テンプレートが必要でない、つまり該NoteにおいてEntranceセグメント・テンプレートによる波形制御を行う必要がない場合には(ステップS3のNO)、テーブル番号0のEntranceセグメント・テンプレート(つまりSATなし)に決定する(ステップS4)。すなわち、この場合には特性変化カーブが「フラット」であるEntranceセグメント・テンプレートに決定することから、音の立ち上がり区間に対する制御が行われないこととなる。一方、Entranceセグメント・テンプレートが必要である、つまり該NoteにおいてEntranceセグメント・テンプレートによる波形制御を行う必要がある場合には(ステップS3のYES)、Entranceセグメント・テンプレートの自動選択を実行するように設定されたか否かを判定する(ステップS5)。自動選択を実行するように設定されていなかった場合には(ステップS5のNO)、テーブル番号0のEntranceセグメント・テンプレート(つまりSATなし)に決定する(ステップS4)。自動選択を実行するように設定されていた場合には(ステップS5のYES)、前の音(Note)との関係がジョイントであるか否かを判定する(ステップS6)。前の音との関係がジョイントでない場合には(ステップS6のNO)、テーブルにおける前音との関係を「Finish」に設定する(ステップS9)。前の音との関係がジョイントである場合には(ステップS6のYES)、さらに前の音との関係がスラーであるか否かを判定する(ステップS7)。前の音との関係がスラーでない場合には(ステップS7のNO)、テーブルにおける前音との関係を「Joint」に設定する(ステップS10)。前の音との関係がスラーである場合には(ステップS7のYES)、テーブル番号1のEntranceセグメント・テンプレート(つまり、スラー制御を行うデータ)に決定する(ステップS8)。
【0030】
ステップS11では、Entranceセグメント・テンプレートの引っ掛けが自動選択であるか否かを判定する。Entranceセグメント・テンプレートの引っ掛けが自動選択である場合には(ステップS11のYES)、演奏強度(特にMIDIデータの場合には音のベロシティ)に従ってEntranceセグメント・テンプレートの引っ掛けを決定する(ステップS13)。Entranceセグメント・テンプレートのタイプが自動選択でない場合には(ステップS11のNO)、予めユーザが選択したEntranceセグメント・テンプレートの引っ掛けに決定する(ステップS14)。ステップS12では、Entranceセグメント・テンプレートの長さが自動選択であるか否かを判定する。Entranceセグメント・テンプレートの長さが自動選択である場合には(ステップS12のYES)、音の長さに従ってEntranceセグメント・テンプレートの長さを決定する(ステップS15)。Entranceセグメント・テンプレートの長さが自動選択でない場合には(ステップS12のNO)、予めユーザが選択したEntranceセグメント・テンプレートの長さに決定する(ステップS16)。こうして決定されたテーブルにおける前音との関係(ステップS9及びS10参照)、Entranceセグメント・テンプレートのタイプ(ステップS13及びS14参照)、Entranceセグメント・テンプレートの長さ(ステップS15及びS16参照)に従い、上述の図3(b)に示したようなEntranceセグメント・テンプレートに関するテーブルを参照することで、各Noteにおける音の立ち上り区間の波形制御に用いるべきEntranceセグメント・テンプレートを決定する。
【0031】
Finishセグメント・テンプレートを決定する処理について、図5を用いて説明する。図5は、「Finishセグメント・テンプレート自動決定処理」の一実施例を示すフローチャートである。
【0032】
ステップS21では、ユーザによりFinishセグメント・テンプレートがテーブル番号で選択的に指定されているか否かを判定する。Finishセグメント・テンプレートが指定されている場合には(ステップS21のYES)、指定されたテーブル番号に従うFinishセグメント・テンプレートに決定する(ステップS22)。Finishセグメント・テンプレートが指定されていない場合には(ステップS21のNO)、該NoteにおいてFinishセグメント・テンプレートが必要でないか否か、すなわち音の立下り区間に対する制御を行う必要がないか否かを所定パラメータに従って判定する(ステップS23)。Finishセグメント・テンプレートが必要でない、つまり該NoteにおいてFinishセグメント・テンプレートによる波形制御を行う必要がない場合には(ステップS23のNO)、テーブル番号0のFinishセグメント・テンプレート(つまりSATなし)に決定する(ステップS24)。すなわち、この場合には特性変化カーブが「フラット」であるFinishセグメント・テンプレートに決定することから、音の立下り区間に対する制御が行われないこととなる。一方、Finishセグメント・テンプレートが必要である、つまり該NoteにおいてFinishセグメント・テンプレートによる波形制御を行う必要がある場合には(ステップS23のYES)、Finishセグメント・テンプレートの自動選択を実行するように設定されているか否かを判定する(ステップS25)。自動選択を実行するように設定されていない場合には(ステップS25のNO)、テーブル番号0のFinishセグメント・テンプレート(つまりSATなし)に決定する(ステップS24)。自動選択を実行するように設定されている場合には(ステップS25のYES)、次の音(Note)との関係がジョイントであるか否かを判定する(ステップS26)。次の音との関係がジョイントでない場合には(ステップS26のNO)、テーブルにおける後音との関係を「Entrance」に設定する(ステップS29)。次の音との関係がジョイントである場合には(ステップS26のYES)、次の音との関係がスラーであるか否かを判定する(ステップS27)。次の音との関係がスラーでない場合には(ステップS27のNO)、テーブルにおける後音との関係を「Joint」に設定する(ステップS30)。次の音との関係がスラーである場合には(ステップS27のYES)、テーブル番号1のFinishセグメント・テンプレート(つまり、スラー制御を行うデータ)に決定する(ステップS28)。
【0033】
ステップS31では、Finishセグメント・テンプレートのタイプが自動選択であるか否かを判定する。Finishセグメント・テンプレートのタイプが自動選択である場合には(ステップS31のYES)、音のベロシティに従ってFinishセグメント・テンプレートのタイプを決定する(ステップS33)。Finishセグメント・テンプレートのタイプが自動選択でない場合には(ステップS31のNO)、予めユーザが選択したFinishセグメント・テンプレートのタイプに決定する(ステップS34)。ステップS32では、Finishセグメント・テンプレートの長さが自動選択であるか否かを判定する。Finishセグメント・テンプレートの長さが自動選択である場合には(ステップS32のYES)、音の長さに従ってFinishセグメント・テンプレートの長さを決定する(ステップS35)。Finishセグメント・テンプレートの長さが自動選択でない場合には(ステップS32のNO)、予めユーザが選択したFinishセグメント・テンプレートの長さに決定する(ステップS36)。こうして決定されたテーブルにおける前音との関係(ステップS29及びS30参照)、Finishセグメント・テンプレートのタイプ(ステップS33及びS34参照)、Finishセグメント・テンプレートの長さ(ステップS35及びS36参照)に従い、上述の図3(c)に示したようなFinishセグメント・テンプレートに関するテーブルを参照することで、各Noteにおける音の立下り区間の波形制御に用いるべきFinishセグメント・テンプレートを決定する。
【0034】
以上のように、Entrance/Finishの各セグメント・テンプレートはユーザによる指定が行われていない場合には、前後の隣り合う音(Note)との接続シーケンス関係を基準として、あるいは該セグメント・テンプレートを適用する区間における強度を基準として、あるいは該セグメント・テンプレートを適用する区間における音長を基準として自動的に選択される。なお、セグメント・テンプレートの自動選択基準はこれらに限定されることなく、そのセグメント・テンプレートを適用する区間における音高を基準としてもよい。このように、ユーザがセグメント・テンプレートを選択していない場合には波形制御に用いるべきセグメント・テンプレートを自動的に決定するようにしたことから、ユーザはわざわざ曲全体にわたって1音1音毎にEntrance/Finishの各セグメント・テンプレートを選択しなくてもよい。これにより、ユーザは効率的な波形制御を行うことができるようになる。
【0035】
上述のようにして、ユーザ選択あるいは自動処理により波形制御に用いるべき各セグメント・テンプレートが決定されると、次に、該決定された各セグメント・テンプレートを時間軸上に配置し、配置した各セグメント・テンプレートと入力エンベロープとを合成する。そして、合成した結果のエンベロープを各モジュールに適用することによって波形制御を行い、任意の楽音波形を生成する。そこで、上記決定済みの各セグメント・テンプレートの時間軸上への配置及び配置した各セグメント・テンプレートに基づいて行われる入力エンベロープの合成について、図6及び図7を用いて説明する。ただし、以下の説明では、1音(Note)に対してのEntrance/Finish/Noteの各セグメント・テンプレートの配置及び入力エンベロープとの合成について説明する。すなわち、こうした処理は各音毎に行われるものである。
【0036】
まず、各セグメント・テンプレートの時間軸上への配置について説明する。図6は、各セグメント・テンプレートの時間軸上への配置について説明するための概念図である。図6(a)はEntranceセグメント・テンプレート及びFinishセグメント・テンプレートの時間軸上への配置について説明するための概念図であり、図6(b)はNoteセグメント・テンプレートの時間軸上への配置について説明するための概念図である。
【0037】
図6(a)に示すように、まずEntranceセグメント・テンプレート及びFinishセグメント・テンプレートを時間軸上に配置する。Entranceセグメント・テンプレートに予め設定されているノートオンタイミングをノートオンイベント(Note On)に一致させることによって、Entranceセグメント・テンプレートをノートオン付近の時間軸上に配置する。一方、Finishセグメント・テンプレートに予め設定されているノートオフタイミングをノートオフイベント(Note Off)に一致させることによって、Finishセグメント・テンプレートをノートオフ付近の時間軸上に配置する。この際に、Entrance/Finishの各セグメント・テンプレートの時間長を所定のタイムコントロールパラメータなどを用いて拡大縮小することにより、各セグメント・テンプレートにおける特性変化カーブの形状を時間軸方向に伸ばしたり縮めたりすることができる。このタイムコントロールパラメータなどを用いてのEntrance/Finishの各セグメント・テンプレートの時間長の拡大縮小は、ノートオンタイミングあるいはノートオフタイミングを中心として拡大縮小する。例えば、Entrance/Finishの各セグメント・テンプレートにおけるノートオンタイミングあるいはノートオフタイミングよりも前半部分をプレタイム(Pre Time)、後半部分をポストタイム(Post Time)とした場合には、こうしたプレタイム及びポストタイムを別々にコントロールするようにして、Entrance/Finishの各セグメント・テンプレートの前半部分又は後半部分を別々に拡大縮小することができる。このようにユーザが時間長を適宜に編集できるようにすることにより、配置した各セグメント・テンプレートを時間軸方向にカスタマイズして、ユーザ所望の区間に対してEntrance/Finishの各セグメント・テンプレートを適用することができるようになる。
【0038】
Entrance及びFinishの各セグメント・テンプレートの時間軸上への配置が終了すると、次に、図6(b)に示すように、既に配置されたEntrance及びFinishの各セグメント・テンプレートに基づいてNoteセグメント・テンプレートを配置する。このNoteセグメント・テンプレートの配置は、Noteセグメント・テンプレートの開始位置をEntranceセグメント・テンプレートの開始点に、Noteセグメント・テンプレートの終了位置をFinishセグメント・テンプレートの終了点にそれぞれ一致するようにして行われる。すなわち、Noteセグメント・テンプレートに対しては、既に配置されたEntranceセグメント・テンプレートの開始点からFinishセグメント・テンプレートの終了点までの時間長にあわせて時間長の拡大縮小が行われる。こうして、Entrance及びFinishの各セグメント・テンプレートとNoteセグメント・テンプレートとが互いに重なり合うようにして時間軸上に配置される。
【0039】
次に、各セグメント・テンプレートを組み合わせて行われるエンベロープ合成について説明する。図7は、各セグメント・テンプレートを組み合わせて行われるエンベロープ合成について説明するための概念図である。この実施例では、dynamics/Pitch/vibrato depth/vibrato Speedの4種の楽音要素についてのエンベロープセグメントのうちのdynamics(振幅)を例にあげて説明する。すなわち、図7に示した各図は上から順に、MIDI入力に基づき生成される入力エンベロープ(基本エンベロープ)のdynamics値カーブ、該MIDI入力に基づく該dynamics値カーブから算出される入力dB値カーブ、Noteセグメント・テンプレートのdynamicsのdB値カーブ、Entrance及びFinishセグメント・テンプレートのdynamicsのdB値カーブ、合成された結果の入力dB値カーブをそれぞれ示すものである。
【0040】
MIDI情報の入力に基づくdynamics値カーブ(つまり入力エンベロープ又は基本エンベロープ)は、そのNoteのキー番号に従い、楽譜解釈部(プレーヤー)にアサインされているDynamicsスケールデータを用いてdB値に変換される(これを入力dB値カーブと呼ぶ)。この変換により算出された入力dB値カーブに対して、上述のようにして時間軸上に配置されたNote/Entrance/Finishの各セグメント・テンプレートを加算する。その際に、Note/Entrance/Finishの各セグメント・テンプレートの各レベルを所定のレベルコントロールパラメータにより拡大縮小することにより、各セグメント・テンプレートにおける特性変化カーブの形状をレベル方向に変化することができる。こうしたレベルコントロールパラメータの指定は、所定位置(例えば、予め決められた特性変化カーブの形状を特徴付ける代表点)において、ユーザが直接数値入力することによって指定するようにしてもよいし、あるいは表示装置5上に表示した特性変化カーブ上の前記代表点をユーザがマウスなどを用いて上下に動かすことによって指定するようにしてもよい。このようにレベルをユーザが編集することにより、各セグメント・テンプレートをレベル方向にカスタマイズすることができる。そして、入力dB値カーブに対してNote/Entrance/Finishの各セグメント・テンプレートを加算すると、各セグメント・テンプレートが相対的に合成されて特徴ある合成dB値カーブを生成する。生成された合成dB値カーブは、例えばAmplitude Shiftとして、あるいはDynamicsとして奏法合成部(アーティキュレーター)に入力される。
【0041】
勿論、上記dynamicsにおけるエンベロープの合成と同様にして、その他のPitch/vibrato depth/vibrato Speedにおいても、所定の入力エンベロープに対してNote/Entrance/Finishの各セグメント・テンプレートを演算することにより合成エンベロープが生成される。また、上記dynamicsにおけるエンベロープに対するレベルコントロールと同様に、その他のPitch/vibrato depth/vibrato Speedにおけるエンベロープに対するレベルコントロールをそれぞれ行うことができることは言うまでもない。
このように、Note/Entrance/Finish(あるいはPhrase)の各セグメント・テンプレートは、入力エンベロープに対して各々が相対的に作用することによって1つの合成エンベロープを生成するようになっている。
【0042】
楽譜解釈部(プレーヤー)1Bにより生成された合成エンベロープ、つまり入力エンベロープに対してNote/Entrance/Finishなどの各セグメント・テンプレートを演算することによって算出された合成エンベロープは奏法合成部(アーティキュレーター)1Cに対して奏法パラメータとして出力される。そして、奏法合成部1Cでは、所定の奏法指定情報(奏法IDと奏法パラメータ)に基づいて奏法データベースから奏法モジュールを読出し、該読み出した各々の奏法モジュールに対して楽譜解釈部1Bで生成された合成エンベロープを配分したパケットストリームを生成する(図2参照)。ここで、奏法合成部1Cによるパケットストリーム作成の際における各奏法モジュールの時間軸上への配置と各奏法モジュールに対する合成エンベロープの配分について、図8を用いて説明する。図8は、パケットストリーム作成の際における各奏法モジュールの時間軸上への配置と各奏法モジュールに対する合成エンベロープの配分について説明するための概念図である。図8(a)はEntrance系モジュール及びFinish系モジュールの時間軸上への配置について説明するための概念図であり、図8(b)はBody系モジュール若しくはJoint系モジュールの時間軸上への配置及び合成エンベロープの配分について説明するための概念図である。
【0043】
図8(a)に示すように、まず奏法合成部1Cは所定の奏法指定情報(奏法IDと奏法パラメータ)に基づいて奏法データベースからEntrance系モジュール及びFinish系モジュールを読出し、時間軸上の所定時間位置に配置する。Entranceセグメント・テンプレートの始点にEntrance系モジュールのサウンドオン・タイミングを一致させることによって、Entrance系モジュールを時間軸上の所定時間位置に配置する。ここでいうサウンドオン・タイミングとは、Entrance系モジュール内にその奏法モジュールの先頭からの時間として記録されているものである。一方、Finishセグメント・テンプレートの終点にFinish系モジュールのサウンドオフ・タイミングを一致させることによって、Finish系モジュールを時間軸上の所定時間位置に配置する。このサウンドオフ・タイミングとは、Finish系モジュール内にその奏法モジュールの先頭からの時間として記録されているものである。次に、図8(b)に示すように、時間軸上の所定時間位置に配置されたEntrance系モジュールとFinish系モジュールとの間にBody系モジュールを配置する。Entrance系モジュールとFinish系モジュールとの間が所定の規定値以下の時間間隔である場合にはBody系モジュールとしてNSB(Normal Short Body)を配置し、所定の規定値以上の時間間隔である場合にはBody系モジュールとしてVB(Vibrato Body)を配置する。ただし、既に配置されたEntrance系モジュールとFinish系モジュールとの間にBody系モジュールが入らない場合には、Body系モジュールを配置することなく省略してよい。そして、次のノートオフとノートオンとの間隔が所定の規定値以下の時間間隔である場合は、Body系モジュールと次のBody系モジュールとの間をジョイント化し、Joint系モジュールを挿入する。こうして各奏法モジュールを時間軸上に順次に配置する。なお、ユーザにより直接使用すべきモジュールが選択されているような場合には、それを使用してよいことは言うまでもない。
【0044】
そして、図8(b)から理解できるように、配置された各奏法モジュールの位置にあわせて、楽譜解釈部1Bにより生成された合成エンベロープ、つまり入力エンベロープに対してNote/Entrance/Finishなどの各セグメント・テンプレートを演算することによって算出された合成エンベロープを取得し、取得した合成エンベロープを各奏法モジュールに配分することによりパケットストリームを生成する。こうして生成されたパケットストリームは波形合成部1Dに供給され、波形合成部1Dでは該パケットストリームに基づき波形データベースから取り出したベクトルデータ(つまり、奏法モジュールが表す波形)を合成エンベロープに応じて変形することができ、こうして変形した個々の奏法モジュールが表す波形を波形接続することによって任意の楽音波形を生成することができる。すなわち、各奏法モジュールに配分された合成エンベロープに応じて各奏法モジュールを変形し、該変形した各奏法モジュールを波形接続することによって、セグメントテンプレートとして付与される各特性変化カーブに従う形状の楽音波形を生成することができるようになっている。
【0045】
なお、奏法合成部1Cは、上述のように楽譜解釈部1Bで生成された合成エンベロープをパケットストリームに反映するだけでなく、ベクトルデータとして反映するようにしてもよい。すなわち、奏法合成部1Cではベクトルパラメータを生成する際に、時間軸上の所定時間位置に配置した奏法モジュールに対して楽譜解釈部1Bにより生成された合成エンベロープを配分したベクトルパラメータを生成するようにしてもよい。こうした場合、波形合成部1Dは生成されたパケットストリームに応じて波形データベースからベクトルデータを順次に取り出し、該ベクトルデータをベクトルパラメータに応じて変形し、変形した各ベクトルデータを波形接続することで、dynamicsエンベロープが反映された音を生成することができる。勿論、Pitch/vibrato depth/vibrato Speedにおいても、dynamicsエンベロープと同様にして、各エンベロープが反映された音を生成することができる。
【0046】
以上のように、この実施例に示す楽音生成装置においては、Phrase/Note/Entrance/Finishセグメント・テンプレートといった時間長が異なる階層的なテンプレートを用いてフレーズ単位や1音単位での楽音表現を部分的に変更することが可能となることから、特に1音内におけるアタック部やリリース部などの一部区間において複雑な変化形状を持つ楽音波形を生成することが簡単にできるようになる。これらの各セグメント・テンプレートで表されるdynamicsについてのエンベロープを合成し、さらに1音毎に有するエンベロープと合成することで全体のdynamicsについてのエンベロープが形成される。また、上記Phrase/Note/Entrance/Finishの各セグメント・テンプレートは各々がdynamics/Pitch/vibrato depth/vibrato Speedに関する特性変化カーブ(つまりエンベロープカーブ)をセットで持つ構成とすることで、ユーザは奏法を指定するだけでdynamicsに加え、Pitch/vibrato depth/vibrato Speedに関しての波形制御も同時に行うことができるようになる。
なお、演奏情報に基づくオリジナルの入力エンベロープ(基本エンベロープ)を生成せずに、セグメントテンプレートの組合せのみに基づいてエンベロープを合成するようにすることも可能である。
【0047】
なお、上述したような楽音生成装置を電子楽器に用いた場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、その場合に、曲データ再生部1A、楽譜解釈部1B、奏法合成部1C、波形合成部1D等を1つの電子楽器本体内に内蔵したものに限らず、それぞれが別々に構成され、MIDIインターフェースや各種ネットワーク等の通信手段を用いて各構成部を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらに、自動演奏ピアノのような自動演奏装置などにも適用してよい。
【0048】
【発明の効果】
本発明によれば、演奏情報に基づき生成される少なくとも1音についての基本エンベロープに対して、セグメントテンプレートの部分的な特性変化カーブがその位置情報に応じた配置で組み合わされることで、合成エンベロープが形成される。従って、セグメントテンプレートを用いるだけで、簡単に、1音内の一部区間において細かな制御を施すことのできる合成エンベロープを形成することができ、これを用いることにより、簡単に1音内における一部区間に対しての制御を行うことができるようになり、また、奏法に対応した表現力豊かな楽音波形を生成することが行い易くなる、等の優れた効果を奏する。すなわち、ユーザは複雑な変化をする楽音を、セグメントテンプレートを用いるだけで簡単に生成することができるようになる。
【図面の簡単な説明】
【図1】 この発明に係る楽音生成装置のハードウエア構成例を示すブロック図である。
【図2】 楽音生成処理を専用ハードウエア装置の形態で構成した場合の一実施例を示すブロック図である。
【図3】 セグメント・テンプレートのデータ構成の一実施例を示した概念図である。
【図4】 「Entranceセグメント・テンプレート自動決定処理」の一実施例を示すフローチャートである。
【図5】 「Finishセグメント・テンプレート自動決定処理」の一実施例を示すフローチャートである。
【図6】 各セグメント・テンプレートの時間軸上への配置について説明するための概念図である。
【図7】 各セグメント・テンプレートを組み合わせて行われるエンベロープ合成について説明するための概念図である。
【図8】 パケットストリーム作成の際における各奏法モジュールの時間軸上への配置と各奏法モジュールに対する合成エンベロープの配分について説明するための概念図である。
【符号の説明】
1...CPU、2...リードオンリメモリ(ROM)、3...ランダムアクセスメモリ(RAM)、4...入力装置、5...表示装置、6...ドライブ、6A...外部記憶メディア、7...波形取込部、8...音源部、8A...サウンドシステム、9...ハードディスク、10...通信インターフェース、BL...バスライン、1A...曲データ再生部、1B...楽譜解釈部(プレーヤー)、1C...奏法合成部(アーティキュレーター)、1D...波形合成部
Claims (7)
- 演奏情報を供給する演奏情報供給手段と、
部分的な特性変化カーブと位置情報とを含むセグメントテンプレートを供給するセグメントテンプレート供給手段と、
前記演奏情報に基づき少なくとも1音についての基本エンベロープを生成し、該演奏情報に基づく時間軸上に前記位置情報に従って前記セグメントテンプレートの特性変化カーブを配置し、配置された特性変化カーブと前記基本エンベロープとを合成することによって少なくとも1音についての合成エンベロープを形成するエンベロープ合成手段と、
形成された合成エンベロープを用いて、前記演奏情報に対応する楽音を生成する楽音生成手段と
を具備する楽音生成装置。 - 前記セグメントテンプレートは複数種の楽音要素についての特性変化カーブをセットで持ち、前記エンベロープ合成手段は、該複数種の楽音要素についての前記演奏情報に基づくエンベロープをそれぞれ生成し、生成した各エンベロープとそれに対応する楽音要素についての各特性変化カーブとをそれぞれ合成することで、該複数種の楽音要素についての前記合成エンベロープをそれぞれ形成することを特徴とする請求項1に記載の楽音生成装置。
- 前記エンベロープ合成手段は、前記演奏情報に含まれるノートオンあるいはノートオフタイミングを基準にして前記セグメントテンプレートの前記位置情報に従って前記特性変化カーブを配置することを特徴とする請求項1又は2に記載の楽音生成装置。
- 前記セグメントテンプレートは、音のアタック部又はリリース部のような音の部分を特徴付ける特性変化カーブを含むことを特徴とする請求項1乃至3のいずれかに記載の楽音生成装置。
- 前記セグメントテンプレートは複数の特性変化カーブを有し、該複数の特性変化カーブの中から選択された特性変化カーブが、前記合成エンベロープを形成するために使用されることを特徴とする請求項1に記載の楽音生成装置。
- 演奏情報を供給するステップと、
部分的な特性変化カーブと位置情報とを含むセグメントテンプレートを供給するステップと、
前記演奏情報に基づき少なくとも1音についての基本エンベロープを生成し、該演奏情報に基づく時間軸上に前記位置情報に従って前記セグメントテンプレートの特性変化カーブを配置し、配置された特性変化カーブと前記基本エンベロープとを合成することによって少なくとも1音についての合成エンベロープを形成するステップと、
形成された合成エンベロープを用いて、前記演奏情報に対応する楽音を生成するステップと
を具える楽音生成方法。 - コンピュータによって実行される楽音生成プログラムであって、
演奏情報を供給するステップと、
部分的な特性変化カーブと位置情報とを含むセグメントテンプレートを供給するステップと、
前記演奏情報に基づき少なくとも1音についての基本エンベロープを生成し、該演奏情報に基づく時間軸上に前記位置情報に従って前記セグメントテンプレートの特性変化カーブを配置し、配置された特性変化カーブと前記基本エンベロープとを合成することによって少なくとも1音についての合成エンベロープを形成するステップと、
形成された合成エンベロープを用いて、前記演奏情報に対応する楽音を生成するステップと
を具える楽音生成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002330662A JP3760909B2 (ja) | 2001-11-19 | 2002-11-14 | 楽音生成装置及び方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001353010 | 2001-11-19 | ||
JP2001-353010 | 2001-11-19 | ||
JP2002330662A JP3760909B2 (ja) | 2001-11-19 | 2002-11-14 | 楽音生成装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003216149A JP2003216149A (ja) | 2003-07-30 |
JP3760909B2 true JP3760909B2 (ja) | 2006-03-29 |
Family
ID=27667335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002330662A Expired - Fee Related JP3760909B2 (ja) | 2001-11-19 | 2002-11-14 | 楽音生成装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3760909B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4876645B2 (ja) * | 2006-03-13 | 2012-02-15 | ヤマハ株式会社 | 波形編集装置 |
-
2002
- 2002-11-14 JP JP2002330662A patent/JP3760909B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003216149A (ja) | 2003-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3675287B2 (ja) | 演奏データ作成装置 | |
US6881888B2 (en) | Waveform production method and apparatus using shot-tone-related rendition style waveform | |
US7750230B2 (en) | Automatic rendition style determining apparatus and method | |
JP3601371B2 (ja) | 波形生成方法及び装置 | |
JP2001100760A (ja) | 波形生成方法及び装置 | |
JP3900188B2 (ja) | 演奏データ作成装置 | |
US7816599B2 (en) | Tone synthesis apparatus and method | |
US6835886B2 (en) | Tone synthesis apparatus and method for synthesizing an envelope on the basis of a segment template | |
JP3829780B2 (ja) | 奏法決定装置及びプログラム | |
JP3654082B2 (ja) | 波形生成方法及び装置 | |
JP4407473B2 (ja) | 奏法決定装置及びプログラム | |
JP3760909B2 (ja) | 楽音生成装置及び方法 | |
JP3832421B2 (ja) | 楽音生成装置及び方法 | |
JP3832419B2 (ja) | 楽音生成装置及び方法 | |
JP3832422B2 (ja) | 楽音生成装置及び方法 | |
JP3832420B2 (ja) | 楽音生成装置及び方法 | |
JP3900187B2 (ja) | 演奏データ作成装置 | |
JP2002297139A (ja) | 演奏データ変更処理装置 | |
JP3613191B2 (ja) | 波形生成方法及び装置 | |
JP2000003175A (ja) | 楽音生成方法、楽音デ―タ作成方法、楽音波形デ―タ作成方法、楽音デ―タ生成方法、および記憶媒体 | |
JP2003271142A (ja) | 奏法表示編集装置及び方法 | |
JP3876896B2 (ja) | 波形生成方法及び装置 | |
JP4007374B2 (ja) | 波形生成方法及び装置 | |
JP2006133464A (ja) | 奏法決定装置及びプログラム | |
JP2003233374A (ja) | 楽曲データの自動表情付け装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040421 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051208 |
|
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: 20051220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060102 |
|
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: 20100120 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110120 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120120 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |