JP2797142B2 - 電子楽器用処理装置 - Google Patents

電子楽器用処理装置

Info

Publication number
JP2797142B2
JP2797142B2 JP2175133A JP17513390A JP2797142B2 JP 2797142 B2 JP2797142 B2 JP 2797142B2 JP 2175133 A JP2175133 A JP 2175133A JP 17513390 A JP17513390 A JP 17513390A JP 2797142 B2 JP2797142 B2 JP 2797142B2
Authority
JP
Japan
Prior art keywords
mcpu
processing
data
program
effect
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 - Lifetime
Application number
JP2175133A
Other languages
English (en)
Other versions
JPH0462595A (ja
Inventor
禎生 根来
善登 山口
啓 真鍋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2175133A priority Critical patent/JP2797142B2/ja
Priority to US07/709,101 priority patent/US5200564A/en
Publication of JPH0462595A publication Critical patent/JPH0462595A/ja
Priority to US08/001,184 priority patent/US5691493A/en
Priority to US08/486,606 priority patent/US5584034A/en
Application granted granted Critical
Publication of JP2797142B2 publication Critical patent/JP2797142B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 [発明の技術分野] この発明は電子楽器用処理装置に関し、特に電子楽器
用処理装置の構造的なアーキテクチャに関する。
[発明の背景] 近年、電子楽器はコンピュータ化されている。しか
し、大量で高速のデータ処理が必要な楽音の生成に係る
部分は音源回路と呼ばれる専用構造のハードウェアで行
われており、マイクロコンピュータは楽器への制御入力
(鍵盤やコンソールパネルからの入力、MIDIその他の外
部制御入力、内部または外部の演奏メモリからの入力
等)を処理し、音源回路に適したコマンドを音源回路に
転送するに留まっている。
楽音生成処理は音源回路ハードウェアで行い、楽器の
制御入力の処理をマイクロコンピュータで行うという電
子楽器のシステムアーキテクチャーにはいくつかの問題
がある。第1に、音源回路ハードウェアは楽音パラメー
タを処理する種々の処理段階の随所にデータを一時的に
記憶する記憶装置、演算を行う演算回路を必要とするの
で必然的に回路規模が大きくなる。第2に、音源回路ハ
ードウェアを設計変更する場合に、しばしば大規模な回
路変更が余儀なくなり、多大の開発時間、労力を要す
る。更にマイクロコンピュータと音源回路ハードウェア
との間のインターフェースについても、音源回路ハード
ウェアごとに検討し直し、開発し直す必要がある。
以上の理由から、本件出願人は音源回路ハードウェア
を使用することなくマイクロコンピュータのプログラム
制御だけで楽音を生成することのできる電子楽器用処理
装置を提案した(特願昭63−334158号)。
この出願の実施例は単一のCUPがプログラムを実行し
て楽音を生成する構成を示している。この場合、楽音生
成能力を上げるにはCPUの処理速度を上げる必要があ
る。
特に、生成楽音に対してデジタルエフェクト処理のプ
ログラムを実行して、エフェクトをかけることを、楽音
生成のプログラムに続けて単一のCPUが行おうとする場
合、1サンプリング周期内で行うには、半導体デバイス
の動作速度限界等によって現実的には困難となってしま
う。
[発明の目的] したがって、この発明の目的は、音源回路ハードウェ
アやデジタルエフェクト回路ハードウェアを使用するこ
となく楽音生成処理とエフェクト処理とをプログラム制
御により実行することを、実現可能とする電子楽器用処
理装置を提供することである。
[発明の構成、作用] この発明によれば、メインCPU及びこのメインCPUによ
って制御される少なくとも1つのサブCPUからなり、前
記メインCPUは、楽器への入力を処理するための入力処
理プログラムと楽音を生成するための処理を行う楽音生
成プログラムを記憶するMCPUプログラム記憶手段と、所
定のサンプリング周期で割り込み信号を発生するタイマ
ーインターラプト制御手段と、通常は前記MCPUプログラ
ム記憶手段から入力処理プログラムを読み出すととも
に、このタイマーインターラプト制御手段からの割り込
み信号を受ける毎に前記MCPUプログラム記憶手段から前
記入力処理プログラムに代えて楽音生成プログラムを読
み出すMCPUアドレス制御手段と、前記MCPUアドレス制御
手段により前記MCPUプログラム記憶手段から読み出され
たプログラムの各命令を解読するMCPU解読手段と、前記
MCPU解読手段により解読された入力処理プログラムの各
命令に基づいて生成された、楽音の生成に必要なデータ
を記憶するMCPUデータ記憶手段と、前記MCPU解読手段に
て解読された第1の楽音生成用プログラムの各命令に基
づいて前記MCPUデータ記憶手段に記憶された楽音生成に
必要なデータを用いて楽音生成に必要な演算処理を行
い、生成された楽音データを前記MCPUデータ記憶手段に
記憶するMCPU演算処理手段と、前記インターラプト制御
手段から割り込みを受ける毎に前記MCPUデータ記憶手段
に記憶されたデータのうちの楽音データを前記サブCPU
に転送させるとともに、当該サブCPUに対して起動信号
を供給するサブCPU制御手段と、を有し、 前記サブCPUは、楽音に対してエフェクトを付加する
エフェクト付加処理プログラムを記憶するSCPUプログラ
ム記憶手段と、前記メインCPUからの起動信号を受ける
毎に前記SCPUプログラム記憶手段からエフェクト付加処
理プログラムを読み出すSCPUアドレス制御手段と、前記
SCPUアドレス制御手段により前記SCPUプログラム記憶手
段から読み出されたプログラムの各命令を解読するSCPU
解読手段と、前記SCPU解読手段にて解読されたエフェク
ト付加処理プログラムの各命令に基づいて前記メインCP
Uから転送された楽音データに対してエフェクトを付加
する演算処理を行い、当該エフェクト付加のなされた楽
音データを出力するSCPU演算処理手段と、を有すること
を特徴とする電子楽器用処理装置が提供される。
この構成によれば、従来のような音源回路ハードウェ
アを必要とせずまた、デジタルエフェクト回路ハードウ
ェアを必要とせずCPUの数に応じて高い楽音生成及びエ
フェクト付加能力を有する電子楽器用処理装置を得るこ
とができる。また、個々のCPU自体のハードウェアは構
造上、格別の差異がない同一のものを使用でき、基本的
には各CPUが実行するプログラムについてのみ、各CPUの
処理目的に合わせたものを使用すればよく、電子楽器用
処理装置としてのシステム構築が容易となる。
楽音信号の生成処理を並列に実行する手段は、種々の
態様を取り得る。1つの態様では、複数のCPUがパイプ
ライン結合されて楽音信号の生成及び楽音信号に対する
エフェクト付加の並列処理を実行する。例えば、第1の
CPUは楽音信号の生成処理を取り扱い、第2のCPUは第1
のCPUの処理結果を受けてエフェクト付加の処理を取り
扱う。各CPUは楽音出力データのサンプリング速度を維
持するため所定の間隔で処理を実行する。あるCPUがi
番目の楽音データサンプルのため処理を実行している間
に、このCPUの次のCPUは(i−1)番目の楽音データサ
ンプルに対するエフェクト付加の処理を実行する。更に
は各楽音生成処理、エフェクト処理を部分過程に分割し
複数のCPUのパイプライン処理で実現できる。パイプラ
イン結合システムの場合、一般には、応答の遅れとして
パイプラインの入口から出口までの処理時間がしばしば
問題になる。しかし、都合のよいことに電子楽器への応
用の場合には、数ミリ秒程度の応答の遅れは問題になら
ない。したがって、例えば、楽音出力データのサンプリ
ング周波数(各CPUの部分過程処理の実行間隔に相当す
る)を20KHzし、パイプラインでの応答遅れを1ミリ秒
とすると、最大20個のCPUをパイプライン結合可能であ
る。したがって、複数のCPUをパイプライン結合して楽
音を生成しエフェクトを付与する構成は楽音合成のアル
ゴリズムやエフェクト付加のアルゴリズムが複雑で、多
くの処理過程を必要する楽音合成及びエフェクト付加方
式を採用する場合に有効である。
[実施例] 以下、図面を参照してこの発明の実施例を説明する。
<概 要> 本実施例はこの発明を電子楽器に適用したものであ
る。本実施例は種々の特徴を含んでいる。第1の特徴
は、楽音信号を生成する音源としてプログラムで動作す
るマイクロコンピュータ処理装置(CPU)と得られた楽
音信号に対しエフェクトを付加するためのエフェクト装
置としてプログラムで動作するマイクロコンピュータ処
理装置(CPU)とを使用することであり、従来のような
専用構造のハードウェア音源やハイドウェアエフェクト
装置は不要である。1つのCPUがメインCPUあるいはマス
ターCPU(10)として働き、音源処理のみでなくアプリ
ケーション(この場合、楽器)に従う入力装置(鍵盤、
機能キー等)を取り扱う(第4図〜第6図)。他のCPU
はマスターCPUに対してサブCPUないしスレーブCPU(2
0)として働き、エフェクト処理及び出力処理(D/A変
換)を実行する(第15図〜第18図)。
第2の特徴はサブCPUが動作を開始し、終了するメカ
ニズムに関係しており、本実施例によれば、サブCPUの
動作は、マスターCPUに対して音源処理を要求するタイ
マインタラプトを合図としてマスターCPUから音源処理
データを受け取った時から開始し、その結果、マスター
CPUとサブCPUにおいて音源処理とエフェクト処理とが並
行に実行される。サブCPUの動作(エフェクト処理)が
終了するとその終了信号によってサブCPUはリセット状
態(停止状態)に移行するとともにその終了信号がマス
ターCPUに伝えられる(第10図)。この特徴により、マ
スターCPUはサブCPUの動作期間及びタイミングを有効に
管理、把握できる。更に、この特徴により、高速処理が
要求される音源処理及びエフェクト処理タスク(楽音信
号のデジタルサンプルを生成し、更にデジタルエフェク
トを付加する仕事)を効率よく実行できる。
<全体構成(第1図)> 第1図は電子楽器の処理装置として構成した本実施例
の全体構成を示すブロック図である。本システムはワン
チップ化された2つの中央演算処理装置(一方をMCPU1
0、他方をSCPU20で示す)を有する。各CPU10、20はプロ
グラムを内蔵しており、それぞれのプログラムに従って
動作する。MCPU10は音源装置(第5図、第6図)以外に
システム全体の制御、例えば入力ポート118、出力ポー
ト120に接続される入力装置(例えば鍵盤、機能キー
等)からの入力情報の処理、SCPU20で行うエフェクト処
理についての管理等を行う(第4図)。これに対し、SC
PU20はエフェクト処理とデジタル楽音信号をアナログ楽
音信号に変換するDAC100の制御に専用される(第15図〜
第18図)。
90は音源制御データ、波形データ等のデータ源として
のメモリ及びエフェクト処理のための波形データの記憶
用のメモリである。データメモリ90はここでは、LSIチ
ップ(第1図の残りのデバイスを搭載している)に外付
けされたROM90−1とRAM90−2で構成されている。前者
の機能をROM90−1が担当し、後者の機能をRAM90−2が
担当する。集積度が高ければ、単一のLSIチップ上にデ
ータメモリ90を内部メモリとして形成可能である。外部
メモリ90のうちROM90−1はMCPU10に、RAM90−2はSCPU
20に使用される。MCPU10からのアドレス情報はMCPU10に
結合するアドレスバスMAを介して外部データメモリ90の
うちのROM90−1のアドレス入力に加えられる。一方、S
CPU20からのアドレス情報はSCPU20に結合するアドレス
バスSAを通して外部データメモリ90のうちのRAM90−2
のアドレス入力に加えられる。外部データメモリ90のう
ちのROM90−1からMCPU10へのデータ伝送径路はROM90−
1のデータ出力とMCPU10に結合するデータバスMDによっ
て構成される。これに対し、外部データメモリ90のうち
のRAM90−2からSCPU20へのデータ伝送径路はRAM90−2
のデータ出力とSCPU20に結合するデータバスSDによって
構成される。
上述したようにSCPU20でのエフェクト処理によりエフ
ェクトが付加されたデジタル楽音信号が生成される。生
成結果はSCPU20から、右DAC100Rと左DAC100Lとから成る
デジタルアナログ変換器(DAC)100(第9図参照)に送
られ、アナログ楽音信号に変換されて外部に出力され
る。
<MCPUとSCPUの構成(第2図、第3図)> 第2図にMCPU10の内部構造を示し、第3図にSCPU20の
内部構造を示す。
第2図において制御用ROM102には楽器の各種制御入力
を処理するメインプログラムと楽音を生成するインタラ
プト処理プログラムが記憶されており、ROMアドレス制
御部114からROMアドレスデコーダ104を介して指定され
たアドレスにあるプログラム語(命令)をインストラク
ション出力ラッチ102aを介して順次出力していく。な
お、具体的実施例では、プログラム語長は28ビットであ
り、プログラム語の一部が次に読み出されるべきプログ
ラム語を記憶するアドレスの下位部(ページ内アドレ
ス)としてROMアドレス制御部114に入力されるネクスト
アドレス方式となっているが、代りにプログラムカウン
タ方式を使用してもよい。RAMアドレス制御部105は制御
用ROM102からの命令のオペランドがレジスタを指定して
いる場合に、RAM106内の対応するレジスタのアドレスを
指定する。RAM106は演算用メモリを構成するレジスタ群
であり、汎用演算、フラグ演算、楽音の演算等に使用さ
れる。ALU部(加減算器及び論理演算部)108と乗算器11
0は制御用ROM102からの命令が演算命令のときに用いら
れる。特に乗算器110は楽音波形の演算に使用してお
り、そのための最適化として第1と第2のデータ入力
(例えば16ビットデータ)を乗算して入力と同じ長さ
(16ビット)のデータを出力するようになっている。上
記RAM106、加減算器108、乗算器110により、演算回路が
構成される。オペレーション制御回路112(いわゆるイ
ンストラクションデコーダを含む)は制御用ROM102から
の命令のオペレーションコードを解読し、指示されるオ
ペレーションを実行するために、回路の各部に制御信号
(全体をCNTRで示す)を送る。また条件付分岐命令の実
行の際にオペレーション制御回路112はALU部108からの
ステータス信号S(例えばオーバーフロー信号、ゼロフ
ラグ信号等)により分岐条件成立を検出してROMアドレ
ス制御部114を介してアドレスを分岐先のアドレスにジ
ャンプさせる。
サンプリング周期ごとに制御用ROM102の楽音生成プロ
グラムを実行するため、この実施例ではタイマインタラ
プトを採用している。すなわち、タイマ(ハードウェア
カウンタ)を有するインタラプト発生部116により、一
定時間ごとにROMアドレス制御部114に制御信号INT(割
込要求信号)を送り、この信号により、ROMアドレス制
御部114は次に行うメインプログラムの命令のアドレス
を退避(保持)し、楽音の生成が行われるインタラプト
処理プログラム(サブルーチン)の先頭アドレスを代り
にセットする。これにより、インタラプト処理プログラ
ムが開始される。インタラプト処理プログラムの最後に
はリターン命令があるので、このリターン命令がオペレ
ーション制御回路112で解読された時点で、ROMアドレス
制御部114は退避してあったアドレスを再度セットし、
メインプログラムに復帰する。更に、インタラプト発生
部116からの制御信号INTはDAC100における楽音信号のデ
ジタル/アナログ変換サンプリング速度を定めるために
DAC100に供給される。なお、インタラプト発生部116は
図の上ではMCPU10の内部要素として描いてあるが、MCPU
10に対して現在行っている仕事を停止させ特別の処理を
要求するものであり、論理的にはMCPU10の外部要素(周
辺装置)である。
クロック発生回路136はマスタークロック発生回路
(図示せず)からの2相のマスタークロックCK1とCK2を
受け、オペレーション制御回路112を始めとする回路の
各部に加える種々のタイミング信号(T1、T2、T3、T1CK
1、T2CK2、T3CK3等)を発生する。
第2図の残りの要素はMCPU20の外部装置とのインタフ
ェースに係っている。122は外部メモリアクセス用アド
レスバスMA(第1図)にMCPU内部バスを接続するための
バスインタフェースとしてのゲートを表わし、124は外
部メモリデータバスMDにMCPU内部バスを接続するための
ゲートを表わす。また、入力ポート118と出力ポートはM
CPU内部バスを外部の入力装置に結合するためのインタ
フェースである。128はSCPU内部RAMアドレス指定バスに
MCPU内部バスを接続するためのゲート、130はSCPU内部R
AM書込データバスにMCPU内部バスを接続するためのゲー
トを表わす。
SCPUリセット制御部134はSCPU20の動作期間を管理す
るためのデバイスである。この実施例では、SCPUリセッ
ト制御部134はインタラプト発生部116からのインタラプ
ト信号INTの発生の後に、オペレーション制御回路112か
ら出力する制御命令に応答して、SCPU20の処理開始を示
す信号Aを発生する。この信号AはSCPU20のROMアドレ
ス制御部214(第3図)に送られ、これによりROMアドレ
ス制御部214のアドレス更新動作が開始し、SCPU20の動
作(エフェクト処理を含む)が開始する。SCPU20の動作
が終了するとSCPU20のオペレーション制御回路212から
処理終了を示す信号Bが発生し、この信号BがSCPUリセ
ット制御部134に送られる。これに対し、SCPUリセット
制御部134はSCPU20の動作を停止するために信号Aを反
転し、これによりSCPU20のROMアドレス制御部214の動作
を停止させる、とともに、SCPU20が停止中であることを
表わすSCPU状態フラグ信号をオペレーション制御回路11
2に送る。オペレーション制御回路112は制御用ROM102か
らのSCPU状態の検査命令の実行時に、このSCPU状態フラ
グ信号を読むことにより、SCPU20の状態を検出できる。
第3図のSCPU20のブロック図において、要素202、202
a、204、205、206、208、210、212、214、222、224、23
6はそれぞれ、第2図のMCPU10のブロック図における要
素102、102a、104、105、106、108、110、112、114、12
2、124、136に対応する要素である。ただし、SCPU20の
制御用ROM202には基本的にエフェクト処理のためのプロ
グラムのみが記憶されており、SCPU20をエフェクト処理
専用の処理装置として機能させている。
126はDACデータ転送バスにSCPU内部バスを接続するた
めのゲートを表わす。
240はSCPU20の演算用メモリとしてのRAM206へ入力す
るデータをMCPU10からのデータ(MCPU10からゲート13
0、データバスDOUTを通ったデータ)とSCPU20の生成
(演算)したデータ(ALU部208または乗算器210からの
データバスDB上のデータ)とから選択するRAMデータイ
ン切り換え部である。RAMデータイン切り換え部240は信
号Aによってその選択モードが制御され、信号Aが“SC
PU20動作中”を表わしているときにはSCPU20で演算した
データを選択し、信号Aが“SCPU20停止中”を表わして
いるときにはMCPU10からのデータを選択する。
また、RAMアドレス制御部205も、信号Aによってその
モードが制御され、信号Aが“SCPU20動作中”を表わし
ているときには制御用ROM202のインストラクション出力
ラッチ202aからのバスSA上の情報をRAM206のアドレスと
して選択し、信号Aが“SCPU20停止中”を表わしている
ときにはMCPU10からバスゲート128(信号Aにより開い
ている)を経てバスMa上にあるMCPU10からの情報をRAM2
06のアドレスとして選択する。同様に、ライト信号切り
換え部242も信号Aによってそのモードが制御され、信
号Aが“SCPU20動作中”を表わしているときにはSCPU20
のオペレーション制御回路212からのRAMリードライト信
号を選択してRAM206のリードライト入力/Wに結合し、
信号Aが“SCPU20停止中”を表わしているときにはSCPU
20ではなくMCPU10のオペレーション制御回路112からのS
CPURAMリードライト信号Cを選択してRAM206のリードラ
イト入力/Wに結合する。
以下、本実施例の諸特徴を更に詳細に説明する。
<CPU動作説明> 第4図はMCPU10のメインプログラム(バックグランド
プログラム)によるMCPU10の動作を示すフローチャー
ト、第5図、第6図はタイマインタラプト信号INTによ
って起動されるMCPU10のインタラプト処理ルーチンによ
るMCPU10の動作を示すフローチャート、第15図乃至第18
図はMCPU10からの動作開始信号Aによって起動されるSC
PU20のプログラムによるSCPU20の動作を示すフローチャ
ートである。
第1図〜第3図に関して述べたように、本実施例の電
子楽器処理システムはMCPU10とSCPU20とから成る複数の
CPUを備えており、両CPUが協働して電子楽器のための処
理を実行する。特にMCPU10は、本実施例では第5図、第
6図に示すようなインタラプト処理ルーチンにより音源
処理を行い、SCPU20は第15図乃至第18図に示すようなプ
ログラムによりエフェクト処理を行う。更にMCPU10は第
4図に示すメインプログラムにより、システム全体の制
御のための種々のタスクを実行する。
第4図のメインプログラムのフローにおいて、4−1
は電源投入時にシステムを初期化する処理であり、MCPU
10はRAM106、RAM206のクリアや、リズムテンポ等の初期
値の設定等を行う。4−2でMCPU10は出力ポート120か
らキー走査のための信号を出力し、鍵盤、機能スイッチ
等の入力装置の状態を入力ポート118から取り込むこと
により、機能キー、鍵盤キーの状態をRAM106のキーバッ
ファエリアに記憶する。4−3では4−2で得た機能キ
ーの新しい状態と前回の状態とから、状態の変化した機
能キーを識別し、指示される機能の実行を行う(例え
ば、楽音番号のセット、エンベロープ番号のセット、リ
ズム番号のセット更には付加するエフェクトの状態
等)。特に、SCPU20内のエフェクト処理用テーブル(RA
M206内に構成され、具体的には、第20図のようにな
る。)に対する各種パラメータの設定を、エフェクトの
指定入力によって実行する。勿論これは、SCPU20の制御
プログラムの中にもつようにし、MCPU10からの指示で、
かかる設定処理をSCPU20が実行するようにしてもよい。
4−4では4−2で得た鍵盤の最新の状態と前回の状態
とから、変化した鍵(押鍵、離鍵)を識別する。次の4
−5で4−4の処理結果から、発音制御処理4−9のた
めのキーアサイン処理を行う。4−6では機能キーでデ
モ演奏キーが押鍵されたとき外部メモリ90から、デモ演
奏データ(シーケンサデータ)を順次読み出し、処理す
ることにより、発音制御処理4−9のためのキーアサイ
ン処理等を行う。4−7ではリズムスタートキーが押鍵
されたとき外部メモリ90からリズムデータを順次読み出
し、発音制御処理4−9のためのキーアサイン処理を行
う。フロー一周タイマ処理4−8では、メインフローで
必要なイベントのタイミングを知るために、フロー一周
時間(これは、フローを一周する間に実行されたタイマ
インタラプトの回数を計数することで得られる。この計
数処理は後述のインタラプト処理で行われる。)を基に
演算を行い、エンベロープ用タイマ(エンベロープの演
算周期)やリズム用の基準値を得る。発音制御処理4−
9では4−5、4−6、4−7でセットされたデータか
ら、実際に楽音を発音させるための各種演算を行い、結
果をRAM106内の音源処理用RAMテーブル(第8図)にセ
ットする。具体的には、第8図に示すMCPU10のRAM106内
の音源処理用テーブルレジスタにエンベロープ制御のた
めの各データや、アドレス加算値、ループアドレス、エ
ンドアドレス及びスタートアドレスなどの各データをセ
ットする。このMCPU10は8チャンネル分の楽音データを
生成可能であり、これらデータは4−5〜4−7でアサ
インされたデータに基づき、MCPU10のレジスタ内の対応
するチャンネルに割り当てられる。
詳細には、MCPU10のRAM106内のレジスタ群には、第8
図に示すように、エンベロープ制御のためのデータが記
憶される。エンベロープは振幅変調のために基本波形に
付加すべきもので、全体としていくつかのセグメント
(ステップ)から成っている。エンベロープ△xタイマ
と目標エンベロープとエンベロープ△xと加減フラグ付
エンベロープ△yは現在進行中のエンベロープセグメン
トを定義するエンベロープパラメータであり、このエン
ベロープパラメータは、MCPU10のメインプログラム(第
4図)の発音制御処理4−9内において、エンベロープ
値がセグメントの目標値に到達の都度、更新される情報
であり、インタラプト処理ルーチン(第5図、第6図)
ではこれらのエンベロープパラメータはエンベロープ△
xタイマを除いて単に参照されるだけである。エンベロ
ープ△xはエンベロープの演算周期を表わし、目標エン
ベロープは現セグメントにおけるエンベロープの目標値
を表わし、加減フラグ付エンベロープ△yは演算周期ご
とのエンベロープの変化分を表わし、現在エンベロープ
は現在のエンベロープ値を表わす。
また、第8図において記憶される各音源チャンネル毎
のアドレス加算値、ループアドレス、エンドアドレス及
びスタートアドレス兼現在アドレスは外部メモリ90(RO
M90−1)に置かれる基本波形に対するアドレス情報で
あり、スタートアドレスは基本波形メモリ(外部メモリ
90内のROM90−1)のスタートアドレス、ループアドレ
スは基本波形を繰り返し読み出す場合の戻り先のアドレ
ス(第7図ではスタートアドレスと同一)、エンドアド
レスは基本波形のエンドアドレスを表わし、現在アドレ
スは基本波形の現在の位相を表わすアドレスであり、そ
の整数部が、基本波形メモリに現実に存在する記憶場所
を表わし、その小数部が、この記憶場所からのずれを表
わし、アドレス加算値はタイマインタラプト処理ルーチ
ンの時間間隔ごとに現在アドレスに加算されるべき値で
あり、生成する楽音のピッチに正比例する。
さて、第4図において、4−10は次のメインフローの
パスのための準備処理であり、今回のパスで得た押鍵状
態への変化を示すNEW ON状態をON中にしたり、離鍵状
態への変化を示すNEW OFF状態をOFF中に変える等の処
理を行う。
インタラプト発生部116からインタラプト信号INTが発
生すると、MCPU10は実行中のメインプログラムを中断
し、第5図に示すインタラプト処理ルーチンを実行す
る。この場合、MCPU10は第5図、第6図のフローにおい
て楽音信号のデータを生成し、SCPU20は第15図〜第18図
のフローにおいてMCPU10からのデータに対してエフェク
トを付加するようになっている。
第5図のフローについて詳細に述べると、MCPU10は8
チャンネル分の楽音データが出力可能に構成され、5−
1でまずMCPU10のRAM106の音源処理レジスタ(第8図)
内の波形加算用領域(左)、(右)に前回割込で求めた
各チャンネルの楽音波形の合計値(ステレオ出力)をSC
PU20のRAM206のレジスタ(第20図をWAVERとWAVEL)に転
送する。この転送後、波形加算用領域(左)、(右)は
クリヤされる。そして、データの転送のタイミングに合
わせてMCPU10からSCPU20にアドレス信号及びパルス状の
ライト信号Cが出力される。このデータ転送が終了する
とMCPU10は、第10図に示すとおりSCPU20の動作を開始さ
せる動作開始信号Aを出力する(5−2)。このあと、
ステップ5−3〜5−10で第1チャンネルから第8チャ
ンネルまでの各チャンネルの音源処理を実行する。この
あと再びメインルーチンに戻る。
第6図は、第5図の5−1〜5−8のチャンネル音源
処理の詳細なフローを示す。本実施例においては、波形
読み出し方式の楽音生成アルゴリズムを採用している
(他の楽音合成方式、例えばFM合成アルゴリズムも実現
可能であり、この発明は特定の楽音生成方式には制限さ
れない。)。
第6図における各チャンネル処理は、大きくわけてエ
ンベロープ処理6−1〜6−7と波形処理6−8〜6−
21との2つである。
詳細に述べると、6−1でエンベロープの演算周期△
xと比較するためのタイマレジスタをインタラプトごと
にインクリメントし、6−2で△xと一致したとき6−
3でエンベロープ変位分のデータ△yの加減算フラグ
(符号ビット)をテストしてエンベロープが上昇中か下
降中かを判定し、6−4、6−5でそれぞれ現在エンベ
ロープの減算または加算を行う。6−6で現在エンベロ
ープが目標エンベロープ値に達したかどうかをチェック
し、達しておれば、6−7で現在エンベロープに目標レ
ベルをセットする。これによりメインプログラムの発音
制御処理4−9で次のエンベロープステップのデータが
セットされることになる。また発音制御処理4−9でゼ
ロの現在エンベロープを読んだときには発音の終了とし
て処理される。
続いて6−1〜6−19における波形処理においては、
現在アドレスの整数部を使って基本波形メモリから隣り
合う2つアドレスの波形データを読み出し、(整数部+
小数部)で示される現在アドレスに対して想定される波
形値を補間で求めている。補間が必要な理由は、タイマ
インタラプトによる波形サンプリング周期が一定であ
り、アドレスの加算値(ピッチデータ)が楽器への応用
上、ある音域にわたるためである(音階音しか出力しな
い楽器で音階音ごとに波形データを用意すれば補間の必
要はないが許容できない記憶容量の増大となる)。補間
による音色の劣化、歪みは高温域の方が著しいため、原
音の記録サンプリング周期より高速の周期で原音を再生
するのが好ましい。この実施例では原音再生の周期を2
倍にしている(第7図)。したがって、アドレス加算値
が0.5のとき、A4の音が得られるようになっている。こ
の場合、A#4ではアドレス加算値は0.529となり、A3
のとき、1となる。これらのアドレス加算値はピッチデ
ータとして制御データ兼波形外部メモリ90(ROM90−
1)内に記憶されており、押鍵時には前に述べたように
発音制御処理4−9において、鍵に対応するピッチデー
タと選択されている音色の波形スタートアドレス、波形
エンドアドレス及び波形ループアドレス(ループスター
トアドレス)がRAM106の対応するレジスタ、すなわち、
アドレス加算値レジスタ、スタートアドレス兼現在アド
レスレジスタ、エンドアドレスレジスタ、ループアドレ
スレジスタにセットされる。
参考までに、第7図に時間に対する補間波形データを
示す。図中、白丸は基本波形メモリの記憶場所にある波
形データ値、×印は補間値を含む出力サンプルを示して
いる。
補間の方式はいろいろあるが、ここでは直線補間を採
用している。詳細に述べると、まず、6−8で現在アド
レスにアドレス加算値を加算して新しい現在アドレスを
得る。6−9で現在アドレスとエンドアドレスを比較
し、現在アドレス>エンドアドレスならば、9−10、9
−11により、現在アドレス<エンドアドレスのときは6
−12により、物理上(番地上)または論理上(動作上)
の次のアドレスを計算し、6−14でその整数部により基
本波形メモリをアクセスして次回波形データを得る。ル
ープアドレスは動作上エンドアドレスの次のアドレスで
ある。すなわち、第7図の場合、図示の波形は繰り返し
読み出される。したがって、現在アドレス=エンドアド
レスのときは次のアドレスとしてループアドレスの波形
データを読み出す(6−13)。6−15、6−16により、
現在アドレスの整数部で基本波形をアクセスして今回の
波形データを読み出す。次に、6−17で次回波形値から
今回波形値を減算し、6−18でその差に現在アドレスの
小数部を乗算し、その結果を6−19で今回の波形値に加
えることにより、波形の直線補間値を求める。この直線
補間したデータに現在エンベロープ値を乗算してチャン
ネルの楽音データ値を得(6−20)、それを波形加算用
レジスタの内容に加えて楽音データを累算する(6−2
1)。具体的には、各チャンネル用の音源データとして
内部RAM106上に、選択DAC指示データをもたせ、また、
2つの波形加算用領域、即ち、左DAC用波形加算用領域
と右DAC用波形加算用領域を設ける。6−20の処理の
後、処理チャンネルに割り当てているDACを選択DAC指示
データから判別し、対応する波形加算用領域に処理チャ
ンネルの楽音波形データを加算する。この、左、右波形
加算用領域の楽音波形データ(の合成値)が基本的に、
左右のステレオ出力となる。
次に、SCPU20の動作について説明する。第10図に示す
とおり、SCPU20は、MCPU10のインタラプト処理ルーチン
のなかのステップ5−2の指示により動作開始するもの
で、5−1においてMCPU10からSCPU20に新たな楽音デー
タ(ステレオ出力)が次々と与えられるのに対して、デ
ジタルエフェクト処理を行う。
このエフェクト処理のプログラムを具体的に説明する
前に、本実施例のエフェクト処理の内容について概説す
る。第11図は、エフェクト処理の機能ブロックを示して
おり、1サンプリング毎にSCPU20はこの機能ブロックに
ついての処理を実行する。具体的にはディレイ効果付加
回路1101と、コーラス効果付加回路1102と、リバーブ効
果付加回路1103とを有するが、これはSCPU20により、1
サンプリング時間毎にディレイ、コーラス、リバーブに
ついての効果付加処理を、それぞれステレオ状態で時分
割的に行うことを意味するのである。つまりMCPU10より
与えられるステレオの右及び左の入力信号(WAVER、WAV
EL)は、それぞれ後述するディレイ効果付加回路1101の
右及び左入力端子側に入力され、それぞれディレイ効果
が付加され、右及び左出力端子側より出力される。これ
らディレイ効果付加回路1101からの右及び左出力は、そ
れぞれ同時に切換が行われるディレイ効果選択スイッチ
1104を介して、それぞれ加算器1105、1106へ与えられ
る。これら加算器1105、1106は、ディレイ効果付加回路
1101の右及び左出力とそれぞれ右及び左入力信号を加算
する。そして、前記加算器1105、1106の出力は、加算器
1107で加算され、この加算出力が1入力の後述するコー
ラス効果付加回路1102の入力端子側に入力され、コーラ
ス効果が付加され右及び左出力端子側より出力される。
これらコーラス効果付加回路1102からの右及び左出力
は、それぞれ同時に切換が行われるコーラス効果選択ス
イッチ1108を介して、それぞれ加算器1109、1110へ与え
られる。これら加算器1109、1110は、コーラス効果付加
回路1102の右及び左出力とそれぞれ加算器1105、1106の
出力を加算する。そして、前記加算器1109、1110の出力
は、加算器1111で加算され、この加算出力が1入力の後
述するリバーブ効果付加回路1103の入力端子側に入力し
たり、リバーブ効果が付加され右及び左出力端子側より
出力される。これらリバーブ効果付加回路1103からの右
及び左出力は、それぞれ同時に切換が行われるリバーブ
効果選択スイッチ1112を介して、それぞれ加算器1113、
1114へ与えられる。これら加算器1113、1114は、リバー
ブ効果付加回路1103の右及び左出力とそれぞれ加算器11
09、1110の出力を加算し、それぞれ右及び左出力端子よ
り出力する。すなわち、ディレイ効果付加回路1101の入
力側、加算器1105、1106の出力側、加算器1109、1110の
出力側、加算器1113、1114の出力側は、それぞれ2つの
入力または出力となり、それぞれの効果付加回路を含む
ブロック(第11図において点線で示す)単位での順序の
入れ換えが可能に構成されている。これはSCPU20の動作
にあっては、各効果のための処理の順序を変更すること
を意味する。
第12図は、第11図のディレイ効果付加回路1101の一例
を示す機能ブロック図である。同図において、ディレイ
効果付加回路1101は、右及び左ディレイ効果付加用に独
立に2組設けられており、2つの遅延回路を構成するシ
フトレジスタ1a、1bと、これらシフトレジスタ1a、1bを
それぞれシフトするクロックジェネレータ(CLK)1c、1
dと、シフトレジスタ1a、1bの出力をそれぞれ減衰さ
せ、入力側へ帰還する減衰器1e、1fと、シフトレジスタ
1a、1bのそれぞれの入力側に設けられ、入力信号と減衰
器1e、1fの出力とをそれぞれ加算する加算器1g、1hとか
ら構成されている。そして、シフトレジスタ1a、1bの出
力側にそれぞれディレイ効果の出力端子を有する。すな
わち、入力信号はフィードバックループを有するシフト
レジスタ1a、1bで遅延され所定のディレイ効果が付加さ
れてステレオで出力される。ここでシフトレジスタ1a、
1bのシフト時間がディレイ効果の遅延時間を意味し、減
衰器1e、1fの減衰量がディレイ効果の帰還量を意味す
る。
第13図は、第11図のコーラス効果付加回路1102の一例
を示す機能ブロック図である。同図において、コーラス
効果付加回路1102は、入力を共通とする右及び左出力用
の2つの遅延回路を構成するシフトレジスタ2a、2bと、
これらシフトレジスタ2a、2bにそれぞれ変調周波数を供
給する電圧制御発振器(VCO)2c、2dと、この一方の電
圧制御発振器2cに位相反転回路2eを通し、他方の電圧制
御発振器2dに直接に、低周波出力を変調深さを決めるボ
リューム2fを介して供給する低周波発振決(LFO)2gと
から構成されている。そして、シフトレジスタ2a、2bの
出力側にそれぞれコーラス効果の出力端子を有する。す
なわち、低周波発振器(LFO)2gにより発生した低周波
出力を一方は反転回路2eを、他方は直接に電圧制御発振
器2c、2dを介してそれぞれシフトレジスタ2a、2bに与
え、電圧制御発振器(VCO)2c、2dの発振周波数を変
え、周波数変調効果が付加されてステレオで出力され
る。なお、SCPU20の構成では、電圧制御ではなくデジタ
ル演算制御で低周波出力や、波形の読出し信号出力を得
ている。
第14図は、第11図のリバーブ効果付加回路1103の一例
を示す機能ブロック図である。同図において、リバーブ
効果付加回路1103は、1つのシフトレジスタ3aと、この
シフトレジスタ3aをシフトするクロックジェネレータ
(CLK)3bと、シフトレジスタ3aの複数の中間のタップ
の出力をそれぞれ右及び左出力用として加算して出力す
る加算器3c、3dとから構成されている。そして、これら
加算器3c、3dの出力側にそれぞれリバーブ効果の出力端
子を有する。すなわち、入力信号はシフトレジスタ3aの
中間タップから種々に遅延された出力がそれぞれ加算器
3c、3dで加算され所望のリバーブ効果が付加されてステ
レオで出力される。
このような機能ブロックによる効果付加装置の動作を
説明する。
まず、動作の一例として、リバーブ効果選択スイッチ
1112がオフ状態、他のディレイ効果選択スイッチ1104、
コーラス効果選択スイッチ1108がオン状態にセットされ
たものとする。ここで、2つの入力端子に入力された信
号(WAVER、WAVEL)は、ディレイ効果付加回路1101にお
いて、それぞれディレイ効果が与えられステレオで出力
される。このディレイ効果の出力は、それぞれ入力信号
と加算器1105、1106により加算される。このディレイ効
果の出力は、それぞれ入力信号と加算器1105、1106によ
り加算される。これら加算器1105、1106の出力は、入力
信号にディレイ効果が付加されたものである。
更に、これら加算器1105、1106の出力は、加算器1107
により加算されコーラス効果付加回路1102に入力され、
ここでコーラス効果が与えられステレオで出力される。
このコーラス効果の出力は、それぞれ加算器1105、1106
の出力と加算器1109、1110により加算される。これら加
算器1109、1110の出力は、入力端子より入力された信号
にディレイ効果及びコーラス効果が付加されたものであ
る。更に、前記加算器1109、1110の出力は、加算器1111
により加算されるが、リバーブ効果選択スイッチ1112が
オフ状態になっているため、加算器1113、1114の出力に
は、加算器1109、1110の出力のみが出力される。従っ
て、加算器1113、1114からは、選択スイッチがオン状態
であるディレイ効果とコーラス効果が入力信号に付加さ
れ、ステレオで出力される。
他の選択スイッチがオン状態の場合も同様に作用す
る。すなわち、上記の構成においては、効果選択スイッ
チが少なくとも1つがオン状態になっていれば、最終的
な出力端子には入力信号に選択された効果が付加された
ステレオ出力が得られる。
次に、上記のような機能ブロックをSCPU20がソフト処
理により実現される動作について第15図乃至第18図を参
照して説明する。なお、第20図は、SCPU20のRAM206内に
構成されるエフェクト処理用テーブルであるが夫々のレ
ジスタにストアされるデータ及びパラメータの意味は、
次のとおりである。
LFO……LFO(低周波発振器)用領域で、LFOの発振のた
めの時間情報、角度情報、角度の変化量情報等のパラメ
ータが記録される。
LFOH……LFO出力の上位ビット側 LFOL……LFO出力の下位ビット側 DPOINTR……右チャンネルディレイメモリの入力ポイン
タ DPOINTL……左チャンネルディレイメモリの入力ポイン
タ DERIAAR……右チャンネルディレイメモリ領域の大きさ DERIAAL……左チャンネルディレイメモリ領域の大きさ DERIAOR……右チャンネルディレイメモリ領域の先頭ア
ドレス DERIAOL……左チャンネルディレイメモリ領域の先頭ア
ドレス CPOINT……コーラスメモリの入力ポインタ CERIAA……コーラスメモリ領域の大きさ CERIAO……コーラスメモリ領域の先頭アドレス RPOINT……リバーブメモリの入力ポインタ RERIAA……リバーブメモリの領域の大きさ RERIAO……リバーブメモリの領域の先頭アドレス DRDATAR……右チャンネルディレイの帰還波形データ DRDATAL……左チャンネルディレイの帰還波形データ WAVER……右チャンネル波形データ WAVEL……左チャンネル波形データ EWAVER……右チャンネル効果音波形データ EWAVEL……左チャンネル効果音波形データ DTIMER……右チャンネルディレイ遅延時間(シフトレジ
スタ1aの遅延時間に相当) DTIMEL……左チャンネルディレイ遅延時間(シフトレジ
スタ1bの遅延時間に相当) DRPEATR……右チャンネルディレイ帰還量(減衰回路1e
に相当) DRPEATL……左チャンネルディレイ帰還量(減衰回路1f
に相当) DDEPTHR……右チャンネルディレイ効果の深さ DDEPTHL……左チャンネルディレイ効果の深さ CDEPTH……コーラス効果の深さ CDTIME……コーラスの遅延時間(シフトレジスタ2a、2b
の遅延時間に相当) DTmL……左チャンネルリバーブの各遅延時間 RDEPTH……リバーブ効果の深さ 第15図は、MCPU10からの処理開始信号Aに応答して動
作するSCPU20のインタラプト処理動作を示すフローチャ
ートであり、このフローチャートの開始前に上述したよ
うなデータやパラメータがMCPU10からSCPU20のRAM206に
転送され設定されている(第10図及び第20図参照)。特
に、1サンプリングクロック毎に、ステレオの楽音信号
がMCPU10のRAM106の波形加算用領域(右)、(左)から
SCPU20のレジスタWAVER、WAVELへ転送されてきている
(第5図、5−1)。
SCPU20では、15−1〜15−3において、後述するディ
レイ効果付加の処理(DELAY)、コーラス効果付加の処
理(CHORUS)、リバーブ効果付加の処理(REVERB)が順
次行われる。ここで予め選択した効果付加のみを実行さ
せる場合は、15−1〜15−3の選択した処理を実行し、
他のステップについては、スルーでぬけるようにする。
これは第11図のスイッチ1104、1108、1112の機能と等価
である。次に、15−4において、EWAVER及びEWAVELをそ
れぞれ右DAC100R、左DAC100Lに転送する。すなわち、第
11図において、ディレイ効果付加回路1101、コーラス効
果付加回路1102、リバーブ効果付加回路1103でそれぞれ
の効果が付加され、出力端子よりステレオ出力が得られ
ることに対応する。一連の処理が終了するとSCPU20は15
−5で、信号BをMCPU10へ送出しエフェクト処理が完了
したことを知らせる(第10図参照)。
第16図に示すフローチャートは、第15図の15−1のデ
ィレイ効果付加の要部処理動作の詳細を示すものであ
る。同図の16−1において、DPOINTRをインクリメント
した値とDERIAARとのアンドをとり、その値とDERIAORと
のオアをとった値をDPOINTRに格納し(DPOINTR←DPOINT
R+1)∩DERIAAR∪DERIAOR)、またDPOINTRの内容をア
ドレスバスSAにセットする(アドレスバスSA←DPOINT
R)。即ち、上記16−1の論理演算DPOINTRをインクリメ
ントした値が外部メモリ90のうちのRAM90−2のディレ
イ効果のメモリ使用領域内にあるときには、そのインク
リメントした値がDPOINTRの内容となり、そのメモリの
最終アドレスを越えたときには先頭アドレスに戻った値
がDPOINTRの内容となることを示す。次に、16−2にお
いて、WAVERとDRDATARとを加算した値をデータバスSDに
セットする。そして、アドレスバスSAで指示される波形
データメモリつまりRAM90−2のアドレスにデータバスS
Dの値を書き込む。即ち、第12図に示す如くシフトレジ
スタ1aの出力の減衰器1eによる減衰量と入力データの値
とを加算器1gで加算し、再びシフトレジスタ1aに入力す
る(書き込む)演算に対応する。次に、第16図の16−3
において、DPOINTRにDTIMERを加算した値とDERIAARとの
アンドをとり、その値とDERIAORとのオアをとった値を
アドレスバスSAにセットする(アドレスバス←(DPOINT
R+DTIMER)∩DERIAAR∪DERIAOR)。この16−3の論理
演算では、ステップ16−1と同様の処理を行うためであ
り、DTIMERに相当するアドレスだけ加算された領域のデ
ィレイ効果メモリの波形データを読み出すためのアドレ
ス指定が行われる。なお、本実施例においてDERIAAR−D
TIMERの値が本来の遅延時間に相当する。これは、DTIME
R後のアドレスに入っている波形は実はDERIAAR−DTIMER
の過去の波形であることから理解される。そして、ステ
ップ16−4において、データバスSDの値にDDEPTHRを乗
算した値にWAVERを加算した値をWAVERに、またデータバ
スSDの値にDRPEATRを乗算した値をRAM206内のレジスタD
RDATARに格納する(WAVER←WAVER+データレジスタ×DD
EPTHR、DRDATAR←データレジスタ×DRPEATT)。即ち、
上記16−4においてアドレスバスSAで指示される波形デ
ータメモリ(RAM90−2)の波形データを読み出し、右
チャンネル用のディレイ効果音を得る。
次に、上記16−1〜16−4と同様の処理を左チャンネ
ルに対しても行い、左チャンネル用のディレイ効果音を
得る。
第17図に示すフローチャートは、第15図の15−2のコ
ーラス効果付加の要部の処理動作の詳細を示すものであ
る。同図の17−1において、低周波発振のための波形デ
ータを得る低周波発振器(LFO)の処理が行われる。こ
のときRAM206内のレジスタ群LFOが使用される。この17
−1における処理の概要は、発生すべき波形を時間情
報、角度情報、角度の変化量情報として記憶し、計数手
段と累算手段により読み出し速度を変化させ、波形の整
数部出力(LFOH)と小数部出力(LFOL)とを出力するも
ので、周波数に応じてひずみの少ない波形を発生させる
ことができ、かつ変化量を一定にした小数部出力(LFO
L)を得ることが容易なものである。即ち、この17−1
の処理後には発生すべき波形の整数部出力(LFOH)と小
数部出力(LFOL)が得られる。
次に、17−2において、CPOINTをインクリメントした
値とCERIAAとのアンドをとり、その値とCERIAOとのオア
をとった値をCPOINTに書き込み(CPOINT←(CPOINT+
1)∩CERIAA∪CERIAO)、またCPOINTの内容をアドレス
バスSAにセットする(アドレスバスSA←CPOINT)。即
ち、CPOINTをインクリメントした値がコーラス効果の外
部RAM90−2のメモリ使用領域内にあるときには、その
インクリメントした値がCPOINTの内容となり、そのメモ
リ90−2の当該エリアの最終アドレスを越えたときには
先頭アドレスに戻った値がCPOINTの内容となる。次に、
17−3において、WAVERとWAVERLを加算した値をデータ
バスSDにセットする。そして、アドレスバスSDで指示さ
れる波形データメモリ(外部RAM90−2)のアドレスに
データバスSDの値を書き込む。即ち、第11図において、
加算器1105、1106の出力を加算器1107で加算し、コーラ
ス効果付加回路1102に供給する処理に対応する。次に、
17−4において、CPOINTとLFOHとCDTIMEとを加算した値
とCERIAAとのアンドをとり、その値とCERIAOとのオアを
とった値をアドレスバスSAに出力し(アドレスバスSA←
(CPOINT+LFOH+CDTIME)∩CERIAA∪CERIAO)、その結
果出力されるデータバスSDの値に1.0からLFOLを減算し
た値を乗算し、その乗算値をEWAVERに格納する(EWAVER
←データレジスタ×(1.0−LFOL)。
次に、17−5において、CPOINTとLFOHと1とCDTIMEと
を加算した値とCERIAAとのアンドをとり、その値とCERI
AOとのオアをとった値をアドレスバスSAにセットし(ア
ドレスバスSA←(CPOINT+LFOH+1+CDTIME)∩(CERI
AA∪CERIAO)、その結果出力されるデータバスSDの値に
LFOLを乗算した値にEWAVERを加算した値をEWVERに格納
する(EWAVER←データバスSD×LFOL+EWAVER)。即ち、
17−4、17−5の論理演算では、LFOHとCDTIMEとを加算
した値およびその値に1を加えた値に相当するアドレス
だけ加算された領域のコーラス効果メモリ(RAM90−2
に形成される)の波形データを読み出すためのアドレス
指定が行われる。そして、第19図に示す如く、波形デー
タメモリアドレスが1つずれた値の間を小数値(LFOL)
対応する値に直線補間する演算をしている。
次に、17−6において、EWAVERにCDEPTHを乗算した値
にWAVERを加算し、その加算値をWAVERに格納する。従っ
て、17−4〜17−6において、低周波波形に対応して読
み出しアドレスを変化させ、遅延時間を変化させて波形
データを出力する右チャンネル用のコーラス効果付加音
を得る。
次に、17−7、17−8において、上記17−4、17−5
と同様に−LFOHとCDTIMEとを加算した値及びその値から
1を引いた値に相当するアドレスが加算された領域のコ
ーラス効果メモリ(RAM90−2)の波形データを読み出
すためのアドレス指定を行い、波形データメモリアドレ
スが1つずれた値の間を小数値(LFOL)に対応する値に
直線補間する演算を行う。即ち、17−7、17−8におい
ては、上記17−4、17−5の右チャンネル用に対し低周
波発振器(LFO)の出力を反転した値に相当するアドレ
スを指定して読み出しを行い、しかる後に上記同様に補
間演算も行っている。即ち、第13図において低周波発振
器2gの出力を一方は反転回路2e、他方は直接に電圧制御
発振器2c、2dを介してそれぞれシフトレジスタ2a、2bに
与え、遅延時間を変えて読み出すことに相当する。次
に、17−9において、EWAVELにCDEPTHを乗算した値にWA
VELを加算し、その加算値をWAVELに格納する。従って、
17−7〜17−9においてLFOの低周波波形に対応して読
み出しアドレスを変化させ、遅延時間を変化させて波形
データを出力する左チャンネル用のコーラス効果音を得
る。
第18図に示すフローチャートは、第15図の15−3のリ
バーブ効果付加の要部の処理動作の詳細を示すものであ
る。同図の18−1において、RPOINTをインクリメントし
た値とRERIAAとのアンドをとり、その値とRERIAOとのオ
アをとった値をRPOINTに格納し(RPOINT←(RPOINT+
1)∩RERIAA∪RERIAO)、またRPOINTの内容をアドレス
バスSAに格納する(アドレスバスSA←RPOINT)。即ち、
RPOINTをインクリメントした値がリバーブ効果のメモリ
使用領域内(外部メモリ90−2内に形成される)にある
ときには、そのインクリメントした値がRPOINTの内容と
なり、そのメモリの当該エリアの最終アドレスを越えた
ときには先頭アドレスに戻った値がRPOINTの内容とな
る。次に、18−2において、「0」をEWAVERに格納し、
WAVERとWAVELとの加算値をデータバスSDに転送する。即
ち、第11図において、加算器1109、1110の出力を加算器
1111で加算し、リバーブ効果メモリに書き込む処理に対
応する。そして、アドレスバスSAで指示される波形デー
タメモリ(外部RAM90−2)のアドレスにデータバスSD
の値を書き込む。次に、18−3において、RPOINTとDT1R
とを加算した値とRERIAAとのアンドをとり、その値とRE
RIAOとのオアをとった値をアドレスバスSAに出力し、
(アドレスバスSA←(RPOINT+DT1R)∩RERIAA∪RERIA
O)、その結果得られるデータバスSDの値にEWAVERを加
算した値をEWAVERに格納する(EWAVER←EWAVER+データ
バスSD)。即ち、18−3の論理演算では、遅延時間DT1R
に相当するアドレスだけ加算された領域のリバーブ効果
メモリ(RAM90−2)の波形データを読み出すためのア
ドレス指定が行われ、その指定されたアドレスの波形デ
ータメモリ(RAM90−2)の内容がレジスタEWAVERに加
算される。次に、18−3と同様にして遅延時間DT2R〜DT
mRに相当するアドレスだけ加算された領域のリバーブ効
果の波形データを順次読み出すとともに加算する。即
ち、第14図において、シフトレジスタ3aの中間タップか
らの出力を加算器3cで加算することに対応する。次に、
18−4において、EWAVERにRDEPTHを乗算した値をEWAVER
に格納する。即ち、リバーブ効果音の波形データにリバ
ーブの効果の深さを乗算し右チャンネル用リバーブ効果
出力を得る。次に上記18−2〜18−4と同様の処理を行
い左チャンネルについて左チャンネル用リバーブ効果出
力を得る。なお、第11図の加算器1113、1114について前
段のエフェクト回路の出力との合成をして、エフェクト
出力とすることと等価な動作を行わせるにはステップ18
−4をEWAVER←EWAVER×RDEPTH+WAVERとすればよく、
左チャンネルについても同様に、EWAVEL←EWAVEL×RDEP
TH+WAVELとすればよい。このようにすれば、原音とリ
バーブ音との比率がRDPTHで決まることになる。
このように、このSCPU20ではソフトウェアにより外部
メモリ(RAM)90−2を使用しながら1サンプリング時
間内で時分割処理により効果付加されたステレオ出力を
得る。
第9図は、第1図に示されるD/Aコンバータ(DAC)10
0の構成例を示す。
本実施例においてDAC100はSCPU20が生成したエフェク
ト処理された後のデジタル楽音信号をアナログ楽音信号
に変換するものである。第15図の15−4に示すように、
SCPU20はタイマインタラプト処理ルーチンのなかで、SC
PU20が生成したエフェクト付加後のデジタル楽音信号の
サンプルEWAVER、EWAVELをDAC100(右DAC100R、左DAC10
0L)にセットする。この処理15−4の実行間隔は平均と
してはMCPU10のタイマインタラプト発生部116の発生す
るインタラプト信号INTの発生間隔に等しいが、実際の
実行間隔はプログラム動作のために変動する。したがっ
て、処理15−4の実行間隔をD/A変換の変換周期としてD
/A変換を行ったとするとアナログ楽音信号に大きな歪み
が生じてしまう。
この問題は第9図に示すような構成をとることにより
解決される。この第9図は、右DAC100Rの例を示すが、
左DAC100Lも同様な構成をとる。すなわち、MCPU10のオ
ペレション制御回路112からのプログラム制御信号によ
って制御されるソフト制御ラッチ1004と、デジタル楽音
信号をアナログ楽音信号に変換するD/A変換器1002との
間に、インタラプト発生部116からの正確なタイミング
信号であるインタラプト信号INTで制御されるインタラ
プト制御ラッチ1006を設ける。インタラプト信号の発生
周期はクロック発振器の安定度に従うので極めて安定で
ある。ラッチ1006の出力はインタラプト信号のタイミン
グに同期して切り換わる。すなわち、インタラプト信号
の発生周期がD/A変換器1002の変換(サンプリング)周
期となる。
従ってラッチ1004の出力が切り換わるタイミングはイ
ンタラプト処理のタイミングずれに従って変動するがイ
ンタラプト信号で動作するラッチ1006があるのでD/A変
換器1002の入力データが切り換わるタイミングはインタ
ラプト信号と同期する。これにより、前述の歪み問題が
解決される。
第10図は、時間の流れに沿う本実施例の動作の流れを
示すタイムチャートである。この図からわかるように、
インタラプト信号INTが発生すると、MCPU10はメインフ
ローの実行を中断し、インタラプト処理ルーチンを実行
する。ここにおいて、始めにSCPU20にデータを転送し、
このデータ転送が終了するとSCPU20に動作開始信号Aを
出力する。そしてそのあと楽音生成処理を行う。SCPU20
は、信号Aを受けてMCPU10で発生した楽音信号に対する
エフェクト処理を行う。そして処理が終了すると待機状
態となる。
このように、本実施例の電子楽器用処理装置はMCPU10
とSCPU20という複数のCPUを有し、内蔵されるプログラ
ムに従ってひとつの音の音源処理とエフェクト処理を各
CPUで分担して実行することができる。
[変形例] 以上で実施例の説明を終るが、この発明の範囲内で種
々の変形、変更が可能である。
たとえば、上記実施例では1つのSCUPを使用している
が、エフェクト処理を行う複数のSCPUを設けるようにし
てもよい。
あるいは音源処理を複数のCPUで分担し、その出力楽
音信号に対するエフェクト処理を1乃至複数のCPUにて
実行するようにしてもよい。
また、複数のCPUの分担の仕方としては、ひとつのCPU
でエンベロープ処理を、別のCPUで波形処理を担当し、
更に他のCPUでエフェクト処理を実行するようにする。
別の態様としては、ひとつのCPUがシステム全体制御
のための処理を担当し、別のCPUが音源処理を担当し、
更に別のCPUがエフェクト処理を担当するようにしても
よい。
いずれの場合も、音源処理、エフェクト処理のための
構成として専用のハードウェアによる実現回路が必要な
くなり、各種処理の内容の変更はプログラムの変更によ
って対応できるので、設計の簡単化をもたらす。
更に、上記実施例にあっては、MCPU10とSCPU20とをワ
ンチップ化したが、別チップ構成としてもよく、あるい
は更に多くのCPUをワンチップ化してもよい。要は半導
体集積度に依存し、最適の構成をとればよいのである。
更に、外部メモリ90−1、90−2をCPU10、20とともに
ワンチップ化すること、DAC100を別チップとすることな
ど、自在に変更し得る。
更に、音源処理においては、ポリフォニック数(音源
チャンネル数)や音源方式を適宜変更できる。特に音源
方式は、上述したようなPCM方式のみならず、DPCM方
式、ADPCM方式等の波形符号化方式のほか、FM音源方
式、PD音源方式、iPD音源法式等の非線型変調方式等に
ついても、音源処理プログラムを制御用ROM(必要なら
ばRAM構成でもよい)にストアした上で、CPUのソフトウ
ェア処理によって実現し得る。
また、エフェクト処理の内容も上述したディレイ、コ
ーラス、リバーブのほか種々とり得るものであり、要は
エフェクト処理プログラムを制御用ROM(必要ならばRAM
構成でもよい)にストアした上で、CPUのソフトウェア
処理によって実行し得る。
また、エフェクト処理として、上記実施例では8音分
の楽音信号を全て合成した上で、それに対して一系列の
エフェクト処理をかけるようにしたが、例えば、音源チ
ャンネルとエフェクト処理チャンネルとを一体一もしく
は複数対一の対応関係をもたせ、各グループ毎に独立し
たエフェクト処理を行うようにしてもよい。例えば、メ
ロディと伴奏とに対して、夫々複数の音源チャンネルを
割当てて楽音信号を発生し、夫々の楽音信号を別々に合
成したものに対し独立したエフェクト付与の処理を施す
ようにしてもよい。
また、出力形態としては、実施例の如き、ステレオ出
力のほか、モノラル出力や4チャンネル出力など、種々
の形態をとり得るものである。
また、上記実施例では、CPUにおける楽音の生成及び
エフェクト処理をインタラプト信号で起動されるインタ
ラプト処理プログラムを実行することによって行ってい
るが、割込によらないサブルーチンの処理で行ってもよ
い。その場合、サブルーチンの実行から次のサブルーチ
ンまでの実行間隔が状況によらずほぼ一定になるよう
に、ノーオペレーション命令(NOP命令、ダミー命令)
をプログラムに分散配置すればよい。
[発明の効果] 最後に特許請求の範囲に記載の発明の効果、利点につ
いて述べる。
請求項1記載の発明によれば、複数のCPUが各々のプ
ログラムに従って楽音信号の生成処理とこの楽音信号に
対するエフェクト処理とを分担して実行するので、従来
のような専用構造の音源回路ハードウェアやデジタルエ
フェクト回路ハードウェアに頼ることなく電子楽器用処
理装置を提供することができる。
また、装置の機能の追加、変更は基本的に各CPUで実
行するプログラムを変更することによって達成し得、大
幅なハードウェア回路の変更を必要としない。
さらに、各CPUを同様な構成としてできる利点があ
る。また、メインCPUとサブCPUとで音源処理とエフェク
ト処理とが分担して実行できるので、構成、制御が容易
となる。
【図面の簡単な説明】
第1図はこの発明を適用した電子楽器用処理装置の全体
構成図、 第2図は第1図のMCPUのブロック図、 第3図は第1図のSCPUのブロック図、 第4図はMCPUの実行するメインプログラムのフローチャ
ート、 第5図はMCPUの実行するインタラプト処理ルーチンのフ
ローチャート、 第6図は第5図のチャンネル処理の詳細なフローチャー
ト、 第7図は波形データを示す示す図、 第8図はMCPUの音源処理用RAMテーブルを示す図、 第9図は第1図のD/Aコンバータの構成図、 第10図はこの実施例の動作のタイムチャートを示す図、 第11図は第1図のSCPUで実行するエフェクト処理の全体
機能ブロック図、 第12図は第11図のディレイ効果付加の詳細機能ブロック
図、 第13図は、第11図のコーラス効果付加の詳細機能ブロッ
ク図、 第14図は、第11図のリバーブ効果付加の詳細機能ブロッ
ク図、 第15図は、SCPUの実行するプログラムのフローチャート
を示す図、 第16図は、第15図のなかのディレイ効果付加(DELAY)
の処理の詳細なフローチャートを示す図、 第17図は、第15図のなかのコーラス効果付加(HORUS)
の処理の詳細なフローチャートを示す図、 第18図は、第15図のなかのリバーブ効果付加(REVERB)
の処理の詳細なフローチャートを示す図、 第19図は、コーラス効果の演算処理の説明図、 第20図は、SCPUのエフェクト処理用RAMテーブルを示す
図である。 10……MCPU(メインCPU) 20……SCPU(サブCPU) 100……デジタルアナログ変換器 102……制御用RAM(MCPUプログラム記憶手段) 106……RAM(MCPUデータ記憶手段) 108……ALU部(MCPU演算処理回路手段) 110……乗算器(MCPU演算処理回路手段) 112……オペレーション制御回路(MCPUオペレーション
制御回路手段) 114……ROMアドレス制御部(MCPUアドレス制御回路手
段) 116……インタラプト発生部 202……制御用ROM(SCPUプログラム記憶手段) 206……RAM(SCPUデータ記憶手段) 208……ALU部(SCPU演算処理回路手段) 210……乗算器(SCPU演算処理回路手段) 212……オペレーション制御回路(SCPUオペレーション
制御回路手段) 214……ROMアドレス制御部(SCPUアドレス制御回路手
段) 1002……D/Aコンバータ 1004、1006……ラッチ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 真鍋 啓 東京都西多摩郡羽村町栄町3丁目2番1 号 カシオ計算機株式会社羽村技術セン ター内 (58)調査した分野(Int.Cl.6,DB名) G10H 1/00 - 7/12

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】メインCPU及びこのメインCPUによって制御
    される少なくとも1つのサブCPUからなり、 前記メインCPUは、 楽器への入力を処理するための入力処理プログラムと楽
    音を生成するための処理を行う楽音生成プログラムを記
    憶するMCPUプログラム記憶手段と、 所定のサンプリング周期で割り込み信号を発生するタイ
    マーインターラプト制御手段と、 通常は前記MCPUプログラム記憶手段から入力処理プログ
    ラムを読み出すとともに、このタイマーインターラプト
    制御手段からの割り込み信号を受ける毎に前記MCPUプロ
    グラム記憶手段から前記入力処理プログラムに代えて楽
    音生成プログラムを読み出すMCPUアドレス制御手段と、 前記MCPUアドレス制御手段により前記MCPUプログラム記
    憶手段から読み出されたプログラムの各命令を解読する
    MCPU解読手段と、 前記MCPU解読手段により解読された入力処理プログラム
    の各命令に基づいて生成された、楽音の生成に必要なデ
    ータを記憶するMCPUデータ記憶手段と、 前記MCPU解読手段にて解読された第1の楽音生成用プロ
    グラムの各命令に基づいて前記MCPUデータ記憶手段に記
    憶された楽音生成に必要なデータを用いて楽音生成に必
    要な演算処理を行い、生成された楽音データを前記MCPU
    データ記憶手段に記憶するMCPU演算処理手段と、 前記インターラプト制御手段から割り込みを受ける毎に
    前記MCPUデータ記憶手段に記憶されたデータのうちの楽
    音データを前記サブCPUに転送させるとともに、当該サ
    ブCPUに対して起動信号を供給するサブCPU制御手段と、
    を有し、 前記サブCPUは、 楽音に対してエフェクトを付加するエフェクト付加処理
    プログラムを記憶するSCPUプログラム記憶手段と、 前記メインCPUからの起動信号を受ける毎に前記SCPUプ
    ログラム記憶手段からエフェクト付加処理プログラムを
    読み出すSCPUアドレス制御手段と、 前記SCPUアドレス制御手段により前記SCPUプログラム記
    憶手段から読み出されたプログラムの各命令を解読する
    SCPU解読手段と、 前記SCPU解読手段にて解読されたエフェクト付加処理プ
    ログラムの各命令に基づいて前記メインCPUから転送さ
    れた楽音データに対してエフェクトを付加する演算処理
    を行い、当該エフェクト付加のなされた楽音データを出
    力するSCPU演算処理手段と、 を有することを特徴とする電子楽器用処理装置。
JP2175133A 1990-06-29 1990-07-02 電子楽器用処理装置 Expired - Lifetime JP2797142B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2175133A JP2797142B2 (ja) 1990-07-02 1990-07-02 電子楽器用処理装置
US07/709,101 US5200564A (en) 1990-06-29 1991-05-29 Digital information processing apparatus with multiple CPUs
US08/001,184 US5691493A (en) 1990-06-29 1993-01-07 Multi-channel tone generation apparatus with multiple CPU's executing programs in parallel
US08/486,606 US5584034A (en) 1990-06-29 1995-06-07 Apparatus for executing respective portions of a process by main and sub CPUS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2175133A JP2797142B2 (ja) 1990-07-02 1990-07-02 電子楽器用処理装置

Publications (2)

Publication Number Publication Date
JPH0462595A JPH0462595A (ja) 1992-02-27
JP2797142B2 true JP2797142B2 (ja) 1998-09-17

Family

ID=15990866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2175133A Expired - Lifetime JP2797142B2 (ja) 1990-06-29 1990-07-02 電子楽器用処理装置

Country Status (1)

Country Link
JP (1) JP2797142B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283386A (en) * 1991-08-30 1994-02-01 Casio Computer Co., Ltd. Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means
JP2765426B2 (ja) * 1992-10-30 1998-06-18 ヤマハ株式会社 効果付与装置および電子楽器
JP3267106B2 (ja) 1995-07-05 2002-03-18 ヤマハ株式会社 楽音波形生成方法
JP2970526B2 (ja) * 1996-01-17 1999-11-02 ヤマハ株式会社 コンピュータソフトウェアを用いた音源システム

Also Published As

Publication number Publication date
JPH0462595A (ja) 1992-02-27

Similar Documents

Publication Publication Date Title
US5319151A (en) Data processing apparatus outputting waveform data in a certain interval
US5691493A (en) Multi-channel tone generation apparatus with multiple CPU's executing programs in parallel
JPH06195073A (ja) 効果付与装置
US5584034A (en) Apparatus for executing respective portions of a process by main and sub CPUS
JP3163984B2 (ja) 楽音発生装置
JP2797142B2 (ja) 電子楽器用処理装置
JP2797138B2 (ja) 電子楽器用処理装置
JP4096952B2 (ja) 楽音発生装置
JP3087631B2 (ja) 効果付与装置
JP3721789B2 (ja) ミキシング装置
JP3275678B2 (ja) 楽音発生方法および装置
JP3230449B2 (ja) 信号処理装置
JP2797137B2 (ja) 電子楽器用処理装置
JPS6330638B2 (ja)
JP3832383B2 (ja) 楽音生成装置及びプログラム
JPH07325581A (ja) 楽音発生装置
JP2809275B2 (ja) 波形信号出力装置
JP3016470B2 (ja) 音源装置
JP3610759B2 (ja) ディジタル信号処理装置
JP3832382B2 (ja) 楽音生成装置及びプログラム
JP3116447B2 (ja) デジタル信号処理プロセッサ
JP3705203B2 (ja) 楽音発生方法
JP3104873B2 (ja) 音源装置
JP3011064B2 (ja) 楽音処理装置
JP3430575B2 (ja) 電子楽音信号合成装置