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