JPH04140879A - 電子楽器用処理装置におけるデータ転送装置 - Google Patents
電子楽器用処理装置におけるデータ転送装置Info
- Publication number
- JPH04140879A JPH04140879A JP2264310A JP26431090A JPH04140879A JP H04140879 A JPH04140879 A JP H04140879A JP 2264310 A JP2264310 A JP 2264310A JP 26431090 A JP26431090 A JP 26431090A JP H04140879 A JPH04140879 A JP H04140879A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- address
- cpu
- processing
- 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.)
- Pending
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
- Optical Recording Or Reproduction (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は電子楽器用処理装置に関し、特に電子楽器用
処理装置の構造的なアーキテクチャに関する。
処理装置の構造的なアーキテクチャに関する。
近年、電子楽器はコンピユータ化されている。
しかし、大量で高速のデータ処理が必要な楽音の生成に
係る部分は音源回路と呼ばれる専用構造のハードウェア
で行われており、マイクロコンピュータは楽器への制御
入力(鍵盤やコンソールパネルからの入力、MIDIそ
の他の外部制御入力、内部または外部の演奏メモリから
の入力等)を処理し、音源回路に適したコマンドを音源
回路に転送するに留まっている。
係る部分は音源回路と呼ばれる専用構造のハードウェア
で行われており、マイクロコンピュータは楽器への制御
入力(鍵盤やコンソールパネルからの入力、MIDIそ
の他の外部制御入力、内部または外部の演奏メモリから
の入力等)を処理し、音源回路に適したコマンドを音源
回路に転送するに留まっている。
楽音生成処理は音源回路ハードウェアで行い、楽器の制
御入力の処理をマイクロコンピュータで行うという電子
楽器のシステムアーキテクチャ−にはいくつかの問題が
ある。第1の音源回路ハードウェアは楽音パラメータを
処理する種々の処理段階の随所にデータを一時的に記憶
する記憶装置、演算を行う演算回路を必要とするので必
然的に回路規模が大きくなる。第2に音源回路ハードウ
ェアを設計変更する場合に、しばしば大規模な回路変更
が余儀なくなり、多大の開発時間、労力を要する。更に
マイクロコンピュータと音源回路ハードウェアとの間の
インターフェースについても、音源回路ハードウェアご
とに検討し直し、開発し直す必要がある。
御入力の処理をマイクロコンピュータで行うという電子
楽器のシステムアーキテクチャ−にはいくつかの問題が
ある。第1の音源回路ハードウェアは楽音パラメータを
処理する種々の処理段階の随所にデータを一時的に記憶
する記憶装置、演算を行う演算回路を必要とするので必
然的に回路規模が大きくなる。第2に音源回路ハードウ
ェアを設計変更する場合に、しばしば大規模な回路変更
が余儀なくなり、多大の開発時間、労力を要する。更に
マイクロコンピュータと音源回路ハードウェアとの間の
インターフェースについても、音源回路ハードウェアご
とに検討し直し、開発し直す必要がある。
以上の理由から、本件出願人は音源回路ハードウェアを
使用することなくマイクロコンピュータのプログラム制
御だけで楽音を生成することのできる電子楽器用処理装
置を捷案した(特願昭63−334158号)。
使用することなくマイクロコンピュータのプログラム制
御だけで楽音を生成することのできる電子楽器用処理装
置を捷案した(特願昭63−334158号)。
この出願の実施例は単一のCPUがプログラムを実行し
て楽音を生成する構成を示している。この場合、楽音生
成能力を挙げるにはCPUの処理速度を上げる必要があ
る。残念ながら、CPUの処理速度は使用する半導体デ
バイスの動作速度限界等によって制限されるために、実
現できる楽音生成能力に限界があった。
て楽音を生成する構成を示している。この場合、楽音生
成能力を挙げるにはCPUの処理速度を上げる必要があ
る。残念ながら、CPUの処理速度は使用する半導体デ
バイスの動作速度限界等によって制限されるために、実
現できる楽音生成能力に限界があった。
[発明が解決しようとする課題]
これを解決するためには、複数のCPUを使用したシス
テム構成として、各CPUで並列に楽音生成処理を行え
ばよい。このようなシステムにおいては、当然のことな
がら、各CPU間でデータの転送を行うという動作が必
要となるが、この場合、転送元と転送先の両方のCPU
が転送されるデータ数を知っていなければ正しいデータ
転送を行うことはできない。
テム構成として、各CPUで並列に楽音生成処理を行え
ばよい。このようなシステムにおいては、当然のことな
がら、各CPU間でデータの転送を行うという動作が必
要となるが、この場合、転送元と転送先の両方のCPU
が転送されるデータ数を知っていなければ正しいデータ
転送を行うことはできない。
ここで、上述のようなシステムを特定の用途に使用する
のであれば、CPU間で転送すべきデータは固定的にな
るため、各CPUのレジスタ等にに予め転送すべきデー
タ数を記憶しておけば対処できる。しかし、複数CPU
を使用したシステムを様々な音源処理に適用可能とする
ためには、CPU間で転送されるデータ数は用途によっ
て変化するのが通常であり、上述の方式では対処できな
い。この場合、相手のCPUに対して予め転送するデー
タ数を通知する等の制御方式も考えられるが、処理が複
雑になり音源処理等のリアルタイム処理には不向きであ
る。
のであれば、CPU間で転送すべきデータは固定的にな
るため、各CPUのレジスタ等にに予め転送すべきデー
タ数を記憶しておけば対処できる。しかし、複数CPU
を使用したシステムを様々な音源処理に適用可能とする
ためには、CPU間で転送されるデータ数は用途によっ
て変化するのが通常であり、上述の方式では対処できな
い。この場合、相手のCPUに対して予め転送するデー
タ数を通知する等の制御方式も考えられるが、処理が複
雑になり音源処理等のリアルタイム処理には不向きであ
る。
本発明の課題は、複数CPUからなり様々な音源処理に
応用可能な電子楽器用処理装置において、CPU間のデ
ータ転送を簡単な制御でかつ必要とするデータについて
のみ効率的に行うことを可能とすることにある。
応用可能な電子楽器用処理装置において、CPU間のデ
ータ転送を簡単な制御でかつ必要とするデータについて
のみ効率的に行うことを可能とすることにある。
本発明は、各CPUが各々のプログラムで動作するよう
に構成した複数のCPUを有し、複数のCPUが各プロ
グラムに従って各々楽音信号の生成処理の各部を分担し
て実行する手段を含む電子楽器用処理装置を前提とする
。例えば、楽音の生成処理がエンベロープデータを生成
するエンベロープ処理と、波形信号を生成して上記エン
ベロープデータを波形信号に付加する波形処理から成る
場合、第1のCPUでは乗算処理の伴わないエンベロー
プ処理のみ行い、第2のCPUではエンベロープ処理の
処理結果により得られたエンベロープデータを乗算する
処理を伴う波形処理を行わせる。或いは、第1のCPU
は、全体の制御処理のみ行い、第2のCPUは、音源処
理専用とすることも考えられる。
に構成した複数のCPUを有し、複数のCPUが各プロ
グラムに従って各々楽音信号の生成処理の各部を分担し
て実行する手段を含む電子楽器用処理装置を前提とする
。例えば、楽音の生成処理がエンベロープデータを生成
するエンベロープ処理と、波形信号を生成して上記エン
ベロープデータを波形信号に付加する波形処理から成る
場合、第1のCPUでは乗算処理の伴わないエンベロー
プ処理のみ行い、第2のCPUではエンベロープ処理の
処理結果により得られたエンベロープデータを乗算する
処理を伴う波形処理を行わせる。或いは、第1のCPU
は、全体の制御処理のみ行い、第2のCPUは、音源処
理専用とすることも考えられる。
上述のような前提の下で、本発明の第1の態様は、書込
信号に従って転送元CPUから転送先CPUにデータを
転送するデータ転送装置を対象とする。例えば、前述の
第1のCPUから第2のCPUへは、第1のCPUで生
成されたエンベロープデータが転送される。そして、転
送元CPU内に、以下のような構成を有する。
信号に従って転送元CPUから転送先CPUにデータを
転送するデータ転送装置を対象とする。例えば、前述の
第1のCPUから第2のCPUへは、第1のCPUで生
成されたエンベロープデータが転送される。そして、転
送元CPU内に、以下のような構成を有する。
まず、最大転送データ数に対応する数の転送データを保
持し得る転送データ記憶手段を有する。
持し得る転送データ記憶手段を有する。
次に、データ転送に先立って、転送データ記憶手段に転
送すべきデータを設定し、転送データ記憶手段上の記憶
領域のうち転送を行う必要のない領域には所定の無効デ
ータを設定する転送データ設定手段を有する。無効デー
タは、例えば値0である。
送すべきデータを設定し、転送データ記憶手段上の記憶
領域のうち転送を行う必要のない領域には所定の無効デ
ータを設定する転送データ設定手段を有する。無効デー
タは、例えば値0である。
また、転送データ記憶手段から最大転送データ数に対応
する数のデータを読み出し、それにより所定の無効デー
タ(例えば値O)が読み出された場合には転送先CPU
に書込信号を出力せず、それ以外のデータが読み出され
た場合にはそのデータを書込信号と共に転送先CPUに
出力するデータ転送制御手段を有する。
する数のデータを読み出し、それにより所定の無効デー
タ(例えば値O)が読み出された場合には転送先CPU
に書込信号を出力せず、それ以外のデータが読み出され
た場合にはそのデータを書込信号と共に転送先CPUに
出力するデータ転送制御手段を有する。
更に1.最大転送データ数のデータの転送終了以後に、
転送先CPUに転送終了を通知する通知手段を有する。
転送先CPUに転送終了を通知する通知手段を有する。
この通知は、例えば転送先CPUに対して処理開始を指
示する処理開始信号である。
示する処理開始信号である。
本発明の第2の態様は、転送元CPUから転送先CPU
にアドレスデータと共にデータを転送するデータ転送装
置を対象とする。そして、転送元CPU内に以下のよう
な構成を有する。
にアドレスデータと共にデータを転送するデータ転送装
置を対象とする。そして、転送元CPU内に以下のよう
な構成を有する。
まず、最大転送データ数に対応する数の転送データとそ
れに対応するアドレスデータを保持し得る転送データ記
憶手段を有する。同手段としては、例えば転送データと
それに対応するアドレスデータを別々のデータとして記
憶する手段、或いは転送データの一部としてアドレスデ
ータを記憶する(いわゆるネタストアドレス方式により
データを記憶する)手段等が採用できる。
れに対応するアドレスデータを保持し得る転送データ記
憶手段を有する。同手段としては、例えば転送データと
それに対応するアドレスデータを別々のデータとして記
憶する手段、或いは転送データの一部としてアドレスデ
ータを記憶する(いわゆるネタストアドレス方式により
データを記憶する)手段等が採用できる。
次に、データ転送に先立って、転送データ記憶手段に転
送すべきデータとそれに対応するアドレスデータを設定
し、転送データ記憶手段上の記憶領域のうち転送を行う
必要のない領域には転送先CPU上の無効アドレスを指
定するアドレスデータを設定する転送データ設定手段を
有する。無効アドレスは、例えば転送先CPUORAM
上のアドレスでないアドレス値である。
送すべきデータとそれに対応するアドレスデータを設定
し、転送データ記憶手段上の記憶領域のうち転送を行う
必要のない領域には転送先CPU上の無効アドレスを指
定するアドレスデータを設定する転送データ設定手段を
有する。無効アドレスは、例えば転送先CPUORAM
上のアドレスでないアドレス値である。
また、転送データ記憶手段から最大転送データ数に対応
する数のデータを読み出して転送先CPUに出力するデ
ータ転送制御手段を有する。
する数のデータを読み出して転送先CPUに出力するデ
ータ転送制御手段を有する。
更に、最大転送データ数のデータの転送終了以後に、転
送先CPUに転送終了を通知する通知手段を有する。
送先CPUに転送終了を通知する通知手段を有する。
本発明においては、従来のような音源回路ハードウェア
を必要とせずにCPUの数に応じて高い楽音生成能力を
有する電子楽器用処理装置を得ることができる。また、
個々のCP tJ自体のハードウェアは構造上、格別の
差異がない同一のものを使用でき、基本的には各CPt
Jが実行するプログラムについてのみ、各CPUの処理
目的に合わせたものを使用すればよく、電子楽器用処理
装置としてのシステl、構築が容易となる。
を必要とせずにCPUの数に応じて高い楽音生成能力を
有する電子楽器用処理装置を得ることができる。また、
個々のCP tJ自体のハードウェアは構造上、格別の
差異がない同一のものを使用でき、基本的には各CPt
Jが実行するプログラムについてのみ、各CPUの処理
目的に合わせたものを使用すればよく、電子楽器用処理
装置としてのシステl、構築が容易となる。
ここで、CPUが処理する内容が目的に応して変化する
ことにより、任意のCPUから他のCPUに転送される
べき転送データの数が変化しても、本発明の第1の態様
又は第2の態様は、次に説明するように簡単な制御で対
処できる。
ことにより、任意のCPUから他のCPUに転送される
べき転送データの数が変化しても、本発明の第1の態様
又は第2の態様は、次に説明するように簡単な制御で対
処できる。
すなわち、第1の態様では、転送元CP tJの転送デ
ータ設定手段が転送データを転送データ記憶手段に設定
側る場合に、データ転送に必要のない転送データ記憶手
段−hの領域(アドレス領域)には、無効データを格納
しておく。そして、転送元CP Uのデータ転送制御手
段が転送データ記憶手段から転送データを読み出す場合
に、無効データが読み出された場合には、転送先cpu
に書込信号を出力しない。そして、通知手段は、常に最
大転送データ数のデータの転送終了以後に、転送先CP
Uに転送終了を通知する。これにより、転送データ数が
変化しても、単純な制御で、転送元CPUから転送先C
PUへ必要なデータのみを適切に転送できる。
ータ設定手段が転送データを転送データ記憶手段に設定
側る場合に、データ転送に必要のない転送データ記憶手
段−hの領域(アドレス領域)には、無効データを格納
しておく。そして、転送元CP Uのデータ転送制御手
段が転送データ記憶手段から転送データを読み出す場合
に、無効データが読み出された場合には、転送先cpu
に書込信号を出力しない。そして、通知手段は、常に最
大転送データ数のデータの転送終了以後に、転送先CP
Uに転送終了を通知する。これにより、転送データ数が
変化しても、単純な制御で、転送元CPUから転送先C
PUへ必要なデータのみを適切に転送できる。
一方、第2の態様では、転送元CPUの転送データ設定
手段が転送データとそれに対応するアドレスデータを転
送デー・夕記憶手段に設定する場合に、データ転送に必
要のない転送データ記憶手段上の領域(アドレス領域)
には、転送先CPU上の無効アドレスを指定するアドレ
スデータを格納しておく。そして、転送元CPUのデー
タ転送制御手段は、転送データ記憶手段から最大転送デ
ータ数に対応する数のデータを読み出して無条件に転送
先CPUに出力する。そして、通知手段は、常に量大転
送データ数のテ゛−夕の転送終了以後に、転送先CP
1.Jに転送終了を通知する。これにより、転送先CP
Uでは、同CPU上のRAM等の無効なアドレスデータ
が転送されてきた場合には、それに対応し、て転送され
てきた転送データを取り込まないため、転送データ数が
変化しても、中線な制御で1.転送元CP Uから転送
先CP Uへ必要なデータのみを適切に転送できる。
手段が転送データとそれに対応するアドレスデータを転
送デー・夕記憶手段に設定する場合に、データ転送に必
要のない転送データ記憶手段上の領域(アドレス領域)
には、転送先CPU上の無効アドレスを指定するアドレ
スデータを格納しておく。そして、転送元CPUのデー
タ転送制御手段は、転送データ記憶手段から最大転送デ
ータ数に対応する数のデータを読み出して無条件に転送
先CPUに出力する。そして、通知手段は、常に量大転
送データ数のテ゛−夕の転送終了以後に、転送先CP
1.Jに転送終了を通知する。これにより、転送先CP
Uでは、同CPU上のRAM等の無効なアドレスデータ
が転送されてきた場合には、それに対応し、て転送され
てきた転送データを取り込まないため、転送データ数が
変化しても、中線な制御で1.転送元CP Uから転送
先CP Uへ必要なデータのみを適切に転送できる。
以下、図面を参照して本発明の実施例につき詳細に説明
する。
する。
〈概 要〉
本実施例はこの発明を電子楽器に適用したものである。
本実施例(第1〜第13図)は種々の特徴を含んでいる
。第1の特徴は、楽音信号を生成する音源としてプログ
ラムで動作する複数のマイクロコンピュータ処理袋!(
CPU)を使用することであり、従来のような専用構造
のハードウェア音源は不要である。1つのCP tJが
メインCPUあるいはマスターCPU(10)として働
き、音源処理の一部のみでなくアプリケーション(この
場合、楽器)に従う入力装置(鍵盤、機能キー等)を取
り扱う(第4図〜第6図)。他のCPtJはマスターC
PUに対してサブCPUないしスレーブCPU (20
)として働き、残りの音源処理、出力装置(DAC等)
の制御を実行する(第8図、第9図)。したがって、音
源処理について各CPUの負担が分担される構成である
。
。第1の特徴は、楽音信号を生成する音源としてプログ
ラムで動作する複数のマイクロコンピュータ処理袋!(
CPU)を使用することであり、従来のような専用構造
のハードウェア音源は不要である。1つのCP tJが
メインCPUあるいはマスターCPU(10)として働
き、音源処理の一部のみでなくアプリケーション(この
場合、楽器)に従う入力装置(鍵盤、機能キー等)を取
り扱う(第4図〜第6図)。他のCPtJはマスターC
PUに対してサブCPUないしスレーブCPU (20
)として働き、残りの音源処理、出力装置(DAC等)
の制御を実行する(第8図、第9図)。したがって、音
源処理について各CPUの負担が分担される構成である
。
第2の特徴はサブCPUが動作を開始し、終了するメカ
ニズムに関係しており、本実施例によれば、サブCP
tJの動作は、マスターCPUに対して音源処理を要求
するタイマインタラブドを合図としてマスターCPUか
ら音源処理用のデータを受は取った時から開始し、その
結果、マスターCPUとサブCPUにおいて音源処理が
分担して実行される。サブCP tJの動作(音源処理
)が終了するとその終了信号によってサブCPUはリセ
ット状態(停止状態)に移行するとともにその終了信号
がマスク〜CPUに伝えられる(第13図)。
ニズムに関係しており、本実施例によれば、サブCP
tJの動作は、マスターCPUに対して音源処理を要求
するタイマインタラブドを合図としてマスターCPUか
ら音源処理用のデータを受は取った時から開始し、その
結果、マスターCPUとサブCPUにおいて音源処理が
分担して実行される。サブCP tJの動作(音源処理
)が終了するとその終了信号によってサブCPUはリセ
ット状態(停止状態)に移行するとともにその終了信号
がマスク〜CPUに伝えられる(第13図)。
この特徴により、マスターCPUはサブCPUの動作期
間及びタイミングを有効に管理、把握できる。更に、こ
の特徴により、高速処理が要求される音源処理タスク(
楽音信号のデジタルザンブルを生成する仕事)を効率よ
く実行できる。ここで特に、両CPUに様々な役割が受
は持たせられる結果、マスターCPUからサブCPUに
音源処理用のデータを転送する場合に、その転送データ
数が変化してもその変化に応じた適切なデータ転送を行
えることが本実施例の大きな特徴であり、本発明に最も
関連する技術である。
間及びタイミングを有効に管理、把握できる。更に、こ
の特徴により、高速処理が要求される音源処理タスク(
楽音信号のデジタルザンブルを生成する仕事)を効率よ
く実行できる。ここで特に、両CPUに様々な役割が受
は持たせられる結果、マスターCPUからサブCPUに
音源処理用のデータを転送する場合に、その転送データ
数が変化してもその変化に応じた適切なデータ転送を行
えることが本実施例の大きな特徴であり、本発明に最も
関連する技術である。
本実施例の第3の特徴はデータ源としてのCPU外部メ
モリを複数のCPUで共用する場合における複数CPU
からのアクセスの競合(衝突)問題に関する。本実施例
によれば後述するメモリ装置競合回避回路(50)を設
けることにより、共用メモリに対するアクセスの競合を
解消し、一定の待ち時間の後、共用メモリからのデータ
を得られるようにしている。
モリを複数のCPUで共用する場合における複数CPU
からのアクセスの競合(衝突)問題に関する。本実施例
によれば後述するメモリ装置競合回避回路(50)を設
けることにより、共用メモリに対するアクセスの競合を
解消し、一定の待ち時間の後、共用メモリからのデータ
を得られるようにしている。
本実施例の第4の特徴はデータ変換処理(シルト、反転
、一部取り出し等)の高速化に関する。
、一部取り出し等)の高速化に関する。
従来においては、上述したCPU外部メモリのようなデ
ータメモリ内のデータから、CPU内部メモリ(演算用
メモリ)−りに変換されたデータを得るために、転送(
リードアクセス)命令により、データメモリのデータを
演算用メモリに移し、しかる後、変換命令により、演算
用メモリのデータをALUを介して変換する。所望のデ
ータ変換を行うために複数の変換命令を実行する必要も
しばしば生じる。このように、従来においてはデータ変
換の処理に時間がかかるという問題があり、特に音源処
理のように高速処理が要求されるアプリケーションにお
いては大きな問題となる。これを解決するため、この実
施例によれば、データ・アドレス変換ハードウェア(6
0,70)を設け、特殊な転送命令(変換付転送命令)
を実行することにより、その命令に応答するデータ・ア
ドレス変換ハードウェアを介して所望のデータ変換が施
されたデータが演算用メモリ (106,2o6)に取
り込まれるようにしている。したがって、所望の変換デ
ータを得るのに、複数の命令を実行するのではなく単一
の命令を実行すればよく処理の高速化が図れる。
ータメモリ内のデータから、CPU内部メモリ(演算用
メモリ)−りに変換されたデータを得るために、転送(
リードアクセス)命令により、データメモリのデータを
演算用メモリに移し、しかる後、変換命令により、演算
用メモリのデータをALUを介して変換する。所望のデ
ータ変換を行うために複数の変換命令を実行する必要も
しばしば生じる。このように、従来においてはデータ変
換の処理に時間がかかるという問題があり、特に音源処
理のように高速処理が要求されるアプリケーションにお
いては大きな問題となる。これを解決するため、この実
施例によれば、データ・アドレス変換ハードウェア(6
0,70)を設け、特殊な転送命令(変換付転送命令)
を実行することにより、その命令に応答するデータ・ア
ドレス変換ハードウェアを介して所望のデータ変換が施
されたデータが演算用メモリ (106,2o6)に取
り込まれるようにしている。したがって、所望の変換デ
ータを得るのに、複数の命令を実行するのではなく単一
の命令を実行すればよく処理の高速化が図れる。
〈全体構成(第1図)〉
第1図は電子楽器の処理装置として構成した本実施例の
全体構成を示すブロック図である。本システムは2つの
中央演算処理装置(一方をMCPUIO1他方を5CP
U20で示す)を有する。
全体構成を示すブロック図である。本システムは2つの
中央演算処理装置(一方をMCPUIO1他方を5CP
U20で示す)を有する。
各CPUl0,20はプログラムを内蔵しており、それ
ぞれのプログラムに従って動作する。MCPU 1.0
は音源処理の一部(第5A、5B図又は第5D、5B図
、及び第6図)以外にシステム全体の制御I′、例えば
入力ポート118、出力ボート120に接続される入力
装置(例えば鍵盤、機能キ゛−等)からの入力情報の処
理の制御等を行う(第4図)。これに対し、5CPU2
0は残りの音源処理と、デジタル楽音信号をアナログ楽
音信号に変換するDAC100に専用される(第8図、
第9図)。
ぞれのプログラムに従って動作する。MCPU 1.0
は音源処理の一部(第5A、5B図又は第5D、5B図
、及び第6図)以外にシステム全体の制御I′、例えば
入力ポート118、出力ボート120に接続される入力
装置(例えば鍵盤、機能キ゛−等)からの入力情報の処
理の制御等を行う(第4図)。これに対し、5CPU2
0は残りの音源処理と、デジタル楽音信号をアナログ楽
音信号に変換するDAC100に専用される(第8図、
第9図)。
90は音源制御データ、波形データ等のデータ源として
のメモリである。データメモリ9oはここでは、LSI
チップ(第1図の残りのデバイスを搭載している)に外
付けされたROMで構成されている。集積度が高ければ
、単一のLSIチップ上にデータメモリ90を内部メモ
リとして形成可能である。外部メモリ90はMCPUI
Oと5CPU20に共用される。MCPUIOからのア
ドレス情報はMCPUIOに結合するアドレスバスMA
1外部メモリアドレスランチ30のMCPU外部メモリ
アドレスラッチ30M、アドレス切り換え回路40、ア
ドレス変換回路60を介して外部データメモリ90のア
ドレス入力に加えられる。一方、5CPU20からのア
ドレス情報は5CPU20に結合するアドレスバスSA
、5CPU外部メモリアドレスランチ30S、アドレス
切り換え回路40、アドレス変換回路60を通して外部
データメモリ90のアドレス人力に加えられる。外部デ
ータメモリ90からMCPUIOへのデータ伝送径路は
外部データメモリ90のデータ出力、データ変換回路7
0、外部メモリデータラッチ80のMCPU外部メモリ
データラッチ80M、MCPUIOに結合するデータバ
スMDによって構成される。これに対し、外部データメ
モリ90から5CPU20へのデータ伝送径路は外部デ
ータメモリ90のデータ出力、データ変換回路70.5
CPU外部メモリデータランチ80S1S CP U
20に結合するデータバスSDによって構成される。
のメモリである。データメモリ9oはここでは、LSI
チップ(第1図の残りのデバイスを搭載している)に外
付けされたROMで構成されている。集積度が高ければ
、単一のLSIチップ上にデータメモリ90を内部メモ
リとして形成可能である。外部メモリ90はMCPUI
Oと5CPU20に共用される。MCPUIOからのア
ドレス情報はMCPUIOに結合するアドレスバスMA
1外部メモリアドレスランチ30のMCPU外部メモリ
アドレスラッチ30M、アドレス切り換え回路40、ア
ドレス変換回路60を介して外部データメモリ90のア
ドレス入力に加えられる。一方、5CPU20からのア
ドレス情報は5CPU20に結合するアドレスバスSA
、5CPU外部メモリアドレスランチ30S、アドレス
切り換え回路40、アドレス変換回路60を通して外部
データメモリ90のアドレス人力に加えられる。外部デ
ータメモリ90からMCPUIOへのデータ伝送径路は
外部データメモリ90のデータ出力、データ変換回路7
0、外部メモリデータラッチ80のMCPU外部メモリ
データラッチ80M、MCPUIOに結合するデータバ
スMDによって構成される。これに対し、外部データメ
モリ90から5CPU20へのデータ伝送径路は外部デ
ータメモリ90のデータ出力、データ変換回路70.5
CPU外部メモリデータランチ80S1S CP U
20に結合するデータバスSDによって構成される。
メモリ装置競合回路50はMCPLIIOと5CPU2
0の両CPUによる外部メモリ90のアクセスを制御し
、その競合を回避するものである。
0の両CPUによる外部メモリ90のアクセスを制御し
、その競合を回避するものである。
メモリ装置競合回避回路50はMCPUIOからの外部
メモリアクセスを要求する信号r o rn、 aと5
CPUからの外部メモリアクセスを要求する信号r o
maの各々に対応してアドレス切り換え回路40を制御
してアドレス切り換え回路40にCPU10からのアド
レスと5CPU20からのアドレスのいずれかを外部メ
モリ90へのアドレスとして選択させる。このためにメ
モリ装置競合回避回路50からの選択信号MSELによ
りアドレス切り換え回路40は選択動作を行う。外部メ
モリ90へのアドレスが確定するとメモリ装WM合回避
回路50は外部メモリ90に対するチップ選択信号CE
と出力イネーブル信号OEをアクティブにする。これに
より外部メモリ90からデータが出力され、データ変換
回路70を通してそのデータが外部メモリラッチ80の
入力バスに現れる。
メモリアクセスを要求する信号r o rn、 aと5
CPUからの外部メモリアクセスを要求する信号r o
maの各々に対応してアドレス切り換え回路40を制御
してアドレス切り換え回路40にCPU10からのアド
レスと5CPU20からのアドレスのいずれかを外部メ
モリ90へのアドレスとして選択させる。このためにメ
モリ装置競合回避回路50からの選択信号MSELによ
りアドレス切り換え回路40は選択動作を行う。外部メ
モリ90へのアドレスが確定するとメモリ装WM合回避
回路50は外部メモリ90に対するチップ選択信号CE
と出力イネーブル信号OEをアクティブにする。これに
より外部メモリ90からデータが出力され、データ変換
回路70を通してそのデータが外部メモリラッチ80の
入力バスに現れる。
ここで、メモリ装置競合回避回路50はデータアクセス
を要求したCPUにデータを送るためにMCPU外部メ
モリデータラッチ80M、5CPU外部メモリデークラ
ッチ805のいずれかを作動してデータをラッチさせる
。このためにMCPU外部メモリデークラッチ80Mは
メモリ装置競合回路50からのラッチ信号MDLにより
ラッチ動作し、5CPU外部メモリデータラッチ80S
はメモリ装置競合回避回路50からのラッチ信号SDL
によりラッチ動作するようになっている。
を要求したCPUにデータを送るためにMCPU外部メ
モリデータラッチ80M、5CPU外部メモリデークラ
ッチ805のいずれかを作動してデータをラッチさせる
。このためにMCPU外部メモリデークラッチ80Mは
メモリ装置競合回路50からのラッチ信号MDLにより
ラッチ動作し、5CPU外部メモリデータラッチ80S
はメモリ装置競合回避回路50からのラッチ信号SDL
によりラッチ動作するようになっている。
アドレス変換回路60とデータ変換回路70は外部デー
タメモリ90のデータを変換したデータがCPUl0,
20に取り込まれるようにするための変換デバイスであ
る。アドレス変換回路60はアドレス切り換え回路40
を通ったアドレス、即ち、CPU (MCPUI Oか
ら5CPU20)から出力されたアドレス(論理アドレ
ス)を選択的に変更して外部データメモリ90に実際に
入力されるアドレスを形成するものであり、データ変換
回路70は外部データメモリ90から出力されたデータ
を選択的に変更してCPtJ (MCPUIOから5C
PtJ20)に実際に入力されるデータを形成するもの
である。各変換回路60.70における変換の態様を指
定するために、制御信号が使用される。各CPtJ10
.20において、外部データメモリ90に対するデータ
アクセスは転送命令を実行することで行われる。転送命
令に基づいてCPUで生成される制御信号をMRI、M
R2、MR,3(MCPUl 0の場合)、SRI、S
R2、SR3(SCPU20の場合)で示しである。こ
れらの信号は外部メモリアクセスラッチ30、アドレス
切り換え回路40を通った後、信号R1、R2、R3と
呼ばれる(MRi−+LMRi→RiまたはSRi−+
LSRi−+Ri)。変換の態様を指定するため、制御
信号R1、R2がアドレス変換回路60に入力される。
タメモリ90のデータを変換したデータがCPUl0,
20に取り込まれるようにするための変換デバイスであ
る。アドレス変換回路60はアドレス切り換え回路40
を通ったアドレス、即ち、CPU (MCPUI Oか
ら5CPU20)から出力されたアドレス(論理アドレ
ス)を選択的に変更して外部データメモリ90に実際に
入力されるアドレスを形成するものであり、データ変換
回路70は外部データメモリ90から出力されたデータ
を選択的に変更してCPtJ (MCPUIOから5C
PtJ20)に実際に入力されるデータを形成するもの
である。各変換回路60.70における変換の態様を指
定するために、制御信号が使用される。各CPtJ10
.20において、外部データメモリ90に対するデータ
アクセスは転送命令を実行することで行われる。転送命
令に基づいてCPUで生成される制御信号をMRI、M
R2、MR,3(MCPUl 0の場合)、SRI、S
R2、SR3(SCPU20の場合)で示しである。こ
れらの信号は外部メモリアクセスラッチ30、アドレス
切り換え回路40を通った後、信号R1、R2、R3と
呼ばれる(MRi−+LMRi→RiまたはSRi−+
LSRi−+Ri)。変換の態様を指定するため、制御
信号R1、R2がアドレス変換回路60に入力される。
更に、データ変換回路70における変換の態様を特定す
るため、制御信号R1、R2、R3とアドレス変換回路
60からのアドレスビット12の信号A12とアドレス
ビット15の信号A15がデータ変換回路70に加えら
れる。アドレス変換回路60とデータ変換回路70の詳
細にっていは後述する。
るため、制御信号R1、R2、R3とアドレス変換回路
60からのアドレスビット12の信号A12とアドレス
ビット15の信号A15がデータ変換回路70に加えら
れる。アドレス変換回路60とデータ変換回路70の詳
細にっていは後述する。
MCPUIOと5CPU20との間のインターフェース
を定めるため、両CPU間で複数の信飼が伝送される。
を定めるため、両CPU間で複数の信飼が伝送される。
信号AはMCPUIOから5CPU20に送られる5C
PU20の処理開始を表す信号、信号Bは5CPtJ2
0からMCPTJ 10に送られる5CPU20の処理
終了を表す信号、MaはMCPUIOから5CPU20
に送られる5CPU20の内部メモリ(第3図の206
)のアドレス情報、信号CはMCPtJloから5CP
U20に送られるCPU20の内部メモリの読み書き制
御信号、DourはMCPUIOから5CPU20に送
られる5CPU20の内部メモリへの書き込みデータを
表す。
PU20の処理開始を表す信号、信号Bは5CPtJ2
0からMCPTJ 10に送られる5CPU20の処理
終了を表す信号、MaはMCPUIOから5CPU20
に送られる5CPU20の内部メモリ(第3図の206
)のアドレス情報、信号CはMCPtJloから5CP
U20に送られるCPU20の内部メモリの読み書き制
御信号、DourはMCPUIOから5CPU20に送
られる5CPU20の内部メモリへの書き込みデータを
表す。
上述したようにS CP U 20での音源処理により
デジタル楽音信号が生成される。生成結果は5CPU2
0から、右DA、Cl00にと左DAC100■7とか
ら成るデジタルアナログ変換器(DAC)100に送ら
れ、アナログ楽音信号に変換されて外部に出力する。
デジタル楽音信号が生成される。生成結果は5CPU2
0から、右DA、Cl00にと左DAC100■7とか
ら成るデジタルアナログ変換器(DAC)100に送ら
れ、アナログ楽音信号に変換されて外部に出力する。
<MCPUと5CPUの構成(第2、第3図)〉第2図
にMCPUIOの内部構造を示し、第3図に5CPU2
0の内部構造を示す。
にMCPUIOの内部構造を示し、第3図に5CPU2
0の内部構造を示す。
第2図において制御用ROM102には楽器の各種制御
入力を処理するメインプログラムと楽音を生成するイン
タラブド処理プログラムが記憶されており、ROMアド
レス制御部114からROMアドレスデコーダ104を
介して指定されたアドレスにあるプログラム語(命令)
をインストラクション出力ラッチ102aを介して順次
出力していく。なお、具体的実施例では、プログラム語
長は28ビツトであり、プログラム語の一部が次に読み
出されるべきプログラム語を記憶するアドレスの下位部
(ページ内アドレス)としてROMアドレス制御部11
4に入力されるネクストアドレス方式となっているが、
代わりにプログラムカウンタ方式を使用してもよい。R
AMアドレス制御部115は制御用ROM1.02から
の命令のオペランドがレジスタを指定している場合に、
RAM106内の対応するレジスタのアドレスを指定す
る。RAM 106は演算用メモリを構成するレジスタ
群であり、汎用演算、フラグ演算、楽音の演算等に使用
される。ALU部(加減算器及び論理演算部)108と
乗算器110は制御用ROM102からの命令が演算命
令のときに用いられる。
入力を処理するメインプログラムと楽音を生成するイン
タラブド処理プログラムが記憶されており、ROMアド
レス制御部114からROMアドレスデコーダ104を
介して指定されたアドレスにあるプログラム語(命令)
をインストラクション出力ラッチ102aを介して順次
出力していく。なお、具体的実施例では、プログラム語
長は28ビツトであり、プログラム語の一部が次に読み
出されるべきプログラム語を記憶するアドレスの下位部
(ページ内アドレス)としてROMアドレス制御部11
4に入力されるネクストアドレス方式となっているが、
代わりにプログラムカウンタ方式を使用してもよい。R
AMアドレス制御部115は制御用ROM1.02から
の命令のオペランドがレジスタを指定している場合に、
RAM106内の対応するレジスタのアドレスを指定す
る。RAM 106は演算用メモリを構成するレジスタ
群であり、汎用演算、フラグ演算、楽音の演算等に使用
される。ALU部(加減算器及び論理演算部)108と
乗算器110は制御用ROM102からの命令が演算命
令のときに用いられる。
特に乗算器110は楽音波形の演算に使用しており、そ
のための最適化として第1と第2のデータ入力(例えば
16ビツトデータ)を乗算して入力と同じ長さ(16ビ
ツト)のデータを出力するようになっている。上記RA
M106、加減算器108、乗算器110により、演算
回路が構成される。オペレーション制御回路112は制
御用ROM102からの命令のオペコードを解読し、指
示されるオペレーションを実行するために、回路の各部
に制御信号(全体をCNTRで示す)を送、る。
のための最適化として第1と第2のデータ入力(例えば
16ビツトデータ)を乗算して入力と同じ長さ(16ビ
ツト)のデータを出力するようになっている。上記RA
M106、加減算器108、乗算器110により、演算
回路が構成される。オペレーション制御回路112は制
御用ROM102からの命令のオペコードを解読し、指
示されるオペレーションを実行するために、回路の各部
に制御信号(全体をCNTRで示す)を送、る。
また条件付分岐命令の実行の際にオペレーション制御回
路112はALU部108からのステータス信号S(例
えばオーバーフロー信号、ゼロフラグ信号等)により分
岐条件成立を検出してROMアドレス制御部114を介
してアドレスを分岐先のアドレスにジャンプさせる。
路112はALU部108からのステータス信号S(例
えばオーバーフロー信号、ゼロフラグ信号等)により分
岐条件成立を検出してROMアドレス制御部114を介
してアドレスを分岐先のアドレスにジャンプさせる。
所定時間ごとに制御用ROM102の楽音生成プログラ
ムを実行するため、この実施例ではタイマインタラブド
を採用している。すなわち、タイマ(ハードウェアカウ
ンタ)を有するインクラブド発生部116により、一定
時間ごとにROMアドレス制御部114に制御信号IN
T(割込要求信号)を送り、この信号により、ROMア
ドレス制御部114は次に行うメインプログラムの命令
のアドレスを退避(保持)し、楽音の生成が行われるイ
ンクラブド処理プログラム(サブルーチン)の先頭アド
レスを代わりにセットする。これにより、インタラブド
処理プログラムが開始される。
ムを実行するため、この実施例ではタイマインタラブド
を採用している。すなわち、タイマ(ハードウェアカウ
ンタ)を有するインクラブド発生部116により、一定
時間ごとにROMアドレス制御部114に制御信号IN
T(割込要求信号)を送り、この信号により、ROMア
ドレス制御部114は次に行うメインプログラムの命令
のアドレスを退避(保持)し、楽音の生成が行われるイ
ンクラブド処理プログラム(サブルーチン)の先頭アド
レスを代わりにセットする。これにより、インタラブド
処理プログラムが開始される。
インタラブド処理プログラムの最後にはリターン命令が
あるので、このリターン命令がオペレーション制御回路
112で解読された時点で、ROMアドレス制御部11
4は退避してあったアドレスを再度上ントシ、メインプ
ログラムに復帰スる。
あるので、このリターン命令がオペレーション制御回路
112で解読された時点で、ROMアドレス制御部11
4は退避してあったアドレスを再度上ントシ、メインプ
ログラムに復帰スる。
更に、インタラブド発生部1.16からの制御信号IN
TはDAC100における楽音信号のデジタル/アナロ
グ変換サンプリング速度を定めるためにDAC100に
供給される。なお、インタラブド発生部116は図の上
ではMCPUIOの内部要素として描いであるが、MC
PUIOに対して現在行っている仕事を停止させ特別の
処理を要求するものであり、論理的にはMCPUIOの
外部要素(周辺装置)である。
TはDAC100における楽音信号のデジタル/アナロ
グ変換サンプリング速度を定めるためにDAC100に
供給される。なお、インタラブド発生部116は図の上
ではMCPUIOの内部要素として描いであるが、MC
PUIOに対して現在行っている仕事を停止させ特別の
処理を要求するものであり、論理的にはMCPUIOの
外部要素(周辺装置)である。
クロック発生回路136はマスタークロツタ発生回路(
図示せず)からの2相のマスタークロツタCKIとCK
2を受け、オペレーション制御回路112を初めとする
回路の各部に加える種々のタイミング信号(Tl、T2
、T3、TICKI、T2CK2、T3CK3等)を発
生する。
図示せず)からの2相のマスタークロツタCKIとCK
2を受け、オペレーション制御回路112を初めとする
回路の各部に加える種々のタイミング信号(Tl、T2
、T3、TICKI、T2CK2、T3CK3等)を発
生する。
第2図の残りの要素はMCPU20の外部装置とのイン
タラブドに係っている。122は外部メモリアクセス用
アクセスバスMA(第1図)にMCPU内部バスを接続
するためのバスインクフェ−スとしてのゲートを表し、
124は外部メモリデータバスMDにM CP tJ内
部ハスを接続するためのゲートを表す。また、入力ボー
ト118と出力ボート120はMCPU内部ハスを外部
の入力装置に結合するためのインタフェースである。1
28は5CPU内部RAMアドレス指定ハスMaにMC
PU内部ハスを接続するためのゲート、130は5CP
U内部RAM書込データバスD。、。
タラブドに係っている。122は外部メモリアクセス用
アクセスバスMA(第1図)にMCPU内部バスを接続
するためのバスインクフェ−スとしてのゲートを表し、
124は外部メモリデータバスMDにM CP tJ内
部ハスを接続するためのゲートを表す。また、入力ボー
ト118と出力ボート120はMCPU内部ハスを外部
の入力装置に結合するためのインタフェースである。1
28は5CPU内部RAMアドレス指定ハスMaにMC
PU内部ハスを接続するためのゲート、130は5CP
U内部RAM書込データバスD。、。
にMCPU内部バスを接続するためのゲートを表す。
5CPUリセット制御部134は5CPU20の動作期
間を管理するためのデバイスである。この実施例に従い
5CPUリセット制御部1.34はインタラブド発生部
116からのインクラブド信号INTに応答して、5C
PU20の処理開始を示す信号Aを発生する。この信号
Aは5CPU20のROMアドレス制御部214(第3
図)に送られ、これによりROMアドレス制御部214
のアドレス更新動作が開始し、5CPL120の動作(
音源処理を含む)が開始する。SCP[J20の動作が
終了すると5CPU20のオペレーション制御回路21
2から処理終了を示す信号Bが発生し、この信号Bが5
CPUリセット制御部134に送られる。これに対し、
5cpuリセット制御部134は5CPU20の動作を
停止するために信号Aを反転し、これにより5CPU2
0のROMアドレス制御部214の動作を停止させる、
とともに、5CPU20が停止中であることを表す5C
PU状態フラグ信号をオペレーション制御回路112に
送る。オペレーション制御回路112は制御用ROM1
02からのS CP U状態の検査命令の実行時に、こ
の5CPU状態フラグ信号を読むことにより、5CPU
20の状態を検出できる。
間を管理するためのデバイスである。この実施例に従い
5CPUリセット制御部1.34はインタラブド発生部
116からのインクラブド信号INTに応答して、5C
PU20の処理開始を示す信号Aを発生する。この信号
Aは5CPU20のROMアドレス制御部214(第3
図)に送られ、これによりROMアドレス制御部214
のアドレス更新動作が開始し、5CPL120の動作(
音源処理を含む)が開始する。SCP[J20の動作が
終了すると5CPU20のオペレーション制御回路21
2から処理終了を示す信号Bが発生し、この信号Bが5
CPUリセット制御部134に送られる。これに対し、
5cpuリセット制御部134は5CPU20の動作を
停止するために信号Aを反転し、これにより5CPU2
0のROMアドレス制御部214の動作を停止させる、
とともに、5CPU20が停止中であることを表す5C
PU状態フラグ信号をオペレーション制御回路112に
送る。オペレーション制御回路112は制御用ROM1
02からのS CP U状態の検査命令の実行時に、こ
の5CPU状態フラグ信号を読むことにより、5CPU
20の状態を検出できる。
第3図の5CPU20のブロック図において、要素20
2.202a、204.2[)5.206.208.2
12.214.222.224.236はそれぞれ、第
2図のMCPUIOのブロック図における要素102.
102a、104.105.106.10B、110.
112.114.122.124.136に対応する要
素である。
2.202a、204.2[)5.206.208.2
12.214.222.224.236はそれぞれ、第
2図のMCPUIOのブロック図における要素102.
102a、104.105.106.10B、110.
112.114.122.124.136に対応する要
素である。
ただし、5CPU20の制御用ROM202には基本的
に音源処理のためのプログラムのみが記憶されており、
5CPU20を音源処理専用の処理装置として機能さゼ
でいる。
に音源処理のためのプログラムのみが記憶されており、
5CPU20を音源処理専用の処理装置として機能さゼ
でいる。
126はDACデータ転送ハスに5CPtJ内部ハスを
接続するためのゲートを表す。
接続するためのゲートを表す。
・240は5CPU20の演算用メモ+1としてのRA
M206へ人力するデータをMCPUIOからのデータ
(MCPUIOからゲート130、データハスDO11
丁を通ったデータ)と5CPU20の生成(演算)した
データ(ALU部208または乗算器210からのデー
タバスDB上のデータ)とから選択するRAMデータイ
ン切り換え部である。RAMデータイン切り換え部24
0は信号Aによってぞの選択モードが制御され、信号A
が”5CPU20動作中“を表しているときには5CP
U20で演算したデータを選択し、信号Aが” S C
P [J 20停止中゛を表しているときにはMCPU
IOからのデータを選択する。
M206へ人力するデータをMCPUIOからのデータ
(MCPUIOからゲート130、データハスDO11
丁を通ったデータ)と5CPU20の生成(演算)した
データ(ALU部208または乗算器210からのデー
タバスDB上のデータ)とから選択するRAMデータイ
ン切り換え部である。RAMデータイン切り換え部24
0は信号Aによってぞの選択モードが制御され、信号A
が”5CPU20動作中“を表しているときには5CP
U20で演算したデータを選択し、信号Aが” S C
P [J 20停止中゛を表しているときにはMCPU
IOからのデータを選択する。
また、RAMアドレス制御部205も、信号Aによって
そのモードが制御され、信号Aが°“5CPU20動作
中゛′を表しているときには制御用ROMのインストラ
クション出力ラッチ202aからのバスSA上の情報を
RAM206のアドレスとして選択し、信号Aが“5C
PU20停止中”を表しているときにはMCPUIOか
らハスゲート128 (信号Aにより開いている)を経
てバスMa上にあるMCPUIOからの情報をRAM2
06のアドレスとして選択する。同様に、ライト信号切
り換え部242も信号Aによってそのモードが制御され
、信号Aが゛’5CPU20動作中゛′を表していると
きには、5CPU20のオペレション制御回路212か
らのRAMリードライト信号を選択してRAM206の
リードライト人力R/Wに結合し、信号Aが゛5CPt
J20停止中”を表しているときには5CPU20では
なくMCP [J 10のオペレーション制御回路11
2からのSCPtJRAMリードライト信号を選択して
RAM 206のリードライト入力1−/Wに結合する
。
そのモードが制御され、信号Aが°“5CPU20動作
中゛′を表しているときには制御用ROMのインストラ
クション出力ラッチ202aからのバスSA上の情報を
RAM206のアドレスとして選択し、信号Aが“5C
PU20停止中”を表しているときにはMCPUIOか
らハスゲート128 (信号Aにより開いている)を経
てバスMa上にあるMCPUIOからの情報をRAM2
06のアドレスとして選択する。同様に、ライト信号切
り換え部242も信号Aによってそのモードが制御され
、信号Aが゛’5CPU20動作中゛′を表していると
きには、5CPU20のオペレション制御回路212か
らのRAMリードライト信号を選択してRAM206の
リードライト人力R/Wに結合し、信号Aが゛5CPt
J20停止中”を表しているときには5CPU20では
なくMCP [J 10のオペレーション制御回路11
2からのSCPtJRAMリードライト信号を選択して
RAM 206のリードライト入力1−/Wに結合する
。
以下、本実施例の諸特徴を更に詳細に説明する。
<CPU動作説明〉
第4図はMCPUIOのメインプログラム(バンクグラ
ンドプログラム)によるMCPtJloの動作を示すフ
ローチャート、第5A図と第5B図(又は第5D図と第
5E図)及び第6図はタイマインタラブド信号INTに
よって起動されるMCPUIOのインタラブド処理ルー
チンによるMCPUIOの動作を示すフローチャート、
第8図、第9図はMCPUIOからの動作開始信号Aに
よって起動される5CPU20のプログラムによる5C
PU20の動作を示すフローチャートである。
ンドプログラム)によるMCPtJloの動作を示すフ
ローチャート、第5A図と第5B図(又は第5D図と第
5E図)及び第6図はタイマインタラブド信号INTに
よって起動されるMCPUIOのインタラブド処理ルー
チンによるMCPUIOの動作を示すフローチャート、
第8図、第9図はMCPUIOからの動作開始信号Aに
よって起動される5CPU20のプログラムによる5C
PU20の動作を示すフローチャートである。
第1〜第3図に関して述べたように、本実施例の電子楽
器処理システムはMCPUIOと5CPU20とから成
る複数のCPUを備えており、両CPUが協働して電子
楽器のための処理を実行する。特にMCPUIOは、本
実施例では第5A、5B (5D、5E)図及び第6図
に示すようなインタラブド処理ルーチンにより音源処理
の一部を行い、5CPU20は第8図及び第9図に示す
ようなプログラムにより残りの音源処理を行う。具体的
ニは、MCPUIOのインクラブド処理ルーチンでは、
前回のインクラブド周期で求まった今回のサンプリング
タイミング用の現在エンベロープ値を5CPtJ20に
転送する処理と、次回のサンプリングタイミング用の現
在エンベロープ(iを演算する処理等が行われる。一方
、S CP U 20では、今回のサンプリングタイミ
ングにおける波形値を演算する処理と、その波形値にM
CPUIOから転送されてきた現在エンベロープ値を乗
算する処理が行われる。更にMCPUIOは第4図に示
すメインプログラムにより、CPU全体の制御のため種
々のタスクを実行する。
器処理システムはMCPUIOと5CPU20とから成
る複数のCPUを備えており、両CPUが協働して電子
楽器のための処理を実行する。特にMCPUIOは、本
実施例では第5A、5B (5D、5E)図及び第6図
に示すようなインタラブド処理ルーチンにより音源処理
の一部を行い、5CPU20は第8図及び第9図に示す
ようなプログラムにより残りの音源処理を行う。具体的
ニは、MCPUIOのインクラブド処理ルーチンでは、
前回のインクラブド周期で求まった今回のサンプリング
タイミング用の現在エンベロープ値を5CPtJ20に
転送する処理と、次回のサンプリングタイミング用の現
在エンベロープ(iを演算する処理等が行われる。一方
、S CP U 20では、今回のサンプリングタイミ
ングにおける波形値を演算する処理と、その波形値にM
CPUIOから転送されてきた現在エンベロープ値を乗
算する処理が行われる。更にMCPUIOは第4図に示
すメインプログラムにより、CPU全体の制御のため種
々のタスクを実行する。
第4図のメインプログラムのフローにおいて、4−1は
電源投入時にCP tJを初期化する処理であり、MC
PUIOはRAM106、RAM206のクリアや、リ
ズムテンポ等の初期値の設定等を行う。4−2でMCP
tJ3.0は出力ポート120からキー走査のための信
号を出力し、鍵盤、機・能スイッチ等の入力装置の状態
を入力ボート118から取り込むことにより、機能キー
、鍵盤キーの状態をRAM106のキーバッファエリア
に記憶する。4−3でば4−2で得た機能キーの新しい
状態と前回の状態とから、状態の変化した機能キーを識
別し、指示される機能の実行を行う(例えば、楽音番号
のセット、エンベロープ番号のセット、リズム番号のセ
ント等)。4−4では42で得た鍵盤の最新の状態と前
回の状態とから、変化した鍵(押鍵、離鍵)を識別する
。次の45で4−4の処理結果から、発音制御処理4−
9のためのキーアサイン処理を行う。4−6では機能キ
ーでデモ演奏キーが押鍵されたとき外部メモリ90から
、デモ演奏データ(シーケンサデータ)を順次読み出し
、処理することにより、発音制御処理4−9のためのキ
ーアサイン処理等を行う。
電源投入時にCP tJを初期化する処理であり、MC
PUIOはRAM106、RAM206のクリアや、リ
ズムテンポ等の初期値の設定等を行う。4−2でMCP
tJ3.0は出力ポート120からキー走査のための信
号を出力し、鍵盤、機・能スイッチ等の入力装置の状態
を入力ボート118から取り込むことにより、機能キー
、鍵盤キーの状態をRAM106のキーバッファエリア
に記憶する。4−3でば4−2で得た機能キーの新しい
状態と前回の状態とから、状態の変化した機能キーを識
別し、指示される機能の実行を行う(例えば、楽音番号
のセット、エンベロープ番号のセット、リズム番号のセ
ント等)。4−4では42で得た鍵盤の最新の状態と前
回の状態とから、変化した鍵(押鍵、離鍵)を識別する
。次の45で4−4の処理結果から、発音制御処理4−
9のためのキーアサイン処理を行う。4−6では機能キ
ーでデモ演奏キーが押鍵されたとき外部メモリ90から
、デモ演奏データ(シーケンサデータ)を順次読み出し
、処理することにより、発音制御処理4−9のためのキ
ーアサイン処理等を行う。
4−7ではリズムスタートキーが押鍵されたとき外部メ
モリ90からリズムデータを順次読み出し、発音制御処
理4−9のためのキーアサイン処理を行う。フロー−周
タイマ処理4−8では、メインフローで必要なイベント
のタイミングを知るために、RAM 106内の特には
図示しない時間レジスタの値として得られるフローー一
周時間(このレジスタ値は、フローを一周する間に実行
されたタイマインタラブドの回数を計数することで得ら
れる。この計数処理は後述のインタラブドタイマ処理5
−11(第5A図又は第5D図)として行われる。)を
基に演算を行い、エンヘローブ用タイマ(エンベロープ
の演算周tiJJ)やリズム用の基準値を得る。発音制
御処理4.−9では4−5.4−6.4−7でセットさ
れたデータから、実際に楽音を発音させるための各種演
算を行い、結果をRAM106内の音源処理レジスタ(
第7図)から、RAM206内の音源処理レジスタ(第
11図)にセットする。具体的には、第7図に示すMC
PUIOのRAM106内の音源処理レジスタに記憶さ
れたアドレス加算値、ループアドレス、エンドアドレス
及びスタートアドレスを第11図に示す5CPU20の
206内の音源処理レジスタにセットする動作を行うも
のである。このMCPTJloは8チャンネル分の楽音
データを生成可能であり、これらデータは4−5〜4−
7でアサインされたデータに基づき、MCPUIO1s
cpu20の各レジスタ内の対応するチャンネルに割り
当てられる。このアドレス加算値、ループアドレス、エ
ンドアドレス及びスタートアドレスは外部メモリ90に
置かれる基本波形に対するアドレス情報であり、スター
トアドレスは基本波形メモリ(外部メモリ90内)のス
タートアドレス、ループアドレスは基本波形を繰り返し
読み出す場合の戻り先のアドレス(第10図ではスター
トアドレスと同一)、エンドアドレスは基本波形のエン
ドアドレスを表し、現在アドレスは基本波形の現在の位
相を表すアドレスであり、その整数部が、基本波形メモ
リに現実に存在する記憶場所を表し、その小数部が、こ
の記憶場所からのずれを表し、アドレス加算値はタイマ
インタラブド処理ルーチンの時間間隔ごとに現在アドレ
スに加算されるべき値であり、生成する楽音のピッチに
正比例する。
モリ90からリズムデータを順次読み出し、発音制御処
理4−9のためのキーアサイン処理を行う。フロー−周
タイマ処理4−8では、メインフローで必要なイベント
のタイミングを知るために、RAM 106内の特には
図示しない時間レジスタの値として得られるフローー一
周時間(このレジスタ値は、フローを一周する間に実行
されたタイマインタラブドの回数を計数することで得ら
れる。この計数処理は後述のインタラブドタイマ処理5
−11(第5A図又は第5D図)として行われる。)を
基に演算を行い、エンヘローブ用タイマ(エンベロープ
の演算周tiJJ)やリズム用の基準値を得る。発音制
御処理4.−9では4−5.4−6.4−7でセットさ
れたデータから、実際に楽音を発音させるための各種演
算を行い、結果をRAM106内の音源処理レジスタ(
第7図)から、RAM206内の音源処理レジスタ(第
11図)にセットする。具体的には、第7図に示すMC
PUIOのRAM106内の音源処理レジスタに記憶さ
れたアドレス加算値、ループアドレス、エンドアドレス
及びスタートアドレスを第11図に示す5CPU20の
206内の音源処理レジスタにセットする動作を行うも
のである。このMCPTJloは8チャンネル分の楽音
データを生成可能であり、これらデータは4−5〜4−
7でアサインされたデータに基づき、MCPUIO1s
cpu20の各レジスタ内の対応するチャンネルに割り
当てられる。このアドレス加算値、ループアドレス、エ
ンドアドレス及びスタートアドレスは外部メモリ90に
置かれる基本波形に対するアドレス情報であり、スター
トアドレスは基本波形メモリ(外部メモリ90内)のス
タートアドレス、ループアドレスは基本波形を繰り返し
読み出す場合の戻り先のアドレス(第10図ではスター
トアドレスと同一)、エンドアドレスは基本波形のエン
ドアドレスを表し、現在アドレスは基本波形の現在の位
相を表すアドレスであり、その整数部が、基本波形メモ
リに現実に存在する記憶場所を表し、その小数部が、こ
の記憶場所からのずれを表し、アドレス加算値はタイマ
インタラブド処理ルーチンの時間間隔ごとに現在アドレ
スに加算されるべき値であり、生成する楽音のピッチに
正比例する。
4−10は次のメインフローのバスのための準備処理で
あり、今回のバスで得た押鍵状態への変化を示すNEW
ON状態をON中にしたり、離鍵状態への変化を示
すNEW OFF状態をOFF中に変える等の処理を
行う。
あり、今回のバスで得た押鍵状態への変化を示すNEW
ON状態をON中にしたり、離鍵状態への変化を示
すNEW OFF状態をOFF中に変える等の処理を
行う。
インタラブド発生部116からのインタラブド信号IN
Tが発生すると、MCPUIOは実行中のメインプログ
ラムを中断し、第5A図に示すインタラブド処理ルーチ
ンを実行する。ここにMCPUIOは第5A、5B図又
は第5D、5B図、及ヒ第6図のフローにおいて楽音の
エンベロープデータを生成し、5CPU20は第8図、
第9図のフローにおいてMCPUIOからのエンベロー
プデータに基づいて楽音波形データを生成するようにな
っている。ここで、第5A、5B図は、MCPUインタ
ラブド処理及び該処理において実行されるデータ転送処
理の第1の実施例の動作フローであり、第5C図はその
動作タイミングチャートの一例を示した図である。また
、第5D、5B図は、MCPUインタラブド処理及び該
処理において実行されるデータ転送処理の第2の実施例
の動作フローであり、第5F図はその動作タイミングチ
ャートの一例を示した図である。更に、第6図は、第5
A図又は第5D図のMCPUインクラブド処理における
各発音チャネル毎の音源処理の0作フローである。以下
、各フローについて順次説明する。
Tが発生すると、MCPUIOは実行中のメインプログ
ラムを中断し、第5A図に示すインタラブド処理ルーチ
ンを実行する。ここにMCPUIOは第5A、5B図又
は第5D、5B図、及ヒ第6図のフローにおいて楽音の
エンベロープデータを生成し、5CPU20は第8図、
第9図のフローにおいてMCPUIOからのエンベロー
プデータに基づいて楽音波形データを生成するようにな
っている。ここで、第5A、5B図は、MCPUインタ
ラブド処理及び該処理において実行されるデータ転送処
理の第1の実施例の動作フローであり、第5C図はその
動作タイミングチャートの一例を示した図である。また
、第5D、5B図は、MCPUインタラブド処理及び該
処理において実行されるデータ転送処理の第2の実施例
の動作フローであり、第5F図はその動作タイミングチ
ャートの一例を示した図である。更に、第6図は、第5
A図又は第5D図のMCPUインクラブド処理における
各発音チャネル毎の音源処理の0作フローである。以下
、各フローについて順次説明する。
まず、第5A図(データ転送処理の第1の実施例)及び
第5D図(同じく第2の実施例)で共通のMCPUイン
クラブド処理の概略について説明する。
第5D図(同じく第2の実施例)で共通のMCPUイン
クラブド処理の概略について説明する。
前述したように、MCPUIOのインタラブド処理ルー
チンでは、前回のインタラブド周期で求まった今回のサ
ンプリングタイミング用の現在エンベロープ値を5CP
U20に転送する処理と、次回のサンプリングタイミン
グ用の現在エンベロープ値を演算する処理等が行われる
。
チンでは、前回のインタラブド周期で求まった今回のサ
ンプリングタイミング用の現在エンベロープ値を5CP
U20に転送する処理と、次回のサンプリングタイミン
グ用の現在エンベロープ値を演算する処理等が行われる
。
今回のサンプリングタイミング用の現在エンベロープ値
は、前回のインタラブド周期において、MCPUIOの
R,AM106の音源処理レジスタ内の第7図に示され
る各チャンネル領域に得られており、これらのデータが
、第5A図又は第5D図のステップ5−1のデータ転送
処理において5CPU20に転送される。このとき、デ
ータ転送のタイミングに合わせてMCPUIOから5C
PU20にパルス状のライト信号Cが出力される。
は、前回のインタラブド周期において、MCPUIOの
R,AM106の音源処理レジスタ内の第7図に示され
る各チャンネル領域に得られており、これらのデータが
、第5A図又は第5D図のステップ5−1のデータ転送
処理において5CPU20に転送される。このとき、デ
ータ転送のタイミングに合わせてMCPUIOから5C
PU20にパルス状のライト信号Cが出力される。
このデータ転送が終了すると、MCPUIOは、5CP
U20の動作を開始させる動作開始信号Aを出力する(
5−2)。このあと、5−2’(第5A図)又は5−2
’ (第5D図)を経て(それぞれ後述する)、ステ
ップ5−3〜5−1Oで第1チヤンネルから第8チヤン
ネルまでの各チャンネルの音源処理を実行する。この処
理は、前述したように、各チャンネル毎の次回のサンプ
リングタイミング用の現在エンベロープ値を演算する処
理であり、後述する第6図の動作フローで示される。こ
れにより得られたエンベロープデータは、RAM 10
6の音源処理レジスタ内の第7図に示される各チャンネ
ル領域に新たに上書きされる。
U20の動作を開始させる動作開始信号Aを出力する(
5−2)。このあと、5−2’(第5A図)又は5−2
’ (第5D図)を経て(それぞれ後述する)、ステ
ップ5−3〜5−1Oで第1チヤンネルから第8チヤン
ネルまでの各チャンネルの音源処理を実行する。この処
理は、前述したように、各チャンネル毎の次回のサンプ
リングタイミング用の現在エンベロープ値を演算する処
理であり、後述する第6図の動作フローで示される。こ
れにより得られたエンベロープデータは、RAM 10
6の音源処理レジスタ内の第7図に示される各チャンネ
ル領域に新たに上書きされる。
8チャンネル分の音源処理が終了すると、最後にステッ
プ5−11においてインタラブドタイマー処理が実行さ
れる。この処理は、第5A図又は第5D図のMCPUイ
ンタラブド処理が一定のサンプリング周期毎に実行され
ることを利用して、RAM 106上の特には図示しな
い時間レジスタの値がインクリメントされる。すなわち
、この時間レジスタの値を見れば時間経過がわかる。こ
のようにして得られる時間レジスタ値は、前述したよう
に、第4図のメインフローのフロー1周タイマー処理(
4−8)における時間制御に用いられる。
プ5−11においてインタラブドタイマー処理が実行さ
れる。この処理は、第5A図又は第5D図のMCPUイ
ンタラブド処理が一定のサンプリング周期毎に実行され
ることを利用して、RAM 106上の特には図示しな
い時間レジスタの値がインクリメントされる。すなわち
、この時間レジスタの値を見れば時間経過がわかる。こ
のようにして得られる時間レジスタ値は、前述したよう
に、第4図のメインフローのフロー1周タイマー処理(
4−8)における時間制御に用いられる。
以上の動作の後、再び第4図のメインルーチンに戻る。
次に、第5A図のMCPUインクラブド処理の第1の実
施例におけるステップ5−1のデータ転送処理と、それ
に関係するステップ5−2.52′の各処理について説
明する。
施例におけるステップ5−1のデータ転送処理と、それ
に関係するステップ5−2.52′の各処理について説
明する。
本実施例では、前述したように、MCPUIOでは各サ
ンプリングタイミング毎のエンベロープ値を各発音チャ
ンネル毎に計算してそれを5CPU20に転送するが、
MCPUIOに汎用性を持たせ本実施例以外の種々の音
源処理を行わせる場合には、MCPUIOから5CPU
20へ転送すべきデータ数は様々に変化し5CPU20
でそれを知ることはできない。そのため、MCPtJl
oと5CPU20の間のデータ転送制御をいかに簡単に
し、かつ必要とするデータのみを効率的に転送するかが
問題となる。
ンプリングタイミング毎のエンベロープ値を各発音チャ
ンネル毎に計算してそれを5CPU20に転送するが、
MCPUIOに汎用性を持たせ本実施例以外の種々の音
源処理を行わせる場合には、MCPUIOから5CPU
20へ転送すべきデータ数は様々に変化し5CPU20
でそれを知ることはできない。そのため、MCPtJl
oと5CPU20の間のデータ転送制御をいかに簡単に
し、かつ必要とするデータのみを効率的に転送するかが
問題となる。
そこで、第5A図及び第5B図で示されるMCPUイン
タラブド処理の第1の実施例では、MCPUIOはデー
タ転送時には常に一定数NのデータをRAM106(第
2図)から出力することとし、その場合にデータ転送に
必要のないRAM106上のアドレス領域には、値Oの
データを格納しておく。そして、MCPUIOのオペレ
ーション制御回路112(第2図)は、RAM 106
からイ直0のデータが読み出されたときには、5CPU
20へ供給されるべきライト信号Cを出力しないように
制御を行う。そして、MCPUl 0内の5CPUリセ
ット制御部134(第2図)は、インタラブド発生部1
15からのインタラブド信号INTの入力後、上記N個
のデータの出力時間に相当するタイミングをカウントし
た後に5CPU20に処理開始信号Aを出力する。これ
により、単純な制御で、MCPUIOのRAM106か
ら5CPU20のRAM206へ必要なデータのみを適
切に転送できる。
タラブド処理の第1の実施例では、MCPUIOはデー
タ転送時には常に一定数NのデータをRAM106(第
2図)から出力することとし、その場合にデータ転送に
必要のないRAM106上のアドレス領域には、値Oの
データを格納しておく。そして、MCPUIOのオペレ
ーション制御回路112(第2図)は、RAM 106
からイ直0のデータが読み出されたときには、5CPU
20へ供給されるべきライト信号Cを出力しないように
制御を行う。そして、MCPUl 0内の5CPUリセ
ット制御部134(第2図)は、インタラブド発生部1
15からのインタラブド信号INTの入力後、上記N個
のデータの出力時間に相当するタイミングをカウントし
た後に5CPU20に処理開始信号Aを出力する。これ
により、単純な制御で、MCPUIOのRAM106か
ら5CPU20のRAM206へ必要なデータのみを適
切に転送できる。
以下、第5A図ステップ5−1のデータ転送処理につい
て、第5B図の動作フローチャート及び第5C図の動作
タイミングチャートの一例を用いて詳細に説明する。
て、第5B図の動作フローチャート及び第5C図の動作
タイミングチャートの一例を用いて詳細に説明する。
まず、オペレーション制御回路112はRAMアドレス
制御部115(共に第2図)を制御して、データ転送の
対象となるデータを所定のアドレスχ1から始まる連続
するアドレス領域ヘコピーする(5−1−1)。本実施
例では、前回のインタラブド周期においてMCPUIO
のRAM106の音源処理レジスタ内の第7図に示され
る各チャンネル領域に得られている計8個の今回のサン
プリングタイミング用の現在エンベロープ値が、アドレ
ス右頁域X、−X、ヘコビーされる。なお、RAM1.
06上にはアドレスX1〜XNまでのNアドレス分のデ
ータ転送領域が設けられており、MCPUIOのRAM
106から5CPU20のRAM20へは、1回のイン
クラブドタイミングでN個までのデータの転送が可能で
ある。ここで、アドレスX1−XNの内容は、パワーオ
ン時に第4回のメインフローのステップ4−1において
、或いは前回のインタラブドタイミングでのMCP[J
インタラブド処理における第5A図のステップ5−2′
において、それぞれ値0にクリアされている。従って、
上述のステップ5−1−1の処理により、アドレスx、
−Xiには今回の現在エンベロープ値が格納され、アド
レスX、〜XNの内容は値Oとなる。
制御部115(共に第2図)を制御して、データ転送の
対象となるデータを所定のアドレスχ1から始まる連続
するアドレス領域ヘコピーする(5−1−1)。本実施
例では、前回のインタラブド周期においてMCPUIO
のRAM106の音源処理レジスタ内の第7図に示され
る各チャンネル領域に得られている計8個の今回のサン
プリングタイミング用の現在エンベロープ値が、アドレ
ス右頁域X、−X、ヘコビーされる。なお、RAM1.
06上にはアドレスX1〜XNまでのNアドレス分のデ
ータ転送領域が設けられており、MCPUIOのRAM
106から5CPU20のRAM20へは、1回のイン
クラブドタイミングでN個までのデータの転送が可能で
ある。ここで、アドレスX1−XNの内容は、パワーオ
ン時に第4回のメインフローのステップ4−1において
、或いは前回のインタラブドタイミングでのMCP[J
インタラブド処理における第5A図のステップ5−2′
において、それぞれ値0にクリアされている。従って、
上述のステップ5−1−1の処理により、アドレスx、
−Xiには今回の現在エンベロープ値が格納され、アド
レスX、〜XNの内容は値Oとなる。
次に、変数θ(RAM106内に確保される)の値を1
に設定した後に、ステップ5−1−7でその値を+1ず
つしながらステップ5−1−6でθ=Nと判定されるま
で、ステップ5−1−3〜5−1−7までの処理が繰り
返される。
に設定した後に、ステップ5−1−7でその値を+1ず
つしながらステップ5−1−6でθ=Nと判定されるま
で、ステップ5−1−3〜5−1−7までの処理が繰り
返される。
まず、MCPUIO内のRAMアドレス制御部工15(
第2図)がRAM 106に対してアドレスXθを指定
する。これにより、RAM106のアドレスXθから出
力されるデータのうち、上位ビットのデータ(Xθ)U
がアドレスデータとして5CPU内部RAMアドレス
指定バスMaに出力され、また、下位ビットのデータ(
Xθ)lが転送データとして5cpu内部RAM書込デ
ータバスD。、、tに出力される(5〜1−3)。なお
、本実施例ではデータの上位ビットでアドレスを指定し
下位ピントでデータを指定するネタストアドレス方式が
採用されている。
第2図)がRAM 106に対してアドレスXθを指定
する。これにより、RAM106のアドレスXθから出
力されるデータのうち、上位ビットのデータ(Xθ)U
がアドレスデータとして5CPU内部RAMアドレス
指定バスMaに出力され、また、下位ビットのデータ(
Xθ)lが転送データとして5cpu内部RAM書込デ
ータバスD。、、tに出力される(5〜1−3)。なお
、本実施例ではデータの上位ビットでアドレスを指定し
下位ピントでデータを指定するネタストアドレス方式が
採用されている。
同時に、上位ビットのアドレスデータ(Xθ)Uの値が
0であるか否かが判定され(5−1−4)、0でなけれ
ば、MCPUIOのオペレーション制御部112は、5
CPU20に向けてライト信号Cを出力する。なお、デ
ータの値の判定はALtJ部108(第2図)において
行われ、その判定結果がオペレーション制御回路112
に通知される。
0であるか否かが判定され(5−1−4)、0でなけれ
ば、MCPUIOのオペレーション制御部112は、5
CPU20に向けてライト信号Cを出力する。なお、デ
ータの値の判定はALtJ部108(第2図)において
行われ、その判定結果がオペレーション制御回路112
に通知される。
これにより5CPU20では、上述のライト信号Cがラ
イト信号切換え回路242を介してRAM206に入力
し、また、RAMアドレス制御部205が前述したよう
にして5CPU内部RAMアドレス指定バスMaから入
力するアドレスデータ(Xθ)Uを選択し、このアドレ
スをRAM206に指定する。従って、RAM206は
前述したように5cpu内部RAM書込データバスD。
イト信号切換え回路242を介してRAM206に入力
し、また、RAMアドレス制御部205が前述したよう
にして5CPU内部RAMアドレス指定バスMaから入
力するアドレスデータ(Xθ)Uを選択し、このアドレ
スをRAM206に指定する。従って、RAM206は
前述したように5cpu内部RAM書込データバスD。
utから入力する転送データ(Xθ)iを選択し、これ
を上記アドレスに書き込む。一方、ステップ5−1−4
での判定の結果、上位ビットのアドレスデータ(Xθ)
Uの値が0である場合には、MCPUIOのオペレーシ
ョン制御部112は、5CPU20に向けてライト信号
Cを出力しない。従って、MCPUIOから5CPLI
20へのデータ転送は行われない。
を上記アドレスに書き込む。一方、ステップ5−1−4
での判定の結果、上位ビットのアドレスデータ(Xθ)
Uの値が0である場合には、MCPUIOのオペレーシ
ョン制御部112は、5CPU20に向けてライト信号
Cを出力しない。従って、MCPUIOから5CPLI
20へのデータ転送は行われない。
以上のステップ5−1−3〜5−i5のデータ転送処理
が、ステップ5−16において変数θの値がNに等しい
と判定されるまで、θの値がステップ5−17で+1ず
つされながら繰り返される。なお、ステップ5−1−6
での判定演算はMCPUIO内のALU部108で行わ
れ、その判定結果がオペレーション制御回路112に通
知される。
が、ステップ5−16において変数θの値がNに等しい
と判定されるまで、θの値がステップ5−17で+1ず
つされながら繰り返される。なお、ステップ5−1−6
での判定演算はMCPUIO内のALU部108で行わ
れ、その判定結果がオペレーション制御回路112に通
知される。
今、第5C図において、MCPUIOは、始め第5C図
(a)の如く第4図のメインフローを実jテしているが
、第5C図(b)の如くインタラブド発生部115から
インタラブド信号INTが入力すると、MCPUIOで
の処理は第5A図のMCPUインタラブド処理に移行す
る。そして、MCPUIOのオペレーション制御回路1
12から制御信号CNTR(第2図)として、第5C図
(C)の如く転送命令信号が出力されると、MCPUI
Oでの処理は第5B図のデータ転送処理に移行する。
(a)の如く第4図のメインフローを実jテしているが
、第5C図(b)の如くインタラブド発生部115から
インタラブド信号INTが入力すると、MCPUIOで
の処理は第5A図のMCPUインタラブド処理に移行す
る。そして、MCPUIOのオペレーション制御回路1
12から制御信号CNTR(第2図)として、第5C図
(C)の如く転送命令信号が出力されると、MCPUI
Oでの処理は第5B図のデータ転送処理に移行する。
この後、MCPUIOのRAMアドレス制御部115が
、アドレスを第5C図(d)のようにxI〜χNまで変
化させながらRAM106に対して指定する(第5B図
ステップ5−1−2.5−1−6及び5−1−7による
)。これにより、RAM106からアドレスデータ(X
l)u〜(XN)u及転送データ(χ、)E〜(Xs)
fが出力される。この場合、前述したようにRAM10
6のアドレスX1〜X、には有効な現在アドレス値が格
納されており、アドレスX9〜X8には値O(無効デー
タ)が格納されている。従って、RAM106に対して
アドレスX、〜X8が指定される間は第5C図のように
ライト信号Cが出力されてデータ転送が行われる(第5
B図のステップ5−1−5による)。そして、アドレス
x9〜XNが指定される間は第5C図のようにライト信
号Cは出力されずデータ転送は行われない。このように
して、8チャンネル分の現在エンベロープ値である8つ
の有効な転送データ(Xl)1.〜(X、)nのみが、
MCPUIOのRAM106から5CPtJ20のRA
M206へ転送される。
、アドレスを第5C図(d)のようにxI〜χNまで変
化させながらRAM106に対して指定する(第5B図
ステップ5−1−2.5−1−6及び5−1−7による
)。これにより、RAM106からアドレスデータ(X
l)u〜(XN)u及転送データ(χ、)E〜(Xs)
fが出力される。この場合、前述したようにRAM10
6のアドレスX1〜X、には有効な現在アドレス値が格
納されており、アドレスX9〜X8には値O(無効デー
タ)が格納されている。従って、RAM106に対して
アドレスX、〜X8が指定される間は第5C図のように
ライト信号Cが出力されてデータ転送が行われる(第5
B図のステップ5−1−5による)。そして、アドレス
x9〜XNが指定される間は第5C図のようにライト信
号Cは出力されずデータ転送は行われない。このように
して、8チャンネル分の現在エンベロープ値である8つ
の有効な転送データ(Xl)1.〜(X、)nのみが、
MCPUIOのRAM106から5CPtJ20のRA
M206へ転送される。
上述のようにしてRAM106に対してXNまでのアド
レスが指定されると、第5C図(5)の如く最後のタイ
ミングで、MCPtJ10内の5CPUリセット制御部
134(第2図)から5CPU20に処理開始信号Aが
出力される。同制御部は、インタラブド発生部115か
らのインクラブド信号INTの入力(第5C図ら))後
、第5C図(ト)の演算サイクルを単位として略Nサイ
クル分の時間をカウントした後に処理開始信号Aを出力
する。
レスが指定されると、第5C図(5)の如く最後のタイ
ミングで、MCPtJ10内の5CPUリセット制御部
134(第2図)から5CPU20に処理開始信号Aが
出力される。同制御部は、インタラブド発生部115か
らのインクラブド信号INTの入力(第5C図ら))後
、第5C図(ト)の演算サイクルを単位として略Nサイ
クル分の時間をカウントした後に処理開始信号Aを出力
する。
なお、この処理開始信号Aの出力処理は、第5B図のス
テ・ノブ5−16の判定の直後に実行される第5A図の
ステップ5−2の処理として実行される。ここで、5C
PU20の制御用ROM202(第3図)内のプログラ
ムのエンドアドレスにはエンドアドレス自身にジャンプ
する命令が格納されており、従って、第5C図(i)の
如<ROMアドレス制御部214はエンドアドレスを指
定し続け、第5C図(j)の如< 5CPU20は実質
的に停止状態にある。そして、MCPU 10から上記
処理開始信号Aが入力すると、第5C図(i)の如くR
OMアドレス制御部214はプログラムのスタートアド
レスを指定し、これにより、第5C図(j)の如< 5
CPU20は後述する5CPUインタラブド処理の実行
を開始する。なお、この処理は実質的に5CPU20で
のメインフローとなる。
テ・ノブ5−16の判定の直後に実行される第5A図の
ステップ5−2の処理として実行される。ここで、5C
PU20の制御用ROM202(第3図)内のプログラ
ムのエンドアドレスにはエンドアドレス自身にジャンプ
する命令が格納されており、従って、第5C図(i)の
如<ROMアドレス制御部214はエンドアドレスを指
定し続け、第5C図(j)の如< 5CPU20は実質
的に停止状態にある。そして、MCPU 10から上記
処理開始信号Aが入力すると、第5C図(i)の如くR
OMアドレス制御部214はプログラムのスタートアド
レスを指定し、これにより、第5C図(j)の如< 5
CPU20は後述する5CPUインタラブド処理の実行
を開始する。なお、この処理は実質的に5CPU20で
のメインフローとなる。
MCPUIOは、第5A図のステップ5−2の処理の後
、ステップ5−2′において、RAMl06上のデータ
転送用のアドレス領域X1〜XNをクリアしておく。こ
れは、次回のインクラブドタイミングで、有効なアドレ
ス領域以外に値0が格納されているようにするための処
理である。
、ステップ5−2′において、RAMl06上のデータ
転送用のアドレス領域X1〜XNをクリアしておく。こ
れは、次回のインクラブドタイミングで、有効なアドレ
ス領域以外に値0が格納されているようにするための処
理である。
これ以後の、第5A図のステップ5−3〜510の音源
処理については後述する。
処理については後述する。
次に、第5D図及び第5E図で示されるMCPUインタ
ラブド処理の第2の実施例について説明する。
ラブド処理の第2の実施例について説明する。
上述の第5A図及び第5B図による第1の実施例では、
データ転送に必要のないRAM106上のアドレス領域
に値0のデータを格納しておき、RAM106から値O
のデータが読み出されたときには5CPU20へ供給さ
れるべきライト信号Cを出力しないように制御を行うこ
とにより、簡単な制御でMCPUIO(7)RAM10
6上の有効なデータのみを5CPU20のRAM206
に転送することができる。これに対して、第2の実施例
では、MCPUIOはデータ転送時には、第1の実施例
の場合と同様、常に一定数NのデータをRAM106(
第2図)から出力することとし、その場合にデータ転送
に必要のないRAMl06上のアドレス領域には、RA
M206上のあり得ないアドレスを指定するアドレスデ
ータを格納しておく。そして、MCPUl、0のオペレ
ーション制御回路112(第2図)は、N個のライト信
号Cのパルスを無条件に出力して、RAM106のNu
のアドレスデータ及び転送データを無条件に5CPU2
0に転送する。この場合、5CPU20では、RAM2
06上の存在するアドレスデータが転送されてきた場合
のみ、それと対で転送されてきた転送データをRAM2
06に書き込む。
データ転送に必要のないRAM106上のアドレス領域
に値0のデータを格納しておき、RAM106から値O
のデータが読み出されたときには5CPU20へ供給さ
れるべきライト信号Cを出力しないように制御を行うこ
とにより、簡単な制御でMCPUIO(7)RAM10
6上の有効なデータのみを5CPU20のRAM206
に転送することができる。これに対して、第2の実施例
では、MCPUIOはデータ転送時には、第1の実施例
の場合と同様、常に一定数NのデータをRAM106(
第2図)から出力することとし、その場合にデータ転送
に必要のないRAMl06上のアドレス領域には、RA
M206上のあり得ないアドレスを指定するアドレスデ
ータを格納しておく。そして、MCPUl、0のオペレ
ーション制御回路112(第2図)は、N個のライト信
号Cのパルスを無条件に出力して、RAM106のNu
のアドレスデータ及び転送データを無条件に5CPU2
0に転送する。この場合、5CPU20では、RAM2
06上の存在するアドレスデータが転送されてきた場合
のみ、それと対で転送されてきた転送データをRAM2
06に書き込む。
そして、MCPUIO内の5CPUリセット制御部13
4(第2図)は、インタラブド発生部115からのイン
タラブド信号INTの入力後、上記N個のデータの出力
時間に相当するタイミングをカウントした後に5CPU
20に処理開始信号Aを出力する。これにより、単純な
制御で、MCPUIOのRAM1.06から5CPU2
0のRAM206へ必要なデータのみを適切に転送でき
る。
4(第2図)は、インタラブド発生部115からのイン
タラブド信号INTの入力後、上記N個のデータの出力
時間に相当するタイミングをカウントした後に5CPU
20に処理開始信号Aを出力する。これにより、単純な
制御で、MCPUIOのRAM1.06から5CPU2
0のRAM206へ必要なデータのみを適切に転送でき
る。
以下、第5D図ステップ5−1のデータ転送処理につい
て、第5E図の動作フローチャート及び第5F図の動作
タイミングチャートの一例を用いて詳細に説明する。
て、第5E図の動作フローチャート及び第5F図の動作
タイミングチャートの一例を用いて詳細に説明する。
まず、オペレーション制御回路112は、第5B図の第
1の実施例の場合と同様にして、RAMアドレス制御部
115(共に第2図)を制御して、データ転送の対象と
なるデータを所定のアドレスXIから始まる連続するア
ドレス領域ヘコピーする(5−1−1)。本実施例では
、第1の実施例と同様、今回のサンプリングタイミング
用の8個の現在エンベロープ値が、アドレス領域X1〜
Xsヘコビーされる。RAM106上には、第1の実施
例の場合と同様、アドレスX1〜XにまでのNアドレス
分のデータ転送領域が設けられており、MCPUIOの
RAM106から5CPU20のRAM20へは、1回
のインタラブドタイミングでN個までのデータの転送が
可能である。ここで、アドレスX1〜XNの内容は、パ
ワーオン時に第4図のメインフローのステップ4−1に
おいて、或いは前回のインタラブドタイミングでのMC
PUインクラブド処理における第5D図のステップ5−
2#において、それぞれ値” F F F F”にセッ
トされている。従って、上述のステップ5−1−1の処
理により、アドレスX1〜Xsには今回の現在エンベロ
ープ値が格納され、アドレスX9〜XNの内容は値”
F F F F ”となる。
1の実施例の場合と同様にして、RAMアドレス制御部
115(共に第2図)を制御して、データ転送の対象と
なるデータを所定のアドレスXIから始まる連続するア
ドレス領域ヘコピーする(5−1−1)。本実施例では
、第1の実施例と同様、今回のサンプリングタイミング
用の8個の現在エンベロープ値が、アドレス領域X1〜
Xsヘコビーされる。RAM106上には、第1の実施
例の場合と同様、アドレスX1〜XにまでのNアドレス
分のデータ転送領域が設けられており、MCPUIOの
RAM106から5CPU20のRAM20へは、1回
のインタラブドタイミングでN個までのデータの転送が
可能である。ここで、アドレスX1〜XNの内容は、パ
ワーオン時に第4図のメインフローのステップ4−1に
おいて、或いは前回のインタラブドタイミングでのMC
PUインクラブド処理における第5D図のステップ5−
2#において、それぞれ値” F F F F”にセッ
トされている。従って、上述のステップ5−1−1の処
理により、アドレスX1〜Xsには今回の現在エンベロ
ープ値が格納され、アドレスX9〜XNの内容は値”
F F F F ”となる。
次に、第5B図の第1の実施の場合と同様、ステップ5
−1−2で変数θ(RAM I O6内に確保される)
の値を1に設定した後に、ステップ5−1−7でその値
を+1ずつしながらステップ5−1−6でθ=Nと判定
されるまで、ステップ51−3と5−1 ′−1の処理
が繰り返される。
−1−2で変数θ(RAM I O6内に確保される)
の値を1に設定した後に、ステップ5−1−7でその値
を+1ずつしながらステップ5−1−6でθ=Nと判定
されるまで、ステップ51−3と5−1 ′−1の処理
が繰り返される。
まず、第5B図の第1の実施例の場合と同様にして、M
CPUIO内のRAMアドレス制御部115(第2図)
がRAM 106に対してアドレスXθを指定する。こ
れにより、第1の実施例の場合と同様にして、RAM1
06のアドレスXθから出力されるデータのうち、上位
ピントのデータ(Xθ)U がアドレスデータとして5
CPU内部RAMアドレス指定バスMaに出力され、ま
た、下位ビットのデータ(Xθ)1 が転送データとし
て5cpu内部RAM書込データバスD。utに出力さ
れる(5−1−3)。
CPUIO内のRAMアドレス制御部115(第2図)
がRAM 106に対してアドレスXθを指定する。こ
れにより、第1の実施例の場合と同様にして、RAM1
06のアドレスXθから出力されるデータのうち、上位
ピントのデータ(Xθ)U がアドレスデータとして5
CPU内部RAMアドレス指定バスMaに出力され、ま
た、下位ビットのデータ(Xθ)1 が転送データとし
て5cpu内部RAM書込データバスD。utに出力さ
れる(5−1−3)。
同時に、MCPUIOのオペレーション制御部112は
、ステップ5+−1′−1において、5CPU20に向
けてライト信号Cを出力する。このように、無条件にラ
イト信号Cが出力される点が第5B図の第1の実施例と
異なる。これにより5CPU20では、上述のライト信
号Cがライト信号切換え回路242を介してRAM20
6に入力し、また、RAMアドレス制御部205が前述
したようにして5CPU内部RAMアドレス指定ハスM
aから入力するアドレスデータ(Xθ)U を選択し、
このアドレスをRAM206に指定する。
、ステップ5+−1′−1において、5CPU20に向
けてライト信号Cを出力する。このように、無条件にラ
イト信号Cが出力される点が第5B図の第1の実施例と
異なる。これにより5CPU20では、上述のライト信
号Cがライト信号切換え回路242を介してRAM20
6に入力し、また、RAMアドレス制御部205が前述
したようにして5CPU内部RAMアドレス指定ハスM
aから入力するアドレスデータ(Xθ)U を選択し、
このアドレスをRAM206に指定する。
この場合、アドレスデータ(χθ)UがRAM206上
の有効なアドレスを指定している場合には、RAM20
6は前述したようにして5CPU内部RAM書込データ
バスD。。tから入力する転送データ(Xθ)! を選
択し、これを上記アドレスに書き込む。一方、アドレス
データ(Xθ)U としてRA、M2O6上のあり得な
いアドレス゛’FF”が指定されている場合には、RA
M206は書込動作を行わないため、実質的にRAM2
06への転送データ(Xθ)l の転送は行われない。
の有効なアドレスを指定している場合には、RAM20
6は前述したようにして5CPU内部RAM書込データ
バスD。。tから入力する転送データ(Xθ)! を選
択し、これを上記アドレスに書き込む。一方、アドレス
データ(Xθ)U としてRA、M2O6上のあり得な
いアドレス゛’FF”が指定されている場合には、RA
M206は書込動作を行わないため、実質的にRAM2
06への転送データ(Xθ)l の転送は行われない。
以上のステップ5−1−3及び5−1 ”1のデータ転
送処理が、ステップ5−1−6において変数θΦ値がN
に等しいと判定されるまで、θの値がステップ5−1−
7で+1ずつされながら繰り返される。ステップ5−1
−6での判定演算は、第5B図の第1の実施例の場合と
同様、MCPtJlo内のALLJ部108で行われ、
その判定結果がオペレーション制御回路112に通知さ
れる。
送処理が、ステップ5−1−6において変数θΦ値がN
に等しいと判定されるまで、θの値がステップ5−1−
7で+1ずつされながら繰り返される。ステップ5−1
−6での判定演算は、第5B図の第1の実施例の場合と
同様、MCPtJlo内のALLJ部108で行われ、
その判定結果がオペレーション制御回路112に通知さ
れる。
今、第5F図において、MCPtJloは、始め第5F
図(a)の如く第4図のメインフローを実行しているが
、第5F図〜)の如くインタラブド発生部115からイ
ンタラブド信号INTが入力すると、MCPUIOでの
処理は第5D図のMCPUインタラブド処理に移行する
。そして、MCPUIOのオペレーション制御回路11
2から制御信号CNTR(第2図)として、第5F図(
C)の如く転送命令信号が出力されると、MCPUIO
での処理は第5E図のデータ転送処理に移行する。
図(a)の如く第4図のメインフローを実行しているが
、第5F図〜)の如くインタラブド発生部115からイ
ンタラブド信号INTが入力すると、MCPUIOでの
処理は第5D図のMCPUインタラブド処理に移行する
。そして、MCPUIOのオペレーション制御回路11
2から制御信号CNTR(第2図)として、第5F図(
C)の如く転送命令信号が出力されると、MCPUIO
での処理は第5E図のデータ転送処理に移行する。
この後、MCPUIOのRAMアドレス制御部115が
、アドレスを第5F図(d)のようにX1〜XNまで変
化させながらRAM106に対して指定する(第5E図
ステップ5−1−2.5−1−6及び5−1−7による
)、これにより、RAM106からアドレスデータ(X
+)u〜(Xs)u及転送データ(X、)42〜(XN
)j2が出力される。この場合、前述したようにRAM
106のアドレスx1〜X8には有効な現在アドレス
値が格納されており、アドレスX、〜XNには値“FF
FF” (無効データ)が格納されている。これらN&
[lのデータが、N回のライト信号Cのパルス(第5E
図のステップ5−1 ′−1による)に同期して5CP
U20に転送されるが、5CPU20は、RAMl06
に対するアドレスX + −X sのデータが出力され
ている間は、前述したようにRAM206への転送デー
タの書き込みを行うが、RAM 106に対するアドレ
スX、〜XNのデータが出力されている間は、前述した
ようにRAM206への転送データの書き込みを行わな
い。このようにして、8チャンネル分の現在エンベロー
プ値である8つの有効な転送データ(X+)Z〜(Xs
)ffiのみが、MCPUIOのRAM 106から5
CPU20のRAM206へ転送される。
、アドレスを第5F図(d)のようにX1〜XNまで変
化させながらRAM106に対して指定する(第5E図
ステップ5−1−2.5−1−6及び5−1−7による
)、これにより、RAM106からアドレスデータ(X
+)u〜(Xs)u及転送データ(X、)42〜(XN
)j2が出力される。この場合、前述したようにRAM
106のアドレスx1〜X8には有効な現在アドレス
値が格納されており、アドレスX、〜XNには値“FF
FF” (無効データ)が格納されている。これらN&
[lのデータが、N回のライト信号Cのパルス(第5E
図のステップ5−1 ′−1による)に同期して5CP
U20に転送されるが、5CPU20は、RAMl06
に対するアドレスX + −X sのデータが出力され
ている間は、前述したようにRAM206への転送デー
タの書き込みを行うが、RAM 106に対するアドレ
スX、〜XNのデータが出力されている間は、前述した
ようにRAM206への転送データの書き込みを行わな
い。このようにして、8チャンネル分の現在エンベロー
プ値である8つの有効な転送データ(X+)Z〜(Xs
)ffiのみが、MCPUIOのRAM 106から5
CPU20のRAM206へ転送される。
上述のようにしてRAM106に対してXNまでのアド
レスが指定されると、第5C図の第1の実施例の場合と
同様、第5F図(5)の如く最後のタイミングで、MC
PUIO内の5CPUリセット制御部l34(第2図)
から5CPU20に処理開始信号Aが出力され(第5D
図のステップ5−2による)、それ以後、第1の実施例
の場合と同様にして、5CPU20は後述する5CPU
インタラブド処理の実行を開始する。
レスが指定されると、第5C図の第1の実施例の場合と
同様、第5F図(5)の如く最後のタイミングで、MC
PUIO内の5CPUリセット制御部l34(第2図)
から5CPU20に処理開始信号Aが出力され(第5D
図のステップ5−2による)、それ以後、第1の実施例
の場合と同様にして、5CPU20は後述する5CPU
インタラブド処理の実行を開始する。
MCPUIOは、上記処理に関係する第5D図のステッ
プ5−2の処理の後、ステップ5−2“において、RA
M106上のデータ転送用のアドレス領域X1〜XNに
値” F F F F ”をセットしておく。
プ5−2の処理の後、ステップ5−2“において、RA
M106上のデータ転送用のアドレス領域X1〜XNに
値” F F F F ”をセットしておく。
これは、次回のインタラブドタイミングで、有効なアド
レス領域以外に値” F F F F ”が格納されて
いるようにするための処理である。
レス領域以外に値” F F F F ”が格納されて
いるようにするための処理である。
次に、第6図は、第5A図の5−1〜5−10の音源処
理の詳細なフローを示す。本実施例においては、波形読
み出し方式の楽音合成を採用しており(他の楽音合成方
式、例えばFM合成も、実現可能であり、この発明は特
定の楽音合成方式には制限されない〕、この処理におい
ては、エンベローブデータを作成してRAM 106の
音源処理レジスタ内にストアする処理を行っている。
理の詳細なフローを示す。本実施例においては、波形読
み出し方式の楽音合成を採用しており(他の楽音合成方
式、例えばFM合成も、実現可能であり、この発明は特
定の楽音合成方式には制限されない〕、この処理におい
ては、エンベローブデータを作成してRAM 106の
音源処理レジスタ内にストアする処理を行っている。
この処理を実行するために、MCPUIOのRAM10
6内のレジスタ群には、第7図に示すように、エンベロ
ープΔχ用タイマ、目標エンベローフ、エンベロープΔ
X、Mフラグ付エンベロープ、現在エンベロープが記憶
され、この所望のレジスタ値を演算し、更新する。エン
ベロープは振幅変調のために基本波形に付加すべきもの
で、全体としていくつかのセグメント(ステップ)から
成っている。エンベロープΔXタイマと目標エンベロー
プとエンベロープΔxと加減フラグ付エンへローブΔy
は現在進行中のエンヘロープセグメントを定義するエン
ベロープパラメータであり、このエンベロープパラメー
タは、MCPUIOのメインフロー(第4図)の発音制
御処理4〜9内において、エンベロープ値がセグメント
の目標値に到達の都度、更新される情報であり、インタ
ラブド処理ルーチン(第5A図)ではこれらのエンベロ
ープパラメータはエンベロープΔXタイマを除いて単に
参照されるだけである。エンベロープΔXはエンベロー
プの演算周期を表し、目標エンベロープは現セグメント
におけるエンベロープの目標値を表し、加減フラグ付エ
ンベロープΔyは演算周期ごとのエンベロープの変化分
を表し、現在エンベロープは現在のエンベロープ値を表
す。
6内のレジスタ群には、第7図に示すように、エンベロ
ープΔχ用タイマ、目標エンベローフ、エンベロープΔ
X、Mフラグ付エンベロープ、現在エンベロープが記憶
され、この所望のレジスタ値を演算し、更新する。エン
ベロープは振幅変調のために基本波形に付加すべきもの
で、全体としていくつかのセグメント(ステップ)から
成っている。エンベロープΔXタイマと目標エンベロー
プとエンベロープΔxと加減フラグ付エンへローブΔy
は現在進行中のエンヘロープセグメントを定義するエン
ベロープパラメータであり、このエンベロープパラメー
タは、MCPUIOのメインフロー(第4図)の発音制
御処理4〜9内において、エンベロープ値がセグメント
の目標値に到達の都度、更新される情報であり、インタ
ラブド処理ルーチン(第5A図)ではこれらのエンベロ
ープパラメータはエンベロープΔXタイマを除いて単に
参照されるだけである。エンベロープΔXはエンベロー
プの演算周期を表し、目標エンベロープは現セグメント
におけるエンベロープの目標値を表し、加減フラグ付エ
ンベロープΔyは演算周期ごとのエンベロープの変化分
を表し、現在エンベロープは現在のエンベロープ値を表
す。
第6図のフローを詳細に述べると、6−1でエンベロー
プの演算周期ΔXと比較するためのタイマレジスタをイ
ンタラブドタイミングごとにインクリメントし、6−2
でΔXと一致したとき63でエンベロープ変位分のデー
タΔyの加減算フラグ(符号ビット)をテストしてエン
ベロープが上昇中が下降中かを判別し、6−4.6−5
でそれぞれ現在エンベロープの減算または加算を行う。
プの演算周期ΔXと比較するためのタイマレジスタをイ
ンタラブドタイミングごとにインクリメントし、6−2
でΔXと一致したとき63でエンベロープ変位分のデー
タΔyの加減算フラグ(符号ビット)をテストしてエン
ベロープが上昇中が下降中かを判別し、6−4.6−5
でそれぞれ現在エンベロープの減算または加算を行う。
6−6 テ現在エンヘローブが目標エンベロープ値に達
したかどうかをチエツクし、達しておれば、6−7で現
在エンベロープに目標レベルをセットする。これにより
メインプログラムの発音制御処理4−9で次のエンベロ
ープステップのデータがセットされることになる。また
発音制御処理4−9で値0の現在エンベロープを読んだ
ときには発音の終了として処理される。このあと6−8
で生成された現在エンベロープ値をRAM 106(7
)1源処理レジスタ内で対応するチャンネルの領域にス
トアする。
したかどうかをチエツクし、達しておれば、6−7で現
在エンベロープに目標レベルをセットする。これにより
メインプログラムの発音制御処理4−9で次のエンベロ
ープステップのデータがセットされることになる。また
発音制御処理4−9で値0の現在エンベロープを読んだ
ときには発音の終了として処理される。このあと6−8
で生成された現在エンベロープ値をRAM 106(7
)1源処理レジスタ内で対応するチャンネルの領域にス
トアする。
続いて、第8図は、5CPU20のインタラブド処理ル
ーチンのフローを示す。このルーチンは第5A図又は第
5D図のMCPUインタラブド処理のステップ5−2に
おいて出力される処理開始信号Aに同期してスタートす
るものである。
ーチンのフローを示す。このルーチンは第5A図又は第
5D図のMCPUインタラブド処理のステップ5−2に
おいて出力される処理開始信号Aに同期してスタートす
るものである。
8−1で波形加算用RAM領域(RAM206内)をク
リアし、8−2〜8−9で第1チャンネルから第8チヤ
ンネルまでの各チャンネル音源々理を順次実行する6各
ヂヤンネル音源処理(DRtで、チャンネルの楽音波形
値が波形加算用RAlV領域のデータに加算される。こ
のあと8−104゜おいて波形加算用RAMのデータを
DACに出プし、8−11においてオペレーション制御
回路212は終了信号Bを出力する。この信号BはM〔
PUIOの5CPUリセット制御部134に入)し、処
理開始信号Aの出力を停止させる。この釈果、5CPU
20の動作は停止する。
リアし、8−2〜8−9で第1チャンネルから第8チヤ
ンネルまでの各チャンネル音源々理を順次実行する6各
ヂヤンネル音源処理(DRtで、チャンネルの楽音波形
値が波形加算用RAlV領域のデータに加算される。こ
のあと8−104゜おいて波形加算用RAMのデータを
DACに出プし、8−11においてオペレーション制御
回路212は終了信号Bを出力する。この信号BはM〔
PUIOの5CPUリセット制御部134に入)し、処
理開始信号Aの出力を停止させる。この釈果、5CPU
20の動作は停止する。
第9図は、第8図のステ・ンプ8−2〜8−9c各チャ
ンネル音源処理の詳細なフローを示す。ここにおいては
、各チャンネルの波形処理を行うとともにMCPUIO
のインタラブド処理ルーヂン(第5A、5B図又は第5
D、5B図、及び第6図)において生成されたエンベロ
ープデータに郡づいてエンベロープ機能を付加するもの
である。
ンネル音源処理の詳細なフローを示す。ここにおいては
、各チャンネルの波形処理を行うとともにMCPUIO
のインタラブド処理ルーヂン(第5A、5B図又は第5
D、5B図、及び第6図)において生成されたエンベロ
ープデータに郡づいてエンベロープ機能を付加するもの
である。
ここでの波形処理は、現在アドレスの整数部を使って基
本波形メモリから隣り合う2つアドレスの波形データを
読み出し、(整数部子小数部)で示される現在アドレス
に対して想定される波形値を補間で求めている。補間が
必要な理由は、タイマインタラブドによる波形サンプリ
ング周期が一定であり、アドレスの加算値(ピッチデー
タ)が楽器への応用上、ある音域にわたるためである(
音階音しか出力しない楽器で音階音ごとに波形データを
用意すれば補間の必要はないが許容できない記憶容量の
増大となる)。補間による音色の劣化、歪みは高音域の
方が著しいため、原音の記録サンプリング周期より高速
の周期で原音を再生するのが好ましい。この実施例では
原音再生の周期を2倍にしている(第10図)、シたが
って、アドレス加算値が0.5のとき、A4の音が得ら
れるようになっている。この場合、A#4ではアドレス
加算値は0.529となり、A3のとき、1となる。こ
れらのアドレス加算値はピッチデータとして制御データ
兼波形外部メモリ90(第1図)内に記憶されている。
本波形メモリから隣り合う2つアドレスの波形データを
読み出し、(整数部子小数部)で示される現在アドレス
に対して想定される波形値を補間で求めている。補間が
必要な理由は、タイマインタラブドによる波形サンプリ
ング周期が一定であり、アドレスの加算値(ピッチデー
タ)が楽器への応用上、ある音域にわたるためである(
音階音しか出力しない楽器で音階音ごとに波形データを
用意すれば補間の必要はないが許容できない記憶容量の
増大となる)。補間による音色の劣化、歪みは高音域の
方が著しいため、原音の記録サンプリング周期より高速
の周期で原音を再生するのが好ましい。この実施例では
原音再生の周期を2倍にしている(第10図)、シたが
って、アドレス加算値が0.5のとき、A4の音が得ら
れるようになっている。この場合、A#4ではアドレス
加算値は0.529となり、A3のとき、1となる。こ
れらのアドレス加算値はピッチデータとして制御データ
兼波形外部メモリ90(第1図)内に記憶されている。
そして、押鍵時には前に述べたように第4図の発音制御
処理4−9において、鍵に対応するピッチデータと選択
されている音色の波形スタートアドレス、波形エンドア
ドレス及び波形ループアドレスがRAM106へ、そ(
−7でRAM106からRAM206の対応するレジス
タ、すなわち、アドレス加算値レジスタ、スタートアド
レス兼アドレスレジスタ、エンドアドレスレジスタ、ル
ープアドレスレジスタにセットされる(第7図及び第1
1図参照)。
処理4−9において、鍵に対応するピッチデータと選択
されている音色の波形スタートアドレス、波形エンドア
ドレス及び波形ループアドレスがRAM106へ、そ(
−7でRAM106からRAM206の対応するレジス
タ、すなわち、アドレス加算値レジスタ、スタートアド
レス兼アドレスレジスタ、エンドアドレスレジスタ、ル
ープアドレスレジスタにセットされる(第7図及び第1
1図参照)。
参考までに、第10図に時間に対する補間波形データを
示す。図中、白丸は基本波形メモリの記憶場所にある波
形データ値、×印は補間値を含む出力サンプルを示して
いる。
示す。図中、白丸は基本波形メモリの記憶場所にある波
形データ値、×印は補間値を含む出力サンプルを示して
いる。
補間方式はいる。いろあるが、ここでは直線補間を採用
している。第9図のフローについて詳細に述べると、ま
ず、9−1で現在アドレスにアドレス加算値を加算して
新し、い現在アドレスを得る。
している。第9図のフローについて詳細に述べると、ま
ず、9−1で現在アドレスにアドレス加算値を加算して
新し、い現在アドレスを得る。
9−2で現在アト!、・スとエンドア(ルスを比較し、
現在アドレス〉エンドアトl、・スならば、9−3.9
−4により、現在アトI/スくエンドアドレスのときは
9−5により、物理上(番地上)または論理上(動作−
L)の次のアドレスを計算1,5.9−7でその整数部
により基本波形メモリをアクセスして次回波形データを
得る。ループアドレスは動作エンドアドレスの次のアド
レスである。すなわち、第10回の場合、図示の波形は
繰り返し読み出される。したがって、現在アドレス−エ
ンドアドレスのときは次のアドレスとしてループアドレ
スの波形データを読み出す(9〜6)。9−8.9−9
により、現在アドレスの整数部で基本波形をアクセスし
、て今回の波形データを読み出す。次に、9−10で次
回波形値から今回波形値を減算し、9−11でその差に
現在アドレスの小数部を乗算し、その結果を9−12で
今回の波形値に加えることにより、波形の直線補間値を
求める。この直線補間したデータに現在エンベロープ値
を乗算してチャンネルの楽音データ値を得(9−13)
、それを波形加算用レジスタの内容に加えて楽音データ
を累算する(9−14)、このレジスタに累算されたデ
ジタル楽音データが、S CP Uインタラブド処理ル
ーチン(第8図)の8−10でDAciooに送出され
る。これに関連し、第1図ではDAC100はステレオ
出力を得るべく右DAC100Rと左DAC100Lか
ら成っている。
現在アドレス〉エンドアトl、・スならば、9−3.9
−4により、現在アトI/スくエンドアドレスのときは
9−5により、物理上(番地上)または論理上(動作−
L)の次のアドレスを計算1,5.9−7でその整数部
により基本波形メモリをアクセスして次回波形データを
得る。ループアドレスは動作エンドアドレスの次のアド
レスである。すなわち、第10回の場合、図示の波形は
繰り返し読み出される。したがって、現在アドレス−エ
ンドアドレスのときは次のアドレスとしてループアドレ
スの波形データを読み出す(9〜6)。9−8.9−9
により、現在アドレスの整数部で基本波形をアクセスし
、て今回の波形データを読み出す。次に、9−10で次
回波形値から今回波形値を減算し、9−11でその差に
現在アドレスの小数部を乗算し、その結果を9−12で
今回の波形値に加えることにより、波形の直線補間値を
求める。この直線補間したデータに現在エンベロープ値
を乗算してチャンネルの楽音データ値を得(9−13)
、それを波形加算用レジスタの内容に加えて楽音データ
を累算する(9−14)、このレジスタに累算されたデ
ジタル楽音データが、S CP Uインタラブド処理ル
ーチン(第8図)の8−10でDAciooに送出され
る。これに関連し、第1図ではDAC100はステレオ
出力を得るべく右DAC100Rと左DAC100Lか
ら成っている。
この場合、5CPU20の処理する発音チャンネルの夫
々を左右のDACのいずれに割り当てるかを決めるよう
にするとよい。具体的には、各チャンネル用の音源デー
タとして内部RAM206上に、選択DAC指示データ
をもたせ、また、2つの波形加算用領域、即ち、左DA
C用波形加算用領域と左DAC用波形加算用領域を設け
る。また、8−1に対応するステップで左右のDAC用
の各波形加算用領域をクリアし、9−13の処理の後、
処理チャンネルに割り当てているDACを選択DAC指
示データから判別し、対応する波形加算用領域に処理チ
ャンネルの楽音波形データを加算する。そして、5CP
U20のインタラブド処理ルーチン(第8図)のステッ
プ8〜10に対応するステップで、加算結果である左D
AC用と右DAC用の楽音波形データを5−5に相当す
るステップで、それぞれ左DAC100Lと右DAC1
00Rに送出する。
々を左右のDACのいずれに割り当てるかを決めるよう
にするとよい。具体的には、各チャンネル用の音源デー
タとして内部RAM206上に、選択DAC指示データ
をもたせ、また、2つの波形加算用領域、即ち、左DA
C用波形加算用領域と左DAC用波形加算用領域を設け
る。また、8−1に対応するステップで左右のDAC用
の各波形加算用領域をクリアし、9−13の処理の後、
処理チャンネルに割り当てているDACを選択DAC指
示データから判別し、対応する波形加算用領域に処理チ
ャンネルの楽音波形データを加算する。そして、5CP
U20のインタラブド処理ルーチン(第8図)のステッ
プ8〜10に対応するステップで、加算結果である左D
AC用と右DAC用の楽音波形データを5−5に相当す
るステップで、それぞれ左DAC100Lと右DAC1
00Rに送出する。
第12図は、第1図に示されるDAC]、OOR又は1
00Lの構成例を示す。
00Lの構成例を示す。
本実施例においてDAC100は5CPtJ20が生成
したデジタル楽音信号をアナログ楽音信号に変換するも
のである。第8図の8−10に示すように、5CPU2
0はタイマインタラブド処理ルーチンのなかで、S C
P ’U 20が構成したデジタル楽音信号のサンプル
をDACi OOにセットする。この処理8−10の実
行間隔は平均としてはタイマインタラブド発生部116
の発生するインタラブド信号INTの発生間隔に等しい
が、実際の実行間隔はプログラム動作のために変動する
。
したデジタル楽音信号をアナログ楽音信号に変換するも
のである。第8図の8−10に示すように、5CPU2
0はタイマインタラブド処理ルーチンのなかで、S C
P ’U 20が構成したデジタル楽音信号のサンプル
をDACi OOにセットする。この処理8−10の実
行間隔は平均としてはタイマインタラブド発生部116
の発生するインタラブド信号INTの発生間隔に等しい
が、実際の実行間隔はプログラム動作のために変動する
。
したがって、処理8−10の実行間隔をD/A変換の変
換周期としてD/A変換を行ったとするとアナログ楽音
信号に大きな歪みが生じてしまう。
換周期としてD/A変換を行ったとするとアナログ楽音
信号に大きな歪みが生じてしまう。
この問題は第12図に示すような構成をとることにより
解決される。すなわち、オペレーション制御回路112
からのプログラム制御信号によって制御されるソフト制
御ランチ1004と、デジタル楽音信号をアナログ楽音
信号に変換するD/A変換器1002との間に、インタ
ラブド発生部116(第2図参照)からの正確なタイミ
ング信号であるインタラブド信号INTで制御されるイ
ンタラブド制御ラッチ1006を設ける。インタラブド
信号の発生周期はクロック発振器の安定度に従うので極
めて安定である。ラッチ1006の出力はインタラブド
信号のタイミングに同期して切り換わる。すなわち、イ
ンタラブド信号の発生周期がD/A変換器1002の変
換(サンプリング)周期となる。従って、ランチ100
4の出力が切り換わるタイミングはインタラブド処理の
タイミングずれに従って変動するがインタラブド信号で
動作するラッチ1006があるのでD/A変換器100
20入カデータが切り換るタイミングはインタラブド信
号と同期する。
解決される。すなわち、オペレーション制御回路112
からのプログラム制御信号によって制御されるソフト制
御ランチ1004と、デジタル楽音信号をアナログ楽音
信号に変換するD/A変換器1002との間に、インタ
ラブド発生部116(第2図参照)からの正確なタイミ
ング信号であるインタラブド信号INTで制御されるイ
ンタラブド制御ラッチ1006を設ける。インタラブド
信号の発生周期はクロック発振器の安定度に従うので極
めて安定である。ラッチ1006の出力はインタラブド
信号のタイミングに同期して切り換わる。すなわち、イ
ンタラブド信号の発生周期がD/A変換器1002の変
換(サンプリング)周期となる。従って、ランチ100
4の出力が切り換わるタイミングはインタラブド処理の
タイミングずれに従って変動するがインタラブド信号で
動作するラッチ1006があるのでD/A変換器100
20入カデータが切り換るタイミングはインタラブド信
号と同期する。
第13図は、時間の流れに沿う本実施例の動作の流れを
示すタイムチャートである。この図かられかるように、
インタラブド信号■NTが発生すると、MCPUl、0
はメインフローの実行を中断し、インタラブド処理ルー
チンを実行する。ここにおいて、初めに5CPU20に
データを転送し、ごのデータ転送が終了すると5CPU
20に動作処理開始信号Aを出力する。そしてそのあと
エンベロープ処理を行う。5CPtJ20は、信号Aを
受けて波形データピッチ補間、エンベローブ乗算の処理
を行う。そして処理が終了すると待機状態となる。
示すタイムチャートである。この図かられかるように、
インタラブド信号■NTが発生すると、MCPUl、0
はメインフローの実行を中断し、インタラブド処理ルー
チンを実行する。ここにおいて、初めに5CPU20に
データを転送し、ごのデータ転送が終了すると5CPU
20に動作処理開始信号Aを出力する。そしてそのあと
エンベロープ処理を行う。5CPtJ20は、信号Aを
受けて波形データピッチ補間、エンベローブ乗算の処理
を行う。そして処理が終了すると待機状態となる。
このように、本実施例の電子楽器用処理装置はMCPU
IOと5CPU20という複数のCPUを有し、内蔵さ
れるプログラムに従ってひとつの音の音源処理を各CP
LIで分割して実行することができる。なお実施例では
1つの5CPUを使用しているが、音源処理を行う複数
の5CPUを設けるようにしてもよい。
IOと5CPU20という複数のCPUを有し、内蔵さ
れるプログラムに従ってひとつの音の音源処理を各CP
LIで分割して実行することができる。なお実施例では
1つの5CPUを使用しているが、音源処理を行う複数
の5CPUを設けるようにしてもよい。
以上で実施例の説明を終えるが、この発明の範囲内で種
々の変形、変更が可能である。
々の変形、変更が可能である。
例えば、前述の実施例ではひとつの音についての音源処
理を、MCPtJloではエンベロープ処理を、5CP
U20では波形処理をというように分担しているが、こ
の各CPUの分担を、MCPUIOではシステムの全体
制御のみを、5cpu20は音源処理すべてと、分担を
変更することも可能である。
理を、MCPtJloではエンベロープ処理を、5CP
U20では波形処理をというように分担しているが、こ
の各CPUの分担を、MCPUIOではシステムの全体
制御のみを、5cpu20は音源処理すべてと、分担を
変更することも可能である。
第14図〜第17図は、この変形例の動作を示すフロー
チャート及びタイムチャートを示す。
チャート及びタイムチャートを示す。
ここにおいて特徴的なことは、5CPU20のみで音源
処理を行い、MCPUIOではキースキャン、伴奏パタ
ーン発生、チャンネル割当等の全体制御処理を行うこと
である。そしてMCPUIOはこれら全体制御処理をメ
インフローで行い、インタラブド信号発生にて行われる
インクラブド処理ルーチンにおいて、MCPUIOから
5CPU20のRAM206の音源処理レジスタ(第1
8図)へのデータ転送を行うようになっている。
処理を行い、MCPUIOではキースキャン、伴奏パタ
ーン発生、チャンネル割当等の全体制御処理を行うこと
である。そしてMCPUIOはこれら全体制御処理をメ
インフローで行い、インタラブド信号発生にて行われる
インクラブド処理ルーチンにおいて、MCPUIOから
5CPU20のRAM206の音源処理レジスタ(第1
8図)へのデータ転送を行うようになっている。
さらに、このデータ転送は、例えばデータの値が前に転
送されたデータと比べて変わった場合等、データ転送が
必要な場合のみ行われるようになっている。
送されたデータと比べて変わった場合等、データ転送が
必要な場合のみ行われるようになっている。
第14図は、MCPUIOのメインフローを示す。図に
おいで、第4図と同一のステップは、第4図と同一番号
を付して説明を省略する。
おいで、第4図と同一のステップは、第4図と同一番号
を付して説明を省略する。
ステップ4−9の発音制御処理において、各チャンネル
に対応するRAM106の領域に必要なデータを記憶し
たあと、14−1において、これらのデータにうち、例
えば前に転送したデータと比べて変化したものがあるか
否か等、5CPU20の転送すべきデータがあるかどう
か判断する。
に対応するRAM106の領域に必要なデータを記憶し
たあと、14−1において、これらのデータにうち、例
えば前に転送したデータと比べて変化したものがあるか
否か等、5CPU20の転送すべきデータがあるかどう
か判断する。
ここで、有りと判断されると14−2において転送フラ
グ(RAM 106上に設けられる)をセットし、なし
と判断されると14〜3において転送フラグをリセット
して、4−10に移る。このフローの動作は、インタラ
ブド信号INTが発生するまで続き、信号INTが発生
するとMCPUインタラブド処理ルーチンに移る。
グ(RAM 106上に設けられる)をセットし、なし
と判断されると14〜3において転送フラグをリセット
して、4−10に移る。このフローの動作は、インタラ
ブド信号INTが発生するまで続き、信号INTが発生
するとMCPUインタラブド処理ルーチンに移る。
第15A図は、MCPUインタラブド処理ルーチンの第
1の実施例のフローを示す。
1の実施例のフローを示す。
まず15−1において、5CPU20の動作が完了して
いるかどうか判断する。具体的にはMCPUIOから処
理開始用信号Aが出力しているかどうかを判断するもの
であり、もし信号Aが発生しているならこのステップで
待機し、信号Aが発生していないなら、次のステップ1
5−2に進む。
いるかどうか判断する。具体的にはMCPUIOから処
理開始用信号Aが出力しているかどうかを判断するもの
であり、もし信号Aが発生しているならこのステップで
待機し、信号Aが発生していないなら、次のステップ1
5−2に進む。
工5−2においては、前述の転送フラグがセットされて
いるか否か判断する。もしセントされているなら、15
−3において5CPU20へ音源処理に必要なデータ(
例えば、モジュレーションホイール等からの変調データ
など)を転送する。
いるか否か判断する。もしセントされているなら、15
−3において5CPU20へ音源処理に必要なデータ(
例えば、モジュレーションホイール等からの変調データ
など)を転送する。
ここでのデータ転送処理は、前述の第5B図のフローと
同じフローで示される処理である。ここでは、前述した
ように、データ転送に必要のないRAM106上のアド
レス領域に値0のデータを格納しておき、RAM 10
6から値0のデータが読み出されたときには5CPtJ
20へ供給されるべきライト信号Cを出力しないように
制御を行うことにより、簡単な制御でMCPUIOのR
AM106上の有効なデータのみを5CPU20のRA
M206に転送することができる。
同じフローで示される処理である。ここでは、前述した
ように、データ転送に必要のないRAM106上のアド
レス領域に値0のデータを格納しておき、RAM 10
6から値0のデータが読み出されたときには5CPtJ
20へ供給されるべきライト信号Cを出力しないように
制御を行うことにより、簡単な制御でMCPUIOのR
AM106上の有効なデータのみを5CPU20のRA
M206に転送することができる。
続いて転送フラグをリセットする(15−4)。
一方、15−2で転送フラグがリセットされていると判
断されたなら、上記15−3、l5−4のステップの処
理は行わない。
断されたなら、上記15−3、l5−4のステップの処
理は行わない。
そして次の15−5において、5CPU20へ処理開始
信号Aを出力する。これは、第5A図のステップ5−2
での処理と同じである。
信号Aを出力する。これは、第5A図のステップ5−2
での処理と同じである。
更に、ステップ15−6において、RAMl06上のデ
ータ転送用のアドレス領域X1〜XNにioをセントし
ておく。これは、ステップ15−3でのデータ転送処理
に対応する準備処理であり、前述の第5A図のステップ
5−2′での処理と同じである。
ータ転送用のアドレス領域X1〜XNにioをセントし
ておく。これは、ステップ15−3でのデータ転送処理
に対応する準備処理であり、前述の第5A図のステップ
5−2′での処理と同じである。
加えて、ステップ15−7において、インタラブドタイ
マ処理を行う。これは、前述の第5A図のステップ5−
11での処理と同じである。
マ処理を行う。これは、前述の第5A図のステップ5−
11での処理と同じである。
以上の処理の後に、第14図のメインフローに戻る。
第15B図は、MCPUインクラブド処理ルーチンの第
2の実施例のフローを示す。
2の実施例のフローを示す。
第15A図のフローと異なる点は、ステップ15−3′
のデータ転送処理及びステップ15−6′の処理である
。
のデータ転送処理及びステップ15−6′の処理である
。
すなわち、ステップ15−3’でのデータ転送処理は、
前述の第5E図のフローと同じフローで示される処理で
ある。ここでは、前述したように、データ転送に必要の
ないRAM106上のアドレス領域には、RAM206
上のあり得ないアドレスを指定するアドレスデータを格
納しておき、このデータが5CPU20に転送されても
、5CP020がRAM206への書き込みを行わない
ように制御を行うことにより、単純な制御で、MCPU
IOのRAM106から5CPU20のRAM206へ
必要なデータのみを適切に転送できる。
前述の第5E図のフローと同じフローで示される処理で
ある。ここでは、前述したように、データ転送に必要の
ないRAM106上のアドレス領域には、RAM206
上のあり得ないアドレスを指定するアドレスデータを格
納しておき、このデータが5CPU20に転送されても
、5CP020がRAM206への書き込みを行わない
ように制御を行うことにより、単純な制御で、MCPU
IOのRAM106から5CPU20のRAM206へ
必要なデータのみを適切に転送できる。
ステップ15−6′では、RAM106上のデータ転送
用のアドレス領域X1〜XNに値”FFFF”をセット
しておく。これは、ステップ15−3’でのデータ転送
処理に対応する準備処理であり、前述の第5D図のステ
ップ5−2“での処理と同じである。
用のアドレス領域X1〜XNに値”FFFF”をセット
しておく。これは、ステップ15−3’でのデータ転送
処理に対応する準備処理であり、前述の第5D図のステ
ップ5−2“での処理と同じである。
次に、5CPU20は、MCPUIOからの動作開始信
号を受けて、動作を開始する。第16図はこの5CPU
20の動作を示すフローチャートである。まず、16−
1において、MCPUIOから転送されたデータに基づ
き楽音信号データを生成してDAC100に出力する。
号を受けて、動作を開始する。第16図はこの5CPU
20の動作を示すフローチャートである。まず、16−
1において、MCPUIOから転送されたデータに基づ
き楽音信号データを生成してDAC100に出力する。
これは例えば第6図及び第9図のフローチャートを合わ
せた処理がなされる。そしてこのあと、16−2におい
て、MCPUIOに動作終了信号Bを送出する。
せた処理がなされる。そしてこのあと、16−2におい
て、MCPUIOに動作終了信号Bを送出する。
MCPUIOはこの信号Bを受けて信号Aを停止させ、
5CPU20の動作を停止させる。
5CPU20の動作を停止させる。
第17図は、この変形例の動作の流れを示すタイムチャ
ートである。この図かられかるように、MCPUIOは
、インタラブド信号rNT発生によってインタラブドフ
ローを実行し、その動作中において5CPU20にデー
タを転送するとともに動作開始を指示する。5CPU2
0は、この動作開始指示により動作を開始し、楽音デー
タを生成し、DACL OOにデータを送出する。DA
Clooは、この5CPU20からの楽音生成データを
その後のインタラブド信号発生時にD/A変換して出力
するように構成されている。なお、この変形例ではMC
PUIOのインタラブド処理ルーチンにおいてM CP
tJ 10からSCP[J20にデータを全て転送し
ていたが、前述の実施例のような5CPU20が動作し
ていない間にMCPUloのメインフロー動作期間にデ
ータを転送してもよい。
ートである。この図かられかるように、MCPUIOは
、インタラブド信号rNT発生によってインタラブドフ
ローを実行し、その動作中において5CPU20にデー
タを転送するとともに動作開始を指示する。5CPU2
0は、この動作開始指示により動作を開始し、楽音デー
タを生成し、DACL OOにデータを送出する。DA
Clooは、この5CPU20からの楽音生成データを
その後のインタラブド信号発生時にD/A変換して出力
するように構成されている。なお、この変形例ではMC
PUIOのインタラブド処理ルーチンにおいてM CP
tJ 10からSCP[J20にデータを全て転送し
ていたが、前述の実施例のような5CPU20が動作し
ていない間にMCPUloのメインフロー動作期間にデ
ータを転送してもよい。
このように、この変形例においては、MCPUlOでは
全体の制御処理を、5CPU20では音源の処理を、と
いうように分割して実行している。
全体の制御処理を、5CPU20では音源の処理を、と
いうように分割して実行している。
このため、今までハードウェアで構成されていた音源を
1つのCPUで構成しているため、音源の特性の変更は
非常に容易となり、また他の楽器の音源用として用いる
場合でも、ハード的な構成を変更することなく容易にで
きる。また、ここにおいては5CPU20は1個のみ用
いているが、複数の音源処理用として5CPU20を複
数個設けることが可能であることは言うまでもない。
1つのCPUで構成しているため、音源の特性の変更は
非常に容易となり、また他の楽器の音源用として用いる
場合でも、ハード的な構成を変更することなく容易にで
きる。また、ここにおいては5CPU20は1個のみ用
いているが、複数の音源処理用として5CPU20を複
数個設けることが可能であることは言うまでもない。
本発明によれば、複数のCPUが各々のプログラムに従
って夫々動作して楽音信号の生成処理の各部を分担して
行うので従来のような専用構造の音源回路ハードウェア
に較ることなく音源としての能力の高い電子楽器用処理
装置を提供することができる。また、装置の機能の追加
、変更は基本的に各CPUで実行するプログラムを変更
することによって達成し得、大幅なハードウェア回路の
変更を必要としない。特に、本発明によれば、各CPt
Jが処理する内容が目的に応じて変化することにより、
任意のCPtJから他のCPtJに転送されるべき転送
データの数が変化しても、簡単な制御で効率的なデータ
転送を行うことが可能となる。
って夫々動作して楽音信号の生成処理の各部を分担して
行うので従来のような専用構造の音源回路ハードウェア
に較ることなく音源としての能力の高い電子楽器用処理
装置を提供することができる。また、装置の機能の追加
、変更は基本的に各CPUで実行するプログラムを変更
することによって達成し得、大幅なハードウェア回路の
変更を必要としない。特に、本発明によれば、各CPt
Jが処理する内容が目的に応じて変化することにより、
任意のCPtJから他のCPtJに転送されるべき転送
データの数が変化しても、簡単な制御で効率的なデータ
転送を行うことが可能となる。
すなわち、本発明の第1の態様によれば、転送元CPU
のデータ転送制御手段が転送データ記憶手段から転送デ
ータを読み出す場合に、無効データが読み出された場合
には、転送先CPUに書込信号を出力しないように制御
することにより、転送データ数が変化しても、単純な制
御で、転送元CPUから転送先CPUへ必要なデータの
みを適切に転送することが可能となる。
のデータ転送制御手段が転送データ記憶手段から転送デ
ータを読み出す場合に、無効データが読み出された場合
には、転送先CPUに書込信号を出力しないように制御
することにより、転送データ数が変化しても、単純な制
御で、転送元CPUから転送先CPUへ必要なデータの
みを適切に転送することが可能となる。
また、本発明の第2の態様によれば、データ転送に必要
のない転送データ記憶手段上の領域には転送先CPU上
の無効アドレスを指定するアドレスデータを格納してお
くことにより、転送先CPUでは、同CPU上のRAM
等の無効なアドレスデータが転送されてきた場合には、
それに対応して転送されてきた転送データを取り込まな
いため、転送データ数が変化しても、単純な制御で、転
送元CPUから転送先CPUへ必要なデータのみを適切
に転送することが可能となる。
のない転送データ記憶手段上の領域には転送先CPU上
の無効アドレスを指定するアドレスデータを格納してお
くことにより、転送先CPUでは、同CPU上のRAM
等の無効なアドレスデータが転送されてきた場合には、
それに対応して転送されてきた転送データを取り込まな
いため、転送データ数が変化しても、単純な制御で、転
送元CPUから転送先CPUへ必要なデータのみを適切
に転送することが可能となる。
第1図は、本発明を適用した電子楽器用処理装置の全体
構成図、 第2図は、第1図のMCPUのブロック図、第3図は、
第1図の5CPUのブロック図、第4図は、MCPUの
実行するメインプログラムのフローチャート、 第5A図は、M CP tJの実行するインタラブド処
理ルーチンの第1の実施例のフローチャート、第5B図
は、データ転送処理の第1の実施例のフローチャート、 第5C図は、MCPUの実行するインタラブド処理ルー
チンの第1の実施例における動作タイミングチャートの
一例を示した図、 第5D図は、MCPtJの実行するインタラブド処理ル
ーチンの第2の実施例のフローチャート、第5E図は、
データ転送処理の第2の実施例のフローチャート、 第5F図は、MCPUの実行するインタラブド処理ルー
チンの第2の実施例における動作タイミングチャートの
一例を示した図、 第6図は、第5A図又は第5D図のチャンネル毎音源処
理の詳細なフローチャート、 第7図は、MCPUの音源処理用RAMテーブルを示す
図、 第8図は、5CPUの実行するインタラブド処理ルーチ
ンのフローチャート、 第9図は、第8図のチャンネル毎音源処理の詳細なフロ
ーチャート、 第10図は、波形データを示す図、 第11図は、5CPUの音源処理用RAMテーブルを示
す図、 第12図は、DACの構成図、 第13図は、時間経過に沿う実施例の動作を示すタイム
チャート、 第14図は、本発明の変形例におけるMCPUのメイン
ルーチンのフローチャート、 第15A図は、変形例におけるMCPUのインタラブド
処理ルーチンの第1の実施例のフローチャート、 第15B図は、変形例におけるMCPUのインタラブド
処理ルーチンの第2の実施例のフローチャート、 第16図は、変形例における5CPUのインタラブド処
理ルーチンのフローチャート、第17図は、時間経過に
沿う変形例の動作を示すタイムチャート、 第18図は、変形例における5CPUの音源処理用RA
Mテーブルを示す図である。 10・・・MCPU (メインCPU)、20・・・5
CPU (サブCPU)、102・・・制御用ROM
(MCPUプログラム記憶手段)、 106・・・RAM (MCPUデータ記憶手段)、1
08・・・ALU部(MCPU演算処理回路手段)、 110・・・乗算器(MCPU演算処理回路手段)、1
12・・・オペレーション制御回路(MCPUオペレー
ション制御回路手段)、 114・・・ROMアドレス制御部(MCPUアドレス
制御回路手段)、 202・・・制御用ROM (SCPUプログラム記憶
手段)、 206・・・RAM (SCPUデータ記憶手段)、2
08・・・ALU部(SCPU演算処理回路手段)、 210・・・乗算器(SCPU演算処理回路手段)、2
12・・・オペレーション制御回路(scpuオペレー
ション制御回路手段)、 214・・・ROMアドレス制御部(SCPUアドレス
制御回路手段)。 MCPU# TKia61イシアo′7’jL、670
−ナや−[第4図 第5A図 データ転霞幻J里の鱈1の賞施伊Jのフロー科−ト第5
B図 データ転送処J里の第2の突施伊jのフローチャート第
5E図 第5D図 DACの構バ開 第12図 注・信相の変形佇j1こx+rbMcpuの/イシ几寸
シの70−ナヤート 第14 図 変形仔・)t:h+ブろMCPLIのインタラブド処理
上〜すXの稟1の実施グク・1のフローfキード 第15A図 第2内実流榛jのフロ チャート 第15B図
構成図、 第2図は、第1図のMCPUのブロック図、第3図は、
第1図の5CPUのブロック図、第4図は、MCPUの
実行するメインプログラムのフローチャート、 第5A図は、M CP tJの実行するインタラブド処
理ルーチンの第1の実施例のフローチャート、第5B図
は、データ転送処理の第1の実施例のフローチャート、 第5C図は、MCPUの実行するインタラブド処理ルー
チンの第1の実施例における動作タイミングチャートの
一例を示した図、 第5D図は、MCPtJの実行するインタラブド処理ル
ーチンの第2の実施例のフローチャート、第5E図は、
データ転送処理の第2の実施例のフローチャート、 第5F図は、MCPUの実行するインタラブド処理ルー
チンの第2の実施例における動作タイミングチャートの
一例を示した図、 第6図は、第5A図又は第5D図のチャンネル毎音源処
理の詳細なフローチャート、 第7図は、MCPUの音源処理用RAMテーブルを示す
図、 第8図は、5CPUの実行するインタラブド処理ルーチ
ンのフローチャート、 第9図は、第8図のチャンネル毎音源処理の詳細なフロ
ーチャート、 第10図は、波形データを示す図、 第11図は、5CPUの音源処理用RAMテーブルを示
す図、 第12図は、DACの構成図、 第13図は、時間経過に沿う実施例の動作を示すタイム
チャート、 第14図は、本発明の変形例におけるMCPUのメイン
ルーチンのフローチャート、 第15A図は、変形例におけるMCPUのインタラブド
処理ルーチンの第1の実施例のフローチャート、 第15B図は、変形例におけるMCPUのインタラブド
処理ルーチンの第2の実施例のフローチャート、 第16図は、変形例における5CPUのインタラブド処
理ルーチンのフローチャート、第17図は、時間経過に
沿う変形例の動作を示すタイムチャート、 第18図は、変形例における5CPUの音源処理用RA
Mテーブルを示す図である。 10・・・MCPU (メインCPU)、20・・・5
CPU (サブCPU)、102・・・制御用ROM
(MCPUプログラム記憶手段)、 106・・・RAM (MCPUデータ記憶手段)、1
08・・・ALU部(MCPU演算処理回路手段)、 110・・・乗算器(MCPU演算処理回路手段)、1
12・・・オペレーション制御回路(MCPUオペレー
ション制御回路手段)、 114・・・ROMアドレス制御部(MCPUアドレス
制御回路手段)、 202・・・制御用ROM (SCPUプログラム記憶
手段)、 206・・・RAM (SCPUデータ記憶手段)、2
08・・・ALU部(SCPU演算処理回路手段)、 210・・・乗算器(SCPU演算処理回路手段)、2
12・・・オペレーション制御回路(scpuオペレー
ション制御回路手段)、 214・・・ROMアドレス制御部(SCPUアドレス
制御回路手段)。 MCPU# TKia61イシアo′7’jL、670
−ナや−[第4図 第5A図 データ転霞幻J里の鱈1の賞施伊Jのフロー科−ト第5
B図 データ転送処J里の第2の突施伊jのフローチャート第
5E図 第5D図 DACの構バ開 第12図 注・信相の変形佇j1こx+rbMcpuの/イシ几寸
シの70−ナヤート 第14 図 変形仔・)t:h+ブろMCPLIのインタラブド処理
上〜すXの稟1の実施グク・1のフローfキード 第15A図 第2内実流榛jのフロ チャート 第15B図
Claims (1)
- 【特許請求の範囲】 1)各CPUが各々のプログラムで動作するように構成
した複数のCPUを有し、前記複数のCPUが前記各プ
ログラムに従って各々楽音信号の生成処理の各部を分担
して実行する手段を含む電子楽器用処理装置において、
書込信号に従って転送元CPUから転送先CPUにデー
タを転送するデータ転送装置であって、 転送元CPU内に、 最大転送データ数に対応する数の転送データを保持し得
る転送データ記憶手段と、 データ転送に先立って、前記転送データ記憶手段に転送
すべきデータを設定し、該転送データ記憶手段上の記憶
領域のうち転送を行う必要のない領域には所定の無効デ
ータを設定する転送データ設定手段と、 前記転送データ記憶手段から前記最大転送データ数に対
応する数のデータを読み出し、それにより前記所定の無
効データが読み出された場合には転送先CPUに書込信
号を出力せず、それ以外のデータが読み出された場合に
は該データを書込信号と共に転送先CPUに出力するデ
ータ転送制御手段と、 前記最大転送データ数のデータの転送終了以後に、転送
先CPUに転送終了を通知する通知手段と、 を有することを特徴とする電子楽器用処理装置における
データ転送装置。 2)各CPUが各々のプログラムで動作するように構成
した複数のCPUを有し、前記複数のCPUが前記各プ
ログラムに従って各々楽音信号の生成処理の各部を分担
して実行する手段を含む電子楽器用処理装置において、
転送元CPUから転送先CPUにアドレスデータと共に
データを転送するデータ転送装置であって、 転送元CPU内に、 最大転送データ数に対応する数の転送データとそれに対
応するアドレスデータを保持し得る転送データ記憶手段
と、 データ転送に先立って、前記転送データ記憶手段に転送
すべきデータとそれに対応するアドレスデータを設定し
、該転送データ記憶手段上の記憶領域のうち転送を行う
必要のない領域には転送先CPU上の無効アドレスを指
定するアドレスデータを設定する転送データ設定手段と
、 前記転送データ記憶手段から前記最大転送データ数に対
応する数のデータを読み出して前記転送先CPUに出力
するデータ転送制御手段と、前記最大転送データ数のデ
ータの転送終了以後に、転送先CPUに転送終了を通知
する通知手段と、 を有することを特徴とする電子楽器用処理装置における
データ転送装置。 3)前記通知手段が行う前記転送先CPUへの転送終了
の通知は、該転送先CPUに対して処理開始を指示する
処理開始信号であることを特徴とする請求項1又は2の
いずれか1項に記載の電子楽器用処理装置におけるデー
タ転送装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2264310A JPH04140879A (ja) | 1990-10-02 | 1990-10-02 | 電子楽器用処理装置におけるデータ転送装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2264310A JPH04140879A (ja) | 1990-10-02 | 1990-10-02 | 電子楽器用処理装置におけるデータ転送装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04140879A true JPH04140879A (ja) | 1992-05-14 |
Family
ID=17401405
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2264310A Pending JPH04140879A (ja) | 1990-10-02 | 1990-10-02 | 電子楽器用処理装置におけるデータ転送装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04140879A (ja) |
-
1990
- 1990-10-02 JP JP2264310A patent/JPH04140879A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2765426B2 (ja) | 効果付与装置および電子楽器 | |
| JPS5865493A (ja) | 波形発生装置 | |
| JPS6381567A (ja) | 論理シミユレ−シヨン処理装置 | |
| JPH04140879A (ja) | 電子楽器用処理装置におけるデータ転送装置 | |
| EP0376342B1 (en) | Data processing apparatus for electronic musical instruments | |
| JPH0462595A (ja) | 電子楽器用処理装置 | |
| JP2797138B2 (ja) | 電子楽器用処理装置 | |
| JP2797137B2 (ja) | 電子楽器用処理装置 | |
| JPH0331273B2 (ja) | ||
| JPS621030A (ja) | カウンタ回路 | |
| JP3087631B2 (ja) | 効果付与装置 | |
| JPH07325581A (ja) | 楽音発生装置 | |
| JPH0460746A (ja) | デジタルマイクロコンピュータ | |
| JP3116447B2 (ja) | デジタル信号処理プロセッサ | |
| JPH0460723A (ja) | デジタルマイクロコンピュータ | |
| JPH0460725A (ja) | デジタルマイクロコンピュータ | |
| JPH0460744A (ja) | デジタルマイクロコンピュータ | |
| JPH0746960Y2 (ja) | 楽音合成装置 | |
| JPH0460749A (ja) | デジタルマイクロコンピュータ | |
| JP2888844B2 (ja) | 楽音信号発生装置 | |
| JPH0421199B2 (ja) | ||
| JP2809275B2 (ja) | 波形信号出力装置 | |
| JPS5839B2 (ja) | 電子楽器 | |
| JPH0460698A (ja) | 楽音波形発生装置 | |
| JPH02179694A (ja) | 処理装置 |