(57)【要約】【課題】  複雑な波形形状をした波形を簡単且つ制御性豊かに発生させる。【解決手段】  停止時間及び少なくとも１つのサンプル点を特定するパラメータに従って、周波数情報に応じたレートで変化する位相情報を、前記少なくとも１つのサンプル点を基準として前記停止時間分だけ変化することのないようにして発生する。位相情報が変化するレートに用いられる周波数情報は、発生すべき波形の周波数を設定する周波数情報を停止時間に従い変更したものである。そして、発生した位相情報を、複数サンプル点からなる所定の基本波形のサンプルデータを発生する波形発生手段に対して入力することにより、該位相情報の変化に応じて前記基本波形を変形した波形が発生される。このようにすると、ユーザは停止時間及び少なくとも１つのサンプル点を特定するだけで、ピッチを変えることなく複雑な波形形状をした波形を簡単且つ制御性豊かに発生させることができるようになる。【選択図】        図５
2006047834.tif 000002
【特許請求の範囲】
【請求項１】
複数サンプル点からなる所定の基本波形のサンプルデータを、入力される位相情報に応じて、発生する波形発生手段と、
発生すべき波形の周波数を設定する周波数情報を、停止時間を指定するパラメータに従い、変更する手段と、
前記変更された周波数情報に基づき、該周波数情報に応じたレートで変化する位相情報を発生する位相情報発生手段と、
前記位相情報発生手段で発生する前記位相情報が、少なくとも１つのサンプル点を特定するパラメータを基準として前記停止時間分だけ変化することのないよう、前記位相情報発生手段を制御する手段と
を備え、前記位相情報発生手段で発生された前記位相情報を前記波形発生手段に入力することで、該位相情報の変化に応じて前記基本波形を変形した波形が該波形発生手段から発生されることを特徴とする波形発生装置。
【請求項２】
前記パラメータに従い前記少なくとも１つのサンプル点の位置又は前記停止時間が変更可能である請求項１に記載の波形発生装置。
【請求項３】
請求項１に記載の波形発生装置を、変調波又は搬送波の少なくとも一方の波形を発生するための手段として使用することを特徴とする変調演算型の楽音合成装置。
【請求項４】
コンピュータに、
複数サンプル点からなる所定の基本波形のサンプルデータを、入力される位相情報に応じて、発生する手順と、
発生すべき波形の周波数を設定する周波数情報を、停止時間を指定するパラメータに従い、変更する手順と、
前記変更された周波数情報に基づき、該周波数情報に応じたレートで変化する位相情報を発生する手順と、
前記発生する前記位相情報が、少なくとも１つのサンプル点を特定するパラメータを基準として前記停止時間分だけ変化することのないよう、制御する手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、楽音信号を生成するのに用いて好適な波形発生装置及びプログラムに関する。特に、基本波形を変形して複雑な波形形状の波形を簡単且つ制御性豊かに発生することのできるようにした波形発生装置及びプログラムに関する。
【背景技術】
【０００２】
従来から楽音信号を生成する装置として、例えば可聴周波数領域の周波数変調演算（ＦＭ演算）によって所望の倍音構成を持つ楽音信号を合成する所謂ＦＭ方式の楽音合成装置（ＦＭ音源とも呼ぶ）等が知られている。従来知られているように、ＦＭ方式の楽音合成装置では基本的に搬送波信号と変調波信号とをそれぞれ発生し、搬送波信号を変調波信号により変調することによって、所望のスペクトル構成を持つ楽音信号を生成するようにしている。一般的に、こうしたＦＭ方式の楽音合成装置においては、例えば正弦波等の基本波形を発生することが可能なオペレータと呼ばれる波形発生装置を具えている。このオペレータ（波形発生装置）では楽音の音高に対応する所望の周波数で変化する位相情報に応じて、予め記憶された複数サンプル点からなる所定の基本波形（サンプルデータ）を波形テーブルから読み出すなどして発生させ、該発生させた基本波形を搬送波信号や変調波信号などとして周波数変調演算（ＦＭ演算）に使用している。
【０００３】
ところで、上記したようなＦＭ方式の楽音合成装置などにおいて、多様な音色を実現する楽音信号を生成するためには、搬送波信号や変調波信号の波形形状を複雑なものにするとよい。そこで、波形テーブルからの基本波形の読み出しを制御することが従来から行われている。こうしたものの一例を挙げると、例えば下記に示す特許文献１に記載の楽音合成装置がある。この特許文献１に記載の楽音合成装置では、所定位相区間において位相値を単にシフトするあるいは下位ビットを無視するなどして変更しながら正弦波テーブル（波形テーブルに該当する）から予め記憶済みの正弦波（基本波形に該当する）のサンプルデータを読み出すことによって該正弦波の波形形状を変化させた上で、該波形形状変更後の波形を周波数変調演算に用いることでより複雑な楽音信号を生成することができるようにしている。
【特許文献１】特公平6−44193号公報
【０００４】
しかし、基本波形の読み出し制御として、上述したように所定位相区間において位相値を単にシフトするあるいは下位ビットを無視するなどの制御を行いながら正弦波テーブルから正弦波を読み出すだけでは、元の正弦波の波形形状を大きく変化させることは難しい。したがって、そのようにして生成された波形を用いて、多様な音色を実現するより複雑な楽音信号を生成することは非常に難しいことであった、という問題点があった。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は上述の点に鑑みてなされたもので、基本波形に比べて大きな変化のある複雑な波形形状をした波形を簡単且つ制御性豊かに発生することのできるようにした波形発生装置及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【０００６】
本発明に係る波形発生装置は、複数サンプル点からなる所定の基本波形のサンプルデータを、入力される位相情報に応じて、発生する波形発生手段と、発生すべき波形の周波数を設定する周波数情報を、停止時間を指定するパラメータに従い、変更する手段と、前記変更された周波数情報に基づき、該周波数情報に応じたレートで変化する位相情報を発生する位相情報発生手段と、前記位相情報発生手段で発生する前記位相情報が、少なくとも１つのサンプル点を特定するパラメータを基準として前記停止時間分だけ変化することのないよう、前記位相情報発生手段を制御する手段とを備え、前記位相情報発生手段で発生された前記位相情報を前記波形発生手段に入力することで、該位相情報の変化に応じて前記基本波形を変形した波形が該波形発生手段から発生されることを特徴とする。
【０００７】
本発明によると、停止時間を指定するパラメータ及び少なくとも１つのサンプル点を特定するパラメータに従って、周波数情報に応じたレートで変化する位相情報を、前記少なくとも１つのサンプル点を特定するパラメータを基準として前記停止時間分だけ変化することのないようにして発生する。前記位相情報が変化するレートに用いられる周波数情報は、発生すべき波形の周波数を設定する周波数情報を前記停止時間を指定するパラメータに従い変更したものである。そして、前記発生した位相情報を、複数サンプル点からなる所定の基本波形のサンプルデータを発生する波形発生手段に対して入力することによって、該位相情報の変化に応じて前記基本波形を変形した波形を発生する。すなわち、前記位相情報を変更せずに入力すると停止時間分だけ波形のピッチが大きくなることから、前記停止時間を指定するパラメータに従い周波数情報を変更し、該変更した周波数情報に応じたレートで変化する位相情報に基づいて所定の基本波形のサンプルデータを読み出すようにする。このように、位相情報を制御して基本波形を一時停止しながら読み出すようにしたことから、ユーザは停止時間及び少なくとも１つのサンプル点を特定するだけで、ピッチを変えることなく複雑な波形形状をした波形を簡単且つ制御性豊かに発生させることができるようになる。
【０００８】
本発明は装置の発明として構成し実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【発明の効果】
【０００９】
この発明によれば、パラメータとして新たに１つのサンプル点を特定するパラメータと停止時間を指定するパラメータとを与え、波形を発生する際に前記サンプル点を基準に前記停止時間だけ波形読み出しアドレスの進行を一時停止するようにして位相情報の発生を制御する。こうすると、基本波形に比べて大きな変化のある複雑な波形形状をした波形を簡単且つ制御性豊かに発生することができることから、該発生した波形を用いて多様な音色を実現するより複雑な楽音信号を簡単に生成することができるようになる、という効果を得る。
【発明を実施するための最良の形態】
【００１０】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【００１１】
まず、本発明に係る波形発生装置を適用した周波数変調演算型（ＦＭ方式）の楽音合成装置について、図１及び図２を用いて簡単に説明する。図１は、この発明に係る波形発生装置を適用した周波数変調演算型（ＦＭ方式）の楽音合成装置の全体構成の一実施例を示すブロック図である。図２は、図１に示したオペレータ（波形発生装置）の基本構成の一実施例を示すブロック図である。ただし、従来知られているように、ＦＭ方式の楽音合成装置では波形発生装置としてハード的には演算ユニットであるオペレータを１個具備しておけばよく、この１個のオペレータを２タイムスロットで時分割使用することにより図１に示すような２個のオペレータ（後述するモジュレータＯＭ又はキャリアＯＣ）として機能させるようにしている。そこで、図２では代表的なオペレータを１つだけ図示し、これを用いてオペレータ（モジュレータＯＭ又はキャリアＯＣ）について簡単に説明する。
【００１２】
図１に示すように、本実施例に示すＦＭ方式の楽音合成装置は１音につき２個のオペレータ（モジュレータＯＭ及びキャリアＯＣ）を使用してＦＭ演算を行い、所望のスペクトル構成を持つ楽音信号を合成する。この楽音合成装置は、楽音信号の基本となるキャリア波形信号（搬送波信号）を発生するキャリア波形発生器（キャリアＯＣ）と、前記キャリア波形信号を所望の楽音信号に変調するためのモジュレーション波形信号（変調波信号）を発生するモジュレーション波形発生器（モジュレータＯＭ）とからなる。これらの各波形発生器では、ＦＢ（フィードバック）パラメータ、波形パラメータ、ピッチパラメータ、エンベロープパラメータなどの各種パラメータをそれぞれ入力できるようになっており、これらの各パラメータに従って最終的にキャリアＯＣから出力される楽音信号の波形形状を制御することのできるようにしている。詳しくは後述するが、この実施例に示す楽音合成装置においては、波形パラメータとして少なくともストップポイントアドレス（ＳＰ）とここでは呼んでいる適宜の相対値（例えば相対アドレス値など）と、波形読み出しアドレスの進行を一時停止している時間幅を決めるストップタイム（ＳＴ）とをそれぞれのオペレータに対して与え、各オペレータでは前記ストップポイントアドレス（ＳＰ）まで波形テーブル（後述のウェーブテーブルＷＴ）から所望の基本波形（正弦波など）を読み出したら当該波形読み出しアドレスの進行を一時的に停止し（つまり、同一のアドレス値を読み続ける）、一時停止してから前記ストップタイム（ＳＴ）分だけ時間が経過すると再度波形読み出しアドレスの進行を再開するように制御する。こうすることにより、ユーザは上記ストップポイントアドレス（ＳＰ）を基本波形のスタートアドレス（ＳＡ）及びエンドアドレス（ＥＡ）以外の中間点のいずれかに設定し、所望のストップタイム（ＳＴ）を指定するだけで、多様な音色を実現するより複雑な波形形状をした楽音信号を簡単に生成することができるようになる。なお、上記ストップポイントアドレス（ＳＰ）及びストップタイム（ＳＴ）以外の波形パラメータに含まれるその他のパラメータや、ＦＢ（フィードバック）パラメータ、ピッチパラメータ、エンベロープパラメータについては公知であることから、ここでの説明を省略する。
【００１３】
図２に示すように、各オペレータ（モジュレータＯＭ又はキャリアＯＣ）はそれぞれセレクタＳ１、フェーズジェネレータＰＧ、アドレスジェネレータＡＧ、ウェーブテーブルＷＴ、エンベロープジェネレータＥＧ、加算器Ｋ１、乗算器Ｊ１を少なくとも含んで構成される。セレクタＳ１はＦＢパラメータが「０」つまり該オペレータの出力波形を自己フィードバックしないよう設定されている場合には、セレクタＳ１の入力端子からの自己フィードバック信号を出力しない一方で、ＦＢパラメータが「１」つまり該オペレータの出力波形を自己フィードバックするよう設定されている場合には、セレクタＳ１の入力端子からの自己フィードバック信号を出力する。すなわち、図１に示すように、モジュレータＯＭは自身の出力波形を入力側にフィードバックすることにより前記出力波形で更なる変調を行う所謂自己フィードバック機能を具えており、同じ周波数での変調であるが出力波形をフィードバックすることによって、より複雑な波形の変調波信号を作り出すことができるようにしている。そこで、ＦＢパラメータを設定することによって、こうした自己フィードバック機能を動作させるか否かを制御する。ただし、図１から理解できるように、こうした自己フィードバック機能を有しているのはモジュレータＯＭのみであってキャリアＯＣは上記機能を有していないことから、キャリアＯＣでは自己フィードバック信号を出力することがない。そこで、キャリアＯＣでは、前記ＦＢパラメータをモジュレータＯＭからの出力波形を入力するか否かを決定するためのパラメータとして用いる。
【００１４】
フェーズジェネレータＰＧは、演奏操作子（例えば鍵盤など）のユーザ操作に応じて入力される例えば音高及びオクターブ情報などのピッチパラメータに応じて、該当するピッチ周波数ナンバを発生する。ピッチ周波数ナンバは、押下された鍵などの操作された演奏操作子毎に予め割り当てられている音高に対応した発生すべき波形の音高周波数（ピッチ）を決定する数値データからなる周波数情報である。詳しくは後述するが（図３及び図４参照）、フェーズジェネレータＰＧでは波形パラメータとしてストップポイントアドレス（ＳＰ）及びストップタイム（ＳＴ）が設定されている場合、該ストップタイム（ＳＴ）に応じて前記発生したピッチ周波数ナンバを補正する。フェーズジェネレータＰＧから発生されたピッチ周波数ナンバは、加算器Ｋ１によりセレクタＳ１からの出力と加算されてアドレスジェネレータＡＧに対して与えられる。
【００１５】
アドレスジェネレータＡＧは位相角（０〜２π）に対応する位相情報を発生する回路であり、前記フェーズジェネレータＰＧから与えられたピッチ周波数ナンバを累算（加算又は減算であってもよい）することに応じて波形読み出しアドレス信号を発生する。この波形読み出しアドレス信号は、ウェーブテーブルＷＴに記憶された基本波形を読み出すためのアドレス情報である。ウェーブテーブルＷＴは基本波形を多数記憶したテーブルであり、該テーブルには基本波形（サンプルデータ）として正弦波、三角波、のこぎり波などの１周期分の各波形データが複数のサンプル点毎に記憶されている。ウェーブテーブルＷＴにおいて、当該基本波形の最初のサンプルデータを記憶した絶対アドレスがスタートアドレス（ＳＡ）であり、その基本波形の最後のサンプルデータを記憶した絶対アドレスがエンドアドレス（ＥＡ）である。
【００１６】
この実施例に示す楽音合成装置においては波形パラメータとして、予め決めておいた時間だけ以降の基本波形の波形読み出しアドレスの進行を一時的に停止するよう制御を開始する相対アドレス位置を指定するストップポイントアドレス（ＳＰ）と、前記基本波形の波形読み出しアドレスの進行を一時停止している時間幅を決めるストップタイム（ＳＴ）とをそれぞれ任意に設定することができ、これを各オペレータに与えることができるようになっている。各オペレータにおいてウェーブテーブルＷＴから所望の基本波形（サンプルデータ）を読み出す際には、まず上記ストップポイントアドレス（ＳＰ）を参照しながら、スタートアドレス（ＳＡ）からストップポイントアドレス（ＳＰ）まで順次に波形読み出しアドレスを進行させて基本波形の読み出しを行う。そして、ストップポイントアドレス（ＳＰ）まで順次に基本波形の読み出しを行うと、その時点から一時的に前記基本波形の波形読み出しアドレスの進行を停止する。上記ストップタイム（ＳＴ）で定義された停止時間だけ時間が経過すると、ストップポイントアドレス（ＳＰ）からエンドアドレス（ＥＡ）まで順次に波形読み出しアドレスの進行を再開して、基本波形の読み出しを行う。このようにして、ウェーブテーブルＷＴからの基本波形の読み出しは、上記アドレスジェネレータＡＧから出力される波形読み出しアドレス信号に基づくアドレス進行に従って制御される。このアドレスジェネレータＡＧから出力される波形読み出しアドレス信号については、後述する（図５及び図６参照）。
【００１７】
エンベロープジェネレータＥＧは入力されたエンベロープパラメータに応じたエンベロープ信号を出力し、これをウェーブテーブルＷＴから基本波形を読み出すことに伴い生成された波形に対して乗算することにより最終的に出力する信号のエンベロープを決定する。図１に示した周波数変調演算型の楽音合成装置では、上記のようにしてオペレータから出力される信号を搬送波信号や変調波信号などとして用いる。
【００１８】
次に、上述したオペレータに含まれるフェーズジェネレータＰＧ及びアドレスジェネレータＡＧの詳細について説明する。まず、フェーズジェネレータＰＧについて、図３及び図４を用いて説明する。図３は、フェーズジェネレータＰＧの具体的な実施例を示す回路図である。図４は、フェーズジェネレータＰＧから出力されるピッチ周波数ナンバを時間経過にあわせて累算したＡＧ出力波形（ただし、スタートアドレス（ＳＡ）によるオフセットは省略）を表した図である。ここで、図４（ａ）は基本波形の波形読み出しアドレスの進行停止が「なし」の場合（つまり、ストップポイントアドレス（ＳＰ）及びストップタイム（ＳＴ）が設定されておらず、後述するピッチ周波数ナンバの補正がなされない場合）のＡＧ出力波形図であり、図４（ｂ）は基本波形の波形読み出しアドレスの進行停止が「あり」の場合（つまり、ストップポイントアドレス（ＳＰ）及びストップタイム（ＳＴ）が設定されており、後述するピッチ周波数ナンバの補正がなされる場合）のＡＧ出力波形図である。
【００１９】
図３に示すように、フェーズジェネレータＰＧは、シフタＢ、補正係数算出器Ｅ、乗算器Ｊ２を少なくとも含む回路により構成される。シフタＢはピッチパラメータとして入力された音高に対応した音高周波数（ピッチ）に比例するピッチ周波数ナンバ（ＦＵＮＭ）を、同様にピッチパラメータとして入力されたオクターブ情報ＯＣＴに従いオクターブシフトするためのものである。例えば、シフタＢはピッチ周波数ナンバ（ＦＮＵＭ）をオクターブ情報ＯＣＴが指示するビット数だけシフトし、ピッチ周波数ナンバ（ＦＮＵＭ１）として出力する。したがって、オクターブシフトされない場合には、入力された音高に対応したピッチ周波数ナンバ（ＦＵＮＭ）とシフタＢからの出力であるオクターブシフト後のピッチ周波数ナンバ（ＦＮＵＭ１）とは等しいものとなる。シフタＢからの出力は乗算器Ｊ２に与えられて、補正係数算出部Ｅから出力される補正係数と乗算される。補正係数算出部Ｅは波形パラメータとして入力されたストップタイム（ＳＴ）に基づき補正係数を算出して、これを乗算器Ｊ２に与えることによりシフタＢから出力されたピッチ周波数ナンバ（ＦＮＵＭ１）を補正する。該補正係数は、以下に示す数１及び数２に従い算出する。
【数１】
2006047834.tif 000003
【数２】
2006047834.tif 000004
ここで、Ｔは発生すべき波形の音高周波数（ピッチ）の周期であって、ＬはウェーブテーブルＷＴにおいて１周期分の所望の基本波形を記憶しているアドレス範囲（つまり、スタートアドレスからエンドアドレスまでのアドレス長）、ｆｓはサンプリング周波数、ＦＮＵＭ１はシフタＢから出力されるシフト後のピッチ周波数ナンバである。
【００２０】
補正係数算出器Ｅからの出力である前記補正係数と、シフタＢからの出力であるシフト後のピッチ周波数ナンバ（ＦＮＵＭ１）とは乗算器Ｊ２に与えられて、乗算器Ｊ２により互いに掛け合わされることによって補正後のピッチ周波数ナンバ（ＦＮＵＭ２）を算出し、これをアドレスジェネレータＡＧに対して出力する。詳しくは後述するが、ストップポイントアドレス（ＳＰ）に到達した時点からストップタイム（ＳＴ）で指定した時間が経過するまで基本波形の波形読み出しアドレスの進行を停止する場合、ウェーブテーブルＷＴ内の基本波形のサンプル値データを補正前のピッチ周波数ナンバ（ＦＮＵＭ１）に従って波形読み出しアドレスの進行を一時停止することなくそのまま読み出した場合に比べて、波形読み出しアドレスの進行を一時停止していた時間分だけ生成される波形が間延びされてしまいピッチが変わってしまうことが生ずるので（後述の図６において一点鎖線で示した波形図参照）、ここでストップタイム（ＳＴ）に応じて予めピッチ周波数ナンバ（ＦＮＵＭ１）を補正しておくことによって、基本波形の波形読み出しアドレスの進行を一時停止したとしても生成される波形のピッチは一時停止しない場合と何ら変わることのないようにしている（後述の図６において実線で示した波形図参照）。
【００２１】
図４（ａ）に示すように、波形パラメータとしてストップポイントアドレス（ＳＰ）及びストップタイム（ＳＴ）が与えられていない場合、つまり基本波形の波形読み出しアドレスの進行停止が「なし」の場合には、後述するアドレスジェネレータＡＧにおいて所定の規則的時間間隔（Δｔ）毎にピッチ周波数ナンバ（ＦＮＵＭ１）が順次に加算され、各時間におけるピッチ周波数ナンバ累算値が算出される。ストップポイントアドレス（ＳＰ）及びストップタイム（ＳＴ）が与えられていない場合には、補正係数算出器Ｅによる補正係数は「１」と算出されることから、ピッチ周波数ナンバ（ＦＮＵＭ１）が補正されることなくそのまま累算に用いられる。図４（ａ）に示す実施例では、１周期分の基本波形のアドレス長（Ｌ）に達するまでの時間、つまり１周期波形をウェーブテーブルＷＴから読み出すのにかかる時間はｔ０からｔ１２までの「１２」であり、この時間は基本波形をウェーブテーブルＷＴから読み出す際のピッチに相当する。
【００２２】
一方、図４（ｂ）に示すように、波形パラメータとしてストップポイントアドレス（ＳＰ）及びストップタイム（ＳＴ）が与えられている場合、つまり基本波形の波形読み出しアドレスの進行停止が「あり」の場合においても、上記と同様にして所定の規則的時間間隔（Δｔ）毎にピッチ周波数ナンバが順次に加算されることによって各時間におけるピッチ周波数ナンバ累算値が算出されることは同じであるが、この場合には補正係数算出器Ｅによる補正係数は「１以上」と算出されることから補正後のピッチ周波数ナンバ（ＦＮＵＭ２）が累算に用いられる。図４（ｂ）に示した実施例においては、ストップポイントアドレス（ＳＰ）として１周期波形のアドレス長（Ｌ）に対する相対アドレス値「Ｌ／３」、ストップタイム（ＳＴ）として「２」がそれぞれ設定されていることから、上記数１に従い補正係数は「１．２」と算出される。そこで、補正前のピッチ周波数ナンバ（ＦＮＵＭ１）の１．２倍に補正されたピッチ周波数ナンバ（ＦＮＵＭ２）が順次に累算されることになり、図４（ａ）の場合と比較して１．２倍の速さで１周期波形のアドレス長に達する。すなわち、１周期波形のアドレス長に達するまでの時間は「ｔ１０」となり、この時間がピッチに相当することから上記の場合と比べ基本波形をウェーブテーブルＷＴから読み出す際のピッチがここでは一時的に変更されることになる。
【００２３】
次に、アドレスジェネレータＡＧについて、図５及び図６を用いて説明する。図５は、アドレスジェネレータＡＧの具体的な実施例を示す回路図である。図６は、アドレスジェネレータＡＧから出力されるＡＧ出力波形を表す図である。ただし、この図６では説明を理解し易くするために、波形読み出しアドレスの進行を一時停止して基本波形の読み出しを行った際において、ピッチ周波数ナンバに対する「補正なし」の場合を一点鎖線で、「補正あり」の場合を実線でそれぞれ示し、上述したフェーズジェネレータＰＧにおけるピッチ周波数ナンバ補正の有無による出力信号の違いについて説明する。
【００２４】
上記フェーズジェネレータＰＧから出力された補正後のピッチ周波数ナンバ（ＦＮＵＭ２）はアドレスジェネレータＡＧに与えられ、アドレスジェネレータＡＧではウェーブテーブルＷＴから基本波形のサンプルデータを読み出すための波形読み出しアドレス信号（ＯＵＴ）を出力する。ここでは説明を理解し易くするために、便宜的にアドレスジェネレータＡＧを機能別に分けて説明する。すなわち、アドレスジェネレータＡＧを機能的に大きく分けるとすると、ピッチ周波数ナンバを累算することにより波形読み出しアドレスを生成する機能Ｘと、ストップポイントアドレス（ＳＰ）及びストップタイム（ＳＴ）とに基づき基本波形の波形読み出しアドレスの進行を一時的に停止する制御を行う機能Ｙとに分けることができ、これらの各機能をそれぞれ実現するための回路を有している。前記機能Ｘを実現する回路は、セレクタＳ２及びＳ３、遅延回路Ｄ、ゲート回路Ｇ、加算器Ｋ２、減算器Ｍとを少なくとも含んで構成されている。他方、前記機能Ｙを実現する回路は、セレクタＳ２、比較器Ｈ１及びＨ２、カウンタＣＮ、ＯＲ回路Ｎ、フリップフロップ回路ＦＦを少なくとも含んで構成されている。勿論、前記機能Ｘ及び機能Ｙを実現するそれぞれの回路は上記したものに限られないことは言うまでもない。
【００２５】
まず、前記機能Ｘを実現する回路について説明する。フェーズジェネレータＰＧから出力された補正後のピッチ周波数ナンバ（ＦＮＵＭ２）は、セレクタＳ２に与えられる。セレクタＳ２では、フリップフロップ回路ＦＦからの入力信号が「０」である場合には与えられたピッチ周波数ナンバ（ＦＮＵＭ２）をそのまま出力し、フリップフロップ回路ＦＦからの入力信号が「１」である場合には「０」を加算器Ｋ２に対して出力する。上記フリップフロップ回路ＦＦの動作（前記入力信号（「０」又は「１」のセット）については後述することから、ここでの説明を省略する。加算器Ｋ２は、セレクタＳ２からの出力（ピッチ周波数ナンバ（ＦＮＵＭ２）又は「０」のいずれか）と、遅延回路Ｄと減算器Ｍ及びセレクタＳ３とゲート回路Ｇとからなる循環回路からの出力とを加算して、ピッチ周波数ナンバ（ＦＮＵＭ２）の累算値を算出する。ここで、ピッチ周波数ナンバ（ＦＮＵＭ２）は、押下された鍵に割り当てられている音高に対応した音高周波数（ピッチ）に比例する補正後の数値データであり、単位時間当りの位相増分値に相当する。そのため、ピッチ周波数ナンバ（ＦＮＵＭ２）を規則的時間間隔（Δｔ）毎に繰り返し演算した累算値は時間的に変化する位相情報であり、これはウェーブテーブルＷＴにおいて１周期分の基本波形を記憶した記憶領域内の相対的なアドレスに対応する。この際に、セレクタＳ２から「０」が入力されている場合には上記累算値は一定のままであり、アドレスは進行しないことから、「０」が入力されている間は同じ波形を読み出すことになる。つまり、波形読み出しアドレスの進行が実質的に停止される。こうして加算器Ｋ２で算出されたピッチ周波数ナンバ（ＦＮＵＭ２）の累算値は、循環回路の遅延回路Ｄ及び減算器Ｍ、比較回路Ｈ１、加算器Ｋ３に対してそれぞれ与えられる。
【００２６】
遅延回路Ｄ、減算器Ｍ及びセレクタＳ３、ゲート回路Ｇとからなる循環回路では、ピッチ周波数ナンバ（ＦＮＵＭ２）を累算するために、１サンプリング周期ずつピッチ周波数ナンバ（ＦＮＵＭ２）の累算値を遅延して加算器Ｋ２に対して与える。すなわち、遅延回路Ｄは加算器Ｋ２から出力された１サンプリング周期である時間（Δｔ）だけ遅延された時間に算出されたピッチ周波数ナンバ累算値を、セレクタＳ３の入力端子の一方に与える。セレクタＳ３のもう一方の入力端子には、減算器Ｍから出力されたデータのうち最上位ビット（ＭＳＢ）以外の値が与えられる。この減算器Ｍは、加算器Ｋ２から出力されたピッチ周波数ナンバ累算値からアドレス長（Ｌ）を減算するものである。セレクタＳ３では、こうした減算器Ｍから出力されたデータの最上位ビット（ＭＳＢ）が「１」である場合には最上位ビット（ＭＳＢ）以外をゲート回路Ｇに出力し、前記最上位ビット（ＭＳＢ）が「０」である場合には遅延回路Ｄからの出力であるピッチ周波数ナンバ累算値をゲート回路Ｇへと出力する。こうすると、ピッチ周波数ナンバ累算値がオーバーフローした場合には最小値から再び累算を行うようになることから、アドレスジェネレータＡＧから出力される波形読み出しアドレス信号としては繰り返し周期の波形が出力される。ゲート回路Ｇでは、キーオンに伴い発生されるパルス信号であるキーオンパルス（ＫＯＮＰ）が新たに入力されるまで、該ピッチ周波数ナンバ累算値を加算器Ｋ２に与える。キーオンパルス（ＫＯＮＰ）が新たに入力された場合には該ピッチ周波数ナンバ累算値を加算器Ｋ２に与えないことによって、キーオンされた鍵に対応付けられた音高のピッチ周波数ナンバに基づき新たに最初からピッチ周波数ナンバの累算を開始する。加算器Ｋ２では、新たに入力されたピッチ周波数ナンバ（ＦＮＵＭ２）とゲート回路Ｇからのピッチ周波数ナンバ累算値とを加算する。
【００２７】
次に、前記機能Ｙを実現する回路について説明する。ストップポイントアドレス（ＳＰ）は、比較回路Ｈ１の入力端子に加えられる。比較回路Ｈ１のもう一方の入力端子には、加算器Ｋ２からの出力であるピッチ周波数ナンバ累算値（相対アドレス信号）が加えられる。この比較回路Ｈ１の出力は、フリップフロップ回路ＦＦのセット端子（Ｓ）に加えられる。これによると、通常はフリップフロップ回路ＦＦの出力信号は「０」であり、セレクタＳ２は入力されたピッチ周波数ナンバ（ＦＮＵＭ２）を選択しているが、ピッチ周波数ナンバ累算値（相対アドレス信号）がストップポイントアドレス（ＳＰ）に到達した場合には、比較回路Ｈ１によりフリップフロップ回路ＦＦに対して信号が与えられ、フリップフロップ回路ＦＦの出力信号は「１」となるので、セレクタＳ２はピッチ周波数ナンバ（ＦＮＵＭ２）ではなく「０」を選択することになる。すなわち、ピッチ周波数ナンバ累算値がストップポイントアドレス（ＳＰ）に到達したら、ピッチ周波数ナンバ累算値は加算されることなく一定値のままとなる。すなわち、波形読み出しアドレスの進行が実質的に停止されることになる。
【００２８】
一方、ストップタイム（ＳＴ）は、比較回路Ｈ２の入力端子に加えられる。比較回路Ｈ２のもう一方の入力端子には、カウンタＣＮからの出力であるカウンタ値が加えられる。カウンタＣＮはピッチ周波数ナンバ累算値（相対アドレス信号）がストップポイントアドレス（ＳＰ）に到達した場合にカウントが開始され、このカウンタＣＮによるカウンタ値とストップタイム（ＳＴ）とを比較回路Ｈ２により比較する。比較回路Ｈ２の出力はキーオン時に出力されるキーオンパルス（ＫＯＮＰ）との間でＯＲ回路Ｎを介して、フリップフロップ回路ＦＦのリセット端子（Ｒ）に加えられる。これによると、ピッチ周波数ナンバ累算値（相対アドレス信号）がストップポイントアドレス（ＳＰ）に到達した以降に加算されたカウント値がストップタイム（ＳＴ）と一致すると、比較回路Ｈ２によりＯＲ回路Ｎに信号が与えられ、さらにＯＲ回路Ｎからフリップフロップ回路ＦＦに対してリセット信号が与えられて、フリップフロップ回路ＦＦの出力信号は「０」となるので、セレクタＳ２は入力されたピッチ周波数ナンバ（ＦＮＵＭ２）を再度選択することになる。したがって、波形読み出しアドレスの進行を一時停止してからストップタイム（ＳＴ）経過後は、ピッチ周波数ナンバ累算値に対してピッチ周波数ナンバ（ＦＮＵＭ２）が再度加算されることから、波形読み出しアドレスの進行が再開される。なお、ＯＲ回路Ｎに対してキーオンに伴い発生されるパルス信号であるキーオンパルス（ＫＯＮＰ）が新たに入力された場合には、フリップフロップ回路ＦＦからセレクタＳ２に対して「０」が与えられ、その時点からは新たに入力されるピッチ周波数ナンバ（ＦＮＵＭ２）に従い累算が開始される。
【００２９】
上述したように、入力されたピッチ周波数ナンバ（ＦＮＵＭ２）を規則的時間間隔毎に順次に加算することに応じて生成されるピッチ周波数ナンバ累算値は、１周期分の基本波形を記憶した記憶領域内の相対的なアドレスに対応する。ウェーブテーブルＷＴから基本波形を読み出すためには、このピッチ周波数ナンバ累算値（相対アドレス信号）を絶対アドレス信号へと変換する必要がある。そこで、加算器Ｋ３では絶対アドレスであるスタートアドレス（ＳＡ）を加算することにより、ピッチ周波数ナンバ累算値（相対アドレス信号）を絶対アドレス信号に変換する。この加算器Ｋ３から出力される絶対アドレス信号に応じてウェーブテーブルＷＴをアクセスすることにより、ウェーブテーブルＷＴに記憶された所定の基本波形（例えば正弦波など）のサンプルデータが応答してウェーブテーブルＷＴから読み出しされる。
【００３０】
このようにして、アドレスジェネレータＡＧではピッチ周波数ナンバ（ＦＮＵＭ２）を規則的時間間隔で繰り返し演算し累算することにより、波形読み出しアドレス信号を発生する。図６に示すように、波形パラメータとしてストップポイントアドレス（ＳＰ）及びストップタイム（ＳＴ）が与えられている場合、まず時刻「ｔ０」においてスタートアドレス（ＳＡ）からサンプル値データの読み出しが開始される。所定の規則的時間間隔毎にピッチ周波数ナンバ（ＦＮＵＭ２）に相当するアドレス分だけ増加されていくが、該アドレス値がストップポイントアドレス（ＳＰ）に到達した時刻「ｔ４」からは所定の規則的時間間隔毎にピッチ周波数ナンバ（ＦＮＵＭ２）の代わりに「０」が加算されることからアドレスは増加することなく一定となる。そして、アドレス値の変化が停止した時刻「ｔ４」からストップタイム（ＳＴ）経過後の時刻「ｔ６」からは再度所定の規則的時間間隔毎にピッチ周波数ナンバ（ＦＮＵＭ２）に相当するアドレス分ずつアドレス長（Ｌ）に達するまで増加される。こうして、１周期波形を読み出す分の絶対アドレスからなる波形読み出しアドレス信号が生成される。この場合には１周期波形のアドレス長（Ｌ）に達するまでの時刻が「ｔ１２」となり、波形読み出しアドレスの進行を一時停止することなく波形を読み出した場合（図４（ａ）参照）と同様のピッチで波形を読み出しすることになる。すなわち、一時停止ありの際に、入力されたピッチ周波数ナンバ（ＦＮＵＭ１）をそのままアドレスとした場合には１周期波形のアドレス長（Ｌ）に達するまでの時刻がストップタイム（ＳＴ）分加算されて「ｔ１４」となってしまいピッチが変わってしまい都合が悪い。そこで、フェーズジェネレータＰＧにおいてピッチ周波数ナンバの補正を予め行っておくことにより、波形読み出しアドレスの進行を一時停止したとしても生成される波形におけるピッチの同一性を保つようにしている。
【００３１】
以上のようにして、アドレスジェネレータＡＧから出力された例えば図６に示したような波形読み出しアドレスに従いウェーブテーブルＷＴから基本波形を読み出すと、図７に示すような波形形状の波形を生成することができる。図７は、図６に示したＡＧ出力波形に基づきウェーブテーブルから正弦波を読み出した場合に生成される波形の一例を表す図である。この図７から理解できるように、上述したようにして、ストップポイントアドレス（ＳＰ）とストップタイム（ＳＴ）に従い、基本波形の波形読み出しアドレスの進行を一時停止するように波形読み出し制御を行うことにより、出力される波形のピッチを変えることなく波形形状のみを変えることができる。したがって、ユーザは元の基本波形の波形形状を大きく変化させて基本波形を読み出すことが前記ストップポイントアドレス（ＳＰ）とストップタイム（ＳＴ）を適宜に設定することによりできるようになり、該読み出した波形を周波数変調演算に用いることによって、多様な音色を実現するより複雑な波形形状をした楽音信号を生成することが簡単にできるようになる。このようにして、図１に示したモジュレータＯＭではピッチ周波数ナンバ累算値に従ってウェーブテーブルＷＴから基本波形を読み出すことによって変調波信号を発生する。他方、キャリアＯＣではピッチ周波数ナンバ累算値に従ってウェーブテーブルＷＴから基本波形を読み出すことによって搬送波信号を発生し、前記モジュレータＯＭから出力された変調波信号と該発生した搬送波信号とを加算することにより、変調された楽音信号を出力することができる。
【００３２】
なお、上述した実施例では波形パラメータとして与えられたサンプル点（ストップポイントアドレス（ＳＰ））を基準としてサンプル点に到達した時間からストップタイム（ＳＴ）分だけ波形読み出しアドレスの進行を一時停止するようにしたがこれに限らず、サンプル点に到達するストップタイム分だけ前の時間から波形読み出しアドレスの進行を一時停止し、サンプル点に到達した時間から波形読み出しアドレスの進行を再開するようにしてもよい。
なお、ストップポイントアドレス（ＳＰ）として与えられるサンプル点は１つに限らず複数であってよく、その各サンプル点に到達する毎に適宜の時間だけ波形読み出しアドレスの進行を一時停止するようにしてもよい。この場合、各サンプル点毎に一時停止する時間を合計したものをストップタイム（ＳＴ）とするとよい。
勿論、上記のようにした場合には、図５に示したアドレスジェネレータＡＧにおけるストップポイントアドレス（ＳＰ）及びストップタイム（ＳＴ）とに基づき基本波形の波形読み出しアドレスの進行を一時的に停止する制御を行う機能Ｙを実現する回路は上記各態様にあわせて変更することが必要であることは言うまでもない。
【００３３】
なお、上述の実施例においては最も単純な１項の周波数変調演算を２タイムスロットを使用して１個のオペレータ（演算ユニット）を時分割で行うものを示したがこれに限らず、複数のオペレータを用意しておき、各オペレータの接続態様を選択的に切り替えることによって、ＦＭ演算のアルゴリズムを選択し、所望の音色の楽音の合成を行うようにしてあってもよい。
なお、上述した実施例に示したオペレータの基本構成（図２参照）や、フェーズジェネレータＰＧ又はアドレスジェネレータＡＧの回路構成（図３又は図５参照）は一例であってこれに限らないことは言うまでもない。
なお、記憶装置に予め記憶している基本波形のサンプル値データはＰＣＭ、ＤＰＣＭ、ＡＤＰＣＭなどの、どのような波形サンプルデータ方式のものであってもよいことは言うまでもない。
なお、上述した実施例においては発生した波形を周波数変調演算型（ＦＭ方式）の楽音合成装置に用いる例を示したがこれに限らず、振幅変調演算型（ＡＭ方式）の楽音合成装置における搬送波信号や変調波信号などとして用いてもよい。
【図面の簡単な説明】
【００３４】
【図１】この発明に係る波形発生装置を適用した周波数変調演算型の楽音合成装置の全体構成の一実施例を示すブロック図である。
【図２】オペレータ（波形発生装置）の基本構成の一実施例を示すブロック図である。
【図３】フェーズジェネレータの具体的な実施例を示す回路図である。
【図４】フェーズジェネレータから出力されるピッチ周波数ナンバを時間経過にあわせて累算したＡＧ出力波形を表した図であり、図４（ａ）は基本波形の波形読み出しアドレスの進行停止が「なし」の場合、図４（ｂ）は基本波形の波形読み出しアドレスの進行停止が「あり」の場合である。
【図５】アドレスジェネレータの具体的な実施例を示す回路図である。
【図６】アドレスジェネレータから出力されるＡＧ出力波形を表す図である。
【図７】図６に示したＡＧ出力波形に基づきウェーブテーブルから正弦波を読み出した場合に生成される波形の一例を表す図である。
【符号の説明】
【００３５】
ＯＭ…オペレータ（モジュレータ）、ＯＣ…オペレータ（キャリア）、Ｓ１（Ｓ２、Ｓ３）…セレクタ、ＰＧ…フェーズジェネレータ、ＡＧ…アドレスジェネレータ、ＥＧ…エンベロープジェネレータ、ＷＴ…ウェーブテーブル、Ｋ１（Ｋ２、Ｋ３）…加算器、Ｊ１（Ｊ２）…乗算器、Ｂ…シフタ、Ｅ…補正係数算出器、Ｈ１（Ｈ２）…比較器、Ｎ…ＯＲ回路、ＦＦ…フリップフロップ回路、Ｄ…遅延回路、Ｇ…ゲート回路、Ｍ…減算器、ＣＮ…カウンタ
【図１】
2006047834.tif 000005
【図２】
2006047834.tif 000006
【図３】
2006047834.tif 000007
【図４】
2006047834.tif 000008
【図５】
2006047834.tif 000009
【図６】
2006047834.tif 000010
【図７】
2006047834.tif 000011