JPH0153800B2 - - Google Patents
Info
- Publication number
- JPH0153800B2 JPH0153800B2 JP58011859A JP1185983A JPH0153800B2 JP H0153800 B2 JPH0153800 B2 JP H0153800B2 JP 58011859 A JP58011859 A JP 58011859A JP 1185983 A JP1185983 A JP 1185983A JP H0153800 B2 JPH0153800 B2 JP H0153800B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- waveform
- signal
- register
- section
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
産業上の利用分野
本発明は楽音発生装置に関し、特に、楽音波形
の形状を操作し時間的な変化を施して自然楽器音
を模擬する楽音発生装置に関する。 従来例の構成とその問題点 従来、自然楽器音を模擬するものとして、正弦
波合成方式を用いたもの、周波数変調方式を用い
たもの、減算方式(おもにアナログ処理でVCO,
VCF,VCAなどを使用したもの)を用いたもの
などが提示されているが、回路規模が大きくなり
実現化が困難なものとか、方式上の限界があると
いう問題点を有していた。 発明の目的 本発明の目的は、簡単な構成で自然楽器音を模
擬するとともに波形のつなぎ目で発生する不連続
を防ぐことができる楽音発生装置を提供するもの
である。 発明の構成 本発明の楽音発生装置は、#楽音の発音開始か
ら発音終了までの複数個の楽音波形のうち少なく
とも2つ以上の楽音波形をデイジタル値の形で記
憶する波形メモリと、発音音階を決定するノート
クロツク発生部と、上記ノートクロツク発生部の
出力信号に基づいて上記波形メモリから2つの波
形サンプルデータを読み出す波形読み出し部と、
上記波形読み出し部で読み出した2つの波形サン
プルデータを用いて楽音波形を形成する波形計算
部と、上記波形計算部のデイジタル出力信号をア
ナログ信号に変換する変換部とを具備し、前記波
形計算部で実行する計算内容は、前記波形読み出
し部で読み出した2つの波形サンプルデータを用
いて波形内挿演算を行ない、仮想波形サンプル値
を求めるようにしたものであり、ノートクロツク
に同期した楽音を発生するとともに、楽音波形の
形状を時間的に変化させて自然楽器音に近い楽音
波形を発生することができ、しかも隣り合う波形
サンプルデータが仮想サンプル値を求めるので、
波形のつなぎ目で発生する不連続を防ぐことがで
きる。 実施例の説明 以下本発明の一実施例を図面に基づいて説明す
る。まず、本発明の原理について説明する。第1
図に離散的に抽出した楽音1周期の楽音波形を示
す。発音開始時からの時間経過と楽音波形との関
係を下記に示す。 楽音波形 時間経過 A − 10ms B − 25ms C − 50ms D − 320ms E − 720ms 第1図からもわかるように、時間経過と共に楽
音波形の形状が変化している。本発明は、楽音波
形の時間的形状変化という点に着目し、波形の形
状に時間変化を施すことにより、自然楽器らしい
楽音を発生するものである。 データメモリの記憶内容についての説明 第2図に発音開始時から発音終了時までの楽音
波形のエンベロープ包絡状態の一例を示す。第2
図に示したエンベロープ包絡の発音開始時から発
音終了時までをI分割(I=0,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)との間に存在する仮想サンプル値f^
(Xi,n,o)を補間演算を用い仮想的に仮想サンプル
点の波形サンプル値を算出して近似値を求めよう
とするものである。補間式を下式に示す。 f^(Xi,n,o) ={(Xi+1,o)−(Xi,o)} ×m/M+(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) ={(Xi+1,o)−(Xi,o)} ×Nm+n/MN+(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は楽音の合成を
行なうため
の形状を操作し時間的な変化を施して自然楽器音
を模擬する楽音発生装置に関する。 従来例の構成とその問題点 従来、自然楽器音を模擬するものとして、正弦
波合成方式を用いたもの、周波数変調方式を用い
たもの、減算方式(おもにアナログ処理でVCO,
VCF,VCAなどを使用したもの)を用いたもの
などが提示されているが、回路規模が大きくなり
実現化が困難なものとか、方式上の限界があると
いう問題点を有していた。 発明の目的 本発明の目的は、簡単な構成で自然楽器音を模
擬するとともに波形のつなぎ目で発生する不連続
を防ぐことができる楽音発生装置を提供するもの
である。 発明の構成 本発明の楽音発生装置は、#楽音の発音開始か
ら発音終了までの複数個の楽音波形のうち少なく
とも2つ以上の楽音波形をデイジタル値の形で記
憶する波形メモリと、発音音階を決定するノート
クロツク発生部と、上記ノートクロツク発生部の
出力信号に基づいて上記波形メモリから2つの波
形サンプルデータを読み出す波形読み出し部と、
上記波形読み出し部で読み出した2つの波形サン
プルデータを用いて楽音波形を形成する波形計算
部と、上記波形計算部のデイジタル出力信号をア
ナログ信号に変換する変換部とを具備し、前記波
形計算部で実行する計算内容は、前記波形読み出
し部で読み出した2つの波形サンプルデータを用
いて波形内挿演算を行ない、仮想波形サンプル値
を求めるようにしたものであり、ノートクロツク
に同期した楽音を発生するとともに、楽音波形の
形状を時間的に変化させて自然楽器音に近い楽音
波形を発生することができ、しかも隣り合う波形
サンプルデータが仮想サンプル値を求めるので、
波形のつなぎ目で発生する不連続を防ぐことがで
きる。 実施例の説明 以下本発明の一実施例を図面に基づいて説明す
る。まず、本発明の原理について説明する。第1
図に離散的に抽出した楽音1周期の楽音波形を示
す。発音開始時からの時間経過と楽音波形との関
係を下記に示す。 楽音波形 時間経過 A − 10ms B − 25ms C − 50ms D − 320ms E − 720ms 第1図からもわかるように、時間経過と共に楽
音波形の形状が変化している。本発明は、楽音波
形の時間的形状変化という点に着目し、波形の形
状に時間変化を施すことにより、自然楽器らしい
楽音を発生するものである。 データメモリの記憶内容についての説明 第2図に発音開始時から発音終了時までの楽音
波形のエンベロープ包絡状態の一例を示す。第2
図に示したエンベロープ包絡の発音開始時から発
音終了時までをI分割(I=0,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)との間に存在する仮想サンプル値f^
(Xi,n,o)を補間演算を用い仮想的に仮想サンプル
点の波形サンプル値を算出して近似値を求めよう
とするものである。補間式を下式に示す。 f^(Xi,n,o) ={(Xi+1,o)−(Xi,o)} ×m/M+(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) ={(Xi+1,o)−(Xi,o)} ×Nm+n/MN+(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である。6
07はROM606に記憶している波形サンプル
データや制御データを用いて楽音を発生する楽音
発生部、608はサンプリングノイズを除去する
フイルタ、609は電気音響変換器である。 鍵盤部601、操作部602,CPU603,
RAM604,ROM605,606、楽音発生
部607はデータバス、アドレスバスおよびコン
トロール線で結合されている。このようにデータ
バスとアドレスバスとコントロール線とで結合す
る方法そのものは、ミニコンピユータやマイクロ
コンピユータを中心とした構成方法として公知の
ものである。データバスとしては8〜16本位用い
られ、このバス線上をデータが一方向でなく多方
向に時分割的に送受信される。アドレスバスも複
数本たとえば16本用意され、通常はCPU608
がアドレスコードを出力し、他の部分がアドレス
コードを受け取る。コントロール線は通常メモ
リ・リクエスト線()、I/Oリクエスト
線()、リード線()、ライト線()
などが用いられる。 はメモリを読み書きすることを示し、
IORQは入出力装置(I/O)の内容を取り出し
することを示し、はメモリやI/Oからデー
タを読み出すタイミングを示し、はメモリや
I/Oにデータを書き込むタイミングを示す。こ
のようなコントロール線を用いたものとしては、
ザイログ社のマイクロプロセツサZ80があげられ
る。 次に第6図の電子楽器の動作について述べる。
鍵盤部601は、複数の鍵スイツチを複数の群に
分けて、群内の鍵スイツチのオン/オフ状態を一
括してデータバスに送ることができるように構成
される。たとえば61鍵の鍵盤の場合、6鍵(半オ
クターブ)ずつの10群と1鍵の1群の11群に分
け、各群にアドレスコードを1つずつ割りつけ
る。アドレスラインに上記各群のうちの1つを示
すアドレスコードが到来し、信号と信号
RDが印加されると、鍵盤部601はそのアドレ
スコードを解読して、対応する群内のキースイツ
チのオン/オフを示す6ビツトまたは1ビツトの
データをデータバスに出力する。これらは、デコ
ーダ、バスドライバおよび若干のゲート回路を用
いて構成することができる。操作部602のう
ち、タブレツトスイツチについては、鍵盤部60
1と同様の構成をとることができる。 CPU603はその内部にあるプログラムカウ
ンタのコードに対応するROM605のアドレス
から命令コードを読み取り、これを解読して算術
演算、論理演算、データの読み込みと書き込み、
プログラムカウンタの内容の変更による命令のジ
ヤンプなどの作業を行なう。これらの作業の手順
はROM605に書き込まれている。まずCPU6
03はROM605より鍵盤部601のデータを
取り込むための命令を読み取り、鍵盤部601の
各鍵のオン/オフを示すコードを各群ごとに取り
込んで行く。そして、押鍵されている鍵コード
を、楽音発生部607の有限のチヤネルに割り当
て鍵コードに対応する楽音発生データを送出す
る。 次にCPU603は操作部602よりデータを
取り込むための一群の命令を順次ROM605か
ら読み取り、これらを解読して操作部602に対
応するアドレスコードとコントロール信号
とを出力し、データバスに操作部602のス
イツチの状態を表現するコードを出力させ、
CPU603内に読み込む。CPU603内に読み
込んだデータに基づいて、音色の選択や所定の効
果制御データの生成を行ない、ROM606に音
色選択データ、楽音発生部607に効果制御デー
タを送出する。なお、押鍵されている鍵コードを
楽音発生部607の有限のチヤネルに割り当てて
ゆく方法そのものは、ジユネレータアサイナ機能
として公知のものである。 楽音発生部607ではCPU603から供給さ
れた楽音発生データに基づいて、楽音合成データ
ROM606から所定の波形サンプルデータや制
御データを取り込み波形内挿処理を行なつて楽音
波形を発生し、フイルタ608を介して電気音響
変換器609から楽音を発生させる。なお、楽音
発生部607の内部処理としては前述に説明した
とおりである。 第7図にCPU603から楽音発生部607に
データを供給する場合のタイムチヤートを示す。
アドレスバスにI/Oポートアドレスを、データ
バスに楽音発生データや効果制御データなどをそ
れぞれ供給する。そして、コントロール信号
IORQとが論理ロウレベル(以下“0”と略
す)から論理ハイレベル(以下“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はエンベロープ特性がピアノ
型の時に有効となる
制御データなどを記憶しているROMである。6
07はROM606に記憶している波形サンプル
データや制御データを用いて楽音を発生する楽音
発生部、608はサンプリングノイズを除去する
フイルタ、609は電気音響変換器である。 鍵盤部601、操作部602,CPU603,
RAM604,ROM605,606、楽音発生
部607はデータバス、アドレスバスおよびコン
トロール線で結合されている。このようにデータ
バスとアドレスバスとコントロール線とで結合す
る方法そのものは、ミニコンピユータやマイクロ
コンピユータを中心とした構成方法として公知の
ものである。データバスとしては8〜16本位用い
られ、このバス線上をデータが一方向でなく多方
向に時分割的に送受信される。アドレスバスも複
数本たとえば16本用意され、通常はCPU608
がアドレスコードを出力し、他の部分がアドレス
コードを受け取る。コントロール線は通常メモ
リ・リクエスト線()、I/Oリクエスト
線()、リード線()、ライト線()
などが用いられる。 はメモリを読み書きすることを示し、
IORQは入出力装置(I/O)の内容を取り出し
することを示し、はメモリやI/Oからデー
タを読み出すタイミングを示し、はメモリや
I/Oにデータを書き込むタイミングを示す。こ
のようなコントロール線を用いたものとしては、
ザイログ社のマイクロプロセツサZ80があげられ
る。 次に第6図の電子楽器の動作について述べる。
鍵盤部601は、複数の鍵スイツチを複数の群に
分けて、群内の鍵スイツチのオン/オフ状態を一
括してデータバスに送ることができるように構成
される。たとえば61鍵の鍵盤の場合、6鍵(半オ
クターブ)ずつの10群と1鍵の1群の11群に分
け、各群にアドレスコードを1つずつ割りつけ
る。アドレスラインに上記各群のうちの1つを示
すアドレスコードが到来し、信号と信号
RDが印加されると、鍵盤部601はそのアドレ
スコードを解読して、対応する群内のキースイツ
チのオン/オフを示す6ビツトまたは1ビツトの
データをデータバスに出力する。これらは、デコ
ーダ、バスドライバおよび若干のゲート回路を用
いて構成することができる。操作部602のう
ち、タブレツトスイツチについては、鍵盤部60
1と同様の構成をとることができる。 CPU603はその内部にあるプログラムカウ
ンタのコードに対応するROM605のアドレス
から命令コードを読み取り、これを解読して算術
演算、論理演算、データの読み込みと書き込み、
プログラムカウンタの内容の変更による命令のジ
ヤンプなどの作業を行なう。これらの作業の手順
はROM605に書き込まれている。まずCPU6
03はROM605より鍵盤部601のデータを
取り込むための命令を読み取り、鍵盤部601の
各鍵のオン/オフを示すコードを各群ごとに取り
込んで行く。そして、押鍵されている鍵コード
を、楽音発生部607の有限のチヤネルに割り当
て鍵コードに対応する楽音発生データを送出す
る。 次にCPU603は操作部602よりデータを
取り込むための一群の命令を順次ROM605か
ら読み取り、これらを解読して操作部602に対
応するアドレスコードとコントロール信号
とを出力し、データバスに操作部602のス
イツチの状態を表現するコードを出力させ、
CPU603内に読み込む。CPU603内に読み
込んだデータに基づいて、音色の選択や所定の効
果制御データの生成を行ない、ROM606に音
色選択データ、楽音発生部607に効果制御デー
タを送出する。なお、押鍵されている鍵コードを
楽音発生部607の有限のチヤネルに割り当てて
ゆく方法そのものは、ジユネレータアサイナ機能
として公知のものである。 楽音発生部607ではCPU603から供給さ
れた楽音発生データに基づいて、楽音合成データ
ROM606から所定の波形サンプルデータや制
御データを取り込み波形内挿処理を行なつて楽音
波形を発生し、フイルタ608を介して電気音響
変換器609から楽音を発生させる。なお、楽音
発生部607の内部処理としては前述に説明した
とおりである。 第7図にCPU603から楽音発生部607に
データを供給する場合のタイムチヤートを示す。
アドレスバスにI/Oポートアドレスを、データ
バスに楽音発生データや効果制御データなどをそ
れぞれ供給する。そして、コントロール信号
IORQとが論理ロウレベル(以下“0”と略
す)から論理ハイレベル(以下“1”と略す)へ
変化するタイミングで、I/Oポートアドレスで
指定されているチヤネルにデータバスの内容をラ
ツチする。 次に、楽音発生部607に供給される各種のデ
ータについての説明を行なう。 第3表にI/Oポートアドレスと各種データの
内容を示す。I/Oポートアドレスは16進表示と
なつている。I/Oポートアドレス(00)16から
(07)16に対応するデータは、楽音発生データで8
チヤネル分すなわち、8音分の発生が可能となつ
ている。I/Oポートアドレス(08)16はサステ
インデータで、第5図で説明したエンベロープ信
号の減衰特性を指定するものである。I/Oポー
トアドレス(09)16はエンベロープ特性がピアノ
型の時に有効となる
【表】
【表】
ダンパデータで、サステインデータと同様エンベ
ロープ信号の減衰特性を指定するものである。
I/Oポートアドレス(OA)16はビートデータ
で、2楽音発生時の周波数のずれを指定するもの
である。I/Oポートアドレス(OB)16は効果制
御データで、ビブラートオン/オフ信号やグライ
ドオン/オフ信号などで構成している。 第4表に楽音発生データの構成内容を示す。ビ
ツト位置D0からD3は音階周波数を指定するノー
トクロツク指定データである。ビツト位置D4〜
D6は発生音域を指定する波形サンプル数指定デ
ータである。ビツト位置D7は鍵スイツチのオ
ン/オフ操作に伴なうキーオン/オフ信号で、オ
フ時は“0”、オン時は“1”となる。 第5表に波形サンプル数指定データSD0〜SD2
のコード内容とそのコードで指定される波形1周
期のサンプル数を示す。波形サンプル数指定デー
タSDは(000)2から(111)2までの8種類の波形
サンプル数が指定できるようになつており、本実
施例では、512サンプルから4サンプルまでを指
定
ロープ信号の減衰特性を指定するものである。
I/Oポートアドレス(OA)16はビートデータ
で、2楽音発生時の周波数のずれを指定するもの
である。I/Oポートアドレス(OB)16は効果制
御データで、ビブラートオン/オフ信号やグライ
ドオン/オフ信号などで構成している。 第4表に楽音発生データの構成内容を示す。ビ
ツト位置D0からD3は音階周波数を指定するノー
トクロツク指定データである。ビツト位置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はデイレイビブラートオン/オ
フ信号DVIBで、デイレイビブラート効果制御信
号であり、操作部602内のデイレイビブラート
オン/オフスイツチがオフの時“0”、オンの時
“1”となる。 ビツト位置D2はグランドオン/オフ信号GL
で、操作部602内のグライドスイツチがオフの
時“0”、オンの時“1”となる。 ビツト位置D3はオルガン型/ピアノ型指定信
号OPSで、エンベロープ特性を指定するもので
あり、オルガン型の時“0”、ピアノ型の時“1”
となる。 ビツト位置D4はダンパオン/オフ信号DMP
で、
ND3で表わされるコードの内容と、そのコード
で指定される指定音階の関係を示す。 第7表に効果制御データの構成内容を示す。ビ
ツト位置D0はビブラートオン/オフ信号VIBで、
操作部602内のビブラートオン/オフスイツチ
がオフの時“0”、オンの時“1”となる。 ビツト位置D1はデイレイビブラートオン/オ
フ信号DVIBで、デイレイビブラート効果制御信
号であり、操作部602内のデイレイビブラート
オン/オフスイツチがオフの時“0”、オンの時
“1”となる。 ビツト位置D2はグランドオン/オフ信号GL
で、操作部602内のグライドスイツチがオフの
時“0”、オンの時“1”となる。 ビツト位置D3はオルガン型/ピアノ型指定信
号OPSで、エンベロープ特性を指定するもので
あり、オルガン型の時“0”、ピアノ型の時“1”
となる。 ビツト位置D4はダンパオン/オフ信号DMP
で、
【表】
エンベロープ特性がピアノ型の時のみ有効となる
もので、ダンパオフの時“0”、オンの時“1”
となる。 ビツト位置D5はジエネレータアサイナ動作モ
ード信号GAMで、1鍵で楽音発生チヤネルを2
チヤネル使用する場合の指定信号であり、GAM
信号が“0”の場合、1鍵1チヤネル使用(8音
発生)となり、“1”の場合、1鍵2チヤネル使
用(4音発生)となる。 第8図は楽音発生部607の構成図である。第
8図において、801は主発振器、802は楽音
発生部607の動作内容を制御するシーケンサ、
803はCPU603から供給される各種のデー
タをラツチする入力レジスタ部、804はタイマ
ー、805は比較レジスタ部、806は発音すべ
き周波数に対応する周波数データを発生する周波
数データプロセツサ(以下FDPと略す)、807
は前述で説明した(2)式の波形内挿処理を行なう波
形データプロセツサ(以下WDPと略す)、808
は楽音合成データROM606から波形サンプル
データや制御データなどを読み込むデータ・リー
ド・プロセツサ(以下DRPと略す)、809は所
定のパルス幅のパルス信号を生成する読み出しパ
ルス形成部、810はWDP807,DRP808
などに演算処理要求を行なう計算要求フラグ発生
部、811はデイジタル信号をアナログ信号に変
換するデイジタル/アナログ変換器(以下DAC
と略す)、812は1チヤネル当りアナログスイ
ツチ2つとコンデンサ1つとで構成されており、
アナログ信号を保持するアナログバツフアメモリ
部、813は積分器である。 上記構成において、804,805,806,
810は発音音階を決定するノートクロツク発生
部を構成し、その出力信号に基づいて、データ読
み出し部であるDRP808が楽音合成データ
ROM606からデータを読み出す。 また、入力レジスタ部803、比較レジスタ部
805、FDP806、WDP807,DRP80
8、計算要求フラグ発生部810はシーケンサ8
02によつて処理を行なう手順が決められてい
る。 CPPU603から所定のチヤネルたとえばチヤ
ネル1に楽音発生データが供給されると、シーケ
ンサ803で決められている所定のタイミングで
入力レジスタ803からFDP806,WDP80
7,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に対応
するコンデンサに蓄えられている電荷は読み出し
信号によつて積分器818に流れ込む。 計算要求フラグ発生部810では、次波形サン
プルすなわち、仮想サンプル点f^(Xi,n,o+1)を求
めるための計算要求フラグを発生し保持する。そ
して、その後再び処理タイミングがチヤネル1と
なると、計算要求フラグが発生しているので前述
と同様に波形内挿処理が行なわれ、アナログバツ
フアメモリ部812内のコンデンサに電荷が蓄え
られる。以後、計算要求フラグに対応して波形内
挿処理が行なわれ、楽音波形を発生することにな
る。 なお、コンデンサに蓄える電荷は、f^(Xi,n,o-1)
と今回求めた波形サンプル値f^(Xi,n,o)との差分
に相当する。そして、積分器813によつて今回
求めた波形サンプル値f^(Xi,n,o)が復元されるこ
とになる。アナログバツフアメモリ部812と積
分器813周辺の動作については、特願昭57−
126413「波形読み出し装置」に述べてある。 第9図はシーケンサ802の一具体例のブロツ
ク図である。図中、901は2相クロツク信号
φ1と信号φ2とを発生する2相クロツク発生部、
902は1チヤネル当りの動作シーケンスを決め
る11進カウンタ、903は現在演算処理を行なつ
ているチヤネルコードを発生するカウンタ904
は動作手順が記憶されている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〜AR8
は読み出しパルス形成部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 ……(3) =210×1/8.00096MHz =127.98μs タイマー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はグ
もので、ダンパオフの時“0”、オンの時“1”
となる。 ビツト位置D5はジエネレータアサイナ動作モ
ード信号GAMで、1鍵で楽音発生チヤネルを2
チヤネル使用する場合の指定信号であり、GAM
信号が“0”の場合、1鍵1チヤネル使用(8音
発生)となり、“1”の場合、1鍵2チヤネル使
用(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が楽音合成データ
ROM606からデータを読み出す。 また、入力レジスタ部803、比較レジスタ部
805、FDP806、WDP807,DRP80
8、計算要求フラグ発生部810はシーケンサ8
02によつて処理を行なう手順が決められてい
る。 CPPU603から所定のチヤネルたとえばチヤ
ネル1に楽音発生データが供給されると、シーケ
ンサ803で決められている所定のタイミングで
入力レジスタ803からFDP806,WDP80
7,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に対応
するコンデンサに蓄えられている電荷は読み出し
信号によつて積分器818に流れ込む。 計算要求フラグ発生部810では、次波形サン
プルすなわち、仮想サンプル点f^(Xi,n,o+1)を求
めるための計算要求フラグを発生し保持する。そ
して、その後再び処理タイミングがチヤネル1と
なると、計算要求フラグが発生しているので前述
と同様に波形内挿処理が行なわれ、アナログバツ
フアメモリ部812内のコンデンサに電荷が蓄え
られる。以後、計算要求フラグに対応して波形内
挿処理が行なわれ、楽音波形を発生することにな
る。 なお、コンデンサに蓄える電荷は、f^(Xi,n,o-1)
と今回求めた波形サンプル値f^(Xi,n,o)との差分
に相当する。そして、積分器813によつて今回
求めた波形サンプル値f^(Xi,n,o)が復元されるこ
とになる。アナログバツフアメモリ部812と積
分器813周辺の動作については、特願昭57−
126413「波形読み出し装置」に述べてある。 第9図はシーケンサ802の一具体例のブロツ
ク図である。図中、901は2相クロツク信号
φ1と信号φ2とを発生する2相クロツク発生部、
902は1チヤネル当りの動作シーケンスを決め
る11進カウンタ、903は現在演算処理を行なつ
ているチヤネルコードを発生するカウンタ904
は動作手順が記憶されている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〜AR8
は読み出しパルス形成部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 ……(3) =210×1/8.00096MHz =127.98μs タイマー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はグ
【表】
【表】
ライド信号を発生するグライド信号発生部、14
05はセント尺度で表わされた周波数値を周波数
に正比例する周波数データに変換する指数変換
器、1406は演算部、1407はラツチ(AL
とする)、1408はラツチ(BLとする)、14
09は加算器(FAとする)、1410はバツフ
ア、1411はゲートである。1412,141
3,1414はバスラインで、1412がFAバ
ス、1413がFBバス、1414がFCバスであ
る。 なお、ビートデータCBD、ビブラートデータ
CVD、グライドデータCGDもセント尺度で表わ
している。 各種データの構造 セントピツチデータ(CPD) 11ビツト構成で、上位4ビツトで12音階平均律
を表わし、下位7ビツトで半音階を128等分した
各点を表わしている。 ビートデータ(CBD)、ビブラートデータ
(CVD)、グライドデータ(CGD) 各ビツト構成は8ビツトで、2の補数表現を用
い、半音階を128等分した分解能を有する。そし
て、正負のビート成分、ビブラート成分、グライ
ド成分を表わしている。 ビブラート信号発生部1403の説明 第22図はビブラート信号発生部1403の一
具体例の構成図を示す。図中、2201はビブラ
ートデータCVDを記憶しておくビブラート
ROM、2202はビブラートROM2201か
ら記憶してあるビブラートデータを読み出すため
のアドレスデータを格納するビブラートアドレス
レジスタ、2203はデイレイビブラート効果の
時に用いるシフタ、2204は信号RDCVDによ
りシフタ2203の出力信号(ビブラートデータ
CVD)をFBバスに供給するゲート、2205は
入力レジスタ部803から供給されている信号
KD、信号VIB、信号DVIBとシーケンサ802
から供給されている信号CHCに基づいてビブラ
ート信号発生部1403の動作条件を設定する条
件設定部、2206はゲート、2207はゲー
ト、2208はANDゲートである。 レジスタ2202に格納するアドレスデータは
14ビツト構成となつており、下位11ビツトをビブ
ラートROM2201のアドレスデータとし、上
位3ビツトをシフタ2203のシフトデータとし
ている。シフタ2203はシフトデータに基づい
てビブラートROM2201から供給されている
ビブラートデータCVDの振幅を制御するもので
ある。シフトデータVSFDとシフタ2203の出
力データOSFDとの関係は次のとおりである。 VSFD=(000)2…OSFD=(00)16,VSFD=
(001)2…OSFD=(CVD/64),VSFD=(010)2…
OSFD=(CVD/32),…,VSFD=(110)2…
OSFD=(CVD/2),VSFD=(111)2…OSFD=
(CVD) 条件設定部2205は次のような動作条件設定
を行なう。 ビブラートオフ ビブラートオン/オフ信号VIBが“0”の場合
であり、ゲート2206の出力を強制的に常時
(00)16とする。そうすると、シフタ2203のシ
フトデータは常時(000)2となる。この結果、シ
フタ2203の出力ダータは(00)16となる。す
なわち、ビブラートデータCVDが常時(00)16と
なる。 ビブラートオン ビブラートオン/オフ信号VIBが“1”で信号
DVIBが“0”の場合、ビブラートオン状態とな
る。レジスタ2202に格納しているアドレスデ
ータをゲート2206を介してゲート2207と
シフタ2203に供給する。なお、アドレスデー
タの上位3ビツト、すなわちシフトデータを強制
的に(111)2とする。そうすると、ゲート220
4の入力にはビブラートROM2201の出力
(ビブラートデータCVD)がそのまま供給される
ことになる。 デイレイビブラート ビブラートオン/オフ信号VIBとデイレイビブ
ラートオン/オフ信号DVIBが“1”の場合、デ
イレイビブラート状態となる。8チヤネルのキー
オン/オフ信号KDがすべてオフ状態からいずれ
か1つのキーオン/オフ信号KDがオン状態とな
ると、アドレスデータを(000)16に設定するよう
に、ゲート2206を制御する。そうすると、シ
フタ2203において、ビブラート信号1周期ご
とに、ビブラートデータCVDの振幅制御(0,
CVD/64,CVD/32,CVD/16,CVD/8,
CVD/4,CVD/2,CVD)が行なわれる。そ
して、シフトデータが(111)2となるとビブラー
トオン状態と同様にシフトデータを強制的に
(111)2とする。レジスタ2202に格納している
アドレスデータは、シーケンサ802から供給さ
れている信号RDVADによつてゲート2207を
介してFBバスに供給される。 演算部1406で加算処理されたアドレスデー
タは、信号WRVADによつて信号φ2の立上りエ
ツチで、FCバスからレジスタ2202に格納さ
れる。また、信号RDCVDによつて、ビブラート
ROM2201に格納してあるビブラートデータ
CVDがシフタ2203、ゲート2204を介し
てFBバスに供給される。 グライド信号発生部1404の説明 グライド信号発生部1404も、ビブラート信
号発生部1403と同様にグライドデータを記憶
しておくグライドROMと、そのグライドROM
から所定のグライドデータを読み出すためのグラ
イドアドレスレジスタと、発生制御を行なう制御
器とから構成している。 動作モードとしては、グライドオフとグライド
オンの2種類がある。 グライドオフ 信号GLが“0”の場合グライドオフ状態とな
る。グライドデータCGDは常時(00)16となる。 グライドオン 信号GLが“1”の場合グライドオン状態とな
る。通常よく知られているグライド効果と同様な
ものである。すなわち、8チヤネルのキーオン/
オフ信号KDがすべてオフ状態からいずれか1チ
ヤネルのキーオン/オフ信号KDがオンになると
グライドROMからグライドデータCGDが読み出
される。そして、所定な時間が経過すると再びグ
ライドデータCGDは(00)16となる。 指数変換器1405の説明 指数変換器1405は、セント尺度のデータを
周波数に正比例する周波数データEDに変換する
変換データを記憶した変換ROMを内蔵してい
る。 本実施例では、セント尺度上の周波数データ
CFDの上位4ビツト(ビツト位置7〜10)をア
ドレスデータとするEXP・ROMと、ビツト位置
0〜10の11ビツトをアドレスデータとする
ΔEXP・ROMとを用意している。 そして、演算部1406で加算処理されたセン
ト尺度上の周波数データCFDを信号WREXPに
よつて格納するレジスタと、そのレジスタに格納
されているデータをアドレスデータとする上述し
たEXP・ROM,ΔEXP・ROMと、信号
RDEXP,RDΔEXPによつてEXP・ROM,
ΔEXP・ROMに格納しているデータをそれぞれ
FAバス、FBバスに供給するゲートから構成され
ている。 EXP・ROMは100セント間隔の周波数データ
16語を記憶しており、ΔEXP・ROMは100セント
内を27すなわち128分割して0.78セント間隔に対
応する15×128=1920点の差分周波数データを記
憶している。 第15図はEDP806のデータ処理手順を示
す処理流れ図であり、下記に示す演算処理を行な
つて旧周波数データOFDから新周波数データ
NFDを算出し、比較レジスタ部805に供給し
ている。 CPD=CPD+CVD CPD=CPD+CGD CPD=CPD+CBD PD=EXP(CPD)+ΔEXP(CPD) NED=OFD+PD 次に第14図の動作について説明を行なう。
FDP806はシーケンサ802から送られてく
る処理命令信号によつて演算処理を行なつてい
る。 演算処理シーケンスの流れを第9表に示す。第
9表に示す命令ステツプを順次実行することによ
り、第15図で説明した処理が実現され新周波数
データNFDを算出することになる。 第9表に記載している記号の説明は次の通りで
ある。 ALは、FAバスに供給されたデータを信号φ2
の立下りエツヂでラツチするもの。 BLは、FBバスに供給されたデータを信号φ2
の立下りエツヂでラツチするもの。 CRALは、ラツチALを信号φ2の“1”でクリ
ヤする命令。 ADD1は、FA1409のキヤリー入力に“1”
を加える命令。 TCAは、FA1409で演算処理した結果を
FAバスに供給する命令。 RDCPDは、CPD発生部1401で発生するセ
ントピツチデータCPDをFAバスに供給する命
令。 RDCBDは、ビートデータゲート1402のゲ
ートを開いてFBバスにビートデータCBDを供給
する命令。 RDCVDは、ビブラート信号発生部1403で
発生するビブラートデータCVDをFBバスに供給
する命令。 RDCGDは、グライド信号発生部1404で発
生するグライドデータCGDをFBバスに供給する
命令。 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チヤネル
に使
05はセント尺度で表わされた周波数値を周波数
に正比例する周波数データに変換する指数変換
器、1406は演算部、1407はラツチ(AL
とする)、1408はラツチ(BLとする)、14
09は加算器(FAとする)、1410はバツフ
ア、1411はゲートである。1412,141
3,1414はバスラインで、1412がFAバ
ス、1413がFBバス、1414がFCバスであ
る。 なお、ビートデータCBD、ビブラートデータ
CVD、グライドデータCGDもセント尺度で表わ
している。 各種データの構造 セントピツチデータ(CPD) 11ビツト構成で、上位4ビツトで12音階平均律
を表わし、下位7ビツトで半音階を128等分した
各点を表わしている。 ビートデータ(CBD)、ビブラートデータ
(CVD)、グライドデータ(CGD) 各ビツト構成は8ビツトで、2の補数表現を用
い、半音階を128等分した分解能を有する。そし
て、正負のビート成分、ビブラート成分、グライ
ド成分を表わしている。 ビブラート信号発生部1403の説明 第22図はビブラート信号発生部1403の一
具体例の構成図を示す。図中、2201はビブラ
ートデータCVDを記憶しておくビブラート
ROM、2202はビブラートROM2201か
ら記憶してあるビブラートデータを読み出すため
のアドレスデータを格納するビブラートアドレス
レジスタ、2203はデイレイビブラート効果の
時に用いるシフタ、2204は信号RDCVDによ
りシフタ2203の出力信号(ビブラートデータ
CVD)をFBバスに供給するゲート、2205は
入力レジスタ部803から供給されている信号
KD、信号VIB、信号DVIBとシーケンサ802
から供給されている信号CHCに基づいてビブラ
ート信号発生部1403の動作条件を設定する条
件設定部、2206はゲート、2207はゲー
ト、2208はANDゲートである。 レジスタ2202に格納するアドレスデータは
14ビツト構成となつており、下位11ビツトをビブ
ラートROM2201のアドレスデータとし、上
位3ビツトをシフタ2203のシフトデータとし
ている。シフタ2203はシフトデータに基づい
てビブラートROM2201から供給されている
ビブラートデータCVDの振幅を制御するもので
ある。シフトデータVSFDとシフタ2203の出
力データOSFDとの関係は次のとおりである。 VSFD=(000)2…OSFD=(00)16,VSFD=
(001)2…OSFD=(CVD/64),VSFD=(010)2…
OSFD=(CVD/32),…,VSFD=(110)2…
OSFD=(CVD/2),VSFD=(111)2…OSFD=
(CVD) 条件設定部2205は次のような動作条件設定
を行なう。 ビブラートオフ ビブラートオン/オフ信号VIBが“0”の場合
であり、ゲート2206の出力を強制的に常時
(00)16とする。そうすると、シフタ2203のシ
フトデータは常時(000)2となる。この結果、シ
フタ2203の出力ダータは(00)16となる。す
なわち、ビブラートデータCVDが常時(00)16と
なる。 ビブラートオン ビブラートオン/オフ信号VIBが“1”で信号
DVIBが“0”の場合、ビブラートオン状態とな
る。レジスタ2202に格納しているアドレスデ
ータをゲート2206を介してゲート2207と
シフタ2203に供給する。なお、アドレスデー
タの上位3ビツト、すなわちシフトデータを強制
的に(111)2とする。そうすると、ゲート220
4の入力にはビブラートROM2201の出力
(ビブラートデータCVD)がそのまま供給される
ことになる。 デイレイビブラート ビブラートオン/オフ信号VIBとデイレイビブ
ラートオン/オフ信号DVIBが“1”の場合、デ
イレイビブラート状態となる。8チヤネルのキー
オン/オフ信号KDがすべてオフ状態からいずれ
か1つのキーオン/オフ信号KDがオン状態とな
ると、アドレスデータを(000)16に設定するよう
に、ゲート2206を制御する。そうすると、シ
フタ2203において、ビブラート信号1周期ご
とに、ビブラートデータCVDの振幅制御(0,
CVD/64,CVD/32,CVD/16,CVD/8,
CVD/4,CVD/2,CVD)が行なわれる。そ
して、シフトデータが(111)2となるとビブラー
トオン状態と同様にシフトデータを強制的に
(111)2とする。レジスタ2202に格納している
アドレスデータは、シーケンサ802から供給さ
れている信号RDVADによつてゲート2207を
介してFBバスに供給される。 演算部1406で加算処理されたアドレスデー
タは、信号WRVADによつて信号φ2の立上りエ
ツチで、FCバスからレジスタ2202に格納さ
れる。また、信号RDCVDによつて、ビブラート
ROM2201に格納してあるビブラートデータ
CVDがシフタ2203、ゲート2204を介し
てFBバスに供給される。 グライド信号発生部1404の説明 グライド信号発生部1404も、ビブラート信
号発生部1403と同様にグライドデータを記憶
しておくグライドROMと、そのグライドROM
から所定のグライドデータを読み出すためのグラ
イドアドレスレジスタと、発生制御を行なう制御
器とから構成している。 動作モードとしては、グライドオフとグライド
オンの2種類がある。 グライドオフ 信号GLが“0”の場合グライドオフ状態とな
る。グライドデータCGDは常時(00)16となる。 グライドオン 信号GLが“1”の場合グライドオン状態とな
る。通常よく知られているグライド効果と同様な
ものである。すなわち、8チヤネルのキーオン/
オフ信号KDがすべてオフ状態からいずれか1チ
ヤネルのキーオン/オフ信号KDがオンになると
グライドROMからグライドデータCGDが読み出
される。そして、所定な時間が経過すると再びグ
ライドデータCGDは(00)16となる。 指数変換器1405の説明 指数変換器1405は、セント尺度のデータを
周波数に正比例する周波数データEDに変換する
変換データを記憶した変換ROMを内蔵してい
る。 本実施例では、セント尺度上の周波数データ
CFDの上位4ビツト(ビツト位置7〜10)をア
ドレスデータとするEXP・ROMと、ビツト位置
0〜10の11ビツトをアドレスデータとする
ΔEXP・ROMとを用意している。 そして、演算部1406で加算処理されたセン
ト尺度上の周波数データCFDを信号WREXPに
よつて格納するレジスタと、そのレジスタに格納
されているデータをアドレスデータとする上述し
たEXP・ROM,ΔEXP・ROMと、信号
RDEXP,RDΔEXPによつてEXP・ROM,
ΔEXP・ROMに格納しているデータをそれぞれ
FAバス、FBバスに供給するゲートから構成され
ている。 EXP・ROMは100セント間隔の周波数データ
16語を記憶しており、ΔEXP・ROMは100セント
内を27すなわち128分割して0.78セント間隔に対
応する15×128=1920点の差分周波数データを記
憶している。 第15図はEDP806のデータ処理手順を示
す処理流れ図であり、下記に示す演算処理を行な
つて旧周波数データOFDから新周波数データ
NFDを算出し、比較レジスタ部805に供給し
ている。 CPD=CPD+CVD CPD=CPD+CGD CPD=CPD+CBD PD=EXP(CPD)+ΔEXP(CPD) NED=OFD+PD 次に第14図の動作について説明を行なう。
FDP806はシーケンサ802から送られてく
る処理命令信号によつて演算処理を行なつてい
る。 演算処理シーケンスの流れを第9表に示す。第
9表に示す命令ステツプを順次実行することによ
り、第15図で説明した処理が実現され新周波数
データNFDを算出することになる。 第9表に記載している記号の説明は次の通りで
ある。 ALは、FAバスに供給されたデータを信号φ2
の立下りエツヂでラツチするもの。 BLは、FBバスに供給されたデータを信号φ2
の立下りエツヂでラツチするもの。 CRALは、ラツチALを信号φ2の“1”でクリ
ヤする命令。 ADD1は、FA1409のキヤリー入力に“1”
を加える命令。 TCAは、FA1409で演算処理した結果を
FAバスに供給する命令。 RDCPDは、CPD発生部1401で発生するセ
ントピツチデータCPDをFAバスに供給する命
令。 RDCBDは、ビートデータゲート1402のゲ
ートを開いてFBバスにビートデータCBDを供給
する命令。 RDCVDは、ビブラート信号発生部1403で
発生するビブラートデータCVDをFBバスに供給
する命令。 RDCGDは、グライド信号発生部1404で発
生するグライドデータCGDをFBバスに供給する
命令。 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から供給されたビートデータ
を用いることにより、ビート効果を発生すること
ができる。 以上のように、複数の比較器を用い、比較デー
タを演算処理して求めるようにしているので、高
速動作の分周器を複数個(チヤネル数分)並列に
設ける必要がなく、回路規模が小さくできる。 さらに、信号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〜FDR8
で、8チヤネル分用意している。1604,16
05,1606はゲートGT1〜GT8で、8チヤ
ネル分用意している。1607,1608,16
09は比較器、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に従つてゲートGT1〜GT8
を経て読み出されるときは、新周波数データ
NFDが旧周波数データOFDとして、FBバスに供
給されることになる。 一方、比較器1607〜1609では、タイマ
ー804からの信号TM0〜TM9とレジスタ
FDR1〜FDR8に記憶されている周波数データFD
との比較を行ない、一致が検出できたら、一致信
号NC1〜NC8として出力する。 第17図は計要求フラグ発生部810の一具体
例を示す構成図である。図中、1701〜171
0はNANDゲート、1711はデコーダ、17
12〜1719はRSフリツプフロツプ
(RSFF)、1720はセレクタ、1721はD型
フリツプフロツプ(DFF)である。 比較レジスタ部805から供給される一致信号
NC1〜NC8をNANDゲート1701〜1708
でそれぞれ主発振器801から供給されている信
号MCKとの論理演算を行ない、その結果を
RSFF1712〜1719の各入力に供給す
る。一致信号が“1”(比較器で一致を検出)と
なると、RSFFの入力に“0”が供給されて出
力Qは“1”となり、第12図で説明した計算要
求信号CRFが“1”となる。 セレクタ1720で演算タイミングに対応する
信号CRFを選択し、DFF1721の入力Dに供
給する。そして、シーケンサ802から供給され
ている制御データの中の信号WRCLFが“1”と
なると、信号φ2の立下りエツヂでDFF1721
にセレクタ1720で選択した計算要求信号
CRFをラツチさせ、計算要求フラグ信号CLRFと
して出力される。計算要求が発生していればフラ
グ信号CLRFは“1”そうでなければフラグ信号
CLRFは“0”となる。 信号WRCLFの発生するタイミングは、命令ス
テツプ1で発生する。すなわち、演算処理の先頭
で計算要求の有無を判定することになる。 その後、命令ステツプ11のタイミングになる
と、シーケンサ802から供給される制御データ
の中の1つであるリセツト(クリヤ)信号
CRCLFが供給される。そうすると、フラグ信号
CLRFが“1”の場合、NANDゲート1709
の出力信号は“0”となり、チヤネルコード
CHCでデコーダ1711によつて選択された
RSFF1712〜1713の所定の入力に
“0”を供給し、RSFFをリセツト(出力Q=
“0”)する。この動作は、第12図で説明した計
算要求信号CRFをリセツトするタイミングに
対応している。 データ・リード・プリセツサDRP808の詳細
な説明 まず、楽音合成データROM606(以後デー
タ・バンク(DBK)と称する)のデータフオー
マツトについて説明する。 第18図はDBK606のデータ構成図である。
アドレス(0000)16から128語の領域に、以後に続
く合成データの先頭位置を示す先頭アドレスを格
納している。合成データは制御データと波形デー
タとで構成されている。制御データは波形間のく
り返し回数指定データと最終波形フラグデータと
でで構成されている。 くり返し数回数指定データについて説明する。
本実施例では、(2)式に示した内挿係数Nm+n/MN の算出を簡略化する方法として以下のようにして
いる。 (1) (2)式ではNm+n項の増分値が1であつたが
内挿係数の分子の増分値をαとする。 (2) 内挿係数Nm+n/MNを(Nm+n)α/MNαと置き 換える。 (3) MNα項を216と固定化する。 この結果、内挿係数は、(Nm+n)α/216と
なり、1/216項は右シフト操作を行なうだけでよ
く、MN項を求める必要がなくなり、内挿係数の
算出が容易になる。第10表にくり返し指定デー
タ、増分値α、波形1周期のサンプル数と、くり
返し回数の関係を示す。 なお、くり返し数指定データが(F)16であれば、
最終波形を示す最終波形フラグ(信号WEF)と
して用いている。 DBK606の制御データ領域は波形枚数に関
係なく128語として固定化している。また、制御
データ1語は16ビツト構成であり、次のように、
4ビツトづつの4グループにくり返し指定データ
を分けている。 ビツト位置0〜3…C,C# ,D音 ビツト位置4〜7…D# ,E,F音 ビツト位置8〜11…F# ,G,G# 音 ビツト位置12〜15…A,A# ,B音 このようにすることにより、音階によつて制御
データを異なるように設定でき、1オクターブ内
同一波形データを使用しても、楽音の立上り時間
や、波形形状の変化時間を1定にすることが可能
となる。波形データは1語16ビツト構成のPCM
データである。 第19図はDRP808の一具体例を示す構成
図である。図中、1901は楽音合成データ
ROM(DBK)606から所定の合成データを読
み出すアドレスデータを格納するDBKアドレス
レジスタ、1902は楽音合成データROM
(DBK)606から合成デー
5チヤネル〜8チヤネルに使用するビートデータ
CBDをCPU603から供給されたビートデータ
を用いることにより、ビート効果を発生すること
ができる。 以上のように、複数の比較器を用い、比較デー
タを演算処理して求めるようにしているので、高
速動作の分周器を複数個(チヤネル数分)並列に
設ける必要がなく、回路規模が小さくできる。 さらに、信号GAMを用いて、チヤネル1〜4
はビートデータCBD=(00)16とし、チヤネル5〜
8のビートデータCBDをCPU603から供給さ
れたビートデータを用い、チヤネル1とチヤネル
5、チヤネル2とチヤネル6、チヤネル3とチヤ
ネル7、チヤネル4とチヤネル8を同一楽音発生
データとすることにより複雑な周辺回路を付加す
ることなく、ビート効果を容易に実現できる。 さらに、グライド信号発生部1404内のグラ
イドアドレスカウンタをチヤネル分用意するだけ
でチヤネル独立のグライド効果を付加することが
できる。 第16図は比較レジスタ部805の一具体例を
示す構成図である。図中、1601,1602,
1603は周波数データレジスタFDR1〜FDR8
で、8チヤネル分用意している。1604,16
05,1606はゲートGT1〜GT8で、8チヤ
ネル分用意している。1607,1608,16
09は比較器、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に従つてゲートGT1〜GT8
を経て読み出されるときは、新周波数データ
NFDが旧周波数データOFDとして、FBバスに供
給されることになる。 一方、比較器1607〜1609では、タイマ
ー804からの信号TM0〜TM9とレジスタ
FDR1〜FDR8に記憶されている周波数データFD
との比較を行ない、一致が検出できたら、一致信
号NC1〜NC8として出力する。 第17図は計要求フラグ発生部810の一具体
例を示す構成図である。図中、1701〜171
0はNANDゲート、1711はデコーダ、17
12〜1719はRSフリツプフロツプ
(RSFF)、1720はセレクタ、1721はD型
フリツプフロツプ(DFF)である。 比較レジスタ部805から供給される一致信号
NC1〜NC8をNANDゲート1701〜1708
でそれぞれ主発振器801から供給されている信
号MCKとの論理演算を行ない、その結果を
RSFF1712〜1719の各入力に供給す
る。一致信号が“1”(比較器で一致を検出)と
なると、RSFFの入力に“0”が供給されて出
力Qは“1”となり、第12図で説明した計算要
求信号CRFが“1”となる。 セレクタ1720で演算タイミングに対応する
信号CRFを選択し、DFF1721の入力Dに供
給する。そして、シーケンサ802から供給され
ている制御データの中の信号WRCLFが“1”と
なると、信号φ2の立下りエツヂでDFF1721
にセレクタ1720で選択した計算要求信号
CRFをラツチさせ、計算要求フラグ信号CLRFと
して出力される。計算要求が発生していればフラ
グ信号CLRFは“1”そうでなければフラグ信号
CLRFは“0”となる。 信号WRCLFの発生するタイミングは、命令ス
テツプ1で発生する。すなわち、演算処理の先頭
で計算要求の有無を判定することになる。 その後、命令ステツプ11のタイミングになる
と、シーケンサ802から供給される制御データ
の中の1つであるリセツト(クリヤ)信号
CRCLFが供給される。そうすると、フラグ信号
CLRFが“1”の場合、NANDゲート1709
の出力信号は“0”となり、チヤネルコード
CHCでデコーダ1711によつて選択された
RSFF1712〜1713の所定の入力に
“0”を供給し、RSFFをリセツト(出力Q=
“0”)する。この動作は、第12図で説明した計
算要求信号CRFをリセツトするタイミングに
対応している。 データ・リード・プリセツサDRP808の詳細
な説明 まず、楽音合成データROM606(以後デー
タ・バンク(DBK)と称する)のデータフオー
マツトについて説明する。 第18図はDBK606のデータ構成図である。
アドレス(0000)16から128語の領域に、以後に続
く合成データの先頭位置を示す先頭アドレスを格
納している。合成データは制御データと波形デー
タとで構成されている。制御データは波形間のく
り返し回数指定データと最終波形フラグデータと
でで構成されている。 くり返し数回数指定データについて説明する。
本実施例では、(2)式に示した内挿係数Nm+n/MN の算出を簡略化する方法として以下のようにして
いる。 (1) (2)式ではNm+n項の増分値が1であつたが
内挿係数の分子の増分値をαとする。 (2) 内挿係数Nm+n/MNを(Nm+n)α/MNαと置き 換える。 (3) MNα項を216と固定化する。 この結果、内挿係数は、(Nm+n)α/216と
なり、1/216項は右シフト操作を行なうだけでよ
く、MN項を求める必要がなくなり、内挿係数の
算出が容易になる。第10表にくり返し指定デー
タ、増分値α、波形1周期のサンプル数と、くり
返し回数の関係を示す。 なお、くり返し数指定データが(F)16であれば、
最終波形を示す最終波形フラグ(信号WEF)と
して用いている。 DBK606の制御データ領域は波形枚数に関
係なく128語として固定化している。また、制御
データ1語は16ビツト構成であり、次のように、
4ビツトづつの4グループにくり返し指定データ
を分けている。 ビツト位置0〜3…C,C# ,D音 ビツト位置4〜7…D# ,E,F音 ビツト位置8〜11…F# ,G,G# 音 ビツト位置12〜15…A,A# ,B音 このようにすることにより、音階によつて制御
データを異なるように設定でき、1オクターブ内
同一波形データを使用しても、楽音の立上り時間
や、波形形状の変化時間を1定にすることが可能
となる。波形データは1語16ビツト構成のPCM
データである。 第19図はDRP808の一具体例を示す構成
図である。図中、1901は楽音合成データ
ROM(DBK)606から所定の合成データを読
み出すアドレスデータを格納するDBKアドレス
レジスタ、1902は楽音合成データROM
(DBK)606から合成デー
【表】
タをDRP808の内部に取り込むDBK入力バツ
フア、1903はDBK606に格納している先
頭アドレスを読み取るためのアドレスデータを出
力する参照先頭アドレスゲート、1904は
(Xi,o)に相当する波形サンプルに値を格納する
波形データメモリ、1905は(Xi+1,o)に相
当する波形サンプル値を格納する波形データメモ
リ、1906は内挿係数の分子に相当する
(Nm+n)αを格納する係数データメモリ、1
907は先頭アドレスレジスタ、1908は内挿
係数の(Nm+n)α項の増分値αを生成する増
分生成部、1909は波形1周期内のサンプルナ
ンバnを格納する波形サンプルナンバメモリ、1
910は波形ナンバiを格納する波形ナンバメモ
リ、1911はオフセツトデータゲート、191
2は累積レジスタ(ACC)、1913はフルアダ
ー、ラツチ、やキヤリフラグレジスタなどで構成
している演算部、1914は演算部1913内の
ラツチALにデータを供給するDAバス、191
5は演算部1913内のラツチBLにデータを供
給するDBバス、1916は演算部1913で行
なう演算結果を各レジスタに供給するDCバス、
1917はDBK入力バツフア1902の出力を
波形データメモリ1904などに供給する
DBKバスである。 次に各部の構成について説明する。波形データ
メモリ1904、波形データメモリ1905
は、それぞれDBK606から読み取つた波形デ
ータをシーケンサ802から供給されている制御
データの中の信号WRWDI,WRWDによつて
一時格納しておくレジスタR(WD),R(WD
)と、8チヤネル分の波形データを記憶する16
ビツト×8語のメモリM(WD),M(WD)
で構成されている。通常、メモリは読み出し状態
となつており、シーケンサ802から供給されて
いるチヤネルコードCHCに基づいたチヤネルの
波形データ,をWDP807に供給し
ている。 そして、シーケンス802からの制御データの
中の信号WRRAMによつて、メモリは書き込み
状態となり、レジスタR(WD),R(WD)
に格納している波形データをチヤネルコード
CHCに基づいたメモリの所定のアドレスに書き
込む。 係数データメモリ1906は、演算部1913
の演算結果をシーケンサ802から供給されてい
る制御データの中の信号WRMDによつて一時格
納しておくレジスタR(MD)と、8チヤネル分
の係数データを記憶する16ビツト×8語のメモリ
M(MD)と、メモリM(MD)の出力データを信
号RDMDによつてDBバスに供給するゲートで構
成している。通常、メモリは読み出し状態となつ
ており、シーケンサ802から供給されているチ
ヤネルコードCHCに基づいたアドレスの係数デ
ータ(M(MD))を、上述のゲートとWDP80
7に供給している。 そして、信号WRRAMによつて、メモリは書
き込み状態となり、レジスタR(MD)に格納し
ている新係数データをチヤネルコードCHCに基
づいたメモリの所定のアドレスに書き込む。 先頭アドレスレジスタ1907は、DBK60
6から読み取つた先頭番地をシーケンサ802か
らの制御データの中(以下同じ)の信号TDAに
よつてDAバスに供給するゲート1と、信号
WRTADによつて読み取つた先頭番地を一時格
納するレジスタR(TAD)と、信号RDTADによ
つてレジスタR(TAD)に格納している先頭番地
をDBバスに供給するゲート2から構成してい
る。 増分生成部1908は、DBK606から読み
取つた制御データを信号WRREPによつて一時格
納するレジスタR(REP)と、入力レジスタ部8
03から供給されているノートクロツク指定デー
タNDに基づいてレジスタR(REP)に格納して
いる制御データから所定のくり返し指定データを
選択する選択器と、選択器で選択したくり返し数
指定データを第10表に示した増分値αに変換する
変換器と、最終波形フラグを検出して最終波形フ
ラグWEF〔“1”〕を出力する検出器と、信号
RDREPによつて変換器の出力データ(増分値
α)をDAバスに供給するゲートとで構成してい
る。 波形サンプルナンバメモリ1909は、演算部
1913の演算結果(新波形サンプルナンバn)
を信号WRWSNによつて一時格納しておくレジ
スタR(WSN)と、8チヤネル分の波形サンプル
ナンバnを記憶する16ビツト×8語のメモリM
(WSN)と、メモリM(WSN)の出力データを信
号RDWSNによつてDBバスに供給するゲートと
で構成している。通常、メモリM(WSN)は読み
出し状態となつており、シーケンサ802から供
給されているチヤネルコードCHCに基づいたチ
ヤネルの波形サンプルナンバnを上述のゲートに
供給している。 そして、信号WRRAMによつてメモリM
(WSN)は書き込み状態となり、レジスタR
(WSN)に格納している新波形サンプルナンバn
をチヤネルコードに基づいたメモリの所定のアド
レスに書き込む。 波形ナンバメモリ1910は、演算部1913
の演算結果(新波形ナンバi)を信号WRWND
によつて一時格納しておくレジスタR(WND)
と、8チヤネル分の波形ナンバiを記憶する16ビ
ツト×8語のメモリM(WND)と、メモリM
(WND)の出力データ(波形ナンバ)を入力レ
ジスタ部803から供給されている波形サンプル
数指定データSDに基づいてシフト処理(i×サ
ンプル数)を行ない、波形ナンバアドレスWNA
を出力するシフタ部と、信号RDWNDによつて
メモリの出力データをDBバスに供給するゲート
1と、信号RDWNAによつてシフタ部の出力デ
ータをDBバスに供給するゲート2と、波形サン
プル数指定データSDに対応するサンプル数デー
タを発生するサンプル数発生器と、信号
RDNWSによつてサンプル数発生器の出力デー
タをDBバスに供給するゲート3とで構成してい
る。 通常メモリM(WND)は読み出し状態となつ
ており、シーケンサ802から供給されているチ
ヤネルコードCHCに基づいたチヤネルの波形ナ
ンバiを上述のゲート1とシフタ部に供給してい
る。 そして、信号WRRAMによつて、メモリM
(WND)は書き込み状態となり、レジスタR
(WND)に格納している新波形ナンバiをチヤ
ネルコードに基づいたメモリの所定のアドレスに
書き込む。 累積レジスタ(ACC)1912は、演算部1
913の演算結果を信号WRACCによつて一時格
納しておくレジスタR(ACC)と、信号RDACC
によつてレジスタR(ACC)に格納しているデー
タをDAバスに供給するゲートとで構成してい
る。 第23図は演算部1913の一具体例を示す構
成図である。2301は信号φ2の立下りエツヂ
でDAバスの内容を記憶するラツチALであり、
信号DCRALでクリアされる。2302は信号φ2
の立下りエツヂでDBバスの内容を記憶するラツ
チBL、2303はキヤリ入力(CI)とキヤリ出
力(CO)とを有する16ビツト加算器(FA)、3
204は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)をシーケンサ802か
ら供給されている信号RDRTAによつてDCバス
に供給する。そして、DCバス上の信号ND,SD
を信号WRDBKによつてDBKアドレスレジスタ
1901に格納し、DBK606に供給する。
DBK606から読み出した先頭アドレスデータ
TADを信号WRTADによつて先頭アドレスレジ
スタ1907のレジスタR(TAD)に格納する。 くり返し数指定データの読み込み処理。 読み込んだ先頭アドレスデータTADと波形ナ
ンバメモリ1910に格納している波形ナンバi
との加算処理(TAD+i)を演算部1913で
行ない、加算結果をDBKアドレスレジスタ19
01に格納し、DBK606からくり返し数指定
データを読み取り、増分生成部1908のレジス
タR(REP)に格納する。 波形サンプル(Xi,o)の読み取り処理。 先頭アドレスレジスタ1907に格納した先頭
アドレスデータTADとオフセツトデータ
(256)10との加算処理(WAD1=TAD+256)を
演算部1913で行ない、加算結果をACC19
12のR(ACC)に格納する。ACC1912に格
納したアドレスデータWAD1と波形サンプルナ
ンバメモリ1910に格納している波形サンプル
ナンバnとの加算処理(WAD1=WAD1+n)
を演算部1913で行ない加算結果をACC19
12に格納する。そして、ACC1912に格納
してあるアドレスデータWAD1′と波形ナンバi
を波形サンプル数指定データSDに基づいてシフ
ト処理したデータ(i×サンプル数;i=0,
1,2,…,I−1)との加算処理(WAD1″=
WAD1′+i×サンプル数)を演算部1913で
行ない、加算結果をACC1912とDBKアドレ
スレジスタ1901に格納し、DBK606から
(Xi,o)に相当する波形サンプルデータを読み
取り波形メモリ1904内のレジスタR(WD
)に格納する。 波形サンプル(Xi+1,o)の読み取り処理。 ACC1912に格納したアドレスデータ
WAD1″と波形サンプル数指定データSDで指定し
ている波形サンプル数NWS(波形ナンバメモリ1
910内で発生)との加算処理(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)α〕と増分生成部1908で
発生している増分値αとの加算処理を演算部19
13で行ない、加算結果を係数データメモリ19
06内にある係数データレジスタR(MD)に格
納すると共に、加算結果がオーバフオローした場
合演算部1913内にあるキヤリーフラグレジス
タCFを“1”にセツトする。 波形ナンバiの更新処理。 波形ナンバメモリ1910に格納している波形
ナンバiと上述で説明したキヤリーフラグレジ
スタCFの内容との加算処理(i=i+CF)を演
算部1913で行ない、波形ナンバメモリ191
0内にある波形ナンバレジスタR(WND)に格
納する。 レジスタR(WND),R(WSD),R(MD),
R(WD),R(WD)に格納した各種デー
タをチヤネルコードCHCで指定されたそれぞ
れのメモリ領域へのデータ転送処理。 命令ステツプ11のタイミングで、シーケンサ8
02から供給される信号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,2307の制御
入力に“1”が供給される。この結果、DCバス
には(0000)16が供給され、波形サンプルナンバ
メモリ1909内のレジスタR(WSN)に
(0000)16を格納する。 波形ナンバi=(0)10設定。 第11表に示した命令ステツプ10のタイミング
で、信号WRWNDが演算部1913に供給され
る。そうすると、ANDゲート2311の出力信
号は“1”となり、ゲート2306,2307の
制御入力に“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ゲート2
312に供給される。そうすると、ANDゲート
2312の出力信号は“1”となり、ゲート23
06,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から供給され
る。 RDOSDは、オフセツトデータ256をDAバ
スに供給する。 RDACCは、ACC1912内のレジスタR
(ACC)に格納しているデータをDAバスに供給
する命令。 RDREPは、増分生成部1908内で生成され
た増分値αをDAバスに供給する命令。 RDWSNは、波形サンプルナンバメモリ19
09内のメモリM(WSN)から読み出されている
波形サンプルナンバnを
フア、1903はDBK606に格納している先
頭アドレスを読み取るためのアドレスデータを出
力する参照先頭アドレスゲート、1904は
(Xi,o)に相当する波形サンプルに値を格納する
波形データメモリ、1905は(Xi+1,o)に相
当する波形サンプル値を格納する波形データメモ
リ、1906は内挿係数の分子に相当する
(Nm+n)αを格納する係数データメモリ、1
907は先頭アドレスレジスタ、1908は内挿
係数の(Nm+n)α項の増分値αを生成する増
分生成部、1909は波形1周期内のサンプルナ
ンバnを格納する波形サンプルナンバメモリ、1
910は波形ナンバiを格納する波形ナンバメモ
リ、1911はオフセツトデータゲート、191
2は累積レジスタ(ACC)、1913はフルアダ
ー、ラツチ、やキヤリフラグレジスタなどで構成
している演算部、1914は演算部1913内の
ラツチALにデータを供給するDAバス、191
5は演算部1913内のラツチBLにデータを供
給するDBバス、1916は演算部1913で行
なう演算結果を各レジスタに供給するDCバス、
1917はDBK入力バツフア1902の出力を
波形データメモリ1904などに供給する
DBKバスである。 次に各部の構成について説明する。波形データ
メモリ1904、波形データメモリ1905
は、それぞれDBK606から読み取つた波形デ
ータをシーケンサ802から供給されている制御
データの中の信号WRWDI,WRWDによつて
一時格納しておくレジスタR(WD),R(WD
)と、8チヤネル分の波形データを記憶する16
ビツト×8語のメモリM(WD),M(WD)
で構成されている。通常、メモリは読み出し状態
となつており、シーケンサ802から供給されて
いるチヤネルコードCHCに基づいたチヤネルの
波形データ,をWDP807に供給し
ている。 そして、シーケンス802からの制御データの
中の信号WRRAMによつて、メモリは書き込み
状態となり、レジスタR(WD),R(WD)
に格納している波形データをチヤネルコード
CHCに基づいたメモリの所定のアドレスに書き
込む。 係数データメモリ1906は、演算部1913
の演算結果をシーケンサ802から供給されてい
る制御データの中の信号WRMDによつて一時格
納しておくレジスタR(MD)と、8チヤネル分
の係数データを記憶する16ビツト×8語のメモリ
M(MD)と、メモリM(MD)の出力データを信
号RDMDによつてDBバスに供給するゲートで構
成している。通常、メモリは読み出し状態となつ
ており、シーケンサ802から供給されているチ
ヤネルコードCHCに基づいたアドレスの係数デ
ータ(M(MD))を、上述のゲートとWDP80
7に供給している。 そして、信号WRRAMによつて、メモリは書
き込み状態となり、レジスタR(MD)に格納し
ている新係数データをチヤネルコードCHCに基
づいたメモリの所定のアドレスに書き込む。 先頭アドレスレジスタ1907は、DBK60
6から読み取つた先頭番地をシーケンサ802か
らの制御データの中(以下同じ)の信号TDAに
よつてDAバスに供給するゲート1と、信号
WRTADによつて読み取つた先頭番地を一時格
納するレジスタR(TAD)と、信号RDTADによ
つてレジスタR(TAD)に格納している先頭番地
をDBバスに供給するゲート2から構成してい
る。 増分生成部1908は、DBK606から読み
取つた制御データを信号WRREPによつて一時格
納するレジスタR(REP)と、入力レジスタ部8
03から供給されているノートクロツク指定デー
タNDに基づいてレジスタR(REP)に格納して
いる制御データから所定のくり返し指定データを
選択する選択器と、選択器で選択したくり返し数
指定データを第10表に示した増分値αに変換する
変換器と、最終波形フラグを検出して最終波形フ
ラグWEF〔“1”〕を出力する検出器と、信号
RDREPによつて変換器の出力データ(増分値
α)をDAバスに供給するゲートとで構成してい
る。 波形サンプルナンバメモリ1909は、演算部
1913の演算結果(新波形サンプルナンバn)
を信号WRWSNによつて一時格納しておくレジ
スタR(WSN)と、8チヤネル分の波形サンプル
ナンバnを記憶する16ビツト×8語のメモリM
(WSN)と、メモリM(WSN)の出力データを信
号RDWSNによつてDBバスに供給するゲートと
で構成している。通常、メモリM(WSN)は読み
出し状態となつており、シーケンサ802から供
給されているチヤネルコードCHCに基づいたチ
ヤネルの波形サンプルナンバnを上述のゲートに
供給している。 そして、信号WRRAMによつてメモリM
(WSN)は書き込み状態となり、レジスタR
(WSN)に格納している新波形サンプルナンバn
をチヤネルコードに基づいたメモリの所定のアド
レスに書き込む。 波形ナンバメモリ1910は、演算部1913
の演算結果(新波形ナンバi)を信号WRWND
によつて一時格納しておくレジスタR(WND)
と、8チヤネル分の波形ナンバiを記憶する16ビ
ツト×8語のメモリM(WND)と、メモリM
(WND)の出力データ(波形ナンバ)を入力レ
ジスタ部803から供給されている波形サンプル
数指定データSDに基づいてシフト処理(i×サ
ンプル数)を行ない、波形ナンバアドレスWNA
を出力するシフタ部と、信号RDWNDによつて
メモリの出力データをDBバスに供給するゲート
1と、信号RDWNAによつてシフタ部の出力デ
ータをDBバスに供給するゲート2と、波形サン
プル数指定データSDに対応するサンプル数デー
タを発生するサンプル数発生器と、信号
RDNWSによつてサンプル数発生器の出力デー
タをDBバスに供給するゲート3とで構成してい
る。 通常メモリM(WND)は読み出し状態となつ
ており、シーケンサ802から供給されているチ
ヤネルコードCHCに基づいたチヤネルの波形ナ
ンバiを上述のゲート1とシフタ部に供給してい
る。 そして、信号WRRAMによつて、メモリM
(WND)は書き込み状態となり、レジスタR
(WND)に格納している新波形ナンバiをチヤ
ネルコードに基づいたメモリの所定のアドレスに
書き込む。 累積レジスタ(ACC)1912は、演算部1
913の演算結果を信号WRACCによつて一時格
納しておくレジスタR(ACC)と、信号RDACC
によつてレジスタR(ACC)に格納しているデー
タをDAバスに供給するゲートとで構成してい
る。 第23図は演算部1913の一具体例を示す構
成図である。2301は信号φ2の立下りエツヂ
でDAバスの内容を記憶するラツチALであり、
信号DCRALでクリアされる。2302は信号φ2
の立下りエツヂでDBバスの内容を記憶するラツ
チBL、2303はキヤリ入力(CI)とキヤリ出
力(CO)とを有する16ビツト加算器(FA)、3
204は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)をシーケンサ802か
ら供給されている信号RDRTAによつてDCバス
に供給する。そして、DCバス上の信号ND,SD
を信号WRDBKによつてDBKアドレスレジスタ
1901に格納し、DBK606に供給する。
DBK606から読み出した先頭アドレスデータ
TADを信号WRTADによつて先頭アドレスレジ
スタ1907のレジスタR(TAD)に格納する。 くり返し数指定データの読み込み処理。 読み込んだ先頭アドレスデータTADと波形ナ
ンバメモリ1910に格納している波形ナンバi
との加算処理(TAD+i)を演算部1913で
行ない、加算結果をDBKアドレスレジスタ19
01に格納し、DBK606からくり返し数指定
データを読み取り、増分生成部1908のレジス
タR(REP)に格納する。 波形サンプル(Xi,o)の読み取り処理。 先頭アドレスレジスタ1907に格納した先頭
アドレスデータTADとオフセツトデータ
(256)10との加算処理(WAD1=TAD+256)を
演算部1913で行ない、加算結果をACC19
12のR(ACC)に格納する。ACC1912に格
納したアドレスデータWAD1と波形サンプルナ
ンバメモリ1910に格納している波形サンプル
ナンバnとの加算処理(WAD1=WAD1+n)
を演算部1913で行ない加算結果をACC19
12に格納する。そして、ACC1912に格納
してあるアドレスデータWAD1′と波形ナンバi
を波形サンプル数指定データSDに基づいてシフ
ト処理したデータ(i×サンプル数;i=0,
1,2,…,I−1)との加算処理(WAD1″=
WAD1′+i×サンプル数)を演算部1913で
行ない、加算結果をACC1912とDBKアドレ
スレジスタ1901に格納し、DBK606から
(Xi,o)に相当する波形サンプルデータを読み
取り波形メモリ1904内のレジスタR(WD
)に格納する。 波形サンプル(Xi+1,o)の読み取り処理。 ACC1912に格納したアドレスデータ
WAD1″と波形サンプル数指定データSDで指定し
ている波形サンプル数NWS(波形ナンバメモリ1
910内で発生)との加算処理(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)α〕と増分生成部1908で
発生している増分値αとの加算処理を演算部19
13で行ない、加算結果を係数データメモリ19
06内にある係数データレジスタR(MD)に格
納すると共に、加算結果がオーバフオローした場
合演算部1913内にあるキヤリーフラグレジス
タCFを“1”にセツトする。 波形ナンバiの更新処理。 波形ナンバメモリ1910に格納している波形
ナンバiと上述で説明したキヤリーフラグレジ
スタCFの内容との加算処理(i=i+CF)を演
算部1913で行ない、波形ナンバメモリ191
0内にある波形ナンバレジスタR(WND)に格
納する。 レジスタR(WND),R(WSD),R(MD),
R(WD),R(WD)に格納した各種デー
タをチヤネルコードCHCで指定されたそれぞ
れのメモリ領域へのデータ転送処理。 命令ステツプ11のタイミングで、シーケンサ8
02から供給される信号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,2307の制御
入力に“1”が供給される。この結果、DCバス
には(0000)16が供給され、波形サンプルナンバ
メモリ1909内のレジスタR(WSN)に
(0000)16を格納する。 波形ナンバi=(0)10設定。 第11表に示した命令ステツプ10のタイミング
で、信号WRWNDが演算部1913に供給され
る。そうすると、ANDゲート2311の出力信
号は“1”となり、ゲート2306,2307の
制御入力に“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ゲート2
312に供給される。そうすると、ANDゲート
2312の出力信号は“1”となり、ゲート23
06,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から供給され
る。 RDOSDは、オフセツトデータ256をDAバ
スに供給する。 RDACCは、ACC1912内のレジスタR
(ACC)に格納しているデータをDAバスに供給
する命令。 RDREPは、増分生成部1908内で生成され
た増分値αをDAバスに供給する命令。 RDWSNは、波形サンプルナンバメモリ19
09内のメモリM(WSN)から読み出されている
波形サンプルナンバnを
【表】
【表】
DBバスに供給する命令。
RDWNDは、波形ナンバメモリ1910内の
メモリM(WND)から読み出されている波形ナ
ンバiをDBバスに供給する命令。 RDWNAは、波形ナンバメモリ1910内に
あるシフタ部で発生している波形ナンバアドレス
(WNA)をDBバスに供給する命令。 RDTADは、先頭アドレスレジスタ1907内
のレジスタR(TAD)に格納している先頭番地を
DBバスに供給する命令。 RDNWSは、波形ナンバメモリ1910内の
サンプル数発生器で発生しているサンプル数を
DBバスに供給する命令。 RDMDは、係数データメモリ1906内のメ
モリM(MD)から読み出されている係数データ
をDBバスに供給する命令。 RDRTAは、入力レジスタ部803から供給さ
れている楽音発生データ(ND,SD)をDCバス
に供給する命令。 WRDBKは、DCバス上のデータをDBKアドレ
スレジスタ1901内のレジスタR(DBK)に格
納する命令。 WRACCは、DCバス上のデータをACC191
2内のレジスタR(ACC)に格納する命令。 WRWSNは、DCバス上のデータを波形サンプ
ルナンバメモリ1909内のレジスタR(WSN)
に格納する命令。 WRMDは、DCバス上のデータを係数データメ
モリ1906内のレジスタR(MD)に格納する
命令。 WRWNDは、DCバス上のデータを波形ナンバ
メモリ1910内のレジスタR(WND)に格納
する命令。 TDAは、先頭アドレスレジスタ1907に
DBKから読み込んだ先頭番地をDAバスに供給す
る命令。 TCAは、DCバス上のデータをDAバスに供給
する命令。 DCRALは、演算部1913内のラツチAL2
301をクリヤする命令。 DADD1は、演算部1913内のFA2303
にキヤリ入力信号(+1)を供給する命令。 RDFLGは、演算部1913内のオン/オフ検
出部2308に新キーオン/オフ信号KDを取り
込む命令。 WRRAMは、波形データメモリ1904内
のレジスタR(WD)、波形データメモリ19
05内のレジスタR(WD)、係数データメモリ
1906内のレジスタR(MD)、波形サンプルナ
ンバメモリ1909内のレジスタR(WSN)、波
形ナンバメモリ1910内のレジスタR(WND)
に格納しているデータを、それぞれのメモリM
(WD),M(WD),M(MD),M(WSN),M
(WND)に書き込む命令。 以上のように、データメモリ(DBK)に合成
データ(波形データ、制御データ)の先頭番地を
格納することにより、回路構成を複雑化すること
なく、データメモリ内のデータ内容操作だけで異
なる波形データの選択ができ、異なる楽音を容易
に発生することができる。 さらに、複数組の制御データ(くり返し数指定
データ)を用意し、合成する場合には、所定の制
御データを選択して使用するようにしているた
め、音階によつて制御データを異なるように設定
することができ、1オクターブ内同一波形データ
を使用しても、楽音の立上り時間や、波形形状の
変化時間を一定にすることができる。 さらに、同一データベース上に波形データ、制
御データと先頭番地とを格納し、時分割的に各種
データを読み取るようにしているので、データメ
モリ(DBK)の回路構成が簡略化できるととも
に、データメモリとDRP808とのインターフ
エース処理が簡略化できる。 波形データプリセツサWDP807の詳細な説明 第20図はWDP807の演算処理の流れ図で
ある。WDP807の演算処理として、4種類の
演算がある。 波形内挿演算を行なつて仮想形サンプル値f^
(Xi,n,o)を求める。 仮想波形サンプル値f^(Xi,n,o)とエンベロー
プデータEDとの乗算を行ない、エンベロープ
付加波形サンプル値f^(Xi,n,o,q,r)を求める。 前回求めたエンベロープ付加波形サンプル値
旧(Xi,n,o,q,r)と今回求めたエンベロープ付加
波形サンプル値新f^(Xi,n,o,q,r)との差分演算を
行なつて差分波形サンプル値Df^(Xi,n,o,q,r)を求
める。 エンベロープデータEDの更新を行なう。 次に、エンベロープデータEDとエンベロープ
付加方法について説明する。 エンベロープデータEDは20ビツトで構成され
ている。上位4ビツトをEDU(Q)、下位16ビツ
トをEDL(R)とする。 エンベロープデータEDの更新方法は、新ED=
旧ED+ΔEDと云う演算処理を行なつて求める。
増分エンベロープデータΔEDは、CPU603か
ら入力レジスタ部803に供給されたサステイン
データDSUSあるいは、ダンパーデータDDMP
を使用する。サステインデータ、ダンパーデータ
の選択は、オルガン型エンベロープ、ピアノ型エ
ンベロープおよびキーオン/オフ信号に基づいて
使い分けを行なう。 エンベロープ付加波形サンプル値を求める演算
式を下式に示す。 f^(Xi,n,o,q,r) =f^(Xi,n,o)/2q−1/2q+1 r/R・f^(Xi,n,o) …(5) q=0,1,2,…,Q−1(Q=24) r=0,1,2,…,R−1(R=216) エンベロープデータEDを単調増加すなわち、
新ED=旧ED+ΔED(一定)とし、(5)式を実行す
ることにより、指数特性の減衰(立下り)エンベ
ロープが付加できる。また、単調減少、すなわち
新ED=旧ED−ΔED(一定)とすることにより、
指数特性の立上り(アタツク)エンベロープを付
加することができる。このような処理を行なうこ
とで、指数特性のエンベロープを発生せずに、演
算だけで求められ、エンベロープデータEDの生
成が簡単な構成で実現できる。 第21図はWDP807の一具体例を示す構成
図である。図中2101は波形データゲート、
2102は波形データゲート、2103はエン
ベロープデータEDの増分値を発生するエンベロ
ープ増分発生部(ΔED発生部)、2104は旧波
形サンプル値f^(Xi,n,o,q,r)を記憶している旧波形
データメモリ部、2105はエンベロープデータ
EDを記憶しておくエンベロープデータメモリ部
(EDメモリ部)2106は乗算部、2107は(5)
式に示した1/2qあるいは1/2q+1の演算を行なうシ
フタ部、2108はフルアダー、ラツチやキヤリ
ーフラグレジスタなどで構成している演算部、2
109は差分波形サンプル値Df^(Xi,n,o,q,r)を格納
するアウトプツトバツフアレジスタ(OBR)、2
110はアナログバツフアメモリ部812内のア
ナログスイツチ1103〜1107(コンデンサ
C1〜C8に電荷を蓄えるためのスイツチ)(第11
図)のオン/オフを制御するき込みパルス発生
部、2111は演算部2108内のラツチALに
データを供給するWAバス、2112は演算部2
108内のラツチBLにデータを供給するWBバ
ス、2113は演算部2108で行なつた演算処
理結果を各レジスタに供給するWCバスである。 次に各部の構成内容について説明する。ΔED
発生部2103は増分データΔEDとしてサステ
インデータDSUSとダンパーデータDDMPのど
ちらか一方を選択する選択器と入力レジスタ部8
03から供給されているキーオン/オフ信号
KD、オルガン型/ピアノ型指定信号OPSとダン
パーオン/オフ信号DMPから選択信号を生成す
る制御器と、信号KD、信号OPS、信号DMPと
DRP808内の増分生成部1908から供給さ
れている最終波形フラグ信号WEFから仮想キー
オン/オフ信号を生成し仮想キー信号EADGを
出力する仮想キー信号発生器とから構成してい
る。第12表に増分データΔEDの選択内容と仮想
キー信号EADGの発生状態を示す。 第7表に示した信号OPSが“0”、すなわちオ
ルガン型指定の場合、仮想キー信号EADGは、
キーオン/オフ信号KDのオン(“1”)、オフ
(“0”)状態と等しくなる。 信号OPSが“1”、すなわちピアノ型指定の場
合、仮想キー信号EADGは下述の状態となる。 信号WEFが“0”の場合 (a) 信号DMP(第7表に示したダンパオン/オ
フ信号)が“0”の場合、仮想キー信号
EADGは“オン”状態となる。 (b) 信号DMPが“1”の場合、仮想キー信号
EADGは、キーオン/オフ信号KDのオン、
オフ状態と等しくなる。 信号WEFが“1”の場合 信号DMP、キーオン/オフ信号KDの状態に
関係なく、仮想キー信号EADGはオフ状態とな
る。 仮想キー信号EADGの働きの説明 信号WEFが“1”となり最終波形データをく
り返し用いて、持続音の楽音を発生する場合、オ
ルガン型指定であれば、オルガン型の楽音特性と
等しくなり問題は発生しない。 ピアノ型指定となると、楽音特性は減衰特性と
する必要があり、信号WEF=“1”となり、最終
波形データをくり返し用いて持続音を発生して
も、仮想キー信号EADGをオフ状態として、減
衰エンベロープ特性を付加して強制的に楽音特性
を減衰特性とする。 旧波形データメモリ部2104は、演算部21
08の演算結果をシーケンサ802から供給され
ている信号WROWDによつて一時格納しておく
レジスタR(OWD)と、8チヤネル分のエンベ
ロープ付加波形サンプル値f^(Xi,n,o,q,r)を記憶す
る16ビツト×8語のメモリM(OWD)と、メモ
リM(OWD)の出力データを信号RDOWDによ
つてWBバスに供給するゲートとで構成してい
る。通常メモリM(OWD)は読み出し状態とな
つており、シーケンサ802から供給されている
チヤネルコードCHCに基づいたアドレスのエン
ベロープ付加波形サンプル値を上述のゲートに供
給している。信号WRRAMによつてメモリM
(OWD)は書き込み状態となり、レジスタR
(OWD)に格納しているデータがメモリM
(OWD)に書き込まれる。 EDメモリ部2104は、演算部2108の演
算結果を信号WREDL、WREDUによつてそれぞ
れ一時格納するレジスタR(EDL),R(EDU)
と、8チヤネル分のエンベロープデータEDを記
憶するメモリM(EDL),M(EDU)と、メモリM
(EDL)の出力データを信号RDEDLによつて
WBバスに供給するゲートLと、メモリM
(EDU)の出力データを信号RDEDUによつて
WBバスに供給するゲートUとで構成している。
メモリM(EDL)は16ビツト×8語、メモリM
(EDU)は4ビツト×8語である。通常メモリM
(EDL),M(EDU)は読み出し状態となつてお
り、チヤネルコードCHCに基づいたアドレスの
エンベロープデータEDが読み出され、上述のゲ
ートL、ゲートUにそれぞれ供給さ
メモリM(WND)から読み出されている波形ナ
ンバiをDBバスに供給する命令。 RDWNAは、波形ナンバメモリ1910内に
あるシフタ部で発生している波形ナンバアドレス
(WNA)をDBバスに供給する命令。 RDTADは、先頭アドレスレジスタ1907内
のレジスタR(TAD)に格納している先頭番地を
DBバスに供給する命令。 RDNWSは、波形ナンバメモリ1910内の
サンプル数発生器で発生しているサンプル数を
DBバスに供給する命令。 RDMDは、係数データメモリ1906内のメ
モリM(MD)から読み出されている係数データ
をDBバスに供給する命令。 RDRTAは、入力レジスタ部803から供給さ
れている楽音発生データ(ND,SD)をDCバス
に供給する命令。 WRDBKは、DCバス上のデータをDBKアドレ
スレジスタ1901内のレジスタR(DBK)に格
納する命令。 WRACCは、DCバス上のデータをACC191
2内のレジスタR(ACC)に格納する命令。 WRWSNは、DCバス上のデータを波形サンプ
ルナンバメモリ1909内のレジスタR(WSN)
に格納する命令。 WRMDは、DCバス上のデータを係数データメ
モリ1906内のレジスタR(MD)に格納する
命令。 WRWNDは、DCバス上のデータを波形ナンバ
メモリ1910内のレジスタR(WND)に格納
する命令。 TDAは、先頭アドレスレジスタ1907に
DBKから読み込んだ先頭番地をDAバスに供給す
る命令。 TCAは、DCバス上のデータをDAバスに供給
する命令。 DCRALは、演算部1913内のラツチAL2
301をクリヤする命令。 DADD1は、演算部1913内のFA2303
にキヤリ入力信号(+1)を供給する命令。 RDFLGは、演算部1913内のオン/オフ検
出部2308に新キーオン/オフ信号KDを取り
込む命令。 WRRAMは、波形データメモリ1904内
のレジスタR(WD)、波形データメモリ19
05内のレジスタR(WD)、係数データメモリ
1906内のレジスタR(MD)、波形サンプルナ
ンバメモリ1909内のレジスタR(WSN)、波
形ナンバメモリ1910内のレジスタR(WND)
に格納しているデータを、それぞれのメモリM
(WD),M(WD),M(MD),M(WSN),M
(WND)に書き込む命令。 以上のように、データメモリ(DBK)に合成
データ(波形データ、制御データ)の先頭番地を
格納することにより、回路構成を複雑化すること
なく、データメモリ内のデータ内容操作だけで異
なる波形データの選択ができ、異なる楽音を容易
に発生することができる。 さらに、複数組の制御データ(くり返し数指定
データ)を用意し、合成する場合には、所定の制
御データを選択して使用するようにしているた
め、音階によつて制御データを異なるように設定
することができ、1オクターブ内同一波形データ
を使用しても、楽音の立上り時間や、波形形状の
変化時間を一定にすることができる。 さらに、同一データベース上に波形データ、制
御データと先頭番地とを格納し、時分割的に各種
データを読み取るようにしているので、データメ
モリ(DBK)の回路構成が簡略化できるととも
に、データメモリとDRP808とのインターフ
エース処理が簡略化できる。 波形データプリセツサWDP807の詳細な説明 第20図はWDP807の演算処理の流れ図で
ある。WDP807の演算処理として、4種類の
演算がある。 波形内挿演算を行なつて仮想形サンプル値f^
(Xi,n,o)を求める。 仮想波形サンプル値f^(Xi,n,o)とエンベロー
プデータEDとの乗算を行ない、エンベロープ
付加波形サンプル値f^(Xi,n,o,q,r)を求める。 前回求めたエンベロープ付加波形サンプル値
旧(Xi,n,o,q,r)と今回求めたエンベロープ付加
波形サンプル値新f^(Xi,n,o,q,r)との差分演算を
行なつて差分波形サンプル値Df^(Xi,n,o,q,r)を求
める。 エンベロープデータEDの更新を行なう。 次に、エンベロープデータEDとエンベロープ
付加方法について説明する。 エンベロープデータEDは20ビツトで構成され
ている。上位4ビツトをEDU(Q)、下位16ビツ
トをEDL(R)とする。 エンベロープデータEDの更新方法は、新ED=
旧ED+ΔEDと云う演算処理を行なつて求める。
増分エンベロープデータΔEDは、CPU603か
ら入力レジスタ部803に供給されたサステイン
データDSUSあるいは、ダンパーデータDDMP
を使用する。サステインデータ、ダンパーデータ
の選択は、オルガン型エンベロープ、ピアノ型エ
ンベロープおよびキーオン/オフ信号に基づいて
使い分けを行なう。 エンベロープ付加波形サンプル値を求める演算
式を下式に示す。 f^(Xi,n,o,q,r) =f^(Xi,n,o)/2q−1/2q+1 r/R・f^(Xi,n,o) …(5) q=0,1,2,…,Q−1(Q=24) r=0,1,2,…,R−1(R=216) エンベロープデータEDを単調増加すなわち、
新ED=旧ED+ΔED(一定)とし、(5)式を実行す
ることにより、指数特性の減衰(立下り)エンベ
ロープが付加できる。また、単調減少、すなわち
新ED=旧ED−ΔED(一定)とすることにより、
指数特性の立上り(アタツク)エンベロープを付
加することができる。このような処理を行なうこ
とで、指数特性のエンベロープを発生せずに、演
算だけで求められ、エンベロープデータEDの生
成が簡単な構成で実現できる。 第21図はWDP807の一具体例を示す構成
図である。図中2101は波形データゲート、
2102は波形データゲート、2103はエン
ベロープデータEDの増分値を発生するエンベロ
ープ増分発生部(ΔED発生部)、2104は旧波
形サンプル値f^(Xi,n,o,q,r)を記憶している旧波形
データメモリ部、2105はエンベロープデータ
EDを記憶しておくエンベロープデータメモリ部
(EDメモリ部)2106は乗算部、2107は(5)
式に示した1/2qあるいは1/2q+1の演算を行なうシ
フタ部、2108はフルアダー、ラツチやキヤリ
ーフラグレジスタなどで構成している演算部、2
109は差分波形サンプル値Df^(Xi,n,o,q,r)を格納
するアウトプツトバツフアレジスタ(OBR)、2
110はアナログバツフアメモリ部812内のア
ナログスイツチ1103〜1107(コンデンサ
C1〜C8に電荷を蓄えるためのスイツチ)(第11
図)のオン/オフを制御するき込みパルス発生
部、2111は演算部2108内のラツチALに
データを供給するWAバス、2112は演算部2
108内のラツチBLにデータを供給するWBバ
ス、2113は演算部2108で行なつた演算処
理結果を各レジスタに供給するWCバスである。 次に各部の構成内容について説明する。ΔED
発生部2103は増分データΔEDとしてサステ
インデータDSUSとダンパーデータDDMPのど
ちらか一方を選択する選択器と入力レジスタ部8
03から供給されているキーオン/オフ信号
KD、オルガン型/ピアノ型指定信号OPSとダン
パーオン/オフ信号DMPから選択信号を生成す
る制御器と、信号KD、信号OPS、信号DMPと
DRP808内の増分生成部1908から供給さ
れている最終波形フラグ信号WEFから仮想キー
オン/オフ信号を生成し仮想キー信号EADGを
出力する仮想キー信号発生器とから構成してい
る。第12表に増分データΔEDの選択内容と仮想
キー信号EADGの発生状態を示す。 第7表に示した信号OPSが“0”、すなわちオ
ルガン型指定の場合、仮想キー信号EADGは、
キーオン/オフ信号KDのオン(“1”)、オフ
(“0”)状態と等しくなる。 信号OPSが“1”、すなわちピアノ型指定の場
合、仮想キー信号EADGは下述の状態となる。 信号WEFが“0”の場合 (a) 信号DMP(第7表に示したダンパオン/オ
フ信号)が“0”の場合、仮想キー信号
EADGは“オン”状態となる。 (b) 信号DMPが“1”の場合、仮想キー信号
EADGは、キーオン/オフ信号KDのオン、
オフ状態と等しくなる。 信号WEFが“1”の場合 信号DMP、キーオン/オフ信号KDの状態に
関係なく、仮想キー信号EADGはオフ状態とな
る。 仮想キー信号EADGの働きの説明 信号WEFが“1”となり最終波形データをく
り返し用いて、持続音の楽音を発生する場合、オ
ルガン型指定であれば、オルガン型の楽音特性と
等しくなり問題は発生しない。 ピアノ型指定となると、楽音特性は減衰特性と
する必要があり、信号WEF=“1”となり、最終
波形データをくり返し用いて持続音を発生して
も、仮想キー信号EADGをオフ状態として、減
衰エンベロープ特性を付加して強制的に楽音特性
を減衰特性とする。 旧波形データメモリ部2104は、演算部21
08の演算結果をシーケンサ802から供給され
ている信号WROWDによつて一時格納しておく
レジスタR(OWD)と、8チヤネル分のエンベ
ロープ付加波形サンプル値f^(Xi,n,o,q,r)を記憶す
る16ビツト×8語のメモリM(OWD)と、メモ
リM(OWD)の出力データを信号RDOWDによ
つてWBバスに供給するゲートとで構成してい
る。通常メモリM(OWD)は読み出し状態とな
つており、シーケンサ802から供給されている
チヤネルコードCHCに基づいたアドレスのエン
ベロープ付加波形サンプル値を上述のゲートに供
給している。信号WRRAMによつてメモリM
(OWD)は書き込み状態となり、レジスタR
(OWD)に格納しているデータがメモリM
(OWD)に書き込まれる。 EDメモリ部2104は、演算部2108の演
算結果を信号WREDL、WREDUによつてそれぞ
れ一時格納するレジスタR(EDL),R(EDU)
と、8チヤネル分のエンベロープデータEDを記
憶するメモリM(EDL),M(EDU)と、メモリM
(EDL)の出力データを信号RDEDLによつて
WBバスに供給するゲートLと、メモリM
(EDU)の出力データを信号RDEDUによつて
WBバスに供給するゲートUとで構成している。
メモリM(EDL)は16ビツト×8語、メモリM
(EDU)は4ビツト×8語である。通常メモリM
(EDL),M(EDU)は読み出し状態となつてお
り、チヤネルコードCHCに基づいたアドレスの
エンベロープデータEDが読み出され、上述のゲ
ートL、ゲートUにそれぞれ供給さ
【表】
れる。また、信号EDUは乗算部2106に、信
号EDLはシフタ部2107に供給されている。 そして、信号WRRAMによつてメモリM
(EDL),M(EDU)は書き込み状態となり、レジ
スタR(EDL),R(EDU)に格納しているデータ
がメモリM(EDL),M(EDU)に書き込まれる。 乗算部2106は、波形データを信号
WRMLPによつて一時格納するレジスタR
(MLP1)と、信号SELWE=“0”の時DRP80
8から供給されている係数データMLPを一時格
納し、信号SELWE=“1”の時EDメモリ部21
05から供給されているエンベロープデータ
EDLを一時格納するレジスタ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はFA2
404のキヤリ出力を信号WREDLによつて記憶
し、信号RDEDLによつてリセツトするキヤリフ
ラグレジスタECF、2406はANDゲート、2
407はORゲート、2408は信号WTCAによ
つてFA2404の出力データをWAバスに供給
するゲートA、2409はWCバスにデータ
(FFFF)16を供給するゲートB、2410はWC
バスにWBバス上のデータを供給するゲートC、
2411はFA2404の出力データをWCバス
に供給するゲートD、2412はデータ
(0000)16をWCバスに供給するゲートE、241
3は信号TBC、信号WREDU、信号WREDL、
信号EADGおよびFA2404の出力信号(ビツ
ト位置4)に基づいてゲートB2409〜ゲート
E2412のいずれか1つを選択するゲート選択
器である。 ゲート選択器2413で選択するゲートについ
て説明する。シーケンサ802から供給されてい
る信号TBCによつてゲートC2410が選択さ
れ、WCバスにはWBバス上のデータが供給され
る。 ΔED発生部2103から供給されている仮想
キー信号EADGがオン状態であると、信号
WREDLあるいは信号WREDUによつてゲートE
2412が選択され、WCバス上にはデータ
(0000)16が供給される。すなわち、エンベロープ
データEDU、EDLをともに(0000)16と設定する
ことになる。この結果、エンベロープ付加波形サ
ンプル値f^(Xi,n,o,q,r)=f^(Xi,n,o)となる。 また、FA2404の出力信号(ビツト位置4)
が“1”でかつ信号WREDUが供給されるとゲ
ートB2409が選択されWCバスにデータ
(FFFF)16が供給される。すなわち、エンベロー
プデータEDUを常時(F)16と設定することになる。 上述以外の状態では、ゲートD2411が選択
され、FA2404の出力データがWCバスに供
給される。 なお、旧波形データメモリ部2105、EDメ
モリ部2106に供給されている信号WRRAN
は、DRP808で説明した信号WRRAMと同一
のものである。 WDP807もDRP808,EDP806と同様
にシーケンサ802から供給される制御信号に基
づいて下述する演算処理を行ない、上述した〜
の処理内容を実現するようになつている。 仮想波形サンプル値(Xi,n,o)を求める。 信号RDWDI,RDWD(命令ステツプ2に対
応)によつてDRP808から供給されている波
形サンプル値(Xi,o)と(Xi+1,o)をWAバス、
WBバスに供給し、演算部2108のラツチAL,
BLに信号φ2立下りエツヂで波形サンプル値を格
納する。この時演算部2108に加えられる信号
INVによつてラツチALに格納されるデータは反
転データ、すなわち(i,o)となる。 そして、ラツチAL2402、ラツチBL240
3に格納されたデータを用いて演算部2108で
加算処理〔(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,o)〕 ×(Nm+n)α の乗算が実行される。乗算結果は命令ステツプ4
の終了までに正しい値になるものとする。次に信
号RDWDによつて矩形サンプル値(Xi,o)を
WAバスに、信号RDMLPによつて乗算結果を
WBバスに供給し、信号φ2の立下りエツヂでラツ
チAL,BLにそれぞれのデータを格納する(命令
ステツプ5に対応)。なお、乗算結果は乗算器の
上位16ビツトを利用している。これは、1/216 1処
理と等価なものである。 乗算部2108で加算処理を実行することによ
り、(2)式で表わした仮想波形サンプル値
(Xi,n,o)が求められる。 エンベロープ付加波形サンプル値f^(Xi,n,o,q,r)
を求める。 仮想波形サンプル値f^(Xi,n,o)を、信号
WRMLP、信号WRSFT(命令ステツプ6に対応)
によつて、乗算部2106内の被乗数レジスタR
(MLP1)とシフタ部2107内のレジスタR
(SFT)に信号φ2の立上りエツヂで格納する。ま
た、EDメモリ部2105から乗算部2106に
供給しているエンベロープデータEDLを信号
SELWE(命令ステツプ6に対応)によつて乗算
部2106内の乗数レジスタR(MLP2)に格納
し、乗算処理〔(Xi,n,o)×r〕を実行する。 一方、シフタ部2107内のレジスタR
(SFT)に格納した仮想波形サンプル値f^(Xi,n,o)
をEDメモリ部2105からシフタ部2107に
供給されているエンベロープデータEDU(Q)に
基づいて、シフト操作〔f^(Xi,n,o)/2q〕を行な
い、信号WRSFB(命令ステツプ7に対応)によ
つて、シフタ部2107内の出力レジスタR
(SFB)に格納する。 そして、乗算部2106で行なつた乗算結果
を、信号TBC、信号WRSFT(命令ステツプ8に
対応)によつてシフタ部2107内のレジスタR
(SFT)に格納し、エンベロープデータEDU(Q)
に基づいたシフト操作行なう。 信号RDSFA、RDSFB(命令ステツプ9に対
応)によつて、シフタ部2107内の出力レジス
タR(SFB)に格納してあるデータ〔
(Xi,n,o)/2q〕を演算部2108内のラツチBL
に、シフタ部2107のシフト結果データ
〔1/2q+1・r/216・f^(Xi,n,o)〕を信号INVによ
つて 論理反転し、演算部2108内のマツチALにそ
れぞれ格納する。 そして、演算部2108で加算処理を実行する
ことにより、エンベロープ付加波形サンプル値f^
(Xi,n,o,q,r)が求められる。 差分波形サンプル値D(Xi,n,o,q,r)を求める。 エンベロープ付加波形サンプル値f^(Xi,n,o,q,r)
を信号WROWDによつて旧波形メモリ部210
4内のレジスタR(OWD)に格納するとともに、
信号TCAによつて、FA2404の出力データを
WAバスに供給し、信号INVによつて論理反転を
行ない、演算部2108内のラツチALに格納す
る。また、信号RDOWDによつて、旧エンベロ
ープ付加波形サンプル値を旧波形メモリ部210
4から読み出し、演算部2108内のラツチBL
に格納する。 そして、演算部2108で加算処理を実行する
ことにより、差分波形サンプル値Df^(Xi,n,o,q,r)が
求められ、信号WOBRによつてOBR2109内
のレジスタR(OBR)に差分波形サンプル値を格
納する。 エンベロープデータEDの更新。 信号RDEDL,RDΔED(命令ステツプ3に対
応)によつて、EDメモリ部2105からエンベ
ロープデータEDが、ΔED発生部2103から増
分データΔEDがWAバスとWBバスにそれぞれ読
み出され、信号φ2の立下りエツヂで演算部21
08内のラツチALとBLにそれぞれ格納される。 そして、加算処理(EDL+ΔED)を演算部2
108で実行し、新エンベロープデータEDをめ、
信号WREDL(命令ステツプ4に対応)によつて、
EDメモリ部2105内のレジスタR(EDL)に
新エンベロープデータEDを格納するとともに、
演算部2108内の加算器FA2404のキヤリ
ー出力を演算部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,DAC81
1にデータを供給するタイミングについて説明す
る。 信号CRDAS(命令ステツプ9に対応)によつ
て、書き込みパルス発生部2110で発生してい
る書き込みパルスをリセツトする。そして、信号
WROBR(命令ステツプ11に対応)によつてOBR
2109内のレジスタR(OBR)に差分波形サン
プル値Df^(Xi,n,o,q,r)を格納し、DAC811に供
給してデイジタル信号をアナログ信号に変換しア
ナログバツフアメモリ部812に供給するととも
に、書き込みパルス発生部2110でチヤネルコ
ードCHCで指定されたチヤネルに対応する書き
込みパルスをセツトし、アナログバツフアメモリ
部812内のアナログスイツチAW1〜AW8に供
給する。この時、信号CLRFが“0”(計算要求
を行なつていない場合)の場合は、書き込みパル
スをセツトしないようにする。 第13表にWDP807の演算シーケンスを示す。
第13表に示す命令ステツプを順次実行することに
より、上述で説明した処理が実現する。 第13表に示した制御信号について説明する。 下述する信号はシーケンサ802から供給され
る。 RDWDは、DRP808から供給されている
波形データWDをWAバスに供給する命令。 RDWDは、DRP808から供給されている
波形データWDをWBバスに供給す
号EDLはシフタ部2107に供給されている。 そして、信号WRRAMによつてメモリM
(EDL),M(EDU)は書き込み状態となり、レジ
スタR(EDL),R(EDU)に格納しているデータ
がメモリM(EDL),M(EDU)に書き込まれる。 乗算部2106は、波形データを信号
WRMLPによつて一時格納するレジスタR
(MLP1)と、信号SELWE=“0”の時DRP80
8から供給されている係数データMLPを一時格
納し、信号SELWE=“1”の時EDメモリ部21
05から供給されているエンベロープデータ
EDLを一時格納するレジスタ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はFA2
404のキヤリ出力を信号WREDLによつて記憶
し、信号RDEDLによつてリセツトするキヤリフ
ラグレジスタECF、2406はANDゲート、2
407はORゲート、2408は信号WTCAによ
つてFA2404の出力データをWAバスに供給
するゲートA、2409はWCバスにデータ
(FFFF)16を供給するゲートB、2410はWC
バスにWBバス上のデータを供給するゲートC、
2411はFA2404の出力データをWCバス
に供給するゲートD、2412はデータ
(0000)16をWCバスに供給するゲートE、241
3は信号TBC、信号WREDU、信号WREDL、
信号EADGおよびFA2404の出力信号(ビツ
ト位置4)に基づいてゲートB2409〜ゲート
E2412のいずれか1つを選択するゲート選択
器である。 ゲート選択器2413で選択するゲートについ
て説明する。シーケンサ802から供給されてい
る信号TBCによつてゲートC2410が選択さ
れ、WCバスにはWBバス上のデータが供給され
る。 ΔED発生部2103から供給されている仮想
キー信号EADGがオン状態であると、信号
WREDLあるいは信号WREDUによつてゲートE
2412が選択され、WCバス上にはデータ
(0000)16が供給される。すなわち、エンベロープ
データEDU、EDLをともに(0000)16と設定する
ことになる。この結果、エンベロープ付加波形サ
ンプル値f^(Xi,n,o,q,r)=f^(Xi,n,o)となる。 また、FA2404の出力信号(ビツト位置4)
が“1”でかつ信号WREDUが供給されるとゲ
ートB2409が選択されWCバスにデータ
(FFFF)16が供給される。すなわち、エンベロー
プデータEDUを常時(F)16と設定することになる。 上述以外の状態では、ゲートD2411が選択
され、FA2404の出力データがWCバスに供
給される。 なお、旧波形データメモリ部2105、EDメ
モリ部2106に供給されている信号WRRAN
は、DRP808で説明した信号WRRAMと同一
のものである。 WDP807もDRP808,EDP806と同様
にシーケンサ802から供給される制御信号に基
づいて下述する演算処理を行ない、上述した〜
の処理内容を実現するようになつている。 仮想波形サンプル値(Xi,n,o)を求める。 信号RDWDI,RDWD(命令ステツプ2に対
応)によつてDRP808から供給されている波
形サンプル値(Xi,o)と(Xi+1,o)をWAバス、
WBバスに供給し、演算部2108のラツチAL,
BLに信号φ2立下りエツヂで波形サンプル値を格
納する。この時演算部2108に加えられる信号
INVによつてラツチALに格納されるデータは反
転データ、すなわち(i,o)となる。 そして、ラツチAL2402、ラツチBL240
3に格納されたデータを用いて演算部2108で
加算処理〔(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,o)〕 ×(Nm+n)α の乗算が実行される。乗算結果は命令ステツプ4
の終了までに正しい値になるものとする。次に信
号RDWDによつて矩形サンプル値(Xi,o)を
WAバスに、信号RDMLPによつて乗算結果を
WBバスに供給し、信号φ2の立下りエツヂでラツ
チAL,BLにそれぞれのデータを格納する(命令
ステツプ5に対応)。なお、乗算結果は乗算器の
上位16ビツトを利用している。これは、1/216 1処
理と等価なものである。 乗算部2108で加算処理を実行することによ
り、(2)式で表わした仮想波形サンプル値
(Xi,n,o)が求められる。 エンベロープ付加波形サンプル値f^(Xi,n,o,q,r)
を求める。 仮想波形サンプル値f^(Xi,n,o)を、信号
WRMLP、信号WRSFT(命令ステツプ6に対応)
によつて、乗算部2106内の被乗数レジスタR
(MLP1)とシフタ部2107内のレジスタR
(SFT)に信号φ2の立上りエツヂで格納する。ま
た、EDメモリ部2105から乗算部2106に
供給しているエンベロープデータEDLを信号
SELWE(命令ステツプ6に対応)によつて乗算
部2106内の乗数レジスタR(MLP2)に格納
し、乗算処理〔(Xi,n,o)×r〕を実行する。 一方、シフタ部2107内のレジスタR
(SFT)に格納した仮想波形サンプル値f^(Xi,n,o)
をEDメモリ部2105からシフタ部2107に
供給されているエンベロープデータEDU(Q)に
基づいて、シフト操作〔f^(Xi,n,o)/2q〕を行な
い、信号WRSFB(命令ステツプ7に対応)によ
つて、シフタ部2107内の出力レジスタR
(SFB)に格納する。 そして、乗算部2106で行なつた乗算結果
を、信号TBC、信号WRSFT(命令ステツプ8に
対応)によつてシフタ部2107内のレジスタR
(SFT)に格納し、エンベロープデータEDU(Q)
に基づいたシフト操作行なう。 信号RDSFA、RDSFB(命令ステツプ9に対
応)によつて、シフタ部2107内の出力レジス
タR(SFB)に格納してあるデータ〔
(Xi,n,o)/2q〕を演算部2108内のラツチBL
に、シフタ部2107のシフト結果データ
〔1/2q+1・r/216・f^(Xi,n,o)〕を信号INVによ
つて 論理反転し、演算部2108内のマツチALにそ
れぞれ格納する。 そして、演算部2108で加算処理を実行する
ことにより、エンベロープ付加波形サンプル値f^
(Xi,n,o,q,r)が求められる。 差分波形サンプル値D(Xi,n,o,q,r)を求める。 エンベロープ付加波形サンプル値f^(Xi,n,o,q,r)
を信号WROWDによつて旧波形メモリ部210
4内のレジスタR(OWD)に格納するとともに、
信号TCAによつて、FA2404の出力データを
WAバスに供給し、信号INVによつて論理反転を
行ない、演算部2108内のラツチALに格納す
る。また、信号RDOWDによつて、旧エンベロ
ープ付加波形サンプル値を旧波形メモリ部210
4から読み出し、演算部2108内のラツチBL
に格納する。 そして、演算部2108で加算処理を実行する
ことにより、差分波形サンプル値Df^(Xi,n,o,q,r)が
求められ、信号WOBRによつてOBR2109内
のレジスタR(OBR)に差分波形サンプル値を格
納する。 エンベロープデータEDの更新。 信号RDEDL,RDΔED(命令ステツプ3に対
応)によつて、EDメモリ部2105からエンベ
ロープデータEDが、ΔED発生部2103から増
分データΔEDがWAバスとWBバスにそれぞれ読
み出され、信号φ2の立下りエツヂで演算部21
08内のラツチALとBLにそれぞれ格納される。 そして、加算処理(EDL+ΔED)を演算部2
108で実行し、新エンベロープデータEDをめ、
信号WREDL(命令ステツプ4に対応)によつて、
EDメモリ部2105内のレジスタR(EDL)に
新エンベロープデータEDを格納するとともに、
演算部2108内の加算器FA2404のキヤリ
ー出力を演算部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,DAC81
1にデータを供給するタイミングについて説明す
る。 信号CRDAS(命令ステツプ9に対応)によつ
て、書き込みパルス発生部2110で発生してい
る書き込みパルスをリセツトする。そして、信号
WROBR(命令ステツプ11に対応)によつてOBR
2109内のレジスタR(OBR)に差分波形サン
プル値Df^(Xi,n,o,q,r)を格納し、DAC811に供
給してデイジタル信号をアナログ信号に変換しア
ナログバツフアメモリ部812に供給するととも
に、書き込みパルス発生部2110でチヤネルコ
ードCHCで指定されたチヤネルに対応する書き
込みパルスをセツトし、アナログバツフアメモリ
部812内のアナログスイツチAW1〜AW8に供
給する。この時、信号CLRFが“0”(計算要求
を行なつていない場合)の場合は、書き込みパル
スをセツトしないようにする。 第13表にWDP807の演算シーケンスを示す。
第13表に示す命令ステツプを順次実行することに
より、上述で説明した処理が実現する。 第13表に示した制御信号について説明する。 下述する信号はシーケンサ802から供給され
る。 RDWDは、DRP808から供給されている
波形データWDをWAバスに供給する命令。 RDWDは、DRP808から供給されている
波形データWDをWBバスに供給す
【表】
る命令。
RDΔEDは、△ED発生部2103内で選択さ
れたサステインデータDSUSあるいはダンパデー
タDDMPを増分データΔEDとしてWAバスに供
給する命令。 RDSFAは、シフタ部2107内のシフタの出
力データをWAバスに供給する命令。 RDEDLは、EDメモリ部2105内のメモリ
M(EDL)から読み出されているエンベロープデ
ータEDLをWBバスに供給する命令。 RDMLPは、乗算部2106内の乗算器の出力
データ(上位16ビツト)をWBバスに供給する命
令。 RDEDUは、EDメモリ部2105内のメモリ
M(EDU)から読み出されてるエンベロープデー
タEDUをWBバスに供給する命令。 RDSFBは、シフタ部2107内のレジスタR
(SFB)に格納しているデータ((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,r=0)。 そして、仮想キー信号EADGがオフ状態とな
ると、エンベロープデータEDの更新処理(ED=
ED+ΔED)が開始する。この結果、(5)式に示し
たエンベロープ付加波形サンプル値を求める演算
処理が行なわれ、減衰特性の楽音波形が得られ
る。 また、エンベロープデータEDの更新処理が進
み、エンベロープデータEDUが(1111)2の状態
となると、エンベロープデータEDUの更新タイ
ミングで演算部2108内のゲートB2409が
選択され、エンベロープデータEDUは常時
(1111)2の状態となる。この状態は、楽音波形の
発音停止に相当する。 以上のように、波形内挿方法を(2)式に示したよ
うに、補正項を付加した内挿係数(Nm+n)
α/HNで実現しているため、波形間のレベル差
が大きくても不用なノイズ成分の発生を防ぐこと
ができる。 さらに、波形形状の変化が少ない所では、デー
タメモリ部に格納する波形データを少なくし、く
り返し数を大きくすることにより、データ圧縮が
可能となる。 さらに、アナログ信号に変換する変換部を、1
つのDACとアナログバツフアメモリ部とで構成
しているので、DACは1個だけでよく、チヤネ
ルごとに独立に動作するから、2チヤネルの音を
同時に鳴らしても、量子化ひずみによる混変調ひ
ずみの発生がなくなる。 さらに、波形の基本周波数に対してサンプリン
グ周波数を整数倍にしているので、発生する折り
返し成分や、量子化により生じるサンプル波成分
をすべて、基本周波数の高調波に一致させること
ができ、したがつてにごりのない音をつくること
ができる。 次に、楽音発生部607内の各部の相互関係に
ついて説明する。 まる、入力レジスタ部803について説明す
る。入力レジスタ部803は、CPU603から
供給されたI/Oポートアドレスデータと楽音発
生データあるいはサステインデータなどを一時格
納するレジスタR(ADD),R(DAT)と、CPU
603から入力レジスタ部803に対して新デー
タを供結したことを指示する信号(CPU603
から供給されている信号・を利用する)
を記憶するフラグレジスタ(レジスタWRCFで、
指示する場合は“1”となる)と、レジスタR
(ADD)に格納されているアドレスを書き込みア
ドレス、シーケンサ802から供給されるチヤネ
ルコードCHCを読み出しアドレスとし、レジス
タR(DAT)に格納された楽音発生データを記憶
するレジスタフアイル(8チヤネル分の楽音発生
データを記憶し、容量は8ビツト×8語である)
と、レジスタR(ADD)のアドレスデータに基づ
いてサステインデータ、ダンパデータ、ビートデ
ータや効果制御データを記憶する効果レジスタ部
とで構成している。 レジスタR(DAT)に格納された新データをレ
ジスタフアイルあるいは効果レジスタ部にデータ
転送するタイミングは、レジスタWRCFが“1”
の状態で、シーケンサ802から信号WRDAT
が供給されると、レジスタR(ADD)に格納され
たI/Oポートアドレスに基づいた所定のアドレ
スにレジスタR(DAT)の格納データが転送され
る。その後、レジスタWRCFをリセツトする。 シーケンサ802から供給される信号
WRDATは、レジスタフアイルあるいは効果レ
ジスタ部へのデータ取り込み制御信号であり、第
9表、第11表、第13表に示した命令ステツプ1の
タイミングのたびに入力レジスタ部803に供給
される。 命令ステツプ1のタイミングでレジスタフアイ
ルあるいは効果レジスタ部に新データを取り込む
理由は、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のタイミン
グで、演算結果(差分波形サンプル値Df^
(Xi,n,o-1,q,r)がWDP807内のレジスタR
(OBR)に格納され、DAC811に供給され
る。 上述の〜の処理が、シーケンサ802から
発生しているチヤネルコードCHCのチヤネル1
に対応する命令ステツプ1〜11の同一タイミング
内で実行される。 そして、再びチヤネル1に対応するチヤネルコ
ードCHCがシーケンサ802から発生されると
下述の処理が行なわれる。 上述のの説明と同様に、チヤネル1に対応
する楽音発生データが、FDP806,WDP8
07,DRP808に供給される。 上述のの説明と同様に、DRP808で、
DBK606内に格納している先頭番地、制御
データ、波形データ(Xi,o+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つの波形サンプルデータを用いて楽音
波形を形成する波形計算部と、上記波形計算部の
デイジタル出力信号をアナログ信号に変換する変
換部とを具備し、かつ(2)式に示した内挿式を用
い、DRP808で読み出した波形サンプルデー
タ(Xi,o)と(Xi+1,o)とで、仮想サンプル値f^
(Xi,n,o)を求めるようにしたので、楽音波形の形
状を時間に変化させることができて、自然楽器音
を模擬することができるとともに波形のつなぎ目
で発生する不連続を防ぐことができる。 さらに、内挿係数(Nm+n)/MNを(Nm
+n)α/MNαと置き換え、MNα項を2のべき
乗とすることにより、(2)式の演算内容が簡略化で
き、波形内挿による波形発生が容易に実現できる
利点を有する。
れたサステインデータDSUSあるいはダンパデー
タDDMPを増分データΔEDとしてWAバスに供
給する命令。 RDSFAは、シフタ部2107内のシフタの出
力データをWAバスに供給する命令。 RDEDLは、EDメモリ部2105内のメモリ
M(EDL)から読み出されているエンベロープデ
ータEDLをWBバスに供給する命令。 RDMLPは、乗算部2106内の乗算器の出力
データ(上位16ビツト)をWBバスに供給する命
令。 RDEDUは、EDメモリ部2105内のメモリ
M(EDU)から読み出されてるエンベロープデー
タEDUをWBバスに供給する命令。 RDSFBは、シフタ部2107内のレジスタR
(SFB)に格納しているデータ((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,r=0)。 そして、仮想キー信号EADGがオフ状態とな
ると、エンベロープデータEDの更新処理(ED=
ED+ΔED)が開始する。この結果、(5)式に示し
たエンベロープ付加波形サンプル値を求める演算
処理が行なわれ、減衰特性の楽音波形が得られ
る。 また、エンベロープデータEDの更新処理が進
み、エンベロープデータEDUが(1111)2の状態
となると、エンベロープデータEDUの更新タイ
ミングで演算部2108内のゲートB2409が
選択され、エンベロープデータEDUは常時
(1111)2の状態となる。この状態は、楽音波形の
発音停止に相当する。 以上のように、波形内挿方法を(2)式に示したよ
うに、補正項を付加した内挿係数(Nm+n)
α/HNで実現しているため、波形間のレベル差
が大きくても不用なノイズ成分の発生を防ぐこと
ができる。 さらに、波形形状の変化が少ない所では、デー
タメモリ部に格納する波形データを少なくし、く
り返し数を大きくすることにより、データ圧縮が
可能となる。 さらに、アナログ信号に変換する変換部を、1
つのDACとアナログバツフアメモリ部とで構成
しているので、DACは1個だけでよく、チヤネ
ルごとに独立に動作するから、2チヤネルの音を
同時に鳴らしても、量子化ひずみによる混変調ひ
ずみの発生がなくなる。 さらに、波形の基本周波数に対してサンプリン
グ周波数を整数倍にしているので、発生する折り
返し成分や、量子化により生じるサンプル波成分
をすべて、基本周波数の高調波に一致させること
ができ、したがつてにごりのない音をつくること
ができる。 次に、楽音発生部607内の各部の相互関係に
ついて説明する。 まる、入力レジスタ部803について説明す
る。入力レジスタ部803は、CPU603から
供給されたI/Oポートアドレスデータと楽音発
生データあるいはサステインデータなどを一時格
納するレジスタR(ADD),R(DAT)と、CPU
603から入力レジスタ部803に対して新デー
タを供結したことを指示する信号(CPU603
から供給されている信号・を利用する)
を記憶するフラグレジスタ(レジスタWRCFで、
指示する場合は“1”となる)と、レジスタR
(ADD)に格納されているアドレスを書き込みア
ドレス、シーケンサ802から供給されるチヤネ
ルコードCHCを読み出しアドレスとし、レジス
タR(DAT)に格納された楽音発生データを記憶
するレジスタフアイル(8チヤネル分の楽音発生
データを記憶し、容量は8ビツト×8語である)
と、レジスタR(ADD)のアドレスデータに基づ
いてサステインデータ、ダンパデータ、ビートデ
ータや効果制御データを記憶する効果レジスタ部
とで構成している。 レジスタR(DAT)に格納された新データをレ
ジスタフアイルあるいは効果レジスタ部にデータ
転送するタイミングは、レジスタWRCFが“1”
の状態で、シーケンサ802から信号WRDAT
が供給されると、レジスタR(ADD)に格納され
たI/Oポートアドレスに基づいた所定のアドレ
スにレジスタR(DAT)の格納データが転送され
る。その後、レジスタWRCFをリセツトする。 シーケンサ802から供給される信号
WRDATは、レジスタフアイルあるいは効果レ
ジスタ部へのデータ取り込み制御信号であり、第
9表、第11表、第13表に示した命令ステツプ1の
タイミングのたびに入力レジスタ部803に供給
される。 命令ステツプ1のタイミングでレジスタフアイ
ルあるいは効果レジスタ部に新データを取り込む
理由は、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のタイミン
グで、演算結果(差分波形サンプル値Df^
(Xi,n,o-1,q,r)がWDP807内のレジスタR
(OBR)に格納され、DAC811に供給され
る。 上述の〜の処理が、シーケンサ802から
発生しているチヤネルコードCHCのチヤネル1
に対応する命令ステツプ1〜11の同一タイミング
内で実行される。 そして、再びチヤネル1に対応するチヤネルコ
ードCHCがシーケンサ802から発生されると
下述の処理が行なわれる。 上述のの説明と同様に、チヤネル1に対応
する楽音発生データが、FDP806,WDP8
07,DRP808に供給される。 上述のの説明と同様に、DRP808で、
DBK606内に格納している先頭番地、制御
データ、波形データ(Xi,o+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つの波形サンプルデータを用いて楽音
波形を形成する波形計算部と、上記波形計算部の
デイジタル出力信号をアナログ信号に変換する変
換部とを具備し、かつ(2)式に示した内挿式を用
い、DRP808で読み出した波形サンプルデー
タ(Xi,o)と(Xi+1,o)とで、仮想サンプル値f^
(Xi,n,o)を求めるようにしたので、楽音波形の形
状を時間に変化させることができて、自然楽器音
を模擬することができるとともに波形のつなぎ目
で発生する不連続を防ぐことができる。 さらに、内挿係数(Nm+n)/MNを(Nm
+n)α/MNαと置き換え、MNα項を2のべき
乗とすることにより、(2)式の演算内容が簡略化で
き、波形内挿による波形発生が容易に実現できる
利点を有する。
第1図〜第5図は本発明の動作説明図、第6図
は本発明の楽音発生装置を採用した電子楽器のブ
ロツク図、第7図はCPU608から楽音発生部
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、607…楽音発
生部、801…主発振器、802…シーケンサ、
803…入力レジスタ部、804…タイマー、8
05…比較レジスタ部、806…周波数データプ
ロセツサ、807…波形データプロセツサ、80
8…データリードプロセツサ、809…読み出し
パルス形成部、810…計算要求フラグ発生部、
811…DAC、812…アナログバツフアメモ
リ部、813…積分器。
は本発明の楽音発生装置を採用した電子楽器のブ
ロツク図、第7図はCPU608から楽音発生部
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、607…楽音発
生部、801…主発振器、802…シーケンサ、
803…入力レジスタ部、804…タイマー、8
05…比較レジスタ部、806…周波数データプ
ロセツサ、807…波形データプロセツサ、80
8…データリードプロセツサ、809…読み出し
パルス形成部、810…計算要求フラグ発生部、
811…DAC、812…アナログバツフアメモ
リ部、813…積分器。
Claims (1)
- 【特許請求の範囲】 1 楽音の発音開始から発音終了時までの複数個
の楽音波形のうち少なくとも2つ以上の楽音波形
をデイジタル値の形で記憶する波形メモリと、発
音音階を決定するノートクロツク発生部と、上記
ノートクロツク発生部の出力信号に基づいて上記
波形メモリから2つの波形サンプルデータを読み
出す波形読み出し部と、上記波形読み出し部で読
み出した2つの波形サンプルデータを用いて楽音
波形を形成する波形計算部と、上記波形計算部の
デイジタル出力信号をアナログ信号に変換する変
換部とを具備し、前記波形計算部で実行する計算
内容は、前記波形読み出し部で読み出した2つの
波形サンプルデータ(Xi,o),(Xi+1,o)を用い
(Xi)から(Xi+1)への波形移行枚数をMiと
し、実質的に次式に示す波形内挿演算を行ない、
仮想波形サンプル値f^(Xi,n,o)を求めるようにし
た楽音発生装置。 f^(Xi,n,o) =〔(Xi+1,o)−(Xi,o)〕 ×(Nm+n)/Mi・N+(Xi,o) i=0,1,2,…1−1 波形ナンバ m=0,1,2,…Mi−1 くり返しナンバ n=0,1,2,…N−1 波形サンプル数 2 仮想サンプル値を求める演算の内挿係数
(Nm+n)/MNを(Nm+n)α/MNαと置
き換え、MNα項を2のべき乗とし、増分データ
αをくり返し数指定データと波形1周期のサンプ
ル数によつて制御するようにした特許請求の範囲
第1項記載の楽音発生装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58011859A JPS59136790A (ja) | 1983-01-26 | 1983-01-26 | 楽音発生装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58011859A JPS59136790A (ja) | 1983-01-26 | 1983-01-26 | 楽音発生装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS59136790A JPS59136790A (ja) | 1984-08-06 |
| JPH0153800B2 true JPH0153800B2 (ja) | 1989-11-15 |
Family
ID=11789447
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58011859A Granted JPS59136790A (ja) | 1983-01-26 | 1983-01-26 | 楽音発生装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS59136790A (ja) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS52107823A (en) * | 1976-03-05 | 1977-09-09 | Nippon Gakki Seizo Kk | Electronic musical instrument |
| JPS5778599A (en) * | 1980-11-04 | 1982-05-17 | Matsushita Electric Industrial Co Ltd | Electronic musical instrument |
-
1983
- 1983-01-26 JP JP58011859A patent/JPS59136790A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS59136790A (ja) | 1984-08-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3634130B2 (ja) | 楽音生成装置及び楽音生成方法 | |
| JPH0153800B2 (ja) | ||
| JPS6343760B2 (ja) | ||
| JPS6343759B2 (ja) | ||
| JPH0331273B2 (ja) | ||
| JPS6229794B2 (ja) | ||
| JPH0310959B2 (ja) | ||
| JPS6035077B2 (ja) | 電子楽器 | |
| JPH0631984B2 (ja) | 楽音発生装置 | |
| JPH07325581A (ja) | 楽音発生装置 | |
| JPS59136792A (ja) | 楽音発生装置 | |
| JPS59136793A (ja) | 楽音発生装置 | |
| JPS59136794A (ja) | 楽音発生装置 | |
| JPS6352399B2 (ja) | ||
| JPH0127434B2 (ja) | ||
| JPH0127436B2 (ja) | ||
| JPH0127435B2 (ja) | ||
| JPH0231396B2 (ja) | ||
| JPS59220798A (ja) | 電子楽器 | |
| JPS59123887A (ja) | 楽音発生装置 | |
| JPS6335994B2 (ja) | ||
| JPS59214091A (ja) | ノ−トクロツク発生装置 | |
| JPS6033596A (ja) | 電子楽器 | |
| JPH0421199B2 (ja) | ||
| JPH0215299A (ja) | 楽音合成装置 |