JPS6343759B2 - - Google Patents

Info

Publication number
JPS6343759B2
JPS6343759B2 JP58011860A JP1186083A JPS6343759B2 JP S6343759 B2 JPS6343759 B2 JP S6343759B2 JP 58011860 A JP58011860 A JP 58011860A JP 1186083 A JP1186083 A JP 1186083A JP S6343759 B2 JPS6343759 B2 JP S6343759B2
Authority
JP
Japan
Prior art keywords
data
signal
waveform
section
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.)
Expired
Application number
JP58011860A
Other languages
Japanese (ja)
Other versions
JPS59136791A (en
Inventor
Kazuhiro Murase
Kinji Kawamoto
Masataka Nikaido
Tatsuya Adachi
Tetsuhiko Kaneaki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP58011860A priority Critical patent/JPS59136791A/en
Publication of JPS59136791A publication Critical patent/JPS59136791A/en
Publication of JPS6343759B2 publication Critical patent/JPS6343759B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】[Detailed description of the invention]

産業上の利用分野 本発明は楽音発生装置に関し、特に、楽音波形
の形状を操作し時間的な変化を施して自然楽器音
を模擬する楽音発生装置に関する。 従来例の構成とその問題点 従来、自然楽器音を模擬するものとして、正弦
波合成方式を用いたもの、周波数変調方式を用い
たもの、演算方式(おもにアナログ処理でVCO、
VCF、VCAなどを使用したもの)を用いたもの
などが提示されているが、回路規模が大きくなり
実現化が困難なものとか、方式上の限界があると
いう問題点を有していた。 発明の目的 本発明の目的は、簡単な構成で自然楽器音を模
擬するとともに、データ圧縮が可能で、にごりの
ない音をつくれる楽音発生装置を提供するもので
ある。 発明の構成 本発明の楽音発生装置は、楽音の発音開始から
発音終了時までの複数個の楽音波形のうち少なく
とも2つ以上の楽音波形と上記選択抽出した楽音
波形を用いて合成波形を形成する時に使用する制
御データとを記憶するデータメモリ部と、発音音
階を決定するノートクロツク発生部と、上記ノー
トクロツク発生部の出力信号に基づいて上記デー
タメモリ部から2つの波形サンプルデータと制御
データとを読み出すデータ読み出し部と、エンベ
ロープ信号を発生するエンベロープ発生部と、上
記データ読み出し部で読み出した2つの波形サン
プルデータと制御データと上記エンベロープ発生
部の出力信号とを用いて合成波形サンプルデータ
を求める波形計算部と、上記波形計算部のデイジ
タル出力信号をアナログ信号に変換する変換部と
を具備し、楽音波形を発生するように構成したも
のであり、楽音波形の形状を時間的に変化させて
自然楽器音に近い楽音波形を発生することがで
き、ピアノ型楽器の場合データ圧縮が可能であ
り、さらに、折り返し部分やサンプル波成分と基
本周波数の高調波との不一致によるにごり音をな
くせる。 実施例の説明 以下本発明の一実施例を図面に基づいて説明す
る。まず本発明の原理について説明する。第1図
に離散的に抽出した楽音1周期の楽音波形を示
す。発音開始時からの時間経過と楽音波形との関
係を下記に示す。 楽音波形 時間経過 A――――――10ms B――――――25ms C――――――50ms D――――――320ms E――――――720ms 第1図からもわかるように、時間経過と共に楽
音波形の形状が変化している。本発明は、楽音波
形の時間的形状変化という点に着目し、波形の形
状に時間変化を施すことにより、自然楽器らしい
楽音を発生するものである。 データメモリの記憶内容についての説明 第2図に楽音開始時から発音終了時までの楽音
波形のエンベロープ包絡状態の一例を示す。第2
図に示したエンベロープ包絡の発音開始時から発
音終了時までをI分割(I=o、1、……、i、
……、I−1)する。そして、各分割点から選択
抽出した楽音波形1周期をそれぞれN分割する。
第3図に選択抽出した楽音波形の一例を示す。抽
出したI個の楽音波形1周期をN分割して得たN
個の波形サンプル値すなわち、N×I個の波形サ
ンプル値と、楽音を発生する時に使用する制御デ
ータ(本発明では、波形内挿を行なうための制御
データを考えている)とをデータメモリに記憶し
ておく。 波形内挿方法についての説明 波形内挿方法としては、I分割して選択抽出し
たサンプル波位置iからi+1(i=0、1、2、
……、I−1)の間を楽音波形1周期がM回くり
返して、推移するものとし、波形サンプルf
(Xi,o)とf(Xi+1,o)との間に存在する仮想サンプ
ル値f^(Xi,n,o)を補間演算を用い仮想的に仮想サ
ンプル点の波形サンプル値を算出して近似値を求
めようとするものである。補間式を下式に示す。 f^(Xi,n,o)={f(Xi+1,o)−f(Xi,o
)}×m/M+f(Xi,o)……(1) iは、I分割して抽出したサンプル位置で、波
形ナンバである。(i=0、1、2、……、I−
1) mは、波形ナンバiからi+1の間をM回繰り
返し推移している途中の位置を表わすものであ
る。(m=0、1、2、……、M−1) nは、楽音波形1周期をN分割したサンプル位
置で波形サンプルナンドである。(n=0、1、
2、……、N−1) 第4図aに(1)式を用いた補間例を示す。図から
もわかるように、波形のつなぎ目で不連続が発生
している。この不連続点のレベル差が大きい場合
は、不用なノイズ成分として聴感上問題となる場
合がある。そこで、本実施例では、(1)式に補正項
を加えて第4図bに示すように不連続点の発生を
防止している。(2)式に補正項を加えた補間式を示
す。 f^(Xi,n,o)={f(Xi+1,o)−f(Xi,n)}
×Nm+n/MN+f(Xi,o)……(2) エンベロープの付加方法についての説明 楽音の種類として、オルガン型エンベロープと
ピアノ型エンブロープがある。第5図にオルガン
型とピアノ型のエンベロープを付加した一例を示
す。図中aはオルガン型、bはピアノ型である。 この説明では、前述までと違いデータメモリに
記憶している波形は、発音終了時までの波形では
なく楽音の定常部あるいは波形の形状が安定した
所までを持ち、以後の波形発生はデータメモリに
記憶している最後の波形をくり返し使用するもの
とする。 オルガン型の説明 第5図中A点でキー信号がオン状態となると、
データメモリの波形データを用い波形内挿を行な
つて楽音を合成する。そして、B点まで時間が進
むと最終波形データとなり、以後最終波形がくり
返し発生する。その後、C点でキー信号がオフ状
態になると、エンベロープ信号は減衰特性とな
り、出力波形は減衰することになる。 ピアノ型の説明 第5図中A点でキー信号がオン状態となると、
データメモリの波形データを用い波形内挿を行な
つて楽音を合成する。そして、B点まで進むと最
終波形データとなり、以後最終波形データをくり
返し使用するとともに、エンベロープ信号が減衰
特性状態となり、出力波形は減衰特性に対応して
減衰して行く。 音程の発生方法についての説明 音階の決定については、12音階に相当するクロ
ツク信号を発生する。オクターブ関係について
は、データメモリに記憶している楽音波形1周期
のサンプル数をかえることによりオクターブ関係
の音程を発生している。 C0音を512サンプルとすると、音階クロツク信
号は、32.703Hz×512サンプル≒16.74kHzとなる。
第1表に音階クロツク周波数を、第2表に波形サ
ンプル数とオクターブ関係について示す。 次に本発明の一実施例について図面を参照しな
がら説明する。第6図は本発明の楽音発生装置を
採用した電子楽器のブロツク図である。601は
鍵盤部(KB)、602は音色タブレツトスイツ
チやビブラート効果のオンオフスイツチやグライ
ド効果のオンオフスイツチなどにより構成される
操作部(TAB)、603は中央処理装置(CPU)
で、コンピユータなどに用いられているものと同
様のもの、604は読み書き可能な記憶装置(ラ
ンダムアクセスメモリでRAMと呼ぶ)、605
はCPU603の動作を決定するプログラムが格
納された読み出し専用記憶装置(リードオンリー
メモリでROMと呼ぶ)、606は楽音の合成を
行なうための波形サンプルデータや波形内挿を行
なうための制御データなどを記憶しているROM
である。607はROM606に記憶している波
形サンプルデータや制御データを用いて楽音を発
生する楽音発生部、608はサンプリングノイズ
を除去するフイルタ、609は電気音響変換器で
ある。 鍵盤部601、操作部602、CPU603、
RAM604、ROM605,606、楽音発生
部607はデータバス、アドレスバスおよびコン
トロール線で結合されている。このようにデータ
バスとアドレ
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a musical tone generator, and more particularly to a musical tone generator that simulates natural musical instrument sounds by manipulating the shape of a musical sound waveform and changing it over time. Configurations of conventional examples and their problems Conventionally, to simulate natural musical instrument sounds, there have been methods that used a sine wave synthesis method, methods that used a frequency modulation method, and methods that used calculation methods (mainly analog processing such as VCO,
Methods using VCF, VCA, etc.) have been proposed, but they have problems such as large circuit scale, making it difficult to realize, and limitations in the method. OBJECTS OF THE INVENTION It is an object of the present invention to provide a musical sound generation device that can simulate natural musical instrument sounds with a simple configuration, is capable of data compression, and can produce clear sounds. Structure of the Invention The musical sound generation device of the present invention forms a composite waveform using at least two musical sound waveforms out of a plurality of musical sound waveforms from the start of musical sound generation to the end of musical sound generation and the selectively extracted musical sound waveform. a data memory section for storing control data to be used at different times; a note clock generating section for determining a tone scale; and two waveform sample data and control data are read from the data memory section based on the output signal of the note clock generating section. A data readout section, an envelope generation section that generates an envelope signal, and waveform calculation to obtain composite waveform sample data using the two waveform sample data read out by the data readout section, control data, and the output signal of the envelope generation section. and a conversion section that converts the digital output signal of the waveform calculation section into an analog signal, and is configured to generate a musical sound waveform. It is possible to generate a musical sound waveform close to a sound, and in the case of a piano-type instrument, it is possible to compress data, and it is also possible to eliminate muddy sounds caused by folded parts and mismatches between sample wave components and harmonics of the fundamental frequency. DESCRIPTION OF EMBODIMENTS An embodiment of the present invention will be described below based on the drawings. First, the principle of the present invention will be explained. FIG. 1 shows a musical sound waveform of one period of musical tone extracted discretely. The relationship between the time elapsed from the start of pronunciation and the musical sound waveform is shown below. Musical sound waveform Time elapsed A――――――10ms B――――――25ms C――――――50ms D――――――320ms E――――――720ms As can be seen from Figure 1 As shown, the shape of the musical sound waveform changes over time. The present invention focuses on changes in the shape of musical sound waves over time, and generates musical sounds that are typical of natural musical instruments by changing the shape of the waveforms over time. Explanation of the contents stored in the data memory FIG. 2 shows an example of the envelope enveloping state of a musical sound waveform from the start of a musical tone to the end of sound generation. Second
The envelope shown in the figure from the start of sound generation to the end of sound generation is divided into I (I = o, 1, ..., i,
..., I-1). Then, one period of the musical sound waveform selected and extracted from each division point is divided into N parts.
FIG. 3 shows an example of selected and extracted tone waveforms. N obtained by dividing one period of the extracted I musical sound waveforms into N
N×I waveform sample values, that is, N×I waveform sample values, and control data used when generating musical tones (in the present invention, control data for waveform interpolation is considered) are stored in a data memory. Remember it. Explanation of the waveform interpolation method As the waveform interpolation method, the sample wave position i to i+1 (i=0, 1, 2,
..., I-1), one cycle of the musical sound wave repeats M times, and the waveform sample f
Using interpolation, the virtual sample value f^(X i , n ,o) existing between (X i,o ) and f(X i+1, o ) is virtually calculated as the waveform sample value of the virtual sample point. The purpose of this is to calculate an approximate value. The interpolation formula is shown below. f^(X i,n,o )={f(X i+1,o )−f(X i,o
)}×m/M+f(X i,o )...(1) i is the sample position extracted by I division and is the waveform number. (i=0, 1, 2, ..., I-
1) m represents a position in the middle of a transition between waveform numbers i and i+1 repeatedly M times. (m=0, 1, 2, . . . , M-1) n is a sample position obtained by dividing one cycle of the musical sound waveform into N, and is a waveform sample NAND. (n=0, 1,
2,...,N-1) Figure 4a shows an example of interpolation using equation (1). As can be seen from the figure, discontinuities occur at the joints of the waveforms. If the level difference between these discontinuous points is large, it may cause an audible problem as an unnecessary noise component. Therefore, in this embodiment, a correction term is added to equation (1) to prevent the occurrence of discontinuous points as shown in FIG. 4b. The interpolation formula is shown by adding a correction term to formula (2). f^(X i,n,o )={f(X i+1,o )−f(X i,n )}
×Nm+n/MN+f(X i,o )...(2) Explanation of how to add an envelope There are two types of musical tones: an organ-type envelope and a piano-type envelope. FIG. 5 shows an example in which organ-shaped and piano-shaped envelopes are added. In the figure, a indicates an organ type, and b indicates a piano type. In this explanation, unlike the previous example, the waveform stored in the data memory is not the waveform up to the end of sound generation, but the stationary part of the musical tone or the point where the waveform shape is stable, and subsequent waveform generation is stored in the data memory. The last memorized waveform shall be used repeatedly. Explanation of organ type When the key signal turns on at point A in Figure 5,
A musical tone is synthesized by performing waveform interpolation using the waveform data in the data memory. Then, when time advances to point B, the data becomes the final waveform data, and the final waveform is generated repeatedly thereafter. After that, when the key signal is turned off at point C, the envelope signal has attenuation characteristics, and the output waveform is attenuated. Piano type explanation When the key signal turns on at point A in Figure 5,
A musical tone is synthesized by performing waveform interpolation using the waveform data in the data memory. Then, when the process reaches point B, the final waveform data becomes the final waveform data, and as the final waveform data is used repeatedly thereafter, the envelope signal enters the attenuation characteristic state, and the output waveform attenuates in accordance with the attenuation characteristic. Explanation on how to generate pitches To determine the pitch, a clock signal corresponding to a 12-tone scale is generated. Regarding octave relationships, pitches related to octaves are generated by changing the number of samples in one period of the tone waveform stored in the data memory. If the C 0 note is 512 samples, the scale clock signal will be 32.703Hz x 512 samples ≒ 16.74kHz.
Table 1 shows the scale clock frequency, and Table 2 shows the number of waveform samples and the octave relationship. Next, an embodiment of the present invention will be described with reference to the drawings. FIG. 6 is a block diagram of an electronic musical instrument employing the musical tone generator of the present invention. 601 is a keyboard section (KB), 602 is an operation section (TAB) consisting of a tone tablet switch, a vibrato effect on/off switch, a glide effect on/off switch, etc., and 603 is a central processing unit (CPU).
604 is a read/write storage device (random access memory called RAM), which is similar to that used in computers, etc.
606 is a read-only storage device (read-only memory called ROM) that stores programs that determine the operation of the CPU 603, and 606 is a storage device that stores waveform sample data for synthesizing musical tones, control data for waveform interpolation, etc. Memorized ROM
It is. Reference numeral 607 designates a musical tone generator that generates musical tones using the waveform sample data and control data stored in the ROM 606, 608 a filter that removes sampling noise, and 609 an electroacoustic transducer. Keyboard section 601, operation section 602, CPU 603,
The RAM 604, ROMs 605 and 606, and musical tone generating section 607 are connected by a data bus, an address bus, and a control line. In this way, the data bus and address

【表】【table】

【表】 スバスとコントロール線とで結合する方法そのも
のは、ミニコンピユータやマイクロコンピユータ
を中心とした構成方法として公知のものである。
データバスとしては8〜16本位用いられ、このバ
ス線上をデータが一方向でなく多方向に時分割的
に送受信される。アドレスバスも複数本たとえば
16本用意され、通常はCPU603がアドレスコ
ードを出力し、他の部分がアドレスコードを受け
取る。コントロール線は通常メモリ・リクエスト
線()、I/Oリクエスト線()、リ
ード線()、ライト線()などが用いられ
る。 はメモリを読み書きすることを示し、
IORQは入出力装置(I/O)の内容を取り出し
することを示し、はメモリやI/Oからデー
タを読み出すタイミングを示し、はメモリや
I/Oにデータを書き込むタイミングを示す。こ
のようなコントロール線を用いたものとしては、
ザイログ社のマイクロプロセツサZ80があげら
れる。 次に第6図の電子楽器の動作について述べる。
鍵盤部601は、複数の鍵スイツチを複数の群に
分けて、群内の鍵スイツチのオン/オフ状態を一
括してデータバスに送ることができるように構成
される。たとえば61鍵の鍵盤の場合、6鍵(半オ
クターブ)ずつの10群と1鍵の1群の11群に分
け、各群にアドレスコードを1つずつ割りつけ
る。アドレスラインに上記各群のうちの1つを示
すアドレスコードが到来し、信号と信号
RDが印加されると、鍵盤部601はそのアドレ
スコードを解読して、対応する群内のキースイツ
チのオン/オフを示す6ビツトまたは1ビツトの
データをデータバスに出力する。これらは、デコ
ーダ、バスドライバおよび若干のゲート回路を用
いて構成することができる。操作部602のう
ち、タブレツトスイツチについては、鍵盤部60
1と同様の構成をとることができる。 CPU603はその内部にあるプログラムカウ
ンタのコードに対応するROM605のアドレス
から命令コードを読み取り、これを解読して算術
演算、論理演算、データの読み込みと書き込み、
プログラムカウンタの内容の変更による命令のジ
ヤンプなどの作業を行なう。これらの作業の手順
はROM605に書き込まれている。まずCPU6
03はROM605より鍵盤部601のデータを
取り込むための命令を読み取り、鍵盤部601の
各鍵のオン/オフを示すコードを各群ごとに取り
込んで行く。そして、押鍵されている鍵コード
を、楽音発生部607の有限のチヤネルに割り当
て鍵コードに対応する楽音発生データを送出す
る。 次にCPU603は操作部602よりデータを
取り込むための一群の命令を順次ROM605か
ら読み取り、これらを解読して操作部602に対
応するアドレスコードとコントロール信号
とを出力し、データバスに操作部602のス
イツチの状態を表現するコードを出力され、
CPU603内に読み込む。CPU603内に読み
込んだデータに基づいて、音色の選択や所定の効
果制御データの生成を行ない、ROM606に音
色選択データ、楽音発生部607に効果制御デー
タを送出する。なお、押鍵されている鍵コードを
楽音発生部607の有限のチヤネルに割り当てて
ゆく方法そのものは、ジエネレータアサイナ機能
として公知のものである。 楽音発生部607ではCPU603から供給さ
れた楽音発生データに基づいて、楽音合成データ
ROM606から所定の波形サンプルデータや制
御データを取り込み波形内挿処理を行なつて楽音
波形を発生し、フイルタ608を介して電気音響
変換器609から楽音を発生させる。なお、楽音
発生部607の内部処理としては前述に説明した
とおりである。 第7図にCPU603から楽音発生部607に
データを供給する場合のタイムチヤートを示す。
アドレスバスにI/Oポートアドレスを、データ
バスに楽音発生データや効果制御データなどをそ
れぞれ供給する。そして、コントロール信号
IORQとが論理ロウレベル(以下“O”と略
す)から論理ハイレベル(以下“1”と略す)へ
変化するタイミングでI/Oポートアドレスで指
定されているチヤネルにデータバスの内容をラツ
チする。 次に、楽音発生部607に供給される各種のデ
ータについての説明を行なう。 第3表にI/Oポートアドレスと各種データの
内容を示す。I/Oポートアドレスは16進表示と
なつている。I/Oポートアドレス(00)16から
(07)16に対応するデータは、楽音発生データで8
チヤネル分すなわち、8音分の発生が可能となつ
ている。I/Oポートアドレス(08)16はサステ
インデータで、第5図で説明したエンベロープ信
号の減衰特性を指定するものである。I/Oポー
トアドレス(09)16はエンベロープ特性がピアノ
型の時に有効となるダンパデータで、サステイン
データと同様エンベロープ信号の減衰特性を指定
するものである。I/Oポートアドレス(OA)16
はビートデータで、2楽音発生時の周波数のずれ
を指定するものである。I/Oポートアドレス
(OB)16は効果制御データで、ビブラートオン/
オフ信号やグライドオン/オフ信号などで構成し
ている。 第4表に楽音発生データの構成内容を示す。ビ
ツト位置D0からD3は音階周波数を指定するノー
トクロツク指定データである。ビツト位置D4
[Table] The method of connecting the bus and the control line itself is a well-known method for configuring minicomputers and microcomputers.
Eight to 16 data buses are used, and data is transmitted and received on these bus lines not in one direction but in multiple directions in a time-division manner. For example, there are multiple address buses.
There are 16 wires, and normally the CPU 603 outputs the address code, and other parts receive the address code. As the control line, a memory request line (), an I/O request line (), a read line (), a write line (), etc. are usually used. indicates reading and writing memory,
IORQ indicates retrieving the contents of an input/output device (I/O), indicates the timing to read data from memory or I/O, and indicates timing to write data to memory or I/O. Using such a control line,
An example is the microprocessor Z80 from Zilog. Next, the operation of the electronic musical instrument shown in FIG. 6 will be described.
The keyboard section 601 is configured to be able to divide a plurality of key switches into a plurality of groups and send the on/off states of the key switches in the group all at once to the data bus. For example, in the case of a 61-key keyboard, it is divided into 10 groups of 6 keys (half an octave) and 11 groups of 1 key, and one address code is assigned to each group. An address code indicating one of the above groups arrives on the address line, and the signal and signal
When RD is applied, the keyboard section 601 decodes the address code and outputs 6-bit or 1-bit data indicating on/off of the key switches in the corresponding group to the data bus. These can be constructed using decoders, bus drivers and some gate circuits. Of the operating units 602, the tablet switch is connected to the keyboard unit 60.
A configuration similar to 1 can be adopted. The CPU 603 reads the instruction code from the address of the ROM 605 that corresponds to the code of the internal program counter, decodes it, performs arithmetic operations, logical operations, reads and writes data, etc.
Performs tasks such as jumping instructions by changing the contents of the program counter. Procedures for these operations are written in the ROM 605. First, CPU6
03 reads from the ROM 605 an instruction for importing the data of the keyboard section 601, and imports codes indicating on/off of each key of the keyboard section 601 for each group. Then, the pressed key code is assigned to a finite channel of the musical tone generating section 607, and musical tone generation data corresponding to the key code is sent out. Next, the CPU 603 sequentially reads a group of instructions from the ROM 605 for importing data from the operation unit 602, decodes them, outputs the address code and control signal corresponding to the operation unit 602, and outputs the address code and control signal corresponding to the operation unit 602 to the data bus. A code expressing the switch status is output,
Load into CPU603. Based on the data read into the CPU 603, a tone color is selected and predetermined effect control data is generated, and the tone color selection data and the effect control data are sent to the ROM 606 and the musical sound generation section 607. Note that the method of allocating the pressed key code to a finite channel of the tone generator 607 is known as a generator assigner function. The musical sound generation section 607 generates musical sound synthesis data based on the musical sound generation data supplied from the CPU 603.
Predetermined waveform sample data and control data are taken in from the ROM 606 and subjected to waveform interpolation processing to generate a musical sound waveform, and the electroacoustic transducer 609 generates a musical tone via a filter 608. Note that the internal processing of the musical tone generating section 607 is as described above. FIG. 7 shows a time chart when data is supplied from the CPU 603 to the tone generator 607.
The I/O port address is supplied to the address bus, and musical tone generation data, effect control data, etc. are supplied to the data bus. and the control signal
The contents of the data bus are latched to the channel specified by the I/O port address at the timing when IORQ changes from a logic low level (hereinafter abbreviated as "O") to a logic high level (hereinafter abbreviated as "1"). Next, various types of data supplied to musical tone generating section 607 will be explained. Table 3 shows the I/O port addresses and the contents of various data. The I/O port address is displayed in hexadecimal. The data corresponding to I/O port address (00) 16 to (07) 16 is musical tone generation data 8.
It is now possible to generate eight tones for each channel. I/O port address (08) 16 is sustain data that specifies the attenuation characteristic of the envelope signal explained in FIG. I/O port address (09) 16 is damper data that becomes valid when the envelope characteristic is piano type, and, like the sustain data, specifies the attenuation characteristic of the envelope signal. I/O port address (OA) 16
is beat data, which specifies the frequency shift when two tones are generated. I/O port address (OB) 16 is effect control data, vibrato on/
It consists of off signals, glide on/off signals, etc. Table 4 shows the composition of the musical tone generation data. Bit positions D0 to D3 are note clock designation data that designates scale frequencies. Bit position D4

【表】【table】

【表】【table】

【表】【table】

【表】 〜D6は発生音域を指定する波形サンプル数指定
データである。ビツト位置D7は鍵スイツチのオ
ン/オフ操作に伴なうキーオン/オフ信号で、オ
フ時は“0”、オン時は“1”となる。 第5表に波形サンプル数指定データSD0〜SD2
のコード内容とそのコードで指定される波形1周
期のサンプル数を示す。波形サンプル数指定デー
タSDは(000)2から(111)2までの8種類の波形
サンプル数が指定できるようになつており、本実
施例では、512サンプルから4サンプルまでを指
定している。 第6表にノートクロツク指定データND0〜
ND3で表わされるコードの内容と、そのコード
で指定される指定音階の関係を示す。 第7表に効果制御データの構成内容を示す。ビ
ツト位置D0はビブラートオン/オフ信号VIBで、
操作部602内のビブラートオン/オフスイツチ
がオフの時“0”、オンの時“1”となる。 ビツト位置D1はデイレイビブラートオン/オ
フ信号DVIBで、デイレイビブラート効果制御信
号であり、操作部602内のデイレイビブラート
オン/オフスイツチがオフの時“0”、オンの時
“1”となる。 ビツト位置D2はグライドオン/オフ信号GL
で、操作部602内のグライドスイツチがオフの
時“0”、オンの時“1”となる。 ビツト位置D3はオルガン型/ピアノ型指定信
号OPSで、エンベロープ特性を指定するもので
あり、オルガン型の時“0”、ピアノ型の時“1”
となる。 ビツト位置D4はダンパオン/オフ信号DMP
で、エンベロープ特性がピアノ型の時のみ有効と
なるもので、ダンパオフの時“0”、オンの時
“1”となる。 ビツト位置D5はジエネレータアサイナ動作モ
ード信号GAMで、1鍵で楽音発生チヤネルを2
チヤネル使用する場合の指定信号であり、GAM
信号が“0”の場合、1鍵1チヤネル使用(8音
発生)となり、“1”の場合、1鍵2チヤネル使
用(4音発生)となる。
[Table] ~D6 is waveform sample number designation data that designates the sound generation range. Bit position D7 is a key on/off signal accompanying the on/off operation of the key switch, and is "0" when off and "1" when on. Table 5 shows waveform sample number specification data SD0 to SD2.
This shows the code contents and the number of samples in one cycle of the waveform specified by the code. The waveform sample number specification data SD allows eight types of waveform sample numbers from (000) 2 to (111) 2 to be specified, and in this embodiment, 512 samples to 4 samples are specified. Table 6 shows notebook clock specification data ND0~
This shows the relationship between the contents of the chord represented by ND3 and the specified scale specified by that chord. Table 7 shows the composition of the effect control data. Bit position D0 is the vibrato on/off signal VIB,
When the vibrato on/off switch in the operation unit 602 is off, it is "0" and when it is on, it is "1". Bit position D1 is a delay vibrato on/off signal DVIB, which is a delay vibrato effect control signal, and is "0" when the delay vibrato on/off switch in the operation section 602 is off, and "1" when it is on. Bit position D2 is the glide on/off signal GL
When the glide switch in the operation unit 602 is off, it becomes "0", and when it is on, it becomes "1". Bit position D3 is the organ type/piano type designation signal OPS, which specifies the envelope characteristics, and is “0” for organ type and “1” for piano type.
becomes. Bit position D4 is damper on/off signal DMP
This is valid only when the envelope characteristic is piano type, and is "0" when the damper is off and "1" when it is on. Bit position D5 is the generator assigner operation mode signal GAM, which allows one key to switch two musical tone generation channels.
This is the specified signal when using the GAM channel.
When the signal is "0", one key uses one channel (eight sounds are generated), and when the signal is "1", one key uses two channels (four sounds are generated).

【表】 第8図は楽音発生部607の構成図である。第
8図において、801は主発振器、802は楽音
発生部607の動作内容を制御するシーケンサ、
803はCPU603から供給される各種のデー
タをラツチする入力レジスタ部、804はタイマ
ー、805は比較レジスタ部、806は発音すべ
き周波数に対応する周波数データを発生する周波
数データプロセツサ(以下FDPと略す)、807
は前述で説明した(2)式の波形内挿処理を行なう波
形データプロセツサ(以下WDPと略す)、808
は楽音合成データROM606から波形サンプル
データや制御データなどを読み込むデータ・リー
ド・プロセツサ(以下DRPと略す)、809は所
定のパルス幅のパルス信号を生成する読み出しパ
ルス形成部、810はWDP807、DRP808
などに演算処理要求を行なう計算要求フラグ発生
部、811はデイジタル信号をアナログ信号に変
換するデイジタル/アナログ変換器(以下DAC
と略す)、812は1チヤネル当りアナログスイ
ツチ2つとコンデンサ1つとで構成されており、
アナログ信号を保持するアナログバツフアメモリ
部、813は積分器である。 上記構成において、804,805,806,
810は発音音階を決定するノートクロツク発生
部を構成し、その出力信号に基づいて、データ読
み出し部であるDRP808が楽音合成データ
ROM606からデータを読み出す。 入力レジスタ部803、比較レジスタ部80
5、FDP806、WDP807、DRP808、計
算要求フラグ発生部810はシーケンサ802に
よつて処理を行なう手順が決められている。 CPPU603から所定のチヤネルたとえばチヤ
ネル1に楽音発生データが供給されると、シーケ
ンサ803で決められている所定のタイミングで
入力レジスタ部803からFDP806、WDP8
07、DRP808に楽音発生データが供給され
る。そうすると、DRP808において、楽音合
成データROM606から波形サンプルデータと
制御データを読み取る。そして、(2)式に示したf
(Xi,o)をデータWDとし、f(Xi+1,o)をデータ
WDとしてWDP807に供給する。さらに、
読み取つた制御データに基づいて(2)式に示した内
挿係数の分子項をデータMLPとしてWDP807
に供給する。また、最終波形データになると最終
波形データを指示するWEF信号をWDP807に
供給する。 WDP807では、DRP808から供給された
データWD、WD、MLPを用い、(2)式の波形
演算処理を行なつてDAC811に供給する。そ
して、DAC811において、WDP807から供
給されたデイジタル信号をアナログ信号に変換
し、アナログバツフアメモリ部812にアナログ
信号として供給し、チヤネル1に対応するコンデ
ンサ電荷が蓄えられる。 一方、FDP806では、入力レジスタ部80
3から供給された楽音発生データに基づいた周波
数データが生成され、比較レジスタ部805のチ
ヤネル1に対応するレジスタに供給される。そし
て、比較レジスタ805に供給されたデータとタ
イマー804から供給されている時間データとの
比較処理を行ない、一致が検出できると一致パル
スを読み出しパルス形成部809と計算要求フラ
グ発生部810に供給する。 そうすると、読み出しパルス形成部809で所
定のパルス幅の読み出し信号が生成され、アナロ
グバツフアメモリ部812に供給される。アナロ
グバツフアメモリ部812内のチヤネル1に対応
するコンデンサに蓄えられている電荷は読み出し
信号によつて積分器813に流れ込む。 計算要求フラグ発生部810では、次波形サン
プルすなわち、仮想サンプル点f^(Xi,n,o+1)を求め
るための計算要求フラグを発生し保持する。そし
て、その後再び処理タイミングがチヤネル1とな
ると、計算要求フラグが発生しているので前述と
同様に波形内挿処理が行なわれ、アナログバツフ
アメモリ部812内のコンデンサに電荷が蓄えら
れる。以後、計算要求フラグに対応して波形内挿
処理が行なわれ、楽音波形を発生することにな
る。 なお、コンデンサに蓄える電荷は、f^(Xi,n,o-1
と今回求めた波形サンプル値f^(Xi,n,o)との差分
に相当する。そして、積分器813によつて今回
求めた波形サンプル値f^(Xi,n,o)が復元されるこ
とになる。アナログバツフアメモリ部812と積
分器813周辺の動作については、特願昭57−
126413「波形読み出し装置」に述べてある。 第9図はシーケンサ802の一具体例のブロツ
ク図である。図中、901は2相クロツク信号φ
1と信号φ2とを発生する2相クロツク発生部、
902は1チヤネル当りの動作シーケンスを決め
る11進カウンタ、903は現在演算処理を行なつ
ているチヤネルコードを発生するカウンタ、90
4は動作手順が記憶されているROM、905は
デコーダである。第10図にシーケンサ802の
タイミングチヤート図を示す。 主発振器801からマスタクロツク(MCK)
信号が2相クロツク発生部901に供給される。
2相クロツク発生部901では、第10図に示す
ような2相クロツク信号φ1,φ2を発生する。
信号φ1は11進カウンタ902とカウンタ903
に供給されている。 11進カウンタ902は4ビツト構成となつてお
り、信号φ1が“0”から“1”へ変化するタイ
ミングでカウントアツプ処理が行なわれ、出力信
号が(1111)2となり、次にカウントアツプを行な
うと(0101)2にセツトされる。この結果、11進カ
ウンタ902の出力信号は11の状態、すなわち
(0101)2〜(1111)2となる。これを命令ステツプ
信号として使用する。 カウンタ903は3ビツト構成となつており、
11カウンタ902の出力信号が(1111)2から
(0101)2へ変化するたびにカウントアツプ処理が
行なわれる。この結果、カウンタ903の出力信
号は8の状態、すなわち(000)2〜(111)2とな
る。これをチヤネルコードとして使用する。 ROM904は11進カウンタ902から供給さ
れる命令ステツプ信号に基づいた命令コードを読
み出し、デコーダ905に供給する。デコーダ9
05はROM904から供給された命令コードを
解読して処理制御信号を各部に供給する。 この結果、1チヤンネル当りの計算時間は
2.75μsとなり、11の命令ステツプで各演算処理を
行なうことになる。そして、22μsごとに計算タイ
ミングが返されることになる。 第11図にアナログバツフアメモリ部812の
一具体例の構成図を示す。図中、1101は入力
端、1102は出力端、1103〜1108はア
ナログスイツチ、C1〜C8はコンデンサである。 アナログスイツチ1103,1105,110
7のゲート入力に供給されている信号AW1〜
AW8はWDP807から供給されている。また、
アナログスイツチ1104,1106,1108
のゲート入力に供給されている信号AR1〜AR
8は読み出しパルス形成部809から供給されて
いる。 DAC811で変換されたアナログ信号は入力
端1101に印加されたアナログスイツチ110
3,1105,1107に供給される。そして、
チヤネル1に対応するデータであれば、アナログ
スイツチ1103のみオン状態となり、入力端1
101に印加されたアナログ信号に相当する電荷
がコンデンサC1に蓄えられる。 その後、チヤネル1に対応する読み出しパルス
AR1が読み出しパルス発生部809からアナロ
グスイツチ1104のゲート入力に供給される
と、コンデンサC1に蓄えられている電荷が出力
端1102を介して積分器813に供給される。 アナログスイツチ1103,1105,110
7はWDP807の動作タイミングに同期してい
るので、同時に複数個オン状態にならない。アナ
ログスイツチ1104,1106,1108は音
階周波数に同期してオンするようになつているた
め、複数個同時にオン状態となりうる。 第12図は楽音発生部607の内部動作タイミ
ングチヤートである。第12図には4チヤネル分
のタイミングを示した。 図中の略記号の説明 CRFは、各チヤネルごとの計算要求信号であ
る。そして、要求開始時点が比較レジスタ部80
5から供給される一致信号と同期している。すな
わち、音階周波数に同期することとなり、たとえ
ば、C音階であれば59.74μsごとに発生する。 CLCは、波形演算タイミンゲを示す。 DACは、DAC811を介してアナログバツフ
アメモリ812内のコンデンサに電荷を蓄えるタ
イミングを示す。 OTCは、アナログバツフアメモリ812内の
コンデンサに蓄えられている電荷を積分器813
に供給するタイミングであり、CRFと同様に、
音階周波数に同期して発生している。 チヤネル1のタイムチヤートについて説明す
る。チヤネル1に相当する演算タイミングはシー
ケンサ802は発生しているチヤネルコードによ
つて決まつており、図にも示してあるように、
22μsごとに演算タイミングが発生している。 ……信号CRF1がチヤネルコード1の途中で
発生する。発生したタイミングでは波形内挿処
理を行なわない。 ……信号CRF1が発生すると同時に信号OTC
1が発生し、アナログバツフアメモリ812内
のコンデンサC1の電荷が積分器813に供給
される。信号OTCのパルス幅は2μs程度であ
る。 ……チヤネルコードが再び1となると、波形サ
ンプルデータなどの読み込み処理や波形内挿処
理や周波数データの更新処理などを行なう。 ……チヤネル1の演算処理が終了すると、信号
DAC1が発生し、DAC811を介してコンデ
ンサC1に電荷が蓄えられる。 ……チヤネル1の演算処理が終了すると、信号
CRF1をリセツトして計算要求を解除する。 ……前述のと同様に、信号CRF1が再び発
生するタイミングで、前述ののタイミングで
コンデンサC1に蓄えられた電荷が積分器81
3に供給される。 以後、上述と同様に、信号CRFが発生するた
びに、1回の仮想波形サンプル値算出処理が行な
われ、信号CRFの発生タイミング、すなわち音
階同期に同期して波形算出結果が積分器813に
供給される。 演算サイクルと音階周期の関係は、最小音階周
期内に同一チヤネルの演算タイミングが2回と演
算結果をアナログバツフアメモリ部812内のコ
ンデンサに電荷を蓄えることが出来ればよい。す
なわち、最小音階周期内に10チヤネル分に相当す
る演算タイミングを設ければよい。 音階周期の発生方法についての説明 第13図に、FDP806から比較レジスタ部
805に供給する周波数データの推移を示す。タ
イマー804は10ビツトの2進カウンタで構成し
ており、出力状態を16進表示で表わすと、
(000)16から(3FF)16まで順次カウントアツプを
行ない、(3FF)16から再び(000)16となり、
(000)16から(3FF)16が主発振器801から供給
される信号MCKに基づいてくり返される。すな
わち、タイマー804のくり返し周期TRは下式
のようになる。 TR=210×1/fMCK=210×1/8.00096MHz=127.98μs ……(3) タイマー804の出力データ推移状態を第13
図中のタイマー出力データとして記載してある。 音階周期の発生方法としては、タイマー804
の出力信号とFDP806から供給された周波数
データとの比較を行ない、一致が検出できれば一
致パルスを比較レジスタ部805から送出する。
その一致パルスの発生周期が発音すべき音階の音
階周期となる。 第13図に示したように、周波数データを更新
することによりノートクロツク信号が発生でき
る。すなわち、下式に示すような演算処理を
FDP806で行なう。 NFD=MOD(OFD+PD、TDnax) ……(4) NFDは、新しい周波数データである。 OFDは、更新前の周波数データである。 PDは、発生音階によつて決まつている音階デ
ータである。 TDnaxは、タイマー804の出力状態数であ
る。本実施例の場合TDnaxは210すなわち1024で
ある。 第8表に12音階に対応する音階データPDを示
す。 第14図は、FDP806の一具体例の構成図
である。第14図において、1401はセント尺
度で表わした音階データ(CPDとする)を発生
するセント音階データ発生部(以下CPD発生部
と略す)で、セント音階データを記憶している
ROMで構成しており、ノートクロツク指定デー
タ(ND)と波形サンプル数指定データ(SD)
とオルガン型/ピアノ型指定信号(OPS)に基
づいたCPDを選択発生するようになつている。
1402はビートデータを選択するビートデータ
ゲート、1403はビブラート信号を発生するビ
ブラート信号発生部、1404はグライド信号を
発生するグラフト信号発生部、1405はセント
尺度で表わされた周波数値を周波数に正比例する
周波数データに変換する指数変換器、1406は
演算部、1407はラツチ(ALとする)、140
8はラツチ(BLとする)、1409は加算器
(FAとする)、1410はバツフア、1411は
ゲートである。1412,1413,1414は
バスライン
[Table] FIG. 8 is a configuration diagram of the musical tone generating section 607. In FIG. 8, 801 is a main oscillator, 802 is a sequencer that controls the operation contents of the musical tone generator 607,
803 is an input register unit that latches various data supplied from the CPU 603, 804 is a timer, 805 is a comparison register unit, and 806 is a frequency data processor (hereinafter abbreviated as FDP) that generates frequency data corresponding to the frequency to be generated. ), 807
is a waveform data processor (hereinafter abbreviated as WDP) 808 that performs the waveform interpolation process of equation (2) explained above.
809 is a data read processor (hereinafter abbreviated as DRP) that reads waveform sample data, control data, etc. from the musical tone synthesis data ROM 606, a read pulse forming unit that generates a pulse signal with a predetermined pulse width, and 810 is a WDP 807, DRP 808
811 is a digital/analog converter (hereinafter referred to as DAC) that converts a digital signal into an analog signal.
), 812 consists of two analog switches and one capacitor per channel,
An analog buffer memory section 813 that holds analog signals is an integrator. In the above configuration, 804, 805, 806,
Reference numeral 810 constitutes a note clock generation section that determines the tone scale, and based on the output signal, DRP 808, which is a data reading section, generates musical tone synthesis data.
Read data from ROM606. Input register section 803, comparison register section 80
5. Procedures for processing the FDP 806, WDP 807, DRP 808, and calculation request flag generation unit 810 are determined by the sequencer 802. When musical tone generation data is supplied from the CPPU 603 to a predetermined channel, for example channel 1, the input register section 803 outputs FDP 806 and WDP 8 at a predetermined timing determined by the sequencer 803.
07, musical tone generation data is supplied to the DRP 808. Then, the DRP 808 reads waveform sample data and control data from the musical tone synthesis data ROM 606. Then, f shown in equation (2)
(X i,o ) is the data WD, and f(X i+1,o ) is the data
Supplied to WDP807 as WD. moreover,
Based on the read control data, the numerator term of the interpolation coefficient shown in equation (2) is used as data MLP and WDP807
supply to. Furthermore, when the final waveform data is reached, a WEF signal indicating the final waveform data is supplied to the WDP 807. The WDP 807 uses the data WD, WD, and MLP supplied from the DRP 808 to perform waveform calculation processing according to equation (2) and supplies the processed data to the DAC 811. Then, the DAC 811 converts the digital signal supplied from the WDP 807 into an analog signal, and supplies the analog signal to the analog buffer memory section 812, where the capacitor charge corresponding to channel 1 is stored. On the other hand, in the FDP806, the input register section 80
Frequency data is generated based on the musical tone generation data supplied from 3, and is supplied to the register corresponding to channel 1 of the comparison register section 805. Then, the data supplied to the comparison register 805 and the time data supplied from the timer 804 are compared, and if a match is detected, a matching pulse is read out and supplied to the pulse forming section 809 and the calculation request flag generating section 810. . Then, the read pulse forming section 809 generates a read signal with a predetermined pulse width, and supplies it to the analog buffer memory section 812. The charge stored in the capacitor corresponding to channel 1 in the analog buffer memory section 812 flows into the integrator 813 in response to the read signal. The calculation request flag generating section 810 generates and holds a calculation request flag for determining the next waveform sample, that is, the virtual sample point f^(X i,n,o+1 ). Thereafter, when the processing timing becomes channel 1 again, since the calculation request flag has been generated, waveform interpolation processing is performed in the same manner as described above, and charges are stored in the capacitor in the analog buffer memory section 812. Thereafter, waveform interpolation processing is performed in response to the calculation request flag, and a musical tone waveform is generated. The charge stored in the capacitor is f^(X i,n,o-1 )
This corresponds to the difference between the waveform sample value f^(X i,n,o ) and the waveform sample value f^(X i,n,o ) obtained this time. Then, the waveform sample value f^(X i,n,o ) obtained this time is restored by the integrator 813. Regarding the operation around the analog buffer memory section 812 and the integrator 813, please refer to the patent application filed in 1987-
126413 “Waveform reading device”. FIG. 9 is a block diagram of a specific example of the sequencer 802. In the figure, 901 is a two-phase clock signal φ
a two-phase clock generator that generates a signal φ2 and a signal φ2;
902 is a hexadecimal counter that determines the operation sequence per channel; 903 is a counter that generates the channel code that is currently being processed; 90
4 is a ROM in which operating procedures are stored, and 905 is a decoder. FIG. 10 shows a timing chart of the sequencer 802. Master clock (MCK) from main oscillator 801
The signal is supplied to a two-phase clock generator 901.
A two-phase clock generating section 901 generates two-phase clock signals φ1 and φ2 as shown in FIG.
Signal φ1 is supplied to hexadecimal counter 902 and counter 903
is supplied to. The hexadecimal counter 902 has a 4-bit configuration, and the count-up process is performed at the timing when the signal φ1 changes from "0" to "1", the output signal becomes (1111) 2 , and then the count-up is performed. and (0101) are set to 2 . As a result, the output signal of the hexadecimal counter 902 becomes 11 states, that is, (0101) 2 to (1111) 2 . This is used as a command step signal. The counter 903 has a 3-bit configuration,
Count-up processing is performed every time the output signal of the 11 counter 902 changes from (1111) 2 to (0101) 2 . As a result, the output signal of the counter 903 becomes 8 states, that is, (000) 2 to (111) 2 . Use this as the channel code. ROM 904 reads out an instruction code based on the instruction step signal supplied from hexadecimal counter 902 and supplies it to decoder 905 . Decoder 9
05 decodes the instruction code supplied from the ROM 904 and supplies processing control signals to each section. As a result, the calculation time per channel is
The processing time is 2.75 μs, and each calculation process is performed in 11 instruction steps. Then, the calculation timing will be returned every 22μs. FIG. 11 shows a configuration diagram of a specific example of the analog buffer memory section 812. In the figure, 1101 is an input terminal, 1102 is an output terminal, 1103 to 1108 are analog switches, and C 1 to C 8 are capacitors. Analog switch 1103, 1105, 110
The signal AW1~ supplied to the gate input of 7
AW8 is supplied by WDP807. Also,
Analog switch 1104, 1106, 1108
The signals AR1 to AR supplied to the gate inputs of
8 is supplied from a read pulse forming section 809. The analog signal converted by the DAC811 is applied to the input terminal 1101 of the analog switch 110.
3,1105,1107. and,
If the data corresponds to channel 1, only analog switch 1103 is turned on, and input terminal 1 is turned on.
A charge corresponding to the analog signal applied to the capacitor C1 is stored in the capacitor C1. Then the read pulse corresponding to channel 1
When AR1 is supplied from the read pulse generator 809 to the gate input of the analog switch 1104, the charge stored in the capacitor C1 is supplied to the integrator 813 via the output terminal 1102. Analog switch 1103, 1105, 110
7 is synchronized with the operation timing of the WDP 807, so multiple units are not turned on at the same time. Since the analog switches 1104, 1106, and 1108 are turned on in synchronization with the scale frequency, a plurality of them can be turned on at the same time. FIG. 12 is an internal operation timing chart of the musical tone generator 607. FIG. 12 shows the timing for four channels. Explanation of abbreviations in the figure CRF is a calculation request signal for each channel. Then, the request start point is at the comparison register section 80.
It is synchronized with the coincidence signal supplied from 5. In other words, it is synchronized with the scale frequency, and for example, in the C scale, it occurs every 59.74 μs. CLC indicates waveform calculation timing. DAC indicates the timing at which charge is stored in a capacitor in analog buffer memory 812 via DAC 811. OTC converts the charge stored in the capacitor in the analog buffer memory 812 into an integrator 813.
It is the timing to supply to the
It occurs in synchronization with the musical scale frequency. The time chart for channel 1 will be explained. The calculation timing corresponding to channel 1 is determined by the sequencer 802 based on the channel code being generated, and as shown in the figure,
Calculation timing occurs every 22μs. ... Signal CRF1 is generated in the middle of channel code 1. Waveform interpolation processing is not performed at the generated timing. ...The signal OTC is generated at the same time as the signal CRF1 is generated.
1 is generated, and the charge of capacitor C 1 in analog buffer memory 812 is supplied to integrator 813 . The pulse width of the signal OTC is about 2 μs. ...When the channel code becomes 1 again, reading processing of waveform sample data, waveform interpolation processing, frequency data updating processing, etc. are performed. ...When the calculation process of channel 1 is completed, the signal
DAC1 is generated and charge is stored in capacitor C1 via DAC811. ...When the calculation process of channel 1 is completed, the signal
Reset CRF1 and cancel the calculation request. ...Similar to the above, when the signal CRF1 is generated again, the charge stored in the capacitor C1 at the above timing is transferred to the integrator 81.
3. Thereafter, as described above, one virtual waveform sample value calculation process is performed every time the signal CRF is generated, and the waveform calculation result is supplied to the integrator 813 in synchronization with the timing of the signal CRF generation, that is, with the scale synchronization. be done. Regarding the relationship between the calculation cycle and the scale period, it is sufficient that the calculation timing of the same channel can be performed twice within the minimum scale period and that the calculation result can be stored in a capacitor in the analog buffer memory section 812. That is, it is sufficient to provide calculation timing corresponding to 10 channels within the minimum scale period. Explanation of how to generate a scale period FIG. 13 shows the transition of frequency data supplied from the FDP 806 to the comparison register section 805. The timer 804 consists of a 10-bit binary counter, and the output status is expressed in hexadecimal as follows:
Count up sequentially from (000) 16 to (3FF) 16 , and from (3FF) 16 to (000) 16 again,
(000) 16 to (3FF) 16 are repeated based on the signal MCK supplied from the main oscillator 801. That is, the repetition period T R of the timer 804 is expressed by the following formula. T R = 2 10 × 1 / f MCK = 2 10 × 1 / 8.00096MHz = 127.98 μs ... (3) The output data transition state of the timer 804 is
It is described as timer output data in the figure. The timer 804 is used to generate the scale period.
The output signal of the FDP 806 is compared with the frequency data supplied from the FDP 806, and if a match is detected, a match pulse is sent out from the comparison register section 805.
The generation cycle of the matching pulse becomes the scale cycle of the scale to be sounded. As shown in FIG. 13, a note clock signal can be generated by updating the frequency data. In other words, the calculation process shown in the formula below is
Performed with FDP806. NFD=MOD (OFD+PD, TD nax )...(4) NFD is new frequency data. OFD is frequency data before update. PD is scale data determined by the generated scale. TD nax is the number of output states of the timer 804. In this embodiment, TD nax is 210 , or 1024. Table 8 shows scale data PD corresponding to the 12-tone scale. FIG. 14 is a configuration diagram of a specific example of the FDP 806. In FIG. 14, 1401 is a cent scale data generation unit (hereinafter abbreviated as CPD generation unit) that generates scale data (CPD) expressed in cent scale, and stores cent scale data.
Consisting of ROM, note clock specification data (ND) and waveform sample number specification data (SD)
CPD is selectively generated based on the organ type/piano type designation signal (OPS).
1402 is a beat data gate that selects beat data; 1403 is a vibrato signal generator that generates a vibrato signal; 1404 is a graft signal generator that generates a glide signal; and 1405 is a frequency value expressed in cent scale that is directly proportional to the frequency. 1406 is an arithmetic unit, 1407 is a latch (AL), 140
8 is a latch (designated as BL), 1409 is an adder (designated as FA), 1410 is a buffer, and 1411 is a gate. 1412, 1413, 1414 are bus lines

【表】 で、1412がFAバス、1413がFBバス、1
414がFCバスである。 なお、ビートデータCBD、ビブラートデータ
CVD、グライドデータCGDもセント尺度で表わ
している。 各種データの構造 セントピツチデータ(CPD) 11ビツト構成で、上位4ビツトで12音階平均律
を表わし、下位7ビツトで半音階を128等分した
各点を表わしている。 ビートデータ(CBD)、ビブラートデータ
(CVD)、グライドデータ(CGD) 各ビツト構成は8ビツトで、2の補数表現を用
い、半音階を128等分した分解能を有する。そし
て、正負のビート成分、ビブラート成分、グライ
ド成分を表わしている。 ビブラート信号発生部1403の説明 第22図はビブラート信号発生部1403の一
具体例の構成図を示す。図中、2201はビブラ
ートデータCVDを記憶しておくビブラート
ROM、2202はビブラートROM2201か
ら記憶してあるビブラートデータを読み出すため
のアドレスデータを格納するビブラートアドレス
レジスタ、2203はデイレイビブラート効果の
時に用いるシフタ、2204は信号RDCVDによ
りシフタ2203の出力信号(ビブラートデータ
CVD)をFBバスに供給するゲート、2205は
入力レジスタ部803から供給されている信号
KD、信号VIB、信号DVIBとシーケンサ802
から供給されている信号CHCに基づいてビブラ
ート信号発生部1403の動作条件を設定する条
件設定部、2206はゲート、2207はゲー
ト、2208はANDゲートである。 レジスタ2202に格納するアドレスデータは
14ビツト構成となつており、下位11ビツトをビブ
ラートROM2201のアドレスデータとし、上
位3ビツトをシフタ2203のシフトデータとし
ている。シフタ2203はシフトデータに基づい
てビブラートROM2201から供給されている
ビブラートCVDの振幅を制御するものである。
シフトデータVSFDとシフタ2203の出力デー
タOSFDとの関係は次のとおりである。 VSFD=(000)2……OSFD=(00)16、VSFD=
(001)2……OSFD=(CVD/64)、VSFD=(010)2
……OSFD=(CVD/32)、……、VSFD=(110)2
……OSFD=(CVD/2)、VSFD=(111)2……
OSFD=(CVD) 条件設定部2205は次のような動作条件設定
を行なう。 ビブラートオフ ビブラートオン/オフ信号VIBが“0”の場合
であり、ゲート2206の出力を強制的に常時
(00)16とする。そうすると、シフタ2203のシ
フトデータは常時(000)2となる。この結果、シ
フタ2203の出力データは(00)16となる。す
なわち、ビブラートデータCVDが常時(00)16
なる。 ビブラートオン ビブラートオン/オフ信号VIBが“1”で信号
DVIBが“0”の場合、ビブラートオン状態とな
る。レジスタ2202に格納しているアドレスデ
ータをゲート2206を介してゲート2207と
シフタ2203に供給する。なお、アドレスデー
タの上位3ビツト、すなわちシフトデータを強制
的に(111)2とする。そうすると、ゲート220
4の入力にはビブラートROM2201の出力
(ビブラートデータCVD)がそのまま供給される
ことになる。 デイレイビブラート ビブラートオン/オフ信号VIBとデイレイビブ
ラートオン/オフ信号DVIBが“1”の場合、デ
イレイビブラート状態となる。8チヤネルのキー
オン/オフ信号KDがすべてオフ状態からいずれ
か1つのキーオン/オフ信号KDがオン状態とな
ると、アドレスデータを(000)16に設定するよう
に、ゲート2206を制御する。そうすると、シ
フタ2203において、ビブラート信号1周期ご
とに、ビブラートデータCVDの振幅制御(0、
CVD/64、CVD/32、CVD/16、CVD/8、
CVD/4、CVD/2、CVD)が行なわれる。そ
して、シフトデータ(111)2になるとビブラート
オン状態と同様にシフトデータを強制的に
(111)2とする。 レジスタ2202に格納しているアドレスデー
タは、シーケンサ802から供給されている信号
RDVADによつてゲート2207を介してFBバ
スに供給される。 演算部1406で加算処理されたアドレスデー
タは、信号WRVADによつて信号φ2の立上り
エツチで、FCバスからレジスタ2202に格納
される。 また、信号RDCVDによつて、ビブラート
ROM2201に格納してあるビブラートデータ
CVDがシフタ2203、ゲート2204を介し
てFBバスに供給される。 グライド信号発生部1404の説明 グライド信号発生部1404も、ビブラート信
号発生部1403と同様にグライドデータを記憶
しておくグライドROMと、そのグライドROM
から所定のグライドデータを読み出すためのグラ
イドアドレスレジスタと、発生制御を行なう制御
器とから構成している。 動作モードとしては、グライドオフとグライド
オンの2種類がある。 グライドオフ 信号GLが“0”の場合グライドオフ状態とな
る。グライドデータCGDは常時(00)16となる。 グライドオン 信号GL“1”の場合グライドオン状態となる。
通常よく知られているグライド効果と同様なもの
である。すなわち、8チヤネルのキーオン/オフ
信号KDがすべてオフ状態からいずれか1チヤネ
ルのキーオン/オフ信号KDがオンになるとグラ
イドROMからグライドデータCGDが読み出され
る。そして、所定な時間が経過すると再びグライ
ドデータCGDは(00)16となる。 指数変換器1405の説明 指数変換器1405は、セント尺度のデータを
周波数に正比例する周波数データEDに変換する
変換データを記憶した変換ROMを内蔵してい
る。 本実施例では、セント尺度上の周波数データ
CFDの上位4ビツト(ビツト位置7〜10)をア
ドレスデータとするEXP・ROMと、ビツト位置
0〜10の11ビツトをアドレスデータとする△
EXP・ROMとを用意している。 そして、演算部1406で加算処理されたセン
ト尺度上の周波数データCFDを信号WREXPに
よつて格納するレジスタと、そのレジスタに格納
されているデータをアドレスデータとする上述し
たEXP・ROM、△EXP・ROMと、信号
RDEXP、RD△EXPによつてEXP・ROM、△
EXP・ROMに格納しているデータをそれぞれ
FAバス、FBバスに供給するゲートから構成され
ている。 EXP・ROMは100セント間隔の周波数データ
16語を記憶しており、△EXP・ROMは100セン
ト内を27すなわち128分割して0.78セント間隔に
対応する15×128=1920点の差分周波数データを
記憶している。 第15図はEDP806のデータ処理手順を示
す処理流れ図であり、下記に示す演算処理を行な
つて旧周波数データOFDから新周波数データ
NFDを算出し、比較レジスタ部805に供給し
ている。 CPD=CPD+CVD CPD=CPD+CGD CPD=CPD+CBD PD=EXP(CPD)+△EXP(CPD) NED=OFD+PD 次に第14図の動作について説明を行なう。
FDP806はシーケンサ802から送られてく
る処理命令信号によつて演算処理を行なつてい
る。 演算処理シーケンスの流れを第9表に示す。第
9表に示す命令ステツプを順次実行することによ
り、第15図で説明した説明が実現され新周波数
データNFDを算出することになる。 第9表に記載している記号の説明は次の通りで
ある。 ALは、FAバスに供給されたデータを信号φ2
の立下りエツヂでラツチするもの。 BLは、FBバスに供給されたデータを信号φ2
の立下りエツヂでラツチするもの。 CRALは、ラツチALを信号φ2の“1”でク
リヤする命令 ADD1は、FA1409のキヤリー入力に“1”
を加える命令 TCAは、FA1409で演算処理した結果を
FAバスに供給する命令。 RDCPDは、CPD発生部1401で発生するセ
ントピツチデータCPDをFAバスに供給する命
令。 RDCBDは、ビートデータゲート1402のゲ
ートを開いてFBバスにビートデータCBDを供給
する命令。 RDCVDは、ビブラート信号発生部1403で
発生するビブラートデータCVDをFBバスに供給
する命令。 RDCGDは、グライド信号発生部1404で発
生するグライドデータCGDをFBバスに供給する
命令。 FDEXPは、指数変換器1405内で変換した
EXP(CPD)をFAバスに供給する命令。 RD△EXPは、指数変換器1405内で変換し
た△EXP(CPD)をFBバスに供給する命令。 RDFDは、比較レジスタ部805から旧周波数
データOFDを読み出してFBバスに供給する命
令。 RDVADは、ビブラート信号発生部1403内
にあるビブラートカウンタの内容をFBバスに供
給する命令。 RDGADは、グライド信号発生部1404内に
あるグライドカウンタの内容をFBバスに供給す
る命令。 WRVADは、FA1409で演算した結果をビ
ブラート信号発生部1403内のビブラートカウ
ンタに信号φ2の立上りエツヂで書き込む命令。 WRGADは、FA1409で演算した結果をグ
ライド信号発生部1404内のグライドカウンタ
に信号φ2の立上りエツヂで書き込む命令。 WREXPは、FA1409で演算した結果を指
数変換部1405に信号φ2の立上りエツヂで書
き込む命令。 WRFDは、FA1409で演算した結果を比較
レジスタ部805に信号φ2の立上りエツヂで書
き込む命令。 なお、第9図に示したシーケンサ802内の11
進カウンタ902で発生している11の状態は、第
9表に示した命令ステツプ1〜11に対応してい
る。 信号GAM(ジエネレータアサイナ動作モード信
号)による動作内容の説明 信号GAM=“0”の場合、1鍵1チヤネル動
作となる。この場合、ビートデータCBDは強制
的(00)16の状態となる。すなわち、ビート効果
を付加しない。 信号GAM=“1”の場合、1鍵2チヤネルア
サイン動作となる。この場合、1チヤネルと5チ
ヤネル、2チヤネルと6チヤネル、3チヤネルと
7チヤネル、4チヤネルと8チヤネルを同一楽音
データとする。そして、1チヤネル〜4チヤネル
[Table] In, 1412 is FA bus, 1413 is FB bus, 1
414 is the FC bus. In addition, beat data CBD, vibrato data
CVD and Glide Data CGD are also expressed in cents. Structure of various data Cent pitch data (CPD) Consisting of 11 bits, the upper 4 bits represent 12-tone equal temperament, and the lower 7 bits represent each point of the chromatic scale divided into 128 equal parts. Beat data (CBD), vibrato data (CVD), glide data (CGD) Each bit consists of 8 bits, uses two's complement representation, and has a resolution that divides the chromatic scale into 128 equal parts. It also represents positive and negative beat components, vibrato components, and glide components. Description of Vibrato Signal Generating Unit 1403 FIG. 22 shows a configuration diagram of a specific example of the vibrato signal generating unit 1403. In the figure, 2201 is a vibrato that stores vibrato data CVD.
ROM, 2202 is a vibrato address register that stores address data for reading vibrato data stored from the vibrato ROM 2201, 2203 is a shifter used for the delay vibrato effect, and 2204 is an output signal of the shifter 2203 (vibrato data
CVD) to the FB bus, 2205 is the signal supplied from the input register section 803
KD, signal VIB, signal DVIB and sequencer 802
2206 is a gate, 2207 is a gate, and 2208 is an AND gate. The address data stored in register 2202 is
It has a 14-bit configuration, with the lower 11 bits serving as address data for the vibrato ROM 2201 and the higher 3 bits serving as shift data for the shifter 2203. The shifter 2203 controls the amplitude of the vibrato CVD supplied from the vibrato ROM 2201 based on shift data.
The relationship between shift data VSFD and output data OSFD of shifter 2203 is as follows. VSFD=(000) 2 ...OSFD=(00) 16 , VSFD=
(001) 2 ...OSFD=(CVD/64), VSFD=(010) 2
...OSFD = (CVD/32), ..., VSFD = (110) 2
...OSFD=(CVD/2), VSFD=(111) 2 ...
OSFD=(CVD) The condition setting unit 2205 sets the following operating conditions. Vibrato off This is a case where the vibrato on/off signal VIB is "0", and the output of the gate 2206 is forced to always be (00) 16 . Then, the shift data of the shifter 2203 will always be (000) 2 . As a result, the output data of shifter 2203 becomes (00) 16 . That is, the vibrato data CVD is always (00) 16 . Vibrato on Vibrato on/off signal VIB is “1”
When DVIB is "0", the vibrato is on. Address data stored in register 2202 is supplied to gate 2207 and shifter 2203 via gate 2206. Note that the upper three bits of the address data, that is, the shift data, are forcibly set to (111) 2 . Then, gate 220
The output of the vibrato ROM 2201 (vibrato data CVD) is supplied as is to the input No. 4. Delay vibrato When the vibrato on/off signal VIB and the delay vibrato on/off signal DVIB are "1", a delay vibrato state is entered. When all of the eight channel key-on/off signals KD go from off to one of the key-on/off signals KD turns on, the gate 2206 is controlled to set the address data to (000) 16 . Then, in the shifter 2203, the amplitude control (0,
CVD/64, CVD/32, CVD/16, CVD/8,
CVD/4, CVD/2, CVD) are performed. Then, when the shift data becomes (111) 2 , the shift data is forcibly set to (111) 2 , similar to the vibrato on state. The address data stored in the register 2202 is based on the signal supplied from the sequencer 802.
RDVAD via gate 2207 to the FB bus. The address data added by the arithmetic unit 1406 is stored in the register 2202 from the FC bus at the rising edge of the signal φ2 by the signal WRVAD. In addition, the vibrato is controlled by the signal RDCVD.
Vibrato data stored in ROM2201
CVD is supplied to the FB bus via shifter 2203 and gate 2204. Description of glide signal generation section 1404 Similar to the vibrato signal generation section 1403, the glide signal generation section 1404 also includes a glide ROM for storing glide data, and a glide ROM for storing glide data.
It consists of a glide address register for reading out predetermined glide data from the glide address register, and a controller for controlling generation. There are two operating modes: glide-off and glide-on. Glide-off When the signal GL is “0”, the glide-off state occurs. Glide data CGD is always (00) 16 . Glide-on When the signal GL is “1”, the glide-on state occurs.
This is similar to the well-known glide effect. That is, when the key on/off signals KD of all eight channels are turned off and the key on/off signal KD of any one channel is turned on, glide data CGD is read from the glide ROM. Then, after a predetermined period of time has elapsed, the glide data CGD becomes (00) 16 again. Description of Exponent Converter 1405 The exponent converter 1405 has a built-in conversion ROM that stores conversion data for converting cent scale data into frequency data ED that is directly proportional to frequency. In this example, frequency data on the cent scale
EXP/ROM uses the upper 4 bits of CFD (bit positions 7 to 10) as address data, and △ uses the 11 bits from bit positions 0 to 10 as address data.
EXP and ROM are available. Then, there is a register that stores the frequency data CFD on the cent scale that has been added in the arithmetic unit 1406 using the signal WREXP, and the above-mentioned EXP・ROM and ΔEXP・ROM that use the data stored in the register as address data. ROM and signals
EXP・ROM, △ by RDEXP, RD△EXP
Data stored in EXP and ROM respectively
It consists of gates that supply the FA bus and FB bus. EXP/ROM is frequency data in 100 cent intervals
It stores 16 words, and ΔEXP・ROM divides 100 cents into 27 , or 128, and stores differential frequency data of 15×128=1920 points corresponding to 0.78 cent intervals. Figure 15 is a processing flowchart showing the data processing procedure of EDP806, in which the calculation processing shown below is performed to convert old frequency data OFD to new frequency data.
The NFD is calculated and supplied to the comparison register section 805. CPD=CPD+CVD CPD=CPD+CGD CPD=CPD+CBD PD=EXP(CPD)+ΔEXP(CPD) NED=OFD+PD Next, the operation shown in FIG. 14 will be explained.
The FDP 806 performs arithmetic processing based on processing command signals sent from the sequencer 802. Table 9 shows the flow of the arithmetic processing sequence. By sequentially executing the instruction steps shown in Table 9, the explanation explained in FIG. 15 is realized and the new frequency data NFD is calculated. The explanations of the symbols listed in Table 9 are as follows. AL sends the data supplied to the FA bus to signal φ2.
Something that latches at the falling edge of . BL sends the data supplied to the FB bus to signal φ2.
Something that latches at the falling edge of . CRAL is an instruction to clear the latch AL with signal φ2 being “1” ADD1 is “1” at the carry input of FA1409.
The instruction to add
Instructions to feed the FA bus. RDCPD is a command to supply the center pitch data CPD generated by the CPD generation unit 1401 to the FA bus. RDCBD is a command to open the beat data gate 1402 and supply beat data CBD to the FB bus. RDCVD is a command to supply vibrato data CVD generated by the vibrato signal generating section 1403 to the FB bus. RDCGD is a command for supplying glide data CGD generated by the glide signal generator 1404 to the FB bus. FDEXP was converted in the index converter 1405
Instruction to supply EXP (CPD) to the FA bus. RD△EXP is a command to supply △EXP (CPD) converted in the index converter 1405 to the FB bus. RDFD is a command to read the old frequency data OFD from the comparison register section 805 and supply it to the FB bus. RDVAD is a command to supply the contents of the vibrato counter in the vibrato signal generating section 1403 to the FB bus. RDGAD is a command for supplying the contents of the glide counter in the glide signal generator 1404 to the FB bus. WRVAD is an instruction to write the result calculated by the FA 1409 to the vibrato counter in the vibrato signal generating section 1403 at the rising edge of the signal φ2. WRGAD is an instruction to write the result calculated by the FA 1409 to the glide counter in the glide signal generating section 1404 at the rising edge of the signal φ2. WREXP is an instruction to write the result calculated by the FA 1409 to the exponent converter 1405 at the rising edge of the signal φ2. WRFD is an instruction to write the result calculated by the FA1409 into the comparison register section 805 at the rising edge of the signal φ2. Note that 11 in the sequencer 802 shown in FIG.
The state 11 occurring in advance counter 902 corresponds to instruction steps 1-11 shown in Table 9. Explanation of operation contents using signal GAM (generator assigner operation mode signal) When signal GAM="0", one key, one channel operation is performed. In this case, the beat data CBD is forced to be in the (00) 16 state. In other words, no beat effect is added. When signal GAM="1", 1 key 2 channel assignment operation is performed. In this case, the 1st channel and the 5th channel, the 2nd channel and the 6th channel, the 3rd channel and the 7th channel, and the 4th channel and the 8th channel are assumed to be the same tone data. And from 1 channel to 4 channels

【表】 使用するビートデータCBDを強制的に(00)16
し、5チヤネル〜8チヤネルに使用するビートデ
ータCBDをCPU603から供給されたビートデ
ータを用いることにより、ビート効果を発生する
ことができる。 以上のように、複数の比較器を用い、比較デー
タを演算処理して求めるようにしているので、高
速動作の分周器を複数個(チヤネル数分)並列に
設け必要がなく、回路規模が小さくできる。 さらに、信号GAMを用いて、チヤネル1〜4
はビートデータCBD=(00)16とし、チヤネル5〜
8のビートデータCBDをCPU603から供給さ
れたビートデータを用い、チヤネル1とチヤネル
5、チヤネル2とチヤネル6、チヤネル3とチヤ
ネル7、チヤネル4とチヤネル8を同一楽音発生
データとすることにより複雑な周辺回路を付加す
ることなく、ビート効果を容易に実現できる。 さらに、グライド信号発生部1404内のグラ
イドアドレスカウンタをチヤネル分用意するだけ
でチヤネル独立のグライド効果を付加することが
できる。 第16図は比較レジスタ部805の一具体例を
示す構成図である。図中、1601,1602,
1603は周波数データレジスタFDR1〜FDR
8で、8チヤネル分用意している。1604,1
605,1606はゲートGT1〜GT8で、8
チヤネル分用意している。1607,1608,
1609は比較器、1610,1611はデコー
ダ、1612はアンドゲートである。 タイマー804の出力信号TM0〜TM9は比
較器1607〜1609に共通に供給されてい
る。そして、FDP806で算出された新周波数
データNEDはレジスタFDR1〜FDR8の入力に
FCバスからそれぞれ供給され、信号WRFDと信
号CLRF(計算要求フラグ信号)がともに“1”
の場合、所定のレジスタFDRに新周波数データ
NFDが書き込まれる。すなわち、計算要求が発
生している時だけデータを書き込むこととなる。 また、FDP806で旧周波数データOFDが必
要になると、信号RDFDがデコーダ1610に供
給され、GT1〜GT8の所定のゲートを開き、
旧周波数データOFDをFBバスに供給する。 第15図で説明した、データ処理手段における
新しい周波数データNFDがWR1〜WR8に従つ
てレジスタFDR1〜FDR8のいずれかに書き込
まれ、その後、RD1〜RD8に従つてゲートGT
1〜GT8を経て読み出されるときは、新周波数
データNFDが旧周波数データOFDとして、FBバ
スに供給されることになる。 一方、比較器1607〜1609では、タイマ
ー804かの信号TM0〜TM9とレジスタFDR
1〜FDR8に記憶されている周波数データFDと
の比較を行ない、一致が検出できたら、一致信号
NC1〜NC8として出力する。 第17図は計算要求フラグ発生部810の一具
体例を示す構成図である。図中、1701〜17
10はNANDゲート、1711はデコーダ、1
712〜1719はRSフリツプフロツプ
(RSFF)、1720はセレクタ、1721はD型
フリツプフロツプ(DFF)である。 比較レジスタ部805から供給される一致信号
NC1〜NC8をNANDゲート1701〜170
8でそれぞれ主発振器801から供給されている
信号MCKとの論理演算を行ない、その結果を
RSFF1712〜1719の各入力に供給す
る。一致信号が“1”(比較器で一致を検出)と
なると、RSFFの入力に“0”が供給されて出
力Qは“1”となり、第12図で説明した計算要
求信号CRFが“1”となる。 セレクタ1720で演算タイミングに対応する
信号CRFを選択し、DFF1721の入力Dに供
給する。そして、シーケンサ802から供給され
ている制御データの中の信号WRCLF“1”とな
ると、信号φ2の立下りエツヂでDFF1721
にセレクタ1720で選択した計算要求信号
CRFをラツチさせ、計算要求フラグ信号CLRFと
して出力される。計算要求が発生していればフラ
グ信号CLRFは“1”、そうでなければフラグ信
号CLRFは“0”となる。 信号WRCLFの発生するタイミングは、命令ス
テツプ1で発生する。すなわち、演算処理の先頭
で計算要求の有無を判定することになる。 その後、命令ステツプ11のタイミングになる
と、シーケンサ802から供給される制御データ
の中の1つであるリセツト(クリヤ)信号
CRCLFが供給される。そうすると、フラグ信号
CLRFが“1”の場合、NANDゲート1709
の出力信号は“0”となり、チヤネルコード
CHCでデコーダ1711によつて選択された
RSFF1712〜1713の所定の入力に
“0”を供給し、RSFFをリセツト(出力Q=
“0”)する。この動作は、第12図で説明した計
算要求信号CRFをリセツトするタイミングに
対応している。 データ・リード・プロセツサDRP808の詳細
な説明 まず、楽音合成データROM606(以後デー
タ・バンク(DBK)と称する)のデータフオー
マツトについて説明する。 第18図はDBK606のデータ構成図である。
アドレス(0000)16から128語の領域に、以後に続
く合成データの先頭位置を示す先頭アドレスを格
納している。合成データは制御データと波形デー
タとで構成されている。制御データは波形間のく
り返し回数指定データと最終波形フラグデータと
で構成されている。 くり返し数回数指定データについて説明する。
本実施例では、(2)式に示した内挿係数Nm+n/MN の算出を簡略化する方法として以下のようにして
いる。 (1) (2)式ではNm+n項の増分値が1であつた
が、内挿係数の分子の増分値をαとする。 (2) 内挿係数Nm+n/MNを(Nm+n)α/MNαと置き 換える。 (3) MNα項を216と固定化する。 この結果、内挿係数は、(Nm+n)α/216
なり、1/216項は右シフト操作を行なうだけで
よく、MN項を求める必要がなくなり、内挿係数
の算出が容易になる。第10表にくり返し指定デー
タ、増分値α、波形1周期のサンプル数と、くり
返し回数の関係を示す。 なお、くり返し数指定データが(F)16であれば、
最終波形を示す最終波形フラグ(信号WEF)と
して用いている。 DBK606の制御データ領域は波形枚数に関
係なく128語として固定化している。また、制御
データ1語は16ビツト構成であり、次のように、
4ビツトづつの4グループにくり返し指定データ
を分けている。 ビツト位置0〜3……C、C#、D音 ビツト位置4〜7……D#、E、F音 ビツト位置8〜11……F#、G、G#音 ビツト位置12〜15……A、A#、B音 このようにすることにより、音階によつて制御
データを異なるように設定でき、1オクターブ内
同一波形データを使用しても、楽音の立上り時間
や、波形状態の変化時間を一定にすることが可能
となる。波形データは1語16ビツト構成のPCM
データである。 第19図はDRP808の一具体例を示す構成
図で
[Table] A beat effect can be generated by forcibly setting the beat data CBD to be used as (00) 16 and using the beat data supplied from the CPU 603 as the beat data CBD used for channels 5 to 8. . As described above, since multiple comparators are used and the comparison data is calculated and determined, there is no need to install multiple high-speed frequency dividers (as many as the number of channels) in parallel, and the circuit scale is reduced. Can be made smaller. Furthermore, using signal GAM, channels 1 to 4
is beat data CBD = (00) 16 , and channel 5~
By using the beat data CBD of 8 supplied from the CPU 603 and making channel 1 and channel 5, channel 2 and channel 6, channel 3 and channel 7, and channel 4 and channel 8 the same musical tone generation data, complex tones can be generated. Beat effects can be easily achieved without adding any peripheral circuitry. Furthermore, channel-independent glide effects can be added by simply preparing glide address counters for each channel in the glide signal generating section 1404. FIG. 16 is a block diagram showing a specific example of the comparison register section 805. In the figure, 1601, 1602,
1603 is frequency data register FDR1~FDR
8, 8 channels are available. 1604,1
605 and 1606 are gates GT1 to GT8, and 8
We have prepared channels for you. 1607, 1608,
1609 is a comparator, 1610 and 1611 are decoders, and 1612 is an AND gate. Output signals TM0-TM9 of timer 804 are commonly supplied to comparators 1607-1609. Then, the new frequency data NED calculated by FDP806 is input to registers FDR1 to FDR8.
Each is supplied from the FC bus, and the signal WRFD and signal CLRF (calculation request flag signal) are both “1”
, the new frequency data is stored in the predetermined register FDR.
NFD is written. In other words, data is written only when a calculation request is occurring. Furthermore, when the FDP 806 requires the old frequency data OFD, the signal RDFD is supplied to the decoder 1610, which opens predetermined gates of GT1 to GT8.
Supply the old frequency data OFD to the FB bus. The new frequency data NFD in the data processing means explained in FIG.
When read out through GT1 to GT8, the new frequency data NFD is supplied to the FB bus as the old frequency data OFD. On the other hand, comparators 1607 to 1609 use signals TM0 to TM9 of timer 804 and register FDR.
Comparison is made with the frequency data FD stored in FDR1 to FDR8, and if a match is detected, a match signal is sent.
Output as NC1 to NC8. FIG. 17 is a configuration diagram showing a specific example of the calculation request flag generating section 810. In the figure, 1701-17
10 is a NAND gate, 1711 is a decoder, 1
712-1719 are RS flip-flops (RSFF), 1720 is a selector, and 1721 is a D-type flip-flop (DFF). Match signal supplied from comparison register section 805
NC1 to NC8 are NAND gates 1701 to 170
8 performs a logical operation with the signal MCK supplied from the main oscillator 801, and the result is
It is supplied to each input of RSFF1712 to 1719. When the match signal becomes "1" (match detected by the comparator), "0" is supplied to the input of RSFF, the output Q becomes "1", and the calculation request signal CRF explained in Fig. 12 becomes "1". becomes. The selector 1720 selects the signal CRF corresponding to the calculation timing and supplies it to the input D of the DFF 1721. Then, when the signal WRCLF in the control data supplied from the sequencer 802 becomes “1”, the DFF 1721 is activated at the falling edge of the signal φ2.
The calculation request signal selected by selector 1720
CRF is latched and output as calculation request flag signal CLRF. If a calculation request has occurred, the flag signal CLRF is "1"; otherwise, the flag signal CLRF is "0". The signal WRCLF is generated at instruction step 1. That is, the presence or absence of a calculation request is determined at the beginning of the calculation process. Thereafter, at the timing of instruction step 11, a reset (clear) signal, which is one of the control data supplied from the sequencer 802, is activated.
CRCLF is supplied. Then the flag signal
If CLRF is “1”, NAND gate 1709
The output signal becomes “0” and the channel code
selected by decoder 1711 in CHC
Supply “0” to specified inputs of RSFF1712-1713 to reset RSFF (output Q=
“0”). This operation corresponds to the timing of resetting the calculation request signal CRF explained in FIG. Detailed Description of Data Read Processor DRP 808 First, the data format of the musical tone synthesis data ROM 606 (hereinafter referred to as data bank (DBK)) will be described. FIG. 18 is a data configuration diagram of the DBK 606.
Address (0000) The start address indicating the start position of the subsequent composite data is stored in the area from 16 to 128 words. The composite data is composed of control data and waveform data. The control data consists of data specifying the number of repetitions between waveforms and final waveform flag data. The repetition number designation data will be explained.
In this embodiment, the following method is used to simplify the calculation of the interpolation coefficient Nm+n/MN shown in equation (2). (1) In equation (2), the increment value of the Nm+n term was 1, but the increment value of the numerator of the interpolation coefficient is set to α. (2) Replace interpolation coefficient Nm+n/MN with (Nm+n)α/MNα. (3) Fix the MNα term as 2 16 . As a result, the interpolation coefficient becomes (Nm+n)α/2 16 , and the 1/2 16 term only needs to be shifted to the right, and there is no need to find the MN term, making it easier to calculate the interpolation coefficient. Table 10 shows the relationship between the repetition designation data, the increment value α, the number of samples in one cycle of the waveform, and the number of repetitions. Furthermore, if the repetition number specification data is (F) 16 ,
It is used as a final waveform flag (signal WEF) indicating the final waveform. The control data area of DBK606 is fixed at 128 words regardless of the number of waveforms. Also, one word of control data has a 16-bit structure, as shown below.
The repeat specification data is divided into four groups of 4 bits each. Bit positions 0-3...C, C#, D sound Bit positions 4-7...D#, E, F sound Bit positions 8-11...F#, G, G# sound Bit positions 12-15...A, A#, Note B By doing this, the control data can be set differently depending on the scale, and even if the same waveform data within one octave is used, the rise time of the musical tone and the change time of the waveform state can be kept constant. becomes possible. Waveform data is PCM with 16 bits per word.
It is data. Figure 19 is a configuration diagram showing a specific example of DRP808.

【表】 ある。図中、1901は楽音合成データROM
(DBK)、606から所定の合成データを読み出
すアドレスデータを格納するDBKアドレスレジ
スタ、1902は楽音合成データROM(DBK)
606から合成データをDRP808の内部に取
り込むDBK入力バツフア、1903はDBK60
6に格納している先頭アドレスを読み取るための
アドレスデータを出力する参照先頭アドレスゲー
ト、1904はf(Xi,o)に相当する波形サンプ
ルに値を格納する波形データメモリ、1905
はf(Xi+1,o)に相当する波形サンプル値を格納す
る波形データメモリ、1906は内挿係数の分
子に相当する(Nm+n)αを格納する係数デー
タメモリ、1907は先頭アドレスレジスタ、1
908は内挿係数の(Nm+n)α項の増分値α
を生成する増分生成部、1909は波形1周期内
のサンプルナンバnを格納する波形サンプルメン
バメモリ、1910は波形ナンバiを格納する波
形ナンバメモリ、1911はオフセツトデータゲ
ート、1912は累積レジスタ(ACC)、191
3はフルアダー、ラツチ、キヤリフラグレジスタ
などで構成している演算部、1914は演算部1
913内のラツチALにデータを供給するDAバ
ス、1915は演算部1913内のラツチBLに
データを供給するDBバス、1916は演算部1
913で行なう演算結果を各レジスタに供給する
DCバス、1917はDBK入力バツフア1902
の出力を波形データメモリ1904などに供給
するDBKバスである。 次に各部の構成について説明する。波形データ
メモリ1904、波形データメモリ1905
は、それぞれDBK606から読み取つた波形デ
ータをシーケンサ802から供給されている制御
データの中の信号WRWD、WRWDによつ
て一時格納しておくレジスタR(WD)、R
(WD)と、8チヤネル分の波形データを記憶
する16ビツト×8語のメモリM(WD)、M
(WD)で構成されている。通常、メモリは読
み出し状態となつており、シーケンサ802から
供給されているチヤネルコードCHCに基づいた
チヤネルの波形データ、をWDP80
7に供給している。 そして、シーケンス802からの制御データの
中の信号WRRAMによつて、メモリは書き込み
状態となり、レジスタR(WD)、R(WD)
に格納している波形データはチヤネルコード
CHCに基づいたメモリの所定のアドレスに書き
込む。 係数データメモリ1906は、演算部1913
の演算結果をシーケンサ802から供給されてい
る制御データの中の信号WRMDによつて一時格
納しておくレジスタR(MD)と、8チヤネル分
の係数データを記憶する16ビツト×8語のメモリ
M(MD)と、メモリM(MD)の出力データを信
号RDMDによつてDBバスに供給するゲートで構
成している。通常、メモリは読み出し状態となつ
ており、シーケンサ802から供給されているチ
ヤネルコードCHCに基づいたアドレスの係数デ
ータ(M(MD))を、上述のゲートとWDP80
7に供給している。 そして、信号WRRAMによつて、メモリは書
き込み状態となり、レジスタR(MD)に格納し
ている新係数データをチヤネルコードCHCに基
づいたメモリの所定のアドレスに書き込む。 先頭アドレスレジスタ1907は、DBK60
6から読取つた先頭番地をシーケンサ802から
の制御データの中(以下同じ)の信号TDAによ
つてDAバスに供給するゲート1と、信号
WRTADによつて読み取つた先頭番地を一時格
納するレジスタR(TAD)と、信号RDTADによ
つてレジスタR(TAD)に格納している先頭番地
をDBバスに供給するゲート2から構成してい
る。 増分生成部1908は、DBK606から読み
取つた制御データを信号WRREPによつて一時格
納するレジスタR(REP)と、入力レジスタ部8
03から供給されているノートクロツク指定デー
タNDに基づいてレジスタR(REP)に格納して
いる制御データから所定のくり返し指定データを
選択する選択器と、選択器で選択したくり返し数
指定データを第10表に示した増分値αに変換す
る変換器と、最終波形フラグを検出して最終波形
フラグWEF〔“1”〕を出力する検出器と、信号
RDREPによつて変換器の出力データ(増分値
α)をDAバスに供給するゲートとで構成してい
る。 波形サンプルナンバメモリ1909は、演算部
1913の演算結果(新波形サンプルナンバn)
を信号WRWSNによつて一時格納しておくレジ
スタR(WSN)と、8チヤネル分の波形サンプル
ナンバnを記憶する16ビツト×8語のメモリM
(WSN)と、メモリM(WSN)の出力データを信
号RDWSNによつてDBバスに供給するゲートと
で構成している。通常、メモリM(WSN)は読み
出し状態となつており、シーケンサ802から供
給されているチヤネルコードCHCに基づいたチ
ヤネルの波形サンプルナンバnを上述のゲートに
供給している。 そして、信号WRRAMによつてメモリM
(WSN)は書き込み状態となり、レジスタR
(WSN)に格納している新波形サンプルナンバn
をチヤネルコードに基づいたメモリの所定のアド
レスに書き込む。 波形ナンバメモリ1910は、演算部1913
の演算結果(新波形ナンバi)を信号WRWND
によつて一時格納しておくレジスタR(WND)
と、8チヤネル分の波形ナンバiを記憶する16ビ
ツト×8語のメモリM(WND)と、メモリM
(WND)の出力データ(波形ナンバ)を入力レ
ジスタ803から供給されている波形サンプル数
指定データSDに基づいてシフト処理(i×サン
プル数)を行ない、波形ナンバアドレスWNAを
出力するシフタ部と、信号RDWNDによつてメ
モリの出力データをDBバスに供給するゲート1
と、信号RDWNAによつてシフタ部の出力デー
タをDBバスに供給するゲート2と、波形サンプ
ル数指定データSDに対応するサンプル数データ
を発生するサンプル数発生器と、信号RDNWS
によつてサンプル数発生器の出力データをDBバ
スに供給するゲート3とで構成している。 通常メモリM(WND)は読み出し状態になつ
ており、シーケンサ802から供給されているチ
ヤネルコードCHCに基づいたチヤネルの波形ナ
ンバiを上述のゲート1とシフタ部に供給してい
る。 そして、信号WRRAMによつて、メモリM
(WND)は書き込み状態となり、レジスタR
(WND)に格納している新波形ナンバiをチヤ
ネルコードに基づいたメモリの所定のアドレスに
書き込む。 累積レジスタ(ACC)1912は、演算部1
913の演算結果を信号WRACCによつて一時格
納しておくレジスタR(ACC)と、信号RDACC
によつてレジスタR(ACC)に格納しているデー
タをDAバスに供給するゲートとで構成してい
る。 第23図は演算部1913の一具体例を示す構
成図である。2301は信号φ2の立上りエツヂ
でDAバスの内容を記憶するラツチALであり、
信号DCRALでクリヤされる。2302は信号φ
(2)の立上りエツヂでDBバスの内容を記憶するラ
ツチBL、2303はキヤリ入力(CI)とキヤリ
出力(CO)とを有する16ビツト加算器(FA)、
3204はFA2303のキヤリ出力信号を信号
WRMDによつて格納するキヤリフラグレジス
タ、2305は信号TCAによつてFA2303の
出力データをDAバスに供給するゲート、230
6はFA2303の出力データをDCバスに供給す
るゲート、2307はDCバスにデータ(0000)16
を供給するゲート、2308は入力レジスタ部8
03から供給されているキーオン/オフ信号KD
と信号RDFLGとチヤネルコードCHCとを入力と
し、チヤネルごとに独立にキー信号がオフ状態か
らオン状態に変化するタイミングを検出して検出
信号を出力するオン/オフ検出部、2309〜2
313はANDゲート、2314,2315,2
316はORゲートである。 増分生成部1908から供給されている最終波
形フラグ信号とWEFと信号RDNWSとがともに
“1”の場合、ANDゲート2309の出力信号は
“1”となり、ラツチBL2302をリセツトす
る。信号WEFと信号WRMDがともに“1”の場
合、ANDゲート2312の出力信号は“1”と
なり、DCバスにはゲート2307からのデータ
(0000)16が供給される。 オフセツトデータゲート1911で発生するオ
フセツトデータは10進数で256であり、制御デー
タの格納領域に相当する。 DRP808もFDP806と同様に、シーケン
サ802から供給される制御信号に基づいて下述
する演算処理を行なう。 DBKに格納してある先頭アドレスTADを読
み取る。 入力レジスタ部803から供給されている楽
音発生データ(ND、SD)をシーケンサ80
2から供給されている信号RDRTAによつて
DCバスに供給する。そして、DCバス上の信号
ND、SDを信号WRDBKによつてDBKアドレ
スレジスタ1901に格納し、DBK606に
供給する。DBK606から読み出した先頭ア
ドレスデータTADを信号WRTADによつて先
頭アドレスレジスタ1907のレジスタR
(TAD)に格納する。 くり返し数指定データの読み込み処理。 読み込んだ先頭アドレスデータTADと波形
ナンバメモリ1910に格納している波形ナン
バiとの加算処理(TAD+i)を演算部19
13で行ない、加算結果をDBKアドレスレジ
スタ1901に格納し、DBK606からくり
返し数指定データを読み取り、増分生成部19
08のレジスタR(REP)に格納する。 波形サンプルf(Xi,o)の読み取り処理。 先頭アドレスレジスタ1907に格納した先
頭アドレスデータTADとオフセツトデータ
(256)10との加算処理(WAD1=TAD+256)
を演算部1913で行ない、加算結果をACC
1912のR(ACC)に格納する。ACC191
2に格納したアドレスデータWAD1と波形サ
ンプルナンバメモリ1910に格納している波
形サンプルナンバnとの加算処理(WAD1=
WAD1+n)を演算部1913で行ない加算
結果をACC1912に格納する。そして、
ACC1912に格納してあるアドレスデータ
WAD1′と波形ナンバiを波形サンプル数指定
データSDに基づいてシフト処理したデータ
(i×サンプル数;i=0、1、2、……、I
−1)との加算処理(WAD1″=WAD1′+i×
サンプル数)を演算部1913で行ない、加算
結果をACC1912とDBKアドレスレジスタ
1901に格納し、DBK606からf(Xi,o
に相当する波形サンプルデータを読み取り波形
メモリ1904内のレジスタR(WD)に
格納する。 波形サンプルf(Xi+1,o)の読み取り処理。
ACC1912に格納したアドレスデータ
WAD1″と波形サンプル数指定データSDで指定
している波形サンプル数NWS(波形ナンバメモ
リ1910内で発生)との加算処理(WAD2
=WAD1″+NWS)を演算部1913で行ない
加算結果をDBKアドレスレジスタ1901に
格納し、DBK606からf(Xi+1,o)に相当す
る波形サンプルデータを読み取り波形メモリ
1905内のレジスタR(WD)に格納する。 波形サンプルナンバnの更新処理。 波形サンプルナンバnとシーケンサ802か
ら供給される信号DADD1との加算処理(n=
n+1)を演算部1913で行ない、波形サン
プルナンバメモリ1909内の波形ナンバレジ
スタR(WSN)に格納する。 内挿係数(Nm+n)αの更新処理。 係数データメモリ1906に格納している内
挿係数〔(Nm+n)α〕と増分生成部190
8で発生している増分値αとの加算処理を演算
部1913で行ない、加算結果を係数データメ
モリ1906内にある係数データレジスタR
(MD)に格納すると共に、加算結果がオーバ
フオローした場合演算部1913内にあるキヤ
リーフラグレジスタCFを“1”にセツトする。 波形ナンバiの更新処理。 波形ナンバメモリ1910に格納している波
形ナンバiと上述で説明したキヤリーフラグ
レジスタCFの内容との加算処理(i=i+
CF)を演算部1913で行ない、波形ナンバ
メモリ1910内にある波形ナンバレジスタR
(WND)に格納する。 レジスタR(WND)、R(WSD)、R(MD)、
R(WD)、R(WD)に格納した各種デー
タをチヤネルコードCHCで指定されたそれぞ
れのメモリ領域へのデータ転送処理。 命令ステツプ11のタイミングで、シーケンサ
802から供給される信号WRRAMに基づい
てデータ転送処理が行なわれる。なお、計算要
求フラグ信号CLRFが“0”の場合には転送処
理を行なわないようにしている。なぜならば、
新しい波形サンプルの算出を行なわないためで
ある。 第11表にDRP808の演算シーケンスを示す。
第11表に示す命令ステツプを順次実行することに
より、上述〜で説明した処理が実現される。 なお、第4表で説明したキーオン/オフ信号
KDが“0”から“1”に変化した最初の処理は
イニシヤル処理として下述のような条件設定を行
なう。 イニシヤル処理を指示する信号〔“1”〕は、第
23図に示した演算部1913内のオン/オフ検
出部2308で発生する。 波形サンプルナンバn=(0)10設定。 第11表に示した命令ステツプ7のタイミング
で信号WRWSNが演算部1913に供給され
る。そうすると、ANDゲート2310の出力
信号は“1”となり、ゲート2306,230
7の制御入力に“1”が供給される。この結
果、DCバスには(0000)16が供給され、波形サ
ンプルナンバメモリ1909内のレジスタR
(WSN)に(0000)16を格納する。 波形ナンバi=(0)10設定。 第11表に示した命令ステツプ10のタイミング
で、信号WRWNDが演算部1913に供給さ
れる。そうすると、ANDゲート2311の出
力信号は“1”となり、ゲート2306,23
07の制御入力に“1”が供給される。この結
果、DCバスには(0000)16が供給され、波形ナ
ンバメモリ1910内のレジスタR(WND)
に(0000)16を格納する。 上述の、の処理によつて、キーオン/オフ
信号KDがオフからオンに変化するたびに、波形
ナンバiと波形サンプルナンバnとが初期設定さ
れる。 また、DBK606から読み込んだくり返し指
定データが(F)16、すなわち、最終波形フラグ
WEFならば、下述のような条件設定を行なう。 内挿係数の分子項(Nm+n)α=(0)10
定。 第11表に示した命令ステツプ9のタイミング
で信号WRMDが演算部1913内のANDゲー
ト2312に供給される。そうすると、AND
ゲート2312の出力信号は“1”となり、ゲ
ート2306,2307の制御入力に“1”供
給される。この結果DCバスには(0000)16が供
給され、係数レジスタメモリ1906内のレジ
スタR(MD)に(0000)16を格納する。 波形サンプル数NWS=(0)10設定。 第11表に示した命令ステツプ7のタイミング
で信号RDNWSが演算部1913内のANDゲ
ート2309に供給される。そうすると、
ANDゲート2309の出力信号は“1”とな
り、ラツチBL2302の格納状態をクリヤ
(0000)16する。この結果、波形サンプルf
(Xi+1,o)を読み込むためのDBK606のアド
レスデータは波形サンプルf(Xi,o)を読み込
んだアドレスデータと等しくなる。 上述、の設定によつて、最終波形データと
なると、実質的に波形内挿処理を行なわず、最終
波形データをくり返し使用することになる。 第11表に示した信号についての説明 下述する信号はシーケンサ802から供給され
[Table] Yes. In the figure, 1901 is musical tone synthesis data ROM
(DBK), DBK address register that stores address data for reading predetermined synthesis data from 606, 1902 is musical tone synthesis data ROM (DBK)
DBK input buffer that imports synthetic data from 606 into DRP808, 1903 is DBK60
Reference start address gate 1904 outputs address data for reading the start address stored in 6; waveform data memory 1905 stores a value in a waveform sample corresponding to f(X i,o );
1906 is a waveform data memory that stores a waveform sample value corresponding to f(X i+1,o ), 1906 is a coefficient data memory that stores (Nm+n)α corresponding to the numerator of the interpolation coefficient, 1907 is a start address register, 1
908 is the increment value α of the (Nm+n) α term of the interpolation coefficient
1909 is a waveform sample member memory that stores sample number n within one waveform period, 1910 is a waveform number memory that stores waveform number i, 1911 is an offset data gate, and 1912 is an accumulation register (ACC). ), 191
3 is an arithmetic unit consisting of a full adder, latch, carry flag register, etc. 1914 is an arithmetic unit 1
DA bus that supplies data to latch AL in 913, DB bus 1915 that supplies data to latch BL in calculation unit 1913, and 1916 to calculation unit 1.
Supplies the calculation results performed in 913 to each register.
DC bus, 1917 is DBK input buffer 1902
This is a DBK bus that supplies the output of the waveform data memory 1904 to the waveform data memory 1904 and the like. Next, the configuration of each part will be explained. Waveform data memory 1904, waveform data memory 1905
are registers R (WD) and R that temporarily store waveform data read from the DBK 606 by signals WRWD and WRWD in the control data supplied from the sequencer 802, respectively.
(WD), 16-bit x 8-word memory that stores waveform data for 8 channels M (WD), M
(WD). Normally, the memory is in a read state, and the channel waveform data based on the channel code CHC supplied from the sequencer 802 is stored in the WDP800.
7. Then, the signal WRRAM in the control data from sequence 802 causes the memory to enter the write state, and the registers R(WD) and R(WD)
The waveform data stored in the channel code
Write to a given address in memory based on CHC. The coefficient data memory 1906 is connected to the calculation unit 1913.
A register R (MD) temporarily stores the result of the calculation using the signal WRMD in the control data supplied from the sequencer 802, and a 16-bit x 8-word memory M that stores coefficient data for 8 channels. (MD) and a gate that supplies the output data of the memory M (MD) to the DB bus by a signal RDMD. Normally, the memory is in a read state, and the coefficient data (M (MD)) of the address based on the channel code CHC supplied from the sequencer 802 is sent to the above-mentioned gate and WDP80.
7. Then, the memory enters a write state in response to the signal WRRAM, and the new coefficient data stored in the register R (MD) is written to a predetermined address in the memory based on the channel code CHC. The start address register 1907 is DBK60
Gate 1 supplies the first address read from Sequencer 802 to the DA bus by signal TDA in the control data from sequencer 802 (the same applies hereinafter);
It consists of a register R (TAD) that temporarily stores the first address read by WRTAD, and a gate 2 that supplies the first address stored in register R (TAD) to the DB bus in response to a signal RDTAD. The increment generation unit 1908 includes a register R (REP) that temporarily stores control data read from the DBK 606 in response to a signal WRREP, and an input register unit 8.
A selector selects a predetermined repetition designation data from the control data stored in the register R (REP) based on the note clock designation data ND supplied from the register R (REP), and a selector selects the repetition number designation data selected by the selector. A converter that converts the increment value α shown in the table, a detector that detects the final waveform flag and outputs the final waveform flag WEF [“1”], and a signal
It consists of a gate that supplies converter output data (increment value α) to the DA bus by RDREP. The waveform sample number memory 1909 stores the calculation result (new waveform sample number n) of the calculation unit 1913.
A register R (WSN) temporarily stores the data by the signal WRWSN, and a 16-bit x 8-word memory M that stores the waveform sample number n for 8 channels.
(WSN) and a gate that supplies the output data of the memory M (WSN) to the DB bus by a signal RDWSN. Normally, the memory M (WSN) is in a read state and supplies the channel waveform sample number n based on the channel code CHC supplied from the sequencer 802 to the above-mentioned gate. and the memory M by the signal WRRAM.
(WSN) is in write state and register R
New waveform sample number n stored in (WSN)
is written to a predetermined address in memory based on the channel code. The waveform number memory 1910 is connected to the calculation section 1913.
The calculation result (new waveform number i) is sent to the signal WRWND.
Register R (WND) temporarily stored by
, a 16-bit x 8-word memory M (WND) that stores waveform numbers i for 8 channels, and a memory M
(WND) output data (waveform number) based on the waveform sample number specification data SD supplied from the input register 803, a shifter section that performs a shift process (i x number of samples) and outputs a waveform number address WNA; Gate 1 that supplies memory output data to the DB bus by signal RDWND
, a gate 2 that supplies the output data of the shifter section to the DB bus by the signal RDWNA, a sample number generator that generates sample number data corresponding to the waveform sample number designation data SD, and a signal RDNWS.
The gate 3 supplies the output data of the sample number generator to the DB bus. Normally, the memory M (WND) is in a read state and supplies the channel waveform number i based on the channel code CHC supplied from the sequencer 802 to the gate 1 and the shifter section described above. Then, by the signal WRRAM, the memory M
(WND) is in write state and register R
The new waveform number i stored in (WND) is written to a predetermined address in the memory based on the channel code. The accumulation register (ACC) 1912 is
A register R (ACC) that temporarily stores the calculation result of 913 using the signal WRACC, and a register R (ACC) that temporarily stores the calculation result of 913 using the signal WRACC.
It consists of a gate that supplies data stored in register R (ACC) to the DA bus. FIG. 23 is a configuration diagram showing a specific example of the calculation section 1913. 2301 is a latch AL that stores the contents of the DA bus at the rising edge of the signal φ2;
Cleared by signal DCRAL. 2302 is the signal φ
A latch BL stores the contents of the DB bus at the rising edge of (2), 2303 is a 16-bit adder (FA) having a carry input (CI) and a carry output (CO);
3204 is the carry output signal of FA2303.
A carry flag register stored by WRMD, 2305 is a gate that supplies the output data of FA2303 to the DA bus by signal TCA, 230
6 is the gate that supplies the output data of FA2303 to the DC bus, 2307 is the data (0000) to the DC bus 16
2308 is the input register section 8
Key on/off signal KD supplied from 03
an on/off detection unit that receives the signal RDFLG and the channel code CHC, detects the timing at which the key signal changes from the off state to the on state independently for each channel, and outputs a detection signal, 2309 to 2;
313 is an AND gate, 2314, 2315, 2
316 is an OR gate. When the final waveform flag signal, WEF, and signal RDNWS supplied from the increment generating section 1908 are both "1", the output signal of the AND gate 2309 becomes "1", and the latch BL 2302 is reset. When both the signal WEF and the signal WRMD are "1", the output signal of the AND gate 2312 becomes "1", and data (0000) 16 from the gate 2307 is supplied to the DC bus. The offset data generated by the offset data gate 1911 is 256 in decimal notation and corresponds to the storage area for control data. Similarly to the FDP 806, the DRP 808 also performs the arithmetic processing described below based on the control signal supplied from the sequencer 802. Read the start address TAD stored in DBK. The musical tone generation data (ND, SD) supplied from the input register section 803 is sent to the sequencer 80.
By the signal RDRTA supplied from 2
Supply to DC bus. And the signal on the DC bus
ND and SD are stored in the DBK address register 1901 by the signal WRDBK and supplied to the DBK 606. The start address data TAD read from the DBK 606 is sent to the register R of the start address register 1907 by the signal WRTAD.
Store in (TAD). Loading process for specifying the number of repetitions. The calculation unit 19 performs an addition process (TAD+i) between the read start address data TAD and the waveform number i stored in the waveform number memory 1910.
13, the addition result is stored in the DBK address register 1901, the repetition number designation data is read from the DBK 606, and the increment generation unit 19
Store in register R (REP) of 08. Reading processing of waveform sample f(X i,o ). Addition process of the start address data TAD stored in the start address register 1907 and offset data (256) 10 (WAD1=TAD+256)
is performed in the arithmetic unit 1913, and the addition result is sent to ACC.
Store in R (ACC) of 1912. ACC191
2 and the waveform sample number n stored in the waveform sample number memory 1910 (WAD1=
WAD1+n) is performed by the calculation unit 1913 and the addition result is stored in the ACC 1912. and,
Address data stored in ACC1912
Data obtained by shifting WAD1' and waveform number i based on waveform sample number specification data SD (i x number of samples; i = 0, 1, 2, ..., I
−1) addition process (WAD1″=WAD1′+i×
The calculation unit 1913 stores the addition result in the ACC 1912 and the DBK address register 1901, and the DBK 606 calculates f(X i,o ).
The waveform sample data corresponding to is read and stored in register R (WD) in waveform memory 1904. Reading process of waveform sample f(X i+1,o ).
Address data stored in ACC1912
WAD1″ and the number of waveform samples NWS (generated in the waveform number memory 1910) specified by the waveform sample number specification data SD
= WAD1″+NWS) in the arithmetic unit 1913, the addition result is stored in the DBK address register 1901, the waveform sample data corresponding to f(X i+1,o ) is read from the DBK 606, and the register R(WD ). Update processing of waveform sample number n. Addition processing of waveform sample number n and signal DADD1 supplied from sequencer 802 (n=
n+1) in the calculation unit 1913 and stored in the waveform number register R (WSN) in the waveform sample number memory 1909. Update processing of interpolation coefficient (Nm+n) α. The interpolation coefficient [(Nm+n)α] stored in the coefficient data memory 1906 and the increment generation unit 190
The calculation unit 1913 performs addition processing with the increment value α generated at step 8, and the addition result is stored in the coefficient data register R in the coefficient data memory 1906.
(MD), and if the addition result overflows, the carry flag register CF in the arithmetic unit 1913 is set to "1". Update processing of waveform number i. Addition processing of the waveform number i stored in the waveform number memory 1910 and the contents of the carry flag register CF explained above (i=i+
CF) is performed by the calculation unit 1913, and the waveform number register R in the waveform number memory 1910 is
(WND). Register R (WND), R (WSD), R (MD),
Data transfer processing of various data stored in R(WD) and R(WD) to each memory area specified by channel code CHC. At the timing of instruction step 11, data transfer processing is performed based on the signal WRRAM supplied from the sequencer 802. Note that the transfer process is not performed when the calculation request flag signal CLRF is "0". because,
This is because no new waveform samples are calculated. Table 11 shows the calculation sequence of DRP808.
By sequentially executing the instruction steps shown in Table 11, the processes described above are realized. In addition, the key on/off signal explained in Table 4
The first process when KD changes from "0" to "1" is an initial process, and the following conditions are set. A signal [“1”] instructing initial processing is generated in the on/off detection section 2308 in the calculation section 1913 shown in FIG. Waveform sample number n = (0) 10 settings. Signal WRWSN is supplied to calculation section 1913 at the timing of instruction step 7 shown in Table 11. Then, the output signal of AND gate 2310 becomes "1", and gates 2306 and 230
"1" is supplied to the control input of 7. As a result, (0000) 16 is supplied to the DC bus, and the register R in the waveform sample number memory 1909 is
Store (0000) 16 in (WSN). Waveform number i = (0) 10 settings. At the timing of instruction step 10 shown in Table 11, signal WRWND is supplied to calculation section 1913. Then, the output signal of AND gate 2311 becomes "1", and gates 2306 and 23
"1" is supplied to the control input of 07. As a result, (0000) 16 is supplied to the DC bus, and the register R (WND) in the waveform number memory 1910 is
Store (0000) 16 in. Through the above processing, the waveform number i and waveform sample number n are initialized each time the key-on/off signal KD changes from off to on. Also, the repetition specification data read from DBK606 is (F) 16 , that is, the final waveform flag.
For WEF, set the conditions as described below. Numerator term of interpolation coefficient (Nm + n) α = (0) 10 settings. Signal WRMD is supplied to AND gate 2312 in calculation section 1913 at the timing of instruction step 9 shown in Table 11. Then, AND
The output signal of the gate 2312 becomes "1", and "1" is supplied to the control inputs of the gates 2306 and 2307. As a result, (0000) 16 is supplied to the DC bus, and (0000) 16 is stored in register R (MD) in coefficient register memory 1906. Number of waveform samples NWS = (0) 10 settings. Signal RDNWS is supplied to AND gate 2309 in arithmetic unit 1913 at the timing of instruction step 7 shown in Table 11. Then,
The output signal of AND gate 2309 becomes "1" and the stored state of latch BL 2302 is cleared (0000) 16 . As a result, the waveform sample f
The address data of the DBK 606 for reading (X i+1,o ) is equal to the address data for reading the waveform sample f(X i,o ). With the above settings, when it comes to the final waveform data, the final waveform data is used repeatedly without substantially performing waveform interpolation processing. Explanation of the signals shown in Table 11 The signals described below are supplied from the sequencer 802.

【表】【table】

【表】 る。 RDOSDは、オフセツトデータ256をDAバ
スに供給する。 RDACCは、ACC1912内のレジスタR
(ACC)に格納しているデータをDAバスに供給
する命令。 RDREPは、増分生成部1908内で生成され
た増分値αをDAバスに供給する命令。 RDWSNは、波形サンプルナンバメモリ19
09内のメモリM(WSN)から読み出されている
波形サンプルナンバnをDBバスに供給する命
令。 RDWNDは、波形ナンバメモリ1910内の
メモリM(WND)から読み出されている波形ナ
ンバiをDBバスに供給する命令。 RDWNAは、波形ナンバメモリ1910内に
あるシフタ部で発生している波形ナンバアドレス
(WNA)をDBバスに供給する命令。 RDTADは、先頭アドレスレジスタ1907内
のレジスタR(TAD)に格納している先頭番地を
DBバスに供給する命令。 RDNWSは、波形ナンバメモリ1910内の
サンプル数発生器で発生しているサンプル数を
DBバスに供給する命令。 RDMDは、係数データメモリ1906内のメ
モリM(MD)から読み出されている係数データ
をDBバスに供給する命令。 RDRTAは、入力レジスタ部803から供給さ
れている楽音発生データ(ND、SD)をDCバス
に供給する命令。 WRDBKは、DCバス上のデータをDBKアドレ
スレジスタ1901内のレジスタR(DBK)に格
納する命令。 WRACCは、DCバス上のデータをACC191
2内のレジスタR(ACC)に格納する命令。 WRWSNは、DCバス上のデータを波形サンプ
ルナンバメモリ1909内のレジスタR(WSN)
に格納する命令。 WRMDは、DCバス上のデータを係数データメ
モリ1906内のレジスタR(MD)に格納する
命令。 WRWNDは、DCバス上のデータを波形ナンバ
メモリ1910内のレジスタR(WND)に格納
する命令。 TDAは、先頭アドレスレジスタ1907に
DBKから読み込んだ先頭番地をDAバスに供給す
る命令。 TCAは、DCバス上のデータをDAバスに供給
する命令。 DCRALは、演算部1913内のラツチAL2
301をクリヤする命令。 DADD1は、演算部1913内のFA2303
にキヤリ入力信号(+1)を供給する命令。 RDFLGは、演算部1913内のオン/オフ検
出部2308に新キーオン/オフ信号KDを取り
込む命令。 WRRAMは、波形データメモリ1904内
のレジスタR(WD)、波形データメモリ19
05内のレジスタR(WD)、係数データメモリ
1906内のレジスタR(MD)、波形サンプルナ
ンバメモリ1909内のレジスタR(WSN)、波
形ナンバメモリ1910内のレジスタR(WND)
に格納しているデータを、それぞれのメモリM
(WD)、M(WD)、M(MD)、M(WSN)、M
(WND)に書き込む命令。 以上のように、データメモリ(DBK)に合成
データ(波形データ、制御データ)の先頭番地を
格納することにより、回路構成を複雑化すること
なく、データメモリ内のデータ内容操作だけで異
なる波形データの選択ができ、異なる楽音を容易
に発生することができる。 さらに、複数組の制御データ(くり返し数指定
データ)を用意し、合成する場合には、所定の制
御データを選択して使用するようにしているた
め、音階によつて制御データを異なるように設定
することができ、1オクターブ内同一波形データ
を使用しても、楽音の立上り時間や、波形形状の
変化時間を一定にすることができる。 さらに、同一データベース上に波形データ、制
御データと先頭番地とを格納し、時分割的に各種
データを読み取るようにしているので、データメ
モリ(DBK)の回路構成が簡略化できるととも
に、データメモリとDRP808とのインターフ
エース処理が簡略化できる。 波形データプロセツサWDP807の詳細な説明 第20図はWDP807の演算処理の流れ図で
ある。WDP807の演算処理として、4種類の
演算がある。 波形内挿演算を行なつて仮想波形サンプル値
f^(Xi,n,o)を求める。 仮想波形サンプル値f^(Xi,n,o)とエンベロー
プデータEDとの乗算を行ない、エンベロープ
付加波形サンプル値f^(Xi,n,o,q,r)を求める。 前回求めたエンベロープ付加波形サンプル値
旧f^(Xi,n,o,q,r)と今回求めたエンベロープ付加
波形サンプル値新f^(Xi,n,o,q,r)との差分演算を
行なつて差分波形サンプル値Df(Xi,n,o,q,r)を求
める。 エンベロープデータEDの更新を行なう。 次に、エンベロープデータEDとエンベロープ
付加方法について説明する。 エンベロープデータEDは20ビツトで構成され
ている。上位4ビツトをEDU(Q)、下位16ビツ
トをEDL(R)とする。 エンベロープデータEDの更新方法は、新ED=
旧ED+△EDと云う演算処理を行なつて求める。
増分エンベロープデータ△EDは、CPU603か
ら入力レジスタ部803に供給されたサステイン
データDSUSあるいは、ダンパーデータDDMP
を使用する。サステインデータ、ダンパーデータ
の選択は、オルガン型エンベロープ、ピアノ型エ
ンベロープおよびキーオン/オフ信号に基づいて
使い分けを行なう。 エンベロープ付加波形サンプル値を求める演算
式を下式に示す。 f^(Xi,n,o,q,r)=f^(Xi,n,o)/2q−1
/2q+1 r/R・f^(Xi,n,o)……(5) q=0、1、2、……、Q−1(Q=24) r=0、1、2、……、R−1(R=216) エンベロープデータEDを単調増加すなわち、
新ED=旧ED+△ED(一定)とし、(5)式を実行す
ることにより、指数特性の減衰(立下り)エンベ
ロープが付加できる。また、単調減少、すなわち
新ED=旧ED−△ED(一定)とすることにより、
指数特性の立上り(アタツク)エンベロープを付
加することができる。このような処理を行なうこ
とで、指数特性のエンベロープを発生せずに、演
算だけで求められ、エンベロープデータEDの生
成が簡単な構成で実現できる。 第21図はWDP807の一具体例を示す構成
図である。図中2101は波形データゲート、
2102は波形データゲート、2103はエン
ベロープデータEDの増分値を発生するエンベロ
ープ増分発生部(△ED発生部)、2104は旧波
形サンプル値f^(Xi,n,o,q,r)を記憶している旧波形
データメモリ部、2105はエンベロープデータ
EDを記憶しておくエンベロープデータメモリ部
(EDメモリ部)、2106は乗算部、2107は
(5)式に示した1/2qあるいは1/2q+1の演算を行なう
シフタ部、2108はフルアダー、ラツチやキヤ
リーフラグレジスタなどで構成している演算部、
2109は差分波形サンプル値Df^(Xi,n,o,q,r)を格
納するアウトプツトバツフアレジスタ(OBR)、
2110はアナログバツフアメモリ部812内の
アナログスイツチ1103〜1107(コンデン
サC1〜C8に電荷を蓄えるためのスイツチ)(第1
1図)のオン/オフを制御する書き込みパルス発
生部、2111は演算部2108内のラツチAL
にデータを供給するWAバス、2112は演算部
2108内のラツチBLにデータを供給するWB
バス、2113は演算部2108で行なつた演算
処理結果を各レジスタに供給するWCバスであ
る。 次に各部の構成内容について説明する。△ED
発生部2103は増分データ△EDとしてサステ
インデータDSUSとダンパーデータDDMPのど
ちらか一方を選択する選択器と入力レジスタ部8
03から供給されているキーオン/オフ信号
KD、オルガン型/ピアノ型指定信号OPSとダン
パーオン/オフ信号DMPから選択信号を生成す
る制御器と、信号KD、信号OPS、信号DMPと
DRP808内の増分生成部1908から供給さ
れている最終波形フラグ信号WEFから仮想キー
オン/オフ信号を生成し仮想キー信号EADGを
出力する仮想キー信号発生器とから構成してい
る。第12表に増分データ△EDの選択内容と仮想
キー信号EADGの発生状態を示す。 第7表に示した信号OPSが“0”、すなわちオ
ルガン型指定の場合、仮想キー信号EADGは、
キーオン/オフ信号KDのオン(“1”)、オフ
(“0”)状態と等しくなる。 信号OPSが“1”、すなわちピアノ型指定の場
合、仮想キー信号EADGは下述の状態となる。 信号WEFが“0”の場合 (a) 信号DMP(第7表に示したダンパオン/オ
フ信号)が“0”の場合、仮想キー信号
EADGは“オン”状態となる。 (b) 信号DMPが“1”の場合、仮想キー信号
EADGは、キーオン/オフ信号KDのオン、
オフ状態と等しくなる。 信号WEFが“1”の場合 信号DMP、キーオン/オフ信号KDの状態
に関係なく、仮想キー信号EADGはオフ状態
となる。 仮想キー信号EADGの働きの説明 信号WEFが“1”となり最終波形データをく
り返し用いて、持続音の楽音を発生する場合、オ
ルガン型指定であれば、オルガン型の楽音特性と
等しくなり問題は発生しない。 ピアノ型指定となると、楽音特性は減衰特性と
する必要があり、信号WEF=“1”となり、最終
波形データをくり返し用いて持続音を発生して
も、仮想キー信号EADGをオフ状態として、減
衰エンベロープ特性を付加して強制的に楽音特性
を減衰特性とする。 旧波形データメモリ部2104は、演算部21
08の演算結果をシーケンサ802から供給され
ている信号WROWDによつて一時格納しておく
レジスタR(OWD)と、8チヤネル分のエンベ
ロープ付加波形サンプル値f^(Xi,n,o,q,r)を記憶す
る16ビツト×8語のメモリM(OWD)と、メモ
リM(OWD)の出力データを信号RDOWDによ
つてWBバスに供給するゲートとで構成してい
る。通常メモリM(OWD)は読み出し状態とな
つており、シーケンサ802から供給されている
チヤネルコードCHCに基づいたアドレスのエン
ベロープ付
[Table] RDOSD provides offset data 256 to the DA bus. RDACC is register R in ACC1912
An instruction to supply data stored in (ACC) to the DA bus. RDREP is an instruction for supplying the increment value α generated in the increment generation unit 1908 to the DA bus. RDWSN is waveform sample number memory 19
A command to supply the waveform sample number n read from memory M (WSN) in 09 to the DB bus. RDWND is a command to supply the waveform number i read from the memory M (WND) in the waveform number memory 1910 to the DB bus. RDWNA is an instruction to supply the waveform number address (WNA) generated in the shifter section in the waveform number memory 1910 to the DB bus. RDTAD is the start address stored in register R (TAD) in the start address register 1907.
Instructions to feed the DB bus. RDNWS indicates the number of samples generated by the sample number generator in the waveform number memory 1910.
Instructions to feed the DB bus. RDMD is an instruction to supply the coefficient data read from memory M (MD) in the coefficient data memory 1906 to the DB bus. RDRTA is an instruction to supply musical tone generation data (ND, SD) supplied from the input register section 803 to the DC bus. WRDBK is an instruction to store data on the DC bus in register R (DBK) in the DBK address register 1901. WRACC transfers data on the DC bus to ACC191
Instruction to store in register R (ACC) in 2. WRWSN transfers the data on the DC bus to register R (WSN) in the waveform sample number memory 1909.
Instructions to store in. WRMD is an instruction to store data on the DC bus in register R (MD) in coefficient data memory 1906. WRWND is an instruction to store data on the DC bus in register R (WND) in waveform number memory 1910. TDA is stored in the start address register 1907.
An instruction to supply the first address read from DBK to the DA bus. TCA is an instruction to supply data on the DC bus to the DA bus. DCRAL is the latch AL2 in the calculation unit 1913.
Order to clear 301. DADD1 is FA2303 in the calculation unit 1913
A command to supply a carry input signal (+1) to the RDFLG is an instruction to input a new key on/off signal KD to the on/off detection unit 2308 in the calculation unit 1913. WRRAM is the register R (WD) in the waveform data memory 1904 and the waveform data memory 19.
Register R (WD) in coefficient data memory 1906, register R (WSN) in waveform sample number memory 1909, register R (WND) in waveform number memory 1910
The data stored in each memory M
(WD), M (WD), M (MD), M (WSN), M
Instruction to write to (WND). As described above, by storing the start address of the composite data (waveform data, control data) in the data memory (DBK), different waveform data can be generated simply by manipulating the data contents in the data memory without complicating the circuit configuration. can be selected, and different musical tones can be easily generated. Furthermore, when preparing multiple sets of control data (data specifying the number of repetitions) and composing them, the predetermined control data is selected and used, so the control data can be set differently depending on the scale. Even if the same waveform data within one octave is used, the rise time of a musical tone and the change time of a waveform shape can be made constant. Furthermore, since the waveform data, control data, and start address are stored in the same database, and various data are read in a time-sharing manner, the circuit configuration of the data memory (DBK) can be simplified, and the data memory Interface processing with DRP808 can be simplified. Detailed Description of Waveform Data Processor WDP807 FIG. 20 is a flowchart of the arithmetic processing of WDP807. There are four types of calculations as the calculation processing of the WDP807. Virtual waveform sample values are obtained by performing waveform interpolation calculations.
Find f^(X i,n,o ). The virtual waveform sample value f^(X i,n,o ) is multiplied by the envelope data ED to obtain the envelope-added waveform sample value f^(X i,n,o,q,r ). Difference between the previous envelope-added waveform sample value old f^(X i,n,o,q,r ) and the new envelope-added waveform sample value f^(X i,n,o,q,r ) found this time Calculation is performed to obtain the differential waveform sample value Df (X i,n,o,q,r ). Update envelope data ED. Next, envelope data ED and an envelope addition method will be explained. Envelope data ED consists of 20 bits. The upper 4 bits are EDU (Q) and the lower 16 bits are EDL (R). The method for updating the envelope data ED is the new ED =
It is obtained by performing the calculation process old ED + △ED.
The incremental envelope data △ED is the sustain data DSUS or damper data DDMP supplied from the CPU 603 to the input register section 803.
use. Sustain data and damper data are selected based on the organ-type envelope, piano-type envelope, and key-on/off signal. The formula for calculating the envelope-added waveform sample value is shown below. f^(X i,n,o,q,r )=f^(X i,n,o )/2 q −1
/2 q+1 r/R・f^(X i,n,o )...(5) q=0, 1, 2,..., Q-1 (Q=2 4 ) r=0, 1, 2,..., R-1 (R=2 16 ) The envelope data ED is monotonically increased, that is,
By setting new ED = old ED + △ED (constant) and executing equation (5), an exponential characteristic damping (falling) envelope can be added. Also, by monotonically decreasing, that is, new ED = old ED - △ED (constant),
An exponential attack envelope can be added. By performing such processing, an envelope with exponential characteristics is not generated, but can be obtained only by calculation, and envelope data ED can be generated with a simple configuration. FIG. 21 is a configuration diagram showing a specific example of the WDP 807. In the figure, 2101 is a waveform data gate;
2102 is a waveform data gate, 2103 is an envelope increment generation unit (△ED generation unit) that generates an increment value of envelope data ED, and 2104 is used to store the old waveform sample value f^(X i,n,o,q,r ). old waveform data memory section, 2105 is envelope data
Envelope data memory section (ED memory section) for storing ED, 2106 is a multiplication section, 2107 is
A shifter section that performs the operation of 1/2 q or 1/2 q+1 shown in equation (5), 2108 is an operation section consisting of a full adder, latch, carry flag register, etc.
2109 is an output buffer register (OBR) that stores the differential waveform sample value Df^(X i,n,o,q,r );
Reference numeral 2110 denotes analog switches 1103 to 1107 (switches for storing charge in capacitors C1 to C8 ) (first switch) in the analog buffer memory section 812.
2111 is the latch AL in the calculation unit 2108.
2112 is the WB bus that supplies data to the latch BL in the calculation unit 2108.
A bus 2113 is a WC bus that supplies the results of the arithmetic processing performed by the arithmetic unit 2108 to each register. Next, the configuration of each part will be explained. △ED
The generation unit 2103 includes a selector for selecting either sustain data DSUS or damper data DDMP as incremental data ΔED, and an input register unit 8.
Key on/off signal supplied from 03
KD, a controller that generates a selection signal from the organ type/piano type designation signal OPS and the damper on/off signal DMP, and the signal KD, signal OPS, and signal DMP.
A virtual key signal generator generates a virtual key on/off signal from the final waveform flag signal WEF supplied from the increment generating section 1908 in the DRP 808 and outputs a virtual key signal EADG. Table 12 shows the selection contents of the incremental data ΔED and the generation state of the virtual key signal EADG. When the signal OPS shown in Table 7 is “0”, that is, the organ type is specified, the virtual key signal EADG is
This is equivalent to the on (“1”) and off (“0”) states of the key on/off signal KD. When the signal OPS is "1", that is, the piano type is specified, the virtual key signal EADG is in the state described below. When the signal WEF is “0” (a) When the signal DMP (damper on/off signal shown in Table 7) is “0”, the virtual key signal
EADG is in the “on” state. (b) When signal DMP is “1”, virtual key signal
EADG turns on the key on/off signal KD,
Equivalent to off state. When the signal WEF is "1", the virtual key signal EADG is in the off state regardless of the states of the signal DMP and the key on/off signal KD. Explanation of the function of the virtual key signal EADG When the signal WEF becomes "1" and the final waveform data is repeatedly used to generate a sustained musical tone, if the organ type is specified, the problem will occur because the musical tone characteristics will be equal to the organ type musical tone characteristics. do not. When specifying a piano type, the musical tone characteristics must be attenuation characteristics, and even if the signal WEF = "1" and a sustained tone is generated by repeatedly using the final waveform data, the virtual key signal EADG is turned off and the attenuation is performed. An envelope characteristic is added to force the musical tone characteristic to be a damping characteristic. The old waveform data memory section 2104 is
A register R (OWD) temporarily stores the calculation result of 08 by the signal WROWD supplied from the sequencer 802, and an envelope-added waveform sample value f^(X i,n,o,q, It consists of a 16 -bit x 8-word memory M (OWD) for storing 16 bits x 8 words, and a gate that supplies the output data of the memory M (OWD) to the WB bus by a signal RDOWD. Normally, the memory M (OWD) is in a read state and has an address envelope based on the channel code CHC supplied from the sequencer 802.

【表】 加波形サンプル値を上述のゲートに供給してい
る。そして、信号WRRAMによつてメモリM
(OWD)は書き込み状態となり、レジスタR
(OWD)に格納しているデータがメモリM
(OWD)に書き込まれる。 EDメモリ部2104は、演算部2108の演
算結果を信号WREDL、WREDUによつてそれぞ
れ一時格納するレジスタR(EDL)、R(EDU)
と、8チヤネル分のエンベロープデータEDを記
憶するメモリM(EDL)、M(EDU)と、メモリM
(EDL)の出力データを信号RDEDLによつて
WBバスに供給するゲートLと、メモリM
(EDU)の出力データを信号RDEDUによつて
WBバスに供給するゲートUとで構成している。
メモリM(EDL)は16ビツト×8語、メモリM
(EDU)は4ビツト×8語である。通常メモリM
(EDL)、M(EDU)は読み出し状態となつてお
り、チヤネルコードCHCに基づいたアドレスの
エンベロープデータEDが読み出され、上述のゲ
ートL、ゲートUにそれぞれ供給される。また、
信号EDUは乗算部2106に、信号DELはシフ
タ部2107に供給されている。 そして、信号WRRAMによつてメモリM
(DEL)、M(EDU)は書き込み状態となり、レジ
スタR(EDL)、R(EDU)に格納しているデータ
がメモリM(EDL)、M(EDU)に書き込まれる。 乗算部2106は、波形データを信号
WRMLPによつて一時格納するレジスタR
(MLP1)と、信号SELWE=“0”の時DRP80
8から供給されている係数データMLPを一時格
納し、信号SELWE=“1”の時EDメモリ部21
05から供給されているエンベロープデータ
EDLを一時格納するレジスタ(MLP2)と、レジ
スタR(MLP1)に格納しているデータを被乗数
(2の補数表現)としレジスタR(MLP2)に格納
しているデータを乗数(絶対値表現)とする16ビ
ツト×16ビツト=32ビツトの乗算器と、信号
RDMLPによつて乗算器の乗算結果上位16ビツト
をWBバスに供給するゲートとで構成している。 シフタ部2107は、演算部2108の演算結
果を信号WRSFTによつて一時格納するレジスタ
R(SFT)と、レジスタR(SFT)に格納したデ
ータをEDメモリ部2105から供給されている
エンベロープデータEDUに基づいてシフト操作
(R(SFT)/2q;q=0、1、2、……、24−1)す るシフタと、シフタの出力データを信号WRSFA
によつて一時格納するレジスタR(SFA)と、信
号RDSFAによつてレジスタR(SFA)に格納し
たデータをWAバスに供給するゲートAと、信号
RDSFBによつてシフタのデータを直接WBバス
に供給するゲートBとで構成している。 第24図は演算部2108の一具体例を示す構
成図である。2401はWAバス上のデータを信
号INVによつて反転する反転ゲート、2402
は反転ゲート2401の出力データを信号φ2の
立上りエツヂで一時格納するラツチALで、信号
WCRALによつて格納状態が(0000)16になる、
すなわちリセツトされる。2403はWBバス上
のデータを信号φ2の立上りエツヂで一時格納す
るラツチBL、2404はキヤリ入力、キヤリ出
力を有する16ビツト加算器(FA)、2405は
FA2404のキヤリ出力を信号WREDLによつ
て記憶し、信号RDEDLによつてリセツトするキ
ヤリフラグレジスタECF、2406はANDゲー
ト、2407はORゲート、2408は信号
WTCAによつてFA2404の出力データをWA
バスに供給するゲートA、2409はWCバスに
データ(FFFF)16を供給するゲートB、2410
はWCバスにWBバス上のデータを供給するゲー
トC、2411はFA2404の出力データを
WCバスに供給するゲートD、2412はデータ
(0000)16をWCバスに供給するゲートE、241
3は信号TBC、信号WREDU、信号WREDL、
信号EADGおよびFA2404の出力信号(ビツ
ト位置4)に基づいてゲートB2409〜ゲート
E2412のいずれか1つを選択するゲート選択
器である。 ゲート選択器2413で選択するゲートについ
て説明する。シーケンサ802から供給されてい
る信号TBCによつてゲートC2410が選択さ
れ、WCバスにはWBバス上のデータが供給され
る。 △ED発生部2103から供給されている仮想
キー信号EADGがオン状態であると、信号
WREDLあるいは信号WREDUによつてゲートE
2412が選択され、WCバス上にはデータ
(0000)16が供給される。すなわち、エンベロープ
データEDU、EDLをともに(0000)16と設定する
ことになる。この結果、エンベロープ付加波形サ
ンプル値f^(Xi,n,o,q,r)=f^(Xi,n,o)となる。 また、FA2404の出力信号(ビツト位置4)
が“1”でかつ信号WREDUが供給されるとゲ
ートB2409が選択されWCバスにデータ
(FFFF)16が供給される。すなわち、エンベロー
プデータEDUを常時(F)16と設定することになる。 上述以外の状態では、ゲートD2411が選択
され、FA2404の出力データがWCバスに供
給される。 なお、旧波形データメモリ部2105、EDメ
モリ部2106に供給されている信号WRRAN
は、DRP808で説明した信号WRRAMと同一
のものである。 WDP807もDRP808、EDP806と同様
にシーケンサ802から供給される制御信号に基
づいて下述する演算処理を行ない、上述した〜
の処理内容を実現するようになつている。 仮想波形サンプル値f(Xi,n,o)を求める。 信号RDWD、RDWD(命令ステツプ2
に対応)によつてDRP808から供給されて
いる波形サンプル値f(Xi,o)とf(Xi+1,o)を
WAバス、WBバスに供給し、演算部2108
のラツチAL、BLに信号φ2立下りエツヂで波
形サンプル値を格納する。この時演算部210
8に加えられる信号INVによつてラツチALに
格納されるデータは反転データ、すなわち
(Xi,o)となる。 そして、ラツチAL2402、ラツチBL24
03に格納されたデータを用いて演算部210
8で加算処理〔(i,o)+f(Xi+1,o)+1〕、す
なわち〔f(Xi+1,o)−f(Xi,o)〕が実行され、演
算結果がWCバスに出力され、信号WRMLPに
よつて乗算部2106内の被乗数レジスタR
(MLP1)に信号φ2の立上りエツヂで書き込
まれるとともに、DRP808から供給されて
いる内挿係数(Nm+n)αが乗数レジスタR
(MLP2)に格納される。 そうすると、乗算部2106内で 〔f(Xi+1,o)−f(Xi,o)〕×(Nm+n)α の乗算が実行される。乗算結果は命令ステツプ
4の終了までに正しい値になるものとする。次
に信号RDWDによつて矩形サンプル値f
(Xi,o)をWAバスに、信号RDMLPによつて乗
算結果をWBバスに供給し、信号φ2の立下り
エツヂでラツチAL、BLにそれぞれのデータを
格納する(命令ステツプ5に対応)。なお、乗
算結果は乗算器の上位16ビツトを利用してい
る。これは、1/216処理と等価なものである。 演算部2108で加算処理を実行することに
より、(2)式で表わした仮想波形サンプル値f
(Xi,n,o)が求められる。 エンベロープ付加波形サンプル値f^(Xi,n,o,q,r
を求める。 仮想波形サンプル値f^(Xi,n,o)を、信号
WRMLP、信号WRSFT(命令ステツプ6に対
応)によつて、乗算部2106内の被乗数レジ
スタR(MLP1)とシフタ部2107内のレジ
スタR(SFT)に信号φ2の立上りエツヂで格
納する。また、EDメモリ部2105から乗算
器2106に供給しているエンベロープデータ
EDLを信号SELWE(命令ステツプ6に対応)
によつて乗算部2106内の乗数レジスタR
(MLP2)に格納し、乗算処理〔f^(Xi,n,o)×r〕
を実行する。 一方、シフタ部2107内のレジスタR
(SFT)の格納した仮想波形サンプル値f^
(Xi,n,o)をEDメモリ部2105からシフタ部
2107に供給されているエンベロープデータ
EDU(Q)に基づいて、シフト操作〔f^
(Xi,n,o)/2q〕を行ない、信号WRSFB(命令ス
テツプ7に対応)によつて、シフタ部2107
内の出力レジスタR(SFB)に格納する。 そして、乗算部2106で行なつた乗算結果
を、信号TBC、信号WRSFT(命令ステツプ8
に対応)によつてシフタ部2107内のレジス
タR(SFT)に格納し、エンベロープデータ
EDU(Q)に基づいたシフト操作行なう。 信号RDSFA、RDSFB(命令ステツプ9に対
応)によつて、シフタ部2107内の出力レジ
スタR(SFB)に格納してあるデータ〔f
(Xi,n,o)/2q〕を演算部2108内のラツチ
BLに、シフタ部2107のシフト結果データ
〔1/2q+1・r/216・f^(Xi,n,o)〕を信号INVによつ
て 論理反転し、演算部2108内のラツチALに
それぞれ格納する。 そして、演算部2108で加算処理を実行す
ることにより、エンベロープ付加波形サンプル
値f^(Xi,n,o,q,r)が求められる。 差分波形サンプル値Df(Xi,n,o,q,r)を求める。 エンベロープ付加波形サンプル値f^(Xi,n,o,q,r
を信号WROWDによつて旧波形メモリ部21
04内のレジスタ(OWD)に格納するととも
に、信号TCAによつて、FA2404の出力デ
ータをWAバスに供給し、信号INVによつて論
理反転を行ない、演算部2108内のラツチ
ALに格納する。また、信号RDOWDによつ
て、旧エンベロープ付加波形サンプル値を旧波
形メモリ部2104から読み出し、演算部21
08内のラツチBLに格納する。 そして、演算部2108で加算処理を実行す
ることにより、差分波形サンプル値Df^
(Xi,n,o,q,r)が求められ、信号WOBRによつて
OBR2109内のレジスタR(OBR)に差分
波形サンプル値を格納する。 エンベロープデータEDの更新 信号RDEDL、RD△ED(命令ステツプ3に
対応)によつて、EDメモリ部2105からエ
ンベロープデータEDが、△ED発生部2103
から増分データ△EDがWAバスとWBバスに
それぞれ読み出され、信号φ2の立下りエツヂ
で演算部2108内のラツチALとBLにそれぞ
れ格納される。 そして、加算処理(EDL+△ED)を演算部
2108で実行し、新エンベロープデータED
を求め、信号WREDL(命令ステツプ4に対応)
によつて、EDメモリ部2105内のレジスタ
R(EDL)に新エンベロープデータEDを格納
するとともに、演算部2108内の加算器FA
2404のキヤリー出力を演算部2108内の
フラグレジスタECF2405に格納する。 信号RDEDU(命令ステツプ6に対応)によ
つて、エンベロープデータEDUが読み出され、
演算部2108で、レジスタECF2405の
内容とエンベロープデータEDUとの加算処理
を実行して、新エンベロープデータEDUを求
める。求めたエンベロープEDUを信号
WREDUによつて、EDメモリ部2105内の
レジスタR(EDU)に格納する。 そして、DRP808と同様に、信号
WRRAMによつてレジスタR(EDL)、R
(EDU)、R(OWD)に格納している各種デー
タをチヤネルコードCHCで指定されたそれぞ
れのメモリ領域にデータ転送を行なう。 アナログバツフアメモリ部812、DAC8
11データを供給するタイミングについて説明
する。 信号CRDAS(命令ステツプ9に対応)によ
つて、書き込みパルス発生部2110で発生し
ている書き込みパルスをリセツトする。そし
て、信号WROBR(命令ステツプ11に対応)に
よつて、OBR2109内のレジスタR(OBR)
に差分波形サンプル値Df^(Xi,n,o,q,r)を格納し、
DAC811に供給してデイジタル信号をアナ
ログ信号に変換しアナログバツフアメモリ部8
12に供給するとともに、書き込みパルス発生
部2110でチヤネルコードCHCで指定され
たチヤネルに対応する書き込みパルスをセツト
し、アナログバツフアメモリ部812内のアナ
ログスイツチAW1〜AW8に供給する。この
時、信号CLRFが“0”(計算要求を行なつて
いない場合)の場合は、書き込みパルスをセツ
トしないようにする。 第13表にWDP807の演算シーケンスを示す。
第13表に示す命令ステツプを順次実行することに
より、上述で説明した処理が実現する。 第13表に示した制御信号について説明する。 下述する記号はシーケンサ802から供給され
る。 RDWDは、DRP808から供給されている
波形データWDをWAバスに供給する命令。 RDWDは、DRP808から供給されている
波形データWDをWBバスに供給する命令。 RD△EDは、△ED発生部2103内で選択さ
れたサステインデータDSUSあるいはダンパデー
タDDMPを増分データ△EDとしてWAバスに供
給する命令。 RDSFAは、シフタ部2107内のシフタの出
力データをWAバスに供給する命令。 RDEDLは、EDメモリ部2105内のメモリ
M(EDL)から読み出されているエンベロープデ
ータEDLをWBバスに供給する命令。 RDMLPは、乗算部2106内の乗算器の出力
データ(上位16ビツト)をWBバスに供給する命
令。 RDEDUは、EDメモリ部2105内のメモリ
M(EDU)から読み出されているエンベロープデ
ータEDUをWBバスに供給する命令。 RDSFBは、シフタ部2107内のレジスタR
(SFB)に格納しているデータ(f^(Xi,n,o)/2q
をWBバスに供給する命令。 RDOWDは、旧波形メモリ部2104内のメ
モリM(OWD)から読み出されているエンベロ
ープ付加波形サンプル値をWBバスに供給する命
令。 WRMLPは、WCバス上のデータを乗算部21
06内の被乗数レジスタR(MLP1)に格納する
命令。 WREDLは、WCバス上のデータをEDメモリ部
2105内のレジスタR(EDL)に格納する命
令。 WRSFTは、WCバス上のデータをシフタ部2
107内のレジスタR(SFT)に格納する命令。
[Table] The additive waveform sample value is supplied to the gate described above. and the memory M by the signal WRRAM.
(OWD) is in write state and register R
(OWD) The data stored in memory M
(OWD). The ED memory unit 2104 includes registers R (EDL) and R (EDU) that temporarily store the calculation results of the calculation unit 2108 using signals WREDL and WREDU, respectively.
, memories M (EDL) and M (EDU) that store envelope data ED for 8 channels, and memory M
(EDL) output data by signal RDEDL
Gate L that supplies the WB bus and memory M
(EDU) output data by signal RDEDU
It consists of a gate U that supplies the WB bus.
Memory M (EDL) is 16 bits x 8 words, Memory M
(EDU) is 4 bits x 8 words. Normal memory M
(EDL) and M (EDU) are in a read state, and the envelope data ED of the address based on the channel code CHC is read out and supplied to the gates L and U, respectively. Also,
The signal EDU is supplied to the multiplier section 2106, and the signal DEL is supplied to the shifter section 2107. and the memory M by the signal WRRAM.
(DEL) and M (EDU) enter the write state, and the data stored in registers R (EDL) and R (EDU) are written to memories M (EDL) and M (EDU). The multiplier 2106 converts the waveform data into a signal.
Register R temporarily stored by WRMLP
(MLP1) and DRP80 when signal SELWE="0"
The coefficient data MLP supplied from 8 is temporarily stored, and when the signal SELWE="1", the ED memory section 21
Envelope data supplied from 05
The data stored in the register (MLP2) that temporarily stores the EDL and the register R (MLP1) is used as the multiplicand (two's complement representation), and the data stored in register R (MLP2) is used as the multiplier (absolute value representation). 16 bits x 16 bits = 32 bits multiplier and signal
It consists of a gate that supplies the upper 16 bits of the multiplication result of the multiplier to the WB bus using RDMLP. The shifter unit 2107 has a register R (SFT) that temporarily stores the calculation result of the calculation unit 2108 in response to a signal WRSFT, and the data stored in the register R (SFT) is transferred to the envelope data EDU supplied from the ED memory unit 2105. A shifter performs a shift operation (R(SFT)/2 q ; q=0, 1, 2, ..., 2 4 -1) based on the signal WRSFA and output data of the shifter is
a register R (SFA) for temporarily storing data by the signal RDSFA; a gate A for supplying the data stored in the register R (SFA) to the WA bus by the signal RDSFA;
It consists of a gate B that directly supplies shifter data to the WB bus by RDSFB. FIG. 24 is a configuration diagram showing a specific example of the calculation unit 2108. 2401 is an inversion gate that inverts the data on the WA bus according to the signal INV; 2402
is a latch AL that temporarily stores the output data of the inverting gate 2401 at the rising edge of the signal φ2;
The storage state becomes (0000) 16 by WCRAL,
In other words, it is reset. 2403 is a latch BL that temporarily stores data on the WB bus at the rising edge of signal φ2; 2404 is a 16-bit adder (FA) having a carry input and a carry output; 2405 is a 16-bit adder (FA) having a carry input and a carry output;
A carry flag register ECF stores the carry output of FA2404 using the signal WREDL and resets it using the signal RDEDL; 2406 is an AND gate; 2407 is an OR gate; 2408 is a signal
WA output data of FA2404 by WTCA
Gate A, 2409, which supplies the bus, Gate B, 2410, which supplies data (FFFF) 16 to the WC bus.
is the gate C that supplies the data on the WB bus to the WC bus, and 2411 is the gate C that supplies the data on the WB bus to the WC bus.
Gate D, 2412 supplies data (0000) 16 to the WC bus. Gate E, 241 supplies data (0000) 16 to the WC bus.
3 is signal TBC, signal WREDU, signal WREDL,
This is a gate selector that selects any one of gates B2409 to E2412 based on the output signals (bit position 4) of signals EADG and FA2404. The gates selected by the gate selector 2413 will be explained. The gate C2410 is selected by the signal TBC supplied from the sequencer 802, and the data on the WB bus is supplied to the WC bus. When the virtual key signal EADG supplied from the △ED generation unit 2103 is in the on state, the signal
Gate E by WREDL or signal WREDU
2412 is selected and data (0000) 16 is supplied on the WC bus. That is, the envelope data EDU and EDL are both set to (0000) 16 . As a result, the envelope-added waveform sample value f^(X i,n,o,q,r )=f^(X i,n,o ). Also, the output signal of FA2404 (bit position 4)
When is "1" and signal WREDU is supplied, gate B2409 is selected and data (FFFF) 16 is supplied to the WC bus. In other words, the envelope data EDU is always set to (F) 16 . In states other than the above, gate D2411 is selected and the output data of FA2404 is supplied to the WC bus. Note that the signal WRRAN supplied to the old waveform data memory section 2105 and the ED memory section 2106
is the same as the signal WRRAM described for DRP808. Like the DRP808 and EDP806, the WDP807 also performs the following arithmetic processing based on the control signal supplied from the sequencer 802, and performs the arithmetic processing described above.
The processing content is now being realized. A virtual waveform sample value f(X i,n,o ) is obtained. Signals RDWD, RDWD (command step 2
The waveform sample values f(X i,o ) and f(X i+1,o ) supplied from the DRP808 by
Supplied to WA bus and WB bus, calculation unit 2108
The waveform sample value is stored in the latches AL and BL at the falling edge of the signal φ2. At this time, the calculation unit 210
The data stored in the latch AL by the signal INV applied to the latch 8 becomes inverted data, that is, (X i,o ). And Latch AL2402, Latch BL24
The calculation unit 210 uses the data stored in 03.
At step 8, the addition process [( i,o )+f(Xi +1,o )+1], that is, [f(Xi +1,o )−f(Xi ,o )] is executed, and the calculation result is WC The multiplicand register R in the multiplier 2106 is output to the bus, and the multiplicand register R in the multiplier 2106 is
(MLP1) at the rising edge of signal φ2, and the interpolation coefficient (Nm+n) α supplied from DRP808 is written to multiplier register R.
(MLP2). Then, multiplication of [f(X i+1,o )−f(X i,o )]×(Nm+n)α is executed in the multiplier 2106. It is assumed that the multiplication result becomes a correct value by the end of instruction step 4. Next, the rectangular sample value f is determined by the signal RDWD.
(X i,o ) is supplied to the WA bus, the multiplication result is supplied to the WB bus by the signal RDMLP, and the respective data are stored in the latches AL and BL at the falling edge of the signal φ2 (corresponding to instruction step 5). . Note that the multiplication result uses the upper 16 bits of the multiplier. This is equivalent to 1/2 16 processing. By executing addition processing in the calculation unit 2108, the virtual waveform sample value f expressed by equation (2) is
(X i,n,o ) is obtained. Envelope added waveform sample value f^(X i,n,o,q,r )
seek. Let the virtual waveform sample value f^(X i,n,o ) be the signal
WRMLP and signal WRSFT (corresponding to instruction step 6) are used to store multiplicand register R (MLP1) in multiplication section 2106 and register R (SFT) in shifter section 2107 at the rising edge of signal φ2. In addition, envelope data supplied from the ED memory unit 2105 to the multiplier 2106
EDL signal SELWE (corresponds to instruction step 6)
The multiplier register R in the multiplier 2106 is
(MLP2) and multiplication process [f^(X i,n,o )×r]
Execute. On the other hand, the register R in the shifter section 2107
(SFT) stored virtual waveform sample value f^
(X i,n,o ) is the envelope data supplied from the ED memory section 2105 to the shifter section 2107.
Based on EDU(Q), shift operation [f^
(X i,n,o )/2 q ], and by the signal WRSFB (corresponding to instruction step 7), the shifter section 2107
The data is stored in the output register R (SFB) of the internal memory. The multiplication result performed by the multiplier 2106 is then applied to the signal TBC and the signal WRSFT (instruction step 8).
), the envelope data is stored in register R (SFT) in the shifter section 2107.
Perform shift operation based on EDU (Q). The data [f
(X i,n,o )/2 q ] by the latch in the calculation unit 2108
The shift result data [1/2 q+1・r/2 16・f^(X i,n,o )] of the shifter section 2107 is logically inverted by the signal INV, and the latch in the calculation section 2108 is applied to BL. Store each in AL. Then, the envelope added waveform sample value f^(X i,n,o,q,r ) is obtained by executing addition processing in the arithmetic unit 2108. Find the differential waveform sample value Df (X i,n,o,q,r ). Envelope added waveform sample value f^(X i,n,o,q,r )
The old waveform memory section 21 is sent by the signal WROWD.
At the same time, the output data of the FA2404 is supplied to the WA bus using the signal TCA, and the logic is inverted using the signal INV.
Store in AL. In addition, the old envelope added waveform sample value is read out from the old waveform memory section 2104 by the signal RDOWD, and the arithmetic section 2104
Store in latch BL in 08. Then, by executing addition processing in the calculation unit 2108, the difference waveform sample value Df^
(X i,n,o,q,r ) is determined and by the signal WOBR
The differential waveform sample value is stored in register R (OBR) in the OBR 2109. Update of envelope data ED Envelope data ED is updated from the ED memory unit 2105 to the ΔED generation unit 2103 by signals RDEDL and RD△ED (corresponding to instruction step 3).
Incremental data ΔED is read out to the WA bus and WB bus, respectively, and stored in the latches AL and BL in the arithmetic unit 2108, respectively, at the falling edge of the signal φ2. Then, the calculation unit 2108 executes the addition process (EDL+△ED) to create the new envelope data ED.
Find the signal WREDL (corresponding to instruction step 4)
As a result, the new envelope data ED is stored in the register R (EDL) in the ED memory unit 2105, and the adder FA in the calculation unit 2108 is
The carry output of 2404 is stored in the flag register ECF 2405 in the calculation unit 2108. The envelope data EDU is read out by the signal RDEDU (corresponding to instruction step 6).
The calculation unit 2108 performs addition processing between the contents of the register ECF 2405 and the envelope data EDU to obtain new envelope data EDU. Signal the obtained envelope EDU
By WREDU, it is stored in register R (EDU) in the ED memory unit 2105. And, like DRP808, the signal
Register R (EDL), R by WRRAM
The various data stored in (EDU) and R (OWD) are transferred to the respective memory areas specified by the channel code CHC. Analog buffer memory section 812, DAC8
The timing of supplying 11 data will be explained. The write pulse generated by the write pulse generator 2110 is reset by the signal CRDAS (corresponding to instruction step 9). Then, by signal WROBR (corresponding to instruction step 11), register R (OBR) in OBR2109 is
Store the difference waveform sample value Df^(X i,n,o,q,r ) in
The digital signal is supplied to the DAC811 to convert it into an analog signal, and the analog buffer memory section 8
At the same time, the write pulse generating section 2110 sets a write pulse corresponding to the channel specified by the channel code CHC, and supplies it to the analog switches AW1 to AW8 in the analog buffer memory section 812. At this time, if the signal CLRF is "0" (when no calculation request is being made), the write pulse is not set. Table 13 shows the calculation sequence of WDP807.
By sequentially executing the instruction steps shown in Table 13, the processing described above is realized. The control signals shown in Table 13 will be explained. The symbols described below are provided by sequencer 802. RDWD is a command to supply the waveform data WD supplied from the DRP808 to the WA bus. RDWD is a command to supply the waveform data WD supplied from the DRP808 to the WB bus. RDΔED is a command for supplying sustain data DSUS or damper data DDMP selected in the ΔED generation unit 2103 to the WA bus as incremental data ΔED. RDSFA is a command for supplying the output data of the shifter in the shifter unit 2107 to the WA bus. RDEDL is a command for supplying envelope data EDL read from memory M (EDL) in the ED memory unit 2105 to the WB bus. RDMLP is an instruction for supplying the output data (upper 16 bits) of the multiplier in the multiplication unit 2106 to the WB bus. RDEDU is a command for supplying the envelope data EDU read from the memory M (EDU) in the ED memory unit 2105 to the WB bus. RDSFB is a register R in the shifter section 2107.
Data stored in (SFB) (f^(X i,n,o )/2 q )
instruction to supply the WB bus. RDOWD is a command for supplying the envelope-added waveform sample value read from the memory M (OWD) in the old waveform memory unit 2104 to the WB bus. WRMLP multiplies the data on the WC bus by the multiplication unit 21
Instruction to store in multiplicand register R (MLP1) in 06. WREDL is an instruction to store data on the WC bus in register R (EDL) in the ED memory unit 2105. WRSFT transfers data on the WC bus to the shifter section 2.
Instruction to store in register R (SFT) in 107.

【表】【table】

【表】 WREDUは、WCバス上のデータをEDメモリ
部2105内のレジスタR(EDU)に格納する命
令。 WROWDは、WCバス上のデータを旧波形デー
タメモリ部2104内のレジスタR(OWD)に
格納する命令。 WROBRは、WCバス上のデータをOBR210
9内のレジスタR(OWR)に格納する命令。 INVは、WAバス上のデータの論理を反転し、
反転したデータを演算部2108内のラツチAL
2402に供給する命令。 WADD1は、演算部2108内のFA2404
にキヤリ入力信号(+1)を供給する命令。 WCRALは、演算部2108内のラツチAL2
402をクリヤする命令。 SELWEは、乗算部2106内の乗算レジスタ
R(MLP2)に格納するデータ選択命令。選択デ
ータは、DRP808から供給されている係数デ
ータ(MLP)とEDメモリ部2105から供給さ
れているエンベロープデーダEDLである。 WRSFBは、シフタ部2107内のシフタの出
力データをシフタ部2107内のレジスタR
(SFB)に格納する命令。 TBCは、WBバス上のデータをWCバスに供給
する命令。 CRDASは、書き込みパルス発生部2110か
らアナログバツフアメモリ部812に供給してい
る書き込みパルスをリセツトする命令。 TCAは、演算部2108内のFA2404の出
力データをWAバスに供給する命令。 なお、第12表に示した、仮想キー信号EADG
がオン状態時は、演算部2108内のゲート選択
器2413によつてゲートE2412が選択さ
れ、エンベロープデータEDL、EDUはともにデ
ータ(0000)16となる。この結果、エンベロープ
付加波形サンプル値f^(Xi,n,o,q,r)=f^(Xi,n,o)と
なる
(q=0、r=0)。 そして、仮想キー信号EADGがオフ状態とな
ると、エンベロープデータEDの更新処理(ED=
ED+△ED)が開始する。この結果、(5)式に示し
たエンベロープ付加波形サンプル値を求める演算
処理が行なわれ、減衰特性の楽音波形が得られ
る。 また、エンベロープデータEDの更新処理が進
み、エンベロープデータEDUが(1111)2の状態
となると、エンベロープデータEDUの更新タイ
ミングで演算部2108内のゲートB2409が
選択され、エンベロープデータEDUは常時
(1111)2の状態となる。この状態は、楽音波形の
発音停止に相当する。 以上のように、波形内挿方法を(2)式に示したよ
うに、補正項を付加した内挿係数(Nm+n)
α/HNで実現しているため、波形間のレベル差
が大きくても不用なノイズ成分の発生を防ぐこと
ができる。 さらに、波形形状の変化が少ない所では、デー
タメモリ部に格納する波形データを少なくし、く
り返し数を大きくすることにより、データ圧縮が
可能となる。 さらに、アナログ信号に変換する変換部を、1
つのDACとアナログバツフアメモリ部とで構成
しているので、DACは1個だけでよく、チヤネ
ルごとに独立に動作するから、2チヤネルの音を
同時に鳴らしても、量子化ひずみによる混変調ひ
ずみの発生がなくなる。 さらに、波形の基本周波数に対してサンプリン
グ周波数を整数倍にしているので、発生する折り
返し成分や、量子化により生じるサンプル波成分
をすべて、基本周波数の高調波に一致させること
ができ、したがつてにごりのない音をつくること
ができる。 次に、楽音発生部607内の各部の相互関係に
ついて説明する。 まず、入力レジスタ部803について説明す
る。入力レジスタ部803は、CPU603から
供給されたI/Oポートアドレスデータと楽音発
生データあるいはサステインデータなどを一時格
納するレジスタR(ADD)、R(DAT)と、CPU
603から入力レジスタ部803に対して新デー
タを供給したことを指示する信号(CPU603
から供給されている信号・を利用する)
を記憶するフラグレジスタ(レジスタWRCFで、
指示する場合は“1”となる)と、レジスタR
(ADD)に格納されているアドレスを書き込みア
ドレス、シーケンサ802から供給されるチヤネ
ルコードCHCを読み出しアドレスとし、レジス
タR(DAT)に格納された楽音発生データを記憶
するレジスタフアイル(8チヤネル分の楽音発生
データを記憶し、容量は8ビツト×8語である)
と、レジスタR(ADD)のアドレスデータに基づ
いてサステインデータ、ダンパデータ、ビートデ
ータや効果制御データを記憶する効果レジスタ部
とで構成している。 レジスタR(DAT)に格納された新データをレ
ジスタフアイルあるいは効果レジスタ部にデータ
転送するタイミングは、レジスタWRCFが“1”
の状態で、シーケンサ802から信号WRDAT
が供給されると、レジスタR(ADD)に格納され
たI/Oポートアドレスに基づいた所定のアドレ
スにレジスタR(DAT)の格納データが転送され
る。その後、レジスタWRCFをリセツトする。 シーケンサ802から供給される信号
WRDATは、レジスタフアイルあるいは効果レ
ジスタ部へのデータ取り込み制御信号であり、第
9表、第11表、第13表に示した命令ステツプ1の
タイミングのたびに入力レジスタ部803に供給
される。 命令ステツプ1のタイミングで、レジスタフア
イルあるいは効果レジスタ部に新データを取り込
む理由は、FDP806、WDP807やDRP80
8の内部で各種演算処理を実行中に楽音発生デー
タの各種効果データが変化すると正しい演算処理
が行なわれない。そのため、演算処理を開始する
命令ステツプ1で取り込んでいる。 相互関係の説明 チヤネル1に対応する説明を行なう。なお、計
算要求フラグ信号CCRFが発生しているものとす
る。 シーケンサ802で発生しているチヤネルコ
ードCHCがチヤネル1のタイミングになると、
入力レジスタ部803内のレジスタフアイルか
らチヤネル1に対応する楽音発生データが
FDP806、WDP807、DRP808に供給
される。 そうすると、DRP808の詳細な説明の所
で述べたように、DRP808で楽音発生デー
タに基づいて、DBK606から先頭番地、制
御データ、波形データf(Xi,o)とf(Xi+1,o)を
読み取り、制御データに基づいて求めた係数デ
ータ(Nm+n)αとDBK606から読み取
つた波形データf(Xi,o)とf(Xi+1,o)とを命令
ステツプ11のタイミングでDRP808内のメ
モリM(MD)、メモリM(WD)、メモリM
(WD)に格納する。 一方、WDP807では、命令ステツプ1〜
10のタイミングの間、チヤネルコードCHCに
基づいてDRP808内のメモリM(MD)、メモ
リM(WD)、メモリM(MD)から読み出
されている係数データと波形データf(Xi,o-1
とf(Xi+1,o+1)を用いて、WDP807の詳細
な説明の所で述べたように、波形演算処理が行
なわれる。そして、命令ステツプ11のタイミン
グで、演算結果(差分波形サンプル値Df^
(Xi,n,o-1,q,r)がWDP807内のレジスタR
(OBR)に格納され、DAC811に格納され
る。 上述の〜の処理が、シーケンサ802から
発生しているチヤネルコードCHCのチヤネル1
に対応する命令ステツプ1〜11の同一タイミング
内で実行される。 そして、再びチヤネル1に対応するチヤネルコ
ードCHCがシーケンサ802から発生されると
下述の処理が行なわれる。 上述のの説明と同様に、チヤネル1に対応
する楽音発生データが、FDP806、WDP8
07、DRP808に供給される。 上述のの説明と同様に、DRP808で、
DBK606内に格納している先頭番地、制御
データ、波形データf(Xi,o+1)、f(Xi+1,n+o
が読み込まれ、メモリM(MD)、メモリM
(WD)、メモリM(WD)に格納される。 ただし、上述で説明した内容と異なる点
は、DBK606から読み取る制御データと波
形データは、上述のタイミング、すなわち前
回のチヤネル1の計算タイミングで更新された
波形ナンバi、波形サンプルナンバnに基づい
たデータとなる。 上述と同様に、DRP808内のメモリM
(MD)、メモリM(WD)、メモリM(WD)
から読み出されているデータに基づいて、波形
演算処理が行なわれる。 なお、今回の計算タイミングで波形演算処理
に用いるデータは、前回のチヤネル1の計算タ
イミングでDRP808内に読み込み処理を行
なつた係数データ、波形データf(Xi,o)、f
(Xi+1,o)である。 以後、計算要求フラグ信号CLRFに基づいて、
チヤネル1に対応する計算タイミングで、上述の
処理がくり返される。 上述の説明のように、DRP808で読み取つ
たデータは、次回に発生する計算タイミング(た
だし、計算要求フラグ信号CLRFが発生している
時)で、WDP807で行なう波形演算処理に利
用される。 このように、読み出し、波形演算処理を、同一
計算タイミング内ですべて実行せず、時間的に処
理タイミングを分け、パイプライン的処理を行な
うことにより、各部の構成要素の動作スピードを
低速化できる。 上述までの説明では、データメモリ(DBK)
に格納している波形データは、PCMデータの形
で波形一周期を枚数分格納していたが、波形対称
化、DPCM化、ADPCM化を行なつた結果を波
形データとしてDBKに格納し、DRP808の内
部で復元処理を行なうことにより、波形データの
データ圧縮が可能となる。 発明の効果 以上説明したように、本発明の楽音発生装置
は、楽音の発音開始から発音終了時までの複数個
の楽音波形のうち少なくとも2つ以上の楽音波形
と上記選択抽出した楽音波形を用いて合成波形を
形成する時に使用する制御データとを記憶するデ
ータメモリ部と、楽音音階を決定するノートクロ
ツク発生部と、上記ノートクロツク発生部の出力
信号に基づいて上記データメモリ部から2つの波
形サンプルデータと制御データとを読み出すデー
タ読み出し部と、エンベロープ信号を発生するエ
ンベロープ発生部と、上記データ読み出し部で読
み出した2つの波形サンプルデータと制御データ
と上記エンベロープ発生部の出力信号とを用いて
合成波形サンプルデータを求める波形計算部と、
上記波形計算部のデイジタル出力信号をアナログ
信号に変換する変換部とを具備し、楽音波形を発
生するように構成しているので、楽音波形の形状
を時間的に変化させることができ、自然楽器音を
模擬することが可能となる。 さらに、ピアノ型楽音の場合、仮想キーオン/
オフ信号を発生し、減衰エンベロープを形成し
て、エンベロープ包絡を付加することにより、膨
大な波形データがいらなくなり、データ圧縮が可
能となる。 さらに、波形の基本周波数に対してノートクロ
ツク発生部の出力信号であるサンプリング周波数
を整数倍とすれば、発生する折り返し成分や、量
子化により生じるサンプル波成分をすべて、基本
周波数の高調波に一致させることができ、にごり
のない音をつくることができる利点を有する。
[Table] WREDU is an instruction to store data on the WC bus in register R (EDU) in the ED memory unit 2105. WROWD is an instruction to store data on the WC bus in register R (OWD) in the old waveform data memory section 2104. WROBR transfers data on the WC bus to OBR210
Instruction to store in register R (OWR) in 9. INV inverts the logic of the data on the WA bus,
The inverted data is sent to the latch AL in the calculation unit 2108.
Instructions to supply to 2402. WADD1 is FA2404 in the calculation unit 2108
A command to supply a carry input signal (+1) to the WCRAL is the latch AL2 in the calculation unit 2108.
Command to clear 402. SELWE is a data selection instruction to be stored in the multiplication register R (MLP2) in the multiplication unit 2106. The selection data is coefficient data (MLP) supplied from the DRP 808 and envelope data EDL supplied from the ED memory unit 2105. WRSFB transfers the output data of the shifter in the shifter unit 2107 to the register R in the shifter unit 2107.
Instruction to store in (SFB). TBC is an instruction to supply data on the WB bus to the WC bus. CRDAS is a command for resetting the write pulse supplied from the write pulse generation section 2110 to the analog buffer memory section 812. TCA is an instruction for supplying output data of the FA 2404 in the calculation unit 2108 to the WA bus. Furthermore, the virtual key signal EADG shown in Table 12
When E2412 is in the on state, gate selector 2413 in arithmetic unit 2108 selects gate E2412, and both envelope data EDL and EDU become data (0000) 16 . As a result, the envelope-added waveform sample value f^(X i,n,o,q,r )=f^(X i,n,o ) (q=0, r=0). Then, when the virtual key signal EADG turns off, the envelope data ED is updated (ED=
ED+△ED) starts. As a result, arithmetic processing is performed to obtain the envelope-added waveform sample value shown in equation (5), and a musical sound waveform with a damping characteristic is obtained. Furthermore, when the envelope data ED update process progresses and the envelope data EDU becomes (1111) 2 , the gate B2409 in the calculation unit 2108 is selected at the envelope data EDU update timing, and the envelope data EDU is always (1111). It will be in state 2 . This state corresponds to the stop of sound generation of the musical sound waveform. As described above, the waveform interpolation method is expressed as the interpolation coefficient (Nm+n) with the correction term added, as shown in equation (2).
Since it is realized by α/HN, it is possible to prevent the generation of unnecessary noise components even if the level difference between waveforms is large. Furthermore, in areas where the waveform shape changes little, data compression becomes possible by reducing the amount of waveform data stored in the data memory section and increasing the number of repetitions. Furthermore, a converter for converting into an analog signal is installed.
Since it consists of two DACs and an analog buffer memory section, only one DAC is required, and each channel operates independently, so even if two channels of sound are played at the same time, there will be no cross-modulation distortion due to quantization distortion. will no longer occur. Furthermore, since the sampling frequency is an integral multiple of the fundamental frequency of the waveform, all folding components and sample wave components produced by quantization can be made to match harmonics of the fundamental frequency. You can create a clear sound. Next, the interrelationships between the various parts within the musical tone generating section 607 will be explained. First, the input register section 803 will be explained. The input register section 803 includes registers R (ADD) and R (DAT) that temporarily store I/O port address data, musical tone generation data, sustain data, etc. supplied from the CPU 603;
A signal indicating that new data has been supplied from the CPU 603 to the input register section 803
)
A flag register (register WRCF,
When instructing, it becomes “1”) and register R.
The address stored in (ADD) is used as the write address, the channel code CHC supplied from the sequencer 802 is used as the read address, and the register file (musical sounds for 8 channels) that stores the musical tone generation data stored in register R (DAT) Stores generated data and has a capacity of 8 bits x 8 words)
and an effect register section that stores sustain data, damper data, beat data, and effect control data based on the address data of register R (ADD). The timing for transferring new data stored in register R (DAT) to the register file or effect register section is when register WRCF is set to “1”.
In this state, the signal WRDAT is sent from the sequencer 802.
When supplied, the data stored in register R (DAT) is transferred to a predetermined address based on the I/O port address stored in register R (ADD). Then reset register WRCF. Signal supplied from sequencer 802
WRDAT is a data capture control signal to the register file or effect register section, and is supplied to the input register section 803 at each timing of instruction step 1 shown in Tables 9, 11, and 13. The reason why new data is imported into the register file or effect register at the timing of instruction step 1 is that FDP806, WDP807 and DRP80
If various effect data of the musical tone generation data change while various calculation processes are being executed within the 8, correct calculation processes will not be performed. Therefore, it is fetched at instruction step 1, which starts arithmetic processing. Explanation of mutual relationships An explanation corresponding to channel 1 will be given. Note that it is assumed that the calculation request flag signal CCRF is generated. When the channel code CHC generated by the sequencer 802 reaches the timing of channel 1,
The musical tone generation data corresponding to channel 1 is output from the register file in the input register section 803.
Supplied to FDP806, WDP807, and DRP808. Then, as mentioned in the detailed explanation of the DRP808, the DRP808 transfers the starting address, control data, waveform data f(X i,o ) and f(X i+1,o ) from the DBK606 based on the musical tone generation data. ), and the coefficient data (Nm+n)α obtained based on the control data and the waveform data f(X i,o ) and f(X i+1,o ) read from the DBK606 are sent to the DRP808 at the timing of instruction step 11. Memory M (MD), Memory M (WD), Memory M
(WD). On the other hand, in WDP807, instruction steps 1 to
During the timing of 10, the coefficient data and waveform data f(X i,o- 1 )
As described in the detailed explanation of the WDP 807, waveform calculation processing is performed using and f(X i+1,o+1 ). Then, at the timing of instruction step 11, the calculation result (difference waveform sample value Df^
(X i,n,o-1,q,r ) is register R in WDP807
(OBR) and DAC811. The processing of ~ above is performed on channel 1 of the channel code CHC generated from the sequencer 802.
Instruction steps 1 to 11 corresponding to the instruction steps 1 to 11 are executed within the same timing. Then, when the channel code CHC corresponding to channel 1 is generated again from the sequencer 802, the following processing is performed. Similar to the above explanation, the musical sound generation data corresponding to channel 1 is FDP806, WDP8
07, supplied to DRP808. Similar to the above explanation, with DRP808,
Starting address, control data, waveform data f(X i,o+1 ), f(X i+1,n+o ) stored in DBK606
is read, memory M (MD), memory M
(WD) and stored in memory M (WD). However, the difference from the content explained above is that the control data and waveform data read from the DBK606 are data based on the waveform number i and waveform sample number n that were updated at the timing described above, that is, at the previous calculation timing of channel 1. becomes. Similarly to the above, the memory M in the DRP808
(MD), Memory M (WD), Memory M (WD)
Waveform calculation processing is performed based on the data read from. Note that the data used for waveform calculation processing at this calculation timing are the coefficient data, waveform data f (X i,o ), and f that were read into the DRP 808 at the previous channel 1 calculation timing.
(X i+1,o ). After that, based on the calculation request flag signal CLRF,
The above process is repeated at the calculation timing corresponding to channel 1. As described above, the data read by the DRP 808 is used for waveform calculation processing performed by the WDP 807 at the next calculation timing (when the calculation request flag signal CLRF is generated). In this way, the operation speed of the components of each section can be reduced by not performing all the readout and waveform calculation processing within the same calculation timing, but by dividing the processing timing in terms of time and performing pipeline processing. In the above explanation, data memory (DBK)
The waveform data stored in the DRP808 was stored in the form of PCM data for one cycle of the waveform, but the results of waveform symmetry, DPCM, and ADPCM were stored in the DBK as waveform data, and the DRP808 Data compression of waveform data becomes possible by performing restoration processing within the . Effects of the Invention As explained above, the musical tone generating device of the present invention uses at least two musical sound waveforms out of a plurality of musical sound waveforms from the start of sound generation to the end of musical sound generation and the selectively extracted musical sound waveforms. a data memory section that stores control data used when forming a synthesized waveform, a note clock generator that determines a musical scale, and a note clock generator that generates two waveform sample data from the data memory section based on the output signal of the note clock generator. and control data, an envelope generating section that generates an envelope signal, and a synthesized waveform using the two waveform sample data read out by the data reading section, the control data, and the output signal of the envelope generating section. a waveform calculation section that calculates sample data;
It is equipped with a conversion section that converts the digital output signal of the waveform calculation section into an analog signal, and is configured to generate a musical sound waveform, so that the shape of the musical sound waveform can be changed over time, making it possible to change the shape of the musical sound waveform over time. It becomes possible to simulate sounds. Furthermore, in the case of piano-type musical tones, virtual key-on/
By generating an off signal, forming an attenuation envelope, and adding an envelope envelope, a huge amount of waveform data is no longer needed and data compression becomes possible. Furthermore, if the sampling frequency, which is the output signal of the note clock generator, is an integer multiple of the fundamental frequency of the waveform, all folding components and sample wave components produced by quantization will match the harmonics of the fundamental frequency. It has the advantage of being able to produce clear sound.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図〜第5図は本発明の動作説明図、第6図
は本発明の楽音発生装置を採用した電子楽器のブ
ロツク図、第7図はCPU603から楽音発生部
607にデータを供給する場合のタイムチヤート
図、第8図は楽音発生部607の構成図、第9図
はシーケンサ802の一具体例のブロツク図、第
10図はシーケンサ802の動作タイムチヤート
図、第11図はアナログバツフアメモリ部812
の一具体例の構成図、第12図は楽音発生部60
7の内部動作タイムチヤート図、第13図は
FDP806から比較レジスタ部805に供給す
る周波数データの推移図、第14図はFDP80
6の一具体例の構成図、第15図はFDP806
のデータ処理手順を示す処理流れ図、第16図は
比較レジスタ部805の一具体例を示す構成図、
第17図は計算要求フラグ発生部810の一具体
例を示す構成図、第18図はDBK606のデー
タ構成図、第19図はDRP808の一具体例を
示す構成図、第20図はWDP807の演算処理
の流れ図、第21図はWDP807の一具体例を
示す構成図、第22図はビブラート発生部140
3の一具体例を示す構成図、第23図は演算部1
913の一具体例を示す構成図、第24図は演算
部2108の一具体例を示す構成図である。 601……鍵盤部、602……操作部、603
……中央処理装置、604……RAM、605…
…ROM、606……楽音合成データROM、6
07……楽音発生部、801……主発振器、80
2……シーケンサ、803……入力レジスタ部、
804……タイマー、805……比較レジスタ
部、806……周波数データプロセツサ、807
……波形データプロセツサ、808……データリ
ードプロセツサ、809……読み出しパルス形成
部、810……計算要求フラグ発生部、811…
…DAC、812……アナログバツフアメモリ部、
813……積分器、2103……エンベロープ増
分発生部(△ED発生部)、2105……エンベロ
ープデータメモリ部(EDメモリ部)。
1 to 5 are explanatory diagrams of the operation of the present invention, FIG. 6 is a block diagram of an electronic musical instrument employing the musical tone generating device of the present invention, and FIG. 7 is a case in which data is supplied from the CPU 603 to the musical tone generating section 607. 8 is a block diagram of the musical tone generator 607, FIG. 9 is a block diagram of a specific example of the sequencer 802, FIG. 10 is an operation time chart of the sequencer 802, and FIG. 11 is a diagram of the analog buffer. Memory section 812
FIG. 12 is a configuration diagram of a specific example of the musical tone generating section 60.
7 internal operation time chart, Figure 13 is
A transition diagram of frequency data supplied from FDP806 to comparison register section 805, Fig. 14 shows FDP80
A configuration diagram of a specific example of 6, Figure 15 is FDP806
FIG. 16 is a block diagram showing a specific example of the comparison register section 805;
FIG. 17 is a configuration diagram showing a specific example of the calculation request flag generation unit 810, FIG. 18 is a data configuration diagram of the DBK 606, FIG. 19 is a configuration diagram showing a specific example of the DRP 808, and FIG. 20 is a calculation diagram of the WDP 807. Flowchart of processing, FIG. 21 is a configuration diagram showing a specific example of WDP807, FIG. 22 is a vibrato generation section 140
FIG. 23 is a configuration diagram showing a specific example of 3.
FIG. 24 is a configuration diagram showing a specific example of the calculation unit 2108. 601...Keyboard section, 602...Operation section, 603
...Central processing unit, 604...RAM, 605...
...ROM, 606...Musical tone synthesis data ROM, 6
07...Musical tone generator, 801...Main oscillator, 80
2...Sequencer, 803...Input register section,
804...Timer, 805...Comparison register section, 806...Frequency data processor, 807
... Waveform data processor, 808 ... Data read processor, 809 ... Read pulse forming section, 810 ... Calculation request flag generation section, 811 ...
...DAC, 812...Analog buffer memory section,
813... Integrator, 2103... Envelope increment generation section (ΔED generation section), 2105... Envelope data memory section (ED memory section).

Claims (1)

【特許請求の範囲】 1 楽音の発音開始から発音終了時までの複数個
の楽音波形のうち少なくとも2つ以上の楽音波形
と上記選択抽出した楽音波形を用いて合成波形を
形成する時に使用する制御データとを記憶するデ
ータメモリ部と、発音音階を決定するノートクロ
ツク発生部と、上記ノートクロツク発生部の出力
信号に基づいて上記データメモリ部から2つの波
形サンプルデータと制御データとを読み出すデー
タ読み出し部と、エンベロープ信号を発生するエ
ンベロープ発生部と、上記データ読み出し部で読
み出した2つの波形サンプルデータと制御データ
と上記エンベロープ発生部の出力信号とを用いて
合成波形サンプルデータを求める波形計算部と、
上記波形計算部のデイジタル出力信号をアナログ
信号に変換する変換部とを具備し、前記波形計算
部で実行する計算内容は、前記データ読み出し部
で読み出した2つの波形サンプルデータf
(Xi,o)、f(Xi+1,o)と、合成波形生成区間ごとに
用意されたf(Xi)からf(Xi+1)へ移行する合成
波形枚数をMiとする制御データとを用い、実質
的に次式に示す波形内挿演算を行ない、仮想サン
プル値f^(Xi,n,o)を求め、仮想サンプル値f^(Xi,n,o

と前記エンベロープ発生部の出力信号との演算を
行ない、楽音波形を発生するようにした楽音発生
装置。 f^(Xi,n,o)=〔f(Xi+1,o)−f(Xi,o
)〕×(Nm+n)/Mi・N+f(Xi,o) i=0、1、2、……I−1 波形ナンバ m=0、1、2、……Mi−1 くり返しナンバ n=0、1、2、……N−1 波形サンプル数 Nm+n=Mi・N時波形ナンバiを更新する。
[Claims] 1. Control used when forming a composite waveform using at least two or more musical sound waveforms out of a plurality of musical sound waveforms from the start of sound generation to the end of musical sound generation and the selected and extracted musical sound waveforms. a data memory section that stores data, a note clock generator that determines the tone to be played, and a data read section that reads two waveform sample data and control data from the data memory section based on the output signal of the note clock generator. , an envelope generation section that generates an envelope signal; a waveform calculation section that calculates composite waveform sample data using the two waveform sample data and control data read out by the data reading section and the output signal of the envelope generation section;
and a conversion section that converts the digital output signal of the waveform calculation section into an analog signal, and the content of the calculation executed by the waveform calculation section is based on the two waveform sample data f read out by the data reading section.
(X i,o ), f(X i + 1 ,o ), and M The virtual sample value f^(X i,n, o
)
and the output signal of the envelope generating section to generate a musical sound waveform. f^(X i,n,o )=[f(X i+1,o )−f(X i,o
)]×(Nm+n)/M i・N+f(X i,o ) i=0, 1, 2,...I-1 Waveform number m=0, 1, 2,...M i -1 Repetition number n= 0, 1, 2,...N-1 Number of waveform samples Nm+n=M i · When N, the waveform number i is updated.
JP58011860A 1983-01-26 1983-01-26 Musical sound generator Granted JPS59136791A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58011860A JPS59136791A (en) 1983-01-26 1983-01-26 Musical sound generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58011860A JPS59136791A (en) 1983-01-26 1983-01-26 Musical sound generator

Publications (2)

Publication Number Publication Date
JPS59136791A JPS59136791A (en) 1984-08-06
JPS6343759B2 true JPS6343759B2 (en) 1988-09-01

Family

ID=11789476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58011860A Granted JPS59136791A (en) 1983-01-26 1983-01-26 Musical sound generator

Country Status (1)

Country Link
JP (1) JPS59136791A (en)

Also Published As

Publication number Publication date
JPS59136791A (en) 1984-08-06

Similar Documents

Publication Publication Date Title
KR100366721B1 (en) Electronic Music Devices and Effectors
JPS6223319B2 (en)
JPH0367277B2 (en)
US4177706A (en) Digital real time music synthesizer
JPS6343760B2 (en)
JPS6343759B2 (en)
JPH0153800B2 (en)
JPS6229794B2 (en)
JPH0310959B2 (en)
US5687105A (en) Processing device performing plural operations for plural tones in response to readout of one program instruction
JPS5840199B2 (en) Denshigatsuki
JPH0631984B2 (en) Musical sound generator
JPS59136792A (en) Musical sound generator
JPH07325581A (en) Musical sound generation device
JPH0127434B2 (en)
JPS59136794A (en) Musical sound generator
JPS6352399B2 (en)
JPS59136793A (en) Musical sound generator
JPH0127435B2 (en)
JPH0127436B2 (en)
JPH0231396B2 (en)
JPS6335994B2 (en)
JPS59214091A (en) Note clock generator
JPS59220798A (en) Electronic musical instrument
JPS6033596A (en) Electronic musical instrument