以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図1は、この発明に係る楽音合成装置を適用した電子楽器のハードウェア構成例を示すブロック図である。ここに示す電子楽器は、演奏者による演奏操作子5の操作に伴う演奏進行に応じて供給される演奏情報(例えば、ノートオンイベントやノートオフイベントなどの演奏イベントデータ、ダイナミクス情報やピッチ変調情報あるいはビブラートスピード情報・ビブラートデプス情報などの各種コントロールデータ等を含む)に基づいて電子的に楽音を発生する、あるいは演奏進行順に順次に供給される予め作成済みの演奏情報に基づいて自動的に楽音を発生する、などの楽音合成機能を有する。この楽音合成機能の実行時において、本発明では特に1音のうち音が連続する部分である持続音部(ボディ部)の楽音を合成する際に、取得した演奏情報に含まれるビブラートデプス情報(深さ制御情報)やピッチ変調情報等に基づいて、使用すべき楽音合成方式を適宜に切り替えながら楽音を合成する。こうした持続音部の楽音合成についての詳細な説明は、後述する。
なお、この実施例に示す電子楽器はここに示す以外のハードウェアを有する場合もあるが、ここでは必要最小限の資源を用いた場合について説明する。また、ここでは説明の便宜上、例えば様々な楽器毎の特有な奏法に対応する波形データとして、アタック部、リリース部、持続音部あるいはジョイント部などの1音についての一部区間において奏法に対応した波形全体を記憶しておき(これを奏法モジュールと呼ぶ)、これらを時系列的に複数組み合わせることで1音又は連続する複数音の楽音を形成することにより、自然楽器固有の各種奏法若しくはアーティキュレーションによる音色変化を忠実に表現した奏法などのリアルな再現とその制御を目的としたAEM(Articulation Element Modeling)と称する楽音波形制御技術を用いた音源(所謂AEM音源)を例にして説明する。
図1に示した電子楽器はコンピュータを用いて構成されており、そこにおいて、使用すべき楽音合成方式を適宜に切り替えながら持続音部の楽音を合成するよう指示する持続音部の奏法情報を生成する「ボディ部の奏法合成処理」(後述する図4又は図12参照)は、コンピュータが各々の処理を実現する所定のプログラム(ソフトウェア)を実行することにより実施される。勿論、これらの各処理はコンピュータソフトウェアの形態に限らず、DSP(ディジタル・シグナル・プロセッサ)によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウェア装置の形態で実施してもよい。
本実施例に示す電子楽器は、マイクロプロセッサユニット(CPU)1、リードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3からなるマイクロコンピュータの制御の下に各種の処理が実行されるようになっている。CPU1は、この電子楽器全体の動作を制御するものである。このCPU1に対して、通信バス1D(例えば、データ及びアドレスバスなど)を介してROM2、RAM3、外部記憶装置4、演奏操作子5、パネル操作子6、表示器7、音源8、インタフェース9がそれぞれ接続されている。更に、CPU1には、タイマ割込み処理(インタラプト処理)における割込み時間や各種時間を計時するタイマ1Aが接続されている。すなわち、タイマ1Aは時間間隔を計数したり、所定の演奏情報に従って楽曲を演奏する際の演奏テンポを設定したりするためのテンポクロックパルスを発生する。このテンポクロックパルスの周波数は、パネル操作子6の中の例えばテンポ設定スイッチ等によって調整される。このようなタイマ1AからのテンポクロックパルスはCPU1に対して処理タイミング命令として与えられたり、あるいはCPU1に対してインタラプト命令として与えられる。CPU1は、これらの命令に従って各種処理を実行する。
ROM2は、CPU1により実行される各種プログラム、あるいは波形メモリとして様々な楽器毎の特有な奏法に対応する波形データ(例えば、ビブラート奏法などの音色変化の有る波形やストレートな音色を持つ波形等)などの各種データを格納するものである。RAM3は、CPU1が所定のプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリ等として使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。外部記憶装置4は、自動演奏の元となる演奏情報や奏法に対応する波形データなどの各種データや、CPU1により実行あるいは参照される「ボディ部の奏法合成処理」(図4、図12参照)などの各種制御プログラム等を記憶する。前記ROM2に制御プログラムが記憶されていない場合、この外部記憶装置4(例えばハードディスク)に制御プログラムを記憶させておき、それを前記RAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置4はハードディスク(HD)に限られず、フレキシブルディスク(FD)、コンパクトディスク(CD−ROM・CD−RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の着脱自在な様々な形態の外部記録媒体を利用する記憶装置であってもよい。あるいは、半導体メモリなどであってもよい。
演奏操作子5は楽音の音高を選択するための複数の鍵を備えた、例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子5は演奏者自身の手弾きによる楽音のマニュアル演奏のために使用できるのは勿論のこと、自動演奏対象とする予め用意されている演奏情報を選択するなどの入力手段として使用することもできる。勿論、演奏操作子5は鍵盤等の鍵盤楽器の形態に限らず、楽音の音高を選択するための弦を備えたネック等の弦楽器の形態のもの、息を吹き込むブレスコントローラ等の管楽器の形態のものなど、どのようなものであってもよいことは言うまでもない。さらには、ビブラート音におけるビブラート深さをリアルタイムに調整するための操作子であって、操作に伴いビブラートデプス情報(詳しくはモジュレーション値)を発生するモジュレーションホイールや、楽音のピッチをリアルタイムに微小変化するための操作子であって、操作に伴いピッチ変調情報(詳しくはピッチベンド値)を発生するピッチベンドホイールなどの専用コントローラなどがある。
パネル操作子(スイッチ等)6は、例えば自動演奏対象とする演奏情報を選択するための演奏情報選択スイッチ、演奏の際に使用する音色・効果などの各種演奏パラメータを設定する設定スイッチ等、各種の操作子を含んで構成される。勿論、音高、音色、効果等を選択・設定・制御するために数値データ入力用のテンキーや文字データ入力用のキーボード、あるいは表示器7に表示された各種画面の位置を指定するポインタを操作するマウスなどの各種操作子を含んでいてもよい。表示器7は例えば液晶表示パネル(LCD)やCRT等から構成されるディスプレイであって、上記スイッチ操作に応じた各種画面を表示するのは勿論のこと、演奏情報や波形データなどの各種情報あるいはCPU1の制御状態などを表示することもできる。演奏者は該表示器7に表示されるこれらの各種情報を参照することで、演奏の際に使用する各種演奏パラメータの設定や自動演奏曲の選択などを容易に行うことができる。
音源8は複数のチャンネルで楽音信号の同時発生が可能であり、通信バス1Dを経由して与えられた演奏情報を入力し、この演奏情報に基づいて楽音を合成して楽音信号を発生する。ここに示す電子楽器においては、演奏情報内のダイナミクス情報に対応する波形データがROM2や外部記憶装置4などから読み出されると、該読み出された波形データはバスラインを介して音源8に与えられて適宜バッファ記憶される。そして、音源8ではバッファ記憶された波形データを所定の出力サンプリング周波数に従い出力する。この音源8から発生された楽音信号は、図示しない効果回路(例えばDSP(Digital Signal Processor))などにより所定のディジタル信号処理が施され、該信号処理された楽音信号はサウンドシステム8Aに与えられて発音される。
インタフェース9は該電子楽器と外部の演奏情報生成機器(図示せず)などとの間で各種情報を送受するための、例えばMIDIインタフェースや通信インタフェースなどである。MIDIインタフェースは、外部の演奏情報生成機器(この場合には、他のMIDI機器等)からMIDI規格の演奏情報を当該電子楽器へ供給したり、あるいは当該電子楽器からMIDI規格の演奏情報を他のMIDI機器等へ出力するためのインタフェースである。他のMIDI機器はユーザによる操作に応じてMIDI形式のデータを発生する機器であればよく、鍵盤型、ギター型、管楽器型、打楽器型、身振り型等どのようなタイプの操作子を具えた(若しくは、操作形態からなる)機器であってもよい。通信インタフェースは、例えばLANやインターネット、電話回線等の有線あるいは無線の通信ネットワーク(図示せず)に接続されており、概通信ネットワークを介して、外部の演奏情報生成機器(この場合には、サーバコンピュータ等)と接続され、当該サーバコンピュータから制御プログラムや演奏情報などの各種情報を該電子楽器に取り込むためのインタフェースである。すなわち、ROM2や外部記憶装置4等に制御プログラムや演奏情報などの各種情報が記憶されていない場合に、サーバコンピュータから各種情報をダウンロードするために用いられる。クライアントとなる電子楽器は、通信インターフェース及び通信ネットワークを介してサーバコンピュータへと制御プログラムや演奏情報などの各種情報のダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求された各種情報を通信ネットワークを介して本電子楽器へと配信し、本電子楽器が通信インタフェースを介して各種情報を受信して外部記憶装置4等に蓄積することにより、ダウンロードが完了する。
なお、上記インタフェース9をMIDIインタフェースで構成した場合、該MIDIインタフェースは専用のMIDIインタフェースを用いるものに限らず、RS232−C、USB(ユニバーサル・シリアル・バス)、IEEE1394(アイトリプルイー1394)等の汎用のインタフェースを用いてMIDIインタフェースを構成するようにしてもよい。この場合、MIDIイベントデータ以外のデータをも同時に送受信するようにしてもよい。MIDIインタフェースとして上記したような汎用のインタフェースを用いる場合には、他のMIDI機器はMIDIイベントデータ以外のデータも送受信できるようにしてよい。勿論、演奏情報に関するデータフォーマットはMIDI形式のデータに限らず、他の形式であってもよく、その場合はMIDIインタフェースと他のMIDI機器はそれにあった構成とする。
図1に示した電子楽器においては、演奏者による演奏操作子の操作に伴い発生される演奏情報、あるいは予め用意されたSMF(Standard MIDI File)形式等の演奏情報に基づいて楽音を連続的に発生させることのできる楽音合成機能を有しており、この楽音合成機能の実行時において、特に1音のうち音が連続する部分である持続音部の楽音を合成する際に、例えばユーザによるモジュレーションホイールの操作に応じて適宜に供給されるビブラートデプス情報や、ユーザによるピッチベンドホイールの操作に応じて適宜に供給されるピッチ変調情報等の演奏情報(あるいは、シーケンサーなどから演奏進行順に順次に供給されるこれらの演奏情報)に基づいて、持続音部の楽音合成のために使用すべき楽音合成方式を適宜に切り替えながら楽音を合成する。そこで、こうした楽音合成機能の概要について、図2を用いて説明する。図2は、当該電子楽器が有する楽音合成機能の一実施例を説明するための機能ブロック図である。図2において、図中の矢印はデータの流れを表すものである。
楽音合成機能の開始に伴い、まず奏法合成部J3に対して入力部J2から演奏情報が演奏進行順に順次に供給される。入力部J2としては、演奏者による演奏操作に応じて適宜に演奏情報を発生する鍵盤等の演奏操作子5や、予めROM2等に記憶した演奏情報を演奏進行順に供給するシーケンサー(図示せず)などの入力装置がある。こうした入力部J2から供給される演奏情報は、ノートオンイベントやノートオフイベント(これらを総称してノート情報と呼ぶ)などの演奏イベントデータと、ダイナミクス情報やピッチ変調情報あるいはビブラートスピード情報・ビブラートデプス情報などのコントロールデータとを少なくとも含む。すなわち、入力部J2を介して入力されるダイナミクス情報やピッチ変調情報あるいはビブラートスピード情報・ビブラートデプス情報には、演奏操作子5の演奏操作に基づきリアルタイムに発生されるもの(例えば、ダイナミクス情報について鍵押圧時のアフタータッチセンサ出力データ、ピッチ変調情報についてピッチベンドホイール操作に応じた出力データ、ビブラートスピード情報・ビブラートデプス情報についてモジュレーションホイール操作に応じた出力データなど)もあれば、予め記憶又はプログラムされた自動演奏情報に基づくものもある。
奏法合成部J3は演奏情報(上記した演奏イベントデータやコントロールデータなど)を受け取ると、例えばノート情報に対応する1音をアタック部、持続音部(ボディ部)、リリース部などの一部区間毎に区分したり、持続音部はどの時間から始まるかを特定したり、あるいはコントロールデータとして受け取った情報を変換したりするなどして、楽音を合成するために必要とされる各種情報を含む「奏法情報」を生成する。ここで、持続音部の楽音を合成するために必要とされる「奏法情報」を生成する際には、入力されたピッチ変調情報やビブラートデプス情報に応じて、楽音合成のために使用する波形データが後述するベンドユニットであるマニュアル楽音合成部J4、又は楽音合成のために使用する波形データが後述するビブラートユニットであるオート楽音合成部J5のいずれかに楽音合成方式を適宜に切り替えながら、持続音部用の「奏法情報」を生成する。奏法合成部J3は、前記各楽音合成方式で利用するデータベースJ1又はデータベースJ6にそれぞれ記憶されているデータテーブルを参照して、入力されたダイナミクス情報やピッチ変調情報等に対応した持続音部に適用するユニット(ベンドユニット又はビブラートユニット)を選択し、該選択したユニットを特定する情報を該当する「奏法情報」に加えることで、前記楽音合成方式の切り替えを行うよう指示する。すなわち、奏法合成部J3は、それぞれの楽音合成方式で利用可能な波形データを指示することにより、マニュアル楽音合成部J4又はオート楽音合成部J5のいずれかに対して、持続音部の楽音合成を開始するよう指示する。
一般的に、AEM音源では、奏法合成部J3により生成された前記「奏法情報」に基づき、データベースから使用する波形データを適宜に読み出して、該読み出した波形データを用いてアタック部、持続音部、リリース部あるいはジョイント部などの楽音の一部区間毎に楽音合成を行って、楽音を出力する。ただし、本実施例においては、上記したように、持続音部の楽音を合成する際に、マニュアル楽音合成部J4又はオート楽音合成部J5のいずれかの楽音合成方式を適宜に切り替える。マニュアル楽音合成部J4は、複数個の異なるピッチずれ(例えばセント値)にそれぞれ対応する複数の波形データを記録した「ベンドユニット」(後述する図3(b)参照)を使用して、持続音部の楽音を合成する楽音合成方式である。他方、オート楽音合成部J5は、ビブラート1周期にわたる複数周期(又は複数の区間)からなる波形データ(ビブラート付与された波形データ)を記録した「ビブラートユニット」(後述する図3(c)参照)を使用して、持続音部の楽音を合成する楽音合成方式である。
ここで、上述したデータベースJ1又はデータベースJ6の各波形メモリに記憶されており、持続音部の楽音合成のためにマニュアル楽音合成部J4又はオート楽音合成部J5の各々が利用することのできる波形データのデータ構造について、図3を用いて説明する。図3(a)はデータベースのデータ構造を示す概念図であり、図3(b)及び図3(c)は上記した異なる楽音合成方式(マニュアル楽音合成部J4又はオート楽音合成部J5)のそれぞれが採用するユニット単位に記憶される波形データの一実施例を示す概念図である。
データベースJ1又はデータベースJ6においては、持続音部に適用する波形データとそれに関連するデータ群とを「ユニット」としてそれぞれ記憶している。1つの「ユニット」は、楽音合成時において1つのかたまりとして処理できる波形単位である。図3(a)に示すように、各「ユニット」はダイナミクス値にそれぞれ対応付けられており、こうしたダイナミクス値に対応付けられた複数のユニットを1組として、各音高(図では便宜上C3、D3、E3のみ示している)毎に少なくとも1組ずつ記憶している。例えば、1つの名目的な音色(ピアノやバイオリンあるいはサックス等の楽器音色、つまり音色情報で選択可能な1つの音色)について、35種の音高(音階音)のそれぞれに対応して、20種のダイナミクス値に対応付けられたユニットを記憶するものとすると、データベース全体では当該音色について700個(35×20)のユニットを記憶することになる。この「ユニット」として記憶される波形データは、同じ音高であっても各ダイナミクス値に対応する各ユニットのそれぞれが異なる音色上の特徴を持つ楽音波形(つまり波形形状が異なる楽音波形)からなるものとすることができる。なお、個別の音高(音階音)毎にこのようなユニットをそれぞれ記憶することなく、2又はそれ以上の音高(例えばC3とC#3など)のグループに対応してこのようなユニットを記憶するようにしてよい。
持続音部の楽音を合成する第1の楽音合成方式であるマニュアル楽音合成部J4では、図3(b)に示すように、1つのダイナミクス値に対応して複数m個の異なるピッチずれ(例えばセント値)にそれぞれ対応する複数の波形データを記録した「ユニット」(これをベンドユニットと呼ぶ)を使用する。例えば、或る音色の或る1つの音高(ノート)に対応する或る1つのダイナミクス値に対応して、ピッチずれなし(0セント)の波形データを含む−50セント乃至+50セントの範囲の複数ステップ(例えば10セントきざみ)のピッチずれに対応する複数の波形データを、1つの「ベンドユニット」として記憶する。この場合、ベンドユニットは、その有する複数の波形データに対応するピッチ情報(ピッチずれ情報)を持ち、指示されたピッチずれに対応するユニット内の波形データを検索/選択することができるようになっている。すなわち、ベンドユニットは、ピッチベンド値に従って音色が切り替わる波形データの組み合わせからなるデータである。
他方、持続音部の楽音を合成する第2の楽音合成方式であるオート楽音合成部J5では、図3(c)に示すようなビブラート1周期にわたる複数周期(又は複数の区間)からなる波形データ(ビブラート付与された波形データ)を記録した「ユニット」(これをビブラートユニットと呼ぶ)を使用する。図3(c)に示す例においては、ビブラート1周期において、n周期(又はn区間)分の波形データが存在することが示されている。このビブラートユニットの波形データは(オリジナルのビブラート波形同様に)ビブラート1周期の間で音色が微妙に又は複雑に時間変化し、勿論その各周期(又は区間)毎の波形ピッチも変化(ビブラート)している。なお、このビブラートユニットにおけるn周期(又はn区間)の波形データは、オリジナル波形において元々連続しているものであってもよいし、あるいは、連続していないものであってもよい。ビブラートユニットにおけるピッチずれを含む各波形データを有効に利用しうるようにするために、各波形データに付属してピッチ情報を持たせるようにしている。このようなビブラートユニットが、上述のように、同一音色(例えばバイオリンのビブラート奏法のような奏法音色)につき、各種音高毎に複数のダイナミクス値に対応してそれぞれ記憶されている。すなわち、ビブラートユニットは、周期的に音色変化する一連の連続するビブラート波形からなるデータである。
上記データベースJ1又はデータベースJ6において、各「ユニット」毎に波形データと共に付加的に記憶されるデータ群としては、例えばその記憶しているオリジナルの波形データのダイナミクス値やピッチ情報(具体的には、元データの音高ピッチ及びそれに対するピッチずれを示す情報)などの情報がある。さらに、ビブラート1周期にわたる全波形データを記録した「ビブラートユニット」においては、ビブラート1周期の情報としてユニットの1サイクル分の時間長さ(ユニット長と呼ぶ)や平均パワー値などの情報が記録される。こうしたデータ群は、「データテーブル」として一括管理することができるようになっている。
なお、ビブラートユニットの波形データは、ビブラート1周期に限らず、複数のビブラート周期にわたるものであってもよく、あるいは、ビブラートの1/2周期など、ビブラート1周期未満からなるものであってもよい。また、ベンドユニットの各波形データは1周期に限らず、2又はそれ以上の複数周期の波形で構成してもよいし、あるいは、公知のように1/2周期等、1周期未満の波形をベンドユニットの波形データとして記憶してもよい。
なお、データベースJ1及びデータベースJ6の少なくともいずれかには、上記した持続音部用の波形データの他に、アタック部、リリース部あるいはジョイント部などの他の楽音の一部区間を合成するための、アタック部用、リリース部用あるいはジョイント部用の各波形データを記憶していてよいことは言うまでもない。
なお、図3(c)に示すような、ピッチのずれた複数区間の波形データを1ユニットとしてデータベースに記憶するものとしては、ビブラートユニットに限らず、その他の適宜のピッチ変動する楽音波形(例えばトリル奏法など)のユニットであってもよい。
次に、楽音合成方式を適宜に切り替えながら持続音部の楽音を合成するよう指示する、持続音部の奏法情報を生成する奏法合成処理について、図4を用いて説明する。図4は、「ボディ部の奏法合成処理」の一実施例を示したフローチャートである。当該処理は、演奏開始と共に該電子楽器におけるCPU1により例えば10ms(ミリ秒)毎に実行される割り込み処理である。この「ボディ部の奏法合成処理」は、演奏者による演奏操作子5の操作に応じて発生される演奏情報(あるいはシーケンサーなどから入力される演奏情報)に基づき、持続音部の奏法情報を生成する処理である。なお、アタック部の奏法情報については、図示しないアタック部の奏法合成処理によって別途生成されるようになっており、こうしたアタック部の奏法合成処理に引き続いて、この「ボディ部の奏法合成処理」が行われる。
ステップS1は、現在合成中の波形(アタック部波形)がアタック部の終端に近いか否か、又はその後に、現在合成中の持続音部波形として使用中のユニット(ベンドユニット又はビブラートユニット)の終端に近いか否かを判定する。ここでの「使用中のユニットの終端に近いか否か」の判定は、例えば現在時刻に1回分のタイマー割り込み間隔時間(10ms)を加算した時刻(加算時刻)が、当該ユニットを使用開始した時刻に、ビブラートユニットの場合には当該ユニットの時間長さ(ユニット長と呼ぶ)を加算した終端時刻、ベンドユニットの場合には使用中の波形データを適用する所定の時間長さ(波形データ長と呼ぶ)を加算した終端時刻、を越えるか否かの判定を行うことによる。アタック部の終端に到達していない、又は加算時刻が現在使用中のユニットの終端時刻に到達していないと判定した場合には(ステップS1のNO)、当該処理を終了し、次の割り込みまでこの図4に示した処理は行われない。つまり、アタック部の終端のタイミングまでの間においてはアタック部用の波形データに基づきアタック部の楽音合成処理が行われているので、この「ボディ部の奏法合成処理」が実質的には行われない。
他方、アタック部の終端が到来した、又は加算時刻が現在使用中のユニットの終端時刻に到達したと判定した場合には(ステップS1のYES)、演奏情報に含まれるモジュレーション値が所定の閾値以下(例えば0以下)であるか否かを判定する(ステップS2)。モジュレーション値が所定の閾値以下であると判定した場合には(ステップS2のYES)、「マニュアルビブラートボディ合成処理」を実行する(ステップS3)。一方、モジュレーション値が所定の閾値以下でないと判定した場合、あるいはビブラートデプス情報が未だに取得されていない場合には(ステップS2のNO)、「オートビブラートボディ合成処理」を実行する(ステップS4)。これらの「マニュアルビブラートボディ合成処理」及び「オートビブラートボディ合成処理」については、後述する(後述の図5及び図6参照)。ステップS5は、ユニットの終端時刻を記憶する。上記したように、ユニット終端時刻は、当該ユニットを使用開始した時刻に、当該ユニットが持つ1サイクル分の時間長さ(ユニット長)又は使用中の波形データを適用するだけの所定の時間長さ(波形データ長)を加算した時刻である。
上記「ボディ部の奏法合成処理」で実行する「マニュアルビブラートボディ合成処理」(図4のステップS3参照)について、図5を用いて説明する。図5は、「マニュアルビブラートボディ合成処理」の一実施例を示したフローチャートである。
ステップS11は、現在の最新の入力ダイナミクス値を取得する。入力ダイナミクス値とは、前述したように入力部J2を介して入力されるダイナミクス情報の示す値のことである。ステップS12は、既に取得済みのノート情報と新たに取得した入力ダイナミクス値に基づき、データベース(ここではデータベースJ1)を参照し、該当する音高及びダイナミクス値のベンドユニットを選択する。ステップS13は、前記選択されたベンドユニット内の波形データのうち、現在入力された(リアルタイムの)ピッチ変調情報に従って1つの波形データを選択し、これを加工して奏法情報を生成する。ここで、加工とは、ピッチ調整処理を含んでいてよい。すなわち、入力された(リアルタイムの)ピッチ変調情報が指示するピッチずれに一致するピッチずれを持つベンドユニット内の波形データが存在していない場合、最も近いピッチずれを持つベンドユニット内の波形データを選択し、その生成ピッチを調整することで、ピッチ変調情報が指示するピッチずれが得られるようにする。こうして必要な奏法情報が生成され、ステップS14では、生成された奏法情報に従って楽音を合成するように、マニュアル楽音合成部J4に対して指示する(奏法情報を送る)。この際には、変化前後の波形データをクロスフェード合成により、滑らかに波形が切り替わるように指示するのがよい。
他方、上記「ボディ部の奏法合成処理」で実行する「オートビブラートボディ合成処理」(図4のステップS4参照)について、図6を用いて説明する。図6は、「オートビブラートボディ合成処理」の一実施例を示したフローチャートである。なお、この「オートビブラートボディ合成処理」においては、追って詳しく説明するように、「ビブラートユニット」に基づき再生されるビブラート音のビブラートスピード及びビブラート深さはそれぞれの制御データによって可変制御することができ、また、ピッチ変調情報に応じて当該ビブラート音全体をピッチシフトすることができる。また、この「オートビブラートボディ合成処理」では、入力ダイナミクス値によるユニット選択は、所定時間間隔(例えば10ms)を計測するごとに行われるのではなく、「ビブラートユニット」の1サイクル分のユニット長(ビブラート1周期分)の再生が終わるごとに行われる。すなわち、「ビブラートユニット」の1サイクル分の再生中は、入力ダイナミクス値及びモジュレーション値の変化は無視される。
ステップS21は、現在の最新の入力ダイナミクス値を取得する。ステップS22は、予め取得済みのノート情報と前記取得した入力ダイナミクス値に応じてデータベース(ここではデータベースJ6)を参照し、該当するビブラートユニットを選択する。ステップS23は、選択されたビブラートユニットを、入力されたピッチ変調情報、ビブラートスピード情報及びビブラートデプス情報に基づき加工して、奏法情報を生成する。ここで、加工とは、例えば入力されたピッチ変調情報に応じて当該選択されたビブラートユニットの波形ピッチをまるごとピッチシフトしたり、入力されたビブラートスピード情報に応じてビブラート周期を増/減する設定を行ったり、入力されたビブラートデプス情報に応じてビブラート深さを設定したりするなどである。一般的には、モジュレーションホイールの操作に応じて、ビブラートスピード情報とビブラートデプス情報とは同時に出力されることから、上記加工は同時に処理される。ステップS24は、生成された奏法情報に従って楽音を合成するように、オート楽音合成部J5に対して指示する(奏法情報を送る)。
ここで、上記した「ボディ部の奏法合成処理」(図4参照)による奏法情報の生成手順を、図を用いて具体的に説明する。まず、入力ダイナミクス値に応じたユニット(ベンドユニット又はビブラートユニット)の選択手順(図5のステップS12又は図6のステップS22参照)について、図7を用いて説明する。図7は入力ダイナミクス値に応じたユニットの選択手順を例示した模式図であり、図7(a)は入力ダイナミクス値の時間変化を示し、図7(b)は各ダイナミクス値に対応してデータベース内に記憶されているユニットの存在を示すものである。ただし、入力ダイナミクス値に応じたユニットの選択については、マニュアルビブラートボディ合成処理及びオートビブラートボディ合成処理のどちらにおいても同じ手順であることから、ここではオートビブラートボディ合成処理におけるビブラートユニットを選択する場合を例にして説明する。なお、ここに示す例では、C3に対応する楽音を生成するものとし、アタック部の波形生成前に、当該発生すべき楽音「C3」のノート情報が取得済みであるものとする。
図7に示すように、例えば、時刻aがアタック部の終端である場合、そのときの入力ダイナミクス値を取得し、既に取得済みのノート情報(音高「C3」)と新たに取得した入力ダイナミクス値とに基づき、データベースに記憶された該当音高(C3)についての複数のビブラートユニット(A〜F・・・)の中から、新たに取得した入力ダイナミクス値に対応するユニットBを1つ選択して奏法情報を生成する。その後、時刻bで、ユニットの終端時刻が到来すると、そのときの入力ダイナミクス値を取得し、該当する音高(C3)についての該新たに取得した入力ダイナミクス値に対応するユニットEをデータベースから1つ選択して奏法情報を生成する。さらに時間が経過して、ユニットの終端時刻が到来した時刻cになると、そのときの入力ダイナミクス値を取得し、該当する音高(C3)のデータベースから該入力ダイナミクス値に対応するユニットDを1つ選択して奏法情報を生成する。このようにして、ほぼ一定周期(ユニット長)間隔毎にダイナミクス情報に応じて使用するユニットを選択し、該選択されたユニットに含まれる波形データに従って持続音部の楽音を合成するよう、楽音合成部に指示する。なお、この場合、所定時間間隔で取得した入力ダイナミクス値を、適宜バッファ記憶しておくのは勿論である。
次に、「マニュアルビブラートボディ合成処理」によるユニット選択後の奏法情報の生成手順(図5のステップS13参照)について、図8を用いて説明する。図8は、「マニュアルビブラートボディ合成処理」によるユニット選択後の奏法情報の生成手順を例示的に説明するための模式図である。図8(a)は入力されたピッチ変調情報によって指示されるピッチベンド量の時間変化を例示し、図8(b)はデータベース内における1つの入力ダイナミクス値に応じて選択されたベンドユニットに含まれる波形データと各波形データに付属するピッチずれ情報を例示し、図8(c)はピッチ変調情報に応じて選択されるベンドユニット内の波形データの時系列的組み合わせを例示する。
図8に示すように、例えば、時刻t1がアタック部の終端又はその後の波形ユニット長(ここでは50msとした)の境目と一致するタイミングである場合に、現時点での最新の入力ピッチ変調情報(ピッチベンド値)を取得し、該取得したピッチ変調情報に応じて、上記選択済みの1組のベンドユニットの中から該当するピッチずれを持つ波形データ(例えば「2」)を選択して奏法情報を生成する。こうして生成された奏法情報に基づく新たな楽音波形(後続波形)は、前述のように、それまでの楽音波形(先行波形)とクロスフェード合成されて切り替えられる。演奏時間の経過に従い時刻t1の次に波形ユニット長(50ms間隔)の境目と一致するタイミングである時刻t2になると、そのときの入力ピッチ変調情報を取得し、このピッチ変調情報に応じて、選択済みの1組のベンドユニットの中から該当するピッチずれを持つ波形データ(例えば「4」)を選択して奏法情報を生成する。生成された奏法情報に基づく新たな楽音波形は、先行波形とクロスフェード合成されて滑らかに切り替えられる。このようにして、入力ピッチ変調情報の取り込みが随時に行われ、取得した入力ピッチ変調情報に応じて既に取得済みの入力ダイナミクス値に応じたベンドユニットに含まれる複数の波形データの中から該当の波形データを特定して使用するようにすればよい。なお、この場合、所定時間間隔で取得した入力ピッチ変調情報を適宜バッファ記憶しておくのは勿論である。
なお、振幅(アンプ)やピッチはユニット内のものをそのまま用いず、入力ダイナミクス値、入力ピッチ変調情報に従って、所定のテーブル(図示せず)等で変換した値を用いるとよい。
なお、時間的に前後する波形データ同士を接続する際にはクロスフェード合成を行うが、その期間は波形ユニット長(上記例では50ms)に限らず、もっと短くてもよいし、長くてもよい。短い場合には応答速度が速くなる。長い場合には、選択された音色が大きく異なるものであっても、滑らかに接続される。また、入力ダイナミクス値の変化速度にあわせて、動的にクロスフェード期間を変化させるようにしてもよい。
次に、「オートビブラートボディ合成処理」によるユニット選択後の奏法情報の生成手順(図6のステップS23参照)について、図9及び図10を用いて説明する。図9は、「オートビブラートボディ合成処理」によるユニット選択後における奏法情報の生成手順として、ビブラートスピードを加工する場合について説明するための模式図である。図9(a)は予め取得済みのノート情報と取得した入力ダイナミクス値に応じて選択された元のビブラートユニットを示し、この元のビブラートユニットをそのまま再生した場合が基本のビブラートスピードであるとする。図9(b)はビブラートスピードをそれよりも遅くする場合の合成例を示し、図9(c)はビブラートスピードをそれよりも速くする場合の合成例を示す。図9(a)においては、理解しやすくするために、元のビブラートユニットにおける波形データが持つオリジナルの振幅エンベロープ及びピッチ変動状態も図示している。そして、図9(b)、(c)には、参考のために、ビブラートスピードの増/減調整に伴って時間軸方向に伸縮される振幅エンベロープ及びピッチ変動状態も示されている。
図9(a)に示す例では、元のビブラートユニットが番号1〜8の8個の区間の波形データからなる例を示しており、各区間の波形データ(1〜8)が所定の時間間隔で順次に切り替えられ、かつ、複数周期ずつ繰り返して読み出され、かつ、隣り合う区間の波形データ同士がクロスフェード合成される。なお、この場合、前述のように、1区間の波形データは、典型的には1周期波形からなるが、それに限らず、複数周期波形又は1周期未満の波形でもよい。ビブラートスピードを遅くする(ビブラート周期を長くする)場合は、図9(b)に示すように、ビブラートユニットを構成する各区間の波形データ(1〜8)の順次切り替えの時間間隔を広くしてクロスフェード合成する。
反対に、ビブラートスピードを速くする(ビブラート周期を短くする)場合は、図9(c)に示すように、ビブラートユニットを構成する各区間の波形データ(1〜8)の順次切り替えの時間間隔を狭くしてクロスフェード合成する。なお、ビブラートユニット中のすべての区間の波形データ(1〜8)を使用したのでは、望みの短いビブラート周期が得られない場合は、適当な区間の波形データを間引きすればよい。このようにして、ビブラートスピードが変更された場合には、図示のように振幅エンベロープ及びピッチ変動エンベロープの時間長さをビブラートスピードにあわせて伸び縮みさせると共に、波形データの切り替え時間間隔もビブラートスピードにあわせて伸ばしたり縮めたりする。
なお、合成される波形の振幅(アンプ)とピッチは、元のビブラートユニットが持つものをそのまま使用してもよい。あるいは、図9(b)、(c)に示したような時間軸伸縮制御された振幅エンベロープ及びピッチ変動エンベロープを別途生成し、この生成した振幅エンベロープ及びピッチ変動エンベロープに従って、上記クロスフェード合成する波形データのピッチと振幅を更に制御するようにしてもよい。このようなピッチ及び振幅の時間軸伸縮制御は、本出願人が提案済の公知技術を使用することで実現できるので、詳細説明は省略する。
図10は、「オートビブラートボディ合成処理」によるユニット選択後における奏法情報の生成手順として、ビブラートの深さを加工する場合について説明するための模式図である。図10(a)に予め取得済みのノート情報と取得した入力ダイナミクス値に応じて選択された元のビブラートユニットを示し、この元のビブラートユニットをそのまま再生した場合が基本のビブラート深さであるとする。図10(b)はビブラート深さをそれよりも浅くした場合を示し、図10(c)はビブラート深さをそれよりも深くした場合を示す。なお、図10においては、元のビブラートユニットが番号1〜7の7個の区間の波形データからなる例を示しており、振幅エンベロープ及びピッチ変動状態をあわせて図示している。
ビブラートユニットの持つビブラートの深さより浅くする場合には、浅いピッチずれに相当する区間の波形データをビブラートユニットから選択し、これを使いまわして浅い深さのビブラート楽音波形を合成する。例えば、−50セント〜0セント〜+50セントの範囲で変化するビブラートユニットを使用してその深さを2分の1の深さにする場合に、−25セント〜0セント〜+25セントの範囲のピッチずれの波形データを使用し、それよりもピッチずれの大きい波形データは使用しない。図10(b)では、ビブラートユニット内の各区間の波形データのうち、ピッチが−25セント〜0セント〜+25セントの範囲にある1番目、4番目、7番目の区間の波形データを選択して使用し、それよりもピッチずれの大きい2番目、3番目、5番目、6番目の区間の波形データは使用しないことが示されている。
反対に、ビブラートユニットの持つビブラートの深さより深くする場合には、図10(c)に示すように、ビブラートユニット内の全ての区間の波形データを使用し、かつ、ピッチずれが深くなるように加工したピッチ変動エンベロープに従って各区間の波形データのピッチをより高く又はより低くするように制御すればよい。なお、これに限らず、当該ビブラートユニット内において浅いビブラートと深いビブラートの波形データなど各種の深さの波形データをそれぞれ予め記憶しておき、ビブラート深さ情報に応じていずれかの波形データを選択して(又は組み合わせてつまり補間して)用いるようにしてもよい。なお、図示のように、ビブラート深さを浅くした場合には振幅エンベロープの大小レベル変動幅が小さくなるように振幅エンベロープ制御し、他方、ビブラート深さを深くした場合には振幅エンベロープの大小レベル変動幅が大きくなるように振幅エンベロープ制御するとよい。このようにして、ビブラートデプスが変更された場合には、図示のように振幅エンベロープ及びピッチ変動エンベロープの動きを誇張し、またその深さに応じて、ユニットに含まれる複数の波形データのうち、使用する波形データの範囲を限定して、該波形データを再配置する。
なお、一般的には、モジュレーションホイールの操作に応じて、ビブラートスピードとビブラートデプスとを同時に任意に変化させることができることから、上記したようなビブラートスピードとビブラートデプスの加工は同時に処理される。すなわち、図示のように振幅エンベロープ及びピッチ変動エンベロープの動きを誇張しながらそれらの時間長さを調整し、またユニットに含まれる複数の波形データのうち使用する波形データの範囲を限定して、それらを配置する際にはビブラートスピードにあわせて各波形データの時間間隔を調整する。
以上のようにすると、ユーザがモジュレーションホイールやピッチベンドホイール等のコントローラを適宜に操作して楽音を制御する際において、特殊な切り替え操作を行うことなく、演奏したいフレーズの音楽的な特徴によってモジュレーションホイールからビブラート音の深さ違いをコントロールすることに応じて、ビブラートデプスが異なるビブラート音とストレート音とを自由に生成することができ、また生成されるストレート音を単に単調な音としてではなく、ピッチベンドホイールから入力されたピッチベンド値に従い、音色変化のある楽音として高品質に再現することができるようになる。
なお、図11に示すように、第1の楽音合成方式であるマニュアルビブラートボディ合成処理で使用する波形データとして、図3(b)に示したような専用のベンドユニットを記憶することなく、第2の楽音合成方式であるオートビブラートボディ合成処理で使用するビブラートユニットに含まれる波形データのいくつかを、マニュアルビブラートボディ合成処理で使用する波形データ(ベンドユニット)として利用するようにしてもよい。すなわち、データベースを共通化し、マニュアルビブラートボディ合成方式で楽音を合成する際には、「ビブラートユニット」における各波形データが持つピッチ情報(ピッチずれ情報)を参照して、「ビブラートユニット」から必要なピッチずれに対応する範囲にある1乃至複数の波形データを抽出して利用するとよい。そこで、こうした場合の「ボディ部の奏法合成処理」を図12に示す。図12は、「ボディ部の奏法合成処理」の別の実施例を示したフローチャートである。当該処理についても、演奏開始と共に該電子楽器におけるCPU1により割り込み処理として例えば10ms(ミリ秒)毎に実行され、また前述同様、アタック部の奏法情報については、図示しないアタック部の奏法合成処理によって別途生成されるようになっており、このアタック部の奏法合成処理に引き続いて、ここに示す「ボディ部の奏法合成処理」が行われる。
図12に示すように、ステップS31では、現在合成中の波形(アタック部波形)がアタック部の終端に近いか否か、又はその後、現在合成中の持続音部波形として使用中のユニットの終端に近いか否かを判定する。アタック部の終端に到達していない、又は加算時刻が現在使用中のユニットの終端時刻に到達していないと判定した場合には(ステップS31のNO)、当該処理を終了し、次の割り込みまでこの図12の処理は行われない。他方、アタック部の終端に到達した、又は加算時刻が現在使用中のユニット(ビブラートユニット又はベンドユニット)の終端時刻に到達したと判定した場合には(ステップS31のYES)、現在の最新の入力ダイナミクス値を取得する(ステップS32)。ステップS33は、予め取得済みのノート情報と前記取得した入力ダイナミクス値に応じてデータベースを参照し、データベースから該当するビブラートユニットを選択する。
ステップS34は、演奏情報に含まれるモジュレーション値が所定の閾値以下(例えば0)であるか否かを判定する。モジュレーション値が所定の閾値以下であると判定した場合には(ステップS34のYES)、選択されたビブラートユニットから、現在入力された(リアルタイムの)ピッチ変調情報に従って必要なピッチずれに対応する波形データを抽出し、該抽出した波形データを加工して、奏法情報を生成する(ステップS35)。ステップS36は、生成された奏法情報に従って楽音を合成するように楽音合成部に対して指示する。一方、モジュレーション値が所定の閾値(例えば0)以下でないと判定した場合には(ステップS34のNO)、選択されたビブラートユニットを入力されたピッチ変調情報、ビブラートスピード及びビブラート深さなどの情報に基づき加工して、奏法情報を生成する(ステップS37)。ステップS38は、生成された奏法情報に従って楽音を合成するように、楽音合成部に指示する。ステップS39は、ユニットの終端時刻を記憶する。
なお、上述した図4の例では、ステップS2〜S5の処理は、ステップS1がYESに分岐したときに1回だけ実行されるように、また上述した図12の例では、ステップS32〜S39の処理は、ステップS31がYESに分岐したときに1回だけ実行されるようになっており、入力モジュレーション値や入力ピッチ変調情報の取り込みが入力ダイナミクス値の取り込みと同じ時間間隔で行われる。しかし、これに限らず、1ms又はその他適宜の割込み周期で、入力されたモジュレーション値やピッチ変調情報の変化を随時チェックし、該入力モジュレーション値やピッチ変調情報に応じてピッチ変動する楽音合成を随時行うようにしてもよい。その場合は、例えば、図4において、アタック部の終端に達した後でユニットの終端に達していないときは、入力モジュレーション値や入力ピッチ変調情報が変化したか否かをチェックするようにステップS1の処理を変更し、入力モジュレーション値や入力ピッチ変調情報が変化したならばステップS2を実行するように、処理の流れを一部変更すればよい。
なお、本発明において使用する波形データは、上述したような各種奏法に対応して「奏法モジュール」化されたものに限らず、その他のタイプのものであってもよい。また、各ユニットの波形データは、メモリに記憶したPCM、DPCM、ADPCMのような適宜の符号化形式からなる波形サンプルデータを単純に読み出すことで生成されるようなものであってもよいし、あるいは、高調波合成演算やFM演算、AM演算、フィルタ演算、フォルマント合成演算、物理モデル音源など、各種の公知の楽音波形合成方式を適宜採用したものであってもよいことは言うまでもない。すなわち、音源8における楽音信号発生方式は、いかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出す波形メモリ読み出し方式、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるFM方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるAM方式等の公知の方式を適宜採用してよい。このように、音源回路8の楽音合成方式は波形メモリ方式、FM方式、物理モデル方式、高調波合成方式、フォルマント合成方式、VCO+VCF+VCAのアナログシンセサイザ方式、アナログシミュレーション方式等、どのような方式であってもよい。また、専用のハードウェアを用いて音源8を構成するものに限らず、DSPとマイクロプログラム、あるいはCPUとソフトウェアを用いて音源回路8を構成するようにしてもよい。さらに、共通の回路を時分割で使用することによって複数の発音チャンネルを形成するようなものでもよいし、各発音チャンネルがそれぞれ専用回路で構成されるようなものであってもよい。
上記したような音源を演奏情報(モジュレーション値やピッチベンド値等)に応じて適宜に切り替えることで、それによっても本発明の目的を達成することができる。例えば、図13に示すように、第1の楽音合成方式であるマニュアル楽音合成部J4´をVCO+VCF+VCAのアナログシンセサイザ方式の音源とし、第2の楽音合成方式であるオート楽音合成部J5をビブラートユニットを用いるAEM音源としてもよい。すなわち、第1の楽音合成方式は入力されたピッチ変調情報に応じた波形制御に基づき、前記ピッチ変調情報に対応した時間的な音色変化を伴う持続音部の楽音を合成することができるもの、第2の楽音合成方式は予め記憶された波形の読み出しに従い、ピッチ変調情報に関わらずに、周期的な音色変化を伴う持続音部分の楽音を少なくとも合成することができるものであれば、上記第1及び第2の楽音合成方式にはどのような音源を用いるようにしてもよい。この場合、音源毎に各音源を制御するのに最適な情報(図示の例では、アナログシンセサイザ方式の音源を制御する演奏情報、AEM方式の音源を制御するための奏法情報)が、奏法合成部J3から切り替えに応じてそれぞれの楽音合成部J4´,J5に対して送られることは言うまでもない。
なお、上述した「ボディ部の奏法合成処理」においては、楽音合成方式の切り替えをモジュレーション値が所定の閾値として0以下であるか否かによって判定する例を示したがこれに限らず(図4のステップS2又は図12のステップS34参照)、ほぼストレート音とみなせる上限のモジュレーション値(例えば+6等)を閾値として、該上限のモジュレーション値を超える場合にはオートビブラートボディ合成処理を用い、該上限のモジュレーション値を超えない場合にはマニュアルビブラート合成処理を用いるようにしてもよい。また、楽音合成方式の切り替えをモジュレーション値(ビブラートデプス情報)のみに基づいて判定するようにしたが、これに限らない。一例として、例えば、ピッチベンド値(ピッチ変調情報)に基づいて、あるいはピッチベンド値とモジュレーション値との組み合わせに基づき、切り替えるべき楽音合成方式を判定するようにしてよい。具体的には、ピッチベンド値が「0」でない場合にマニュアルビブラートボディ合成処理を用い、ピッチベンド値が「0」である場合にオートビブラートボディ合成処理を用いる。あるいは、ピッチベンド値が「0」かつモジュレーション値が「0」以下である場合にマニュアルビブラートボディ合成処理を用い、ピッチベンド値が「0」かつモジュレーション値が「0」以下でない場合にオートビブラートボディ合成処理を用いる。さらには、デフォルトの楽音合成方式にオートビブラートボディ合成処理を用い、ノートオンイベント受信後にピッチベンド値を受信すると、そのピッチベンド値に関わらずに、自動的にマニュアルビブラート合成処理を用いるように楽音合成方式を切り替えるようにしてもよい。ただし、こうした場合には、例えばノートオフイベントなどを受信した後に、オートビブラートボディ合成処理を用いるよう楽音合成方式を元に戻す処理が必要となることは言うまでもない。
なお、あるビブラートユニットの合成途中で、オートビブラートボディ合成方式からマニュアルビブラート合成方式に楽音合成方式を切り替えることができるようにしてもよく、それによっても本発明の目的を達成することができる。例えば、本発明においては持続音部分の楽音を発生するときにモジュレーション値をユニットの終端時刻に応じて取得することを特徴としているが、こうしたモジュレーション値の取得をユニットの終端時刻に関わらず所定の時間間隔としてよく、該モジュレーション値の取得に応じて楽音合成方式を切り替えるようにしてもよい。勿論、所定の時間間隔は、1つの持続音部の楽音の発生中に常に一定の間隔を保持するものでなくてもよく、最初は10ms間隔、何回か後は20ms間隔、更に何回か後は30ms間隔、というように適宜変化させてもよい。
なお、時系列的に順次選択され生成された複数のユニットの波形同士を接続する手法は、クロスフェード合成に限らず、例えば生成されたユニットの各波形同士をフェーダーによるミックスする手法などであってもよい。
なお、マニュアルビブラート合成処理の場合には、アンプ揺らぎやピッチ揺らぎ等を適宜に付加することにより、さらに楽音の単調さを軽減することができるようにしてもよい。
なお、電子楽器等を演奏する場合には、例えばピアノ等の鍵盤楽器を模した鍵盤コントローラからの演奏情報の入力に基づき楽音を発生する場合と、サックス等の管楽器を模したブレスコントローラなどの非鍵盤コントローラからの演奏情報の入力に基づき楽音を発生する場合とがあり、鍵盤からの入力に基づき楽音を発生する場合にはオートビブラートボディ合成処理(AutoVibモード)、非鍵盤コントローラからの入力に基づき楽音を発生する場合にはマニュアルビブラートボディ合成処理(ManualVibモード)で動作させることが望ましい。そこで、第1の楽音合成方式と第2の楽音合成方式とが同一の音源(例えばAEM音源)を利用するような場合に、使用するコントローラの種類と、持続音部の楽音を合成する楽音合成方式(モード)を手動で一致させる煩雑さをなくし、自動で確実に楽音合成方式(モード)を切り替える方法として、非鍵盤コントローラを用いて演奏する場合には、非鍵盤コントローラから常にピッチベンド値が揺らいで出力されるという演奏情報が持つ特徴をもとに、各ノートオンイベント受信後にピッチベンド値を受信したら、その都度マニュアルビブラートボディ合成処理(ManualVibモード)に自動的に切り替えるようにしてもよい。
なお、上述した楽音合成の実行方式としては、リアルタイムに供給された演奏情報に基づき楽音を合成するリアルタイム方式に限らず、既存の演奏情報を本来の演奏時間到来前に先行取得しておき、これを解析して楽音を合成する所謂プレイバック方式であってもよい。また、プレイバック方式の場合には演奏情報を先行的に解析した結果、リアルタイム方式の場合には過去の傾向から、演奏情報に含まれるビブラートデプス情報が所定のある閾値以下の変化しかしていないと判断できる場合には、上述したような2つの異なる楽音合成方式(マニュアル楽音合成部又はオート楽音合成部)を自動的に切り替えて、少なくとも持続音部の楽音を合成する混在方式に機器設定する一方で、演奏情報に含まれるビブラートデプス情報が所定のある閾値以上に変化していると判断できる場合には、上述したような2つの異なる楽音合成方式(マニュアル楽音合成部又はオート楽音合成部)を自動的に切り替えることなく、オート楽音合成部のみで少なくとも持続音部の楽音を合成する単一方式に機器設定するようにしてあってもよい。
なお、この楽音合成装置を電子楽器に適用する場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、演奏操作子、表示器、音源等を1つの電子楽器本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各機器を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらに、カラオケ装置や自動演奏ピアノのような自動演奏装置、ゲーム装置、携帯電話等の携帯型通信端末などに適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバコンピュータ側に持たせ、端末とサーバコンピュータとからなるシステム全体として所定の機能を実現するようにしてもよい。すなわち、本発明に従う所定のソフトウェア又はハードウェアを用いることによって、ダイナミクス値、ピッチ変調情報(ピッチベンド値)、モジュレーション値等に基づいて、上述したような2つの異なる楽音合成方式(マニュアル楽音合成部又はオート楽音合成部)を自動的に切り替えながら楽音を合成することのできるようにしたものであればどのようなものであってもよい。
1…CPU、1A…タイマ、2…ROM、3…RAM、4…外部記憶装置、5…演奏操作子(鍵盤等)、6…パネル操作子、7…表示器、8…音源、8A…サウンドシステム、9…インタフェース、1D…通信バス、J1(J6)…データベース、J2…入力部、J3…奏法合成部、J4…マニュアル楽音合成部、J5・・・オート楽音合成部