(57)【特許請求の範囲】
【請求項１】
少なくとも２つの任意の関数であって、演奏情報が入力される演奏情報入力手段と前記演奏情報を出力する少なくとも１以上の演奏情報出力手段とを有する関数を設定可能な関数設定手段と、
前記少なくとも２つの任意の関数のうち所定の関数の演奏情報出力手段と前記所定の関数とは異なる関数の演奏情報入力手段とを任意に接続可能な接続設定手段と、
前記関数設定手段により設定された関数のそれぞれについて、音色を構成する少なくとも１以上のトーンを指定可能なトーン指定手段と、
前記トーン指定手段により指定されるトーンを発生する楽音発生回路と
を有し、
前記関数設定手段により設定された関数は、前記トーン指定手段によりトーンが指定されている場合には、入力された演奏情報と所定の条件とに従い、前記楽音発生回路に対して、指定された少なくとも１以上のトーンのうちいずれかのトーンの発生を指示する
ことを特徴とする電子楽器。
【請求項２】
少なくとも２つの任意の関数であって、演奏情報が入力される演奏情報入力手段と、前記演奏情報を出力する少なくとも１以上の演奏情報出力手段とを有する関数を設定可能な関数設定情報を生成する関数設定情報生成手段と、
前記少なくとも２つの任意の関数のうち所定の関数の演奏情報出力手段と前記所定の関数とは異なる関数の演奏情報入力手段とを任意に接続することを指定する接続指定情報を生成する接続指定情報生成手段と、前記接続指定情報生成手段により生成された接続指定情報により指定された演奏情報出力手段と演奏情報入力手段とを接続可能な接続設定手段と
前記関数設定情報生成手段により生成された関数設定情報により設定された関数のそれぞれについて、音色を構成する少なくとも１以上のトーンを指定可能なトーン指定情報を生成するトーン指定情報生成手段と、
前記トーン指定情報生成手段により生成されたトーン指定情報により指定されるトーンを発生する楽音発生回路と
を有し、
前記関数設定情報生成手段により生成された関数設定情報により設定された関数は、前記トーン指定情報によりトーンが指定されている場合には、入力された演奏情報と所定の条件とに従い、前記楽音発生回路に対して、指定された少なくとも１以上のトーンのうちいずれかのトーンの発生を指示する
ことを特徴とする電子楽器。
【請求項３】
請求項１記載の電子楽器において、
前記楽音発生回路は、前記トーン指定手段により指定されるトーンをそれぞれ生成する少なくとも１以上のトーン発生手段を有し、前記関数設定手段により設定された関数は、演奏情報と所定の条件とに従い、いずれかのトーン発生手段にトーンの生成を指示する
ことを特徴とする電子楽器。
【請求項４】
請求項２記載の電子楽器において、
前記楽音発生回路は、前記トーン指定情報生成手段により生成されるトーン指定情報により指定されるトーンをそれぞれ生成する少なくとも１以上のトーン発生手段を有し、
前記関数設定情報生成手段により生成された関数設定情報により設定された関数は、演奏情報と所定の条件とに従い、いずれかのトーン発生手段にトーンの生成を指示する
ことを特徴とする電子楽器。
【請求項５】
請求項１記載の電子楽器において、
前記関数設定手段により設定された関数は、前記演奏情報入力手段に入力された演奏情報に基づき、前記トーン指定手段により前記関数に指定される前記少なくとも１以上のトーンのうちいずれかのトーンの発生を指示するか、あるいは前記少なくとも１以上の演奏情報出力手段の中から１または複数の出力先を決定する
ことを特徴とする電子楽器。
【請求項６】
請求項２記載の電子楽器において、
前記関数設定情報生成手段により生成された関数設定情報により設定された関数は、前記演奏情報入力手段に入力された演奏情報に基づき、前記トーン指定情報生成手段により生成されるトーン指定情報により前記関数に指定される前記少なくとも１以上のトーンのうちいずれかのトーンの発生を指示するか、あるいは前記少なくとも１以上の演奏情報出力手段の中から１または複数の出力先を決定する
ことを特徴とする電子楽器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子楽器に関し、さらに詳細には、音色の表現力を向上した電子楽器に関するものであって、特に、演奏表現のためのパラメータ構成の自由度を大幅に拡張することにより音色の表現力を向上した電子楽器に関する。
【０００２】
【従来の技術】
一般に、ＰＣＭ方式の音源を用いた電子楽器においては、楽音の音色は通常複数の「トーン」の組み合わせより決定されている。
【０００３】
ここで、「トーン」とは音色を構成する最小限の単位であって、与えられた演奏情報に応じて発音を行う最小単位（以下、「トーン発生手段」と称する。）によって発生される楽音を意味するものとする。
【０００４】
また、トーン発生手段は、例えば、図１に示すように、構成要素として、楽音の原波形を発生するウェーブ・ジェネレータ（Ｗａｖｅ  Ｇｅｎｅｒａｔｏｒ）と、原波形に付与するピッチ・エンベロープを発生してこのピッチ・エンベロープに基づいて原波形のピッチを制御するピッチ・エンベロープ・ジェネレータ（Ｐｉｔｃｈ  Ｅｎｖｅｌｏｐｅ  Ｇｅｎｅｒａｔｏｒ）と、原波形に付与するフィルター・エンベロープを発生してこのフィルター・エンベロープに基づいて原波形の音質を制御するフィルタ・エンベロープ・ジェネレータ（Ｆｉｌｔｅｒ  Ｅｎｖｅｌｏｐｅ  Ｇｅｎｅｒａｔｏｒ）と、原波形に付与するアンプリチュード・エンベロープを発生してこのアンプリチュード・エンベロープに基づいて原波形の音量を制御するアンプリチュード・エンベロープ・ジェネレータ（Ａｍｐｌｉｔｕｄｅ  Ｅｎｖｅｌｏｐｅ  Ｇｅｎｅｒａｔｏｒ）とを備えた構造体として構成することができる。
【０００５】
即ち、図１に示すトーン発生手段は、パラメータとして、ウェーブ・ジェネレータ、ピッチ・エンベロープ・ジェネレータ、フィルタ・エンベロープ・ジェネレータおよびアンプリチュード・エンベロープ・ジェネレータの４つの構成要素にそれぞれ複数のパラメータを備えており、これら４つの構成要素の各パラメータの値（パラメータ値）を変化させることによって、さまざまな異なるトーンを発生することができる。
【０００６】
ところで、複数のトーンの組み合わせにより楽音の音色を決定するのは、例えば、次の（ア）〜（ウ）に示す目的のためである。
【０００７】
（ア）：トーン発生手段によってそれぞれ発生された複数の異なるトーンを重ねることにより、楽音の音色を豊かにする。
【０００８】
（イ）：打鍵の速度、即ち、ベロシティや鍵盤上の鍵域に応じて、トーン発生手段によって発生されるトーンを切り換えることにより、演奏情報に対応した楽音の音色の表現力を向上させる。
【０００９】
（ウ）：楽音のアタック部分とサステイン部分とを、トーン発生手段によってそれぞれ発生される別々のトーンで構成することにより、発音時のさまざまな状態に相応しい楽音の生成を行うことができるようにする。
【００１０】
即ち、従来の電子楽器においては、複数のトーンを組み合わせて１つの音色を構成するとともに、演奏情報に応じてトーンを切り換えるなどして、音色の表現力を向上させていたものである。つまり、従来の電子楽器は、音色を構成するトーンの組み合わせにより、演奏表現の変化を表すようになされていた。
【００１１】
また、これらの複数のトーンを組み合わせる目的を達成するためのパラメータが設けられている。例えば、前述の（イ）の目的を達成するために、打鍵速度の境界値を示すパラメータと鍵域の境界値を示すパラメータとがそれぞれ設けられており、指定された鍵の打鍵速度や音高がそれらの境界値よりも大きいか否かに応じて、異なるトーンを発生させるようにしている。これらのパラメータは、トーン発生手段のパラメータとは別に設けられていたり、あるいは、トーン発生手段のパラメータの中に組み込まれていたりする。
【００１２】
ところで、従来の電子楽器においては、演奏表現の変化を表すためのパラメータは、通常同一機種の電子楽器内では全音色共通に設けられており、音色毎に演奏表現の変化を表すために必要なパラメータ値を設定するという構造になっていた。
【００１３】
このため、音色によっては１トーンしか必要でないものから複数のトーンを必要とするものまで様々なものが混在することになるにも関わらず、メモリ上において各音色毎にパラメータ領域は固定長で確保されて設定されていた。
【００１４】
例えば、図１に示す構成要素よりなるトーン発生手段を備え、最大４つのトーン（Ｔｏｎｅ１、Ｔｏｎｅ２、Ｔｏｎｅ３およびＴｏｎｅ４）を使用して１つの音色を構成するようになされた音源を備えた電子楽器の場合には、演奏表現の変化を表すためのパラメータとしては、各音色毎にＴｏｎｅ１〜Ｔｏｎｅ４の各トーンの構成要素たるウェーブ・ジェネレータ、ピッチ・エンベロープ・ジェネレータ、フィルタ・エンベロープ・ジェネレータおよびアンプリチュード・エンベロープ・ジェネレータの各パラメータが設けられることになる。即ち、メモリ上においては、１音色分のパラメータ領域としては、図２に示すパラメータを設定するためのパラメータ領域が必要とされ、こうした図２に示すパラメータ領域を音色数分だけ確保することが必要とされていた。
【００１５】
従って、Ｔｏｎｅ１〜Ｔｏｎｅ４の４つのトーンが必要な音色を構成する場合には、確保していたパラメータ領域を全て有効に活用することになるが、Ｔｏｎｅ１〜Ｔｏｎｅ４の中の１つのトーンしか必要でない音色を構成する場合には、確保していたパラメータ領域のうちの当該１つのトーンのパラメータ領域のみを活用し、他の３つのトーンのパラメータ領域は確保されているだけで有効には活用されていなかった。
【００１６】
また、複数のトーンを組み合わせる場合に、音色によっては、例えば、打鍵の速度および鍵域によってトーンを切り換えるものから、打鍵の速度のみによってトーンを切り換えるもの、鍵域のみによってトーンを切り換えるもの、トーンの切り換えが打鍵の速度、鍵域に左右されないものまで、様々なものが混在するにも関わらず、メモリ上においてはいずれの音色にも打鍵速度の境界値のパラメータおよび鍵域の境界値のパラメータの両方が設けられており、パラメータ領域が確保されているだけで有効に活用されていない場合があった。
【００１７】
即ち、従来の技術においては、全音色共通で固定化したパラメータの構成となっているため、電子楽器の設計段階において順列組み合わせ的に全ての場合を想定して必要な情報をパラメータとして設けておく必要があるので、メモリー資源や楽音を発生するための資源を有効に活用できずに無駄が多くなるという問題点があった。
【００１８】
【発明が解決しようとする課題】
本発明は、上記したような従来の技術の有する種々の問題点に鑑みてなされたものであり、その目的とするところは、音色を構成する際に必要とされるトーンの振る舞い、即ち、トーンをどのように使用するかを、音色毎に任意に設定することができるようにして、従来全音色共通で固定化されていた演奏表現の変化を表すためのパラメータの構成を自由に設定することができるようにした電子楽器を提供しようとするものである。
【００１９】
【課題を解決するための手段】
上記目的を達成するために、本発明のうち請求項１に記載の発明は、少なくとも２つの任意の関数であって、演奏情報が入力される演奏情報入力手段と前記演奏情報を出力する少なくとも１以上の演奏情報出力手段とを有する関数を設定可能な関数設定手段と、上記少なくとも２つの任意の関数のうち所定の関数の演奏情報出力手段と上記所定の関数とは異なる関数の演奏情報入力手段とを任意に接続可能な接続設定手段と、上記関数設定手段により設定された関数のそれぞれについて、音色を構成する少なくとも１以上のトーンを指定可能なトーン指定手段と、上記トーン指定手段により指定されるトーンを発生する楽音発生回路とを有し、上記関数設定手段により設定された関数は、上記トーン指定手段によりトーンが指定されている場合には、入力された演奏情報と所定の条件とに従い、上記楽音発生回路に対して、指定された少なくとも１以上のトーンのうちいずれかのトーンの発生を指示するようにしたものである。
【００２０】
従って、請求項１に記載の発明によれば、楽音発生回路にいずれのトーンを発生するかを任意に指定することができるので、音色を構成する際に必要とされるトーンの振る舞い、即ち、トーンをどのように使用するかを、音色毎に任意に設定することができるようになる。
【００２１】
また、本発明のうち請求項２に記載の発明は、少なくとも２つの任意の関数であって、演奏情報が入力される演奏情報入力手段と、上記演奏情報を出力する少なくとも１以上の演奏情報出力手段とを有する関数を設定可能な関数設定情報を生成する関数設定情報生成手段と、上記少なくとも２つの任意の関数のうち所定の関数の演奏情報出力手段と上記所定の関数とは異なる関数の演奏情報入力手段とを任意に接続することを指定する接続指定情報を生成する接続指定情報生成手段と、上記接続指定情報生成手段により生成された接続指定情報により指定された演奏情報出力手段と演奏情報入力手段とを接続可能な接続設定手段と上記関数設定情報生成手段により生成された関数設定情報により設定された関数のそれぞれについて、音色を構成する少なくとも１以上のトーンを指定可能なトーン指定情報を生成するトーン指定情報生成手段と、上記トーン指定情報生成手段により生成されたトーン指定情報により指定されるトーンを発生する楽音発生回路とを有し、上記関数設定情報生成手段により生成された関数設定情報により設定された関数は、上記トーン指定情報によりトーンが指定されている場合には、入力された演奏情報と所定の条件とに従い、上記楽音発生回路に対して、指定された少なくとも１以上のトーンのうちいずれかのトーンの発生を指示するようにしたものである。
【００２２】
従って、本発明のうち請求項２に記載の発明によれば、楽音発生回路にいずれのトーンを発生するかを任意に指示することができるので、音色を構成する際に必要とされるトーンの振る舞い、即ち、トーンをどのように使用するかを、音色毎に任意に設定することができるようになる。
【００２３】
また、本発明のうち請求項３に記載の発明は、本発明のうち請求項１記載の電子楽器において、上記楽音発生回路は、上記トーン指定手段により指定されるトーンをそれぞれ生成する少なくとも１以上のトーン発生手段を有し、上記関数設定手段により設定された関数は、演奏情報と所定の条件とに従い、いずれかのトーン発生手段にトーンの生成を指示するようにしたものである。
【００２４】
また、本発明のうち請求項４に記載の発明は、本発明のうち請求項２に記載の発明において、上記楽音発生回路は、上記トーン指定情報生成手段により生成されるトーン指定情報により指定されるトーンをそれぞれ生成する少なくとも１以上のトーン発生手段を有し、上記関数設定情報生成手段により生成された関数設定情報により設定された関数は、演奏情報と所定の条件とに従い、いずれかのトーン発生手段にトーンの生成を指示するようにしたものである。
【００２５】
また、本発明のうち請求項５に記載の発明は、本発明のうち請求項１に記載の発明において、上記関数設定手段により設定された関数は、上記演奏情報入力手段に入力された演奏情報に基づき、上記トーン指定手段により前記関数に指定される上記少なくとも１以上のトーンのうちいずれかのトーンの発生を指示するか、あるいは上記少なくとも１以上の演奏情報出力手段の中から１または複数の出力先を決定するようにしたものである。
【００２６】
また、本発明のうち請求項６に記載の発明は、本発明のうち請求項２に記載の発明において、上記関数設定情報生成手段により生成された関数設定情報により設定された関数は、上記演奏情報入力手段に入力された演奏情報に基づき、上記トーン指定情報生成手段により生成されるトーン指定情報により上記関数に指定される上記少なくとも１以上のトーンのうちいずれかのトーンの発生を指示するか、あるいは上記少なくとも１以上の演奏情報出力手段の中から１または複数の出力先を決定するようにしたものである。
【００３６】
なお、上記において、演奏情報は、例えば、後述する「発明の実施の形態」において説明した「ＭＩＤＩメッセージ」である。
【００３７】
【発明の実施の形態】
以下、添付の図面を参照しながら、本発明による電子楽器の実施の形態の一例を詳細に説明する。
【００３８】
図３には、本発明による電子楽器のブロック構成図が示されており、この電子楽器は楽音発生装置として機能するものであり、その全体の動作の制御を中央処理装置（ＣＰＵ）１０を用いて制御するように構成されている。
【００３９】
ＣＰＵ１０には、バス（ＢＵＳ）１２を介して、全体の動作の制御のための所定のプログラムや各トーンのパラメータなどこの電子楽器を動作させるのに必要なデータが格納されたリード・オンリ・メモリ（プログラムＲＯＭ）１４と、後述する音色のスクリプトを記憶するメモリ領域や各種バッファやフラグなどの領域が設定されたワーキング・エリアとしてのランダム・アクセス・メモリ（ＲＡＭ）１６と、マウスなどの各種操作子や各種操作子の操作に必要な情報や後述するスクリプトを表示するディスプレイ装置を備えた操作パネル部１８と、外部のシーケンサなどから自動演奏のＭＩＤＩメッセージを入力するためのインターフェース部であるＭＩＤＩ入力部（ＭＩＤＩ  ＩＮ）２０と、ＭＩＤＩ入力部２０から入力されたＭＩＤＩメッセージに基づいて波形ＲＯＭ２４から所定の波形データを読み出す波形読み出し方式によりトーンたるデジタル楽音信号を発生する少なくとも１以上のトーン発生手段を備える楽音発生回路２６とが接続されている。そして、楽音発生回路２６には、楽音発生回路２６によって発生されたデジタル楽音信号をアナログ楽音信号に変換して出力するデジタル・アナログ変換部２８が接続されている。
【００４０】
なお、ＲＡＭ１６の音色のスクリプトの情報は、電源オフ時にも失われないようにバックアップされている。
【００４１】
そして、デジタル・アナログ変換部２８には、デジタル・アナログ変換部２８から出力されたアナログ楽音信号を増幅する増幅回路３０が接続され、増幅回路３０には、増幅されたアナログ楽音信号を空間に聴取し得る楽音として放音するためのスピーカー３２が接続されている。
【００４２】
ここで、ＲＡＭ１６に記憶されるスクリプトとは、トーン発生手段により発生されるトーンの振る舞い、即ち、トーンをどのように使用するかを示すものである
そして、この電子楽器のシステムにおいては、音色はトーンの振る舞いを示すスクリプトの設定内容によって決定されることになる。
【００４３】
なお、トーン発生手段によるトーンの発生については公知の技術であるので説明を省略し、以下においてはスクリプトについて詳細に説明する。
【００４４】
ここで、スクリプトはＲＡＭ１６の所定のメモリ領域に記憶されることになるが、スクリプトの設定は後述するようにグラフィカル・ユーザー・インターフェース（ＧＵＩ）を用いて行われる。
【００４５】
そして、この電子楽器のシステムにおいては、スクリプトは「関数」によって設定されるようになされている。ここで、「関数」とは、ＭＩＤＩメッセージを入力し、適宜の関数またはトーン発生手段へ出力する処理を意味するものとする。
【００４６】
こうした関数としては、例えば、
（ａ）入力されたＭＩＤＩノート・オン・メッセージのキー・ナンバー（ＭＩＤＩ  Ｋｅｙ  Ｎｏ．）に応じて出力を振り分ける。
【００４７】
（ｂ）入力されたＭＩＤＩノート・オン・メッセージのキー・ベロシティ（ＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙ）に応じて出力を振り分ける。
【００４８】
（ｃ）所定の算術関数に適合した場合に出力を行う。
を設定することができる。
【００４９】
そして、上記したような各関数に所望のパラメータを与えることでトーンの振る舞いを任意に設定して、所望の音色を発音可能なスクリプトを作成することができる。
【００５０】
次に、この電子楽器のシステムにおけるＧＵＩを用いて、トーンとして、
Ｊａｚｚ  Ｐｉｚｚ  ｐ（弱く演奏したジャズ・ピチカート奏法の音）
Ｊａｚｚ  Ｐｉｚｚ  ｆ（強く演奏したジャズ・ピチカート奏法の音）
Ｈａｒｍｏｎｉｃｓ（ハーモニクス奏法の成功音）
Ｈａｒｍｏｎｉｃｓ  ＮＧ！（ハーモニクス奏法の失敗音）
の４つのトーンを選択するとともに、上記した（ａ）、（ｂ）および（ｃ）それぞれの関数に、
（ａ）の関数についてはＭＩＤＩ  Ｋｅｙ  Ｎｏ．６０を出力の振り分けの境界として設定する、
（ｂ）の関数についてはＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙ１００を出力の振り分けの境界として設定する、
（ｃ）の関数については算術関数としてノート・オンの度に所定の確率でランダムに真あるいは偽の値を発生する乱数発生関数を使用して、１／１０を出力振り分けの確率として設定する、
というパラメータを与えることによりトーンの振る舞いを設定して、アコースティック・ベース（Ａｃｃｏｕｓｔｉｃ  Ｂａｓｓ）の音色を発音可能なスクリプトを作成する方法について説明する。
【００５１】
まず、スクリプトを作成する処理のルーチンを起動させると、操作パネル部１８のディスプレイ装置の画面に図４に示す起動画面が表示される。
【００５２】
マウスを動かすことによりカーソルが現れ、マウスの移動に従ってカーソルも移動する。
【００５３】
図４に示す例では、まだカーソルは現れていない。カーソルが所定の項目に合わせられたときには、その項目が白黒反転表示され、マウスをクリックすることによりその項目が選択される。
【００５４】
なお、以後の説明においては、カーソルを項目に合わせてクリックすることを、単に「クリック」すると表現する。
【００５５】
次に、図４に示す画面の上欄「Ｔｏｎｅｓ」の箇所を操作パネル部１８の操作子によりクリックすることにより、予め設定されたトーン発生手段によって発生可能なトーンの選択を行う（図５参照）。トーンは、階層式のメニューから必要なトーンをクリックすることにより選択する。
【００５６】
図５に示すトーン選択画面の例においては、トーンのカテゴリー（Ｃａｔｅｇｏｒｙ）として「Ｐｉａｎｏ（ピアノ）」、「Ｇｕｉｔａｒ（ギター）」および「ｓｔｒｉｎｇｓ（ストリングス）」が設定されており、ストリングスのカテゴリーはさらに「Ｖｉｏｌｉｎ（バイオリン）」、「Ｖｉｏｌａ（ビオラ）」、「Ｃｅｌｌｏ（チェロ）」および「Ｄｏｕｂｌｅ  Ｂａｓｓ（ダブル・ベース）」に分類されており、ダブル・ベースのトーンとして「Ｊａｚｚ  Ｐｉｚｚ  ｐ（弱く演奏したジャズ・ピチカート奏法の音）」、「Ｊａｚｚ  Ｐｉｚｚ  ｆ（強く演奏したジャズ・ピチカート奏法の音）」、「Ｈａｒｍｏｎｉｃｓ（ハーモニクス奏法の成功音）」、「Ｈａｒｍｏｎｉｃｓ  ＮＧ！（ハーモニクス奏法の失敗音）」、「Ａｒｃｏ  ｐ」、「Ａｒｃｏ  ｆ」および「Ｂａｒｔｏｋ  Ｐｉｚｚ．」が予め設定されている状態が示されている。
【００５７】
ここで、トーンとして「Ｊａｚｚ  Ｐｉｚｚ  ｐ」、「Ｊａｚｚ  Ｐｉｚｚ  ｆ」、「Ｈａｒｍｏｎｉｃｓ」ならびに「Ｈａｒｍｏｎｉｃｓ  ＮＧ！」を順次選択すると、画面には選択されたトーンたる「Ｊａｚｚ  Ｐｉｚｚ  ｐ」、「Ｊａｚｚ  Ｐｉｚｚ  ｆ」、「Ｈａｒｍｏｎｉｃｓ」ならびに「Ｈａｒｍｏｎｉｃｓ  ＮＧ！」のアイコンが表示される（図６参照）。即ち、選択されたトーンはアイコンで表示され、選択されたトーンについての楽器の種類や奏法を視覚的に容易に確認することができるようになされている。
【００５８】
なお、トーンを示すアイコンは予め設定されているが、ユーザーが独自に設定することもできる。
【００５９】
前述の４つのトーンの選択に応じて４つのトーン発生手段が選択され、各トーン発生手段に各トーンがそれぞれ設定される。
【００６０】
なお、図６に示す、まだトーンと関数とが接続されていない状態では、ＭＩＤＩメッセージは直接各トーン発生手段に入力される。従って、この状態では、ＭＩＤＩメッセージに従って、４つのトーンが同時に発生する。
【００６１】
上記のようにしてトーンの選択を終了すると、次に画面の上欄「Ｆｕｎｃｔｉｏｎ」の箇所を操作パネル部１８の操作子によりクリックすることにより、予め設定された関数の中から上記した（ａ）、（ｂ）および（ｃ）それぞれの関数を選択する。
【００６２】
ここで、関数の選択について上記した（ｂ）の関数を選択する場合を例として説明すると、画面の上欄「Ｆｕｎｃｔｉｏｎ」の箇所を操作パネル部１８の操作子によりクリックすると、上記したトーンの場合と同様に階層式のメニューが開かれて、このメニューから必要な関数をクリックすることにより関数を選択する（図７参照）。
【００６３】
図７に示す関数選択画面の例においては、関数として「Ｖｅｌｏｃｉｔｙ（ベロシティ）」、「Ｋｅｙ  Ｎｏ．（キー・ナンバー）」、「Ｌｅｇａｔｏ（レガート）」および「Ａｒｉｔｈｍｅｔｉｃ（算術）」が設定されており、Ｖｅｌｏｃｉｔｙはさらに「Ｓｗｉｔｃｈ（スイッチ）」および「Ｍｉｘ（ミックス）」に分類されて設定されている状態が示されている。
【００６４】
ここで、関数として「Ｖｅｌｏｃｉｔｙ」の「Ｓｗｉｔｃｈ」を選択すると、画面には選択された関数たる「Ｖｅｌｏｃｉｔｙ」の「Ｓｗｉｔｃｈ」のアイコンが表示される（図８参照）。このアイコンには、関数の内容を表す文字列「Ｖｅｌｏｃｉｔｙ  ＳＷ」が表示されるとともに、トーンや他の関数に接続するための出力ポート（▽印）が表示される。図８に示す例においては、関数が２つの出力ポートを備えていることが示されている。
【００６５】
次に、トーン発生手段の振る舞いを設定するために、関数の出力ポートとトーンとを接続する。即ち、図９に示すように、関数の出力ポートを選択するとともに接続先のトーンを選択することにより、関数とトーンとの関連付けを行う。なお、操作子としてマウスなどの入力装置を用いる場合には、関数の出力ポートをクリックした後に目的とするトーンのアイコンまでドラッグすることにより、関数の出力ポートとトーンとを接続することができる。
【００６６】
また、関数のパラメータは通常は画面上に表示されないので、関数のパラメータを設定する際には、パラメータを設定したい関数を選択して所定の操作（例えば、マウスのダブル・クリックなど。）を行うことにより、関数のパラメータの設定のためのダイアログ・ボックスを表示させる（図１０参照）。この関数のパラメータの設定のためのダイアログ・ボックスが表示された状態において、目的とするパラメータを選択してテン・キーなどでその値の変更を行う。
【００６７】
なお、図１０に示すパラメータ設定画面の例においては、対象の関数に１種類のパラメータのみが設けられており、ダイアログ・ボックスを表示した時点で既にそのパラメータが選択されているが、２種類以上のパラメータが設けられている関数の場合には、マウスでクリックすることにより所望のパラメータを選択する。
【００６８】
図１０に示すパラメータ設定画面の例においては、選択された関数たる「Ｖｅｌｏｃｉｔｙ」の「Ｓｗｉｔｃｈ」のパラメータ値として「１００」を設定することにより、入力されたＭＩＤＩノート・オン・メッセージのＭＩＤＩ  ＫｅｙＶｅｌｏｃｉｔｙ１００を出力の振り分けの境界として設定した状態が示されている。
【００６９】
以上のようにしてＧＵＩ環境で設定されたスクリプトは、実際にプログラム上で処理するために、図１１に示すようなコードに変換されて演奏に用いるデータとしてＲＡＭ１６に一時記憶される。
【００７０】
変換にあたっては、まず、トーンの選択の順番に応じて、各トーンにトーン番号Ｔｏｎｅ＃１〜Ｔｏｎｅ＃４が設定される。
【００７１】
次に、いずれの関数からもＭＩＤＩメッセージを受け取らない関数、即ち、いずれの関数も介することなく直接ＭＩＤＩメッセージを受け取る関数が調べられ、その関数に関数番号の初期値が設定される。
【００７２】
続いて、その関数に、関数の種類および使用者によって設定されたパラメータ値が設定される。
【００７３】
さらに、その関数の出力ポートに接続されている関数が調べられ、それらの関数に初期値の後の関数番号が設定され、最初に関数番号が設定された関数の出力先として、それらの関数の関数番号が設定される。
【００７４】
もし、関数の出力ポートにトーンが接続されている場合には、その関数の出力先として、それらのトーンのトーン番号が設定される。他の関数に関しても、同様な処理を行う。
【００７５】
ただし、いずれかの関数の出力ポートに接続されている関数には、既に関数番号が設定されている点が先程のものと異なる。
【００７６】
例えば、図１１においては、コードの先頭部分において、トーン番号ｔｏｎｅ＃１〜ｔｏｎｅ＃４に「Ｊａｚｚ  Ｐｉｚｚ  ｐ」、「Ｊａｚｚ  Ｐｉｚｚ  ｆ」、「Ｈａｒｍｏｎｉｃｓ」、「Ｈａｒｍｏｎｉｃｓ  ＮＧ！」の各トーンがそれぞれ設定されている。
【００７７】
次に、いずれの関数も介することなく直接ＭＩＤＩメッセージを受け取る関数に、関数番号の初期値ｆｕｎｃｔｉｏｎ＃１が設定され、この関数に関数の種類としてＭＩＤＩ  Ｋｅｙ  Ｎｏ．によって出力を振り分けるｋｅｙ＿Ｎｏ．＿ｓｐｌｉｔが設定され、振り分けの境界値として使用者によって設定されたパラメータ値６０が設定されている。
【００７８】
また、その関数の出力ポートに接続されている関数に、関数番号ｆｕｎｃｔｉｏｎ＃２およびｆｕｎｃｔｉｏｎ＃３が設定され、ＭＩＤＩ  Ｋｅｙ  Ｎｏ．が境界値よりも小さかった場合の出力先として関数番号ｆｕｎｃｔｉｏｎ＃２の関数が設定され、ＭＩＤＩ  Ｋｅｙ  Ｎｏ．が境界値以上であった場合の出力先として関数番号ｆｕｎｃｔｉｏｎ＃３の関数が設定されている。
【００７９】
同様に、関数番号ｆｕｎｃｔｉｏｎ＃２の関数に、ＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙによって出力を振り分ける関数ｋｅｙ＿ｖｅｌｏｃｉｔｙ＿ｓｐｌｉｔが設定され、振り分けの境界値として使用者によって設定されたパラメータ値１００が設定されている。
【００８０】
なお、このｋｅｙ＿ｖｅｌｏｃｉｔｙ＿ｓｐｌｉｔは、図７〜図１０において説明した「Ｖｅｌｏｃｉｔｙ」の「Ｓｗｉｔｃｈ」のことである。
【００８１】
また、ＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙが境界値よりも小さかった場合の出力先としてＴｏｎｅ＃１が設定され、ＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙが境界値以上であった場合の出力先としてＴｏｎｅ＃２が設定されている。
【００８２】
さらに、関数番号ｆｕｎｃｔｉｏｎ＃３の関数に、乱数の値によって出力を振り分ける乱数発生関数ｒａｎｄｏｍが設定され、乱数発生の確率として使用者によって設定されたパラメータ値０．１が設定されている。
【００８３】
また、発生された乱数が真であった場合の出力先としてＴｏｎｅ＃４が設定され、発生された乱数が偽であった場合の出力先としてＴｏｎｅ＃３が設定されている。
【００８４】
スクリプトに対応するコードは、ＲＡＭ１６に一時的に記憶されるだけでなく、図４〜図１０に示す画面の上欄「Ｓａｖｅ」の箇所をクリックすることにより、使用者が任意に作成した音色名を添付して音色データとしてＲＡＭ１６に記憶される。
【００８５】
なお、図４〜図１０に示す画面の上欄「Ｌｏａｄ」の箇所をクリックすると、ＲＡＭ１６に既に記憶されている音色データの音色名のリストが表示され、このうちいずれかをクリックすることにより選択された音色の音色データがＲＡＭ１６の一時記憶領域に呼び出され、この音色データに基づいて演奏が行えるようになる。このとき、作成した音色のコードに基づいてこの音色のスクリプトが、スクリプト作成時と同様に図１０に示すような形態で表示される。
【００８６】
また、図１２は、図１１におけるコードに示されるスクリプトを図表的に表している。
【００８７】
そして、この電子楽器において図１１ならびに図１２に示されるスクリプトを用いて楽音の発音する際には、図１１に示されるコードに基づいて実際に実行される処理内容が決定される。
【００８８】
ＲＯＭ１４には、この電子楽器で選択能な各関数毎にその関数の内容を実現するタスクのプログラムが記憶されており、コードに従ってそのコードに設定されている関数に対応するタスクが順次起動される。
【００８９】
より詳細には、新たにスクリプトを作成したり、既に記憶されている音色データを呼び出すことによりスクリプトが設定されると、スクリプトに対応するコードの先頭部分に書かれているトーンの数と同じ数のトーン発生手段を確保し、確保した各トーン発生手段に各トーンのパラメータを供給することにより、トーン発生手段にトーンを割り当てる。
【００９０】
次に、ノート・オンを示すＭＩＤＩメッセージの受信に応じて、コードの次の部分に書かれているいずれの関数も介することなく直接ＭＩＤＩメッセージを受け取る関数のタスクにＭＩＤＩメッセージを受け渡し、そのタスクを起動する。そして、このタスクの実行結果によって、コードに基づいてその関数の出力先の関数あるいはトーンを決定し、出力先が関数である場合にはその出力先の関数のタスクにＭＩＤＩメッセージを受け渡し、そのタスクを起動する。出力先の関数のタスクの実行結果によって、同様に、その関数の出力先の関数あるいはトーンを決定し、出力先が関数である場合にはその先程と同様にその出力先の関数のタスクを起動する。
【００９１】
一方、出力先がトーンである場合には、その出力先のトーンのトーン番号に対応するトーン発生手段にノート・オンを示すＭＩＤＩメッセージを渡し、楽音の発生を指示する。このとき、いずれのトーン発生手段に楽音の発生を指示したかを記憶しておき、ノート・オフを示すＭＩＤＩメッセージを受信したときにはノート・オフの処理を行うタスクを起動し、このタスクが楽音の発生を指示されて現在発音中のトーン発生手段にノート・オフを示すＭＩＤＩメッセージを渡し、楽音の発生停止を指示する。
【００９２】
図１１ならびに図１２に示されるスクリプトに対応して各タスクが次々に実行されることによる実行内容を通常のルーチンに擬えたフローチャートを、図１３に示す。図１３のフローチャートに示すＭＩＤＩメッセージの処理のルーチンが実行されて、ＭＩＤＩメッセージに応じて様々な音色変化を得ることができるようになる。
【００９３】
即ち、図１３のフローチャートに示すＭＩＤＩメッセージの処理のルーチンにおいては、まず、ＭＩＤＩメッセージを受け取り（ステップＳ１３０２）、それから、受け取ったＭＩＤＩメッセージのＭＩＤＩ  ｋｅｙ  Ｎｏ．が６０以上であるか否かを判断する（ステップＳ１３０４）。即ち、上記した（ａ）の関数についての処理を行う。
【００９４】
ステップＳ１３０４において、ＭＩＤＩ  Ｋｅｙ  Ｎｏ．が６０以上でないと判断された場合には、ＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙ  が１００以上であるか否かを判断する（ステップＳ１３０６）。即ち、上記した（ｂ）の関数についての処理を行う。
【００９５】
そして、ステップＳ１３０６において、ＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙが１００以上でないと判断された場合には、Ｔｏｎｅ＃１を発音するものである（ステップＳ１３０８）。
【００９６】
即ち、ＭＩＤＩ  Ｋｅｙ  Ｎｏ．が６０よりも小さく、ＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙ  が１００よりも小さい場合には、通常奏法の演奏範囲の弦を弱く弾いた場合に相当するので、通常奏法の弱い音として「Ｔｏｎｅ＃１：Ｊａｚｚ  Ｐｉｚｚ  ｐ（弱く演奏したジャズ・ピチカート奏法の音）」を発音する。一方、ステップＳ１３０６において、ＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙ  が１００以上であると判断された場合には、Ｔｏｎｅ＃２を発音するものである（ステップＳ１３１０）。
【００９７】
即ち、ＭＩＤＩ  Ｋｅｙ  Ｎｏ．が６０よりも小さく、ＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙ  が１００以上である場合には、通常奏法の演奏範囲の弦を強く弾いた場合に相当するので、通常奏法の強い音として「Ｔｏｎｅ＃２：Ｊａｚｚ
Ｐｉｚｚ  ｆ（強く演奏したジャズ・ピチカート奏法の音）」を発音する。
【００９８】
また、ステップＳ１３０４において、ＭＩＤＩ  Ｋｅｙ  Ｎｏ．が６０以上であると判断された場合には、新たな乱数を発生して乱数発生の結果が真であるか偽であるかを判断する（ステップＳ１３１２）。即ち、上記した（ｃ）の関数についての処理を行う。
【００９９】
そして、ステップＳ１３１２において、乱数発生の結果が偽であると判断された場合には、Ｔｏｎｅ＃３を発音するものである（ステップＳ１３１４）。
【０１００】
即ち、ＭＩＤＩ  Ｋｅｙ  Ｎｏ．が６０以上であり、乱数発生の結果が偽の場合には、通常奏法の演奏範囲を越えた高い音に相当するので、ハーモニクス奏法の音として「Ｔｏｎｅ＃３：Ｈａｒｍｏｎｉｃｓ（ハーモニクス奏法の成功音）」を発音する。
【０１０１】
一方、ステップＳ１３１２において、乱数発生の結果が真であると判断された場合には、Ｔｏｎｅ＃４を発音するものである（ステップＳ１３１６）。
【０１０２】
即ち、ＭＩＤＩ  Ｋｅｙ  Ｎｏ．が６０以上であり、乱数発生の結果が真の場合には、通常奏法の演奏範囲を越えた高い音で演奏に失敗した音に相当するので、ハーモニクス奏法を試みて失敗したときの音として「Ｔｏｎｅ＃４：Ｈａｒｍｏｎｉｃｓ  ＮＧ！（ハーモニクス奏法の失敗音）」を発音する。
【０１０３】
なお、上流の関数から下流の関数のＭＩＤＩメッセージを渡すときに、ＭＩＤＩメッセージの内容に応じて下流の関数のパラメータを相対的に変化させるようにしてもよい。これにより、より複雑で柔軟な音色を構成する事が可能になる。例えば、図１２に示したスクリプトにおいて、乱数発生関数の使用者によって設定された確率のパラメータの値に、上流の関数から受け渡されたＭＩＤＩノート・メッセージのＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙの値を乗算し、その積を１２７で除算した商を実際に乱数発生に用いる確率とすることにより、Ｖｅｌｏｃｉｔｙが大きくなればなるほど（強く弾けば弾くほど）演奏に失敗した音色となる確率が大きくなる様子を表現するようなトーンの振る舞いを、スクリプトとして容易に設定することができるようになる。
【０１０４】
なお、スクリプト上で指定されたトーンは、実際には直接トーンに割り当てられたシリアル番号で指定するのではなく、ポインターだけで指定されるものである。図１４に示すように、ポインターで指定されたトーンは、メモリ上の実アドレスに対する変換テーブルによって目的とするトーンの実際のパラメータを指定するようになっている。
【０１０５】
このようなメモリ管理を行うことにより、メモリに記憶されているトーンの順序を変更することなく、ユーザーが把握するトーンの順序を変更することができるので、トーン選択の際に所望のトーンの検索が容易になる。例えば、トーンを楽器名で探したいときにはアルファベット順、トーンの役割で探したいときにはキーワード順など、複数の検索方法を組み合わせることができる。
【０１０６】
また、上記したようなメモリ管理を行うことにより、ユーザーは楽音の構成要素をトーンの単位で整理しておくことができるため、トーンのバリエーションの作成や修正などの編集作業が容易になる。例えば、ピアノの音色の音程成分と非音程成分とを別々のトーンとして用意しておいて、それぞれの組み合わせでバリエーションを作成することができる。
【０１０７】
また、上記したようなメモリ管理を行うことにより、結果的に同じトーンを複数の音色で使用することができるようになり、メモリを節約することができる。即ち、スクリプトにおいてはあたかも同じトーンが複数の音色に存在するように見えるが、メモリ上においては１つであるので、必要とするメモリ量が少なくて済む。
【０１０８】
なお、言うまでもないことであるが、上記におけるスクリプトの説明は本発明の理解を容易にするための一例に過ぎないものであり、トーン、関数あるいはパラメータなどの種類はもとより、パラメータの値も任意に設定することができるものである。
【０１０９】
ここで、本発明の理解を容易にするために、本発明で使用される関数について整理しておくと、本発明においては、例えば、「Ｌｅｇａｔｏ」、「Ｋｅｙ  Ｎｏ．  Ｓｐｌｉｔ」、「Ｋｅｙ  Ｌａｙｅｒ」、「Ｖｅｌｏｃｉｔｙ  Ｓｗｉｔｃｈ」、「Ｖｅｌｏｃｉｔｙ  Ｍｉｘ」、「Ｒａｎｄｏｍ」、「Ｓｅｑｕｅｎｔｉａｌ」、「Ｎｏｔｅ  Ｏｎ  Ｔｉｍｅ」、「Ｐｉｔｃｈ」、「Ｔｅｍｐｏ」ならびに「Ｈｉｓｔｏｒｙ」などが挙げられる。以下、これの関数を順次説明するものとする。
【０１１０】
（１）Ｌｅｇａｔｏ
直前の楽音（Ｎｏｔｅ）の発音（Ｎｏｔｅ  ｏｎ）あるいは消音（Ｎｏｔｅ  ｏｆｆ）と次の楽音の発音（Ｎｏｔｅ  Ｏｎ）がどのような関係にあるかによってＬｅｇａｔｏを判定する。一般に、オーボエやサックスのような管楽器では、同時に発音することができる音数が１つであるので、このＬｅｇａｔｏ関数を用いることにより、楽音と楽音のつなぎめにおいて２つの楽音とも発音状態と指定された場合であっても、１つの楽音のみを発音させることができるようになる。例えば、Ｌｅｇａｔｏと判定された場合には、直前のＮｏｔｅに対してＮｏｔｅ  ｏｆｆを送信して次のＮｏｔｅを発音することにより、オーボエやサックスのような管楽器の音色の振る舞いを模擬することができる。
【０１１１】
また、Ｌｅｇａｔｏと判定された場合と判定されなかった場合とで、別々のトーンを発生するようにすると、バイオリンのような弦楽器の音色に関して、Ｌｅｇａｔｏでない場合にはアタック部分の擦弦音の大きなトーンを発生するようにし、Ｌｅｇａｔｏの場合にはアタック部分の擦弦音の小さな滑らかなトーンを発生することにより、バイオリンのような弦楽器の音色で特徴的な直前の発音状態の違いによる次の発音の変化を模擬することができる。
【０１１２】
なお、Ｌｅｇａｔｏのパラメータとしては、以下の「Ｎｏｔｅ  Ｏｆｆ−ＯｎＴｉｍｅ」と「Ｎｏｔｅ  Ｏｎ−Ｏｎ  Ｔｉｍｅ」との２つの時間要素があり、これらを音色に合わせて設定することで、より高度な演奏表現が可能になる。Ｎｏｔｅ  Ｏｆｆ−Ｏｎ  Ｔｉｍｅの値を設定すると、直前のＮｏｔｅ  ｏｆｆから設定時間以内のＮｏｔｅ  ＯｎはＬｅｇａｔｏと判定する。即ち、鍵盤から演奏する場合には、Ｌｅｇａｔｏのつもりで演奏しても、微妙な時間差で全てのＮｏｔｅがなくなる状態ができてしまうことがあるが、これでは演奏上不都合がある音色の場合には、このパラメータを適切な値に設定することにより、このような問題が解決される。
【０１１３】
ここで、Ｎｏｔｅ  Ｏｎ−Ｏｎ  Ｔｉｍｅの値を設定すると、直前のＮｏｔｅＯｎから設定時間以内のＮｏｔｅ  Ｏｎは、直前のＮｏｔｅ  ｏｆｆから設定時間以内のＮｏｔｅ  Ｏｎであってもｌｅｇａｔｏでないと判断する。即ち、例えば、鍵盤からギターの音色で和音を弾いた場合に、最初のＮｏｔｅだけアタック・ノイズ付きのトーンで発音すると不自然になってしまうが、Ｎｏｔｅ  Ｏｎ−Ｏｎ  Ｔｉｍｅのパラメータを適切な値に設定することで、一定時間以内のＮｏｔｅ  Ｏｎは全てアタック付きのトーンで発音されるようになり、この不自然さは解消される。
【０１１４】
（２）Ｋｅｙ  Ｎｏ．  Ｓｐｌｉｔ
前述の（ａ）の関数である。ＭＩＤＩノート・オン・メッセージのキー・ナンバー（ＭＩＤＩ  Ｋｅｙ  Ｎｏ．）によって鍵域分割を行う。これにより、音域によってトーンを使い分けることが可能になる。
【０１１５】
例えば、Ｋｅｙ  Ｎｏ．  Ｓｐｌｉｔにより、音域を２つに分割して、高い音域をピアノに割り当てるとともに、低い音域をベースに割り当てて、ピアノとベースとの重奏を表現することができる。
【０１１６】
また、Ｋｅｙ  Ｎｏ．  Ｓｐｌｉｔにより、音域によってさらに細かくトーンを分割すると、より高度な表現を行うことができる。具体的には、ピアノ音色であれば、高い鍵域ではダンパーが外れることによりリリースの長さが変わり、低い鍵域では巻線の数と太さが変わることにより音質およびエンベロープの減衰特性が変化するといった特徴を、それぞれ別々のトーンを用いることで表現することができる。
【０１１７】
（３）Ｋｅｙ  Ｌａｙｅｒ
ＭＩＤＩノート・オン・メッセージのキー・ナンバー（ＭＩＤＩ  Ｋｅｙ  ＮＯ．）によって任意の鍵域同士を重ねる。これにより、複数のトーンを用いて厚い音色にしたり、異なる系統のトーンを重ねて新しい音色を作ることが可能になる。
【０１１８】
例えば、複数の持続系のトーンを重ねて発音させることで、厚い音色を表現することができる。
【０１１９】
また、減衰系の音色と持続系の音色とを重ねて発音させることで、ピアノの音色とストリングスの音色とを合わせたような、アタック部分をはっきりさせつつ持続する和音にも対応できる音色を表現することができる。
【０１２０】
（４）Ｖｅｌｏｃｉｔｙ  Ｓｗｉｔｃｈ
前述の（ｂ）の関数である。ＭＩＤＩノート・オン・メッセージのキー・ベロシティ（ＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙ）によってトーンを切り換えることで、演奏情報に応じた多彩な音色変化を表現する。
【０１２１】
例えば、エレクトリック・ピアノを強く弾いたときから弱く弾いたときまでのいくつかの段階を表現したトーンを、Ｖｅｌｏｃｉｔｙ  Ｓｗｉｔｃｈにより切り換えて発音させることで、より自然な音色変化を表現することができる。
【０１２２】
（５）Ｖｅｌｏｃｉｔｙ  Ｍｉｘ
ＭＩＤＩノート・オン・メッセージのキー・ベロシティ（ＭＩＤＩ  Ｋｅｙ  Ｖｅｌｏｃｉｔｙ）によってトーンを重ねて発音することで、ベロシティに応じた滑らかな音色変化を表現することができる。
【０１２３】
例えば、ギターを強く弾いたときと弱く弾いたときとをそれぞれ表現したトーンを重ねて発音し、ベロシティに応じて混合の割合を変えることで、ベロシティに応じた滑らかな音色変化を表現することができる。
【０１２４】
（６）Ｒａｎｄｏｍ
前述の（ｃ）の関数である。一定の割合で選択肢となるトーンの中から１つを発音することで、より自然の状況に近い音色変化を表現することができる。
【０１２５】
例えば、似たような状態だが微妙に異なるギターのトーンを複数用意しておいて、ノート・オン毎にどれが発音されるかわからない状態にすることで、より実際の演奏条件に近い音色変化を表現することができる。
【０１２６】
（７）Ｓｅｑｕｅｎｔｉａｌ
上記したＲａｎｄｏｍとは異なり、ノート・オン毎にある決まった順序でトーンを切り換えて発音する。
【０１２７】
例えば、あるフレーズに沿った音程に予め合わせたトーンを順に設定しておくと、ノート・オンによってこれらのトーンを順に発音させることでフレーズが生成される。
【０１２８】
（８）Ｎｏｔｅ  Ｏｎ  Ｔｉｍｅ
ノート・オンしている時間によって、次のノート・オンによって発音するトーンを切り換えるものである。例えば、フルートの音色でノート・オンの時間が一定時間以上であれば、次の音を発音する前に息継ぎが必要であることを模擬するために、息継ぎなしで発音したトーンと息継ぎありで発音したトーンとを切り換えるものである。
【０１２９】
（９）Ｐｉｔｃｈ
直前の楽音と今回の楽音との音程によって、今回の楽音のトーンを切り換えるものである。
【０１３０】
例えば、バイオリンの音色において、直前の楽音と今回の楽音との音程が設定値以上音程が離れている場合には、ポルタメントをかけて直前の音高をある程度引き継いで発音することで、弦楽器特有の演奏を模擬することができる。
【０１３１】
また、ギターの音色において、直前の楽音と今回の楽音との音程が設定値以上音程が離れている場合には、フレットを移動するときのノイズを含んだトーンに切り換えることで、実際の演奏を模擬することができる。
【０１３２】
さらに、ホルンの音色において、直前の楽音と今回の楽音との音程が設定値以上音程が離れている場合には、パラメータの制御を上記したＲａｎｄｏｍに対して行い、失敗したトーンに切り換えられるようにすることで、実際の演奏を模擬することができる。
【０１３３】
（１０）Ｔｅｍｐｏ
他の関数と組み合わせて、テンポに応じてパラメータを変化させるようにするものである。
【０１３４】
例えば、上記したＲａｎｄｏｍと組み合わせて、テンポが速くなると失敗する確率が高くなうようにすることができる。
【０１３５】
（１１）Ｈｉｓｔｏｒｙ
他の関数の上流に接続して下流の関数の動作を記憶し、これに基づいて下流の関数のそれ以後の動作に影響を与えるものである。
【０１３６】
例えば、上記したＲａｎｄｏｍを使用してある確率で失敗音を発音する場合、Ｒａｎｄｏｍが失敗音を発音させたときにその旨の情報をＲａｎｄｏｍからＨｉｓｔｏｒｙに渡し、Ｈｉｓｔｏｒｙはそれに基づいてＲａｎｄｏｍのそれ以後の失敗音の発音を抑制する。これにより、Ｒａｎｄｏｍではその次の発音では無条件に成功音を発音したり、次の発音からしばらくの間は失敗音の発音の確率を下げたりするようにする。
【０１３７】
演奏者による実際の演奏では、失敗音を発音した後には、次からは失敗音を出さないようにしようとする心理が働き、それ以後はなかなか失敗音を出さないようになる。Ｈｉｓｔｏｒｙを使うことで、このような実際の演奏をよりリアルに模擬することができる。
【０１３８】
また、上記した各関数については、「抑制出力」を設定するようにしてもよい。ここで、「抑制出力」とは、トーンや他の関数に対して停止命令を送るものである。停止命令を受け取ったトーンではＭＩＤＩメッセージを受け取っても発音しなくなり、また停止命令を受け取った関数では無条件にＭＩＤＩメッセージの送出を停止する。ＭＩＤＩメッセージの流れが複数あり、こうした複数の流れに優先順位を持たせたい場合に「抑制出力」を使用する。即ち、ある関数（関数１）からの「抑制出力」を他の関数（関数２）に入力することで、ＭＩＤＩメッセージの出力について「抑制出力」を行ったある関数（関数１）の方が優先されることになる（図１５参照）。
【０１３９】
つまり、図１５において、ＭＩＤＩメッセージを関数１と関数２とで別々に処理する場合に、関数１の処理の方に優先順位を持たせたいときには、関数１から抑制出力を関数２に送るようにすればよい。
【０１４０】
また、ある関数が「抑制出力」を出力する条件としては、例えば、当該関数がトーンへＭＩＤＩメッセージを出力するための条件と同一の条件とすることができる。
【０１４１】
なお、上記した実施の形態においては、ＧＵＩ環境でユーザーが関数も関数とトーンとの接続も自由に設定できるようになされているが、何れか一方が予め決められていてもよいことは勿論である。
【０１４２】
また、上記した実施の形態においては、外部から入力されたＭＩＤＩメッセージによって楽音の発音を行うようにしたが、もちろんＭＩＤＩメッセージ以外の演奏情報によって発音を行うようにしてもよく、電子楽器自身に備えられている鍵盤からの演奏情報によって発音を行うようにしてもよい。
【０１４３】
また、上記した実施の形態においては、関数に入力された演奏情報と関数から出力される演奏情報とは同じものとしたが、各関数内で入力された演奏情報の内容に変更を加えて出力するようにしてもよい。例えば、入力されたノート・オンのキー・ナンバーに変更を加えることにより、音高が１オクターブずれた楽音を発音させたり、入力された演奏情報のノート・ベロシティと出力する演奏情報のノート・ベロシティとの関係を規定するテーブルを設けて、このテーブルを参照することによりノート・ベロシティに変更を加えるようにして、ノート・ベロシティの変化特性を変えるようにしてもよい。
【０１４４】
また、上記した実施の形態においては、関数に複数のトーン発生手段を接続し、関数はいずれのトーン発生手段に演奏情報を供給するかを決定するようにしているが、関数はトーン発生手段に演奏情報を供給するか否かを決定するようにしてもよい。この場合であっても、複数の関数を組み合わせることにより、いずれかのトーン発生手段からトーンを発生させることが可能である。
【０１４５】
また、上記した実施の形態においては、各トーンの楽音を発音する複数のトーン発生手段を設け、あるトーンを発音させる場合にはそのトーンに対応するトーン発生手段に演奏情報を出力するようになされているが、トーン発生手段にいずれのトーンの楽音を発音させるかの指示を出すようにし、同時に発音されることがないトーンに関しては、共通のトーン発生手段を用いて発音するようにしてもよい。あるいはまた、トーン発生手段に対して、所謂、アサイン処理を施すようにしてもよい。即ち、いずれのトーン発生手段がいずれのトーンを発音するかを固定的に決めず、ノート・オン・メッセージを受信したときに、スクリプトでそのノート・オン・メッセージに応じて発音が指示されるトーンと同数のトーン発生手段を所定の優先順位に従って選択し（前述の図１２に示すスクリプトの場合には、１つのトーンのみの発音が指示される。）、そのトーン発生手段にスクリプトで発音が指示されるトーンのパラメータを供給して発音指示を出す。
【０１４６】
また、上記した実施の形態においては、トーン発生手段に発音の指示を出すか否かで発音するか否かを制御しているが、これ以外の方法で発音の制御を行ってもよい。例えば、全てのトーンに発音の指示を出すが、発音させないトーン発生手段に関しては、音量を「０」とする旨の音量制御情報を同時に出すようにすればよい。
【０１４７】
また、上記した実施の形態においては、関数の１つの出力ポートには１つの関数あるいはトーンのみを接続する例について説明したが、１つの出力ポートに複数の関数あるいはトーン、あるいは関数およびトーンを接続するようにしてもよい。
【０１４８】
また、上記した実施の形態においては、２つの出力ポートのうち同時にはいずれか一方にのみ演奏情報を出力する関数について中心に説明したが、前述したＫｅｙ  ＬａｙｅｒやＶｅｌｏｃｉｔｙ  Ｍｉｘなどのように、複数の出力ポートに同時に演奏情報を出力する関数を備えるようにしてもよい。
【０１４９】
【発明の効果】
本発明は、以上説明したように構成されているので、音色を構成する際に必要とされるトーンの振る舞い、即ち、トーンをどのように使用するかを、音色毎に任意に設定することができるようになり、このため、従来全音色共通で固定化されていた演奏表現の変化を表すためのパラメータの構成を自由に設定することができるようになるという優れた効果を奏する。
【図面の簡単な説明】
【図１】トーン発生手段の構成の一例を示すブロック図である。
【図２】最大４つのトーン（Ｔｏｎｅ１、Ｔｏｎｅ２、Ｔｏｎｅ３およびＴｏｎｅ４）を使用して１つの音色を構成する際の１音色分のパラメータ領域の例を示す説明図である。
【図３】本発明による電子楽器のブロック構成図である。
【図４】スクリプトを作成する処理におけるディスプレイ装置の起動画面を示す説明図である。
【図５】スクリプトを作成する処理におけるディスプレイ装置のトーン選択画面の一例を示す説明図である。
【図６】スクリプトを作成する処理における選択されたトーンがアイコンで表示された状態のディスプレイ装置の画面の一例を示す説明図である。
【図７】スクリプトを作成する処理におけるディスプレイ装置の関数選択画面の一例を示す説明図である。
【図８】スクリプトを作成する処理における選択された関数がアイコンで表示された状態のディスプレイ装置の画面の一例を示す説明図である。
【図９】スクリプトを作成する処理における関数の出力ポートとトーンとを接続した状態のディスプレイ装置の画面の一例を示す説明図である。
【図１０】スクリプトを作成する処理におけるディスプレイ装置のパラメータ設定画面の一例を示す説明図である。
【図１１】ＧＵＩ環境で設定されたスクリプトを変換したコードの一例を示す説明図である。
【図１２】図１１におけるコードに示されるスクリプトを図表的に表す説明図である。
【図１３】ＭＩＤＩメッセージの処理のルーチンを示すフローチャートである。
【図１４】トーンに関するメモリ管理の概念図である。
【図１５】「抑制出力」に関する概念図である。
【符号の説明】
１０      ＣＰＵ
１２      バス
１４      プログラムＲＯＭ
１６      ＲＡＭ
１８      操作パネル部
２０      ＭＩＤＩ入力部
２４      波形ＲＯＭ
２６      楽音発生回路
２８      デジタル・アナログ変換部
３０      増幅回路
３２      スピーカー
【図１】
0003815583.tif 000002
【図２】
0003815583.tif 000003
【図３】
0003815583.tif 000004
【図４】
0003815583.tif 000005
【図５】
0003815583.tif 000006
【図６】
0003815583.tif 000007
【図７】
0003815583.tif 000008
【図８】
0003815583.tif 000009
【図９】
0003815583.tif 000010
【図１０】
0003815583.tif 000011
【図１１】
0003815583.tif 000012
【図１２】
0003815583.tif 000013
【図１３】
0003815583.tif 000014
【図１４】
0003815583.tif 000015
【図１５】
0003815583.tif 000016