JP2003280650A - 変調波形発生装置 - Google Patents

変調波形発生装置

Info

Publication number
JP2003280650A
JP2003280650A JP2002079794A JP2002079794A JP2003280650A JP 2003280650 A JP2003280650 A JP 2003280650A JP 2002079794 A JP2002079794 A JP 2002079794A JP 2002079794 A JP2002079794 A JP 2002079794A JP 2003280650 A JP2003280650 A JP 2003280650A
Authority
JP
Japan
Prior art keywords
waveform
tempo
counter
value
trigger
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.)
Granted
Application number
JP2002079794A
Other languages
English (en)
Other versions
JP3844214B2 (ja
Inventor
Tokio Shirakawa
登喜男 白川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2002079794A priority Critical patent/JP3844214B2/ja
Publication of JP2003280650A publication Critical patent/JP2003280650A/ja
Application granted granted Critical
Publication of JP3844214B2 publication Critical patent/JP3844214B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】LFOと自動演奏手段とが独立して設けられて
いる場合でも、自動演奏のテンポに同期した変調波形を
発生することができる変調波形発生装置を提供すること
を目的とする。 【解決手段】トリガーカウンタと共通カウンタを用いて
LFO波形のベースとなるベース波形を生成する。この
場合、テンポクロック(例えば、MIDIのF8が発生
するとき)ごとに、CPUは、音源にトリガーを送り、
該トリガーに応じてトリガーカウンタはその現在値に所
定値を加算する。共通カウンタは、トリガーカウンタの
現在値を目標値として、指定された補間レートで補間を
行ない、共通カウンタの現在値を生成する。前記トリガ
ーに応じて、該共通カウンタの現在値は該目標値に設定
される。そして、共通カウンタの現在値に基づいて、L
FO波形を生成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、電子楽器などに
適用する変調波形発生装置に関する。
【0002】
【従来の技術】電子楽器の発生する楽音に対しては、振
幅、周波数、パン(ステレオ音における左右の音量バラ
ンス)、あるいは音色などを変動させて特殊効果を付与
することが多い。そのような特殊効果の付与を行なうた
め、変調波(低周波)波形発生器、いわゆるLFOが設
けられる。楽音に対する特殊効果の周期は、このLFO
から出力される変調波形の周期によって決定される。
【0003】一方、近年の電子楽器は自動演奏や自動伴
奏の機能を備えたものが多い。自動演奏や自動伴奏で
は、自動演奏・伴奏におけるテンポが指定される。例え
ば、MIDI(Musical Instruments Digital Interfac
e)データで表現された自動演奏データでは、曲の先頭
や途中にテンポを指定するデータをセットし、曲の先頭
や途中でのテンポの設定を行なう。
【0004】そのような自動演奏・伴奏の側でのテンポ
のタイミングと特殊効果のタイミングが一致しないと楽
音が不自然になる。そこで、特殊効果の周期を規定する
LFOと自動演奏・伴奏のテンポとを同期させるための
技術が提案されている。例えば、特許第2621669
号には、指示手段による楽音信号発生指示に応じて第1
の楽音信号を発生し、テンポ設定手段で設定されたテン
ポにしたがって自動的に第2の楽音信号を発生し、さら
に前記テンポ設定手段で設定されたテンポに応じた周期
の変調信号を発生し、その変調信号に基づき第1の楽音
信号を変調するようにした電子楽器が開示されている。
これによれば、第2の楽音信号(自動伴奏)のテンポは
テンポ設定手段で設定されたテンポにしたがい、さらに
そのテンポに応じた周期の変調信号で第1の楽音信号を
変調するので、変調信号の周期を自動伴奏のテンポに対
応させることができ、第1の楽音信号の変調を自動伴奏
に同期させることができる。なお、以下では、自動演奏
や自動伴奏のテンポに同期した周期の変調信号を発生す
るLFOを「テンポ同期LFO」と呼ぶ。
【0005】
【発明が解決しようとする課題】上記特許第26216
69号に記載のものは、数値として与えられたテンポに
対して同期した変調信号を発生するものであり、実際に
テンポを規定するテンポクロック(例えば、MIDIデ
ータで入力してくるテンポクロック)に対して同期した
変調信号を発生するものではない。特に、自動演奏(以
下、単に自動演奏というときは自動伴奏も含むものとす
る)のテンポを規定するテンポクロックの時間間隔が変
動する場合、従来のテンポ同期LFOでは、その周期が
変動するテンポクロックに対して同期することは困難で
ある。また、従来のテンポ同期LFOでは、仮に、自動
演奏手段からテンポクロックとともに数値としてのテン
ポ値を供給しても、テンポの変化タイミングを互いに完
全一致させることはできないので、厳密な意味での同期
はとれていない。
【0006】さらに、その指定されたテンポに応じて変
調波形を発生するLFO(音源内のLFO)が自動演奏
手段(一般にCPU)とは独立した発振器である場合に
は、たとえテンポ値が固定であっても、テンポクロック
と変調波形が時間とともに少しずつずれていくという問
題がある。CPUにテンポ同期LFOの波形発生処理を
受け持たせることも考えられるが、そうするとCPU
は、各サンプリング周期ごとに発音チャンネル数分のL
FO処理を行なうことになり、負担が大きい。
【0007】この発明は、上述の従来技術における問題
点に鑑み、LFOと自動演奏手段とが独立して設けられ
ている場合でも、自動演奏のテンポに同期した変調波形
を発生することができる変調波形発生装置を提供するこ
とを目的とする。
【0008】
【課題を解決するための手段】この目的を達成するた
め、請求項1に係る発明は、楽音を生成する複数チャン
ネルを備えた音源内で使用する複数の変調波形を発生す
る変調波形発生装置であって、テンポに同期した複数拍
で一巡する所定ビット幅の基本波形を発生する基本波形
発生手段と、前記複数チャンネルの各チャンネルごとの
乗数を記憶した記憶手段と、前記基本波形にチャンネル
ごとの乗数を乗じ、その乗算結果として前記所定ビット
幅であふれを生じさせた値を出力する乗算手段と、各チ
ャンネルごとの乗算結果に基づいて、各チャンネルごと
の変調波形を発生する変調波形発生手段とを備えたこと
を特徴とする。
【0009】請求項2に係る発明は、ディジタル信号処
理装置で使用する複数の変調波形を発生する変調波形発
生装置であって、テンポに同期した複数拍で一巡する所
定ビット幅の基本波形を発生する基本波形発生手段と、
複数の変調波形発生チャンネルの各変調波形発生チャン
ネルごとの乗数を記憶した記憶手段と、前記基本波形に
変調波形発生チャンネルごとの乗数を乗じ、その乗算結
果として前記所定ビット幅であふれを生じさせた値を出
力する乗算手段と、各変調波形発生チャンネルごとの乗
算結果に基づいて、各変調波形発生チャンネルごとの変
調波形を発生する変調波形発生手段とを備えたことを特
徴とする。
【0010】請求項3に係る発明は、複数エフェクト処
理を時分割で実行する信号処理装置用の変調波形発生装
置であって、テンポに同期した複数拍で一巡する所定ビ
ット幅の基本波形を発生する基本波形発生手段と、前記
各エフェクト処理に対応する乗数を記憶した記憶手段
と、前記基本波形に各エフェクト処理ごとの乗数を乗
じ、乗算結果として前記所定ビット幅であふれを生じさ
せた値を出力する乗算手段と、前記各エフェクト処理ご
との乗算結果に基づいて、各エフェクト処理で使用する
変調波形を発生する変調波形発生手段とを備えたことを
特徴とする。
【0011】
【発明の実施の形態】以下、図面を用いてこの発明の実
施の形態を説明する。
【0012】図1は、この発明の変調波形発生装置を適
用した電子楽器のブロック構成を示す。この電子楽器
は、中央処理装置(CPU)101、リードオンリメモ
リ(ROM)102、ランダムアクセスメモリ(RA
M)103、タイマ104、ドライブ装置105、MI
DIインターフェース107、ネットワークインターフ
ェース108、パネルスイッチ109、パネル表示器1
10、音源120、波形メモリ128、ディジタルアナ
ログ変換器(DAC)130、およびサウンドシステム
131を備える。
【0013】CPU101は、この電子楽器全体の動作
を制御するための処理装置である。ROM102は、C
PU101が実行するプログラムや各種の定数データな
どを格納した不揮発メモリである。RAM103は、C
PU101が実行するプログラムのロード領域や各種の
ワークメモリ領域に使用する揮発性のメモリである。タ
イマ104は、所定周期のクロック信号を供給するタイ
マである。ドライブ装置105は、外部記録媒体である
ディスク106を挿入し、CPU101の指示に応じて
各種のデータを読み書きする装置である。MIDIイン
ターフェース107は、外部のMIDI機器と接続しM
IDI規格にしたがって信号のやり取りを行なうインタ
ーフェースである。ネットワークインターフェース10
8は、外部のネットワークに接続するためのインターフ
ェースである。パネルスイッチ109は、この電子楽器
の外部パネル上に設けられている各種のスイッチなどの
操作子を示す。パネル表示器110は、この電子楽器の
パネル上に設けられている表示器である。
【0014】音源120は、音源制御レジスタ121、
LFO(変調波形発生部)122、アドレス発生部12
3、補間部124、DCF(周波数特性制御部)12
5、EG(エンベロープジェネレータ)126、および
ミキサ&DSP127を備える。音源120は、複数チ
ャンネルについて時分割で動作する。すなわち、いわゆ
る1DAC周期(1サンプリング周期)をチャンネルの
数で分割し、分割した各時間区間で各チャンネルの楽音
生成処理を行なうものである。
【0015】音源制御レジスタ121は、CPU101
と音源120との間のインターフェースの役割を果た
す。CPU101は、音源制御レジスタ121の中の所
定のレジスタに所定の値を書き込むことにより、音源1
20に各種の指示命令を出す。音源制御レジスタ121
については、後に詳しく説明する。アドレス発生部12
3は、CPU101の指示に応じて波形メモリ128中
の所定の波形データを読み出すアドレスを発生する。読
み出された波形データは補間部124で補間処理され、
DCF125に入力する。DCF125は、入力信号に
対し音色変化を与える。EG付与部126は、入力信号
に対してエンベロープを付与する。ミキサ&DSP12
7は、入力信号をミキシングし各種の効果付与などを行
なった後、最終的な音源出力として楽音信号をDAC1
30に出力する。DAC130は、入力したディジタル
楽音信号をアナログ楽音信号に変換する。変換されたア
ナログ楽音信号はサウンドシステム131により放音さ
れる。
【0016】LFO122で発生したLFO波形は、ア
ドレス発生部123、DCF125、EG付与部12
6、およびミキサ&DSP127に入力する。アドレス
発生部123に入力するLFO波形は、アドレスを周波
数変調するピッチ変調波形の役割を果たす。DCF12
5に入力するLFO波形は、音色を変化させる音色変調
波形の役割を果たす。EG付与部126に入力するLF
O波形は、エンベロープを付与する際の振幅変調波形の
役割を果たす。ミキサ&DSP127に入力するLFO
波形は、パンの変化に利用したり、リバーブやコーラス
などの各種のエフェクト処理に利用する。
【0017】図2は、LFO122で発生するLFO波
形の例を示す。5線譜と音符は自動演奏の楽音を示す。
その下の波形201は、この自動演奏のテンポに同期し
て発生されるLFO波形の例である。例えば、1小節の
開始位置でパンポット(音像の位置)を左側に定位(ス
テレオのL側の音量レベルが最大でR側の音量レベルが
0の状態)させ、小節内では徐々にパンポットを左側か
ら右側に移動させ、小節終了位置ではパンポットを右側
に定位させるようなパンニングを行ないたいときには、
このLFO波形201をミキサ&DSP127のパンニ
ング回路に供給する。LFO波形201はパンポットの
定位する位置を規定する波形の役割を果たし、LFO波
形20の最下位レベルで一番左、最上位レベルで一番右
に定位するものとする。このようなパンニングを行なう
場合、自動演奏のテンポとLFO波形が同期していない
と、各小節で所望のパンニングを行なうことができな
い。本実施形態では、自動演奏のテンポに同期したLF
O波形を発生するので、各小節で自動演奏のテンポに同
期したパンニングを行なうことができる。
【0018】自動演奏のテンポに同期したLFO波形2
01を発生するため、CPU101側からLFO122
にテンポクロックであるF8信号に基づくテンポ同期ト
リガーを供給する。すなわち、CPU101は、後述す
るようにF8信号のタイミングでテンポ同期トリガーを
音源120に供給する。LFO122は、F8信号に基
づくテンポ同期トリガーを受けたとき、カウンタの次の
目標値に変えるなどのテンポに対する同期ずれを補正す
る処理を行ない、これによりできる限りF8信号のテン
ポに同期したLFO波形を出力するように処理する。こ
の処理については、後述する。
【0019】図3は、図1のLFO122の詳細な構成
を示す。LFO122は、トリガーカウンタ301、共
通カウンタ302、各チャンネル用低周波発振部30
3、およびDSP用各低周波発振部305を備える。ト
リガーカウンタ301と共通カウンタ302は、LFO
122内に1つずつ設けられている。各チャンネル用低
周波発振部303は、各発音チャンネルごとに設けられ
ている。ここでは128チャンネル分のチャンネル用低
周波発振部303が設けられている。DSP用各低周波
発振部305は、ミキサ&DSP127で使用する複数
の変調波形を生成するため複数設けられている。ここで
は64チャンネル分のDSP用各低周波発振部305が
設けられている。
【0020】各発音チャンネル用低周波発振部303
は、N倍処理部331、リセット制御部332、オフセ
ット付加部333、形状変形部334、直線補間部33
5、位相反転部336,338,340、デプス制御部
337,339,341、および非同期カウンタ342
を備える。各DSP用各低周波発振部305は、N倍処
理部351、リセット制御部352、オフセット付加部
353、形状変形部354、1次LPF355、および
非同期カウンタ356を備える。
【0021】トリガーカウンタ301と共通カウンタ3
02は、出力するLFO波形の元になる基本的な鋸歯状
波(ベース波形と呼ぶ)を生成するためのそれぞれ整数
部17ビットと小数部10ビットで構成されるカウンタ
である。これらにより生成したベース波形を、各チャン
ネル用低周波発振部303やDSP用各低周波発振部3
05で加工することにより、所望の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の出力は、直線補間部3
35に入力する。直線補間部335は、入力波形の傾き
(変化)が、設定された波形補間レート以下になるよう
に制御する。波形補間レートは、発音チャンネルごとに
CPU101が設定する。直線補間部335による補間
は、ノイズ除去を目的とする波形の平滑化のためであ
る。
【0029】直線補間部335の出力は、位相反転部3
36,338,340にそれぞれ入力する。位相反転部
336,338,340では、各発音チャンネルの出力
先(アドレス発生部123、DCF125、EG付与部
126)ごとに、位相の反転(正相/逆相)を選択可能
である。例えば、ピッチと振幅の変調を同位相の変調に
したり、逆位相にしたりできる。また、複数の発音チャ
ンネルで生成する音の振幅変調を互いに同位相(スル
ー)にしたり逆位相(全ビット反転)にしたりできる。
位相の反転を行なうか否かは、CPU101が設定す
る。
【0030】位相反転部336,338,340の出力
は、それぞれデプス制御部337,339,341に入
力する。デプス制御部337,339,341では、各
発音チャンネルの出力先(アドレス発生部123、DC
F125、EG付与部126)ごとに変調の深さを設定
することができる。変調の深さの設定は、CPU101
が行なう。デプス制御部337,339,341の出力
は、それぞれ、ピッチ変調波形としてアドレス発生部1
23に、音色変調波形としてDCF125に、振幅変調
波形としてEG付与部126に、それぞれ入力する。
【0031】各発音チャンネルの低周波発振部303
は、発音チャンネルごとの設定に応じて、テンポ同期L
FOとして動作させることもできるし、テンポ非同期L
FOとして動作させることもできる。その指定は、CP
U101により行なう。非同期カウンタ342は、テン
ポ非同期LFOとして動作するとき、設定された周波数
データに対応した周波数の変調波形を発生するために使
用するカウンタである。テンポ非同期LFOとして動作
するよう設定されたLFO303では、発生するLFO
波形の周期の単位は周期時間または周波数で指定する。
この周期時間または周波数は、CPU101が指定す
る。非同期カウンタ342は、指定された周期時間また
は周波数に対応した周波数の変調波形を発生する。
【0032】なお、ある発音チャンネルの低周波発振部
303をテンポ非同期LFOとして動作させるときに
は、そのチャンネルのN倍処理部331やリセット制御
部332は不要である。そこで、リセット制御部332
のレジスタを、非同期カウンタ342の現在値を保持す
るレジスタとして兼用している。また、N倍処理部33
1の乗数Nを保持するレジスタを、CPU101が指定
した「周期時間または周波数」を保持するレジスタとし
て兼用している。
【0033】DSP用各低周波発振部305の内部構成
は、上述の各発音チャンネルの低周波発振部303と同
様である。N倍処理部351はN倍処理部331に、リ
セット制御部352はリセット制御部332に、オフセ
ット付加部353はオフセット付加部333に、形状変
形部354は形状変形部334に、非同期カウンタ35
6は非同期カウンタ342に、それぞれ相当する。ただ
し、直線補間部335以降の部分の代わりに、平滑化の
ための1次LPF355を備えている。低周波発振部3
05で発生するLFO波形の振幅レベルは、DSPでマ
イクロプログラムにより実現されるアルゴリズムの中の
乗算器で制御される。この構成により、ミキサ&DSP
127における各エフェクト処理に割り当てて使用する
複数LFO波形を発生する。
【0034】なお、上述したように各エフェクトに割り
当てて使用する複数LFOとともに、DSPには複数E
Gが備えられている。該複数LFOと該複数EGは、D
SPで実行される個々のエフェクトで必要とされる数ず
つ各エフェクトに割り当てて使用され、そのため、それ
ぞれ1つずつ個別にトリガーをかけることができるよう
になっている。例えば、3つのLFOを使用するコーラ
ス効果の場合、その3つのLFOは、相互に位相を12
0度ずつずらせて動作させる必要がある。これは、3L
FOチャンネル分のLFOについて、オフセット付加部
353で120度ずつ異なる初期位相を設定し、同時に
リセットをかけることにより実現できる。トリガーを使
えば、DSPでエフェクトの代りに(波形発生部と同じ
ような)波形発生処理を実行させることも可能である。
【0035】次に、テンポ同期LFOに関係するレジス
タやフラグについて説明する。トリガーカウンタ301
と共通カウンタ302については図3で説明したので、
それ以外のレジスタやフラグ(音源制御レジスタ12
1)について次の(1)〜(14)で説明する。
【0036】(1)トリガーカウンタアップ値レジス
タ:トリガーカウンタ301にF8信号(テンポ同期ト
リガー)ごとに加算する値を保持するレジスタである。
ここに書き込んだ値により何回のトリガーで一周期まわ
るかが決まる。ここでは、トリガーカウンタ301は、
その整数部17ビットで2の17乗−1=131071まで、小
数部込みで約2の17乗=約131072までカウントアップで
きるレジスタであるので、この最大値をベース波形の1
周期内のF8信号の数で割ることにより、トリガーカウ
ンタアップ値が求められる。CPU101は、そのよう
に算出した値を音源120に送って、トリガーカウンタ
アップ値レジスタに保持させる。なお、トリガーカウン
タアップ値の算出で割り切れない場合は、その商を切り
上げるものとする。切り上げることにより、ベース波形
の1周期内の最後のF8信号ではトリガーカウンタ30
1が必ずオーバフローするようになり、この時点でオー
バーフローしたあふれ分は切り捨てられ、トリガーカウ
ンタ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≒13
65.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.0208se
cである。ベース波形の周期を1小節(F8信号で96
個分の時間間隔)としたいのであるから、0.0208sec×9
6≒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倍処理部33
1→リセット制御部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)波形選択レジスタ:形状変形部3
34で変換出力する波形形状の形状選択情報を保持する
レジスタである。選択できる波形については、後に詳し
く説明する。
【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は、トリガーカウンタ30
1の値を示す。トリガーカウンタ301の値は、ベース
波形の1周期における最初のF8信号のタイミングでト
リガーカウンタアップ値となり、その後、F8信号が来
るごとにその値に対してトリガーカウントアップ値が加
算される。共通カウンタ302は、トリガーカウンタ3
01の値を目標値として細かく補間されてカウントアッ
プされる。402は、目標値に向かって理想的にカウン
トアップされていく共通カウンタ302の値を示す。4
03は、次のF8信号のタイミングで共通カウンタ30
2の累算値が未だトリガーカウンタ301の目標値に到
達していない場合、共通カウンタ302の累算値を、目
標値であるトリガーカウンタ301の値に強制的に設定
しているグラフを示す。404は、次のF8信号のタイ
ミングに至る前に共通カウンタ302の累算値がトリガ
ーカウンタ301の目標値に到達し、そこからは共通カ
ウンタ302の累算を停止して、その目標値を出力し続
けているグラフを示す。
【0055】410はカウンタの最大値である2の17乗
=131072のレベルを示す。ベース波形の1周期における
最後のF8信号(この図では4回目)のタイミングにお
いてトリガーカウンタ301はオーバーフローし、該オ
ーバーフローに応じて、トリガーカウンタ301の内部
値は0にリセットされる一方、共通カウンタに対して最
大値(約131072)を出力する。なお、この図の例
でトリガーカウンタアップ値の計算は割り切れている
(131072/4=32768)が、その場合であっても、最後の
F8信号に応じた加算によりその加算結果は整数部の1
7ビットを超えてオーバーフローが発生する。共通カウ
ンタ302の値は、最大値131072に至った後は、その最
大値を続けて出力する。
【0056】図4(b)は、F8信号が不規則な場合を
示す。自動演奏のテンポは任意に変動できるものである
ので、F8信号も不規則に発生される場合がある。F8
信号が不規則な場合でもカウントアップの動作は同様で
あるので、図4(a)と同じ番号を付した。図4(b)
では、F8信号411のタイミングでトリガーカウンタ
301が0にリセットされ、そこから共通カウンタ30
2は共通カウンタ補間レートの累算を継続しているが、
共通カウンタ302の値が最大値に至る前に次のF8信
号412が来ており、ここで共通カウンタ302は0に
リセットされている。
【0057】図5は、トリガーカウンタ301と共通カ
ウンタ302を用いたカウントアップの各種の例を示
す。上述したように、CPU101は、ベース波形の周
期を決め、その周期内のF8信号の数を求め、F8信号
ごとのトリガーカウンタ301への加算量を算出し、共
通カウンタ補間レートを算出する。この場合、CPU1
01側から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周期の途中
で共通カウンタ補間レートを変更する例を示す。CPU
101は、ベース波形の周期を決め、その周期内でF8
信号を何個にするかを決定する。そして、F8信号ごと
の加算量であるトリガーカウンタアップ値を算出する。
この図の例では、3等分して加算量を求めている。一
方、共通カウンタ補間レートは、ベース波形の1周期の
前半ではトリガーカウンタアップ値の2倍をタイミング
521〜522までのサンプル回数で割った商として、
後半ではトリガーカウンタアップ値をタイミング522
〜523までのサンプル回数で割った商として算出す
る。図のように、CPU101は、ベース波形の各周期
において不等間隔でトリガーアクションを与える。ま
た、CPU101は、ベース波形の1周期の先頭の52
1、523のタイミングでは前記前半の共通カウンタ補
間レートを与え、真中の522のタイミングでは前記後
半の共通カウンタ補間レートを与える。
【0060】図5(d)は、図5(c)において、さら
にベース波形の1周期の途中でトリガーカウンタアップ
値を変更する代わりに、F8信号を間引けるようにした
例である。この場合も、ベース波形の傾きは図5(c)
と同じなので、共通カウンタ補間レートは図5(c)の
場合と同じでよい。一方、トリガーカウンタアップ値
は、ベース波形の1周期の前半が最大値の3分の2、後
半が3分の1として算出される。CPU101は、ベー
ス波形の1周期の先頭の531、533のタイミングで
は前記前半のベースカウンタアップ値を与え、真中の5
22のタイミングでは前記後半のベースカウンタアップ
値を与える。また、ベース波形の1周期の先頭の53
4、536のタイミングでは前記前半の共通カウンタ補
間レートを与え、真中の535のタイミングでは前記後
半の共通カウンタ補間レートを与える。このように、1
周期の途中で共通カウンタ補間レートを変更するベース
波形を生成する場合、CPU101は、その変更するタ
イミングについて、トリガーアクション、ベースカウン
タアップ値、共通カウンタ補間レートの制御を行なうだ
けでよい。
【0061】図6は、F8信号が途絶えた場合の処理方
法を示す。曲の終わりなどではテンポカウンタであるF
8信号が途絶える場合がある。この場合、上述のフリー
ランモードフラグにより、図6(a)か図6(b)の何
れかの処理方法を採ることができる。図6(a)は、F
8信号が途絶えた後もフリーランモードフラグを0のま
ま放置した場合である。この場合、F8信号が途絶えた
タイミングでトリガーカウンタ301の値が増加しなく
なるのに応じ、補間カウンタの値もそれと同じ値から変
化しなくなる。図6(b)は、CPU101がF8が途
絶えたことを検出した時点でフリーランモードフラグに
1を設定した場合である。この場合、共通カウンタ30
2は、目標値を無視して常に与えられた共通カウンタ補
間レートで補間し続ける。これにより、曲が終わった後
に出力されているような楽音に対しても、引き続きLF
O波形を適用できる。
【0062】図7は、上述のN倍処理部331,351
による処理例を示す。701は、共通カウンタ302か
らN倍処理部331,351に入力するベース波形を示
す。N倍処理部331,351での乗数Nが9であった
とすると、N倍処理部331,351の出力は波形70
2のようになる。この波形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は、この補間レートを、LFO
122の当該発音チャンネルないしLFOチャンネルに
おいて選択された波形形状や設定されたN倍の値に応じ
て決定し、直線補間部335に与える。例えば、入力波
形が1001に示すような鋸歯状波の場合、補間レート
の値を小さくすると波形1002のような波形が出力さ
れる。この補間により、LFO波形の急激に変化する部
分でノイズが発生するのを防止できる。
【0067】次に、フローチャートを参照してCPU1
01が実行する処理手順を説明する。
【0068】図11は、CPU101が実行するメイン
処理の流れを示す。ステップ1101で初期設定を行な
い、ステップ1102で起動要因(イベント)の発生を
チェックする。ステップ1103で何らかの起動要因が
あれば、ステップ1104に進む。起動要因がなけれ
ば、ステップ1102に戻り、起動要因チェックを継続
する。ステップ1104では、何の要因かを判別し、そ
の要因別にステップ1105〜1109の何れかに分岐
する。パネル操作イベントがあったときは、ステップ1
105に進み、パネル処理を行なった後、ステップ11
02に戻る。MIDIイベントがあったときは、ステッ
プ1106に進み、MIDIイベント処理を行なった
後、ステップ1102に戻る。テンポ割込イベントがあ
ったときは、ステップ1107に進み、自動演奏のテン
ポ割込処理を行なった後、ステップ1102に戻る。そ
の他のイベントのときは、ステップ1108に進み、そ
のイベントに応じた処理を行なった後、ステップ110
2に戻る。電源スイッチのオフイベントであったとき
は、ステップ1109で終了処理を行なった後、本処理
を終了する。
【0069】図12は、ステップ1106のMIDIイ
ベント処理のうち、MIDIインターフェース107を
介して他のMIDI機器からのF8信号を受信したとき
の動作を示す。これは、この電子楽器がスレーブ動作す
る場合である。すなわち、他のMIDI機器が出力する
自動演奏データに基づいて、この電子楽器で自動演奏を
行なう場合であり、テンポクロックであるF8信号は、
他のMIDI機器からこの電子楽器に供給される。
【0070】ステップ1201では、過去のF8信号の
時間間隔に基づき現在のテンポ値を推定し変数GTに格
納する。ステップ1202では、現在のテンポ値GTに
基づき、共通カウンタ補間レートを算出して音源120
のLFO122に供給する。共通カウンタ補間レートの
算出方法についてはすでに説明した。次に、ステップ1
203で、音源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に示した複数のLF
Oチャンネルに相当する低周波発振部の中から割り当て
るものである。また、EG(エンベロープジェネレー
タ)の割り当ては、指定されたエフェクトに必要な数の
EGを、DSP127が備えている複数のEGの中から
割り当てるものである。
【0073】次に、ステップ1403で、割り当てたM
P番号のエフェクトをミュートする。これは、そのMP
番号のエフェクト処理が実行中であった場合に、マイク
ロプログラムの入れ替えでノイズが発生しないようにミ
ュートするものである。ステップ1404では、割り当
てたLFOチャンネルに対し、テンポ同期フラグ、倍数
N(テンポ非同期で用いる場合は周波数)、LPF係
数、キーオンリセットフラグなどを設定する。ステップ
1406でEGの設定を行ない、ステップ1407で各
種の係数を設定する。ステップ1408では、その他の
必要な処理(遅延メモリの処理など)を行なう。ステッ
プ1409では、ステップ1403でかけたミュートを
解除し、マイクロプログラムの実行を開始するようにト
リガーをかけて、処理終了する。
【0074】図15(a)は、図11のステップ110
7の自動演奏のテンポ割込処理の手順を示す。自動演奏
中は、現在のテンポに応じた周期でタイマ割込が発生
し、そのときこのテンポ割込処理が実行される。これ
は、この電子楽器がマスタ動作する場合である。すなわ
ち、この電子楽器が自動演奏データを読み込んで、自動
演奏する場合であり、F8信号はこの電子楽器で発生し
て他のMIDI機器に供給する。テンポ割り込みの時間
間隔は、F8信号と同じ4分音符あたり24回の割り込
みが発生するように設定しても良いし、それより細かい
分解能で、例えば、4分音符あたり96回の割り込みが
発生するように設定しても良い。
【0075】まずステップ1501で、テンポカウンタ
をカウントアップする。テンポカウンタは、CPU10
1側で自動演奏のテンポを規定するカウンタである。次
に、ステップ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のLFO12
2に、テンポ値TMPに応じた共通カウンタ補間レート
を供給し、処理を終了する。
【0078】なお、上記実施形態において、テンポクロ
ックは、必ずしもMIDIの「F8信号」(分解能が1
拍の1/24)でなくてもよい。分解能は、例えば、1
拍の1/2、1/96などでもよい。共通カウンタ30
2に加算する共通カウンタ補間レートの値は、テンポク
ロックの直前の時間間隔に基づいて自動決定してもよ
い。また、上記実施形態では、共通カウンタで各サンプ
リング周期ごとに補間演算(累算)を行なっていたが、
サンプリング周期ごとに行なわなくてもよい。例えば、
2サンプリング周期に1回とか、8サンプリング周期に
1回、補間演算を行なうようにしてもよい。また、「F
8信号」の受信間隔に基づくテンポの推定をCPU10
1で行なわず、音源120内の演算回路で行ない、音源
120内で共通カウンタ補間レートを算出するようにし
てもよい。テンポの推定は、直前に受信した2つの「F
8信号」の時間間隔のみから(直線的に)推定してもよ
いし、直前の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信号が取
りこぼされる場合も考えられる。その場合は、CPU1
01がダミーの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…パネルスイッチ、11
0…パネル表示器、120音源、128…波形メモリ、
130…ディジタルアナログ変換器(DAC)、131
…サウンドシステム。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】楽音を生成する複数チャンネルを備えた音
    源内で使用する複数の変調波形を発生する変調波形発生
    装置であって、 テンポに同期した複数拍で一巡する所定ビット幅の基本
    波形を発生する基本波形発生手段と、 前記複数チャンネルの各チャンネルごとの乗数を記憶し
    た記憶手段と、 前記基本波形にチャンネルごとの乗数を乗じ、その乗算
    結果として前記所定ビット幅であふれを生じさせた値を
    出力する乗算手段と、 各チャンネルごとの乗算結果に基づいて、各チャンネル
    ごとの変調波形を発生する変調波形発生手段とを備えた
    ことを特徴とする変調波形発生装置。
  2. 【請求項2】ディジタル信号処理装置で使用する複数の
    変調波形を発生する変調波形発生装置であって、 テンポに同期した複数拍で一巡する所定ビット幅の基本
    波形を発生する基本波形発生手段と、 複数の変調波形発生チャンネルの各変調波形発生チャン
    ネルごとの乗数を記憶した記憶手段と、 前記基本波形に変調波形発生チャンネルごとの乗数を乗
    じ、その乗算結果として前記所定ビット幅であふれを生
    じさせた値を出力する乗算手段と、 各変調波形発生チャンネルごとの乗算結果に基づいて、
    各変調波形発生チャンネルごとの変調波形を発生する変
    調波形発生手段とを備えたことを特徴とする変調波形発
    生装置。
  3. 【請求項3】複数エフェクト処理を時分割で実行する信
    号処理装置用の変調波形発生装置であって、 テンポに同期した複数拍で一巡する所定ビット幅の基本
    波形を発生する基本波形発生手段と、 前記各エフェクト処理に対応する乗数を記憶した記憶手
    段と、 前記基本波形に各エフェクト処理ごとの乗数を乗じ、乗
    算結果として前記所定ビット幅であふれを生じさせた値
    を出力する乗算手段と、 前記各エフェクト処理ごとの乗算結果に基づいて、各エ
    フェクト処理で使用する変調波形を発生する変調波形発
    生手段とを備えたことを特徴とする変調波形発生装置。
JP2002079794A 2002-03-20 2002-03-20 変調波形発生装置 Expired - Fee Related JP3844214B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002079794A JP3844214B2 (ja) 2002-03-20 2002-03-20 変調波形発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002079794A JP3844214B2 (ja) 2002-03-20 2002-03-20 変調波形発生装置

Publications (2)

Publication Number Publication Date
JP2003280650A true JP2003280650A (ja) 2003-10-02
JP3844214B2 JP3844214B2 (ja) 2006-11-08

Family

ID=29229087

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002079794A Expired - Fee Related JP3844214B2 (ja) 2002-03-20 2002-03-20 変調波形発生装置

Country Status (1)

Country Link
JP (1) JP3844214B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007079104A (ja) * 2005-09-14 2007-03-29 Casio Comput Co Ltd 波形発生装置および波形発生プログラム
JP2008522239A (ja) * 2004-12-01 2008-06-26 クリエイティブ テクノロジー リミテッド ユーザがオーディオファイルを修正することを可能にするための方法及び装置
JP2021099414A (ja) * 2019-12-20 2021-07-01 ヤマハ株式会社 音信号変換装置、楽器、音信号変換方法および音信号変換プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008522239A (ja) * 2004-12-01 2008-06-26 クリエイティブ テクノロジー リミテッド ユーザがオーディオファイルを修正することを可能にするための方法及び装置
JP2007079104A (ja) * 2005-09-14 2007-03-29 Casio Comput Co Ltd 波形発生装置および波形発生プログラム
JP4614131B2 (ja) * 2005-09-14 2011-01-19 カシオ計算機株式会社 波形発生装置および波形発生プログラム
JP2021099414A (ja) * 2019-12-20 2021-07-01 ヤマハ株式会社 音信号変換装置、楽器、音信号変換方法および音信号変換プログラム
JP7427957B2 (ja) 2019-12-20 2024-02-06 ヤマハ株式会社 音信号変換装置、楽器、音信号変換方法および音信号変換プログラム

Also Published As

Publication number Publication date
JP3844214B2 (ja) 2006-11-08

Similar Documents

Publication Publication Date Title
KR100319481B1 (ko) 악음발생방법,파형데이터압축방법,이러한방법을실행하기위한제어명령어를포함하는기계판독가능한기록매체및사운드장치
US6326537B1 (en) Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency
JP3844214B2 (ja) 変調波形発生装置
JP3397082B2 (ja) 楽音発生装置および方法
JP3871119B2 (ja) 変調波形発生装置
JP3137043B2 (ja) 波形メモリ音源装置および楽音発生装置
JP4179243B2 (ja) 波形発生装置及びプログラム
JP2882464B2 (ja) 波形メモリ音源装置
JP3552265B2 (ja) 音源装置および音声信号形成方法
JP2833485B2 (ja) 楽音発生装置
JP3221987B2 (ja) 遅延時間変調効果装置
JP3148803B2 (ja) 音源装置
JP3201553B2 (ja) 電子楽器
JP3245411B2 (ja) 電子楽器
JP3095323B2 (ja) 電子楽器
JP2001215973A (ja) 楽音制御パラメータ生成方法、楽音制御パラメータ生成装置および記録媒体
JP3862839B2 (ja) 波形圧縮伸長装置
JPH03174592A (ja) 電子楽器の音源回路
JP4179245B2 (ja) 波形発生装置及びプログラム
JP2546464B2 (ja) 電子楽器
JP2001166777A (ja) 音源装置
JP2970570B2 (ja) 楽音発生装置
JP2684791B2 (ja) 楽音制御用波形信号発生装置
JP3627590B2 (ja) 音生成方法
JP2004118148A (ja) 楽音変調装置、楽音変調方法および楽音変調プログラム

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