JPS6343760B2 - - Google Patents

Info

Publication number
JPS6343760B2
JPS6343760B2 JP58011864A JP1186483A JPS6343760B2 JP S6343760 B2 JPS6343760 B2 JP S6343760B2 JP 58011864 A JP58011864 A JP 58011864A JP 1186483 A JP1186483 A JP 1186483A JP S6343760 B2 JPS6343760 B2 JP S6343760B2
Authority
JP
Japan
Prior art keywords
data
waveform
signal
register
bus
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
JP58011864A
Other languages
Japanese (ja)
Other versions
JPS59136795A (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 JP58011864A priority Critical patent/JPS59136795A/en
Publication of JPS59136795A publication Critical patent/JPS59136795A/en
Publication of JPS6343760B2 publication Critical patent/JPS6343760B2/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図
に離散的に抽出した楽音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回くり返
して推移するものとし、波形サンプル(Xi,o
と(Xi+1,o)との間に存在する仮想サンプル値^
(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,o)}×m+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. Structures of conventional examples and their problems Conventionally, methods using a sine wave synthesis method, methods using a frequency modulation method, methods using a subtraction method (mainly analog processing with VCO,
Those using VCF, VCA, etc. ) have been proposed, but these have had problems such as the circuit scale becoming large and making it difficult to realize, and the method having limitations. OBJECTS OF THE INVENTION It is an object of the present invention to provide a musical tone generating device that can simulate natural musical instrument sounds with a simple configuration and that can keep the musical tone rise time and waveform change time constant. 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 that stores multiple sets of control data used at different times;
a note clock generating section that determines a musical scale; a data reading section that reads out predetermined control data from two waveform sample data and a plurality of sets of control data from the data memory section based on the output signal of the note clock generating section; A waveform calculation section that calculates composite waveform sample data using the two waveform sample data and control data read out by the section, and a conversion section that converts the digital output signal of the waveform calculation section into an analog signal. It is configured to generate a musical sound waveform that is close to the sound of a natural instrument by changing the shape of the musical sound waveform over time, and furthermore, 1.
Even if the same waveform data within an octave is used, the rise time of a musical tone and the change time of a waveform can be made constant. 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 sound generation 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 waveform sample values obtained by dividing one period of the extracted I musical sound waveforms into N, that is, N×I waveform sample values, and control data used when generating musical tones (in the present invention, The control data for performing the insertion is stored in the data memory. 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 (X i,o )
The virtual sample value ^ that exists between and (X i+1,o )
This is an attempt to obtain an approximate value by virtually calculating a waveform sample value at a virtual sample point using (X i,n,o ) using an interpolation operation. 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 divided into I. This is the waveform number at the sample position extracted. (i=0, 1, 2, . . . , I-1) m represents a position in the middle of a repeating transition between waveform numbers i and i+1 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) FIG. 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,o )}×m+n/MN+f(X i,o )...(2) Regarding the envelope addition method Explanation There are two types of musical sounds: organ-type envelopes and piano-type envelopes. 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 C0 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. The method of connecting the data bus, address bus, and control lines in this way is suitable for minicomputers and microcomputers.

【表】【table】

【表】【table】

【表】 ンピユータを中心とした構成方法として公知のも
のである。データバスとしては8〜16本位用いら
れ、このバス線上をデータが一方向でなく多方向
に時分割的に送受信される。アドレスバスも複数
本たとえば16本用意され、通常はCPU603が
アドレスコードを出力し、他の部分がアドレスコ
ードを受け取る。コントロール線け通常メモリ・
リクエスト線()、I/Oリクエスト線
()、リード線()、ライト線()な
どが用いられる。 MREQはメモリを読み書きすることを示し、
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は音階周波数を指定するノ
[Table] This is a well-known configuration method centered on computers. 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. A plurality of address buses, for example 16, are also prepared, and normally the CPU 603 outputs the address code, and other parts receive the address code. Control line normal memory
A request line (), an I/O request line (), a read line (), a write line (), etc. are used. MREQ 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 of this is Zilog's microprocessor Z80. 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. Output the code that expresses the status of the switch,
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 a code 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 the IORQ signal 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 bits that specify the scale frequency.

【表】【table】

【表】 ートクロツク指定データである。ビツト位置D4
〜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はデイレイビブラートオン/オ
[Table] This is clock specification data. Bit position D4
~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 indicated 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, the signal is "0", and when it is on, the signal is "1". Bit position D1 is for delay vibrato on/off.

【表】【table】

【表】【table】

【表】 フ信号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チヤネル使
[Table] The off signal DVIB 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 designated 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.

【表】 (4音発生)となる。 第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が楽音合成データROM
606から所定のデータを読み出す。 また、入力レジスタ部803、比較レジスタ部
805、FDP806、WDP807、DRP80
8、計算要求フラグ発生部810はシーケンサ8
02によつて処理を行なう手順が決められてい
る。 CPPU603から所定のチヤネルたとえばチヤ
ネル1に楽音発生データが供給されると、シーケ
ンサ803で決められている所定のタイミングで
入力レジスタ部803からFDP806、WDP8
07、DRP808に楽音発生データが供給され
る。そうすると、DRP808において、楽音合
成データROM606から波形サンプルデータと
制御データを読み取る。そして、(2)式に示した
(Xi,o)をデータWDとし、(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では、次波形サン
プルすなわち、仮想サンプル点^(Xi,n,o+1)を求
めるための計算要求フラグを発生し保持する。そ
して、その後再び処理タイミングがチヤネル1と
なると、計算要求フラグが発生しているので前述
と同様に波形内挿処理が行なわれ、アナログバツ
フアメモリ部812内のコンデンサに電荷が蓄え
られる。以後、計算要求フラグに対応して波形内
挿処理が行なわれ、楽音波形を発生することにな
る。 なお、コンデンサに蓄える電荷は、^(Xi,n,o-1
と今回求めた波形サンプル値^(Xi,n,o)との差分
に相当する。そして、積分器813によつて今回
求めた波形サンプル値^(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が発生すると同時に信号OTC1
が発生し、アナログバツフアメモリ812内の
コンデンサC1の電荷が積分器813に供給さ
れる。信号OTCのパルス幅は2μs程度である。 …チヤネルコードが再び1となると、波形サン
プルデータなどの読み込み処理や波形内挿処理
や周波数データの更新処理などを行なう。 …チヤネル1の演算処理が終了すると、信号
DAC1が発生し、DAC811を介してコンデ
ンサC1に電荷が蓄えられる。 …チヤネル1の演算処理が終了すると、信号
CRF1をリセツトして計算要求を解除する。 …前述のと同様に、信号CRF1が再び発生
するタイミングで、前述ののタイミングでコ
ンデンサC1に蓄えられた電荷が積分器813
に供給される。 以後、上述と同時に、信号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/MCK =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は
バスラインで、1412がFAバス、1413が
FBバス、1414がFCバスである。 なお、ビートデータCBD、ビブラートデータ
CVD、グライドデータCGDもセント尺度で表わ
している。 各種データの構造 セントピツトデータ(CPD) 11ビツト構成で、上位4ビツトで12音階平均律
を表わし、下位7ビツトで半音階を128等分した
各点を表わしている。 ビートデータ(CBD)、ビブラートデータ
(CVD)、グライドデータ(CGD)
[Table] (4 sounds generated). 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 generating section that determines musical scales, and based on its output signal, DRP808, which is a data reading section, generates musical tone synthesis data ROM.
Predetermined data is read from 606. Also, input register section 803, comparison register section 805, FDP806, WDP807, DRP80
8. The calculation request flag generation unit 810 is the sequencer 8
02 determines the procedure for processing. 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, (X i,o ) shown in equation (2) is the data WD, and (X i+1,o ) is the data
Supplied to WDP807 as WD. moreover,
WDP807 uses the numerator term of the interpolation coefficient shown in equation (2) based on the read control data as data MLP.
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 section 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 generator 810. do. 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 generator 810 generates and holds a calculation request flag for determining the next waveform sample, that is, the virtual sample point ^(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 ^(X i,n,o-1 )
This corresponds to the difference between the waveform sample value ^(X i,n,o ) and the waveform sample value ^(X i,n,o ) obtained this time. Then, the waveform sample value ^(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 2.75μs.
Therefore, 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 and is applied to 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 generating section 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 is an integrator 813 that converts the charge stored in the capacitor in the analog buffer memory 812.
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 channel code generated by the sequencer 802, 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. ...Signal OTC1 is generated at the same time as signal CRF1 is generated.
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 arithmetic processing of channel 1 is completed, the signal
DAC1 is generated and charge is stored in capacitor C1 via DAC811. ...When the arithmetic processing of channel 1 is completed, the signal
Reset CRF1 and cancel the calculation request. ...Similarly to the above, at the timing when the signal CRF1 is generated again, the charge stored in the capacitor C1 at the above timing is transferred to the integrator 813.
is supplied to Thereafter, at the same time 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 generation timing of the signal CRF, that is, with the scale synchronization. Ru. 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 the frequency code 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 / 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 glide 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 is FA bus, 1413 is bus line.
The FB bus and 1414 are the FC bus. In addition, beat data CBD, vibrato data
CVD and Glide Data CGD are also expressed in cents. Structure of various data Center pit data (CPD) Consisting of 11 bits, the upper 4 bits represent the 12-tone equal temperament scale, 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)

【表】 各ビツト構成は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セント間隔に
対する16×128=1920点の差分周波数データを記
憶している。 第15図はFDP806のデータ処理手順を示
す処理流れ図であり、下記に示す演算処理を行な
つて旧周波数データ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バスに供給する
命令。 RDEXPは、指数変換器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チヤネル
に使用するビートデータCBDを強制的に(00)16
とし、5チヤネル〜8チヤネルに使用するビート
データCBDをCPU603から供給されたビート
データを用いることにより、ビート効果を発生す
ることができる。 以上のように、複数の比較器を用い、比較デー
タを演算処理して求めるようにしているので、高
速動作の分周器を複数個(チヤネル数分)並列に
設ける必要がなく、回路規模が小さくできる。
[Table] Each bit structure is 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 vibrato data 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 are turned off and any one of the key-on/off signals KD is turned 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 subjected to addition processing 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. Also, 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 is on. This is similar to the well-known glide effect. In other words, 8 channel key-on/
When the key-on/off signal KD of any one channel turns on from all off signals KD, 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 16×128=1920 points at intervals of 0.78 cents. Figure 15 is a processing flowchart showing the data processing procedure of FDP806, 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 command steps shown in Table 9, the processing 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 with a falling edge. 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 latch AL with signal φ2 being “1”. ADD1 is a command to add “1” to the carry input of FA1409. TCA uses the results of calculation processing with FA1409.
Instructions to feed the FA bus. RDCPD is a command for supplying set 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. RDEXP 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. Then, force the beat data CBD used for channels 1 to 4 (00) 16
By using the beat data supplied from the CPU 603 as the beat data CBD used for channels 5 to 8, a beat effect can be generated. 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.

【表】【table】

【表】 さらに、信号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とレジスタ
FDR1〜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の立下りエツヂでDFF172
1にセレクタ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の一具体例を示す構成
図である。図中、1901は楽音合成データ
ROM(DBK)606から所定の合成データを読
み出すアドレスデータを格納するDBKアドレス
レジスタ、1902は楽音合成データROM
(DBK)606から合成データをDRP808の
内部に取り込むDBK入力バツフア、1903は
DBK606に格納している先頭アドレスを読み
取るためのアドレスデータを出力する参照先頭ア
ドレスゲート、1904は(Xi,n)に相当する
波形サンプルに値を格納する波形データメモリ
、1905は(Xi+1,o
[Table] Furthermore, using the 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 from timer 804 and registers
Frequency data stored in FDR1 to FDR8
A comparison is made with the FD, and if a match is detected, it is output as match signals NC1 to NC8. FIG. 17 is a configuration diagram showing a specific example of the calculation request flag generator 810. In the figure, 1701-17
10 is a NAND gate, 1711 is a decoder, 1
712 to 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 172 is activated at the falling edge of the signal φ2.
1, the calculation request signal selected by the 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, eliminating the need to obtain 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. If the repetition number designation 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 to 3...C, C#, D sound Bit positions 4 to 7...D#, E, F sound Bit positions 8 to 11...F#, G, G# sound Bit positions 12 to 15...A, A#, B sound Like this By doing so, the control data can be set differently depending on the scale, and even if the same waveform data within one octave is used, it is possible to keep the rise time of the musical tone and the change time of the waveform shape constant. . Waveform data is PCM with 16 bits per word.
It is data. FIG. 19 is a configuration diagram showing a specific example of the DRP 808. In the figure, 1901 is musical tone synthesis data
DBK address register stores address data for reading predetermined synthesis data from ROM (DBK) 606; 1902 is musical tone synthesis data ROM
(DBK) 1903 is a DBK input buffer that imports synthetic data from 606 into DRP808.
A reference start address gate outputs address data for reading the start address stored in the DBK 606, 1904 is a waveform data memory that stores a value in a waveform sample corresponding to (X i,n ), and 1905 is a (X i+ 1,o

【表】 )に相当する波形サンプル値を格納する波形デー
タメモリ、1906は内挿係数の分子に相当す
る(Nm+n)αを格納する係数データメモリ、
1907は先頭アドレスレジスタ、1908は内
挿係数の(Nm+n)α項の増分値αを生成する
増分生成部、1909は波形1周期内のサンプル
ナンバnを格納する波形サンプルナンバメモリ、
1910は波形ナンバiを格納する波形ナンバメ
モリ、1910は波フセツトデータゲート、19
12は累積レジスタ(ACC)、1913はフルア
ダー、ラツチ、やキヤリフラグレジスタなどで構
成している演算部、1914は演算部1913内
のラツチALにデータを供給するDAバス、19
15は演算部1913内のラツチBLにデータを
供給するDBバス、1916は演算部1913で
行なう演算結果を各レジスタに供給する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から読み
取つた制御データを信号WRRFPによつて一時格
納するレジスタ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)を演算部1913で
行ない、加算結果をDBKアドレスレジスタ1
901に格納し、DBK606からくり返し数
指定データを読み取り、増分生成部1908の
レジスタR(REP)に格納する。 波形サンプル(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アドレスレジスタ1
901に格納し、DBK606から(Xi,o)に
相当する波形サンプルデータを読み取り波形メ
モリI1904内のレジスタR(WD)に格
納する。 波形サンプル(Xi+1,o)の読み取り処理。 ACC1912に格納したアドレスデータ
WAD1″と波形サンプル数指定データSDで指定
している波形サンプル数NWS(波形ナンバメモ
リ1910内で発生)との加算処理(WAD2
=WAD1″+NWS)を演算部1913で行ない
加算結果をDBKアドレスレジスタ1901に
格納し、DBK606から(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する。この結果、波形サンプル
(Xi+1,o)を読み込むためのDBK606のアド
レスデータは波形サンプル(Xi,o)を読み込
んだアドレスデータと等しくなる。 上述、の設定によつて、最終波形データと
なると、実質的に波形内挿処理を行なわず、最終
波形データをくり返し使用することになる。 第11表に示した信号についての説明 下述する信号はシーケンサ802から供給され
る。
[Table] 1906 is a waveform data memory that stores waveform sample values corresponding to ), 1906 is a coefficient data memory that stores (Nm+n)α corresponding to the numerator of the interpolation coefficient,
1907 is a start address register; 1908 is an increment generation unit that generates an increment value α of the (Nm+n) α term of the interpolation coefficient; 1909 is a waveform sample number memory that stores sample number n within one cycle of the waveform;
1910 is a waveform number memory that stores the waveform number i; 1910 is a wave offset data gate; 19
12 is an accumulation register (ACC); 1913 is an arithmetic unit consisting of a full adder, latch, and carry flag register; 1914 is a DA bus that supplies data to the latch AL in the arithmetic unit 1913;
15 is a DB bus that supplies data to the latch BL in the calculation unit 1913; 1916 is a DC bus that supplies the calculation results performed in the calculation unit 1913 to each register;
1917 supplies the output of the DBK input buffer 1902 to the waveform data memory 1904, etc.
It is a DBK bus. 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 the waveform data read from the DBK 606 by signals WRWD and WRWD in the control data supplied from the sequencer 802, respectively.
(WD), and a 16-bit x 8-word memory M (WD), which stores waveform data for 8 channels.
(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 start address read from 6 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 using a signal WRRFP, 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
The output data (waveform number) of (WND) is shifted (i x number of samples) based on the waveform sample number designation data SD supplied from the input register section 803, and the waveform number address WNA
a shifter section that outputs the data, a gate 1 that supplies the output data of the memory to the DB bus using the signal RDWND, a gate 2 that supplies the output data of the shifter section to the DB bus using the signal RDWNA, and a gate 2 that supplies the output data of the shifter section to the DB bus using the signal RDWNA. A sample number generator that generates sample number data corresponding to data SD, and a signal
It consists of a gate 3 which supplies the output data of the sample number generator to the DB bus by RDNWS. 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 falling edge of the signal φ2;
Cleared by signal DCRAL. 2302 is the signal φ
A latch BL stores the contents of the DB bus on the falling edge of 2; 2303 is a 16-bit adder (FA) with 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 the 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 arithmetic unit 1913 performs addition processing (TAD+i) between the read start address data TAD and the waveform number i stored in the waveform number memory 1910, and the addition result is stored in the DBK address register 1.
901 , reads the repetition number designation data from the DBK 606 , and stores it in the register R (REP) of the increment generation unit 1908 . Reading processing of waveform samples (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) is performed in the calculation unit 1913 (WAD1″=WAD1′+i×number of samples), and the addition result is sent to the ACC 1912 and the DBK address register 1.
The waveform sample data corresponding to (X i,o ) is read from the DBK 606 and stored in the register R (WD) in the waveform memory I 1904 . Reading processing of waveform samples (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 calculation unit 1913, store the addition result in the DBK address register 1901, read the waveform sample data corresponding to (X i+1,o ) from the DBK 606, and register R (WD) in the waveform memory 1905. 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) in 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 for various data stored in R(WD) and R(WD) to the respective memory areas 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". 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 unit 2308 in the calculation unit 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 WEF.
If so, 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 arithmetic unit 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 address data of the DBK 606 for reading the waveform sample (X i+1,o ) becomes equal to the address data for reading the waveform sample (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. Description 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種類の
演算がある。 波形内挿演算を行なつて仮想波形サンプル値
^(Xi,n,o)を求める。 仮想波形サンプル値^(Xi,n,o)とエンベロー
プデータEDとの乗算を行ない、エンベロープ
付加波形サンプル値^(Xi,n,o,q,r)を求める。 前回求めたエンベロープ付加波形サンプル値
旧^(Xi,n,o,q,r)と今回求めたエンベロープ付加
波形サンプル値新^(Xi,n,o,q,r)との差分演算を
行なつて差分波形サンプル値D(Xi,n,o,q,r)を
求める。 エンベロープデータEDの更新を行なう。 次に、エンベロープデータEDとエンベロープ
付加方法について説明する。 エンベロープデータEDは20ビツトで構成され
ている。上位4ビツトをEDU(Q)、下位16ビツ
トをEDL(R)とする。 エンベロープデータEDの更新方法は、新ED=
旧ED+△EDという演算処理を行なつて求める。
増分エンベロープデータ△EDは、CPU603か
ら入力レジスタ部803に供給されたサステイン
データDSUSあるいは、ダンパーデータDDMP
を使用する。サステインデータ、ダンパーデータ
の選択は、オルガン型エンベロープ、ピアノ型エ
ンベロープおよびキーオン/オフ信号に基づいて
使い分けを行なう。 エンベロープ付加波形サンプル値を求める演算
式を下式に示す。 ^(Xi,n,o,q,r)=^(Xi,n,o)/2q −1/2q+1 r/R・^(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は旧波
形サンプル値^(Xi,n,o,q,r)を記憶している旧波形
データメモリ部、2105はエンベロープデータ
EDを記憶しておくエンベロープデータメモリ部
(EDメモリ部)2106は乗算部、2107は(5)
式に示した1/2qあるいは1/2q+1の演算を行なうシ
フタ部、2108はフルアダー、ラツチやキヤリ
ーフラグレジスタなどで構成している演算部、2
109は差分波形サンプル値D^(Xi,n,o,q,r)を格
納するアウトプツトバツフアレジスタ(OBR)
2110はアナログバツフアメモリ部812内の
アナログスイツチ1103〜1107(コンデン
サC1〜C8に電荷を蓄えるためのスイツチ)(第1
1図)のオン/オフを制御する書き込みパルス発
生部、2111は演算部2018内のラツチAL
にデータを供給するWAバス、2112は演算部
2108内のラツチBLにデータを供給するWB
バス、2013は演算部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チヤネル分のエンベ
ロープ付加波形サンプル値^(Xi,n,o,q,r)を記憶す
る16ビツト×8語のメモリM(OWD)と、メモ
リM(OWD)の出力データを信号RDOWDによ
つてWBバスに供給するゲートとで構成してい
る。通常メモリM(OWD)は読み出し状態とな
つており、シーケンサ802から供給されている
チヤネルコードCHCに基づいたアドレスのエン
ベロープ付加波形サンプル値を上述のゲートに供
給している。そして、信号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語である。通常
[Table] RDOSD supplies 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 the waveform number address generated in the shifter section in the waveform number memory 1910.
Instruction to supply WNA to 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
Interface processing between the data memory and the DRP 808 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 ^(X i,n,o ). The virtual waveform sample value ^(X i,n,o ) is multiplied by the envelope data ED to obtain the envelope-added waveform sample value ^(X i,n,o,q,r ). Calculate the difference between the previous envelope-added waveform sample value old^(X i,n,o,q,r ) and the envelope-added waveform sample value new^(X i,n,o,q,r ) found this time. Then, the difference waveform sample value D(X i,n,o,q,r ) is obtained. 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. ^(X i,n,o,q,r )=^(X i,n,o )/2 q −1/2 q+1 r/R・^(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 old waveform sample values ^(X i,n,o,q,r ). old waveform data memory section, 2105 is envelope data
Envelope data memory section (ED memory section) 2106 for storing ED is a multiplication section, and 2107 is (5)
2108 is a shifter section that performs the operation of 1/2 q or 1/2 q+1 shown in the formula; 2108 is an operation section consisting of a full adder, latch, carry flag register, etc.;
109 is an output buffer register (OBR) that stores the differential waveform sample value D^(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 2018.
2112 is the WB bus that supplies data to the latch BL in the calculation unit 2108.
A bus 2013 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 becomes “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 a register R (OWD) that temporarily stores the calculation result of 08 by the signal WROWD supplied from the sequencer 802, and the envelope added waveform sample value ^ (X i,n,o,q,r ), and a gate that supplies the output data of the memory M (OWD) to the WB bus in response to a signal RDOWD. Normally, the memory M (OWD) is in a read state and supplies the envelope-added waveform sample value of the address based on the channel code CHC supplied from the sequencer 802 to the above-mentioned gate. The signal WRRAM then puts the memory M (OWD) into the write state, and the data stored in the register R (OWD) is transferred to the memory M.
(OWD). The ED memory unit 2104 includes registers R (EDL) and R (EDU) that store the calculation results of the calculation unit 2108 by 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. usually

【表】 メモリM(EDL),M(EDU)は読み出し状態とな
つており、チヤネルコードCHCに基づいたアド
レスのエンベロープデータEDが読み出され、上
述のゲートL、ゲートUにそれぞれ供給される。
また、信号EDUは乗算部2106に、信号EDL
はシフタ部2107に供給されている。 そして、信号WRRAMによつてメモリM
(EDL),M(EDU)は書き込み状態となり、レジ
スタR(EDL),R(EDU)に格納しているデータ
がメモリM(EDL),M(EDU)に書き込まれる。 乗算部2106は、波形データを信号
WRMLPによつて一時格納するレジスタR(MLP
1と、信号SELWE=“0”の時DRP808から
供給されている係数データMLPを一時格納し、
信号SELWE=“1”の時EDメモリ部2105か
ら供給されているエンベロープデータEDLを一
時格納するレジスタR(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が供給される。すなわち、エンベロープ
データEDI、EDLをともに(0000)16と設定する
ことになる。この結果、エンベロープ付加波形サ
ンプル値^(Xi,n,o,q,r)=^(Xi,n,o)となる。 また、FA2404の出力信号(ビツト位置4)
が“1”でかつ信号WREDUが供給されるとゲ
ートB2409が選択されWCバスにデータ
(FFFF)16が供給される。すなわち、エンベロー
プデータEDIを常時(F)16と設定することにな
る。 上述以外の状態では、ゲートD2411が選択
され、FA2404の出力データがWCバスに供
給される。 なお、旧波形データメモリ部2105、EDメ
モリ部2106に供給されている信号WRRAN
は、DRP808で説明した信号WRRAMと同一
のものである。WDP807もDRP808、FDP
806と同様にシーケンサ802から供給される
制御信号に基づいて下述する演算処理を行ない、
上述した〜の処理内容を実現するようになつ
ている。 仮想波形サンプル値(Xi,n,o)を求める。 信号RDWD,RDWD(命令ステツプ2
に対応)によつてDRP808から供給されて
いる波形サンプル値(Xi,o)と(Xi+1,o)を
WAバス、WBバスに供給し、演算部2108
のラツチAL、BLに信号φ2立下りエツヂで波
形サンプル値を格納する。この時演算部210
8に加えられる信号INVによつてラツチALに
格納されるデータは反転データ、すなわち
(Xi,o)となる。 そして、ラツチAL2402、ラツチBL24
03に格納されたデータを用いて演算部210
8で加算処理〔(i,o)+(Xi+1,o)+1〕、す
なわち〔(Xi-1,o)−(Xi,o)〕が実行され、演
算結果がWCバスに出力され、信号WRMLPに
よつて乗算部2106内の被乗数レジスタR
(MLP1)に信号φ2の立上りエツヂで書き込
まれるとともに、DRP808から供給されて
いる内挿係数(Nm+n)αが乗数レジスタR
(MLP2)に格納される。 そうすると乗算部2106内で 〔(Xi+1,o)−(Xi,L)〕×(Nm+n)α の乗算が実行される。乗算結果は命令ステツプ
4の終了までに正しい値になるものとする。次
に信号RDWDによつて矩形サンプル値
(Xi,o)をWAバスに、信号RDMLPによつて乗
算結果をWBバスに供給し、信号φ2の立下り
エツヂでラツチAL、BLにそれぞれのデータを
格納する(命令ステツプ5に対応)。なお、乗
算結果は乗算器の上位16ビツトを利用してい
る。これは、1/216処理と等価なものである。 演算部2108で加算処理を実行することに
より、(2)式で表わした仮想波形サンプル値
(Xi,n,o)が求められる。 エンベロープデータ付加波形サンプル値^
(Xi,n,o,q,r)を求める。 仮想波形サンプル値^(Xi,n,o)を、信号
WRMLP、信号WRSFT(命令ステツプ6に対
応)によつて、乗算部2106内の被乗数レジ
スタR(MLP1)とシフタ部2107内のレジ
スタR(SFT)に信号φ2の立上りエツヂで格
納する。また、EDメモリ部2105から乗算
部2106に供給しているエンベロープデータ
EDLを信号SELWE(命令ステツプ6に対応)
によつて乗算部2106内の乗数レジスタR
(MLP2)に格納し、乗算処理〔^(Xi,n,o)×
r〕を実行する。 一方、シフタ部2107内のレジスタR
(SFT)に格納した仮想波形サンプル値^
(Xi,n,o)をEDメモリ部2105からシフタ部
2107に供給されているエンベロープデータ
EDU(Q)に基づいて、シフト操作〔^
(Xi,n,o)/2q〕を行ない、信号WRSFB(命令ス
テツプ7に対応)によつて、シフタ部2107
内の出力レジスタR(SFB)に格納する。 そして、乗算部2106で行なつた乗算結果
を、信号TBC、信号WRSFT(命令ステツプ8
に対応)によつてシフタ部2107内のレジス
タR(SFT)に格納し、エンベロープデータ
EDU(Q)に基づいたシフト操作行なう。 信号RDSFA,RDSFB(命令ステツプ9に対
応)によつて、シフタ部2107内の出力レジ
スタR(SFB)に格納してあるデータ〔
(Xi,n,o)/2q〕を演算部2108内のラツチ
BLに、シフタ部2107のシフト結果データ
1/2q+1・r/216・^(Xi,n,o)〕を信号INVによつ
て論 理反転し、演算部2108内のラツチALにそ
れぞれ格納する。 そして、演算部2108で加算処理を実行す
ることにより、エンベロープ付加波形サンプル
値^(Xi,n,o,q,r)が求められる。 差分波形サンプル値D(Xi,n,o,q,r)を求める。 エンベロープ付加波形サンプル値^(Xi,n,o,q,r
を信号WROWDによつて旧波形メモリ部21
04内のレジスタR(OWD)に格納するとと
もに、信号TCAによつて、FA2404の出力
データをWAバスに供給し、信号INVによつて
論理反転を行ない、演算部2108内のラツチ
ALに格納する。また、信号RDOWDによつ
て、旧エンベロープ付加波形サンプル値を旧波
形メモリ部2104から読み出し、演算部21
08内のラツチBLに格納する。 そして、演算部2108で加算処理を実行す
ることにより、差分波形サンプル値D^
(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)
に差分波形サンプル値D^(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バスに供
給する命令。
[Table] Memories M (EDL) and M (EDU) are in a read state, and envelope data ED at an address based on the channel code CHC is read out and supplied to the gates L and U, respectively.
Further, the signal EDU is sent to the multiplier 2106, and the signal EDL
is supplied to the shifter section 2107. and the memory M by the signal WRRAM.
(EDL) 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 (MLP) temporarily stored by WRMLP
1, and temporarily stores the coefficient data MLP supplied from the DRP808 when the signal SELWE="0",
When the signal SELWE="1", the register R (MLP2) that temporarily stores the envelope data EDL supplied from the ED memory unit 2105 and the register R
A 16-bit x 16-bit = 32-bit multiplier in which the data stored in (MLP1) is the multiplicand (two's complement representation) and the data stored in register R (MLP2) is the multiplier (absolute value representation). , signal RDMLP
It consists of a gate that supplies the upper 16 bits of the multiplication result of the multiplier to the WB bus. 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 that performs a shift operation (R(SFT)/2 q ; q = 0, 1, 2, ..., 2 4 -1) based on the signal WRSFA, and a register R (SFA) that temporarily stores the output data of the shifter using the signal WRSFA. and a signal
A gate A that supplies data stored in register R (SFA) by RDSFA to the WA bus, and a signal
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 falling 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 the data on the WB bus at the falling 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 EDI and EDL are both set to (0000) 16 . As a result, the envelope-added waveform sample value ^(X i,n,o,q,r )=^(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. That is, the envelope data EDI 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. WDP807 also DRP808, FDP
Similarly to 806, the following arithmetic processing is performed based on the control signal supplied from the sequencer 802,
The above-mentioned processing contents are realized. Find the virtual waveform sample value (X i,n,o ). Signals RDWD, RDWD (instruction step 2
The waveform sample values (X i,o ) and (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, addition processing [( i,o ) + (X i+1,o ) + 1], that is, [(X i-1,o ) - (X i,o )] is executed, and the calculation result is transferred to the WC bus. The multiplicand register R in the multiplier 2106 is output by the signal WRMLP.
(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 [(X i+1,o )−(X i,L )]×(Nm+n)α is executed in the multiplication unit 2106. It is assumed that the multiplication result becomes a correct value by the end of instruction step 4. Next, the rectangular sample value (X i,o ) is supplied to the WA bus by the signal RDWD, the multiplication result is supplied to the WB bus by the signal RDMLP, and the respective data are sent to the latches AL and BL at the falling edge of the signal φ2. (corresponds 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 the addition process in the calculation unit 2108, the virtual waveform sample value (X i,n,o ) expressed by equation (2) is obtained. Waveform sample value with envelope data^
Find (X i,n,o,q,r ). The virtual waveform sample value ^(X i,n,o ) is defined as the signal
WRMLP and signal WRSFT (corresponding to instruction step 6) are used to store the multiplicand register R (MLP1) in the multiplier section 2106 and the register R (SFT) in the shifter section 2107 at the rising edge of the signal φ2. In addition, envelope data supplied from the ED memory unit 2105 to the multiplication unit 2106
EDL signal SELWE (corresponds to instruction step 6)
The multiplier register R in the multiplier 2106 is
(MLP2) and multiplication process [^(X i,n,o ) ×
r]. On the other hand, the register R in the shifter section 2107
Virtual waveform sample value stored in (SFT)^
(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 [^
(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 stored in the output register R (SFB) in the shifter section 2107 is controlled by the signals RDSFA and RDSFB (corresponding to instruction step 9).
(X i,n,o )/2 q ] by the latch in the calculation unit 2108
BL, the shift result data 1/2 q+1・r/2 16・^(X i,n,o )] of the shifter section 2107 is logically inverted by the signal INV, and is sent to the latch AL in the calculation section 2108. Store each. Then, the envelope added waveform sample value ^(X i,n,o,q,r ) is obtained by executing the addition process in the arithmetic unit 2108. Find the difference waveform sample value D (X i,n,o,q,r ). Envelope added waveform sample value^(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 by the signal TCA, and the logic is inverted by 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 D^
(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. Updated envelope data ED. By signals RDEDL and RD△ED (corresponding to instruction step 3), envelope data ED is transferred from the ED memory unit 2105 to the △ED generation unit 2103.
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 data to 11 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 D^(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 now be explained. The signals 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は、シフタ部2107内のシフタの出
力データをWAバスに供給する命令。 RDEDLは、EDメモリ部2105内のメモリ
M(EDL)から読み出されているエンベロープデ
ータEDLをWBバスに供給する命令。 RDMLPは、乗算部2106内の乗算器の出力
データ(上位16ビツト)をWBバスに供給する命
令。 RDEDUは、EDメモリ部2105内のメモリ
M(EDU)から読み出されているエンベロープデ
ータEDUをWBバスに供給する命令。 RDSFBは、シフタ部2107内のレジスタR
(SFB)に格納しているデータ(^(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)に格納する命令。 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となる。この結果、エンベロープ
付加波形サンプル値^(Xi,n,o,q,r)=^(Xi,n,o
とな
る(q=0、γ=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のタイミングでレジスタフアイ
ルあるいは効果レジスタ部に新データを取り込む
理由は、EDP806、WDP807やDRP808
の内部で各種演算処理を実行中に楽音発生データ
や各種効果データが変化すると正しい演算処理が
行なわれない。そのため、演算処理を開始する命
令ステツプ1で取り込んでいる。 相互関係の説明 チヤネル1に対応する説明を行なう。なお、計
算要求フラグ信号CCRFが発生しているものとす
る。 シーケンサ802で発生しているチヤネルコ
ードCHCがチヤネル1のタイミングになると、
入力レジスタ部803内のレジスタフアイルか
らチヤネル1に対応する楽音発生データが
FDP806、WDP807、DRP808に供給
される。 そうすると、DRP808の詳細な説明の所
で述べたように、DRP808で楽音発生デー
タに基づいて、DBK606から先頭番地、制
御データ、波形データ(Xi,o)と(Xi+1,o)を
読み取り、制御データに基づいて求めた係数デ
ータ(Nm+n)αとDBK606から読み取
つた波形データ(Xi,o)と(Xi+1,o)とを命令
ステツプ11のタイミングでDRP808内のメ
モリM(MD)、メモリM(WD)、メモリM
(WD)に格納する。 一方、WDP807では、命令ステツプ1〜
10のタイミングの間、チヤネルコードCHCに
基づいてDRP808内のメモリM(MD)メモ
リM(WD)、メモリM(WD)から読み出
されている係数データと波形データ(Xi,o-1
と(Xi+1,o-1)を用いて、WDP807の詳細
な説明の所で述べたように、波形演算処理が行
なわれる。そして、命令ステツプ11のタイミン
グで、演算結果(差分波形サンプル値D^
(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内に格納している先頭番地、制御
データ、波形データ(Xi,o+1)、(Xi+1)、
(Xi+1,n+o)が読み込まれ、メモリM(MD)、メ
モリM(WD)、メモリM(WD)に格納さ
れる。 ただし、上述で説明した内容と異なる点
は、DBK606から読み取る制御データと波
形データは、上述のタイミング、すなわち前
回のチヤネル1の計算タイミングで更新された
波形ナンバi、波形サンプルナンバnに基づい
たデータとなる。 上述と同様に、DRP808内のメモリM
(MD)、メモリM(WD)、メモリM(WD)
から続み出されているデータに基づいて、波形
演算処理が行なわれる。 なお、今回の計算タイミングで波形演算処理
に用いるデータは、前回のチヤネル1の計算タ
イミングでDRP808内に読み込み処理を行
なつた係数データ、波形データ(Xi,o)、
(Xi+1,o)である。 以後、計算要求フラグ信号CLRFに基づいて、
チヤネル1に対応する計算タイミングで、上述の
処理がくり返される。 上述の説明のように、DRP808で読み取つ
たデータは、次回に発生する計算タイミング(た
だし、計算要求フラグ信号CLRFが発生している
時)で、WDP807で行なう波形演算処理に利
用される。 このように、読み出し、波形演算処理を、同一
計算タイミング内ですべて実行せず、時間的に処
理タイミングを分け、パイプライン的処理を行な
うことにより、各部の構成要素の動作スピードを
低速化できる。 上述までの説明では、データメモリ(DBK)
に格納している波形データは、PCMデータの形
で波形一周期を枚数分格納していたが、波形対称
化、DPCM化、ADPCM化を行なつた結果を波
形データとしてDBKに格納し、DRP808の内
部で復元処理を行なうことにより、波形データの
データ圧縮が可能となる。 発明の効果 以上説明したように、本発明の楽音発生装置
は、楽音の発音開始から発音終了時までの複数個
の楽音波形のうち少なくとも2つ以上の楽音波形
と上記選択抽出した楽音波形を用いて合成波形を
形成する時に使用する複数組の制御データを記憶
するデータメモリ部と、楽音音階を決定するノー
トクロツク発生部と、上記ノートクロツク発生部
の出力信号に基づいて上記データメモリ部から2
つの波形サンプルデータと複数組の制御データか
ら所定の制御データを読み出すデータ読み出し部
と、上記読み出し部で読み出した2つの波形サン
プルデータと制御データとを用いて合成波形サン
プルデータを求める波形計算部と、上記波形計算
部のデイジタル出力信号をアナログ信号に変換す
る変換部とを具備し、楽音波形を発生するように
構成しているので、楽音波形の形状を時間的に変
化させることができ、自然楽器音を模擬すること
ができる。 さらに、複数組の制御データを用意して合成す
るので、所定(音階)の制御データを選択して使
用でき、1オクターブ内同一波形データを使用し
ても、楽音の立上り時間や、波形形状の変化時間
が一定にできる。 さらに、波形の基本周波数に対してノートクロ
ツク発生部の出力信号であるサンプリング周波数
を整数倍にすれば発生する折り返し成分や、量子
化により生じるサンプル波成分をすべて、基本周
波数の高調波に一致させることができ、にごりの
ない音をつくることができる利点を有する。
[Table] RDSFA is a command to supply 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 envelope data EDU read from 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) (^(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 section 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 unit 2.
Instruction to store in register R (SFT) in 107. 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 multiplier register R (MLP2) in the multiplier 2106. The selection data is coefficient data (MLP) supplied from the DRP 808 and envelope data EDL supplied from the ED memory section 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 ^(X i,n,o,q,r ) = ^(X i,n,o )
(q=0, γ=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 matched to harmonics of the fundamental frequency. You can create a sound without any cloudiness. 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 unit 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, and
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 volume 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 section at the timing of instruction step 1 is that EDP806, WDP807 and DRP808
If musical tone generation data and various effect data change while various arithmetic processes are being executed within the system, correct arithmetic 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 receives the start address, control data, waveform data (X i,o ) and (X i+1,o ) from the DBK606 based on the musical tone generation data. The coefficient data (Nm+n) α obtained based on the read control data and the waveform data (X i,o ) and (X i+1,o ) read from the DBK606 are stored in the memory M in the DRP808 at the timing of instruction step 11. (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 (X i,o-1) being read from the memory M (MD), memory M (WD), and memory M (WD) in the DRP808 based on the channel code CHC .
As described in the detailed explanation of the WDP 807, waveform calculation processing is performed using and (X i+1,o-1 ). Then, at the timing of instruction step 11, the calculation result (difference waveform sample value D^
(X i,n,o-1,q,r ) is register R in WDP807
(OBR) and supplied to the 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 stored in DBK606 (X i,o+1 ), (X i+1 ),
(X i+1,n+o ) is read and stored in memory M (MD), memory M (WD), and 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 successively output from. The data used for waveform calculation processing at this calculation timing are the coefficient data, waveform data (X i,o ), and waveform data (X i,o ) 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 conversion, and ADPCM conversion are 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 a plurality of sets of control data used when forming a synthesized waveform; a note clock generator that determines a musical tone scale;
a data reading unit that reads predetermined control data from one waveform sample data and a plurality of sets of control data; and a waveform calculation unit that calculates composite waveform sample data using the two waveform sample data and control data read by the reading unit. , 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, so that the shape of the musical sound waveform can be changed over time, and the shape can be changed naturally. It can simulate musical instrument sounds. Furthermore, since multiple sets of control data are prepared and synthesized, it is possible to select and use the control data of a predetermined (scale), and even if the same waveform data within one octave is used, it is possible to Change time can be kept constant. Furthermore, by making the sampling frequency, which is the output signal of the note clock generator, an integer multiple of the fundamental frequency of the waveform, the aliasing components that occur and the sample wave components that occur due to quantization can all be made to match the harmonics of the fundamental frequency. It has the advantage of being able to create a 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……積分器。
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 generator 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.

Claims (1)

【特許請求の範囲】 1 楽音の発音開始から発音終了時までの複数個
の楽音波形のうち少なくとも2つ以上の楽音波形
と上記選択抽出した楽音波形に対し合成波形を形
成する時に使用する制御データを複数組記憶する
データメモリ部と、楽音音階を決定するノートク
ロツク発生部と、上記ノートクロツク発生部の出
力信号に基づいて上記データメモリ部から2つの
波形サンプルデータと発音音階により上記複数組
の制御データから1組の制御データを選択読み出
しするデータ読み出し部と、上記読み出し部で読
み出した2つの波形サンプルデータと制御データ
とを用いて合成波形サンプルデータを求める波形
計算部と、上記波形計算部のデイジタル出力信号
をアナログ信号に変換する変換部とを具備し、前
記波形計算部で実行する計算内容は、前記データ
読み出し部で読み出した2つの波形サンプルf
(Xi,o)、f(Xi+1,o)と、f(Xi)からf(Xi+1)へ
の波形移行枚数をMiとする制御データとを用い、
実質的に次式に示す波形内挿演算を行ない、仮想
サンプル値f^(Xi,n,o)を求め、楽音音階により異
なる制御データを用い波形f(Xi)からf^(Xi+1
への波形移行時間が近似する楽音波形を発生する
ようにした楽音発生装置。 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 波形サンプル数
[Scope of Claims] 1. Control data used when forming a composite waveform for 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 sound generation and the selected and extracted musical sound waveforms. a data memory section that stores a plurality of sets of control data, a note clock generator that determines musical scales, and a note clock generator that generates the plural sets of control data from the data memory section based on the output signal of the note clock generator, using two waveform sample data and a pronunciation scale. a data readout unit that selectively reads out one set of control data from the readout unit; a waveform calculation unit that calculates composite waveform sample data using the two waveform sample data read out by the readout unit and the control data; and a conversion section that converts the output signal into an analog signal, and the calculation content executed by the waveform calculation section is based on the two waveform samples f read out by the data reading section.
(X i,o ), f(X i+1,o ), and control data in which M i is the number of waveform transitions from f(X i ) to f(X i+1 ),
A virtual sample value f^(X i,n,o ) is obtained by performing the waveform interpolation calculation shown in the following equation , and f^(X i +1 )
A musical tone generating device that generates a musical sound waveform whose waveform transition time is similar to that of the musical tone generator. 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
JP58011864A 1983-01-26 1983-01-26 Musical sound generator Granted JPS59136795A (en)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPS59136795A JPS59136795A (en) 1984-08-06
JPS6343760B2 true JPS6343760B2 (en) 1988-09-01

Family

ID=11789582

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPS59136795A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0471265U (en) * 1990-11-02 1992-06-24

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0471265U (en) * 1990-11-02 1992-06-24

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0367277B2 (en)
JPS6343760B2 (en)
JPS6343759B2 (en)
JPH0153800B2 (en)
US5687105A (en) Processing device performing plural operations for plural tones in response to readout of one program instruction
JPH0631984B2 (en) Musical sound generator
JPH07325581A (en) Musical sound generation device
JPS59136792A (en) Musical sound generator
JPS59136793A (en) Musical sound generator
JPH0127434B2 (en)
JPS59136794A (en) Musical sound generator
JPS6352399B2 (en)
JPH0127435B2 (en)
JPH0127436B2 (en)
JPH0231396B2 (en)
JPS59123887A (en) Music note generator
JPH02179698A (en) Processor for electronic musical instrument
JPS6335994B2 (en)
JPS59214091A (en) Note clock generator
JPS6033596A (en) Electronic musical instrument
JPS59220798A (en) Electronic musical instrument
JPH0580770A (en) Bit quantity conversion device
JPS59220797A (en) Electronic musical instrument
JPH02179692A (en) Processor for electronic musical instrument
JPH0421199B2 (en)