(57)【要約】【課題】ピッチ変化波形や振幅変化波形を読み出すための特別の回路を追加することなく、生成する楽音にピッチや振幅の多彩でリアルな変化を付与することができる楽音生成装置を提供することを目的とする。【解決手段】波形メモリから楽音波形を読み出して振幅制御しミキシング処理して出力するハードウェア構成を用いて、ピッチ変化波形や振幅変化波形を読み出すようにし、読み出したピッチ変化波形や振幅変化波形で、楽音にピッチ変化や振幅変化を付与するようにしたことを特徴とする。また、クロスフェード機構を備え、ピッチ変化波形や振幅変化波形も、クロスフェードして切り替えることができるようにしたことを特徴とする。【選択図】  図２
2010237594.tif 000002
【特許請求の範囲】
【請求項１】
複数の波形データを記憶する波形メモリと、
複数の発音チャンネルのうちの各発音チャンネル毎に、ピッチ情報と、アドレス情報と、振幅情報を記憶する制御レジスタと、
前記各発音チャンネル毎に、前記制御レジスタで指定されたピッチ情報に応じたレートを生成するレート生成部と、
前記各発音チャンネル毎に、前記波形メモリの、前記制御レジスタで指定された前記アドレス情報が示すアドレスから、前記生成されたレートで、前記波形データを読み出す波形読出部と、
前記各発音チャンネル毎に、前記読み出された波形データの振幅を、前記制御レジスタで指定された前記振幅情報に応じて、制御する振幅制御部と、
発音指示に応じて、前記複数の発音チャンネルのうちの１ないし複数チャンネルに発音を割り当て、前記制御レジスタの該割り当てた発音チャンネルの記憶領域に、前記ピッチ情報、アドレス情報、及び振幅制御情報を設定し、前記楽音の発音の開始を指示する制御手段と
を備えた楽音生成装置であって、
前記波形メモリには、それぞれピッチの変化を示す複数の第１波形データと、それぞれ楽音波形を示す複数の第２波形データが記憶されており、
前記制御レジスタには、前記複数チャンネルのうちの任意の１のチャンネルから別の任意の１のチャンネルへの変調を指示する変調指示データが記憶され、
前記制御手段は、
(a)発音指示された楽音に関して、前記複数の発音チャンネルの中から１の発音チャンネルを第１変調チャンネルとして、また、別の１の発音チャンネルを被変調チャンネルとして割り当てる第１割当ステップと、
(b)前記制御レジスタの該割り当てた第１変調チャンネルの記憶領域に、１の前記第１波形データのアドレス情報と、当該第１波形データの時間軸の進行速度に応じたピッチ情報と、当該第１波形データによる変調の深さに応じた振幅情報を設定する第１設定ステップと、
(c)前記制御レジスタの該割り当てた被変調チャンネルの記憶領域に、１の前記第２波形データのアドレス情報と、生成する楽音の音高に応じたピッチ情報と、該楽音の振幅変化に応じた振幅情報とを設定する第２設定ステップと、
(d)前記制御レジスタに、前記変調チャンネルから前記被変調チャンネルへのピッチ変調を指示する変調指示データを設定する第３設定ステップと、
(e)前記第１変調チャンネルと前記被変調チャンネルに対して、それぞれ発音の開始を指示する第１発音指示ステップと
を実行し、
前記レート生成部は、前記制御レジスタに前記変調指示データが設定されているとき、前記被変調チャンネルの前記レートを、前記制御レジスタに記憶されている当該被変調チャンネルのピッチ情報と、前記振幅制御部から出力される前記変調チャンネルの前記第１波形データとに基づいて生成する
ことを特徴とする楽音生成装置。
【請求項２】
請求項１に記載の楽音生成装置において、さらに、
前記振幅制御部から出力される任意の前記発音チャンネルの波形データ間でクロスフェードを行うクロスフェード手段を備え、
前記制御手段は、前記楽音の発音開始後の所定のタイミングで、
(f)前記複数の発音チャンネルの中からさらに別の１の発音チャンネルを変調チャンネルとして割り当てる第２割当ステップと、
(g)前記制御レジスタの該割り当てた変調チャンネルの記憶領域に、別の１の第１波形データのアドレス情報と、当該別の第１波形データの時間軸の進行速度に応じたピッチ情報と、当該別の第１波形データによる変調の深さに応じた振幅情報を設定する第３設定ステップと、
(h)前記第２変調チャンネルに対して、発音の開始を指示する第２発音指示ステップと
を実行し、
前記クロスフェード手段は、前記振幅制御部から出力される前記第１変調チャンネルの前記第１波形データから、同出力される前記第２変調チャンネルの前記別の第１波形データへのクロスフェードを実行し、
前記レート生成部は、前記制御レジスタに前記変調指示データが設定されているとき、前記被変調チャンネルの前記レートを、前記制御レジスタに記憶されている当該被変調チャンネルのピッチ情報と、前記クロスフェード手段によりクロスフェードされた波形データとに基づいて生成する
ことを特徴とする楽音生成装置。
【請求項３】
複数の波形データを記憶する波形メモリと、
複数の発音チャンネルのうちの各発音チャンネル毎に、ピッチ情報と、アドレス情報と、振幅情報を記憶する制御レジスタと、
前記各発音チャンネル毎に、前記制御レジスタで指定されたピッチ情報に応じたレートを生成するレート生成部と、
前記各発音チャンネル毎に、前記波形メモリの、前記制御レジスタで指定された前記アドレス情報が示すアドレスから、前記生成されたレートで、前記波形データを読み出す波形読出部と、
前記各発音チャンネル毎に、前記読み出された波形データの振幅を、前記制御レジスタで指定された前記振幅情報に応じて、制御する振幅制御部と、
発音指示に応じて、前記複数の発音チャンネルのうちの１ないし複数チャンネルに発音を割り当て、前記制御レジスタの該割り当てた発音チャンネルの記憶領域に、前記ピッチ情報、アドレス情報、及び振幅制御情報を設定し、前記楽音の発音の開始を指示する制御手段と
を備えた楽音生成装置であって、
前記波形メモリには、それぞれ振幅の変化を示す複数の第１波形データと、それぞれ楽音波形を示す複数の第２波形データが記憶されており、
前記制御レジスタには、前記複数チャンネルのうちの任意の１のチャンネルから別の任意の１のチャンネルへの変調を指示する変調指示データが記憶され、
前記制御手段は、
(a)発音指示された楽音に関して、前記複数の発音チャンネルの中から１の発音チャンネルを第１変調チャンネルとして、また、別の１の発音チャンネルを被変調チャンネルとして割り当てる第１割当ステップと、
(b)前記制御レジスタの該割り当てた第１変調チャンネルの記憶領域に、１の前記第１波形データのアドレス情報と、当該第１波形データの時間軸の進行速度に応じたピッチ情報と、当該第１波形データによる変調の深さに応じた振幅情報を設定する第１設定ステップと、
(c)前記制御レジスタの該割り当てた被変調チャンネルの記憶領域に、１の前記第２波形データのアドレス情報と、生成する楽音の音高に応じたピッチ情報と、該楽音の振幅変化に応じた振幅情報とを設定する第２設定ステップと、
(d)前記制御レジスタに、前記変調チャンネルから前記被変調チャンネルへの振幅変調を指示する変調指示データを設定する第３設定ステップと、
(e)前記第１変調チャンネルと前記被変調チャンネルに対して、それぞれ発音の開始を指示する第１発音指示ステップと
を実行し、
前記振幅制御部は、前記制御レジスタに前記変調指示データが設定されているとき、前記被変調チャンネルの前記振幅を、前記制御レジスタに記憶されている当該被変調チャンネルの振幅情報と、前記変調チャンネルの前記第１波形データとに基づいて、制御する
ことを特徴とする楽音生成装置。
【請求項４】
請求項３に記載の楽音生成装置において、さらに、
前記振幅制御部から出力される任意の前記発音チャンネルの波形データ間でクロスフェードを行うクロスフェード手段を備え、
前記制御手段は、前記楽音の発音開始後の所定のタイミングで、
(f)前記複数の発音チャンネルの中からさらに別の１の発音チャンネルを変調チャンネルとして割り当てる第２割当ステップと、
(g)前記制御レジスタの該割り当てた変調チャンネルの記憶領域に、別の１の第１波形データのアドレス情報と、当該別の第１波形データの時間軸の進行速度に応じたピッチ情報と、当該別の第１波形データによる変調の深さに応じた振幅情報を設定する第３設定ステップと、
(h)前記第２変調チャンネルに対して、発音の開始を指示する第２発音指示ステップと
を実行し、
前記クロスフェード手段は、前記振幅制御部から出力される前記第１変調チャンネルの前記第１波形データから、同出力される前記第２変調チャンネルの前記別の第１波形データへのクロスフェードを実行し、
前記レート生成部は、前記制御レジスタに前記変調指示データが設定されているとき、前記被変調チャンネルの前記レートを、前記制御レジスタに記憶されている当該被変調チャンネルのピッチ情報と、前記クロスフェード手段によりクロスフェードされた波形データとに基づいて生成する
ことを特徴とする楽音生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、波形メモリ読み出し方式の楽音生成装置に関し、特に、生成する楽音にピッチや振幅の多彩でリアルな変化を付与することができる楽音生成装置に関する。
【背景技術】
【０００２】
従来より、ハードウェア構成の波形メモリ音源（音源チップ）で、ピッチＥＧ（エンベロープ発生器）および振幅ＥＧを備えているものが知られている（例えば、下記特許文献１）。これは、ノートナンバ（音高）とピッチＥＧ波形とに応じた読み出し速度で、波形メモリから波形データを読み出し、読み出した波形データの音量を振幅ＥＧ波形に応じて制御するものである。
【０００３】
さらに、生成する楽音にピッチや振幅のリアルな変化を付与するため、メモリからピッチや振幅の時間変化を示す波形（ピッチ変化波形、振幅変化波形）を読み出して、その読み出した変化波形をピッチＥＧや振幅ＥＧの波形として使用するようにしたものもある（例えば、下記特許文献２，３）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３７４４４４０号公報
【特許文献２】特公平７−８２３３６号公報
【特許文献３】特許第２５８０８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、現在市販されている波形メモリ音源には、ピッチ変化波形や振幅変化波形を読み出す機能は備えられていない。リアルなピッチ変化や振幅変化を実現するためには、従来の波形メモリ音源にピッチ変化波形や振幅変化波形を読み出すための回路を追加しなければならず、構成が非常に複雑になるという問題があった。また、１楽音を生成している途中で、ピッチ変化波形や振幅変化波形を変更したい場合があるが、従来の音源ではそのような変更は不可能だった。
【０００６】
この発明は、ピッチ変化波形や振幅変化波形を読み出すための特別の回路を追加することなく、生成する楽音にピッチや振幅の多彩でリアルな変化を付与することができる楽音生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この目的を達成するため、この発明は、波形メモリから楽音波形を読み出して振幅制御しミキシング処理して出力するハードウェア構成を用いて、ピッチ変化波形や振幅変化波形を読み出すようにし、読み出したピッチ変化波形や振幅変化波形で、楽音にピッチ変化や振幅変化を付与するようにしたことを特徴とする。
【０００８】
また、クロスフェード機構を備え、ピッチ変化波形や振幅変化波形も、クロスフェードして切り替えることができるようにしたことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ピッチ変化波形や振幅変化波形を読み出すための特別の回路を追加することなく、生成する楽音にピッチや振幅の多彩でリアルな変化を付与することができる楽音生成装置が提供される。
【図面の簡単な説明】
【００１０】
【図１】本発明に係る楽音生成装置を適用した電子楽器のハードウェア構成図
【図２】音源回路の詳細な構成を示すブロック図
【図３】波形メモリのメモリマップ図
【図４】レート生成部の詳細な構成を示すブロック図
【図５】振幅変化生成部の詳細な構成を示すブロック図
【図６】ミキサの詳細なハードウェア構成を示すブロック図
【図７】ミキサによるミキシングの設定例を示す図
【図８】ミキサにおける各タイミングを示すタイミングチャート図
【図９】ノートオン処理のフローチャート
【図１０】ビブラート量変更処理、クロスフェード終了割込処理、およびノートオフ処理のフローチャート
【発明を実施するための形態】
【００１１】
以下、図面を用いて本発明の実施の形態を説明する。
【００１２】
図１は、本発明に係る楽音生成装置を適用した電子楽器のハードウェア構成を示すブロック図である。ＣＰＵ（中央処理装置）１０１は、ＲＯＭ１０２やＲＡＭ１０３に記憶されている制御プログラムを実行することにより、本電子楽器の全体の動作を制御する。ＲＯＭ（リードオンリメモリ）１０２は、電源投入時のスタートアップルーチンや低レベルＩ／Ｏ処理を司るＢＩＯＳ（Basic Input/Output System）およびＣＰＵ１０１が実行する制御プログラムや各種データを格納する不揮発性メモリである。ＲＡＭ（ランダムアクセスメモリ）１０３は、各種のワーク領域として使用する揮発性メモリである。操作子（ＳＷ）１０４は、ユーザがこの電子楽器に各種の指示を与えるために外部パネル上に設けられた各種のスイッチなどである。表示部１０５は、ＣＰＵ１０１からの指示に基づいて、与えられた各種の情報を表示するディスプレイである。
【００１３】
鍵盤１０６は、演奏操作用の複数の鍵を有する。これら各鍵の演奏操作に応じて、押鍵された鍵の音高を示すキーコード、押鍵／離鍵を示すキーオン／キーオフ信号、およびタッチデータなどの各種キー情報がＣＰＵ１０１に送出される。外部記憶装置１０７は、例えばハードディスクやフラッシュメモリなどであり、ＣＰＵ１０１が実行するプログラムや波形データなどの各種のデータを記憶する。音源回路１０８は、ＣＰＵ１０１からの指示に応じて、複数の楽音発生チャンネルで楽音信号を発生する音源である。ここでは、波形メモリ１０９に格納されている波形データを読み出して楽音信号を生成する音源とする。後に詳しく説明するが、波形メモリ１０９は、楽音のピッチに時間変化を与えるためのピッチ変化波形データや楽音の振幅に時間変化を与えるための振幅変化波形データを格納しており、音源回路１０８は、楽音生成する際にこれらのピッチ変化波形データや振幅変化波形データに基づいてピッチや振幅に時間変化を与える機能を有するものである。音源回路１０８から出力された楽音信号は、ＤＡ（ディジタル・アナログ）変換器１１０によりアナログ音響信号に変換され、サウンドシステム（ＳＳ）１１１により外部に放音される。バス１２０は、上記各部を相互に接続するバスラインであり、コントロールバス、データバス、およびアドレスバスを総称したものである。
【００１４】
図２は、図１の音源回路１０８の詳細な構成を示すブロック図である。制御レジスタ２０１は、音源回路１０８内の各部を制御するデータをバス１２０を介してＣＰＵ１０１から受け取り記憶する複数のレジスタである。音源回路１０８内で処理したデータのうち所定のものを記憶し、バス１２０を介してＣＰＵ１０１に送ることも可能である。特に、制御レジスタ２０１は、各発音ｃｈ（チャンネル）毎のパラメータおよびノートオンを設定するレジスタを含む。ＣＰＵ１０１は、鍵盤１０６の操作を検出したとき、その操作に応じて楽音生成するｃｈを割り当て、そのｃｈに対応する制御レジスタに、その演奏情報に基づくパラメータを設定しノートオンを書き込む。これにより、音源回路１０８は、そのｃｈでの楽音生成処理を開始する。なお、本実施形態の音源回路１０８では発音ｃｈを６４ｃｈ備えているものとする。以下で説明する図２の各部の動作では、主として１ｃｈ分の処理を説明する。同様の処理が、時分割で全６４ｃｈに対して行われ、複数の楽音が並行して生成される。
【００１５】
図２を参照して音源回路１０８の動作を説明する前に、波形メモリ１０９のメモリマップを説明しておく。
【００１６】
図３に、波形メモリ１０９のメモリマップを示す。ＴＷ＃１〜ＴＷ＃Ｎｔｗは、それぞれ、音色毎に設けられた楽音波形データを示す。音色毎だけでなく、１つの音色であっても、所定の音域に分割して楽音波形データを持っても良いし、アタック部とループ部とに分割して楽音波形データを持っても良い。１つの楽音波形データ、例えばＴＷ＃１は、所定のサンプリング周波数で録音された一群の楽音波形サンプルデータからなる。なお、ＴＷ＃１〜ＴＷ＃Ｎｔｗのそれぞれを、ＴＷ領域の楽音波形データと呼ぶものとする。
【００１７】
ＰＷ領域には、Ｎｐｗ個のピッチ変化波形データＰＷ＃１〜ＰＷ＃Ｎｐｗが格納されている。１つのピッチ変化波形データ、例えばＰＷ＃１は、生成する楽音のピッチに変化を付与するためのピッチ変化波形サンプルデータからなる。上述した波形データＴＷ＃Ｎ（Ｎ＝１〜Ｎｔｗ）は所定のサンプリング周波数で録音された楽器音から抽出されたピッチの揺らぎを示すピッチ変化波形データであるが、そのピッチ変化は、そのサンプリング周期の例えば５０倍程度の周期毎に（あるいはもっと遅い周期で）変化させれば充分であるので、ピッチ変化波形サンプルデータは上記サンプリング周期の５０倍程度の所定の遅い周期（読出しレート）で値を切り替えていくデータとしている。
【００１８】
ＡＷ領域には、Ｎａｗ個の振幅変化波形データＡＷ＃１〜ＡＷ＃Ｎａｗが格納されている。１つの振幅変化波形データ、例えばＡＷ＃１は、生成する楽音の振幅波形（エンベロープ）に変化を付与するための振幅変化波形サンプルデータからなる。上記ピッチ変化波形と同様に、振幅変化波形データは、所定のサンプリング周波数で録音された楽器音から抽出された振幅の変化ないし揺らぎを示すピッチ変化波形データであるが、その変化は緩やかであるので、上記サンプリング周期の５０倍程度の所定の遅い周期（読出しレート）で値を切り替えていくデータとしている。
【００１９】
図２の音源回路１０８の動作の概要を説明する。上述したように音源回路１０８は、時分割処理で６４ｃｈの楽音信号ないし変調信号を生成可能である。ここでは、６４ある発音ｃｈのうちの任意の発音ｃｈを、他の発音ｃｈに対するピッチ変調用としたり、他の発音ｃｈに対する振幅変調用とすることができる。楽音用の発音ｃｈは、波形メモリ１０９から楽音波形ＴＷを読み出して楽音信号を生成するように設定される。ピッチ変調用の発音ｃｈは、波形メモリ１０９のＰＷ領域からピッチ変化波形データを読み出してピッチ変化波形を生成するよう設定され、さらに、そのピッチ変化波形による他のｃｈへのピッチ変調経路が設定される。振幅変調用の発音ｃｈは、波形メモリ１０９のＡＷ領域から振幅波形データを読み出して振幅変化波形を生成するよう設定され、さらに、その振幅変化波形による他ｃｈへの振幅変調経路が設定される。例えば、ｃｈ１を楽音信号発生のために使用して楽音信号を発生し、ｃｈ２をＰＷ領域のピッチ変化波形の読み出しに使用し、ｃｈ３をＡＷ領域に振幅変化波形の読み出しに使用し、ｃｈ１で発生する楽音信号に対して、ｃｈ２で生成したピッチ変化波形を用いてピッチ変化を付与し、ｃｈ３で生成した振幅変化波形を用いて振幅変化を付与する、といった動作が可能である。どの発音ｃｈで生成している楽音信号に対し、どの発音ｃｈで生成したピッチ変化波形ないし振幅変化波形に基づくピッチ変調ないし振幅変調をかけるかの設定は任意である。一部の発音ｃｈを他の発音ｃｈに対する変調用に用いる場合、生成できる楽音信号のｃｈ数は、６４からその変調用に用いる発音ｃｈのｃｈ数を差し引いたｃｈ数となる。
【００２０】
図２において、レート生成部２０２は、ＣＰＵ１０１から制御レジスタ２０１経由で受け取った各種情報に基づき、各発音ｃｈ毎に、読み出す波形データの元の音高と発音すべき楽音の音高との音高比に応じた読出しレート（Ｆナンバ）を発生する。ただし、上述したピッチ変化波形や振幅変化波形を読み出すことが割り当てられた発音ｃｈでは、上記ＰＷ＃１〜ＰＷ＃Ｎｐｗから選ばれた１つのピッチ変化波形データや、上記ＡＷ＃１〜ＡＷ＃Ｎａｗから選ばれた１つの振幅変化波形データを読み出すための読出しレート（Ｆナンバ）を発生するように、制御レジスタ２０１を設定する。この場合の読出しレートは、ピッチ変化波形データないし振幅波形データの時間軸方向における伸縮を制御する。
【００２１】
図４は、レート生成部２０２の詳細な構成を示す。ピッチレジスタ４０１およびピッチＥＧレジスタ４０２は、制御レジスタ２０１に含まれるレジスタであり、各ｃｈ毎に設けられている。ピッチレジスタ４０１は、当該ｃｈで発生すべき楽音の音高に応じたピッチシフト量（演奏操作された鍵と読み出す楽音波形とのピッチ差）を示すピッチデータが設定されるレジスタである。補間部４０４は、ピッチレジスタ４０１のピッチデータを時間的に補間して、補間結果を加算部４０６に出力する。ピッチＥＧレジスタ４０２は、当該ｃｈで発生する楽音のピッチの変化を規定するピッチＥＧデータ（幾つかの目標値とレートからなる）が設定されるレジスタである。ピッチＥＧ４０５は、ピッチＥＧレジスタ４０２に設定されたピッチＥＧデータに基づいて折れ線的なピッチ変化波形データを生成し出力する。この折れ線的なピッチ変化波形データは、ピッチＥＧレジスタ４０２で指定された目標値に、ピッチＥＧレジスタ４０２で指定されたレートで、サンプリング周期毎に近づけていき、目標値に達した時点で、新たな目標値とレートを設定することを繰り返すことにより、折れ線状に変化する波形である。ミキサ出力ｃｈ４０３は、図２の矢印２２１のルートでミキサ２０８の出力ｃｈから供給されるピッチ変化波形データの入力を示す。このミキサ出力ｃｈ４０３は、後述するピッチ変化波形出力ｃｈのＰＭ＃１〜ＰＭ＃３２のうち、制御レジスタ２０１で指定されたｃｈである。補間部４０４、ピッチＥＧ４０５、および、ミキサ出力ｃｈ４０３からの出力データは、何れもセント値（デシベル値）で、当該ｃｈで読み出す楽音波形ＴＷ＃Ｎ（Ｎ＝１〜Ｎｔｗ）の録音時の音高からのずれ量を表す相対値であり、加算部４０６で加算することで合成できる。セント→Ｆナンバ変換部４０７は、加算部４０６から出力されるセントスケールのレート値を周波数スケールに変換し、Ｆナンバとして出力する。
【００２２】
上述したのは、ＴＷ領域の楽音波形を読み出すことが設定された発音ｃｈのレート生成部２０２の説明である。ＰＷ領域のピッチ変化波形を読み出すことが設定された発音ｃｈでは、ピッチレジスタ４０１には、選ばれたピッチ変化波形データを読み出すための読み出しアドレスを生成するのに使用するレート値が出力されるようなピッチデータを設定するものとする。ピッチ変化波形は、基本的には読み出したものをそのまま使うので、ピッチＥＧ４０５は使わず、ミキサ出力ｃｈ４０３からの入力も使わない設定とする。ただし、ピッチＥＧによりピッチ変化量を上げ下げしたい場合や、ピッチ変化波形をさらに別の波形により変調したい場合は、ピッチＥＧレジスタ４０２やピッチＥＧ４０５を使用し、あるいはミキサ出力ｃｈ４０３からの入力を有効にしてもよい。同様に、ＡＷ領域の振幅変化波形を読み出すことが設定された発音ｃｈでは、ピッチレジスタ４０１には、選ばれた振幅変化波形データを読み出すための読み出しアドレスを生成するのに使用するレート値が出力されるようなピッチデータを設定するものとする。振幅変化波形は、基本的には読み出したものをそのまま使うので、ピッチＥＧ４０５は使わず、ミキサ出力ｃｈ４０３からの入力も使わない設定とする。ただし、ピッチＥＧにより振幅変化量を上げ下げしたい場合や、振幅変化波形をさらに別の波形により変調したい場合は、ピッチＥＧレジスタ４０２やピッチＥＧ４０５を使用し、あるいはミキサ出力ｃｈ４０３からの入力を有効にしてもよい。なお、ＰＷ領域のピッチ変化波形やＡＷ領域の振幅変化波形は、楽音のサンプリング周波数より低いサンプリング周波数でサンプリングされたデータでよい。従って、例えば、ピッチ変化波形のサンプリング周波数が楽音波形のサンプリング周波数の５０分の１程度であるとすると、サンプリング周期の５０周期分で楽音波形サンプルを５０回読み出す毎に１回ピッチ変化波形サンプルを進める程度で読み出せばよい。そのため、ピッチ変化波形を読み出すのに使用するレートは、そのサンプリング周期の５０周期分で１進むような値に調整されている。振幅変化波形も同様である。
【００２３】
図２に戻って、読出部２０３は、各発音ｃｈ毎に、レート生成部２０２から出力されたＦナンバ（レート）をサンプリング周期毎に累算して読み出しアドレスを生成し、波形メモリ１０９の該読み出しアドレスから波形サンプル（ＴＷ領域の楽音波形）を読み出す。読み出された波形サンプルデータは、読出部２０３内にある補間部で補間処理され、乗算器２０５に出力される。乗算器２０５は、読出部２０３から出力される波形サンプルデータに、振幅変化生成部２０４から出力される振幅データを乗算してエンベロープを付与する。
【００２４】
上述したのは、ＴＷ領域の楽音波形を読み出すことが設定された発音ｃｈの読出部２０３と乗算器２０５の説明である。ＰＷ領域のピッチ変化波形を読み出すことが設定された発音ｃｈでは、読出部２０３は、上述したのと同様の処理により、ＰＷ領域のピッチ変化波形サンプルを読み出す。補間処理は、ピッチ変化波形をそれ程細かく制御する必要はないことから、ここでは行わない（行うこととしてもよい）。乗算器２０５によるピッチ変化波形の振幅の制御は、上述した楽音波形の振幅制御と同様にして行う。ＡＷ領域の振幅変化波形を読み出すことが設定された発音ｃｈでも同様である。
【００２５】
振幅変化生成部２０４は、ＣＰＵ１０１から制御レジスタ２０１経由で受け取った情報に基づき、各発音ｃｈ毎に、生成される楽音の振幅の時間変化を制御するための振幅エンベロープデータを生成出力する。
【００２６】
図５は、振幅変化生成部２０４の詳細な構成を示す。振幅レジスタ５０１および振幅ＥＧレジスタ５０２は、制御レジスタ２０１に含まれるレジスタであり、各ｃｈ毎に設けられている。振幅レジスタ５０１は、当該ｃｈで発生すべき楽音の音量（演奏情報のうちのタッチデータ（ベロシティ）により決まる音量）を示す音量データが設定されるレジスタである。補間部５０４は、振幅レジスタ５０１の音量データを時間的に補間して、補間結果を加算部５０６に出力する。振幅ＥＧレジスタ５０２は、当該ｃｈで発生する楽音の振幅の変化を規定する振幅ＥＧデータ（幾つかの目標値とレートからなる）が設定されるレジスタである。振幅ＥＧ５０５は、振幅ＥＧレジスタ５０２に設定された振幅ＥＧデータに基づいて折れ線的な振幅変化波形データを生成し出力する。この折れ線的な振幅変化波形データは、振幅ＥＧレジスタ５０２で指定された目標値に、振幅ＥＧレジスタ５０２で指定されたレートで、サンプリング周期毎に近づけていき、目標値に達した時点で、新たな目標値とレートを設定することを繰り返すことにより、折れ線状に変化する波形である。ミキサ出力ｃｈ５０３は、図２の矢印２２２のルートでミキサ２０８の出力ｃｈから供給される振幅変化波形データの入力を示す。このミキサ出力ｃｈ５０３は、後述する振幅変化波形出力ｃｈのＡＭ＃１〜ＡＭ＃３２のうち、制御レジスタ２０１で指定されたｃｈである。補間部５０４、振幅ＥＧ５０５、および、ミキサ出力ｃｈ５０３からの出力データは、何れもデシベル値で、加算部５０６で加算することで合成できる。デシベル→リニア変換部５０７は、加算部５０６から出力される音量を示すデシベル値をリニア値に変換し、振幅制御波形として出力する。
【００２７】
上述したのは、ＴＷ領域の楽音波形を読み出すことが設定された発音ｃｈの振幅変化生成部２０４の説明である。乗算器２０５のところで説明したように、ＰＷ領域のピッチ変化波形を読み出すことが設定された発音ｃｈやＡＷ領域の振幅変化波形を読み出すことが設定された発音ｃｈでは、ピッチ変化波形の振幅や振幅変化波形の振幅を制御するためのデータを、振幅変化生成部２０４で出力するように設定すればよい。
【００２８】
図２に戻って、乗算器２０７は、発音ｃｈ毎に、乗算器２０５から出力される波形サンプルデータに、クロスフェード制御部２０６から出力される係数を乗算する。クロスフェード制御部２０６は、制御レジスタ２０１によりフェードアウトするｃｈとフェードインするｃｈとクロスフェード開始指示が与えられたとき、それらのｃｈにおいてフェードアウトおよびフェードインの処理を行うための係数を発生する。フェードアウトするｃｈでは、１から０へ時間的に徐々に減少していく係数を発生し、フェードインするｃｈでは、０から１へ時間的に徐々に増加していく係数を発生する。フェードインするｃｈの信号とフェードアウトするｃｈの信号との混合は、後述するミキサ２０８により行う。最終的に、乗算器２０７からは、各発音ｃｈで生成された楽音信号が、各サンプリング周期毎に６４ｃｈ時分割で出力され、ミキサ２０８に入力する。
【００２９】
クロスフェード制御部２０６やミキサ２０８によるクロスフェード処理は、要するに、発生する波形データを差し替える場合に利用する機能であるので、楽音波形をクロスフェードして差し替える場合だけでなく、後述するように、ピッチ変化波形や振幅変化波形を差し替える場合にも使用できる。
【００３０】
ミキサ２０８は、内部に４００の時分割的なミキシング用演算ｃｈ（ＭＩＸ＃１〜ＭＩＸ＃４００）を備える。これらの各ミキシング用演算ｃｈは、制御レジスタ２０１の設定に基づいて、乗算器２０７から出力される６４ｃｈ分の信号と、ＤＳＰ２０９から出力される複数ｃｈ（ここでは３２ｃｈとする）分の信号とから、指定された任意のｃｈの信号を入力し、指定されたミキシング処理を施す。各ミキシング用演算ｃｈのミキシング結果は、制御レジスタ２０１の設定に基づいて、レート生成部２０２、振幅変化生成部２０４、ＤＳＰ２０９、および／または、ＤＡＣ  Ｉ／Ｏ２１０の指定されたｃｈに出力される。各ミキシング用演算ｃｈ毎に、どのｃｈから入力しどのｃｈに出力するかは、制御レジスタ２０１で設定できる。
【００３１】
６４の発音ｃｈで生成された楽音信号ないし変化波形であって、乗算器２０７からミキサ２０８に時分割で入力する６４ｃｈ分の信号を、音源入力ｃｈＴＧ＃１〜ＴＧ＃６４と呼ぶ（矢印２３１）。ＤＳＰ２０９からミキサ２０８に入力する３２ｃｈ時分割の信号をＤＳＰ入力ｃｈＤＳＰｉ＃１〜ＤＳＰｉ＃３２と呼ぶ（矢印２３２）。ミキサ２０８からレート生成部２０２への出力は、ここでは時分割３２ｃｈとし、ＰＭ＃１〜ＰＭ＃３２と呼ぶ（矢印２２１）。ミキサ２０８から振幅変化生成部２０４への出力は、ここでは時分割３２ｃｈとし、ＡＭ＃１〜ＡＭ＃３２と呼ぶ（矢印２２２）。レート生成部２０２や振幅変化生成部２０４への出力は、生成する楽音のピッチや振幅に変化を付与するためのものである。ミキサ２０８からＤＳＰ２０９へは３２ｃｈ時分割の信号が出力され、それらをＤＳＰ出力ｃｈＤＳＰｏ＃１〜ＤＳＰｏ＃３２と呼ぶ（矢印２２３）。ミキサ２０８からＤＡＣ  Ｉ／Ｏ２１０へは２ｃｈのステレオＬＲの信号が出力され、それらをＤＡＣ＃１〜ＤＡＣ＃２と呼ぶ（矢印２２４）。
【００３２】
ＤＳＰ２０９は、ＤＳＰｉ＃１〜ＤＳＰｉ＃３２から入力した信号に対して、ＣＰＵ１０１が制御レジスタ２０１に設定したマイクロプログラムや係数データ等に基づく１ないし複数の信号処理（例えば、楽音信号に対する各種エフェクトの付与処理など）を施し、その結果を、ＤＳＰｏ＃１〜ＤＳＰｏ＃３２に出力する。ＤＳＰｉ＃１〜ＤＳＰｉ＃３２のどのｃｈの信号に、どのような信号処理を施して、ＤＳＰｏ＃１〜ＤＳＰｏ＃３２のどのｃｈに出力するかは、ＣＰＵ１０１が設定するマイクロプログラムで任意に制御することができる。ミキサ２０８からＤＡＣ  Ｉ／Ｏ２１０に出力されたステレオＬＲの楽音信号は、アナログオーディオ信号に変換されて出力される。
【００３３】
図６は、ミキサ２０８の詳細なハードウェア構成を示す。入力ＲＡＭ（ＩＲＡＭ）６０２は、ミキサ２０８に入力される音源入力ｃｈＴＧ＃１〜ＴＧ＃６４およびＤＳＰ入力ｃｈＤＳＰｉ＃１〜ＤＳＰｉ＃３２の合計９６ｃｈの各楽音信号のサンプルデータを記憶するバッファであり、ＩＲＡＭ‐ＡとＩＲＡＭ‐Ｂのダブルバッファ構成からなる。２つのバッファＡとＢは、それぞれ９６ｃｈ分のサンプルデータを記憶する容量を持ち、各バッファＡおよびＢは１サンプリング周期毎に交互に書込モードと読出モードに切り替わる。書込回路６０１は、ミキサ２０８に入力される上記各入力ｃｈのデータを、ＩＲＡＭ６０２の２つのバッファＡ，Ｂのうち現在書込モードとなっている方のバッファに書き込む制御を行う。ＩＲＡＭ６０２の各バッファＡ，Ｂにおける９６のサンプル記憶領域のアドレスは、９６の各入力ｃｈＴＧ＃１〜ＴＧ＃６４およびＤＳＰｉ＃１〜ＤＳＰｉ＃３２に対応している。
【００３４】
出力ＲＡＭ（ＯＲＡＭ）６０５は、ミキサ２０８の出力ｃｈである、レート生成部２０２への出力ｃｈＰＭ＃１〜ＰＭ＃３２、振幅変化生成部２０４への出力ｃｈＡＭ＃１〜ＡＭ＃３２、ＤＳＰ出力ｃｈＤＳＰｏ＃１〜ＤＳＰｏ＃３２、およびＤＡＣ出力ＤＡＣ＃１，＃２の合計９８ｃｈの各ディジタルオーディオ信号（ミキシング出力であるディジタルサンプルデータ）をバッファ記憶するもので、ＯＲＡＭ‐ＡおよびＯＲＡＭ‐Ｂのダブルバッファ構成からなる。ＯＲＡＭ６０５における２つのバッファＡとＢは、それぞれ９８ｃｈ分のサンプルデータを記憶する容量を持ち、各バッファＡ，Ｂは１サンプリング周期毎に交互に書込モードと読出モードに切り替わる。これにより、ＯＲＡＭ６０５は、見かけ上同時に読み出しと書き込みが可能なバッファとなっている。読出回路６０６は、上記各出力ｃｈのデータをＯＲＡＭ６０５の２つのバッファＡ，Ｂのうち現在読出モードとなっている方のバッファから読み出す制御を行う。なお、書込モードとなっている方のバッファでは、同じ出力ｃｈへの累算のために読み出しと書き込みが時分割処理される。ＯＲＡＭ６０５の各バッファＡ，Ｂにおける９８個のサンプル記憶領域のアドレスは、９８の各出力ｃｈＰＭ＃１〜ＰＭ＃３２、ＡＭ＃１〜ＡＭ＃３２、ＤＳＰｏ＃１〜ＤＳＰｏ＃３２、およびＤＡＣ＃１，＃２に対応している。
【００３５】
ＩＲＡＭ６０２とＯＲＡＭ６０５との間に設けられた乗算回路６０３および加算回路６０４がミキシング用演算ｃｈ（ＭＩＸｃｈ）の実体部分を構成する。すなわち、乗算回路６０３と加算回路６０４を時分割使用することで、各ＭＩＸｃｈにおける係数乗算および加算などのミキシング演算が行われる。上述したように、時分割的なＭＩＸｃｈは４００ｃｈ（ＭＩＸ＃１〜ＭＩＸ＃４００）設けられている。１つのＭＩＸｃｈにおいて、ＩＲＡＭ６０２のどこからサンプルデータを読み出し、ミキシング結果をＯＲＡＭ６０５のどの領域（出力ｃｈ）のデータに足し込む（分配する）かは、ＭＩＸｃｈ毎に制御レジスタ２０１で指定することができる。図６の制御レジスタ２０１中に図示したＳＲＣｃｈと乗算係数とＤＥＳＴｃｈは、ＭＩＸｃｈ毎に設けられているレジスタである。各ＭＩＸｃｈにおいて、ＳＲＣｃｈは、ＴＧ＃１〜ＴＧ＃６４およびＤＳＰｉ＃１〜ＤＳＰｉ＃３２の９６ｃｈのどのｃｈから入力するかを示すソースｃｈデータであり、乗算係数は、その入力データに乗算する係数データであり、ＤＥＳＴｃｈは、ＰＭ＃１〜ＰＭ＃３２、ＡＭ＃１〜ＡＭ＃３２、ＤＳＰｏ＃１〜ＤＳＰｏ＃３２、およびＤＡＣ＃１，＃２の９８ｃｈのどのｃｈへ出力するかを示すデスティネーションｃｈデータである。なお、各ＭＩＸｃｈでは、入力した信号をステレオ・パン制御して、ＤＥＳＴｃｈで指定されたｃｈとその次のｃｈにステレオＬＲの信号を出力する機能を備えている。
【００３６】
加算回路６０４は、同じ出力ｃｈに分配された信号を加算（ミキシング）するためのものである。例えば、あるＭＩＸｃｈの演算タイミングで、その演算結果をＤＳＰｏ＃１に分配する場合、その演算タイミングの前半において、ＯＲＡＭ６０５の現在書込モードとなっているバッファから該ＤＳＰｏ＃１のデータを読み出して加算回路６０４に供給し、乗算回路６０３から与えられる該ＭＩＸｃｈの演算結果と加算する。この加算結果は、その演算タイミングの後半において、ＯＲＡＭ６０５の現在書込モードとなっているバッファの該ＤＳＰｏ＃１の位置に書き込まれる。これにより、１サンプリング周期の間において、同一の出力ｃｈに分配された信号が加算（ミキシング）される。ＯＲＡＭ６０５の現在書込モードとなっているバッファは、次の１サンプリング周期において読出モードに切り替わる。読出モードにおける各出力ｃｈのデータの読み出しが終わると、所定のタイミングで当該バッファのデータがクリアされ、次に書込モードに切り替わったとき、次の新たな１サンプルについてのミキシング累算が可能となるようになっている。
【００３７】
なお、ＩＲＡＭ６０２における書き込みタイミングは、入力ｃｈＴＧ＃１〜ＴＧ＃６４およびＤＳＰｉ＃１〜ＤＳＰｉ＃３２の時分割タイミングに同期して適当なタイミングに設定される。ＩＲＡＭ６０２における読み出しタイミングは、ＭＩＸｃｈの時分割タイミングに同期して適当なタイミングに設定される。ＯＲＡＭ６０５における書き込みタイミングは、ＭＩＸｃｈの時分割タイミングに同期して適当なタイミングに設定される。ＯＲＡＭ６０５における読み出しタイミングは、出力ｃｈＰＭ＃１〜ＰＭ＃３２、ＡＭ＃１〜ＡＭ＃３２、ＤＳＰｏ＃１〜ＤＳＰｏ＃３２、およびＤＡＣ＃１，＃２の時分割タイミングに同期して適当なタイミングに設定される。
【００３８】
図７は、ミキサ２０８によるミキシングの設定例を示す。入力ｃｈのブロックは、図６のミキサ２０８のＩＲＡＭ６０２に入力データがバッファされる各入力ｃｈＴＧ＃１〜ＴＧ＃６４およびＤＳＰｉ＃１〜ＤＳＰｉ＃３２を模擬的に示している。ＭＩＸｃｈのブロックは、４００ｃｈある各ミキシング用演算ｃｈを、ＭＩＸ＃１〜ＭＩＸ＃４００で模擬的に示している。出力ｃｈのブロックは、ＯＲＡＭ６０５にミキシング出力データがバッファされる各出力ｃｈＰＭ＃１〜ＰＭ＃３２、ＡＭ＃１〜ＡＭ＃３２、ＤＳＰｏ＃１〜ＤＳＰｏ＃３２、およびＤＡＣ＃１，＃２を模擬的に示している。
【００３９】
上述したように各ＭＩＸｃｈでは、どの入力ｃｈからサンプルデータを入力して、ミキシング結果をどの出力ｃｈのデータに足し込む（分配する）かを指定することができる。各ｃｈを結ぶ実線は、それらの割当の設定を示している。例えば、ＴＧ＃１の入力は、ＭＩＸ＃１およびＭＩＸ＃４に入力されて、ミキシングされ、ＭＩＸ＃１の出力は、ＤＳＰ＃３に出力されている。ＭＩＸ＃４の出力は、ＤＡＣ＃１および＃２に出力されている。
【００４０】
特に、ＴＧ＃３はピッチ変化波形データを読み出すために割り当てられており、該ＴＧ＃３で読み出されたピッチ変化波形データが、ＭＩＸ＃３経由でＰＭ＃１に出力されるように割り当てられている。ＰＭ＃１に出力されたデータは、図２のルート２２１によりレート生成部２０２に入力する。図４のレート生成部２０２で説明したように、制御レジスタ２０１で、各発音ｃｈにおいてミキサ出力ｃｈ４０３として使用するｃｈをＰＭ＃１〜ＰＭ＃３２から選択指定できるので、例えばＴＧ＃１の楽音発生処理で上記ＰＭ＃１をミキサ出力ｃｈ４０３として使用することが設定されていたとすると、該ＴＧ＃１で発生する楽音にＰＭ＃１のピッチ変化波形データに基づくピッチ変化が付与されることになる。
【００４１】
同様に、ＴＧ＃５は振幅変化波形データを読み出すために割り当てられており、該ＴＧ＃５で読み出された振幅変化波形データが、ＭＩＸ＃６経由でＡＭ＃１に出力されるように割り当てられている。ＡＭ＃１に出力されたデータは、図２のルート２２２により振幅変化生成部２０４に入力する。図５の振幅変化生成部２０４で説明したように、制御レジスタ２０１で、各発音ｃｈにおいてミキサ出力ｃｈ５０３として使用するｃｈをＡＭ＃１〜ＡＭ＃３２から選択指定できるので、例えばＴＧ＃１の楽音発生処理で上記ＡＭ＃１をミキサ出力ｃｈ５０３として使用することが設定されていたとすると、該ＴＧ＃１で発生する楽音にＡＭ＃１の振幅変化波形データに基づく振幅変化が付与されることになる。
【００４２】
図８は、ミキサ２０８における入力側の書込回路６０１による書込処理タイミングと、ミキシング処理部によるミキシング処理タイミングと、出力側の読出回路６０６による読出処理タイミングとの大まかな関係を示すタイミングチャートである。図８（ａ）に示す１サンプリング周期は、図１および図２の音源回路１０８で処理される楽音波形データの１サンプリング周期に相当する。１サンプリング周期の間で、ＤＳＰ２０９における全処理ステップ（例えば１０２４ステップ）が一巡し、また、音源回路１０８における時分割処理サイクルが一巡する。ミキサ２０８における処理クロックは、ＤＳＰ２０９におけるステップクロックと同様であるものとし、例えば、１０２４ステップの時分割動作が可能である。
【００４３】
図８（ｂ）は、書込回路６０１によるＩＲＡＭ６０２への書込処理が行われるタイミングを示す。１サンプリング周期の間で、全９６の入力ｃｈの書き込みが行われる。ＩＲＡＭ６０２のバッファＡとＢとは読み出しと書き込みが交互に切り替わるので、例えば、「書込処理１」と記載された１サンプリング周期の間でＩＲＡＭ６０２のバッファＡに対して書込が行われ、「書込処理２」と記載された１サンプリング周期の間でＩＲＡＭ６０２のバッファＢに対して書込が行われ、「書込処理３」と記載された１サンプリング周期の間でＩＲＡＭ６０２のバッファＡに対して書込が行われ、…というようにして順次バッファＡあるいはＢに書込が行われる。１サンプリング周期の間での全９６の各入力ｃｈＴＧ＃１〜ＴＧ＃６４およびＤＳＰｉ＃１〜ＤＳＰｉ＃３２の時分割的書込タイミングについては、説明を省略するが、基本的に１サンプリング周期を構成する１０２４ステップのうちの所定のタイムスロットに各入力ｃｈの書込タイミングが割り当てられているものとする。
【００４４】
上記のように書込回路６０１によりＩＲＡＭ６０２の一方のバッファへ書き込まれたデータは、次の１サンプリング周期において読出モードに切り替えられ、時分割的なＭＩＸｃｈのタイミングに従い、制御レジスタ２０１のソースｃｈデータＳＲＣｃｈで指示される入力ｃｈのサンプルデータが読み出されてミキシング処理される。図８（ｃ）は、ＩＲＡＭ６０２のバッファから読み出したサンプルデータに対してミキシング演算処理を行うタイミングを示す。１サンプリング周期の間で、９６の入力ｃｈの各１サンプルデータを６４の出力ｃｈの何れか１つまたは複数のデータに足し込む（分配する）ミキシング演算処理を行う。なお、９６の入力ｃｈ全部を必ずしも何れかの出力ｃｈに分配する必要はなく、９６の入力ｃｈの中に使用されていないｃｈがある場合、その入力ｃｈについては何れの出力ｃｈにも分配されないようにしてよい。図８（ｃ）の「ミキシング処理」と記載された１サンプリング周期の間では、「書込処理１」のときにＩＲＡＭ６０２のバッファＡに書き込まれたデータが読み出され、この読み出されたデータに対するミキシング演算処理が行われる。各ＭＩＸｃｈＭＩＸ＃１〜ＭＩＸ＃４００の処理タイミングについては説明を省略するが、基本的に、１サンプリング周期＝１０２４ステップ中の所定のタイムスロットを各ｃｈＭＩＸ＃１〜ＭＩＸ＃４００に割り当てておき、それらのタイムスロットで各ＭＩＸｃｈのミキシング処理を行うものとする。
【００４５】
図８（ｄ）は、ＯＲＡＭ６０５のバッファからの読出処理を行うタイミングを示す。例えば、図８（ｃ）の「ミキシング処理」のときに書込モードになっていたＯＲＡＭ６０５のバッファがＡであるとすると、このバッファＡは次の１サンプリング周期においては読出モードに切り替わる。（ｄ）の例において、「読出処理」と記載された１サンプリング周期の間では、「ミキシング処理」のときにミキシング演算処理されてＯＲＡＭ６０５のバッファＡに書き込まれたデータが、読出回路６０６の制御によって、読み出される。１サンプリング周期の間で全９８の各出力ｃｈＰＭ＃１〜ＰＭ＃３２、ＡＭ＃１〜ＡＭ＃３２、ＤＳＰｏ＃１〜ＤＳＰｏ＃３２、およびＤＡＣ＃１，＃２のデータをＯＲＡＭ６０５から時分割的に読み出すタイミングについては説明を省略するが、１サンプリング周期＝１０２４ステップ中の所定のタイムスロットを割り当てて読み出しを行うようにしている。
【００４６】
図８の８０１は、変調波形を発生する変調ｃｈ生成処理の実行タイミングを示している。変調ｃｈとは、上述したピッチ変化波形や振幅変化波形の発生のために割り当てられたｃｈをいう。変調ｃｈにより発生されたピッチ変化波形や振幅変化波形をまとめて変調波形と呼ぶ。上述したように、３２音モードのときは、３２ｃｈ分の発音ｃｈを任意に割り当ててピッチ変化波形や振幅変化波形を読み出すことができ、図８（ｂ）の書込処理でＩＲＡＭ６０２に書き込むことができる。書き込んだピッチ変化波形や振幅変化波形のデータは、図８（ｃ）のミキシング処理を経て、図８（ｄ）の読出処理でＰＭ＃１〜ＰＭ＃３２、ＡＭ＃１〜ＡＭ＃３２から読み出すことができる。ＰＭ＃１〜ＰＭ＃３２、ＡＭ＃１〜ＡＭ＃３２のデータに基づいて、生成している楽音波形にピッチ変化や振幅変化が付与される。８０２は、読み出したピッチ変化波形データあるいは振幅変化波形データに基づいて楽音波形にピッチ変化や振幅変化を付与する被変調ｃｈ生成処理を示す。
【００４７】
図９は、ノートオン処理のフローチャートを示す。ＣＰＵ１０１は、新たな楽音の発音開始を指示するコマンドであるノートオンの発生を検出すると、ステップ９０１で、そのノートオンのパート番号ＰＴに、ノート番号をＮＮに、ベロシティをＶＥＬに、それぞれ設定する。ステップ９０２では、パートＰＴの音色データを確認する。ステップ９０３では、その音色がピッチ変調や振幅変調を行うよう設定された音色かを判定する。
【００４８】
ピッチ変調および振幅変調の何れをも行わない場合はステップ９１１へ、ピッチ変調のみを行う場合はステップ９２１へ、振幅変調のみを行う場合はステップ９３１へ、ピッチ変調と振幅変調の両方を行う場合はステップ９４１へ、それぞれ進む。説明の便宜のため、ステップ９４１〜９４５の処理を先に説明する。ステップ９４１では、発音ｃｈをＴＧ＃１〜ＴＧ＃６４から３ｃｈ確保し、楽音波形の読み出し用に割り当てたｃｈ番号をＡｔに、ピッチ変化波形の読み出し用に割り当てたｃｈ番号をＡｐに、振幅変化波形の読み出し用に割り当てたｃｈ番号をＡａに、それぞれセットする。なお、それらの各波形を読み出すために割り当てられた発音ｃｈは、単にＡｔ，Ａｐ，Ａａの記号で呼ぶものとする。次に、ステップ９４２では、ＭＩＸｃｈの割り当てを行う。まず、ユーザの指定に応じて、Ａｔで生成した楽音波形をＤＳＰ２０９やＤＡＣ２１０に出力するためのＭＩＸｃｈを割り当てる。また、Ａｐで読み出したピッチ変化波形をＰＭ＃１〜ＰＭ＃３２の何れかに出力するためのＭＩＸｃｈと、Ａａで読み出した振幅変化波形をＡＭ＃１〜ＡＭ＃３２の何れかに出力するためのＭＩＸｃｈを割り当てる。なお、同時に、ＰＭ＃１〜ＰＭ＃３２のうち使用するｃｈ（ＰＭ＃ｎとする）と、ＡＭ＃１〜ＡＭ＃３２のうち使用するｃｈ（ＡＭ＃ｍとする）も割り当てるものとする。
【００４９】
次に、ステップ９４３で、割り当てた発音ｃｈの設定を行う。まずステップ９６１では、Ａｐにピッチ変化波形生成のための各種パラメータを設定する。これは、Ａｐに対応する制御レジスタ２０１に、ピッチ変化波形データを読み出すためのパラメータとして、当該音色で使用するピッチ変化波形データのうちの、当該パートＰＴの現時点のビブラート深さＶＤに応じたピッチ波形データを特定するデータ、ビブラート速さに応じたピッチデータ（図４のピッチレジスタ４０１に設定する値であり、この場合は時間軸を制御する）などを設定するものである。ここでは、読み出すピッチ変化波形データによるピッチ変調の深さを調整するため、Ａｐの図５の振幅レジスタ５０１には、前記ビブラート深さＶＤに応じた音量データが設定される。この実施形態では、ビブラート深さに応じて異なるピッチ波形データを読み出すようになっているが、さらに、ビブラート速さに応じて異なるピッチ波形データを読み出すようにしてもよい。
【００５０】
ステップ９６２では、Ａａに振幅変調波形生成のための各種パラメータを設定する。これは、Ａａに対応する制御レジスタ２０１に、振幅変化波形データを読み出すためのパラメータとして、当該音色で使用する振幅波形データを特定するデータ、時間軸方向の伸縮を規定するピッチデータ（図４のピッチレジスタ４０１に設定する値）などを設定するものである。ここでは、読み出す振幅波形データによる振幅変調の深さを調整するため、Ａｐの図５の振幅レジスタ５０１には、ベロシティＶＥＬに応じた音量データが設定される。さらに、該ベロシティＶＥＬや当該パートＰＴの音量等に応じて異なる振幅変化波形データを読み出すようにしてもよい。
【００５１】
ステップ９６３では、Ａｔに楽音波形（被変調波形）生成のための各種パラメータを設定する。これは、Ａｔに対応する制御レジスタ２０１に、図２、図４、および図５で説明した楽音波形データを読み出すためのパラメータを設定する処理であり、当該音色の楽音波形データのうち、ノート番号ＮＮやベロシティＶＥＬに応じた楽音波形データを特定するデータ、ノート番号ＮＮとその特定された楽音波形データとの音高差を示すピッチデータなどを設定する。特に、図４のミキサ出力ｃｈ４０３からの入力として、上記ＰＭ＃ｎからのデータが入力するように設定する。また、図５のミキサ出力ｃｈ５０４に、上記ＡＭ＃ｍからのデータが入力するように設定する。この場合は、楽音信号のピッチや振幅の変化は、ピッチ変化波形データ、振幅変化波形データにより付与されるので、さらに変化をつける必要がなければ、ピッチＥＧレジスタ４０２や振幅ＥＧレジスタ５０２にはそれぞれ変化波形データが一定値となるようなピッチＥＧデータや振幅ＥＧデータを設定してもよい。なお、Ａｐ、Ａａ、Ａｔの３つの発音ｃｈは、それぞれ、この後の発音開始指示に応じて直ちに波形が出力されるように、クロスフェード係数が１に設定される。
【００５２】
次に、ステップ９４４で、割り当てた各ＭＩＸｃｈの設定を行う。これは、ユーザの指定に応じて、Ａｔで生成した楽音波形をＤＳＰ２０９やＤＡＣ２１０に出力するためのＭＩＸｃｈのＳＲＣｃｈと乗算係数とＤＥＳＴｃｈの設定を行うとともに、Ａｐで発生したピッチ変化波形を上記ＰＭ＃ｎに出力するＭＩＸｃｈの設定と、Ａａで発生した振幅変化波形を上記ＡＭ＃ｍに出力するＭＩＸｃｈの設定を行うものである。
【００５３】
次に、ステップ９４５で、Ａｐ，Ａａ，Ａｔの同時発音開始指示を行う。これにより、上述したピッチ変化波形によるピッチ変化と振幅変化波形による振幅変化が付与されて楽音生成が実行される。
【００５４】
次に、ステップ９５０で、パートＰＴのノート番号ＮＮに対応付けて、オンフラグ「１」、割り当てたＡｔ，Ａｐ，Ａａの発音ｃｈ、およびＭＩＸｃｈの情報を記憶し、終了する。なお、ここで記録された情報は、発音開始後の発音ｃｈの制御や、発音終了後の発音ｃｈの開放などに用いられる。
【００５５】
ステップ９１１〜９１５は、ピッチ変調および振幅変調の何れをも行わない場合であるので、上述したステップ９４１〜９４５の処理からＡｐとＡａに係る処理を除いて、楽音生成のためのＡｔの処理のみ行うようにすればよい。ただし、この場合は、ピッチＥＧ４０５や振幅ＥＧ５０５に時間変化するピッチ変化波形データや振幅変化波形データを発生させるようなピッチＥＧデータや振幅ＥＧデータを設定しなければならない。ステップ９２１〜９２５は、ピッチ変調のみを行う場合であるので、上述したステップ９４１〜９４５の処理からＡａに係る処理を除いて、楽音生成のためのＡｔの処理とピッチ変調のためのＡｐの処理のみ行うようにすればよい。この場合は、振幅ＥＧ５０５に時間変化する振幅変化波形データを発生させるような振幅ＥＧデータを設定しなければならない。ステップ９３１〜９３５は、振幅変調のみを行う場合であるので、上述したステップ９４１〜９４５の処理からＡｐに係る処理を除いて、楽音生成のためのＡｔの処理と振幅変調のためのＡａの処理のみ行うようにすればよい。この場合は、ピッチＥＧ４０５に時間変化するピッチ変化波形データを発生させるようなピッチＥＧデータを設定しなければならない。この実施形態では、ノートオンが発生してから、ＭＩＸｃｈ、ＰＭ＃ｎ、ＡＭ＃ｍを割り当てるようになっていたが、楽音信号を生成する発音ｃｈであるＡｔに対し、ノートオンの発生より前に、必要なＭＩＸｃｈ、ＰＭ＃ｎ、ＡＭ＃ｍを予め割り当てておくようにしてもよい。
【００５６】
図１０（ａ）は、楽音の発生中に、パートＰＴのビブラート深さを値ＶＤに変化させるコマンドが発生したときの処理である。楽音にビブラートを付与する場合、図４のピッチＥＧレジスタ４０２に所定のパラメータを設定して直線的に変化するピッチＥＧでビブラートを付与することができる。しかし、さらにリアルなビブラートを実現するためには、ビブラート付きで演奏された楽器音から抽出されたピッチ変化波形を読み出して、そのピッチ変化波形によりピッチ変化を楽音に付与する必要がある。
【００５７】
ステップ１００１で、記録された情報に基づいて、ビブラート量の変更が指示されたパートＰＴと同じパートの、何れかのノート番号ＮＮの楽音波形が、音源の発音ｃｈで発音されていないかを検出する。何れのノート番号ＮＮでも発音されていなければ、ステップ１００２で処理を終了する。その発音があった場合は、ステップ１００３で、その発音でピッチ変化波形の読出しに使っているＡｐがあるか判定する。なければ、ビブラートを図４のピッチＥＧ４０５を用いて付与していると言うことであるから、ステップ１００４で、図４のピッチＥＧレジスタ４０２に、指定されたビブラート深さＶＤに応じたビブラート振幅を設定し、折れ線的なピッチＥＧ４０５でその振幅のビブラート波形を発生させる。Ａｐがあれば、ステップ１００５で、ピッチ変化波形データの切り替えが必要なビブラート深さか否かを判定する。これは、例えば、浅いビブラートを付ける場合、中くらいのビブラートを付ける場合、深いビブラートを付ける場合で、異なるピッチ変化波形データを使用するため、ビブラート量が変更されたときに、使用するピッチ変化波形の切り替えを行う必要があるか判定する処理である。切り替えを行う必要がなければ、Ａｐの振幅レジスタ５０１の音量データをビブラート深さＶＤに応じた値に変更し、Ａｐで発生しているピッチ変化波形の振幅を制御することにより、指定されたビブラート量の変更を実行する。ステップ１００５で、ビブラート深さＶＤに応じて別のピッチ変化波形への切り替えが必要になった場合は、ステップ１００７に進む。
【００５８】
ステップ１００７では、新たにピッチ変化波形を読み出すための発音ｃｈを割り当て、それを新Ａｐとする。ステップ１００８では、その新Ａｐで読み出したピッチ変化波形データを出力するためのＭＩＸｃｈを割り当て、その出力先として、旧Ａｐと同じＰＭ＃ｎを設定する。これにより、旧Ａｐ  で読み出されるピッチ変化波形データと、新Ａｐで読み出されるピッチ変化波形データとは、ＰＭ＃ｎで混合されることになる。ステップ１００９で、新Ａｐの発音ｃｈの設定を行う。ここでの設定は、基本的にはステップ９６１で行われた旧Ａｐの設定と同様であるが、新Ａｐで読み出されるピッチ変化波形データは現時点のビブラート深さＶＤに応じた別のピッチ変化波形データであり、また、クロスフェード係数は０に設定される。続いて、ステップ１０１０で発音開始を指示することにより、新Ａｐでのピッチ変化波形データの読み出しが開始される。次に、ステップ１０１１で、旧Ａｐから新Ａｐへのクロスフェードの開始を指示する。これにより、旧Ａｐで読み出されたピッチ変化波形データがフェードアウトを開始し、新Ａｐで読み出されたピッチ変化波形データがフェードインを開始する。Ａｔで読み出されている楽音波形は、旧Ａｐのピッチ変化波形データと新Ａｐのピッチ変化波形データの混合波形によってピッチに変化が付与される。ステップ１０１２で、フェードアウトされる旧Ａｐの発音ｃｈとＭＩＸｃｈとを記録し、ステップ１０１３で、パートＰＴのノート番号ＮＮに対応付けて、新Ａｐの発音ｃｈとＭＩＸｃｈを記憶し、ステップ１００１に戻る。
【００５９】
図１０（ｂ）は、クロスフェードの終了割り込み処理の流れを示す。クロスフェードが終了したとき、割り込みが掛かり、ステップ１０２１で、フェードアウトした旧Ａｐの発音ｃｈとＭＩＸｃｈとを開放し、フェードアウト中として記憶されていた発音ｃｈとＭＩＸｃｈの情報は消去される。なお、上記ステップ１００７〜１０１３の付番１０４０の処理は、Ａｐでのクロスフェードの処理であるが、ＡａやＡｔでのクロスフェードも同様の処理である。その場合は、ステップ１０２１では、フェードアウトした旧Ａａや旧Ａｔを開放する処理となる。
【００６０】
図１０（ｃ）は、ノートオフの流れを示すフローである。ステップ１０３１で、ノートオフが指示されたパート番号をＰＴに、ノート番号をＮＮに、セットする。ステップ１０３２で、ＮＮの発音があるか調べ、なければ終了する。あれば、ステップ１０３４で、Ａｔに減衰の開始を指示する。ステップ１０３５で、Ａｐがあるか判別し、あれば、ステップ１０３６で、リリース用Ａｐを割り当て、設定し、記憶する処理（付番１０４０の処理）を行う。これはリリースの際には、リリース用のピッチ変化波形に切り替えてピッチ変化を付与する必要があるので、クロスフェードで旧Ａｐから新Ａｐに切り替えるものである。Ａａについても同様に、ステップ１０３７で、旧Ａａがあるか判別し、あれば、ステップ１０３８で、リリース用Ａａの割り当てと設定と記憶の処理（付番１０４０と同様の処理）を行う。なお、ステップ１０３４での減衰開始の指示に応じて、Ａｔの振幅ＥＧ５０２は音量が徐々に減衰する振幅変化波形データを発生し、その振幅変化波形データで振幅が制御されているＡｔの楽音信号が減衰する。楽音信号の振幅が所定レベル以下に減衰したら、３つの発音ｃｈ、Ａｔ、Ａｐ、Ａａと、使用されているＭＩＸｃｈ、ＰＭ＃ｎ、ＡＭ＃ｍ等が開放され、当該パートＰＴのノート番号ＮＮに対応付けられている情報も消去される。
【００６１】
なお、上記実施形態では、発音指示に応じて、変調波形（ピッチ変化波形と振幅変化波形）と被変調波形（楽音波形）とを同時に発音開始するようになっていたが、必ずしも同時に発音開始しなくてもよい。何れか一方を他方より遅らせて発音開始させてもよい。あるいは、相互に独立したタイミングで発音開始させてもよい。
【００６２】
また、上記実施形態では、６４ｃｈある発音ｃｈに対してピッチ変化波形や振幅変化波形を読み出すための発音ｃｈを任意に割り当てるようにしたが、固定的に割り当てるようにしてもよい。
【００６３】
なお、この実施形態では、発音できる楽音信号のｃｈ数は、音源の発音ｃｈ数から変調用に用いる発音ｃｈ数を差し引いたものとして動的に決まるようになっていたが、発音モードとして静的に設定するようにしてもよい。例えば、変調用に全く発音ｃｈを使用しない６４音モード、楽音生成用の各発音ｃｈに１つの発音ｃｈで生成した変化波形でピッチないし振幅の変調をかける３２音モード、同２つの発音ｃｈで生成した変化波形でピッチおよび振幅の変調をかける２０音モード等である。さらに、発音モードを設定する場合は、各発音ｃｈが楽音生成用か変調用かを予め決めてしまうことができ、発音割当の処理をより軽くすることができる。
【００６４】
また、この実施形態では、ノートオンの発生時に、ピッチ変調用、振幅変調用、楽音生成用の各発音ｃｈを個別に割り当てるようになっていたが、変調用と楽音生成用の発音ｃｈを予め組にしておき、複数の組のなかから１つの組を割り当てるようにしてもよい。
【符号の説明】
【００６５】
１０１…ＣＰＵ（中央処理装置）、１０２…ＲＯＭ、１０３…ＲＡＭ、１０４…操作子（ＳＷ）、１０５…表示部、１０６…鍵盤、１０７…外部記憶装置、１０８…音源回路、１０９…波形メモリ、１１０…ＤＡ（ディジタル・アナログ）変換器、１１１…サウンドシステム（ＳＳ）、１２０…バスライン。
【図１】
2010237594.tif 000003
【図２】
2010237594.tif 000004
【図３】
2010237594.tif 000005
【図４】
2010237594.tif 000006
【図５】
2010237594.tif 000007
【図６】
2010237594.tif 000008
【図７】
2010237594.tif 000009
【図８】
2010237594.tif 000010
【図９】
2010237594.tif 000011
【図１０】
2010237594.tif 000012