JPH03204697A - 楽音信号発生装置 - Google Patents
楽音信号発生装置Info
- Publication number
- JPH03204697A JPH03204697A JP90312A JP31290A JPH03204697A JP H03204697 A JPH03204697 A JP H03204697A JP 90312 A JP90312 A JP 90312A JP 31290 A JP31290 A JP 31290A JP H03204697 A JPH03204697 A JP H03204697A
- Authority
- JP
- Japan
- Prior art keywords
- data
- control
- bits
- signal
- register
- 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
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/002—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions, e.g. programs, to control the sequence thereof
- G10H7/004—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions, e.g. programs, to control the sequence thereof with one or more auxiliary processor in addition to the main processing unit
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、電子楽器その他楽音発生若しくは合成機器
等で使用することができる楽音信号発生装置に関し、特
に、楽音信号発生のために実行する様々な演算のための
回路構成を簡略化することができるようにしたものに関
する。
等で使用することができる楽音信号発生装置に関し、特
に、楽音信号発生のために実行する様々な演算のための
回路構成を簡略化することができるようにしたものに関
する。
楽音信号発生のために実行される演算には、種々のもの
がある。例えば、楽音波形発生のための位相アドレス信
号の演算、エンベロープ波形信号発生演算、楽音波形信
号に対する振幅レベルスケーリング演算及び楽音波形補
間演算などがある。
がある。例えば、楽音波形発生のための位相アドレス信
号の演算、エンベロープ波形信号発生演算、楽音波形信
号に対する振幅レベルスケーリング演算及び楽音波形補
間演算などがある。
従来はこれらの各種演算は、それぞれ個別の専用の演算
回路によって行なわれていた。また、上述したそれぞれ
の演算においては、更に細かくは、係数をスケーリング
したりする演算やデータをアキュムレートする演算など
様々なものがあり、それらもまた、それぞれ個別の演算
回路、係数スケーリング用乗算器やアキュムレータなど
、によって行なわれていた。−例を示すと、特開昭63
−125990号においては、エンベロープ波形発生の
ための装置が示されており、そこにおいては、各種の演
算がそれぞれ個別の専用の演算回路によって行なわれて
いる。
回路によって行なわれていた。また、上述したそれぞれ
の演算においては、更に細かくは、係数をスケーリング
したりする演算やデータをアキュムレートする演算など
様々なものがあり、それらもまた、それぞれ個別の演算
回路、係数スケーリング用乗算器やアキュムレータなど
、によって行なわれていた。−例を示すと、特開昭63
−125990号においては、エンベロープ波形発生の
ための装置が示されており、そこにおいては、各種の演
算がそれぞれ個別の専用の演算回路によって行なわれて
いる。
一方、特開平L−101599号においては、楽音波形
サンプル値の補間演算における補間係数によって楽音波
形信号の振幅をスケーリングするための演算と、エンベ
ロープ係数によって楽音波形信号の振幅をスケーリング
するための演算とを、共通の演算回路を時分割使用する
ことによって行なうことが示されている。
サンプル値の補間演算における補間係数によって楽音波
形信号の振幅をスケーリングするための演算と、エンベ
ロープ係数によって楽音波形信号の振幅をスケーリング
するための演算とを、共通の演算回路を時分割使用する
ことによって行なうことが示されている。
従来のように、楽音信号発生のために実行する各種演算
について、それぞれ個別の専用の演算回路によって行な
うようにしたのでは、演算回路の数が増し、回路構成が
大型化する。という問題点がある。
について、それぞれ個別の専用の演算回路によって行な
うようにしたのでは、演算回路の数が増し、回路構成が
大型化する。という問題点がある。
また、楽音波形信号に対して補間係数による振幅スケー
リング演算とエンベロープ係数による振幅スケーリング
演算とを共通回路で行なうものにあっては、極くわずか
な規模でしか回路の縮小を図ることができない、このよ
うに同じような性質の演算を行なう演算回路を共用化す
るやり方では、極めて限られた規模での回路の縮小しか
図れないのである。
リング演算とエンベロープ係数による振幅スケーリング
演算とを共通回路で行なうものにあっては、極くわずか
な規模でしか回路の縮小を図ることができない、このよ
うに同じような性質の演算を行なう演算回路を共用化す
るやり方では、極めて限られた規模での回路の縮小しか
図れないのである。
この発明は上述の点に鑑みてなされたもので、馨音信号
発生のための各種演算を実行する演算回路を統合し、回
路構成の大幅な縮小を図ることができる楽音信号発生装
置を提供しようとするものである。
発生のための各種演算を実行する演算回路を統合し、回
路構成の大幅な縮小を図ることができる楽音信号発生装
置を提供しようとするものである。
この発明に係る楽音信号発生装置は、加算手段と、この
加算手段に対して入力するデータをストアするための記
憶手段と、この記憶手段の出方データに対して、制御信
号に応じた論理処理を可変的に施して前記加算手段に与
える処理手段と、楽音信号発生のための複数種類の演算
をそれぞれ実現するために、それぞ九の演算に対応して
前記記憶手段へのデータの導入及び前記処理手段への前
記制御信号の供給を制御する制御手段とを具え、この制
御手段の制御に従って前記記憶手段に導入するデータが
決定されかつ前記処理手段の論理処理内容が決定される
ことにより、前記加算手段が、楽音信号発生のための複
数種類の演算のために共用されるようにしたことを特徴
とするものである。
加算手段に対して入力するデータをストアするための記
憶手段と、この記憶手段の出方データに対して、制御信
号に応じた論理処理を可変的に施して前記加算手段に与
える処理手段と、楽音信号発生のための複数種類の演算
をそれぞれ実現するために、それぞ九の演算に対応して
前記記憶手段へのデータの導入及び前記処理手段への前
記制御信号の供給を制御する制御手段とを具え、この制
御手段の制御に従って前記記憶手段に導入するデータが
決定されかつ前記処理手段の論理処理内容が決定される
ことにより、前記加算手段が、楽音信号発生のための複
数種類の演算のために共用されるようにしたことを特徴
とするものである。
この発明において、加算手段は、前記制御手段から与え
られる制御信号に応じてその有効ビット数を切り替える
ことができるようにしてもよい。
られる制御信号に応じてその有効ビット数を切り替える
ことができるようにしてもよい。
その場合、加算手段は、桁上げ信号出力と桁上げ信号入
力間をゲートを介して接続した複数の加算回路を含み、
このゲートを前記制御手段から与えられる制御信号に応
じて制御することにより1又は複数の前記加算回路を選
択的に有効にし、これにより該加算手段全体としての有
効ビット数を切り替えることができるようにしてよい。
力間をゲートを介して接続した複数の加算回路を含み、
このゲートを前記制御手段から与えられる制御信号に応
じて制御することにより1又は複数の前記加算回路を選
択的に有効にし、これにより該加算手段全体としての有
効ビット数を切り替えることができるようにしてよい。
また、加算手段は、前記制御手段から与えられる制御信
号に応じて2以上の独立の加算回路に分離することがで
きるようにし、分離したそれぞれの加算回路において異
なる演算を並行して行なうことができるようにしてもよ
い。その場合に、加算手段は、上述と同様に、桁上げ信
号出力と桁上げ信号入力間をゲートを介して接続した複
数の加算回路を含み、このゲートを前記制御手段から与
えられる制御信号に応じて制御することにより前記複数
の加算回路を分離または連結するようにしてよい。
号に応じて2以上の独立の加算回路に分離することがで
きるようにし、分離したそれぞれの加算回路において異
なる演算を並行して行なうことができるようにしてもよ
い。その場合に、加算手段は、上述と同様に、桁上げ信
号出力と桁上げ信号入力間をゲートを介して接続した複
数の加算回路を含み、このゲートを前記制御手段から与
えられる制御信号に応じて制御することにより前記複数
の加算回路を分離または連結するようにしてよい。
制御手段の制御により、演算の目的に応じて、所定のデ
ータを記憶手段に導入しかつ処理手段の論理処理内容を
決定する。これにより加算手段が該目的の演算を実行す
る状態に設定される。制御手段では、楽音信号発生のた
めの複数種類の演算をそれぞれ実現するために、それぞ
れ所定のデータ導入制御及び制御信号供給制御を行なう
。これにより、加算手段が楽音信号発生のための複数種
類の演算のために共用される。
ータを記憶手段に導入しかつ処理手段の論理処理内容を
決定する。これにより加算手段が該目的の演算を実行す
る状態に設定される。制御手段では、楽音信号発生のた
めの複数種類の演算をそれぞれ実現するために、それぞ
れ所定のデータ導入制御及び制御信号供給制御を行なう
。これにより、加算手段が楽音信号発生のための複数種
類の演算のために共用される。
こうして、楽音信号発生のための各種演算を実行する演
算回路を1つの加算手段に統合することができ、回路構
成の大幅な縮小を図ることができる。従って5例えば楽
音信号発生装置を集積回路化する場合に集積回路チップ
サイズの大幅な縮小を図ることができる。
算回路を1つの加算手段に統合することができ、回路構
成の大幅な縮小を図ることができる。従って5例えば楽
音信号発生装置を集積回路化する場合に集積回路チップ
サイズの大幅な縮小を図ることができる。
1つの加算手段で共用する楽音信号発生のための各種演
算としては、例えば、楽音波形発生のための位相アドレ
ス信号の演算、エンベロープ波形信号発生演算、楽音波
形信号に対する振幅レベルスケーリング演算などがある
。また、必要に応じて、更に楽音波形補間演算にも共用
してよい。この発明では、複数の記憶手段と、処理手段
と、制御手段を具備して、加算手段を完全に多目的利用
できるように構成しているので、全く性質の異なる演算
においても加算手段を共用するようにすることができ、
楽音信号発生のための各種演算を1つの加算手段に統合
して実行することができる。
算としては、例えば、楽音波形発生のための位相アドレ
ス信号の演算、エンベロープ波形信号発生演算、楽音波
形信号に対する振幅レベルスケーリング演算などがある
。また、必要に応じて、更に楽音波形補間演算にも共用
してよい。この発明では、複数の記憶手段と、処理手段
と、制御手段を具備して、加算手段を完全に多目的利用
できるように構成しているので、全く性質の異なる演算
においても加算手段を共用するようにすることができ、
楽音信号発生のための各種演算を1つの加算手段に統合
して実行することができる。
加算手段が、前記制御手段から与えられる制御信号に応
じてその有効ビット数を切り替えることができるように
することは、種々の性質の異なるデータの演算において
1つの加算手段を共用するにあたって極めて有利である
。すなわち、加算手段を多目的利用できるようにするに
は、多ビットのデータにも備えるために、加算手段のビ
ット数は多い方がよい。ところで、加算手段のビット数
が多い場合は、各桁の桁上げに要する時間がかかるので
その分だけ計算時間を多く確保するようシステムを構成
する必要がある。一方、データによってはビット数が少
ないものもあり、そのような少数ビットのデータの演算
に対しても多ビツト加算手段をそのまま使用したのでは
不必要に多くの計算時間が確保されてしまい、好ましく
ない。そこで、この発明のように、加算手段の有効ビッ
ト数を制御信号に応じて切り替えることができるように
すれば、少数ビットのデータの演算においては有効ビッ
ト数を少なくすることにより、短い計算時間を確保して
おけば済むようにシステムを構成することができる。こ
うして、加算手段を共用するデータの性質に応じて、効
率的な計算時間配分を行なうことができるようになる。
じてその有効ビット数を切り替えることができるように
することは、種々の性質の異なるデータの演算において
1つの加算手段を共用するにあたって極めて有利である
。すなわち、加算手段を多目的利用できるようにするに
は、多ビットのデータにも備えるために、加算手段のビ
ット数は多い方がよい。ところで、加算手段のビット数
が多い場合は、各桁の桁上げに要する時間がかかるので
その分だけ計算時間を多く確保するようシステムを構成
する必要がある。一方、データによってはビット数が少
ないものもあり、そのような少数ビットのデータの演算
に対しても多ビツト加算手段をそのまま使用したのでは
不必要に多くの計算時間が確保されてしまい、好ましく
ない。そこで、この発明のように、加算手段の有効ビッ
ト数を制御信号に応じて切り替えることができるように
すれば、少数ビットのデータの演算においては有効ビッ
ト数を少なくすることにより、短い計算時間を確保して
おけば済むようにシステムを構成することができる。こ
うして、加算手段を共用するデータの性質に応じて、効
率的な計算時間配分を行なうことができるようになる。
加算手段が、前記制御手段から与えられる制御信号に応
じて2以上の独立の加算回路に分離することができるよ
うにし、分離したそれぞれの加算回路において異なる演
算を並行して行なうことができるようにすることは、上
述と同様に、種々の性質の異なるデータの演算において
1つの加算手段を共用するにあたって極めて有利である
。すなわち、多数ビットのデータの演算に対しては加算
手段を分離せずにそのまま使用する一方で、少数ビット
のデータの演算に対しては加算手段を分離し、分離した
それぞれの加算回路において異なるデータについて異な
る演算を並行して行なうようにすれば、並列演算により
演算効率を高めることができる。例えばn種類の異なる
演算につき加算手段を共用する場合、単純には、n時分
割で加算手段を使用しなければならないところ、この発
明に従って一部並列演算を行なうようにすれば、時分割
数mは単独演算数と並列演算数の合計で済み、m <
nとなるので、全体としての処理時間を短縮することが
できる。
じて2以上の独立の加算回路に分離することができるよ
うにし、分離したそれぞれの加算回路において異なる演
算を並行して行なうことができるようにすることは、上
述と同様に、種々の性質の異なるデータの演算において
1つの加算手段を共用するにあたって極めて有利である
。すなわち、多数ビットのデータの演算に対しては加算
手段を分離せずにそのまま使用する一方で、少数ビット
のデータの演算に対しては加算手段を分離し、分離した
それぞれの加算回路において異なるデータについて異な
る演算を並行して行なうようにすれば、並列演算により
演算効率を高めることができる。例えばn種類の異なる
演算につき加算手段を共用する場合、単純には、n時分
割で加算手段を使用しなければならないところ、この発
明に従って一部並列演算を行なうようにすれば、時分割
数mは単独演算数と並列演算数の合計で済み、m <
nとなるので、全体としての処理時間を短縮することが
できる。
以下、添付図面を参照してこの発明の一実施例を詳細に
説明しよう。
説明しよう。
第1図はこの発明に係る楽音信号発生装置の一実施例を
示すハード構成ブロック図、第2図はこの発明に係る楽
音信号発生装置を適用した電子楽器の一例を示すハード
構成ブロック図であり、第1図は第2図に示された楽音
信号発生装置10のブロック内の回路構成例を示してい
る。
示すハード構成ブロック図、第2図はこの発明に係る楽
音信号発生装置を適用した電子楽器の一例を示すハード
構成ブロック図であり、第1図は第2図に示された楽音
信号発生装置10のブロック内の回路構成例を示してい
る。
まず、第2図について説明すると、この例の電子楽器で
は、中央処理ユニット(CPU)11、プログラム及び
データROM12.データ及びワーキングRAM13を
含むマイクロコンピュータの制御の下で各種処理が実行
される。CPUバス14を介して楽音信号発生装置10
.鍵盤回路15、操作パネル16等その地番種回路がマ
イクロコンピュータに接続されている。
は、中央処理ユニット(CPU)11、プログラム及び
データROM12.データ及びワーキングRAM13を
含むマイクロコンピュータの制御の下で各種処理が実行
される。CPUバス14を介して楽音信号発生装置10
.鍵盤回路15、操作パネル16等その地番種回路がマ
イクロコンピュータに接続されている。
鍵盤回路15は、発生すべき楽音の音高を指定するため
の複数の鍵を具えた鍵盤に対応して設けられており、該
鍵盤の各鍵に対応するキースイッチを含む回路である。
の複数の鍵を具えた鍵盤に対応して設けられており、該
鍵盤の各鍵に対応するキースイッチを含む回路である。
操作パネル16は、音色、音量、音高、効果等を選択・
設定・制御するための各種操作子を含むものである。
設定・制御するための各種操作子を含むものである。
タイマ17は、時間的に変化する楽音制御を行う際の時
間データやCPUI 1に対するインタラブド信号など
を発生するためのものである。
間データやCPUI 1に対するインタラブド信号など
を発生するためのものである。
マイクロコンピュータの処理により、鍵盤回路15にお
ける各キースイッチをスキャンしてそのオン・オフを検
出し、押圧鍵を複数の発音チャンネルのうち何れかに割
当てる。また、必要に応じて鍵タッチを検出するための
処理を行なう。また。
ける各キースイッチをスキャンしてそのオン・オフを検
出し、押圧鍵を複数の発音チャンネルのうち何れかに割
当てる。また、必要に応じて鍵タッチを検出するための
処理を行なう。また。
操作パネル16における各種操作子、スイッチ類をスキ
ャンしてそのオン・オフを検出し、これに基づき選択さ
れた音色の積比などその他処理を行なう。
ャンしてそのオン・オフを検出し、これに基づき選択さ
れた音色の積比などその他処理を行なう。
CPU1lでは、各発音チャンネルにおける割当て内容
の変更や、操作パネル16における操作状態の変更など
があった場合に、必要なデータをCPUバス14を介し
て楽音信号発生装置10に与える。CPUI 1から楽
音信号発生装置10に与えられるデータとしては、例え
ば1割当てたチャンネルを示すチャンネルナンバCHN
、そのチヤンネルに割当てられた鍵を示すキーコードK
C1その鍵が押圧中であるか離鍵されたかを示すキーオ
ン信号KON、その鍵の音高に対応する数値であるPナ
ンバPN、その鍵の押鍵時の鍵タッチを示すタッチデー
タTD、選択された音色を示すボイスナンバVN、手動
により設定・調整された音量ボリュームを示すトーンボ
リューム設定データVLMなどがある。
の変更や、操作パネル16における操作状態の変更など
があった場合に、必要なデータをCPUバス14を介し
て楽音信号発生装置10に与える。CPUI 1から楽
音信号発生装置10に与えられるデータとしては、例え
ば1割当てたチャンネルを示すチャンネルナンバCHN
、そのチヤンネルに割当てられた鍵を示すキーコードK
C1その鍵が押圧中であるか離鍵されたかを示すキーオ
ン信号KON、その鍵の音高に対応する数値であるPナ
ンバPN、その鍵の押鍵時の鍵タッチを示すタッチデー
タTD、選択された音色を示すボイスナンバVN、手動
により設定・調整された音量ボリュームを示すトーンボ
リューム設定データVLMなどがある。
楽音波形発生装@10では、CPUIIから与えられた
データに基づき複数チャンネルで楽音信号を発生する。
データに基づき複数チャンネルで楽音信号を発生する。
発生された楽音信号はサウンドシステム18に与えられ
、音響的に発音される。
、音響的に発音される。
次に第1図を参照して楽音信号発生装置10につき説明
する。
する。
ハード回路概略説明
この楽音信号発生装置10においては、楽音信号発生の
ための様々な種類の演算のために多目的に利用される1
つの加算部20を具備している。
ための様々な種類の演算のために多目的に利用される1
つの加算部20を具備している。
また、この加算部20に対して入力するデータをストア
するための複数の記憶回路、例えばレジスタR1,R2
,R3など、を具備している。また。
するための複数の記憶回路、例えばレジスタR1,R2
,R3など、を具備している。また。
これらの記憶手段の出力データに対して、制御信号に応
じた論理処理を可変的に施して加算部20に与える処理
回路、例えば符号制御回路23、論理積回路24、多機
能シフタ25など、を具備している。この処理回路で行
なう論理処理とは、データのシフト、ゲート、選択、反
転等の処理であり、制御信号に応じて適宜の処理が実行
される。
じた論理処理を可変的に施して加算部20に与える処理
回路、例えば符号制御回路23、論理積回路24、多機
能シフタ25など、を具備している。この処理回路で行
なう論理処理とは、データのシフト、ゲート、選択、反
転等の処理であり、制御信号に応じて適宜の処理が実行
される。
符号制御回路23は引算のための符号制御処理を行なう
ためのもの、論理積回路24は乗算のために部分積を求
める論理積処理を行なうためのもの、多機能シフタ25
はデータシフト処理、データの選択、通過、阻止、−時
記憶等様々な機能を制御信号に応じて行なうものである
。
ためのもの、論理積回路24は乗算のために部分積を求
める論理積処理を行なうためのもの、多機能シフタ25
はデータシフト処理、データの選択、通過、阻止、−時
記憶等様々な機能を制御信号に応じて行なうものである
。
楽音信号発生装置10においては、楽音信号発生のため
の複数種類の演算をそれぞれ実現するために、それぞれ
の演算に対応して前記記憶回路へのデータの導入及び前
記処理回路への前記制御信号の供給を制御する制御回路
1例えばマイクロコードROM26及びそれに関連する
回路、を具備している。この制御回路によって加算部2
oを共用するよう制御される、楽音信号発生のための各
種演算としては、例えば、楽音波形発生のための位相ア
ドレス信号の演算、エンベロープ波形信号発生演算、楽
音波形信号に対する振幅レベルスケーリング演算、楽音
波形補間演算などがある。
の複数種類の演算をそれぞれ実現するために、それぞれ
の演算に対応して前記記憶回路へのデータの導入及び前
記処理回路への前記制御信号の供給を制御する制御回路
1例えばマイクロコードROM26及びそれに関連する
回路、を具備している。この制御回路によって加算部2
oを共用するよう制御される、楽音信号発生のための各
種演算としては、例えば、楽音波形発生のための位相ア
ドレス信号の演算、エンベロープ波形信号発生演算、楽
音波形信号に対する振幅レベルスケーリング演算、楽音
波形補間演算などがある。
データメモリ27は、様々な音色に対応する波形サンプ
ルデータと様々なエンベロープ波形に対応するエンベロ
ープパラメータデータを記憶したリードオンリーメモリ
であり、その大容量故に。
ルデータと様々なエンベロープ波形に対応するエンベロ
ープパラメータデータを記憶したリードオンリーメモリ
であり、その大容量故に。
楽音信号発生装置10の集積回路チップの外に設けられ
ている。
ている。
加算部20の出力がアドレスラッチADLに与えられ、
このアドレスラッチADLの出力がデータメモリ27の
アドレス入力に与えられる。データメモリ27のデータ
読み出し出力が入カバソファ28に与えられ、レジスタ
29で一時保持され。
このアドレスラッチADLの出力がデータメモリ27の
アドレス入力に与えられる。データメモリ27のデータ
読み出し出力が入カバソファ28に与えられ、レジスタ
29で一時保持され。
ゲート30を介してTOババストーンジェネレータバス
)35に与えられる。TGババス5はトーンデータRA
M36に接続されており、また、レジスタR1,R2等
、楽音信号発生装置10内のその他回路に接続されてい
る。
)35に与えられる。TGババス5はトーンデータRA
M36に接続されており、また、レジスタR1,R2等
、楽音信号発生装置10内のその他回路に接続されてい
る。
また、加算部20の出力は、レジスタGRに接続されて
いる。このレジスタGRの出力はオーバーフロー補償回
路33を介してゲート31に与えられ、ゲート31の出
力はTGババス5に接続される。
いる。このレジスタGRの出力はオーバーフロー補償回
路33を介してゲート31に与えられ、ゲート31の出
力はTGババス5に接続される。
また、加算部20の出力は、レジスタR3に接続されて
いる。このレジスタR3の出力はオーバーフロー補償回
路34を介してゲート32に与えられ、ゲート32の出
力はTGババス5に接続される。また、レジスタR3の
出力は多機能シフタ25に接続されている。多機能シフ
タ25の出力は加算部20の一方入力に接続されている
。
いる。このレジスタR3の出力はオーバーフロー補償回
路34を介してゲート32に与えられ、ゲート32の出
力はTGババス5に接続される。また、レジスタR3の
出力は多機能シフタ25に接続されている。多機能シフ
タ25の出力は加算部20の一方入力に接続されている
。
なお、オーバーフロー補償回路33.34は、加算部2
0を単純な加算器として使用しているとき(オーバーフ
ローが生じることを前提としている所定モジュロ数のカ
ウンタのような使い方ではないとき)に、その有効ビッ
トの最上位から桁上げ信号が生じた場合に有効ビットの
データ値が真の加算結果からかけ離れた小さな値になっ
てしまうことを考慮し、その有効ビットデータ値を適当
な値(例えば最大値)に修正する処理を行なうためのも
のである。
0を単純な加算器として使用しているとき(オーバーフ
ローが生じることを前提としている所定モジュロ数のカ
ウンタのような使い方ではないとき)に、その有効ビッ
トの最上位から桁上げ信号が生じた場合に有効ビットの
データ値が真の加算結果からかけ離れた小さな値になっ
てしまうことを考慮し、その有効ビットデータ値を適当
な値(例えば最大値)に修正する処理を行なうためのも
のである。
レジスタR1の入力にはTGババス5が接続され、その
出力は多機能シフタ25に接続される。
出力は多機能シフタ25に接続される。
また、レジスタR2の入力もTGババス5に接続され、
その出力は符号制御回路23に与えられる。
その出力は符号制御回路23に与えられる。
符号制御回路23の出力が論理積回路24を介して加算
部20の他方入力に接続される。
部20の他方入力に接続される。
第1のパラレル/シリアル変換器PS1は、TGババス
5から与えられるパラレルデータをシリアルデータに変
換し、論理積回路24に与える。
5から与えられるパラレルデータをシリアルデータに変
換し、論理積回路24に与える。
このパラレルデータは1乗算のための乗数である。
第2のパラレル/シリアル変換器PS2は、低周波発振
器37から発生される変調用低周波データLFOを入力
し、これをシリアルデータ形式で出力し1乗数として論
理積回路24に与える。
器37から発生される変調用低周波データLFOを入力
し、これをシリアルデータ形式で出力し1乗数として論
理積回路24に与える。
楽音信号発生装置10における上述の各回路は、マイク
ロコードROM26から与えられる制御信号すなわちマ
イクロコードによってその動作が制御される。従って、
各回路にはそれぞれ所定のマイクロコードが入力される
ようになっているが、この点は図示を省略しである。
ロコードROM26から与えられる制御信号すなわちマ
イクロコードによってその動作が制御される。従って、
各回路にはそれぞれ所定のマイクロコードが入力される
ようになっているが、この点は図示を省略しである。
CPU入出力制御部38は、CPUバス14から与えら
れる前述の各データCHN、KC,KON、PN、TD
、VLMを受は取り、楽音信号発生装置10内の必要な
回路に与える制御を行なう。
れる前述の各データCHN、KC,KON、PN、TD
、VLMを受は取り、楽音信号発生装置10内の必要な
回路に与える制御を行なう。
また、楽音信号発生装置1oで発生したデータのうち必
要なものをCPUバス14に与える制御も行なう。
要なものをCPUバス14に与える制御も行なう。
システムクロック発生器39は、この楽音信号発生装置
1oにおけるシステムクロックを発生し、必要な回路に
供給する。
1oにおけるシステムクロックを発生し、必要な回路に
供給する。
マイクロコードアドレス発生器40は、マイクロコード
ROM26からマイクロコードを読み出すためのアドレ
ス信号をシステムクロックに従うタイミングで順次発生
するものである。マイクロコードROM26においては
、楽音信号発生装置10において様々な演算機能及び制
御機能、処理機能が所定の手順で順次実行されるように
、各種のマイクロコードがプログラムされている。
ROM26からマイクロコードを読み出すためのアドレ
ス信号をシステムクロックに従うタイミングで順次発生
するものである。マイクロコードROM26においては
、楽音信号発生装置10において様々な演算機能及び制
御機能、処理機能が所定の手順で順次実行されるように
、各種のマイクロコードがプログラムされている。
エンベロープ制御ユニット41は、エンベロープ波形発
生のための制御を行なうもので、主に。
生のための制御を行なうもので、主に。
エンベロープ波形発生演算のステート管理や、演算レー
トデータの生成制御、演算目標レベルデータの生成制御
を行なう。ステート管理とは、アタック、デイケイ、サ
スティン、レリース等、エンベロープ波形の各部分のど
の部分を現在発生する状態であるかを管理することであ
る。
トデータの生成制御、演算目標レベルデータの生成制御
を行なう。ステート管理とは、アタック、デイケイ、サ
スティン、レリース等、エンベロープ波形の各部分のど
の部分を現在発生する状態であるかを管理することであ
る。
ピッチ発生器42は、PナンバPNに基づく数値データ
をアキュムレートし、位相アドレスの変化分を指示する
レートデータPGRT、PGFRを発生する。この位相
アドレスレートデータは整数部PGRTと小数部PGF
Rとからなり、整数部PGRTがデータメモリ読み出し
用のアドレス信号増加のために使用され、小数部PGF
Rが楽音波形の補間演算のために使用される。
をアキュムレートし、位相アドレスの変化分を指示する
レートデータPGRT、PGFRを発生する。この位相
アドレスレートデータは整数部PGRTと小数部PGF
Rとからなり、整数部PGRTがデータメモリ読み出し
用のアドレス信号増加のために使用され、小数部PGF
Rが楽音波形の補間演算のために使用される。
マイクロコードROM26からのマイクロコードの発生
、エンベロープ制御ユニット41におけるエンベロープ
波形発生制御、及びピッチ発生器42における位相アド
レスレートデータPGRT。
、エンベロープ制御ユニット41におけるエンベロープ
波形発生制御、及びピッチ発生器42における位相アド
レスレートデータPGRT。
PGFRの発生は、所定の時分割タイミングに従って複
数チャンネル時分割で行なわれる。
数チャンネル時分割で行なわれる。
第3図は、1サンプルタイミングと各チャンネルCHO
” CHnの時分割タイミングとの関係。
” CHnの時分割タイミングとの関係。
及び1チヤンネル、内におけるマイクロコードステップ
の関係を例示するものである。この例では、1チヤンネ
ルタイミング内でマイクロコードステップが64ステツ
プある。つまり、楽音信号発生装[10内の各回路が6
4ステツプで時分割動作して1チヤンネルに関する楽音
波形1サンプルの発生を行なう。
の関係を例示するものである。この例では、1チヤンネ
ルタイミング内でマイクロコードステップが64ステツ
プある。つまり、楽音信号発生装[10内の各回路が6
4ステツプで時分割動作して1チヤンネルに関する楽音
波形1サンプルの発生を行なう。
トーンデータRAM36は、楽音信号発生のために必要
な種々のデータを各チャンネル毎に記憶する゛随時読み
書き可能なメモリである。トーンデータRAM36のデ
ータ入出カラインはTGババス5に接続されている。R
AM制御部43は、トーンデータRAM36のデータの
読み書きを制御するものであり、アドレス指定及び読出
し/書込み指示を行なう。このRAM制御部43には、
CPU入出力制御部38の出力、エンベロープ制御ユニ
ット41の出力、マイクロコードROM26の出力、そ
の地番回路から発生される所定の信号が入力され、これ
らに基づきトーンデータRAM36の読み書きを制御す
る。
な種々のデータを各チャンネル毎に記憶する゛随時読み
書き可能なメモリである。トーンデータRAM36のデ
ータ入出カラインはTGババス5に接続されている。R
AM制御部43は、トーンデータRAM36のデータの
読み書きを制御するものであり、アドレス指定及び読出
し/書込み指示を行なう。このRAM制御部43には、
CPU入出力制御部38の出力、エンベロープ制御ユニ
ット41の出力、マイクロコードROM26の出力、そ
の地番回路から発生される所定の信号が入力され、これ
らに基づきトーンデータRAM36の読み書きを制御す
る。
監凰軌生五里
詳細な説明に先立って大まかな説明をざっと行なうと、
加算部20を楽音波形発生のための位相アドレス信号の
演算のために使用する場合は、前述の位相アドレスレー
トデータの整数部PGRTを前回アドレス信号の値に加
算する演算を加算部20で行ない、こうして加算部20
から発生した位相アドレス信号をアドレスラッチADL
にラッチし、これに応じてデータメモリ27から波形サ
ンプルデータを読み出す。
加算部20を楽音波形発生のための位相アドレス信号の
演算のために使用する場合は、前述の位相アドレスレー
トデータの整数部PGRTを前回アドレス信号の値に加
算する演算を加算部20で行ない、こうして加算部20
から発生した位相アドレス信号をアドレスラッチADL
にラッチし、これに応じてデータメモリ27から波形サ
ンプルデータを読み出す。
また、選択された音色(ボイスナンバVN)やキースケ
ーリングデータあるいはタッチデータなどに応じて加算
部20を使用してアドレス信号が形成され、これがアド
レスラッチADLにラッチされ、これに応じてデータメ
モリ27がらエンベロープパラメータデータが読み出さ
れる。読み出されたエンベロープパラメータデータはト
ーンデータRAM36に書き込まれる。このトーンデー
タRAM36からエンベロープパラメータデータを読み
出してエンベロープ制御ユニット41に与えて、エンベ
ロープ波形変化分データを作成し、このエンベロープ波
形変化分データを加算部2゜で演算することによりエン
ベロープ波形信号発生演算を実行する。
ーリングデータあるいはタッチデータなどに応じて加算
部20を使用してアドレス信号が形成され、これがアド
レスラッチADLにラッチされ、これに応じてデータメ
モリ27がらエンベロープパラメータデータが読み出さ
れる。読み出されたエンベロープパラメータデータはト
ーンデータRAM36に書き込まれる。このトーンデー
タRAM36からエンベロープパラメータデータを読み
出してエンベロープ制御ユニット41に与えて、エンベ
ロープ波形変化分データを作成し、このエンベロープ波
形変化分データを加算部2゜で演算することによりエン
ベロープ波形信号発生演算を実行する。
また、上述のように読み出した波形サンプルデータと上
述のように発生したエンベロープ波形信号等の振幅レベ
ル設定データに基づき加算部2゜を使用して振幅レベル
スケーリング演算を行ない。
述のように発生したエンベロープ波形信号等の振幅レベ
ル設定データに基づき加算部2゜を使用して振幅レベル
スケーリング演算を行ない。
波形サンプルデータの振幅レベルを設定する。
また、隣接する波形サンプルデータ間を前述の位相アド
レスレートデータの小数部PGFRに応じて補間する演
算を加算部20を使用して行ない。
レスレートデータの小数部PGFRに応じて補間する演
算を加算部20を使用して行ない。
波形サンプルデータを密に発生する。
こうして各チャンネル毎に発生された振幅レベル制御済
みの波形サンプルデータが累算器44に与えられ、1サ
ンプルタイミングに関する全チャンネルの波形サンプル
データがそこで累算合計される。その累算出力がD/A
変換器45でアナログ信号に変換され、出力回路46を
介して出力される。
みの波形サンプルデータが累算器44に与えられ、1サ
ンプルタイミングに関する全チャンネルの波形サンプル
データがそこで累算合計される。その累算出力がD/A
変換器45でアナログ信号に変換され、出力回路46を
介して出力される。
次に、要部の詳細説明を行なう。
トーンデータRAM36
トーンデータRAM36における1チャンネル分のトー
ンデータ記憶エリアのメモリマツプを例示すると第4図
のようである。1チャンネル分のトーンデータ記憶エリ
アは、トーンデータアドレスとして14アドレス有し、
1アドレスは20ビツトのデータサイズを有する。トー
ンデータアドレスにおける多くのデータはキーオンイベ
ントのときに次のように書き込まれる。
ンデータ記憶エリアのメモリマツプを例示すると第4図
のようである。1チャンネル分のトーンデータ記憶エリ
アは、トーンデータアドレスとして14アドレス有し、
1アドレスは20ビツトのデータサイズを有する。トー
ンデータアドレスにおける多くのデータはキーオンイベ
ントのときに次のように書き込まれる。
新抑圧鍵が成るチャンネルに割当てられると。
前述の通り、割当てたチャンネルを示すチャンネルナン
バCHN、そのチャンネルに割当てられた鍵を示すキー
コードKC、キーオン信号KON、PナンバPN、タッ
チデータTD、ボイスナンバVN、トーンボリューム設
定データVLMが、CPU11からCPUバス14を介
してCPU入出力制御部38に与えられる。
バCHN、そのチャンネルに割当てられた鍵を示すキー
コードKC、キーオン信号KON、PナンバPN、タッ
チデータTD、ボイスナンバVN、トーンボリューム設
定データVLMが、CPU11からCPUバス14を介
してCPU入出力制御部38に与えられる。
このチャンネルナンバCHNが示すチャンネルのトーン
データ記憶エリアがトーンデータRAM36において指
定され、そこのトーンデータアドレス3にPナンバPN
がストアされ、トーンデータアドレス9にトーンボリュ
ーム設定データVLMがストアされる。
データ記憶エリアがトーンデータRAM36において指
定され、そこのトーンデータアドレス3にPナンバPN
がストアされ、トーンデータアドレス9にトーンボリュ
ーム設定データVLMがストアされる。
また、ボイスナンバVNに応じてデータメモリ27のボ
イスデータエリアをアクセスし、必要なデータの読み出
しを行なう。
イスデータエリアをアクセスし、必要なデータの読み出
しを行なう。
データメモリ27のメモリマツプを略示すると第5図の
ようであり、ボイスデータエリア、パラメータエリア、
波形データエリアを含んでいる。
ようであり、ボイスデータエリア、パラメータエリア、
波形データエリアを含んでいる。
ボイスデータエリアは、複数のボイスバンク1〜nを含
んでいる。各ボイスバンクにおいては、パラメータエリ
アのパラメータバンクを指定する情報を記憶している。
んでいる。各ボイスバンクにおいては、パラメータエリ
アのパラメータバンクを指定する情報を記憶している。
パラメータエリアは複数のパラメータバンク1〜nを含
んでいる。各パラメータバンクにおいては、波形データ
エリアの波形データバンクを指定する情報及びエンベロ
ープパラメータデータを記憶している。波形データエリ
アは複数の波形データバンク1〜nを含んでいる。
んでいる。各パラメータバンクにおいては、波形データ
エリアの波形データバンクを指定する情報及びエンベロ
ープパラメータデータを記憶している。波形データエリ
アは複数の波形データバンク1〜nを含んでいる。
各波形データバンクは複数周期波形の波形サンプルデー
タをそれぞれ記憶している。−例として、1つの波形デ
ータバンクに記憶している波形は、アタック部の全波形
と繰返し部の複数周期波形である。1つのパラメータバ
ンクにおいて、波形データバンクを指定する情報として
、スタートアドレスデータとアタックサイズデータ、ル
ープサイズデータを記憶しており、エンベロープパラメ
ータデータとして、アタックレートデータAR,第1デ
イケイレートデータDLR,第2デイケイレートデータ
D2R,レリースレートデータRR。
タをそれぞれ記憶している。−例として、1つの波形デ
ータバンクに記憶している波形は、アタック部の全波形
と繰返し部の複数周期波形である。1つのパラメータバ
ンクにおいて、波形データバンクを指定する情報として
、スタートアドレスデータとアタックサイズデータ、ル
ープサイズデータを記憶しており、エンベロープパラメ
ータデータとして、アタックレートデータAR,第1デ
イケイレートデータDLR,第2デイケイレートデータ
D2R,レリースレートデータRR。
サスティンレートデータ5USR,第1デイケイレベル
データDIL、第2デイケイレベルデータD2Lを記憶
している。スタートアドレスデータは、指定したい波形
データバンクの先頭アドレスであり、アタックサイズデ
ータは、その波形データバンクにおけるアタック部の全
波形を記憶しているアドレス数を示し、ループサイズデ
ータは、その波形データバンクにおける全アドレス数を
示す。
データDIL、第2デイケイレベルデータD2Lを記憶
している。スタートアドレスデータは、指定したい波形
データバンクの先頭アドレスであり、アタックサイズデ
ータは、その波形データバンクにおけるアタック部の全
波形を記憶しているアドレス数を示し、ループサイズデ
ータは、その波形データバンクにおける全アドレス数を
示す。
ボイスナンバVNにノ芯じて現在選択されている音色に
対応する1つのボイスバンクのデータを読み出す。キー
スケーリング及び/又はタッチコントロールを行なう場
合は、各ボイスバンクは、そのボイスナンバVNのみな
らずキーコードKC及び/又はタッチデータTDに応じ
てパラメータエリアのパラメータバンクを指定する情報
を読み出すことができるようになっており、また、キー
スケーリング及び/又はタッチコントロールのためのレ
ベル制御データ及びエンベロープレート制御データを読
み出すことができるようになっている。
対応する1つのボイスバンクのデータを読み出す。キー
スケーリング及び/又はタッチコントロールを行なう場
合は、各ボイスバンクは、そのボイスナンバVNのみな
らずキーコードKC及び/又はタッチデータTDに応じ
てパラメータエリアのパラメータバンクを指定する情報
を読み出すことができるようになっており、また、キー
スケーリング及び/又はタッチコントロールのためのレ
ベル制御データ及びエンベロープレート制御データを読
み出すことができるようになっている。
従って、その場合は、ボイスナンバVNと、キーコード
KC及び/又はタッチデータTDに応じてボイスデータ
エリアにアクセスする。
KC及び/又はタッチデータTDに応じてボイスデータ
エリアにアクセスする。
読み出されたパラメータバンク指定情報に応じて、パラ
メータバンクからデータを読み出す。まず、スタートア
ドレスデータは、RAM36におけるチャンネルナンバ
CHNが示すチャンネルのトーンデータ記憶エリアのト
ーンデータアドレスOに位相アドレス現在値データAD
RESとしてストアされ、これが位相アドレス信号の初
期値となる。この位相アドレス現在値データADRES
は、以後逐次更新される。
メータバンクからデータを読み出す。まず、スタートア
ドレスデータは、RAM36におけるチャンネルナンバ
CHNが示すチャンネルのトーンデータ記憶エリアのト
ーンデータアドレスOに位相アドレス現在値データAD
RESとしてストアされ、これが位相アドレス信号の初
期値となる。この位相アドレス現在値データADRES
は、以後逐次更新される。
また、パラメータバンクから読み出したスタートアドレ
スデータに同じく読み出したアタックサイズデータを加
算してアタックエンドアドレスATKENDを作成し、
これをRAM36におけるチャンネルナンバCHNが示
すチャンネルのトーンデータ記憶エリアのトーンデータ
アドレス1にストアする。また、スタートアドレスデー
タに同じく読み出したループサイズデータを加算してル
ープエンドアドレスLOPENDを作成し、これをRA
M36におけるチャンネルナンバCHNが示すチャンネ
ルのトーンデータ記憶エリアのトーンデータアドレス2
にストアする。この場合の加算演算は、詳しく説明しな
いが、加算部20を使用して行なってよい。
スデータに同じく読み出したアタックサイズデータを加
算してアタックエンドアドレスATKENDを作成し、
これをRAM36におけるチャンネルナンバCHNが示
すチャンネルのトーンデータ記憶エリアのトーンデータ
アドレス1にストアする。また、スタートアドレスデー
タに同じく読み出したループサイズデータを加算してル
ープエンドアドレスLOPENDを作成し、これをRA
M36におけるチャンネルナンバCHNが示すチャンネ
ルのトーンデータ記憶エリアのトーンデータアドレス2
にストアする。この場合の加算演算は、詳しく説明しな
いが、加算部20を使用して行なってよい。
また、パラメータバンクから読み出された各エンベロー
プパラメータデータAR,DLR,D2R,RR,5U
SR,DLL、D2Lを、RAM36におけるチャンネ
ルナンバCHNが示すチャンネルのトーンデータ記憶エ
リアのトーンデータアドレスA ()l)〜D (H)
にそれぞれストアする。
プパラメータデータAR,DLR,D2R,RR,5U
SR,DLL、D2Lを、RAM36におけるチャンネ
ルナンバCHNが示すチャンネルのトーンデータ記憶エ
リアのトーンデータアドレスA ()l)〜D (H)
にそれぞれストアする。
これらのデータはそれぞれ6ビツト構成であり、トーン
データアドレスの下位6ビツト及びその上位6ビツトに
それぞれストアする。なお、この場合、キースケーリン
グ及び/又はタッチコントロールのための前述のエンベ
ロープレート制御データ及びレベル制御データに応じて
これらのエンベロープパラメータデータを変更したもの
をRAM36に記憶するようにしてもよい。
データアドレスの下位6ビツト及びその上位6ビツトに
それぞれストアする。なお、この場合、キースケーリン
グ及び/又はタッチコントロールのための前述のエンベ
ロープレート制御データ及びレベル制御データに応じて
これらのエンベロープパラメータデータを変更したもの
をRAM36に記憶するようにしてもよい。
RAM36におけるトーンデータ記憶エリアのトーンデ
ータアドレスA (H)の下位6ビツトには上述のアタ
ックレートデータARがストアされるが、その上位6ビ
ツトにはトータルレベルデータTLLEVがストアされ
る。このトータルレベルデータTLLEVは、前述のキ
ースケーリング及び/又はタッチコントロールのための
レベル制御データを加味してトータルレベルを設定する
データである。
ータアドレスA (H)の下位6ビツトには上述のアタ
ックレートデータARがストアされるが、その上位6ビ
ツトにはトータルレベルデータTLLEVがストアされ
る。このトータルレベルデータTLLEVは、前述のキ
ースケーリング及び/又はタッチコントロールのための
レベル制御データを加味してトータルレベルを設定する
データである。
RAM36におけるトーンデータ記憶エリアのトーンデ
ータアドレス4及び5には、波形サンプルデータ補間用
の2つの波形サンプルデータTTONE、TONEPが
それぞれストアされる。T○NEPは前回の位相アドレ
ス信号によって読み出した波形サンプルデータであり、
TTONEは新たな位相アドレス信号によって今回読み
出した波形サンプルデータであり、補間の到達目標値で
ある。
ータアドレス4及び5には、波形サンプルデータ補間用
の2つの波形サンプルデータTTONE、TONEPが
それぞれストアされる。T○NEPは前回の位相アドレ
ス信号によって読み出した波形サンプルデータであり、
TTONEは新たな位相アドレス信号によって今回読み
出した波形サンプルデータであり、補間の到達目標値で
ある。
RAM36におけるトーンデータ記憶エリアのトーンデ
ータアドレス6には、エンベロープ計算値データEGが
ストアされる。これはエンベロープ波形発生演算によっ
て求められたエンベロープ波形信号の現在値である。
ータアドレス6には、エンベロープ計算値データEGが
ストアされる。これはエンベロープ波形発生演算によっ
て求められたエンベロープ波形信号の現在値である。
RAM36におけるトーンデータ記憶エリアのトーンデ
ータアドレス7には、トーンレベルデータTONLVが
ストアされる。これは、楽音信号の現在の振幅レベルに
比例するデータである。この利用目的としては、楽音信
号の現在の振幅レベルをエンベロープ波形発生のための
レートデータにフィードバックし、該レートデータを変
更することにより、指数的な(若しくは対数的な)エン
ベロープ波形のカーブをつけることが考えられる。
ータアドレス7には、トーンレベルデータTONLVが
ストアされる。これは、楽音信号の現在の振幅レベルに
比例するデータである。この利用目的としては、楽音信
号の現在の振幅レベルをエンベロープ波形発生のための
レートデータにフィードバックし、該レートデータを変
更することにより、指数的な(若しくは対数的な)エン
ベロープ波形のカーブをつけることが考えられる。
従って、このトーンレベルデータTONLVはエンベロ
ープ制御ユニット41において利用される。
ープ制御ユニット41において利用される。
RAM36におけるトーンデータ記憶エリアのトーンデ
ータアドレス8には、エンベロープステート信号EGS
Tがストアされる。これは、エンベロープ制御ユニット
41の制御のもとで実行されているエンベロープ波形発
生演算の現在の状態、すなわち、アタック、デイケイ、
サスティン、レリース等の各ステートのうちどのステー
トの演算を現在実行しているかを示すものである。エン
ベローフ制御ユニット41からエンベロープステート信
号EGSTが与えられ、これがRAM36に記憶される
。なお、エンベロープ制御ユニット41では、独自の処
理により、まず、キーオンイベントにもとづきアタック
ステートを指示し、以後、各ステートの到達目標レベル
とエンベロープ計算値データEGとの比較結果に応じて
、ステートを適宜切り替える。この場合、レベル比較処
理それ自体は、後述のように、加算部20を利用して行
なわれる。
ータアドレス8には、エンベロープステート信号EGS
Tがストアされる。これは、エンベロープ制御ユニット
41の制御のもとで実行されているエンベロープ波形発
生演算の現在の状態、すなわち、アタック、デイケイ、
サスティン、レリース等の各ステートのうちどのステー
トの演算を現在実行しているかを示すものである。エン
ベローフ制御ユニット41からエンベロープステート信
号EGSTが与えられ、これがRAM36に記憶される
。なお、エンベロープ制御ユニット41では、独自の処
理により、まず、キーオンイベントにもとづきアタック
ステートを指示し、以後、各ステートの到達目標レベル
とエンベロープ計算値データEGとの比較結果に応じて
、ステートを適宜切り替える。この場合、レベル比較処
理それ自体は、後述のように、加算部20を利用して行
なわれる。
加算部20及びその周辺の詳細例
第6図は加算部20及びその周辺回路を幾分詳しく示し
たものである。加算部20は、全体として20ビツトの
フルアダーからなり、下位13ビツトを分担する13ビ
ツトのフルアダーからなる加算器21と、上位7ビツト
を分担する7ビツトのフルアダーからなる加算器22と
によって構成されている。下位13ビツトの加算器21
の桁上げ信号出力C○と上位7ビツトの加算器22の桁
上げ信号入力CIとの間にアンドゲート50が設けられ
ており、このアンドゲート50がマイクロコードに応じ
て制御されるようになっている。アンドゲート50が可
能化されているとき、加算部20は20ビツトのフルア
ダーとして機能する。
たものである。加算部20は、全体として20ビツトの
フルアダーからなり、下位13ビツトを分担する13ビ
ツトのフルアダーからなる加算器21と、上位7ビツト
を分担する7ビツトのフルアダーからなる加算器22と
によって構成されている。下位13ビツトの加算器21
の桁上げ信号出力C○と上位7ビツトの加算器22の桁
上げ信号入力CIとの間にアンドゲート50が設けられ
ており、このアンドゲート50がマイクロコードに応じ
て制御されるようになっている。アンドゲート50が可
能化されているとき、加算部20は20ビツトのフルア
ダーとして機能する。
アンドゲート50が可能化されていないときは、るとき
、加算器21と22が分離され、加算部20は13ビツ
トのフルアダー又は7ビツトのフルアダーとして機能す
る。こうして、アンドゲート50の制御によって、加算
部20の有効ビット数が20ビツトになったり、13ビ
ツト(又は7ビツト)になったりするので、使用目的に
応じて有効ビット数を可変できる。また、分離時には、
2つの加算器21.22で異なる演算を並列的に行なう
こともできる。
、加算器21と22が分離され、加算部20は13ビツ
トのフルアダー又は7ビツトのフルアダーとして機能す
る。こうして、アンドゲート50の制御によって、加算
部20の有効ビット数が20ビツトになったり、13ビ
ツト(又は7ビツト)になったりするので、使用目的に
応じて有効ビット数を可変できる。また、分離時には、
2つの加算器21.22で異なる演算を並列的に行なう
こともできる。
アダー分離を指示するマイクロコードMC1がオアゲー
ト51を介してインバータ52で反転されてアンドゲー
ト50に加わり、該マイクロコードMCIがIt 1
jlのときアンドゲート50を不能化して加算器21と
22を分離する。この場合、加算部20の有効ビット数
を切り替える。
ト51を介してインバータ52で反転されてアンドゲー
ト50に加わり、該マイクロコードMCIがIt 1
jlのときアンドゲート50を不能化して加算器21と
22を分離する。この場合、加算部20の有効ビット数
を切り替える。
また、2種類の乗算を並列的に行なうことを指示するマ
イクロコードMC2がオアゲート51を介してインバー
タ52で反転されてアンドゲート50に加わり、該マイ
クロコードMC2が“1″のときもアンドゲート50を
不能化して加算器21と22を分離する。この場合は、
加算部20で異なる2種類の演算を並行処理する。
イクロコードMC2がオアゲート51を介してインバー
タ52で反転されてアンドゲート50に加わり、該マイ
クロコードMC2が“1″のときもアンドゲート50を
不能化して加算器21と22を分離する。この場合は、
加算部20で異なる2種類の演算を並行処理する。
各レジスタR1,R2,R3,GRは20ビツトパラレ
ルにデータをストアしつるものである。
ルにデータをストアしつるものである。
符号制御回路23は、レジスタR2の各20ビツト出力
を入力した20ビット分の排他オア回路からなり、各排
他オア回路には、符号制御用のマイクロコードMC3が
与えられる。レジスタR2の出力データを減数として加
算部20で減算を行なう場合に、該マイクロコードMC
3を“1”とし。
を入力した20ビット分の排他オア回路からなり、各排
他オア回路には、符号制御用のマイクロコードMC3が
与えられる。レジスタR2の出力データを減数として加
算部20で減算を行なう場合に、該マイクロコードMC
3を“1”とし。
レジスタR2の出力データを反転し、補数に変換する。
通常の加算を行なう場合は、マイクロコードMC3は“
0”であり、レジスタR2の出力データはそのまま符号
制御回路23を通過する。
0”であり、レジスタR2の出力データはそのまま符号
制御回路23を通過する。
論理積回路24は、下位13ビツトに対応するゲート5
3と、上位7ビツトに対応するゲート54とを含む。符
号制御回路23の20ビツト出力のうち下位13ビツト
がゲート53を介して加算器21の一方入力に与えられ
、上位7ビツトがゲート54を介して加算器22の一方
入力に与えられる。
3と、上位7ビツトに対応するゲート54とを含む。符
号制御回路23の20ビツト出力のうち下位13ビツト
がゲート53を介して加算器21の一方入力に与えられ
、上位7ビツトがゲート54を介して加算器22の一方
入力に与えられる。
ゲート53の制御入力には、第1のパラレル/シリアル
変換器PS1から出力されるシリアルデータがアンドゲ
ート55を介して与えられる。ゲート54の制御入力に
は、第2のパラレル/シリアル変換器PS2から出力さ
れるシリアルデータがアンドゲート56を介して与えら
れる。これらのシリアルデータは、乗算演算における乗
数に相当する。アンドゲート55,56は並列乗算を指
示するマイクロコードMC2によって可能化される。従
って、シリアルデータのビットが1”のとき、ゲート5
3.54の入力データが通過し。
変換器PS1から出力されるシリアルデータがアンドゲ
ート55を介して与えられる。ゲート54の制御入力に
は、第2のパラレル/シリアル変換器PS2から出力さ
れるシリアルデータがアンドゲート56を介して与えら
れる。これらのシリアルデータは、乗算演算における乗
数に相当する。アンドゲート55,56は並列乗算を指
示するマイクロコードMC2によって可能化される。従
って、シリアルデータのビットが1”のとき、ゲート5
3.54の入力データが通過し。
“OIIのとき阻止される(“O”とされる)。これに
より、乗数の各ビットに対応する部分積が求められる。
より、乗数の各ビットに対応する部分積が求められる。
各加算器21.22では、後述するように、乗数の各ビ
ットに対応する部分積を加算し。
ットに対応する部分積を加算し。
最終的な積を求める。各加算器21.22におけるこの
ような乗算演算は、それぞれ個別に並列的に行なわれる
。
ような乗算演算は、それぞれ個別に並列的に行なわれる
。
なお、加減算を行なうときに、ゲート53,54を常時
開放しておくために、マイクロコードMC4,MC5が
オアゲート57.58を介して各ゲート53.54の制
御入力に与えられる。なお、下位13ビツト加算器21
のみを有効使用する場合は、マイクロコードMC4を1
′1”、MC5を110”としてゲート54を閉じても
よい。
開放しておくために、マイクロコードMC4,MC5が
オアゲート57.58を介して各ゲート53.54の制
御入力に与えられる。なお、下位13ビツト加算器21
のみを有効使用する場合は、マイクロコードMC4を1
′1”、MC5を110”としてゲート54を閉じても
よい。
レジスタR1又はR3の20ビツト出力が多機能シフタ
25を介して加算部20に与えられる。
25を介して加算部20に与えられる。
多機能シフタ25の20ビツト出力のうち下位13ビツ
トが加算器21の他方入力に与えられ、上位7ビツトが
加算器22の他方入力に与えられる。
トが加算器21の他方入力に与えられ、上位7ビツトが
加算器22の他方入力に与えられる。
多機能シフタ25は前述の通り、データシフト処理、デ
ータの選択、通過、阻止、−時記憶等様々な機能を様々
なマイクロコードM Cmに応じて行なうものであり、
データシフトを行なった場合は、有効データのオーバー
フローによって誤差が出ることを防ぐためにオーバーフ
ロー補償処理を行なうようにもなっている。
ータの選択、通過、阻止、−時記憶等様々な機能を様々
なマイクロコードM Cmに応じて行なうものであり、
データシフトを行なった場合は、有効データのオーバー
フローによって誤差が出ることを防ぐためにオーバーフ
ロー補償処理を行なうようにもなっている。
勿論、各レジスタR4,R2,R3,ORにも所定のマ
イクロコードが与えられ、TGババス5あるいは加算部
20からのデータの取り込みを制御するようになってい
る。
イクロコードが与えられ、TGババス5あるいは加算部
20からのデータの取り込みを制御するようになってい
る。
゛ 々な2 の ° 日
第7図(a)、(b)、(c)はマイクロコードROM
26から発生されるマイクロコードに従って実行される
各種処理の一例を示すフローチャートである。この図に
従って各種の演算について説明する。
26から発生されるマイクロコードに従って実行される
各種処理の一例を示すフローチャートである。この図に
従って各種の演算について説明する。
(1)位相アドレス演算
まず、トーンデータRAM36から位相アドレス現在値
データADRESを読み出し、レジスタR1にストアす
る(ステップ60)、また、ピッチ発生器42から発生
された位相アドレスレートデータの整数部PGRTをレ
ジスタR2にストアする(ステップ60)、なお、各レ
ジスタ等は。
データADRESを読み出し、レジスタR1にストアす
る(ステップ60)、また、ピッチ発生器42から発生
された位相アドレスレートデータの整数部PGRTをレ
ジスタR2にストアする(ステップ60)、なお、各レ
ジスタ等は。
2相クロツクで動作しているものとし、成るマイクロコ
ードステップタイミングの後半で取り込んだデータを次
のマイクロコードステップタイミングの立上りに同期し
て出力するものとする。従って、同じマイクロコードス
テップタイミングでデータを出力しながら別のデータを
取り込むことができ机 次に、レジスタR1の出力とレジスタR2の出力とを加
算部20で加算する(ステップ61)。
ードステップタイミングの後半で取り込んだデータを次
のマイクロコードステップタイミングの立上りに同期し
て出力するものとする。従って、同じマイクロコードス
テップタイミングでデータを出力しながら別のデータを
取り込むことができ机 次に、レジスタR1の出力とレジスタR2の出力とを加
算部20で加算する(ステップ61)。
この場合、第6図におけるマイクロコードは次のように
設定される。
設定される。
MCI=”O”、MC2=“O”、MC3=“O”−M
C4=”1”、MC5=“]、”、MCm=R1セレク
ト。
C4=”1”、MC5=“]、”、MCm=R1セレク
ト。
これにより、加算部20は20ビツトすべてを有効ビッ
トとして通常の加算動作を行ない、R1+R2を実行す
る。そして、その結果をレジスタR3,GR及びアドレ
スラッチADLに取り込む。
トとして通常の加算動作を行ない、R1+R2を実行す
る。そして、その結果をレジスタR3,GR及びアドレ
スラッチADLに取り込む。
なお、このように加算部2oの20ビツトすべてを有効
ビットとして演算を行なう場合は、桁上げ信号の伝達遅
れにより、2クロック分の計算時間を要する。従って、
加算結果をR3,GR,ADLに取り込むタイミングは
次のマイクロコードステップタイミングである。
ビットとして演算を行なう場合は、桁上げ信号の伝達遅
れにより、2クロック分の計算時間を要する。従って、
加算結果をR3,GR,ADLに取り込むタイミングは
次のマイクロコードステップタイミングである。
こうして、位相アドレス現在値データADRESに対し
て位相アドレスレートデータの整数部PGRTが加算さ
れ、位相アドレス現在値ADRESがPGRTの値の分
だけ増加し、位相アドレス歩進が行なわれる。従って、
歩進された位相アドレス信号がレジスタR3,GR,A
DLにストアされる。
て位相アドレスレートデータの整数部PGRTが加算さ
れ、位相アドレス現在値ADRESがPGRTの値の分
だけ増加し、位相アドレス歩進が行なわれる。従って、
歩進された位相アドレス信号がレジスタR3,GR,A
DLにストアされる。
なお、この演算は毎チャンネルタイミングで行なわれる
が、位相アドレスレートデータの整数部PGRTの値は
変化タイミングでだけ生じ、変化しないタイミングでは
0”である。従って、PGRT=”O”の加算を行なっ
た場合は実質的な位相アドレス現在値ADRESは変化
しない。なお、その場合でも、位相アドレスレートデー
タの小数部PGFCは生じており、後述するように補間
が行なわれる。なお、ピッチ発生器42から発生される
位相アドレスレートデータのフォーマットを模式的に示
すと第8図(a)のようである。
が、位相アドレスレートデータの整数部PGRTの値は
変化タイミングでだけ生じ、変化しないタイミングでは
0”である。従って、PGRT=”O”の加算を行なっ
た場合は実質的な位相アドレス現在値ADRESは変化
しない。なお、その場合でも、位相アドレスレートデー
タの小数部PGFCは生じており、後述するように補間
が行なわれる。なお、ピッチ発生器42から発生される
位相アドレスレートデータのフォーマットを模式的に示
すと第8図(a)のようである。
また、トーンデータRAM36からループエンドアドレ
スLOPENDを読み出し、レジスタR2にストアする
(ステップ61)、また、トーンデータRAM36から
エンベロープステート信号EGSTを読み出し、エンベ
ロープ制御ユニット41 (これをEGCUと略記する
)に与える。
スLOPENDを読み出し、レジスタR2にストアする
(ステップ61)、また、トーンデータRAM36から
エンベロープステート信号EGSTを読み出し、エンベ
ロープ制御ユニット41 (これをEGCUと略記する
)に与える。
(2)アドレス比較
次に、レジスタR3の位相アドレス演算値からレジスタ
R2のループエンドアドレスLOPENDを減算する(
ステップ62)。この場合、第6図におけるマイクロコ
ードは次のように設定される。
R2のループエンドアドレスLOPENDを減算する(
ステップ62)。この場合、第6図におけるマイクロコ
ードは次のように設定される。
MC1=“O”、MC2=“O”、MC3=“1”、M
C4=“1”、MC5=″1”、MCm=R3セレクト
。
C4=“1”、MC5=″1”、MCm=R3セレクト
。
これにより、加算部20は20ビツトすべてを有効ビッ
トとしてR3−R2の減算を実行する。
トとしてR3−R2の減算を実行する。
そして、その結果をレジスタR3に取り込む。
このR3−R2の減算は、位相アドレス演算値がループ
エンドアドレスLOPENDを超えたかどうかを調べる
「アドレス比較」のために行なう。
エンドアドレスLOPENDを超えたかどうかを調べる
「アドレス比較」のために行なう。
つまり、位相アドレス演算値がループエンドアドレスL
OPENDにまだ到達していない場合は、R3<R2で
あり、補数演算を行なっている加算部20からはキャリ
ー信号が出る。一方、位相アドレス演算値がループエン
ドアドレスLOPENDを超えた場合は、R3>R2で
あり、補数演算を行なっている加算部20からはキャリ
ー信号が出す、演算結果R3−R2は、ループエンドア
ドレスLOPENDを超えた端数を示している。従って
、加算部20からキャリー信号が出たか否かによって「
アドレス比較」の結果が判る。
OPENDにまだ到達していない場合は、R3<R2で
あり、補数演算を行なっている加算部20からはキャリ
ー信号が出る。一方、位相アドレス演算値がループエン
ドアドレスLOPENDを超えた場合は、R3>R2で
あり、補数演算を行なっている加算部20からはキャリ
ー信号が出す、演算結果R3−R2は、ループエンドア
ドレスLOPENDを超えた端数を示している。従って
、加算部20からキャリー信号が出たか否かによって「
アドレス比較」の結果が判る。
また、トーンデータRAM36からエンベロープ計算値
データEGとトーンレベルデータTONLVを読み出し
、エンベロープ制御ユニット41に与える(ステップ6
2)。
データEGとトーンレベルデータTONLVを読み出し
、エンベロープ制御ユニット41に与える(ステップ6
2)。
次に、加算部20からキャリー信号が出たか否かを調べ
る(ステップ63)。YESなら、位相アドレス演算値
がループエンドアドレスLOPENDにまだ到達してい
ないので、位相アドレス演算値が有効であるから、レジ
スタGRの位相アドレス演算値を新しい位相アドレス現
在値データADRESとしてトーンデータRAM36に
記憶する(ステップ64)。次に、トーンデータRAM
36からエンベロープ計算値データEGを読み出し、レ
ジスタR1にストアする(ステップ65)。
る(ステップ63)。YESなら、位相アドレス演算値
がループエンドアドレスLOPENDにまだ到達してい
ないので、位相アドレス演算値が有効であるから、レジ
スタGRの位相アドレス演算値を新しい位相アドレス現
在値データADRESとしてトーンデータRAM36に
記憶する(ステップ64)。次に、トーンデータRAM
36からエンベロープ計算値データEGを読み出し、レ
ジスタR1にストアする(ステップ65)。
(3)繰返し時の端数演算
位相アドレス演算値がループエンドアドレスLOPEN
Dを超えた場合は、トーンデータRAM36からアタッ
クエンドアドレスATKENDを読み出し、レジスタR
2にストアする(ステップ66)。
Dを超えた場合は、トーンデータRAM36からアタッ
クエンドアドレスATKENDを読み出し、レジスタR
2にストアする(ステップ66)。
次に、レジスタR3の出力とレジスタR2の出力とを加
算部20で加算する(ステップ67)。
算部20で加算する(ステップ67)。
この場合、第6図におけるマイクロコードは次のように
設定される。
設定される。
MC1= ”O”、MC2=“O”、MC3=1′0”
、MC4= ”l” 、MC5= ”1”、MCm=R
3セレクト。
、MC4= ”l” 、MC5= ”1”、MCm=R
3セレクト。
これにより、加算部20は20ビツトすべてを有効ビッ
トとして通常の加算動作を行ない、R3+R2を実行す
る。そして、その結果をレジスタR3及びアドレスラッ
チADLに取り込む。この場合、レジスタR3のデータ
は、前のステップ62における演算結果R3−R2であ
り、ループエンドアドレスLOPENDを超えた端数ア
ドレスを示している。従って、この端数アドレスをアタ
ックエンドアドレスATKENDに加算したものが求め
られ、これが新しい位相アドレス信号としてアドレスラ
ッチADLに取り込まれ、かつレジスタR3にストアさ
れる。
トとして通常の加算動作を行ない、R3+R2を実行す
る。そして、その結果をレジスタR3及びアドレスラッ
チADLに取り込む。この場合、レジスタR3のデータ
は、前のステップ62における演算結果R3−R2であ
り、ループエンドアドレスLOPENDを超えた端数ア
ドレスを示している。従って、この端数アドレスをアタ
ックエンドアドレスATKENDに加算したものが求め
られ、これが新しい位相アドレス信号としてアドレスラ
ッチADLに取り込まれ、かつレジスタR3にストアさ
れる。
また、トーンデータRAM36からエンベロープ計算値
データEGを読み出し、レジスタR1にストアする(ス
テップ67)。
データEGを読み出し、レジスタR1にストアする(ス
テップ67)。
次に、レジスタR3のデータを新しい位相アドレス現在
値データADRESとしてトーンデータRAM36に記
憶する(ステップ68)。
値データADRESとしてトーンデータRAM36に記
憶する(ステップ68)。
こうして、ループエンドアドレスLOPENDからアタ
ックエンドアドレスATKENDに戻る処理が行なわれ
、繰返し部分の波形を繰返し読み出すための制御がなさ
れる6 (4)エンベロープレベル比較 次に、トーンデータRAM36に記憶されているエンベ
ロープパラメータデータAR,DLR。
ックエンドアドレスATKENDに戻る処理が行なわれ
、繰返し部分の波形を繰返し読み出すための制御がなさ
れる6 (4)エンベロープレベル比較 次に、トーンデータRAM36に記憶されているエンベ
ロープパラメータデータAR,DLR。
D2R,RR,5USR,DLL、D2Lのうち。
現在のエンベロープステートEGSTに対応したレート
データとレベルデータを読み出して、エンベロープ制御
ユニット41に与える(ステップ69)。また、現在の
エンベロープステートにおけるEG目標レしルデータを
レジスタR2にストアする。
データとレベルデータを読み出して、エンベロープ制御
ユニット41に与える(ステップ69)。また、現在の
エンベロープステートにおけるEG目標レしルデータを
レジスタR2にストアする。
次に、レジスタR1に記憶されているエンベロープ計算
値データEGを多機能シフタ25で4ビツト下位にシフ
トし、この多機能シフタ25の出力データからレジスタ
R2のEG目標レベルデータを減算する(ステップ70
)。この場合、第6図におけるマイクロコードは次のよ
うに設定される。
値データEGを多機能シフタ25で4ビツト下位にシフ
トし、この多機能シフタ25の出力データからレジスタ
R2のEG目標レベルデータを減算する(ステップ70
)。この場合、第6図におけるマイクロコードは次のよ
うに設定される。
MC1= ”1” 、MC2= ”O”、MC3=“1
”−MC4= “1” 、MC5= ”O” 、M
Cm=R1セレクトして4ビツト下位にシフト。
”−MC4= “1” 、MC5= ”O” 、M
Cm=R1セレクトして4ビツト下位にシフト。
これにより、加算部20では下位13ビツトの加算器2
1が有効になり、有効ビット13ビツトでR1)4ビッ
ト−R2の減算を実行する。なお、このような13ビツ
ト演算の場合は、桁上げ信号の伝達遅れが1クロック分
の計算時間内に納まり、1マイクロコードステツプタイ
ミング内で演算が完了する。
1が有効になり、有効ビット13ビツトでR1)4ビッ
ト−R2の減算を実行する。なお、このような13ビツ
ト演算の場合は、桁上げ信号の伝達遅れが1クロック分
の計算時間内に納まり、1マイクロコードステツプタイ
ミング内で演算が完了する。
レジスタR1に記憶されているエンベロープ計算値デー
タEGを多機能シフタ25で4ビツト下位にシフトする
理由は、レジスタR2にストアされているEG目標レベ
ルデータに桁を合わせるためである。詳しくは、エンベ
ロープ計算値データEGのフォーマットを模式的に示す
と第8図(b)のようであり、有効ビットが10ビツト
のデータであって、その上位4ビツトが指数部、下位6
ビツトが仮数部である。これに対してEG目標レベルデ
ータは有効6ビツトのデータであり、レジスタR2の下
位6ビツトにストアされる。そこで、エンベロープ計算
値データEGの上位6ビツト部分をEG目標レベルデー
タに桁合わせするために4ビツト下位にシフトするので
ある。
タEGを多機能シフタ25で4ビツト下位にシフトする
理由は、レジスタR2にストアされているEG目標レベ
ルデータに桁を合わせるためである。詳しくは、エンベ
ロープ計算値データEGのフォーマットを模式的に示す
と第8図(b)のようであり、有効ビットが10ビツト
のデータであって、その上位4ビツトが指数部、下位6
ビツトが仮数部である。これに対してEG目標レベルデ
ータは有効6ビツトのデータであり、レジスタR2の下
位6ビツトにストアされる。そこで、エンベロープ計算
値データEGの上位6ビツト部分をEG目標レベルデー
タに桁合わせするために4ビツト下位にシフトするので
ある。
このR1)4ビット−R2の減算は、現在のエンベロー
プ計算値データEGがEG目標レベルデータよりも大き
いか、または小さいかを比較するために行なう。つまり
、エンベロープ計算値データEGがEG目標レベルデー
タよりも小さい場合は、(R1>4ビツト)〈R2であ
り、補数演算を行なっている加算部20からはキャリー
信号が出る。一方、エンベロープ計算値データEGがE
G目標レベルデータよりも大きい場合は、(R1)4ビ
ツト)〉R2であり、補数演算を行なっている加算部2
0からはキャリー信号は出ない。従って、加算部20か
らキャリー信号が出たか否かによって「エンベロープレ
ベル比較」の結果が判る。
プ計算値データEGがEG目標レベルデータよりも大き
いか、または小さいかを比較するために行なう。つまり
、エンベロープ計算値データEGがEG目標レベルデー
タよりも小さい場合は、(R1>4ビツト)〈R2であ
り、補数演算を行なっている加算部20からはキャリー
信号が出る。一方、エンベロープ計算値データEGがE
G目標レベルデータよりも大きい場合は、(R1)4ビ
ツト)〉R2であり、補数演算を行なっている加算部2
0からはキャリー信号は出ない。従って、加算部20か
らキャリー信号が出たか否かによって「エンベロープレ
ベル比較」の結果が判る。
この加算部20からのキャリー信号をエンベロープ制御
ユニット41に与え、エンベロープ波形の傾き符号の制
御に使用する。
ユニット41に与え、エンベロープ波形の傾き符号の制
御に使用する。
エンベローフ制御ユニット41では、エンベロープレー
トデータに基づきエンベロープレベル変化幅データΔE
Gを作成する。このΔEGは上述の加算部20からのキ
ャリー信号の有無に応じて正負符号が付与されているも
のである。つまり、負の場合は変化幅データΔEGは補
数で与えられる。この符号制御済のエンベロープレベル
変化幅データΔEGをレジスタR2にストアする(ステ
ップ71)。なお、エンベロープ制御ユニット41では
、ステート管理を常に行なっており、ステートを更新す
べきことを判断したら、エンベロープステート信号EG
STを更新し、これをトーンデータRAM36に記憶す
る。
トデータに基づきエンベロープレベル変化幅データΔE
Gを作成する。このΔEGは上述の加算部20からのキ
ャリー信号の有無に応じて正負符号が付与されているも
のである。つまり、負の場合は変化幅データΔEGは補
数で与えられる。この符号制御済のエンベロープレベル
変化幅データΔEGをレジスタR2にストアする(ステ
ップ71)。なお、エンベロープ制御ユニット41では
、ステート管理を常に行なっており、ステートを更新す
べきことを判断したら、エンベロープステート信号EG
STを更新し、これをトーンデータRAM36に記憶す
る。
(5)エンベロープ現在値演算
次に、レジスタR1に記憶されているエンベロープ計算
値データEGとレジスタR2に記憶されているエンベロ
ープレベル変化幅データΔEGとを加算部20で加算す
る(ステップ72)。この場合、第6図におけるマイク
ロコードは次のように設定される。
値データEGとレジスタR2に記憶されているエンベロ
ープレベル変化幅データΔEGとを加算部20で加算す
る(ステップ72)。この場合、第6図におけるマイク
ロコードは次のように設定される。
MC1= “1” 、MC2= “0” 、MC3
=“0” =MC4=”1”、MC5= O” 、M
Cm=R1セレクト。
=“0” =MC4=”1”、MC5= O” 、M
Cm=R1セレクト。
これにより、加算部20では下位13ビツトの加算器2
1が有効になり、有効ビット13ビツトで通常の加算動
作を行ない、R1+R2を実行する。そして、その結果
をレジスタR3に取り込む。
1が有効になり、有効ビット13ビツトで通常の加算動
作を行ない、R1+R2を実行する。そして、その結果
をレジスタR3に取り込む。
ただし、上述のようにエンベロープレベル変化幅データ
へEGは符号制御済であるため、実際はその正負符号に
応じて加減算が行なわれる。
へEGは符号制御済であるため、実際はその正負符号に
応じて加減算が行なわれる。
こうして、エンベロープ計算値データEGが変化幅デー
タΔEGの分だけ増減し、新たなエンベロープ計算値デ
ータが求められ、これがレジスタR3にストアされる。
タΔEGの分だけ増減し、新たなエンベロープ計算値デ
ータが求められ、これがレジスタR3にストアされる。
また、トーンデータRAM36からトータルレベルデー
タTLLEVを読み出し、レジスタR1に一ストアする
(ステップ72)。
タTLLEVを読み出し、レジスタR1に一ストアする
(ステップ72)。
こうしてレジスタR3にストアされた新たなエンベロー
プ計算値データは、トーンデータRAM36に新たなエ
ンベロープ計算値データEGとして書き込まれると共に
、エンベロープ制御ユニット41にも与えられる(ステ
ップ73)。
プ計算値データは、トーンデータRAM36に新たなエ
ンベロープ計算値データEGとして書き込まれると共に
、エンベロープ制御ユニット41にも与えられる(ステ
ップ73)。
(6)トータルレベル演算
次に、トーンデータRAM36からトーンボリューム設
定データVLMを読み出し、レジスタR2にストアする
(ステップ74)。
定データVLMを読み出し、レジスタR2にストアする
(ステップ74)。
そして、レジスタR1に記憶されているトータルレベル
データTLLEVとレジスタR2に記憶されているトー
ンボリューム設定データVLMとを加算部20で加算す
る(ステップ75)。この場合、第6図におけるマイク
ロコードは次のように設定される。
データTLLEVとレジスタR2に記憶されているトー
ンボリューム設定データVLMとを加算部20で加算す
る(ステップ75)。この場合、第6図におけるマイク
ロコードは次のように設定される。
MC1=“1” 、MC2= ”O”、MC3=“0”
、MC4= ”1” 、MC5= ”O” 、MCm=
R1セレクト。
、MC4= ”1” 、MC5= ”O” 、MCm=
R1セレクト。
これにより、加算部20では下位13ビツトの加算器2
1が有効になり、有効ビット13ビツトで通常の加算動
作を行ない、R1+R2を実行する。そして、その結果
をレジスタR3に取り込む。
1が有効になり、有効ビット13ビツトで通常の加算動
作を行ない、R1+R2を実行する。そして、その結果
をレジスタR3に取り込む。
こうして、キースケーリング及び/又はタッチコントロ
ールに応じたトータルレベルデータTLLEVと手動設
定されたトーンボリューム設定データVLMとが加算さ
れ、楽音のトータルレベルを設定するトータルレベル制
御データとしてレジスタR3にストアされる。
ールに応じたトータルレベルデータTLLEVと手動設
定されたトーンボリューム設定データVLMとが加算さ
れ、楽音のトータルレベルを設定するトータルレベル制
御データとしてレジスタR3にストアされる。
(7)EGとトータルレベル制御データの演算法に、レ
ジスタR3に記憶されているトータルレベル制御データ
を多機能シフタ25で4ビツト上位にシフトする処理を
オーバーフロー補償処理付きで行なう(ステップ76)
。これはレジスタR3に記憶されているトータルレベル
制御データの有効ビットが下位6ビツトであるから、こ
の6ビツトを4ビツト上位にシフトして、エンベロープ
計算値データEGにおける有効10ビツトの最上位6ビ
ツトの位置に合わせるためである。
ジスタR3に記憶されているトータルレベル制御データ
を多機能シフタ25で4ビツト上位にシフトする処理を
オーバーフロー補償処理付きで行なう(ステップ76)
。これはレジスタR3に記憶されているトータルレベル
制御データの有効ビットが下位6ビツトであるから、こ
の6ビツトを4ビツト上位にシフトして、エンベロープ
計算値データEGにおける有効10ビツトの最上位6ビ
ツトの位置に合わせるためである。
また、トーンデータRAM36がらエンベロープ計算値
データEGを読み出し、レジスタR2にストアする。
データEGを読み出し、レジスタR2にストアする。
次に、レジスタR3に記憶されているトータルレベル制
御データを多機能シフタ25で4ビツト上位にシフトし
たもの(R3<4ビツト)とレジスタR2に記憶されて
いるエンベロープ計算値データEGとを加算する(ステ
ップ77)。この場合、第6図におけるマイクロコード
は次のように設定される。
御データを多機能シフタ25で4ビツト上位にシフトし
たもの(R3<4ビツト)とレジスタR2に記憶されて
いるエンベロープ計算値データEGとを加算する(ステ
ップ77)。この場合、第6図におけるマイクロコード
は次のように設定される。
MC1=“1” 、MC2= ”O” 、MC3=“O
”、MC4= ”1” 、MC5= O”、MCm=R
3セレクトして4ビツト上位にシフト。
”、MC4= ”1” 、MC5= O”、MCm=R
3セレクトして4ビツト上位にシフト。
これにより、加算部20では下位13ビツトの加算器2
1が有効になり、有効ビット13ビツトでR3(4ビツ
ト+R2の加算を実行する。この加算結果はレジスタO
Rにストアされる。こうして、トータルレベル制御デー
タがエンベロープ計算値データEGに加算される。
1が有効になり、有効ビット13ビツトでR3(4ビツ
ト+R2の加算を実行する。この加算結果はレジスタO
Rにストアされる。こうして、トータルレベル制御デー
タがエンベロープ計算値データEGに加算される。
また、低周波発振器37からトレモロ効果付与のための
振幅変調用低周波データAMLFOを受け、これをレジ
スタR2にストアする。
振幅変調用低周波データAMLFOを受け、これをレジ
スタR2にストアする。
(8)振幅変調演算
次に、レジスタGRに記憶したトータルレベル制御デー
タとエンベロープ計算値データEGの演算結果をオーバ
ーフロー補償回路33でオーバーフロー補償処理して1
0ビツトデータに整え、これをレジスタR1にストアす
る(ステップ78)。
タとエンベロープ計算値データEGの演算結果をオーバ
ーフロー補償回路33でオーバーフロー補償処理して1
0ビツトデータに整え、これをレジスタR1にストアす
る(ステップ78)。
次に、レジスタR1に記憶されているトータルレベル制
御済のエンベロープ計算値データとレジスタR2に記憶
されている振幅変調用低周波データAMLFOとを加算
する(ステップ79)。この場合、第6図におけるマイ
クロコードは次のように設定される。
御済のエンベロープ計算値データとレジスタR2に記憶
されている振幅変調用低周波データAMLFOとを加算
する(ステップ79)。この場合、第6図におけるマイ
クロコードは次のように設定される。
MC:1=“1” 、MC2= ”O#、MC3=11
0”、MC4=“1”、MC5=“O”、MCm=R1
セレクト。
0”、MC4=“1”、MC5=“O”、MCm=R1
セレクト。
これにより、加算部20では下位13ビツトの加算器2
1が有効になり、有効ビット13ビツトでR1+R2の
加算を実行する。この加算結果はレジスタGRにストア
される。こうして、トータルレベル制御データによって
制御されたエンベロープ計算値データが更に振幅変調用
低周波データAMLFOによって制御される。
1が有効になり、有効ビット13ビツトでR1+R2の
加算を実行する。この加算結果はレジスタGRにストア
される。こうして、トータルレベル制御データによって
制御されたエンベロープ計算値データが更に振幅変調用
低周波データAMLFOによって制御される。
次に、レジスタGRに記憶した演算結果(つまリドータ
ルレベル制御済のエンベロープ計算値データ、以下これ
をトーンレベルデータという)をオーバーフロー補償回
路33でオーバーフロー補償処理して10ビツトデータ
に整え、これをレジスタR1にストアする(ステップ8
0)。このように10ビツトデータに整える理由は、第
8図(b)に示したようなエンベロープ計算値データE
Gのフォーマットに合わせるためである。
ルレベル制御済のエンベロープ計算値データ、以下これ
をトーンレベルデータという)をオーバーフロー補償回
路33でオーバーフロー補償処理して10ビツトデータ
に整え、これをレジスタR1にストアする(ステップ8
0)。このように10ビツトデータに整える理由は、第
8図(b)に示したようなエンベロープ計算値データE
Gのフォーマットに合わせるためである。
(9)波形サンプルデータのレベル乗算とPナンバのビ
ブラートデータ作成乗算の並列演算法に、レジスタR1
に記憶されているトータルレベル制御済のエンベロープ
計算値データつまりトーンレベルデータを多機能シフタ
25で4ビツト下位にシフトし、それをレジスタR3に
ストアする(ステップ81)。これはトーンレベルデー
タの上位6ビツトをレジスタR3の最下位6ビツトに位
置させるためである。
ブラートデータ作成乗算の並列演算法に、レジスタR1
に記憶されているトータルレベル制御済のエンベロープ
計算値データつまりトーンレベルデータを多機能シフタ
25で4ビツト下位にシフトし、それをレジスタR3に
ストアする(ステップ81)。これはトーンレベルデー
タの上位6ビツトをレジスタR3の最下位6ビツトに位
置させるためである。
次に、レジスタR3の最下位6ビツトに位置しているト
ーンレベルデータの上位6ビツトをトーンレベルデータ
TONLVとしてトーンデータRAM36に書き込む(
ステップ82)。
ーンレベルデータの上位6ビツトをトーンレベルデータ
TONLVとしてトーンデータRAM36に書き込む(
ステップ82)。
また、アドレスラッチADLにストアされている位相ア
ドレス信号に応じてデータメモリ27から波形サンプル
データを読み出し、これをレジスタR2にストアする。
ドレス信号に応じてデータメモリ27から波形サンプル
データを読み出し、これをレジスタR2にストアする。
その場合、波形サンプルデータの上位13ビツトがレジ
スタR2の下位13ビツトに来るようにストアする。
スタR2の下位13ビツトに来るようにストアする。
また、レジスタR1に記憶されているトーンレベルデー
タのうち上位4ビツトの指数部データを多機能シフタ2
5内のレジスタに取り込み、保存しておく。
タのうち上位4ビツトの指数部データを多機能シフタ2
5内のレジスタに取り込み、保存しておく。
次に、トーンデータRAM36からPナンバPNを読み
出し、レジスタR1にストアする(ステップ83)。そ
の場合、PナンバPNの上位7ビツトがレジスタR1の
下位7ビツトに来るように位置合わせしてストアする。
出し、レジスタR1にストアする(ステップ83)。そ
の場合、PナンバPNの上位7ビツトがレジスタR1の
下位7ビツトに来るように位置合わせしてストアする。
次に、レジスタR1の出力を多機能シフタ25で13ビ
ット上位にシフトしたもの(R1<13ビツト)とレジ
スタR2の出力とを加算する(ステップ84)。この場
合、第6図におけるマイクロコードは次のように設定さ
れる。
ット上位にシフトしたもの(R1<13ビツト)とレジ
スタR2の出力とを加算する(ステップ84)。この場
合、第6図におけるマイクロコードは次のように設定さ
れる。
MC1=“1”、MC2= ”O″、MC3=“0”、
MC4=“1”、MC5=“1”、MCm=R1セレク
トして13ビット上位にシフト。
MC4=“1”、MC5=“1”、MCm=R1セレク
トして13ビット上位にシフト。
つまり、MC1=“1”により加算部2oを加算器21
と22に分離することを指示し、かつMC4=”1”、
MC5=“1″により、2つのゲート53.54を両方
共可能化し、2つの加算器21.22を分離して並行使
用する。なお、ゲート54の7ビツト入力信号は“O”
であるからMC5=“0″であってもよい。
と22に分離することを指示し、かつMC4=”1”、
MC5=“1″により、2つのゲート53.54を両方
共可能化し、2つの加算器21.22を分離して並行使
用する。なお、ゲート54の7ビツト入力信号は“O”
であるからMC5=“0″であってもよい。
レジスタR1の下位7ビツトにはPナンバPNの上位7
ビツトがストアされており、これを13ビット上位にシ
フトすることにより、PナンバPNの上位7ビツトが2
0ビツトデータの最上位7ビツトに位置し、上位7ビツ
トの加算器22に入力される。また、レジスタR2に下
位13ビツトには波形サンプルデータの上位13ビツト
がストアされており、これがゲート53を通過して下位
13ビツトの加算器21に入力される。
ビツトがストアされており、これを13ビット上位にシ
フトすることにより、PナンバPNの上位7ビツトが2
0ビツトデータの最上位7ビツトに位置し、上位7ビツ
トの加算器22に入力される。また、レジスタR2に下
位13ビツトには波形サンプルデータの上位13ビツト
がストアされており、これがゲート53を通過して下位
13ビツトの加算器21に入力される。
これにより、加算部20では、下位13ビツトに波形サ
ンプルデータの上位13ビツトデータを位置させ、上位
7ビツトにPナンバPNの上位7ビツトデータを位置さ
せ、両データを合計20ビツトデータとして並置する処
理を行なう。この両データの並置状態を第8図(c)に
示す。この加算部20の出力はレジスタR3にストアさ
れる。
ンプルデータの上位13ビツトデータを位置させ、上位
7ビツトにPナンバPNの上位7ビツトデータを位置さ
せ、両データを合計20ビツトデータとして並置する処
理を行なう。この両データの並置状態を第8図(c)に
示す。この加算部20の出力はレジスタR3にストアさ
れる。
また、レジスタORに記憶しであるトーンレベルデータ
のうち下位6ビツトの仮数部データを第1のパラレル/
シリアル変換器PSIに取り込む。
のうち下位6ビツトの仮数部データを第1のパラレル/
シリアル変換器PSIに取り込む。
また、低周波発振器37から発生されるビブラート効果
付与のための低周波データLFOを第2のパラレル/シ
リアル変換器PS2に取り込む。この低周波データLF
○も6ビツトフオーマツトのデータである。
付与のための低周波データLFOを第2のパラレル/シ
リアル変換器PS2に取り込む。この低周波データLF
○も6ビツトフオーマツトのデータである。
次に、レジスタR3にストアされている13ビツト波形
サンプルデータと7ビツトPナンバPNデータの並置デ
ータをレジスタR2に取り込む(ステップ85)。
サンプルデータと7ビツトPナンバPNデータの並置デ
ータをレジスタR2に取り込む(ステップ85)。
次のステップ86乃至91の6ステツプタイミングでは
、パラレル/シリアル変換器Psi、PS2から6ビツ
トデータをシリアル出力し、パラレル/シリアル変換器
PS1からシリアル出力されるトーンレベルデータの仮
数部データとレジスタR2の下位13ビツトにストアさ
れている波形サンプルデータとをゲート53と加算器2
1を用いてシリアル乗算すると共に、これに並行して、
パラレル/シリアル変換器PS2からシリアル出力され
る低周波データLFOとレジスタR2の上位7ビツトに
ストアされているPナンバPNとをゲート54と加算器
22を用いてシリアル乗算する処理を行なう。
、パラレル/シリアル変換器Psi、PS2から6ビツ
トデータをシリアル出力し、パラレル/シリアル変換器
PS1からシリアル出力されるトーンレベルデータの仮
数部データとレジスタR2の下位13ビツトにストアさ
れている波形サンプルデータとをゲート53と加算器2
1を用いてシリアル乗算すると共に、これに並行して、
パラレル/シリアル変換器PS2からシリアル出力され
る低周波データLFOとレジスタR2の上位7ビツトに
ストアされているPナンバPNとをゲート54と加算器
22を用いてシリアル乗算する処理を行なう。
この場合、第6図におけるマイクロコードのうちMCI
〜MC5は次のように設定される。
〜MC5は次のように設定される。
MC1=“0”、MC2=“1”、MC3=“0”、M
C4=“O”、MC5=”O”つまり、MC2=“1”
により並列乗算を行なうことを指示し、アンドゲート5
5,56を可能化してパラレル/シリアル変換器Psi
、PS2からのシリアルデータを通過させ、ゲート53
゜54に与える。また、加算部20を加算器21と22
に分離することを指示し、それぞれ独立に演算を行なう
。ゲート53.54に与えられるシリアルデータがIt
I IIのときレジスタR2の出力データが通過し、
加算器21.22に入力される。
C4=“O”、MC5=”O”つまり、MC2=“1”
により並列乗算を行なうことを指示し、アンドゲート5
5,56を可能化してパラレル/シリアル変換器Psi
、PS2からのシリアルデータを通過させ、ゲート53
゜54に与える。また、加算部20を加算器21と22
に分離することを指示し、それぞれ独立に演算を行なう
。ゲート53.54に与えられるシリアルデータがIt
I IIのときレジスタR2の出力データが通過し、
加算器21.22に入力される。
ゲート53.54に与えられるシリアルデータがit
O11のときはレジスタR2の出力データが阻止され、
加算器21.22には0″が入力される。
O11のときはレジスタR2の出力データが阻止され、
加算器21.22には0″が入力される。
つまり、レジスタR2の出力データとシリアルデータの
論理積が該ゲート53.54で求められ、部分積を求め
る演算が行なわれる。
論理積が該ゲート53.54で求められ、部分積を求め
る演算が行なわれる。
加算部2oの出力はレジスタR3に取り込まれ、このレ
ジスタR3の出力が多機能シフタ25でマイクロコード
M Cmに従って適宜シフトされ、加算部20に入力さ
れ、ゲート53.54からの部分積に加算される。すな
わち、レジスタR3には部分積の和が取り込まれる。
ジスタR3の出力が多機能シフタ25でマイクロコード
M Cmに従って適宜シフトされ、加算部20に入力さ
れ、ゲート53.54からの部分積に加算される。すな
わち、レジスタR3には部分積の和が取り込まれる。
多機能シフタ25のマイクロコードM Cmは、既に求
めた部分積の和を順次シフトし、これから加算する部分
積との桁合わせ(重み合わせ)を行なう。なお、最初の
シリアル乗算タイミング(ステップ86)では、M C
m =阻止つまりII OI+出力を指示する。その後
のシリアル乗算タイミング(ステップ87乃至91)で
は、M Cm = R3セレクトし、1ビツト下位にシ
フトすることを指示する(R3>1)。なお、シリアル
データは下位ビットから順に送られるものとする。図に
おいて、P/S b Oはシリアルデータの最下位ビッ
トを示し、P/Sbl〜P/S b 5は順次上位のビ
ットを示す。
めた部分積の和を順次シフトし、これから加算する部分
積との桁合わせ(重み合わせ)を行なう。なお、最初の
シリアル乗算タイミング(ステップ86)では、M C
m =阻止つまりII OI+出力を指示する。その後
のシリアル乗算タイミング(ステップ87乃至91)で
は、M Cm = R3セレクトし、1ビツト下位にシ
フトすることを指示する(R3>1)。なお、シリアル
データは下位ビットから順に送られるものとする。図に
おいて、P/S b Oはシリアルデータの最下位ビッ
トを示し、P/Sbl〜P/S b 5は順次上位のビ
ットを示す。
シリアル乗算を終了する最後のステップ91では、加算
部20の出力つまり乗算結果はレジスタR3とGRに取
り込まれる。また、レジスタR2には“0″がセットさ
れる。
部20の出力つまり乗算結果はレジスタR3とGRに取
り込まれる。また、レジスタR2には“0″がセットさ
れる。
こうして、レジスタR3,GRの下位13ビツトには、
トーンレベルデータの仮数部データと波形サンプルデー
タとの乗算結果がストアされ、上位7ビツトには、低周
波データLFOとPナンバPNとの乗算結果がストアさ
れる。
トーンレベルデータの仮数部データと波形サンプルデー
タとの乗算結果がストアされ、上位7ビツトには、低周
波データLFOとPナンバPNとの乗算結果がストアさ
れる。
(10) PナンバPNのビブラート変調演算法に、レ
ジスタR3の出力を多機能シフタ25で13ビット下位
にシフトしたもの(R3>13ビツト)とレジスタR2
の出力(これは#(OIIである)とを加算し、その結
果をレジスタR3にストアする(ステップ92)、つま
り、レジスタR3では、7ビツトからなる低周波データ
LF○とPナンバPNとの乗算結果が、その最下位7ビ
ツトに位置するようになる。この7ビツトからなる低周
波データLFOとPナンバPNとの乗算結果は、ビブラ
ート変調のための係数データとして使用するので、以下
これをビブラートデータという。
ジスタR3の出力を多機能シフタ25で13ビット下位
にシフトしたもの(R3>13ビツト)とレジスタR2
の出力(これは#(OIIである)とを加算し、その結
果をレジスタR3にストアする(ステップ92)、つま
り、レジスタR3では、7ビツトからなる低周波データ
LF○とPナンバPNとの乗算結果が、その最下位7ビ
ツトに位置するようになる。この7ビツトからなる低周
波データLFOとPナンバPNとの乗算結果は、ビブラ
ート変調のための係数データとして使用するので、以下
これをビブラートデータという。
また、トーンデータRAM36からPナンバPNを読み
出し、レジスタR1にストアする(ステップ92)。
出し、レジスタR1にストアする(ステップ92)。
次に、レジスタR3のビブラートデータをレジスタR2
に取り込み、また、レジスタR1のPナンバPNをレジ
スタR3に取り込む(ステップ93)。
に取り込み、また、レジスタR1のPナンバPNをレジ
スタR3に取り込む(ステップ93)。
次に、レジスタGRの下位13ビツトと上位7ビツトに
並置されているトーンレベルデータの仮数部データと波
形サンプルデータとの乗算結果及び低周波データLFO
とPナンバPNとの乗算結果を、レジスタR1に取り込
み、保存しておく(ステップ94)。
並置されているトーンレベルデータの仮数部データと波
形サンプルデータとの乗算結果及び低周波データLFO
とPナンバPNとの乗算結果を、レジスタR1に取り込
み、保存しておく(ステップ94)。
次に、レジスタR2のビブラートデータをレジスタR3
のPナンバPNに加算し、その加算結果をレジスタGR
にストアする(ステップ95)。
のPナンバPNに加算し、その加算結果をレジスタGR
にストアする(ステップ95)。
また、レジスタR2に“O”をセットする。この場合、
第6図におけるマイクロコードは次のように設定される
。
第6図におけるマイクロコードは次のように設定される
。
MC1=“0”、MC2=“O”、MC3゜110”、
MC4= ”1” 、MC5= ”1”、MCm =
R3セレクト。
MC4= ”1” 、MC5= ”1”、MCm =
R3セレクト。
これにより、加算部20は20ビツトすべてを有効ビッ
トとして通常の加算動作を行ない、R3+R2を実行す
る。こうして、有効ビット20ビツトからなるPナンバ
PNに微小のビブラートデータを加算し、該PナンバP
Nをビブラート変調する。そして、ビブラート変調済み
のPナンバPNをレジスタORに保存しておく。
トとして通常の加算動作を行ない、R3+R2を実行す
る。こうして、有効ビット20ビツトからなるPナンバ
PNに微小のビブラートデータを加算し、該PナンバP
Nをビブラート変調する。そして、ビブラート変調済み
のPナンバPNをレジスタORに保存しておく。
(11)仮数部レベル演算済みの波形サンプルデータに
対する指数部レベル演算 次に、レジスタR1に保存しておいた下位13ビツトと
上位7ビツトに並置されているトーンレベルデータの仮
数部データと波形サンプルデータとの乗算結果及び低周
波データLF○とPナンバPNとの乗算結果に対して、
レジスタR2の110 +1を加算し、その結果をレジ
スタR3にストアする(ステップ96)。この場合、加
算部20は20ビツトすべてを有効ビットとして通常の
加算動作を行なう状態とする。レジスタR1の合計20
ビツトデータを加算部20を介してレジスタR3に転送
している。
対する指数部レベル演算 次に、レジスタR1に保存しておいた下位13ビツトと
上位7ビツトに並置されているトーンレベルデータの仮
数部データと波形サンプルデータとの乗算結果及び低周
波データLF○とPナンバPNとの乗算結果に対して、
レジスタR2の110 +1を加算し、その結果をレジ
スタR3にストアする(ステップ96)。この場合、加
算部20は20ビツトすべてを有効ビットとして通常の
加算動作を行なう状態とする。レジスタR1の合計20
ビツトデータを加算部20を介してレジスタR3に転送
している。
次に、レジスタR3の下位13ビツトにストアされてい
るトーンレベルデータの仮数部データと波形サンプルデ
ータとの乗算結果を、多機能シフタ25に取り込み、こ
れに対して、前のステップ82のときに多機能シフタ2
5内に保存していたトーンレベルデータの指数部に応じ
たビットシフトを行ない、その結果を加算部20を経由
してレジスタR3に取り込む(ステップ97)。
るトーンレベルデータの仮数部データと波形サンプルデ
ータとの乗算結果を、多機能シフタ25に取り込み、こ
れに対して、前のステップ82のときに多機能シフタ2
5内に保存していたトーンレベルデータの指数部に応じ
たビットシフトを行ない、その結果を加算部20を経由
してレジスタR3に取り込む(ステップ97)。
こうして、トーンレベルデータの仮数部と指数部の両方
によるレベル制御を完了した波形サンプルデータがレジ
スタR3にストアされる。
によるレベル制御を完了した波形サンプルデータがレジ
スタR3にストアされる。
(12)補間演算
次に、トーンデータRAM36から補間目標サンプルデ
ータTTONEを読み出し、レジスタR1にストアする
(ステップ98)。
ータTTONEを読み出し、レジスタR1にストアする
(ステップ98)。
そして、レジスタR3に記憶されているレベル制御を完
了した波形サンプルデータを新たなTTONEとしてト
ーンデータRAM36に書き込む(ステップ99)。
了した波形サンプルデータを新たなTTONEとしてト
ーンデータRAM36に書き込む(ステップ99)。
次に、位相アドレスレートデータの整数部PGRTが1
10 I+であるかを調べる(ステップ100)。
10 I+であるかを調べる(ステップ100)。
PGRTが“OI+であれば、今回のタイミングでは補
間目標サンプルデータTTONEは変化していず、補間
演算によって波形サンプルデータを生成すべきであるこ
とを意味する。
間目標サンプルデータTTONEは変化していず、補間
演算によって波形サンプルデータを生成すべきであるこ
とを意味する。
そこで、トーンデータRAM36から補間目標サンプル
データTTONEを読み出し、レジスタR1にストアす
る。また、トーンデータRAM36から補間開始サンプ
ルデータTONEPを読み出し、レジスタR2にストア
する(ステップ101)。
データTTONEを読み出し、レジスタR1にストアす
る。また、トーンデータRAM36から補間開始サンプ
ルデータTONEPを読み出し、レジスタR2にストア
する(ステップ101)。
次に、R1−R2すなわちTTONE−TONEPの引
算を行ない、その結果をレジスタR3にストアする(ス
テップ102)。この場合、第6図におけるマイクロコ
ードは次のように設定される。
算を行ない、その結果をレジスタR3にストアする(ス
テップ102)。この場合、第6図におけるマイクロコ
ードは次のように設定される。
MC:1=“O”、MC2=“O”、MC3=”l”
、MC4= ”1” 、MC5=“1”、MCm=R1
セレクト。
、MC4= ”1” 、MC5=“1”、MCm=R1
セレクト。
これにより、加算部20では有効ビット20ビツトで引
算動作を行ない、R1−R2を求める。
算動作を行ない、R1−R2を求める。
なお、これは波形サンプルデータの有効ビットを20ビ
ツトとした例であるが、有効ビットを13ビツトとした
場合は、加算部2oで有効ビット13ビツトの引算動作
を行なうようにすればよい。
ツトとした例であるが、有効ビットを13ビツトとした
場合は、加算部2oで有効ビット13ビツトの引算動作
を行なうようにすればよい。
また、レジスタR2を110”にセットし、かつピッチ
発生器42から発生された位相アドレスレートデータの
小数部PGFRをパラレル/シリアル変換器Psiにロ
ードする。
発生器42から発生された位相アドレスレートデータの
小数部PGFRをパラレル/シリアル変換器Psiにロ
ードする。
次に、レジスタR3のデータ(補間目標サンプルデータ
TTONEと補間開始サンプルデータT○NEPとの差
データ)をレジスタR2に移し、レジスタR3にはO+
R2つまり“0”をストアする(ステップ103)。
TTONEと補間開始サンプルデータT○NEPとの差
データ)をレジスタR2に移し、レジスタR3にはO+
R2つまり“0”をストアする(ステップ103)。
次のステップ104,105の2ステツプタイミングで
は、パラレル/シリアル変換器PS 1゜から2ビツト
の小数部データPGFRをシリアル出力し、これとレジ
スタR2の差データTTONE−TONEPとをゲート
53と加算器21を用いてシリアル乗算する。この場合
、第6図におけるマイクロコードは、前述のシリアル乗
算の場合と同様に設定すればよい。
は、パラレル/シリアル変換器PS 1゜から2ビツト
の小数部データPGFRをシリアル出力し、これとレジ
スタR2の差データTTONE−TONEPとをゲート
53と加算器21を用いてシリアル乗算する。この場合
、第6図におけるマイクロコードは、前述のシリアル乗
算の場合と同様に設定すればよい。
こうして最終的に求められた乗算結果はレジスタR3に
ストアされる。この乗算結果は当該補間ステップにおけ
る補間開始サンプルデータTONEPに対する変化幅を
示している。
ストアされる。この乗算結果は当該補間ステップにおけ
る補間開始サンプルデータTONEPに対する変化幅を
示している。
次に、補間開始サンプルデータTONEPをしジスタR
2にストアしくステップ106)、R3+R2の加算を
行なってTONEPに変化幅を加算し、その結果をレジ
スタR3にストアする(ステップ107)。この場合、
第6図におけるマイクロコードは、前述の通常の加算動
作の場合と同様に設定すればよい。こうして、レジスタ
R3には、補間によって得た波形サンプルデータがスト
アされる。
2にストアしくステップ106)、R3+R2の加算を
行なってTONEPに変化幅を加算し、その結果をレジ
スタR3にストアする(ステップ107)。この場合、
第6図におけるマイクロコードは、前述の通常の加算動
作の場合と同様に設定すればよい。こうして、レジスタ
R3には、補間によって得た波形サンプルデータがスト
アされる。
次に、レジスタGRに保存してあったビブラート変調済
みのPナンバPNをピッチ発生器42に与え、該ピッチ
発生器42におけるPナンバアキュムレーションに利用
させる(ステップ108)。
みのPナンバPNをピッチ発生器42に与え、該ピッチ
発生器42におけるPナンバアキュムレーションに利用
させる(ステップ108)。
最後のステップ109では、レジスタR3にストアされ
ている補間処理済みの波形サンプルデータを累算器44
(第1図)に送出する。
ている補間処理済みの波形サンプルデータを累算器44
(第1図)に送出する。
なお、ステップ100における判定において、位相アド
レスレートデータの整数部PGRTが1701+でない
場合は、今回のタイミングで補間目標サンプルデータT
TONEが変化したことを意味する。この場合は、レジ
スタR1にストアしている古い補間目標サンプルデータ
TTONEをレジスタR3及びR2にストアし、かつこ
れを補間開始サンプルデータTONEPとしてトーンデ
ータRAM36に書き込む(ステップ110)。そうす
ると、次のステップ102におけるR1−R2=“0″
となり、ステップ104,105のシリアル乗算結果と
して“0″がレジスタR3にストアされ、ステップ10
7で得られる補間済み波形サンプルデータは補間開始サ
ンプルデータT。
レスレートデータの整数部PGRTが1701+でない
場合は、今回のタイミングで補間目標サンプルデータT
TONEが変化したことを意味する。この場合は、レジ
スタR1にストアしている古い補間目標サンプルデータ
TTONEをレジスタR3及びR2にストアし、かつこ
れを補間開始サンプルデータTONEPとしてトーンデ
ータRAM36に書き込む(ステップ110)。そうす
ると、次のステップ102におけるR1−R2=“0″
となり、ステップ104,105のシリアル乗算結果と
して“0″がレジスタR3にストアされ、ステップ10
7で得られる補間済み波形サンプルデータは補間開始サ
ンプルデータT。
NEPと同じものとなる。このように、補間開始ステッ
プにおいては、前回の補間目標サンプルデータTTON
Eが補間開始サンプルデータTONEPとなり、これが
補間済み波形サンプルデータとしてそのまま出力される
。
プにおいては、前回の補間目標サンプルデータTTON
Eが補間開始サンプルデータTONEPとなり、これが
補間済み波形サンプルデータとしてそのまま出力される
。
なお、加算部20を分離する場合、分離位置は下位13
ビツトの位置に限らないのは勿論である。
ビツトの位置に限らないのは勿論である。
また、分離数も2に限らずそれ以上であってもよい。つ
まり、並列演算可能な系列数は2に限らず、それ以上に
設定することができる。
まり、並列演算可能な系列数は2に限らず、それ以上に
設定することができる。
以上の通り、この発明によれば、楽音信号発生のための
各種の演算のための演算回路を1つの加算手段に統合し
、該加算手段を共用するようにしたので、回路構成の大
幅な縮小を図ることができる。という優れた効果を奏す
る。また、加算手段の有効ビット数を切り替えることが
できるようにしたことにより、種々の性質の異なるデー
タの演算において1つの加算手段を共用するにあたって
計算時間の効率化を図ることができるので極めて有利で
ある。また、加算手段を2以上の独立の加算回路に分離
することができるようにし、分離したそれぞれの加算回
路において異なる演算を並行して行なうことができるよ
うにしたので5種々の性質の異なるデータの演算におい
て1つの加算手段を共用するにあたって、必要に応じて
並列演算を行なうことができ、演算効率を高めることが
できるため極めて有利である。
各種の演算のための演算回路を1つの加算手段に統合し
、該加算手段を共用するようにしたので、回路構成の大
幅な縮小を図ることができる。という優れた効果を奏す
る。また、加算手段の有効ビット数を切り替えることが
できるようにしたことにより、種々の性質の異なるデー
タの演算において1つの加算手段を共用するにあたって
計算時間の効率化を図ることができるので極めて有利で
ある。また、加算手段を2以上の独立の加算回路に分離
することができるようにし、分離したそれぞれの加算回
路において異なる演算を並行して行なうことができるよ
うにしたので5種々の性質の異なるデータの演算におい
て1つの加算手段を共用するにあたって、必要に応じて
並列演算を行なうことができ、演算効率を高めることが
できるため極めて有利である。
【図面の簡単な説明】
第1図はこの発明に係る楽音信号発生装置の一実施例を
示すハード構成ブロック図。 第2図はこの発明に係る楽音信号発生装置を適用した電
子楽器の一例を示すハード構成ブロック図、 第3図はサンプルタイミングとチャンネル時分割タイミ
ングの関係及び1チヤンネル内におけるマイクロコード
ステップタイミングの関係を例示する図、 第4図は第1図におけるトーンデータRAMにおける1
チャンネル分のトーンデータ記憶エリアのメモリマツプ
を例示する図、 第5図は第1図におけるデータメモリのメモリマツプを
略示する図、 第6図は第1図における加算部及びその周辺回路を幾分
詳しく示すブロック図。 第7図(a)、(b)、(c)はマイクロコードROM
から発生されるマイクロコードに従って第1図において
実行される各種処理の一例を示すフローチャート、 第8図(a)、(b)、(C)は各種データのフオーマ
ットを模式的に示す図、である。 10・・・楽音信号発生装置、20・・・加算部、21
゜22・・・加算器、R1,R2,R3,GR・・・レ
ジスタ、23・・・符号制御回路、24・・・論理積回
路、25・・・多機能シフタ、26・・・マイクロコー
ドROM、27・・・データメモリ、ADL・・・アド
レスラッチ、36・・・トーンデータRAM、Psi、
PS2・・パラレル/シリアル変換器、41・・・エン
ベロープ制御ユニット、42・・・ピッチ発生器。
示すハード構成ブロック図。 第2図はこの発明に係る楽音信号発生装置を適用した電
子楽器の一例を示すハード構成ブロック図、 第3図はサンプルタイミングとチャンネル時分割タイミ
ングの関係及び1チヤンネル内におけるマイクロコード
ステップタイミングの関係を例示する図、 第4図は第1図におけるトーンデータRAMにおける1
チャンネル分のトーンデータ記憶エリアのメモリマツプ
を例示する図、 第5図は第1図におけるデータメモリのメモリマツプを
略示する図、 第6図は第1図における加算部及びその周辺回路を幾分
詳しく示すブロック図。 第7図(a)、(b)、(c)はマイクロコードROM
から発生されるマイクロコードに従って第1図において
実行される各種処理の一例を示すフローチャート、 第8図(a)、(b)、(C)は各種データのフオーマ
ットを模式的に示す図、である。 10・・・楽音信号発生装置、20・・・加算部、21
゜22・・・加算器、R1,R2,R3,GR・・・レ
ジスタ、23・・・符号制御回路、24・・・論理積回
路、25・・・多機能シフタ、26・・・マイクロコー
ドROM、27・・・データメモリ、ADL・・・アド
レスラッチ、36・・・トーンデータRAM、Psi、
PS2・・パラレル/シリアル変換器、41・・・エン
ベロープ制御ユニット、42・・・ピッチ発生器。
Claims (11)
- (1)加算手段と、 この加算手段に対して入力するデータをストアするため
の記憶手段と、 この記憶手段の出力データに対して、制御信号に応じた
論理処理を可変的に施して前記加算手段に与える処理手
段と、 楽音信号発生のための複数種類の演算をそれぞれ実現す
るために、それぞれの演算に対応して前記記憶手段への
データの導入及び前記処理手段への前記制御信号の供給
を制御する制御手段とを具え、この制御手段の制御に従
って前記記憶手段に導入するデータが決定されかつ前記
処理手段の論理処理内容が決定されることにより、前記
加算手段が、楽音信号発生のための複数種類の演算のた
めに共用されるようにしたことを特徴とする楽音信号発
生装置。 - (2)前記加算手段は、前記制御手段から与えられる制
御信号に応じてその有効ビット数を切り替えることがで
きるものである請求項1に記載の楽音信号発生装置。 - (3)前記加算手段は、桁上げ信号出力と桁上げ信号入
力間をゲートを介して接続した複数の加算回路を含み、
このゲートを前記制御手段から与えられる制御信号に応
じて制御することにより1又は複数の前記加算回路を選
択的に有効にし、これにより該加算手段全体としての有
効ビット数を切り替えるものである請求項2に記載の楽
音信号発生装置。 - (4)前記加算手段は、前記制御手段から与えられる制
御信号に応じて2以上の独立の加算回路に分離すること
ができるものであり、分離したそれぞれの加算回路にお
いて異なる演算を並行して行なうことができるようにし
た請求項1に記載の楽音信号発生装置。 - (5)前記加算手段は、桁上げ信号出力と桁上げ信号入
力間をゲートを介して接続した複数の加算回路を含み、
このゲートを前記制御手段から与えられる制御信号に応
じて制御することにより前記複数の加算回路を分離また
は連結するようにした請求項4に記載の楽音信号発生装
置。 - (6)前記制御手段は、楽音波形発生のための位相アド
レス信号の演算、エンベロープ波形信号発生演算、楽音
波形信号に対する振幅レベルスケーリング演算のために
前記加算手段を共用するよう制御するものである請求項
1に記載の楽音信号発生装置。 - (7)前記制御手段は、更に楽音波形補間演算のために
前記加算手段を共用するよう制御するものである請求項
6に記載の楽音信号発生装置。 - (8)前記各演算におけるデータの有効ビット数に応じ
て、前記加算手段を分割使用して複数の演算を並列的に
実行するものと、加算手段を単独の演算のために使用す
るものとに分類し、この分類に従う各単独演算及び並列
演算をそれぞれ時分割的に実行するようにした請求項6
又は7に記載の楽音信号発生装置。 - (9)波形サンプルデータとエンベロープパラメータデ
ータを記憶したデータメモリを具備し、前記楽音波形発
生のための位相アドレス信号の演算により作成した位相
アドレス信号により前記データメモリから波形サンプル
データを読み出し、前記データメモリから読み出した前
記エンベロープパラメータデータに基づき前記エンベロ
ープ波形信号発生演算を実行してエンベロープ波形信号
を発生し、前記波形サンプルデータとエンベロープ波形
信号とに基づき前記振幅レベルスケーリング演算を行な
う請求項6に記載の楽音信号発生装置。 - (10)前記処理手段は、データのシフト、ゲート、選
択、反転等の論理処理を制御信号に応じて行なうもので
ある請求項1に記載の楽音信号発生装置。 - (11)前記処理手段は、引算のための符号制御処理を
行なう手段、乗算のための論理積処理を行なう手段、及
びデータシフト処理を行なう手段を含むものである請求
項1に記載の楽音信号発生装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000312A JP2580814B2 (ja) | 1990-01-05 | 1990-01-05 | 楽音信号発生装置 |
| US08/046,394 US5383386A (en) | 1990-01-05 | 1993-04-14 | Tone signal generating device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000312A JP2580814B2 (ja) | 1990-01-05 | 1990-01-05 | 楽音信号発生装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03204697A true JPH03204697A (ja) | 1991-09-06 |
| JP2580814B2 JP2580814B2 (ja) | 1997-02-12 |
Family
ID=11470398
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000312A Expired - Fee Related JP2580814B2 (ja) | 1990-01-05 | 1990-01-05 | 楽音信号発生装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5383386A (ja) |
| JP (1) | JP2580814B2 (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2768168B2 (ja) * | 1992-09-18 | 1998-06-25 | ヤマハ株式会社 | 楽音合成装置 |
| TW281745B (ja) * | 1994-03-31 | 1996-07-21 | Yamaha Corp | |
| JP5614420B2 (ja) * | 2012-03-09 | 2014-10-29 | カシオ計算機株式会社 | 楽音発生装置、電子楽器、プログラム及び楽音発生方法 |
| JP5915420B2 (ja) * | 2012-07-05 | 2016-05-11 | カシオ計算機株式会社 | 楽音発生装置、楽音発生方法、電子楽器及びプログラム |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01101599A (ja) * | 1987-10-14 | 1989-04-19 | Yamaha Corp | 楽音信号発生装置 |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4177706A (en) * | 1976-09-08 | 1979-12-11 | Greenberger Alan J | Digital real time music synthesizer |
| JPS54134616A (en) * | 1978-04-11 | 1979-10-19 | Nippon Gakki Seizo Kk | Electronic musical instrument |
| JPS58211789A (ja) * | 1982-06-04 | 1983-12-09 | ヤマハ株式会社 | 楽音合成装置 |
| DE3318666C1 (de) * | 1983-05-21 | 1984-10-11 | WERSI-electronic GmbH & Co KG, 5401 Halsenbach | Elektronisches Tastenmusikinstrument |
| US4736663A (en) * | 1984-10-19 | 1988-04-12 | California Institute Of Technology | Electronic system for synthesizing and combining voices of musical instruments |
| US4707800A (en) * | 1985-03-04 | 1987-11-17 | Raytheon Company | Adder/substractor for variable length numbers |
| US4622877A (en) * | 1985-06-11 | 1986-11-18 | The Board Of Trustees Of The Leland Stanford Junior University | Independently controlled wavetable-modification instrument and method for generating musical sound |
| JP2603071B2 (ja) * | 1986-11-15 | 1997-04-23 | ヤマハ株式会社 | エンベロープ制御装置 |
| US4928569A (en) * | 1986-11-15 | 1990-05-29 | Yamaha Corporation | Envelope shape generator for tone signal control |
-
1990
- 1990-01-05 JP JP2000312A patent/JP2580814B2/ja not_active Expired - Fee Related
-
1993
- 1993-04-14 US US08/046,394 patent/US5383386A/en not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01101599A (ja) * | 1987-10-14 | 1989-04-19 | Yamaha Corp | 楽音信号発生装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5383386A (en) | 1995-01-24 |
| JP2580814B2 (ja) | 1997-02-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| NO144443B (no) | Fremgangsmaate samt elektronisk musikkinstrument for digital boelgeformgenerering | |
| US4953437A (en) | Method and apparatus for digitally generating musical notes | |
| USRE30736E (en) | Tone wave generator in electronic musical instrument | |
| US5340938A (en) | Tone generation apparatus with selective assignment of one of tone generation processing modes to tone generation channels | |
| JP2565073B2 (ja) | ディジタル信号処理装置 | |
| EP0235538B1 (en) | Waveform generator for electronic musical instrument | |
| NO810597L (no) | Syntesekopling for periodiske signaler, spesielt som del av et musikkinstrument | |
| JPH03204697A (ja) | 楽音信号発生装置 | |
| US5117725A (en) | Device for changing and controlling the rate of generating waveform data | |
| EP0448034A2 (en) | A musical tone generation apparatus capable of writing/reading parameters at high speed | |
| JP2974356B2 (ja) | 電子楽器のゆらぎ発生装置 | |
| JPH0462595A (ja) | 電子楽器用処理装置 | |
| JP2917668B2 (ja) | 電子楽器 | |
| JP3104873B2 (ja) | 音源装置 | |
| JP2727451B2 (ja) | 楽音発生装置 | |
| JP3159442B2 (ja) | 楽音発生装置 | |
| JP3551992B2 (ja) | 電子楽器 | |
| JPH0656553B2 (ja) | 楽音信号発生装置 | |
| JPS6341080B2 (ja) | ||
| JPH0122632B2 (ja) | ||
| JPH045692A (ja) | 電子楽器 | |
| JPH021314B2 (ja) | ||
| JPH079582B2 (ja) | 電子楽器 | |
| JPH08234785A (ja) | 音源装置 | |
| JPH028318B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |