(57)【要約】【課題】  比較的簡単な処理で複雑な波形を形成する波形発生装置を実現する。【解決手段】  ＣＰＵ７は、ウェーブレット波形ＷＬの発生タイミング、周波数および振幅を決めるデータセットを複数備えた音色データテーブルＴＣＴから発生タイミング順にデータセットを読み出して音源８に供給する。音源８では、ＣＰＵ７から供給されるデータセットが指定する周波数および振幅のウェーブレット波形ＷＬを発生し、発生した複数のウェーブレット波形ＷＬを重ね合わせるウェーブレット逆変換にて所定音色の楽音波形を再生する。これにより、例えば正弦波合成方式で行われるエンベロープ処理を必要とせず、比較的簡単な処理で複雑な波形を形成することが可能になる。【選択図】  図７
2005215103.tif 000002
【特許請求の範囲】
【請求項１】
ウェーブレット波形の発生タイミング、周波数および振幅を決めるデータセットを複数記憶する音色データ記憶手段と、
前記音色データ記憶手段から発生タイミング順に読み出したデータセットが指定する周波数および振幅のウェーブレット波形を発生するウェーブレット波形発生手段と、
前記ウェーブレット波形発生手段が発生タイミング順に発生する一連のウェーブレット波形を重ね合わせて波形再生するウェーブレット逆変換手段と
を具備することを特徴とする波形発生装置。
【請求項２】
発生タイミング、周波数、振幅およびベロシティ変換特性を一組とした音色データを複数記憶する音色データ記憶手段と、
正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を記憶する波形記憶手段と、
発音すべき音高および音量を指定する指定手段と、
前記指定手段により発音すべき音高および音量が指定された場合に、前記音色データ記憶手段から発生タイミング順に音色データを読み出す音色データ読み出し手段と、
前記音色データ読み出し手段により読み出された音色データの周波数を、前記指定手段が指定する発音音高に応じて変調し、変調された周波数のウェーブレット波形を前記波形記憶手段から読み出す波形読み出し手段と、
前記音色データ読み出し手段により読み出された音色データのベロシティ変換特性に従って前記指定手段が指定する音量を変換し、変換された音量に応じて当該音色データの振幅を調整する振幅調整手段と、
前記振幅調整手段によって調整された音色データの振幅を、前記波形読み出し手段により読み出されるウェーブレット波形に乗算して出力する波形乗算手段と、
前記波形乗算手段から発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生手段と
を具備することを特徴とする波形発生装置。
【請求項３】
発生タイミング、周波数、振幅およびキースケール変換特性を一組とした音色データを複数記憶する音色データ記憶手段と、
正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を記憶する波形記憶手段と、
発音すべき音高および音量を指定する指定手段と、
前記指定手段により発音すべき音高および音量が指定された場合に、前記音色データ記憶手段から発生タイミング順に音色データを読み出す音色データ読み出し手段と、
前記音色データ読み出し手段により読み出された音色データの周波数を、前記指定手段が指定する発音音高に応じて変調し、変調された周波数のウェーブレット波形を前記波形記憶手段から読み出す波形読み出し手段と、
前記音色データ読み出し手段により読み出された音色データのキースケール変換特性に従って前記指定手段が指定する音高に対応したキースケール値を発生し、そのキースケール値に応じて当該音色データの振幅を調整する振幅調整手段と、
前記振幅調整手段によって調整された音色データの振幅を、前記波形読み出し手段により読み出されるウェーブレット波形に乗算して出力する波形乗算手段と、
前記波形乗算手段から発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生手段と
を具備することを特徴とする波形発生装置。
【請求項４】
発生タイミング、周波数、振幅、ベロシティ変換特性およびキースケール変換特性を一組とした音色データを複数記憶する音色データ記憶手段と、
正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を記憶する波形記憶手段と、
発音すべき音高および音量を指定する指定手段と、
前記指定手段により発音すべき音高および音量が指定された場合に、前記音色データ記憶手段から発生タイミング順に音色データを読み出す音色データ読み出し手段と、
前記音色データ読み出し手段により読み出された音色データの周波数を、前記指定手段が指定する発音音高に応じて変調し、変調された周波数のウェーブレット波形を前記波形記憶手段から読み出す波形読み出し手段と、
前記音色データ読み出し手段により読み出された音色データのベロシティ変換特性に従って前記指定手段が指定する音量を変換すると共に、当該音色データのキースケール変換特性に従って前記指定手段が指定する音高に対応したキースケール値を発生し、変換された音量とキースケール値とに応じて当該音色データの振幅を調整する振幅調整手段と、
前記振幅調整手段によって調整された音色データの振幅を、前記波形読み出し手段により読み出されるウェーブレット波形に乗算して出力する波形乗算手段と、
前記波形乗算手段から発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生手段と
を具備することを特徴とする波形発生装置。
【請求項５】
予めウェーブレット波形の発生タイミング、周波数および振幅を決めるデータセットを複数記憶しておき、発生タイミング順に読み出したデータセットが指定する周波数および振幅のウェーブレット波形を発生するウェーブレット波形発生処理と、
前記ウェーブレット波形発生処理にて発生タイミング順に発生する一連のウェーブレット波形を重ね合わせて波形再生するウェーブレット逆変換処理と
をコンピュータで実行させることを特徴とする波形発生処理プログラム。
【請求項６】
発音すべき音高および音量を指定する指定処理と、
発生タイミング、周波数、振幅およびベロシティ変換特性を一組とした音色データを予め複数記憶しておき、前記指定処理にて発音すべき音高および音量が指定された場合に、これら音色データを発生タイミング順に読み出す音色データ読み出し処理と、
正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を予め記憶しておき、前記音色データ読み出し処理にて読み出された音色データの周波数を、前記指定処理で指定された発音音高に応じて変調し、変調された周波数のウェーブレット波形を読み出す波形読み出し処理と、
前記音色データ読み出し処理にて読み出された音色データのベロシティ変換特性に従って前記指定処理で指定された音量を変換し、変換された音量に応じて当該音色データの振幅を調整する振幅調整処理と、
前記振幅調整処理により調整された音色データの振幅を、前記波形読み出し処理にて読み出されるウェーブレット波形に乗算して出力する波形乗算処理と、
前記波形乗算処理により発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生処理と
をコンピュータで実行させることを特徴とする波形発生処理プログラム。
【請求項７】
発音すべき音高および音量を指定する指定処理と、
発生タイミング、周波数、振幅およびキースケール変換特性を一組とした音色データを予め複数記憶しておき、前記指定処理にて発音すべき音高および音量が指定された場合に、これら音色データを発生タイミング順に読み出す音色データ読み出し処理と、
正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を予め記憶しておき、前記音色データ読み出し処理にて読み出された音色データの周波数を、前記指定処理で指定された発音音高に応じて変調し、変調された周波数のウェーブレット波形を読み出す波形読み出し処理と、
前記音色データ読み出し処理にて読み出された音色データのキースケール変換特性に従って前記指定処理で指定された音高に対応したキースケール値を発生し、そのキースケール値に応じて当該音色データの振幅を調整する振幅調整処理と、
前記振幅調整処理により調整された音色データの振幅を、前記波形読み出し処理にて読み出されるウェーブレット波形に乗算して出力する波形乗算処理と、
前記波形乗算処理により発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生処理と
をコンピュータで実行させることを特徴とする波形発生処理プログラム。
【請求項８】
発音すべき音高および音量を指定する指定処理と、
発生タイミング、周波数、振幅、ベロシティ変換特性およびキースケール変換特性を一組とした音色データを予め複数記憶しておき、前記指定処理にて発音すべき音高および音量が指定された場合に、これら音色データを発生タイミング順に読み出す音色データ読み出し処理と、
正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を予め記憶しておき、前記音色データ読み出し処理にて読み出された音色データの周波数を、前記指定処理で指定された発音音高に応じて変調し、変調された周波数のウェーブレット波形を読み出す波形読み出し処理と、
前記音色データ読み出し処理により読み出された音色データのベロシティ変換特性に従って前記指定処理で指定された音量を変換すると共に、当該音色データのキースケール変換特性に従って前記指定処理で指定された音高に対応したキースケール値を発生し、変換された音量とキースケール値とに応じて当該音色データの振幅を調整する振幅調整処理と、
前記振幅調整処理によって調整された音色データの振幅を、前記波形読み出し処理にて読み出されるウェーブレット波形に乗算して出力する波形乗算処理と、
前記波形乗算処理により発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生処理と
をコンピュータで実行させることを特徴とする波形発生処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽器の音源に用いて好適な波形発生装置および波形発生処理プログラムに関する。
【背景技術】
【０００２】
電子楽器の音源として各種方式の波形発生装置が知られている。代表的な方式としては、波形メモリに記憶された波形データを読み出して再生する波形メモリ読み出し方式や、メモリに記憶した基本波（正弦波）および複数の高調波を選択的に読み出して重ね合わせて任意の倍音構造の波形を発生する正弦波合成方式がある。また、例えば特許文献１に開示の発明のように、ベジェ関数を用いた多項式補間演算によって波形形成するものも知られている。
【０００３】
【特許文献１】特開２００１−２２８８７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記特許文献１に開示の発明では、多項式補間を行うための制御点を可変設定して波形形状を変化させることで少ないデータ量で様々な音色波形の発生を可能にしているが、複雑な波形を発生させ難い。一方、正弦波合成方式では、理論的に凡ゆる波形を形成し得る反面、合成に供する各正弦波毎にエンベロープ処理等を行わなければならず、このために処理が複雑化するという弊害がある。
そこで本発明は、このような事情に鑑みてなされたもので、比較的簡単な処理で複雑な波形を形成することができる波形発生装置および波形発生処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、請求項１に記載の発明では、ウェーブレット波形の発生タイミング、周波数および振幅を決めるデータセットを複数記憶する音色データ記憶手段と、前記音色データ記憶手段から発生タイミング順に読み出したデータセットが指定する周波数および振幅のウェーブレット波形を発生するウェーブレット波形発生手段と、前記ウェーブレット波形発生手段が発生タイミング順に発生する一連のウェーブレット波形を重ね合わせて波形再生するウェーブレット逆変換手段とを具備することを特徴とする。
【０００６】
請求項２に記載の発明では、発生タイミング、周波数、振幅およびベロシティ変換特性を一組とした音色データを複数記憶する音色データ記憶手段と、正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を記憶する波形記憶手段と、発音すべき音高および音量を指定する指定手段と、前記指定手段により発音すべき音高および音量が指定された場合に、前記音色データ記憶手段から発生タイミング順に音色データを読み出す音色データ読み出し手段と、前記音色データ読み出し手段により読み出された音色データの周波数を、前記指定手段が指定する発音音高に応じて変調し、変調された周波数のウェーブレット波形を前記波形記憶手段から読み出す波形読み出し手段と、前記音色データ読み出し手段により読み出された音色データのベロシティ変換特性に従って前記指定手段が指定する音量を変換し、変換された音量に応じて当該音色データの振幅を調整する振幅調整手段と、前記振幅調整手段によって調整された音色データの振幅を、前記波形読み出し手段により読み出されるウェーブレット波形に乗算して出力する波形乗算手段と、前記波形乗算手段から発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生手段とを具備することを特徴とする。
【０００７】
請求項３に記載の発明では、発生タイミング、周波数、振幅およびキースケール変換特性を一組とした音色データを複数記憶する音色データ記憶手段と、正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を記憶する波形記憶手段と、発音すべき音高および音量を指定する指定手段と、前記指定手段により発音すべき音高および音量が指定された場合に、前記音色データ記憶手段から発生タイミング順に音色データを読み出す音色データ読み出し手段と、前記音色データ読み出し手段により読み出された音色データの周波数を、前記指定手段が指定する発音音高に応じて変調し、変調された周波数のウェーブレット波形を前記波形記憶手段から読み出す波形読み出し手段と、前記音色データ読み出し手段により読み出された音色データのキースケール変換特性に従って前記指定手段が指定する音高に対応したキースケール値を発生し、そのキースケール値に応じて当該音色データの振幅を調整する振幅調整手段と、前記振幅調整手段によって調整された音色データの振幅を、前記波形読み出し手段により読み出されるウェーブレット波形に乗算して出力する波形乗算手段と、前記波形乗算手段から発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生手段とを具備することを特徴とする。
【０００８】
請求項４に記載の発明では、発生タイミング、周波数、振幅、ベロシティ変換特性およびキースケール変換特性を一組とした音色データを複数記憶する音色データ記憶手段と、正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を記憶する波形記憶手段と、発音すべき音高および音量を指定する指定手段と、前記指定手段により発音すべき音高および音量が指定された場合に、前記音色データ記憶手段から発生タイミング順に音色データを読み出す音色データ読み出し手段と、前記音色データ読み出し手段により読み出された音色データの周波数を、前記指定手段が指定する発音音高に応じて変調し、変調された周波数のウェーブレット波形を前記波形記憶手段から読み出す波形読み出し手段と、前記音色データ読み出し手段により読み出された音色データのベロシティ変換特性に従って前記指定手段が指定する音量を変換すると共に、当該音色データのキースケール変換特性に従って前記指定手段が指定する音高に対応したキースケール値を発生し、変換された音量とキースケール値とに応じて当該音色データの振幅を調整する振幅調整手段と、前記振幅調整手段によって調整された音色データの振幅を、前記波形読み出し手段により読み出されるウェーブレット波形に乗算して出力する波形乗算手段と、前記波形乗算手段から発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生手段とを具備することを特徴とする。
【０００９】
請求項５に記載の発明では、予めウェーブレット波形の発生タイミング、周波数および振幅を決めるデータセットを複数記憶しておき、発生タイミング順に読み出したデータセットが指定する周波数および振幅のウェーブレット波形を発生するウェーブレット波形発生処理と、前記ウェーブレット波形発生処理にて発生タイミング順に発生する一連のウェーブレット波形を重ね合わせて波形再生するウェーブレット逆変換処理とをコンピュータで実行させることを特徴とする。
【００１０】
請求項６に記載の発明では、発音すべき音高および音量を指定する指定処理と、発生タイミング、周波数、振幅およびベロシティ変換特性を一組とした音色データを予め複数記憶しておき、前記指定処理にて発音すべき音高および音量が指定された場合に、これら音色データを発生タイミング順に読み出す音色データ読み出し処理と、正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を予め記憶しておき、前記音色データ読み出し処理にて読み出された音色データの周波数を、前記指定処理で指定された発音音高に応じて変調し、変調された周波数のウェーブレット波形を読み出す波形読み出し処理と、前記音色データ読み出し処理にて読み出された音色データのベロシティ変換特性に従って前記指定処理で指定された音量を変換し、変換された音量に応じて当該音色データの振幅を調整する振幅調整処理と、前記振幅調整処理により調整された音色データの振幅を、前記波形読み出し処理にて読み出されるウェーブレット波形に乗算して出力する波形乗算処理と、前記波形乗算処理により発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生処理とをコンピュータで実行させることを特徴とする。
【００１１】
請求項７に記載の発明では、発音すべき音高および音量を指定する指定処理と、発生タイミング、周波数、振幅およびキースケール変換特性を一組とした音色データを予め複数記憶しておき、前記指定処理にて発音すべき音高および音量が指定された場合に、これら音色データを発生タイミング順に読み出す音色データ読み出し処理と、正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を予め記憶しておき、前記音色データ読み出し処理にて読み出された音色データの周波数を、前記指定処理で指定された発音音高に応じて変調し、変調された周波数のウェーブレット波形を読み出す波形読み出し処理と、前記音色データ読み出し処理にて読み出された音色データのキースケール変換特性に従って前記指定処理で指定された音高に対応したキースケール値を発生し、そのキースケール値に応じて当該音色データの振幅を調整する振幅調整処理と、前記振幅調整処理により調整された音色データの振幅を、前記波形読み出し処理にて読み出されるウェーブレット波形に乗算して出力する波形乗算処理と、前記波形乗算処理により発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生処理とをコンピュータで実行させることを特徴とする。
【００１２】
請求項８に記載の発明では、発音すべき音高および音量を指定する指定処理と、発生タイミング、周波数、振幅、ベロシティ変換特性およびキースケール変換特性を一組とした音色データを予め複数記憶しておき、前記指定処理にて発音すべき音高および音量が指定された場合に、これら音色データを発生タイミング順に読み出す音色データ読み出し処理と、正弦波にガウス関数包絡線を乗算してなるウェーブレット波形を予め記憶しておき、前記音色データ読み出し処理にて読み出された音色データの周波数を、前記指定処理で指定された発音音高に応じて変調し、変調された周波数のウェーブレット波形を読み出す波形読み出し処理と、前記音色データ読み出し処理により読み出された音色データのベロシティ変換特性に従って前記指定処理で指定された音量を変換すると共に、当該音色データのキースケール変換特性に従って前記指定処理で指定された音高に対応したキースケール値を発生し、変換された音量とキースケール値とに応じて当該音色データの振幅を調整する振幅調整処理と、前記振幅調整処理によって調整された音色データの振幅を、前記波形読み出し処理にて読み出されるウェーブレット波形に乗算して出力する波形乗算処理と、前記波形乗算処理により発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する楽音波形発生処理とをコンピュータで実行させることを特徴とする。
【発明の効果】
【００１３】
請求項１、５に記載の発明によれば、予めウェーブレット波形の発生タイミング、周波数および振幅を決めるデータセットを複数記憶しておき、発生タイミング順に読み出したデータセットが指定する周波数および振幅のウェーブレット波形を発生し、これら発生タイミング順に発生する一連のウェーブレット波形を重ね合わせるウェーブレット逆変換にて波形再生するので、比較的簡単な処理で複雑な波形を形成することができる。
【００１４】
請求項２、６に記載の発明によれば、発生タイミング、周波数、振幅およびベロシティ変換特性を一組とした音色データを予め複数記憶しておき、発音すべき音高および音量が指定されると、これら音色データを発生タイミング順に読み出す。そして、読み出された音色データの周波数を指定された音高に応じて変調し、変調された周波数のウェーブレット波形を読み出す。次に、読み出された音色データのベロシティ変換特性に従い、指定された音量を変換し、変換された音量に応じて当該音色データの振幅を調整する。次いで、この調整された音色データの振幅を、読み出されたウェーブレット波形に乗算して出力する。こうして発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生するため、従来の正弦波合成方式で行われるエンベロープ処理を必要とせず、比較的簡単な処理で複雑な波形を形成することができる。また、音色データの周波数を音高に応じて変調するので、発音する音高毎に音色変化を与えることができる。さらに、音色データのベロシティ変換特性に従い、指定された音量を変換し、変換された音量に応じて当該音色データの振幅を調整するため、例えば押鍵タッチで音色を変化させることができる。
【００１５】
請求項３、７に記載の発明によれば、発生タイミング、周波数、振幅およびキースケール変換特性を一組とした音色データを予め複数記憶しておき、発音すべき音高および音量が指定されると、これら音色データを発生タイミング順に読み出す。そして、読み出された音色データの周波数を指定された音高に応じて変調し、変調された周波数のウェーブレット波形を読み出す。次に、読み出された音色データのキースケール変換特性に従い、指定された音高に対応したキースケール値を発生し、そのキースケール値に応じて当該音色データの振幅を調整する。次いで、この調整された音色データの振幅を、読み出されたウェーブレット波形に乗算して出力する。こうして発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する結果、比較的簡単な処理で複雑な波形を形成することができ、しかも音色データの周波数を音高に応じて変調するから、発音する音高毎に音色変化を与えることができる。さらに、音色データのキースケール変換特性に従い、指定された音高に対応したキースケール値を発生し、そのキースケール値に応じて当該音色データの振幅を調整するため、例えば押鍵する鍵毎に音色を変化させることができる。
【００１６】
請求項４、８に記載の発明によれば、発生タイミング、周波数、振幅、ベロシティ変換特性およびキースケール変換特性を一組とした音色データを予め複数記憶しておき、発音すべき音高および音量が指定されると、これら音色データを発生タイミング順に読み出す。そして、読み出された音色データの周波数を、指定された発音音高に応じて変調し、変調された周波数のウェーブレット波形を読み出す。次に、読み出された音色データのベロシティ変換特性に従い、指定された音量を変換すると共に、当該音色データのキースケール変換特性に従い、指定された音高に対応したキースケール値を発生し、変換された音量とキースケール値とに応じて当該音色データの振幅を調整する。次いで、この調整された音色データの振幅を、読み出されたウェーブレット波形に乗算して出力する。こうして発生タイミング順に出力される一連のウェーブレット波形を加算して楽音波形を発生する結果、比較的簡単な処理で複雑な波形を形成することができる。しかも、音色データの周波数を音高に応じて変調するから、発音する音高毎に音色変化を与えることができる。さらに、音色データのベロシティ変換特性およびキースケール変換特性に従い、指定された音量および音高を変換し、その変換値に応じて当該音色データの振幅を調整するため、例えば押鍵タッチや押鍵する鍵毎に音色変化を付与することができる。
【発明を実施するための最良の形態】
【００１７】
本発明による波形発生装置は、電子楽器や楽音制御装置などに適用され得る。以下では、本発明による最良の実施形態による電子楽器を実施例とし、これについて図面を参照して説明する。
【００１８】
Ａ．構成
（１）全体構成
図１は実施例である電子楽器の全体構成を示すブロック図である。この図において、鍵盤１は押離鍵操作に応じたキーオン／キーオフイベントおよびノート番号、ベロシティ等からなる演奏情報を発生する。スイッチ部２は楽器パネルに配設される各種スイッチ（例えば電源スイッチや音色選択スイッチ等）から構成され、ユーザのスイッチ操作に対応したスイッチイベントを発生する。ＲＯＭ３は各種制御プログラムやデータテーブルを記憶するＲＯＭである。ここで言う各種制御プログラムとは、後述するメインルーチンおよびタイマインタラプト処理を含む。また、データテーブルとは、後述するベロシティテーブルＶＬＴおよびキースケールテーブルＫＳＴを指す。
【００１９】
ＲＡＭ４は各種レジスタ・フラグデータを一時記憶するワークエリアと、各種音色に対応した複数の音色データテーブルＴＣＴを格納するデータエリアとを備える。ワークエリアの構成およびデータエリアに格納される音色データテーブルＴＣＴの構成については追って詳述する。表示部５はＬＣＤパネルおよび駆動ドライバから構成され、後述するＣＰＵ７から供給される表示制御信号に応じて楽器各部の設定状態や動作状態などを表示する。モジュレーションホイール６は、ユーザのホイール操作に対応した変調値ＭＯＤを発生する。変調値ＭＯＤは、鍵盤１が発生する演奏情報の内、ベロシティをレベル制御する。
【００２０】
ＣＰＵ７は、スイッチ部２から供給されるスイッチイベントに基づき楽器各部の動作状態を設定したり、鍵盤１から供給される演奏情報に応じて音源８に発音および消音を指示する。音源８に発音を指示する場合、ＣＰＵ７は押鍵された鍵のノート番号ＮＯＴＥと、このノート番号ＮＯＴＥに対応してＲＡＭ４のデータエリアに格納される音色データテーブルＴＣＴから読み出される音色データとを音源８に送出する。音源８はＣＰＵ７からの指示に従って楽音波形を発生する。音源８の構成については追って述べる。Ｄ／Ａ変換器９は、音源８が出力する楽音波形をアナログ形式の波形信号に変換して出力する。サウンドシステム１０は、Ｄ／Ａ変換器９から出力される波形信号から不要ノイズを除去する等のフィルタリングを施した後、これを増幅してスピーカ１１から発音させる。
【００２１】
（２）音色データテーブルＴＣＴの構成
次に、図２〜図５を参照してＲＡＭ４のデータエリアに格納される音色データテーブルＴＣＴの構成について説明する。図２に図示するように、音色データテーブルＴＣＴは、発生楽音の音色を決める複数のテーブルＴＢＬ［１］〜ＴＢＬ［Ｍ］から構成される。これらテーブルＴＢＬ［１］〜ＴＢＬ［Ｍ］は、後述するインデックスＩＤＸで指定される。インデックスＩＤＸで指定される１つのテーブルＴＢＬ［ＩＤＸ］には、時刻ＴＩＭＥ、周波数ＰＩＴＣＨ、振幅ＡＭＰ、ベロシティテーブル番号ＶＴ、キースケールテーブル番号ＫＳおよびループ間隔ＬＯＯＰを一組とするデータセットが格納される。
【００２２】
時刻ＴＩＭＥは波形発生タイミングを表す時間情報であり、前データセットからの経過時間（単位ｍＳｅｃ）で表現される。なお、終端テーブルＴＢＬ［Ｍ］に格納される時刻ＴＩＭＥにはテーブルの終わりを表す値「−１」が格納される。周波数ＰＩＴＣＨは、後述する波形ＲＯＭ８１に格納されるウェーブレット波形ＷＬの読み出し速度を表す。例えば、周波数ＰＩＴＣＨが「１」なら１倍速（原ピッチ）で読み出し、「２」なら２倍速で読み出す。振幅ＡＭＰは、後述する波形ＲＯＭ８１から読み出されるウェーブレット波形ＷＬに乗算する振幅値を表す。
【００２３】
ベロシティテーブル番号ＶＴは、ＲＯＭ３に格納されるベロシティテーブルＶＬＴを指定する。例えば図３に図示するように、ＲＯＭ３に４種のベロシティテーブルＶＬＴ（０）〜ＶＬＴ（３）が格納されている場合、ベロシティテーブル番号ＶＴの値「０」〜「３」にてそれぞれ指定される。なお、ＲＯＭ３に格納されるベロシティテーブルＶＬＴ（０）〜ＶＬＴ（３）は、入力ベロシティ（鍵盤１が発生するベロシティ値もしくはそれをモジュレーションホイール６で調整したベロシティ値）を出力ベロシティに変換する特性を表す。出力ベロシティは上記振幅ＡＭＰを変調する値として使用される。
【００２４】
キースケールテーブル番号ＫＳは、ＲＯＭ３に格納されるキースケールテーブルＫＳＴを指定する。例えば図４に図示するように、ＲＯＭ３に４種のキースケールテーブルＫＳＴ（０）〜ＫＳＴ（３）が格納されている場合、キースケールテーブル番号の値「０」〜「３」にてそれぞれ指定される。なお、ＲＯＭ３に格納されるキースケールテーブルＫＳＴ（０）〜ＫＳＴ（３）は、押鍵された鍵のノート番号ＮＯＴＥをキースケール出力に変換する特性を表す。キースケール出力は上記振幅ＡＭＰを変調する値として使用される。ループ間隔ＬＯＯＰは、テーブルＴＢＬ［ＩＤＸ］に含まれるデータセットで修飾されるウェーブレット波形中で予め定められた波形区間を繰り返し読み出し（ループ再生）する間隔（１ｍｓｅｃ単位の時間間隔）を表す。
【００２５】
以上説明したデータセットを含むテーブルＴＢＬ［１］〜ＴＢＬ［１０］から構成される音色データテーブルＴＣＴの一例を図５に図示する。この図に示す音色データテーブルＴＣＴの場合、キーオンと同時にテーブルＴＢＬ［１］〜ＴＢＬ［４］に含まれる各データセットの内容に従ってそれぞれ個々にウェーブレット波形ＷＬを修飾し、続いてキーオン時点から１０ｍｓｅｃ経過して時点でテーブルＴＢＬ［５］〜ＴＢＬ［６］に基づきそれぞれ個々にウェーブレット波形を修飾する。この後、前データセットのタイミングから５ｍｓｅｃ、７ｍｓｅｃおよび３ｍｓｅｃ経過する毎に、テーブルＴＢＬ［７］、テーブルＴＢＬ［８］およびテーブルＴＢＬ［９］〜ＴＢＬ［１０］の各データセットの内容に応じたウェーブレット波形修飾を順次行う。なお、こうしたウェーブレット波形修飾が意図するところについては追って述べる。
【００２６】
（３）ＲＡＭ４の構成
次に、図６を参照してＲＡＭ４が備えるワークエリアの構成について説明する。ＲＡＭ４のワークエリアは、レジスタエリアＴＡ、後述する波形発生器８２−１〜８２−Ｎに対応して設けられる波形発生エリアＷＧ［１］〜ＷＧ［Ｎ］およびループ処理エリアＬＰＴ［１］〜ＬＰＴ［Ｌ］から構成される。レジスタエリアＴＡは、レジスタＮＯＴＥ、レジスタＶＥＬ、レジスタＶＥＬ＿ＯＲＧ、レジスタＩＤＸおよびレジスタＴＩＭＥを備える。レジスタＮＯＴＥには、鍵盤１にて押鍵された鍵のノート番号がストアされる。レジスタＶＥＬ＿ＯＲＧには、押鍵に応じて発生するベロシティがストアされる。以下、レジスタＶＥＬ＿ＯＲＧの内容を基準ベロシティＶＥＬ＿ＯＲＧと称す。レジスタＶＥＬには、モジュレーションホイール６のホイール操作に応じて基準ベロシティＶＥＬ＿ＯＲＧを変化させたベロシティ（以下、調整ベロシティと記す）がストアされる。レジスタＩＤＸには、前述した音色データテーブルＴＣＴ（図２または図５参照）を構成するテーブルＴＢＬ［１］〜ＴＢＬ［Ｍ］を指定するインデックス値がストアされる。レジスタＩＤＸの内容をインデックスＩＤＸと称す。レジスタＴＩＭＥには、波形発生タイミングを表す前述の時刻ＴＩＭＥがストアされる。
【００２７】
波形発生エリアＷＧ［１］〜ＷＧ［Ｎ］は、後述する波形発生器８２−１〜８２−Ｎに供給するパラメータを一時記憶するフラグＯＮ、レジスタＡＤＲ、レジスタＰＩＴＣＨ、レジスタＡＭＰ、レジスタＶＴおよびレジスタＫＳを各々備える。フラグＯＮは、波形発生中に「１」、波形発生停止中に「０」となるフラグである。レジスタＡＤＲには、波形ＲＯＭ８１（後述する）に格納されるウェーブレット波形ＷＬの読み出しアドレスがストアされる。以後、レジスタＡＤＲの内容を読み出しアドレスＡＤＲと記す。なお、読み出しアドレスＡＤＲは整数部アドレスと小数部アドレスとから形成される。レジスタＰＩＴＣＨ、レジスタＡＭＰ、レジスタＶＴおよびレジスタＫＳには、上述した音色データテーブルＴＣＴ（図２参照）においてインデックスＩＤＸで指定されるテーブルＴＢＬ［ＩＤＸ］から読み出される周波数ＰＩＴＣＨ、振幅ＡＭＰ、ベロシティテーブル番号ＶＴおよびキースケールテーブル番号ＫＳがそれぞれストアされる。
【００２８】
ループ処理エリアＬＰＴ［１］〜ＬＰＴ［Ｌ］は、後述する波形発生器８２−１〜８２−Ｎのループ再生動作を制御するパラメータを一時記憶するレジスタＩＤＸ、レジスタＬＯＯＰおよびカウンタＴＩＭＥを各々備える。レジスタＩＤＸには、レジスタエリアＴＡのインデックスＩＤＸがストアされる。レジスタＬＯＯＰには、音色データテーブルＴＣＴにてインデックスＩＤＸで指定されるテーブルＴＢＬ［ＩＤＸ］から読み出されるループ間隔ＬＯＯＰがストアされる。カウンタＴＩＭＥはループ再生期間をｍｓｅｃ単位で計時するレジスタである。
【００２９】
（４）音源８の構成
次に、図７〜図８を参照して音源８の構成について説明する。音源８は、図７に示すように、波形ＲＯＭ８１、波形発生器８２−１〜８２−Ｎおよび加算器８３から構成される。波形ＲＯＭ８１には、図８に図示する形状のウェーブレット波形ＷＬが格納される。ウェーブレット波形ＷＬとは、ガウス関数（正規分布）の包絡線で正弦波振幅を変調した波形である。波形発生器８２−１〜８２−Ｎは、それぞれ波形読出部８２ａおよび振幅乗算部８２ｂから構成される。
【００３０】
波形発生器８２−１〜８２−Ｎの波形読出部８２ａには、ＣＰＵ７がＲＡＭ４の波形発生エリアＷＧ［１］〜ＷＧ［Ｎ］（図６参照）からそれぞれ読み出す周波数ＰＩＴＣＨおよび読み出しアドレスＡＤＲと、レジスタエリアＴＡから読み出すノート番号ＮＯＴＥとが供給される。波形読出部８２ａは、周波数ＰＩＴＣＨおよびノート番号ＮＯＴＥに対応した読み出し速度で読み出しアドレスＡＤＲから波形ＲＯＭ８１に格納されるウェーブレット波形ＷＬを読み出す。なお、読み出しアドレスＡＤＲは小数部を含むため、波形読出部８２ａでは読み出しアドレスＡＤＲの整数部で小数部に対応したウェーブレット波形ＷＬを補間読み出しする。
【００３１】
波形発生器８２−１〜８２−Ｎの振幅乗算部８２ｂには、ＣＰＵ７がＲＡＭ４の波形発生エリアＷＧ［１］〜ＷＧ［Ｎ］（図６参照）からそれぞれ読み出す振幅ＡＭＰ、ベロシティテーブル番号ＶＴおよびキースケールテーブル番号ＫＳと、レジスタエリアＴＡから読み出す調整ベロシティＶＥＬおよびノート番号ＮＯＴＥとが供給される。各振幅乗算部８２ｂでは、波形読出部８２ａが出力するウェーブレット波形ＷＬの波形値をレベル制御する。具体的には、ベロシティテーブル番号ＶＴで指定されるベロシティテーブルＶＬＴ（図３参照）にて調整ベロシティＶＥＬを出力ベロシティに変換すると共に、キースケールテーブル番号ＫＳで指定されるキースケールテーブルＫＳＴ（図４参照）にてノート番号ＮＯＴＥをキースケール出力に変換した後、出力ベロシティとキースケール出力とに応じて振幅ＡＭＰを変調し、変調された振幅ＡＭＰに従って波形読出部８２ａが出力するウェーブレット波形ＷＬをレベル制御する。加算器８３は、波形発生器８２−１〜８２−Ｎの各振幅乗算部８２ｂからそれぞれ出力されるウェーブレット波形ＷＬを加算合成して楽音波形Ｗを形成する。
【００３２】
こうした構成の音源８は次に説明する原理に基づいて楽音波形Ｗを形成している。スペクトル解析手法として公知のウェーブレット変換理論では、不規則に見える複雑な波形も局在的なウェーブレット波形ＷＬの重ね合わせで表現できるとされる。音源８では、こうした理論に基づき、複数のウェーブレット波形ＷＬを重ね合わせて波形形成するウェーブレット逆変換を行っている。
つまり、前述した音色データテーブルＴＣＴに登録されるデータセット（テーブルＴＢＬ）の内容は、所定音色の楽音波形についてウェーブレット変換して得られる一群のウェーブレット波形を表すパラメータ（フーリエ変換のフーリエ係数に相当）である。そして、音源８では、波形ＲＯＭ８１から時分割に読み出した複数のウェーブレット波形ＷＬについて音色データテーブルＴＣＴのデータセットに従って修飾し、修飾された複数のウェーブレット波形ＷＬを重ね合わせるウェーブレット逆変換にて所定音色の楽音波形を再生するようになっている。
【００３３】
Ｂ．動作
次に、図９〜図１６を参照して実施例の動作を説明する。上述した実施例の構成はハードウェアイメージとして捉らえた機能構成を説明したが、以下に説明する動作では、ＣＰＵ７が音源８の機能を兼ねる処理を実行するものとしている。また、この動作説明では、説明の簡略化を図るため、モノフォニック発音を前提としている。以下では、最初に全体の概略動作としてＣＰＵ７が実行するメインルーチンの動作を説明した後、このメインルーチンからコールされる鍵盤処理およびモジュレーション処理の各動作について述べ、続いてタイマインタラプト処理の動作を説明する。
【００３４】
（１）メインルーチンの動作
電源スイッチ操作で実施例がパワーオンされると、ＣＰＵ７はＲＯＭ３から所定の制御プログラムを読み出して自身にロードし、図９に示すメインルーチンを実行する。メインルーチンが実行されると、ＣＰＵ７はステップＳＡ１に処理を進め、ＲＡＭ４に格納される各種レジスタやフラグ類をリセットしたり初期値をセットする初期化処理を行う。具体的には、ＲＡＭ４のレジスタエリアＴＡにおけるレジスタＮＯＴＥおよびレジスタＴＩＭＥに初期値「−１」を、波形発生エリアＷＧ［１］〜ＷＧ［Ｎ］の各フラグＯＮを「０」を、ループ処理エリアＬＰＴ［１］〜ＬＰＴ［Ｌ］の各レジスタＬＯＯＰ（ループ間隔ＬＯＯＰ）に「０」をそれぞれセットする。
【００３５】
そして、初期化処理が完了すると、ＣＰＵ７はステップＳＡ２に進み、スイッチ部２のスイッチ操作に応じたスイッチ処理を実行する。例えばＲＡＭ４のデータエリアに格納される各種音色に対応した複数の音色データテーブルＴＣＴの内から音色選択スイッチの操作に応じて任意の音色データテーブルＴＣＴが選択された場合、その選択された音色データテーブルＴＣＴの内容を、例えば図５に図示する表示形態で表示部５に画面表示したり、画面表示された音色データテーブルＴＣＴの内容をユーザのスイッチ操作に応じて編集したりする等の処理を実行する。次いで、ステップＳＡ３では、鍵盤１の押離鍵操作に応じて発音／消音を指示する鍵盤処理を実行する。続いて、ステップＳＡ４では、モジュレーションホイール６のホイール操作に応じて、押鍵に対応して発生するベロシティを修飾するモジュレーションホイール処理を実行する。そして、ステップＳＡ５では、例えば発生楽音に効果付与する等の、その他の処理を実行する。以後、電源がオフされるまで上述したステップＳＡ２〜ＳＡ５を繰り返し実行する。
【００３６】
（２）鍵盤処理の動作
次に、図１０を参照して鍵盤処理の動作を説明する。上述したメインルーチンのステップＳＡ３（図９参照）を介して本処理が実行されると、ＣＰＵ７は図１０に示すステップＳＢ１に進み、鍵イベントに基づき状態判定する。押離鍵操作が行われず鍵イベントに変化が無い場合には、何も行わずに本処理を完了させる。
一方、押鍵操作に応じてキーオンイベントが発生した場合には、ステップＳＢ２に進む。ステップＳＢ２では、レジスタＮＯＴＥの値が「−１」、すなわち消音中における新たな押鍵であるか否かを判断する。発音中の押鍵であれば、判断結果は「ＮＯ」になり、本処理を完了させる。一方、消音中の新たな押鍵であると、判断結果が「ＹＥＳ」となり、ステップＳＢ３に進む。
【００３７】
ステップＳＢ３では、インデックスＩＤＸに「０」にストアすると共に、このインデックスＩＤＸで指定される音色データテーブルＴＣＴ中のテーブルＴＢＬ［ＩＤＸ］の時刻ＴＩＭＥに、１ｍｓｅｃ内に実行されるタイマインタラプト処理回数Ｄを乗算し、これにて得られる波形形成タイミングをレジスタＴＩＭＥにストアする。また、ステップＳＢ３では、押鍵された鍵のノート番号をレジスタＮＯＴＥに、押鍵に応じて発生したベロシティを一旦レジスタＶＥＬに格納した後にレジスタＶＥＬ＿ＯＲＧにストアし直して基準ベロシティＶＥＬ＿ＯＲＧとする。こうして、押鍵に対応して発生する各パラメータをレジスタセットし終えると、本処理を完了させる。
【００３８】
これに対し、離鍵操作された場合には、ステップＳＢ４に進み、レジスタＮＯＴＥの値が「−１」、すなわち消音中であるか否かを判断する。消音中であると、判断結果は「ＹＥＳ」になり、何も行わずに本処理を完了させるが、発音中の離鍵であると、判断結果は「ＮＯ」になり、ステップＳＢ５に進み、発音中の楽音波形を消音する消音処理を実行する。この後、ステップＳＢ６に進み、レジスタＴＩＭＥ、ＮＯＴＥにそれぞれ「−１」をストアして消音状態である旨を表してから本処理を完了させる。
【００３９】
（３）モジュレーションホイール処理の動作
次に、図１１を参照してモジュレーションホイール処理の動作を説明する。前述したメインルーチンのステップＳＡ４（図９参照）を介して本処理が実行されると、ＣＰＵ７は図１１に示すステップＳＣ１に進み、ユーザのホイール操作に対応してモジュレーションホイール６が出力する変調値ＭＯＤ（−１〜１）をレジスタＭＯＤにストアする。以下、レジスタＭＯＤの値を変調値ＭＯＤと称す。次いで、ステップＳＣ２では、変調値ＭＯＤが「０」より大きいか否かを判断する。変調値ＭＯＤが「０」より大きければ、判断結果は「ＹＥＳ」になり、ステップＳＣ３に進み、ＶＥＬ＿ＯＲＧ＋（１２７−ＶＥＬ＿ＯＲＧ）×ＭＯＤなる算出式にて求めた調整ベロシティをレジスタＶＥＬにストアして本処理を終える。一方、変調値ＭＯＤが「０」より小さいと、上記ステップＳＣ２の判断結果が「ＮＯ」になり、ステップＳＣ４に進み、ＶＥＬ＿ＯＲＧ＋ＶＥＬ＿ＯＲＧ×ＭＯＤなる算出式にて求めた調整ベロシティをレジスタＶＥＬにストアして本処理を終える。
【００４０】
（４）タイマインタラプト処理の動作
次に、図１２を参照してタイマインタラプト処理の動作を説明する。ＣＰＵ７は、前述したメインルーチン（図９参照）を実行している過程で一定周期（本実施例の場合、（１／Ｄ）ｍｓｅｃ）毎にタイマインタラプト処理を割込み実行する。割込み実行タイミングになると、ＣＰＵ７は図１２に示すステップＳＤ１に処理を進め、キーオン（押鍵）に対応して音色データテーブルＴＣＴから新たに読み出したデータセットに基づき楽音形成したり、ループ再生過程にある楽音を形成したりするパラメータ更新処理を実行する。このパラメータ更新処理の詳細については追って述べる。パラメータ更新処理が完了すると、ＣＰＵ７はステップＳＤ２に進み、レジスタＳＵＭ（後述する）をゼロリセットすると共に、ポインタｉに初期値「１」をセットする。
【００４１】
ステップＳＤ３〜ＳＤ８では、ＲＡＭ４のワークエリア（図６参照）における波形発生エリアＷＧ［１］〜ＷＧ［Ｎ］の内容を参照して楽音波形Ｗを発生させる。すなわち、ステップＳＤ３では、ポインタｉで指定される波形発生エリアＷＧ［ｉ］のフラグＯＮが「１」、つまり波形発生中であるか否かを判断する。フラグＯＮが「０」の波形発生停止中であれば、判断結果は「ＮＯ」になり、後述するステップＳＤ７に処理を進める。一方、波形発生中であると、判断結果が「ＹＥＳ」となり、ステップＳＤ４に進む。ステップＳＤ４では、ポインタｉで指定される波形発生エリアＷＧ［ｉ］の読み出しアドレスＡＤＲに応じて波形ＲＯＭ８１（図７参照）から読み出されるウェーブレット波形ＷＬについてレベル制御した結果をレジスタＳＵＭに加算する。
【００４２】
ウェーブレット波形ＷＬのレベル制御とは、ポインタｉで指定される波形発生エリアＷＧ［ｉ］のベロシティテーブル番号ＶＴで指定されるベロシティテーブルＶＬＴ（図３参照）にて調整ベロシティＶＥＬを出力ベロシティに変換すると共に、キースケールテーブル番号ＫＳで指定されるキースケールテーブルＫＳＴ（図４参照）にてノート番号ＮＯＴＥをキースケール出力に変換した後、この出力ベロシティとキースケール出力とに応じて、ポインタｉで指定される波形発生エリアＷＧ［ｉ］の振幅ＡＭＰを変調し、変調された振幅ＡＭＰを、上記読み出しアドレスＡＤＲに応じて波形ＲＯＭ８１から読み出されるウェーブレット波形ＷＬの波形値に乗算する処理を指す。
【００４３】
また、ステップＳＤ４では、こうしてウェーブレット波形ＷＬをレベル制御した後、押鍵された鍵のノート番号ＮＯＴＥと、ポインタｉで指定される波形発生エリアＷＧ［ｉ］の周波数ＰＩＴＣＨとで定まる読み出し速度に従ってポインタｉで指定される波形発生エリアＷＧ［ｉ］の読み出しアドレスＡＤＲを更新する。そして、ステップＳＤ５では、更新された読み出しアドレスＡＤＲがエンドアドレス（ウェーブレット波形ＷＬの終端）を超えたか否かを判断する。読み出しアドレスＡＤＲがエンドアドレスを超えていなければ、判断結果は「ＮＯ」になり、後述するステップＳＤ７に進む。一方、読み出しアドレスＡＤＲがエンドアドレスを超えると、判断結果が「ＹＥＳ」となり、ステップＳＤ６に進み、ポインタｉで指定される波形発生エリアＷＧ［ｉ］のフラグＯＮをゼロリセットする。
【００４４】
ステップＳＤ７では、ポインタｉの値がＮ（前述した波形発生器８２−１〜８２−Ｎの数に相当）に達したかどうかを判断する。ポインタｉの値がＮに達していなければ、判断結果は「ＮＯ」になり、ステップＳＤ８に進み、ポインタｉをインクリメントして歩進させてから上述のステップＳＤ３に処理を戻す。以後、ポインタｉがＮに達するまで、ポインタｉを歩進させながら、上述したステップＳＤ３〜ＳＤ６を繰り返す。そして、ポインタｉがＮに達すると、上記ステップＳＤ７の判断結果が「ＹＥＳ」になり、ステップＳＤ９に進む。ステップＳＤ９では、レジスタＳＵＭに加算された波形（波形発生エリアＷＧ［１］〜ＷＧ［Ｎ］に格納される各パラメータに対応して修飾されたウェーブレット波形ＷＬ）を楽音波形Ｗとして出力した後、本処理を完了させる。
【００４５】
（５）パラメータ更新処理の動作
次に、図１３〜図１６を参照してパラメータ更新処理の動作を説明する。ＣＰＵ７は、上述したタイマインタラプト処理のステップＳＤ１（図１２参照）を介してパラメータ更新処理を実行する。パラメータ更新処理は、図１３に示すように、音色データテーブル読み出し処理（ステップＳＥ１）およびループ処理（ステップＳＥ２）から構成される。
【００４６】
＜音色データテーブル読み出し処理の動作＞
ステップＳＥ１を介して音色データテーブル読み出し処理が実行されると、ＣＰＵ７は図１４に示すステップＳＦ１に処理を進め、ＲＡＭ４のレジスタＴＩＭＥに格納される時刻ＴＩＭＥの値が「−１」、つまり消音中であるか否かを判断する。消音中であれば、判断結果は「ＹＥＳ」になり、この場合、音色データテーブルＴＣＴを読み出す必要はない為、何も処理せずに本処理を完了する。一方、消音中でなければ、判断結果が「ＮＯ」になり、次のステップＳＦ２に進む。ステップＳＦ２では、時刻ＴＩＭＥの値が「０」、つまり波形発生タイミング下であるかどうかを判断する。波形発生タイミング下でなければ、判断結果は「ＮＯ」になり、ステップＳＦ３に進み、時刻ＴＩＭＥをデクリメントして本処理を終える。
【００４７】
一方、波形発生タイミング下であると、上記ステップＳＦ２の判断結果が「ＹＥＳ」となり、ステップＳＦ４に進む。ステップＳＦ４では、インデックスＩＤＸの値をレジスタｘにストアする。そして、ステップＳＦ５を介してパラメータセット処理を実行すると、ＣＰＵ７は図１５に示すステップＳＦ５−１に進み、ポインタｉに初期値「１」をセットし、続くステップＳＦ５−２では、ポインタｉで指定される波形発生エリアＷＧ［ｉ］のフラグＯＮが「０」、つまり波形発生停止中であるか否かを判断する。波形発生中であると、判断結果は「ＮＯ」になり、ステップＳＦ５−３に進む。ステップＳＦ５−３では、ポインタｉの値がＮに達したかどうかを判断する。ポインタｉの値がＮに達していなければ、判断結果は「ＮＯ」になり、ステップＳＦ５−４に進み、ポインタｉを歩進させてステップＳＦ５−２に処理を戻す。
【００４８】
このように、ステップＳＦ５−２〜ＳＦ５−４では、ポインタｉを歩進させながら、波形発生停止中の波形発生エリアＷＧ［ｉ］を検索する。そして、波形発生停止中の波形発生エリアＷＧ［ｉ］が検索されると、上記ステップＳＦ５−２の判断結果が「ＹＥＳ」になり、ステップＳＦ５−５に進み、レジスタｘで指定されるテーブルＴＢＬ［ｘ］に含まれるデータセットを音色データテーブルＴＣＴから読み出し、それらをポインタｉで指定される波形発生エリアＷＧ［ｉ］の対応するレジスタにストアする。
【００４９】
すなわち、テーブルＴＢＬ［ｘ］の周波数ＰＩＴＣＨを波形発生エリアＷＧ［ｉ］のレジスタＰＩＴＣＨに、テーブルＴＢＬ［ｘ］の振幅ＡＭＰを波形発生エリアＷＧ［ｉ］のレジスタＡＭＰに、テーブルＴＢＬ［ｘ］のベロシティテーブル番号ＶＴを波形発生エリアＷＧ［ｉ］のレジスタＶＴに、テーブルＴＢＬ［ｘ］のキースケールテーブル番号ＫＳを波形発生エリアＷＧ［ｉ］のレジスタＫＳにそれぞれストアする。また、ステップＳＦ５−５では、波形発生エリアＷＧ［ｉ］の読み出しアドレスＡＤＲをゼロリセットした後、波形発生エリアＷＧ［ｉ］のフラグＯＮを「１」にセットして本処理を終える。
【００５０】
さて、こうしたパラメータセット処理が完了すると、ＣＰＵ７は図１４に示すステップＳＦ６に処理を進める。ステップＳＦ６では、インデックスＩＤＸで指定される音色データテーブルＴＣＴ中のテーブルＴＢＬ［ＩＤＸ］におけるループ間隔ＬＯＯＰの値が「０」、つまりループ再生するかどうかを判断する。ループ再生しない場合（ループ間隔ＬＯＯＰの値が「０」の場合）には、判断結果が「ＹＥＳ」になり、後述するステップＳＦ１２に進む。
【００５１】
一方、ループ再生を行う場合には、上記ステップＳＦ６の判断結果が「ＮＯ」になり、ステップＳＦ７に進み、ポインタｉに初期値「１」をセットする。次いで、ステップＳＦ８〜ＳＦ１０では、ループ間隔ＬＯＯＰの値が「０」となるループ処理エリアＬＰＴ［ｉ］（ｉ＝１〜Ｌ）をポインタｉを歩進させながら検索する。該当するループ処理エリアＬＰＴ［ｉ］が検索されなければ、ステップＳＦ９の判断結果が「ＹＥＳ」となり、後述するステップＳＦ１２に進む。これに対し、ループ間隔ＬＯＯＰの値が「０」となるループ処理エリアＬＰＴ［ｉ］を検索すると、ステップＳＦ８の判断結果が「ＹＥＳ」になり、ステップＳＦ１１に進む。
【００５２】
ステップＳＦ１１では、検索されたループ処理エリアＬＰＴ［ｉ］のレジスタＩＤＸにインデックスＩＤＸを、レジスタＬＯＯＰにテーブルＴＢＬ［ＩＤＸ］から読み出されるループ間隔ＬＯＯＰをそれぞれストアする。また、ステップＳＦ１１では、１ｍｓｅｃ内に実行されるタイマインタラプト処理回数Ｄをループ間隔ＬＯＯＰに乗算して得るループ再生期間をカウンタＴＩＭＥにセットする。そして、ステップＳＦ１２では、インデックスＩＤＸを歩進させると共に、歩進されたインデックスＩＤＸで指定される音色データテーブルＴＣＴ中のテーブルＴＢＬ［ＩＤＸ］の時刻ＴＩＭＥに、１ｍｓｅｃ内に実行されるタイマインタラプト処理回数Ｄを乗算し、その値をＲＡＭ４のレジスタＴＩＭＥにストアして上述のステップＳＦ１に処理を戻す。
【００５３】
このように、音色データテーブル読み出し処理では、波形発生タイミング毎に、波形発生停止中の波形発生エリアＷＧ［ｉ］に、音色データテーブルＴＣＴから読み出したテーブルＴＢＬ［ＩＤＸ］のデータセットを与え、そのテーブルＴＢＬ［ＩＤＸ］がループ再生実行を指示する場合には、ループ再生していないループ処理エリアＬＰＴ［ｉ］に、当該テーブルＴＢＬ［ＩＤＸ］のループ間隔ＬＯＯＰをストアすると共に、当該ループ間隔ＬＯＯＰに、１ｍｓｅｃ内に実行されるタイマインタラプト処理回数Ｄを乗算して得るループ再生期間をカウンタＴＩＭＥにセットする。この後、インデックスＩＤＸを歩進させ、時刻ＴＩＭＥを更新させる。
【００５４】
＜ループ処理の動作＞
上述した音色データテーブル読み出し処理が完了すると、ＣＰＵ７はステップＳＥ２（図１３参照）を介してループ処理を実行する。ループ処理が実行されると、ＣＰＵ７は図１６に示すステップＳＧ１に進み、ポインタｉに初期値「１」をセットする。続いて、ステップＳＧ２〜ＳＧ４では、ポインタｉを歩進させながら、レジスタＬＯＯＰの値が「０」でないループ処理エリアＬＰＴ［ｉ］（ｉ＝１〜Ｌ）、つまりループ再生中のループ処理エリアＬＰＴ［ｉ］を検索する。該当するループ処理エリアＬＰＴ［ｉ］が検索されなければ、ステップＳＧ３の判断結果が「ＹＥＳ」となり、本処理を完了させる。
【００５５】
一方、ループ再生中のループ処理エリアＬＰＴ［ｉ］を検索すると、ステップＳＧ２の判断結果が「ＮＯ」となり、ステップＳＧ５に進む。ステップＳＧ５では、ループ再生中のループ処理エリアＬＰＴ［ｉ］におけるレジスタＴＩＭＥの値が「０」、すなわち波形再発生タイミングに達したか否かを判断する。波形再発生タイミングに達していなければ、判断結果は「ＮＯ」になり、ステップＳＧ６に進み、ループ処理エリアＬＰＴ［ｉ］におけるレジスタＴＩＭＥの値をデクリメントしてステップＳＧ３に進み、全てのループ処理エリアＬＰＴ［ｉ］〜ＬＰＴ［Ｌ］について検索し終えたかどうかを判断する。
【００５６】
検索し終えていなければ、判断結果は「ＮＯ」になり、ステップＳＧ４にてポインタｉを歩進させた後、上述のステップＳＧ２に処理を戻す。そして、例えば歩進されたポインタｉが指定するループ処理エリアＬＰＴ［ｉ］が波形再発生タイミングになったとする。そうすると、ステップＳＧ５の判断結果が「ＹＥＳ」になり、ステップＳＧ７に進む。ステップＳＧ７では、ループ処理エリアＬＰＴ［ｉ］のレジスタＩＤＸに格納されるインデックスＩＤＸをレジスタｘにストアする。続いて、ステップＳＧ８を介して図１５に示すパラメータセット処理を実行する。
【００５７】
パラメータセット処理が実行されると、ＣＰＵ７は図１５に示すステップＳＦ５−１に進み、ポインタｉに初期値「１」をセットし、続くステップＳＦ５−２では、ポインタｉで指定される波形発生エリアＷＧ［ｉ］のフラグＯＮが「０」、つまり波形発生停止中であるか否かを判断する。波形発生中であると、判断結果は「ＮＯ」になり、ステップＳＦ５−３に進む。ステップＳＦ５−３では、ポインタｉの値がＮに達したかどうかを判断する。ポインタｉの値がＮに達していなければ、判断結果は「ＮＯ」になり、ステップＳＦ５−４に進み、ポインタｉを歩進させてステップＳＦ５−２に処理を戻す。
【００５８】
このように、ステップＳＦ５−２〜ＳＦ５−４では、ポインタｉを歩進させながら、波形発生停止中の波形発生エリアＷＧ［ｉ］を検索する。そして、波形発生停止中の波形発生エリアＷＧ［ｉ］が検索されると、上記ステップＳＦ５−２の判断結果が「ＹＥＳ」になり、ステップＳＦ５−５に進み、レジスタｘで指定されるテーブルＴＢＬ［ｘ］に含まれるデータセットを音色データテーブルＴＣＴから読み出し、それらをポインタｉで指定される波形発生エリアＷＧ［ｉ］の対応するレジスタにストアする。
【００５９】
すなわち、テーブルＴＢＬ［ｘ］の周波数ＰＩＴＣＨを波形発生エリアＷＧ［ｉ］のレジスタＰＩＴＣＨに、テーブルＴＢＬ［ｘ］の振幅ＡＭＰを波形発生エリアＷＧ［ｉ］のレジスタＡＭＰに、テーブルＴＢＬ［ｘ］のベロシティテーブル番号ＶＴを波形発生エリアＷＧ［ｉ］のレジスタＶＴに、テーブルＴＢＬ［ｘ］のキースケールテーブル番号ＫＳを波形発生エリアＷＧ［ｉ］のレジスタＫＳにそれぞれストアする。また、ステップＳＦ５−５では、波形発生エリアＷＧ［ｉ］の読み出しアドレスＡＤＲをゼロリセットした後、波形発生エリアＷＧ［ｉ］のフラグＯＮを「１」にセットして本処理を終える。
【００６０】
パラメータセット処理が完了すると、ＣＰＵ７は図１６に示すステップＳＧ９に処理を進める。ステップＳＧ９では、ポインタｉで指定されるループ処理エリアＬＰＴ［ｉ］のレジスタＬＯＯＰに格納されるループ間隔ＬＯＯＰに、１ｍｓｅｃ内に実行されるタイマインタラプト処理回数Ｄを乗算したループ再生期間をループ処理エリアＬＰＴ［ｉ］のカウンタＴＩＭＥにストアする。この後、ステップＳＧ３に進み、全てのループ処理エリアＬＰＴ［ｉ］〜ＬＰＴ［Ｌ］について検索し終えたかどうかを判断し、検索し終えた場合には、判断結果が「ＹＥＳ」となり、本処理を完了させる。
【００６１】
このように、ループ処理では、ループ再生中のループ処理エリアＬＰＴ［ｉ］を検索し、当該ループ処理エリアＬＰＴ［ｉ］が波形再発生タイミングに達した時点で、波形発生停止中の波形発生エリアＷＧ［ｉ］に音色データテーブルＴＣＴから読み出したテーブルＴＢＬ［ＩＤＸ］のデータセットを与え、この後、ループ再生完了したループ処理エリアＬＰＴ［ｉ］のループ間隔ＬＯＯＰに、１ｍｓｅｃ内に実行されるタイマインタラプト処理回数Ｄを乗算したループ再生期間をループ処理エリアＬＰＴ［ｉ］のカウンタＴＩＭＥにストアする。
【００６２】
以上説明したように、本実施例によれば、ウェーブレット波形ＷＬの発生タイミング、周波数および振幅を決めるデータセットを複数備えた音色データテーブルＴＣＴから発生タイミング順に読み出したデータセットが指定する周波数および振幅のウェーブレット波形ＷＬを発生し、発生した複数のウェーブレット波形ＷＬを重ね合わせるウェーブレット逆変換にて所定音色の楽音波形を再生するので、正弦波合成方式で行われるエンベロープ処理を必要とせず、比較的簡単な処理で複雑な波形を形成することが可能になっている。
【００６３】
また、上述した実施例では、データセットの周波数を押鍵された鍵のノート番号ＮＯＴＥに応じて変調するので、押鍵音毎に音色変化を与えることが可能になる。さらに、データセットの振幅をベロシティ変換出力およびキースケール変換出力に応じて変調可能にしたため、押鍵タッチやモジュレーションホイール６の操作で音色変化を与えたり、押鍵された鍵毎に異なる音色の楽音を発生させることもできる。
【図面の簡単な説明】
【００６４】
【図１】本発明による一実施例である電子楽器の全体構成を示すブロック図である。
【図２】音色データテーブルＴＣＴの構成を示す図である。
【図３】ＲＯＭ３に格納されるベロシティテーブルＶＬＴ（０）〜ＶＬＴ（３）とベロシティ番号ＶＴとの対応関係を示す図である。
【図４】ＲＯＭ３に格納されるキースケールテーブルＫＳＴ（０）〜ＫＳＴ（３）とキースケール番号ＫＳとの対応関係を示す図である。
【図５】音色データテーブルＴＣＴの一例を示す図である。
【図６】ＲＡＭ４のワークエリアの構成を示す図である。
【図７】音源８の構成を示すブロック図である。
【図８】波形ＲＯＭ８１に格納されるウェーブレット波形ＷＬを示す波形図である。
【図９】メインルーチンの動作を示すフローチャートである。
【図１０】鍵盤処理の動作を示すフローチャートである。
【図１１】モジュレーションホイール処理の動作を示すフローチャートである。
【図１２】タイマインタラプト処理の動作を示すフローチャートである。
【図１３】パラメータ更新処理の動作を示すフローチャートである。
【図１４】音色データテーブル読み出し処理の動作を示すフローチャートである。
【図１５】パラメータセット処理の動作を示すフローチャートである。
【図１６】ループ処理の動作を示すフローチャートである。
【符号の説明】
【００６５】
１  鍵盤
２  スイッチ部
３  ＲＯＭ
４  ＲＡＭ
５  表示部
６  モジュレーションホイール
７  ＣＰＵ
８  音源
９  Ｄ／Ａ
１０  サウンドシステム
１１  スピーカ
【図１】
2005215103.tif 000003
【図２】
2005215103.tif 000004
【図３】
2005215103.tif 000005
【図４】
2005215103.tif 000006
【図５】
2005215103.tif 000007
【図６】
2005215103.tif 000008
【図７】
2005215103.tif 000009
【図８】
2005215103.tif 000010
【図９】
2005215103.tif 000011
【図１０】
2005215103.tif 000012
【図１１】
2005215103.tif 000013
【図１２】
2005215103.tif 000014
【図１３】
2005215103.tif 000015
【図１４】
2005215103.tif 000016
【図１５】
2005215103.tif 000017
【図１６】
2005215103.tif 000018