JP2580814B2 - 楽音信号発生装置 - Google Patents

楽音信号発生装置

Info

Publication number
JP2580814B2
JP2580814B2 JP2000312A JP31290A JP2580814B2 JP 2580814 B2 JP2580814 B2 JP 2580814B2 JP 2000312 A JP2000312 A JP 2000312A JP 31290 A JP31290 A JP 31290A JP 2580814 B2 JP2580814 B2 JP 2580814B2
Authority
JP
Japan
Prior art keywords
data
signal
tone
control
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000312A
Other languages
English (en)
Other versions
JPH03204697A (ja
Inventor
政樹 工藤
登喜男 小木
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.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2000312A priority Critical patent/JP2580814B2/ja
Publication of JPH03204697A publication Critical patent/JPH03204697A/ja
Priority to US08/046,394 priority patent/US5383386A/en
Application granted granted Critical
Publication of JP2580814B2 publication Critical patent/JP2580814B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
    • G10H7/004Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof with one or more auxiliary processor in addition to the main processing unit

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、電子楽器その他楽音発生若しくは合成機
器等で使用することができる楽音信号発生装置に関し、
特に、楽音信号発生のために実行する様々な演算のため
の回路構成を簡略化することができるようにしたものに
関する。
〔従来の技術〕 楽音信号発生のために実行される演算には、種々のも
のがある。例えば、楽音波形発生のための位相アドレス
信号の演算、エンベロープ波形信号発生演算、楽音波形
信号に対する振幅レベルスケーリング演算及び楽音波形
補間演算などがある。従来はこれらの各種演算は、それ
ぞれ個別の専用の演算回路によって行なわれていた。ま
た、上述したそれぞれの演算においては、更に細かく
は、係数をスケーリングしたりする演算やデータをアキ
ュムレートする演算など様々なものがあり、それらもま
た、それぞれ個別の演算回路、係数スケーリング用乗算
器やアキュムレータなど、によって行なわれていた。一
例を示すと、特開昭63−125990号においては、エンベロ
ープ波形発生のための装置が示されており、そこにおい
ては、各種の演算がそれぞれ個別の専用の演算回路によ
って行なわれている。
一方、特開平1−101599号においては、楽音波形サン
プル値の補間演算における補間係数によって楽音波形信
号の振幅をスケーリングするための演算と、エンベロー
プ係数によって楽音波形信号の振幅をスケーリングする
ための演算とを、共通の演算回路を時分割使用すること
によって行なうことが示されている。
〔発明が解決しようとする課題〕
従来のように、楽音信号発生のために実行する各種演
算について、それぞれ個別の専用の演算回路によって行
なうようにしたのでは、演算回路の数が増し、回路構成
が大型化する、という問題点がある。
また、楽音波形信号に対して補間係数による振幅スケ
ーリング演算とエンベロープ係数による振幅スケーリン
グ演算とを共通回路で行なうものにあっては、極くわず
かな規模でしか回路の縮小を図ることができない。この
ように同じような性質の演算を行なう演算回路を共用化
するやり方では、極めて限られた規模での回路の縮小し
か図れないのである。
この発明は上述の点に鑑みてなされたもので、楽音信
号発生のための各種演算を実行する演算回路を統合し、
回路構成の大幅な縮小を図ることができる楽音信号発生
装置を提供しようとするものである。
〔課題を解決するための手段〕
この発明に係る楽音信号発生装置は、少なくとも2つ
の独立の加算回路に分離するか又はこれらの加算回路を
一体化して1つの加算器として機能させるかの選択が制
御信号によって行なえる加算手段と、この加算手段に対
して入力するデータをストアするための記憶手段と、こ
の記憶手段の出力データに対して、制御信号に応じた論
理処理を可変的に施して前記加算手段に与える処理手段
と、楽音信号発生のための複数種類の演算をそれぞれ実
現するために、それぞれの演算に対応して前記記憶手段
へのデータの導入及び前記処理手段への前記制御信号の
供給を制御すると共に、前記加算手段に対する前記制御
信号の供給を制御する制御手段とを具え、この制御手段
の制御に従って前記記憶手段に導入するデータが決定さ
れかつ前記処理手段の論理処理内容が決定されることに
より、前記加算手段が、楽音信号発生のための複数種類
の演算のために共用されるものであり、かつ、前記加算
手段が前記制御手段から与えられる制御信号に応じて前
記少なくとも2つの独立の加算回路に分離される場合
は、分離したそれぞれの加算回路において異なる演算を
並行して行なうことができるようにしたことを特徴とす
るものである。例えば、加算手段は、桁上げ信号出力と
桁上げ信号入力間をゲートを介して接続した複数の加算
回路を含み、このゲートを前記制御手段から与えられる
制御信号に応じて制御することにより前記複数の加算回
路を分離または連結するように選択できる構成からなる
ものを使用することができる。
この発明において、加算手段は、前記制御手段から与
えられる制御信号に応じてその有効ビット数を切り替え
ることができるようにしてもよい。その場合、加算手段
は、桁上げ信号出力と桁上げ信号入力間をゲートを介し
て接続した複数の加算回路を含み、このゲートを前記制
御手段から与えられる制御信号に応じて制御することに
より1又は複数の前記加算回路を選択的に有効にし、こ
れにより該加算手段全体としての有効ビット数を切り替
えることができるようにしてよい。
〔作 用〕
制御手段の制御により、演算の目的に応じて、所定の
データを記憶手段に導入しかつ処理手段の論理処理内容
を決定する。これにより加算手段が該目的の演算を実行
する状態に設定される。制御手段では、楽音信号発生の
ための複数種類の演算をそれぞれ実現するために、それ
ぞれ所定のデータ導入制御及び制御信号供給制御を行な
う。これにより、加算手段が楽音信号発生のための複数
種類の演算のために共用される。
こうして、楽音信号発生のための各種演算を実行する
演算回路を1つの加算手段に統合することができ、回路
構成の大幅な縮小を図ることができる。従って、例えば
楽音信号発生装置を集積回路化する場合に集積回路チッ
プサイズの大幅な縮小を図ることができる。
1つの加算手段で共用する楽音信号発生のための各種
演算としては、例えば、楽音波形発生のための位相アド
レス信号の演算、エンベロープ波形信号発生演算、楽音
波形信号に対する振幅レベルスケーリング演算などがあ
る。また、必要に応じて、更に楽音波形補間演算にも共
用してよい。この発明では、複数の記憶手段と、処理手
段と、制御手段を具備して、加算手段を完全に多目的利
用できるように構成しているので、全く性質の異なる演
算においても加算手段を共用するようにすることがで
き、楽音信号発生のための各種演算を1つの加算手段に
統合して実行することができる。
また、加算手段が、少なくとも2つの独立の加算回路
に分離するか又はこれらの加算回路を一体化して1つの
加算器として機能させるかの選択的利用を、前記制御手
段から与えられる制御信号によって行える構成であり、
分離利用する場合はそれぞれの加算回路において異なる
演算を並行して行なうことができるようにしているた
め、上述と同様に、種々の性質の異なるデータの演算に
おいて1つの加算手段を共用するにあたって極めて有利
である。すなわち、多数ビットのデータの演算に対して
は加算手段を分離せずにそのまま使用する一方で、少数
ビットのデータの演算に対しては加算手段を分離し、分
離したそれぞれの加算回路において異なるデータについ
て異なる演算を並行して行なうようにすれば、並列演算
により演算効率を高めることができる。例えばn種類の
異なる演算につき加算手段を共用する場合、単純には、
n時分割で加算手段を使用しなければならないところ、
この発明に従って一部並列演算を行なうようにすれば、
時分割数mは単独演算数と並列演算数の合計で済み、m
<nとなるので、全体としての処理時間を短縮すること
ができる。
加算手段が、前記制御手段から与えられる制御信号に
応じてその有効ビット数を切り替えることができるよう
にすることは、種々の性質の異なるデータの演算におい
て1つの加算手段を共用するにあたって極めて有利であ
る。すなわち、加算手段を多目的利用できるようにする
には、多ビットのデータにも備えるために、加算手段の
ビット数は多い方がよい。ところで、加算手段のビット
数が多い場合は、各桁の桁上げに要する時間がかかるの
でその分だけ計算時間を多く確保するようシステムを構
成する必要がある。一方、データによってはビット数が
少ないものもあり、そのような少数ビットのデータの演
算に対しても多ビット加算手段をそのまま使用したので
は不必要に多くの計算時間が確保されてしまい、好まし
くない。そこで、この発明のように、加算手段の有効ビ
ット数を制御信号に応じて切り替えることができるよう
にすれば、少数ビットのデータの演算においては有効ビ
ット数を少なくすることにより、短い計算時間を確保し
ておけば済むようにシステムを構成することができる。
こうして、加算手段を共用するデータの性質に応じて、
効率的な計算時間配分を行なうことができるようにな
る。
〔実施例〕
以下、添付図面を参照してこの発明の一実施例を詳細
に説明しよう。
第1図はこの発明に係る楽音信号発生装置の一実施例
を示すハード構成ブロック図、第2図はこの発明に係る
楽音信号発生装置を適用した電子楽器の一例を示すハー
ド構成ブロック図であり、第1図は第2図に示された楽
音信号発生装置10のブロック内の回路構成例を示してい
る。
まず、第2図について説明すると、この例の電子楽器
では、中央処理ユニット(CPU)11、プログラム及びデ
ータROM12、データ及びワーキングRAM13を含むマイクロ
コンピュータの制御の下で各種処理が実行される。CPU
バス14を介して楽音信号発生装置10,鍵盤回路15,操作パ
ネル16等その他各種回路がマイクロコンピュータに接続
されている。
鍵盤回路15は、発生すべき楽音の音高を指定するため
の複数の鍵を具えた鍵盤に対応して設けられており、該
鍵盤の各鍵に対応するキースイッチを含む回路である。
操作パネル16は、音色、音量、音高、効果等を選択・
設定・制御するための各種操作子を含むものである。
タイマ17は、時間的に変化する楽音制御を行う際の時
間データやCPU11に対するインタラプト信号などを発生
するためのものである。
マイクロコンピュータの処理により、鍵盤回路15にお
ける各キースイッチをスキャンしてそのオン・オフを検
出し、押圧鍵を複数の発音チャンネルのうち何れかに割
当てる。また、必要に応じて鍵タッチを検出するための
処理を行なう。また、操作パネル16における各種操作
子,スイッチ類をスキャンしてそのオン・オフを検出
し、これに基づき選択された音色の検出などその他処理
を行なう。
CPU11では、各発音チャンネルにおける割当て内容の
変更や、操作パネル16における操作状態の変更などがあ
った場合に、必要なデータをCPUバス14を介して楽音信
号発生装置10に与える。CPU11から楽音信号発生装置10
に与えられるデータとしては、例えば、割当てたチャン
ネルを示すチャンネルナンバCHN、そのチャンネルに割
当てられた鍵を示すキーコードKC、その鍵が押圧中であ
るか離鍵されたかを示すキーオン信号KON、その鍵の音
高に対応する数値であるPナンバPN、その鍵の押鍵時の
鍵タッチを示すタッチデータTD、選択された音色を示す
ボイスナンバVN、手動により設定・調整された音量ボリ
ュームを示すトーンボリューム設定データVLMなどがあ
る。
楽音信号発生装置10では、CPU11から与えられたデー
タに基づき複数チャンネルで楽音信号を発生する。発生
された楽音信号はサウンドシステム18に与えられ、音響
的に発音される。
次に第1図を参照して楽音信号発生装置10につき説明
する。
ハード回路概略説明 この楽音信号発生装置10においては、楽音信号発生の
ための様々な種類の演算のために多目的に利用される1
つの加算部20を具備している。また、この加算部20に対
して入力するデータをストアするための複数の記憶回
路、例えばレジスタR1,R2,R3など、を具備している。ま
た、これらの記憶手段の出力データに対して、制御信号
に応じた論理処理を可変的に施して加算部20に与える処
理回路、例えば符号制御回路23、論理積回路24、多機能
シフタ25など、を具備している。この処理回路で行なう
論理処理とは、データのシフト、ゲート、選択、反転等
の処理であり、制御信号に応じて適宜の処理が実行され
る。符号制御回路23は引算のための符号制御処理を行な
うためのもの、論理積回路24は乗算のために部分積を求
める論理積処理を行なうためのもの、多機能シフタ25は
データシフト処理、データの選択、通過、阻止、一時記
憶等様々な機能を制御信号に応じて行なうものである。
楽音信号発生装置10においては、楽音信号発生のため
の複数種類の演算をそれぞれ実現するために、それぞれ
の演算に対応して前記記憶回路へのデータの導入及び前
記処理回路への前記制御信号の供給を制御する制御回
路、例えばマイクロコードROM26及びそれに関連する回
路、を具備している。この制御回路によって加算部20を
共用するよう制御される。楽音信号発生のための各種演
算としては、例えば、楽音波形発生のための位相アドレ
ス信号の演算、エンベロープ波形信号発生演算、楽音波
形信号に対する振幅レベルスケーリング演算、楽音波形
補間演算などがある。
データメモリ27は、様々な音色に対応する波形サンプ
ルデータと様々なエンベロープ波形に対応するエンベロ
ープパラメータデータを記憶したリードオンリーメモリ
であり、その大容量故に、楽音信号発生装置10の集積回
路チップの外に設けられている。
加算部20の出力がアドレスラッチADLに与えられ、こ
のアドレスラッチADLの出力がデータメモリ27のアドレ
ス入力に与えられる。データメモリ27のデータ読み出し
出力が入力バッファ28に与えられ、レジスタ29で一時保
持され、ゲート30を介してTGバス(トーンジェネレータ
バス)35に与えられる。TGバス35はトーンデータRAM36
に接続されており、また、レジスタR1,R2等、楽音信号
発生装置10内のその他回路に接続されている。
また、加算部20の出力は、レジスタGRに接続されてい
る。このレジスタGRの出力はオーバーフロー補償回路33
を介してゲート31に与えられ、ゲート31の出力はTGバス
35に接続される。
また、加算部20の出力は、レジスタR3に接続されてい
る。このレジスタR3の出力はオーバーフロー補償回路34
を介してゲート32に与えられ、ゲート32の出力はTGバス
35に接続される。また、レジスタR3の出力は多機能シフ
タ25に接続されている。多機能シフタ25の出力は加算部
20の一方入力に接続されている。
なお、オーバーフロー補償回路33,34は、加算部20を
単純な加算器として使用しているとき(オーバーフロー
が生じることを前提としている所定モジュロ数のカウン
タのような使い方ではないとき)に、その有効ビットの
最上位から桁上げ信号が生じた場合に有効ビットのデー
タ値が真の加算結果からかけ離れた小さな値になってし
まうことを考慮し、その有効ビットデータ値を適当な値
(例えば最大値)に修正する処理を行なうためのもので
ある。
レジスタR1の入力にはTGバス35が接続され、その出力
は多機能シフタ25に接続される。また、レジスタR2の入
力もTGバス35に接続され、その出力は符号制御回路23に
与えられる。符号制御回路23の出力が論理積回路24を介
して加算部20の他方入力に接続される。
第1のパラレル/シリアル変換器PS1は、TGバス35か
ら与えられるパラレルデータをシリアルデータに変換
し、論理積回路24に与える。このパラレルデータは、乗
算のための乗数である。第2のパラレル/シリアル変換
器PS2は、低周波発振器37から発生される変調用低周波
データLFOを入力し、これをシリアルデータ形式で出力
し、乗数として論理積回路24に与える。
楽音信号発生装置10における上述の各回路は、マイク
ロコードROM26から与えられる制御信号すなわちマイク
ロコードによってその動作が制御される。従って、各回
路にはそれぞれ所定のマイクロコードが入力されるよう
になっているが、この点は図示を省略してある。
CPU入出力制御部38は、CPUバス14から与えられる前述
の各データCHN,KC,KON,PN,TD,VLMを受け取り、楽音信号
発生装置10内の必要な回路に与える制御を行なう。ま
た、楽音信号発生装置10で発生したデータのうち必要な
ものをCPUバス14に与える制御も行なう。
システムクロック発生器39は、この楽音信号発生装置
10におけるシステムクロックを発生し、必要な回路に供
給する。
マイクロコードアドレス発生器40は、マイクロコード
ROM26からマイクロコードを読み出すためのアドレス信
号をシステムクロックに従うタイミングで順次発生する
ものである。マイクロコードROM26においては、楽音信
号発生装置10において様々な演算機能及び制御機能、処
理機能が所定の手順で順次実行されるように、各種のマ
イクロコードがプログラムされている。
エンベロープ制御ユニット41は、エンベロープ波形発
生のための制御を行なうもので、主に、エンベロープ波
形発生演算のステート管理や、演算レートデータの生成
制御、演算目標レベルデータの生成制御を行なう。ステ
ート管理とは、アタック、ディケイ、サステイン、レリ
ース等、エンベロープ波形の各部分のどの部分を現在発
生する状態であるかを管理することである。
ピッチ発生器42は、PナンバPNに基づく数値データを
アキュムレートし、位相アドレスの変化分を指示するレ
ートデータPGRT,PGFRを発生する。この位相アドレスレ
ートデータは整数部PGRTと小数部PGFRとからなり、整数
部PGRTがデータメモリ読み出し用のアドレス信号増加の
ために使用され、小数部PGFRが楽音波形の補間演算のた
めに使用される。
マイクロコードROM26からのマイクロコードの発生、
エンベロープ制御ユニット41におけるエンベロープ波形
発生制御、及びピッチ発生器42における位相アドレスレ
ートデータPGRT,PGFRの発生は、所定の時分割タイミン
グに従って複数チャンネル時分割で行なわれる。
第3図は、1サンプルタイミングと各チャンネルCH0
〜CHnの時分割タイミングとの関係、及び1チャンネル
内におけるマイクロコードステップの関係を例示するも
のである。この例では、1チャンネルタイミング内でマ
イクロコードステップが64ステップある。つまり、楽音
信号発生装置10内の各回路が64ステップで時分割動作し
て1チャンネルに関する楽音波形1サンプルの発生を行
なう。
トーンデータRAM36は、楽音信号発生のために必要な
種々のデータを各チャンネル毎に記憶する随時読み書き
可能なメモリである。トーンデータRAM36のデータ入出
力ラインはTGバス35に接続されている、RAM制御部43
は、トーンデータRAM36のデータの読み書きを制御する
ものであり、アドレス指定及び読出し/書込み指示を行
なう。このRAM制御部43には、CPU入出力制御部38の出
力、エンベロープ制御ユニット41の出力、マイクロコー
ドROM26の出力、その他各回路から発生される所定の信
号が入力され、これらに基づきトーンデータRAM36の読
み書きを制御する。
概略動作説明 詳細な説明に先立って大まかな説明をざっと行なう
と、加算部20を楽音波形発生のための位相アドレス信号
の演算のために使用する場合は、前述の位相アドレスレ
ートデータの整数部PGRTを前回アドレス信号の値に加算
する演算を加算部20で行ない、こうして加算部20から発
生した位相アドレス信号をアドレスラッチADLにラッチ
し、これに応じてデータメモリ27から波形サンプルデー
タを読み出す。
また、選択された音色(ボイスナンバVN)やキースケ
ーリングデータあるいはタッチデータなどに応じて加算
部20を使用してアドレス信号が形成され、これがアドレ
スラッチADLにラッチされ、これに応じてデータメモリ2
7からエンベロープパラメータデータが読み出される。
読み出されたエンベロープパラメータデータはトーンデ
ータRAM36に書き込まれる。このトーンデータRAM36から
エンベロープパラメータデータを読み出してエンベロー
プ制御ユニット41に与えて、エンベロープ波形変化分デ
ータを作成し、このエンベロープ波形変化分データを加
算部20で演算することによりエンベロープ波形信号発生
演算を実行する。
また、上述のように読み出した波形サンプルデータと
上述のように発生したエンベロープ波形信号等の振幅レ
ベル設定データに基づき加算部20を使用して振幅レベル
スケーリング演算を行ない、波形サンプルデータの振幅
レベルを設定する。
また、隣接する波形サンプルデータ間を前述の位相ア
ドレスレートデータの小数部PGFRに応じて補間する演算
を加算部20を使用して行ない、波形サンプルデータを密
に発生する。
こうして各チャンネル毎に発生された振幅レベル制御
済みの波形サンプルデータが累算器44に与えられ、1サ
ンプルタイミングに関する全チャンネルの波形サンプル
データがそこで累算合計される。その累算出力がD/A変
換器45でアナログ信号に変換され、出力回路46を介して
出力される。
次に、要部の詳細説明を行なう。
トーンデータRAM36 トーンデータRAM36における1チャンネル分のトーン
データ記憶エリアのメモリマップを例示すると第4図の
ようである。1チャンネル分のトーンデータ記憶エリア
は、トーンデータアドレスとして14アドレス有し、1ア
ドレスは20ビットのデータサイズを有する。トーンデー
タアドレスにおける多くのデータはキーオンイベントの
ときに次のように書き込まれる。
新押圧鍵が或るチャンネルに割当てられると、前述の
通り、割当てたチャンネルを示すチャンネルナンバCH
N、そのチャンネルに割当てられた鍵を示すキーコードK
C、キーオン信号KON、PナンバPN、タッチデータTD、ボ
イスナンバVN、トーンボリューム設定データVLMが、CPU
11からCPUバス14を介してCPU入出力制御部38に与えられ
る。
このチャンネルナンバCHNが示すチャンネルのトーン
データ記憶エリアがトーンデータRAM36において指定さ
れ、そこのトーンデータアドレス3にPナンバPNがスト
アされ、トーンデータアドレス9にトーンボリューム設
定データVLMがストアされる。
また、ボイスナンバVNに応じてデータメモリ27のボイ
スデータエリアをアクセスし、必要なデータの読み出し
を行なう。
データメモリ27のメモリマップを略示すると第5図の
ようであり、ボイスデータエリア、パラメータエリア、
波形データエリアを含んでいる。ボイスデータエリア
は、複数のボイスバンク1〜nを含んでいる。各ボイス
バンクにおいては、パラメータエリアのパラメータバン
クを指定する情報を記憶している。パラメータエリアは
複数のパラメータバンク1〜nを含んでいる。各パラメ
ータバンクにおいては、波形データエリアの波形データ
バンクを指定する情報及びエンベロープパラメータデー
タを記憶している。波形データエリアは複数の波形デー
タバンク1〜nを含んでいる。各波形データバンクは複
数周期波形の波形サンプルデータをそれぞれ記憶してい
る。一例として、1つの波形データバンクに記憶してい
る波形は、アタック部の全波形と繰返し部の複数周期波
形である。1つのパラメータバンクにおいて、波形デー
タバンクを指定する情報として、スタートアドレスデー
タとアタックサイズデータ、ループサイズデータを記憶
しており、エンベロープパラメータデータとして、アタ
ックレートデータAR,第1ディテイレートデータD1R,第
2ディケイレートデータD2R,レリースレートデータRR,
サステインレートデータSUSR,第1ディケイレベルデー
タD1L,第2ディケイレベルデータD2Lを記憶している。
スタートアドレスデータは、指定したい波形データバン
クの先頭アドレスであり、アタックサイズデータは、そ
の波形データバンクにおけるアタック部の全波形を記憶
しているアドレス数を示し、ループサイズデータは、そ
の波形データバンクにおける全アドレス数を示す。
ボイスナンバVNに応じて現在選択されている音色に対
応する1つのボイスバンクのデータを読み出す。キース
ケーリング及び/又はタッチコントロールを行なう場合
は、各ボイスバンクは、そのボイスナンバVNのみならず
キーコードKC及び/又はタッチデータTDに応じてパラメ
ータエリアのパラメータバンクを指定する情報を読み出
すことができるようになっており、また、キースケーリ
ング及び/又はタッチコントロールのためのレベル制御
データ及びエンベロープレート制御データを読み出すこ
とができるようになっている。従って、その場合は、ボ
イスナンバVNと、キーコードKC及び/又はタッチデータ
TDに応じてボイスデータエリアにアクセスする。
読み出されたパラメータバンク指定情報に応じて、パ
ラメータバンクからデータを読み出す。まず、スタート
アドレスデータは、RAM36におけるチャンネルナンバCHN
が示すチャンネルのトーンデータ記憶エリアのトーンデ
ータアドレス0に位相アドレス現在値データADRESとし
てストアされ、これが位相アドレス信号の初期値とな
る。この位相アドレス現在値データADRESは、以後逐次
更新される。
また、パラメータバンクから読み出したスタートアド
レスデータに同じく読み出したアタックサイズデータを
加算してアタックエンドアドレスATKENDを作成し、これ
をRAM36におけるチャンネルナンバCHNが示すチャンネル
のトーンデータ記憶エリアのトーンデータアドレス1に
ストアする。また、スタートアドレスデータに同じく読
み出したループサイズデータを加算してループエンドア
ドレスLOPENDを作成し、これをRAM36におけるチャンネ
ルナンバCHNが示すチャンネルのトーンデータ記憶エリ
アのトーンデータアドレス2にストアする。この場合の
加算演算は、詳しく説明しないが、加算部20を使用して
行なってよい。
また、パラメータバンクから読み出された各エンベロ
ープパラメータデータAR,D1R,D2R,RR,SUSR,D1L,D2Lを、
RAM36におけるチャンネルナンバCHNが示すチャンネルの
トーンデータ記憶エリアのトーンデータアドレスA
(H)〜D(H)にそれぞれストアする。これらのデー
タはそれぞれ6ビット構成であり、トーンデータアドレ
スの下位6ビット及びその上位6ビットにそれぞれスト
アする。なお、この場合、キースケーリング及び/又は
タッチコントロールのための前述のエンベロープレート
制御データ及びレベル制御データに応じてこれらのエン
ベロープパラメータデータを変更したものをRAM36に記
憶するようにしてもよい。
RAM36におけるトーンデータ記憶エリアのトーンデー
タアドレスA(H)の下位6ビットには上述のアタック
レートデータARがストアされるが、その上位6ビットに
はトータルレベルデータTLLEVがストアされる。このト
ータルレベルデータTLLEVは、前述のキースケーリング
及び/又はタッチコントロールのためのレベル制御デー
タを加味してトータルレベルを設定するデータである。
RAM36におけるトーンデータ記憶エリアのトーンデー
タアドレス4及び5には、波形サンプルデータ補間用の
2つの波形サンプルデータTTONE,TONEPがそれぞれスト
アされる。TONEPは前回の位相アドレス信号によって読
み出した波形サンプルデータであり、TTONEは新たな位
相アドレス信号によって今回読み出した波形サンプルデ
ータであり、補間の到達目標値である。
RAM36におけるトーンデータ記憶エリアのトーンデー
タアドレス6には、エンベロープ計算値データEGがスト
アされる。これはエンベロープ波形発生演算によって求
められたエンベロープ波形信号の現在値である。
RAM36におけるトーンデータ記憶エリアのトーンデー
タアドレス7には、トーンレベルデータTONLVがストア
される。これは、楽音信号の現在の振幅レベルに比例す
るデータである。この利用目的としては、楽音信号の現
在の振幅レベルをエンベロープ波形発生のためのレート
データにフィードバックし、該レートデータを変更する
ことにより、指数的な(若しくは対数的な)エンベロー
プ波形のカーブをつけることが考えられる。従って、こ
のトーンレベルデータTONLVはエンベロープ制御ユニッ
ト41において利用される。
RAM36におけるトーンデータ記憶エリアのトーンデー
タアドレス8には、エンベロープステート信号EGSTがス
トアされる。これは、エンベロープ制御ユニット41の制
御のもとで実行されているエンベロープ波形発生演算の
現在の状態、すなわち、アタック、ディケイ、サステイ
ン、レリース等の各ステートのうちどのステートの演算
を現在実行しているかを示すものである。エンベロープ
制御ユニット41からエンベロープステート信号EGSTが与
えられ、これがRAM36に記憶される。なお、エンベロー
プ制御ユニット41では、独自の処理により、まず、キー
オンイベントにもとづきアタックステートを指示し、以
後、各ステートの到達目標レベルとエンベロープ計算値
データEGとの比較結果に応じて、ステートを適宜切り替
える。この場合、レベル比較処理それ自体は、後述のよ
うに、加算部20を利用して行なわれる。
加算部20及びその周辺の詳細例 第6図は加算部20及びその周辺回路を幾分詳しく示し
たものである。加算部20は、全体として20ビットのフル
アダーからなり、下位13ビットを分担する13ビットのフ
ルアダーからなる加算器21と、上位7ビットを分担する
7ビットのフルアダーからなる加算器22とによって構成
されている。下位13ビットの加算器21の桁上げ信号出力
COと上位7ビットの加算器22の桁上げ信号入力CIとの間
にアンドゲート50が設けられており、このアンドゲート
50がマイクロコードに応じて制御されるようになってい
る。アンドゲート50が可能化されているとき、加算部20
は20ビットのフルアダーとして機能する。アンドゲート
50が可能化されていないときは、るとき、加算器21と22
が分離され、加算部20は13ビットのフルアダー又は7ビ
ットのフルアダーとして機能する。こうして、アンドゲ
ート50の制御によって、加算部20の有効ビット数が20ビ
ットになったり、13ビット(又は7ビット)になったり
するので、使用目的に応じて有効ビット数を可変でき
る。また、分離時には、2つの加算器21,22で異なる演
算を並列的に行なうこともできる。
アダー分離を指示するマイクロコードMC1がオアゲー
ト51を介してインバータ52で反転されてアンドゲート50
に加わり、該マイクロコードMC1が“1"のときアンドゲ
ート50を不能化して加算器21と22を分離する。この場
合、加算部20の有効ビット数を切り替える。
また、2種類の乗算を並列的に行なうことを指示する
マイクロコードMC2がオアゲート51を介してインバータ5
2で反転されてアンドゲート50に加わり、該マイクロコ
ードMC2が“1"のときもアンドゲート50を不能化して加
算器20で異なる2種類の演算を並行処理する。
各レジスタR1,R2,R3,GRは20ビットパラレルにデータ
をストアしうるものである。符号制御回路23は、レジス
タR2の各20ビット出力を入力した20ビット分の排他オア
回路からなり、各排他オア回路には、符号制御用のマイ
クロコードMC3が与えられる。レジスタR2の出力データ
を減数として加算部20で減算を行なう場合に、該マイク
ロコードMC3を“1"とし、レジスタR2の出力データを反
転し、補数に変換する。通常の加算を行なう場合は、マ
イクロコードMC3は“0"であり、レジスタR2の出力デー
タはそのまま符号制御回路23を通過する。
論理積回路24は、下位13ビットに対応するゲート53
は、上記7ビットに対応するゲート54とを含む。符号制
御回路23の20ビット出力のうち下位13ビットがゲート53
を介して加算器21の一方入力に与えられ、上位7ビット
がゲート54を介して加算器22の一方入力に与えられる。
ゲート53の制御入力には、第1のパラレル/シリアル
変換器PS1から出力されるシリアルデータがアンドゲー
ト55を介して与えられる。ゲート54の制御入力には、第
2のパラレル/シリアル変換器PS2から出力されるシリ
アルデータがアンドゲート56を介して与えられる。これ
らのシリアルデータは、乗算演算における乗数に相当す
る。アンドゲート55,56は並列乗算を指示するマイクロ
コードMC2によって可能化される。従って、シリアルデ
ータのビットが“1"のとき、ゲート53,54の入力データ
が通過し、“0"のとき阻止される(“0"とされる)。こ
れにより、乗数の各ビットに対応する部分積が求められ
る。各加算器21,22では、後述するように、乗数の各ビ
ットに対応する部分積を加算し、最終的な積を求める。
各加算器21,22におけるこのような乗算演算は、それぞ
れ個別に並列的に行なわれる。
なお、加減算を行なうときに、ゲート53,54を常時開
放しておくために、マイクロコードMC4,MC5がオアゲー
ト57,58を介して各ゲート53,54の制御入力に与えられ
る。なお、下位13ビット加算器21のみを有効使用する場
合は、マイクロコードMC4を“1"、MC5を“0"としてゲー
ト54を閉じてもよい。
レジスタR1又はR3の20ビット出力が多機能シフタ25を
介して加算部20に与えられる。多機能シフタ25の20ビッ
ト出力のうち下位13ビットが加算器21の他方入力に与え
られ、上位7ビットが加算器22の他方入力に与えられ
る。多機能シフタ25は前述の通り、データシフト処理、
データの選択、通過、阻止、一時記憶等様々な機能を様
々なマイクロコードMCmに応じて行なうものであり、デ
ータシフトを行なった場合は、有効データのオーバーフ
ローによって誤差が出ることを防ぐためにオーバーフロ
ー補償処理を行なうようにもなっている。
勿論、各レジスタR1,R2,R3,GRにも所定のマイクロコ
ードが与えられ、TGバス35あるいは加算部20からのデー
タの取り込みを制御するようになっている。
様々な演算の具体例説明 第7図(a),(b),(c)はマイクロコードROM2
6から発生されるマイクロコードに従って実行される各
種処理の一例を示すフローチャートである。この図に従
って各種の演算について説明する。
(1)位相アドレス演算 まず、トーンデータRAM36から位相アドレス現在値デ
ータADRESを読み出し、レジスタR1にストアする(ステ
ップ60)。また、ピッチ発生器42から発生された位相ア
ドレスレートデータの整数部PGRTをレジスタR2にストア
する(ステップ60)。なお、各レジスタ等は、2相クロ
ックで動作しているものとし、或るマイクロコードステ
ップタイミングの後半で取り込んだデータを次のマイク
ロコードステップタイミングの立上りに同期して出力す
るものとする。従って、同じマイクロコードステップタ
イミングでデータを出力しながら別のデータを取り込む
ことができる。
次に、レジスタR1の出力とレジスタR2の出力とを加算
部20で加算する(ステップ61)。この場合、第6図にお
けるマイクロコードは次のように設定される。
MC1=“0"、MC2=“0"、MC3=“0"、MC4=“1"、MC5
=“1"、MCm=R1セレクト。
これにより、加算部20は20ビットすべてを有効ビット
として通常の加算動作を行ない、R1+R2を実行する。そ
して、その結果をレジスタR3,GR及びアドレスラッチADL
に取り込む。なお、このように加算部20の20ビットすべ
てを有効ビットとして演算を行なう場合は、桁上げ信号
の伝達遅れにより、2クロック分の計算時間を要する。
従って、加算結果をR3,GR,ADLに取り込むタイミングは
次のマイクロコードステップタイミングである。
こうして、位相アドレス現在値データADRESに対して
位相アドレスレートデータの整数部PGRTが加算され、位
相アドレス現在値ADRESがPGRTの値の分だけ増加し、位
相アドレス歩進が行なわれる。従って、歩進された位相
アドレス信号がレジスタR3,GR,ADLにストアされる。
なお、この演算は毎チャンネルタイミングで行なわれ
るが、位相アドレスレートデータの整数部PGRTの値は変
化タイミングでだけ生じ、変化しないタイミングでは
“0"である。従って、PGRT=“0"の加算を行なった場合
は実質的な位相アドレス現在値ADRESは変化しない。な
お、その場合でも、位相アドレスレートデータの小数部
PGFCは生じており、後述するように歩間が行なわれる。
なお、ピッチ発生器42から発生される位相アドレスレー
トデータのフォーマットを模式的に示すと第8図(a)
のようである。
また、トーンデータRAM36からループエンドアドレスL
OPENDを読み出し、レジスタR2にストアする(ステップ6
1)。また、トーンデータRAM36からエンベロープステー
ト信号EGSTを読み出し、エンベロープ制御ユニット41
(これをEGCUと略記する)に与える。
(2)アドレス比較 次に、レジスタR3の位相アドレス演算値からレジスタ
R2のループエンドアドレスLOPENDを減算する(ステップ
62)。この場合、第6図におけるマイクロコードは次の
ように設定される。
MC1=“0"、MC2=“0"、MC3=“1"、MC4=“1"、MC5
=“1"、MCm=R3セレクト。
これにより、加算部20は20ビットすべてを有効ビット
としてR3−R2の減算を実行する。そして、その結果をレ
ジスタR3に取り込む。
このR3−R2の減算は、位相アドレス演算値がループエ
ンドアドレスLOPENDを超えたかどうかを調べる「アドレ
ス比較」のために行なう。つまり、位相アドレス演算値
がループエンドアドレスLOPENDにまだ到達していない場
合は、R3<R2であり、補数演算を行なっている加算部20
からはキャリー信号が出る。一方、位相アドレス演算値
がループエンドアドレスLOPENDを超えた場合は、R3>R2
であり、補数演算を行なっている加算部20からはキャリ
ー信号が出ず、演算結果R3−R2は、ループエンドアドレ
スLOPENDを超えた端数を示している。従って、加算部20
からキャリー信号が出たか否かによって「アドレス比
較」の結果が判る。
また、トーンデータRAM36からエンベロープ計算値デ
ータEGとトーンレベルデータTONLVを読み出し、エンベ
ロープ制御ユニット41に与える(ステップ62)。
次に、加算部20からキャリー信号が出たか否かを調べ
る(ステップ63)。YESなら、位相アドレス演算値がル
ープエンドアドレスLOPENDにまだ到達していないので、
位相アドレス演算値が有効であるから、レジスタGRの位
相アドレス演算値を新しい位相アドレス現在値データAD
RESとしてトーンデータRAM36に記憶する(ステップ6
4)。次に、トーンデータRAM36からエンベロープ計算値
データEGを読み出し、レジスタR1にストアする(ステッ
プ65)。
(3)繰返し時の端数演算 位相アドレス演算値がループエンドアドレスLOPENDを
超えた場合は、トーンデータRAM36からアタックエンド
アドレスATKENDを読み出し、レジスタR2にストアする
(ステップ66)。
次に、レジスタR3の出力とレジスタR2の出力とを加算
部20で加算する(ステップ67)。この場合、第6図にお
けるマイクロコードは次のように設定される。
MC1=“0"、MC2=“0"、MC3=“0"、MC4=“1"、MC5
=“1"、MCm=R3セレクト。
これにより、加算部20は20ビットすべてを有効ビット
として通常の加算動作を行ない、R3+R2を実行する。そ
して、その結果をレジスタR3及びアドレスラッチADLに
取り込む。この場合、レジスタR3のデータは、前のステ
ップ62における演算結果R3−R2であり、ループエンドア
ドレスLOPENDを超えた端数アドレスを示している。従っ
て、この端数アドレスをアタックエンドアドレスATKEND
に加算したものが求められ、これが新しい位相アドレス
信号としてアドレスラッチADLに取り込まれ、かつレジ
スタR3にストアされる。
また、トーンデータRAM36からエンベロープ計算値デ
ータEGを読み出し、レジスタR1にストアする(ステップ
67)。
次に、レジスタR3のデータを新しい位相アドレス現在
値データADRESとしてトーンデータRAM36に記憶する(ス
テップ68)。
こうして、ループエンドアドレスLOPENDからアタック
エンドアドレスATKENDに戻る処理が行なわれ、繰返し部
分の波形を繰返し読み出すための制御がなされる。
(4)エンベロープレベル比較 次に、トーンデータRAM36に記憶されているエンベロ
ープパラメータデータAR,D1R,D2R,RR,SUSR,D1L,D2Lのう
ち、現在のエンベロープステートEGSTに対応したレード
データとレベルデータを読み出して、エンベロープ制御
ユニット41に与える(ステップ69)。また、現在のエン
ベロープステートにおけるEG目標レベルデータをレジス
タR2にストアする。
次に、レジスタR1に記憶されているエンベロープ計算
値データEGを多機能シフタ25で4ビット下位にシフト
し、この多機能シフタ25の出力データからレジスタR2の
EG目標レベルデータを減算する(ステップ70)。この場
合、第6図におけるマイクロコードは次のように設定さ
れる。
MC1=“1"、MC2=“0"、MC3=“1"、MC4=“1"、MC5
=“0"、MCm=R1セレクトして4ビット下位にシフト。
これにより、加算部20では下位13ビットの加算器21が
有効になり、有効ビット13ビットでR1≫4ビット−R2の
減算を実行する。なお、このような13ビット演算の場合
は、桁上げ信号の伝達遅れが1クロック分の計算時間内
に納まり、1マイクロコードステップタイミング内で演
算が完了する。
レジスタR1に記憶されているエンベロープ計算値デー
タEGを多機能シフタ25で4ビット下位にシフトする理由
は、レジスタR2にストアされているEG目標レベルデータ
に桁を合わせるためである。詳しくは、エンベロープ計
算値データEGのフォーマットを模式的に示すと第8図
(b)のようであり、有効ビットが10ビットのデータで
あって、その上位4ビットが指数部、下位6ビットが仮
数部である。これに対してEG目標レベルデータは有効6
ビットのデータであり、レジスタR2の下位6ビットにス
トアされる。そこで、エンベロープ計算値データEGの上
位6ビット部分をEG目標レベルデータに桁合わせするた
めに4ビット下位にシフトするのである。
このR1≫4ビット−R2の減算は、現在のエンベロープ
計算値データEGがEG目標レベルデータよりも大きいか、
または小さいかを比較するために行なう。つまり、エン
ベロープ計算値データEGがEG目標レベルデータよりも小
さい場合は、(R1≫4ビット)<R2であり、補数演算を
行なっている加算部20からはキャリー信号が出る。一
方、エンベロープ計算値データEGがEG目標レベルデータ
よりも大きい場合は、(R1≫4ビット)>R2であり、補
数演算を行なっている加算部20からはキャリー信号は出
ない。従って、加算部20からキャリー信号が出たか否か
によって「エンベロープレベルの比較」の結果が判る。
この加算部20からのキャリー信号をエンベロープ制御ユ
ニット41に与え、エンベロープ波形の傾き符号の制御に
使用する。
エンベロープ制御ユニット41では、エンベロープレー
トデータに基づきエンベロープレベル変化幅データΔEG
を作成する。このΔEGは上述の加算部20からのキャリー
信号の有無に応じて正負符号が付与されているものであ
る。つまり、負の場合は変化幅データΔEGは補数で与え
られる。この符号制御済のエンベロープレベル変化幅デ
ータΔEGをレジスタR2にストアする(ステップ71)。な
お、エンベロープ制御ユニット41では、ステート管理を
常に行なっており、ステートを更新すべきことを判断し
たら、エンベロープステート信号EGSTを更新し、これを
トーンデータRAM36に記憶する。
(5)エンベロープ現在値演算 次に、レジスタR1に記憶されているエンベロープ計算
値データEGとレジスタR2に記憶されているエンベロープ
レベル変化幅データΔEGとを加算部20で加算する(ステ
ップ72)。この場合、第6図におけるマイクロコードは
次のように設定される。
MC1=“1"、MC2=“0"、MC3=“0"、MC4=“1"、MC5
=“0"、MCm=R1セレクト。
これにより、加算部20では下位13ビットの加算器21が
有効になり、有効ビット13ビットで通常の加算動作を行
ない、R1+R2を実行する。そして、その結果をレジスタ
R3に取り込む。ただし、上述のようにエンベロープレベ
ル変化幅データΔEGは符号制御済であるため、実際はそ
の正負符号に応じて加減算が行なわれる。
こうして、エンベロープ計算値データEGが変化幅デー
タΔEGの分だけ増減し、新たなエンベロープ計算値デー
タが求められ、これがレジスタR3にストアされる。
また、トーンデータRAM36からトータルレベルデータT
LLEVを読み出し、レジスタR1にストアする(ステップ7
2)。
こうしてレジスタR3にストアされた新たなエンベロー
プ計算値データは、トーンデータRAM36に新たなエンベ
ロープ計算値データEGとして書き込まれると共に、エン
ベロープ制御ユニット41にも与えられる(ステップ7
3)。
(6)トータルレベル演算 次に、トーンデータRAM36からトーンボリューム設定
データVLMを読み出し、レジスタR2にストアする(ステ
ップ74)。
そして、レジスタR1に記憶されているトータルレベル
データTLLEVとレジスタR2に記憶されているトーンボリ
ューム設定データVLMとを加算部20で加算する(ステッ
プ75)。この場合、第6図におけるマイクロコードは次
のように設定される。
MC1=“1"、MC2=“0"、MC3=“0"、MC4=“1"、MC5
=“0"、MCm=R1セレクト。
これにより、加算部20では下位13ビットの加算器21が
有効になり、有効ビット13ビットで通常の加算動作を行
ない、R1+R2を実行する。そして、その結果をレジスタ
R3に取り込む。
こうして、キースケーリング及び/又はタッチコント
ロールに応じたトータルレベルデータTLLEVと手動設定
されたトーンボリューム設定データVLMとが加算され、
楽音のトータルレベルを設定するトータルレベル制御デ
ータとしてレジスタR3にストアされる。
(7)EGとトータルレベル制御データの演算 次に、レジスタR3に記憶されているトータルレベル制
御データを多機能シフタ25で4ビット上位にシフトする
処理をオーバーフロー補償処理付きで行なう(ステップ
76)。これはレジスタR3に記憶されているトータルレベ
ル制御データの有効ビットが下位6ビットであるから、
この6ビットを4ビット上位にシフトして、エンベロー
プ計算値データEGにおける有効10ビットの最上位6ビッ
トの位置に合わせるためである。
また、トーンデータRAM36からエンベロープ計算値デ
ータEGを読み出し、レジスタR2にストアする。
次に、レジスタR3に記憶されているトータルレベル制
御データを多機能シフタ25で4ビット上位にシフトした
もの(R3≪4ビット)とレジスタR2に記憶されているエ
ンベロープ計算値データEGとを加算する(ステップ7
7)。この場合、第6図におけるマイクロコードは次の
ように設定される。
MC1=“1"、MC2=“0"、MC3=“0"、MC4=“1"、MC5
=“0"、MCm=R3セレクトして4ビット上位にシフト。
これにより、加算部20では下位13ビットの加算器21が
有効になり、有効ビット13ビットでR3≪4ビット+R2の
加算を実行する。この加算結果はレジスタGRにストアさ
れる。こうして、トータルレベル制御データがエンベロ
ープ計算値データEGに加算される。
また、低周波発振器37からトレモロ効果付与のための
振幅変調用低周波データAMLFOを受け、これをレジスタR
2にストアする。
(8)振幅変調演算 次に、レジスタGRに記憶したトータルレベル制御デー
タとエンベロープ計算値データEGの演算結果をオーバー
フロー補償回路33でオーバーフロー補償処理して10ビッ
トデータに整え、これをレジスタR1にストアする(ステ
ップ78)。
次に、レジスタR1に記憶されているトータルレベル制
御済のエンベロープ計算値データとレジスタR2に記憶さ
れている振幅変調用低周波データAMLFOとを加算する
(ステップ79)。この場合、第6図におけるマイクロコ
ードは次のように設定される。
MC1=“1"、MC2=“0"、MC3=“0"、MC4=“1"、MC5
=“0"、MCm=R1セレクト。
これにより、加算部20では下位13ビットの加算器21が
有効になり、有効ビット13ビットでR1+R2の加算を実行
する。この加算結果はレジスタGRにストアされる。こう
して、トータルレベル制御データによって加算されたエ
ンベロープ計算値データが更に振幅変調用低周波データ
AMLFOによって制御される。
次に、レジスタGRに記憶した演算結果(つまりトータ
ルレベル制御済のエンベロープ計算値データ、以下これ
をトーンレベルデータという)をオーバーフロー補償回
路33でオーバーフロー補償処理して10ビットデータに整
え、これをレジスタR1にストアする(ステップ80)。こ
のように10ビットデータに整える理由は、第8図(b)
に示したようなエンベロープ計算値データEGのフォーマ
ットに合わせるためである。
(9)波形サンプルデータのレベル乗算とPナンバのビ
ブラートデータ作成乗算の並列演算 次に、レジスタR1に記憶されているトータルレベル制
御済のエンベロープ計算値データつまりトーンレベルデ
ータを多機能シフタ25で4ビット下位にシフトし、それ
をレジスタR3にストアする(ステップ81)。これはトー
ンレベルデータの上位6ビットをレジスタR3の最下位6
ビットに位置させるためである。
次に、レジスタR3の最下位6ビットに位置しているト
ーンレベルデータの上位6ビットをトーンレベルデータ
TONLVとしてトーンデータRAM36に書き込む(ステップ8
2)。
また、アドレスラッチADLにストアされている位相ア
ドレス信号に応じてデータメモリ27から波形サンプルデ
ータを読み出し、これをレジスタR2にストアする。その
場合、波形サンプルデータの上位13ビットがレジスタR2
の下位13ビットに来るようにストアする。
また、レジスタR1に記憶されているトーンレベルデー
タのうち上位4ビットの指数部データを多機能シフタ25
内のレジスタに取り込み、保存しておく。
次に、トーンデータRAM36からPナンバPNを読み出
し、レジスタR1にストアする(ステップ83)。その場
合、PナンバPNの上位7ビットがレジスタR1の下位7ビ
ットに来るように位置合わせしてストアする。
次に、レジスタR1の出力を多機能シフタ25で13ビット
上位にシフトしたもの(R1≪13ビット)とレジスタR2の
出力とを加算する(ステップ84)。この場合、第6図に
おけるマイクロコードは次のように設定される。
MC1=“1"、MC2=“0"、MC3=“0"、MC4=“1"、MC5
=“1"、MCm=R1セレクトして13ビット上位にシフト。
つまり、MC1=“1"により加算部20を加算器21と22に
分離することを指示し、かつMC4=“1"、MC5=“1"によ
り、2つのゲート53,54を両方共可能化し、2つの加算
器21,22を分離して並列使用する。なお、ゲート54の7
ビット入力信号は“0"であるからMC5=“0"であっても
よい。
レジスタR1の下位7ビットにはPナンバPNの上位ビッ
ト7がストアされており、これを13ビット上位にシフト
することにより、PナンバPNの上位7ビットが20ビット
データの最上位7ビットに位置し、上位7ビットの加算
器22に入力される。また、レジスタR2に下位13ビットに
は波形サンプルデータの上位13ビットがストアされてお
り、これがゲート53を通過して下位13ビットの加算器21
に入力される。
これにより、加算部20では、下位13ビットに波形サン
プルデータの上位13ビットデータを位置させ、上位7ビ
ットにPナンバPNの上位7ビットデータを位置させ、両
データを合計20ビットデータとして並置する処理を行な
う。この両データの並置状態を第8図(c)に示す。こ
の加算部20の出力はレジスタR3にストアされる。
また、レジスタGRに記憶してあるトーンレベルデータ
のうち下位6ビットの仮数部データを第1のパラレル/
シリアル変換器PS1に取り込む。また、低周波発振器37
から発生されるビブラート効果付与のための低周波デー
タLFOを第2のパラレル/シリアル変換器PS2に取り込
む。この低周波データLFOも6ビットフォーマットのデ
ータである。
次に、レジスタR3にストアされている13ビット波形サ
ンプルデータと7ビットPナンバPNデータの並置データ
をレジスタR2に取り込む(ステップ85)。
次のステップ86乃至91の6ステップタイミングでは、
パラレル/シリアル変換器PS1,PS2から6ビットデータ
をシリアル出力し、パラレル/シリアル変換器PS1から
シリアル出力されるトーンレベルデータの仮数部データ
とレジスタR2の下位13ビットにストアされている波形サ
ンプルデータとをゲート53と加算器21を用いてシリアル
乗算すると共に、これに並行して、パラレル/シリアル
変換器PS2からシリアル出力される低周波データLFOとレ
ジスタR2の上位7ビットにストアされているPナンバPN
とをゲート54と加算器22を用いてシリアル乗算する処理
を行なう。
この場合、第6図におけるマイクロコードのうちMC1
〜MC5は次のように設定される。
MC1=“0"、MC2=“1"、MC3=“0"、MC4=“0"、MC5
=“0"。
つまり、MC2=“1"により並列乗算を行なうことを指
示し、アンドゲート55,56を可能化してパラレル/シリ
アル変換器PS1,PS2からのシリアルデータを通過させ、
ゲート53,54に与える。また、加算器20を加算器21と22
に分離することを指示し、それぞれ独立に演算を行な
う。ゲート53,54に与えられるシリアルデータが“1"の
ときレジスタR2の出力データが通過し、加算器21,22に
入力される。ゲート53,54に与えられるシリアルデータ
が“0"のときはレジスタR2の出力データが阻止され、加
算器21,22には“0"が入力される。つまり、レジスタR2
の出力データとシリアルデータの論理積が該ゲート53,5
4で求められ、部分積を求める演算が行なわれる。
加算部20の出力はレジスタR3に取り込まれ、このレジ
スタR3の出力が多機能シフタ25でマイクロコードMCmに
従って適宜シフトされ、加算部20に入力され、ゲート5
3,54からの部分積に加算される。すなわち、レジスタR3
には部分積の和が取り込まれる。
多機能シフタ25のマイクロコードMCmは、既に求めた
部分積の和を順次シフトし、これから加算する部分積と
の桁合わせ(重み合わせ)を行なう。なお、最初のシリ
アル乗算タイミング(ステップ86)では、MCm=阻止つ
まり“0"出力を指示する。その後のシリアル乗算タイミ
ング(ステップ87乃至91)では、MCm=R3セレクトし、
1ビット下位にシフトすることを指示する(R3≫1)。
なお、シリアルデータは下位ビットから順に送られるも
のとする。図において、P/Sb0はシリアルデータの最下
位ビットを示し、P/Sb1〜P/Sb5は順次上位のビットを示
す。
シリアル乗算を終了する最後のステップ91では、加算
部20の出力つまり乗算結果はレジスタR3とGRに取り込ま
れる。また、レジスタR2には“0"がセットされる。
こうして、レジスタR3,GRの下位13ビットには、トー
ンレベルデータの仮数部データと波形サンプルデータと
の乗算結果がストアされ、上位7ビットには、低周波デ
ータLFOとPナンバPNとの乗算結果がストアされる。
(10)PナンバPNのビブラート変調演算 次に、レジスタR3の出力を多機能シフタ25で13ビット
下位にシフトしたもの(R3≫13ビット)とレジスタR2の
出力(これは“0"である)とを加算し、その結果をレジ
スタR3にストアする(ステップ92)。つまり、レジスタ
R3では、7ビットからなる低周波データLFOとPナンバP
Nとの乗算結果が、その最下位7ビットに位置するよう
になる。この7ビットからなる低周波データLFOとPナ
ンバPNとの乗算結果は、ビブラート変調のための係数デ
ータとして使用するので、以下これをビブラートデータ
という。また、トーンデータRAM36からPナンバPNを読
み出し、レジスタR1にストアする(ステップ92)。
次に、レジスタR3のビブラートデータをレジスタR2に
取り込み、また、レジスタR1のPナンバPNをレジスタR3
に取り込む(ステップ93)。
次に、レジスタGRの下位13ビットと上位7ビットに並
置されているトーンレベルデータの仮数部データと波形
サンプルデータとの乗算結果及び低周波データLFOとP
ナンバPNとの乗算結果を、レジスタR1に取り込み、保存
しておく(ステップ94)。
次に、レジスタR2のビブラートデータをレジスタR3の
PナンバPNに加算し、その加算結果をレジスタGRにスト
アする(ステップ95)。また、レジスタR2に“0"をセッ
トする。この場合、第6図におけるマイクロコードは次
のように設定される。
MC1=“0"、MC2=“0"、MC3=“0"、MC4=“1"、MC5
=“1"、MCm=R3セレクト。
これにより、加算部20は20ビットすべてを有効ビット
として通常の加算動作を行ない、R3+R2を実行する。こ
うして、有効ビット20ビットからなるPナンバPNに微小
のビブラートデータを加算し、該PナンバPNをビブラー
ト変調する。そして、ビブラート変調済みのPナンバPN
をレジスタGRに保存しておく。
(11)仮数部レベル演算済みの波形サンプルデータに対
する指数部レベル演算 次に、レジスタR1に保存しておいた下位13ビットと上
位7ビットに並置されているトーンレベルデータの仮数
部データと波形サンプルデータとの乗算結果及び低周波
データLFOとPナンバPNとの乗算結果に対して、レジス
タR2の“0"を加算し、その結果をレジスタR3にストアす
る(ステップ96)。この場合、加算部20は20ビットすべ
てを有効ビットとして通常の加算動作を行なう状態とす
る。レジスタR1の合計20ビットデータを加算部20を介し
てレジスタR3に転送している。
次に、レジスタR3の下位13ビットにストアされている
トーンレベルデータの仮数部データと波形サンプルデー
タとの乗算結果を、多機能シフタ25に取り込み、これに
対して、前のステップ82のときに多機能シフタ25内に保
存していたトーンレベルデータの指数部に応じたビット
シフトを行ない、その結果を加算部20を経由してレジス
タR3に取り込む(ステップ97)。
こうして、トーンレベルデータの仮数部と指数部の両
方によるレベル制御を完了した波形サンプルデータがレ
ジスタR3にストアされる。
(12)補間演算 次に、トーンデータRAM36から補間目標サンプルデー
タTTONEを読み出し、レジスタR1にストアする(ステッ
プ98)。
そして、レジスタR3に記憶されているレベル制御を完
了した波形サンプルデータを新たなTTONEとしてトーン
データRAM36に書き込む(ステップ99)。
次に、位相アドレスレートデータの整数部PGRTが“0"
であるかを調べる(ステップ100)。PGRTが“0"であれ
ば、今回のタイミングでは補間目標サンプルデータTTON
Eは変化していず、補間演算によって波形サンプルデー
タを生成すべきであることを意味する。
そこで、トーンデータRAM36から補間目標サンプルデ
ータTTONEを読み出し、レジスタR1にストアする。ま
た、トーンデータRAM36から補間開始サンプルデータTON
EPを読み出し、レジスタR2にストアする(ステップ10
1)。
次に、R1−R2すなわちTTONE−TONEPの引算を行ない、
その結果をレジスタR3にストアする(ステップ102)。
この場合、第6図におけるマイクロコードは次のように
設定される。
MC1=“0"、MC2=“0"、MC3=“1"、MC4=“1"、MC5
=“1"、MCm=R1セレクト。
これにより、加算部20では有効ビット20ビットで引算
動作を行ない、R1−R2を求める。なお、これは波形サン
プルデータの有効ビットを20ビットとした例であるが、
有効ビットを13ビットとした場合は、加算部20で有効ビ
ット13ビットの引算動作を行なうようにすればよい。
また、レジスタR2を“0"にセットし、かつピッチ発生
器42から発生された位相アドレスレートデータの小数部
PGFRをパラレル/シリアル変換器PS1にロードする。
次に、レジスタR3のデータ(補間目標サンプルデータ
TTONEと補間開始サンプルデータTONEPとの差データ)を
レジスタR2に移し、レジスタR3には0+R2つまり“0"を
ストアする(ステップ103)。
次のステップ104,105の2ステップタイミングでは、
パラレル/シリアル変換器PS1,から2ビットの小数部デ
ータPGFRをシリアル出力し、これとレジスタR2の差デー
タTTONE−TONEPとをゲート53と加算器21を用いてシリア
ル乗算する。この場合、第6図におけるマイクロコード
は、前述のシリアル乗算の場合と同様に設定すればよ
い。
こうして最終的に求められた乗算結果はレジスタR3に
ストアされる。この乗算結果は当該補間ステップにおけ
る補間開始サンプルデータTONEPに対する変化幅を示し
ている。
次に、補間開始サンプルデータTONEPをレジスタR2に
ストアし(ステップ106)、R3+R2の加算を行なってTON
EPに変化幅を加算し、その結果をレジスタR3にストアす
る(ステップ107)。この場合、第6図におけるマイク
ロコードは、前述の通常の加算動作の場合と同様に設定
すればよい。こうして、レジスタR3には、補間によって
得た波形サンプルデータがストアされる。
次に、レジスタGRに保存してあったビブラート変調済
みのPナンバPNをピッチ発生器42に与え、該ピッチ発生
器42におけるPナンバアキュムレーションに利用させる
(ステップ108)。
最後のステップ109では、レジスタR3にストアされて
いる補間処理済みの波形サンプルデータを累算器44(第
1図)に送出する。
なお、ステップ100における判定において、位相アド
レスレートデータの整数部PGRTが“0"でない場合は、今
回のタイミングで補間目標サンプルデータTTONEが変化
したことを意味する。この場合は、レジスタR1にストア
している古い補間目標サンプルデータTTONEをレジスタR
3及びR2にストアし、かつこれを補間開始サンプルデー
タTONEPとしてトーンデータRAM36に書き込む(ステップ
110)。そうすると、次のステップ102におけるR1−R2=
“0"となり、ステップ104,105のシリアル乗算結果とし
て“0"がレジスタR3にストアされ、ステップ107で得ら
れる補間済み波形サンプルデータは補間開始サンプルデ
ータTONEPと同じものとなる。このように、補間開始ス
テップにおいては、前回の補間目標サンプルデータTTON
Eが補間開始サンプルデータTONEPとなり、これが補間済
み波形サンプルデータとしてそのまま出力される。
なお、加算部20を分離する場合、分離位置は下位13ビ
ットの位置に限らないのは勿論である。また、分離数も
2に限らずそれ以上であってもよい。つまり、並列演算
可能な系列数は2に限らず、それ以上に設定することが
できる。
〔発明の効果〕
以上の通り、この発明によれば、楽音信号発生のため
の各種の演算のための演算回路を1つの加算手段に統合
し、該加算手段を共用するようにしたので回路構成の大
幅な縮小を図ることができる、という優れた効果を奏す
る。また、加算手段の有効ビット数を切り替えることが
できるようにしたことにより、種々の性質の異なるデー
タの演算において1つの加算手段を共用するにあたって
計算時間の効率化を図ることができるので極めて有利で
ある。また、加算手段を2以上の独立の加算回路に分離
することができるようにし、分離したそれぞれの加算回
路において異なる演算を並行して行なうことができるよ
うにしたので、種々の性質の異なるデータの演算におい
て1つの加算手段を共用するにあたって、必要に応じて
並列演算を行なうことができ、演算効率を高めることが
できるため極めて有利である。
【図面の簡単な説明】
第1図はこの発明に係る楽音信号発生装置の一実施例を
示すハード構成ブロック図、 第2図はこの発明に係る楽音信号発生装置を適用した電
子楽器の一例を示すハード構成ブロック図、 第3図はサンプルタイミングとチャンネル時分割タイミ
ングの関係及び1チャンネル内におけるマイクロコード
ステップタイミングの関係を例示する図、 第4図は第1図におけるトーンデータRAMにおける1チ
ャンネル分のトーンデータ記憶エリアのメモリマップを
例示する図、 第5図は第1図におけるデータメモリのメモリマップを
略示する図、 第6図は第1図における加算部及びその周辺回路を幾分
詳しく示すブロック図、 第7図(a),(b),(c)はマイクロコードROMか
ら発生されるマイクロコードに従って第1図において実
行される各種処理の一例を示すフローチャート、 第8図(a),(b),(c)は各種データのフォーマ
ットを模式的に示す図、である。 10……楽音信号発生装置、20……加算部、21,22……加
算器、R1,R2,R3,GR……レジスタ、23……符号制御回
路、24……論理積回路、25……多機能シフタ、26……マ
イクロコードROM、27……データメモリ、ADL……アドレ
スラッチ、36……トーンデータRAM、PS1,PS2……パラレ
ル/シリアル変換器、41……エンベロープ制御ユニッ
ト、42……ピッチ発生器。

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】少なくとも2つの独立の加算回路に分離す
    るか又はこれらの加算回路を一体化して1つの加算器と
    して機能させるかの選択が制御信号によって行なえる加
    算手段と、 この加算手段に対して入力データをストアするための記
    憶手段と、 この記憶手段の出力データに対して、制御信号に応じた
    論理処理を可変的に施して前記加算手段に与える処理手
    段と、 楽音信号発生のための複数種類の演算をそれぞれ実現す
    るために、それぞれの演算に対応して前記記憶手段への
    データの導入及び前記処理手段への前記制御信号の供給
    を制御すると共に、前記加算手段に対する前記制御信号
    の供給を制御する制御手段と を具え、この制御手段の制御に従って前記記憶手段に導
    入するデータが決定されかつ前記処理手段の論理処理内
    容が決定されることにより、前記加算手段が、楽音信号
    発生のための複数種類の演算のために共用されるもので
    あり、かつ、前記加算手段が前記制御手段から与えられ
    る制御信号に応じて前記少なくとも2つの独立の加算回
    路に分離される場合は、分離したそれぞれの加算回路に
    おいて異なる演算を並行して行なうことができるように
    したことを特徴とする楽音信号発生装置。
  2. 【請求項2】前記加算手段は、前記制御手段から与えら
    れる制御信号に応じてその有効ビット数を切り替えるこ
    とができるものである請求項1に記載の楽音信号発生装
    置。
  3. 【請求項3】前記加算手段は、桁上げ信号出力と桁上げ
    信号入力間をゲートを介して接続した複数の加算回路を
    含み、このゲートを前記制御手段から与えられる制御信
    号に応じて制御することにより1又は複数の前記加算回
    路を選択的に有効にし、これにより該加算手段全体とし
    ての有効ビット数を切り替えるものである請求項2に記
    載の楽音信号発生装置。
  4. 【請求項4】前記加算手段は、桁上げ信号出力と桁上げ
    信号入力間をゲートを介して接続した複数の加算回路を
    含み、このゲートを前記制御手段から与えられる制御信
    号に応じて制御することにより前記複数の加算回路を分
    離または連結するようにした請求項1に記載の楽音信号
    発生装置。
  5. 【請求項5】前記制御手段は、楽音波形発生のための位
    相アドレス信号の演算、エンベロープ波形信号発生演
    算、楽音波形信号に対する振幅レベルスケーリング演算
    のために前記加算手段を共用するよう制御するものであ
    る請求項1に記載の楽音信号発生装置。
  6. 【請求項6】前記制御手段は、更に楽音波形補間演算の
    ために前記加算手段を共用するよう制御するものである
    請求項5に記載の楽音信号発生装置。
  7. 【請求項7】前記各演算におけるデータの有効ビット数
    に応じて、前記加算手段を分割使用して複数の演算を並
    列的に実行するものと、加算手段を単独の演算のために
    使用するものとに分類し、この分類に従う各単独演算及
    び並列演算をそれぞれ時分割的に実行するようにした請
    求項5又は6に記載の楽音信号発生装置。
  8. 【請求項8】波形サンプルデータとエンベロープパラメ
    ータデータを記憶したデータメモリを具備し、前記楽音
    波形発生のための位相アドレス信号の演算により作成し
    た位相アドレス信号により前記データメモリから波形サ
    ンプルデータを読み出し、前記データメモリから読み出
    した前記エンベロープパラメータデータに基づき前記エ
    ンベロープ波形信号発生演算を実行してエンベロープ波
    形信号を発生し、前記波形サンプルデータとエンベロー
    プ波形信号とに基づき前記振幅レベルスケーリング演算
    を行なう請求項5に記載の楽音信号発生装置。
  9. 【請求項9】前記処理手段は、データのシフト、ゲー
    ト、選択、反転等の論理処理を制御信号に応じて行なう
    ものである請求項1に記載の楽音信号発生装置。
  10. 【請求項10】前記処理手段は、引算のための符号制御
    処理を行なう手段、乗算のための論理積処理を行なう手
    段、及びデータシフト処理を行なう手段を含むものであ
    る請求項1に記載の楽音信号発生装置。
JP2000312A 1990-01-05 1990-01-05 楽音信号発生装置 Expired - Fee Related JP2580814B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000312A JP2580814B2 (ja) 1990-01-05 1990-01-05 楽音信号発生装置
US08/046,394 US5383386A (en) 1990-01-05 1993-04-14 Tone signal generating device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000312A JP2580814B2 (ja) 1990-01-05 1990-01-05 楽音信号発生装置

Publications (2)

Publication Number Publication Date
JPH03204697A JPH03204697A (ja) 1991-09-06
JP2580814B2 true JP2580814B2 (ja) 1997-02-12

Family

ID=11470398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000312A Expired - Fee Related JP2580814B2 (ja) 1990-01-05 1990-01-05 楽音信号発生装置

Country Status (2)

Country Link
US (1) US5383386A (ja)
JP (1) JP2580814B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2768168B2 (ja) * 1992-09-18 1998-06-25 ヤマハ株式会社 楽音合成装置
TW281745B (ja) * 1994-03-31 1996-07-21 Yamaha Corp
JP5614420B2 (ja) * 2012-03-09 2014-10-29 カシオ計算機株式会社 楽音発生装置、電子楽器、プログラム及び楽音発生方法
JP5915420B2 (ja) * 2012-07-05 2016-05-11 カシオ計算機株式会社 楽音発生装置、楽音発生方法、電子楽器及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4177706A (en) * 1976-09-08 1979-12-11 Greenberger Alan J Digital real time music synthesizer
JPS54134616A (en) * 1978-04-11 1979-10-19 Nippon Gakki Seizo Kk Electronic musical instrument
JPS58211789A (ja) * 1982-06-04 1983-12-09 ヤマハ株式会社 楽音合成装置
DE3318666C1 (de) * 1983-05-21 1984-10-11 WERSI-electronic GmbH & Co KG, 5401 Halsenbach Elektronisches Tastenmusikinstrument
US4736663A (en) * 1984-10-19 1988-04-12 California Institute Of Technology Electronic system for synthesizing and combining voices of musical instruments
US4707800A (en) * 1985-03-04 1987-11-17 Raytheon Company Adder/substractor for variable length numbers
US4622877A (en) * 1985-06-11 1986-11-18 The Board Of Trustees Of The Leland Stanford Junior University Independently controlled wavetable-modification instrument and method for generating musical sound
JP2603071B2 (ja) * 1986-11-15 1997-04-23 ヤマハ株式会社 エンベロープ制御装置
US4928569A (en) * 1986-11-15 1990-05-29 Yamaha Corporation Envelope shape generator for tone signal control
JPH0656553B2 (ja) * 1987-10-14 1994-07-27 ヤマハ株式会社 楽音信号発生装置

Also Published As

Publication number Publication date
US5383386A (en) 1995-01-24
JPH03204697A (ja) 1991-09-06

Similar Documents

Publication Publication Date Title
EP0377459B1 (en) Electronic musical instrument having plural different tone generators
US4953437A (en) Method and apparatus for digitally generating musical notes
JPH027078B2 (ja)
JP2580814B2 (ja) 楽音信号発生装置
US5248842A (en) Device for generating a waveform of a musical tone
EP0235538B1 (en) Waveform generator for electronic musical instrument
JP2766662B2 (ja) 楽音発生装置の波形データ読み出し装置及び波形データ読み出し方法
JPH07325581A (ja) 楽音発生装置
US5464947A (en) Apparatus for and method of producing fluctuations in sound for electronic sound system
JPS6330638B2 (ja)
JP2917668B2 (ja) 電子楽器
JP2970570B2 (ja) 楽音発生装置
JPH0462595A (ja) 電子楽器用処理装置
JP3551992B2 (ja) 電子楽器
JPH1185155A (ja) ミキシング装置および楽器用集積回路
JP2555732B2 (ja) 楽音信号合成方式
JP3044712B2 (ja) 電子楽器
JP2802714B2 (ja) 電子楽器
JPH0833734B2 (ja) 電子楽器における極値チャンネル指定方法
JPH02179688A (ja) 楽音信号発生装置
JPH0656553B2 (ja) 楽音信号発生装置
JP2912110B2 (ja) サイン合成方式およびこれによる楽音波形発生装置ならびに電子楽器
JP3578103B2 (ja) 音源用集積回路
JPS583237B2 (ja) デンシガツキ
JP2859073B2 (ja) 電子楽器

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees