以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図1は、この発明に係る奏法決定装置を適用した電子楽器のハードウエア構成例を示すブロック図である。ここに示す電子楽器は、演奏者による演奏操作子5の演奏操作に応じてリアルタイムに取得される演奏情報(詳しくはノートオンやノートオフなどの演奏イベント情報、ダイナミクス制御やピッチ制御などに関わる各種コントロール情報など)に基づいて、あるいは予め演奏データなどとして記憶されており、演奏進行順に順次に取得される任意の演奏データ内に含まれる多数の上記演奏情報に基づいて、電子的に楽音を発生させることのできる演奏機能を有している。また、こうした演奏機能の実行時において、演奏者による演奏操作子5の演奏操作に応じてリアルタイムに取得される演奏情報、あるいは演奏進行順に順次に取得する演奏データ内に含まれる演奏情報の特徴に基づき、新たに適用すべき音楽的表現(奏法)を自動的に決定し、該決定に従って新たな音楽的表現(奏法)を付加する奏法決定機能を有している。
なお、この実施例に示す電子楽器はここに示す以外のハードウェアを有する場合もあるが、ここでは必要最小限の資源を用いた場合について説明する。また、音源としては、例えば様々な楽器毎の特有な奏法に対応する波形データとして、ヘッド区間、テール区間、ボディ区間などの1音についての一部区間、あるいは連続する2音間についてのジョイント区間において、任意の奏法に対応した波形全体を記憶しておき(所謂奏法モジュール)、これらを時系列的に複数組み合わせることで1音又は連続する複数音の楽音を形成する、自然楽器固有の各種奏法若しくはアーティキュレーションによる音色変化を忠実に表現した奏法などのリアルな再現とその制御を目的とした、従来から知られているAEM(Articulation Element Modeling)と称する楽音波形制御技術を用いた音源(所謂AEM音源)を例にして説明する。
図1に示した電子楽器はコンピュータを用いて構成されており、そこにおいて、前記演奏機能を実現する「演奏処理」(図示せず)及び前記奏法決定機能を実現する「奏法決定処理」(後述する図5参照)は、コンピュータが各々の処理を実現する所定のプログラム(ソフトウエア)を実行することにより実施される。勿論、これらの各処理はコンピュータソフトウエアの形態に限らず、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により実行される各種プログラム、あるいは波形メモリとして様々な楽器毎の特有な奏法に対応する波形データ(例えば、後述する図2に示す奏法モジュール参照)などの各種データを格納するものである。RAM3は、CPU1が所定のプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリ等として使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。外部記憶装置4は、自動演奏の元となる演奏情報や奏法に対応する波形データ(図2参照)あるいは「ダイナミクス変換テーブル」(後述する図6参照)などの各種データや、CPU1により実行あるいは参照される「奏法決定処理」(図5参照)などの各種制御プログラム等を記憶する。前記ROM2に制御プログラムが記憶されていない場合、この外部記憶装置4(例えばハードディスク)に制御プログラムを記憶させておき、それを前記RAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置4はハードディスク(HD)に限られず、フレキシブルディスク(FD)、コンパクトディスク(CD−ROM・CD−RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の着脱自在な様々な形態の外部記録媒体を利用する記憶装置であってもよい。あるいは、半導体メモリなどであってもよい。
演奏操作子5は楽音の音高を選択するための複数の鍵を備えた、例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子5は演奏者自身の手弾きによる楽音のリアルタイム演奏(所謂マニュアル演奏)のために使用できるのは勿論のこと、予め記憶されている多数の演奏データの中から自動演奏対象とする演奏データを選択するための入力手段などとして使用することもできる。勿論、演奏操作子5は鍵盤等の形態に限らず、楽音の音高を選択するための弦を備えたネック等のような形態のものなど、どのようなものであってもよいことは言うまでもない。また、演奏操作子5は、ダイナミクス値を適宜に変化するためのエクスプレッション・ペダル(ボリューム・ペダル)などを含んでいてよい。パネル操作子(スイッチ等)6は、例えば自動演奏対象とする演奏データを選択するための演奏データ選択スイッチ、後述するノーマルジョイント奏法の使用を制限する条件(NJ制限条件)を入力する条件設定スイッチ、ダイナミクス値を適宜の値に変化させるための例えばレバー式あるいはホイール式などのコントローラ等、各種の操作子を含んで構成される。勿論、マニュアル演奏や自動演奏を行う際に用いる音高、音色、効果等を選択・設定・制御するために用いられる数値データ入力用のテンキーや文字データ入力用のキーボード、あるいは表示器7に表示された各種画面の位置を指定するポインタを操作するマウスなどの各種操作子を含んでいてもよい。表示器7は例えば液晶表示パネル(LCD)やCRT等から構成されるディスプレイであって、上記スイッチ操作に応じた各種画面を表示するのは勿論のこと、演奏データや波形データなどの各種情報あるいはCPU1の制御状態などを表示することもできる。
音源8は公知のAEM(Articulation Element Modeling)音源であって、複数のチャンネルで楽音信号の同時発生が可能であり、通信バス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機器はそれにあった構成とする。
上述したROM2や外部記憶装置4などに構築される波形メモリ(データベース)は、楽器毎の種々の奏法に対応する波形を再生する多数のオリジナルの波形データとそれに関連するデータ群(奏法パラメータと呼ぶ)を「奏法モジュール」として記憶している。1つの「奏法モジュール」とは、奏法波形合成システムにおいて1つのかたまりとして処理できる奏法波形の単位である。別の言い方をすると、「奏法モジュール」とは、1つのイベントとして処理できる奏法波形の単位である。ここで、波形メモリに記憶される奏法モジュールについて、図2を用いて説明する。図2は、奏法モジュールの一実施例を説明するための概念図である。ただし、この図2では、「奏法モジュール」のうち、波形データにより表さられる波形の一例をそのエンベロープのみで略示したものを図示している。
図2から理解できるように、種々有る奏法モジュールの波形データの中には、例えば演奏音の奏法的特徴に応じて、ヘッド部やボディ部あるいはテール部等の1音の部分的区間に対応して定義されているものもあれば(ヘッド系、ボディ系、テール系の各奏法モジュール)、また、音と音のつなぎの区間であるジョイント部に対応して定義されているものもある(ジョイント系奏法モジュール)。従来知られているように、奏法モジュールは、奏法の特徴若しくは演奏の時間的部位又は区間等に基づき、大きくいくつかの種類に分類することができる。その例を示すと、次の5種類を挙げることができる。
1)「ノーマルヘッドモジュール(略称NH)」: (無音状態からの)音の立ち上がり区間(つまり「ヘッド(アタック)」部)を受け持つヘッド系奏法モジュール。
2)「ノーマルテールモジュール(略称NT)」: (無音状態への)音の立ち下がり区間(つまり「テール(リリース)」部)を受け持つテール系奏法モジュール。
3)「ノーマル(スラー)ジョイントモジュール(略称SJ)」: 2つの音を(無音状態を経由せずに)スラーで接続する区間(つまり「ジョイント」部)を受け持つジョイント系奏法モジュール。
4)「ノーマルボディモジュール(略称NB)」: ビブラートのかからない、音の立ち上がり以降から立ち下がり以前までの区間(つまり「ボディ」部)を受け持つボディ系奏法モジュール。
5)「ジョイントヘッドモジュール(略称JH)」: 通常のヘッド(アタック)とは異なる特殊な奏法であるタンギング奏法を実現した音の立ち上がり区間を受け持つヘッド系奏法モジュール。ここで、所謂タンギング奏法と呼ばれる奏法は例えばサックスなどの管楽器の演奏時に特徴的に表れる奏法であって、演奏者がサックスの吹き口を一旦舌で止めることにより音を切った瞬間に指を変えて音を変更する奏法であり、一瞬だけ音が途切れるようにして発音されるものである。なお、これに似たものとして、バイオリンなどの弦楽器の演奏時に行われる弓返しがある。そこで、こうした弓返しなどによる音楽的表現などを含め、一瞬だけ音が途切れるようにして発音される奏法を、本明細書では便宜的にタンギング奏法(又はジョイントヘッド奏法)と呼ぶ。
なお、上記5種類の分類法は本明細書での説明のための一例にすぎず、他の分類法を採用してもよいし、更に多くの種類が存在してもよい。また、奏法モジュールは、奏者、楽器の種類、演奏ジャンル等のオリジナル音源別にも分類されるのは勿論である。
従来知られているように、1つの奏法モジュールに対応する1つの波形データはそのままデータベースに記憶されているのではなく、複数の波形構成要素の集合からなるものとしてデータベースに記憶されている。この波形構成要素を、以下では「ベクタ(又はベクトルとも呼ぶ)」情報と呼ぶ。1つの奏法モジュールに対応するベクタの種類には、一例として下記のようなものがある。なお、調和成分及び調和外成分とは、対象たるオリジナルの奏法波形をピッチ調和成分からなる波形とそれ以外の残りの波形成分とに分離することで定義されるものである。
1.調和成分の波形(Timbre)ベクタ: 調和成分の波形構成要素のうち、ピッチと振幅をノーマライズした波形形状のみの特徴を抽出したもの。
2.調和成分の振幅(Amplitude)ベクタ: 調和成分の波形構成要素のうち、振幅エンベロープ特性を抽出したもの。
3.調和成分のピッチ(Pitch)ベクタ: 調和成分の波形構成要素のうち、ピッチ特性を抽出したもの(例えば或る基準ピッチを基準にした時間的ピッチ変動特性を示すもの)。
4.調和外成分の波形(Timbre)ベクタ: 調和外成分の波形構成要素のうち、振幅をノーマライズした波形形状(ノイズ的波形)のみの特徴を抽出したもの。
5.調和外成分の振幅(Amplitude)ベクタ: 調和外成分の波形構成要素のうち、振幅エンベロープ特性を抽出したもの。
上記のほかに、更に別の種類のベクタ(例えば、波形の時間軸の進行を示す時間ベクタなど)が含まれていてもよいが、便宜上、本実施例ではその説明を省略する。
奏法波形の合成に際しては、これらのベクタ情報に対して適宜の加工処理を施して時間軸上に配置することで、奏法波形の各構成要素に対応する波形若しくはエンベロープを楽音の再生時間軸に沿ってそれぞれ構築し、このようにして時間軸上に配置された各ベクタ情報に基づいて所定の波形合成処理を行うことで、奏法波形を生成する。例えば、調和波形ベクタに調和ピッチベクタに応じたピッチ及びその時間変化特性を付与すると共に調和振幅ベクタに応じた振幅及びその時間変化特性を付与することで調和成分の波形を合成し、調和外波形ベクタに調和外振幅ベクタに応じた振幅及びその時間変化特性を付与することで調和外成分の波形を合成し、調和成分の波形と調和外成分の波形とを加算合成することで、最終的な所定の奏法的特徴を示す奏法波形つまり楽音波形を生成することができる。
各奏法モジュールは、図2に示すような波形データと共に奏法パラメータを含むデータである。奏法パラメータは、当該奏法モジュールに係る波形の時間やレベルなどを制御するためのパラメータである。奏法パラメータには、各奏法モジュールの性格に応じて適宜異なる1又は複数種類のパラメータが含まれていてよい。例えば、「ノーマルヘッドモジュール」や「ジョイントヘッドモジュール」の場合には、発音開始直後の絶対音高や音量などの種類の奏法パラメータが含まれていてよいし、「ノーマルボディモジュール」の場合には、当該奏法モジュールの絶対音高、ノーマルボディの開始時刻−終了時刻、ノーマルボディ開始時のダイナミクス、ノーマルボディ終了時のダイナミクスなどの種類の奏法パラメータが含まれていてよい。この「奏法パラメータ」は、ROM2等によって予め記憶されていてもよいし、あるいはユーザの入力操作によって入力するようにしたり、あるいは既存のパラメータをユーザの操作によって適宜変更できるようになっていたりしてもよい。また、奏法波形の再生に際して、奏法パラメータが与えられなかったような場合には標準的な奏法パラメータを自動的に付加するようにしてもよい。また、処理の過程で、適宜のパラメータが自動的に生成されて付加されるようになっていてもよい。
図1に示した電子楽器においては、演奏者による演奏操作子5の演奏操作に応じてリアルタイムに取得する演奏情報に基づき楽音を発生する、あるいは予め用意された演奏データ内に含まれ、演奏進行順に順次に取得する多数の演奏情報に基づき楽音を発生する。また、こうした演奏機能の実行時には、取得される演奏情報の特徴に基づき新たに付加すべき対象の音楽的表現(奏法)を自動的に決定して、該決定した奏法を付加しながら楽音波形を合成することができるようになっている。そこで、次に奏法決定機能の概要について、図3を用いて説明する。図3は、奏法決定機能について説明するための機能ブロック図である。この図3において、図中の矢印はデータの流れを表す。
ノーマルジョイント(NJ)制限条件指定部J1は、ユーザによる条件設定スイッチ等の操作に応じて「制限条件入力画面」(図示せず)を表示器7上に表示し、該表示画面を介して相前後する2音間の接続区間に付加する奏法として一般的に用いられる、ノーマルジョイント奏法の適用を制限する制限条件(NJ制限条件と呼ぶ)の入力を受け付ける。演奏の開始が指示されると、奏法決定部J2は、演奏者による演奏操作子5の操作に応じて発生される演奏情報、あるいは予め演奏対象に指定された演奏データから演奏進行順に演奏情報を順次に取得する。前記演奏データは、少なくともノートオンイベントやノートオフイベント(ベロシティデータを含む)などの演奏イベント情報、エクスプレッションやボリュームなどのダイナミクスをコントロールするコントロール情報などの演奏情報を多数含む。
奏法決定部J2は、取得した演奏情報に応じて、少なくとも相前後して発生される重なり合う2音(具体的には、1音目のノートオフの前に後続する2音目のノートオンが入力された場合)を検出し、該検出した2音に対し適用すべき奏法としてジョイント系奏法(一例としてノーマルジョイント奏法など)が予め指定されていなければ、該2音に対して適用すべき奏法を自動的に決定し、該決定した奏法を指示する演奏情報(図中の決定奏法)を出力する。詳しくは後述するが、ノーマルジョイント(NJ)制限条件指定部J1から入力されたNJ制限条件に従って、該2音のダイナミクス差がNJ制限条件範囲内である場合にはノーマルジョイント奏法のみを適用すべき奏法に決定する一方で、該2音のダイナミクス差がNJ制限条件範囲外である場合にはジョイントヘッド奏法とテール系奏法とを組み合わせたものを適用すべき奏法に決定する。そして、奏法を指示する情報としてこれらの奏法に対応する奏法指定イベントを、新たに演奏情報に付加して楽音合成部J4に対して出力する。なお、この際に、入力された演奏情報に予め付加されている奏法指定イベント(ヘッド系、ボディ系、テール系、ジョイント系)については、付加されていた奏法指定イベントをそのまま楽音合成部J4に送る。
楽音合成部J4では演奏情報に予め付加されていた又は新たに付加された奏法指定イベントに基づいて、奏法波形記憶部(波形メモリ)J3から該当する奏法を実現する波形データを読み出して楽音合成を行い、楽音を出力する。すなわち、奏法指定イベントに従いヘッド系奏法モジュールと、ボディ系奏法モジュールと、テール系奏法モジュール又はジョイント系奏法モジュールとを適宜に切り替えながら読み出し、これらを組み合わせることによって、1音全体(あるいは連続する音)の楽音を合成する。このようにして、音源8が例えばAEM音源のような奏法対応機能を持つ音源である場合には、奏法指定イベントを音源に渡すことで高品位の奏法表現を実現することができる。
ここで、ノーマルジョイント(NJ)制限条件について、図4を用いて説明する。図4は、NJ制限条件の一実施例を示す概念図である。図4から理解できるように、NJ制限条件は、相前後して発生される重なり合う2音間におけるダイナミクス差に応じて、前記2音に適用する奏法を定義したものである。ここに示す実施例においては、「ノーマルジョイント」奏法を適用可とする2音のダイナミクス差は「2未満」のNJ制限範囲内にある場合であり、「ジョイントヘッド」奏法を適用可とする2音のダイナミクス差は「2以上」の前記NJ制限範囲外にある場合である。上記ダイナミクス差は、エクスプレッション・ペダルやコントローラなどの操作に応じてコントロール情報として入力されるダイナミクス値(db:デシベル値)を直接用いて求めた差でなく、前記ダイナミクス値をダイナミクスタイプに変換した後の(詳しくは後述する図6参照)、各ダイナミクスタイプ別に割り当てられている所定の割当値の差を求めたものである。
次に、上述したような奏法決定部J2の動作を実現する具体的な「奏法決定処理」について、図5を用いて具体的に説明する。図5は、「奏法決定処理」の一実施例を示したフローチャートである。ステップS1は、演奏情報を取得して、該取得した演奏情報がノートオンイベントであるか否かを判定する。取得した演奏情報がノートオンイベントでない場合には(ステップS1のNO)、当該処理を終了する。取得した演奏情報がノートオンイベントである場合には(ステップS1のYES)、「後音のノートオン時のダイナミクス値」及び「後音のノートオン直前時点の前音のダイナミクス値」を取得する(ステップS2)。
ここで、「後音のノートオン時のダイナミクス値」はノートオン時に入力されたダイナミクス値であり、ノートオンイベントに含まれるベロシティデータに基づくものである。一方、「後音のノートオン直前時点の前音のダイナミクス値」は該ノートオン時点よりも前の時点において更新される前音に対するダイナミクス値のうち、後音の開始時点に最も近い直近のダイナミクス値であり、前音のノートオンイベントに含まれるベロシティデータだけでなく、エクスプレッション・ペダルやコントローラなどの操作に応じて適宜に入力されるコントロール情報に基づくものでもある。すなわち、演奏情報としてノートオンイベントが入力された場合には、該ノートオンイベントに含まれるベロシティに基づくダイナミクス値を最新の「後音のノートオン直前時点の前音のダイナミクス値」として記憶しておく一方で、該ノートオン後において例えば10ms(ミリ秒)ごとなどの周期的な取得処理(図示せず)を起動しておき、該起動した取得処理により入力されたコントロール情報に基づくダイナミクス値を最新の「後音のノートオン直前時点の前音のダイナミクス値」として更新しながら記憶するようにしておく。そして、上記ステップS2では、後音のノートオンイベント時において、前音のダイナミクス値として、前記記憶している最新の「後音のノートオン直前時点の前音のダイナミクス値」を取得する。ステップS3は、予め用意された「ダイナミクス変換テーブル」(後述する図6参照)に基づき、前記取得した「後音のノートオン時のダイナミクス値」及び「後音のノートオン直前時点の前音のダイナミクス値」をそれぞれ所定のダイナミクスタイプに変換する。
ここで、上記各ダイナミクス値を所定のダイナミクスタイプへ変換する際に参照する「ダイナミクス変換テーブル」について、図6を用いて説明する。図6は、ダイナミクス変換テーブルの一実施例を示す概念図である。図6に示すように、ダイナミクス変換テーブルは、所定範囲のダイナミクス値毎に1つのダイナミクスタイプを対応付けたものであり、ここに示す実施例ではダイナミクス値が「-22.0db」未満である場合にはダイナミクスタイプ「p(ピアノ)」、ダイナミクス値が「-22.0db」以上「-19.5db」未満である場合にはダイナミクスタイプ「mp(メゾピアノ)」、ダイナミクス値が「-19.5db」以上「-18.0db」未満である場合にはダイナミクスタイプ「mf(メゾフォルテ)」、ダイナミクス値が「-18.0db」以上「-17.0db」未満である場合にはダイナミクスタイプ「f(フォルテ)」、ダイナミクス値が「-17.0db」以上である場合にはダイナミクスタイプ「ff(フォルテッシモ)」に対応付けられている。また、各ダイナミクスタイプには所定の割当値が割り当てられており、割当値の割り当て例としては、図示のように、ダイナミクスタイプ「p(ピアノ)」に対して割当値「0」、ダイナミクスタイプ「mp(メゾピアノ)」に対して割当値「1」、ダイナミクスタイプ「mf(メゾフォルテ)」に対して割当値「2」、ダイナミクスタイプ「f(フォルテ)」に対して割当値「3」、ダイナミクスタイプ「ff(フォルテッシモ)」に対して割当値「4」がそれぞれ割り当てられている。詳しくは後述するが、図5に示した「奏法決定処理」ではこの割当値を用いてダイナミクス差を計算する。例えば、「後音のノートオン直前時点の前音のダイナミクス値」が「-16.5db」である場合にはダイナミクスタイプが「ff(割当値4)」となり、「後音のノートオン時のダイナミクス値」が「-19.0db」である場合にはダイナミクスタイプが「mf(割当値2)」となるために、これら2音のダイナミクス差はそれぞれに割り当てられている割当値に基づき「2(4−2)」と求められることになる。
図5に示したフローチャートの説明に戻って、ステップS4は、ノートオン対象のノート(これを現在ノート(後音)と呼ぶ)が、既にノートオンされているが未だノートオフされていない直前のノート(これを直前ノート(前音)と呼ぶ)と時間的に重なり合って発生される音であるか否かを判定する。現在ノートが直前ノートと重なり合うノートでないと判定された場合、具体的には1音目の直前ノートのノートオフの入力前に2音目の現在ノートのノートオンが入力されていない場合には(ステップS4のNO)、現在ノートの奏法を「その他ヘッド系奏法」に決定し、該決定した奏法を指示する情報を出力する(ステップS7)。ここで、ヘッド系の奏法を指定する奏法指定イベントが既に指定済みである場合には、指定されたヘッド系の奏法をそのまま付加すべき奏法とする。一方、ヘッド系の奏法を指定する奏法指定イベントが指定済みでない場合には、ヘッド系の奏法としてノーマルヘッドモジュール又はジョイントヘッドモジュールのいずれかを自動的に付加すべき奏法と判定する。このノーマルヘッドモジュール又はジョイントヘッドモジュールのいずれを付加すべき奏法とするかの判定は、1音目の直前ノートのノートオフの時間から2音目の現在ノートのノートオンまでの時間によるなどの公知の方法であってよい。例えば、1音目の直前ノートのノートオフの時間から2音目の現在ノートのノートオンまでの時間が所定の時間長よりも長い場合にノーマルヘッドモジュールを付加し、1音目の直前ノートのノートオフの時間から2音目の現在ノートのノートオンまでの時間が所定の時間長よりも短い場合にジョイントヘッドモジュールを付加するなどしてよい。
上記ステップS4において、現在ノートが直前ノートと重なり合うと判定された場合、具体的には1音目の直前ノートのノートオフの入力前に2音目の現在ノートのノートオンが入力された場合には(ステップS4のYES)、前記変換した「後音のノートオン時のダイナミクス値」と「後音のノートオン直前時点での前音のダイナミクス値」それぞれに対応するダイナミクスタイプの割当値に従い、ダイナミクス差を計算する(ステップS5)。ステップS6は、前記算出したダイナミクス差がNJ制限条件の範囲内か否かを判定する。前記算出したダイナミクス差がNJ制限条件の範囲内である場合には(ステップS6のYES)、ノーマルジョイントモジュールを付加すべき奏法に決定し、該決定した奏法を指示する演奏情報を生成する(ステップS8)。前記算出したダイナミクス差がNJ制限条件の範囲内でないと判定した場合には(ステップS6のNO)、ジョイントヘッドモジュールを付加すべき奏法に決定し、該決定した奏法を指示する演奏情報を生成する(ステップS9)。ここで、ジョイントヘッドモジュールを付加すべき奏法に決定した場合には、前音に対してノーマルテールモジュールを付加する演奏情報を生成するか、あるいはEGその他の形状等を適切に指定した前音に対する音源制御情報等(ボリューム調整など)を楽音合成部に渡すよう指示する処理を実行することで、楽音合成部において前音のテール区間についての奏法表現を実現するテール処理を施すことができるようにしておく。
上述した「奏法決定処理」(図5参照)により行われる奏法決定の結果に基づいて、最終的に生成される楽音波形について図7を用いて説明する。図7は、ダイナミクス差に応じて生成される楽音波形の違いを示す概念図である。図7(a)は直前ノート(前音)とそれに続く現在ノート(後音)とが時間的に重なり合わない場合を示し、図7(b)は直前ノート(前音)とそれに続く現在ノート(後音)とが時間的に一部重なり合う場合を示す。なお、ここでは、図の左側に前音と後音との時間的な前後関係を示し、図の右側に決定された奏法に基づき生成される楽音波形をエンベロープ波形で示した。
図7(a)に示すように、直前ノート(前音)とそれに続く現在ノート(後音)とが時間的に重なり合わない場合には、これら2音の接続区間に適用する奏法として、直前ノート1音に対してはノーマルテール奏法が適用され、現在ノートに対してはノーマルヘッド奏法又はジョイントヘッド奏法のいずれかが適用される。後音に適用するヘッド系奏法モジュールの種類は、直前ノート1音のノートオフ時刻から現在ノートのノートオン時刻までの時間長(つまり休符長:図中において長方形で音符長を示した先行する直前ノートの最後から後続する現在ノートの始まりまで)の長短により変わる。従来知られているように、休符長が所定の時間よりも長い場合には、ヘッド系奏法としてノーマルヘッド奏法が選択される。したがって、この場合には上段に示すように、各ノートをノーマルヘッド(NH)とノーマルボディ(NB)とノーマルテール(NT)とを組み合わせたものにより表わし、それぞれのノートをジョイント系奏法モジュールで接続していない独立した音の波形として表わすことになる。一方、連続するノート間の休符長が所定の時間よりも短い場合には、ヘッド系奏法としてジョイントヘッド奏法が選択される。したがって、この場合には下段に示すように、直前ノートをノーマルヘッド(NH)とノーマルボディ(NB)とノーマルテール(NT)とを組み合わせた独立した1音の波形として表す一方で、後続する現在ノートをジョイントヘッド(JH)とノーマルボディ(NB)とノーマルテール(NT)とを組み合わせたタンギング奏法を表現した独立する1音の波形として表わすことになる。
他方、図7(b)に示すように、直前ノート(前音)とそれに続く現在ノート(後音)とが時間的に一部重なり合う場合には、直前ノート1音のダイナミクス値と現在ノートのノートオン時刻のダイナミクス値の差の大小により、これら2音に対して適用する奏法モジュールの種類が変わる。既に述べたように、直前ノートのノートオン後においては例えば10ms(ミリ秒)ごとなどの周期的な時間単位に、入力されたコントロール情報に基づくダイナミクス値(図中では入力ダイナミクス変化として示している)を最新の「後音のノートオン直前時点の前音のダイナミクス値」として更新しながら記憶することから、図において現在ノートのノートオン時刻の1つ前の時点(点線で示す)におけるダイナミクス値が直前ノート1音のダイナミクス値となる。これらのダイナミクス差が所定のNJ制限条件内である場合、つまり2音間のダイナミクスに大きな変化がない場合には、2音を接続するジョイント系奏法としてノーマル(スラー)ジョイント奏法が選択される。したがって、この場合には上段に示すように、先行する直前ノートのノーマルテールと後続する現在ノートのノーマルヘッドとがノーマル(スラー)ジョイント(SJ)に置き換えられ、それぞれのノートが連続する一連の楽音波形として表わすことになる。一方、これらのダイナミクス差が所定のNJ制限条件外である場合、つまり2音間のダイナミクスに大きな変化がある場合には、2音を接続するジョイント系奏法として、前音に対してノーマルテール奏法、後音に対してジョイントヘッド奏法を組み合わせたものが選択される。したがって、この場合には直前ノートをノーマルヘッド(NH)とノーマルボディ(NB)とノーマルテール(NT)とを組み合わせた独立した1音の波形として表す一方で、後続する現在ノートをジョイントヘッド(JH)とノーマルボディ(NB)とノーマルテール(NT)とを組み合わせた独立する1音の波形として表わすことになる。そして、前音のノーマルテール(NT)と後音のジョイントヘッド(JH)の一部区間が時間的に重ね合わされるように配置されることで、2音間の接続区間の楽音波形を生成(表現)する。なお、この場合、前音のノーマルテール(NT)と後音のジョイントヘッド(JH)の一部区間を時間的に重ね合わせることなく、非常に短い時間(ユーザが感知することができない程の時間)だけ離すように配置してもよい。
以上のようにして、演奏者による奏法スイッチ等の操作に応じた奏法指定がなされていない特に2音間を接続するジョイント区間について、処理対象とする現在ノートのノートイベントに対して時間的に直前に位置する直前ノートのダイナミクス値(後音のノートオン直前時点での前音のダイナミクス値)と、現在ノートのノートオン時のダイナミクス値(後音のノートオン時のダイナミクス値)との差に従って、テール系奏法とジョイントヘッド奏法(タンギング奏法)とを組み合わせたものを適用するか、ノーマルジョイント奏法のみを適用するかを決定するようにした。すなわち、従来ではノーマルジョイント奏法を適用する接続区間であっても、前音と後音との間におけるダイナミクス差を考慮して、入力されたダイナミクス遷移を適切に反映することのできる奏法(テール系奏法とジョイントヘッド奏法とを組み合わせたもの)を選択できるようにしたことにより、前音と後音との大きなダイナミクス遷移を適切に反映した従来にない楽音波形を生成することができるようになる。
なお、上述した実施例に示したNJ制限条件においては、ダイナミクス差が「2未満」である場合にノーマルジョイント奏法を適用するよう制限している。つまり、2音の音量が「強」から「弱」へと遷移する場合についてのみノーマルジョイント奏法の使用を制限するようにしているがこれに限らない。例えば、2音の音量が「弱」から「強」へと遷移する場合であってもよい。その場合、例えばダイナミクス差として絶対値を求め、図4に示したNJ制限条件を用いるようにするとよい。あるいは、それにあったNJ制限条件を予め用意しておくようにしてもよい。さらに、適用するジョイント系奏法はノーマル(スラー)ジョイントに限らず、他のジョイント系奏法であってもよい。
なお、上記NJ制限条件は、ユーザが適宜に設定・変更可能であってよい。また、NJ制限条件は、奏者、楽器の種類、演奏ジャンル等で異なる設定値を定義したものを予め用意しておき、選択的に用いることができるようにしてあってもよい。
なお、2音間の接続区間に適用すべき奏法として予めノーマルジョイント奏法が指定済みである場合にも、上記「奏法決定処理」に従い、該2音間のダイナミクス差に基づき、音間の接続区間に適用すべき奏法を自動的に決定するようにしてもよい。ただし、その場合には、異なる奏法が決定された場合にどちらの奏法を優先して適用するかを、ユーザが任意に選択できるようにしてあるのがよい。
なお、上述した実施例では、ダイナミクス変換テーブルにより前音及び後音の各ダイナミクス値(db値)をダイナミクスタイプに変換し、このダイナミクスタイプに割当済みの所定の割当値に基づいてダイナミクス差を求めるようにしたがこれに限らず、各ダイナミクス値(db値)から直接的にダイナミクス差を求め、該求めたダイナミクス差(この場合、db値のまま)に基づいて適用する奏法(ノーマルジョイント奏法又はジョイントヘッド奏法)を決定するようにしてもよい。ただし、その場合には、NJ制限条件のダイナミクス差を「db値」で定義しておくことは言うまでもない。
なお、上述した各実施例においては、ソフトウエア音源として単音発音するモノモードを例に説明したが複数音を発音するポリモードであってもよいことは言うまでもない。また、ポリモードで構成された演奏情報を複数のモノフォニックなシーケンスに分解し、それぞれのシーケンスを複数の奏法決定機能で処理させるようにしてよい。その場合、奏法決定の結果を表示器7上に表示させ、ユーザが確認及び修正できるようにすると便利である。
なお、波形データは上述したような「奏法モジュール」を用いることに限らず、PCM、DPCM、ADPCMのようなサンプリングされた波形サンプルデータを用いてもよいことは言うまでもない。すなわち、音源8における楽音信号発生方式は、いかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出す波形メモリ読み出し方式、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるFM方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるAM方式等の公知の方式を適宜採用してよい。このように、音源回路8の方式は波形メモリ方式、FM方式、物理モデル方式、高調波合成方式、フォルマント合成方式、VCO+VCF+VCAのアナログシンセサイザ方式、アナログシミュレーション方式等、どのような方式であってもよい。また、専用のハードウェアを用いて音源8を構成するものに限らず、DSPとマイクロプログラム、あるいはCPUとソフトウェアを用いて音源回路8を構成するようにしてもよい。さらに、1つの回路を時分割で使用することによって複数の発音チャンネルを形成するようなものでもよいし、1つの発音チャンネルが1つの回路で形成されるようなものであってもよい。
なお、この奏法決定装置を電子楽器に適用する場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、演奏操作子、表示器、音源等を1つの電子楽器本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各機器を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらに、カラオケ装置や自動演奏ピアノのような自動演奏装置、ゲーム装置、携帯電話等の携帯型通信端末などに適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバコンピュータ側に持たせ、端末とサーバコンピュータとからなるシステム全体として所定の機能を実現するようにしてもよい。すなわち、本発明に従う所定のソフトウエア又はハードウエアを用いることによって、演奏情報を分析した結果に基づいて、奏法を自動的に付加しながら楽音を発生することのできるようにしたものであればどのようなものであってもよい。
1…CPU、1A…タイマ、2…ROM、3…RAM、4…外部記憶装置、5…演奏操作子(鍵盤等)、6…パネル操作子、7…表示器、8…音源、8A…サウンドシステム、9…インタフェース、1D…通信バス、J1…NJ制限条件指定部、J2…奏法決定部、J3…奏法波形記憶部(波形メモリ)、J4…楽音合成部