(57)【要約】【課題】  必要とされるダイナミックレンジに満たないボリュームを用いた場合でも必要十分な音量制御が可能な音量制御装置を実現する。【解決手段】  波形レベル（波形振幅）が異なる４種類の波形データＷａｖｅを、音量パラメータｖｏｌの変化幅に対応付けて予め設けておき、押鍵毎にベロシティＫＶｅｌとユーザ設定されるパートボリュームＰＶｏｌ［０］との乗算で求まる音量パラメータｖｏｌの値に応じて、波形データＷａｖｅ１〜４のいずれかを選択し、選択した波形データＷａｖｅと、それに対応する音量パラメータｖｏｌをスケール変換した音量制御値ｖｏｌ（レジスタｖｏｌ）とを音源７に設定して音量制御するので、必要とされるダイナミックレンジに満たないボリュームを用いた場合でも必要十分な音量制御を行うことができる。【選択図】  図６
2006163230.tif 000002
【特許請求の範囲】
【請求項１】
波形振幅が異なる複数種の波形データを記憶する波形データ記憶手段と、
音量制御値を発生する音量制御値発生手段と、
前記波形データ記憶手段に記憶される複数種の波形データの内から前記音量制御値発生手段が発生する音量制御値に対応する波形振幅の波形データを選択する波形選択手段と、
前記波形選択手段により選択された波形データの波形振幅に応じてレベル調整される音量制御値に従って当該波形データの再生音量を制御する音量制御手段と
を具備することを特徴とする音量制御装置。
【請求項２】
波形振幅の異なる複数種の波形データを音量制御値に対応付けて記憶する波形データ記憶手段と、
ボリューム操作で設定される第１の音量値に、発音毎に変化する第２の音量値を乗算してなる音量制御値を発生する音量制御値発生手段と、
前記波形データ記憶手段に記憶される複数種の波形データの内から前記音量制御値発生手段が発生する音量制御値に対応付けられた波形振幅の波形データを選択する波形選択手段と、
前記波形選択手段により選択された波形データの波形振幅に対応してスケール変換される音量制御値に従って当該波形データの再生音量を制御する音量制御手段と
を具備することを特徴とする音量制御装置。
【請求項３】
入力波形信号をサンプリングし、音量制御値毎に波形振幅の異なる複数種の波形データを生成するサンプリング手段をさらに備えることを特徴とする請求項２記載の音量制御装置。
【請求項４】
波形振幅の異なる複数種の波形データを音量制御値に対応付けて記憶する波形データ記憶手段と、
ボリューム操作で設定される第１の音量値に、発音中に可変する第２の音量値を乗算してなる音量制御値を発生する音量制御値発生手段と、
前記波形データ記憶手段に記憶される複数種の波形データの内から前記音量制御値発生手段が発生する音量制御値に対応付けられた波形振幅の波形データを選択する波形選択手段と、
前記波形選択手段により選択された波形データの波形振幅に対応してスケール変換される音量制御値に従って当該波形データの再生音量を制御する音量制御手段と、
前記第２の音量値に対応した音量制御値の変化に伴い、前記波形選択手段が第１の波形データから第２の波形データに切替える際に、第１の波形データから第２の波形データにクロスフェードさせて波形形成する波形形成手段と
を具備することを特徴とする音量制御装置。
【請求項５】
音量制御値を発生する音量制御値発生処理と、
波形振幅が異なる複数種の波形データの内から前記音量制御値発生処理にて生成される音量制御値に対応した波形振幅の波形データを選択する波形選択処理と、
前記波形選択処理にて選択された波形データの波形振幅に応じてレベル調整される音量制御値に従って当該波形データの再生音量を制御する音量制御処理と
をコンピュータで実行させることを特徴とする音量制御処理プログラム。
【請求項６】
波形振幅の異なる複数種の波形データを音量制御値に対応付けて記憶する波形データ記憶処理と、
ボリューム操作で設定される第１の音量値に、発音毎に変化する第２の音量値を乗算してなる音量制御値を発生する音量制御値発生処理と、
前記波形データ記憶処理にて記憶される複数種の波形データの内から前記音量制御値発生処理が発生する音量制御値に対応付けられた波形振幅の波形データを選択する波形選択処理と、
前記波形選択処理にて選択された波形データの波形振幅に対応してスケール変換される音量制御値に従って当該波形データの再生音量を制御する音量制御処理と
をコンピュータで実行させることを特徴とする音量制御処理プログラム。
【請求項７】
入力波形信号をサンプリングし、音量制御値毎に波形振幅の異なる複数種の波形データを生成するサンプリング処理をさらに備えることを特徴とする請求項６記載の音量制御処理プログラム。
【請求項８】
波形振幅の異なる複数種の波形データを音量制御値に対応付けて記憶する波形データ記憶処理と、
ボリューム操作で設定される第１の音量値に、発音中に可変する第２の音量値を乗算してなる音量制御値を発生する音量制御値発生処理と、
前記波形データ記憶処理にて記憶される複数種の波形データの内から前記音量制御値発生処理が発生する音量制御値に対応付けられた波形振幅の波形データを選択する波形選択処理と、
前記波形選択処理により選択された波形データの波形振幅に対応してスケール変換される音量制御値に従って当該波形データの再生音量を制御する音量制御処理と、
前記第２の音量値に対応した音量制御値の変化に伴い、前記波形選択処理が第１の波形データから第２の波形データに切替える際に、第１の波形データから第２の波形データにクロスフェードさせて波形形成する波形形成処理と
をコンピュータで実行させることを特徴とする音量制御処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽器の音源に用いて好適な音量制御装置および音量制御処理プログラムに関する。
【背景技術】
【０００２】
昨今の電子楽器では、マルチティンバー化やイニシャル／アフタタッチ検出機構を備えた鍵盤の普及などにより、マスターボリュームやベロシティの他、アフタタッチ、音量エンベロープあるいは音色毎の音量を決めるパートボリューム等の複数の音量制御パラメータが存在しており、これら音量制御パラメータ同士を乗算することによって発生すべき楽音の音量を制御するようになっている。
この種の技術として、例えば特許文献１には、発生音量を調節するマスターボリュームの位置（又は値）に応じて、タッチ情報（ベロシティ）に対応して変化する楽音のダイナミックレンジあるいは周波数特性を制御し、弱いタッチで弾いても適切な音量や音色の楽音を発生可能にした電子楽器が開示されている。
【０００３】
【特許文献１】特開平１０−１３３６６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、音量制御パラメータ毎にボリュームを備える構成にすると、必然的にボリュームの数が多くなり製品コスト高を招致する要因になる。そこで、廉価な電子楽器では、ボリュームの数を減らすべく、ボリューム１つで複数の音量制御パラメータを制御する必要が生じる。具体的には、７ビットの分解能を有する２つの音量制御パラメータで音量制御する場合、１４ビット幅のダイナミックレンジが必要になるが、これを最小限の分解能（例えば７ビット）のボリューム１つで対応させようとすると、必要とされるダイナミックレンジが確保されず、必要十分な音量制御を行うことが出来ない、という問題が生じる。
【０００５】
そこで本発明は、このような事情に鑑みてなされたもので、必要とされるダイナミックレンジに満たないボリュームを用いた場合でも必要十分な音量制御を行うことが出来る音量制御装置および音量制御処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、請求項１に記載の発明では、波形振幅が異なる複数種の波形データを記憶する波形データ記憶手段と、音量制御値を発生する音量制御値発生手段と、前記波形データ記憶手段に記憶される複数種の波形データの内から前記音量制御値発生手段が発生する音量制御値に対応する波形振幅の波形データを選択する波形選択手段と、前記波形選択手段により選択された波形データの波形振幅に応じてレベル調整される音量制御値に従って当該波形データの再生音量を制御する音量制御手段とを具備することを特徴とする。
【０００７】
請求項２に記載の発明では、波形振幅の異なる複数種の波形データを音量制御値に対応付けて記憶する波形データ記憶手段と、ボリューム操作で設定される第１の音量値に、発音毎に変化する第２の音量値を乗算してなる音量制御値を発生する音量制御値発生手段と、前記波形データ記憶手段に記憶される複数種の波形データの内から前記音量制御値発生手段が発生する音量制御値に対応付けられた波形振幅の波形データを選択する波形選択手段と、前記波形選択手段により選択された波形データの波形振幅に対応してスケール変換される音量制御値に従って当該波形データの再生音量を制御する音量制御手段とを具備することを特徴とする。
【０００８】
上記請求項２に従属する請求項３に記載の発明では、入力波形信号をサンプリングし、音量制御値毎に波形振幅の異なる複数種の波形データを生成するサンプリング手段をさらに備えることを特徴とする。
【０００９】
請求項４に記載の発明では、波形振幅の異なる複数種の波形データを音量制御値に対応付けて記憶する波形データ記憶手段と、ボリューム操作で設定される第１の音量値に、発音中に可変する第２の音量値を乗算してなる音量制御値を発生する音量制御値発生手段と、前記波形データ記憶手段に記憶される複数種の波形データの内から前記音量制御値発生手段が発生する音量制御値に対応付けられた波形振幅の波形データを選択する波形選択手段と、前記波形選択手段により選択された波形データの波形振幅に対応してスケール変換される音量制御値に従って当該波形データの再生音量を制御する音量制御手段と、前記第２の音量値に対応した音量制御値の変化に伴い、前記波形選択手段が第１の波形データから第２の波形データに切替える際に、第１の波形データから第２の波形データにクロスフェードさせて波形形成する波形形成手段とを具備することを特徴とする。
【００１０】
請求項５に記載の発明では、音量制御値を発生する音量制御値発生処理と、波形振幅が異なる複数種の波形データの内から前記音量制御値発生処理にて生成される音量制御値に対応した波形振幅の波形データを選択する波形選択処理と、前記波形選択処理にて選択された波形データの波形振幅に応じてレベル調整される音量制御値に従って当該波形データの再生音量を制御する音量制御処理とをコンピュータで実行させることを特徴とする。
【００１１】
請求項６に記載の発明では、波形振幅の異なる複数種の波形データを音量制御値に対応付けて記憶する波形データ記憶処理と、ボリューム操作で設定される第１の音量値に、発音毎に変化する第２の音量値を乗算してなる音量制御値を発生する音量制御値発生処理と、前記波形データ記憶処理にて記憶される複数種の波形データの内から前記音量制御値発生処理が発生する音量制御値に対応付けられた波形振幅の波形データを選択する波形選択処理と、前記波形選択処理にて選択された波形データの波形振幅に対応してスケール変換される音量制御値に従って当該波形データの再生音量を制御する音量制御処理とをコンピュータで実行させることを特徴とする。
【００１２】
上記請求項６に従属する請求項７に記載の発明では、入力波形信号をサンプリングし、音量制御値毎に波形振幅の異なる複数種の波形データを生成するサンプリング処理をさらに備えることを特徴とする。
【００１３】
請求項８に記載の発明では、波形振幅の異なる複数種の波形データを音量制御値に対応付けて記憶する波形データ記憶処理と、ボリューム操作で設定される第１の音量値に、発音中に可変する第２の音量値を乗算してなる音量制御値を発生する音量制御値発生処理と、前記波形データ記憶処理にて記憶される複数種の波形データの内から前記音量制御値発生処理が発生する音量制御値に対応付けられた波形振幅の波形データを選択する波形選択処理と、前記波形選択処理により選択された波形データの波形振幅に対応してスケール変換される音量制御値に従って当該波形データの再生音量を制御する音量制御処理と、前記第２の音量値に対応した音量制御値の変化に伴い、前記波形選択処理が第１の波形データから第２の波形データに切替える際に、第１の波形データから第２の波形データにクロスフェードさせて波形形成する波形形成処理とをコンピュータで実行させることを特徴とする。
【発明の効果】
【００１４】
請求項１、５に記載の発明によれば、波形振幅が異なる複数種の波形データの内から音量制御値に対応する波形振幅の波形データを選択し、選択した波形データの波形振幅に応じてレベル調整される音量制御値に従って当該波形データの再生音量を制御するので、必要とされるダイナミックレンジに満たないボリュームを用いた場合でも必要十分な音量制御を行うことができる。
【００１５】
請求項２、６に記載の発明によれば、波形振幅の異なる複数種の波形データを音量制御値に対応付けて記憶しておき、ボリューム操作で設定される第１の音量値に、発音毎に変化する第２の音量値を乗算してなる音量制御値を発生すると、上記複数種の波形データの内から音量制御値に対応付けられた波形振幅の波形データを選択し、選択した波形データの波形振幅に対応してスケール変換される音量制御値に従って当該波形データの再生音量を制御するので、必要とされるダイナミックレンジに満たないボリュームを用いた場合でも必要十分な音量制御を行うことができる。
【００１６】
請求項４、８に記載の発明によれば、波形振幅の異なる複数種の波形データを音量制御値に対応付けて記憶しておき、ボリューム操作で設定される第１の音量値に、発音中に可変する第２の音量値を乗算してなる音量制御値を発生すると、上記複数種の波形データの内から音量制御値に対応付けられた波形振幅の波形データを選択し、選択した波形データの波形振幅に対応してスケール変換される音量制御値に従って当該波形データの再生音量を制御するので、必要とされるダイナミックレンジに満たないボリュームを用いた場合でも必要十分な音量制御を行うことができる。
また、第２の音量値に対応した音量制御値の変化に伴って第１の波形データから第２の波形データに切替える際に、第１の波形データから第２の波形データにクロスフェードさせて波形形成する為、音量変化に伴う波形不連続を回避することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の実施の形態について説明する。
［第１実施形態］
Ａ．構成
（１）全体構成
図１は、第１実施形態による電子楽器の全体構成を示すブロック図である。この図において、鍵盤１は、押離鍵操作（演奏操作）に応じたキーオン／キーオフ信号およびキー番号、ベロシティ等からなる演奏データを発生する。スイッチ部２は、楽器パネルに配設される各種スイッチを備え、操作されるスイッチ種に応じたスイッチイベントを発生する。また、スイッチ部２は、後述するマスターボリュームＭＶｏｌおよびパートボリュームＰＶｏｌ［０］〜［ＮＰ−１］を設定するボリューム操作子を備える。ＲＯＭ３は、ＣＰＵ６にロードされる各種制御プログラムを記憶する。ここで言う各種制御プログラムとは、後述のメインルーチン、発音処理およびサンプリング処理を含む。
【００１８】
ＲＡＭ４は、ワークエリアおよびデータエリアを備える。ＲＡＭ４のワークエリアには、ＣＰＵ６の処理に用いられる各種レジスタ・フラグデータが一時記憶される。ＲＡＭ４のデータエリアには、後述のサンプリングモード下でサンプリングされる波形データが記憶される。
ここで、図２を参照してＲＡＭ４のワークエリアに設けられる主要レジスタ構成について説明する。図２において、レジスタＭＶｏｌには、発生楽音全体の音量を制御するマスターボリュームがストアされる。以後、レジスタＭＶｏｌにストアされる値をマスターボリュームＭＶｏｌと記す。マスターボリュームＭＶｏｌは、音源７の乗算器７２（後述する）に供給される。
【００１９】
レジスタＰＶｏｌ［０］〜［ＮＰ−１］には、それぞれ各演奏パート（音色）毎の音量を制御するパートボリュームがストアされる。以後、レジスタＰＶｏｌ［０］〜［ＮＰ−１］にそれぞれ格納される値をパートボリュームＰＶｏｌ［０］〜［ＮＰ−１］と記す。レジスタＫＮｏｔｅは、押鍵操作に応じて鍵盤１が発生するキー番号をストアする。以後、レジスタＫＮｏｔｅの値をキー番号ＫＮｏｔｅと記す。レジスタＫＶｅｌは、押鍵操作に応じて鍵盤１が発生するベロシティをストアする。以後、レジスタＫＶｅｌの値をベロシティＫＶｅｌと記す。
【００２０】
さて、再び図１を参照して第１実施形態の構成について説明を進める。図１において、ＭＩＤＩインタフェース５は、ＣＰＵ６の制御の下に、外部ＭＩＤＩ機器とＭＩＤＩデータを授受する。ＣＰＵ６は、演奏モードおよびサンプリングモードを備える。演奏モードでは、鍵盤１の押離鍵操作に応じて発生する演奏データに応じた楽音パラメータ（発音／消音コマンド等）を発生して音源７に供給する。一方、サンプリングモードでは、マイク１０およびＡ／Ｄ変換器１１を介してサンプリングされる波形データをＲＡＭ４のデータエリアに格納する。
【００２１】
音源７は、周知の波形メモリ読み出し方式にて構成され、ＣＰＵ６から供給される楽音パラメータに従って楽音波形を発生する。音源７の詳細な構成については追って述べる。Ｄ／Ａ変換器８は、音源７が出力する楽音波形をアナログ波形信号に変換して出力する。サウンドシステム９は、Ｄ／Ａ変換器８から供給されるアナログ波形信号から不要ノイズを除去する等のフィルタリングを施した後、これを増幅してスピーカから放音させる。表示部１２は、ＬＣＤパネル等から構成され、ＣＰＵ６から供給される表示制御信号に応じて楽器各部の設定状態（例えば、マスターボリュームＭＶｏｌおよびパートボリュームＰＶｏｌ［０］〜［ＮＰ−１］の各設定値）や動作モード等を表示する。
【００２２】
（２）音源７の構成
次に、図３を参照して音源７の構成を説明する。音源７は、各演奏パート（音色）が割当てられるオシレータ７０−１〜７０−ｎと、これらオシレータ７０−１〜７０−ｎの各出力を混合するミキサ７１と、ミキサ７１の出力にマスターボリュームＭＶｏｌを乗算して音量制御する乗算器７２とを備える。
１つのオシレータ７０は、波形発生器７０ａ、エンベロープ発生器７０ｂおよび乗算器７０ｃから構成される。波形発生器７０ａは、図４に図示するように、波形レベル（波形振幅）が異なる４種類の波形データＷａｖｅ１〜４を記憶しておき、これらの内、ＣＰＵ６が選択する種類の波形データＷａｖｅを、当該ＣＰＵ６から供給される楽音パラメータ（発音／消音コマンド等）に従って読み出して波形出力する。
【００２３】
なお、後述するように、ＣＰＵ６では、ベロシティＫＶｅｌとパートボリュームＰＶｏｌとを乗算してなる音量パラメータｖｏｌに応じて、波形データＷａｖｅ１〜４のいずれかを選択する。
具体的には、音量パラメータｖｏｌが「０ｘ１０００〜０ｘ３ＦＦＦ（１６進表示）」の音量範囲に対応する場合に、１６ビット長の波形データＷａｖｅ１が選択される。音量パラメータｖｏｌが「０ｘ０４００〜０ｘ０ＦＦＦ」の音量範囲に対応する場合に、１４ビット長の波形データＷａｖｅ２が選択される。音量パラメータｖｏｌが「０ｘ０１００〜０ｘ０３ＦＦ」の音量範囲に対応する場合に、１２ビット長の波形データＷａｖｅ３が選択される。音量パラメータｖｏｌが「０ｘ００００〜０ｘ００ＦＦ」の音量範囲に対応する場合に、１０ビット長の波形データＷａｖｅ４が選択される。
【００２４】
エンベロープ発生器７０ｂは、ＣＰＵ６から供給されるＥＧパラメータに対応した形状のエンベロープ波形を生成し、それを波形発生器７０ａの波形出力に乗算して楽音波形を発生させる。乗算器７０ｃは、エンベロープ発生器７０ｂから出力される楽音波形に、音量パラメータｖｏｌを７ビット幅にスケール変換したものを乗算して音量制御する。
このように、１つのオシレータ７０では、音量パラメータｖｏｌに対応して波形レベルが異なる波形データＷａｖｅを選択することで実質的に第１の音量制御が行われ、さらに音量パラメータｖｏｌに基づき第２の音量制御を行うので、必要とされるダイナミックレンジに満たないボリュームを用いた場合でも必要十分な音量制御を行うことが可能になっている。
【００２５】
ところで、本実施の形態では、説明の簡略化を図る為、音量パラメータｖｏｌに対応して波形振幅が異なる４種類の波形データＷａｖｅを選択する態様としているが、これに替えて、例えば波形振幅が異なる１２７種類（７ビット対応）の波形データＷａｖｅを波形発生器７０ａに記憶しておくようにしてもよい。
【００２６】
Ｂ．動作
次に、図５〜図８を参照して第１実施形態の動作について説明する。以下では、最初に概略動作としてメインルーチンの動作を説明した後、続いてメインルーチンからコールされる発音処理およびサンプリング処理の各動作について述べる。
【００２７】
（１）メインルーチンの動作
上記構成による電子楽器に電源が投入されると、ＣＰＵ６は図５に示すメインルーチンを実行し、ステップＳＡ１に処理を進め、ＲＡＭ４のワークエリアに格納される各種レジスタやフラグをリセットしたり、初期値をセットするイニシャライズ処理を行う。また、このステップＳＡ１では、音源７に対して各種レジスタやフラグ類を初期化するよう指示する。そして、イニシャライズ完了後、ステップＳＡ２に処理を進め、スイッチ部２が発生するスイッチイベントに対応した処理や、ボリューム操作子の操作に対応してマスターボリュームＭＶｏｌおよびパートボリュームＰＶｏｌ［０］〜［ＮＰ−１］を設定するスイッチ処理を実行する。
【００２８】
続いて、ステップＳＡ３では、鍵盤１の押離鍵操作に応じて発生する演奏データに従って音源７に発音／消音等を指示するための楽音パラメータを発生させる鍵盤処理を実行する。また、この鍵盤処理では、押鍵時に発生する演奏データ中のキー番号とベロシティとを、それぞれレジスタＫＮｏｔｅ（キー番号ＫＮｏｔｅ）とレジスタＫＶｅｌ（ベロシティＫＶｅｌ）とにストアする。
次いで、ステップＳＡ４では、押鍵毎に生成されるベロシティＫＶｅｌとユーザ設定されるパートボリュームＰＶｏｌ［０］とを乗算して得た音量パラメータｖｏｌの値に応じた波形データＷａｖｅ１〜４を選択し、選択した波形データＷａｖｅと、それに対応させて音量パラメータｖｏｌをスケール変換した音量制御値ｖｏｌ（レジスタｖｏｌ）とを音源７に設定する発音処理を実行する。
なお、本実施形態では、鍵盤操作に基づく発音／消音等を、パート番号０のパートで行うものとする。
【００２９】
そして、ステップＳＡ５では、後述するサンプリング処理などの、その他の処理を実行後、上述のステップＳＡ２に処理を戻す。これ以後、パワーオフされるまでステップＳＡ２〜ＳＡ５を繰り返す。
なお、ステップＳＡ５におけるその他の処理では、後述するサンプリング処理の他、ＭＩＤＩ処理を実行する。ＭＩＤＩ処理では、ＭＩＤＩインタフェース５を介して外部ＭＩＤＩ機器から入力されるＭＩＤＩデータからノートオンイベントに含まれるキー番号およびベロシティを抽出して、上述のレジスタＫＮｏｔｅ、レジスタＫＶｅｌにストアすることによって自動演奏させる態様も可能である。
【００３０】
（２）発音処理の動作
次に、図６〜図７を参照して発音処理の動作を説明する。なお、以下では説明の簡略化を図る為、音源７がパート番号０のパートに関してはオシレータ７０−１のみを使用するものとして、モノフォニック発音する場合に対応させた処理動作について述べる。
上述したメインルーチンのステップＳＡ４（図５参照）を介して本処理が実行されると、図６に図示するステップＳＢ１に進み、キー番号ＫＮｏｔｅが「−１」でないか否か、つまり押鍵されたかどうかを判断する。押鍵されていない場合には、判断結果が「ＮＯ」になり、ステップＳＢ９に進み、離鍵された鍵に対応する楽音の消音を音源７に指示する消音処理を実行した後、本処理を終える。
【００３１】
一方、押鍵時には、上記ステップＳＢ１の判断結果が「ＹＥＳ」になり、ステップＳＢ２に進む。ステップＳＢ２では、ベロシティＫＶｅｌとパートボリュームＰＶｏｌ［０］とを乗算して音量パラメータｖｏｌを発生する。ここで、ベロシティＫＶｅｌとパートボリュームＰＶｏｌ［０］とは、各々７ビット長のデータなので、音量パラメータｖｏｌは１４ビット長のデータとなる。
続いて、ステップＳＢ３〜ＳＢ７では、音量パラメータｖｏｌの値に応じた波形データＷａｖｅ１〜４を選択すると共に、選択した波形データＷａｖｅ１〜４に対応させて音量パラメータｖｏｌをビットシフトさせ、スケール変換した音量制御値ｖｏｌ（レジスタｖｏｌ）を発生する。
【００３２】
すなわち、音量パラメータｖｏｌが「０ｘ０ＦＦＦ」より大きければ、ステップＳＢ４に進み、波形データＷａｖｅ１を選択すべくレジスタＷａｖｅに波形番号「１」をセットすると共に、１４ビット長の音量パラメータｖｏｌを７ビットシフトさせ、その上位７ビットを音量制御値ｖｏｌとしてレジスタｖｏｌにストアする。
音量パラメータｖｏｌが「０ｘ０４００〜０ｘ０ＦＦＦ」の範囲内であると、ステップＳＢ５に進み、波形データＷａｖｅ２を選択すべくレジスタＷａｖｅに波形番号「２」をセットすると共に、１４ビット長の音量パラメータｖｏｌを５ビットシフトさせ、その上位７ビットを音量制御値ｖｏｌとしてレジスタｖｏｌにストアする。
【００３３】
音量パラメータｖｏｌが「０ｘ０１００〜０ｘ０３ＦＦ」の範囲内であれば、ステップＳＢ６に進み、波形データＷａｖｅ３を選択すべくレジスタＷａｖｅに波形番号「３」をセットすると共に、１４ビット長の音量パラメータｖｏｌを３ビットシフトさせ、その上位７ビットを音量制御値ｖｏｌとしてレジスタｖｏｌにストアする。
音量パラメータｖｏｌが「０ｘ００ＦＦ」以下であると、ステップＳＢ７に進み、波形データＷａｖｅ４を選択すべくレジスタＷａｖｅに波形番号「４」をセットすると共に、１４ビット長の音量パラメータｖｏｌを１ビットシフトさせ、その上位７ビットを音量制御値ｖｏｌとしてレジスタｖｏｌにストアする。
これにより、図７に図示するように、選択した波形データＷａｖｅ１〜４に対応させて音量パラメータｖｏｌをスケール変換した音量制御値ｖｏｌ（レジスタｖｏｌ）が得られる。
【００３４】
そして、ステップＳＢ８では、音源７のオシレータ７０−１を確保し、当該オシレータ７０−１が備える乗算器７０ｃにレジスタｖｏｌを乗算係数としてセットする。さらに、レジスタＷａｖｅに格納される波形番号で指定される波形データの、キー番号ＫＮｏｔｅに対応した読み出し速度での読み出しを音源７に指示した後、キー番号ＫＮｏｔｅを「−１」にセットする。
これにより、音源７では、ＣＰＵ６が指定する波形データを、押鍵された鍵のキー番号ＫＮｏｔｅに対応した読み出し速度で再生し、再生した波形データＷａｖｅをレジスタｖｏｌの値に応じて音量制御する。この後、ＣＰＵ６は、ステップＳＢ９に進み、離鍵された鍵の楽音の消音を指示する消音処理を行ってから本処理を終える。
【００３５】
このように、発音処理では、押鍵毎にベロシティＫＶｅｌとユーザ設定されるパートボリュームＰＶｏｌ［０］との乗算で得る音量パラメータｖｏｌの値に応じて、４種類の波形データＷａｖｅ１〜４の内のいずれかを選択し、選択した波形データＷａｖｅと、それに対応させて音量パラメータｖｏｌをスケール変換した音量制御値ｖｏｌ（レジスタｖｏｌ）とを音源７に設定するようになっている。
【００３６】
（３）サンプリング処理の動作
次に、図８を参照してサンプリング処理の動作を説明する。ＣＰＵ６の動作モードがサンプリングモードに設定されている場合、図５に図示したその他の処理（ステップＳＡ５）を介して本処理が実行され、図８に図示するステップＳＣ１に進む。ステップＳＣ１では、スイッチ部２に設けられ、波形番号１〜４に対応した４つの指定波形サンプリングスイッチのいずれかのオン操作の有無を判断する。オン操作されなければ、判断結果は「ＮＯ」となり、何もせずに本処理を完了させるが、いずれかがオン操作されると、判断結果が「ＹＥＳ」になり、ステップＳＣ２に進む。
【００３７】
ステップＳＣ２では、オン操作された指定波形サンプリングスイッチで指定される波形番号をレジスタＷａｖｅにストアする一方、レジスタａｄｒに書き込みアドレスをストアする。次いで、ステップＳＣ３では、サンプリングタイミングになるまで待機し、サンプリングタイミングになる毎に、ここでの判断結果が「ＹＥＳ」になり、ステップＳＣ４に進む。ステップＳＣ４では、書き込みアドレスａｄｒに従ってＲＡＭ４のデータエリアにサンプリングした波形データを書き込むと共に、書き込みアドレスａｄｒを歩進させる。
【００３８】
次に、ステップＳＣ５では、停止スイッチがオン操作されるか又はメモリフル状態のいずかに該当するかどうかを判断する。いずれにも該当しない場合には、判断結果が「ＮＯ」となり、ステップＳＣ３に処理を戻す。以後、停止スイッチがオン操作されるか又はメモリフル状態になるまでステップＳＣ３〜ＳＣ５を繰り返し、マイク１０およびＡ／Ｄ変換器にて所定周期毎にサンプリングされる波形データを順次ＲＡＭ４のデータエリアにストアして行く。
【００３９】
そして、停止スイッチがオン操作されるか又はメモリフル状態になると、上記ステップＳＣ５の判断結果が「ＹＥＳ」になり、ステップＳＣ６に進む。ステップＳＣ６では、ＲＡＭ４のデータエリアに格納したサンプリングデータ（一連の波形データ）の内から振幅最大値を検出してレジスタｍａｘにストアする。次いで、ステップＳＣ７〜ＳＣ１１では、レジスタＷａｖｅに格納される波形番号に応じてスケール係数Ａを算出する。
【００４０】
すなわち、レジスタＷａｖｅに格納される波形番号が「１」の場合には、ステップＳＣ８に進み、１６ビットの波形レベル「０ｘＦＦＦＦ」を振幅最大値ｍａｘで除算してスケール係数Ａを算出する。
レジスタＷａｖｅに格納される波形番号が「２」の場合には、ステップＳＣ９に進み、１４ビットの波形レベル「０ｘ３ＦＦＦ」を振幅最大値ｍａｘで除算してスケール係数Ａを算出する。
【００４１】
レジスタＷａｖｅに格納される波形番号が「３」の場合には、ステップＳＣ１０に進み、１２ビットの波形レベル「０ｘ０ＦＦＦ」を振幅最大値ｍａｘで除算してスケール係数Ａを算出する。
レジスタＷａｖｅに格納される波形番号が「４」の場合には、ステップＳＣ１１に進み、１０ビットの波形レベル「０ｘ０３ＦＦ」を振幅最大値ｍａｘで除算してスケール係数Ａを算出する。
【００４２】
そして、ステップＳＣ１２では、算出したスケール係数Ａを、ＲＡＭ４のデータエリアに格納したサンプリングデータ（波形データ）に乗算し、波形番号Ｗａｖｅに対応したスケーリングを施して本処理を完了させる。
このように、波形番号Ｗａｖｅに対応してスケーリングされた波形データを、音源７を構成するオシレータ７０−１〜７０−ｎの各波形発生器７０ａに登録すれば、前述の発音処理（図６参照）に用いることが可能になる。
【００４３】
以上説明したように、第１実施形態では、波形レベル（波形振幅）が異なる４種類の波形データＷａｖｅを、音量パラメータｖｏｌの変化幅に対応付けて予め設けておき、押鍵毎にベロシティＫＶｅｌとユーザ設定されるパートボリュームＰＶｏｌ［０］との乗算で求まる音量パラメータｖｏｌの値に応じて、波形データＷａｖｅ１〜４のいずれかを選択し、選択した波形データＷａｖｅと、それに対応する音量パラメータｖｏｌをスケール変換した音量制御値ｖｏｌ（レジスタｖｏｌ）とを音源７に設定して音量制御するので、必要とされるダイナミックレンジに満たないボリュームを用いた場合でも必要十分な音量制御を行うことが可能になっている。
【００４４】
［第２実施形態］
Ａ．構成
（１）全体構成
図９は、第２実施形態による電子楽器の全体構成を示すブロック図である。この図において、管体部１３は、管楽器を模した筺体に息圧センサ１３ａ（不図示）および音高指定用のキースイッチ１３ｂ（不図示）を備える。息圧センサ１３ａは、圧力センサ等から構成され、ユーザが吹奏する息圧を検出する。キースイッチ１３ｂは、音高指定操作に応じたキー番号を発生する。スイッチ部２は、楽器パネルに配設される各種操作スイッチを備え、操作されるスイッチ種に応じたスイッチイベントを発生する。また、スイッチ部２は、後述するマスターボリュームＭＶｏｌおよびパートボリュームＰＶｏｌ［０］〜［ＮＰ−１］を設定するボリューム操作子を備える。
【００４５】
ＲＯＭ３は、ＣＰＵ６にロードされる各種制御プログラムや音色パラメータデータを記憶する。ここで言う各種制御プログラムとは、後述のメインルーチン、ブレス処理、発音処理、ブレス発音開始処理、ブレス消音処理およびブレス音量変更処理を含む。また、ＲＯＭ３に記憶される音色パラメータの構成については追って述べる。ＲＡＭ４は、ＣＰＵ６のワークエリアとして用いられ、各種レジスタ・フラグデータを一時記憶する。ＲＡＭ４の主要なレジスタ構成については後述する。ＭＩＤＩインタフェース５は、ＣＰＵ６の制御の下に、外部ＭＩＤＩ機器とＭＩＤＩデータを授受する。ＣＰＵ６は、息圧センサ１３ａの出力および音高指定操作されるキースイッチ１３ｂが発生するキー番号に応じた楽音パラメータ（発音／消音コマンド等）を発生して音源７に供給する。
【００４６】
音源７は、周知の波形メモリ読み出し方式にて構成され、ＣＰＵ６から供給される楽音パラメータに従って楽音波形を発生する。音源７の詳細な構成については追って述べる。Ｄ／Ａ変換器８は、音源７が出力する楽音波形をアナログ波形信号に変換して出力する。サウンドシステム９は、Ｄ／Ａ変換器８から供給されるアナログ波形信号から不要ノイズを除去する等のフィルタリングを施した後、これを増幅してスピーカから放音させる。表示部１２は、ＬＣＤパネル等から構成され、ＣＰＵ６から供給される表示制御信号に応じて楽器各部の設定状態（例えば、マスターボリュームＭＶｏｌおよびパートボリュームＰＶｏｌ［０］〜［ＮＰ−１］の各設定値）や動作モード等を表示する。
【００４７】
（２）ＲＯＭ３の構成
次に、図１０を参照してＲＯＭ３に記憶される音色パラメータの構成について説明する。ＲＯＭ３には、Ｎ種の音色パラメータＴＰＲＭ［０］〜［Ｎ−１］が記憶される。１つの音色パラメータＴＰＲＭは、ＮＷ種（本実施形態では４種類の波形データＷａｖｅ１〜４）の波形パラメータＷＰＲＭ［０］〜［ＮＷ−１］を備える。
１つの波形パラメータＷＰＲＭは、波形番号ＷａｖｅＮｕｍ、波形最小音量ＷａｖｅＭｉｎ、波形最大音量ＷａｖｅＭａｘ、ピーク音量ＷａｖｅＰｅａｋ、通常読み出しアドレスＡｄｒｓ［０］およびクロスフェード時読み出しアドレスＡｄｒｓ［１］から構成される。なお、これら各パラメータデータが意図するところについては追って述べる。
【００４８】
（３）ＲＡＭ４の構成
次に、図１１を参照してＲＡＭ４の主要レジスタ構成について説明する。レジスタＭＶｏｌには、発生楽音全体の音量を制御するマスターボリュームがストアされる。以後、レジスタＭＶｏｌにストアされる値をマスターボリュームＭＶｏｌと記す。マスターボリュームＭＶｏｌは、音源７の乗算器７０２（後述する）に供給される。レジスタＰＶｏｌ［０］〜［ＮＰ−１］には、それぞれ各演奏パート（音色）毎の音量を制御するパートボリュームがストアされる。以後、レジスタＰＶｏｌ［０］〜［ＮＰ−１］にそれぞれ格納される値をパートボリュームＰＶｏｌ［０］〜［ＮＰ−１］と記す。
【００４９】
レジスタＰＴｏｎｅ［０］〜［ＮＰ−１］には、それぞれ各演奏パートにアサインされる音色を表す音色番号がストアされる。オシレータアサイン管理データＯｓｃＳｔａｔ［０］〜［ＮＯＳＣ−１］は、音源７が備える各オシレータ７００−１〜７００−ｎの使用状況を表す。値が「０」の場合に未使用を、「１」の場合に使用中を表す。ノート管理データＮＰＲＭ［０］〜［ＮＮ−１］は、音源７のオシレータ７００に割当てるノートを管理するデータである。１つのノート管理データＮＰＲＭは、ノート状態ＮｏｔｅＳｔａｔ、キー番号ｋｅｙおよびオシレータ割当波形番号ＯｓｃＮｕｍ［０］〜［ＮＷ−１］から構成される。
【００５０】
ノート状態ＮｏｔｅＳｔａｔは、「１」の場合に発音中を表し、「０」の場合に停止（消音中）を表す。キー番号ｋｅｙは、ノートオンする楽音の音高を表す。オシレータ割当波形番号ＯｓｃＮｕｍ［０］〜［ＮＷ−１］は、波形振幅が異なるＮＷ種（本実施形態では４種類の波形データＷａｖｅ１〜４）の各波形データが、どのオシレータに割当てられているかをオシレータ番号で表し、いずれのオシレータにも割当てられていない場合には「−１」となる。
【００５１】
イベントリクエストデータＲｅｑは、息圧変化に応じて発生するノートオン／ノートオフイベントを表すデータであり、イベントリクエストＲｅｑＳｔａｔ、キー番号ＲｅｑＫｅｙ、波形読み出しアドレスＲｅｑＡｄｒｓ、息圧ＲｅｑＰｒｅｓｓおよび波形状態ＷａｖｅＳｔａｔ［０］〜［ＮＷ−１］から構成される。イベントリクエストＲｅｑＳｔａｔは、「０」の場合にノートオン、「１」の場合にノートオフ、「２」の場合に音量変更、「−１」の場合に要求無し（イベント無し）をそれぞれ表す。
【００５２】
キー番号ＲｅｑＫｅｙは、発音すべき楽音の音高を表す。波形読み出しアドレスＲｅｑＡｄｒｓは、「０」の場合に波形先頭のアタック部分からの通常波形読み出しを指定し、「１」の場合に持続波形領域からのクロスフェード波形読み出し（後述する）を指定する。息圧ＲｅｑＰｒｅｓｓは、息圧センサ１３ａにより検出される値を表す。波形状態ＷａｖｅＳｔａｔ［０］〜［ＮＷ−１］は、波形振幅が異なるＮＷ種（本実施形態では４種類の波形データＷａｖｅ１〜４）の各波形データの状態として、「０」の場合に発音不必要を、「１」の場合に発音必要を表す。レジスタＰｒｅｓｓは、息圧センサ１３ａが現在検出している息圧（現息圧）を保持する。レジスタＰｒｅｖＰｒｅｓｓは、前回検出した息圧（前息圧）を保持する。
【００５３】
（４）音源７の構成
次に、図１２を参照して第２実施形態による音源７の構成を説明する。音源７は、複数の演奏パート（音色）にアサインされるオシレータ７００−１〜７００−Ｎと、これらオシレータ７００−１〜７００−Ｎの各出力を混合するミキサ７０１と、ミキサ７０１の出力にマスターボリュームＭＶｏｌを乗算して音量制御する乗算器７０２とを備える。
【００５４】
１つのオシレータ７００は、波形発生器７００ａおよび乗算器７００ｂから構成される。波形発生器７００ａは、第１実施形態と同様、図４に図示するように、波形レベルが異なる４種類の波形データＷａｖｅ１〜４を記憶しておき、これらの内、ＣＰＵ６が選択指定する波形データＷａｖｅを、当該ＣＰＵ６から供給される楽音パラメータ（発音／消音コマンド等）に従って読み出して波形出力する。後述するように、ＣＰＵ６では、息圧ＰｒｅｓｓとパートボリュームＰＶｏｌとを乗算してなる音量パラメータｖｏｌに応じて、波形データＷａｖｅ１〜４のいずれかを選択する。
【００５５】
具体的には、音量パラメータｖｏｌが「０ｘ１０００〜０ｘ３ＦＦＦ（１６進表示）」の音量範囲に対応する場合に、１６ビット長の波形データＷａｖｅ１が選択される。音量パラメータｖｏｌが「０ｘ０４００〜０ｘ０ＦＦＦ」の音量範囲に対応する場合に、１４ビット長の波形データＷａｖｅ２が選択される。音量パラメータｖｏｌが「０ｘ０１００〜０ｘ０３ＦＦ」の音量範囲に対応する場合に、１２ビット長の波形データＷａｖｅ３が選択される。音量パラメータｖｏｌが「０ｘ００００〜０ｘ００ＦＦ」の音量範囲に対応する場合に、１０ビット長の波形データＷａｖｅ４が選択される。
【００５６】
また、波形発生器７００ａでは、音量パラメータｖｏｌに応じて出力する波形データを切替える際、ＣＰＵ６の指示に従い、切替え前の波形データと切替え後の波形データとをクロスフェードして出力する。乗算器７００ｂは、波形発生器７００ａが出力する波形データＷａｖｅに音量パラメータｖｏｌを乗算して出力する。
【００５７】
Ｂ．動作
次に、図１３〜図１９を参照して第２実施形態の動作について説明する。以下では、最初に概略動作としてメインルーチンの動作を説明した後、続いてメインルーチンからコールされる発音処理およびサンプリング処理の各動作について述べる。
【００５８】
（１）メインルーチンの動作
上記構成による電子楽器に電源が投入されると、ＣＰＵ６は図１３に示すメインルーチンを実行し、ステップＳＤ１に処理を進め、ＲＡＭ４のワークエリアに格納される各種レジスタやフラグをリセットしたり、初期値をセットするイニシャライズ処理を行う。また、このステップＳＤ１では、音源７に対して各種レジスタやフラグ類を初期化するよう指示する。
【００５９】
そして、イニシャライズ完了後、ステップＳＤ２に処理を進め、スイッチ部２が発生するスイッチイベントに対応した処理や、ボリューム操作子の操作に対応したマスターボリュームＭＶｏｌ、パートボリュームＰＶｏｌ［０］〜［ＮＰ−１］およびレジスタＰＴｏｎｅ［０］〜［ＮＰ−１］を設定するスイッチ処理を実行する。なお、パートボリュームＰＶｏｌ［０］〜［ＮＰ−１］には各演奏パートの音量、レジスタＰＴｏｎｅ［０］〜［ＮＰ−１］には各演奏パートの音色（音色番号）がストアされる。
【００６０】
続いて、ステップＳＤ３では、ブレス処理を実行する。ブレス処理では、後述するように、現息圧Ｐｒｅｓｓを検出し、検出した現息圧Ｐｒｅｓｓと前息圧ＰｒｅｖＰｒｅｓｓとを比較してノートオンイベント、音量変更イベントおよびノートオフイベントのいずれであるかを判定し、判定したイベントに対応した処理データを生成する一方、現息圧ＰｒｅｓｓにパートボリュームＰＶｏｌ［０］を乗算して生成される音量パラメータｖｏｌに対応する波形データＷａｖｅを選択する。
なお、本実施形態では、ブレス検出に基づく発音／消音等を、パート番号０のパートで行うものとする。
【００６１】
次いで、ステップＳＤ４では、イベントリクエストＲｅｑＳｔａｔの値に応じて、「ブレス発音開始処理」、「ブレス消音処理」および「ブレス音量変更処理」のいずれかを実行する発音処理を実行する。
ブレス発音開始処理では、後述するように、停止中かつ未使用のオシレータ７００に発音を割当て、音量パラメータｖｏｌに対応するオシレータボリュームＯＳＣ ｖｏｌｕｍｅを、発音割当てしたオシレータ７００の乗算器７００ｂに与えると共に、音量パラメータｖｏｌに対応して選択される波形データＷａｖｅを先頭から読み出す指示を音源７に与える。
【００６２】
ブレス消音処理では、後述するように、キー番号ＲｅｑＫｅｙの音高の楽音を発音中のオシレータ７００に割当てられている波形データＷａｖｅを検索し、該当する波形データＷａｖｅを未アサイン状態に設定すると同時に、該当するオシレータ７００を未使用状態に設定して波形読み出しを停止させる。
ブレス音量変更処理では、後述するように、現在発音中にあるオシレータ７００に割当てられている波形データＷａｖｅが、音量変化に伴って発音に不必要な波形データＷａｖｅになると、発音中のオシレータ７００を未使用状態に設定して波形読み出しを停止させ、一方、発音に必要な波形データＷａｖｅになれば、その波形データＷａｖｅの発音を未使用のオシレータ７００に割当て、かつ音量パラメータｖｏｌに対応するオシレータボリュームＯＳＣ ｖｏｌｕｍｅを供給して新たに音量制御する。
【００６３】
この後、ステップＳＤ５に進み、例えば前述した第１実施形態と同様に、サンプリング処理（図８参照）などの、その他の処理を実行後、上述のステップＳＤ２に処理を戻す。そして以後、パワーオフされるまでステップＳＤ２〜ＳＤ５を繰り返す。
【００６４】
（３）ブレス処理の動作
次に、図１４を参照してブレス処理の動作を説明する。上述したメインルーチンのステップＳＤ３（図１３参照）を介して本処理が実行されると、図１４に図示するステップＳＥ１に進み、息圧センサ１３ａが検出する現在の息圧をレジスタＰｒｅｓｓにストアする。以後、レジスタＰｒｅｓｓの内容を現息圧Ｐｒｅｓｓと記す。続いて、ステップＳＥ２では、現息圧ＰｒｅｓｓとレジスタＰｒｅｖＰｒｅｓｓに格納される前回検出時の息圧（以後、前息圧ＰｒｅｖＰｒｅｓｓと記す）とが不一致であるか否か、つまり息圧変化の有無を判断する。息圧変化が無ければ、判断結果は「ＮＯ」となり、何も行わずに本処理を完了させるが、息圧変化が有ると、判断結果が「ＹＥＳ」になり、ステップＳＥ３に進む。
【００６５】
ステップＳＥ３〜ＳＥ６では、現息圧Ｐｒｅｓｓおよび前息圧ＰｒｅｖＰｒｅｓｓに基づきノートオンイベント、音量変更イベントおよびノートオフイベントのいずれであるかを判定し、判定したイベントに対応した処理データを生成する。以下、「ノートオンイベントの場合」、「音量変更イベントの場合」および「ノートオフイベントの場合」に分けて動作説明を進める。
【００６６】
＜ノートオンイベントの場合＞
ノートオンイベントの場合には、前息圧ＰｒｅｖＰｒｅｓｓは「０」なので、ステップＳＥ３の判断結果が「ＹＥＳ」になり、ステップＳＥ４に進み、発音開始処理用データを作成する。
すなわち、ステップＳＥ４において、イベントリクエストＲｅｑＳｔａｔにノートオンイベントを表す値「０」をセットし、キースイッチ１３ｂの音高指定操作で指定されたキー番号を、キー番号ＲｅｑＫｅｙにセットする。さらに、アタック部分からの通常波形読み出しを指定する値「０」を、波形読み出しアドレスＲｅｑＡｄｒｓにセットすると共に、現息圧Ｐｒｅｓｓを息圧ＲｅｑＰｒｅｓｓにセットしてステップＳＥ８に進む。
【００６７】
＜音量変更イベントの場合＞
音量変更イベントの場合には、前息圧ＰｒｅｖＰｒｅｓｓおよび現息圧Ｐｒｅｓｓはともに「０」にならないので、ステップＳＥ３およびステップＳＥ５の判断結果がともに「ＮＯ」になり、ステップＳＥ７に進み、音量変更処理用データを作成する。
すなわち、ステップＳＥ７において、イベントリクエストＲｅｑＳｔａｔに音量変更イベントを表す値「２」をセットする。また、現息圧Ｐｒｅｓｓを息圧ＲｅｑＰｒｅｓｓにセットすると共に、持続波形部分からクロスフェード波形読み出しを指定する値「１」を、波形読み出しアドレスＲｅｑＡｄｒｓにセットしてステップＳＥ８に進む。
【００６８】
＜ノートオフイベントの場合＞
ノートオフイベントの場合には、現息圧Ｐｒｅｓｓが「０」になる為、ステップＳＥ５の判断結果が「ＹＥＳ」になり、ステップＳＥ６に進み、消音処理用データを作成する。
すなわち、ステップＳＥ６において、イベントリクエストＲｅｑＳｔａｔにノートオフイベントを表す値「１」をセットすると共に、キースイッチ１３ｂの音高指定操作で指定されたキー番号を、キー番号ＲｅｑＫｅｙにセットする。この後、ステップＳＥ１４に進み、現息圧Ｐｒｅｓｓを前息圧ＰｒｅｖＰｒｅｓｓに更新して本処理を完了させる。
【００６９】
こうして、現息圧Ｐｒｅｓｓおよび前息圧ＰｒｅｖＰｒｅｓｓに基づいて判定したイベントに対応した処理データを生成すると、ステップＳＥ８に進み、ポインタｎをゼロリセットすると共に、現息圧ＰｒｅｓｓにパートボリュームＰＶｏｌ［０］を乗算して音量パラメータｖｏｌを発生し、さらにパート番号０の演奏パートにアサインされる音色番号ＰＴｏｎｅ［０］に対応する音色パラメータＴＰＲＭ［ＰＴｏｎｅ［０］］をＲＯＭ３から読み出してレジスタｔｐｒｍにストアする。
【００７０】
なお、ＲＯＭ３から読み出される音色パラメータＴＰＲＭ［ＰＴｏｎｅ［０］］は、図１０に図示したように、波形レベルが異なる４種類の波形データＷａｖｅ１〜４にそれぞれ対応した波形パラメータＷＰＲＭ［０］〜［３］から構成され、１つの波形パラメータＷＰＲＭは、波形番号ＷａｖｅＮｕｍ、波形最小音量ＷａｖｅＭｉｎ、波形最大音量ＷａｖｅＭａｘ、ピーク音量ＷａｖｅＰｅａｋ、通常読み出しアドレスＡｄｒｓ［０］およびクロスフェード時読み出しアドレスＡｄｒｓ［１］からなる。
【００７１】
ここで、図１５を参照して波形パラメータＷＰＲＭ中の波形最小音量ＷａｖｅＭｉｎ、波形最大音量ＷａｖｅＭａｘおよびピーク音量ＷａｖｅＰｅａｋについて説明する。図１５は、音量パラメータｖｏｌに対応して選択される各波形データＷａｖｅ１〜４毎のオシレータボリュームＯＳＣ ｖｏｌｕｍｅの変化を表すグラフである。オシレータボリュームＯＳＣ ｖｏｌｕｍｅは、選択される波形データＷａｖｅ１〜４の波形振幅（１６ビット、１４ビット、１２ビットおよび１０ビット）に対応して音量パラメータｖｏｌを７ビット長にスケール変換した値である。
【００７２】
図１５に図示するグラフにおいて、例えば破線で図示される波形データＷａｖｅ２に着目した場合、図中のＶ１が「波形最小音量ＷａｖｅＭｉｎ」、Ｖ２が「波形最大音量ＷａｖｅＭａｘ」、Ｖ３が「ピーク音量ＷａｖｅＰｅａｋ」となる。つまり、波形最小音量ＷａｖｅＭｉｎおよび波形最大音量ＷａｖｅＭａｘは、この一例の場合、波形データＷａｖｅ２を用いて発音可能な最小音量および最大音量を表す。また、ピーク音量ＷａｖｅＰｅａｋとは、オシレータボリュームＯＳＣ ｖｏｌｕｍｅ最大値に対応する音量パラメータｖｏｌを表す。
【００７３】
さて、再び図１４を参照してブレス処理の動作説明を進める。上記ステップＳＥ８にて音量パラメータｖｏｌおよび音色パラメータＴＰＲＭ［ＰＴｏｎｅ［０］］を用意し終えると、ステップＳＥ９〜ＳＥ１３において、ポインタｎの歩進に応じて順次指定される各波形データＷａｖｅ１〜４の波形パラメータＷＰＲＭ［０］〜［３］を参照し、その内から音量パラメータｖｏｌに対応する波形データＷａｖｅを選択する。
【００７４】
すなわち、ステップＳＥ９では、上記ステップＳＥ８にて算出される音量パラメータｖｏｌが、レジスタｔｐｒｍの音色パラメータＴＰＲＭ中でポインタｎにて指定される波形パラメータＷＰＲＭ［ｎ］の波形最小音量ＷａｖｅＭｉｎ（ｔｐｒｍ．ＷＰＲＭ［ｎ］．ＷａｖｅＭｉｎ）以上であって、波形最大音量ＷａｖｅＭａｘ（ｔｐｒｍ．ＷＰＲＭ［ｎ］．ＷａｖｅＭａｘ）以下であるか、つまり音量パラメータｖｏｌに対応する波形データであるかを判断する。
音量パラメータｖｏｌに対応する波形データでなければ、判断結果は「ＮＯ」になり、ステップＳＥ１０に進み、イベントリクエストデータＲｅｑ中でポインタｎにて指定される波形状態ＷａｖｅＳｔａｔ［ｎ］に、発音不必要である旨を表す値「０」をセットした後、ステップＳＥ１２に進む。
【００７５】
一方、音量パラメータｖｏｌに対応する波形データであると、判断結果が「ＹＥＳ」となり、ステップＳＥ１１に進み、イベントリクエストデータＲｅｑ中でポインタｎにて指定される波形状態ＷａｖｅＳｔａｔ［ｎ］に、発音に必要である旨を表す値「１」をセットした後、ステップＳＥ１２に進む。そして、ステップＳＥ１２では、ポインタｎをインクリメントして歩進させ、続くステップＳＥ１３では、歩進されたポインタｎが波形種ＮＷ（本実施形態では４種）より小さいか、すなわち全ての波形データＷａｖｅについて適合判定し終えたかどうかを判断する。適合判定し終えていなければ、判断結果は「ＹＥＳ」になり、上記ステップＳＥ９に処理を戻す。
以後、適合判定し終える迄、上述のステップＳＥ９〜ＳＥ１３を繰り返し、適合判定し終えると、ステップＳＥ１３の判断結果が「ＹＥＳ」になり、ステップＳＥ１４に進み、現息圧Ｐｒｅｓｓを前息圧ＰｒｅｖＰｒｅｓｓに更新して本処理を完了させる。
【００７６】
このように、ブレス処理では、現息圧Ｐｒｅｓｓを検出し、検出した現息圧Ｐｒｅｓｓと前息圧ＰｒｅｖＰｒｅｓｓとを比較してノートオンイベント、音量変更イベントおよびノートオフイベントのいずれであるかを判定し、判定したイベントに対応した処理データを生成する一方、現息圧ＰｒｅｓｓにパートボリュームＰＶｏｌ［０］を乗算して生成される音量パラメータｖｏｌに対応する波形データＷａｖｅを選択する。
【００７７】
（４）発音処理の動作
次に、図１６を参照して発音処理の動作を説明する。前述したメインルーチンのステップＳＤ４（図１３参照）を介して本処理が実行されると、図１６に図示するステップＳＦ１に進み、上述のブレス処理にて設定されるイベントリクエストＲｅｑＳｔａｔの値を判定する。
すなわち、ノートオンイベントの場合には、イベントリクエストＲｅｑＳｔａｔの値は「０」なので、ステップＳＦ２に進み、ブレス発音開始処理（後述する）を実行した後、ステップＳＦ５に進み、イベントリクエストＲｅｑＳｔａｔに要求無し（イベント無し）を表す値「−１」をセットした後、ステップＳＦ６に進み、その他の発音処理（他の演奏パートの発音処理）を実行して本処理を終える。
【００７８】
ノートオフイベントの場合には、イベントリクエストＲｅｑＳｔａｔの値は「１」なので、ステップＳＦ３に進み、ブレス消音処理（後述する）を実行した後、ステップＳＦ５に進み、イベントリクエストＲｅｑＳｔａｔに要求無し（イベント無し）を表す値「−１」をセットした後、ステップＳＦ６に進み、その他の発音処理（他の演奏パートの発音処理）を実行して本処理を終える。
音量変更イベントの場合には、イベントリクエストＲｅｑＳｔａｔの値は「２」なので、ステップＳＦ４に進み、ブレス音量変更処理（後述する）を実行した後、ステップＳＦ５に進み、イベントリクエストＲｅｑＳｔａｔに要求無し（イベント無し）を表す値「−１」をセットした後、ステップＳＦ６に進み、その他の発音処理（他の演奏パートの発音処理）を実行して本処理を終える。
イベント無しの場合には、イベントリクエストＲｅｑＳｔａｔの値は「−１」なので、ステップＳＦ６に進み、その他の発音処理（他の演奏パートの発音処理）を実行して本処理を終える。
【００７９】
（５）ブレス発音開始処理の動作
次に、図１７を参照してブレス発音開始処理の動作を説明する。上述した発音処理のステップＳＦ２（図１６参照）を介して本処理が実行されると、図１７に図示するステップＳＧ１に進み、ポインタｎをゼロリセットする。続いて、ステップＳＧ２〜ＳＧ４では、ノート管理データＮＰＲＭの数ＮＮに達するまでポインタｎを歩進させながら、当該ポインタｎで指定されるノート管理データＮＰＲＭ［ｎ］中のノート状態ＮｏｔｅＳｔａｔ（ＮＰＲＭ［ｎ］．ＮｏｔｅＳｔａｔ）が「０」のＮＰＲＭを検索する。全てのＮＰＲＭを検索し、ノート状態ＮｏｔｅＳｔａｔが「０」のＮＰＲＭを探し出せなかった場合には、ステップＳＧ４の判断結果が「ＮＯ」となり、本処理を終える。
【００８０】
これに対し、ノート状態ＮｏｔｅＳｔａｔが「０」のＮＰＲＭが見つかると、ステップＳＧ２の判断結果が「ＹＥＳ」になり、ステップＳＧ５に進む。ステップＳＧ５では、ポインタｎで指定されるノート管理データＮＰＲＭ［ｎ］中のノート状態ＮｏｔｅＳｔａｔ（ＮＰＲＭ［ｎ］．ＮｏｔｅＳｔａｔ）に、発音中を表す値「１」をストアすると共に、キー番号ｋｅｙ（ＮＰＲＭ［ｎ］．ｋｅｙ）に、音高指定されたキー番号ＲｅｑＫｅｙをストアし、さらに波形検索ポインタｗをゼロリセットする。
【００８１】
次いで、ステップＳＧ６では、波形検索ポインタｗで指定される波形状態ＷａｖｅＳｔａｔ［ｗ］が「１」、つまり発音に必要な波形データＷａｖｅであるかどうかを判断する。発音に不必要な波形データＷａｖｅであれば、判断結果は「ＮＯ」になり、ステップＳＧ１２に進み、波形検索ポインタｗをインクリメントして歩進させる。続くステップＳＧ１３では、歩進された波形検索ポインタｗが波形種ＮＷ（本実施形態では４種）より小さいか否か、すなわち全ての波形データについて検索し終えたかどうかを判断する。
【００８２】
検索し終えていなければ、判断結果は「ＹＥＳ」となり、上記ステップＳＧ６に処理を戻す。以後、波形検索ポインタｗを歩進させながら、発音に必要な波形データＷａｖｅを検索して行き、該当する波形データＷａｖｅが見つからなければ、ステップＳＧ１３の判断結果が「ＮＯ」になり、本処理を完了させるが、該当する波形データＷａｖｅが見つかると、ステップＳＧ６の判断結果が「ＹＥＳ」になり、ステップＳＧ７に進む。ステップＳＧ７では、オシレータ検索ポインタｖをゼロリセットする。続いて、ステップＳＧ８〜ＳＧ１０では、オシレータ検索ポインタｖを歩進させながら、オシレータアサイン管理データＯｓｃＳｔａｔ［０］〜［ＮＯＳＣ−１］の内から未使用のオシレータ（ＯｓｃＳｔａｔ［ｖ］＝０）を検索する。
【００８３】
未使用のオシレータ（ＯｓｃＳｔａｔ［ｖ］＝０）が見つかると、ステップＳＧ８の判断結果が「ＹＥＳ」になり、ステップＳＧ１１に進む。ステップＳＧ１１では、ポインタｎで指定されるノート管理データＮＰＲＭ［ｎ］において、波形検索ポインタｗが指定するオシレータ割当波形番号ＯｓｃＮｕｍ［ｗ］（ＮＰＲＭ［ｎ］．ＯｓｃＮｕｍ［ｗ］）に、発音割当てするオシレータ番号として、オシレータ検索ポインタｖをストアする。また、ステップＳＧ１１では、オシレータ検索ポインタｖが指定するオシレータアサイン管理データＯｓｃＳｔａｔ［ｖ］に「１」をセットして使用中に設定する。
【００８４】
さらに、ステップＳＧ１１では、図１５に図示した関係を用いて、現息圧ＰｒｅｓｓにパートボリュームＰＶｏｌ［０］を乗算してなる音量パラメータｖｏｌに対応するオシレータボリュームＯＳＣ ｖｏｌｕｍｅを算出し、そのオシレータボリュームＯＳＣ ｖｏｌｕｍｅを音源７にて発音割当てしたオシレータ７００の乗算器７００ｂに供給する。また、ステップＳＧ１１では、前述のブレス処理（図１４参照）にて設定された波形読み出しアドレスＲｅｑＡｄｒｓ（＝０）に従い、選択された波形データＷａｖｅを先頭のアタック部分（図１０のＡｄｒｓ［０］）から読み出す波形読み出し開始指示を音源７に与える。
【００８５】
このように、ブレス発音開始処理では、停止中かつ未使用のオシレータ７００に発音を割当て、音量パラメータｖｏｌに対応するオシレータボリュームＯＳＣ ｖｏｌｕｍｅを、発音割当てしたオシレータ７００の乗算器７００ｂに与えると共に、音量パラメータｖｏｌに対応して選択される波形データＷａｖｅを先頭から読み出す指示を音源７に与える。これにより、音源７は、キー番号ＲｅｑＫｅｙの音高の楽音をオシレータボリュームＯＳＣ ｖｏｌｕｍｅに対応した音量で発生することになる。
【００８６】
（６）ブレス消音処理の動作
次に、図１８を参照してブレス消音処理の動作を説明する。前述した発音処理のステップＳＦ３（図１６参照）を介して本処理が実行されると、図１８に図示するステップＳＨ１に進み、ポインタｎをゼロリセットする。続いて、ステップＳＨ２〜ＳＨ４では、ノート管理データＮＰＲＭの数ＮＮに達するまでポインタｎを歩進させながら、当該ポインタｎで指定されるノート管理データＮＰＲＭ［ｎ］中のノート状態ＮｏｔｅＳｔａｔ（ＮＰＲＭ［ｎ］．ＮｏｔｅＳｔａｔ）が「１」であって、かつキー番号ｋｅｙ（ＮＰＲＭ［ｎ］．ｋｅｙ）がキー番号ＲｅｑＫｅｙに一致するノート管理データＮＰＲＭを検索する。つまり、キー番号ＲｅｑＫｅｙの音高の楽音を発音中のノート管理データＮＰＲＭを探し出す。そして、該当するノート管理データＮＰＲＭを探し出せなかった場合には、ステップＳＨ４の判断結果が「ＮＯ」となり、本処理を終える。
【００８７】
一方、キー番号ＲｅｑＫｅｙの音高の楽音を発音中のオシレータ７００が見つかった場合には、上記ステップＳＨ２の判断結果が「ＹＥＳ」になり、ステップＳＨ５に進む。ステップＳＨ５では、ポインタｎで指定されるノート管理データＮＰＲＭ［ｎ］中のノート状態ＮｏｔｅＳｔａｔ（ＮＰＲＭ［ｎ］．ＮｏｔｅＳｔａｔ）に、停止（消音中）を表す値「０」をストアすると共に、波形検索ポインタｗをゼロリセットする。
次いで、ステップＳＨ６では、ポインタｎで指定され、キー番号ＲｅｑＫｅｙの音高の楽音を発音中のオシレータ７００に割当てられているノートを管理するノート管理データＮＰＲＭ［ｎ］において、波形検索ポインタｗが指定するオシレータ割当波形番号ＯｓｃＮｕｍ［ｗ］（ＮＰＲＭ［ｎ］．ＯｓｃＮｕｍ［ｗ］）を、レジスタｖにストアする。
【００８８】
次に、ステップＳＨ７では、レジスタｖにストアされた値が「−１」であるか否か、つまりキー番号ＲｅｑＫｅｙの音高の楽音を発音中のオシレータ７００に、波形検索ポインタｗで指定される波形データＷａｖｅが割当てられていないかどうかを判断する。割当てられていない場合には、判断結果が「ＹＥＳ」になり、ステップＳＨ９に進み、波形検索ポインタｗをインクリメントして歩進させる。そして、ステップＳＨ１０では、歩進された波形検索ポインタｗが波形種ＮＷより小さいか否か、つまり全ての波形データＷａｖｅ１〜４について検索し終えたかどうかを判断する。検索し終えていなければ、判断結果は「ＹＥＳ」になり、上述のステップＳＨ６に処理を戻す。
【００８９】
以後、波形種ＮＷに達するまで波形検索ポインタｗを歩進させながら、発音中のオシレータ７００に割当てられている波形データＷａｖｅを探し出す。そして、該当する波形データＷａｖｅが検索されると、ステップＳＨ７の判断結果が「ＮＯ」になり、ステップＳＨ８に進む。ステップＳＨ８では、ポインタｎで指定されるノート管理データＮＰＲＭ［ｎ］において、波形検索ポインタｗが指定するオシレータ割当波形番号ＯｓｃＮｕｍ［ｗ］（ＮＰＲＭ［ｎ］．ＯｓｃＮｕｍ［ｗ］）に「−１」をセットして未アサイン状態に設定すると共に、レジスタｖにストアされた値で指定されるオシレータアサイン管理データＯｓｃＳｔａｔ［ｖ］に「０」をセットして、発音中のオシレータ７００を未使用状態に設定した後、そのオシレータ７００の波形読み出しを停止させるよう音源７に指示する。
【００９０】
このように、ブレス消音処理では、キー番号ＲｅｑＫｅｙの音高の楽音を発音中のオシレータ７００に割当てられている波形データＷａｖｅを検索し、該当する波形データＷａｖｅを未アサイン状態に設定すると同時に、該当するオシレータ７００を未使用状態に設定して波形読み出しを停止させる。
【００９１】
（７）ブレス音量変更処理の動作
次に、図１９を参照してブレス音量変更処理の動作を説明する。前述した発音処理のステップＳＦ４（図１６参照）を介して本処理が実行されると、図１９に図示するステップＳＪ１に進み、ポインタｎをゼロリセットする。続いて、ステップＳＪ２〜ＳＪ４では、ノート管理データＮＰＲＭの数ＮＮに達するまでポインタｎを歩進させながら、当該ポインタｎで指定されるノート管理データＮＰＲＭ［ｎ］中のノート状態ＮｏｔｅＳｔａｔ（ＮＰＲＭ［ｎ］．ＮｏｔｅＳｔａｔ）が「１」、つまり現在発音中にあるノート管理データＮＰＲＭを検索する。該当するノート管理データＮＰＲＭが存在しなければ、ステップＳＪ４の判断結果が「ＮＯ」となり、本処理を終える。
【００９２】
一方、発音中のオシレータ７００が検索されると、上記ステップＳＪ２の判断結果が「ＹＥＳ」になり、ステップＳＪ５に進み、波形検索ポインタｗをゼロリセットする。続いて、ステップＳＪ６では、ポインタｎで指定されるノート管理データＮＰＲＭ［ｎ］において、波形検索ポインタｗが指定するオシレータ割当波形番号ＯｓｃＮｕｍ［ｗ］（ＮＰＲＭ［ｎ］．ＯｓｃＮｕｍ［ｗ］）を、レジスタｖにストアする。次いで、ステップＳＪ７では、波形検索ポインタｗで指定される波形状態ＷａｖｅＳｔａｔ［ｗ］が「０」であるかどうかを判断する。
【００９３】
すなわち、前述したブレス処理のステップＳＥ９〜ＳＥ１１（図１４参照）において説明した通り、音量パラメータｖｏｌに対応する波形データＷａｖｅでなくなると、イベントリクエストデータＲｅｑ中の波形状態ＷａｖｅＳｔａｔ［ｗ］に、発音不必要である旨を表す値「０」がセットされ、一方、音量パラメータｖｏｌに対応する波形データＷａｖｅになると、イベントリクエストデータＲｅｑ中の波形状態ＷａｖｅＳｔａｔ［ｗ］に、発音に必要である旨を表す値「１」がセットされる。
従って、このステップＳＪ７では、現息圧Ｐｒｅｓｓの変化、すなわち音量変化に伴って発音に不必要な波形データＷａｖｅになったか、あるいは発音に必要な波形データＷａｖｅになったかを判断する訳である。以下、発音に不必要な波形データＷａｖｅになった場合と、発音に必要な波形データＷａｖｅになった場合とに分けて動作説明を進める。
【００９４】
＜発音に不必要な波形データＷａｖｅになった場合＞
音量変化に伴って発音に不必要な波形データＷａｖｅになると、ステップＳＪ７の判断結果が「ＹＥＳ」となり、ステップＳＪ８に進む。ステップＳＪ８では、レジスタｖにストアされた値が「−１」であるか否か、つまり波形検索ポインタｗで指定される波形データＷａｖｅが、発音中のオシレータ７００に割当てられていないかどうかを判断する。割当てられていなければ、判断結果は「ＹＥＳ」になり、ステップＳＪ１０に進み、波形検索ポインタｗをインクリメントして歩進させる。そして、ステップＳＪ１１に進み、歩進された波形検索ポインタｗが波形種ＮＷより小さいか否か、つまり全ての波形データＷａｖｅ１〜４について検索し終えたかどうかを判断する。検索し終えていなければ、判断結果は「ＹＥＳ」になり、上述のステップＳＪ６に処理を戻す。
【００９５】
以後、波形種ＮＷに達するまで波形検索ポインタｗを歩進させながら、現在発音中のオシレータ７００に割当てられているが、発音に不必要な波形データＷａｖｅを探し出す。そして、該当する波形データＷａｖｅが検索されると、ステップＳＪ８の判断結果が「ＮＯ」になり、ステップＳＪ９に進む。ステップＳＪ９では、ポインタｎで指定されるノート管理データＮＰＲＭ［ｎ］において、波形検索ポインタｗが指定するオシレータ割当波形番号ＯｓｃＮｕｍ［ｗ］（ＮＰＲＭ［ｎ］．ＯｓｃＮｕｍ［ｗ］）に「−１」をセットして未アサイン状態に設定すると共に、レジスタｖにストアされた値で指定されるオシレータアサイン管理データＯｓｃＳｔａｔ［ｖ］に「０」をセットして、発音中のオシレータ７００を未使用状態に設定した後、そのオシレータ７００の波形読み出しを停止させるよう音源７に指示する。
【００９６】
このように、ステップＳＪ６〜ＳＪ１１では、波形検索ポインタｗを波形種ＮＷ（本実施形態では、波形データＷａｖｅ１〜４の４種）まで歩進させながら、各波形データＷａｖｅ１〜４がそれぞれ割当てられているオシレータ番号ｖを検索しつつ、各波形データＷａｖｅ１〜４が発音に必要か不必要かを区別する。そして、現在発音中のオシレータ７００に割当てられているが、発音に不必要な波形データＷａｖｅであると、発音中のオシレータ７００を未使用状態に設定し、そのオシレータ７００の波形読み出しを停止させるよう音源７に指示する。
【００９７】
＜発音に必要な波形データＷａｖｅになった場合＞
音量変化に伴って発音に必要な波形データＷａｖｅになると、上述したステップＳＪ７の判断結果が「ＮＯ」となり、ステップＳＪ１２に進む。ステップＳＪ１２では、レジスタｖにストアされた値が「−１」であるか否か、つまり波形検索ポインタｗで指定される波形データＷａｖｅが、発音中のオシレータ７００に割当てられていないかどうかを判断する。
波形検索ポインタｗで指定される波形データＷａｖｅが、発音中のオシレータ７００に割当てられていなければ、判断結果は「ＹＥＳ」になり、ステップＳＪ１３に進み、オシレータアサイン管理データＯｓｃＳｔａｔ［０］〜［ＮＯＳＣ−１］の内から未使用のオシレータ（ＯｓｃＳｔａｔ［ｖ］＝０）を検索し、該当するオシレータ番号をレジスタｖにストアする。
【００９８】
そして、ステップＳＪ１４では、レジスタｖに格納される未使用のオシレータ番号がオシレータの数ＮＯＳＣより小さいか否か、つまり適正かどうかを判断する。未使用のオシレータ番号が適正でなければ、判断結果は「ＮＯ」になり、前述のステップＳＪ１０に処理を戻すが、適正ならば、判断結果は「ＹＥＳ」になり、ステップＳＪ１５に進む。
【００９９】
ステップＳＪ１５では、未使用のオシレータ番号ｖで指定されるオシレータアサイン管理データＯｓｃＳｔａｔ［ｖ］に「１」をセットして使用中に設定して発音割当て行った後、図１５に図示した関係を用いて、ＲｅｑＰｒｅｓｓにパートボリュームＰＶｏｌ［０］を乗算してなる音量パラメータｖｏｌに対応するオシレータボリュームＯＳＣ ｖｏｌｕｍｅを算出し、そのオシレータボリュームＯＳＣ ｖｏｌｕｍｅを音源７にて発音割当てしたオシレータ７００の乗算器７００ｂに供給する。そして、前述したステップＳＥ７（図１４参照）にて設定された波形読み出しアドレスＲｅｑＡｄｒｓ（＝１）に従い、選択された波形データＷａｖｅの持続波形部分（図１０のＡｄｒｓ［１］）から読み出すクロスフェード波形読み出し開始指示を音源７に与える。
【０１００】
一方、波形検索ポインタｗで指定される波形データＷａｖｅが、発音中のオシレータ７００に割当てられている場合には、上記ステップＳＪ１２の判断結果が「ＮＯ」になり、ステップＳＪ１６に進み、図１５に図示した関係を用いて、ＲｅｑＰｒｅｓｓにパートボリュームＰＶｏｌ［０］を乗算してなる音量パラメータｖｏｌに対応するオシレータボリュームＯＳＣ ｖｏｌｕｍｅを算出し、そのオシレータボリュームＯＳＣ ｖｏｌｕｍｅを音源７にて発音割当てしたオシレータ７００の乗算器７００ｂに供給した後、前述のステップＳＪ１０に処理を戻す。
【０１０１】
このように、ブレス音量変更処理では、現在発音中にあるオシレータ７００に割当てられている波形データＷａｖｅが、音量変化に伴って発音に不必要な波形データＷａｖｅになると、発音中のオシレータ７００を未使用状態に設定して波形読み出しを停止させ、一方、発音に必要な波形データＷａｖｅになれば、その波形データＷａｖｅの発音を未使用のオシレータ７００に割当て、かつ音量パラメータｖｏｌに対応するオシレータボリュームＯＳＣ ｖｏｌｕｍｅを供給して新たに音量制御する。
【０１０２】
以上説明したように、第２実施形態によれば、波形レベルが異なる４種類の波形データＷａｖｅを、音量パラメータｖｏｌの変化幅に対応付けて予め設けておき、ノートオンイベント毎に息圧Ｐｒｅｓｓとユーザ設定されるパートボリュームＰＶｏｌ［０］との乗算で求まる音量パラメータｖｏｌの値に応じて、波形データＷａｖｅ１〜４のいずれかを選択し、選択した波形データＷａｖｅと、それに対応する音量パラメータｖｏｌをスケール変換した音量制御値ｖｏｌ（レジスタｖｏｌ）とを音源７に設定して音量制御するので、必要とされるダイナミックレンジに満たないボリュームを用いた場合でも必要十分な音量制御を行うことが可能になっている。
【０１０３】
また、第２実施形態では、息圧Ｐｒｅｓｓの変化に対応させて連続的に音量を変化させる際に、発音に不必要となった波形データＷａｖｅ（切替え前波形データ）から新たに発音に必要になる波形データＷａｖｅ（切替え後波形データ）へ切替える場合、切替え前波形データから切替え後波形データにクロスフェードさせて波形読み出しを行うので、音量変化に伴う波形不連続を回避することが可能になる。
【０１０４】
なお、第２実施形態では、連続的に音量を変化させる一例として息圧Ｐｒｅｓｓを用いるようにしたが、これに限らず、例えばＭＩＤＩ入力されるホイール操作子等が発生するコンティニュアスデータを用いる態様としても構わないし、あるいはアフタータッチで連続的に音量変化させる態様とすることも可能である。
また、第２実施形態では、波形レベルが異なる４種類の波形データＷａｖｅを、音量パラメータｖｏｌの変化幅に対応付けて音源７に設けるようにしたが、これに替えて、前述した第１実施形態と同様にサンプリング処理（図８参照）を実行し、波形番号Ｗａｖｅに対応してスケーリングされた波形データを、音源７を構成するオシレータ７００−１〜７００−ｎの各波形発生器７００ａに登録する態様としてもよい。
【図面の簡単な説明】
【０１０５】
【図１】本発明の第１実施形態の構成を示すブロック図である。
【図２】ＲＡＭ４の主要レジスタ構成を示す図である。
【図３】音源７の構成を示すブロック図である。
【図４】波形データＷａｖｅ１〜４毎の、波形レベルと音量パラメータｖｏｌとの対応関係を示すグラフである。
【図５】メインルーチンの動作を示すフローチャートである。
【図６】発音処理の動作を示すフローチャートである。
【図７】波形データＷａｖｅ１〜４毎の、音量パラメータｖｏｌと当該音量パラメータｖｏｌをスケール変換した音量制御値ｖｏｌ（レジスタｖｏｌ）との対応関係を示すグラフである。
【図８】サンプリング処理の動作を示すフローチャートである。
【図９】第２実施形態の構成を示すブロック図である。
【図１０】ＲＯＭ３に記憶される音色パラメータの構成を示す図である。
【図１１】ＲＡＭ４に記憶される主要レジスタ構成を示す図である。
【図１２】第２実施形態による音源７の構成を示すブロック図である。
【図１３】第２実施形態によるメインルーチンの動作を示すフローチャートである。
【図１４】第２実施形態によるブレス処理の動作を示すフローチャートである。
【図１５】音量パラメータｖｏｌに対応して選択される各波形データＷａｖｅ１〜４毎のオシレータボリュームＯＳＣ ｖｏｌｕｍｅの変化を示すグラフである。
【図１６】第２実施形態による発音処理の動作を示すフローチャートである。
【図１７】第２実施形態によるブレス発音開始処理の動作を説明するためのフローチャートである。
【図１８】第２実施形態によるブレス消音処理の動作を説明するためのフローチャートである。
【図１９】第２実施形態によるブレス音量変更処理の動作を説明するためのフローチャートである。
【符号の説明】
【０１０６】
１  鍵盤
２  スイッチ部
３  ＲＯＭ
４  ＲＡＭ
５  ＭＩＤＩインタフェース
６  ＣＰＵ
７  音源
８  Ｄ／Ａ変換器
９  サウンドシステム
１０  マイク
１１  Ａ／Ｄ変換器
１２  表示部
【図１】
2006163230.tif 000003
【図２】
2006163230.tif 000004
【図３】
2006163230.tif 000005
【図４】
2006163230.tif 000006
【図５】
2006163230.tif 000007
【図６】
2006163230.tif 000008
【図７】
2006163230.tif 000009
【図８】
2006163230.tif 000010
【図９】
2006163230.tif 000011
【図１０】
2006163230.tif 000012
【図１１】
2006163230.tif 000013
【図１２】
2006163230.tif 000014
【図１３】
2006163230.tif 000015
【図１４】
2006163230.tif 000016
【図１５】
2006163230.tif 000017
【図１６】
2006163230.tif 000018
【図１７】
2006163230.tif 000019
【図１８】
2006163230.tif 000020
【図１９】
2006163230.tif 000021