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

楽音波形発生装置

Info

Publication number
JPH04348396A
JPH04348396A JP2416903A JP41690390A JPH04348396A JP H04348396 A JPH04348396 A JP H04348396A JP 2416903 A JP2416903 A JP 2416903A JP 41690390 A JP41690390 A JP 41690390A JP H04348396 A JPH04348396 A JP H04348396A
Authority
JP
Japan
Prior art keywords
program
data
sound source
address
storage means
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.)
Granted
Application number
JP2416903A
Other languages
English (en)
Other versions
JP3006094B2 (ja
Inventor
Koichiro Oki
広一郎 太期
Ryuji Usami
隆二 宇佐美
Kosuke Shiba
斯波 康祐
Kazuo Ogura
和夫 小倉
Jun Hosoda
潤 細田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2416903A priority Critical patent/JP3006094B2/ja
Publication of JPH04348396A publication Critical patent/JPH04348396A/ja
Application granted granted Critical
Publication of JP3006094B2 publication Critical patent/JP3006094B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

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

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】  楽音制御データを記憶するデータ記憶
    手段と、前記データ記憶手段上の楽音制御データに基づ
    いて楽音制御用の処理プログラムを実行して楽音信号を
    生成するプログラム実行手段とを含む楽音波形発生装置
    において、前記処理プログラムを保存する不揮発性の保
    存用プログラム記憶手段と、プログラム実行時に前記プ
    ログラム実行手段によりアクセスされ、前記処理プログ
    ラムを記憶する実行用プログラム記憶手段と、前記保存
    用プログラム記憶手段から前記処理プログラムを読み出
    して前記実行用プログラム記憶手段に転送し、その後に
    前記プログラム実行手段の動作を開始させるイニシャル
    転送制御手段と、を有することを特徴とする楽音波形発
    生装置。
  2. 【請求項2】  楽音制御データを記憶するデータ記憶
    手段と、所定時間間隔で楽音信号を得るための音源処理
    プログラムを実行して前記データ記憶手段上の対応する
    楽音制御データに基づいて楽音信号を生成するプログラ
    ム実行手段とを各々含む複数のプロセッサで構成され、
    該各プロセッサのうちの所定の1つのプロセッサが、前
    記音源処理プログラムの実行タイミング以外のタイミン
    グで演奏情報を処理するための演奏情報処理プログラム
    を実行して前記各プロセッサのデータ記憶手段の楽音制
    御データを制御する楽音波形発生装置において、前記演
    奏情報処理プログラム及び前記音源処理プログラムを保
    存する不揮発性の保存用プログラム記憶手段と、前記所
    定のプロセッサ内に設けられ、該プロセッサにおけるプ
    ログラム実行時に該プロセッサ内のプログラム実行手段
    によりアクセスされ、前記演奏情報処理プログラム及び
    前記音源処理プログラムを記憶する第1の実行用プログ
    ラム記憶手段と、前記所定のプロセッサ以外の各プロセ
    ッサ内に設けられ、該各プロセッサにおけるプログラム
    実行時に該各プロセッサ内のプログラム実行手段により
    アクセスされ、前記音源処理プログラムを記憶する第2
    の実行用プログラム記憶手段と、前記保存用プログラム
    記憶手段から前記演奏情報処理プログラム及び前記音源
    処理プログラムを読み出して前記第1の実行用プログラ
    ム記憶手段に転送し、また、前記保存用プログラム記憶
    手段から前記音源処理プログラムを読み出して前記第2
    の実行用プログラム記憶手段に転送し、その後に前記所
    定のプロセッサ内のプログラム実行手段の動作を開始さ
    せるイニシャル転送制御手段と、を有することを特徴と
    する楽音波形発生装置。
  3. 【請求項3】  前記保存用プログラム記憶手段はリー
    ドオンリーメモリで構成され、前記実行用プログラム記
    憶手段はランダムアクセスメモリで構成される、ことを
    特徴とする請求項1又は2記載の楽音波形発生装置。
  4. 【請求項4】  前記イニシャル転送制御手段は、前記
    保存用プログラム記憶手段から前記実行用プログラム記
    憶手段へのプログラム転送を、装置の電源オンの直後に
    行うことを特徴とする請求項1、2又は3記載の楽音波
    形発生装置。
JP2416903A 1990-12-29 1990-12-29 楽音波形発生装置 Expired - Fee Related JP3006094B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPH04348396A true JPH04348396A (ja) 1992-12-03
JP3006094B2 JP3006094B2 (ja) 2000-02-07

Family

ID=18525081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2416903A Expired - Fee Related JP3006094B2 (ja) 1990-12-29 1990-12-29 楽音波形発生装置

Country Status (1)

Country Link
JP (1) JP3006094B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001065536A1 (fr) * 2000-03-03 2001-09-07 Sony Computer Entertainment Inc. Generateur de sons musicaux
JP2007286532A (ja) * 2006-04-20 2007-11-01 Kawai Musical Instr Mfg Co Ltd 電子楽器

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001065536A1 (fr) * 2000-03-03 2001-09-07 Sony Computer Entertainment Inc. Generateur de sons musicaux
US6586667B2 (en) 2000-03-03 2003-07-01 Sony Computer Entertainment, Inc. Musical sound generator
JP2007286532A (ja) * 2006-04-20 2007-11-01 Kawai Musical Instr Mfg Co Ltd 電子楽器

Also Published As

Publication number Publication date
JP3006094B2 (ja) 2000-02-07

Similar Documents

Publication Publication Date Title
US4373416A (en) Wave generator for electronic musical instrument
USRE31004E (en) Electronic musical instrument utilizing data processing system
JPS5865493A (ja) 波形発生装置
US4953437A (en) Method and apparatus for digitally generating musical notes
EP0463411B1 (en) Musical tone waveform generation apparatus
US4387617A (en) Assigner for electronic musical instrument
JPS62200399A (ja) 電子楽器におけるパラメ−タ供給装置
JP2565073B2 (ja) ディジタル信号処理装置
JP2678974B2 (ja) 楽音波形発生装置
JPH04348396A (ja) 楽音波形発生装置
JP2869573B2 (ja) 楽音波形発生装置
JP2946762B2 (ja) 楽音波形発生装置
US4644841A (en) Electronic musical instrument
JPH0210439B2 (ja)
EP0463409B1 (en) Musical tone waveform generation apparatus
JP2797139B2 (ja) 楽音波形発生装置
JP3035991B2 (ja) 楽音波形発生装置
US5687105A (en) Processing device performing plural operations for plural tones in response to readout of one program instruction
JP2797142B2 (ja) 電子楽器用処理装置
JPH0331273B2 (ja)
JP2869574B2 (ja) 楽音波形発生装置
JP3027831B2 (ja) 楽音波形発生装置
JPH07325581A (ja) 楽音発生装置
JP2797138B2 (ja) 電子楽器用処理装置
JP3027832B2 (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: 19991026

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

Free format text: PAYMENT UNTIL: 20071126

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091126

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20101126

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees