JP2912110B2 - サイン合成方式およびこれによる楽音波形発生装置ならびに電子楽器 - Google Patents
サイン合成方式およびこれによる楽音波形発生装置ならびに電子楽器Info
- Publication number
- JP2912110B2 JP2912110B2 JP5062458A JP6245893A JP2912110B2 JP 2912110 B2 JP2912110 B2 JP 2912110B2 JP 5062458 A JP5062458 A JP 5062458A JP 6245893 A JP6245893 A JP 6245893A JP 2912110 B2 JP2912110 B2 JP 2912110B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- output
- harmonic
- value
- data
- 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
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【産業上の利用分野】 本発明はサイン合成方式および
これによる楽音波形発生装置ならびに電子楽器に関し、
特にサイン合成方式による波形の計算時間を短縮するこ
とが可能なサイン合成方式およびこれによる楽音波形発
生装置ならびに電子楽器に関するものである。
これによる楽音波形発生装置ならびに電子楽器に関し、
特にサイン合成方式による波形の計算時間を短縮するこ
とが可能なサイン合成方式およびこれによる楽音波形発
生装置ならびに電子楽器に関するものである。
【0002】
【従来の技術】従来、電子楽器においては、波形読み出
し方式の楽音発生手段を持つものがある。この方式は、
複数の音色に対応する楽音波形を記憶した波形メモリを
有し、音高に対応したアドレス間隔で該波形メモリから
波形データを読み出すものである。この波形読み出し方
式においては、楽音の音色は基本的には波形メモリに記
憶されている波形の種類によって決定される。従って、
音色を細かく変化させるためには非常に大量の波形メモ
リが必要となる。
し方式の楽音発生手段を持つものがある。この方式は、
複数の音色に対応する楽音波形を記憶した波形メモリを
有し、音高に対応したアドレス間隔で該波形メモリから
波形データを読み出すものである。この波形読み出し方
式においては、楽音の音色は基本的には波形メモリに記
憶されている波形の種類によって決定される。従って、
音色を細かく変化させるためには非常に大量の波形メモ
リが必要となる。
【0003】一方、第2の方式としてサイン合成方式が
ある。これは、あらゆる周期信号は基本周期の整数倍の
高調波の組み合わせで表現できるというフーリエ合成の
理論に基づき、音色によって異なるレベル(エンベロー
プ)を持つ複数の高調波を加算し、任意の楽音波形を得
るものである。
ある。これは、あらゆる周期信号は基本周期の整数倍の
高調波の組み合わせで表現できるというフーリエ合成の
理論に基づき、音色によって異なるレベル(エンベロー
プ)を持つ複数の高調波を加算し、任意の楽音波形を得
るものである。
【0004】この方式においては、多量のメモリは必要
とはしないが、1つの楽音の波形の1サンプル点の値を
求めるために、複数の高調波の振幅値を求めて、それら
を加算する必要がある。
とはしないが、1つの楽音の波形の1サンプル点の値を
求めるために、複数の高調波の振幅値を求めて、それら
を加算する必要がある。
【0005】
【発明が解決しようとする課題】上記のような、サイン
合成方式の楽音波形発生回路において、各高調波の位相
が全て揃っていれば、波形の対称性を利用して、基本波
の半周期分の波形を計算すればよいことは以前から知ら
れていた。しかし、各高調波ごとに位相偏移を制御する
ようにすると、波形の対称性が無くなり、1周期分の波
形を計算しなければならないという問題点があった。
合成方式の楽音波形発生回路において、各高調波の位相
が全て揃っていれば、波形の対称性を利用して、基本波
の半周期分の波形を計算すればよいことは以前から知ら
れていた。しかし、各高調波ごとに位相偏移を制御する
ようにすると、波形の対称性が無くなり、1周期分の波
形を計算しなければならないという問題点があった。
【0006】 本発明の目的は、前記のような従来技術
の問題点を改良し、サイン合成方式の波形発生装置にお
いて、各高調波ごとに位相偏移を制御するようにして
も、波形の計算時間を短縮することが可能なサイン合成
方式およびこれによる楽音波形発生装置ならびに電子楽
器を提供することを目的とする。
の問題点を改良し、サイン合成方式の波形発生装置にお
いて、各高調波ごとに位相偏移を制御するようにして
も、波形の計算時間を短縮することが可能なサイン合成
方式およびこれによる楽音波形発生装置ならびに電子楽
器を提供することを目的とする。
【0007】
【課題を解決するための手段】本発明は、サイン合成方
式の楽音波形発生手段を持つ電子楽器において、楽音信
号の基本波の各位相に対応する基本波および各高調波振
幅データを順次発生する発生手段と、発生手段から発生
される偶数倍高調波のみの振幅データを累算する第1の
累算手段と、基本波および奇数倍高調波のみの振幅デー
タを累算する第2の累算手段と、第1の累算手段の出力
と第2の累算手段の出力とを加算することにより第1の
波形値を出力する加算手段と、第1の累算手段の出力か
ら第2の累算手段の出力を減算することにより第2の波
形値を出力する減算手段とを備えている。
式の楽音波形発生手段を持つ電子楽器において、楽音信
号の基本波の各位相に対応する基本波および各高調波振
幅データを順次発生する発生手段と、発生手段から発生
される偶数倍高調波のみの振幅データを累算する第1の
累算手段と、基本波および奇数倍高調波のみの振幅デー
タを累算する第2の累算手段と、第1の累算手段の出力
と第2の累算手段の出力とを加算することにより第1の
波形値を出力する加算手段と、第1の累算手段の出力か
ら第2の累算手段の出力を減算することにより第2の波
形値を出力する減算手段とを備えている。
【0008】 そして、さらに波形記憶手段と、第1の
波形値を、波形記憶手段の楽音の基本波の位相に相当す
る番地に書き込むと共に、第2の波形値を、楽音の基本
波の位相に対して180度(基本波の半周期)異なる位
相に相当する番地に書き込む書き込み手段と、波形記憶
手段に記憶された波形データに基づき楽音を発生する楽
音発生手段とを備えたことを特徴とする。さらに本発明
は楽音信号の基本波に対してそれぞれが所望の位相偏差
を有する、基本波および各高調波の振幅データを順次発
生する段階と、前記の順次発生される振幅データのうち
の偶数倍高調波のみの振幅データを累算して第1の累算
値を得る段階と、前記振幅データのうちの基本波および
奇数倍高調波の振幅データを累算して第2の累算値を得
る段階と、前記第1および第2の累算値を加算して求め
た第1の波形値を、サイン合成波の基本波の位相におけ
る波形値として出力する段階と、前記第1の累算値から
前記第2の累算値を減算して求めた第2の波形値を、前
記サイン合成波の基本波の前記位相から半周期離れた位
相点における波形値として出力する段階とを具備した点
に特長がある。
波形値を、波形記憶手段の楽音の基本波の位相に相当す
る番地に書き込むと共に、第2の波形値を、楽音の基本
波の位相に対して180度(基本波の半周期)異なる位
相に相当する番地に書き込む書き込み手段と、波形記憶
手段に記憶された波形データに基づき楽音を発生する楽
音発生手段とを備えたことを特徴とする。さらに本発明
は楽音信号の基本波に対してそれぞれが所望の位相偏差
を有する、基本波および各高調波の振幅データを順次発
生する段階と、前記の順次発生される振幅データのうち
の偶数倍高調波のみの振幅データを累算して第1の累算
値を得る段階と、前記振幅データのうちの基本波および
奇数倍高調波の振幅データを累算して第2の累算値を得
る段階と、前記第1および第2の累算値を加算して求め
た第1の波形値を、サイン合成波の基本波の位相におけ
る波形値として出力する段階と、前記第1の累算値から
前記第2の累算値を減算して求めた第2の波形値を、前
記サイン合成波の基本波の前記位相から半周期離れた位
相点における波形値として出力する段階とを具備した点
に特長がある。
【0009】
【作用】本発明はこのような手段により、各高調波ごと
に位相偏移を制御するようにしても、波形の計算時間が
基本波の半周期分でよく、計算時間を短縮することが可
能となる。
に位相偏移を制御するようにしても、波形の計算時間が
基本波の半周期分でよく、計算時間を短縮することが可
能となる。
【0010】
【実施例】以下、本発明の一実施例を図面を参照して詳
細に説明する。図1は一実施例である電子楽器のハード
ウェア構成を表すブロック図である。CPU1はキーア
サイン、発音制御など電子楽器全体の制御を行う。RO
M2には、制御に必要なプログラム、及び音色毎の高調
波係数、位相偏移データ、エンベロープデータ等のデー
タが格納されている。
細に説明する。図1は一実施例である電子楽器のハード
ウェア構成を表すブロック図である。CPU1はキーア
サイン、発音制御など電子楽器全体の制御を行う。RO
M2には、制御に必要なプログラム、及び音色毎の高調
波係数、位相偏移データ、エンベロープデータ等のデー
タが格納されている。
【0011】RAM3には、音色、テンポ、ボリューム
等のパネル設定情報、楽器内の各種制御データあるいは
自動演奏データ等が記憶される。またその少なくとも一
部はバッテリーバックアップされ、電源を切ってもパネ
ルからセットされた音色情報等を保持することができる
ように構成されている。キーボード部4は、キーボー
ド、およびCPU1の制御によりキーボードの複数のキ
ースイッチをスキャンする回路から成る。
等のパネル設定情報、楽器内の各種制御データあるいは
自動演奏データ等が記憶される。またその少なくとも一
部はバッテリーバックアップされ、電源を切ってもパネ
ルからセットされた音色情報等を保持することができる
ように構成されている。キーボード部4は、キーボー
ド、およびCPU1の制御によりキーボードの複数のキ
ースイッチをスキャンする回路から成る。
【0012】パネル部5は、操作スイッチ、ボリューム
およびLCDあるいはLED等の表示器を備えたパネル
と、CPU1の制御によりパネルのスイッチをスキャン
するパネルスキャン回路、表示器のドライブ回路から成
る。
およびLCDあるいはLED等の表示器を備えたパネル
と、CPU1の制御によりパネルのスイッチをスキャン
するパネルスキャン回路、表示器のドライブ回路から成
る。
【0013】楽音発生部6は詳細は後述するが、サイン
合成方式によって所望の音色の波形情報を作成し、この
波形情報をRAMに記憶して、波形読み出し方式によっ
て鍵盤に対応した音高のデジタル楽音信号を発生するも
のである。また音像効果回路、残響効果回路等も含まれ
る。D/A変換器7は全てのチャネルのデジタル楽音信
号を加算、合成し、該信号をD/A変換する。アナログ
信号処理部8はアナログ楽音信号に対して雑音除去のた
めのフィルタ処理を施す回路である。
合成方式によって所望の音色の波形情報を作成し、この
波形情報をRAMに記憶して、波形読み出し方式によっ
て鍵盤に対応した音高のデジタル楽音信号を発生するも
のである。また音像効果回路、残響効果回路等も含まれ
る。D/A変換器7は全てのチャネルのデジタル楽音信
号を加算、合成し、該信号をD/A変換する。アナログ
信号処理部8はアナログ楽音信号に対して雑音除去のた
めのフィルタ処理を施す回路である。
【0014】アンプ9は、1個または複数個のスピーカ
10を駆動するために楽音信号を増幅する。バス11は
楽器内の各回路を接続している。なお楽音発生部から左
右2系統のステレオ信号を出力するように構成し、D/
A変換器7からスピーカ10までをそれぞれ2系統設け
てもよい。またこの他に、MIDIインターフェース回
路等を設けてもよい。
10を駆動するために楽音信号を増幅する。バス11は
楽器内の各回路を接続している。なお楽音発生部から左
右2系統のステレオ信号を出力するように構成し、D/
A変換器7からスピーカ10までをそれぞれ2系統設け
てもよい。またこの他に、MIDIインターフェース回
路等を設けてもよい。
【0015】図2は、図1の楽音発生回路6の内部構成
を示すブロック図である。実行制御回路20は、楽音発
生部6の動作を規定するシステムカウンタを内蔵してお
り、クロック、アドレス信号あるいは補間用信号等の各
種制御信号を発生する。またCPU1と以下に述べる各
音源回路とのインターフェース回路も含み、この回路の
中にはデータのやり取りのためのバッファメモリを有す
る。
を示すブロック図である。実行制御回路20は、楽音発
生部6の動作を規定するシステムカウンタを内蔵してお
り、クロック、アドレス信号あるいは補間用信号等の各
種制御信号を発生する。またCPU1と以下に述べる各
音源回路とのインターフェース回路も含み、この回路の
中にはデータのやり取りのためのバッファメモリを有す
る。
【0016】高調波情報発生部21は、詳細は後述する
が、サイン合成方式の各高調波毎のエンベロープ情報、
位相偏移情報を発生し、つぎの波形計算部22に転送す
るために内蔵するバッファメモリ(後述する高調波メモ
リ36)に書き込む。
が、サイン合成方式の各高調波毎のエンベロープ情報、
位相偏移情報を発生し、つぎの波形計算部22に転送す
るために内蔵するバッファメモリ(後述する高調波メモ
リ36)に書き込む。
【0017】波形計算部22は、やはり詳細は後述する
が、前記バッファメモリから各高調波のエンベロープ情
報、位相偏移情報を読み出し、各高調波毎の振幅情報を
求め、さらに該振幅情報を各楽音毎に累算して、各楽音
毎の波形情報を出力する。この波形の演算は実時間では
なく、例えば約8ミリ秒といった周期で波形メモリ23
の複数の波形データが更新される。
が、前記バッファメモリから各高調波のエンベロープ情
報、位相偏移情報を読み出し、各高調波毎の振幅情報を
求め、さらに該振幅情報を各楽音毎に累算して、各楽音
毎の波形情報を出力する。この波形の演算は実時間では
なく、例えば約8ミリ秒といった周期で波形メモリ23
の複数の波形データが更新される。
【0018】波形メモリ23は、図15(d)に示すよ
うに、3つの領域A、B、Cから成る合成波形記憶用の
波形メモリであり、各領域は複数(例えば16チャネ
ル)の楽音発生チャネル用の領域に分かれている。各チ
ャネルの領域には、波形計算部22から1周期分の楽音
波形データ(例えば512サンプル点)が書き込まれ
る。
うに、3つの領域A、B、Cから成る合成波形記憶用の
波形メモリであり、各領域は複数(例えば16チャネ
ル)の楽音発生チャネル用の領域に分かれている。各チ
ャネルの領域には、波形計算部22から1周期分の楽音
波形データ(例えば512サンプル点)が書き込まれ
る。
【0019】A領域の各チャネル領域に波形計算部22
から波形データが書き込まれているときに、B、C領域
からは前々回、前回に書き込まれた波形データが読み出
される。2つの領域から波形を読み出すのは、波形切り
替え時に振幅値が急激に変化するのを防ぐために、後段
の波形補間回路26によって補間演算を行うためであ
る。
から波形データが書き込まれているときに、B、C領域
からは前々回、前回に書き込まれた波形データが読み出
される。2つの領域から波形を読み出すのは、波形切り
替え時に振幅値が急激に変化するのを防ぐために、後段
の波形補間回路26によって補間演算を行うためであ
る。
【0020】A領域の波形書き込みが完了すると、書き
込みと読み出しの領域が切り替えられ、今度は波形デー
タがB領域に書き込まれ、C、A領域から読み出され
る。書き込み等の制御信号は実行制御回路20から供給
される。
込みと読み出しの領域が切り替えられ、今度は波形デー
タがB領域に書き込まれ、C、A領域から読み出され
る。書き込み等の制御信号は実行制御回路20から供給
される。
【0021】波形読み出し回路24は、通常の波形読み
出し方式の回路と同様の構成のものであり、押下された
キーに対応した、所望とする楽音周波数に応じたアドレ
ス間隔で波形メモリから波形データを読み出すためのア
ドレス信号を発生する。セレクタ25は、実行制御回路
20からの書き込みアドレスと波形読み出し回路24か
らの読み出しアドレスとを、実行制御回路20からの制
御信号により切り替え、波形メモリ23にアドレス信号
を供給する。
出し方式の回路と同様の構成のものであり、押下された
キーに対応した、所望とする楽音周波数に応じたアドレ
ス間隔で波形メモリから波形データを読み出すためのア
ドレス信号を発生する。セレクタ25は、実行制御回路
20からの書き込みアドレスと波形読み出し回路24か
らの読み出しアドレスとを、実行制御回路20からの制
御信号により切り替え、波形メモリ23にアドレス信号
を供給する。
【0022】波形補間回路26は、前記したように、波
形データの切り替え時に波形値が急激に変化しないよう
に、波形メモリ23の現在書き込まれている領域以外の
2つの領域から同時に波形データを読み出し、補間演算
を行って波形データを出力する。
形データの切り替え時に波形値が急激に変化しないよう
に、波形メモリ23の現在書き込まれている領域以外の
2つの領域から同時に波形データを読み出し、補間演算
を行って波形データを出力する。
【0023】補間の仕方としては、例えば以下のような
方式が採用できる。まず波形の更新周期を16のタイム
スロットに分割する。今、領域Bの書き込みが終了し、
領域Cへの書き込みが開始されたものとすると、この時
点(最初のタイムスロット)での出力波形データDは、
D=(16/16)An+(0/16)Bn となる。
ここで、An、BnはそれぞれA、B領域から読み出さ
れた波形データである。
方式が採用できる。まず波形の更新周期を16のタイム
スロットに分割する。今、領域Bの書き込みが終了し、
領域Cへの書き込みが開始されたものとすると、この時
点(最初のタイムスロット)での出力波形データDは、
D=(16/16)An+(0/16)Bn となる。
ここで、An、BnはそれぞれA、B領域から読み出さ
れた波形データである。
【0024】そして、次のタイムスロットでは、D=
(15/16)An+(1/16)Bn というよう
に、徐々にA領域のデータの重みが減少し、B領域の波
形データの重みが増加していく。そして、最後のタイム
スロットでは、D=(1/16)An+(15/16)
Bn となる。
(15/16)An+(1/16)Bn というよう
に、徐々にA領域のデータの重みが減少し、B領域の波
形データの重みが増加していく。そして、最後のタイム
スロットでは、D=(1/16)An+(15/16)
Bn となる。
【0025】領域Cへの書き込みが終了し、領域の切り
替えが行われると、読み出し領域がB、Cとなり、最初
のタイムスロットの出力は、D=(0/16)Cn+
(16/16)Bnとなる。すると今度は、徐々にB領
域のデータの重みが減少し、C領域の波形データの重み
が増加していく。波形補間回路26は以上のような補間
演算を行い、徐々に変化する波形データを出力する。
替えが行われると、読み出し領域がB、Cとなり、最初
のタイムスロットの出力は、D=(0/16)Cn+
(16/16)Bnとなる。すると今度は、徐々にB領
域のデータの重みが減少し、C領域の波形データの重み
が増加していく。波形補間回路26は以上のような補間
演算を行い、徐々に変化する波形データを出力する。
【0026】エンベロープ発生器27は、詳細は後述す
るが、音色、押鍵の強さ等に従ってCPU1がセットし
たデータに基づき、楽音波形のエンベロープ情報を発生
する。乗算器28は波形補間回路26から出力された波
形情報とエンベロープ発生器27から出力されるエンベ
ロープ情報とを乗算し、デジタル楽音信号を出力する。
るが、音色、押鍵の強さ等に従ってCPU1がセットし
たデータに基づき、楽音波形のエンベロープ情報を発生
する。乗算器28は波形補間回路26から出力された波
形情報とエンベロープ発生器27から出力されるエンベ
ロープ情報とを乗算し、デジタル楽音信号を出力する。
【0027】楽音発生部6は波形メモリ23、波形読み
出し回路24、エンベロープ発生器27、乗算器28に
よって、通常の波形読み出し方式の楽音信号発生回路と
同様の機能を有しており、従って波形メモリの一部を、
波形データを記憶したROM等により構成することによ
り、チャネル毎にサイン合成方式の楽音信号発生と、P
CM波形読み出し方式の楽音信号発生とを選択すること
も可能である。
出し回路24、エンベロープ発生器27、乗算器28に
よって、通常の波形読み出し方式の楽音信号発生回路と
同様の機能を有しており、従って波形メモリの一部を、
波形データを記憶したROM等により構成することによ
り、チャネル毎にサイン合成方式の楽音信号発生と、P
CM波形読み出し方式の楽音信号発生とを選択すること
も可能である。
【0028】なお、図2の各回路は時分割多重動作によ
って、複数チャネルの独立した楽音信号を発生するよう
に構成されており、以下の実施例においては、チャネル
数を16として説明する。また図示していないが、乗算
器28とD/A変換器7の間に、楽音信号を左右に分配
し、それぞれのレベルを制御する音像効果回路、あるい
は残響効果回路等を挿入してもよい。
って、複数チャネルの独立した楽音信号を発生するよう
に構成されており、以下の実施例においては、チャネル
数を16として説明する。また図示していないが、乗算
器28とD/A変換器7の間に、楽音信号を左右に分配
し、それぞれのレベルを制御する音像効果回路、あるい
は残響効果回路等を挿入してもよい。
【0029】<高調波情報発生部>。
【0030】図3は、図2の高調波情報発生部21の内
部構成を示すブロック図である。位相偏移情報発生器3
0、および高調波係数発生器31は同じ回路構成になっ
ており、それぞれ実行制御回路20から出力される高調
波次数信号q(例えば第1次、つまり基本波から第16
次高調波まで)に従って、各高調波次数毎の位相偏移情
報P(後述するサイン波形メモリにおけるアドレスのオ
フセット量)、および音色に対応した高調波係数情報h
を出力する。
部構成を示すブロック図である。位相偏移情報発生器3
0、および高調波係数発生器31は同じ回路構成になっ
ており、それぞれ実行制御回路20から出力される高調
波次数信号q(例えば第1次、つまり基本波から第16
次高調波まで)に従って、各高調波次数毎の位相偏移情
報P(後述するサイン波形メモリにおけるアドレスのオ
フセット量)、および音色に対応した高調波係数情報h
を出力する。
【0031】なお詳細は後述するが、ROM2内には、
ある音色のある音域毎あるいはタッチ強度毎に基準とな
る位相偏移および高調波係数データを記憶しておき、各
発生器内での補間演算によって特定の音高あるいはタッ
チ強度に対応したデータを出力する構成になっている。
ある音色のある音域毎あるいはタッチ強度毎に基準とな
る位相偏移および高調波係数データを記憶しておき、各
発生器内での補間演算によって特定の音高あるいはタッ
チ強度に対応したデータを出力する構成になっている。
【0032】フォルマント係数発生器32は、詳細は後
述するが、例えば音色および音高に対応して、高調波係
数hを補正するためのフォルマント係数FSを発生す
る。乗算器33は高調波係数hとフォルマント係数FS
とを乗算する。
述するが、例えば音色および音高に対応して、高調波係
数hを補正するためのフォルマント係数FSを発生す
る。乗算器33は高調波係数hとフォルマント係数FS
とを乗算する。
【0033】高調波エンベロープ発生器34は、やはり
詳細は後述するが、各高調波毎のエンベロープを制御す
るための高調波エンベロープ信号Eを発生する。乗算器
35は、フォルマント係数FSによって補正された高調
波係数hと、高調波エンベロープ信号Eとを乗算する。
この回路により、各高調波毎の係数に独立して時間的変
化をつけることができ、発音中に楽音の音色を徐々に変
化させることが可能となる。
詳細は後述するが、各高調波毎のエンベロープを制御す
るための高調波エンベロープ信号Eを発生する。乗算器
35は、フォルマント係数FSによって補正された高調
波係数hと、高調波エンベロープ信号Eとを乗算する。
この回路により、各高調波毎の係数に独立して時間的変
化をつけることができ、発音中に楽音の音色を徐々に変
化させることが可能となる。
【0034】高調波係数発生器31から乗算器35まで
の回路により、フォルマント特性によって補正され、各
高調波毎に時間変化を付けた、例えば各チャネル毎の基
本波から第16次高調波までの高調波係数データHが得
られる。
の回路により、フォルマント特性によって補正され、各
高調波毎に時間変化を付けた、例えば各チャネル毎の基
本波から第16次高調波までの高調波係数データHが得
られる。
【0035】高調波メモリ36は、図15(c)に示す
ように、2つの領域A、Bから成り、各領域は例えば1
チャネル分の1次から16次までの各高調波の領域に分
かれている。各高調波の領域には、各高調波毎の位相偏
移情報Pと高調波係数Hとが書き込まれる。
ように、2つの領域A、Bから成り、各領域は例えば1
チャネル分の1次から16次までの各高調波の領域に分
かれている。各高調波の領域には、各高調波毎の位相偏
移情報Pと高調波係数Hとが書き込まれる。
【0036】A領域の各高調波領域に位相偏移および高
調波係数データが書き込まれているときに、B領域から
は前回書き込まれた1チャネル分のデータが波形計算部
22に読み出されており、一方の領域の書き込みが完了
すると、書き込みと読み出しの領域が切り替えられる。
セレクタ37は実行制御回路20からの書き込みアドレ
スWAおよび読み出しアドレスRAを、やはり実行制御
回路20からの制御信号によって切り替え、高調波メモ
リ36にアドレス信号を供給する。
調波係数データが書き込まれているときに、B領域から
は前回書き込まれた1チャネル分のデータが波形計算部
22に読み出されており、一方の領域の書き込みが完了
すると、書き込みと読み出しの領域が切り替えられる。
セレクタ37は実行制御回路20からの書き込みアドレ
スWAおよび読み出しアドレスRAを、やはり実行制御
回路20からの制御信号によって切り替え、高調波メモ
リ36にアドレス信号を供給する。
【0037】<波形計算部>図4は、図2の波形計算部
22の内部構成を示すブロック図である。アキュムレー
タ40は実行制御回路20からの制御信号に基づいて、
各高調波の位相情報を順次発生する。この位相情報は、
サイン波形メモリ42から各次数の高調波の各サンプル
点(位相点)の振幅値を読み出すためのアドレス信号と
なる。
22の内部構成を示すブロック図である。アキュムレー
タ40は実行制御回路20からの制御信号に基づいて、
各高調波の位相情報を順次発生する。この位相情報は、
サイン波形メモリ42から各次数の高調波の各サンプル
点(位相点)の振幅値を読み出すためのアドレス信号と
なる。
【0038】図5(a)はアキュムレータ40の内部構
成を示すブロック図である。加算器401は実行制御回
路20から入力されるワード番号WN(基本波の位相情
報に相当する)と、アンドゲート403の出力とを加算
する。ラッチ402は、各高調波の計算周期毎に、ラッ
チパルスにより加算器401の出力をラッチする。アン
ドゲート403は、各ワード番号の計算期間の内の第1
高調波、つまり基本波の計算期間のみ0となり、他の期
間は1である制御信号と、ラッチ402の出力との論理
積を出力する。
成を示すブロック図である。加算器401は実行制御回
路20から入力されるワード番号WN(基本波の位相情
報に相当する)と、アンドゲート403の出力とを加算
する。ラッチ402は、各高調波の計算周期毎に、ラッ
チパルスにより加算器401の出力をラッチする。アン
ドゲート403は、各ワード番号の計算期間の内の第1
高調波、つまり基本波の計算期間のみ0となり、他の期
間は1である制御信号と、ラッチ402の出力との論理
積を出力する。
【0039】図5(b)はワード番号WNと高調波次数
qに対するラッチ402の出力信号を表す図である。例
えばワード番号2の計算期間においては、まず高調波次
数qが1の期間にはアンドゲート403からは0が出力
されているので、ラッチ402にはワード番号がそのま
まラッチされる。
qに対するラッチ402の出力信号を表す図である。例
えばワード番号2の計算期間においては、まず高調波次
数qが1の期間にはアンドゲート403からは0が出力
されているので、ラッチ402にはワード番号がそのま
まラッチされる。
【0040】つぎの高調波次数qが2の期間において
は、アンドゲート403の制御信号は1であり、アンド
ゲート403からはラッチ402の内容が出力されてい
る。従って加算器401の出力にはワード番号の2倍の
値が出力され、該値がラッチされる。このように、順次
ワード番号の2倍、3倍、4倍の値が出力される。これ
らの値は各高調波の位相情報に相当する。
は、アンドゲート403の制御信号は1であり、アンド
ゲート403からはラッチ402の内容が出力されてい
る。従って加算器401の出力にはワード番号の2倍の
値が出力され、該値がラッチされる。このように、順次
ワード番号の2倍、3倍、4倍の値が出力される。これ
らの値は各高調波の位相情報に相当する。
【0041】なお、後述するサイン波形メモリ42が、
例えば1周期分として512サンプル点(アドレス9ビ
ット)のデータを記憶している場合には、加算器40
1、およびラッチ402も9ビット分あればよく、オー
バーフローしたビットは無視される。また、ワード番号
WNは、後述するように半周期分の255まであればよ
い。
例えば1周期分として512サンプル点(アドレス9ビ
ット)のデータを記憶している場合には、加算器40
1、およびラッチ402も9ビット分あればよく、オー
バーフローしたビットは無視される。また、ワード番号
WNは、後述するように半周期分の255まであればよ
い。
【0042】図4に戻って、加算器41は、各高調波毎
に位相情報であるアキュムレータ40の出力アドレス信
号と、高調波メモリ36から読み出された位相偏移情報
Pとを加算する。そして加算出力アドレス信号によっ
て、サイン波形メモリ42から各高調波に対応した振幅
情報を読み出す。
に位相情報であるアキュムレータ40の出力アドレス信
号と、高調波メモリ36から読み出された位相偏移情報
Pとを加算する。そして加算出力アドレス信号によっ
て、サイン波形メモリ42から各高調波に対応した振幅
情報を読み出す。
【0043】サイン波形メモリ42は、サイン波形の例
えば512のサンプル点毎の振幅値データを記憶してい
るメモリであり、1周期分のデータを記憶してもよい
が、波形の対称性を利用して、1/2あるいは1/4周
期分のデータを記憶しておき、アドレスおよび読み出し
データの処理により、1周期分のデータを得るようにす
ることもできる。
えば512のサンプル点毎の振幅値データを記憶してい
るメモリであり、1周期分のデータを記憶してもよい
が、波形の対称性を利用して、1/2あるいは1/4周
期分のデータを記憶しておき、アドレスおよび読み出し
データの処理により、1周期分のデータを得るようにす
ることもできる。
【0044】乗算器43は、サイン波形メモリ42から
読み出された振幅値データと、高調波メモリ36から読
み出された高調波係数Hとを乗算する。従って、乗算器
43の出力には、あるサンプル点における、所望の音
色、及びフォルマントに対応した楽音の第1から第16
次高調波の振幅データが順に得られる。
読み出された振幅値データと、高調波メモリ36から読
み出された高調波係数Hとを乗算する。従って、乗算器
43の出力には、あるサンプル点における、所望の音
色、及びフォルマントに対応した楽音の第1から第16
次高調波の振幅データが順に得られる。
【0045】加算器44からラッチE52までの回路は
高調波振幅値の累算器を形成しており、また1回の累算
によって半周期離れた2つのサンプル点の波形振幅値を
求めることができる構成になっている。そこで、まず1
回の累算によって半周期離れた2つのサンプル点の波形
振幅値を求める方法について説明する。
高調波振幅値の累算器を形成しており、また1回の累算
によって半周期離れた2つのサンプル点の波形振幅値を
求めることができる構成になっている。そこで、まず1
回の累算によって半周期離れた2つのサンプル点の波形
振幅値を求める方法について説明する。
【0046】図16は、位相のずれた奇偶それぞれの高
調波の、2サンプル点の振幅値の求め方を示す概念図で
ある。奇数高調波については、図16(a)に示すよう
に、ある点P1 の振幅値が得られた場合に、基本周期の
半周期先の点P2 の振幅値はP1 の振幅値の正負の符号
を反転したものになる。従って負の数を2の補数表示に
よって処理する場合には、入力データを2の補数に変換
する補数器を通すことによりP2 の振幅値が得られる。
調波の、2サンプル点の振幅値の求め方を示す概念図で
ある。奇数高調波については、図16(a)に示すよう
に、ある点P1 の振幅値が得られた場合に、基本周期の
半周期先の点P2 の振幅値はP1 の振幅値の正負の符号
を反転したものになる。従って負の数を2の補数表示に
よって処理する場合には、入力データを2の補数に変換
する補数器を通すことによりP2 の振幅値が得られる。
【0047】偶数高調波については、図16(b)に示
すように、ある点P1 の振幅値が得られた場合に、基本
周期の半周期先の点P2 の振幅値はP1 の振幅値と等し
くなる。従って、2サンプル点における、1から16ま
での高調波の振幅の累算値を求めるためには、つぎのよ
うな演算を行う。
すように、ある点P1 の振幅値が得られた場合に、基本
周期の半周期先の点P2 の振幅値はP1 の振幅値と等し
くなる。従って、2サンプル点における、1から16ま
での高調波の振幅の累算値を求めるためには、つぎのよ
うな演算を行う。
【0048】 まず、奇数高調波のみの累算値と偶数高
調波のみの累算値とを求める。つぎに、両累算値を加算
することにより、点P1における累算値を求める。さら
に偶数高調波の累算値に奇数高調波累算値を補数変換し
たものを加算することにより、換言すれば、偶数高調波
の累算値から奇数高調波累算値を減算することにより、
点P2の累算値を得る。このような演算処理を行うこと
により、位相のずれた高調波による波形データを半分の
サンプル点の演算により求めることができる。
調波のみの累算値とを求める。つぎに、両累算値を加算
することにより、点P1における累算値を求める。さら
に偶数高調波の累算値に奇数高調波累算値を補数変換し
たものを加算することにより、換言すれば、偶数高調波
の累算値から奇数高調波累算値を減算することにより、
点P2の累算値を得る。このような演算処理を行うこと
により、位相のずれた高調波による波形データを半分の
サンプル点の演算により求めることができる。
【0049】図4に戻って、加算器44はアンド・オア
回路45の出力と、乗算器43の出力とを加算すること
によって順次累算を行っていく。ラッチA46はラッチ
信号WGL1に従い、1、3、5…など奇数番目の高調
波振幅データ累算値を順次ラッチしていく。ラッチB4
7はラッチ信号WGL2に従い、2、4、6…など偶数
番目の高調波振幅データ累算値を順次ラッチしていく。
アンド・オア回路45は後述する制御信号WGG1、W
GG2に従ってラッチA46またはラッチB47の出力
信号を選択し、加算器44に供給する。
回路45の出力と、乗算器43の出力とを加算すること
によって順次累算を行っていく。ラッチA46はラッチ
信号WGL1に従い、1、3、5…など奇数番目の高調
波振幅データ累算値を順次ラッチしていく。ラッチB4
7はラッチ信号WGL2に従い、2、4、6…など偶数
番目の高調波振幅データ累算値を順次ラッチしていく。
アンド・オア回路45は後述する制御信号WGG1、W
GG2に従ってラッチA46またはラッチB47の出力
信号を選択し、加算器44に供給する。
【0050】動作タイミングは後述するが、乗算器43
からあるチャネルの16高調波までの振幅値が出力され
た時点では、ラッチA46には1から15までの奇数番
目の高調波振幅データの累算値が保持されており、また
ラッチB47には2から16までの偶数番目の高調波振
幅データの累算値が保持されている。
からあるチャネルの16高調波までの振幅値が出力され
た時点では、ラッチA46には1から15までの奇数番
目の高調波振幅データの累算値が保持されており、また
ラッチB47には2から16までの偶数番目の高調波振
幅データの累算値が保持されている。
【0051】ラッチC48、ラッチD49はそれぞれ、
上記奇数および偶数高調波の累算値をそれぞれのラッチ
信号WGL3、WGL4に従ってラッチする。2の補数
器50は制御信号CCSが0の場合には入力信号をその
まま通過させ、CCSが1の場合には入力信号を2の補
数表現に変換(0と1を反転して1を加算)して出力す
る。加算器51はラッチD49の出力と2の補数器50
の出力とを加算する。
上記奇数および偶数高調波の累算値をそれぞれのラッチ
信号WGL3、WGL4に従ってラッチする。2の補数
器50は制御信号CCSが0の場合には入力信号をその
まま通過させ、CCSが1の場合には入力信号を2の補
数表現に変換(0と1を反転して1を加算)して出力す
る。加算器51はラッチD49の出力と2の補数器50
の出力とを加算する。
【0052】ラッチE52は、まずCCSが0の期間に
おいて、加算器51の出力をラッチ信号WGL5に従っ
てラッチし、その出力データが波形メモリに書き込まれ
る。次に、ラッチE52は、CCSが1の期間におい
て、加算器51の出力をラッチ信号WGL5に従ってラ
ッチし、その出力データは波形メモリの半周期離れたサ
ンプル点に対応するアドレスに書き込まれる。このよう
な構成により、例えば256回の振幅値演算により、5
12サンプル点を有する波形メモリへの書き込みが完了
する。
おいて、加算器51の出力をラッチ信号WGL5に従っ
てラッチし、その出力データが波形メモリに書き込まれ
る。次に、ラッチE52は、CCSが1の期間におい
て、加算器51の出力をラッチ信号WGL5に従ってラ
ッチし、その出力データは波形メモリの半周期離れたサ
ンプル点に対応するアドレスに書き込まれる。このよう
な構成により、例えば256回の振幅値演算により、5
12サンプル点を有する波形メモリへの書き込みが完了
する。
【0053】<位相偏移情報発生器>。
【0054】位相偏移情報発生器30、及び後述する高
調波係数発生器31は同じ回路構成を有しており、これ
らは、音域毎あるいはタッチ強度毎の基準データを基
に、必要とする音高あるいはタッチ強度の位相偏移およ
び高調波係数データを生成する補間回路を形成してい
る。
調波係数発生器31は同じ回路構成を有しており、これ
らは、音域毎あるいはタッチ強度毎の基準データを基
に、必要とする音高あるいはタッチ強度の位相偏移およ
び高調波係数データを生成する補間回路を形成してい
る。
【0055】図6は位相偏移情報発生器30の内部構成
を示すブロック図である。第1位相偏移情報メモリ30
1、及び第2位相偏移情報メモリ302は、共に図15
(b)に示すようなメモリマップを有している。第1位
相偏移情報メモリ301には、CPU1から実行制御回
路20を介して、押下されたキーを含む音域の、あるい
は押下されたキーの強度範囲の基準位相偏移データPa
が書き込まれる。
を示すブロック図である。第1位相偏移情報メモリ30
1、及び第2位相偏移情報メモリ302は、共に図15
(b)に示すようなメモリマップを有している。第1位
相偏移情報メモリ301には、CPU1から実行制御回
路20を介して、押下されたキーを含む音域の、あるい
は押下されたキーの強度範囲の基準位相偏移データPa
が書き込まれる。
【0056】この基準データは、例えば該音域の中の最
も低い音高、あるいは該強度範囲の中の最も弱い強度に
対応するデータである。第2位相偏移情報メモリ302
には、一つ上の音域あるいは強度の基準位相偏移データ
Pbが書き込まれる。これらのデータは実行制御回路2
0からのチャネル番号C、高調波次数qをアドレスとし
て読み出される。
も低い音高、あるいは該強度範囲の中の最も弱い強度に
対応するデータである。第2位相偏移情報メモリ302
には、一つ上の音域あるいは強度の基準位相偏移データ
Pbが書き込まれる。これらのデータは実行制御回路2
0からのチャネル番号C、高調波次数qをアドレスとし
て読み出される。
【0057】乗算器303は第1位相偏移情報メモリ3
01の出力Paと、補数器305の出力とを乗算する。
乗算器304は第2位相偏移情報メモリ302の出力P
bとバランス信号BLとを乗算する。補数器305は、
バランス信号BLを2の補数表現に変換し、(1−B
L)を出力する回路である。加算器306は両乗算器3
03、304の出力を加算する。従って、出力位相偏移
情報Pは、下記のようになる。
01の出力Paと、補数器305の出力とを乗算する。
乗算器304は第2位相偏移情報メモリ302の出力P
bとバランス信号BLとを乗算する。補数器305は、
バランス信号BLを2の補数表現に変換し、(1−B
L)を出力する回路である。加算器306は両乗算器3
03、304の出力を加算する。従って、出力位相偏移
情報Pは、下記のようになる。
【0058】P=(1−BL)Pa+BL・Pb 。
【0059】ここでバランス信号BLについて説明す
る。バランス信号BLは、位相偏移情報発生器30、お
よび高調波係数発生器31において補間演算を行う場合
の補間係数信号であり、図8は、例えば実行制御回路2
0内にある音高情報によるバランス信号発生回路の一例
を示すブロック図である。
る。バランス信号BLは、位相偏移情報発生器30、お
よび高調波係数発生器31において補間演算を行う場合
の補間係数信号であり、図8は、例えば実行制御回路2
0内にある音高情報によるバランス信号発生回路の一例
を示すブロック図である。
【0060】入力信号BKNoは図6の第1位相偏移情
報メモリ301あるいは図7の第1高調波係数メモリ3
11にセットされる位相偏移あるいは高調波係数情報に
対応するキーナンバーである。入力信号TKNoは図6
の第2位相偏移情報メモリ302あるいは図7の第2高
調波係数メモリ312にセットされる位相偏移あるいは
高調波係数情報に対応するキーナンバーである。CKN
oは現在押鍵されていて、波形を演算しようとする鍵の
キーナンバーである。
報メモリ301あるいは図7の第1高調波係数メモリ3
11にセットされる位相偏移あるいは高調波係数情報に
対応するキーナンバーである。入力信号TKNoは図6
の第2位相偏移情報メモリ302あるいは図7の第2高
調波係数メモリ312にセットされる位相偏移あるいは
高調波係数情報に対応するキーナンバーである。CKN
oは現在押鍵されていて、波形を演算しようとする鍵の
キーナンバーである。
【0061】加算器70はCKNoからBKNoを減算
する。また加算器71はTKNoからBKNoを減算す
る。割算器72は乗算器70の出力を乗算器71の出力
で割算する。従って割算器72の出力には下記のような
出力PBLが得られる。
する。また加算器71はTKNoからBKNoを減算す
る。割算器72は乗算器70の出力を乗算器71の出力
で割算する。従って割算器72の出力には下記のような
出力PBLが得られる。
【0062】PBL=(CKNo−BKNo)/(TK
No−BKNo) 。
No−BKNo) 。
【0063】BKNoは押下された鍵を含む音域の基準
となるキーナンバーであり、TKNoはそれより1つ上
の音域の基準キーナンバーであるから、BKNo<CK
No<TKNoとなりPBLの範囲は、0≦PBL<1
となる。
となるキーナンバーであり、TKNoはそれより1つ上
の音域の基準キーナンバーであるから、BKNo<CK
No<TKNoとなりPBLの範囲は、0≦PBL<1
となる。
【0064】アドレスデコーダ73はPBLを変換メモ
リ74のアドレスに変換する。変換メモリ74は複数の
メモリ741〜74nからなっており、各メモリには図
8に示すように0から1の範囲において、異なる変化カ
ーブを有するデータが記憶されており、選択された1つ
のメモリからバランス信号BLが出力される。デコーダ
75は、CPU1から音色に基づいて設定されるカーブ
選択信号に基づき、メモリ選択信号を出力する。
リ74のアドレスに変換する。変換メモリ74は複数の
メモリ741〜74nからなっており、各メモリには図
8に示すように0から1の範囲において、異なる変化カ
ーブを有するデータが記憶されており、選択された1つ
のメモリからバランス信号BLが出力される。デコーダ
75は、CPU1から音色に基づいて設定されるカーブ
選択信号に基づき、メモリ選択信号を出力する。
【0065】タッチ強度による補間を行う場合にも、回
路構成は図8のものでよく、入力信号がタッチ強度に替
わるだけである。図8の入力信号のCKTHは押下され
たキーのタッチ強度データであり、BKTHはCKTH
値を含む強度範囲の中の最も弱い強度に対応するデータ
であり、TKTHは一つ上の強度範囲の中の最も弱い強
度に対応するデータである。
路構成は図8のものでよく、入力信号がタッチ強度に替
わるだけである。図8の入力信号のCKTHは押下され
たキーのタッチ強度データであり、BKTHはCKTH
値を含む強度範囲の中の最も弱い強度に対応するデータ
であり、TKTHは一つ上の強度範囲の中の最も弱い強
度に対応するデータである。
【0066】<高調波係数発生器>図7は高調波係数発
生器31の内部構成を示すブロック図である。この回路
は前述したように位相偏移情報発生器30と同じ回路構
成を有しており、音域毎あるいはタッチ強度毎の基準デ
ータを基に、必要とする高調波係数データを生成する補
間回路を形成している。
生器31の内部構成を示すブロック図である。この回路
は前述したように位相偏移情報発生器30と同じ回路構
成を有しており、音域毎あるいはタッチ強度毎の基準デ
ータを基に、必要とする高調波係数データを生成する補
間回路を形成している。
【0067】第1高調波係数メモリ311、及び第2高
調波係数メモリ312は、共に図15(a)に示すよう
なメモリマップを有している。第1高調波係数メモリ3
11には、CPU1から実行制御回路20を介して、指
定された音色の、押下されたキーを含む音域あるいはタ
ッチ強度の基準高調波係数データが書き込まれ、第2高
調波係数メモリ312には、指定された音色の、一つ上
の音域あるいはタッチ強度の基準高調波係数データが書
き込まれる。
調波係数メモリ312は、共に図15(a)に示すよう
なメモリマップを有している。第1高調波係数メモリ3
11には、CPU1から実行制御回路20を介して、指
定された音色の、押下されたキーを含む音域あるいはタ
ッチ強度の基準高調波係数データが書き込まれ、第2高
調波係数メモリ312には、指定された音色の、一つ上
の音域あるいはタッチ強度の基準高調波係数データが書
き込まれる。
【0068】313、314は乗算器、315はBLを
補数変換し、さらに(1−BL)を出力する補数器、3
16は加算器である。この回路の動作は前述した位相偏
移情報発生器と同じであり、バランス信号BLに基づき
補間された高調波係数データhを出力する。
補数変換し、さらに(1−BL)を出力する補数器、3
16は加算器である。この回路の動作は前述した位相偏
移情報発生器と同じであり、バランス信号BLに基づき
補間された高調波係数データhを出力する。
【0069】なお、上記位相偏移情報発生器30、およ
び高調波係数発生器31の使用法としては、上記したよ
うな補間の他に、効果付加回路として以下のような使用
法もある。
び高調波係数発生器31の使用法としては、上記したよ
うな補間の他に、効果付加回路として以下のような使用
法もある。
【0070】例えば、位相偏移情報発生器30および高
調波係数発生器31の第1のメモリ301、311と第
2のメモリ302、312とにそれぞれ異なる音色のデ
ータをセットしておく。そして、BL信号として、例え
ば振幅が0.5を中心に最大0から1の間で変化する5
0Hz以下の正弦波データ(LFO信号)を用いれば、
いわゆるLFO効果をかけることができる。
調波係数発生器31の第1のメモリ301、311と第
2のメモリ302、312とにそれぞれ異なる音色のデ
ータをセットしておく。そして、BL信号として、例え
ば振幅が0.5を中心に最大0から1の間で変化する5
0Hz以下の正弦波データ(LFO信号)を用いれば、
いわゆるLFO効果をかけることができる。
【0071】あるいは、パネル部にホィール(ボリュー
ム)を設け、これを手動で操作すると、0から1の範囲
のデジタル信号を発生するような回路を介して、BL信
号を供給するようにすれば、手動で連続的に音色を変化
させることができる。
ム)を設け、これを手動で操作すると、0から1の範囲
のデジタル信号を発生するような回路を介して、BL信
号を供給するようにすれば、手動で連続的に音色を変化
させることができる。
【0072】従って、位相偏移情報発生器30および高
調波係数発生器31のBL信号入力部に、図8に示すよ
うなBL信号発生回路からの信号、LFO信号発生回路
からの信号、ホィールからの信号等を切り替える回路を
設けるようにしてもよい。
調波係数発生器31のBL信号入力部に、図8に示すよ
うなBL信号発生回路からの信号、LFO信号発生回路
からの信号、ホィールからの信号等を切り替える回路を
設けるようにしてもよい。
【0073】<フォルマント係数発生器>図9は、図3
のフォルマント係数発生器32の内部構成を示すブロッ
ク図である。キーナンバー変換メモリ80は高調波次数
qをキーナンバーHKNoに変換するためのものであ
り、HKNoとqの関係は次式のようになっている。
のフォルマント係数発生器32の内部構成を示すブロッ
ク図である。キーナンバー変換メモリ80は高調波次数
qをキーナンバーHKNoに変換するためのものであ
り、HKNoとqの関係は次式のようになっている。
【0074】HKNo=12・Log2 (q) 。
【0075】加算器81はキーナンバー変換メモリ80
の出力と、押下された鍵のキーナンバーKNoとを加算
する。フォルマントエンベロープ発生器82は、キーの
オン/オフ信号およびキーナンバーによって、経時変化
するエンベロープ信号を発生する。乗算器83はフォル
マントエンベロープ発生器82の出力と、CPU1から
設定されるデプス情報とを乗算する。このデプス(深
さ)情報は、フォルマントエンベロープ信号をフォルマ
ント係数メモリ86の読み出しアドレスにどれだけ作用
させるかを制御する深さ信号である。
の出力と、押下された鍵のキーナンバーKNoとを加算
する。フォルマントエンベロープ発生器82は、キーの
オン/オフ信号およびキーナンバーによって、経時変化
するエンベロープ信号を発生する。乗算器83はフォル
マントエンベロープ発生器82の出力と、CPU1から
設定されるデプス情報とを乗算する。このデプス(深
さ)情報は、フォルマントエンベロープ信号をフォルマ
ント係数メモリ86の読み出しアドレスにどれだけ作用
させるかを制御する深さ信号である。
【0076】加算器84は加算器81の出力と、乗算器
83の出力とを加算する。この出力の整数部Inはアド
レスデコーダ85に入力され、アドレスデコーダ85か
らは、フォルマント係数メモリ86の読み出しアドレス
として、Inおよび(In+1)が順次出力される。
83の出力とを加算する。この出力の整数部Inはアド
レスデコーダ85に入力され、アドレスデコーダ85か
らは、フォルマント係数メモリ86の読み出しアドレス
として、Inおよび(In+1)が順次出力される。
【0077】フォルマント係数メモリ86は、例えば図
12に示すように、キーナンバーに対応してフォルマン
ト係数を記憶しており、アドレスデコーダ85からのア
ドレス信号に従って、フォルマント係数値FnおよびF
n+1を順次出力する。なおこのメモリに複数のフォルマ
ント特性データを記憶しておき、音色、効果などによっ
て選択するようにしてもよい。
12に示すように、キーナンバーに対応してフォルマン
ト係数を記憶しており、アドレスデコーダ85からのア
ドレス信号に従って、フォルマント係数値FnおよびF
n+1を順次出力する。なおこのメモリに複数のフォルマ
ント特性データを記憶しておき、音色、効果などによっ
て選択するようにしてもよい。
【0078】補間器87はフォルマント係数メモリ86
から出力されるフォルマント係数値Fn、Fn+1、およ
び加算器84から出力される小数部frに基づき、次式
のように補間されたフォルマント係数FSを出力する。
から出力されるフォルマント係数値Fn、Fn+1、およ
び加算器84から出力される小数部frに基づき、次式
のように補間されたフォルマント係数FSを出力する。
【0079】FS=Fn+(Fn+1−Fn)・fr 。
【0080】このフォルマント係数発生器32は、高調
波係数発生器31と同期して動作し、高調波係数発生器
31がある高調波次数の高調波係数hを出力するタイミ
ングに合わせて同じ高調波次数のフォルマント係数FS
を出力する。
波係数発生器31と同期して動作し、高調波係数発生器
31がある高調波次数の高調波係数hを出力するタイミ
ングに合わせて同じ高調波次数のフォルマント係数FS
を出力する。
【0081】図12はフォルマント係数発生器32の動
作を説明するための概念図である。図12(a)におい
ては、押下されたキーナンバーがKで示されている。ま
たデプス値を乗算したフォルマントエンベロープが図の
ような波形を発生するように設定されており、現在値が
点Aであるものとする。
作を説明するための概念図である。図12(a)におい
ては、押下されたキーナンバーがKで示されている。ま
たデプス値を乗算したフォルマントエンベロープが図の
ような波形を発生するように設定されており、現在値が
点Aであるものとする。
【0082】この時、加算器84の出力には各高調波次
数qに対応するキーナンバー値が順次得られ、このキー
ナンバー値によって、図12(a)のフォルマント係数
メモリからフォルマント係数が読み出され、更に補間さ
れて図の右側に示すような、各高調波次数に対応したフ
ォルマント係数値FSが得られる。
数qに対応するキーナンバー値が順次得られ、このキー
ナンバー値によって、図12(a)のフォルマント係数
メモリからフォルマント係数が読み出され、更に補間さ
れて図の右側に示すような、各高調波次数に対応したフ
ォルマント係数値FSが得られる。
【0083】時間が経過し、エンベロープ値が例えば図
12(b)の点Bに達すると、キーナンバー値も全体が
上部に移動し、出力されるフォルマント係数値FSも、
図12(b)右側に示すように変化する。デプス値を変
えるとフォルマントエンベロープのレベル(全体の変化
幅)が増減する。
12(b)の点Bに達すると、キーナンバー値も全体が
上部に移動し、出力されるフォルマント係数値FSも、
図12(b)右側に示すように変化する。デプス値を変
えるとフォルマントエンベロープのレベル(全体の変化
幅)が増減する。
【0084】 このように、フォルマントエンベロープ
発生器82のパラメータとデプス値を適当に設定するこ
とにより、周波数軸上で動作するフォルマントフィルタ
ーの特性を経時変化させることができる。
発生器82のパラメータとデプス値を適当に設定するこ
とにより、周波数軸上で動作するフォルマントフィルタ
ーの特性を経時変化させることができる。
【0085】<エンベロープ発生器>図10はエンベロ
ープ発生器の内部構成を示すブロック図である。このエ
ンベロープ発生器は、図2のエンベロープ発生器27、
図3の高調波エンベロープ発生器34、図9のフォルマ
ントエンベロープ発生器82に適用可能なものである。
ープ発生器の内部構成を示すブロック図である。このエ
ンベロープ発生器は、図2のエンベロープ発生器27、
図3の高調波エンベロープ発生器34、図9のフォルマ
ントエンベロープ発生器82に適用可能なものである。
【0086】このエンベロープ発生器は、4つのセグメ
ント(アタック、ディケイ等に対応する期間)を有して
おり、それぞれのセグメントの目標値および、スピード
データ、並びに後述するCN、RS、RTの各フラグを
制御装置(CPU1)から設定することにより、所望の
エンベロープを発生する。
ント(アタック、ディケイ等に対応する期間)を有して
おり、それぞれのセグメントの目標値および、スピード
データ、並びに後述するCN、RS、RTの各フラグを
制御装置(CPU1)から設定することにより、所望の
エンベロープを発生する。
【0087】パラメータ、データメモリ100は、エン
ベロープを発生させるためにCPU1から設定された各
種パラメータ、およびエンベロープ現在値、セグメント
値等を記憶している。ラッチF101は、各演算周期の
初めに、パラメータ、データメモリ100から読み出さ
れたエンベロープ現在値、現在のセグメントRSG1、
0、リピート要求状態RPTをラッチする。
ベロープを発生させるためにCPU1から設定された各
種パラメータ、およびエンベロープ現在値、セグメント
値等を記憶している。ラッチF101は、各演算周期の
初めに、パラメータ、データメモリ100から読み出さ
れたエンベロープ現在値、現在のセグメントRSG1、
0、リピート要求状態RPTをラッチする。
【0088】ラッチG102は、ラッチF101の出力
およびキーオン/オフデータに基づく現在のセグメント
状態ASG0、1に応じてパラメータデータメモリ10
0から読み出された目標値、スピード、コントロールフ
ラグからなるパラメータを保持する。ラッチH103
は、エンベロープリピート時のセグメント2からセグメ
ント1への移行時に使用される場合のために、セグメン
ト2のパラメータ(スピードデータ)を保持する。
およびキーオン/オフデータに基づく現在のセグメント
状態ASG0、1に応じてパラメータデータメモリ10
0から読み出された目標値、スピード、コントロールフ
ラグからなるパラメータを保持する。ラッチH103
は、エンベロープリピート時のセグメント2からセグメ
ント1への移行時に使用される場合のために、セグメン
ト2のパラメータ(スピードデータ)を保持する。
【0089】ゲート104は入力されるゲート信号によ
って、演算回路への現在値の供給を阻止する。セレクタ
C105はゲート123からの信号に応じて、ラッチG
102からのセグメントmのスピードデータか、あるい
はラッチH103からのセグメント2のスピードデータ
を選択して演算回路106に供給する。
って、演算回路への現在値の供給を阻止する。セレクタ
C105はゲート123からの信号に応じて、ラッチG
102からのセグメントmのスピードデータか、あるい
はラッチH103からのセグメント2のスピードデータ
を選択して演算回路106に供給する。
【0090】演算回路106は、ゲート104から供給
されるエンベロープ現在値、ラッチG102から供給さ
れるセグメントmの目標値、セレクタCから供給される
スピードデータに基づいて、次の時点における新たなエ
ンベロープ値を計算し、セレクタD107に出力すると
共に、新たなエンベロープ値が目標値に到達したか、あ
るいは越えた時に到達信号を発生する。なお、このよう
な演算回路は従来から種々のものが提案されており、任
意のものが適用可能であるので、内部の説明は省略す
る。
されるエンベロープ現在値、ラッチG102から供給さ
れるセグメントmの目標値、セレクタCから供給される
スピードデータに基づいて、次の時点における新たなエ
ンベロープ値を計算し、セレクタD107に出力すると
共に、新たなエンベロープ値が目標値に到達したか、あ
るいは越えた時に到達信号を発生する。なお、このよう
な演算回路は従来から種々のものが提案されており、任
意のものが適用可能であるので、内部の説明は省略す
る。
【0091】セレクタD107は到達信号に応じて、未
到達の場合には新たなエンベロープ値を、また到達時に
は目標値を出力する。この出力信号は外部に出力される
と共に、新たなエンベロープ現在値として、パラメー
タ、データメモリ100に書き込まれる。
到達の場合には新たなエンベロープ値を、また到達時に
は目標値を出力する。この出力信号は外部に出力される
と共に、新たなエンベロープ現在値として、パラメー
タ、データメモリ100に書き込まれる。
【0092】以上の回路により、エンベロープ値の演算
が行われるが、つぎにセグメント等の制御回路について
説明する。NANDゲート108はRSG0、1が共に
1(つまりセグメント3:キーオフ状態)であり、かつ
キーオンになった場合に0を出力する。なお、図10に
おいてゲートの入力線と他の線の交点に丸印が付されて
いるものは、これらの線がNANDゲートに入力されて
いることを表している。
が行われるが、つぎにセグメント等の制御回路について
説明する。NANDゲート108はRSG0、1が共に
1(つまりセグメント3:キーオフ状態)であり、かつ
キーオンになった場合に0を出力する。なお、図10に
おいてゲートの入力線と他の線の交点に丸印が付されて
いるものは、これらの線がNANDゲートに入力されて
いることを表している。
【0093】ANDゲート109〜111はNANDゲ
ート108の出力により、キーオン時にセグメントおよ
びリピート要求状態信号を0にする。ANDゲート11
2はキーオフになった時にリピート要求状態信号を0に
する。ORゲート113、114はキーオン時にはAN
Dゲート110、111から出力されるセグメント信号
をそのまま通すが、キーオフ時にはNOT回路115の
出力が1になるため、双方とも出力が1となり、セグメ
ント3を示す。このセグメント信号ASG0、1はパラ
メータデータメモリ100にセグメント信号(アドレス
信号)として供給される。
ート108の出力により、キーオン時にセグメントおよ
びリピート要求状態信号を0にする。ANDゲート11
2はキーオフになった時にリピート要求状態信号を0に
する。ORゲート113、114はキーオン時にはAN
Dゲート110、111から出力されるセグメント信号
をそのまま通すが、キーオフ時にはNOT回路115の
出力が1になるため、双方とも出力が1となり、セグメ
ント3を示す。このセグメント信号ASG0、1はパラ
メータデータメモリ100にセグメント信号(アドレス
信号)として供給される。
【0094】121、122はNOT回路である。AN
Dゲート119は、セグメントが2(ASG0=0、A
SG1=1)であり、リピートフラグRTが1であり、
さらに到達信号が1(到達した)である場合に1を出力
する。またANDゲート120は、セグメントが0か1
で到達信号が1である場合に1を出力する。
Dゲート119は、セグメントが2(ASG0=0、A
SG1=1)であり、リピートフラグRTが1であり、
さらに到達信号が1(到達した)である場合に1を出力
する。またANDゲート120は、セグメントが0か1
で到達信号が1である場合に1を出力する。
【0095】ORゲート118はANDゲート119、
120の出力のいずれかが1である場合に1を出力す
る。ORゲート117はANDゲート112、119の
出力のいずれかが1である場合に1を出力する。加算器
125は、2つの入力A0、1およびB0、1から入力
される2ビットデータを加算し、2ビットの新たなセグ
メント出力WSG0、1を出力する。これらの出力WR
T、WSG0、1は新たなリピート要求状態信号、およ
びセグメント番号として、パラメータ、データメモリ1
00に書き込まれる。
120の出力のいずれかが1である場合に1を出力す
る。ORゲート117はANDゲート112、119の
出力のいずれかが1である場合に1を出力する。加算器
125は、2つの入力A0、1およびB0、1から入力
される2ビットデータを加算し、2ビットの新たなセグ
メント出力WSG0、1を出力する。これらの出力WR
T、WSG0、1は新たなリピート要求状態信号、およ
びセグメント番号として、パラメータ、データメモリ1
00に書き込まれる。
【0096】NOT回路116はNANDゲート108
の出力を反転する。NANDゲート124はNOT回路
の出力と、ラッチG102に保持されるフラグCNが共
に1である場合に0を出力し、ゲート104の出力を0
にする。これは、CNが1の場合に、キーオン時のエン
ベロープ初期値を0にするためである。
の出力を反転する。NANDゲート124はNOT回路
の出力と、ラッチG102に保持されるフラグCNが共
に1である場合に0を出力し、ゲート104の出力を0
にする。これは、CNが1の場合に、キーオン時のエン
ベロープ初期値を0にするためである。
【0097】ANDゲート123は、セグメントが1
(ASG0=1、ASG1=0)であり、フラグRSと
リピート要求状態信号が共に1である場合にセレクタC
105に1を出力し、セグメント1であるにもかかわら
ず、ラッチH103に保持されているセグメント2のス
ピードデータを演算回路106に供給する。
(ASG0=1、ASG1=0)であり、フラグRSと
リピート要求状態信号が共に1である場合にセレクタC
105に1を出力し、セグメント1であるにもかかわら
ず、ラッチH103に保持されているセグメント2のス
ピードデータを演算回路106に供給する。
【0098】次に、セグメント状態の遷移について説明
する。このエンベロープ発生器は3つのフラグCN、R
T、RSを備えている。CNはキーオフ(セグメント
3)からキーオンになった時のエンベロープ初期値を制
御する。RTはキーオンの間にセグメント1とセグメン
ト2を交互に繰り返すモードを選択する。RSはRTが
1の時、セグメント1のスピードデータとしてセグメン
ト2のものを用いるか否かを制御する。
する。このエンベロープ発生器は3つのフラグCN、R
T、RSを備えている。CNはキーオフ(セグメント
3)からキーオンになった時のエンベロープ初期値を制
御する。RTはキーオンの間にセグメント1とセグメン
ト2を交互に繰り返すモードを選択する。RSはRTが
1の時、セグメント1のスピードデータとしてセグメン
ト2のものを用いるか否かを制御する。
【0099】図11は、各コントロールフラグの状態に
よるセグメントの遷移の仕方を示すエンベロープ波形図
である。まず、フラグCNについて説明する。エンベロ
ープ発生器は、発音動作終了時のセグメント3の目標値
をラッチF101に現在値として保持している。
よるセグメントの遷移の仕方を示すエンベロープ波形図
である。まず、フラグCNについて説明する。エンベロ
ープ発生器は、発音動作終了時のセグメント3の目標値
をラッチF101に現在値として保持している。
【0100】フラグCNが0の場合には、キーオン時に
NANDゲート124の出力が1となるので、この値が
現在値として演算回路106に供給される。従って、エ
ンベロープ波形は図11(a)のように、キーオン時の
エンベロープ初期値は前回のセグメント3の目標値とな
る。なお、発音動作中に新たに割り当てた場合には、そ
のときの現在値が初期値となる。
NANDゲート124の出力が1となるので、この値が
現在値として演算回路106に供給される。従って、エ
ンベロープ波形は図11(a)のように、キーオン時の
エンベロープ初期値は前回のセグメント3の目標値とな
る。なお、発音動作中に新たに割り当てた場合には、そ
のときの現在値が初期値となる。
【0101】フラグCNが1の場合には、キーオン時に
NANDゲート124の出力が0となるので、0が現在
値として演算回路106に供給される。従って、エンベ
ロープ波形は図11(b)のように0から開始される。
NANDゲート124の出力が0となるので、0が現在
値として演算回路106に供給される。従って、エンベ
ロープ波形は図11(b)のように0から開始される。
【0102】つぎに、フラグRT、RSについて説明す
る。図11(c)はRT=0、CN=1の場合のエンベ
ロープ波形を示す。フラグRTが0の場合には、AND
ゲート119の出力は0のままである。キーオン時には
ANDゲート112、ORゲート113、114の出力
は全て0である。またANDゲート120の出力も0で
ある。従って加算器125の出力およびOR回路117
の出力は全て0となる。
る。図11(c)はRT=0、CN=1の場合のエンベ
ロープ波形を示す。フラグRTが0の場合には、AND
ゲート119の出力は0のままである。キーオン時には
ANDゲート112、ORゲート113、114の出力
は全て0である。またANDゲート120の出力も0で
ある。従って加算器125の出力およびOR回路117
の出力は全て0となる。
【0103】時間が経過し、演算回路106からの到達
信号が1になると、ANDゲート120の出力が1とな
り、ORゲート118の出力も1となる。従って加算器
の出力もWSG0=1、WSG1=0となり、セグメン
ト1に移行する。
信号が1になると、ANDゲート120の出力が1とな
り、ORゲート118の出力も1となる。従って加算器
の出力もWSG0=1、WSG1=0となり、セグメン
ト1に移行する。
【0104】セグメント信号が1になると、パラメー
タ、データメモリ100からセグメント1の目標値、ス
ピードデータ、フラグが読み出され、ラッチGに保持さ
れる。従って、演算回路は再び新たな目標値に向かって
演算を開始する。
タ、データメモリ100からセグメント1の目標値、ス
ピードデータ、フラグが読み出され、ラッチGに保持さ
れる。従って、演算回路は再び新たな目標値に向かって
演算を開始する。
【0105】更に時間が経過し、演算回路106からの
到達信号が再び1になると、ANDゲート120の出力
が1となり、ORゲート118の出力も1となる。加算
器125のB0、1端子にはセグメント1の信号が入力
されているから、加算器出力はWSG0=0、WSG1
=1となり、セグメント2に移行する。
到達信号が再び1になると、ANDゲート120の出力
が1となり、ORゲート118の出力も1となる。加算
器125のB0、1端子にはセグメント1の信号が入力
されているから、加算器出力はWSG0=0、WSG1
=1となり、セグメント2に移行する。
【0106】この後は、演算回路から到達信号が発生し
てもANDゲート120が1にならないので、セグメン
ト2の状態が続き、現在値がセグメント2の目標値に達
すると、セレクタD107が切り替わり、目標値が継続
して出力される。キーオフになると、OR回路113、
114の出力が共に1になり、セグメント3に移行す
る。
てもANDゲート120が1にならないので、セグメン
ト2の状態が続き、現在値がセグメント2の目標値に達
すると、セレクタD107が切り替わり、目標値が継続
して出力される。キーオフになると、OR回路113、
114の出力が共に1になり、セグメント3に移行す
る。
【0107】図11(d)は、RT=1、RS=0の場
合のエンベロープ波形を示す。RTが1の場合には、セ
グメント2まではRT=0の場合と同様であるが、現在
値がセグメント2の目標値に達した場合にANDゲート
119の出力が1になる。この出力はORゲート117
の出力WRTを1にすると共に、加算器125のA0、
1入力を共に1にする。
合のエンベロープ波形を示す。RTが1の場合には、セ
グメント2まではRT=0の場合と同様であるが、現在
値がセグメント2の目標値に達した場合にANDゲート
119の出力が1になる。この出力はORゲート117
の出力WRTを1にすると共に、加算器125のA0、
1入力を共に1にする。
【0108】加算器のB0、1入力にはセグメント値2
が入力されているから、加算器の出力であるセグメント
値はWSG0=1、WSG1=0、つまりセグメント1
となる。(桁上げは無視する。)従って、エンベロープ
波形は図11(d)に示すように、キーオフまでセグメ
ント1とセグメント2を繰り返す。
が入力されているから、加算器の出力であるセグメント
値はWSG0=1、WSG1=0、つまりセグメント1
となる。(桁上げは無視する。)従って、エンベロープ
波形は図11(d)に示すように、キーオフまでセグメ
ント1とセグメント2を繰り返す。
【0109】図11(e)は、RT=1、RS=1の場
合のエンベロープ波形を示す。RSが1の場合には、や
はりセグメント1とセグメント2を繰り返すが、前記し
た例とはスピードデータが異なる。RTが1の場合に
は、セグメント2の目標値に達した場合に、リピート要
求状態信号RPTが1になり、かつRSが1であると、
ANDゲート123の出力が1になる。すると、セレク
タC105はラッチH103に保持されているセグメン
ト2のスピードデータを演算回路106に出力する。
合のエンベロープ波形を示す。RSが1の場合には、や
はりセグメント1とセグメント2を繰り返すが、前記し
た例とはスピードデータが異なる。RTが1の場合に
は、セグメント2の目標値に達した場合に、リピート要
求状態信号RPTが1になり、かつRSが1であると、
ANDゲート123の出力が1になる。すると、セレク
タC105はラッチH103に保持されているセグメン
ト2のスピードデータを演算回路106に出力する。
【0110】従って、セグメント状態は前述の例と同様
に1に戻るが、演算回路にはセグメント2のスピードデ
ータが供給されることになる。よって、波形は図11
(e)のようにセグメント2と2回目以降のセグメント
1の波形の変化率(傾き)の絶対値が等しくなる。
に1に戻るが、演算回路にはセグメント2のスピードデ
ータが供給されることになる。よって、波形は図11
(e)のようにセグメント2と2回目以降のセグメント
1の波形の変化率(傾き)の絶対値が等しくなる。
【0111】なお、CNフラグはセグメント0で、RS
フラグはセグメント1で、RTフラグはセグメント2で
それぞれ出力されればよいので、各フラグ別個のラッチ
および信号線を設ける必要はなく、1本の信号線を時分
割で用いればよい。またセグメントの数は5以上であっ
てもよい。
フラグはセグメント1で、RTフラグはセグメント2で
それぞれ出力されればよいので、各フラグ別個のラッチ
および信号線を設ける必要はなく、1本の信号線を時分
割で用いればよい。またセグメントの数は5以上であっ
てもよい。
【0112】<動作タイミング>図13(a)は、図2
の高調波情報発生部21および波形計算部22の動作タ
イミングの概略を示すタイムチャートである。図におい
て、チャネル番号は独立して楽音を発生するチャネルの
番号であり、この例では1から16まで存在する。また
Wは書き込み、Rは読み出しを意味する。
の高調波情報発生部21および波形計算部22の動作タ
イミングの概略を示すタイムチャートである。図におい
て、チャネル番号は独立して楽音を発生するチャネルの
番号であり、この例では1から16まで存在する。また
Wは書き込み、Rは読み出しを意味する。
【0113】チャネル1の演算期間においては、図3に
示すような高調波情報発生部21はCPU1から設定さ
れた、高調波係数、位相偏移など各種の情報に基づき、
チャネル1の楽音の各高調波の位相偏移情報Pと高調波
係数Hを計算し、図15(c)に示す高調波メモリ36
の例えばA領域に書き込む。
示すような高調波情報発生部21はCPU1から設定さ
れた、高調波係数、位相偏移など各種の情報に基づき、
チャネル1の楽音の各高調波の位相偏移情報Pと高調波
係数Hを計算し、図15(c)に示す高調波メモリ36
の例えばA領域に書き込む。
【0114】チャネル2の演算期間においては、高調波
情報発生部21は高調波メモリのB領域にチャネル2の
データを書き込み、この間に波形計算部22は領域Aか
らチャネル1のデータを読み出し、前述したような方法
により、波形の各サンプル点の振幅値を求め、波形メモ
リ23に書き込んでいく。
情報発生部21は高調波メモリのB領域にチャネル2の
データを書き込み、この間に波形計算部22は領域Aか
らチャネル1のデータを読み出し、前述したような方法
により、波形の各サンプル点の振幅値を求め、波形メモ
リ23に書き込んでいく。
【0115】このように、高調波メモリ36は2つの領
域を交互に使用して16チャネル分のデータを順次受け
渡していき、波形メモリ23は16チャネル分全ての波
形データが揃ったところで領域を切り替え、波形が更新
される。
域を交互に使用して16チャネル分のデータを順次受け
渡していき、波形メモリ23は16チャネル分全ての波
形データが揃ったところで領域を切り替え、波形が更新
される。
【0116】図13(b)は波形演算部22の動作タイ
ミングの概略を示すタイムチャートである。波形メモリ
23への書き込み周期はチャネル数(16)に分割され
ており、1つのチャネルの演算期間は256のサンプル
点演算期間に分かれている。なお、図におけるワード番
号とは、波形メモリ内に記憶される波形データの番号
(アドレス)である。さらに各サンプル点演算周期は、
16個の各高調波の振幅値演算期間に分かれている。
ミングの概略を示すタイムチャートである。波形メモリ
23への書き込み周期はチャネル数(16)に分割され
ており、1つのチャネルの演算期間は256のサンプル
点演算期間に分かれている。なお、図におけるワード番
号とは、波形メモリ内に記憶される波形データの番号
(アドレス)である。さらに各サンプル点演算周期は、
16個の各高調波の振幅値演算期間に分かれている。
【0117】1つの高調波振幅値の演算時間が例えば1
25ナノ秒であるとすると、1つのサンプル点演算時間
(実際には2つのサンプル点データが得られる)は2マ
イクロ秒になり、1つのチャネルの波形データの演算時
間は512マイクロ秒となる。従って16チャネル全て
の波形を演算し波形を更新する周期は約8.2ミリ秒と
なる。
25ナノ秒であるとすると、1つのサンプル点演算時間
(実際には2つのサンプル点データが得られる)は2マ
イクロ秒になり、1つのチャネルの波形データの演算時
間は512マイクロ秒となる。従って16チャネル全て
の波形を演算し波形を更新する周期は約8.2ミリ秒と
なる。
【0118】 図14は、図4の波形計算部22の動作
を示すタイムチャートである。波形演算部22は、最も
高速の演算が必要な回路であり、図4の乗算器43から
は例えば図13(b)に示すように125ナノ秒の周期
で、各高調波の振幅値が出力されてくる。
を示すタイムチャートである。波形演算部22は、最も
高速の演算が必要な回路であり、図4の乗算器43から
は例えば図13(b)に示すように125ナノ秒の周期
で、各高調波の振幅値が出力されてくる。
【0119】信号WGG1は奇数番目の高調波を累算す
るためのゲート信号であり、第1高調波以外の奇数高調
波のタイミングで1になる。またWGG2は偶数高調波
を累算するためのゲート信号であり、第2高調波以外の
偶数高調波のタイミングで1になる。WGL1、WGL
2はそれぞれ、奇数高調波累算値用ラッチA46、偶数
高調波累算値用ラッチB47のラッチパルスであり、各
ラッチ回路はラッチパルスの立ち上がりで入力信号をラ
ッチする。
るためのゲート信号であり、第1高調波以外の奇数高調
波のタイミングで1になる。またWGG2は偶数高調波
を累算するためのゲート信号であり、第2高調波以外の
偶数高調波のタイミングで1になる。WGL1、WGL
2はそれぞれ、奇数高調波累算値用ラッチA46、偶数
高調波累算値用ラッチB47のラッチパルスであり、各
ラッチ回路はラッチパルスの立ち上がりで入力信号をラ
ッチする。
【0120】従って、ラッチAおよびBには図のよう
に、奇数高調波および偶数高調波の累算値が順にラッチ
されていく。そしてnワードの演算期間の最後には、ラ
ッチAには1から15までの奇数高調波の累算値On
が、またラッチBには2から16までの偶数高調波の累
算値Enがラッチされる。
に、奇数高調波および偶数高調波の累算値が順にラッチ
されていく。そしてnワードの演算期間の最後には、ラ
ッチAには1から15までの奇数高調波の累算値On
が、またラッチBには2から16までの偶数高調波の累
算値Enがラッチされる。
【0121】WGL3、WGL4は、図に示すようなタ
イミングでそれぞれラッチA、ラッチBの出力をラッチ
C、ラッチDにラッチするためのパルスである。ラッチ
C、Dの出力は、図のように奇数及び偶数高調波の累算
値を保持する。
イミングでそれぞれラッチA、ラッチBの出力をラッチ
C、ラッチDにラッチするためのパルスである。ラッチ
C、Dの出力は、図のように奇数及び偶数高調波の累算
値を保持する。
【0122】信号CCSは補数器50の動作を制御する
ものであり、補数器50はCCSが0の場合には入力信
号をそのまま通過させ、CCSが1の場合には入力信号
を2の補数表現に変換(0と1を反転して1を加算)し
て出力する。従ってCCSが0の期間においては、ラッ
チCとラッチDの出力がそのまま加算器51によって加
算されて(On+En)が出力され、CCSが1の期間
においては(−On+En)が出力される。
ものであり、補数器50はCCSが0の場合には入力信
号をそのまま通過させ、CCSが1の場合には入力信号
を2の補数表現に変換(0と1を反転して1を加算)し
て出力する。従ってCCSが0の期間においては、ラッ
チCとラッチDの出力がそのまま加算器51によって加
算されて(On+En)が出力され、CCSが1の期間
においては(−On+En)が出力される。
【0123】WGL5はCCSが変化する直前に加算器
51の出力をラッチEがラッチするためのパルスであ
る。ラッチEの出力には、図のように(On+En)と
(−On+En)とが順に現れる。この(−On+E
n)値は、図16に従って説明したように、波形メモリ
における基本周期の半周期(256番地)先のサンプル
点の値となる。
51の出力をラッチEがラッチするためのパルスであ
る。ラッチEの出力には、図のように(On+En)と
(−On+En)とが順に現れる。この(−On+E
n)値は、図16に従って説明したように、波形メモリ
における基本周期の半周期(256番地)先のサンプル
点の値となる。
【0124】従って、実行制御回路20から供給される
波形メモリの書き込みアドレスに従って(On+En)
値がn番地に書き込まれ、(−On+En)値が(n+
256)番地に書き込まれる。なお、図14の最下行の
Wは基本周期の半周期分のアドレス値であり、この例で
は256である。
波形メモリの書き込みアドレスに従って(On+En)
値がn番地に書き込まれ、(−On+En)値が(n+
256)番地に書き込まれる。なお、図14の最下行の
Wは基本周期の半周期分のアドレス値であり、この例で
は256である。
【0125】<キーオン時の処理>最後に、キーオン時
のCPU1の動作について説明する。CPU1は、RO
M2に記憶されているプログラムに従って、常にキーボ
ード、パネルをスキャンしており、いずれかのキーが押
下されると、これを検出し、空いているチャネルを探し
て、該キーに対応する楽音を発生するチャネルを決定す
る。
のCPU1の動作について説明する。CPU1は、RO
M2に記憶されているプログラムに従って、常にキーボ
ード、パネルをスキャンしており、いずれかのキーが押
下されると、これを検出し、空いているチャネルを探し
て、該キーに対応する楽音を発生するチャネルを決定す
る。
【0126】つぎに、CPU1は高調波発生部21の各
回路に各種データを設定する。まず、押下されたキーを
含む音域あるいはタッチ強度とその1つ上の音域あるい
はタッチ強度の位相偏移情報をROM2から読み出し、
位相偏移情報発生器30内の2つの位相偏移情報メモリ
301、302に設定する。
回路に各種データを設定する。まず、押下されたキーを
含む音域あるいはタッチ強度とその1つ上の音域あるい
はタッチ強度の位相偏移情報をROM2から読み出し、
位相偏移情報発生器30内の2つの位相偏移情報メモリ
301、302に設定する。
【0127】次に、指定された音色に対応した、押下さ
れたキーを含む音域あるいはタッチ強度とその1つ上の
音域あるいはタッチ強度の高調波係数データをROM2
から読み出し、高調波係数発生器31内の2つの高調波
係数メモリ311、312に設定する。
れたキーを含む音域あるいはタッチ強度とその1つ上の
音域あるいはタッチ強度の高調波係数データをROM2
から読み出し、高調波係数発生器31内の2つの高調波
係数メモリ311、312に設定する。
【0128】フォルマント係数発生器32には、キーナ
ンバー、デプス情報を設定し、さらにフォルマントエン
ベロープ発生器32には、各セグメントの目標値とスピ
ードデータ等が設定される。高調波エンベロープ発生器
34には、時間の経過による音色の変化を付けるために
各高調波毎のエンベロープ情報が設定される。
ンバー、デプス情報を設定し、さらにフォルマントエン
ベロープ発生器32には、各セグメントの目標値とスピ
ードデータ等が設定される。高調波エンベロープ発生器
34には、時間の経過による音色の変化を付けるために
各高調波毎のエンベロープ情報が設定される。
【0129】更に実行制御回路20内のバランス信号発
生回路には、押下されたキーおよびその上下の基準キー
ナンバーあるいはタッチ強度が設定される。これらの設
定により、高調波情報発生部、および波形計算部は自動
的に波形を計算し、波形メモリに例えば約8.2ミリ周
期で波形を出力する。
生回路には、押下されたキーおよびその上下の基準キー
ナンバーあるいはタッチ強度が設定される。これらの設
定により、高調波情報発生部、および波形計算部は自動
的に波形を計算し、波形メモリに例えば約8.2ミリ周
期で波形を出力する。
【0130】CPU1は、また通常の波形読み出し方式
と同様に、波形読み出し回路24にキーナンバーをセッ
トし、またエンベロープ発生器27にエンベロープ情報
を設定する。これらの回路は周知の方法により、波形メ
モリからキーナンバーに対応したアドレス間隔で波形デ
ータを読み出し、エンベロープ信号を乗算して楽音信号
を発生する。
と同様に、波形読み出し回路24にキーナンバーをセッ
トし、またエンベロープ発生器27にエンベロープ情報
を設定する。これらの回路は周知の方法により、波形メ
モリからキーナンバーに対応したアドレス間隔で波形デ
ータを読み出し、エンベロープ信号を乗算して楽音信号
を発生する。
【0131】以上、実施例を説明したが、次のような変
形例も考えられる。位相偏移情報発生器と高調波係数発
生器とは回路構成が同じであるので、時分割多重処理を
行うことにより1つの回路で実現することも可能であ
る。
形例も考えられる。位相偏移情報発生器と高調波係数発
生器とは回路構成が同じであるので、時分割多重処理を
行うことにより1つの回路で実現することも可能であ
る。
【0132】
【発明の効果】 以上述べたように、本発明によれば、
各高調波ごとに位相偏移を制御するようにしても、波形
の計算時間が基本波の半周期分でよく、計算時間を短縮
することが可能となる。従って、より低速の演算回路を
用いることが可能となり、設計が容易になり、また安価
に製造できるという効果がある。また、電子楽器におい
て同じ速度の演算回路を用いれば、より多くのチャネル
の、あるいはより精度の高い波形演算が可能となるとい
う効果もある。
各高調波ごとに位相偏移を制御するようにしても、波形
の計算時間が基本波の半周期分でよく、計算時間を短縮
することが可能となる。従って、より低速の演算回路を
用いることが可能となり、設計が容易になり、また安価
に製造できるという効果がある。また、電子楽器におい
て同じ速度の演算回路を用いれば、より多くのチャネル
の、あるいはより精度の高い波形演算が可能となるとい
う効果もある。
【図1】 電子楽器のハードウェア構成を表すブロック
図である。
図である。
【図2】 楽音発生回路6の内部構成を示すブロック図
である。
である。
【図3】 高調波情報発生部21の内部構成を示すブロ
ック図である。
ック図である。
【図4】 波形計算部22の内部構成を示すブロック図
である。
である。
【図5】 アキュムレータ40の内部構成を示すブロッ
ク図である。
ク図である。
【図6】 位相偏移情報発生器30の内部構成を示すブ
ロック図である。
ロック図である。
【図7】 高調波係数発生器31の内部構成を示すブロ
ック図である。
ック図である。
【図8】 バランス信号発生回路の一例を示すブロック
図である。
図である。
【図9】 フォルマント係数発生器32の構成を示すブ
ロック図である。
ロック図である。
【図10】 エンベロープ発生器の内部構成を示すブロ
ック図である。
ック図である。
【図11】 エンベロープ波形を示す波形図である。
【図12】 フォルマント係数発生器の動作説明のため
の概念図である。
の概念図である。
【図13】 楽音発生部の動作タイミングを示すタイム
チャートである。
チャートである。
【図14】 波形計算部の動作タイミングを示すタイム
チャートである。
チャートである。
【図15】 各種メモリのメモリマップの一例を示す説
明図である。
明図である。
【図16】 位相のずれた高調波の、2サンプル点の振
幅値の求め方を示す概念図である。
幅値の求め方を示す概念図である。
1…CPU、2…ROM、3…RAM、4…キーボード
部、5…パネル部、6…楽音発生部、7…D/A変換
器、8…アナログ信号処理部、9…アンプ、10…スピ
ーカ、11…バス、20…実行制御回路、21…高調波
情報発生部、22…波形計算部、23…波形メモリ、2
4…波形読み出し回路、25…セレクタ、26…波形補
間回路、27…エンベロープ発生器、28…乗算器
部、5…パネル部、6…楽音発生部、7…D/A変換
器、8…アナログ信号処理部、9…アンプ、10…スピ
ーカ、11…バス、20…実行制御回路、21…高調波
情報発生部、22…波形計算部、23…波形メモリ、2
4…波形読み出し回路、25…セレクタ、26…波形補
間回路、27…エンベロープ発生器、28…乗算器
Claims (4)
- 【請求項1】サイン合成方式の楽音波形発生装置におい
て、 楽音信号の基本波および前記基本波に対してそれぞれが
所望の位相偏差を有する各高調波の振幅データを順次発
生する振幅データ発生手段と、 前記振幅データ発生手段から発生される偶数倍高調波の
みの振幅データを累算する第1の累算手段と、 前記振幅データ発生手段から発生される基本波および奇
数倍高調波のみの振幅データを累算する第2の累算手段
と、 前記第1の累算手段の出力と前記第2の累算手段の出力
とを加算することにより第1の波形値を出力する加算手
段と、 前記第1の累算手段の出力から前記第2の累算手段の出
力を減算することにより第2の波形値を出力する減算手
段と、 波形記憶手段と、 前記第1の波形値を、前記波形記憶手段の前記楽音の基
本波の位相に相当する番地に書き込むと共に、前記第2
の波形値を、前記楽音の基本波の位相に対して180度
異なる位相に相当する番地に書き込む書き込み手段とを
具備したことを特徴とする楽音波形発生装置。 - 【請求項2】前記減算手段は、前記第2の累算手段の出
力の符号を反転し、前記第1の累算手段の出力と加算す
るものであることを特徴とする請求項1に記載の楽音波
形発生装置。 - 【請求項3】請求項1または2に記載の楽音波形発生装
置と、 前記波形記憶手段に記憶された波形データに基づいて楽
音を発生する楽音発生手段とを備えたことを特徴とする
電子楽器。 - 【請求項4】楽音信号の基本波および前記基本波に対し
てそれぞれが所望の位相偏差を有する各高調波の振幅デ
ータを順次発生する段階と、 前記の順次発生される振幅データのうちの偶数倍高調波
のみの振幅データを累算して第1の累算値を得る段階
と、 前記振幅データのうちの基本波および奇数倍高調波の振
幅データを累算して第2の累算値を得る段階と、 前記第1および第2の累算値を加算して求めた第1の波
形値を、サイン合成波の基本波の位相における波形値と
して出力する段階と、 前記第1の累算値から前記第2の累算値を減算して求め
た第2の波形値を、前記サイン合成波の基本波の前記位
相から半周期離れた位相点における波形値として出力す
る段階とよりなることを特徴とするサイン合成方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5062458A JP2912110B2 (ja) | 1993-03-01 | 1993-03-01 | サイン合成方式およびこれによる楽音波形発生装置ならびに電子楽器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5062458A JP2912110B2 (ja) | 1993-03-01 | 1993-03-01 | サイン合成方式およびこれによる楽音波形発生装置ならびに電子楽器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06250665A JPH06250665A (ja) | 1994-09-09 |
JP2912110B2 true JP2912110B2 (ja) | 1999-06-28 |
Family
ID=13200787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5062458A Expired - Fee Related JP2912110B2 (ja) | 1993-03-01 | 1993-03-01 | サイン合成方式およびこれによる楽音波形発生装置ならびに電子楽器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2912110B2 (ja) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4085644A (en) * | 1975-08-11 | 1978-04-25 | Deutsch Research Laboratories, Ltd. | Polyphonic tone synthesizer |
-
1993
- 1993-03-01 JP JP5062458A patent/JP2912110B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06250665A (ja) | 1994-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH027078B2 (ja) | ||
US5340938A (en) | Tone generation apparatus with selective assignment of one of tone generation processing modes to tone generation channels | |
JPS6223319B2 (ja) | ||
JP3091343B2 (ja) | 電子楽器 | |
JPS62200398A (ja) | 楽音信号発生装置 | |
JP2912110B2 (ja) | サイン合成方式およびこれによる楽音波形発生装置ならびに電子楽器 | |
JP2898841B2 (ja) | 電子楽器 | |
US5254805A (en) | Electronic musical instrument capable of adding musical effect to musical tones | |
JP2859073B2 (ja) | 電子楽器 | |
JPH0486795A (ja) | 楽音発生装置 | |
JP2802714B2 (ja) | 電子楽器 | |
JPS59168493A (ja) | 楽音波形発生装置 | |
JP2671690B2 (ja) | 電子楽器 | |
JP3201553B2 (ja) | 電子楽器 | |
JP2950456B2 (ja) | 電子楽器 | |
JP3094759B2 (ja) | 楽音信号分配処理装置 | |
JP3435702B2 (ja) | 楽音発生装置 | |
JP3221987B2 (ja) | 遅延時間変調効果装置 | |
JP3649906B2 (ja) | 電子楽器のキーオンディレイ効果付加装置 | |
JP2970570B2 (ja) | 楽音発生装置 | |
JP2546464B2 (ja) | 電子楽器 | |
JP2802709B2 (ja) | 電子楽器 | |
JPH02181797A (ja) | 楽音信号合成装置 | |
JP3059617B2 (ja) | エンベロープ信号発生装置およびこれを用いた電子楽器 | |
JP3095323B2 (ja) | 電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080409 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090409 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090409 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100409 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |