JP2946762B2 - 楽音波形発生装置 - Google Patents

楽音波形発生装置

Info

Publication number
JP2946762B2
JP2946762B2 JP2416902A JP41690290A JP2946762B2 JP 2946762 B2 JP2946762 B2 JP 2946762B2 JP 2416902 A JP2416902 A JP 2416902A JP 41690290 A JP41690290 A JP 41690290A JP 2946762 B2 JP2946762 B2 JP 2946762B2
Authority
JP
Japan
Prior art keywords
data
address
sound source
processing
mcpu
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
JP2416902A
Other languages
English (en)
Other versions
JPH04242798A (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.)
KASHIO KEISANKI KK
Original Assignee
KASHIO KEISANKI KK
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 KASHIO KEISANKI KK filed Critical KASHIO KEISANKI KK
Priority to JP2416902A priority Critical patent/JP2946762B2/ja
Publication of JPH04242798A publication Critical patent/JPH04242798A/ja
Application granted granted Critical
Publication of JP2946762B2 publication Critical patent/JP2946762B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、楽音波形発生装置にお
ける音源処理方式に関し、更に詳しくは、音源処理を複
数のプロセッサでソフトウエア処理として実行する楽音
波形発生装置に関する。
【0002】
【従来の技術】ディジタル信号処理技術とLSI処理技
術の発達により性能の良い様々な電子楽器が実現されて
いる。
【0003】電子楽器の楽音波形発生装置は、大量かつ
高速のディジタル演算が必要なため、従来は、必要とす
る音源方式に基づく楽音発生アルゴリズムと等価なアー
キテクチャをハードウエアで実現した専用の音源回路に
よって構成されていた。そのため、ハードウエア規模が
大きくなってしまい、また、音源方式の自由な変更が困
難であり、更に、このような楽音波形発生装置を電子楽
器として実現するような場合に、演奏情報に対する処理
と音源に対する処理の両方を同期させて行うための制御
が複雑となり、その開発において多大なコストアップを
招いていた。
【0004】その一方、近年においては、汎用のデータ
処理を行うための高性能なマイクロプロセッサが多く実
現されており、このようなマイクロプロセッサを使用し
て音源処理をソフト的に行う楽音波形発生装置を実現さ
せることも考えられる。
【0005】このような方式では、例えば1つの主プロ
セッサ(マスタープロセッサ)が、通常、演奏情報処理
プログラムを実行して演奏操作に基づいて鍵盤等から発
生する演奏情報を処理し、所定の時間間隔で割り込みが
かかることによって、音源処理プログラムに処理を移し
て楽音生成を行う。このとき、他のプロセッサ(スレー
ブプロセッサ)に対しても並列に音源処理プログラムを
実行させ、その後、全てのプロセッサにおいて音源処理
プログラムの実行が終了すると、マスタープロセッサ
は、割り込みを解除して演奏情報処理プログラムの実行
を再開する。
【0006】このような方式では、マスタープロセッサ
及びスレーブプロセッサは、各々、異なる複数の発音チ
ャネル群に対して音源処理プログラムを実行することに
なるが、それらの音源処理プログラムは、従来、それぞ
れのプロセッサ毎に設けられた制御用ROM等に記憶さ
れ、それぞれ独立したアドレスデコーダ等によってアク
セスされていた。
【0007】
【発明が解決しようとする課題】ここで、各プロセッサ
で実行される音源処理プログラムは、実行する発音チャ
ネルが異なるだけで処理内容は同じであり、音源処理プ
ログラムとしては同一のものが使用できる。しかし、上
述の従来例では、同じ音源処理プログラムがそれぞれの
プロセッサ内の制御用ROM等に重複して記憶され、音
源処理プログラムのための全体の記憶容量がプロセッサ
の数の分だけ必要で、アドレスデコーダ等も別々のもの
が必要となる。従って、ハードウエア規模の増大を招
き、コストアップ、装置の大型化を招いてしまうという
問題点を有している。
【0008】本発明の課題は、音源処理を複数のプロセ
ッサでソフトウエア処理として実行する場合に、回路規
模を小型化することにある。
【0009】
【課題を解決するための手段】本発明は、楽音制御デー
タを記憶するデータ記憶手段と、所定時間間隔で割り込
み処理等によって楽音信号を得るための音源処理プログ
ラムを実行し、データ記憶手段上の対応する楽音制御デ
ータに基づいて楽音信号を生成するプログラム実行手段
と、を各々含む複数のプロセッサによって、複数の発音
操作に対応する例えば複数の発音チャネル分の楽音信号
を並列して生成する楽音波形発生装置を前提とする。
【0010】まず、複数のプロセッサで共通の音源処理
プログラムを記憶するプログラム記憶手段を有する。そ
して、プログラム記憶手段に記憶されている音源処理プ
ログラムを、上述の各プロセッサに時分割でアクセスさ
せる音源処理プログラムアクセス制御手段を有する。
【0011】この場合、プログラム記憶手段と音源処理
プログラムアクセス制御手段は、例えば上述の複数のプ
ロセッサのうちの1つに設けられる。
【0012】
【作用】各プロセッサは、音源処理プログラムを実行す
る場合に、音源処理プログラムアクセス制御手段によっ
て、1つのプログラム記憶手段に記憶されている音源処
理プログラムを時分割でアクセスすることにより、各プ
ロセッサ内に音源処理プログラムを記憶して実行するの
と同じ動作を行える。
【0013】これにより、音源処理プログラムを記憶す
るための制御用ROM等を1つにすることができ、ま
た、アドレスデコーダ等も1つにすることができるた
め、ハードウエア規模を小さくすることができ、コスト
の低減も図れる。
【0014】
【実施例】以下、図面を参照しながら本発明の実施例に
つき説明する。 <本実施例の構成>図1は、本実施例の全体構成図であ
り、外部メモリ116以外は1チップで構成され、その
中のマスターとスレーブの2つのCPU(中央演算制御
装置)が互いに情報を交換しつつ、楽音作成のための音
源処理を分担して行う。
【0015】図1において、まず、外部メモリ116に
は、エンベロープ値の目標値等の楽音制御パラメータ
と、PCM(パルス符号変調)方式における楽音波形又
はDPCM(差分パルス符号変調)方式における楽音差
分波形等が記憶されている。
【0016】一方、マスタCPU(以下、MCPU と略称
する)101とスレーブCPU(以下、SCPU と略称す
る)102は、外部メモリ116上の上記各データをア
クセスして、分担して音源処理を行う。これらのCPU
は、ともに外部メモリ116の波形データ等を共用する
ので、このままでは、外部メモリ116からデータを読
み込むときに、競合が発生する恐れがある。そのため、
MCPU 101とSCPU 102のそれぞれは、MCPU外部
メモリアクセス用アドレスラッチ部103及びSCPU 外
部メモリアクセス用アドレスラッチ部104を介して、
アクセス用アドレス競合回避回路105から外部メモリ
アクセス用のアドレス信号と外部メモリ制御データを出
力端子111、112から出力することにより、MCPU
101からのアドレスとSCPU 102からのアドレスの
競合を回避することができる。
【0017】上記アドレス指定に基づいて外部メモリ1
16から読み出されたデータは、外部メモリデータイン
端子115から外部メモリセレクタ部106に入力され
る。外部メモリセレクタ部106は、アクセス用アドレ
ス競合回避回路105からの制御信号に基づき、上記読
み出されたデータを、データバスMDを通ってMCPU 1
01に入力されるデータと、データバスSDを通ってS
CPU 102に入力されるデータに分離し、それぞれMCP
U 101とSCPU 102に入力させる。これにより、デ
ータの競合も回避することができる。
【0018】その後、それぞれのデータに対し、MCPU
101及びSCPU 102で、ソフトウエアによって音源
処理が施された後、発音チャネル分全部が累算され、Le
ft D/A変換器部107のレフト出力端子113及び
Right D/A変換器部108のライト出力端子114か
ら、それぞれ楽音信号として、左チャネルのレフト・ア
ナログ出力と右チャネルのライト・アナログ出力が出力
される。
【0019】次に、図2はMCPU 101の内部構成を示
すブロック図である。同図において、制御用ROM20
1には、後述する楽音制御用のプログラムが記憶されて
いる。ROMアドレスデコーダ202でデコードされた
アドレスのプログラム語(命令)を順次出力する。具体
的には、各プログラム語の語長は例えば28ビットであ
り、プログラム語の一部が次に読み出されるべきアドレ
スの下位部(ページ内アドレス)となるネクストアドレ
ス方式となっている。
【0020】ここで、制御用ROM201には、後述す
る図9のメインフローに対応する制御プログラムのほ
か、MCPU 101とSCPU 102とで共通の音源処理プ
ログラムが記憶されている。そして、この音源処理プロ
グラムは、後述するインタラプト処理において、MCPU
101とSCPU 102の両方から時分割でアクセスされ
ることが特徴となっている。そのために、本実施例では
特に、プログラムデータラッチ部218、アドレス切替
え部219及びアドレス制御クロック生成部220が設
けられるが、これらについては後述する。
【0021】コマンド解析部207は、制御用ROM2
01からプログラムデータラッチ部218を介して出力
される命令のオペコードを解析し、指定されたオペレー
ションを実行するために、回路の各部に制御信号を送
る。
【0022】RAMアドレス制御部204は、制御用R
OM201からの命令のオペランドがレジスタを指定し
ている場合に、RAM206内の対応するレジスタのア
ドレスを指定する。RAM206には、図16、図17
等として後述する各種楽音制御データが8発音チャネル
分記憶されるほか、図18等として後述する各種バッフ
ァ等が記憶され、後述する音源処理に使用される。
【0023】ALU部208及び乗算器209は、制御
用ROM201からの命令が演算命令の場合に、コマン
ド解析部207からの指示に基づいて、前者は加減算と
論理演算、後者は乗算を実行する。
【0024】インタラプト制御部203は、内部の特に
は図示しないハードタイマに基づいて、一定時間毎に、
図1のSCPU 102にリセット解除信号A、ROMアド
レス制御部205及び図1の各D/A変換器部107、
108にインタラプト信号を供給する。
【0025】上述の構成のほかに、図2のMCPU 101
には、次の各種のバスに関するインタフェースが設けら
れている。すなわち、外部メモリ116をアクセスすべ
く、そのメモリのアドレスを指定するためのアドレスバ
スMAのインタフェース215、アクセスされたデータ
を外部メモリセレクタ部106を介してMCPU 101と
の間で授受するためのデータバスMDのインタフェース
216、SCPU 102とのデータの授受を実行すべくS
CPU102内部のRAMのアドレスを指定するバスMa
のインタフェース212、MCPU 101がSCPU 102
へデータを書き込むためのデータバスDout のインタフ
ェース213、MCPU 101がSCPU 102からデータ
を読み込むためのデータバスDinのインタフェース21
4、Left D/A変換器部107、Right D/A変換器
部108に最終出力波形を転送するためのD/Aデータ
転送バスのインタフェース217、及び外部のスイッチ
部又は鍵盤部(図7、図8参照)等との間でデータの授
受を行う入出力ポート210、211がある。
【0026】次に、SCPU 102の内部構成を図3に示
す。SCPU 102は、MCPU 101からの処理開始信号
を受けて音源処理を行うのみなので、図2の223に対
応するインタラプト制御部、図2の210及び211に
対応する外部回路とのデータの授受を行う入出力ポート
及び図2の217に対応するLeft D/A変換器部10
7とRight D/A変換器部108に楽音信号を出力する
ためのインタフェースはない。
【0027】更に、後述するインタラプト処理において
実行されるSCPU 102での音源処理は、発音チャネル
が異なるだけで処理内容はMCPU 101での音源処理と
同じである。そこで、本実施例では、MCPU 101の制
御用ROM210(図2)に記憶されている音源処理用
のプログラムをMCPU 101とSCPU 102とで共用
し、SCPU 102側には制御用ROMを設けないことを
特徴とする。
【0028】そのために、図2のROMアドレスデコー
ダ202には、アドレス切替え部219によって、MCP
U 101のROMアドレス制御部205からのMCPU プ
ログラムデータアクセス用アドレスと、SCPU 102の
ROMアドレス制御部304(図3)からのSCPU プロ
グラムデータアクセス用アドレスSADDRとが、時分割で
交互に入力される。
【0029】そして、MCPU プログラムデータアクセス
用アドレスが入力するタイミングでは、プログラムデー
タラッチ部218がオンとなって、制御用ROM201
から出力されるMCPU プログラムデータがMCPU 101
内のRAMアドレス制御部204、コマンド解析部20
7及びROMアドレス制御部205に供給される。逆
に、SCPU プログラムデータアクセス用アドレスSADDR
が入力するタイミングでは、図3のプログラムデータラ
ッチ部301がオンとなって、制御用ROM201から
出力されるSCPU プログラムデータSprg がSCPU 10
2内のRAMアドレス制御部303、コマンド解析部3
06及びROMアドレス制御部304に供給される。上
記時分割動作を実現するために、図2のMCPU 101内
に設けられるアドレス制御クロック生成部220が、ア
ドレス切替え部219(図2)とプログラムデータラッ
チ部218(図2)、301(図3)を時分割制御す
る。
【0030】上述の構成以外の図3の303〜308の
各回路は、図2の204〜209の各回路と同じ機能を
有する。また、各インタフェース302、309〜31
2は、図2の212〜216のそれぞれに対向して設け
られる。なお、MCPU 101からバスMaを介して指定
されたSCPU 102内部RAMアドレスは、RAMアド
レス制御部303に入力し、対応するアドレスがRAM
305に対して指定される。これによって、例えばSCP
U 102で生成されRAM305内部に保持されている
最大8発音チャネル分の累算波形データが、データバス
DINを介してMCPU 101に出力される。これについて
は後述する。
【0031】以上に示される構成のほか、本実施例で
は、MCPU 101の入力ポート210に、図7及び図8
に示されるような機能キー701及び鍵盤キー702等
が接続される。これらの部分が、実質的な楽器操作部を
構成する。
【0032】次に、図5は、図1のLeftとRight のD/
A変換器部107、108(両変換部の内容は同じ)の
内部構成を示すもので、データバスを介して、音源処理
で作成された楽音の1サンプルデータがラッチ401に
入力される。そして、ラッチ401のクロック入力にM
CPU 101のコマンド解析部207(図2)から音源処
理終了信号が入力されると、データバス上の1サンプル
分の楽音データがラッチ401にラッチされる。
【0033】ここで、前述の音源処理に要する時間は、
音源処理用のソフトウエアにより変化する。そのため、
音源方式が異なる場合は、各音源処理が終了し、ラッチ
401に楽音データがラッチされるタイミングは一定で
ない。そのため、図4のように、ラッチ401の出力を
そのままD/A変換器402に入力させることはできな
い。
【0034】そこで、本実施例では図5の如く、ラッチ
401の出力を更にラッチ501でラッチし、インタラ
プト制御部203から出力されるサンプリングクロック
間隔に等しい図6に示されるインタラプト信号により、
楽音信号をラッチ501にラッチさせ、図6のように一
定間隔でD/A変換器402に出力させるようにしてい
る。
【0035】このようにラッチを2つ用いて、音源方式
による処理時間の変化を吸収したので、楽音データをD
/A変換器へ出力させるための複雑なタイミング制御プ
ログラムが不用になった。 <本実施例の全体動作>次に、本実施例の全体動作を説
明する。
【0036】本実施例は、基本的にはMCPU 101が中
心となって動作し、図9のメインフローチャートに示す
ように、S902 〜S910 の一連の処理を繰り返し行って
いる。そして実際の音源処理は割り込み(インタラプ
ト)処理で行っている。具体的には、ある一定時間毎
に、MCPU 101とSCPU 102に割り込みが掛かり、
それに基づいてそれぞれのCPUが最大8チャンネルず
つの音を作る音源処理を行う。この場合に実行される音
源処理プログラムは、前述したように図2のMCPU10
1内の制御用ROM201に共通に格納され、MCPU 1
01とSCPU 102の両方から時分割でアクセスされる
ことが特徴となっている。その処理が終わると、それぞ
れのCPUの最大8チャネル、計最大16チャネル分の
楽音波形が加算され、Left D/A変換器部107、Ri
ght D/A変換器部108から出力される。その後、割
り込み状態からメインフローに戻る。なお、上述の割り
込みは、図2のインタラプト制御部203内のハードタ
イマに基づき周期的に行われる。この周期は楽音出力時
のサンプリング周期に等しい。
【0037】以上が、本実施例の概略の全体動作であ
る。次に、本実施例の全体動作の詳細について、図9〜
図11を用いて説明する。図9のメインフローチャート
のS902 〜S910 の処理が繰り返し実行されている間
に、インタラプト制御部203から割り込みが掛かる
と、図10のMCPU インタラプト処理と図11のSCPU
インタラプト処理の2つの処理が同時に起動する。そし
て、図10と図11の「音源処理」は、後述する図13
に示される。
【0038】図9のメインフローチャートは、インタラ
プト制御部203から割り込みが掛からない状態におい
てMCPU 101において実行される、音源処理以外の処
理の流れを示している。
【0039】まず、電源がONされ、MCPU 101のR
AM206の内容等の初期設定が行われる(S901 )。
次に、MCPU 101の外部に接続される機能キー701
(図7参照)、例えば音色スイッチ等が走査され(S90
2 )、各スイッチの状態が入力ポート210からRAM
206内のキーバッファエリアに取り込まれる。その走
査の結果、状態の変化した機能キーが識別され、対応す
る機能の処理がなされる(S903 )。例えば、楽音番号
のセット、エンベロープ番号のセット、また、付加機能
にリズム演奏がついていれば、リズム番号のセット等が
行われる。
【0040】その後、押鍵されている鍵盤キーの状態が
上述の機能キーの場合と同様に取り込まれ(S904 )、
変化した鍵(押鍵又は離鍵された鍵)が識別されること
によりキーアサイン処理が行われる(S905 )。この処
理は、押鍵された鍵に基づいて発音されるべき楽音のデ
ータを発音チャネルに割り当てたり、逆に、離鍵された
鍵に対応する発音チャネルを解放したりする処理であ
る。なお、ここで実行される処理の一部であるキーオン
時のアサイン処理は、押鍵キーを発音チャネルへ割り当
てる処理のみであり、実際に押鍵キーに基づくピッチデ
ータをアサインされた発音チャネルに設定し発音指示を
行う動作は、後述する発音処理(S909 )において実行
される。
【0041】次に、機能キー701(図7参照)である
デモ演奏キーが押されたときは、外部メモリ部116か
らデモ演奏データ(シーケンサデータ)が順次読み出さ
れ、S905 と同様のキーアサイン処理などが行われる
(S906 )。また、リズムスタートキーが押されたとき
は、リズムデータが外部メモリ116から順次読み出さ
れ、S905 と同様のキーアサイン処理などが行われる
(S907 )。
【0042】その後に、以下に述べるタイマー処理が行
われる(S908)。すなわち、後述するインタラプトタ
イマー処理(S1012)でインクリメントされている時間
データの時間値が判別され、デモ演奏制御用に順次読み
出される時間制御用のシーケンサデータ又はリズム演奏
制御用に読み出される時間制御用のリズムデータと比較
されることにより、S906 のデモ演奏又はS907 のリズ
ム演奏を行う場合の時間制御が行われる。
【0043】更に、発音処理S909 では、上記各ステッ
プS905 〜S907 でアサインされ発音開始されるべき発
音チャネルにピッチデータを設定し、また、発音中の発
音チャネルのピッチデータを予め設定されたエンベロー
プに従って時間的に変化させ、発音中の楽音のピッチに
変化を付加するというピッチエンベロープ処理等が行わ
れる。
【0044】更に、フロー1周準備処理が実行される
(S910 )。ここでは、上述のステップS909 で新たに
ピッチデータが設定された発音チャネルの状態を発音中
に変えたり、逆にステップS905 〜S907 で解放された
発音チャネルの状態を消音中に変える等の処理が行われ
る。
【0045】次に、図10のMCPU インタラプト処理に
つき説明する。MCPU 101のインタラプト制御部20
3によりMCPU 101に割り込みが掛かると、図9のメ
インフローチャートの処理が中断され、図10のMCPU
インタラプト処理の実行が開始される。この場合、MCP
Uインタラプト処理のプログラムにおいて、図9のメイ
ンフローのプログラムで書き込みが行われるレジスタ等
については、内容の書き換えが行われないように制御さ
れる。これにより、通常のインタラプト処理の開始時と
終了時に行われるレジスタの退避と復帰の処理は不要と
なり、図9のメインフローチャートの処理とMCPU イン
タラプト処理との間の移行が迅速に行われる。
【0046】図10においては、まず、MCPU インタラ
プト処理において音源処理が開始される(S1011)。こ
の音源処理は後述する図13に示される。上述の動作と
同時に、MCPU 101のインタラプト制御部203から
SCPU 102のRAMアドレス制御部304に対してS
CPU リセット解除信号A(図1参照)が出力され、SCP
U 102において、図11のSCPU インタラプト処理の
実行が開始される。
【0047】そして、MCPU インタラプト処理における
音源処理(S1011)とほぼ同時に、SCPU インタラプト
処理において音源処理が開始される(S1101)。このよ
うに、MCPU 101とSCPU 102の両者が並行して音
源処理を実行することによって、1つのCPUで音源処
理を実行する場合に較べて音源処理の処理速度が約2倍
になる。
【0048】続いて、MCPU 101では、S1012のイン
タラプトタイマー処理の後、SCPU 102からSCPU イ
ンタラプト処理の終了信号が来るのを待っている(S10
13)。なお、インタラプトタイマー処理では、図10の
インタラプト処理が一定のサンプリング周期毎に実行さ
れることを利用して、RAM206(図2)上の特には
図示しない時間データの値がインクリメントされる。す
なわち、この時間データの値を見れば時間経過がわか
る。このようにして得られる時間データは、前述したよ
うに、図9のメインフローのタイマー処理S908 におけ
る時間制御に用いられる。
【0049】図11のSCPU インタラプト処理における
ステップS1101の音源処理が終了すると、SCPU 102
のコマンド解析部306からMCPU 101のROMアド
レス制御部205に、SCPU処理終了信号B(図1参
照)が入力する。これにより、図10のMCPU インタラ
プト処理でのステップS1013の判定がYESになる。
【0050】この結果、図1のデータバスDinを介して
SCPU 102で作られた波形データがMCPU 101のR
AM206に読み込まれる(S1014)。この場合、波形
データはSCPU 102のRAM305上の所定のバッフ
ァ領域(図18で後述するバッファB)に格納されてい
るため、MCPU 101のコマンド解析部207は、SCP
U 内部アドレス指定バスMaを介して、RAMアドレス
制御部303に対して上記バッファアドレスを指定する
ことにより、波形データの読み込みを行う。
【0051】そして、S1014' において、上記バッファ
領域の内容がLeft D/A変換器部107及びRight D
/A変換器部108のラッチ401(図5参照)にラッ
チされる。
【0052】次に、図12は、前述の図9と図10のフ
ローチャートの処理の関係を概念的に示した流れ図であ
り、MCPU 101とSCPU 102が、音源処理をそれぞ
れ分担して行う様子を示している。
【0053】まず、ある処理A(以下、処理B、C、・
・・、Fも同じ)が実行される(S1201)。この処理
は、図9のメインフローチャートの例えば「機能キー処
理」、や「鍵盤キー処理」などに対応する。その後、M
CPU インタラプト処理とSCPU インタラプト処理に入
り、同時にMCPU 101とSCPU 102による音源処理
が開始される(S1202、S1203)。そして、SCPU 10
2でのSCPU インタラプト処理の終了時に、SCPU 処理
終了信号BがMCPU 101に入力する。MCPU インタラ
プト処理では、SCPU インタラプト処理より早く音源処
理が終了し、SCPU インタラプト処理の終了を待ってい
る。そして、MCPU インタラプト処理においてSCPU 処
理終了信号Bが識別されると、SCPU 102で生成され
た波形データがMCPU 101に送られてMCPU 101で
生成された波形データとまとめられ、Left D/A変換
器部107及びRight D/A変換器部108に出力され
る。その後、メインフローチャートの処理Aの次の処理
Bに戻る。
【0054】以上のような動作が、全ての発音チャネル
(MCPU 101とSCPU 102で実行中の発音チャネ
ル)に対する音源処理が行われながら繰り返される(S
1204〜S1216)。そして、この繰り返し処理は、楽音の
発音中続けられる。
【0055】図13は、MCPU インタラプト処理のステ
ップS1011又はSCPU インタラプト処理のステップS11
01で実行される音源処理の動作フローチャートである。
まず、RAM206又はRAM305の波形データ加算
用の領域がクリアされる(S1316)。次に、発音チャネ
ルの1チャネル毎に音源処理が行われ(S1317〜S132
4)、最後に8チャネル目の音源処理が終了した時点
で、RAM206上の所定のバッファ領域B(後述する
図18)に8チャネル分が加算された波形データが得ら
れる。これらの詳細な処理については後述する。 <音源処理におけるデータ構成>次に、図10のS1011
及び図11のS1101で実行される音源処理の具体例につ
いて説明する。
【0056】本実施例では、MCPU 101とSCPU 10
2の両CPUが、最大8チャネルづつの音源処理を分担
することは前述した。この最大8チャネル分の音源処理
用のデータは、図14に示すように、MCPU 101、S
CPU 102のRAM206、305内の発音チャネル別
の領域に設定される。
【0057】また、同RAMには、図18に示すよう
に、全発音チャネル共通のバッファBが確保されてい
る。この場合、図14の各発音チャネル領域には、後に
詳述するような操作によって、図15に概念的に示すよ
うに、それぞれの音源方式が設定でき、その音源方式が
設定されたら、図16及び図17に示すような各音源方
式のデータフォーマットで、図14の各発音チャネルの
各領域にデータが設定される。なお、本実施例では、後
述するように、各発音チャネルに異なる音源方式を割り
当てることが可能である。
【0058】図16及び図17の各音源方式のデータフ
ォーマットを示すテーブル1において、Gは音源方式を
識別する番号である音源方式Noである。次のAは、音源
処理時に波形データが読み出される場合に指定されるア
ドレスを表し、AI 、A1 及びA2 が現在アドレスの整
数部で、外部メモリ116(図1)の波形データが格納
されているアドレスに直接対応する。また、AF は現在
アドレスの小数部であり、外部メモリ116から読み出
された波形データの補間に用いられる。
【0059】次のAE はエンドアドレス、AL はループ
アドレスをそれぞれ表す。また、つぎのPI 、P1 及び
P2 はピッチデータの整数部、PF はピッチデータの小
数部を表す。例を示すと、PI =1、PF =0は原音の
ピッチを、PI =2、PF =0は1オクターブ上のピッ
チを、また、PI =0、PF =0.5は、1オクターブ
下のピッチをそれぞれ表す。
【0060】次のXP は前回のサンプルデータを、XN
は次回のサンプルデータの格納を表す(後述する)。ま
た、Dは隣接する2つのサンプルデータ間の大きさの差
分値を表し、Eはエンベロープ値である。更に、Oは出
力値である。
【0061】その他の種々の制御データについては、後
述の各音源方式の説明の際に説明する。このように、図
16、図17に示すようなデータがMCPU 101、SCP
U 102のそれぞれのRAM206、305に確保さ
れ、後述する音源方式が決まると、図14に示す各チャ
ネル毎に図16、図17のフォーマットで、データが設
定される。
【0062】以下、このようなデータ構成を用いて実行
される各音源方式の音源処理について順次説明する。な
お、これらの音源処理は、MCPU 101又はSCPU 10
2のコマンド解析部207又は306が、図2のMCPU
101内の制御用ROM201に格納されている音源処
理用のプログラムを時分割でアクセスして取り込み、そ
れを解釈・実行することにより実現されるが、そのアク
セス動作については後述することとし、以下の説明では
各CPUでの各発音チャネル単位での具体的な音源処理
について説明する。
【0063】まず、図15のフローチャートにおいて、
1チャネル毎の各音源処理(S1502等)に入ると、RA
M206、305の対応する発音チャネルに記憶されて
いる図16、図17に示すデータフォーマット(テーブ
ル1)のデータのうちの音源方式Noが判別され、これに
より以下に説明するどの音源方式の音源処理が実行され
るかが決定される。 <PCM方式による音源処理>上記音源方式NoがPCM
方式を指示している場合、以下の図19の動作フローチ
ャートで示されるPCM方式による音源処理が実行され
る。フロー中の各変数は、MCPU 101又はSCPU 10
2のRAM206、305上の図14のいずれかの発音
チャネル領域に記憶される図16、図17のテーブル1
のPCMフォーマットの各データである。外部メモリ1
16(図1)上のPCM波形データが記憶されているア
ドレスのうち、現在の処理の対象とされる波形データが
記憶されているアドレスを図22に示す(AI,AF )と
する。
【0064】まず、現在のアドレスにピッチデータ(P
I,PF )が加算される(S1901)。このピッチデータ
は、図7の鍵盤キー702等において押鍵操作された鍵
の種類に対応している。 そして、加算されたアドレス
の整数部AI が変わったか否かが判定される(S190
2)。判定がNOならば、図22のアドレス(AI +
1)及びAI におけるそれぞれのサンプルデータXN と
XP との差である差分値Dを用いて、D×AF なる演算
処理により、アドレスの小数部AF に対応する補間デー
タ値Oが計算される(S1907)。なお、差分値Dは、今
回以前のインタラプトタイミングにおける音源処理によ
り求まっている(後述するS1906参照)。
【0065】そして、上記補間データ値Oにアドレスの
整数部AI に対応するサンプルデータXP が加算され、
現在のアドレス(AI,AF)に対応する新しいサンプル
データO(図22のXQ に相当する)が得られる(S19
08)。
【0066】この後、このサンプルデータにエンベロー
プ値Eが乗算され(S1909)、得られたOの内容がMCP
U 101又はSCPU 102のRAM206又は305内
の波形データバッフアB(図18参照)に加算される
(S1910)。
【0067】その後、図9のメインフローに戻り、次の
サンプリング周期でインタラプトが掛かって、図19の
音源処理の動作フローチャートがふたたび実行され、現
在アドレス(AI,AF )にピッチデータ(PI,PF)が
加算される(S1901)。以上の動作がアドレスの整数部
AI が変わる(S1902)まで繰り返される。
【0068】この間、サンプルデータXP 及び差分値D
は更新されず、補間データOのみがアドレスAF に応じ
て更新され、その都度サンプルデータXQ が得られる。
次に、S1901で現在アドレス(AI,AF )にピッチデー
タ(PI,PF )が加算された結果、現在アドレスの整数
部AI が変化したら(S1902)、アドレスAI がエンド
アドレスAE に達しているか又は越えているか否かが判
定される(S1903)。
【0069】判定がYESならば、次のループ処理が行
われる。すなわち、エンドアドレスAE を越えた分のア
ドレス(AI −AE )がループアドレスAL に加算さ
れ、それにより得られた新しい現在アドレスの整数部A
I からループ再生が開始される(S1904)。エンドアド
レスAE とは、PCM波形データの最後の波形サンプル
データが記憶されている外部メモリ116(図1)上の
アドレスである。また、ループアドレスAL とは、演奏
者が波形の出力を繰り返したい位置のアドレスであり、
上記動作により、PCM方式で周知のループ処理が実現
される。
【0070】S1903の判定がNOならば、上記ステップ
S1904の処理は実行されない。次に、サンプルデータの
更新が行われる。ここでは、外部メモリ116(図1参
照)から、新しく更新された現在アドレスAI と1つ手
前のアドレス(AI −1)に対応する各サンプルデータ
が、それぞれXN 及びXP として読み出される(S190
5)。
【0071】更に、今までの差分値が、更新した上記X
N とXP との差分値Dに更新される(S1906)。これ以
後の動作は前述した通りである。
【0072】以上のようにして、1発音チャネル分のP
CM方式による波形データが生成される。<DPCM方
式による音源処理>次に、DPCM方式による音源処理
について説明する。
【0073】まず、図23を用いて、DPCM方式の動
作原理の概略を説明する。同図において、外部メモリ1
16(図1)のアドレスAI に対応するサンプルデータ
XP は、アドレスAI の1つ前の特には図示しないアド
レス(AI −1)に対応するサンプルデータとの差分値
から求めた値である。
【0074】外部メモリ116(図1)のアドレスAI
には、次の差分値Dが書き込まれているので、次のアド
レスのサンプルデータはXP +Dで求まり、これが新た
なサンプルデータXP としておきかわる。
【0075】この場合、現在アドレスを、図23のよう
にAF とすれば、現在アドレスAF に対応するサンプル
データは、XP +D×AFで求まる。このように、DP
CM方式では、現在のアドレスと、次のアドレスに対応
するサンプルデータ間の差分値Dが外部メモリ116
(図1)から読み出され、現在のサンプルデータに加算
されて、次のサンプルデータが求められることにより、
順次波形データが作成される。
【0076】このようなDPCM方式を採用すると、隣
接する標本間の差分値が一般に小さい音声や楽音等のよ
うな波形を量子化する場合、通常のPCM方式に比較し
て、はるかに少ないビット数で量子化を行える。
【0077】以上のDPCM方式の動作を、図20、図
21の動作フローチャートを用いて説明する。フロー中
の各変数は、MCPU 101のRAM206又はSCPU 1
02のRAM305上の図14のいずれかの発音チャネ
ル領域に記憶される図16のテーブル1のDPCMフォ
ーマットの各データである。
【0078】外部メモリ116(図1)上のDPCM差
分波形データが記憶されているアドレスのうち、現在の
処理の対象とされるデータが記憶されているアドレス
を、図23に示す(AI,AF )とする。
【0079】まず、現在アドレス(AI,AF )に、ピッ
チデータ(PI,PF )が加算される(S2001)。そし
て、加算されたアドレスの整数部AI が変化したか否か
が判定される(S2002)。判定がNOならば、図23の
アドレスAI における差分値Dを用いて、D×AF なる
演算処理により、アドレスの小数部AF に対応する補間
データ値Oが演算される(S2014)。なお、差分値D
は、今回以前のインタラプトタイミングにおける音源処
理により求まっている(後述するS2006とS2010参
照)。
【0080】次に、上記補間データ値Oにアドレスの整
数部AI に対応するサンプルデータXP が加算され、現
在アドレス(AI,AF)に対応する新しいサンプルデー
タO(図23のXQ に対応)が得られる(S2015)。
【0081】この後、このサンプルデータにエンベロー
プ値Eが乗算され(S2016)、得られたOの内容がMCP
U 101のRAM206又はSCPU 102のRAM30
5内の波形データバッフアB(図18参照)に加算され
る(S2017)。
【0082】その後、図9のメインフローに戻り、次の
サンプリング周期でインタラプトが掛かり、図20、図
21の音源処理の動作フローチャートが再び実行され、
現在アドレス(AI,AF )にピッチデータ(PI,PF )
が加算される(S2001)。
【0083】以上の動作が、アドレスの整数部AI に変
化が生ずるまで繰り返される。この間、サンプルデータ
XP 及び差分値Dは更新されず、補間データOのみがア
ドレスAF に応じて更新されて、その都度新たなサンプ
ルデータXQ が得られる。
【0084】次に、S2001で現在アドレス(AI,AF )
にピッチデータ(PI,PF )が加算された結果、現在ア
ドレスの整数部AI が変化したら(S2002)、アドレス
AI がエンドアドレスAE に達しているか或いは越えて
いるか否かが判定される(S2003)。
【0085】判定がNOの場合、以下のS2004〜S2007
のループ処理により、現在アドレスの整数部AI に対応
するサンプルデータが計算される。すなわち、まず、旧
AI という変数(図16のテーブル1のDPCMの欄参
照)には、現在アドレスの整数部AI が変化する前の値
が格納されている。この値の格納は、後述するS2006又
はS2013の処理の繰り返しにより実現される。この旧A
I の値がS2006で順次インクリメントされながら、S20
07で旧AI により指示される外部メモリ116(図1)
上の差分波形データがDとして読み出され、S2005にお
いて順次サンプルデータXP に累算される。そして、旧
AIの値が変化後の現在アドレスの整数部AI に等しく
なった時点で、サンプルデータXP の値は変化後の現在
アドレスの整数部AI に対応する値となる。
【0086】このようにして、現在アドレスの整数部A
I に対応するサンプルデータXP が求まると、S2004の
判定がYESとなり、前述の補間値の演算処理(S201
4)に移る。
【0087】上述の音源処理が各インタラプトタイミン
グ毎に繰り返され、S2003の判定がYESに変化した
ら、次のループ処理に入る。まず、エンドアドレスAE
を越えた分のアドレス(AI −AE )がループアドレス
AL に加算され、得られたアドレスが新たな現在アドレ
スの整数部AI とされる(S2008)。
【0088】以下、ループアドレスAL からどれだけア
ドレスが進んだかによって、何回か差分値Dを累算する
操作が繰り返されることにより、新たな現在アドレスの
整数部AI に対応するサンプルデータXP が計算され
る。すなわち、まず、初期設定としてサンプルデータX
P が予め設定されているループアドレスAL におけるサ
ンプルデータXPL(図16のテーブル1のDPCMの欄
参照)の値とされ、また、旧AI がループアドレスAL
の値とされる(S2009)。そして、以下のS2010〜S20
13の処理が繰り返される。すなわち、旧AI の値がS20
13で順次インクリメントされながら、S2010で旧AI に
より指示される外部メモリ116(図1)上の差分波形
データがDとして読み出され、S2012において順次サン
プルデータXP に累算される。そして、旧AI の値が新
たな現在アドレスの整数部AI に等しくなった時点で、
サンプルデータXP の値はループ処理後の新たな現在ア
ドレスの整数部AI に対応する値となる。
【0089】このようにして、新たな現在アドレスの整
数部AI に対応するサンプルデータXP が求まると、S
2011の判定がYESとなって、前述の補間値の演算処理
(S2014)に移る。
【0090】以上のようにして、1発音チャネル分のD
PCM方式による波形データが生成される。 <FM変調方式による音源処理>次に、FM変調方式に
よる音源処理について説明する。
【0091】FM変調方式では、通常、図25のOP1,OP
2 で示されるような、オペレータと呼ばれる同一機能を
有するハードウエア又はソフトウエアのモジュールが用
いられ、それらが同図に示されるような接続規則で相互
に接続されることにより、楽音の生成が行われる。本実
施例では、ソフトウエア処理によりFM変調方式を実現
するものである。
【0092】次に、図24の動作フローチャートを用い
て、2オペレータで音源処理を行う場合の実施例の動作
を説明する。処理のアルゴリズムは図25で示される。
また、フロー中の各変数は、MCPU 101又はSCPU 1
02のRAM206、305上の図14のいずれかの発
音チャネル領域に記憶される、図17のテーブル1のF
Mフォーマットの各データである。
【0093】最初に、モジュレータであるオペレータ2
(OP2) の処理が行われる。ピッチ処理については、PC
M方式のように補間が行われないので、整数アドレスA
2 のみである。すなわち、外部メモリ116(図1)に
は変調用の波形データが十分に細かい歩進間隔で記憶さ
れているものとする。
【0094】まず、現在アドレスA2 にピッチデータP
2 が加算される(S2401)。次に、このアドレスA2 に
フィードバック出力FO2が変調入力として加算され、新
たなアドレスAM2が得られる(S2402)。フィードバッ
ク出力FO2は、前回のインタラプトタイミングにおいて
後述するS2405の処理が実行されることにより得られて
いる。
【0095】更に、アドレスAM2(位相)に対応する正
弦波の値が計算される。実際には、外部メモリ116
(図1)に正弦波データが記憶されており、上記アドレ
スAM2でその正弦波データをテーブル引きすることによ
り得られる(S2403)。
【0096】続いて、上記正弦波データにエンベロープ
値E2 が乗算され出力O2 が得られる(S2404)。この
後、この出力O2 にフィードバック・レベルFL2が乗算
されフィードバック出力FO2が得られる(S2405)。こ
の出力FO2は、本実施例の場合、次回のインタラプトタ
イミングにおけるオペレータ2(OP2) への入力とされ
る。
【0097】また、O2 にモジュレーション・レベルM
L2が乗算されて、モジュレーション出力MO2が得られる
(S2406)。このモジュレーション出力M02は、オペレ
ータ1(OP1) への変調入力になる。
【0098】次に、オペレータ1(OP1) の処理に移る。
この処理は、フィードバック出力による変調入力が無い
他は、殆ど上述のオペレータ2の場合と同じである。ま
ず、オペレータ1の現在アドレスA1 にピッチデータP
1 が加算され(S2407)、この値に上述のモジュレーシ
ョン出力MO2が加算されて新たなアドレスAM1が得られ
る(S2408)。
【0099】次に、このアドレスAM1(位相)に対応す
る正弦波の値が外部メモリ116(図1)から読み出さ
れ(S2409)、これにエンベロープ値E1 が乗算され楽
音波形出力O1 が得られる(S2410)。
【0100】そして、これがRAM206(図2)又は
305(図3)内のバッファB(図18参照)に加算さ
れて(S2411)、1発音チャネル分のFM変調処理を終
了する。 <TM変調方式による音源処理>次に、TM変調方式に
よる音源処理について説明する。
【0101】まず、TM変調方式の原理について説明す
る。前述のFM変調方式は、 e=A・sin{ωct+I(t)・sinωmt} なる演算式を基本とする。ここで、ωctは搬送波位相角
(搬送信号)、sin ωmtは変調波位相角(変調信号)、
及びI(t)は変調指数である。
【0102】これに対し、本実施例でTM変調方式と呼
ぶ位相変調方式は、 e =A・fT { fc(t)+I(t)・sinωmt} なる演算式を基本とする。ここで、fT(t) は三角波関数
であり、各位相角の領域毎に次のような関数で定義され
る(ただし、ωは入力)。
【0103】 fT(ω)=2/π・ω ・・・(領域:0≦ω≦π/2) fT(ω)=−1+2/π(3π/2−ω) ・・・(領域:π/2≦ω≦3π/2) fT(ω)=−1+2/π( ω−3 π/2) ・・・(領域:3π/2≦ω≦2π) また、fcは変形サイン波と呼ばれ、各位相角の領域毎
に、異なるサイン波形データの記憶されている外部メモ
リ116(図1)を、搬送位相角ωct でアクセスして
得られる搬送信号生成関数である。各位相角の領域毎の
fcは、次のように定義される。
【0104】 fc(t)=(π/2)sinωct ・・・(領域:0≦ωct≦π/2) fc(t)=π−(π/2)sinωct ・・・(領域:π≦ωct≦3π/2) fc(t)=2π+(π/2)sinωct ・・・(領域:3π/2≦ωct≦2π) TM変調方式では、上述の如き関数fc(t) で生成され
る搬送信号に、変調信号sin ωmtを変調指数I(t)で示さ
れる割合で加算して得た加算信号により、前述の三角波
関数が変調される。これにより、変調指数I(t)の値が0
であれば正弦波を生成することができ、I(t)の値を大き
くしてゆけば非常に深く変調された波形を生成すること
ができる。ここで、変調信号sin ωmtの代わりに様々な
信号を用いることができ、以下に述べるように、前回演
算時の自分のオペレータ出力を一定のフィードバックレ
ベルでフィードバックさせたり、他のオペレータの出力
を入力させたりすることができる。
【0105】このような原理のTM変調方式による音源
処理を、図26の動作フローチャートを用いて説明す
る。この場合も、図24のFM変調方式の場合と同様、
2オペレータで音源処理を行う場合の例であり、処理の
アルゴリズムは図27で示される。また、フロー中の各
変数は、MCPU 101又はSCPU 102のRAM20
6、305上の図14のいずれかの発音チャネル領域に
記憶される、図17のテーブル1のTMフォーマットの
各データである。
【0106】最初に、モジュレータであるオペレータ2
(OP2) の処理が行われる。ピッチ処理については、PC
M方式のように補間が行われないので、整数アドレスA
2 のみである。
【0107】まず、現在アドレスA2 にピッチデータP
2 が加算される(S2601)。次に、変形サイン変換fcに
より、上記アドレスA2 (位相)に対応する変形サイン
波が外部メモリ116(図1)から読み出され、搬送信
号がO2 として生成される(S2602)。
【0108】続いて、搬送信号である上述のO2 に、変
調信号としてフィードバック出力FO2(S2606)が加算
され、新たなアドレスが得られてO2 とされる(S260
3)。フィードバック出力FO2は、前回のインタラプト
タイミングにおいて後述するS2606の処理が実行される
ことにより得られている。
【0109】そして、上述の加算アドレスO2 に対応す
る三角波の値が計算される。実際には、外部メモリ11
6(図1)に前述した三角波データが記憶されており、
上記アドレスO2 でその三角波データをテーブル引きす
ることにより得られる(S2604)。
【0110】続いて、上記三角波データにエンベロープ
値E2 が乗算され出力O2 が得られる(S2605)。この
後、この出力O2 にフィードバック・レベルFL2が乗算
されフィードバック出力FO2が得られる(S2607)。こ
の出力FO2は、本実施例の場合、次回のインタラプトタ
イミングにおけるオペレータ2(OP2) への入力とされ
る。
【0111】また、O2 にモジュレーション・レベルM
L2が乗算されて、モジュレーション出力MO2が得られる
(S2607)。このモジュレーション出力M02は、オペレ
ータ1(OP1) への変調入力になる。
【0112】次に、オペレータ1(OP1) の処理に移る。
この処理は、フィードバック出力による変調入力が無い
他は、殆ど上述のオペレータ2の場合と同じである。ま
ず、オペレータ1の現在アドレスA1 にピッチデータP
1 が加算され(S2608)、得られた値に対して前述の変
形サイン変換が行われて搬送信号がO1 として得られる
(S2609)。
【0113】次に、このO1 に上述のモジュレーション
出力MO2が加算されて新たなO1 とされ(S2610)、こ
の値O1 が三角波変換され(S2611)、更にエンベロー
プ値E1 が乗算されて楽音波形出力O1 が得られる(S
2612)。
【0114】これがRAM206(図2)又は305
(図3)内のバッファB(図18参照)に加算され(S
2613)、1発音チャネル分のTM変調処理を終了する。
以上、PCM、DPCM、FM、TMという4つの方式
による音源処理を説明した。この中でFMとTMの2方
式は変調方式であり、上述の例ではいずれも、図25、
図27に示すアルゴリズムに基づく2オペレータによる
処理であるが、実際に演奏時の音源処理は、オペレータ
の数がもっと多く、アルゴリズムはより複雑であっても
よい。 <MCPU 、SCPU によるプログラムデータのアクセス動
作>上記音源処理は、前述したように、MCPU 101又
はSCPU 102のコマンド解析部207又は306が、
図2のMCPU 101内の制御用ROM201に格納され
ている音源処理用のプログラムを時分割でアクセスして
取り込み、それを解釈・実行することで実現される。以
下、このアクセス動作につき説明する。
【0115】前述したように、MCPU 101のインタラ
プト制御部203によりMCPU 101に割り込みが掛か
ると、図9のメインフローチャートの処理が中断され、
図10のMCPU インタラプト処理の実行が開始され、M
CPU 101側の音源処理が開始される(図10のS101
1)。これと同時に、MCPU 101のインタラプト制御
部203からSCPU 102のRAMアドレス制御部30
4に対してSCPU リセット解除信号A(図1参照)が出
力され、SCPU 102において、図11のSCPU インタ
ラプト処理の実行が開始され、MCPU 101側の音源処
理(S1011)とほぼ同時に、SCPU 102側でも音源処
理が開始される(図11のS1101)。
【0116】その場合の動作タイミングチャートを図2
8に示す。まず、図2のMCPU 101のアドレス制御ク
ロック生成部220はアドレス切替え部219を時分割
動作で切り替える制御を行っている。そして、図9のメ
インフローの実行時にはハイレベルとなっているリセッ
ト解除信号Aが、図10のMCPU インタラプト処理の開
始により図28(a) のようにローレベルになると、RO
Mアドレスデコーダ202には、図28(b) のように、
MCPU 101のROMアドレス制御部205からのMCP
U プログラムデータアクセス用アドレスと、SCPU 10
2のROMアドレス制御部304(図3)からのSCPU
プログラムデータアクセス用アドレスSADDRとが、時分
割で交互に入力されるようになる。
【0117】そして、アドレス制御クロック生成部22
0は、MCPU プログラムデータアクセス用アドレスが入
力するタイミングで、図28(c) に示されるようなMCP
U プログラムデータラッチ信号Lを図2のMCPU 101
内のプログラムデータラッチ部218に出力する。これ
により、このタイミングでプログラムデータラッチ部2
18がオンとなって、制御用ROM201から出力され
るMCPU プログラムデータが、MCPU 101内のRAM
アドレス制御部204、コマンド解析部207及びRO
Mアドレス制御部205に供給される。これにより、対
応するオペレーション(プログラム命令)が、図28
(e) に示すタイミングで実行され、図10のMCPU イン
タラプト処理が実現される。
【0118】逆に、図3のSCPU 102内のROMアド
レス制御部304からのSCPU プログラムデータアクセ
ス用アドレスSADDRがアドレス切替え部219から図2
のROMアドレスデコーダ202に入力するタイミング
では、アドレス制御クロック生成部220は、図28
(d) に示されるようなSCPU プログラムデータラッチ信
号Cを図3のSCPU102内のプログラムデータラッチ
部301に出力する。これにより、このタイミングでプ
ログラムデータラッチ部301がオンとなって、図2の
MCPU 101内の制御用ROM201から出力されるS
CPU プログラムデータSprg が、図3のSCPU 102内
のRAMアドレス制御部303、コマンド解析部306
及びROMアドレス制御部304に供給される。これに
より、対応するオペレーション(プログラム命令)が、
図28(f) に示すタイミングで実行され、図11のSCP
U インタラプト処理が実現される。
【0119】このようにして、MCPU 101とSCPU 1
02とで、各音源処理のためのオペレーションが図28
(e),(f) のように並列して実行される。上述の動作にお
いて、図10のMCPU インタラプト処理と図11のSCP
U インタラプト処理とでは、厳密には前者の方が、図1
0のステップS1012〜S1014' に対応する処理の分だけ
プログラムステップ数が多いが、上述の時分割アクセス
では、コマンド解析部207及び307の両者とも図1
0に対応する同一のインタラプト処理プログラムをアク
セスする。そこで、同プログラムにおいて、ステップS
1012にさしかかる境界部分に特殊命令を挿入しておき、
図3のSCPU 102のコマンド解析部307は、プログ
ラムRAM201から上記特殊命令を読み出したら、そ
の時点でSCPU インタラプト処理を終了してMCPU 10
1に対してSCPU 処理終了信号B(図1参照)を出力す
る。 <他の実施例の態様>以上説明してきた本発明の一連の
実施例においては、図1に示される如く、MCPU 101
とSCPU 102という2つのCPUが異なる発音チャネ
ルを分担して処理するようにしたが、CPUの数は3つ
以上でもよい。この場合には、1つのCPU(マスター
CPU)の制御用ROMに記憶される音源処理プログラ
ムを、複数のCPUから時分割アクセスして並列に実行
することになる。
【0120】また、図2の制御用ROM201、外部メ
モリ116をROMカード等で構成すれば、ユーザに様
々な音源方式を提供することができる。更に、図2のM
CPU 101の入力ポート210には、図7及び図8のよ
うな楽器操作部のほかに様々な操作部を接続することが
可能であり、これにより種々の形態の電子楽器を実現で
きる。また、他の電子楽器からの演奏情報を入力して音
源処理のみを行う音源モジュールとして実現することも
容易である。
【0121】
【発明の効果】本発明によれば、音源処理プログラムを
記憶するための制御用ROM等を1つにすることがで
き、また、アドレスデコーダ等も1つにすることができ
るため、ハードウエア規模を小さくし、コストを低減さ
せることが可能となる。
【図面の簡単な説明】
【図1】本発明による実施例の全体構成図である。
【図2】マスターCPUの内部構成図である。
【図3】スレーブCPUの内部構成図である。
【図4】従来のD/A変換器部の構成図である。
【図5】本実施例によるD/A変換器部の構成図であ
る。
【図6】D/A変換におけるタイミングチャートであ
る。
【図7】機能キーと鍵盤キーの配置図である。
【図8】鍵盤キーの説明図である。
【図9】メイン動作フローチャートである。
【図10】MCPU インタラプト処理の動作フローチャー
トである。
【図11】SCPU インタラプト処理の動作フローチャー
トである。
【図12】メイン動作フローチャートとインタラプト処
理の関係を示す概念図である。
【図13】音源処理の動作フローチャートである。
【図14】RAM上の発音チャネル別の記憶領域を示す
図である。
【図15】各発音チャネルの音源処理方式を選択すると
きの概念図である。
【図16】RAM上の音源方式別のデータフォーマット
の構成図(その1)である。
【図17】RAM上の音源方式別のデータフォーマット
の構成図(その2)である。
【図18】RAM上のバッフア領域を示す図である。
【図19】PCM方式による音源処理の動作フローチャ
ートである。
【図20】DPCM方式による音源処理の動作フローチ
ャート(その1)である。
【図21】DPCM方式による音源処理の動作フローチ
ャート(その2)である。
【図22】PCM方式で差分値Dと現在アドレスAF を
用いて補間値XQ を求める場合の原理説明図である。
【図23】DPCM方式で差分値Dと現在アドレスAF
を用いて補間値XQ を求める場合の原理説明図である。
【図24】FM方式による音源処理の動作フローチャー
トである。
【図25】FM方式による音源処理のアルゴリズムを示
す図である。
【図26】TM方式による音源処理の動作フローチャー
トである。
【図27】TM方式による音源処理のアルゴリズムを示
す図である。
【図28】MCPU,SCPU によるプログラムデータのアク
セス動作タイミングチャートである。
【符号の説明】
101 マスターCPU 102 スレーブCPU 103 MCPU 外部メモリアクセス用アドレスラッ
チ部 104 SCPU 外部メモリアクセス用アドレスラッ
チ部 105 アクセス用アドレス競合回避回路 106 外部メモリセレクタ部 107 Left D/A変換器部 108 Right D/A変換器部 109 入力ポート 110 出力ポート 111、112 出力端子 113 レフト出力端子 114 ライト出力端子 115 外部メモリデータイン端子 116 外部メモリ 201 制御用ROM 202、303 ROMアドレスデコーダ 203 インタラプト制御部 204、305 RAMアドレス制御部 205、304 ROMアドレス制御部 206、305 RAM 207、306 コマンド解析部 208、307 ALU部 209、308 乗算器 210 入力ポート 211 出力ポート 212 SCPU 内部RAMアドレス指定バス・イン
タフェース 213 SCPU への書き込みデータバス・インタフ
ェース 214 SCPU からの読み込みデータバス・インタ
フェース 215 外部メモリアクセス用アドレスバス・イン
タフェース 216 外部メモリデータバス・インタフェース 217 D/Aデータ転送バス・インタフェース 218 プログラムデータラッチ部 219 アドレス切替え部 220 アドレス制御クロック生成部 301 プログラムデータラッチ部 302 MCPU によるSCPU 内部RAMアドレス指
定バス・インタフェース 309 MCPU よりの書き込みデータバス・インタ
フェース 310 MCPU への読み出しデータバス・インタフ
ェース 311 外部メモリアクセス用アドレスバス・イン
タフェース 312 外部メモリデータバス・インタフェース 401、501 ラッチ 402 D/A変換器 701 機能キー 702 鍵盤キー A SCPU リセット解除信号(処理開始信号) B SCPU 処理終了信号 C SCPU プログラムデータラッチ信号 L MCPU プログラムデータラッチ信号 Ma SCPU 内部RAMアドレス指定バス Dout MCPU がSCPU へ書き込むデータバス Din MCPU がSCPU へ読み込むデータバス MA MCPU が外部メモリを指定するアドレスバス SA SCPU が外部メモリを指定するアドレスバス MD MCPU が外部メモリから読み込むデータバス SD SCPU が外部メモリから読み込むデータバス SADDR SCPU プログラムデータアクセス用アドレス Sprg SCPU プログラムデータ

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 楽音制御データを記憶するデータ記憶手
    段と、所定時間間隔で楽音信号を得るための音源処理プ
    ログラムを実行して前記データ記憶手段上の対応する楽
    音制御データに基づいて楽音信号を生成するプログラム
    実行手段と、を各々含む複数のプロセッサによって、複
    数の発音操作に対応する複数の楽音信号を並列して生成
    する楽音波形発生装置において、前記複数のプロセッサ
    で共通の前記音源処理プログラムを記憶するプログラム
    記憶手段と、該プログラム記憶手段に記憶されている前
    記音源処理プログラムを、前記各プロセッサに時分割で
    アクセスさせる音源処理プログラムアクセス制御手段
    と、を有することを特徴とする楽音波形発生装置。
  2. 【請求項2】 前記プログラム記憶手段及び前記音源処
    理プログラムアクセス制御手段は、前記複数のプロセッ
    サのうちの1つに設けられることを特徴とする請求項1
    記載の楽音波形発生装置。
JP2416902A 1990-12-29 1990-12-29 楽音波形発生装置 Expired - Lifetime JP2946762B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2416902A JP2946762B2 (ja) 1990-12-29 1990-12-29 楽音波形発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2416902A JP2946762B2 (ja) 1990-12-29 1990-12-29 楽音波形発生装置

Publications (2)

Publication Number Publication Date
JPH04242798A JPH04242798A (ja) 1992-08-31
JP2946762B2 true JP2946762B2 (ja) 1999-09-06

Family

ID=18525080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2416902A Expired - Lifetime JP2946762B2 (ja) 1990-12-29 1990-12-29 楽音波形発生装置

Country Status (1)

Country Link
JP (1) JP2946762B2 (ja)

Also Published As

Publication number Publication date
JPH04242798A (ja) 1992-08-31

Similar Documents

Publication Publication Date Title
USRE31004E (en) Electronic musical instrument utilizing data processing system
JPS62200399A (ja) 電子楽器におけるパラメ−タ供給装置
EP0463411B1 (en) Musical tone waveform generation apparatus
JP2946762B2 (ja) 楽音波形発生装置
JP3006094B2 (ja) 楽音波形発生装置
JP2678974B2 (ja) 楽音波形発生装置
JP2869573B2 (ja) 楽音波形発生装置
US4562763A (en) Waveform information generating system
JP2797139B2 (ja) 楽音波形発生装置
JP3035991B2 (ja) 楽音波形発生装置
EP0463409B1 (en) Musical tone waveform generation apparatus
JPH0331273B2 (ja)
US5687105A (en) Processing device performing plural operations for plural tones in response to readout of one program instruction
US7561931B1 (en) Sound processor
JP3027831B2 (ja) 楽音波形発生装置
JPH07325581A (ja) 楽音発生装置
US5403968A (en) Timbre control apparatus for an electronic musical instrument
JP2797138B2 (ja) 電子楽器用処理装置
JPS5846036B2 (ja) 電子楽器
JP3027832B2 (ja) 楽音波形発生装置
JP2946764B2 (ja) 楽音波形発生装置
JP3116447B2 (ja) デジタル信号処理プロセッサ
JPH0460698A (ja) 楽音波形発生装置
JP2946761B2 (ja) 楽音波形発生装置
JPH0458292A (ja) 楽音波形発生装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990601

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070702

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090702

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100702

Year of fee payment: 11