JPH0114076Y2 - - Google Patents
Info
- Publication number
- JPH0114076Y2 JPH0114076Y2 JP1987068285U JP6828587U JPH0114076Y2 JP H0114076 Y2 JPH0114076 Y2 JP H0114076Y2 JP 1987068285 U JP1987068285 U JP 1987068285U JP 6828587 U JP6828587 U JP 6828587U JP H0114076 Y2 JPH0114076 Y2 JP H0114076Y2
- Authority
- JP
- Japan
- Prior art keywords
- envelope
- phase
- release
- data
- mantissa
- 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
Links
- 230000004044 response Effects 0.000 claims description 4
- 238000006073 displacement reaction Methods 0.000 description 16
- 238000000034 method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
Description
本考案はエンベロープのアタツク、デイケイ、
リリースの速度を表わすスピードパラメータの時
間制御により多種のエンベロープを発生するとと
もに入力端子数を少なくした電子楽器のエンベロ
ープ発生器に関するものである。
従来、デジタル的にエンベロープを発生させる
方式は大別して波形を記憶させる方式と、波形を
関数によつて近似する方式がある。
たとえば、形状の異なるエンベロープ、特開昭
52−27621に述べられているような楽音の高調波
係数を時間的に変化させる効果のために使用され
るスライデイングフオルマントフイルタ用エンベ
ロープ、振幅変調用エンベロープ等多くの種類の
エンベロープを発生させようとした場合、前者の
方式によれば多くのメモリを必要とし不経済であ
り、また後者の方式においても関数演算を進める
タイミングはCRによる発振器の発振周波数を制
御するものが多く、多種類のエンベロープの音色
に応じた発振器をもたなければならず入力端子数
も増大する。従つて構成と価格上の制約から相当
制限されたものにせざるを得ないのが現状であつ
た。これに対し、1群のデジタル数から1つのデ
ジタル数を選択してこれを累算器によつて累算し
その多ビツト出力からエンベロープの計算タイミ
ングを得る方式が提案されて簡単化されたが、や
はり累算器に関連する可成りの構成部分を必要と
する。
本考案の目的は簡単な構成によりエンベロープ
の計算タイミングを任意に設定し多種類のエンベ
ロープを発生するとともに入力端子数を少なくし
た電子楽器のエンベロープ発生器を提供すること
である。
前記目的を達成するため、本考案の電子楽器の
エンベロープ発生器はエンベロープのアタツク、
デイケイ、リリースを複数のフエーズに分割し、
所定タイミングの演算によりエンベロープ波形を
形成する電子楽器のエンベロープ発生器におい
て、
押鍵に応じて発生すべきエンベロープのアタツ
ク、デイケイ、リリースの速度に対応し速度制御
を行なうためのデジタル2進数からなるエンベロ
ープのスピードパラメータを発生するスピードパ
ラメータ発生手段と、該スピードパラメータ発生
手段からのスピードパラメータをデコードし前記
スピードパラメータのビツト数より多いビツト数
の数値データを発生するデコード手段と、エンベ
ロープがアタツクフエーズにある場合前記デコー
ド手段からの前記数値データをフエーズ状態に従
つて順次シフトし、エンベロープがデイケイおよ
びリリースフエーズにある場合前記データのシフ
トを固定する2進シフト制御手段と、該2進シフ
ト制御手段からのデータを累算する演算手段と、
を具え、スピードパラメータにより速度制御され
たエンベロープ波形を形成することを特徴とする
ものである。
以下本考案を実施例につき詳述する。
第1図は本考案の原理説明図である。
同図に示すように、本考案ではエンベロープを
複数の位相たとえば12の位相(以下これをフエー
ズという)に分ける。
エンベロープのアタツク部はフエーズ1からフ
エーズ4までに分割される。
デイケイ部はフエーズ5からフエーズ8まで、
鍵の押されている状態はフエーズ8で停止され、
離鍵後リリース部のフエーズ9からフエーズ12ま
での12のフエーズによつて表わされる。
次に、エンベロープデータは浮動小数点数とし
て表わされ、第1表に示す指数と仮数に分けられ
る。
This invention is based on envelope attack,
The present invention relates to an envelope generator for an electronic musical instrument that generates various envelopes by time-controlling a speed parameter representing the speed of release and has a reduced number of input terminals. Conventionally, methods for digitally generating an envelope can be roughly divided into two methods: a method in which the waveform is stored, and a method in which the waveform is approximated by a function. For example, envelopes with different shapes,
52-27621, which is used for the effect of temporally changing the harmonic coefficient of a musical tone, and an envelope for amplitude modulation, etc. The former method requires a large amount of memory and is uneconomical, and the latter method also uses CR to control the oscillation frequency of the oscillator, and many types of It is necessary to have an oscillator corresponding to the timbre of the envelope, and the number of input terminals also increases. Therefore, the current situation is that it has no choice but to be quite limited due to configuration and price constraints. In response, a method was proposed and simplified in which one digital number is selected from a group of digital numbers, accumulated by an accumulator, and the envelope calculation timing is obtained from the multi-bit output. , also requires significant components associated with the accumulator. An object of the present invention is to provide an envelope generator for an electronic musical instrument that has a simple configuration, can arbitrarily set the envelope calculation timing, generate many types of envelopes, and has a reduced number of input terminals. In order to achieve the above object, the envelope generator for the electronic musical instrument of the present invention has the following functions:
Decay, split the release into multiple phases,
In an envelope generator for an electronic musical instrument that forms an envelope waveform through calculations at a predetermined timing, an envelope consisting of digital binary numbers is used to control the speed of the attack, decay, and release of the envelope that should be generated in response to key presses. speed parameter generating means for generating a speed parameter; decoding means for decoding the speed parameter from the speed parameter generating means to generate numerical data having a number of bits greater than the number of bits of the speed parameter; and when the envelope is in the attack phase. binary shift control means for sequentially shifting the numerical data from the decoding means according to the phase state and fixing the shift of the data when the envelope is in the decay and release phases; arithmetic means for accumulating data;
It is characterized by forming an envelope waveform whose speed is controlled by a speed parameter. The present invention will be described in detail below with reference to examples. FIG. 1 is an explanatory diagram of the principle of the present invention. As shown in the figure, in the present invention, the envelope is divided into a plurality of phases, for example, 12 phases (hereinafter referred to as phases). The attack portion of the envelope is divided into phases 1 to 4. The day-care section is from phase 5 to phase 8,
The pressed state of the key is stopped at phase 8,
It is represented by 12 phases from phase 9 to phase 12 in the release section after key release. The envelope data is then represented as a floating point number and divided into an exponent and a mantissa as shown in Table 1.
【表】
たとえば最大値を1以下とすると、エンベロー
プの最大レベルは指数「000」、仮数「000」で表
わされ、1000×20を0dbとすると、最小レベルは
指数「111」、仮数「000」で1000×2-7(−42db)
と表わされる。
そして、エンベロープの指数関数特性はこの浮
動小数点の特徴を利用して形成される。すなわ
ち、デイケイ、リリース部は仮数部をダウンカウ
ントさせ、指数部をアツプカウントすれば容易に
形成することができる。また、アタツク部につい
ては後述の2進シフト回路によつてデータをフエ
ーズに対応してシフトすることにより得られる。
前述の2進浮動小数点数によつてADSRを表現
して形成する方法はたとえば本出願人の提案によ
る特開昭54−1609「電子オルガン用振幅発生器」
に開示されているので詳細は省略する。
本考案の最も重要な点は、アタツク、デイケ
イ、リリースの長さをデジタルパラメータとして
表わすことであり、このパラメータをエンベロー
プの演算手段に有効に適用するものである。この
演算手段の方式はとくに限定されるものではな
い。
いま、リリース部を考えると、リリースの長さ
は1ミリ秒〜128ミリ秒に変化できるようにする
ため、これを離散的にたとえば32段階に分割し、
各位置を2進数の5ビツトで表わし、これをエン
ベロープのスピードパラメータとしてスピードパ
ラメータデコーダに送り、
SL×SC/RT
SL;相対サステインレベル
ここでSL=(サステインレベル
−最小レベル)
SC;システムクロツク(計算時間)
RT;リリース時間
ここでRT/SCはリリース時間中の計算
回数を示す。
に相当する値を発生する。この値はリリース時間
RTに含まれる各計算サイクル当りの変位量を意
味する。従つてリリース中の各フエーズ毎に異な
るスピードパラメータが与えられると、そのフエ
ーズに含まれる計算時間はその変位でリリースが
進行する。デイケイの場合も同様である。
ここでたとえば、サステインレベルを0dBとし
リリースが終了するレベルつまり最小レベルを−
42dBとすると、相対サステインレベルSLはSL=
0−(−42)=42dBとなる。
エンベロープ計算時間を1ms毎に行なうとし、
SC=1×10-3(S)リリース時間を14msとすると
RT=14×10-3(S)
SL×SC/RT=42×1
×10-3/(14×10-3)=3dB
となる。
リリース(減衰)の場合、システムクロツク1
つあたり3dBの減衰をあたえれば14msのリリー
スが形成できるわけである。
従つて−3dB変化させるため必要な値を選択し
変位値として与えればよい。この場合変位値は、
指数000仮数100で表わされる。この値は第1表に
対応しない。
ここで本考案のエンベロープ形成のための演算
について説明すると、前述のようにデイケイ、リ
リースに関しては仮数部をダウンカウントし指数
部をアツプカウントする。
たとえば、現在値を0dBとすると指数部000仮
数部000である。前述のようにリリース部におい
て、3dBの減衰を与えるとすると、変位値を指数
部000仮数部100とし第2表のように演算する。[Table] For example, if the maximum value is 1 or less, the maximum level of the envelope is represented by the exponent "000" and the mantissa "000". If 1000 x 2 0 is 0db, the minimum level is the exponent "111" and the mantissa "000". 000” is 1000×2 -7 (−42db)
It is expressed as Then, the exponential characteristic of the envelope is formed using this floating point characteristic. That is, the decay and release parts can be easily formed by down-counting the mantissa part and up-counting the exponent part. The attack portion is obtained by shifting data in accordance with the phase using a binary shift circuit, which will be described later. A method of expressing and forming ADSR using binary floating point numbers as described above is described, for example, in Japanese Patent Application Laid-Open No. 54-1609 "Amplitude Generator for Electronic Organs" proposed by the present applicant.
Since it is disclosed in , the details are omitted. The most important point of the present invention is that the attack, decay, and release lengths are expressed as digital parameters, and these parameters are effectively applied to the envelope calculation means. The method of this calculation means is not particularly limited. Now, considering the release part, in order to be able to change the length of the release from 1 millisecond to 128 milliseconds, we divide this into discrete steps, for example, 32 steps.
Each position is expressed as a 5-bit binary number, and this is sent to the speed parameter decoder as an envelope speed parameter. SL×SC/RT SL: Relative sustain level where SL = (sustain level - minimum level) SC: system clock (Computation time) RT: Release time Here, RT/SC indicates the number of calculations during the release time. generates a value corresponding to . This value is the release time
It means the amount of displacement per each calculation cycle included in RT. Therefore, if a different speed parameter is given for each phase during release, the calculation time included in that phase allows the release to proceed according to the displacement. The same is true for DK. For example, if the sustain level is 0dB, the level at which the release ends, that is, the minimum level, is −
Assuming 42dB, the relative sustain level SL is SL=
0-(-42)=42dB. Assuming that the envelope calculation time is performed every 1ms,
SC=1×10 -3 (S) If the release time is 14ms
RT=14× 10-3 (S) SL×SC/RT=42×1× 10-3 /(14× 10-3 )=3dB. For release (attenuation), system clock 1
By applying 3dB of attenuation to each point, a 14ms release can be created. Therefore, it is sufficient to select a value necessary for changing by -3 dB and give it as a displacement value. In this case, the displacement value is
It is expressed as an exponent of 000 and a mantissa of 100. This value does not correspond to Table 1. Here, the calculation for forming the envelope of the present invention will be explained. As mentioned above, for decay and release, the mantissa part is down-counted and the exponent part is up-counted. For example, if the current value is 0 dB, the exponent part is 000 and the mantissa part is 000. Assuming that 3 dB of attenuation is given in the release section as described above, the displacement value is calculated as shown in Table 2, with the exponent part being 000 and the mantissa part being 100.
【表】
第2表において、変位値仮数部で2の補数化さ
れた仮数100は現在値の仮数部000と加算される。
このとき仮数部からの桁上げが生じないため減算
時のボローと判断し指数部に1を加算する。現在
値および変位値の指数部加算結果とボローで001
となる。従つて演算結果は指数部001仮数部100で
あり第1表から1.5×2-1であり約−3dBとなるこ
とがわかる。
次にアタツクの場合は、現在値を−39dBとす
ると指数部111仮数部100であり、これに9dB増加
させる場合、変位値を指数部001仮数部100とし第
3表のように演算する。[Table] In Table 2, the mantissa 100, which is converted into a two's complement in the quantile mantissa part, is added to the mantissa part 000 of the current value.
At this time, since no carry occurs from the mantissa part, it is determined that this is a borrow during subtraction, and 1 is added to the exponent part. 001 with the result of addition of the exponent part of the current value and displacement value and the borrow
becomes. Therefore, the calculation result has an exponent part of 001 and a mantissa part of 100, which is 1.5 x 2 -1 from Table 1, which is about -3 dB. Next, in the case of attack, if the current value is -39 dB, the exponent part is 111 and the mantissa part is 100. When increasing this by 9 dB, the displacement value is set to exponent part 001 and mantissa part 100, and calculations are performed as shown in Table 3.
【表】
第3表において、現在値指数部111から変位値
指数部001を2の補数化した111を加算すると110
となる。(この結果のキヤリーは切り捨てる。)次
に仮数部は現在値100、変位値100を加算すると、
000となり桁上げを生じる。このアタツクの仮数
部は加算による桁上げはキヤリーとして指数部を
1減算する。従つて110マイナス1で101となる。
この指数部101仮数部000は第1表より1.0×2-5で
−30dBとなる。
以上のようにして、アタツクおよびデイケイ・
リリースのエンベロープ形成のための演算が行な
われる。
第2図は本考案の実施例の構成を示す説明図で
あり、前述の浮動小数点数の演算回路に上述のス
ピードパラメータを適用したエンベロープ発生回
路のブロツク図である。
同図において、キーデータの入力によりフエー
ズ初期値発生回路11により、第1図に説明した
たエンベロープのADSRのフエーズの初期値(キ
ーオンの場合フエーズ1、キーオフの場合フエー
ズ9)が発生しエンベロープ演算制御に利用され
る。ここでエンベロープフエーズが1〜8の場合
キーオフデータが入力されるとフエーズ初期値発
生回路11は現在のフエーズが何であれ強制的に
フエーズ9にセツトされリリースを開始する。
このフエーズの値は、フエーズデコーダADSR
制御回路12でデコードされて系内の所要回路の
フエーズの移行制御に用いられる。その1つはフ
エーズ終値予測回路19でありサステインレベル
データが入力されて、各フエーズ終値の予測値が
比較器18に送られ、後述する演算部からの値と
比較され、一致すると一致信号がフエーズデコー
ダADSR制御回路12に送られ、フエーズ加算器
13に1が加算されてフエーズメモリ10に記憶
され、フエーズ初期値発生回路11を介してフエ
ーズデコーダADSR制御回路12に送られて次の
フエーズに移行する。ここでフエーズ終値予測回
路19に入力されるサステインレベルデータは、
外部より入力される可変のデータでありこの値に
よつてデイケイ、リリースにおける各フエーズ終
値が変化する。
一方、前述のリリース部またはデイケイ部にお
ける下降時間の変化部分を離散的にたとえば32分
割し各位置を5ビツトのスピードパラメータで表
わし、所要位置のスピードパラメータをスピード
パラメータデコーダ23に入れてデコードし前述
の変位の値を発生する。このデコーダ23と次の
2進シフト回路20はフエーズデコーダ制御回路
12により制御され、リリースとデイケイの場合
はデコーダ出力は2進シフト回路20をシフトす
ることなく通過し、加減算制御回路21に送ら
れ、フエーズデコーダADSR制御回路12の制御
により演算部への加算減算の制御を行なうもので
リリースとデイケイの場合は前述説明のように指
数を加算し仮数を減算させるように動作する。演
算部の加算器16と加算器17は加減算制御回路
21からのデータにより第1表に基づく指数と仮
数を格納した指数メモリ14と仮数メモリ15か
ら読出されるデータを加減算し、比較器18とデ
ータ選択回路24に送出される。比較器18では
加算器16からの加算された指数と加算器17か
らの減算された仮数とをフエーズ終値予測回路1
9に格納されたそれぞれの終値データと比較し一
致あるいは終値を超えるまで演算が繰返えされ
る。すなわち、加算器16からの指数と加算器1
7からの仮数とをデータ選択回路24に入力し、
フエーズデコーダADSR制御回路12の制御信号
によつて、このデータを指数メモリ14と仮数メ
モリ15に再び格納する。ここでフエーズメモリ
10、指数メモリ14、仮数メモリ15は発音数
と振幅変調効果用エンベロープの数の和と同じワ
ード数を有する。このようにフエーズ毎に計算が
繰返えされ前述の5ビツトで表わされたパラメー
タに対応する長さのリリースまたはデイケイが形
成される。なお、データ選択回路24の機能とし
て、たとえば加算器16がオーバフローした場合
には、オーバフロー検出回路28によつてオーバ
フローが検出され、前記データを指数メモリ14
と仮数メモリ15に送る代りに、前記メモリ出力
を選択するかまたはフエーズ初期振幅値発生回路
22から次のフエーズにおける初期値振幅値を選
択して送るように制御される。このオーバフロー
は二つのケースがある。その1つはアタツク計算
において最大値より大きくなる場合ともう1つは
デイケイ、リリース計算において最小値より小さ
くなる場合である。
アタツクの場合、現在値を−3dB指数部001仮
数部100とし、12dBに相当する変位値指数部010
仮数部000とすると、現在値+変位値は−3+12
=9dBで最大値0dBをオーバーする。
変位値指数部010の2の補数110と現在値指数部
001を加算すると111となり、指数部111仮数部100
で第1表より約−39dBの値になる。従つてアタ
ツク時指数部から桁上げが生じないものをオーバ
ーフローとして処理する。
また、現在値を同様に−3dBとし、6dBに相当
する変位値指数部001仮数部000とすると、変位値
指数部の2の補数111と現在値001とを加算する
と、000となり桁上げを生ずるが、演算結果が指
数部000仮数部100となり、最大値0dB指数部000
仮数部000の定義をこえるためこれもオーバーフ
ローとして検出し処理する。
次にデイケイ、リリースの場合、現在値約−
39dB指数部111仮数部100とし、6dBに相当する
変位値指数部001仮数部000の場合を考えると、現
在値−変位値は−39−6=−45dBで最小値より
小さくなる。
現在値指数部111変位値指数部001を加算する
と、000となり桁上げが生ずる。その演算結果指
数部000仮数部100で約+3dBとなる。従つて、デ
イケイ、リリースにおける指数部桁上げをオーバ
ーフローとして処理する。
次にアタツクの場合は、スピードパラメータデ
コーダ23からのデコードされたデータを2進シ
フト回路20に送る。2進シフト回路20はフエ
ーズに対応してデータを増大するようにシフトす
ると良好なアタツク形状が得られる。たとえば、
フエーズ1の時前記スピードパラメータデコーダ
23からのデータを2ビツト左シフト、すなわち
4倍にするようにシフトする。次にフエーズ2に
なると、前記データを1ビツト左シフト、すなわ
ち2倍にするようにシフトする。フエーズ3にな
るとシフトせずに送出し、フエーズ4は1ビツト
右シフト、すなわち1/2になるようにセツトする。
たとえば、6dBに相当する変位値指数部001仮数
部000とすると、フエーズ1の時指数部100仮数部
000で24dB、フエーズ2の場合指数部010仮数部
000で12dB、フエーズ6dB、フエーズ4は指数部
000仮数部100で3dBの変位値となる。他の変位値
の場合も同様である。
ここでフエーズ終値予測回路19からの比較値
をフエーズ1−12dB指数部010仮数部000、フエ
ーズ2−6dB指数部110仮数部000、フエーズ3−
3dB指数部001仮数部100、フエーズ4指数部000
仮数部000とした場合、第1図におけるような形
状のアタツクが形成される。
このようにして形成されたエンベロープの
ADSRの各フエーズの振幅を指数メモリ14と仮
数メモリ15の出力データとしてデコーダ25と
2進シフト回路26に送り第1表の浮動小数点数
のデータを通常の固定小数点数のデジタルデータ
に変換し、これをDA変換器27によりアナログ
のエンベロープ波形を得ることができる。
以上説明したように、本考案によれば、エンベ
ロープのアタツク、デイケイ、リリースをデジタ
ル値で表わしたスピードパラメータによりセツト
し、これをデコードして任意の演算手段に適用し
たものである。これにより、従来のようにアタツ
ク、デイケイ、リリースのそれぞれのスピードを
セツトするための多数の発振器や累算器を必要と
しないため、大幅に入力端子数を減少させること
ができ集積回路に適合する。また、このようなス
ピードパラメータをセツトし、これをデコードし
て演算することによりエンベロープを作る方式に
よれば、各種のエンベロープ、たとえば形状の異
なるエンベロープ、スライデイングフオルマント
フイルタ用エンベロープ、振幅変調用エンベロー
プ等が容易に発生できるという利点がある。そし
て、これらのパラメータを外部の記憶装置に記憶
させておき、適宜読出しセツトすれば多種類のエ
ンベロープが形成できるため、きわめて少量の記
憶領域で済み、多くの種類のエンベロープ制御で
あつても内部には小さな記憶装置のみで十分であ
る。
また、このスピードパラメータは時分割演算手
段に適合しており、浮動小数点数を用いた演算装
置等に適合し、振幅変調波との乗算、鍵盤位置に
よる音量制御、スライデイングフオルマントフイ
ルタ用エンベロープの振幅制御等各種の機能、効
果と組合せることが極めて容易であることも有利
な点である。[Table] In Table 3, if you add 111, which is the two's complement of the quantile index part 001, from the current value index part 111, it becomes 110.
becomes. (The carry of this result is rounded down.) Next, the mantissa part is obtained by adding the current value 100 and the displacement value 100.
000, resulting in a carry. The mantissa part of this attack is treated as a carry by addition, and the exponent part is subtracted by 1. Therefore, 110 minus 1 equals 101.
From Table 1, the exponent part 101 and the mantissa part 000 are 1.0×2 -5 , which is -30 dB. As described above, attack and
Calculations are performed to form a release envelope. FIG. 2 is an explanatory diagram showing the configuration of an embodiment of the present invention, and is a block diagram of an envelope generation circuit in which the above-mentioned speed parameter is applied to the above-mentioned floating point arithmetic circuit. In the same figure, in response to input of key data, the phase initial value generation circuit 11 generates the initial value of the phase of ADSR of the envelope explained in FIG. Used for control. Here, when the envelope phase is 1 to 8, when key-off data is input, the phase initial value generating circuit 11 is forcibly set to phase 9 and starts releasing whatever the current phase is. The value of this phase is determined by the phase decoder ADSR.
It is decoded by the control circuit 12 and used for phase transition control of required circuits within the system. One of them is a phase end value prediction circuit 19, into which sustain level data is input, and the predicted value of each phase end value is sent to a comparator 18, where it is compared with a value from an arithmetic unit (described later), and when they match, a match signal is output. It is sent to the phase decoder ADSR control circuit 12, 1 is added to the phase adder 13, and stored in the phase memory 10. It is sent to the phase decoder ADSR control circuit 12 via the phase initial value generation circuit 11, and is used for the next phase. Transition. Here, the sustain level data input to the phase closing price prediction circuit 19 is as follows:
This is variable data input from the outside, and the closing price of each phase in decay and release changes depending on this value. On the other hand, the part where the fall time changes in the release part or decay part is discretely divided into, for example, 32 parts, each position is represented by a 5-bit speed parameter, and the speed parameter at the desired position is input into the speed parameter decoder 23 and decoded. generates a displacement value of . This decoder 23 and the next binary shift circuit 20 are controlled by the phase decoder control circuit 12, and in the case of release and decay, the decoder output passes through the binary shift circuit 20 without being shifted and is sent to the addition/subtraction control circuit 21. The phase decoder ADSR control circuit 12 controls addition and subtraction to the arithmetic unit, and in the case of release and decay, it operates to add exponents and subtract mantissas as described above. An adder 16 and an adder 17 in the arithmetic section add and subtract data read from the exponent memory 14 and the mantissa memory 15, which store exponents and mantissas based on Table 1, using data from the addition/subtraction control circuit 21, and add and subtract data read from the mantissa memory 15 and the comparator 18. The data is sent to the data selection circuit 24. The comparator 18 uses the added exponent from the adder 16 and the subtracted mantissa from the adder 17 to the phase closing price prediction circuit 1.
9 and the computation is repeated until they match or exceed the final value. That is, the exponent from adder 16 and adder 1
input the mantissa from 7 to the data selection circuit 24,
This data is stored again in the exponent memory 14 and the mantissa memory 15 by the control signal of the phase decoder ADSR control circuit 12. Here, the phase memory 10, exponent memory 14, and mantissa memory 15 have the same number of words as the sum of the number of tones and the number of amplitude modulation effect envelopes. In this way, calculations are repeated for each phase to form a release or decay of length corresponding to the parameter expressed by the 5 bits described above. Note that as a function of the data selection circuit 24, for example, when the adder 16 overflows, the overflow is detected by the overflow detection circuit 28, and the data is transferred to the exponent memory 14.
Instead of sending this to the mantissa memory 15, control is performed to select the memory output or to select and send the initial amplitude value in the next phase from the phase initial amplitude value generating circuit 22. There are two cases of this overflow. One is when it becomes larger than the maximum value in attack calculation, and the other is when it becomes smaller than the minimum value in decay and release calculation. In the case of attack, the current value is -3dB exponent part 001 and mantissa part 100, and the displacement value exponent part 010 corresponds to 12dB.
If the mantissa part is 000, the current value + displacement value is -3 + 12
=9dB exceeds the maximum value of 0dB. Two's complement 110 of quantile exponent part 010 and current value exponent part
Adding 001 gives 111, where the exponent part is 111 and the mantissa part is 100.
According to Table 1, the value is approximately -39dB. Therefore, if no carry occurs from the exponent part at the time of attack, it is treated as an overflow. Similarly, if the current value is -3dB and the quantile exponent part is 001 and the mantissa part is 000, which corresponds to 6dB, then adding the two's complement of the quantile exponent part 111 and the current value 001 becomes 000, which causes a carry. However, the calculation result is exponent part 000 and mantissa part 100, and the maximum value is 0dB exponent part 000.
Since the definition of the mantissa part 000 is exceeded, this is also detected as an overflow and processed. Next, in the case of Decay and Release, the current value is approximately -
Considering the case where the exponent part 111 and the mantissa part 100 are 39 dB, and the displacement value exponent part 001 and the mantissa part 000 correspond to 6 dB, the current value minus the displacement value is -39-6=-45 dB, which is smaller than the minimum value. When the current value exponent part 111 and the displacement value exponent part 001 are added, it becomes 000 and a carry occurs. The result of this calculation is approximately +3 dB with an exponent part of 000 and a mantissa part of 100. Therefore, the exponent carry in Decay and Release is treated as an overflow. Next, in the case of an attack, the decoded data from the speed parameter decoder 23 is sent to the binary shift circuit 20. If the binary shift circuit 20 shifts the data to increase in accordance with the phase, a good attack shape can be obtained. for example,
During phase 1, the data from the speed parameter decoder 23 is shifted to the left by 2 bits, that is, shifted to quadruple. Next, in phase 2, the data is shifted to the left by 1 bit, that is, shifted to double the data. When phase 3 is reached, the data is sent without being shifted, and in phase 4, the data is set to be shifted to the right by 1 bit, that is, set to 1/2.
For example, if the quantile exponent part is 001 and the mantissa part is 000, which corresponds to 6 dB, when the phase is 1, the exponent part is 100 and the mantissa part is 000.
24dB at 000, exponent part 010 mantissa part in case of phase 2
000 is 12dB, phase is 6dB, phase 4 is the exponential part
000 and the mantissa part is 100, resulting in a displacement value of 3 dB. The same applies to other displacement values. Here, the comparison values from the phase closing price prediction circuit 19 are as follows: phase 1-12 dB exponent part 010 mantissa part 000, phase 2-6 dB exponent part 110 mantissa part 000, phase 3-
3dB exponent part 001 mantissa part 100, phase 4 exponent part 000
When the mantissa part is 000, an attack having the shape shown in FIG. 1 is formed. The envelope thus formed
The amplitude of each phase of the ADSR is sent to the decoder 25 and the binary shift circuit 26 as output data of the exponent memory 14 and the mantissa memory 15, and the floating point data in Table 1 is converted to normal fixed point digital data. An analog envelope waveform can be obtained from this using the DA converter 27. As explained above, according to the present invention, the attack, decay, and release of the envelope are set by speed parameters expressed as digital values, which are decoded and applied to any calculation means. This eliminates the need for multiple oscillators and accumulators to set the attack, decay, and release speeds as in the past, allowing the number of input terminals to be significantly reduced and making it compatible with integrated circuits. . Furthermore, according to the method of creating an envelope by setting speed parameters, decoding and calculating them, various envelopes can be created, such as envelopes with different shapes, envelopes for sliding formant filters, and envelopes for amplitude modulation. It has the advantage that envelopes etc. can be easily generated. By storing these parameters in an external storage device and reading and setting them appropriately, it is possible to form many types of envelopes, so only a very small amount of storage space is required, and many types of envelope control can be performed internally. requires only a small storage device. In addition, this speed parameter is suitable for time-division calculation means, and is suitable for calculation devices using floating point numbers, and can be used for multiplication with amplitude modulated waves, volume control by keyboard position, and envelope for sliding formant filters. Another advantage is that it is extremely easy to combine with various functions and effects such as amplitude control.
第1図は本考案の原理説明図、第2図は本考案
の実施例の構成を示す説明図であり、図中10は
フエーズメモリ、11はフエーズ初期値発生回
路、12はフエーズデコーダADSR制御回路、1
3はフエーズ加算器、14は指数メモリ、15は
仮数メモリ、16,17は加算器、18は比較
器、19はフエーズ終値予測回路、20は2進シ
フト回路、21は加減算制御回路、22はフエー
ズ初期振幅値発生回路、23はスピードパラメー
タデコーダ、24はデータ選択回路、25はデコ
ーダ、26は2進シフト回路、27はDA変換
器、28はオーバフロー検出回路を示す。
FIG. 1 is an explanatory diagram of the principle of the present invention, and FIG. 2 is an explanatory diagram showing the configuration of an embodiment of the present invention. In the figure, 10 is a phase memory, 11 is a phase initial value generation circuit, and 12 is a phase decoder ADSR control. circuit, 1
3 is a phase adder, 14 is an exponent memory, 15 is a mantissa memory, 16 and 17 are adders, 18 is a comparator, 19 is a phase closing price prediction circuit, 20 is a binary shift circuit, 21 is an addition/subtraction control circuit, and 22 is a A phase initial amplitude value generation circuit, 23 a speed parameter decoder, 24 a data selection circuit, 25 a decoder, 26 a binary shift circuit, 27 a DA converter, and 28 an overflow detection circuit.
Claims (1)
を複数のフエーズに分割し、所定タイミングの演
算によりエンベロープ波形を形成する電子楽器の
エンベロープ発生器において、 押鍵に応じて発生すべきエンベロープのアタツ
ク、デイケイ、リリースの速度に対応し速度制御
を行なうためのデジタル2進数からなるエンベロ
ープのスピードパラメータを発生するスピードパ
ラメータ発生手段と、 該スピードパラメータ発生手段からのスピード
パラメータをデコードし前記スピードパラメータ
のビツト数より多いビツト数の数値データを発生
するデコード手段と、 エンベロープがアタツクフエーズにある場合前
記デコード手段からの前記数値データをフエーズ
状態に従つて順次シフトし、エンベロープがデイ
ケイおよびリリースフエーズにある場合前記デー
タのシフトを固定する2進シフト制御手段と、 該2進シフト制御手段からのデータを累算する
演算手段と、 を具え、スピードパラメータにより速度制御され
たエンベロープ波形を形成することを特徴とする
電子楽器のエンベロープ発生器。[Scope of Claim for Utility Model Registration] An envelope that should be generated in response to a key press in an envelope generator for an electronic musical instrument that divides the attack, decay, and release of an envelope into multiple phases and forms an envelope waveform through calculations at predetermined timings. speed parameter generating means for generating an envelope speed parameter made of digital binary numbers for speed control corresponding to attack, decay, and release speeds of the speed parameter generating means; decoding means for generating numeric data with a number of bits greater than the number of bits; when the envelope is in the attack phase, the numeric data from the decoding means is sequentially shifted according to the phase state, and the envelope is in the decay and release phases; A binary shift control means for fixing the shift of the data; and an arithmetic means for accumulating the data from the binary shift control means, and forming an envelope waveform whose speed is controlled by a speed parameter. Envelope generator for electronic musical instruments.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1987068285U JPH0114076Y2 (en) | 1987-05-07 | 1987-05-07 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1987068285U JPH0114076Y2 (en) | 1987-05-07 | 1987-05-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62179797U JPS62179797U (en) | 1987-11-14 |
JPH0114076Y2 true JPH0114076Y2 (en) | 1989-04-25 |
Family
ID=30907960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1987068285U Expired JPH0114076Y2 (en) | 1987-05-07 | 1987-05-07 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0114076Y2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007286503A (en) * | 2006-04-19 | 2007-11-01 | Casio Comput Co Ltd | Envelope generator |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5293315A (en) * | 1976-01-26 | 1977-08-05 | Deutsch Res Lab | Adsr envelope generator |
JPS541609A (en) * | 1977-06-06 | 1979-01-08 | Kawai Musical Instr Mfg Co | Amplitude generator for electronic organ |
-
1987
- 1987-05-07 JP JP1987068285U patent/JPH0114076Y2/ja not_active Expired
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5293315A (en) * | 1976-01-26 | 1977-08-05 | Deutsch Res Lab | Adsr envelope generator |
JPS541609A (en) * | 1977-06-06 | 1979-01-08 | Kawai Musical Instr Mfg Co | Amplitude generator for electronic organ |
Also Published As
Publication number | Publication date |
---|---|
JPS62179797U (en) | 1987-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2722907B2 (en) | Waveform generator | |
JPH0114076Y2 (en) | ||
US5248842A (en) | Device for generating a waveform of a musical tone | |
US4479411A (en) | Tone signal generating apparatus of electronic musical instruments | |
JPS6310836B2 (en) | ||
US5298676A (en) | Tone parameter control apparatus | |
JP2606791B2 (en) | Digital signal processor for musical tone generation. | |
JPS61204696A (en) | Tone signal generator | |
US5103711A (en) | Musical sound waveform generator having a carrier signal and a modulation signal mixed at a controlled mixing ratio | |
JPS6211357B2 (en) | ||
US4426904A (en) | Envelope control for electronic musical instrument | |
US4421003A (en) | Envelope generator for electronic musical instruments | |
US5245126A (en) | Waveform generation system with reduced memory requirement, for use in an electronic musical instrument | |
JPH0310959B2 (en) | ||
JP3016470B2 (en) | Sound source device | |
JPH0740191B2 (en) | Envelope generator | |
JPS6161395B2 (en) | ||
JP2723041B2 (en) | Tone generator | |
JP3104873B2 (en) | Sound source device | |
JP3223560B2 (en) | Waveform data reading device | |
JP2944069B2 (en) | Music signal generator | |
JP2950893B2 (en) | Music signal generator | |
JPH052998B2 (en) | ||
JPH0235316B2 (en) | ||
JP3223555B2 (en) | Waveform reading device |