JP3844214B2 - Modulation waveform generator - Google Patents
Modulation waveform generator Download PDFInfo
- Publication number
- JP3844214B2 JP3844214B2 JP2002079794A JP2002079794A JP3844214B2 JP 3844214 B2 JP3844214 B2 JP 3844214B2 JP 2002079794 A JP2002079794 A JP 2002079794A JP 2002079794 A JP2002079794 A JP 2002079794A JP 3844214 B2 JP3844214 B2 JP 3844214B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- tempo
- value
- channel
- counter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000001360 synchronised effect Effects 0.000 claims description 18
- 238000009825 accumulation Methods 0.000 claims description 6
- 238000000034 method Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 24
- 230000000694 effects Effects 0.000 description 21
- 230000010355 oscillation Effects 0.000 description 12
- 230000009471 action Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000005070 sampling Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000005236 sound signal Effects 0.000 description 7
- 238000004091 panning Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000003672 processing method Methods 0.000 description 3
- 241001342895 Chorus Species 0.000 description 2
- HAORKNGNJCEJBX-UHFFFAOYSA-N cyprodinil Chemical compound N=1C(C)=CC(C2CC2)=NC=1NC1=CC=CC=C1 HAORKNGNJCEJBX-UHFFFAOYSA-N 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、電子楽器などに適用する変調波形発生装置に関する。
【0002】
【従来の技術】
電子楽器の発生する楽音に対しては、振幅、周波数、パン(ステレオ音における左右の音量バランス)、あるいは音色などを変動させて特殊効果を付与することが多い。そのような特殊効果の付与を行なうため、変調波(低周波)波形発生器、いわゆるLFOが設けられる。楽音に対する特殊効果の周期は、このLFOから出力される変調波形の周期によって決定される。
【0003】
一方、近年の電子楽器は自動演奏や自動伴奏の機能を備えたものが多い。自動演奏や自動伴奏では、自動演奏・伴奏におけるテンポが指定される。例えば、MIDI(Musical Instruments Digital Interface)データで表現された自動演奏データでは、曲の先頭や途中にテンポを指定するデータをセットし、曲の先頭や途中でのテンポの設定を行なう。
【0004】
そのような自動演奏・伴奏の側でのテンポのタイミングと特殊効果のタイミングが一致しないと楽音が不自然になる。そこで、特殊効果の周期を規定するLFOと自動演奏・伴奏のテンポとを同期させるための技術が提案されている。例えば、特許第2621669号には、指示手段による楽音信号発生指示に応じて第1の楽音信号を発生し、テンポ設定手段で設定されたテンポにしたがって自動的に第2の楽音信号を発生し、さらに前記テンポ設定手段で設定されたテンポに応じた周期の変調信号を発生し、その変調信号に基づき第1の楽音信号を変調するようにした電子楽器が開示されている。これによれば、第2の楽音信号(自動伴奏)のテンポはテンポ設定手段で設定されたテンポにしたがい、さらにそのテンポに応じた周期の変調信号で第1の楽音信号を変調するので、変調信号の周期を自動伴奏のテンポに対応させることができ、第1の楽音信号の変調を自動伴奏に同期させることができる。なお、以下では、自動演奏や自動伴奏のテンポに同期した周期の変調信号を発生するLFOを「テンポ同期LFO」と呼ぶ。
【0005】
【発明が解決しようとする課題】
上記特許第2621669号に記載のものは、数値として与えられたテンポに対して同期した変調信号を発生するものであり、実際にテンポを規定するテンポクロック(例えば、MIDIデータで入力してくるテンポクロック)に対して同期した変調信号を発生するものではない。特に、自動演奏(以下、単に自動演奏というときは自動伴奏も含むものとする)のテンポを規定するテンポクロックの時間間隔が変動する場合、従来のテンポ同期LFOでは、その周期が変動するテンポクロックに対して同期することは困難である。また、従来のテンポ同期LFOでは、仮に、自動演奏手段からテンポクロックとともに数値としてのテンポ値を供給しても、テンポの変化タイミングを互いに完全一致させることはできないので、厳密な意味での同期はとれていない。
【0006】
さらに、その指定されたテンポに応じて変調波形を発生するLFO(音源内のLFO)が自動演奏手段(一般にCPU)とは独立した発振器である場合には、たとえテンポ値が固定であっても、テンポクロックと変調波形が時間とともに少しずつずれていくという問題がある。CPUにテンポ同期LFOの波形発生処理を受け持たせることも考えられるが、そうするとCPUは、各サンプリング周期ごとに発音チャンネル数分のLFO処理を行なうことになり、負担が大きい。
【0007】
この発明は、上述の従来技術における問題点に鑑み、LFOと自動演奏手段とが独立して設けられている場合でも、自動演奏のテンポに同期した変調波形を発生することができる変調波形発生装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
この目的を達成するため、請求項1に係る発明は、楽音を生成する複数チャンネルを備えた音源内で使用する複数の変調波形を発生する変調波形発生装置であって、テンポに同期した複数拍で一巡する所定ビット数の基本波形を発生する基本波形発生手段と、前記複数チャンネルの各チャンネルごとの乗数を記憶した記憶手段と、前記基本波形にチャンネルごとの乗数を乗じ、その乗算結果のうちの、前記基本波形のビット数と同じビット数からなる部分を、各チャンネルごとの乗算結果波形として出力する乗算手段と、前記乗算手段が出力する各チャンネルごとの乗算結果波形に基づいて、各チャンネルごとの変調波形を発生する変調波形発生手段とを備えたことを特徴とする。
【0009】
請求項2に係る発明は、楽音を生成する複数チャンネルを備えた音源内で使用する複数の変調波形を発生する変調波形発生装置であって、テンポに同期した複数拍で一巡する所定ビット数の基本波形を発生する基本波形発生手段と、前記複数チャンネルの各チャンネルごとの乗数を記憶した記憶手段と、前記基本波形にチャンネルごとの乗数を乗じ、その乗算結果のうちの、予め決められているビット数の部分を、各チャンネルごとの乗算結果波形として出力する乗算手段と、前記乗算手段が出力する各チャンネルごとの乗算結果波形に基づいて、各チャンネルごとの変調波形を発生する変調波形発生手段とを備えたことを特徴とする。
【0010】
請求項3に係る発明は、請求項1または2に記載の変調波形発生装置において、前記基本波形発生手段は、テンポに同期して発生されるテンポ信号を受信するごとに第1の所定値を累算する第1の累算手段と、前記テンポ信号の周期より短い所定周期で第2の所定値を累算し、第2の累算値を出力する第2累算手段と、前記テンポ信号を受信したとき、前記第2累算手段の累算している第2の累算値を第1の累算値に略一致させる一致制御手段と、前記第2の累算値に基づいて基本波形を発生する手段とを備えたことを特徴とする。
【0011】
【発明の実施の形態】
以下、図面を用いてこの発明の実施の形態を説明する。
【0012】
図1は、この発明の変調波形発生装置を適用した電子楽器のブロック構成を示す。この電子楽器は、中央処理装置(CPU)101、リードオンリメモリ(ROM)102、ランダムアクセスメモリ(RAM)103、タイマ104、ドライブ装置105、MIDIインターフェース107、ネットワークインターフェース108、パネルスイッチ109、パネル表示器110、音源120、波形メモリ128、ディジタルアナログ変換器(DAC)130、およびサウンドシステム131を備える。
【0013】
CPU101は、この電子楽器全体の動作を制御するための処理装置である。ROM102は、CPU101が実行するプログラムや各種の定数データなどを格納した不揮発メモリである。RAM103は、CPU101が実行するプログラムのロード領域や各種のワークメモリ領域に使用する揮発性のメモリである。タイマ104は、所定周期のクロック信号を供給するタイマである。ドライブ装置105は、外部記録媒体であるディスク106を挿入し、CPU101の指示に応じて各種のデータを読み書きする装置である。MIDIインターフェース107は、外部のMIDI機器と接続しMIDI規格にしたがって信号のやり取りを行なうインターフェースである。ネットワークインターフェース108は、外部のネットワークに接続するためのインターフェースである。パネルスイッチ109は、この電子楽器の外部パネル上に設けられている各種のスイッチなどの操作子を示す。パネル表示器110は、この電子楽器のパネル上に設けられている表示器である。
【0014】
音源120は、音源制御レジスタ121、LFO(変調波形発生部)122、アドレス発生部123、補間部124、DCF(周波数特性制御部)125、EG(エンベロープジェネレータ)126、およびミキサ&DSP127を備える。音源120は、複数チャンネルについて時分割で動作する。すなわち、いわゆる1DAC周期(1サンプリング周期)をチャンネルの数で分割し、分割した各時間区間で各チャンネルの楽音生成処理を行なうものである。
【0015】
音源制御レジスタ121は、CPU101と音源120との間のインターフェースの役割を果たす。CPU101は、音源制御レジスタ121の中の所定のレジスタに所定の値を書き込むことにより、音源120に各種の指示命令を出す。音源制御レジスタ121については、後に詳しく説明する。アドレス発生部123は、CPU101の指示に応じて波形メモリ128中の所定の波形データを読み出すアドレスを発生する。読み出された波形データは補間部124で補間処理され、DCF125に入力する。DCF125は、入力信号に対し音色変化を与える。EG付与部126は、入力信号に対してエンベロープを付与する。ミキサ&DSP127は、入力信号をミキシングし各種の効果付与などを行なった後、最終的な音源出力として楽音信号をDAC130に出力する。DAC130は、入力したディジタル楽音信号をアナログ楽音信号に変換する。変換されたアナログ楽音信号はサウンドシステム131により放音される。
【0016】
LFO122で発生したLFO波形は、アドレス発生部123、DCF125、EG付与部126、およびミキサ&DSP127に入力する。アドレス発生部123に入力するLFO波形は、アドレスを周波数変調するピッチ変調波形の役割を果たす。DCF125に入力するLFO波形は、音色を変化させる音色変調波形の役割を果たす。EG付与部126に入力するLFO波形は、エンベロープを付与する際の振幅変調波形の役割を果たす。ミキサ&DSP127に入力するLFO波形は、パンの変化に利用したり、リバーブやコーラスなどの各種のエフェクト処理に利用する。
【0017】
図2は、LFO122で発生するLFO波形の例を示す。5線譜と音符は自動演奏の楽音を示す。その下の波形201は、この自動演奏のテンポに同期して発生されるLFO波形の例である。例えば、1小節の開始位置でパンポット(音像の位置)を左側に定位(ステレオのL側の音量レベルが最大でR側の音量レベルが0の状態)させ、小節内では徐々にパンポットを左側から右側に移動させ、小節終了位置ではパンポットを右側に定位させるようなパンニングを行ないたいときには、このLFO波形201をミキサ&DSP127のパンニング回路に供給する。LFO波形201はパンポットの定位する位置を規定する波形の役割を果たし、LFO波形20の最下位レベルで一番左、最上位レベルで一番右に定位するものとする。このようなパンニングを行なう場合、自動演奏のテンポとLFO波形が同期していないと、各小節で所望のパンニングを行なうことができない。本実施形態では、自動演奏のテンポに同期したLFO波形を発生するので、各小節で自動演奏のテンポに同期したパンニングを行なうことができる。
【0018】
自動演奏のテンポに同期したLFO波形201を発生するため、CPU101側からLFO122にテンポクロックであるF8信号に基づくテンポ同期トリガーを供給する。すなわち、CPU101は、後述するようにF8信号のタイミングでテンポ同期トリガーを音源120に供給する。LFO122は、F8信号に基づくテンポ同期トリガーを受けたとき、カウンタの次の目標値に変えるなどのテンポに対する同期ずれを補正する処理を行ない、これによりできる限りF8信号のテンポに同期したLFO波形を出力するように処理する。この処理については、後述する。
【0019】
図3は、図1のLFO122の詳細な構成を示す。LFO122は、トリガーカウンタ301、共通カウンタ302、各チャンネル用低周波発振部303、およびDSP用各低周波発振部305を備える。トリガーカウンタ301と共通カウンタ302は、LFO122内に1つずつ設けられている。各チャンネル用低周波発振部303は、各発音チャンネルごとに設けられている。ここでは128チャンネル分のチャンネル用低周波発振部303が設けられている。DSP用各低周波発振部305は、ミキサ&DSP127で使用する複数の変調波形を生成するため複数設けられている。ここでは64チャンネル分のDSP用各低周波発振部305が設けられている。
【0020】
各発音チャンネル用低周波発振部303は、N倍処理部331、リセット制御部332、オフセット付加部333、形状変形部334、直線補間部335、位相反転部336,338,340、デプス制御部337,339,341、および非同期カウンタ342を備える。各DSP用各低周波発振部305は、N倍処理部351、リセット制御部352、オフセット付加部353、形状変形部354、1次LPF355、および非同期カウンタ356を備える。
【0021】
トリガーカウンタ301と共通カウンタ302は、出力するLFO波形の元になる基本的な鋸歯状波(ベース波形と呼ぶ)を生成するためのそれぞれ整数部17ビットと小数部10ビットで構成されるカウンタである。これらにより生成したベース波形を、各チャンネル用低周波発振部303やDSP用各低周波発振部305で加工することにより、所望のLFO波形を得る。
【0022】
トリガーカウンタ301は、CPU101からテンポ同期トリガーが供給されるごとに、トリガーカウンタアップ値を現在値に加算し、加算後の値を新たな現在値として出力するカウンタである。トリガーカウンタ301の現在値は、共通カウンタ302の目標値となる。テンポ同期トリガーとは、F8信号のタイミングでCPU101から音源120に供給されるトリガーであり、後述するトリガーアクションのことである。トリガーカウンタアップ値は、CPU101が算出して設定する。
【0023】
共通カウンタ302は、各サンプリング周期ごとに共通カウンタ補間レートを累算するカウンタである。共通カウンタ補間レートは、CPU101が算出して設定する。次のテンポ同期トリガーが来る前に、共通カウンタ302の累算値がトリガーカウンタ301の値に到達したら、そこで共通カウンタ302のサンプリング周期ごとの累算を停止する。次のテンポ同期トリガーが来たときに、共通カウンタ302の累算値が未だトリガーカウンタ301の値に到達していなかったら、共通カウンタ302の累算値を、それまで目標値としていたトリガーカウンタ301の値に強制的に設定する。共通カウンタ302の出力は、図2に示したようなベース波形(鋸歯状波)201になる。
【0024】
共通カウンタ302からのベース波形(整数部17ビット+小数部10ビット)は、各チャンネルの低周波発振部303のN倍処理部331に入力する。N倍処理部331は、共通カウンタ302の出力波形をN倍(但し、整数部のビット数は増やさない)する。乗算結果のうちの小数部は切り捨てられ、整数部17ビットのみからなる、ベース波形の周期の1/Nの周期の鋸歯状波を生成する。乗数Nは、各発音チャンネルごとに独立にCPU101が設定する。
【0025】
N倍処理部331の出力は、リセット制御部332に入力する。なお、リセット制御部332以降における各ブロックの波形データは全て整数部17ビットのみから構成される。リセット制御部332は、キーオンと同時にLFO波形を初期位相に設定することを指示するキーオンリセットフラグが「有効」に設定されている場合、各発音チャンネルがノートオンされたときその時点のN倍出力が「0」となるように制御する。具体的には、各発音チャンネルがノートオンされたときのN倍出力値をレジスタに取り込み、それ以降のN倍出力値からそのレジスタの値を整数部の減算(但し、整数部のビット数は増やさない)するような動作を行なう。これにより、リセット制御部332の出力は、強制的に0から開始される波形となる。なお、上記キーオンリセットフラグが「無効」と設定されている場合は、上記「N倍出力値のレジスタへの取り込み」を行なわない。すなわち、ノートオン時に過去にレジスタに取り込まれている値は変更せず、そのレジスタの値をN倍出力値から減算して出力する処理を継続する。
【0026】
リセット制御部332の出力は、オフセット付加部333に入力する。オフセット付加部333は、入力する波形に、各発音チャンネルごとに設定されたオフセット値を加算(但し、整数部のビット数は増やさない)する。このオフセット値は、上記キーオンリセットフラグが「有効」でリセットされた場合の初期位相になる。このオフセット値は、CPU101が設定する。リセット制御部332とオフセット付加部333により、任意の初期位相から開始するLFO波形を生成できる。
【0027】
オフセット付加部333の出力は、形状変形部334に入力する。形状変形部334は、形状選択情報に応じて、入力した鋸歯状波を、三角波、矩形波、およびサイン波などの各種の形状の波形に変換して出力する。ここで、鋸歯状波は各種の形状の波形を生成するための位相データとして働く。従って、この変換では、周期は同じままで形状のみが変換され、あるいは、鋸歯状波をそのまま出力することもできる。形状選択情報は、発音チャンネルごとにCPU101が設定する。
【0028】
形状変形部334の出力は、直線補間部335に入力する。直線補間部335は、入力波形の傾き(変化)が、設定された波形補間レート以下になるように制御する。波形補間レートは、発音チャンネルごとにCPU101が設定する。直線補間部335による補間は、ノイズ除去を目的とする波形の平滑化のためである。
【0029】
直線補間部335の出力は、位相反転部336,338,340にそれぞれ入力する。位相反転部336,338,340では、各発音チャンネルの出力先(アドレス発生部123、DCF125、EG付与部126)ごとに、位相の反転(正相/逆相)を選択可能である。例えば、ピッチと振幅の変調を同位相の変調にしたり、逆位相にしたりできる。また、複数の発音チャンネルで生成する音の振幅変調を互いに同位相(スルー)にしたり逆位相(全ビット反転)にしたりできる。位相の反転を行なうか否かは、CPU101が設定する。
【0030】
位相反転部336,338,340の出力は、それぞれデプス制御部337,339,341に入力する。デプス制御部337,339,341では、各発音チャンネルの出力先(アドレス発生部123、DCF125、EG付与部126)ごとに変調の深さを設定することができる。変調の深さの設定は、CPU101が行なう。デプス制御部337,339,341の出力は、それぞれ、ピッチ変調波形としてアドレス発生部123に、音色変調波形としてDCF125に、振幅変調波形としてEG付与部126に、それぞれ入力する。
【0031】
各発音チャンネルの低周波発振部303は、発音チャンネルごとの設定に応じて、テンポ同期LFOとして動作させることもできるし、テンポ非同期LFOとして動作させることもできる。その指定は、CPU101により行なう。非同期カウンタ342は、テンポ非同期LFOとして動作するとき、設定された周波数データに対応した周波数の変調波形を発生するために使用するカウンタである。テンポ非同期LFOとして動作するよう設定されたLFO303では、発生するLFO波形の周期の単位は周期時間または周波数で指定する。この周期時間または周波数は、CPU101が指定する。非同期カウンタ342は、指定された周期時間または周波数に対応した周波数の変調波形を発生する。
【0032】
なお、ある発音チャンネルの低周波発振部303をテンポ非同期LFOとして動作させるときには、そのチャンネルのN倍処理部331やリセット制御部332は不要である。そこで、リセット制御部332のレジスタを、非同期カウンタ342の現在値を保持するレジスタとして兼用している。また、N倍処理部331の乗数Nを保持するレジスタを、CPU101が指定した「周期時間または周波数」を保持するレジスタとして兼用している。
【0033】
DSP用各低周波発振部305の内部構成は、上述の各発音チャンネルの低周波発振部303と同様である。N倍処理部351はN倍処理部331に、リセット制御部352はリセット制御部332に、オフセット付加部353はオフセット付加部333に、形状変形部354は形状変形部334に、非同期カウンタ356は非同期カウンタ342に、それぞれ相当する。ただし、直線補間部335以降の部分の代わりに、平滑化のための1次LPF355を備えている。低周波発振部305で発生するLFO波形の振幅レベルは、DSPでマイクロプログラムにより実現されるアルゴリズムの中の乗算器で制御される。この構成により、ミキサ&DSP127における各エフェクト処理に割り当てて使用する複数LFO波形を発生する。
【0034】
なお、上述したように各エフェクトに割り当てて使用する複数LFOとともに、DSPには複数EGが備えられている。該複数LFOと該複数EGは、DSPで実行される個々のエフェクトで必要とされる数ずつ各エフェクトに割り当てて使用され、そのため、それぞれ1つずつ個別にトリガーをかけることができるようになっている。例えば、3つのLFOを使用するコーラス効果の場合、その3つのLFOは、相互に位相を120度ずつずらせて動作させる必要がある。これは、3LFOチャンネル分のLFOについて、オフセット付加部353で120度ずつ異なる初期位相を設定し、同時にリセットをかけることにより実現できる。トリガーを使えば、DSPでエフェクトの代りに(波形発生部と同じような)波形発生処理を実行させることも可能である。
【0035】
次に、テンポ同期LFOに関係するレジスタやフラグについて説明する。トリガーカウンタ301と共通カウンタ302については図3で説明したので、それ以外のレジスタやフラグ(音源制御レジスタ121)について次の(1)〜(14)で説明する。
【0036】
(1)トリガーカウンタアップ値レジスタ:トリガーカウンタ301にF8信号(テンポ同期トリガー)ごとに加算する値を保持するレジスタである。ここに書き込んだ値により何回のトリガーで一周期まわるかが決まる。ここでは、トリガーカウンタ301は、その整数部17ビットで2の17乗−1=131071まで、小数部込みで約2の17乗=約131072までカウントアップできるレジスタであるので、この最大値をベース波形の1周期内のF8信号の数で割ることにより、トリガーカウンタアップ値が求められる。CPU101は、そのように算出した値を音源120に送って、トリガーカウンタアップ値レジスタに保持させる。なお、トリガーカウンタアップ値の算出で割り切れない場合は、その商を切り上げるものとする。切り上げることにより、ベース波形の1周期内の最後のF8信号ではトリガーカウンタ301が必ずオーバフローするようになり、この時点でオーバーフローしたあふれ分は切り捨てられ、トリガーカウンタ301は0に初期化される。したがって、割り切れない場合の誤差が蓄積されることはない。
【0037】
CPU101によるトリガーカウンタアップ値の算出例を説明する。CPU101は、出力させたいLFO波形に応じてベース波形の周期を決める。例えば、テンポを1分間に4分音符120個のテンポとし、F8信号を1小節で96個発生させるものとし、ベース波形の周期を1小節(4部音符が4つ分とする)単位とする場合を考える。この場合、1小節内のF8信号の個数は96個であるから、ここからF8信号ごとにトリガーカウンタ301に加算されるトリガーカウンタアップ値が算出できる。すなわち、トリガーカウンタ301の最大値が2の17乗=131072であるから、131072/96≒1365.3333とし、この値を切り上げて、トリガーカウンタアップ値とする。例えば、トリガーカウンタアップ値が指数部4ビットと仮数部12ビットであれば、切り上げた値は1365.5となる。なお、実際には、トリガーカウンタ301やトリガーカウンタアップ値レジスタは浮動小数点の2進数で値を格納するので、切り上げも2進数での切り上げである。このように、トリガーカウンタアップ値は、ベース波形の1周期におけるF8信号の数に基づいて、RU(最大値/F8信号の回数)の式で算出される。ここで、RU()は切り上げを示す。
【0038】
(2)共通カウンタ補間レートレジスタ:共通カウンタ302は、1DACサイクルごとに、トリガーカウンタ301の値を目標値として直線的に補間する補間器である。この補間器に対して補間速度を指定するのが、共通カウンタ補間レートである。共通カウンタ補間レートレジスタは、この共通カウンタ補間レートを保持するレジスタである。共通カウンタ補間レートは、上記トリガーカウンタアップ値によって決定したステップ幅(分割数)と、そのステップ幅をどれだけの時間、つまりどれだけのテンポに合わせて補間するかを考慮して指定する必要がある。
【0039】
上記(1)のトリガーカウンタアップ値の算出例のケースで、CPU101が共通カウンタ補間レートを算出する例を説明する。まず、上記のケースでは、4分音符1つ分は、60sec/120≒0.5secの時間長さになる。4分音符1つはF8信号24個分の時間間隔であるから、F8信号1つ分の時間間隔(F8信号から次のF8信号までの時間間隔)は、0.5sec/24≒0.0208secである。ベース波形の周期を1小節(F8信号で96個分の時間間隔)としたいのであるから、0.0208sec×96≒2secがベース波形の周期である。音源内のサンプリング周波数を44100Hzとすると、その周期は22μsecであるから、上記ベース波形の1周期の時間内では、2sec/22μsec≒88200回だけ共通カウンタ302への累算が行なわれることになる。共通カウンタ302の最大値は2の17乗=131072であるから、131072/88200≒1.4861であり、共通カウンタ補間レートが指数部4ビットと仮数部12ビットで構成されるとすると、2進で切り上げた約1.4863がその値となる。このように、共通カウンタレートは、ベース波形の1周期のサンプル回数に基づいて、RU(最大値/サンプル回数)の式で算出される。
【0040】
(3)トリガーアクションフラグ:トリガーアクションは、CPU101からのテンポ同期のためのイベントを与えるトリガー(テンポ同期トリガー)である。CPU101からこのトリガーアクションフラグに1を書き込むと、テンポ同期トリガーがLFO122に供給されたことになる。このトリガーにより、上記トリガーカウンタ301にトリガーカウンタアップ値が加算され、その値が新たな目標値となって、該目標値に向かって共通カウンタ302による補間が始まる。
【0041】
(4)トリガーカウンタリセットフラグ:テンポ同期トリガーにより加算されるトリガーカウンタ301をリセットするフラグである。テンポ同期などの初期化時に使用する。1を書き込むとそのタイミングでリセット状態となり、0を書きこむ必要はない。
【0042】
(5)共通カウンタリセットフラグ:直線補間器である共通カウンタ302をリセットするフラグである。テンポ同期などの初期化時に使用する。1を書き込むとそのタイミングでリセット状態となり、その後すぐに、設定されている共通カウンタ補間レートで共通カウンタ302のカウントアップが開始する。0を書きこむ必要はない。
【0043】
(6)フリーランモードフラグ:通常、共通カウンタ302は、トリガーカウンタ301の値を目標値として動作するが、このフリーランモードフラグを1に設定すると、共通カウンタ302は、目標値を無視して常に与えられたレートで補間し続ける。これにより、テンポ同期のイベントがなくなっても、テンポ同期のときとほぼ同じ速度で共通カウンタ302が動作する。一方、共通カウンタ302が通常のテンポ同期動作を行なうときは、フリーランモードフラグが0に設定される。フリーランモードフラグを0にすると、共通カウンタ302による補間処理は停止し、停止した時点の値を出力し続ける。
【0044】
(7)チャンネル別テンポ同期フラグ:各チャンネル別の低周波発振部303に対して、チャンネル独立の周波数設定で動作するか(従来形)、テンポ同期の共通カウンタ302に同期して動作するかを切替えるフラグである。このフラグを1に設定すると共通カウンタ302に同期し(すなわち図3で、N倍処理部331→リセット制御部332→オフセット付加部333の流れで生成される波形を使う)、0に設定するとチャンネル独立の周波数設定のLFO(すなわち図3で、非同期カウンタ342→オフセット付加部333の流れで生成される波形を使う)になる。
【0045】
(8)チャンネル別N倍設定レジスタ:テンポ同期LFOとして使用するとき、各チャンネル別にN倍処理部331の乗数Nの値を設定するレジスタである。このレジスタは、テンポ非同期LFOとして使用するときのチャンネル別の周波数レジスタと共用している。
【0046】
(9)キーオンリセットフラグ:キーオン(ノートオンと同義)と同時にLFO波形を初期位相に設定するかどうかを決めるフラグである。0のときは「無効」、すなわちキーオンでリセットしない。1のときは「有効」、すなわちキーオンでリセットする。
【0047】
(10)オフセット値レジスタ:オフセット付加部353でLFO波形に加算するオフセット値を保持するレジスタである。
【0048】
(11)波形選択レジスタ:形状変形部334で変換出力する波形形状の形状選択情報を保持するレジスタである。選択できる波形については、後に詳しく説明する。
【0049】
(12)波形補間レートレジスタ:直線補間部335において補間を行なうときの補間レートを保持するレジスタである。
【0050】
(13)位相反転指定レジスタ:位相反転部336,338,340において、位相の反転(正相/逆相)を選択するための選択情報を保持するレジスタである。
【0051】
(14)デプス指定レジスタ:デプス制御部337,339,341における変調の深さを設定するレジスタである。
【0052】
なお、上記のレジスタやフラグのうち、(1)〜(6)はシステム内でそれぞれ1つずつ設けられているものである。(7)〜(14)はチャンネルごとに(チャンネルとは、各発音チャンネルの低周波発振部303では発音チャンネル、DSP用各低周波発振部305では各LFOチャンネルである)設けられているものである。ただし、DSP用各低周波発振部305は、(12)〜(14)のレジスタは持っていない。
【0053】
図4は、トリガーカウンタ301と共通カウンタ302によるカウントアップの様子を示す。図4(a)は、F8信号(テンポ同期トリガー)が等間隔で供給される場合を示す。ここで、CPU101は、F8信号の発生に応じて音源120のLFO122に対してトリガーアクションが与えるので、F8信号の発生するタイミングはトリガーアクションのタイミングと等価である。音源120内ではトリガーアクションのタイミングとして認識しているが、図4では説明の簡単化のためF8信号でそのタイミングを示すものとする。ここでは、説明の簡単化のため、ベース波形の1周期あたりのF8信号の発生回数を4回としているが、通常のF8信号の発生回数はこれよりかなり多い。
【0054】
F8信号が供給されるタイミングで階段状に変化しているグラフ401は、トリガーカウンタ301の値を示す。トリガーカウンタ301の値は、ベース波形の1周期における最初のF8信号のタイミングでトリガーカウンタアップ値となり、その後、F8信号が来るごとにその値に対してトリガーカウントアップ値が加算される。共通カウンタ302は、トリガーカウンタ301の値を目標値として細かく補間されてカウントアップされる。402は、目標値に向かって理想的にカウントアップされていく共通カウンタ302の値を示す。403は、次のF8信号のタイミングで共通カウンタ302の累算値が未だトリガーカウンタ301の目標値に到達していない場合、共通カウンタ302の累算値を、目標値であるトリガーカウンタ301の値に強制的に設定しているグラフを示す。404は、次のF8信号のタイミングに至る前に共通カウンタ302の累算値がトリガーカウンタ301の目標値に到達し、そこからは共通カウンタ302の累算を停止して、その目標値を出力し続けているグラフを示す。
【0055】
410はカウンタの最大値である2の17乗=131072のレベルを示す。ベース波形の1周期における最後のF8信号(この図では4回目)のタイミングにおいてトリガーカウンタ301はオーバーフローし、該オーバーフローに応じて、トリガーカウンタ301の内部値は0にリセットされる一方、共通カウンタに対して最大値(約131072)を出力する。なお、この図の例でトリガーカウンタアップ値の計算は割り切れている(131072/4=32768)が、その場合であっても、最後のF8信号に応じた加算によりその加算結果は整数部の17ビットを超えてオーバーフローが発生する。共通カウンタ302の値は、最大値131072に至った後は、その最大値を続けて出力する。
【0056】
図4(b)は、F8信号が不規則な場合を示す。自動演奏のテンポは任意に変動できるものであるので、F8信号も不規則に発生される場合がある。F8信号が不規則な場合でもカウントアップの動作は同様であるので、図4(a)と同じ番号を付した。図4(b)では、F8信号411のタイミングでトリガーカウンタ301が0にリセットされ、そこから共通カウンタ302は共通カウンタ補間レートの累算を継続しているが、共通カウンタ302の値が最大値に至る前に次のF8信号412が来ており、ここで共通カウンタ302は0にリセットされている。
【0057】
図5は、トリガーカウンタ301と共通カウンタ302を用いたカウントアップの各種の例を示す。上述したように、CPU101は、ベース波形の周期を決め、その周期内のF8信号の数を求め、F8信号ごとのトリガーカウンタ301への加算量を算出し、共通カウンタ補間レートを算出する。この場合、CPU101側からLFO122に対して等間隔でF8信号を送る必要がある。図5(a)は、ベース波形の1周期を細かく等分したタイミングでF8信号を送っている例である。複数の横線501は、トリガーカウンタ301が階段状にカウントアップされる各レベルを示す。F8信号は502に示すように等間隔でLFO122に供給され、各F8信号のタイミングで、カウンタ301が階段状にカウントアップされている。503は共通カウンタ302のグラフである。このように、細かい周期でF8信号を送っている場合には、ベース波形の1周期の途中に起こる様々なテンポの変動に対して精密に追従していくことができる。
【0058】
図5(b)は、F8信号を間引く例を示す。ベース波形の各周期の途中であまりテンポが変動しないことが判っている場合には、このように途中のF8信号を間引くことができる。CPU101は、ベース波形の周期を決め、その周期内でF8信号を何個にするかを決定する。この際、本来のF8信号の数から幾つかのF8信号を間引く。間引いたあとに残ったF8信号に基づいて、F8信号ごとの加算量であるトリガーカウンタアップ値を算出する。この場合、ベース波形の1周期ごとにF8信号は1回しか発生しないので、トリガーカウンタアップ値は最初の加算でオーバーフローを発生するような特殊な最大値にする。また、図5(a)の例からF8信号を間引いただけであり、ベース波形の傾きは同じなので共通カウンタ補間レートも図5(a)の場合と同じ値でよい。この例では、CPU101は、ベース波形の1周期ごとに1回だけLFO122にトリガーアクションを与えればよく、CPU101にかかる負担が少ない。
【0059】
図5(c)は、ベース波形の1周期の途中で共通カウンタ補間レートを変更する例を示す。CPU101は、ベース波形の周期を決め、その周期内でF8信号を何個にするかを決定する。そして、F8信号ごとの加算量であるトリガーカウンタアップ値を算出する。この図の例では、3等分して加算量を求めている。一方、共通カウンタ補間レートは、ベース波形の1周期の前半ではトリガーカウンタアップ値の2倍をタイミング521〜522までのサンプル回数で割った商として、後半ではトリガーカウンタアップ値をタイミング522〜523までのサンプル回数で割った商として算出する。図のように、CPU101は、ベース波形の各周期において不等間隔でトリガーアクションを与える。また、CPU101は、ベース波形の1周期の先頭の521、523のタイミングでは前記前半の共通カウンタ補間レートを与え、真中の522のタイミングでは前記後半の共通カウンタ補間レートを与える。
【0060】
図5(d)は、図5(c)において、さらにベース波形の1周期の途中でトリガーカウンタアップ値を変更する代わりに、F8信号を間引けるようにした例である。この場合も、ベース波形の傾きは図5(c)と同じなので、共通カウンタ補間レートは図5(c)の場合と同じでよい。一方、トリガーカウンタアップ値は、ベース波形の1周期の前半が最大値の3分の2、後半が3分の1として算出される。CPU101は、ベース波形の1周期の先頭の531、533のタイミングでは前記前半のベースカウンタアップ値を与え、真中の522のタイミングでは前記後半のベースカウンタアップ値を与える。また、ベース波形の1周期の先頭の534、536のタイミングでは前記前半の共通カウンタ補間レートを与え、真中の535のタイミングでは前記後半の共通カウンタ補間レートを与える。このように、1周期の途中で共通カウンタ補間レートを変更するベース波形を生成する場合、CPU101は、その変更するタイミングについて、トリガーアクション、ベースカウンタアップ値、共通カウンタ補間レートの制御を行なうだけでよい。
【0061】
図6は、F8信号が途絶えた場合の処理方法を示す。曲の終わりなどではテンポカウンタであるF8信号が途絶える場合がある。この場合、上述のフリーランモードフラグにより、図6(a)か図6(b)の何れかの処理方法を採ることができる。図6(a)は、F8信号が途絶えた後もフリーランモードフラグを0のまま放置した場合である。この場合、F8信号が途絶えたタイミングでトリガーカウンタ301の値が増加しなくなるのに応じ、補間カウンタの値もそれと同じ値から変化しなくなる。図6(b)は、CPU101がF8が途絶えたことを検出した時点でフリーランモードフラグに1を設定した場合である。この場合、共通カウンタ302は、目標値を無視して常に与えられた共通カウンタ補間レートで補間し続ける。これにより、曲が終わった後に出力されているような楽音に対しても、引き続きLFO波形を適用できる。
【0062】
図7は、上述のN倍処理部331,351による処理例を示す。701は、共通カウンタ302からN倍処理部331,351に入力するベース波形を示す。N倍処理部331,351での乗数Nが9であったとすると、N倍処理部331,351の出力は波形702のようになる。この波形703の周波数は、ベース波形701の周波数の9倍になっている。
【0063】
図8は、上述のN倍処理部331,351の乗数Nの一覧を示す。表の最上位行の「4分音符基準個数」は、ベース波形の1周期が4分音符の何個分になるかの場合分けを示す。4分音符4個で1小節とするので、その下の行の「小節」に示すように、小節数でベース波形の1周期の長さを表せる。4分音符1個でF8信号が24個分であるから、それぞれの場合のベース波形の1周期内のF8信号数が求められる。「F8信号数」の行は、その値を示す。
【0064】
左側の「4分×32(8小節)」や「4分×16(4小節)」などの記載は、各発音チャンネルないし各LFOチャンネルにおいて発生させたいLFO波形の周期を示す。例えば、「4分音符基準個数」が3個の場合、ベース波形の1周期が4分音符3個分になり、このベース波形に対し「全音符3連」の周期の波形を発生させたい場合は、N=1.125と設定すればよいことが分かる。同様に、この一覧表に基づいて、ベース波形の周期と発生させたい波形の周期から乗数Nを求めることができる。なお、図8に記載した以外であっても、任意の長さのベース波形の周期と任意の長さの発生させたい波形の周期から乗数Nを求めることができる。
【0065】
図9は、形状変形部334,354で各チャンネル毎に選択可能な波形形状の例を示す。形状変形部334,354は、入力したベース波形に基づいて、三角波901、矩形波902、鋸歯状波903、サイン波904、およびランダム波905などを生成出力することができる。ここに挙げた波形は一例であり、他の任意の波形を選択できるようにしてもよい。
【0066】
図10は、直線補間部335による直線補間の例を示す。直線補間部335は、入力した波形の傾きが設定された補間レート以下になるよう制限する補間を行なう。CPU101は、この補間レートを、LFO122の当該発音チャンネルないしLFOチャンネルにおいて選択された波形形状や設定されたN倍の値に応じて決定し、直線補間部335に与える。例えば、入力波形が1001に示すような鋸歯状波の場合、補間レートの値を小さくすると波形1002のような波形が出力される。この補間により、LFO波形の急激に変化する部分でノイズが発生するのを防止できる。
【0067】
次に、フローチャートを参照してCPU101が実行する処理手順を説明する。
【0068】
図11は、CPU101が実行するメイン処理の流れを示す。ステップ1101で初期設定を行ない、ステップ1102で起動要因(イベント)の発生をチェックする。ステップ1103で何らかの起動要因があれば、ステップ1104に進む。起動要因がなければ、ステップ1102に戻り、起動要因チェックを継続する。ステップ1104では、何の要因かを判別し、その要因別にステップ1105〜1109の何れかに分岐する。パネル操作イベントがあったときは、ステップ1105に進み、パネル処理を行なった後、ステップ1102に戻る。MIDIイベントがあったときは、ステップ1106に進み、MIDIイベント処理を行なった後、ステップ1102に戻る。テンポ割込イベントがあったときは、ステップ1107に進み、自動演奏のテンポ割込処理を行なった後、ステップ1102に戻る。その他のイベントのときは、ステップ1108に進み、そのイベントに応じた処理を行なった後、ステップ1102に戻る。電源スイッチのオフイベントであったときは、ステップ1109で終了処理を行なった後、本処理を終了する。
【0069】
図12は、ステップ1106のMIDIイベント処理のうち、MIDIインターフェース107を介して他のMIDI機器からのF8信号を受信したときの動作を示す。これは、この電子楽器がスレーブ動作する場合である。すなわち、他のMIDI機器が出力する自動演奏データに基づいて、この電子楽器で自動演奏を行なう場合であり、テンポクロックであるF8信号は、他のMIDI機器からこの電子楽器に供給される。
【0070】
ステップ1201では、過去のF8信号の時間間隔に基づき現在のテンポ値を推定し変数GTに格納する。ステップ1202では、現在のテンポ値GTに基づき、共通カウンタ補間レートを算出して音源120のLFO122に供給する。共通カウンタ補間レートの算出方法についてはすでに説明した。次に、ステップ1203で、音源120のLFO122にテンポ同期トリガーを供給する。これは、トリガーアクションフラグに1を書き込むことで行なう。
【0071】
図13は、ステップ1106のMIDIイベント処理のうち、MIDIインターフェース107から自動演奏のノートオンを受信したときの動作を示す。ステップ1301で、受信したノートオンのパート番号を変数PTに、ノート番号を変数NNに、ベロシティを変数VELに、それぞれ格納する。ステップ1302では、発音チャンネルの割り当て処理を行なう。ステップ1303では、パートPTで選択されている現在の音色とノートオンのノート番号およびベロシティに従い、音源レジスタ121の割り当てたチャンネルに各種パラメータを設定する。すなわち、波形選択情報、Fナンバ、各種EGパラメータ、LFOパラメータ、各種センドレベル等が設定される。ここで、該LFOパラメータには、テンポ同期フラグ、倍数Nないし周波数、補間レート、ピッチ変調度PMD、音色変調度CMD、振幅変調度AMD等が含まれる。パートPTにおいてLFO波形をテンポ同期させるよう設定された音色が選択されている場合には、テンポ同期フラグが立てられる。ステップ1304で、当該チャンネルにノートオン信号(発音開始トリガー)を供給する。ノートオン信号が供給された発音チャンネルでは、設定されたパラメータに応じた楽音信号の形成処理を開始される。すなわち、アドレス発生部123と補間部124による波形メモリからの波形データの読み出しが開始され、DCF125では読み出された波形データに対して音色変化が与えられ、更に、EG付与部126では立ち上がりから立ち下がりまでの音量変化が付与される。LFO122の発生するLFO波形は、アドレス発生部123、DCF125、EG付与部126に供給されており、当該チャンネルで発生する楽音波形の各種特性を制御する。
【0072】
図14は、ステップ1106のMIDIイベント処理のうち、MIDIインターフェース107からバリエーションタイプを受信したときの動作を示す。バリエーションタイプとは、楽音に付与するエフェクトの種類を指定する情報である。ステップ1401で、受信したバリエーションタイプを変数VTに格納する。ステップ1402では、MP(マイクロプログラム)番号、MP記憶領域、LFO、およびEGなどを割り当てる。DSP127は、複数のマイクロプログラム記憶領域を備えており、それらの領域にMP番号を割り当ててマイクロプログラムを設定し、実行させることにより、任意のエフェクト処理を組み合わせて実行できる。ステップ1402のMP番号とMP記憶領域の割り当ては、バリエーションタイプで指定されたエフェクトのマイクロプログラムをロードする領域を番号を割り当てるものである。LFOの割り当ては、指定されたエフェクトに必要な数のLFOを、図3の305に示した複数のLFOチャンネルに相当する低周波発振部の中から割り当てるものである。また、EG(エンベロープジェネレータ)の割り当ては、指定されたエフェクトに必要な数のEGを、DSP127が備えている複数のEGの中から割り当てるものである。
【0073】
次に、ステップ1403で、割り当てたMP番号のエフェクトをミュートする。これは、そのMP番号のエフェクト処理が実行中であった場合に、マイクロプログラムの入れ替えでノイズが発生しないようにミュートするものである。ステップ1404では、割り当てたLFOチャンネルに対し、テンポ同期フラグ、倍数N(テンポ非同期で用いる場合は周波数)、LPF係数、キーオンリセットフラグなどを設定する。ステップ1406でEGの設定を行ない、ステップ1407で各種の係数を設定する。ステップ1408では、その他の必要な処理(遅延メモリの処理など)を行なう。ステップ1409では、ステップ1403でかけたミュートを解除し、マイクロプログラムの実行を開始するようにトリガーをかけて、処理終了する。
【0074】
図15(a)は、図11のステップ1107の自動演奏のテンポ割込処理の手順を示す。自動演奏中は、現在のテンポに応じた周期でタイマ割込が発生し、そのときこのテンポ割込処理が実行される。これは、この電子楽器がマスタ動作する場合である。すなわち、この電子楽器が自動演奏データを読み込んで、自動演奏する場合であり、F8信号はこの電子楽器で発生して他のMIDI機器に供給する。テンポ割り込みの時間間隔は、F8信号と同じ4分音符あたり24回の割り込みが発生するように設定しても良いし、それより細かい分解能で、例えば、4分音符あたり96回の割り込みが発生するように設定しても良い。
【0075】
まずステップ1501で、テンポカウンタをカウントアップする。テンポカウンタは、CPU101側で自動演奏のテンポを規定するカウンタである。次に、ステップ1502で、音源120のLFO122にテンポ同期トリガーを供給する。ステップ1503では、F8信号をMIDI出力端子に出力する。なお、テンポ割込がF8信号より細かい分解能で発生する場合は、ステップ1502では何回かに1回テンポ同期トリガーを供給すればよいし、ステップ1503ではやはり何回かに1回F8信号を出力すればよい。例えば、4分音符あたり96回の割り込みが発生するように設定された場合には、4回の割り込み毎に1回F8信号を出力する。ステップ1504では、当該自動演奏データのイベントタイミングに至ったかを判定する。イベントタイミングに至ったときは、ステップ1505で当該イベントを再生し、ステップ1506で次イベントまでのデュレーションを設定して、処理終了する。ステップ1504でイベントタイミングでないときは、そのまま処理終了する。
【0076】
ステップ1505のイベント再生処理では、例えば、ノートオンイベントであれば、そのノートオン処理を行なう。ステップ1505でノートオンの再生まで行なってしまってもよいし、ステップ1505ではノートオンをバッファに積むだけとし、別処理ルーチンでそのバッファからノートオンを取り出して処理しても良い。
【0077】
ステップ1505のイベントがテンポチェンジであったときは、図15(b)の処理が行なわれる。まずステップ1521で、指定されたテンポ値を変数TMPに格納する。ステップ1522では、そのテンポ値TMPに応じてテンポタイマの速度を設定変更する。次にステップ1523で、音源120のLFO122に、テンポ値TMPに応じた共通カウンタ補間レートを供給し、処理を終了する。
【0078】
なお、上記実施形態において、テンポクロックは、必ずしもMIDIの「F8信号」(分解能が1拍の1/24)でなくてもよい。分解能は、例えば、1拍の1/2、1/96などでもよい。共通カウンタ302に加算する共通カウンタ補間レートの値は、テンポクロックの直前の時間間隔に基づいて自動決定してもよい。また、上記実施形態では、共通カウンタで各サンプリング周期ごとに補間演算(累算)を行なっていたが、サンプリング周期ごとに行なわなくてもよい。例えば、2サンプリング周期に1回とか、8サンプリング周期に1回、補間演算を行なうようにしてもよい。また、「F8信号」の受信間隔に基づくテンポの推定をCPU101で行なわず、音源120内の演算回路で行ない、音源120内で共通カウンタ補間レートを算出するようにしてもよい。テンポの推定は、直前に受信した2つの「F8信号」の時間間隔のみから(直線的に)推定してもよいし、直前の3つ以上の「F8信号」の複数時間間隔からラグランジェ補間などを使用して(曲線的に)推定してもよい。
【0079】
なお、F8信号は、CPU101がタイマ104を用いて生成するようにしても良いし、外部で生成されてMIDIインターフェース107やネットワークインターフェース108から入力するようになっていてもよい。
【0080】
本実施形態では、F8信号をテンポ信号としていたが、それ以外のリズムを制御するあらゆる種類のタイミング信号を同期のためのテンポ信号としてよい。
【0081】
また本実施形態では、自動演奏ないし自動伴奏との同期をとるためにテンポを示すF8信号を使用していたが、本発明をこのようなF8信号に限定する必要はない。この信号は、自動演奏ないし自動伴奏のテンポとベース波形が同期するように補正を掛けるタイミングを示す信号であれば何でも良く、F8信号以外のタイプのテンポ信号であっても良いし、自動演奏に同期して定期的にないし不定期的に発生する同期制御信号であってもよい。
【0082】
リセット制御部332では、ノートオンに応じて0にリセットされるようになっていたが、0以外の所定値にリセットされるようにしてもよい。
【0083】
本実施形態では、ベース波形は整数部17ビットと小数部10ビットで構成されていたが、このビット数に限られるものではなく、必要に応じて増減してよい。
【0084】
図6では、自動演奏の終了に伴いF8信号が途切れた場合を示したが、エラーによりF8信号が取りこぼされる場合も考えられる。その場合は、CPU101がダミーのF8信号を生成して、LFO波形が途切れないようにしてもよい。
【0085】
【発明の効果】
以上説明したように、この発明によれば、テンポに同期した複数拍で一巡する所定ビット幅の基本波形を発生し、複数チャンネルの各チャンネルごとの乗数を前記基本波形に乗じ、その乗算結果として前記所定ビット幅であふれを生じさせた値を出力し、その結果に基づいて各チャンネルごとの変調波形を発生するようにしているので、LFOと自動演奏手段とが独立して設けられている場合でも、自動演奏のテンポに同期した変調波形を発生することができる。
【図面の簡単な説明】
【図1】この発明の変調波形発生装置を適用した電子楽器のブロック構成図
【図2】LFOで発生するLFO波形の例を示す図
【図3】LFOの詳細な構成を示す図
【図4】トリガーカウンタと共通カウンタによるカウントアップの様子を示す図
【図5】トリガーカウンタと共通カウンタを用いたカウントアップの各種の例を示す図
【図6】F8信号が途絶えた場合の処理方法を示す図
【図7】N倍処理部による処理例を示す図
【図8】N倍処理部の乗数Nの一覧を示す図
【図9】形状変形部で選択可能な波形形状の例を示す図
【図10】直線補間部による直線補間の例を示す図
【図11】メイン処理のフローチャート図
【図12】MIDIインターフェース107からF8信号を受信したときのフローチャート図
【図13】MIDIインターフェース107から自動演奏のノートオンを受信したときのフローチャート図
【図14】MIDIインターフェース107からバリエーションタイプを受信したときのフローチャート図
【図15】自動演奏のテンポ割込処理のフローチャート図
【符号の説明】
101…中央処理装置(CPU)、102…リードオンリメモリ(ROM)、103…ランダムアクセスメモリ(RAM)、104…タイマ、105…ドライブ装置、107…MIDIインターフェース、108…ネットワークインターフェース、109…パネルスイッチ、110…パネル表示器、120音源、128…波形メモリ、130…ディジタルアナログ変換器(DAC)、131…サウンドシステム。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a modulation waveform generator applied to an electronic musical instrument or the like.
[0002]
[Prior art]
A special effect is often applied to musical sounds generated by an electronic musical instrument by changing the amplitude, frequency, pan (the volume balance between left and right in a stereo sound), or timbre. In order to give such a special effect, a modulation wave (low frequency) waveform generator, so-called LFO is provided. The period of the special effect for the musical sound is determined by the period of the modulation waveform output from the LFO.
[0003]
On the other hand, many electronic musical instruments in recent years have functions of automatic performance and automatic accompaniment. In automatic performance and automatic accompaniment, the tempo for automatic performance and accompaniment is specified. For example, in automatic performance data expressed by MIDI (Musical Instruments Digital Interface) data, data specifying a tempo is set at the beginning or middle of a song, and the tempo is set at the beginning or middle of the song.
[0004]
If the timing of the tempo on the side of such automatic performance / accompaniment and the timing of the special effect do not match, the musical sound becomes unnatural. Therefore, a technique for synchronizing the LFO that defines the cycle of the special effect and the tempo of automatic performance / accompaniment has been proposed. For example, in Japanese Patent No. 2621669, a first musical sound signal is generated in response to a musical sound signal generation instruction by the instruction means, and a second musical sound signal is automatically generated according to the tempo set by the tempo setting means, Furthermore, an electronic musical instrument is disclosed in which a modulation signal having a period corresponding to the tempo set by the tempo setting means is generated and the first musical tone signal is modulated based on the modulation signal. According to this, the tempo of the second musical sound signal (automatic accompaniment) follows the tempo set by the tempo setting means and further modulates the first musical sound signal with the modulation signal having a period corresponding to the tempo. The period of the signal can correspond to the tempo of automatic accompaniment, and the modulation of the first musical sound signal can be synchronized with the automatic accompaniment. In the following, an LFO that generates a modulation signal having a period synchronized with the tempo of automatic performance or automatic accompaniment is referred to as “tempo synchronization LFO”.
[0005]
[Problems to be solved by the invention]
The one described in the above-mentioned Japanese Patent No. 2621669 generates a modulation signal synchronized with a tempo given as a numerical value, and is a tempo clock that actually defines the tempo (for example, a tempo input as MIDI data). It does not generate a modulation signal synchronized with the clock). In particular, when the time interval of the tempo clock that defines the tempo of automatic performance (hereinafter simply referred to as “automatic performance” includes automatic accompaniment) fluctuates, in the conventional tempo synchronization LFO, the tempo clock whose cycle varies It is difficult to synchronize. Further, in the conventional tempo synchronization LFO, even if a tempo value as a numerical value is supplied together with the tempo clock from the automatic performance means, the tempo change timings cannot be completely matched with each other. Not taken.
[0006]
Further, when the LFO that generates a modulation waveform according to the designated tempo (the LFO in the sound source) is an oscillator independent of the automatic performance means (generally a CPU), even if the tempo value is fixed. There is a problem that the tempo clock and the modulation waveform are gradually shifted with time. Although it is conceivable that the CPU is in charge of tempo-synchronized LFO waveform generation processing, the CPU performs LFO processing for the number of sound generation channels for each sampling period, which is a heavy burden.
[0007]
In view of the above-described problems in the prior art, the present invention provides a modulation waveform generator capable of generating a modulation waveform synchronized with the tempo of automatic performance even when the LFO and the automatic performance means are provided independently. The purpose is to provide.
[0008]
[Means for Solving the Problems]
In order to achieve this object, the invention according to
[0009]
The invention according to claim 2 A modulation waveform generator for generating a plurality of modulation waveforms used in a sound source having a plurality of channels for generating musical sounds, and generating a basic waveform having a predetermined number of bits that circulates in a plurality of beats synchronized with the tempo Means, a storage means for storing a multiplier for each channel of the plurality of channels, a multiplier for each channel multiplied by the basic waveform, and a portion of a predetermined number of bits in the multiplication result is assigned to each channel. Multiplication means for outputting as a multiplication result waveform for each channel, and modulation waveform generation means for generating a modulation waveform for each channel based on the multiplication result waveform for each channel output by the multiplication means; It is provided with.
[0010]
The invention according to
[0011]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
[0012]
FIG. 1 shows a block configuration of an electronic musical instrument to which a modulation waveform generator of the present invention is applied. The electronic musical instrument includes a central processing unit (CPU) 101, a read only memory (ROM) 102, a random access memory (RAM) 103, a
[0013]
The
[0014]
The
[0015]
The sound
[0016]
The LFO waveform generated by the
[0017]
FIG. 2 shows an example of an LFO waveform generated in the
[0018]
In order to generate the
[0019]
FIG. 3 shows a detailed configuration of the
[0020]
Each sound channel low-
[0021]
The
[0022]
The
[0023]
The
[0024]
The base waveform (integer part 17 bits + decimal part 10 bits) from the
[0025]
The output of the N-
[0026]
The output of the
[0027]
The output of the offset adding
[0028]
The output of the
[0029]
The output of the
[0030]
The outputs of the
[0031]
The low
[0032]
Note that when the low-
[0033]
The internal configuration of each DSP low-
[0034]
As described above, the DSP is provided with a plurality of EGs together with a plurality of LFOs assigned to each effect. The plurality of LFOs and the plurality of EGs are assigned to each effect in the number required for each effect executed by the DSP, so that each one can be individually triggered. Yes. For example, in the case of a chorus effect using three LFOs, the three LFOs need to be operated with phases shifted from each other by 120 degrees. This can be realized by setting initial phases different by 120 degrees in the offset adding
[0035]
Next, registers and flags related to tempo synchronization LFO will be described. Since the
[0036]
(1) Trigger counter up value register: This register holds a value to be added to the
[0037]
A calculation example of the trigger counter up value by the
[0038]
(2) Common counter interpolation rate register: The
[0039]
An example in which the
[0040]
(3) Trigger action flag: The trigger action is a trigger (tempo synchronization trigger) that gives an event for tempo synchronization from the
[0041]
(4) Trigger counter reset flag: This is a flag for resetting the
[0042]
(5) Common counter reset flag: A flag for resetting the
[0043]
(6) Free-run mode flag: Normally, the
[0044]
(7) Channel-by-channel tempo synchronization flag: Whether to operate at a channel-independent frequency setting for each low-frequency oscillation unit 303 (conventional type) or whether to operate in synchronization with the tempo-synchronized
[0045]
(8) N-by-channel setting register: A register for setting a multiplier N value of the N-
[0046]
(9) Key-on reset flag: A flag that determines whether or not to set the LFO waveform to the initial phase simultaneously with key-on (synonymous with note-on). When 0, it is “invalid”, that is, it is not reset by key-on. When it is 1, “valid”, that is, reset by key-on.
[0047]
(10) Offset value register: This register holds an offset value to be added to the LFO waveform by the offset adding
[0048]
(11) Waveform selection register: a register that holds the shape selection information of the waveform shape converted and output by the
[0049]
(12) Waveform interpolation rate register: A register for holding an interpolation rate when the
[0050]
(13) Phase inversion designation register: A register that holds selection information for selecting phase inversion (normal phase / reverse phase) in the
[0051]
(14) Depth designation register: a register for setting the depth of modulation in the
[0052]
Of the above registers and flags, (1) to (6) are provided one by one in the system. (7) to (14) are provided for each channel (a channel is a sound generation channel in the low
[0053]
FIG. 4 shows how the
[0054]
A
[0055]
[0056]
FIG. 4B shows a case where the F8 signal is irregular. Since the tempo of automatic performance can be arbitrarily changed, the F8 signal may be generated irregularly. Even when the F8 signal is irregular, the count-up operation is the same, so the same numbers as in FIG. In FIG. 4B, the
[0057]
FIG. 5 shows various examples of count-up using the
[0058]
FIG. 5B shows an example of thinning out the F8 signal. If it is known that the tempo does not fluctuate much during each period of the base waveform, the intermediate F8 signal can be thinned out in this way. The
[0059]
FIG. 5C shows an example in which the common counter interpolation rate is changed during one cycle of the base waveform. The
[0060]
FIG. 5D is an example in which the F8 signal is thinned out instead of changing the trigger counter up value in the middle of one cycle of the base waveform in FIG. 5C. In this case as well, since the slope of the base waveform is the same as in FIG. 5C, the common counter interpolation rate may be the same as in FIG. On the other hand, the trigger counter up value is calculated with the first half of one period of the base waveform being 2/3 of the maximum value and the second half being 1/3. The
[0061]
FIG. 6 shows a processing method when the F8 signal is interrupted. At the end of a song, the F8 signal that is a tempo counter may be interrupted. In this case, either of the processing methods shown in FIGS. 6A and 6B can be adopted according to the above-described free-run mode flag. FIG. 6A shows a case where the free-run mode flag is left as 0 even after the F8 signal is interrupted. In this case, as the value of the
[0062]
FIG. 7 shows an example of processing performed by the N-
[0063]
FIG. 8 shows a list of multipliers N of the N-
[0064]
The descriptions such as “4 minutes × 32 (8 bars)” and “4 minutes × 16 (4 bars)” on the left side indicate the period of the LFO waveform to be generated in each sound generation channel or each LFO channel. For example, if there are three “quarter note reference numbers”, one period of the base waveform is three quarter notes, and you want to generate a waveform with a period of “all three notes” for this base waveform. It can be seen that N = 1.125 may be set. Similarly, based on this list, the multiplier N can be obtained from the period of the base waveform and the period of the waveform to be generated. Note that even if it is not described in FIG. 8, the multiplier N can be obtained from the period of the base waveform having an arbitrary length and the period of the waveform to be generated having an arbitrary length.
[0065]
FIG. 9 shows examples of waveform shapes that can be selected for each channel by the
[0066]
FIG. 10 shows an example of linear interpolation by the
[0067]
Next, a processing procedure executed by the
[0068]
FIG. 11 shows a flow of main processing executed by the
[0069]
FIG. 12 shows the operation when the F8 signal from another MIDI device is received via the
[0070]
In
[0071]
FIG. 13 shows the operation when the note-on of automatic performance is received from the
[0072]
FIG. 14 shows an operation when a variation type is received from the
[0073]
Next, in
[0074]
FIG. 15A shows the procedure of the automatic performance tempo interruption process in
[0075]
First, at
[0076]
In the event reproduction process in
[0077]
If the event in
[0078]
In the above embodiment, the tempo clock is not necessarily a MIDI “F8 signal” (resolution is 1/24 of one beat). The resolution may be, for example, 1/2 of a beat, 1/96, or the like. The value of the common counter interpolation rate to be added to the
[0079]
Note that the F8 signal may be generated by the
[0080]
In the present embodiment, the F8 signal is used as a tempo signal, but any type of timing signal that controls other rhythms may be used as a tempo signal for synchronization.
[0081]
In this embodiment, the F8 signal indicating the tempo is used to synchronize with the automatic performance or the automatic accompaniment. However, it is not necessary to limit the present invention to such an F8 signal. This signal may be any signal indicating the timing for performing correction so that the tempo of the automatic performance or automatic accompaniment is synchronized with the bass waveform, and may be a tempo signal of a type other than the F8 signal. It may be a synchronous control signal generated periodically or irregularly in synchronization.
[0082]
The
[0083]
In this embodiment, the base waveform is composed of an integer part of 17 bits and a decimal part of 10 bits, but is not limited to this number of bits, and may be increased or decreased as necessary.
[0084]
Although FIG. 6 shows the case where the F8 signal is interrupted with the end of the automatic performance, there may be a case where the F8 signal is missed due to an error. In that case, the
[0085]
【The invention's effect】
As described above, according to the present invention, a basic waveform having a predetermined bit width that circulates in a plurality of beats synchronized with the tempo is generated, the multiplier for each channel of a plurality of channels is multiplied by the basic waveform, and the multiplication result is obtained. When a value in which overflow has occurred with the predetermined bit width is output and a modulation waveform for each channel is generated based on the result, the LFO and the automatic performance means are provided independently. However, it can generate a modulated waveform that is synchronized with the tempo of automatic performance.
[Brief description of the drawings]
FIG. 1 is a block diagram of an electronic musical instrument to which a modulation waveform generating apparatus according to the present invention is applied.
FIG. 2 is a diagram showing an example of an LFO waveform generated in an LFO
FIG. 3 is a diagram showing a detailed configuration of an LFO
FIG. 4 is a diagram showing a state of count-up by a trigger counter and a common counter
FIG. 5 is a diagram showing various examples of count-up using a trigger counter and a common counter.
FIG. 6 is a diagram showing a processing method when an F8 signal is interrupted.
FIG. 7 is a diagram illustrating an example of processing performed by an N-times processing unit;
FIG. 8 is a diagram showing a list of multipliers N of an N-times processing unit
FIG. 9 is a diagram illustrating examples of waveform shapes that can be selected by the shape deforming unit;
FIG. 10 is a diagram illustrating an example of linear interpolation by a linear interpolation unit;
FIG. 11 is a flowchart of main processing.
FIG. 12 is a flowchart when an F8 signal is received from the
FIG. 13 is a flowchart when an automatic performance note-on is received from the
FIG. 14 is a flowchart when a variation type is received from the
FIG. 15 is a flowchart of tempo interruption processing for automatic performance.
[Explanation of symbols]
DESCRIPTION OF
Claims (3)
テンポに同期した複数拍で一巡する所定ビット数の基本波形を発生する基本波形発生手段と、
前記複数チャンネルの各チャンネルごとの乗数を記憶した記憶手段と、
前記基本波形にチャンネルごとの乗数を乗じ、その乗算結果のうちの、前記基本波形のビット数と同じビット数からなる部分を、各チャンネルごとの乗算結果波形として出力する乗算手段と、
前記乗算手段が出力する各チャンネルごとの乗算結果波形に基づいて、各チャンネルごとの変調波形を発生する変調波形発生手段と
を備えたことを特徴とする変調波形発生装置。A modulation waveform generator for generating a plurality of modulation waveforms for use in a sound source having a plurality of channels for generating musical sounds,
Basic waveform generating means for generating a basic waveform of a predetermined number of bits that makes a round with a plurality of beats synchronized with the tempo;
Storage means for storing a multiplier for each channel of the plurality of channels;
Multiplication means for multiplying the basic waveform by a multiplier for each channel, and outputting a multiplication result waveform for each channel as a multiplication result waveform for each channel, among the multiplication results , the portion having the same number of bits as the basic waveform .
A modulation waveform generating device, comprising: modulation waveform generation means for generating a modulation waveform for each channel based on a multiplication result waveform for each channel output from the multiplication means .
テンポに同期した複数拍で一巡する所定ビット数の基本波形を発生する基本波形発生手段と、
前記複数チャンネルの各チャンネルごとの乗数を記憶した記憶手段と、
前記基本波形にチャンネルごとの乗数を乗じ、その乗算結果のうちの、予め決められているビット数の部分を、各チャンネルごとの乗算結果波形として出力する乗算手段と、
前記乗算手段が出力する各チャンネルごとの乗算結果波形に基づいて、各チャンネルごとの変調波形を発生する変調波形発生手段と
を備えたことを特徴とする変調波形発生装置。A modulation waveform generator for generating a plurality of modulation waveforms for use in a sound source having a plurality of channels for generating musical sounds,
Basic waveform generating means for generating a basic waveform of a predetermined number of bits that makes a round with a plurality of beats synchronized with the tempo;
Storage means for storing a multiplier for each channel of the plurality of channels;
Multiplication means for multiplying the basic waveform by a multiplier for each channel and outputting a predetermined number of bits of the multiplication result as a multiplication result waveform for each channel ;
A modulation waveform generating device, comprising: modulation waveform generation means for generating a modulation waveform for each channel based on a multiplication result waveform for each channel output from the multiplication means .
前記基本波形発生手段は、
テンポに同期して発生されるテンポ信号を受信するごとに第1の所定値を累算する第1の累算手段と、
前記テンポ信号の周期より短い所定周期で第2の所定値を累算し、第2の累算値を出力する第2累算手段と、
前記テンポ信号を受信したとき、前記第2累算手段の累算している第2の累算値を第1の累算値に略一致させる一致制御手段と、
前記第2の累算値に基づいて基本波形を発生する手段と
を備えたことを特徴とする変調波形発生装置。 The modulation waveform generator according to claim 1 or 2,
The basic waveform generating means includes
First accumulation means for accumulating a first predetermined value every time a tempo signal generated in synchronization with the tempo is received;
Second accumulating means for accumulating a second predetermined value at a predetermined cycle shorter than the cycle of the tempo signal and outputting a second accumulated value;
Coincidence control means for substantially matching the second accumulated value accumulated by the second accumulation means with the first accumulated value when the tempo signal is received;
A modulation waveform generator comprising: means for generating a basic waveform based on the second accumulated value .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002079794A JP3844214B2 (en) | 2002-03-20 | 2002-03-20 | Modulation waveform generator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002079794A JP3844214B2 (en) | 2002-03-20 | 2002-03-20 | Modulation waveform generator |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003280650A JP2003280650A (en) | 2003-10-02 |
JP3844214B2 true JP3844214B2 (en) | 2006-11-08 |
Family
ID=29229087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002079794A Expired - Fee Related JP3844214B2 (en) | 2002-03-20 | 2002-03-20 | Modulation waveform generator |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3844214B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774707B2 (en) * | 2004-12-01 | 2010-08-10 | Creative Technology Ltd | Method and apparatus for enabling a user to amend an audio file |
JP4614131B2 (en) * | 2005-09-14 | 2011-01-19 | カシオ計算機株式会社 | Waveform generator and waveform generation program |
JP7427957B2 (en) * | 2019-12-20 | 2024-02-06 | ヤマハ株式会社 | Sound signal conversion device, musical instrument, sound signal conversion method, and sound signal conversion program |
-
2002
- 2002-03-20 JP JP2002079794A patent/JP3844214B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003280650A (en) | 2003-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100319481B1 (en) | Method and device for forming a tone waveform by combined use of different waveform sample forming resolutions | |
EP0702348B1 (en) | Electronic musical instrument and signal processor having a tonal effect imparting function | |
US6326537B1 (en) | Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency | |
JPS6353560B2 (en) | ||
US9711119B2 (en) | Audio processing device, method of audio processing, storage medium, and electronic musical instrument | |
US6091012A (en) | Tone effect imparting apparatus | |
JP3844214B2 (en) | Modulation waveform generator | |
JP3871119B2 (en) | Modulation waveform generator | |
JPH10307586A (en) | Musical sound generator and method | |
JP4179243B2 (en) | Waveform generator and program | |
US5959231A (en) | Electronic musical instrument and signal processor having a tonal effect imparting function | |
JP3552265B2 (en) | Sound source device and audio signal forming method | |
JP2970438B2 (en) | Waveform memory type tone generator | |
JP4152540B2 (en) | Electronic musical instrument sound control device | |
JPS6230639B2 (en) | ||
JP3245411B2 (en) | Electronic musical instrument | |
JP3082881B2 (en) | Electronic musical instrument | |
JP3705127B2 (en) | Musical sound waveform generator | |
JP3095323B2 (en) | Electronic musical instrument | |
JP2833485B2 (en) | Tone generator | |
JP3085801B2 (en) | Modulation signal generator | |
JP4179245B2 (en) | Waveform generator and program | |
JP3862839B2 (en) | Waveform compression / decompression device | |
JP2001215973A (en) | Method and device for creating musical sound control parameter, and recording medium | |
JP3687095B2 (en) | Coefficient interpolation method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040805 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060502 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060512 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060711 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060728 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060810 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100825 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100825 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110825 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120825 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130825 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |